From 536c927613948f884ca441b9045afe89c45e0440 Mon Sep 17 00:00:00 2001 From: Lorenzo Torres Date: Fri, 28 Mar 2025 19:53:56 +0100 Subject: Made ECS a separate module and implemented basic input handling. --- src/Input.zig | 133 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 src/Input.zig (limited to 'src/Input.zig') diff --git a/src/Input.zig b/src/Input.zig new file mode 100644 index 0000000..854d54a --- /dev/null +++ b/src/Input.zig @@ -0,0 +1,133 @@ +const std = @import("std"); +const Allocator = std.mem.Allocator; + +const Input = @This(); + +pub const KeyCode = enum(u32) { + space = 32, + apostrophe = 39, + comma = 44, + minus = 45, + period = 46, + slash = 47, + @"0" = 48, + @"1" = 49, + @"2" = 50, + @"3" = 51, + @"4" = 52, + @"5" = 53, + @"6" = 54, + @"7" = 55, + @"8" = 56, + @"9" = 57, + semicolon = 59, + equal = 61, + a = 65, + b = 66, + c = 67, + d = 68, + e = 69, + f = 70, + g = 71, + h = 72, + i = 73, + j = 74, + k = 75, + l = 76, + m = 77, + n = 78, + o = 79, + p = 80, + q = 81, + r = 82, + s = 83, + t = 84, + u = 85, + v = 86, + w = 87, + x = 88, + y = 89, + z = 90, + left_bracket = 91, + backslash = 92, + right_bracket = 93, + grave_accent = 96, + world_1 = 161, + world_2 = 162, + escape = 256, + enter = 257, + tab = 258, + backspace = 259, + insert = 260, + delete = 261, + right = 262, + left = 263, + down = 264, + up = 265, + page_up = 266, + page_down = 267, + home = 268, + end = 269, + caps_lock = 280, + scroll_lock = 281, + num_lock = 282, + print_screen = 283, + pause = 284, + f1 = 290, + f2 = 291, + f3 = 292, + f4 = 293, + f5 = 294, + f6 = 295, + f7 = 296, + f8 = 297, + f9 = 298, + f10 = 299, + f11 = 300, + f12 = 301, + f13 = 302, + f14 = 303, + f15 = 304, + f16 = 305, + f17 = 306, + f18 = 307, + f19 = 308, + f20 = 309, + f21 = 310, + f22 = 311, + f23 = 312, + f24 = 313, + f25 = 314, + kp_0 = 320, + kp_1 = 321, + kp_2 = 322, + kp_3 = 323, + kp_4 = 324, + kp_5 = 325, + kp_6 = 326, + kp_7 = 327, + kp_8 = 328, + kp_9 = 329, + kp_decimal = 330, + kp_divide = 331, + kp_multiply = 332, + kp_subtract = 333, + kp_add = 334, + kp_enter = 335, + kp_equal = 336, + left_shift = 340, + left_control = 341, + left_alt = 342, + left_super = 343, + right_shift = 344, + right_control = 345, + right_alt = 346, + right_super = 347, + menu = 348, +}; + +key_pressed: [@intFromEnum(KeyCode.menu)]bool, + +pub fn isKeyDown(self: Input, key: KeyCode) bool { + return self.key_pressed[@intFromEnum(key)]; +} -- cgit v1.2.3