aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbowser0000 <bowser0000@gmail.com>2020-08-08 17:54:18 -0400
committerbowser0000 <bowser0000@gmail.com>2020-08-08 17:54:18 -0400
commitc4636d1916860d77f9c42c9c49f80cc042e7fd0c (patch)
tree64d8fbc6dbe3d897b1806228992528375134bc71
parentb2ecc790a06108339f6e015f1b8c1433a0cd2921 (diff)
downloadSkyblockMod-c4636d1916860d77f9c42c9c49f80cc042e7fd0c.tar.gz
SkyblockMod-c4636d1916860d77f9c42c9c49f80cc042e7fd0c.tar.bz2
SkyblockMod-c4636d1916860d77f9c42c9c49f80cc042e7fd0c.zip
Add ability to scale text display
-rw-r--r--README.md7
-rw-r--r--me/Danker/TheMod.java16
-rw-r--r--me/Danker/commands/DHelpCommand.java1
-rw-r--r--me/Danker/commands/ScaleCommand.java70
-rw-r--r--me/Danker/handlers/ConfigHandler.java7
-rw-r--r--me/Danker/handlers/TextRenderer.java11
6 files changed, 100 insertions, 12 deletions
diff --git a/README.md b/README.md
index 577c7b7..9eaee65 100644
--- a/README.md
+++ b/README.md
@@ -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);
}
}