aboutsummaryrefslogtreecommitdiff
path: root/textures/base
Commit message (Expand)AuthorAge
* Tweak default textures (#9237)Wuzzy2020-01-04
* Add 4 missing fallback/default textures (#8845)Wuzzy2019-10-23
* Add player sprite textures back into the engine as a fallback (#8823)Paramat2019-08-20
* Mirror 'sunrisebg' texture to fix chopped right edge (#7935)Paramat2018-12-04
* Re-master and improve touchscreen gui icons (#7931)stujones112018-12-03
* Android: Improve UI scaling on smaller high-density displays (#7834)stujones112018-11-18
* Android buttons: Inset 'rare controls', inset and resize 'gear icon' (#7792)Paramat2018-10-19
* Android: Add 'aux' button (#7477)Muhammad Rifqi Priyo Susanto2018-07-10
* Android: Resize jump and sneak buttons' touch target (#7498)Muhammad Rifqi Priyo Susanto2018-06-30
* Add screenshots to online content browserrubenwardy2018-05-20
* Android: Modify touch screen GUI's buttons (#7240)Muhammad Rifqi Priyo Susanto2018-04-18
* Android: Replace movement buttons with joystick (#7126)Muhammad Rifqi Priyo Susanto2018-04-10
* Add a refresh button to the serverlist (#6957)Tre2018-02-19
* Minimap: Leaner minimap arrow makes it easier to see the directionJens Rottmann2017-08-09
* GUI: Convert loading screen's progress bar to image (#5362)kilbith2017-03-10
* Add textures for air and ignore items (#5196)Wuzzy2017-02-10
* Serverlist: Add ping indicators (#5164)kilbith2017-02-03
* Halo: Highlight selected faceRealBadAngel2016-11-12
* Textures: New 'smoke puff' texture from TNT modparamat2016-10-04
* Main menu, lua_api.txt: Fix mod/texture pack screenshot size issuesWuzzy2016-07-27
* Textures: Replace menu background fallback dirt_bg.png with empty sky textureparamat2016-04-21
* Mainmenu: Unify favorite servers with main serverlistkilbith2016-04-20
* Minimap: revert change from RGBA to IndexedAuke Kok2016-04-11
* Minimap: "North" indicator arrow for circle minimapAuke Kok2016-04-08
* Update menu header imageJean-Patrick Guerrero2016-03-25
* Resize object_marker_red.png to 16x16ShadowNinja2016-02-28
* Minimap: show player markersRealBadAngel2016-02-19
* Cleanup selection mesh code, add shaders for halo and selection boxesRealBadAngel2016-02-08
* Android: Implement Autohiding button bars to cleanup screenSapier2015-12-18
* Compress textures and fontsMaksim Gamarnik2015-10-15
* Fix relief mapping issuesRealBadAngel2015-07-16
* Add minimap featureRealBadAngel2015-06-27
* Use frame instead of words 'no screenshot available'rubenwardy2015-06-24
* Add extra buttons to Android GUI. All icons are licensed by freepik.com under...Kodexky2014-12-30
* Regenerate server_flags_creative.png from XCFKahrl2014-12-21
* Fix background of creative icon (was black, now transparent)Kahrl2014-12-14
* Display serverlist flags as iconsKahrl2014-12-13
* Fix MSVC compiling warnings and remove an unused textureSmallJoker2014-12-12
* Change default halo.png for better visibility.RealBadAngel2014-09-19
* Node highlighting.RealBadAngel2014-09-17
* Add support for Android 2.3+sapier2014-06-29
* Fix regression dirt texture not beeing default in non cloud menusapier2014-06-14
* Shaders rework.RealBadAngel2013-12-03
* Make freetype usage configureable by a settingPilzAdam2013-08-04
* Replace C++ mainmenu by formspec powered onesapier2013-07-02
* Compress texturesDavid Gumberg2013-06-18
* Higher resolution menuheaderPilzAdam2013-05-25
* Add menu_header.png and remove old, unused texturesPilzAdam2013-05-20
* unkn own block -> unkn own nodekhonkhortisan2013-04-05
* Add cloud menu background by Krisi, configurable with the menu_clouds option.ShadowNinja2013-03-13
="hl opt">; #define MIN_DIG_TIME_MS 500 #define MAX_TOUCH_COUNT 64 #define BUTTON_REPEAT_DELAY 0.2f #define SETTINGS_BAR_Y_OFFSET 5 #define RARE_CONTROLS_BAR_Y_OFFSET 5 extern const char **touchgui_button_imagenames; extern const char **touchgui_joystick_imagenames; struct button_info { float repeatcounter; float repeatdelay; irr::EKEY_CODE keycode; std::vector<int> ids; IGUIButton *guibutton = nullptr; bool immediate_release; // 0: false, 1: (true) first texture, 2: (true) second texture int togglable = 0; std::vector<const char *> textures; }; class AutoHideButtonBar { public: AutoHideButtonBar(IrrlichtDevice *device, IEventReceiver *receiver); void init(ISimpleTextureSource *tsrc, const char *starter_img, int button_id, v2s32 UpperLeft, v2s32 LowerRight, autohide_button_bar_dir dir, float timeout); ~AutoHideButtonBar(); // add button to be shown void addButton(touch_gui_button_id id, const wchar_t *caption, const char *btn_image); // add toggle button to be shown void addToggleButton(touch_gui_button_id id, const wchar_t *caption, const char *btn_image_1, const char *btn_image_2); // detect settings bar button events bool isButton(const SEvent &event); // handle released hud buttons bool isReleaseButton(int eventID); // step handler void step(float dtime); // deactivate button bar void deactivate(); // hide the whole buttonbar void hide(); // unhide the buttonbar void show(); private: ISimpleTextureSource *m_texturesource = nullptr; irr::video::IVideoDriver *m_driver; IGUIEnvironment *m_guienv; IEventReceiver *m_receiver; button_info m_starter; std::vector<button_info *> m_buttons; v2s32 m_upper_left; v2s32 m_lower_right; // show settings bar bool m_active = false; bool m_visible = true; // settings bar timeout float m_timeout = 0.0f; float m_timeout_value = 3.0f; bool m_initialized = false; autohide_button_bar_dir m_dir = AHBB_Dir_Right_Left; }; class TouchScreenGUI { public: TouchScreenGUI(IrrlichtDevice *device, IEventReceiver *receiver); ~TouchScreenGUI(); void translateEvent(const SEvent &event); void init(ISimpleTextureSource *tsrc); double getYawChange() { double res = m_camera_yaw_change; m_camera_yaw_change = 0; return res; } double getPitch() { return m_camera_pitch; } /*! * Returns a line which describes what the player is pointing at. * The starting point and looking direction are significant, * the line should be scaled to match its length to the actual distance * the player can reach. * The line starts at the camera and ends on the camera's far plane. * The coordinates do not contain the camera offset. */ line3d<f32> getShootline() { return m_shootline; } void step(float dtime); void resetHud(); void registerHudItem(int index, const rect<s32> &rect); void Toggle(bool visible); void hide(); void show(); private: IrrlichtDevice *m_device; IGUIEnvironment *m_guienv; IEventReceiver *m_receiver; ISimpleTextureSource *m_texturesource; v2u32 m_screensize; double m_touchscreen_threshold; std::map<int, rect<s32>> m_hud_rects; std::map<int, irr::EKEY_CODE> m_hud_ids; bool m_visible; // is the gui visible // value in degree double m_camera_yaw_change = 0.0; double m_camera_pitch = 0.0; // forward, backward, left, right touch_gui_button_id m_joystick_names[5] = { forward_id, backward_id, left_id, right_id, special1_id}; bool m_joystick_status[5] = {false, false, false, false, false}; /*! * A line starting at the camera and pointing towards the * selected object. * The line ends on the camera's far plane. * The coordinates do not contain the camera offset. */ line3d<f32> m_shootline; int m_move_id = -1; bool m_move_has_really_moved = false; s64 m_move_downtime = 0; bool m_move_sent_as_mouse_event = false; v2s32 m_move_downlocation = v2s32(-10000, -10000); int m_joystick_id = -1; bool m_joystick_has_really_moved = false; bool m_fixed_joystick = false; bool m_joystick_triggers_special1 = false; button_info *m_joystick_btn_off = nullptr; button_info *m_joystick_btn_bg = nullptr; button_info *m_joystick_btn_center = nullptr; button_info m_buttons[after_last_element_id]; // gui button detection touch_gui_button_id getButtonID(s32 x, s32 y); // gui button by eventID touch_gui_button_id getButtonID(int eventID); // check if a button has changed void handleChangedButton(const SEvent &event); // initialize a button void initButton(touch_gui_button_id id, rect<s32> button_rect, std::wstring caption, bool immediate_release, float repeat_delay = BUTTON_REPEAT_DELAY); // initialize a joystick button button_info *initJoystickButton(touch_gui_button_id id, rect<s32> button_rect, int texture_id, bool visible = true); struct id_status { int id; int X; int Y; }; // vector to store known ids and their initial touch positions std::vector<id_status> m_known_ids; // handle a button event void handleButtonEvent(touch_gui_button_id bID, int eventID, bool action); // handle pressed hud buttons bool isHUDButton(const SEvent &event); // handle released hud buttons bool isReleaseHUDButton(int eventID); // handle double taps bool doubleTapDetection(); // handle release event void handleReleaseEvent(int evt_id); // apply joystick status void applyJoystickStatus(); // get size of regular gui control button int getGuiButtonSize(); // doubleclick detection variables struct key_event { unsigned int down_time; s32 x; s32 y; }; // array for saving last known position of a pointer v2s32 m_pointerpos[MAX_TOUCH_COUNT]; // array for doubletap detection key_event m_key_events[2]; // settings bar AutoHideButtonBar m_settingsbar; // rare controls bar AutoHideButtonBar m_rarecontrolsbar; }; extern TouchScreenGUI *g_touchscreengui;