How oliverhesse/formationarrays works
Formation Arrays is a Minecraft mod that discovers typed nodes in a dimension, activates formations when their node requirements are met, tracks those formations, and synchronizes updates to clients. Its main runtime flow runs from world/node changes through the dimension node manager and formation manager into formation instances; persisted dimension state and client patches support that lifecycle. The excerpts show key manager and serialization behavior, but not every registration or event-dispatch detail, so uncertain wiring is omitted.
Main entry points: DimensionFormationManager.java Dimension formations · DimensionNodeManager.java Dimension nodes · DimensionFormationManagerPatch.java Formation patch · CoreRegistries.java Core registries
Components 19
Node API
- Node types
src/main/java/net/lucent/formation_arrays/api/nodes/FormationNodeType.java - Node manager API
src/main/java/net/lucent/formation_arrays/api/nodes/NodeManager.java - Node providers
src/main/java/net/lucent/formation_arrays/api/nodes/type_provider/block/BlockNodeTypeProvider.java - Node capabilities
src/main/java/net/lucent/formation_arrays/capabilities/CoreCapabilities.java - Block lookup
src/main/java/net/lucent/formation_arrays/util/BlockUtil.java
Formation API
- Core registries
src/main/java/net/lucent/formation_arrays/api/CoreRegistries.java - Formation definition
src/main/java/net/lucent/formation_arrays/api/formations/Formation.java - Formation instance
src/main/java/net/lucent/formation_arrays/api/formations/FormationInstance.java - State contract
src/main/java/net/lucent/formation_arrays/api/formations/StateHandler.java - Simple state
src/main/java/net/lucent/formation_arrays/core/formations/SimpleStateHandler.java
Server Runtime
- Dimension nodes
src/main/java/net/lucent/formation_arrays/core/nodes/DimensionNodeManager.java - Activation recipes
src/main/java/net/lucent/formation_arrays/core/formations/FormationActivationHelper.java - Dimension formations
src/main/java/net/lucent/formation_arrays/core/formations/DimensionFormationManager.java - Placed formation
src/main/java/net/lucent/formation_arrays/core/formations/PlacedFormation.java - Formation events
src/main/java/net/lucent/formation_arrays/core/formations/FormationEventHandler.java
Client Sync
- Formation patch packet
src/main/java/net/lucent/formation_arrays/network/DimensionFormationManagerPatchPacket.java - Formation patch
src/main/java/net/lucent/formation_arrays/core/formations/DimensionFormationManagerPatch.java - Client formations
src/main/java/net/lucent/formation_arrays/core/formations/client/ClientDimensionFormationManager.java
Other components
- Minecraft world
Connections 20
- Core registries → Formation definition: registers type
src/main/java/net/lucent/formation_arrays/api/CoreRegistries.java - Core registries → Node providers: registers factories
src/main/java/net/lucent/formation_arrays/api/CoreRegistries.java - Simple state → State contract: implements
src/main/java/net/lucent/formation_arrays/core/formations/SimpleStateHandler.java - Simple state → Node manager API: checks nodes
src/main/java/net/lucent/formation_arrays/core/formations/SimpleStateHandler.java - Dimension nodes → Node types: resolves types
src/main/java/net/lucent/formation_arrays/core/nodes/DimensionNodeManager.java - Dimension nodes → Block lookup: checks providers
src/main/java/net/lucent/formation_arrays/core/nodes/DimensionNodeManager.java - Dimension nodes → Node capabilities: reads entity capability
src/main/java/net/lucent/formation_arrays/core/nodes/DimensionNodeManager.java - Block lookup → Node capabilities: queries capability
src/main/java/net/lucent/formation_arrays/util/BlockUtil.java - Minecraft world → Dimension nodes: provides node state
- Dimension formations → Dimension nodes: gets node manager
src/main/java/net/lucent/formation_arrays/core/formations/DimensionFormationManager.java - Dimension formations → Activation recipes: finds formations
src/main/java/net/lucent/formation_arrays/core/formations/DimensionFormationManager.java - Dimension formations → Formation definition: tries activation
src/main/java/net/lucent/formation_arrays/core/formations/DimensionFormationManager.java - Dimension formations → Formation instance: creates instances
src/main/java/net/lucent/formation_arrays/core/formations/DimensionFormationManager.java - Dimension formations → Placed formation: tracks placements
src/main/java/net/lucent/formation_arrays/core/formations/DimensionFormationManager.java - Formation events → Dimension formations: dispatches changes
src/main/java/net/lucent/formation_arrays/core/formations/FormationEventHandler.java - Dimension nodes → Formation events: posts node events
src/main/java/net/lucent/formation_arrays/core/nodes/DimensionNodeManager.java - Dimension formations → Formation patch: builds updates
src/main/java/net/lucent/formation_arrays/core/formations/DimensionFormationManager.java - Formation patch → Formation patch packet: transmitted by
src/main/java/net/lucent/formation_arrays/network/DimensionFormationManagerPatchPacket.java - Formation patch → Client formations: applies changes
src/main/java/net/lucent/formation_arrays/core/formations/DimensionFormationManagerPatch.java - Client formations → Formation instance: ticks instances
src/main/java/net/lucent/formation_arrays/core/formations/client/ClientDimensionFormationManager.java