diff --git a/bin/minecraft/resources/mekanism/textures/items.png b/bin/minecraft/resources/mekanism/textures/items.png index a907f2d2a..73ca9b012 100644 Binary files a/bin/minecraft/resources/mekanism/textures/items.png and b/bin/minecraft/resources/mekanism/textures/items.png differ diff --git a/src/minecraft/mekanism/api/Tier.java b/src/minecraft/mekanism/api/Tier.java index 3120f84e4..18501c627 100644 --- a/src/minecraft/mekanism/api/Tier.java +++ b/src/minecraft/mekanism/api/Tier.java @@ -14,13 +14,14 @@ public final class Tier */ public static enum EnergyCubeTier { - BASIC("Basic", 1000000, 10000), - ADVANCED("Advanced", 2500000, 25000), - ELITE("Elite", 5000000, 50000); + BASIC("Basic", 1000000, 10000, 128), + ADVANCED("Advanced", 2500000, 25000, 256), + ELITE("Elite", 5000000, 50000, 512); public double MAX_ELECTRICITY; public double VOLTAGE; public int DIVIDER; + public int OUTPUT; public String name; public static EnergyCubeTier getFromName(String tierName) @@ -37,11 +38,12 @@ public final class Tier return BASIC; } - private EnergyCubeTier(String s, double maxEnergy, int divider) + private EnergyCubeTier(String s, double maxEnergy, int divider, int out) { name = s; MAX_ELECTRICITY = maxEnergy; DIVIDER = divider; + OUTPUT = out; } } diff --git a/src/minecraft/mekanism/common/ItemBlockEnergyCube.java b/src/minecraft/mekanism/common/ItemBlockEnergyCube.java index b500031ce..cca192ff6 100644 --- a/src/minecraft/mekanism/common/ItemBlockEnergyCube.java +++ b/src/minecraft/mekanism/common/ItemBlockEnergyCube.java @@ -1,5 +1,7 @@ package mekanism.common; +import ic2.api.ICustomElectricItem; + import java.util.List; import mekanism.api.IEnergyCube; @@ -16,7 +18,7 @@ import universalelectricity.core.electricity.ElectricInfo; import universalelectricity.core.electricity.ElectricInfo.ElectricUnit; import universalelectricity.core.implement.IItemElectric; -public class ItemBlockEnergyCube extends ItemBlock implements IItemElectric, IEnergyCube +public class ItemBlockEnergyCube extends ItemBlock implements IItemElectric, IEnergyCube, ICustomElectricItem { public Block metaBlock; @@ -164,6 +166,12 @@ public class ItemBlockEnergyCube extends ItemBlock implements IItemElectric, IEn TileEntityEnergyCube tileEntity = (TileEntityEnergyCube)world.getBlockTileEntity(x, y, z); tileEntity.tier = ((IEnergyCube)stack.getItem()).getTier(stack); tileEntity.electricityStored = getJoules(stack); + tileEntity.output = tileEntity.tier.OUTPUT; + + if(tileEntity.powerProvider != null) + { + tileEntity.powerProvider.configure(0, 0, 100, 0, (int)(tileEntity.tier.MAX_ELECTRICITY*Mekanism.TO_BC)); + } } return place; @@ -195,4 +203,79 @@ public class ItemBlockEnergyCube extends ItemBlock implements IItemElectric, IEn itemstack.stackTagCompound.setString("tier", tier.name); } + + @Override + public int charge(ItemStack itemStack, int amount, int tier, boolean ignoreTransferLimit, boolean simulate) + { + double givenEnergy = amount*Mekanism.FROM_IC2; + double energyNeeded = getTier(itemStack).MAX_ELECTRICITY-getJoules(itemStack); + double energyToStore = Math.min(Math.min(amount, getTier(itemStack).MAX_ELECTRICITY*0.01), energyNeeded); + + if(!simulate) + { + setJoules(getJoules(itemStack) + energyToStore, itemStack); + } + return (int)(energyToStore*Mekanism.TO_IC2); + } + + @Override + public int discharge(ItemStack itemStack, int amount, int tier, boolean ignoreTransferLimit, boolean simulate) + { + double energyWanted = amount*Mekanism.FROM_IC2; + double energyToGive = Math.min(Math.min(energyWanted, getTier(itemStack).MAX_ELECTRICITY*0.01), getJoules(itemStack)); + + if(!simulate) + { + setJoules(getJoules(itemStack) - energyToGive, itemStack); + } + return (int)(energyToGive*Mekanism.TO_IC2); + } + + @Override + public boolean canUse(ItemStack itemStack, int amount) + { + return getJoules(itemStack) >= amount*Mekanism.FROM_IC2; + } + + @Override + public boolean canShowChargeToolTip(ItemStack itemStack) + { + return false; + } + + @Override + public boolean canProvideEnergy() + { + return canProduceElectricity(); + } + + @Override + public int getChargedItemId() + { + return itemID; + } + + @Override + public int getEmptyItemId() + { + return itemID; + } + + @Override + public int getMaxCharge() + { + return 0; + } + + @Override + public int getTier() + { + return 3; + } + + @Override + public int getTransferLimit() + { + return (int)(getVoltage()*Mekanism.TO_IC2); + } } diff --git a/src/minecraft/mekanism/common/ItemClump.java b/src/minecraft/mekanism/common/ItemClump.java index e170339b7..e3eacd90d 100644 --- a/src/minecraft/mekanism/common/ItemClump.java +++ b/src/minecraft/mekanism/common/ItemClump.java @@ -8,7 +8,7 @@ import net.minecraft.item.ItemStack; public class ItemClump extends ItemMekanism { public static String[] en_USNames = {"Iron", "Gold", "Platinum", - "Copper", "Tin"}; + "Copper", "Tin", "Silver"}; public ItemClump(int id) { @@ -27,6 +27,7 @@ public class ItemClump extends ItemMekanism case 2: return 210; case 3: return 211; case 4: return 212; + case 5: return 214; default: return 0; } } @@ -34,7 +35,7 @@ public class ItemClump extends ItemMekanism @Override public void getSubItems(int id, CreativeTabs tabs, List itemList) { - for (int counter = 0; counter <= 4; ++counter) + for (int counter = 0; counter <= 5; ++counter) { itemList.add(new ItemStack(this, 1, counter)); } diff --git a/src/minecraft/mekanism/common/ItemDirtyDust.java b/src/minecraft/mekanism/common/ItemDirtyDust.java index 34ccc63b2..b773ff7c5 100644 --- a/src/minecraft/mekanism/common/ItemDirtyDust.java +++ b/src/minecraft/mekanism/common/ItemDirtyDust.java @@ -8,7 +8,7 @@ import net.minecraft.item.ItemStack; public class ItemDirtyDust extends ItemMekanism { public static String[] en_USNames = {"Iron", "Gold", "Platinum", - "Copper", "Tin"}; + "Copper", "Tin", "Silver"}; public ItemDirtyDust(int id) { @@ -27,6 +27,7 @@ public class ItemDirtyDust extends ItemMekanism case 2: return 194; case 3: return 195; case 4: return 196; + case 5: return 198; default: return 0; } } @@ -34,7 +35,7 @@ public class ItemDirtyDust extends ItemMekanism @Override public void getSubItems(int id, CreativeTabs tabs, List itemList) { - for (int counter = 0; counter <= 4; ++counter) + for (int counter = 0; counter <= 5; ++counter) { itemList.add(new ItemStack(this, 1, counter)); } diff --git a/src/minecraft/mekanism/common/ItemDust.java b/src/minecraft/mekanism/common/ItemDust.java index 431968b9c..0bfcc394e 100644 --- a/src/minecraft/mekanism/common/ItemDust.java +++ b/src/minecraft/mekanism/common/ItemDust.java @@ -9,7 +9,7 @@ public class ItemDust extends ItemMekanism { public static String[] en_USNames = {"Iron", "Gold", "Platinum", "Obsidian", "Diamond", "Steel", - "Copper", "Tin"}; + "Copper", "Tin", "Silver"}; public ItemDust(int id) { @@ -31,6 +31,7 @@ public class ItemDust extends ItemMekanism case 5: return 245; case 6: return 243; case 7: return 244; + case 8: return 246; default: return 0; } } @@ -38,7 +39,7 @@ public class ItemDust extends ItemMekanism @Override public void getSubItems(int id, CreativeTabs tabs, List itemList) { - for (int counter = 0; counter <= 7; ++counter) + for (int counter = 0; counter <= 8; ++counter) { itemList.add(new ItemStack(this, 1, counter)); } diff --git a/src/minecraft/mekanism/common/ItemEnergized.java b/src/minecraft/mekanism/common/ItemEnergized.java index a26817b3a..40571d544 100644 --- a/src/minecraft/mekanism/common/ItemEnergized.java +++ b/src/minecraft/mekanism/common/ItemEnergized.java @@ -1,5 +1,7 @@ package mekanism.common; +import ic2.api.ICustomElectricItem; + import java.util.List; import net.minecraft.creativetab.CreativeTabs; @@ -13,7 +15,7 @@ import universalelectricity.core.electricity.ElectricInfo; import universalelectricity.core.electricity.ElectricInfo.ElectricUnit; import universalelectricity.core.implement.IItemElectric; -public class ItemEnergized extends ItemMekanism implements IItemElectric +public class ItemEnergized extends ItemMekanism implements IItemElectric, ICustomElectricItem { /** The maximum amount of energy this item can hold. */ public double MAX_ELECTRICITY; @@ -162,4 +164,79 @@ public class ItemEnergized extends ItemMekanism implements IItemElectric { return true; } + + @Override + public int charge(ItemStack itemStack, int amount, int tier, boolean ignoreTransferLimit, boolean simulate) + { + double givenEnergy = amount*Mekanism.FROM_IC2; + double energyNeeded = MAX_ELECTRICITY-getJoules(itemStack); + double energyToStore = Math.min(Math.min(amount, MAX_ELECTRICITY*0.01), energyNeeded); + + if(!simulate) + { + setJoules(getJoules(itemStack) + energyToStore, itemStack); + } + return (int)(energyToStore*Mekanism.TO_IC2); + } + + @Override + public int discharge(ItemStack itemStack, int amount, int tier, boolean ignoreTransferLimit, boolean simulate) + { + double energyWanted = amount*Mekanism.FROM_IC2; + double energyToGive = Math.min(Math.min(energyWanted, MAX_ELECTRICITY*0.01), getJoules(itemStack)); + + if(!simulate) + { + setJoules(getJoules(itemStack) - energyToGive, itemStack); + } + return (int)(energyToGive*Mekanism.TO_IC2); + } + + @Override + public boolean canUse(ItemStack itemStack, int amount) + { + return getJoules(itemStack) >= amount*Mekanism.FROM_IC2; + } + + @Override + public boolean canShowChargeToolTip(ItemStack itemStack) + { + return false; + } + + @Override + public boolean canProvideEnergy() + { + return canProduceElectricity(); + } + + @Override + public int getChargedItemId() + { + return itemID; + } + + @Override + public int getEmptyItemId() + { + return itemID; + } + + @Override + public int getMaxCharge() + { + return (int)(MAX_ELECTRICITY*Mekanism.TO_IC2); + } + + @Override + public int getTier() + { + return 3; + } + + @Override + public int getTransferLimit() + { + return (int)(getVoltage()*Mekanism.TO_IC2); + } } diff --git a/src/minecraft/mekanism/common/Mekanism.java b/src/minecraft/mekanism/common/Mekanism.java index 8ff69bbe2..ed7f0f593 100644 --- a/src/minecraft/mekanism/common/Mekanism.java +++ b/src/minecraft/mekanism/common/Mekanism.java @@ -49,7 +49,7 @@ import cpw.mods.fml.server.FMLServerHandler; * @author AidanBrady * */ -@Mod(modid = "Mekanism", name = "Mekanism", version = "5.2.2") +@Mod(modid = "Mekanism", name = "Mekanism", version = "5.2.3") @NetworkMod(channels = {"Mekanism"}, clientSideRequired = true, serverSideRequired = false, packetHandler = PacketHandler.class) public class Mekanism { @@ -71,7 +71,7 @@ public class Mekanism public static Configuration configuration; /** Mekanism version number */ - public static Version versionNumber = new Version(5, 2, 2); + public static Version versionNumber = new Version(5, 2, 3); /** Map of Teleporter info. */ public static Map> teleporters = new HashMap>(); @@ -423,6 +423,7 @@ public class Mekanism LanguageRegistry.instance().addStringLocalization("item.steelDust.name", "Steel Dust"); LanguageRegistry.instance().addStringLocalization("item.copperDust.name", "Copper Dust"); LanguageRegistry.instance().addStringLocalization("item.tinDust.name", "Tin Dust"); + LanguageRegistry.instance().addStringLocalization("item.silverDust.name", "Silver Dust"); //Localization for Clump LanguageRegistry.instance().addStringLocalization("item.ironClump.name", "Iron Clump"); @@ -430,6 +431,7 @@ public class Mekanism LanguageRegistry.instance().addStringLocalization("item.platinumClump.name", "Platinum Clump"); LanguageRegistry.instance().addStringLocalization("item.copperClump.name", "Copper Clump"); LanguageRegistry.instance().addStringLocalization("item.tinClump.name", "Tin Clump"); + LanguageRegistry.instance().addStringLocalization("item.silverClump.name", "Silver Clump"); //Localization for Dirty Dust LanguageRegistry.instance().addStringLocalization("item.dirtyIronDust.name", "Dirty Iron Dust"); @@ -437,6 +439,7 @@ public class Mekanism LanguageRegistry.instance().addStringLocalization("item.dirtyPlatinumDust.name", "Dirty Platinum Dust"); LanguageRegistry.instance().addStringLocalization("item.dirtyCopperDust.name", "Dirty Copper Dust"); LanguageRegistry.instance().addStringLocalization("item.dirtyTinDust.name", "Dirty Tin Dust"); + LanguageRegistry.instance().addStringLocalization("item.dirtySilverDust.name", "Dirty Silver Dust"); //Localization for Ingot LanguageRegistry.instance().addStringLocalization("item.obsidianIngot.name", "Obsidian Ingot"); @@ -550,6 +553,7 @@ public class Mekanism OreDictionary.registerOre("dustSteel", new ItemStack(Dust, 1, 5)); OreDictionary.registerOre("dustCopper", new ItemStack(Dust, 1, 6)); OreDictionary.registerOre("dustTin", new ItemStack(Dust, 1, 7)); + OreDictionary.registerOre("dustSilver", new ItemStack(Dust, 1, 8)); OreDictionary.registerOre("ingotRefinedObsidian", new ItemStack(Ingot, 1, 0)); OreDictionary.registerOre("ingotPlatinum", new ItemStack(Ingot, 1, 1)); @@ -569,16 +573,19 @@ public class Mekanism OreDictionary.registerOre("dirtyDustPlatinum", new ItemStack(DirtyDust, 1, 2)); OreDictionary.registerOre("dirtyDustCopper", new ItemStack(DirtyDust, 1, 3)); OreDictionary.registerOre("dirtyDustTin", new ItemStack(DirtyDust, 1, 4)); + OreDictionary.registerOre("dirtyDustSilver", new ItemStack(DirtyDust, 1, 5)); OreDictionary.registerOre("clumpIron", new ItemStack(Clump, 1, 0)); OreDictionary.registerOre("clumpGold", new ItemStack(Clump, 1, 1)); OreDictionary.registerOre("clumpPlatinum", new ItemStack(Clump, 1, 2)); OreDictionary.registerOre("clumpCopper", new ItemStack(Clump, 1, 3)); OreDictionary.registerOre("clumpTin", new ItemStack(Clump, 1, 4)); + OreDictionary.registerOre("clumpSilver", new ItemStack(Clump, 1, 5)); OreDictionary.registerOre("orePlatinum", new ItemStack(OreBlock, 1, 0)); OreDictionary.registerOre("basicCircuit", new ItemStack(ControlCircuit)); + OreDictionary.registerOre("compressedCarbon", new ItemStack(CompressedCarbon)); if(hooks.IC2Loaded) { @@ -615,6 +622,11 @@ public class Mekanism RecipeHandler.addCrusherRecipe(ore, new ItemStack(DirtyDust, 1, 4)); } + for(ItemStack ore : OreDictionary.getOres("clumpSilver")) + { + RecipeHandler.addCrusherRecipe(ore, new ItemStack(DirtyDust, 1, 5)); + } + for(ItemStack ore : OreDictionary.getOres("dirtyDustIron")) { RecipeHandler.addEnrichmentChamberRecipe(ore, new ItemStack(Dust, 1, 0)); @@ -640,6 +652,11 @@ public class Mekanism RecipeHandler.addEnrichmentChamberRecipe(ore, new ItemStack(Dust, 1, 7)); } + for(ItemStack ore : OreDictionary.getOres("dirtyDustSilver")) + { + RecipeHandler.addEnrichmentChamberRecipe(ore, new ItemStack(Dust, 1, 8)); + } + for(ItemStack ore : OreDictionary.getOres("oreCopper")) { RecipeHandler.addEnrichmentChamberRecipe(ore, new ItemStack(Dust, 2, 6)); @@ -673,12 +690,13 @@ public class Mekanism try { for(ItemStack ore : OreDictionary.getOres("oreSilver")) { - RecipeHandler.addEnrichmentChamberRecipe(ore, MekanismUtils.getStackWithSize(OreDictionary.getOres("dustSilver").get(0), 2)); + RecipeHandler.addEnrichmentChamberRecipe(ore, new ItemStack(Dust, 2, 8)); + RecipeHandler.addPurificationChamberRecipe(ore, new ItemStack(Clump, 3, 5)); } for(ItemStack ore : OreDictionary.getOres("ingotSilver")) { - RecipeHandler.addCrusherRecipe(ore, MekanismUtils.getStackWithSize(OreDictionary.getOres("dustSilver").get(0), 1)); + RecipeHandler.addCrusherRecipe(ore, new ItemStack(Dust, 1, 8)); } } catch(Exception e) {} diff --git a/src/minecraft/mekanism/common/TileEntityAdvancedElectricMachine.java b/src/minecraft/mekanism/common/TileEntityAdvancedElectricMachine.java index ecc7ec82c..a4a627e51 100644 --- a/src/minecraft/mekanism/common/TileEntityAdvancedElectricMachine.java +++ b/src/minecraft/mekanism/common/TileEntityAdvancedElectricMachine.java @@ -109,7 +109,7 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM } } } - if(inventory[3].itemID == Item.redstone.itemID && electricityStored <= (MAX_ELECTRICITY-1000)) + if(inventory[3].itemID == Item.redstone.itemID && electricityStored+1000 <= currentMaxElectricity) { setJoules(electricityStored + 1000); --inventory[3].stackSize; diff --git a/src/minecraft/mekanism/common/TileEntityBasicMachine.java b/src/minecraft/mekanism/common/TileEntityBasicMachine.java index 3e827ddcd..8280f6108 100644 --- a/src/minecraft/mekanism/common/TileEntityBasicMachine.java +++ b/src/minecraft/mekanism/common/TileEntityBasicMachine.java @@ -95,7 +95,7 @@ public abstract class TileEntityBasicMachine extends TileEntityElectricBlock imp if(powerProvider != null) { - int received = (int)(powerProvider.useEnergy(0, (float)((currentMaxElectricity-electricityStored)*Mekanism.TO_BC), true)*10); + int received = (int)(powerProvider.useEnergy(0, (float)((currentMaxElectricity-electricityStored)*Mekanism.TO_BC), true)*Mekanism.FROM_BC); setJoules(electricityStored + received); } @@ -357,6 +357,12 @@ public abstract class TileEntityBasicMachine extends TileEntityElectricBlock imp @Override public void detach(IComputerAccess computer) {} + @Override + public int powerRequest() + { + return (int)(currentMaxElectricity-electricityStored); + } + @Override public ArrayList getSideData() { diff --git a/src/minecraft/mekanism/common/TileEntityCombiner.java b/src/minecraft/mekanism/common/TileEntityCombiner.java index c7703b6d5..d3fab2f8c 100644 --- a/src/minecraft/mekanism/common/TileEntityCombiner.java +++ b/src/minecraft/mekanism/common/TileEntityCombiner.java @@ -12,7 +12,7 @@ public class TileEntityCombiner extends TileEntityAdvancedElectricMachine { public TileEntityCombiner() { - super("Combiner.ogg", "Combiner", "/resources/mekanism/gui/GuiCombiner.png", 16, 1, 200, 1000, 200); + super("Combiner.ogg", "Combiner", "/resources/mekanism/gui/GuiCombiner.png", 16, 1, 200, 3200, 200); } @Override diff --git a/src/minecraft/mekanism/common/TileEntityCrusher.java b/src/minecraft/mekanism/common/TileEntityCrusher.java index 80fe07039..0eec20a7d 100644 --- a/src/minecraft/mekanism/common/TileEntityCrusher.java +++ b/src/minecraft/mekanism/common/TileEntityCrusher.java @@ -10,7 +10,7 @@ public class TileEntityCrusher extends TileEntityElectricMachine { public TileEntityCrusher() { - super("Crusher.ogg", "Crusher", "/resources/mekanism/gui/GuiCrusher.png", 16, 200, 1000); + super("Crusher.ogg", "Crusher", "/resources/mekanism/gui/GuiCrusher.png", 16, 200, 3200); } @Override diff --git a/src/minecraft/mekanism/common/TileEntityElectricBlock.java b/src/minecraft/mekanism/common/TileEntityElectricBlock.java index 996776141..eafcba0b3 100644 --- a/src/minecraft/mekanism/common/TileEntityElectricBlock.java +++ b/src/minecraft/mekanism/common/TileEntityElectricBlock.java @@ -30,7 +30,7 @@ public abstract class TileEntityElectricBlock extends TileEntityContainerBlock i * @param name - full name of this block * @param maxEnergy - how much energy this block can store */ - public TileEntityElectricBlock(String name, int maxEnergy) + public TileEntityElectricBlock(String name, double maxEnergy) { super(name); MAX_ELECTRICITY = maxEnergy; @@ -38,7 +38,7 @@ public abstract class TileEntityElectricBlock extends TileEntityContainerBlock i if(PowerFramework.currentFramework != null) { powerProvider = PowerFramework.currentFramework.createPowerProvider(); - powerProvider.configure(5, 2, 10, 1, maxEnergy/10); + powerProvider.configure(0, 0, 100, 0, (int)(maxEnergy*Mekanism.TO_BC)); } } @@ -117,7 +117,7 @@ public abstract class TileEntityElectricBlock extends TileEntityContainerBlock i @Override public int powerRequest() { - return getPowerProvider().getMaxEnergyReceived(); + return (int)(MAX_ELECTRICITY-electricityStored); } @Override diff --git a/src/minecraft/mekanism/common/TileEntityElectricMachine.java b/src/minecraft/mekanism/common/TileEntityElectricMachine.java index c37b85dbb..a62f9df17 100644 --- a/src/minecraft/mekanism/common/TileEntityElectricMachine.java +++ b/src/minecraft/mekanism/common/TileEntityElectricMachine.java @@ -85,7 +85,7 @@ public abstract class TileEntityElectricMachine extends TileEntityBasicMachine } } } - if(inventory[1].itemID == Item.redstone.itemID && electricityStored <= (currentMaxElectricity-1000)) + if(inventory[1].itemID == Item.redstone.itemID && electricityStored+1000 <= currentMaxElectricity) { setJoules(electricityStored + 1000); --inventory[1].stackSize; diff --git a/src/minecraft/mekanism/common/TileEntityEnergyCube.java b/src/minecraft/mekanism/common/TileEntityEnergyCube.java index 63f04e779..2e43cf3ff 100644 --- a/src/minecraft/mekanism/common/TileEntityEnergyCube.java +++ b/src/minecraft/mekanism/common/TileEntityEnergyCube.java @@ -47,31 +47,17 @@ public class TileEntityEnergyCube extends TileEntityElectricBlock implements IEn /** Output per tick this machine can transfer. */ public int output; - /** - * A block used to store and transfer electricity. - */ - public TileEntityEnergyCube() - { - this("Energy Cube", 0, 256); - } - /** * A block used to store and transfer electricity. * @param energy - maximum energy this block can hold. * @param i - output per tick this block can handle. */ - public TileEntityEnergyCube(String name, int maxEnergy, int i) + public TileEntityEnergyCube() { - super(name, maxEnergy); - - if(powerProvider != null) - { - powerProvider.configure(5, 2, 10, 1, maxEnergy/10); - } + super("Energy Cube", 0); ElectricityConnections.registerConnector(this, EnumSet.allOf(ForgeDirection.class)); inventory = new ItemStack[2]; - output = i; } @Override @@ -81,7 +67,7 @@ public class TileEntityEnergyCube extends TileEntityElectricBlock implements IEn if(powerProvider != null) { - int received = (int)(powerProvider.useEnergy(0, (float)((tier.MAX_ELECTRICITY-electricityStored)*Mekanism.TO_BC), true)*10); + int received = (int)(powerProvider.useEnergy(0, (float)((tier.MAX_ELECTRICITY-electricityStored)*Mekanism.TO_BC), true)*Mekanism.FROM_BC); setJoules(electricityStored + received); } @@ -160,7 +146,7 @@ public class TileEntityEnergyCube extends TileEntityElectricBlock implements IEn setJoules(electricityStored + gain); } } - else if(inventory[1].itemID == Item.redstone.itemID) + else if(inventory[1].itemID == Item.redstone.itemID && electricityStored+1000 <= tier.MAX_ELECTRICITY) { setJoules(electricityStored + 1000); --inventory[1].stackSize; @@ -191,10 +177,10 @@ public class TileEntityEnergyCube extends TileEntityElectricBlock implements IEn if(isPowerReceptor(tileEntity)) { IPowerReceptor receptor = (IPowerReceptor)tileEntity; - double electricityNeeded = Math.min(receptor.getPowerProvider().getMinEnergyReceived(), receptor.getPowerProvider().getMaxEnergyReceived())*Mekanism.FROM_BC; - float transferEnergy = (float)Math.max(Math.min(Math.min(electricityNeeded, electricityStored), 80000), 0); - receptor.getPowerProvider().receiveEnergy((float)(transferEnergy*Mekanism.FROM_BC), ForgeDirection.getOrientation(facing).getOpposite()); - setJoules(electricityStored - (int)transferEnergy); + double electricityNeeded = Math.min(receptor.powerRequest(), receptor.getPowerProvider().getMaxEnergyStored() - receptor.getPowerProvider().getEnergyStored())*Mekanism.FROM_BC; + float transferEnergy = (float)Math.min(electricityStored, Math.min(electricityNeeded, output)); + receptor.getPowerProvider().receiveEnergy((float)(transferEnergy*Mekanism.TO_BC), ForgeDirection.getOrientation(facing).getOpposite()); + setJoules(electricityStored - transferEnergy); } } } @@ -405,6 +391,7 @@ public class TileEntityEnergyCube extends TileEntityElectricBlock implements IEn super.readFromNBT(nbtTags); tier = EnergyCubeTier.getFromName(nbtTags.getString("tier")); + output = tier.OUTPUT; } @Override @@ -452,6 +439,12 @@ public class TileEntityEnergyCube extends TileEntityElectricBlock implements IEn return side.toForgeDirection() == ForgeDirection.getOrientation(facing); } + @Override + public int powerRequest() + { + return (int)(tier.MAX_ELECTRICITY-electricityStored); + } + @Override public ItemStack getWrenchDrop(EntityPlayer entityPlayer) { diff --git a/src/minecraft/mekanism/common/TileEntityEnrichmentChamber.java b/src/minecraft/mekanism/common/TileEntityEnrichmentChamber.java index d403cb8d0..151215f64 100644 --- a/src/minecraft/mekanism/common/TileEntityEnrichmentChamber.java +++ b/src/minecraft/mekanism/common/TileEntityEnrichmentChamber.java @@ -10,7 +10,7 @@ public class TileEntityEnrichmentChamber extends TileEntityElectricMachine { public TileEntityEnrichmentChamber() { - super("Chamber.ogg", "Enrichment Chamber", "/resources/mekanism/gui/GuiChamber.png", 16, 200, 1000); + super("Chamber.ogg", "Enrichment Chamber", "/resources/mekanism/gui/GuiChamber.png", 16, 200, 3200); } @Override diff --git a/src/minecraft/mekanism/common/TileEntityMetallurgicInfuser.java b/src/minecraft/mekanism/common/TileEntityMetallurgicInfuser.java index 1470da63d..302ccf702 100644 --- a/src/minecraft/mekanism/common/TileEntityMetallurgicInfuser.java +++ b/src/minecraft/mekanism/common/TileEntityMetallurgicInfuser.java @@ -86,7 +86,7 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem public TileEntityMetallurgicInfuser() { - super("Metallurgic Infuser", 10000); + super("Metallurgic Infuser", 3200); sideOutputs.add(new SideData(EnumColor.GREY, 0, 0)); sideOutputs.add(new SideData(EnumColor.ORANGE, 0, 1)); @@ -122,7 +122,7 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem if(powerProvider != null) { - int received = (int)(powerProvider.useEnergy(0, (float)((currentMaxElectricity-electricityStored)*Mekanism.TO_BC), true)*10); + int received = (int)(powerProvider.useEnergy(0, (float)((currentMaxElectricity-electricityStored)*Mekanism.TO_BC), true)*Mekanism.FROM_BC); setJoules(electricityStored + received); } @@ -187,7 +187,7 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem } } } - if(inventory[4].itemID == Item.redstone.itemID && electricityStored <= (currentMaxElectricity-1000)) + if(inventory[4].itemID == Item.redstone.itemID && electricityStored+1000 <= currentMaxElectricity) { setJoules(electricityStored + 1000); --inventory[4].stackSize; @@ -644,6 +644,12 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem return (int)(rejects*Mekanism.TO_IC2); } + @Override + public int powerRequest() + { + return (int)(currentMaxElectricity-electricityStored); + } + @Override public ArrayList getSideData() { diff --git a/src/minecraft/mekanism/common/TileEntityPlatinumCompressor.java b/src/minecraft/mekanism/common/TileEntityPlatinumCompressor.java index 67f84212e..826f64f91 100644 --- a/src/minecraft/mekanism/common/TileEntityPlatinumCompressor.java +++ b/src/minecraft/mekanism/common/TileEntityPlatinumCompressor.java @@ -11,7 +11,7 @@ public class TileEntityPlatinumCompressor extends TileEntityAdvancedElectricMach { public TileEntityPlatinumCompressor() { - super("Compressor.ogg", "Platinum Compressor", "/resources/mekanism/gui/GuiCompressor.png", 16, 1, 200, 1000, 200); + super("Compressor.ogg", "Platinum Compressor", "/resources/mekanism/gui/GuiCompressor.png", 16, 1, 200, 3200, 200); } @Override diff --git a/src/minecraft/mekanism/common/TileEntitySmeltingFactory.java b/src/minecraft/mekanism/common/TileEntitySmeltingFactory.java index a62accf19..f91803f70 100644 --- a/src/minecraft/mekanism/common/TileEntitySmeltingFactory.java +++ b/src/minecraft/mekanism/common/TileEntitySmeltingFactory.java @@ -59,7 +59,7 @@ public class TileEntitySmeltingFactory extends TileEntityElectricBlock implement public int TICKS_REQUIRED = 200; /** How much energy each operation consumes per tick. */ - public int ENERGY_PER_TICK = 20; + public int ENERGY_PER_TICK = 16; /** How many ticks it takes, currently, to run an operation. */ public int currentTicksRequired; @@ -88,7 +88,7 @@ public class TileEntitySmeltingFactory extends TileEntityElectricBlock implement public TileEntitySmeltingFactory(SmeltingFactoryTier type) { - super(type.name + " Smelting Factory", type.processes*1000); + super(type.name + " Smelting Factory", type.processes*3200); ElectricityConnections.registerConnector(this, EnumSet.allOf(ForgeDirection.class)); tier = type; currentTicksRequired = TICKS_REQUIRED; @@ -115,7 +115,7 @@ public class TileEntitySmeltingFactory extends TileEntityElectricBlock implement if(powerProvider != null) { - int received = (int)(powerProvider.useEnergy(0, (float)((currentMaxElectricity-electricityStored)*Mekanism.TO_BC), true)*10); + int received = (int)(powerProvider.useEnergy(0, (float)((currentMaxElectricity-electricityStored)*Mekanism.TO_BC), true)*Mekanism.FROM_BC); setJoules(electricityStored + received); } @@ -188,7 +188,7 @@ public class TileEntitySmeltingFactory extends TileEntityElectricBlock implement } } } - if(inventory[1].itemID == Item.redstone.itemID && electricityStored <= (currentMaxElectricity-1000)) + if(inventory[1].itemID == Item.redstone.itemID && electricityStored+1000 <= currentMaxElectricity) { setJoules(electricityStored + 1000); --inventory[1].stackSize; @@ -667,6 +667,12 @@ public class TileEntitySmeltingFactory extends TileEntityElectricBlock implement return (int)(rejects*Mekanism.TO_IC2); } + @Override + public int powerRequest() + { + return (int)(currentMaxElectricity-electricityStored); + } + @Override public ArrayList getSideData() { diff --git a/src/minecraft/mekanism/common/TileEntityTeleporter.java b/src/minecraft/mekanism/common/TileEntityTeleporter.java index 24c226ddb..791b87bae 100644 --- a/src/minecraft/mekanism/common/TileEntityTeleporter.java +++ b/src/minecraft/mekanism/common/TileEntityTeleporter.java @@ -166,7 +166,7 @@ public class TileEntityTeleporter extends TileEntityElectricBlock implements IEn } } } - if(inventory[0].itemID == Item.redstone.itemID && electricityStored <= (MAX_ELECTRICITY-1000)) + if(inventory[0].itemID == Item.redstone.itemID && electricityStored+1000 <= MAX_ELECTRICITY) { setJoules(electricityStored + 1000); --inventory[0].stackSize; diff --git a/src/minecraft/mekanism/common/TileEntityTheoreticalElementizer.java b/src/minecraft/mekanism/common/TileEntityTheoreticalElementizer.java index b68bc3948..a50cf9bb9 100644 --- a/src/minecraft/mekanism/common/TileEntityTheoreticalElementizer.java +++ b/src/minecraft/mekanism/common/TileEntityTheoreticalElementizer.java @@ -12,7 +12,7 @@ public class TileEntityTheoreticalElementizer extends TileEntityAdvancedElectric { public TileEntityTheoreticalElementizer() { - super("Elementizer.ogg", "Theoretical Elementizer", "/resources/mekanism/gui/GuiElementizer.png", 25, 1, 1000, 10000, 1000); + super("Elementizer.ogg", "Theoretical Elementizer", "/resources/mekanism/gui/GuiElementizer.png", 24, 1, 1000, 4800, 1000); } @Override diff --git a/src/minecraft/mekanism/generators/common/MekanismGenerators.java b/src/minecraft/mekanism/generators/common/MekanismGenerators.java index 8624ff85e..3d234c307 100644 --- a/src/minecraft/mekanism/generators/common/MekanismGenerators.java +++ b/src/minecraft/mekanism/generators/common/MekanismGenerators.java @@ -19,7 +19,7 @@ import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; -@Mod(modid = "MekanismGenerators", name = "MekanismGenerators", version = "5.2.2", dependencies = "required-after:Mekanism") +@Mod(modid = "MekanismGenerators", name = "MekanismGenerators", version = "5.2.3", dependencies = "required-after:Mekanism") @NetworkMod(clientSideRequired = true, serverSideRequired = false) public class MekanismGenerators { diff --git a/src/minecraft/mekanism/generators/common/TileEntityElectrolyticSeparator.java b/src/minecraft/mekanism/generators/common/TileEntityElectrolyticSeparator.java index 73af8ce7d..2a2f22bbe 100644 --- a/src/minecraft/mekanism/generators/common/TileEntityElectrolyticSeparator.java +++ b/src/minecraft/mekanism/generators/common/TileEntityElectrolyticSeparator.java @@ -80,7 +80,7 @@ public class TileEntityElectrolyticSeparator extends TileEntityElectricBlock imp if(powerProvider != null) { - int received = (int)(powerProvider.useEnergy(0, (float)((MAX_ELECTRICITY-electricityStored)*Mekanism.TO_BC), true)*10); + int received = (int)(powerProvider.useEnergy(0, (float)((MAX_ELECTRICITY-electricityStored)*Mekanism.TO_BC), true)*Mekanism.FROM_BC); setJoules(electricityStored + received); } diff --git a/src/minecraft/mekanism/generators/common/TileEntityGenerator.java b/src/minecraft/mekanism/generators/common/TileEntityGenerator.java index 4292799b2..a0793cde7 100644 --- a/src/minecraft/mekanism/generators/common/TileEntityGenerator.java +++ b/src/minecraft/mekanism/generators/common/TileEntityGenerator.java @@ -29,6 +29,7 @@ import universalelectricity.core.implement.IVoltage; import universalelectricity.core.vector.Vector3; import buildcraft.api.power.IPowerProvider; import buildcraft.api.power.IPowerReceptor; +import buildcraft.api.power.PowerFramework; import buildcraft.api.power.PowerProvider; import dan200.computer.api.IComputerAccess; import dan200.computer.api.IPeripheral; @@ -58,6 +59,11 @@ public abstract class TileEntityGenerator extends TileEntityElectricBlock implem { super(name, maxEnergy); + if(powerProvider != null) + { + powerProvider.configure(0, 0, 0, 0, (int)(maxEnergy*Mekanism.TO_BC)); + } + output = out; isActive = false; } @@ -107,10 +113,10 @@ public abstract class TileEntityGenerator extends TileEntityElectricBlock implem if(isPowerReceptor(tileEntity)) { IPowerReceptor receptor = (IPowerReceptor)tileEntity; - double electricityNeeded = Math.min(receptor.getPowerProvider().getMinEnergyReceived(), receptor.getPowerProvider().getMaxEnergyReceived())*Mekanism.FROM_BC; - float transferEnergy = (float)Math.max(Math.min(Math.min(electricityNeeded, electricityStored), 80000), 0); + double electricityNeeded = Math.min(receptor.powerRequest(), receptor.getPowerProvider().getMaxEnergyStored() - receptor.getPowerProvider().getEnergyStored())*Mekanism.FROM_BC; + float transferEnergy = (float)Math.min(electricityStored, Math.min(electricityNeeded, output)); receptor.getPowerProvider().receiveEnergy((float)(transferEnergy*Mekanism.TO_BC), ForgeDirection.getOrientation(facing).getOpposite()); - setJoules(electricityStored - (int)transferEnergy); + setJoules(electricityStored - transferEnergy); } } } @@ -353,4 +359,10 @@ public abstract class TileEntityGenerator extends TileEntityElectricBlock implem nbtTags.setBoolean("isActive", isActive); } + + @Override + public int powerRequest() + { + return 0; + } } diff --git a/src/minecraft/mekanism/tools/common/MekanismTools.java b/src/minecraft/mekanism/tools/common/MekanismTools.java index eace25535..dc9f8fd6f 100644 --- a/src/minecraft/mekanism/tools/common/MekanismTools.java +++ b/src/minecraft/mekanism/tools/common/MekanismTools.java @@ -26,7 +26,7 @@ import cpw.mods.fml.common.network.NetworkMod; import cpw.mods.fml.common.registry.EntityRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; -@Mod(modid = "MekanismTools", name = "MekanismTools", version = "5.2.2", dependencies = "required-after:Mekanism") +@Mod(modid = "MekanismTools", name = "MekanismTools", version = "5.2.3", dependencies = "required-after:Mekanism") @NetworkMod(clientSideRequired = true, serverSideRequired = false) public class MekanismTools {