task_decorator¶
Quelle: base/tealdef/mission/tasks/task_decorator.d.tl
Hinweise
Umhüllt ein Aufgabenskript mit einem zweiten Skript (Decorator), das Verhalten hinzufügt.
TaskDecorator¶
record global base/tealdef/mission/tasks/task_decorator.d.tl:3
global record TaskDecorator
Laden: local task_decorator = ug_require "::/mission/tasks/task_decorator.tl" as TaskDecorator
Hinweise
Verbindet ein Aufgabenskript mit einem Decorator-Skript zu einem einzigen Aufgabenskript.
Details
Die dekorierte Aufgabe heißt <taskScriptName>_decorated. Ihr Zustand ist ein
DecoratorState, ihre Parameter sind ein DecoratorParam. Die Callbacks der umhüllten
Aufgabe bekommen nur ihren eigenen Teil (taskParam, taskState), die Callbacks des
Decorators den ganzen Kontext. Die Aufgabe ist abgeschlossen, wenn isComplete des
Decorators (falls vorhanden) und isComplete der Aufgabe beide true liefern. getInfo
des Decorators wird ignoriert.
Beispiel
-- urbangames_campaign_mission_01
taskScript = task_decorator.decorate(collect_entity, guide_collect_entity) as MissionInterface.TaskScript<any, any>,
taskParams : DecoratorParam<MissionTaskCollectEntity.Params, MissionTaskGuideCollectEntity.Param> = {
taskParam = { soundEffectFile = params.crocodileSound, getEntities = getEntities },
decoratorParam = guideParam,
},
Funktionen
decorate<S, P, GS, GP>(task : MissionInterface.TaskScript<S, P>, decorator : MissionInterface.TaskScript<DecoratorState<S, GS>, DecoratorParam<P, GP>>) : MissionInterface.TaskScript<DecoratorState<S, GS>, DecoratorParam<P, GP>> base/tealdef/mission/tasks/task_decorator.d.tl:4
Aufruf: task_decorator.decorate(…)
Hinweise
Baut ein Aufgabenskript, das task und decorator nebeneinander ausführt.
| Parameter | Typ | Beschreibung |
|---|---|---|
task |
MissionInterface.TaskScript<S, P> |
Das zu umhüllende Aufgabenskript. |
decorator |
MissionInterface.TaskScript<DecoratorState<S, GS>, DecoratorParam<P, GP>> |
Decorator-Skript, das mit dem gemeinsamen Zustand und den gemeinsamen Parametern arbeitet. |
Rückgabe MissionInterface.TaskScript<DecoratorState<S, GS>, DecoratorParam<P, GP>>: Das kombinierte Aufgabenskript.
Im Basisspiel verwendet: 5-mal in 3 Dateien
mods/release/urbangames_campaign_mission_01/content/mission/mission/mission_story.tl:464
taskScript = task_decorator.decorate(collect_entity, guide_collect_entity) as MissionInterface.TaskScript<any, any>,
mods/release/urbangames_campaign_mission_04/content/mission/mission/mission_story.tl:921
taskScript = task_decorator.decorate(collect_entity, guide_collect_entity) as MissionInterface.TaskScript<any, any>,
mods/release/urbangames_campaign_mission_06/content/mission/mission/mission_story.tl:553
DecoratorState¶
record global base/tealdef/mission/tasks/task_decorator.d.tl:7
global record DecoratorState<SpecificState, DecoratorSpecificState>
Hinweise
Zustand einer dekorierten Aufgabe.
Felder
| Name | Typ | Beschreibung |
|---|---|---|
taskState |
SpecificState |
Zustand der umhüllten Aufgabe. |
decoratorState |
DecoratorSpecificState |
Zustand des Decorators. |
DecoratorParam¶
record global base/tealdef/mission/tasks/task_decorator.d.tl:12
global record DecoratorParam<TaskSpecificParam, DecoratorSpecificParam>
Hinweise
Parameter einer dekorierten Aufgabe.
Felder
| Name | Typ | Beschreibung |
|---|---|---|
taskParam |
TaskSpecificParam |
Parameter der umhüllten Aufgabe. |
decoratorParam |
DecoratorSpecificParam |
Parameter des Decorators. |