# atom-games/mappingresources architecture

> Architecture diagram of the GitHub repository atom-games/mappingresources, 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/atom-games/mappingresources
- Repository: https://github.com/atom-games/mappingresources

## Overview

MappingResources is a Windows Forms map editor: a user imports or opens a base map, defines resource icons and coordinate placements, composites visible resources onto the map, then saves the editable map or exports an image. The main form owns these actions; Resource and XYcoor provide the resource and placement UI, while ABC_lib_01 supplies bitmap conversion, blending, and shared random state. The README is absent and several source files are unsampled, so links to behavior not shown are omitted.

Main entry points: [`MappingResources/Form1.cs`](https://github.com/atom-games/mappingresources/blob/master/MappingResources/Form1.cs) (Map Editor), [`MappingResources/Resource.cs`](https://github.com/atom-games/mappingresources/blob/master/MappingResources/Resource.cs) (Resource Control), [`MappingResources/ABC_lib_01.cs`](https://github.com/atom-games/mappingresources/blob/master/MappingResources/ABC_lib_01.cs) (Bitmap and Random Helpers), [`MappingResources/MAP.cs`](https://github.com/atom-games/mappingresources/blob/master/MappingResources/MAP.cs) (Map State)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_editing["Map Editing"]
  node_form["Map Editor<br/>[Form1.cs]"]
  node_map["Map State<br/>[MAP.cs]"]
end

subgraph group_resources["Resource Placement"]
  node_resource["Resource Control<br/>[Resource.cs]"]
  node_coordinate["Placement Coordinates<br/>[XYcoor.Designer.cs]"]
end

subgraph group_support["Shared Support"]
  node_seed["Seed Dialog<br/>[SetSeed.cs]"]
  node_size["Icon Size Dialog<br/>[SizeIcon.cs]"]
  node_helpers["Bitmap and Random Helpers<br/>[ABC_lib_01.cs]"]
end

node_user(("User"))
node_imagefiles["Image Files"]
node_mapfiles["Map Files"]

node_user -->|"edits and previews"| node_form
node_form -->|"updates map state"| node_map
node_form -->|"creates and loads"| node_resource
node_resource -->|"manages placements"| node_coordinate
node_resource -->|"requests removal"| node_form
node_resource -->|"opens sizing"| node_size
node_form -->|"opens seed editor"| node_seed
node_form -->|"uses conversion and random"| node_helpers
node_resource -->|"uses image filter"| node_helpers
node_form -->|"imports and exports"| node_imagefiles
node_form -->|"reads and writes"| node_mapfiles

click node_form "https://github.com/atom-games/mappingresources/blob/master/MappingResources/Form1.cs"
click node_map "https://github.com/atom-games/mappingresources/blob/master/MappingResources/MAP.cs"
click node_resource "https://github.com/atom-games/mappingresources/blob/master/MappingResources/Resource.cs"
click node_coordinate "https://github.com/atom-games/mappingresources/blob/master/MappingResources/XYcoor.Designer.cs"
click node_seed "https://github.com/atom-games/mappingresources/blob/master/MappingResources/SetSeed.cs"
click node_size "https://github.com/atom-games/mappingresources/blob/master/MappingResources/SizeIcon.cs"
click node_helpers "https://github.com/atom-games/mappingresources/blob/master/MappingResources/ABC_lib_01.cs"

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_form,node_map,node_user toneBlue
class node_resource,node_coordinate toneAmber
class node_seed,node_size,node_helpers toneMint
class node_imagefiles,node_mapfiles toneIndigo
```

## Components

### Map Editing

- [Map Editor](https://github.com/atom-games/mappingresources/blob/master/MappingResources/Form1.cs): `MappingResources/Form1.cs`
- [Map State](https://github.com/atom-games/mappingresources/blob/master/MappingResources/MAP.cs): `MappingResources/MAP.cs`

### Resource Placement

- [Resource Control](https://github.com/atom-games/mappingresources/blob/master/MappingResources/Resource.cs): `MappingResources/Resource.cs`
- [Placement Coordinates](https://github.com/atom-games/mappingresources/blob/master/MappingResources/XYcoor.Designer.cs): `MappingResources/XYcoor.Designer.cs`

### Shared Support

- [Seed Dialog](https://github.com/atom-games/mappingresources/blob/master/MappingResources/SetSeed.cs): `MappingResources/SetSeed.cs`
- [Icon Size Dialog](https://github.com/atom-games/mappingresources/blob/master/MappingResources/SizeIcon.cs): `MappingResources/SizeIcon.cs`
- [Bitmap and Random Helpers](https://github.com/atom-games/mappingresources/blob/master/MappingResources/ABC_lib_01.cs): `MappingResources/ABC_lib_01.cs`

### Other components

- **User**
- **Image Files**
- **Map Files**

## Connections

- User → Map Editor: edits and previews
- Map Editor → Map State: updates map state
- Map Editor → Resource Control: creates and loads
- Resource Control → Placement Coordinates: manages placements
- Resource Control → Map Editor: requests removal
- Resource Control → Icon Size Dialog: opens sizing
- Map Editor → Seed Dialog: opens seed editor
- Map Editor → Bitmap and Random Helpers: uses conversion and random
- Resource Control → Bitmap and Random Helpers: uses image filter
- Map Editor → Image Files: imports and exports
- Map Editor → Map Files: reads and writes
