mffs/src/main/java/calclavia/lib/render/RenderTaggedTile.java

68 lines
2.8 KiB
Java

package calclavia.lib.render;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.EntityClientPlayerMP;
import net.minecraft.client.renderer.entity.RendererLivingEntity;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MovingObjectPosition;
@SideOnly(Side.CLIENT)
public abstract class RenderTaggedTile extends TileEntitySpecialRenderer {
@Override
public void renderTileEntityAt(TileEntity t, double x, double y, double z, float f) {
if (t != null && t instanceof ITagRender
&& this.getPlayer().getDistance(
(double) t.xCoord, (double) t.yCoord, (double) t.zCoord
) <= (double) RendererLivingEntity.NAME_TAG_RANGE) {
HashMap tags = new HashMap();
float height = ((ITagRender) t).addInformation(tags, this.getPlayer());
EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer;
if (player.ridingEntity == null) {
MovingObjectPosition objectPosition = player.rayTrace(8.0D, 1.0F);
if (objectPosition != null) {
boolean isLooking = false;
for (int it = 0; (float) it < height; ++it) {
if (objectPosition.blockX == t.xCoord
&& objectPosition.blockY == t.yCoord + it
&& objectPosition.blockZ == t.zCoord) {
isLooking = true;
}
}
if (isLooking) {
Iterator var17 = tags.entrySet().iterator();
for (int i = 0; var17.hasNext(); ++i) {
Entry entry = (Entry) var17.next();
if (entry.getKey() != null) {
CalclaviaRenderHelper.renderFloatingText(
(String) entry.getKey(),
(float) x + 0.5F,
(float) y + (float) i * 0.25F - 2.0F + height,
(float) z + 0.5F,
((Integer) entry.getValue()).intValue()
);
}
}
}
}
}
}
}
public EntityPlayer getPlayer() {
EntityLivingBase entity = this.field_147501_a.field_147551_g;
return entity instanceof EntityPlayer ? (EntityPlayer) entity : null;
}
}