diff --git a/src/main/java/dev/heliosclient/hud/HudElement.java b/src/main/java/dev/heliosclient/hud/HudElement.java index 23dda1e6..182e3b24 100644 --- a/src/main/java/dev/heliosclient/hud/HudElement.java +++ b/src/main/java/dev/heliosclient/hud/HudElement.java @@ -42,7 +42,7 @@ public class HudElement implements ISettingChange, ISaveAndLoad, Listener { protected static final MinecraftClient mc = MinecraftClient.getInstance(); public String name; public String description; - public int height = FontManager.fontSize; + public int height = FontManager.hudFontSize; public int width = 10; public int x; public int y; diff --git a/src/main/java/dev/heliosclient/hud/hudelements/KeyBindsHud.java b/src/main/java/dev/heliosclient/hud/hudelements/KeyBindsHud.java index 0db0474c..e14a968e 100644 --- a/src/main/java/dev/heliosclient/hud/hudelements/KeyBindsHud.java +++ b/src/main/java/dev/heliosclient/hud/hudelements/KeyBindsHud.java @@ -36,11 +36,11 @@ public void renderElement(DrawContext drawContext, TextRenderer textRenderer) { Renderer2D.drawString(drawContext.getMatrices(),text,x + 2,y, ColorManager.INSTANCE.hudColor); - y += (int) (Renderer2D.getStringHeight(text) + 3); + y += Math.round(Renderer2D.getStringHeight(text)) + 3; height += Math.round(Renderer2D.getStringHeight(text)) + 3; } this.width = width; - this.height = Math.max(10, height + 1); + this.height = height + 1; } } diff --git a/src/main/java/dev/heliosclient/managers/FontManager.java b/src/main/java/dev/heliosclient/managers/FontManager.java index 54a9ecab..64cc19cf 100644 --- a/src/main/java/dev/heliosclient/managers/FontManager.java +++ b/src/main/java/dev/heliosclient/managers/FontManager.java @@ -16,7 +16,7 @@ public class FontManager implements Listener { public static Font[] fonts, iconFonts; public static Font[] originalFonts; - public static int fontSize = 8; + public static int hudFontSize = 8, clientFontSize = 8; public static ArrayList fontNames = new ArrayList<>(); public static FontManager INSTANCE = new FontManager(); @@ -44,8 +44,8 @@ public void onTick(TickEvent.CLIENT event) { } public void registerFonts() { - FontRenderers.fontRenderer = new FontRenderer(fonts, fontSize); - FontRenderers.fxfontRenderer = new fxFontRenderer(fonts, 8f); + FontRenderers.fontRenderer = new FontRenderer(fonts, hudFontSize); + FontRenderers.fxfontRenderer = new fxFontRenderer(fonts, clientFontSize); FontRenderers.iconRenderer = new fxFontRenderer(iconFonts, 10f); FontRenderers.Super_Small_fxfontRenderer = new fxFontRenderer(fonts, 4f); diff --git a/src/main/java/dev/heliosclient/module/modules/movement/Scaffold.java b/src/main/java/dev/heliosclient/module/modules/movement/Scaffold.java index ca9ae4b0..029088a7 100644 --- a/src/main/java/dev/heliosclient/module/modules/movement/Scaffold.java +++ b/src/main/java/dev/heliosclient/module/modules/movement/Scaffold.java @@ -342,7 +342,7 @@ private boolean placeBlockPos(BlockPos pos, int itemSlot) { } if (placeResult) { - if (render.value && mc.player.getMainHandStack() != null) { + if (render.value) { if (clientColorCycle.value) { GradientBlockRenderer.renderGradientBlock( ColorManager.INSTANCE::getPrimaryGradientStart, diff --git a/src/main/java/dev/heliosclient/module/modules/render/StorageESP.java b/src/main/java/dev/heliosclient/module/modules/render/StorageESP.java index 599c0a1c..4ff5813b 100644 --- a/src/main/java/dev/heliosclient/module/modules/render/StorageESP.java +++ b/src/main/java/dev/heliosclient/module/modules/render/StorageESP.java @@ -6,17 +6,20 @@ import dev.heliosclient.module.Module_; import dev.heliosclient.module.settings.BooleanSetting; import dev.heliosclient.module.settings.SettingGroup; -import dev.heliosclient.util.blocks.ChunkUtils; import dev.heliosclient.util.ColorUtils; +import dev.heliosclient.util.blocks.ChunkUtils; import dev.heliosclient.util.render.Renderer3D; import dev.heliosclient.util.render.color.LineColor; import dev.heliosclient.util.render.color.QuadColor; +import net.minecraft.block.BlockState; +import net.minecraft.block.ChestBlock; import net.minecraft.block.entity.*; import net.minecraft.entity.Entity; import net.minecraft.entity.vehicle.ChestBoatEntity; import net.minecraft.entity.vehicle.ChestMinecartEntity; import net.minecraft.entity.vehicle.HopperMinecartEntity; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.MathHelper; import net.minecraft.util.shape.VoxelShape; import java.awt.*; @@ -59,7 +62,14 @@ public class StorageESP extends Module_ { .onSettingChange(this) .build() ); - + BooleanSetting fade = sgGeneral.add(new BooleanSetting.Builder() + .name("Fade when close") + .description("Fades out the ESP when you get closer to the storage blocks") + .value(false) + .defaultValue(false) + .onSettingChange(this) + .build() + ); public StorageESP() { super("StorageESP", "Highlights storage blocks", Categories.RENDER); @@ -112,10 +122,24 @@ else if (entity instanceof ChestBoatEntity) } private void renderStorageBlock(Color c, BlockPos pos) { - int changedColor = ColorUtils.changeAlpha(c, 100).getRGB(); + double distanceFromPos = mc.player.getBlockPos().getSquaredDistance(pos); + int alphaClamp = 100; + if(fade.value) { + alphaClamp = (int) MathHelper.clamp(150 * (distanceFromPos / 400), 0, 150); + if(alphaClamp <= 2)return; + } + + int changedColor = ColorUtils.changeAlphaGetInt(c.getRGB(), alphaClamp); QuadColor color = QuadColor.single(changedColor); LineColor lineColor = LineColor.single(changedColor); - VoxelShape shape = mc.world.getBlockState(pos).getOutlineShape(mc.world, pos); + VoxelShape shape; + BlockState state = mc.world.getBlockState(pos); + + if (state.getBlock() instanceof ChestBlock p) { + shape = p.getOutlineShape(state,null,null,null); + } else{ + shape = state.getOutlineShape(mc.world, pos); + } if (shape == null || shape.isEmpty()) return; diff --git a/src/main/java/dev/heliosclient/module/sysmodules/ClickGUI.java b/src/main/java/dev/heliosclient/module/sysmodules/ClickGUI.java index a0f7c3fe..4614360b 100644 --- a/src/main/java/dev/heliosclient/module/sysmodules/ClickGUI.java +++ b/src/main/java/dev/heliosclient/module/sysmodules/ClickGUI.java @@ -17,6 +17,7 @@ import dev.heliosclient.util.animation.AnimationUtils; import dev.heliosclient.util.fontutils.FontRenderers; import dev.heliosclient.util.fontutils.FontUtils; +import dev.heliosclient.util.fontutils.fxFontRenderer; import dev.heliosclient.util.render.Renderer2D; import me.x150.renderer.font.FontRenderer; import org.lwjgl.glfw.GLFW; @@ -26,7 +27,6 @@ import java.util.ArrayList; import java.util.List; -import static dev.heliosclient.managers.FontManager.fontSize; import static dev.heliosclient.managers.FontManager.fonts; /** @@ -111,9 +111,20 @@ public class ClickGUI extends Module_ { .shouldRender(() -> FontRenderer.value == 0) .build() ); - public DoubleSetting FontSize = sgMisc.add(new DoubleSetting.Builder() - .name("Font Size") - .description("Change your FontSize") + public DoubleSetting hudFontSize = sgMisc.add(new DoubleSetting.Builder() + .name("Hud Font Size") + .description("Change your hud's fontSize") + .onSettingChange(this) + .defaultValue(8.0) + .min(1) + .max(15) + .roundingPlace(1) + .shouldRender(() -> FontRenderer.value == 0) + .build() + ); + public DoubleSetting clientFontSize = sgMisc.add(new DoubleSetting.Builder() + .name("Client Font Size") + .description("Change your client's (clickGUI) FontSize") .onSettingChange(this) .defaultValue(8.0) .min(1) @@ -370,13 +381,20 @@ public void onSettingChange(Setting setting) { Renderer2D.renderer = Renderer2D.Renderers.values()[FontRenderer.value]; pause = Pause.value; keybinds = Keybinds.value; - fontSize = ((int) FontSize.value); + FontManager.hudFontSize = hudFontSize.getInt(); + FontManager.clientFontSize = clientFontSize.getInt(); //Font changes if (HeliosClient.MC.getWindow() != null) { - if (setting == FontRenderer || setting == FontSize || setting == loadFonts || setting == Font) { + if (setting == FontRenderer || setting == loadFonts || setting == Font) { fonts = FontUtils.rearrangeFontsArray(FontManager.originalFonts, FontManager.originalFonts[Font.value]); - FontRenderers.fontRenderer = new FontRenderer(fonts, fontSize); + FontRenderers.fontRenderer = new FontRenderer(fonts, FontManager.hudFontSize); + FontRenderers.fxfontRenderer = new fxFontRenderer(fonts, FontManager.clientFontSize); + EventManager.postEvent(new FontChangeEvent(fonts)); + } + if(setting == hudFontSize || setting == clientFontSize){ + FontRenderers.fontRenderer = new FontRenderer(fonts, FontManager.hudFontSize); + FontRenderers.fxfontRenderer = new fxFontRenderer(fonts, FontManager.clientFontSize); EventManager.postEvent(new FontChangeEvent(fonts)); } @@ -408,7 +426,8 @@ public void onLoad() { pause = Pause.value; keybinds = Keybinds.value; - fontSize = ((int) FontSize.value); + FontManager.hudFontSize = hudFontSize.getInt(); + FontManager.clientFontSize = clientFontSize.getInt(); fonts = FontUtils.rearrangeFontsArray(FontManager.originalFonts, FontManager.originalFonts[Font.value]); diff --git a/src/main/java/dev/heliosclient/ui/clickgui/settings/ClientSettingsScreen.java b/src/main/java/dev/heliosclient/ui/clickgui/settings/ClientSettingsScreen.java index 1af58c04..25716a1e 100644 --- a/src/main/java/dev/heliosclient/ui/clickgui/settings/ClientSettingsScreen.java +++ b/src/main/java/dev/heliosclient/ui/clickgui/settings/ClientSettingsScreen.java @@ -86,7 +86,8 @@ public void render(DrawContext drawContext, int mouseX, int mouseY, float delta) navBar.render(drawContext, textRenderer, mouseX, mouseY); Tooltip.tooltip.render(drawContext, textRenderer, mouseX, mouseY); - FontManager.fontSize = (int) HeliosClient.CLICKGUI.FontSize.value; + FontManager.hudFontSize = (int) HeliosClient.CLICKGUI.hudFontSize.value; + FontManager.clientFontSize = (int) HeliosClient.CLICKGUI.clientFontSize.value; } @Override diff --git a/src/main/java/dev/heliosclient/util/blocks/BlockUtils.java b/src/main/java/dev/heliosclient/util/blocks/BlockUtils.java index 6c9eaf93..d8c5c475 100644 --- a/src/main/java/dev/heliosclient/util/blocks/BlockUtils.java +++ b/src/main/java/dev/heliosclient/util/blocks/BlockUtils.java @@ -229,7 +229,7 @@ public static boolean isClickable(Block block) { } public static boolean place(BlockPos pos, boolean rotate, boolean clientSideRotation, boolean airPlace, Hand hand) { - if (!canPlace(pos, mc.world.getBlockState(pos))) + if (!canPlace(pos, mc.world.getBlockState(pos)) || mc.player.getStackInHand(hand) == null || mc.player.getStackInHand(hand).isEmpty()) return false; Vec3d hitPos = Vec3d.ofCenter(pos); diff --git a/src/main/java/dev/heliosclient/util/fontutils/FontLoader.java b/src/main/java/dev/heliosclient/util/fontutils/FontLoader.java index abd75c0a..4104af32 100644 --- a/src/main/java/dev/heliosclient/util/fontutils/FontLoader.java +++ b/src/main/java/dev/heliosclient/util/fontutils/FontLoader.java @@ -9,13 +9,14 @@ import java.io.InputStream; import java.nio.file.Files; import java.nio.file.StandardCopyOption; -import java.util.*; -import java.util.List; +import java.util.Collections; +import java.util.LinkedList; +import java.util.Objects; public class FontLoader { private static final String FONTS_FOLDER = "heliosclient/fonts"; private static final String ICON_FONTS_FOLDER = "heliosclient/fonts/icons"; - private static final String[] DEFAULT_FONT = {"Minecraft.ttf", "Comfortaa.ttf", "JetBrainsMono.ttf", "Nunito.ttf","DComicFont.ttf"}; + private static final String[] DEFAULT_FONT = {"Minecraftia.ttf", "Comfortaa.ttf", "JetBrainsMono.ttf", "Nunito.ttf","DComicFont.ttf"}; private static final String[] DEFAULT_ICON_FONT = {"fontello.ttf", "icons2.ttf", "icons.ttf"}; public static Font[] COMICALFONTS = null; private static final String COMICAL_FONT_NAME = "DComicFont.ttf"; diff --git a/src/main/resources/assets/heliosclient/fonts/Minecraftia.ttf b/src/main/resources/assets/heliosclient/fonts/Minecraftia.ttf new file mode 100644 index 00000000..7247ad78 Binary files /dev/null and b/src/main/resources/assets/heliosclient/fonts/Minecraftia.ttf differ