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

View File

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

View File

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

View File

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