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),
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,
}
--
minetest.register_entity("experimental:dummyball", {
- -- Static definition
- hp_max = 20,
- physical = false,
- collisionbox = {-0.4,-0.4,-0.4, 0.4,0.4,0.4},
- visual = "sprite",
- visual_size = {x=1, y=1},
- textures = {"experimental_dummyball.png"},
- spritediv = {x=1, y=3},
- initial_sprite_basepos = {x=0, y=0},
- -- Dynamic variables
+ initial_properties = {
+ hp_max = 20,
+ physical = false,
+ collisionbox = {-0.4,-0.4,-0.4, 0.4,0.4,0.4},
+ visual = "sprite",
+ visual_size = {x=1, y=1},
+ textures = {"experimental_dummyball.png"},
+ spritediv = {x=1, y=3},
+ initial_sprite_basepos = {x=0, y=0},
+ },
+
phase = 0,
phasetimer = 0,
// 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)