summaryrefslogtreecommitdiff
path: root/src/environment.h
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2011-04-21 19:35:17 +0300
committerPerttu Ahola <celeron55@gmail.com>2011-04-21 19:35:17 +0300
commitc638442e78b953556e7dadd4c0c34cb0c719bbc8 (patch)
treea7c623944ba26d64c4fbf3218025d8ec0145d849 /src/environment.h
parent3c61d57f6d7f627b32b4a8c2f461a8e01e7ac378 (diff)
downloadminetest-c638442e78b953556e7dadd4c0c34cb0c719bbc8.tar.gz
minetest-c638442e78b953556e7dadd4c0c34cb0c719bbc8.tar.bz2
minetest-c638442e78b953556e7dadd4c0c34cb0c719bbc8.zip
Some work-in-progress in hp and mobs and a frightening amount of random fixes.
Diffstat (limited to 'src/environment.h')
-rw-r--r--src/environment.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/environment.h b/src/environment.h
index e82cea6ae..00192d262 100644
--- a/src/environment.h
+++ b/src/environment.h
@@ -170,6 +170,24 @@ private:
Client uses an environment mutex.
*/
+enum ClientEnvEventType
+{
+ CEE_NONE,
+ CEE_PLAYER_DAMAGE
+};
+
+struct ClientEnvEvent
+{
+ ClientEnvEventType type;
+ union {
+ struct{
+ } none;
+ struct{
+ u8 amount;
+ } player_damage;
+ };
+};
+
class ClientEnvironment : public Environment
{
public:
@@ -214,15 +232,29 @@ public:
void removeActiveObject(u16 id);
void processActiveObjectMessage(u16 id, const std::string &data);
+
+ /*
+ Callbacks for activeobjects
+ */
+
+ void damageLocalPlayer(u8 damage);
+
+ /*
+ Client likes to call these
+ */
// Get all nearby objects
void getActiveObjects(v3f origin, f32 max_d,
core::array<DistanceSortedActiveObject> &dest);
+ // Get event from queue. CEE_NONE is returned if queue is empty.
+ ClientEnvEvent getClientEvent();
+
private:
ClientMap *m_map;
scene::ISceneManager *m_smgr;
core::map<u16, ClientActiveObject*> m_active_objects;
+ Queue<ClientEnvEvent> m_client_event_queue;
};
#endif