mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-04-24 07:57:23 +00:00
154 lines
4.8 KiB
C++
154 lines
4.8 KiB
C++
#pragma once
|
|
|
|
#include "GameRules.h"
|
|
|
|
class Player;
|
|
class CompoundTag;
|
|
class LevelSettings;
|
|
class LevelType;
|
|
class GameType;
|
|
|
|
class LevelData {
|
|
friend class DerivedLevelData;
|
|
|
|
private:
|
|
int64_t seed;
|
|
LevelType* m_pGenerator; // = LevelType.normal;
|
|
std::wstring generatorOptions;
|
|
int xSpawn;
|
|
int ySpawn;
|
|
int zSpawn;
|
|
int64_t gameTime;
|
|
int64_t dayTime;
|
|
int64_t lastPlayed;
|
|
int64_t sizeOnDisk;
|
|
// CompoundTag *loadedPlayerTag; // 4J removed
|
|
int dimension;
|
|
std::wstring levelName;
|
|
int version;
|
|
|
|
bool raining;
|
|
int rainTime;
|
|
|
|
bool thundering;
|
|
int thunderTime;
|
|
GameType* gameType;
|
|
bool generateMapFeatures;
|
|
bool hardcore;
|
|
bool allowCommands;
|
|
bool initialized;
|
|
bool newSeaLevel; // 4J added
|
|
bool hasBeenInCreative; // 4J added
|
|
bool spawnBonusChest; // 4J added
|
|
int m_xzSize; // 4J Added
|
|
#ifdef _LARGE_WORLDS
|
|
int m_xzSizeOld; // 4J MGH Added, for expanding worlds
|
|
int m_hellScaleOld;
|
|
bool m_classicEdgeMoat;
|
|
bool m_smallEdgeMoat;
|
|
bool m_mediumEdgeMoat;
|
|
#endif
|
|
int m_hellScale; // 4J Added
|
|
|
|
// 4J added
|
|
int xStronghold;
|
|
int yStronghold;
|
|
int zStronghold;
|
|
bool bStronghold;
|
|
|
|
int xStrongholdEndPortal;
|
|
int zStrongholdEndPortal;
|
|
bool bStrongholdEndPortal;
|
|
|
|
GameRules gameRules;
|
|
|
|
protected:
|
|
LevelData();
|
|
|
|
public:
|
|
LevelData(CompoundTag* tag);
|
|
LevelData(LevelSettings* levelSettings, const std::wstring& levelName);
|
|
LevelData(LevelData* copy);
|
|
CompoundTag* createTag();
|
|
CompoundTag* createTag(std::vector<std::shared_ptr<Player> >* players);
|
|
|
|
enum { DIMENSION_NETHER = -1, DIMENSION_OVERWORLD = 0, DIMENSION_END = 1 };
|
|
|
|
protected:
|
|
virtual void setTagData(
|
|
CompoundTag* tag); // 4J - removed CompoundTag *playerTag
|
|
|
|
public:
|
|
virtual int64_t getSeed();
|
|
virtual int getXSpawn();
|
|
virtual int getYSpawn();
|
|
virtual int getZSpawn();
|
|
virtual int getXStronghold();
|
|
virtual int getZStronghold();
|
|
virtual int getXStrongholdEndPortal();
|
|
virtual int getZStrongholdEndPortal();
|
|
virtual int64_t getGameTime();
|
|
virtual int64_t getDayTime();
|
|
virtual int64_t getSizeOnDisk();
|
|
virtual CompoundTag* getLoadedPlayerTag();
|
|
// int getDimension(); // 4J Removed TU 9 as it's never accurate
|
|
virtual void setSeed(int64_t seed);
|
|
virtual void setXSpawn(int xSpawn);
|
|
virtual void setYSpawn(int ySpawn);
|
|
virtual void setZSpawn(int zSpawn);
|
|
virtual void setHasStronghold();
|
|
virtual bool getHasStronghold();
|
|
virtual void setXStronghold(int xStronghold);
|
|
virtual void setZStronghold(int zStronghold);
|
|
virtual void setHasStrongholdEndPortal();
|
|
virtual bool getHasStrongholdEndPortal();
|
|
virtual void setXStrongholdEndPortal(int xStrongholdEndPortal);
|
|
virtual void setZStrongholdEndPortal(int zStrongholdEndPortal);
|
|
|
|
virtual void setGameTime(int64_t time);
|
|
virtual void setDayTime(int64_t time);
|
|
virtual void setSizeOnDisk(int64_t sizeOnDisk);
|
|
virtual void setLoadedPlayerTag(CompoundTag* loadedPlayerTag);
|
|
// void setDimension(int dimension); // 4J Removed TU 9 as it's never used
|
|
virtual void setSpawn(int xSpawn, int ySpawn, int zSpawn);
|
|
virtual std::wstring getLevelName();
|
|
virtual void setLevelName(const std::wstring& levelName);
|
|
virtual int getVersion();
|
|
virtual void setVersion(int version);
|
|
virtual int64_t getLastPlayed();
|
|
virtual bool isThundering();
|
|
virtual void setThundering(bool thundering);
|
|
virtual int getThunderTime();
|
|
virtual void setThunderTime(int thunderTime);
|
|
virtual bool isRaining();
|
|
virtual void setRaining(bool raining);
|
|
virtual int getRainTime();
|
|
virtual void setRainTime(int rainTime);
|
|
virtual GameType* getGameType();
|
|
virtual bool isGenerateMapFeatures();
|
|
virtual bool getSpawnBonusChest();
|
|
virtual void setGameType(GameType* gameType);
|
|
virtual bool useNewSeaLevel();
|
|
virtual bool getHasBeenInCreative(); // 4J Added
|
|
virtual void setHasBeenInCreative(bool value); // 4J Added
|
|
virtual LevelType* getGenerator();
|
|
virtual void setGenerator(LevelType* generator);
|
|
virtual std::wstring getGeneratorOptions();
|
|
virtual void setGeneratorOptions(const std::wstring& options);
|
|
virtual bool isHardcore();
|
|
virtual bool getAllowCommands();
|
|
virtual void setAllowCommands(bool allowCommands);
|
|
virtual bool isInitialized();
|
|
virtual void setInitialized(bool initialized);
|
|
virtual GameRules* getGameRules();
|
|
virtual int getXZSize(); // 4J Added
|
|
#ifdef _LARGE_WORLDS
|
|
virtual int getXZSizeOld(); // 4J Added
|
|
virtual void getMoatFlags(bool* bClassicEdgeMoat, bool* bSmallEdgeMoat,
|
|
bool* bMediumEdgeMoat); // 4J MGH - added
|
|
virtual int getXZHellSizeOld(); // 4J Added
|
|
|
|
#endif
|
|
virtual int getHellScale(); // 4J Addded
|
|
};
|