From 56898a95dbaaab5994b920ea34e3dbb17963882f Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Sun, 27 Nov 2016 21:53:16 +0100 Subject: [PATCH] Made the power bar on items colorful too \o/ --- .../mod/items/ItemWingsOfTheBats.java | 35 +++++++++---------- .../mod/items/base/ItemEnergy.java | 12 +++---- .../mod/proxy/ClientProxy.java | 6 ++++ .../actuallyadditions/mod/proxy/IProxy.java | 3 ++ .../mod/proxy/ServerProxy.java | 6 ++++ .../actuallyadditions/mod/util/AssetUtil.java | 1 - 6 files changed, 37 insertions(+), 26 deletions(-) diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemWingsOfTheBats.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemWingsOfTheBats.java index 211fff4f6..950a150e4 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemWingsOfTheBats.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemWingsOfTheBats.java @@ -10,6 +10,7 @@ package de.ellpeck.actuallyadditions.mod.items; +import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.config.values.ConfigBoolValues; import de.ellpeck.actuallyadditions.mod.data.PlayerData; import de.ellpeck.actuallyadditions.mod.items.base.ItemBase; @@ -29,8 +30,6 @@ import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.living.LivingDropsEvent; import net.minecraftforge.event.entity.living.LivingEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; public class ItemWingsOfTheBats extends ItemBase{ @@ -64,29 +63,29 @@ public class ItemWingsOfTheBats extends ItemBase{ } @Override - @SideOnly(Side.CLIENT) public double getDurabilityForDisplay(ItemStack stack){ - PlayerData.PlayerSave data = PlayerData.getDataFromPlayer(Minecraft.getMinecraft().player); - if(data != null){ - double diff = MAX_FLY_TIME-data.batWingsFlyTime; - return 1-(diff/MAX_FLY_TIME); - } - else{ - return super.getDurabilityForDisplay(stack); + EntityPlayer player = ActuallyAdditions.proxy.getCurrentPlayer(); + if(player != null){ + PlayerData.PlayerSave data = PlayerData.getDataFromPlayer(player); + if(data != null){ + double diff = MAX_FLY_TIME-data.batWingsFlyTime; + return 1-(diff/MAX_FLY_TIME); + } } + return super.getDurabilityForDisplay(stack); } @Override - @SideOnly(Side.CLIENT) public int getRGBDurabilityForDisplay(ItemStack stack){ - PlayerData.PlayerSave data = PlayerData.getDataFromPlayer(Minecraft.getMinecraft().player); - if(data != null){ - int curr = data.batWingsFlyTime; - return MathHelper.hsvToRGB(Math.max(0.0F, 1-(float)curr/MAX_FLY_TIME)/3.0F, 1.0F, 1.0F); - } - else{ - return super.getRGBDurabilityForDisplay(stack); + EntityPlayer player = ActuallyAdditions.proxy.getCurrentPlayer(); + if(player != null){ + PlayerData.PlayerSave data = PlayerData.getDataFromPlayer(player); + if(data != null){ + int curr = data.batWingsFlyTime; + return MathHelper.hsvToRGB(Math.max(0.0F, 1-(float)curr/MAX_FLY_TIME)/3.0F, 1.0F, 1.0F); + } } + return super.getRGBDurabilityForDisplay(stack); } @SubscribeEvent diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/base/ItemEnergy.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/base/ItemEnergy.java index 5d9a3a9fd..639c244f1 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/base/ItemEnergy.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/base/ItemEnergy.java @@ -12,6 +12,7 @@ package de.ellpeck.actuallyadditions.mod.items.base; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.tile.CustomEnergyStorage; +import de.ellpeck.actuallyadditions.mod.util.AssetUtil; import de.ellpeck.actuallyadditions.mod.util.compat.TeslaForgeUnitsWrapper; import de.ellpeck.actuallyadditions.mod.util.compat.TeslaUtil; import net.minecraft.creativetab.CreativeTabs; @@ -106,13 +107,10 @@ public abstract class ItemEnergy extends ItemBase{ @Override public int getRGBDurabilityForDisplay(ItemStack stack){ - if(stack.hasCapability(CapabilityEnergy.ENERGY, null)){ - IEnergyStorage storage = stack.getCapability(CapabilityEnergy.ENERGY, null); - if(storage != null){ - int currEnergy = storage.getEnergyStored(); - int maxEnergy = storage.getMaxEnergyStored(); - return MathHelper.hsvToRGB(Math.max(0.0F, (float)currEnergy/maxEnergy)/3.0F, 1.0F, 1.0F); - } + EntityPlayer player = ActuallyAdditions.proxy.getCurrentPlayer(); + if(player != null && player.world != null){ + float[] color = AssetUtil.getWheelColor(player.world.getTotalWorldTime()%256); + return MathHelper.rgb(color[0]/255F, color[1]/255F, color[2]/255F); } return super.getRGBDurabilityForDisplay(stack); } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/proxy/ClientProxy.java b/src/main/java/de/ellpeck/actuallyadditions/mod/proxy/ClientProxy.java index 518a077d9..ec1d6aba8 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/proxy/ClientProxy.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/proxy/ClientProxy.java @@ -24,6 +24,7 @@ import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; @@ -117,4 +118,9 @@ public class ClientProxy implements IProxy{ public void addColoredItem(Item item){ COLOR_PRODIVIDING_ITEMS_FOR_REGISTERING.add(item); } + + @Override + public EntityPlayer getCurrentPlayer(){ + return Minecraft.getMinecraft().player; + } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/proxy/IProxy.java b/src/main/java/de/ellpeck/actuallyadditions/mod/proxy/IProxy.java index b82ad41a0..9bd764d7f 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/proxy/IProxy.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/proxy/IProxy.java @@ -10,6 +10,7 @@ package de.ellpeck.actuallyadditions.mod.proxy; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; @@ -28,4 +29,6 @@ public interface IProxy{ void addRenderRegister(ItemStack stack, ResourceLocation location, String variant); void addColoredItem(Item item); + + EntityPlayer getCurrentPlayer(); } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/proxy/ServerProxy.java b/src/main/java/de/ellpeck/actuallyadditions/mod/proxy/ServerProxy.java index 4cdd5ed05..5cca57640 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/proxy/ServerProxy.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/proxy/ServerProxy.java @@ -11,6 +11,7 @@ package de.ellpeck.actuallyadditions.mod.proxy; import de.ellpeck.actuallyadditions.mod.util.ModUtil; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; @@ -44,4 +45,9 @@ public class ServerProxy implements IProxy{ public void addColoredItem(Item item){ } + + @Override + public EntityPlayer getCurrentPlayer(){ + return null; + } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/util/AssetUtil.java b/src/main/java/de/ellpeck/actuallyadditions/mod/util/AssetUtil.java index c28cf6223..ee550ce15 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/util/AssetUtil.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/util/AssetUtil.java @@ -320,7 +320,6 @@ public final class AssetUtil{ GlStateManager.enableFog(); } - @SideOnly(Side.CLIENT) public static float[] getWheelColor(float pos){ if(pos < 85.0f){ return new float[]{pos*3.0F, 255.0f-pos*3.0f, 0.0f};