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
@@ -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<String, Object> 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();
@@ -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();
};
@@ -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> 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();
}
}
@@ -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"
}
@@ -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"
}