summaryrefslogtreecommitdiff
path: root/src/content_sao.cpp
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2012-03-30 12:51:51 +0300
committerPerttu Ahola <celeron55@gmail.com>2012-03-30 12:51:51 +0300
commit9e7ccedba4d9a94c7f2d20013c55e82aac3fe6a3 (patch)
treea2139176c85cae0424f64edeb21d1a2f72bb2586 /src/content_sao.cpp
parentb9ffb5f30d64d365e6792d0d3acff552d9fcd0fd (diff)
downloadminetest-9e7ccedba4d9a94c7f2d20013c55e82aac3fe6a3.tar.gz
minetest-9e7ccedba4d9a94c7f2d20013c55e82aac3fe6a3.tar.bz2
minetest-9e7ccedba4d9a94c7f2d20013c55e82aac3fe6a3.zip
ObjectProperties
Diffstat (limited to 'src/content_sao.cpp')
-rw-r--r--src/content_sao.cpp61
1 files changed, 21 insertions, 40 deletions
diff --git a/src/content_sao.cpp b/src/content_sao.cpp
index 5b0dc3eb4..054e4944f 100644
--- a/src/content_sao.cpp
+++ b/src/content_sao.cpp
@@ -336,8 +336,6 @@ ServerActiveObject* createItemSAO(ServerEnvironment *env, v3f pos,
LuaEntitySAO
*/
-#include "luaentity_common.h"
-
// Prototype (registers item for deserialization)
LuaEntitySAO proto_LuaEntitySAO(NULL, v3f(0,0,0), "_prototype", "");
@@ -347,7 +345,6 @@ LuaEntitySAO::LuaEntitySAO(ServerEnvironment *env, v3f pos,
m_init_name(name),
m_init_state(state),
m_registered(false),
- m_prop(new LuaEntityProperties),
m_hp(-1),
m_velocity(0,0,0),
m_acceleration(0,0,0),
@@ -377,7 +374,6 @@ LuaEntitySAO::~LuaEntitySAO()
lua_State *L = m_env->getLua();
scriptapi_luaentity_rm(L, m_id);
}
- delete m_prop;
}
void LuaEntitySAO::addedToEnvironment()
@@ -390,9 +386,9 @@ void LuaEntitySAO::addedToEnvironment()
if(m_registered){
// Get properties
- scriptapi_luaentity_get_properties(L, m_id, m_prop);
+ scriptapi_luaentity_get_properties(L, m_id, &m_prop);
// Initialize HP from properties
- m_hp = m_prop->hp_max;
+ m_hp = m_prop.hp_max;
}
// Activate entity, supplying serialized state
@@ -447,8 +443,8 @@ void LuaEntitySAO::step(float dtime, bool send_recommended)
m_last_sent_position_timer += dtime;
- if(m_prop->physical){
- core::aabbox3d<f32> box = m_prop->collisionbox;
+ if(m_prop.physical){
+ core::aabbox3d<f32> box = m_prop.collisionbox;
box.MinEdge *= BS;
box.MaxEdge *= BS;
collisionMoveResult moveresult;
@@ -511,13 +507,9 @@ std::string LuaEntitySAO::getClientInitializationData()
writeV3F1000(os, m_base_position);
writeF1000(os, m_yaw);
writeS16(os, m_hp);
- writeU8(os, 3); // number of messages stuffed in here
+ writeU8(os, 2); // number of messages stuffed in here
os<<serializeLongString(getPropertyPacket()); // message 1
os<<serializeLongString(gob_cmd_update_armor_groups(m_armor_groups)); // 2
- os<<serializeLongString(gob_cmd_set_sprite( // 3
- m_prop->initial_sprite_basepos,
- 1, 1.0, false
- ));
// return result
return os.str();
}
@@ -710,18 +702,7 @@ std::string LuaEntitySAO::getName()
std::string LuaEntitySAO::getPropertyPacket()
{
- return gob_cmd_set_properties(
- m_prop->hp_max,
- m_prop->physical,
- m_prop->weight,
- m_prop->collisionbox,
- m_prop->visual,
- m_prop->visual_size,
- m_prop->textures,
- m_prop->spritediv,
- true, // is_visible
- false // makes_footstep_sound
- );
+ return gob_cmd_set_properties(m_prop);
}
void LuaEntitySAO::sendPosition(bool do_interpolate, bool is_movement_end)
@@ -778,6 +759,19 @@ PlayerSAO::PlayerSAO(ServerEnvironment *env_, Player *player_, u16 peer_id_):
m_inventory = &m_player->inventory;
m_armor_groups["choppy"] = 2;
m_armor_groups["fleshy"] = 3;
+
+ m_prop.hp_max = PLAYER_MAX_HP;
+ m_prop.physical = false;
+ m_prop.weight = 75;
+ m_prop.collisionbox = core::aabbox3d<f32>(-1/3.,-1.0,-1/3., 1/3.,1.0,1/3.);
+ m_prop.visual = "upright_sprite";
+ m_prop.visual_size = v2f(1, 2);
+ m_prop.textures.clear();
+ m_prop.textures.push_back("player.png");
+ m_prop.textures.push_back("player_back.png");
+ m_prop.spritediv = v2s16(1,1);
+ m_prop.is_visible = (getHP() != 0);
+ m_prop.makes_footstep_sound = true;
}
PlayerSAO::~PlayerSAO()
@@ -1107,20 +1101,7 @@ void PlayerSAO::createCreativeInventory()
std::string PlayerSAO::getPropertyPacket()
{
- core::array<std::string> textures;
- textures.push_back("player.png");
- textures.push_back("player_back.png");
- return gob_cmd_set_properties(
- PLAYER_MAX_HP,
- false,
- 75,
- core::aabbox3d<f32>(-1/3.,-1.0,-1/3., 1/3.,1.0,1/3.),
- "upright_sprite",
- v2f(1, 2),
- textures,
- v2s16(1,1),
- (getHP() != 0), // is_visible
- true // makes_footstep_sound
- );
+ m_prop.is_visible = (getHP() != 0);
+ return gob_cmd_set_properties(m_prop);
}