/
BirdLeon
/
ROBLOX2016
Обзор
Документация
Войти
/
BirdLeon
/
ROBLOX2016
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
App/include/util/UserInputBase.h
76 строк
2 KB
PatoFlamejanteTV
full source code
19 дек 2024, 19:11
19 дек 2024, 19:11
05db15d
Код
Авторство
О чём код?
#pragma once #include "Util/KeyCode.h" #include "Util/G3DCore.h" #include "GfxBase/TextureProxyBase.h" #include "Util/ContentId.h" #include "Util/TextureId.h" #include "Util/Object.h" #include "GfxBase/Adorn.h" LOGGROUP(UserInputProfile) namespace RBX { class Adorn; class NavKeys; // TODO: Rename HardwareDevice or something class RBXBaseClass UserInputBase { private: ContentId currentCursorId; TextureProxyBaseRef currentCursor; TextureProxyBaseRef fallbackCursor; rbx::signals::scoped_connection unbindResourceSignal; void onUnbindResourceSignal(); protected: virtual Vector2 getCursorPosition() = 0; virtual TextureProxyBaseRef getGameCursor(Adorn* adorn); TextureProxyBaseRef getCurrentCursor() { return currentCursor; } TextureProxyBaseRef getFallbackCursor() { return fallbackCursor; } public: UserInputBase(); ~UserInputBase() {} rbx::signal<void()> cursorIdChangedSignal; // This function is purely intended for debugging and diagnostics Vector2 getCursorPositionForDebugging() { return getCursorPosition(); } virtual void removeJobs() {} ///////////////////////////////////////////////////////////////////// // Mouse Wrapping // virtual void centerCursor() = 0; ///////////////////////////////////////////////////////////////////// // Real-time Key Handling // virtual bool keyDown(KeyCode code) const = 0; void getNavKeys(NavKeys& navKeys,const bool shouldSuppressNavKeys) const; bool altKeyDown() const {return keyDown(SDLK_RALT) || keyDown(SDLK_LALT);} bool shiftKeyDown() const {return keyDown(SDLK_RSHIFT) || keyDown(SDLK_LSHIFT);} bool ctrlKeyDown() const {return keyDown(SDLK_RCTRL) || keyDown(SDLK_LCTRL);} // allows Gui Key buttons to "press" keys virtual void setKeyState(RBX::KeyCode code, RBX::ModCode modCode, char modifiedKey, bool isDown) = 0; ///////////////////////////////////////////////////////////////////// // Cursor Handling // ContentId getCurrentCursorId() { return currentCursorId; } virtual bool setCursorId(RBX::Adorn *adorn, const RBX::TextureId& id); virtual void renderGameCursor(Adorn* adorn); }; } // namespace