diff options
-rw-r--r-- | .github/workflows/builds.yml | 2 | ||||
-rw-r--r-- | README.md | 4 | ||||
-rw-r--r-- | extension/src/openvic-extension/utility/UITools.cpp | 21 | ||||
-rw-r--r-- | extension/src/openvic-extension/utility/Utilities.hpp | 12 | ||||
m--------- | godot-cpp | 0 |
5 files changed, 28 insertions, 11 deletions
diff --git a/.github/workflows/builds.yml b/.github/workflows/builds.yml index afc2d7e..c888b57 100644 --- a/.github/workflows/builds.yml +++ b/.github/workflows/builds.yml @@ -20,7 +20,7 @@ on: env: GODOT_BASE_DOWNLOAD_URL: https://github.com/godotengine/godot - GODOT_VERSION: 4.2.1 + GODOT_VERSION: 4.2.2 GODOT_VERSION_TYPE: stable OPENVIC_BASE_BRANCH: master @@ -5,7 +5,7 @@ Main Repo for the OpenVic Project For detailed instructions, view the Contributor Quickstart Guide [here](docs/contribution-quickstart-guide.md) ## System Requirements -* [Godot 4.2.1](https://github.com/godotengine/godot/releases/tag/4.2.1-stable) +* [Godot 4.2.2](https://github.com/godotengine/godot/releases/tag/4.2.2-stable) * [scons](https://scons.org/) > [!WARNING] @@ -24,7 +24,7 @@ See [Cloning](docs/contribution/cloning.md). ## [Godot Documentation](https://docs.godotengine.org/en/latest/) ## Build/Run Instructions -1. Install [Godot 4.2.1](https://github.com/godotengine/godot/releases/tag/4.2.1-stable) and [scons](https://scons.org/) for your system. +1. Install [Godot 4.2.2](https://github.com/godotengine/godot/releases/tag/4.2.2-stable) and [scons](https://scons.org/) for your system. 2. Run the command `git submodule update --init --recursive` to retrieve all related submodules. 3. Run `scons` in the project root, you should see a libopenvic file in `game/bin/openvic`. 4. Open with Godot 4, click import and navigate to the `game` directory. diff --git a/extension/src/openvic-extension/utility/UITools.cpp b/extension/src/openvic-extension/utility/UITools.cpp index 510c6da..6a9384b 100644 --- a/extension/src/openvic-extension/utility/UITools.cpp +++ b/extension/src/openvic-extension/utility/UITools.cpp @@ -128,6 +128,8 @@ static bool add_theme_stylebox(Control* control, StringName const& theme_name, R }; static bool generate_icon(generate_gui_args_t&& args) { + using namespace OpenVic::Utilities::literals; + GUI::Icon const& icon = static_cast<GUI::Icon const&>(args.element); const String icon_name = std_view_to_godot_string(icon.get_name()); @@ -274,7 +276,7 @@ static bool generate_icon(generate_gui_args_t&& args) { godot_texture_rect->set_texture(texture); // TODO - work out why this is needed Vector2 pos = godot_texture_rect->get_position(); - pos.x -= texture->get_width() / 2.0f; + pos.x -= texture->get_width() / 2.0_real; godot_texture_rect->set_position(pos); } else { UtilityFunctions::push_error("Failed to make GFXPieChartTexture for GUI icon ", icon_name); @@ -291,11 +293,11 @@ static bool generate_icon(generate_gui_args_t&& args) { } if (args.result != nullptr) { - const float rotation = icon.get_rotation(); - if (rotation != 0.0f) { + const real_t rotation = icon.get_rotation(); + if (rotation != 0.0_real) { args.result->set_position( args.result->get_position() - args.result->get_custom_minimum_size().height * Vector2 { - sin(rotation), cos(rotation) - 1.0f + Math::sin(rotation), Math::cos(rotation) - 1.0_real } ); args.result->set_rotation(-rotation); @@ -441,6 +443,8 @@ static bool generate_checkbox(generate_gui_args_t&& args) { } static bool generate_text(generate_gui_args_t&& args) { + using namespace OpenVic::Utilities::literals; + GUI::Text const& text = static_cast<GUI::Text const&>(args.element); const String text_name = std_view_to_godot_string(text.get_name()); @@ -451,7 +455,7 @@ static bool generate_text(generate_gui_args_t&& args) { godot_label->set_text(std_view_to_godot_string(text.get_text())); - static const Vector2 default_padding { 1.0f, 0.0f }; + static const Vector2 default_padding { 1.0_real, 0.0_real }; const Vector2 border_size = Utilities::to_godot_fvec2(text.get_border_size()) + default_padding; const Vector2 max_size = Utilities::to_godot_fvec2(text.get_max_size()); godot_label->set_position(godot_label->get_position() + border_size); @@ -553,7 +557,8 @@ static bool generate_placeholder(generate_gui_args_t&& args, Color colour) { } static bool generate_texteditbox(generate_gui_args_t&& args) { - return generate_placeholder<GUI::TextEditBox>(std::move(args), { 0.0f, 1.0f, 0.0f, 0.3f }); + using namespace OpenVic::Utilities::literals; + return generate_placeholder<GUI::TextEditBox>(std::move(args), { 0.0_real, 1.0_real, 0.0_real, 0.3_real }); } static bool generate_scrollbar(generate_gui_args_t&& args) { @@ -578,6 +583,8 @@ static bool generate_scrollbar(generate_gui_args_t&& args) { static bool generate_element(GUI::Element const* element, String const& name, AssetManager& asset_manager, Control*& result); static bool generate_window(generate_gui_args_t&& args) { + using namespace OpenVic::Utilities::literals; + GUI::Window const& window = static_cast<GUI::Window const&>(args.element); // TODO - moveable, fullscreen, dontRender (disable visibility?) @@ -588,7 +595,7 @@ static bool generate_window(generate_gui_args_t&& args) { ERR_FAIL_NULL_V_MSG(godot_panel, false, vformat("Failed to create Panel for GUI window %s", window_name)); godot_panel->set_custom_minimum_size(Utilities::to_godot_fvec2(window.get_size())); - godot_panel->set_self_modulate({ 1.0f, 1.0f, 1.0f, 0.0f }); + godot_panel->set_self_modulate({ 1.0_real, 1.0_real, 1.0_real, 0.0_real }); for (std::unique_ptr<GUI::Element> const& element : window.get_window_elements()) { Control* node = nullptr; diff --git a/extension/src/openvic-extension/utility/Utilities.hpp b/extension/src/openvic-extension/utility/Utilities.hpp index f7a0d67..15ff6b6 100644 --- a/extension/src/openvic-extension/utility/Utilities.hpp +++ b/extension/src/openvic-extension/utility/Utilities.hpp @@ -1,5 +1,7 @@ #pragma once +#include <concepts> + #include <godot_cpp/classes/font_file.hpp> #include <godot_cpp/classes/image_texture.hpp> @@ -35,6 +37,10 @@ namespace OpenVic::Utilities { godot::String float_to_formatted_string(float val, int32_t decimal_places); + constexpr real_t to_real_t(std::floating_point auto val) { + return static_cast<real_t>(val); + } + godot::String date_to_formatted_string(Date date); _FORCE_INLINE_ godot::Color to_godot_color(IsColour auto colour) { @@ -73,4 +79,8 @@ namespace OpenVic::Utilities { godot::Color const& colour, int32_t width, int32_t height, godot::Image::Format format = godot::Image::Format::FORMAT_RGBA8 ); -} + + namespace literals { + constexpr real_t operator""_real(long double val) { return to_real_t(val); } + } +}
\ No newline at end of file diff --git a/godot-cpp b/godot-cpp -Subproject 78ffea5b136f3178c31cddb28f6b963ceaa8942 +Subproject 98c143a48365f3f3bf5f99d6289a2cb25e6472d |