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

#ifndef __VisualEffect_sparkle_H__
#define __VisualEffect_sparkle_H__

typedef struct VisualEffect_sparkle VisualEffect_sparkle;
#define VisualEffect_sparkle_superclass VisualEffect

#include "PROJECT_NAME/VisualEffect.h"

#define VisualEffect_sparkle_ivars \
	VisualEffect_ivars \
	\
	Vector2i tilePosition; \
	double elapsedTime;

#define VisualEffect_sparkle_vtable(self_type) \
	VisualEffect_vtable(self_type)

stemobject_declare(VisualEffect_sparkle)

VisualEffect_sparkle * VisualEffect_sparkle_create(Vector2i tilePosition);
bool VisualEffect_sparkle_init(VisualEffect_sparkle * self, Vector2i tilePosition);
void VisualEffect_sparkle_dispose(VisualEffect_sparkle * self);

void VisualEffect_sparkle_update(VisualEffect_sparkle * self, double deltaTime);
bool VisualEffect_sparkle_isFinished(VisualEffect_sparkle * self);
void VisualEffect_sparkle_writeVertices(VisualEffect_sparkle * self, Vector2f offset, VertexIO * vertexIO);

#endif
