package joshie.harvest.core.render;
import joshie.harvest.core.base.render.TileSpecialRendererItem;
import joshie.harvest.core.helpers.MCClientHelper;
import joshie.harvest.core.tile.TileMailbox;
import joshie.harvest.knowledge.letter.LetterHelper;
import joshie.harvest.npcs.HFNPCs;
import joshie.harvest.npcs.item.ItemNPCTool.NPCTool;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumFacing;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import javax.annotation.Nonnull;
@SideOnly(Side.CLIENT)
public class SpecialRendererMailbox extends TileSpecialRendererItem<TileMailbox> {
private static final ItemStack SPEECH = HFNPCs.TOOLS.getStackFromEnum(NPCTool.SPEECH);
private static final ItemStack MAIL = HFNPCs.TOOLS.getStackFromEnum(NPCTool.MAIL);
@Override
public void renderTileEntityAt(@Nonnull TileMailbox tile, double x, double y, double z, float tick, int destroyStage) {
if (LetterHelper.hasUnreadLetters(MCClientHelper.getPlayer())) {
GlStateManager.pushMatrix();
GlStateManager.translate(x, y, z);
EnumFacing facing = tile.getFacing();
if (facing == EnumFacing.NORTH) {
renderItem(SPEECH, 0F, 0.5F, 1F, 0F);
renderItem(MAIL, -0.1F, 0.5F, 1F, 0.025F);
} else if (facing == EnumFacing.SOUTH) {
renderItem(SPEECH, 0F, 0.5F, 0F, 0F);
renderItem(MAIL, -0.1F, 0.5F, 0F, 0.025F);
} else if (facing == EnumFacing.WEST) {
renderItem(SPEECH, 0F, 1F, 0.5F, 0F);
renderItem(MAIL, -0.1F, 1F, 0.5F, 0.025F);
} else if (facing == EnumFacing.EAST) {
renderItem(SPEECH, 0F, 0F, 0.5F, 0F);
renderItem(MAIL, -0.1F, 0F, 0.5F, 0.025F);
}
GlStateManager.popMatrix();
}
}
@Override
protected void translateItem(boolean isBlock, float position, float positionX, float positionZ, float offset2) {
GlStateManager.translate(positionX, 1.4F, positionZ);
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(0F, offset2 * 3.5F, position * 0.75F);
} else {
GlStateManager.rotate(-MCClientHelper.getPlayer().rotationYaw, 0F, 1F, 0F);
GlStateManager.translate(0F, 2F, position - 1F);
}
}
}