| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
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).
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Add isImmortal server-side for proper enable_damage handling
Rework log messages
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
* Don't regain breath while in ignore node
Fixes #8217
|
|
|
|
|
| |
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
* Remove unused V2F1000 functions
|
| |
|
| |
|
|
|
|
| |
* 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).
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
| |
Makes log_deprecated work when triggered from no function
|
|
|
| |
* Allow right-clicking on attached LuaEntities
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
* Bugfix
|
| |
|
|
|
|
|
|
| |
* Add IrrLicht type aliases
* Add hash for IrrLicht vector
* Add object map
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
* Account for walking speed in vertical dir
* Avoid undefined behaviour due to division-by-zero
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
'automatic_face_movement_max_rotation_per_sec'.
Rotate towards the smaller angle.
|
|
|
|
| |
Nearby codestyle cleanup.
|
| |
|
|
|
|
|
|
|
| |
* 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
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
|
|
|
|
| |
* Customizeable maximal breath for players
|
|
|
|
|
| |
* 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
|
|
|
|
|
| |
Default enabled for no change in default behaviour.
Remove 'zoom' privilege.
|
|
|
|
| |
* Make entity selection and collision boxes independently settable
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
| |
|
|
|
| |
Last modernization fixes
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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)
|
|
|
|
|
| |
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
This fixes #5474
|
|
|
|
| |
Breaks compatibility with old clients.
|
|
|
|
|
|
| |
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).
|