diff options
author | bowser0000 <bowser0000@gmail.com> | 2020-08-08 17:54:18 -0400 |
---|---|---|
committer | bowser0000 <bowser0000@gmail.com> | 2020-08-08 17:54:18 -0400 |
commit | c4636d1916860d77f9c42c9c49f80cc042e7fd0c (patch) | |
tree | 64d8fbc6dbe3d897b1806228992528375134bc71 | |
parent | b2ecc790a06108339f6e015f1b8c1433a0cd2921 (diff) | |
download | SkyblockMod-c4636d1916860d77f9c42c9c49f80cc042e7fd0c.tar.gz SkyblockMod-c4636d1916860d77f9c42c9c49f80cc042e7fd0c.tar.bz2 SkyblockMod-c4636d1916860d77f9c42c9c49f80cc042e7fd0c.zip |
Add ability to scale text display
-rw-r--r-- | README.md | 7 | ||||
-rw-r--r-- | me/Danker/TheMod.java | 16 | ||||
-rw-r--r-- | me/Danker/commands/DHelpCommand.java | 1 | ||||
-rw-r--r-- | me/Danker/commands/ScaleCommand.java | 70 | ||||
-rw-r--r-- | me/Danker/handlers/ConfigHandler.java | 7 | ||||
-rw-r--r-- | me/Danker/handlers/TextRenderer.java | 11 |
6 files changed, 100 insertions, 12 deletions
@@ -3,10 +3,10 @@ QOL changes that enhances your Hypixel Skyblock experience. Created to add featu ## Current features - Guild party desktop notifications (toggleable) -- Coordinate and angle display (toggleable) +- Coordinate and angle display (toggleable, graphic display) (scalable) - Golden T6/T4 enchant display (toggleable) -- Slayer item tracker (with graphic display) -- Fishing tracker (with graphic display) +- Slayer item tracker (with graphic display) (scalable) +- Fishing tracker (with graphic display) (scalable) - API commands - Update checker @@ -18,6 +18,7 @@ QOL changes that enhances your Hypixel Skyblock experience. Created to add featu - /loot <zombie/spider/wolf/fishing> [winter/session] - Returns loot received from slayer quests or fishing stats. /loot fishing winter returns winter sea creatures instead. - /display <zombie/spider/wolf/fishing/off> [winter/session] - Text display for trackers. /display fishing winter displays winter sea creatures instead. - /move <coords/display> <x> <y> - Moves text display to specified X and Y coordinates. +- /scale <coords/display> <scale (0.1 - 10) - Scales text display to a specified multipler between 0.1x and 10x. - /resetloot <zombie/spider/wolf/fishing/confirm/cancel> - - Resets loot for trackers. /resetloot confirm confirms the reset. - /slayer [player] - Uses API to get slayer xp of a person. If no name is provided, it checks yours. - /skills [player] - Uses API to get skill levels of a person. If no name is provided, it checks yours. diff --git a/me/Danker/TheMod.java b/me/Danker/TheMod.java index 0d1c138..68badb2 100644 --- a/me/Danker/TheMod.java +++ b/me/Danker/TheMod.java @@ -25,6 +25,7 @@ import me.Danker.commands.MoveCommand; import me.Danker.commands.PetsCommand; import me.Danker.commands.ReloadConfigCommand; import me.Danker.commands.ResetLootCommand; +import me.Danker.commands.ScaleCommand; import me.Danker.commands.SetkeyCommand; import me.Danker.commands.SkillsCommand; import me.Danker.commands.SlayerCommand; @@ -127,6 +128,7 @@ public class TheMod ClientCommandHandler.instance.registerCommand(new ArmourCommand()); ClientCommandHandler.instance.registerCommand(new ImportFishingCommand()); ClientCommandHandler.instance.registerCommand(new ResetLootCommand()); + ClientCommandHandler.instance.registerCommand(new ScaleCommand()); } // Update checker @@ -635,7 +637,7 @@ public class TheMod double yDir = (double) Math.round(player.rotationPitch * 10d) / 10d; String coordText = (int) player.posX + " / " + (int) player.posY + " / " + (int) player.posZ + " (" + xDir + " / " + yDir + ")"; - new TextRenderer(Minecraft.getMinecraft(), coordText, moc.coordsXY[0], moc.coordsXY[1], Integer.parseInt("FFFFFF", 16)); + new TextRenderer(Minecraft.getMinecraft(), coordText, moc.coordsXY[0], moc.coordsXY[1], ScaleCommand.coordsScale); } if (!ds.display.equals("off")) { @@ -940,8 +942,8 @@ public class TheMod EnumChatFormatting.AQUA + timeBetween + "\n" + EnumChatFormatting.AQUA + bossesBetween; - new TextRenderer(Minecraft.getMinecraft(), dropsTextTwo, moc.displayXY[0] + 145, moc.displayXY[1], Integer.parseInt("FFFFFF", 16)); - new TextRenderer(Minecraft.getMinecraft(), countTextTwo, moc.displayXY[0] + 255, moc.displayXY[1], Integer.parseInt("FFFFFF", 16)); + new TextRenderer(Minecraft.getMinecraft(), dropsTextTwo, (int) (moc.displayXY[0] + (145 * ScaleCommand.displayScale)), moc.displayXY[1], ScaleCommand.displayScale); + new TextRenderer(Minecraft.getMinecraft(), countTextTwo, (int) (moc.displayXY[0] + (255 * ScaleCommand.displayScale)), moc.displayXY[1], ScaleCommand.displayScale); } else if (ds.display.equals("fishing_session")) { if (lc.empTimeSession == -1) { timeBetween = "Never"; @@ -996,8 +998,8 @@ public class TheMod EnumChatFormatting.AQUA + timeBetween + "\n" + EnumChatFormatting.AQUA + bossesBetween; - new TextRenderer(Minecraft.getMinecraft(), dropsTextTwo, moc.displayXY[0] + 145, moc.displayXY[1], Integer.parseInt("FFFFFF", 16)); - new TextRenderer(Minecraft.getMinecraft(), countTextTwo, moc.displayXY[0] + 255, moc.displayXY[1], Integer.parseInt("FFFFFF", 16)); + new TextRenderer(Minecraft.getMinecraft(), dropsTextTwo, (int) (moc.displayXY[0] + (145 * ScaleCommand.displayScale)), moc.displayXY[1], ScaleCommand.displayScale); + new TextRenderer(Minecraft.getMinecraft(), countTextTwo, (int) (moc.displayXY[0] + (255 * ScaleCommand.displayScale)), moc.displayXY[1], ScaleCommand.displayScale); } else if (ds.display.equals("fishing_winter")) { dropsText = EnumChatFormatting.AQUA + "Creatures Caught:\n" + EnumChatFormatting.AQUA + "Fishing Milestone:\n" + @@ -1039,8 +1041,8 @@ public class TheMod ds.display = "off"; cf.writeStringConfig("misc", "display", "off"); } - new TextRenderer(Minecraft.getMinecraft(), dropsText, moc.displayXY[0], moc.displayXY[1], Integer.parseInt("FFFFFF", 16)); - new TextRenderer(Minecraft.getMinecraft(), countText, moc.displayXY[0] + 110, moc.displayXY[1], Integer.parseInt("FFFFFF", 16)); + new TextRenderer(Minecraft.getMinecraft(), dropsText, moc.displayXY[0], moc.displayXY[1], ScaleCommand.displayScale); + new TextRenderer(Minecraft.getMinecraft(), countText, (int) (moc.displayXY[0] + (110 * ScaleCommand.displayScale)), moc.displayXY[1], ScaleCommand.displayScale); } } diff --git a/me/Danker/commands/DHelpCommand.java b/me/Danker/commands/DHelpCommand.java index 1e2d4aa..9ca6a6e 100644 --- a/me/Danker/commands/DHelpCommand.java +++ b/me/Danker/commands/DHelpCommand.java @@ -39,6 +39,7 @@ public class DHelpCommand extends CommandBase { EnumChatFormatting.GOLD + " /display <zombie/spider/wolf/fishing/off> [winter/session]" + EnumChatFormatting.AQUA + " - Text display for trackers. /display fishing winter displays winter sea creatures instead.\n" + EnumChatFormatting.GOLD + " /resetloot <zombie/spider/wolf/fishing/confirm/cancel>" + EnumChatFormatting.AQUA + " - Resets loot for trackers. /resetloot confirm confirms the reset.\n" + EnumChatFormatting.GOLD + " /move <coords/display> <x> <y>" + EnumChatFormatting.AQUA + " - Moves text display to specified X and Y coordinates.\n" + + EnumChatFormatting.GOLD + " /scale <coords/display> <scale (0.1 - 10)" + EnumChatFormatting.AQUA + " - Scales text display to a specified multipler between 0.1x and 10x.\n" + EnumChatFormatting.GOLD + " /slayer [player]" + EnumChatFormatting.AQUA + " - Uses API to get slayer xp of a person. If no name is provided, it checks yours.\n" + EnumChatFormatting.GOLD + " /skills [player]" + EnumChatFormatting.AQUA + " - Uses API to get skill levels of a person. If no name is provided, it checks yours.\n" + EnumChatFormatting.GOLD + " /guildof [player]" + EnumChatFormatting.AQUA + " - Uses API to get guild name and guild master of a person. If no name is provided, it checks yours.\n" + diff --git a/me/Danker/commands/ScaleCommand.java b/me/Danker/commands/ScaleCommand.java new file mode 100644 index 0000000..f8c73c9 --- /dev/null +++ b/me/Danker/commands/ScaleCommand.java @@ -0,0 +1,70 @@ +package me.Danker.commands; + +import java.util.List; + +import me.Danker.handlers.ConfigHandler; +import net.minecraft.command.CommandBase; +import net.minecraft.command.CommandException; +import net.minecraft.command.ICommandSender; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.BlockPos; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.EnumChatFormatting; + +public class ScaleCommand extends CommandBase { + + public static double coordsScale; + public static double displayScale; + + @Override + public String getCommandName() { + return "scale"; + } + + @Override + public String getCommandUsage(ICommandSender arg0) { + return getCommandName() + " <coords/display> <size (0.1 - 10)>"; + } + + @Override + public int getRequiredPermissionLevel() { + return 0; + } + + @Override + public List<String> addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) { + if (args.length == 1) { + return getListOfStringsMatchingLastWord(args, "coords", "display"); + } + return null; + } + + @Override + public void processCommand(ICommandSender arg0, String[] arg1) throws CommandException { + final EntityPlayer player = (EntityPlayer) arg0; + + if (arg1.length < 2) { + player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /scale <coords/display> <size (0.1 - 10)>")); + return; + } + + double scaleAmount = (double) Math.floor(Double.parseDouble(arg1[1]) * 10.0) / 10.0; + if (scaleAmount < 0.1 || scaleAmount > 10.0) { + player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Scale multipler can only be between 0.1x and 10x.")); + return; + } + + if (arg1[0].equalsIgnoreCase("coords")) { + coordsScale = scaleAmount; + ConfigHandler.writeDoubleConfig("scales", "coordsScale", coordsScale); + player.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "Coords have been scaled to " + EnumChatFormatting.DARK_GREEN + coordsScale + "x")); + } else if (arg1[0].equalsIgnoreCase("display")) { + displayScale = scaleAmount; + ConfigHandler.writeDoubleConfig("scales", "displayScale", displayScale); + player.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN + "Display has been scaled to " + EnumChatFormatting.DARK_GREEN + displayScale + "x")); + } else { + player.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Usage: /scale <coords/display> <size (0.1 - 10)>")); + } + } + +} diff --git a/me/Danker/handlers/ConfigHandler.java b/me/Danker/handlers/ConfigHandler.java index 64b97e4..e2ede5c 100644 --- a/me/Danker/handlers/ConfigHandler.java +++ b/me/Danker/handlers/ConfigHandler.java @@ -5,6 +5,7 @@ import java.io.File; import me.Danker.commands.DisplayCommand; import me.Danker.commands.LootCommand; import me.Danker.commands.MoveCommand; +import me.Danker.commands.ScaleCommand; import me.Danker.commands.ToggleCommand; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.ScaledResolution; @@ -250,6 +251,8 @@ public class ConfigHandler { if (!hasKey("locations", "coordsY")) writeIntConfig("locations", "coordsY", height - 25); if (!hasKey("locations", "displayX")) writeIntConfig("locations", "displayX", 80); if (!hasKey("locations", "displayY")) writeIntConfig("locations", "displayY", 5); + if (!hasKey("scales", "coordsScale")) writeDoubleConfig("scales", "coordsScale", 1); + if (!hasKey("scales", "displayScale")) writeDoubleConfig("scales", "displayScale", 1); final ToggleCommand tf = new ToggleCommand(); tf.gpartyToggled = getBoolean("toggles", "GParty"); @@ -333,6 +336,10 @@ public class ConfigHandler { moc.coordsXY[1] = getInt("locations", "coordsY"); moc.displayXY[0] = getInt("locations", "displayX"); moc.displayXY[1] = getInt("locations", "displayY"); + + final ScaleCommand sc = new ScaleCommand(); + sc.coordsScale = getDouble("scales", "coordsScale"); + sc.displayScale = getDouble("scales", "displayScale"); } } diff --git a/me/Danker/handlers/TextRenderer.java b/me/Danker/handlers/TextRenderer.java index 262f932..bf5711d 100644 --- a/me/Danker/handlers/TextRenderer.java +++ b/me/Danker/handlers/TextRenderer.java @@ -1,13 +1,20 @@ package me.Danker.handlers; +import org.lwjgl.opengl.GL11; + import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Gui; public class TextRenderer extends Gui { - public TextRenderer(Minecraft mc, String text, int x, int y, int colour) { + public TextRenderer(Minecraft mc, String text, int x, int y, double scale) { + double scaleReset = (double) Math.pow(scale, -1); + + GL11.glScaled(scale, scale, scale); y -= mc.fontRendererObj.FONT_HEIGHT; for (String line : text.split("\n")) { - drawString(mc.fontRendererObj, line, x, y += mc.fontRendererObj.FONT_HEIGHT, colour); + y += mc.fontRendererObj.FONT_HEIGHT * scale; + drawString(mc.fontRendererObj, line, (int) Math.round(x / scale), (int) Math.round(y / scale), 0xFFFFFF); } + GL11.glScaled(scaleReset, scaleReset, scaleReset); } } |