diff --git a/src/main/java/resonantinduction/electrical/battery/ItemBlockBattery.java b/src/main/java/resonantinduction/electrical/battery/ItemBlockBattery.java index 438b5a9f..66cc9365 100644 --- a/src/main/java/resonantinduction/electrical/battery/ItemBlockBattery.java +++ b/src/main/java/resonantinduction/electrical/battery/ItemBlockBattery.java @@ -33,6 +33,7 @@ public class ItemBlockBattery extends ItemBlock implements IEnergyItem, IVoltage @Override public void addInformation(ItemStack itemStack, EntityPlayer entityPlayer, List list, boolean par4) { + list.add("Tier: " + (getTier(itemStack) + 1)); String color = ""; long joules = this.getEnergy(itemStack); @@ -168,7 +169,7 @@ public class ItemBlockBattery extends ItemBlock implements IEnergyItem, IVoltage @Override public long getEnergyCapacity(ItemStack theItem) { - return TileBattery.getEnergyForTier(theItem.getItemDamage() + 1); + return TileBattery.getEnergyForTier(getTier(theItem)); } public long getTransferRate(ItemStack itemStack) @@ -182,9 +183,8 @@ public class ItemBlockBattery extends ItemBlock implements IEnergyItem, IVoltage { for (byte tier = 0; tier < 3; tier++) { - par3List.add(setTier(new ItemStack(this, 1), tier)); - par3List.add(setTier(CompatibilityModule.getItemWithCharge(new ItemStack(this, 1, 0), this.getEnergyCapacity(new ItemStack(this, 1, 0))), tier)); + par3List.add(CompatibilityModule.getItemWithCharge(setTier(new ItemStack(this), tier), 0)); + par3List.add(CompatibilityModule.getItemWithCharge(setTier(new ItemStack(this), tier), TileBattery.getEnergyForTier(tier))); } } - } diff --git a/src/main/java/resonantinduction/electrical/generator/TileGenerator.java b/src/main/java/resonantinduction/electrical/generator/TileGenerator.java index 570e1efe..85c81058 100644 --- a/src/main/java/resonantinduction/electrical/generator/TileGenerator.java +++ b/src/main/java/resonantinduction/electrical/generator/TileGenerator.java @@ -45,25 +45,26 @@ public class TileGenerator extends TileElectrical implements IMechanical, IRotat } else { - produceMechanical(new Vector3(this).modifyPositionFromSide(this.getDirection())); - produceMechanical(new Vector3(this).modifyPositionFromSide(this.getDirection().getOpposite())); + produceMechanical(this.getDirection()); + produceMechanical(this.getDirection().getOpposite()); } } } - public void produceMechanical(Vector3 outputVector) + public void produceMechanical(ForgeDirection outputDir) { + Vector3 outputVector = new Vector3(this).modifyPositionFromSide(outputDir); TileEntity mechanical = outputVector.getTileEntity(worldObj); if (mechanical instanceof IMechanical) { - long extract = energy.extractEnergy(); - + long extract = energy.extractEnergy(false); + if (extract > 0) { float angularVelocity = extract / torqueRatio; long torque = (long) (extract / angularVelocity); - ((IMechanical) mechanical).onReceiveEnergy(this.getDirection().getOpposite(), torque, angularVelocity, true); + energy.extractEnergy(((IMechanical) mechanical).onReceiveEnergy(outputDir.getOpposite(), torque, angularVelocity, true), true); } } } diff --git a/src/main/java/resonantinduction/mechanical/gear/PartGear.java b/src/main/java/resonantinduction/mechanical/gear/PartGear.java index 70ba68d7..7b601ca6 100644 --- a/src/main/java/resonantinduction/mechanical/gear/PartGear.java +++ b/src/main/java/resonantinduction/mechanical/gear/PartGear.java @@ -4,6 +4,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.MovingObjectPosition; import resonantinduction.mechanical.Mechanical; +import resonantinduction.mechanical.network.IMechanicalConnector; import resonantinduction.mechanical.network.PartMechanical; import codechicken.lib.vec.Vector3; import cpw.mods.fml.relauncher.Side; @@ -15,7 +16,7 @@ import cpw.mods.fml.relauncher.SideOnly; * @author Calclavia * */ -public class PartGear extends PartMechanical +public class PartGear extends PartMechanical implements IMechanicalConnector { private int manualCrankTime = 0; @@ -30,7 +31,7 @@ public class PartGear extends PartMechanical manualCrankTime--; } } - + super.update(); } diff --git a/src/main/java/resonantinduction/mechanical/network/PartMechanical.java b/src/main/java/resonantinduction/mechanical/network/PartMechanical.java index 556be685..a929598f 100644 --- a/src/main/java/resonantinduction/mechanical/network/PartMechanical.java +++ b/src/main/java/resonantinduction/mechanical/network/PartMechanical.java @@ -269,11 +269,11 @@ public abstract class PartMechanical extends JCuboidPart implements JNormalOcclu { if (isPositive) { - ((PartMechanical) neighbor).isClockwise = isClockwise; + ((PartMechanical) neighbor).setClockwise(isClockwise); } else { - ((PartMechanical) neighbor).isClockwise = !isClockwise; + ((PartMechanical) neighbor).setClockwise(!isClockwise); } neighbor.markRotationUpdate = true;