From db355da09ed60095e29372b98557bc3e0389891b Mon Sep 17 00:00:00 2001 From: tobspr Date: Fri, 25 Jun 2021 16:31:54 +0200 Subject: [PATCH] Minor puzzle control refactoring --- .../game/hud/parts/puzzle_editor_settings.js | 13 ++++++---- src/js/game/hud/parts/puzzle_play_settings.js | 25 ++++++++----------- 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/src/js/game/hud/parts/puzzle_editor_settings.js b/src/js/game/hud/parts/puzzle_editor_settings.js index 11b046bf..13564da4 100644 --- a/src/js/game/hud/parts/puzzle_editor_settings.js +++ b/src/js/game/hud/parts/puzzle_editor_settings.js @@ -1,5 +1,3 @@ -/* typehints:start */ -/* typehints:end */ import { globalConfig } from "../../../core/config"; import { gMetaBuildingRegistry } from "../../../core/global_registries"; import { createLogger } from "../../../core/logging"; @@ -50,7 +48,7 @@ export class HUDPuzzleEditorSettings extends BaseHUDPart {
- +
` @@ -62,7 +60,7 @@ export class HUDPuzzleEditorSettings extends BaseHUDPart { bind(".zoneHeight .plus", () => this.modifyZone(0, 1)); bind("button.trim", this.trim); bind("button.clearItems", this.clearItems); - bind("button.clearBuildings", this.clearBuildings); + bind("button.resetPuzzle", this.resetPuzzle); } } @@ -70,9 +68,14 @@ export class HUDPuzzleEditorSettings extends BaseHUDPart { this.root.logic.clearAllBeltsAndItems(); } - clearBuildings() { + resetPuzzle() { for (const entity of this.root.entityMgr.getAllWithComponent(StaticMapEntityComponent)) { const staticComp = entity.components.StaticMapEntity; + const goalComp = entity.components.GoalAcceptor; + + if (goalComp) { + goalComp.clear(); + } if ( [MetaGoalAcceptorBuilding, MetaConstantProducerBuilding, MetaBlockBuilding] diff --git a/src/js/game/hud/parts/puzzle_play_settings.js b/src/js/game/hud/parts/puzzle_play_settings.js index 8ae28166..db03838b 100644 --- a/src/js/game/hud/parts/puzzle_play_settings.js +++ b/src/js/game/hud/parts/puzzle_play_settings.js @@ -1,10 +1,6 @@ -import { gMetaBuildingRegistry } from "../../../core/global_registries"; import { createLogger } from "../../../core/logging"; import { makeDiv } from "../../../core/utils"; import { T } from "../../../translations"; -import { MetaBlockBuilding } from "../../buildings/block"; -import { MetaConstantProducerBuilding } from "../../buildings/constant_producer"; -import { MetaGoalAcceptorBuilding } from "../../buildings/goal_acceptor"; import { StaticMapEntityComponent } from "../../components/static_map_entity"; import { BaseHUDPart } from "../base_hud_part"; @@ -23,13 +19,13 @@ export class HUDPuzzlePlaySettings extends BaseHUDPart { ["section"], ` - + ` ); bind("button.clearItems", this.clearItems); - bind("button.clearBuildings", this.clearBuildings); + bind("button.resetPuzzle", this.resetPuzzle); } } @@ -37,20 +33,19 @@ export class HUDPuzzlePlaySettings extends BaseHUDPart { this.root.logic.clearAllBeltsAndItems(); } - clearBuildings() { + resetPuzzle() { for (const entity of this.root.entityMgr.getAllWithComponent(StaticMapEntityComponent)) { const staticComp = entity.components.StaticMapEntity; + const goalComp = entity.components.GoalAcceptor; - if ( - [MetaGoalAcceptorBuilding, MetaConstantProducerBuilding, MetaBlockBuilding] - .map(metaClass => gMetaBuildingRegistry.findByClass(metaClass).id) - .includes(staticComp.getMetaBuilding().id) - ) { - continue; + if (goalComp) { + goalComp.clear(); } - this.root.map.removeStaticEntity(entity); - this.root.entityMgr.destroyEntity(entity); + if (staticComp.getMetaBuilding().getIsRemovable(this.root)) { + this.root.map.removeStaticEntity(entity); + this.root.entityMgr.destroyEntity(entity); + } } this.root.entityMgr.processDestroyList(); }