Update Workbench
This commit is contained in:
parent
ab013975b1
commit
7c730827e5
@ -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)) {
|
||||||
|
@ -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,60 +13,51 @@ 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
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void renderTooltip(@NotNull PoseStack matrixStack, int x, int y)
|
public void render(GuiGraphics matrixStack, int mouseX, int mouseY, float partialTicks) {
|
||||||
{
|
this.renderBackground(matrixStack);
|
||||||
if (this.minecraft.player.getInventory().getSelected().isEmpty() && this.hoveredSlot != null && this.hoveredSlot.hasItem())
|
super.render(matrixStack, mouseX, mouseY, partialTicks);
|
||||||
{
|
this.renderTooltip(matrixStack, mouseX, mouseY);
|
||||||
this.renderTooltip(matrixStack, this.hoveredSlot.getItem(), x, y);
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void init()
|
protected void renderTooltip(@NotNull GuiGraphics matrixStack, int x, int y) {
|
||||||
{
|
if (this.minecraft.player.getInventory().getSelected().isEmpty() && this.hoveredSlot != null && this.hoveredSlot.hasItem()) {
|
||||||
super.init();
|
this.renderTooltip(matrixStack, x, y);
|
||||||
this.titleLabelX = 29;
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void renderBg(@NotNull PoseStack matrixStack, float partialTicks, int mouseX, int mouseY)
|
protected void init() {
|
||||||
{
|
super.init();
|
||||||
RenderSystem.setShader(GameRenderer::getPositionTexShader);
|
this.titleLabelX = 29;
|
||||||
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
|
@Override
|
||||||
public boolean keyPressed(int key, int b, int c)
|
protected void renderBg(@NotNull GuiGraphics matrixStack, float partialTicks, int mouseX, int mouseY) {
|
||||||
{
|
RenderSystem.setShader(GameRenderer::getPositionTexShader);
|
||||||
assert this.minecraft != null;
|
RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F);
|
||||||
if (key == 256)
|
RenderSystem.setShaderTexture(0, DISPLAY_CASE_GUI);
|
||||||
{
|
int i = this.leftPos;
|
||||||
assert this.minecraft.player != null;
|
int j = (this.height - this.imageHeight) / 2;
|
||||||
this.minecraft.player.closeContainer();
|
matrixStack.blit(DISPLAY_CASE_GUI, i, j, 0, 0, this.imageWidth, this.imageHeight);
|
||||||
return true;
|
}
|
||||||
}
|
|
||||||
return super.keyPressed(key, b, c);
|
@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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user