- The map
- Players
- Other objects
- - The current time in the game (actually it only contains the brightness)
+ - The current time in the game
- etc.
*/
class ActiveBlockModifier;
class ServerActiveObject;
typedef struct lua_State lua_State;
+class ITextureSource;
+class IGameDef;
class Environment
{
class ServerEnvironment : public Environment
{
public:
- ServerEnvironment(ServerMap *map, lua_State *L);
+ ServerEnvironment(ServerMap *map, lua_State *L, IGameDef *gamedef);
~ServerEnvironment();
Map & getMap()
- {
- return *m_map;
- }
+ { return *m_map; }
ServerMap & getServerMap()
- {
- return *m_map;
- }
+ { return *m_map; }
lua_State* getLua()
+ { return m_lua; }
+
+ IGameDef *getGameDef()
+ { return m_gamedef; }
+
+ float getSendRecommendedInterval()
{
- return m_lua;
+ return 0.10;
}
/*
/*
ActiveBlockModifiers (TODO)
-------------------------------------------
+ NOTE: Not used currently (TODO: Use or remove)
*/
void addActiveBlockModifier(ActiveBlockModifier *abm);
ServerMap *m_map;
// Lua state
lua_State *m_lua;
+ // Game definition
+ IGameDef *m_gamedef;
// Active object list
core::map<u16, ServerActiveObject*> m_active_objects;
// Outgoing network message buffer for active objects
These are fed into ServerEnvironment at initialization time;
ServerEnvironment handles deleting them.
+
+ NOTE: Not used currently (TODO: Use or remove)
*/
class ActiveBlockModifier
class ClientEnvironment : public Environment
{
public:
- ClientEnvironment(ClientMap *map, scene::ISceneManager *smgr);
+ ClientEnvironment(ClientMap *map, scene::ISceneManager *smgr,
+ ITextureSource *texturesource, IGameDef *gamedef);
~ClientEnvironment();
Map & getMap()
virtual void addPlayer(Player *player);
LocalPlayer * getLocalPlayer();
-
+
+ // Slightly deprecated
void updateMeshes(v3s16 blockpos);
void expireMeshes(bool only_daynight_diffed);
if(getDayNightRatio() != old_dr)
{
- dout_client<<DTIME<<"ClientEnvironment: DayNightRatio changed"
- <<" -> expiring meshes"<<std::endl;
+ /*infostream<<"ClientEnvironment: DayNightRatio changed"
+ <<" -> expiring meshes"<<std::endl;*/
expireMeshes(true);
}
}
private:
ClientMap *m_map;
scene::ISceneManager *m_smgr;
+ ITextureSource *m_texturesource;
+ IGameDef *m_gamedef;
core::map<u16, ClientActiveObject*> m_active_objects;
Queue<ClientEnvEvent> m_client_event_queue;
IntervalLimiter m_active_object_light_update_interval;