This commit is contained in:
lukasabbe
2024-09-22 19:19:26 +02:00
parent 94855bfc00
commit 0c2dc68b2e
6 changed files with 56 additions and 43 deletions
+1 -1
View File
@@ -6,7 +6,7 @@ minecraft_version=1.21
yarn_mappings=1.21+build.9 yarn_mappings=1.21+build.9
loader_version=0.16.5 loader_version=0.16.5
# Mod Properties # Mod Properties
mod_version=1.1+1.21 mod_version=1.2+1.21
maven_group=me.lukasabbe maven_group=me.lukasabbe
archives_base_name=Bookshelfinspector archives_base_name=Bookshelfinspector
@@ -7,6 +7,7 @@ import me.lukasabbe.bookshelfinspector.network.ModCheckPayload;
import net.fabricmc.api.ClientModInitializer; import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.api.EnvType; import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment; import net.fabricmc.api.Environment;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
import net.minecraft.item.Items; import net.minecraft.item.Items;
@@ -39,5 +40,6 @@ public class BookshelfinspectorClient implements ClientModInitializer {
Bookshelfinspector.LOGGER.info("[bookshelfinspector] Connected to server"); Bookshelfinspector.LOGGER.info("[bookshelfinspector] Connected to server");
modAvailable = true; modAvailable = true;
})); }));
ClientPlayConnectionEvents.DISCONNECT.register((handler, client) -> modAvailable = false);
} }
} }
@@ -1,16 +1,10 @@
package me.lukasabbe.bookshelfinspector.mixin; package me.lukasabbe.bookshelfinspector.mixin;
import me.lukasabbe.bookshelfinspector.BookshelfinspectorClient; import me.lukasabbe.bookshelfinspector.util.HudRenderer;
import me.lukasabbe.bookshelfinspector.data.BookData;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.hud.InGameHud; import net.minecraft.client.gui.hud.InGameHud;
import net.minecraft.client.render.RenderTickCounter; import net.minecraft.client.render.RenderTickCounter;
import net.minecraft.component.DataComponentTypes;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.item.ItemStack;
import net.minecraft.registry.entry.RegistryEntry;
import net.minecraft.text.Text;
import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Shadow;
@@ -25,38 +19,6 @@ public class InGameHudMixin {
@Inject(method = "render",at=@At("RETURN")) @Inject(method = "render",at=@At("RETURN"))
public void render(DrawContext context, RenderTickCounter tickCounter, CallbackInfo ci){ public void render(DrawContext context, RenderTickCounter tickCounter, CallbackInfo ci){
if(!BookshelfinspectorClient.modAvailable) return; HudRenderer.hudRender(context, client);
if(client.options.hudHidden) return;
if(BookshelfinspectorClient.bookShelfData.isCurrentBookDataToggled){
final BookData currentBookData = BookshelfinspectorClient.currentBookData;
int screenWidth = client.getWindow().getScaledWidth();
int screenHeight = client.getWindow().getScaledHeight();
int x = screenWidth / 2;
int y = screenHeight / 2;
final ItemStack itemStack = currentBookData.itemStack;
int color = 0xFFFFFFFF;
if(itemStack.getRarity().getFormatting().getColorValue() != null){
color = itemStack.getRarity().getFormatting().getColorValue();
}
context.drawCenteredTextWithShadow(client.textRenderer, itemStack.getName(), x,y+10, color);
var storedComponets = itemStack.getComponents().get(DataComponentTypes.STORED_ENCHANTMENTS);
if(storedComponets != null){
int i = 20;
for(RegistryEntry<Enchantment> enchantment : storedComponets.getEnchantments()){
context.drawCenteredTextWithShadow(client.textRenderer, enchantment.value().description(), x,y+i, 0xFFFFFFFF);
i+=10;
}
}
var writtenBookContentComponent = itemStack.getComponents().get(DataComponentTypes.WRITTEN_BOOK_CONTENT);
if(writtenBookContentComponent != null){
context.drawCenteredTextWithShadow(client.textRenderer, Text.translatableWithFallback("bookshelfinspector.text.book","By ").append(writtenBookContentComponent.author()), x,y+20, 0xFFFFFFFF);
}
}
} }
} }
@@ -0,0 +1,49 @@
package me.lukasabbe.bookshelfinspector.util;
import me.lukasabbe.bookshelfinspector.BookshelfinspectorClient;
import me.lukasabbe.bookshelfinspector.data.BookData;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.component.DataComponentTypes;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.item.ItemStack;
import net.minecraft.registry.entry.RegistryEntry;
import net.minecraft.text.Text;
public class HudRenderer {
public static void hudRender(DrawContext context, MinecraftClient client){
if(!BookshelfinspectorClient.modAvailable) return;
if(client.options.hudHidden) return;
if(BookshelfinspectorClient.bookShelfData.isCurrentBookDataToggled){
final BookData currentBookData = BookshelfinspectorClient.currentBookData;
int screenWidth = client.getWindow().getScaledWidth();
int screenHeight = client.getWindow().getScaledHeight();
int x = screenWidth / 2;
int y = screenHeight / 2;
final ItemStack itemStack = currentBookData.itemStack;
int color = 0xFFFFFFFF;
if(itemStack.getRarity().getFormatting().getColorValue() != null){
color = itemStack.getRarity().getFormatting().getColorValue();
}
context.drawCenteredTextWithShadow(client.textRenderer, itemStack.getName(), x,y+10, color);
var storedComponets = itemStack.getComponents().get(DataComponentTypes.STORED_ENCHANTMENTS);
if(storedComponets != null){
int i = 20;
for(RegistryEntry<Enchantment> enchantment : storedComponets.getEnchantments()){
context.drawCenteredTextWithShadow(client.textRenderer, enchantment.value().description(), x,y+i, 0xFFFFFFFF);
i+=10;
}
}
var writtenBookContentComponent = itemStack.getComponents().get(DataComponentTypes.WRITTEN_BOOK_CONTENT);
if(writtenBookContentComponent != null){
context.drawCenteredTextWithShadow(client.textRenderer, Text.translatableWithFallback("bookshelfinspector.text.book","by ").append(writtenBookContentComponent.author()), x,y+20, 0xFFFFFFFF);
}
}
}
}
@@ -1,3 +1,3 @@
{ {
"bookshelfinspector.text.book" : "By " "bookshelfinspector.text.book" : "by "
} }
@@ -1,3 +1,3 @@
{ {
"bookshelfinspector.text.book" : "Av " "bookshelfinspector.text.book" : "av "
} }