#include <set>
#include <list>
+#include <queue>
#include <map>
#include "irr_v3d.h"
#include "activeobject.h"
bool swapNode(v3s16 p, const MapNode &n);
// Find all active objects inside a radius around a point
- std::set<u16> getObjectsInsideRadius(v3f pos, float radius);
+ void getObjectsInsideRadius(std::vector<u16> &objects, v3f pos, float radius);
// Clear all objects, loading and going through every MapBlock
void clearAllObjects();
// Active object list
std::map<u16, ServerActiveObject*> m_active_objects;
// Outgoing network message buffer for active objects
- std::list<ActiveObjectMessage> m_active_object_messages;
+ std::queue<ActiveObjectMessage> m_active_object_messages;
// Some timers
float m_send_recommended_timer;
IntervalLimiter m_object_management_interval;
u32 m_game_time;
// A helper variable for incrementing the latter
float m_game_time_fraction_counter;
- std::list<ABMWithState> m_abms;
+ std::vector<ABMWithState> m_abms;
// An interval for generally sending object positions and stuff
float m_recommended_send_interval;
// Estimate for general maximum lag as determined by server.
#ifndef SERVER
#include "clientobject.h"
+#include "content_cao.h"
+
class ClientSimpleObject;
/*
ActiveObjects
*/
+ GenericCAO* getGenericCAO(u16 id);
ClientActiveObject* getActiveObject(u16 id);
/*
// Get event from queue. CEE_NONE is returned if queue is empty.
ClientEnvEvent getClientEvent();
- u16 m_attachements[USHRT_MAX];
+ u16 attachement_parent_ids[USHRT_MAX + 1];
std::list<std::string> getPlayerNames()
{ return m_player_names; }
IGameDef *m_gamedef;
IrrlichtDevice *m_irr;
std::map<u16, ClientActiveObject*> m_active_objects;
- std::list<ClientSimpleObject*> m_simple_objects;
+ std::vector<ClientSimpleObject*> m_simple_objects;
std::list<ClientEnvEvent> m_client_event_queue;
IntervalLimiter m_active_object_light_update_interval;
IntervalLimiter m_lava_hurt_interval;