mirror of
https://github.com/Azgaar/Fantasy-Map-Generator.git
synced 2026-04-04 06:27:24 +02:00
refactor: encapsulate label generation functions within LabelsModule
This commit is contained in:
parent
6ab2c03860
commit
861db87bff
1 changed files with 68 additions and 71 deletions
|
|
@ -50,8 +50,8 @@ class LabelsModule {
|
||||||
|
|
||||||
generate(): void {
|
generate(): void {
|
||||||
this.clear();
|
this.clear();
|
||||||
generateStateLabels();
|
this.generateStateLabels();
|
||||||
generateBurgLabels();
|
this.generateBurgLabels();
|
||||||
}
|
}
|
||||||
|
|
||||||
getAll(): LabelData[] {
|
getAll(): LabelData[] {
|
||||||
|
|
@ -145,78 +145,75 @@ class LabelsModule {
|
||||||
clear(): void {
|
clear(): void {
|
||||||
pack.labels = [];
|
pack.labels = [];
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
/**
|
||||||
/**
|
* Generate state labels data entries for each state.
|
||||||
* Generate state labels data entries for each state.
|
* Only stores essential label data; raycast path calculation happens during rendering.
|
||||||
* Only stores essential label data; raycast path calculation happens during rendering.
|
* @param list - Optional array of stateIds to regenerate only those
|
||||||
* @param list - Optional array of stateIds to regenerate only those
|
*/
|
||||||
*/
|
generateStateLabels(list?: number[]): void {
|
||||||
export function generateStateLabels(list?: number[]): void {
|
if (TIME) console.time("generateStateLabels");
|
||||||
if (TIME) console.time("generateStateLabels");
|
|
||||||
|
const { states } = pack;
|
||||||
const { states } = pack;
|
|
||||||
const labelsModule = window.Labels;
|
// Remove existing state labels that need regeneration
|
||||||
|
if (list) {
|
||||||
// Remove existing state labels that need regeneration
|
list.forEach((stateId) => this.removeStateLabel(stateId));
|
||||||
if (list) {
|
} else {
|
||||||
list.forEach((stateId) => labelsModule.removeStateLabel(stateId));
|
this.removeByType("state");
|
||||||
} else {
|
}
|
||||||
labelsModule.removeByType("state");
|
|
||||||
|
// Generate new label entries
|
||||||
|
for (const state of states) {
|
||||||
|
if (!state.i || state.removed || state.lock) continue;
|
||||||
|
if (list && !list.includes(state.i)) continue;
|
||||||
|
|
||||||
|
this.addStateLabel({
|
||||||
|
stateId: state.i,
|
||||||
|
text: state.name!,
|
||||||
|
fontSize: 100,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (TIME) console.timeEnd("generateStateLabels");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate burg labels data from burgs.
|
||||||
|
* Populates pack.labels with BurgLabelData for each burg.
|
||||||
|
*/
|
||||||
|
generateBurgLabels(): void {
|
||||||
|
if (TIME) console.time("generateBurgLabels");
|
||||||
|
|
||||||
|
// Remove existing burg labels
|
||||||
|
this.removeByType("burg");
|
||||||
|
|
||||||
|
// Generate new labels for all active burgs
|
||||||
|
for (const burg of pack.burgs) {
|
||||||
|
if (!burg.i || burg.removed) continue;
|
||||||
|
|
||||||
|
const group = burg.group || "unmarked";
|
||||||
|
|
||||||
|
// Get label group offset attributes if they exist (will be set during rendering)
|
||||||
|
// For now, use defaults - these will be updated during rendering phase
|
||||||
|
const dx = 0;
|
||||||
|
const dy = 0;
|
||||||
|
|
||||||
|
this.addBurgLabel({
|
||||||
|
burgId: burg.i,
|
||||||
|
group,
|
||||||
|
text: burg.name!,
|
||||||
|
x: burg.x,
|
||||||
|
y: burg.y,
|
||||||
|
dx,
|
||||||
|
dy,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (TIME) console.timeEnd("generateBurgLabels");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Generate new label entries
|
|
||||||
for (const state of states) {
|
|
||||||
if (!state.i || state.removed || state.lock) continue;
|
|
||||||
if (list && !list.includes(state.i)) continue;
|
|
||||||
|
|
||||||
labelsModule.addStateLabel({
|
|
||||||
stateId: state.i,
|
|
||||||
text: state.name!,
|
|
||||||
fontSize: 100,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (TIME) console.timeEnd("generateStateLabels");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Generate burg labels data from burgs.
|
|
||||||
* Populates pack.labels with BurgLabelData for each burg.
|
|
||||||
*/
|
|
||||||
export function generateBurgLabels(): void {
|
|
||||||
if (!TIME) console.time("generateBurgLabels");
|
|
||||||
else TIME && console.time("generateBurgLabels");
|
|
||||||
|
|
||||||
const labelsModule = window.Labels;
|
|
||||||
|
|
||||||
// Remove existing burg labels
|
|
||||||
labelsModule.removeByType("burg");
|
|
||||||
|
|
||||||
// Generate new labels for all active burgs
|
|
||||||
for (const burg of pack.burgs) {
|
|
||||||
if (!burg.i || burg.removed) continue;
|
|
||||||
|
|
||||||
const group = burg.group || "unmarked";
|
|
||||||
|
|
||||||
// Get label group offset attributes if they exist (will be set during rendering)
|
|
||||||
// For now, use defaults - these will be updated during rendering phase
|
|
||||||
const dx = 0;
|
|
||||||
const dy = 0;
|
|
||||||
|
|
||||||
labelsModule.addBurgLabel({
|
|
||||||
burgId: burg.i,
|
|
||||||
group,
|
|
||||||
text: burg.name!,
|
|
||||||
x: burg.x,
|
|
||||||
y: burg.y,
|
|
||||||
dx,
|
|
||||||
dy,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!TIME) console.timeEnd("generateBurgLabels");
|
|
||||||
else TIME && console.timeEnd("generateBurgLabels");
|
|
||||||
}
|
|
||||||
|
|
||||||
window.Labels = new LabelsModule();
|
window.Labels = new LabelsModule();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue