LeviLamina
Loading...
Searching...
No Matches
KeyInputEvent.h
1#pragma once
2
3#include "ll/api/event/Cancellable.h"
4#include "ll/api/event/input/InputEvent.h"
5
6class HIDController;
7
8namespace ll::event::inline input {
9
10class KeyInputEvent final : public Cancellable<InputEvent> {
11public:
12 enum class Action : int {
13 Up = 0,
14 Down = 1,
15 };
16
17private:
18 HIDController& mController;
19 int& mKeyCode;
20 Action mAction;
21
22public:
23 constexpr explicit KeyInputEvent(HIDController& controller, int& keyCode, Action action)
24 : Cancellable(),
25 mController(controller),
26 mKeyCode(keyCode),
27 mAction(action) {}
28
29 LLAPI void serialize(CompoundTag&) const override;
30 LLAPI void deserialize(CompoundTag const&) override;
31
32 LLNDAPI HIDController& controller() const;
33 LLNDAPI int& keyCode() const;
34 LLNDAPI Action action() const;
35 LLNDAPI bool isDown() const;
36};
37} // namespace ll::event::inline input
Definition CompoundTag.h:23
Definition HIDController.h:5