1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-07-27 17:28:41 +00:00

TouchScreenGUI: Fix only 9 hotbar slots being usable (#13698)

Co-authored-by: Muhammad Rifqi Priyo Susanto <muhammadrifqipriyosusanto@gmail.com>
This commit is contained in:
Gregor Parzefall 2023-08-24 17:45:51 +02:00 committed by GitHub
parent 72ef90885d
commit 92b6ff4721
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 63 additions and 45 deletions

View file

@ -24,8 +24,9 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include <IGUIEnvironment.h>
#include <IrrlichtDevice.h>
#include <map>
#include <memory>
#include <optional>
#include <unordered_map>
#include <vector>
#include "client/tile.h"
@ -186,14 +187,16 @@ public:
float getMovementSpeed() { return m_joystick_speed; }
void step(float dtime);
void resetHud();
void registerHudItem(int index, const rect<s32> &rect);
inline void setUseCrosshair(bool use_crosshair) { m_draw_crosshair = use_crosshair; }
void setVisible(bool visible);
void hide();
void show();
void resetHotbarRects();
void registerHotbarRect(u16 index, const rect<s32> &rect);
std::optional<u16> getHotbarSelection();
private:
bool m_initialized = false;
IrrlichtDevice *m_device;
@ -203,10 +206,11 @@ private:
v2u32 m_screensize;
s32 button_size;
double m_touchscreen_threshold;
std::map<int, rect<s32>> m_hud_rects;
std::map<size_t, EKEY_CODE> m_hud_ids;
bool m_visible; // is the whole touch screen gui visible
std::unordered_map<u16, rect<s32>> m_hotbar_rects;
std::optional<u16> m_hotbar_selection = std::nullopt;
// value in degree
double m_camera_yaw_change = 0.0;
double m_camera_pitch = 0.0;
@ -272,8 +276,8 @@ private:
// handle a button event
void handleButtonEvent(touch_gui_button_id bID, size_t eventID, bool action);
// handle pressed hud buttons
bool isHUDButton(const SEvent &event);
// handle pressing hotbar items
bool isHotbarButton(const SEvent &event);
// do a right-click
bool doRightClick();
@ -285,7 +289,7 @@ private:
void applyJoystickStatus();
// array for saving last known position of a pointer
std::map<size_t, v2s32> m_pointer_pos;
std::unordered_map<size_t, v2s32> m_pointer_pos;
// settings bar
AutoHideButtonBar m_settings_bar;