/* -----------------------------------------------------------------------------
	GSFramework
	Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
----------------------------------------------------------------------------- */


#ifndef	__NITEMSCRIPTEVENT__
#define	__NITEMSCRIPTEVENT__


		#include "scene3d/mitem_event_interface.h"


namespace GS {
	namespace S3D {

/*!
	@short	Item script event.
	@author	Emmanuel Julien (ejulien@gsworks.fr)
*/
struct	MItemScriptEvent : public IItemEvent
{
virtual	void	OnSetup(MItem *);
virtual	void	OnSetupDone(MItem *);
virtual	void	OnReset(MItem *);

virtual	void	OnActivate(MItem *, bool activate);

virtual	void	OnPhysicStep(MItem *, bool step_taken);

virtual	void	OnItemEnter(MTrigger *, MItem *);
virtual	void	OnItemExit(MTrigger *, MItem *);

virtual	void	OnEnterTrigger(MItem *, MTrigger *);
virtual	void	OnTrigger(MItem *, MTrigger *);
virtual	void	OnExitTrigger(MItem *, MTrigger *);

virtual	void	OnUpdate(MItem *);
virtual	void	OnDelete(MItem *);

virtual	void	OnRenderDone(MItem *);
virtual	void	OnRenderUser(MItem *);

virtual	void	OnCollision(MItem *, MItem *with, const CollisionPair &);
};

	} // S3D
} // GS


#endif	// __NITEMSCRIPTEVENT__
