# fallinglight-studio/colored-alphabet-blocks architecture

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

- Interactive diagram: https://gitdiagram.com/fallinglight-studio/colored-alphabet-blocks
- Repository: https://github.com/fallinglight-studio/colored-alphabet-blocks

## Overview

Colored Alphabet Blocks is a Minecraft mod that registers 26 letter blocks and an empty block, supports independent panel and glyph dyeing, and provides custom cutout rendering and a creative tab across Fabric, Forge, and NeoForge. The main workflow is choosing and placing a block, then dyeing its panel or—while sneaking—its glyph; client tint handlers render the colors. Loader-specific code also preserves old registry names during world migration. The README documents these capabilities; sampled source confirms registration, glyph-dye handling, tinting, and loader-specific migration mechanisms.

Main entry points: [`common/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/AlphabetDefinitions.java`](https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/common/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/AlphabetDefinitions.java) (Block definitions), [`fabric/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/LetterBlock.java`](https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/fabric/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/LetterBlock.java) (Fabric letter blocks), [`forge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/LetterBlock.java`](https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/forge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/LetterBlock.java) (Forge letter blocks), [`neoforge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/neoforge/LetterBlock.java`](https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/neoforge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/neoforge/LetterBlock.java) (NeoForge letter blocks)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_content["Block content"]
  node_fabric_init["Fabric registration"]
  node_forge_init["Forge registration<br/>[AlphabetBlock.java]"]
  node_neo_init["NeoForge registration"]
  node_definitions["Block definitions"]
  node_loot["Block loot tables"]
end

subgraph group_interactions["Player interactions"]
  node_fabric_block["Fabric letter blocks<br/>[LetterBlock.java]"]
  node_forge_block["Forge letter blocks<br/>[LetterBlock.java]"]
  node_neo_block["NeoForge letter blocks<br/>[LetterBlock.java]"]
  node_fabric_glyph["Fabric glyph dye"]
  node_forge_glyph["Forge glyph dye"]
  node_neo_glyph["NeoForge glyph dye"]
end

subgraph group_clients["Client presentation"]
  node_fabric_client["Fabric client tints"]
  node_forge_client["Forge client tints"]
  node_neo_client["NeoForge client tints"]
  node_assets["Models and language"]
end

subgraph group_migration["World migration"]
  node_fabric_migration["Fabric ID migration"]
  node_forge_migration["Forge ID migration"]
  node_neo_migration["NeoForge ID aliases"]
end

node_player(("Player"))
node_minecraft(("Minecraft runtime"))

node_fabric_init -->|"reads entries"| node_definitions
node_forge_init -->|"reads entries"| node_definitions
node_neo_init -->|"reads entries"| node_definitions
node_fabric_init -->|"registers blocks"| node_fabric_block
node_forge_init -->|"registers blocks"| node_forge_block
node_neo_init -->|"registers blocks"| node_neo_block
node_player -->|"places or dyes"| node_fabric_block
node_player -->|"places or dyes"| node_forge_block
node_player -->|"places or dyes"| node_neo_block
node_player -->|"sneak-dyes glyph"| node_fabric_glyph
node_player -->|"sneak-dyes glyph"| node_forge_glyph
node_player -->|"sneak-dyes glyph"| node_neo_glyph
node_fabric_client -->|"registers tint"| node_fabric_block
node_forge_client -->|"registers tint"| node_forge_block
node_neo_client -->|"registers tint"| node_neo_block
node_minecraft -->|"loads client setup"| node_fabric_client
node_minecraft -->|"loads client setup"| node_forge_client
node_minecraft -->|"loads client setup"| node_neo_client
node_minecraft -->|"loads resources"| node_assets
node_minecraft -->|"reads drops"| node_loot
node_fabric_migration -->|"redirects lookups"| node_minecraft
node_forge_migration -->|"remaps entries"| node_minecraft
node_neo_migration -->|"registers aliases"| node_minecraft

click node_fabric_init "https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/fabric/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/AlphabetBlockFabric.java"
click node_forge_init "https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/forge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/AlphabetBlock.java"
click node_neo_init "https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/neoforge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/neoforge/AlphabetBlockNeoForge.java"
click node_definitions "https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/common/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/AlphabetDefinitions.java"
click node_fabric_block "https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/fabric/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/LetterBlock.java"
click node_forge_block "https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/forge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/LetterBlock.java"
click node_neo_block "https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/neoforge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/neoforge/LetterBlock.java"
click node_fabric_glyph "https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/fabric/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/AlphabetBlockFabric.java"
click node_forge_glyph "https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/forge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/AlphabetGlyphDyeHandler.java"
click node_neo_glyph "https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/neoforge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/neoforge/AlphabetGlyphDyeHandler.java"
click node_fabric_client "https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/fabric/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/AlphabetFabricClient.java"
click node_forge_client "https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/forge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/AlphabetForgeClient.java"
click node_neo_client "https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/neoforge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/neoforge/AlphabetNeoForgeClient.java"
click node_assets "https://github.com/fallinglight-studio/colored-alphabet-blocks/tree/main/common/src/main/resources/assets/colored_alphabet_blocks"
click node_loot "https://github.com/fallinglight-studio/colored-alphabet-blocks/tree/main/common/src/main/resources/data/colored_alphabet_blocks/loot_table/blocks"
click node_fabric_migration "https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/fabric/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/mixin/MappedRegistryMixin.java"
click node_forge_migration "https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/forge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/AlphabetLegacyRemapHandler.java"
click node_neo_migration "https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/neoforge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/neoforge/AlphabetLegacyAliasHandler.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_fabric_init,node_forge_init,node_neo_init,node_definitions,node_loot toneBlue
class node_fabric_block,node_forge_block,node_neo_block,node_fabric_glyph,node_forge_glyph,node_neo_glyph toneAmber
class node_fabric_client,node_forge_client,node_neo_client,node_assets toneMint
class node_fabric_migration,node_forge_migration,node_neo_migration toneRose
class node_player,node_minecraft toneIndigo
```

## Components

### Block content

- [Fabric registration](https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/fabric/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/AlphabetBlockFabric.java): `fabric/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/AlphabetBlockFabric.java`
- [Forge registration](https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/forge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/AlphabetBlock.java): `forge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/AlphabetBlock.java`
- [NeoForge registration](https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/neoforge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/neoforge/AlphabetBlockNeoForge.java): `neoforge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/neoforge/AlphabetBlockNeoForge.java`
- [Block definitions](https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/common/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/AlphabetDefinitions.java): `common/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/AlphabetDefinitions.java`
- [Block loot tables](https://github.com/fallinglight-studio/colored-alphabet-blocks/tree/main/common/src/main/resources/data/colored_alphabet_blocks/loot_table/blocks): `common/src/main/resources/data/colored_alphabet_blocks/loot_table/blocks`

### Player interactions

- [Fabric letter blocks](https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/fabric/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/LetterBlock.java): `fabric/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/LetterBlock.java`
- [Forge letter blocks](https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/forge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/LetterBlock.java): `forge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/LetterBlock.java`
- [NeoForge letter blocks](https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/neoforge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/neoforge/LetterBlock.java): `neoforge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/neoforge/LetterBlock.java`
- [Fabric glyph dye](https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/fabric/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/AlphabetBlockFabric.java): `fabric/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/AlphabetBlockFabric.java`
- [Forge glyph dye](https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/forge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/AlphabetGlyphDyeHandler.java): `forge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/AlphabetGlyphDyeHandler.java`
- [NeoForge glyph dye](https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/neoforge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/neoforge/AlphabetGlyphDyeHandler.java): `neoforge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/neoforge/AlphabetGlyphDyeHandler.java`

### Client presentation

- [Fabric client tints](https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/fabric/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/AlphabetFabricClient.java): `fabric/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/AlphabetFabricClient.java`
- [Forge client tints](https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/forge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/AlphabetForgeClient.java): `forge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/AlphabetForgeClient.java`
- [NeoForge client tints](https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/neoforge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/neoforge/AlphabetNeoForgeClient.java): `neoforge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/neoforge/AlphabetNeoForgeClient.java`
- [Models and language](https://github.com/fallinglight-studio/colored-alphabet-blocks/tree/main/common/src/main/resources/assets/colored_alphabet_blocks): `common/src/main/resources/assets/colored_alphabet_blocks`

### World migration

- [Fabric ID migration](https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/fabric/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/mixin/MappedRegistryMixin.java): `fabric/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/mixin/MappedRegistryMixin.java`
- [Forge ID migration](https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/forge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/AlphabetLegacyRemapHandler.java): `forge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/AlphabetLegacyRemapHandler.java`
- [NeoForge ID aliases](https://github.com/fallinglight-studio/colored-alphabet-blocks/blob/main/neoforge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/neoforge/AlphabetLegacyAliasHandler.java): `neoforge/src/main/java/com/aitshiroku/ColoredAlphabetBlocks/neoforge/AlphabetLegacyAliasHandler.java`

### Other components

- **Player**
- **Minecraft runtime**

## Connections

- Fabric registration → Block definitions: reads entries
- Forge registration → Block definitions: reads entries
- NeoForge registration → Block definitions: reads entries
- Fabric registration → Fabric letter blocks: registers blocks
- Forge registration → Forge letter blocks: registers blocks
- NeoForge registration → NeoForge letter blocks: registers blocks
- Player → Fabric letter blocks: places or dyes
- Player → Forge letter blocks: places or dyes
- Player → NeoForge letter blocks: places or dyes
- Player → Fabric glyph dye: sneak-dyes glyph
- Player → Forge glyph dye: sneak-dyes glyph
- Player → NeoForge glyph dye: sneak-dyes glyph
- Fabric client tints → Fabric letter blocks: registers tint
- Forge client tints → Forge letter blocks: registers tint
- NeoForge client tints → NeoForge letter blocks: registers tint
- Minecraft runtime → Fabric client tints: loads client setup
- Minecraft runtime → Forge client tints: loads client setup
- Minecraft runtime → NeoForge client tints: loads client setup
- Minecraft runtime → Models and language: loads resources
- Minecraft runtime → Block loot tables: reads drops
- Fabric ID migration → Minecraft runtime: redirects lookups
- Forge ID migration → Minecraft runtime: remaps entries
- NeoForge ID aliases → Minecraft runtime: registers aliases
