#include "activeobject.h"
class Server;
+class ServerEnvironment;
class ActiveBlockModifier;
class ServerActiveObject;
typedef struct lua_State lua_State;
ActiveBlockModifier *abm;
float timer;
- ABMWithState(ActiveBlockModifier *abm_):
- abm(abm_)
- {}
+ ABMWithState(ActiveBlockModifier *abm_);
};
/*
void activateBlock(MapBlock *block, u32 additional_dtime=0);
/*
- ActiveBlockModifiers (TODO)
+ ActiveBlockModifiers
-------------------------------------------
- NOTE: Not used currently (TODO: Use or remove)
*/
void addActiveBlockModifier(ActiveBlockModifier *abm);
- /* Other stuff */
+ /*
+ Other stuff
+ -------------------------------------------
+ */
+
+ // Find all active objects inside a radius around a point
+ std::set<u16> getObjectsInsideRadius(v3f pos, float radius);
// Clear all objects, loading and going through every MapBlock
void clearAllObjects();
+ // This makes stuff happen
void step(f32 dtime);
private:
#ifndef SERVER
#include "clientobject.h"
+class ClientSimpleObject;
/*
The client-side environment.
}
}
+ /*
+ ClientSimpleObjects
+ */
+
+ void addSimpleObject(ClientSimpleObject *simple);
+
/*
ActiveObjects
*/
IGameDef *m_gamedef;
IrrlichtDevice *m_irr;
core::map<u16, ClientActiveObject*> m_active_objects;
+ core::list<ClientSimpleObject*> m_simple_objects;
Queue<ClientEnvEvent> m_client_event_queue;
IntervalLimiter m_active_object_light_update_interval;
IntervalLimiter m_lava_hurt_interval;