aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorxkball <45330674+xkball@users.noreply.github.com>2023-04-18 00:49:13 +0800
committerGitHub <noreply@github.com>2023-04-17 18:49:13 +0200
commit72e5e61e9c3116435a4de6d7bc94d2cd66e20f89 (patch)
treebdf487529afbc1aeda5cb8bfdbea79002757a5aa /src/main
parent30f8da4c5d8056a16c24ac3c7eaf2d0f707015aa (diff)
downloadGT5-Unofficial-72e5e61e9c3116435a4de6d7bc94d2cd66e20f89.tar.gz
GT5-Unofficial-72e5e61e9c3116435a4de6d7bc94d2cd66e20f89.tar.bz2
GT5-Unofficial-72e5e61e9c3116435a4de6d7bc94d2cd66e20f89.zip
allow data stick (contains assline recipe)render like ae2 pattern (#1890)
* allow data stick (contains assline recipe)render like ae2 patten * spotless * data stick renderer and spotlessApply * Remove recursive boolean in data stick renderer,maybe have side effect --------- Co-authored-by: Martin Robertz <dream-master@gmx.net>
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/gregtech/common/render/items/GT_DataStick_Renderer.java42
-rw-r--r--src/main/java/gregtech/common/render/items/GT_MetaGenerated_Item_Renderer.java10
2 files changed, 52 insertions, 0 deletions
diff --git a/src/main/java/gregtech/common/render/items/GT_DataStick_Renderer.java b/src/main/java/gregtech/common/render/items/GT_DataStick_Renderer.java
new file mode 100644
index 0000000000..668b1daa6c
--- /dev/null
+++ b/src/main/java/gregtech/common/render/items/GT_DataStick_Renderer.java
@@ -0,0 +1,42 @@
+package gregtech.common.render.items;
+
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.renderer.RenderHelper;
+import net.minecraft.client.renderer.entity.RenderItem;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.client.IItemRenderer;
+
+import org.lwjgl.input.Keyboard;
+import org.lwjgl.opengl.GL11;
+
+import gregtech.api.util.GT_AssemblyLineUtils;
+
+// borrow form ae2
+
+public class GT_DataStick_Renderer implements IItemRenderer {
+
+ private final RenderItem ri = new RenderItem();
+
+ @Override
+ public boolean handleRenderType(ItemStack item, ItemRenderType type) {
+ final boolean isShiftHeld = Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT);
+ return type == ItemRenderType.INVENTORY && isShiftHeld;
+ }
+
+ @Override
+ public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) {
+ return false;
+ }
+
+ @Override
+ public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
+ final ItemStack is = GT_AssemblyLineUtils.getDataStickOutput(item);
+ final Minecraft mc = Minecraft.getMinecraft();
+
+ GL11.glPushAttrib(GL11.GL_ENABLE_BIT | GL11.GL_COLOR_BUFFER_BIT);
+ RenderHelper.enableGUIStandardItemLighting();
+ this.ri.renderItemAndEffectIntoGUI(mc.fontRenderer, mc.getTextureManager(), is, 0, 0);
+ RenderHelper.disableStandardItemLighting();
+ GL11.glPopAttrib();
+ }
+}
diff --git a/src/main/java/gregtech/common/render/items/GT_MetaGenerated_Item_Renderer.java b/src/main/java/gregtech/common/render/items/GT_MetaGenerated_Item_Renderer.java
index 78f8401abb..48a598a32b 100644
--- a/src/main/java/gregtech/common/render/items/GT_MetaGenerated_Item_Renderer.java
+++ b/src/main/java/gregtech/common/render/items/GT_MetaGenerated_Item_Renderer.java
@@ -8,6 +8,7 @@ import net.minecraftforge.client.MinecraftForgeClient;
import org.lwjgl.opengl.GL11;
+import gregtech.api.enums.ItemList;
import gregtech.api.enums.Materials;
import gregtech.api.interfaces.IGT_ItemWithMaterialRenderer;
import gregtech.api.objects.ItemData;
@@ -19,6 +20,8 @@ public class GT_MetaGenerated_Item_Renderer implements IItemRenderer {
private final IItemRenderer mItemRenderer = new GT_GeneratedItem_Renderer();
private final IItemRenderer mMaterialRenderer = new GT_GeneratedMaterial_Renderer();
+ private final IItemRenderer mDataStickRenderer = new GT_DataStick_Renderer();
+
public GT_MetaGenerated_Item_Renderer() {}
public <T extends Item & IGT_ItemWithMaterialRenderer> void registerItem(T item) {
@@ -80,6 +83,13 @@ public class GT_MetaGenerated_Item_Renderer implements IItemRenderer {
return aMaterialRenderer != null ? aMaterialRenderer : mMaterialRenderer;
}
+ // handle data stick
+ if (aStack.getItem() == ItemList.Tool_DataStick.getItem() && aStack.hasTagCompound()
+ && aStack.getTagCompound()
+ .hasKey("output")) {
+ return mDataStickRenderer;
+ }
+
return mItemRenderer;
}
}