// Copyright (c) 2023 Alex Diener. All rights reserved. #ifndef __EntityComponent_sprite_H__ #define __EntityComponent_sprite_H__ typedef struct EntityComponent_sprite EntityComponent_sprite; #define EntityComponent_sprite_superclass GameEntityComponent #include "PROJECT_NAME/GameEntityComponent.h" #include "tileset/SpriteCollection.h" #define EntityComponent_sprite_ivars \ GameEntityComponent_ivars \ \ SpriteID spriteID; \ int drawLayer; \ int drawPriority; #define EntityComponent_sprite_vtable(self_type) \ GameEntityComponent_vtable(self_type) \ \ unsigned int (* getAnimationTime)(self_type * self, double referenceTime); stemobject_declare(EntityComponent_sprite) bool EntityComponent_sprite_init(EntityComponent_sprite * self, SpriteID spriteID, int drawLayer, int drawPriority); void EntityComponent_sprite_dispose(EntityComponent_sprite * self); void EntityComponent_sprite_initCopy(EntityComponent_sprite * self, compat_type(GameEntityComponent *) original); unsigned int EntityComponent_sprite_getAnimationTime(EntityComponent_sprite * self, double referenceTime); #endif