From cb96389739e23e27a109765145dddc43fa325dea Mon Sep 17 00:00:00 2001 From: lukasabbe <67807954+lukasabbe@users.noreply.github.com> Date: Sun, 10 Nov 2024 22:47:45 +0100 Subject: [PATCH] added scale to text --- gradle.properties | 2 +- .../bookshelfinspector/config/Config.java | 5 +++++ .../bookshelfinspector/config/ModMenu.java | 6 ++++- .../bookshelfinspector/util/HudRenderer.java | 22 ++++++++++++++----- .../assets/bookshelfinspector/lang/en_us.json | 4 +++- .../assets/bookshelfinspector/lang/sv_se.json | 4 +++- 6 files changed, 34 insertions(+), 9 deletions(-) diff --git a/gradle.properties b/gradle.properties index f3da13b..49435b7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,7 +6,7 @@ minecraft_version=24w44a yarn_mappings=24w44a+build.1 loader_version=0.16.9 # Mod Properties -mod_version=1.5+1.21.4-SNAPSHOT.1 +mod_version=1.6+1.21.4-SNAPSHOT.1 maven_group=me.lukasabbe archives_base_name=Bookshelfinspector diff --git a/src/main/java/me/lukasabbe/bookshelfinspector/config/Config.java b/src/main/java/me/lukasabbe/bookshelfinspector/config/Config.java index 7fe6b05..91f8ec0 100644 --- a/src/main/java/me/lukasabbe/bookshelfinspector/config/Config.java +++ b/src/main/java/me/lukasabbe/bookshelfinspector/config/Config.java @@ -16,6 +16,7 @@ import java.util.Map; @Environment(EnvType.CLIENT) public class Config { public boolean lecternToggle = true; + public int scale = 10; public void loadConfig(){ Path configPath = FabricLoader.getInstance().getConfigDir().resolve("bookshelfinspector-config.yml"); @@ -26,6 +27,9 @@ public class Config { if(configMap.containsKey("lectern-toggle")){ lecternToggle = (boolean) configMap.get("lectern-toggle"); } + if(configMap.containsKey("scale")){ + scale = (int) configMap.get("scale"); + } } catch (FileNotFoundException e) { throw new RuntimeException(e); @@ -50,6 +54,7 @@ public class Config { try{ Map configMap = yaml.load(new FileReader(configPath.toFile())); configMap.put("lectern-toggle",lecternToggle); + configMap.put("scale",scale); FileWriter writer = new FileWriter(configPath.toString()); yaml.dump(configMap,writer); writer.close(); diff --git a/src/main/java/me/lukasabbe/bookshelfinspector/config/ModMenu.java b/src/main/java/me/lukasabbe/bookshelfinspector/config/ModMenu.java index 7959572..8e72113 100644 --- a/src/main/java/me/lukasabbe/bookshelfinspector/config/ModMenu.java +++ b/src/main/java/me/lukasabbe/bookshelfinspector/config/ModMenu.java @@ -26,7 +26,11 @@ public class ModMenu implements ModMenuApi { .startBooleanToggle(Text.translatable("bookshelfinspector.config.lectern.toggle"), BookshelfinspectorClient.config.lecternToggle) .setTooltip(Text.translatable("bookshelfinspector.config.lectern.toggle.tooltip")) .setDefaultValue(true) - .setSaveConsumer(val -> BookshelfinspectorClient.config.lecternToggle = val).build()); + .setSaveConsumer(val -> BookshelfinspectorClient.config.lecternToggle = val).build()) + .addEntry(entryBuilder + .startIntSlider(Text.translatable("bookshelfinspector.config.scale"),BookshelfinspectorClient.config.scale,0,20) + .setDefaultValue(10).setSaveConsumer(val -> BookshelfinspectorClient.config.scale = val) + .build()); builder.setSavingRunnable(BookshelfinspectorClient.config::saveConfig); return builder.build(); }; diff --git a/src/main/java/me/lukasabbe/bookshelfinspector/util/HudRenderer.java b/src/main/java/me/lukasabbe/bookshelfinspector/util/HudRenderer.java index 8c8d16b..dfe3a95 100644 --- a/src/main/java/me/lukasabbe/bookshelfinspector/util/HudRenderer.java +++ b/src/main/java/me/lukasabbe/bookshelfinspector/util/HudRenderer.java @@ -5,7 +5,9 @@ import me.lukasabbe.bookshelfinspector.data.BookData; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.MinecraftClient; +import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; +import net.minecraft.client.util.math.MatrixStack; import net.minecraft.component.DataComponentTypes; import net.minecraft.component.type.ItemEnchantmentsComponent; import net.minecraft.enchantment.Enchantment; @@ -31,27 +33,37 @@ public class HudRenderer { if(itemStack.getRarity().getFormatting().getColorValue() != null){ color = itemStack.getRarity().getFormatting().getColorValue(); } - context.drawCenteredTextWithShadow(client.textRenderer, itemStack.getName(), x,y+10, color); + float scaleFactor = ((float) BookshelfinspectorClient.config.scale /10); + drawScaledText(context, itemStack.getName(), x,y+((int)(10*scaleFactor)), color, client.textRenderer); ItemEnchantmentsComponent storedComponents = itemStack.getComponents().get(DataComponentTypes.STORED_ENCHANTMENTS); if(storedComponents != null){ - int i = 20; + int i = ((int)(20*scaleFactor)); for(RegistryEntry enchantment : storedComponents.getEnchantments()){ String lvl = ""; if(storedComponents.getLevel(enchantment) != 1) lvl = String.valueOf(storedComponents.getLevel(enchantment)); - context.drawCenteredTextWithShadow(client.textRenderer, enchantment.value().description().copy().append(" " + lvl), x,y+i, 0xFFFFFFFF); - i+=10; + drawScaledText(context,enchantment.value().description().copy().append(" " + lvl), x,y+i, 0xFFFFFFFF,client.textRenderer); + i+=(int)(10*scaleFactor); } } var writtenBookContentComponent = itemStack.getComponents().get(DataComponentTypes.WRITTEN_BOOK_CONTENT); if(writtenBookContentComponent != null){ - context.drawCenteredTextWithShadow(client.textRenderer, Text.translatable("book.byAuthor",writtenBookContentComponent.author()), x,y+20, 0xFFFFFFFF); + drawScaledText(context, Text.translatable("book.byAuthor",writtenBookContentComponent.author()), x,y+(int)(20*scaleFactor), 0xFFFFFFFF,client.textRenderer); } } } + private static void drawScaledText(DrawContext context, Text text, int centerX, int y, int color, TextRenderer textRenderer){ + MatrixStack stack = context.getMatrices(); + stack.push(); + stack.translate(centerX,y,0); + stack.scale((float) BookshelfinspectorClient.config.scale /10, (float) BookshelfinspectorClient.config.scale /10, (float) BookshelfinspectorClient.config.scale /10); + stack.translate(-centerX,-y,0); + context.drawCenteredTextWithShadow(textRenderer,text,centerX,y,color); + stack.pop(); + } } diff --git a/src/main/resources/assets/bookshelfinspector/lang/en_us.json b/src/main/resources/assets/bookshelfinspector/lang/en_us.json index 114660d..87ec6cc 100644 --- a/src/main/resources/assets/bookshelfinspector/lang/en_us.json +++ b/src/main/resources/assets/bookshelfinspector/lang/en_us.json @@ -2,5 +2,7 @@ "bookshelfinspector.config.title": "Bookshelf Inspector Config", "bookshelfinspector.config.category": "Settings", "bookshelfinspector.config.lectern.toggle": "Turn OFF or ON lectern support", - "bookshelfinspector.config.lectern.toggle.tooltip": "This will turn OFF/ON the visibility of lectern inspection" + "bookshelfinspector.config.lectern.toggle.tooltip": "This will turn OFF/ON the visibility of lectern inspection", + "bookshelfinspector.config.scale": "Change the scale of the text by dragging the slider", + "bookshelfinspector.config.scale.tooltip": "Change the scale of the text, if you drag it against 0 it will become smaller and if you drag it against 20 it will become bigger" } \ No newline at end of file diff --git a/src/main/resources/assets/bookshelfinspector/lang/sv_se.json b/src/main/resources/assets/bookshelfinspector/lang/sv_se.json index 47a2c42..7c71355 100644 --- a/src/main/resources/assets/bookshelfinspector/lang/sv_se.json +++ b/src/main/resources/assets/bookshelfinspector/lang/sv_se.json @@ -2,5 +2,7 @@ "bookshelfinspector.config.title": "Bookshelf Inspector Config", "bookshelfinspector.config.category": "Inställningar", "bookshelfinspector.config.lectern.toggle": "Stäng AV eller PÅ läspulpet stöd", - "bookshelfinspector.config.lectern.toggle.tooltip": "Denna inställning kommer stänga av eller på synligeten av läspulpet inspektion" + "bookshelfinspector.config.lectern.toggle.tooltip": "Denna inställning kommer stänga av eller på synligeten av läspulpet inspektion", + "bookshelfinspector.config.scale": "Ändra storleken på texten igenom att dra på inställningen nedan", + "bookshelfinspector.config.scale.tooltip": "Ändra storleken på texten, om du drar den mot 0 så kommer texten bli mindre och om du drar den mot 20 så kommer den bli störe" } \ No newline at end of file