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
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.
* Add no_static_save property to luaentites to not save them statically.
This allows for temporary objects that would get deleted anyway as soon as they are loaded again without the static saving overhead.
* Use positive meaning for static_save object property
* Invert meaning also for the LUA parameter
Note: getboolfield() does not change &result when field does not exist, so it defaults to the default value in the header file, which is 'true'.
* Extend push_object_properties()
The 'glow' value is added to the ambient light value.
Negative 'glow' disables light's effect on object colour, for faking
self-lighting, UI-style entities, or programmatic colouring in mods.
Adds the possibility to colorize item stacks based on their metadata.
In the item/node definition you can specify palette (an image file)
and color (fallback color if the item has no palette or metadata).
Then you can add palette_index to the metadata.
Dropped itemstacks with different colors do not merge.
New object property which allows changing the color and alpha of mesh materials. Due to the current lighting systems it doesn't work yet, but the full implementation is there
Framework for the attachment system, with no actual functionality yet
Send bone and player object to the setAttachment function in content_sao.cpp, but we need a way to translate it there and send it to the client
I will also want position and rotation offsets to be possible to apply to attachments
Network object ID from server to client. This will be used to identify the parent client-side and know what to attach to
Support for animation blending, though for some reason it doesn't work.
Don't enable animation transitions by default for many reaosons
Object property to store individual bone positions. LUA can specify a bone name followed by a bone position. No functionality yet. Bone rotation to be added in the following commit
Same system for bone rotation, plus a few other things I missed
(obj, md2 and md3 are currently allowed)
Get rid of the texture string and use the existing textures array. Segmented meshes have multiple materials, and this will allow us to texture each. Do not switch to this commit yet!
If a texture string is left empty in LUA, don't modify that material. Useful so a script can change specific textures without affecting others
Players can now be set to meshes using the following test script:
function switch_player_visual()
prop = {
mesh="player.obj",
texture="player.png",
visual="mesh",
}
for _, obj in pairs(minetest.get_connected_players()) do
obj:set_properties(prop)
end
minetest.after(1.0, switch_player_visual)
end
minetest.after(1.0, switch_player_visual)