// Copyright (c) 2023 Alex Diener. All rights reserved.

#ifndef __EntityComponent_pusher_H__
#define __EntityComponent_pusher_H__

typedef struct EntityComponent_pusher EntityComponent_pusher;
#define EntityComponent_pusher_superclass GameEntityComponent

#include "PROJECT_NAME/GameEntityComponent.h"

#define EntityComponent_pusher_ivars \
	GameEntityComponent_ivars

#define EntityComponent_pusher_vtable(self_type) \
	GameEntityComponent_vtable(self_type)

stemobject_declare(EntityComponent_pusher)

EntityComponent_pusher * EntityComponent_pusher_create(void);
bool EntityComponent_pusher_init(EntityComponent_pusher * self);
void EntityComponent_pusher_dispose(EntityComponent_pusher * self);

#endif
