From bca7440f146cede95fa5d50394e375271cf92078 Mon Sep 17 00:00:00 2001 From: Sense101 <67970865+Sense101@users.noreply.github.com> Date: Wed, 7 Jul 2021 15:12:44 +0100 Subject: [PATCH] added check to prevent downloading empty goal acceptors --- src/js/game/hud/parts/puzzle_import_export.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/js/game/hud/parts/puzzle_import_export.js b/src/js/game/hud/parts/puzzle_import_export.js index 8a8719f6..2656b4f6 100644 --- a/src/js/game/hud/parts/puzzle_import_export.js +++ b/src/js/game/hud/parts/puzzle_import_export.js @@ -3,6 +3,7 @@ import { ReadWriteProxy } from "../../../core/read_write_proxy"; import { generateFileDownload, makeDiv, startFileChoose, waitNextFrame } from "../../../core/utils"; import { PuzzleSerializer } from "../../../savegame/puzzle_serializer"; import { T } from "../../../translations"; +import { GoalAcceptorComponent } from "../../components/goal_acceptor"; import { StaticMapEntityComponent } from "../../components/static_map_entity"; import { PuzzleGameMode } from "../../modes/puzzle"; import { BaseHUDPart } from "../base_hud_part"; @@ -110,6 +111,18 @@ export class HUDPuzzleImportExport extends BaseHUDPart { } exportPuzzle() { + // Make sure all acceptors have an item + for (const entity of this.root.entityMgr.getAllWithComponent(GoalAcceptorComponent)) { + const goalComp = entity.components.GoalAcceptor; + if (!goalComp.item) { + this.root.hud.parts.dialogs.showWarning( + T.puzzleMenu.validation.title, + T.puzzleMenu.validation.goalAcceptorNoItem + ); + return; + } + } + const serialized = new PuzzleSerializer().generateDumpFromGameRoot(this.root); const data = ReadWriteProxy.serializeObject(serialized);