-- 这里需要和引擎里的PublicEnum.h的EventType对齐。
-- 因为Enum是自动从0开始逐个加一的，所以这里先利用Lua的数组隐式生成下标机制，和C++的Enum对齐。
-- 但是这个是id为Key，名字为value，和C++的Enum是反的，所以后面需要转换一下
EngineEventType = {}
EngineEventType_NumToStr = 
{
    "GAME_START",

    "WINDOW_RESIZE",

    "UPDATE_MOUSE_POS",
    "UPDATE_MOUSE_SCROLL",

    "MOUSE_BUTTON_1_PRESS",
    "MOUSE_BUTTON_1_DOWN",
    "MOUSE_BUTTON_1_UP",
    "MOUSE_BUTTON_2_PRESS",
    "MOUSE_BUTTON_2_DOWN",
    "MOUSE_BUTTON_2_UP",

    "KEY_0_PRESS",
    "KEY_0_DOWN",
    "KEY_0_UP",
    "KEY_1_PRESS",
    "KEY_1_DOWN",
    "KEY_1_UP",
    "KEY_2_PRESS",
    "KEY_2_DOWN",
    "KEY_2_UP",
    "KEY_3_PRESS",
    "KEY_3_DOWN",
    "KEY_3_UP",
    "KEY_4_PRESS",
    "KEY_4_DOWN",
    "KEY_4_UP",
    "KEY_5_PRESS",
    "KEY_5_DOWN",
    "KEY_5_UP",
    "KEY_6_PRESS",
    "KEY_6_DOWN",
    "KEY_6_UP",
    "KEY_7_PRESS",
    "KEY_7_DOWN",
    "KEY_7_UP",
    "KEY_8_PRESS",
    "KEY_8_DOWN",
    "KEY_8_UP",
    "KEY_9_PRESS",
    "KEY_9_DOWN",
    "KEY_9_UP",

    "KEY_A_PRESS",
    "KEY_A_DOWN",
    "KEY_A_UP",
    "KEY_B_PRESS",
    "KEY_B_DOWN",
    "KEY_B_UP",
    "KEY_C_PRESS",
    "KEY_C_DOWN",
    "KEY_C_UP",
    "KEY_D_PRESS",
    "KEY_D_DOWN",
    "KEY_D_UP",
    "KEY_E_PRESS",
    "KEY_E_DOWN",
    "KEY_E_UP",
    "KEY_F_PRESS",
    "KEY_F_DOWN",
    "KEY_F_UP",
    "KEY_G_PRESS",
    "KEY_G_DOWN",
    "KEY_G_UP",
    "KEY_H_PRESS",
    "KEY_H_DOWN",
    "KEY_H_UP",
    "KEY_I_PRESS",
    "KEY_I_DOWN",
    "KEY_I_UP",
    "KEY_J_PRESS",
    "KEY_J_DOWN",
    "KEY_J_UP",
    "KEY_K_PRESS",
    "KEY_K_DOWN",
    "KEY_K_UP",
    "KEY_L_PRESS",
    "KEY_L_DOWN",
    "KEY_L_UP",
    "KEY_M_PRESS",
    "KEY_M_DOWN",
    "KEY_M_UP",
    "KEY_N_PRESS",
    "KEY_N_DOWN",
    "KEY_N_UP",
    "KEY_O_PRESS",
    "KEY_O_DOWN",
    "KEY_O_UP",
    "KEY_P_PRESS",
    "KEY_P_DOWN",
    "KEY_P_UP",
    "KEY_Q_PRESS",
    "KEY_Q_DOWN",
    "KEY_Q_UP",
    "KEY_R_PRESS",
    "KEY_R_DOWN",
    "KEY_R_UP",
    "KEY_S_PRESS",
    "KEY_S_DOWN",
    "KEY_S_UP",
    "KEY_T_PRESS",
    "KEY_T_DOWN",
    "KEY_T_UP",
    "KEY_U_PRESS",
    "KEY_U_DOWN",
    "KEY_U_UP",
    "KEY_V_PRESS",
    "KEY_V_DOWN",
    "KEY_V_UP",
    "KEY_W_PRESS",
    "KEY_W_DOWN",
    "KEY_W_UP",
    "KEY_X_PRESS",
    "KEY_X_DOWN",
    "KEY_X_UP",
    "KEY_Y_PRESS",
    "KEY_Y_DOWN",
    "KEY_Y_UP",
    "KEY_Z_PRESS",
    "KEY_Z_DOWN",
    "KEY_Z_UP",

    "KEY_SPACE_PRESS",
    "KEY_SPACE_DOWN",
    "KEY_SPACE_UP",
    "KEY_ESCAPE_PRESS",
    "KEY_ESCAPE_DOWN",
    "KEY_ESCAPE_UP",
    "KEY_LSHIFT_PRESS",
    "KEY_LSHIFT_DOWN",
    "KEY_LSHIFT_UP",
    "KEY_RSHIFT_PRESS",
    "KEY_RSHIFT_DOWN",
    "KEY_RSHIFT_UP",

    "KEY_RIGHT_PRESS",
    "KEY_RIGHT_DOWN",
    "KEY_RIGHT_UP",
    "KEY_LEFT_PRESS",
    "KEY_LEFT_DOWN",
    "KEY_LEFT_UP",
    "KEY_DOWN_PRESS",
    "KEY_DOWN_DOWN",
    "KEY_DOWN_UP",
    "KEY_UP_PRESS",
    "KEY_UP_DOWN",
    "KEY_UP_UP",

    "TOUCH_CLICK",
}

-- 这里再生成字符串为key，id为value的table，和C++的Enum对齐。
for i, key in ipairs(EngineEventType_NumToStr) do
    EngineEventType[key] = i
end