This repository has been archived on 2024-02-21. You can view files and clone it, but cannot push or open issues or pull requests.
MainTree/core/tests/interface/entity-queries/main.c

50 lines
1.3 KiB
C
Raw Normal View History

#include <state.h>
#include <entity.h>
#include <stdio.h>
int main()
{
MtState *state = mt_initialize("Interface Test");
MtEntity *entity_1 = mt_summon(state);
mt_tag_i64(entity_1, "some_tag", 3);
mt_tag_i64(entity_1, "another_tag", 42);
mt_tag_i64(entity_1, "listed_tag", 1337);
MtEntity *entity_2 = mt_summon(state);
mt_tag_i64(entity_2, "some_tag", 3);
mt_tag_i64(entity_2, "another_tag", 42);
MtEntity *entity_3 = mt_summon(state);
mt_tag_i64(entity_3, "some_tag", 3);
mt_tag_i64(entity_3, "another_tag", 42);
mt_tag_i64(entity_3, "listed_tag", 236512);
const char *tag_list[4] =
{
"some_tag",
"another_tag",
"listed_tag",
NULL
};
usz_t num_matching_entities = mt_query(state, tag_list, NULL, 0);
printf("Number of matching entities: %ld\n", num_matching_entities);
MtEntity *entities[8];
mt_query(state, tag_list, entities, 8);
printf("Entity 1: %p\nEntity 2: %p\nEntity 3: %p\n", (void *) entity_1, (void *) entity_2, (void *) entity_3);
usz_t entity_index = 0;
while(entity_index < num_matching_entities)
{
printf("Entity-Pointer: %p\n", (void *) entities[entity_index]);
++entity_index;
}
mt_drop(entity_1);
mt_drop(entity_2);
mt_drop(entity_3);
mt_cleanup(state);
return 0;
}