mirror of
https://github.com/GTNewHorizons/TinkersConstruct.git
synced 2026-11-14 01:14:18 +00:00
* Fix shift-merging tools voiding items fixes <https://github.com/GTNewHorizons/GT-New-Horizons-Modpack/issues/11392> * Change 0-sized ItemStacks into null stacks in crafting station attached slots Fixes <https://github.com/GTNewHorizons/GT-New-Horizons-Modpack/issues/10425> * Update buildscript * spotlessApply
110 lines
5.0 KiB
Java
110 lines
5.0 KiB
Java
package tconstruct.util;
|
|
|
|
import java.lang.reflect.Field;
|
|
import net.minecraft.block.Block;
|
|
import net.minecraft.client.Minecraft;
|
|
import net.minecraft.client.renderer.*;
|
|
import net.minecraft.client.renderer.texture.TextureMap;
|
|
import net.minecraft.entity.item.EntityItem;
|
|
import net.minecraft.item.*;
|
|
import net.minecraft.util.IIcon;
|
|
import net.minecraftforge.event.entity.living.LivingDropsEvent;
|
|
import org.lwjgl.opengl.GL11;
|
|
import tconstruct.TConstruct;
|
|
|
|
public class ItemHelper {
|
|
public static Object getStaticItem(String name, String classPackage) {
|
|
try {
|
|
Class clazz = Class.forName(classPackage);
|
|
Field field = clazz.getDeclaredField(name);
|
|
Object ret = field.get(null);
|
|
if (ret != null && (ret instanceof ItemStack || ret instanceof Item)) return ret;
|
|
return null;
|
|
} catch (Exception e) {
|
|
TConstruct.logger.warn("Could not find " + name + "from " + classPackage);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public static void addDrops(LivingDropsEvent event, ItemStack dropStack) {
|
|
EntityItem entityitem = new EntityItem(
|
|
event.entityLiving.worldObj,
|
|
event.entityLiving.posX,
|
|
event.entityLiving.posY,
|
|
event.entityLiving.posZ,
|
|
dropStack);
|
|
entityitem.delayBeforeCanPickup = 10;
|
|
event.drops.add(entityitem);
|
|
}
|
|
|
|
public static void renderStandardInvBlock(RenderBlocks renderblocks, Block block, int meta) {
|
|
Tessellator tessellator = Tessellator.instance;
|
|
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
|
|
tessellator.startDrawingQuads();
|
|
tessellator.setNormal(0.0F, -1F, 0.0F);
|
|
renderblocks.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, ItemHelper.getIconSafe(block.getIcon(0, meta)));
|
|
tessellator.draw();
|
|
tessellator.startDrawingQuads();
|
|
tessellator.setNormal(0.0F, 1.0F, 0.0F);
|
|
renderblocks.renderFaceYPos(
|
|
block, 0.0D, 0.0D, 0.0D, ItemHelper.getIconSafe(block.getIcon(1, meta))); // block.getIcon(1, meta));
|
|
tessellator.draw();
|
|
tessellator.startDrawingQuads();
|
|
tessellator.setNormal(0.0F, 0.0F, -1F);
|
|
renderblocks.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, ItemHelper.getIconSafe(block.getIcon(2, meta)));
|
|
tessellator.draw();
|
|
tessellator.startDrawingQuads();
|
|
tessellator.setNormal(0.0F, 0.0F, 1.0F);
|
|
renderblocks.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, ItemHelper.getIconSafe(block.getIcon(3, meta)));
|
|
tessellator.draw();
|
|
tessellator.startDrawingQuads();
|
|
tessellator.setNormal(-1F, 0.0F, 0.0F);
|
|
renderblocks.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, ItemHelper.getIconSafe(block.getIcon(4, meta)));
|
|
tessellator.draw();
|
|
tessellator.startDrawingQuads();
|
|
tessellator.setNormal(1.0F, 0.0F, 0.0F);
|
|
renderblocks.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, ItemHelper.getIconSafe(block.getIcon(5, meta)));
|
|
tessellator.draw();
|
|
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
|
|
}
|
|
|
|
public static void renderInvBlockFace(RenderBlocks renderblocks, Block block, int meta) {
|
|
Tessellator tessellator = Tessellator.instance;
|
|
GL11.glScalef(2f, 2f, 2f);
|
|
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
|
|
GL11.glRotatef(45, 0, 1, 0);
|
|
GL11.glRotatef(60, 1, 0, 0);
|
|
tessellator.startDrawingQuads();
|
|
tessellator.setNormal(0.0F, -1F, 0.0F);
|
|
renderblocks.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, ItemHelper.getIconSafe(block.getIcon(0, meta)));
|
|
tessellator.draw();
|
|
tessellator.startDrawingQuads();
|
|
tessellator.setNormal(0.0F, 1.0F, 0.0F);
|
|
renderblocks.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, ItemHelper.getIconSafe(block.getIcon(1, meta)));
|
|
tessellator.draw();
|
|
tessellator.startDrawingQuads();
|
|
tessellator.setNormal(0.0F, 0.0F, -1F);
|
|
renderblocks.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, ItemHelper.getIconSafe(block.getIcon(2, meta)));
|
|
tessellator.draw();
|
|
tessellator.startDrawingQuads();
|
|
tessellator.setNormal(0.0F, 0.0F, 1.0F);
|
|
renderblocks.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, ItemHelper.getIconSafe(block.getIcon(3, meta)));
|
|
tessellator.draw();
|
|
tessellator.startDrawingQuads();
|
|
tessellator.setNormal(-1F, 0.0F, 0.0F);
|
|
renderblocks.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, ItemHelper.getIconSafe(block.getIcon(4, meta)));
|
|
tessellator.draw();
|
|
tessellator.startDrawingQuads();
|
|
tessellator.setNormal(1.0F, 0.0F, 0.0F);
|
|
renderblocks.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, ItemHelper.getIconSafe(block.getIcon(5, meta)));
|
|
tessellator.draw();
|
|
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
|
|
}
|
|
|
|
public static IIcon getIconSafe(IIcon icon) {
|
|
if (icon != null) return icon;
|
|
return ((TextureMap) Minecraft.getMinecraft().getTextureManager().getTexture(TextureMap.locationBlocksTexture))
|
|
.getAtlasSprite("missingno");
|
|
}
|
|
}
|