From c19d7809796c6fb0eaff4810ad420166d6636945 Mon Sep 17 00:00:00 2001 From: thatsIch Date: Fri, 3 Oct 2014 18:46:16 +0200 Subject: [PATCH] Added type safe addInformation for the AE base class of ItemBlock with `addCheckedInformation` Added type safe class reference for all energy cells --- src/main/java/appeng/block/AEBaseBlock.java | 2 +- src/main/java/appeng/block/AEBaseItemBlock.java | 17 ++++++++++++++--- .../appeng/block/AEBaseItemBlockChargeable.java | 17 ++++++++++------- .../block/networking/BlockEnergyCell.java | 3 ++- 4 files changed, 27 insertions(+), 12 deletions(-) diff --git a/src/main/java/appeng/block/AEBaseBlock.java b/src/main/java/appeng/block/AEBaseBlock.java index e9ab89ca..a34a3abc 100644 --- a/src/main/java/appeng/block/AEBaseBlock.java +++ b/src/main/java/appeng/block/AEBaseBlock.java @@ -736,7 +736,7 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature } - public Class getItemBlockClass() + public Class getItemBlockClass() { return AEBaseItemBlock.class; } diff --git a/src/main/java/appeng/block/AEBaseItemBlock.java b/src/main/java/appeng/block/AEBaseItemBlock.java index 6a11e0aa..caa638fc 100644 --- a/src/main/java/appeng/block/AEBaseItemBlock.java +++ b/src/main/java/appeng/block/AEBaseItemBlock.java @@ -19,13 +19,16 @@ import appeng.client.render.ItemRenderer; import appeng.me.helpers.IGridProxyable; import appeng.tile.AEBaseTile; import appeng.util.Platform; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; public class AEBaseItemBlock extends ItemBlock { final AEBaseBlock blockType; - public AEBaseItemBlock(Block id) { + public AEBaseItemBlock(Block id) + { super( id ); blockType = (AEBaseBlock) id; hasSubtypes = blockType.hasSubtypes; @@ -49,9 +52,17 @@ public class AEBaseItemBlock extends ItemBlock } @Override - public void addInformation(ItemStack is, EntityPlayer player, List lines, boolean advancedItemTooltips) + @SideOnly(Side.CLIENT) + @SuppressWarnings("unchecked") + public final void addInformation(ItemStack itemStack, EntityPlayer player, List toolTip, boolean advancedTooltips) { - blockType.addInformation( is, player, lines, advancedItemTooltips ); + this.addCheckedInformation( itemStack, player, toolTip, advancedTooltips ); + } + + @SideOnly(Side.CLIENT) + public void addCheckedInformation(ItemStack itemStack, EntityPlayer player, List toolTip, boolean advancedToolTips) + { + this.blockType.addInformation( itemStack, player, toolTip, advancedToolTips ); } @Override diff --git a/src/main/java/appeng/block/AEBaseItemBlockChargeable.java b/src/main/java/appeng/block/AEBaseItemBlockChargeable.java index ae1f7bb5..4ee0fcb9 100644 --- a/src/main/java/appeng/block/AEBaseItemBlockChargeable.java +++ b/src/main/java/appeng/block/AEBaseItemBlockChargeable.java @@ -3,6 +3,8 @@ package appeng.block; import java.text.MessageFormat; import java.util.List; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -22,11 +24,12 @@ public class AEBaseItemBlockChargeable extends AEBaseItemBlock implements IAEIte } @Override - public void addInformation(ItemStack is, EntityPlayer player, List lines, boolean advancedItemTooltips) + @SideOnly(Side.CLIENT) + public void addCheckedInformation(ItemStack itemStack, EntityPlayer player, List toolTip, boolean advancedTooltips) { - NBTTagCompound tag = is.getTagCompound(); + NBTTagCompound tag = itemStack.getTagCompound(); double internalCurrentPower = 0; - double internalMaxPower = getMax( is ); + double internalMaxPower = this.getMaxEnergyCapacity(); if ( tag != null ) { @@ -35,12 +38,12 @@ public class AEBaseItemBlockChargeable extends AEBaseItemBlock implements IAEIte double percent = internalCurrentPower / internalMaxPower; - lines.add( GuiText.StoredEnergy.getLocal() + ":" + MessageFormat.format( " {0,number,#} ", internalCurrentPower ) + toolTip.add( GuiText.StoredEnergy.getLocal() + ":" + MessageFormat.format( " {0,number,#} ", internalCurrentPower ) + Platform.gui_localize( PowerUnits.AE.unlocalizedName ) + " - " + MessageFormat.format( " {0,number,#.##%} ", percent ) ); } - private double getMax(ItemStack is) + private double getMaxEnergyCapacity() { Block blk = Block.getBlockFromItem( this ); if ( blk == AEApi.instance().blocks().blockEnergyCell.block() ) @@ -65,7 +68,7 @@ public class AEBaseItemBlockChargeable extends AEBaseItemBlock implements IAEIte public double injectAEPower(ItemStack is, double amt) { double internalCurrentPower = getInternal( is ); - double internalMaxPower = getMax( is ); + double internalMaxPower = getMaxEnergyCapacity(); internalCurrentPower += amt; if ( internalCurrentPower > internalMaxPower ) { @@ -98,7 +101,7 @@ public class AEBaseItemBlockChargeable extends AEBaseItemBlock implements IAEIte @Override public double getAEMaxPower(ItemStack is) { - return getMax( is ); + return getMaxEnergyCapacity(); } @Override diff --git a/src/main/java/appeng/block/networking/BlockEnergyCell.java b/src/main/java/appeng/block/networking/BlockEnergyCell.java index 7e4094b9..bf1987c8 100644 --- a/src/main/java/appeng/block/networking/BlockEnergyCell.java +++ b/src/main/java/appeng/block/networking/BlockEnergyCell.java @@ -5,6 +5,7 @@ import java.util.List; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import appeng.block.AEBaseItemBlock; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -85,7 +86,7 @@ public class BlockEnergyCell extends AEBaseBlock } @Override - public Class getItemBlockClass() + public Class getItemBlockClass() { return AEBaseItemBlockChargeable.class; }