java.lang.Object
com.simibubi.create.content.logistics.trains.TrackGraph

public class TrackGraph extends Object
  • Field Details

    • graphNetIdGenerator

      public static final AtomicInteger graphNetIdGenerator
    • nodeNetIdGenerator

      public static final AtomicInteger nodeNetIdGenerator
    • id

      public UUID id
    • color

      public Color color
  • Constructor Details

    • TrackGraph

      public TrackGraph()
    • TrackGraph

      public TrackGraph(UUID graphID)
  • Method Details

    • addPoint

      public <T extends TrackEdgePoint> void addPoint(EdgePointType<T> type, T point)
    • getPoint

      public <T extends TrackEdgePoint> T getPoint(EdgePointType<T> type, UUID id)
    • getPoints

      public <T extends TrackEdgePoint> Collection<T> getPoints(EdgePointType<T> type)
    • removePoint

      public <T extends TrackEdgePoint> T removePoint(EdgePointType<T> type, UUID id)
    • tickPoints

      public void tickPoints(boolean preTrains)
    • getBounds

      public TrackGraphBounds getBounds(net.minecraft.world.level.Level level)
    • invalidateBounds

      public void invalidateBounds()
    • getNodes

      public Set<TrackNodeLocation> getNodes()
    • locateNode

      public TrackNode locateNode(net.minecraft.world.level.Level level, net.minecraft.world.phys.Vec3 position)
    • locateNode

      public TrackNode locateNode(TrackNodeLocation position)
    • getNode

      public TrackNode getNode(int netId)
    • createNodeIfAbsent

      public boolean createNodeIfAbsent(TrackNodeLocation.DiscoveredLocation location)
    • loadNode

      public void loadNode(TrackNodeLocation location, int netId, net.minecraft.world.phys.Vec3 normal)
    • addNode

      public void addNode(TrackNode node)
    • addNodeIfAbsent

      public boolean addNodeIfAbsent(TrackNode node)
    • removeNode

      public boolean removeNode(@Nullable net.minecraft.world.level.LevelAccessor level, TrackNodeLocation location)
    • nextNodeId

      public static int nextNodeId()
    • nextGraphId

      public static int nextGraphId()
    • transferAll

      public void transferAll(TrackGraph toOther)
    • findDisconnectedGraphs

      public Set<TrackGraph> findDisconnectedGraphs(@Nullable net.minecraft.world.level.LevelAccessor level, @Nullable Map<Integer,Pair<Integer,UUID>> splitSubGraphs)
    • setId

      public void setId(UUID id)
    • setNetId

      public void setNetId(int id)
    • getChecksum

      public int getChecksum()
    • transfer

      public void transfer(net.minecraft.world.level.LevelAccessor level, TrackNode node, TrackGraph target)
    • isEmpty

      public boolean isEmpty()
    • getConnectionsFrom

      public Map<TrackNode,TrackEdge> getConnectionsFrom(TrackNode node)
    • getConnection

      public TrackEdge getConnection(Couple<TrackNode> nodes)
    • connectNodes

      public void connectNodes(net.minecraft.world.level.LevelAccessor reader, TrackNodeLocation location, TrackNodeLocation location2, @Nullable BezierConnection turn)
    • disconnectNodes

      public void disconnectNodes(TrackNode node1, TrackNode node2)
    • putConnection

      public boolean putConnection(TrackNode node1, TrackNode node2, TrackEdge edge)
    • distanceToLocationSqr

      public float distanceToLocationSqr(net.minecraft.world.level.Level level, net.minecraft.world.phys.Vec3 location)
    • deferIntersectionUpdate

      public void deferIntersectionUpdate(TrackEdge edge)
    • resolveIntersectingEdgeGroups

      public void resolveIntersectingEdgeGroups(net.minecraft.world.level.Level level)
    • markDirty

      public void markDirty()
    • write

      public net.minecraft.nbt.CompoundTag write(DimensionPalette dimensions)
    • read

      public static TrackGraph read(net.minecraft.nbt.CompoundTag tag, DimensionPalette dimensions)