// Copyright (c) 2023 Alex Diener. All rights reserved. #ifndef __GameEntityComponent_H__ #define __GameEntityComponent_H__ typedef struct GameEntityComponent GameEntityComponent; #define GameEntityComponent_superclass StemObject #include "stemobject/StemObject.h" struct GameEntity; #define GameEntityComponent_ivars \ StemObject_ivars #define GameEntityComponent_vtable(self_type) \ StemObject_vtable(self_type) \ \ void (* initCopy)(self_type * self, compat_type(GameEntityComponent *) copy); \ void (* update)(self_type * self, struct GameEntity * entity); stemobject_declare(GameEntityComponent) bool GameEntityComponent_init(GameEntityComponent * self); void GameEntityComponent_dispose(GameEntityComponent * self); void GameEntityComponent_initCopy(GameEntityComponent * self, compat_type(GameEntityComponent *) copy); void GameEntityComponent_update(GameEntityComponent * self, struct GameEntity * entity); #endif