mirror of
https://github.com/Azgaar/Fantasy-Map-Generator.git
synced 2026-03-23 23:57:23 +01:00
bmad-init
This commit is contained in:
parent
b6484a783f
commit
3047aefd40
294 changed files with 38091 additions and 55 deletions
65
.github/copilot-instructions.md.bak
vendored
Normal file
65
.github/copilot-instructions.md.bak
vendored
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
# Fantasy Map Generator
|
||||
|
||||
Azgaar's Fantasy Map Generator is a client-only web application for creating fantasy maps. It generates detailed fantasy worlds with countries, cities, rivers, biomes, and cultural elements.
|
||||
|
||||
Always reference these instructions first.
|
||||
|
||||
# Architecture
|
||||
|
||||
The codebase is gradually transitioning from **vanilla JavaScript to TypeScript** while maintaining compatibility with the existing generation pipeline and legacy `.map` user files.
|
||||
|
||||
The expected **future architecture** is based on a separation between **world data**, **procedural generation**, **interactive editing**, and **rendering**.
|
||||
|
||||
The application is conceptually divided into four main layers:
|
||||
|
||||
- **State** — world data and style configuration, the single source of truth
|
||||
- **Generators** — procedural world simulation (model)
|
||||
- **Editors** — user-driven mutations of the world state (controllers)
|
||||
- **Renderer** — map visualization (view)
|
||||
|
||||
Flow:
|
||||
settings → generators → world data → renderer
|
||||
UI → editors → world data → renderer
|
||||
|
||||
### Layer responsibilities
|
||||
|
||||
**State (world data)**
|
||||
Stores all map data and style configuration.
|
||||
The data layer must contain **no logic and no rendering code**.
|
||||
|
||||
**Generators**
|
||||
Implement the procedural world simulation and populate or update world data based on generation settings.
|
||||
|
||||
**Editors**
|
||||
Implement interactive editing tools used by the user.
|
||||
Editors perform controlled mutations of the world state and can be viewed as **interactive generators**.
|
||||
|
||||
**Renderer**
|
||||
Converts the world state into **SVG or WebGL graphics**.
|
||||
Rendering must be a **pure visualization step** and must **not modify world data**.
|
||||
|
||||
# Working Effectively
|
||||
|
||||
The project uses **NPM**, **Vite**, and **TypeScript** for development and building.
|
||||
|
||||
## Setup
|
||||
|
||||
Install dependencies: `npm install`
|
||||
|
||||
Requirements: Node.js **>= 24.0.0**
|
||||
|
||||
## Development
|
||||
|
||||
Start the development server: `npm run dev`
|
||||
|
||||
Access the application at: http://localhost:5173
|
||||
|
||||
## Build
|
||||
|
||||
Create a production build: `npm run build`
|
||||
|
||||
Build steps:
|
||||
|
||||
1. TypeScript compilation (`tsc`)
|
||||
2. Vite build
|
||||
3. Output written to `dist/`
|
||||
Loading…
Add table
Add a link
Reference in a new issue