Skip to content

Commit f87c07f

Browse files
committed
Implement Hybrid World
1 parent b59eab5 commit f87c07f

File tree

7 files changed

+490
-28
lines changed

7 files changed

+490
-28
lines changed

.idea/codeStyles/Project.xml

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/main/java/io/github/opencubicchunks/cubicchunks/cubicgen/CustomCubicMod.java

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import io.github.opencubicchunks.cubicchunks.api.world.ICubicWorld;
2727
import io.github.opencubicchunks.cubicchunks.api.world.ICubicWorldServer;
2828
import io.github.opencubicchunks.cubicchunks.api.worldgen.ICubeGenerator;
29+
import io.github.opencubicchunks.cubicchunks.api.worldgen.VanillaCompatibilityGeneratorProviderBase;
2930
import io.github.opencubicchunks.cubicchunks.cubicgen.common.biome.CubicBiome;
3031
import io.github.opencubicchunks.cubicchunks.cubicgen.customcubic.CustomCubicWorldType;
3132
import io.github.opencubicchunks.cubicchunks.cubicgen.customcubic.CustomGeneratorSettings;
@@ -35,11 +36,13 @@
3536
import io.github.opencubicchunks.cubicchunks.cubicgen.customcubic.populator.ForestDecorator;
3637
import io.github.opencubicchunks.cubicchunks.cubicgen.customcubic.populator.JungleDecorator;
3738
import io.github.opencubicchunks.cubicchunks.cubicgen.customcubic.populator.PlainsDecorator;
39+
import io.github.opencubicchunks.cubicchunks.cubicgen.customcubic.populator.PrePopulator;
3840
import io.github.opencubicchunks.cubicchunks.cubicgen.customcubic.populator.SavannaDecorator;
3941
import io.github.opencubicchunks.cubicchunks.cubicgen.customcubic.populator.SnowBiomeDecorator;
4042
import io.github.opencubicchunks.cubicchunks.cubicgen.customcubic.populator.SwampDecorator;
4143
import io.github.opencubicchunks.cubicchunks.cubicgen.customcubic.populator.TaigaDecorator;
4244
import io.github.opencubicchunks.cubicchunks.cubicgen.flat.FlatCubicWorldType;
45+
import io.github.opencubicchunks.cubicchunks.cubicgen.hybrid.HybridTerrainGenerator;
4346
import mcp.MethodsReturnNonnullByDefault;
4447
import net.minecraft.command.CommandBase;
4548
import net.minecraft.command.CommandException;
@@ -48,12 +51,16 @@
4851
import net.minecraft.server.MinecraftServer;
4952
import net.minecraft.util.ResourceLocation;
5053
import net.minecraft.util.text.TextComponentString;
54+
import net.minecraft.world.World;
5155
import net.minecraft.world.WorldServer;
56+
import net.minecraft.world.WorldType;
5257
import net.minecraft.world.biome.Biome;
5358
import net.minecraft.world.biome.BiomeBeach;
5459
import net.minecraft.world.biome.BiomeDesert;
60+
import net.minecraft.world.biome.BiomeEnd;
5561
import net.minecraft.world.biome.BiomeForest;
5662
import net.minecraft.world.biome.BiomeForestMutated;
63+
import net.minecraft.world.biome.BiomeHell;
5764
import net.minecraft.world.biome.BiomeHills;
5865
import net.minecraft.world.biome.BiomeJungle;
5966
import net.minecraft.world.biome.BiomeMesa;
@@ -67,6 +74,7 @@
6774
import net.minecraft.world.biome.BiomeStoneBeach;
6875
import net.minecraft.world.biome.BiomeSwamp;
6976
import net.minecraft.world.biome.BiomeTaiga;
77+
import net.minecraft.world.gen.IChunkGenerator;
7078
import net.minecraftforge.common.DimensionManager;
7179
import net.minecraftforge.event.RegistryEvent;
7280
import net.minecraftforge.fml.common.Mod;
@@ -161,6 +169,26 @@ public void preInit(FMLPostInitializationEvent e) {
161169
CubicBiome.postInit();
162170
}
163171

172+
@SubscribeEvent
173+
public static void registerCompatGens(RegistryEvent.Register<VanillaCompatibilityGeneratorProviderBase> event) {
174+
event.getRegistry().register(new VanillaCompatibilityGeneratorProviderBase() {
175+
176+
@Override
177+
public ICubeGenerator provideGenerator(IChunkGenerator vanillaChunkGenerator, World world) {
178+
return new HybridTerrainGenerator(vanillaChunkGenerator, world);
179+
}
180+
181+
// TODO: add support for select modded ones
182+
@Override public boolean supportsWorldType(WorldType type) {
183+
return type == WorldType.DEFAULT;
184+
}
185+
186+
}.setRegistryName(new ResourceLocation(MODID, "hybrid"))
187+
.setUnlocalizedName("cubicgen.gui.worldmenu.type"));
188+
189+
190+
}
191+
164192
@SubscribeEvent
165193
public static void registerRegistries(RegistryEvent.NewRegistry evt) {
166194
CubicBiome.init();
@@ -200,6 +228,12 @@ public static void registerCubicBiomes(RegistryEvent.Register<CubicBiome> event)
200228
autoRegister(event, BiomeTaiga.class, b -> b
201229
.decorator(new TaigaDecorator()).defaultDecorators());
202230

231+
autoRegister(event, BiomeHell.class, b -> b
232+
.decoratorProvider(PrePopulator::new)
233+
.decoratorProvider(DefaultDecorator.Ores::new));
234+
autoRegister(event, BiomeEnd.class, b -> b
235+
.decoratorProvider(PrePopulator::new)
236+
.decoratorProvider(DefaultDecorator.Ores::new));
203237
}
204238

205239
private static void autoRegister(RegistryEvent.Register<CubicBiome> event, Class<? extends Biome> cl, Consumer<CubicBiome.Builder> cons) {

0 commit comments

Comments
 (0)