mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-13 15:44:36 +00:00
Merge pull request #310 from thecelloman/goodbyeDIF
Remove Interior Object format (DIF)
This commit is contained in:
commit
2dcc7f0247
99 changed files with 76 additions and 17318 deletions
|
|
@ -142,8 +142,6 @@ function decalMetricsCallback()
|
|||
function renderMetricsCallback()
|
||||
{
|
||||
return " | Render |" @
|
||||
" Int: " @ $RenderMetrics::RIT_Interior @
|
||||
" IntDL: " @ $RenderMetrics::RIT_InteriorDynamicLighting @
|
||||
" Mesh: " @ $RenderMetrics::RIT_Mesh @
|
||||
" MeshDL: " @ $RenderMetrics::RIT_MeshDynamicLighting @
|
||||
" Shadow: " @ $RenderMetrics::RIT_Shadow @
|
||||
|
|
|
|||
|
|
@ -55,7 +55,6 @@ function initRenderManager()
|
|||
|
||||
DiffuseRenderPassManager.addManager( new RenderObjectMgr() { bintype = "Begin"; renderOrder = 0.2; processAddOrder = 0.2; } );
|
||||
// Normal mesh rendering.
|
||||
DiffuseRenderPassManager.addManager( new RenderMeshMgr() { bintype = "Interior"; renderOrder = 0.3; processAddOrder = 0.3; } );
|
||||
DiffuseRenderPassManager.addManager( new RenderTerrainMgr() { renderOrder = 0.4; processAddOrder = 0.4; } );
|
||||
DiffuseRenderPassManager.addManager( new RenderMeshMgr() { bintype = "Mesh"; renderOrder = 0.5; processAddOrder = 0.5; } );
|
||||
DiffuseRenderPassManager.addManager( new RenderImposterMgr() { renderOrder = 0.56; processAddOrder = 0.56; } );
|
||||
|
|
|
|||
|
|
@ -25,19 +25,6 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
|
||||
|
||||
singleton ShaderData( _DebugInterior_ )
|
||||
{
|
||||
DXVertexShaderFile = "shaders/common/debugInteriorsV.hlsl";
|
||||
DXPixelShaderFile = "shaders/common/debugInteriorsP.hlsl";
|
||||
|
||||
OGLVertexShaderFile = "shaders/common/gl/debugInteriorsV.glsl";
|
||||
OGLPixelShaderFile = "shaders/common/gl/debugInteriorsP.glsl";
|
||||
|
||||
samplerNames[0] = "$diffuseMap";
|
||||
|
||||
pixVersion = 1.1;
|
||||
};
|
||||
|
||||
singleton ShaderData( ParticlesShaderData )
|
||||
{
|
||||
DXVertexShaderFile = "shaders/common/particlesV.hlsl";
|
||||
|
|
|
|||
|
|
@ -442,70 +442,6 @@ GlobalActionMap.bind(keyboard, "ctrl o", bringUpOptions);
|
|||
// Debugging Functions
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
$MFDebugRenderMode = 0;
|
||||
function cycleDebugRenderMode(%val)
|
||||
{
|
||||
if (!%val)
|
||||
return;
|
||||
|
||||
$MFDebugRenderMode++;
|
||||
|
||||
if ($MFDebugRenderMode > 16)
|
||||
$MFDebugRenderMode = 0;
|
||||
if ($MFDebugRenderMode == 15)
|
||||
$MFDebugRenderMode = 16;
|
||||
|
||||
setInteriorRenderMode($MFDebugRenderMode);
|
||||
|
||||
if (isObject(ChatHud))
|
||||
{
|
||||
%message = "Setting Interior debug render mode to ";
|
||||
%debugMode = "Unknown";
|
||||
|
||||
switch($MFDebugRenderMode)
|
||||
{
|
||||
case 0:
|
||||
%debugMode = "NormalRender";
|
||||
case 1:
|
||||
%debugMode = "NormalRenderLines";
|
||||
case 2:
|
||||
%debugMode = "ShowDetail";
|
||||
case 3:
|
||||
%debugMode = "ShowAmbiguous";
|
||||
case 4:
|
||||
%debugMode = "ShowOrphan";
|
||||
case 5:
|
||||
%debugMode = "ShowLightmaps";
|
||||
case 6:
|
||||
%debugMode = "ShowTexturesOnly";
|
||||
case 7:
|
||||
%debugMode = "ShowPortalZones";
|
||||
case 8:
|
||||
%debugMode = "ShowOutsideVisible";
|
||||
case 9:
|
||||
%debugMode = "ShowCollisionFans";
|
||||
case 10:
|
||||
%debugMode = "ShowStrips";
|
||||
case 11:
|
||||
%debugMode = "ShowNullSurfaces";
|
||||
case 12:
|
||||
%debugMode = "ShowLargeTextures";
|
||||
case 13:
|
||||
%debugMode = "ShowHullSurfaces";
|
||||
case 14:
|
||||
%debugMode = "ShowVehicleHullSurfaces";
|
||||
// Depreciated
|
||||
//case 15:
|
||||
// %debugMode = "ShowVertexColors";
|
||||
case 16:
|
||||
%debugMode = "ShowDetailLevel";
|
||||
}
|
||||
|
||||
ChatHud.addLine(%message @ %debugMode);
|
||||
}
|
||||
}
|
||||
|
||||
GlobalActionMap.bind(keyboard, "F9", cycleDebugRenderMode);
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//
|
||||
|
|
|
|||
|
|
@ -1,53 +0,0 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Structures
|
||||
//-----------------------------------------------------------------------------
|
||||
struct ConnectData
|
||||
{
|
||||
float2 texCoord : TEXCOORD0;
|
||||
};
|
||||
|
||||
|
||||
struct Fragout
|
||||
{
|
||||
float4 col : COLOR0;
|
||||
};
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Main
|
||||
//-----------------------------------------------------------------------------
|
||||
Fragout main( ConnectData IN,
|
||||
uniform sampler2D diffuseMap : register(S0),
|
||||
uniform float4 shadeColor : register(C0)
|
||||
|
||||
)
|
||||
{
|
||||
Fragout OUT;
|
||||
|
||||
OUT.col = shadeColor;
|
||||
OUT.col *= tex2D(diffuseMap, IN.texCoord);
|
||||
|
||||
return OUT;
|
||||
}
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#include "hlslStructs.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Structures
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
struct ConnectData
|
||||
{
|
||||
float4 hpos : POSITION;
|
||||
float2 outTexCoord : TEXCOORD0;
|
||||
};
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Main
|
||||
//-----------------------------------------------------------------------------
|
||||
ConnectData main( VertexIn_PNTTTB IN,
|
||||
uniform float4x4 modelview : register(C0)
|
||||
)
|
||||
{
|
||||
ConnectData OUT;
|
||||
|
||||
OUT.hpos = mul(modelview, IN.pos);
|
||||
OUT.outTexCoord = IN.uv0;
|
||||
|
||||
return OUT;
|
||||
}
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
uniform sampler2D diffuseMap;
|
||||
uniform vec4 shadeColor;
|
||||
|
||||
varying vec2 TEX0;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec4 diffuseColor = texture2D( diffuseMap, TEX0 );
|
||||
|
||||
gl_FragColor = diffuseColor;
|
||||
gl_FragColor *= shadeColor;
|
||||
}
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
uniform mat4 modelview;
|
||||
|
||||
varying vec2 TEX0;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = modelview * gl_Vertex;
|
||||
TEX0 = gl_MultiTexCoord0.st;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -300,7 +300,7 @@ function MaterialEditorGui::prepareActiveObject( %this, %override )
|
|||
if( MaterialEditorGui.currentObject == %obj && !%override)
|
||||
return;
|
||||
|
||||
// TSStatics, ShapeBase, and Interiors should have getModelFile methods
|
||||
// TSStatics and ShapeBase objects should have getModelFile methods
|
||||
if( %obj.isMethod( "getModelFile" ) )
|
||||
{
|
||||
MaterialEditorGui.currentObject = %obj;
|
||||
|
|
@ -310,30 +310,11 @@ function MaterialEditorGui::prepareActiveObject( %this, %override )
|
|||
|
||||
MaterialEditorGui.setMode();
|
||||
|
||||
if( MaterialEditorGui.currentObject.isMethod( "getNumDetailLevels" ) ) // Interiors
|
||||
for(%j = 0; %j < MaterialEditorGui.currentObject.getTargetCount(); %j++)
|
||||
{
|
||||
for(%j = 0; %j < MaterialEditorGui.currentObject.getNumDetailLevels(); %j++)
|
||||
{
|
||||
%target = "Detail Level " @ %j;
|
||||
%count = SubMaterialSelector.getCount();
|
||||
SubMaterialSelector.addCategory(%target);
|
||||
|
||||
for(%k = 0; %k < MaterialEditorGui.currentObject.getTargetCount(%j); %k++)
|
||||
{
|
||||
%target = MaterialEditorGui.currentObject.getTargetName(%j, %k);
|
||||
%count = SubMaterialSelector.getCount();
|
||||
SubMaterialSelector.add(%target);
|
||||
}
|
||||
}
|
||||
}
|
||||
else // TSStatic and ShapeBase
|
||||
{
|
||||
for(%j = 0; %j < MaterialEditorGui.currentObject.getTargetCount(); %j++)
|
||||
{
|
||||
%target = MaterialEditorGui.currentObject.getTargetName(%j);
|
||||
%count = SubMaterialSelector.getCount();
|
||||
SubMaterialSelector.add(%target);
|
||||
}
|
||||
%target = MaterialEditorGui.currentObject.getTargetName(%j);
|
||||
%count = SubMaterialSelector.getCount();
|
||||
SubMaterialSelector.add(%target);
|
||||
}
|
||||
}
|
||||
else // Other classes that support materials if possible
|
||||
|
|
@ -523,9 +504,7 @@ function MaterialEditorGui::setMaterialDirty(%this)
|
|||
{
|
||||
%obj = MaterialEditorGui.currentObject;
|
||||
|
||||
if( %obj.interiorFile !$= "" )
|
||||
%shapePath = %obj.interiorFile;
|
||||
else if( %obj.shapeName !$= "" )
|
||||
if( %obj.shapeName !$= "" )
|
||||
%shapePath = %obj.shapeName;
|
||||
else if( %obj.isMethod("getDatablock") )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -373,7 +373,7 @@
|
|||
AnchorBottom = "0";
|
||||
AnchorLeft = "1";
|
||||
AnchorRight = "0";
|
||||
text = "Interiors";
|
||||
text = "Objects";
|
||||
maxLength = "1024";
|
||||
maxPopupHeight = "200";
|
||||
sbUsesNAColor = "0";
|
||||
|
|
|
|||
|
|
@ -1,240 +0,0 @@
|
|||
//--- OBJECT WRITE BEGIN ---
|
||||
%guiContent = new GuiControl(InteriorExportGui, EditorGuiGroup) {
|
||||
canSaveDynamicFields = "0";
|
||||
Profile = "ToolsGuiOverlayProfile";
|
||||
Enabled = "1";
|
||||
isContainer = "1";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
Position = "0 0";
|
||||
Extent = "1024 768";
|
||||
MinExtent = "8 2";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
hovertime = "1000";
|
||||
|
||||
new GuiWindowCtrl(InteriorExportWindow) {
|
||||
profile = "ToolsGuiWindowProfile";
|
||||
canSaveDynamicFields = "0";
|
||||
internalName = "InteriorExport";
|
||||
Enabled = "1";
|
||||
isContainer = "1";
|
||||
HorizSizing = "center";
|
||||
VertSizing = "center";
|
||||
Position = "248 248";
|
||||
Extent = "290 235";
|
||||
MinExtent = "8 2";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
hovertime = "1000";
|
||||
Margin = "0 0 0 0";
|
||||
Padding = "0 0 0 0";
|
||||
AnchorTop = "1";
|
||||
AnchorBottom = "1";
|
||||
AnchorLeft = "1";
|
||||
AnchorRight = "1";
|
||||
resizeWidth = "0";
|
||||
resizeHeight = "0";
|
||||
canMove = "1";
|
||||
canClose = "1";
|
||||
canMinimize = "0";
|
||||
canMaximize = "0";
|
||||
minSize = "50 50";
|
||||
closeCommand = "InteriorExportGui.close();";
|
||||
EdgeSnap = "0";
|
||||
canCollapse = "0";
|
||||
text = "Export Interiors to COLLADA";
|
||||
|
||||
new GuiScrollCtrl() {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "1";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
Position = "9 43";
|
||||
Extent = "272 112";
|
||||
MinExtent = "8 2";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
hovertime = "1000";
|
||||
willFirstRespond = "1";
|
||||
hScrollBar = "alwaysOff";
|
||||
vScrollBar = "dynamic";
|
||||
lockHorizScroll = "true";
|
||||
lockVertScroll = "false";
|
||||
constantThumbHeight = "0";
|
||||
childMargin = "0 0";
|
||||
|
||||
new GuiListBoxCtrl(InteriorSelectListBox) {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
Position = "2 2";
|
||||
Extent = "248 104";
|
||||
MinExtent = "8 2";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
hovertime = "1000";
|
||||
AllowMultipleSelections = "1";
|
||||
fitParentWidth = "1";
|
||||
};
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
Position = "9 25";
|
||||
Extent = "88 16";
|
||||
MinExtent = "8 2";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
hovertime = "1000";
|
||||
Margin = "0 0 0 0";
|
||||
Padding = "0 0 0 0";
|
||||
AnchorTop = "1";
|
||||
AnchorBottom = "0";
|
||||
AnchorLeft = "1";
|
||||
AnchorRight = "0";
|
||||
text = "Select Interior(s):";
|
||||
maxLength = "1024";
|
||||
};
|
||||
new GuiCheckBoxCtrl(InteriorSelectAllToggle) {
|
||||
profile = "ToolsGuiCheckBoxProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "9 158";
|
||||
extent = "248 23";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
text = " Select / deselect all";
|
||||
groupNum = "-1";
|
||||
buttonType = "ToggleButton";
|
||||
helpTag = "0";
|
||||
maxLength = "255";
|
||||
};
|
||||
new GuiCheckBoxCtrl(InteriorExportTransToggle) {
|
||||
profile = "ToolsGuiCheckBoxProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "9 176";
|
||||
extent = "248 23";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
text = " Export Interiors with transforms baked in";
|
||||
groupNum = "-1";
|
||||
buttonType = "ToggleButton";
|
||||
helpTag = "0";
|
||||
maxLength = "255";
|
||||
};
|
||||
new GuiButtonCtrl() {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
Position = "9 202";
|
||||
Extent = "107 24";
|
||||
MinExtent = "8 2";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
Command = "InteriorExportGui.export();";
|
||||
hovertime = "1000";
|
||||
text = "Export";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
useMouseEvents = "0";
|
||||
};
|
||||
new GuiButtonCtrl() {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
Position = "174 202";
|
||||
Extent = "107 24";
|
||||
MinExtent = "8 2";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
Command = "InteriorExportGui.close();";
|
||||
hovertime = "1000";
|
||||
text = "Cancel";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
useMouseEvents = "0";
|
||||
};
|
||||
};
|
||||
};
|
||||
//--- OBJECT WRITE END ---
|
||||
|
||||
function InteriorExportGui::findAllInteriors( %this )
|
||||
{
|
||||
InteriorSelectListBox.clearItems();
|
||||
|
||||
// Find all of the Interior files
|
||||
initContainerTypeSearch( $TypeMasks::InteriorObjectType );
|
||||
|
||||
while ( (%interiorObject = containerSearchNext()) != 0 )
|
||||
{
|
||||
%interiorName = %interiorObject.getName();
|
||||
if ( %interiorName $= "" )
|
||||
%interiorName = fileBase(%interiorObject.interiorFile);
|
||||
|
||||
%text = %interiorName SPC "(" @ %interiorObject.getId() @ ")";
|
||||
InteriorSelectListBox.addItem( %text, %interiorObject );
|
||||
}
|
||||
}
|
||||
|
||||
function InteriorExportGui::export( %this )
|
||||
{
|
||||
%selected = InteriorSelectListBox.getSelectedItems();
|
||||
|
||||
%numSel = getWordCount(%selected);
|
||||
|
||||
if ( %numSel == 0 )
|
||||
MessageBoxOk("Select Interior(s)", "You must select at least one Interior to export");
|
||||
|
||||
for (%i = 0; %i < %numSel; %i++)
|
||||
{
|
||||
%index = getWord(%selected, %i);
|
||||
|
||||
%interiorObj = InteriorSelectListBox.getItemObject( %index );
|
||||
|
||||
if (!isObject(%interiorObj))
|
||||
continue;
|
||||
|
||||
%interiorObj.exportToCollada(InteriorExportTransToggle.getValue());
|
||||
}
|
||||
|
||||
%this.close();
|
||||
}
|
||||
|
||||
function InteriorExportGui::onWake( %this )
|
||||
{
|
||||
%this.findAllInteriors();
|
||||
|
||||
InteriorSelectAllToggle.setValue(false);
|
||||
InteriorExportTransToggle.setValue(true);
|
||||
}
|
||||
|
||||
function InteriorExportGui::close( %this )
|
||||
{
|
||||
Canvas.popDialog( %this );
|
||||
}
|
||||
|
||||
function InteriorSelectAllToggle::onClick( %this )
|
||||
{
|
||||
if (InteriorSelectAllToggle.getValue())
|
||||
{
|
||||
%numItems = InteriorSelectListBox.getItemCount();
|
||||
|
||||
for (%i = 0; %i < %numItems; %i++)
|
||||
InteriorSelectListBox.setSelected(%i);
|
||||
}
|
||||
else
|
||||
InteriorSelectListBox.clearSelection();
|
||||
}
|
||||
|
||||
|
|
@ -178,7 +178,7 @@
|
|||
AnchorBottom = "0";
|
||||
AnchorLeft = "1";
|
||||
AnchorRight = "0";
|
||||
text = "Interiors";
|
||||
text = "Objects";
|
||||
maxLength = "1024";
|
||||
maxPopupHeight = "200";
|
||||
sbUsesNAColor = "0";
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@ function initializeWorldEditor()
|
|||
exec("./gui/genericPromptDialog.ed.gui" );
|
||||
exec("./gui/guiTerrainImportGui.gui" );
|
||||
exec("./gui/guiTerrainExportGui.gui" );
|
||||
exec("./gui/guiInteriorExportGui.gui" );
|
||||
exec("./gui/EditorGui.ed.gui");
|
||||
exec("./gui/objectBuilderGui.ed.gui");
|
||||
exec("./gui/TerrainEditorVSettingsGui.ed.gui");
|
||||
|
|
|
|||
|
|
@ -1863,12 +1863,6 @@ function EditorTree::GetTooltipParticleEmitterNode( %this, %obj )
|
|||
return %text;
|
||||
}
|
||||
|
||||
// Tooltip for InteriorInstance
|
||||
function EditorTree::GetTooltipInteriorInstance( %this, %obj )
|
||||
{
|
||||
return "File: " @ %obj.interiorFile;
|
||||
}
|
||||
|
||||
// Tooltip for WorldEditorSelection
|
||||
function EditorTree::GetTooltipWorldEditorSelection( %this, %obj )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -169,31 +169,6 @@ function EWCreatorWindow::setNewObjectGroup( %this, %group )
|
|||
EditorTree.markItem( %itemId );
|
||||
}
|
||||
|
||||
function EWCreatorWindow::createInterior( %this, %file )
|
||||
{
|
||||
if ( !$missionRunning )
|
||||
return;
|
||||
|
||||
if(isFunction("getObjectLimit") && MissionGroup.getFullCount() >= getObjectLimit())
|
||||
{
|
||||
MessageBoxOKBuy( "Object Limit Reached", "You have exceeded the object limit of " @ getObjectLimit() @ " for this demo. You can remove objects if you would like to add more.", "", "Canvas.showPurchaseScreen(\"objectlimit\");" );
|
||||
return;
|
||||
}
|
||||
|
||||
if( !isObject(%this.objectGroup) )
|
||||
%this.setNewObjectGroup( MissionGroup );
|
||||
|
||||
%objId = new InteriorInstance()
|
||||
{
|
||||
position = %this.getCreateObjectPosition();
|
||||
rotation = "0 0 0";
|
||||
interiorFile = %file;
|
||||
parentGroup = %this.objectGroup;
|
||||
};
|
||||
|
||||
%this.onObjectCreated( %objId );
|
||||
}
|
||||
|
||||
function EWCreatorWindow::createStatic( %this, %file )
|
||||
{
|
||||
if ( !$missionRunning )
|
||||
|
|
@ -381,10 +356,7 @@ function EWCreatorWindow::navigate( %this, %address )
|
|||
// Is this file in the current folder?
|
||||
if ( stricmp( %pathFolders, %address ) == 0 )
|
||||
{
|
||||
if ( fileExt( %fullPath ) $= ".dif" )
|
||||
%this.addInteriorIcon( %fullPath );
|
||||
else
|
||||
%this.addStaticIcon( %fullPath );
|
||||
%this.addStaticIcon( %fullPath );
|
||||
}
|
||||
// Then is this file in a subfolder we need to add
|
||||
// a folder icon for?
|
||||
|
|
@ -752,30 +724,6 @@ function EWCreatorWindow::addStaticIcon( %this, %fullPath )
|
|||
%this.contentCtrl.addGuiControl( %ctrl );
|
||||
}
|
||||
|
||||
function EWCreatorWindow::addInteriorIcon( %this, %fullPath )
|
||||
{
|
||||
%ctrl = EWCreatorWindow.createIcon();
|
||||
|
||||
%file = fileBase( %fullPath );
|
||||
%fileLong = %file @ fileExt( %fullPath );
|
||||
|
||||
%tip = %fileLong NL
|
||||
"Size: " @ fileSize( %fullPath ) / 1000.0 SPC "KB" NL
|
||||
"Date Created: " @ fileCreatedTime( %fullPath ) NL
|
||||
"Last Modified: " @ fileModifiedTime( %fullPath );
|
||||
|
||||
%ctrl.altCommand = "EWCreatorWindow.createInterior( \"" @ %fullPath @ "\" );";
|
||||
%ctrl.iconBitmap = EditorIconRegistry::findIconByClassName( "InteriorInstance" );
|
||||
%ctrl.text = %file;
|
||||
%ctrl.class = "CreatorInteriorIconBtn";
|
||||
%ctrl.tooltip = %tip;
|
||||
|
||||
%ctrl.buttonType = "radioButton";
|
||||
%ctrl.groupNum = "-1";
|
||||
|
||||
%this.contentCtrl.addGuiControl( %ctrl );
|
||||
}
|
||||
|
||||
function EWCreatorWindow::addPrefabIcon( %this, %fullPath )
|
||||
{
|
||||
%ctrl = %this.createIcon();
|
||||
|
|
|
|||
|
|
@ -135,7 +135,6 @@ function EditorGui::buildMenus(%this)
|
|||
{
|
||||
%fileMenu.appendItem("Export Terrain Heightmap" TAB "" TAB "Canvas.pushDialog( TerrainExportGui );");
|
||||
%fileMenu.appendItem("-");
|
||||
%fileMenu.appendItem("Export Interiors To COLLADA..." TAB "" TAB "Canvas.pushDialog( InteriorExportGui );");
|
||||
%fileMenu.appendItem("Export To COLLADA..." TAB "" TAB "EditorExportToCollada();");
|
||||
//item[5] = "Import Terraform Data..." TAB "" TAB "Heightfield::import();";
|
||||
//item[6] = "Import Texture Data..." TAB "" TAB "Texture::import();";
|
||||
|
|
|
|||
|
|
@ -142,8 +142,6 @@ function decalMetricsCallback()
|
|||
function renderMetricsCallback()
|
||||
{
|
||||
return " | Render |" @
|
||||
" Int: " @ $RenderMetrics::RIT_Interior @
|
||||
" IntDL: " @ $RenderMetrics::RIT_InteriorDynamicLighting @
|
||||
" Mesh: " @ $RenderMetrics::RIT_Mesh @
|
||||
" MeshDL: " @ $RenderMetrics::RIT_MeshDynamicLighting @
|
||||
" Shadow: " @ $RenderMetrics::RIT_Shadow @
|
||||
|
|
|
|||
|
|
@ -55,7 +55,6 @@ function initRenderManager()
|
|||
|
||||
DiffuseRenderPassManager.addManager( new RenderObjectMgr() { bintype = "Begin"; renderOrder = 0.2; processAddOrder = 0.2; } );
|
||||
// Normal mesh rendering.
|
||||
DiffuseRenderPassManager.addManager( new RenderMeshMgr() { bintype = "Interior"; renderOrder = 0.3; processAddOrder = 0.3; } );
|
||||
DiffuseRenderPassManager.addManager( new RenderTerrainMgr() { renderOrder = 0.4; processAddOrder = 0.4; } );
|
||||
DiffuseRenderPassManager.addManager( new RenderMeshMgr() { bintype = "Mesh"; renderOrder = 0.5; processAddOrder = 0.5; } );
|
||||
DiffuseRenderPassManager.addManager( new RenderImposterMgr() { renderOrder = 0.56; processAddOrder = 0.56; } );
|
||||
|
|
|
|||
|
|
@ -25,19 +25,6 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
|
||||
|
||||
singleton ShaderData( _DebugInterior_ )
|
||||
{
|
||||
DXVertexShaderFile = "shaders/common/debugInteriorsV.hlsl";
|
||||
DXPixelShaderFile = "shaders/common/debugInteriorsP.hlsl";
|
||||
|
||||
OGLVertexShaderFile = "shaders/common/gl/debugInteriorsV.glsl";
|
||||
OGLPixelShaderFile = "shaders/common/gl/debugInteriorsP.glsl";
|
||||
|
||||
samplerNames[0] = "$diffuseMap";
|
||||
|
||||
pixVersion = 1.1;
|
||||
};
|
||||
|
||||
singleton ShaderData( ParticlesShaderData )
|
||||
{
|
||||
DXVertexShaderFile = "shaders/common/particlesV.hlsl";
|
||||
|
|
|
|||
|
|
@ -616,70 +616,6 @@ GlobalActionMap.bind(keyboard, "ctrl o", bringUpOptions);
|
|||
// Debugging Functions
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
$MFDebugRenderMode = 0;
|
||||
function cycleDebugRenderMode(%val)
|
||||
{
|
||||
if (!%val)
|
||||
return;
|
||||
|
||||
$MFDebugRenderMode++;
|
||||
|
||||
if ($MFDebugRenderMode > 16)
|
||||
$MFDebugRenderMode = 0;
|
||||
if ($MFDebugRenderMode == 15)
|
||||
$MFDebugRenderMode = 16;
|
||||
|
||||
setInteriorRenderMode($MFDebugRenderMode);
|
||||
|
||||
if (isObject(ChatHud))
|
||||
{
|
||||
%message = "Setting Interior debug render mode to ";
|
||||
%debugMode = "Unknown";
|
||||
|
||||
switch($MFDebugRenderMode)
|
||||
{
|
||||
case 0:
|
||||
%debugMode = "NormalRender";
|
||||
case 1:
|
||||
%debugMode = "NormalRenderLines";
|
||||
case 2:
|
||||
%debugMode = "ShowDetail";
|
||||
case 3:
|
||||
%debugMode = "ShowAmbiguous";
|
||||
case 4:
|
||||
%debugMode = "ShowOrphan";
|
||||
case 5:
|
||||
%debugMode = "ShowLightmaps";
|
||||
case 6:
|
||||
%debugMode = "ShowTexturesOnly";
|
||||
case 7:
|
||||
%debugMode = "ShowPortalZones";
|
||||
case 8:
|
||||
%debugMode = "ShowOutsideVisible";
|
||||
case 9:
|
||||
%debugMode = "ShowCollisionFans";
|
||||
case 10:
|
||||
%debugMode = "ShowStrips";
|
||||
case 11:
|
||||
%debugMode = "ShowNullSurfaces";
|
||||
case 12:
|
||||
%debugMode = "ShowLargeTextures";
|
||||
case 13:
|
||||
%debugMode = "ShowHullSurfaces";
|
||||
case 14:
|
||||
%debugMode = "ShowVehicleHullSurfaces";
|
||||
// Depreciated
|
||||
//case 15:
|
||||
// %debugMode = "ShowVertexColors";
|
||||
case 16:
|
||||
%debugMode = "ShowDetailLevel";
|
||||
}
|
||||
|
||||
ChatHud.addLine(%message @ %debugMode);
|
||||
}
|
||||
}
|
||||
|
||||
GlobalActionMap.bind(keyboard, "F9", cycleDebugRenderMode);
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//
|
||||
|
|
|
|||
|
|
@ -1,53 +0,0 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Structures
|
||||
//-----------------------------------------------------------------------------
|
||||
struct ConnectData
|
||||
{
|
||||
float2 texCoord : TEXCOORD0;
|
||||
};
|
||||
|
||||
|
||||
struct Fragout
|
||||
{
|
||||
float4 col : COLOR0;
|
||||
};
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Main
|
||||
//-----------------------------------------------------------------------------
|
||||
Fragout main( ConnectData IN,
|
||||
uniform sampler2D diffuseMap : register(S0),
|
||||
uniform float4 shadeColor : register(C0)
|
||||
|
||||
)
|
||||
{
|
||||
Fragout OUT;
|
||||
|
||||
OUT.col = shadeColor;
|
||||
OUT.col *= tex2D(diffuseMap, IN.texCoord);
|
||||
|
||||
return OUT;
|
||||
}
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#include "hlslStructs.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Structures
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
struct ConnectData
|
||||
{
|
||||
float4 hpos : POSITION;
|
||||
float2 outTexCoord : TEXCOORD0;
|
||||
};
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Main
|
||||
//-----------------------------------------------------------------------------
|
||||
ConnectData main( VertexIn_PNTTTB IN,
|
||||
uniform float4x4 modelview : register(C0)
|
||||
)
|
||||
{
|
||||
ConnectData OUT;
|
||||
|
||||
OUT.hpos = mul(modelview, IN.pos);
|
||||
OUT.outTexCoord = IN.uv0;
|
||||
|
||||
return OUT;
|
||||
}
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
uniform sampler2D diffuseMap;
|
||||
uniform vec4 shadeColor;
|
||||
|
||||
varying vec2 TEX0;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec4 diffuseColor = texture2D( diffuseMap, TEX0 );
|
||||
|
||||
gl_FragColor = diffuseColor;
|
||||
gl_FragColor *= shadeColor;
|
||||
}
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
uniform mat4 modelview;
|
||||
|
||||
varying vec2 TEX0;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = modelview * gl_Vertex;
|
||||
TEX0 = gl_MultiTexCoord0.st;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -300,7 +300,7 @@ function MaterialEditorGui::prepareActiveObject( %this, %override )
|
|||
if( MaterialEditorGui.currentObject == %obj && !%override)
|
||||
return;
|
||||
|
||||
// TSStatics, ShapeBase, and Interiors should have getModelFile methods
|
||||
// TSStatics and ShapeBase objects should have getModelFile methods
|
||||
if( %obj.isMethod( "getModelFile" ) )
|
||||
{
|
||||
MaterialEditorGui.currentObject = %obj;
|
||||
|
|
@ -310,30 +310,11 @@ function MaterialEditorGui::prepareActiveObject( %this, %override )
|
|||
|
||||
MaterialEditorGui.setMode();
|
||||
|
||||
if( MaterialEditorGui.currentObject.isMethod( "getNumDetailLevels" ) ) // Interiors
|
||||
for(%j = 0; %j < MaterialEditorGui.currentObject.getTargetCount(); %j++)
|
||||
{
|
||||
for(%j = 0; %j < MaterialEditorGui.currentObject.getNumDetailLevels(); %j++)
|
||||
{
|
||||
%target = "Detail Level " @ %j;
|
||||
%count = SubMaterialSelector.getCount();
|
||||
SubMaterialSelector.addCategory(%target);
|
||||
|
||||
for(%k = 0; %k < MaterialEditorGui.currentObject.getTargetCount(%j); %k++)
|
||||
{
|
||||
%target = MaterialEditorGui.currentObject.getTargetName(%j, %k);
|
||||
%count = SubMaterialSelector.getCount();
|
||||
SubMaterialSelector.add(%target);
|
||||
}
|
||||
}
|
||||
}
|
||||
else // TSStatic and ShapeBase
|
||||
{
|
||||
for(%j = 0; %j < MaterialEditorGui.currentObject.getTargetCount(); %j++)
|
||||
{
|
||||
%target = MaterialEditorGui.currentObject.getTargetName(%j);
|
||||
%count = SubMaterialSelector.getCount();
|
||||
SubMaterialSelector.add(%target);
|
||||
}
|
||||
%target = MaterialEditorGui.currentObject.getTargetName(%j);
|
||||
%count = SubMaterialSelector.getCount();
|
||||
SubMaterialSelector.add(%target);
|
||||
}
|
||||
}
|
||||
else // Other classes that support materials if possible
|
||||
|
|
@ -523,9 +504,7 @@ function MaterialEditorGui::setMaterialDirty(%this)
|
|||
{
|
||||
%obj = MaterialEditorGui.currentObject;
|
||||
|
||||
if( %obj.interiorFile !$= "" )
|
||||
%shapePath = %obj.interiorFile;
|
||||
else if( %obj.shapeName !$= "" )
|
||||
if( %obj.shapeName !$= "" )
|
||||
%shapePath = %obj.shapeName;
|
||||
else if( %obj.isMethod("getDatablock") )
|
||||
{
|
||||
|
|
@ -2163,9 +2142,7 @@ function MaterialEditorGui::changeMaterial(%this, %fromMaterial, %toMaterial)
|
|||
|
||||
MaterialEditorGui.currentObject.changeMaterial( %materialTarget, %fromMaterial.getName(), %toMaterial.getName() );
|
||||
|
||||
if( MaterialEditorGui.currentObject.interiorFile !$= "" )
|
||||
%sourcePath = MaterialEditorGui.currentObject.interiorFile;
|
||||
else if( MaterialEditorGui.currentObject.shapeName !$= "" )
|
||||
if( MaterialEditorGui.currentObject.shapeName !$= "" )
|
||||
%sourcePath = MaterialEditorGui.currentObject.shapeName;
|
||||
else if( MaterialEditorGui.currentObject.isMethod("getDatablock") )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -373,7 +373,7 @@
|
|||
AnchorBottom = "0";
|
||||
AnchorLeft = "1";
|
||||
AnchorRight = "0";
|
||||
text = "Interiors";
|
||||
text = "Objects";
|
||||
maxLength = "1024";
|
||||
maxPopupHeight = "200";
|
||||
sbUsesNAColor = "0";
|
||||
|
|
|
|||
|
|
@ -1,240 +0,0 @@
|
|||
//--- OBJECT WRITE BEGIN ---
|
||||
%guiContent = new GuiControl(InteriorExportGui, EditorGuiGroup) {
|
||||
canSaveDynamicFields = "0";
|
||||
Profile = "ToolsGuiOverlayProfile";
|
||||
Enabled = "1";
|
||||
isContainer = "1";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
Position = "0 0";
|
||||
Extent = "1024 768";
|
||||
MinExtent = "8 2";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
hovertime = "1000";
|
||||
|
||||
new GuiWindowCtrl(InteriorExportWindow) {
|
||||
profile = "ToolsGuiWindowProfile";
|
||||
canSaveDynamicFields = "0";
|
||||
internalName = "InteriorExport";
|
||||
Enabled = "1";
|
||||
isContainer = "1";
|
||||
HorizSizing = "center";
|
||||
VertSizing = "center";
|
||||
Position = "248 248";
|
||||
Extent = "290 235";
|
||||
MinExtent = "8 2";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
hovertime = "1000";
|
||||
Margin = "0 0 0 0";
|
||||
Padding = "0 0 0 0";
|
||||
AnchorTop = "1";
|
||||
AnchorBottom = "1";
|
||||
AnchorLeft = "1";
|
||||
AnchorRight = "1";
|
||||
resizeWidth = "0";
|
||||
resizeHeight = "0";
|
||||
canMove = "1";
|
||||
canClose = "1";
|
||||
canMinimize = "0";
|
||||
canMaximize = "0";
|
||||
minSize = "50 50";
|
||||
closeCommand = "InteriorExportGui.close();";
|
||||
EdgeSnap = "0";
|
||||
canCollapse = "0";
|
||||
text = "Export Interiors to COLLADA";
|
||||
|
||||
new GuiScrollCtrl() {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "1";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
Position = "9 43";
|
||||
Extent = "272 112";
|
||||
MinExtent = "8 2";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
hovertime = "1000";
|
||||
willFirstRespond = "1";
|
||||
hScrollBar = "alwaysOff";
|
||||
vScrollBar = "dynamic";
|
||||
lockHorizScroll = "true";
|
||||
lockVertScroll = "false";
|
||||
constantThumbHeight = "0";
|
||||
childMargin = "0 0";
|
||||
|
||||
new GuiListBoxCtrl(InteriorSelectListBox) {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
Position = "2 2";
|
||||
Extent = "248 104";
|
||||
MinExtent = "8 2";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
hovertime = "1000";
|
||||
AllowMultipleSelections = "1";
|
||||
fitParentWidth = "1";
|
||||
};
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
Position = "9 25";
|
||||
Extent = "88 16";
|
||||
MinExtent = "8 2";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
hovertime = "1000";
|
||||
Margin = "0 0 0 0";
|
||||
Padding = "0 0 0 0";
|
||||
AnchorTop = "1";
|
||||
AnchorBottom = "0";
|
||||
AnchorLeft = "1";
|
||||
AnchorRight = "0";
|
||||
text = "Select Interior(s):";
|
||||
maxLength = "1024";
|
||||
};
|
||||
new GuiCheckBoxCtrl(InteriorSelectAllToggle) {
|
||||
profile = "ToolsGuiCheckBoxProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "9 158";
|
||||
extent = "248 23";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
text = " Select / deselect all";
|
||||
groupNum = "-1";
|
||||
buttonType = "ToggleButton";
|
||||
helpTag = "0";
|
||||
maxLength = "255";
|
||||
};
|
||||
new GuiCheckBoxCtrl(InteriorExportTransToggle) {
|
||||
profile = "ToolsGuiCheckBoxProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "9 176";
|
||||
extent = "248 23";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
text = " Export Interiors with transforms baked in";
|
||||
groupNum = "-1";
|
||||
buttonType = "ToggleButton";
|
||||
helpTag = "0";
|
||||
maxLength = "255";
|
||||
};
|
||||
new GuiButtonCtrl() {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
Position = "9 202";
|
||||
Extent = "107 24";
|
||||
MinExtent = "8 2";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
Command = "InteriorExportGui.export();";
|
||||
hovertime = "1000";
|
||||
text = "Export";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
useMouseEvents = "0";
|
||||
};
|
||||
new GuiButtonCtrl() {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
Position = "174 202";
|
||||
Extent = "107 24";
|
||||
MinExtent = "8 2";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
Command = "InteriorExportGui.close();";
|
||||
hovertime = "1000";
|
||||
text = "Cancel";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
useMouseEvents = "0";
|
||||
};
|
||||
};
|
||||
};
|
||||
//--- OBJECT WRITE END ---
|
||||
|
||||
function InteriorExportGui::findAllInteriors( %this )
|
||||
{
|
||||
InteriorSelectListBox.clearItems();
|
||||
|
||||
// Find all of the Interior files
|
||||
initContainerTypeSearch( $TypeMasks::InteriorObjectType );
|
||||
|
||||
while ( (%interiorObject = containerSearchNext()) != 0 )
|
||||
{
|
||||
%interiorName = %interiorObject.getName();
|
||||
if ( %interiorName $= "" )
|
||||
%interiorName = fileBase(%interiorObject.interiorFile);
|
||||
|
||||
%text = %interiorName SPC "(" @ %interiorObject.getId() @ ")";
|
||||
InteriorSelectListBox.addItem( %text, %interiorObject );
|
||||
}
|
||||
}
|
||||
|
||||
function InteriorExportGui::export( %this )
|
||||
{
|
||||
%selected = InteriorSelectListBox.getSelectedItems();
|
||||
|
||||
%numSel = getWordCount(%selected);
|
||||
|
||||
if ( %numSel == 0 )
|
||||
MessageBoxOk("Select Interior(s)", "You must select at least one Interior to export");
|
||||
|
||||
for (%i = 0; %i < %numSel; %i++)
|
||||
{
|
||||
%index = getWord(%selected, %i);
|
||||
|
||||
%interiorObj = InteriorSelectListBox.getItemObject( %index );
|
||||
|
||||
if (!isObject(%interiorObj))
|
||||
continue;
|
||||
|
||||
%interiorObj.exportToCollada(InteriorExportTransToggle.getValue());
|
||||
}
|
||||
|
||||
%this.close();
|
||||
}
|
||||
|
||||
function InteriorExportGui::onWake( %this )
|
||||
{
|
||||
%this.findAllInteriors();
|
||||
|
||||
InteriorSelectAllToggle.setValue(false);
|
||||
InteriorExportTransToggle.setValue(true);
|
||||
}
|
||||
|
||||
function InteriorExportGui::close( %this )
|
||||
{
|
||||
Canvas.popDialog( %this );
|
||||
}
|
||||
|
||||
function InteriorSelectAllToggle::onClick( %this )
|
||||
{
|
||||
if (InteriorSelectAllToggle.getValue())
|
||||
{
|
||||
%numItems = InteriorSelectListBox.getItemCount();
|
||||
|
||||
for (%i = 0; %i < %numItems; %i++)
|
||||
InteriorSelectListBox.setSelected(%i);
|
||||
}
|
||||
else
|
||||
InteriorSelectListBox.clearSelection();
|
||||
}
|
||||
|
||||
|
|
@ -178,7 +178,7 @@
|
|||
AnchorBottom = "0";
|
||||
AnchorLeft = "1";
|
||||
AnchorRight = "0";
|
||||
text = "Interiors";
|
||||
text = "Objects";
|
||||
maxLength = "1024";
|
||||
maxPopupHeight = "200";
|
||||
sbUsesNAColor = "0";
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@ function initializeWorldEditor()
|
|||
exec("./gui/genericPromptDialog.ed.gui" );
|
||||
exec("./gui/guiTerrainImportGui.gui" );
|
||||
exec("./gui/guiTerrainExportGui.gui" );
|
||||
exec("./gui/guiInteriorExportGui.gui" );
|
||||
exec("./gui/EditorGui.ed.gui");
|
||||
exec("./gui/objectBuilderGui.ed.gui");
|
||||
exec("./gui/TerrainEditorVSettingsGui.ed.gui");
|
||||
|
|
|
|||
|
|
@ -1863,12 +1863,6 @@ function EditorTree::GetTooltipParticleEmitterNode( %this, %obj )
|
|||
return %text;
|
||||
}
|
||||
|
||||
// Tooltip for InteriorInstance
|
||||
function EditorTree::GetTooltipInteriorInstance( %this, %obj )
|
||||
{
|
||||
return "File: " @ %obj.interiorFile;
|
||||
}
|
||||
|
||||
// Tooltip for WorldEditorSelection
|
||||
function EditorTree::GetTooltipWorldEditorSelection( %this, %obj )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -169,31 +169,6 @@ function EWCreatorWindow::setNewObjectGroup( %this, %group )
|
|||
EditorTree.markItem( %itemId );
|
||||
}
|
||||
|
||||
function EWCreatorWindow::createInterior( %this, %file )
|
||||
{
|
||||
if ( !$missionRunning )
|
||||
return;
|
||||
|
||||
if(isFunction("getObjectLimit") && MissionGroup.getFullCount() >= getObjectLimit())
|
||||
{
|
||||
MessageBoxOKBuy( "Object Limit Reached", "You have exceeded the object limit of " @ getObjectLimit() @ " for this demo. You can remove objects if you would like to add more.", "", "Canvas.showPurchaseScreen(\"objectlimit\");" );
|
||||
return;
|
||||
}
|
||||
|
||||
if( !isObject(%this.objectGroup) )
|
||||
%this.setNewObjectGroup( MissionGroup );
|
||||
|
||||
%objId = new InteriorInstance()
|
||||
{
|
||||
position = %this.getCreateObjectPosition();
|
||||
rotation = "0 0 0";
|
||||
interiorFile = %file;
|
||||
parentGroup = %this.objectGroup;
|
||||
};
|
||||
|
||||
%this.onObjectCreated( %objId );
|
||||
}
|
||||
|
||||
function EWCreatorWindow::createStatic( %this, %file )
|
||||
{
|
||||
if ( !$missionRunning )
|
||||
|
|
@ -381,10 +356,7 @@ function EWCreatorWindow::navigate( %this, %address )
|
|||
// Is this file in the current folder?
|
||||
if ( stricmp( %pathFolders, %address ) == 0 )
|
||||
{
|
||||
if ( fileExt( %fullPath ) $= ".dif" )
|
||||
%this.addInteriorIcon( %fullPath );
|
||||
else
|
||||
%this.addStaticIcon( %fullPath );
|
||||
%this.addStaticIcon( %fullPath );
|
||||
}
|
||||
// Then is this file in a subfolder we need to add
|
||||
// a folder icon for?
|
||||
|
|
@ -752,30 +724,6 @@ function EWCreatorWindow::addStaticIcon( %this, %fullPath )
|
|||
%this.contentCtrl.addGuiControl( %ctrl );
|
||||
}
|
||||
|
||||
function EWCreatorWindow::addInteriorIcon( %this, %fullPath )
|
||||
{
|
||||
%ctrl = EWCreatorWindow.createIcon();
|
||||
|
||||
%file = fileBase( %fullPath );
|
||||
%fileLong = %file @ fileExt( %fullPath );
|
||||
|
||||
%tip = %fileLong NL
|
||||
"Size: " @ fileSize( %fullPath ) / 1000.0 SPC "KB" NL
|
||||
"Date Created: " @ fileCreatedTime( %fullPath ) NL
|
||||
"Last Modified: " @ fileModifiedTime( %fullPath );
|
||||
|
||||
%ctrl.altCommand = "EWCreatorWindow.createInterior( \"" @ %fullPath @ "\" );";
|
||||
%ctrl.iconBitmap = EditorIconRegistry::findIconByClassName( "InteriorInstance" );
|
||||
%ctrl.text = %file;
|
||||
%ctrl.class = "CreatorInteriorIconBtn";
|
||||
%ctrl.tooltip = %tip;
|
||||
|
||||
%ctrl.buttonType = "radioButton";
|
||||
%ctrl.groupNum = "-1";
|
||||
|
||||
%this.contentCtrl.addGuiControl( %ctrl );
|
||||
}
|
||||
|
||||
function EWCreatorWindow::addPrefabIcon( %this, %fullPath )
|
||||
{
|
||||
%ctrl = %this.createIcon();
|
||||
|
|
|
|||
|
|
@ -135,7 +135,6 @@ function EditorGui::buildMenus(%this)
|
|||
{
|
||||
%fileMenu.appendItem("Export Terrain Heightmap" TAB "" TAB "Canvas.pushDialog( TerrainExportGui );");
|
||||
%fileMenu.appendItem("-");
|
||||
%fileMenu.appendItem("Export Interiors To COLLADA..." TAB "" TAB "Canvas.pushDialog( InteriorExportGui );");
|
||||
%fileMenu.appendItem("Export To COLLADA..." TAB "" TAB "EditorExportToCollada();");
|
||||
//item[5] = "Import Terraform Data..." TAB "" TAB "Heightfield::import();";
|
||||
//item[6] = "Import Texture Data..." TAB "" TAB "Texture::import();";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue