Commit bb1e24f5 authored by Filip Vincze's avatar Filip Vincze
Browse files

add new elements to tutorial

parent 31900606
Loading
Loading
Loading
Loading
Compare 602fd9d6 to 407ef567
Original line number Diff line number Diff line
Subproject commit 602fd9d634844252d007966d436b2573c5f69313
Subproject commit 407ef567f261201bac66ba52ff9dd28bb383e347
Compare 88ea3680 to 58a3390d
Original line number Diff line number Diff line
Subproject commit 88ea36809298d64a19cfc4573362580f599b8929
Subproject commit 58a3390d206e975d982fadead93821f3c2b6e856
+4 −4
Original line number Diff line number Diff line
@@ -19,13 +19,13 @@ struct App : public com::Runner
    App();
    ~App() override;

    void init_example_01(gfx::Camera* camera, gfx::BufferHandler* buffer_handler);
    void init_example_02(gfx::Camera* camera, gfx::BufferHandler* buffer_handler);
    void init_example_03(gfx::Camera* camera, gfx::BufferHandler* buffer_handler);
    void init_example_04(gfx::Camera* camera, gfx::BufferHandler* buffer_handler);
    void init_menu_example(gfx::Camera* camera, gfx::BufferHandler* buffer_handler);
    void init_object_example(gfx::Camera* camera, gfx::BufferHandler* buffer_handler);

    UiElement* create_list_box_text_and_slider_item(ListBox* list_box, std::string text, BufferHandler* buffer_handler);
    UiElement* create_list_box_text_and_text_edit_item(ListBox* list_box, std::string text, BufferHandler* buffer_handler);
    UiElement* create_list_box_check_box_and_text_item(ListBox* list_box, std::string text, BufferHandler* buffer_handler,
        Material* pressed_material, Material* enabled_material);

    void next_round() override;

+4 −0
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@
#   include <com/frame.hpp>

#include "examples.hpp"
#include "managers/damage_manager.hpp"
#include "managers/exit_manager.hpp"
#include "managers/menu_manager.hpp"

@@ -20,6 +21,7 @@ struct Index final
    Examples* examples() const { return m_examples; }
    MenuManager* menu_manager() const { return m_menu_manager; }
    ExitManager* exit_manager() const { return m_exit_manager; }
    DamageManager* damage_manager() const { return m_damage_manager; }

private:
    Index();
@@ -34,6 +36,7 @@ private:
    MenuManager* m_menu_manager;
    Examples* m_examples;
    ExitManager* m_exit_manager;
    DamageManager* m_damage_manager;
};

inline Index const& index() { return Index::instance(); }
@@ -44,6 +47,7 @@ inline com::Frame* grid_frame() { return index().grid_frame(); }
inline Examples* examples() { return index().examples(); }
inline MenuManager* menu_manager() { return index().menu_manager(); }
inline ExitManager* exit_manager() { return index().exit_manager(); }
inline DamageManager* damage_manager() { return index().damage_manager(); }

}

+32 −0
Original line number Diff line number Diff line
# ifndef DAMAGE_MANAGER_INCLUDED
# define DAMAGE_MANAGER_INCLUDED
#include "gfx/ui/handlers.hpp"
#include "gfx/ui/ui_element.hpp"

namespace app {
    struct DamageManager : gfx::UiEventHandler {
        static inline std::string self_name() { return "damage_manager"; }

        DamageManager();
        ~DamageManager();

        void on_click(gfx::UiElement* element) override;

        void assign_button(gfx::Button* button) { this->damage_button = button; button->register_handler(this); }
        void assign_health_bar(gfx::ProgressBar* health_bar) { this->enemy_health_bar = health_bar; }
        void assign_object_to_damage(com::Folder* object) { this->object = object; }
        void assign_win_text(gfx::StaticText* win_text) {this->win_text = win_text; }
        bool is_object_destroyed() const { return enemy_current_health <= 0; }

    private:
        gfx::Button* damage_button = nullptr;
        gfx::ProgressBar* enemy_health_bar = nullptr;
        com::Folder* object = nullptr;
        gfx::StaticText* win_text = nullptr;
        size_t enemy_max_health = 200;
        size_t enemy_current_health = 200;
        size_t damage = 20;
    };
}

# endif
Loading