50 lines
1.3 KiB
C
50 lines
1.3 KiB
C
#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;
|
|
}
|