Files
Wizardry/src/main/java/electroblob/wizardry/tileentity/SlotItemClassList.java
T
Electroblob77 f37812be3e That's one heck of a commit you've got there...
I may have got a bit behind with version control. A lot behind, in fact. Maybe I'll go back and split this sometime - then again, I probably won't. But hey, at least it's here!
2019-08-18 00:04:18 +01:00

41 lines
1023 B
Java

package electroblob.wizardry.tileentity;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
/**
* Simple extension of {@link Slot} which only accepts items from an array of item classes defined in the constructor.
*
* @author Electroblob
* @since Wizardry 1.0
*/
public class SlotItemClassList extends Slot {
private final Class<? extends Item>[] itemClasses;
private int stackLimit;
@SafeVarargs
public SlotItemClassList(IInventory inventory, int index, int x, int y, int stackLimit, Class<? extends Item>... allowedItemClasses){
super(inventory, index, x, y);
this.itemClasses = allowedItemClasses;
this.stackLimit = stackLimit;
}
public int getSlotStackLimit(){
return stackLimit;
}
public boolean isItemValid(ItemStack stack){
for(Class<? extends Item> itemClass : itemClasses){
if(itemClass.isAssignableFrom(stack.getItem().getClass())){
return true;
}
}
return false;
}
}