X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fcontent_sao.h;h=c5e1471bc2c4666fa7d172f913c1e6145392f438;hb=013921782b1a8506f4aee1d1be0312002eddd575;hp=4bb35b70deeb2966ac4d1a9d10f4d43a991889c7;hpb=526eedf98e45fc3b0ad768ecb1d0cbc1968def2f;p=oweals%2Fminetest.git diff --git a/src/content_sao.h b/src/content_sao.h index 4bb35b70d..c5e1471bc 100644 --- a/src/content_sao.h +++ b/src/content_sao.h @@ -50,8 +50,9 @@ public: std::string getClientInitializationData(); std::string getStaticData(); InventoryItem* createInventoryItem(); - InventoryItem* createPickedUpItem(){return createInventoryItem();} - void rightClick(Player *player); + void punch(ServerActiveObject *puncher); + void rightClick(ServerActiveObject *clicker); + float getMinimumSavedMovement(){ return 0.1*BS; } private: std::string m_inventorystring; v3f m_speed_f; @@ -70,7 +71,7 @@ public: void step(float dtime, bool send_recommended); std::string getClientInitializationData(); std::string getStaticData(); - InventoryItem* createPickedUpItem(); + void punch(ServerActiveObject *puncher); private: bool m_is_active; IntervalLimiter m_inactive_interval; @@ -96,8 +97,7 @@ public: std::string getClientInitializationData(); std::string getStaticData(); InventoryItem* createPickedUpItem(){return NULL;} - u16 punch(const std::string &toolname, v3f dir, - const std::string &playername); + void punch(ServerActiveObject *puncher); bool isPeaceful(){return false;} private: void doDamage(u16 d); @@ -157,8 +157,7 @@ public: std::string getClientInitializationData(); void step(float dtime, bool send_recommended); InventoryItem* createPickedUpItem(){return NULL;} - u16 punch(const std::string &toolname, v3f dir, - const std::string &playername); + void punch(ServerActiveObject *puncher); bool isPeaceful(); private: void sendPosition(); @@ -205,30 +204,41 @@ public: ~LuaEntitySAO(); u8 getType() const {return ACTIVEOBJECT_TYPE_LUAENTITY;} - virtual void addedToEnvironment(u16 id); + virtual void addedToEnvironment(); static ServerActiveObject* create(ServerEnvironment *env, v3f pos, const std::string &data); void step(float dtime, bool send_recommended); std::string getClientInitializationData(); std::string getStaticData(); InventoryItem* createPickedUpItem(); - u16 punch(const std::string &toolname, v3f dir, - const std::string &playername); - void rightClick(Player *player); - + void punch(ServerActiveObject *puncher); + void rightClick(ServerActiveObject *clicker); void setPos(v3f pos); - void moveTo(v3f pos); + void moveTo(v3f pos, bool continuous); + float getMinimumSavedMovement(); + /* LuaEntitySAO-specific */ + void setVelocity(v3f velocity); + void setAcceleration(v3f acceleration); + v3f getAcceleration(); + void setTextureMod(const std::string &mod); + void setSprite(v2s16 p, int num_frames, float framelength, + bool select_horiz_by_yawpitch); private: - void sendPosition(bool do_interpolate); + void sendPosition(bool do_interpolate, bool is_movement_end); std::string m_init_name; std::string m_init_state; bool m_registered; struct LuaEntityProperties *m_prop; + v3f m_velocity; + v3f m_acceleration; float m_yaw; float m_last_sent_yaw; v3f m_last_sent_position; + v3f m_last_sent_velocity; + float m_last_sent_position_timer; + float m_last_sent_move_precision; }; #endif