InteractionMaster
The InteractionMaster controls the entire Interaction system. It's job is to take input and Pre/PostRender call and route them to individual Interactions and/or Viewports.
The stubs here in script are for just the Global Interactions as those are the only Interactions the IM routes directly too. A new stub is created in order to limit the number of C++ → Uscript switches.
Properties
The InteractionMaster's properties are declared as transient, i.e. they will not be included when a game is saved.
- Client Client
- Interaction BaseMenu (const)
- Holds a pointer to the base menu system.
- Interaction Console (const)
- Holds the special Interaction that acts as the Console.
- array<Interaction> GlobalInteractions
- Holds a listing of all global Interactions.
- bool bRequireRawJoystick
Methods
Native Function
- Travel (string URL)
- Setup a travel to a new map.
Events
- Interaction AddInteraction(string InteractionName, optional Player AttachTo)
- Adds an interaction. The interaction will be added as global interaction when the AttachTo parameter is left empty or explicitely set to None.
- RemoveInteraction (Interaction RemoveMe)
- Removes an Interaction.
- SetFocusTo (Interaction Inter, optional Player ViewportOwner)
- This function will cause a window to adjust it's position in it's array so that it processes input first and displays last.
- bool Process_KeyType (array<Interaction> InteractionArray, out EInputKey Key, optional string Unicode)
- bool Process_KeyEvent (array<Interaction> InteractionArray, out EInputKey Key, out EInputAction Action, float Delta)
- Calls the KeyType/KeyEvent function of each active interaction until one returns True. Returns whether the event was proccessed by one of the interactions.
- Process_PreRender (array<Interaction> InteractionArray, Canvas Canvas)
- Process_PostRender (array<Interaction> InteractionArray, Canvas Canvas)
- Render functions only occure on local interactions. The process the array in reverse order so that the objects that have focus are drawn last. Only visible interactions receive render calls.
- Process_Tick (array<Interaction> InteractionArray, float DeltaTime)
- Calls the Tick function of all interactions that require to be ticked.
- Process_Message (coerce string Msg, float MsgLife, array<Interaction> InteractionArray)
- The IM is responsible for sending Message events to all interactions.
- NotifyLevelChange (array<Interaction> InteractionArray)
- The IM is responsible for sending level change events to all interactions.
Melaneus: I don't think SetFocusTo() works. It looks like it ends up altering the local array of interactions it created instead of altering the real array of interactions that the player uses.