According to the following table:
* MOUSE_L -> DIG
* MOUSE_R -> PLACE
* SCROLL_UP -> HOTBAR_NEXT
* SCROLL_DOWN -> HOTBAR_PREV
This commit entirely removes the special KeyTypes used for joysticks.
Support for the MOUSE KeyTypes had already been removed in the main
game code without adapting the joystick code, breaking joystick
input. This commit restores joystick functionality.
- Avoid calculating isBlockInSight for blocks without meshes.
- Add metric for how many blocks the client has currently loaded.
- Make some variables constant.
Run unused functions reported by cppcheck
This change removes a few (but not all) unused functions.
Some unused helper functions were not removed due to their complexity and potential of future use.
Features:
* Define Minimap available modes (surface/radar, scale) from Lua, using player:set_minimap_modes()
* New HUD elements for displaying minimap with custom size and placing
* New minimap mode for displaying a texture instead of the map
Fixes some other third person camera specific attachments.
Implements a single new flag for entities to be forced visible in first person mode.
Old mods do not need to be updated to use the new flag and are fully backwards compatible.
This commit clarifies the maximal length of the serialized strings.
It will avoid accidental use of serializeString() when a larger string can be expected.
Removes unused Wide String serialization functions
Previously, the param2-controlled horizontal/vertical merge feature
(which was undocumented and forgotten) was always active, causing
uses of param2 other than "glasslikeliquidlevel" to affect H/V
merging.
Only respect H/V merge bits when paramtype2 = "glasslikeliquidlevel".
H/V merge bits and liquid level bits are designed to be used
simultaneously.
Moves the infotext depending on the value of the recent_chat_messages value + 2 additional lines to account for the 2 debug mode lines + 1 additional line as "buffer" for better readability if chat is full.
Erase all traces of normal "generation" from fragment shaders
Remove the "feature" from the engine and default config
Remove any leftover documentation of it
the event header seemingly being generic with libevent thus renaming it.
openal and opengl are deprecated on newer mac os releases thus suppressing the build warnings.
The inventory image size of the inventory image of nodes with drawtype allfaces (and related) is scaled as well if visual_scale is set (previously, the inventory image size was always the same)
Recent changes to collision code have changed the behaviour of the 'touching_ground'
bool in movement code. This had the effect of disabling camera smoothing when
'air stepheight' occurred when jumping onto a node while pressing forwards against
the node, causing an unpleasant sharp camera movement.
Rewrite the conditions for camera smoothing such that it is applied when jumping.
Fixes two bugs:
* The camera offset was not applied to an object while detaching, briefly placing the irrlicht matrixnode in world space.
* When attaching, the matrixnode's absolute position was evaluated without evaluating the parent first, resulting in zeroed positions.
automatic_rotate does not make sense if it is absolute. Make it relative.
To avoid bouncing, set_rotation did not update the client when automatic_rotate was set. That's no longer necessary because the new spinning method applies the rotation on top of the current one, and the updates are necessary for set_rotation to actually transform the object.
Co-authored-by: ANAND <ClobberXD@gmail.com>
Co-authored-by: Pedro Gimeno <pgimeno@users.noreply.notabug.org>
This adds support for optional “off state” icons for statbars. “off state icons” can be used to denote the lack of something, like missing hearts or bubbles.
Add "off state" textures to the builtin statbars.
Co-authored-by: SmallJoker <mk939@ymail.com>
* Server::overrideDayNightRatio doesn't require to return bool
There is no sense to sending null player, the caller should send a valid object
* Server::init: make private & cleanup
This function is always called before start() and loads some variables which can be loaded in constructor directly.
Make it private and call it directly in start
* Split Server inventory responsibility to a dedicated object
This splits permit to found various historical issues:
* duplicate lookups on player connection
* sending inventory to non related player when a player connects
* non friendly lookups on detached inventories ownership
This reduce the detached inventory complexity and also increased the
lookup performance in a quite interesting way for servers with thousands
of inventories.