#include "mods.h"
#include "inventorymanager.h"
#include "subgame.h"
-#include "rollback_interface.h" // Needed for rollbackRevertActions()
#include "util/numeric.h"
#include "util/thread.h"
#include "environment.h"
class Player;
class PlayerSAO;
class IRollbackManager;
+struct RollbackAction;
class EmergeManager;
class GameScripting;
class ServerEnvironment;
// Envlock and conlock should be locked when using scriptapi
GameScripting *getScriptIface(){ return m_script; }
- // Envlock should be locked when using the rollback manager
- IRollbackManager *getRollbackManager(){ return m_rollback; }
-
//TODO: determine what (if anything) should be locked to access EmergeManager
EmergeManager *getEmergeManager(){ return m_emerge; }
virtual u16 allocateUnknownNodeId(const std::string &name);
virtual ISoundManager* getSoundManager();
virtual MtEventManager* getEventManager();
- virtual IRollbackReportSink* getRollbackReportSink();
+ virtual scene::ISceneManager* getSceneManager();
+ virtual IRollbackManager *getRollbackManager() { return m_rollback; }
+
IWritableItemDefManager* getWritableItemDefManager();
IWritableNodeDefManager* getWritableNodeDefManager();
inline Address getPeerAddress(u16 peer_id)
{ return m_con.GetPeerAddress(peer_id); }
- bool setLocalPlayerAnimations(Player *player, v2f animation_frames[4], f32 frame_speed);
+ bool setLocalPlayerAnimations(Player *player, v2s32 animation_frames[4], f32 frame_speed);
+ bool setPlayerEyeOffset(Player *player, v3f first, v3f third);
bool setSky(Player *player, const video::SColor &bgcolor,
const std::string &type, const std::vector<std::string> ¶ms);
void SendPlayerHP(u16 peer_id);
void SendPlayerBreath(u16 peer_id);
void SendMovePlayer(u16 peer_id);
- void SendLocalPlayerAnimations(u16 peer_id, v2f animation_frames[4], f32 animation_speed);
+ void SendLocalPlayerAnimations(u16 peer_id, v2s32 animation_frames[4], f32 animation_speed);
+ void SendEyeOffset(u16 peer_id, v3f first, v3f third);
void SendPlayerPrivileges(u16 peer_id);
void SendPlayerInventoryFormspec(u16 peer_id);
void SendShowFormspecMessage(u16 peer_id, const std::string &formspec, const std::string &formname);
void UpdateCrafting(u16 peer_id);
// When called, connection mutex should be locked
- RemoteClient* getClient(u16 peer_id,ClientState state_min=Active);
- RemoteClient* getClientNoEx(u16 peer_id,ClientState state_min=Active);
+ RemoteClient* getClient(u16 peer_id,ClientState state_min=CS_Active);
+ RemoteClient* getClientNoEx(u16 peer_id,ClientState state_min=CS_Active);
// When called, environment mutex should be locked
std::string getPlayerName(u16 peer_id);
// Rollback manager (behind m_env_mutex)
IRollbackManager *m_rollback;
- bool m_rollback_sink_enabled;
bool m_enable_rollback_recording; // Updated once in a while
// Emerge manager