From 459672ac2c1192a054f4645cac3d4a05312414db Mon Sep 17 00:00:00 2001 From: Gig Date: Sun, 7 Jun 2015 21:01:29 +0100 Subject: [PATCH 1/3] Removed a load of waila support --- .../techreborn/tiles/TileAlloySmelter.java | 16 ++++++++-------- .../tiles/TileAssemblingMachine.java | 18 +++++++++--------- .../java/techreborn/tiles/TileCentrifuge.java | 8 ++++---- .../techreborn/tiles/TileChemicalReactor.java | 18 +++++++++--------- .../techreborn/tiles/TileHeatGenerator.java | 14 +++++++------- .../tiles/TileImplosionCompressor.java | 18 +++++++++--------- src/main/java/techreborn/tiles/TileLathe.java | 18 +++++++++--------- .../tiles/TilePlateCuttingMachine.java | 18 +++++++++--------- 8 files changed, 64 insertions(+), 64 deletions(-) diff --git a/src/main/java/techreborn/tiles/TileAlloySmelter.java b/src/main/java/techreborn/tiles/TileAlloySmelter.java index ee338e5f3..d7a40559c 100644 --- a/src/main/java/techreborn/tiles/TileAlloySmelter.java +++ b/src/main/java/techreborn/tiles/TileAlloySmelter.java @@ -105,14 +105,14 @@ public class TileAlloySmelter extends TileMachineBase implements IWrenchable, IE super.onChunkUnload(); } - @Override - public void addWailaInfo(List info){ - super.addWailaInfo(info); - info.add("Power Stored " + energy.getEnergyStored() + "/" + energy.getCapacity() +" EU"); - if(crafter.currentRecipe !=null){ - info.add("Power Usage " + crafter.currentRecipe.euPerTick() + " EU/t"); - } - } +// @Override +// public void addWailaInfo(List info){ +// super.addWailaInfo(info); +// info.add("Power Stored " + energy.getEnergyStored() + "/" + energy.getCapacity() +" EU"); +// if(crafter.currentRecipe !=null){ +// info.add("Power Usage " + crafter.currentRecipe.euPerTick() + " EU/t"); +// } +// } @Override public int getSizeInventory() { diff --git a/src/main/java/techreborn/tiles/TileAssemblingMachine.java b/src/main/java/techreborn/tiles/TileAssemblingMachine.java index 24547ae4b..f55c84338 100644 --- a/src/main/java/techreborn/tiles/TileAssemblingMachine.java +++ b/src/main/java/techreborn/tiles/TileAssemblingMachine.java @@ -115,14 +115,14 @@ public class TileAssemblingMachine extends TileMachineBase implements IWrenchabl super.onChunkUnload(); } - @Override - public void addWailaInfo(List info) - { - super.addWailaInfo(info); - info.add("Power Stored " + energy.getEnergyStored() +" EU"); - if(crafter.currentRecipe !=null){ - info.add("Power Usage " + crafter.currentRecipe.euPerTick() + " EU/t"); - } - } +// @Override +// public void addWailaInfo(List info) +// { +// super.addWailaInfo(info); +// info.add("Power Stored " + energy.getEnergyStored() +" EU"); +// if(crafter.currentRecipe !=null){ +// info.add("Power Usage " + crafter.currentRecipe.euPerTick() + " EU/t"); +// } +// } } diff --git a/src/main/java/techreborn/tiles/TileCentrifuge.java b/src/main/java/techreborn/tiles/TileCentrifuge.java index ad8c43018..6dfec6911 100644 --- a/src/main/java/techreborn/tiles/TileCentrifuge.java +++ b/src/main/java/techreborn/tiles/TileCentrifuge.java @@ -127,10 +127,10 @@ public class TileCentrifuge extends TileMachineBase implements IWrenchable, IEn public void addWailaInfo(List info) { super.addWailaInfo(info); - info.add("Power Stored " + energy.getEnergyStored() +" EU"); - if(crafter.currentRecipe !=null){ - info.add("Power Usage " + crafter.currentRecipe.euPerTick() + " EU/t"); - } +// info.add("Power Stored " + energy.getEnergyStored() +" EU"); +// if(crafter.currentRecipe !=null){ +// info.add("Power Usage " + crafter.currentRecipe.euPerTick() + " EU/t"); +// } info.add("Round and round it goes"); } diff --git a/src/main/java/techreborn/tiles/TileChemicalReactor.java b/src/main/java/techreborn/tiles/TileChemicalReactor.java index ec55ab143..d7c219648 100644 --- a/src/main/java/techreborn/tiles/TileChemicalReactor.java +++ b/src/main/java/techreborn/tiles/TileChemicalReactor.java @@ -115,14 +115,14 @@ public class TileChemicalReactor extends TileMachineBase implements IWrenchable, super.onChunkUnload(); } - @Override - public void addWailaInfo(List info) - { - super.addWailaInfo(info); - info.add("Power Stored " + energy.getEnergyStored() +" EU"); - if(crafter.currentRecipe !=null){ - info.add("Power Usage " + crafter.currentRecipe.euPerTick() + " EU/t"); - } - } +// @Override +// public void addWailaInfo(List info) +// { +// super.addWailaInfo(info); +// info.add("Power Stored " + energy.getEnergyStored() +" EU"); +// if(crafter.currentRecipe !=null){ +// info.add("Power Usage " + crafter.currentRecipe.euPerTick() + " EU/t"); +// } +// } } diff --git a/src/main/java/techreborn/tiles/TileHeatGenerator.java b/src/main/java/techreborn/tiles/TileHeatGenerator.java index 58a94df2a..cdd49ce34 100644 --- a/src/main/java/techreborn/tiles/TileHeatGenerator.java +++ b/src/main/java/techreborn/tiles/TileHeatGenerator.java @@ -125,12 +125,12 @@ public class TileHeatGenerator extends TileMachineBase implements IWrenchable, I energy.writeToNBT(tagCompound); } - @Override - public void addWailaInfo(List info) - { - super.addWailaInfo(info); - info.add("Power Generarating " + euTick +" EU/t"); - - } +// @Override +// public void addWailaInfo(List info) +// { +// super.addWailaInfo(info); +// info.add("Power Generarating " + euTick +" EU/t"); +// +// } } diff --git a/src/main/java/techreborn/tiles/TileImplosionCompressor.java b/src/main/java/techreborn/tiles/TileImplosionCompressor.java index bd3360e15..6bc07acda 100644 --- a/src/main/java/techreborn/tiles/TileImplosionCompressor.java +++ b/src/main/java/techreborn/tiles/TileImplosionCompressor.java @@ -96,15 +96,15 @@ public class TileImplosionCompressor extends TileMachineBase implements IWrencha crafter.writeToNBT(tagCompound); } - @Override - public void addWailaInfo(List info) - { - super.addWailaInfo(info); - info.add("Power Stored " + energy.getEnergyStored() +" EU"); - if(crafter.currentRecipe !=null){ - info.add("Power Usage " + crafter.currentRecipe.euPerTick() + " EU/t"); - } - } +// @Override +// public void addWailaInfo(List info) +// { +// super.addWailaInfo(info); +// info.add("Power Stored " + energy.getEnergyStored() +" EU"); +// if(crafter.currentRecipe !=null){ +// info.add("Power Usage " + crafter.currentRecipe.euPerTick() + " EU/t"); +// } +// } @Override public void invalidate() diff --git a/src/main/java/techreborn/tiles/TileLathe.java b/src/main/java/techreborn/tiles/TileLathe.java index 4037dd25d..c9b6ff2d6 100644 --- a/src/main/java/techreborn/tiles/TileLathe.java +++ b/src/main/java/techreborn/tiles/TileLathe.java @@ -114,14 +114,14 @@ public class TileLathe extends TileMachineBase implements IWrenchable, IEnergyTi super.onChunkUnload(); } - @Override - public void addWailaInfo(List info) - { - super.addWailaInfo(info); - info.add("Power Stored " + energy.getEnergyStored() +" EU"); - if(crafter.currentRecipe !=null){ - info.add("Power Usage " + crafter.currentRecipe.euPerTick() + " EU/t"); - } - } +// @Override +// public void addWailaInfo(List info) +// { +// super.addWailaInfo(info); +// info.add("Power Stored " + energy.getEnergyStored() +" EU"); +// if(crafter.currentRecipe !=null){ +// info.add("Power Usage " + crafter.currentRecipe.euPerTick() + " EU/t"); +// } +// } } diff --git a/src/main/java/techreborn/tiles/TilePlateCuttingMachine.java b/src/main/java/techreborn/tiles/TilePlateCuttingMachine.java index 5583930f1..7acdbc2ac 100644 --- a/src/main/java/techreborn/tiles/TilePlateCuttingMachine.java +++ b/src/main/java/techreborn/tiles/TilePlateCuttingMachine.java @@ -101,15 +101,15 @@ public class TilePlateCuttingMachine extends TileMachineBase implements IWrencha crafter.writeToNBT(tagCompound); } - @Override - public void addWailaInfo(List info) - { - super.addWailaInfo(info); - info.add("Power Stored " + energy.getEnergyStored() +" EU"); - if(crafter.currentRecipe !=null){ - info.add("Power Usage " + crafter.currentRecipe.euPerTick() + " EU/t"); - } - } +// @Override +// public void addWailaInfo(List info) +// { +// super.addWailaInfo(info); +// info.add("Power Stored " + energy.getEnergyStored() +" EU"); +// if(crafter.currentRecipe !=null){ +// info.add("Power Usage " + crafter.currentRecipe.euPerTick() + " EU/t"); +// } +// } @Override public void invalidate() From 70f2d9f108ed0228103d57c3069c6c021ee85ec6 Mon Sep 17 00:00:00 2001 From: joflashstudios Date: Sun, 7 Jun 2015 17:20:49 -0400 Subject: [PATCH 2/3] Added recipes for: Tungsten grinding heads Matterfacbricator Shaped energy flow circuit recipe Superconductor Supercondensator Iridium alloy ingot Diamond saw blade --- .../techreborn/compat/recipes/RecipesIC2.java | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) diff --git a/src/main/java/techreborn/compat/recipes/RecipesIC2.java b/src/main/java/techreborn/compat/recipes/RecipesIC2.java index f81a88ee5..d50770b1a 100644 --- a/src/main/java/techreborn/compat/recipes/RecipesIC2.java +++ b/src/main/java/techreborn/compat/recipes/RecipesIC2.java @@ -23,6 +23,8 @@ import techreborn.util.CraftingHelper; import techreborn.util.LogHelper; import techreborn.util.RecipeRemover; import techreborn.items.ItemParts; +import techreborn.items.ItemIngots; +import techreborn.items.ItemDusts; public class RecipesIC2 { public static ConfigTechReborn config; @@ -406,7 +408,92 @@ public class RecipesIC2 { 'L', IC2Items.getItem("lapotronCrystal"), 'P', IC2Items.getItem("iridiumPlate") }); + + CraftingHelper.addShapedOreRecipe(new ItemStack(ModItems.lapotronicOrb), + new Object[] + {"LLL", "LPL", "LLL", + 'L', IC2Items.getItem("lapotronCrystal"), + 'P', IC2Items.getItem("iridiumPlate") + }); + + CraftingHelper.addShapedOreRecipe(ItemParts.getPartByName("tungstenGrindingHead", 2), + new Object[] + {"TST", "SBS", "TST", + 'T', "plateTungsten", + 'S', "plateSteel", + 'B', "blockSteel" + }); + + CraftingHelper.addShapedOreRecipe(new ItemStack(ModBlocks.MatterFabricator), + new Object[] + {"ETE", "AOA", "ETE", + 'E', ItemParts.getPartByName("energyFlowCircuit"), + 'T', IC2Items.getItem("teleporter"), + 'A', ModBlocks.HighAdvancedMachineBlock, + 'O', ModItems.lapotronicOrb + }); + + CraftingHelper.addShapedOreRecipe(ItemParts.getPartByName("iridiumAlloyIngot"), + new Object[] + {"IAI", "ADA", "IAI", + 'I', ItemIngots.getIngotByName("iridium"), + 'D', ItemDusts.getDustByName("diamond"), + 'A', IC2Items.getItem("advancedAlloy") + }); + CraftingHelper.addShapedOreRecipe(ItemParts.getPartByName("energyFlowCircuit", 4), + new Object[] + {"ATA", "LIL", "ATA", + 'T', "plateTungsten", + 'I', IC2Items.getItem("iridiumPlate"), + 'A', IC2Items.getItem("advancedCircuit"), + 'L', IC2Items.getItem("lapotronCrystal") + }); + + CraftingHelper.addShapedOreRecipe(new ItemStack(ModBlocks.Supercondensator), + new Object[] + {"EOE", "SAS", "EOE", + 'E', ItemParts.getPartByName("energyFlowCircuit"), + 'O', ModItems.lapotronicOrb, + 'S', ItemParts.getPartByName("superconductor"), + 'A', ModBlocks.HighAdvancedMachineBlock + }); + + //TODO: change to lappack + //CraftingHelper.addShapedOreRecipe(new ItemStack(ModItems.lapotronpack), + // new Object[] + // {"EOE", "SLS", "EOE", + // 'E', ItemParts.getPartByName("energyFlowCircuit"), + // 'O', ModItems.lapotronicOrb, + // 'S', ItemParts.getPartByName("superconductor"), + // 'L', IC2Items.getItem("Energypack") + // }); + + //CraftingHelper.addShapedOreRecipe(ItemParts.getPartByName("superconductor", 4), + // new Object[] + // {"CCC", "TIT", "EEE", + // 'E', ItemParts.getPartByName("energyFlowCircuit"), + // 'C', IC2Items.getItem("coolantSix"), + // 'T', "ingotTungsten", + // 'I', IC2Items.getItem("iridiumPlate") + // }); + + CraftingHelper.addShapedOreRecipe(ItemParts.getPartByName("superconductor", 4), + new Object[] + {"CCC", "TIT", "EEE", + 'E', ItemParts.getPartByName("energyFlowCircuit"), + 'C', ItemParts.getPartByName("heliumCoolantSimple"), + 'T', "ingotTungsten", + 'I', IC2Items.getItem("iridiumPlate") + }); + + CraftingHelper.addShapedOreRecipe(ItemParts.getPartByName("diamondSawBlade"), + new Object[] + {"DSD", "S S", "DSD", + 'S', "plateSteel", + 'D', ItemDusts.getDustByName("diamond") + }); + LogHelper.info("Added Expensive IC2 Recipes"); } From 601812a10c5b80f906dc61ee2f4ffeaad0b68e0c Mon Sep 17 00:00:00 2001 From: joflashstudios Date: Sun, 7 Jun 2015 23:55:58 -0400 Subject: [PATCH 3/3] Added OreDrop API --- src/main/java/techreborn/blocks/OreDrop.java | 75 +++++++++++++++++++ .../java/techreborn/blocks/OreDropSet.java | 37 +++++++++ .../techreborn/config/ConfigTechReborn.java | 11 +++ .../assets/techreborn/lang/en_US.lang | 3 + 4 files changed, 126 insertions(+) create mode 100644 src/main/java/techreborn/blocks/OreDrop.java create mode 100644 src/main/java/techreborn/blocks/OreDropSet.java diff --git a/src/main/java/techreborn/blocks/OreDrop.java b/src/main/java/techreborn/blocks/OreDrop.java new file mode 100644 index 000000000..c4748fe3b --- /dev/null +++ b/src/main/java/techreborn/blocks/OreDrop.java @@ -0,0 +1,75 @@ +package techreborn.blocks; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MathHelper; +import techreborn.init.ModBlocks; +import techreborn.config.ConfigTechReborn; + +public class OreDrop +{ + public OreDrop(ItemStack drop) + { + this.drop = drop; + this.count = drop.stackSize; + this.baseChance = 100; + } + + public OreDrop(ItemStack drop, Integer baseChance) + { + this.drop = drop; + this.count = drop.stackSize; + this.baseChance = baseChance; + } + + public ItemStack getDrops(int fortuneLevel, Random random) + { + int count; + if (baseChance == 100) //This always drops. Use vanilla fortune rules. + { + count = calculateFortuneMulti(fortuneLevel, random); + } else if (calculateFortuneSingle(fortuneLevel, random)) //This has a chance to drop. Increase that chance with fortune. + { + count = this.count; + } + else + { + count = 0; + } + return new ItemStack(drop.getItem(), count, drop.getItemDamage()); + } + + //Refer to http://minecraft.gamepedia.com/Enchanting#Fortune + private int calculateFortuneMulti(int level, Random random) + { + int chanceOfEachBonus = 100 / (level + 2); + int roll = random.nextInt(100); + + if (roll <= chanceOfEachBonus * level) //If level = 0, this is always false + { + return (roll / chanceOfEachBonus) + 2; + } + else + { + return 1; + } + } + + //Each fortune level increases probability by 50% of base, up to a limit of 100%. + //So, if base is 5% and we have Fortune III, chance is 5% + (3 * 2.5%) = 12.5% + private boolean calculateFortuneSingle(int level, Random random) + { + double modifier = ConfigTechReborn.FortuneSecondaryOreMultiplierPerLevel * level; + double total = baseChance + (baseChance * modifier); + int roll = random.nextInt(100); + return roll <= total; + } + + public ItemStack drop; + public Integer baseChance; + public Integer count; +} \ No newline at end of file diff --git a/src/main/java/techreborn/blocks/OreDropSet.java b/src/main/java/techreborn/blocks/OreDropSet.java new file mode 100644 index 000000000..1171a6ea3 --- /dev/null +++ b/src/main/java/techreborn/blocks/OreDropSet.java @@ -0,0 +1,37 @@ +package techreborn.blocks; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MathHelper; +import techreborn.init.ModBlocks; +import techreborn.config.ConfigTechReborn; +import net.minecraft.block.Block; + +public class OreDropSet +{ + public OreDropSet(OreDrop primary, OreDrop... secondaries) + { + this.primary = primary; + this.secondaries = secondaries; + } + + public ArrayList drop(int fortune, Random random) + { + ArrayList drops = new ArrayList(); + + for (OreDrop drop : secondaries) + { + drops.add(drop.getDrops(fortune, random)); + } + + drops.add(primary.getDrops(fortune, random)); + return drops; + } + + public OreDrop primary; + public OreDrop[] secondaries; +} \ No newline at end of file diff --git a/src/main/java/techreborn/config/ConfigTechReborn.java b/src/main/java/techreborn/config/ConfigTechReborn.java index 83e13d8ab..ba09b5d36 100644 --- a/src/main/java/techreborn/config/ConfigTechReborn.java +++ b/src/main/java/techreborn/config/ConfigTechReborn.java @@ -61,6 +61,8 @@ public class ConfigTechReborn { public static boolean SodaliteOreTrue; public static int SodaliteOreRare; + public static double FortuneSecondaryOreMultiplierPerLevel; + // Power public static int ThermalGenertaorOutput; public static int CentrifugeInputTick; @@ -438,6 +440,15 @@ public class ConfigTechReborn { .translateToLocal("config.techreborn.silverOre.rare.tooltip")) .getInt(); + FortuneSecondaryOreMultiplierPerLevel = config + .get(CATEGORY_WORLD, + StatCollector + .translateToLocal("config.techreborn.fortuneSecondaryOreMultiplierPerLevel"), + 0.5, + StatCollector + .translateToLocal("config.techreborn.fortuneSecondaryOreMultiplierPerLevel.tooltip")) + .getDouble(); + // Power ThermalGenertaorOutput = config .get(CATEGORY_POWER, diff --git a/src/main/resources/assets/techreborn/lang/en_US.lang b/src/main/resources/assets/techreborn/lang/en_US.lang index fa14d36be..f0b7f534d 100644 --- a/src/main/resources/assets/techreborn/lang/en_US.lang +++ b/src/main/resources/assets/techreborn/lang/en_US.lang @@ -710,6 +710,9 @@ config.techreborn.allow.olivineOre.tooltip=Decide whether Olivine Ore spawns or config.techreborn.allow.sodaliteOre=Allow Sodalite Ore config.techreborn.allow.sodaliteOre.tooltip=Decide whether Sodalite Ore spawns or not +config.techreborn.fortuneSecondaryOreMultiplierPerLevel=Fortune's Effect on Secondaries +config.techreborn.fortuneSecondaryOreMultiplierPerLevel.tooltip=How much of an increase should each level of fortune have on secondary ore drops? + config.techreborn.allowExpensiveMacerator=Allow Expensive Macerator config.techreborn.allowExpensiveMacerator.tooltip= config.techreborn.allowExpensiveDrill=Allow Expensive Drill