generated from tilera/1710mod
65 lines
2.4 KiB
Java
65 lines
2.4 KiB
Java
package calclavia.lib.render;
|
|
|
|
import cpw.mods.fml.relauncher.Side;
|
|
import cpw.mods.fml.relauncher.SideOnly;
|
|
import java.util.HashMap;
|
|
import java.util.Iterator;
|
|
import java.util.Map.Entry;
|
|
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;
|
|
}
|
|
}
|