Added colors to curses

This commit is contained in:
lukasabbe
2024-11-12 19:26:09 +01:00
parent c1f32f5455
commit 147168e8a5
3 changed files with 46 additions and 31 deletions
+1 -1
View File
@@ -6,7 +6,7 @@ minecraft_version=1.21.3
yarn_mappings=1.21.3+build.2 yarn_mappings=1.21.3+build.2
loader_version=0.16.9 loader_version=0.16.9
# Mod Properties # Mod Properties
mod_version=1.6+1.21.3 mod_version=1.7+1.21.3
maven_group=me.lukasabbe maven_group=me.lukasabbe
archives_base_name=Bookshelfinspector archives_base_name=Bookshelfinspector
@@ -13,7 +13,12 @@ import net.minecraft.component.type.ItemEnchantmentsComponent;
import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.Enchantment;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.registry.entry.RegistryEntry;
import net.minecraft.registry.tag.EnchantmentTags;
import net.minecraft.text.MutableText;
import net.minecraft.text.Style;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.minecraft.text.Texts;
import net.minecraft.util.Formatting;
@Environment(EnvType.CLIENT) @Environment(EnvType.CLIENT)
public class HudRenderer { public class HudRenderer {
@@ -30,9 +35,12 @@ public class HudRenderer {
int y = screenHeight / 2; int y = screenHeight / 2;
final ItemStack itemStack = currentBookData.itemStack; final ItemStack itemStack = currentBookData.itemStack;
int color = 0xFFFFFFFF; int color = 0xFFFFFFFF;
if(itemStack.getRarity().getFormatting().getColorValue() != null){
color = itemStack.getRarity().getFormatting().getColorValue(); final Integer colorValue = itemStack.getRarity().getFormatting().getColorValue();
if(colorValue != null){
color = colorValue;
} }
float scaleFactor = ((float) BookshelfinspectorClient.config.scale /10); float scaleFactor = ((float) BookshelfinspectorClient.config.scale /10);
drawScaledText(context, itemStack.getName(), x,y+((int)(10*scaleFactor)), color, client.textRenderer); drawScaledText(context, itemStack.getName(), x,y+((int)(10*scaleFactor)), color, client.textRenderer);
@@ -41,10 +49,14 @@ public class HudRenderer {
int i = ((int)(20*scaleFactor)); 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) final int level = storedComponents.getLevel(enchantment);
lvl = String.valueOf(storedComponents.getLevel(enchantment)); if(level != 1)
lvl = String.valueOf(level);
drawScaledText(context,enchantment.value().description().copy().append(" " + lvl), x,y+i, 0xFFFFFFFF,client.textRenderer); final MutableText append = enchantment.value().description().copy().append(" " + lvl);
if(enchantment.isIn(EnchantmentTags.CURSE)) {
Texts.setStyleIfAbsent(append, Style.EMPTY.withColor(Formatting.RED));
}
drawScaledText(context, append, x,y+i, 0xFFFFFFFF,client.textRenderer);
i+=(int)(10*scaleFactor); i+=(int)(10*scaleFactor);
} }
} }
@@ -61,7 +73,8 @@ public class HudRenderer {
MatrixStack stack = context.getMatrices(); MatrixStack stack = context.getMatrices();
stack.push(); stack.push();
stack.translate(centerX,y,0); stack.translate(centerX,y,0);
stack.scale((float) BookshelfinspectorClient.config.scale /10, (float) BookshelfinspectorClient.config.scale /10, (float) BookshelfinspectorClient.config.scale /10); final float scale = (float) BookshelfinspectorClient.config.scale / 10;
stack.scale(scale, scale, scale);
stack.translate(-centerX,-y,0); stack.translate(-centerX,-y,0);
context.drawCenteredTextWithShadow(textRenderer,text,centerX,y,color); context.drawCenteredTextWithShadow(textRenderer,text,centerX,y,color);
stack.pop(); stack.pop();
@@ -22,30 +22,32 @@ import net.minecraft.util.math.BlockPos;
import java.util.Optional; import java.util.Optional;
import java.util.OptionalInt; import java.util.OptionalInt;
import static me.lukasabbe.bookshelfinspector.BookshelfinspectorClient.*;
@Environment(EnvType.CLIENT) @Environment(EnvType.CLIENT)
public class Inspector { public class Inspector {
public void inspect(MinecraftClient client){ public void inspect(MinecraftClient client){
if(!BookshelfinspectorClient.modAvailable) return; if(!modAvailable) return;
if(client.cameraEntity == null || client.player == null) return; if(client.cameraEntity == null || client.player == null) return;
HitResult hit = client.cameraEntity.raycast(5f,0f,false); HitResult hit = client.cameraEntity.raycast(5f,0f,false);
final HitResult.Type type = hit.getType(); final HitResult.Type type = hit.getType();
if(type != HitResult.Type.BLOCK) { if(type != HitResult.Type.BLOCK) {
BookshelfinspectorClient.bookShelfData.isCurrentBookDataToggled = false; bookShelfData.isCurrentBookDataToggled = false;
BookshelfinspectorClient.currentBookData = BookData.empty(); currentBookData = BookData.empty();
} }
final BlockHitResult blockHitResult = (BlockHitResult) hit; final BlockHitResult blockHitResult = (BlockHitResult) hit;
BlockPos pos = blockHitResult.getBlockPos(); BlockPos pos = blockHitResult.getBlockPos();
if(client.player.getWorld().getBlockState(pos).isOf(Blocks.CHISELED_BOOKSHELF)){ if(client.player.getWorld().getBlockState(pos).isOf(Blocks.CHISELED_BOOKSHELF)){
bookShelfInspect(pos, blockHitResult, client); bookShelfInspect(pos, blockHitResult, client);
}else if(client.player.getWorld().getBlockState(pos).isOf(Blocks.LECTERN) && BookshelfinspectorClient.config.lecternToggle){ }else if(client.player.getWorld().getBlockState(pos).isOf(Blocks.LECTERN) && config.lecternToggle){
lecternInspect(pos, client); lecternInspect(pos, client);
}else{ }else{
BookshelfinspectorClient.bookShelfData.isCurrentBookDataToggled = false; bookShelfData.isCurrentBookDataToggled = false;
BookshelfinspectorClient.currentBookData = BookData.empty(); currentBookData = BookData.empty();
BookshelfinspectorClient.bookShelfData.latestPos = null; bookShelfData.latestPos = null;
BookshelfinspectorClient.bookShelfData.requestSent = false; bookShelfData.requestSent = false;
} }
} }
@@ -53,19 +55,19 @@ public class Inspector {
private void lecternInspect(BlockPos pos, MinecraftClient client){ private void lecternInspect(BlockPos pos, MinecraftClient client){
Optional<LecternBlockEntity> optionalLecternBlockEntity = client.player.getWorld().getBlockEntity(pos, BlockEntityType.LECTERN); Optional<LecternBlockEntity> optionalLecternBlockEntity = client.player.getWorld().getBlockEntity(pos, BlockEntityType.LECTERN);
if(optionalLecternBlockEntity.isEmpty()){ if(optionalLecternBlockEntity.isEmpty()){
BookshelfinspectorClient.bookShelfData.isCurrentBookDataToggled = false; bookShelfData.isCurrentBookDataToggled = false;
BookshelfinspectorClient.currentBookData = BookData.empty(); currentBookData = BookData.empty();
return; return;
} }
if(BookshelfinspectorClient.bookShelfData.latestPos != null && BookshelfinspectorClient.bookShelfData.latestPos.equals(pos)){ if(bookShelfData.latestPos != null && bookShelfData.latestPos.equals(pos)){
return; return;
} }
if(!BookshelfinspectorClient.bookShelfData.requestSent){ if(!bookShelfData.requestSent){
BookshelfinspectorClient.bookShelfData.requestSent = true; bookShelfData.requestSent = true;
ClientPlayNetworking.send(new LecternInventoryRequestPayload(pos)); ClientPlayNetworking.send(new LecternInventoryRequestPayload(pos));
BookshelfinspectorClient.bookShelfData.latestPos = pos; bookShelfData.latestPos = pos;
} }
} }
@@ -73,8 +75,8 @@ public class Inspector {
private void bookShelfInspect(BlockPos pos, BlockHitResult blockHitResult, MinecraftClient client){ private void bookShelfInspect(BlockPos pos, BlockHitResult blockHitResult, MinecraftClient client){
Optional<ChiseledBookshelfBlockEntity> optionalChiseledBookshelfBlockEntity = client.player.getWorld().getBlockEntity(pos, BlockEntityType.CHISELED_BOOKSHELF); Optional<ChiseledBookshelfBlockEntity> optionalChiseledBookshelfBlockEntity = client.player.getWorld().getBlockEntity(pos, BlockEntityType.CHISELED_BOOKSHELF);
if(optionalChiseledBookshelfBlockEntity.isEmpty()){ if(optionalChiseledBookshelfBlockEntity.isEmpty()){
BookshelfinspectorClient.bookShelfData.isCurrentBookDataToggled = false; bookShelfData.isCurrentBookDataToggled = false;
BookshelfinspectorClient.currentBookData = BookData.empty(); currentBookData = BookData.empty();
return; return;
} }
@@ -84,25 +86,25 @@ public class Inspector {
OptionalInt optionalInt = ((BookshelfInvoker)bookshelfBlock).invokerGetSlotForHitPos(blockHitResult,blockState); OptionalInt optionalInt = ((BookshelfInvoker)bookshelfBlock).invokerGetSlotForHitPos(blockHitResult,blockState);
if(optionalInt.isEmpty()) { if(optionalInt.isEmpty()) {
BookshelfinspectorClient.bookShelfData.isCurrentBookDataToggled = false; bookShelfData.isCurrentBookDataToggled = false;
return; return;
} }
final BookData currentBookData = BookshelfinspectorClient.currentBookData; final BookData currentBookData = BookshelfinspectorClient.currentBookData;
int temp = BookshelfinspectorClient.bookShelfData.currentSlotInt; int temp = bookShelfData.currentSlotInt;
final int slotNum = optionalInt.getAsInt(); final int slotNum = optionalInt.getAsInt();
BookshelfinspectorClient.bookShelfData.currentSlotInt = slotNum; bookShelfData.currentSlotInt = slotNum;
if(currentBookData.slotId!= slotNum && currentBookData.slotId!=-2 && !BookshelfinspectorClient.bookShelfData.requestSent){ if(currentBookData.slotId!= slotNum && currentBookData.slotId!=-2 && !bookShelfData.requestSent){
BookshelfinspectorClient.bookShelfData.requestSent = true; bookShelfData.requestSent = true;
ClientPlayNetworking.send(new BookShelfInventoryRequestPayload(pos, slotNum)); ClientPlayNetworking.send(new BookShelfInventoryRequestPayload(pos, slotNum));
} }
else { else {
if(temp == slotNum) if(temp == slotNum)
BookshelfinspectorClient.bookShelfData.isCurrentBookDataToggled = currentBookData.slotId != -2; bookShelfData.isCurrentBookDataToggled = currentBookData.slotId != -2;
else{ else{
BookshelfinspectorClient.bookShelfData.isCurrentBookDataToggled = false; bookShelfData.isCurrentBookDataToggled = false;
BookshelfinspectorClient.currentBookData = BookData.empty(); BookshelfinspectorClient.currentBookData = BookData.empty();
} }
} }