# frostbite-time/ae2omnicells architecture

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

- Interactive diagram: https://gitdiagram.com/frostbite-time/ae2omnicells
- Repository: https://github.com/frostbite-time/ae2omnicells

## Overview

AE2 Omni Cells is a Minecraft/Applied Energistics 2 addon for mixed-resource storage cells and crafting-storage blocks. The main storage path is a player’s cell item being recognized by an AE2 cell handler, which obtains persistent cell data and exposes an inventory; the README describes the stored payload as world-save files separate from the item. Other documented capabilities include portable tiers, type-based filtering, spent-nuclear-waste storage, and client models. The tree and excerpts confirm some registration, handler, rendering, and crafting integration points, but do not expose all runtime wiring.

Main entry points: [`src/main/java/com/wintercogs/ae2omnicells/common/me/AEUniversalCellHandler.java`](https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/me/AEUniversalCellHandler.java) (Cell Handler), [`src/main/java/com/wintercogs/ae2omnicells/common/items/AEUniversalCellItem.java`](https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/items/AEUniversalCellItem.java) (Cell Items), [`src/main/java/com/wintercogs/ae2omnicells/common/init/OCBlocks.java`](https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/init/OCBlocks.java) (Crafting Blocks), [`src/main/java/com/wintercogs/ae2omnicells/common/init/OCItems.java`](https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/init/OCItems.java) (Item Registry)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_storage["Cell Storage"]
  node_cellitems["Cell Items"]
  node_portable["Portable Cells"]
  node_cellhandler["Cell Handler"]
  node_celldata[("Cell Data")]
  node_cellinventory["Cell Inventory"]
  node_bigcell["Big Integer Cells"]
  node_bigdata[("Big Integer Data")]
  node_biginventory["Big Integer Inventory"]
end

subgraph group_crafting["Crafting Network"]
  node_craftblocks["Crafting Blocks<br/>[OCBlocks.java]"]
  node_craftentity["Crafting Block Entity"]
  node_craftmixin["Crafting Service Hook"]
  node_craftfamily["Crafting Families"]
end

subgraph group_content["Items And Config"]
  node_itemregistry["Item Registry<br/>[OCItems.java]"]
  node_filtercard["Type Fuzzy Card<br/>[OCItems.java]"]
  node_spent["Spent Waste Cell"]
  node_config["Mod Configuration<br/>[Config.java]"]
end

subgraph group_client["Client Presentation"]
  node_clientplugin["Client Plugin"]
  node_storage_models["Cell Models"]
  node_craftmodels["Crafting Models"]
end

node_player(("Player"))
node_ae2{{"AE2 Runtime"}}
node_worldsave[("World Save Data")]
node_nuclearintegration{{"Applied Mekanistics"}}

node_player -->|"uses"| node_cellitems
node_player -->|"uses"| node_portable
node_cellitems -->|"handled by"| node_cellhandler
node_portable -->|"cell interface"| node_cellhandler
node_cellhandler -->|"obtains data"| node_celldata
node_cellhandler -->|"constructs"| node_cellinventory
node_celldata -->|"persists payload"| node_worldsave
node_ae2 -->|"requests inventory"| node_cellhandler
node_bigcell -->|"uses data"| node_bigdata
node_bigcell -->|"provides inventory"| node_biginventory
node_itemregistry -->|"registers"| node_cellitems
node_itemregistry -->|"registers"| node_portable
node_player -->|"configures filtering"| node_filtercard
node_spent -.->|"specialized cell"| node_cellitems
node_config -.->|"controls options"| node_spent
node_player -->|"builds"| node_craftblocks
node_craftblocks -->|"creates"| node_craftentity
node_craftmixin -->|"discovers clusters"| node_craftentity
node_craftmixin -->|"registers links"| node_ae2
node_craftblocks -->|"uses types"| node_craftfamily
node_clientplugin -->|"registers"| node_storage_models
node_clientplugin -->|"registers"| node_craftmodels
node_storage_models -->|"maps cell models"| node_itemregistry
node_craftmodels -->|"renders types"| node_craftfamily
node_nuclearintegration -.->|"enables contents"| node_spent

click node_cellitems "https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/items/AEUniversalCellItem.java"
click node_portable "https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/items/AEPortableUniversalCellItem.java"
click node_cellhandler "https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/me/AEUniversalCellHandler.java"
click node_celldata "https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/me/AEUniversalCellData.java"
click node_cellinventory "https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/me/AEUniversalCellInventory.java"
click node_bigcell "https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/me/biginteger/AEBigIntegerCellHandler.java"
click node_bigdata "https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/me/biginteger/AEBigIntegerCellData.java"
click node_biginventory "https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/me/biginteger/AEBigIntegerCellInventory.java"
click node_itemregistry "https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/init/OCItems.java"
click node_filtercard "https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/init/OCItems.java"
click node_spent "https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/config/MekRadialChemicalCheck.java"
click node_config "https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/Config.java"
click node_craftblocks "https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/init/OCBlocks.java"
click node_craftentity "https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/blocks/entities/OmniCraftingBlockEntity.java"
click node_craftmixin "https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/mixins/CraftingServiceMixin.java"
click node_craftfamily "https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/me/crafting/OmniCraftingFamily.java"
click node_clientplugin "https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/client/me/AE2ClientPlugin.java"
click node_storage_models "https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/client/me/AE2StorageModels.java"
click node_craftmodels "https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/client/render/OmniCraftingUnitModelProvider.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_cellitems,node_portable,node_cellhandler,node_celldata,node_cellinventory,node_bigcell,node_bigdata,node_biginventory toneBlue
class node_craftblocks,node_craftentity,node_craftmixin,node_craftfamily,node_worldsave toneAmber
class node_itemregistry,node_filtercard,node_spent,node_config toneMint
class node_clientplugin,node_storage_models,node_craftmodels toneRose
class node_player,node_ae2,node_nuclearintegration toneIndigo
```

## Components

### Cell Storage

- [Cell Items](https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/items/AEUniversalCellItem.java): `src/main/java/com/wintercogs/ae2omnicells/common/items/AEUniversalCellItem.java`
- [Portable Cells](https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/items/AEPortableUniversalCellItem.java): `src/main/java/com/wintercogs/ae2omnicells/common/items/AEPortableUniversalCellItem.java`
- [Cell Handler](https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/me/AEUniversalCellHandler.java): `src/main/java/com/wintercogs/ae2omnicells/common/me/AEUniversalCellHandler.java`
- [Cell Data](https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/me/AEUniversalCellData.java): `src/main/java/com/wintercogs/ae2omnicells/common/me/AEUniversalCellData.java`
- [Cell Inventory](https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/me/AEUniversalCellInventory.java): `src/main/java/com/wintercogs/ae2omnicells/common/me/AEUniversalCellInventory.java`
- [Big Integer Cells](https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/me/biginteger/AEBigIntegerCellHandler.java): `src/main/java/com/wintercogs/ae2omnicells/common/me/biginteger/AEBigIntegerCellHandler.java`
- [Big Integer Data](https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/me/biginteger/AEBigIntegerCellData.java): `src/main/java/com/wintercogs/ae2omnicells/common/me/biginteger/AEBigIntegerCellData.java`
- [Big Integer Inventory](https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/me/biginteger/AEBigIntegerCellInventory.java): `src/main/java/com/wintercogs/ae2omnicells/common/me/biginteger/AEBigIntegerCellInventory.java`

### Crafting Network

- [Crafting Blocks](https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/init/OCBlocks.java): `src/main/java/com/wintercogs/ae2omnicells/common/init/OCBlocks.java`
- [Crafting Block Entity](https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/blocks/entities/OmniCraftingBlockEntity.java): `src/main/java/com/wintercogs/ae2omnicells/common/blocks/entities/OmniCraftingBlockEntity.java`
- [Crafting Service Hook](https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/mixins/CraftingServiceMixin.java): `src/main/java/com/wintercogs/ae2omnicells/mixins/CraftingServiceMixin.java`
- [Crafting Families](https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/me/crafting/OmniCraftingFamily.java): `src/main/java/com/wintercogs/ae2omnicells/common/me/crafting/OmniCraftingFamily.java`

### Items And Config

- [Item Registry](https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/init/OCItems.java): `src/main/java/com/wintercogs/ae2omnicells/common/init/OCItems.java`
- [Type Fuzzy Card](https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/init/OCItems.java): `src/main/java/com/wintercogs/ae2omnicells/common/init/OCItems.java`
- [Spent Waste Cell](https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/common/config/MekRadialChemicalCheck.java): `src/main/java/com/wintercogs/ae2omnicells/common/config/MekRadialChemicalCheck.java`
- [Mod Configuration](https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/Config.java): `src/main/java/com/wintercogs/ae2omnicells/Config.java`

### Client Presentation

- [Client Plugin](https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/client/me/AE2ClientPlugin.java): `src/main/java/com/wintercogs/ae2omnicells/client/me/AE2ClientPlugin.java`
- [Cell Models](https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/client/me/AE2StorageModels.java): `src/main/java/com/wintercogs/ae2omnicells/client/me/AE2StorageModels.java`
- [Crafting Models](https://github.com/frostbite-time/ae2omnicells/blob/1.21.1/src/main/java/com/wintercogs/ae2omnicells/client/render/OmniCraftingUnitModelProvider.java): `src/main/java/com/wintercogs/ae2omnicells/client/render/OmniCraftingUnitModelProvider.java`

### Other components

- **Player**
- **AE2 Runtime**
- **World Save Data**
- **Applied Mekanistics**

## Connections

- Player → Cell Items: uses
- Player → Portable Cells: uses
- Cell Items → Cell Handler: handled by
- Portable Cells → Cell Handler: cell interface
- Cell Handler → Cell Data: obtains data
- Cell Handler → Cell Inventory: constructs
- Cell Data → World Save Data: persists payload
- AE2 Runtime → Cell Handler: requests inventory
- Big Integer Cells → Big Integer Data: uses data
- Big Integer Cells → Big Integer Inventory: provides inventory
- Item Registry → Cell Items: registers
- Item Registry → Portable Cells: registers
- Player → Type Fuzzy Card: configures filtering
- Spent Waste Cell → Cell Items: specialized cell
- Mod Configuration → Spent Waste Cell: controls options
- Player → Crafting Blocks: builds
- Crafting Blocks → Crafting Block Entity: creates
- Crafting Service Hook → Crafting Block Entity: discovers clusters
- Crafting Service Hook → AE2 Runtime: registers links
- Crafting Blocks → Crafting Families: uses types
- Client Plugin → Cell Models: registers
- Client Plugin → Crafting Models: registers
- Cell Models → Item Registry: maps cell models
- Crafting Models → Crafting Families: renders types
- Applied Mekanistics → Spent Waste Cell: enables contents
