1111#include " mc/common/Brightness.h"
1212#include " mc/common/BrightnessPair.h"
1313#include " mc/deps/core/math/Color.h"
14+ #include " mc/deps/core/string/HashedString.h"
1415#include " mc/world/level/BlockSource.h"
1516#include " mc/world/level/DimensionConversionData.h"
1617#include " mc/world/level/Level.h"
2829#include " mc/world/level/levelgen/flat/FlatWorldGenerator.h"
2930#include " mc/world/level/levelgen/structure/EndCityFeature.h"
3031#include " mc/world/level/levelgen/structure/StructureFeatureRegistry.h"
31- #include " mc/world/level/levelgen/structure/registry// StructureSetRegistry.h"
32+ #include " mc/world/level/levelgen/structure/registry/StructureSetRegistry.h"
3233#include " mc/world/level/levelgen/synth/PerlinNoise.h"
3334#include " mc/world/level/levelgen/synth/PerlinSimplexNoise.h"
3435#include " mc/world/level/levelgen/synth/SimplexNoise.h"
3738#include " mc/world/level/levelgen/v1/TheEndGenerator.h"
3839#include " mc/world/level/levelgen/v1/VoidGenerator.h"
3940#include " mc/world/level/levelgen/v2/ChunkGeneratorStructureState.h"
41+ #include " mc/world/level/storage/Experiments.h"
4042#include " mc/world/level/storage/LevelData.h"
4143
44+ #include < memory>
45+
4246
4347namespace more_dimensions {
4448
@@ -117,30 +121,30 @@ CompoundTag SimpleCustomDimension::generateNewData(uint seed, GeneratorType gene
117121
118122void SimpleCustomDimension::init (br::worldgen::StructureSetRegistry const & structureSetRegistry) {
119123 loggerMoreDim.debug (__FUNCTION__);
120- setSkylight ( false ) ;
124+ mHasSkylight = false ;
121125 Dimension::init (structureSetRegistry);
122126}
123127
124128std::unique_ptr<WorldGenerator>
125129SimpleCustomDimension::createGenerator (br::worldgen::StructureSetRegistry const & structureSetRegistry) {
126130 loggerMoreDim.debug (__FUNCTION__);
127- auto & level = getLevel () ;
131+ auto & level = mLevel ;
128132 auto & levelData = level.getLevelData ();
129- auto biome = level.getBiomeRegistry ().lookupByName (levelData.getBiomeOverride () );
133+ auto biome = level.getBiomeRegistry ().lookupByName (levelData.mBiomeOverride );
130134
131135 std::unique_ptr<WorldGenerator> worldGenerator;
132136
133137 switch (generatorType) {
134138 case GeneratorType::Overworld: {
135139 worldGenerator = std::make_unique<OverworldGeneratorMultinoise>(*this , LevelSeed64{seed}, biome);
136- worldGenerator->getStructureFeatureRegistry (). mGeneratorState =
140+ worldGenerator->mStructureFeatureRegistry -> mGeneratorState =
137141 br::worldgen::ChunkGeneratorStructureState::createNormal (
138142 seed,
139143 worldGenerator->getBiomeSource (),
140144 structureSetRegistry
141145 );
142146 overworldAddStructureFeatures (
143- worldGenerator->getStructureFeatureRegistry () ,
147+ * worldGenerator->mStructureFeatureRegistry ,
144148 seed,
145149 false ,
146150 levelData.getBaseGameVersion ()
@@ -149,45 +153,46 @@ SimpleCustomDimension::createGenerator(br::worldgen::StructureSetRegistry const&
149153 }
150154 case GeneratorType::Nether: {
151155 worldGenerator = std::make_unique<NetherGenerator>(*this , seed, biome);
152- worldGenerator->getStructureFeatureRegistry (). mGeneratorState =
156+ worldGenerator->mStructureFeatureRegistry -> mGeneratorState =
153157 br::worldgen::ChunkGeneratorStructureState::createNormal (
154158 seed,
155159 worldGenerator->getBiomeSource (),
156160 structureSetRegistry
157161 );
158162 netherAddStructureFeatures (
159- worldGenerator->getStructureFeatureRegistry () ,
163+ * worldGenerator->mStructureFeatureRegistry ,
160164 seed,
161165 levelData.getBaseGameVersion (),
162- levelData.getExperiments ( )
166+ static_cast <Experiments&>( levelData.mExperiments . get () )
163167 );
164168 break ;
165169 }
166170 case GeneratorType::TheEnd: {
167171 worldGenerator = std::make_unique<TheEndGenerator>(*this , seed, biome);
168- worldGenerator->getStructureFeatureRegistry (). mGeneratorState =
172+ worldGenerator->mStructureFeatureRegistry -> mGeneratorState =
169173 br::worldgen::ChunkGeneratorStructureState::createNormal (
170174 seed,
171175 worldGenerator->getBiomeSource (),
172176 structureSetRegistry
173177 );
174- worldGenerator->getStructureFeatureRegistry ().mStructureFeatures ->emplace_back (
175- std::make_unique<EndCityFeature>(*this , seed)
176- );
178+
179+ // worldGenerator->mStructureFeatureRegistry->mStructureFeatures->emplace_back(
180+ // std::make_unique<EndCityFeature>(*this, seed)
181+ // );
177182 break ;
178183 }
179184 case GeneratorType::Flat: {
180- worldGenerator = std::make_unique<FlatWorldGenerator>(*this , seed, levelData.getFlatWorldGeneratorOptions () );
181- worldGenerator->getStructureFeatureRegistry (). mGeneratorState =
185+ worldGenerator = std::make_unique<FlatWorldGenerator>(*this , seed, levelData.mFlatworldGeneratorOptions );
186+ worldGenerator->mStructureFeatureRegistry -> mGeneratorState =
182187 br::worldgen::ChunkGeneratorStructureState::createFlat (seed, worldGenerator->getBiomeSource (), {});
183188 break ;
184189 }
185190 default : {
186191 auto generator = std::make_unique<VoidGenerator>(*this );
187192 generator->mBiome = level.getBiomeRegistry ().lookupByHash (VanillaBiomeNames::Ocean ());
188193 worldGenerator = std::move (generator);
189- worldGenerator->getStructureFeatureRegistry (). mGeneratorState =
190- br::worldgen::ChunkGeneratorStructureState::createVoid ( seed) ;
194+ worldGenerator->mStructureFeatureRegistry -> mGeneratorState -> mLevelSeed = seed;
195+ worldGenerator-> mStructureFeatureRegistry -> mGeneratorState -> mRingsSeed = seed;
191196 }
192197 }
193198 // worldGenerator->init();
@@ -196,14 +201,14 @@ SimpleCustomDimension::createGenerator(br::worldgen::StructureSetRegistry const&
196201
197202void SimpleCustomDimension::upgradeLevelChunk (ChunkSource& cs, LevelChunk& lc, LevelChunk& generatedChunk) {
198203 loggerMoreDim.debug (__FUNCTION__);
199- auto blockSource = BlockSource (getLevel ( ), *this , cs, false , true , false );
204+ auto blockSource = BlockSource (static_cast <Level&>( mLevel ), *this , cs, false , true , false );
200205 VanillaLevelChunkUpgrade::_upgradeLevelChunkViaMetaData (lc, generatedChunk, blockSource);
201206 VanillaLevelChunkUpgrade::_upgradeLevelChunkLegacy (lc, blockSource);
202207}
203208
204209void SimpleCustomDimension::fixWallChunk (ChunkSource& cs, LevelChunk& lc) {
205210 loggerMoreDim.debug (__FUNCTION__);
206- auto blockSource = BlockSource (getLevel ( ), *this , cs, false , true , false );
211+ auto blockSource = BlockSource (static_cast <Level&>( mLevel ), *this , cs, false , true , false );
207212 VanillaLevelChunkUpgrade::fixWallChunk (lc, blockSource);
208213}
209214
@@ -213,20 +218,14 @@ bool SimpleCustomDimension::levelChunkNeedsUpgrade(LevelChunk const& lc) const {
213218}
214219void SimpleCustomDimension::_upgradeOldLimboEntity (CompoundTag& tag, ::LimboEntitiesVersion vers) {
215220 loggerMoreDim.debug (__FUNCTION__);
216- auto isTemplate = getLevel () .getLevelData ().isFromWorldTemplate () ;
221+ auto isTemplate = mLevel .getLevelData ().mIsFromLockedTemplate ;
217222 return VanillaLevelChunkUpgrade::upgradeOldLimboEntity (tag, vers, isTemplate);
218223}
219224
220225Vec3 SimpleCustomDimension::translatePosAcrossDimension (Vec3 const & fromPos, DimensionType fromId) const {
221226 loggerMoreDim.debug (__FUNCTION__);
222227 Vec3 topos;
223- VanillaDimensions::convertPointBetweenDimensions (
224- fromPos,
225- topos,
226- fromId,
227- mId ,
228- getLevel ().getDimensionConversionData ()
229- );
228+ VanillaDimensions::convertPointBetweenDimensions (fromPos, topos, fromId, mId , mLevel .getDimensionConversionData ());
230229 constexpr auto clampVal = 32000000 .0f - 128 .0f ;
231230
232231 topos.x = std::clamp (topos.x , -clampVal, clampVal);
@@ -237,7 +236,6 @@ Vec3 SimpleCustomDimension::translatePosAcrossDimension(Vec3 const& fromPos, Dim
237236
238237short SimpleCustomDimension::getCloudHeight () const { return 192 ; }
239238
240- bool SimpleCustomDimension::hasPrecipitationFog () const { return true ; }
241239
242240std::unique_ptr<ChunkSource>
243241SimpleCustomDimension::_wrapStorageForVersionCompatibility (std::unique_ptr<ChunkSource> cs, ::StorageVersion /* ver*/ ) {
0 commit comments