mirror of
https://github.com/Azgaar/Fantasy-Map-Generator.git
synced 2025-12-17 17:51:24 +01:00
refactor: more components
This commit is contained in:
parent
e739698346
commit
c1b3a3bbbb
4 changed files with 23 additions and 11 deletions
|
|
@ -1,3 +1,4 @@
|
||||||
|
// @ts-nocheck global variables
|
||||||
import {TIME} from "config/logging";
|
import {TIME} from "config/logging";
|
||||||
import {normalize} from "utils/numberUtils";
|
import {normalize} from "utils/numberUtils";
|
||||||
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
// @ts-nocheck global variables
|
||||||
import {TIME} from "config/logging";
|
import {TIME} from "config/logging";
|
||||||
import {UINT16_MAX} from "constants";
|
import {UINT16_MAX} from "constants";
|
||||||
import {createTypedArray} from "utils/arrayUtils";
|
import {createTypedArray} from "utils/arrayUtils";
|
||||||
|
|
@ -8,7 +9,7 @@ import {rn} from "utils/numberUtils";
|
||||||
export function reGraph() {
|
export function reGraph() {
|
||||||
TIME && console.time("reGraph");
|
TIME && console.time("reGraph");
|
||||||
const {cells: gridCells, points, features} = grid;
|
const {cells: gridCells, points, features} = grid;
|
||||||
const newCells = {p: [], g: [], h: []}; // store new data
|
const newCells: {p: number[][]; g: number[]; h: number[]} = {p: [], g: [], h: []}; // store new data
|
||||||
const spacing2 = grid.spacing ** 2;
|
const spacing2 = grid.spacing ** 2;
|
||||||
|
|
||||||
for (const i of gridCells.i) {
|
for (const i of gridCells.i) {
|
||||||
|
|
@ -36,13 +37,13 @@ export function reGraph() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function addNewPoint(i, x, y, height) {
|
function addNewPoint(i: number, x: number, y: number, height: number) {
|
||||||
newCells.p.push([x, y]);
|
newCells.p.push([x, y]);
|
||||||
newCells.g.push(i);
|
newCells.g.push(i);
|
||||||
newCells.h.push(height);
|
newCells.h.push(height);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getCellArea(i) {
|
function getCellArea(i: number) {
|
||||||
const area = Math.abs(d3.polygonArea(getPackPolygon(i)));
|
const area = Math.abs(d3.polygonArea(getPackPolygon(i)));
|
||||||
return Math.min(area, UINT16_MAX);
|
return Math.min(area, UINT16_MAX);
|
||||||
}
|
}
|
||||||
|
|
@ -1,11 +1,12 @@
|
||||||
|
// @ts-nocheck global variables
|
||||||
import {INFO} from "config/logging";
|
import {INFO} from "config/logging";
|
||||||
import {byId} from "utils/shorthands";
|
|
||||||
import {heightmapTemplates} from "config/heightmap-templates";
|
import {heightmapTemplates} from "config/heightmap-templates";
|
||||||
import {locked} from "scripts/options/lock";
|
import {locked} from "scripts/options/lock";
|
||||||
|
import {getInputValue} from "utils/nodeUtils";
|
||||||
|
|
||||||
// show map stats on generation complete
|
// show map stats on generation complete
|
||||||
export function showStatistics() {
|
export function showStatistics() {
|
||||||
const heightmap = byId("templateInput").value;
|
const heightmap = getInputValue("templateInput");
|
||||||
const isTemplate = heightmap in heightmapTemplates;
|
const isTemplate = heightmap in heightmapTemplates;
|
||||||
const heightmapType = isTemplate ? "template" : "precreated";
|
const heightmapType = isTemplate ? "template" : "precreated";
|
||||||
const isRandomTemplate = isTemplate && !locked("template") ? "random " : "";
|
const isRandomTemplate = isTemplate && !locked("template") ? "random " : "";
|
||||||
|
|
@ -8,16 +8,25 @@ export function unique<T>(array: T[]) {
|
||||||
return [...new Set(array)];
|
return [...new Set(array)];
|
||||||
}
|
}
|
||||||
|
|
||||||
interface ICreateTypedArray {
|
interface ICreateTypesArrayLength {
|
||||||
maxValue: number;
|
maxValue: number;
|
||||||
length: number;
|
length: number;
|
||||||
from?: ArrayLike<number>;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function createTypedArray({maxValue, length, from}: ICreateTypedArray) {
|
interface ICreateTypesArrayFrom {
|
||||||
const typedArray = getTypedArray(maxValue);
|
maxValue: number;
|
||||||
if (!from) return new typedArray(length);
|
from: ArrayLike<number>;
|
||||||
return typedArray.from(from);
|
}
|
||||||
|
|
||||||
|
export function createTypedArray(params: ICreateTypesArrayLength | ICreateTypesArrayFrom) {
|
||||||
|
const typedArray = getTypedArray(params.maxValue);
|
||||||
|
if ("from" in params) {
|
||||||
|
typedArray.from(params.from);
|
||||||
|
} else if ("length" in params) {
|
||||||
|
return new typedArray(params.length);
|
||||||
|
}
|
||||||
|
|
||||||
|
return typedArray;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getTypedArray(maxValue: number) {
|
function getTypedArray(maxValue: number) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue