优化狗牌编辑

This commit is contained in:
17146 2025-07-10 21:31:59 +08:00 committed by Light_Quanta
parent 3866ee858d
commit f5093b7af0
No known key found for this signature in database
GPG key ID: 11A39A1B8C890959
2 changed files with 16 additions and 15 deletions

View file

@ -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<Short> 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) {

View file

@ -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<ItemStack> 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<TooltipComponent> 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);