Hbm-s-Nuclear-Tech-GIT/src/main/java/com/hbm/inventory/SlotCraftingOutput.java
2023-06-08 16:51:54 +02:00

56 lines
1.4 KiB
Java

package com.hbm.inventory;
import com.hbm.util.AchievementHandler;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
public class SlotCraftingOutput extends Slot {
private EntityPlayer player;
private int craftBuffer;
public SlotCraftingOutput(EntityPlayer player, IInventory inventory, int i, int j, int k) {
super(inventory, i, j, k);
this.player = player;
}
@Override
public boolean isItemValid(ItemStack stack) {
return false;
}
//ugly but nothing to be done
public static void checkAchievements(EntityPlayer player, ItemStack stack) {
AchievementHandler.fire(player, stack);
}
@Override
public ItemStack decrStackSize(int amount) {
if(this.getHasStack()) {
this.craftBuffer += Math.min(amount, this.getStack().stackSize);
}
return super.decrStackSize(amount);
}
@Override
public void onPickupFromSlot(EntityPlayer player, ItemStack stack) {
this.onCrafting(stack);
super.onPickupFromSlot(player, stack);
}
@Override
protected void onCrafting(ItemStack stack, int amount) {
this.craftBuffer += amount;
this.onCrafting(stack);
}
@Override
protected void onCrafting(ItemStack stack) {
stack.onCrafting(this.player.worldObj, this.player, this.craftBuffer);
checkAchievements(this.player, stack);
this.craftBuffer = 0;
}
}