Class CableHelpers
java.lang.Object
org.cyclops.integrateddynamics.core.helper.CableHelpers
Helpers related to cables.
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic boolean
canCableConnectTo
(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos, net.minecraft.core.Direction side, ICable originCable) Check if one side of the given cable at the given position can connect to the given side.static void
disconnectCable
(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos, net.minecraft.core.Direction side, ICable cable, net.minecraft.core.Direction disconnectSide) Disconnect a cable's side.static net.minecraftforge.common.util.LazyOptional<ICable>
getCable
(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos, net.minecraft.core.Direction side) Get the cable capability at the given position.static Collection<net.minecraft.core.Direction>
getCableConnections
(ICable cable) Get the sides the cable is currently connected to.static net.minecraftforge.common.util.LazyOptional<ICableFakeable>
getCableFakeable
(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos, net.minecraft.core.Direction side) Get the fakeable cable capability at the given position.static Collection<net.minecraft.core.Direction>
getExternallyConnectedCables
(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos) Get the sides that are externally connected to the given position.static Optional<net.minecraft.world.level.block.state.BlockState>
getFacade
(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos) Get the target's facadestatic net.minecraftforge.common.util.LazyOptional<IPathElement>
getPathElement
(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos, net.minecraft.core.Direction side) Get the path element capability at the given position.static boolean
hasFacade
(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos) Check if the target has a facade.static boolean
isCableConnected
(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos, net.minecraft.core.Direction side) Check if there is a cable at the given position AND if it is connected for the given side.static boolean
isLightTransparent
(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos, net.minecraft.core.Direction side) static boolean
isNoFakeCable
(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos, net.minecraft.core.Direction side) Check if the given position is not a fake cable.static boolean
static net.minecraft.world.InteractionResult
onCableActivated
(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.entity.player.Player player, net.minecraft.world.item.ItemStack heldItem, net.minecraft.core.Direction side, net.minecraft.core.Direction cableConnectionHit) Actions to be performed when a player right clicks on a cable.static void
onCableAdded
(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos) This should be called when a cable is added.static void
onCableAddedByPlayer
(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos, net.minecraft.world.entity.LivingEntity placer) This should be called when a cable was added by a player.static boolean
onCableRemoved
(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos, Collection<net.minecraft.core.Direction> sides) This should be called AFTER a cable is removed, at this stage the part entity will not exist anymore.static boolean
onCableRemoving
(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos, boolean dropMainElement, boolean saveState) This should be called when a cable is being removed, while the part entity is still present.static void
removeCable
(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos, net.minecraft.world.entity.player.Player player) Remove a cable.static void
setRemovingCable
(boolean removingCable) static void
updateConnections
(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos, net.minecraft.core.Direction side) Request to update the cable connections at the given position.static void
updateConnectionsNeighbours
(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos, Collection<net.minecraft.core.Direction> sides) Request to update the cable connections of all neighbours of the given position.
-
Field Details
-
ALL_SIDES
-
-
Constructor Details
-
CableHelpers
public CableHelpers()
-
-
Method Details
-
getCable
public static net.minecraftforge.common.util.LazyOptional<ICable> getCable(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos, @Nullable net.minecraft.core.Direction side) Get the cable capability at the given position.- Parameters:
world
- The world.pos
- The position.side
- The side.- Returns:
- The optional cable capability.
-
getCableFakeable
public static net.minecraftforge.common.util.LazyOptional<ICableFakeable> getCableFakeable(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos, @Nullable net.minecraft.core.Direction side) Get the fakeable cable capability at the given position.- Parameters:
world
- The world.pos
- The position.side
- The side.- Returns:
- The optional fakeable cable capability.
-
getPathElement
public static net.minecraftforge.common.util.LazyOptional<IPathElement> getPathElement(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos, @Nullable net.minecraft.core.Direction side) Get the path element capability at the given position.- Parameters:
world
- The world.pos
- The position.side
- The side.- Returns:
- The optional path element capability.
-
updateConnectionsNeighbours
public static void updateConnectionsNeighbours(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos, Collection<net.minecraft.core.Direction> sides) Request to update the cable connections of all neighbours of the given position.- Parameters:
world
- The world.pos
- The center position.sides
- The sides to update connections for.
-
updateConnections
public static void updateConnections(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos, @Nullable net.minecraft.core.Direction side) Request to update the cable connections at the given position.- Parameters:
world
- The world.pos
- The position.side
- The side.
-
isCableConnected
public static boolean isCableConnected(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos, net.minecraft.core.Direction side) Check if there is a cable at the given position AND if it is connected for the given side.- Parameters:
world
- The world.pos
- The position.side
- The side to check a connection for.- Returns:
- If there is a cable that is connected.
-
canCableConnectTo
public static boolean canCableConnectTo(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos, net.minecraft.core.Direction side, ICable originCable) Check if one side of the given cable at the given position can connect to the given side. To be used when the cable connections are being updated. This will check if the origin cable can connect to that side, if there is a cable at the target side and if that cable can connect with this side. This ignores any current cable connections.- Parameters:
world
- The world.pos
- The center position.side
- The side from the center position to check.originCable
- The cable at the center position.- Returns:
- If it can connect.
-
isNoFakeCable
public static boolean isNoFakeCable(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos, @Nullable net.minecraft.core.Direction side) Check if the given position is not a fake cable. This can mean that there is no cable at all! But if there is a cable, this method will return true only if it is a real cable.- Parameters:
world
- The world.pos
- The position.side
- The side.- Returns:
- If there is no fake cable.
-
disconnectCable
public static void disconnectCable(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos, net.minecraft.core.Direction side, ICable cable, net.minecraft.core.Direction disconnectSide) Disconnect a cable's side.- Parameters:
world
- The cable world.pos
- The cable position.side
- The cable side.cable
- The cable to disconnect.disconnectSide
- The side to disconnect.
-
onCableActivated
public static net.minecraft.world.InteractionResult onCableActivated(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.entity.player.Player player, net.minecraft.world.item.ItemStack heldItem, net.minecraft.core.Direction side, @Nullable net.minecraft.core.Direction cableConnectionHit) Actions to be performed when a player right clicks on a cable.- Parameters:
world
- The world of the cable.pos
- The position of the cable.state
- The blockstate of the cable.player
- The player activating the cable.heldItem
- The item with which the player is right-clicking.side
- The side of the block the player right-clicked on.cableConnectionHit
- The side identifying the cable connection that is being activated, this will be null if the center part of the cable is activated.- Returns:
- Action result.
-
onCableAdded
public static void onCableAdded(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos) This should be called when a cable is added. This method automatically notifies the neighbours and (re-)initializes the network if this cable carries one. This should in most cases only be called server-side.- Parameters:
world
- The world.pos
- The position.
-
onCableAddedByPlayer
public static void onCableAddedByPlayer(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos, @Nullable net.minecraft.world.entity.LivingEntity placer) This should be called when a cable was added by a player. This should be called afteronCableAdded(World, BlockPos)
. It simply emits an player-sensitive init event on the network bus.- Parameters:
world
- The world.pos
- The position.placer
- The entity who placed the cable.
-
onCableRemoving
public static boolean onCableRemoving(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos, boolean dropMainElement, boolean saveState) This should be called when a cable is being removed, while the part entity is still present. This method won't do anything when called client-side.- Parameters:
world
- The world.pos
- The position.dropMainElement
- If the main part element should be dropped.saveState
- If the element state should be saved in the item.- Returns:
- If the cable was removed from the network.
-
onCableRemoved
public static boolean onCableRemoved(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos, Collection<net.minecraft.core.Direction> sides) This should be called AFTER a cable is removed, at this stage the part entity will not exist anymore. This method won't do anything when called client-side.- Parameters:
world
- The world.pos
- The position.sides
- The sides to update connections for.- Returns:
- If the cable was removed from the network.
-
isRemovingCable
public static boolean isRemovingCable()- Returns:
- If
removeCable(net.minecraft.world.level.Level, net.minecraft.core.BlockPos, net.minecraft.world.entity.player.Player)
is currently being called.
-
setRemovingCable
public static void setRemovingCable(boolean removingCable) - Parameters:
removingCable
- If the removing cable flag should be set
-
removeCable
public static void removeCable(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos, @Nullable net.minecraft.world.entity.player.Player player) Remove a cable. This will automatically handle sounds, drops, fakeable cables, network element removal and network (re)intialization.- Parameters:
world
- The world.pos
- The position.player
- The player removing the cable or null.
-
hasFacade
public static boolean hasFacade(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos) Check if the target has a facade.- Parameters:
world
- The world.pos
- The position.- Returns:
- If it has a facade.
-
getFacade
public static Optional<net.minecraft.world.level.block.state.BlockState> getFacade(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos) Get the target's facade- Parameters:
world
- The world.pos
- The position.- Returns:
- The optional facade.
-
isLightTransparent
public static boolean isLightTransparent(net.minecraft.world.level.BlockGetter world, net.minecraft.core.BlockPos pos, @Nullable net.minecraft.core.Direction side) -
getCableConnections
Get the sides the cable is currently connected to.- Parameters:
cable
- A cable.- Returns:
- The cable connections.
-
getExternallyConnectedCables
public static Collection<net.minecraft.core.Direction> getExternallyConnectedCables(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos) Get the sides that are externally connected to the given position.- Parameters:
world
- The world.pos
- The position.- Returns:
- The sides.
-