19#include <fmt/format.h>
27#include <entt/entt.hpp>
45 std::map<std::string, entt::entity>
goods;
47 std::map<std::string, entt::entity>
recipes;
50 std::map<std::string, entt::entity>
fields;
52 std::map<std::string, entt::entity>
planets;
56 std::map<std::string, entt::entity>
cities;
69 std::unique_ptr<cqsp::core::util::IRandom>
random;
78 std::vector<Node>
Convert(
const std::vector<entt::entity>&
entities)
const;
81 template <
typename... Components>
83 return this->
template view<Components...>() |
NodeTransform();
85 template <
typename... Components>
87 return this->
template view<Components...>() |
NodeTransform();
89 template <
typename... Components,
typename... Exclude>
90 auto nodes(entt::exclude_t<Exclude...> exclude) {
91 return this->
template view<Components...>(exclude) |
NodeTransform();
93 template <
typename... Components,
typename... Exclude>
94 auto nodes(entt::exclude_t<Exclude...> exclude)
const {
95 return this->
template view<Components...>(exclude) |
NodeTransform();
104class Node :
public entt::handle {
107 Node(
const entt::handle handle,
const entt::entity entity);
110 std::vector<Node> Convert(
const std::vector<entt::entity>&
entities)
const;
111 std::set<Node> Convert(
const std::set<entt::entity>&
entities)
const;
112 Node Convert(
const entt::entity entity)
const;
115 friend bool operator==(
const Node& lhs,
const entt::null_t&) {
return lhs.entity() == entt::null; }
116 friend bool operator==(
const entt::null_t&,
const Node& rhs) {
return rhs.entity() == entt::null; }
117 friend bool operator!=(
const Node& lhs,
const entt::null_t&) {
return lhs.entity() != entt::null; }
118 friend bool operator!=(
const entt::null_t&,
const Node& rhs) {
return rhs.entity() != entt::null; }
125 template <
typename FormatContext>
126 constexpr auto format(entt::entity entity, FormatContext& ctx)
const {
127 return formatter<std::string>::format(std::to_string((uint64_t)entity), ctx);
133 template <
typename FormatContext>
Definition: universe.h:104
friend bool operator!=(const entt::null_t &, const Node &rhs)
Definition: universe.h:118
friend bool operator==(const entt::null_t &, const Node &rhs)
Definition: universe.h:116
friend bool operator==(const Node &lhs, const entt::null_t &)
Definition: universe.h:115
friend bool operator!=(const Node &lhs, const entt::null_t &)
Definition: universe.h:117
Definition: universe.h:38
std::map< std::string, entt::entity > provinces
Definition: universe.h:55
void EnableTick()
Definition: universe.h:63
std::vector< entt::entity > consumergoods
Definition: universe.h:46
auto nodes() const
Definition: universe.h:86
std::unique_ptr< cqsp::core::util::IRandom > random
Definition: universe.h:69
std::function< Node(entt::entity)> nodeFactory
Definition: universe.h:76
std::string uuid
Definition: universe.h:70
std::map< std::string, entt::entity > terrain_data
Definition: universe.h:48
auto nodes()
Definition: universe.h:82
auto nodes(entt::exclude_t< Exclude... > exclude)
Definition: universe.h:90
void ToggleTick()
Definition: universe.h:66
systems::EconomyConfig economy_config
Definition: universe.h:98
std::map< std::string, entt::entity > fields
Definition: universe.h:50
void DisableTick()
Definition: universe.h:64
bool to_tick
Definition: universe.h:101
auto nodes(entt::exclude_t< Exclude... > exclude) const
Definition: universe.h:94
std::map< std::string, entt::entity > goods
Definition: universe.h:45
std::map< std::string, entt::entity > planets
Definition: universe.h:52
std::map< entt::entity, std::map< entt::entity, int > > colors_province
Definition: universe.h:60
std::map< std::string, actions::NameGenerator > name_generators
Definition: universe.h:49
std::map< std::string, entt::entity > countries
Definition: universe.h:54
double tick_fraction
What is the current fraction of the wait of the tick we are processing
Definition: universe.h:75
std::map< std::string, entt::entity > recipes
Definition: universe.h:47
std::map< entt::entity, std::map< int, entt::entity > > province_colors
Definition: universe.h:58
std::map< std::string, entt::entity > cities
Definition: universe.h:56
std::map< std::string, entt::entity > time_zones
Definition: universe.h:53
auto NodeTransform() const
Definition: universe.h:77
bool ToTick()
Definition: universe.h:65
components::StarDate date
Definition: universe.h:43
std::map< std::string, entt::entity > technologies
Definition: universe.h:51
Universe()
Definition: universe.cpp:27
entt::entity sun
Definition: universe.h:61
int GetDate()
Definition: universe.h:68
std::vector< Node > Convert(const std::vector< entt::entity > &entities) const
Definition: universe.cpp:33
Holds and calculates the tick that is on going. Date is the number of hours that has been ongoing sin...
Definition: stardate.h:46
uint64_t GetDate()
Definition: stardate.h:60
std::vector< std::string > entities
Definition: loadcities.cpp:40
Definition: cityactions.cpp:23
core::Universe * universe
Definition: turnsavewindow.h:3