aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/gregtech/GT_Mod.java6
-rw-r--r--src/main/java/gregtech/api/enums/ItemList.java13
-rw-r--r--src/main/java/gregtech/common/render/GT_MetaGenerated_Item_Renderer.java76
-rw-r--r--src/main/java/gregtech/loaders/ExtraIcons.java36
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/405.pngbin303 -> 252 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/406.pngbin290 -> 226 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/407.pngbin2975 -> 2902 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/408.pngbin2959 -> 2892 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/409.pngbin2932 -> 2858 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/410.pngbin2917 -> 2851 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/411.pngbin2955 -> 2902 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/412.pngbin2966 -> 2902 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/413.pngbin2941 -> 2894 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/aluminium_inner.pngbin0 -> 155 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/chromium_inner.pngbin0 -> 155 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/iridium_inner.pngbin0 -> 155 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/neutronium_inner.pngbin0 -> 155 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/osmium_inner.pngbin0 -> 155 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/stainlesssteel_inner.pngbin0 -> 155 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/steel_inner.pngbin0 -> 155 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/titanium_inner.pngbin0 -> 155 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/tungstensteel_inner.pngbin0 -> 155 bytes
22 files changed, 129 insertions, 2 deletions
diff --git a/src/main/java/gregtech/GT_Mod.java b/src/main/java/gregtech/GT_Mod.java
index 2f26833fb6..f42e9a5ced 100644
--- a/src/main/java/gregtech/GT_Mod.java
+++ b/src/main/java/gregtech/GT_Mod.java
@@ -29,6 +29,7 @@ import gregtech.common.items.behaviors.Behaviour_DataOrb;
import gregtech.common.misc.GT_Command;
import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Massfabricator;
import gregtech.common.tileentities.storage.GT_MetaTileEntity_DigitalChestBase;
+import gregtech.loaders.ExtraIcons;
import gregtech.loaders.load.GT_CoverBehaviorLoader;
import gregtech.loaders.load.GT_FuelLoader;
import gregtech.loaders.load.GT_ItemIterator;
@@ -53,6 +54,7 @@ import net.minecraft.util.WeightedRandomChestContent;
import net.minecraft.world.World;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraftforge.common.ChestGenHooks;
+import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.config.Configuration;
import net.minecraftforge.fluids.FluidContainerRegistry;
import net.minecraftforge.fluids.FluidRegistry;
@@ -177,6 +179,10 @@ public class GT_Mod implements IGT_Mod {
}
}
+ if (FMLCommonHandler.instance().getSide() == Side.CLIENT) {
+ MinecraftForge.EVENT_BUS.register(new ExtraIcons());
+ }
+
File tFile = new File(new File(aEvent.getModConfigurationDirectory(), "GregTech"), "GregTech.cfg");
Configuration tMainConfig = new Configuration(tFile);
tMainConfig.load();
diff --git a/src/main/java/gregtech/api/enums/ItemList.java b/src/main/java/gregtech/api/enums/ItemList.java
index 64bda0f170..862985faca 100644
--- a/src/main/java/gregtech/api/enums/ItemList.java
+++ b/src/main/java/gregtech/api/enums/ItemList.java
@@ -2026,11 +2026,11 @@ public enum ItemList implements IItemContainer {
}
if (tCamelCasedDisplayNameBuilder.length() == 0) {
// CamelCased DisplayName is empty, so use hash of aDisplayName
- tCamelCasedDisplayNameBuilder.append(((Long) (long)aDisplayName.hashCode()).toString());
+ tCamelCasedDisplayNameBuilder.append(((Long) (long) aDisplayName.hashCode()));
}
// Construct a translation key from UnlocalizedName and CamelCased DisplayName
- final String tKey = rStack.getUnlocalizedName() + ".with." + tCamelCasedDisplayNameBuilder.toString() + ".name";
+ final String tKey = rStack.getUnlocalizedName() + ".with." + tCamelCasedDisplayNameBuilder + ".name";
rStack.setStackDisplayName(GT_LanguageManager.addStringLocalization(tKey, aDisplayName));
return GT_Utility.copyAmount(aAmount, rStack);
@@ -2071,4 +2071,13 @@ public enum ItemList implements IItemContainer {
GT_OreDictUnificator.registerOre(tOreName, getWildcard(1));
return this;
}
+
+ /**
+ * Returns the internal stack.
+ * This method is unsafe. It's here only for quick operations.
+ * DON'T CHANGE THE RETURNED VALUE!
+ */
+ public ItemStack getInternalStack_unsafe() {
+ return mStack;
+ }
}
diff --git a/src/main/java/gregtech/common/render/GT_MetaGenerated_Item_Renderer.java b/src/main/java/gregtech/common/render/GT_MetaGenerated_Item_Renderer.java
index f40443096e..54eafccc3a 100644
--- a/src/main/java/gregtech/common/render/GT_MetaGenerated_Item_Renderer.java
+++ b/src/main/java/gregtech/common/render/GT_MetaGenerated_Item_Renderer.java
@@ -1,8 +1,10 @@
package gregtech.common.render;
+import gregtech.api.enums.ItemList;
import gregtech.api.interfaces.IIconContainer;
import gregtech.api.items.GT_MetaGenerated_Item;
import gregtech.api.util.GT_Utility;
+import gregtech.loaders.ExtraIcons;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.ItemRenderer;
import net.minecraft.client.renderer.Tessellator;
@@ -15,6 +17,10 @@ import net.minecraftforge.client.MinecraftForgeClient;
import net.minecraftforge.fluids.FluidStack;
import org.lwjgl.opengl.GL11;
+import javax.annotation.Nullable;
+
+import static gregtech.api.enums.ItemList.*;
+
public class GT_MetaGenerated_Item_Renderer implements IItemRenderer {
public GT_MetaGenerated_Item_Renderer() {
for (GT_MetaGenerated_Item item : GT_MetaGenerated_Item.sInstances.values()) {
@@ -137,6 +143,12 @@ public class GT_MetaGenerated_Item_Renderer implements IItemRenderer {
} else {
tIcon = aItem.mIconList[(aMetaData - aItem.mOffset)][0];
}
+
+ ItemList largeFluidCell = getLargeFluidCell(aStack);
+ if (largeFluidCell != null) {
+ renderLargeFluidCellExtraParts(type, largeFluidCell, aStack);
+ }
+
Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationItemsTexture);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
if (type.equals(IItemRenderer.ItemRenderType.INVENTORY)) {
@@ -147,4 +159,68 @@ public class GT_MetaGenerated_Item_Renderer implements IItemRenderer {
}
GL11.glDisable(GL11.GL_BLEND);
}
+
+ @Nullable
+ private static ItemList getLargeFluidCell(ItemStack stack) {
+ if (isSame(Large_Fluid_Cell_Steel, stack)) return Large_Fluid_Cell_Steel;
+ if (isSame(Large_Fluid_Cell_Aluminium, stack)) return Large_Fluid_Cell_Aluminium;
+ if (isSame(Large_Fluid_Cell_TungstenSteel, stack)) return Large_Fluid_Cell_TungstenSteel;
+ if (isSame(Large_Fluid_Cell_StainlessSteel, stack)) return Large_Fluid_Cell_StainlessSteel;
+ if (isSame(Large_Fluid_Cell_Titanium, stack)) return Large_Fluid_Cell_Titanium;
+ if (isSame(Large_Fluid_Cell_Chrome, stack)) return Large_Fluid_Cell_Chrome;
+ if (isSame(Large_Fluid_Cell_Iridium, stack)) return Large_Fluid_Cell_Iridium;
+ if (isSame(Large_Fluid_Cell_Osmium, stack)) return Large_Fluid_Cell_Osmium;
+ if (isSame(Large_Fluid_Cell_Neutronium, stack)) return Large_Fluid_Cell_Neutronium;
+
+ return null;
+ }
+
+ private static void renderLargeFluidCellExtraParts(IItemRenderer.ItemRenderType type, ItemList item, ItemStack stack) {
+
+ IIcon inner;
+ if (item == Large_Fluid_Cell_Steel) inner = ExtraIcons.steelLargeCellInner;
+ else if (item == Large_Fluid_Cell_Aluminium) inner = ExtraIcons.aluminiumLargeCellInner;
+ else if (item == Large_Fluid_Cell_StainlessSteel) inner = ExtraIcons.stainlesssteelLargeCellInner;
+ else if (item == Large_Fluid_Cell_Titanium) inner = ExtraIcons.titaniumLargeCellInner;
+ else if (item == Large_Fluid_Cell_TungstenSteel) inner = ExtraIcons.tungstensteelLargeCellInner;
+ else if (item == Large_Fluid_Cell_Iridium) inner = ExtraIcons.iridiumLargeCellInner;
+ else if (item == Large_Fluid_Cell_Osmium) inner = ExtraIcons.osmiumLargeCellInner;
+ else if (item == Large_Fluid_Cell_Chrome) inner = ExtraIcons.chromiumLargeCellInner;
+ else inner = ExtraIcons.neutroniumLargeCellInner;
+
+ // Empty inner side
+ Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationItemsTexture);
+ if (type.equals(ItemRenderType.INVENTORY)) {
+ GT_RenderUtil.renderItemIcon(inner, 16.0D, -0.001D, 0.0F, 0.0F, -1.0F);
+ } else {
+ ItemRenderer.renderItemIn2D(Tessellator.instance, inner.getMaxU(), inner.getMinV(), inner.getMinU(), inner.getMaxV(), inner.getIconWidth(), inner.getIconHeight(), 0.0625F);
+ }
+
+ FluidStack fluidStack = GT_Utility.getFluidForFilledItem(stack, true);
+
+ if (fluidStack != null && fluidStack.getFluid() != null) {
+ IIcon fluidIcon = fluidStack.getFluid().getIcon(fluidStack);
+ int fluidColor = fluidStack.getFluid().getColor(fluidStack);
+
+ Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationBlocksTexture);
+ GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
+ GL11.glDepthFunc(GL11.GL_EQUAL);
+ GL11.glColor3ub((byte) (fluidColor >> 16), (byte) (fluidColor >> 8), (byte) fluidColor);
+ if (type.equals(ItemRenderType.INVENTORY)) {
+ GT_RenderUtil.renderItemIcon(fluidIcon, 16.0D, -0.001D, 0.0F, 0.0F, -1.0F);
+ } else {
+ ItemRenderer.renderItemIn2D(Tessellator.instance, fluidIcon.getMaxU(), fluidIcon.getMinV(), fluidIcon.getMinU(), fluidIcon.getMaxV(), fluidIcon.getIconWidth(), fluidIcon.getIconHeight(), 0.0625F);
+ }
+
+ GL11.glColor3ub((byte) -1, (byte) -1, (byte) -1);
+ GL11.glDepthFunc(GL11.GL_LEQUAL);
+ }
+ }
+
+ private static boolean isSame(ItemList item, ItemStack stack) {
+ ItemStack internal = item.getInternalStack_unsafe();
+ if (GT_Utility.isStackInvalid(internal)) return false;
+
+ return internal.getItem() == stack.getItem() && internal.getItemDamage() == stack.getItemDamage();
+ }
}
diff --git a/src/main/java/gregtech/loaders/ExtraIcons.java b/src/main/java/gregtech/loaders/ExtraIcons.java
new file mode 100644
index 0000000000..ec50a7c3e2
--- /dev/null
+++ b/src/main/java/gregtech/loaders/ExtraIcons.java
@@ -0,0 +1,36 @@
+package gregtech.loaders;
+
+import cpw.mods.fml.common.eventhandler.SubscribeEvent;
+import net.minecraft.client.renderer.texture.TextureMap;
+import net.minecraft.util.IIcon;
+import net.minecraftforge.client.event.TextureStitchEvent;
+
+import static gregtech.api.enums.GT_Values.RES_PATH_ITEM;
+
+public class ExtraIcons {
+ public static IIcon steelLargeCellInner;
+ public static IIcon aluminiumLargeCellInner;
+ public static IIcon stainlesssteelLargeCellInner;
+ public static IIcon tungstensteelLargeCellInner;
+ public static IIcon titaniumLargeCellInner;
+ public static IIcon chromiumLargeCellInner;
+ public static IIcon iridiumLargeCellInner;
+ public static IIcon osmiumLargeCellInner;
+ public static IIcon neutroniumLargeCellInner;
+
+ @SubscribeEvent
+ public void regIcons(TextureStitchEvent.Pre event) {
+ TextureMap reg = event.map;
+ if (reg.getTextureType() == 1) {// are for items
+ steelLargeCellInner = reg.registerIcon(RES_PATH_ITEM + "large_fluid_cell_custom/steel_inner");
+ aluminiumLargeCellInner = reg.registerIcon(RES_PATH_ITEM + "large_fluid_cell_custom/aluminium_inner");
+ stainlesssteelLargeCellInner = reg.registerIcon(RES_PATH_ITEM + "large_fluid_cell_custom/stainlesssteel_inner");
+ tungstensteelLargeCellInner = reg.registerIcon(RES_PATH_ITEM + "large_fluid_cell_custom/tungstensteel_inner");
+ titaniumLargeCellInner = reg.registerIcon(RES_PATH_ITEM + "large_fluid_cell_custom/titanium_inner");
+ chromiumLargeCellInner = reg.registerIcon(RES_PATH_ITEM + "large_fluid_cell_custom/chromium_inner");
+ iridiumLargeCellInner = reg.registerIcon(RES_PATH_ITEM + "large_fluid_cell_custom/iridium_inner");
+ osmiumLargeCellInner = reg.registerIcon(RES_PATH_ITEM + "large_fluid_cell_custom/osmium_inner");
+ neutroniumLargeCellInner = reg.registerIcon(RES_PATH_ITEM + "large_fluid_cell_custom/neutronium_inner");
+ }
+ }
+}
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/405.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/405.png
index 00bfc9bc71..a4e07eae7b 100644
--- a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/405.png
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/405.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/406.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/406.png
index 3c075135dd..5f82638932 100644
--- a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/406.png
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/406.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/407.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/407.png
index 6d2a21cf93..40293ded93 100644
--- a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/407.png
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/407.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/408.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/408.png
index 86ae8dd7e2..6ac9d00433 100644
--- a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/408.png
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/408.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/409.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/409.png
index 3131758123..ea82375e52 100644
--- a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/409.png
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/409.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/410.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/410.png
index 0a9d1f880d..70671e9fd4 100644
--- a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/410.png
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/410.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/411.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/411.png
index 61f7255c52..9657000840 100644
--- a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/411.png
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/411.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/412.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/412.png
index 5cba994104..32fca14289 100644
--- a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/412.png
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/412.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/413.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/413.png
index 80cd9711cd..ae4bbb7282 100644
--- a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/413.png
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/413.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/aluminium_inner.png b/src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/aluminium_inner.png
new file mode 100644
index 0000000000..dbc4fab348
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/aluminium_inner.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/chromium_inner.png b/src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/chromium_inner.png
new file mode 100644
index 0000000000..0d74ef13f9
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/chromium_inner.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/iridium_inner.png b/src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/iridium_inner.png
new file mode 100644
index 0000000000..d1862a3062
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/iridium_inner.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/neutronium_inner.png b/src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/neutronium_inner.png
new file mode 100644
index 0000000000..4373928eb1
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/neutronium_inner.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/osmium_inner.png b/src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/osmium_inner.png
new file mode 100644
index 0000000000..d2a55cfb09
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/osmium_inner.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/stainlesssteel_inner.png b/src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/stainlesssteel_inner.png
new file mode 100644
index 0000000000..817ddd36e8
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/stainlesssteel_inner.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/steel_inner.png b/src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/steel_inner.png
new file mode 100644
index 0000000000..58d8099c55
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/steel_inner.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/titanium_inner.png b/src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/titanium_inner.png
new file mode 100644
index 0000000000..ae66699b8c
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/titanium_inner.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/tungstensteel_inner.png b/src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/tungstensteel_inner.png
new file mode 100644
index 0000000000..40f47df0af
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/large_fluid_cell_custom/tungstensteel_inner.png
Binary files differ