diff --git a/src/main/java/biomesoplenty/common/configuration/BOPConfigurationMisc.java b/src/main/java/biomesoplenty/common/configuration/BOPConfigurationMisc.java index b64bc516b..4b5ca2640 100644 --- a/src/main/java/biomesoplenty/common/configuration/BOPConfigurationMisc.java +++ b/src/main/java/biomesoplenty/common/configuration/BOPConfigurationMisc.java @@ -1,13 +1,10 @@ package biomesoplenty.common.configuration; -import java.io.File; - +import cpw.mods.fml.common.FMLLog; import net.minecraftforge.common.config.Configuration; - import org.apache.logging.log4j.Level; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.FMLLog; +import java.io.File; public class BOPConfigurationMisc { @@ -16,6 +13,9 @@ public class BOPConfigurationMisc public static boolean skyColors; //public static boolean achievements; public static boolean dungeonLoot; + + public static boolean hotSpringsRegeneration; + public static boolean behaveNormally; public static boolean amethystTools; public static boolean mudTools; @@ -23,8 +23,7 @@ public class BOPConfigurationMisc public static boolean staffCrafting; public static boolean enderporterCrafting; public static boolean dartCrafting; - public static boolean flowerbandCrafting; - public static boolean hotSpringsRegeneration; + public static boolean flowerbandCrafting; public static int promisedLandSkyColor; @@ -42,6 +41,7 @@ public class BOPConfigurationMisc //achievements = config.get("Miscellanious Settings", "Add Biomes O\' Plenty Achievements", true).getBoolean(false); dungeonLoot = config.get("Miscellanious Settings", "Add Custom Dungeon Loot", true).getBoolean(false); hotSpringsRegeneration = config.get("Miscellanious Settings", "Enable Spring Water Regeneration Effect", true).getBoolean(true); + hotSpringsRegeneration = config.get("Miscellanious Settings", "Behave Normally During Special Events", false).getBoolean(false); amethystTools = config.get("Crafting Settings", "Enable Amethyst Tool/Armor Crafting", true).getBoolean(true); mudTools = config.get("Crafting Settings", "Enable Mud Tool/Armor Crafting", true).getBoolean(true); diff --git a/src/main/java/biomesoplenty/common/core/BOPBiomes.java b/src/main/java/biomesoplenty/common/core/BOPBiomes.java index 641358730..ab28c4cb9 100644 --- a/src/main/java/biomesoplenty/common/core/BOPBiomes.java +++ b/src/main/java/biomesoplenty/common/core/BOPBiomes.java @@ -21,7 +21,7 @@ public class BOPBiomes public static WorldTypeBOP worldTypeBOP; public static BOPBiomeEntry onlyBiome; - + public static void init() { GameRegistry.registerWorldGenerator(new BOPDecorationManager(), 0); diff --git a/src/main/java/biomesoplenty/common/world/WorldTypeBOP.java b/src/main/java/biomesoplenty/common/world/WorldTypeBOP.java index fca81fde2..56ba1664f 100644 --- a/src/main/java/biomesoplenty/common/world/WorldTypeBOP.java +++ b/src/main/java/biomesoplenty/common/world/WorldTypeBOP.java @@ -1,12 +1,12 @@ package biomesoplenty.common.world; +import biomesoplenty.common.configuration.BOPConfigurationMisc; import biomesoplenty.common.world.layer.GenLayerBiomeBOP; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.world.World; import net.minecraft.world.WorldType; -import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.biome.WorldChunkManager; -import net.minecraft.world.biome.WorldChunkManagerHell; -import net.minecraft.world.gen.FlatGeneratorInfo; import net.minecraft.world.gen.layer.GenLayer; import net.minecraft.world.gen.layer.GenLayerBiomeEdge; import net.minecraft.world.gen.layer.GenLayerZoom; @@ -14,9 +14,13 @@ import net.minecraftforge.common.DimensionManager; public class WorldTypeBOP extends WorldType { + public static WorldTypeBOPA worldTypeBOPA; + public WorldTypeBOP() { super("BIOMESOP"); + + worldTypeBOPA = new WorldTypeBOPA(); DimensionManager.unregisterProviderType(0); DimensionManager.registerProviderType(0, WorldProviderSurfaceBOP.class, true); @@ -26,6 +30,7 @@ public class WorldTypeBOP extends WorldType public GenLayer getBiomeLayer(long worldSeed, GenLayer parentLayer) { GenLayer ret = new GenLayerBiomeBOP(200L, parentLayer, this); + ret = GenLayerZoom.magnify(1000L, ret, 2); ret = new GenLayerBiomeEdge(1000L, ret); return ret; @@ -36,4 +41,12 @@ public class WorldTypeBOP extends WorldType { return new WorldChunkManagerBOP(world); } + + @Override + @SideOnly(Side.CLIENT) + public boolean getCanBeCreated() + { + if (!BOPConfigurationMisc.behaveNormally) return !WorldTypeBOPA.isTime(); + else return true; + } } diff --git a/src/main/java/biomesoplenty/common/world/WorldTypeBOPA.java b/src/main/java/biomesoplenty/common/world/WorldTypeBOPA.java new file mode 100644 index 000000000..0bd5a62fb --- /dev/null +++ b/src/main/java/biomesoplenty/common/world/WorldTypeBOPA.java @@ -0,0 +1,59 @@ +package biomesoplenty.common.world; + +import biomesoplenty.common.biomes.overworld.BiomeGenCandyland; +import biomesoplenty.common.configuration.BOPConfigurationIDs; +import biomesoplenty.common.configuration.BOPConfigurationMisc; +import biomesoplenty.common.world.layer.GenLayerBiomeBOPA; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.world.World; +import net.minecraft.world.WorldType; +import net.minecraft.world.biome.WorldChunkManager; +import net.minecraft.world.gen.layer.GenLayer; +import net.minecraft.world.gen.layer.GenLayerBiomeEdge; +import net.minecraft.world.gen.layer.GenLayerZoom; + +import java.util.Calendar; + +public class WorldTypeBOPA extends WorldType +{ + public static BiomeGenCandyland candyland; + + public WorldTypeBOPA() + { + super("CANDYOP"); + + candyland = new BiomeGenCandyland(BOPConfigurationIDs.candylandID); + } + + @Override + public GenLayer getBiomeLayer(long worldSeed, GenLayer parentLayer) + { + GenLayer ret = new GenLayerBiomeBOPA(200L, parentLayer, this); + + ret = GenLayerZoom.magnify(1000L, ret, 2); + ret = new GenLayerBiomeEdge(1000L, ret); + return ret; + } + + @Override + public WorldChunkManager getChunkManager(World world) + { + return new WorldChunkManagerBOP(world); + } + + @Override + @SideOnly(Side.CLIENT) + public boolean getCanBeCreated() + { + if (!BOPConfigurationMisc.behaveNormally) return WorldTypeBOPA.isTime(); + else return false; + } + + public static boolean isTime() + { + Calendar calendar = Calendar.getInstance(); + + return (calendar.get(2) + 1 == 4 && calendar.get(5) == 1); + } +} diff --git a/src/main/java/biomesoplenty/common/world/layer/GenLayerBiomeBOPA.java b/src/main/java/biomesoplenty/common/world/layer/GenLayerBiomeBOPA.java new file mode 100644 index 000000000..7ae094833 --- /dev/null +++ b/src/main/java/biomesoplenty/common/world/layer/GenLayerBiomeBOPA.java @@ -0,0 +1,35 @@ +package biomesoplenty.common.world.layer; + +import biomesoplenty.common.world.WorldTypeBOPA; +import net.minecraft.world.WorldType; +import net.minecraft.world.gen.layer.GenLayer; +import net.minecraft.world.gen.layer.GenLayerBiome; +import net.minecraft.world.gen.layer.IntCache; + +public class GenLayerBiomeBOPA extends GenLayerBiome +{ + public GenLayerBiomeBOPA(long seed, GenLayer parentLayer, WorldType worldType) + { + super(seed, parentLayer, worldType); + } + + + @Override + public int[] getInts(int par1, int par2, int par3, int par4) + { + int[] aint = this.parent.getInts(par1, par2, par3, par4); + int[] aint1 = IntCache.getIntCache(par3 * par4); + + for (int i1 = 0; i1 < par4; ++i1) + { + for (int j1 = 0; j1 < par3; ++j1) + { + this.initChunkSeed((long)(j1 + par1), (long)(i1 + par2)); + + aint1[j1 + i1 * par3] = WorldTypeBOPA.candyland.biomeID; + } + } + + return aint1; + } +} diff --git a/src/main/resources/assets/biomesoplenty/lang/en_US.lang b/src/main/resources/assets/biomesoplenty/lang/en_US.lang index e43f1def6..3aac651ad 100644 --- a/src/main/resources/assets/biomesoplenty/lang/en_US.lang +++ b/src/main/resources/assets/biomesoplenty/lang/en_US.lang @@ -473,3 +473,4 @@ achievement.bop.achAllBOP.desc=You got all of the Biomes O' Plenty achievements! itemGroup.tabBiomesOPlenty=Biomes O' Plenty generator.BIOMESOP=Biomes O' Plenty +generator.CANDYOP=Biomes O' Plenty