#pragma once

#include <EventManager.h>

typedef unsigned int GameObjectID;

class EventData_Destroy_GameObject : public BaseEventData
{
	GameObjectID gID;

public: 
	static const EventType sk_EventType;

	explicit EventData_Destroy_GameObject(GameObjectID id)
		: gID(id) { }

	explicit EventData_Destroy_GameObject(std::istrstream& in)
	{
		in >> gID;
	}

	virtual const EventType& VGetEventType(void) const
	{
		return sk_EventType;
	}

	virtual IEventDataPtr VCopy(void) const
	{
		return IEventDataPtr(new EventData_Destroy_GameObject(gID));
	}

	virtual void VSerialize(std::ostrstream& out) const
	{
		out << gID;
	}
	virtual const char* GetName(void) const
	{
		return "EventData_Destroy_GameObject";
	}

	GameObjectID GetID(void) const { return gID; }
};