From 5b1f943957d3ded24f5c0f371f43d6f62f3864f0 Mon Sep 17 00:00:00 2001 From: Léa Gris Date: Fri, 27 Nov 2020 01:26:01 +0100 Subject: feat(gregtech): visual programmed circuit (#355) * feat(gregtech): visual programmed circuit Add: Feature a configuration display for the programmed circuit (integrated circuit). Address feature request https://github.com/GTNewHorizons/GT-New-Horizons-Modpack/issues/6993 * fix(bug): potential out of bound index --- .../gregtech/common/items/GT_IntegratedCircuit_Item.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java') diff --git a/src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java b/src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java index 92eb3af4d2..ee69c90be1 100644 --- a/src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java +++ b/src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java @@ -7,6 +7,7 @@ import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.items.GT_Generic_Item; +import gregtech.api.util.GT_Config; import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_ModHandler; @@ -15,13 +16,17 @@ import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import java.lang.reflect.Array; import java.util.List; import static gregtech.GT_Mod.GT_FML_LOGGER; +import static gregtech.api.enums.GT_Values.RES_PATH_ITEM; public class GT_IntegratedCircuit_Item extends GT_Generic_Item { private final static String aTextEmptyRow = " "; + protected IIcon[] mIconDamage = new IIcon[25]; public GT_IntegratedCircuit_Item() { super("integrated_circuit", "Programmed Circuit", ""); setHasSubtypes(true); @@ -93,9 +98,13 @@ public class GT_IntegratedCircuit_Item extends GT_Generic_Item { aList.add(new ItemStack(this, 1, 0)); } + @Override @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister aIconRegister) { super.registerIcons(aIconRegister); + for (int i=0; i < mIconDamage.length; i++) { + mIconDamage[i] = aIconRegister.registerIcon(RES_PATH_ITEM + (GT_Config.troll ? "troll" : getUnlocalizedName() + "/" + i)); + } if (GregTech_API.sPostloadFinished) { GT_Log.out.println("GT_Mod: Starting Item Icon Load Phase"); GT_FML_LOGGER.info("GT_Mod: Starting Item Icon Load Phase"); @@ -109,4 +118,9 @@ public class GT_IntegratedCircuit_Item extends GT_Generic_Item { GT_FML_LOGGER.info("GT_Mod: Finished Item Icon Load Phase"); } } + + @Override + public IIcon getIconFromDamage(int damage) { + return (damage < mIconDamage.length ? mIconDamage[damage] : mIcon); + } } -- cgit From a2fedcfca3d60025533363a9ba776971f0a4bc9e Mon Sep 17 00:00:00 2001 From: Léa Gris Date: Fri, 27 Nov 2020 04:27:24 +0100 Subject: minor fix on getIconFromDamage check damage >0 (#356) * fix(getIconFromDamage): add check damage >0 --- src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java') diff --git a/src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java b/src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java index ee69c90be1..7217d6e51e 100644 --- a/src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java +++ b/src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java @@ -121,6 +121,6 @@ public class GT_IntegratedCircuit_Item extends GT_Generic_Item { @Override public IIcon getIconFromDamage(int damage) { - return (damage < mIconDamage.length ? mIconDamage[damage] : mIcon); + return (damage > 0 && damage < mIconDamage.length ? mIconDamage[damage] : mIcon); } } -- cgit From f135c8b48b11fcfc92bc985aca43c62a687a77e2 Mon Sep 17 00:00:00 2001 From: Léa Gris Date: Sun, 29 Nov 2020 01:38:47 +0100 Subject: fix(itegrated_circuit): starts at 0 --- src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java') diff --git a/src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java b/src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java index 7217d6e51e..2d470f027d 100644 --- a/src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java +++ b/src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java @@ -18,7 +18,6 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; -import java.lang.reflect.Array; import java.util.List; import static gregtech.GT_Mod.GT_FML_LOGGER; @@ -121,6 +120,6 @@ public class GT_IntegratedCircuit_Item extends GT_Generic_Item { @Override public IIcon getIconFromDamage(int damage) { - return (damage > 0 && damage < mIconDamage.length ? mIconDamage[damage] : mIcon); + return (damage >= 0 && damage < mIconDamage.length ? mIconDamage[damage] : mIcon); } } -- cgit From 4f4059914a8f00ae984b812cf34bc16ff71dbd79 Mon Sep 17 00:00:00 2001 From: Léa Gris Date: Mon, 30 Nov 2020 00:34:37 +0100 Subject: fix(integrated_circuit): mask comparison mode bits from damage (#359) --- src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java') diff --git a/src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java b/src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java index 2d470f027d..710dc0bf8f 100644 --- a/src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java +++ b/src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java @@ -120,6 +120,7 @@ public class GT_IntegratedCircuit_Item extends GT_Generic_Item { @Override public IIcon getIconFromDamage(int damage) { - return (damage >= 0 && damage < mIconDamage.length ? mIconDamage[damage] : mIcon); + byte circuitMode = ((byte) (damage & 0xFF)); // Mask out the MSB Comparison Mode Bits. See: getModeString + return mIconDamage[circuitMode < mIconDamage.length ? circuitMode : 0]; } } -- cgit