Large improvement to power system, fixes #204

This commit is contained in:
modmuss50 2015-10-25 09:58:57 +00:00
parent 3f47e89f85
commit cf34fe1f1f
10 changed files with 128 additions and 97 deletions

View file

@ -6,7 +6,12 @@ import net.minecraft.block.BlockContainer;
import net.minecraft.client.Minecraft;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.event.entity.player.ItemTooltipEvent;
import org.lwjgl.input.Keyboard;
import techreborn.api.IListInfoProvider;
import techreborn.api.power.IEnergyInterfaceItem;
import techreborn.cofhLib.util.helpers.MathHelper;
import techreborn.lib.ChatColor;
import techreborn.util.Color;
public class StackToolTipEvent {
@ -14,7 +19,23 @@ public class StackToolTipEvent {
public void handleItemTooltipEvent(ItemTooltipEvent event) {
if(event.itemStack.getItem() instanceof IListInfoProvider){
((IListInfoProvider) event.itemStack.getItem()).addInfo(event.toolTip, false);
} else{
} else if (event.itemStack.getItem() instanceof IEnergyInterfaceItem){
int percentage = percentage((int)((IEnergyInterfaceItem) event.itemStack.getItem()).getMaxPower(event.itemStack), (int)((IEnergyInterfaceItem) event.itemStack.getItem()).getEnergy(event.itemStack));
ChatColor color;
if(percentage<= 10){
color = ChatColor.RED;
} else if(percentage >= 75){
color = ChatColor.GREEN;
} else {
color = ChatColor.YELLOW;
}
event.toolTip.add(color + "" + (int)((IEnergyInterfaceItem) event.itemStack.getItem()).getEnergy(event.itemStack) + ChatColor.LIGHT_PURPLE + " stored eu");
event.toolTip.add(Color.GREEN + "" + (int)((IEnergyInterfaceItem) event.itemStack.getItem()).getMaxPower(event.itemStack) + ChatColor.LIGHT_PURPLE + " max eu");
if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT)){
event.toolTip.add(ChatColor.GREEN +"" + percentage + "%" + ChatColor.LIGHT_PURPLE +" charged");
event.toolTip.add(Color.GREEN + "" + (int)((IEnergyInterfaceItem) event.itemStack.getItem()).getMaxTransfer(event.itemStack) + ChatColor.LIGHT_PURPLE + " eu/tick in/out");
}
} else {
Block block = Block.getBlockFromItem(event.itemStack.getItem());
if(block != null && block instanceof BlockContainer && block.getClass().getCanonicalName().startsWith("techreborn.")){
TileEntity tile = block.createTileEntity(Minecraft.getMinecraft().theWorld, event.itemStack.getItemDamage());
@ -25,4 +46,10 @@ public class StackToolTipEvent {
}
}
public int percentage(int MaxValue, int CurrentValue) {
if (CurrentValue == 0)
return 0;
return (int) ((CurrentValue * 100.0f) / MaxValue);
}
}