diff --git a/src/main/java/exopandora/worldhandler/config/ConfigCategorySettings.java b/src/main/java/exopandora/worldhandler/config/ConfigCategorySettings.java index 1acee53..b84e5c7 100644 --- a/src/main/java/exopandora/worldhandler/config/ConfigCategorySettings.java +++ b/src/main/java/exopandora/worldhandler/config/ConfigCategorySettings.java @@ -21,7 +21,7 @@ public class ConfigCategorySettings private final BooleanValue pause; private final BooleanValue customTimes; private final BooleanValue permissionQuery; -// private final BooleanValue highlightBlocks; + private final BooleanValue highlightBlocks; private final IntValue dawn; private final IntValue noon; private final IntValue sunset; @@ -68,10 +68,10 @@ public class ConfigCategorySettings .translation("gui.worldhandler.config.settings.permission_query") .comment("Whether or not the permission query is enabled") .define("permission_query", true); -// this.highlightBlocks = builder -// .translation("gui.worldhandler.config.settings.highlight_blocks") -// .comment("Whether or not selected blocks will be highlighted") -// .define("highlight_blocks", true); + this.highlightBlocks = builder + .translation("gui.worldhandler.config.settings.highlight_blocks") + .comment("Whether or not selected blocks will be highlighted") + .define("highlight_blocks", true); this.dawn = builder .translation("gui.worldhandler.config.settings.custom_time_dawn") @@ -188,15 +188,15 @@ public class ConfigCategorySettings Config.set(this.permissionQuery, enabled); } -// public boolean highlightBlocks() -// { -// return this.highlightBlocks.get(); -// } -// -// public void setHighlightBlocks(boolean enabled) -// { -// Config.set(this.highlightBlocks, enabled); -// } + public boolean highlightBlocks() + { + return this.highlightBlocks.get(); + } + + public void setHighlightBlocks(boolean enabled) + { + Config.set(this.highlightBlocks, enabled); + } public int getDawn() { diff --git a/src/main/java/exopandora/worldhandler/event/ClientEventHandler.java b/src/main/java/exopandora/worldhandler/event/ClientEventHandler.java index a74ab44..0e63895 100644 --- a/src/main/java/exopandora/worldhandler/event/ClientEventHandler.java +++ b/src/main/java/exopandora/worldhandler/event/ClientEventHandler.java @@ -1,13 +1,21 @@ package exopandora.worldhandler.event; +import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.IVertexBuilder; import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.ParseResults; import com.mojang.brigadier.StringReader; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import exopandora.worldhandler.config.Config; +import exopandora.worldhandler.util.BlockHelper; import exopandora.worldhandler.util.CommandHelper; import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.IRenderTypeBuffer; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.WorldRenderer; import net.minecraft.command.CommandSource; +import net.minecraft.util.math.Vec3d; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.client.event.ClientChatEvent; @@ -20,68 +28,30 @@ public class ClientEventHandler @SubscribeEvent public static void renderWorldLastEvent(RenderWorldLastEvent event) { -// if(Config.getSettings().highlightBlocks() && Minecraft.getInstance().world != null && Minecraft.getInstance().getRenderManager().info != null) -// { -// final double constant = 0.0020000000949949026D; -// Vec3d projected = Minecraft.getInstance().getRenderManager().info.getProjectedView(); -// -// double minX = Math.min(BlockHelper.getPos1().getX(), BlockHelper.getPos2().getX()) - constant - projected.getX(); -// double minY = Math.min(BlockHelper.getPos1().getY(), BlockHelper.getPos2().getY()) - constant - projected.getY(); -// double minZ = Math.min(BlockHelper.getPos1().getZ(), BlockHelper.getPos2().getZ()) - constant - projected.getZ(); -// -// double maxX = Math.max(BlockHelper.getPos1().getX(), BlockHelper.getPos2().getX()) + constant - projected.getX() + 1; -// double maxY = Math.max(BlockHelper.getPos1().getY(), BlockHelper.getPos2().getY()) + constant - projected.getY() + 1; -// double maxZ = Math.max(BlockHelper.getPos1().getZ(), BlockHelper.getPos2().getZ()) + constant - projected.getZ() + 1; -// -//// event.getMatrixStack().push(); -// IVertexBuilder builder = Minecraft.getInstance().getRenderTypeBuffers().getBufferSource().getBuffer(RenderType.lines()); -// WorldRenderer.drawBoundingBox(event.getMatrixStack(), builder, minX, minY, minZ, maxX, maxY, maxZ, 1.0F, 0.5F, 0.5F, 1.0F); -//// event.getMatrixStack().pop(); -// -// RenderSystem.pushMatrix(); -// RenderSystem.disableAlphaTest(); -// RenderSystem.enableBlend(); -// RenderSystem.defaultBlendFunc(); -// RenderSystem.lineWidth(2.0F); -// RenderSystem.disableTexture(); -// RenderSystem.depthMask(false); -// -// Tessellator tesselator = Tessellator.getInstance(); -// BufferBuilder buffer = tesselator.getBuffer(); -// -// final int alpha = 255; -// final int color1 = 223; -// final int color2 = 127; -// -// RenderSystem.lineWidth(2.0F); -// buffer.begin(3, DefaultVertexFormats.POSITION_COLOR); -// buffer.pos(minX, minY, minZ).color(color1, color1, color1, 0).endVertex(); -// buffer.pos(minX, minY, minZ).color(color1, color1, color1, alpha).endVertex(); -// buffer.pos(maxX, minY, minZ).color(color1, color2, color2, alpha).endVertex(); -// buffer.pos(maxX, minY, maxZ).color(color1, color1, color1, alpha).endVertex(); -// buffer.pos(minX, minY, maxZ).color(color1, color1, color1, alpha).endVertex(); -// buffer.pos(minX, minY, minZ).color(color2, color2, color1, alpha).endVertex(); -// buffer.pos(minX, maxY, minZ).color(color2, color1, color2, alpha).endVertex(); -// buffer.pos(maxX, maxY, minZ).color(color1, color1, color1, alpha).endVertex(); -// buffer.pos(maxX, maxY, maxZ).color(color1, color1, color1, alpha).endVertex(); -// buffer.pos(minX, maxY, maxZ).color(color1, color1, color1, alpha).endVertex(); -// buffer.pos(minX, maxY, minZ).color(color1, color1, color1, alpha).endVertex(); -// buffer.pos(minX, maxY, maxZ).color(color1, color1, color1, alpha).endVertex(); -// buffer.pos(minX, minY, maxZ).color(color1, color1, color1, alpha).endVertex(); -// buffer.pos(maxX, minY, maxZ).color(color1, color1, color1, alpha).endVertex(); -// buffer.pos(maxX, maxY, maxZ).color(color1, color1, color1, alpha).endVertex(); -// buffer.pos(maxX, maxY, minZ).color(color1, color1, color1, alpha).endVertex(); -// buffer.pos(maxX, minY, minZ).color(color1, color1, color1, alpha).endVertex(); -// buffer.pos(maxX, minY, minZ).color(color1, color1, color1, 0).endVertex(); -// tesselator.draw(); -// -// RenderSystem.lineWidth(1.0F); -// RenderSystem.depthMask(true); -// RenderSystem.enableTexture(); -// RenderSystem.disableBlend(); -// RenderSystem.enableAlphaTest(); -// RenderSystem.popMatrix(); -// } + if(Config.getSettings().highlightBlocks() && Minecraft.getInstance().world != null && Minecraft.getInstance().getRenderManager().info != null) + { + Vec3d projected = Minecraft.getInstance().getRenderManager().info.getProjectedView(); + + MatrixStack matrix = event.getMatrixStack(); + matrix.push(); + matrix.translate(-projected.getX(), -projected.getY(), -projected.getZ()); + + double minX = Math.min(BlockHelper.getPos1().getX(), BlockHelper.getPos2().getX()); + double minY = Math.min(BlockHelper.getPos1().getY(), BlockHelper.getPos2().getY()); + double minZ = Math.min(BlockHelper.getPos1().getZ(), BlockHelper.getPos2().getZ()); + + double maxX = Math.max(BlockHelper.getPos1().getX(), BlockHelper.getPos2().getX()) + 1; + double maxY = Math.max(BlockHelper.getPos1().getY(), BlockHelper.getPos2().getY()) + 1; + double maxZ = Math.max(BlockHelper.getPos1().getZ(), BlockHelper.getPos2().getZ()) + 1; + + IRenderTypeBuffer.Impl buffer = Minecraft.getInstance().getRenderTypeBuffers().getBufferSource(); + IVertexBuilder builder = buffer.getBuffer(RenderType.getLines()); + + WorldRenderer.drawBoundingBox(matrix, builder, minX, minY, minZ, maxX, maxY, maxZ, 0.9F, 0.9F, 0.9F, 1.0F, 0.5F, 0.5F, 0.5F); + buffer.finish(RenderType.LINES); + + matrix.pop(); + } } @SubscribeEvent diff --git a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentPlayer.java b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentPlayer.java index fd7c300..784cccd 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentPlayer.java +++ b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentPlayer.java @@ -169,7 +169,7 @@ public class ContentPlayer extends Content Minecraft.getInstance().fontRenderer.drawString(Minecraft.getInstance().player.getName().getFormattedText(), container.width / 2 - playerNameWidth + 59, yPos - 73, 0xE0E0E0); RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F); - InventoryScreen.func_228187_a_(xPos, yPos, 30, xPos - mouseX, yPos - mouseY - 44, Minecraft.getInstance().player); + InventoryScreen.drawEntityOnScreen(xPos, yPos, 30, xPos - mouseX, yPos - mouseY - 44, Minecraft.getInstance().player); RenderSystem.defaultBlendFunc(); } else if(Page.SCORE.equals(this.page)) diff --git a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentSettings.java b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentSettings.java index 69c95fe..b22d6d3 100644 --- a/src/main/java/exopandora/worldhandler/gui/content/impl/ContentSettings.java +++ b/src/main/java/exopandora/worldhandler/gui/content/impl/ContentSettings.java @@ -36,7 +36,7 @@ public class ContentSettings extends ContentChild SETTINGS.add(new BooleanSetting("pause_game", Config.CLIENT.getSettings()::pause, Config.CLIENT.getSettings()::setPause)); SETTINGS.add(new BooleanSetting("custom_times", Config.CLIENT.getSettings()::customTimes, Config.CLIENT.getSettings()::setCustomTimes)); SETTINGS.add(new BooleanSetting("permission_query", Config.CLIENT.getSettings()::permissionQuery, Config.CLIENT.getSettings()::setPermissionQuery)); -// SETTINGS.add(new BooleanSetting("highlight_blocks", Config.CLIENT.getSettings()::highlightBlocks, Config.CLIENT.getSettings()::setHighlightBlocks)); + SETTINGS.add(new BooleanSetting("highlight_blocks", Config.CLIENT.getSettings()::highlightBlocks, Config.CLIENT.getSettings()::setHighlightBlocks)); SETTINGS.add(new IntegerSetting("custom_time_dawn", Config.CLIENT.getSettings()::getDawn, Config.CLIENT.getSettings()::setDawn)); SETTINGS.add(new IntegerSetting("custom_time_noon", Config.CLIENT.getSettings()::getNoon, Config.CLIENT.getSettings()::setNoon)); SETTINGS.add(new IntegerSetting("custom_time_sunset", Config.CLIENT.getSettings()::getSunset, Config.CLIENT.getSettings()::setSunset)); diff --git a/src/main/java/exopandora/worldhandler/util/UtilRender.java b/src/main/java/exopandora/worldhandler/util/UtilRender.java index 0333330..a669561 100644 --- a/src/main/java/exopandora/worldhandler/util/UtilRender.java +++ b/src/main/java/exopandora/worldhandler/util/UtilRender.java @@ -4,6 +4,7 @@ import com.mojang.blaze3d.systems.RenderSystem; import exopandora.worldhandler.config.Config; import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.AbstractGui; import net.minecraft.client.gui.screen.Screen; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -11,7 +12,7 @@ import net.minecraftforge.api.distmarker.OnlyIn; @OnlyIn(Dist.CLIENT) public class UtilRender { - public static void drawWatchIntoGui(Screen gui, int width, int height, long worldTicks, boolean smooth) + public static void drawWatchIntoGui(AbstractGui gui, int width, int height, long worldTicks, boolean smooth) { float hour = TextFormatting.getHour(worldTicks); float minute = TextFormatting.getMinute(worldTicks);