Files
Applied-Energistics-2/src/main/java/appeng/client/gui/Size1Slot.java
T
shartte 0632925653 Remove the use of SlotItemHandler since we are only faking an inventory-backed slot, (#4654)
we might as well use what we had used pre-2017, which is simply extending a normal Slot.
This should also fix #4652.
2020-08-29 21:50:06 +02:00

75 lines
1.8 KiB
Java

package appeng.client.gui;
import javax.annotation.Nonnull;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.inventory.container.Slot;
import net.minecraft.item.ItemStack;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
/**
* A proxy for a slot that will always return an itemstack with size 1, if there
* is an item in the slot. Used to prevent the default item count from
* rendering.
*/
class Size1Slot extends Slot {
private final Slot delegate;
public Size1Slot(Slot delegate) {
super(delegate.inventory, delegate.getSlotIndex(), delegate.xPos, delegate.yPos);
this.delegate = delegate;
}
@Override
@Nonnull
public ItemStack getStack() {
ItemStack orgStack = this.delegate.getStack();
if (!orgStack.isEmpty()) {
ItemStack modifiedStack = orgStack.copy();
modifiedStack.setCount(1);
return modifiedStack;
}
return ItemStack.EMPTY;
}
@Override
public boolean getHasStack() {
return this.delegate.getHasStack();
}
@Override
public int getSlotStackLimit() {
return this.delegate.getSlotStackLimit();
}
@Override
public int getItemStackLimit(ItemStack stack) {
return this.delegate.getItemStackLimit(stack);
}
@Override
public boolean canTakeStack(PlayerEntity playerIn) {
return this.delegate.canTakeStack(playerIn);
}
@Override
@OnlyIn(Dist.CLIENT)
public boolean isEnabled() {
return this.delegate.isEnabled();
}
@Override
public int getSlotIndex() {
return this.delegate.getSlotIndex();
}
@Override
public boolean isSameInventory(Slot other) {
return this.delegate.isSameInventory(other);
}
}