Duplicating changes in the tools folder over to the Empty template for parity.

This commit is contained in:
Areloch 2016-07-09 20:08:25 -05:00
parent a2a4b1c5e3
commit 10df58f716
21 changed files with 1070 additions and 74 deletions

View file

@ -0,0 +1,45 @@
%guiContent = new GuiControl(SuperTooltipDlg) {
canSaveDynamicFields = "0";
Profile = "GuiTransparentProfileModeless";
class = "SuperTooltip";
HorizSizing = "right";
VertSizing = "bottom";
position = "0 0";
Extent = "640 480";
MinExtent = "8 2";
canSave = "1";
Visible = "1";
hovertime = "1000";
new GuiControl(SuperTooltipWindow) {
canSaveDynamicFields = "0";
Profile = "EditorTextEditBoldModeless";
HorizSizing = "right";
VertSizing = "bottom";
position = "216 160";
Extent = "221 134";
MinExtent = "8 2";
canSave = "1";
Visible = "1";
hovertime = "1000";
internalName = "tooltipWindow";
new GuiMLTextCtrl(SuperTooltipMLText) {
canSaveDynamicFields = "0";
Profile = "EditorMLTextProfileModeless";
HorizSizing = "right";
VertSizing = "bottom";
position = "5 5";
Extent = "210 14";
MinExtent = "8 2";
canSave = "1";
Visible = "1";
hovertime = "1000";
lineSpacing = "2";
allowColorChars = "0";
maxChars = "-1";
internalName = "tooltipMLText";
};
};
};

View file

@ -0,0 +1,28 @@
//-----------------------------------------------------------------------------
// 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.
//-----------------------------------------------------------------------------
//Scripts
exec("./scripts/componentEditor.ed.cs");
exec("./scripts/superToolTipDlg.ed.cs");
//gui
exec("./gui/superToolTipDlg.ed.gui");

View file

@ -0,0 +1,233 @@
//-----------------------------------------------------------------------------
// 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.
//-----------------------------------------------------------------------------
function GuiInspectorEntityGroup::CreateContent(%this)
{
}
function GuiInspectorEntityGroup::InspectObject( %this, %targetObject )
{
%this.stack.clear();
%this.stack.addGuiControl(%this.createAddComponentList());
}
function GuiInspectorEntityGroup::createAddComponentList(%this)
{
%extent = %this.getExtent();
%container = new GuiControl()
{
Profile = "EditorContainerProfile";
HorizSizing = "width";
VertSizing = "bottom";
Position = "0 0";
Extent = %extent.x SPC "25";
};
%componentList = new GuiPopUpMenuCtrlEx(QuickEditComponentList)
{
Profile = "GuiPopupMenuProfile";
HorizSizing = "width";
VertSizing = "bottom";
position = "28 4";
Extent = (%extent.x - 28) SPC "18";
hovertime = "100";
tooltip = "The component to add to the object";
tooltipProfile = "EditorToolTipProfile";
};
%addButton = new GuiIconButtonCtrl() {
class = AddComponentQuickEditButton;
Profile = "EditorButton";
HorizSizing = "right";
VertSizing = "bottom";
Position = "2 0";
Extent = "24 24";
buttonMargin = "4 4";
iconLocation = "Left";
sizeIconToButton = "0";
iconBitmap = "tools/gui/images/iconAdd.png";
hovertime = "100";
tooltip = "Add the selected component to the object";
tooltipProfile = "EditorToolTipProfile";
componentList = %componentList;
};
%componentList.refresh();
%container.add(%componentList);
%container.add(%addButton);
if(!isObject("componentTooltipTheme"))
{
%theme = createsupertooltiptheme("componentTooltipTheme");
%theme.addstyle("headerstyle", "<just:left><font:arial bold:16><color:000000>");
%theme.addstyle("headertwostyle", "<font:arial bold:14><color:000000>");
%theme.addstyle("basictextstyle", "<font:arial:14><color:000000>");
%theme.setdefaultstyle("title", "headerstyle");
%theme.setdefaultstyle("paramtitle", "headertwostyle");
%theme.setdefaultstyle("param", "basictextstyle");
%theme.setspacing(3, 0);
}
return %container;
}
function QuickEditComponentList::refresh(%this)
{
%this.clear();
//find all ComponentAssets
%assetQuery = new AssetQuery();
if(!AssetDatabase.findAssetType(%assetQuery, "ComponentAsset"))
return; //if we didn't find ANY, just exit
// Find all the types.
%count = %assetQuery.getCount();
%categories = "";
for (%i = 0; %i < %count; %i++)
{
%assetId = %assetQuery.getAsset(%i);
%componentAsset = AssetDatabase.acquireAsset(%assetId);
%componentType = %componentAsset.componentType;
if (!isInList(%componentType, %categories))
%categories = %categories TAB %componentType;
}
%categories = trim(%categories);
%index = 0;
%categoryCount = getFieldCount(%categories);
for (%i = 0; %i < %categoryCount; %i++)
{
%category = getField(%categories, %i);
%this.addCategory(%category);
for (%j = 0; %j < %count; %j++)
{
%assetId = %assetQuery.getAsset(%j);
%componentAsset = AssetDatabase.acquireAsset(%assetId);
%componentType = %componentAsset.componentType;
%friendlyName = %componentAsset.friendlyName;
if (%componentType $= %category)
{
//TODO: Haven't worked out getting categories to look distinct
//from entries in the drop-down so for now just indent them for the visual distinction
%spacedName = " " @ %friendlyName;
%this.add(%spacedName, %index);
%this.component[%index] = %componentAsset;
%index++;
}
}
}
}
function QuickEditComponentList::onHotTrackItem( %this, %itemID )
{
%componentObj = %this.component[%itemID];
if( isObject( %componentObj ) && %this.componentDesc != %componentObj )
{
SuperTooltipDlg.init("componentTooltipTheme");
SuperTooltipDlg.setTitle(%componentObj.friendlyName);
SuperTooltipDlg.addParam("", %componentObj.description @ "\n");
%fieldCount = %componentObj.getComponentFieldCount();
for (%i = 0; %i < %fieldCount; %i++)
{
%name = getField(%componentObj.getComponentField(%i), 0);
SuperTooltipDlg.addParam(%name, %description @ "\n");
}
%position = %this.getGlobalPosition();
SuperTooltipDlg.processTooltip( %position,0,1 );
%this.opened = true;
%this.componentDesc = %componentObj;
}
else if( !isObject( %componentObj ) )
{
if( %this.opened == true )
SuperTooltipDlg.hide();
%this.componentDesc = "";
}
}
function QuickEditComponentList::setProperty(%this, %object)
{
%this.objectToAdd = %object;
}
function QuickEditComponentList::onSelect(%this)
{
if( %this.opened == true )
SuperTooltipDlg.hide();
%this.componentToAdd = %this.component[%this.getSelected()];
}
function QuickEditComponentList::onCancel( %this )
{
if( %this.opened == true )
SuperTooltipDlg.hide();
}
function AddComponentQuickEditButton::onClick(%this)
{
%component = %this.componentList.componentToAdd;
%componentName = %this.componentList.componentToAdd.componentName;
%componentClass = %this.componentList.componentToAdd.componentClass;
%command = "$ComponentEditor::newComponent = new" SPC %componentClass SPC "(){ class = \""
@ %componentName @ "\"; };";
eval(%command);
%instance = $ComponentEditor::newComponent;
%undo = new UndoScriptAction()
{
actionName = "Added Component";
class = UndoAddComponent;
object = %this.componentList.objectToAdd;
component = %instance;
};
%undo.addToManager(LevelBuilderUndoManager);
%instance.owner = Inspector.getInspectObject(0);
%instance.owner.add(%instance);
Inspector.schedule( 50, "refresh" );
EWorldEditor.isDirty = true;
}
function addComponent(%obj, %instance)
{
echo("Adding the component!");
%obj.addComponent(%instance);
Inspector.schedule( 50, "refresh" );
EWorldEditor.isDirty = true;
}

View file

@ -0,0 +1,155 @@
function createSuperTooltipTheme(%name)
{
%theme = new ScriptObject()
{
class = SuperTooltipTheme;
};
%theme.setName(%name);
return %theme;
}
function SuperTooltipTheme::addStyle(%this, %name, %style)
{
%this.styles[%name] = %style;
}
function SuperTooltipTheme::setDefaultStyle(%this, %type, %default)
{
%this.defaultStyles[%type] = %default;
}
function SuperTooltipTheme::setSpacing(%this, %verticalSpace, %horizontalSpace)
{
%this.verticalSpace = %verticalSpace;
%this.horizontalSpace = %horizontalSpace;
}
function SuperTooltipTheme::getStyle(%this, %name)
{
return %this.styles[%name];
}
function SuperTooltip::init(%this, %theme)
{
%this.clearTooltip();
if(isObject(%theme))
%this.setTheme(%theme);
}
function SuperTooltip::clearTooltip(%this)
{
if(%this.paramCount > 0)
{
for(%i=0;%i<%this.paramCount;%i++)
%this.param[%i] = "";
}
%this.title = "";
%this.paramCount = 0;
}
function SuperTooltip::processTooltip(%this, %globalPos, %verticalAlign, %horizontalAlign)
{
if (%verticalAlign $= "")
%verticalAlign = 1;
if (%horizontalAlign $= "")
%horizontalAlign = 0;
%tooltipWindow = %this.findObjectByInternalName("tooltipWindow");
if(isObject(%tooltipWindow))
%tooltipMLText = %tooltipWindow.findObjectByInternalName("tooltipMLText");
else
return false;
if(!isObject(%tooltipMLText))
return false;
%verticalSpace = %this.theme.verticalSpace;
%horizontalSpace = %this.theme.horizontalSpace;
if (%verticalAlign == 1)
%verticalSpace = -%verticalSpace;
if (%horizontalAlign == 1)
%horizontalSpace = -%horizontalSpace;
%text = %this.getFormatedText();
%tooltipMLText.setText(%text);
canvas.pushDialog(%this);
%tooltipMLText.forceReflow();
%MLExtent = %tooltipMLText.extent;
%MLHeight = getWord(%MLExtent, 1);
%tooltipExtent = %tooltipWindow.extent;
%tooltipWidth = getWord(%tooltipExtent, 0);
%tooltipHeight = %MLHeight;
%tooltipWindow.extent = %tooltipWidth SPC %tooltipHeight;
%globalPosX = getWord(%globalPos, 0);
%globalPosY = getWord(%globalPos, 1);
%tooltipPosX = %globalPosX - (%horizontalAlign * %tooltipWidth) + %horizontalSpace;
%tooltipPosY = %globalPosY - (%verticalAlign * %tooltipHeight) + %verticalSpace;
%tooltipWindow.setPosition(%tooltipPosX, %tooltipPosY);
return true;
}
function SuperTooltip::hide(%this)
{
canvas.popDialog(%this);
%this.clearTooltip();
}
function SuperTooltip::setTheme(%this, %theme)
{
%this.theme = %theme;
}
function SuperTooltip::setTitle(%this, %title, %style)
{
if(%style !$= "")
%themeStyle = %this.theme.styles[%style];
else
%themeStyle = %this.theme.getStyle(%this.theme.defaultStyles[Title]);
%this.title = %themeStyle @ %title;
}
function SuperTooltip::addParam(%this, %title, %text, %paramTitleStyle, %paramStyle)
{
if(%paramTitleStyle !$= "")
%themeTitleStyle = %this.theme.styles[%paramTitleStyle];
else
%themeTitleStyle = %this.theme.getStyle(%this.theme.defaultStyles[ParamTitle]);
if(%paramStyle !$= "")
%themeStyle = %this.theme.styles[%paramStyle];
else
%themeStyle = %this.theme.getStyle(%this.theme.defaultStyles[Param]);
if (%title $= "")
%this.param[%this.paramCount] = %themeStyle @ %text @ "\n";
else
%this.param[%this.paramCount] = %themeTitleStyle @ %title @ ": " @ %themeStyle @ %text @ "\n";
%this.paramCount++;
}
function SuperTooltip::getFormatedText(%this)
{
%text = %this.title @ "\n\n";
for(%i=0;%i<%this.paramCount;%i++)
{
%text = %text @ %this.param[%i];
}
return %text;
}

View file

@ -315,7 +315,7 @@ function DecalEditorGui::updateDecalPreview( %this, %material )
if( isObject( %material ) )
DecalPreviewWindow-->decalPreview.setBitmap( MaterialEditorGui.searchForTexture( %material.getId(), %material.diffuseMap[0]) );
else
DecalPreviewWindow-->decalPreview.setBitmap("tools/materialeditor/gui/unknownImage");
DecalPreviewWindow-->decalPreview.setBitmap("tools/materialEditor/gui/unknownImage");
}
function DecalEditorGui::updateInstancePreview( %this, %material )
@ -323,7 +323,7 @@ function DecalEditorGui::updateInstancePreview( %this, %material )
if( isObject( %material ) )
DecalPreviewWindow-->instancePreview.setBitmap( MaterialEditorGui.searchForTexture( %material.getId(), %material.diffuseMap[0]) );
else
DecalPreviewWindow-->instancePreview.setBitmap("tools/materialeditor/gui/unknownImage");
DecalPreviewWindow-->instancePreview.setBitmap("tools/materialEditor/gui/unknownImage");
}
function DecalEditorGui::rebuildInstanceTree( %this )

View file

@ -365,7 +365,7 @@
canSave = "1";
Visible = "1";
hovertime = "1000";
bitmap = "tools/materialeditor/gui/unknownImage";
bitmap = "tools/materialEditor/gui/unknownImage";
wrap = "0";
};
new GuiTextCtrl(matEd_cubeMapEd_xPosTxt) {
@ -408,7 +408,7 @@
canSave = "1";
Visible = "1";
hovertime = "1000";
bitmap = "tools/materialeditor/gui/unknownImage";
bitmap = "tools/materialEditor/gui/unknownImage";
wrap = "0";
};
new GuiTextCtrl(matEd_cubeMapEd_xNegTxt) {
@ -451,7 +451,7 @@
canSave = "1";
Visible = "1";
hovertime = "1000";
bitmap = "tools/materialeditor/gui/unknownImage";
bitmap = "tools/materialEditor/gui/unknownImage";
wrap = "0";
};
new GuiTextCtrl(matEd_cubeMapEd_yPosTxt) {
@ -494,7 +494,7 @@
canSave = "1";
Visible = "1";
hovertime = "1000";
bitmap = "tools/materialeditor/gui/unknownImage";
bitmap = "tools/materialEditor/gui/unknownImage";
wrap = "0";
};
new GuiTextCtrl(matEd_cubeMapEd_yNegTxt) {
@ -537,7 +537,7 @@
canSave = "1";
Visible = "1";
hovertime = "1000";
bitmap = "tools/materialeditor/gui/unknownImage";
bitmap = "tools/materialEditor/gui/unknownImage";
wrap = "0";
};
new GuiTextCtrl(matEd_cubeMapEd_zPosTxt) {
@ -580,7 +580,7 @@
canSave = "1";
Visible = "1";
hovertime = "1000";
bitmap = "tools/materialeditor/gui/unknownImage";
bitmap = "tools/materialEditor/gui/unknownImage";
wrap = "0";
};
new GuiTextCtrl(matEd_cubeMapEd_zNegTxt) {

View file

@ -277,7 +277,7 @@
canSave = "1";
Visible = "1";
hovertime = "1000";
bitmap = "tools/materialeditor/gui/unknownImage";
bitmap = "tools/materialEditor/gui/unknownImage";
wrap = "0";
};
new GuiBitmapButtonCtrl() {
@ -429,7 +429,7 @@
canSave = "1";
Visible = "1";
hovertime = "1000";
bitmap = "tools/materialeditor/gui/unknownImage";
bitmap = "tools/materialEditor/gui/unknownImage";
wrap = "0";
};
new GuiTextCtrl() {
@ -555,7 +555,7 @@
canSave = "1";
Visible = "1";
hovertime = "1000";
bitmap = "tools/materialeditor/gui/unknownImage";
bitmap = "tools/materialEditor/gui/unknownImage";
wrap = "0";
};
new GuiTextCtrl() {
@ -713,7 +713,7 @@
canSave = "1";
Visible = "1";
hovertime = "1000";
bitmap = "tools/materialeditor/gui/unknownImage";
bitmap = "tools/materialEditor/gui/unknownImage";
wrap = "0";
};
new GuiBitmapButtonCtrl() {
@ -858,7 +858,7 @@
canSave = "1";
Visible = "1";
hovertime = "1000";
bitmap = "tools/materialeditor/gui/unknownImage";
bitmap = "tools/materialEditor/gui/unknownImage";
wrap = "0";
};
new GuiBitmapButtonCtrl() {
@ -1003,7 +1003,7 @@
canSave = "1";
Visible = "1";
hovertime = "1000";
bitmap = "tools/materialeditor/gui/unknownImage";
bitmap = "tools/materialEditor/gui/unknownImage";
wrap = "0";
};
new GuiBitmapButtonCtrl() {
@ -1129,7 +1129,7 @@
canSave = "1";
Visible = "1";
hovertime = "1000";
bitmap = "tools/materialeditor/gui/unknownImage";
bitmap = "tools/materialEditor/gui/unknownImage";
wrap = "0";
};
new GuiTextCtrl() {
@ -1255,7 +1255,7 @@
canSave = "1";
Visible = "1";
hovertime = "1000";
bitmap = "tools/materialeditor/gui/unknownImage";
bitmap = "tools/materialEditor/gui/unknownImage";
wrap = "0";
};
new GuiTextCtrl() {
@ -2240,6 +2240,29 @@
useMouseEvents = "0";
useInactiveState = "0";
};
new GuiCheckBoxCtrl() {
canSaveDynamicFields = "0";
internalName = "subSurfaceCheckbox";
Enabled = "1";
isContainer = "0";
Profile = "ToolsGuiCheckBoxProfile";
HorizSizing = "right";
VertSizing = "bottom";
position = "8 46";
Extent = "79 16";
MinExtent = "8 2";
canSave = "1";
Visible = "1";
Command = "MaterialEditorGui.updateActiveMaterial(\"subSurface[\" @ MaterialEditorGui.currentLayer @ \"]\", $ThisControl.getValue());";
tooltipprofile = "ToolsGuiDefaultProfile";
ToolTip = "Enables the use of subsurface scattering for this layer.";
hovertime = "1000";
text = "Sub Surface";
groupNum = "-1";
buttonType = "ToggleButton";
useMouseEvents = "0";
useInactiveState = "0";
};
};
};
};

View file

@ -27,12 +27,12 @@ function MaterialEditorGui::establishMaterials(%this)
//Cubemap used to preview other cubemaps in the editor.
singleton CubemapData( matEdCubeMapPreviewMat )
{
cubeFace[0] = "tools/materialeditor/gui/cube_xNeg";
cubeFace[1] = "tools/materialeditor/gui/cube_xPos";
cubeFace[2] = "tools/materialeditor/gui/cube_ZNeg";
cubeFace[3] = "tools/materialeditor/gui/cube_ZPos";
cubeFace[4] = "tools/materialeditor/gui/cube_YNeg";
cubeFace[5] = "tools/materialeditor/gui/cube_YPos";
cubeFace[0] = "tools/materialEditor/gui/cube_xNeg";
cubeFace[1] = "tools/materialEditor/gui/cube_xPos";
cubeFace[2] = "tools/materialEditor/gui/cube_ZNeg";
cubeFace[3] = "tools/materialEditor/gui/cube_ZPos";
cubeFace[4] = "tools/materialEditor/gui/cube_YNeg";
cubeFace[5] = "tools/materialEditor/gui/cube_YPos";
parentGroup = "RootGroup";
};
@ -40,7 +40,7 @@ function MaterialEditorGui::establishMaterials(%this)
singleton Material(materialEd_previewMaterial)
{
mapTo = "matEd_mappedMat";
diffuseMap[0] = "tools/materialeditor/gui/matEd_mappedMat";
diffuseMap[0] = "tools/materialEditor/gui/matEd_mappedMat";
};
singleton CustomMaterial( materialEd_justAlphaMaterial )
@ -371,32 +371,32 @@ function MaterialEditorGui::updatePreviewObject(%this)
{
case "sphere":
matEd_quickPreview_Popup.selected = %newModel;
matEd_previewObjectView.setModel("tools/materialeditor/gui/spherePreview.dts");
matEd_previewObjectView.setModel("tools/materialEditor/gui/spherePreview.dts");
matEd_previewObjectView.setOrbitDistance(4);
case "cube":
matEd_quickPreview_Popup.selected = %newModel;
matEd_previewObjectView.setModel("tools/materialeditor/gui/cubePreview.dts");
matEd_previewObjectView.setModel("tools/materialEditor/gui/cubePreview.dts");
matEd_previewObjectView.setOrbitDistance(5);
case "pyramid":
matEd_quickPreview_Popup.selected = %newModel;
matEd_previewObjectView.setModel("tools/materialeditor/gui/pyramidPreview.dts");
matEd_previewObjectView.setModel("tools/materialEditor/gui/pyramidPreview.dts");
matEd_previewObjectView.setOrbitDistance(5);
case "cylinder":
matEd_quickPreview_Popup.selected = %newModel;
matEd_previewObjectView.setModel("tools/materialeditor/gui/cylinderPreview.dts");
matEd_previewObjectView.setModel("tools/materialEditor/gui/cylinderPreview.dts");
matEd_previewObjectView.setOrbitDistance(4.2);
case "torus":
matEd_quickPreview_Popup.selected = %newModel;
matEd_previewObjectView.setModel("tools/materialeditor/gui/torusPreview.dts");
matEd_previewObjectView.setModel("tools/materialEditor/gui/torusPreview.dts");
matEd_previewObjectView.setOrbitDistance(4.2);
case "knot":
matEd_quickPreview_Popup.selected = %newModel;
matEd_previewObjectView.setModel("tools/materialeditor/gui/torusknotPreview.dts");
matEd_previewObjectView.setModel("tools/materialEditor/gui/torusknotPreview.dts");
}
}
@ -802,7 +802,7 @@ function MaterialEditorGui::guiSync( %this, %material )
if((%material).diffuseMap[%layer] $= "")
{
MaterialEditorPropertiesWindow-->diffuseMapNameText.setText( "None" );
MaterialEditorPropertiesWindow-->diffuseMapDisplayBitmap.setBitmap( "tools/materialeditor/gui/unknownImage" );
MaterialEditorPropertiesWindow-->diffuseMapDisplayBitmap.setBitmap( "tools/materialEditor/gui/unknownImage" );
}
else
{
@ -813,7 +813,7 @@ function MaterialEditorGui::guiSync( %this, %material )
if((%material).normalMap[%layer] $= "")
{
MaterialEditorPropertiesWindow-->normalMapNameText.setText( "None" );
MaterialEditorPropertiesWindow-->normalMapDisplayBitmap.setBitmap( "tools/materialeditor/gui/unknownImage" );
MaterialEditorPropertiesWindow-->normalMapDisplayBitmap.setBitmap( "tools/materialEditor/gui/unknownImage" );
}
else
{
@ -824,7 +824,7 @@ function MaterialEditorGui::guiSync( %this, %material )
if((%material).overlayMap[%layer] $= "")
{
MaterialEditorPropertiesWindow-->overlayMapNameText.setText( "None" );
MaterialEditorPropertiesWindow-->overlayMapDisplayBitmap.setBitmap( "tools/materialeditor/gui/unknownImage" );
MaterialEditorPropertiesWindow-->overlayMapDisplayBitmap.setBitmap( "tools/materialEditor/gui/unknownImage" );
}
else
{
@ -835,7 +835,7 @@ function MaterialEditorGui::guiSync( %this, %material )
if((%material).detailMap[%layer] $= "")
{
MaterialEditorPropertiesWindow-->detailMapNameText.setText( "None" );
MaterialEditorPropertiesWindow-->detailMapDisplayBitmap.setBitmap( "tools/materialeditor/gui/unknownImage" );
MaterialEditorPropertiesWindow-->detailMapDisplayBitmap.setBitmap( "tools/materialEditor/gui/unknownImage" );
}
else
{
@ -846,7 +846,7 @@ function MaterialEditorGui::guiSync( %this, %material )
if((%material).detailNormalMap[%layer] $= "")
{
MaterialEditorPropertiesWindow-->detailNormalMapNameText.setText( "None" );
MaterialEditorPropertiesWindow-->detailNormalMapDisplayBitmap.setBitmap( "tools/materialeditor/gui/unknownImage" );
MaterialEditorPropertiesWindow-->detailNormalMapDisplayBitmap.setBitmap( "tools/materialEditor/gui/unknownImage" );
}
else
{
@ -857,7 +857,7 @@ function MaterialEditorGui::guiSync( %this, %material )
if((%material).lightMap[%layer] $= "")
{
MaterialEditorPropertiesWindow-->lightMapNameText.setText( "None" );
MaterialEditorPropertiesWindow-->lightMapDisplayBitmap.setBitmap( "tools/materialeditor/gui/unknownImage" );
MaterialEditorPropertiesWindow-->lightMapDisplayBitmap.setBitmap( "tools/materialEditor/gui/unknownImage" );
}
else
{
@ -868,7 +868,7 @@ function MaterialEditorGui::guiSync( %this, %material )
if((%material).toneMap[%layer] $= "")
{
MaterialEditorPropertiesWindow-->toneMapNameText.setText( "None" );
MaterialEditorPropertiesWindow-->toneMapDisplayBitmap.setBitmap( "tools/materialeditor/gui/unknownImage" );
MaterialEditorPropertiesWindow-->toneMapDisplayBitmap.setBitmap( "tools/materialEditor/gui/unknownImage" );
}
else
{
@ -879,7 +879,7 @@ function MaterialEditorGui::guiSync( %this, %material )
if((%material).specularMap[%layer] $= "")
{
MaterialEditorPropertiesWindow-->specMapNameText.setText( "None" );
MaterialEditorPropertiesWindow-->specMapDisplayBitmap.setBitmap( "tools/materialeditor/gui/unknownImage" );
MaterialEditorPropertiesWindow-->specMapDisplayBitmap.setBitmap( "tools/materialEditor/gui/unknownImage" );
}
else
{
@ -1141,7 +1141,7 @@ function MaterialEditorGui::updateTextureMap( %this, %type, %action )
else
{
%textCtrl.setText("None");
%bitmapCtrl.setBitmap("tools/materialeditor/gui/unknownImage");
%bitmapCtrl.setBitmap("tools/materialEditor/gui/unknownImage");
MaterialEditorGui.updateActiveMaterial(%type @ "Map[" @ %layer @ "]","");
}
}
@ -1185,7 +1185,7 @@ function MaterialEditorGui::updateSpecMap(%this,%action)
else
{
MaterialEditorPropertiesWindow-->specMapNameText.setText("None");
MaterialEditorPropertiesWindow-->specMapDisplayBitmap.setBitmap("tools/materialeditor/gui/unknownImage");
MaterialEditorPropertiesWindow-->specMapDisplayBitmap.setBitmap("tools/materialEditor/gui/unknownImage");
MaterialEditorGui.updateActiveMaterial("specularMap[" @ %layer @ "]","");
}
@ -1604,12 +1604,12 @@ function MaterialEditorGui::createNewCubemap( %this, %cubemap )
new CubemapData(%cubemap)
{
cubeFace[0] = "tools/materialeditor/gui/cube_xNeg";
cubeFace[1] = "tools/materialeditor/gui/cube_xPos";
cubeFace[2] = "tools/materialeditor/gui/cube_ZNeg";
cubeFace[3] = "tools/materialeditor/gui/cube_ZPos";
cubeFace[4] = "tools/materialeditor/gui/cube_YNeg";
cubeFace[5] = "tools/materialeditor/gui/cube_YPos";
cubeFace[0] = "tools/materialEditor/gui/cube_xNeg";
cubeFace[1] = "tools/materialEditor/gui/cube_xPos";
cubeFace[2] = "tools/materialEditor/gui/cube_ZNeg";
cubeFace[3] = "tools/materialEditor/gui/cube_ZPos";
cubeFace[4] = "tools/materialEditor/gui/cube_YNeg";
cubeFace[5] = "tools/materialEditor/gui/cube_YPos";
parentGroup = RootGroup;
};

View file

@ -1862,7 +1862,7 @@ $PE_guielement_ext_colorpicker = "18 18";
canSave = "1";
Visible = "1";
hovertime = "1000";
bitmap = "tools/materialeditor/gui/unknownImage";
bitmap = "tools/materialEditor/gui/unknownImage";
wrap = "0";
};
new GuiTextCtrl() {
@ -2343,6 +2343,52 @@ $PE_guielement_ext_colorpicker = "18 18";
Extent = $PE_guielement_ext_value;
altCommand = "$ThisControl.getParent().updateFromChild($ThisControl); PE_ParticleEditor.updateParticle( \"dragCoefficient\", $ThisControl.getText());";
};
}; //End Particle Drag
new GuiControl(){ // Particle Wind
class = "AggregateControl";
isContainer = "1";
HorizSizing = "width";
VertSizing = "bottom";
Position = $PE_guielement_pos_single_container ;
Extent = $PE_guielement_ext_single_container ;
new GuiTextCtrl() {
Profile = "ToolsGuiTextProfile";
HorizSizing = "width";
VertSizing = "bottom";
position = $PE_guielement_pos_name;
Extent = $PE_guielement_ext_name;
text = "Wind Coeff";
};
new GuiSliderCtrl(PEP_windCoefficient) {
internalName = "PEP_windCoefficient_slider";
canSaveDynamicFields = "0";
Enabled = "1";
isContainer = "0";
Profile = "ToolsGuiSliderProfile";
HorizSizing = "left";
VertSizing = "bottom";
position = $PE_guielement_pos_slider;
Extent = $PE_guielement_ext_slider;
MinExtent = "8 2";
canSave = "1";
Visible = "1";
Command = "PE_ParticleEditor.updateParticle( \"windCoefficient\", $ThisControl.getValue(), true, true );";
altCommand = "$ThisControl.getParent().updateFromChild($ThisControl); PE_ParticleEditor.updateParticle( \"windCoefficient\", $ThisControl.getValue(), true, false );";
hovertime = "1000";
range = "0 1";
ticks = "0";
value = "0.298143";
};
new GuiTextEditCtrl() {
internalName = "PEP_windCoefficient_textEdit";
Profile = "ToolsGuiTextEditProfile";
HorizSizing = "left";
VertSizing = "bottom";
position = $PE_guielement_pos_value;
Extent = $PE_guielement_ext_value;
altCommand = "$ThisControl.getParent().updateFromChild($ThisControl); PE_ParticleEditor.updateParticle( \"windCoefficient\", $ThisControl.getText());";
};
};
}; // end stack
}; // end "motion" rollout
@ -2548,6 +2594,151 @@ $PE_guielement_ext_colorpicker = "18 18";
};
}; // end stack
}; // end "Spin" rollout
new GuiRolloutCtrl() {
class = "BehaviorQuickEditRollout";
superclass = LBQuickEditRollout;
Profile = "GuiRolloutProfile";
HorizSizing = "width";
VertSizing = "bottom";
Position = "0 0";
Extent = "197 0";
Caption = "Animation";
Margin = "4 4 4 0";
DragSizable = false;
container = true;
parentRollout = %this.rollout;
object = %behavior;
new GuiStackControl() {
StackingType = "Vertical";
HorizStacking = "Left to Right";
VertStacking = "Top to Bottom";
Padding = "0";
canSaveDynamicFields = "0";
Enabled = "1";
isContainer = "1";
Profile = "ToolsGuiDefaultProfile";
HorizSizing = "width";
VertSizing = "bottom";
Position = "1 3";
Extent = "197 16";
MinExtent = "16 16";
canSave = "1";
isDecoy = "0";
Visible = "1";
tooltipprofile = "ToolsGuiToolTipProfile";
hovertime = "1000";
new GuiCheckBoxCtrl() {
internalName = "PEP_animateTexture";
HorizSizing = "width";
VertSizing = "bottom";
position = "55 14";
Extent = "84 18";
MinExtent = "8 2";
text = "Animate Texture";
command = "PE_ParticleEditor.updateParticle( \"animateTexture\", $ThisControl.getValue());";
};
new GuiControl(){ // Particle framesPerSec
class = "AggregateControl";
isContainer = "1";
HorizSizing = "width";
VertSizing = "bottom";
Position = $PE_guielement_pos_single_container ;
Extent = $PE_guielement_ext_single_container ;
new GuiTextCtrl() {
Profile = "ToolsGuiTextProfile";
HorizSizing = "width";
VertSizing = "bottom";
position = $PE_guielement_pos_name;
Extent = $PE_guielement_ext_name;
text = "framesPerSec";
};
new GuiSliderCtrl(PEP_framesPerSec) {
internalName = "PEP_framesPerSec_slider";
canSaveDynamicFields = "0";
Enabled = "1";
isContainer = "0";
Profile = "ToolsGuiSliderProfile";
HorizSizing = "left";
VertSizing = "bottom";
position = $PE_guielement_pos_slider;
Extent = $PE_guielement_ext_slider;
MinExtent = "8 2";
canSave = "1";
Visible = "1";
hovertime = "1000";
range = "0 60";
ticks = "0";
value = "0";
Command = "PE_ParticleEditor.updateParticle( \"framesPerSec\", $ThisControl.getValue(), true, true );";
altCommand = "$ThisControl.getParent().updateFromChild($ThisControl); PE_ParticleEditor.updateParticle( \"framesPerSec\", $ThisControl.getValue(), true, false );";
};
new GuiTextEditCtrl() {
internalName = "PEP_framesPerSec_textEdit";
Profile = "ToolsGuiTextEditProfile";
HorizSizing = "left";
VertSizing = "bottom";
position = $PE_guielement_pos_value;
Extent = $PE_guielement_ext_value;
altCommand = "$ThisControl.getParent().updateFromChild($ThisControl); PE_ParticleEditor.updateParticle( \"framesPerSec\", $ThisControl.getText());";
};
}; // end framesPerSec
new GuiControl(){ // Particle animTexFramesList
class = "AggregateControl";
isContainer = "1";
HorizSizing = "width";
VertSizing = "bottom";
Position = $PE_guielement_pos_single_container;
Extent = $PE_guielement_ext_single_container;
new GuiTextCtrl() {
Profile = "ToolsGuiTextProfile";
HorizSizing = "width";
VertSizing = "bottom";
position = $PE_guielement_pos_name;
Extent = $PE_guielement_ext_name;
text = "animTexFrames";
};
new GuiTextEditCtrl() {
internalName = "PEP_animTexFramesList_textEdit";
Profile = "ToolsGuiTextEditProfile";
HorizSizing = "left";
VertSizing = "bottom";
position = $PE_guielement_pos_textedit;
Extent = $PE_guielement_ext_textedit;
altCommand = "$ThisControl.getParent().updateFromChild($ThisControl); PE_ParticleEditor.updateParticle( \"animTexFrames\", $ThisControl.getText());";
};
}; // end animTexFramesList
new GuiControl(){ // Particle animTileCount
class = "AggregateControl";
isContainer = "1";
HorizSizing = "width";
VertSizing = "bottom";
Position = $PE_guielement_pos_single_container;
Extent = $PE_guielement_ext_single_container;
new GuiTextCtrl() {
Profile = "ToolsGuiTextProfile";
HorizSizing = "width";
VertSizing = "bottom";
position = $PE_guielement_pos_name;
Extent = $PE_guielement_ext_name;
text = "TileCount (X Y)";
};
new GuiTextEditCtrl() {
internalName = "PEP_animTileCount_textEdit";
Profile = "ToolsGuiTextEditProfile";
HorizSizing = "left";
VertSizing = "bottom";
position = $PE_guielement_pos_value;
Extent = $PE_guielement_ext_value;
altCommand = "$ThisControl.getParent().updateFromChild($ThisControl); PE_ParticleEditor.updateParticle( \"animTexTiling\", $ThisControl.getText());";
};
}; // end animTileCount
}; // end stack
}; // end "Anim" rollout
new GuiRolloutCtrl() {
class = "BehaviorQuickEditRollout";
superclass = LBQuickEditRollout;

View file

@ -91,6 +91,9 @@ function PE_ParticleEditor::guiSync( %this )
PE_ParticleEditor-->PEP_dragCoefficient_slider.setValue( %data.dragCoefficient );
PE_ParticleEditor-->PEP_dragCoefficient_textEdit.setText( %data.dragCoefficient );
PE_ParticleEditor-->PEP_windCoefficient_slider.setValue( %data.windCoefficient );
PE_ParticleEditor-->PEP_windCoefficient_textEdit.setText( %data.windCoefficient );
PE_ParticleEditor-->PEP_spinRandomMin_slider.setValue( %data.spinRandomMin );
PE_ParticleEditor-->PEP_spinRandomMin_textEdit.setText( %data.spinRandomMin );
@ -131,6 +134,17 @@ function PE_ParticleEditor::guiSync( %this )
PE_ParticleEditor-->PEP_pointTime_slider3.setValue( %data.times[ 3 ] );
PE_ParticleEditor-->PEP_pointTime_textEdit3.setText( %data.times[ 3 ] );
//particle animation
PE_ParticleEditor-->PEP_animateTexture.setValue( %data.animateTexture );
PE_ParticleEditor-->PEP_framesPerSec_slider.setValue( %data.framesPerSec );
PE_ParticleEditor-->PEP_framesPerSec_textEdit.setText( %data.framesPerSec );
PE_ParticleEditor-->PEP_animTexFramesList_textEdit.setText( %data.animTexFrames );
PE_ParticleEditor-->PEP_animTileCount_textEdit.setText( %data.animTexTiling );
}
//---------------------------------------------------------------------------------------------

View file

@ -204,6 +204,77 @@
editorSettingsWrite = "EditorGui.writeWorldEditorSettings();";
};
};
new GuiControl() {
position = "0 0";
extent = "430 18";
minExtent = "8 2";
horizSizing = "right";
vertSizing = "bottom";
profile = "ToolsGuiDefaultProfile";
visible = "1";
active = "1";
tooltipProfile = "ToolsGuiToolTipProfile";
hovertime = "1000";
isContainer = "1";
canSave = "1";
canSaveDynamicFields = "0";
new GuiTextCtrl() {
text = "New Game Objects";
maxLength = "1024";
margin = "0 0 0 0";
padding = "0 0 0 0";
anchorTop = "1";
anchorBottom = "0";
anchorLeft = "1";
anchorRight = "0";
position = "5 1";
extent = "70 16";
minExtent = "8 2";
horizSizing = "right";
vertSizing = "bottom";
profile = "ToolsGuiTextRightProfile";
visible = "1";
active = "1";
tooltipProfile = "ToolsGuiToolTipProfile";
hovertime = "1000";
isContainer = "0";
canSave = "1";
canSaveDynamicFields = "0";
};
new GuiTextEditCtrl() {
historySize = "0";
tabComplete = "0";
sinkAllKeyEvents = "0";
password = "0";
passwordMask = "*";
text = "scripts/server/gameObjects";
maxLength = "1024";
margin = "0 0 0 0";
padding = "0 0 0 0";
anchorTop = "1";
anchorBottom = "0";
anchorLeft = "1";
anchorRight = "0";
position = "81 0";
extent = "345 17";
minExtent = "8 2";
horizSizing = "width";
vertSizing = "bottom";
profile = "ToolsGuiTextEditProfile";
visible = "1";
active = "1";
tooltipProfile = "ToolsGuiToolTipProfile";
hovertime = "1000";
isContainer = "0";
canSave = "1";
canSaveDynamicFields = "1";
class = "ESettingsWindowTextEdit";
editorSettingsRead = "EditorGui.readWorldEditorSettings();";
editorSettingsValue = "WorldEditor/newGameObjectDir";
editorSettingsWrite = "EditorGui.writeWorldEditorSettings();";
};
};
};
};
};

View file

@ -402,3 +402,4 @@ function generateProceduralTerrainMask()
Canvas.popDialog(ProceduralTerrainPainterGui);
ETerrainEditor.autoMaterialLayer($TPPHeightMin, $TPPHeightMax, $TPPSlopeMin, $TPPSlopeMax, $TPPCoverage);
}

View file

@ -158,7 +158,7 @@
tooltipprofile = "ToolsGuiToolTipProfile";
hovertime = "1000";
wrap = "0";
bitmap= "tools/materialeditor/gui/unknownImage";
bitmap= "tools/materialEditor/gui/unknownImage";
};
new GuiBitmapCtrl(ETerrainMaterialSelectedBorder) {
canSaveDynamicFields = "0";

View file

@ -113,7 +113,7 @@
tooltipprofile = "ToolsGuiToolTipProfile";
ToolTip = "Paint (5)";
hovertime = "1000";
bitmap = "tools/foresteditor/images/paint-forest-btn";
bitmap = "tools/forestEditor/images/paint-forest-btn";
buttonType = "RadioButton";
useMouseEvents = "0";
};
@ -134,7 +134,7 @@
tooltipprofile = "ToolsGuiToolTipProfile";
ToolTip = "Erase (6)";
hovertime = "1000";
bitmap = "tools/foresteditor/images/erase-all-btn";
bitmap = "tools/forestEditor/images/erase-all-btn";
buttonType = "RadioButton";
useMouseEvents = "0";
};
@ -156,7 +156,7 @@
tooltipprofile = "ToolsGuiToolTipProfile";
ToolTip = "Erase Selected (7)";
hovertime = "1000";
bitmap = "tools/foresteditor/images/erase-element-btn";
bitmap = "tools/forestEditor/images/erase-element-btn";
buttonType = "RadioButton";
useMouseEvents = "0";
};

View file

@ -261,7 +261,7 @@
Visible = "1";
tooltipprofile = "ToolsGuiToolTipProfile";
hovertime = "1000";
bitmap = "tools/materialeditor/gui/unknownImage";
bitmap = "tools/materialEditor/gui/unknownImage";
wrap = "0";
};
new GuiBitmapButtonCtrl() {
@ -358,7 +358,7 @@
MinExtent = "8 2";
canSave = "1";
Visible = "1";
Command = "TerrainMaterialDlg-->baseTexCtrl.setBitmap(\"tools/materialeditor/gui/unknownImage\");";
Command = "TerrainMaterialDlg-->baseTexCtrl.setBitmap(\"tools/materialEditor/gui/unknownImage\");";
tooltipprofile = "ToolsGuiToolTipProfile";
hovertime = "1000";
groupNum = "-1";
@ -466,7 +466,7 @@
Visible = "1";
tooltipprofile = "ToolsGuiToolTipProfile";
hovertime = "1000";
bitmap = "tools/materialeditor/gui/unknownImage";
bitmap = "tools/materialEditor/gui/unknownImage";
wrap = "0";
};
new GuiTextCtrl() {
@ -563,7 +563,7 @@
MinExtent = "8 2";
canSave = "1";
Visible = "1";
Command = "TerrainMaterialDlg-->normTexCtrl.setBitmap(\"tools/materialeditor/gui/unknownImage\");";
Command = "TerrainMaterialDlg-->normTexCtrl.setBitmap(\"tools/materialEditor/gui/unknownImage\");";
tooltipprofile = "ToolsGuiToolTipProfile";
hovertime = "1000";
groupNum = "-1";
@ -662,7 +662,7 @@
canSaveDynamicFields = "0";
new GuiBitmapCtrl() {
bitmap = "tools/materialeditor/gui/unknownImage";
bitmap = "tools/materialEditor/gui/unknownImage";
wrap = "0";
position = "1 1";
extent = "47 47";
@ -787,7 +787,7 @@
profile = "ToolsGuiDefaultProfile";
visible = "1";
active = "1";
command = "TerrainMaterialDlg-->macroTexCtrl.setBitmap(\"tools/materialeditor/gui/unknownImage\");";
command = "TerrainMaterialDlg-->macroTexCtrl.setBitmap(\"tools/materialEditor/gui/unknownImage\");";
tooltipProfile = "ToolsGuiToolTipProfile";
hovertime = "1000";
isContainer = "0";
@ -999,7 +999,7 @@
Visible = "1";
tooltipprofile = "ToolsGuiToolTipProfile";
hovertime = "1000";
bitmap = "tools/materialeditor/gui/unknownImage";
bitmap = "tools/materialEditor/gui/unknownImage";
wrap = "0";
};
new GuiBitmapButtonCtrl() {
@ -1096,7 +1096,7 @@
MinExtent = "8 2";
canSave = "1";
Visible = "1";
Command = "TerrainMaterialDlg-->detailTexCtrl.setBitmap(\"tools/materialeditor/gui/unknownImage\");";
Command = "TerrainMaterialDlg-->detailTexCtrl.setBitmap(\"tools/materialEditor/gui/unknownImage\");";
tooltipprofile = "ToolsGuiToolTipProfile";
hovertime = "1000";
groupNum = "-1";

View file

@ -1619,7 +1619,7 @@ function EditorTree::onRightMouseUp( %this, %itemId, %mouse, %obj )
}
// Open context menu if this is a SimGroup
else if( %obj.isMemberOfClass( "SimGroup" ) )
else if( !%obj.isMemberOfClass( "SceneObject" ) )
{
%popup = ETSimGroupContextPopup;
if( !isObject( %popup ) )
@ -1676,8 +1676,22 @@ function EditorTree::onRightMouseUp( %this, %itemId, %mouse, %obj )
object = -1;
};
if(%obj.isMemberOfClass("Entity"))
{
%popup = ETEntityContextPopup;
if( !isObject( %popup ) )
%popup = new PopupMenu( ETEntityContextPopup : ETSimGroupContextPopup )
{
superClass = "MenuBuilder";
isPopup = "1";
item[ 12 ] = "-";
item[ 13 ] = "Convert to Game Object" TAB "" TAB "EWorldEditor.createGameObject( %this.object );";
};
}
// Specialized version for ConvexShapes.
if( %obj.isMemberOfClass( "ConvexShape" ) )
else if( %obj.isMemberOfClass( "ConvexShape" ) )
{
%popup = ETConvexShapeContextPopup;
if( !isObject( %popup ) )
@ -2204,6 +2218,155 @@ function EWorldEditor::deleteMissionObject( %this, %object )
EditorTree.buildVisibleTree( true );
}
function EWorldEditor::createGameObject( %this, %entity )
{
if(!isObject(GameObjectBuilder))
{
new GuiControl(GameObjectBuilder, EditorGuiGroup) {
profile = "ToolsGuiDefaultProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "0 0";
extent = "800 600";
minExtent = "8 8";
visible = "1";
setFirstResponder = "0";
modal = "1";
helpTag = "0";
new GuiWindowCtrl(GameObjectBuilderTargetWindow) {
profile = "ToolsGuiWindowProfile";
horizSizing = "center";
vertSizing = "center";
position = "384 205";
extent = "256 102";
minExtent = "256 8";
visible = "1";
setFirstResponder = "0";
modal = "1";
helpTag = "0";
resizeWidth = "1";
resizeHeight = "1";
canMove = "1";
canClose = "0";
canMinimize = "0";
canMaximize = "0";
minSize = "50 50";
text = "Create Object";
new GuiTextCtrl() {
profile = "GuiCenterTextProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "9 26";
extent = "84 16";
minExtent = "8 8";
visible = "1";
setFirstResponder = "0";
modal = "1";
helpTag = "0";
text = "Object Name:";
};
new GuiTextEditCtrl(GameObjectBuilderObjectName) {
class = ObjectBuilderGuiTextEditCtrl;
profile = "ToolsGuiTextEditProfile";
horizSizing = "width";
vertSizing = "bottom";
position = "78 26";
extent = "172 18";
minExtent = "8 8";
visible = "1";
setFirstResponder = "0";
modal = "1";
helpTag = "0";
historySize = "0";
};
new GuiButtonCtrl(GameObjectBuilderOKButton) {
profile = "ToolsGuiButtonProfile";
horizSizing = "width";
vertSizing = "bottom";
position = "7 250";
extent = "156 24";
minExtent = "8 8";
visible = "1";
setFirstResponder = "0";
modal = "1";
command = "EWorldEditor.buildGameObject();";
helpTag = "0";
text = "Create New";
Accelerator = "return";
};
new GuiButtonCtrl(GameObjectBuilderCancelButton) {
profile = "ToolsGuiButtonProfile";
horizSizing = "left";
vertSizing = "bottom";
position = "170 250";
extent = "80 24";
minExtent = "8 8";
visible = "1";
setFirstResponder = "0";
modal = "1";
command = "Canvas.popDialog(GameObjectBuilder);";
helpTag = "0";
text = "Cancel";
Accelerator = "escape";
};
};
};
GameObjectBuilderTargetWindow.extent = getWord(GameObjectBuilderTargetWindow.extent, 0) SPC 88;
GameObjectBuilderOKButton.position = getWord(GameObjectBuilderOKButton.position, 0) SPC 57;
GameObjectBuilderCancelButton.position = getWord(GameObjectBuilderCancelButton.position, 0) SPC 57;
}
GameObjectBuilderObjectName.text = "";
GameObjectBuilder.selectedEntity = %entity;
Canvas.pushDialog(GameObjectBuilder);
}
function EWorldEditor::buildGameObject(%this)
{
if(GameObjectBuilderObjectName.getText() $= "")
{
error("Attempted to make a new Game Object with no name!");
Canvas.popDialog(GameObjectBuilder);
return;
}
%path = EditorSettings.value( "WorldEditor/newGameObjectDir" );
%className = GameObjectBuilderObjectName.getText();
GameObjectBuilder.selectedEntity.class = %className;
Inspector.inspect(GameObjectBuilder.selectedEntity);
%file = new FileObject();
if(%file.openForWrite(%path @ "\\" @ %className @ ".cs"))
{
%file.writeline("function " @ %className @ "::onAdd(%this)\n{\n\n}\n");
%file.writeline("function " @ %className @ "::onRemove(%this)\n{\n\n}\n");
//todo, pre-write any event functions of interest
%file.close();
}
//set up the paths
%tamlPath = %path @ "/" @ %className @ ".taml";
%scriptPath = %path @ "/" @ %className @ ".cs";
saveGameObject(%className, %tamlPath, %scriptPath);
//reload it
execGameObjects();
//now, add the script file and a ref to the taml into our SGO manifest so we can readily spawn it later.
TamlWrite(GameObjectBuilder.selectedEntity, %tamlpath);
GameObjectBuilder.selectedEntity = "";
Canvas.popDialog(GameObjectBuilder);
}
function EWorldEditor::selectAllObjectsInSet( %this, %set, %deselect )
{
if( !isObject( %set ) )

View file

@ -34,6 +34,7 @@ EditorSettings.setDefaultValue( "orthoFOV", "50" );
EditorSettings.setDefaultValue( "orthoShowGrid", "1" );
EditorSettings.setDefaultValue( "currentEditor", "WorldEditorInspectorPlugin" );
EditorSettings.setDefaultValue( "newLevelFile", "tools/levels/BlankRoom.mis" );
EditorSettings.setDefaultValue( "newGameObjectDir", "scripts/server/gameObjects" );
if( isFile( "C:/Program Files/Torsion/Torsion.exe" ) )
EditorSettings.setDefaultValue( "torsionPath", "C:/Program Files/Torsion/Torsion.exe" );

View file

@ -85,6 +85,7 @@ function EWCreatorWindow::init( %this )
%this.registerMissionObject( "SFXSpace", "Sound Space" );
%this.registerMissionObject( "OcclusionVolume", "Occlusion Volume" );
%this.registerMissionObject( "AccumulationVolume", "Accumulation Volume" );
%this.registerMissionObject( "Entity", "Entity" );
%this.endGroup();
@ -303,6 +304,36 @@ function EWCreatorWindow::navigate( %this, %address )
%this.addShapeIcon( %obj );
}
}
//Add a separate folder for Game Objects
if(isClass("Entity"))
{
if(%address $= "")
{
%this.addFolderIcon("GameObjects");
}
else
{
//find all GameObjectAssets
%assetQuery = new AssetQuery();
if(!AssetDatabase.findAssetType(%assetQuery, "GameObjectAsset"))
return 0; //if we didn't find ANY, just exit
%count = %assetQuery.getCount();
for(%i=0; %i < %count; %i++)
{
%assetId = %assetQuery.getAsset(%i);
%gameObjectAsset = AssetDatabase.acquireAsset(%assetId);
if(isFile(%gameObjectAsset.TAMLFilePath))
{
%this.addGameObjectIcon( %gameObjectAsset.gameObjectName );
}
}
}
}
}
if ( %this.tab $= "Meshes" )
@ -737,6 +768,22 @@ function EWCreatorWindow::addPrefabIcon( %this, %fullPath )
%this.contentCtrl.addGuiControl( %ctrl );
}
function EWCreatorWindow::addGameObjectIcon( %this, %gameObjectName )
{
%ctrl = %this.createIcon();
%ctrl.altCommand = "spawnGameObject( \"" @ %gameObjectName @ "\", true );";
%ctrl.iconBitmap = EditorIconRegistry::findIconByClassName( "Prefab" );
%ctrl.text = %gameObjectName;
%ctrl.class = "CreatorGameObjectIconBtn";
%ctrl.tooltip = "Spawn the " @ %gameObjectName @ " GameObject";
%ctrl.buttonType = "radioButton";
%ctrl.groupNum = "-1";
%this.contentCtrl.addGuiControl( %ctrl );
}
function CreatorPopupMenu::onSelect( %this, %id, %text )
{
%split = strreplace( %text, "/", " " );

View file

@ -218,7 +218,7 @@ function TerrainMaterialDlg::changeBase( %this )
if( %ctrl.bitmap !$= "" )
%file = %ctrl.bitmap;
else
%file = "tools/materialeditor/gui/unknownImage";
%file = "tools/materialEditor/gui/unknownImage";
}
%file = makeRelativePath( %file, getMainDotCsDir() );
@ -240,7 +240,7 @@ function TerrainMaterialDlg::changeDetail( %this )
if( %ctrl.bitmap !$= "" )
%file = %ctrl.bitmap;
else
%file = "tools/materialeditor/gui/unknownImage";
%file = "tools/materialEditor/gui/unknownImage";
}
%file = makeRelativePath( %file, getMainDotCsDir() );
@ -262,7 +262,7 @@ function TerrainMaterialDlg::changeMacro( %this )
if( %ctrl.bitmap !$= "" )
%file = %ctrl.bitmap;
else
%file = "tools/materialeditor/gui/unknownImage";
%file = "tools/materialEditor/gui/unknownImage";
}
%file = makeRelativePath( %file, getMainDotCsDir() );
@ -285,7 +285,7 @@ function TerrainMaterialDlg::changeNormal( %this )
if( %ctrl.bitmap !$= "" )
%file = %ctrl.bitmap;
else
%file = "tools/materialeditor/gui/unknownImage";
%file = "tools/materialEditor/gui/unknownImage";
}
%file = makeRelativePath( %file, getMainDotCsDir() );
@ -376,22 +376,22 @@ function TerrainMaterialDlg::setActiveMaterial( %this, %mat )
%this-->matNameCtrl.setText( %mat.internalName );
if (%mat.diffuseMap $= ""){
%this-->baseTexCtrl.setBitmap( "tools/materialeditor/gui/unknownImage" );
%this-->baseTexCtrl.setBitmap( "tools/materialEditor/gui/unknownImage" );
}else{
%this-->baseTexCtrl.setBitmap( %mat.diffuseMap );
}
if (%mat.detailMap $= ""){
%this-->detailTexCtrl.setBitmap( "tools/materialeditor/gui/unknownImage" );
%this-->detailTexCtrl.setBitmap( "tools/materialEditor/gui/unknownImage" );
}else{
%this-->detailTexCtrl.setBitmap( %mat.detailMap );
}
if (%mat.macroMap $= ""){
%this-->macroTexCtrl.setBitmap( "tools/materialeditor/gui/unknownImage" );
%this-->macroTexCtrl.setBitmap( "tools/materialEditor/gui/unknownImage" );
}else{
%this-->macroTexCtrl.setBitmap( %mat.macroMap );
}
if (%mat.normalMap $= ""){
%this-->normTexCtrl.setBitmap( "tools/materialeditor/gui/unknownImage" );
%this-->normTexCtrl.setBitmap( "tools/materialEditor/gui/unknownImage" );
}else{
%this-->normTexCtrl.setBitmap( %mat.normalMap );
}
@ -428,22 +428,22 @@ function TerrainMaterialDlg::saveDirtyMaterial( %this, %mat )
%newName = %this-->matNameCtrl.getText();
if (%this-->baseTexCtrl.bitmap $= "tools/materialeditor/gui/unknownImage"){
if (%this-->baseTexCtrl.bitmap $= "tools/materialEditor/gui/unknownImage"){
%newDiffuse = "";
}else{
%newDiffuse = %this-->baseTexCtrl.bitmap;
}
if (%this-->normTexCtrl.bitmap $= "tools/materialeditor/gui/unknownImage"){
if (%this-->normTexCtrl.bitmap $= "tools/materialEditor/gui/unknownImage"){
%newNormal = "";
}else{
%newNormal = %this-->normTexCtrl.bitmap;
}
if (%this-->detailTexCtrl.bitmap $= "tools/materialeditor/gui/unknownImage"){
if (%this-->detailTexCtrl.bitmap $= "tools/materialEditor/gui/unknownImage"){
%newDetail = "";
}else{
%newDetail = %this-->detailTexCtrl.bitmap;
}
if (%this-->macroTexCtrl.bitmap $= "tools/materialeditor/gui/unknownImage"){
if (%this-->macroTexCtrl.bitmap $= "tools/materialEditor/gui/unknownImage"){
%newMacro = "";
}else{
%newMacro = %this-->macroTexCtrl.bitmap;

View file

@ -485,6 +485,7 @@ function EditorOpenMission(%filename)
function EditorExportToCollada()
{
%dlg = new SaveFileDialog()
{
Filters = "COLLADA Files (*.dae)|*.dae|";
@ -517,6 +518,7 @@ function EditorExportToCollada()
function EditorMakePrefab()
{
%dlg = new SaveFileDialog()
{
Filters = "Prefab Files (*.prefab)|*.prefab|";
@ -768,6 +770,15 @@ function EditorCameraSpeedMenu::setupGuiControls(%this)
// Set up min/max camera slider range
eval("CameraSpeedDropdownCtrlContainer-->Slider.range = \"" @ %minSpeed @ " " @ %maxSpeed @ "\";");
}
//////////////////////////////////////////////////////////////////////////
// Tools Menu Handler
//////////////////////////////////////////////////////////////////////////
function EditorUtilitiesMenu::onSelectItem(%this, %id, %text)
{
return Parent::onSelectItem(%this, %id, %text);
}
//////////////////////////////////////////////////////////////////////////
// World Menu Handler Object Menu
//////////////////////////////////////////////////////////////////////////

View file

@ -253,6 +253,19 @@ function EditorGui::buildMenus(%this)
};
%this.menuBar.insert(%lightingMenu, %this.menuBar.getCount());
// Tools Menu
%toolsMenu = new PopupMenu()
{
superClass = "MenuBuilder";
class = "EditorUtilitiesMenu";
barTitle = "Tools";
item[0] = "Network Graph" TAB "n" TAB "toggleNetGraph();";
item[1] = "Profiler" TAB "ctrl F2" TAB "showMetrics(true);";
};
%this.menuBar.insert(%toolsMenu, %this.menuBar.getCount());
// Help Menu
%helpMenu = new PopupMenu()
{