aboutsummaryrefslogtreecommitdiff
path: root/src/content_sao.cpp
AgeCommit message (Collapse)Author
2017-01-13Optimize SAO getStaticData by using std::string pointer instead of return copyLoic Blot
Signed-off-by: Loic Blot <loic.blot@unix-experience.fr>
2017-01-13Cleanup content_sao by factorizing similar code partsRogier
Signed-off-by: Loic Blot <loic.blot@unix-experience.fr>
2017-01-11Performance fix + SAO factorizationRogier
Original credits goes to @Rogier-5 * Merge common attributes between LuaEntitySAO & PlayerSAO to UnitSAO * Make some functions const * Improve some lists performance by returning const ref Signed-off-by: Loic Blot <loic.blot@unix-experience.fr>
2017-01-09Environment & IGameDef code refactoring (#4985)Ner'zhul
* Environment code refactoring * Cleanup includes & class declarations in client & server environment to improve build speed * ServerEnvironment::m_gamedef is now a pointer to Server instead of IGameDef, permitting to cleanup many casts. * Cleanup IGameDef * Move ITextureSource* IGameDef::getTextureSource() to Client only. * Also move ITextureSource *IGameDef::tsrc() helper * drop getShaderSource, getSceneManager, getSoundManager & getCamera abstract call * drop unused emerge() call * cleanup server unused functions (mentionned before) * Drop one unused parameter from ContentFeatures::updateTextures * move checkLocalPrivilege to Client * Remove some unnecessary casts * create_formspec_menu: remove IWritableTextureSource pointer, as client already knows it * Fix some comments * Change required IGameDef to Server/Client pointers * Previous change that game.cpp sometimes calls functions with Client + InventoryManager + IGameDef in same functions but it's the same objects * Remove duplicate Client pointer in GUIFormSpecMenu::GUIFormSpecMenu * drop ClientMap::sectorWasDrawn which is unused
2017-01-01Breath cheat fix: server sideLoic Blot
Breath is now handled server side. Changing this behaviour required some modifications to core: * Ignore TOSERVER_BREATH package, marking it as obsolete * Clients doesn't send the breath to server anymore * Use PlayerSAO pointer instead of peer_id in Server::SendPlayerBreath to prevent a useless lookup (little perf gain) * drop a useless static_cast in emergePlayer
2016-11-30Optimize/adjust blocks/ActiveObjects sent at the server based on client ↵lhofhansl
settings. (#4811) Optimize/adjust blocks and active blocks sent at the server based on client settings.
2016-11-26Wieldhand: Allow overriding the handTeTpaAka
2016-11-10Fix mob deserialization errors in the client (#4743)Rogier-5
The problem was seen while using the mobf mod package. The problem happens when the server serializes entity attachments. Sometimes, such attachments no longer exist. The serialization code skips those. However, the total number of attachments was serialized earlier. Therefore the client expects more than it gets, and logs a serialization error.
2016-11-05PlayerSAO saving fix (#4734)Ner'zhul
PlayerSAO::disconnected() function was historical and remove the link between SAO and RemotePlayer session. With previous attributes linked to RemotePlayer saving was working. But now attributes are read from SAO not RemotePlayer and the current serialize function verify SAO exists to save the player attributes. Because PlayerSAO::disconnected marks playersao for removal, only mark playerSAO for removal and let PlayerSAO::removingFromEnvironment do the correct saving behaviour and all the disconnection process instead of doing a partial removal and let the server loop doing the RemotePlayer cleanup and remove some saved attributes...
2016-10-30Fix overloading problems mentioned by clangLoic Blot
2016-10-30PlayerSAO/LocalPlayer refactor: (#4612)Ner'zhul
* Create UnitSAO, a common part between PlayerSAO & LuaEntitySAO * Move breath to PlayerSAO & LocalPlayer * Migrate m_yaw from (Remote)Player & LuaEntitySAO to UnitSAO * Migrate m_yaw from Player to LocalPlayer for client * Move some functions outside of player class to PlayerSAO/RemotePlayer or LocalPlayer depending on which class needs it * Move pitch to LocalPlayer & PlayerSAO * Move m_position from Player to LocalPlayer * Move camera_barely_in_ceiling to LocalPlayer as it's used only there * use PlayerSAO::m_base_position for Server side positions * remove a unused variable * ServerActiveObject::setPos now uses const ref * use ServerEnv::loadPlayer unconditionnaly as it creates RemotePlayer only if it's not already loaded * Move hp from Player to LocalPlayer * Move m_hp from LuaEntitySAO to UnitSAO * Use m_hp from PlayerSAO/UnitSAO instead of RemotePlayer
2016-10-13Attached particle spawnersraymoo
2016-10-08Move RemotePlayer code to its own cpp/headerLoic Blot
2016-10-08Prevent attached models from disappearing during parent reload (#4128)Foghrye4
2016-10-08Player/LocalPlayer/RemotePlayer inheritance cleanup (part 1 on X)Loic Blot
* LocalPlayer take ownership of maxHudId as it's the only caller * RemotePlayer take ownership of day night ratio as it's the only user * Pass getPlayerControl as const reference to prevent object copy on each call (perf improvement in ObjectRef::l_get_player_control call) * getPlayerSAO is now only RemotePlayer call * get/setHotbarItemCount is now RemotePlayer owned * Server: Use RemotePlayer instead of Player object on concerned call to properly fix the object type * PlayerSAO now uses RemotePlayer instead of Player because it's only server side * ObjectRef::getplayer also returns RemotePlayer as it's linked with PlayerSAO
2016-10-06use unordered containers where possible (patch 4 on X)Loic Blot
Also remove some unused parameters/functions
2016-09-09Anticheat: Use the physics_override modifiers aswellSmallJoker
2016-08-11Add infotext containing entity type (e.g. mobs:cow) to unknown entities (#4431)Rogier-5
If a mod is disabled, or upgraded without sufficient backward compatibility, then entities it has put into the world become unknown, and continue moving around, but are completely unrecognisable. This change allows the player to see their type, and therefore which mod is or was responsible.
2016-02-11v2d & aabbox3d<f32> & sky cleanupsnerzhul
* Sky: rename Box => m_box and inline getBoundingBox * Uniformize aabbox3d<f32> to aabb3f
2016-01-29Don't pass non-const references to collision methodsest31
Non const references cause a lot of confusion with behaviour of code, and are disallowed by minetest style guide.
2015-12-19Add support for limiting rotation of automatic face movement dir entitysSapier
2015-12-15Add option to give every object a nametagBlockMen
or change the nametag text of players
2015-10-14Rename macros with two leading underscoresShadowNinja
These names are reserved for the compiler/library implementations.
2015-09-23Save and remove player by pointerLoic Blot
Why doing things simple ? Use pointer instead of strings to save players and remove them. Saving players by name does a lookup to find pointer we already have ! Idem with removePlayer Also remove unused removePlayer(peer_id), it's never called
2015-07-21Remove profiler.h include where it's not needed. Remove some unreachable and ↵Loic Blot
very old code
2015-07-18Fix invisible player when the attached entity is removedTeTpaAka
2015-06-22Fix some issues with animations, and allow non-looped animations to be definedMirceaKitsune
2015-06-15Ignore punches with no damage in the actionstreamSmallJoker
2015-06-13Add minetest.register_on_player_hpchangeTeTpaAka
2015-05-28Add some missing getter functions to the lua APITeTpaAka
ObjectRef: get_properties get_armor_groups get_animation get_attach get_bone_position Players: get_physics_override hud_get_hotbar_itemcount hud_get_hotbar_image hud_get_hotbar_selected_image get_sky get_day_night_ratio get_local_animation get_eye_offset Global: minetest.get_gen_notify minetest.get_noiseparams
2015-05-27Spare some string copiesest31
2015-05-15Generalize core.get/set_nametag_color into core.get/set_nametag_attributesTeTpaAka
2015-05-15Add minetest.register_on_punchplayerBrandon
2015-05-15Add get and set functions for the nametag colorTeTpaAka
2015-04-01Move globals from main.cpp to more sane locationsCraig Robbins
Move debug streams to log.cpp|h Move GUI-related globals to clientlauncher Move g_settings and g_settings_path to settings.cpp|h Move g_menuclouds to clouds.cpp|h Move g_profiler to profiler.cpp|h
2015-03-19Reset the old HP method on PlayerSAO::setHPLoic Blot
2015-03-07For usages of assert() that are meant to persist in Release builds (when ↵Craig Robbins
NDEBUG is defined), replace those usages with persistent alternatives
2015-03-05Remove Queue class which uses std::list and use native std::queueLoic Blot
2015-03-04Send Position packet on event, don't check it at each AsyncRunStep.Loic Blot
* This permit to cleanup the player checking loop
2015-03-04Send Inventory packet on event, don't check it at each AsyncRunStep.Loic Blot
* Call UpdateCrafting into SendInventory because this functions is only called before SendInventory * Use Player* instead of peer_id for UpdateCrafting because SendInventory already has the Player* pointer, then don't loop for searching Player* per peer_id * m_env_mutex don't need to be used with this modification because it's already locked before the calls
2015-03-03Remove unused m_wielded_item_not_sentLoic Blot
2015-03-03Send Breath packet on event, don't check it at each AsyncRunStepLoic Blot
2015-03-03Send Player HP when setHP (or a setHP caller) is called instead of looping ↵Loic Blot
and testing the state change.
2015-02-17SAO work: ActiveObject types & SAO cleanup * Replace u8 types with ↵Loic Blot
ActiveObjectType. * Merge content_object.h into activeobject.h * Remove DummyLoadSAO, it's now unused. * Remove ItemSAO, it's also unused
2015-01-18Fix all warnings and remove -Wno-unused-but-set cflagkwolekr
2014-11-08Replace setting unlimited_player_transfer_distance with player_transfer_distanceSmallJoker
2014-09-21Split settings into seperate source and header filesShadowNinja
This also cleans up settings a bit
2014-06-23Only keep players loaded while they're connectedShadowNinja
2014-03-12Pass arguments by referenceSelat
2013-12-03Add sneak and sneak_glitch to set_physics_override()PilzAdam