Example #1
0
ModelComponent::ModelComponent()
  : NullComponent(ComponentType::MODEL)
{
  META_INIT();
}
Example #2
0
Component::Component(ComponentType type)
  : my_type(type)
  , my_entity(nullptr)
{
  META_INIT();
}
Example #3
0
int main()
{
	TestDerived1 d1;
	TestDerived2 d2;
	const char* s;
	unsigned int i;
	float f;

	META_INIT(TestBase);
	META_INIT(TestDerived1);
	META_INIT(TestDerived2);

	const meta* meta = meta_find("TestDerived2");
	assert(meta != NULL);

	const meta_attribute* attr = meta_find_attribute(meta, "x");
	assert(attr != NULL);

	d2.x = 2.5f;
	d2.y = -17.3f;
	meta_get(attr, &d2, &f);
	assert(f == d2.x);

	d2._base.last_input = NULL;
	d2._base.counter = 0;
	
	const meta_event* event = meta_find_event(meta, "jumped");
	assert(event != NULL);
	f = 10.0f;
	meta_call(event, &d2, &f);

	event = meta_find_event(meta, "input");
	assert(event != NULL);
	meta_call(event, &d2, "key");
	meta_call(event, &d2, "key");
	meta_call(event, &d2, "key");

	assert(0 == strcmp(d2._base.last_input, "key"));
	assert(3 == d2._base.counter);

	meta = meta_find("TestBase");
	assert(meta != NULL);

	meta_call(event, &d2, "key");
	assert(4 == d2._base.counter);

	attr = meta_find_attribute(meta, "counter");
	assert(attr != NULL);

	meta_get(attr, &d2, &i);
	assert(4 == i);

	attr = meta_find_attribute(meta, "last_input");
	assert(attr != NULL);

	meta_get(attr, &d2, &s);
	assert(0 == strcmp("key", d2._base.last_input));

	meta = meta_find("TestDerived1");
	d1.health = 100;
	d1.damage = 17;

	event = meta_find_event(meta, "damaged");
	assert(event != NULL);

	meta_call(event, &d1, &d1.damage);
	meta_call(event, &d1, &d1.damage);
	meta_call(event, &d1, &d1.damage);

	attr = meta_find_attribute(meta, "health");
	assert(attr != NULL);
	meta_get(attr, &d1, &i);

	assert(49 == i);

	return 0;
}