Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
global-as написал(а):эээ что это значит
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.MovingObjectPosition;
import net.minecraftforge.client.event.DrawBlockHighlightEvent;
import org.lwjgl.opengl.GL11;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
public class EventsForgeClient {
Minecraft mc = Minecraft.getMinecraft();
@SubscribeEvent
public void selectHighlight(DrawBlockHighlightEvent event) {
if (event.target != null && event.target.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) {
//dot start
double ax = event.target.blockX;
double ay = event.target.blockY;
double az = event.target.blockZ;
//dot end
double bx = event.target.blockX + 1;
double by = event.target.blockY + 1;
double bz = event.target.blockZ + 1;
AxisAlignedBB aabb = AxisAlignedBB.getBoundingBox(ax, ay, az, bx, by, bz).expand(0.01D, 0.01D, 0.01D);
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);
//
GL11.glColor4f(0.75F, 0.25F, 0.25F, 0.25F);
box(aabb);
GL11.glColor4f(0.75F, 0.25F, 0.25F, 0.75F);
lines(aabb);
GL11.glColor4f(1F, 1F, 1F, 0F);
//
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();
}
}
MovingObjectPosition.MovingObjectType.BLOCK
EnumMovingObjectType.TILE
MinecraftForge.EVENT_BUS.register(new EventsForgeClient());