feat: created test object that renders a yellow box
This commit is contained in:
parent
67bd8017c5
commit
6a81ac4ece
49
src/test_object.c
Normal file
49
src/test_object.c
Normal file
|
@ -0,0 +1,49 @@
|
|||
#include "test_object.h"
|
||||
#include "core/render.h"
|
||||
#include "raylib.h"
|
||||
|
||||
START_REFLECT(TestObject);
|
||||
REFLECT_TYPECLASS(TestObject, Drop);
|
||||
REFLECT_TYPECLASS(TestObject, SceneNodeEntity);
|
||||
REFLECT_TYPECLASS(TestObject, Renderable);
|
||||
END_REFLECT(TestObject);
|
||||
|
||||
impl_Drop_for(TestObject,
|
||||
DestroyTestObject
|
||||
)
|
||||
|
||||
impl_Renderable_for(TestObject,
|
||||
TestObjectDraw
|
||||
)
|
||||
|
||||
impl_SceneNodeEntity_for(TestObject,
|
||||
TestObjectEnterTree,
|
||||
TestObjectExitTree,
|
||||
TestObjectTick
|
||||
)
|
||||
|
||||
SceneNode *CreateTestObject() {
|
||||
TestObject *self = new(TestObject);
|
||||
return CreateSceneNode(TestObject_as_SceneNodeEntity(self));
|
||||
}
|
||||
|
||||
void DestroyTestObject(TestObject *self) {
|
||||
free(self);
|
||||
}
|
||||
|
||||
void TestObjectEnterTree(TestObject *self) {
|
||||
self->transform = TC_CAST(self->node->parent->entity, Transformable);
|
||||
AddRenderable(TestObject_as_Renderable(self));
|
||||
}
|
||||
|
||||
void TestObjectExitTree(TestObject *self) {
|
||||
RemoveRenderable(TestObject_as_Renderable(self));
|
||||
}
|
||||
|
||||
void TestObjectDraw(TestObject *self) {
|
||||
Vector3 position = Vector3Add((Vector3){0.f, 1.f, 0.f}, self->transform.tc->get_global_transform(self->transform.data).translation);
|
||||
DrawCube(position, 1.f, 2.f, 1.f, YELLOW);
|
||||
}
|
||||
|
||||
void TestObjectTick(TestObject *self, double delta) {
|
||||
}
|
29
src/test_object.h
Normal file
29
src/test_object.h
Normal file
|
@ -0,0 +1,29 @@
|
|||
#ifndef TEST_OBJECT_H
|
||||
#define TEST_OBJECT_H
|
||||
|
||||
#include "core/scene.h"
|
||||
#include "core/scene_node_entity.h"
|
||||
#include "core/transformable.h"
|
||||
#include "core/renderable.h"
|
||||
#include "utils/drop.h"
|
||||
#include "utils/mirror.h"
|
||||
|
||||
typedef struct TestObject {
|
||||
SceneNode *node;
|
||||
Transformable transform;
|
||||
} TestObject;
|
||||
|
||||
SceneNode *CreateTestObject();
|
||||
void DestroyTestObject(TestObject *self);
|
||||
|
||||
void TestObjectEnterTree(TestObject *self);
|
||||
void TestObjectExitTree(TestObject *self);
|
||||
void TestObjectDraw(TestObject *self);
|
||||
void TestObjectTick(TestObject *self, double delta);
|
||||
|
||||
DECL_REFLECT(TestObject);
|
||||
decl_typeclass_impl(SceneNodeEntity, TestObject);
|
||||
decl_typeclass_impl(Drop, TestObject);
|
||||
decl_typeclass_impl(Renderable, TestObject);
|
||||
|
||||
#endif // !TEST_OBJECT_H
|
Loading…
Reference in a new issue