PrettyPipes/src/main/java/de/ellpeck/prettypipes/items/IModule.java

52 lines
2.2 KiB
Java
Raw Normal View History

2020-04-16 00:39:53 +02:00
package de.ellpeck.prettypipes.items;
2022-06-30 16:00:33 +02:00
import de.ellpeck.prettypipes.misc.DirectionSelector;
import de.ellpeck.prettypipes.misc.ItemFilter;
2021-12-02 14:44:26 +01:00
import de.ellpeck.prettypipes.pipe.PipeBlockEntity;
import de.ellpeck.prettypipes.pipe.containers.AbstractPipeContainer;
2021-12-02 14:44:26 +01:00
import net.minecraft.core.BlockPos;
2022-06-30 16:00:33 +02:00
import net.minecraft.core.Direction;
2021-12-02 14:44:26 +01:00
import net.minecraft.world.entity.player.Inventory;
import net.minecraft.world.entity.player.Player;
2021-12-02 12:31:04 +01:00
import net.minecraft.world.item.ItemStack;
2024-02-03 15:17:58 +01:00
import net.neoforged.neoforge.items.IItemHandler;
2020-04-16 00:39:53 +02:00
import java.util.List;
import java.util.Stack;
import java.util.function.Consumer;
2020-04-16 00:39:53 +02:00
public interface IModule {
2021-12-02 14:44:26 +01:00
void tick(ItemStack module, PipeBlockEntity tile);
2022-06-30 16:00:33 +02:00
boolean canNetworkSee(ItemStack module, PipeBlockEntity tile, Direction direction, IItemHandler handler);
2022-06-30 16:00:33 +02:00
boolean canAcceptItem(ItemStack module, PipeBlockEntity tile, ItemStack stack, Direction direction, IItemHandler destination);
2021-12-02 14:44:26 +01:00
int getMaxInsertionAmount(ItemStack module, PipeBlockEntity tile, ItemStack stack, IItemHandler destination);
2020-04-18 22:30:14 +02:00
2021-12-02 14:44:26 +01:00
int getPriority(ItemStack module, PipeBlockEntity tile);
2021-12-02 14:44:26 +01:00
boolean isCompatible(ItemStack module, PipeBlockEntity tile, IModule other);
2021-12-02 14:44:26 +01:00
boolean hasContainer(ItemStack module, PipeBlockEntity tile);
2021-12-02 14:44:26 +01:00
AbstractPipeContainer<?> getContainer(ItemStack module, PipeBlockEntity tile, int windowId, Inventory inv, Player player, int moduleIndex);
2020-04-16 23:40:35 +02:00
2021-12-02 14:44:26 +01:00
float getItemSpeedIncrease(ItemStack module, PipeBlockEntity tile);
2020-05-03 15:51:16 +02:00
2021-12-02 14:44:26 +01:00
boolean canPipeWork(ItemStack module, PipeBlockEntity tile);
2021-12-02 14:44:26 +01:00
List<ItemStack> getAllCraftables(ItemStack module, PipeBlockEntity tile);
2020-10-14 23:39:11 +02:00
2021-12-02 14:44:26 +01:00
int getCraftableAmount(ItemStack module, PipeBlockEntity tile, Consumer<ItemStack> unavailableConsumer, ItemStack stack, Stack<ItemStack> dependencyChain);
2020-10-15 04:15:52 +02:00
2021-12-02 14:44:26 +01:00
ItemStack craft(ItemStack module, PipeBlockEntity tile, BlockPos destPipe, Consumer<ItemStack> unavailableConsumer, ItemStack stack, Stack<ItemStack> dependencyChain);
2021-12-02 14:44:26 +01:00
Integer getCustomNextNode(ItemStack module, PipeBlockEntity tile, List<BlockPos> nodes, int index);
2021-12-02 14:44:26 +01:00
ItemFilter getItemFilter(ItemStack module, PipeBlockEntity tile);
2022-06-30 16:00:33 +02:00
DirectionSelector getDirectionSelector(ItemStack module, PipeBlockEntity tile);
2020-04-16 00:39:53 +02:00
}