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 "net.minecraft.world.level.levelgen.structure.h"
3#include "JavaMath.h"
4#include "Mth.h"
5
6const wstring MineShaftFeature::OPTION_CHANCE = L"chance";
7
8MineShaftFeature::MineShaftFeature()
9{
10 chance = 0.01;
11}
12
13wstring MineShaftFeature::getFeatureName()
14{
15 return L"Mineshaft";
16}
17
18MineShaftFeature::MineShaftFeature(unordered_map<wstring, wstring> options)
19{
20 chance = 0.01;
21
22 for(AUTO_VAR(it,options.begin()); it != options.end(); ++it)
23 {
24 if (it->first.compare(OPTION_CHANCE) == 0)
25 {
26 chance = Mth::getDouble(it->second, chance);
27 }
28 }
29}
30
31bool MineShaftFeature::isFeatureChunk(int x, int z, bool bIsSuperflat)
32{
33 bool forcePlacement = false;
34 LevelGenerationOptions *levelGenOptions = app.getLevelGenerationOptions();
35 if( levelGenOptions != NULL )
36 {
37 forcePlacement = levelGenOptions->isFeatureChunk(x,z,eFeature_Mineshaft);
38 }
39
40 return forcePlacement || (random->nextDouble() < chance && random->nextInt(80) < max(abs(x), abs(z)));
41}
42
43StructureStart *MineShaftFeature::createStructureStart(int x, int z)
44{
45 // 4J added
46 app.AddTerrainFeaturePosition(eTerrainFeature_Mineshaft,x,z);
47
48 return new MineShaftStart(level, random, x, z);
49}