TypeScript BuildSystem/Caster/Pointer
This commit is contained in:
parent
378ff808ec
commit
abe5fc3bb2
|
@ -4,5 +4,6 @@
|
|||
/outputs
|
||||
/godot-rj-nuget-package
|
||||
/godot/modules/rokojori_action_library
|
||||
/rokojori-cpp-generator/node_modules
|
||||
|
||||
|
||||
|
|
|
@ -14,9 +14,12 @@ class CppClassMember
|
|||
type = "void";
|
||||
initialValue = null;
|
||||
parameters = [];
|
||||
accessModifier;
|
||||
|
||||
constructor( nameDefinition, body )
|
||||
constructor( accessModifier, nameDefinition, body )
|
||||
{
|
||||
this.accessModifier = accessModifier;
|
||||
|
||||
if ( nameDefinition.indexOf( "()" ) != -1)
|
||||
{
|
||||
this.isMethod = true;
|
|
@ -156,7 +156,7 @@ async function main()
|
|||
|
||||
|
||||
|
||||
function grabMembers( membersData )
|
||||
function grabMembers( membersData, accessModifier )
|
||||
{
|
||||
let members = [];
|
||||
|
||||
|
@ -187,13 +187,14 @@ function grabMembers( membersData )
|
|||
let actionGetter = `virtual get_${actionName}():Ref<RJAction>`;
|
||||
let actionSetter = `virtual set_${actionName}()`;
|
||||
|
||||
members.push( new CppClassMember( signal, {} ) );
|
||||
members.push( new CppClassMember( actionGetter, {} ) );
|
||||
members.push( new CppClassMember( actionSetter, { "action":"Ref<RJAction>"} ) );
|
||||
members.push( new CppClassMember( accessModifier, signal, {} ) );
|
||||
members.push( new CppClassMember( "protected", "m_" + name, {} ) );
|
||||
members.push( new CppClassMember( accessModifier, actionGetter, {} ) );
|
||||
members.push( new CppClassMember( accessModifier, actionSetter, { "action":"Ref<RJAction>"} ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
let classMember = new CppClassMember( nameDefinition, memberData );
|
||||
let classMember = new CppClassMember( accessModifier, nameDefinition, memberData );
|
||||
members.push( classMember );
|
||||
}
|
||||
|
||||
|
@ -278,8 +279,21 @@ async function createCppFiles( definitionPath, types, missingTypes )
|
|||
|
||||
let headerDefine = getHeaderDefine( className );
|
||||
|
||||
let protectedMembers = grabMembers( data.protected );
|
||||
let publicMembers = grabMembers( data.public );
|
||||
let fromProtectedMembers = grabMembers( data.protected, "protected" );
|
||||
let fromPublicMembers = grabMembers( data.public, "public" );
|
||||
|
||||
let protectedMembers = [];
|
||||
let publicMembers = [];
|
||||
|
||||
let insertMember = m =>
|
||||
{
|
||||
let container = m.accessModifier === "public" ? publicMembers : protectedMembers;
|
||||
container.push( m );
|
||||
};
|
||||
|
||||
fromProtectedMembers.forEach( m => insertMember( m ) );
|
||||
fromPublicMembers.forEach( m => insertMember( m ) );
|
||||
|
||||
|
||||
let allMembers = [].concat( protectedMembers ).concat( publicMembers );
|
||||
|
|
@ -5,8 +5,9 @@
|
|||
================================================
|
||||
|
||||
[ Copy C++]
|
||||
cd {ROOT-PATH}
|
||||
node copy-cpp-source.js
|
||||
cd {CPP-GEN-PATH}
|
||||
npm run create-cpp
|
||||
npm run copy-cpp-source
|
||||
|
||||
[ Build C++ ]
|
||||
cd {GODOT-EDITOR-PATH}
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 650c34164ae6a39bdce2d748888092c660a1ebd6
|
||||
Subproject commit 29c6666c18a64e93fb302ee49538b8881d54d30f
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"class":"RJTimeLine:Resource",
|
||||
|
||||
|
||||
"public":
|
||||
{
|
||||
"isLooping": false,
|
||||
|
|
|
@ -5,23 +5,23 @@
|
|||
|
||||
"public":
|
||||
{
|
||||
"virtual getTimeLineIndex():int" : { "timeLine":"Ref<RJTimeLine>" },
|
||||
"virtual getTimeLineSize():int" : {},
|
||||
"getTimeLineIndex():int" : { "timeLine":"Ref<RJTimeLine>" },
|
||||
"getTimeLineSize():int" : {},
|
||||
|
||||
"virtual createID():int" : {},
|
||||
"createID():int" : {},
|
||||
|
||||
"virtual getLastPosition():double" : { "timeLineIndex":"int" },
|
||||
"getLastPosition():double" : { "timeLineIndex":"int" },
|
||||
|
||||
"virtual getPosition():double" : { "timeLineIndex":"int" },
|
||||
"virtual setPosition()" : { "timeLineIndex":"int", "position":"double" },
|
||||
"getPosition():double" : { "timeLineIndex":"int" },
|
||||
"setPosition()" : { "timeLineIndex":"int", "position":"double" },
|
||||
|
||||
"virtual getSpeed():double" : { "timeLineIndex":"int" },
|
||||
"virtual setSpeed()" : { "timeLineIndex":"int", "speed":"double" },
|
||||
"getSpeed():double" : { "timeLineIndex":"int" },
|
||||
"setSpeed()" : { "timeLineIndex":"int", "speed":"double" },
|
||||
|
||||
"virtual getPlayState():bool" : { "timeLineIndex":"int" },
|
||||
"virtual setPlayState()" : { "timeLineIndex":"int", "playState":"bool" },
|
||||
"getPlayState():bool" : { "timeLineIndex":"int" },
|
||||
"setPlayState()" : { "timeLineIndex":"int", "playState":"bool" },
|
||||
|
||||
"virtual scheduleEvent()" :
|
||||
"scheduleEvent()" :
|
||||
{
|
||||
"timeLineIndex": "int",
|
||||
"position": "double",
|
||||
|
@ -29,7 +29,7 @@
|
|||
"isPersistent": "bool"
|
||||
},
|
||||
|
||||
"virtual scheduleSpan()" :
|
||||
"scheduleSpan()" :
|
||||
{
|
||||
"timeLineIndex": "int",
|
||||
"startPosition": "double",
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
|
||||
"public":
|
||||
{
|
||||
"virtual update()":{ "delta":"double" }
|
||||
"update()":{ "delta":"double" }
|
||||
}
|
||||
}
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
"public":
|
||||
{
|
||||
"virtual getCameraPosition()": "Vector3",
|
||||
"virtual getCameraRotation()": "Quaternion",
|
||||
"virtual getCameraFOV()":"float"
|
||||
"getCameraPosition()": "Vector3",
|
||||
"getCameraRotation()": "Quaternion",
|
||||
"getCameraFOV()":"float"
|
||||
}
|
||||
}
|
|
@ -5,12 +5,12 @@
|
|||
|
||||
"public":
|
||||
{
|
||||
"virtual getCamera():Ref<RJVirtualCamera3D>" : { "cameraIndex": "int" },
|
||||
"virtual getCameraIndex():int" : { "timeLine":"Ref<RJVirtualCamera3D>" },
|
||||
"virtual getCameraSize():int" : {},
|
||||
"getCamera():Ref<RJVirtualCamera3D>" : { "cameraIndex": "int" },
|
||||
"getCameraIndex():int" : { "timeLine":"Ref<RJVirtualCamera3D>" },
|
||||
"getCameraSize():int" : {},
|
||||
|
||||
"virtual getCameraPriority():float" : { "cameraIndex":"int" },
|
||||
"virtual setCameraPriority()" : { "cameraIndex":"int", "priority":"float" },
|
||||
"getCameraPriority():float" : { "cameraIndex":"int" },
|
||||
"setCameraPriority()" : { "cameraIndex":"int", "priority":"float" },
|
||||
|
||||
"cameraPrioritySmoothingCoefficient": 0.5,
|
||||
"cameraPrioritySmoothingStepFPS": 120
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
|
||||
"public":
|
||||
{
|
||||
"virtual dispatchStart():int" : {},
|
||||
"virtual dispatchCancel()": { "id":"int" },
|
||||
"virtual dispatchEnd()" : { "id":"int" },
|
||||
"dispatchStart():int" : {},
|
||||
"dispatchCancel()": { "id":"int" },
|
||||
"dispatchEnd()" : { "id":"int" },
|
||||
"signal onSequenceDone()" : { "id":"int" }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,99 @@
|
|||
{
|
||||
// Define ClassName and BaseClass,
|
||||
// .. => Node, Resource and RJ classes will be included automatically
|
||||
|
||||
"class":"ClassName:BaseClass",
|
||||
|
||||
// Includes needed for members
|
||||
"includes":[ "./RJAction.h" ],
|
||||
|
||||
|
||||
// Protected member definitions
|
||||
"protected":
|
||||
{
|
||||
// same as public, see below
|
||||
},
|
||||
|
||||
// Public member definitions
|
||||
"public":
|
||||
{
|
||||
// --------------------------------------------------------------------
|
||||
// [ V A R I A B L E S ]
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
// float
|
||||
"number": 0,
|
||||
|
||||
// int
|
||||
"counter": "int",
|
||||
|
||||
// bool
|
||||
"isOn": false,
|
||||
|
||||
// string
|
||||
"name": "String",
|
||||
|
||||
// Vector3
|
||||
"position": "Vector3",
|
||||
|
||||
// Quaternion
|
||||
"rotation": "Quaternion",
|
||||
|
||||
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
// [ M E T H O D S ]
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
// methods can be overwritten and are virtual by default
|
||||
"doStuff()" : {},
|
||||
// this is the same as the above
|
||||
"virtual doStuff()" : {},
|
||||
|
||||
// method that is not virtual
|
||||
"final doStuff()" : {},
|
||||
|
||||
|
||||
// Static methods are available without instance
|
||||
"static doStuff()" : {},
|
||||
|
||||
|
||||
// Without return or parameters
|
||||
"doStuff()" : {},
|
||||
|
||||
|
||||
// With value return but without parameters
|
||||
"doStuff():int" : {},
|
||||
|
||||
// With reference return but without parameters,
|
||||
// "Ref<T>" is important
|
||||
"doStuff():Ref<Node>" : {},
|
||||
"doStuff():Ref<Resource>" : {},
|
||||
|
||||
|
||||
// Parameters
|
||||
"somethingWithParameters():Ref<Node>" : { "id":"int", "reference":"Ref<Resource>" },
|
||||
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
// [ S I G N A L S ]
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
// Signals are return-less callbacks, which can have input parameters
|
||||
"signal onEvent()" : { "callbackID": "int" },
|
||||
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
// [ A C T I O N ] (RJAction)
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
// RJActions are signals without input parameters and can be assigned in the editor
|
||||
// This function will create a reference for the action and create
|
||||
// setters/getters for it and additionally creates a signal.
|
||||
// Should not have a "on" before the name, since this will be added.
|
||||
|
||||
// The class will have a signal 'changed' and an RJAction 'onChanged'
|
||||
"action changed" : {},
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
/* RJAction.cpp */
|
||||
|
||||
#include "RJAction.h"
|
||||
|
||||
|
||||
void RJAction::_bind_methods()
|
||||
{
|
||||
GDVIRTUAL_BIND( _onTrigger );
|
||||
|
||||
ClassDB::bind_method( D_METHOD( "trigger" ) , &RJAction::trigger );
|
||||
|
||||
/*
|
||||
ClassDB::bind_method(D_METHOD("add", "value"), &RokojoriAction::add);
|
||||
ClassDB::bind_method(D_METHOD("reset"), &RokojoriAction::reset);
|
||||
ClassDB::bind_method(D_METHOD("get_total"), &RokojoriAction::get_total);
|
||||
*/
|
||||
}
|
||||
|
||||
void RJAction::trigger()
|
||||
{
|
||||
GDVIRTUAL_CALL( _onTrigger );
|
||||
}
|
||||
|
||||
RJAction::RJAction()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
RJAction::~RJAction()
|
||||
{
|
||||
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
/* RJAction.h */
|
||||
|
||||
#ifndef ROKOJORI__ACTION_H
|
||||
#define ROKOJORI__ACTION_H
|
||||
|
||||
#include "./RJNetworkNode.h"
|
||||
|
||||
class RJAction : public RJNetworkNode
|
||||
{
|
||||
GDCLASS(RJAction, RJNetworkNode);
|
||||
|
||||
|
||||
protected:
|
||||
static void _bind_methods();
|
||||
|
||||
GDVIRTUAL0( _onTrigger )
|
||||
|
||||
public:
|
||||
|
||||
void trigger();
|
||||
|
||||
RJAction();
|
||||
~RJAction();
|
||||
|
||||
};
|
||||
|
||||
|
||||
#endif // ROKOJORI__ACTION_H
|
|
@ -0,0 +1,21 @@
|
|||
/* RJGodotHeaders.h */
|
||||
|
||||
#ifndef ROKOJORI_GODOT_HEADERS_H
|
||||
#define ROKOJORI_GODOT_HEADERS_H
|
||||
|
||||
#include "scene/main/node.h"
|
||||
#include "scene/2d/node_2d.h"
|
||||
#include "scene/3d/node_3d.h"
|
||||
|
||||
#include "core/io/resource.h"
|
||||
|
||||
#include "core/math/vector3.h"
|
||||
#include "core/math/vector3.h"
|
||||
#include "core/math/quaternion.h"
|
||||
#include "core/math/color.h"
|
||||
|
||||
#include "./RJNetworkNode.h"
|
||||
#include "./RJAction.h"
|
||||
#include "./RJSequenceAction.h"
|
||||
|
||||
#endif // ROKOJORI_GODOT_HEADERS_H
|
|
@ -0,0 +1,26 @@
|
|||
|
||||
/* RJNetworkNode.cpp */
|
||||
|
||||
#include "RJNetworkNode.h"
|
||||
|
||||
// Registers fields, signals and methods for Godot
|
||||
void RJNetworkNode::_bind_methods()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// Constructor
|
||||
RJNetworkNode::RJNetworkNode()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// Destructor
|
||||
RJNetworkNode::~RJNetworkNode()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
/* RJNetworkNode.h */
|
||||
|
||||
#ifndef ROKOJORI__NETWORK_NODE_H
|
||||
#define ROKOJORI__NETWORK_NODE_H
|
||||
|
||||
#include "scene/main/node.h"
|
||||
|
||||
class RJNetworkNode : public Node
|
||||
{
|
||||
GDCLASS( RJNetworkNode, Node );
|
||||
|
||||
protected:
|
||||
static void _bind_methods();
|
||||
|
||||
|
||||
|
||||
|
||||
public:
|
||||
|
||||
|
||||
|
||||
// Constructor
|
||||
RJNetworkNode();
|
||||
|
||||
// Destructor
|
||||
~RJNetworkNode();
|
||||
};
|
||||
|
||||
|
||||
#endif // ROKOJORI__NETWORK_NODE_H
|
|
@ -0,0 +1,55 @@
|
|||
|
||||
/* RJSequenceAction.cpp */
|
||||
|
||||
#include "RJSequenceAction.h"
|
||||
|
||||
|
||||
void RJSequenceAction::_bind_methods()
|
||||
{
|
||||
GDVIRTUAL_BIND( cancelAction, "id" );
|
||||
|
||||
ClassDB::bind_method( D_METHOD( "dispatchStart" ) , &RJSequenceAction::dispatchStart );
|
||||
ClassDB::bind_method( D_METHOD( "dispatchCancelled" ) , &RJSequenceAction::dispatchCancelled );
|
||||
ClassDB::bind_method( D_METHOD( "dispatchEnd" ) , &RJSequenceAction::dispatchEnd );
|
||||
ClassDB::bind_method( D_METHOD( "getLastSequenceActionID" ) , &RJSequenceAction::getLastSequenceActionID );
|
||||
|
||||
ADD_SIGNAL (MethodInfo( "onSequenceDone" , PropertyInfo(Variant::INT, "id"), PropertyInfo(Variant::BOOL, "success") ) );
|
||||
}
|
||||
|
||||
int RJSequenceAction::dispatchStart()
|
||||
{
|
||||
if ( idCounter > 1000000 )
|
||||
{
|
||||
idCounter = 0;
|
||||
}
|
||||
|
||||
idCounter++;
|
||||
|
||||
return idCounter;
|
||||
}
|
||||
|
||||
int RJSequenceAction::getLastSequenceActionID()
|
||||
{
|
||||
return idCounter;
|
||||
}
|
||||
|
||||
void RJSequenceAction::dispatchCancelled( int id )
|
||||
{
|
||||
emit_signal( SNAME( "onSequenceDone" ), id, false );
|
||||
}
|
||||
|
||||
void RJSequenceAction::dispatchEnd( int id )
|
||||
{
|
||||
emit_signal( SNAME( "onSequenceDone" ), id, true );
|
||||
}
|
||||
|
||||
RJSequenceAction::RJSequenceAction()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
RJSequenceAction::~RJSequenceAction()
|
||||
{
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
|
||||
/* RJSequenceAction.h */
|
||||
|
||||
#ifndef ROKOJORI__SEQUENCE_ACTION_H
|
||||
#define ROKOJORI__SEQUENCE_ACTION_H
|
||||
|
||||
|
||||
#include "./RJAction.h"
|
||||
|
||||
|
||||
class RJSequenceAction : public RJAction
|
||||
{
|
||||
GDCLASS(RJSequenceAction, RJAction);
|
||||
|
||||
protected:
|
||||
static void _bind_methods();
|
||||
|
||||
int idCounter = 0;
|
||||
|
||||
public:
|
||||
|
||||
int dispatchStart();
|
||||
void dispatchCancelled( int id );
|
||||
void dispatchEnd( int id );
|
||||
|
||||
int getLastSequenceActionID();
|
||||
GDVIRTUAL1( cancelAction, int );
|
||||
|
||||
/* signal onSequenceDone */
|
||||
|
||||
RJSequenceAction();
|
||||
|
||||
~RJSequenceAction();
|
||||
};
|
||||
|
||||
|
||||
#endif // ROKOJORI__SEQUENCE_ACTION_H
|
|
@ -0,0 +1,28 @@
|
|||
/* register_types.cpp */
|
||||
|
||||
#include "register_types.h"
|
||||
|
||||
#include "core/object/class_db.h"
|
||||
|
||||
/*INCLUDES*/
|
||||
|
||||
void initialize_rokojori_action_library_module( ModuleInitializationLevel p_level )
|
||||
{
|
||||
if ( p_level != MODULE_INITIALIZATION_LEVEL_SCENE )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/*CLASS-DB-REGISTRATIONS*/
|
||||
}
|
||||
|
||||
void uninitialize_rokojori_action_library_module( ModuleInitializationLevel p_level )
|
||||
{
|
||||
if ( p_level != MODULE_INITIALIZATION_LEVEL_SCENE )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
/* register_types.h */
|
||||
|
||||
#ifndef ROKOJORI_ACTION_LIBRARY_REGISTER_TYPES_H
|
||||
#define ROKOJORI_ACTION_LIBRARY_REGISTER_TYPES_H
|
||||
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
|
||||
void initialize_rokojori_action_library_module( ModuleInitializationLevel p_level );
|
||||
void uninitialize_rokojori_action_library_module( ModuleInitializationLevel p_level );
|
||||
|
||||
|
||||
#endif // ROKOJORI_ACTION_LIBRARY_REGISTER_TYPES_H
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"class":"RJNetworkNode:Node",
|
||||
|
||||
"public":
|
||||
{
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"class":"RJSelector:Resource",
|
||||
|
||||
"includes":
|
||||
[
|
||||
"scene/main/node.h"
|
||||
],
|
||||
|
||||
|
||||
"public":
|
||||
{
|
||||
"selects():bool":{ "node":"Ref<Node>"}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"class":"RJSensor:RJNetworkNode",
|
||||
|
||||
"public":
|
||||
{
|
||||
"getValue():float":{},
|
||||
"isActive():bool":{},
|
||||
"wasActive():bool":{},
|
||||
"updateValue()":{ "value":"float"}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"variations": "genericOnlyIntNode",
|
||||
|
||||
"class":"RJ{Extension}{DataTypeName}Property:{ParentClass}",
|
||||
|
||||
"public":
|
||||
{
|
||||
"property value":"{DataType}"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"variations": "generic",
|
||||
|
||||
"class":"RJGet{DataTypeName}FromNode{Extension}:{ParentClass}",
|
||||
|
||||
"public":
|
||||
{
|
||||
"get():{DataType}" : { "node":"Ref<Node>" }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"variations": "generic",
|
||||
|
||||
"class":"RJSet{DataTypeName}OnNode{Extension}:{ParentClass}",
|
||||
|
||||
"public":
|
||||
{
|
||||
"set()" : { "node":"Ref<Node>", "value":"{DataType}" }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"class":"RJCaster:Node3D",
|
||||
|
||||
"includes":
|
||||
[
|
||||
"./RJAction.h",
|
||||
"./RJSelector.h",
|
||||
"core/math/vector3.h",
|
||||
"scene/resources/3d/shape_3d.h"
|
||||
],
|
||||
|
||||
"public":
|
||||
{
|
||||
"beforeProcess":"Node<RJAction>",
|
||||
"afterProcess":"Node<RJAction>",
|
||||
"includeSelector":"Resource<RJSelector>",
|
||||
"excludeSelector":"Resource<RJSelector>",
|
||||
|
||||
"numColliders():int":{},
|
||||
"getCollider():Ref<Node>":{ "index":"int" },
|
||||
"getCollisionPosition():Vector3":{ "index":"int" },
|
||||
"getCollisionNormal():Vector3":{ "index":"int" },
|
||||
"getCollisionShape():Ref<Shape3D>":{ "index":"int" }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
"class":"RJPointable:Node3D",
|
||||
|
||||
"includes":
|
||||
[
|
||||
"./RJAction.h",
|
||||
"./RJPointer.h"
|
||||
],
|
||||
|
||||
"forwards":
|
||||
[
|
||||
"template<typename Type> class Ref;",
|
||||
"class RJPointer;"
|
||||
],
|
||||
|
||||
"public":
|
||||
{
|
||||
"pointingPriority":"int = 0",
|
||||
|
||||
"onPointed":"Node<RJAction>",
|
||||
"onUnpointed":"Node<RJAction>",
|
||||
"onPointerAdded":"Node<RJAction>",
|
||||
"onPointerRemoved":"Node<RJAction>",
|
||||
|
||||
"updatePointerState()":{ "pointer":"Ref<RJPointer>", "pointed":"bool" },
|
||||
"getPointer():Ref<RJPointer>":{ "index":"int" },
|
||||
"numPointing():int":{}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"class":"RJPointer:Node3D",
|
||||
|
||||
"includes":
|
||||
[
|
||||
"./RJCaster.h",
|
||||
"./RJPointable.h"
|
||||
],
|
||||
|
||||
"forwards":
|
||||
[
|
||||
"template<typename Type> class Ref;",
|
||||
"class RJPointable;"
|
||||
],
|
||||
|
||||
"public":
|
||||
{
|
||||
"caster":"Node<RJCaster>",
|
||||
"getPointable():Ref<RJPointable>":{ "index":"int" }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"class":"RJInteractable:Node3D",
|
||||
|
||||
"includes":
|
||||
[
|
||||
"./RJAction.h"
|
||||
],
|
||||
|
||||
"public":
|
||||
{
|
||||
"onInteraction":"Node<RJAction>"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"class":"RJInteractor:Node3D",
|
||||
|
||||
"includes":
|
||||
[
|
||||
"./RJSensor.h",
|
||||
"./RJPointer.h"
|
||||
],
|
||||
|
||||
"public":
|
||||
{
|
||||
"input":"Node<RJSensor>",
|
||||
"pointer":"Node<RJPointer>"
|
||||
}
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
{
|
||||
"class":"RJBoolProperty:RJNetworkNode",
|
||||
|
||||
"public":
|
||||
{
|
||||
"virtual set()" : { "value":"bool" },
|
||||
"virtual get():bool": {},
|
||||
"signal onChange()" : {}
|
||||
}
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
{
|
||||
"class":"RJNodeProperty:RJNetworkNode",
|
||||
|
||||
"public":
|
||||
{
|
||||
"virtual set()" : { "value":"Ref<Node>" },
|
||||
"virtual get():Ref<Node>": {},
|
||||
"signal onChange()" : {}
|
||||
}
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
"class":"RJNumberProperty:RJNetworkNode",
|
||||
|
||||
"includes":[ "./RJAction.h" ],
|
||||
|
||||
"public":
|
||||
{
|
||||
"virtual set()" : { "value":"double" },
|
||||
"virtual get():double": {},
|
||||
"action changed" : {}
|
||||
}
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
{
|
||||
"class":"RJStringProperty:RJNetworkNode",
|
||||
|
||||
"public":
|
||||
{
|
||||
"virtual set()" : { "value":"String" },
|
||||
"virtual get():String": {},
|
||||
"signal onChange()" : {}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,174 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.CppClassMember = exports.CppParameter = void 0;
|
||||
const GodotTypes_1 = require("./GodotTypes");
|
||||
class CppParameter {
|
||||
constructor() {
|
||||
this.name = "";
|
||||
this.type = "";
|
||||
}
|
||||
}
|
||||
exports.CppParameter = CppParameter;
|
||||
class CppClassMember {
|
||||
constructor(accessModifier, nameDefinition, body) {
|
||||
this.name = "";
|
||||
this.isMethod = false;
|
||||
this.isVirtual = false;
|
||||
this.isStatic = false;
|
||||
this.isSignal = false;
|
||||
this.type = "void";
|
||||
this.initialValue = null;
|
||||
this.parameters = [];
|
||||
this.accessModifier = "";
|
||||
this.parametersDefinition = "";
|
||||
this.accessModifier = accessModifier;
|
||||
if (nameDefinition.indexOf("()") != -1) {
|
||||
this.isMethod = true;
|
||||
let typeRegex = /\(\)\s*(?:\:\s*(.+)\s*)?$/;
|
||||
let result = typeRegex.exec(nameDefinition);
|
||||
if (result[1]) {
|
||||
this.type = result[1];
|
||||
}
|
||||
nameDefinition = nameDefinition.replace(typeRegex, "");
|
||||
}
|
||||
let names = nameDefinition.split(/\s+/);
|
||||
this.name = names[names.length - 1];
|
||||
for (let i = 0; i < names.length - 1; i++) {
|
||||
if ("virtual" === names[i]) {
|
||||
this.isVirtual = true;
|
||||
}
|
||||
if ("static" === names[i]) {
|
||||
this.isStatic = true;
|
||||
}
|
||||
if ("signal" === names[i]) {
|
||||
this.isSignal = true;
|
||||
}
|
||||
}
|
||||
if (this.isMethod) {
|
||||
this.parseMethodBody(body);
|
||||
}
|
||||
else {
|
||||
this.parseVariableBody(body);
|
||||
}
|
||||
}
|
||||
get isMemberWithInitialValue() {
|
||||
return !this.isMethod && this.initialValue !== null;
|
||||
}
|
||||
getMemberInitializer() {
|
||||
return `${this.name} = ${this.initialValue};`;
|
||||
}
|
||||
parseVariableBody(body) {
|
||||
if (typeof body === "boolean") {
|
||||
this.type = "bool";
|
||||
this.initialValue = body + "";
|
||||
return;
|
||||
}
|
||||
if (typeof body === "number") {
|
||||
this.type = "float";
|
||||
this.initialValue = body + "";
|
||||
return;
|
||||
}
|
||||
let regex = /((?:\w|\<|\>)+)(?:\s*\=\s*(.+))?/;
|
||||
let result = regex.exec(body);
|
||||
this.type = result[1];
|
||||
this.initialValue = result[2] || null;
|
||||
}
|
||||
parseMethodBody(body) {
|
||||
if (!body) {
|
||||
return;
|
||||
}
|
||||
if (typeof body === "string") {
|
||||
this.type = body;
|
||||
return;
|
||||
}
|
||||
for (let it in body) {
|
||||
if (!body.hasOwnProperty(it)) {
|
||||
continue;
|
||||
}
|
||||
let cppParameter = new CppParameter();
|
||||
cppParameter.name = it;
|
||||
cppParameter.type = body[it];
|
||||
this.parameters.push(cppParameter);
|
||||
}
|
||||
}
|
||||
getMethodBinding(className) {
|
||||
if (!this.isMethod) {
|
||||
let type = GodotTypes_1.GodotTypes.stringToVariantType(this.type);
|
||||
let bindings = [];
|
||||
bindings.push(`/* ${this.name}: ${this.type} */`);
|
||||
bindings.push(`ClassDB::bind_method(D_METHOD("get_${this.name}"), &${className}::get_${this.name});`);
|
||||
bindings.push(`ClassDB::bind_method(D_METHOD("set_${this.name}"), &${className}::set_${this.name});`);
|
||||
bindings.push(`ADD_PROPERTY(PropertyInfo(Variant::${type}, "${this.name}"), "set_${this.name}", "get_${this.name}");`);
|
||||
bindings.push(` `);
|
||||
//ClassDB::bind_method(D_METHOD("set_color", "color"), &GLTFLight::set_color);
|
||||
//ADD_PROPERTY(PropertyInfo(Variant::COLOR, "color"), "set_color", "get_color"); // Color
|
||||
return bindings.join("\n ");
|
||||
}
|
||||
if (this.isSignal) {
|
||||
//ADD_SIGNAL(MethodInfo("session_supported", PropertyInfo(Variant::STRING, "session_mode"), PropertyInfo(Variant::BOOL, "supported")));
|
||||
let parameterInfos = "";
|
||||
for (let i = 0; i < this.parameters.length; i++) {
|
||||
let type = GodotTypes_1.GodotTypes.stringToVariantType(this.parameters[i].type);
|
||||
let name = this.parameters[i].name;
|
||||
let pi = `, PropertyInfo(Variant::${type}, "${name}")`;
|
||||
parameterInfos += pi;
|
||||
}
|
||||
return `ADD_SIGNAL (MethodInfo( "${this.name}" ${parameterInfos}) );`;
|
||||
}
|
||||
else if (this.isVirtual) {
|
||||
let parameterInfos = "";
|
||||
for (let i = 0; i < this.parameters.length; i++) {
|
||||
let name = `, "${this.parameters[i].name}"`;
|
||||
parameterInfos += name;
|
||||
}
|
||||
return `GDVIRTUAL_BIND( ${this.name}${parameterInfos} );`;
|
||||
}
|
||||
else {
|
||||
return `ClassDB::bind_method( D_METHOD( "${this.name}" ) , &${className}::${this.name} );`;
|
||||
}
|
||||
}
|
||||
getHeaderDefinition() {
|
||||
if (this.isSignal) {
|
||||
return `/* signal ${this.name} */`;
|
||||
}
|
||||
else if (this.isMethod) {
|
||||
return this.getMethodHeaderDefinition();
|
||||
}
|
||||
else {
|
||||
return this.getVariableHeaderDefinition();
|
||||
}
|
||||
}
|
||||
getParametersDefinition() {
|
||||
return this.parameters.map(p => p.type + " " + p.name).join(", ");
|
||||
}
|
||||
getMethodHeaderDefinition() {
|
||||
if (this.isVirtual) {
|
||||
let numParameters = this.parameters.length;
|
||||
let methodReturnType = this.type === "void" ? "" : "R";
|
||||
let returnTypeDefinition = this.type === "void" ? "" : (this.type + ", ");
|
||||
let parametersDefinition = "";
|
||||
if (numParameters > 0) {
|
||||
parametersDefinition = ", " + this.parameters.map(p => p.type).join(", ");
|
||||
}
|
||||
return `GDVIRTUAL${numParameters}${methodReturnType}( ${returnTypeDefinition}${this.name}${parametersDefinition} );`;
|
||||
}
|
||||
return `${this.type} ${this.name}(${this.parametersDefinition});`;
|
||||
}
|
||||
getVariableHeaderDefinition() {
|
||||
return `${this.type} get_${this.name}(); void set_${this.name}( ${this.type} p_${this.name} );`;
|
||||
//return `${this.type} ${this.name};`
|
||||
}
|
||||
getPropertyHeaderDefinition() {
|
||||
return `${this.type} ${this.name};`;
|
||||
}
|
||||
getPropertyImplementation(className) {
|
||||
let bindings = [];
|
||||
bindings.push(`/* ${this.name}: ${this.type} */`);
|
||||
bindings.push(`${this.type} ${className}::get_${this.name}() { return ${this.name}; }`);
|
||||
bindings.push(`void ${className}::set_${this.name}( ${this.type} p_${this.name} ) { ${this.name} = p_${this.name}; }`);
|
||||
bindings.push(` `);
|
||||
return bindings.join("\n");
|
||||
}
|
||||
}
|
||||
exports.CppClassMember = CppClassMember;
|
||||
//# sourceMappingURL=CppClassMember.js.map
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,156 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.CppCreator = void 0;
|
||||
const CppClassMember_1 = require("./CppClassMember");
|
||||
const CppHeaderCreator_1 = require("./CppHeaderCreator");
|
||||
const CppImplementationCreator_1 = require("./CppImplementationCreator");
|
||||
const Files_1 = require("./library/Files");
|
||||
const Texts_1 = require("./library/Texts");
|
||||
class CppCreator {
|
||||
static createTypeRegistration(className) {
|
||||
return `ClassDB::register_class<${className}>();`;
|
||||
}
|
||||
static createIncludes(className) {
|
||||
console.log("Create include", className);
|
||||
let godotClasses = {
|
||||
"Node": "scene/main/node.h",
|
||||
"Node2D": "scene/2d/node_2d.h",
|
||||
"Node3D": "scene/3d/node_3d.h",
|
||||
"Resource": "core/io/resource.h"
|
||||
};
|
||||
if (godotClasses[className]) {
|
||||
return `#include "${godotClasses[className]}"`;
|
||||
}
|
||||
return `#include "./${className}.h"`;
|
||||
}
|
||||
static grabMembers(membersData, accessModifier) {
|
||||
let members = [];
|
||||
if (!membersData) {
|
||||
return members;
|
||||
}
|
||||
for (let it in membersData) {
|
||||
if (!membersData.hasOwnProperty(it)) {
|
||||
continue;
|
||||
}
|
||||
let nameDefinition = it;
|
||||
let memberData = membersData[it];
|
||||
let actionRegex = /^\s*action\s+(\w+)\s*$/;
|
||||
if (actionRegex.test(nameDefinition)) {
|
||||
let name = actionRegex.exec(nameDefinition)[1];
|
||||
let upperCaseName = name[0].toUpperCase() + name.substring(1);
|
||||
let actionName = `on${upperCaseName}`;
|
||||
let signal = `signal ${name}()`;
|
||||
let actionGetter = `virtual get_${actionName}():Ref<RJAction>`;
|
||||
let actionSetter = `virtual set_${actionName}()`;
|
||||
members.push(new CppClassMember_1.CppClassMember(accessModifier, signal, {}));
|
||||
members.push(new CppClassMember_1.CppClassMember("protected", "m_" + name, {}));
|
||||
members.push(new CppClassMember_1.CppClassMember(accessModifier, actionGetter, {}));
|
||||
members.push(new CppClassMember_1.CppClassMember(accessModifier, actionSetter, { "action": "Ref<RJAction>" }));
|
||||
}
|
||||
else {
|
||||
let classMember = new CppClassMember_1.CppClassMember(accessModifier, nameDefinition, memberData);
|
||||
members.push(classMember);
|
||||
}
|
||||
}
|
||||
return members;
|
||||
}
|
||||
static getHeaderDefine(className) {
|
||||
className = className.replace(/^RJ/, "");
|
||||
let output = [className[0]];
|
||||
for (let i = 1; i < className.length; i++) {
|
||||
let character = className[i];
|
||||
let upperCaseCharacter = character.toUpperCase();
|
||||
if (character === upperCaseCharacter) {
|
||||
output.push("_");
|
||||
}
|
||||
output.push(upperCaseCharacter);
|
||||
}
|
||||
className = output.join("");
|
||||
return "ROKOJORI__" + className + "_H";
|
||||
}
|
||||
static getRegistratedTypes(text) {
|
||||
let matches = Texts_1.Texts.getMatches(text, CppCreator.classRegistrationRegex);
|
||||
let types = matches.map(m => {
|
||||
return { match: m.match, index: m.index, type: CppCreator.classRegistrationRegex.exec(m.match)[1] };
|
||||
});
|
||||
return types;
|
||||
}
|
||||
static createCppFiles(definitionPath, types, missingTypes) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
console.log("Creating: ", definitionPath);
|
||||
let jsonPath = definitionPath;
|
||||
// path.join( definitionsPath, definitionPath );
|
||||
let isDir = yield Files_1.Files.isDirectory(jsonPath);
|
||||
if (isDir) {
|
||||
let files = yield Files_1.Files.getFiles(jsonPath);
|
||||
for (let file of files) {
|
||||
yield CppCreator.createCppFiles(Texts_1.Texts.joinPaths(jsonPath, file), types, missingTypes);
|
||||
}
|
||||
return Promise.resolve();
|
||||
}
|
||||
let data = yield Files_1.Files.loadJSON(jsonPath);
|
||||
//console.log( "data:", jsonPath, data );
|
||||
let classNameResult = /(\w+)(?:\:(\w+))?/.exec(data.class);
|
||||
let className = classNameResult[1];
|
||||
let extendingClass = classNameResult[2];
|
||||
let headerDefine = CppCreator.getHeaderDefine(className);
|
||||
let fromProtectedMembers = CppCreator.grabMembers(data.protected, "protected");
|
||||
let fromPublicMembers = CppCreator.grabMembers(data.public, "public");
|
||||
let protectedMembers = [];
|
||||
let publicMembers = [];
|
||||
let insertMember = (m) => {
|
||||
let container = m.accessModifier === "public" ? publicMembers : protectedMembers;
|
||||
container.push(m);
|
||||
};
|
||||
fromProtectedMembers.forEach(m => insertMember(m));
|
||||
fromPublicMembers.forEach(m => insertMember(m));
|
||||
let allMembers = [].concat(protectedMembers).concat(publicMembers);
|
||||
let protectedHeader = protectedMembers.map(m => m.getHeaderDefinition()).join("\n ");
|
||||
let publicHeader = publicMembers.map(m => m.getHeaderDefinition()).join("\n ");
|
||||
let properties = publicMembers.filter(m => !m.isMethod);
|
||||
let propertyDefinitions = properties.map(p => p.getPropertyHeaderDefinition()).join("\n ");
|
||||
protectedHeader += "\n\n " + propertyDefinitions;
|
||||
let methodBindings = allMembers.map(m => m.getMethodBinding(className)).join("\n ");
|
||||
let initializers = allMembers.filter(m => m.isMemberWithInitialValue).map(m => m.getMemberInitializer()).join("\n ");
|
||||
let includes = "";
|
||||
if (data.includes) {
|
||||
let mappedIncludes = data.includes.map((inc) => `#include "${inc}"`);
|
||||
includes = mappedIncludes.join("\n");
|
||||
}
|
||||
let extendingClassInclude = CppCreator.createIncludes(extendingClass);
|
||||
includes += "\n" + extendingClassInclude;
|
||||
let header = CppHeaderCreator_1.CppHeaderCreator.create(className, extendingClass, headerDefine, protectedHeader, publicHeader, includes);
|
||||
let constructorExpressions = initializers;
|
||||
let destructorExpressions = "";
|
||||
let methodImplementations = "";
|
||||
let propertyImplementations = properties.map(p => p.getPropertyImplementation(className)).join("\n");
|
||||
methodImplementations += propertyImplementations;
|
||||
let implementation = CppImplementationCreator_1.CppImplementationCreator.craete(className, methodBindings, constructorExpressions, destructorExpressions, methodImplementations);
|
||||
//console.log( header );
|
||||
//console.log( implementation );
|
||||
let hasType = types.find(t => t.type === className);
|
||||
if (!hasType) {
|
||||
missingTypes.push(className);
|
||||
}
|
||||
let rawFilePath = Texts_1.Texts.joinPaths(CppCreator.outputPath, className);
|
||||
yield Files_1.Files.saveUTF8(rawFilePath + ".h", header);
|
||||
yield Files_1.Files.saveUTF8(rawFilePath + ".cpp", implementation);
|
||||
return Promise.resolve();
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.CppCreator = CppCreator;
|
||||
CppCreator.definitionsPath = __dirname + "/../../rokojori-action-library-definitions";
|
||||
CppCreator.outputPath = __dirname + "/../../rokojori-action-library";
|
||||
CppCreator.registerTypesPath = CppCreator.outputPath + "/register_types.cpp";
|
||||
CppCreator.classRegistrationRegex = /ClassDB\:\:register_class\<(\w+)\>\(\)\;/;
|
||||
//# sourceMappingURL=CppCreator.js.map
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,39 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.CppHeaderCreator = void 0;
|
||||
class CppHeaderCreator {
|
||||
static create(className, extendingClassName, headerDefine, protectedMembers, publicMembers, includes) {
|
||||
let cppHeader = `
|
||||
/* ${className}.h */
|
||||
|
||||
#ifndef ${headerDefine}
|
||||
#define ${headerDefine}
|
||||
|
||||
${includes}
|
||||
|
||||
|
||||
class ${className} : public ${extendingClassName}
|
||||
{
|
||||
GDCLASS(${className}, ${extendingClassName});
|
||||
|
||||
protected:
|
||||
static void _bind_methods();
|
||||
${protectedMembers}
|
||||
|
||||
public:
|
||||
|
||||
${publicMembers}
|
||||
|
||||
${className}();
|
||||
|
||||
~${className}();
|
||||
};
|
||||
|
||||
|
||||
#endif // ${headerDefine}
|
||||
`;
|
||||
return cppHeader;
|
||||
}
|
||||
}
|
||||
exports.CppHeaderCreator = CppHeaderCreator;
|
||||
//# sourceMappingURL=CppHeaderCreator.js.map
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"CppHeaderCreator.js","sourceRoot":"","sources":["../source/CppHeaderCreator.ts"],"names":[],"mappings":";;;AAAA,MAAa,gBAAgB;IAE3B,MAAM,CAAC,MAAM,CAAE,SAAgB,EAAE,kBAAyB,EACzC,YAAmB,EAAE,gBAAuB,EAC5C,aAAoB,EAAE,QAAe;QAGpD,IAAI,SAAS,GAEjB;KACK,SAAS;;UAEJ,YAAY;UACZ,YAAY;;EAEpB,QAAQ;;;QAGF,SAAS,aAAa,kBAAkB;;YAEpC,SAAS,KAAK,kBAAkB;;;;IAIxC,gBAAgB;;;;IAIhB,aAAa;;IAEb,SAAS;;KAER,SAAS;;;;YAIF,YAAY;CACvB,CAAA;QAEG,OAAO,SAAS,CAAC;IAGnB,CAAC;CAEF;AA5CD,4CA4CC"}
|
|
@ -0,0 +1,34 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.CppImplementationCreator = void 0;
|
||||
class CppImplementationCreator {
|
||||
static craete(className, boundMethods, constructorExpressions, destructorExpressions, methodImplementations) {
|
||||
let cppImplementation = `
|
||||
/* ${className}.cpp */
|
||||
|
||||
#include "${className}.h"
|
||||
|
||||
|
||||
void ${className}::_bind_methods()
|
||||
{
|
||||
${boundMethods}
|
||||
}
|
||||
|
||||
${className}::${className}()
|
||||
{
|
||||
${constructorExpressions}
|
||||
}
|
||||
|
||||
${className}::~${className}()
|
||||
{
|
||||
${destructorExpressions}
|
||||
}
|
||||
|
||||
${methodImplementations}
|
||||
|
||||
`;
|
||||
return cppImplementation;
|
||||
}
|
||||
}
|
||||
exports.CppImplementationCreator = CppImplementationCreator;
|
||||
//# sourceMappingURL=CppImplementationCreator.js.map
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"CppImplementationCreator.js","sourceRoot":"","sources":["../source/CppImplementationCreator.ts"],"names":[],"mappings":";;;AACA,MAAa,wBAAwB;IAGnC,MAAM,CAAC,MAAM,CAAE,SAAgB,EAAE,YAAmB,EACrC,sBAA6B,EAAE,qBAA4B,EAC3D,qBAA4B;QAGzC,IAAI,iBAAiB,GACzB;KACK,SAAS;;YAEF,SAAS;;;OAGd,SAAS;;IAEZ,YAAY;;;EAGd,SAAS,KAAK,SAAS;;IAErB,sBAAsB;;;EAGxB,SAAS,MAAM,SAAS;;IAEtB,qBAAqB;;;EAGvB,qBAAqB;;CAEtB,CAAA;QAEG,OAAO,iBAAiB,CAAC;IAE3B,CAAC;CAEF;AAtCD,4DAsCC"}
|
|
@ -0,0 +1,56 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.GodotTypes = void 0;
|
||||
class GodotTypes {
|
||||
static stringToVariantType(stringType) {
|
||||
if (/^TypedArray\<.+\>$/.test(stringType)) {
|
||||
return "ARRAY";
|
||||
}
|
||||
switch (stringType) {
|
||||
case "bool": return "BOOL";
|
||||
case "int": return "INT";
|
||||
case "float": return "FLOAT";
|
||||
case "String": return "STRING";
|
||||
// Math
|
||||
case "Vector2": return "VECTOR2";
|
||||
case "Vector2i": return "VECTOR2I";
|
||||
case "Rect2": return "RECT2";
|
||||
case "Rect2i": return "RECT2I";
|
||||
case "Transform2D": return "TRANSFORM2D";
|
||||
case "Vector3": return "VECTOR3";
|
||||
case "Vector3i": return "VECTOR3I";
|
||||
case "Vector4": return "VECTOR4";
|
||||
case "Vector4i": return "VECTOR4I";
|
||||
case "Plane": return "PLANE";
|
||||
case "AABB": return "AABB";
|
||||
case "Quaternion": return "QUATERNION";
|
||||
case "Basis": return "BASIS";
|
||||
case "Transform3D": return "TRANSFORM3D";
|
||||
case "Projection": return "PROJECTION";
|
||||
// Miscellaneous
|
||||
case "Color": return "COLOR";
|
||||
case "RID": return "RID";
|
||||
case "Object": return "OBJECT";
|
||||
case "Callable": return "CALLABLE";
|
||||
case "Signal": return "SIGNAL";
|
||||
case "StringName": return "STRING_NAME";
|
||||
case "NodePath": return "NODE_PATH";
|
||||
case "Dictionary": return "DICTIONARY";
|
||||
case "Array": return "ARRAY";
|
||||
// Arrays
|
||||
case "PackedByteArray": return "PACKED_BYTE_ARRAY";
|
||||
case "PackedInt32Array": return "PACKED_INT32_ARRAY";
|
||||
case "PackedInt64Array": return "PACKED_INT64_ARRAY";
|
||||
case "PackedFloat32Array": return "PACKED_FLOAT32_ARRAY";
|
||||
case "PackedFloat64Array": return "PACKED_FLOAT64_ARRAY";
|
||||
case "PackedStringArray": return "PACKED_STRING_ARRAY";
|
||||
case "PackedVector2Array": return "PACKED_VECTOR2_ARRAY";
|
||||
case "PackedVector3Array": return "PACKED_VECTOR3_ARRAY";
|
||||
case "PackedColorArray": return "PACKED_COLOR_ARRAY";
|
||||
}
|
||||
console.error("Type could not be mapped: ", stringType);
|
||||
return "OBJECT";
|
||||
}
|
||||
}
|
||||
exports.GodotTypes = GodotTypes;
|
||||
//# sourceMappingURL=GodotTypes.js.map
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"GodotTypes.js","sourceRoot":"","sources":["../source/GodotTypes.ts"],"names":[],"mappings":";;;AACA,MAAa,UAAU;IAErB,MAAM,CAAC,mBAAmB,CAAE,UAAiB;QAE3C,IAAK,oBAAoB,CAAC,IAAI,CAAE,UAAU,CAAE,EAC5C,CAAC;YACC,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,QAAQ,UAAU,EAClB,CAAC;YACC,KAAK,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC;YAC3B,KAAK,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC;YACzB,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;YAC7B,KAAK,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC;YAE/B,OAAO;YACP,KAAK,SAAS,CAAC,CAAC,OAAO,SAAS,CAAC;YACjC,KAAK,UAAU,CAAC,CAAC,OAAO,UAAU,CAAC;YACnC,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;YAC7B,KAAK,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC;YAC/B,KAAK,aAAa,CAAC,CAAC,OAAO,aAAa,CAAC;YACzC,KAAK,SAAS,CAAC,CAAC,OAAO,SAAS,CAAC;YACjC,KAAK,UAAU,CAAC,CAAC,OAAO,UAAU,CAAC;YACnC,KAAK,SAAS,CAAC,CAAC,OAAO,SAAS,CAAC;YACjC,KAAK,UAAU,CAAC,CAAC,OAAO,UAAU,CAAC;YACnC,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;YAC7B,KAAK,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC;YAC3B,KAAK,YAAY,CAAC,CAAC,OAAO,YAAY,CAAC;YACvC,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;YAC7B,KAAK,aAAa,CAAC,CAAC,OAAO,aAAa,CAAC;YACzC,KAAK,YAAY,CAAC,CAAC,OAAO,YAAY,CAAC;YAEvC,gBAAgB;YAChB,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;YAC7B,KAAK,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC;YACzB,KAAK,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC;YAC/B,KAAK,UAAU,CAAC,CAAC,OAAO,UAAU,CAAC;YACnC,KAAK,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC;YAC/B,KAAK,YAAY,CAAC,CAAC,OAAO,aAAa,CAAC;YACxC,KAAK,UAAU,CAAC,CAAC,OAAO,WAAW,CAAC;YACpC,KAAK,YAAY,CAAC,CAAC,OAAO,YAAY,CAAC;YACvC,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;YAE7B,SAAS;YACT,KAAK,iBAAiB,CAAC,CAAC,OAAO,mBAAmB,CAAC;YACnD,KAAK,kBAAkB,CAAC,CAAC,OAAO,oBAAoB,CAAC;YACrD,KAAK,kBAAkB,CAAC,CAAC,OAAO,oBAAoB,CAAC;YACrD,KAAK,oBAAoB,CAAC,CAAC,OAAO,sBAAsB,CAAC;YACzD,KAAK,oBAAoB,CAAC,CAAC,OAAO,sBAAsB,CAAC;YACzD,KAAK,mBAAmB,CAAC,CAAC,OAAO,qBAAqB,CAAC;YACvD,KAAK,oBAAoB,CAAC,CAAC,OAAO,sBAAsB,CAAC;YACzD,KAAK,oBAAoB,CAAC,CAAC,OAAO,sBAAsB,CAAC;YACzD,KAAK,kBAAkB,CAAC,CAAC,OAAO,oBAAoB,CAAC;QACvD,CAAC;QAED,OAAO,CAAC,KAAK,CAAE,4BAA4B,EAAE,UAAU,CAAE,CAAC;QAE1D,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AA5DD,gCA4DC"}
|
|
@ -0,0 +1,43 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const RJLog_1 = require("./library/RJLog");
|
||||
const fs = require("node:fs/promises");
|
||||
let from = __dirname + "/../../rokojori-action-library";
|
||||
let to = __dirname + "/../../godot/modules/rokojori_action_library";
|
||||
function main() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
RJLog_1.RJLog.log("Copying C++ source");
|
||||
yield deleteOldDirectory();
|
||||
yield copyToModules();
|
||||
// await runBuild();
|
||||
RJLog_1.RJLog.log("Copying C++ source");
|
||||
});
|
||||
}
|
||||
function deleteOldDirectory() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let stats = yield fs.stat(to);
|
||||
if (stats) {
|
||||
RJLog_1.RJLog.log(`deleting previous directory: "${to}"`);
|
||||
yield fs.rm(to, { recursive: true });
|
||||
}
|
||||
return Promise.resolve();
|
||||
});
|
||||
}
|
||||
function copyToModules() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
RJLog_1.RJLog.log("copying:", `"${from}" >> "${to}"`);
|
||||
yield fs.cp(from, to, { recursive: true });
|
||||
return Promise.resolve();
|
||||
});
|
||||
}
|
||||
main();
|
||||
//# sourceMappingURL=copy-cpp-source.js.map
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"copy-cpp-source.js","sourceRoot":"","sources":["../source/copy-cpp-source.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,2CAAwC;AAExC,MAAM,EAAE,GAAG,OAAO,CAAE,kBAAkB,CAAE,CAAC;AAEzC,IAAI,IAAI,GAAG,SAAS,GAAG,gCAAgC,CAAC;AACxD,IAAI,EAAE,GAAK,SAAS,GAAG,8CAA8C,CAAA;AAErE,SAAe,IAAI;;QAEjB,aAAK,CAAC,GAAG,CAAE,oBAAoB,CAAE,CAAC;QAElC,MAAM,kBAAkB,EAAE,CAAC;QAC3B,MAAM,aAAa,EAAE,CAAC;QACtB,oBAAoB;QAEpB,aAAK,CAAC,GAAG,CAAE,oBAAoB,CAAE,CAAC;IACpC,CAAC;CAAA;AAED,SAAe,kBAAkB;;QAE/B,IAAI,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAE,EAAE,CAAE,CAAC;QAEhC,IAAK,KAAK,EACV,CAAC;YACC,aAAK,CAAC,GAAG,CAAE,iCAAiC,EAAE,GAAG,CAAE,CAAC;YACpD,MAAM,EAAE,CAAC,EAAE,CAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAE,CAAC;QACzC,CAAC;QAED,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CAAA;AAED,SAAe,aAAa;;QAE1B,aAAK,CAAC,GAAG,CAAE,UAAU,EAAE,IAAI,IAAI,SAAS,EAAE,GAAG,CAAE,CAAC;QAChD,MAAM,EAAE,CAAC,EAAE,CAAE,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAG,IAAI,EAAE,CAAE,CAAC;QAE9C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CAAA;AAID,IAAI,EAAE,CAAC"}
|
|
@ -0,0 +1,149 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.CppCreator = void 0;
|
||||
const Header_1 = require("./Header");
|
||||
const Implementation_1 = require("./Implementation");
|
||||
const Files_1 = require("../library/Files");
|
||||
const Texts_1 = require("../library/Texts");
|
||||
const MemberType_1 = require("./MemberType");
|
||||
const CppDefinition_1 = require("./CppDefinition");
|
||||
const Variations_1 = require("./Variations");
|
||||
const VariationTemplates_1 = require("./VariationTemplates");
|
||||
const MemberFactory_1 = require("./factories/MemberFactory");
|
||||
class CppCreator {
|
||||
static createIncludes(className) {
|
||||
// RJLog.log( "Create include", className );
|
||||
let godotClasses = {
|
||||
"Node": "scene/main/node.h",
|
||||
"Node2D": "scene/2d/node_2d.h",
|
||||
"Node3D": "scene/3d/node_3d.h",
|
||||
"Resource": "core/io/resource.h"
|
||||
};
|
||||
if (godotClasses[className]) {
|
||||
return `#include "${godotClasses[className]}"`;
|
||||
}
|
||||
return `#include "./${className}.h"`;
|
||||
}
|
||||
static getHeaderDefine(className) {
|
||||
className = className.replace(/^RJ/, "");
|
||||
let output = [className[0]];
|
||||
for (let i = 1; i < className.length; i++) {
|
||||
let character = className[i];
|
||||
let upperCaseCharacter = character.toUpperCase();
|
||||
if (character === upperCaseCharacter) {
|
||||
output.push("_");
|
||||
}
|
||||
output.push(upperCaseCharacter);
|
||||
}
|
||||
className = output.join("");
|
||||
return "ROKOJORI__" + className + "_H";
|
||||
}
|
||||
static createCppFiles(definitionPath) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let jsonPath = definitionPath;
|
||||
// path.join( definitionsPath, definitionPath );
|
||||
let isDir = yield Files_1.Files.isDirectory(jsonPath);
|
||||
if (isDir) {
|
||||
let files = yield Files_1.Files.getFiles(jsonPath);
|
||||
for (let file of files) {
|
||||
if (file.startsWith("_")) {
|
||||
continue;
|
||||
}
|
||||
yield CppCreator.createCppFiles(Texts_1.Texts.joinPaths(jsonPath, file));
|
||||
}
|
||||
return Promise.resolve();
|
||||
}
|
||||
return this.createCppFile(jsonPath);
|
||||
});
|
||||
}
|
||||
static createCppFile(jsonPath) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let data = yield Files_1.Files.loadJSON(jsonPath);
|
||||
if (data.variations) {
|
||||
let variationsData = data.variations;
|
||||
if (typeof variationsData == "string") {
|
||||
variationsData = VariationTemplates_1.VariationTemplates[variationsData];
|
||||
}
|
||||
let variations = new Variations_1.Variations(variationsData);
|
||||
console.log(variations.items, variations.counter, variations.hasItems);
|
||||
while (variations.hasItems) {
|
||||
let newData = CppDefinition_1.CppDefinition.createVariation(data, variations.currentMap);
|
||||
yield this.createCppFileWith(newData);
|
||||
variations.nextItem();
|
||||
}
|
||||
}
|
||||
else {
|
||||
yield CppCreator.createCppFileWith(data);
|
||||
}
|
||||
return Promise.resolve();
|
||||
});
|
||||
}
|
||||
static createCppFileWith(data) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let classNameResult = /(\w+)(?:\:(\w+))?/.exec(data.class);
|
||||
let className = classNameResult[1];
|
||||
let extendingClass = classNameResult[2];
|
||||
let headerDefine = CppCreator.getHeaderDefine(className);
|
||||
let fromProtectedMembers = MemberFactory_1.MemberFactory.grabMembers(data.protected, "protected");
|
||||
let fromPublicMembers = MemberFactory_1.MemberFactory.grabMembers(data.public, "public");
|
||||
let protectedMembers = [];
|
||||
let publicMembers = [];
|
||||
let insertMember = (m) => {
|
||||
let container = m.accessModifier === "public" ? publicMembers : protectedMembers;
|
||||
container.push(m);
|
||||
};
|
||||
fromProtectedMembers.forEach(m => insertMember(m));
|
||||
fromPublicMembers.forEach(m => insertMember(m));
|
||||
let allMembers = [].concat(protectedMembers).concat(publicMembers);
|
||||
let protectedHeader = protectedMembers.map(m => m.getHeaderDefinition()).join("\n ");
|
||||
let publicHeader = publicMembers.map(m => m.getHeaderDefinition()).join("\n ");
|
||||
let fields = allMembers.filter(m => m.memberType === MemberType_1.MemberType.Field);
|
||||
let methods = allMembers.filter(m => m.memberType === MemberType_1.MemberType.Method);
|
||||
let fieldDeclarations = fields.map(f => f.getFieldDeclaration()).join("\n ");
|
||||
protectedHeader += "\n\n " + fieldDeclarations;
|
||||
let methodBindings = allMembers.map(m => m.getBindings(className)).join("\n ");
|
||||
let initializers = fields.filter(m => m.hasInitializer).map(m => m.getInitializer()).join("\n ");
|
||||
let includes = `#include "./RJGodotHeaders.h"`;
|
||||
if (data.includes) {
|
||||
let mappedIncludes = data.includes.map((inc) => `#include "${inc}"`);
|
||||
includes += "\n" + mappedIncludes.join("\n");
|
||||
}
|
||||
let extendingClassInclude = CppCreator.createIncludes(extendingClass);
|
||||
includes += "\n" + extendingClassInclude;
|
||||
let forwards = "";
|
||||
if (data.forwards) {
|
||||
let forwardDeclarations = data.forwards;
|
||||
forwards = forwardDeclarations.join("\n");
|
||||
}
|
||||
let header = Header_1.Header.create(className, extendingClass, headerDefine, protectedHeader, publicHeader, includes, forwards);
|
||||
let constructorExpressions = initializers;
|
||||
let destructorExpressions = "";
|
||||
let implementations = "";
|
||||
let fieldImplementations = fields.map(f => f.getFieldImplementation(className));
|
||||
implementations += fieldImplementations.join("\n") + "\n";
|
||||
let methodsWithImplementation = methods.filter(m => m.hasMethodImplementation);
|
||||
let methodImplementations = methodsWithImplementation.map(m => m.getMethodImplementation(className));
|
||||
implementations += methodImplementations.join("\n");
|
||||
let implementation = Implementation_1.Implementation.craete(className, methodBindings, constructorExpressions, destructorExpressions, implementations);
|
||||
let rawFilePath = Texts_1.Texts.joinPaths(CppCreator.outputPath, className);
|
||||
yield Files_1.Files.saveUTF8(rawFilePath + ".h", header);
|
||||
yield Files_1.Files.saveUTF8(rawFilePath + ".cpp", implementation);
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.CppCreator = CppCreator;
|
||||
CppCreator.definitionsPath = __dirname + "/../../../rokojori-action-library-definitions";
|
||||
CppCreator.outputPath = __dirname + "/../../../rokojori-action-library";
|
||||
CppCreator.rawPath = CppCreator.definitionsPath + "/_raw";
|
||||
CppCreator.registerTypesPath = CppCreator.rawPath + "/register_types.cpp";
|
||||
CppCreator.registerTypesPathOutput = CppCreator.outputPath + "/register_types.cpp";
|
||||
//# sourceMappingURL=CppCreator.js.map
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,25 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.CppDefinition = void 0;
|
||||
const Texts_1 = require("../library/Texts");
|
||||
class CppDefinition {
|
||||
static createVariation(cppDefinition, map) {
|
||||
let variation = new CppDefinition();
|
||||
variation.class = Texts_1.Texts.replaceAll(cppDefinition.class, map);
|
||||
variation.includes = Texts_1.Texts.replaceAllIn(cppDefinition.includes, map);
|
||||
variation.forwards = Texts_1.Texts.replaceAllIn(cppDefinition.forwards, map);
|
||||
variation.public = CppDefinition.applyVariationOnAll(cppDefinition.public, map);
|
||||
variation.protected = CppDefinition.applyVariationOnAll(cppDefinition.protected, map);
|
||||
return variation;
|
||||
}
|
||||
static applyVariationOnAll(obj, map) {
|
||||
if (obj === null || obj === undefined) {
|
||||
return obj;
|
||||
}
|
||||
let jsonValue = JSON.stringify(obj);
|
||||
jsonValue = Texts_1.Texts.replaceAll(jsonValue, map);
|
||||
return JSON.parse(jsonValue);
|
||||
}
|
||||
}
|
||||
exports.CppDefinition = CppDefinition;
|
||||
//# sourceMappingURL=CppDefinition.js.map
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"CppDefinition.js","sourceRoot":"","sources":["../../source/cpp-creation/CppDefinition.ts"],"names":[],"mappings":";;;AAAA,4CAAyC;AAIzC,MAAa,aAAa;IAYxB,MAAM,CAAC,eAAe,CAAE,aAA2B,EAAE,GAAsB;QAEzE,IAAI,SAAS,GAAG,IAAI,aAAa,EAAE,CAAC;QAEpC,SAAS,CAAC,KAAK,GAAG,aAAK,CAAC,UAAU,CAAE,aAAa,CAAC,KAAK,EAAE,GAAG,CAAE,CAAC;QAE/D,SAAS,CAAC,QAAQ,GAAG,aAAK,CAAC,YAAY,CAAE,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAE,CAAC;QACvE,SAAS,CAAC,QAAQ,GAAG,aAAK,CAAC,YAAY,CAAE,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAE,CAAC;QAEvE,SAAS,CAAC,MAAM,GAAG,aAAa,CAAC,mBAAmB,CAAE,aAAa,CAAC,MAAM,EAAE,GAAG,CAAE,CAAC;QAClF,SAAS,CAAC,SAAS,GAAG,aAAa,CAAC,mBAAmB,CAAE,aAAa,CAAC,SAAS,EAAE,GAAG,CAAE,CAAC;QAExF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAK,GAAK,EAAE,GAAsB;QAE1D,IAAK,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EACtC,CAAC;YACC,OAAO,GAAG,CAAC;QACb,CAAC;QAED,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAE,GAAG,CAAE,CAAC;QACtC,SAAS,GAAG,aAAK,CAAC,UAAU,CAAE,SAAS,EAAE,GAAG,CAAE,CAAC;QAC/C,OAAO,IAAI,CAAC,KAAK,CAAE,SAAS,CAAO,CAAC;IACtC,CAAC;CACF;AAtCD,sCAsCC"}
|
|
@ -0,0 +1,68 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.GodotTypes = void 0;
|
||||
const RJLog_1 = require("../library/RJLog");
|
||||
class GodotTypes {
|
||||
static stringToPropertyHint(stringType) {
|
||||
switch (stringType) {
|
||||
case "Node":
|
||||
case "Ref<Node>":
|
||||
return "PROPERTY_HINT_NODE_TYPE";
|
||||
case "Resource":
|
||||
case "Ref<Resource>":
|
||||
return "PROPERTY_HINT_RESOURCE_TYPE";
|
||||
}
|
||||
RJLog_1.RJLog.error("No property hint found for", `"${stringType}"`);
|
||||
}
|
||||
static stringToVariantType(stringType) {
|
||||
if (/^TypedArray\<.+\>$/.test(stringType)) {
|
||||
return "ARRAY";
|
||||
}
|
||||
switch (stringType) {
|
||||
case "bool": return "BOOL";
|
||||
case "int": return "INT";
|
||||
case "float": return "FLOAT";
|
||||
case "String": return "STRING";
|
||||
// Math
|
||||
case "Vector2": return "VECTOR2";
|
||||
case "Vector2i": return "VECTOR2I";
|
||||
case "Rect2": return "RECT2";
|
||||
case "Rect2i": return "RECT2I";
|
||||
case "Transform2D": return "TRANSFORM2D";
|
||||
case "Vector3": return "VECTOR3";
|
||||
case "Vector3i": return "VECTOR3I";
|
||||
case "Vector4": return "VECTOR4";
|
||||
case "Vector4i": return "VECTOR4I";
|
||||
case "Plane": return "PLANE";
|
||||
case "AABB": return "AABB";
|
||||
case "Quaternion": return "QUATERNION";
|
||||
case "Basis": return "BASIS";
|
||||
case "Transform3D": return "TRANSFORM3D";
|
||||
case "Projection": return "PROJECTION";
|
||||
// Miscellaneous
|
||||
case "Color": return "COLOR";
|
||||
case "RID": return "RID";
|
||||
case "Object": return "OBJECT";
|
||||
case "Callable": return "CALLABLE";
|
||||
case "Signal": return "SIGNAL";
|
||||
case "StringName": return "STRING_NAME";
|
||||
case "NodePath": return "NODE_PATH";
|
||||
case "Dictionary": return "DICTIONARY";
|
||||
case "Array": return "ARRAY";
|
||||
// Arrays
|
||||
case "PackedByteArray": return "PACKED_BYTE_ARRAY";
|
||||
case "PackedInt32Array": return "PACKED_INT32_ARRAY";
|
||||
case "PackedInt64Array": return "PACKED_INT64_ARRAY";
|
||||
case "PackedFloat32Array": return "PACKED_FLOAT32_ARRAY";
|
||||
case "PackedFloat64Array": return "PACKED_FLOAT64_ARRAY";
|
||||
case "PackedStringArray": return "PACKED_STRING_ARRAY";
|
||||
case "PackedVector2Array": return "PACKED_VECTOR2_ARRAY";
|
||||
case "PackedVector3Array": return "PACKED_VECTOR3_ARRAY";
|
||||
case "PackedColorArray": return "PACKED_COLOR_ARRAY";
|
||||
}
|
||||
RJLog_1.RJLog.error("Type could not be mapped: ", stringType);
|
||||
return "OBJECT";
|
||||
}
|
||||
}
|
||||
exports.GodotTypes = GodotTypes;
|
||||
//# sourceMappingURL=GodotTypes.js.map
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"GodotTypes.js","sourceRoot":"","sources":["../../source/cpp-creation/GodotTypes.ts"],"names":[],"mappings":"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"}
|
|
@ -0,0 +1,43 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Header = void 0;
|
||||
class Header {
|
||||
static create(className, extendingClassName, headerDefine, protectedMembers, publicMembers, includes, forwardDeclarations) {
|
||||
let cppHeader = `
|
||||
/* ${className}.h */
|
||||
|
||||
#ifndef ${headerDefine}
|
||||
#define ${headerDefine}
|
||||
|
||||
${includes}
|
||||
|
||||
${forwardDeclarations}
|
||||
|
||||
|
||||
class ${className} : public ${extendingClassName}
|
||||
{
|
||||
GDCLASS( ${className}, ${extendingClassName} );
|
||||
|
||||
protected:
|
||||
static void _bind_methods();
|
||||
${protectedMembers}
|
||||
|
||||
public:
|
||||
|
||||
${publicMembers}
|
||||
|
||||
// Constructor
|
||||
${className}();
|
||||
|
||||
// Destructor
|
||||
~${className}();
|
||||
};
|
||||
|
||||
|
||||
#endif // ${headerDefine}
|
||||
`;
|
||||
return cppHeader;
|
||||
}
|
||||
}
|
||||
exports.Header = Header;
|
||||
//# sourceMappingURL=Header.js.map
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"Header.js","sourceRoot":"","sources":["../../source/cpp-creation/Header.ts"],"names":[],"mappings":";;;AAAA,MAAa,MAAM;IAEjB,MAAM,CAAC,MAAM,CAAE,SAAgB,EAAE,kBAAyB,EACzC,YAAmB,EAAE,gBAAuB,EAC5C,aAAoB,EAAE,QAAe,EACrC,mBAA0B;QAGzC,IAAI,SAAS,GAEjB;KACK,SAAS;;UAEJ,YAAY;UACZ,YAAY;;EAEpB,QAAQ;;EAER,mBAAmB;;;QAGb,SAAS,aAAa,kBAAkB;;aAEnC,SAAS,KAAK,kBAAkB;;;;IAIzC,gBAAgB;;;;IAIhB,aAAa;;;IAGb,SAAS;;;KAGR,SAAS;;;;YAIF,YAAY;CACvB,CAAA;QAEG,OAAO,SAAS,CAAC;IAGnB,CAAC;CAEF;AAjDD,wBAiDC"}
|
|
@ -0,0 +1,36 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Implementation = void 0;
|
||||
class Implementation {
|
||||
static craete(className, boundMethods, constructorExpressions, destructorExpressions, methodImplementations) {
|
||||
let cppImplementation = `
|
||||
/* ${className}.cpp */
|
||||
|
||||
#include "${className}.h"
|
||||
|
||||
// Registers fields, signals and methods for Godot
|
||||
void ${className}::_bind_methods()
|
||||
{
|
||||
${boundMethods}
|
||||
}
|
||||
|
||||
// Constructor
|
||||
${className}::${className}()
|
||||
{
|
||||
${constructorExpressions}
|
||||
}
|
||||
|
||||
// Destructor
|
||||
${className}::~${className}()
|
||||
{
|
||||
${destructorExpressions}
|
||||
}
|
||||
|
||||
${methodImplementations}
|
||||
|
||||
`;
|
||||
return cppImplementation;
|
||||
}
|
||||
}
|
||||
exports.Implementation = Implementation;
|
||||
//# sourceMappingURL=Implementation.js.map
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"Implementation.js","sourceRoot":"","sources":["../../source/cpp-creation/Implementation.ts"],"names":[],"mappings":";;;AACA,MAAa,cAAc;IAGzB,MAAM,CAAC,MAAM,CAAE,SAAgB,EAAE,YAAmB,EACrC,sBAA6B,EAAE,qBAA4B,EAC3D,qBAA4B;QAGzC,IAAI,iBAAiB,GACzB;KACK,SAAS;;YAEF,SAAS;;;OAGd,SAAS;;IAEZ,YAAY;;;;EAId,SAAS,KAAK,SAAS;;IAErB,sBAAsB;;;;EAIxB,SAAS,MAAM,SAAS;;IAEtB,qBAAqB;;;EAGvB,qBAAqB;;CAEtB,CAAA;QAEG,OAAO,iBAAiB,CAAC;IAE3B,CAAC;CAEF;AAxCD,wCAwCC"}
|
|
@ -0,0 +1,98 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.MemberFactory = void 0;
|
||||
const MemberInitializer_1 = require("./MemberInitializer");
|
||||
const Method_1 = require("./members/Method");
|
||||
const Field_1 = require("./members/Field");
|
||||
const Signal_1 = require("./members/Signal");
|
||||
class MemberFactory {
|
||||
static grabMembers(membersData, accessModifier) {
|
||||
let members = [];
|
||||
if (!membersData) {
|
||||
return members;
|
||||
}
|
||||
for (let it in membersData) {
|
||||
if (!membersData.hasOwnProperty(it)) {
|
||||
continue;
|
||||
}
|
||||
let nameDefinition = it;
|
||||
let memberData = membersData[it];
|
||||
if (MemberFactory.actionRegex.test(nameDefinition)) {
|
||||
let name = MemberFactory.actionRegex.exec(nameDefinition)[1];
|
||||
let upperCaseName = name[0].toUpperCase() + name.substring(1);
|
||||
let actionName = `on${upperCaseName}`;
|
||||
let signal = `signal ${name}()`;
|
||||
members.push(MemberFactory.create(accessModifier, signal, {}));
|
||||
members.push(MemberFactory.create(accessModifier, actionName, "Node<RJAction>"));
|
||||
}
|
||||
else if (MemberFactory.propertyRegex.test(nameDefinition)) {
|
||||
let result = MemberFactory.propertyRegex.exec(nameDefinition);
|
||||
let signalName = result[1];
|
||||
let fieldName = result[2];
|
||||
signalName = signalName || `${fieldName}Changed`;
|
||||
let upperCaseName = signalName[0].toUpperCase() + signalName.substring(1);
|
||||
let actionName = `on${upperCaseName}`;
|
||||
let signal = `signal ${signalName}()`;
|
||||
if (!result[1]) {
|
||||
members.push(MemberFactory.create(accessModifier, signal, {}));
|
||||
members.push(MemberFactory.create(accessModifier, actionName, "Node<RJAction>"));
|
||||
}
|
||||
let field = MemberFactory.create(accessModifier, fieldName, memberData);
|
||||
field.isProperty = true;
|
||||
field.propertySignalName = signalName;
|
||||
field.propertyActionName = actionName;
|
||||
members.push(field);
|
||||
}
|
||||
else {
|
||||
let classMember = MemberFactory.create(accessModifier, nameDefinition, memberData);
|
||||
members.push(classMember);
|
||||
}
|
||||
}
|
||||
return members;
|
||||
}
|
||||
static create(accessModifier, nameDefinition, body) {
|
||||
let memberInitializer = new MemberInitializer_1.MemberInitializer();
|
||||
if (nameDefinition.indexOf("()") != -1) {
|
||||
memberInitializer.isMethod = true;
|
||||
memberInitializer.isVirtual = true;
|
||||
let typeRegex = /\(\)\s*(?:\:\s*(.+)\s*)?$/;
|
||||
let result = typeRegex.exec(nameDefinition);
|
||||
if (result[1]) {
|
||||
memberInitializer.type = result[1];
|
||||
}
|
||||
nameDefinition = nameDefinition.replace(typeRegex, "");
|
||||
}
|
||||
let names = nameDefinition.split(/\s+/);
|
||||
memberInitializer.name = names[names.length - 1];
|
||||
for (let i = 0; i < names.length - 1; i++) {
|
||||
if ("final" === names[i]) {
|
||||
memberInitializer.isVirtual = false;
|
||||
}
|
||||
if ("static" === names[i]) {
|
||||
memberInitializer.isStatic = true;
|
||||
}
|
||||
if ("signal" === names[i]) {
|
||||
memberInitializer.isSignal = true;
|
||||
}
|
||||
}
|
||||
let member = null;
|
||||
if (memberInitializer.isMethod) {
|
||||
if (memberInitializer.isSignal) {
|
||||
member = new Signal_1.Signal(memberInitializer);
|
||||
}
|
||||
else {
|
||||
member = new Method_1.Method(memberInitializer);
|
||||
}
|
||||
}
|
||||
else {
|
||||
member = new Field_1.Field(memberInitializer);
|
||||
}
|
||||
member.accessModifier = accessModifier;
|
||||
member.parseBody(body);
|
||||
return member;
|
||||
}
|
||||
}
|
||||
exports.MemberFactory = MemberFactory;
|
||||
MemberFactory.actionRegex = /^\s*action\s+(\w+)\s*$/;
|
||||
MemberFactory.propertyRegex = /^\s*property(?:\s*\@\s*(\w+))?\s+(\w+)\s*$/;
|
||||
//# sourceMappingURL=MemberFactory.js.map
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"MemberFactory.js","sourceRoot":"","sources":["../../source/cpp-creation/MemberFactory.ts"],"names":[],"mappings":"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"}
|
|
@ -0,0 +1,16 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.MemberInitializer = void 0;
|
||||
class MemberInitializer {
|
||||
constructor() {
|
||||
this.accessModifier = "";
|
||||
this.type = "void";
|
||||
this.name = "";
|
||||
this.isVirtual = true;
|
||||
this.isSignal = false;
|
||||
this.isMethod = false;
|
||||
this.isStatic = false;
|
||||
}
|
||||
}
|
||||
exports.MemberInitializer = MemberInitializer;
|
||||
//# sourceMappingURL=MemberInitializer.js.map
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"MemberInitializer.js","sourceRoot":"","sources":["../../source/cpp-creation/MemberInitializer.ts"],"names":[],"mappings":";;;AACA,MAAa,iBAAiB;IAA9B;QAEE,mBAAc,GAAG,EAAE,CAAC;QACpB,SAAI,GAAG,MAAM,CAAC;QACd,SAAI,GAAG,EAAE,CAAC;QAEV,cAAS,GAAG,IAAI,CAAC;QACjB,aAAQ,GAAI,KAAK,CAAC;QAClB,aAAQ,GAAI,KAAK,CAAC;QAClB,aAAQ,GAAI,KAAK,CAAC;IACpB,CAAC;CAAA;AAVD,8CAUC"}
|
|
@ -0,0 +1,10 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.MemberType = void 0;
|
||||
var MemberType;
|
||||
(function (MemberType) {
|
||||
MemberType[MemberType["Field"] = 0] = "Field";
|
||||
MemberType[MemberType["Method"] = 1] = "Method";
|
||||
MemberType[MemberType["Signal"] = 2] = "Signal";
|
||||
})(MemberType || (exports.MemberType = MemberType = {}));
|
||||
//# sourceMappingURL=MemberType.js.map
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"MemberType.js","sourceRoot":"","sources":["../../source/cpp-creation/MemberType.ts"],"names":[],"mappings":";;;AAAA,IAAY,UAKX;AALD,WAAY,UAAU;IAEpB,6CAAK,CAAA;IACL,+CAAM,CAAA;IACN,+CAAM,CAAA;AACR,CAAC,EALW,UAAU,0BAAV,UAAU,QAKrB"}
|
|
@ -0,0 +1,14 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Parameter = void 0;
|
||||
class Parameter {
|
||||
constructor() {
|
||||
this.name = "";
|
||||
this.type = "";
|
||||
}
|
||||
get() {
|
||||
return `${this.type} ${this.name}`;
|
||||
}
|
||||
}
|
||||
exports.Parameter = Parameter;
|
||||
//# sourceMappingURL=Parameter.js.map
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"Parameter.js","sourceRoot":"","sources":["../../source/cpp-creation/Parameter.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAS;IAAtB;QAEE,SAAI,GAAG,EAAE,CAAC;QACV,SAAI,GAAG,EAAE,CAAC;IAMZ,CAAC;IAJC,GAAG;QAED,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;IACrC,CAAC;CACF;AATD,8BASC"}
|
|
@ -0,0 +1,46 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.TypeRegistration = void 0;
|
||||
const Files_1 = require("../library/Files");
|
||||
const CppCreator_1 = require("./CppCreator");
|
||||
class TypeRegistration {
|
||||
static createRegistrations() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let registrationImplementation = yield Files_1.Files.loadUTF8(CppCreator_1.CppCreator.registerTypesPath);
|
||||
let allFiles = yield Files_1.Files.getFiles(CppCreator_1.CppCreator.outputPath);
|
||||
let filter = (file) => {
|
||||
if (TypeRegistration.exceptions.indexOf(file) !== -1) {
|
||||
return false;
|
||||
}
|
||||
return file.endsWith(".h") && file != "register_types.h";
|
||||
};
|
||||
let headers = allFiles.filter(file => filter(file));
|
||||
let includeStatements = headers.map(h => `#include "./${h}"`);
|
||||
let includes = includeStatements.join("\n");
|
||||
registrationImplementation =
|
||||
registrationImplementation.replace(TypeRegistration.includesRegex, includes);
|
||||
let classNames = headers.map(h => h.replace(/\.h$/, ""));
|
||||
let registrators = classNames.map(cn => `ClassDB::register_class<${cn}>();`);
|
||||
let registrations = registrators.join("\n ");
|
||||
registrationImplementation =
|
||||
registrationImplementation.replace(TypeRegistration.classDBRegistrationsRegex, registrations);
|
||||
yield Files_1.Files.saveUTF8(CppCreator_1.CppCreator.registerTypesPathOutput, registrationImplementation);
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.TypeRegistration = TypeRegistration;
|
||||
TypeRegistration.includesRegex = /\/\*INCLUDES\*\//;
|
||||
TypeRegistration.classDBRegistrationsRegex = /\/\*CLASS-DB-REGISTRATIONS\*\//;
|
||||
TypeRegistration.exceptions = [
|
||||
"RJGodotHeaders.h"
|
||||
];
|
||||
//# sourceMappingURL=TypeRegistration.js.map
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"TypeRegistration.js","sourceRoot":"","sources":["../../source/cpp-creation/TypeRegistration.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAAyC;AACzC,6CAA0C;AAE1C,MAAa,gBAAgB;IAU3B,MAAM,CAAO,mBAAmB;;YAE9B,IAAI,0BAA0B,GAAG,MAAM,aAAK,CAAC,QAAQ,CAAE,uBAAU,CAAC,iBAAiB,CAAE,CAAC;YACtF,IAAI,QAAQ,GAAG,MAAM,aAAK,CAAC,QAAQ,CAAE,uBAAU,CAAC,UAAU,CAAE,CAAC;YAC7D,IAAI,MAAM,GAAG,CAAE,IAAW,EAAG,EAAE;gBAE7B,IAAK,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAE,IAAI,CAAE,KAAK,CAAC,CAAC,EACvD,CAAC;oBACC,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED,OAAO,IAAI,CAAC,QAAQ,CAAE,IAAI,CAAE,IAAI,IAAI,IAAI,kBAAkB,CAAC;YAC7D,CAAC,CAAC;YAEF,IAAI,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAE,IAAI,CAAE,CAAE,CAAC;YAExD,IAAI,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAE,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAC/D,IAAI,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;YAE9C,0BAA0B;gBACxB,0BAA0B,CAAC,OAAO,CAAE,gBAAgB,CAAC,aAAa,EAAE,QAAQ,CAAE,CAAC;YAEjF,IAAI,UAAU,GAAG,OAAO,CAAC,GAAG,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAE,MAAM,EAAE,EAAE,CAAE,CAAE,CAAC;YAC7D,IAAI,YAAY,GAAG,UAAU,CAAC,GAAG,CAAE,EAAE,CAAC,EAAE,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAA;YAE7E,IAAI,aAAa,GAAG,YAAY,CAAC,IAAI,CAAE,MAAM,CAAE,CAAC;YAChD,0BAA0B;gBACxB,0BAA0B,CAAC,OAAO,CAAE,gBAAgB,CAAC,yBAAyB,EAAE,aAAa,CAAE,CAAC;YAElG,MAAM,aAAK,CAAC,QAAQ,CAAE,uBAAU,CAAC,uBAAuB,EAAE,0BAA0B,CAAE,CAAC;QAEzF,CAAC;KAAA;;AAzCH,4CA0CC;AAxCQ,8BAAa,GAAG,kBAAkB,CAAC;AACnC,0CAAyB,GAAG,gCAAgC,CAAC;AAE7D,2BAAU,GACjB;IACE,kBAAkB;CACnB,CAAC"}
|
|
@ -0,0 +1,25 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.VariationTemplates = void 0;
|
||||
class VariationTemplates {
|
||||
}
|
||||
exports.VariationTemplates = VariationTemplates;
|
||||
VariationTemplates.genericOnlyIntNode = [
|
||||
{
|
||||
"{DataTypeName}": ["Int"],
|
||||
"{DataType}": ["int"],
|
||||
"{Extension}": [""],
|
||||
"{ParentClass}": ["Node"]
|
||||
}
|
||||
];
|
||||
VariationTemplates.generic = [
|
||||
{
|
||||
"{DataTypeName}": ["Bool", "Float", "Int", "Color", "Vector2", "Vector3", "Quaternion", "String", "Node", "Resource"],
|
||||
"{DataType}": ["bool", "float", "int", "Color", "Vector2", "Vector3", "Quaternion", "String", "Ref<Node>", "Ref<Resource>"]
|
||||
},
|
||||
{
|
||||
"{Extension}": ["", "Global"],
|
||||
"{ParentClass}": ["Node", "Resource"]
|
||||
}
|
||||
];
|
||||
//# sourceMappingURL=VariationTemplates.js.map
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"VariationTemplates.js","sourceRoot":"","sources":["../../source/cpp-creation/VariationTemplates.ts"],"names":[],"mappings":";;;AAKA,MAAa,kBAAkB;;AAA/B,gDAyBC;AAvBiB,qCAAkB,GAClC;IACE;QACE,gBAAgB,EAAC,CAAE,KAAK,CAAE;QAC1B,YAAY,EAAK,CAAE,KAAK,CAAE;QAC1B,aAAa,EAAI,CAAE,EAAE,CAAE;QACvB,eAAe,EAAI,CAAE,MAAM,CAAE;KAE9B;CACF,CAAC;AAEc,0BAAO,GACvB;IACE;QACE,gBAAgB,EAAC,CAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAE;QACtH,YAAY,EAAK,CAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,CAAE;KACjI;IAED;QACE,aAAa,EAAI,CAAM,EAAE,EAAE,QAAQ,CAAE;QACrC,eAAe,EAAE,CAAE,MAAM,EAAE,UAAU,CAAE;KACxC;CACF,CAAC"}
|
|
@ -0,0 +1,77 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Variations = void 0;
|
||||
class Variations {
|
||||
constructor(vds) {
|
||||
this._indicies = [];
|
||||
this._lengths = [];
|
||||
this._items = 1;
|
||||
this._counter = 0;
|
||||
this._map = new Map();
|
||||
this._variationDefinitions = vds;
|
||||
this._items = 1;
|
||||
vds.forEach(vd => {
|
||||
this._indicies.push(0);
|
||||
let length = -1;
|
||||
for (let it in vd) {
|
||||
if (length != -1 || !vd.hasOwnProperty(it)) {
|
||||
continue;
|
||||
}
|
||||
length = vd[it].length;
|
||||
}
|
||||
this._lengths.push(length);
|
||||
this._items *= length;
|
||||
});
|
||||
console.log("Found items:", this._items);
|
||||
this._grabCurrentMap();
|
||||
}
|
||||
_grabCurrentMap() {
|
||||
this._map.clear();
|
||||
for (let i = 0; i < this._indicies.length; i++) {
|
||||
this._grabItems(i);
|
||||
}
|
||||
}
|
||||
get hasItems() {
|
||||
return this._counter <= this._items;
|
||||
}
|
||||
get items() {
|
||||
return this._items;
|
||||
}
|
||||
get counter() {
|
||||
return this._counter;
|
||||
}
|
||||
nextItem() {
|
||||
this._counter++;
|
||||
this._incrementCounter(0);
|
||||
this._grabCurrentMap();
|
||||
// RJLog.log( this._counter, this._indicies, this.currentMap );
|
||||
}
|
||||
_incrementCounter(position) {
|
||||
let value = this._indicies[position];
|
||||
if (value == (this._lengths[position] - 1)) {
|
||||
this._indicies[position] = 0;
|
||||
this._incrementCounter(position + 1);
|
||||
}
|
||||
else {
|
||||
this._indicies[position]++;
|
||||
}
|
||||
}
|
||||
_grabItems(index) {
|
||||
let counter = this._indicies[index];
|
||||
let vd = this._variationDefinitions[index];
|
||||
let map = this._map;
|
||||
for (let it in vd) {
|
||||
if (!vd.hasOwnProperty(it)) {
|
||||
continue;
|
||||
}
|
||||
let key = it;
|
||||
let values = vd[it];
|
||||
map.set(key, values[counter]);
|
||||
}
|
||||
}
|
||||
get currentMap() {
|
||||
return this._map;
|
||||
}
|
||||
}
|
||||
exports.Variations = Variations;
|
||||
//# sourceMappingURL=Variations.js.map
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"Variations.js","sourceRoot":"","sources":["../../source/cpp-creation/Variations.ts"],"names":[],"mappings":"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"}
|
|
@ -0,0 +1,18 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.ActionFactory = void 0;
|
||||
const BaseFactory_1 = require("./BaseFactory");
|
||||
class ActionFactory extends BaseFactory_1.BaseFactory {
|
||||
constructor() { super(ActionFactory.regex); }
|
||||
create(accessModifier, nameDefinition, memberData, members) {
|
||||
let name = ActionFactory.regex.exec(nameDefinition)[1];
|
||||
let upperCaseName = name[0].toUpperCase() + name.substring(1);
|
||||
let actionName = `on${upperCaseName}`;
|
||||
let signal = `signal ${name}()`;
|
||||
members.push(this.createMember(accessModifier, signal, {}));
|
||||
members.push(this.createMember(accessModifier, actionName, "Node<RJAction>"));
|
||||
}
|
||||
}
|
||||
exports.ActionFactory = ActionFactory;
|
||||
ActionFactory.regex = /^\s*action\s+(\w+)\s*$/;
|
||||
//# sourceMappingURL=ActionFactory.js.map
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"ActionFactory.js","sourceRoot":"","sources":["../../../source/cpp-creation/factories/ActionFactory.ts"],"names":[],"mappings":";;;AACA,+CAA4C;AAE5C,MAAa,aAAc,SAAQ,yBAAW;IAI5C,gBAAe,KAAK,CAAE,aAAa,CAAC,KAAK,CAAE,CAAC,CAAC,CAAC;IAE9C,MAAM,CAAE,cAAqB,EAAE,cAAqB,EAAE,UAAc,EAAE,OAAgB;QAEpF,IAAI,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAE,cAAc,CAAE,CAAE,CAAC,CAAE,CAAC;QAC3D,IAAI,aAAa,GAAG,IAAI,CAAE,CAAC,CAAE,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAE,CAAC,CAAE,CAAC;QAClE,IAAI,UAAU,GAAG,KAAK,aAAa,EAAE,CAAC;QAEtC,IAAI,MAAM,GAAG,UAAU,IAAI,IAAI,CAAC;QAEhC,OAAO,CAAC,IAAI,CAAE,IAAI,CAAC,YAAY,CAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAE,CAAE,CAAC;QAChE,OAAO,CAAC,IAAI,CAAE,IAAI,CAAC,YAAY,CAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,CAAE,CAAE,CAAC;IACpF,CAAC;;AAhBH,sCAiBC;AAfiB,mBAAK,GAAG,wBAAwB,CAAC"}
|
|
@ -0,0 +1,61 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.BaseFactory = void 0;
|
||||
const MemberInitializer_1 = require("../MemberInitializer");
|
||||
const Field_1 = require("../members/Field");
|
||||
const Method_1 = require("../members/Method");
|
||||
const Signal_1 = require("../members/Signal");
|
||||
class BaseFactory {
|
||||
constructor(regex) {
|
||||
this._regex = regex;
|
||||
}
|
||||
handles(nameDefinition) {
|
||||
return this._regex.test(nameDefinition);
|
||||
}
|
||||
createMember(accessModifier, nameDefinition, body) {
|
||||
return BaseFactory.createMemberFrom(accessModifier, nameDefinition, body);
|
||||
}
|
||||
static createMemberFrom(accessModifier, nameDefinition, body) {
|
||||
let memberInitializer = new MemberInitializer_1.MemberInitializer();
|
||||
if (nameDefinition.indexOf("()") != -1) {
|
||||
memberInitializer.isMethod = true;
|
||||
memberInitializer.isVirtual = true;
|
||||
let typeRegex = /\(\)\s*(?:\:\s*(.+)\s*)?$/;
|
||||
let result = typeRegex.exec(nameDefinition);
|
||||
if (result[1]) {
|
||||
memberInitializer.type = result[1];
|
||||
}
|
||||
nameDefinition = nameDefinition.replace(typeRegex, "");
|
||||
}
|
||||
let names = nameDefinition.split(/\s+/);
|
||||
memberInitializer.name = names[names.length - 1];
|
||||
for (let i = 0; i < names.length - 1; i++) {
|
||||
if ("final" === names[i]) {
|
||||
memberInitializer.isVirtual = false;
|
||||
}
|
||||
if ("static" === names[i]) {
|
||||
memberInitializer.isStatic = true;
|
||||
}
|
||||
if ("signal" === names[i]) {
|
||||
memberInitializer.isSignal = true;
|
||||
}
|
||||
}
|
||||
let member = null;
|
||||
if (memberInitializer.isMethod) {
|
||||
if (memberInitializer.isSignal) {
|
||||
member = new Signal_1.Signal(memberInitializer);
|
||||
}
|
||||
else {
|
||||
member = new Method_1.Method(memberInitializer);
|
||||
}
|
||||
}
|
||||
else {
|
||||
member = new Field_1.Field(memberInitializer);
|
||||
}
|
||||
member.accessModifier = accessModifier;
|
||||
member.parseBody(body);
|
||||
return member;
|
||||
}
|
||||
}
|
||||
exports.BaseFactory = BaseFactory;
|
||||
//# sourceMappingURL=BaseFactory.js.map
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"BaseFactory.js","sourceRoot":"","sources":["../../../source/cpp-creation/factories/BaseFactory.ts"],"names":[],"mappings":";;;AAAA,4DAAyD;AACzD,4CAAyC;AAEzC,8CAA2C;AAC3C,8CAA2C;AAE3C,MAAsB,WAAW;IAI/B,YAAa,KAAY;QAEvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,OAAO,CAAE,cAAqB;QAE5B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAE,cAAc,CAAE,CAAC;IAC5C,CAAC;IAID,YAAY,CAAoB,cAAqB,EAAE,cAAqB,EAAE,IAAQ;QAEpF,OAAO,WAAW,CAAC,gBAAgB,CAAE,cAAc,EAAE,cAAc,EAAE,IAAI,CAAO,CAAC;IACnF,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAE,cAAqB,EAAE,cAAqB,EAAE,IAAQ;QAG7E,IAAI,iBAAiB,GAAG,IAAI,qCAAiB,EAAE,CAAC;QAGhD,IAAK,cAAc,CAAC,OAAO,CAAE,IAAI,CAAE,IAAI,CAAC,CAAC,EACzC,CAAC;YACC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC;YAClC,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAAC;YAEnC,IAAI,SAAS,GAAG,2BAA2B,CAAC;YAC5C,IAAI,MAAM,GAAG,SAAS,CAAC,IAAI,CAAE,cAAc,CAAE,CAAC;YAE9C,IAAK,MAAM,CAAE,CAAC,CAAE,EAChB,CAAC;gBACC,iBAAiB,CAAC,IAAI,GAAG,MAAM,CAAE,CAAC,CAAE,CAAC;YACvC,CAAC;YAED,cAAc,GAAG,cAAc,CAAC,OAAO,CAAE,SAAS,EAAE,EAAE,CAAE,CAAC;QAC3D,CAAC;QAED,IAAI,KAAK,GAAG,cAAc,CAAC,KAAK,CAAE,KAAK,CAAE,CAAC;QAC1C,iBAAiB,CAAC,IAAI,GAAG,KAAK,CAAE,KAAK,CAAC,MAAM,GAAE,CAAC,CAAE,CAAC;QAElD,KAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAC1C,CAAC;YACC,IAAK,OAAO,KAAK,KAAK,CAAE,CAAC,CAAE,EAC3B,CAAC;gBACC,iBAAiB,CAAC,SAAS,GAAG,KAAK,CAAC;YACtC,CAAC;YAED,IAAK,QAAQ,KAAK,KAAK,CAAE,CAAC,CAAE,EAC5B,CAAC;gBACC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC;YACpC,CAAC;YAED,IAAK,QAAQ,KAAK,KAAK,CAAE,CAAC,CAAE,EAC5B,CAAC;gBACC,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC;YACpC,CAAC;QAEH,CAAC;QAED,IAAI,MAAM,GAAU,IAAI,CAAC;QAEzB,IAAK,iBAAiB,CAAC,QAAQ,EAC/B,CAAC;YACC,IAAK,iBAAiB,CAAC,QAAQ,EAC/B,CAAC;gBACC,MAAM,GAAG,IAAI,eAAM,CAAE,iBAAiB,CAAE,CAAC;YAC3C,CAAC;iBAED,CAAC;gBACC,MAAM,GAAG,IAAI,eAAM,CAAE,iBAAiB,CAAE,CAAC;YAC3C,CAAC;QAEH,CAAC;aAED,CAAC;YACC,MAAM,GAAG,IAAI,aAAK,CAAE,iBAAiB,CAAE,CAAC;QAC1C,CAAC;QAED,MAAM,CAAC,cAAc,GAAG,cAAc,CAAC;QACvC,MAAM,CAAC,SAAS,CAAE,IAAI,CAAE,CAAC;QAEzB,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAzFD,kCAyFC"}
|
|
@ -0,0 +1,84 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.MemberFactory = void 0;
|
||||
const ActionFactory_1 = require("./ActionFactory");
|
||||
const PropertyFactory_1 = require("./PropertyFactory");
|
||||
const BaseFactory_1 = require("./BaseFactory");
|
||||
class MemberFactory {
|
||||
static grabMembers(membersData, accessModifier) {
|
||||
let members = [];
|
||||
if (!membersData) {
|
||||
return members;
|
||||
}
|
||||
for (let it in membersData) {
|
||||
if (!membersData.hasOwnProperty(it)) {
|
||||
continue;
|
||||
}
|
||||
let nameDefinition = it;
|
||||
let memberData = membersData[it];
|
||||
let factory = this.factories.find(f => f.handles(nameDefinition));
|
||||
if (factory) {
|
||||
factory.create(accessModifier, nameDefinition, memberData, members);
|
||||
}
|
||||
else {
|
||||
members.push(BaseFactory_1.BaseFactory.createMemberFrom(accessModifier, nameDefinition, memberData));
|
||||
}
|
||||
/*
|
||||
if ( MemberFactory.actionRegex.test( nameDefinition ) )
|
||||
{
|
||||
let name = MemberFactory.actionRegex.exec( nameDefinition )[ 1 ];
|
||||
let upperCaseName = name[ 0 ].toUpperCase() + name.substring( 1 );
|
||||
let actionName = `on${upperCaseName}`;
|
||||
|
||||
let signal = `signal ${name}()`;
|
||||
|
||||
members.push( MemberFactory.create( accessModifier, signal, {} ) );
|
||||
members.push( MemberFactory.create( accessModifier, actionName, "Node<RJAction>" ) );
|
||||
}
|
||||
else if ( MemberFactory.propertyRegex.test( nameDefinition ) )
|
||||
{
|
||||
let result = MemberFactory.propertyRegex.exec( nameDefinition );
|
||||
|
||||
let signalName = result[ 1 ];
|
||||
let fieldName = result[ 2 ];
|
||||
|
||||
signalName = signalName || `${fieldName}Changed`;
|
||||
|
||||
let upperCaseName = signalName[ 0 ].toUpperCase() + signalName.substring( 1 );
|
||||
let actionName = `on${upperCaseName}`;
|
||||
|
||||
let signal = `signal ${signalName}()`;
|
||||
|
||||
if ( ! result[ 1 ] )
|
||||
{
|
||||
members.push( MemberFactory.create( accessModifier, signal, {} ) );
|
||||
members.push( MemberFactory.create( accessModifier, actionName, "Node<RJAction>" ) );
|
||||
}
|
||||
|
||||
let field = MemberFactory.create( accessModifier, fieldName, memberData ) as Field;
|
||||
|
||||
field.isProperty = true;
|
||||
field.propertySignalName = signalName;
|
||||
field.propertyActionName = actionName;
|
||||
|
||||
members.push( field );
|
||||
}
|
||||
else
|
||||
{
|
||||
let classMember = MemberFactory.create( accessModifier, nameDefinition, memberData );
|
||||
members.push( classMember );
|
||||
}
|
||||
|
||||
*/
|
||||
}
|
||||
return members;
|
||||
}
|
||||
}
|
||||
exports.MemberFactory = MemberFactory;
|
||||
MemberFactory.actionRegex = /^\s*action\s+(\w+)\s*$/;
|
||||
MemberFactory.propertyRegex = /^\s*property(?:\s*\@\s*(\w+))?\s+(\w+)\s*$/;
|
||||
MemberFactory.factories = [
|
||||
new ActionFactory_1.ActionFactory(),
|
||||
new PropertyFactory_1.PropertyFactory()
|
||||
];
|
||||
//# sourceMappingURL=MemberFactory.js.map
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"MemberFactory.js","sourceRoot":"","sources":["../../../source/cpp-creation/factories/MemberFactory.ts"],"names":[],"mappings":";;;AAKA,mDAAgD;AAChD,uDAAoD;AACpD,+CAA4C;AAG5C,MAAa,aAAa;IAWxB,MAAM,CAAC,WAAW,CAAE,WAAe,EAAE,cAAqB;QAExD,IAAI,OAAO,GAAY,EAAE,CAAC;QAE1B,IAAK,CAAE,WAAW,EAClB,CAAC;YACC,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,KAAM,IAAI,EAAE,IAAI,WAAW,EAC3B,CAAC;YACC,IAAK,CAAE,WAAW,CAAC,cAAc,CAAE,EAAE,CAAE,EACvC,CAAC;gBACC,SAAS;YACX,CAAC;YAED,IAAI,cAAc,GAAG,EAAE,CAAC;YACxB,IAAI,UAAU,GAAG,WAAW,CAAE,EAAE,CAAE,CAAC;YAEnC,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAE,cAAc,CAAE,CAAE,CAAC;YAEtE,IAAK,OAAO,EACZ,CAAC;gBACC,OAAO,CAAC,MAAM,CAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,CAAE,CAAC;YACxE,CAAC;iBAED,CAAC;gBACC,OAAO,CAAC,IAAI,CAAE,yBAAW,CAAC,gBAAgB,CAAG,cAAc,EAAE,cAAc,EAAE,UAAU,CAAE,CAAE,CAAC;YAC9F,CAAC;YAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA8CE;QAEJ,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;;AA5FH,sCAoKC;AAlKiB,yBAAW,GAAG,wBAAwB,CAAC;AACvC,2BAAa,GAAG,4CAA4C,CAAC;AAEtE,uBAAS,GAChB;IACE,IAAI,6BAAa,EAAE;IACnB,IAAI,iCAAe,EAAE;CACtB,CAAA"}
|
|
@ -0,0 +1,43 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.PropertyFactory = void 0;
|
||||
const BaseFactory_1 = require("./BaseFactory");
|
||||
class PropertyFactory extends BaseFactory_1.BaseFactory {
|
||||
constructor() { super(PropertyFactory.regex); }
|
||||
create(accessModifier, nameDefinition, memberData, members) {
|
||||
let result = PropertyFactory.regex.exec(nameDefinition);
|
||||
let fieldName = result[1];
|
||||
let upperCaseName = fieldName[0].toUpperCase() + fieldName.substring(1);
|
||||
let signalName = `${fieldName}Changed`;
|
||||
let upperCaseSignalName = signalName[0].toUpperCase() + signalName.substring(1);
|
||||
let actionName = `on${upperCaseSignalName}`;
|
||||
let signalMethodDefinition = `signal ${signalName}()`;
|
||||
let field = this.createMember(accessModifier, fieldName, memberData);
|
||||
field.isProperty = true;
|
||||
field.propertySignalName = signalName;
|
||||
field.propertyActionName = actionName;
|
||||
members.push(field);
|
||||
members.push(this.createMember(accessModifier, signalMethodDefinition, {}));
|
||||
members.push(this.createMember(accessModifier, actionName, "Node<RJAction>"));
|
||||
let dispatchChanged = this.createMember(accessModifier, `final dispatch${upperCaseName}Changed()`, [{},
|
||||
[
|
||||
`emit_signal( SNAME( "${signalName}" ) );`,
|
||||
"",
|
||||
`if ( ${actionName} != NULL )`,
|
||||
"{",
|
||||
` ${actionName}->trigger();`,
|
||||
"}"
|
||||
]
|
||||
]);
|
||||
members.push(dispatchChanged);
|
||||
let setSilent = this.createMember(accessModifier, `final set${upperCaseName}Silent()`, [{ "p_value": memberData },
|
||||
[
|
||||
"value = p_value;"
|
||||
]
|
||||
]);
|
||||
members.push(setSilent);
|
||||
}
|
||||
}
|
||||
exports.PropertyFactory = PropertyFactory;
|
||||
PropertyFactory.regex = /^\s*property\s+(\w+)\s*$/;
|
||||
//# sourceMappingURL=PropertyFactory.js.map
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"PropertyFactory.js","sourceRoot":"","sources":["../../../source/cpp-creation/factories/PropertyFactory.ts"],"names":[],"mappings":";;;AAEA,+CAA4C;AAE5C,MAAa,eAAgB,SAAQ,yBAAW;IAI9C,gBAAe,KAAK,CAAE,eAAe,CAAC,KAAK,CAAE,CAAC,CAAC,CAAC;IAEhD,MAAM,CAAE,cAAqB,EAAE,cAAqB,EAAE,UAAc,EAAE,OAAgB;QAEpF,IAAI,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAE,cAAc,CAAE,CAAC;QAE1D,IAAI,SAAS,GAAI,MAAM,CAAE,CAAC,CAAE,CAAC;QAE7B,IAAI,aAAa,GAAG,SAAS,CAAE,CAAC,CAAE,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,SAAS,CAAE,CAAC,CAAE,CAAA;QAE3E,IAAI,UAAU,GAAG,GAAG,SAAS,SAAS,CAAC;QAEvC,IAAI,mBAAmB,GAAG,UAAU,CAAE,CAAC,CAAE,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,SAAS,CAAE,CAAC,CAAE,CAAC;QACpF,IAAI,UAAU,GAAG,KAAK,mBAAmB,EAAE,CAAC;QAE5C,IAAI,sBAAsB,GAAG,UAAU,UAAU,IAAI,CAAC;QAItD,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,CAAS,cAAc,EAAE,SAAS,EAAE,UAAU,CAAE,CAAC;QAE9E,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;QACxB,KAAK,CAAC,kBAAkB,GAAG,UAAU,CAAC;QACtC,KAAK,CAAC,kBAAkB,GAAG,UAAU,CAAC;QAGtC,OAAO,CAAC,IAAI,CAAE,KAAK,CAAE,CAAC;QAGtB,OAAO,CAAC,IAAI,CAAE,IAAI,CAAC,YAAY,CAAE,cAAc,EAAE,sBAAsB,EAAE,EAAE,CAAE,CAAE,CAAC;QAChF,OAAO,CAAC,IAAI,CAAE,IAAI,CAAC,YAAY,CAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,CAAE,CAAE,CAAC;QAGlF,IAAI,eAAe,GAAG,IAAI,CAAC,YAAY,CAAE,cAAc,EAErD,iBAAiB,aAAa,WAAW,EAAE,CAAE,EAAE;YAC7C;gBACE,wBAAwB,UAAU,QAAQ;gBAC1C,EAAE;gBACF,QAAQ,UAAU,YAAY;gBAC9B,GAAG;gBACH,KAAK,UAAU,cAAc;gBAC7B,GAAG;aACJ;SACF,CACF,CAAC;QAGF,OAAO,CAAC,IAAI,CAAE,eAAe,CAAE,CAAC;QAIhC,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,CAAE,cAAc,EAE/C,YAAY,aAAa,UAAU,EAAE,CAAE,EAAE,SAAS,EAAE,UAAU,EAAC;YAC7D;gBACA,kBAAkB;aACjB;SACH,CACD,CAAC;QAEF,OAAO,CAAC,IAAI,CAAE,SAAS,CAAE,CAAC;IAE5B,CAAC;;AAnEH,0CAoEC;AAlEiB,qBAAK,GAAG,0BAA0B,CAAC"}
|
|
@ -0,0 +1,129 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Field = void 0;
|
||||
const GodotTypes_1 = require("../GodotTypes");
|
||||
const MemberType_1 = require("../MemberType");
|
||||
const Member_1 = require("./Member");
|
||||
class Field extends Member_1.Member {
|
||||
constructor(memberInitializer) {
|
||||
super(MemberType_1.MemberType.Field, memberInitializer);
|
||||
this.isReference = false;
|
||||
this.referenceType = "";
|
||||
this.isProperty = false;
|
||||
this.propertySignalName = "";
|
||||
this.propertyActionName = "";
|
||||
}
|
||||
parseBody(body) {
|
||||
if (typeof body === "boolean") {
|
||||
this.type = "bool";
|
||||
this.initialValue = body + "";
|
||||
return;
|
||||
}
|
||||
if (typeof body === "number") {
|
||||
this.type = "float";
|
||||
this.initialValue = body + "";
|
||||
return;
|
||||
}
|
||||
let regex = /((?:\w|\<|\>)+)(?:\s*\=\s*(.+))?/;
|
||||
let result = regex.exec(body);
|
||||
let typeOrRefRegex = /^(Ref|Resource|Node)</;
|
||||
let refRegex = /^Ref<(\w+)>/;
|
||||
let typeResult = result[1];
|
||||
this.isReference = typeOrRefRegex.test(typeResult);
|
||||
// RJLog.log( "Is Reference", this.name, this.isReference, typeResult );
|
||||
if (this.isReference) {
|
||||
this.referenceType = refRegex.test(typeResult) ? refRegex.exec(typeResult)[1] :
|
||||
typeOrRefRegex.exec(typeResult)[1];
|
||||
// RJLog.log( "referenceType", body, `"${this.referenceType}"`, typeResult );
|
||||
if (Field.Node === this.referenceType) {
|
||||
typeResult = typeResult.replace(typeOrRefRegex, "").replace(/>$/, "");
|
||||
typeResult = typeResult + "*";
|
||||
}
|
||||
else {
|
||||
typeResult = typeResult.replace(typeOrRefRegex, "Ref<");
|
||||
if (result.length >= 2) {
|
||||
this.initialValue = result[2];
|
||||
}
|
||||
}
|
||||
}
|
||||
this.type = typeResult;
|
||||
this.initialValue = result[2] || null;
|
||||
}
|
||||
getFieldDeclaration() {
|
||||
let fieldInfo = "\n " + this.info() + "\n ";
|
||||
if (Field.Node === this.referenceType) {
|
||||
return `${fieldInfo}${this.type} ${this.name} = nullptr;`;
|
||||
}
|
||||
return `${fieldInfo}${this.type} ${this.name};`;
|
||||
}
|
||||
getHeaderDefinition() {
|
||||
let fieldInfo = "\n " + this.info() + "\n ";
|
||||
if (Field.Node === this.referenceType) {
|
||||
return `${fieldInfo}${this.type} get_${this.name}() const; void set_${this.name}( ${this.type} p_${this.name} );`;
|
||||
}
|
||||
if (Field.Resource === this.referenceType) {
|
||||
return `${fieldInfo}${this.type} get_${this.name}() const; void set_${this.name}( const ${this.type} &p_${this.name} );`;
|
||||
}
|
||||
return `${fieldInfo}${this.type} get_${this.name}(); void set_${this.name}( ${this.type} p_${this.name} );`;
|
||||
}
|
||||
getBindings(className) {
|
||||
let bindings = [];
|
||||
bindings.push(`// ${this.name}: ${this.type}`);
|
||||
bindings.push(`ClassDB::bind_method( D_METHOD( "set_${this.name}", "${this.name}" ), &${className}::set_${this.name} );`);
|
||||
bindings.push(`ClassDB::bind_method( D_METHOD( "get_${this.name}"), &${className}::get_${this.name});`);
|
||||
if (this.isReference) {
|
||||
// ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "reference_property", PROPERTY_HINT_NODE_TYPE), "set_reference_property", "get_reference_property");
|
||||
// RJLog.log( "Searching propertyHint:", this.name, this.type, this.referenceType );
|
||||
let propertyHint = GodotTypes_1.GodotTypes.stringToPropertyHint(this.referenceType);
|
||||
bindings.push(`ADD_PROPERTY( PropertyInfo(Variant::OBJECT, "${this.name}", ${propertyHint} ), "set_${this.name}", "get_${this.name}" );`);
|
||||
}
|
||||
else {
|
||||
let type = GodotTypes_1.GodotTypes.stringToVariantType(this.type);
|
||||
bindings.push(`ADD_PROPERTY(PropertyInfo( Variant::${type}, "${this.name}" ), "set_${this.name}", "get_${this.name}" );`);
|
||||
}
|
||||
bindings.push(` `);
|
||||
//ClassDB::bind_method(D_METHOD("set_color", "color"), &GLTFLight::set_color);
|
||||
//ADD_PROPERTY(PropertyInfo(Variant::COLOR, "color"), "set_color", "get_color"); // Color
|
||||
return bindings.join("\n ");
|
||||
}
|
||||
getFieldImplementation(className) {
|
||||
let implementations = [];
|
||||
implementations.push(`// ${this.name}: ${this.type}`);
|
||||
let eventCallbacks = "";
|
||||
if (this.isProperty) {
|
||||
eventCallbacks += `\n`;
|
||||
eventCallbacks += `\n emit_signal( SNAME( "${this.propertySignalName}" ) );`;
|
||||
eventCallbacks += `\n`;
|
||||
eventCallbacks += `\n if ( ${this.propertyActionName} != NULL )`;
|
||||
eventCallbacks += `\n {`;
|
||||
eventCallbacks += `\n ${this.propertyActionName}->trigger();`;
|
||||
eventCallbacks += `\n }`;
|
||||
}
|
||||
let n = this.isProperty ? "\n" : "";
|
||||
let n2 = this.isProperty ? "\n " : "";
|
||||
if (Field.Node === this.referenceType) {
|
||||
implementations.push(`${this.type} ${className}::get_${this.name}() const { return ${this.name}; }`);
|
||||
implementations.push(`void ${className}::set_${this.name}( ${this.type} p_${this.name} ) ${n}{${n2} ${this.name} = p_${this.name};${eventCallbacks} ${n}}`);
|
||||
}
|
||||
else if (Field.Resource === this.referenceType) {
|
||||
implementations.push(`${this.type} ${className}::get_${this.name}() const { return ${this.name}; }`);
|
||||
implementations.push(`void ${className}::set_${this.name}( const ${this.type} &p_${this.name} ) ${n}{${n2} ${this.name} = p_${this.name};${eventCallbacks} ${n}}`);
|
||||
}
|
||||
else {
|
||||
implementations.push(`${this.type} ${className}::get_${this.name}() { return ${this.name}; }`);
|
||||
implementations.push(`void ${className}::set_${this.name}( ${this.type} p_${this.name} ) ${n}{${n2} ${this.name} = p_${this.name};${eventCallbacks} ${n}}`);
|
||||
}
|
||||
implementations.push(` `);
|
||||
return implementations.join("\n");
|
||||
}
|
||||
get hasInitializer() {
|
||||
return this.initialValue !== null;
|
||||
}
|
||||
getInitializer() {
|
||||
return `${this.name} = ${this.initialValue};`;
|
||||
}
|
||||
}
|
||||
exports.Field = Field;
|
||||
Field.Node = "Node";
|
||||
Field.Resource = "Resource";
|
||||
//# sourceMappingURL=Field.js.map
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,67 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Member = void 0;
|
||||
const Parameter_1 = require("../Parameter");
|
||||
class Member {
|
||||
constructor(memberType, memberInitializer) {
|
||||
this.name = "";
|
||||
this.isMethod = false;
|
||||
this.isVirtual = true;
|
||||
this.isStatic = false;
|
||||
this.isSignal = false;
|
||||
this.type = "void";
|
||||
this.initialValue = null;
|
||||
this.parameters = [];
|
||||
this.accessModifier = "";
|
||||
this.parametersDefinition = "";
|
||||
this.memberType = memberType;
|
||||
this.accessModifier = memberInitializer.accessModifier;
|
||||
this.name = memberInitializer.name;
|
||||
this.type = memberInitializer.type || this.type;
|
||||
this.isMethod = memberInitializer.isMethod;
|
||||
this.isSignal = memberInitializer.isSignal;
|
||||
this.isStatic = memberInitializer.isStatic;
|
||||
this.isVirtual = memberInitializer.isVirtual;
|
||||
}
|
||||
info() {
|
||||
let methodBrackets = this.isMethod ? "()" : "";
|
||||
if (methodBrackets === "()" && this.parameters.length > 0) {
|
||||
methodBrackets = "( " + this.parametersDefinition + " )";
|
||||
}
|
||||
if (this.isSignal) {
|
||||
}
|
||||
return `// ${this.isSignal ? "[signal] " : ""}${this.name}${methodBrackets} : ${this.type}`;
|
||||
}
|
||||
setPublic() {
|
||||
this.accessModifier = "public";
|
||||
return this;
|
||||
}
|
||||
setProtected() {
|
||||
this.accessModifier = "protected";
|
||||
return this;
|
||||
}
|
||||
parseMethodParameters(body) {
|
||||
if (!body) {
|
||||
return;
|
||||
}
|
||||
if (typeof body === "string") {
|
||||
this.type = body;
|
||||
return;
|
||||
}
|
||||
for (let it in body) {
|
||||
if (!body.hasOwnProperty(it)) {
|
||||
continue;
|
||||
}
|
||||
let cppParameter = new Parameter_1.Parameter();
|
||||
cppParameter.name = it;
|
||||
cppParameter.type = body[it];
|
||||
this.parameters.push(cppParameter);
|
||||
}
|
||||
this.parametersDefinition = this.parameters.map(p => p.get()).join(", ");
|
||||
}
|
||||
getParametersDefinition() {
|
||||
return this.parameters.map(p => p.type + " " + p.name).join(", ");
|
||||
}
|
||||
}
|
||||
exports.Member = Member;
|
||||
//# sourceMappingURL=Member.js.map
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"Member.js","sourceRoot":"","sources":["../../../source/cpp-creation/members/Member.ts"],"names":[],"mappings":"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"}
|
|
@ -0,0 +1,69 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Method = void 0;
|
||||
const MemberType_1 = require("../MemberType");
|
||||
const Member_1 = require("./Member");
|
||||
class Method extends Member_1.Member {
|
||||
constructor(memberInitializer) {
|
||||
super(MemberType_1.MemberType.Method, memberInitializer);
|
||||
this.implementation = null;
|
||||
}
|
||||
get hasMethodImplementation() {
|
||||
return this.implementation != null;
|
||||
}
|
||||
getMethodImplementation(className) {
|
||||
let lines = [];
|
||||
lines.push(this.info());
|
||||
lines.push(`${this.type} ${className}::${this.name}${this.parameterWithBrackets}`);
|
||||
lines.push("{");
|
||||
this.implementation.forEach(l => lines.push(" " + l));
|
||||
lines.push("}");
|
||||
return lines.join("\n") + "\n";
|
||||
}
|
||||
parseBody(body) {
|
||||
if (Array.isArray(body)) {
|
||||
let parameters = body[0];
|
||||
let lines = body[1];
|
||||
this.parseMethodParameters(parameters);
|
||||
this.implementation = lines;
|
||||
}
|
||||
else {
|
||||
return this.parseMethodParameters(body);
|
||||
}
|
||||
}
|
||||
get parameterWithBrackets() {
|
||||
let parameters = this.parametersDefinition === "" ? "()" :
|
||||
`( ${this.parametersDefinition} )`;
|
||||
return parameters;
|
||||
}
|
||||
getHeaderDefinition() {
|
||||
let methodInfo = "\n " + this.info() + "\n ";
|
||||
if (this.isVirtual) {
|
||||
let numParameters = this.parameters.length;
|
||||
let methodReturnType = this.type === "void" ? "" : "R";
|
||||
let returnTypeDefinition = this.type === "void" ? "" : (this.type + ", ");
|
||||
let parametersDefinition = "";
|
||||
if (numParameters > 0) {
|
||||
parametersDefinition = ", " + this.parameters.map(p => p.type).join(", ");
|
||||
}
|
||||
return `${methodInfo}GDVIRTUAL${numParameters}${methodReturnType}( ${returnTypeDefinition}${this.name}${parametersDefinition} );`;
|
||||
}
|
||||
let parameters = this.parameterWithBrackets;
|
||||
return `${methodInfo}${this.type} ${this.name}${parameters};`;
|
||||
}
|
||||
getBindings(className) {
|
||||
if (this.isVirtual) {
|
||||
let parameterInfos = "";
|
||||
for (let i = 0; i < this.parameters.length; i++) {
|
||||
let name = `, "${this.parameters[i].name}"`;
|
||||
parameterInfos += name;
|
||||
}
|
||||
return `GDVIRTUAL_BIND( ${this.name}${parameterInfos} );`;
|
||||
}
|
||||
else {
|
||||
return `ClassDB::bind_method( D_METHOD( "${this.name}" ) , &${className}::${this.name} );`;
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.Method = Method;
|
||||
//# sourceMappingURL=Method.js.map
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"Method.js","sourceRoot":"","sources":["../../../source/cpp-creation/members/Method.ts"],"names":[],"mappings":"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"}
|
|
@ -0,0 +1,30 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Signal = void 0;
|
||||
const GodotTypes_1 = require("../GodotTypes");
|
||||
const MemberType_1 = require("../MemberType");
|
||||
const Member_1 = require("./Member");
|
||||
class Signal extends Member_1.Member {
|
||||
constructor(memberInitializer) {
|
||||
super(MemberType_1.MemberType.Signal, memberInitializer);
|
||||
}
|
||||
parseBody(body) {
|
||||
return this.parseMethodParameters(body);
|
||||
}
|
||||
getHeaderDefinition() {
|
||||
return "\n " + this.info();
|
||||
}
|
||||
getBindings(className) {
|
||||
//ADD_SIGNAL(MethodInfo("session_supported", PropertyInfo(Variant::STRING, "session_mode"), PropertyInfo(Variant::BOOL, "supported")));
|
||||
let parameterInfos = "";
|
||||
for (let i = 0; i < this.parameters.length; i++) {
|
||||
let type = GodotTypes_1.GodotTypes.stringToVariantType(this.parameters[i].type);
|
||||
let name = this.parameters[i].name;
|
||||
let pi = `, PropertyInfo(Variant::${type}, "${name}")`;
|
||||
parameterInfos += pi;
|
||||
}
|
||||
return `ADD_SIGNAL (MethodInfo( "${this.name}" ${parameterInfos}) );`;
|
||||
}
|
||||
}
|
||||
exports.Signal = Signal;
|
||||
//# sourceMappingURL=Signal.js.map
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"Signal.js","sourceRoot":"","sources":["../../../source/cpp-creation/members/Signal.ts"],"names":[],"mappings":";;;AACA,8CAA2C;AAE3C,8CAA2C;AAC3C,qCAAkC;AAElC,MAAa,MAAO,SAAQ,eAAM;IAEhC,YAAa,iBAAmC;QAE9C,KAAK,CAAE,uBAAU,CAAC,MAAM,EAAE,iBAAiB,CAAE,CAAC;IAChD,CAAC;IAED,SAAS,CAAE,IAAQ;QAEjB,OAAO,IAAI,CAAC,qBAAqB,CAAE,IAAI,CAAE,CAAC;IAC5C,CAAC;IAGD,mBAAmB;QAEjB,OAAO,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED,WAAW,CAAE,SAAgB;QAE3B,uIAAuI;QACvI,IAAI,cAAc,GAAG,EAAE,CAAC;QAExB,KAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAChD,CAAC;YACC,IAAI,IAAI,GAAG,uBAAU,CAAC,mBAAmB,CAAE,IAAI,CAAC,UAAU,CAAE,CAAC,CAAE,CAAC,IAAI,CAAE,CAAC;YACvE,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAE,CAAC,CAAE,CAAC,IAAI,CAAC;YAErC,IAAI,EAAE,GAAG,2BAA2B,IAAI,MAAM,IAAI,IAAI,CAAC;YAEvD,cAAc,IAAI,EAAE,CAAC;QACvB,CAAC;QAED,OAAO,4BAA4B,IAAI,CAAC,IAAI,KAAK,cAAc,MAAM,CAAC;IACxE,CAAC;CACF;AAnCD,wBAmCC"}
|
|
@ -0,0 +1,75 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const CppCreator_1 = require("./cpp-creation/CppCreator");
|
||||
const TypeRegistration_1 = require("./cpp-creation/TypeRegistration");
|
||||
const Files_1 = require("./library/Files");
|
||||
const RJLog_1 = require("./library/RJLog");
|
||||
const Texts_1 = require("./library/Texts");
|
||||
class CreateCpp {
|
||||
static main() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
RJLog_1.RJLog.log("Clear old cpp files");
|
||||
yield this.clearCppFiles();
|
||||
RJLog_1.RJLog.log("Generate cpp files from definitions");
|
||||
let files = yield this.getCppFiles();
|
||||
for (let file of files) {
|
||||
var cppFilePath = Texts_1.Texts.joinPaths(CppCreator_1.CppCreator.definitionsPath, file);
|
||||
yield CppCreator_1.CppCreator.createCppFiles(cppFilePath);
|
||||
}
|
||||
RJLog_1.RJLog.log("Copy raw cpp files");
|
||||
yield this.copyRaw();
|
||||
RJLog_1.RJLog.log("Register types");
|
||||
yield TypeRegistration_1.TypeRegistration.createRegistrations();
|
||||
});
|
||||
}
|
||||
;
|
||||
static clearCppFiles() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let allFiles = yield Files_1.Files.getFiles(CppCreator_1.CppCreator.outputPath);
|
||||
let cppFiles = allFiles.filter(file => CreateCpp.cppExtensionRegex.test(file));
|
||||
for (let cppFile of cppFiles) {
|
||||
let fullPath = Texts_1.Texts.joinPaths(CppCreator_1.CppCreator.outputPath, cppFile);
|
||||
//RJLog.log( "deleting", fullPath );
|
||||
yield Files_1.Files.delete(fullPath);
|
||||
}
|
||||
});
|
||||
}
|
||||
static getCppFiles() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let files = yield Files_1.Files.getFiles(CppCreator_1.CppCreator.definitionsPath);
|
||||
files = files.filter(f => !f.startsWith("_"));
|
||||
return Promise.resolve(files);
|
||||
});
|
||||
}
|
||||
static copyRaw() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let files = yield Files_1.Files.getFilesRecursive(CppCreator_1.CppCreator.rawPath);
|
||||
for (let i = 0; i < files.length; i++) {
|
||||
let fileName = Texts_1.Texts.fileName(files[i]);
|
||||
if (fileName.startsWith("_") || !CreateCpp.cppExtensionRegex.test(fileName)) {
|
||||
continue;
|
||||
}
|
||||
let fullPath = Texts_1.Texts.joinPaths(CppCreator_1.CppCreator.rawPath, files[i]);
|
||||
let isDirectory = yield Files_1.Files.isDirectory(fullPath);
|
||||
if (isDirectory) {
|
||||
continue;
|
||||
}
|
||||
let outputFullPath = Texts_1.Texts.joinPaths(CppCreator_1.CppCreator.outputPath, fileName);
|
||||
// RJLog.log( "copying:", fileName, "\n" + fullPath, "\n", outputFullPath );
|
||||
yield Files_1.Files.copy(fullPath, outputFullPath);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
CreateCpp.cppExtensionRegex = /\.(h|cpp)$/;
|
||||
CreateCpp.main();
|
||||
//# sourceMappingURL=create-cpp.js.map
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"create-cpp.js","sourceRoot":"","sources":["../source/create-cpp.ts"],"names":[],"mappings":"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"}
|
|
@ -0,0 +1,77 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const RJLog_1 = require("./library/RJLog");
|
||||
const { argv } = require("process");
|
||||
const path = require("path");
|
||||
const fs = require("node:fs/promises");
|
||||
const { exists } = require("./library.js");
|
||||
let targetDirectory = "outputs";
|
||||
let godotName = "godot-4.3-dev-rokojori";
|
||||
let platform = "argv[ 2 ]";
|
||||
let godotPlatformName = godotName + "-" + "argv[ 2 ]";
|
||||
let platformTargetDirectory = path.join(targetDirectory, godotPlatformName);
|
||||
function main() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
if (argv.length !== 3) {
|
||||
let platforms = ["windows"];
|
||||
console.error("Platform missing in the command. Add one of these to the command line:", platforms.join(", "));
|
||||
return;
|
||||
}
|
||||
platform = argv[2];
|
||||
godotPlatformName = godotName + "-" + argv[2];
|
||||
platformTargetDirectory = path.join(targetDirectory, godotPlatformName);
|
||||
RJLog_1.RJLog.log("Creating output");
|
||||
yield deleteOldDirectory();
|
||||
yield createDirectory();
|
||||
RJLog_1.RJLog.log("Output done");
|
||||
});
|
||||
}
|
||||
function deleteOldDirectory() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let directoryExists = yield exists(platformTargetDirectory);
|
||||
RJLog_1.RJLog.log("checking if old directory exists", directoryExists);
|
||||
if (directoryExists) {
|
||||
RJLog_1.RJLog.log(`deleting previous directory: "${platformTargetDirectory}"`);
|
||||
yield fs.rm(platformTargetDirectory, { recursive: true });
|
||||
}
|
||||
return Promise.resolve();
|
||||
});
|
||||
}
|
||||
function createDirectory() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
RJLog_1.RJLog.log(`creating directory: "${platformTargetDirectory}"`);
|
||||
yield fs.mkdir(platformTargetDirectory, { recursive: true });
|
||||
let godotFrom = "godot/bin";
|
||||
let godotTo = path.join(platformTargetDirectory, "godot");
|
||||
RJLog_1.RJLog.log(`copying godot: "${godotFrom}" >> "${godotTo}"`);
|
||||
yield fs.cp(godotFrom, godotTo, { recursive: true });
|
||||
let npFrom = "godot-rj-nuget-package";
|
||||
let npTo = path.join(platformTargetDirectory, npFrom);
|
||||
RJLog_1.RJLog.log(`copying nupkg: "${npFrom}" >> "${npTo}"`);
|
||||
yield fs.cp(npFrom, npTo, { recursive: true });
|
||||
let installerFiles = {
|
||||
"windows": [
|
||||
"install-godot-windows.bat",
|
||||
"install-godot-windows-readme.txt"
|
||||
]
|
||||
};
|
||||
let installers = installerFiles[platform];
|
||||
for (let installer of installers) {
|
||||
let installFrom = "install-scripts/" + installer;
|
||||
let installTo = path.join(platformTargetDirectory, installer);
|
||||
RJLog_1.RJLog.log(`copying installer: "${installFrom}" >> "${installTo}"`);
|
||||
yield fs.cp(installFrom, installTo, { recursive: true });
|
||||
}
|
||||
});
|
||||
}
|
||||
main();
|
||||
//# sourceMappingURL=create-output.js.map
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"create-output.js","sourceRoot":"","sources":["../source/create-output.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,2CAAwC;AAExC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AACpC,MAAM,IAAI,GAAG,OAAO,CAAE,MAAM,CAAE,CAAC;AAC/B,MAAM,EAAE,GAAG,OAAO,CAAE,kBAAkB,CAAE,CAAC;AACzC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAE,cAAc,CAAE,CAAC;AAG7C,IAAI,eAAe,GAAG,SAAS,CAAC;AAChC,IAAI,SAAS,GAAG,wBAAwB,CAAC;AACzC,IAAI,QAAQ,GAAG,WAAW,CAAC;AAC3B,IAAI,iBAAiB,GAAG,SAAS,GAAG,GAAG,GAAG,WAAW,CAAC;AACtD,IAAI,uBAAuB,GAAG,IAAI,CAAC,IAAI,CAAE,eAAe,EAAE,iBAAiB,CAAE,CAAC;AAE9E,SAAe,IAAI;;QAGjB,IAAK,IAAI,CAAC,MAAM,KAAK,CAAC,EACtB,CAAC;YACC,IAAI,SAAS,GAAG,CAAE,SAAS,CAAE,CAAC;YAE9B,OAAO,CAAC,KAAK,CAAE,wEAAwE,EAAE,SAAS,CAAC,IAAI,CAAE,IAAI,CAAE,CAAE,CAAC;YAElH,OAAO;QACT,CAAC;QAED,QAAQ,GAAG,IAAI,CAAE,CAAC,CAAE,CAAC;QACrB,iBAAiB,GAAG,SAAS,GAAG,GAAG,GAAG,IAAI,CAAE,CAAC,CAAE,CAAC;QAChD,uBAAuB,GAAG,IAAI,CAAC,IAAI,CAAE,eAAe,EAAE,iBAAiB,CAAE,CAAC;QAE1E,aAAK,CAAC,GAAG,CAAE,iBAAiB,CAAE,CAAC;QAE/B,MAAM,kBAAkB,EAAE,CAAC;QAC3B,MAAM,eAAe,EAAE,CAAC;QAGxB,aAAK,CAAC,GAAG,CAAE,aAAa,CAAE,CAAC;IAC7B,CAAC;CAAA;AAGD,SAAe,kBAAkB;;QAG/B,IAAI,eAAe,GAAG,MAAM,MAAM,CAAE,uBAAuB,CAAE,CAAC;QAE9D,aAAK,CAAC,GAAG,CAAE,kCAAkC,EAAE,eAAe,CAAE,CAAC;QAEjE,IAAK,eAAe,EACpB,CAAC;YACC,aAAK,CAAC,GAAG,CAAE,iCAAiC,uBAAuB,GAAG,CAAE,CAAC;YACzE,MAAM,EAAE,CAAC,EAAE,CAAE,uBAAuB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAE,CAAC;QAC9D,CAAC;QAED,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CAAA;AAED,SAAe,eAAe;;QAE5B,aAAK,CAAC,GAAG,CAAE,wBAAwB,uBAAuB,GAAG,CAAE,CAAC;QAChE,MAAM,EAAE,CAAC,KAAK,CAAE,uBAAuB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAE,CAAC;QAI/D,IAAI,SAAS,GAAG,WAAW,CAAC;QAC5B,IAAI,OAAO,GAAK,IAAI,CAAC,IAAI,CAAE,uBAAuB,EAAE,OAAO,CAAE,CAAC;QAE9D,aAAK,CAAC,GAAG,CAAE,mBAAmB,SAAS,SAAS,OAAO,GAAG,CAAE,CAAC;QAE7D,MAAM,EAAE,CAAC,EAAE,CAAE,SAAS,EAAE,OAAO,EAAE,EAAE,SAAS,EAAG,IAAI,EAAE,CAAE,CAAC;QAIxD,IAAI,MAAM,GAAG,wBAAwB,CAAC;QACtC,IAAI,IAAI,GAAK,IAAI,CAAC,IAAI,CAAE,uBAAuB,EAAE,MAAM,CAAE,CAAC;QAE1D,aAAK,CAAC,GAAG,CAAE,mBAAmB,MAAM,SAAS,IAAI,GAAG,CAAE,CAAC;QAEvD,MAAM,EAAE,CAAC,EAAE,CAAE,MAAM,EAAE,IAAI,EAAE,EAAE,SAAS,EAAG,IAAI,EAAE,CAAE,CAAC;QAGlD,IAAI,cAAc,GAClB;YACE,SAAS,EACT;gBACE,2BAA2B;gBAC3B,kCAAkC;aACnC;SACF,CAAC;QAEF,IAAI,UAAU,GAAK,cAAc,CAAE,QAAQ,CAAE,CAAC;QAE9C,KAAM,IAAI,SAAS,IAAI,UAAU,EACjC,CAAC;YACC,IAAI,WAAW,GAAG,kBAAkB,GAAG,SAAS,CAAC;YAEjD,IAAI,SAAS,GAAK,IAAI,CAAC,IAAI,CAAE,uBAAuB,EAAE,SAAS,CAAE,CAAC;YAElE,aAAK,CAAC,GAAG,CAAE,uBAAuB,WAAW,SAAS,SAAS,GAAG,CAAE,CAAC;YAErE,MAAM,EAAE,CAAC,EAAE,CAAE,WAAW,EAAE,SAAS,EAAE,EAAE,SAAS,EAAG,IAAI,EAAE,CAAE,CAAC;QAC9D,CAAC;IAEH,CAAC;CAAA;AAGD,IAAI,EAAE,CAAC"}
|
|
@ -0,0 +1,102 @@
|
|||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Files = void 0;
|
||||
const fs_1 = require("fs");
|
||||
const RJLog_1 = require("./RJLog");
|
||||
class Files {
|
||||
static getFiles(filePath) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return yield fs_1.promises.readdir(filePath);
|
||||
});
|
||||
}
|
||||
static copy(from, to) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return yield fs_1.promises.copyFile(from, to);
|
||||
});
|
||||
}
|
||||
static getFilesRecursive(filePath) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let files = yield fs_1.promises.readdir(filePath, { recursive: true });
|
||||
return files;
|
||||
});
|
||||
}
|
||||
static delete(filePath) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
yield fs_1.promises.unlink(filePath);
|
||||
return Promise.resolve();
|
||||
});
|
||||
}
|
||||
static isDirectory(filePath) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let stats = yield fs_1.promises.stat(filePath);
|
||||
return stats.isDirectory();
|
||||
});
|
||||
}
|
||||
static exists(filePath) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
try {
|
||||
let stats = yield fs_1.promises.stat(filePath);
|
||||
let exists = stats !== undefined && stats !== null;
|
||||
return Promise.resolve(exists);
|
||||
}
|
||||
catch (e) {
|
||||
}
|
||||
return Promise.resolve(false);
|
||||
});
|
||||
}
|
||||
static loadUTF8(filePath) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
try {
|
||||
let data = yield fs_1.promises.readFile(filePath);
|
||||
let stringData = data.toString();
|
||||
return Promise.resolve(stringData);
|
||||
}
|
||||
catch (exception) {
|
||||
RJLog_1.RJLog.warn("loadUTF8: ", filePath);
|
||||
RJLog_1.RJLog.warn(exception);
|
||||
}
|
||||
return Promise.resolve(null);
|
||||
});
|
||||
}
|
||||
static saveUTF8(filePath, data) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
try {
|
||||
yield fs_1.promises.writeFile(filePath, data);
|
||||
return Promise.resolve(true);
|
||||
}
|
||||
catch (exception) {
|
||||
RJLog_1.RJLog.warn("saveUTF8: ", filePath);
|
||||
RJLog_1.RJLog.warn(exception);
|
||||
}
|
||||
return Promise.resolve(false);
|
||||
});
|
||||
}
|
||||
static loadJSON(filePath) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let text = yield this.loadUTF8(filePath);
|
||||
if (text === null) {
|
||||
return Promise.resolve(null);
|
||||
}
|
||||
try {
|
||||
let jsonObject = JSON.parse(text);
|
||||
return Promise.resolve(jsonObject);
|
||||
}
|
||||
catch (exception) {
|
||||
RJLog_1.RJLog.warn("LoadJSON: ", filePath);
|
||||
RJLog_1.RJLog.warn(exception);
|
||||
}
|
||||
return Promise.resolve(null);
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.Files = Files;
|
||||
//# sourceMappingURL=Files.js.map
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"Files.js","sourceRoot":"","sources":["../../source/library/Files.ts"],"names":[],"mappings":"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"}
|
|
@ -0,0 +1,32 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.LogColors = void 0;
|
||||
class LogColors {
|
||||
}
|
||||
exports.LogColors = LogColors;
|
||||
LogColors.reset = "\x1b[0m";
|
||||
LogColors.bright = "\x1b[1m";
|
||||
LogColors.dim = "\x1b[2m";
|
||||
LogColors.underscore = "\x1b[4m";
|
||||
LogColors.blink = "\x1b[5m";
|
||||
LogColors.reverse = "\x1b[7m";
|
||||
LogColors.hidden = "\x1b[8m";
|
||||
LogColors.black_Foreground = "\x1b[30m";
|
||||
LogColors.red_Foreground = "\x1b[31m";
|
||||
LogColors.green_Foreground = "\x1b[32m";
|
||||
LogColors.yellow_Foreground = "\x1b[33m";
|
||||
LogColors.blue_Foreground = "\x1b[34m";
|
||||
LogColors.magenta_Foreground = "\x1b[35m";
|
||||
LogColors.cyan_Foreground = "\x1b[36m";
|
||||
LogColors.white_Foreground = "\x1b[37m";
|
||||
LogColors.gray_Foreground = "\x1b[90m";
|
||||
LogColors.black_Background = "\x1b[40m";
|
||||
LogColors.red_Background = "\x1b[41m";
|
||||
LogColors.green_Background = "\x1b[42m";
|
||||
LogColors.yellow_Background = "\x1b[43m";
|
||||
LogColors.blue_Background = "\x1b[44m";
|
||||
LogColors.magenta_Background = "\x1b[45m";
|
||||
LogColors.cyan_Background = "\x1b[46m";
|
||||
LogColors.white_Background = "\x1b[47m";
|
||||
LogColors.gray_Background = "\x1b[100m";
|
||||
//# sourceMappingURL=LogColors.js.map
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"LogColors.js","sourceRoot":"","sources":["../../source/library/LogColors.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAS;;AAAtB,8BA8BC;AA5BiB,eAAK,GAAG,SAAS,CAAC;AAClB,gBAAM,GAAG,SAAS,CAAC;AACnB,aAAG,GAAG,SAAS,CAAC;AAChB,oBAAU,GAAG,SAAS,CAAC;AACvB,eAAK,GAAG,SAAS,CAAC;AAClB,iBAAO,GAAG,SAAS,CAAC;AACpB,gBAAM,GAAG,SAAS,CAAC;AAEnB,0BAAgB,GAAG,UAAU,CAAC;AAC9B,wBAAc,GAAG,UAAU,CAAC;AAC5B,0BAAgB,GAAG,UAAU,CAAC;AAC9B,2BAAiB,GAAG,UAAU,CAAC;AAC/B,yBAAe,GAAG,UAAU,CAAC;AAC7B,4BAAkB,GAAG,UAAU,CAAC;AAChC,yBAAe,GAAG,UAAU,CAAC;AAC7B,0BAAgB,GAAG,UAAU,CAAC;AAC9B,yBAAe,GAAG,UAAU,CAAC;AAE7B,0BAAgB,GAAG,UAAU,CAAC;AAC9B,wBAAc,GAAG,UAAU,CAAC;AAC5B,0BAAgB,GAAG,UAAU,CAAC;AAC9B,2BAAiB,GAAG,UAAU,CAAC;AAC/B,yBAAe,GAAG,UAAU,CAAC;AAC7B,4BAAkB,GAAG,UAAU,CAAC;AAChC,yBAAe,GAAG,UAAU,CAAC;AAC7B,0BAAgB,GAAG,UAAU,CAAC;AAC9B,yBAAe,GAAG,WAAW,CAAC"}
|
|
@ -0,0 +1,7 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.MatchResult = void 0;
|
||||
class MatchResult {
|
||||
}
|
||||
exports.MatchResult = MatchResult;
|
||||
//# sourceMappingURL=MatchResult.js.map
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue