mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-13 05:48:35 +00:00
Updated LUA Events (markdown)
parent
4fc54c01d0
commit
f92d75d55a
@ -1,22 +1,24 @@
|
||||
Within the LUA environment you can use events to react to certain things, such as the profile being updated or a key being pressed.
|
||||
Within the LUA environment you can use events to react to certain things, such as a device being updated or a key being pressed.
|
||||
|
||||
To use events you need to subscribe to them. You can subscribe to the same event more than once if you want.
|
||||
The examples below show how subscribing works.
|
||||
|
||||
## Overview
|
||||
* [ProfileUpdating](https://github.com/SpoinkyNL/Artemis/wiki/LUA-Events#profileupdating)
|
||||
* [DeviceUpdating](https://github.com/SpoinkyNL/Artemis/wiki/LUA-Events#deviceupdating)
|
||||
* [ProfileDrawing](https://github.com/SpoinkyNL/Artemis/wiki/LUA-Events#profiledrawing)
|
||||
* [KeyboardKeyPressed](https://github.com/SpoinkyNL/Artemis/wiki/LUA-Events#keyboardkeypressed)
|
||||
|
||||
## Events
|
||||
### ProfileUpdating
|
||||
Triggers whenever the profile is being updated. Use this event to process your own changes **before** every frame.
|
||||
If you want to change the way a layer is drawn, this is a good place to do so.
|
||||
### DeviceUpdating
|
||||
Triggers whenever a device is being updated. Use this event to process your own changes **before** every frame.
|
||||
If you want to change the way a layer is drawn, this is a good place to do so.
|
||||
**Note:** This event triggers for every device each frame. This means it can trigger 6 times, 25 times a second.
|
||||
#### Parameters
|
||||
```lua
|
||||
profile profile, profileUpdatingEventArgs eventArgs
|
||||
```
|
||||
#### Event Arguments
|
||||
- **DeviceType:** An string describing the device type (keyboard, mouse, headset, generic or mousemat).
|
||||
- **DataModel:** An object containing the current DataModel. *(TODO: DataModel explaination)*
|
||||
- **Preview:** A boolean indicating whether the draw was done as a preview (for the editor).
|
||||
|
||||
@ -24,24 +26,31 @@ profile profile, profileUpdatingEventArgs eventArgs
|
||||
```lua
|
||||
-- This function will be called after every profile update, before every profile draw.
|
||||
function updateHandler(profile, eventArgs)
|
||||
-- In this example we only want to update once per frame when the keyboard is updated
|
||||
if eventArgs.DeviceType != "keyboard" then
|
||||
return
|
||||
end
|
||||
|
||||
-- The Event Arguments are inside the eventArgs parameter
|
||||
-- In a Windows Profile, you could do this:
|
||||
-- In a Windows Profile, you could do this:
|
||||
local currentSong = eventArgs.DataModel.Spotify.SongName;
|
||||
end
|
||||
|
||||
-- Subscribe to the event AFTER defining the function which must be subscribed.
|
||||
Events.ProfileDrawing.add(updateHandler);
|
||||
Events.DeviceDrawing.add(updateHandler);
|
||||
```
|
||||
|
||||
---
|
||||
### ProfileDrawing
|
||||
Triggers whenever the profile is being drawn. Use this event to draw your own shapes **after** every frame.
|
||||
For more info on drawing, see the [Drawing](https://github.com/SpoinkyNL/Artemis/wiki/Drawing) page.
|
||||
### DeviceDrawing
|
||||
Triggers whenever there is being drawn to a device. Use this event to draw your own shapes **after** every frame.
|
||||
For more info on drawing, see the [Drawing](https://github.com/SpoinkyNL/Artemis/wiki/Drawing) page.
|
||||
**Note:** This event triggers for every device each frame. This means it can trigger 6 times, 25 times a second.
|
||||
#### Parameters
|
||||
```lua
|
||||
profile profile, profileDrawingEventArgs eventArgs
|
||||
```
|
||||
#### Event Arguments
|
||||
- **DeviceType:** An string describing the device type (keyboard, mouse, headset, generic or mousemat).
|
||||
- **DataModel:** An object containing the current DataModel. *(TODO: DataModel explaination)*
|
||||
- **Preview:** A boolean indicating whether the draw was done as a preview (for the editor).
|
||||
- **Drawing:** The [Drawing](https://github.com/SpoinkyNL/Artemis/wiki/Drawing) object for this frame. Use this to draw your own shapes.
|
||||
@ -50,13 +59,18 @@ profile profile, profileDrawingEventArgs eventArgs
|
||||
```lua
|
||||
-- This function will be called after every profile draw.
|
||||
function drawHandler(profile, eventArgs)
|
||||
-- In this example we only want to draw to the keyboard
|
||||
if eventArgs.DeviceType != "keyboard" then
|
||||
return
|
||||
end
|
||||
|
||||
-- The Event Arguments are inside the eventArgs parameter
|
||||
-- In a Windows Profile, you could do this:
|
||||
-- In a Windows Profile, you could do this:
|
||||
local currentSong = eventArgs.DataModel.Spotify.SongName;
|
||||
end
|
||||
|
||||
-- Subscribe to the event AFTER defining the function which must be subscribed.
|
||||
Events.ProfileDrawing.add(drawHandler);
|
||||
Events.DeviceDrawing.add(drawHandler);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user