initial_properties field in entity definition

This commit is contained in:
Perttu Ahola 2012-03-31 13:50:25 +03:00
parent e297c73913
commit dc70f50b59
3 changed files with 22 additions and 13 deletions

@ -792,8 +792,10 @@ Object Properties
Entity definition (register_entity)
{
Everything from object properties,
-- entity specific --
(Deprecated: Everything in object properties is read directly from here)
initial_properties = <initial object properties>,
on_activate = function(self, staticdata),
on_step = function(self, dtime),
on_punch = function(self, hitter),
@ -801,6 +803,7 @@ Entity definition (register_entity)
get_staticdata = function(self),
^ Called sometimes; the string returned is passed to on_activate when
the entity is re-activated from static state
# Also you can define arbitrary member variables here
myvariable = whatever,
}

@ -409,7 +409,7 @@ minetest.register_alias("TNT", "experimental:tnt")
--
minetest.register_entity("experimental:dummyball", {
-- Static definition
initial_properties = {
hp_max = 20,
physical = false,
collisionbox = {-0.4,-0.4,-0.4, 0.4,0.4,0.4},
@ -418,7 +418,8 @@ minetest.register_entity("experimental:dummyball", {
textures = {"experimental_dummyball.png"},
spritediv = {x=1, y=3},
initial_sprite_basepos = {x=0, y=0},
-- Dynamic variables
},
phase = 0,
phasetimer = 0,

@ -4887,8 +4887,13 @@ void scriptapi_luaentity_get_properties(lua_State *L, u16 id,
// Set default values that differ from ObjectProperties defaults
prop->hp_max = 10;
// Read stuff
// Deprecated: read object properties directly
read_object_properties(L, -1, prop);
// Read initial_properties
lua_getfield(L, -1, "initial_properties");
read_object_properties(L, -1, prop);
lua_pop(L, 1);
}
void scriptapi_luaentity_step(lua_State *L, u16 id, float dtime)