Added AsloEngine 0.9.0 to Repository

This commit is contained in:
Aslan2142 2019-08-29 18:42:28 +02:00
parent d017dd84b3
commit 881e6c70f2
60 changed files with 2648 additions and 0 deletions

View file

@ -0,0 +1,24 @@
#pragma once
#include "text_only_button.hpp"
#include "../../headers/spriteobject.hpp"
namespace asloengine
{
class Button : public TextOnlyButton, public SpriteObject
{
public:
float text_vertical_offset;
Button(sf::String _name, sf::String _text, sf::Font& _font, sf::Texture& _texture, uint _text_size = 30);
~Button();
virtual void draw() override;
virtual void on_main_property_update() override;
virtual void on_start() override;
};
}

View file

@ -0,0 +1,34 @@
#pragma once
#include "../../headers/gameobject.hpp"
#include "fmt/format.h"
namespace asloengine
{
class FramerateCounter : public GameObject
{
public:
std::string prefix;
std::string postfix;
std::shared_ptr<sf::Text> target_text;
aslosignals::TypeSignal<sf::String> signal_on_counter_updated;
FramerateCounter(sf::String _name, uint _update_interval = 5);
FramerateCounter(sf::String _name, std::shared_ptr<sf::Text> _target_text, uint _update_interval = 5);
~FramerateCounter();
virtual void set_update_interval(uint _update_interval);
virtual uint get_update_interval() const;
virtual void on_start() override;
virtual void on_update(float delta_time) override;
protected:
uint counter;
uint update_interval;
float *values;
};
}

View file

@ -0,0 +1,32 @@
#pragma once
#include "../../headers/gameobject.hpp"
namespace asloengine
{
class GridContainer : public GameObject
{
public:
std::vector<GameObject *> objects;
bool needs_clean = false;
sf::Vector2u grid_size;
sf::Vector2f cell_size;
GridContainer(sf::String _name, sf::Vector2u _grid_size = sf::Vector2u(0, 0), sf::Vector2f _cell_size = sf::Vector2f(0, 0));
virtual ~GridContainer() override;
virtual void update_positions();
virtual void add_object(GameObject *object);
virtual void remove_object(int index);
virtual void draw() override;
virtual void on_start() override;
virtual void on_update(float delta_time) override;
virtual void clean();
virtual void on_destroy() override;
};
}

View file

@ -0,0 +1,24 @@
#pragma once
#include "text_only_input_field.hpp"
#include "../../headers/spriteobject.hpp"
namespace asloengine
{
class InputField : public TextOnlyInputField, public SpriteObject
{
public:
float text_vertical_offset;
InputField(sf::String _name, sf::Vector2f _size, sf::Font& _font, sf::Texture& _texture, uint _text_size = 30, int _max_length = 999, sf::String _default_text = "");
~InputField();
virtual void draw() override;
virtual void on_main_property_update() override;
virtual void on_start() override;
};
}

View file

@ -0,0 +1,29 @@
#pragma once
#include "../../headers/scene.hpp"
#include "text_only_button.hpp"
#include "button.hpp"
#include "text_only_input_field.hpp"
#include "input_field.hpp"
#include "framerate_counter.hpp"
#include "scroll_view.hpp"
#include "grid_container.hpp"
namespace asloengine
{
class SceneDefault : public Scene
{
public:
SceneDefault();
sf::Texture button_texture;
sf::Font button_font;
void on_load() override;
void on_update(float delta_time) override;
};
}

View file

@ -0,0 +1,38 @@
#pragma once
#include <vector>
#include "../../headers/gameobject.hpp"
#include "../../headers/clickable.hpp"
#include "../../headers/mouse.hpp"
namespace asloengine
{
class ScrollView : public GameObject, public virtual Clickable
{
public:
std::vector<GameObject *> objects;
bool needs_clean = false;
sf::Vector2f size;
float scroll_amount;
float max_scroll_amount;
float scroll_speed;
ScrollView(sf::String _name, sf::Vector2f _size, float _max_scroll_amount, float _scroll_speed = 25);
virtual ~ScrollView() override;
virtual void set_rotation(float _rotation);
virtual void draw() override;
virtual void on_start() override;
virtual void on_update(float delta_time) override;
virtual void clean();
virtual void on_destroy() override;
protected:
virtual sf::View change_view();
};
}

View file

@ -0,0 +1,25 @@
#pragma once
#include "../../headers/textobject.hpp"
#include "../../headers/clickable.hpp"
namespace asloengine
{
class TextOnlyButton : public TextObject, public Clickable
{
public:
aslosignals::Signal signal_on_clicked;
TextOnlyButton(sf::String _name, sf::String _text, sf::Font& _font, uint _text_size = 30);
virtual ~TextOnlyButton() override;
virtual void draw() override;
virtual void on_main_property_update() override;
virtual void on_start() override;
virtual void on_update(float delta_time) override;
};
}

View file

@ -0,0 +1,33 @@
#pragma once
#include "../../headers/textobject.hpp"
#include "../../headers/clickable.hpp"
#include "../../headers/keyboard.hpp"
namespace asloengine
{
class TextOnlyInputField : public TextObject, public Clickable
{
public:
sf::Vector2f size;
int max_length;
bool crop = true;
bool editable = true;
bool editing = false;
aslosignals::TypeSignal<sf::String, sf::Uint32> signal_on_text_changed;
aslosignals::Signal signal_on_focus;
aslosignals::Signal signal_on_lost_focus;
TextOnlyInputField(sf::String _name, sf::Vector2f _size, sf::Font& _font, uint _text_size = 30, int _max_length = 999, sf::String _default_text = "");
virtual ~TextOnlyInputField() override;
virtual void draw() override;
virtual void on_main_property_update() override;
virtual void on_start() override;
virtual void on_update(float delta_time) override;
};
}