diff options
Diffstat (limited to 'src/main/java/com/detrav/events/DetravDrawBlockHighlightEventHandler.java')
-rw-r--r-- | src/main/java/com/detrav/events/DetravDrawBlockHighlightEventHandler.java | 268 |
1 files changed, 0 insertions, 268 deletions
diff --git a/src/main/java/com/detrav/events/DetravDrawBlockHighlightEventHandler.java b/src/main/java/com/detrav/events/DetravDrawBlockHighlightEventHandler.java deleted file mode 100644 index 25b29c8e96..0000000000 --- a/src/main/java/com/detrav/events/DetravDrawBlockHighlightEventHandler.java +++ /dev/null @@ -1,268 +0,0 @@ -package com.detrav.events; - -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import net.minecraft.block.Block; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.MovingObjectPosition; -import net.minecraftforge.client.event.DrawBlockHighlightEvent; -import net.minecraftforge.common.MinecraftForge; -import org.lwjgl.opengl.GL11; - -import static org.lwjgl.opengl.GL11.GL_TRIANGLES; -//import net.minecraftforge.client.event.RenderWorldLastEvent; - -/** - * Created by wital_000 on 18.04.2016. - */ -public class DetravDrawBlockHighlightEventHandler { - - public static long modeBlockBreak = 0L; - public static boolean disableDepthBuffer = false; - public static float thickness = 4F; - public static float offset = 0.01F; - public static float red = 1F;//0.1F; - public static float green = 1F; - public static float blue = 1F;//0.1F; - public static float alpha = 0.1F; - - @SubscribeEvent - public void onDrawBlockHighlight(DrawBlockHighlightEvent e) { - if (drawMoreSelectionBox(e.player, e.target, 0, e.currentItem, e.partialTicks)) - e.setCanceled(true); - } - - public static boolean drawMoreSelectionBox(EntityPlayer player, MovingObjectPosition mouseHit, int par3, ItemStack par4ItemStack, float par5) { - switch ((int) modeBlockBreak) { - //case 0: Просто рисуем без экспанда - case 0: - //drawSelectionBox(player, mouseHit.typeOfHit, mouseHit.blockX , mouseHit.blockY, mouseHit.blockZ , par3, par4ItemStack, par5); - return false; - case 1: - switch (mouseHit.sideHit) {//Рисуеи по моусхиту - case 0: - case 1://x,z - for (int i = -1; i <= 1; i++) - for (int j = -1; j <= 1; j++) - drawSelectionBox(player, mouseHit.typeOfHit, mouseHit.blockX + i, mouseHit.blockY, mouseHit.blockZ + j, par3, par4ItemStack, par5); - break; - case 2: - case 3://x,y - for (int i = -1; i <= 1; i++) - for (int j = -1; j <= 1; j++) - drawSelectionBox(player, mouseHit.typeOfHit, mouseHit.blockX + i, mouseHit.blockY + j, mouseHit.blockZ, par3, par4ItemStack, par5); - break; - case 4: - case 5://y,z - for (int i = -1; i <= 1; i++) - for (int j = -1; j <= 1; j++) - drawSelectionBox(player, mouseHit.typeOfHit, mouseHit.blockX, mouseHit.blockY + i, mouseHit.blockZ + j, par3, par4ItemStack, par5); - break; - } - break; - case 2://x,z - for (int i = -1; i <= 1; i++) - for (int j = -1; j <= 1; j++) - drawSelectionBox(player, mouseHit.typeOfHit, mouseHit.blockX + i, mouseHit.blockY, mouseHit.blockZ + j, par3, par4ItemStack, par5); - break; - case 3: - float rotationYaw = player.rotationYaw; - while (rotationYaw > 0) rotationYaw -= 360F; - while (rotationYaw < -360) rotationYaw += 360F; - if ((-135 <= rotationYaw && rotationYaw <= -45) || (-315 <= rotationYaw && rotationYaw <= -225)) { - //y,z - for (int i = -1; i <= 1; i++) - for (int j = -1; j <= 1; j++) - drawSelectionBox(player, mouseHit.typeOfHit, mouseHit.blockX, mouseHit.blockY + i, mouseHit.blockZ + j, par3, par4ItemStack, par5); - } else if ((-225 <= rotationYaw && rotationYaw <= -135) || -45 <= rotationYaw || rotationYaw <= -315) { - //x,y - for (int i = -1; i <= 1; i++) - for (int j = -1; j <= 1; j++) - drawSelectionBox(player, mouseHit.typeOfHit, mouseHit.blockX + i, mouseHit.blockY + j, mouseHit.blockZ, par3, par4ItemStack, par5); - } - break; - case 4: - //x,y,z - for (int i = -1; i <= 1; i++) - for (int j = -1; j <= 1; j++) - for (int k = -1; k <= 1; k++) - drawSelectionBox(player, mouseHit.typeOfHit, mouseHit.blockX + i, mouseHit.blockY + j, mouseHit.blockZ + k, par3, par4ItemStack, par5); - break; - } - return false; - } - - public static void drawSelectionBox(EntityPlayer player,MovingObjectPosition.MovingObjectType typeOfHit, int blockX,int blockY, int blockZ, int par3, ItemStack par4ItemStack, float par5) { - if ((par3 == 0) && (typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK)) { - //float breakProgress = getBlockDamage(player, block); - if (disableDepthBuffer) { - GL11.glDisable(2929); - } - GL11.glEnable(3042); - GL11.glBlendFunc(770, 771); - GL11.glLineWidth(thickness); - GL11.glDisable(3553); - GL11.glDepthMask(false); - float f1 = offset; - - Minecraft mc = Minecraft.getMinecraft(); - Block b = mc.theWorld.getBlock(blockX, blockY, blockZ); - if (b != Blocks.air && b!= null) { - b.setBlockBoundsBasedOnState(mc.theWorld, blockX, blockY, blockZ); - - double xOffset = player.lastTickPosX + (player.posX - player.lastTickPosX) * par5; - double yOffset = player.lastTickPosY + (player.posY - player.lastTickPosY) * par5; - double zOffset = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * par5; - - float xExpand = 0F; - float yExpand = 0F; - float zExpand = 0F; - - - - try { - AxisAlignedBB bb = b.getSelectedBoundingBoxFromPool(mc.theWorld, blockX, blockY, blockZ).expand(xExpand + f1, yExpand + f1, zExpand + f1).getOffsetBoundingBox(-xOffset, -yOffset, -zOffset); - GL11.glColor4f(red, green, blue, alpha); - //drawOutlinedBoundingBox(bb); - drawBlock(bb); - }catch(Exception e) { - - } - - } - GL11.glDepthMask(true); - GL11.glEnable(3553); - GL11.glDisable(3042); - if (disableDepthBuffer) { - GL11.glEnable(2929); - } - } - } - - private static void drawBlock(AxisAlignedBB par1AxisAlignedBB) { - //Tessellator tessellator = Tessellator.instance; - if(alpha > 0.0F) { - - - renderDown(par1AxisAlignedBB); - renderUp(par1AxisAlignedBB); - renderNorth(par1AxisAlignedBB); - renderSouth(par1AxisAlignedBB); - renderWest(par1AxisAlignedBB); - renderEast(par1AxisAlignedBB); - } - - } - - - public static void renderUp(AxisAlignedBB par1AxisAlignedBB) { - Tessellator tessellator = Tessellator.instance; - tessellator.startDrawingQuads(); - tessellator.addVertex(par1AxisAlignedBB.minX, par1AxisAlignedBB.minY, par1AxisAlignedBB.minZ); - tessellator.addVertex(par1AxisAlignedBB.maxX, par1AxisAlignedBB.minY, par1AxisAlignedBB.minZ); - tessellator.addVertex(par1AxisAlignedBB.maxX, par1AxisAlignedBB.minY, par1AxisAlignedBB.maxZ); - tessellator.addVertex(par1AxisAlignedBB.minX, par1AxisAlignedBB.minY, par1AxisAlignedBB.maxZ); - tessellator.addVertex(par1AxisAlignedBB.minX, par1AxisAlignedBB.minY, par1AxisAlignedBB.minZ); - tessellator.draw(); - } - - public static void renderDown(AxisAlignedBB par1AxisAlignedBB) { - Tessellator tessellator = Tessellator.instance; - tessellator.startDrawingQuads(); - tessellator.addVertex(par1AxisAlignedBB.minX, par1AxisAlignedBB.maxY, par1AxisAlignedBB.minZ); - tessellator.addVertex(par1AxisAlignedBB.minX, par1AxisAlignedBB.maxY, par1AxisAlignedBB.maxZ); - tessellator.addVertex(par1AxisAlignedBB.maxX, par1AxisAlignedBB.maxY, par1AxisAlignedBB.maxZ); - tessellator.addVertex(par1AxisAlignedBB.maxX, par1AxisAlignedBB.maxY, par1AxisAlignedBB.minZ); - tessellator.addVertex(par1AxisAlignedBB.minX, par1AxisAlignedBB.maxY, par1AxisAlignedBB.minZ); - tessellator.draw(); - } - - public static void renderNorth(AxisAlignedBB par1AxisAlignedBB) { - Tessellator tessellator = Tessellator.instance; - tessellator.startDrawingQuads(); - tessellator.addVertex(par1AxisAlignedBB.minX, par1AxisAlignedBB.minY, par1AxisAlignedBB.minZ); - tessellator.addVertex(par1AxisAlignedBB.minX, par1AxisAlignedBB.maxY, par1AxisAlignedBB.minZ); - tessellator.addVertex(par1AxisAlignedBB.maxX, par1AxisAlignedBB.maxY, par1AxisAlignedBB.minZ); - tessellator.addVertex(par1AxisAlignedBB.maxX, par1AxisAlignedBB.minY, par1AxisAlignedBB.minZ); - tessellator.addVertex(par1AxisAlignedBB.minX, par1AxisAlignedBB.minY, par1AxisAlignedBB.minZ); - tessellator.draw(); - } - - public static void renderSouth(AxisAlignedBB par1AxisAlignedBB) { - Tessellator tessellator = Tessellator.instance; - tessellator.startDrawingQuads(); - tessellator.addVertex(par1AxisAlignedBB.minX, par1AxisAlignedBB.minY, par1AxisAlignedBB.maxZ); - tessellator.addVertex(par1AxisAlignedBB.maxX, par1AxisAlignedBB.minY, par1AxisAlignedBB.maxZ); - tessellator.addVertex(par1AxisAlignedBB.maxX, par1AxisAlignedBB.maxY, par1AxisAlignedBB.maxZ); - tessellator.addVertex(par1AxisAlignedBB.minX, par1AxisAlignedBB.maxY, par1AxisAlignedBB.maxZ); - tessellator.addVertex(par1AxisAlignedBB.minX, par1AxisAlignedBB.minY, par1AxisAlignedBB.maxZ); - tessellator.draw(); - } - - public static void renderWest(AxisAlignedBB par1AxisAlignedBB) { - Tessellator tessellator = Tessellator.instance; - tessellator.startDrawingQuads(); - tessellator.addVertex(par1AxisAlignedBB.minX, par1AxisAlignedBB.minY, par1AxisAlignedBB.minZ); - tessellator.addVertex(par1AxisAlignedBB.minX, par1AxisAlignedBB.minY, par1AxisAlignedBB.maxZ); - tessellator.addVertex(par1AxisAlignedBB.minX, par1AxisAlignedBB.maxY, par1AxisAlignedBB.maxZ); - tessellator.addVertex(par1AxisAlignedBB.minX, par1AxisAlignedBB.maxY, par1AxisAlignedBB.minZ); - tessellator.addVertex(par1AxisAlignedBB.minX, par1AxisAlignedBB.minY, par1AxisAlignedBB.minZ); - tessellator.draw(); - } - - public static void renderEast(AxisAlignedBB par1AxisAlignedBB) { - Tessellator tessellator = Tessellator.instance; - tessellator.startDrawingQuads(); - tessellator.addVertex(par1AxisAlignedBB.maxX, par1AxisAlignedBB.minY, par1AxisAlignedBB.minZ); - tessellator.addVertex(par1AxisAlignedBB.maxX, par1AxisAlignedBB.maxY, par1AxisAlignedBB.minZ); - tessellator.addVertex(par1AxisAlignedBB.maxX, par1AxisAlignedBB.maxY, par1AxisAlignedBB.maxZ); - tessellator.addVertex(par1AxisAlignedBB.maxX, par1AxisAlignedBB.minY, par1AxisAlignedBB.maxZ); - tessellator.addVertex(par1AxisAlignedBB.maxX, par1AxisAlignedBB.minY, par1AxisAlignedBB.minZ); - tessellator.draw(); - } - - private static void drawOutlinedBoundingBox(AxisAlignedBB par1AxisAlignedBB) { - Tessellator tessellator = Tessellator.instance; - tessellator.startDrawing(3); - tessellator.addVertex(par1AxisAlignedBB.minX, par1AxisAlignedBB.minY, par1AxisAlignedBB.minZ); - tessellator.addVertex(par1AxisAlignedBB.maxX, par1AxisAlignedBB.minY, par1AxisAlignedBB.minZ); - tessellator.addVertex(par1AxisAlignedBB.maxX, par1AxisAlignedBB.minY, par1AxisAlignedBB.maxZ); - tessellator.addVertex(par1AxisAlignedBB.minX, par1AxisAlignedBB.minY, par1AxisAlignedBB.maxZ); - tessellator.addVertex(par1AxisAlignedBB.minX, par1AxisAlignedBB.minY, par1AxisAlignedBB.minZ); - tessellator.draw(); - tessellator.startDrawing(3); - tessellator.addVertex(par1AxisAlignedBB.minX, par1AxisAlignedBB.maxY, par1AxisAlignedBB.minZ); - tessellator.addVertex(par1AxisAlignedBB.maxX, par1AxisAlignedBB.maxY, par1AxisAlignedBB.minZ); - tessellator.addVertex(par1AxisAlignedBB.maxX, par1AxisAlignedBB.maxY, par1AxisAlignedBB.maxZ); - tessellator.addVertex(par1AxisAlignedBB.minX, par1AxisAlignedBB.maxY, par1AxisAlignedBB.maxZ); - tessellator.addVertex(par1AxisAlignedBB.minX, par1AxisAlignedBB.maxY, par1AxisAlignedBB.minZ); - tessellator.draw(); - tessellator.startDrawing(1); - tessellator.addVertex(par1AxisAlignedBB.minX, par1AxisAlignedBB.minY, par1AxisAlignedBB.minZ); - tessellator.addVertex(par1AxisAlignedBB.minX, par1AxisAlignedBB.maxY, par1AxisAlignedBB.minZ); - tessellator.addVertex(par1AxisAlignedBB.maxX, par1AxisAlignedBB.minY, par1AxisAlignedBB.minZ); - tessellator.addVertex(par1AxisAlignedBB.maxX, par1AxisAlignedBB.maxY, par1AxisAlignedBB.minZ); - tessellator.addVertex(par1AxisAlignedBB.maxX, par1AxisAlignedBB.minY, par1AxisAlignedBB.maxZ); - tessellator.addVertex(par1AxisAlignedBB.maxX, par1AxisAlignedBB.maxY, par1AxisAlignedBB.maxZ); - tessellator.addVertex(par1AxisAlignedBB.minX, par1AxisAlignedBB.minY, par1AxisAlignedBB.maxZ); - tessellator.addVertex(par1AxisAlignedBB.minX, par1AxisAlignedBB.maxY, par1AxisAlignedBB.maxZ); - tessellator.draw(); - } - - - static boolean inited = false; - - public static void register() { - if (!inited) { - inited = true; - DetravDrawBlockHighlightEventHandler handler = new DetravDrawBlockHighlightEventHandler(); - MinecraftForge.EVENT_BUS.register(handler); - FMLCommonHandler.instance().bus().register(handler); - } - } -}
\ No newline at end of file |