| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
Move serverobject.{cpp,h} to server/serveractiveobject.{cpp,h}
Move UnitSAO class to dedicated files
|
|
|
|
|
|
|
|
|
|
| |
* Drop genericobject.{cpp,h}
This file is not for generic object but for ActiveObject message passing.
Put ownership of the various commands to the right objects and cleanup the related code.
* Protect ServerActiveObject::m_messages_out
* typo fix
|
|
|
|
| |
Hide some unnecessarily verbose ones behind --trace or disable them entirely.
Remove duplicate ones. Improve their contents in some places.
|
| |
|
| |
|
| |
|
|
|
|
| |
"Deprecated" means that something is still in use, but is unsupported and needs to be removed.
"Obsolete" means it is already out of use.
|
|
|
|
| |
Does not clear the parent's attachment information when the child is deleted locally.
Either it was removed permanently, or just temporary - we don't know, but it's up to the server to send a *detach from child" packet for the parent.
|
| |
|
|
|
| |
Makes 'get_wield_item' to return the "main" ItemStack
|
|
|
| |
Finish getNode cleanup
|
|
|
|
| |
The intended usecase is knockback, but there's potential for more.
|
|
|
|
| |
This moves the wield item functions to Player and the tool utils for range calculation
Also 'local_inventory' was removed due to redundancy in Client
|
|
|
|
|
|
|
|
|
|
| |
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
|