summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/keira3-internals.md10
1 files changed, 10 insertions, 0 deletions
diff --git a/docs/keira3-internals.md b/docs/keira3-internals.md
index c9636f3..ad0327b 100644
--- a/docs/keira3-internals.md
+++ b/docs/keira3-internals.md
@@ -138,3 +138,13 @@ In order to maximise code reuse, the following abstract classes have been create
- `SingleRowEditorComponent`: extends `EditorComponent`, base of all Single-row Editor Components (e.g. `CreatureTemplateComponent` extends this class);
- `MultiRowEditorComponent`: extends `EditorComponent`, base of all Multi-row Editor Components (e.g. `CreatureLootTemplateComponent` extends this class);
+### Handler
+
+Handlers are services responsible for holding statuses such as:
+
+- which entity has been selected (for example, when you select a Creature, the ID of the creature is kept inside the `CreatureHandlerService`)
+- which editors are left with unsaved changes
+
+Group of editors that refer to the same main entity should share **one Handler**. For example, all Creature Editors refer to the `CreatureHandlerService`, all Quest Editors refer to the `QuestHandlerService`, and so on...
+
+All Handlers classes extend the `HandlerService` abstract class.