# mreizy/ascension architecture

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

- Interactive diagram: https://gitdiagram.com/mreizy/ascension
- Repository: https://github.com/mreizy/ascension

## Overview

Ascension is a NeoForge Xianxia cultivation mod: players develop cultivation and related powers, use items and world facilities, and interact with the system through client controls and server-side events. Its major runtime domains include cultivation paths and techniques, skills, physique acquisition, mob cultivation, items and blocks, and player/entity state. The tree and excerpts support several internal links, but many listed subsystems were not sampled; those relationships are left unconnected rather than inferred from package names.

Main entry points: [`src/main/java/net/thejadeproject/ascension/events/PhysiqueAcquisitionHandler.java`](https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/events/PhysiqueAcquisitionHandler.java) (Physique Acquisition), [`src/main/java/net/thejadeproject/ascension/common/items/ModItems.java`](https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/common/items/ModItems.java) (Items And Artifacts), [`src/main/java/net/thejadeproject/ascension/refactor_packages/skill_casting/SkillCastHandler.java`](https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/refactor_packages/skill_casting/SkillCastHandler.java) (Skill Casting), [`src/main/java/net/thejadeproject/ascension/AscensionCraft.java`](https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/AscensionCraft.java) (Mod Bootstrap)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_cultivation["Cultivation Systems"]
  node_paths["Cultivation Paths"]
  node_techniques["Techniques"]
  node_skills["Skills<br/>[ModSkills.java]"]
  node_casting["Skill Casting"]
  node_physique["Physique Acquisition"]
  node_mobcult["Mob Cultivation"]
end

subgraph group_gameplay["Items And World"]
  node_items["Items And Artifacts<br/>[ModItems.java]"]
  node_blocks["Blocks And Facilities<br/>[ModBlocks.java]"]
  node_recipe["Pill Cauldron Recipe"]
end

subgraph group_runtime["Runtime State"]
  node_mod["Mod Bootstrap"]
  node_components["Item Components"]
  node_entitydata["Entity Cultivation Data"]
  node_attachments[("Entity Attachments")]
end

subgraph group_interaction["Player Interaction"]
  node_keys["Key Bindings"]
  node_network["Network Payloads<br/>[ModPayloads.java]"]
end

subgraph group_client["Client Presentation"]
  node_client["Client Setup"]
  node_hud["Flame HUD"]
  node_renderers["World Renderers"]
end

node_player(("Player"))

node_mod -->|"registers ticking"| node_skills
node_mod -->|"uses items"| node_items
node_physique -->|"reads counters"| node_attachments
node_physique -->|"checks blocks"| node_blocks
node_physique -->|"creates essence"| node_items
node_attachments -->|"creates data"| node_entitydata
node_casting -->|"casts skills"| node_skills
node_casting -.->|"handles casts"| node_player
node_player -.->|"uses controls"| node_keys
node_keys -->|"sends payload"| node_network
node_client -->|"registers renderers"| node_renderers
node_client -.->|"registers overlay"| node_hud
node_items -.->|"stores item data"| node_components
node_blocks -.->|"supports brewing"| node_recipe

click node_mod "https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/AscensionCraft.java"
click node_paths "https://github.com/mreizy/ascension/tree/main/src/main/java/net/thejadeproject/ascension/refactor_packages/paths"
click node_techniques "https://github.com/mreizy/ascension/tree/main/src/main/java/net/thejadeproject/ascension/refactor_packages/techniques"
click node_skills "https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/refactor_packages/skills/custom/ModSkills.java"
click node_casting "https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/refactor_packages/skill_casting/SkillCastHandler.java"
click node_physique "https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/events/PhysiqueAcquisitionHandler.java"
click node_mobcult "https://github.com/mreizy/ascension/tree/main/src/main/java/net/thejadeproject/ascension/mob_cultivation"
click node_items "https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/common/items/ModItems.java"
click node_components "https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/common/items/data_components/ModDataComponents.java"
click node_blocks "https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/common/blocks/ModBlocks.java"
click node_recipe "https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/recipe/LowHumanPillCauldronRecipe.java"
click node_entitydata "https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/refactor_packages/entity_data/EntityDataManager.java"
click node_attachments "https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/data_attachments/ModAttachments.java"
click node_keys "https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/util/KeyBindHandler.java"
click node_network "https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/network/ModPayloads.java"
click node_client "https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/AscensionCraftClient.java"
click node_hud "https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/clients/hud/FlameBarOverlay.java"
click node_renderers "https://github.com/mreizy/ascension/tree/main/src/main/java/net/thejadeproject/ascension/clients/renderer"

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_paths,node_techniques,node_skills,node_casting,node_physique,node_mobcult toneBlue
class node_items,node_blocks,node_recipe toneAmber
class node_mod,node_components,node_entitydata,node_attachments toneMint
class node_keys,node_network toneRose
class node_client,node_hud,node_renderers,node_player toneIndigo
```

## Components

### Cultivation Systems

- [Cultivation Paths](https://github.com/mreizy/ascension/tree/main/src/main/java/net/thejadeproject/ascension/refactor_packages/paths): `src/main/java/net/thejadeproject/ascension/refactor_packages/paths`
- [Techniques](https://github.com/mreizy/ascension/tree/main/src/main/java/net/thejadeproject/ascension/refactor_packages/techniques): `src/main/java/net/thejadeproject/ascension/refactor_packages/techniques`
- [Skills](https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/refactor_packages/skills/custom/ModSkills.java): `src/main/java/net/thejadeproject/ascension/refactor_packages/skills/custom/ModSkills.java`
- [Skill Casting](https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/refactor_packages/skill_casting/SkillCastHandler.java): `src/main/java/net/thejadeproject/ascension/refactor_packages/skill_casting/SkillCastHandler.java`
- [Physique Acquisition](https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/events/PhysiqueAcquisitionHandler.java): `src/main/java/net/thejadeproject/ascension/events/PhysiqueAcquisitionHandler.java`
- [Mob Cultivation](https://github.com/mreizy/ascension/tree/main/src/main/java/net/thejadeproject/ascension/mob_cultivation): `src/main/java/net/thejadeproject/ascension/mob_cultivation`

### Items And World

- [Items And Artifacts](https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/common/items/ModItems.java): `src/main/java/net/thejadeproject/ascension/common/items/ModItems.java`
- [Blocks And Facilities](https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/common/blocks/ModBlocks.java): `src/main/java/net/thejadeproject/ascension/common/blocks/ModBlocks.java`
- [Pill Cauldron Recipe](https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/recipe/LowHumanPillCauldronRecipe.java): `src/main/java/net/thejadeproject/ascension/recipe/LowHumanPillCauldronRecipe.java`

### Runtime State

- [Mod Bootstrap](https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/AscensionCraft.java): `src/main/java/net/thejadeproject/ascension/AscensionCraft.java`
- [Item Components](https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/common/items/data_components/ModDataComponents.java): `src/main/java/net/thejadeproject/ascension/common/items/data_components/ModDataComponents.java`
- [Entity Cultivation Data](https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/refactor_packages/entity_data/EntityDataManager.java): `src/main/java/net/thejadeproject/ascension/refactor_packages/entity_data/EntityDataManager.java`
- [Entity Attachments](https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/data_attachments/ModAttachments.java): `src/main/java/net/thejadeproject/ascension/data_attachments/ModAttachments.java`

### Player Interaction

- [Key Bindings](https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/util/KeyBindHandler.java): `src/main/java/net/thejadeproject/ascension/util/KeyBindHandler.java`
- [Network Payloads](https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/network/ModPayloads.java): `src/main/java/net/thejadeproject/ascension/network/ModPayloads.java`

### Client Presentation

- [Client Setup](https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/AscensionCraftClient.java): `src/main/java/net/thejadeproject/ascension/AscensionCraftClient.java`
- [Flame HUD](https://github.com/mreizy/ascension/blob/main/src/main/java/net/thejadeproject/ascension/clients/hud/FlameBarOverlay.java): `src/main/java/net/thejadeproject/ascension/clients/hud/FlameBarOverlay.java`
- [World Renderers](https://github.com/mreizy/ascension/tree/main/src/main/java/net/thejadeproject/ascension/clients/renderer): `src/main/java/net/thejadeproject/ascension/clients/renderer`

### Other components

- **Player**

## Connections

- Mod Bootstrap → Skills: registers ticking (evidence: `src/main/java/net/thejadeproject/ascension/AscensionCraft.java`)
- Mod Bootstrap → Items And Artifacts: uses items (evidence: `src/main/java/net/thejadeproject/ascension/AscensionCraft.java`)
- Physique Acquisition → Entity Attachments: reads counters (evidence: `src/main/java/net/thejadeproject/ascension/events/PhysiqueAcquisitionHandler.java`)
- Physique Acquisition → Blocks And Facilities: checks blocks (evidence: `src/main/java/net/thejadeproject/ascension/events/PhysiqueAcquisitionHandler.java`)
- Physique Acquisition → Items And Artifacts: creates essence (evidence: `src/main/java/net/thejadeproject/ascension/events/PhysiqueAcquisitionHandler.java`)
- Entity Attachments → Entity Cultivation Data: creates data (evidence: `src/main/java/net/thejadeproject/ascension/data_attachments/ModAttachments.java`)
- Skill Casting → Skills: casts skills (evidence: `src/main/java/net/thejadeproject/ascension/refactor_packages/skill_casting/SkillCastHandler.java`)
- Skill Casting → Player: handles casts
- Player → Key Bindings: uses controls
- Key Bindings → Network Payloads: sends payload (evidence: `src/main/java/net/thejadeproject/ascension/util/KeyBindHandler.java`)
- Client Setup → World Renderers: registers renderers (evidence: `src/main/java/net/thejadeproject/ascension/AscensionCraftClient.java`)
- Client Setup → Flame HUD: registers overlay (evidence: `src/main/java/net/thejadeproject/ascension/AscensionCraftClient.java`)
- Items And Artifacts → Item Components: stores item data (evidence: `src/main/java/net/thejadeproject/ascension/common/items/ModItems.java`)
- Blocks And Facilities → Pill Cauldron Recipe: supports brewing
