Rendering

This commit is contained in:
raoulvdberge
2017-02-12 20:45:31 +01:00
parent c91a1abb90
commit 70cafe9c73
2 changed files with 46 additions and 14 deletions

View File

@@ -3,35 +3,67 @@ package com.raoulvdberge.refinedstorage.render;
import com.raoulvdberge.refinedstorage.tile.TileStorageMonitor;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.client.renderer.RenderItem;
import net.minecraft.client.renderer.block.model.IBakedModel;
import net.minecraft.client.renderer.block.model.ItemCameraTransforms;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraftforge.client.ForgeHooksClient;
import org.lwjgl.opengl.GL11;
public class TileEntitySpecialRendererStorageMonitor extends TileEntitySpecialRenderer<TileStorageMonitor> {
@Override
public void renderTileEntityAt(TileStorageMonitor tile, double x, double y, double z, float partialTicks, int destroyStage) {
GlStateManager.pushMatrix();
GlStateManager.translate(x, y, z);
GlStateManager.translate(x + 0.5F, y + 0.5F, z - 0.01F);
GlStateManager.rotate(180F, 0F, 0F, 1F);
GlStateManager.color(1F, 1F, 1F, 1F);
setLightmapDisabled(true);
GlStateManager.depthMask(false);
GlStateManager.enableBlend();
GlStateManager.tryBlendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
GlStateManager.depthMask(true);
GlStateManager.scale(0.4F, -0.4F, -0.015F);
ItemStack stack = new ItemStack(Blocks.PISTON);
RenderItem itemRender = Minecraft.getMinecraft().getRenderItem();
Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
Minecraft.getMinecraft().getTextureManager().getTexture(TextureMap.LOCATION_BLOCKS_TEXTURE).setBlurMipmap(false, false);
GlStateManager.enableRescaleNormal();
RenderHelper.enableStandardItemLighting();
GlStateManager.enableAlpha();
GlStateManager.enableLighting();
GlStateManager.alphaFunc(GL11.GL_GREATER, 0.0F);
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
GlStateManager.scale(0.5F, 0.5F, 0.02F);
IBakedModel model = Minecraft.getMinecraft().getRenderItem().getItemModelWithOverrides(new ItemStack(Blocks.DIRT), null, null);
model = ForgeHooksClient.handleCameraTransforms(model, ItemCameraTransforms.TransformType.GUI, false);
Minecraft.getMinecraft().getRenderItem().renderItem(new ItemStack(Blocks.DIRT), model);
GlStateManager.alphaFunc(GL11.GL_GREATER, 0.1F);
GlStateManager.enableBlend();
GlStateManager.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA);
GlStateManager.color(1F, 1F, 1F, 1F);
IBakedModel bakedmodel = itemRender.getItemModelWithOverrides(stack, null, Minecraft.getMinecraft().player);
bakedmodel = net.minecraftforge.client.ForgeHooksClient.handleCameraTransforms(bakedmodel, ItemCameraTransforms.TransformType.GUI, false);
itemRender.renderItem(stack, bakedmodel);
GlStateManager.disableAlpha();
GlStateManager.disableRescaleNormal();
GlStateManager.disableLighting();
Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
Minecraft.getMinecraft().getTextureManager().getTexture(TextureMap.LOCATION_BLOCKS_TEXTURE).restoreLastBlurMipmap();
GlStateManager.disableBlend();
GlStateManager.color(1F, 1F, 1F, 1F);
GlStateManager.popMatrix();
GlStateManager.pushMatrix();
GlStateManager.translate(x + 0.5F, y + 0.5F, z - 0.02F);
GlStateManager.rotate(180F, 0F, 0F, 1F);
float size = 0.00450F;
float factor = 2.0f;
GlStateManager.scale(size * factor, size * factor, size);
Minecraft.getMinecraft().fontRendererObj.drawString("It works", 0, 0, 0xFFFFFF);
GlStateManager.popMatrix();
setLightmapDisabled(false);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB