#include <hxcpp.h>

#ifndef INCLUDED_Bar
#include <Bar.h>
#endif
#ifndef INCLUDED_Foo
#include <Foo.h>
#endif
#ifndef INCLUDED_luxe_Emitter
#include <luxe/Emitter.h>
#endif
#ifndef INCLUDED_luxe_Entity
#include <luxe/Entity.h>
#endif
#ifndef INCLUDED_luxe_Objects
#include <luxe/Objects.h>
#endif
#ifndef INCLUDED_luxe_Sprite
#include <luxe/Sprite.h>
#endif
#ifndef INCLUDED_luxe_Visual
#include <luxe/Visual.h>
#endif

Void Foo_obj::__construct()
{
HX_STACK_FRAME("Foo","new",0xc8b18ad8,"Foo.new","Foo.hx",11,0x2ff79798)
{
	HX_STACK_LINE(11)
	super::__construct();
}
;
	return null();
}

//Foo_obj::~Foo_obj() { }

Dynamic Foo_obj::__CreateEmpty() { return  new Foo_obj; }
hx::ObjectPtr< Foo_obj > Foo_obj::__new()
{  hx::ObjectPtr< Foo_obj > result = new Foo_obj();
	result->__construct();
	return result;}

Dynamic Foo_obj::__Create(hx::DynamicArray inArgs)
{  hx::ObjectPtr< Foo_obj > result = new Foo_obj();
	result->__construct();
	return result;}

Void Foo_obj::init( ){
{
		HX_STACK_FRAME("Foo","init",0xcf60a998,"Foo.init","luxe/macros/EntityRules.hx",35,0xed942299)
		HX_STACK_THIS(this)
	}
return null();
}


Void Foo_obj::ondestroy( ){
{
		HX_STACK_FRAME("Foo","ondestroy",0x3154a233,"Foo.ondestroy","luxe/macros/EntityRules.hx",47,0xed942299)
		HX_STACK_THIS(this)
		HX_STACK_LINE(47)
		this->super::ondestroy();
	}
return null();
}



Foo_obj::Foo_obj()
{
}

Dynamic Foo_obj::__Field(const ::String &inName,bool inCallProp)
{
	switch(inName.length) {
	case 4:
		if (HX_FIELD_EQ(inName,"init") ) { return init_dyn(); }
		break;
	case 9:
		if (HX_FIELD_EQ(inName,"ondestroy") ) { return ondestroy_dyn(); }
	}
	return super::__Field(inName,inCallProp);
}

Dynamic Foo_obj::__SetField(const ::String &inName,const Dynamic &inValue,bool inCallProp)
{
	return super::__SetField(inName,inValue,inCallProp);
}

void Foo_obj::__GetFields(Array< ::String> &outFields)
{
	super::__GetFields(outFields);
};

static ::String sStaticFields[] = {
	String(null()) };

#if HXCPP_SCRIPTABLE
static hx::StorageInfo *sMemberStorageInfo = 0;
#endif

static ::String sMemberFields[] = {
	HX_CSTRING("init"),
	HX_CSTRING("ondestroy"),
	String(null()) };

static void sMarkStatics(HX_MARK_PARAMS) {
	HX_MARK_MEMBER_NAME(Foo_obj::__mClass,"__mClass");
};

#ifdef HXCPP_VISIT_ALLOCS
static void sVisitStatics(HX_VISIT_PARAMS) {
	HX_VISIT_MEMBER_NAME(Foo_obj::__mClass,"__mClass");
};

#endif

Class Foo_obj::__mClass;

void Foo_obj::__register()
{
	hx::Static(__mClass) = hx::RegisterClass(HX_CSTRING("Foo"), hx::TCanCast< Foo_obj> ,sStaticFields,sMemberFields,
	&__CreateEmpty, &__Create,
	&super::__SGetClass(), 0, sMarkStatics
#ifdef HXCPP_VISIT_ALLOCS
    , sVisitStatics
#endif
#ifdef HXCPP_SCRIPTABLE
    , sMemberStorageInfo
#endif
);
}

void Foo_obj::__boot()
{
}

