aboutsummaryrefslogtreecommitdiff
path: root/extension
diff options
context:
space:
mode:
Diffstat (limited to 'extension')
-rw-r--r--extension/src/openvic-extension/singletons/MapItemSingleton.cpp25
-rw-r--r--extension/src/openvic-extension/singletons/MapItemSingleton.hpp1
2 files changed, 20 insertions, 6 deletions
diff --git a/extension/src/openvic-extension/singletons/MapItemSingleton.cpp b/extension/src/openvic-extension/singletons/MapItemSingleton.cpp
index 67af22e..d62e0fd 100644
--- a/extension/src/openvic-extension/singletons/MapItemSingleton.cpp
+++ b/extension/src/openvic-extension/singletons/MapItemSingleton.cpp
@@ -18,6 +18,7 @@
#include "godot_cpp/variant/typed_array.hpp"
#include "godot_cpp/variant/vector2.hpp"
#include "openvic-simulation/interface/GFXObject.hpp"
+#include "openvic-simulation/types/Vector.hpp"
#include "openvic-simulation/utility/Logger.hpp"
using namespace godot;
@@ -32,7 +33,7 @@ void MapItemSingleton::_bind_methods() {
//OV_BIND_METHOD(MapItemSingleton::get_billboard, {"name"});
OV_BIND_METHOD(MapItemSingleton::get_billboards);
OV_BIND_METHOD(MapItemSingleton::get_province_positions);
-
+ OV_BIND_METHOD(MapItemSingleton::get_province_count);
}
MapItemSingleton* MapItemSingleton::get_singleton() {
@@ -121,9 +122,15 @@ TypedArray<Dictionary> MapItemSingleton::get_billboards(){
return ret;
}
+int MapItemSingleton::get_province_count(){
+ GameSingleton const* game_singleton = GameSingleton::get_singleton();
+ ERR_FAIL_NULL_V(game_singleton, 0);
+ return game_singleton->get_definition_manager().get_map_definition().get_province_definition_count();
+}
+
PackedVector2Array MapItemSingleton::get_province_positions(){
GameSingleton const* game_singleton = GameSingleton::get_singleton();
- ERR_FAIL_NULL_V(game_singleton, {});
+ ERR_FAIL_NULL_V(game_singleton, PackedVector2Array());
/*std::vector<std::string_view> prov_identifiers =
game_singleton->get_definition_manager().get_map_definition().
@@ -136,11 +143,17 @@ PackedVector2Array MapItemSingleton::get_province_positions(){
Logger::info("prov_count ", prov_count);
for(int i = 0; i < prov_count; i++){
- ProvinceDefinition const* prov = game_singleton->get_definition_manager().get_map_definition().get_province_definition_by_index(i);
- billboard_pos.push_back(Vector2(prov->get_city_position().x,prov->get_city_position().y));
- if(i % 4){
+ ProvinceDefinition const* prov = game_singleton->get_definition_manager()
+ .get_map_definition().get_province_definition_by_index(i+1);
+
+ fvec2_t city_pos = prov->get_city_position();
+ Vector2 pos = Utilities::to_godot_fvec2(city_pos) / game_singleton->get_map_dims();
+ billboard_pos.push_back(pos);
+ /*if(i % 4){
Logger::info("prov_x ", prov->get_city_position().x);
- }
+ }*/
+
+ //province_dict[position_key] = Utilities::to_godot_fvec2(province.get_text_position()) / get_map_dims();
}
return billboard_pos;
diff --git a/extension/src/openvic-extension/singletons/MapItemSingleton.hpp b/extension/src/openvic-extension/singletons/MapItemSingleton.hpp
index 5b10446..fd89119 100644
--- a/extension/src/openvic-extension/singletons/MapItemSingleton.hpp
+++ b/extension/src/openvic-extension/singletons/MapItemSingleton.hpp
@@ -28,6 +28,7 @@ namespace OpenVic {
GFX::Billboard const* get_billboard(std::string_view name, bool error_on_fail = true) const;
bool add_billboard_dict(std::string_view name, godot::TypedArray<godot::Dictionary>& billboard_dict_array);
godot::TypedArray<godot::Dictionary> get_billboards();
+ int get_province_count();
godot::PackedVector2Array get_province_positions();
};