summaryrefslogtreecommitdiff
path: root/src/serverobject.h
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2011-11-12 17:37:14 +0200
committerPerttu Ahola <celeron55@gmail.com>2011-11-29 19:13:40 +0200
commit1320d07068f25ff23ea27e120983c006f75bec24 (patch)
tree3357de80e98ecdb045c31213a551eb93fe5250b9 /src/serverobject.h
parent0b97ad838466ed44296a2c663b2dc034feb51f67 (diff)
downloadminetest-1320d07068f25ff23ea27e120983c006f75bec24.tar.gz
minetest-1320d07068f25ff23ea27e120983c006f75bec24.tar.bz2
minetest-1320d07068f25ff23ea27e120983c006f75bec24.zip
Scripting WIP: dynamic object stuff
Diffstat (limited to 'src/serverobject.h')
-rw-r--r--src/serverobject.h37
1 files changed, 19 insertions, 18 deletions
diff --git a/src/serverobject.h b/src/serverobject.h
index 66118cca0..7e767188a 100644
--- a/src/serverobject.h
+++ b/src/serverobject.h
@@ -71,6 +71,7 @@ public:
/*
Some more dynamic interface
*/
+
virtual void setPos(v3f pos)
{ setBasePosition(pos); }
// continuous: if true, object does not stop immediately at pos
@@ -80,7 +81,11 @@ public:
// saving to disk may be omitted
virtual float getMinimumSavedMovement()
{ return 2.0*BS; }
+
+ virtual bool isPeaceful(){return true;}
+ virtual std::string getDescription(){return "SAO";}
+
/*
Step object in time.
Messages added to messages are sent to client over network.
@@ -106,26 +111,22 @@ public:
*/
virtual std::string getStaticData(){return "";}
- /*
- Item that the player gets when this object is picked up.
- If NULL, object cannot be picked up.
- */
- virtual InventoryItem* createPickedUpItem(){return NULL;}
+ virtual void punch(ServerActiveObject *puncher){}
+ virtual void rightClick(ServerActiveObject *clicker){}
- /*
- If the object doesn't return an item, this will be called.
- Return value is tool wear.
- */
- virtual u16 punch(const std::string &toolname, v3f dir,
- const std::string &playername)
- {return 0;}
-
- /*
- */
- virtual void rightClick(Player *player){}
+ // Returns a reference
+ virtual InventoryItem* getWieldedItem()
+ { return NULL; }
+ virtual void damageWieldedItem(u16 amount)
+ {}
+ // If all fits, eats item and returns true. Otherwise returns false.
+ virtual bool addToInventory(InventoryItem *item)
+ {return false;}
+ virtual void setHP(s16 hp)
+ {}
+ virtual s16 getHP()
+ {return 0;}
- virtual bool isPeaceful(){return true;}
-
/*
Number of players which know about this object. Object won't be
deleted until this is 0 to keep the id preserved for the right