mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-04-24 09:34:24 +00:00
78 lines
2.2 KiB
C++
78 lines
2.2 KiB
C++
#pragma once
|
|
class LevelType;
|
|
|
|
class Abilities;
|
|
class LevelData;
|
|
|
|
#define _ADVENTURE_MODE_ENABLED
|
|
|
|
// 4J Stu - Was Java enum class
|
|
class GameType {
|
|
public:
|
|
static GameType* NOT_SET;
|
|
static GameType* SURVIVAL;
|
|
static GameType* CREATIVE;
|
|
static GameType* ADVENTURE;
|
|
|
|
static void staticCtor();
|
|
|
|
private:
|
|
int id;
|
|
std::wstring name;
|
|
|
|
GameType(int id, const std::wstring& name);
|
|
|
|
public:
|
|
int getId();
|
|
std::wstring getName();
|
|
void updatePlayerAbilities(Abilities* abilities);
|
|
bool isAdventureRestricted();
|
|
bool isCreative();
|
|
bool isSurvival();
|
|
static GameType* byId(int id);
|
|
static GameType* byName(const std::wstring& name);
|
|
};
|
|
|
|
class LevelSettings {
|
|
private:
|
|
int64_t seed;
|
|
GameType* gameType;
|
|
bool generateMapFeatures;
|
|
bool hardcore;
|
|
bool newSeaLevel;
|
|
LevelType* levelType;
|
|
bool allowCommands;
|
|
bool startingBonusItems; // 4J - brought forward from 1.3.2
|
|
std::wstring levelTypeOptions;
|
|
int m_xzSize; // 4J Added
|
|
int m_hellScale;
|
|
|
|
void _init(int64_t seed, GameType* gameType, bool generateMapFeatures,
|
|
bool hardcore, bool newSeaLevel, LevelType* levelType,
|
|
int xzSize,
|
|
int hellScale); // 4J Added xzSize and hellScale param
|
|
|
|
public:
|
|
LevelSettings(int64_t seed, GameType* gameType, bool generateMapFeatures,
|
|
bool hardcore, bool newSeaLevel, LevelType* levelType,
|
|
int xzSize,
|
|
int hellScale); // 4J Added xzSize and hellScale param
|
|
LevelSettings(LevelData* levelData);
|
|
LevelSettings*
|
|
enableStartingBonusItems(); // 4J - brought forward from 1.3.2
|
|
LevelSettings* enableSinglePlayerCommands();
|
|
LevelSettings* setLevelTypeOptions(const std::wstring& options);
|
|
bool hasStartingBonusItems(); // 4J - brought forward from 1.3.2
|
|
int64_t getSeed();
|
|
GameType* getGameType();
|
|
bool isHardcore();
|
|
LevelType* getLevelType();
|
|
bool getAllowCommands();
|
|
bool isGenerateMapFeatures();
|
|
bool useNewSeaLevel();
|
|
int getXZSize(); // 4J Added
|
|
int getHellScale(); // 4J Added
|
|
static GameType* validateGameType(int gameType);
|
|
std::wstring getLevelTypeOptions();
|
|
};
|