From dee5b4616982bfee1588675fe87ba0788f6b4d89 Mon Sep 17 00:00:00 2001 From: AzaezelX Date: Wed, 27 Jan 2021 00:45:49 -0600 Subject: [PATCH] re-fix file exclusivity, readd callonmodules variable extension new method loadAssetsByType(%assetType) --- .../game/core/utility/scripts/module.tscript | 38 +++++++++++++++---- 1 file changed, 31 insertions(+), 7 deletions(-) diff --git a/Templates/BaseGame/game/core/utility/scripts/module.tscript b/Templates/BaseGame/game/core/utility/scripts/module.tscript index 5a8304aaa..292946009 100644 --- a/Templates/BaseGame/game/core/utility/scripts/module.tscript +++ b/Templates/BaseGame/game/core/utility/scripts/module.tscript @@ -3,8 +3,9 @@ $reportModuleFileConflicts=true; if (!isObject(ExecFilesList)) new ArrayObject(ExecFilesList); -function callOnModules(%functionName, %moduleGroup) +function callOnModules(%functionName, %moduleGroup, %var0, %var1, %var2, %var3, %var4, %var5, %var6) { + %maxvars = 7; // match this to i/o signature //clear per module group file execution chain ExecFilesList.empty(); //Get our modules so we can exec any specific client-side loading/handling @@ -21,7 +22,18 @@ function callOnModules(%functionName, %moduleGroup) if(isObject(%module.scopeSet) && %module.scopeSet.isMethod(%functionName)) { - eval(%module.scopeSet @ "." @ %functionName @ "();"); + %stryng = %module.scopeSet @ "." @ %functionName @ "("; + for (%a=0;%a<%maxvars;%a++) + { + if (%var[%a] !$= "") + { + %stryng = %stryng @ %var[%a]; + if (%a<%maxvars-1 && %var[%a+1] !$= "") + %stryng = %stryng @ ","; + } + } + %stryng = %stryng @ ");"; + eval(%stryng); } } @@ -69,6 +81,17 @@ function loadModuleMaterials(%moduleGroup) { exec( %file ); } + } +} + +function loadAssetsByType(%assetType) + %assetQuery = new AssetQuery(); + AssetDatabase.findAssetType(%assetQuery, %assetType); + %count = %assetQuery.getCount(); + for(%i=0; %i < %count; %i++) + { + %assetId = %assetQuery.getAsset(%i); + %asset = AssetDatabase.acquireAsset(%assetId); } } @@ -121,9 +144,9 @@ function SimSet::registerDatablock(%scopeSet, %datablockFilePath, %isExclusive) //allows one to override exclusive with exclusive %locked = DatablockFilesList.getValue(%i); - if ((!%locked && !%isExclusive)&&($reportModuleFileConflicts)) + if ((%locked && !%isExclusive)&&($reportModuleFileConflicts)) error("found" SPC %datablockFilePath SPC "duplicate file!"); - if (!%locked || (%locked && %isExclusive)) + if (%isExclusive) { // Replacing an existing entry, update in-place DatablockFilesList.setKey(%fullPath, %i); DatablockFilesList.setValue(%isExclusive, %i); @@ -221,9 +244,9 @@ function SimSet::queueExec(%scopeSet, %execFilePath, %isExclusive) //do note that doing it in this order means setting exclusive twice //allows one to override exclusive with exclusive %locked = ExecFilesList.getValue(%i); - if ((!%locked && !%isExclusive)&&($reportModuleFileConflicts)) + if ((%locked && !%isExclusive)&&($reportModuleFileConflicts)) error("found" SPC %execFilePath SPC "duplicate file!"); - if (!%locked || (%locked && %isExclusive)) + if (%isExclusive) { // Replacing an existing entry, update in-place ExecFilesList.setKey(%fullPath, %i); ExecFilesList.setValue(%isExclusive, %i); @@ -281,4 +304,5 @@ function SimSet::unQueueExec(%scopeSet, %execFilePath) } if ($traceModuleCalls) ExecFilesList.echo(); -} \ No newline at end of file +} +