Add convenience getters
This commit is contained in:
@@ -61,7 +61,7 @@ namespace OpenVulkano::Input
|
||||
return value;
|
||||
}
|
||||
|
||||
bool InputManager::GetButton(InputAction* action) const
|
||||
bool InputManager::GetButton(const InputAction* action) const
|
||||
{
|
||||
const std::vector<InputDevice*>& testDevices = action->GetDevices().empty() ? devices : action->GetDevices();
|
||||
for (const InputDevice* device : testDevices)
|
||||
@@ -75,7 +75,7 @@ namespace OpenVulkano::Input
|
||||
return false;
|
||||
}
|
||||
|
||||
bool InputManager::GetButtonDown(InputAction* action) const
|
||||
bool InputManager::GetButtonDown(const InputAction* action) const
|
||||
{
|
||||
const std::vector<InputDevice*>& testDevices = action->GetDevices().empty() ? devices : action->GetDevices();
|
||||
for (const InputDevice* device : testDevices)
|
||||
@@ -92,6 +92,23 @@ namespace OpenVulkano::Input
|
||||
return false;
|
||||
}
|
||||
|
||||
bool InputManager::GetButtonUp(const InputAction* action) const
|
||||
{
|
||||
const std::vector<InputDevice*>& testDevices = action->GetDevices().empty() ? devices : action->GetDevices();
|
||||
for (const InputDevice* device : testDevices)
|
||||
{
|
||||
for (const KeyBinding binding : action->GetKeys())
|
||||
{
|
||||
if (binding.key.GetInputDeviceType() != device->GetType())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
return device->GetButtonUp(binding.key);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool InputManager::GetButton(InputKey key) const
|
||||
{
|
||||
for(const InputDevice* device : devices)
|
||||
@@ -102,6 +119,26 @@ namespace OpenVulkano::Input
|
||||
return false;
|
||||
}
|
||||
|
||||
bool InputManager::GetButtonUp(InputKey key) const
|
||||
{
|
||||
for(const InputDevice* device : devices)
|
||||
{
|
||||
if (key.GetInputDeviceType() != device->GetType()) continue;
|
||||
return device->GetButtonUp(key);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool InputManager::GetButtonDown(InputKey key) const
|
||||
{
|
||||
for(const InputDevice* device : devices)
|
||||
{
|
||||
if (key.GetInputDeviceType() != device->GetType()) continue;
|
||||
return device->GetButtonDown(key);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
InputDevice* InputManager::GetDevice(InputDeviceType type) const
|
||||
{
|
||||
if (type == InputDeviceType::UNKNOWN)
|
||||
|
||||
@@ -35,16 +35,22 @@ namespace OpenVulkano::Input
|
||||
|
||||
[[nodiscard]] InputAction* GetAction(const std::string& actionName);
|
||||
|
||||
[[nodiscard]] float GetAxis(const InputAction& action) const { return GetAxis(&action); }
|
||||
[[nodiscard]] float GetAxis(const InputAction* action) const;
|
||||
|
||||
[[nodiscard]] float GetAxis(InputKey key) const;
|
||||
|
||||
[[nodiscard]] bool GetButton(InputAction* action) const;
|
||||
|
||||
[[nodiscard]] bool GetButtonDown(InputAction* action) const;
|
||||
|
||||
[[nodiscard]] bool GetButton(const InputAction& action) const { return GetButton(&action); }
|
||||
[[nodiscard]] bool GetButton(const InputAction* action) const;
|
||||
[[nodiscard]] bool GetButton(InputKey key) const;
|
||||
|
||||
[[nodiscard]] bool GetButtonUp(const InputAction& action) const { return GetButtonUp(&action); }
|
||||
[[nodiscard]] bool GetButtonUp(const InputAction* action) const;
|
||||
[[nodiscard]] bool GetButtonUp(InputKey key) const;
|
||||
|
||||
[[nodiscard]] bool GetButtonDown(const InputAction& action) const { return GetButtonDown(&action); }
|
||||
[[nodiscard]] bool GetButtonDown(const InputAction* action) const;
|
||||
[[nodiscard]] bool GetButtonDown(InputKey key) const;
|
||||
|
||||
[[nodiscard]] InputDevice* GetDevice(InputDeviceType type) const;
|
||||
|
||||
[[nodiscard]] std::vector<InputDevice*> GetDevices(InputDeviceType type) const;
|
||||
|
||||
Reference in New Issue
Block a user