# mqzon/mapletree architecture

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

- Interactive diagram: https://gitdiagram.com/mqzon/mapletree
- Repository: https://github.com/mqzon/mapletree

## Overview

Mapletree is a Minecraft mod adding maple and red maple trees and related wood, leaf, syrup, and food content. Players obtain saplings through trader offers or the creative tab, grow trees, use the wood and leaves, and turn sap from maple logs into cauldron-made syrup and foods. The graph separates registration, tree generation, wood and transport content, and syrup/leaf gameplay. Source excerpts show registration and cauldron behavior; several other feature links are documented only in the README.

Main entry points: [`src/main/java/net/mqzon/mapletree/Mapletree.java`](https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/Mapletree.java) (Mod bootstrap), [`src/main/java/net/mqzon/mapletree/item/custom/ModBoatItem.java`](https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/item/custom/ModBoatItem.java) (Boat items), [`src/main/java/net/mqzon/mapletree/worldgen/foliage/ModFoliagePlacers.java`](https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/worldgen/foliage/ModFoliagePlacers.java) (Foliage registrations), [`src/main/java/net/mqzon/mapletree/utility/SapCauldronInteraction.java`](https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/utility/SapCauldronInteraction.java) (Sap cauldron use)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_core["Mod registration"]
  node_mod["Mod bootstrap<br/>[Mapletree.java]"]
  node_blocks["Block registry<br/>[ModBlocks.java]"]
  node_items["Item registry<br/>[ModItems.java]"]
end

subgraph group_trees["Trees and foliage"]
  node_worldgen["Tree features"]
  node_placed["Placed features"]
  node_growers["Sapling growers"]
  node_foliage["Maple foliage placer"]
  node_foliage_types["Foliage registrations"]
  node_leafpiles["Layered leaf piles<br/>[LeafPileBlock.java]"]
end

subgraph group_wood["Maple wood"]
  node_woodset["Wood blocks and signs<br/>[ModBlocks.java]"]
  node_sign_entities["Sign block entities"]
  node_boats["Maple boats<br/>[ModBoatEntity.java]"]
  node_chestboats["Chest boats"]
  node_boat_items["Boat items<br/>[ModBoatItem.java]"]
end

subgraph group_syrup["Sap and syrup"]
  node_sap_interaction["Sap cauldron use"]
  node_syrup_interaction["Syrup cauldron use"]
  node_cauldron["Layered cauldron"]
  node_foods["Syrup foods<br/>[ModFoods.java]"]
end

subgraph group_gameplay["Player features"]
  node_creative["Creative tab"]
  node_events["Gameplay events<br/>[ModEvents.java]"]
  node_config["Common config"]
end

node_player(("Minecraft player"))
node_trader(("Wandering trader"))

node_mod -->|"registers"| node_blocks
node_mod -->|"registers"| node_items
node_mod -->|"registers"| node_creative
node_mod -->|"registers"| node_foliage_types
node_mod -->|"registers"| node_sign_entities
node_mod -->|"bootstraps"| node_sap_interaction
node_mod -->|"bootstraps"| node_syrup_interaction
node_mod -->|"registers"| node_config
node_blocks -->|"creates saplings"| node_growers
node_placed -->|"uses features"| node_worldgen
node_worldgen -.->|"uses placer"| node_foliage_types
node_foliage_types -->|"registers codec"| node_foliage
node_player -->|"browses"| node_creative
node_trader -->|"offers saplings"| node_player
node_player -->|"crafts and places"| node_leafpiles
node_player -->|"uses sap bucket"| node_sap_interaction
node_sap_interaction -->|"updates fill"| node_cauldron
node_player -->|"collects syrup"| node_syrup_interaction
node_syrup_interaction -->|"changes fill"| node_cauldron
node_player -->|"consumes"| node_foods
node_items -->|"registers boats"| node_boat_items
node_boat_items -->|"creates boat"| node_boats
node_boat_items -->|"creates chest boat"| node_chestboats

click node_mod "https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/Mapletree.java"
click node_blocks "https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/block/ModBlocks.java"
click node_items "https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/item/ModItems.java"
click node_creative "https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/item/ModCreativeModeTabs.java"
click node_worldgen "https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/worldgen/ModConfiguredFeatures.java"
click node_placed "https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/worldgen/ModPlacedFeatures.java"
click node_growers "https://github.com/mqzon/mapletree/tree/master/src/main/java/net/mqzon/mapletree/worldgen/tree"
click node_foliage "https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/worldgen/foliage/custom/MapleFoliagePlacer.java"
click node_foliage_types "https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/worldgen/foliage/ModFoliagePlacers.java"
click node_leafpiles "https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/block/custom/LeafPileBlock.java"
click node_woodset "https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/block/ModBlocks.java"
click node_sign_entities "https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/block/entity/ModBlockEntities.java"
click node_boats "https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/entity/custom/ModBoatEntity.java"
click node_chestboats "https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/entity/custom/ModChestBoatEntity.java"
click node_boat_items "https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/item/custom/ModBoatItem.java"
click node_sap_interaction "https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/utility/SapCauldronInteraction.java"
click node_syrup_interaction "https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/utility/SyrupCauldronInteraction.java"
click node_cauldron "https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/block/custom/FillableLayeredCauldronBlock.java"
click node_foods "https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/item/ModFoods.java"
click node_events "https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/event/ModEvents.java"
click node_config "https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/config/MapletreeCommonConfigs.java"

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_mod,node_blocks,node_items toneBlue
class node_worldgen,node_placed,node_growers,node_foliage,node_foliage_types,node_leafpiles toneAmber
class node_woodset,node_sign_entities,node_boats,node_chestboats,node_boat_items toneMint
class node_sap_interaction,node_syrup_interaction,node_cauldron,node_foods toneRose
class node_creative,node_events,node_config,node_player,node_trader toneIndigo
```

## Components

### Mod registration

- [Mod bootstrap](https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/Mapletree.java): `src/main/java/net/mqzon/mapletree/Mapletree.java`
- [Block registry](https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/block/ModBlocks.java): `src/main/java/net/mqzon/mapletree/block/ModBlocks.java`
- [Item registry](https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/item/ModItems.java): `src/main/java/net/mqzon/mapletree/item/ModItems.java`

### Trees and foliage

- [Tree features](https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/worldgen/ModConfiguredFeatures.java): `src/main/java/net/mqzon/mapletree/worldgen/ModConfiguredFeatures.java`
- [Placed features](https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/worldgen/ModPlacedFeatures.java): `src/main/java/net/mqzon/mapletree/worldgen/ModPlacedFeatures.java`
- [Sapling growers](https://github.com/mqzon/mapletree/tree/master/src/main/java/net/mqzon/mapletree/worldgen/tree): `src/main/java/net/mqzon/mapletree/worldgen/tree`
- [Maple foliage placer](https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/worldgen/foliage/custom/MapleFoliagePlacer.java): `src/main/java/net/mqzon/mapletree/worldgen/foliage/custom/MapleFoliagePlacer.java`
- [Foliage registrations](https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/worldgen/foliage/ModFoliagePlacers.java): `src/main/java/net/mqzon/mapletree/worldgen/foliage/ModFoliagePlacers.java`
- [Layered leaf piles](https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/block/custom/LeafPileBlock.java): `src/main/java/net/mqzon/mapletree/block/custom/LeafPileBlock.java`

### Maple wood

- [Wood blocks and signs](https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/block/ModBlocks.java): `src/main/java/net/mqzon/mapletree/block/ModBlocks.java`
- [Sign block entities](https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/block/entity/ModBlockEntities.java): `src/main/java/net/mqzon/mapletree/block/entity/ModBlockEntities.java`
- [Maple boats](https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/entity/custom/ModBoatEntity.java): `src/main/java/net/mqzon/mapletree/entity/custom/ModBoatEntity.java`
- [Chest boats](https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/entity/custom/ModChestBoatEntity.java): `src/main/java/net/mqzon/mapletree/entity/custom/ModChestBoatEntity.java`
- [Boat items](https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/item/custom/ModBoatItem.java): `src/main/java/net/mqzon/mapletree/item/custom/ModBoatItem.java`

### Sap and syrup

- [Sap cauldron use](https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/utility/SapCauldronInteraction.java): `src/main/java/net/mqzon/mapletree/utility/SapCauldronInteraction.java`
- [Syrup cauldron use](https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/utility/SyrupCauldronInteraction.java): `src/main/java/net/mqzon/mapletree/utility/SyrupCauldronInteraction.java`
- [Layered cauldron](https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/block/custom/FillableLayeredCauldronBlock.java): `src/main/java/net/mqzon/mapletree/block/custom/FillableLayeredCauldronBlock.java`
- [Syrup foods](https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/item/ModFoods.java): `src/main/java/net/mqzon/mapletree/item/ModFoods.java`

### Player features

- [Creative tab](https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/item/ModCreativeModeTabs.java): `src/main/java/net/mqzon/mapletree/item/ModCreativeModeTabs.java`
- [Gameplay events](https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/event/ModEvents.java): `src/main/java/net/mqzon/mapletree/event/ModEvents.java`
- [Common config](https://github.com/mqzon/mapletree/blob/master/src/main/java/net/mqzon/mapletree/config/MapletreeCommonConfigs.java): `src/main/java/net/mqzon/mapletree/config/MapletreeCommonConfigs.java`

### Other components

- **Minecraft player**
- **Wandering trader**

## Connections

- Mod bootstrap → Block registry: registers (evidence: `src/main/java/net/mqzon/mapletree/Mapletree.java`)
- Mod bootstrap → Item registry: registers (evidence: `src/main/java/net/mqzon/mapletree/Mapletree.java`)
- Mod bootstrap → Creative tab: registers (evidence: `src/main/java/net/mqzon/mapletree/Mapletree.java`)
- Mod bootstrap → Foliage registrations: registers (evidence: `src/main/java/net/mqzon/mapletree/Mapletree.java`)
- Mod bootstrap → Sign block entities: registers (evidence: `src/main/java/net/mqzon/mapletree/Mapletree.java`)
- Mod bootstrap → Sap cauldron use: bootstraps (evidence: `src/main/java/net/mqzon/mapletree/Mapletree.java`)
- Mod bootstrap → Syrup cauldron use: bootstraps (evidence: `src/main/java/net/mqzon/mapletree/Mapletree.java`)
- Mod bootstrap → Common config: registers (evidence: `src/main/java/net/mqzon/mapletree/Mapletree.java`)
- Block registry → Sapling growers: creates saplings (evidence: `src/main/java/net/mqzon/mapletree/block/ModBlocks.java`)
- Placed features → Tree features: uses features (evidence: `src/main/java/net/mqzon/mapletree/worldgen/ModPlacedFeatures.java`)
- Tree features → Foliage registrations: uses placer
- Foliage registrations → Maple foliage placer: registers codec (evidence: `src/main/java/net/mqzon/mapletree/worldgen/foliage/ModFoliagePlacers.java`)
- Minecraft player → Creative tab: browses (evidence: `src/main/java/net/mqzon/mapletree/item/ModCreativeModeTabs.java`)
- Wandering trader → Minecraft player: offers saplings
- Minecraft player → Layered leaf piles: crafts and places
- Minecraft player → Sap cauldron use: uses sap bucket
- Sap cauldron use → Layered cauldron: updates fill (evidence: `src/main/java/net/mqzon/mapletree/utility/SapCauldronInteraction.java`)
- Minecraft player → Syrup cauldron use: collects syrup
- Syrup cauldron use → Layered cauldron: changes fill (evidence: `src/main/java/net/mqzon/mapletree/utility/SyrupCauldronInteraction.java`)
- Minecraft player → Syrup foods: consumes
- Item registry → Boat items: registers boats (evidence: `src/main/java/net/mqzon/mapletree/item/ModItems.java`)
- Boat items → Maple boats: creates boat (evidence: `src/main/java/net/mqzon/mapletree/item/custom/ModBoatItem.java`)
- Boat items → Chest boats: creates chest boat (evidence: `src/main/java/net/mqzon/mapletree/item/custom/ModBoatItem.java`)
