52d28fabe3
* Use IItemHandler instead of IInventory internally
120 lines
2.4 KiB
Java
120 lines
2.4 KiB
Java
|
|
package appeng.client.gui;
|
|
|
|
|
|
import javax.annotation.Nonnull;
|
|
import javax.annotation.Nullable;
|
|
|
|
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
import net.minecraft.inventory.IInventory;
|
|
import net.minecraft.inventory.Slot;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.util.ResourceLocation;
|
|
import net.minecraftforge.fml.relauncher.Side;
|
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
|
import net.minecraftforge.items.SlotItemHandler;
|
|
|
|
|
|
/**
|
|
* 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 SlotItemHandler
|
|
{
|
|
|
|
private final SlotItemHandler delegate;
|
|
|
|
public Size1Slot( SlotItemHandler delegate )
|
|
{
|
|
super( delegate.getItemHandler(), 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 boolean isHere( IInventory inv, int slotIn )
|
|
{
|
|
return this.delegate.isHere( inv, slotIn );
|
|
}
|
|
|
|
@Override
|
|
public int getSlotStackLimit()
|
|
{
|
|
return this.delegate.getSlotStackLimit();
|
|
}
|
|
|
|
@Override
|
|
public int getItemStackLimit( ItemStack stack )
|
|
{
|
|
return this.delegate.getItemStackLimit( stack );
|
|
}
|
|
|
|
@Override
|
|
@Nullable
|
|
@SideOnly( Side.CLIENT )
|
|
public String getSlotTexture()
|
|
{
|
|
return this.delegate.getSlotTexture();
|
|
}
|
|
|
|
@Override
|
|
public boolean canTakeStack( EntityPlayer playerIn )
|
|
{
|
|
return this.delegate.canTakeStack( playerIn );
|
|
}
|
|
|
|
@Override
|
|
@SideOnly( Side.CLIENT )
|
|
public boolean isEnabled()
|
|
{
|
|
return this.delegate.isEnabled();
|
|
}
|
|
|
|
@Override
|
|
@SideOnly( Side.CLIENT )
|
|
public ResourceLocation getBackgroundLocation()
|
|
{
|
|
return this.delegate.getBackgroundLocation();
|
|
}
|
|
|
|
@Override
|
|
@SideOnly( Side.CLIENT )
|
|
public TextureAtlasSprite getBackgroundSprite()
|
|
{
|
|
return this.delegate.getBackgroundSprite();
|
|
}
|
|
|
|
@Override
|
|
public int getSlotIndex()
|
|
{
|
|
return this.delegate.getSlotIndex();
|
|
}
|
|
|
|
@Override
|
|
public boolean isSameInventory( Slot other )
|
|
{
|
|
return this.delegate.isSameInventory( other );
|
|
}
|
|
}
|