diff options
Diffstat (limited to 'src/content_sao.h')
-rw-r--r-- | src/content_sao.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/content_sao.h b/src/content_sao.h index 060c18341..078feb273 100644 --- a/src/content_sao.h +++ b/src/content_sao.h @@ -139,5 +139,52 @@ private: bool m_touching_ground; }; +class Settings; + +class MobV2SAO : public ServerActiveObject +{ +public: + MobV2SAO(ServerEnvironment *env, u16 id, v3f pos, + Settings *init_properties); + virtual ~MobV2SAO(); + u8 getType() const + {return ACTIVEOBJECT_TYPE_MOBV2;} + static ServerActiveObject* create(ServerEnvironment *env, u16 id, v3f pos, + const std::string &data); + std::string getStaticData(); + std::string getClientInitializationData(); + void step(float dtime, bool send_recommended); + InventoryItem* createPickedUpItem(){return NULL;} + u16 punch(const std::string &toolname, v3f dir); +private: + void setPropertyDefaults(); + void readProperties(); + void updateProperties(); + void doDamage(u16 d); + + std::string m_move_type; + v3f m_speed; + v3f m_last_sent_position; + v3f m_oldpos; + float m_yaw; + float m_counter1; + float m_counter2; + float m_age; + bool m_touching_ground; + int m_hp; + bool m_walk_around; + float m_walk_around_timer; + bool m_next_pos_exists; + v3s16 m_next_pos_i; + float m_shoot_reload_timer; + bool m_shooting; + float m_shooting_timer; + float m_die_age; + v2f m_size; + bool m_falling; + + Settings *m_properties; +}; + #endif |