added scale to text

This commit is contained in:
lukasabbe
2024-11-10 22:47:45 +01:00
parent 377a0f592b
commit cb96389739
6 changed files with 34 additions and 9 deletions
+1 -1
View File
@@ -6,7 +6,7 @@ minecraft_version=24w44a
yarn_mappings=24w44a+build.1 yarn_mappings=24w44a+build.1
loader_version=0.16.9 loader_version=0.16.9
# Mod Properties # Mod Properties
mod_version=1.5+1.21.4-SNAPSHOT.1 mod_version=1.6+1.21.4-SNAPSHOT.1
maven_group=me.lukasabbe maven_group=me.lukasabbe
archives_base_name=Bookshelfinspector archives_base_name=Bookshelfinspector
@@ -16,6 +16,7 @@ import java.util.Map;
@Environment(EnvType.CLIENT) @Environment(EnvType.CLIENT)
public class Config { public class Config {
public boolean lecternToggle = true; public boolean lecternToggle = true;
public int scale = 10;
public void loadConfig(){ public void loadConfig(){
Path configPath = FabricLoader.getInstance().getConfigDir().resolve("bookshelfinspector-config.yml"); Path configPath = FabricLoader.getInstance().getConfigDir().resolve("bookshelfinspector-config.yml");
@@ -26,6 +27,9 @@ public class Config {
if(configMap.containsKey("lectern-toggle")){ if(configMap.containsKey("lectern-toggle")){
lecternToggle = (boolean) configMap.get("lectern-toggle"); lecternToggle = (boolean) configMap.get("lectern-toggle");
} }
if(configMap.containsKey("scale")){
scale = (int) configMap.get("scale");
}
} catch (FileNotFoundException e) { } catch (FileNotFoundException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
@@ -50,6 +54,7 @@ public class Config {
try{ try{
Map<String, Object> configMap = yaml.load(new FileReader(configPath.toFile())); Map<String, Object> configMap = yaml.load(new FileReader(configPath.toFile()));
configMap.put("lectern-toggle",lecternToggle); configMap.put("lectern-toggle",lecternToggle);
configMap.put("scale",scale);
FileWriter writer = new FileWriter(configPath.toString()); FileWriter writer = new FileWriter(configPath.toString());
yaml.dump(configMap,writer); yaml.dump(configMap,writer);
writer.close(); writer.close();
@@ -26,7 +26,11 @@ public class ModMenu implements ModMenuApi {
.startBooleanToggle(Text.translatable("bookshelfinspector.config.lectern.toggle"), BookshelfinspectorClient.config.lecternToggle) .startBooleanToggle(Text.translatable("bookshelfinspector.config.lectern.toggle"), BookshelfinspectorClient.config.lecternToggle)
.setTooltip(Text.translatable("bookshelfinspector.config.lectern.toggle.tooltip")) .setTooltip(Text.translatable("bookshelfinspector.config.lectern.toggle.tooltip"))
.setDefaultValue(true) .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); builder.setSavingRunnable(BookshelfinspectorClient.config::saveConfig);
return builder.build(); return builder.build();
}; };
@@ -5,7 +5,9 @@ import me.lukasabbe.bookshelfinspector.data.BookData;
import net.fabricmc.api.EnvType; import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment; import net.fabricmc.api.Environment;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.component.DataComponentTypes; import net.minecraft.component.DataComponentTypes;
import net.minecraft.component.type.ItemEnchantmentsComponent; import net.minecraft.component.type.ItemEnchantmentsComponent;
import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.Enchantment;
@@ -31,27 +33,37 @@ public class HudRenderer {
if(itemStack.getRarity().getFormatting().getColorValue() != null){ if(itemStack.getRarity().getFormatting().getColorValue() != null){
color = itemStack.getRarity().getFormatting().getColorValue(); 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); ItemEnchantmentsComponent storedComponents = itemStack.getComponents().get(DataComponentTypes.STORED_ENCHANTMENTS);
if(storedComponents != null){ if(storedComponents != null){
int i = 20; int i = ((int)(20*scaleFactor));
for(RegistryEntry<Enchantment> enchantment : storedComponents.getEnchantments()){ for(RegistryEntry<Enchantment> enchantment : storedComponents.getEnchantments()){
String lvl = ""; String lvl = "";
if(storedComponents.getLevel(enchantment) != 1) if(storedComponents.getLevel(enchantment) != 1)
lvl = String.valueOf(storedComponents.getLevel(enchantment)); lvl = String.valueOf(storedComponents.getLevel(enchantment));
context.drawCenteredTextWithShadow(client.textRenderer, enchantment.value().description().copy().append(" " + lvl), x,y+i, 0xFFFFFFFF); drawScaledText(context,enchantment.value().description().copy().append(" " + lvl), x,y+i, 0xFFFFFFFF,client.textRenderer);
i+=10; i+=(int)(10*scaleFactor);
} }
} }
var writtenBookContentComponent = itemStack.getComponents().get(DataComponentTypes.WRITTEN_BOOK_CONTENT); var writtenBookContentComponent = itemStack.getComponents().get(DataComponentTypes.WRITTEN_BOOK_CONTENT);
if(writtenBookContentComponent != null){ 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();
}
} }
@@ -2,5 +2,7 @@
"bookshelfinspector.config.title": "Bookshelf Inspector Config", "bookshelfinspector.config.title": "Bookshelf Inspector Config",
"bookshelfinspector.config.category": "Settings", "bookshelfinspector.config.category": "Settings",
"bookshelfinspector.config.lectern.toggle": "Turn OFF or ON lectern support", "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"
} }
@@ -2,5 +2,7 @@
"bookshelfinspector.config.title": "Bookshelf Inspector Config", "bookshelfinspector.config.title": "Bookshelf Inspector Config",
"bookshelfinspector.config.category": "Inställningar", "bookshelfinspector.config.category": "Inställningar",
"bookshelfinspector.config.lectern.toggle": "Stäng AV eller PÅ läspulpet stöd", "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"
} }