优化狗牌编辑
This commit is contained in:
parent
3866ee858d
commit
f5093b7af0
2 changed files with 16 additions and 15 deletions
|
@ -1,6 +1,7 @@
|
||||||
package com.atsuishio.superbwarfare.client.screens;
|
package com.atsuishio.superbwarfare.client.screens;
|
||||||
|
|
||||||
import com.atsuishio.superbwarfare.Mod;
|
import com.atsuishio.superbwarfare.Mod;
|
||||||
|
import com.atsuishio.superbwarfare.component.ModDataComponents;
|
||||||
import com.atsuishio.superbwarfare.item.DogTag;
|
import com.atsuishio.superbwarfare.item.DogTag;
|
||||||
import com.atsuishio.superbwarfare.network.message.send.DogTagFinishEditMessage;
|
import com.atsuishio.superbwarfare.network.message.send.DogTagFinishEditMessage;
|
||||||
import net.minecraft.ChatFormatting;
|
import net.minecraft.ChatFormatting;
|
||||||
|
@ -25,6 +26,7 @@ import org.jetbrains.annotations.NotNull;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@OnlyIn(Dist.CLIENT)
|
@OnlyIn(Dist.CLIENT)
|
||||||
public class DogTagEditorScreen extends Screen {
|
public class DogTagEditorScreen extends Screen {
|
||||||
|
@ -52,7 +54,7 @@ public class DogTagEditorScreen extends Screen {
|
||||||
imageHeight = 185;
|
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 i = (this.width - this.imageWidth) / 2;
|
||||||
int j = (this.height - this.imageHeight) / 2;
|
int j = (this.height - this.imageHeight) / 2;
|
||||||
pGuiGraphics.blit(TEXTURE, i, j, 0, 0, this.imageWidth, this.imageHeight, 256, 256);
|
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);
|
this.renderBackground(pGuiGraphics, pMouseX, pMouseY, pPartialTick);
|
||||||
super.render(pGuiGraphics, pMouseX, pMouseY, pPartialTick);
|
super.render(pGuiGraphics, pMouseX, pMouseY, pPartialTick);
|
||||||
this.name.render(pGuiGraphics, pMouseX, pMouseY, pPartialTick);
|
this.name.render(pGuiGraphics, pMouseX, pMouseY, pPartialTick);
|
||||||
this.renderBg(pGuiGraphics, pPartialTick, pMouseX, pMouseY);
|
this.renderBg(pGuiGraphics);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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()));
|
PacketDistributor.sendToServer(new DogTagFinishEditMessage(colors, DogTagEditorScreen.this.name.getValue()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -278,6 +281,14 @@ public class DogTagEditorScreen extends Screen {
|
||||||
@Override
|
@Override
|
||||||
protected void updateWidgetNarration(@NotNull NarrationElementOutput pNarrationElementOutput) {
|
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) {
|
public static int getColorFromFormatting(ChatFormatting chatFormatting) {
|
||||||
|
|
|
@ -9,6 +9,8 @@ import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.inventory.tooltip.TooltipComponent;
|
import net.minecraft.world.inventory.tooltip.TooltipComponent;
|
||||||
import net.minecraft.world.item.Item;
|
import net.minecraft.world.item.Item;
|
||||||
import net.minecraft.world.item.ItemStack;
|
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.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import top.theillusivec4.curios.api.CuriosApi;
|
import top.theillusivec4.curios.api.CuriosApi;
|
||||||
|
@ -34,19 +36,6 @@ public class DogTag extends Item implements ICurioItem, ItemScreenProvider {
|
||||||
return flag.get();
|
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
|
@Override
|
||||||
public @NotNull Optional<TooltipComponent> getTooltipImage(@NotNull ItemStack pStack) {
|
public @NotNull Optional<TooltipComponent> getTooltipImage(@NotNull ItemStack pStack) {
|
||||||
return Optional.of(new DogTagImageComponent(pStack));
|
return Optional.of(new DogTagImageComponent(pStack));
|
||||||
|
@ -72,6 +61,7 @@ public class DogTag extends Item implements ICurioItem, ItemScreenProvider {
|
||||||
return colors;
|
return colors;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@OnlyIn(Dist.CLIENT)
|
||||||
@Override
|
@Override
|
||||||
public @Nullable Screen getItemScreen(ItemStack stack, Player player) {
|
public @Nullable Screen getItemScreen(ItemStack stack, Player player) {
|
||||||
return new DogTagEditorScreen(stack);
|
return new DogTagEditorScreen(stack);
|
||||||
|
|
Loading…
Add table
Reference in a new issue