package joshie.harvest.fishing.render;
import joshie.harvest.core.base.render.TileSpecialRendererItem;
import joshie.harvest.core.helpers.MCClientHelper;
import joshie.harvest.fishing.tile.TileTrap;
import joshie.harvest.gathering.HFGathering;
import joshie.harvest.npcs.HFNPCs;
import joshie.harvest.npcs.item.ItemNPCTool.NPCTool;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import javax.annotation.Nonnull;
@SideOnly(Side.CLIENT)
public class SpecialRendererTrap extends TileSpecialRendererItem<TileTrap> {
private static final ItemStack SPEECH = HFNPCs.TOOLS.getStackFromEnum(NPCTool.SPEECH);
private static final ItemStack STICK = new ItemStack(Items.STICK);
private static final Item WOOD = Item.getItemFromBlock(HFGathering.WOOD);
@Override
public void renderTileEntityAt(@Nonnull TileTrap tile, double x, double y, double z, float tick, int destroyStage) {
if (!tile.isBaited()) {
ItemStack stack = tile.getStack();
if (stack != null) {
GlStateManager.pushMatrix();
GlStateManager.translate(x, y, z);
renderItem(SPEECH, 0F, 0F, 0F, 0F);
if (stack.getItem() == WOOD) {
renderItem(STICK, -0.1F, 0F, 0F, 0.025F);
} else renderItem(stack, -0.1F, 0F, 0F, 0.025F);
GlStateManager.popMatrix();
}
}
}
@Override
protected void translateItem(boolean isBlock, float position, float rotation, float offset1, float offset2) {
GlStateManager.translate(0.5F, 1.5F, 0.5F);
if (position != -0.1F) {
position = 0F;
GlStateManager.scale(0.75F, 0.75F, 0.75F);
} else {
GlStateManager.scale(0.5F, 0.5F, 0.5F);
}
if (!isBlock) {
GlStateManager.rotate(-MCClientHelper.getPlayer().rotationYaw, 0F, 1F, 0F);
GlStateManager.translate(offset1 * 3F, offset2 * 3.5F, position * 0.75F);
} else {
GlStateManager.rotate(-MCClientHelper.getPlayer().rotationYaw, 0F, 1F, 0F);
GlStateManager.translate(offset1 * 1.2F, 2F, position - 1F);
}
}
}