Compare commits

...

18 Commits

Author SHA1 Message Date
Florian Rival
91072f7328 Fix autosave not launched before preview and protect against potential data loss on save 2020-06-11 22:57:51 +01:00
Nilay Majorwar
39334c6e55 Wrap some Mainframe functions in useCallback (#1807)
Don't show in changelog
2020-06-11 22:19:16 +01:00
Florian Rival
5f1a7bd72d Fix behaviors not working in an extension function when named differently than in the object
Fix #1796
2020-06-11 22:04:24 +01:00
Florian Rival
9ed2665542 Fix ladder climbing speed not working on existing games
Don't show in changelog
2020-06-10 22:01:10 +01:00
Sanskar Bajpai
ee338f6657 Add property to customize the ladder climbing speed for Platformer objects (#1578) 2020-06-10 21:43:59 +01:00
Florian Rival
8f876c51dc Fix warnings 2020-06-10 19:35:27 +01:00
Arthur Pacaud
23a409b80d Fix icon not shown for games manually built for Windows/macOS/Linux (#1737) 2020-06-10 17:26:37 +01:00
Florian Rival
4e0f9ebec4 Fix crashes when removing unused resources or resources with invalid paths
Fix #1792
2020-06-09 23:31:16 +01:00
Florian Rival
2ca593ba2b Add automatically generated types for GDevelop.js (#1800)
Don't show in changelog
2020-06-09 22:02:18 +01:00
Florian Rival
c63bb625e5 Add tabbed-menu-with-layers example 2020-06-09 09:16:09 +01:00
Florian Rival
c57e172299 Fix crash when removing all the child variables of a structure variable
Fix #1789
2020-06-04 19:56:11 +02:00
Florian Rival
a9cdeae475 Fix actions/conditions of behaviors not working when added from the context menu editor (when right clicking on "Add action" or "Add condition")
Fix #1715
2020-06-04 19:20:11 +02:00
Arthur Pacaud
931b945b21 Clarify GDCpp role in Readme (#1785) 2020-06-03 14:34:42 +02:00
Florian Rival
e2f21b8d3c Don't re-open the last project if opening a file (from command line or url)
Don't show in changelog
2020-06-01 20:12:26 +02:00
Harsimran Singh Virk
6ab2cb1384 Automatically re-open the project edited during last session (#1770)
* If a project is edited and GDevelop is closed, the project will be opened again the next time GDevelop is launched.
  * If the project is closed and GDevelop is then closed, it won't be re-opened automatically.
2020-06-01 19:57:13 +02:00
Sanskar Bajpai
f8e0288a44 Fix a typo in comments (#1769)
Don't show in changelog
2020-06-01 09:59:23 +02:00
Florian Rival
ff48589661 Fix potential crash when previewing/exporting a game 2020-05-31 19:39:14 +02:00
Florian Rival
50bdca3c44 Remove bad translation markers
Don't show in changelog
2020-05-30 23:12:05 +02:00
351 changed files with 14486 additions and 1286 deletions

View File

@@ -1,6 +1,8 @@
#include "GDCore/Events/CodeGeneration/EventsCodeGenerator.h"
#include <algorithm>
#include <utility>
#include "GDCore/CommonTools.h"
#include "GDCore/Events/CodeGeneration/EventsCodeGenerationContext.h"
#include "GDCore/Events/CodeGeneration/ExpressionCodeGenerator.h"
@@ -539,6 +541,7 @@ gd::String EventsCodeGenerator::GenerateActionCode(
if (MetadataProvider::HasBehaviorAction(
platform, behaviorType, action.GetType()) &&
instrInfos.parameters.size() >= 2) {
std::vector<gd::String> realObjects =
ExpandObjectsName(objectName, context);
for (std::size_t i = 0; i < realObjects.size(); ++i) {
@@ -628,7 +631,7 @@ gd::String EventsCodeGenerator::GenerateParameterCodes(
argOutput = "\"" + argOutput + "\"";
} else if (ParameterMetadata::IsBehavior(metadata.type)) {
argOutput = "\"" + ConvertToString(parameter) + "\"";
argOutput = GenerateGetBehaviorNameCode(parameter);
} else if (metadata.type == "key") {
argOutput = "\"" + ConvertToString(parameter) + "\"";
} else if (metadata.type == "password" || metadata.type == "musicfile" ||

View File

@@ -5,7 +5,9 @@
*/
#include "GDCore/Project/Variable.h"
#include <sstream>
#include "GDCore/Serialization/SerializerElement.h"
#include "GDCore/String.h"
#include "GDCore/TinyXml/tinyxml.h"
@@ -19,9 +21,7 @@ namespace gd {
*/
double Variable::GetValue() const {
if (!isNumber) {
stringstream ss;
ss << str;
ss >> value;
value = str.To<double>();
isNumber = true;
}
@@ -30,9 +30,7 @@ double Variable::GetValue() const {
const gd::String& Variable::GetString() const {
if (isNumber) {
stringstream s;
s << (value);
str = s.str();
str = gd::String::From(value);
isNumber = false;
}

View File

@@ -181,6 +181,39 @@ void DeclarePlatformBehaviorExtension(gd::PlatformExtension& extension) {
.SetGetter("GetMaxFallingSpeed")
.SetIncludeFile("PlatformBehavior/PlatformerObjectRuntimeBehavior.h");
aut.AddCondition(
"LadderClimbingSpeed",
_("Ladder climbing speed"),
_("Compare the ladder climbing speed (in pixels per "
"second)."),
_("the ladder climbing speed"),
_("Options"),
"CppPlatform/Extensions/platformerobjecticon24.png",
"CppPlatform/Extensions/platformerobjecticon16.png")
.AddParameter("object", _("Object"))
.AddParameter("behavior", _("Behavior"), "PlatformerObjectBehavior")
.UseStandardRelationalOperatorParameters("number")
.MarkAsAdvanced()
.SetFunctionName("GetLadderClimbingSpeed")
.SetIncludeFile("PlatformBehavior/PlatformerObjectRuntimeBehavior.h");
aut.AddAction(
"LadderClimbingSpeed",
_("Ladder climbing speed"),
_("Change the ladder climbing speed (in pixels per "
"second)."),
_("the ladder climbing speed"),
_("Options"),
"CppPlatform/Extensions/platformerobjecticon24.png",
"CppPlatform/Extensions/platformerobjecticon16.png")
.AddParameter("object", _("Object"))
.AddParameter("behavior", _("Behavior"), "PlatformerObjectBehavior")
.UseStandardOperatorParameters("number")
.MarkAsAdvanced()
.SetFunctionName("SetLadderClimbingSpeed")
.SetGetter("GetLadderClimbingSpeed")
.SetIncludeFile("PlatformBehavior/PlatformerObjectRuntimeBehavior.h");
aut.AddCondition("Acceleration",
_("Acceleration"),
_("Compare the acceleration of the object (in pixels per "
@@ -488,6 +521,16 @@ void DeclarePlatformBehaviorExtension(gd::PlatformExtension& extension) {
.SetFunctionName("GetMaxFallingSpeed")
.SetIncludeFile("PlatformBehavior/PlatformerObjectRuntimeBehavior.h");
aut.AddExpression("LadderClimbingSpeed",
_("Ladder climbing speed"),
_("Get the ladder climbing speed"),
_("Options"),
"CppPlatform/Extensions/platformerobjecticon16.png")
.AddParameter("object", _("Object"))
.AddParameter("behavior", _("Behavior"), "PlatformerObjectBehavior")
.SetFunctionName("GetLadderClimbingSpeed")
.SetIncludeFile("PlatformBehavior/PlatformerObjectRuntimeBehavior.h");
aut.AddExpression("Acceleration",
_("Acceleration"),
_("Acceleration"),

View File

@@ -70,6 +70,12 @@ class PlatformBehaviorJsExtension : public gd::PlatformExtension {
autExpressions["MaxFallingSpeed"].SetFunctionName("getMaxFallingSpeed");
autConditions["PlatformBehavior::Acceleration"].SetFunctionName(
"getAcceleration");
autActions["PlatformBehavior::LadderClimbingSpeed"]
.SetFunctionName("setLadderClimbingSpeed")
.SetGetter("getLadderClimbingSpeed");
autExpressions["LadderClimbingSpeed"].SetFunctionName("getLadderClimbingSpeed");
autConditions["PlatformBehavior::LadderClimbingSpeed"].SetFunctionName(
"getLadderClimbingSpeed");
autActions["PlatformBehavior::Acceleration"]
.SetFunctionName("setAcceleration")
.SetGetter("getAcceleration");

View File

@@ -33,6 +33,7 @@ void PlatformerObjectBehavior::InitializeContent(
behaviorContent.SetAttribute("roundCoordinates", true);
behaviorContent.SetAttribute("gravity", 1000);
behaviorContent.SetAttribute("maxFallingSpeed", 700);
behaviorContent.SetAttribute("ladderClimbingSpeed", 150);
behaviorContent.SetAttribute("acceleration", 1500);
behaviorContent.SetAttribute("deceleration", 1500);
behaviorContent.SetAttribute("maxSpeed", 250);
@@ -55,7 +56,7 @@ PlatformerObjectBehavior::GetProperties(
gd::String::From(behaviorContent.GetDoubleAttribute("gravity")));
properties[_("Jump speed")].SetValue(
gd::String::From(behaviorContent.GetDoubleAttribute("jumpSpeed")));
properties[_("jumpSustainTime")]
properties["jumpSustainTime"]
.SetValue(gd::String::From(
behaviorContent.GetDoubleAttribute("jumpSustainTime", 0)))
.SetLabel(_("Jump sustain time"))
@@ -65,6 +66,8 @@ PlatformerObjectBehavior::GetProperties(
"jumps."));
properties[_("Max. falling speed")].SetValue(
gd::String::From(behaviorContent.GetDoubleAttribute("maxFallingSpeed")));
properties[_("Ladder climbing speed")].SetValue(gd::String::From(
behaviorContent.GetDoubleAttribute("ladderClimbingSpeed", 150)));
properties[_("Acceleration")].SetValue(
gd::String::From(behaviorContent.GetDoubleAttribute("acceleration")));
properties[_("Deceleration")].SetValue(
@@ -116,6 +119,8 @@ bool PlatformerObjectBehavior::UpdateProperty(
behaviorContent.SetAttribute("gravity", value.To<double>());
else if (name == _("Max. falling speed"))
behaviorContent.SetAttribute("maxFallingSpeed", value.To<double>());
else if (name == _("Ladder climbing speed"))
behaviorContent.SetAttribute("ladderClimbingSpeed", value.To<double>());
else if (name == _("Acceleration"))
behaviorContent.SetAttribute("acceleration", value.To<double>());
else if (name == _("Deceleration"))
@@ -124,7 +129,7 @@ bool PlatformerObjectBehavior::UpdateProperty(
behaviorContent.SetAttribute("maxSpeed", value.To<double>());
else if (name == _("Jump speed"))
behaviorContent.SetAttribute("jumpSpeed", value.To<double>());
else if (name == _("jumpSustainTime"))
else if (name == "jumpSustainTime")
behaviorContent.SetAttribute("jumpSustainTime", value.To<double>());
else if (name == _("Slope max. angle")) {
double newMaxAngle = value.To<double>();

View File

@@ -27,6 +27,7 @@ PlatformerObjectRuntimeBehavior::PlatformerObjectRuntimeBehavior(
roundCoordinates(true),
gravity(1000),
maxFallingSpeed(700),
ladderClimbingSpeed(150),
acceleration(1500),
deceleration(1500),
maxSpeed(250),
@@ -64,6 +65,7 @@ PlatformerObjectRuntimeBehavior::PlatformerObjectRuntimeBehavior(
behaviorContent.GetBoolAttribute("roundCoordinates", false);
gravity = behaviorContent.GetDoubleAttribute("gravity");
maxFallingSpeed = behaviorContent.GetDoubleAttribute("maxFallingSpeed");
ladderClimbingSpeed = behaviorContent.GetDoubleAttribute("ladderClimbingSpeed");
acceleration = behaviorContent.GetDoubleAttribute("acceleration");
deceleration = behaviorContent.GetDoubleAttribute("deceleration");
maxSpeed = behaviorContent.GetDoubleAttribute("maxSpeed");
@@ -245,8 +247,8 @@ void PlatformerObjectRuntimeBehavior::DoStepPreEvents(RuntimeScene& scene) {
!ignoreDefaultControls && scene.GetInputManager().IsKeyPressed("Up");
downKey |=
!ignoreDefaultControls && scene.GetInputManager().IsKeyPressed("Down");
if (upKey) requestedDeltaY -= 150 * timeDelta;
if (downKey) requestedDeltaY += 150 * timeDelta;
if (upKey) requestedDeltaY -= ladderClimbingSpeed * timeDelta;
if (downKey) requestedDeltaY += ladderClimbingSpeed * timeDelta;
// Coming to an extremity of a ladder
if (!IsOverlappingLadder(potentialObjects)) {
@@ -449,7 +451,7 @@ void PlatformerObjectRuntimeBehavior::DoStepPreEvents(RuntimeScene& scene) {
// this extra check).
bool canLand = requestedDeltaY >= 0;
// Check if landing on a new floor: (Exclude already overlapped jump truh)
// Check if landing on a new floor: (Exclude already overlapped jump thru)
std::set<PlatformRuntimeBehavior*> collidingObjects =
GetPlatformsCollidingWith(potentialObjects, overlappedJumpThru);
if (canLand && !collidingObjects.empty()) { // Just landed on floor

View File

@@ -33,6 +33,7 @@ class GD_EXTENSION_API PlatformerObjectRuntimeBehavior
double GetGravity() const { return gravity; };
double GetMaxFallingSpeed() const { return maxFallingSpeed; };
double GetLadderClimbingSpeed() const { return ladderClimbingSpeed; };
double GetAcceleration() const { return acceleration; };
double GetDeceleration() const { return deceleration; };
double GetMaxSpeed() const { return maxSpeed; };
@@ -43,6 +44,7 @@ class GD_EXTENSION_API PlatformerObjectRuntimeBehavior
void SetMaxFallingSpeed(double maxFallingSpeed_) {
maxFallingSpeed = maxFallingSpeed_;
};
void SetLadderClimbingSpeed(double ladderClimbingSpeed_) { ladderClimbingSpeed = ladderClimbingSpeed_; };
void SetAcceleration(double acceleration_) { acceleration = acceleration_; };
void SetDeceleration(double deceleration_) { deceleration = deceleration_; };
void SetMaxSpeed(double maxSpeed_) { maxSpeed = maxSpeed_; };
@@ -180,6 +182,7 @@ class GD_EXTENSION_API PlatformerObjectRuntimeBehavior
///< X and Y axis.
double gravity; ///< In pixels.seconds^-2
double maxFallingSpeed; ///< In pixels.seconds^-1
double ladderClimbingSpeed; ///<In pixels.seconds^-1
double acceleration; ///< In pixels.seconds^-2
double deceleration; ///< In pixels.seconds^-2
double maxSpeed; ///< In pixels.seconds^-1

View File

@@ -31,6 +31,7 @@ gdjs.PlatformerObjectRuntimeBehavior = function(
this._roundCoordinates = behaviorData.roundCoordinates;
this._gravity = behaviorData.gravity;
this._maxFallingSpeed = behaviorData.maxFallingSpeed;
this._ladderClimbingSpeed = behaviorData.ladderClimbingSpeed || 150;
this._acceleration = behaviorData.acceleration;
this._deceleration = behaviorData.deceleration;
this._maxSpeed = behaviorData.maxSpeed;
@@ -266,8 +267,8 @@ gdjs.PlatformerObjectRuntimeBehavior.prototype.doStepPreEvents = function(
.getGame()
.getInputManager()
.isKeyPressed(DOWNKEY);
if (this._upKey) requestedDeltaY -= 150 * timeDelta;
if (this._downKey) requestedDeltaY += 150 * timeDelta;
if (this._upKey) requestedDeltaY -= this._ladderClimbingSpeed * timeDelta;
if (this._downKey) requestedDeltaY += this._ladderClimbingSpeed * timeDelta;
//Coming to an extremity of a ladder
if (!this._isOverlappingLadder()) {
@@ -884,6 +885,14 @@ gdjs.PlatformerObjectRuntimeBehavior.prototype.getMaxFallingSpeed = function() {
return this._maxFallingSpeed;
};
/**
* Get the speed used to move on Y axis when climbing a ladder.
* @returns {number} The speed of ladder climbing.
*/
gdjs.PlatformerObjectRuntimeBehavior.prototype.getLadderClimbingSpeed = function() {
return this._ladderClimbingSpeed;
};
/**
* Get the acceleration value of the Platformer Object.
* @returns {number} The current acceleration.
@@ -942,6 +951,16 @@ gdjs.PlatformerObjectRuntimeBehavior.prototype.setMaxFallingSpeed = function(
this._maxFallingSpeed = maxFallingSpeed;
};
/**
* Set the speed used to move on Y axis when climbing a ladder.
* @param {number} ladderClimbingSpeed The speed of ladder climbing.
*/
gdjs.PlatformerObjectRuntimeBehavior.prototype.setLadderClimbingSpeed = function (
ladderClimbingSpeed
) {
this._ladderClimbingSpeed = ladderClimbingSpeed;
};
/**
* Set the acceleration of the Platformer Object.
* @param {number} acceleration The new acceleration.

View File

@@ -166,7 +166,7 @@ gd::String EventsCodeGenerator::GenerateBehaviorEventsFunctionCode(
// as a parameter called "Behavior".
"var Behavior = this.name;\n" +
codeGenerator.GenerateEventsFunctionContext(
eventsFunction.GetParameters(), "Object");
eventsFunction.GetParameters(), "Object", "Behavior");
gd::String output = GenerateEventsListCompleteFunctionCode(
project,
@@ -207,7 +207,8 @@ gd::String EventsCodeGenerator::GenerateEventsFunctionParameterDeclarationsList(
gd::String EventsCodeGenerator::GenerateEventsFunctionContext(
const vector<gd::ParameterMetadata>& parameters,
const gd::String& thisObjectName) {
const gd::String& thisObjectName,
const gd::String& thisBehaviorName) {
// When running in the context of a function generated from events, we
// need some indirection to deal with objects, behaviors and parameters in
// general:
@@ -216,32 +217,61 @@ gd::String EventsCodeGenerator::GenerateEventsFunctionContext(
// of objects.
// * Behaviors are passed as string, representing the name of the behavior.
// This can differ from the name used to refer to the behavior in the events
// of the function (for example, a behavior can simply called "Behavior" in
// of the function (for example, a behavior can simply be called "Behavior" in
// the parameter name).
// * For other parameters, allow to access to them without transformation.
// Conditions/expressions are available to deal with them in events.
gd::String objectsGettersMap;
gd::String behaviorsGetterMap;
gd::String objectsCreators;
gd::String objectArraysMap;
gd::String behaviorNamesMap;
gd::String argumentsGetters;
// If we have an object considered as the current object ("this") (usually
// called Object in behavior events function), generate a slightly more
// optimized getter for it (bypassing "Object" hashmap, and directly return
// the array containing it).
if (!thisObjectName.empty()) {
objectsGettersMap +=
ConvertToStringExplicit(thisObjectName) + ": " + thisObjectName + "\n";
objectArraysMap +=
ConvertToStringExplicit(thisObjectName) + ": thisObjectList\n";
}
// If we have a behavior considered as the current behavior ("this") (usually
// called Behavior in behavior events function), generate a slightly more
// optimized getter for it.
if (!thisBehaviorName.empty()) {
behaviorNamesMap += ConvertToStringExplicit(thisBehaviorName) + ": " +
thisBehaviorName + "\n";
}
for (const auto& parameter : parameters) {
if (parameter.GetName().empty()) continue;
if (gd::ParameterMetadata::IsObject(parameter.GetType())) {
if (parameter.GetName() == thisObjectName) {
continue;
}
// Generate map that will be used to get the lists of objects passed
// as parameters
// as parameters (either as objects lists or array).
gd::String comma = objectsGettersMap.empty() ? "" : ", ";
objectsGettersMap += comma +
ConvertToStringExplicit(parameter.GetName()) + ": " +
parameter.GetName() + "\n";
objectArraysMap += comma + ConvertToStringExplicit(parameter.GetName()) +
": gdjs.objectsListsToArray(" + parameter.GetName() +
")\n";
} else if (gd::ParameterMetadata::IsBehavior(parameter.GetType())) {
if (parameter.GetName() == thisBehaviorName) {
continue;
}
// Generate map that will be used to transform from behavior name used in
// function to the "real" behavior name from the caller.
gd::String comma = behaviorsGetterMap.empty() ? "" : ", ";
behaviorsGetterMap += comma +
ConvertToStringExplicit(parameter.GetName()) +
": " + parameter.GetName() + "\n";
gd::String comma = behaviorNamesMap.empty() ? "" : ", ";
behaviorNamesMap += comma + ConvertToStringExplicit(parameter.GetName()) +
": " + parameter.GetName() + "\n";
} else {
argumentsGetters +=
"if (argName === " + ConvertToStringExplicit(parameter.GetName()) +
@@ -249,35 +279,27 @@ gd::String EventsCodeGenerator::GenerateEventsFunctionContext(
}
}
// If we have an object considered as the current object ("this") (usually
// called Object in behavior events function), generate a slightly more
// optimized getter for it (bypassing "Object" hashmap, and directly return
// the array containing it).
gd::String thisObjectGetterCode =
thisObjectName.empty()
? ""
: "if (objectName === " + ConvertToStringExplicit(thisObjectName) +
") { return thisObjectList; }";
return gd::String("var eventsFunctionContext = {\n") +
// The object name to parameter map:
" _objectsMap: {\n" + objectsGettersMap +
"},\n"
// The object name to arrays map:
" _objectArraysMap: {\n" +
objectArraysMap +
"},\n"
// The behavior name to parameter map:
" _behaviorNamesMap: {\n" +
behaviorsGetterMap +
behaviorNamesMap +
"},\n"
// Function that will be used to query objects, when a new object list
// is needed by events.
// is needed by events. We assume it's used a lot by the events
// generated code, so we cache the arrays in a map.
" getObjects: function(objectName) {\n" +
" " + thisObjectGetterCode +
" var objectsList = "
"eventsFunctionContext._objectsMap[objectName];\n" +
" return objectsList ? gdjs.objectsListsToArray(objectsList) : "
"[];\n"
" return eventsFunctionContext._objectArraysMap[objectName] || "
"[];\n" +
" },\n" +
// Function that can be used in JS code to get the lists of objects
// and filter/alter them.
// and filter/alter them (not actually used in events).
" getObjectsLists: function(objectName) {\n" +
" return eventsFunctionContext._objectsMap[objectName] || null;\n"
" },\n" +
@@ -285,7 +307,6 @@ gd::String EventsCodeGenerator::GenerateEventsFunctionContext(
// can be different between the parameter name vs the actual behavior
// name passed as argument).
" getBehaviorName: function(behaviorName) {\n" +
// TODO: Use parentEventsFunctionContext?
" return eventsFunctionContext._behaviorNamesMap[behaviorName];\n"
" },\n" +
// Creator function that will be used to create new objects. We
@@ -296,6 +317,9 @@ gd::String EventsCodeGenerator::GenerateEventsFunctionContext(
" createObject: function(objectName) {\n"
" var objectsList = "
"eventsFunctionContext._objectsMap[objectName];\n" +
// TODO: we could speed this up by storing a map of object names, but the
// cost of creating/storing it for each events function might not be
// worth it.
" if (objectsList) {\n" +
" return parentEventsFunctionContext ?\n" +
" "

View File

@@ -328,7 +328,8 @@ class EventsCodeGenerator : public gd::EventsCodeGenerator {
*/
gd::String GenerateEventsFunctionContext(
const std::vector<gd::ParameterMetadata>& parameters,
const gd::String& thisObjectName = "");
const gd::String& thisObjectName = "",
const gd::String& thisBehaviorName = "");
gd::String GenerateEventsFunctionReturn(
const gd::EventsFunction& eventFunction);

View File

@@ -614,21 +614,23 @@ void ExporterHelper::RemoveIncludes(bool pixiRenderers,
bool cocosRenderers,
std::vector<gd::String> &includesFiles) {
if (pixiRenderers) {
for (auto it = includesFiles.begin(); it != includesFiles.end();) {
if (it->find("pixi-renderer") != gd::String::npos ||
it->find("pixi-filter") != gd::String::npos)
includesFiles.erase(it++);
for (size_t i = 0; i < includesFiles.size();) {
const gd::String &includeFile = includesFiles[i];
if (includeFile.find("pixi-renderer") != gd::String::npos ||
includeFile.find("pixi-filter") != gd::String::npos)
includesFiles.erase(includesFiles.begin() + i);
else
++it;
++i;
}
}
if (cocosRenderers) {
for (auto it = includesFiles.begin(); it != includesFiles.end();) {
if (it->find("cocos-renderer") != gd::String::npos ||
it->find("cocos-shader") != gd::String::npos)
includesFiles.erase(it++);
for (size_t i = 0; i < includesFiles.size();) {
const gd::String &includeFile = includesFiles[i];
if (includeFile.find("cocos-renderer") != gd::String::npos ||
includeFile.find("cocos-shader") != gd::String::npos)
includesFiles.erase(includesFiles.begin() + i);
else
++it;
++i;
}
}
}

View File

@@ -8,5 +8,10 @@
"dependencies": {},
"devDependencies": {
"electron": "3.0.9"
},
"build": {
"directories": {
"buildResources": "buildResources"
}
}
}
}

View File

@@ -395,7 +395,7 @@ interface Behavior {
void InitializeContent([Ref] SerializerElement behaviorContent);
};
[JSImplementation="Behavior"]
[JSImplementation=Behavior]
interface BehaviorJsImplementation {
void BehaviorJsImplementation();
@@ -425,7 +425,7 @@ interface BehaviorsSharedData {
void InitializeContent([Ref] SerializerElement behaviorSharedDataContent);
};
[JSImplementation="BehaviorsSharedData"]
[JSImplementation=BehaviorsSharedData]
interface BehaviorSharedDataJsImplementation {
void BehaviorSharedDataJsImplementation();
@@ -472,7 +472,7 @@ interface UniquePtrObject {
gdObject release();
};
[JSImplementation="gdObject"]
[JSImplementation=gdObject]
interface ObjectJsImplementation {
void ObjectJsImplementation();
[Value] UniquePtrObject Clone();
@@ -801,7 +801,7 @@ interface HighestZOrderFinder {
interface InitialInstanceFunctor {};
interface InitialInstanceJSFunctorWrapper {};
[JSImplementation="InitialInstanceJSFunctorWrapper"]
[JSImplementation=InitialInstanceJSFunctorWrapper]
interface InitialInstanceJSFunctor {
void InitialInstanceJSFunctor();
@@ -1856,7 +1856,7 @@ interface EventsFunctionsExtension {
interface AbstractFileSystem {
};
[JSImplementation="AbstractFileSystem"]
[JSImplementation=AbstractFileSystem]
interface AbstractFileSystemJS {
void AbstractFileSystemJS();
@@ -1918,7 +1918,7 @@ interface EventsContext {
};
interface EventsContextAnalyzer {
void EventsContextAnalyzer([Const, Ref] Platform platform, [Ref] Project project, [Ref] Layout layout);
void EventsContextAnalyzer([Const, Ref] Platform platform, [Ref] ObjectsContainer globalObjectsContainer, [Ref] ObjectsContainer objectsContainer);
[Const, Ref] EventsContext GetEventsContext();
//Inherited from ArbitraryEventsWorker
@@ -1927,7 +1927,7 @@ interface EventsContextAnalyzer {
interface ArbitraryResourceWorker {
};
[JSImplementation="ArbitraryResourceWorker"]
[JSImplementation=ArbitraryResourceWorker]
interface ArbitraryResourceWorkerJS {
void ArbitraryResourceWorkerJS();

View File

@@ -123,6 +123,15 @@ module.exports = function (grunt) {
},
},
},
// Copy the library to newIDE
generateTypes: {
command: 'node scripts/generate-types.js',
options: {
execOptions: {
cwd: __dirname,
},
},
},
},
clean: {
options: { force: true },
@@ -149,5 +158,9 @@ module.exports = function (grunt) {
'newer:shell:updateGDBindings',
'shell:make',
]);
grunt.registerTask('build', ['build:raw', 'shell:copyToNewIDE']);
grunt.registerTask('build', [
'build:raw',
'shell:copyToNewIDE',
'shell:generateTypes',
]);
};

File diff suppressed because it is too large Load Diff

View File

@@ -32,7 +32,8 @@
"grunt-shell": "^2.1.0",
"grunt-string-replace": "^1.3.1",
"jest": "^23.5.0",
"shelljs": "^0.8.4"
"shelljs": "^0.8.4",
"webidl-tools": "git://github.com/4ian/webidl-tools.git#e2e4253564250952b99818db19fc78c87d8b40ae"
},
"jest": {
"testEnvironment": "node",

View File

@@ -0,0 +1,293 @@
/**
* This uses the IDL definitions (Bindings.idl),
* to generate types that can be consumed in the IDE codebase.
*
* Bindings.idl is also used by Emscripten
* to generate the JS interface to the WebAssembly compiled C++ code of GDCore/GDJS/GDCpp.
* The parsers and code generation have a few hacks (see postjs.js), so
* we need to also do some hacks/manipulation on the input and some resulting files.
*/
const shell = require('shelljs');
const path = require('path');
const fs = require('fs');
shell.cd(path.join(__dirname, '..'));
const idlTempFolder = fs.mkdtempSync('gdevelopjs-cleaned-bindings-idl');
// Remove some "extended attributes" from the webIDL definitions as they
// are not supported by the webidl2.js parser used by "webidl-tools".
shell.cp('-f', 'Bindings/Bindings.idl', idlTempFolder);
const idlFile = path.join(idlTempFolder, 'Bindings.idl');
shell.sed('-i', /\[Prefix="sf::"\]/, '// Removed sf prefix', idlFile);
shell.sed('-i', /\[Prefix="gdjs::"\]/, '//Removed gdjs prefix', idlFile);
shell.sed(
'-i',
/\[Prefix="gd::InstructionMetadata::"\]/,
'//Removed gd::InstructionMetadata prefix',
idlFile
);
// Don't remove the "types" folder because then Flow
// is not loading the files. This means a removed class must
// have its typing file be removed manually.
// shell.rm('-rf', 'types/');
// Run "webidl-tools flow" that will take care of converting
// the webIDL declarations to Flow classes.
const webidlToolsFlowResult = shell.exec(
`node node_modules/.bin/webidl-tools flow --out types` +
` --module-name libGDevelop` +
// Prefix all classes by "gd", to easily recognise them
// in the IDE codebase:
` --prefix-interfaces gd` +
// Add "delete" method (see postjs.js) and "ptr"
// (as it's used in the codebase)
` --add-delete-operation` +
` --add-emscripten-ptr-attribute` +
// Transform functions from UpperCamelCase to lowerCamelCase.
` --uncapitalize-operations` +
// Static functions are prefixed
` --static-operation-prefix STATIC_` +
// Functions starting by WRAPPED_, MAP_, FREE_ will be
// stripped of their prefix (see postjs.js):
` --rename "s/WRAPPED_//" --rename "s/MAP_//" --rename "s/FREE_//"` +
// Functions starting by CLONE_ will be renamed to clone
// (see postjs.js and update-bindings.js)
` --rename "s/CLONE_.*/clone/"` +
` ${idlFile}`,
{},
(code, stdout, stderr) => {
fs.unlinkSync(idlFile);
fs.rmdirSync(idlTempFolder);
if (stdout.length > 1000) {
shell.echo(
'❌ The output of "webidl-tools flow" is suspicously long. Considering as an error'
);
shell.echo(
' Is Bindings.idl improperly formatted, or using a syntax not understood by "webidl-tools flow"?'
);
shell.exit(1);
}
fs.writeFileSync(
'types/other-adhoc-types.js',
`// Automatically generated by GDevelop.js/scripts/generate-types.js
declare type gdSerializable = any;
declare type gdEffectsContainer = gdLayer;
declare type gdEmscriptenObject = {
ptr: number;
};
`
);
// Fix enums, that are numbers and can be accessed from their enclosing class.
fs.writeFileSync(
'types/eventsfunction_functiontype.js',
`// Automatically generated by GDevelop.js/scripts/generate-types.js
type EventsFunction_FunctionType = 0 | 1 | 2 | 3`
);
shell.sed(
'-i',
'declare class gdEventsFunction {',
[
'declare class gdEventsFunction {',
' static Action: 0;',
' static Condition: 1;',
' static Expression: 2;',
' static StringExpression: 3;',
].join('\n'),
'types/gdeventsfunction.js'
);
fs.writeFileSync(
'types/expressioncompletiondescription_completionkind.js',
`// Automatically generated by GDevelop.js/scripts/generate-types.js
type ExpressionCompletionDescription_CompletionKind = 0 | 1 | 2 | 3`
);
shell.sed(
'-i',
'declare class gdExpressionCompletionDescription {',
[
'declare class gdExpressionCompletionDescription {',
' static Object: 0;',
' static Behavior: 1;',
' static Expression: 2;',
' static Variable: 3;',
].join('\n'),
'types/gdexpressioncompletiondescription.js'
);
fs.writeFileSync(
'types/particleemitterobject_renderertype.js',
`// Automatically generated by GDevelop.js/scripts/generate-types.js
type ParticleEmitterObject_RendererType = 0 | 1 | 2`
);
shell.sed(
'-i',
'declare class gdParticleEmitterObject {',
[
'declare class gdParticleEmitterObject {',
' static Point: 0;',
' static Line: 1;',
' static Quad: 2;',
].join('\n'),
'types/gdparticleemitterobject.js'
);
// Add convenience methods that are manually added (see postjs.js):
shell.sed(
'-i',
'declare class libGDevelop {',
[
'declare class libGDevelop {',
' getPointer(gdEmscriptenObject): number;',
' castObject<T>(gdEmscriptenObject, Class<T>): T;',
' compare(gdEmscriptenObject, gdEmscriptenObject): boolean;',
'',
' getTypeOfObject(globalObjectsContainer: gdObjectsContainer, objectsContainer: gdObjectsContainer, objectName: string, searchInGroups: boolean): string;',
' getTypeOfBehavior(globalObjectsContainer: gdObjectsContainer, objectsContainer: gdObjectsContainer, objectName: string, searchInGroups: boolean): string;',
' getBehaviorsOfObject(globalObjectsContainer: gdObjectsContainer, objectsContainer: gdObjectsContainer, objectName: string, searchInGroups: boolean): gdVectorString;',
'',
' removeFromVectorParameterMetadata(gdVectorParameterMetadata, index: number): void;',
'',
` asStandardEvent(gdBaseEvent): gdStandardEvent;`,
` asRepeatEvent(gdBaseEvent): gdRepeatEvent;`,
` asWhileEvent(gdBaseEvent): gdWhileEvent;`,
` asForEachEvent(gdBaseEvent): gdForEachEvent;`,
` asCommentEvent(gdBaseEvent): gdCommentEvent;`,
` asGroupEvent(gdBaseEvent): gdGroupEvent;`,
` asLinkEvent(gdBaseEvent): gdLinkEvent;`,
` asJsCodeEvent(gdBaseEvent): gdJsCodeEvent;`,
` asPlatform(gdPlatform): gdPlatform;`,
'',
` asSpriteObject(gdObject): gdSpriteObject;`,
` asTiledSpriteObject(gdObject): gdTiledSpriteObject;`,
` asPanelSpriteObject(gdObject): gdPanelSpriteObject;`,
` asTextObject(gdObject): gdTextObject;`,
` asShapePainterObject(gdObject): gdShapePainterObject;`,
` asAdMobObject(gdObject): gdAdMobObject;`,
` asTextEntryObject(gdObject): gdTextEntryObject;`,
` asParticleEmitterObject(gdObject): gdParticleEmitterObject;`,
` asObjectJsImplementation(gdObject): gdObjectJsImplementation;`,
'',
` asImageResource(gdResource): gdImageResource;`,
'',
].join('\n'),
'types/libgdevelop.js'
);
shell.sed(
'-i',
'declare class gdVectorString {',
'declare class gdVectorString {\n toJSArray(): Array<string>;',
'types/gdvectorstring.js'
);
shell.sed(
'-i',
'declare class gdSerializer {',
'declare class gdSerializer {\n static fromJSObject(object: Object): gdSerializerElement;',
'types/gdserializer.js'
);
shell.sed(
'-i',
'declare class gdInstructionsList {',
'declare class gdInstructionsList {\n push_back(gdInstruction): void;',
'types/gdinstructionslist.js'
);
// Add inheritance not expressed in Bindings.idl.
// TODO: these should be expressed in Bindings.idl using "implements".
shell.sed(
'-i',
'declare class gdProject {',
'declare class gdProject extends gdObjectsContainer {',
'types/gdproject.js'
);
shell.sed(
'-i',
'declare class gdLayout {',
'declare class gdLayout extends gdObjectsContainer {',
'types/gdlayout.js'
);
shell.sed(
'-i',
'declare class gdEventsFunctionsExtension {',
'declare class gdEventsFunctionsExtension extends gdEventsFunctionsContainer {',
'types/gdeventsfunctionsextension.js'
);
shell.sed(
'-i',
'declare class gdBehaviorJsImplementation {',
'declare class gdBehaviorJsImplementation extends gdBehavior {',
'types/gdbehaviorjsimplementation.js'
);
shell.sed(
'-i',
'declare class gdJsPlatform {',
'declare class gdJsPlatform extends gdPlatform {',
'types/gdjsplatform.js'
);
shell.sed(
'-i',
'declare class gdExpressionValidator {',
'declare class gdExpressionValidator extends gdExpressionParser2NodeWorker {',
'types/gdexpressionvalidator.js'
);
shell.sed(
'-i',
'declare class gdHighestZOrderFinder {',
'declare class gdHighestZOrderFinder extends gdInitialInstanceFunctor {',
'types/gdhighestzorderfinder.js'
);
shell.sed(
'-i',
'declare class gdResourcesInUseHelper {',
'declare class gdResourcesInUseHelper extends gdArbitraryResourceWorker {',
'types/gdresourcesinusehelper.js'
);
// Rename classes from GDJS:
shell.sed(
'-i',
'declare class gdExporter {',
'declare class gdjsExporter {',
'types/gdexporter.js'
);
// Improve typing of resources kind.
shell.sed(
'-i',
/setKind\(kind: string\): void/,
"setKind(kind: 'image' | 'audio' | 'font' | 'video' | 'json'): void",
'types/gdresource.js'
);
shell.sed(
'-i',
/getKind\(\): string/,
"getKind(): 'image' | 'audio' | 'font' | 'video' | 'json'",
'types/gdresource.js'
);
// Add missing declaration of set_/get_ functions, automatically added by Emscripten
// for attributes:
shell.sed(
'-i',
'x: number;',
'x: number;\n set_x(number): void;\n get_x(): number;',
'types/gdvector2f.js'
);
shell.sed(
'-i',
'y: number;',
'y: number;\n set_y(number): void;\n get_y(): number;',
'types/gdvector2f.js'
);
// Add a notice that the file is auto-generated.
shell.sed(
'-i',
'declare class',
'// Automatically generated by GDevelop.js/scripts/generate-types.js\ndeclare class',
'types/*.js'
);
shell.echo('✅ Properly generated GDevelop.js types.');
}
);

View File

@@ -0,0 +1,2 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
type EventsFunction_FunctionType = 0 | 1 | 2 | 3

View File

@@ -0,0 +1,2 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
type ExpressionCompletionDescription_CompletionKind = 0 | 1 | 2 | 3

View File

@@ -0,0 +1,5 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdAbstractFileSystem {
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,18 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdAbstractFileSystemJS {
constructor(): void;
mkDir(dir: string): void;
dirExists(dir: string): void;
clearDir(dir: string): void;
getTempDir(): string;
fileNameFrom(dir: string): string;
dirNameFrom(dir: string): string;
isAbsolute(fn: string): boolean;
copyFile(src: string, dest: string): void;
writeToFile(fn: string, content: string): void;
readFile(fn: string): string;
readDir(dir: string): gdVectorString;
fileExists(fn: string): boolean;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,15 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdAnimation {
constructor(): void;
setName(name: string): void;
getName(): string;
setDirectionsCount(count: number): void;
getDirectionsCount(): number;
getDirection(index: number): gdDirection;
setDirection(direction: gdDirection, index: number): void;
hasNoDirections(): boolean;
useMultipleDirections(): boolean;
setUseMultipleDirections(enable: boolean): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,6 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdArbitraryEventsWorker {
launch(events: gdEventsList): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,5 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdArbitraryResourceWorker {
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,9 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdArbitraryResourceWorkerJS {
constructor(): void;
exposeImage(image: string): void;
exposeShader(shader: string): void;
exposeFile(file: string): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,6 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdAudioResource extends gdResource {
constructor(): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,19 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdBaseEvent {
constructor(): void;
clone(): gdBaseEvent;
getType(): string;
setType(type: string): void;
isExecutable(): boolean;
canHaveSubEvents(): boolean;
hasSubEvents(): boolean;
getSubEvents(): gdEventsList;
isDisabled(): boolean;
setDisabled(disable: boolean): void;
isFolded(): boolean;
setFolded(folded: boolean): void;
serializeTo(element: gdSerializerElement): void;
unserializeFrom(project: gdProject, element: gdSerializerElement): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,11 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdBehavior {
constructor(): void;
clone(): gdBehavior;
getTypeName(): string;
getProperties(behaviorContent: gdSerializerElement, project: gdProject): gdMapStringPropertyDescriptor;
updateProperty(behaviorContent: gdSerializerElement, name: string, value: string, project: gdProject): boolean;
initializeContent(behaviorContent: gdSerializerElement): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,9 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdBehaviorCodeGenerator {
constructor(project: gdProject): void;
generateRuntimeBehaviorCompleteCode(extensionName: string, eventsBasedBehavior: gdEventsBasedBehavior, codeNamespace: string, behaviorMethodMangledNames: gdMapStringString, includes: gdSetString, compilationForRuntime: boolean): string;
static getBehaviorPropertyGetterName(propertyName: string): string;
static getBehaviorPropertySetterName(propertyName: string): string;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,13 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdBehaviorContent {
constructor(name: string, type: string): void;
clone(): gdBehaviorContent;
setName(name: string): void;
getName(): string;
getTypeName(): string;
getContent(): gdSerializerElement;
serializeTo(element: gdSerializerElement): void;
unserializeFrom(element: gdSerializerElement): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,9 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdBehaviorJsImplementation extends gdBehavior {
constructor(): void;
getProperties(behaviorContent: gdSerializerElement, project: gdProject): gdMapStringPropertyDescriptor;
updateProperty(behaviorContent: gdSerializerElement, name: string, value: string, project: gdProject): boolean;
initializeContent(behaviorContent: gdSerializerElement): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,24 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdBehaviorMetadata {
getName(): string;
getFullName(): string;
getDefaultName(): string;
getDescription(): string;
getGroup(): string;
getIconFilename(): string;
getHelpPath(): string;
addScopedCondition(name: string, fullname: string, description: string, sentence: string, group: string, icon: string, smallicon: string): gdInstructionMetadata;
addScopedAction(name: string, fullname: string, description: string, sentence: string, group: string, icon: string, smallicon: string): gdInstructionMetadata;
addCondition(name: string, fullname: string, description: string, sentence: string, group: string, icon: string, smallicon: string): gdInstructionMetadata;
addAction(name: string, fullname: string, description: string, sentence: string, group: string, icon: string, smallicon: string): gdInstructionMetadata;
addExpression(name: string, fullname: string, description: string, group: string, smallicon: string): gdExpressionMetadata;
addStrExpression(name: string, fullname: string, description: string, group: string, smallicon: string): gdExpressionMetadata;
setIncludeFile(includeFile: string): gdBehaviorMetadata;
addIncludeFile(includeFile: string): gdBehaviorMetadata;
setObjectType(objectType: string): gdBehaviorMetadata;
getObjectType(): string;
get(): gdBehavior;
getSharedDataInstance(): gdBehaviorsSharedData;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,9 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdBehaviorSharedDataJsImplementation {
constructor(): void;
getProperties(behaviorSharedDataContent: gdSerializerElement, project: gdProject): gdMapStringPropertyDescriptor;
updateProperty(behaviorSharedDataContent: gdSerializerElement, name: string, value: string, project: gdProject): boolean;
initializeContent(behaviorSharedDataContent: gdSerializerElement): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,9 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdBehaviorsSharedData {
constructor(): void;
getProperties(behaviorSharedDataContent: gdSerializerElement, project: gdProject): gdMapStringPropertyDescriptor;
updateProperty(behaviorSharedDataContent: gdSerializerElement, name: string, value: string, project: gdProject): boolean;
initializeContent(behaviorSharedDataContent: gdSerializerElement): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,29 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdCommentEvent {
constructor(): void;
getComment(): string;
setComment(type: string): void;
setBackgroundColor(r: number, g: number, b: number): void;
getBackgroundColorRed(): number;
getBackgroundColorGreen(): number;
getBackgroundColorBlue(): number;
setTextColor(r: number, g: number, b: number): void;
getTextColorRed(): number;
getTextColorGreen(): number;
getTextColorBlue(): number;
clone(): gdCommentEvent;
getType(): string;
setType(type: string): void;
isExecutable(): boolean;
canHaveSubEvents(): boolean;
hasSubEvents(): boolean;
getSubEvents(): gdEventsList;
isDisabled(): boolean;
setDisabled(disable: boolean): void;
isFolded(): boolean;
setFolded(folded: boolean): void;
serializeTo(element: gdSerializerElement): void;
unserializeFrom(project: gdProject, element: gdSerializerElement): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,20 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdDirection {
constructor(): void;
addSprite(sprite: gdSprite): void;
getSprite(index: number): gdSprite;
getSpritesCount(): number;
hasNoSprites(): boolean;
removeSprite(index: number): void;
removeAllSprites(): void;
isLooping(): boolean;
setLoop(enable: boolean): void;
getTimeBetweenFrames(): number;
setTimeBetweenFrames(time: number): void;
swapSprites(first: number, second: number): void;
moveSprite(oldIndex: number, newIndex: number): void;
setMetadata(metadata: string): void;
getMetadata(): string;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,22 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdEffect {
constructor(): void;
setName(name_: string): void;
getName(): string;
setEffectType(effectType_: string): void;
getEffectType(): string;
setDoubleParameter(name: string, value: number): void;
getDoubleParameter(name: string): number;
setStringParameter(name: string, value: string): void;
getStringParameter(name: string): string;
setBooleanParameter(name: string, value: boolean): void;
getBooleanParameter(name: string): boolean;
getAllDoubleParameters(): gdMapStringDouble;
getAllStringParameters(): gdMapStringString;
getAllBooleanParameters(): gdMapStringBoolean;
clearParameters(): void;
serializeTo(element: gdSerializerElement): void;
unserializeFrom(element: gdSerializerElement): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,15 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdEffectMetadata {
setFullName(fullName: string): gdEffectMetadata;
setDescription(description: string): gdEffectMetadata;
setHelpPath(helpPath: string): gdEffectMetadata;
setIncludeFile(includeFile: string): gdEffectMetadata;
addIncludeFile(includeFile: string): gdEffectMetadata;
getType(): string;
getFullName(): string;
getDescription(): string;
getHelpPath(): string;
getProperties(): gdMapStringPropertyDescriptor;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,8 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdEventMetadata {
getFullName(): string;
getDescription(): string;
getGroup(): string;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,21 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdEventsBasedBehavior {
constructor(): void;
setDescription(description: string): gdEventsBasedBehavior;
getDescription(): string;
setName(name: string): gdEventsBasedBehavior;
getName(): string;
setFullName(fullName: string): gdEventsBasedBehavior;
getFullName(): string;
setObjectType(fullName: string): gdEventsBasedBehavior;
getObjectType(): string;
getEventsFunctions(): gdEventsFunctionsContainer;
getPropertyDescriptors(): gdNamedPropertyDescriptorsList;
serializeTo(element: gdSerializerElement): void;
unserializeFrom(project: gdProject, element: gdSerializerElement): void;
static getPropertyActionName(propertyName: string): string;
static getPropertyConditionName(propertyName: string): string;
static getPropertyExpressionName(propertyName: string): string;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,16 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdEventsBasedBehaviorsList {
insertNew(name: string, pos: number): gdEventsBasedBehavior;
insert(item: gdEventsBasedBehavior, pos: number): gdEventsBasedBehavior;
has(name: string): boolean;
get(name: string): gdEventsBasedBehavior;
getAt(pos: number): gdEventsBasedBehavior;
remove(name: string): void;
move(oldIndex: number, newIndex: number): void;
getCount(): number;
getPosition(item: gdEventsBasedBehavior): number;
size(): number;
at(index: number): gdEventsBasedBehavior;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,8 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdEventsContext {
getReferencedObjectOrGroupNames(): gdSetString;
getObjectNames(): gdSetString;
getBehaviorNamesOfObjectOrGroup(objectOrGroupName: string): gdSetString;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,8 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdEventsContextAnalyzer {
constructor(platform: gdPlatform, globalObjectsContainer: gdObjectsContainer, objectsContainer: gdObjectsContainer): void;
getEventsContext(): gdEventsContext;
launch(events: gdEventsList): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,25 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdEventsFunction {
static Action: 0;
static Condition: 1;
static Expression: 2;
static StringExpression: 3;
constructor(): void;
setDescription(description: string): gdEventsFunction;
getDescription(): string;
setName(name: string): gdEventsFunction;
getName(): string;
setFullName(fullName: string): gdEventsFunction;
getFullName(): string;
setSentence(sentence: string): gdEventsFunction;
getSentence(): string;
setFunctionType(type: EventsFunction_FunctionType): gdEventsFunction;
getFunctionType(): EventsFunction_FunctionType;
getEvents(): gdEventsList;
getParameters(): gdVectorParameterMetadata;
getObjectGroups(): gdObjectGroupsContainer;
serializeTo(element: gdSerializerElement): void;
unserializeFrom(project: gdProject, element: gdSerializerElement): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,14 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdEventsFunctionsContainer {
insertNewEventsFunction(name: string, pos: number): gdEventsFunction;
insertEventsFunction(eventsFunction: gdEventsFunction, pos: number): gdEventsFunction;
hasEventsFunctionNamed(name: string): boolean;
getEventsFunction(name: string): gdEventsFunction;
getEventsFunctionAt(pos: number): gdEventsFunction;
removeEventsFunction(name: string): void;
moveEventsFunction(oldIndex: number, newIndex: number): void;
getEventsFunctionsCount(): number;
getEventsFunctionPosition(eventsFunction: gdEventsFunction): number;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,35 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdEventsFunctionsExtension extends gdEventsFunctionsContainer {
constructor(): void;
setNamespace(namespace_: string): gdEventsFunctionsExtension;
getNamespace(): string;
setVersion(version: string): gdEventsFunctionsExtension;
getVersion(): string;
setShortDescription(shortDescription: string): gdEventsFunctionsExtension;
getShortDescription(): string;
setDescription(description: string): gdEventsFunctionsExtension;
getDescription(): string;
setName(name: string): gdEventsFunctionsExtension;
getName(): string;
setFullName(fullName: string): gdEventsFunctionsExtension;
getFullName(): string;
setTags(tags: string): gdEventsFunctionsExtension;
getTags(): string;
setAuthor(author: string): gdEventsFunctionsExtension;
getAuthor(): string;
getEventsBasedBehaviors(): gdEventsBasedBehaviorsList;
serializeTo(element: gdSerializerElement): void;
unserializeFrom(project: gdProject, element: gdSerializerElement): void;
static isExtensionLifecycleEventsFunction(eventsFunctionName: string): boolean;
insertNewEventsFunction(name: string, pos: number): gdEventsFunction;
insertEventsFunction(eventsFunction: gdEventsFunction, pos: number): gdEventsFunction;
hasEventsFunctionNamed(name: string): boolean;
getEventsFunction(name: string): gdEventsFunction;
getEventsFunctionAt(pos: number): gdEventsFunction;
removeEventsFunction(name: string): void;
moveEventsFunction(oldIndex: number, newIndex: number): void;
getEventsFunctionsCount(): number;
getEventsFunctionPosition(eventsFunction: gdEventsFunction): number;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,7 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdEventsFunctionsExtensionCodeGenerator {
constructor(project: gdProject): void;
generateFreeEventsFunctionCompleteCode(eventsFunction: gdEventsFunction, codeNamespac: string, includes: gdSetString, compilationForRuntime: boolean): string;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,6 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdEventsFunctionTools {
static eventsFunctionToObjectsContainer(project: gdProject, eventsFunction: gdEventsFunction, outputGlobalObjectsContainer: gdObjectsContainer, outputObjectsContainer: gdObjectsContainer): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,19 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdEventsList {
constructor(): void;
insertEvent(event: gdBaseEvent, pos: number): gdBaseEvent;
insertNewEvent(project: gdProject, type: string, pos: number): gdBaseEvent;
insertEvents(list: gdEventsList, begin: number, end: number, pos: number): void;
getEventAt(pos: number): gdBaseEvent;
removeEventAt(pos: number): void;
removeEvent(event: gdBaseEvent): void;
getEventsCount(): number;
contains(event: gdBaseEvent, recursive: boolean): boolean;
moveEventToAnotherEventsList(eventToMove: gdBaseEvent, newEventsList: gdEventsList, newPosition: number): boolean;
isEmpty(): boolean;
clear(): void;
serializeTo(element: gdSerializerElement): void;
unserializeFrom(project: gdProject, element: gdSerializerElement): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,6 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdEventsListUnfolder {
static unfoldWhenContaining(list: gdEventsList, eventToContain: gdBaseEvent): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,8 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdEventsParametersLister {
constructor(project: gdProject): void;
getParametersAndTypes(): gdMapStringString;
launch(events: gdEventsList): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,9 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdEventsRefactorer {
static renameObjectInEvents(platform: gdPlatform, project: gdObjectsContainer, layout: gdObjectsContainer, events: gdEventsList, oldName: string, newName: string): void;
static removeObjectInEvents(platform: gdPlatform, project: gdObjectsContainer, layout: gdObjectsContainer, events: gdEventsList, name: string): void;
static replaceStringInEvents(project: gdObjectsContainer, layout: gdObjectsContainer, events: gdEventsList, toReplace: string, newString: string, matchCase: boolean, inConditions: boolean, inActions: boolean): void;
static searchInEvents(project: gdObjectsContainer, layout: gdObjectsContainer, events: gdEventsList, search: string, matchCase: boolean, inConditions: boolean, inActions: boolean, inEventStrings: boolean): gdVectorEventsSearchResult;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,9 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdEventsRemover {
constructor(): void;
addEventToRemove(eventToRemove: gdBaseEvent): void;
addInstructionToRemove(instructionToRemove: gdInstruction): void;
launch(events: gdEventsList): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,10 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdEventsSearchResult {
isEventsListValid(): boolean;
getEventsList(): gdEventsList;
getPositionInList(): number;
isEventValid(): boolean;
getEvent(): gdBaseEvent;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,10 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdEventsTypesLister {
constructor(project: gdProject): void;
getAllEventsTypes(): gdVectorString;
getAllConditionsTypes(): gdVectorString;
getAllActionsTypes(): gdVectorString;
launch(events: gdEventsList): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,12 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdjsExporter {
constructor(fs: gdAbstractFileSystem, gdjsRoot: string): void;
setCodeOutputDirectory(path: string): void;
exportLayoutForPixiPreview(project: gdProject, layout: gdLayout, exportDir: string): boolean;
exportExternalLayoutForPixiPreview(project: gdProject, layout: gdLayout, externalLayout: gdExternalLayout, exportDir: string): boolean;
exportWholePixiProject(project: gdProject, exportDir: string, exportOptions: gdMapStringBoolean): boolean;
exportWholeCocos2dProject(project: gdProject, debugMode: boolean, exportDir: string): boolean;
getLastError(): string;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,9 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdExpressionCodeGenerationInformation {
setFunctionName(functionName: string): gdExpressionCodeGenerationInformation;
setStatic(): gdExpressionCodeGenerationInformation;
setIncludeFile(includeFile: string): gdExpressionCodeGenerationInformation;
addIncludeFile(includeFile: string): gdExpressionCodeGenerationInformation;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,15 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdExpressionCompletionDescription {
static Object: 0;
static Behavior: 1;
static Expression: 2;
static Variable: 3;
getCompletionKind(): ExpressionCompletionDescription_CompletionKind;
getType(): string;
getPrefix(): string;
getObjectName(): string;
getBehaviorName(): string;
isExact(): boolean;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,7 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdExpressionCompletionFinder {
static getCompletionDescriptionsFor(node: gdExpressionNode, location: number): gdVectorExpressionCompletionDescription;
getCompletionDescriptions(): gdVectorExpressionCompletionDescription;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,22 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdExpressionMetadata {
constructor(extensionNamespace: string, name: string, fullname: string, description: string, group: string, smallicon: string): void;
getFullName(): string;
getDescription(): string;
getGroup(): string;
getSmallIconFilename(): string;
isShown(): boolean;
isPrivate(): boolean;
getParameter(id: number): gdParameterMetadata;
getParametersCount(): number;
getParameters(): gdVectorParameterMetadata;
setHidden(): gdExpressionMetadata;
setPrivate(): gdExpressionMetadata;
addParameter(type: string, description: string, optionalObjectType: string, parameterIsOptional: boolean): gdExpressionMetadata;
addCodeOnlyParameter(type: string, supplementaryInformation: string): gdExpressionMetadata;
setDefaultValue(defaultValue: string): gdExpressionMetadata;
setParameterLongDescription(longDescription: string): gdExpressionMetadata;
getCodeExtraInformation(): gdExpressionCodeGenerationInformation;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,6 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdExpressionNode {
visit(worker: gdExpressionParser2NodeWorker): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,7 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdExpressionParser2 {
constructor(platform: gdPlatform, globalObjectsContainer: gdObjectsContainer, objectsContainer: gdObjectsContainer): void;
parseExpression(type: string, expression: string): gdUniquePtrExpressionNode;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,5 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdExpressionParser2NodeWorker {
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,9 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdExpressionParserDiagnostic {
isError(): boolean;
getMessage(): string;
getStartPosition(): number;
getEndPosition(): number;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,7 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdExpressionValidator extends gdExpressionParser2NodeWorker {
constructor(): void;
getErrors(): gdVectorExpressionParserDiagnostic;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,7 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdExtensionAndBehaviorMetadata {
getExtension(): gdPlatformExtension;
getMetadata(): gdBehaviorMetadata;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,7 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdExtensionAndEffectMetadata {
getExtension(): gdPlatformExtension;
getMetadata(): gdEffectMetadata;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,7 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdExtensionAndExpressionMetadata {
getExtension(): gdPlatformExtension;
getMetadata(): gdExpressionMetadata;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,7 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdExtensionAndInstructionMetadata {
getExtension(): gdPlatformExtension;
getMetadata(): gdInstructionMetadata;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,7 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdExtensionAndObjectMetadata {
getExtension(): gdPlatformExtension;
getMetadata(): gdObjectMetadata;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,13 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdExternalEvents {
constructor(): void;
setName(name: string): void;
getName(): string;
getAssociatedLayout(): string;
setAssociatedLayout(name: string): void;
getEvents(): gdEventsList;
serializeTo(element: gdSerializerElement): void;
unserializeFrom(project: gdProject, element: gdSerializerElement): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,14 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdExternalLayout {
constructor(): void;
setName(name: string): void;
getName(): string;
setAssociatedLayout(name: string): void;
getAssociatedLayout(): string;
getInitialInstances(): gdInitialInstancesContainer;
getAssociatedSettings(): gdLayoutEditorCanvasOptions;
serializeTo(element: gdSerializerElement): void;
unserializeFrom(element: gdSerializerElement): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,11 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdExtraInformation {
setFunctionName(functionName_: string): gdExtraInformation;
setManipulatedType(type_: string): gdExtraInformation;
setGetter(getter: string): gdExtraInformation;
setMutators(mutators: gdMapStringString): gdExtraInformation;
setIncludeFile(includeFile: string): gdExtraInformation;
addIncludeFile(includeFile: string): gdExtraInformation;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,6 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdFontResource extends gdResource {
constructor(): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,23 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdForEachEvent {
constructor(): void;
setObjectToPick(objects: string): void;
getObjectToPick(): string;
getConditions(): gdInstructionsList;
getActions(): gdInstructionsList;
clone(): gdForEachEvent;
getType(): string;
setType(type: string): void;
isExecutable(): boolean;
canHaveSubEvents(): boolean;
hasSubEvents(): boolean;
getSubEvents(): gdEventsList;
isDisabled(): boolean;
setDisabled(disable: boolean): void;
isFolded(): boolean;
setFolded(folded: boolean): void;
serializeTo(element: gdSerializerElement): void;
unserializeFrom(project: gdProject, element: gdSerializerElement): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,30 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdGroupEvent {
constructor(): void;
setName(name: string): void;
getName(): string;
setBackgroundColor(r: number, g: number, b: number): void;
getBackgroundColorR(): number;
getBackgroundColorG(): number;
getBackgroundColorB(): number;
setSource(source: string): void;
getSource(): string;
getCreationParameters(): gdVectorString;
getCreationTimestamp(): number;
setCreationTimestamp(ts: number): void;
clone(): gdGroupEvent;
getType(): string;
setType(type: string): void;
isExecutable(): boolean;
canHaveSubEvents(): boolean;
hasSubEvents(): boolean;
getSubEvents(): gdEventsList;
isDisabled(): boolean;
setDisabled(disable: boolean): void;
isFolded(): boolean;
setFolded(folded: boolean): void;
serializeTo(element: gdSerializerElement): void;
unserializeFrom(project: gdProject, element: gdSerializerElement): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,9 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdHighestZOrderFinder extends gdInitialInstanceFunctor {
constructor(): void;
restrictSearchToLayer(layer: string): void;
getHighestZOrder(): number;
getLowestZOrder(): number;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,8 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdImageResource extends gdResource {
constructor(): void;
isSmooth(): boolean;
setSmooth(enable: boolean): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,35 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdInitialInstance {
constructor(): void;
setObjectName(name: string): void;
getObjectName(): string;
getX(): number;
setX(x: number): void;
getY(): number;
setY(y: number): void;
getAngle(): number;
setAngle(angle: number): void;
isLocked(): boolean;
setLocked(lock: boolean): void;
getZOrder(): number;
setZOrder(zOrder: number): void;
getLayer(): string;
setLayer(layer: string): void;
setHasCustomSize(enable: boolean): void;
hasCustomSize(): boolean;
setCustomWidth(width: number): void;
getCustomWidth(): number;
setCustomHeight(height: number): void;
getCustomHeight(): number;
updateCustomProperty(name: string, value: string, project: gdProject, layout: gdLayout): void;
getCustomProperties(project: gdProject, layout: gdLayout): gdMapStringPropertyDescriptor;
getRawFloatProperty(name: string): number;
getRawStringProperty(name: string): string;
setRawFloatProperty(name: string, value: number): void;
setRawStringProperty(name: string, value: string): void;
getVariables(): gdVariablesContainer;
serializeTo(element: gdSerializerElement): void;
unserializeFrom(element: gdSerializerElement): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,5 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdInitialInstanceFunctor {
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,7 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdInitialInstanceJSFunctor {
constructor(): void;
invoke(instance: gdInitialInstance): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,5 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdInitialInstanceJSFunctorWrapper {
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,21 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdInitialInstancesContainer {
constructor(): void;
clone(): gdInitialInstancesContainer;
getInstancesCount(): number;
iterateOverInstances(func: gdInitialInstanceFunctor): void;
iterateOverInstancesWithZOrdering(func: gdInitialInstanceFunctor, layer: string): void;
moveInstancesToLayer(fromLayer: string, toLayer: string): void;
removeAllInstancesOnLayer(layer: string): void;
removeInitialInstancesOfObject(obj: string): void;
hasInstancesOfObject(objectName: string): boolean;
someInstancesAreOnLayer(layer: string): boolean;
renameInstancesOfObject(oldName: string, newName: string): void;
removeInstance(inst: gdInitialInstance): void;
insertNewInitialInstance(): gdInitialInstance;
insertInitialInstance(inst: gdInitialInstance): gdInitialInstance;
serializeTo(element: gdSerializerElement): void;
unserializeFrom(element: gdSerializerElement): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,16 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdInstruction {
constructor(): void;
clone(): gdInstruction;
setType(type: string): void;
getType(): string;
setInverted(inverted: boolean): void;
isInverted(): boolean;
setParameter(id: number, value: string): void;
getParameter(id: number): string;
setParametersCount(count: number): void;
getParametersCount(): number;
getSubInstructions(): gdInstructionsList;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,34 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdInstructionMetadata {
constructor(): void;
getFullName(): string;
getDescription(): string;
getSentence(): string;
getGroup(): string;
getIconFilename(): string;
getSmallIconFilename(): string;
getHelpPath(): string;
canHaveSubInstructions(): boolean;
getParameter(index: number): gdParameterMetadata;
getParametersCount(): number;
getParameters(): gdVectorParameterMetadata;
getUsageComplexity(): number;
isHidden(): boolean;
isPrivate(): boolean;
setCanHaveSubInstructions(): gdInstructionMetadata;
setHelpPath(helpPath: string): gdInstructionMetadata;
setHidden(): gdInstructionMetadata;
setPrivate(): gdInstructionMetadata;
addParameter(type: string, description: string, optionalObjectType: string, parameterIsOptional: boolean): gdInstructionMetadata;
addCodeOnlyParameter(type: string, supplementaryInformation: string): gdInstructionMetadata;
setDefaultValue(defaultValue: string): gdInstructionMetadata;
setParameterLongDescription(longDescription: string): gdInstructionMetadata;
useStandardOperatorParameters(type: string): gdInstructionMetadata;
useStandardRelationalOperatorParameters(type: string): gdInstructionMetadata;
markAsSimple(): gdInstructionMetadata;
markAsAdvanced(): gdInstructionMetadata;
markAsComplex(): gdInstructionMetadata;
getCodeExtraInformation(): gdExtraInformation;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,11 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdInstructionSentenceFormatter {
static get(): gdInstructionSentenceFormatter;
translate(instr: gdInstruction, metadat: gdInstructionMetadata): string;
getAsFormattedText(instr: gdInstruction, metadat: gdInstructionMetadata): gdVectorPairStringTextFormatting;
getFormattingFromType(type: string): gdTextFormatting;
labelFromType(type: string): string;
loadTypesFormattingFromConfig(): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,18 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdInstructionsList {
push_back(gdInstruction): void;
constructor(): void;
insert(instr: gdInstruction, pos: number): gdInstruction;
insertInstructions(list: gdInstructionsList, begin: number, end: number, pos: number): void;
size(): number;
set(index: number, instr: gdInstruction): void;
contains(instr: gdInstruction): boolean;
get(index: number): gdInstruction;
remove(instr: gdInstruction): void;
removeAt(index: number): void;
clear(): void;
serializeTo(element: gdSerializerElement): void;
unserializeFrom(project: gdProject, element: gdSerializerElement): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,7 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdInstructionsTypeRenamer {
constructor(project: gdProject, oldType: string, newType: string): void;
launch(events: gdEventsList): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,23 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdJsCodeEvent {
constructor(): void;
getInlineCode(): string;
setInlineCode(type: string): void;
getParameterObjects(): string;
setParameterObjects(type: string): void;
clone(): gdJsCodeEvent;
getType(): string;
setType(type: string): void;
isExecutable(): boolean;
canHaveSubEvents(): boolean;
hasSubEvents(): boolean;
getSubEvents(): gdEventsList;
isDisabled(): boolean;
setDisabled(disable: boolean): void;
isFolded(): boolean;
setFolded(folded: boolean): void;
serializeTo(element: gdSerializerElement): void;
unserializeFrom(project: gdProject, element: gdSerializerElement): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,6 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdJsonResource extends gdResource {
constructor(): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,17 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdJsPlatform extends gdPlatform {
static get(): gdJsPlatform;
addNewExtension(extension: gdPlatformExtension): void;
getName(): string;
getFullName(): string;
getSubtitle(): string;
getDescription(): string;
isExtensionLoaded(name: string): boolean;
removeExtension(name: string): void;
reloadBuiltinExtensions(): void;
getBehavior(type: string): gdBehavior;
getBehaviorSharedDatas(type: string): gdBehaviorsSharedData;
getAllPlatformExtensions(): gdVectorPlatformExtension;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,19 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdLayer {
constructor(): void;
setName(name: string): void;
getName(): string;
setVisibility(visible: boolean): void;
getVisibility(): boolean;
hasEffectNamed(name: string): boolean;
getEffect(name: string): gdEffect;
getEffectAt(index: number): gdEffect;
getEffectPosition(name: string): number;
getEffectsCount(): number;
insertNewEffect(name: string, position: number): gdEffect;
insertEffect(theEffect: gdEffect, position: number): void;
removeEffect(name: string): void;
swapEffects(firstEffectIndex: number, secondEffectIndex: number): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,49 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdLayout extends gdObjectsContainer {
constructor(): void;
setName(name: string): void;
getName(): string;
setBackgroundColor(r: number, g: number, b: number): void;
getBackgroundColorRed(): number;
getBackgroundColorGreen(): number;
getBackgroundColorBlue(): number;
setWindowDefaultTitle(name: string): void;
getWindowDefaultTitle(): string;
getInitialInstances(): gdInitialInstancesContainer;
getVariables(): gdVariablesContainer;
getEvents(): gdEventsList;
updateBehaviorsSharedData(project: gdProject): void;
getAllBehaviorSharedDataNames(): gdVectorString;
hasBehaviorSharedData(behaviorName: string): boolean;
getBehaviorSharedData(behaviorName: string): gdBehaviorContent;
insertNewLayer(name: string, position: number): void;
insertLayer(layer: gdLayer, position: number): void;
getLayer(name: string): gdLayer;
getLayerAt(pos: number): gdLayer;
hasLayerNamed(name: string): boolean;
removeLayer(name: string): void;
getLayersCount(): number;
swapLayers(firstLayerIndex: number, secondLayerIndex: number): void;
moveLayer(oldIndex: number, newIndex: number): void;
serializeLayersTo(element: gdSerializerElement): void;
unserializeLayersFrom(element: gdSerializerElement): void;
getAssociatedSettings(): gdLayoutEditorCanvasOptions;
serializeTo(element: gdSerializerElement): void;
unserializeFrom(project: gdProject, element: gdSerializerElement): void;
setStopSoundsOnStartup(enable: boolean): void;
stopSoundsOnStartup(): boolean;
insertNewObject(project: gdProject, type: string, name: string, pos: number): gdObject;
insertObject(obj: gdObject, pos: number): gdObject;
hasObjectNamed(name: string): boolean;
getObject(name: string): gdObject;
getObjectAt(pos: number): gdObject;
getObjectPosition(name: string): number;
removeObject(name: string): void;
swapObjects(first: number, second: number): void;
moveObject(oldIndex: number, newIndex: number): void;
moveObjectToAnotherContainer(name: string, newObjectsContainer: gdObjectsContainer, newPosition: number): void;
getObjectsCount(): number;
getObjectGroups(): gdObjectGroupsContainer;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,7 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdLayoutCodeGenerator {
constructor(project: gdProject): void;
generateLayoutCompleteCode(layout: gdLayout, includes: gdSetString, compilationForRuntime: boolean): string;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,8 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdLayoutEditorCanvasOptions {
constructor(): void;
serializeTo(element: gdSerializerElement): void;
unserializeFrom(element: gdSerializerElement): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,28 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdLinkEvent {
constructor(): void;
setTarget(name: string): void;
getTarget(): string;
getIncludeConfig(): number;
setIncludeAllEvents(): void;
setIncludeEventsGroup(source: string): void;
getEventsGroupName(): string;
setIncludeStartAndEnd(start: number, end: number): void;
getIncludeStart(): number;
getIncludeEnd(): number;
clone(): gdLinkEvent;
getType(): string;
setType(type: string): void;
isExecutable(): boolean;
canHaveSubEvents(): boolean;
hasSubEvents(): boolean;
getSubEvents(): gdEventsList;
isDisabled(): boolean;
setDisabled(disable: boolean): void;
isFolded(): boolean;
setFolded(folded: boolean): void;
serializeTo(element: gdSerializerElement): void;
unserializeFrom(project: gdProject, element: gdSerializerElement): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,10 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdLoadingScreen {
constructor(): void;
showGDevelopSplash(show: boolean): void;
isGDevelopSplashShown(): boolean;
serializeTo(element: gdSerializerElement): void;
unserializeFrom(element: gdSerializerElement): void;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,10 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdMapStringBoolean {
constructor(): void;
get(name: string): boolean;
set(name: string, value: boolean): void;
has(name: string): boolean;
keys(): gdVectorString;
delete(): void;
ptr: number;
};

View File

@@ -0,0 +1,10 @@
// Automatically generated by GDevelop.js/scripts/generate-types.js
declare class gdMapStringDouble {
constructor(): void;
get(name: string): number;
set(name: string, value: number): void;
has(name: string): number;
keys(): gdVectorString;
delete(): void;
ptr: number;
};

Some files were not shown because too many files have changed in this diff Show More