From e6c54d61bcd6cc0d721c5583863a66d3d0107389 Mon Sep 17 00:00:00 2001 From: Sense101 <67970865+Sense101@users.noreply.github.com> Date: Fri, 25 Jun 2021 15:19:45 +0100 Subject: [PATCH] improved stuff --- src/js/game/buildings/block.js | 8 -------- src/js/game/buildings/constant_producer.js | 8 -------- src/js/game/buildings/goal_acceptor.js | 8 -------- .../game/hud/parts/puzzle_editor_settings.js | 18 +++++++++++------- src/js/game/meta_building.js | 9 --------- 5 files changed, 11 insertions(+), 40 deletions(-) diff --git a/src/js/game/buildings/block.js b/src/js/game/buildings/block.js index 0be49468..d6499648 100644 --- a/src/js/game/buildings/block.js +++ b/src/js/game/buildings/block.js @@ -22,14 +22,6 @@ export class MetaBlockBuilding extends MetaBuilding { return root.gameMode.getIsEditor(); } - /** - * @param {import("../../savegame/savegame_serializer").GameRoot} root - * @returns {boolean} - */ - getIsPuzzleRemovable(root) { - return false; - } - /** * Creates the entity at the given location * @param {Entity} entity diff --git a/src/js/game/buildings/constant_producer.js b/src/js/game/buildings/constant_producer.js index 0337a665..c1c502d0 100644 --- a/src/js/game/buildings/constant_producer.js +++ b/src/js/game/buildings/constant_producer.js @@ -26,14 +26,6 @@ export class MetaConstantProducerBuilding extends MetaBuilding { return root.gameMode.getIsEditor(); } - /** - * @param {import("../../savegame/savegame_serializer").GameRoot} root - * @returns {boolean} - */ - getIsPuzzleRemovable(root) { - return false; - } - /** * Creates the entity at the given location * @param {Entity} entity diff --git a/src/js/game/buildings/goal_acceptor.js b/src/js/game/buildings/goal_acceptor.js index ddc738f3..dde720e3 100644 --- a/src/js/game/buildings/goal_acceptor.js +++ b/src/js/game/buildings/goal_acceptor.js @@ -26,14 +26,6 @@ export class MetaGoalAcceptorBuilding extends MetaBuilding { return root.gameMode.getIsEditor(); } - /** - * @param {import("../../savegame/savegame_serializer").GameRoot} root - * @returns {boolean} - */ - getIsPuzzleRemovable(root) { - return false; - } - /** * Creates the entity at the given location * @param {Entity} entity diff --git a/src/js/game/hud/parts/puzzle_editor_settings.js b/src/js/game/hud/parts/puzzle_editor_settings.js index 18595cab..887fd2d8 100644 --- a/src/js/game/hud/parts/puzzle_editor_settings.js +++ b/src/js/game/hud/parts/puzzle_editor_settings.js @@ -1,10 +1,14 @@ /* typehints:start */ /* typehints:end */ import { globalConfig } from "../../../core/config"; +import { gMetaBuildingRegistry } from "../../../core/global_registries"; import { createLogger } from "../../../core/logging"; import { Rectangle } from "../../../core/rectangle"; 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 { PuzzleGameMode } from "../../modes/puzzle"; import { BaseHUDPart } from "../base_hud_part"; @@ -58,7 +62,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.resetPuzzle", this.resetPuzzle); + bind("button.clearBuildings", this.clearBuildings); } } @@ -66,15 +70,15 @@ export class HUDPuzzleEditorSettings extends BaseHUDPart { this.root.logic.clearAllBeltsAndItems(); } - resetPuzzle() { + clearBuildings() { for (const entity of this.root.entityMgr.getAllWithComponent(StaticMapEntityComponent)) { const staticComp = entity.components.StaticMapEntity; - const goalComp = entity.components.GoalAcceptor; - if (!staticComp.getMetaBuilding().getIsPuzzleRemovable(this.root)) { - if (goalComp) { - goalComp.clear(); - } + if ( + [MetaGoalAcceptorBuilding, MetaConstantProducerBuilding, MetaBlockBuilding] + .map(metaClass => gMetaBuildingRegistry.findByClass(metaClass).id) + .includes(staticComp.getMetaBuilding().id) + ) { continue; } diff --git a/src/js/game/meta_building.js b/src/js/game/meta_building.js index 807c22cf..7bfbce25 100644 --- a/src/js/game/meta_building.js +++ b/src/js/game/meta_building.js @@ -115,15 +115,6 @@ export class MetaBuilding { return true; } - /** - * Returns whether this building is removable in puzzle mode - * @param {GameRoot} root - * @returns {boolean} - */ - getIsPuzzleRemovable(root) { - return true; - } - /** * Returns the placement sound * @returns {string}