diff --git a/src/main/java/com/atsuishio/superbwarfare/client/screens/DogTagEditorScreen.java b/src/main/java/com/atsuishio/superbwarfare/client/screens/DogTagEditorScreen.java index 00775049e..cecc9535b 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/screens/DogTagEditorScreen.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/screens/DogTagEditorScreen.java @@ -1,6 +1,7 @@ package com.atsuishio.superbwarfare.client.screens; import com.atsuishio.superbwarfare.Mod; +import com.atsuishio.superbwarfare.component.ModDataComponents; import com.atsuishio.superbwarfare.item.DogTag; import com.atsuishio.superbwarfare.network.message.send.DogTagFinishEditMessage; import net.minecraft.ChatFormatting; @@ -25,6 +26,7 @@ import org.jetbrains.annotations.NotNull; import javax.annotation.Nullable; import java.util.ArrayList; import java.util.Arrays; +import java.util.List; @OnlyIn(Dist.CLIENT) public class DogTagEditorScreen extends Screen { @@ -52,7 +54,7 @@ public class DogTagEditorScreen extends Screen { imageHeight = 185; } - protected void renderBg(GuiGraphics pGuiGraphics, float pPartialTick, int pMouseX, int pMouseY) { + protected void renderBg(GuiGraphics pGuiGraphics) { int i = (this.width - this.imageWidth) / 2; int j = (this.height - this.imageHeight) / 2; pGuiGraphics.blit(TEXTURE, i, j, 0, 0, this.imageWidth, this.imageHeight, 256, 256); @@ -82,7 +84,7 @@ public class DogTagEditorScreen extends Screen { this.renderBackground(pGuiGraphics, pMouseX, pMouseY, pPartialTick); super.render(pGuiGraphics, pMouseX, pMouseY, pPartialTick); this.name.render(pGuiGraphics, pMouseX, pMouseY, pPartialTick); - this.renderBg(pGuiGraphics, pPartialTick, pMouseX, pMouseY); + this.renderBg(pGuiGraphics); } @Override @@ -264,6 +266,7 @@ public class DogTagEditorScreen extends Screen { } } + this.updateLocal(colors, DogTagEditorScreen.this.name.getValue()); PacketDistributor.sendToServer(new DogTagFinishEditMessage(colors, DogTagEditorScreen.this.name.getValue())); } @@ -278,6 +281,14 @@ public class DogTagEditorScreen extends Screen { @Override protected void updateWidgetNarration(@NotNull NarrationElementOutput pNarrationElementOutput) { } + + protected void updateLocal(List colors, String name) { + DogTagEditorScreen.this.stack.set(ModDataComponents.DOG_TAG_IMAGE, colors); + + if (!name.isEmpty()) { + DogTagEditorScreen.this.stack.set(DataComponents.CUSTOM_NAME, Component.literal(name)); + } + } } public static int getColorFromFormatting(ChatFormatting chatFormatting) { diff --git a/src/main/java/com/atsuishio/superbwarfare/item/DogTag.java b/src/main/java/com/atsuishio/superbwarfare/item/DogTag.java index 3931bb3de..ddf0bb4a0 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/DogTag.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/DogTag.java @@ -9,6 +9,8 @@ import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.tooltip.TooltipComponent; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.api.distmarker.OnlyIn; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import top.theillusivec4.curios.api.CuriosApi; @@ -34,19 +36,6 @@ public class DogTag extends Item implements ICurioItem, ItemScreenProvider { return flag.get(); } -// @Override -// @ParametersAreNonnullByDefault -// public @NotNull InteractionResultHolder use(Level pLevel, Player pPlayer, InteractionHand pUsedHand) { -// ItemStack stack = pPlayer.getItemInHand(pUsedHand); -// if (pLevel.isClientSide) { -// return InteractionResultHolder.success(stack); -// } else { -// pPlayer.openMenu(new SimpleMenuProvider((i, inventory, player) -> -// new DogTagEditorMenu(i, ContainerLevelAccess.create(pLevel, pPlayer.getOnPos()), stack), Component.empty())); -// return InteractionResultHolder.consume(stack); -// } -// } - @Override public @NotNull Optional getTooltipImage(@NotNull ItemStack pStack) { return Optional.of(new DogTagImageComponent(pStack)); @@ -72,6 +61,7 @@ public class DogTag extends Item implements ICurioItem, ItemScreenProvider { return colors; } + @OnlyIn(Dist.CLIENT) @Override public @Nullable Screen getItemScreen(ItemStack stack, Player player) { return new DogTagEditorScreen(stack);