mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-15 16:44:36 +00:00
Merge branch 'Preview4_0' of https://github.com/Areloch/Torque3D into Preview4_0
This commit is contained in:
commit
6af85b6e3c
43 changed files with 805 additions and 222 deletions
|
|
@ -149,12 +149,12 @@ void ImageAsset::loadImage()
|
||||||
|
|
||||||
void ImageAsset::initializeAsset()
|
void ImageAsset::initializeAsset()
|
||||||
{
|
{
|
||||||
loadImage();
|
setImageFileName(mImageFileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ImageAsset::onAssetRefresh()
|
void ImageAsset::onAssetRefresh()
|
||||||
{
|
{
|
||||||
loadImage();
|
setImageFileName(mImageFileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ImageAsset::setImageFileName(const char* pScriptFile)
|
void ImageAsset::setImageFileName(const char* pScriptFile)
|
||||||
|
|
@ -162,16 +162,16 @@ void ImageAsset::setImageFileName(const char* pScriptFile)
|
||||||
// Sanity!
|
// Sanity!
|
||||||
AssertFatal(pScriptFile != NULL, "Cannot use a NULL image file.");
|
AssertFatal(pScriptFile != NULL, "Cannot use a NULL image file.");
|
||||||
|
|
||||||
// Fetch image file.
|
|
||||||
pScriptFile = StringTable->insert(pScriptFile);
|
|
||||||
|
|
||||||
// Ignore no change,
|
|
||||||
if (pScriptFile == mImageFileName)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// Update.
|
// Update.
|
||||||
mImageFileName = getOwned() ? expandAssetFilePath(pScriptFile) : StringTable->insert(pScriptFile);
|
mImageFileName = getOwned() ? expandAssetFilePath(pScriptFile) : StringTable->insert(pScriptFile);
|
||||||
|
|
||||||
// Refresh the asset.
|
// Refresh the asset.
|
||||||
refreshAsset();
|
loadImage();
|
||||||
|
}
|
||||||
|
|
||||||
|
DefineEngineMethod(ImageAsset, getImageFilename, const char*, (), ,
|
||||||
|
"Creates an instance of the given GameObject given the asset definition.\n"
|
||||||
|
"@return The GameObject entity created from the asset.")
|
||||||
|
{
|
||||||
|
return object->getImageFileName();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -71,7 +71,7 @@ public:
|
||||||
|
|
||||||
bool isValid() { return mIsValidImage; }
|
bool isValid() { return mIsValidImage; }
|
||||||
|
|
||||||
GFXTexHandle* getImage() { return &mImage; }
|
GFXTexHandle getImage() { return mImage; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void initializeAsset(void);
|
virtual void initializeAsset(void);
|
||||||
|
|
|
||||||
|
|
@ -121,12 +121,17 @@ void MaterialAsset::initializeAsset()
|
||||||
|
|
||||||
compileShader();
|
compileShader();
|
||||||
|
|
||||||
|
if (!Platform::isFullPath(mScriptFile))
|
||||||
|
mScriptFile = getOwned() ? expandAssetFilePath(mScriptFile) : mScriptFile;
|
||||||
|
|
||||||
if (Platform::isFile(mScriptFile))
|
if (Platform::isFile(mScriptFile))
|
||||||
Con::executeFile(mScriptFile, false, false);
|
Con::executeFile(mScriptFile, false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MaterialAsset::onAssetRefresh()
|
void MaterialAsset::onAssetRefresh()
|
||||||
{
|
{
|
||||||
|
mScriptFile = expandAssetFilePath(mScriptFile);
|
||||||
|
|
||||||
if (Platform::isFile(mScriptFile))
|
if (Platform::isFile(mScriptFile))
|
||||||
Con::executeFile(mScriptFile, false, false);
|
Con::executeFile(mScriptFile, false, false);
|
||||||
|
|
||||||
|
|
@ -151,12 +156,8 @@ void MaterialAsset::setScriptFile(const char* pScriptFile)
|
||||||
// Fetch image file.
|
// Fetch image file.
|
||||||
pScriptFile = StringTable->insert(pScriptFile);
|
pScriptFile = StringTable->insert(pScriptFile);
|
||||||
|
|
||||||
// Ignore no change,
|
|
||||||
if (pScriptFile == mScriptFile)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// Update.
|
// Update.
|
||||||
mScriptFile = getOwned() ? expandAssetFilePath(pScriptFile) : StringTable->insert(pScriptFile);
|
mScriptFile = getOwned() ? expandAssetFilePath(pScriptFile) : pScriptFile;
|
||||||
|
|
||||||
// Refresh the asset.
|
// Refresh the asset.
|
||||||
refreshAsset();
|
refreshAsset();
|
||||||
|
|
|
||||||
|
|
@ -944,7 +944,12 @@ void GroundCover::_initialize( U32 cellCount, U32 cellPlacementCount )
|
||||||
Material* mat = dynamic_cast<Material*>(mMatInst->getMaterial());
|
Material* mat = dynamic_cast<Material*>(mMatInst->getMaterial());
|
||||||
if(mat)
|
if(mat)
|
||||||
{
|
{
|
||||||
GFXTexHandle tex(mat->mDiffuseMapFilename[0], &GFXStaticTextureSRGBProfile, "GroundCover texture aspect ratio check" );
|
GFXTexHandle tex;
|
||||||
|
if (!mat->mDiffuseMapFilename[0].isEmpty())
|
||||||
|
tex = GFXTexHandle(mat->mDiffuseMapFilename[0], &GFXStaticTextureSRGBProfile, "GroundCover texture aspect ratio check");
|
||||||
|
else if (!mat->mDiffuseMapAsset[0].isNull())
|
||||||
|
tex = mat->mDiffuseMapAsset[0]->getImage();
|
||||||
|
|
||||||
if(tex.isValid())
|
if(tex.isValid())
|
||||||
{
|
{
|
||||||
U32 w = tex.getWidth();
|
U32 w = tex.getWidth();
|
||||||
|
|
|
||||||
|
|
@ -330,7 +330,7 @@ bool TSStatic::onAdd()
|
||||||
mCubeReflector.unregisterReflector();
|
mCubeReflector.unregisterReflector();
|
||||||
|
|
||||||
if ( reflectorDesc )
|
if ( reflectorDesc )
|
||||||
mCubeReflector.registerReflector( this, reflectorDesc );
|
mCubeReflector.registerReflector( this, reflectorDesc );
|
||||||
}
|
}
|
||||||
|
|
||||||
_updateShouldTick();
|
_updateShouldTick();
|
||||||
|
|
@ -690,32 +690,6 @@ void TSStatic::prepRenderImage( SceneRenderState* state )
|
||||||
// Acculumation
|
// Acculumation
|
||||||
rdata.setAccuTex(mAccuTex);
|
rdata.setAccuTex(mAccuTex);
|
||||||
|
|
||||||
//Various arbitrary shader render bits to add
|
|
||||||
if (mCustomShaderBinds.empty())
|
|
||||||
{
|
|
||||||
CustomShaderBindingData minBnds;
|
|
||||||
minBnds.setFloat3(StringTable->insert("objectBoundsMin"), getWorldBox().minExtents);
|
|
||||||
mCustomShaderBinds.push_back(minBnds);
|
|
||||||
|
|
||||||
CustomShaderBindingData maxBnds;
|
|
||||||
maxBnds.setFloat3(StringTable->insert("objectBoundsMax"), getWorldBox().maxExtents);
|
|
||||||
mCustomShaderBinds.push_back(maxBnds);
|
|
||||||
|
|
||||||
CustomShaderBindingData colorMin;
|
|
||||||
colorMin.setFloat3(StringTable->insert("colorMin"), Point3F(1,0,0));
|
|
||||||
mCustomShaderBinds.push_back(colorMin);
|
|
||||||
|
|
||||||
CustomShaderBindingData colorMax;
|
|
||||||
colorMax.setFloat3(StringTable->insert("colorMax"), Point3F(0, 1, 0));
|
|
||||||
mCustomShaderBinds.push_back(colorMax);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!mCustomShaderBinds.empty())
|
|
||||||
{
|
|
||||||
for(U32 i=0; i < mCustomShaderBinds.size(); i++)
|
|
||||||
rdata.addCustomShaderBinding(mCustomShaderBinds[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// If we have submesh culling enabled then prepare
|
// If we have submesh culling enabled then prepare
|
||||||
// the object space frustum to pass to the shape.
|
// the object space frustum to pass to the shape.
|
||||||
Frustum culler;
|
Frustum culler;
|
||||||
|
|
|
||||||
|
|
@ -203,8 +203,6 @@ protected:
|
||||||
F32 mRenderNormalScalar;
|
F32 mRenderNormalScalar;
|
||||||
S32 mForceDetail;
|
S32 mForceDetail;
|
||||||
|
|
||||||
Vector<CustomShaderBindingData> mCustomShaderBinds;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
TSStatic();
|
TSStatic();
|
||||||
|
|
|
||||||
|
|
@ -4523,7 +4523,7 @@ void GuiTreeViewCtrl::reparentItems(Vector<Item*> selectedItems, Item* newParent
|
||||||
// update the parent's children
|
// update the parent's children
|
||||||
|
|
||||||
// check if we an only child
|
// check if we an only child
|
||||||
if (item->mParent->mChild == item)
|
if (item->mParent && item->mParent->mChild == item)
|
||||||
{
|
{
|
||||||
if (item->mNext)
|
if (item->mNext)
|
||||||
item->mParent->mChild = item->mNext;
|
item->mParent->mChild = item->mNext;
|
||||||
|
|
@ -4805,7 +4805,7 @@ void GuiTreeViewCtrl::reparentItems(Vector<Item*> selectedItems, Item* newParent
|
||||||
|
|
||||||
if (item->isInspectorData())
|
if (item->isInspectorData())
|
||||||
{
|
{
|
||||||
if (item->getObject() && oldParent->getObject() && item->mParent->getObject())
|
if (item->getObject() && (oldParent && oldParent->getObject()) && item->mParent->getObject())
|
||||||
onReparent_callback(
|
onReparent_callback(
|
||||||
item->getObject()->getId(),
|
item->getObject()->getId(),
|
||||||
oldParent->getObject()->getId(),
|
oldParent->getObject()->getId(),
|
||||||
|
|
|
||||||
|
|
@ -116,6 +116,7 @@ Material::Material()
|
||||||
{
|
{
|
||||||
mDiffuse[i].set( 1.0f, 1.0f, 1.0f, 1.0f );
|
mDiffuse[i].set( 1.0f, 1.0f, 1.0f, 1.0f );
|
||||||
mDiffuseMapSRGB[i] = true;
|
mDiffuseMapSRGB[i] = true;
|
||||||
|
mDiffuseMapAsset[i] = StringTable->EmptyString();
|
||||||
|
|
||||||
mSmoothness[i] = 0.0f;
|
mSmoothness[i] = 0.0f;
|
||||||
mMetalness[i] = 0.0f;
|
mMetalness[i] = 0.0f;
|
||||||
|
|
@ -172,8 +173,10 @@ Material::Material()
|
||||||
// Deferred Shading
|
// Deferred Shading
|
||||||
mMatInfoFlags[i] = 0.0f;
|
mMatInfoFlags[i] = 0.0f;
|
||||||
mRoughMapFilename[i].clear();
|
mRoughMapFilename[i].clear();
|
||||||
|
mRoughMapAsset[i] = StringTable->EmptyString();
|
||||||
mAOMapFilename[i].clear();
|
mAOMapFilename[i].clear();
|
||||||
mMetalMapFilename[i].clear();
|
mMetalMapFilename[i].clear();
|
||||||
|
mMetalMapAsset[i] = StringTable->EmptyString();
|
||||||
}
|
}
|
||||||
|
|
||||||
dMemset(mCellIndex, 0, sizeof(mCellIndex));
|
dMemset(mCellIndex, 0, sizeof(mCellIndex));
|
||||||
|
|
@ -235,6 +238,9 @@ void Material::initPersistFields()
|
||||||
addField("diffuseMap", TypeImageFilename, Offset(mDiffuseMapFilename, Material), MAX_STAGES,
|
addField("diffuseMap", TypeImageFilename, Offset(mDiffuseMapFilename, Material), MAX_STAGES,
|
||||||
"The diffuse color texture map." );
|
"The diffuse color texture map." );
|
||||||
|
|
||||||
|
addField("diffuseMapAsset", TypeImageAssetPtr, Offset(mDiffuseMapAsset, Material), MAX_STAGES,
|
||||||
|
"The diffuse color texture map." );
|
||||||
|
|
||||||
addField("diffuseMapSRGB", TypeBool, Offset(mDiffuseMapSRGB, Material), MAX_STAGES,
|
addField("diffuseMapSRGB", TypeBool, Offset(mDiffuseMapSRGB, Material), MAX_STAGES,
|
||||||
"Enable sRGB for the diffuse color texture map.");
|
"Enable sRGB for the diffuse color texture map.");
|
||||||
|
|
||||||
|
|
@ -636,7 +642,7 @@ void Material::_mapMaterial()
|
||||||
// If mapTo not defined in script, try to use the base texture name instead
|
// If mapTo not defined in script, try to use the base texture name instead
|
||||||
if( mMapTo.isEmpty() )
|
if( mMapTo.isEmpty() )
|
||||||
{
|
{
|
||||||
if ( mDiffuseMapFilename[0].isEmpty() )
|
if ( mDiffuseMapFilename[0].isEmpty() && mDiffuseMapAsset->isNull())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
@ -652,6 +658,10 @@ void Material::_mapMaterial()
|
||||||
// use everything after the last slash
|
// use everything after the last slash
|
||||||
mMapTo = mDiffuseMapFilename[0].substr(slashPos+1, mDiffuseMapFilename[0].length() - slashPos - 1);
|
mMapTo = mDiffuseMapFilename[0].substr(slashPos+1, mDiffuseMapFilename[0].length() - slashPos - 1);
|
||||||
}
|
}
|
||||||
|
else if (!mDiffuseMapAsset->isNull())
|
||||||
|
{
|
||||||
|
mMapTo = mDiffuseMapAsset[0]->getImageFileName();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,13 @@
|
||||||
#include "shaderGen/customShaderFeature.h"
|
#include "shaderGen/customShaderFeature.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef IMAGE_ASSET_H
|
||||||
|
#include "T3D/assets/ImageAsset.h"
|
||||||
|
#endif
|
||||||
|
#ifndef _ASSET_PTR_H_
|
||||||
|
#include "assets/assetPtr.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
class CubemapData;
|
class CubemapData;
|
||||||
class SFXTrack;
|
class SFXTrack;
|
||||||
struct SceneData;
|
struct SceneData;
|
||||||
|
|
@ -203,6 +210,8 @@ public:
|
||||||
// Data
|
// Data
|
||||||
//-----------------------------------------------------------------------
|
//-----------------------------------------------------------------------
|
||||||
FileName mDiffuseMapFilename[MAX_STAGES];
|
FileName mDiffuseMapFilename[MAX_STAGES];
|
||||||
|
StringTableEntry mDiffuseMapAssetId[MAX_STAGES];
|
||||||
|
AssetPtr<ImageAsset> mDiffuseMapAsset[MAX_STAGES];
|
||||||
bool mDiffuseMapSRGB[MAX_STAGES]; // SRGB diffuse
|
bool mDiffuseMapSRGB[MAX_STAGES]; // SRGB diffuse
|
||||||
bool mAccuEnabled[MAX_STAGES];
|
bool mAccuEnabled[MAX_STAGES];
|
||||||
F32 mAccuScale[MAX_STAGES];
|
F32 mAccuScale[MAX_STAGES];
|
||||||
|
|
@ -211,24 +220,44 @@ public:
|
||||||
F32 mAccuCoverage[MAX_STAGES];
|
F32 mAccuCoverage[MAX_STAGES];
|
||||||
F32 mAccuSpecular[MAX_STAGES];
|
F32 mAccuSpecular[MAX_STAGES];
|
||||||
FileName mOverlayMapFilename[MAX_STAGES];
|
FileName mOverlayMapFilename[MAX_STAGES];
|
||||||
|
StringTableEntry mOverlayMapAssetId[MAX_STAGES];
|
||||||
|
AssetPtr<ImageAsset> mOverlayMapAsset[MAX_STAGES];
|
||||||
FileName mLightMapFilename[MAX_STAGES];
|
FileName mLightMapFilename[MAX_STAGES];
|
||||||
|
StringTableEntry mLightMapAssetId[MAX_STAGES];
|
||||||
|
AssetPtr<ImageAsset> mLightMapAsset[MAX_STAGES];
|
||||||
FileName mToneMapFilename[MAX_STAGES];
|
FileName mToneMapFilename[MAX_STAGES];
|
||||||
|
StringTableEntry mToneMapAssetId[MAX_STAGES];
|
||||||
|
AssetPtr<ImageAsset> mToneMapAsset[MAX_STAGES];
|
||||||
FileName mDetailMapFilename[MAX_STAGES];
|
FileName mDetailMapFilename[MAX_STAGES];
|
||||||
|
StringTableEntry mDetailMapAssetId[MAX_STAGES];
|
||||||
|
AssetPtr<ImageAsset> mDetailMapAsset[MAX_STAGES];
|
||||||
FileName mNormalMapFilename[MAX_STAGES];
|
FileName mNormalMapFilename[MAX_STAGES];
|
||||||
|
StringTableEntry mNormalMapAssetId[MAX_STAGES];
|
||||||
|
AssetPtr<ImageAsset> mNormalMapAsset[MAX_STAGES];
|
||||||
|
|
||||||
bool mIsSRGb[MAX_STAGES];
|
bool mIsSRGb[MAX_STAGES];
|
||||||
bool mInvertSmoothness[MAX_STAGES];
|
bool mInvertSmoothness[MAX_STAGES];
|
||||||
FileName mSpecularMapFilename[MAX_STAGES];
|
FileName mSpecularMapFilename[MAX_STAGES];
|
||||||
|
StringTableEntry mSpecularMapAssetId[MAX_STAGES];
|
||||||
|
AssetPtr<ImageAsset> mSpecularMapAsset[MAX_STAGES];
|
||||||
FileName mRoughMapFilename[MAX_STAGES];
|
FileName mRoughMapFilename[MAX_STAGES];
|
||||||
|
StringTableEntry mRoughMapAssetId[MAX_STAGES];
|
||||||
|
AssetPtr<ImageAsset> mRoughMapAsset[MAX_STAGES];
|
||||||
F32 mSmoothnessChan[MAX_STAGES];
|
F32 mSmoothnessChan[MAX_STAGES];
|
||||||
FileName mAOMapFilename[MAX_STAGES];
|
FileName mAOMapFilename[MAX_STAGES];
|
||||||
|
StringTableEntry mAOMapAssetId[MAX_STAGES];
|
||||||
|
AssetPtr<ImageAsset> mAOMapAsset[MAX_STAGES];
|
||||||
F32 mAOChan[MAX_STAGES];
|
F32 mAOChan[MAX_STAGES];
|
||||||
FileName mMetalMapFilename[MAX_STAGES];
|
FileName mMetalMapFilename[MAX_STAGES];
|
||||||
|
StringTableEntry mMetalMapAssetId[MAX_STAGES];
|
||||||
|
AssetPtr<ImageAsset> mMetalMapAsset[MAX_STAGES];
|
||||||
F32 mMetalChan[MAX_STAGES];
|
F32 mMetalChan[MAX_STAGES];
|
||||||
|
|
||||||
/// A second normal map which repeats at the detail map
|
/// A second normal map which repeats at the detail map
|
||||||
/// scale and blended with the base normal map.
|
/// scale and blended with the base normal map.
|
||||||
FileName mDetailNormalMapFilename[MAX_STAGES];
|
FileName mDetailNormalMapFilename[MAX_STAGES];
|
||||||
|
StringTableEntry mDetailNormalMapAssetId[MAX_STAGES];
|
||||||
|
AssetPtr<ImageAsset> mDetailNormalMapAsset[MAX_STAGES];
|
||||||
|
|
||||||
/// The strength scalar for the detail normal map.
|
/// The strength scalar for the detail normal map.
|
||||||
F32 mDetailNormalMapStrength[MAX_STAGES];
|
F32 mDetailNormalMapStrength[MAX_STAGES];
|
||||||
|
|
|
||||||
|
|
@ -409,6 +409,16 @@ void ProcessedMaterial::_setStageData()
|
||||||
mStages[i].setTex(MFT_DiffuseMap, _createTexture(GFXTextureManager::getMissingTexturePath().c_str(), &GFXStaticTextureSRGBProfile));
|
mStages[i].setTex(MFT_DiffuseMap, _createTexture(GFXTextureManager::getMissingTexturePath().c_str(), &GFXStaticTextureSRGBProfile));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (!mMaterial->mDiffuseMapAsset[i].isNull())
|
||||||
|
{
|
||||||
|
mStages[i].setTex(MFT_DiffuseMap, mMaterial->mDiffuseMapAsset[i]->getImage());
|
||||||
|
if (!mStages[i].getTex(MFT_DiffuseMap))
|
||||||
|
{
|
||||||
|
// Load a debug texture to make it clear to the user
|
||||||
|
// that the texture for this stage was missing.
|
||||||
|
mStages[i].setTex(MFT_DiffuseMap, _createTexture(GFXTextureManager::getMissingTexturePath().c_str(), &GFXStaticTextureSRGBProfile));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// OverlayMap
|
// OverlayMap
|
||||||
if (mMaterial->mOverlayMapFilename[i].isNotEmpty())
|
if (mMaterial->mOverlayMapFilename[i].isNotEmpty())
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
<ImageAsset
|
||||||
|
canSave="true"
|
||||||
|
canSaveDynamicFields="true"
|
||||||
|
AssetName="player_Albedo"
|
||||||
|
imageFile="@assetFile=player_Albedo.png"
|
||||||
|
useMips="true"
|
||||||
|
isHDRImage="false"
|
||||||
|
originalFilePath="E:/Gamedev/Art/TorqueCharacters/OrcMage/player_Albedo.png"
|
||||||
|
VersionId="1" />
|
||||||
BIN
Templates/BaseGame/game/data/Kork/Images/player_Albedo.png
Normal file
BIN
Templates/BaseGame/game/data/Kork/Images/player_Albedo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1 MiB |
10
Templates/BaseGame/game/data/Kork/Kork.cs
Normal file
10
Templates/BaseGame/game/data/Kork/Kork.cs
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
function Kork::onCreate(%this)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function Kork::onDestroy(%this)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
25
Templates/BaseGame/game/data/Kork/Kork.module
Normal file
25
Templates/BaseGame/game/data/Kork/Kork.module
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
<ModuleDefinition
|
||||||
|
canSave="true"
|
||||||
|
canSaveDynamicFields="true"
|
||||||
|
ModuleId="Kork"
|
||||||
|
VersionId="1"
|
||||||
|
Group="Game"
|
||||||
|
scriptFile="Kork.cs"
|
||||||
|
CreateFunction="onCreate"
|
||||||
|
DestroyFunction="onDestroy">
|
||||||
|
<DeclaredAssets
|
||||||
|
canSave="true"
|
||||||
|
canSaveDynamicFields="true"
|
||||||
|
Extension="asset.taml"
|
||||||
|
Recurse="true" />
|
||||||
|
<AutoloadAssets
|
||||||
|
canSave="true"
|
||||||
|
canSaveDynamicFields="true"
|
||||||
|
AssetType="ComponentAsset"
|
||||||
|
Recurse="true" />
|
||||||
|
<AutoloadAssets
|
||||||
|
canSave="true"
|
||||||
|
canSaveDynamicFields="true"
|
||||||
|
AssetType="GUIAsset"
|
||||||
|
Recurse="true" />
|
||||||
|
</ModuleDefinition>
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
<ShapeAsset
|
||||||
|
canSave="true"
|
||||||
|
canSaveDynamicFields="true"
|
||||||
|
AssetName="OrcMage"
|
||||||
|
fileName="@assetFile=OrcMage.dts"
|
||||||
|
isNewShape="1"
|
||||||
|
materialSlot0="@Asset=Kork:player_mat"
|
||||||
|
originalFilePath="E:/Gamedev/Art/TorqueCharacters/OrcMage/OrcMage.dts"
|
||||||
|
VersionId="1" />
|
||||||
5
Templates/BaseGame/game/data/Kork/Shapes/OrcMage.cs
Normal file
5
Templates/BaseGame/game/data/Kork/Shapes/OrcMage.cs
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
|
||||||
|
singleton TSShapeConstructor(OrcMageDts)
|
||||||
|
{
|
||||||
|
baseShape = "./OrcMage.dts";
|
||||||
|
};
|
||||||
BIN
Templates/BaseGame/game/data/Kork/Shapes/OrcMage.dts
Normal file
BIN
Templates/BaseGame/game/data/Kork/Shapes/OrcMage.dts
Normal file
Binary file not shown.
|
|
@ -0,0 +1,9 @@
|
||||||
|
<MaterialAsset
|
||||||
|
canSave="true"
|
||||||
|
canSaveDynamicFields="true"
|
||||||
|
AssetName="player_mat"
|
||||||
|
scriptFile="@assetFile=player_mat.cs"
|
||||||
|
materialDefinitionName="player_mat"
|
||||||
|
imageMap0="@Asset=Kork:player_Albedo"
|
||||||
|
shaderGraph="data/Kork/materials/player.sgf"
|
||||||
|
VersionId="1" />
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
//--- OBJECT WRITE BEGIN ---
|
||||||
|
singleton Material(player_mat) {
|
||||||
|
mapTo = "player";
|
||||||
|
DiffuseMapAsset[0] = "Kork:player_Albedo";
|
||||||
|
};
|
||||||
|
//--- OBJECT WRITE END ---
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
<ImageAsset
|
||||||
|
canSave="true"
|
||||||
|
canSaveDynamicFields="true"
|
||||||
|
AssetName="Orc_Material_BaseColor"
|
||||||
|
imageFile="@assetFile=Orc_Material_BaseColor.png"
|
||||||
|
useMips="true"
|
||||||
|
isHDRImage="false"
|
||||||
|
originalFilePath="E:/Gamedev/Art/SpaceOrcMage/Orc_Material_BaseColor.png"
|
||||||
|
VersionId="1" />
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 698 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 88 KiB |
|
|
@ -0,0 +1,9 @@
|
||||||
|
<ImageAsset
|
||||||
|
canSave="true"
|
||||||
|
canSaveDynamicFields="true"
|
||||||
|
AssetName="Orc_Material_Metallic"
|
||||||
|
imageFile="@assetFile=Orc_Material_Metallic.png"
|
||||||
|
useMips="true"
|
||||||
|
isHDRImage="false"
|
||||||
|
originalFilePath="E:/Gamedev/Art/SpaceOrcMage/Orc_Material_Metallic.png"
|
||||||
|
VersionId="1" />
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 204 KiB |
|
|
@ -0,0 +1,9 @@
|
||||||
|
<ImageAsset
|
||||||
|
canSave="true"
|
||||||
|
canSaveDynamicFields="true"
|
||||||
|
AssetName="Orc_Material_Roughness"
|
||||||
|
imageFile="@assetFile=Orc_Material_Roughness.png"
|
||||||
|
useMips="true"
|
||||||
|
isHDRImage="false"
|
||||||
|
originalFilePath="E:/Gamedev/Art/SpaceOrcMage/Orc_Material_Roughness.png"
|
||||||
|
VersionId="1" />
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 403 KiB |
|
|
@ -0,0 +1,9 @@
|
||||||
|
<ImageAsset
|
||||||
|
canSave="true"
|
||||||
|
canSaveDynamicFields="true"
|
||||||
|
AssetName="Orc_Material_normal"
|
||||||
|
imageFile="@assetFile=Orc_Material_normal.png"
|
||||||
|
useMips="true"
|
||||||
|
isHDRImage="false"
|
||||||
|
originalFilePath="E:/Gamedev/Art/SpaceOrcMage/Orc_Material_normal.png"
|
||||||
|
VersionId="1" />
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
<ShapeAsset
|
||||||
|
canSave="true"
|
||||||
|
canSaveDynamicFields="true"
|
||||||
|
AssetName="SpaceOrcMage"
|
||||||
|
fileName="@assetFile=SpaceOrcMage.dts"
|
||||||
|
isNewShape="1"
|
||||||
|
materialSlot0="@Asset=SpaceOrc:Orc_Material"
|
||||||
|
originalFilePath="E:/Gamedev/Art/SpaceOrcMage/SpaceOrcMage.dts"
|
||||||
|
VersionId="1" />
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
|
||||||
|
singleton TSShapeConstructor(SpaceOrcMageDts)
|
||||||
|
{
|
||||||
|
baseShape = "./SpaceOrcMage.dts";
|
||||||
|
};
|
||||||
BIN
Templates/BaseGame/game/data/SpaceOrc/Shapes/SpaceOrcMage.dts
Normal file
BIN
Templates/BaseGame/game/data/SpaceOrc/Shapes/SpaceOrcMage.dts
Normal file
Binary file not shown.
10
Templates/BaseGame/game/data/SpaceOrc/SpaceOrc.cs
Normal file
10
Templates/BaseGame/game/data/SpaceOrc/SpaceOrc.cs
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
function SpaceOrc::onCreate(%this)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function SpaceOrc::onDestroy(%this)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
25
Templates/BaseGame/game/data/SpaceOrc/SpaceOrc.module
Normal file
25
Templates/BaseGame/game/data/SpaceOrc/SpaceOrc.module
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
<ModuleDefinition
|
||||||
|
canSave="true"
|
||||||
|
canSaveDynamicFields="true"
|
||||||
|
ModuleId="SpaceOrc"
|
||||||
|
VersionId="1"
|
||||||
|
Group="Game"
|
||||||
|
scriptFile="SpaceOrc.cs"
|
||||||
|
CreateFunction="onCreate"
|
||||||
|
DestroyFunction="onDestroy">
|
||||||
|
<DeclaredAssets
|
||||||
|
canSave="true"
|
||||||
|
canSaveDynamicFields="true"
|
||||||
|
Extension="asset.taml"
|
||||||
|
Recurse="true" />
|
||||||
|
<AutoloadAssets
|
||||||
|
canSave="true"
|
||||||
|
canSaveDynamicFields="true"
|
||||||
|
AssetType="ComponentAsset"
|
||||||
|
Recurse="true" />
|
||||||
|
<AutoloadAssets
|
||||||
|
canSave="true"
|
||||||
|
canSaveDynamicFields="true"
|
||||||
|
AssetType="GUIAsset"
|
||||||
|
Recurse="true" />
|
||||||
|
</ModuleDefinition>
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
<MaterialAsset
|
||||||
|
canSave="true"
|
||||||
|
canSaveDynamicFields="true"
|
||||||
|
AssetName="Orc_Material"
|
||||||
|
scriptFile="@assetFile=Orc_Material.cs"
|
||||||
|
materialDefinitionName="Orc_Material"
|
||||||
|
imageMap0="@Asset=SpaceOrc:Orc_Material_BaseColor"
|
||||||
|
shaderGraph="data/SpaceOrc/materials/Orc_Material.sgf"
|
||||||
|
VersionId="1" />
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
//--- OBJECT WRITE BEGIN ---
|
||||||
|
singleton Material(Orc_Material) {
|
||||||
|
mapTo = "Orc_Material";
|
||||||
|
DiffuseMapAsset[0] = "SpaceOrc:Orc_Material_BaseColor";
|
||||||
|
diffuseMap[0] = "data/SpaceOrc/Images/Orc_Material_BaseColor.png";
|
||||||
|
normalMap[0] = "data/SpaceOrc/Images/Orc_Material_normal.png";
|
||||||
|
invertSmoothness[0] = "1";
|
||||||
|
roughMap[0] = "data/SpaceOrc/Images/Orc_Material_Roughness.png";
|
||||||
|
metalMap[0] = "data/SpaceOrc/Images/Orc_Material_Metallic.png";
|
||||||
|
DiffuseMapAsset0 = "SpaceOrc:Orc_Material_BaseColor";
|
||||||
|
};
|
||||||
|
//--- OBJECT WRITE END ---
|
||||||
|
|
@ -256,20 +256,48 @@ new Scene(PbrMatTestLevel) {
|
||||||
canSave = "1";
|
canSave = "1";
|
||||||
canSaveDynamicFields = "1";
|
canSaveDynamicFields = "1";
|
||||||
};
|
};
|
||||||
/*new ConvexShape() {
|
new StaticShapeObject() {
|
||||||
Material = "Grid_512_Orange";
|
|
||||||
position = "1.69488 -1.65352 0.772905";
|
|
||||||
rotation = "1 0 0 0";
|
|
||||||
scale = "1 1 1";
|
scale = "1 1 1";
|
||||||
canSave = "1";
|
canSave = "1";
|
||||||
canSaveDynamicFields = "1";
|
canSaveDynamicFields = "1";
|
||||||
|
position = "-0.158338 -2.2037 0.5";
|
||||||
|
rotation = "0 -0 172.868";
|
||||||
|
LocalPosition = "0 0 0";
|
||||||
|
LocalRotation = "1 0 0 0";
|
||||||
|
lifetimeMS = "0";
|
||||||
|
GameObject = "Core_GameObjects:StaticShapeObject";
|
||||||
|
dirtyGameObject = "0";
|
||||||
|
|
||||||
surface = "0 0 0 1 0 0 0.272904 0 0 0 1 1 0 0 0";
|
new MeshComponent() {
|
||||||
surface = "0 1 0 0 0 0 -0.272904 0 0 0 1 1 0 0 0";
|
componentType = "Render";
|
||||||
surface = "0.707107 0 0 0.707107 0 0.05 0 0 0 0 1 1 0 0 0";
|
friendlyName = "Mesh Component";
|
||||||
surface = "0 0.707107 -0.707107 0 0 -0.05 0 0 0 0 1 1 0 0 0";
|
description = "Causes the object to render a non-animating 3d shape using the file provided.";
|
||||||
surface = "0.5 0.5 -0.5 0.5 -0.370958 0 0 0 0 0 1 1 0 0 0";
|
networked = "1";
|
||||||
surface = "0.5 -0.5 0.5 0.5 0.370958 0 0 0 0 0 1 1 0 0 0";
|
Enabled = "1";
|
||||||
};*/
|
internalName = "MeshComponent";
|
||||||
|
MeshAsset = "SpaceOrc:SpaceOrcMage";
|
||||||
|
};
|
||||||
|
new ShapeCollisionComponent() {
|
||||||
|
componentType = "Collision";
|
||||||
|
friendlyName = "Shape Collision";
|
||||||
|
description = "A stub component class that physics components should inherit from.";
|
||||||
|
networked = "0";
|
||||||
|
Enabled = "1";
|
||||||
|
internalName = "CollisionComponent";
|
||||||
|
CollisionType = "Collision Mesh";
|
||||||
|
LineOfSightType = "Collision Mesh";
|
||||||
|
DecalType = "Collision Mesh";
|
||||||
|
CollisionMeshPrefix = "Collision";
|
||||||
|
BlockCollisions = "1";
|
||||||
|
};
|
||||||
|
new AnimationComponent() {
|
||||||
|
componentType = "Animation";
|
||||||
|
friendlyName = "Animation(Component)";
|
||||||
|
description = "Allows a rendered mesh to be animated";
|
||||||
|
networked = "1";
|
||||||
|
Enabled = "1";
|
||||||
|
internalName = "AnimationComponent";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
//--- OBJECT WRITE END ---
|
//--- OBJECT WRITE END ---
|
||||||
|
|
|
||||||
|
|
@ -372,7 +372,7 @@ function _makePrettyResString( %resString )
|
||||||
function GraphicsMenuSetting::init( %this )
|
function GraphicsMenuSetting::init( %this )
|
||||||
{
|
{
|
||||||
assert( isObject( %this ) );
|
assert( isObject( %this ) );
|
||||||
assert( isObject( %this.qualitySettingGroup ) );
|
//assert( isObject( %this.qualitySettingGroup ) );
|
||||||
|
|
||||||
// Fill it.
|
// Fill it.
|
||||||
%select = -1;
|
%select = -1;
|
||||||
|
|
|
||||||
|
|
@ -5,10 +5,10 @@
|
||||||
anchorBottom="false"
|
anchorBottom="false"
|
||||||
anchorLeft="true"
|
anchorLeft="true"
|
||||||
anchorRight="false"
|
anchorRight="false"
|
||||||
position="0 0"
|
position="0 105"
|
||||||
extent="700 35"
|
extent="739 35"
|
||||||
minExtent="8 2"
|
minExtent="8 2"
|
||||||
horizSizing="right"
|
horizSizing="width"
|
||||||
vertSizing="bottom"
|
vertSizing="bottom"
|
||||||
profile="GuiDefaultProfile"
|
profile="GuiDefaultProfile"
|
||||||
visible="true"
|
visible="true"
|
||||||
|
|
@ -21,11 +21,12 @@
|
||||||
canSaveDynamicFields="false">
|
canSaveDynamicFields="false">
|
||||||
<GuiBitmapCtrl
|
<GuiBitmapCtrl
|
||||||
bitmap="data/ui/art/hudfill.png"
|
bitmap="data/ui/art/hudfill.png"
|
||||||
|
color="255 255 255 255"
|
||||||
wrap="false"
|
wrap="false"
|
||||||
position="0 0"
|
position="0 0"
|
||||||
extent="450 35"
|
extent="739 35"
|
||||||
minExtent="8 2"
|
minExtent="8 2"
|
||||||
horizSizing="right"
|
horizSizing="relative"
|
||||||
vertSizing="bottom"
|
vertSizing="bottom"
|
||||||
profile="GuiDefaultProfile"
|
profile="GuiDefaultProfile"
|
||||||
visible="true"
|
visible="true"
|
||||||
|
|
@ -35,104 +36,6 @@
|
||||||
isContainer="false"
|
isContainer="false"
|
||||||
canSave="true"
|
canSave="true"
|
||||||
canSaveDynamicFields="false" />
|
canSaveDynamicFields="false" />
|
||||||
<GuiContainer
|
|
||||||
margin="0 0 0 0"
|
|
||||||
padding="0 0 0 0"
|
|
||||||
anchorTop="true"
|
|
||||||
anchorBottom="false"
|
|
||||||
anchorLeft="true"
|
|
||||||
anchorRight="false"
|
|
||||||
position="450 0"
|
|
||||||
extent="250 35"
|
|
||||||
minExtent="8 2"
|
|
||||||
horizSizing="right"
|
|
||||||
vertSizing="bottom"
|
|
||||||
profile="GuiDefaultProfile"
|
|
||||||
visible="true"
|
|
||||||
active="true"
|
|
||||||
tooltipProfile="GuiToolTipProfile"
|
|
||||||
hovertime="1000"
|
|
||||||
isContainer="true"
|
|
||||||
canSave="true"
|
|
||||||
canSaveDynamicFields="false">
|
|
||||||
<GuiBitmapCtrl
|
|
||||||
bitmap="data/ui/art/hudfill.png"
|
|
||||||
wrap="false"
|
|
||||||
position="35 0"
|
|
||||||
extent="180 35"
|
|
||||||
minExtent="8 2"
|
|
||||||
horizSizing="right"
|
|
||||||
vertSizing="bottom"
|
|
||||||
profile="GuiDefaultProfile"
|
|
||||||
visible="true"
|
|
||||||
active="true"
|
|
||||||
tooltipProfile="GuiToolTipProfile"
|
|
||||||
hovertime="1000"
|
|
||||||
isContainer="false"
|
|
||||||
canSave="true"
|
|
||||||
canSaveDynamicFields="false" />
|
|
||||||
<GuiTextCtrl
|
|
||||||
text="High"
|
|
||||||
maxLength="1024"
|
|
||||||
margin="0 0 0 0"
|
|
||||||
padding="0 0 0 0"
|
|
||||||
anchorTop="true"
|
|
||||||
anchorBottom="false"
|
|
||||||
anchorLeft="true"
|
|
||||||
anchorRight="false"
|
|
||||||
position="35 0"
|
|
||||||
extent="180 35"
|
|
||||||
minExtent="8 2"
|
|
||||||
horizSizing="right"
|
|
||||||
vertSizing="bottom"
|
|
||||||
profile="GuiMenuButtonProfile"
|
|
||||||
visible="true"
|
|
||||||
active="true"
|
|
||||||
tooltipProfile="GuiToolTipProfile"
|
|
||||||
hovertime="1000"
|
|
||||||
isContainer="true"
|
|
||||||
internalName="SettingText"
|
|
||||||
canSave="true"
|
|
||||||
canSaveDynamicFields="false" />
|
|
||||||
<GuiButtonCtrl
|
|
||||||
text=">"
|
|
||||||
groupNum="-1"
|
|
||||||
buttonType="PushButton"
|
|
||||||
useMouseEvents="true"
|
|
||||||
position="215 0"
|
|
||||||
extent="35 35"
|
|
||||||
minExtent="8 8"
|
|
||||||
horizSizing="relative"
|
|
||||||
vertSizing="bottom"
|
|
||||||
profile="GuiMenuButtonProfile"
|
|
||||||
visible="true"
|
|
||||||
active="true"
|
|
||||||
tooltipProfile="GuiToolTipProfile"
|
|
||||||
hovertime="1000"
|
|
||||||
isContainer="false"
|
|
||||||
class="OptionsMenuForwardSetting"
|
|
||||||
canSave="true"
|
|
||||||
canSaveDynamicFields="false" />
|
|
||||||
<GuiButtonCtrl
|
|
||||||
text="<"
|
|
||||||
groupNum="-1"
|
|
||||||
buttonType="PushButton"
|
|
||||||
useMouseEvents="true"
|
|
||||||
position="0 0"
|
|
||||||
extent="35 35"
|
|
||||||
minExtent="8 8"
|
|
||||||
horizSizing="relative"
|
|
||||||
vertSizing="bottom"
|
|
||||||
profile="GuiMenuButtonProfile"
|
|
||||||
visible="true"
|
|
||||||
active="true"
|
|
||||||
tooltipProfile="GuiToolTipProfile"
|
|
||||||
hovertime="1000"
|
|
||||||
isContainer="false"
|
|
||||||
class="OptionsMenuBackSetting"
|
|
||||||
canSave="true"
|
|
||||||
canSaveDynamicFields="false" />
|
|
||||||
</GuiContainer>
|
|
||||||
<GuiTextCtrl
|
<GuiTextCtrl
|
||||||
text="Shadow Quality"
|
text="Shadow Quality"
|
||||||
maxLength="1024"
|
maxLength="1024"
|
||||||
|
|
@ -143,9 +46,9 @@
|
||||||
anchorLeft="true"
|
anchorLeft="true"
|
||||||
anchorRight="false"
|
anchorRight="false"
|
||||||
position="0 0"
|
position="0 0"
|
||||||
extent="450 35"
|
extent="350 35"
|
||||||
minExtent="8 2"
|
minExtent="8 2"
|
||||||
horizSizing="right"
|
horizSizing="relative"
|
||||||
vertSizing="bottom"
|
vertSizing="bottom"
|
||||||
profile="GuiMenuButtonProfile"
|
profile="GuiMenuButtonProfile"
|
||||||
visible="true"
|
visible="true"
|
||||||
|
|
@ -156,4 +59,65 @@
|
||||||
internalName="nameText"
|
internalName="nameText"
|
||||||
canSave="true"
|
canSave="true"
|
||||||
canSaveDynamicFields="false" />
|
canSaveDynamicFields="false" />
|
||||||
|
<GuiTextCtrl
|
||||||
|
text="High"
|
||||||
|
maxLength="1024"
|
||||||
|
margin="0 0 0 0"
|
||||||
|
padding="0 0 0 0"
|
||||||
|
anchorTop="true"
|
||||||
|
anchorBottom="false"
|
||||||
|
anchorLeft="true"
|
||||||
|
anchorRight="false"
|
||||||
|
position="350 0"
|
||||||
|
extent="350 35"
|
||||||
|
minExtent="8 2"
|
||||||
|
horizSizing="relative"
|
||||||
|
vertSizing="bottom"
|
||||||
|
profile="GuiMenuButtonProfile"
|
||||||
|
visible="true"
|
||||||
|
active="true"
|
||||||
|
tooltipProfile="GuiToolTipProfile"
|
||||||
|
hovertime="1000"
|
||||||
|
isContainer="true"
|
||||||
|
internalName="SettingText"
|
||||||
|
canSave="true"
|
||||||
|
canSaveDynamicFields="false" />
|
||||||
|
<GuiButtonCtrl
|
||||||
|
text=">"
|
||||||
|
groupNum="-1"
|
||||||
|
buttonType="PushButton"
|
||||||
|
useMouseEvents="true"
|
||||||
|
position="682 0"
|
||||||
|
extent="36 35"
|
||||||
|
minExtent="8 8"
|
||||||
|
horizSizing="relative"
|
||||||
|
vertSizing="bottom"
|
||||||
|
profile="GuiMenuButtonProfile"
|
||||||
|
visible="true"
|
||||||
|
active="true"
|
||||||
|
tooltipProfile="GuiToolTipProfile"
|
||||||
|
hovertime="1000"
|
||||||
|
isContainer="false"
|
||||||
|
class="OptionsMenuForwardSetting"
|
||||||
|
canSave="true"
|
||||||
|
canSaveDynamicFields="false" />
|
||||||
|
<GuiButtonCtrl
|
||||||
|
text="<"
|
||||||
|
groupNum="-1"
|
||||||
|
buttonType="PushButton"
|
||||||
|
useMouseEvents="true"
|
||||||
|
position="348 0"
|
||||||
|
extent="36 35"
|
||||||
|
minExtent="8 8"
|
||||||
|
horizSizing="relative"
|
||||||
|
vertSizing="bottom"
|
||||||
|
profile="GuiMenuButtonProfile"
|
||||||
|
visible="true"
|
||||||
|
active="true"
|
||||||
|
tooltipProfile="GuiToolTipProfile"
|
||||||
|
hovertime="1000"
|
||||||
|
isContainer="false"
|
||||||
|
class="OptionsMenuBackSetting"
|
||||||
|
canSave="true"
|
||||||
|
canSaveDynamicFields="false" />
|
||||||
</GuiContainer>
|
</GuiContainer>
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ exec( "tools/gui/profiles.ed.cs" );
|
||||||
isContainer = "1";
|
isContainer = "1";
|
||||||
canSave = "1";
|
canSave = "1";
|
||||||
canSaveDynamicFields = "1";
|
canSaveDynamicFields = "1";
|
||||||
enabled = "1";
|
Enabled = "1";
|
||||||
isDecoy = "0";
|
isDecoy = "0";
|
||||||
|
|
||||||
new GuiBitmapButtonCtrl(MainMenuAppLogo) {
|
new GuiBitmapButtonCtrl(MainMenuAppLogo) {
|
||||||
|
|
@ -47,10 +47,10 @@ exec( "tools/gui/profiles.ed.cs" );
|
||||||
canSaveDynamicFields = "1";
|
canSaveDynamicFields = "1";
|
||||||
};
|
};
|
||||||
new GuiControl(MainMenuButtonContainer) {
|
new GuiControl(MainMenuButtonContainer) {
|
||||||
position = "557 193";
|
position = "20 193";
|
||||||
extent = "442 381";
|
extent = "442 381";
|
||||||
minExtent = "8 2";
|
minExtent = "8 2";
|
||||||
horizSizing = "left";
|
horizSizing = "right";
|
||||||
vertSizing = "center";
|
vertSizing = "center";
|
||||||
profile = "GuiDefaultProfile";
|
profile = "GuiDefaultProfile";
|
||||||
visible = "1";
|
visible = "1";
|
||||||
|
|
@ -97,7 +97,7 @@ exec( "tools/gui/profiles.ed.cs" );
|
||||||
minExtent = "8 8";
|
minExtent = "8 8";
|
||||||
horizSizing = "relative";
|
horizSizing = "relative";
|
||||||
vertSizing = "bottom";
|
vertSizing = "bottom";
|
||||||
profile = "GuiBlankMenuButtonProfile";
|
profile = "GuiMenuButtonProfile";
|
||||||
visible = "1";
|
visible = "1";
|
||||||
active = "1";
|
active = "1";
|
||||||
command = "MainMenuGui.openSinglePlayerMenu();";
|
command = "MainMenuGui.openSinglePlayerMenu();";
|
||||||
|
|
@ -117,7 +117,7 @@ exec( "tools/gui/profiles.ed.cs" );
|
||||||
minExtent = "8 8";
|
minExtent = "8 8";
|
||||||
horizSizing = "relative";
|
horizSizing = "relative";
|
||||||
vertSizing = "bottom";
|
vertSizing = "bottom";
|
||||||
profile = "GuiBlankMenuButtonProfile";
|
profile = "GuiMenuButtonProfile";
|
||||||
visible = "1";
|
visible = "1";
|
||||||
active = "1";
|
active = "1";
|
||||||
command = "MainMenuGui.openMultiPlayerMenu();";
|
command = "MainMenuGui.openMultiPlayerMenu();";
|
||||||
|
|
@ -137,7 +137,7 @@ exec( "tools/gui/profiles.ed.cs" );
|
||||||
minExtent = "8 8";
|
minExtent = "8 8";
|
||||||
horizSizing = "relative";
|
horizSizing = "relative";
|
||||||
vertSizing = "bottom";
|
vertSizing = "bottom";
|
||||||
profile = "GuiBlankMenuButtonProfile";
|
profile = "GuiMenuButtonProfile";
|
||||||
visible = "1";
|
visible = "1";
|
||||||
active = "1";
|
active = "1";
|
||||||
command = "Canvas.pushDialog(JoinServerMenu);";
|
command = "Canvas.pushDialog(JoinServerMenu);";
|
||||||
|
|
@ -157,7 +157,7 @@ exec( "tools/gui/profiles.ed.cs" );
|
||||||
minExtent = "8 8";
|
minExtent = "8 8";
|
||||||
horizSizing = "relative";
|
horizSizing = "relative";
|
||||||
vertSizing = "bottom";
|
vertSizing = "bottom";
|
||||||
profile = "GuiBlankMenuButtonProfile";
|
profile = "GuiMenuButtonProfile";
|
||||||
visible = "1";
|
visible = "1";
|
||||||
active = "1";
|
active = "1";
|
||||||
command = "MainMenuGui.openOptionsMenu();";
|
command = "MainMenuGui.openOptionsMenu();";
|
||||||
|
|
@ -177,7 +177,7 @@ exec( "tools/gui/profiles.ed.cs" );
|
||||||
minExtent = "8 8";
|
minExtent = "8 8";
|
||||||
horizSizing = "relative";
|
horizSizing = "relative";
|
||||||
vertSizing = "bottom";
|
vertSizing = "bottom";
|
||||||
profile = "GuiBlankMenuButtonProfile";
|
profile = "GuiMenuButtonProfile";
|
||||||
visible = "1";
|
visible = "1";
|
||||||
active = "1";
|
active = "1";
|
||||||
command = "fastLoadWorldEdit(1);";
|
command = "fastLoadWorldEdit(1);";
|
||||||
|
|
@ -197,7 +197,7 @@ exec( "tools/gui/profiles.ed.cs" );
|
||||||
minExtent = "8 8";
|
minExtent = "8 8";
|
||||||
horizSizing = "relative";
|
horizSizing = "relative";
|
||||||
vertSizing = "bottom";
|
vertSizing = "bottom";
|
||||||
profile = "GuiBlankMenuButtonProfile";
|
profile = "GuiMenuButtonProfile";
|
||||||
visible = "1";
|
visible = "1";
|
||||||
active = "1";
|
active = "1";
|
||||||
command = "fastLoadGUIEdit(1);";
|
command = "fastLoadGUIEdit(1);";
|
||||||
|
|
@ -217,7 +217,7 @@ exec( "tools/gui/profiles.ed.cs" );
|
||||||
minExtent = "8 8";
|
minExtent = "8 8";
|
||||||
horizSizing = "relative";
|
horizSizing = "relative";
|
||||||
vertSizing = "bottom";
|
vertSizing = "bottom";
|
||||||
profile = "GuiBlankMenuButtonProfile";
|
profile = "GuiMenuButtonProfile";
|
||||||
visible = "1";
|
visible = "1";
|
||||||
active = "1";
|
active = "1";
|
||||||
command = "quit();";
|
command = "quit();";
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@
|
||||||
canSaveDynamicFields = "0";
|
canSaveDynamicFields = "0";
|
||||||
};
|
};
|
||||||
new GuiControl() {
|
new GuiControl() {
|
||||||
position = "139 118";
|
position = "162 125";
|
||||||
extent = "700 518";
|
extent = "700 518";
|
||||||
minExtent = "8 2";
|
minExtent = "8 2";
|
||||||
horizSizing = "center";
|
horizSizing = "center";
|
||||||
|
|
@ -5698,5 +5698,222 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
new GuiControl() {
|
||||||
|
position = "20 70";
|
||||||
|
extent = "380 602";
|
||||||
|
minExtent = "8 2";
|
||||||
|
horizSizing = "relative";
|
||||||
|
vertSizing = "relative";
|
||||||
|
profile = "GuiDefaultProfile";
|
||||||
|
visible = "1";
|
||||||
|
active = "1";
|
||||||
|
tooltipProfile = "GuiToolTipProfile";
|
||||||
|
hovertime = "1000";
|
||||||
|
isContainer = "1";
|
||||||
|
canSave = "1";
|
||||||
|
canSaveDynamicFields = "0";
|
||||||
|
|
||||||
|
new GuiBitmapCtrl() {
|
||||||
|
bitmap = "data/ui/art/hudfill.png";
|
||||||
|
color = "255 255 255 255";
|
||||||
|
wrap = "0";
|
||||||
|
position = "0 0";
|
||||||
|
extent = "380 602";
|
||||||
|
minExtent = "8 2";
|
||||||
|
horizSizing = "width";
|
||||||
|
vertSizing = "height";
|
||||||
|
profile = "GuiDefaultProfile";
|
||||||
|
visible = "1";
|
||||||
|
active = "1";
|
||||||
|
tooltipProfile = "GuiToolTipProfile";
|
||||||
|
hovertime = "1000";
|
||||||
|
isContainer = "0";
|
||||||
|
canSave = "1";
|
||||||
|
canSaveDynamicFields = "0";
|
||||||
|
};
|
||||||
|
new GuiControl() {
|
||||||
|
position = "0 0";
|
||||||
|
extent = "380 20";
|
||||||
|
minExtent = "8 2";
|
||||||
|
horizSizing = "width";
|
||||||
|
vertSizing = "bottom";
|
||||||
|
profile = "GuiDefaultProfile";
|
||||||
|
visible = "1";
|
||||||
|
active = "1";
|
||||||
|
tooltipProfile = "GuiToolTipProfile";
|
||||||
|
hovertime = "1000";
|
||||||
|
isContainer = "1";
|
||||||
|
canSave = "1";
|
||||||
|
canSaveDynamicFields = "0";
|
||||||
|
|
||||||
|
new GuiBitmapCtrl() {
|
||||||
|
bitmap = "data/ui/art/hudfill.png";
|
||||||
|
color = "255 255 255 255";
|
||||||
|
wrap = "0";
|
||||||
|
position = "0 0";
|
||||||
|
extent = "380 20";
|
||||||
|
minExtent = "8 2";
|
||||||
|
horizSizing = "width";
|
||||||
|
vertSizing = "height";
|
||||||
|
profile = "GuiDefaultProfile";
|
||||||
|
visible = "1";
|
||||||
|
active = "1";
|
||||||
|
tooltipProfile = "GuiToolTipProfile";
|
||||||
|
hovertime = "1000";
|
||||||
|
isContainer = "0";
|
||||||
|
canSave = "1";
|
||||||
|
canSaveDynamicFields = "0";
|
||||||
|
};
|
||||||
|
new GuiTextCtrl() {
|
||||||
|
text = "Options";
|
||||||
|
maxLength = "1024";
|
||||||
|
margin = "0 0 0 0";
|
||||||
|
padding = "0 0 0 0";
|
||||||
|
anchorTop = "1";
|
||||||
|
anchorBottom = "0";
|
||||||
|
anchorLeft = "1";
|
||||||
|
anchorRight = "0";
|
||||||
|
position = "0 0";
|
||||||
|
extent = "380 20";
|
||||||
|
minExtent = "8 2";
|
||||||
|
horizSizing = "width";
|
||||||
|
vertSizing = "bottom";
|
||||||
|
profile = "GuiMenuButtonProfile";
|
||||||
|
visible = "1";
|
||||||
|
active = "1";
|
||||||
|
tooltipProfile = "GuiToolTipProfile";
|
||||||
|
hovertime = "1000";
|
||||||
|
isContainer = "1";
|
||||||
|
canSave = "1";
|
||||||
|
canSaveDynamicFields = "0";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
new GuiScrollCtrl() {
|
||||||
|
willFirstRespond = "1";
|
||||||
|
hScrollBar = "alwaysOff";
|
||||||
|
vScrollBar = "dynamic";
|
||||||
|
lockHorizScroll = "0";
|
||||||
|
lockVertScroll = "0";
|
||||||
|
constantThumbHeight = "0";
|
||||||
|
childMargin = "0 0";
|
||||||
|
mouseWheelScrollSpeed = "-1";
|
||||||
|
margin = "0 0 0 0";
|
||||||
|
padding = "0 0 0 0";
|
||||||
|
anchorTop = "1";
|
||||||
|
anchorBottom = "0";
|
||||||
|
anchorLeft = "1";
|
||||||
|
anchorRight = "0";
|
||||||
|
position = "0 25";
|
||||||
|
extent = "380 577";
|
||||||
|
minExtent = "8 2";
|
||||||
|
horizSizing = "width";
|
||||||
|
vertSizing = "height";
|
||||||
|
profile = "GuiScrollProfile";
|
||||||
|
visible = "1";
|
||||||
|
active = "1";
|
||||||
|
tooltipProfile = "GuiToolTipProfile";
|
||||||
|
hovertime = "1000";
|
||||||
|
isContainer = "1";
|
||||||
|
canSave = "1";
|
||||||
|
canSaveDynamicFields = "0";
|
||||||
|
|
||||||
|
new GuiStackControl(OptionsSettingStack) {
|
||||||
|
stackingType = "Vertical";
|
||||||
|
horizStacking = "Left to Right";
|
||||||
|
vertStacking = "Top to Bottom";
|
||||||
|
padding = "0";
|
||||||
|
dynamicSize = "1";
|
||||||
|
dynamicNonStackExtent = "0";
|
||||||
|
dynamicPos = "0";
|
||||||
|
changeChildSizeToFit = "1";
|
||||||
|
changeChildPosition = "1";
|
||||||
|
position = "1 1";
|
||||||
|
extent = "380 64";
|
||||||
|
minExtent = "16 16";
|
||||||
|
horizSizing = "width";
|
||||||
|
vertSizing = "bottom";
|
||||||
|
profile = "GuiDefaultProfile";
|
||||||
|
visible = "1";
|
||||||
|
active = "1";
|
||||||
|
tooltipProfile = "GuiToolTipProfile";
|
||||||
|
hovertime = "1000";
|
||||||
|
isContainer = "1";
|
||||||
|
canSave = "1";
|
||||||
|
canSaveDynamicFields = "0";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
new GuiControl() {
|
||||||
|
position = "416 96";
|
||||||
|
extent = "576 576";
|
||||||
|
minExtent = "8 2";
|
||||||
|
horizSizing = "relative";
|
||||||
|
vertSizing = "relative";
|
||||||
|
profile = "GuiDefaultProfile";
|
||||||
|
visible = "1";
|
||||||
|
active = "1";
|
||||||
|
tooltipProfile = "GuiToolTipProfile";
|
||||||
|
hovertime = "1000";
|
||||||
|
isContainer = "1";
|
||||||
|
canSave = "1";
|
||||||
|
canSaveDynamicFields = "0";
|
||||||
|
|
||||||
|
new GuiBitmapCtrl(OptionsPreviewCtrl) {
|
||||||
|
bitmap = "data/ui/art/hudfill.png";
|
||||||
|
color = "255 255 255 255";
|
||||||
|
wrap = "0";
|
||||||
|
position = "0 0";
|
||||||
|
extent = "576 576";
|
||||||
|
minExtent = "8 2";
|
||||||
|
horizSizing = "width";
|
||||||
|
vertSizing = "height";
|
||||||
|
profile = "GuiDefaultProfile";
|
||||||
|
visible = "1";
|
||||||
|
active = "1";
|
||||||
|
tooltipProfile = "GuiToolTipProfile";
|
||||||
|
hovertime = "1000";
|
||||||
|
isContainer = "0";
|
||||||
|
canSave = "1";
|
||||||
|
canSaveDynamicFields = "0";
|
||||||
|
};
|
||||||
|
new GuiBitmapCtrl() {
|
||||||
|
bitmap = "data/ui/art/no-preview.png";
|
||||||
|
color = "255 255 255 255";
|
||||||
|
wrap = "0";
|
||||||
|
position = "0 0";
|
||||||
|
extent = "577 528";
|
||||||
|
minExtent = "8 2";
|
||||||
|
horizSizing = "width";
|
||||||
|
vertSizing = "relative";
|
||||||
|
profile = "GuiDefaultProfile";
|
||||||
|
visible = "1";
|
||||||
|
active = "1";
|
||||||
|
tooltipProfile = "GuiToolTipProfile";
|
||||||
|
hovertime = "1000";
|
||||||
|
isContainer = "0";
|
||||||
|
canSave = "1";
|
||||||
|
canSaveDynamicFields = "0";
|
||||||
|
};
|
||||||
|
new GuiMLTextCtrl() {
|
||||||
|
lineSpacing = "2";
|
||||||
|
allowColorChars = "0";
|
||||||
|
maxChars = "-1";
|
||||||
|
text = "This is a test message to act as a tooltip for any selected options menus for more information on the given option.";
|
||||||
|
useURLMouseCursor = "0";
|
||||||
|
position = "0 528";
|
||||||
|
extent = "578 14";
|
||||||
|
minExtent = "8 2";
|
||||||
|
horizSizing = "width";
|
||||||
|
vertSizing = "top";
|
||||||
|
profile = "GuiMLWhiteTextProfile";
|
||||||
|
visible = "1";
|
||||||
|
active = "1";
|
||||||
|
tooltipProfile = "GuiToolTipProfile";
|
||||||
|
hovertime = "1000";
|
||||||
|
isContainer = "0";
|
||||||
|
canSave = "1";
|
||||||
|
canSaveDynamicFields = "0";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
//--- OBJECT WRITE END ---
|
//--- OBJECT WRITE END ---
|
||||||
|
|
|
||||||
|
|
@ -58,6 +58,87 @@ function OptionsMenu::onWake(%this)
|
||||||
OptionsOKButton.hidden = false;
|
OptionsOKButton.hidden = false;
|
||||||
OptionsCancelButton.hidden = false;
|
OptionsCancelButton.hidden = false;
|
||||||
OptionsDefaultsButton.hidden = false;
|
OptionsDefaultsButton.hidden = false;
|
||||||
|
|
||||||
|
OptionsMenu.tamlReader = new Taml();
|
||||||
|
|
||||||
|
OptionsSettingStack.clear();
|
||||||
|
|
||||||
|
%array = OptionsSettingStack;
|
||||||
|
%array.clear();
|
||||||
|
|
||||||
|
%controllerMenuBtn = new GuiButtonCtrl(){
|
||||||
|
text = "Keyboard and Mouse";
|
||||||
|
profile = GuiMenuButtonProfile;
|
||||||
|
extent = %array.extent.x SPC "35";
|
||||||
|
};
|
||||||
|
|
||||||
|
%displayMenuBtn = new GuiButtonCtrl(){
|
||||||
|
text = "Controller";
|
||||||
|
profile = GuiMenuButtonProfile;
|
||||||
|
extent = %array.extent.x SPC "35";
|
||||||
|
};
|
||||||
|
|
||||||
|
%keyboardMenuBtn = new GuiButtonCtrl(){
|
||||||
|
text = "Display";
|
||||||
|
profile = GuiMenuButtonProfile;
|
||||||
|
extent = %array.extent.x SPC "35";
|
||||||
|
};
|
||||||
|
|
||||||
|
%graphicsMenuBtn = new GuiButtonCtrl(){
|
||||||
|
text = "Graphics";
|
||||||
|
profile = GuiMenuButtonProfile;
|
||||||
|
extent = %array.extent.x SPC "35";
|
||||||
|
};
|
||||||
|
|
||||||
|
%audioMenuBtn = new GuiButtonCtrl(){
|
||||||
|
text = "Audio";
|
||||||
|
profile = GuiMenuButtonProfile;
|
||||||
|
extent = %array.extent.x SPC "35";
|
||||||
|
};
|
||||||
|
|
||||||
|
%gameplayMenuBtn = new GuiButtonCtrl(){
|
||||||
|
text = "Gameplay";
|
||||||
|
profile = GuiMenuButtonProfile;
|
||||||
|
extent = %array.extent.x SPC "35";
|
||||||
|
};
|
||||||
|
|
||||||
|
%array.add(%keyboardMenuBtn);
|
||||||
|
%array.add(%controllerMenuBtn);
|
||||||
|
%array.add(%displayMenuBtn);
|
||||||
|
%array.add(%graphicsMenuBtn);
|
||||||
|
%array.add(%audioMenuBtn);
|
||||||
|
%array.add(%gameplayMenuBtn);
|
||||||
|
|
||||||
|
//We programmatically set up our settings here so we can do some prepwork on the fields/controls
|
||||||
|
//Presets
|
||||||
|
/*OptionsMenu.addSettingOption(%array, "Preset", "High", ShadowQualityList, $pref::Video::Resolution);
|
||||||
|
|
||||||
|
//AA
|
||||||
|
OptionsMenu.addSettingOption(%array, "AntiAliasing", "FXAA 4x", ShadowQualityList, $pref::Video::Resolution);
|
||||||
|
|
||||||
|
//Lighting
|
||||||
|
OptionsMenu.addSettingOption(%array, "Shadow Quality", "High", ShadowQualityList, $pref::Video::Resolution);
|
||||||
|
OptionsMenu.addSettingOption(%array, "Shadow Caching", "On", ShadowQualityList, $pref::Video::Resolution);
|
||||||
|
OptionsMenu.addSettingOption(%array, "Soft Shadows", "High", ShadowQualityList, $pref::Video::Resolution);
|
||||||
|
|
||||||
|
//Models and Textures
|
||||||
|
OptionsMenu.addSettingOption(%array, "Level of Detail", "High", ShadowQualityList, $pref::Video::Resolution);
|
||||||
|
OptionsMenu.addSettingOption(%array, "Texture Quality", "High", ShadowQualityList, $pref::Video::Resolution);
|
||||||
|
OptionsMenu.addSettingOption(%array, "Material Quality", "High", ShadowQualityList, $pref::Video::Resolution);
|
||||||
|
OptionsMenu.addSettingOption(%array, "Terrain Detail", "High", ShadowQualityList, $pref::Video::Resolution);
|
||||||
|
OptionsMenu.addSettingOption(%array, "Decal Lifetime", "High", ShadowQualityList, $pref::Video::Resolution);
|
||||||
|
OptionsMenu.addSettingOption(%array, "Ground Clutter Density", "High", ShadowQualityList, $pref::Video::Resolution);
|
||||||
|
|
||||||
|
//Effects
|
||||||
|
OptionsMenu.addSettingOption(%array, "HDR", "On", ShadowQualityList, $pref::Video::Resolution);
|
||||||
|
OptionsMenu.addSettingOption(%array, "Parallax", "On", ShadowQualityList, $pref::Video::Resolution);
|
||||||
|
OptionsMenu.addSettingOption(%array, "Ambient Occlusion", "On", ShadowQualityList, $pref::Video::Resolution);
|
||||||
|
OptionsMenu.addSettingOption(%array, "Light Rays", "On", ShadowQualityList, $pref::Video::Resolution);
|
||||||
|
OptionsMenu.addSettingOption(%array, "Depth of Field", "On", ShadowQualityList, $pref::Video::Resolution);
|
||||||
|
OptionsMenu.addSettingOption(%array, "Vignetting", "On", ShadowQualityList, $pref::Video::Resolution);
|
||||||
|
OptionsMenu.addSettingOption(%array, "Water Reflections", "On", ShadowQualityList, $pref::Video::Resolution);
|
||||||
|
|
||||||
|
OptionsMenu.addSettingOption(%array, "Anisotropic Filtering", "16x", ShadowQualityList, $pref::Video::Resolution);*/
|
||||||
}
|
}
|
||||||
|
|
||||||
function OptionsMenuOKButton::onClick(%this)
|
function OptionsMenuOKButton::onClick(%this)
|
||||||
|
|
@ -139,53 +220,62 @@ function OptionsMenu::backOut(%this)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function OptionsMenu::addSettingOption(%this, %arrayTarget)
|
function OptionsMenu::addSettingOption(%this, %arrayTarget, %optionName, %defaultValue, %settingsGroup, %targetVar)
|
||||||
{
|
{
|
||||||
%graphicsOption = OptionsMenu.tamlReader.read("data/ui/scripts/guis/graphicsMenuSettingsCtrl.taml");
|
%option = TAMLRead("data/ui/scripts/guis/graphicsMenuSettingsCtrl.taml");
|
||||||
|
|
||||||
|
%option-->nameText.text = %optionName;
|
||||||
|
%option-->SettingText.text = %defaultValue;
|
||||||
|
%option.qualitySettingGroup = %settingsGroup;
|
||||||
|
%option.targetVar = %targetVar;
|
||||||
|
|
||||||
|
%option.init();
|
||||||
|
|
||||||
%arrayTarget.add(%graphicsOption);
|
%arrayTarget.add(%option);
|
||||||
|
|
||||||
return %graphicsOption;
|
return %option;
|
||||||
}
|
}
|
||||||
|
|
||||||
function OptionsMenu::addSliderOption(%this, %arrayTarget, %range, %ticks, %variable, %value, %class)
|
function OptionsMenu::addSliderOption(%this, %arrayTarget, %optionName, %variable, %range, %ticks, %value, %class)
|
||||||
{
|
{
|
||||||
%graphicsOption = OptionsMenu.tamlReader.read("data/ui/scripts/guis/graphicsMenuSettingsSlider.taml");
|
%option = TAMLRead("data/ui/scripts/guis/graphicsMenuSettingsSlider.taml");
|
||||||
|
|
||||||
|
%option-->nameText.text = %optionName;
|
||||||
|
|
||||||
%arrayTarget.add(%graphicsOption);
|
%arrayTarget.add(%option);
|
||||||
|
|
||||||
if(%range !$= "")
|
if(%range !$= "")
|
||||||
{
|
{
|
||||||
%graphicsOption-->slider.range = %range;
|
%option-->slider.range = %range;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(%ticks !$= "")
|
if(%ticks !$= "")
|
||||||
{
|
{
|
||||||
%graphicsOption-->slider.ticks = %ticks;
|
%option-->slider.ticks = %ticks;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(%variable !$= "")
|
if(%variable !$= "")
|
||||||
{
|
{
|
||||||
%graphicsOption-->slider.variable = %variable;
|
%option-->slider.variable = %variable;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(%value !$= "")
|
if(%value !$= "")
|
||||||
{
|
{
|
||||||
%graphicsOption-->slider.setValue(%value);
|
%option-->slider.setValue(%value);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(%class !$= "")
|
if(%class !$= "")
|
||||||
{
|
{
|
||||||
%graphicsOption-->slider.className = %class;
|
%option-->slider.className = %class;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
%graphicsOption-->slider.className = OptionsMenuSlider;
|
%option-->slider.className = OptionsMenuSlider;
|
||||||
|
|
||||||
%graphicsOption-->slider.snap = true;
|
%option-->slider.snap = true;
|
||||||
|
|
||||||
%graphicsOption-->slider.onValueSet();
|
%option-->slider.onValueSet();
|
||||||
|
|
||||||
return %graphicsOption;
|
return %option;
|
||||||
}
|
}
|
||||||
|
|
||||||
function OptionsMenuSlider::onMouseDragged(%this)
|
function OptionsMenuSlider::onMouseDragged(%this)
|
||||||
|
|
@ -208,6 +298,65 @@ function FOVOptionSlider::onValueSet(%this)
|
||||||
%this.getParent().getParent()-->valueText.setText(mRound(%this.value));
|
%this.getParent().getParent()-->valueText.setText(mRound(%this.value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function OptionsMenuForwardSetting::onClick(%this)
|
||||||
|
{
|
||||||
|
//we need to advance through the value list, unless it's the end, in which case we do nothing
|
||||||
|
echo("Move forward in the list!");
|
||||||
|
|
||||||
|
%settingCtrl = %this.getParent();
|
||||||
|
for ( %i=0; %i < %settingCtrl.qualitySettingGroup.getCount(); %i++ )
|
||||||
|
{
|
||||||
|
%level = %settingCtrl.qualitySettingGroup.getObject( %i );
|
||||||
|
|
||||||
|
if(%settingCtrl.selectedLevel == %i)
|
||||||
|
{
|
||||||
|
//k, shift it
|
||||||
|
if(%i == %settingCtrl.qualitySettingGroup.getCount() - 1)
|
||||||
|
{
|
||||||
|
//oh, we're at the end. Do nothing.
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
%newLevel = %settingCtrl.qualitySettingGroup.getObject( %i + 1 );
|
||||||
|
%settingCtrl-->SettingText.setText( %newLevel.displayName );
|
||||||
|
OptionsPreviewCtrl.bitmap = %newLevel.previewImage;
|
||||||
|
%settingCtrl.selectedLevel = %i + 1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function OptionsMenuBackSetting::onClick(%this)
|
||||||
|
{
|
||||||
|
//we need to advance through the value list, unless it's the end, in which case we do nothing
|
||||||
|
echo("Move back in the list!");
|
||||||
|
|
||||||
|
%settingCtrl = %this.getParent();
|
||||||
|
for ( %i=0; %i < %settingCtrl.qualitySettingGroup.getCount(); %i++ )
|
||||||
|
{
|
||||||
|
%level = %settingCtrl.qualitySettingGroup.getObject( %i );
|
||||||
|
|
||||||
|
if(%settingCtrl.selectedLevel == %i)
|
||||||
|
{
|
||||||
|
//k, shift it
|
||||||
|
if(%i == 0)
|
||||||
|
{
|
||||||
|
//oh, we're at the end. Do nothing.
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
%newLevel = %settingCtrl.qualitySettingGroup.getObject( %i - 1 );
|
||||||
|
%settingCtrl-->SettingText.setText( %newLevel.displayName );
|
||||||
|
%settingCtrl.selectedLevel = %i - 1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Returns true if the current quality settings equal
|
/// Returns true if the current quality settings equal
|
||||||
/// this graphics quality level.
|
/// this graphics quality level.
|
||||||
function OptionsMenuSettingLevel::isCurrent( %this )
|
function OptionsMenuSettingLevel::isCurrent( %this )
|
||||||
|
|
|
||||||
|
|
@ -71,10 +71,13 @@ function AssetBrowser::onBeginDropFiles( %this )
|
||||||
%this.importAssetUnprocessedListArray.empty();
|
%this.importAssetUnprocessedListArray.empty();
|
||||||
%this.importAssetFinalListArray.empty();
|
%this.importAssetFinalListArray.empty();
|
||||||
|
|
||||||
|
ImportAssetWindow.assetHeirarchyChanged = false;
|
||||||
|
|
||||||
//prep the import control
|
//prep the import control
|
||||||
Canvas.pushDialog(AssetImportCtrl);
|
Canvas.pushDialog(AssetImportCtrl);
|
||||||
AssetImportCtrl.setHidden(true);
|
AssetImportCtrl.setHidden(true);
|
||||||
ImportAssetTree.clear();
|
ImportAssetTree.clear();
|
||||||
|
ImportAssetTree.insertItem(0, "Importing Assets");
|
||||||
AssetBrowser.unprocessedAssetsCount = 0;
|
AssetBrowser.unprocessedAssetsCount = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -380,6 +383,12 @@ function AssetBrowser::addImportingAsset( %this, %assetType, %filePath, %parentA
|
||||||
%shapeInfo = new GuiTreeViewCtrl();
|
%shapeInfo = new GuiTreeViewCtrl();
|
||||||
enumColladaForImport(%assetItem.filePath, %shapeInfo, false);
|
enumColladaForImport(%assetItem.filePath, %shapeInfo, false);
|
||||||
}
|
}
|
||||||
|
else if(%fileExt $= ".dts")
|
||||||
|
{
|
||||||
|
%shapeInfo = new GuiTreeViewCtrl();
|
||||||
|
%shapeInfo.insertItem(0, "Shape", 1);
|
||||||
|
%shapeInfo.insertItem(0, "Animations", 0);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
%shapeInfo = GetShapeInfo(%assetItem.filePath);
|
%shapeInfo = GetShapeInfo(%assetItem.filePath);
|
||||||
|
|
@ -412,7 +421,7 @@ function AssetBrowser::addImportingAsset( %this, %assetType, %filePath, %parentA
|
||||||
|
|
||||||
if(%parentAssetItem $= "")
|
if(%parentAssetItem $= "")
|
||||||
{
|
{
|
||||||
ImportAssetTree.insertObject(0, %assetItem);
|
ImportAssetTree.insertObject(1, %assetItem);
|
||||||
|
|
||||||
//%assetItem.parentDepth = 0;
|
//%assetItem.parentDepth = 0;
|
||||||
//%this.importAssetNewListArray.add(%assetItem);
|
//%this.importAssetNewListArray.add(%assetItem);
|
||||||
|
|
@ -422,14 +431,6 @@ function AssetBrowser::addImportingAsset( %this, %assetType, %filePath, %parentA
|
||||||
{
|
{
|
||||||
%parentid = ImportAssetTree.findItemByObjectId(%parentAssetItem);
|
%parentid = ImportAssetTree.findItemByObjectId(%parentAssetItem);
|
||||||
ImportAssetTree.insertObject(%parentid, %assetItem);
|
ImportAssetTree.insertObject(%parentid, %assetItem);
|
||||||
|
|
||||||
//%assetItem.parentDepth = %parentAssetItem.parentDepth + 1;
|
|
||||||
//%parentIndex = %this.importAssetUnprocessedListArray.getIndexFromKey(%parentAssetItem);
|
|
||||||
|
|
||||||
//%parentAssetItem.dependencies = %parentAssetItem.dependencies SPC %assetItem;
|
|
||||||
//trim(%parentAssetItem.dependencies);
|
|
||||||
|
|
||||||
//%this.importAssetUnprocessedListArray.insert(%assetItem, "", %parentIndex + 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
%this.unprocessedAssetsCount++;
|
%this.unprocessedAssetsCount++;
|
||||||
|
|
@ -669,7 +670,7 @@ function ImportAssetWindow::processNewImportAssets(%this, %id)
|
||||||
{
|
{
|
||||||
%assetItem = ImportAssetTree.getItemObject(%id);
|
%assetItem = ImportAssetTree.getItemObject(%id);
|
||||||
|
|
||||||
if(%assetItem.processed == false)
|
if(isObject(%assetItem) && %assetItem.processed == false)
|
||||||
{
|
{
|
||||||
%assetConfigObj = ImportAssetWindow.activeImportConfig.clone();
|
%assetConfigObj = ImportAssetWindow.activeImportConfig.clone();
|
||||||
%assetConfigObj.assetIndex = %i;
|
%assetConfigObj.assetIndex = %i;
|
||||||
|
|
@ -794,10 +795,6 @@ function ImportAssetWindow::processNewImportAssets(%this, %id)
|
||||||
%assetItem.processed = true;
|
%assetItem.processed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//AssetBrowser.importAssetUnprocessedListArray.erase(0);
|
|
||||||
//Been processed, so add it to our final list
|
|
||||||
//AssetBrowser.importAssetFinalListArray.add(%assetItem);
|
|
||||||
|
|
||||||
if(ImportAssetTree.isParentItem(%id))
|
if(ImportAssetTree.isParentItem(%id))
|
||||||
{
|
{
|
||||||
%childItem = ImportAssetTree.getChild(%id);
|
%childItem = ImportAssetTree.getChild(%id);
|
||||||
|
|
@ -806,13 +803,25 @@ function ImportAssetWindow::processNewImportAssets(%this, %id)
|
||||||
%this.processNewImportAssets(%childItem);
|
%this.processNewImportAssets(%childItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
%id = ImportAssetTree.getNextSibling(%id);
|
//It's possible we restructured our asset heirarchy(generated assets being parents, etc
|
||||||
|
//If that's happened, we need to back out of the current processing and restart to ensure we catch everything
|
||||||
|
if(ImportAssetWindow.assetHeirarchyChanged)
|
||||||
|
%id = -1; //breaks the loop
|
||||||
|
else
|
||||||
|
%id = ImportAssetTree.getNextSibling(%id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//We have a forced break out of the loop, so lets check if it's because the heirarchy changed.
|
||||||
|
//If so, reprocess
|
||||||
|
/*if(%id == -1 && ImportAssetWindow.assetHeirarchyChanged)
|
||||||
|
{
|
||||||
|
ImportAssetWindow.refresh();
|
||||||
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
function ImportAssetWindow::findImportingAssetByName(%this, %assetName)
|
function ImportAssetWindow::findImportingAssetByName(%this, %assetName)
|
||||||
{
|
{
|
||||||
%id = ImportAssetTree.getFirstRootItem();
|
%id = ImportAssetTree.getChild(1);
|
||||||
|
|
||||||
return %this._findImportingAssetByName(%id, %assetName);
|
return %this._findImportingAssetByName(%id, %assetName);
|
||||||
}
|
}
|
||||||
|
|
@ -823,9 +832,9 @@ function ImportAssetWindow::_findImportingAssetByName(%this, %id, %assetName)
|
||||||
{
|
{
|
||||||
%assetItem = ImportAssetTree.getItemObject(%id);
|
%assetItem = ImportAssetTree.getItemObject(%id);
|
||||||
|
|
||||||
if(%assetItem.cleanAssetName $= %assetName)
|
if(isObject(%assetItem) && %assetItem.cleanAssetName $= %assetName)
|
||||||
{
|
{
|
||||||
return %asset;
|
return %assetItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(ImportAssetTree.isParentItem(%id))
|
if(ImportAssetTree.isParentItem(%id))
|
||||||
|
|
@ -1023,7 +1032,9 @@ function refreshImportAssetWindow()
|
||||||
function ImportAssetWindow::refresh(%this)
|
function ImportAssetWindow::refresh(%this)
|
||||||
{
|
{
|
||||||
//Go through and process any newly, unprocessed assets
|
//Go through and process any newly, unprocessed assets
|
||||||
%id = ImportAssetTree.getFirstRootItem();
|
%id = ImportAssetTree.getChild(1);
|
||||||
|
|
||||||
|
ImportAssetWindow.assetHeirarchyChanged = false;
|
||||||
|
|
||||||
%this.processNewImportAssets(%id);
|
%this.processNewImportAssets(%id);
|
||||||
|
|
||||||
|
|
@ -1035,9 +1046,9 @@ function ImportAssetWindow::refresh(%this)
|
||||||
{
|
{
|
||||||
//We've processed them all, prep the assets for actual importing
|
//We've processed them all, prep the assets for actual importing
|
||||||
//Initial set of assets
|
//Initial set of assets
|
||||||
%id = ImportAssetTree.getFirstRootItem();
|
%id = ImportAssetTree.getChild(1);
|
||||||
|
|
||||||
//recurse!
|
//recurse!
|
||||||
%this.refreshChildItem(%id);
|
%this.refreshChildItem(%id);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -1053,7 +1064,7 @@ function ImportAssetWindow::refreshChildItem(%this, %id)
|
||||||
{
|
{
|
||||||
%assetItem = ImportAssetTree.getItemObject(%id);
|
%assetItem = ImportAssetTree.getItemObject(%id);
|
||||||
|
|
||||||
if(%assetItem.skip)
|
if(!isObject(%assetItem) || %assetItem.skip)
|
||||||
{
|
{
|
||||||
%id = ImportAssetTree.getNextSibling(%id);
|
%id = ImportAssetTree.getNextSibling(%id);
|
||||||
continue;
|
continue;
|
||||||
|
|
@ -1395,7 +1406,7 @@ function ImportAssetWindow::ImportAssets(%this)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
%id = ImportAssetTree.getFirstRootItem();
|
%id = ImportAssetTree.getChild(1);
|
||||||
|
|
||||||
%this.doImportAssets(%id);
|
%this.doImportAssets(%id);
|
||||||
|
|
||||||
|
|
@ -1412,7 +1423,7 @@ function ImportAssetWindow::doImportAssets(%this, %id)
|
||||||
{
|
{
|
||||||
%assetItem = ImportAssetTree.getItemObject(%id);
|
%assetItem = ImportAssetTree.getItemObject(%id);
|
||||||
|
|
||||||
if(%assetItem.skip)
|
if(!isObject(%assetItem) || %assetItem.skip)
|
||||||
{
|
{
|
||||||
%id = ImportAssetTree.getNextSibling(%id);
|
%id = ImportAssetTree.getNextSibling(%id);
|
||||||
continue;
|
continue;
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ function AssetBrowser::prepareImportImageAsset(%this, %assetItem)
|
||||||
|
|
||||||
//Check if our material already exists
|
//Check if our material already exists
|
||||||
//First, lets double-check that we don't already have an
|
//First, lets double-check that we don't already have an
|
||||||
%materialAsset = AssetBrowser.doesAssetItemAlreadyExist(%noSuffixName);
|
%materialAsset = ImportAssetWindow.findImportingAssetByName(%noSuffixName);
|
||||||
if(%materialAsset == 0)
|
if(%materialAsset == 0)
|
||||||
{
|
{
|
||||||
%filePath = %assetItem.filePath;
|
%filePath = %assetItem.filePath;
|
||||||
|
|
@ -32,9 +32,12 @@ function AssetBrowser::prepareImportImageAsset(%this, %assetItem)
|
||||||
%materialItemId = ImportAssetTree.findItemByObjectId(%materialAsset);
|
%materialItemId = ImportAssetTree.findItemByObjectId(%materialAsset);
|
||||||
|
|
||||||
%assetItem.parentId = %materialItemId;
|
%assetItem.parentId = %materialItemId;
|
||||||
|
%assetItem.parentAssetItem = %materialAsset;
|
||||||
|
|
||||||
ImportAssetTree.reparentItem(%itemId, %materialItemId);
|
ImportAssetTree.reparentItem(%itemId, %materialItemId);
|
||||||
|
|
||||||
|
ImportAssetWindow.assetHeirarchyChanged = true;
|
||||||
|
|
||||||
ImportAssetTree.buildVisibleTree(true);
|
ImportAssetTree.buildVisibleTree(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -134,8 +137,9 @@ function AssetBrowser::buildImageAssetPreview(%this, %assetDef, %previewData)
|
||||||
%previewData.assetPath = %assetDef.scriptFile;
|
%previewData.assetPath = %assetDef.scriptFile;
|
||||||
//%previewData.doubleClickCommand = "EditorOpenFileInTorsion( "@%previewData.assetPath@", 0 );";
|
//%previewData.doubleClickCommand = "EditorOpenFileInTorsion( "@%previewData.assetPath@", 0 );";
|
||||||
|
|
||||||
if(isFile(%assetDef.imageFile))
|
%imageFilePath = %assetDef.getImageFilename();
|
||||||
%previewData.previewImage = %assetDef.imageFile;
|
if(isFile(%imageFilePath))
|
||||||
|
%previewData.previewImage = %imageFilePath;
|
||||||
else
|
else
|
||||||
%previewData.previewImage = "core/rendering/images/unavailable";
|
%previewData.previewImage = "core/rendering/images/unavailable";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -314,7 +314,7 @@ function AssetBrowser::importMaterialAsset(%this, %assetItem)
|
||||||
%assetPath = "data/" @ %moduleName @ "/materials";
|
%assetPath = "data/" @ %moduleName @ "/materials";
|
||||||
%tamlpath = %assetPath @ "/" @ %assetName @ ".asset.taml";
|
%tamlpath = %assetPath @ "/" @ %assetName @ ".asset.taml";
|
||||||
%sgfPath = %assetPath @ "/" @ %assetName @ ".sgf";
|
%sgfPath = %assetPath @ "/" @ %assetName @ ".sgf";
|
||||||
%scriptPath = %assetPath @ "/" @ %assetName @ ".cs";
|
%scriptPath = %assetName @ ".cs";
|
||||||
|
|
||||||
%newAsset = new MaterialAsset()
|
%newAsset = new MaterialAsset()
|
||||||
{
|
{
|
||||||
|
|
@ -363,7 +363,6 @@ function AssetBrowser::importMaterialAsset(%this, %assetItem)
|
||||||
if(%assetItem.diffuseImageAsset !$= "")
|
if(%assetItem.diffuseImageAsset !$= "")
|
||||||
{
|
{
|
||||||
%diffuseAssetPath = "data/" @ %moduleName @ "/Images/" @ fileName(%assetItem.diffuseImageAsset.filePath);
|
%diffuseAssetPath = "data/" @ %moduleName @ "/Images/" @ fileName(%assetItem.diffuseImageAsset.filePath);
|
||||||
%file.writeline(" DiffuseMap[0] = \"" @ %diffuseAssetPath @"\";");
|
|
||||||
%file.writeline(" DiffuseMapAsset[0] = \"" @ %moduleName @ ":" @ %assetItem.diffuseImageAsset.assetName @"\";");
|
%file.writeline(" DiffuseMapAsset[0] = \"" @ %moduleName @ ":" @ %assetItem.diffuseImageAsset.assetName @"\";");
|
||||||
}
|
}
|
||||||
if(%assetItem.normalImageAsset)
|
if(%assetItem.normalImageAsset)
|
||||||
|
|
@ -434,6 +433,11 @@ function AssetBrowser::buildMaterialAssetPreview(%this, %assetDef, %previewData)
|
||||||
|
|
||||||
if(isFile(%assetDef.materialDefinitionName.diffuseMap[0]))
|
if(isFile(%assetDef.materialDefinitionName.diffuseMap[0]))
|
||||||
%previewData.previewImage = %assetDef.materialDefinitionName.diffuseMap[0];
|
%previewData.previewImage = %assetDef.materialDefinitionName.diffuseMap[0];
|
||||||
|
else if(%assetDef.materialDefinitionName.diffuseMapAsset[0] !$= "")
|
||||||
|
{
|
||||||
|
%imgAsset = AssetDatabase.acquireAsset(%assetDef.materialDefinitionName.diffuseMapAsset[0]);
|
||||||
|
%previewData.previewImage = %imgAsset.getImageFilename();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
%previewData.previewImage = "tools/assetBrowser/art/materialIcon";
|
%previewData.previewImage = "tools/assetBrowser/art/materialIcon";
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue