# techtastic/hexsky architecture

> Architecture diagram of the GitHub repository techtastic/hexsky, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/techtastic/hexsky
- Repository: https://github.com/techtastic/hexsky

## Overview

HexxySkies is a Minecraft mod that adds Valkyrien Skies ship operations to Hex Casting, with optional integrations for related mods. The main workflow is casting registered ship patterns to identify a ship, inspect its properties, or apply physics changes; assembly and gravity behavior are additional runtime branches. The source samples show registration, bootstrap, delayed assembly, force application, and Hexodus gravity handling. Other casting operators and integrations are represented from their filenames and registration references; their internal calls are not inferred.

Main entry points: [`common/src/main/kotlin/io/github/techtastic/hexxyskies/HexxySkies.kt`](https://github.com/techtastic/hexsky/blob/master/common/src/main/kotlin/io/github/techtastic/hexxyskies/HexxySkies.kt) (Common initializer), [`common/src/main/kotlin/io/github/techtastic/hexxyskies/registry/HexxySkiesPatterns.kt`](https://github.com/techtastic/hexsky/blob/master/common/src/main/kotlin/io/github/techtastic/hexxyskies/registry/HexxySkiesPatterns.kt) (Pattern registry), [`common/src/main/kotlin/io/github/techtastic/hexxyskies/casting/patterns/spells`](https://github.com/techtastic/hexsky/tree/master/common/src/main/kotlin/io/github/techtastic/hexxyskies/casting/patterns/spells) (Ship spells), [`common/src/main/kotlin/io/github/techtastic/hexxyskies/util/DelayedAssemblyHelper.kt`](https://github.com/techtastic/hexsky/blob/master/common/src/main/kotlin/io/github/techtastic/hexxyskies/util/DelayedAssemblyHelper.kt) (Delayed assembly)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_bootstrap["Mod bootstrap"]
  node_hexxy["Common initializer<br/>[HexxySkies.kt]"]
  node_fabric_entry["Fabric entrypoint"]
  node_forge_entry["Forge entrypoint<br/>[HexxySkiesForge.kt]"]
end

subgraph group_casting["Hex Casting"]
  node_pattern_registry["Pattern registry"]
  node_iota_registry["Iota registry<br/>[HexxySkiesIotas.kt]"]
  node_ship_iota["Ship iota<br/>[ShipIota.kt]"]
end

subgraph group_ships["Ship operations"]
  node_ship_lookup["Ship lookup"]
  node_ship_queries["Ship queries"]
  node_ship_spells["Ship spells"]
  node_assembly["Delayed assembly"]
  node_assembler["Ship assembler"]
  node_gravity["Gravity controller<br/>[GravityChanger.kt]"]
end

subgraph group_integrations["Optional integrations"]
  node_hexodus["Hexodus operators<br/>[HexodusInterop.kt]"]
  node_hexal["Hexal integration<br/>[HexalInterop.kt]"]
  node_hexical["Hexical integration<br/>[HexicalInterop.kt]"]
  node_hexical_mixins["Hexical mixins"]
  node_gravity_mixins["Hexodus gravity mixins"]
  node_other_interop["MoreIotas interop"]
end

node_caster(("Caster"))
node_hexcasting["Hex Casting"]
node_vs["Valkyrien Skies"]

node_caster -->|"casts patterns"| node_hexcasting
node_hexxy -->|"registers"| node_pattern_registry
node_hexxy -->|"registers"| node_iota_registry
node_hexxy -->|"ticks queue"| node_assembly
node_hexxy -->|"ticks ships"| node_gravity
node_forge_entry -->|"initializes"| node_hexxy
node_fabric_entry -->|"initializes"| node_hexxy
node_pattern_registry -->|"registers actions"| node_hexcasting
node_pattern_registry -->|"registers"| node_ship_lookup
node_pattern_registry -->|"registers"| node_ship_queries
node_pattern_registry -->|"registers"| node_ship_spells
node_ship_lookup -->|"returns ship"| node_ship_iota
node_ship_spells -->|"applies ship physics"| node_vs
node_assembly -->|"assembles queued blocks"| node_assembler
node_ship_spells -->|"queues assembly"| node_assembly
node_hexodus -->|"changes or reads"| node_gravity
node_gravity -->|"applies gravity force"| node_vs
node_hexxy -.->|"enables casting extension"| node_hexal
node_hexxy -.->|"checks mod presence"| node_hexical
node_hexxy -.->|"checks mod presence"| node_other_interop
node_hexical_mixins -.->|"moves pedestal items"| node_vs
node_gravity_mixins -.->|"modifies gravity operators"| node_hexodus

click node_hexxy "https://github.com/techtastic/hexsky/blob/master/common/src/main/kotlin/io/github/techtastic/hexxyskies/HexxySkies.kt"
click node_fabric_entry "https://github.com/techtastic/hexsky/blob/master/fabric/src/main/kotlin/io/github/techtastic/hexxyskies/fabric/HexxySkiesFabric.kt"
click node_forge_entry "https://github.com/techtastic/hexsky/blob/master/forge/src/main/kotlin/io/github/techtastic/hexxyskies/forge/HexxySkiesForge.kt"
click node_pattern_registry "https://github.com/techtastic/hexsky/blob/master/common/src/main/kotlin/io/github/techtastic/hexxyskies/registry/HexxySkiesPatterns.kt"
click node_iota_registry "https://github.com/techtastic/hexsky/blob/master/common/src/main/kotlin/io/github/techtastic/hexxyskies/registry/HexxySkiesIotas.kt"
click node_ship_iota "https://github.com/techtastic/hexsky/blob/master/common/src/main/kotlin/io/github/techtastic/hexxyskies/casting/iota/ShipIota.kt"
click node_ship_lookup "https://github.com/techtastic/hexsky/tree/master/common/src/main/kotlin/io/github/techtastic/hexxyskies/casting/patterns"
click node_ship_queries "https://github.com/techtastic/hexsky/tree/master/common/src/main/kotlin/io/github/techtastic/hexxyskies/casting/patterns"
click node_ship_spells "https://github.com/techtastic/hexsky/tree/master/common/src/main/kotlin/io/github/techtastic/hexxyskies/casting/patterns/spells"
click node_assembly "https://github.com/techtastic/hexsky/blob/master/common/src/main/kotlin/io/github/techtastic/hexxyskies/util/DelayedAssemblyHelper.kt"
click node_gravity "https://github.com/techtastic/hexsky/blob/master/common/src/main/kotlin/io/github/techtastic/hexxyskies/ship/GravityChanger.kt"
click node_hexodus "https://github.com/techtastic/hexsky/blob/master/common/src/main/kotlin/io/github/techtastic/hexxyskies/interop/HexodusInterop.kt"
click node_hexal "https://github.com/techtastic/hexsky/blob/master/common/src/main/kotlin/io/github/techtastic/hexxyskies/interop/HexalInterop.kt"
click node_hexical "https://github.com/techtastic/hexsky/blob/master/common/src/main/kotlin/io/github/techtastic/hexxyskies/interop/HexicalInterop.kt"
click node_hexical_mixins "https://github.com/techtastic/hexsky/tree/master/common/src/main/java/io/github/techtastic/hexxyskies/mixin/hexical"
click node_gravity_mixins "https://github.com/techtastic/hexsky/tree/master/common/src/main/java/io/github/techtastic/hexxyskies/mixin/hexodus"
click node_other_interop "https://github.com/techtastic/hexsky/tree/master/common/src/main/kotlin/io/github/techtastic/hexxyskies/interop"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_hexxy,node_fabric_entry,node_forge_entry toneBlue
class node_pattern_registry,node_iota_registry,node_ship_iota toneAmber
class node_ship_lookup,node_ship_queries,node_ship_spells,node_assembly,node_assembler,node_gravity toneMint
class node_hexodus,node_hexal,node_hexical,node_hexical_mixins,node_gravity_mixins,node_other_interop toneRose
class node_caster,node_hexcasting,node_vs toneIndigo
```

## Components

### Mod bootstrap

- [Common initializer](https://github.com/techtastic/hexsky/blob/master/common/src/main/kotlin/io/github/techtastic/hexxyskies/HexxySkies.kt): `common/src/main/kotlin/io/github/techtastic/hexxyskies/HexxySkies.kt`
- [Fabric entrypoint](https://github.com/techtastic/hexsky/blob/master/fabric/src/main/kotlin/io/github/techtastic/hexxyskies/fabric/HexxySkiesFabric.kt): `fabric/src/main/kotlin/io/github/techtastic/hexxyskies/fabric/HexxySkiesFabric.kt`
- [Forge entrypoint](https://github.com/techtastic/hexsky/blob/master/forge/src/main/kotlin/io/github/techtastic/hexxyskies/forge/HexxySkiesForge.kt): `forge/src/main/kotlin/io/github/techtastic/hexxyskies/forge/HexxySkiesForge.kt`

### Hex Casting

- [Pattern registry](https://github.com/techtastic/hexsky/blob/master/common/src/main/kotlin/io/github/techtastic/hexxyskies/registry/HexxySkiesPatterns.kt): `common/src/main/kotlin/io/github/techtastic/hexxyskies/registry/HexxySkiesPatterns.kt`
- [Iota registry](https://github.com/techtastic/hexsky/blob/master/common/src/main/kotlin/io/github/techtastic/hexxyskies/registry/HexxySkiesIotas.kt): `common/src/main/kotlin/io/github/techtastic/hexxyskies/registry/HexxySkiesIotas.kt`
- [Ship iota](https://github.com/techtastic/hexsky/blob/master/common/src/main/kotlin/io/github/techtastic/hexxyskies/casting/iota/ShipIota.kt): `common/src/main/kotlin/io/github/techtastic/hexxyskies/casting/iota/ShipIota.kt`

### Ship operations

- [Ship lookup](https://github.com/techtastic/hexsky/tree/master/common/src/main/kotlin/io/github/techtastic/hexxyskies/casting/patterns): `common/src/main/kotlin/io/github/techtastic/hexxyskies/casting/patterns`
- [Ship queries](https://github.com/techtastic/hexsky/tree/master/common/src/main/kotlin/io/github/techtastic/hexxyskies/casting/patterns): `common/src/main/kotlin/io/github/techtastic/hexxyskies/casting/patterns`
- [Ship spells](https://github.com/techtastic/hexsky/tree/master/common/src/main/kotlin/io/github/techtastic/hexxyskies/casting/patterns/spells): `common/src/main/kotlin/io/github/techtastic/hexxyskies/casting/patterns/spells`
- [Delayed assembly](https://github.com/techtastic/hexsky/blob/master/common/src/main/kotlin/io/github/techtastic/hexxyskies/util/DelayedAssemblyHelper.kt): `common/src/main/kotlin/io/github/techtastic/hexxyskies/util/DelayedAssemblyHelper.kt`
- **Ship assembler**
- [Gravity controller](https://github.com/techtastic/hexsky/blob/master/common/src/main/kotlin/io/github/techtastic/hexxyskies/ship/GravityChanger.kt): `common/src/main/kotlin/io/github/techtastic/hexxyskies/ship/GravityChanger.kt`

### Optional integrations

- [Hexodus operators](https://github.com/techtastic/hexsky/blob/master/common/src/main/kotlin/io/github/techtastic/hexxyskies/interop/HexodusInterop.kt): `common/src/main/kotlin/io/github/techtastic/hexxyskies/interop/HexodusInterop.kt`
- [Hexal integration](https://github.com/techtastic/hexsky/blob/master/common/src/main/kotlin/io/github/techtastic/hexxyskies/interop/HexalInterop.kt): `common/src/main/kotlin/io/github/techtastic/hexxyskies/interop/HexalInterop.kt`
- [Hexical integration](https://github.com/techtastic/hexsky/blob/master/common/src/main/kotlin/io/github/techtastic/hexxyskies/interop/HexicalInterop.kt): `common/src/main/kotlin/io/github/techtastic/hexxyskies/interop/HexicalInterop.kt`
- [Hexical mixins](https://github.com/techtastic/hexsky/tree/master/common/src/main/java/io/github/techtastic/hexxyskies/mixin/hexical): `common/src/main/java/io/github/techtastic/hexxyskies/mixin/hexical`
- [Hexodus gravity mixins](https://github.com/techtastic/hexsky/tree/master/common/src/main/java/io/github/techtastic/hexxyskies/mixin/hexodus): `common/src/main/java/io/github/techtastic/hexxyskies/mixin/hexodus`
- [MoreIotas interop](https://github.com/techtastic/hexsky/tree/master/common/src/main/kotlin/io/github/techtastic/hexxyskies/interop): `common/src/main/kotlin/io/github/techtastic/hexxyskies/interop`

### Other components

- **Caster**
- **Hex Casting**
- **Valkyrien Skies**

## Connections

- Caster → Hex Casting: casts patterns
- Common initializer → Pattern registry: registers
- Common initializer → Iota registry: registers
- Common initializer → Delayed assembly: ticks queue
- Common initializer → Gravity controller: ticks ships
- Forge entrypoint → Common initializer: initializes
- Fabric entrypoint → Common initializer: initializes
- Pattern registry → Hex Casting: registers actions
- Pattern registry → Ship lookup: registers
- Pattern registry → Ship queries: registers
- Pattern registry → Ship spells: registers
- Ship lookup → Ship iota: returns ship
- Ship spells → Valkyrien Skies: applies ship physics
- Delayed assembly → Ship assembler: assembles queued blocks
- Ship spells → Delayed assembly: queues assembly
- Hexodus operators → Gravity controller: changes or reads
- Gravity controller → Valkyrien Skies: applies gravity force
- Common initializer → Hexal integration: enables casting extension
- Common initializer → Hexical integration: checks mod presence
- Common initializer → MoreIotas interop: checks mod presence
- Hexical mixins → Valkyrien Skies: moves pedestal items
- Hexodus gravity mixins → Hexodus operators: modifies gravity operators
