mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-15 16:44:36 +00:00
leverage writeapppend to add any new info requested.
filter out pre-existing callback defines
This commit is contained in:
parent
ace243171e
commit
caa93e2179
1 changed files with 73 additions and 10 deletions
|
|
@ -90,6 +90,56 @@ function setProtoTypeFilePath(%targetPath)
|
||||||
classPrototyping-->targetPath.text = %targetPath;
|
classPrototyping-->targetPath.text = %targetPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function classPrototyping::readExistingLayout(%this)
|
||||||
|
{
|
||||||
|
for (%i=0; %i<%this.classCount; %i++)
|
||||||
|
{
|
||||||
|
%inheritanceOrder = %this.classCount-(%i+1);
|
||||||
|
%obj = "ProtoClassSelect"@ %i;
|
||||||
|
if (%obj.isStateOn())
|
||||||
|
%namespaceUsed = getWord(%this.classlist,%inheritanceOrder);
|
||||||
|
}
|
||||||
|
|
||||||
|
%file = new FileObject();
|
||||||
|
%filename = classPrototyping-->targetPath.text @"/"@ %namespaceUsed @"."@ $TorqueScriptFileExtension;
|
||||||
|
|
||||||
|
if (!isObject(%this.callbacksDefined))
|
||||||
|
%this.callbacksDefined = new arrayobject();
|
||||||
|
%this.callbacksDefined.empty();
|
||||||
|
%this.reportedCommands = false;
|
||||||
|
%this.reportedVariables = false;
|
||||||
|
%this.callbackBlockDefined = false;
|
||||||
|
|
||||||
|
%key=0;
|
||||||
|
if(%file.openForRead(%filename))
|
||||||
|
{
|
||||||
|
while (!%file.isEof())
|
||||||
|
{
|
||||||
|
%line = %file.readLine();
|
||||||
|
|
||||||
|
//have we already reported commands?
|
||||||
|
if (startsWith(%line,"/* Available Commands:") )
|
||||||
|
%this.reportedCommands = true;
|
||||||
|
|
||||||
|
//have we already reported variables?
|
||||||
|
if (startsWith(%line,"/* HardCoded Variables") )
|
||||||
|
%this.reportedVariables = true;
|
||||||
|
|
||||||
|
if (startsWith(%line,"/*--- Callbacks ---*/") )
|
||||||
|
%this.callbackBlockDefined = true;
|
||||||
|
|
||||||
|
//get list of methods already existing
|
||||||
|
if (startswith(%line,"function "@ %namespaceUsed) )
|
||||||
|
{
|
||||||
|
%methodName = strreplace(%line,"::"," ");
|
||||||
|
%methodName = getWord(strreplace(%methodName,"("," "),2);
|
||||||
|
%this.callbacksDefined.add(%key++,%methodName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%file.delete();
|
||||||
|
}
|
||||||
|
|
||||||
function classPrototyping::writeResults(%this)
|
function classPrototyping::writeResults(%this)
|
||||||
{
|
{
|
||||||
%namespaceUsed = "";
|
%namespaceUsed = "";
|
||||||
|
|
@ -100,18 +150,12 @@ function classPrototyping::writeResults(%this)
|
||||||
if (%obj.isStateOn())
|
if (%obj.isStateOn())
|
||||||
%namespaceUsed = getWord(%this.classlist,%inheritanceOrder);
|
%namespaceUsed = getWord(%this.classlist,%inheritanceOrder);
|
||||||
}
|
}
|
||||||
|
%this.readExistingLayout();
|
||||||
%file = new FileObject();
|
%file = new FileObject();
|
||||||
%filename = classPrototyping-->targetPath.text @"/"@ %namespaceUsed @"."@ $TorqueScriptFileExtension;
|
%filename = classPrototyping-->targetPath.text @"/"@ %namespaceUsed @"."@ $TorqueScriptFileExtension;
|
||||||
if(%file.openForWrite(%filename))
|
if(%file.openForAppend(%filename))
|
||||||
{
|
{
|
||||||
for (%i=0; %i<%this.methodCount; %i++)
|
if (ReportCommands.isStateOn() && %this.reportedCommands == false)
|
||||||
{
|
|
||||||
%obj = "ProtoMethodSelect"@ %i;
|
|
||||||
if (%obj.isStateOn())
|
|
||||||
%file.writeLine(strreplace(%this.methodArray.getValue(%i),%this.instanceName,%namespaceUsed));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ReportCommands.isStateOn())
|
|
||||||
{
|
{
|
||||||
%this.commandArray = getMethodSigsNS(%this.nameSpaceUsed,true);
|
%this.commandArray = getMethodSigsNS(%this.nameSpaceUsed,true);
|
||||||
%this.commandCount = %this.commandArray.count();
|
%this.commandCount = %this.commandArray.count();
|
||||||
|
|
@ -123,7 +167,7 @@ function classPrototyping::writeResults(%this)
|
||||||
%file.writeLine("*/");
|
%file.writeLine("*/");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ReportVariables.isStateOn())
|
if (ReportVariables.isStateOn() && %this.reportedVariables == false)
|
||||||
{
|
{
|
||||||
%file.writeLine("/* HardCoded Variables");
|
%file.writeLine("/* HardCoded Variables");
|
||||||
for (%i=0; %i< getFieldCountNS(%this.nameSpaceUsed); %i++)
|
for (%i=0; %i< getFieldCountNS(%this.nameSpaceUsed); %i++)
|
||||||
|
|
@ -132,6 +176,25 @@ function classPrototyping::writeResults(%this)
|
||||||
}
|
}
|
||||||
%file.writeLine("*/");
|
%file.writeLine("*/");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (%this.callbackBlockDefined == false)
|
||||||
|
%file.writeLine("\n/*--- Callbacks ---*/\n");
|
||||||
|
|
||||||
|
for (%i=0; %i<%this.methodCount; %i++)
|
||||||
|
{
|
||||||
|
%obj = "ProtoMethodSelect"@ %i;
|
||||||
|
if (%obj.isStateOn())
|
||||||
|
{
|
||||||
|
%methodDef = getRecord(%this.methodArray.getValue(%i),0);
|
||||||
|
%methodName = strreplace(%methodDef,"::"," ");
|
||||||
|
%methodName = getWord(strreplace(%methodName,"("," "),2);
|
||||||
|
if (%this.callbacksDefined.countValue(%methodName)==0)
|
||||||
|
{
|
||||||
|
echo(%methodName @ "not found. defining...");
|
||||||
|
%file.writeLine("\n" @ strreplace(%this.methodArray.getValue(%i),%this.instanceName,%namespaceUsed));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue