aboutsummaryrefslogtreecommitdiff
path: root/src/content_sao.cpp
Commit message (Collapse)AuthorAge
* Group "immortal" also protects players from damageWuzzy2019-08-01
| | | | | | | | | | Document new meaning of immortal=1 for players Disable breathing if player is immortal Hide builtin statbars if player immortal (delayed) Co-authored-by: ClobberXD <ClobberXD@gmail.com>
* Move the clamping of hp/breath when their maximums change to ↵Beha2019-07-30
| | | | | read_object_properties(). (#8689) This prevents set_properties() calls that have nothing to do with hp_max or breath_max overriding the saved hp before another mod has the chance to set a player's intended hp_max (such as in on_joinplayer).
* ContentCAO: Fix broken attachments on join (#8701)SmallJoker2019-07-29
| | | | | | | | | | | | | What happened: 1) Object data is received. Client begins to read the data 2) Client initializes all its children (gob_cmd_update_infant) 3) Children try to attach to parent (yet not added) 4) Parent initializes, is added to the environment And somewhere in between, Irrlicht wrecks up the attachments due to the missing matrix node. The solution here is to: 1) Use the same structure as ServerActiveObject 2) Attach all children after the parent is really initialized
* Damage: Play no damage sound when immortal (#8350)SmallJoker2019-06-09
| | | | Add isImmortal server-side for proper enable_damage handling Rework log messages
* PlayerSAO::setHP - Don't call on_hpchange callbacks if HP hasn't changedANAND2019-04-29
|
* Force send a mapblock to a player (#8140)sofar2019-04-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Force send a mapblock to a player. Send a single mapblock to a specific remote player. This is badly needed for mods and games where players are teleported into terrain which may be not generated, loaded, or modified significantly since the last player visit. In all these cases, the player currently ends up in void, air, or inside blocks which not only looks bad, but has the effect that the player might end up falling and then the server needs to correct for the player position again later, which is a hack. The best solution is to send at least the single mapblock that the player will be teleported to. I've tested this with ITB which does this all the time, and I can see it functioning as expected (it even shows a half loaded entry hallway, as the further blocks aren't loaded yet). The parameter is a blockpos (table of x, y, z), not a regular pos. The function may return false if the call failed. This is most likely due to the target position not being generated or emerged yet, or another internal failure, such as the player not being initialized. * Always send mapblock on teleport or respawn. This avoids the need for mods to send a mapblock on teleport or respawn, since any call to `player:set_pos()` will pass this code.
* Range-limit value passed to PlayerSAO::set{HP|Breath} (#8264)ANAND2019-04-27
|
* Attend to review, re-arrange blank lines, update lua_api.txtparamat2019-04-14
|
* Fix regression in automatic_face_movement_max_rotation_per_secPedro Gimeno2019-04-14
| | | | | | Values <= 0 should make the yaw change instant. This worked in 0.4.16 but was broken in 089f59458286. Per bug report by oil_boi_minetest on IRC.
* Add node field to PlayerHPChangeReason table (#8368)Paul Ouellette2019-04-11
|
* Don't regain breath while in ignore node (#8218)Wuzzy2019-02-15
| | | | | | * Don't regain breath while in ignore node Fixes #8217
* Consistent HP and damage types (#8167)SmallJoker2019-02-10
| | | | | Remove deprecated HUDs and chat message handling. Remove unused m_damage variable (compat break). HP: s32 for setter/calculations, u16 for getter.
* Proselytize the network. Use IEEE F32 (#8030)SmallJoker2019-01-03
| | | | | * Proselytize the network. Use IEEE F32 * Remove unused V2F1000 functions
* Fix entity rotation in existing worlds (#7989)SmallJoker2018-12-23
|
* Fix player rotations (#7941)CoderForTheBetter2018-12-05
|
* Add Lua methods 'set_rotation()' and 'get_rotation()' (#7395)CoderForTheBetter2018-11-28
| | | | * Adds Lua methods 'set_rotation()' and 'get_rotation'. Also changed some method names to be more clear. Instead of an f32 being sent over network for yaw, now a v3f is sent for rotation on xyz axes. Perserved Lua method set_yaw/setyaw so that old mods still work, other wise to set yaw they would need to switch to set_rotation(0, yaw, 0).
* Prevent objects from colliding with own child attachments (#7610)SmallJoker2018-08-05
| | | | | Also, use a better distance calculation for 'collide with objects'. Fixes the issue of a vehicle occasionally colliding with its own driver, causing one of the velocity components to be set to zero.
* Smoothed yaw rotation for objects (#6825)SmallJoker2018-08-02
|
* Revert 6587 - Optimize entity-entity collision (#7539)lhofhansl2018-07-08
|
* Fix segfault in player migration and crash in log_deprecatedSmallJoker2018-05-14
| | | | Makes log_deprecated work when triggered from no function
* Allow damage for attached objects, add attach/detach callbacks (#6786)SmallJoker2018-04-30
| | | * Allow right-clicking on attached LuaEntities
* FOV: Raise lower limit to avoid zoom-loading of distant world (#7234)Paramat2018-04-15
| | | | | | | | | | In the client, raise lower limit from 30 to 45 degrees, to avoid server seeing this as a zoom and loading world beyond the server-set limit. Add minimum in settingtypes.txt and enforce lower limit when set using minetest.conf. In the server, distrust the client-sent FOV if below the heuristic zoom threshold and use the player object property 'zoom_fov' to check it, to protect against hacked clients.
* Fix SAOM (#7200)Vitaliy2018-04-06
| | | | * Bugfix
* Fix various clang-tidy reported performance-type-promotion-in-math-fnLoïc Blot2018-04-03
|
* Optimize entity-entity collision (#6587)Vitaliy2018-04-03
| | | | | | * Add IrrLicht type aliases * Add hash for IrrLicht vector * Add object map
* Optional alpha channel support for entitiesstujones112018-03-29
|
* Fix a warning introduced by c5b4e541749c50805519ce040d98a0a8e5e0ec03Loic Blot2018-03-29
|
* Add reasons to on_dieplayer and on_hpchangeAndrew Ward2018-03-28
|
* SAO limits: Allow SAOs to exist outside the set 'mapgen limit'paramat2018-02-26
|
* Refine movement anticheat again (#7004)sfan52018-02-02
| | | | * Account for walking speed in vertical dir * Avoid undefined behaviour due to division-by-zero
* Apply physics overrides correctly during anticheat calculations (#6970)sfan52018-01-28
|
* Zoom: Set zoom FOV per-player using a player object propertyparamat2017-12-04
| | | | | | | | | | | | | Remove player object property 'can zoom'. Add player object property 'zoom fov'. Remove clientside setting for 'zoom fov'. Object property default is 15 degrees in creative mode, zoom disabled in survival mode. Needed due to zoom now loading and/or generating distant world according to zoom FOV. Update object properties serialisation version to 3.
* CAO/SAO: Nicer velocity-controlled, interpolated rotation property:SmallJoker2017-12-01
| | | | | 'automatic_face_movement_max_rotation_per_sec'. Rotate towards the smaller angle.
* PlayerSAO damage: Update to cope with variable player heightsparamat2017-11-14
| | | | Nearby codestyle cleanup.
* Player eye height: Make this a settable player object propertyparamat2017-11-06
|
* Make Player::peer_id server-side only and add getters and setters (#6478)Loïc Blot2017-09-30
| | | | | | | * Make Player::peer_id server-side only and add getters and setters Player::peer_id has no sense client side, move it to server, make it private and add setter and getter Also add some PEER_ID_INEXISTENT instead of harcoded 0
* Add session_t typedef + remove unused functions (#6470)Loïc Blot2017-09-27
| | | | | | * Add session_t typedef + remove unused functions u16 peer_id is used everywhere, to be more consistent and permit some evolutions on this type in the future (i'm working on a PoC), uniformize u16 peer_id to SessionId peer_id
* ServerEnv: Clean up object lifecycle handling (#6414)sfan52017-09-15
| | | | * ServerEnv: Clean up object lifecycle handling
* Customizeable max breath for players (#6411)SmallJoker2017-09-15
| | | | * Customizeable maximal breath for players
* Fix animation frame_speed and blend loosing precision due to incorrec… (#6357)sapier2017-09-01
| | | | | * Fix animation frame_speed and blend loosing precision due to incorrect data type Add lua function set_animation_frame_speed to update the frame speed without resetting the animation to start
* Zoom: Move enabling zoom to a new player object propertyparamat2017-08-30
| | | | | Default enabled for no change in default behaviour. Remove 'zoom' privilege.
* Make entity selection and collision boxes independently settable (#6218)stujones112017-08-24
| | | | * Make entity selection and collision boxes independently settable
* Respect object property hp_max field for players (#6287)SmallJoker2017-08-23
| | | | | | | | | | | * Respect object property hp_max field for players This allows modders to configure the maximal HP per player * Statbars: Downscale bar to full 20 HP when exceeding this value Add default max HP for players and breath constants to builtin Document the constants * Rename PLAYER_MAX_HP -> PLAYER_MAX_HP_DEFAULT
* Do not add base position to player selection box (#6241)stujones112017-08-23
|
* Modernize code: very last fixes (#6290)Loïc Blot2017-08-20
| | | Last modernization fixes
* Modernize src/c* src/d* and src/e* files (#6263)Loïc Blot2017-08-17
| | | | | | | | | | | | | | | | | * Modernize src/c* src/d* and src/e* files * default operator * redundant init * delete default constructors on CraftDefinition childs (never used) * fix some missing init values * const ref fix reported by clang-tidy * ranged-based for loops * simple conditions & returns * empty stl function instead of size * emplace_back stl function instead of push_back + construct temp obj * auto for some iterators * code style fixes * c++ stl headers instead of C stl headers (stdio.h -> cstdio)
* Step height: Add as a player object propertyparamat2017-08-09
| | | | | Add settable player step height using the existing object property. Breaks compatibility with old clients, add to protocol version 35.
* Add LuaEntity on_death callback (#6177)Loïc Blot2017-07-27
| | | | | | Add LuaEntity on_death callback This fixes #5474
* Player collisionbox: Make settableTeTpaAka2017-07-21
| | | | Breaks compatibility with old clients.
* Expose getPointedThing to LuaDániel Juhász2017-07-07
| | | | | | This commit introduces Raycast, a Lua user object, which can be used to perform a raycast on the map. The ray is continuable, so one can also get hidden nodes (for example to see trough glass).