]> git.lizzy.rs Git - minetest.git/blobdiff - src/luaentity_common.cpp
Properly use time_from_last_punch for limiting PvP punch damage
[minetest.git] / src / luaentity_common.cpp
index 6ce20123651bf0f8cd587d6cb967c47a9ea26500..40dc4de350f7053d40474ed9300e57b034770a38 100644 (file)
@@ -22,14 +22,18 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "utility.h"
 
 #define PP(x) "("<<(x).X<<","<<(x).Y<<","<<(x).Z<<")"
+#define PP2(x) "("<<(x).X<<","<<(x).Y<<")"
 
 LuaEntityProperties::LuaEntityProperties():
-       physical(true),
+       physical(false),
        weight(5),
        collisionbox(-0.5,-0.5,-0.5, 0.5,0.5,0.5),
-       visual("single_sprite")
+       visual("sprite"),
+       visual_size(1,1),
+       spritediv(1,1),
+       initial_sprite_basepos(0,0)
 {
-       textures.push_back("unknown_block.png");
+       textures.push_back("unknown_object.png");
 }
 
 std::string LuaEntityProperties::dump()
@@ -39,12 +43,14 @@ std::string LuaEntityProperties::dump()
        os<<", weight="<<weight;
        os<<", collisionbox="<<PP(collisionbox.MinEdge)<<","<<PP(collisionbox.MaxEdge);
        os<<", visual="<<visual;
+       os<<", visual_size="<<PP2(visual_size);
        os<<", textures=[";
-       for(core::list<std::string>::Iterator i = textures.begin();
-                       i != textures.end(); i++){
-               os<<"\""<<(*i)<<"\" ";
+       for(u32 i=0; i<textures.size(); i++){
+               os<<"\""<<textures[i]<<"\" ";
        }
        os<<"]";
+       os<<", spritediv="<<PP2(spritediv);
+       os<<", initial_sprite_basepos="<<PP2(initial_sprite_basepos);
        return os.str();
 }
 
@@ -56,11 +62,13 @@ void LuaEntityProperties::serialize(std::ostream &os)
        writeV3F1000(os, collisionbox.MinEdge);
        writeV3F1000(os, collisionbox.MaxEdge);
        os<<serializeString(visual);
+       writeV2F1000(os, visual_size);
        writeU16(os, textures.size());
-       for(core::list<std::string>::Iterator i = textures.begin();
-                       i != textures.end(); i++){
-               os<<serializeString(*i);
+       for(u32 i=0; i<textures.size(); i++){
+               os<<serializeString(textures[i]);
        }
+       writeV2S16(os, spritediv);
+       writeV2S16(os, initial_sprite_basepos);
 }
 
 void LuaEntityProperties::deSerialize(std::istream &is)
@@ -73,11 +81,14 @@ void LuaEntityProperties::deSerialize(std::istream &is)
        collisionbox.MinEdge = readV3F1000(is);
        collisionbox.MaxEdge = readV3F1000(is);
        visual = deSerializeString(is);
+       visual_size = readV2F1000(is);
        textures.clear();
-       int texture_count = readU16(is);
-       for(int i=0; i<texture_count; i++){
+       u32 texture_count = readU16(is);
+       for(u32 i=0; i<texture_count; i++){
                textures.push_back(deSerializeString(is));
        }
+       spritediv = readV2S16(is);
+       initial_sprite_basepos = readV2S16(is);
 }