diff --git a/src/main/java/biomesoplenty/BiomesOPlenty.java b/src/main/java/biomesoplenty/BiomesOPlenty.java index a80cc10cb..ff7557ed9 100644 --- a/src/main/java/biomesoplenty/BiomesOPlenty.java +++ b/src/main/java/biomesoplenty/BiomesOPlenty.java @@ -12,11 +12,13 @@ import biomesoplenty.common.core.BOPBlocks; import biomesoplenty.common.core.BOPCrafting; import biomesoplenty.common.core.BOPEntities; import biomesoplenty.common.core.BOPItems; +import biomesoplenty.common.core.BOPPackets; import biomesoplenty.common.core.BOPPotions; import biomesoplenty.common.core.BOPVanillaCompat; import biomesoplenty.common.eventhandler.BOPEventHandlers; import biomesoplenty.common.helpers.CreativeTabsBOP; import biomesoplenty.common.integration.TreecapitatorIntegration; +import biomesoplenty.common.network.PacketPipeline; import biomesoplenty.common.utils.BOPModInfo; import biomesoplenty.common.world.WorldTypeBOP; import biomesoplenty.common.world.decoration.ForcedDecorators; @@ -37,10 +39,12 @@ public class BiomesOPlenty public static BiomesOPlenty instance; @SidedProxy(clientSide = "biomesoplenty.ClientProxy", serverSide = "biomesoplenty.CommonProxy") - public static CommonProxy proxy; + public static CommonProxy proxy; - public static CreativeTabs tabBiomesOPlenty; - public static String configPath; + public static final PacketPipeline packetPipeline = new PacketPipeline(); + + public static CreativeTabs tabBiomesOPlenty; + public static String configPath; @EventHandler public void preInit(FMLPreInitializationEvent event) @@ -52,6 +56,7 @@ public class BiomesOPlenty tabBiomesOPlenty = new CreativeTabsBOP(CreativeTabs.getNextID(), "tabBiomesOPlenty"); + BOPPackets.init(); BOPPotions.init(); BOPBlocks.init(); BOPItems.init(); @@ -76,12 +81,16 @@ public class BiomesOPlenty @EventHandler public void load(FMLInitializationEvent event) { + packetPipeline.initalize(); + TreecapitatorIntegration.init(); } @EventHandler public void postInit(FMLPostInitializationEvent event) { + packetPipeline.postInitialize(); + BOPBiomes.worldTypeBOP = new WorldTypeBOP(); } } \ No newline at end of file diff --git a/src/main/java/biomesoplenty/client/gui/GuiScreenBiomeBook.java b/src/main/java/biomesoplenty/client/gui/GuiScreenBiomeBook.java new file mode 100644 index 000000000..ea7026b2d --- /dev/null +++ b/src/main/java/biomesoplenty/client/gui/GuiScreenBiomeBook.java @@ -0,0 +1,281 @@ +/*package biomesoplenty.client.gui; + +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiScreenBook; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.nbt.NBTTagString; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; + +import org.apache.commons.lang3.StringUtils; +import org.lwjgl.opengl.GL11; + +import biomesoplenty.common.helpers.BOPReflectionHelper; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class GuiScreenBiomeBook extends GuiScreenBook +{ + private static ResourceLocation biomeBookTexture = new ResourceLocation("biomesoplenty:textures/gui/screen/biomebookgui.png"); + + private GuiScreenBiomeBook.NextPageButton buttonNextPage; + private GuiScreenBiomeBook.NextPageButton buttonPreviousPage; + + private List pageLinks = new ArrayList(); + + private boolean isDrawing; + + public GuiScreenBiomeBook(EntityPlayer player, ItemStack itemStack) + { + super(player, itemStack, false); + } + + @Override + public void initGui() + { + super.initGui(); + + //TODO: buttonList + this.field_146292_n.remove(2); + this.field_146292_n.remove(1); + + int i = (this.field_146294_l - 192) / 2; + byte b0 = 2; + this.field_146292_n.add(this.buttonNextPage = new GuiScreenBiomeBook.NextPageButton(1, i + 120, b0 + 154, true)); + this.field_146292_n.add(this.buttonPreviousPage = new GuiScreenBiomeBook.NextPageButton(2, i + 38, b0 + 154, false)); + + pageLinks.clear(); + + //TODO: fontRendererObj + this.pageLinks.add(new PageLink(3, i + 41 + (field_146289_q.getStringWidth("Contents") / 2) + 7, b0 + 154, 0x6189CE, "Contents", 1, 2, 0)); + + addLinks(); + + for (PageLink link : pageLinks) + { + this.field_146292_n.add(link); + } + + updatePageButtons(); + } + + @Override + //TODO: actionPerformed() + protected void func_146284_a(GuiButton button) + { + super.func_146284_a(button); + + //TODO: enabled + if (button.field_146124_l) + { + if (button instanceof PageLink) + { + PageLink link = (PageLink)button; + + setCurrentPage(link.pageNumber); + } + + updatePageButtons(); + } + } + + @Override + public void drawScreen(int x, int y, float renderPartialTicks) + { + isDrawing = true; + + super.drawScreen(x, y, renderPartialTicks); + } + + @Override + public void drawTexturedModalRect(int x, int y, int u, int v, int width, int height) + { + //TODO: minecraft + if (isDrawing) this.field_146297_k.getTextureManager().bindTexture(biomeBookTexture); + + isDrawing = false; + + super.drawTexturedModalRect(x, y, u, v, width, height); + } + + private void updatePageButtons() + { + int currentPage = getCurrentPage(); + int bookTotalPages = BOPReflectionHelper.getPrivateValue(GuiScreenBook.class, this, "field_146476_w", "field_146476_w"); + + this.buttonNextPage.field_146125_m = currentPage < bookTotalPages - 1; + this.buttonPreviousPage.field_146125_m = currentPage > 0; + + for (PageLink link : pageLinks) + { + link.updateLink(); + } + } + + public void addLinks() + { + NBTTagList pages = BOPReflectionHelper.getPrivateValue(GuiScreenBook.class, this, "field_146483_y", "field_146483_y"); + + Pattern pattern = Pattern.compile("(.+?)"); + + for (int pageNo = 0; pageNo < pages.tagCount(); pageNo++) + { + String pageText = pages.func_150307_f(pageNo); + String[] lineSplitText = pageText.split("(?<=[\\n])"); + + for (int line = 0; line < lineSplitText.length; line++) + { + String lineText = lineSplitText[line]; + + Matcher matcher = pattern.matcher(lineText); + + while (matcher.find()) + { + String originalLinkText = matcher.group(1); + String[] splitLinkText = originalLinkText.split("<"); + + String linkText = splitLinkText[0]; + + int linkedPage = Integer.parseInt(splitLinkText[1].split(">")[0]); + + String originalLinkString = "" + originalLinkText + ""; + + int i = (this.field_146294_l - 192) / 2; + byte b0 = 2; + + //TODO: fontRendererObj + this.pageLinks.add(new PageLink(3 + pageLinks.size(), i + 34 + field_146289_q.getStringWidth(lineText.split(originalLinkString)[0]), b0 + 31 + (line * 9), 0x6189CE, linkText, pageNo, 0, linkedPage)); + + lineText = lineText.replace(originalLinkString , StringUtils.repeat(" ", linkText.length())); + } + + lineSplitText[line] = lineText; + } + + //TODO: setTagAt()? + pages.func_150304_a(pageNo, new NBTTagString(StringUtils.join(lineSplitText))); + } + + BOPReflectionHelper.setPrivateValue(GuiScreenBook.class, this, pages, "field_146483_y", "field_146483_y"); + } + + public int getCurrentPage() + { + return BOPReflectionHelper.getPrivateValue(GuiScreenBook.class, this, "field_146484_x", "field_146484_x"); + } + + public void setCurrentPage(int pageNo) + { + BOPReflectionHelper.setPrivateValue(GuiScreenBook.class, this, pageNo, "field_146484_x", "field_146484_x"); + } + + @SideOnly(Side.CLIENT) + static class NextPageButton extends GuiButton + { + private final boolean nextPage; + + public NextPageButton(int id, int xPosition, int yPosition, boolean nextPage) + { + super(id, xPosition, yPosition, 23, 13, ""); + this.nextPage = nextPage; + } + + @Override + //TODO: drawButton() + public void func_146112_a(Minecraft minecraft, int mouseX, int mouseY) + { + //TODO: drawButton + if (this.field_146125_m) + { + //TODO: xPosition yPosition xPosition width yPosition height + boolean isHovering = mouseX >= this.field_146128_h && mouseY >= this.field_146129_i && mouseX < this.field_146128_h + this.field_146120_f && mouseY < this.field_146129_i + this.field_146121_g; + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + minecraft.getTextureManager().bindTexture(GuiScreenBiomeBook.biomeBookTexture); + int k = 0; + int l = 192; + + if (isHovering) + { + k += 23; + } + + if (!this.nextPage) + { + l += 13; + } + + //TODO: xPosition yPosition + this.drawTexturedModalRect(this.field_146128_h, this.field_146129_i, k, l, 23, 13); + } + } + } + + @SideOnly(Side.CLIENT) + class PageLink extends GuiButton + { + private int colour; + private String text; + private int displayPage; + private int displayType; + public int pageNumber; + + public PageLink(int id, int xPosition, int yPosition, int colour, String text, int displayPage, int displayType, int pageNumber) + { + //TODO: fontRendererObj + super(id, xPosition, yPosition, field_146289_q.getStringWidth(text.replaceAll("\\P{InBasic_Latin}", "")), 12, ""); + + this.colour = colour; + this.text = text; + this.displayPage = displayPage; + this.displayType = displayType; + this.pageNumber = pageNumber; + } + + public void updateLink() + { + boolean display = + (displayType == 0 && getCurrentPage() == displayPage) || + (displayType == 1) || + (displayType == 2 && getCurrentPage() >= displayPage); + + //TODO: enabled + this.field_146124_l = display; + //TODO: drawButton + this.field_146125_m = display; + } + + @Override + //TODO: drawButton() + public void func_146112_a(Minecraft minecraft, int mouseX, int mouseY) + { + //TODO: drawButton + if (this.field_146125_m) + { + //TODO: xPosition yPosition xPosition width yPosition height + boolean isHovering = mouseX >= this.field_146128_h && mouseY >= this.field_146129_i && mouseX < this.field_146128_h + this.field_146120_f && mouseY < this.field_146129_i + this.field_146121_g; + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + + String moddedText = isHovering ? "" + EnumChatFormatting.UNDERLINE + text : text; + + //TODO: fontRendererObj xPosition yPosition + this.drawCenteredString(field_146289_q, moddedText, field_146128_h, field_146129_i, colour); + } + } + + @Override + public void drawCenteredString(FontRenderer fontRenderer, String string, int x, int y, int colour) + { + fontRenderer.drawStringWithShadow(string, x, y, colour); + } + } +}*/ diff --git a/src/main/java/biomesoplenty/client/textures/TextureBiomeFinder.java b/src/main/java/biomesoplenty/client/textures/TextureBiomeFinder.java new file mode 100644 index 000000000..171fc2296 --- /dev/null +++ b/src/main/java/biomesoplenty/client/textures/TextureBiomeFinder.java @@ -0,0 +1,105 @@ +package biomesoplenty.client.textures; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.renderer.texture.TextureUtil; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class TextureBiomeFinder extends TextureAtlasSprite +{ + public double currentAngle; + public double angleDelta; + + public TextureBiomeFinder(String path) + { + super(path); + } + + @Override + public void updateAnimation() + { + Minecraft minecraft = Minecraft.getMinecraft(); + + NBTTagCompound playerData = minecraft.thePlayer != null ? minecraft.thePlayer.getEntityData() : null; + NBTTagCompound biomePositionsCompound = null; + NBTTagCompound biomeCompound = null; + + if (playerData != null) biomePositionsCompound = playerData.getCompoundTag("biomePositions"); + if (biomePositionsCompound != null) biomeCompound = biomePositionsCompound.getCompoundTag("Lavender Fields"); + + if (minecraft.theWorld != null && minecraft.thePlayer != null && biomeCompound != null) + { + this.updateFinder(minecraft.theWorld, biomeCompound.getInteger("x"), biomeCompound.getInteger("z"), minecraft.thePlayer.posX, minecraft.thePlayer.posZ, (double)minecraft.thePlayer.rotationYaw, false, false); + } + else + { + this.updateFinder((World)null, 0, 0, 0.0D, 0.0D, 0.0D, true, false); + } + } + + public void updateFinder(World par1World, int biomePosX, int biomePosZ, double playerPosX, double playerPosZ, double par6, boolean par8, boolean par9) + { + if (!this.framesTextureData.isEmpty()) + { + double d3 = 0.0D; + + if (par1World != null && !par8) + { + System.out.println(biomePosX + " " + biomePosZ); + + double d4 = (double)biomePosX - playerPosX; + double d5 = (double)biomePosZ - playerPosZ; + par6 %= 360.0D; + d3 = -((par6 - 90.0D) * Math.PI / 180.0D - Math.atan2(d5, d4)); + } + + if (par9) + { + this.currentAngle = d3; + } + else + { + double d6; + + for (d6 = d3 - this.currentAngle; d6 < -Math.PI; d6 += (Math.PI * 2D)) + { + ; + } + + while (d6 >= Math.PI) + { + d6 -= (Math.PI * 2D); + } + + if (d6 < -1.0D) + { + d6 = -1.0D; + } + + if (d6 > 1.0D) + { + d6 = 1.0D; + } + + this.angleDelta += d6 * 0.1D; + this.angleDelta *= 0.8D; + this.currentAngle += this.angleDelta; + } + + int i; + + for (i = (int)((this.currentAngle / (Math.PI * 2D) + 1.0D) * (double)this.framesTextureData.size()) % this.framesTextureData.size(); i < 0; i = (i + this.framesTextureData.size()) % this.framesTextureData.size()) + { + ; + } + + if (i != this.frameCounter) + { + this.frameCounter = i; + TextureUtil.func_147955_a((int[][])this.framesTextureData.get(this.frameCounter), this.width, this.height, this.originX, this.originY, false, false); + } + } + } +} diff --git a/src/main/java/biomesoplenty/common/biomes/BOPBiome.java b/src/main/java/biomesoplenty/common/biomes/BOPBiome.java index e96f36d58..bcd1fddde 100644 --- a/src/main/java/biomesoplenty/common/biomes/BOPBiome.java +++ b/src/main/java/biomesoplenty/common/biomes/BOPBiome.java @@ -7,7 +7,6 @@ import java.util.Random; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.gen.feature.WorldGenerator; -import biomesoplenty.common.eventhandler.world.DecorateBiomeEventHandler; import biomesoplenty.common.world.decoration.BOPWorldFeatures; import biomesoplenty.common.world.decoration.IBOPDecoration; import biomesoplenty.common.world.features.WorldGenBOPFlora; @@ -49,7 +48,7 @@ public abstract class BOPBiome extends BiomeGenBase implements IBOPDecoration { if (getWeightedWorldGenForBOPFlowers() != null && !getWeightedWorldGenForBOPFlowers().isEmpty()) { - return (WorldGenBOPFlora)getRandomWeightedWorldGenerator(getWeightedWorldGenForBOPFlowers()); + return getRandomWeightedWorldGenerator(getWeightedWorldGenForBOPFlowers()); } else { @@ -70,31 +69,33 @@ public abstract class BOPBiome extends BiomeGenBase implements IBOPDecoration } } + @Override public HashMap getWeightedWorldGenForGrass() { return null; } - public HashMap getWeightedWorldGenForBOPFlowers() + @Override + public HashMap getWeightedWorldGenForBOPFlowers() { return null; } - public static WorldGenerator getRandomWeightedWorldGenerator(HashMap worldGeneratorMap) + public static T getRandomWeightedWorldGenerator(HashMap worldGeneratorMap) { double completeWeight = 0D; - for (Double weight : worldGeneratorMap.values()) + for (Number weight : worldGeneratorMap.values()) { - completeWeight += weight; + completeWeight += Double.parseDouble(weight.toString()); } double random = Math.random() * completeWeight; double countWeight = 0D; - for (Entry entry : worldGeneratorMap.entrySet()) + for (Entry entry : worldGeneratorMap.entrySet()) { - countWeight += entry.getValue(); + countWeight += Double.parseDouble(entry.getValue().toString()); if (countWeight >= random) return entry.getKey(); } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenBambooForest.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenBambooForest.java index 2156a2a85..5d3958074 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenBambooForest.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenBambooForest.java @@ -79,7 +79,7 @@ public class BiomeGenBambooForest extends BOPBiome @Override public WorldGenerator getRandomWorldGenForGrass(Random random) { - return random.nextInt(4) == 0 ? new WorldGenTallGrass(Blocks.tallgrass, 2) : (random.nextInt(2) == 0 ? new WorldGenTallGrass(BOPBlockHelper.get("foliage"), 10) : (random.nextInt(2) == 0 ? new WorldGenTallGrass(BOPBlockHelper.get("foliage"), 11) : (random.nextInt(8) == 0 ? new WorldGenBOPDoubleFlora(Blocks.double_plant, Blocks.double_plant, 3, 9, 64) : new WorldGenTallGrass(BOPBlockHelper.get("foliage"), 1)))); + return random.nextInt(4) == 0 ? new WorldGenTallGrass(Blocks.tallgrass, 2) : (random.nextInt(2) == 0 ? new WorldGenTallGrass(BOPBlockHelper.get("foliage"), 10) : (random.nextInt(2) == 0 ? new WorldGenTallGrass(BOPBlockHelper.get("foliage"), 11) : (random.nextInt(8) == 0 ? new WorldGenBOPDoubleFlora(3) : new WorldGenTallGrass(BOPBlockHelper.get("foliage"), 1)))); } @Override diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenBorealForest.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenBorealForest.java index 48f5fe0f3..96929419d 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenBorealForest.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenBorealForest.java @@ -12,6 +12,7 @@ import net.minecraft.world.gen.feature.WorldGenShrub; import net.minecraft.world.gen.feature.WorldGenerator; import biomesoplenty.api.BOPBlockHelper; import biomesoplenty.common.world.features.WorldGenBOPDoubleFlora; +import biomesoplenty.common.world.features.WorldGenBOPFlora; import biomesoplenty.common.world.features.WorldGenBOPTallGrass; import biomesoplenty.common.world.features.trees.WorldGenBOPTaiga2; import biomesoplenty.common.world.features.trees.WorldGenOriginalTree; @@ -35,6 +36,7 @@ public class BiomeGenBorealForest extends BOPBiome this.theBiomeDecorator.treesPerChunk = 20; this.theBiomeDecorator.grassPerChunk = 50; + this.bopWorldFeatures.bopFlowersPerChunk = 5; this.bopWorldFeatures.shrubsPerChunk = 10; this.bopWorldFeatures.waterReedsPerChunk = 4; } @@ -48,11 +50,11 @@ public class BiomeGenBorealForest extends BOPBiome } @Override - public HashMap getWeightedWorldGenForBOPFlowers() + public HashMap getWeightedWorldGenForBOPFlowers() { - HashMap flowerMap = new HashMap(); + HashMap flowerMap = new HashMap(); - flowerMap.put(new WorldGenBOPDoubleFlora(Blocks.double_plant, Blocks.double_plant, 4, 10, 5), 10D); + flowerMap.put(new WorldGenBOPDoubleFlora(4, 5), 10); return flowerMap; } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenBrushland.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenBrushland.java index c84256b6b..e3a6007bf 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenBrushland.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenBrushland.java @@ -31,6 +31,7 @@ public class BiomeGenBrushland extends BOPBiome this.theBiomeDecorator.grassPerChunk = 6; this.theBiomeDecorator.flowersPerChunk = -999; + this.bopWorldFeatures.bopFlowersPerChunk = 5; this.bopWorldFeatures.thornsPerChunk = 4; this.bopWorldFeatures.shrubsPerChunk = 30; this.bopWorldFeatures.waterReedsPerChunk = 2; @@ -45,11 +46,11 @@ public class BiomeGenBrushland extends BOPBiome } @Override - public HashMap getWeightedWorldGenForBOPFlowers() + public HashMap getWeightedWorldGenForBOPFlowers() { - HashMap flowerMap = new HashMap(); + HashMap flowerMap = new HashMap(); - flowerMap.put(new WorldGenBOPFlora(Blocks.red_flower, 2), 5D); + flowerMap.put(new WorldGenBOPFlora(Blocks.red_flower, 2), 5); return flowerMap; } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenChaparral.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenChaparral.java index 1f4b3d610..58cfa5214 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenChaparral.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenChaparral.java @@ -57,12 +57,12 @@ public class BiomeGenChaparral extends BOPBiome } @Override - public HashMap getWeightedWorldGenForBOPFlowers() + public HashMap getWeightedWorldGenForBOPFlowers() { - HashMap flowerMap = new HashMap(); + HashMap flowerMap = new HashMap(); - flowerMap.put(new WorldGenBOPDoubleFlora(Blocks.double_plant, Blocks.double_plant, 4, 10, 5), 8D); - flowerMap.put(new WorldGenBOPDoubleFlora(Blocks.double_plant, Blocks.double_plant, 1, 7, 5), 4D); + flowerMap.put(new WorldGenBOPDoubleFlora(4, 5), 8); + flowerMap.put(new WorldGenBOPDoubleFlora(1, 5), 4); return flowerMap; } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenCherryBlossomGrove.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenCherryBlossomGrove.java index 6c09e56af..3b814a7fc 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenCherryBlossomGrove.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenCherryBlossomGrove.java @@ -47,14 +47,14 @@ public class BiomeGenCherryBlossomGrove extends BOPBiome } @Override - public HashMap getWeightedWorldGenForBOPFlowers() + public HashMap getWeightedWorldGenForBOPFlowers() { - HashMap flowerMap = new HashMap(); + HashMap flowerMap = new HashMap(); - flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 6), 12D); - flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 9), 8D); - flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 0), 6D); - flowerMap.put(new WorldGenBOPDoubleFlora(Blocks.double_plant, Blocks.double_plant, 1, 7, 5), 4D); + flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 6), 12); + flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 9), 8); + flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 0), 6); + flowerMap.put(new WorldGenBOPDoubleFlora(1, 5), 4); return flowerMap; } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenConiferousForest.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenConiferousForest.java index abd3aae5d..be891ecaa 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenConiferousForest.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenConiferousForest.java @@ -66,7 +66,7 @@ public class BiomeGenConiferousForest extends BOPBiome grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 10), 0.5D); grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 11), 0.5D); grassMap.put(new WorldGenBOPTallGrass(Blocks.tallgrass, 2), 0.5D); - grassMap.put(new WorldGenBOPDoubleFlora(Blocks.double_plant, Blocks.double_plant, 3, 9, 64), 0.5D); + grassMap.put(new WorldGenBOPDoubleFlora(3, 64), 0.5D); return grassMap; } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenConiferousForestSnow.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenConiferousForestSnow.java index 858335585..b42bdeccd 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenConiferousForestSnow.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenConiferousForestSnow.java @@ -54,11 +54,11 @@ public class BiomeGenConiferousForestSnow extends BOPBiome } @Override - public HashMap getWeightedWorldGenForBOPFlowers() + public HashMap getWeightedWorldGenForBOPFlowers() { - HashMap flowerMap = new HashMap(); + HashMap flowerMap = new HashMap(); - flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 8), 8D); + flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 8), 8); return flowerMap; } @@ -73,7 +73,7 @@ public class BiomeGenConiferousForestSnow extends BOPBiome grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 10), 0.5D); grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 11), 0.5D); grassMap.put(new WorldGenBOPTallGrass(Blocks.tallgrass, 2), 0.25D); - grassMap.put(new WorldGenBOPDoubleFlora(Blocks.double_plant, Blocks.double_plant, 3, 9, 64), 0.25D); + grassMap.put(new WorldGenBOPDoubleFlora(3, 64), 0.25D); return grassMap; } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenDeadSwamp.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenDeadSwamp.java index f8a976437..e3a689351 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenDeadSwamp.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenDeadSwamp.java @@ -11,6 +11,7 @@ import net.minecraft.world.gen.feature.WorldGenAbstractTree; import net.minecraft.world.gen.feature.WorldGenerator; import biomesoplenty.api.BOPBlockHelper; import biomesoplenty.common.configuration.BOPConfigurationMisc; +import biomesoplenty.common.world.features.WorldGenBOPDoubleFlora; import biomesoplenty.common.world.features.WorldGenBOPTallGrass; import biomesoplenty.common.world.features.trees.WorldGenDeadTree1; @@ -41,7 +42,6 @@ public class BiomeGenDeadSwamp extends BOPBiome this.theBiomeDecorator.sandPerChunk2 = -999; this.bopWorldFeatures.mudPerChunk = 3; - this.bopWorldFeatures.doubleTallGrassPerChunk = 1; this.bopWorldFeatures.riverCanePerChunk = 2; this.bopWorldFeatures.waterReedsPerChunk = 4; this.bopWorldFeatures.koruPerChunk = 1; @@ -56,6 +56,7 @@ public class BiomeGenDeadSwamp extends BOPBiome grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 2), 1D); grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 10), 0.5D); grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 11), 0.5D); + grassMap.put(new WorldGenBOPDoubleFlora(3), 0.25D); return grassMap; } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenFen.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenFen.java index c53eae567..acd8b6474 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenFen.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenFen.java @@ -10,6 +10,7 @@ import net.minecraft.world.World; import net.minecraft.world.gen.feature.WorldGenAbstractTree; import net.minecraft.world.gen.feature.WorldGenerator; import biomesoplenty.api.BOPBlockHelper; +import biomesoplenty.common.world.features.WorldGenBOPDoubleFlora; import biomesoplenty.common.world.features.WorldGenBOPFlora; import biomesoplenty.common.world.features.WorldGenBOPTallGrass; import biomesoplenty.common.world.features.WorldGenMoss; @@ -39,7 +40,7 @@ public class BiomeGenFen extends BOPBiome this.theBiomeDecorator.sandPerChunk = -999; this.theBiomeDecorator.sandPerChunk2 = -999; - this.bopWorldFeatures.doubleTallGrassPerChunk = 1; + this.bopWorldFeatures.bopFlowersPerChunk = 5; this.bopWorldFeatures.cattailsPerChunk = 1; this.bopWorldFeatures.highCattailsPerChunk = 1; this.bopWorldFeatures.waterPoolsPerChunk = 99; @@ -63,11 +64,11 @@ public class BiomeGenFen extends BOPBiome } @Override - public HashMap getWeightedWorldGenForBOPFlowers() + public HashMap getWeightedWorldGenForBOPFlowers() { - HashMap flowerMap = new HashMap(); + HashMap flowerMap = new HashMap(); - flowerMap.put(new WorldGenBOPFlora(Blocks.red_flower, 2), 6D); + flowerMap.put(new WorldGenBOPFlora(Blocks.red_flower, 2), 6); return flowerMap; } @@ -82,6 +83,7 @@ public class BiomeGenFen extends BOPBiome grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 2), 0.5D); grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 10), 0.5D); grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 11), 0.5D); + grassMap.put(new WorldGenBOPDoubleFlora(3), 0.25D); return grassMap; } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenGrassland.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenGrassland.java index 40655f3ef..f2d0f6dc0 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenGrassland.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenGrassland.java @@ -11,7 +11,6 @@ import net.minecraft.entity.passive.EntityPig; import net.minecraft.entity.passive.EntitySheep; import net.minecraft.init.Blocks; import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase.Height; import net.minecraft.world.gen.feature.WorldGenTallGrass; import net.minecraft.world.gen.feature.WorldGenerator; import biomesoplenty.api.BOPBlockHelper; diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenGrove.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenGrove.java index 360c01889..4557898f3 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenGrove.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenGrove.java @@ -6,7 +6,6 @@ import java.util.Random; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase.Height; import net.minecraft.world.gen.feature.WorldGenAbstractTree; import net.minecraft.world.gen.feature.WorldGenerator; import biomesoplenty.api.BOPBlockHelper; @@ -51,13 +50,13 @@ public class BiomeGenGrove extends BOPBiome } @Override - public HashMap getWeightedWorldGenForBOPFlowers() + public HashMap getWeightedWorldGenForBOPFlowers() { - HashMap flowerMap = new HashMap(); + HashMap flowerMap = new HashMap(); - flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 0), 16D); - flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 9), 6D); - flowerMap.put(new WorldGenBOPDoubleFlora(Blocks.double_plant, Blocks.double_plant, 5, 11, 3), 4D); + flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 0), 16); + flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 9), 6); + flowerMap.put(new WorldGenBOPDoubleFlora(5, 3), 4); return flowerMap; } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenHeathland.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenHeathland.java index 8fe53cfee..d3029e667 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenHeathland.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenHeathland.java @@ -52,13 +52,13 @@ public class BiomeGenHeathland extends BOPBiome } @Override - public HashMap getWeightedWorldGenForBOPFlowers() + public HashMap getWeightedWorldGenForBOPFlowers() { - HashMap flowerMap = new HashMap(); + HashMap flowerMap = new HashMap(); - flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 7), 8D); - flowerMap.put(new WorldGenBOPFlora(Blocks.red_flower, 2), 6D); - flowerMap.put(new WorldGenBOPDoubleFlora(Blocks.double_plant, Blocks.double_plant, 1, 7, 5), 4D); + flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 7), 8); + flowerMap.put(new WorldGenBOPFlora(Blocks.red_flower, 2), 6); + flowerMap.put(new WorldGenBOPDoubleFlora(1, 5), 4); return flowerMap; } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenHighland.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenHighland.java index 3ba1b971c..249228e81 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenHighland.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenHighland.java @@ -28,7 +28,6 @@ public class BiomeGenHighland extends BOPBiome this.theBiomeDecorator.treesPerChunk = -999; this.theBiomeDecorator.grassPerChunk = 99; - this.bopWorldFeatures.doubleTallGrassPerChunk = 99; this.bopWorldFeatures.wildCarrotsPerChunk = 1; } @@ -40,7 +39,7 @@ public class BiomeGenHighland extends BOPBiome grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 10), 0.25D); grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 11), 0.25D); grassMap.put(new WorldGenBOPTallGrass(Blocks.tallgrass, 1), 0.5D); - grassMap.put(new WorldGenBOPDoubleFlora(Blocks.double_plant, Blocks.double_plant, 2, 8, 64), 1D); + grassMap.put(new WorldGenBOPDoubleFlora(2), 1D); return grassMap; } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenJadeCliffs.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenJadeCliffs.java index 58238bbd8..9f47b0eca 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenJadeCliffs.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenJadeCliffs.java @@ -6,7 +6,6 @@ import java.util.Random; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase.Height; import net.minecraft.world.gen.feature.WorldGenAbstractTree; import net.minecraft.world.gen.feature.WorldGenShrub; import net.minecraft.world.gen.feature.WorldGenTallGrass; @@ -46,11 +45,11 @@ public class BiomeGenJadeCliffs extends BOPBiome } @Override - public HashMap getWeightedWorldGenForBOPFlowers() + public HashMap getWeightedWorldGenForBOPFlowers() { - HashMap flowerMap = new HashMap(); + HashMap flowerMap = new HashMap(); - flowerMap.put(new WorldGenBOPDoubleFlora(Blocks.double_plant, Blocks.double_plant, 1, 7, 5), 6D); + flowerMap.put(new WorldGenBOPDoubleFlora(1, 5), 6); return flowerMap; } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenLavenderFields.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenLavenderFields.java index 77eff6e62..034217e8a 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenLavenderFields.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenLavenderFields.java @@ -5,7 +5,6 @@ import java.util.Random; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase.Height; import net.minecraft.world.gen.feature.WorldGenAbstractTree; import net.minecraft.world.gen.feature.WorldGenTallGrass; import net.minecraft.world.gen.feature.WorldGenerator; diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenLushDesert.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenLushDesert.java index c0fa15ec0..ee500e07c 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenLushDesert.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenLushDesert.java @@ -3,21 +3,19 @@ package biomesoplenty.common.biomes; import java.util.HashMap; import java.util.Random; +import net.minecraft.block.Block; +import net.minecraft.entity.passive.EntityHorse; +import net.minecraft.init.Blocks; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenAbstractTree; +import net.minecraft.world.gen.feature.WorldGenShrub; +import net.minecraft.world.gen.feature.WorldGenerator; import biomesoplenty.api.BOPBlockHelper; import biomesoplenty.common.world.features.WorldGenBOPDoubleFlora; import biomesoplenty.common.world.features.WorldGenBOPFlora; import biomesoplenty.common.world.features.WorldGenBOPTallGrass; import biomesoplenty.common.world.features.trees.WorldGenCypress; import biomesoplenty.common.world.features.trees.WorldGenDeadTree1; -import net.minecraft.block.Block; -import net.minecraft.entity.passive.EntityHorse; -import net.minecraft.init.Blocks; -import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase.Height; -import net.minecraft.world.gen.feature.WorldGenAbstractTree; -import net.minecraft.world.gen.feature.WorldGenSavannaTree; -import net.minecraft.world.gen.feature.WorldGenShrub; -import net.minecraft.world.gen.feature.WorldGenerator; public class BiomeGenLushDesert extends BOPBiome { @@ -64,12 +62,12 @@ public class BiomeGenLushDesert extends BOPBiome } @Override - public HashMap getWeightedWorldGenForBOPFlowers() + public HashMap getWeightedWorldGenForBOPFlowers() { - HashMap flowerMap = new HashMap(); + HashMap flowerMap = new HashMap(); - flowerMap.put(new WorldGenBOPDoubleFlora(Blocks.double_plant, Blocks.double_plant, 4, 10, 5), 4D); - flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 7), 8D); + flowerMap.put(new WorldGenBOPDoubleFlora(4, 5), 4); + flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 7), 8); return flowerMap; } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenLushSwamp.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenLushSwamp.java index 574848fa2..bd1843c38 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenLushSwamp.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenLushSwamp.java @@ -7,7 +7,6 @@ import net.minecraft.block.Block; import net.minecraft.entity.monster.EntitySlime; import net.minecraft.init.Blocks; import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase.Height; import net.minecraft.world.gen.feature.WorldGenAbstractTree; import net.minecraft.world.gen.feature.WorldGenerator; import biomesoplenty.api.BOPBlockHelper; @@ -56,13 +55,13 @@ public class BiomeGenLushSwamp extends BOPBiome } @Override - public HashMap getWeightedWorldGenForBOPFlowers() + public HashMap getWeightedWorldGenForBOPFlowers() { - HashMap flowerMap = new HashMap(); + HashMap flowerMap = new HashMap(); - flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 4), 8D); - flowerMap.put(new WorldGenBOPFlora(Blocks.red_flower, 2), 4D); - flowerMap.put(new WorldGenBOPFlora(Blocks.red_flower, 1), 6D); + flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 4), 8); + flowerMap.put(new WorldGenBOPFlora(Blocks.red_flower, 2), 4); + flowerMap.put(new WorldGenBOPFlora(Blocks.red_flower, 1), 6); return flowerMap; } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenMapleWoods.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenMapleWoods.java index 01336c2e9..766fdc30e 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenMapleWoods.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenMapleWoods.java @@ -6,7 +6,6 @@ import java.util.Random; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase.Height; import net.minecraft.world.gen.feature.WorldGenAbstractTree; import net.minecraft.world.gen.feature.WorldGenerator; import biomesoplenty.api.BOPBlockHelper; @@ -58,11 +57,11 @@ public class BiomeGenMapleWoods extends BOPBiome } @Override - public HashMap getWeightedWorldGenForBOPFlowers() + public HashMap getWeightedWorldGenForBOPFlowers() { - HashMap flowerMap = new HashMap(); + HashMap flowerMap = new HashMap(); - flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 8), 1D); + flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 8), 1); return flowerMap; } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenMarsh.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenMarsh.java index e80cbe592..b802e63f5 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenMarsh.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenMarsh.java @@ -9,6 +9,7 @@ import net.minecraft.init.Blocks; import net.minecraft.world.World; import net.minecraft.world.gen.feature.WorldGenerator; import biomesoplenty.api.BOPBlockHelper; +import biomesoplenty.common.world.features.WorldGenBOPDoubleFlora; import biomesoplenty.common.world.features.WorldGenBOPTallGrass; public class BiomeGenMarsh extends BOPBiome @@ -39,7 +40,6 @@ public class BiomeGenMarsh extends BOPBiome this.theBiomeDecorator.sandPerChunk2 = -999; this.bopWorldFeatures.koruPerChunk = 1; - this.bopWorldFeatures.doubleTallGrassPerChunk = 50; this.bopWorldFeatures.mudPerChunk = 1; this.bopWorldFeatures.waterLakesPerChunk = 100; this.bopWorldFeatures.waterReedsPerChunk = 10; @@ -54,6 +54,7 @@ public class BiomeGenMarsh extends BOPBiome grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 10), 0.5D); grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 11), 0.5D); grassMap.put(new WorldGenBOPTallGrass(Blocks.tallgrass, 1), 1D); + grassMap.put(new WorldGenBOPDoubleFlora(3), 0.25D); return grassMap; } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenMeadow.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenMeadow.java index 4e5cd37ee..3648f0b82 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenMeadow.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenMeadow.java @@ -7,9 +7,7 @@ import net.minecraft.block.Block; import net.minecraft.entity.passive.EntityHorse; import net.minecraft.init.Blocks; import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase.Height; import net.minecraft.world.gen.feature.WorldGenAbstractTree; -import net.minecraft.world.gen.feature.WorldGenDoublePlant; import net.minecraft.world.gen.feature.WorldGenerator; import biomesoplenty.api.BOPBlockHelper; import biomesoplenty.common.world.features.WorldGenBOPDoubleFlora; @@ -39,7 +37,6 @@ public class BiomeGenMeadow extends BOPBiome this.bopWorldFeatures.bopFlowersPerChunk = 14; this.bopWorldFeatures.wildCarrotsPerChunk = 1; - this.bopWorldFeatures.sunflowersPerChunk = 1; this.bopWorldFeatures.shrubsPerChunk = 5; this.bopWorldFeatures.cloverPatchesPerChunk = 15; this.bopWorldFeatures.generatePumpkins = false; @@ -53,14 +50,15 @@ public class BiomeGenMeadow extends BOPBiome } @Override - public HashMap getWeightedWorldGenForBOPFlowers() + public HashMap getWeightedWorldGenForBOPFlowers() { - HashMap flowerMap = new HashMap(); + HashMap flowerMap = new HashMap(); - flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 0), 10D); - flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 4), 8D); - flowerMap.put(new WorldGenBOPDoubleFlora(Blocks.double_plant, Blocks.double_plant, 5, 11, 3), 5D); - flowerMap.put(new WorldGenBOPDoubleFlora(Blocks.double_plant, Blocks.double_plant, 1, 7, 5), 4D); + flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 0), 10); + flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 4), 8); + flowerMap.put(new WorldGenBOPDoubleFlora(5, 3), 5); + flowerMap.put(new WorldGenBOPDoubleFlora(1, 5), 4); + flowerMap.put(new WorldGenBOPDoubleFlora(0, 3), 2); return flowerMap; } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenMoor.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenMoor.java index 2536d7c1c..f90597319 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenMoor.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenMoor.java @@ -6,7 +6,6 @@ import java.util.Random; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase.Height; import net.minecraft.world.gen.feature.WorldGenerator; import biomesoplenty.api.BOPBlockHelper; import biomesoplenty.common.configuration.BOPConfigurationMisc; @@ -47,11 +46,11 @@ public class BiomeGenMoor extends BOPBiome } @Override - public HashMap getWeightedWorldGenForBOPFlowers() + public HashMap getWeightedWorldGenForBOPFlowers() { - HashMap flowerMap = new HashMap(); + HashMap flowerMap = new HashMap(); - flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 1), 14D); + flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 1), 14); return flowerMap; } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenMountain.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenMountain.java index 0a5d036cc..33df1d372 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenMountain.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenMountain.java @@ -5,7 +5,6 @@ import java.util.Random; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase.Height; import net.minecraft.world.gen.feature.WorldGenAbstractTree; import net.minecraft.world.gen.feature.WorldGenTallGrass; import net.minecraft.world.gen.feature.WorldGenerator; diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenMysticGrove.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenMysticGrove.java index d7fda339f..2e2dba3f3 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenMysticGrove.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenMysticGrove.java @@ -5,7 +5,6 @@ import java.util.Random; import net.minecraft.entity.monster.EntityWitch; import net.minecraft.init.Blocks; -import net.minecraft.world.biome.BiomeGenBase.Height; import net.minecraft.world.gen.feature.WorldGenAbstractTree; import net.minecraft.world.gen.feature.WorldGenerator; import biomesoplenty.api.BOPBlockHelper; @@ -64,16 +63,16 @@ public class BiomeGenMysticGrove extends BOPBiome } @Override - public HashMap getWeightedWorldGenForBOPFlowers() + public HashMap getWeightedWorldGenForBOPFlowers() { - HashMap flowerMap = new HashMap(); + HashMap flowerMap = new HashMap(); - flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 6), 12D); - flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 3), 10D); - flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 4), 8D); - flowerMap.put(new WorldGenBOPFlora(Blocks.red_flower, 3), 6D); - flowerMap.put(new WorldGenBOPFlora(Blocks.red_flower, 2), 6D); - flowerMap.put(new WorldGenBOPDoubleFlora(Blocks.double_plant, Blocks.double_plant, 1, 7, 5), 4D); + flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 6), 12); + flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 3), 10); + flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 4), 8); + flowerMap.put(new WorldGenBOPFlora(Blocks.red_flower, 3), 6); + flowerMap.put(new WorldGenBOPFlora(Blocks.red_flower, 2), 6); + flowerMap.put(new WorldGenBOPDoubleFlora(1, 5), 4); return flowerMap; } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenOminousWoods.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenOminousWoods.java index 3ff5bf959..46d6e05c5 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenOminousWoods.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenOminousWoods.java @@ -6,7 +6,6 @@ import net.minecraft.entity.monster.EntityCaveSpider; import net.minecraft.entity.monster.EntityEnderman; import net.minecraft.entity.passive.EntityBat; import net.minecraft.init.Blocks; -import net.minecraft.world.biome.BiomeGenBase.Height; import net.minecraft.world.gen.feature.WorldGenAbstractTree; import net.minecraft.world.gen.feature.WorldGenTallGrass; import net.minecraft.world.gen.feature.WorldGenerator; @@ -14,8 +13,8 @@ import biomesoplenty.api.BOPBlockHelper; import biomesoplenty.common.configuration.BOPConfigurationMisc; import biomesoplenty.common.world.features.WorldGenBOPFlora; import biomesoplenty.common.world.features.trees.WorldGenBOPSwampTree; -import biomesoplenty.common.world.features.trees.WorldGenDeadTree1; import biomesoplenty.common.world.features.trees.WorldGenBOPTaiga2; +import biomesoplenty.common.world.features.trees.WorldGenDeadTree1; public class BiomeGenOminousWoods extends BOPBiome { diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenOriginValley.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenOriginValley.java index e1ca4d53e..a5e4aa2e9 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenOriginValley.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenOriginValley.java @@ -3,9 +3,7 @@ package biomesoplenty.common.biomes; import java.util.Random; import net.minecraft.init.Blocks; -import net.minecraft.world.biome.BiomeGenBase.Height; import net.minecraft.world.gen.feature.WorldGenAbstractTree; -import net.minecraft.world.gen.feature.WorldGenerator; import biomesoplenty.api.BOPBlockHelper; import biomesoplenty.common.configuration.BOPConfigurationMisc; import biomesoplenty.common.world.features.trees.WorldGenOriginalTree; diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenPrairie.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenPrairie.java index 3c559768c..d281974ed 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenPrairie.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenPrairie.java @@ -48,12 +48,12 @@ public class BiomeGenPrairie extends BOPBiome } @Override - public HashMap getWeightedWorldGenForBOPFlowers() + public HashMap getWeightedWorldGenForBOPFlowers() { - HashMap flowerMap = new HashMap(); + HashMap flowerMap = new HashMap(); - flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers2"), 4), 12D); - flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 9), 6D); + flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers2"), 4), 12); + flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 9), 6); return flowerMap; } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenQuagmire.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenQuagmire.java index d4d539f10..5a75d1084 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenQuagmire.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenQuagmire.java @@ -6,7 +6,6 @@ import java.util.Random; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase.Height; import net.minecraft.world.gen.feature.WorldGenAbstractTree; import net.minecraft.world.gen.feature.WorldGenerator; import biomesoplenty.api.BOPBlockHelper; diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenRainforest.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenRainforest.java index 3a42d25fa..3fc654603 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenRainforest.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenRainforest.java @@ -7,7 +7,6 @@ import net.minecraft.block.Block; import net.minecraft.entity.passive.EntityOcelot; import net.minecraft.init.Blocks; import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase.Height; import net.minecraft.world.gen.feature.WorldGenAbstractTree; import net.minecraft.world.gen.feature.WorldGenTallGrass; import net.minecraft.world.gen.feature.WorldGenerator; @@ -50,14 +49,14 @@ public class BiomeGenRainforest extends BOPBiome } @Override - public HashMap getWeightedWorldGenForBOPFlowers() + public HashMap getWeightedWorldGenForBOPFlowers() { - HashMap flowerMap = new HashMap(); + HashMap flowerMap = new HashMap(); - flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 6), 12D); - flowerMap.put(new WorldGenBOPFlora(Blocks.red_flower, 1), 6D); - flowerMap.put(new WorldGenBOPDoubleFlora(Blocks.double_plant, Blocks.double_plant, 4, 10, 5), 4D); - flowerMap.put(new WorldGenBOPDoubleFlora(Blocks.double_plant, Blocks.double_plant, 1, 7, 5), 6D); + flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 6), 12); + flowerMap.put(new WorldGenBOPFlora(Blocks.red_flower, 1), 6); + flowerMap.put(new WorldGenBOPDoubleFlora(4, 5), 4); + flowerMap.put(new WorldGenBOPDoubleFlora(1, 5), 6); return flowerMap; } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenRedwoodForest.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenRedwoodForest.java index 385a23b37..76e0edbba 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenRedwoodForest.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenRedwoodForest.java @@ -6,7 +6,6 @@ import java.util.Random; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase.Height; import net.minecraft.world.gen.feature.WorldGenAbstractTree; import net.minecraft.world.gen.feature.WorldGenShrub; import net.minecraft.world.gen.feature.WorldGenerator; @@ -34,6 +33,7 @@ public class BiomeGenRedwoodForest extends BOPBiome this.theBiomeDecorator.treesPerChunk = 75; this.theBiomeDecorator.grassPerChunk = 16; + this.bopWorldFeatures.bopFlowersPerChunk = 5; this.bopWorldFeatures.bushesPerChunk = 4; this.bopWorldFeatures.berryBushesPerChunk = 1; this.bopWorldFeatures.shrubsPerChunk = 10; @@ -49,12 +49,12 @@ public class BiomeGenRedwoodForest extends BOPBiome } @Override - public HashMap getWeightedWorldGenForBOPFlowers() + public HashMap getWeightedWorldGenForBOPFlowers() { - HashMap flowerMap = new HashMap(); + HashMap flowerMap = new HashMap(); - flowerMap.put(new WorldGenBOPDoubleFlora(Blocks.double_plant, Blocks.double_plant, 4, 10, 5), 10D); - flowerMap.put(new WorldGenBOPFlora(Blocks.red_flower, 1), 8D); + flowerMap.put(new WorldGenBOPDoubleFlora(4, 5), 10); + flowerMap.put(new WorldGenBOPFlora(Blocks.red_flower, 1), 8); return flowerMap; } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenSacredSprings.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenSacredSprings.java index ece665927..d79a832e5 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenSacredSprings.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenSacredSprings.java @@ -51,13 +51,13 @@ public class BiomeGenSacredSprings extends BOPBiome } @Override - public HashMap getWeightedWorldGenForBOPFlowers() + public HashMap getWeightedWorldGenForBOPFlowers() { - HashMap flowerMap = new HashMap(); + HashMap flowerMap = new HashMap(); - flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 6), 10D); - flowerMap.put(new WorldGenBOPFlora(Blocks.red_flower, 1), 6D); - flowerMap.put(new WorldGenBOPDoubleFlora(Blocks.double_plant, Blocks.double_plant, 5, 11, 5), 5D); + flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 6), 10); + flowerMap.put(new WorldGenBOPFlora(Blocks.red_flower, 1), 6); + flowerMap.put(new WorldGenBOPDoubleFlora(5, 5), 5); return flowerMap; } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenSeasonalForest.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenSeasonalForest.java index 9530949da..3250a5a3d 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenSeasonalForest.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenSeasonalForest.java @@ -7,7 +7,6 @@ import net.minecraft.block.Block; import net.minecraft.entity.passive.EntityWolf; import net.minecraft.init.Blocks; import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase.Height; import net.minecraft.world.gen.feature.WorldGenAbstractTree; import net.minecraft.world.gen.feature.WorldGenerator; import biomesoplenty.api.BOPBlockHelper; diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenShield.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenShield.java index 7fc3f309c..9e2501429 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenShield.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenShield.java @@ -5,7 +5,6 @@ import java.util.Random; import net.minecraft.init.Blocks; import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase.Height; import net.minecraft.world.gen.feature.WorldGenAbstractTree; import net.minecraft.world.gen.feature.WorldGenShrub; import net.minecraft.world.gen.feature.WorldGenerator; diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenShrubland.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenShrubland.java index ca926a234..aec028650 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenShrubland.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenShrubland.java @@ -7,7 +7,6 @@ import net.minecraft.block.Block; import net.minecraft.entity.passive.EntityHorse; import net.minecraft.init.Blocks; import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase.Height; import net.minecraft.world.gen.feature.WorldGenAbstractTree; import net.minecraft.world.gen.feature.WorldGenShrub; import net.minecraft.world.gen.feature.WorldGenTallGrass; @@ -35,6 +34,7 @@ public class BiomeGenShrubland extends BOPBiome this.theBiomeDecorator.flowersPerChunk = 0; this.theBiomeDecorator.grassPerChunk = 5; + this.bopWorldFeatures.bopFlowersPerChunk = 5; this.bopWorldFeatures.bushesPerChunk = 7; this.bopWorldFeatures.shrubsPerChunk = 5; this.bopWorldFeatures.waterReedsPerChunk = 3; @@ -45,16 +45,15 @@ public class BiomeGenShrubland extends BOPBiome //TODO: getRandomWorldGenForTrees() public WorldGenAbstractTree func_150567_a(Random random) { - return new WorldGenShrub(0, 0); } @Override - public HashMap getWeightedWorldGenForBOPFlowers() + public HashMap getWeightedWorldGenForBOPFlowers() { - HashMap flowerMap = new HashMap(); + HashMap flowerMap = new HashMap(); - flowerMap.put(new WorldGenBOPFlora(Blocks.red_flower, 2), 4D); + flowerMap.put(new WorldGenBOPFlora(Blocks.red_flower, 2), 4); return flowerMap; } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenSilkglades.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenSilkglades.java index f089d8edf..852b468b8 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenSilkglades.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenSilkglades.java @@ -3,18 +3,17 @@ package biomesoplenty.common.biomes; import java.util.HashMap; import java.util.Random; +import net.minecraft.block.Block; +import net.minecraft.entity.monster.EntitySpider; +import net.minecraft.init.Blocks; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenAbstractTree; +import net.minecraft.world.gen.feature.WorldGenerator; import biomesoplenty.api.BOPBlockHelper; import biomesoplenty.common.configuration.BOPConfigurationMisc; import biomesoplenty.common.world.features.WorldGenBOPTallGrass; import biomesoplenty.common.world.features.trees.WorldGenBOPSwampTree; import biomesoplenty.common.world.features.trees.WorldGenDeadTree1; -import net.minecraft.block.Block; -import net.minecraft.entity.monster.EntitySpider; -import net.minecraft.init.Blocks; -import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase.Height; -import net.minecraft.world.gen.feature.WorldGenAbstractTree; -import net.minecraft.world.gen.feature.WorldGenerator; public class BiomeGenSilkglades extends BOPBiome { diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenSludgepit.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenSludgepit.java index 78b7b701b..d0b90bf14 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenSludgepit.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenSludgepit.java @@ -7,7 +7,6 @@ import net.minecraft.block.Block; import net.minecraft.entity.monster.EntitySlime; import net.minecraft.init.Blocks; import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase.Height; import net.minecraft.world.gen.feature.WorldGenAbstractTree; import net.minecraft.world.gen.feature.WorldGenerator; import biomesoplenty.api.BOPBlockHelper; diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenSpruceWoods.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenSpruceWoods.java index 7f9305f30..5663c1dc8 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenSpruceWoods.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenSpruceWoods.java @@ -7,7 +7,6 @@ import net.minecraft.block.Block; import net.minecraft.entity.passive.EntityWolf; import net.minecraft.init.Blocks; import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase.Height; import net.minecraft.world.gen.feature.WorldGenAbstractTree; import net.minecraft.world.gen.feature.WorldGenTaiga2; import net.minecraft.world.gen.feature.WorldGenerator; @@ -50,11 +49,11 @@ public class BiomeGenSpruceWoods extends BOPBiome } @Override - public HashMap getWeightedWorldGenForBOPFlowers() + public HashMap getWeightedWorldGenForBOPFlowers() { - HashMap flowerMap = new HashMap(); + HashMap flowerMap = new HashMap(); - flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers2"), 5), 15D); + flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers2"), 5), 15); return flowerMap; } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenTemperateRainforest.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenTemperateRainforest.java index 95fd5d049..6dbb1093d 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenTemperateRainforest.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenTemperateRainforest.java @@ -6,7 +6,6 @@ import java.util.Random; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase.Height; import net.minecraft.world.gen.feature.WorldGenAbstractTree; import net.minecraft.world.gen.feature.WorldGenShrub; import net.minecraft.world.gen.feature.WorldGenerator; @@ -68,7 +67,7 @@ public class BiomeGenTemperateRainforest extends BOPBiome grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 11), 0.5D); grassMap.put(new WorldGenBOPTallGrass(Blocks.tallgrass, 1), 0.5D); grassMap.put(new WorldGenBOPTallGrass(Blocks.tallgrass, 2), 0.5D); - grassMap.put(new WorldGenBOPDoubleFlora(Blocks.double_plant, Blocks.double_plant, 3, 9, 64), 0.25D); + grassMap.put(new WorldGenBOPDoubleFlora(3), 0.25D); return grassMap; } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenThicket.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenThicket.java index b0cb34a81..f6e828639 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenThicket.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenThicket.java @@ -4,7 +4,6 @@ import java.util.HashMap; import java.util.Random; import net.minecraft.init.Blocks; -import net.minecraft.world.biome.BiomeGenBase.Height; import net.minecraft.world.gen.feature.WorldGenAbstractTree; import net.minecraft.world.gen.feature.WorldGenShrub; import net.minecraft.world.gen.feature.WorldGenTallGrass; @@ -29,6 +28,7 @@ public class BiomeGenThicket extends BOPBiome this.theBiomeDecorator.treesPerChunk = 17; this.theBiomeDecorator.grassPerChunk = 1; + this.bopWorldFeatures.bopFlowersPerChunk = 5; this.bopWorldFeatures.thornsPerChunk = 25; this.bopWorldFeatures.shrubsPerChunk = 15; } @@ -41,11 +41,11 @@ public class BiomeGenThicket extends BOPBiome } @Override - public HashMap getWeightedWorldGenForBOPFlowers() + public HashMap getWeightedWorldGenForBOPFlowers() { - HashMap flowerMap = new HashMap(); + HashMap flowerMap = new HashMap(); - flowerMap.put(new WorldGenBOPFlora(Blocks.red_flower, 2), 0.5D); + flowerMap.put(new WorldGenBOPFlora(Blocks.red_flower, 2), 4); return flowerMap; } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenTimber.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenTimber.java index f145adebe..0693a5c14 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenTimber.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenTimber.java @@ -6,7 +6,6 @@ import java.util.Random; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase.Height; import net.minecraft.world.gen.feature.WorldGenAbstractTree; import net.minecraft.world.gen.feature.WorldGenerator; import biomesoplenty.api.BOPBlockHelper; diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenTropicalRainforest.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenTropicalRainforest.java index fe650777e..a2911c834 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenTropicalRainforest.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenTropicalRainforest.java @@ -7,7 +7,6 @@ import net.minecraft.block.Block; import net.minecraft.entity.passive.EntityOcelot; import net.minecraft.init.Blocks; import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase.Height; import net.minecraft.world.gen.feature.WorldGenAbstractTree; import net.minecraft.world.gen.feature.WorldGenTrees; import net.minecraft.world.gen.feature.WorldGenerator; @@ -44,7 +43,6 @@ public class BiomeGenTropicalRainforest extends BOPBiome this.theBiomeDecorator.waterlilyPerChunk = 2; this.bopWorldFeatures.bopFlowersPerChunk = 10; - this.bopWorldFeatures.doubleTallGrassPerChunk = 8; this.bopWorldFeatures.generatePumpkins = false; this.bopWorldFeatures.generateMelons = true; this.bopWorldFeatures.sproutsPerChunk = 2; @@ -62,11 +60,11 @@ public class BiomeGenTropicalRainforest extends BOPBiome } @Override - public HashMap getWeightedWorldGenForBOPFlowers() + public HashMap getWeightedWorldGenForBOPFlowers() { - HashMap flowerMap = new HashMap(); + HashMap flowerMap = new HashMap(); - flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 5), 12D); + flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 5), 12); return flowerMap; } @@ -80,7 +78,7 @@ public class BiomeGenTropicalRainforest extends BOPBiome grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 11), 0.5D); grassMap.put(new WorldGenBOPTallGrass(Blocks.tallgrass, 1), 1D); grassMap.put(new WorldGenBOPTallGrass(Blocks.tallgrass, 2), 0.75D); - grassMap.put(new WorldGenBOPDoubleFlora(Blocks.double_plant, Blocks.double_plant, 3, 9, 64), 1D); + grassMap.put(new WorldGenBOPDoubleFlora(3), 1D); return grassMap; } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenTropics.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenTropics.java index 68d3053cb..8e6d03068 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenTropics.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenTropics.java @@ -43,7 +43,6 @@ public class BiomeGenTropics extends BOPBiome this.theBiomeDecorator.sandPerChunk2 = 50; this.bopWorldFeatures.bopFlowersPerChunk = 30; - this.bopWorldFeatures.sunflowersPerChunk = 2; this.bopWorldFeatures.shrubsPerChunk = 4; this.bopWorldFeatures.generatePumpkins = false; } @@ -58,15 +57,16 @@ public class BiomeGenTropics extends BOPBiome } @Override - public HashMap getWeightedWorldGenForBOPFlowers() + public HashMap getWeightedWorldGenForBOPFlowers() { - HashMap flowerMap = new HashMap(); + HashMap flowerMap = new HashMap(); - flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 9), 8D); - flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 5), 10D); - flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers2"), 0), 15D); - flowerMap.put(new WorldGenBOPFlora(Blocks.red_flower, 1), 7D); - flowerMap.put(new WorldGenBOPDoubleFlora(Blocks.double_plant, Blocks.double_plant, 4, 10, 5), 6D); + flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 9), 8); + flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 5), 10); + flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers2"), 0), 15); + flowerMap.put(new WorldGenBOPFlora(Blocks.red_flower, 1), 7); + flowerMap.put(new WorldGenBOPDoubleFlora(4, 5), 6); + flowerMap.put(new WorldGenBOPDoubleFlora(0, 3), 2); return flowerMap; } @@ -79,7 +79,7 @@ public class BiomeGenTropics extends BOPBiome grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 10), 0.5D); grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 11), 0.5D); grassMap.put(new WorldGenBOPTallGrass(Blocks.tallgrass, 1), 1D); - grassMap.put(new WorldGenBOPDoubleFlora(Blocks.double_plant, Blocks.double_plant, 3, 9, 64), 0.25D); + grassMap.put(new WorldGenBOPDoubleFlora(3), 0.25D); return grassMap; } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenTundra.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenTundra.java index ee67b813a..9c0f17ee5 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenTundra.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenTundra.java @@ -3,17 +3,15 @@ package biomesoplenty.common.biomes; import java.util.HashMap; import java.util.Random; -import biomesoplenty.api.BOPBlockHelper; -import biomesoplenty.common.world.features.WorldGenBOPFlora; -import biomesoplenty.common.world.features.WorldGenBOPTallGrass; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase; -import net.minecraft.world.biome.BiomeGenBase.Height; import net.minecraft.world.gen.feature.WorldGenAbstractTree; import net.minecraft.world.gen.feature.WorldGenShrub; import net.minecraft.world.gen.feature.WorldGenerator; +import biomesoplenty.api.BOPBlockHelper; +import biomesoplenty.common.world.features.WorldGenBOPFlora; +import biomesoplenty.common.world.features.WorldGenBOPTallGrass; public class BiomeGenTundra extends BOPBiome { @@ -51,11 +49,11 @@ public class BiomeGenTundra extends BOPBiome } @Override - public HashMap getWeightedWorldGenForBOPFlowers() + public HashMap getWeightedWorldGenForBOPFlowers() { - HashMap flowerMap = new HashMap(); + HashMap flowerMap = new HashMap(); - flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 8), 4D); + flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 8), 4); return flowerMap; } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenVolcano.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenVolcano.java index b2bc021a4..f3491ec66 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenVolcano.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenVolcano.java @@ -1,6 +1,5 @@ package biomesoplenty.common.biomes; -import net.minecraft.world.biome.BiomeGenBase.Height; import biomesoplenty.api.BOPBlockHelper; import biomesoplenty.common.configuration.BOPConfigurationMisc; diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenWasteland.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenWasteland.java index be972e7ec..628691e61 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenWasteland.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenWasteland.java @@ -4,7 +4,6 @@ import java.util.HashMap; import java.util.Random; import net.minecraft.init.Blocks; -import net.minecraft.world.biome.BiomeGenBase.Height; import net.minecraft.world.gen.feature.WorldGenAbstractTree; import net.minecraft.world.gen.feature.WorldGenerator; import biomesoplenty.api.BOPBlockHelper; diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenWetland.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenWetland.java index 5b2e2158f..ba8909326 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenWetland.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenWetland.java @@ -3,6 +3,12 @@ package biomesoplenty.common.biomes; import java.util.HashMap; import java.util.Random; +import net.minecraft.block.Block; +import net.minecraft.entity.monster.EntitySlime; +import net.minecraft.init.Blocks; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenAbstractTree; +import net.minecraft.world.gen.feature.WorldGenerator; import biomesoplenty.api.BOPBlockHelper; import biomesoplenty.common.world.features.WorldGenBOPDoubleFlora; import biomesoplenty.common.world.features.WorldGenBOPFlora; @@ -10,14 +16,6 @@ import biomesoplenty.common.world.features.WorldGenBOPTallGrass; import biomesoplenty.common.world.features.WorldGenMoss; import biomesoplenty.common.world.features.trees.WorldGenBOPSwampTree; import biomesoplenty.common.world.features.trees.WorldGenBOPTaiga2; -import net.minecraft.block.Block; -import net.minecraft.entity.monster.EntitySlime; -import net.minecraft.init.Blocks; -import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase; -import net.minecraft.world.biome.BiomeGenBase.Height; -import net.minecraft.world.gen.feature.WorldGenAbstractTree; -import net.minecraft.world.gen.feature.WorldGenerator; public class BiomeGenWetland extends BOPBiome { @@ -74,12 +72,12 @@ public class BiomeGenWetland extends BOPBiome } @Override - public HashMap getWeightedWorldGenForBOPFlowers() + public HashMap getWeightedWorldGenForBOPFlowers() { - HashMap flowerMap = new HashMap(); + HashMap flowerMap = new HashMap(); - flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 1), 10D); - flowerMap.put(new WorldGenBOPFlora(Blocks.red_flower, 1), 6D); + flowerMap.put(new WorldGenBOPFlora(BOPBlockHelper.get("flowers"), 1), 10); + flowerMap.put(new WorldGenBOPFlora(Blocks.red_flower, 1), 6); return flowerMap; } @@ -93,7 +91,7 @@ public class BiomeGenWetland extends BOPBiome grassMap.put(new WorldGenBOPTallGrass(BOPBlockHelper.get("foliage"), 11), 0.5D); grassMap.put(new WorldGenBOPTallGrass(Blocks.tallgrass, 2), 0.5D); grassMap.put(new WorldGenBOPTallGrass(Blocks.tallgrass, 1), 1D); - grassMap.put(new WorldGenBOPDoubleFlora(Blocks.double_plant, Blocks.double_plant, 3, 9, 64), 0.75D); + grassMap.put(new WorldGenBOPDoubleFlora(3), 0.75D); return grassMap; } diff --git a/src/main/java/biomesoplenty/common/biomes/BiomeGenWoodland.java b/src/main/java/biomesoplenty/common/biomes/BiomeGenWoodland.java index b1128dbe9..69d2e570b 100644 --- a/src/main/java/biomesoplenty/common/biomes/BiomeGenWoodland.java +++ b/src/main/java/biomesoplenty/common/biomes/BiomeGenWoodland.java @@ -3,17 +3,15 @@ package biomesoplenty.common.biomes; import java.util.HashMap; import java.util.Random; +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraft.world.World; +import net.minecraft.world.gen.feature.WorldGenAbstractTree; +import net.minecraft.world.gen.feature.WorldGenerator; import biomesoplenty.api.BOPBlockHelper; import biomesoplenty.common.world.features.WorldGenBOPDoubleFlora; import biomesoplenty.common.world.features.WorldGenBOPFlora; import biomesoplenty.common.world.features.WorldGenBOPTallGrass; -import net.minecraft.block.Block; -import net.minecraft.init.Blocks; -import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase; -import net.minecraft.world.biome.BiomeGenBase.Height; -import net.minecraft.world.gen.feature.WorldGenAbstractTree; -import net.minecraft.world.gen.feature.WorldGenerator; public class BiomeGenWoodland extends BOPBiome { @@ -50,11 +48,11 @@ public class BiomeGenWoodland extends BOPBiome } @Override - public HashMap getWeightedWorldGenForBOPFlowers() + public HashMap getWeightedWorldGenForBOPFlowers() { - HashMap flowerMap = new HashMap(); + HashMap flowerMap = new HashMap(); - flowerMap.put(new WorldGenBOPDoubleFlora(Blocks.double_plant, Blocks.double_plant, 4, 10, 5), 6D); + flowerMap.put(new WorldGenBOPDoubleFlora(4, 5), 6); return flowerMap; } diff --git a/src/main/java/biomesoplenty/common/configuration/BOPConfigurationBiomeGen.java b/src/main/java/biomesoplenty/common/configuration/BOPConfigurationBiomeGen.java index 3f0e6b0c4..8d3e2c2d5 100644 --- a/src/main/java/biomesoplenty/common/configuration/BOPConfigurationBiomeGen.java +++ b/src/main/java/biomesoplenty/common/configuration/BOPConfigurationBiomeGen.java @@ -80,8 +80,6 @@ public class BOPConfigurationBiomeGen jungleGen = config.get("Special Biomes To Generate", "Jungle", true).getBoolean(true); megaTaigaGen = config.get("Special Biomes To Generate", "Mega Taiga", true).getBoolean(true); } - - FMLCommonHandler.instance().getFMLLogger().log(Level.INFO, "[BiomesOPlenty] Generated Biome Gen Config!"); } catch (Exception e) { diff --git a/src/main/java/biomesoplenty/common/configuration/BOPConfigurationIDs.java b/src/main/java/biomesoplenty/common/configuration/BOPConfigurationIDs.java index a0843ca61..3ebde2230 100644 --- a/src/main/java/biomesoplenty/common/configuration/BOPConfigurationIDs.java +++ b/src/main/java/biomesoplenty/common/configuration/BOPConfigurationIDs.java @@ -169,8 +169,6 @@ public class BOPConfigurationIDs entityDartID = config.get("Entity IDs", "Dart ID", 104, null).getInt();; entityPoisonDartID = config.get("Entity IDs", "Poison Dart ID", 105, null).getInt();; - FMLCommonHandler.instance().getFMLLogger().log(Level.INFO, "[BiomesOPlenty] Generating Biome ID's"); - //23-79 ExtraBiomesXL promisedLandShrubID = config.get("Biome IDs", "Sublime Shrubland (Promised Land) ID", 53).getInt(); @@ -297,8 +295,6 @@ public class BOPConfigurationIDs wastelandID = config.get("Biome IDs", "Wasteland ID", 252).getInt(); wetlandID = config.get("Biome IDs", "Wetland ID", 253).getInt(); woodlandID = config.get("Biome IDs", "Woodland ID", 254).getInt(); - - FMLCommonHandler.instance().getFMLLogger().log(Level.INFO, "[BiomesOPlenty] Generated IDs Config!"); } catch (Exception e) { diff --git a/src/main/java/biomesoplenty/common/configuration/BOPConfigurationMain.java b/src/main/java/biomesoplenty/common/configuration/BOPConfigurationMain.java index 7c57a154f..6c8c0e2a6 100644 --- a/src/main/java/biomesoplenty/common/configuration/BOPConfigurationMain.java +++ b/src/main/java/biomesoplenty/common/configuration/BOPConfigurationMain.java @@ -25,8 +25,6 @@ public class BOPConfigurationMain config.load(); seenVersion = config.get("Vars", "Seen Version", "null"); - - FMLCommonHandler.instance().getFMLLogger().log(Level.INFO, "[BiomesOPlenty] Generated Main Config!"); } catch (Exception e) { diff --git a/src/main/java/biomesoplenty/common/configuration/BOPConfigurationMisc.java b/src/main/java/biomesoplenty/common/configuration/BOPConfigurationMisc.java index 568a3934f..fff2a2007 100644 --- a/src/main/java/biomesoplenty/common/configuration/BOPConfigurationMisc.java +++ b/src/main/java/biomesoplenty/common/configuration/BOPConfigurationMisc.java @@ -59,8 +59,6 @@ public class BOPConfigurationMisc onlySpawnOnBeaches = config.get("Spawn Settings", "Only Spawn On Beaches", true).getBoolean(true); //promisedLandSkyColor = config.get("Hard-Coded Colors", "Promised Land Sky Color", 5883101, null).getInt(); - - FMLCommonHandler.instance().getFMLLogger().log(Level.INFO, "[BiomesOPlenty] Generated Misc Config!"); } catch (Exception e) { diff --git a/src/main/java/biomesoplenty/common/configuration/BOPConfigurationTerrainGen.java b/src/main/java/biomesoplenty/common/configuration/BOPConfigurationTerrainGen.java index e932fb6b3..d23833ee3 100644 --- a/src/main/java/biomesoplenty/common/configuration/BOPConfigurationTerrainGen.java +++ b/src/main/java/biomesoplenty/common/configuration/BOPConfigurationTerrainGen.java @@ -34,8 +34,6 @@ public class BOPConfigurationTerrainGen //netherOverride = config.get("Dimension Settings", "Enable Nether Override", true).getBoolean(true); //landmassPercentage = config.get("Biomes O\' Plenty World Type Settings", "Landmass Percentage", 10, "In Vanilla it is set to 10. Takes values from 0 to 100.").getInt(); - - FMLCommonHandler.instance().getFMLLogger().log(Level.INFO, "[BiomesOPlenty] Generated Terrain Gen Config!"); } catch (Exception e) { diff --git a/src/main/java/biomesoplenty/common/configuration/BOPConfigurationWorldFeatures.java b/src/main/java/biomesoplenty/common/configuration/BOPConfigurationWorldFeatures.java index c139d90e5..9bdbf4d7a 100644 --- a/src/main/java/biomesoplenty/common/configuration/BOPConfigurationWorldFeatures.java +++ b/src/main/java/biomesoplenty/common/configuration/BOPConfigurationWorldFeatures.java @@ -38,8 +38,6 @@ public class BOPConfigurationWorldFeatures WorldGenFieldAssociation.worldGeneratorMap.remove(key); } } - - FMLCommonHandler.instance().getFMLLogger().log(Level.INFO, "[BiomesOPlenty] Generated World Features Config!"); } catch (Exception e) { diff --git a/src/main/java/biomesoplenty/common/configuration/structures/BOPConfigurationStrongholds.java b/src/main/java/biomesoplenty/common/configuration/structures/BOPConfigurationStrongholds.java index e2d40e604..93d9ec102 100644 --- a/src/main/java/biomesoplenty/common/configuration/structures/BOPConfigurationStrongholds.java +++ b/src/main/java/biomesoplenty/common/configuration/structures/BOPConfigurationStrongholds.java @@ -123,8 +123,6 @@ public class BOPConfigurationStrongholds BiomeManager.addStrongholdBiome(biome); } } - - FMLCommonHandler.instance().getFMLLogger().log(Level.INFO, "[BiomesOPlenty] Generated Villages Config!"); } catch (Exception e) { diff --git a/src/main/java/biomesoplenty/common/configuration/structures/BOPConfigurationVillages.java b/src/main/java/biomesoplenty/common/configuration/structures/BOPConfigurationVillages.java index fffe1e8b7..3347b1c57 100644 --- a/src/main/java/biomesoplenty/common/configuration/structures/BOPConfigurationVillages.java +++ b/src/main/java/biomesoplenty/common/configuration/structures/BOPConfigurationVillages.java @@ -118,8 +118,6 @@ public class BOPConfigurationVillages BiomeManager.addVillageBiome(biome, true); } } - - FMLCommonHandler.instance().getFMLLogger().log(Level.INFO, "[BiomesOPlenty] Generated Villages Config!"); } catch (Exception e) { diff --git a/src/main/java/biomesoplenty/common/core/BOPItems.java b/src/main/java/biomesoplenty/common/core/BOPItems.java index 305ff8b2d..b2e9d171f 100644 --- a/src/main/java/biomesoplenty/common/core/BOPItems.java +++ b/src/main/java/biomesoplenty/common/core/BOPItems.java @@ -18,6 +18,7 @@ import biomesoplenty.common.items.ItemBOPScythe; import biomesoplenty.common.items.ItemBOPSeeds; import biomesoplenty.common.items.ItemBOPSpade; import biomesoplenty.common.items.ItemBOPSword; +import biomesoplenty.common.items.ItemBiomeFinder; import biomesoplenty.common.items.ItemDart; import biomesoplenty.common.items.ItemDartBlower; import biomesoplenty.common.items.ItemEnderporter; @@ -65,6 +66,9 @@ public class BOPItems registerItem(new ItemBOPRecord("bopdisc").setUnlocalizedName("bopDisc")); registerItem(new ItemBOPRecord("bopdiscmud").setUnlocalizedName("bopDiscMud")); + //registerItem(new ItemBiomeBook().setUnlocalizedName("biomeBook")); + registerItem(new ItemBiomeFinder().setUnlocalizedName("biomeFinder")); + registerItem(new ItemBOPSword(BOPItemHelper.toolMaterialMud, 0).setUnlocalizedName("swordMud")); registerItem(new ItemBOPSpade(BOPItemHelper.toolMaterialMud, 0).setUnlocalizedName("shovelMud")); registerItem(new ItemBOPPickaxe(BOPItemHelper.toolMaterialMud, 0).setUnlocalizedName("pickaxeMud")); diff --git a/src/main/java/biomesoplenty/common/core/BOPPackets.java b/src/main/java/biomesoplenty/common/core/BOPPackets.java new file mode 100644 index 000000000..9c839eb51 --- /dev/null +++ b/src/main/java/biomesoplenty/common/core/BOPPackets.java @@ -0,0 +1,18 @@ +package biomesoplenty.common.core; + +import static biomesoplenty.BiomesOPlenty.packetPipeline; + +import biomesoplenty.common.network.packet.PacketBiomePosition; + +public class BOPPackets +{ + public static void init() + { + registerPackets(); + } + + private static void registerPackets() + { + packetPipeline.registerPacket(PacketBiomePosition.class); + } +} diff --git a/src/main/java/biomesoplenty/common/core/BOPVanillaCompat.java b/src/main/java/biomesoplenty/common/core/BOPVanillaCompat.java index 337b94efc..d5716886f 100644 --- a/src/main/java/biomesoplenty/common/core/BOPVanillaCompat.java +++ b/src/main/java/biomesoplenty/common/core/BOPVanillaCompat.java @@ -1,14 +1,22 @@ package biomesoplenty.common.core; +import java.util.HashMap; +import java.util.Map.Entry; + import net.minecraft.block.BlockDispenser; import net.minecraft.item.ItemStack; import net.minecraft.util.WeightedRandomChestContent; +import net.minecraft.world.biome.BiomeGenBase; import net.minecraftforge.common.ChestGenHooks; import biomesoplenty.api.BOPBlockHelper; import biomesoplenty.api.BOPItemHelper; import biomesoplenty.common.configuration.BOPConfigurationMisc; import biomesoplenty.common.entities.projectiles.dispenser.DispenserBehaviourDart; import biomesoplenty.common.entities.projectiles.dispenser.DispenserBehaviourMudball; +import biomesoplenty.common.world.decoration.ForcedDecorators; +import biomesoplenty.common.world.decoration.IBOPDecoration; +import biomesoplenty.common.world.features.WorldGenBOPDoubleFlora; +import biomesoplenty.common.world.features.WorldGenBOPFlora; public class BOPVanillaCompat { @@ -16,6 +24,7 @@ public class BOPVanillaCompat { registerDispenserBehaviours(); addDungeonLoot(); + addBonemealFlowers(); } private static void registerDispenserBehaviours() @@ -54,4 +63,44 @@ public class BOPVanillaCompat village.addItem(new WeightedRandomChestContent(new ItemStack(BOPItemHelper.get("flippers"), 1, 0), 1, 1, 5)); } } + + private static void addBonemealFlowers() + { + //TODO: getBiomeGenArray() + for (BiomeGenBase biome : BiomeGenBase.func_150565_n()) + { + if (biome != null) + { + IBOPDecoration bopDecoration = null; + + if (biome instanceof IBOPDecoration) + { + bopDecoration = (IBOPDecoration)biome; + } + else if (ForcedDecorators.biomeHasForcedDecorator(biome.biomeID)) + { + bopDecoration = ForcedDecorators.getForcedDecorator(biome.biomeID); + } + + if (bopDecoration != null) + { + if (bopDecoration.getWeightedWorldGenForBOPFlowers() != null && !bopDecoration.getWeightedWorldGenForBOPFlowers().isEmpty()) + { + HashMap flowerMap = bopDecoration.getWeightedWorldGenForBOPFlowers(); + + for (Entry entry : flowerMap.entrySet()) + { + if (!(entry.getKey() instanceof WorldGenBOPDoubleFlora)) + { + WorldGenBOPFlora flowerGenerator = entry.getKey(); + int weight = entry.getValue(); + + biome.addFlower(flowerGenerator.flora, flowerGenerator.floraMeta, weight); + } + } + } + } + } + } + } } diff --git a/src/main/java/biomesoplenty/common/helpers/BOPReflectionHelper.java b/src/main/java/biomesoplenty/common/helpers/BOPReflectionHelper.java index f9639c6a1..883061902 100755 --- a/src/main/java/biomesoplenty/common/helpers/BOPReflectionHelper.java +++ b/src/main/java/biomesoplenty/common/helpers/BOPReflectionHelper.java @@ -23,6 +23,18 @@ public class BOPReflectionHelper } } + public static void setPrivateValue(Class classToAccess, T instance, E value, String fieldName, String obfFieldName) + { + if (isDeobfuscated) + { + ReflectionHelper.setPrivateValue(classToAccess, instance, value, fieldName); + } + else + { + ObfuscationReflectionHelper.setPrivateValue(classToAccess, instance, value, obfFieldName); + } + } + public static void setPrivateFinalValue(Class classToAccess, T instance, E value, String fieldName, String obfFieldName) { Field field = null; diff --git a/src/main/java/biomesoplenty/common/items/ItemBiomeBook.java b/src/main/java/biomesoplenty/common/items/ItemBiomeBook.java new file mode 100644 index 000000000..9ae0a9a16 --- /dev/null +++ b/src/main/java/biomesoplenty/common/items/ItemBiomeBook.java @@ -0,0 +1,88 @@ +/*package biomesoplenty.common.items; + +import java.util.List; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemEditableBook; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.nbt.NBTTagString; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; +import biomesoplenty.BiomesOPlenty; +import biomesoplenty.client.gui.GuiScreenBiomeBook; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class ItemBiomeBook extends ItemEditableBook +{ + public ItemBiomeBook() + { + super(); + + this.setCreativeTab(BiomesOPlenty.tabBiomesOPlenty); + } + + @Override + public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer player) + { + setBookInfo(itemStack); + + if (world.isRemote) + { + Minecraft.getMinecraft().func_147108_a(new GuiScreenBiomeBook(player, itemStack)); + } + + return itemStack; + } + + @Override + //TODO: public void getSubItems(Item item, CreativeTabs creativeTabs, List list) + public void func_150895_a(Item item, CreativeTabs creativeTabs, List list) + { + ItemStack biomeBook = new ItemStack(item); + + setBookInfo(biomeBook); + list.add(biomeBook); + } + + private void setBookInfo(ItemStack itemStack) + { + if (!itemStack.hasTagCompound()) itemStack.setTagCompound(new NBTTagCompound()); + + itemStack.getTagCompound().setString("title", this.getItemStackDisplayName(itemStack)); + itemStack.getTagCompound().setString("author", "The BoP Team"); + + NBTTagList tagList = new NBTTagList(); + + tagList.appendTag(new NBTTagString("Bla \nHi<2>")); + tagList.appendTag(new NBTTagString("Test I")); + tagList.appendTag(new NBTTagString("Test II")); + + itemStack.getTagCompound().setTag("pages", tagList); + } + + @Override + public void registerIcons(IIconRegister iconRegister) + { + itemIcon = iconRegister.registerIcon("biomesoplenty:biomebook"); + } + + @Override + @SideOnly(Side.CLIENT) + public boolean hasEffect(ItemStack itemStack) + { + return false; + } + + @Override + public String getItemStackDisplayName(ItemStack itemStack) + { + return EnumChatFormatting.AQUA + super.getItemStackDisplayName(itemStack); + } +}*/ diff --git a/src/main/java/biomesoplenty/common/items/ItemBiomeFinder.java b/src/main/java/biomesoplenty/common/items/ItemBiomeFinder.java new file mode 100644 index 000000000..caf8caeb0 --- /dev/null +++ b/src/main/java/biomesoplenty/common/items/ItemBiomeFinder.java @@ -0,0 +1,99 @@ +package biomesoplenty.common.items; + +import java.util.Arrays; + +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.ChunkPosition; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.biome.WorldChunkManager; +import biomesoplenty.BiomesOPlenty; +import biomesoplenty.api.BOPBiomeHelper; +import biomesoplenty.client.textures.TextureBiomeFinder; +import biomesoplenty.common.network.packet.PacketBiomePosition; + +public class ItemBiomeFinder extends Item +{ + public ItemBiomeFinder() + { + this.setCreativeTab(BiomesOPlenty.tabBiomesOPlenty); + } + + @Override + public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer player) + { + if (!world.isRemote) + { + if (!itemStack.hasTagCompound()) itemStack.setTagCompound(new NBTTagCompound()); + + BiomeGenBase biomeToFind = BOPBiomeHelper.getBOPBiome("lavenderFields"); + + int radius = 256; + + WorldChunkManager chunkManager = world.getWorldChunkManager(); + + //TODO: findBiome()? + ChunkPosition biomePosition = null; + + for (int x = -10; x <= 10; x++) + { + for (int z = -10; z <= 10; z++) + { + ChunkPosition foundPosition = chunkManager.func_150795_a(x * 1024, z * 1024, radius, Arrays.asList(biomeToFind), world.rand); + + if (foundPosition != null && world.getBiomeGenForCoords(foundPosition.field_151329_a, foundPosition.field_151328_c) == biomeToFind) + { + biomePosition = foundPosition; + break; + } + } + } + + if (biomePosition != null) + { + System.out.println(biomePosition.field_151329_a + " " + biomePosition.field_151328_c); + + NBTTagCompound biomeCompound = new NBTTagCompound(); + + biomeCompound.setInteger("x", biomePosition.field_151329_a); + biomeCompound.setInteger("z", biomePosition.field_151328_c); + + if (!player.getEntityData().hasKey("biomePositions")) player.getEntityData().setTag("biomePositions", new NBTTagCompound()); + + NBTTagCompound biomePositions = player.getEntityData().getCompoundTag("biomePositions"); + + if (!biomePositions.hasKey(biomeToFind.biomeName)) biomePositions.setTag(biomeToFind.biomeName, biomeCompound); + + BiomesOPlenty.packetPipeline.sendTo(new PacketBiomePosition(biomeToFind.biomeName, biomePosition.field_151329_a, biomePosition.field_151328_c), (EntityPlayerMP)player); + } + + System.out.println("Done looking"); + } + + return itemStack; + } + + @Override + public void registerIcons(IIconRegister iconRegister) + { + if (iconRegister instanceof TextureMap) + { + TextureAtlasSprite texture = new TextureBiomeFinder("biomesoplenty:biomefinder"); + ((TextureMap)iconRegister).setTextureEntry("biomesoplenty:biomefinder", texture); + this.itemIcon = texture; + } + } + + /*@Override + public void addInformation(ItemStack itemStack, EntityPlayer player, List list, boolean advancedItemTooltips) + { + if (!itemStack.hasTagCompound()) itemStack.setTagCompound(new NBTTagCompound()); + }*/ +} diff --git a/src/main/java/biomesoplenty/common/network/AbstractPacket.java b/src/main/java/biomesoplenty/common/network/AbstractPacket.java new file mode 100644 index 000000000..b37565897 --- /dev/null +++ b/src/main/java/biomesoplenty/common/network/AbstractPacket.java @@ -0,0 +1,43 @@ +package biomesoplenty.common.network; + +import io.netty.buffer.ByteBuf; +import io.netty.channel.ChannelHandlerContext; + +import net.minecraft.entity.player.EntityPlayer; + +/** + * AbstractPacket class. Should be the parent of all packets wishing to use the PacketPipeline. + * @author sirgingalot + */ +public abstract class AbstractPacket +{ + /** + * Encode the packet data into the ByteBuf stream. Complex data sets may need specific data handlers (See @link{cpw.mods.fml.common.network.ByteBuffUtils}) + * + * @param ctx channel context + * @param buffer the buffer to encode into + */ + public abstract void encodeInto(ChannelHandlerContext ctx, ByteBuf buffer); + + /** + * Decode the packet data from the ByteBuf stream. Complex data sets may need specific data handlers (See @link{cpw.mods.fml.common.network.ByteBuffUtils}) + * + * @param ctx channel context + * @param buffer the buffer to decode from + */ + public abstract void decodeInto(ChannelHandlerContext ctx, ByteBuf buffer); + + /** + * Handle a packet on the client side. Note this occurs after decoding has completed. + * + * @param player the player reference + */ + public abstract void handleClientSide(EntityPlayer player); + + /** + * Handle a packet on the server side. Note this occurs after decoding has completed. + * + * @param player the player reference + */ + public abstract void handleServerSide(EntityPlayer player); +} diff --git a/src/main/java/biomesoplenty/common/network/PacketPipeline.java b/src/main/java/biomesoplenty/common/network/PacketPipeline.java new file mode 100644 index 000000000..c66d3c82d --- /dev/null +++ b/src/main/java/biomesoplenty/common/network/PacketPipeline.java @@ -0,0 +1,221 @@ +package biomesoplenty.common.network; + +import java.util.*; + +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; +import io.netty.channel.ChannelHandler; +import io.netty.channel.ChannelHandlerContext; +import io.netty.handler.codec.MessageToMessageCodec; + +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.network.INetHandler; +import net.minecraft.network.NetHandlerPlayServer; + +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.network.FMLEmbeddedChannel; +import cpw.mods.fml.common.network.FMLOutboundHandler; +import cpw.mods.fml.common.network.NetworkRegistry; +import cpw.mods.fml.common.network.internal.FMLProxyPacket; +import cpw.mods.fml.relauncher.Side; + +/** + * Packet pipeline class. Directs all registered packet data to be handled by the packets themselves. + * @author sirgingalot + * some code from: cpw + */ +@ChannelHandler.Sharable +public class PacketPipeline extends MessageToMessageCodec +{ + private EnumMap channels; + private LinkedList> packets = new LinkedList>(); + private boolean isPostInitialised = false; + + /** + * Register your packet with the pipeline. Discriminators are automatically set. + * + * @param clazz the class to register + * + * @return whether registration was successful. Failure may occur if 256 packets have been registered or if the registry already contains this packet + */ + public boolean registerPacket(Class clazz) + { + if (this.packets.size() > 256) + { + // You should log here!! + return false; + } + + if (this.packets.contains(clazz)) + { + // You should log here!! + return false; + } + + if (this.isPostInitialised) + { + // You should log here!! + return false; + } + + this.packets.add(clazz); + return true; + } + + // In line encoding of the packet, including discriminator setting + @Override + protected void encode(ChannelHandlerContext ctx, AbstractPacket msg, List out) throws Exception + { + ByteBuf buffer = Unpooled.buffer(); + Class clazz = msg.getClass(); + if (!this.packets.contains(msg.getClass())) + { + throw new NullPointerException("No Packet Registered for: " + msg.getClass().getCanonicalName()); + } + + byte discriminator = (byte) this.packets.indexOf(clazz); + buffer.writeByte(discriminator); + msg.encodeInto(ctx, buffer); + FMLProxyPacket proxyPacket = new FMLProxyPacket(buffer.copy(), ctx.channel().attr(NetworkRegistry.FML_CHANNEL).get()); + out.add(proxyPacket); + } + + // In line decoding and handling of the packet + @Override + protected void decode(ChannelHandlerContext ctx, FMLProxyPacket msg, List out) throws Exception + { + ByteBuf payload = msg.payload(); + byte discriminator = payload.readByte(); + Class clazz = this.packets.get(discriminator); + if (clazz == null) + { + throw new NullPointerException("No packet registered for discriminator: " + discriminator); + } + + AbstractPacket pkt = clazz.newInstance(); + pkt.decodeInto(ctx, payload.slice()); + + EntityPlayer player; + switch (FMLCommonHandler.instance().getEffectiveSide()) + { + case CLIENT: + player = Minecraft.getMinecraft().thePlayer; + pkt.handleClientSide(player); + break; + + case SERVER: + INetHandler netHandler = ctx.channel().attr(NetworkRegistry.NET_HANDLER).get(); + player = ((NetHandlerPlayServer) netHandler).field_147369_b; + pkt.handleServerSide(player); + break; + + default: + } + + out.add(pkt); + } + + // Method to call from FMLInitializationEvent + public void initalize() + { + this.channels = NetworkRegistry.INSTANCE.newChannel("BiomeOPlenty", this); + } + + // Method to call from FMLPostInitializationEvent + // Ensures that packet discriminators are common between server and client by using logical sorting + public void postInitialize() + { + if (this.isPostInitialised) + { + return; + } + + this.isPostInitialised = true; + Collections.sort(this.packets, new Comparator>() + { + @Override + public int compare(Class clazz1, Class clazz2) + { + int com = String.CASE_INSENSITIVE_ORDER.compare(clazz1.getCanonicalName(), clazz2.getCanonicalName()); + if (com == 0) { + com = clazz1.getCanonicalName().compareTo(clazz2.getCanonicalName()); + } + + return com; + } + }); + } + + /** + * Send this message to everyone. + *

+ * Adapted from CPW's code in cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper + * + * @param message The message to send + */ + public void sendToAll(AbstractPacket message) + { + this.channels.get(Side.SERVER).attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.ALL); + this.channels.get(Side.SERVER).writeAndFlush(message); + } + + /** + * Send this message to the specified player. + *

+ * Adapted from CPW's code in cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper + * + * @param message The message to send + * @param player The player to send it to + */ + public void sendTo(AbstractPacket message, EntityPlayerMP player) + { + this.channels.get(Side.SERVER).attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.PLAYER); + this.channels.get(Side.SERVER).attr(FMLOutboundHandler.FML_MESSAGETARGETARGS).set(player); + this.channels.get(Side.SERVER).writeAndFlush(message); + } + + /** + * Send this message to everyone within a certain range of a point. + *

+ * Adapted from CPW's code in cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper + * + * @param message The message to send + * @param point The {@link cpw.mods.fml.common.network.NetworkRegistry.TargetPoint} around which to send + */ + public void sendToAllAround(AbstractPacket message, NetworkRegistry.TargetPoint point) + { + this.channels.get(Side.SERVER).attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.ALLAROUNDPOINT); + this.channels.get(Side.SERVER).attr(FMLOutboundHandler.FML_MESSAGETARGETARGS).set(point); + this.channels.get(Side.SERVER).writeAndFlush(message); + } + + /** + * Send this message to everyone within the supplied dimension. + *

+ * Adapted from CPW's code in cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper + * + * @param message The message to send + * @param dimensionId The dimension id to target + */ + public void sendToDimension(AbstractPacket message, int dimensionId) + { + this.channels.get(Side.SERVER).attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.DIMENSION); + this.channels.get(Side.SERVER).attr(FMLOutboundHandler.FML_MESSAGETARGETARGS).set(dimensionId); + this.channels.get(Side.SERVER).writeAndFlush(message); + } + + /** + * Send this message to the server. + *

+ * Adapted from CPW's code in cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper + * + * @param message The message to send + */ + public void sendToServer(AbstractPacket message) + { + this.channels.get(Side.CLIENT).attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.TOSERVER); + this.channels.get(Side.CLIENT).writeAndFlush(message); + } +} diff --git a/src/main/java/biomesoplenty/common/network/packet/PacketBiomePosition.java b/src/main/java/biomesoplenty/common/network/packet/PacketBiomePosition.java new file mode 100644 index 000000000..9731708d3 --- /dev/null +++ b/src/main/java/biomesoplenty/common/network/packet/PacketBiomePosition.java @@ -0,0 +1,60 @@ +package biomesoplenty.common.network.packet; + +import cpw.mods.fml.common.network.ByteBufUtils; +import io.netty.buffer.ByteBuf; +import io.netty.channel.ChannelHandlerContext; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import biomesoplenty.common.network.AbstractPacket; + +public class PacketBiomePosition extends AbstractPacket +{ + private String biomeName; + private int x; + private int z; + + public PacketBiomePosition() {} + + public PacketBiomePosition(String biomeName, int x, int z) + { + this.biomeName = biomeName; + this.x = x; + this.z = z; + } + + @Override + public void encodeInto(ChannelHandlerContext ctx, ByteBuf buffer) + { + ByteBufUtils.writeUTF8String(buffer, biomeName); + buffer.writeInt(x); + buffer.writeInt(z); + } + + @Override + public void decodeInto(ChannelHandlerContext ctx, ByteBuf buffer) + { + biomeName = ByteBufUtils.readUTF8String(buffer); + x = buffer.readInt(); + z = buffer.readInt(); + } + + @Override + public void handleClientSide(EntityPlayer player) + { + NBTTagCompound biomeCompound = new NBTTagCompound(); + + biomeCompound.setInteger("x", x); + biomeCompound.setInteger("z", z); + + if (!player.getEntityData().hasKey("biomePositions")) player.getEntityData().setTag("biomePositions", new NBTTagCompound()); + + NBTTagCompound biomePositions = player.getEntityData().getCompoundTag("biomePositions"); + + if (!biomePositions.hasKey(biomeName)) biomePositions.setTag(biomeName, biomeCompound); + } + + @Override + public void handleServerSide(EntityPlayer player) + { + } +} diff --git a/src/main/java/biomesoplenty/common/world/decoration/BOPWorldFeatures.java b/src/main/java/biomesoplenty/common/world/decoration/BOPWorldFeatures.java index ab5d095a8..06d473776 100644 --- a/src/main/java/biomesoplenty/common/world/decoration/BOPWorldFeatures.java +++ b/src/main/java/biomesoplenty/common/world/decoration/BOPWorldFeatures.java @@ -32,7 +32,6 @@ public class BOPWorldFeatures public int bromeliadsPerChunk = 0; public int waterReedsPerChunk = 0; public int wildCarrotsPerChunk = 0; - public int doubleTallGrassPerChunk = 0; public int poisonIvyPerChunk = 0; public int berryBushesPerChunk = 0; public int portobellosPerChunk = 0; @@ -45,7 +44,6 @@ public class BOPWorldFeatures public int sproutsPerChunk = 0; public int tinyCactiPerChunk = 0; public int oasesPerChunk = 0; - public int sunflowersPerChunk = 0; public int minersDelightPerChunk = 2; public int rootsPerChunk = 9; public int grassSplatterPerChunk = 0; diff --git a/src/main/java/biomesoplenty/common/world/decoration/IBOPDecoration.java b/src/main/java/biomesoplenty/common/world/decoration/IBOPDecoration.java index bf59749e7..015a3a38f 100644 --- a/src/main/java/biomesoplenty/common/world/decoration/IBOPDecoration.java +++ b/src/main/java/biomesoplenty/common/world/decoration/IBOPDecoration.java @@ -1,7 +1,10 @@ package biomesoplenty.common.world.decoration; +import java.util.HashMap; import java.util.Random; +import net.minecraft.world.gen.feature.WorldGenerator; + import biomesoplenty.common.world.features.WorldGenBOPFlora; public interface IBOPDecoration @@ -9,4 +12,8 @@ public interface IBOPDecoration public WorldGenBOPFlora getRandomWorldGenForBOPFlowers(Random random); public BOPWorldFeatures getWorldFeatures(); + + public HashMap getWeightedWorldGenForGrass(); + + public HashMap getWeightedWorldGenForBOPFlowers(); } diff --git a/src/main/java/biomesoplenty/common/world/features/WorldGenBOPDoubleFlora.java b/src/main/java/biomesoplenty/common/world/features/WorldGenBOPDoubleFlora.java index 25c633e34..d9fbd7240 100644 --- a/src/main/java/biomesoplenty/common/world/features/WorldGenBOPDoubleFlora.java +++ b/src/main/java/biomesoplenty/common/world/features/WorldGenBOPDoubleFlora.java @@ -4,20 +4,23 @@ import java.lang.reflect.Field; import java.util.Random; import net.minecraft.block.Block; +import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.gen.feature.WorldGenerator; import biomesoplenty.common.world.decoration.IBOPDecoration; -import biomesoplenty.common.world.generation.WorldGeneratorBOP; -public class WorldGenBOPDoubleFlora extends WorldGeneratorBOP +public class WorldGenBOPDoubleFlora extends WorldGenBOPFlora { private Block bottomFlora; private Block topFlora; private int bottomFloraMeta; private int topFloraMeta; private int groupCount; + + private boolean isVanilla; + private int vanillaFloraMeta; public WorldGenBOPDoubleFlora(Block bottomFlora, Block topFlora, int bottomFloraMeta, int topFloraMeta) { @@ -33,6 +36,21 @@ public class WorldGenBOPDoubleFlora extends WorldGeneratorBOP this.topFloraMeta = topFloraMeta; this.groupCount = groupCount; + + this.isVanilla = false; + } + + public WorldGenBOPDoubleFlora(int vanillaFloraMeta) + { + this(vanillaFloraMeta, 64); + } + + public WorldGenBOPDoubleFlora(int vanillaFloraMeta, int groupCount) + { + this.vanillaFloraMeta = vanillaFloraMeta; + this.groupCount = groupCount; + + this.isVanilla = true; } @Override @@ -44,13 +62,26 @@ public class WorldGenBOPDoubleFlora extends WorldGeneratorBOP int j1 = y + random.nextInt(4) - random.nextInt(4); int k1 = z + random.nextInt(8) - random.nextInt(8); - //TODO: isAirBlock() canReplace() - if (world.func_147437_c(i1, j1, k1) && (!world.provider.hasNoSky || j1 < 255) && this.bottomFlora.func_149705_a(world, i1, j1, k1, 0, new ItemStack(bottomFlora, 1, bottomFloraMeta))) + //TODO: isAirBlock() + if (world.func_147437_c(i1, j1, k1) && (!world.provider.hasNoSky || j1 < 255)) { - //TODO: setBlock() - world.func_147465_d(i1, j1, k1, this.bottomFlora, this.bottomFloraMeta, 2); - //TODO: setBlock() - world.func_147465_d(i1, j1 + 1, k1, this.topFlora, this.topFloraMeta, 2); + if (isVanilla) + { + if (Blocks.double_plant.func_149742_c(world, i1, j1, k1)) + { + Blocks.double_plant.func_149889_c(world, i1, j1, k1, this.vanillaFloraMeta, 2); + } + } + else + { + if (bottomFlora != null && this.bottomFlora.func_149705_a(world, i1, j1, k1, 0, new ItemStack(bottomFlora, 1, bottomFloraMeta))) + { + //TODO: setBlock() + world.func_147465_d(i1, j1, k1, this.bottomFlora, this.bottomFloraMeta, 2); + //TODO: setBlock() + world.func_147465_d(i1, j1 + 1, k1, this.topFlora, this.topFloraMeta, 2); + } + } } } diff --git a/src/main/java/biomesoplenty/common/world/features/WorldGenBOPFlora.java b/src/main/java/biomesoplenty/common/world/features/WorldGenBOPFlora.java index 39673671e..f6065d256 100644 --- a/src/main/java/biomesoplenty/common/world/features/WorldGenBOPFlora.java +++ b/src/main/java/biomesoplenty/common/world/features/WorldGenBOPFlora.java @@ -15,10 +15,12 @@ import biomesoplenty.common.world.generation.WorldGeneratorBOP; public class WorldGenBOPFlora extends WorldGeneratorBOP { - private Block flora; - private int floraMeta; + public Block flora; + public int floraMeta; private int groupCount = 64; + public WorldGenBOPFlora() {} + public WorldGenBOPFlora(Block flora, int floraMeta) { this.flora = flora; diff --git a/src/main/java/biomesoplenty/common/world/forceddecorators/ForcedDecorator.java b/src/main/java/biomesoplenty/common/world/forceddecorators/ForcedDecorator.java index b24a6c116..802509a97 100644 --- a/src/main/java/biomesoplenty/common/world/forceddecorators/ForcedDecorator.java +++ b/src/main/java/biomesoplenty/common/world/forceddecorators/ForcedDecorator.java @@ -1,7 +1,10 @@ package biomesoplenty.common.world.forceddecorators; +import java.util.HashMap; import java.util.Random; +import net.minecraft.world.gen.feature.WorldGenerator; + import biomesoplenty.common.world.decoration.BOPWorldFeatures; import biomesoplenty.common.world.decoration.IBOPDecoration; import biomesoplenty.common.world.features.WorldGenBOPFlora; @@ -26,4 +29,16 @@ public class ForcedDecorator implements IBOPDecoration { return bopWorldFeatures; } + + @Override + public HashMap getWeightedWorldGenForGrass() + { + return null; + } + + @Override + public HashMap getWeightedWorldGenForBOPFlowers() + { + return null; + } } diff --git a/src/main/java/biomesoplenty/common/world/generation/WorldGenFieldAssociation.java b/src/main/java/biomesoplenty/common/world/generation/WorldGenFieldAssociation.java index 39299f8d3..7f6aebe47 100644 --- a/src/main/java/biomesoplenty/common/world/generation/WorldGenFieldAssociation.java +++ b/src/main/java/biomesoplenty/common/world/generation/WorldGenFieldAssociation.java @@ -90,9 +90,6 @@ public class WorldGenFieldAssociation associateField("wasteland2PerChunk", new WorldGenWasteland2()); associateField("wasteland3PerChunk", new WorldGenWasteland3()); associateField("wasteland4PerChunk", new WorldGenWasteland4()); - - associateField("doubleTallGrassPerChunk", new WorldGenBOPDoubleFlora(Blocks.double_plant, Blocks.double_plant, 2, 8)); - associateField("sunflowersPerChunk", new WorldGenBOPDoubleFlora(Blocks.double_plant, Blocks.double_plant, 0, 8)); } public static void associateField(String fieldName, WorldGenerator generator) diff --git a/src/main/resources/assets/biomesoplenty/lang/en_US.lang b/src/main/resources/assets/biomesoplenty/lang/en_US.lang index 35fd8d6bf..1882ad535 100644 --- a/src/main/resources/assets/biomesoplenty/lang/en_US.lang +++ b/src/main/resources/assets/biomesoplenty/lang/en_US.lang @@ -387,6 +387,9 @@ item.flowerBand.exoticflowerband.name=Exotic Flower Band item.wadingBoots.name=Wading Boots item.flippers.name=Flippers +item.biomeBook.name=Book O' Biomes +item.biomeFinder.name=Biome Finder + item.bopBucket.amethyst_empty.name=Amethyst Bucket item.bopBucket.amethyst_spring_water.name=Spring Water Amethyst Bucket item.bopBucket.liquid_poison.name=Liquid Poison Bucket diff --git a/src/main/resources/assets/biomesoplenty/textures/gui/screen/biomebookgui.png b/src/main/resources/assets/biomesoplenty/textures/gui/screen/biomebookgui.png new file mode 100644 index 000000000..473d46657 Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/gui/screen/biomebookgui.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/items/biomebook.png b/src/main/resources/assets/biomesoplenty/textures/items/biomebook.png new file mode 100644 index 000000000..387b8ca10 Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/items/biomebook.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/items/biomefinder.png b/src/main/resources/assets/biomesoplenty/textures/items/biomefinder.png new file mode 100644 index 000000000..e66727ac6 Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/items/biomefinder.png differ diff --git a/src/main/resources/assets/biomesoplenty/textures/items/biomefinder.png.mcmeta b/src/main/resources/assets/biomesoplenty/textures/items/biomefinder.png.mcmeta new file mode 100644 index 000000000..4f0718ac9 --- /dev/null +++ b/src/main/resources/assets/biomesoplenty/textures/items/biomefinder.png.mcmeta @@ -0,0 +1,3 @@ +{ + "animation": {} +} \ No newline at end of file diff --git a/src/main/resources/assets/biomesoplenty/textures/items/bookobiomes.png b/src/main/resources/assets/biomesoplenty/textures/items/bookobiomes.png new file mode 100644 index 000000000..387b8ca10 Binary files /dev/null and b/src/main/resources/assets/biomesoplenty/textures/items/bookobiomes.png differ