#include <gtest/gtest.h>
#include <string>
#include <memory>
#include <iostream>
return os <<
"Velocity(" << v.
x <<
"," << v.
y <<
")";
}
};
return os <<
"Position(" << p.
x <<
"," << p.
y <<
")";
}
};
return os <<
"Health(" << h.
value <<
")";
}
};
public:
return singleton;
}
std::cerr <<
"pos .x: " << v.
x <<
" .y: " << v.
y << std::endl;
}
private:
int n = 2;
};
public:
for(size_t i = 0; i < positions.size(); ++i) {
if (positions[i] && velocities[i])
positions[i].value() += velocities[i].value();
}
}
};
public:
for(size_t i = 0; i < positions.size(); ++i) {
if (positions[i]) {
}
}
}
private:
};
public:
for(size_t i = 0; i < healths.size(); ++i) {
if (healths[i]) {
std::cout <<
"entity(" << i <<
"): " << healths[i].
value() << std::endl;
}
}
}
};
TEST(RegistryTest, RegisterAndRetrieveComponents) {
EXPECT_EQ(posArray.size(), 0u);
}
TEST(RegistryExtractionTest, RegisterComponentsByExtraction) {
using MyComponents = std::tuple<Position, Velocity, Health>;
}
TEST(RegistryExtractionTest, Intergration) {
using MyComponents = std::tuple<Position, Velocity, Health>;
EXPECT_EQ(positons[0].value().x, 0);
EXPECT_EQ(positons[0].value().x, 1);
}
TEST(RegistryTest, RegisterAndRetrieveComponents)
Definition TestEcs.cpp:130
Definition TestEcs.cpp:96
void update(Registry &r) override
Pure virtual function executed by all concrete systems.
Definition TestEcs.cpp:100
Definition TestEcs.cpp:114
void update(Registry &r) override
Pure virtual function executed by all concrete systems.
Definition TestEcs.cpp:118
Definition TestEcs.cpp:81
MoveSystem()
Definition TestEcs.cpp:83
void update(Registry &r) override
Pure virtual function executed by all concrete systems.
Definition TestEcs.cpp:85
Definition TestEcs.cpp:59
static Singleton & getInstance()
Definition TestEcs.cpp:61
Singleton & operator=(const Singleton &)=delete
void display(Position &v)
Definition TestEcs.cpp:71
Entity class from ECS.
Definition Entity.hpp:26
void addComponent(Component &&... c)
add a component to the entity using the registryRef method addComponent
Definition Entity_impl.hpp:24
define the Registry class
Definition Registry.hpp:44
Entity createEntity()
handling entities (define in Registry.cpp)
Definition Registry.cpp:14
void callSystem()
call a system
Definition Registry_impl.hpp:93
void registerComponents()
register a list of components
Definition Registry_impl.hpp:28
SparseArray< Component > & getComponents()
get components of a given type
Definition Registry_impl.hpp:40
void addSystem(System &s)
handling systems
Definition Registry_impl.hpp:68
void registerComponentsByExtraction()
register every components by extraction from a tuple
Definition Registry_impl.hpp:33
Health Value.
Definition TestEcs.cpp:50
friend std::ostream & operator<<(std::ostream &os, const Health &h)
Definition TestEcs.cpp:53
int value
Definition TestEcs.cpp:51
2Dposition
Definition TestEcs.cpp:35
int y
Definition TestEcs.cpp:36
void operator+=(const Velocity &vel)
Definition TestEcs.cpp:39
friend std::ostream & operator<<(std::ostream &os, const Position &p)
Definition TestEcs.cpp:41
bool operator==(const Position &other) const
Definition TestEcs.cpp:38
int x
Definition TestEcs.cpp:36
2Dvelocity
Definition TestEcs.cpp:23
int x
Definition TestEcs.cpp:24
int y
Definition TestEcs.cpp:24
friend std::ostream & operator<<(std::ostream &os, const Velocity &v)
Definition TestEcs.cpp:26
bool operator==(const Velocity &other) const
Definition TestEcs.cpp:25