the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
1#include "stdafx.h"
2#include "LevelSettings.h"
3#include "net.minecraft.world.level.storage.h"
4#include "LevelType.h"
5
6GameType *GameType::NOT_SET = NULL;
7GameType *GameType::SURVIVAL= NULL;
8GameType *GameType::CREATIVE = NULL;
9GameType *GameType::ADVENTURE = NULL;
10
11void GameType::staticCtor()
12{
13 NOT_SET = new GameType(-1, L"");
14 SURVIVAL = new GameType(0, L"survival");
15 CREATIVE = new GameType(1, L"creative");
16 ADVENTURE = new GameType(2, L"adventure");
17}
18
19GameType::GameType(int id, const wstring &name)
20{
21 this->id = id;
22 this->name = name;
23}
24
25int GameType::getId()
26{
27 return id;
28}
29
30wstring GameType::getName()
31{
32 return name;
33}
34
35void GameType::updatePlayerAbilities(Abilities *abilities)
36{
37 if (this == CREATIVE)
38 {
39 abilities->mayfly = true;
40 abilities->instabuild = true;
41 abilities->invulnerable = true;
42 }
43 else
44 {
45 abilities->mayfly = false;
46 abilities->instabuild = false;
47 abilities->invulnerable = false;
48 abilities->flying = false;
49 }
50 abilities->mayBuild = !isAdventureRestricted();
51}
52
53bool GameType::isAdventureRestricted()
54{
55 return this == ADVENTURE;
56}
57
58bool GameType::isCreative()
59{
60 return this == CREATIVE;
61}
62
63bool GameType::isSurvival()
64{
65 return this == SURVIVAL || this == ADVENTURE;
66}
67
68GameType *GameType::byId(int id)
69{
70 if(id == NOT_SET->id) return NOT_SET;
71 else if(id == SURVIVAL->id) return SURVIVAL;
72 else if(id == CREATIVE->id) return CREATIVE;
73 else if(id == ADVENTURE->id) return ADVENTURE;
74
75 return SURVIVAL;
76}
77
78GameType *GameType::byName(const wstring &name)
79{
80 if(name.compare(NOT_SET->name) == 0) return NOT_SET;
81 else if(name.compare(SURVIVAL->name) == 0) return SURVIVAL;
82 else if(name.compare(CREATIVE->name) == 0) return CREATIVE;
83 else if(name.compare(ADVENTURE->name) == 0) return ADVENTURE;
84
85 return SURVIVAL;
86}
87
88void LevelSettings::_init(__int64 seed, GameType *gameType, bool generateMapFeatures, bool hardcore, bool newSeaLevel, LevelType *levelType, int xzSize, int hellScale)
89{
90 this->seed = seed;
91 this->gameType = gameType;
92 this->hardcore = hardcore;
93 this->generateMapFeatures = generateMapFeatures;
94 this->newSeaLevel = newSeaLevel;
95 this->levelType = levelType;
96 this->allowCommands = false;
97 this->startingBonusItems = false;
98 levelTypeOptions = L"";
99 m_xzSize = xzSize;
100 m_hellScale = hellScale;
101}
102
103LevelSettings::LevelSettings(__int64 seed, GameType *gameType, bool generateMapFeatures, bool hardcore, bool newSeaLevel, LevelType *levelType, int xzSize, int hellScale) :
104 seed(seed),
105 gameType(gameType),
106 hardcore(hardcore),
107 generateMapFeatures(generateMapFeatures),
108 newSeaLevel(newSeaLevel),
109 levelType(levelType),
110 startingBonusItems(false)
111{
112 _init(seed, gameType, generateMapFeatures, hardcore, newSeaLevel, levelType, xzSize, hellScale);
113}
114
115LevelSettings::LevelSettings(LevelData *levelData)
116{
117 _init(levelData->getSeed(), levelData->getGameType(), levelData->isGenerateMapFeatures(), levelData->isHardcore(), levelData->useNewSeaLevel(), levelData->getGenerator(), levelData->getXZSize(), levelData->getHellScale() );
118}
119
120LevelSettings *LevelSettings::enableStartingBonusItems()
121{
122 startingBonusItems = true;
123 return this;
124}
125
126LevelSettings *LevelSettings::enableSinglePlayerCommands()
127{
128 allowCommands = true;
129 return this;
130}
131
132LevelSettings *LevelSettings::setLevelTypeOptions(const wstring &options)
133{
134 levelTypeOptions = options;
135 return this;
136}
137
138bool LevelSettings::hasStartingBonusItems()
139{
140 return startingBonusItems;
141}
142
143__int64 LevelSettings::getSeed()
144{
145 return seed;
146}
147
148GameType *LevelSettings::getGameType()
149{
150 return gameType;
151}
152
153bool LevelSettings::isHardcore()
154{
155 return hardcore;
156}
157
158LevelType *LevelSettings::getLevelType()
159{
160 return levelType;
161}
162
163bool LevelSettings::getAllowCommands()
164{
165 return allowCommands;
166}
167
168bool LevelSettings::isGenerateMapFeatures()
169{
170 return generateMapFeatures;
171}
172
173GameType *LevelSettings::validateGameType(int gameType)
174{
175 return GameType::byId(gameType);
176}
177
178bool LevelSettings::useNewSeaLevel()
179{
180 return newSeaLevel;
181}
182
183// 4J Added
184int LevelSettings::getXZSize()
185{
186 return m_xzSize;
187}
188
189int LevelSettings::getHellScale()
190{
191 return m_hellScale;
192}
193
194wstring LevelSettings::getLevelTypeOptions()
195{
196 return levelTypeOptions;
197}