diff --git a/resources/assets/resonantinduction/textures/gui/gui_multimeter.png b/resources/assets/resonantinduction/textures/gui/gui_multimeter.png index d7719119..e9a16fbe 100644 Binary files a/resources/assets/resonantinduction/textures/gui/gui_multimeter.png and b/resources/assets/resonantinduction/textures/gui/gui_multimeter.png differ diff --git a/src/resonantinduction/battery/BlockBattery.java b/src/resonantinduction/battery/BlockBattery.java index b2185002..023c3c93 100644 --- a/src/resonantinduction/battery/BlockBattery.java +++ b/src/resonantinduction/battery/BlockBattery.java @@ -4,7 +4,6 @@ package resonantinduction.battery; import net.minecraft.block.ITileEntityProvider; -import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -12,6 +11,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.ForgeDirection; import resonantinduction.ResonantInduction; +import resonantinduction.api.IBattery; import resonantinduction.base.BlockBase; import resonantinduction.render.BlockRenderingHandler; import cpw.mods.fml.relauncher.Side; @@ -32,7 +32,7 @@ public class BlockBattery extends BlockBase implements ITileEntityProvider } @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityPlayer, int side, float par7, float par8, float par9) + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityPlayer, int side, float xClick, float yClick, float zClick) { if (entityPlayer.isSneaking()) { @@ -40,7 +40,61 @@ public class BlockBattery extends BlockBase implements ITileEntityProvider } else { + if (entityPlayer.getCurrentEquippedItem() != null) + { + if (entityPlayer.getCurrentEquippedItem().getItem() instanceof IBattery) + { + if (side != 0 && side != 1) + { + /** + * Place cells into block. 2 Dimensional Click Zone + */ + float xHit = 0; + float yHit = yClick; + if (side == 2 || side == 3) + { + xHit = xClick; + + if (side == 2) + { + xHit = 1 - xHit; + } + } + else if (side == 4 || side == 5) + { + xHit = zClick; + + if (side == 5) + { + xHit = 1 - xHit; + } + } + + // Convert to quadrant coords. + xHit -= 0.5f; + yHit -= 0.5f; + + // Quadrant 1 + if (xHit > 0 && yHit > 0) + { + + }// Quadrant 2 + if (xHit > 0 && yHit < 0) + { + + }// Quadrant 3 + if (xHit < 0 && yHit < 0) + { + + }// Quadrant 4 + if (xHit < 0 && yHit > 0) + { + + } + } + } + } } return true; diff --git a/src/resonantinduction/multimeter/GuiMultimeter.java b/src/resonantinduction/multimeter/GuiMultimeter.java index 1904d9fb..d56e532b 100644 --- a/src/resonantinduction/multimeter/GuiMultimeter.java +++ b/src/resonantinduction/multimeter/GuiMultimeter.java @@ -75,10 +75,10 @@ public class GuiMultimeter extends GuiContainer protected void drawGuiContainerForegroundLayer(int par1, int par2) { String s = this.tileEntity.getBlockType().getLocalizedName(); - this.fontRenderer.drawString(s, this.xSize / 2 - this.fontRenderer.getStringWidth(s) / 2, 6, 4210752); - this.fontRenderer.drawString("Energy: " + Math.round(this.tileEntity.getDetectedEnergy()) + " J", 35, 32, 4210752); - this.fontRenderer.drawString("Average Energy: " + Math.round(this.tileEntity.getAverageDetectedEnergy()) + " J", 35, 20, 4210752); - this.fontRenderer.drawString("Output Redstone If... ", 35, 46, 4210752); + this.fontRenderer.drawString(s, this.xSize / 2 - this.fontRenderer.getStringWidth(s) / 2, 15, 4210752); + this.fontRenderer.drawString("Average Energy: " + Math.round(this.tileEntity.getAverageDetectedEnergy()) + " J", 35, 25, 4210752); + this.fontRenderer.drawString("Energy: " + Math.round(this.tileEntity.getDetectedEnergy()) + " J", 35, 35, 4210752); + this.fontRenderer.drawString("Output Redstone If... ", 35, 54, 4210752); this.fontRenderer.drawString(this.tileEntity.getMode().display, 35, 65, 4210752); this.fontRenderer.drawString("KiloJoules", 35, 100, 4210752); @@ -95,12 +95,9 @@ public class GuiMultimeter extends GuiContainer GL11.glColor4f(1, 1, 1, 1); this.drawTexturedModalRect(this.containerWidth, this.containerHeight, 0, 0, this.xSize, this.ySize); - /* - * if (this.tileEntity.getMode() != DetectMode.NONE) { int length = (int) - * (Math.abs(this.tileEntity.getDetectedEnergy() - this.tileEntity.getLimit()) / - * this.tileEntity.getLimit()) * 110; this.drawTexturedModalRect(this.containerWidth + 13, - * this.containerHeight + 128 - length, 176, 0, 30, length); } - */ + int length = (int) (this.tileEntity.getDetectedEnergy() / this.tileEntity.getPeak()) * 117; + // length = 177; + this.drawTexturedModalRect(this.containerWidth + 13, this.containerHeight + 133 - length, 176, 117 - length, 30, length); } @Override diff --git a/src/resonantinduction/multimeter/TileEntityMultimeter.java b/src/resonantinduction/multimeter/TileEntityMultimeter.java index cf9f0ebe..4721e62a 100644 --- a/src/resonantinduction/multimeter/TileEntityMultimeter.java +++ b/src/resonantinduction/multimeter/TileEntityMultimeter.java @@ -37,6 +37,7 @@ public class TileEntityMultimeter extends TileEntityBase implements IPacketRecei } private DetectMode detectMode = DetectMode.NONE; + private float peakDetection; private float energyLimit; private float detectedEnergy; private float detectedAverageEnergy; @@ -52,6 +53,7 @@ public class TileEntityMultimeter extends TileEntityBase implements IPacketRecei float prevDetectedEnergy = this.detectedEnergy; this.detectedEnergy = this.doGetDetectedEnergy(); this.detectedAverageEnergy = (detectedAverageEnergy + this.detectedEnergy) / 2; + this.peakDetection = Math.max(peakDetection, this.detectedEnergy); boolean outputRedstone = false; @@ -193,4 +195,12 @@ public class TileEntityMultimeter extends TileEntityBase implements IPacketRecei return this.energyLimit; } + /** + * @return + */ + public float getPeak() + { + return this.peakDetection; + } + }