Spawning system refactor

This commit is contained in:
2025-06-01 11:54:29 +02:00
parent 6eb5046523
commit ae5733ae62

View File

@@ -16,6 +16,10 @@ struct Spider
{ {
}; };
struct Item
{
};
struct Basket struct Basket
{ {
}; };
@@ -26,6 +30,10 @@ struct LevelModule
{ {
auto const* texture_assets = world.get<TextureAssets>(); auto const* texture_assets = world.get<TextureAssets>();
world.component<Item>();
world.component<Fruit>().is_a<Item>();
world.component<Spider>().is_a<Item>();
world.entity("Background") world.entity("Background")
.set<Position>(Position{.x = 0, .y = 0}) .set<Position>(Position{.x = 0, .y = 0})
.set<Sprite>(Sprite{.texture = &texture_assets->background, .texture_atlas_index = 0}) .set<Sprite>(Sprite{.texture = &texture_assets->background, .texture_atlas_index = 0})
@@ -102,10 +110,10 @@ struct LevelModule
} }
}); });
// world.system<WorldPosition const, Fruit>("DespawnFruits") // world.system<WorldPosition const, Item>("DespawnItems")
// .kind(flecs::OnValidate) // .kind(flecs::OnValidate)
// .each( // .each(
// [](flecs::entity e, WorldPosition const& pos, Fruit) // [](flecs::entity e, WorldPosition const& pos, Item)
// { // {
// if (pos.y >= WINDOW_HEIGHT) // if (pos.y >= WINDOW_HEIGHT)
// e.destruct(); // e.destruct();
@@ -118,7 +126,8 @@ struct LevelModule
[](flecs::entity e, Game& game, Position& pos, Fruit, Collided) [](flecs::entity e, Game& game, Position& pos, Fruit, Collided)
{ {
game.score += 10; game.score += 10;
pos.x = 1000; pos.x += 1000;
// e.destruct();
}); });
world.system<Game, Position, Spider, Collided>("CollectSpider") world.system<Game, Position, Spider, Collided>("CollectSpider")
@@ -128,7 +137,8 @@ struct LevelModule
[](flecs::entity e, Game& game, Position& pos, Spider, Collided) [](flecs::entity e, Game& game, Position& pos, Spider, Collided)
{ {
game.score -= 50; game.score -= 50;
pos.x = 1000; pos.x += 1000;
// e.destruct();
}); });
world.system<ButtonInput const, Position, Size const, Sprite const, Basket>("MoveBasket") world.system<ButtonInput const, Position, Size const, Sprite const, Basket>("MoveBasket")