ActuallyAdditions/src/main/java/de/ellpeck/actuallyadditions/api/laser/ILaserRelayConnectionHandler.java

36 lines
1.3 KiB
Java
Raw Normal View History

package de.ellpeck.actuallyadditions.api.laser;
import io.netty.util.internal.ConcurrentSet;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
/**
* This is the internal laser relay connection handler.
* Use ActuallyAdditionsAPI.connectionHandler for calling
* This is not supposed to be implemented.
2016-08-02 13:08:22 +02:00
* <p>
* The network system is built in a way that doesn't need the individual
* positions to be Laser Relays, it relies only on BlockPos
*/
2019-05-02 09:10:29 +02:00
public interface ILaserRelayConnectionHandler {
2016-09-12 16:13:39 +02:00
ConcurrentSet<IConnectionPair> getConnectionsFor(BlockPos relay, World world);
void removeRelayFromNetwork(BlockPos relay, World world);
Network getNetworkFor(BlockPos relay, World world);
boolean addConnection(BlockPos firstRelay, BlockPos secondRelay, LaserType type, World world);
boolean addConnection(BlockPos firstRelay, BlockPos secondRelay, LaserType type, World world, boolean suppressConnectionRender);
boolean addConnection(BlockPos firstRelay, BlockPos secondRelay, LaserType type, World world, boolean suppressConnectionRender, boolean removeIfConnected);
2017-02-13 19:07:53 +01:00
void removeConnection(World world, BlockPos firstRelay, BlockPos secondRelay);
LaserType getTypeFromLaser(TileEntity tile);
2016-10-31 21:14:23 +01:00
LaserType getTypeFromLaser(BlockPos pos, World world);
}