private static void voidRender(Tessellator tessellator, int w_min, int w_max, int h_min, int h_max, final ResourceLocation texture) {
mc.getTextureManager().bindTexture(texture);
tessellator.startDrawingQuads();
tessellator.addVertexWithUV((double)w_min, (double)h_max, 0.0D, 0.0D, 1.0D);
tessellator.addVertexWithUV((double)w_max, (double)h_max, 0.0D, 1.0D, 1.0D);
tessellator.addVertexWithUV((double)w_max, (double)h_min, 0.0D, 1.0D, 0.0D);
tessellator.addVertexWithUV((double)w_min, (double)h_min, 0.0D, 0.0D, 0.0D);
tessellator.draw();
}
public class EventWeaponsClient {
//--------------------------------------------------------------------------------------------------------------
private static final Minecraft mc = Minecraft.getMinecraft();
//--------------------------------------------------------------------------------------------------------------
@SubscribeEvent
public void onRenderCrosshairs(RenderGameOverlayEvent.Pre e) {
EntityClientPlayerMP player = UtilSMT.getPlayerClient();
ItemStack current = player.getCurrentEquippedItem();
if (current != null && current.getItem() instanceof IScope && current.getTagCompound() != null) {
NBTTagCompound nbt = current.getTagCompound();
if (e.type.equals(ElementType.CROSSHAIRS) && nbt.hasKey("Aim") && nbt.getBoolean("Aim")) {
Tessellator tessellator = Tessellator.instance;
int width = e.resolution.getScaledWidth();
int height = e.resolution.getScaledHeight();
GL11.glPushMatrix();
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
int w_min = 0;
int w_max = width;
int h_min = 0;
int h_max = height;
if (width > height) {
w_min = (width / 2) - (height /2);
w_max = (width / 2) + (height /2);
//-------------------------------------------------------------
voidRender(tessellator, 0, w_min, h_min, h_max, new ResourceLocation("timaxa007", "textures/gui/scope/scope_blank_null.png"));
voidRender(tessellator, w_max, width, h_min, h_max, new ResourceLocation("timaxa007", "textures/gui/scope/scope_blank_null.png"));
//-------------------------------------------------------------
} else if (height > width) {
h_min = (height / 2) - (width /2);
h_max = (height / 2) + (width /2);
//-------------------------------------------------------------
voidRender(tessellator, w_min, w_max, 0, h_min, new ResourceLocation("timaxa007", "textures/gui/scope/scope_blank_null.png"));
voidRender(tessellator, w_min, w_max, h_max, height, new ResourceLocation("timaxa007", "textures/gui/scope/scope_blank_null.png"));
//-------------------------------------------------------------
}
//-------------------------------------------------------------
voidRender(tessellator, w_min, w_max, h_min, h_max, new ResourceLocation("timaxa007", "textures/gui/scope/scope_blank_11.png"));
//-------------------------------------------------------------
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
GL11.glPopMatrix();
//mc.getTextureManager().bindTexture(resLoc);
//mc.ingameGUI.drawTexturedModalRect(x, y, 0, 0, 32, 32);
e.setCanceled(true);
}
}
}
//--------------------------------------------------------------------------------------------------------------
private static void voidRender(Tessellator tessellator, int w_min, int w_max, int h_min, int h_max, final ResourceLocation texture) {
mc.getTextureManager().bindTexture(texture);
tessellator.startDrawingQuads();
tessellator.addVertexWithUV((double)w_min, (double)h_max, -90.0D, 0.0D, 1.0D);
tessellator.addVertexWithUV((double)w_max, (double)h_max, -90.0D, 1.0D, 1.0D);
tessellator.addVertexWithUV((double)w_max, (double)h_min, -90.0D, 1.0D, 0.0D);
tessellator.addVertexWithUV((double)w_min, (double)h_min, -90.0D, 0.0D, 0.0D);
tessellator.draw();
}
//--------------------------------------------------------------------------------------------------------------
}
//
bindTexture(texture);
Tessellator tessellator = Tessellator.instance;
boxWithUV(tessellator, 0D, 0D, 0D, 1D, 1D, 1D);
//
public static void boxWithUV(Tessellator tessellator, double minX, double minY, double minZ, double maxX, double maxY, double maxZ) {
tessellator.startDrawingQuads();
//Top
tessellator.addVertexWithUV(maxX, maxY, minZ, maxX, minZ);
tessellator.addVertexWithUV(minX, maxY, minZ, minX, minZ);
tessellator.addVertexWithUV(minX, maxY, maxZ, minX, maxZ);
tessellator.addVertexWithUV(maxX, maxY, maxZ, maxX, maxZ);
//Bottom
tessellator.addVertexWithUV(maxX, minY, maxZ, maxX, maxZ);
tessellator.addVertexWithUV(minX, minY, maxZ, minX, maxZ);
tessellator.addVertexWithUV(minX, minY, minZ, minX, minZ);
tessellator.addVertexWithUV(maxX, minY, minZ, maxX, minZ);
//North
tessellator.addVertexWithUV(maxX, minY, minZ, minX, maxY);
tessellator.addVertexWithUV(minX, minY, minZ, maxX, maxY);
tessellator.addVertexWithUV(minX, maxY, minZ, maxX, minY);
tessellator.addVertexWithUV(maxX, maxY, minZ, minX, minY);
//South
tessellator.addVertexWithUV(maxX, maxY, maxZ, maxX, minY);
tessellator.addVertexWithUV(minX, maxY, maxZ, minX, minY);
tessellator.addVertexWithUV(minX, minY, maxZ, minX, maxY);
tessellator.addVertexWithUV(maxX, minY, maxZ, maxX, maxY);
//West
tessellator.addVertexWithUV(minX, maxY, maxZ, maxY, minZ);
tessellator.addVertexWithUV(minX, maxY, minZ, minY, minZ);
tessellator.addVertexWithUV(minX, minY, minZ, minY, maxZ);
tessellator.addVertexWithUV(minX, minY, maxZ, maxY, maxZ);
//East
tessellator.addVertexWithUV(maxX, minY, maxZ, minY, maxZ);
tessellator.addVertexWithUV(maxX, minY, minZ, maxY, maxZ);
tessellator.addVertexWithUV(maxX, maxY, minZ, maxY, minZ);
tessellator.addVertexWithUV(maxX, maxY, maxZ, minY, minZ);
tessellator.draw();
}
static Minecraft mc = Minecraft.getMinecraft();
static Tessellator tessellator = Tessellator.instance;
static ResourceLocation texture = new ResourceLocation("modid", "textures/texture.png");
@SubscribeEvent
public void renderSide(DrawBlockHighlightEvent event) {
if (event.target != null && event.target.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) {
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(
(double)event.target.blockX + x_fix,
(double)event.target.blockY + y_fix,
(double)event.target.blockZ + z_fix
);
AxisAlignedBB aabb = AxisAlignedBB.getBoundingBox(
0D - 0.005D,
0D - 0.005D,
0D - 0.005D,
1D + 0.005D,
1D + 0.005D,
1D + 0.005D
);
double icon_minX = aabb.minX < 0D ? 0D : aabb.minX;
double icon_minY = aabb.minY < 0D ? 0D : aabb.minY;
double icon_minZ = aabb.minZ < 0D ? 0D : aabb.minZ;
double icon_maxX = aabb.maxX > 1D ? 1D : aabb.maxX;
double icon_maxY = aabb.maxY > 1D ? 1D : aabb.maxY;
double icon_maxZ = aabb.maxZ > 1D ? 1D : aabb.maxZ;
mc.getTextureManager().bindTexture(texture);
tessellator.startDrawingQuads();
switch(event.target.sideHit) {
case 1:
//Top
tessellator.addVertexWithUV(aabb.maxX, aabb.maxY, aabb.minZ, icon_maxX, icon_minZ);
tessellator.addVertexWithUV(aabb.minX, aabb.maxY, aabb.minZ, icon_minX, icon_minZ);
tessellator.addVertexWithUV(aabb.minX, aabb.maxY, aabb.maxZ, icon_minX, icon_maxZ);
tessellator.addVertexWithUV(aabb.maxX, aabb.maxY, aabb.maxZ, icon_maxX, icon_maxZ);
break;
case 0:
//Bottom
tessellator.addVertexWithUV(aabb.maxX, aabb.minY, aabb.maxZ, icon_maxX, icon_maxZ);
tessellator.addVertexWithUV(aabb.minX, aabb.minY, aabb.maxZ, icon_minX, icon_maxZ);
tessellator.addVertexWithUV(aabb.minX, aabb.minY, aabb.minZ, icon_minX, icon_minZ);
tessellator.addVertexWithUV(aabb.maxX, aabb.minY, aabb.minZ, icon_maxX, icon_minZ);
break;
case 2:
//North
tessellator.addVertexWithUV(aabb.maxX, aabb.minY, aabb.minZ, icon_minX, icon_maxY);
tessellator.addVertexWithUV(aabb.minX, aabb.minY, aabb.minZ, icon_maxX, icon_maxY);
tessellator.addVertexWithUV(aabb.minX, aabb.maxY, aabb.minZ, icon_maxX, icon_minY);
tessellator.addVertexWithUV(aabb.maxX, aabb.maxY, aabb.minZ, icon_minX, icon_minY);
break;
case 3:
//South
tessellator.addVertexWithUV(aabb.maxX, aabb.maxY, aabb.maxZ, icon_maxX, icon_minY);
tessellator.addVertexWithUV(aabb.minX, aabb.maxY, aabb.maxZ, icon_minX, icon_minY);
tessellator.addVertexWithUV(aabb.minX, aabb.minY, aabb.maxZ, icon_minX, icon_maxY);
tessellator.addVertexWithUV(aabb.maxX, aabb.minY, aabb.maxZ, icon_maxX, icon_maxY);
break;
case 4:
//West
tessellator.addVertexWithUV(aabb.minX, aabb.maxY, aabb.maxZ, icon_maxY, icon_minZ);
tessellator.addVertexWithUV(aabb.minX, aabb.maxY, aabb.minZ, icon_minY, icon_minZ);
tessellator.addVertexWithUV(aabb.minX, aabb.minY, aabb.minZ, icon_minY, icon_maxZ);
tessellator.addVertexWithUV(aabb.minX, aabb.minY, aabb.maxZ, icon_maxY, icon_maxZ);
break;
case 5:
//East
tessellator.addVertexWithUV(aabb.maxX, aabb.minY, aabb.maxZ, icon_minY, icon_maxZ);
tessellator.addVertexWithUV(aabb.maxX, aabb.minY, aabb.minZ, icon_maxY, icon_maxZ);
tessellator.addVertexWithUV(aabb.maxX, aabb.maxY, aabb.minZ, icon_maxY, icon_minZ);
tessellator.addVertexWithUV(aabb.maxX, aabb.maxY, aabb.maxZ, icon_minY, icon_minZ);
break;
}
tessellator.draw();
GL11.glPopMatrix();
}
}
PlayerInteractEventtimaxa007 написал(а):эвент если на серверной стороне
import net.minecraft.client.settings.GameSettings;
Minecraft mc = Minecraft.getMinecraft();
if (GameSettings.isKeyDown(mc.gameSettings.keyBindAttack))
if (GameSettings.isKeyDown(mc.gameSettings.keyBindUseItem))
tessellator.addVertexWithUV(x, y, z, u, v);