summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2012-01-02 13:12:56 +0200
committerPerttu Ahola <celeron55@gmail.com>2012-01-02 13:12:56 +0200
commitff82b95800b13d156a59d4936970dc3c8797b14e (patch)
treec8eba929746ff872fec61186028b4fb1f20bf63f
parent49b7055cb3f676c19dc5edd07fe72e2f5e2414a1 (diff)
downloadminetest-ff82b95800b13d156a59d4936970dc3c8797b14e.tar.gz
minetest-ff82b95800b13d156a59d4936970dc3c8797b14e.tar.bz2
minetest-ff82b95800b13d156a59d4936970dc3c8797b14e.zip
ObjectRef:get_entity_name() and fixing of comments in default/init.lua
-rw-r--r--data/mods/default/init.lua16
-rw-r--r--src/content_sao.cpp5
-rw-r--r--src/content_sao.h1
-rw-r--r--src/scriptapi.cpp13
4 files changed, 30 insertions, 5 deletions
diff --git a/data/mods/default/init.lua b/data/mods/default/init.lua
index 9c1ce4ef8..75fdcb012 100644
--- a/data/mods/default/init.lua
+++ b/data/mods/default/init.lua
@@ -160,7 +160,7 @@
-- - 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
@@ -194,18 +194,21 @@
-- - 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, ...})
@@ -247,8 +250,11 @@
-- {
-- 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),
diff --git a/src/content_sao.cpp b/src/content_sao.cpp
index afe82bdd2..e9e6543d9 100644
--- a/src/content_sao.cpp
+++ b/src/content_sao.cpp
@@ -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(
diff --git a/src/content_sao.h b/src/content_sao.h
index 04ee7ee1b..d56fdb709 100644
--- a/src/content_sao.h
+++ b/src/content_sao.h
@@ -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);
diff --git a/src/scriptapi.cpp b/src/scriptapi.cpp
index 6b850b19a..2e635feb9 100644
--- a/src/scriptapi.cpp
+++ b/src/scriptapi.cpp
@@ -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),