mirror of
https://github.com/Heretek-AI/GDevelop.git
synced 2026-08-27 03:01:28 -04:00
0049b5c6fa
Conflicts: Core/GDCore/BuiltinExtensions/SpriteExtension/SpriteExtension.cpp Core/GDCore/Events/ExpressionMetadata.h Extensions/Box3DObject/Extension.cpp Extensions/DraggableAutomatism/Extension.cpp Extensions/Light/Extension.cpp Extensions/Network/Extension.cpp Extensions/PanelSpriteObject/Extension.cpp Extensions/ParticleSystem/ExtensionSubDeclaration1.cpp Extensions/ParticleSystem/ExtensionSubDeclaration3.cpp Extensions/PathAutomatism/Extension.cpp Extensions/PathfindingAutomatism/Extension.cpp Extensions/PhysicsAutomatism/Extension.cpp Extensions/PlatformAutomatism/Extension.cpp Extensions/PrimitiveDrawing/Extension.cpp Extensions/SoundObject/Extension.cpp Extensions/TextEntryObject/Extension.cpp Extensions/TextObject/Extension.cpp Extensions/TileMapObject/Extension.cpp Extensions/TiledSpriteObject/Extension.cpp Extensions/TopDownMovementAutomatism/Extension.cpp GDCpp/GDCpp/DocMainPage.h GDCpp/docs/doxyfile GDJS/GDJS/BuiltinExtensions/AudioExtension.cpp GDJS/GDJS/BuiltinExtensions/BaseObjectExtension.cpp GDJS/GDJS/BuiltinExtensions/CameraExtension.cpp GDJS/GDJS/BuiltinExtensions/FileExtension.cpp GDJS/GDJS/BuiltinExtensions/JoystickExtension.cpp GDJS/GDJS/BuiltinExtensions/NetworkExtension.cpp GDJS/GDJS/BuiltinExtensions/SceneExtension.cpp GDJS/GDJS/BuiltinExtensions/SpriteExtension.cpp scripts/ExtractTranslations.sh
115 lines
6.4 KiB
C++
115 lines
6.4 KiB
C++
/*
|
|
* GDevelop JS Platform
|
|
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
|
* This project is released under the MIT License.
|
|
*/
|
|
#include "GDJS/BuiltinExtensions/SpriteExtension.h"
|
|
#include "GDCore/BuiltinExtensions/AllBuiltinExtensions.h"
|
|
#include "GDCore/Events/InstructionMetadata.h"
|
|
#include "GDCore/Tools/Localization.h"
|
|
|
|
namespace gdjs
|
|
{
|
|
|
|
SpriteExtension::SpriteExtension()
|
|
{
|
|
gd::BuiltinExtensionsImplementer::ImplementsSpriteExtension(*this);
|
|
|
|
SetExtensionInformation("Sprite",
|
|
GD_T("Sprite"),
|
|
GD_T("Extension for adding animated objects in the scene, which can contain animations with directions within each."),
|
|
"Florian Rival",
|
|
"Open source (MIT License)");
|
|
|
|
std::map<std::string, gd::InstructionMetadata > & spriteActions = GetAllActionsForObject("Sprite");
|
|
std::map<std::string, gd::InstructionMetadata > & spriteConditions = GetAllConditionsForObject("Sprite");
|
|
std::map<std::string, gd::ExpressionMetadata > & spriteExpressions = GetAllExpressionsForObject("Sprite");
|
|
spriteActions["ChangeBlendMode"].SetFunctionName("setBlendMode").SetIncludeFile("spriteruntimeobject.js");
|
|
spriteActions["Opacity"].SetFunctionName("setOpacity").SetGetter("getOpacity").SetIncludeFile("spriteruntimeobject.js");
|
|
spriteConditions["BlendMode"].SetFunctionName("getBlendMode").SetIncludeFile("spriteruntimeobject.js");
|
|
spriteConditions["Opacity"].SetFunctionName("getOpacity").SetIncludeFile("spriteruntimeobject.js");
|
|
|
|
spriteActions["ChangeAnimation"].SetFunctionName("setAnimation").SetGetter("getAnimation");
|
|
spriteActions["ChangeDirection"].SetFunctionName("setDirectionOrAngle").SetGetter("getDirectionOrAngle");
|
|
spriteActions["ChangeSprite"].SetFunctionName("setAnimationFrame").SetGetter("getAnimationFrame");
|
|
spriteConditions["Animation"].SetFunctionName("getAnimation");
|
|
spriteConditions["Direction"].SetFunctionName("getDirectionOrAngle");
|
|
spriteConditions["Sprite"].SetFunctionName("getAnimationFrame");
|
|
spriteConditions["AnimationEnded"].SetFunctionName("hasAnimationEnded");
|
|
spriteActions["PauseAnimation"].SetFunctionName("pauseAnimation");
|
|
spriteActions["PlayAnimation"].SetFunctionName("playAnimation");
|
|
spriteConditions["AnimStopped"].SetFunctionName("animationPaused");
|
|
spriteActions["ChangeAnimationSpeedScale"].SetFunctionName("setAnimationSpeedScale").SetGetter("getAnimationSpeedScale").SetManipulatedType("number").SetIncludeFile("spriteruntimeobject.js");
|
|
|
|
|
|
spriteActions["ChangeScaleWidth"].SetFunctionName("setScaleX").SetGetter("getScaleX");
|
|
spriteActions["ChangeScaleHeight"].SetFunctionName("setScaleY").SetGetter("getScaleY");
|
|
spriteActions["ChangeScale"].SetFunctionName("setScale").SetManipulatedType("number").SetGetter("getScale");
|
|
spriteConditions["ScaleWidth"].SetFunctionName("getScaleX");
|
|
spriteConditions["ScaleHeight"].SetFunctionName("getScaleY");
|
|
spriteActions["TourneVersPos"].SetFunctionName("rotateTowardPosition");
|
|
spriteActions["TourneVers"].SetFunctionName("turnTowardObject");
|
|
spriteActions["ChangeColor"].SetFunctionName("setColor");
|
|
spriteActions["FlipX"].SetFunctionName("flipX");
|
|
spriteActions["FlipY"].SetFunctionName("flipY");
|
|
spriteConditions["FlippedX"].SetFunctionName("isFlippedX");
|
|
spriteConditions["FlippedY"].SetFunctionName("isFlippedY");
|
|
|
|
GetAllConditions()["Collision"]
|
|
.AddCodeOnlyParameter("currentScene", "") //We need an extra parameter pointing to the scene.
|
|
.SetFunctionName("gdjs.evtTools.object.hitBoxesCollisionTest"); //No pixel perfect collision for now on the JS platform.
|
|
|
|
spriteExpressions["X"].SetFunctionName("getPointX");
|
|
spriteExpressions["Y"].SetFunctionName("getPointY");
|
|
spriteExpressions["PointX"].SetFunctionName("getPointX");
|
|
spriteExpressions["PointY"].SetFunctionName("getPointY");
|
|
spriteExpressions["Direc"].SetFunctionName("getDirectionOrAngle"); //Deprecated
|
|
spriteExpressions["Direction"].SetFunctionName("getDirectionOrAngle");
|
|
spriteExpressions["Anim"].SetFunctionName("getAnimation"); //Deprecated
|
|
spriteExpressions["Animation"].SetFunctionName("getAnimation");
|
|
spriteExpressions["Sprite"].SetFunctionName("getAnimationFrame");
|
|
spriteExpressions["AnimationSpeedScale"].SetFunctionName("getAnimationSpeedScale");
|
|
spriteExpressions["ScaleX"].SetFunctionName("getScaleX");
|
|
spriteExpressions["ScaleY"].SetFunctionName("getScaleY");
|
|
|
|
|
|
StripUnimplementedInstructionsAndExpressions(); //Unimplemented things are listed here:
|
|
/*
|
|
//Objects instructions:
|
|
{
|
|
obj.AddAction("CopyImageOnImageOfSprite",
|
|
GD_T("Copy an image on the current one of an object"),
|
|
GD_T("Copy an image on the current image of an object.\nNote that the source image must be preferably kept loaded in memory."),
|
|
GD_T("Copy image _PARAM2_ on the current of _PARAM0_ at _PARAM3_;_PARAM4_"),
|
|
GD_T("Effects"),
|
|
"res/copy24.png",
|
|
"res/copyicon.png")
|
|
|
|
.AddParameter("object", GD_T("Object"), "Sprite", false)
|
|
.AddCodeOnlyParameter("currentScene", "")
|
|
.AddParameter("string", GD_T("Name of the source image"), "",false)
|
|
.AddParameter("expression", GD_T("X position"), "",false)
|
|
.AddParameter("expression", GD_T("Y position"), "",false)
|
|
.AddParameter("yesorno", GD_T("Should the copy take in account the source transparency\?"), "",false)
|
|
.SetFunctionName("CopyImageOnImageOfCurrentSprite").SetIncludeFile("GDCpp/RuntimeSpriteObject.h");
|
|
|
|
|
|
|
|
obj.AddAction("CreateMaskFromColorOnActualImage", //Actual is indeed a mistake : Current should have been chosen.
|
|
GD_T("Make a color of the image of an object transparent"),
|
|
GD_T("Make a color of the image of an object transparent."),
|
|
GD_T("Make color _PARAM1_ of the current image of _PARAM0_ transparent"),
|
|
GD_T("Effects"),
|
|
"res/actions/opacity24.png",
|
|
"res/actions/opacity.png")
|
|
|
|
.AddParameter("object", GD_T("Object"), "Sprite", false)
|
|
.AddParameter("color", GD_T("Color to make transparent"), "",false)
|
|
.SetFunctionName("MakeColorTransparent").SetIncludeFile("GDCpp/RuntimeSpriteObject.h");
|
|
}
|
|
|
|
*/
|
|
}
|
|
|
|
}
|