|
26 | 26 | import io.github.opencubicchunks.cubicchunks.api.world.ICubicWorld; |
27 | 27 | import io.github.opencubicchunks.cubicchunks.api.world.ICubicWorldServer; |
28 | 28 | import io.github.opencubicchunks.cubicchunks.api.worldgen.ICubeGenerator; |
| 29 | +import io.github.opencubicchunks.cubicchunks.api.worldgen.VanillaCompatibilityGeneratorProviderBase; |
29 | 30 | import io.github.opencubicchunks.cubicchunks.cubicgen.common.biome.CubicBiome; |
30 | 31 | import io.github.opencubicchunks.cubicchunks.cubicgen.customcubic.CustomCubicWorldType; |
31 | 32 | import io.github.opencubicchunks.cubicchunks.cubicgen.customcubic.CustomGeneratorSettings; |
|
35 | 36 | import io.github.opencubicchunks.cubicchunks.cubicgen.customcubic.populator.ForestDecorator; |
36 | 37 | import io.github.opencubicchunks.cubicchunks.cubicgen.customcubic.populator.JungleDecorator; |
37 | 38 | import io.github.opencubicchunks.cubicchunks.cubicgen.customcubic.populator.PlainsDecorator; |
| 39 | +import io.github.opencubicchunks.cubicchunks.cubicgen.customcubic.populator.PrePopulator; |
38 | 40 | import io.github.opencubicchunks.cubicchunks.cubicgen.customcubic.populator.SavannaDecorator; |
39 | 41 | import io.github.opencubicchunks.cubicchunks.cubicgen.customcubic.populator.SnowBiomeDecorator; |
40 | 42 | import io.github.opencubicchunks.cubicchunks.cubicgen.customcubic.populator.SwampDecorator; |
41 | 43 | import io.github.opencubicchunks.cubicchunks.cubicgen.customcubic.populator.TaigaDecorator; |
42 | 44 | import io.github.opencubicchunks.cubicchunks.cubicgen.flat.FlatCubicWorldType; |
| 45 | +import io.github.opencubicchunks.cubicchunks.cubicgen.hybrid.HybridTerrainGenerator; |
43 | 46 | import mcp.MethodsReturnNonnullByDefault; |
44 | 47 | import net.minecraft.command.CommandBase; |
45 | 48 | import net.minecraft.command.CommandException; |
|
48 | 51 | import net.minecraft.server.MinecraftServer; |
49 | 52 | import net.minecraft.util.ResourceLocation; |
50 | 53 | import net.minecraft.util.text.TextComponentString; |
| 54 | +import net.minecraft.world.World; |
51 | 55 | import net.minecraft.world.WorldServer; |
| 56 | +import net.minecraft.world.WorldType; |
52 | 57 | import net.minecraft.world.biome.Biome; |
53 | 58 | import net.minecraft.world.biome.BiomeBeach; |
54 | 59 | import net.minecraft.world.biome.BiomeDesert; |
| 60 | +import net.minecraft.world.biome.BiomeEnd; |
55 | 61 | import net.minecraft.world.biome.BiomeForest; |
56 | 62 | import net.minecraft.world.biome.BiomeForestMutated; |
| 63 | +import net.minecraft.world.biome.BiomeHell; |
57 | 64 | import net.minecraft.world.biome.BiomeHills; |
58 | 65 | import net.minecraft.world.biome.BiomeJungle; |
59 | 66 | import net.minecraft.world.biome.BiomeMesa; |
|
67 | 74 | import net.minecraft.world.biome.BiomeStoneBeach; |
68 | 75 | import net.minecraft.world.biome.BiomeSwamp; |
69 | 76 | import net.minecraft.world.biome.BiomeTaiga; |
| 77 | +import net.minecraft.world.gen.IChunkGenerator; |
70 | 78 | import net.minecraftforge.common.DimensionManager; |
71 | 79 | import net.minecraftforge.event.RegistryEvent; |
72 | 80 | import net.minecraftforge.fml.common.Mod; |
@@ -161,6 +169,26 @@ public void preInit(FMLPostInitializationEvent e) { |
161 | 169 | CubicBiome.postInit(); |
162 | 170 | } |
163 | 171 |
|
| 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 | + |
164 | 192 | @SubscribeEvent |
165 | 193 | public static void registerRegistries(RegistryEvent.NewRegistry evt) { |
166 | 194 | CubicBiome.init(); |
@@ -200,6 +228,12 @@ public static void registerCubicBiomes(RegistryEvent.Register<CubicBiome> event) |
200 | 228 | autoRegister(event, BiomeTaiga.class, b -> b |
201 | 229 | .decorator(new TaigaDecorator()).defaultDecorators()); |
202 | 230 |
|
| 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)); |
203 | 237 | } |
204 | 238 |
|
205 | 239 | private static void autoRegister(RegistryEvent.Register<CubicBiome> event, Class<? extends Biome> cl, Consumer<CubicBiome.Builder> cons) { |
|
0 commit comments