Eden Editor Event Handlers – Arma 3
(added Eden "init" EH) |
Lou Montana (talk | contribs) (Add missing event handlers: OnBeforeMissionPreview, OnEditableEntityAdded, OnEditableEntityRemoved, OnEditableEntityAttributeChanged, OnEntityDragged, OnEntityParentChanged, OnMissionAttributeChanged, OnMissionExportSP, OnMissionExportMP, OnMoveGridDecrease, OnMoveGridIncrease, OnRotateGridDecrease, OnRotateGridIncrease, OnToggleMapIDs) |
||
Line 52: | Line 52: | ||
* display3DEN: [[Display]] | * display3DEN: [[Display]] | ||
==== OnBeforeMissionPreview ==== | |||
{{Wiki|TODO}} | |||
==== OnConnectingStart ==== | ==== OnConnectingStart ==== | ||
Line 104: | Line 108: | ||
}]; | }]; | ||
</sqf> | </sqf> | ||
==== OnEditableEntityAdded ==== | |||
{{Wiki|TODO}} | |||
==== OnEditableEntityRemoved ==== | |||
{{Wiki|TODO}} | |||
==== OnEditableEntityAttributeChanged ==== | |||
{{Wiki|TODO}} | |||
==== OnEntityDragged ==== | |||
{{Wiki|TODO}} | |||
Line 121: | Line 145: | ||
* listPath: [[Array]] - UI tree path when clicked on entity in the entity list. | * listPath: [[Array]] - UI tree path when clicked on entity in the entity list. | ||
** Nil when clicked in the scene (we cannot use empty array, because that's a path to root item) | ** Nil when clicked in the scene (we cannot use empty array, because that's a path to root item) | ||
==== OnEntityParentChanged ==== | |||
{{Wiki|TODO}} | |||
Line 180: | Line 209: | ||
* messageID: [[Number]] | * messageID: [[Number]] | ||
==== OnMissionAttributeChanged ==== | |||
{{Wiki|TODO}} | |||
Line 186: | Line 220: | ||
<sqf> | <sqf> | ||
add3DENEventHandler ["OnMissionAutosave", { | add3DENEventHandler ["OnMissionAutosave", { | ||
// no arguments | |||
}]; | |||
</sqf> | |||
==== OnMissionExportSP ==== | |||
{{Wiki|TODO}} | |||
==== OnMissionExportMP ==== | |||
{{Wiki|TODO}} | |||
==== OnMissionListChange ==== | |||
When the current list of missions in the open/save mission dialog changes, i.e when first opened or a different folder is selected. | |||
<sqf> | |||
add3DENEventHandler ["OnMissionListChange", { | |||
// no arguments | // no arguments | ||
}]; | }]; | ||
Line 225: | Line 277: | ||
* entity: [[Object]], [[Group]], [[Array]] or [[String]] | * entity: [[Object]], [[Group]], [[Array]] or [[String]] | ||
* ID: [[Number]] | * ID: [[Number]] | ||
Line 270: | Line 313: | ||
}]; | }]; | ||
</sqf> | </sqf> | ||
==== OnMoveGridDecrease ==== | |||
{{Wiki|TODO}} | |||
==== OnMoveGridIncrease ==== | |||
{{Wiki|TODO}} | |||
Line 306: | Line 359: | ||
}]; | }]; | ||
</sqf> | </sqf> | ||
==== OnRotateGridDecrease ==== | |||
{{Wiki|TODO}} | |||
==== OnRotateGridIncrease ==== | |||
{{Wiki|TODO}} | |||
Line 312: | Line 375: | ||
<sqf> | <sqf> | ||
add3DENEventHandler ["OnRotateGridToggle", { | add3DENEventHandler ["OnRotateGridToggle", { | ||
// no arguments | // no arguments | ||
}]; | }]; | ||
Line 348: | Line 402: | ||
<sqf> | <sqf> | ||
add3DENEventHandler ["OnSearchEdit", { | add3DENEventHandler ["OnSearchEdit", { | ||
// no arguments | |||
}]; | |||
</sqf> | |||
==== OnSelectionChange ==== | |||
When entity selection changes. Use [[get3DENSelected]] to return currently selected entities. | |||
<sqf> | |||
add3DENEventHandler ["OnSelectionChange", { | |||
// no arguments | // no arguments | ||
}]; | }]; | ||
Line 387: | Line 450: | ||
}]; | }]; | ||
</sqf> | </sqf> | ||
==== OnToggleMapIDs ==== | |||
{{Wiki|TODO}} | |||
Revision as of 15:14, 27 November 2023
Editor Event Handlers
Eden Editor Event Handlers are added to the editor instance and will remain active for the duration of a session. Launching a preview will keep the event handlers, but closing the editor will erase all of them and you will have to add them again on the next Eden instance.
Related commands
Event Scripts
- See init3DEN.sqf
Config
Alternatively, you can define event handlers directly in the config. Use your custom section (mySection in the example) to prevent overriding handlers from other sources. Handlers defined here will automatically be added when Eden Editor is opened.
class Cfg3DEN
{
class EventHandlers
{
class mySection
{
onUndo = "hint 'Undo';";
// <handlerName> = <handlerExpression>
};
};
};
Events
Init
Is executed when Eden Editor display was created. Only happens when Eden Editor is opened for the first time during game session.
- display3DEN: Display
OnBeforeMissionPreview
OnConnectingStart
When Connecting operation is initiated.
- class: Config - connection config class
- from: Array of Eden Entities
OnConnectingEnd
When Connecting operation is terminated, no matter if it was confirmed or canceled.
- class: Config - connection config class
- from: Array of 3DEN entities
- to: Eden Entity (when connecting was successful) or nil (when connecting was terminated)
OnCopy
Fires when entities are copied.
Also fires when entities are cut, but unlike OnCut, OnCopy fires before the entities are deleted, meaning the entities are still accessible with get3DENSelected.
OnCut
Fires when entities are cut (after the entities have been deleted).
OnDeleteUnits
When entities are deleted.
OnEditableEntityAdded
OnEditableEntityRemoved
OnEditableEntityAttributeChanged
OnEntityDragged
OnEntityMenu
When Entity Context Menu is opened.
- position: Array - Position where user clicked to open the menu.
- Entity position when clicked on an entity.
- Empty array when clicked on something that doesn't have position (i.e. abstract folder in Edit list like BLUFOR, Trigger, etc.)
- entity: Eden Entity
- Nil when clicked on empty space
- listPath: Array - UI tree path when clicked on entity in the entity list.
- Nil when clicked in the scene (we cannot use empty array, because that's a path to root item)
OnEntityParentChanged
OnGridChange
When grid changes, either using Toolbar option, ot by scripting command set3DENGrid.
OnHistoryChange
When history changes.
OnMapClosed
When map is closed.
OnMapOpened
When map is opened.
OnMessage
Handler used for showing on-screen notifications, triggered by various range of events. Message IDs:
- 0 - Mission saved
- 1 - Mission autosaved
- 2 - Trying to move a character into full vehicle
- 3 - Moved character into enemy vehicle
- 4 - Trying to run mission without any player
- 5 - Mission exported to SP
- 6 - Mission exported to MP
- 7 - Attempting to delete a default layer
- messageID: Number
OnMissionAttributeChanged
OnMissionAutosave
When scenario is autosaved.
OnMissionExportSP
OnMissionExportMP
OnMissionListChange
When the current list of missions in the open/save mission dialog changes, i.e when first opened or a different folder is selected.
OnMissionLoad
When scenario is loaded.
OnMissionNew
When new scenario is started. Executed also when Eden is opened with an empty scenario.
OnMissionPreview
When scenario preview is started. Executed when the scenario is already loaded, so entities in it can be accessed.
- objects: Array
- groups: Array
- waypoints: Array
- markers: Array
Each array is in format:
[entity1, id1, entity2, id2, ..., entityN, idN]
OnMissionPreviewEnd
When preview ends and user returns back to Eden Editor.
OnMissionSave
When scenario is saved.
OnMissionSaveAs
When Save As action is triggered (i.e. Save window is opened, but the mission is not necessarily saved yet).
OnModeChange
When editing mode is changed (i.e. from Objects to Triggers).
OnMoveGridDecrease
OnMoveGridIncrease
OnMoveGridToggle
When translation grid is toggled on or off.
OnPaste
When entities are pasted.
OnPasteUnitOrig
When entities are pasted on their original positions.
OnRedo
When undo operation is redone.
OnRotateGridDecrease
OnRotateGridIncrease
OnRotateGridToggle
When rotation grid is toggled on or off.
OnScaleGridToggle
When area scaling grid is toggled on or off.
OnSearchCreate
When "SearchCreate" action is triggered (e.g. when pressing Ctrl+Shift+F).
OnSearchEdit
When "SearchEdit" action is triggered (e.g. when pressing Ctrl+F).
OnSelectionChange
When entity selection changes. Use get3DENSelected to return currently selected entities.
OnServerToggle
When server is created or destroyed from the preview.
OnSubmodeChange
When submode (e.g. BLUFOR or OFPOR for Objects, or Modules for Systems) changes.
OnSurfaceSnapToggle
When surface snap settings are changed.
OnTerrainNew
When new terrain is loaded. Executed also when Eden is opened.
OnToggleMapIDs
OnToggleMapTextures
When map textures are toggled on or off.
OnTogglePlaceEmptyVehicle
When the Place vehicles with crew is toggled on/off in Objects mode.
OnUndo
When an operation is undone.
OnVerticalToggle
When vertical mode settings are changed.
OnWidgetArea
When area widget is selected.
OnWidgetNone
When no widget is selected.
OnWidgetRotation
When rotation widget is selected.
OnWidgetScale
When scaling widget is selected.
OnWidgetToggle
When widget is toggled (i.e. browsing through all widget types)
OnWidgetTranslation
When translation widget is selected.
OnWorkspacePartSwitch
When scenario phase is selected.
Object Event Handlers
Editor specific event handlers can be also added directly to objects, using addEventHandler command.
Related commands
Events
AttributesChanged3DEN
Fires when object's attributes are changed. Can happen when:
- Changing the attributes by dragging, rotating or using one of the widgets
- Changing and saving the attributes from within the attributes window
- When attributes get changed using scripting commands such as set3DENAttributes or set3DENAttribute
Unlike Dragged3DEN this event handler will not fire continuously but only when the attributes were changed and saved
- object: Object - affected object
ConnectionChanged3DEN
When a connection is added or removed from an object.
- object: Object - affected object
RegisteredToWorld3DEN
When object is re-added to the scenario after undoing a delete operation.
- object: Object - affected object
UnregisteredFromWorld3DEN
When object is removed from the scenario. That happens when you delete it, but also when you undo placement operation.
- object: Object - affected object
Dragged3DEN
When object is dragged and/or rotated. Also triggers when widgets are used to manipulate position and orientation. Does not trigger when the object's size is changed.
- object: Object - affected object