mirror of
https://github.com/Heretek-AI/GDevelop.git
synced 2026-07-23 02:25:52 -04:00
a8559bfbbc
* Update all CMakeLists of extensions to use clang-format * Run clang-format on all Extensions * Update GDCore CMakeLists.txt to add clang-format * Run clang-format on GDCore files * Update GDJS and GDCpp CMakeLists.txt to add clang-format * Run clang-format on GDCpp and GDJS files
210 lines
8.1 KiB
C++
210 lines
8.1 KiB
C++
|
|
/**
|
|
GDevelop - Skeleton Object Extension
|
|
Copyright (c) 2017-2018 Franco Maciel (francomaciel10@gmail.com)
|
|
This project is released under the MIT License.
|
|
*/
|
|
|
|
#if defined(GD_IDE_ONLY)
|
|
#include "GDCore/Extensions/PlatformExtension.h"
|
|
|
|
#include "SkeletonObject.h"
|
|
|
|
#include <iostream>
|
|
|
|
void DeclareSkeletonObjectExtension(gd::PlatformExtension& extension);
|
|
|
|
/**
|
|
* \brief This class declares information about the JS extension.
|
|
*/
|
|
class SkeletonObjectJsExtension : public gd::PlatformExtension {
|
|
public:
|
|
/**
|
|
* Constructor of an extension declares everything the extension contains:
|
|
* objects, actions, conditions and expressions.
|
|
*/
|
|
SkeletonObjectJsExtension() {
|
|
DeclareSkeletonObjectExtension(*this);
|
|
|
|
GetObjectMetadata("SkeletonObject::Skeleton")
|
|
.SetIncludeFile("Extensions/SkeletonObject/Isk-tools.js")
|
|
.AddIncludeFile("Extensions/SkeletonObject/Hskmanager.js")
|
|
.AddIncludeFile("Extensions/SkeletonObject/Gskeletonruntimeobject.js")
|
|
.AddIncludeFile("Extensions/SkeletonObject/Fskanimation.js")
|
|
.AddIncludeFile("Extensions/SkeletonObject/Eskarmature.js")
|
|
.AddIncludeFile("Extensions/SkeletonObject/Dskslot.js")
|
|
.AddIncludeFile("Extensions/SkeletonObject/Cskbone.js")
|
|
.AddIncludeFile(
|
|
"Extensions/SkeletonObject/"
|
|
"Bskeletonruntimeobject-cocos-renderer.js")
|
|
.AddIncludeFile(
|
|
"Extensions/SkeletonObject/Bskeletonruntimeobject-pixi-renderer.js")
|
|
.AddIncludeFile("Extensions/SkeletonObject/Ask.js");
|
|
|
|
auto& actions = GetAllActionsForObject("SkeletonObject::Skeleton");
|
|
auto& conditions = GetAllConditionsForObject("SkeletonObject::Skeleton");
|
|
auto& expressions = GetAllExpressionsForObject("SkeletonObject::Skeleton");
|
|
auto& strExpressions =
|
|
GetAllStrExpressionsForObject("SkeletonObject::Skeleton");
|
|
|
|
// Object instructions
|
|
conditions["SkeletonObject::ScaleX"].SetFunctionName("getScaleX");
|
|
actions["SkeletonObject::SetScaleX"]
|
|
.SetFunctionName("setScaleX")
|
|
.SetGetter("getScaleX");
|
|
expressions["ScaleX"].SetFunctionName("getScaleX");
|
|
|
|
conditions["SkeletonObject::ScaleY"].SetFunctionName("getScaleY");
|
|
actions["SkeletonObject::SetScaleY"]
|
|
.SetFunctionName("setScaleY")
|
|
.SetGetter("getScaleY");
|
|
expressions["ScaleY"].SetFunctionName("getScaleY");
|
|
|
|
conditions["SkeletonObject::Width"].SetFunctionName("getWidth");
|
|
actions["SkeletonObject::SetWidth"]
|
|
.SetFunctionName("setWidth")
|
|
.SetGetter("getWidth");
|
|
expressions["Width"].SetFunctionName("getWidth");
|
|
|
|
conditions["SkeletonObject::Height"].SetFunctionName("getHeight");
|
|
actions["SkeletonObject::SetHeight"]
|
|
.SetFunctionName("setHeight")
|
|
.SetGetter("getHeight");
|
|
expressions["Height"].SetFunctionName("getHeight");
|
|
|
|
actions["SkeletonObject::SetDefaultHitbox"].SetFunctionName(
|
|
"setDefaultHitbox");
|
|
|
|
// Animation instructions
|
|
conditions["SkeletonObject::AnimationPaused"].SetFunctionName(
|
|
"isAnimationPaused");
|
|
actions["SkeletonObject::PauseAnimation"].SetFunctionName(
|
|
"setAnimationPaused");
|
|
actions["SkeletonObject::UnpauseAnimation"].SetFunctionName(
|
|
"setAnimationPaused");
|
|
|
|
conditions["SkeletonObject::AnimationFinished"].SetFunctionName(
|
|
"isAnimationFinished");
|
|
|
|
conditions["SkeletonObject::AnimationTime"].SetFunctionName(
|
|
"getAnimationTime");
|
|
actions["SkeletonObject::SetAnimationTime"]
|
|
.SetFunctionName("setAnimationTime")
|
|
.SetGetter("getAnimationTime");
|
|
expressions["AnimationTime"].SetFunctionName("getAnimationTime");
|
|
expressions["AnimationTimeLength"].SetFunctionName(
|
|
"getAnimationTimeLength");
|
|
|
|
conditions["SkeletonObject::AnimationFrame"].SetFunctionName(
|
|
"getAnimationFrame");
|
|
actions["SkeletonObject::SetAnimationFrame"]
|
|
.SetFunctionName("setAnimationFrame")
|
|
.SetGetter("getAnimationFrame");
|
|
expressions["AnimationFrame"].SetFunctionName("getAnimationFrame");
|
|
expressions["AnimationFrameLength"].SetFunctionName(
|
|
"getAnimationFrameLength");
|
|
|
|
conditions["SkeletonObject::AnimationIndex"].SetFunctionName(
|
|
"getAnimationIndex");
|
|
actions["SkeletonObject::SetAnimationIndex"]
|
|
.SetFunctionName("setAnimationIndex")
|
|
.SetGetter("getAnimationIndex");
|
|
expressions["AnimationIndex"].SetFunctionName("getAnimationIndex");
|
|
|
|
conditions["SkeletonObject::AnimationName"].SetFunctionName(
|
|
"getAnimationName");
|
|
actions["SkeletonObject::SetAnimationName"]
|
|
.SetFunctionName("setAnimationName")
|
|
.SetGetter("getAnimationName");
|
|
strExpressions["AnimationName"].SetFunctionName("getAnimationName");
|
|
|
|
conditions["SkeletonObject::AnimationSmooth"].SetFunctionName(
|
|
"isAnimationSmooth");
|
|
actions["SkeletonObject::SetAnimationSmooth"].SetFunctionName(
|
|
"setAnimationSmooth");
|
|
|
|
conditions["SkeletonObject::AnimationTimeScale"].SetFunctionName(
|
|
"getAnimationTimeScale");
|
|
actions["SkeletonObject::SetAnimationTimeScale"]
|
|
.SetFunctionName("setAnimationTimeScale")
|
|
.SetGetter("getAnimationTimeScale");
|
|
expressions["AnimationTimeScale"].SetFunctionName("getAnimationTimeScale");
|
|
|
|
actions["SkeletonObject::ResetAnimation"].SetFunctionName("resetAnimation");
|
|
|
|
// Bone instructions
|
|
conditions["SkeletonObject::BonePositionX"].SetFunctionName("getBoneX");
|
|
actions["SkeletonObject::SetBonePositionX"]
|
|
.SetFunctionName("setBoneX")
|
|
.SetGetter("getBoneX");
|
|
expressions["BonePositionX"].SetFunctionName("getBoneX");
|
|
|
|
conditions["SkeletonObject::BonePositionY"].SetFunctionName("getBoneY");
|
|
actions["SkeletonObject::SetBonePositionY"]
|
|
.SetFunctionName("setBoneY")
|
|
.SetGetter("getBoneY");
|
|
expressions["BonePositionY"].SetFunctionName("getBoneY");
|
|
|
|
conditions["SkeletonObject::BoneAngle"].SetFunctionName("getBoneAngle");
|
|
actions["SkeletonObject::SetBoneAngle"]
|
|
.SetFunctionName("setBoneAngle")
|
|
.SetGetter("getBoneAngle");
|
|
expressions["BoneAngle"].SetFunctionName("getBoneAngle");
|
|
|
|
conditions["SkeletonObject::BoneScaleX"].SetFunctionName("getBoneScaleX");
|
|
actions["SkeletonObject::SetBoneScaleX"]
|
|
.SetFunctionName("setBoneScaleX")
|
|
.SetGetter("getBoneScaleX");
|
|
expressions["BoneScaleX"].SetFunctionName("getBoneScaleX");
|
|
|
|
conditions["SkeletonObject::BoneScaleY"].SetFunctionName("getBoneScaleY");
|
|
actions["SkeletonObject::SetBoneScaleY"]
|
|
.SetFunctionName("setBoneScaleY")
|
|
.SetGetter("getBoneScaleY");
|
|
expressions["BoneScaleY"].SetFunctionName("getBoneScaleY");
|
|
|
|
actions["SkeletonObject::ResetBone"].SetFunctionName("resetBone");
|
|
|
|
// Slot instructions
|
|
actions["SkeletonObject::SetSlotColor"].SetFunctionName("setSlotColor");
|
|
|
|
conditions["SkeletonObject::SlotVisible"].SetFunctionName("isSlotVisible");
|
|
actions["SkeletonObject::ShowSlot"].SetFunctionName("setSlotVisible");
|
|
actions["SkeletonObject::HideSlot"].SetFunctionName("setSlotVisible");
|
|
|
|
conditions["SkeletonObject::SlotZOrder"].SetFunctionName("getSlotZOrder");
|
|
actions["SkeletonObject::SetSlotZOrder"]
|
|
.SetFunctionName("setSlotZOrder")
|
|
.SetGetter("getSlotZOrder");
|
|
expressions["SlotZOrder"].SetFunctionName("getSlotZOrder");
|
|
|
|
conditions["SkeletonObject::PointInsideSlot"].SetFunctionName(
|
|
"isPointInsideSlot");
|
|
|
|
// Extension instructions
|
|
GetAllConditions()["SkeletonObject::SlotCollidesWithObject"]
|
|
.SetFunctionName("gdjs.sk.slotObjectCollision");
|
|
GetAllConditions()["SkeletonObject::SlotCollidesWithSlot"].SetFunctionName(
|
|
"gdjs.sk.slotSlotCollision");
|
|
GetAllConditions()["SkeletonObject::RaycastSlot"].SetFunctionName(
|
|
"gdjs.sk.raycastSlot");
|
|
|
|
GD_COMPLETE_EXTENSION_COMPILATION_INFORMATION();
|
|
};
|
|
};
|
|
|
|
#if defined(EMSCRIPTEN)
|
|
extern "C" gd::PlatformExtension* CreateGDJSSkeletonObjectExtension() {
|
|
return new SkeletonObjectJsExtension;
|
|
}
|
|
#else
|
|
/**
|
|
* Used by GDevelop to create the extension class
|
|
* -- Do not need to be modified. --
|
|
*/
|
|
extern "C" gd::PlatformExtension* GD_EXTENSION_API CreateGDJSExtension() {
|
|
return new SkeletonObjectJsExtension;
|
|
}
|
|
#endif
|
|
#endif
|