// ================================================================================================ void Register_Routine(HSQUIRRELVM vm) { RootTable(vm).Bind(Typename::Str, Class< Routine, NoConstructor< Routine > >(vm, Typename::Str) // Meta-methods .SquirrelFunc(_SC("_typename"), &Typename::Fn) .Func(_SC("_tostring"), &Routine::ToString) // Properties .Prop(_SC("Tag"), &Routine::GetTag, &Routine::SetTag) .Prop(_SC("Env"), &Routine::GetEnv, &Routine::SetEnv) .Prop(_SC("Func"), &Routine::GetFunc, &Routine::SetFunc) .Prop(_SC("Data"), &Routine::GetData, &Routine::SetData) .Prop(_SC("Interval"), &Routine::GetInterval, &Routine::SetInterval) .Prop(_SC("Iterations"), &Routine::GetIterations, &Routine::SetIterations) .Prop(_SC("Suspended"), &Routine::GetSuspended, &Routine::SetSuspended) .Prop(_SC("Arguments"), &Routine::GetArguments) // Member Methods .FmtFunc(_SC("SetTag"), &Routine::SetTag) .Func(_SC("Terminate"), &Routine::Terminate) .Func(_SC("GetArgument"), &Routine::GetArgument) ); // Global functions RootTable(vm).SquirrelFunc(_SC("SqRoutine"), &Routine::Create); RootTable(vm).FmtFunc(_SC("SqFindRoutineByTag"), &Routine::FindByTag); }
// ================================================================================================ void Register_Signal(HSQUIRRELVM vm) { RootTable(vm).Bind(Typename::Str, Class< Signal, NoConstructor< Signal > >(vm, Typename::Str) // Meta-methods .SquirrelFunc(_SC("_typename"), &Typename::Fn) .Func(_SC("_tostring"), &Signal::ToString) // Core Properties .Prop(_SC("Data"), &Signal::GetData, &Signal::SetData) .Prop(_SC("Slots"), &Signal::Count) // Core Methods .Func(_SC("Clear"), &Signal::Clear) .Func(_SC("Connect"), &Signal::Connect) .Func(_SC("Connected"), &Signal::Connected) .Func(_SC("Disconnect"), &Signal::Disconnect) .Func(_SC("EliminateThis"), &Signal::DisconnectThis) .Func(_SC("EliminateFunc"), &Signal::DisconnectFunc) .Func(_SC("CountThis"), &Signal::CountThis) .Func(_SC("CountFunc"), &Signal::CountFunc) .Func(_SC("Head"), &Signal::Head) .Func(_SC("Tail"), &Signal::Tail) // Squirrel Functions .SquirrelFunc(_SC("Emit"), &Signal::SqEmit) .SquirrelFunc(_SC("Broadcast"), &Signal::SqEmit) .SquirrelFunc(_SC("Query"), &Signal::SqQuery) .SquirrelFunc(_SC("Consume"), &Signal::SqConsume) .SquirrelFunc(_SC("Approve"), &Signal::SqApprove) .SquirrelFunc(_SC("Request"), &Signal::SqRequest) ); RootTable(vm) .FmtFunc(_SC("SqSignal"), &Signal::Fetch) .FmtFunc(_SC("SqCreateSignal"), &Signal::Create) .FmtFunc(_SC("SqRemoveSignal"), &Signal::Remove); }
void SqEvent::RegisterInVm(Script *vm) { if(g_SqEvent == NULL) g_SqEvent = new SqEvent(); DefaultVM().Set(vm->GetVM()); RootTable() .Overload(_SC("HookEvent"),&SqEvent::HookEventPost) .Overload(_SC("HookEvent"),&SqEvent::HookEventPostStatic) .Overload(_SC("HookEventPre"),&SqEvent::HookEvent) .Overload(_SC("HookEventPre"),&SqEvent::HookEventStatic) .Func(_SC("UnHookEvent"),&SqEvent::UnHookEvent) .Func(_SC("UnHookEventPre"),&SqEvent::UnHookEventPre) .Func(_SC("CreateEvent"),&SqEvent::CreateEvent) .Func(_SC("FireEvent"),&SqEvent::FireEvent) .Func(_SC("FreeEvent"),&SqEvent::FreeEvent) .Func(_SC("DuplicateEvent"),&SqEvent::DuplicateEvent) ; ConstTable().Enum(_SC("EventHook"),Enumeration() .Const(_SC("Continue"),ReturnEventHook::CONTINUE) .Const(_SC("Stop"),ReturnEventHook::STOP)); RootTable().Bind(_SC("GameEvent"), Class<SqGameEvent,NoCopy<SqGameEvent>>() .Func(_SC("GetName"),&SqGameEvent::SqGetName) .Func(_SC("IsReliable"),&SqGameEvent::SqIsReliable) .Func(_SC("IsLocal"),&SqGameEvent::SqIsLocal) .Func(_SC("IsEmpty"),&SqGameEvent::SqIsEmpty) //Getters .Func(_SC("GetBool"),&SqGameEvent::SqGetBool) .Func(_SC("GetInt"),&SqGameEvent::SqGetInt) .Func(_SC("GetFloat"),&SqGameEvent::SqGetFloat) .Func(_SC("GetString"),&SqGameEvent::SqGetString) //Setters .Func(_SC("SetBool"),&SqGameEvent::SqSetBool) .Func(_SC("SetInt"),&SqGameEvent::SqSetInt) .Func(_SC("SetFloat"),&SqGameEvent::SqSetFloat) .Func(_SC("SetString"),&SqGameEvent::SqSetString) ); }
// ================================================================================================ void Register_AES(HSQUIRRELVM vm) { RootTable(vm).Bind(Typename::Str, Class< AES256 >(vm, Typename::Str) // Constructors .Ctor() .Ctor< CSStr >() // Meta-methods .SquirrelFunc(_SC("_typename"), &Typename::Fn) .Func(_SC("_tostring"), &AES256::ToString) .Func(_SC("cmp"), &AES256::Cmp) /* Properties */ .Prop(_SC("Key"), &AES256::GetKey) /* Functions */ .Func(_SC("Init"), &AES256::Init) .Func(_SC("Done"), &AES256::Done) .Func(_SC("Encrypt"), &AES256::Encrypt) .Func(_SC("Decrypt"), &AES256::Decrypt) ); }