Description
Transport Lib
A library to streamline the process of creating transport networks for any resource.
The library supports the following parameters by default:
- Resource loss per block (Energy loss, Fluids leaking…)
- Custom Transport Handlers for merging/splitting resources
- Syncing resource amounts to the client for visual display
- Accessing resources in cables through block capabilities (WIP)
Here is a concrete example of how to register a network.
public static final DeferredHolder<TransportNetwork<?>, TransportNetworkImpl<Integer>> MANA_NETWORK = NETWORKS.register("mana",
() -> TransportNetworkImpl.builder(ManaTransportingHandler.INSTANCE)
.synced(ByteBufCodecs.INT)
.lossPerBlock((level, node) -> 1f)
.transferSpeed(TransferSpeed::instant)
.interactorCheck(((level, pos, direction) -> level.getBlockEntity(pos.relative(direction)) instanceof ManaBatteryBlockEntity))
.build());

