package com.teamwizardry.wizardry.client.render.entity; import com.teamwizardry.wizardry.common.entity.EntityHaloInfusionItem; import com.teamwizardry.wizardry.common.tile.TileHaloInfuser; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.block.model.ItemCameraTransforms; import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.Vec3d; import javax.annotation.Nonnull; import javax.annotation.Nullable; /** * Created by Demoniaque on 8/25/2016. */ public class RenderHaloInfusionItem extends Render<EntityHaloInfusionItem> { public RenderHaloInfusionItem(RenderManager renderManager) { super(renderManager); } @Override public boolean canRenderName(EntityHaloInfusionItem entity) { return false; } @Override public void doRender(@Nonnull EntityHaloInfusionItem entity, double x, double y, double z, float entityYaw, float partialTicks) { super.doRender(entity, x, y, z, entityYaw, partialTicks); if (entity.world == null || entity.getInfuserPos() == null) return; TileEntity tile = entity.world.getTileEntity(entity.getInfuserPos()); if (!(tile instanceof TileHaloInfuser) || ((TileHaloInfuser) tile).getHalo().isEmpty()) { return; } if (entity.getHaloInfusionItem().getStack().isEmpty()) return; double depthRadius = 0.5; EntityPlayer player = Minecraft.getMinecraft().player; Vec3d playerSub = player.getPositionVector().add(0, player.eyeHeight, 0).subtract(entity.getPositionVector().add(0, entity.height, 0)); Vec3d restricted = playerSub.scale(depthRadius / playerSub.length()); restricted = new Vec3d(restricted.x, restricted.y / 2.0, restricted.z); GlStateManager.pushMatrix(); GlStateManager.translate(x, y, z); GlStateManager.translate(restricted.x, restricted.y + 0.5, restricted.z); GlStateManager.scale(0.4, 0.4, 0.4); GlStateManager.rotate(Minecraft.getMinecraft().player.rotationYaw * -1, 0, 1, 0); GlStateManager.rotate(Minecraft.getMinecraft().player.rotationPitch, 1, 0, 0); Minecraft.getMinecraft().getRenderItem().renderItem(entity.getHaloInfusionItem().getStack(), ItemCameraTransforms.TransformType.NONE); GlStateManager.popMatrix(); } @Nullable @Override protected ResourceLocation getEntityTexture(EntityHaloInfusionItem entity) { return null; } }