From ff149f05a06027d8b74662c7bf8a6e31077a3a11 Mon Sep 17 00:00:00 2001 From: Amnet Date: Thu, 25 Apr 2013 00:45:57 +0200 Subject: [PATCH 1/6] Fixed mudballs in dispensers (had to move to separate ID) Added seeds on destroying our grasses Added carrots / potatoes dropped on destroying sprouts (1% chance) Added golem compatibility with our apple leaves for Thaumcraft Added random drop of apples when destroying apple leaves Added flowers to plants created on bonemeal use Changed recipe for Bamboo Thatching Added bamboo usable as sticks --- src/minecraft/biomesoplenty/ClientProxy.java | 4 +- src/minecraft/biomesoplenty/api/Items.java | 1 + .../blocks/BlockBOPAppleLeaves.java | 21 ++++++++++ .../biomesoplenty/blocks/BlockBOPFoliage.java | 34 +++++++++++++++++ .../biomesoplenty/blocks/BlockMud.java | 2 +- .../configuration/BOPBlocks.java | 18 +++++++++ .../configuration/BOPConfiguration.java | 2 + .../configuration/BOPCrafting.java | 38 +++++++++++-------- .../biomesoplenty/configuration/BOPItems.java | 6 ++- .../configuration/BOPVanillaCompat.java | 4 +- .../helpers/AchievementHelper.java | 4 +- .../integration/ThaumcraftIntegration.java | 2 + .../biomesoplenty/items/ItemBOP.java | 24 +----------- .../biomesoplenty/items/ItemBOPMudball.java | 38 +++++++++++++++++++ 14 files changed, 151 insertions(+), 47 deletions(-) create mode 100644 src/minecraft/biomesoplenty/items/ItemBOPMudball.java diff --git a/src/minecraft/biomesoplenty/ClientProxy.java b/src/minecraft/biomesoplenty/ClientProxy.java index 2b8237da4..6d6f2f585 100644 --- a/src/minecraft/biomesoplenty/ClientProxy.java +++ b/src/minecraft/biomesoplenty/ClientProxy.java @@ -24,7 +24,7 @@ public class ClientProxy extends CommonProxy { MinecraftForgeClient.preloadTexture(ARMOR_AMETHYST1_PNG); MinecraftForgeClient.preloadTexture(ARMOR_AMETHYST2_PNG); - RenderingRegistry.registerEntityRenderingHandler(EntityMudball.class, new RenderSnowball(Items.miscItems.get(), 0)); + RenderingRegistry.registerEntityRenderingHandler(EntityMudball.class, new RenderSnowball(Items.mudball.get(), 0)); RenderingRegistry.registerBlockHandler(new FoliageRenderer()); RenderingRegistry.registerBlockHandler(new PlantsRenderer()); @@ -35,7 +35,7 @@ public class ClientProxy extends CommonProxy { { EntityFX entityfx = null; - entityfx = new EntityBreakingFX(mc.theWorld, x, y, z, Items.miscItems.get(), mc.renderEngine); + entityfx = new EntityBreakingFX(mc.theWorld, x, y, z, Items.mudball.get(), mc.renderEngine); mc.effectRenderer.addEffect(entityfx); } diff --git a/src/minecraft/biomesoplenty/api/Items.java b/src/minecraft/biomesoplenty/api/Items.java index 133136bc6..07529dab4 100644 --- a/src/minecraft/biomesoplenty/api/Items.java +++ b/src/minecraft/biomesoplenty/api/Items.java @@ -33,4 +33,5 @@ public class Items public static Optional enderporter = Optional.absent(); public static Optional shroomPowder = Optional.absent(); public static Optional miscItems = Optional.absent(); + public static Optional mudball = Optional.absent(); } diff --git a/src/minecraft/biomesoplenty/blocks/BlockBOPAppleLeaves.java b/src/minecraft/biomesoplenty/blocks/BlockBOPAppleLeaves.java index 19ad9906f..74bd0cf1c 100644 --- a/src/minecraft/biomesoplenty/blocks/BlockBOPAppleLeaves.java +++ b/src/minecraft/biomesoplenty/blocks/BlockBOPAppleLeaves.java @@ -259,6 +259,27 @@ public class BlockBOPAppleLeaves extends BlockLeavesBase implements IShearable return random.nextInt(20) == 0 ? 1 : 0; } + public void dropBlockAsItemWithChance(World world, int x, int y, int z, int meta, float chance, int par7) + { + if (world.isRemote) + return; + + if (world.rand.nextInt(20) == 0) + { + int var9 = this.idDropped(meta, world.rand, par7); + this.dropBlockAsItem_do(world, x, y, z, new ItemStack(var9, 1, this.damageDropped(meta))); + } + + if ((meta & 3) == 3) + this.dropBlockAsItem_do(world, x, y, z, new ItemStack(Item.appleRed, 1, 0)); + else if ((meta & 3) == 2 && world.rand.nextInt(2) == 0) + this.dropBlockAsItem_do(world, x, y, z, new ItemStack(Item.appleRed, 1, 0)); + else if ((meta & 3) == 1 && world.rand.nextInt(5) == 0) + this.dropBlockAsItem_do(world, x, y, z, new ItemStack(Item.appleRed, 1, 0)); + else if ((meta & 3) == 0 && world.rand.nextInt(10) == 0) + this.dropBlockAsItem_do(world, x, y, z, new ItemStack(Item.appleRed, 1, 0)); + } + @Override public boolean isShearable(ItemStack item, World world, int x, int y, int z) { diff --git a/src/minecraft/biomesoplenty/blocks/BlockBOPFoliage.java b/src/minecraft/biomesoplenty/blocks/BlockBOPFoliage.java index c6787e62c..f9f453927 100644 --- a/src/minecraft/biomesoplenty/blocks/BlockBOPFoliage.java +++ b/src/minecraft/biomesoplenty/blocks/BlockBOPFoliage.java @@ -10,12 +10,14 @@ import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.Icon; import net.minecraft.world.ColorizerFoliage; import net.minecraft.world.ColorizerGrass; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.common.ForgeHooks; import net.minecraftforge.common.IShearable; import biomesoplenty.BiomesOPlenty; import biomesoplenty.blocks.renderers.FoliageRenderer; @@ -69,6 +71,38 @@ public class BlockBOPFoliage extends BlockFlower implements IShearable list.add(new ItemStack(blockID, 1, i)); } + @Override + public ArrayList getBlockDropped(World world, int x, int y, int z, int meta, int fortune) + { + ArrayList ret = new ArrayList(); + + switch (meta) + { + case 1: + case 2: + case 3: + if (world.rand.nextInt(8) != 0) + return ret; + + ItemStack item = ForgeHooks.getGrassSeed(world); + if (item != null) + ret.add(item); + break; + + case 5: + if (world.rand.nextInt(50) != 0) + return ret; + + if (world.rand.nextInt(2) == 0) + ret.add(new ItemStack(Item.carrot,1)); + else + ret.add(new ItemStack(Item.potato,1)); + break; + } + + return ret; + } + @Override public boolean canPlaceBlockOnSide(World world, int x, int y, int z, int side, ItemStack itemStack) { diff --git a/src/minecraft/biomesoplenty/blocks/BlockMud.java b/src/minecraft/biomesoplenty/blocks/BlockMud.java index 02a2be1b7..7bdfd1c48 100644 --- a/src/minecraft/biomesoplenty/blocks/BlockMud.java +++ b/src/minecraft/biomesoplenty/blocks/BlockMud.java @@ -86,7 +86,7 @@ public class BlockMud extends Block public int idDropped(int par1, Random par2Random, int par3) { if (par1 == 0) - return Items.miscItems.get().itemID; + return Items.mudball.get().itemID; else return this.blockID; } diff --git a/src/minecraft/biomesoplenty/configuration/BOPBlocks.java b/src/minecraft/biomesoplenty/configuration/BOPBlocks.java index 881680fe0..28deb3585 100644 --- a/src/minecraft/biomesoplenty/configuration/BOPBlocks.java +++ b/src/minecraft/biomesoplenty/configuration/BOPBlocks.java @@ -84,6 +84,8 @@ public class BOPBlocks { MinecraftForge.setBlockHarvestLevel(Blocks.amethystOre.get(), "pickaxe", 3); MinecraftForge.setBlockHarvestLevel(Blocks.amethystBlock.get(), "pickaxe", 3); + addGrassPlants(); + registerNames(); } @@ -384,4 +386,20 @@ public class BOPBlocks { LanguageRegistry.addName(new ItemStack(Blocks.leavesColorized.get(),1,1), "Mangrove Leaves"); LanguageRegistry.addName(new ItemStack(Blocks.leaves1.get(),1,6), "Holy Leaves"); } + + private static void addGrassPlants() + { + MinecraftForge.addGrassPlant(Blocks.flowers.get(), 0, 10); + MinecraftForge.addGrassPlant(Blocks.flowers.get(), 1, 3); + MinecraftForge.addGrassPlant(Blocks.flowers.get(), 2, 1); + MinecraftForge.addGrassPlant(Blocks.flowers.get(), 3, 1); + MinecraftForge.addGrassPlant(Blocks.flowers.get(), 4, 5); + MinecraftForge.addGrassPlant(Blocks.flowers.get(), 5, 5); + MinecraftForge.addGrassPlant(Blocks.flowers.get(), 6, 5); + MinecraftForge.addGrassPlant(Blocks.flowers.get(), 7, 5); + MinecraftForge.addGrassPlant(Blocks.flowers.get(), 8, 5); + MinecraftForge.addGrassPlant(Blocks.flowers.get(), 9, 5); + + MinecraftForge.addGrassPlant(Blocks.foliage.get(), 5, 10); + } } diff --git a/src/minecraft/biomesoplenty/configuration/BOPConfiguration.java b/src/minecraft/biomesoplenty/configuration/BOPConfiguration.java index 8658200cc..8f5c475a3 100644 --- a/src/minecraft/biomesoplenty/configuration/BOPConfiguration.java +++ b/src/minecraft/biomesoplenty/configuration/BOPConfiguration.java @@ -181,6 +181,7 @@ public class BOPConfiguration { public static int bopDiscMudID; public static int miscItemsID; + public static int mudballID; public static int swordMudID; public static int shovelMudID; @@ -480,6 +481,7 @@ public class BOPConfiguration { enderporterID = config.getItem("Enderporter ID", 21007).getInt(); miscItemsID = config.getItem("Misc Items ID", 21010).getInt(); + mudballID = config.getItem("Mud Ball ID", 21011).getInt(); bopDiscID = config.getItem("Traversia Music Disc ID", 21019, null).getInt(); bopDiscMudID = config.getItem("Muddy Music Disc ID", 21020, null).getInt(); diff --git a/src/minecraft/biomesoplenty/configuration/BOPCrafting.java b/src/minecraft/biomesoplenty/configuration/BOPCrafting.java index 7cd96bb3b..8263dae8f 100644 --- a/src/minecraft/biomesoplenty/configuration/BOPCrafting.java +++ b/src/minecraft/biomesoplenty/configuration/BOPCrafting.java @@ -107,24 +107,24 @@ public class BOPCrafting GameRegistry.addRecipe(new ItemStack(Block.cloth, 1, 0), new Object[] {"CCC", "CCC", "CCC", 'C', new ItemStack(Blocks.plants.get(), 1, 7)}); GameRegistry.addRecipe(new ItemStack(Item.coal, 1), new Object[] {"AAA", "AAA", "AAA", 'A', new ItemStack(Items.miscItems.get(), 1, 1)}); - GameRegistry.addRecipe(new ItemStack(Blocks.mud.get(), 1), new Object[] {"MM", "MM", 'M', new ItemStack(Items.miscItems.get(), 1, 0)}); + GameRegistry.addRecipe(new ItemStack(Blocks.mud.get(), 1), new Object[] {"MM", "MM", 'M', Items.mudball.get()}); GameRegistry.addRecipe(new ItemStack(Blocks.amethystBlock.get(), 1), new Object[] {"AAA", "AAA", "AAA", 'A', new ItemStack(Items.miscItems.get(), 1, 2)}); GameRegistry.addRecipe(new ItemStack(Blocks.ash.get(), 1), new Object[] {"AA", "AA", 'A', new ItemStack(Items.miscItems.get(), 1, 1)}); GameRegistry.addRecipe(new ItemStack(Blocks.mudBrick.get(), 1), new Object[] {"MM", "MM", 'M', new ItemStack(Items.miscItems.get(), 1, 3)}); - GameRegistry.addRecipe(new ItemStack(Blocks.planks.get(), 1, 10), new Object[] {"###", "###", "###", '#', Blocks.bamboo.get()}); +// GameRegistry.addRecipe(new ItemStack(Blocks.planks.get(), 1, 10), new Object[] {"###", "###", "###", '#', Blocks.bamboo.get()}); GameRegistry.addRecipe(new ItemStack(Block.cobblestoneMossy, 1, 0), new Object[] {"MMM", "MCM", "MMM", 'M', Blocks.moss.get(), 'C', Block.cobblestone}); GameRegistry.addRecipe(new ItemStack(Block.stoneBrick, 1, 1), new Object[] {"MMM", "MSM", "MMM", 'M', Blocks.moss.get(), 'S', Block.stoneBrick}); //Mud Tools and Armor - GameRegistry.addRecipe(new ItemStack(Items.pickaxeMud.get(), 1), new Object [] {"###", " X ", " X ", Character.valueOf('#'), new ItemStack(Items.miscItems.get(), 1, 0), Character.valueOf('X'), Item.stick}); - GameRegistry.addRecipe(new ItemStack(Items.shovelMud.get(), 1), new Object [] {"#", "X", "X", Character.valueOf('#'), new ItemStack(Items.miscItems.get(), 1, 0), Character.valueOf('X'), Item.stick}); - GameRegistry.addRecipe(new ItemStack(Items.swordMud.get(), 1), new Object [] {"#", "#", "X", Character.valueOf('#'), new ItemStack(Items.miscItems.get(), 1, 0), Character.valueOf('X'), Item.stick}); - GameRegistry.addRecipe(new ItemStack(Items.axeMud.get(), 1), new Object [] {"##", "#X", " X", Character.valueOf('#'), new ItemStack(Items.miscItems.get(), 1, 0), Character.valueOf('X'), Item.stick}); - GameRegistry.addRecipe(new ItemStack(Items.hoeMud.get(), 1), new Object [] {"##", " X", " X", Character.valueOf('#'), new ItemStack(Items.miscItems.get(), 1, 0), Character.valueOf('X'), Item.stick}); - GameRegistry.addRecipe(new ItemStack(Items.helmetMud.get(), 1), new Object [] {"###", "# #", Character.valueOf('#'), new ItemStack(Items.miscItems.get(), 1, 0)}); - GameRegistry.addRecipe(new ItemStack(Items.chestplateMud.get(), 1), new Object [] {"# #", "###", "###", Character.valueOf('#'), new ItemStack(Items.miscItems.get(), 1, 0)}); - GameRegistry.addRecipe(new ItemStack(Items.leggingsMud.get(), 1), new Object [] {"###", "# #", "# #", Character.valueOf('#'), new ItemStack(Items.miscItems.get(), 1, 0)}); - GameRegistry.addRecipe(new ItemStack(Items.bootsMud.get(), 1), new Object [] {"# #", "# #", Character.valueOf('#'), new ItemStack(Items.miscItems.get(), 1, 0)}); + GameRegistry.addRecipe(new ItemStack(Items.pickaxeMud.get(), 1), new Object [] {"###", " X ", " X ", Character.valueOf('#'), Items.mudball.get(), Character.valueOf('X'), Item.stick}); + GameRegistry.addRecipe(new ItemStack(Items.shovelMud.get(), 1), new Object [] {"#", "X", "X", Character.valueOf('#'), Items.mudball.get(), Character.valueOf('X'), Item.stick}); + GameRegistry.addRecipe(new ItemStack(Items.swordMud.get(), 1), new Object [] {"#", "#", "X", Character.valueOf('#'), Items.mudball.get(), Character.valueOf('X'), Item.stick}); + GameRegistry.addRecipe(new ItemStack(Items.axeMud.get(), 1), new Object [] {"##", "#X", " X", Character.valueOf('#'), Items.mudball.get(), Character.valueOf('X'), Item.stick}); + GameRegistry.addRecipe(new ItemStack(Items.hoeMud.get(), 1), new Object [] {"##", " X", " X", Character.valueOf('#'), Items.mudball.get(), Character.valueOf('X'), Item.stick}); + GameRegistry.addRecipe(new ItemStack(Items.helmetMud.get(), 1), new Object [] {"###", "# #", Character.valueOf('#'), Items.mudball.get()}); + GameRegistry.addRecipe(new ItemStack(Items.chestplateMud.get(), 1), new Object [] {"# #", "###", "###", Character.valueOf('#'), Items.mudball.get()}); + GameRegistry.addRecipe(new ItemStack(Items.leggingsMud.get(), 1), new Object [] {"###", "# #", "# #", Character.valueOf('#'), Items.mudball.get()}); + GameRegistry.addRecipe(new ItemStack(Items.bootsMud.get(), 1), new Object [] {"# #", "# #", Character.valueOf('#'), Items.mudball.get()}); //Amethyst Tools and Armor GameRegistry.addRecipe(new ItemStack(Items.pickaxeAmethyst.get(), 1), new Object [] {"###", " X ", " X ", Character.valueOf('#'), new ItemStack(Items.miscItems.get(), 1, 2), Character.valueOf('X'), Item.ingotIron}); @@ -144,9 +144,11 @@ public class BOPCrafting GameRegistry.addRecipe(new ItemStack(Items.ancientStaff.get(), 1, 2), new Object[] {"ISI", "IRI", "ISI", 'I', Item.ingotIron, 'S', Block.whiteStone, 'R', Item.redstone}); GameRegistry.addRecipe(new ItemStack(Items.ancientStaff.get(), 1, 3), new Object[] {" N ", "IDI", "ISI", 'I', Item.ingotIron, 'S', Block.whiteStone, 'D', Item.diamond, 'N', Item.netherStar}); GameRegistry.addRecipe(new ItemStack(Items.enderporter.get(), 1, 0), new Object[] {"IOI", "OAO", "IOI", 'I', Item.eyeOfEnder, 'O', Block.obsidian, 'A', Blocks.amethystBlock.get()}); - GameRegistry.addRecipe(new ItemStack(Items.bopDiscMud.get(), 1), new Object[] {" M ", "MDM", " M ", 'M', new ItemStack(Items.miscItems.get(), 1, 0), 'D', Items.bopDisc.get()}); + GameRegistry.addRecipe(new ItemStack(Items.bopDiscMud.get(), 1), new Object[] {" M ", "MDM", " M ", 'M', Items.mudball.get(), 'D', Items.bopDisc.get()}); - GameRegistry.addShapelessRecipe(new ItemStack(Blocks.bamboo.get(), 9), new Object[] {new ItemStack(Blocks.planks.get(), 1, 10)}); + GameRegistry.addRecipe(new ItemStack(Blocks.planks.get(), 1, 10), new Object[] {"##", "##", '#', Blocks.bamboo.get()}); + + GameRegistry.addShapelessRecipe(new ItemStack(Blocks.bamboo.get(), 4), new Object[] {new ItemStack(Blocks.planks.get(), 1, 10)}); GameRegistry.addShapelessRecipe(new ItemStack(Items.miscItems.get(), 9, 2), new Object[] {Blocks.amethystBlock.get()}); //Plants @@ -158,7 +160,12 @@ public class BOPCrafting GameRegistry.addSmelting(Block.dirt.blockID, new ItemStack(Blocks.driedDirt.get(), 1), 0F); FurnaceRecipes.smelting().addSmelting(Blocks.redRock.get().blockID, 1, new ItemStack(Blocks.redRock.get(), 1, 0), 0.1F); FurnaceRecipes.smelting().addSmelting(Blocks.flowers.get().blockID, 11, new ItemStack(Item.dyePowder, 1, 2), 0.2F); - FurnaceRecipes.smelting().addSmelting(Items.miscItems.get().itemID, 2, new ItemStack(Items.miscItems.get(), 1, 3), 0F); + FurnaceRecipes.smelting().addSmelting(Items.mudball.get().itemID, 0, new ItemStack(Items.miscItems.get(), 1, 0), 0F); + + FurnaceRecipes.smelting().addSmelting(Blocks.logs1.get().blockID, new ItemStack(Item.coal, 1, 1), 15F); + FurnaceRecipes.smelting().addSmelting(Blocks.logs2.get().blockID, new ItemStack(Item.coal, 1, 1), 15F); + for (int i = 0; i < 3; ++i) + FurnaceRecipes.smelting().addSmelting(Blocks.logs3.get().blockID, i, new ItemStack(Item.coal, 1, 1), 15F); GameRegistry.registerFuelHandler(checkNotNull(new FurnaceFuel())); } @@ -168,7 +175,8 @@ public class BOPCrafting //Ore Registration for (int i = 0; i < 10; ++i) OreDictionary.registerOre("plankWood", new ItemStack(Blocks.planks.get(), 1, i)); -// OreDictionary.registerOre("plankWood", new ItemStack(Blocks.bambooThatching.get())); + + OreDictionary.registerOre("stickWood", new ItemStack(Blocks.bamboo.get())); OreDictionary.registerOre("treeSapling", new ItemStack(Blocks.saplings.get(), 1, OreDictionary.WILDCARD_VALUE)); OreDictionary.registerOre("treeSapling", new ItemStack(Blocks.colorizedSaplings.get(), 1, OreDictionary.WILDCARD_VALUE)); diff --git a/src/minecraft/biomesoplenty/configuration/BOPItems.java b/src/minecraft/biomesoplenty/configuration/BOPItems.java index 6203cdeb3..7cab2653e 100644 --- a/src/minecraft/biomesoplenty/configuration/BOPItems.java +++ b/src/minecraft/biomesoplenty/configuration/BOPItems.java @@ -18,6 +18,7 @@ import biomesoplenty.items.ItemBOP; import biomesoplenty.items.ItemBOPAncientStaff; import biomesoplenty.items.ItemBOPAxe; import biomesoplenty.items.ItemBOPHoe; +import biomesoplenty.items.ItemBOPMudball; import biomesoplenty.items.ItemBOPPickaxe; import biomesoplenty.items.ItemBOPRecord; import biomesoplenty.items.ItemBOPRecordMud; @@ -101,6 +102,7 @@ public class BOPItems { // Item declaration Items.shroomPowder = Optional.of(new ItemShroomPowder(BOPConfiguration.shroomPowderID, 1, 0.5F, false)); Items.miscItems = Optional.of(new ItemBOP(BOPConfiguration.miscItemsID)); + Items.mudball = Optional.of(new ItemBOPMudball(BOPConfiguration.mudballID)); Items.ancientStaff = Optional.of(new ItemBOPAncientStaff(BOPConfiguration.ancientStaffID)); @@ -133,8 +135,8 @@ public class BOPItems { private static void registerNames() { LanguageRegistry.addName(Items.shroomPowder.get(), "Shroom Powder"); - LanguageRegistry.addName(new ItemStack(Items.miscItems.get(), 1, 0), "Mud Ball"); - LanguageRegistry.addName(new ItemStack(Items.miscItems.get(), 1, 3), "Mud Brick"); + LanguageRegistry.addName(Items.mudball.get(), "Mud Ball"); + LanguageRegistry.addName(new ItemStack(Items.miscItems.get(), 1, 0), "Mud Brick"); LanguageRegistry.addName(new ItemStack(Items.miscItems.get(), 1, 2), "Amethyst"); LanguageRegistry.addName(new ItemStack(Items.miscItems.get(), 1, 1), "Pile of Ashes"); diff --git a/src/minecraft/biomesoplenty/configuration/BOPVanillaCompat.java b/src/minecraft/biomesoplenty/configuration/BOPVanillaCompat.java index 2b117bc0a..0667887c9 100644 --- a/src/minecraft/biomesoplenty/configuration/BOPVanillaCompat.java +++ b/src/minecraft/biomesoplenty/configuration/BOPVanillaCompat.java @@ -14,7 +14,7 @@ public class BOPVanillaCompat { public static void init() { // Dispenser behavior for mud balls - BlockDispenser.dispenseBehaviorRegistry.putObject(new ItemStack(Items.miscItems.get(), 1, 0), new DispenserBehaviorMudball()); + BlockDispenser.dispenseBehaviorRegistry.putObject(Items.mudball.get(), new DispenserBehaviorMudball()); ChestGenHooks dungeon; ChestGenHooks mineshaft; @@ -34,7 +34,7 @@ public class BOPVanillaCompat { mineshaft.addItem(new WeightedRandomChestContent(new ItemStack(Items.miscItems.get(), 1, 1), 2, 8, 25)); mineshaft.addItem(new WeightedRandomChestContent(new ItemStack(Blocks.plants.get(),1,5), 4, 6, 15)); - mineshaft.addItem(new WeightedRandomChestContent(new ItemStack(Items.miscItems.get(), 1, 0), 2, 8, 10)); + mineshaft.addItem(new WeightedRandomChestContent(new ItemStack(Items.mudball.get(), 1, 0), 2, 8, 10)); mineshaft.addItem(new WeightedRandomChestContent(new ItemStack(Item.dyePowder, 1, 3), 4, 12, 75)); strongholdCorridor.addItem(new WeightedRandomChestContent(new ItemStack(Blocks.moss.get()), 2, 8, 50)); diff --git a/src/minecraft/biomesoplenty/helpers/AchievementHelper.java b/src/minecraft/biomesoplenty/helpers/AchievementHelper.java index b23f28f86..247e5cef6 100644 --- a/src/minecraft/biomesoplenty/helpers/AchievementHelper.java +++ b/src/minecraft/biomesoplenty/helpers/AchievementHelper.java @@ -42,7 +42,7 @@ public class AchievementHelper achAsh = (new Achievement(3060, "achAsh", 1, 3, new ItemStack(Items.miscItems.get(), 1, 1), achFlower)).registerAchievement(); achOrigin = (new Achievement(3061, "achOrigin", 0, 5, Blocks.originGrass.get(), achFlower)).setSpecial().registerAchievement(); achPromised = (new Achievement(3062, "achPromised", 0, -5, Blocks.holyGrass.get(), achFlower)).setSpecial().registerAchievement(); - achMud = (new Achievement(3063, "achMud", -2, -1, new ItemStack(Items.miscItems.get(), 1, 0), achFlower)).registerAchievement(); + achMud = (new Achievement(3063, "achMud", -2, -1, Items.mudball.get(), achFlower)).registerAchievement(); achShroom = (new Achievement(3064, "achShroom", 1, -2, new ItemStack(Blocks.flowers.get(),1,10), achFlower)).registerAchievement(); achBarley = (new Achievement(3065, "achBarley", -2, 4, new ItemStack(Blocks.plants.get(),1,6), achFlower)).registerAchievement(); achMoss = (new Achievement(3066, "achMoss", -1, -3, Blocks.moss.get(), achFlower)).registerAchievement(); @@ -92,7 +92,7 @@ public class AchievementHelper { player.addStat(achPromised, 1); } - if (item.itemID == Items.miscItems.get().itemID && item.getItemDamage() == 0) + if (item.itemID == Items.mudball.get().itemID) { player.addStat(achMud, 1); } diff --git a/src/minecraft/biomesoplenty/integration/ThaumcraftIntegration.java b/src/minecraft/biomesoplenty/integration/ThaumcraftIntegration.java index bda2a0413..8005209d0 100644 --- a/src/minecraft/biomesoplenty/integration/ThaumcraftIntegration.java +++ b/src/minecraft/biomesoplenty/integration/ThaumcraftIntegration.java @@ -1,5 +1,6 @@ package biomesoplenty.integration; +import cpw.mods.fml.common.event.FMLInterModComms; import net.minecraft.item.ItemStack; import biomesoplenty.api.BlockReferences; import biomesoplenty.api.Blocks; @@ -13,6 +14,7 @@ public class ThaumcraftIntegration { protected static void init() { addAspects(); + FMLInterModComms.sendMessage("Thaumcraft", "harvestClickableCrop", new ItemStack(Blocks.leavesFruit.get(), 1, 4)); } private static void addAspects() diff --git a/src/minecraft/biomesoplenty/items/ItemBOP.java b/src/minecraft/biomesoplenty/items/ItemBOP.java index 73c5f9631..c55596426 100644 --- a/src/minecraft/biomesoplenty/items/ItemBOP.java +++ b/src/minecraft/biomesoplenty/items/ItemBOP.java @@ -4,19 +4,16 @@ import java.util.List; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.Icon; -import net.minecraft.world.World; import biomesoplenty.BiomesOPlenty; -import biomesoplenty.items.projectiles.EntityMudball; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; public class ItemBOP extends Item { - private static String[] items = {"mudball", "ash", "amethyst", "mudbrick"}; + private static String[] items = {"mudbrick", "ash", "amethyst"}; @SideOnly(Side.CLIENT) private Icon[] textures; @@ -53,23 +50,4 @@ public class ItemBOP extends Item for(int meta = 0; meta < items.length; ++meta) subTypes.add(new ItemStack(itemId, 1, meta)); } - - public ItemStack onItemRightClick(ItemStack itemStack, World par2World, EntityPlayer par3EntityPlayer) - { - if (itemStack.getItemDamage() == 0) - { - if (!par3EntityPlayer.capabilities.isCreativeMode) - { - --itemStack.stackSize; - } - - par2World.playSoundAtEntity(par3EntityPlayer, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - - if (!par2World.isRemote) - { - par2World.spawnEntityInWorld(new EntityMudball(par2World, par3EntityPlayer)); - } - } - return itemStack; - } } diff --git a/src/minecraft/biomesoplenty/items/ItemBOPMudball.java b/src/minecraft/biomesoplenty/items/ItemBOPMudball.java new file mode 100644 index 000000000..1f977e224 --- /dev/null +++ b/src/minecraft/biomesoplenty/items/ItemBOPMudball.java @@ -0,0 +1,38 @@ +package biomesoplenty.items; + +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import biomesoplenty.BiomesOPlenty; +import biomesoplenty.items.projectiles.EntityMudball; + +public class ItemBOPMudball extends Item +{ + public ItemBOPMudball(int par1) + { + super(par1); + setCreativeTab(BiomesOPlenty.tabBiomesOPlenty); + setUnlocalizedName("mudball"); + } + + public void registerIcons(IconRegister iconRegister) + { + itemIcon = iconRegister.registerIcon("BiomesOPlenty:mudball"); + } + + public ItemStack onItemRightClick(ItemStack itemStack, World par2World, EntityPlayer par3EntityPlayer) + { + if (!par3EntityPlayer.capabilities.isCreativeMode) + --itemStack.stackSize; + + + par2World.playSoundAtEntity(par3EntityPlayer, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); + + if (!par2World.isRemote) + par2World.spawnEntityInWorld(new EntityMudball(par2World, par3EntityPlayer)); + + return itemStack; + } +} From 26c8eb2679761f6f0ef3208d4709e5a5927062c1 Mon Sep 17 00:00:00 2001 From: Amnet Date: Thu, 25 Apr 2013 01:31:48 +0200 Subject: [PATCH 2/6] Fixed how the saplings grow --- .../blocks/BlockBOPColorizedSapling.java | 12 ++++++++++++ .../biomesoplenty/blocks/BlockBOPSapling.java | 12 ++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/minecraft/biomesoplenty/blocks/BlockBOPColorizedSapling.java b/src/minecraft/biomesoplenty/blocks/BlockBOPColorizedSapling.java index 98f30df9f..97871662e 100644 --- a/src/minecraft/biomesoplenty/blocks/BlockBOPColorizedSapling.java +++ b/src/minecraft/biomesoplenty/blocks/BlockBOPColorizedSapling.java @@ -62,6 +62,18 @@ public class BlockBOPColorizedSapling extends BlockSapling list.add(new ItemStack(blockID, 1, i)); } + @Override + public void updateTick(World world, int x, int y, int z, Random random) + { + if (world.isRemote) + return; + + this.checkFlowerChange(world, x, y, z); + + if (world.getBlockLightValue(x, y + 1, z) >= 9 && random.nextInt(7) == 0) + this.growTree(world, x, y, z, random); + } + @Override public void growTree(World world, int x, int y, int z, Random random) { diff --git a/src/minecraft/biomesoplenty/blocks/BlockBOPSapling.java b/src/minecraft/biomesoplenty/blocks/BlockBOPSapling.java index abc94c03d..66a868dbf 100644 --- a/src/minecraft/biomesoplenty/blocks/BlockBOPSapling.java +++ b/src/minecraft/biomesoplenty/blocks/BlockBOPSapling.java @@ -68,6 +68,18 @@ public class BlockBOPSapling extends BlockSapling list.add(new ItemStack(blockID, 1, i)); } + @Override + public void updateTick(World world, int x, int y, int z, Random random) + { + if (world.isRemote) + return; + + this.checkFlowerChange(world, x, y, z); + + if (world.getBlockLightValue(x, y + 1, z) >= 9 && random.nextInt(7) == 0) + this.growTree(world, x, y, z, random); + } + @Override public void growTree(World world, int x, int y, int z, Random random) { From 5e6c5f4d06d24f5a6f0e361c7106ef2daf4b5e8c Mon Sep 17 00:00:00 2001 From: Amnet Date: Thu, 25 Apr 2013 08:35:53 +0200 Subject: [PATCH 3/6] Added hardcoded foliage colors --- .../biomesoplenty/biomes/BiomeGenCherryBlossomGrove.java | 5 +++++ src/minecraft/biomesoplenty/biomes/BiomeGenDeadForest.java | 5 +++++ src/minecraft/biomesoplenty/biomes/BiomeGenDeadSwamp.java | 5 +++++ src/minecraft/biomesoplenty/biomes/BiomeGenGrassland.java | 5 +++++ src/minecraft/biomesoplenty/biomes/BiomeGenMeadow.java | 5 +++++ src/minecraft/biomesoplenty/biomes/BiomeGenMoor.java | 5 +++++ src/minecraft/biomesoplenty/biomes/BiomeGenOrchard.java | 5 +++++ src/minecraft/biomesoplenty/biomes/BiomeGenSteppe.java | 5 +++++ 8 files changed, 40 insertions(+) diff --git a/src/minecraft/biomesoplenty/biomes/BiomeGenCherryBlossomGrove.java b/src/minecraft/biomesoplenty/biomes/BiomeGenCherryBlossomGrove.java index c037a09cd..77beaf95d 100644 --- a/src/minecraft/biomesoplenty/biomes/BiomeGenCherryBlossomGrove.java +++ b/src/minecraft/biomesoplenty/biomes/BiomeGenCherryBlossomGrove.java @@ -41,4 +41,9 @@ public class BiomeGenCherryBlossomGrove extends BiomeGenBase { return 10747818; } + + public int getBiomeFoliageColor() + { + return 10747818; + } } diff --git a/src/minecraft/biomesoplenty/biomes/BiomeGenDeadForest.java b/src/minecraft/biomesoplenty/biomes/BiomeGenDeadForest.java index 6babf4ca5..6663d0eed 100644 --- a/src/minecraft/biomesoplenty/biomes/BiomeGenDeadForest.java +++ b/src/minecraft/biomesoplenty/biomes/BiomeGenDeadForest.java @@ -55,6 +55,11 @@ public class BiomeGenDeadForest extends BiomeGenBase { return 12362085; } + + public int getBiomeFoliageColor() + { + return 12362085; + } /** * takes temperature, returns color diff --git a/src/minecraft/biomesoplenty/biomes/BiomeGenDeadSwamp.java b/src/minecraft/biomesoplenty/biomes/BiomeGenDeadSwamp.java index 4cc0b6a2f..96be824b1 100644 --- a/src/minecraft/biomesoplenty/biomes/BiomeGenDeadSwamp.java +++ b/src/minecraft/biomesoplenty/biomes/BiomeGenDeadSwamp.java @@ -59,6 +59,11 @@ public class BiomeGenDeadSwamp extends BiomeGenBase { return 6713420; } + + public int getBiomeFoliageColor() + { + return 6713420; + } /** * takes temperature, returns color diff --git a/src/minecraft/biomesoplenty/biomes/BiomeGenGrassland.java b/src/minecraft/biomesoplenty/biomes/BiomeGenGrassland.java index c3304fa5d..a0ebdc2ec 100644 --- a/src/minecraft/biomesoplenty/biomes/BiomeGenGrassland.java +++ b/src/minecraft/biomesoplenty/biomes/BiomeGenGrassland.java @@ -76,4 +76,9 @@ public class BiomeGenGrassland extends BiomeGenBase { return 8379261; } + + public int getBiomeFoliageColor() + { + return 8379261; + } } diff --git a/src/minecraft/biomesoplenty/biomes/BiomeGenMeadow.java b/src/minecraft/biomesoplenty/biomes/BiomeGenMeadow.java index 498df0b9f..e8bdd0f02 100644 --- a/src/minecraft/biomesoplenty/biomes/BiomeGenMeadow.java +++ b/src/minecraft/biomesoplenty/biomes/BiomeGenMeadow.java @@ -63,4 +63,9 @@ public class BiomeGenMeadow extends BiomeGenBase { return 6533741; } + + public int getBiomeFoliageColor() + { + return 6533741; + } } diff --git a/src/minecraft/biomesoplenty/biomes/BiomeGenMoor.java b/src/minecraft/biomesoplenty/biomes/BiomeGenMoor.java index ccc71e4a7..336fa18e2 100644 --- a/src/minecraft/biomesoplenty/biomes/BiomeGenMoor.java +++ b/src/minecraft/biomesoplenty/biomes/BiomeGenMoor.java @@ -66,6 +66,11 @@ public class BiomeGenMoor extends BiomeGenBase { return 6394725; } + + public int getBiomeFoliageColor() + { + return 6394725; + } /** * takes temperature, returns color diff --git a/src/minecraft/biomesoplenty/biomes/BiomeGenOrchard.java b/src/minecraft/biomesoplenty/biomes/BiomeGenOrchard.java index 6c39845f1..dc1e3581a 100644 --- a/src/minecraft/biomesoplenty/biomes/BiomeGenOrchard.java +++ b/src/minecraft/biomesoplenty/biomes/BiomeGenOrchard.java @@ -39,4 +39,9 @@ public class BiomeGenOrchard extends BiomeGenBase { return 14024557; } + + public int getBiomeFoliageColor() + { + return 14024557; + } } diff --git a/src/minecraft/biomesoplenty/biomes/BiomeGenSteppe.java b/src/minecraft/biomesoplenty/biomes/BiomeGenSteppe.java index 518137418..b504727c7 100644 --- a/src/minecraft/biomesoplenty/biomes/BiomeGenSteppe.java +++ b/src/minecraft/biomesoplenty/biomes/BiomeGenSteppe.java @@ -46,4 +46,9 @@ public class BiomeGenSteppe extends BiomeGenBase { return 13413215; } + + public int getBiomeFoliageColor() + { + return 13413215; + } } From fb1c0b362a8711e2659c48e43953c3c0bf3d5883 Mon Sep 17 00:00:00 2001 From: Amnet Date: Thu, 25 Apr 2013 12:38:55 +0200 Subject: [PATCH 4/6] Added configurable spawn distance between villages in BOP World Type Added more biomes to spawn villages in --- .../biomesoplenty/BiomesOPlenty.java | 2 +- .../configuration/BOPBiomes.java | 50 +++++++++- .../configuration/BOPConfiguration.java | 6 ++ .../integration/ThaumcraftIntegration.java | 2 +- .../worldgen/structure/BOPMapGenVillage.java | 95 +++++++++++++++++++ .../structure/BOPStructureVillageStart.java | 70 ++++++++++++++ .../worldtype/ChunkProviderBOP.java | 5 +- .../biomesoplenty/worldtype/WTBiomesOP.java | 2 +- 8 files changed, 225 insertions(+), 7 deletions(-) create mode 100644 src/minecraft/biomesoplenty/worldgen/structure/BOPMapGenVillage.java create mode 100644 src/minecraft/biomesoplenty/worldgen/structure/BOPStructureVillageStart.java diff --git a/src/minecraft/biomesoplenty/BiomesOPlenty.java b/src/minecraft/biomesoplenty/BiomesOPlenty.java index a45d98826..3f3950309 100644 --- a/src/minecraft/biomesoplenty/BiomesOPlenty.java +++ b/src/minecraft/biomesoplenty/BiomesOPlenty.java @@ -114,7 +114,7 @@ public class BiomesOPlenty public void load(FMLInitializationEvent event) { LanguageRegistry.instance().addStringLocalization("itemGroup.tabBiomesOPlenty", "en_US", "Biomes O\' Plenty"); - //LanguageRegistry.instance().addStringLocalization("generator.BIOMESOP", "en_US", "Biomes O\' Plenty"); + LanguageRegistry.instance().addStringLocalization("generator.BIOMESOP", "en_US", "Biomes O\' Plenty"); // Add helpers for compatibility MinecraftForge.TERRAIN_GEN_BUS.register(new WorldTypeSize()); diff --git a/src/minecraft/biomesoplenty/configuration/BOPBiomes.java b/src/minecraft/biomesoplenty/configuration/BOPBiomes.java index a82833bb2..d3bf9496e 100644 --- a/src/minecraft/biomesoplenty/configuration/BOPBiomes.java +++ b/src/minecraft/biomesoplenty/configuration/BOPBiomes.java @@ -32,7 +32,7 @@ public class BOPBiomes { initializeBiomes(); //Initialize new world type - //WTBiomesOP = new WTBiomesOP(); + WTBiomesOP = new WTBiomesOP(); //Biome Dictionary addToBiomeDictionary(); @@ -317,7 +317,39 @@ public class BOPBiomes { addVillageBiome(Biomes.forestNew); addVillageBiome(Biomes.taigaNew); addVillageBiome(Biomes.swamplandNew); - } + + // Additional biomes to spawn villages + addVillageBiome(Biomes.alps); + addVillageBiome(Biomes.badlands); + addVillageBiome(Biomes.bambooForest); + addVillageBiome(Biomes.bog); + addVillageBiome(Biomes.borealForest); + addVillageBiome(Biomes.canyon); + addVillageBiome(Biomes.cherryBlossomGrove); + addVillageBiome(Biomes.deadSwamp); + addVillageBiome(Biomes.deciduousForest); + addVillageBiome(Biomes.drylands); + addVillageBiome(Biomes.dunes); + addVillageBiome(Biomes.fen); + addVillageBiome(Biomes.highland); + addVillageBiome(Biomes.jadeCliffs); + addVillageBiome(Biomes.lushDesert); + addVillageBiome(Biomes.meadow); + addVillageBiome(Biomes.moor); + addVillageBiome(Biomes.mountain); + addVillageBiome(Biomes.oasis); + addVillageBiome(Biomes.outback); + addVillageBiome(Biomes.pasture); + addVillageBiome(Biomes.quagmire); + addVillageBiome(Biomes.rainforest); + addVillageBiome(Biomes.seasonalForest); + addVillageBiome(Biomes.swampwoods); + addVillageBiome(Biomes.temperateRainforest); + addVillageBiome(Biomes.thicket); + addVillageBiome(Biomes.tropics); + addVillageBiome(Biomes.tundra); + addVillageBiome(Biomes.wetland); + } private static void addStrongholdBiomes() { @@ -622,65 +654,79 @@ public class BOPBiomes { // Vanilla biomes generation if (BOPConfiguration.plainsGen) + { if (BOPConfiguration.vanillaEnhanced) { registerBiome(Biomes.plainsNew); GameRegistry.removeBiome(BiomeGenBase.plains); } + } else GameRegistry.removeBiome(BiomeGenBase.plains); if (BOPConfiguration.desertGen) + { if (BOPConfiguration.vanillaEnhanced) { registerBiome(Biomes.desertNew); GameRegistry.removeBiome(BiomeGenBase.desert); } + } else GameRegistry.removeBiome(BiomeGenBase.desert); if (BOPConfiguration.extremeHillsGen) + { if (BOPConfiguration.vanillaEnhanced) { registerBiome(Biomes.extremeHillsNew); GameRegistry.removeBiome(BiomeGenBase.extremeHills); } + } else GameRegistry.removeBiome(BiomeGenBase.extremeHills); if (BOPConfiguration.forestGen) + { if (BOPConfiguration.vanillaEnhanced) { registerBiome(Biomes.forestNew); GameRegistry.removeBiome(BiomeGenBase.forest); } + } else GameRegistry.removeBiome(BiomeGenBase.forest); if (BOPConfiguration.taigaGen) + { if (BOPConfiguration.vanillaEnhanced) { registerBiome(Biomes.taigaNew); GameRegistry.removeBiome(BiomeGenBase.taiga); } + } else GameRegistry.removeBiome(BiomeGenBase.taiga); if (BOPConfiguration.swamplandGen) + { if (BOPConfiguration.vanillaEnhanced) { registerBiome(Biomes.swamplandNew); GameRegistry.removeBiome(BiomeGenBase.swampland); } + } else GameRegistry.removeBiome(BiomeGenBase.swampland); if (BOPConfiguration.jungleGen) + { if (BOPConfiguration.vanillaEnhanced) { registerBiome(Biomes.jungleNew); GameRegistry.removeBiome(BiomeGenBase.jungle); } + } else GameRegistry.removeBiome(BiomeGenBase.jungle); } diff --git a/src/minecraft/biomesoplenty/configuration/BOPConfiguration.java b/src/minecraft/biomesoplenty/configuration/BOPConfiguration.java index 8f5c475a3..3307046bb 100644 --- a/src/minecraft/biomesoplenty/configuration/BOPConfiguration.java +++ b/src/minecraft/biomesoplenty/configuration/BOPConfiguration.java @@ -17,6 +17,8 @@ public class BOPConfiguration { public static boolean achievements; public static boolean vanillaEnhanced; + public static int villageDistance; + public static int promisedLandDimID; public static boolean alpsGen; @@ -320,6 +322,10 @@ public class BOPConfiguration { promisedLandDimID = config.get("Dimension Settings", "Promised Land Dimension ID", 20, null).getInt(); addToDefault = config.get("Biome Settings", "Add Biomes To Default World", true).getBoolean(true); + + villageDistance = config.get("Biomes O\' Plenty World Type Settings", "Distance between villages", 24, "In Vanilla it is set to 32").getInt(); + if (villageDistance < 8) + villageDistance = 8; alpsGen = config.get("Biomes To Generate", "Alps", true).getBoolean(false); arcticGen = config.get("Biomes To Generate", "Arctic", true).getBoolean(false); diff --git a/src/minecraft/biomesoplenty/integration/ThaumcraftIntegration.java b/src/minecraft/biomesoplenty/integration/ThaumcraftIntegration.java index 8005209d0..5a2b20106 100644 --- a/src/minecraft/biomesoplenty/integration/ThaumcraftIntegration.java +++ b/src/minecraft/biomesoplenty/integration/ThaumcraftIntegration.java @@ -14,7 +14,7 @@ public class ThaumcraftIntegration { protected static void init() { addAspects(); - FMLInterModComms.sendMessage("Thaumcraft", "harvestClickableCrop", new ItemStack(Blocks.leavesFruit.get(), 1, 4)); + FMLInterModComms.sendMessage("Thaumcraft", "harvestClickableCrop", new ItemStack(Blocks.leavesFruit.get(), 1, 3)); } private static void addAspects() diff --git a/src/minecraft/biomesoplenty/worldgen/structure/BOPMapGenVillage.java b/src/minecraft/biomesoplenty/worldgen/structure/BOPMapGenVillage.java new file mode 100644 index 000000000..a70abc4d8 --- /dev/null +++ b/src/minecraft/biomesoplenty/worldgen/structure/BOPMapGenVillage.java @@ -0,0 +1,95 @@ +package biomesoplenty.worldgen.structure; + +import java.util.Arrays; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Random; +import java.util.Map.Entry; + +import biomesoplenty.configuration.BOPConfiguration; +import net.minecraft.util.MathHelper; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraft.world.gen.structure.MapGenStructure; +import net.minecraft.world.gen.structure.MapGenVillage; +import net.minecraft.world.gen.structure.StructureStart; + +public class BOPMapGenVillage extends MapGenStructure +{ + /** A list of all the biomes villages can spawn in. */ + public static List villageSpawnBiomes = Arrays.asList(new BiomeGenBase[] {BiomeGenBase.plains, BiomeGenBase.desert}); + + /** World terrain type, 0 for normal, 1 for flat map */ + private int terrainType; + private int distance; + private int field_82666_h; + + public BOPMapGenVillage() + { + this.terrainType = 0; + this.distance = BOPConfiguration.villageDistance; + this.field_82666_h = BOPConfiguration.villageDistance / 4; + villageSpawnBiomes = MapGenVillage.villageSpawnBiomes; + } + + public BOPMapGenVillage(Map par1Map) + { + this(); + Iterator iterator = par1Map.entrySet().iterator(); + + while (iterator.hasNext()) + { + Entry entry = (Entry)iterator.next(); + + if (((String)entry.getKey()).equals("size")) + { + this.terrainType = MathHelper.parseIntWithDefaultAndMax((String)entry.getValue(), this.terrainType, 0); + } + else if (((String)entry.getKey()).equals("distance")) + { + this.distance = MathHelper.parseIntWithDefaultAndMax((String)entry.getValue(), this.distance, this.field_82666_h + 1); + } + } + } + + protected boolean canSpawnStructureAtCoords(int par1, int par2) + { + int k = par1; + int l = par2; + + if (par1 < 0) + { + par1 -= this.distance - 1; + } + + if (par2 < 0) + { + par2 -= this.distance - 1; + } + + int i1 = par1 / this.distance; + int j1 = par2 / this.distance; + Random random = this.worldObj.setRandomSeed(i1, j1, 10387312); + i1 *= this.distance; + j1 *= this.distance; + i1 += random.nextInt(this.distance - this.field_82666_h); + j1 += random.nextInt(this.distance - this.field_82666_h); + + if (k == i1 && l == j1) + { + boolean flag = this.worldObj.getWorldChunkManager().areBiomesViable(k * 16 + 8, l * 16 + 8, 0, villageSpawnBiomes); + + if (flag) + { + return true; + } + } + + return false; + } + + protected StructureStart getStructureStart(int par1, int par2) + { + return new BOPStructureVillageStart(this.worldObj, this.rand, par1, par2, this.terrainType); + } +} diff --git a/src/minecraft/biomesoplenty/worldgen/structure/BOPStructureVillageStart.java b/src/minecraft/biomesoplenty/worldgen/structure/BOPStructureVillageStart.java new file mode 100644 index 000000000..bffad5719 --- /dev/null +++ b/src/minecraft/biomesoplenty/worldgen/structure/BOPStructureVillageStart.java @@ -0,0 +1,70 @@ +package biomesoplenty.worldgen.structure; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.Random; +import net.minecraft.world.World; +import net.minecraft.world.gen.structure.ComponentVillageRoadPiece; +import net.minecraft.world.gen.structure.ComponentVillageStartPiece; +import net.minecraft.world.gen.structure.StructureComponent; +import net.minecraft.world.gen.structure.StructureStart; +import net.minecraft.world.gen.structure.StructureVillagePieces; + +class BOPStructureVillageStart extends StructureStart +{ + /** well ... thats what it does */ + private boolean hasMoreThanTwoComponents = false; + + public BOPStructureVillageStart(World par1World, Random par2Random, int par3, int par4, int par5) + { + ArrayList arraylist = StructureVillagePieces.getStructureVillageWeightedPieceList(par2Random, par5); + ComponentVillageStartPiece componentvillagestartpiece = new ComponentVillageStartPiece(par1World.getWorldChunkManager(), 0, par2Random, (par3 << 4) + 2, (par4 << 4) + 2, arraylist, par5); + this.components.add(componentvillagestartpiece); + componentvillagestartpiece.buildComponent(componentvillagestartpiece, this.components, par2Random); + ArrayList arraylist1 = componentvillagestartpiece.field_74930_j; + ArrayList arraylist2 = componentvillagestartpiece.field_74932_i; + int l; + + while (!arraylist1.isEmpty() || !arraylist2.isEmpty()) + { + StructureComponent structurecomponent; + + if (arraylist1.isEmpty()) + { + l = par2Random.nextInt(arraylist2.size()); + structurecomponent = (StructureComponent)arraylist2.remove(l); + structurecomponent.buildComponent(componentvillagestartpiece, this.components, par2Random); + } + else + { + l = par2Random.nextInt(arraylist1.size()); + structurecomponent = (StructureComponent)arraylist1.remove(l); + structurecomponent.buildComponent(componentvillagestartpiece, this.components, par2Random); + } + } + + this.updateBoundingBox(); + l = 0; + Iterator iterator = this.components.iterator(); + + while (iterator.hasNext()) + { + StructureComponent structurecomponent1 = (StructureComponent)iterator.next(); + + if (!(structurecomponent1 instanceof ComponentVillageRoadPiece)) + { + ++l; + } + } + + this.hasMoreThanTwoComponents = l > 2; + } + + /** + * currently only defined for Villages, returns true if Village has more than 2 non-road components + */ + public boolean isSizeableStructure() + { + return this.hasMoreThanTwoComponents; + } +} diff --git a/src/minecraft/biomesoplenty/worldtype/ChunkProviderBOP.java b/src/minecraft/biomesoplenty/worldtype/ChunkProviderBOP.java index 9679fb475..567f5e181 100644 --- a/src/minecraft/biomesoplenty/worldtype/ChunkProviderBOP.java +++ b/src/minecraft/biomesoplenty/worldtype/ChunkProviderBOP.java @@ -15,6 +15,7 @@ import java.util.List; import java.util.Random; import biomesoplenty.configuration.BOPConfiguration; +import biomesoplenty.worldgen.structure.BOPMapGenVillage; import net.minecraft.block.Block; import net.minecraft.block.BlockSand; @@ -59,7 +60,7 @@ public class ChunkProviderBOP implements IChunkProvider private double[] stoneNoise = new double[256]; private MapGenBase caveGenerator = new MapGenCaves(); private MapGenStronghold strongholdGenerator = new MapGenStronghold(); - private MapGenVillage villageGenerator = new MapGenVillage(); + private BOPMapGenVillage villageGenerator = new BOPMapGenVillage(); private MapGenMineshaft mineshaftGenerator = new MapGenMineshaft(); private MapGenScatteredFeature scatteredFeatureGenerator = new MapGenScatteredFeature(); private MapGenBase ravineGenerator = new MapGenRavine(); @@ -80,7 +81,7 @@ public class ChunkProviderBOP implements IChunkProvider { caveGenerator = TerrainGen.getModdedMapGen(caveGenerator, CAVE); strongholdGenerator = (MapGenStronghold) TerrainGen.getModdedMapGen(strongholdGenerator, STRONGHOLD); - villageGenerator = (MapGenVillage) TerrainGen.getModdedMapGen(villageGenerator, VILLAGE); + villageGenerator = (BOPMapGenVillage) TerrainGen.getModdedMapGen(villageGenerator, VILLAGE); mineshaftGenerator = (MapGenMineshaft) TerrainGen.getModdedMapGen(mineshaftGenerator, MINESHAFT); scatteredFeatureGenerator = (MapGenScatteredFeature) TerrainGen.getModdedMapGen(scatteredFeatureGenerator, SCATTERED_FEATURE); ravineGenerator = TerrainGen.getModdedMapGen(ravineGenerator, RAVINE); diff --git a/src/minecraft/biomesoplenty/worldtype/WTBiomesOP.java b/src/minecraft/biomesoplenty/worldtype/WTBiomesOP.java index 75d16763f..64dae9f81 100644 --- a/src/minecraft/biomesoplenty/worldtype/WTBiomesOP.java +++ b/src/minecraft/biomesoplenty/worldtype/WTBiomesOP.java @@ -11,7 +11,7 @@ public class WTBiomesOP extends WorldTypeBase { public WTBiomesOP() { super(4, "BIOMESOP"); - this.removeAllBiomes(); + //this.removeAllBiomes(); this.removeBiome(BiomeGenBase.plains); this.removeBiome(BiomeGenBase.desert); this.removeBiome(BiomeGenBase.forest); From f05287a2360b273cb599803ec940e2fa1bdb5c19 Mon Sep 17 00:00:00 2001 From: Amnet Date: Thu, 25 Apr 2013 12:49:08 +0200 Subject: [PATCH 5/6] Tweaked the generation of Cattail. --- .../biomesoplenty/worldgen/WorldGenCattail.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/minecraft/biomesoplenty/worldgen/WorldGenCattail.java b/src/minecraft/biomesoplenty/worldgen/WorldGenCattail.java index c353294fa..b347a2c7c 100644 --- a/src/minecraft/biomesoplenty/worldgen/WorldGenCattail.java +++ b/src/minecraft/biomesoplenty/worldgen/WorldGenCattail.java @@ -6,29 +6,31 @@ import biomesoplenty.api.Blocks; import biomesoplenty.configuration.BOPBlocks; import net.minecraft.block.Block; +import net.minecraft.block.material.Material; import net.minecraft.world.World; import net.minecraft.world.gen.feature.WorldGenerator; public class WorldGenCattail extends WorldGenerator { - public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) + public boolean generate(World world, Random par2Random, int par3, int par4, int par5) { int var11; - for (boolean var6 = false; ((var11 = par1World.getBlockId(par3, par4, par5)) == 0 || var11 == Block.leaves.blockID) && par4 > 0; --par4) + for (boolean var6 = false; ((var11 = world.getBlockId(par3, par4, par5)) == 0 || var11 == Block.leaves.blockID) && par4 > 0; --par4) { ; } for (int var7 = 0; var7 < 128; ++var7) { - int var8 = par3 + par2Random.nextInt(8) - par2Random.nextInt(8); - int var9 = par4 + par2Random.nextInt(4) - par2Random.nextInt(4); - int var10 = par5 + par2Random.nextInt(8) - par2Random.nextInt(8); + int x = par3 + par2Random.nextInt(8) - par2Random.nextInt(8); + int y = par4 + par2Random.nextInt(4) - par2Random.nextInt(4); + int z = par5 + par2Random.nextInt(8) - par2Random.nextInt(8); - if (par1World.isAirBlock(var8, var9, var10) && Blocks.plants.get().canBlockStay(par1World, var8, var9, var10)) + if (world.isAirBlock(x, y, z) && Blocks.plants.get().canBlockStay(world, x, y, z)) { - par1World.setBlock(var8, var9, var10, Blocks.plants.get().blockID, 7, 2); + if ((world.getBlockMaterial(x - 1, y - 1, z) == Material.water ? true : (world.getBlockMaterial(x + 1, y - 1, z) == Material.water ? true : (world.getBlockMaterial(x, y - 1, z - 1) == Material.water ? true : world.getBlockMaterial(x, y - 1, z + 1) == Material.water)))) + world.setBlock(x, y, z, Blocks.plants.get().blockID, 7, 2); } } From e206c8a2c25d2ca11bf427b0ce7f3f79b0e38b60 Mon Sep 17 00:00:00 2001 From: Amnet Date: Thu, 25 Apr 2013 18:28:57 +0200 Subject: [PATCH 6/6] Finished ID usage reduction. Renamed texture files to be more adequate to in-game names. Added the possibility of having different texture for heart of every log. --- src/minecraft/biomesoplenty/api/Blocks.java | 5 +- .../biomes/BiomeDecoratorBOP.java | 2 +- .../blocks/BlockBOPAmethyst.java | 148 ++++++++++++++ .../blocks/BlockBOPAppleLeaves.java | 4 +- .../blocks/BlockBOPColorizedLeaves.java | 4 +- .../blocks/BlockBOPColorizedSapling.java | 2 +- .../biomesoplenty/blocks/BlockBOPFlower.java | 2 +- .../biomesoplenty/blocks/BlockBOPGeneric.java | 75 +------ .../biomesoplenty/blocks/BlockBOPGrass.java | 185 ++++++++++++++++++ .../biomesoplenty/blocks/BlockBOPLeaves.java | 6 +- .../biomesoplenty/blocks/BlockBOPLog.java | 8 +- .../biomesoplenty/blocks/BlockBOPPlank.java | 2 +- .../biomesoplenty/blocks/BlockBOPSapling.java | 4 +- .../biomesoplenty/blocks/BlockBOPSlab.java | 2 +- .../biomesoplenty/blocks/BlockBOPStairs.java | 2 +- .../configuration/BOPBlocks.java | 48 +++-- .../configuration/BOPConfiguration.java | 16 +- .../configuration/BOPCrafting.java | 6 +- .../biomesoplenty/helpers/BonemealUse.java | 2 +- .../biomesoplenty/items/ItemBOPAmethyst.java | 27 +++ .../biomesoplenty/items/ItemBOPFlower.java | 2 +- .../biomesoplenty/items/ItemBOPGrass.java | 27 +++ .../biomesoplenty/items/ItemBOPSapling.java | 2 +- .../worldgen/WorldGenDeadTree3.java | 2 +- .../worldgen/WorldGenPromisedTree.java | 2 +- .../worldgen/WorldGenPromisedTree2.java | 2 +- .../worldgen/WorldGenPromisedTree3.java | 8 +- .../worldgen/WorldGenSmolderingGrass.java | 7 +- .../blocks/{whiteflower.png => anemone.png} | Bin .../textures/blocks/appleleaves3.png | Bin 628 -> 0 bytes .../textures/blocks/appleleaves3_fast.png | Bin 610 -> 0 bytes .../textures/blocks/appleleaves4.png | Bin 598 -> 0 bytes ...mTopBottum.png => bigflowerstem_heart.png} | Bin ...gflowerstem.png => bigflowerstem_side.png} | Bin .../blocks/{tinyflower.png => clover.png} | Bin .../blocks/{orangeflower.png => daisy.png} | Bin .../{holygrass2.png => holygrass_side.png} | Bin .../{holygrass1.png => holygrass_top.png} | Bin ...cialeaves1.png => leaves_acacia_fancy.png} | Bin ...acialeaves2.png => leaves_acacia_fast.png} | Bin .../{appleleaves1.png => leaves_apple.png} | Bin ...ves0_fancy.png => leaves_apple0_fancy.png} | Bin ...eaves0_fast.png => leaves_apple0_fast.png} | Bin ...ves1_fancy.png => leaves_apple1_fancy.png} | Bin ...eaves1_fast.png => leaves_apple1_fast.png} | Bin ...ves2_fancy.png => leaves_apple2_fancy.png} | Bin ...eaves2_fast.png => leaves_apple2_fast.png} | Bin ...ves3_fancy.png => leaves_apple3_fancy.png} | Bin ...ppleleaves2.png => leaves_apple3_fast.png} | Bin ...booleaves1.png => leaves_bamboo_fancy.png} | Bin ...mbooleaves2.png => leaves_bamboo_fast.png} | Bin ...{darkleaves1.png => leaves_dark_fancy.png} | Bin .../{darkleaves2.png => leaves_dark_fast.png} | Bin ...{deadleaves1.png => leaves_dead_fancy.png} | Bin .../{deadleaves2.png => leaves_dead_fast.png} | Bin .../{firleaves1.png => leaves_fir_fancy.png} | Bin .../{firleaves2.png => leaves_fir_fast.png} | Bin ...{holyleaves1.png => leaves_holy_fancy.png} | Bin .../{holyleaves2.png => leaves_holy_fast.png} | Bin ...blueleaves1.png => leaves_magic_fancy.png} | Bin ...{blueleaves2.png => leaves_magic_fast.png} | Bin ...eleaves1.png => leaves_mangrove_fancy.png} | Bin ...veleaves2.png => leaves_mangrove_fast.png} | Bin ...{redleaves1.png => leaves_maple_fancy.png} | Bin .../{redleaves2.png => leaves_maple_fast.png} | Bin ...ves1.png => leaves_orangeautumn_fancy.png} | Bin ...aves2.png => leaves_orangeautumn_fast.png} | Bin ...ginleaves1.png => leaves_origin_fancy.png} | Bin ...iginleaves2.png => leaves_origin_fast.png} | Bin ...{palmleaves1.png => leaves_palm_fancy.png} | Bin .../{palmleaves2.png => leaves_palm_fast.png} | Bin ...eaves1.png => leaves_pinkcherry_fancy.png} | Bin ...leaves2.png => leaves_pinkcherry_fast.png} | Bin ...odleaves1.png => leaves_redwood_fancy.png} | Bin ...oodleaves2.png => leaves_redwood_fast.png} | Bin ...aves1.png => leaves_whitecherry_fancy.png} | Bin ...eaves2.png => leaves_whitecherry_fast.png} | Bin ...lowleaves3.png => leaves_willow_fancy.png} | Bin ...llowleaves4.png => leaves_willow_fast.png} | Bin ...ves1.png => leaves_yellowautumn_fancy.png} | Bin ...aves2.png => leaves_yellowautumn_fast.png} | Bin ...{logTopBottum.png => log_acacia_heart.png} | Bin .../{acacialog.png => log_acacia_side.png} | Bin .../textures/blocks/log_cherry_heart.png | Bin 0 -> 544 bytes .../{cherrylog.png => log_cherry_side.png} | Bin .../textures/blocks/log_dark_heart.png | Bin 0 -> 544 bytes .../blocks/{darklog.png => log_dark_side.png} | Bin .../textures/blocks/log_dead_heart.png | Bin 0 -> 544 bytes .../blocks/{deadlog.png => log_dead_side.png} | Bin .../textures/blocks/log_fir_heart.png | Bin 0 -> 544 bytes .../blocks/{firlog.png => log_fir_side.png} | Bin .../textures/blocks/log_holy_heart.png | Bin 0 -> 544 bytes .../blocks/{holylog.png => log_holy_side.png} | Bin .../textures/blocks/log_magic_heart.png | Bin 0 -> 544 bytes .../{magiclog.png => log_magic_side.png} | Bin .../textures/blocks/log_mangrove_heart.png | Bin 0 -> 544 bytes ...{mangrovelog.png => log_mangrove_side.png} | Bin .../textures/blocks/log_palm_heart.png | Bin 0 -> 544 bytes .../blocks/{palmlog.png => log_palm_side.png} | Bin .../textures/blocks/log_redwood_heart.png | Bin 0 -> 544 bytes .../{redwoodlog.png => log_redwood_side.png} | Bin .../textures/blocks/log_willow_heart.png | Bin 0 -> 544 bytes .../{willowlog.png => log_willow_side.png} | Bin .../{acaciaplank.png => plank_acacia.png} | Bin .../{cherryplank.png => plank_cherry.png} | Bin .../blocks/{darkplank.png => plank_dark.png} | Bin .../blocks/{firplank.png => plank_fir.png} | Bin .../blocks/{holyplank.png => plank_holy.png} | Bin .../{magicplank.png => plank_magic.png} | Bin .../{mangroveplank.png => plank_mangrove.png} | Bin .../blocks/{palmplank.png => plank_palm.png} | Bin .../{redwoodplank.png => plank_redwood.png} | Bin .../{willowplank.png => plank_willow.png} | Bin .../{acaciasapling.png => sapling_acacia.png} | Bin .../{applesapling.png => sapling_apple.png} | Bin .../{bamboosapling.png => sapling_bamboo.png} | Bin .../{darksapling.png => sapling_dark.png} | Bin .../{brownsapling.png => sapling_dead.png} | Bin .../{firsapling.png => sapling_fir.png} | Bin .../{holysapling.png => sapling_holy.png} | Bin .../{magicsapling.png => sapling_magic.png} | Bin ...ngrovesapling.png => sapling_mangrove.png} | Bin .../{redsapling.png => sapling_maple.png} | Bin ...gesapling.png => sapling_orangeautumn.png} | Bin .../{originsapling.png => sapling_origin.png} | Bin .../{palmsapling.png => sapling_palm.png} | Bin ...pinksapling.png => sapling_pinkcherry.png} | Bin ...redwoodsapling.png => sapling_redwood.png} | Bin ...itesapling.png => sapling_whitecherry.png} | Bin .../{willowsapling.png => sapling_willow.png} | Bin ...owsapling.png => sapling_yellowautumn.png} | Bin ...ggrass3.png => smolderinggrass_bottom.png} | Bin ...inggrass2.png => smolderinggrass_side.png} | Bin ...ringgrass1.png => smolderinggrass_top.png} | Bin .../blocks/{pinkflower.png => tulip.png} | Bin .../{purpleflower.png => wildflower.png} | Bin .../textures/blocks/willowleaves1.png | Bin 628 -> 0 bytes .../textures/blocks/willowleaves2.png | Bin 598 -> 0 bytes .../BiomesOPlenty/textures/items/bamboo.png | Bin 289 -> 0 bytes .../BiomesOPlenty/textures/items/barley.png | Bin 359 -> 0 bytes .../BiomesOPlenty/textures/items/bush.png | Bin 597 -> 0 bytes .../BiomesOPlenty/textures/items/cattail.png | Bin 325 -> 0 bytes .../textures/items/mediumgrass.png | Bin 376 -> 0 bytes .../BiomesOPlenty/textures/items/moss.png | Bin 299 -> 0 bytes .../textures/items/shortgrass.png | Bin 268 -> 0 bytes .../BiomesOPlenty/textures/items/sprout.png | Bin 373 -> 0 bytes .../biomesoplenty/blocks/BlockHolyGrass.java | 10 +- .../blocks/BlockSmolderingGrass.java | 12 +- 148 files changed, 477 insertions(+), 147 deletions(-) create mode 100644 src/minecraft/biomesoplenty/blocks/BlockBOPAmethyst.java create mode 100644 src/minecraft/biomesoplenty/blocks/BlockBOPGrass.java create mode 100644 src/minecraft/biomesoplenty/items/ItemBOPAmethyst.java create mode 100644 src/minecraft/biomesoplenty/items/ItemBOPGrass.java rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{whiteflower.png => anemone.png} (100%) delete mode 100644 src/minecraft/mods/BiomesOPlenty/textures/blocks/appleleaves3.png delete mode 100644 src/minecraft/mods/BiomesOPlenty/textures/blocks/appleleaves3_fast.png delete mode 100644 src/minecraft/mods/BiomesOPlenty/textures/blocks/appleleaves4.png rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{stemTopBottum.png => bigflowerstem_heart.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{bigflowerstem.png => bigflowerstem_side.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{tinyflower.png => clover.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{orangeflower.png => daisy.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{holygrass2.png => holygrass_side.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{holygrass1.png => holygrass_top.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{acacialeaves1.png => leaves_acacia_fancy.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{acacialeaves2.png => leaves_acacia_fast.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{appleleaves1.png => leaves_apple.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{appleleaves0_fancy.png => leaves_apple0_fancy.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{appleleaves0_fast.png => leaves_apple0_fast.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{appleleaves1_fancy.png => leaves_apple1_fancy.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{appleleaves1_fast.png => leaves_apple1_fast.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{appleleaves2_fancy.png => leaves_apple2_fancy.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{appleleaves2_fast.png => leaves_apple2_fast.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{appleleaves3_fancy.png => leaves_apple3_fancy.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{appleleaves2.png => leaves_apple3_fast.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{bambooleaves1.png => leaves_bamboo_fancy.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{bambooleaves2.png => leaves_bamboo_fast.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{darkleaves1.png => leaves_dark_fancy.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{darkleaves2.png => leaves_dark_fast.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{deadleaves1.png => leaves_dead_fancy.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{deadleaves2.png => leaves_dead_fast.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{firleaves1.png => leaves_fir_fancy.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{firleaves2.png => leaves_fir_fast.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{holyleaves1.png => leaves_holy_fancy.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{holyleaves2.png => leaves_holy_fast.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{blueleaves1.png => leaves_magic_fancy.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{blueleaves2.png => leaves_magic_fast.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{mangroveleaves1.png => leaves_mangrove_fancy.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{mangroveleaves2.png => leaves_mangrove_fast.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{redleaves1.png => leaves_maple_fancy.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{redleaves2.png => leaves_maple_fast.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{orangeleaves1.png => leaves_orangeautumn_fancy.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{orangeleaves2.png => leaves_orangeautumn_fast.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{originleaves1.png => leaves_origin_fancy.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{originleaves2.png => leaves_origin_fast.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{palmleaves1.png => leaves_palm_fancy.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{palmleaves2.png => leaves_palm_fast.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{pinkleaves1.png => leaves_pinkcherry_fancy.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{pinkleaves2.png => leaves_pinkcherry_fast.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{redwoodleaves1.png => leaves_redwood_fancy.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{redwoodleaves2.png => leaves_redwood_fast.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{whiteleaves1.png => leaves_whitecherry_fancy.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{whiteleaves2.png => leaves_whitecherry_fast.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{willowleaves3.png => leaves_willow_fancy.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{willowleaves4.png => leaves_willow_fast.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{autumnleaves1.png => leaves_yellowautumn_fancy.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{autumnleaves2.png => leaves_yellowautumn_fast.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{logTopBottum.png => log_acacia_heart.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{acacialog.png => log_acacia_side.png} (100%) create mode 100644 src/minecraft/mods/BiomesOPlenty/textures/blocks/log_cherry_heart.png rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{cherrylog.png => log_cherry_side.png} (100%) create mode 100644 src/minecraft/mods/BiomesOPlenty/textures/blocks/log_dark_heart.png rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{darklog.png => log_dark_side.png} (100%) create mode 100644 src/minecraft/mods/BiomesOPlenty/textures/blocks/log_dead_heart.png rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{deadlog.png => log_dead_side.png} (100%) create mode 100644 src/minecraft/mods/BiomesOPlenty/textures/blocks/log_fir_heart.png rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{firlog.png => log_fir_side.png} (100%) create mode 100644 src/minecraft/mods/BiomesOPlenty/textures/blocks/log_holy_heart.png rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{holylog.png => log_holy_side.png} (100%) create mode 100644 src/minecraft/mods/BiomesOPlenty/textures/blocks/log_magic_heart.png rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{magiclog.png => log_magic_side.png} (100%) create mode 100644 src/minecraft/mods/BiomesOPlenty/textures/blocks/log_mangrove_heart.png rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{mangrovelog.png => log_mangrove_side.png} (100%) create mode 100644 src/minecraft/mods/BiomesOPlenty/textures/blocks/log_palm_heart.png rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{palmlog.png => log_palm_side.png} (100%) create mode 100644 src/minecraft/mods/BiomesOPlenty/textures/blocks/log_redwood_heart.png rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{redwoodlog.png => log_redwood_side.png} (100%) create mode 100644 src/minecraft/mods/BiomesOPlenty/textures/blocks/log_willow_heart.png rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{willowlog.png => log_willow_side.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{acaciaplank.png => plank_acacia.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{cherryplank.png => plank_cherry.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{darkplank.png => plank_dark.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{firplank.png => plank_fir.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{holyplank.png => plank_holy.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{magicplank.png => plank_magic.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{mangroveplank.png => plank_mangrove.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{palmplank.png => plank_palm.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{redwoodplank.png => plank_redwood.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{willowplank.png => plank_willow.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{acaciasapling.png => sapling_acacia.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{applesapling.png => sapling_apple.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{bamboosapling.png => sapling_bamboo.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{darksapling.png => sapling_dark.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{brownsapling.png => sapling_dead.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{firsapling.png => sapling_fir.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{holysapling.png => sapling_holy.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{magicsapling.png => sapling_magic.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{mangrovesapling.png => sapling_mangrove.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{redsapling.png => sapling_maple.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{orangesapling.png => sapling_orangeautumn.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{originsapling.png => sapling_origin.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{palmsapling.png => sapling_palm.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{pinksapling.png => sapling_pinkcherry.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{redwoodsapling.png => sapling_redwood.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{whitesapling.png => sapling_whitecherry.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{willowsapling.png => sapling_willow.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{yellowsapling.png => sapling_yellowautumn.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{smolderinggrass3.png => smolderinggrass_bottom.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{smolderinggrass2.png => smolderinggrass_side.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{smolderinggrass1.png => smolderinggrass_top.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{pinkflower.png => tulip.png} (100%) rename src/minecraft/mods/BiomesOPlenty/textures/blocks/{purpleflower.png => wildflower.png} (100%) delete mode 100644 src/minecraft/mods/BiomesOPlenty/textures/blocks/willowleaves1.png delete mode 100644 src/minecraft/mods/BiomesOPlenty/textures/blocks/willowleaves2.png delete mode 100644 src/minecraft/mods/BiomesOPlenty/textures/items/bamboo.png delete mode 100644 src/minecraft/mods/BiomesOPlenty/textures/items/barley.png delete mode 100644 src/minecraft/mods/BiomesOPlenty/textures/items/bush.png delete mode 100644 src/minecraft/mods/BiomesOPlenty/textures/items/cattail.png delete mode 100644 src/minecraft/mods/BiomesOPlenty/textures/items/mediumgrass.png delete mode 100644 src/minecraft/mods/BiomesOPlenty/textures/items/moss.png delete mode 100644 src/minecraft/mods/BiomesOPlenty/textures/items/shortgrass.png delete mode 100644 src/minecraft/mods/BiomesOPlenty/textures/items/sprout.png rename {src/minecraft => unused code}/biomesoplenty/blocks/BlockHolyGrass.java (98%) rename {src/minecraft => unused code}/biomesoplenty/blocks/BlockSmolderingGrass.java (95%) diff --git a/src/minecraft/biomesoplenty/api/Blocks.java b/src/minecraft/biomesoplenty/api/Blocks.java index 1164785fc..dbb53b89e 100644 --- a/src/minecraft/biomesoplenty/api/Blocks.java +++ b/src/minecraft/biomesoplenty/api/Blocks.java @@ -70,12 +70,13 @@ public class Blocks public static Optional petals = Optional.absent(); public static Optional bamboo = Optional.absent(); - public static Optional amethystBlock = Optional.absent(); +// public static Optional amethystBlock = Optional.absent(); public static Optional amethystOre = Optional.absent(); // public static Optional bambooThatching = Optional.absent(); public static Optional mudBrick = Optional.absent(); - public static Optional smolderingGrass = Optional.absent(); +// public static Optional smolderingGrass = Optional.absent(); // public static Optional quicksand = Optional.absent(); +// public static Optional grass = Optional.absent(); public static Optional promisedPortal = Optional.absent(); diff --git a/src/minecraft/biomesoplenty/biomes/BiomeDecoratorBOP.java b/src/minecraft/biomesoplenty/biomes/BiomeDecoratorBOP.java index 4f6330cc6..efab98f03 100644 --- a/src/minecraft/biomesoplenty/biomes/BiomeDecoratorBOP.java +++ b/src/minecraft/biomesoplenty/biomes/BiomeDecoratorBOP.java @@ -332,7 +332,7 @@ public class BiomeDecoratorBOP extends BiomeDecorator this.clayInStoneGen = new WorldGenMinable(Block.blockClay.blockID, 32); this.quagmireGen = new WorldGenQuagmire(Block.grass.blockID, 48); this.canyonGen = new WorldGenCanyon(Blocks.redRock.get().blockID, 48); - this.smolderingGrassGen = new WorldGenSmolderingGrass(Blocks.smolderingGrass.get().blockID, 32); + this.smolderingGrassGen = new WorldGenSmolderingGrass(Blocks.holyGrass.get().blockID, 1, 32); this.driedDirtInSandGen = new WorldGenDriedDirt(Blocks.driedDirt.get().blockID, 32); this.coalGen = new WorldGenMinable(Block.oreCoal.blockID, 16); this.ironGen = new WorldGenMinable(Block.oreIron.blockID, 8); diff --git a/src/minecraft/biomesoplenty/blocks/BlockBOPAmethyst.java b/src/minecraft/biomesoplenty/blocks/BlockBOPAmethyst.java new file mode 100644 index 000000000..06c06ddcc --- /dev/null +++ b/src/minecraft/biomesoplenty/blocks/BlockBOPAmethyst.java @@ -0,0 +1,148 @@ +package biomesoplenty.blocks; + +import java.util.List; +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.Entity; +import net.minecraft.item.ItemStack; +import net.minecraft.util.Icon; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import biomesoplenty.BiomesOPlenty; +import biomesoplenty.api.Items; + +public class BlockBOPAmethyst extends Block +{ + private static final String[] types = new String[] {"amethystore", "amethystblock"}; + private Icon[] textures; + + public BlockBOPAmethyst(int par1, Material par2Material) + { + super(par1, par2Material); + this.setCreativeTab(BiomesOPlenty.tabBiomesOPlenty); + setStepSound(Block.soundStoneFootstep); + } + + @Override + public void registerIcons(IconRegister iconRegister) + { + textures = new Icon[types.length]; + + for (int i = 0; i < types.length; ++i) + textures[i] = iconRegister.registerIcon("BiomesOPlenty:"+types[i]); + } + + @Override + public Icon getIcon(int side, int meta) + { + if (meta < 0 || meta >= textures.length) + meta = 0; + + return textures[meta]; + } + + @Override + public int getDamageValue(World world, int x, int y, int z) { + return world.getBlockMetadata(x, y, z); + } + + @Override + @SuppressWarnings({ "rawtypes", "unchecked" }) + public void getSubBlocks(int blockID, CreativeTabs creativeTabs, List list) { + for (int i = 0; i < types.length; ++i) + list.add(new ItemStack(blockID, 1, i)); + } + + @Override + public float getBlockHardness(World world, int x, int y, int z) + { + int meta = world.getBlockMetadata(x, y, z); + float hardness = this.blockHardness; + + switch (meta) + { + case 0: + hardness = 3.0F; + break; + + case 1: + hardness = 5.0F; + break; + } + + return hardness; + } + + @Override + public float getExplosionResistance(Entity par1Entity, World world, int x, int y, int z, double explosionX, double explosionY, double explosionZ) + { + int meta = world.getBlockMetadata(x, y, z); + float resistance = this.blockResistance; + + switch (meta) + { + case 0: + resistance = 5.0F; + break; + + case 1: + resistance = 10.0F; + break; + } + + return resistance / 5.0F; + } + + @Override + public int idDropped(int meta, Random par2Random, int par3) + { + return meta == 0 ? Items.miscItems.get().itemID : this.blockID; + } + + @Override + public int damageDropped(int meta) + { + return meta == 0 ? 2 : meta; + } + + @Override + public int quantityDropped(int meta, int fortune, Random random) + { + if (meta == 0) + return quantityDroppedWithBonus(fortune, random); + else + return quantityDropped(random); + } + + @Override + public int quantityDroppedWithBonus(int bonus, Random par2Random) + { + if (bonus > 0 && this.blockID != this.idDropped(0, par2Random, bonus)) + { + int rnd = par2Random.nextInt(bonus + 2) - 1; + + if (rnd < 0) + rnd = 0; + + return (1 + par2Random.nextInt(2)) * (rnd + 1); + } + else + return (1 + par2Random.nextInt(2)); + } + + @Override + public void dropBlockAsItemWithChance(World world, int par2, int par3, int par4, int par5, float par6, int par7) + { + super.dropBlockAsItemWithChance(world, par2, par3, par4, par5, par6, par7); + + if (this.idDropped(par5, world.rand, par7) != this.blockID) + { + int var8 = MathHelper.getRandomIntegerInRange(world.rand, 1, 4); + this.dropXpOnBlockBreak(world, par2, par3, par4, var8); + } + } +} diff --git a/src/minecraft/biomesoplenty/blocks/BlockBOPAppleLeaves.java b/src/minecraft/biomesoplenty/blocks/BlockBOPAppleLeaves.java index 74bd0cf1c..099bd675d 100644 --- a/src/minecraft/biomesoplenty/blocks/BlockBOPAppleLeaves.java +++ b/src/minecraft/biomesoplenty/blocks/BlockBOPAppleLeaves.java @@ -45,8 +45,8 @@ public class BlockBOPAppleLeaves extends BlockLeavesBase implements IShearable for (int i = 0; i < 4; ++i) { - textures[0][i] = iconRegister.registerIcon("BiomesOPlenty:appleleaves" + i + "_fancy"); - textures[1][i] = iconRegister.registerIcon("BiomesOPlenty:appleleaves" + i + "_fast"); + textures[0][i] = iconRegister.registerIcon("BiomesOPlenty:leaves_apple" + i + "_fancy"); + textures[1][i] = iconRegister.registerIcon("BiomesOPlenty:leaves_apple" + i + "_fast"); } } diff --git a/src/minecraft/biomesoplenty/blocks/BlockBOPColorizedLeaves.java b/src/minecraft/biomesoplenty/blocks/BlockBOPColorizedLeaves.java index 9e52c62d9..226141295 100644 --- a/src/minecraft/biomesoplenty/blocks/BlockBOPColorizedLeaves.java +++ b/src/minecraft/biomesoplenty/blocks/BlockBOPColorizedLeaves.java @@ -44,8 +44,8 @@ public class BlockBOPColorizedLeaves extends BlockLeavesBase implements IShearab for (int i = 0; i < leaves.length; ++i) { - textures[0][i] = iconRegister.registerIcon("BiomesOPlenty:" + leaves[i] + "leaves1"); - textures[1][i] = iconRegister.registerIcon("BiomesOPlenty:" + leaves[i] + "leaves2"); + textures[0][i] = iconRegister.registerIcon("BiomesOPlenty:leaves_" + leaves[i] + "_fancy"); + textures[1][i] = iconRegister.registerIcon("BiomesOPlenty:leaves_" + leaves[i] + "_fast"); } } diff --git a/src/minecraft/biomesoplenty/blocks/BlockBOPColorizedSapling.java b/src/minecraft/biomesoplenty/blocks/BlockBOPColorizedSapling.java index 97871662e..445194022 100644 --- a/src/minecraft/biomesoplenty/blocks/BlockBOPColorizedSapling.java +++ b/src/minecraft/biomesoplenty/blocks/BlockBOPColorizedSapling.java @@ -41,7 +41,7 @@ public class BlockBOPColorizedSapling extends BlockSapling textures = new Icon[saplings.length]; for (int i = 0; i < saplings.length; ++i) - textures[i] = iconRegister.registerIcon("BiomesOPlenty:" + saplings[i] + "sapling"); + textures[i] = iconRegister.registerIcon("BiomesOPlenty:sapling_" + saplings[i]); } diff --git a/src/minecraft/biomesoplenty/blocks/BlockBOPFlower.java b/src/minecraft/biomesoplenty/blocks/BlockBOPFlower.java index e5312e180..c2fbf68a4 100644 --- a/src/minecraft/biomesoplenty/blocks/BlockBOPFlower.java +++ b/src/minecraft/biomesoplenty/blocks/BlockBOPFlower.java @@ -20,7 +20,7 @@ import cpw.mods.fml.relauncher.SideOnly; public class BlockBOPFlower extends BlockFlower { - private static final String[] plants = new String[] {"tinyflower", "swampflower", "deadbloom", "glowflower", "hydrangea", "orangeflower", "pinkflower", "purpleflower", "violet", "whiteflower", "toadstool", "cactus"}; + private static final String[] plants = new String[] {"clover", "swampflower", "deadbloom", "glowflower", "hydrangea", "daisy", "tulip", "wildflower", "violet", "anemone", "toadstool", "cactus"}; private Icon[] textures; protected BlockBOPFlower(int blockID, Material material) diff --git a/src/minecraft/biomesoplenty/blocks/BlockBOPGeneric.java b/src/minecraft/biomesoplenty/blocks/BlockBOPGeneric.java index ed3aac2ca..ce531521d 100644 --- a/src/minecraft/biomesoplenty/blocks/BlockBOPGeneric.java +++ b/src/minecraft/biomesoplenty/blocks/BlockBOPGeneric.java @@ -1,23 +1,16 @@ package biomesoplenty.blocks; -import java.util.Random; - import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.util.Icon; -import net.minecraft.util.MathHelper; -import net.minecraft.world.World; import biomesoplenty.BiomesOPlenty; -import biomesoplenty.api.Items; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; public class BlockBOPGeneric extends Block { public enum BlockType { - ASH_STONE, HARD_SAND, HARD_DIRT, HARD_ICE, HOLY_STONE, AMETHYST_ORE, AMETHYST_BLOCK, BAMBOO_THATCHING, DRIED_DIRT, CRAG_ROCK, MUD_BRICK; + ASH_STONE, HARD_SAND, HARD_DIRT, HARD_ICE, HOLY_STONE, BAMBOO_THATCHING, DRIED_DIRT, CRAG_ROCK, MUD_BRICK; } private Icon texture; @@ -30,15 +23,7 @@ public class BlockBOPGeneric extends Block this.setCreativeTab(BiomesOPlenty.tabBiomesOPlenty); switch (type) - { - case AMETHYST_BLOCK: - setHardness(5.0F).setResistance(10.0F).setStepSound(Block.soundMetalFootstep).setUnlocalizedName("amethystBlock"); - break; - - case AMETHYST_ORE: - setHardness(3.0F).setResistance(5.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("amethystOre"); - break; - + { case ASH_STONE: setHardness(1.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("ashStone"); break; @@ -84,15 +69,7 @@ public class BlockBOPGeneric extends Block public void registerIcons(IconRegister iconRegister) { switch (type) - { - case AMETHYST_BLOCK: - texture = iconRegister.registerIcon("BiomesOPlenty:amethystblock"); - break; - - case AMETHYST_ORE: - texture = iconRegister.registerIcon("BiomesOPlenty:amethystore"); - break; - + { case ASH_STONE: texture = iconRegister.registerIcon("BiomesOPlenty:ashstone"); break; @@ -139,50 +116,4 @@ public class BlockBOPGeneric extends Block { return texture; } - - @Override - public int idDropped(int par1, Random par2Random, int par3) - { - return type == BlockType.AMETHYST_ORE ? Items.miscItems.get().itemID : this.blockID; - } - - @Override - public int damageDropped(int meta) - { - return type == BlockType.AMETHYST_ORE ? 2 : 0; - } - - @Override - public int quantityDropped(Random par1Random) - { - return type == BlockType.AMETHYST_ORE ? 1 + par1Random.nextInt(2) : 1; - } - - @Override - public int quantityDroppedWithBonus(int bonus, Random par2Random) - { - if (bonus > 0 && this.blockID != this.idDropped(0, par2Random, bonus)) - { - int rnd = par2Random.nextInt(bonus + 2) - 1; - - if (rnd < 0) - rnd = 0; - - return this.quantityDropped(par2Random) * (rnd + 1); - } - else - return this.quantityDropped(par2Random); - } - - @Override - public void dropBlockAsItemWithChance(World world, int par2, int par3, int par4, int par5, float par6, int par7) - { - super.dropBlockAsItemWithChance(world, par2, par3, par4, par5, par6, par7); - - if (this.idDropped(par5, world.rand, par7) != this.blockID) - { - int var8 = MathHelper.getRandomIntegerInRange(world.rand, 1, 4); - this.dropXpOnBlockBreak(world, par2, par3, par4, var8); - } - } } diff --git a/src/minecraft/biomesoplenty/blocks/BlockBOPGrass.java b/src/minecraft/biomesoplenty/blocks/BlockBOPGrass.java new file mode 100644 index 000000000..91e5ed5e3 --- /dev/null +++ b/src/minecraft/biomesoplenty/blocks/BlockBOPGrass.java @@ -0,0 +1,185 @@ +package biomesoplenty.blocks; + +import static net.minecraftforge.common.ForgeDirection.UP; + +import java.util.List; +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.Entity; +import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.Icon; +import net.minecraft.world.World; +import net.minecraft.world.WorldProviderEnd; +import net.minecraftforge.common.ForgeDirection; +import biomesoplenty.BiomesOPlenty; +import biomesoplenty.api.Blocks; + +public class BlockBOPGrass extends Block +{ + private Icon[][] blockIcon = new Icon[2][6]; + + public BlockBOPGrass(int par1) + { + super(par1, Material.grass); + this.setTickRandomly(true); + this.setCreativeTab(BiomesOPlenty.tabBiomesOPlenty); + setStepSound(Block.soundGrassFootstep); + setHardness(0.6F); + setLightValue(0.25F); + } + + @Override + public void registerIcons(IconRegister iconRegister) + { + this.blockIcon[0][0] = iconRegister.registerIcon("BiomesOPlenty:holystone"); + this.blockIcon[0][1] = iconRegister.registerIcon("BiomesOPlenty:holygrass_top"); + this.blockIcon[0][2] = iconRegister.registerIcon("BiomesOPlenty:holygrass_side"); + this.blockIcon[0][3] = iconRegister.registerIcon("BiomesOPlenty:holygrass_side"); + this.blockIcon[0][4] = iconRegister.registerIcon("BiomesOPlenty:holygrass_side"); + this.blockIcon[0][5] = iconRegister.registerIcon("BiomesOPlenty:holygrass_side"); + + this.blockIcon[1][0] = iconRegister.registerIcon("BiomesOPlenty:smolderinggrass_bottom"); + this.blockIcon[1][1] = iconRegister.registerIcon("BiomesOPlenty:smolderinggrass_top"); + this.blockIcon[1][2] = iconRegister.registerIcon("BiomesOPlenty:smolderinggrass_side"); + this.blockIcon[1][3] = iconRegister.registerIcon("BiomesOPlenty:smolderinggrass_side"); + this.blockIcon[1][4] = iconRegister.registerIcon("BiomesOPlenty:smolderinggrass_side"); + this.blockIcon[1][5] = iconRegister.registerIcon("BiomesOPlenty:smolderinggrass_side"); + } + + @Override + public Icon getIcon(int side, int meta) + { + return blockIcon[meta][side]; + } + + @Override + @SuppressWarnings({ "rawtypes", "unchecked" }) + public void getSubBlocks(int blockID, CreativeTabs creativeTabs, List list) { + for (int i = 0; i < 2; ++i) + list.add(new ItemStack(blockID, 1, i)); + } + + @Override + public int damageDropped(int meta) + { + return meta; + } + + @Override + public boolean isFireSource(World world, int x, int y, int z, int metadata, ForgeDirection side) + { + if (metadata == 0) + { + if (blockID == Block.netherrack.blockID && side == UP) + return true; + + if (blockID == this.blockID && side == UP) + return true; + + if ((world.provider instanceof WorldProviderEnd) && blockID == Block.bedrock.blockID && side == UP) + return true; + } + + return false; + } + + @Override + public int onBlockPlaced(World world, int par2, int par3, int par4, int par5, float par6, float par7, float par8, int meta) + { + if (meta == 0) + if (world.provider.isHellWorld) + { + world.playSound(par2, par3, par4, "mob.ghast.death", 20.0F, 0.95F + (float)Math.random() * 0.1F, true); + + for (int l = 0; l < 8; ++l) + { + world.spawnParticle("flame", (double)par2 + Math.random(), (double)par3 + Math.random(), (double)par4 + Math.random(), 0.0D, 0.0D, 0.0D); + world.spawnParticle("smoke", (double)par2 + Math.random(), (double)par3 + Math.random(), (double)par4 + Math.random(), 0.0D, 0.0D, 0.0D); + } + } + return meta; + } + + @Override + public void randomDisplayTick(World world, int x, int y, int z, Random random) + { + if (!world.isRemote) + return; + + if (world.getBlockMetadata(x, y, z) == 1) + { + if (random.nextInt(4) == 0) + world.spawnParticle("smoke", (double)((float)x + random.nextFloat()), (double)((float)y + 1.1F), (double)((float)z + random.nextFloat()), 0.0D, 0.0D, 0.0D); + + if (random.nextInt(6) == 0) + world.spawnParticle("flame", (double)((float)x + random.nextFloat()), (double)((float)y + 1.1F), (double)((float)z + random.nextFloat()), 0.0D, 0.0D, 0.0D); + } + } + + @Override + public void updateTick(World world, int x, int y, int z, Random random) + { + if (world.getBlockMetadata(x, y, z) == 0) + { + if (world.provider.isHellWorld) + { + world.setBlock(x, y + 1, z, Block.fire.blockID); + world.setBlock(x, y, z, Blocks.holyGrass.get().blockID, 1, 2); + } + + if (!world.isRemote) + { + if (world.getBlockLightValue(x, y + 1, z) < 4 && Block.lightOpacity[world.getBlockId(x, y + 1, z)] > 2) + { + world.setBlock(x, y, z, Blocks.holyStone.get().blockID); + } + else if (world.getBlockLightValue(x, y + 1, z) >= 9) + { + for (int var6 = 0; var6 < 4; ++var6) + { + int var7 = x + random.nextInt(3) - 1; + int var8 = y + random.nextInt(5) - 3; + int var9 = z + random.nextInt(3) - 1; + int var10 = world.getBlockId(var7, var8 + 1, var9); + + if (world.getBlockId(var7, var8, var9) == Blocks.holyStone.get().blockID && world.getBlockLightValue(var7, var8 + 1, var9) >= 4 && Block.lightOpacity[var10] <= 2) + { + world.setBlock(var7, var8, var9, Blocks.holyGrass.get().blockID, 0, 2); + } + } + } + } + } + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) + { + if (world.getBlockMetadata(x, y, z) == 1) + { + float f = 0.02F; + return AxisAlignedBB.getAABBPool().getAABB((double)x, (double)y, (double)z, (double)(x + 1), (double)((float)(y + 1) - f), (double)(z + 1)); + } + + return super.getCollisionBoundingBoxFromPool(world, x, y, z); + } + + @Override + public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) + { + if (world.getBlockMetadata(x, y, z) == 1) + entity.setFire(2); + } + + @Override + public int idDropped(int meta, Random par2Random, int par3) + { + return meta == 0 ? Blocks.holyStone.get().blockID : Block.dirt.blockID; + } + +} diff --git a/src/minecraft/biomesoplenty/blocks/BlockBOPLeaves.java b/src/minecraft/biomesoplenty/blocks/BlockBOPLeaves.java index 7a369ebf3..ce35d1a46 100644 --- a/src/minecraft/biomesoplenty/blocks/BlockBOPLeaves.java +++ b/src/minecraft/biomesoplenty/blocks/BlockBOPLeaves.java @@ -27,7 +27,7 @@ public class BlockBOPLeaves extends BlockLeavesBase implements IShearable } //Autumn - Orange = Leaves 1, Origin - White = Leaves 2 - private static final String[] leaves = new String[] {"autumn", "bamboo", "blue", "dark", "dead", "fir", "holy", "orange", "origin", "pink", "red", "white"}; + private static final String[] leaves = new String[] {"yellowautumn", "bamboo", "magic", "dark", "dead", "fir", "holy", "orangeautumn", "origin", "pinkcherry", "maple", "whitecherry"}; private Icon[][] textures; private final LeafCategory category; int[] adjacentTreeBlocks; @@ -51,8 +51,8 @@ public class BlockBOPLeaves extends BlockLeavesBase implements IShearable for (int i = 0; i < leaves.length; ++i) { - textures[0][i] = iconRegister.registerIcon("BiomesOPlenty:" + leaves[i] + "leaves1"); - textures[1][i] = iconRegister.registerIcon("BiomesOPlenty:" + leaves[i] + "leaves2"); + textures[0][i] = iconRegister.registerIcon("BiomesOPlenty:leaves_" + leaves[i] + "_fancy"); + textures[1][i] = iconRegister.registerIcon("BiomesOPlenty:leaves_" + leaves[i] + "_fast"); } } diff --git a/src/minecraft/biomesoplenty/blocks/BlockBOPLog.java b/src/minecraft/biomesoplenty/blocks/BlockBOPLog.java index c7c1b62f5..fea652e20 100644 --- a/src/minecraft/biomesoplenty/blocks/BlockBOPLog.java +++ b/src/minecraft/biomesoplenty/blocks/BlockBOPLog.java @@ -46,12 +46,12 @@ public class BlockBOPLog extends Block for (int i = 0; i < types.length - 1; ++i) { - textures[i] = iconRegister.registerIcon("BiomesOPlenty:"+types[i]+"log"); - logHearts[i] = iconRegister.registerIcon("BiomesOPlenty:logTopBottum"); + textures[i] = iconRegister.registerIcon("BiomesOPlenty:log_"+types[i]+"_side"); + logHearts[i] = iconRegister.registerIcon("BiomesOPlenty:log_"+types[i]+"_heart"); } - textures[types.length - 1] = iconRegister.registerIcon("BiomesOPlenty:bigflowerstem"); - logHearts[types.length - 1] = iconRegister.registerIcon("BiomesOPlenty:stemTopBottum"); + textures[types.length - 1] = iconRegister.registerIcon("BiomesOPlenty:bigflowerstem_side"); + logHearts[types.length - 1] = iconRegister.registerIcon("BiomesOPlenty:bigflowerstem_heart"); } @Override diff --git a/src/minecraft/biomesoplenty/blocks/BlockBOPPlank.java b/src/minecraft/biomesoplenty/blocks/BlockBOPPlank.java index 8e8aab35f..61debfc81 100644 --- a/src/minecraft/biomesoplenty/blocks/BlockBOPPlank.java +++ b/src/minecraft/biomesoplenty/blocks/BlockBOPPlank.java @@ -12,7 +12,7 @@ import biomesoplenty.BiomesOPlenty; public class BlockBOPPlank extends Block { - private static final String[] woodTypes = new String[] {"acaciaplank", "cherryplank", "darkplank", "firPlank", "holyplank", "magicplank", "mangroveplank", "palmplank", "redwoodplank", "willowplank", "bamboothatching"}; + private static final String[] woodTypes = new String[] {"plank_acacia", "plank_cherry", "plank_dark", "plank_fir", "plank_holy", "plank_magic", "plank_mangrove", "plank_palm", "plank_redwood", "plank_willow", "bamboothatching"}; private Icon[] textures; public BlockBOPPlank(int blockID) diff --git a/src/minecraft/biomesoplenty/blocks/BlockBOPSapling.java b/src/minecraft/biomesoplenty/blocks/BlockBOPSapling.java index 66a868dbf..696fd4df6 100644 --- a/src/minecraft/biomesoplenty/blocks/BlockBOPSapling.java +++ b/src/minecraft/biomesoplenty/blocks/BlockBOPSapling.java @@ -30,7 +30,7 @@ import biomesoplenty.worldgen.WorldGenTaiga9; public class BlockBOPSapling extends BlockSapling { - private static final String[] saplings = new String[] {"apple", "yellow", "bamboo", "magic", "dark", "brown", "fir", "holy", "orange", "origin", "pink", "red", "white"}; + private static final String[] saplings = new String[] {"apple", "yellowautumn", "bamboo", "magic", "dark", "dead", "fir", "holy", "orangeautumn", "origin", "pinkcherry", "maple", "whitecherry"}; private Icon[] textures; private static final int TYPES = 15; @@ -48,7 +48,7 @@ public class BlockBOPSapling extends BlockSapling textures = new Icon[saplings.length]; for (int i = 0; i < saplings.length; ++i) - textures[i] = iconRegister.registerIcon("BiomesOPlenty:" + saplings[i] + "sapling"); + textures[i] = iconRegister.registerIcon("BiomesOPlenty:sapling_" + saplings[i]); } diff --git a/src/minecraft/biomesoplenty/blocks/BlockBOPSlab.java b/src/minecraft/biomesoplenty/blocks/BlockBOPSlab.java index db6fc3b5c..84eb4378e 100644 --- a/src/minecraft/biomesoplenty/blocks/BlockBOPSlab.java +++ b/src/minecraft/biomesoplenty/blocks/BlockBOPSlab.java @@ -61,7 +61,7 @@ public class BlockBOPSlab extends BlockHalfSlab textures = new Icon[woodTypes.length]; for (int i = 0; i < woodTypes.length; ++i) - textures[i] = iconRegister.registerIcon("BiomesOPlenty:"+woodTypes[i]+"plank"); + textures[i] = iconRegister.registerIcon("BiomesOPlenty:plank_"+woodTypes[i]); } } diff --git a/src/minecraft/biomesoplenty/blocks/BlockBOPStairs.java b/src/minecraft/biomesoplenty/blocks/BlockBOPStairs.java index d3bbf65ba..db86a4f54 100644 --- a/src/minecraft/biomesoplenty/blocks/BlockBOPStairs.java +++ b/src/minecraft/biomesoplenty/blocks/BlockBOPStairs.java @@ -36,7 +36,7 @@ public class BlockBOPStairs extends BlockStairs for (int i = 0; i < types.length; ++i) if (i < types.length - 3) - textures[i] = iconRegister.registerIcon("BiomesOPlenty:"+types[i]+"plank"); + textures[i] = iconRegister.registerIcon("BiomesOPlenty:plank_"+types[i]); else textures[i] = iconRegister.registerIcon("BiomesOPlenty:"+types[i]); diff --git a/src/minecraft/biomesoplenty/configuration/BOPBlocks.java b/src/minecraft/biomesoplenty/configuration/BOPBlocks.java index 28deb3585..ad695e7b9 100644 --- a/src/minecraft/biomesoplenty/configuration/BOPBlocks.java +++ b/src/minecraft/biomesoplenty/configuration/BOPBlocks.java @@ -7,6 +7,7 @@ import net.minecraft.item.ItemStack; import net.minecraftforge.common.MinecraftForge; import biomesoplenty.api.Blocks; import biomesoplenty.blocks.BlockAsh; +import biomesoplenty.blocks.BlockBOPAmethyst; import biomesoplenty.blocks.BlockBOPAppleLeaves; import biomesoplenty.blocks.BlockBOPColorizedLeaves; import biomesoplenty.blocks.BlockBOPColorizedSapling; @@ -14,6 +15,7 @@ import biomesoplenty.blocks.BlockBOPFlower; import biomesoplenty.blocks.BlockBOPFoliage; import biomesoplenty.blocks.BlockBOPGeneric; import biomesoplenty.blocks.BlockBOPGeneric.BlockType; +import biomesoplenty.blocks.BlockBOPGrass; import biomesoplenty.blocks.BlockBOPLeaves; import biomesoplenty.blocks.BlockBOPLeaves.LeafCategory; import biomesoplenty.blocks.BlockBOPLog; @@ -28,21 +30,20 @@ import biomesoplenty.blocks.BlockBOPSlab.SlabCategory; import biomesoplenty.blocks.BlockBOPStairs; import biomesoplenty.blocks.BlockBOPStairs.Category; import biomesoplenty.blocks.BlockBamboo; -import biomesoplenty.blocks.BlockHolyGrass; import biomesoplenty.blocks.BlockMoss; import biomesoplenty.blocks.BlockMud; import biomesoplenty.blocks.BlockOriginGrass; import biomesoplenty.blocks.BlockPromisedPortal; -import biomesoplenty.blocks.BlockQuicksand; -import biomesoplenty.blocks.BlockSmolderingGrass; import biomesoplenty.blocks.BlockTreeMoss; import biomesoplenty.blocks.BlockWillow; +import biomesoplenty.items.ItemBOPAmethyst; import biomesoplenty.items.ItemBOPAppleLeaves; import biomesoplenty.items.ItemBOPBamboo; import biomesoplenty.items.ItemBOPColorizedLeaves; import biomesoplenty.items.ItemBOPColorizedSapling; import biomesoplenty.items.ItemBOPFlower; import biomesoplenty.items.ItemBOPFoliage; +import biomesoplenty.items.ItemBOPGrass; import biomesoplenty.items.ItemBOPLeaves; import biomesoplenty.items.ItemBOPLog; import biomesoplenty.items.ItemBOPMoss; @@ -72,17 +73,16 @@ public class BOPBlocks { Blocks.shearBlockIds.put(Blocks.leavesColorized.get().blockID, 15.0F); Blocks.shearBlockIds.put(Blocks.leavesFruit.get().blockID, 15.0F); - MinecraftForge.setBlockHarvestLevel(Blocks.smolderingGrass.get(), "shovel", 0); + MinecraftForge.setBlockHarvestLevel(Blocks.holyGrass.get(), 1, "shovel", 0); MinecraftForge.setBlockHarvestLevel(Blocks.mud.get(), "shovel", 0); MinecraftForge.setBlockHarvestLevel(Blocks.ash.get(), "shovel", 0); MinecraftForge.setBlockHarvestLevel(Blocks.originGrass.get(), "shovel", 0); MinecraftForge.setBlockHarvestLevel(Blocks.hardSand.get(), "shovel", 0); - MinecraftForge.setBlockHarvestLevel(Blocks.holyGrass.get(), "pickaxe", 0); + MinecraftForge.setBlockHarvestLevel(Blocks.holyGrass.get(), 0, "pickaxe", 0); // MinecraftForge.setBlockHarvestLevel(Blocks.quicksand.get(), "shovel", 0); MinecraftForge.setBlockHarvestLevel(Blocks.driedDirt.get(), "pickaxe", 0); MinecraftForge.setBlockHarvestLevel(Blocks.amethystOre.get(), "pickaxe", 3); - MinecraftForge.setBlockHarvestLevel(Blocks.amethystBlock.get(), "pickaxe", 3); addGrassPlants(); @@ -122,16 +122,18 @@ public class BOPBlocks { Blocks.redBricksStairs = Optional.of((new BlockBOPStairs(BOPConfiguration.redBrickStairsID, Blocks.redRock.get(), Category.RED_BRICKS)).setUnlocalizedName("redBricksStairs")); Blocks.hardSand = Optional.of(new BlockBOPGeneric(BOPConfiguration.hardSandID, Material.sand, BlockType.HARD_SAND)); Blocks.hardDirt = Optional.of(new BlockBOPGeneric(BOPConfiguration.hardDirtID, Material.rock, BlockType.HARD_DIRT)); - Blocks.holyGrass = Optional.of((BlockHolyGrass)(new BlockHolyGrass(BOPConfiguration.holyGrassID)).setHardness(1.0F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("holyGrass")); - Blocks.holyStone = Optional.of(new BlockBOPGeneric(BOPConfiguration.holyStoneID, Material.rock, BlockType.HOLY_STONE)); + Blocks.holyGrass = Optional.of(new BlockBOPGrass(BOPConfiguration.holyGrassID).setUnlocalizedName("holyGrass")); + Blocks.holyStone = Optional.of(new BlockBOPGeneric(BOPConfiguration.holyStoneID, Material.rock, BlockType.HOLY_STONE).setLightValue(0.25F)); Blocks.promisedPortal = Optional.of(new BlockPromisedPortal(BOPConfiguration.promisedLandPortalID).setUnlocalizedName("promisedPortal").setBlockUnbreakable().setResistance(6000000.0F).setLightValue(1.0F)); - Blocks.amethystOre = Optional.of(new BlockBOPGeneric(BOPConfiguration.amethystOreID, Material.rock, BlockType.AMETHYST_ORE)); - Blocks.amethystBlock = Optional.of(new BlockBOPGeneric(BOPConfiguration.amethystBlockID, Material.iron, BlockType.AMETHYST_BLOCK)); +// Blocks.amethystOre = Optional.of(new BlockBOPGeneric(BOPConfiguration.amethystOreID, Material.rock, BlockType.AMETHYST_ORE)); +// Blocks.amethystBlock = Optional.of(new BlockBOPGeneric(BOPConfiguration.amethystBlockID, Material.iron, BlockType.AMETHYST_BLOCK)); + Blocks.amethystOre = Optional.of(new BlockBOPAmethyst(BOPConfiguration.amethystOreID, Material.rock).setUnlocalizedName("amethystOre")); // Blocks.bambooThatching = Optional.of(new BlockBOPGeneric(BOPConfiguration.bambooThatchingID, Material.wood, BlockType.BAMBOO_THATCHING)); Blocks.moss = Optional.of((new BlockMoss(BOPConfiguration.mossID)).setHardness(0.2F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("moss")); - Blocks.smolderingGrass = Optional.of((BlockSmolderingGrass)(new BlockSmolderingGrass(BOPConfiguration.smolderingGrassID)).setHardness(0.6F).setLightValue(0.25F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("smolderingGrass")); +// Blocks.smolderingGrass = Optional.of((BlockSmolderingGrass)(new BlockSmolderingGrass(BOPConfiguration.smolderingGrassID)).setHardness(0.6F).setLightValue(0.25F).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("smolderingGrass")); Blocks.cragRock = Optional.of(new BlockBOPGeneric(BOPConfiguration.cragRockID, Material.rock, BlockType.CRAG_ROCK)); // Blocks.quicksand = Optional.of((new BlockQuicksand(BOPConfiguration.quicksandID)).setHardness(0.3F).setStepSound(Block.soundSandFootstep).setUnlocalizedName("quicksand")); +// Blocks.grass = Optional.of(new BlockBOPGrass(3000).setUnlocalizedName("holyGrass")); Blocks.planks = Optional.of((new BlockBOPPlank(BOPConfiguration.planksID)).setResistance(5.0F).setStepSound(Block.soundWoodFootstep).setUnlocalizedName("planks")); @@ -184,16 +186,18 @@ public class BOPBlocks { GameRegistry.registerBlock(Blocks.redBricksStairs.get(), "redBricksStairs"); GameRegistry.registerBlock(Blocks.hardSand.get(), "hardSand"); GameRegistry.registerBlock(Blocks.hardDirt.get(), "hardDirt"); - GameRegistry.registerBlock(Blocks.holyGrass.get(), "holyGrass"); +// GameRegistry.registerBlock(Blocks.holyGrass.get(), "holyGrass"); + GameRegistry.registerBlock(Blocks.holyGrass.get(), ItemBOPGrass.class, "holyGrass"); GameRegistry.registerBlock(Blocks.holyStone.get(), "holyStone"); GameRegistry.registerBlock(Blocks.promisedPortal.get(), "promisedPortal"); - GameRegistry.registerBlock(Blocks.amethystOre.get(), "amethystOre"); - GameRegistry.registerBlock(Blocks.amethystBlock.get(), "amethystBlock"); + GameRegistry.registerBlock(Blocks.amethystOre.get(), ItemBOPAmethyst.class, "amethystOre"); +// GameRegistry.registerBlock(Blocks.amethystBlock.get(), "amethystBlock"); // GameRegistry.registerBlock(Blocks.bambooThatching.get(), "bambooThatching"); GameRegistry.registerBlock(Blocks.moss.get(), ItemBOPMoss.class, "moss"); - GameRegistry.registerBlock(Blocks.smolderingGrass.get(), "smolderingGrass"); +// GameRegistry.registerBlock(Blocks.smolderingGrass.get(), "smolderingGrass"); GameRegistry.registerBlock(Blocks.cragRock.get(), "cragRock"); // GameRegistry.registerBlock(Blocks.quicksand.get(), "quicksand"); +// GameRegistry.registerBlock(Blocks.amethyst.get(), ItemBOPAmethyst.class, "amethystOre1"); ItemBOPSlab.setSlabs(Blocks.stoneSingleSlab.get(), Blocks.stoneDoubleSlab.get()); GameRegistry.registerBlock(Blocks.stoneDoubleSlab.get(), ItemBOPSlab.class, "stoneDoubleSlab"); @@ -230,7 +234,7 @@ public class BOPBlocks { LanguageRegistry.addName(Blocks.ash.get(), "Ash Block"); LanguageRegistry.addName(new ItemStack(Blocks.plants.get(),1,0), "Dead Grass"); LanguageRegistry.addName(new ItemStack(Blocks.plants.get(),1,1), "Desert Grass"); - LanguageRegistry.addName(new ItemStack(Blocks.flowers.get(),1,9), "Anenome"); + LanguageRegistry.addName(new ItemStack(Blocks.flowers.get(),1,9), "Anemone"); LanguageRegistry.addName(new ItemStack(Blocks.flowers.get(),1,1), "Swampflower"); LanguageRegistry.addName(new ItemStack(Blocks.flowers.get(),1,7), "Wildflower"); LanguageRegistry.addName(new ItemStack(Blocks.flowers.get(),1,5), "Daisy"); @@ -301,17 +305,21 @@ public class BOPBlocks { LanguageRegistry.addName(Blocks.hardSand.get(), "Hard Sand"); LanguageRegistry.addName(new ItemStack(Blocks.colorizedSaplings.get(),1,0), "Acacia Sapling"); LanguageRegistry.addName(Blocks.hardDirt.get(), "Hard Dirt"); - LanguageRegistry.addName(Blocks.holyGrass.get(), "Holy Grass"); +// LanguageRegistry.addName(Blocks.holyGrass.get(), "Holy Grass"); + LanguageRegistry.addName(new ItemStack(Blocks.holyGrass.get(), 1, 0), "Holy Grass"); + LanguageRegistry.addName(new ItemStack(Blocks.holyGrass.get(), 1, 1), "Smoldering Grass"); LanguageRegistry.addName(Blocks.holyStone.get(), "Holy Stone"); LanguageRegistry.addName(new ItemStack(Blocks.plants.get(),1,4), "Holy Tall Grass"); LanguageRegistry.addName(Blocks.promisedPortal.get(), "Promised Land Portal"); LanguageRegistry.addName(new ItemStack(Blocks.saplings.get(),1,7), "Holy Sapling"); - LanguageRegistry.addName(Blocks.amethystOre.get(), "Amethyst Ore"); - LanguageRegistry.addName(Blocks.amethystBlock.get(), "Block of Amethyst"); +// LanguageRegistry.addName(Blocks.amethystOre.get(), "Amethyst Ore"); +// LanguageRegistry.addName(Blocks.amethystBlock.get(), "Block of Amethyst"); + LanguageRegistry.addName(new ItemStack(Blocks.amethystOre.get(),1,0), "Amethyst Ore"); + LanguageRegistry.addName(new ItemStack(Blocks.amethystOre.get(),1,1), "Block of Amethyst"); // LanguageRegistry.addName(Blocks.bambooThatching.get(), "Bamboo Thatching"); LanguageRegistry.addName(Blocks.moss.get(), "Moss"); LanguageRegistry.addName(new ItemStack(Blocks.foliage.get(),1,0), "Algae"); - LanguageRegistry.addName(Blocks.smolderingGrass.get(), "Smoldering Grass"); +// LanguageRegistry.addName(Blocks.smolderingGrass.get(), "Smoldering Grass"); LanguageRegistry.addName(Blocks.cragRock.get(), "Crag Rock"); // LanguageRegistry.addName(Blocks.quicksand.get(), "Quicksand"); LanguageRegistry.addName(new ItemStack(Blocks.mud.get(), 1, 1), "Quicksand"); diff --git a/src/minecraft/biomesoplenty/configuration/BOPConfiguration.java b/src/minecraft/biomesoplenty/configuration/BOPConfiguration.java index 3307046bb..42f6d75f1 100644 --- a/src/minecraft/biomesoplenty/configuration/BOPConfiguration.java +++ b/src/minecraft/biomesoplenty/configuration/BOPConfiguration.java @@ -145,13 +145,13 @@ public class BOPConfiguration { public static int promisedLandPortalID; public static int amethystOreID; - public static int amethystBlockID; - public static int bambooThatchingID; +// public static int amethystBlockID; +// public static int bambooThatchingID; public static int mossID; - public static int smolderingGrassID; +// public static int smolderingGrassID; - public static int quicksandID; +// public static int quicksandID; public static int planksID; @@ -452,13 +452,13 @@ public class BOPConfiguration { promisedLandPortalID = config.getBlock("Promised Land Portal ID", 1941, null).getInt(); amethystOreID = config.getBlock("Amethyst Ore ID", 1942, null).getInt(); - amethystBlockID = config.getBlock("Block of Amethyst ID", 1943, null).getInt(); - bambooThatchingID = config.getBlock("Bamboo Thatching ID", 1944, null).getInt(); +// amethystBlockID = config.getBlock("Block of Amethyst ID", 1943, null).getInt(); +// bambooThatchingID = config.getBlock("Bamboo Thatching ID", 1944, null).getInt(); mossID = config.getBlock("Moss ID", 391, null).getInt(); - smolderingGrassID = config.getBlock("Smoldering Grass ID", 1945, null).getInt(); +// smolderingGrassID = config.getBlock("Smoldering Grass ID", 1945, null).getInt(); - quicksandID = config.getBlock("Quicksand ID", 1946, null).getInt(); +// quicksandID = config.getBlock("Quicksand ID", 1946, null).getInt(); planksID = config.getBlock("Planks ID", 1947, null).getInt(); diff --git a/src/minecraft/biomesoplenty/configuration/BOPCrafting.java b/src/minecraft/biomesoplenty/configuration/BOPCrafting.java index 8263dae8f..850293a6a 100644 --- a/src/minecraft/biomesoplenty/configuration/BOPCrafting.java +++ b/src/minecraft/biomesoplenty/configuration/BOPCrafting.java @@ -108,7 +108,7 @@ public class BOPCrafting GameRegistry.addRecipe(new ItemStack(Block.cloth, 1, 0), new Object[] {"CCC", "CCC", "CCC", 'C', new ItemStack(Blocks.plants.get(), 1, 7)}); GameRegistry.addRecipe(new ItemStack(Item.coal, 1), new Object[] {"AAA", "AAA", "AAA", 'A', new ItemStack(Items.miscItems.get(), 1, 1)}); GameRegistry.addRecipe(new ItemStack(Blocks.mud.get(), 1), new Object[] {"MM", "MM", 'M', Items.mudball.get()}); - GameRegistry.addRecipe(new ItemStack(Blocks.amethystBlock.get(), 1), new Object[] {"AAA", "AAA", "AAA", 'A', new ItemStack(Items.miscItems.get(), 1, 2)}); + GameRegistry.addRecipe(new ItemStack(Blocks.amethystOre.get(), 1, 1), new Object[] {"AAA", "AAA", "AAA", 'A', new ItemStack(Items.miscItems.get(), 1, 2)}); GameRegistry.addRecipe(new ItemStack(Blocks.ash.get(), 1), new Object[] {"AA", "AA", 'A', new ItemStack(Items.miscItems.get(), 1, 1)}); GameRegistry.addRecipe(new ItemStack(Blocks.mudBrick.get(), 1), new Object[] {"MM", "MM", 'M', new ItemStack(Items.miscItems.get(), 1, 3)}); // GameRegistry.addRecipe(new ItemStack(Blocks.planks.get(), 1, 10), new Object[] {"###", "###", "###", '#', Blocks.bamboo.get()}); @@ -143,13 +143,13 @@ public class BOPCrafting GameRegistry.addRecipe(new ItemStack(Items.ancientStaff.get(), 1, 1), new Object[] {"ISI", "ISI", " E ", 'I', Item.ingotIron, 'S', Block.whiteStone, 'E', Item.emerald}); GameRegistry.addRecipe(new ItemStack(Items.ancientStaff.get(), 1, 2), new Object[] {"ISI", "IRI", "ISI", 'I', Item.ingotIron, 'S', Block.whiteStone, 'R', Item.redstone}); GameRegistry.addRecipe(new ItemStack(Items.ancientStaff.get(), 1, 3), new Object[] {" N ", "IDI", "ISI", 'I', Item.ingotIron, 'S', Block.whiteStone, 'D', Item.diamond, 'N', Item.netherStar}); - GameRegistry.addRecipe(new ItemStack(Items.enderporter.get(), 1, 0), new Object[] {"IOI", "OAO", "IOI", 'I', Item.eyeOfEnder, 'O', Block.obsidian, 'A', Blocks.amethystBlock.get()}); + GameRegistry.addRecipe(new ItemStack(Items.enderporter.get(), 1, 0), new Object[] {"IOI", "OAO", "IOI", 'I', Item.eyeOfEnder, 'O', Block.obsidian, 'A', new ItemStack(Blocks.amethystOre.get(), 1, 1)}); GameRegistry.addRecipe(new ItemStack(Items.bopDiscMud.get(), 1), new Object[] {" M ", "MDM", " M ", 'M', Items.mudball.get(), 'D', Items.bopDisc.get()}); GameRegistry.addRecipe(new ItemStack(Blocks.planks.get(), 1, 10), new Object[] {"##", "##", '#', Blocks.bamboo.get()}); GameRegistry.addShapelessRecipe(new ItemStack(Blocks.bamboo.get(), 4), new Object[] {new ItemStack(Blocks.planks.get(), 1, 10)}); - GameRegistry.addShapelessRecipe(new ItemStack(Items.miscItems.get(), 9, 2), new Object[] {Blocks.amethystBlock.get()}); + GameRegistry.addShapelessRecipe(new ItemStack(Items.miscItems.get(), 9, 2), new Object[] {new ItemStack(Blocks.amethystOre.get(), 1, 1)}); //Plants GameRegistry.addShapelessRecipe(new ItemStack(Items.shroomPowder.get(), 2), new Object[] {new ItemStack(Blocks.flowers.get(),1,10)}); diff --git a/src/minecraft/biomesoplenty/helpers/BonemealUse.java b/src/minecraft/biomesoplenty/helpers/BonemealUse.java index c169ca07a..1418e0560 100644 --- a/src/minecraft/biomesoplenty/helpers/BonemealUse.java +++ b/src/minecraft/biomesoplenty/helpers/BonemealUse.java @@ -88,7 +88,7 @@ public class BonemealUse } } } - else if (event.ID == Blocks.holyGrass.get().blockID) + else if (event.ID == Blocks.holyGrass.get().blockID && event.world.getBlockMetadata(event.X, event.Y, event.Z) == 0) { int var13 = event.X; int var14 = event.Y + 1; diff --git a/src/minecraft/biomesoplenty/items/ItemBOPAmethyst.java b/src/minecraft/biomesoplenty/items/ItemBOPAmethyst.java new file mode 100644 index 000000000..c2c8ef86d --- /dev/null +++ b/src/minecraft/biomesoplenty/items/ItemBOPAmethyst.java @@ -0,0 +1,27 @@ +package biomesoplenty.items; + +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; + +public class ItemBOPAmethyst extends ItemBlock +{ + private static final String[] types = new String[] {"amethystOre", "amethystBlock"}; + + public ItemBOPAmethyst(int par1) + { + super(par1); + setMaxDamage(0); + setHasSubtypes(true); + } + + @Override + public int getMetadata(int meta) + { + return meta; + } + + @Override + public String getUnlocalizedName(ItemStack itemstack) { + return types[itemstack.getItemDamage() & 15]; + } +} diff --git a/src/minecraft/biomesoplenty/items/ItemBOPFlower.java b/src/minecraft/biomesoplenty/items/ItemBOPFlower.java index 8504809a8..804e3c385 100644 --- a/src/minecraft/biomesoplenty/items/ItemBOPFlower.java +++ b/src/minecraft/biomesoplenty/items/ItemBOPFlower.java @@ -10,7 +10,7 @@ import net.minecraft.world.World; public class ItemBOPFlower extends ItemBlock { - private static final String[] plants = new String[] {"tinyflower", "swampflower", "deadbloom", "glowflower", "hydrangea", "orangeflower", "pinkflower", "purpleflower", "violet", "whiteflower", "toadstool", "cactus"}; + private static final String[] plants = new String[] {"clover", "swampflower", "deadbloom", "glowflower", "hydrangea", "daisy", "tulip", "wildflower", "violet", "anemone", "toadstool", "cactus"}; public ItemBOPFlower(int par1) { diff --git a/src/minecraft/biomesoplenty/items/ItemBOPGrass.java b/src/minecraft/biomesoplenty/items/ItemBOPGrass.java new file mode 100644 index 000000000..6687b96c1 --- /dev/null +++ b/src/minecraft/biomesoplenty/items/ItemBOPGrass.java @@ -0,0 +1,27 @@ +package biomesoplenty.items; + +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; + +public class ItemBOPGrass extends ItemBlock +{ + private static final String[] types = new String[] {"holyGrass", "smolderingGrass"}; + + public ItemBOPGrass(int par1) + { + super(par1); + setMaxDamage(0); + setHasSubtypes(true); + } + + @Override + public int getMetadata(int meta) + { + return meta; + } + + @Override + public String getUnlocalizedName(ItemStack itemstack) { + return types[itemstack.getItemDamage() & 15]; + } +} diff --git a/src/minecraft/biomesoplenty/items/ItemBOPSapling.java b/src/minecraft/biomesoplenty/items/ItemBOPSapling.java index c3d648447..962776074 100644 --- a/src/minecraft/biomesoplenty/items/ItemBOPSapling.java +++ b/src/minecraft/biomesoplenty/items/ItemBOPSapling.java @@ -7,7 +7,7 @@ import net.minecraft.util.Icon; public class ItemBOPSapling extends ItemBlock { - private static final String[] saplings = new String[] {"apple", "yellow", "bamboo", "magic", "dark", "brown", "fir", "holy", "orange", "origin", "pink", "red", "white"}; + private static final String[] saplings = new String[] {"apple", "yellowAutumn", "bamboo", "magic", "dark", "dead", "fir", "holy", "orangeAutumn", "origin", "pinkCherry", "maple", "whiteCherry"}; private static final int MAX = 12; public ItemBOPSapling(int par1) diff --git a/src/minecraft/biomesoplenty/worldgen/WorldGenDeadTree3.java b/src/minecraft/biomesoplenty/worldgen/WorldGenDeadTree3.java index 7c276e64e..93c88b677 100644 --- a/src/minecraft/biomesoplenty/worldgen/WorldGenDeadTree3.java +++ b/src/minecraft/biomesoplenty/worldgen/WorldGenDeadTree3.java @@ -448,7 +448,7 @@ public class WorldGenDeadTree3 extends WorldGenerator int[] var2 = new int[] {this.basePos[0], this.basePos[1] + this.heightLimit - 1, this.basePos[2]}; int var3 = this.worldObj.getBlockId(this.basePos[0], this.basePos[1] - 1, this.basePos[2]); - if (var3 != 2 && var3 != 3 && var3 != Blocks.smolderingGrass.get().blockID && var3 != Blocks.ash.get().blockID) + if (var3 != 2 && var3 != 3 && var3 != Blocks.holyGrass.get().blockID && var3 != Blocks.ash.get().blockID) { return false; } diff --git a/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedTree.java b/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedTree.java index 51b8ac73a..f698c19a8 100644 --- a/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedTree.java +++ b/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedTree.java @@ -76,7 +76,7 @@ public class WorldGenPromisedTree extends WorldGenerator if ((var11 == Blocks.holyGrass.get().blockID) && par4 < 256 - var6 - 1) { - this.setBlock(par1World, par3, par4 - 1, par5, Blocks.holyGrass.get().blockID); + this.setBlockAndMetadata(par1World, par3, par4 - 1, par5, Blocks.holyGrass.get().blockID, 0); var21 = par2Random.nextInt(2); var13 = 1; byte var22 = 0; diff --git a/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedTree2.java b/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedTree2.java index bcebb5e5b..f5f296443 100644 --- a/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedTree2.java +++ b/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedTree2.java @@ -74,7 +74,7 @@ public class WorldGenPromisedTree2 extends WorldGenerator if ((var8 == Blocks.holyGrass.get().blockID) && par4 < 256 - var6 - 1) { - this.setBlock(par1World, par3, par4 - 1, par5, Blocks.holyGrass.get().blockID); + this.setBlockAndMetadata(par1World, par3, par4 - 1, par5, Blocks.holyGrass.get().blockID, 0); int var16; for (var16 = par4 - 3 + var6; var16 <= par4 + var6; ++var16) diff --git a/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedTree3.java b/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedTree3.java index 30c860667..ddb411e43 100644 --- a/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedTree3.java +++ b/src/minecraft/biomesoplenty/worldgen/WorldGenPromisedTree3.java @@ -85,10 +85,10 @@ public class WorldGenPromisedTree3 extends WorldGenerator { if ((var14 == Blocks.holyGrass.get().blockID) && var4 < 256 - var6 - 1) { - var1.setBlock(var3, var4 - 1, var5, Blocks.holyGrass.get().blockID); - var1.setBlock(var3 - 1, var4 - 1, var5, Blocks.holyGrass.get().blockID); - var1.setBlock(var3, var4 - 1, var5 - 1, Blocks.holyGrass.get().blockID); - var1.setBlock(var3 - 1, var4 - 1, var5 - 1, Blocks.holyGrass.get().blockID); + var1.setBlock(var3, var4 - 1, var5, Blocks.holyGrass.get().blockID, 0, 2); + var1.setBlock(var3 - 1, var4 - 1, var5, Blocks.holyGrass.get().blockID, 0, 2); + var1.setBlock(var3, var4 - 1, var5 - 1, Blocks.holyGrass.get().blockID, 0, 2); + var1.setBlock(var3 - 1, var4 - 1, var5 - 1, Blocks.holyGrass.get().blockID, 0, 2); var15 = var2.nextInt(2); int var16 = 1; boolean var17 = false; diff --git a/src/minecraft/biomesoplenty/worldgen/WorldGenSmolderingGrass.java b/src/minecraft/biomesoplenty/worldgen/WorldGenSmolderingGrass.java index 16dd6970c..72a936b3f 100644 --- a/src/minecraft/biomesoplenty/worldgen/WorldGenSmolderingGrass.java +++ b/src/minecraft/biomesoplenty/worldgen/WorldGenSmolderingGrass.java @@ -16,11 +16,14 @@ public class WorldGenSmolderingGrass extends WorldGenerator /** The number of blocks to generate. */ private int numberOfBlocks; + + private int blockMeta; - public WorldGenSmolderingGrass(int par1, int par2) + public WorldGenSmolderingGrass(int par1, int meta, int par2) { this.minableBlockId = par1; this.numberOfBlocks = par2; + this.blockMeta = meta; } public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) @@ -66,7 +69,7 @@ public class WorldGenSmolderingGrass extends WorldGenerator if (var39 * var39 + var42 * var42 + var45 * var45 < 1.0D && par1World.getBlockId(var38, var41, var44) == Blocks.ash.get().blockID) { - par1World.setBlock(var38, var41, var44, this.minableBlockId); + par1World.setBlock(var38, var41, var44, this.minableBlockId, this.blockMeta, 2); } } } diff --git a/src/minecraft/mods/BiomesOPlenty/textures/blocks/whiteflower.png b/src/minecraft/mods/BiomesOPlenty/textures/blocks/anemone.png similarity index 100% rename from src/minecraft/mods/BiomesOPlenty/textures/blocks/whiteflower.png rename to src/minecraft/mods/BiomesOPlenty/textures/blocks/anemone.png diff --git a/src/minecraft/mods/BiomesOPlenty/textures/blocks/appleleaves3.png b/src/minecraft/mods/BiomesOPlenty/textures/blocks/appleleaves3.png deleted file mode 100644 index 7bfc008608d31765e4a992631ca4e83876603fd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 628 zcmV-)0*n2LP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0005wNklB(wtwd!ZDzfKo%ENRHV!Oow{)ol0LgWpLiUeeopkc%qJ}oppFC}G zr;44%b`u?DblN?$vA>6aO~PnU(f$AUPzaMKiwB-nsf|@*xa>cXWa#gnIzALzRaaoxTCWFG?NS(~}nf O0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0005eNklD2 za})oA*s;c55JY|VMMXuiH!RT@OEmW0HHzSm({CIJ!r|W8nLV?!=d79EDJ=9R?myUT zM@97=8N`ag$?SLxYFg6y?%sLL$U-jB?DYTjC%iHak?0_Df;Tu^4`78TTssE zlDryjqKY&5=DEjU2U(t-j<|JUsjr}-L6m`j-;qaKCp4V{e@eqaW*pQdXzz1kj^3LQ w=*aa<@Jyas94Zmo(+@*bet`5?e(+@f0NSS2=@ljSGynhq07*qoM6N<$f)^VNe*gdg diff --git a/src/minecraft/mods/BiomesOPlenty/textures/blocks/appleleaves4.png b/src/minecraft/mods/BiomesOPlenty/textures/blocks/appleleaves4.png deleted file mode 100644 index 8443041e7e0698a89a9565d95ddd5258cf9d1ff0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 598 zcmV-c0;&CpP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0005SNkl+w2dG#*uRpB{)@k$3x$QiTEY*qk>Z5%o3+X^T#yCoh%cqAcm z>e|UVHDUMC-4u}SOgOhK_b>%ZyH(VZ1bR)b$|lq!);VYglSVy2ORq4|(J#)45=%ZF?4%6~U859jrW~|_IF!)@eidM3!W�hE~4msLTD2{-@N+zQ_trK3I!!Nj5OeCug<( zeBI>W)&sNZ#G|re26p*yBB#34@aQGd^fe$WRgB7%dGl(R*1QD(HoYPD*knE`OEP)< z!ex+yAD*3#h;XVaMoCT*&?og|>4c_#?4N0Jpjj1E3yzc^j_%C}RAdPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0004xNklwB{NpXnxAYuUkX4Jj+35;bQ{^N3MUKRr;U#HogO=$H#=EL|B>xQ!!@#NuA0KT z)i4!^Np)5MDOg1&0|OUTV-+MscKXJ0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0004xNklwB{NpXnxAYuUkX4Jj+35;bQ{^N3MUKRr;U#HogO=$H#=EL|B>xQ!!@#NuA0KT z)i4!^Np)5MDOg1&0|OUTV-+MscKXJ0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0004xNklwB{NpXnxAYuUkX4Jj+35;bQ{^N3MUKRr;U#HogO=$H#=EL|B>xQ!!@#NuA0KT z)i4!^Np)5MDOg1&0|OUTV-+MscKXJ0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0004xNklwB{NpXnxAYuUkX4Jj+35;bQ{^N3MUKRr;U#HogO=$H#=EL|B>xQ!!@#NuA0KT z)i4!^Np)5MDOg1&0|OUTV-+MscKXJ0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0004xNklwB{NpXnxAYuUkX4Jj+35;bQ{^N3MUKRr;U#HogO=$H#=EL|B>xQ!!@#NuA0KT z)i4!^Np)5MDOg1&0|OUTV-+MscKXJ0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0004xNklwB{NpXnxAYuUkX4Jj+35;bQ{^N3MUKRr;U#HogO=$H#=EL|B>xQ!!@#NuA0KT z)i4!^Np)5MDOg1&0|OUTV-+MscKXJ0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0004xNklwB{NpXnxAYuUkX4Jj+35;bQ{^N3MUKRr;U#HogO=$H#=EL|B>xQ!!@#NuA0KT z)i4!^Np)5MDOg1&0|OUTV-+MscKXJ0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0004xNklwB{NpXnxAYuUkX4Jj+35;bQ{^N3MUKRr;U#HogO=$H#=EL|B>xQ!!@#NuA0KT z)i4!^Np)5MDOg1&0|OUTV-+MscKXJ0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0004xNklwB{NpXnxAYuUkX4Jj+35;bQ{^N3MUKRr;U#HogO=$H#=EL|B>xQ!!@#NuA0KT z)i4!^Np)5MDOg1&0|OUTV-+MscKXJ0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0004xNklwB{NpXnxAYuUkX4Jj+35;bQ{^N3MUKRr;U#HogO=$H#=EL|B>xQ!!@#NuA0KT z)i4!^Np)5MDOg1&0|OUTV-+MscKXJ0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0005wNklB(wtwd!ZDzfKo%ENRHV!Oow{)ol0LgWpLiUeeopkc%qJ}oppFC}G zr;44%b`u?DblN?$vA>6aO~PnU(f$AUPzaMKiwB-nsf|@*xa>cXWa#gnIzALzRaaoxTCWFG?NS(~}nf O0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0005SNkl+w2dG#*uRpB{)@k$3x$QiTEY*qk>Z5%o3+X^T#yCoh%cqAcm z>e|UVHDUMC-4u}SOgOhK_b>%ZyH(VZ1bR)b$|lq!);VYglSVy2ORq4|(J#)45=%ZF?4%6~U859jrW~|_IF!)@eidM3!W�hE~4msLTD2{-@N+zQ_trK3I!!Nj5OeCug<( zeBI>W)&sNZ#G|re26p*yBB#34@aQGd^fe$WRgB7%dGl(R*1QD(HoYPD*knE`OEP)< z!ex+yAD*3#h;XVaMoCT*&?og|>4c_#?4N0Jpjj1E3yzc^j_%C}RAd7_-AHhktdo^}=yy6&ey5x;Edg{gB1RD8d|IBD_J8Er5rCF$k!xi}6X)nx-R< b|MM_hY@Dj+%yFO$=r#sVS3j3^P6Pn1kVfre*$2M2ulzqTm*rz(+rf-EY&E-uzsuir z6Og}YAkllZ!Fu=N12PkO&97ViVgERh*ZCV;8>9HO+l`V6(i49g98NIt;9&{ivDly^ zp~G0r*u!tkQ2Mick650-A)G!=nC^8IleDtxNjp5k)ebf0e4^9F4kipZ{&t;ucLK6VdlY;U9 diff --git a/src/minecraft/mods/BiomesOPlenty/textures/items/bush.png b/src/minecraft/mods/BiomesOPlenty/textures/items/bush.png deleted file mode 100644 index e009c6d93980f509e7fa917fd3ad239d454d9d87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 597 zcmV-b0;>IqP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02*{fSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+qQF!XYv0005RNkl&N6o-{-1NP~P3L_~b7iCdt=Q0UWeM6ZqNeXPZVGoXQ@F9U!OyDlB+UmAZ7ST_ zMnFybVFl;UqMG9!M?FuKrv1|9G)QvhPooAWj6egVjMQ=zF|EfDJsmNRg0YBI)Uz8Q zZR7+DG3t$5VbgjdB=R7VT@Mx2X~^x0RUznptk7jS_S}x-WhBUQ+d?Abz0Z}lCK%2D z1x}|%fv0INtV-C1ph51O^wcl=>at<&+X*AI97arLC8S_-sAX0|nsZ-3ok%?+K)}?= zYoz9UTliK=FZkM=-LxbqbEmiTu92Si708{D*nwJIvZQCGx0wK|c{{j%Ib(5Y|7lN7* j$;lE~T5`ISBoO!lOfM!J+`#7^00000NkvXXu0mjf0p|-x diff --git a/src/minecraft/mods/BiomesOPlenty/textures/items/cattail.png b/src/minecraft/mods/BiomesOPlenty/textures/items/cattail.png deleted file mode 100644 index 9969871e732d731f8cd59c1ecef77f0dbeda4070..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL8%hgh?3y^w370~qEv=}#LT=BJwMkFg)(D3 zQ$0figD*u3fvUE6x;Tbd_$UAP|KHwKVzq*%gp&Y6^|R0g8cZKMjTWdK`Skxxo68QS z6gx-eNpnm8e^<5m$A0m~j|yIfn=CKN{P|*RQzCbv7DQNi;BYF`n3#xOif28>0xb z1H%%5XIwMVB;?mH@FtitER#5PY^fwm0FOghM-GQkFJAzUg8ct!lvI6;>1s;*b z3=DjSK$uZf!>a)(C{^MbQ4*Y=R#Ki=l*$m0n3-3i=jR%tP-d)Ws%L0m@TF)WP}LVt z7sn6_|D}Pa`3?pMyqz}f!rGP#?n&-1zR^OQ@!uZc#@KK z?#!H-x1+pP?q8tli;O;8WSjnL`l@5Uo<}7r+_0F!zuumUHQK$jKQ!yxG#ei7$6k&O zRYt;x{LOx4%kh-kw9JZWx)HsnW%2IQhO;Ifc%CfFeu9VhaKSng(_^Y#N5A`-w*Io# z_h0gQsp5OpZ{cq~_PjW#?ry$af$Q9%+fSnxT$p*=Mq>GFzR*)k`4W%JG*wT%I%`^F z>G@S1wlM}?wUd;^{F^s?I}`SUS-^3kjg;^cOU9xoH>GJ`SzN=mx_`LfxdP~a22WQ% Jmvv4FO#lV>lW_n5 diff --git a/src/minecraft/mods/BiomesOPlenty/textures/items/moss.png b/src/minecraft/mods/BiomesOPlenty/textures/items/moss.png deleted file mode 100644 index bf259f03cb7c6489f9e547d33e98644d9102f8c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 299 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DjSK$uZf!>a)(C{^MbQ4*Y=R#Ki=l*$m0n3-3i=jR%tP-d)Ws%L0m@TF)WP}Ooz z7sn6_|E2vGc@H`8IPaF%-oO;kbC5qCZ!NPXw5K%9a$XR=hlajdiqS z!*d=cjVH4umn^i~(0b=f02^nwnZpjx36Ad$#w~fNxNSFov%-}(w;L5#z07sI@4~@< s_Wh#RBWqrEy!|0I>t}}VpSe-@p0HlsC28^DJzopr0F=Xa$N&HU diff --git a/src/minecraft/mods/BiomesOPlenty/textures/items/shortgrass.png b/src/minecraft/mods/BiomesOPlenty/textures/items/shortgrass.png deleted file mode 100644 index bef01da510eeaf6b719da282af1edb7e4ebd438d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DjSK$uZf!>a)(C{^MbQ4*Y=R#Ki=l*$m0n3-3i=jR%tP-d)Ws%L0m@TF)WP*sPg zi(`m|fAWw2|Lt8RRx4;$i1aYsVtmZzxW)j|I@yh1m`P4l@D`L7pMv7zGr{f%)^+tK_Y;c83-88U7Tl`WO$(t=q3hFS3j3^ HP6 diff --git a/src/minecraft/mods/BiomesOPlenty/textures/items/sprout.png b/src/minecraft/mods/BiomesOPlenty/textures/items/sprout.png deleted file mode 100644 index 1d2302e8cdf698f6733ba7d37bf12b8e8fa04621..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 373 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DjSK$uZf!>a)(C{^MbQ4*Y=R#Ki=l*$m0n3-3i=jR%tP-d)Ws%L0m@TF)WP}N6I z7sn6_|KtN~Q&FxAD!)u4C5fuqu9Qjs?Qw-#0YKh0kJ_qxYp*5nC0_Q<;k z2VPtw)ULI1B9qAl@kDJ82&HA9ofY~ALpqO_7 ztAfJw-h|nuT#Yx4@*JisbRK5h