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
src/main/java/ru/magistu/siegemachines/client/gui/workbench

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

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