10 lines
1.1 KiB
C++
10 lines
1.1 KiB
C++
#include <MetaCoreScripting/MetaCoreScriptSdk.h>
|
|
#include <new>
|
|
struct Mover {};
|
|
static void* CreateMover() noexcept { return new (std::nothrow) Mover; }
|
|
static void DestroyMover(void* value) noexcept { delete static_cast<Mover*>(value); }
|
|
static const char* UpdateMover(void*, const MetaCoreScriptExecutionContextV1* context, double delta) noexcept { return MetaCoreScriptSdk::Guard([&] { MetaCoreScriptValueV1 speed{}; if(!context->Host->GetField(context->HostContext,context->Object,context->InstanceId,"speed",&speed)) return; MetaCoreScriptValueV1 position{}; if(!context->Host->GetProperty(context->HostContext,context->Object,"Transform","Position",&position)) return; position.Vec3[0]+=speed.NumberValue*delta; context->Host->SetProperty(context->HostContext,context->Object,"Transform","Position",&position); }); }
|
|
static const MetaCoreScriptFieldDescriptorV1 MoverFields[]={{"speed","Speed",MetaCoreScriptAbiValue_Float,"1.0"}};
|
|
static const MetaCoreScriptBehaviourDescriptorV1 MoverDescriptor={"MetaCoreSample.Mover","Mover",1,1,MoverFields,CreateMover,DestroyMover,nullptr,nullptr,UpdateMover,nullptr,nullptr};
|
|
MC_REGISTER_SCRIPT(Mover, MoverDescriptor);
|