2012-02-01 17:38:03 -05:00
|
|
|
|
2011-10-03 14:41:19 -04:00
|
|
|
#pragma once
|
|
|
|
|
2012-02-01 17:38:03 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#include "cAuthenticator.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-26 09:07:39 -04:00
|
|
|
class cThread;
|
2011-10-03 14:41:19 -04:00
|
|
|
class cMonsterConfig;
|
|
|
|
class cGroupManager;
|
|
|
|
class cRecipeChecker;
|
|
|
|
class cFurnaceRecipe;
|
|
|
|
class cWebAdmin;
|
|
|
|
class cPluginManager;
|
|
|
|
class cServer;
|
|
|
|
class cWorld;
|
2012-03-10 17:27:24 -05:00
|
|
|
class cPlayer;
|
|
|
|
typedef cItemCallback<cPlayer> cPlayerListCallback;
|
2012-02-01 17:38:03 -05:00
|
|
|
|
2012-02-13 16:47:03 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-10-03 14:41:19 -04:00
|
|
|
class cRoot //tolua_export
|
|
|
|
{ //tolua_export
|
|
|
|
public:
|
|
|
|
static cRoot* Get() { return s_Root; } //tolua_export
|
|
|
|
|
|
|
|
cRoot();
|
|
|
|
~cRoot();
|
|
|
|
|
|
|
|
void Start();
|
|
|
|
|
|
|
|
cServer* GetServer() { return m_Server; } //tolua_export
|
2012-02-13 16:47:03 -05:00
|
|
|
OBSOLETE cWorld* GetWorld(); //tolua_export
|
2011-11-01 17:57:08 -04:00
|
|
|
cWorld* GetDefaultWorld(); //tolua_export
|
2012-03-07 08:36:30 -05:00
|
|
|
cWorld* GetWorld( const AString & a_WorldName ); //tolua_export
|
2011-10-03 14:41:19 -04:00
|
|
|
cMonsterConfig *GetMonsterConfig() { return m_MonsterConfig;}
|
|
|
|
|
|
|
|
cGroupManager* GetGroupManager() { return m_GroupManager; } //tolua_export
|
|
|
|
cRecipeChecker* GetRecipeChecker() { return m_RecipeChecker; } //tolua_export
|
|
|
|
cFurnaceRecipe* GetFurnaceRecipe() { return m_FurnaceRecipe; } //tolua_export
|
|
|
|
cWebAdmin* GetWebAdmin() { return m_WebAdmin; } //tolua_export
|
|
|
|
cPluginManager* GetPluginManager() { return m_PluginManager; } //tolua_export
|
2012-02-01 17:38:03 -05:00
|
|
|
cAuthenticator & GetAuthenticator() {return m_Authenticator; }
|
2011-10-03 14:41:19 -04:00
|
|
|
|
2012-02-01 17:38:03 -05:00
|
|
|
void ServerCommand(const char* a_Cmd ); //tolua_export
|
|
|
|
|
2012-03-09 08:42:28 -05:00
|
|
|
void KickUser(int a_ClientID, const AString & a_Reason); // Kicks the user, no matter in what world they are. Used from cAuthenticator
|
|
|
|
void AuthenticateUser(int a_ClientID); // Called by cAuthenticator to auth the specified user
|
2011-11-01 17:57:08 -04:00
|
|
|
|
|
|
|
void TickWorlds( float a_Dt );
|
2012-02-01 17:38:03 -05:00
|
|
|
|
2012-05-25 03:18:52 -04:00
|
|
|
/// Returns the number of chunks loaded
|
2012-02-08 13:57:04 -05:00
|
|
|
int GetTotalChunkCount(void); // tolua_export
|
|
|
|
|
2012-03-10 17:27:24 -05:00
|
|
|
/// Saves all chunks in all worlds
|
|
|
|
void SaveAllChunks(void);
|
|
|
|
|
|
|
|
/// Calls the callback for each player in all worlds
|
|
|
|
bool ForEachPlayer(cPlayerListCallback & a_Callback);
|
|
|
|
|
2011-10-03 14:41:19 -04:00
|
|
|
private:
|
2012-02-22 10:35:10 -05:00
|
|
|
void LoadGlobalSettings();
|
2012-02-01 17:38:03 -05:00
|
|
|
|
2011-11-01 17:57:08 -04:00
|
|
|
void LoadWorlds();
|
|
|
|
void UnloadWorlds();
|
|
|
|
|
2012-02-01 17:38:03 -05:00
|
|
|
cServer * m_Server;
|
|
|
|
cMonsterConfig * m_MonsterConfig;
|
2011-10-03 14:41:19 -04:00
|
|
|
|
2012-02-01 17:38:03 -05:00
|
|
|
cGroupManager * m_GroupManager;
|
|
|
|
cRecipeChecker * m_RecipeChecker;
|
|
|
|
cFurnaceRecipe * m_FurnaceRecipe;
|
|
|
|
cWebAdmin * m_WebAdmin;
|
|
|
|
cPluginManager * m_PluginManager;
|
|
|
|
cAuthenticator m_Authenticator;
|
2011-10-03 14:41:19 -04:00
|
|
|
|
2012-02-01 17:38:03 -05:00
|
|
|
cMCLogger * m_Log;
|
2011-10-03 14:41:19 -04:00
|
|
|
|
|
|
|
bool m_bStop;
|
|
|
|
bool m_bRestart;
|
|
|
|
|
2011-11-01 17:57:08 -04:00
|
|
|
struct sRootState;
|
|
|
|
sRootState* m_pState;
|
|
|
|
|
2011-10-26 09:07:39 -04:00
|
|
|
cThread* m_InputThread;
|
|
|
|
static void InputThread(void* a_Params);
|
2011-10-03 14:41:19 -04:00
|
|
|
|
|
|
|
static cRoot* s_Root;
|
2012-02-01 17:38:03 -05:00
|
|
|
}; //tolua_export
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|