Zum Inhalt

mission_task_store_entity

Quelle: base/tealdef/mission/tasks/utility/mission_task_store_entity.d.tl

Hinweise

Aufgabe, die eine Entität als Schnappschuss speichert, damit andere Aufgaben sie lesen können.

MissionTaskStoreEntity

record global base/tealdef/mission/tasks/utility/mission_task_store_entity.d.tl:3

global record MissionTaskStoreEntity is MissionInterface.TaskScript<MissionTaskStoreEntity.State, MissionTaskStoreEntity.Params>

Laden: local store_entity = ug_require "::/mission/tasks/utility/store_entity.tl" as MissionTaskStoreEntity

Hinweise

Aufgabe (store_entity), die eine Entität als Schnappschuss (ID und Revision) in ihrem Zustand speichert und dann abgeschlossen ist. Das Tutorial des Basisspiels speichert so seine Hauptstadt (store_capital) und die zweite Stadt (store_town2) und liest sie mit TutorialStoryUtil.getCapital und TutorialStoryUtil.getSecondTown.

Details

storeFn wird bei jedem Update aufgerufen, bis es eine Entität liefert. Der Schnappschuss ist nil, wenn die Entität nicht mehr existiert oder isExpectedFn sie ablehnt; resolved ist in beiden Fällen true, und die Aufgabe endet mit einem Fehler im Log. Der Abschluss wartet ein weiteres Update (waitForEngineSwap). Spielstände aus der Zeit vor dieser Aufgabe, die die Entitäts-ID in einer store_any-Aufgabe hielten, wandelt handleLegacy um; besteht die gespeicherte Entität isExpectedFn nicht mehr, sucht es unter allen Entitäten einen Ersatz.

MissionTaskStoreEntity.Params

record base/tealdef/mission/tasks/utility/mission_task_store_entity.d.tl:4

record Params

Hinweise

Parameter der Aufgabe.

Im Basisspiel verwendet: 8-mal in 3 Dateien

base/content/mission/mission/tasks/utility/store_entity.tl:4

local type P = MissionTaskStoreEntity.Params
base/content/mission/mission/tutorial/tutorial_story.tl:224
taskParams : MissionTaskStoreEntity.Params = {
base/content/mission/mission/tutorial/tutorial_story_util.tl:52
local task = findTask(taskKey) as MissionInterface.TaskState<MissionTaskStoreEntity.State, MissionTaskStoreEntity.Params>

Funktionen

storeFn(readOnlyApi : MissionInterface.MissionTaskReadOnlyApi) : Engine.Entity base/tealdef/mission/tasks/utility/mission_task_store_entity.d.tl:5

Hinweise

Findet die zu speichernde Entität; wird bei jedem Update aufgerufen, bis es eine Entität liefert.

Parameter Typ Beschreibung
readOnlyApi MissionInterface.MissionTaskReadOnlyApi Mission-API mit Lesezugriff.

Rückgabe Engine.Entity: Zu speichernde Entität oder nil, um es erneut zu versuchen.

isExpectedFn(entity : Engine.Entity) : boolean base/tealdef/mission/tasks/utility/mission_task_store_entity.d.tl:6

Hinweise

Optionale Prüfung der gefundenen Entität, zum Beispiel ob sie eine Stadt ist. Eine abgelehnte Entität wird protokolliert, und es wird kein Schnappschuss gespeichert.

Parameter Typ Beschreibung
entity Engine.Entity Die Entität, die storeFn geliefert hat.

Rückgabe boolean: true, wenn die Entität von der erwarteten Art ist.

MissionTaskStoreEntity.State

record base/tealdef/mission/tasks/utility/mission_task_store_entity.d.tl:8

record State

Hinweise

Zustand der Aufgabe.

Im Basisspiel verwendet: 2-mal in 2 Dateien

base/content/mission/mission/tasks/utility/store_entity.tl:3

local type S = MissionTaskStoreEntity.State
base/content/mission/mission/tutorial/tutorial_story_util.tl:52
local task = findTask(taskKey) as MissionInterface.TaskState<MissionTaskStoreEntity.State, MissionTaskStoreEntity.Params>

Felder

Name Typ Beschreibung
snapshot EntityUtil.EntityAndRevision nil if storeFn yielded no valid entity Gespeicherte Entität mit ihrer Revision oder nil, wenn storeFn keine gültige Entität geliefert hat.
resolved boolean true, sobald storeFn eine Entität geliefert hat, egal ob der Schnappschuss gültig ist.
waitForEngineSwap boolean Verzögert den Abschluss nach dem Speichern um ein Update.