From 3d7357fa29e92781778311d5cd9531bf63f586eb Mon Sep 17 00:00:00 2001 From: OnyxDarkKnight Date: Wed, 16 Jul 2014 13:11:34 +0300 Subject: Lots of fixes and improvements --- .../jewelrycraft/CreativeTabNecklaces.java | 15 ++++---- .../darkknight/jewelrycraft/CreativeTabRings.java | 39 ++++++++++---------- .../jewelrycraft/block/BlockMoltenMetal.java | 8 ++++- .../jewelrycraft/block/BlockSmelter.java | 2 +- .../jewelrycraft/config/ConfigHandler.java | 41 +++++++++++++++++----- .../jewelrycraft/events/EntityEventHandler.java | 3 +- .../jewelrycraft/item/ItemMoltenMetal.java | 8 ++++- .../jewelrycraft/item/ItemMoltenMetalBucket.java | 8 ++++- .../darkknight/jewelrycraft/item/ItemNecklace.java | 6 ++-- .../darkknight/jewelrycraft/item/ItemRing.java | 16 ++++++--- .../jewelrycraft/util/JewelrycraftUtil.java | 13 ++++--- .../jewelrycraft/worldGen/Generation.java | 2 +- .../worldGen/village/ComponentJewelry.java | 31 ++++++++-------- .../worldGen/village/VillageJewelryHandler.java | 3 +- 14 files changed, 124 insertions(+), 71 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/darkknight/jewelrycraft/CreativeTabNecklaces.java b/src/main/java/darkknight/jewelrycraft/CreativeTabNecklaces.java index 3f1fe92..524d31e 100644 --- a/src/main/java/darkknight/jewelrycraft/CreativeTabNecklaces.java +++ b/src/main/java/darkknight/jewelrycraft/CreativeTabNecklaces.java @@ -1,5 +1,6 @@ package darkknight.jewelrycraft; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; import darkknight.jewelrycraft.item.ItemList; @@ -34,22 +35,20 @@ public class CreativeTabNecklaces extends CreativeTabs int index = 0, index2 = 0; while(index < OreDictionary.getOreNames().length) { - while(index2 < OreDictionary.getOres(OreDictionary.getOreNames()[index]).size()) + Iterator i = OreDictionary.getOres(OreDictionary.getOreNames()[index]).iterator(); + + while (i.hasNext()) { - if(OreDictionary.getOres(OreDictionary.getOreNames()[index]).get(index2).getUnlocalizedName().toLowerCase().contains("ingot") && !metal.contains(OreDictionary.getOres(OreDictionary.getOreNames()[index]).get(index2))) - metal.add(OreDictionary.getOres(OreDictionary.getOreNames()[index]).get(index2)); - index2++; + ItemStack nextStack = i.next(); + + if ((nextStack.getItem().getUnlocalizedName().toLowerCase().contains("ingot") || nextStack.getItem().getUnlocalizedName().toLowerCase().contains("alloy")) && !metal.contains(nextStack)) metal.add(nextStack); } - index2 = 0; index++; } for(int i = 0; i < metal.size(); i++) for(int j = 0; j < JewelrycraftUtil.modifiers.size(); j++) for(int k = 0; k < JewelrycraftUtil.jewel.size(); k++) - { - par1List.add(ItemList.necklace.getModifiedItemStack(metal.get(i), null, JewelrycraftUtil.jewel.get(k))); par1List.add(ItemList.necklace.getModifiedItemStack(metal.get(i), JewelrycraftUtil.modifiers.get(j), JewelrycraftUtil.jewel.get(k))); - } } } diff --git a/src/main/java/darkknight/jewelrycraft/CreativeTabRings.java b/src/main/java/darkknight/jewelrycraft/CreativeTabRings.java index 4061dcf..5cbe496 100644 --- a/src/main/java/darkknight/jewelrycraft/CreativeTabRings.java +++ b/src/main/java/darkknight/jewelrycraft/CreativeTabRings.java @@ -1,5 +1,7 @@ package darkknight.jewelrycraft; + import java.util.ArrayList; +import java.util.Iterator; import java.util.List; import net.minecraft.creativetab.CreativeTabs; @@ -13,42 +15,41 @@ import darkknight.jewelrycraft.util.JewelrycraftUtil; public class CreativeTabRings extends CreativeTabs { public static ArrayList metal = new ArrayList(); - - public CreativeTabRings(String par2Str) + + public CreativeTabRings(String par2Str) { super(par2Str); metal.add(new ItemStack(Items.gold_ingot)); metal.add(new ItemStack(Items.iron_ingot)); } - + @Override public Item getTabIconItem() { return ItemList.ring; } - - @SuppressWarnings({ "rawtypes", "unchecked" }) + + @SuppressWarnings( + { "rawtypes", "unchecked" }) public void displayAllReleventItems(List par1List) { int index = 0, index2 = 0; - while(index < OreDictionary.getOreNames().length) + while (index < OreDictionary.getOreNames().length) { - while(index2 < OreDictionary.getOres(OreDictionary.getOreNames()[index]).size()) + Iterator i = OreDictionary.getOres(OreDictionary.getOreNames()[index]).iterator(); + + while (i.hasNext()) { - if(OreDictionary.getOres(OreDictionary.getOreNames()[index]).get(index2).getUnlocalizedName().toLowerCase().contains("ingot") && !metal.contains(OreDictionary.getOres(OreDictionary.getOreNames()[index]).get(index2))) - metal.add(OreDictionary.getOres(OreDictionary.getOreNames()[index]).get(index2)); - index2++; + ItemStack nextStack = i.next(); + + if ((nextStack.getItem().getUnlocalizedName().toLowerCase().contains("ingot") || nextStack.getItem().getUnlocalizedName().toLowerCase().contains("alloy")) && !metal.contains(nextStack)) metal.add(nextStack); } - index2 = 0; index++; - } - for(int i = 0; i < metal.size(); i++) - for(int j = 0; j < JewelrycraftUtil.modifiers.size(); j++) - for(int k = 0; k < JewelrycraftUtil.jewel.size(); k++) - { - par1List.add(ItemList.ring.getModifiedItemStack(metal.get(i), null, JewelrycraftUtil.jewel.get(k))); + } + for (int i = 0; i < metal.size(); i++) + for (int j = 0; j < JewelrycraftUtil.modifiers.size(); j++) + for (int k = 0; k < JewelrycraftUtil.jewel.size(); k++) par1List.add(ItemList.ring.getModifiedItemStack(metal.get(i), JewelrycraftUtil.modifiers.get(j), JewelrycraftUtil.jewel.get(k))); - } } - + } diff --git a/src/main/java/darkknight/jewelrycraft/block/BlockMoltenMetal.java b/src/main/java/darkknight/jewelrycraft/block/BlockMoltenMetal.java index b6d10c1..f15b794 100644 --- a/src/main/java/darkknight/jewelrycraft/block/BlockMoltenMetal.java +++ b/src/main/java/darkknight/jewelrycraft/block/BlockMoltenMetal.java @@ -244,7 +244,7 @@ public class BlockMoltenMetal extends BlockFluidClassic { red = (icon.getRGB(x, y) >> 16) & 0xFF; green = (icon.getRGB(x, y) >> 8) & 0xFF; blue = icon.getRGB(x, y) & 0xFF; - if((red <= 80 && green <= 80 && blue <= 80) || (red >= 180 && green >= 180 && blue >= 180)) + if(!isColorPretty(red, green, blue)) { if(x=icon.getTileWidth()-1 && y 80 || g > 80 || b > 80 || (r > 80 && g > 80 && b > 80 && r < 180 && b < 180 && g < 180)) return true; + return false; + } + public static String coords(int x, int y, int z) { return String.valueOf(x) + " " + String.valueOf(y) + " " + String.valueOf(z); diff --git a/src/main/java/darkknight/jewelrycraft/block/BlockSmelter.java b/src/main/java/darkknight/jewelrycraft/block/BlockSmelter.java index 1f04bce..c88798b 100644 --- a/src/main/java/darkknight/jewelrycraft/block/BlockSmelter.java +++ b/src/main/java/darkknight/jewelrycraft/block/BlockSmelter.java @@ -71,7 +71,7 @@ public class BlockSmelter extends BlockContainer { int index = -1; for(int a = 0; a < JewelrycraftUtil.jamcraftPlayers.size(); a++) if(entityPlayer.getDisplayName().equals(JewelrycraftUtil.jamcraftPlayers.get(a))) index = a; - if (!te.hasMetal && !te.hasMoltenMetal && !te.pouring && item != null && (item.getUnlocalizedName().toLowerCase().contains("ingot") || index != -1) && !item.getUnlocalizedName().toLowerCase().contains("mold")) + if (!te.hasMetal && !te.hasMoltenMetal && !te.pouring && item != null && (item.getUnlocalizedName().toLowerCase().contains("ingot") || item.getUnlocalizedName().toLowerCase().contains("alloy") || index != -1) && !item.getUnlocalizedName().toLowerCase().contains("mold")) { entityPlayer.addChatMessage(new ChatComponentText(StatCollector.translateToLocalFormatted("chatmessage.Jewelrycraft.smelter.nowsmeltingingot", item.getDisplayName()))); te.metal = item.copy(); diff --git a/src/main/java/darkknight/jewelrycraft/config/ConfigHandler.java b/src/main/java/darkknight/jewelrycraft/config/ConfigHandler.java index e9040c9..4bfd893 100644 --- a/src/main/java/darkknight/jewelrycraft/config/ConfigHandler.java +++ b/src/main/java/darkknight/jewelrycraft/config/ConfigHandler.java @@ -5,12 +5,23 @@ import cpw.mods.fml.common.event.FMLPreInitializationEvent; public class ConfigHandler { - private static Configuration config; - public static int ingotCoolingTime = 200; - public static int ingotMeltingTime = 1500; - public static int jewelryCraftingTime = 2000; + private static Configuration config; + public static int ingotCoolingTime = 200; + public static int ingotMeltingTime = 1500; + public static int jewelryCraftingTime = 2000; - private static boolean isInitialized = false; + private static boolean isInitialized = false; + public static boolean generateVillageNetherstar = false; + public static boolean canFurnacesGenerateIngots = true; + public static int maxVillageJewelers = 1; + public static int jewelerWeight = 30; + public static int ingotChestMin = 1; + public static int ingotChestMax = 4; + public static int ingotChestMaxStack = 2; + public static int jewelsChestMin = 2; + public static int jewelsChestMax = 5; + public static int furnacesIngotStackMin = 2; + public static int furnacesIngotStackMax = 5; public static void preInit(FMLPreInitializationEvent e) { @@ -20,9 +31,23 @@ public class ConfigHandler config.load(); - ingotCoolingTime = config.get("timers", "Molder Ingot Cooling Time", ingotCoolingTime).getInt(); - ingotMeltingTime = config.get("timers", "Ingot Melting Time", ingotMeltingTime).getInt(); - jewelryCraftingTime = config.get("timers", "Jewelry Crafting Time", jewelryCraftingTime).getInt(); + ingotCoolingTime = config.get("Timers", "Molder Ingot Cooling Time", ingotCoolingTime, "This sets the number of ticks you need to wait before the mold is cooled.").getInt(); + ingotMeltingTime = config.get("Timers", "Ingot Melting Time", ingotMeltingTime, "This sets the number of ticks you need to wait before an ingot is completely smelted.").getInt(); + jewelryCraftingTime = config.get("Timers", "Jewelry Crafting Time", jewelryCraftingTime, "This sets the number of ticks it takes for a jewel to be modified.").getInt(); + + generateVillageNetherstar = config.get("Village Generation", "Netherstar Generation", generateVillageNetherstar, "If set to true Nether Stars will be able to generate in Jewelers chests.").getBoolean(generateVillageNetherstar); + canFurnacesGenerateIngots = config.get("Village Generation", "Furnace Ingots Generation", canFurnacesGenerateIngots, "If set to true jewelers will generate ingots in furnaces.").getBoolean(canFurnacesGenerateIngots); + + maxVillageJewelers = config.get("Village Generation", "Maximum Jewelers", maxVillageJewelers, "Sets how many jewelers can be in a village.").getInt(); + jewelerWeight = config.get("Village Generation", "Jewelers Weight", jewelerWeight, "Chance of getting a jeweler in a village. The higher the value, the higher the chance.").getInt(); + + ingotChestMin = config.get("Village Generation", "Ingot Chest Min", ingotChestMin, "Minimum number of ingots that can be found in a chest from the Jeweler. (It's the chest from the back part)").getInt(); + ingotChestMax = config.get("Village Generation", "Ingot Chest Max", ingotChestMax, "Maximum number of ingots that can be found in a chest from the Jeweler. (It's the chest from the back part)").getInt(); + ingotChestMaxStack = config.get("Village Generation", "Ingot Chest Max Stack", ingotChestMaxStack, "Maximum number of the stack the ingots can be. For example: if set to 2 and ingots have a chance of generating, you have a chance of getting a stack of max 2 ingots in a chest.").getInt(); + jewelsChestMin = config.get("Village Generation", "Jewelers Chest Min", jewelsChestMin, "Determines the minimum nuber of jewels/modifiers that can be generated in the front chests of a Jeweler.").getInt(); + jewelsChestMax = config.get("Village Generation", "Jewelers Chest Max", jewelsChestMax, "Determines the maximum nuber of jewels/modifiers that can be generated in the front chests of a Jeweler.").getInt(); + furnacesIngotStackMin = config.get("Village Generation", "Ingot Furnace Min", furnacesIngotStackMin, "Determines the minimum number of ingots that can generate in a furnace.").getInt(); + furnacesIngotStackMax = config.get("Village Generation", "Ingot Furnace Max", furnacesIngotStackMax, "Determines the maximum number of ingots that can generate in a furnace.").getInt(); config.save(); diff --git a/src/main/java/darkknight/jewelrycraft/events/EntityEventHandler.java b/src/main/java/darkknight/jewelrycraft/events/EntityEventHandler.java index 957705c..42dc5a7 100644 --- a/src/main/java/darkknight/jewelrycraft/events/EntityEventHandler.java +++ b/src/main/java/darkknight/jewelrycraft/events/EntityEventHandler.java @@ -59,7 +59,8 @@ public class EntityEventHandler { if(!event.world.isRemote) { - JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir, "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); + new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs(); + JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg"); try { if(!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile(); } catch (IOException e) { diff --git a/src/main/java/darkknight/jewelrycraft/item/ItemMoltenMetal.java b/src/main/java/darkknight/jewelrycraft/item/ItemMoltenMetal.java index 9bf9896..f40b861 100644 --- a/src/main/java/darkknight/jewelrycraft/item/ItemMoltenMetal.java +++ b/src/main/java/darkknight/jewelrycraft/item/ItemMoltenMetal.java @@ -102,7 +102,7 @@ public class ItemMoltenMetal extends Item red = (icon.getRGB(x, y) >> 16) & 0xFF; green = (icon.getRGB(x, y) >> 8) & 0xFF; blue = icon.getRGB(x, y) & 0xFF; - if((red <= 80 && green <= 80 && blue <= 80) || (red >= 180 && green >= 180 && blue >= 180)) + if(!isColorPretty(red, green, blue)) { if(x=icon.getTileWidth()-1 && y 80 || g > 80 || b > 80 || (r > 80 && g > 80 && b > 80 && r < 180 && b < 180 && g < 180)) return true; + return false; + } } diff --git a/src/main/java/darkknight/jewelrycraft/item/ItemMoltenMetalBucket.java b/src/main/java/darkknight/jewelrycraft/item/ItemMoltenMetalBucket.java index 4bb9050..0d9081c 100644 --- a/src/main/java/darkknight/jewelrycraft/item/ItemMoltenMetalBucket.java +++ b/src/main/java/darkknight/jewelrycraft/item/ItemMoltenMetalBucket.java @@ -270,7 +270,7 @@ public class ItemMoltenMetalBucket extends Item red = (icon.getRGB(x, y) >> 16) & 0xFF; green = (icon.getRGB(x, y) >> 8) & 0xFF; blue = icon.getRGB(x, y) & 0xFF; - if((red <= 80 && green <= 80 && blue <= 80) || (red >= 180 && green >= 180 && blue >= 180)) + if(!isColorPretty(red, green, blue)) { if(x=icon.getTileWidth()-1 && y 80 || g > 80 || b > 80 || (r > 80 && g > 80 && b > 80 && r < 180 && b < 180 && g < 180)) return true; + return false; + } public ItemStack getModifiedItemStack(ItemStack ingot) { diff --git a/src/main/java/darkknight/jewelrycraft/item/ItemNecklace.java b/src/main/java/darkknight/jewelrycraft/item/ItemNecklace.java index 7206423..96ef364 100644 --- a/src/main/java/darkknight/jewelrycraft/item/ItemNecklace.java +++ b/src/main/java/darkknight/jewelrycraft/item/ItemNecklace.java @@ -215,9 +215,9 @@ public class ItemNecklace extends Item for(int x = (int) - 1; x <= 1; x++) for(int z = (int) - 1; z <= 1; z++) if(JewelryNBT.isModifierX(stack, new ItemStack(Items.diamond_pickaxe)) && JewelryNBT.isJewelX(stack, new ItemStack(Items.nether_star)) && JewelryNBT.isIngotX(stack, new ItemStack(ItemList.shadowIngot))) - if((side == 0 || side == 1) && j > 0 && world.getBlock(i + x, j, k + z) != Blocks.bedrock) world.func_147480_a(i + x, j, k + z, true); - else if((side == 2 || side == 3) && j + x > 0 && world.getBlock(i + z, j + x, k) != Blocks.bedrock) world.func_147480_a(i + z, j + x, k, true); - else if((side == 4 || side == 5) && j + x > 0 && world.getBlock(i, j + x, k + z) != Blocks.bedrock) world.func_147480_a(i, j + x, k + z, true); + if((side == 0 || side == 1) && j > 0 && world.getBlock(i, j + x, k + z) != Blocks.air && world.getBlock(i + x, j, k + z).getBlockHardness(world, i + x, j, k + z) > 0F) world.func_147480_a(i + x, j, k + z, true); + else if((side == 2 || side == 3) && j + x > 0 && world.getBlock(i, j + x, k + z) != Blocks.air && world.getBlock(i + z, j + x, k).getBlockHardness(world, i + z, j + x, k) > 0F) world.func_147480_a(i + z, j + x, k, true); + else if((side == 4 || side == 5) && j + x > 0 && world.getBlock(i, j + x, k + z) != Blocks.air && world.getBlock(i, j + x, k + z).getBlockHardness(world, i, j + x, k + z) > 0F) world.func_147480_a(i, j + x, k + z, true); } return true; } diff --git a/src/main/java/darkknight/jewelrycraft/item/ItemRing.java b/src/main/java/darkknight/jewelrycraft/item/ItemRing.java index 75b335d..1ef602b 100644 --- a/src/main/java/darkknight/jewelrycraft/item/ItemRing.java +++ b/src/main/java/darkknight/jewelrycraft/item/ItemRing.java @@ -117,7 +117,7 @@ public class ItemRing extends Item red = (icon.getRGB(x, y) >> 16) & 0xFF; green = (icon.getRGB(x, y) >> 8) & 0xFF; blue = icon.getRGB(x, y) & 0xFF; - if((red <= 80 && green <= 80 && blue <= 80) || (red >= 180 && green >= 180 && blue >= 180)) + if(!isColorPretty(red, green, blue)) { if(x=icon.getTileWidth()-1 && y> 16) & 0xFF; green = (icon.getRGB(x, y) >> 8) & 0xFF; blue = icon.getRGB(x, y) & 0xFF; - if((red <= 95 && green <= 95 && blue <= 95) || (red >= 180 && green >= 180 && blue >= 180)) + if(!isColorPretty(red, green, blue)) { if(x=icon.getTileWidth()-1 && y 80 || g > 80 || b > 80 || (r > 80 && g > 80 && b > 80 && r < 180 && b < 180 && g < 180)) return true; + return false; + } public String getItemStackDisplayName(ItemStack stack) { @@ -359,18 +365,18 @@ public class ItemRing extends Item used = true; } - if(!JewelryNBT.hasTag(stack, "tile") && world.getTileEntity(i, j, k) != null && !used){ + if(!JewelryNBT.hasTag(stack, "tile") && world.getTileEntity(i, j, k) != null && !used && world.getBlock(i, j, k).getBlockHardness(world, i, j, k) > 0F){ JewelryNBT.addTileEntityBlock(stack, world, i, j, k); world.removeTileEntity(i, j, k); world.setBlock(i, j, k, Block.getBlockById(0)); } - else if(!JewelryNBT.hasTag(stack, "blockID") && !used){ + else if(!JewelryNBT.hasTag(stack, "blockID") && !used && world.getBlock(i, j, k).getBlockHardness(world, i, j, k) > 0F){ JewelryNBT.addBlock(stack, Block.getIdFromBlock(world.getBlock(i, j, k)), world.getBlockMetadata(i, j, k)); JewelryNBT.addBlockCoordonates(stack, i, j, k); world.setBlock(i, j, k, Block.getBlockById(0)); } } - if(JewelryNBT.isModifierX(stack, new ItemStack(Items.diamond_pickaxe)) && JewelryNBT.isJewelX(stack, new ItemStack(Items.nether_star)) && JewelryNBT.isIngotX(stack, new ItemStack(ItemList.shadowIngot)) && j > 0 && world.getBlock(i, j, k) != Blocks.bedrock) + if(JewelryNBT.isModifierX(stack, new ItemStack(Items.diamond_pickaxe)) && JewelryNBT.isJewelX(stack, new ItemStack(Items.nether_star)) && JewelryNBT.isIngotX(stack, new ItemStack(ItemList.shadowIngot)) && j > 0 && world.getBlock(i, j, k).getBlockHardness(world, i, j, k) > 0F) world.func_147480_a(i, j, k, true); } return true; diff --git a/src/main/java/darkknight/jewelrycraft/util/JewelrycraftUtil.java b/src/main/java/darkknight/jewelrycraft/util/JewelrycraftUtil.java index 905665e..7575c06 100644 --- a/src/main/java/darkknight/jewelrycraft/util/JewelrycraftUtil.java +++ b/src/main/java/darkknight/jewelrycraft/util/JewelrycraftUtil.java @@ -82,15 +82,14 @@ public class JewelrycraftUtil int index = 0, index2 = 0; while(index < OreDictionary.getOreNames().length) { - while(index2 < OreDictionary.getOres(OreDictionary.getOreNames()[index]).size()) + Iterator i = OreDictionary.getOres(OreDictionary.getOreNames()[index]).iterator(); + + while (i.hasNext()) { - ItemStack stack = OreDictionary.getOres(OreDictionary.getOreNames()[index]).get(index2).copy(); - if(stack.getItemDamage() == Short.MAX_VALUE) stack.setItemDamage(0); - if(stack.getUnlocalizedName().toLowerCase().contains("ingot") && !JewelrycraftUtil.metal.contains(stack)) - metal.add(OreDictionary.getOres(OreDictionary.getOreNames()[index]).get(index2)); - index2++; + ItemStack nextStack = i.next(); + + if ((nextStack.getItem().getUnlocalizedName().toLowerCase().contains("ingot") || nextStack.getItem().getUnlocalizedName().toLowerCase().contains("alloy")) && !metal.contains(nextStack)) metal.add(nextStack); } - index2 = 0; index++; } if(!metal.contains(new ItemStack(Items.gold_ingot)))metal.add(new ItemStack(Items.gold_ingot)); diff --git a/src/main/java/darkknight/jewelrycraft/worldGen/Generation.java b/src/main/java/darkknight/jewelrycraft/worldGen/Generation.java index 9ff79ab..90d2bb1 100644 --- a/src/main/java/darkknight/jewelrycraft/worldGen/Generation.java +++ b/src/main/java/darkknight/jewelrycraft/worldGen/Generation.java @@ -37,7 +37,7 @@ public class Generation implements IWorldGenerator int x = i + random.nextInt(16); int y = 5 + random.nextInt(4); int z = j + random.nextInt(16); - world.setBlock(x, y, z, BlockList.shadowOre); + if(world.getBlock(x, y, z) == Blocks.stone) world.setBlock(x, y, z, BlockList.shadowOre); int randX = random.nextInt(2), randY = random.nextInt(1), randZ = random.nextInt(2); if(random.nextInt(3) == 0 && world.getBlock(x + randX, y + randY, z + randZ) == Blocks.stone) world.setBlock(x + randX, y + randY, z + randZ, BlockList.shadowOre); } diff --git a/src/main/java/darkknight/jewelrycraft/worldGen/village/ComponentJewelry.java b/src/main/java/darkknight/jewelrycraft/worldGen/village/ComponentJewelry.java index 0a79b79..32c9ec2 100644 --- a/src/main/java/darkknight/jewelrycraft/worldGen/village/ComponentJewelry.java +++ b/src/main/java/darkknight/jewelrycraft/worldGen/village/ComponentJewelry.java @@ -16,6 +16,7 @@ import net.minecraft.world.gen.structure.StructureComponent; import net.minecraft.world.gen.structure.StructureVillagePieces; import net.minecraft.world.gen.structure.StructureVillagePieces.Start; import darkknight.jewelrycraft.block.BlockList; +import darkknight.jewelrycraft.config.ConfigHandler; import darkknight.jewelrycraft.item.ItemList; import darkknight.jewelrycraft.item.ItemMolds; import darkknight.jewelrycraft.tileentity.TileEntityDisplayer; @@ -170,29 +171,29 @@ public class ComponentJewelry extends StructureVillagePieces.House1 for(int j = 1; j <= 5; j++) this.placeBlockAtCurrentPosition(world, Blocks.carpet, bgCarpetColor, i, 1, j, sbb); - generateChest(world, 3, 1, 1, 0, random, sbb, 2, 6); + generateChest(world, 3, 1, 1, 0, random, sbb, ConfigHandler.jewelsChestMin, ConfigHandler.jewelsChestMax); generateDisplayer(world, 3, 1, 2, (coordBaseMode == 0 || coordBaseMode == 2)?1:2, random, sbb); placeBlockAtCurrentPosition(world, BlockList.jewelCraftingTable, (coordBaseMode == 0 || coordBaseMode == 2)?1:2, 3, 1, 3, sbb); generateDisplayer(world, 3, 1, 4, (coordBaseMode == 0 || coordBaseMode == 2)?1:2, random, sbb); - generateChest(world, 3, 1, 5, 0, random, sbb, 2, 6); + generateChest(world, 3, 1, 5, 0, random, sbb, ConfigHandler.jewelsChestMin, ConfigHandler.jewelsChestMax); - generateFurnace(world, 1, 1, 7, 0, random, sbb, 1, 2, true); - generateFurnace(world, 1, 2, 7, 0, random, sbb, 2, 3, true); - generateFurnace(world, 1, 3, 7, 0, random, sbb, 1, 3, true); - generateFurnace(world, 1, 1, 10, 0, random, sbb, 1, 2, true); - generateFurnace(world, 1, 2, 10, 0, random, sbb, 2, 3, true); - generateFurnace(world, 1, 3, 10, 0, random, sbb, 1, 3, true); + generateFurnace(world, 1, 1, 7, 0, random, sbb, ConfigHandler.furnacesIngotStackMin, ConfigHandler.furnacesIngotStackMax, ConfigHandler.canFurnacesGenerateIngots); + generateFurnace(world, 1, 2, 7, 0, random, sbb, ConfigHandler.furnacesIngotStackMin, ConfigHandler.furnacesIngotStackMax, ConfigHandler.canFurnacesGenerateIngots); + generateFurnace(world, 1, 3, 7, 0, random, sbb, ConfigHandler.furnacesIngotStackMin, ConfigHandler.furnacesIngotStackMax, ConfigHandler.canFurnacesGenerateIngots); + generateFurnace(world, 1, 1, 10, 0, random, sbb, ConfigHandler.furnacesIngotStackMin, ConfigHandler.furnacesIngotStackMax, ConfigHandler.canFurnacesGenerateIngots); + generateFurnace(world, 1, 2, 10, 0, random, sbb, ConfigHandler.furnacesIngotStackMin, ConfigHandler.furnacesIngotStackMax, ConfigHandler.canFurnacesGenerateIngots); + generateFurnace(world, 1, 3, 10, 0, random, sbb, ConfigHandler.furnacesIngotStackMin, ConfigHandler.furnacesIngotStackMax, ConfigHandler.canFurnacesGenerateIngots); generateSmelter(world, 1, 1, 8, (coordBaseMode == 0 || coordBaseMode == 2)?1:2, random, sbb, random.nextBoolean()); generateSmelter(world, 1, 1, 9, (coordBaseMode == 0 || coordBaseMode == 2)?1:2, random, sbb, random.nextBoolean()); generateMolder(world, 2, 1, 8, (coordBaseMode == 0 || coordBaseMode == 2)?1:2, random, sbb, random.nextBoolean(), random.nextBoolean()); generateMolder(world, 2, 1, 9, (coordBaseMode == 0 || coordBaseMode == 2)?1:2, random, sbb, random.nextBoolean(), random.nextBoolean()); - - generateIngotChest(world, 9, 1, 7, 0, random, sbb, 3, 12, Blocks.chest, 5); - generateIngotChest(world, 9, 1, 8, 0, random, sbb, 5, 16, Blocks.chest, 3); - generateIngotChest(world, 9, 1, 9, 0, random, sbb, 3, 10, Blocks.trapped_chest, 2); - generateIngotChest(world, 9, 1, 10, 0, random, sbb, 3, 9, Blocks.trapped_chest, 6); + + generateIngotChest(world, 9, 1, 7, 0, random, sbb, ConfigHandler.ingotChestMin, ConfigHandler.ingotChestMax, Blocks.chest, ConfigHandler.ingotChestMaxStack); + generateIngotChest(world, 9, 1, 8, 0, random, sbb, ConfigHandler.ingotChestMin, ConfigHandler.ingotChestMax, Blocks.chest, ConfigHandler.ingotChestMaxStack); + generateIngotChest(world, 9, 1, 9, 0, random, sbb, ConfigHandler.ingotChestMin, ConfigHandler.ingotChestMax, Blocks.trapped_chest, ConfigHandler.ingotChestMaxStack); + generateIngotChest(world, 9, 1, 10, 0, random, sbb, ConfigHandler.ingotChestMin, ConfigHandler.ingotChestMax, Blocks.trapped_chest, ConfigHandler.ingotChestMaxStack); for (int l = 0; l < 6; ++l) @@ -228,9 +229,11 @@ public class ComponentJewelry extends StructureVillagePieces.House1 TileEntityChest chest = (TileEntityChest)world.getTileEntity(i1, j1, k1); while(chest != null && t > 0) { + ItemStack jewels = JewelrycraftUtil.jewel.get(random.nextInt(JewelrycraftUtil.jewel.size())); chest.func_145976_a("Jeweler's Chest"); if(random.nextBoolean()) chest.setInventorySlotContents(random.nextInt(chest.getSizeInventory()), JewelrycraftUtil.modifiers.get(random.nextInt(JewelrycraftUtil.modifiers.size()))); - else chest.setInventorySlotContents(random.nextInt(chest.getSizeInventory()), JewelrycraftUtil.jewel.get(random.nextInt(JewelrycraftUtil.jewel.size()))); + else if(jewels.getItem() == Items.nether_star && ConfigHandler.generateVillageNetherstar) chest.setInventorySlotContents(random.nextInt(chest.getSizeInventory()), jewels); + else if(random.nextBoolean() && jewels.getItem() != Items.nether_star) chest.setInventorySlotContents(random.nextInt(chest.getSizeInventory()), jewels); t--; } } diff --git a/src/main/java/darkknight/jewelrycraft/worldGen/village/VillageJewelryHandler.java b/src/main/java/darkknight/jewelrycraft/worldGen/village/VillageJewelryHandler.java index 145c9a0..3b3aa3f 100644 --- a/src/main/java/darkknight/jewelrycraft/worldGen/village/VillageJewelryHandler.java +++ b/src/main/java/darkknight/jewelrycraft/worldGen/village/VillageJewelryHandler.java @@ -9,13 +9,14 @@ import net.minecraft.world.gen.structure.MapGenStructureIO; import net.minecraft.world.gen.structure.StructureVillagePieces.PieceWeight; import net.minecraft.world.gen.structure.StructureVillagePieces.Start; import cpw.mods.fml.common.registry.VillagerRegistry.IVillageCreationHandler; +import darkknight.jewelrycraft.config.ConfigHandler; public class VillageJewelryHandler implements IVillageCreationHandler { @Override public PieceWeight getVillagePieceWeight (Random random, int i) { - return new PieceWeight(ComponentJewelry.class, 30, i + random.nextInt(4)); + return new PieceWeight(ComponentJewelry.class, ConfigHandler.jewelerWeight, ConfigHandler.maxVillageJewelers); } @Override -- cgit v1.2.3