#pragma once #include "BsScriptEnginePrerequisites.h" #include "Wrappers/BsScriptComponent.h" #include "../../../bsf/Source/Foundation/bsfCore/Animation/BsAnimation.h" namespace bs { class CAnimation; struct __Blend1DInfoInterop; struct __Blend2DInfoInterop; class BS_SCR_BE_EXPORT ScriptCAnimation : public TScriptComponent { public: SCRIPT_OBJ(ENGINE_ASSEMBLY, "BansheeEngine", "Animation") ScriptCAnimation(MonoObject* managedInstance, const GameObjectHandle& value); private: void _scriptRebuildFloatProperties(const ResourceHandle& p0); void _scriptUpdateFloatProperties(); void _scriptOnEventTriggered(const ResourceHandle& p0, const String& p1); typedef void(BS_THUNKCALL *_scriptRebuildFloatPropertiesThunkDef) (MonoObject*, MonoObject* p0, MonoException**); static _scriptRebuildFloatPropertiesThunkDef _scriptRebuildFloatPropertiesThunk; typedef void(BS_THUNKCALL *_scriptUpdateFloatPropertiesThunkDef) (MonoObject*, MonoException**); static _scriptUpdateFloatPropertiesThunkDef _scriptUpdateFloatPropertiesThunk; typedef void(BS_THUNKCALL *_scriptOnEventTriggeredThunkDef) (MonoObject*, MonoObject* p0, MonoString* p1, MonoException**); static _scriptOnEventTriggeredThunkDef _scriptOnEventTriggeredThunk; static void Internal_setDefaultClip(ScriptCAnimation* thisPtr, MonoObject* clip); static MonoObject* Internal_getDefaultClip(ScriptCAnimation* thisPtr); static void Internal_setWrapMode(ScriptCAnimation* thisPtr, AnimWrapMode wrapMode); static AnimWrapMode Internal_getWrapMode(ScriptCAnimation* thisPtr); static void Internal_setSpeed(ScriptCAnimation* thisPtr, float speed); static float Internal_getSpeed(ScriptCAnimation* thisPtr); static void Internal_play(ScriptCAnimation* thisPtr, MonoObject* clip); static void Internal_blendAdditive(ScriptCAnimation* thisPtr, MonoObject* clip, float weight, float fadeLength, uint32_t layer); static void Internal_blend1D(ScriptCAnimation* thisPtr, __Blend1DInfoInterop* info, float t); static void Internal_blend2D(ScriptCAnimation* thisPtr, __Blend2DInfoInterop* info, Vector2* t); static void Internal_crossFade(ScriptCAnimation* thisPtr, MonoObject* clip, float fadeLength); static void Internal_sample(ScriptCAnimation* thisPtr, MonoObject* clip, float time); static void Internal_stop(ScriptCAnimation* thisPtr, uint32_t layer); static void Internal_stopAll(ScriptCAnimation* thisPtr); static bool Internal_isPlaying(ScriptCAnimation* thisPtr); static bool Internal_getState(ScriptCAnimation* thisPtr, MonoObject* clip, AnimationClipState* state); static void Internal_setState(ScriptCAnimation* thisPtr, MonoObject* clip, AnimationClipState* state); static void Internal_setMorphChannelWeight(ScriptCAnimation* thisPtr, MonoString* name, float weight); static void Internal_setBounds(ScriptCAnimation* thisPtr, AABox* bounds); static void Internal_getBounds(ScriptCAnimation* thisPtr, AABox* __output); static void Internal_setUseBounds(ScriptCAnimation* thisPtr, bool enable); static bool Internal_getUseBounds(ScriptCAnimation* thisPtr); static void Internal_setEnableCull(ScriptCAnimation* thisPtr, bool enable); static bool Internal_getEnableCull(ScriptCAnimation* thisPtr); static uint32_t Internal_getNumClips(ScriptCAnimation* thisPtr); static MonoObject* Internal_getClip(ScriptCAnimation* thisPtr, uint32_t idx); static void Internal__refreshClipMappings(ScriptCAnimation* thisPtr); static bool Internal__getGenericCurveValue(ScriptCAnimation* thisPtr, uint32_t curveIdx, float* value); static bool Internal__togglePreviewMode(ScriptCAnimation* thisPtr, bool enabled); }; }