PrettyPipes/src/main/java/de/ellpeck/prettypipes/pipe/modules/insertion/FilterModuleItem.java

46 lines
1.7 KiB
Java
Raw Normal View History

2020-04-16 23:40:35 +02:00
package de.ellpeck.prettypipes.pipe.modules.insertion;
2020-04-16 21:19:40 +02:00
import de.ellpeck.prettypipes.Registry;
import de.ellpeck.prettypipes.items.IModule;
import de.ellpeck.prettypipes.items.ModuleItem;
import de.ellpeck.prettypipes.items.ModuleTier;
import de.ellpeck.prettypipes.misc.ItemFilter;
import de.ellpeck.prettypipes.pipe.PipeTileEntity;
import de.ellpeck.prettypipes.pipe.containers.AbstractPipeContainer;
2020-04-16 21:19:40 +02:00
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.item.ItemStack;
public class FilterModuleItem extends ModuleItem {
public final int filterSlots;
2020-04-16 22:25:58 +02:00
public final boolean canPopulateFromInventories;
2020-04-16 21:19:40 +02:00
public FilterModuleItem(String name, ModuleTier tier) {
super(name);
this.filterSlots = tier.forTier(5, 9, 18);
2020-04-16 22:25:58 +02:00
this.canPopulateFromInventories = tier.forTier(false, false, true);
2020-04-16 21:19:40 +02:00
}
@Override
public boolean canAcceptItem(ItemStack module, PipeTileEntity tile, ItemStack stack) {
2020-04-16 22:25:58 +02:00
ItemFilter filter = new ItemFilter(this.filterSlots, module, tile);
2020-04-16 21:19:40 +02:00
return filter.isAllowed(stack);
}
@Override
public boolean isCompatible(ItemStack module, PipeTileEntity tile, IModule other) {
return !(other instanceof FilterModuleItem);
}
@Override
public boolean hasContainer(ItemStack module, PipeTileEntity tile) {
return true;
}
@Override
public AbstractPipeContainer<?> getContainer(ItemStack module, PipeTileEntity tile, int windowId, PlayerInventory inv, PlayerEntity player, int moduleIndex) {
return new FilterModuleContainer(Registry.filterModuleContainer, windowId, player, tile.getPos(), moduleIndex);
}
}