public class EventForgeClient {
Minecraft mc = Minecraft.getMinecraft();
@SubscribeEvent
public void renderBoxEntity(RenderWorldLastEvent event) {
double x_fix = -(mc.thePlayer.lastTickPosX + (mc.thePlayer.posX - mc.thePlayer.lastTickPosX) * event.partialTicks);
double y_fix = -(mc.thePlayer.lastTickPosY + (mc.thePlayer.posY - mc.thePlayer.lastTickPosY) * event.partialTicks);
double z_fix = -(mc.thePlayer.lastTickPosZ + (mc.thePlayer.posZ - mc.thePlayer.lastTickPosZ) * event.partialTicks);
GL11.glPushMatrix();
GL11.glTranslated(x_fix, y_fix, z_fix);
GL11.glEnable(GL11.GL_BLEND);
GL11.glDisable(GL11.GL_TEXTURE_2D);
for (int i = 0; i < mc.theWorld.loadedEntityList.size(); ++i) {
if (mc.theWorld.loadedEntityList.get(i) instanceof EntityLivingBase) {
EntityLivingBase entity = (EntityLivingBase)mc.theWorld.loadedEntityList.get(i);
GL11.glColor4f(1.0F, 1.0F, 1.0F, 0.25F);
box(entity.boundingBox);
GL11.glColor4f(1.0F, 1.0F, 1.0F, 0.75F);
lines(entity.boundingBox);
GL11.glColor4f(1F, 1F, 1F, 1F);
}
}
GL11.glEnable(GL11.GL_TEXTURE_2D);
GL11.glDisable(GL11.GL_BLEND);
GL11.glPopMatrix();
}
public static void box(AxisAlignedBB aabb) {
Tessellator tessellator = Tessellator.instance;
tessellator.startDrawingQuads();
//top
tessellator.addVertex(aabb.maxX, aabb.maxY, aabb.minZ);
tessellator.addVertex(aabb.minX, aabb.maxY, aabb.minZ);
tessellator.addVertex(aabb.minX, aabb.maxY, aabb.maxZ);
tessellator.addVertex(aabb.maxX, aabb.maxY, aabb.maxZ);
//bottom
tessellator.addVertex(aabb.maxX, aabb.minY, aabb.maxZ);
tessellator.addVertex(aabb.minX, aabb.minY, aabb.maxZ);
tessellator.addVertex(aabb.minX, aabb.minY, aabb.minZ);
tessellator.addVertex(aabb.maxX, aabb.minY, aabb.minZ);
//north
tessellator.addVertex(aabb.maxX, aabb.minY, aabb.minZ);
tessellator.addVertex(aabb.minX, aabb.minY, aabb.minZ);
tessellator.addVertex(aabb.minX, aabb.maxY, aabb.minZ);
tessellator.addVertex(aabb.maxX, aabb.maxY, aabb.minZ);
//south
tessellator.addVertex(aabb.maxX, aabb.maxY, aabb.maxZ);
tessellator.addVertex(aabb.minX, aabb.maxY, aabb.maxZ);
tessellator.addVertex(aabb.minX, aabb.minY, aabb.maxZ);
tessellator.addVertex(aabb.maxX, aabb.minY, aabb.maxZ);
//west
tessellator.addVertex(aabb.minX, aabb.maxY, aabb.maxZ);
tessellator.addVertex(aabb.minX, aabb.maxY, aabb.minZ);
tessellator.addVertex(aabb.minX, aabb.minY, aabb.minZ);
tessellator.addVertex(aabb.minX, aabb.minY, aabb.maxZ);
//east
tessellator.addVertex(aabb.maxX, aabb.minY, aabb.maxZ);
tessellator.addVertex(aabb.maxX, aabb.minY, aabb.minZ);
tessellator.addVertex(aabb.maxX, aabb.maxY, aabb.minZ);
tessellator.addVertex(aabb.maxX, aabb.maxY, aabb.maxZ);
tessellator.draw();
}
public static void lines(AxisAlignedBB aabb) {
GL11.glBegin(GL11.GL_LINES);
/*-top-*/
GL11.glVertex3d(aabb.minX, aabb.maxY, aabb.minZ);//a - 1
GL11.glVertex3d(aabb.maxX, aabb.maxY, aabb.minZ);//b - 2
GL11.glVertex3d(aabb.maxX, aabb.maxY, aabb.minZ);//a - 2
GL11.glVertex3d(aabb.maxX, aabb.maxY, aabb.maxZ);//b - 3
GL11.glVertex3d(aabb.maxX, aabb.maxY, aabb.maxZ);//a - 3
GL11.glVertex3d(aabb.minX, aabb.maxY, aabb.maxZ);//b - 4
GL11.glVertex3d(aabb.minX, aabb.maxY, aabb.maxZ);//a - 4
GL11.glVertex3d(aabb.minX, aabb.maxY, aabb.minZ);//b - 1
/*-bottom-*/
GL11.glVertex3d(aabb.minX, aabb.minY, aabb.minZ);//a - 1
GL11.glVertex3d(aabb.maxX, aabb.minY, aabb.minZ);//b - 2
GL11.glVertex3d(aabb.maxX, aabb.minY, aabb.minZ);//a - 2
GL11.glVertex3d(aabb.maxX, aabb.minY, aabb.maxZ);//b - 3
GL11.glVertex3d(aabb.maxX, aabb.minY, aabb.maxZ);//a - 3
GL11.glVertex3d(aabb.minX, aabb.minY, aabb.maxZ);//b - 4
GL11.glVertex3d(aabb.minX, aabb.minY, aabb.maxZ);//a - 4
GL11.glVertex3d(aabb.minX, aabb.minY, aabb.minZ);//b - 1
/*-side-/-edge-*/
GL11.glVertex3d(aabb.minX, aabb.maxY, aabb.minZ);//a
GL11.glVertex3d(aabb.minX, aabb.minY, aabb.minZ);//b
GL11.glVertex3d(aabb.maxX, aabb.maxY, aabb.maxZ);//a
GL11.glVertex3d(aabb.maxX, aabb.minY, aabb.maxZ);//b
GL11.glVertex3d(aabb.maxX, aabb.maxY, aabb.minZ);//a
GL11.glVertex3d(aabb.maxX, aabb.minY, aabb.minZ);//b
GL11.glVertex3d(aabb.minX, aabb.maxY, aabb.maxZ);//a
GL11.glVertex3d(aabb.minX, aabb.minY, aabb.maxZ);//b
GL11.glEnd();
}
}