mirror of
https://github.com/Azgaar/Fantasy-Map-Generator.git
synced 2026-03-23 15:47:24 +01:00
Refactor/migrate first modules (#1273)
* chore: add npm + vite for progressive enhancement * fix: update Dockerfile to copy only the dist folder contents * fix: update Dockerfile to use multi-stage build for optimized production image * fix: correct nginx config file copy command in Dockerfile * chore: add netlify configuration for build and redirects * fix: add NODE_VERSION to environment in Netlify configuration * remove wrong dist folder * Update package.json Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * chore: split public and src * migrating all util files from js to ts * feat: Implement HeightmapGenerator and Voronoi module - Added HeightmapGenerator class for generating heightmaps with various tools (Hill, Pit, Range, Trough, Strait, etc.). - Introduced Voronoi class for creating Voronoi diagrams using Delaunator. - Updated index.html to include new modules. - Created index.ts to manage module imports. - Enhanced arrayUtils and graphUtils with type definitions and improved functionality. - Added utility functions for generating grids and calculating Voronoi cells. * chore: add GitHub Actions workflow for deploying to GitHub Pages * fix: update branch name in GitHub Actions workflow from 'main' to 'master' * chore: update package.json to specify Node.js engine version and remove unused launch.json * Initial plan * Update copilot guidelines to reflect NPM/Vite/TypeScript migration Co-authored-by: Azgaar <26469650+Azgaar@users.noreply.github.com> * Update src/modules/heightmap-generator.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/utils/graphUtils.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/modules/heightmap-generator.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * feat: Add TIME and ERROR variables to global scope in HeightmapGenerator * fix: Update base path in vite.config.ts for Netlify deployment * refactor: Migrate features to a new module and remove legacy script reference * refactor: Update feature interfaces and improve type safety in FeatureModule * refactor: Add documentation for markupPack and defineGroups methods in FeatureModule * refactor: Remove legacy ocean-layers.js and migrate functionality to ocean-layers.ts * refactor: Remove river-generator.js script reference and migrate river generation logic to river-generator.ts * refactor: Remove river-generator.js reference and add biomes module * refactor: Migrate lakes functionality to lakes.ts and update related interfaces * refactor: clean up global variable declarations and improve type definitions * refactor: update shoreline calculation and improve type imports in PackedGraph * fix: e2e tests --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Azgaar <maxganiev@yandex.com> Co-authored-by: Azgaar <azgaar.fmg@yandex.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Azgaar <26469650+Azgaar@users.noreply.github.com>
This commit is contained in:
parent
9903f0b9aa
commit
29bc2832e0
15 changed files with 826 additions and 677 deletions
36
src/types/PackedGraph.ts
Normal file
36
src/types/PackedGraph.ts
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
import type { PackedGraphFeature } from "../modules/features";
|
||||
import type { River } from "../modules/river-generator";
|
||||
|
||||
|
||||
type TypedArray = Uint8Array | Uint16Array | Uint32Array | Int8Array | Int16Array | Float32Array | Float64Array;
|
||||
|
||||
export interface PackedGraph {
|
||||
cells: {
|
||||
i: number[]; // cell indices
|
||||
c: number[][]; // neighboring cells
|
||||
v: number[][]; // neighboring vertices
|
||||
p: [number, number][]; // cell polygon points
|
||||
b: boolean[]; // cell is on border
|
||||
h: TypedArray; // cell heights
|
||||
t: TypedArray; // cell terrain types
|
||||
r: Uint16Array; // river id passing through cell
|
||||
f: Uint16Array; // feature id occupying cell
|
||||
fl: TypedArray; // flux presence in cell
|
||||
conf: TypedArray; // cell water confidence
|
||||
haven: TypedArray; // cell is a haven
|
||||
g: number[]; // cell ground type
|
||||
culture: number[]; // cell culture id
|
||||
biome: TypedArray; // cell biome id
|
||||
harbor: TypedArray; // cell harbour presence
|
||||
};
|
||||
vertices: {
|
||||
i: number[]; // vertex indices
|
||||
c: [number, number, number][]; // neighboring cells
|
||||
v: number[][]; // neighboring vertices
|
||||
x: number[]; // x coordinates
|
||||
y: number[]; // y coordinates
|
||||
p: [number, number][]; // vertex points
|
||||
};
|
||||
rivers: River[];
|
||||
features: PackedGraphFeature[];
|
||||
}
|
||||
33
src/types/global.ts
Normal file
33
src/types/global.ts
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
import type { Selection } from 'd3';
|
||||
import { PackedGraph } from "./PackedGraph";
|
||||
|
||||
declare global {
|
||||
var seed: string;
|
||||
var pack: PackedGraph;
|
||||
var grid: any;
|
||||
var graphHeight: number;
|
||||
var graphWidth: number;
|
||||
|
||||
var TIME: boolean;
|
||||
var WARN: boolean;
|
||||
var ERROR: boolean;
|
||||
|
||||
var heightmapTemplates: any;
|
||||
var Names: any;
|
||||
|
||||
var pointsInput: HTMLInputElement;
|
||||
var heightExponentInput: HTMLInputElement;
|
||||
|
||||
var rivers: Selection<SVGElement, unknown, null, undefined>;
|
||||
var oceanLayers: Selection<SVGGElement, unknown, null, undefined>;
|
||||
var biomesData: {
|
||||
i: number[];
|
||||
name: string[];
|
||||
color: string[];
|
||||
biomesMatrix: Uint8Array[];
|
||||
habitability: number[];
|
||||
iconsDensity: number[];
|
||||
icons: string[][];
|
||||
cost: number[];
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue