Merge branch 'Preview4_0' into bugfix-crash-variableinspector

This commit is contained in:
Robert MacGregor 2021-11-08 15:42:44 -05:00 committed by GitHub
commit 2c7dc4e783
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
46 changed files with 414 additions and 281 deletions

View file

@ -304,13 +304,13 @@ if (m##name##AssetId != StringTable->EmptyString())\
#pragma region Arrayed Asset Macros
//Arrayed Assets
#define DECLARE_IMAGEASSET_ARRAY(className, name, profile, max) public: \
#define DECLARE_IMAGEASSET_ARRAY(className, name, max) public: \
static const U32 sm##name##Count = max;\
GFXTexHandle m##name[max];\
StringTableEntry m##name##Name[max]; \
StringTableEntry m##name##AssetId[max];\
AssetPtr<ImageAsset> m##name##Asset[max];\
GFXTextureProfile * m##name##Profile = &profile;\
GFXTextureProfile * m##name##Profile[max];\
public: \
const StringTableEntry get##name##File(const U32& index) const { return m##name##Name[index]; }\
void set##name##File(const FileName &_in, const U32& index) { m##name##Name[index] = StringTable->insert(_in.c_str());}\
@ -374,7 +374,7 @@ public: \
}\
if (get##name(index) != StringTable->EmptyString() && m##name##Name[index] != StringTable->insert("texhandle"))\
{\
m##name[index].set(get##name(index), m##name##Profile, avar("%s() - mTextureObject (line %d)", __FUNCTION__, __LINE__));\
m##name[index].set(get##name(index), m##name##Profile[index], avar("%s() - mTextureObject (line %d)", __FUNCTION__, __LINE__));\
}\
else\
{\
@ -405,7 +405,12 @@ public: \
else if (m##name##AssetId[index] != StringTable->EmptyString())\
return m##name##AssetId[index];\
else if (m##name##Name[index] != StringTable->EmptyString())\
return StringTable->insert(Platform::makeRelativePathName(m##name##Name[index], Platform::getMainDotCsDir()));\
{\
if (String(m##name##Name[index]).startsWith("#") || String(m##name##Name[index]).startsWith("$"))\
return StringTable->insert(m##name##Name[index]);\
else\
return StringTable->insert(Platform::makeRelativePathName(m##name##Name[index], Platform::getMainDotCsDir()));\
}\
else\
return StringTable->EmptyString();\
}\
@ -445,6 +450,15 @@ public: \
return ret;\
}
#define INIT_IMAGEASSET_ARRAY(name, profile, index) \
{\
m##name##Name[index] = StringTable->EmptyString(); \
m##name##AssetId[index] = StringTable->EmptyString(); \
m##name##Asset[index] = NULL;\
m##name[index] = NULL;\
m##name##Profile[index] = &profile;\
}
#define DEF_IMAGEASSET_ARRAY_BINDS(className,name)\
DefineEngineMethod(className, get##name, const char*, (S32 index), , "get name")\
{\

View file

@ -18,6 +18,7 @@
#include "materials/materialManager.h"
#include "console/persistenceManager.h"
#include "core/util/timeClass.h"
ConsoleDocClass(AssetImportConfig,
"@brief Defines properties for an AssetImprotConfig object.\n"
@ -506,7 +507,8 @@ AssetImporter::AssetImporter() :
isReimport(false),
assetHeirarchyChanged(false),
importLogBuffer(""),
activeImportConfig(nullptr)
activeImportConfig(nullptr),
mDumpLogs(true)
{
}
@ -534,6 +536,7 @@ void AssetImporter::initPersistFields()
addField("targetModuleId", TypeRealString, Offset(targetModuleId, AssetImporter), "The Id of the module the assets are to be imported into");
addField("finalImportedAssetPath", TypeRealString, Offset(finalImportedAssetPath, AssetImporter), "The Id of the module the assets are to be imported into");
addField("targetPath", TypeRealString, Offset(targetPath, AssetImporter), "The path any imported assets are placed in as their destination");
addField("dumpLogs", TypeBool, Offset(mDumpLogs, AssetImporter), "Indicates if the importer always dumps its logs or not");
}
//
@ -718,27 +721,27 @@ String AssetImporter::parseImageSuffixes(String assetName, String* suffixType)
{
case 0:
suffixList = activeImportConfig->DiffuseTypeSuffixes;
suffixType->insert(0, "Albedo", 10);
suffixType->insert(0, "Albedo", 6);
break;
case 1:
suffixList = activeImportConfig->NormalTypeSuffixes;
suffixType->insert(0, "Normal", 10);
suffixType->insert(0, "Normal", 6);
break;
case 2:
suffixList = activeImportConfig->RoughnessTypeSuffixes;
suffixType->insert(0, "Roughness", 10);
suffixType->insert(0, "Roughness", 9);
break;
case 3:
suffixList = activeImportConfig->AOTypeSuffixes;
suffixType->insert(0, "AO", 10);
suffixType->insert(0, "AO", 2);
break;
case 4:
suffixList = activeImportConfig->MetalnessTypeSuffixes;
suffixType->insert(0, "Metalness", 10);
suffixType->insert(0, "Metalness", 9);
break;
case 5:
suffixList = activeImportConfig->PBRTypeSuffixes;
suffixType->insert(0, "ORMConfig", 10);
suffixType->insert(0, "ORMConfig", 9);
break;
default:
suffixList = "";
@ -924,9 +927,41 @@ String AssetImporter::getActivityLogLine(U32 line)
void AssetImporter::dumpActivityLog()
{
for (U32 i = 0; i < activityLog.size(); i++)
if (!mDumpLogs)
return;
FileObject logFile;
//If there's nothing logged, don't bother
if (activityLog.size() == 0)
return;
Torque::Time::DateTime curTime;
Torque::Time::getCurrentDateTime(curTime);
String logName = String("tools/logs/AssetImportLog_") + String::ToString(curTime.year + 1900) + "-" +
String::ToString(curTime.month + 1) + "-" + String::ToString(curTime.day) + "_" +
String::ToString(curTime.hour) + "-" + String::ToString(curTime.minute) + "-" + String::ToString(curTime.second)
+ "-" + String::ToString(curTime.microsecond) + ".log";
if (logFile.openForWrite(logName.c_str()))
{
Con::printf(activityLog[i].c_str());
for (U32 i = 0; i < activityLog.size(); i++)
{
logFile.writeLine((const U8*)activityLog[i].c_str());
}
logFile.close();
Con::warnf("Asset Import log file dumped to: %s", logName.c_str());
}
else
{
Con::errorf("Error: Failed to open log file for writing! Dumping log results to console!");
for (U32 i = 0; i < activityLog.size(); i++)
{
Con::printf(activityLog[i].c_str());
}
}
}
@ -1582,6 +1617,7 @@ void AssetImporter::processMaterialAsset(AssetImportObject* assetItem)
}
}
bool foundExistingMaterial = false;
if (activeImportConfig->UseExistingMaterials)
{
//So if the material already exists, we should just use that. So first, let's find out if it already exists
@ -1616,9 +1652,11 @@ void AssetImporter::processMaterialAsset(AssetImportObject* assetItem)
{
//We found a match, so just modify our asset item's info to point against it. This will create the asset definition, but otherwise leave the material definition as-is.
assetItem->filePath = (Torque::Path)(mat->getFilename());
foundExistingMaterial = true;
}
}
else
if(!foundExistingMaterial)
{
if (activeImportConfig->AlwaysAddMaterialSuffix) //we only opt to force on the suffix if we're not obligating using the original material defs
{
@ -1776,19 +1814,6 @@ void AssetImporter::processMaterialAsset(AssetImportObject* assetItem)
}
}
}
/*for (U32 i = 0; i < assetItem->childAssetItems.size(); i++)
{
AssetImportObject* childAssetItem = assetItem->childAssetItems[i];
if (childAssetItem->skip || childAssetItem->processed || childAssetItem->assetType != String("ImageAsset"))
continue;
if (childAssetItem->imageSuffixType == String("Albedo"))
{
assetItem->diffuseImageAsset = % childAssetItem;
}
}*/
}
}
@ -1928,7 +1953,7 @@ void AssetImporter::processShapeMaterialInfo(AssetImportObject* assetItem, S32 m
else
{
Torque::Path filePath = materialItemValue;
String fullFilePath = filePath.getFullFileName().c_str();
String fullFilePath = filePath.getFullPath().c_str();
String shapePathBase = assetItem->filePath.getRootAndPath();
if (fullFilePath.isNotEmpty())
@ -1942,24 +1967,26 @@ void AssetImporter::processShapeMaterialInfo(AssetImportObject* assetItem, S32 m
fullFilePath = fullFilePath.replace(" (Not Found)", "");
fullFilePath = fullFilePath.replace(" (not found)", "");
String testFileName = shapePathBase + "/" + fullFilePath;
if (Platform::isFile(testFileName.c_str()))
if(filePath.getPath().isEmpty())
fullFilePath = shapePathBase + "/" + fullFilePath;
if (Platform::isFile(fullFilePath.c_str()))
{
filePath = testFileName;
filePath = Torque::Path(fullFilePath);
}
else
{
//Hmm, didn't find it. It could be that the in-model filename could be different by virtue of
//image extension. Some files have source content files like psd's, but the mesh was exported to use
//a dds or png, etc
Torque::Path testFilePath = testFileName;
Torque::Path testFilePath = fullFilePath;
String imgFileName = AssetImporter::findImagePath(testFilePath.getPath() + "/" + testFilePath.getFileName());
if (imgFileName.isNotEmpty())
filePath = imgFileName;
}
}
matAssetItem = addImportingAsset("MaterialAsset", shapePathBase + "/", assetItem, matName);
matAssetItem = addImportingAsset("MaterialAsset", shapePathBase + "/" + matName, assetItem, matName);
AssetImportObject* imageAssetItem = addImportingAsset("ImageAsset", filePath, matAssetItem, "");
String suffixType;
@ -2383,6 +2410,7 @@ void AssetImporter::importAssets(AssetImportObject* assetItem)
{
dSprintf(importLogBuffer, sizeof(importLogBuffer), "AssetImporter::importAssets - Unable to find moduleId %s", targetModuleId.c_str());
activityLog.push_back(importLogBuffer);
dumpActivityLog();
return;
}
@ -2483,6 +2511,8 @@ void AssetImporter::importAssets(AssetImportObject* assetItem)
//recurse if needed
importAssets(item);
}
dumpActivityLog();
}
//
@ -2793,7 +2823,7 @@ Torque::Path AssetImporter::importMaterialAsset(AssetImportObject* assetItem)
}
assetFieldName = mapFieldName + "Asset";
mapFieldName += "[0]";
assetFieldName += "[0]";
//String path = childItem->filePath.getFullFileName();
//dSprintf(lineBuffer, 1024, " %s = \"%s\";", mapFieldName.c_str(), path.c_str());

View file

@ -647,6 +647,8 @@ class AssetImporter : public SimObject
/// </summary>
String finalImportedAssetPath;
bool mDumpLogs;
public:
AssetImporter();
virtual ~AssetImporter();

View file

@ -6,113 +6,114 @@
//Console Functions
DefineEngineMethod(AssetImportConfig, loadImportConfig, void, (Settings* configSettings, String configName), (nullAsType<Settings*>(), ""),
"Creates a new script asset using the targetFilePath.\n"
"@return The bool result of calling exec")
"Loads the provided import config to the importer.\n"
"@param configSettings A Settings object containing the import configs.\n"
"@param configName The specific name of the config to be used.")
{
return object->loadImportConfig(configSettings, configName);
}
DefineEngineMethod(AssetImporter, setTargetPath, void, (String path), (""),
"Creates a new script asset using the targetFilePath.\n"
"@return The bool result of calling exec")
"Sets the target path the importing assets will be put into.\n"
"@param A string of the target path.")
{
return object->setTargetPath(path);
}
DefineEngineMethod(AssetImporter, resetImportSession, void, (bool forceResetSession), (false),
"Creates a new script asset using the targetFilePath.\n"
"@return The bool result of calling exec")
"Resets the importer's import session. All existing import items, logs, etc will be cleared.")
{
return object->resetImportSession(forceResetSession);
}
DefineEngineMethod(AssetImporter, dumpActivityLog, void, (), ,
"Creates a new script asset using the targetFilePath.\n"
"@return The bool result of calling exec")
"Dumps the import activity log. If the importer is set to, it will save to file, otherwise dump to console.")
{
return object->dumpActivityLog();
}
DefineEngineMethod(AssetImporter, getActivityLogLineCount, S32, (),,
"Creates a new script asset using the targetFilePath.\n"
"@return The bool result of calling exec")
"Gets the number of lines in the import activity log.\n"
"@return The number of lines in the import activity log.")
{
return object->getActivityLogLineCount();
}
DefineEngineMethod(AssetImporter, getActivityLogLine, String, (S32 i), (0),
"Creates a new script asset using the targetFilePath.\n"
"@return The bool result of calling exec")
DefineEngineMethod(AssetImporter, getActivityLogLine, String, (S32 index), (0),
"Gets a specific line in the import activity log.\n"
"@param index The index of the line to be returned.\n"
"@return The string of the requested line of the activity log")
{
return object->getActivityLogLine(0);
return object->getActivityLogLine(index);
}
DefineEngineMethod(AssetImporter, autoImportFile, String, (String path, String typeHint), ("", ""),
"Creates a new script asset using the targetFilePath.\n"
"@return The bool result of calling exec")
"Run the full import process on a specific file.\n"
"@return If import is successful, the assetId of the new asset. If it failed, an empty string.")
{
return object->autoImportFile(path, typeHint);
}
DefineEngineMethod(AssetImporter, addImportingFile, AssetImportObject*, (String path), (""),
"Creates a new script asset using the targetFilePath.\n"
"@return The bool result of calling exec")
"Adds a filepath to the current importing session.\n"
"@param path The path to the file to be imported.\n"
"@return The AssetImportObject from the import session.")
{
return object->addImportingFile(path);
}
DefineEngineMethod(AssetImporter, addImportingAssetItem, void, (AssetImportObject* assetItem, AssetImportObject* parentItem), (nullAsType< AssetImportObject*>(), nullAsType< AssetImportObject*>()),
"Creates a new script asset using the targetFilePath.\n"
"@return The bool result of calling exec")
"Adds an existing AssetImportObject to the current improting session.\n"
"@param assetItem The AssetImportObject to be added to the import session.\n"
"@param parentItem An AssetImportObject that to act as the parent of the item being added.")
{
return object->addImportingAssetItem(assetItem, parentItem);
}
DefineEngineMethod(AssetImporter, processImportingAssets, void, (), ,
"Creates a new script asset using the targetFilePath.\n"
"@return The bool result of calling exec")
"Processes the importing assets.")
{
return object->processImportAssets();
}
DefineEngineMethod(AssetImporter, validateImportingAssets, bool, (), ,
"Creates a new script asset using the targetFilePath.\n"
"@return The bool result of calling exec")
DefineEngineMethod(AssetImporter, hasImportIssues, bool, (), ,
"Validates the status of the importing items.\n"
"@return False if there are no issues, true if there are importing issues")
{
return object->validateAssets();
}
DefineEngineMethod(AssetImporter, resolveAssetItemIssues, void, (AssetImportObject* assetItem), (nullAsType< AssetImportObject*>()),
"Creates a new script asset using the targetFilePath.\n"
"@return The bool result of calling exec")
"Runs the issue resolver to attempt to correct any simple issues, such as utilizing the config's settings to resolve collisions.")
{
object->resolveAssetItemIssues(assetItem);
}
DefineEngineMethod(AssetImporter, importAssets, void, (),,
"Creates a new script asset using the targetFilePath.\n"
"@return The bool result of calling exec")
"Runs the actual import action on the items.")
{
return object->importAssets();
}
DefineEngineMethod(AssetImporter, getAssetItemCount, S32, (),,
"Creates a new script asset using the targetFilePath.\n"
"@return The bool result of calling exec")
"Gets the number of importing asset items.\n"
"@return The number of importing asset items")
{
return object->getAssetItemCount();
}
DefineEngineMethod(AssetImporter, getAssetItem, AssetImportObject*, (S32 index), (0),
"Creates a new script asset using the targetFilePath.\n"
"@return The bool result of calling exec")
"Gets a specific import asset item.\n"
"@param index The index of the AssetImportObject to be returned.\n"
"@return AssetImportObject")
{
return object->getAssetItem(index);
}
DefineEngineMethod(AssetImporter, getAssetItemChildCount, S32, (AssetImportObject* assetItem), (nullAsType< AssetImportObject*>()),
"Creates a new script asset using the targetFilePath.\n"
"@return The bool result of calling exec")
"Gets number of child items for a given importing asset item.\n"
"@param assetItem The AssetImportObject to get the number of children of.\n"
"@return The number of child items")
{
if (assetItem == nullptr)
return 0;
@ -121,8 +122,10 @@ DefineEngineMethod(AssetImporter, getAssetItemChildCount, S32, (AssetImportObjec
}
DefineEngineMethod(AssetImporter, getAssetItemChild, AssetImportObject*, (AssetImportObject* assetItem, S32 index), (nullAsType< AssetImportObject*>(), 0),
"Creates a new script asset using the targetFilePath.\n"
"@return The bool result of calling exec")
"Gets a specific child item of a given importing asset item.\n"
"@param assetItem The AssetImportObject to get the child from.\n"
"@param index The index of the child to get.\n"
"@return The child AssetImportObect")
{
if (assetItem == nullptr)
return nullptr;
@ -131,31 +134,15 @@ DefineEngineMethod(AssetImporter, getAssetItemChild, AssetImportObject*, (AssetI
}
DefineEngineMethod(AssetImporter, deleteImportingAsset, void, (AssetImportObject* assetItem), (nullAsType< AssetImportObject*>()),
"Creates a new script asset using the targetFilePath.\n"
"@return The bool result of calling exec")
"Deletes an importing AssetImportObject from the import session.\n"
"@param assetItem The AssetImportObject to delete.")
{
return object->deleteImportingAsset(assetItem);
}
DefineEngineMethod(AssetImporter, setImportConfig, void, (AssetImportConfig* importConfig), (nullAsType< AssetImportConfig*>()),
"Creates a new script asset using the targetFilePath.\n"
"@return The bool result of calling exec")
"Sets the import config to be used via a AssetImportConfig object.\n"
"@param importConfig The AssetImportConfig object to use.")
{
return object->setImportConfig(importConfig);
}
/*DefineEngineFunction(enumColladaForImport, bool, (const char* shapePath, const char* ctrl, bool loadCachedDts), ("", "", true),
"(string shapePath, GuiTreeViewCtrl ctrl) Collect scene information from "
"a COLLADA file and store it in a GuiTreeView control. This function is "
"used by the COLLADA import gui to show a preview of the scene contents "
"prior to import, and is probably not much use for anything else.\n"
"@param shapePath COLLADA filename\n"
"@param ctrl GuiTreeView control to add elements to\n"
"@param loadCachedDts dictates if it should try and load the cached dts file if it exists"
"@return true if successful, false otherwise\n"
"@ingroup Editors\n"
"@internal")
{
return enumColladaForImport(shapePath, ctrl, loadCachedDts);
}*/

View file

@ -98,7 +98,7 @@ SplashData::SplashData()
U32 i;
for (i = 0; i < NUM_TEX; i++)
{
INIT_ASSET_ARRAY(Texture, i);
INIT_IMAGEASSET_ARRAY(Texture, GFXStaticTextureSRGBProfile, i);
}
for( i=0; i<NUM_TIME_KEYS; i++ )

View file

@ -122,7 +122,7 @@ public:
F32 times[ NUM_TIME_KEYS ];
LinearColorF colors[ NUM_TIME_KEYS ];
DECLARE_IMAGEASSET_ARRAY(SplashData, Texture, GFXStaticTextureSRGBProfile, NUM_TEX);
DECLARE_IMAGEASSET_ARRAY(SplashData, Texture, NUM_TEX);
DECLARE_IMAGEASSET_ARRAY_SETGET(SplashData, Texture)
ExplosionData* explosion;

View file

@ -46,7 +46,7 @@ MODULE_BEGIN( 3D )
MODULE_SHUTDOWN_BEFORE( Process )
MODULE_SHUTDOWN_BEFORE( Sim )
MODULE_SHUTDOWN_AFTER( Scene )
MODULE_SHUTDOWN_BEFORE( Scene )
MODULE_INIT
{

View file

@ -731,7 +731,8 @@ void Trigger::potentialEnterObject(GameBase* enter)
if(evalCmD(&mEnterCommand))
{
String command = String("%obj = ") + enter->getIdString() + ";" + mEnterCommand;
String command = String("%obj = ") + enter->getIdString() + ";";
command = command + String("%this = ") + getIdString() + ";" + mEnterCommand;
Con::evaluate(command.c_str());
}
@ -779,7 +780,8 @@ void Trigger::processTick(const Move* move)
if (evalCmD(&mLeaveCommand))
{
String command = String("%obj = ") + remove->getIdString() + ";" + mLeaveCommand;
String command = String("%obj = ") + remove->getIdString() + ";";
command = command + String("%this = ") + getIdString() + ";" + mLeaveCommand;
Con::evaluate(command.c_str());
}
if (testTrippable() && testCondition())

View file

@ -54,6 +54,7 @@
#include "materials/materialFeatureTypes.h"
#include "console/engineAPI.h"
#include "T3D/accumulationVolume.h"
#include "math/mTransform.h"
#include "gui/editor/inspector/group.h"
#include "console/typeValidators.h"
@ -1863,3 +1864,31 @@ void TSStatic::setSelectionFlags(U8 flags)
}
}
void TSStatic::getNodeTransform(const char *nodeName, const MatrixF &xfm, MatrixF *outMat)
{
S32 nodeIDx = getShapeResource()->findNode(nodeName);
MatrixF mountTransform = mShapeInstance->mNodeTransforms[nodeIDx];
mountTransform.mul(xfm);
const Point3F &scale = getScale();
// The position of the mount point needs to be scaled.
Point3F position = mountTransform.getPosition();
position.convolve(scale);
mountTransform.setPosition(position);
// Also we would like the object to be scaled to the model.
outMat->mul(mObjToWorld, mountTransform);
return;
}
DefineEngineMethod(TSStatic, getNodeTransform, TransformF, (const char *nodeName), ,
"@brief Get the world transform of the specified mount slot.\n\n"
"@param slot Image slot to query\n"
"@return the mount transform\n\n")
{
MatrixF xf(true);
object->getNodeTransform(nodeName, MatrixF::Identity, &xf);
return xf;
}

View file

@ -276,6 +276,7 @@ public:
void updateMaterials();
bool isAnimated() { return mPlayAmbient; }
void getNodeTransform(const char *nodeName, const MatrixF &xfm, MatrixF *outMat);
virtual void getUtilizedAssets(Vector<StringTableEntry>* usedAssetsList);

View file

@ -485,6 +485,13 @@ U32 tabComplete(char* inputBuffer, U32 cursorPos, U32 maxResultLength, bool forw
}
completionBaseStart = p;
completionBaseLen = cursorPos - p;
// Bail if we end up at start of string
if (p == 0)
{
return cursorPos;
}
// Is this function being invoked on an object?
if (inputBuffer[p - 1] == '.')
{

View file

@ -2841,3 +2841,21 @@ DefineEngineFunction( getStringHash, S32, (const char* _inString, bool _sensitiv
else
return S32(String(_inString).getHashCaseInsensitive());
}
//-----------------------------------------------------------------------------
DefineEngineFunction(getTimestamp, const char*, (), ,
"Gets datetime string.\n\n"
"@return YYYY-mm-DD_hh-MM-ss formatted date time string.")
{
Torque::Time::DateTime curTime;
Torque::Time::getCurrentDateTime(curTime);
String timestampStr = String::ToString(curTime.year + 1900) + "-" +
String::ToString(curTime.month + 1) + "-" + String::ToString(curTime.day) + "_" +
String::ToString(curTime.hour) + "-" + String::ToString(curTime.minute) + "-" + String::ToString(curTime.second);
const char* returnBuffer = Con::getReturnBuffer(timestampStr);
return returnBuffer;
}

View file

@ -109,7 +109,10 @@ void Tokenizer::setBuffer(const char* buffer, U32 bufferSize)
void Tokenizer::setSingleTokens(const char* singleTokens)
{
if (mSingleTokens)
SAFE_DELETE(mSingleTokens);
{
free(mSingleTokens);
mSingleTokens = NULL;
}
if (singleTokens)
mSingleTokens = dStrdup(singleTokens);

View file

@ -98,6 +98,9 @@ BasicClouds::BasicClouds()
mTexOffset[0].set( 0.5f, 0.5f );
mTexOffset[1].set( 0.5f, 0.5f );
mTexOffset[2].set( 0.5f, 0.5f );
for (U32 i=0; i< TEX_COUNT;i++)
INIT_IMAGEASSET_ARRAY(Texture, GFXStaticTextureSRGBProfile, i);
}
IMPLEMENT_CO_NETOBJECT_V1( BasicClouds );

View file

@ -93,7 +93,7 @@ protected:
static U32 smVertCount;
static U32 smTriangleCount;
DECLARE_IMAGEASSET_ARRAY(BasicClouds, Texture, GFXStaticTextureSRGBProfile, TEX_COUNT);
DECLARE_IMAGEASSET_ARRAY(BasicClouds, Texture, TEX_COUNT);
DECLARE_IMAGEASSET_ARRAY_NET_SETGET(BasicClouds, Texture, -1);
GFXStateBlockRef mStateblock;
@ -122,4 +122,4 @@ protected:
};
#endif // _BASICCLOUDS_H_
#endif // _BASICCLOUDS_H_

View file

@ -44,7 +44,7 @@ CubemapData::CubemapData()
for (U32 i = 0; i < 6; i++)
{
INIT_ASSET_ARRAY(CubeMapFace, i);
INIT_IMAGEASSET_ARRAY(CubeMapFace, GFXStaticTextureSRGBProfile, i);
}
INIT_ASSET(CubeMap);

View file

@ -76,7 +76,7 @@ protected:
DECLARE_IMAGEASSET(CubemapData, CubeMap, onCubemapChanged, GFXStaticTextureSRGBProfile);
DECLARE_ASSET_SETGET(CubemapData, CubeMap);
DECLARE_IMAGEASSET_ARRAY(CubemapData, CubeMapFace, GFXStaticTextureSRGBProfile, 6);
DECLARE_IMAGEASSET_ARRAY(CubemapData, CubeMapFace, 6);
DECLARE_IMAGEASSET_ARRAY_SETGET(CubemapData, CubeMapFace);
GFXTexHandle mDepthBuff;

View file

@ -42,7 +42,7 @@ private:
protected:
DECLARE_IMAGEASSET(GuiIconButtonCtrl, Bitmap, onImageChanged, GFXTexturePersistentSRGBProfile);
DECLARE_IMAGEASSET(GuiIconButtonCtrl, Bitmap, onImageChanged, GFXDefaultGUIProfile);
DECLARE_ASSET_SETGET(GuiIconButtonCtrl, Bitmap);
S32 mIconLocation;

View file

@ -39,11 +39,11 @@ private:
protected:
DECLARE_IMAGEASSET(GuiToolboxButtonCtrl, NormalBitmap, onNormalImageChanged, GFXTexturePersistentSRGBProfile);
DECLARE_IMAGEASSET(GuiToolboxButtonCtrl, NormalBitmap, onNormalImageChanged, GFXDefaultGUIProfile);
DECLARE_ASSET_SETGET(GuiToolboxButtonCtrl, NormalBitmap);
DECLARE_IMAGEASSET(GuiToolboxButtonCtrl, LoweredBitmap, onLoweredImageChanged, GFXTexturePersistentSRGBProfile);
DECLARE_IMAGEASSET(GuiToolboxButtonCtrl, LoweredBitmap, onLoweredImageChanged, GFXDefaultGUIProfile);
DECLARE_ASSET_SETGET(GuiToolboxButtonCtrl, LoweredBitmap);
DECLARE_IMAGEASSET(GuiToolboxButtonCtrl, HoverBitmap, onHoverImageChanged, GFXTexturePersistentSRGBProfile);
DECLARE_IMAGEASSET(GuiToolboxButtonCtrl, HoverBitmap, onHoverImageChanged, GFXDefaultGUIProfile);
DECLARE_ASSET_SETGET(GuiToolboxButtonCtrl, HoverBitmap);
void renderButton(GFXTexHandle &texture, Point2I &offset, const RectI& updateRect);

View file

@ -543,7 +543,8 @@ Point2I GuiGameListMenuCtrl::getMinExtent() const
{
Point2I parentMin = Parent::getMinExtent();
GuiGameListMenuProfile * profile = (GuiGameListMenuProfile *) mProfile;
GuiGameListMenuProfile * profile = dynamic_cast<GuiGameListMenuProfile*>(mProfile);
AssertFatal(profile, "Invalid profile for GuiGameListMenuCtrl!");
S32 minHeight = 0;
S32 rowHeight = profile->getRowHeight();
@ -632,10 +633,13 @@ void GuiGameListMenuCtrl::enforceConstraints()
void GuiGameListMenuCtrl::updateHeight()
{
S32 minHeight = getMinExtent().y;
if (getHeight() < minHeight)
if (hasValidProfile())
{
setHeight(minHeight);
S32 minHeight = getMinExtent().y;
if (getHeight() < minHeight)
{
setHeight(minHeight);
}
}
}

View file

@ -278,8 +278,8 @@ GuiPopUpMenuCtrl::GuiPopUpMenuCtrl(void)
mBackgroundCancel = false; // Added
mReverseTextList = false; // Added - Don't reverse text list if displaying up
INIT_ASSET_ARRAY(Bitmap, 0);
INIT_ASSET_ARRAY(Bitmap, 1);
INIT_IMAGEASSET_ARRAY(Bitmap, GFXDefaultGUIProfile, 0);
INIT_IMAGEASSET_ARRAY(Bitmap, GFXDefaultGUIProfile, 1);
mBitmapBounds.set(16, 16); // Added
mIdMax = -1;

View file

@ -126,7 +126,7 @@ protected:
NumBitmapModes = 2
};
DECLARE_IMAGEASSET_ARRAY(GuiPopUpMenuCtrl, Bitmap, GFXDefaultGUIProfile, NumBitmapModes);
DECLARE_IMAGEASSET_ARRAY(GuiPopUpMenuCtrl, Bitmap, NumBitmapModes);
DECLARE_IMAGEASSET_ARRAY_SETGET(GuiPopUpMenuCtrl, Bitmap);
Point2I mBitmapBounds; // Added

View file

@ -329,8 +329,8 @@ GuiPopUpMenuCtrlEx::GuiPopUpMenuCtrlEx(void)
mBackgroundCancel = false; // Added
mReverseTextList = false; // Added - Don't reverse text list if displaying up
INIT_ASSET_ARRAY(Bitmap, Normal);
INIT_ASSET_ARRAY(Bitmap, Depressed);
INIT_IMAGEASSET_ARRAY(Bitmap, GFXDefaultGUIProfile, Normal);
INIT_IMAGEASSET_ARRAY(Bitmap, GFXDefaultGUIProfile, Depressed);
mBitmapBounds.set(16, 16); // Added
mHotTrackItems = false;

View file

@ -127,7 +127,7 @@ class GuiPopUpMenuCtrlEx : public GuiTextCtrl
NumBitmapModes = 2
};
DECLARE_IMAGEASSET_ARRAY(GuiPopUpMenuCtrlEx, Bitmap, GFXDefaultGUIProfile, NumBitmapModes);
DECLARE_IMAGEASSET_ARRAY(GuiPopUpMenuCtrlEx, Bitmap, NumBitmapModes);
DECLARE_IMAGEASSET_ARRAY_SETGET(GuiPopUpMenuCtrlEx, Bitmap);
Point2I mBitmapBounds; // Added

View file

@ -1880,7 +1880,7 @@ bool GuiTreeViewCtrl::buildIconTable(const char * icons)
dStrncpy( buf, start, getMin( sizeof( buf ) / sizeof( buf[ 0 ] ) - 1, len ) );
buf[ len ] = '\0';
mIconTable[ numIcons ] = GFXTexHandle( buf, &GFXTexturePersistentProfile, avar( "%s() - mIconTable[%d] (line %d)", __FUNCTION__, numIcons, __LINE__ ) );
mIconTable[ numIcons ] = GFXTexHandle( buf, &GFXDefaultGUIProfile, avar( "%s() - mIconTable[%d] (line %d)", __FUNCTION__, numIcons, __LINE__ ) );
}
else
mIconTable[ numIcons ] = GFXTexHandle();

View file

@ -68,7 +68,7 @@ GFX_ImplementTextureProfile(GFXGuiCursorProfile,
GFX_ImplementTextureProfile(GFXDefaultGUIProfile,
GFXTextureProfile::DiffuseMap,
GFXTextureProfile::PreserveSize |
GFXTextureProfile::Static | GFXTextureProfile::SRGB |
GFXTextureProfile::Static | GFXTextureProfile::KeepBitmap | GFXTextureProfile::SRGB |
GFXTextureProfile::NoPadding,
GFXTextureProfile::NONE);

View file

@ -455,7 +455,7 @@ public:
StringTableEntry mBitmapName;
StringTableEntry mBitmapAssetId;
AssetPtr<ImageAsset> mBitmapAsset;
GFXTextureProfile* mBitmapProfile = &GFXTexturePersistentSRGBProfile;
GFXTextureProfile* mBitmapProfile = &GFXDefaultGUIProfile;
public:
const StringTableEntry getBitmapFile() const { return mBitmapName; }
void setBitmapFile(const FileName& _in) { mBitmapName = StringTable->insert(_in.c_str()); }

View file

@ -25,7 +25,7 @@
#include "console/engineAPI.h"
#include "console/simBase.h"
#include "gui/core/guiTypes.h"
EditorIconRegistry gEditorIcons;
@ -60,7 +60,7 @@ void EditorIconRegistry::loadFromPath( const String &path, bool overwrite )
String defaultIconFile = path + "default";
mDefaultIcon.set( defaultIconFile,
&GFXTexturePersistentSRGBProfile,
&GFXDefaultGUIProfile,
avar("%s() - mIcons[] (line %d)",
__FUNCTION__, __LINE__) );
}
@ -68,7 +68,7 @@ void EditorIconRegistry::loadFromPath( const String &path, bool overwrite )
void EditorIconRegistry::add( const String &className, const String &imageFile, bool overwrite )
{
// First see if we can load the image.
GFXTexHandle icon( imageFile, &GFXTexturePersistentSRGBProfile,
GFXTexHandle icon( imageFile, &GFXDefaultGUIProfile,
avar("%s() - mIcons[] (line %d)", __FUNCTION__, __LINE__) );
if ( icon.isNull() )
return;

View file

@ -63,7 +63,7 @@ protected:
GFXStateBlockRef mBlendStateBlock;
GFXStateBlockRef mSolidStateBlock;
DECLARE_IMAGEASSET(GuiMissionAreaCtrl, HandleBitmap, onHandleBitmapChanged, GFXTexturePersistentSRGBProfile);
DECLARE_IMAGEASSET(GuiMissionAreaCtrl, HandleBitmap, onHandleBitmapChanged, GFXDefaultGUIProfile);
DECLARE_ASSET_SETGET(GuiMissionAreaCtrl, HandleBitmap);
Point2I mHandleTextureSize;

View file

@ -142,18 +142,18 @@ Material::Material()
mAccuCoverage[i] = 0.9f;
mAccuSpecular[i] = 16.0f;
INIT_ASSET_ARRAY(DiffuseMap, i);
INIT_ASSET_ARRAY(OverlayMap, i);
INIT_ASSET_ARRAY(LightMap, i);
INIT_ASSET_ARRAY(ToneMap, i);
INIT_ASSET_ARRAY(DetailMap, i);
INIT_ASSET_ARRAY(NormalMap, i);
INIT_ASSET_ARRAY(ORMConfigMap, i);
INIT_ASSET_ARRAY(RoughMap, i);
INIT_ASSET_ARRAY(AOMap, i);
INIT_ASSET_ARRAY(MetalMap, i);
INIT_ASSET_ARRAY(GlowMap, i);
INIT_ASSET_ARRAY(DetailNormalMap, i);
INIT_IMAGEASSET_ARRAY(DiffuseMap, GFXStaticTextureSRGBProfile, i);
INIT_IMAGEASSET_ARRAY(OverlayMap, GFXStaticTextureProfile, i);
INIT_IMAGEASSET_ARRAY(LightMap, GFXStaticTextureProfile, i);
INIT_IMAGEASSET_ARRAY(ToneMap, GFXStaticTextureProfile, i);
INIT_IMAGEASSET_ARRAY(DetailMap, GFXStaticTextureProfile, i);
INIT_IMAGEASSET_ARRAY(NormalMap, GFXNormalMapProfile, i);
INIT_IMAGEASSET_ARRAY(ORMConfigMap, GFXStaticTextureProfile, i);
INIT_IMAGEASSET_ARRAY(RoughMap, GFXStaticTextureProfile, i);
INIT_IMAGEASSET_ARRAY(AOMap, GFXStaticTextureProfile, i);
INIT_IMAGEASSET_ARRAY(MetalMap, GFXStaticTextureProfile, i);
INIT_IMAGEASSET_ARRAY(GlowMap, GFXStaticTextureProfile, i);
INIT_IMAGEASSET_ARRAY(DetailNormalMap, GFXNormalMapProfile, i);
mParallaxScale[i] = 0.0f;

View file

@ -207,49 +207,49 @@ public:
//-----------------------------------------------------------------------
// Data
//-----------------------------------------------------------------------
DECLARE_IMAGEASSET_ARRAY(Material, DiffuseMap, GFXStaticTextureSRGBProfile, MAX_STAGES);
DECLARE_IMAGEASSET_ARRAY(Material, DiffuseMap, MAX_STAGES);
DECLARE_IMAGEASSET_ARRAY_SETGET(Material, DiffuseMap);
bool mDiffuseMapSRGB[MAX_STAGES]; // SRGB diffuse
DECLARE_IMAGEASSET_ARRAY(Material, OverlayMap, GFXStaticTextureProfile, MAX_STAGES);
DECLARE_IMAGEASSET_ARRAY(Material, OverlayMap, MAX_STAGES);
DECLARE_IMAGEASSET_ARRAY_SETGET(Material, OverlayMap);
DECLARE_IMAGEASSET_ARRAY(Material, LightMap, GFXStaticTextureProfile, MAX_STAGES);
DECLARE_IMAGEASSET_ARRAY(Material, LightMap, MAX_STAGES);
DECLARE_IMAGEASSET_ARRAY_SETGET(Material, LightMap);
DECLARE_IMAGEASSET_ARRAY(Material, ToneMap, GFXStaticTextureProfile, MAX_STAGES);
DECLARE_IMAGEASSET_ARRAY(Material, ToneMap, MAX_STAGES);
DECLARE_IMAGEASSET_ARRAY_SETGET(Material, ToneMap);
DECLARE_IMAGEASSET_ARRAY(Material, DetailMap, GFXStaticTextureProfile, MAX_STAGES);
DECLARE_IMAGEASSET_ARRAY(Material, DetailMap, MAX_STAGES);
DECLARE_IMAGEASSET_ARRAY_SETGET(Material, DetailMap);
DECLARE_IMAGEASSET_ARRAY(Material, NormalMap, GFXNormalMapProfile, MAX_STAGES);
DECLARE_IMAGEASSET_ARRAY(Material, NormalMap, MAX_STAGES);
DECLARE_IMAGEASSET_ARRAY_SETGET(Material, NormalMap);
DECLARE_IMAGEASSET_ARRAY(Material, ORMConfigMap, GFXStaticTextureProfile, MAX_STAGES);
DECLARE_IMAGEASSET_ARRAY(Material, ORMConfigMap, MAX_STAGES);
DECLARE_IMAGEASSET_ARRAY_SETGET(Material, ORMConfigMap);
bool mIsSRGb[MAX_STAGES];
DECLARE_IMAGEASSET_ARRAY(Material, RoughMap, GFXStaticTextureProfile, MAX_STAGES);
DECLARE_IMAGEASSET_ARRAY(Material, RoughMap, MAX_STAGES);
DECLARE_IMAGEASSET_ARRAY_SETGET(Material, RoughMap);
bool mInvertRoughness[MAX_STAGES];
F32 mRoughnessChan[MAX_STAGES];
DECLARE_IMAGEASSET_ARRAY(Material, AOMap, GFXStaticTextureProfile, MAX_STAGES);
DECLARE_IMAGEASSET_ARRAY(Material, AOMap, MAX_STAGES);
DECLARE_IMAGEASSET_ARRAY_SETGET(Material, AOMap);
F32 mAOChan[MAX_STAGES];
DECLARE_IMAGEASSET_ARRAY(Material, MetalMap, GFXStaticTextureProfile, MAX_STAGES);
DECLARE_IMAGEASSET_ARRAY(Material, MetalMap, MAX_STAGES);
DECLARE_IMAGEASSET_ARRAY_SETGET(Material, MetalMap);
F32 mMetalChan[MAX_STAGES];
DECLARE_IMAGEASSET_ARRAY(Material, GlowMap, GFXStaticTextureProfile, MAX_STAGES);
DECLARE_IMAGEASSET_ARRAY(Material, GlowMap, MAX_STAGES);
DECLARE_IMAGEASSET_ARRAY_SETGET(Material, GlowMap);
F32 mGlowMul[MAX_STAGES];
/// A second normal map which repeats at the detail map
/// scale and blended with the base normal map.
DECLARE_IMAGEASSET_ARRAY(Material, DetailNormalMap, GFXNormalMapProfile, MAX_STAGES);
DECLARE_IMAGEASSET_ARRAY(Material, DetailNormalMap, MAX_STAGES);
DECLARE_IMAGEASSET_ARRAY_SETGET(Material, DetailNormalMap);
/// The strength scalar for the detail normal map.

View file

@ -35,7 +35,7 @@ void TamlWriteNode::resetNode( void )
// Clear fields.
for( Vector<TamlWriteNode::FieldValuePair*>::iterator itr = mFields.begin(); itr != mFields.end(); ++itr )
{
delete (*itr)->mpValue;
delete[] (*itr)->mpValue;
}
mFields.clear();

View file

@ -79,7 +79,7 @@ inline bool dCompareAndSwap( volatile U64& ref, U64 oldVal, U64 newVal )
inline U32 dAtomicRead( volatile U32 &ref )
{
#if !defined(TORQUE_OS_MAC)
return __sync_fetch_and_add( ( volatile long* ) &ref, 0 );
return __sync_fetch_and_add( &ref, 0 );
#else
return OSAtomicAdd32( 0, (int32_t* ) &ref);
#endif

View file

@ -76,6 +76,7 @@
extern int x86UNIXClose(int fd);
extern ssize_t x86UNIXRead(int fd, void *buf, size_t nbytes);
extern ssize_t x86UNIXWrite(int fd, const void *buf, size_t nbytes);
extern bool ResolvePathCaseInsensitive(char* pathName, S32 pathNameSize, bool requiredAbsolute);
const int MaxPath = PATH_MAX;

View file

@ -508,7 +508,7 @@ PostEffect::PostEffect()
for (U32 i = 0; i < NumTextures; i++)
{
INIT_ASSET_ARRAY(Texture, i);
INIT_IMAGEASSET_ARRAY(Texture, PostFxTextureProfile, i);
}
}
@ -602,9 +602,19 @@ bool PostEffect::onAdd()
scriptPath.setExtension( String::EmptyString );
// Find additional textures
for( S32 i = 0; i < NumTextures; i++ )
for (S32 i = 0; i < NumTextures; i++)
{
mTextureType[i] = NormalTextureType;
String texFilename = getTexture(i);
// Skip empty stages or ones with variable or target names.
if (texFilename.isEmpty() ||
texFilename[0] == '$' ||
texFilename[0] == '#')
continue;
mTextureProfile[i] = (mTexSRGB[i]) ? &PostFxTextureSRGBProfile : &PostFxTextureProfile;
_setTexture(texFilename, i);
}
// Is the target a named target?
@ -1112,7 +1122,7 @@ void PostEffect::_setupConstants( const SceneRenderState *state )
void PostEffect::_setupTexture( U32 stage, GFXTexHandle &inputTex, const RectI *inTexViewport )
{
const String &texFilename = mTextureName[ stage ];
const String &texFilename = getTexture( stage );
GFXTexHandle theTex;
NamedTexTarget *namedTarget = NULL;
@ -1625,12 +1635,8 @@ void PostEffect::setTexture( U32 index, const String &texFilePath )
texFilePath[0] == '#' )
return;
GFXTextureProfile* profile = &PostFxTextureProfile;
if (mTexSRGB[index])
profile = &PostFxTextureSRGBProfile;
// Try to load the texture.
mTexture[index].set( texFilePath, profile, avar( "%s() - (line %d)", __FUNCTION__, __LINE__ ) );
mTextureProfile[index] = (mTexSRGB[index])? &PostFxTextureSRGBProfile : &PostFxTextureProfile;
_setTexture(texFilePath, index);
mTextureType[index] = NormalTextureType;
}

View file

@ -90,7 +90,7 @@ public:
protected:
DECLARE_IMAGEASSET_ARRAY(PostEffect, Texture, PostFxTextureProfile, NumTextures);
DECLARE_IMAGEASSET_ARRAY(PostEffect, Texture, NumTextures);
DECLARE_IMAGEASSET_ARRAY_SETGET(PostEffect, Texture);
bool mTexSRGB[NumTextures];

View file

@ -49,7 +49,7 @@ extern bool gEditingMission;
MODULE_BEGIN( Scene )
MODULE_INIT_AFTER( Sim )
MODULE_SHUTDOWN_BEFORE( Sim )
MODULE_SHUTDOWN_AFTER( Sim )
MODULE_INIT
{

View file

@ -425,6 +425,7 @@ bool AssimpShapeLoader::fillGuiTreeView(const char* sourceShapePath, GuiTreeView
void AssimpShapeLoader::updateMaterialsScript(const Torque::Path &path)
{
return;
Torque::Path scriptPath(path);
scriptPath.setFileName("materials");
scriptPath.setExtension(TORQUE_SCRIPT_EXTENSION);

View file

@ -461,6 +461,8 @@ void updateMaterialsScript(const Torque::Path &path, bool copyTextures = false)
return;
#endif
return;
Torque::Path scriptPath(path);
scriptPath.setFileName("materials");
scriptPath.setExtension(TORQUE_SCRIPT_EXTENSION);

View file

@ -1583,7 +1583,9 @@ bool TSShape::addSequence(const Torque::Path& path, const String& fromSeq,
Con::errorf("%s groundTranslations out of bounds! [%i/%i] ", path.getFullPath().c_str(), groundBase + i, srcShape->groundTranslations.size());
offset = srcShape->groundTranslations.size() - 1;
}
groundTranslations.push_back(srcShape->groundTranslations[offset]);
const Point3F pointValueToCopy = srcShape->groundTranslations[offset];
groundTranslations.push_back(pointValueToCopy);
S32 offset2 = groundBase + i;
if (offset2 >= srcShape->groundRotations.size())
@ -1591,7 +1593,9 @@ bool TSShape::addSequence(const Torque::Path& path, const String& fromSeq,
Con::errorf("%s groundRotations out of bounds! [%i/%i] ", path.getFullPath().c_str(), groundBase + i, srcShape->groundRotations.size());
offset2 = srcShape->groundRotations.size() - 1;
}
groundRotations.push_back(srcShape->groundRotations[offset2]);
const Quat16 quatValueToCopy = srcShape->groundRotations[offset2];
groundRotations.push_back(quatValueToCopy);
}
// Add triggers

View file

@ -85,8 +85,6 @@ function ImportAssetWindow::onWake(%this)
%this.importer.targetPath = AssetImportTargetAddress.getText();
%this.importer.targetModuleId = AssetImportTargetModule.getText();
ImportActivityLog.empty();
%this.refresh();
}
@ -519,7 +517,8 @@ function ImportAssetWindow::doRefresh(%this)
if(ImportAssetWindow.importConfigsList.count() != 0
&& EditorSettings.value("Assets/AssetImporDefaultConfig") !$= ""
&& EditorSettings.value("Assets/AutoImport", false) == true
&& ImportAssetWindow.hasImportIssues == false
&& ImportAssetWindow.hasImportIssues() == false
&& AssetBrowser.isAssetReImport == false
&& ImportAssetWindow.allowAutoImport)
{
AssetImportCtrl.setHidden(true);
@ -722,11 +721,7 @@ function NewAssetsPanelInputs::onRightMouseDown(%this)
//
function ImportAssetWindow::removeImportingAsset(%this)
{
ImportActivityLog.add("Removing Asset from Import");
%this.importer.deleteImportingAsset(ImportAssetActions.assetItem);
//ImportAssetWindow.refresh();
}
function ImportAssetWindow::addNewImportingAsset(%this, %filterType)
@ -924,9 +919,9 @@ function ImportAssetWindow::toggleLogWindow()
}
ImportLogTextList.clear();
for(%i=0; %i < ImportActivityLog.count(); %i++)
for(%i=0; %i < ImportAssetWindow.importer.getActivityLogLineCount(); %i++)
{
ImportLogTextList.addRow(%i, ImportActivityLog.getKey(%i));
ImportLogTextList.addRow(%i,ImportAssetWindow.importer.getActivityLogLine(%i));
}
}
//

View file

@ -3,12 +3,6 @@ function ImportAssetConfigList::onSelect( %this, %id, %text )
//Apply our settings to the assets
echo("Changed our import config!");
if(ImportActivityLog.count() != 0)
ImportActivityLog.add("");
ImportActivityLog.add("Asset Import Configs set to " @ %text);
ImportActivityLog.add("");
ImportAssetWindow.activeImportConfigIndex = %id;
//ImportAssetWindow.activeImportConfig = ImportAssetWindow.importConfigsList.getKey(%id);
@ -236,12 +230,6 @@ function ImportAssetOptionsWindow::saveAssetOptions(%this)
{
%success = AssetImportSettings.write();
if(ImportActivityLog.count() != 0)
ImportActivityLog.add("");
ImportActivityLog.add("Asset Import Configs saved, refreshing Import session");
ImportActivityLog.add("");
ImportAssetWindow.refresh();
ImportAssetOptionsWindow.setVisible(0);
}

View file

@ -41,6 +41,7 @@ function initializeProjectImporter()
//Input::GetEventManager().subscribe( ProjectImportCtrl, "EndDropFiles" );
$ProjectImporter::importer = new AssetImporter();
$ProjectImporter::importer.dumpLogs = false; //we'll handle the log files ourselves
%importConfig = new AssetImportConfig();
%importConfig.loadImportConfig(AssetImportSettings, "LegacyProjectImport");

View file

@ -2,7 +2,7 @@ function T3Dpre4ProjectImporter::setupModule(%this)
{
%newModuleName = $ProjectImporter::moduleName;
echo("Creating a new Module named: " @ %newModuleName);
$ProjectImporter::log.add("Creating a new Module named: " @ %newModuleName);
%moduleFilePath = "data/" @ %newModuleName;
%moduleDefinitionFilePath = %moduleFilePath @ "/" @ %newModuleName @ ".module";
@ -40,7 +40,7 @@ function T3Dpre4ProjectImporter::setupModule(%this)
%line = strreplace( %line, "@@", %newModuleName );
%file.writeline(%line);
echo(%line);
//$ProjectImporter::log.add(%line);
}
%file.close();
@ -51,7 +51,7 @@ function T3Dpre4ProjectImporter::setupModule(%this)
%file.close();
%templateFile.close();
warnf("CreateNewModule - Something went wrong and we couldn't write the script file!");
$ProjectImporter::log.add("CreateNewModule - Something went wrong and we couldn't write the script file!");
}
//force a refresh of our modules list
@ -126,7 +126,7 @@ function T3Dpre4ProjectImporter::copyFiles(%this)
if(!pathCopy(%file, %targetFilePath, false))
{
error("Legacy Project Importer, failed to copy file: " @ %file @ " to destination: " @ %targetFilePath);
$ProjectImporter::log.add("Legacy Project Importer, failed to copy file: " @ %file @ " to destination: " @ %targetFilePath);
}
%file = findNextFileMultiExpr( $ProjectImporter::sourceContentFolder @ "/*.*" );
@ -206,7 +206,7 @@ function T3Dpre4ProjectImporter::beginMaterialFilesImport(%this)
%objectClassStack = new ArrayObject();
%fileOutputLines = new ArrayObject();
echo("Legacy Project Importer - Beginning processing of imported code files");
$ProjectImporter::log.add("Legacy Project Importer - Beginning processing of imported code files");
//Walk through and process all code files to update references
while( %file !$= "" )
@ -225,7 +225,7 @@ function T3Dpre4ProjectImporter::beginMaterialFilesImport(%this)
if ( $ProjectImporter::fileObject.openForRead( %file ) )
{
echo("Legacy Project Importer - Beginning process of file: " @ %file);
$ProjectImporter::log.add("Legacy Project Importer - Beginning process of file: " @ %file);
%lineNum = 0;
while ( !$ProjectImporter::fileObject.isEOF() )
{
@ -376,7 +376,7 @@ function T3Dpre4ProjectImporter::beginMaterialFilesImport(%this)
}
else
{
error("Legacy Project Importer - File not able to be opened: " @ %file);
$ProjectImporter::log.add("Legacy Project Importer - File not able to be opened: " @ %file);
}
if(%fileWasChanged)
@ -399,7 +399,7 @@ function T3Dpre4ProjectImporter::beginMaterialFilesImport(%this)
%file = findNextFileMultiExpr( $ProjectImporter::modulePath @ "/*/materials.*" );
}
echo("Legacy Project Importer - Processing of imported code files done!");
$ProjectImporter::log.add("Legacy Project Importer - Processing of imported code files done!");
%fileOutputLines.delete();
%objectClassStack.delete();
@ -418,7 +418,7 @@ function T3Dpre4ProjectImporter::beginCodeFilesImport(%this)
%objectClassStack = new ArrayObject();
%fileOutputLines = new ArrayObject();
echo("Legacy Project Importer - Beginning processing of imported code files");
$ProjectImporter::log.add("Legacy Project Importer - Beginning processing of imported code files");
//Walk through and process all code files to update references
while( %file !$= "" )
@ -454,7 +454,7 @@ function T3Dpre4ProjectImporter::beginCodeFilesImport(%this)
if ( $ProjectImporter::fileObject.openForRead( %file ) )
{
echo("Legacy Project Importer - Beginning process of file: " @ %file);
$ProjectImporter::log.add("Legacy Project Importer - Beginning process of file: " @ %file);
%lineNum = 0;
while ( !$ProjectImporter::fileObject.isEOF() )
{
@ -702,7 +702,7 @@ function T3Dpre4ProjectImporter::beginCodeFilesImport(%this)
}
else
{
error("Legacy Project Importer - File not able to be opened: " @ %file);
$ProjectImporter::log.add("Legacy Project Importer - File not able to be opened: " @ %file);
}
if(%fileWasChanged)
@ -725,7 +725,7 @@ function T3Dpre4ProjectImporter::beginCodeFilesImport(%this)
%file = findNextFileMultiExpr( $ProjectImporter::modulePath @ "/*.*" );
}
echo("Legacy Project Importer - Processing of imported code files done!");
$ProjectImporter::log.add("Legacy Project Importer - Processing of imported code files done!");
//exec common loader files, process the remainder into assets
@ -747,7 +747,7 @@ function T3Dpre4ProjectImporter::processScriptExtensions(%this)
else
%file = findFirstFileMultiExpr( $ProjectImporter::modulePath @ "/*/*.tscript", true);
echo("Legacy Project Importer - Beginning processing of script files that utilize extensions other than: " @ $TorqueScriptFileExtension);
$ProjectImporter::log.add("Legacy Project Importer - Beginning processing of script files that utilize extensions other than: " @ $TorqueScriptFileExtension);
//Walk through and process all code files to update references
while( %file !$= "" )
@ -767,13 +767,13 @@ function T3Dpre4ProjectImporter::processScriptExtensions(%this)
%targetFilePath = %filePath @ "/" @ %fileBase @ "." @ $TorqueScriptFileExtension;
if(!pathCopy(%file, %targetFilePath))
{
error("T3Dpre4ProjectImporter::processScriptExtensions() - Failed to create renamed script file for file: " @ %file);
$ProjectImporter::log.add("T3Dpre4ProjectImporter::processScriptExtensions() - Failed to create renamed script file for file: " @ %file);
}
else
{
if(!fileDelete(%file))
{
error("T3Dpre4ProjectImporter::processScriptExtensions() - Failed to remove old script file for rename: " @ %file);
$ProjectImporter::log.add("T3Dpre4ProjectImporter::processScriptExtensions() - Failed to remove old script file for rename: " @ %file);
}
}
@ -789,7 +789,7 @@ function T3Dpre4ProjectImporter::processScriptExtensions(%this)
ProjectImportWindow-->nextButton.setActive(true);
Canvas.repaint();
echo("Legacy Project Importer - Beginning processing of script files extensions complete");
$ProjectImporter::log.add("Legacy Project Importer - Beginning processing of script files extensions complete");
}
//To implement a custom class to have it's fields processed, just utilize this template function
@ -986,7 +986,7 @@ function T3Dpre4ProjectImporter::processMaterialObject(%this, %file, %objectName
if(isFile(%tamlpath))
{
error("T3Dpre4ProjectImporter::processMaterialObject() - Failed to create as taml file already exists: " @ %file);
$ProjectImporter::log.add("T3Dpre4ProjectImporter::processMaterialObject() - Failed to create as taml file already exists: " @ %file);
return false;
}
@ -1042,7 +1042,7 @@ function T3Dpre4ProjectImporter::processTerrainMaterialObject(%this, %file, %obj
if(isFile(%tamlpath))
{
error("T3Dpre4ProjectImporter::processTerrainMaterialObject() - Failed to create as taml file already exists: " @ %file);
$ProjectImporter::log.add("T3Dpre4ProjectImporter::processTerrainMaterialObject() - Failed to create as taml file already exists: " @ %file);
return false;
}
@ -1098,7 +1098,7 @@ function T3Dpre4ProjectImporter::processSFXProfileObject(%this, %file, %objectNa
//Throw a warn that this file's already been claimed and move on
if(%soundAsset !$= "")
{
warn("T3Dpre4ProjectImporter::processSFXProfileObject() - attempting to process SFXProfile " @ %objectName
$ProjectImporter::log.add("T3Dpre4ProjectImporter::processSFXProfileObject() - attempting to process SFXProfile " @ %objectName
@ " but its filename is already associated to another sound asset. Continuing, but be aware.");
}
@ -1112,7 +1112,7 @@ function T3Dpre4ProjectImporter::processSFXProfileObject(%this, %file, %objectNa
if(isFile(%tamlpath))
{
error("T3Dpre4ProjectImporter::processSFXProfileObject() - Failed to create as taml file already exists: " @ %soundFilename);
$ProjectImporter::log.add("T3Dpre4ProjectImporter::processSFXProfileObject() - Failed to create as taml file already exists: " @ %soundFilename);
return false;
}
@ -1274,7 +1274,7 @@ function processGuiBitmapButtonCtrlField(%line, %originalFieldName, %newFieldNam
if(%outLine !$= %line && %pos != -1 && %endPos != -1 && %value !$= "")
{
echo("Legacy Project Importer - processing legacy field line: " @ %line);
$ProjectImporter::log.add("Legacy Project Importer - processing legacy field line: " @ %line);
if(startsWith(%value, "$") || startsWith(%value, "#"))
{
@ -1287,7 +1287,7 @@ function processGuiBitmapButtonCtrlField(%line, %originalFieldName, %newFieldNam
//If we still have nothing, then we fail it out
if(!isFile(%targetFilename))
{
error("Legacy Project Importer - file described in line could not be found/is not valid");
$ProjectImporter::log.add("Legacy Project Importer - file described in line could not be found/is not valid");
return %line;
}
@ -1296,7 +1296,7 @@ function processGuiBitmapButtonCtrlField(%line, %originalFieldName, %newFieldNam
if(%foundAssets != 0)
{
%assetId = $ProjectImporter::assetQuery.getAsset(0);
echo("Legacy Project Importer - processing of legacy field line's value: " @ %value @ " has found a matching AssetId: " @ %assetId);
$ProjectImporter::log.add("Legacy Project Importer - processing of legacy field line's value: " @ %value @ " has found a matching AssetId: " @ %assetId);
}
if(%assetId !$= "" && AssetDatabase.isDeclaredAsset(%assetId))
@ -1310,7 +1310,7 @@ function processGuiBitmapButtonCtrlField(%line, %originalFieldName, %newFieldNam
if(%outLine !$= %line)
{
echo("Legacy Project Importer - processing of legacy line: " @ %line @ " has been updated to: " @ %outLine);
$ProjectImporter::log.add("Legacy Project Importer - processing of legacy line: " @ %line @ " has been updated to: " @ %outLine);
return %outLine;
}
else

View file

@ -10,6 +10,11 @@ function ProjectImportWindow::onWake(%this)
if(!isObject($ProjectImporter::fileObject))
$ProjectImporter::fileObject = new FileObject();
if(!isObject($ProjectImporter::log))
$ProjectImporter::log = new ArrayObject();
else
$ProjectImporter::log.empty();
%this.importStepNumber = 0;
%this-->stepsList.clear();
%this-->stepsList.addRow(0, "Welcome");
@ -352,16 +357,33 @@ function ProjectImportWizardPage6::processPage(%this)
function ProjectImportWizardPage7::openPage(%this)
{
//writing console log
%logFileObj = new FileObject();
%logFileName = "tools/logs/LegacyProjectImport_" @ getTimestamp() @ ".log";
if(%logFileObj.openForWrite(%logFileName))
{
for(%i=0; %i < $ProjectImporter::log.count(); %i++)
{
%logFileObj.writeLine($ProjectImporter::log.getKey(%i));
}
%logFileObj.close();
}
%logFileObj.delete();
}
function beginProjectImport()
{
echo("===========================================");
echo("Beginning Project Import");
echo("===========================================");
$ProjectImporter::log.add("===========================================");
$ProjectImporter::log.add("Beginning Project Import");
$ProjectImporter::log.add("===========================================");
$ProjectImporter::assetQuery = new AssetQuery();
$ProjectImporter::importer = new AssetImporter();
$ProjectImporter::importer.dumpLogs = false; //we handle the log dump outselves here
$ProjectImporter::persistMgr = new PersistenceManager();
//beginMaterialImport();
@ -388,9 +410,9 @@ function beginProjectImport()
$ProjectImporter::importer.delete();
$ProjectImporter::persistMgr.delete();
echo("===========================================");
echo("Finished Project Import");
echo("===========================================");
$ProjectImporter::log.add("===========================================");
$ProjectImporter::log.add("Finished Project Import");
$ProjectImporter::log.add("===========================================");
AssetBrowser.refresh(); //update the AB just in case
}
@ -538,7 +560,7 @@ function processLegacyField(%line, %originalFieldName, %newFieldName)
if(%outLine !$= %line && %pos != -1 && %endPos != -1 && %value !$= "")
{
echo("Legacy Project Importer - processing legacy field line: " @ %line);
$ProjectImporter::log.add("Legacy Project Importer - processing legacy field line: " @ %line);
if(startsWith(%value, "$") || startsWith(%value, "#"))
{
@ -580,7 +602,7 @@ function processLegacyField(%line, %originalFieldName, %newFieldName)
}
else
{
error("Legacy Project Importer - file described in line could not be found/is not valid");
$ProjectImporter::log.add("Legacy Project Importer - file described in line could not be found/is not valid");
return %line;
}
}
@ -597,7 +619,7 @@ function processLegacyField(%line, %originalFieldName, %newFieldName)
if(%assetId !$= "" && AssetDatabase.isDeclaredAsset(%assetId))
{
echo("Legacy Project Importer - processing of legacy field line's value: " @ %value @ " has found a matching AssetId: " @ %assetId);
$ProjectImporter::log.add("Legacy Project Importer - processing of legacy field line's value: " @ %value @ " has found a matching AssetId: " @ %assetId);
//double check if this already had the quotes around the value or not
if(!strIsMatchExpr("*\"*\"*", %originalValue))
@ -612,7 +634,7 @@ function processLegacyField(%line, %originalFieldName, %newFieldName)
if(%outLine !$= %line)
{
echo("Legacy Project Importer - processing of legacy line: " @ %line @ " has been updated to: " @ %outLine);
$ProjectImporter::log.add("Legacy Project Importer - processing of legacy line: " @ %line @ " has been updated to: " @ %outLine);
return %outLine;
}
else
@ -650,7 +672,7 @@ function processLegacyShapeConstructorField(%line)
if(%foundAssets != 0)
{
%assetId = $ProjectImporter::assetQuery.getAsset(0);
echo("Legacy Project Importer - processing of legacy shape constructor addSequence line's value: " @ %animSourcePath @ " has found a matching AssetId: " @ %assetId);
$ProjectImporter::log.add("Legacy Project Importer - processing of legacy shape constructor addSequence line's value: " @ %animSourcePath @ " has found a matching AssetId: " @ %assetId);
}
if(%assetId !$= "" && AssetDatabase.isDeclaredAsset(%assetId))
@ -663,7 +685,7 @@ function processLegacyShapeConstructorField(%line)
if(%outLine !$= %line)
{
echo("Legacy Project Importer - processing of legacy shape constructor addSequence line: " @ %line @ " has been updated to: " @ %outLine);
$ProjectImporter::log.add("Legacy Project Importer - processing of legacy shape constructor addSequence line: " @ %line @ " has been updated to: " @ %outLine);
return %outLine;
}
else
@ -849,7 +871,7 @@ function findObjectInFiles(%objectName)
}
else
{
error("findObjectInFiles() - File not able to be opened: " @ %file);
$ProjectImporter::log.add("findObjectInFiles() - File not able to be opened: " @ %file);
}
%file = findNextFileMultiExpr( "*.*" );
@ -864,9 +886,9 @@ function findObjectInFiles(%objectName)
//==============================================================================
function beginShapeImport()
{
echo("===========================================");
echo("Importing 3D Shape files");
echo("===========================================");
$ProjectImporter::log.add("===========================================");
$ProjectImporter::log.add("Importing 3D Shape files");
$ProjectImporter::log.add("===========================================");
//First, we need to go through and process all loose shape files. This will
//get us shape assets, material assets image, assets and animation assets.
%currentAddress = $ProjectImporter::modulePath;
@ -904,12 +926,14 @@ function beginShapeImport()
//No asset found associated to this fileas far as we can determine, so time to import it
warn("Importing 3D Shape file: " @ %file);
$ProjectImporter::log.add("Importing 3D Shape file: " @ %file);
%assetId = $ProjectImporter::importer.autoImportFile(%file);
getImporterLogs();
if(%assetId !$= "")
{
warn("Finished importing 3D Shape file, resulting in asset with an id of: " @ %assetId);
$ProjectImporter::log.add("Finished importing 3D Shape file, resulting in asset with an id of: " @ %assetId);
$ProjectImporter::log.add("");
}
}
}
@ -917,9 +941,9 @@ function beginShapeImport()
%file = findNextFileMultiExpr( %currentAddress @ "/*.*" );
}
echo("===========================================");
echo("Finished Importing 3D Shape files");
echo("===========================================");
$ProjectImporter::log.add("===========================================");
$ProjectImporter::log.add("Finished Importing 3D Shape files");
$ProjectImporter::log.add("===========================================");
}
//==============================================================================
@ -928,9 +952,9 @@ function beginShapeImport()
//==============================================================================
function beginImageImport()
{
echo("===========================================");
echo("Importing Image files");
echo("===========================================");
$ProjectImporter::log.add("===========================================");
$ProjectImporter::log.add("Importing Image files");
$ProjectImporter::log.add("===========================================");
//First, we need to go through and process all loose image files. This will
//get us image assets, and if the import config deigns, material assets.
%currentAddress = $ProjectImporter::modulePath;
@ -960,12 +984,14 @@ function beginImageImport()
//No asset found associated to this fileas far as we can determine, so time to import it
warn("Importing Image file: " @ %file);
$ProjectImporter::log.add("Importing Image file: " @ %file);
%assetId = $ProjectImporter::importer.autoImportFile(%file);
getImporterLogs();
if(%assetId !$= "")
{
warn("Finished importing Image file, resulting in asset with an id of: " @ %assetId);
$ProjectImporter::log.add("Finished importing Image file, resulting in asset with an id of: " @ %assetId);
$ProjectImporter::log.add("");
}
}
}
@ -973,9 +999,9 @@ function beginImageImport()
%file = findNextFileMultiExpr( %currentAddress @ "/*.*" );
}
echo("===========================================");
echo("Finished Importing Image files");
echo("===========================================");
$ProjectImporter::log.add("===========================================");
$ProjectImporter::log.add("Finished Importing Image files");
$ProjectImporter::log.add("===========================================");
}
//==============================================================================
@ -984,9 +1010,9 @@ function beginImageImport()
//==============================================================================
function beginTerrainImport()
{
echo("===========================================");
echo("Importing Terrain files");
echo("===========================================");
$ProjectImporter::log.add("===========================================");
$ProjectImporter::log.add("Importing Terrain files");
$ProjectImporter::log.add("===========================================");
%currentAddress = $ProjectImporter::modulePath;
@ -1015,7 +1041,7 @@ function beginTerrainImport()
ProjectImportWizardPage5-->processingText.setText("Processing Terrain Asset file: " @ %file);
Canvas.repaint();
warn("Importing Terrain file: " @ %file);
$ProjectImporter::log.add("Importing Terrain file: " @ %file);
%moduleDef = AssetBrowser.dirHandler.getModuleFromAddress(%file);
%moduleName = %moduleDef.ModuleID;
@ -1039,7 +1065,8 @@ function beginTerrainImport()
{
AssetDatabase.addDeclaredAsset(%moduleDef, %tamlpath);
warn("Finished importing Terrain file, resulting in asset with an id of: " @ %moduleName @ ":" @ %assetName);
$ProjectImporter::log.add("Finished importing Terrain file, resulting in asset with an id of: " @ %moduleName @ ":" @ %assetName);
$ProjectImporter::log.add("");
}
}
}
@ -1047,9 +1074,9 @@ function beginTerrainImport()
%file = findNextFileMultiExpr( %currentAddress @ "/*.*" );
}
echo("===========================================");
echo("Finished Importing Terrain files");
echo("===========================================");
$ProjectImporter::log.add("===========================================");
$ProjectImporter::log.add("Finished Importing Terrain files");
$ProjectImporter::log.add("===========================================");
}
//==============================================================================
@ -1064,9 +1091,9 @@ function beginTerrainImport()
//==============================================================================
function beginGUIImport()
{
echo("===========================================");
echo("Importing GUIs");
echo("===========================================");
$ProjectImporter::log.add("===========================================");
$ProjectImporter::log.add("Importing GUIs");
$ProjectImporter::log.add("===========================================");
%currentAddress = $ProjectImporter::modulePath;
@ -1128,14 +1155,14 @@ function beginGUIImport()
%file = findNextFileMultiExpr( %currentAddress @ "/*.*" );
}
echo("===========================================");
echo("Finished Importing GUIs");
echo("===========================================");
$ProjectImporter::log.add("===========================================");
$ProjectImporter::log.add("Finished Importing GUIs");
$ProjectImporter::log.add("===========================================");
}
function processGUIntoAsset(%guiName, %file)
{
warn("Processing GUI into asset: " @ %guiName @ ", file: " @ %file);
$ProjectImporter::log.add("Processing GUI into asset: " @ %guiName @ ", file: " @ %file);
%filePath = filePath(%file);
%fileName = fileBase(%file);
@ -1182,9 +1209,9 @@ function processGUIntoAsset(%guiName, %file)
//==============================================================================
function beginPostFXImport()
{
echo("===========================================");
echo("Importing PostFXs");
echo("===========================================");
$ProjectImporter::log.add("===========================================");
$ProjectImporter::log.add("Importing PostFXs");
$ProjectImporter::log.add("===========================================");
%count = PostFXManager.Count();
for(%i=0; %i < %count; %i++)
@ -1193,7 +1220,7 @@ function beginPostFXImport()
if(isObject(%postEffect))
{
echo("Processing import of PostFX: " @ %postEffect.getName());
$ProjectImporter::log.add("Processing import of PostFX: " @ %postEffect.getName());
//$ProjectImporter::persistMgr.setDirty(%gui);
}
@ -1201,9 +1228,9 @@ function beginPostFXImport()
//$ProjectImporter::persistMgr.saveDirty();
echo("===========================================");
echo("Finished Importing PostFXs");
echo("===========================================");
$ProjectImporter::log.add("===========================================");
$ProjectImporter::log.add("Finished Importing PostFXs");
$ProjectImporter::log.add("===========================================");
}
//==============================================================================
@ -1212,9 +1239,9 @@ function beginPostFXImport()
//==============================================================================
function beginLevelImport()
{
echo("===========================================");
echo("Importing Level files");
echo("===========================================");
$ProjectImporter::log.add("===========================================");
$ProjectImporter::log.add("Importing Level files");
$ProjectImporter::log.add("===========================================");
%currentAddress = $ProjectImporter::modulePath;
@ -1239,7 +1266,7 @@ function beginLevelImport()
ProjectImportWizardPage5-->processingText.setText("Processing Level Asset file: " @ %file);
Canvas.repaint();
warn("Importing Level file: " @ %file);
$ProjectImporter::log.add("Importing Level file: " @ %file);
%moduleName = AssetBrowser.dirHandler.getModuleFromAddress(%file).ModuleId;
@ -1249,7 +1276,7 @@ function beginLevelImport()
if(AssetDatabase.isDeclaredAsset(%moduleName @ ":" @ %assetName))
{
warn("Legacy Project Importer - trying to process a level into an asset that already exists");
$ProjectImporter::log.add("Legacy Project Importer - trying to process a level into an asset that already exists");
return false;
}
@ -1329,9 +1356,9 @@ function beginLevelImport()
%file = findNextFileMultiExpr( %currentAddress @ "/*.*" );
}
echo("===========================================");
echo("Finished Importing Level files");
echo("===========================================");
$ProjectImporter::log.add("===========================================");
$ProjectImporter::log.add("Finished Importing Level files");
$ProjectImporter::log.add("===========================================");
}
//==============================================================================
@ -1370,9 +1397,9 @@ function ProjectImporter::deleteAssetDefinitions(%targetFolder)
function doDeleteAssetDefinitions()
{
echo("===========================================");
echo("Deleting Asset Definitions");
echo("===========================================");
$ProjectImporter::log.add("===========================================");
$ProjectImporter::log.add("Deleting Asset Definitions");
$ProjectImporter::log.add("===========================================");
%currentAddress = $deleteAssetDefsTargetFolder;
@ -1388,27 +1415,27 @@ function doDeleteAssetDefinitions()
{
if(fileDelete(%file))
{
echo("File: " @ %file @ " deleted successfully.");
$ProjectImporter::log.add("File: " @ %file @ " deleted successfully.");
}
else
{
error("File: " @ %file @ " failed to delete.");
$ProjectImporter::log.add("File: " @ %file @ " failed to delete.");
}
}
%file = findNextFileMultiExpr( %currentAddress @ "/*.asset.taml" );
}
echo("===========================================");
echo("Finished Deleting Asset Definitions");
echo("===========================================");
$ProjectImporter::log.add("===========================================");
$ProjectImporter::log.add("Finished Deleting Asset Definitions");
$ProjectImporter::log.add("===========================================");
}
function scanForDuplicateFiles(%toTestFile)
{
echo("===========================================");
echo("Scanning for duplicate files!");
echo("===========================================");
$ProjectImporter::log.add("===========================================");
$ProjectImporter::log.add("Scanning for duplicate files!");
$ProjectImporter::log.add("===========================================");
//First, wipe out any files inside the folder first
%file = findFirstFileMultiExpr( "*/*.*", true);
@ -1452,12 +1479,21 @@ function scanForDuplicateFiles(%toTestFile)
if(%moduleName !$= "" && %testModuleName !$= "" && %moduleName $= %testModuleName)
{
//report the probable duplicate
error("Probable duplicate asset detected!");
error("Files: " @ %file @ " and " @ %toTestFile @ " have matching names and exist within the same module!");
$ProjectImporter::log.add("Probable duplicate asset detected!");
$ProjectImporter::log.add("Files: " @ %file @ " and " @ %toTestFile @ " have matching names and exist within the same module!");
}
}
}
%file = findNextFileMultiExpr( "*/*.*" );
}
}
function getImporterLogs()
{
%lineCount = $ProjectImporter::importer.getActivityLogLineCount();
for(%i=0; %i < %lineCount; %i++)
{
$ProjectImporter::log.add($ProjectImporter::importer.getActivityLogLine(%i));
}
}

View file

@ -745,14 +745,13 @@ if (APPLE AND NOT IOS)
set(ARCHITECTURE_STRING_APPLE "x86_64;arm64")
set(DEPLOYMENT_TARGET_APPLE "10.13")
else()
check_c_compiler_flag("-arch arm64" armSupportedApple)
if(armSupportedApple)
if (CMAKE_SYSTEM_PROCESSOR MATCHES "arm64")
set(ARCHITECTURE_STRING_APPLE "arm64")
set(DEPLOYMENT_TARGET_APPLE "11.0")
else()
set(ARCHITECTURE_STRING_APPLE "x86_64")
set(DEPLOYMENT_TARGET_APPLE "10.9")
endif()
endif()
endif()
set(CMAKE_OSX_ARCHITECTURES ${ARCHITECTURE_STRING_APPLE} CACHE STRING "OSX Architecture" FORCE)