ObjectRef:get_entity_name() and fixing of comments in default/init.lua
authorPerttu Ahola <celeron55@gmail.com>
Mon, 2 Jan 2012 11:12:56 +0000 (13:12 +0200)
committerPerttu Ahola <celeron55@gmail.com>
Mon, 2 Jan 2012 11:12:56 +0000 (13:12 +0200)
data/mods/default/init.lua
src/content_sao.cpp
src/content_sao.h
src/scriptapi.cpp

index 9c1ce4ef8e94f01c17895300b222120e9c057ce5..75fdcb012f9ad1f9b0241e2fb8003359b02c7d14 100644 (file)
 -- - get_player_by_name(name) -- Get an ObjectRef to a player
 -- - get_objects_inside_radius(pos, radius)
 --
--- NodeMetaRef
+-- NodeMetaRef (this stuff is subject to change in a future version)
 -- - get_type()
 -- - allows_text_input()
 -- - set_text(text) -- eg. set the text of a sign
 -- - right_click(clicker); clicker = an another ObjectRef
 -- - get_wield_digging_properties() -> digging property table
 -- - damage_wielded_item(num) (item damage/wear range is 0-65535)
--- - add_to_inventory(itemstring): add an item to object inventory
+-- - add_to_inventory(itemstring): add an item to object inventory (actually only works for the player as of now)
 -- - add_to_inventory_later(itemstring): like above, but after callback returns (only allowed for craftitem callbacks)
 -- - get_hp(): returns number of hitpoints (2 * number of hearts)
 -- - set_hp(hp): set number of hitpoints (2 * number of hearts)
--- LuaEntitySAO-only:
+-- LuaEntitySAO-only: (no-op for other objects)
 -- - setvelocity({x=num, y=num, z=num})
 -- - setacceleration({x=num, y=num, z=num})
 -- - getacceleration() -> {x=num, y=num, z=num}
 -- - settexturemod(mod)
 -- - setsprite(p={x=0,y=0}, num_frames=1, framelength=0.2,
 -- -           select_horiz_by_yawpitch=false)
--- Player-only:
+-- - ^ Select sprite from spritesheet with optional animation and DM-style
+-- -   texture selection based on yaw relative to camera
+-- - get_entity_name()
+-- Player-only: (no-op for other objects)
 -- - get_player_name(): will return nil if is not a player
 -- - get_inventory() -> InvRef
 -- - inventory_set_list(name, {item1, item2, ...})
 -- {
 --     physical = true,
 --     collisionbox = {-0.5,-0.5,-0.5, 0.5,0.5,0.5},
---     visual = "cube",
+--     visual = "cube"/"sprite",
+--     visual_size = {x=1, y=1},
 --     textures = {texture,texture,texture,texture,texture,texture},
+--     spritediv = {x=1, y=1},
+--     initial_sprite_basepos = {x=0, y=0},
 --     on_activate = function(self, staticdata),
 --     on_step = function(self, dtime),
 --     on_punch = function(self, hitter),
index afe82bdd2c9bd94e8f65a2ba1dcb39215ae0c7d7..e9e6543d905241311e5535dbeddf3440730e33c7 100644 (file)
@@ -1736,6 +1736,11 @@ void LuaEntitySAO::setSprite(v2s16 p, int num_frames, float framelength,
        m_messages_out.push_back(aom);
 }
 
+std::string LuaEntitySAO::getName()
+{
+       return m_init_name;
+}
+
 void LuaEntitySAO::sendPosition(bool do_interpolate, bool is_movement_end)
 {
        m_last_sent_move_precision = m_base_position.getDistanceFrom(
index 04ee7ee1ba3159024899bf01a0e6f29a0ebe69a6..d56fdb7095dcac710a2858b727d74a02f10ad8bd 100644 (file)
@@ -218,6 +218,7 @@ public:
        void setTextureMod(const std::string &mod);
        void setSprite(v2s16 p, int num_frames, float framelength,
                        bool select_horiz_by_yawpitch);
+       std::string getName();
 private:
        void sendPosition(bool do_interpolate, bool is_movement_end);
 
index 6b850b19a0c3ced0635d3bd16f04729456241ce9..2e635feb9162504da4d7f2d50c41ce60ed0e1e36 100644 (file)
@@ -1989,6 +1989,18 @@ private:
                return 0;
        }
 
+       // get_entity_name(self)
+       static int l_get_entity_name(lua_State *L)
+       {
+               ObjectRef *ref = checkobject(L, 1);
+               LuaEntitySAO *co = getluaobject(ref);
+               if(co == NULL) return 0;
+               // Do it
+               std::string name = co->getName();
+               lua_pushstring(L, name.c_str());
+               return 1;
+       }
+       
        /* Player-only */
        
        // get_player_name(self)
@@ -2190,6 +2202,7 @@ const luaL_reg ObjectRef::methods[] = {
        method(ObjectRef, getacceleration),
        method(ObjectRef, settexturemod),
        method(ObjectRef, setsprite),
+       method(ObjectRef, get_entity_name),
        // Player-only
        method(ObjectRef, get_player_name),
        method(ObjectRef, get_inventory),