# hyakkuniku/civil-craft architecture

> Architecture diagram of the GitHub repository hyakkuniku/civil-craft, 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/hyakkuniku/civil-craft
- Repository: https://github.com/hyakkuniku/civil-craft

## Overview

Civil Craft is a 3D mobile bridge-construction game intended to teach basic structural mechanics. The principal experience is learning bridge concepts, taking contracts, building with materials, and evaluating a bridge in simulation; the asset tree also indicates NPC dialogue, rewards, cosmetics, and an in-game reference Almanac. The README and tree establish these product capabilities, but sampled runtime source does not show how gameplay systems are wired, so the graph represents documented domain flow rather than asserted method calls.

Main entry points: [`Assets/BridgeBuilder/Data/Contract`](https://github.com/hyakkuniku/civil-craft/tree/main/Assets/BridgeBuilder/Data/Contract) (Contracts), [`Assets/BridgeBuilder/Prefabs`](https://github.com/hyakkuniku/civil-craft/tree/main/Assets/BridgeBuilder/Prefabs) (Bridge building), [`Assets/BridgeBuilder/Data/BuildCanvas.prefab`](https://github.com/hyakkuniku/civil-craft/blob/main/Assets/BridgeBuilder/Data/BuildCanvas.prefab) (Build interface), [`Assets/BridgeBuilder/Data`](https://github.com/hyakkuniku/civil-craft/tree/main/Assets/BridgeBuilder/Data) (Bridge simulation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_learning["Learning and contracts"]
  node_lessons["Mechanics lessons"]
  node_sim_lessons["Simulation lessons"]
  node_contracts["Contracts"]
  node_dialogue["NPC dialogue"]
  node_almanac["Almanac"]
end

subgraph group_construction["Bridge construction"]
  node_bridge_build["Bridge building"]
  node_materials["Build materials"]
  node_build_ui["Build interface<br/>[BuildCanvas.prefab]"]
  node_simulation["Bridge simulation"]
end

subgraph group_progression["Player progression"]
  node_achievements["Achievements"]
  node_shop["Cosmetic shop"]
  node_cosmetics["Player cosmetics"]
end

subgraph group_presentation["Game presentation"]
  node_animation["Character animation"]
  node_world_animation["World animation"]
end

node_player(("Player"))

node_player -->|"learns"| node_lessons
node_player -->|"takes"| node_contracts
node_contracts -->|"presents"| node_dialogue
node_player -->|"opens"| node_build_ui
node_build_ui -->|"edits"| node_bridge_build
node_bridge_build -->|"uses"| node_materials
node_player -->|"tests bridge"| node_simulation
node_simulation -->|"teaches through"| node_sim_lessons
node_player -->|"consults"| node_almanac
node_player -->|"browses"| node_shop
node_shop -->|"offers"| node_cosmetics
node_player -->|"earns"| node_achievements
node_player -->|"controls"| node_animation
node_player -->|"interacts"| node_world_animation

click node_lessons "https://github.com/hyakkuniku/civil-craft/tree/main/Assets/BridgeBuilder/Data/Lessons"
click node_sim_lessons "https://github.com/hyakkuniku/civil-craft/tree/main/Assets/BridgeBuilder/Data/Simulation%20Lessons"
click node_contracts "https://github.com/hyakkuniku/civil-craft/tree/main/Assets/BridgeBuilder/Data/Contract"
click node_dialogue "https://github.com/hyakkuniku/civil-craft/tree/main/Assets/Animations/Dialogue"
click node_bridge_build "https://github.com/hyakkuniku/civil-craft/tree/main/Assets/BridgeBuilder/Prefabs"
click node_materials "https://github.com/hyakkuniku/civil-craft/tree/main/Assets/BridgeBuilder/Data/Resources"
click node_build_ui "https://github.com/hyakkuniku/civil-craft/blob/main/Assets/BridgeBuilder/Data/BuildCanvas.prefab"
click node_simulation "https://github.com/hyakkuniku/civil-craft/tree/main/Assets/BridgeBuilder/Data"
click node_achievements "https://github.com/hyakkuniku/civil-craft/tree/main/Assets/BridgeBuilder/Data/Achievements"
click node_shop "https://github.com/hyakkuniku/civil-craft/tree/main/Assets/BridgeBuilder/Data/SHOP"
click node_cosmetics "https://github.com/hyakkuniku/civil-craft/tree/main/Assets/BridgeBuilder/Data/Cosmetics"
click node_almanac "https://github.com/hyakkuniku/civil-craft/tree/main/Assets/BridgeBuilder/Prefabs/Almanac"
click node_animation "https://github.com/hyakkuniku/civil-craft/tree/main/Assets/Animations/Player"
click node_world_animation "https://github.com/hyakkuniku/civil-craft/tree/main/Assets/Animations/Door"

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_lessons,node_sim_lessons,node_contracts,node_dialogue,node_almanac toneBlue
class node_bridge_build,node_materials,node_build_ui,node_simulation toneAmber
class node_achievements,node_shop,node_cosmetics toneMint
class node_animation,node_world_animation toneRose
class node_player toneIndigo
```

## Components

### Learning and contracts

- [Mechanics lessons](https://github.com/hyakkuniku/civil-craft/tree/main/Assets/BridgeBuilder/Data/Lessons): `Assets/BridgeBuilder/Data/Lessons`
- [Simulation lessons](https://github.com/hyakkuniku/civil-craft/tree/main/Assets/BridgeBuilder/Data/Simulation%20Lessons): `Assets/BridgeBuilder/Data/Simulation Lessons`
- [Contracts](https://github.com/hyakkuniku/civil-craft/tree/main/Assets/BridgeBuilder/Data/Contract): `Assets/BridgeBuilder/Data/Contract`
- [NPC dialogue](https://github.com/hyakkuniku/civil-craft/tree/main/Assets/Animations/Dialogue): `Assets/Animations/Dialogue`
- [Almanac](https://github.com/hyakkuniku/civil-craft/tree/main/Assets/BridgeBuilder/Prefabs/Almanac): `Assets/BridgeBuilder/Prefabs/Almanac`

### Bridge construction

- [Bridge building](https://github.com/hyakkuniku/civil-craft/tree/main/Assets/BridgeBuilder/Prefabs): `Assets/BridgeBuilder/Prefabs`
- [Build materials](https://github.com/hyakkuniku/civil-craft/tree/main/Assets/BridgeBuilder/Data/Resources): `Assets/BridgeBuilder/Data/Resources`
- [Build interface](https://github.com/hyakkuniku/civil-craft/blob/main/Assets/BridgeBuilder/Data/BuildCanvas.prefab): `Assets/BridgeBuilder/Data/BuildCanvas.prefab`
- [Bridge simulation](https://github.com/hyakkuniku/civil-craft/tree/main/Assets/BridgeBuilder/Data): `Assets/BridgeBuilder/Data`

### Player progression

- [Achievements](https://github.com/hyakkuniku/civil-craft/tree/main/Assets/BridgeBuilder/Data/Achievements): `Assets/BridgeBuilder/Data/Achievements`
- [Cosmetic shop](https://github.com/hyakkuniku/civil-craft/tree/main/Assets/BridgeBuilder/Data/SHOP): `Assets/BridgeBuilder/Data/SHOP`
- [Player cosmetics](https://github.com/hyakkuniku/civil-craft/tree/main/Assets/BridgeBuilder/Data/Cosmetics): `Assets/BridgeBuilder/Data/Cosmetics`

### Game presentation

- [Character animation](https://github.com/hyakkuniku/civil-craft/tree/main/Assets/Animations/Player): `Assets/Animations/Player`
- [World animation](https://github.com/hyakkuniku/civil-craft/tree/main/Assets/Animations/Door): `Assets/Animations/Door`

### Other components

- **Player**

## Connections

- Player → Mechanics lessons: learns
- Player → Contracts: takes
- Contracts → NPC dialogue: presents
- Player → Build interface: opens
- Build interface → Bridge building: edits
- Bridge building → Build materials: uses
- Player → Bridge simulation: tests bridge
- Bridge simulation → Simulation lessons: teaches through
- Player → Almanac: consults
- Player → Cosmetic shop: browses
- Cosmetic shop → Player cosmetics: offers
- Player → Achievements: earns
- Player → Character animation: controls
- Player → World animation: interacts
