This commit is contained in:
Martin Slachta
2026-07-18 14:31:15 +02:00
commit a04f0dc262
3343 changed files with 1140208 additions and 0 deletions
+56
View File
@@ -0,0 +1,56 @@
#include "ZoneManager.hpp"
#include <cassert>
using namespace tw::net;
int main() {
ZoneManager zoneA(im::AreaBounds(
glm::vec2(0.0f, 0.0f),
glm::vec2(1000.0f, 1000.0f)
));
ZoneManager zoneB(im::AreaBounds(
glm::vec2(1000.0f, 0.0f),
glm::vec2(2000.0f, 1000.0f)
));
zoneA.register_neighbor_zone(&zoneB);
zoneB.register_neighbor_zone(&zoneA);
auto entityA = zoneA.spawn_entity({
.name = "EntityA",
.position = glm::vec3(0.0f, 0.0f, 0.0f),
});
zoneA.add_client(1, entityA);
auto entityB = zoneB.spawn_entity({
.name = "EntityB",
.position = glm::vec3(1030.0f, 500.0f, 0.0f),
});
zoneB.add_client(1, entityB);
auto transformB = zoneB.registry().get<tw::Transform>(entityB);
auto interest = zoneA.get_interest(1);
assert(interest->interest().empty());
tw::Transform* transformA = zoneA.registry().try_get<tw::Transform>(entityA);
transformA->set_position(glm::vec3(970.0f, 0.0f, 0.0f));
zoneA.tick(0, 0.1f);
zoneB.tick(0, 0.1f);
interest = zoneA.get_interest(1);
transformA = zoneA.registry().try_get<tw::Transform>(entityA);
transformA->set_position(glm::vec3(1020.0f, 0.0f, 0.0f));
zoneA.tick(1, 0.1f);
zoneB.tick(1, 0.1f);
interest = zoneA.get_interest(1);
return 0;
}