Update Workbench

This commit is contained in:
Vecoo 2025-03-04 22:11:08 +11:00
parent ab013975b1
commit 7c730827e5
2 changed files with 47 additions and 56 deletions

View File

@ -57,12 +57,12 @@ public class SiegeWorkbenchResultSlot extends Slot {
*/ */
protected void checkTakeAchievements(ItemStack stack) { protected void checkTakeAchievements(ItemStack stack) {
if (this.removeCount > 0) { if (this.removeCount > 0) {
stack.onCraftedBy(this.player.level, this.player, this.removeCount); stack.onCraftedBy(this.player.level(), this.player, this.removeCount);
net.minecraftforge.event.ForgeEventFactory.firePlayerCraftingEvent(this.player, stack, this.craftSlots); net.minecraftforge.event.ForgeEventFactory.firePlayerCraftingEvent(this.player, stack, this.craftSlots);
} }
if (this.container instanceof RecipeHolder) { if (this.container instanceof RecipeHolder) {
((RecipeHolder)this.container).awardUsedRecipes(this.player); ((RecipeHolder) this.container).awardUsedRecipes(this.player, this.craftSlots.getItems()); //TODO
} }
this.removeCount = 0; this.removeCount = 0;
@ -71,8 +71,8 @@ public class SiegeWorkbenchResultSlot extends Slot {
public void onTake(Player player, ItemStack stack) { public void onTake(Player player, ItemStack stack) {
this.checkTakeAchievements(stack); this.checkTakeAchievements(stack);
net.minecraftforge.common.ForgeHooks.setCraftingPlayer(player); net.minecraftforge.common.ForgeHooks.setCraftingPlayer(player);
RecipeManager manager = player.level.getRecipeManager(); RecipeManager manager = player.level().getRecipeManager();
NonNullList<ItemStack> nonnulllist = manager.getRemainingItemsFor(ModRecipes.SIEGE_WORKBENCH_RECIPE, craftSlots, player.level); NonNullList<ItemStack> nonnulllist = manager.getRemainingItemsFor(ModRecipes.SIEGE_WORKBENCH_RECIPE, craftSlots, player.level());
net.minecraftforge.common.ForgeHooks.setCraftingPlayer(null); net.minecraftforge.common.ForgeHooks.setCraftingPlayer(null);
for (int i = 0; i < nonnulllist.size(); ++i) { for (int i = 0; i < nonnulllist.size(); ++i) {
ItemStack itemstack = this.craftSlots.getItem(i); ItemStack itemstack = this.craftSlots.getItem(i);
@ -85,7 +85,7 @@ public class SiegeWorkbenchResultSlot extends Slot {
if (!itemstack1.isEmpty()) { if (!itemstack1.isEmpty()) {
if (itemstack.isEmpty()) { if (itemstack.isEmpty()) {
this.craftSlots.setItem(i, itemstack1); this.craftSlots.setItem(i, itemstack1);
} else if (ItemStack.isSame(itemstack, itemstack1) && ItemStack.tagMatches(itemstack, itemstack1)) { } else if (ItemStack.isSameItem(itemstack, itemstack1) && ItemStack.matches(itemstack, itemstack1)) {
itemstack1.grow(itemstack.getCount()); itemstack1.grow(itemstack.getCount());
this.craftSlots.setItem(i, itemstack1); this.craftSlots.setItem(i, itemstack1);
} else if (!this.player.getInventory().add(itemstack1)) { } else if (!this.player.getInventory().add(itemstack1)) {

View File

@ -1,7 +1,7 @@
package ru.magistu.siegemachines.client.gui.workbench; package ru.magistu.siegemachines.client.gui.workbench;
import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen;
import net.minecraft.client.renderer.GameRenderer; import net.minecraft.client.renderer.GameRenderer;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
@ -13,56 +13,47 @@ import org.jetbrains.annotations.NotNull;
import ru.magistu.siegemachines.SiegeMachines; import ru.magistu.siegemachines.SiegeMachines;
@OnlyIn(Dist.CLIENT) @OnlyIn(Dist.CLIENT)
public class SiegeWorkbenchScreen extends AbstractContainerScreen<SiegeWorkbenchContainer> public class SiegeWorkbenchScreen extends AbstractContainerScreen<SiegeWorkbenchContainer> {
{
private static final ResourceLocation DISPLAY_CASE_GUI = new ResourceLocation(SiegeMachines.ID, "textures/gui/siege_workbench.png"); private static final ResourceLocation DISPLAY_CASE_GUI = new ResourceLocation(SiegeMachines.ID, "textures/gui/siege_workbench.png");
public SiegeWorkbenchScreen(SiegeWorkbenchContainer screenContainer, Inventory inv, Component titleIn) public SiegeWorkbenchScreen(SiegeWorkbenchContainer screenContainer, Inventory inv, Component titleIn) {
{
super(screenContainer, inv, titleIn); super(screenContainer, inv, titleIn);
} }
@Override @Override
public void render(PoseStack matrixStack, int mouseX, int mouseY, float partialTicks) public void render(GuiGraphics matrixStack, int mouseX, int mouseY, float partialTicks) {
{
this.renderBackground(matrixStack); this.renderBackground(matrixStack);
super.render(matrixStack, mouseX, mouseY, partialTicks); super.render(matrixStack, mouseX, mouseY, partialTicks);
this.renderTooltip(matrixStack, mouseX, mouseY); this.renderTooltip(matrixStack, mouseX, mouseY);
} }
@Override @Override
protected void renderTooltip(@NotNull PoseStack matrixStack, int x, int y) protected void renderTooltip(@NotNull GuiGraphics matrixStack, int x, int y) {
{ if (this.minecraft.player.getInventory().getSelected().isEmpty() && this.hoveredSlot != null && this.hoveredSlot.hasItem()) {
if (this.minecraft.player.getInventory().getSelected().isEmpty() && this.hoveredSlot != null && this.hoveredSlot.hasItem()) this.renderTooltip(matrixStack, x, y);
{
this.renderTooltip(matrixStack, this.hoveredSlot.getItem(), x, y);
} }
} }
@Override @Override
protected void init() protected void init() {
{
super.init(); super.init();
this.titleLabelX = 29; this.titleLabelX = 29;
} }
@Override @Override
protected void renderBg(@NotNull PoseStack matrixStack, float partialTicks, int mouseX, int mouseY) protected void renderBg(@NotNull GuiGraphics matrixStack, float partialTicks, int mouseX, int mouseY) {
{
RenderSystem.setShader(GameRenderer::getPositionTexShader); RenderSystem.setShader(GameRenderer::getPositionTexShader);
RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F);
RenderSystem.setShaderTexture(0, DISPLAY_CASE_GUI); RenderSystem.setShaderTexture(0, DISPLAY_CASE_GUI);
int i = this.leftPos; int i = this.leftPos;
int j = (this.height - this.imageHeight) / 2; int j = (this.height - this.imageHeight) / 2;
this.blit(matrixStack, i, j, 0, 0, this.imageWidth, this.imageHeight); matrixStack.blit(DISPLAY_CASE_GUI, i, j, 0, 0, this.imageWidth, this.imageHeight);
} }
@Override @Override
public boolean keyPressed(int key, int b, int c) public boolean keyPressed(int key, int b, int c) {
{
assert this.minecraft != null; assert this.minecraft != null;
if (key == 256) if (key == 256) {
{
assert this.minecraft.player != null; assert this.minecraft.player != null;
this.minecraft.player.closeContainer(); this.minecraft.player.closeContainer();
return true; return true;