promotional bannermobile promotional banner
premium banner
A simple library allowing modders to create custom pipe networks

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());