Merge pull request #860 from Areloch/MiscFixes20220825

Misc Fixes for 2022/08/25
This commit is contained in:
Brian Roberts 2022-08-26 22:09:46 -05:00 committed by GitHub
commit 63d8c5a699
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
29 changed files with 276 additions and 127 deletions

View file

@ -470,9 +470,6 @@ void GuiInspectorTypeImageAssetPtr::consoleInit()
GuiControl* GuiInspectorTypeImageAssetPtr::constructEditControl()
{
if (mInspector->getInspectObject() == nullptr)
return nullptr;
// Create base filename edit controls
GuiControl* retCtrl = Parent::constructEditControl();
if (retCtrl == NULL)
@ -480,16 +477,28 @@ GuiControl* GuiInspectorTypeImageAssetPtr::constructEditControl()
retCtrl->getRenderTooltipDelegate().bind(this, &GuiInspectorTypeImageAssetPtr::renderTooltip);
// Change filespec
char szBuffer[512];
dSprintf(szBuffer, sizeof(szBuffer), "AssetBrowser.showDialog(\"ImageAsset\", \"AssetBrowser.changeAsset\", %s, %s);",
mInspector->getIdString(), mCaption);
mBrowseButton->setField("Command", szBuffer);
if (mInspector->getInspectObject() != nullptr)
{
// Change filespec
char szBuffer[512];
dSprintf(szBuffer, sizeof(szBuffer), "AssetBrowser.showDialog(\"ImageAsset\", \"AssetBrowser.changeAsset\", %s, %s);",
mInspector->getIdString(), mCaption);
mBrowseButton->setField("Command", szBuffer);
setDataField(StringTable->insert("targetObject"), NULL, mInspector->getInspectObject()->getIdString());
setDataField(StringTable->insert("targetObject"), NULL, mInspector->getInspectObject()->getIdString());
}
else
{
//if we don't have a target object, we'll be manipulating the desination value directly
char szBuffer[512];
dSprintf(szBuffer, sizeof(szBuffer), "AssetBrowser.showDialog(\"ImageAsset\", \"AssetBrowser.changeAsset\", %s, %s);",
mInspector->getIdString(), mVariableName);
mBrowseButton->setField("Command", szBuffer);
}
// Create "Open in ShapeEditor" button
mImageEdButton = new GuiBitmapButtonCtrl();
mImageEdButton = NULL;
// Create "Open in ImageEditor" button
/*mImageEdButton = new GuiBitmapButtonCtrl();
char bitmapName[512] = "ToolsModule:GameTSCtrl_image";
mImageEdButton->setBitmap(StringTable->insert(bitmapName));
@ -498,10 +507,10 @@ GuiControl* GuiInspectorTypeImageAssetPtr::constructEditControl()
mImageEdButton->setDataField(StringTable->insert("Profile"), NULL, "GuiButtonProfile");
mImageEdButton->setDataField(StringTable->insert("tooltipprofile"), NULL, "GuiToolTipProfile");
mImageEdButton->setDataField(StringTable->insert("hovertime"), NULL, "1000");
mImageEdButton->setDataField(StringTable->insert("tooltip"), NULL, "Open this file in the Shape Editor");
mImageEdButton->setDataField(StringTable->insert("tooltip"), NULL, "Open this file in the Image Editor");
mImageEdButton->registerObject();
addObject(mImageEdButton);
addObject(mImageEdButton);*/
return retCtrl;
}
@ -517,18 +526,21 @@ bool GuiInspectorTypeImageAssetPtr::updateRects()
mEditCtrlRect.set(fieldExtent.x - dividerPos + dividerMargin, 1, dividerPos - dividerMargin - 34, fieldExtent.y);
bool resized = mEdit->resize(mEditCtrlRect.point, mEditCtrlRect.extent);
if (mBrowseButton != NULL)
{
mBrowseRect.set(fieldExtent.x - 32, 2, 14, fieldExtent.y - 4);
resized |= mBrowseButton->resize(mBrowseRect.point, mBrowseRect.extent);
}
if (mImageEdButton != NULL)
{
RectI shapeEdRect(fieldExtent.x - 16, 2, 14, fieldExtent.y - 4);
resized |= mImageEdButton->resize(shapeEdRect.point, shapeEdRect.extent);
}
if (mBrowseButton != NULL)
{
if(mImageEdButton != NULL)
mBrowseRect.set(fieldExtent.x - 32, 2, 14, fieldExtent.y - 4);
else
mBrowseRect.set(fieldExtent.x - 16, 2, 14, fieldExtent.y - 4);
resized |= mBrowseButton->resize(mBrowseRect.point, mBrowseRect.extent);
}
return resized;
}

View file

@ -479,11 +479,22 @@ GuiControl* GuiInspectorTypeMaterialAssetPtr::constructEditControl()
// Change filespec
char szBuffer[512];
dSprintf(szBuffer, sizeof(szBuffer), "AssetBrowser.showDialog(\"MaterialAsset\", \"AssetBrowser.changeAsset\", %s, %s);",
mInspector->getIdString(), mCaption);
mBrowseButton->setField("Command", szBuffer);
setDataField(StringTable->insert("targetObject"), NULL, mInspector->getInspectObject()->getIdString());
if (mInspector->getInspectObject() != nullptr)
{
dSprintf(szBuffer, sizeof(szBuffer), "AssetBrowser.showDialog(\"MaterialAsset\", \"AssetBrowser.changeAsset\", %s, %s);",
mInspector->getIdString(), mCaption);
mBrowseButton->setField("Command", szBuffer);
setDataField(StringTable->insert("targetObject"), NULL, mInspector->getInspectObject()->getIdString());
}
else
{
//if we don't have a target object, we'll be manipulating the desination value directly
dSprintf(szBuffer, sizeof(szBuffer), "AssetBrowser.showDialog(\"MaterialAsset\", \"AssetBrowser.changeAsset\", %s, %s);",
mInspector->getIdString(), mVariableName);
mBrowseButton->setField("Command", szBuffer);
}
// Create "Open in Editor" button
mEditButton = new GuiBitmapButtonCtrl();

View file

@ -749,11 +749,21 @@ GuiControl* GuiInspectorTypeShapeAssetPtr::constructEditControl()
// Change filespec
char szBuffer[512];
dSprintf(szBuffer, sizeof(szBuffer), "AssetBrowser.showDialog(\"ShapeAsset\", \"AssetBrowser.changeAsset\", %s, %s);",
mInspector->getIdString(), mCaption);
mBrowseButton->setField("Command", szBuffer);
if (mInspector->getInspectObject() != nullptr)
{
dSprintf(szBuffer, sizeof(szBuffer), "AssetBrowser.showDialog(\"ShapeAsset\", \"AssetBrowser.changeAsset\", %s, %s);",
mInspector->getIdString(), mCaption);
mBrowseButton->setField("Command", szBuffer);
setDataField(StringTable->insert("targetObject"), NULL, mInspector->getInspectObject()->getIdString());
setDataField(StringTable->insert("targetObject"), NULL, mInspector->getInspectObject()->getIdString());
}
else
{
//if we don't have a target object, we'll be manipulating the desination value directly
dSprintf(szBuffer, sizeof(szBuffer), "AssetBrowser.showDialog(\"ShapeAsset\", \"AssetBrowser.changeAsset\", %s, %s);",
mInspector->getIdString(), mVariableName);
mBrowseButton->setField("Command", szBuffer);
}
// Create "Open in ShapeEditor" button
mShapeEdButton = new GuiBitmapButtonCtrl();

View file

@ -393,7 +393,7 @@ void GuiGameSettingsCtrl::onRenderSliderOption(Point2I currentOffset)
GFont* font = mProfile->mFont;
char stringVal[32];
dSprintf(stringVal, 32, "%f", mValue);
dSprintf(stringVal, 32, "%.1f", mValue);
S32 stringWidth = font->getStrWidth(stringVal);
Point2I textOffset(sliderRect.point.x + sliderRect.extent.x, 0);

View file

@ -1982,7 +1982,7 @@ bool GuiTreeViewCtrl::_hitTest(const Point2I & pnt, Item* & item, BitSet32 & fla
min += mProfile->mTextOffset.x;
FrameAllocatorMarker txtAlloc;
U32 bufLen = item->getDisplayTextLength() + 1;
U32 bufLen = item->getDisplayTextLength() + 2;
char *buf = (char*)txtAlloc.alloc(bufLen);
item->getDisplayText(bufLen, buf);

View file

@ -428,7 +428,7 @@ void PopupMenu::showPopup(GuiCanvas *owner, S32 x /* = -1 */, S32 y /* = -1 */)
Point2I pos = Point2I::Zero;
if (x == -1 && y == -1)
pos = owner->getCursorPos();
pos = owner->getCursorPosLocal();
else
pos = Point2I(x, y);

View file

@ -34,9 +34,6 @@ static const U32 MaxExtent = 256;
//----------------------------------------------------------------------------
Convex sTerrainConvexList;
// Number of vertices followed by point index
S32 sVertexList[5][5] = {
{ 3, 1,2,3 }, // 135 B
@ -350,7 +347,7 @@ void TerrainBlock::buildConvex(const Box3F& box,Convex* convex)
{
PROFILE_SCOPE( TerrainBlock_buildConvex );
sTerrainConvexList.collectGarbage();
mTerrainConvexList.collectGarbage();
// First check to see if the query misses the
// terrain elevation range.
@ -415,7 +412,7 @@ void TerrainBlock::buildConvex(const Box3F& box,Convex* convex)
// Create a new convex.
TerrainConvex* cp = new TerrainConvex;
sTerrainConvexList.registerObject(cp);
mTerrainConvexList.registerObject(cp);
convex->addToWorkingList(cp);
cp->halfA = true;
cp->square = 0;
@ -448,7 +445,7 @@ void TerrainBlock::buildConvex(const Box3F& box,Convex* convex)
cp->normal[1].normalize();
if (mDot(vp[3] - vp[1],cp->normal[0]) > 0) {
TerrainConvex* nc = new TerrainConvex(*cp);
sTerrainConvexList.registerObject(nc);
mTerrainConvexList.registerObject(nc);
convex->addToWorkingList(nc);
nc->halfA = false;
nc->square = cp;
@ -463,7 +460,7 @@ void TerrainBlock::buildConvex(const Box3F& box,Convex* convex)
cp->normal[1].normalize();
if (mDot(vp[2] - vp[0],cp->normal[0]) > 0) {
TerrainConvex* nc = new TerrainConvex(*cp);
sTerrainConvexList.registerObject(nc);
mTerrainConvexList.registerObject(nc);
convex->addToWorkingList(nc);
nc->halfA = false;
nc->square = cp;

View file

@ -220,13 +220,10 @@ TerrainBlock::TerrainBlock()
mTerrainAssetId = StringTable->EmptyString();
}
extern Convex sTerrainConvexList;
TerrainBlock::~TerrainBlock()
{
// Kill collision
sTerrainConvexList.nukeList();
mTerrainConvexList.nukeList();
SAFE_DELETE(mLightMap);
mLightMapTex = NULL;

View file

@ -55,7 +55,10 @@
#endif
#ifndef TERRAINASSET_H
#include "T3D/assets/TerrainAsset.h"
#endif
#endif
#ifndef _CONVEX_H_
#include "collision/convex.h"
#endif
class GBitmap;
class TerrainBlock;
@ -217,6 +220,9 @@ protected:
/// True if the zoning needs to be recalculated for the terrain.
bool mZoningDirty;
/// Holds the generated convex list stuff for this terrain
Convex mTerrainConvexList;
String _getBaseTexCacheFileName() const;
void _rebuildQuadtree();

View file

@ -139,7 +139,7 @@ datablock MissionMarkerData(SpawnSphereMarker)
datablock MissionMarkerData(CameraBookmarkMarker)
{
category = "Misc";
shapeAsset = "Core_GameObjects:Camera";
shapeAsset = "Core_GameObjects:camera_shape";
};
datablock CameraData(Observer)

View file

@ -5,6 +5,7 @@
materialDefinitionName="CameraMat"
VersionId="1">
<Material
mapTo="CameraMat"
Name="CameraMat"
doubleSided="1"
translucent="1"

View file

@ -0,0 +1,5 @@
<ShapeAsset
AssetName="camera_shape"
fileName="@assetFile=camera.fbx"
constuctorFileName="@assetFile=camera_shape.tscript"
materialSlot0="@asset=Core_GameObjects:CameraMat"/>

View file

@ -0,0 +1,11 @@
singleton TSShapeConstructor(cameradts2)
{
baseShapeAsset = "Core_GameObjects:Camera_shape";
singleDetailSize = "0";
flipUVCoords = "0";
JoinIdenticalVerts = "0";
reverseWindingOrder = "0";
removeRedundantMats = "0";
animFPS = "2";
};

View file

@ -608,8 +608,11 @@ function AssetBrowser::doRefresh(%this)
//Forces a clean collapse of the tree for any not-really-exposed items
%dataItem = AssetBrowser-->filterTree.findItemByName("data");
AssetBrowser-->filterTree.expandItem(%dataItem, false);
AssetBrowser-->filterTree.expandItem(%dataItem);
if(%dataItem != 0)
{
AssetBrowser-->filterTree.expandItem(%dataItem, false);
AssetBrowser-->filterTree.expandItem(%dataItem);
}
%this.dirty = false;
}
@ -985,14 +988,21 @@ function AssetBrowser::changeAsset(%this)
%targetObject = %this.fieldTargetObject;
%inspectorObject = "";
if(%this.fieldTargetObject.isInNamespaceHierarchy("GuiInspector"))
if(isObject(%this.fieldTargetObject) && %this.fieldTargetObject.isInNamespaceHierarchy("GuiInspector"))
{
%inspectorObject = %this.fieldTargetObject;
%targetObject = %inspectorObject.getInspectObject();
%inspectorObject.setObjectField(%this.fieldTargetName, %this.selectedAsset);
if(%inspectorObject.getNumInspectObjects() != 0)
{
%targetObject = %inspectorObject.getInspectObject();
%inspectorObject.setObjectField(%this.fieldTargetName, %this.selectedAsset);
}
else if(startsWith(%this.fieldTargetName, "$"))
{
//we're targeting a variable directly, so deal with that then
%cmd = %this.fieldTargetName @ "=\"" @ %this.selectedAsset @ "\";";
}
}
else
else if(isObject(%this.fieldTargetObject))
{
//alright, we've selectd an asset for a field, so time to set it!
if(%this.fieldTargetName $= "")
@ -1000,11 +1010,23 @@ function AssetBrowser::changeAsset(%this)
else
%cmd = %targetObject @ "." @ %this.fieldTargetName @ "=\"" @ %this.selectedAsset @ "\";";
//echo("Changing asset via the " @ %cmd @ " command");
eval(%cmd);
}
else if(startsWith(%this.fieldTargetName, "$"))
{
//we're targeting a variable directly, so deal with that then
%cmd = %this.fieldTargetName @ "=\"" @ %this.selectedAsset @ "\";";
}
eval(%cmd);
//Force update our object with the field change
%targetObject.inspectPostApply();
if(isObject(%targetObject))
{
if(%this.fieldTargetObject.isInNamespaceHierarchy("GuiInspector"))
%this.fieldTargetObject.refresh();
else
%targetObject.inspectPostApply();
}
//Flag us as dirty for editing purposes
EWorldEditor.setSceneAsDirty();

View file

@ -499,7 +499,30 @@ function AssetBrowser::openFileLocation(%this)
%filePath = "";
if(EditAssetPopup.assetId !$= "")
{
%filePath = AssetDatabase.getAssetPath(EditAssetPopup.assetId);
if(AssetDatabase.isDeclaredAsset(EditAssetPopup.assetId))
{
%filePath = AssetDatabase.getAssetPath(EditAssetPopup.assetId);
}
else
{
//probably a file path
%pathSplit = strpos(EditAssetPopup.assetId, ":");
if(%pathSplit != -1)
{
%path = getSubStr(EditAssetPopup.assetId, 0, %pathSplit);
%file = getSubStr(EditAssetPopup.assetId, %pathSplit + 1);
//datablocks pack the originator file in the parent path as-is, so check that
if(fileExt(%path) !$= "")
{
%filePath = %path;
}
else
{
%filePath = %path @ "/" @ %file;
}
}
}
}
else if(EditLevelAssetPopup.assetId !$= "")
{
@ -510,16 +533,20 @@ function AssetBrowser::openFileLocation(%this)
%filePath = AssetDatabase.getAssetPath(EditAssetPopup.assetId);
}
if(%filePath !$= "")
if(isFile(%filePath) || isDirectory(%filePath))
{
%fullPath = makeFullPath(%filePath);
if(fileExt(%fullPath) $= ".tscript")
%fullPath = filePath(%fullPath);
if($platform $= "windows")
{
%cmd = "cd \"" @ makeFullPath(%filePath) @ "\" && start .";
%cmd = "cd \"" @ %fullPath @ "\" && start .";
systemCommand(%cmd);
}
else
{
%cmd = "open \"" @ makeFullPath(%filePath) @ "\"";
%cmd = "open \"" @ %fullPath @ "\"";
systemCommand(%cmd);
}
}

View file

@ -137,18 +137,9 @@ function AssetBrowser::buildPopupMenus(%this)
item[ 3 ] = "-";
item[ 4 ] = "Create Terrain Data" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"TerrainAsset\", AssetBrowser.selectedModule);";
item[ 5 ] = "-";
item[ 6 ] = "Create Shape" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"Shape\", AssetBrowser.selectedModule);";
item[ 7 ] = "Create Shape Animation" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"ShapeAnimationAsset\", AssetBrowser.selectedModule);";//"AssetBrowser.createNewShapeAnimationAsset(\"NewShapeAnimation\", AssetBrowser.selectedModule);";
item[ 8 ] = "-";
item[ 9 ] = "Create GUI" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"GUIAsset\", AssetBrowser.selectedModule);";//"AssetBrowser.createNewGUIAsset(\"NewGUI\", AssetBrowser.selectedModule);";
item[ 10 ] = "-";
item[ 11 ] = "Create Post Effect" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"PostEffectAsset\", AssetBrowser.selectedModule);";//"AssetBrowser.createNewPostEffectAsset(\"NewPostEffect\", AssetBrowser.selectedModule);";
item[ 12 ] = "-";
item[ 13 ] = "Create Sound" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"SoundAsset\", AssetBrowser.selectedModule);";//"AssetBrowser.createNewSoundAsset(\"NewSound\", AssetBrowser.selectedModule);";
item[ 14 ] = "-";
item[ 15 ] = "Create Particle Effect" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"ParticleEffectAsset\", AssetBrowser.selectedModule);";//"AssetBrowser.createNewParticleEffectAsset(\"NewParticleEffect\", AssetBrowser.selectedModule);";
item[ 16 ] = "-";
item[ 17 ] = "Create Cubemap" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"CubemapAsset\", AssetBrowser.selectedModule);";
item[ 6 ] = "Create GUI" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"GUIAsset\", AssetBrowser.selectedModule);";//"AssetBrowser.createNewGUIAsset(\"NewGUI\", AssetBrowser.selectedModule);";
item[ 7 ] = "-";
item[ 8 ] = "Create Post Effect" TAB "" TAB "AssetBrowser.setupCreateNewAsset(\"PostEffectAsset\", AssetBrowser.selectedModule);";//"AssetBrowser.createNewPostEffectAsset(\"NewPostEffect\", AssetBrowser.selectedModule);";
};
}
@ -232,13 +223,6 @@ function AssetBrowser::buildPopupMenus(%this)
};
}
//Some assets are not yet ready/implemented, so disable their creation here
AddNewArtAssetPopup.enableItem(6, false); //shape
AddNewArtAssetPopup.enableItem(7, false); //shape animation
AddNewArtAssetPopup.enableItem(13, false); //sound asset
AddNewArtAssetPopup.enableItem(15, false); //particle effect
AddNewArtAssetPopup.enableItem(17, false); //cubemap
if( !isObject( EditFolderPopup ) )
{
new PopupMenu( EditFolderPopup )

View file

@ -362,8 +362,8 @@ new GuiMouseEventCtrl(ForestBrushSizeSliderCtrlContainer,EditorGuiGroup) {
Profile = "ToolsGuiSliderBoxProfile";
HorizSizing = "right";
VertSizing = "bottom";
position = firstWord(ForestBrushSizeTextEditContainer.position) + firstWord(ForestEditToolbar.position)+11 SPC
(getWord(ForestBrushSizeTextEditContainer, 1)) + 25;
position = ForestBrushSizeTextEditContainer.position.x + ForestEditToolbar.position.x + 50 SPC
ForestBrushSizeTextEditContainer.position.y + 50;
Extent = "112 20";
MinExtent = "8 2";
canSave = "1";
@ -392,8 +392,8 @@ new GuiMouseEventCtrl(ForestBrushPressureSliderCtrlContainer,EditorGuiGroup) {
Profile = "ToolsGuiSliderBoxProfile";
HorizSizing = "right";
VertSizing = "bottom";
position = firstWord(ForestBrushPressureTextEditContainer.position) + firstWord(ForestEditToolbar.position) SPC
(getWord(ForestBrushPressureTextEditContainer, 1)) + 25;
position = ForestBrushPressureTextEditContainer.position.x + ForestEditToolbar.position.x + 50 SPC
ForestBrushPressureTextEditContainer.position.y + 50;
Extent = "112 20";
MinExtent = "8 2";
canSave = "1";
@ -422,8 +422,8 @@ new GuiMouseEventCtrl(ForestBrushHardnessSliderCtrlContainer,EditorGuiGroup) {
Profile = "ToolsGuiSliderBoxProfile";
HorizSizing = "right";
VertSizing = "bottom";
position = firstWord(ForestBrushHardnessTextEditContainer.position) + firstWord(ForestEditToolbar.position) SPC
(getWord(TForestBrushHardnessTextEditContainer, 1)) + 25;
position = ForestBrushPressureTextEditContainer.position.x + ForestEditToolbar.position.x + 50 SPC
ForestBrushPressureTextEditContainer.position.y + 50;
Extent = "112 20";
MinExtent = "8 2";
canSave = "1";

View file

@ -42,9 +42,14 @@ function PostFXEditor::editDefaultPostFXSettings( %this )
PostFXEditorActionButton.command = "PostFXManager::savePresetHandler($PostFXManager::defaultPreset);";
}
function PostEffectEditorInspector::refresh(%this)
{
PostFXEditor.refresh();
}
function PostFXEditor::refresh(%this)
{
%selectedItem = PostEffectEditorList.getSelectedRow();
PostEffectEditorList.clear();
%count = PostFXManager.Count();
@ -55,6 +60,8 @@ function PostFXEditor::refresh(%this)
if(%postEffect.isEnabled())
PostEffectEditorList.addRow( %i, %postEffect.getName() );
}
PostEffectEditorList.setSelectedRow(%selectedItem);
}
function PostFXEditor::apply(%this)

View file

@ -302,8 +302,8 @@ new GuiMouseEventCtrl(MeshRoadDefaultWidthSliderCtrlContainer, EditorGuiGroup) {
Profile = "ToolsGuiSliderBoxProfile";
HorizSizing = "right";
VertSizing = "bottom";
position = firstWord(MeshRoadDefaultWidthTextEditContainer.position) + firstWord(MeshRoadEditorToolbar.position) + 10 SPC
(getWord(MeshRoadDefaultWidthTextEditContainer, 1)) + 25;
position = MeshRoadDefaultWidthTextEditContainer.position.x + MeshRoadEditorToolbar.position.x + 50 SPC
MeshRoadDefaultWidthTextEditContainer.position.y + 50;
Extent = "112 20";
MinExtent = "8 2";
canSave = "1";
@ -331,8 +331,8 @@ new GuiMouseEventCtrl(MeshRoadDefaultDepthSliderCtrlContainer, EditorGuiGroup) {
Profile = "ToolsGuiSliderBoxProfile";
HorizSizing = "right";
VertSizing = "bottom";
position = firstWord(MeshRoadDefaultDepthTextEditContainer.position) + firstWord(MeshRoadEditorToolbar.position) + 10 SPC
(getWord(MeshRoadDefaultDepthTextEditContainer, 1)) + 25;
position = MeshRoadDefaultDepthTextEditContainer.position.x + MeshRoadEditorToolbar.position.x + 50 SPC
MeshRoadDefaultDepthTextEditContainer.position.y + 50;
Extent = "112 20";
MinExtent = "8 2";
canSave = "1";

View file

@ -280,8 +280,8 @@ new GuiMouseEventCtrl(RiverDefaultWidthSliderCtrlContainer, EditorGuiGroup) {
Profile = "ToolsGuiSliderBoxProfile";
HorizSizing = "right";
VertSizing = "bottom";
position = firstWord(RiverDefaultWidthTextEditContainer.position) + firstWord(RiverEditorToolbar.position) + 10 SPC
(getWord(RiverDefaultWidthTextEditContainer, 1)) + 25;
position = RiverDefaultWidthTextEditContainer.position.x + RiverEditorToolbar.position.x + 50 SPC
RiverDefaultWidthTextEditContainer.position.y + 50;
Extent = "112 20";
MinExtent = "8 2";
canSave = "1";
@ -309,8 +309,8 @@ new GuiMouseEventCtrl(RiverDefaultDepthSliderCtrlContainer, EditorGuiGroup) {
Profile = "ToolsGuiSliderBoxProfile";
HorizSizing = "right";
VertSizing = "bottom";
position = firstWord(RiverDefaultDepthTextEditContainer.position) + firstWord(RiverEditorToolbar.position) + 10 SPC
(getWord(RiverDefaultDepthTextEditContainer, 1)) + 25;
position = RiverDefaultDepthTextEditContainer.position.x + RiverEditorToolbar.position.x + 50 SPC
RiverDefaultDepthTextEditContainer.position.y + 50;
Extent = "112 20";
MinExtent = "8 2";
canSave = "1";

View file

@ -259,8 +259,8 @@ new GuiMouseEventCtrl(RoadDefaultWidthSliderCtrlContainer, EditorGuiGroup) {
Profile = "ToolsGuiSliderBoxProfile";
HorizSizing = "right";
VertSizing = "bottom";
position = firstWord(RoadDefaultWidthTextEditContainer.position) + firstWord(RoadEditorToolbar.position) + 10 SPC
(getWord(RoadDefaultWidthTextEditContainer, 1)) + 25;
position = RoadDefaultWidthTextEditContainer.position.x + RoadEditorToolbar.position.x + 50 SPC
RoadDefaultWidthTextEditContainer.position.y + 50;
Extent = "112 20";
MinExtent = "8 2";
canSave = "1";

View file

@ -510,8 +510,8 @@ new GuiMouseEventCtrl(TerrainBrushSizeSliderCtrlContainer,EditorGuiGroup) {
Profile = "ToolsGuiSliderBoxProfile";
HorizSizing = "right";
VertSizing = "bottom";
position = firstWord(TerrainBrushSizeTextEditContainer.position) + firstWord(EWTerrainEditToolbar.position)+11 SPC
(getWord(TerrainBrushSizeTextEditContainer, 1)) + 25;
position = TerrainBrushSizeTextEditContainer.position.x + EWTerrainEditToolbar.position.x + 50 SPC
TerrainBrushSizeTextEditContainer.position.y + 50;
Extent = "112 20";
MinExtent = "8 2";
canSave = "1";
@ -540,8 +540,8 @@ new GuiMouseEventCtrl(TerrainBrushPressureSliderCtrlContainer,EditorGuiGroup) {
Profile = "ToolsGuiSliderBoxProfile";
HorizSizing = "right";
VertSizing = "bottom";
position = firstWord(TerrainBrushPressureTextEditContainer.position) + firstWord(EWTerrainEditToolbar.position) SPC
(getWord(TerrainBrushPressureTextEditContainer, 1)) + 25;
position = TerrainBrushPressureTextEditContainer.position.x + EWTerrainEditToolbar.position.x + 50 SPC
TerrainBrushPressureTextEditContainer.position.y + 50;
Extent = "112 20";
MinExtent = "8 2";
canSave = "1";
@ -570,8 +570,8 @@ new GuiMouseEventCtrl(TerrainBrushSoftnessSliderCtrlContainer,EditorGuiGroup) {
Profile = "ToolsGuiSliderBoxProfile";
HorizSizing = "right";
VertSizing = "bottom";
position = firstWord(TerrainBrushSoftnessTextEditContainer.position) + firstWord(EWTerrainEditToolbar.position) SPC
(getWord(TerrainBrushSoftnessTextEditContainer, 1)) + 25;
position = TerrainBrushSoftnessTextEditContainer.position.x + EWTerrainEditToolbar.position.x + 50 SPC
TerrainBrushSoftnessTextEditContainer.position.y + 50;
Extent = "112 20";
MinExtent = "8 2";
canSave = "1";
@ -600,8 +600,8 @@ new GuiMouseEventCtrl(TerrainSetHeightSliderCtrlContainer,EditorGuiGroup) {
Profile = "ToolsGuiSliderBoxProfile";
HorizSizing = "right";
VertSizing = "bottom";
position = firstWord(TerrainSetHeightTextEditContainer.position) + firstWord(EWTerrainEditToolbar.position) SPC
(getWord(TerrainSetHeightTextEditContainer, 1)) + 25;
position = TerrainSetHeightTextEditContainer.position.x + EWTerrainEditToolbar.position.x SPC
TerrainSetHeightTextEditContainer.position.y + 50;
Extent = "112 20";
MinExtent = "8 2";
canSave = "1";

View file

@ -222,7 +222,7 @@ $guiContent = new GuiControl(EWTerrainPainterToolbar,EditorGuiGroup) {
Profile = "ToolsGuiDefaultProfile";
HorizSizing = "right";
VertSizing = "bottom";
Position = "222 5";
Position = "245 5";
Extent = "256 50";
MinExtent = "8 2";
canSave = "1";
@ -382,7 +382,7 @@ $guiContent = new GuiControl(EWTerrainPainterToolbar,EditorGuiGroup) {
Profile = "ToolsGuiTransparentProfile";
HorizSizing = "right";
VertSizing = "bottom";
position = "480 5";
position = "490 5";
Extent = "120 50";
MinExtent = "8 2";
canSave = "1";
@ -524,8 +524,8 @@ new GuiMouseEventCtrl(PaintBrushSizeSliderCtrlContainer,EditorGuiGroup) {
Profile = "ToolsGuiSliderBoxProfile";
HorizSizing = "right";
VertSizing = "bottom";
position = firstWord(PaintBrushSizeTextEditContainer.position) + firstWord(EWTerrainPainterToolbar.position)+11 SPC
(getWord(PaintBrushSizeTextEditContainer, 1)) + 25;
position = PaintBrushSizeTextEditContainer.position.x + EWTerrainPainterToolbar.position.x + 50 SPC
PaintBrushSizeTextEditContainer.position.y + 50;
Extent = "112 20";
MinExtent = "8 2";
canSave = "1";
@ -554,8 +554,8 @@ new GuiMouseEventCtrl(PaintBrushSlopeMinContainer,EditorGuiGroup) {
Profile = "ToolsGuiSliderBoxProfile";
HorizSizing = "right";
VertSizing = "bottom";
position = firstWord(PaintBrushSlopeControl.position) + firstWord(EWTerrainPainterToolbar.position)+firstWord(PaintBrushSlopeControl->SlopeMinAngle.position) - 40 SPC
(getWord(PaintBrushSlopeControl, 1)) + 25;
position = PaintBrushSlopeControl.position.x + EWTerrainPainterToolbar.position.x + PaintBrushSlopeControl->SlopeMinAngle.position.x - 40 SPC
PaintBrushSlopeControl.position.y + 50;
Extent = "112 20";
MinExtent = "8 2";
canSave = "1";
@ -589,8 +589,8 @@ new GuiMouseEventCtrl(PaintBrushSlopeMaxContainer,EditorGuiGroup) {
Profile = "ToolsGuiSliderBoxProfile";
HorizSizing = "right";
VertSizing = "bottom";
position = firstWord(PaintBrushSlopeControl.position) + firstWord(EWTerrainPainterToolbar.position)+firstWord(PaintBrushSlopeControl->SlopeMaxAngle.position) - 40 SPC
(getWord(PaintBrushSlopeControl, 1)) + 25;
position = PaintBrushSlopeControl.position.x + EWTerrainPainterToolbar.position.x + PaintBrushSlopeControl->SlopeMaxAngle.position.x - 40 SPC
PaintBrushSlopeControl.position.y + 50;
Extent = "112 20";
MinExtent = "8 2";
canSave = "1";
@ -629,8 +629,8 @@ new GuiMouseEventCtrl(PaintBrushPressureSliderCtrlContainer,EditorGuiGroup) {
Profile = "ToolsGuiSliderBoxProfile";
HorizSizing = "right";
VertSizing = "bottom";
position = firstWord(PaintBrushPressureTextEditContainer.position) + firstWord(EWTerrainPainterToolbar.position) SPC
(getWord(PaintBrushPressureTextEditContainer, 1)) + 25;
position = PaintBrushPressureTextEditContainer.position.x + EWTerrainPainterToolbar.position.x + 50 SPC
PaintBrushPressureTextEditContainer.position.y + 50;
Extent = "112 20";
MinExtent = "8 2";
canSave = "1";
@ -659,8 +659,8 @@ new GuiMouseEventCtrl(PaintBrushSoftnessSliderCtrlContainer,EditorGuiGroup) {
Profile = "ToolsGuiSliderBoxProfile";
HorizSizing = "right";
VertSizing = "bottom";
position = firstWord(PaintBrushSoftnessTextEditContainer.position) + firstWord(EWTerrainPainterToolbar.position) SPC
(getWord(PaintBrushSoftnessTextEditContainer, 1)) + 25;
position = PaintBrushSoftnessTextEditContainer.position.x + EWTerrainPainterToolbar.position.x + 50 SPC
PaintBrushSoftnessTextEditContainer.position.y + 50;
Extent = "112 20";
MinExtent = "8 2";
canSave = "1";

View file

@ -684,8 +684,8 @@ new GuiMouseEventCtrl(softSnapSizeSliderCtrlContainer, EditorGuiGroup) {
Profile = "ToolsGuiSliderBoxProfile";
HorizSizing = "right";
VertSizing = "bottom";
position = firstWord(EWorldEditorToolbar-->softSnapSizeTextEdit.getGlobalPosition()) - 12 SPC
(getWord(EWorldEditorToolbar-->softSnapSizeTextEdit.getGlobalPosition(), 1)) + 18;
position = EWorldEditorToolbar.position.x + EWorldEditorToolbar-->softSnapSizeTextEditContainer.position.x + 50 SPC
EWorldEditorToolbar-->softSnapSizeTextEdit.position.y + 50;
Extent = "112 20";
MinExtent = "8 2";
canSave = "1";

View file

@ -734,7 +734,7 @@ function EditorGui::addCameraBookmarkByGui( %this )
// look for a NewCamera name to grab
for(%i = 0; ; %i++){
%name = "NewCamera_" @ %i;
if( !CameraBookmarks.findObjectByInternalName(%name) ){
if( !isObject(CameraBookmarks) || !CameraBookmarks.findObjectByInternalName(%name) ){
break;
}
}
@ -1340,7 +1340,9 @@ function CameraTypesDropdownToggle()
function VisibilityDropdownToggle()
{
EditorVisibilityOptions.showPopup(Canvas);
%pos = visibilityToggleBtn.getGlobalPosition();
%pos.y += visibilityToggleBtn.extent.y;
EditorVisibilityOptions.showPopup(Canvas, %pos.x, %pos.y);
}
function CameraTypesDropdownDecoy::onMouseLeave()

View file

@ -436,3 +436,55 @@ function toggleVolumeViz(%vizName)
EVisibilityVolumeOptions.checkItem(7, $SFXSpace::isRenderable);
}
}
//
//
function togglePlayerCollisionViz()
{
$Player::renderCollision = !$Player::renderCollision;
EVisibilityDebugRenderOptions.checkItem(0, $Player::renderCollision);
}
function toggleTerrainDebugViz()
{
$TerrainBlock::debugRender = !$TerrainBlock::debugRender;
EVisibilityDebugRenderOptions.checkItem(1, $TerrainBlock::debugRender);
}
function toggleDecalsDebugViz()
{
$Decals::debugRender = !$Decals::debugRender;
EVisibilityDebugRenderOptions.checkItem(2, $Decals::debugRender);
}
function toggleBoundingBoxesViz()
{
$Scene::renderBoundingBoxes = !$Scene::renderBoundingBoxes;
EVisibilityDebugRenderOptions.checkItem(3, $Scene::renderBoundingBoxes);
}
//
//
function toggleWireframeViz()
{
$gfx::wireframe = !$gfx::wireframe;
EditorVisibilityOptions.checkItem(3, $gfx::wireframe);
}
function toggleFrustumLockViz()
{
$Scene::lockCull = !$Scene::lockCull;
EditorVisibilityOptions.checkItem(4, $Scene::lockCull);
}
function toggleZoneCulling()
{
$Scene::disableZoneCulling = !$Scene::disableZoneCulling;
EditorVisibilityOptions.checkItem(7, $Scene::disableZoneCulling);
}
function toggleTerrainCulling()
{
$Scene::disableTerrainOcclusion = !$Scene::disableTerrainOcclusion;
EditorVisibilityOptions.checkItem(8, $Scene::disableTerrainOcclusion);
}

View file

@ -98,15 +98,17 @@ function setupEditorVisibilityMenu()
superClass = "MenuBuilder";
class = "EditorWorldMenu";
item[ 0 ] = "Show Player Collision" TAB "" TAB "$Player::renderCollision = !$Player::renderCollision;";
item[ 1 ] = "Show Terrain Debug" TAB "" TAB "$TerrainBlock::debugRender = !$TerrainBlock::debugRender;";
item[ 2 ] = "Show Decals Debug" TAB "" TAB "$Decals::debugRender = !$Decals::debugRender;";
item[ 3 ] = "Show Bounding Boxes" TAB "" TAB "$Scene::renderBoundingBoxes = !$Scene::renderBoundingBoxes;";
item[ 0 ] = "Show Player Collision" TAB "" TAB "togglePlayerCollisionViz();";
item[ 1 ] = "Show Terrain Debug" TAB "" TAB "toggleTerrainDebugViz();";
item[ 2 ] = "Show Decals Debug" TAB "" TAB "toggleDecalsDebugViz();";
item[ 3 ] = "Show Bounding Boxes" TAB "" TAB "toggleBoundingBoxesViz();";
item[ 4 ] = "Show Physics World" TAB "" TAB "togglePhysicsDebugViz();";
item[ 5 ] = "Show Texel Density" TAB "" TAB "toggleTexelDensityViz();";
};
%debugRenderpopup.enableItem(4, false);
if(!physicsPluginPresent())
%debugRenderpopup.enableItem(4, false);
%debugRenderpopup.enableItem(5, false);
//
@ -231,12 +233,12 @@ function setupEditorVisibilityMenu()
item[ 0 ] = "Volumes Visibility" TAB EVisibilityVolumeOptions;
item[ 1 ] = "Debug Rendering" TAB EVisibilityDebugRenderOptions;
item[ 2 ] = "-" TAB "" TAB "";
item[ 3 ] = "Wireframe" TAB "" TAB "$gfx::wireframe = !$gfx::wireframe;";
item[ 4 ] = "Frustum Lock" TAB "" TAB "$Scene::lockCull = !$Scene::lockCull;";
item[ 3 ] = "Wireframe" TAB "" TAB "toggleWireframeViz();";
item[ 4 ] = "Frustum Lock" TAB "" TAB "toggleFrustumLockViz();";
item[ 5 ] = "Colorblindness" TAB EVisibilityColorblindnessOptions;
item[ 6 ] = "-" TAB "" TAB "";
item[ 7 ] = "Disable Zone Culling" TAB "" TAB "$Scene::disableZoneCulling = !$Scene::disableZoneCulling;";
item[ 8 ] = "Disable Terrain Culling" TAB "" TAB "$Scene::disableTerrainOcclusion = !$Scene::disableTerrainOcclusion;";
item[ 7 ] = "Disable Zone Culling" TAB "" TAB "toggleZoneCulling();";
item[ 8 ] = "Disable Terrain Culling" TAB "" TAB "toggleTerrainCulling();";
item[ 9 ] = "-" TAB "" TAB "";
item[ 10 ] = "Lighting Modes" TAB EVisibilityLightingModesOptions;
item[ 11 ] = "Lights" TAB EVisibilityLightsOptions;
@ -383,14 +385,17 @@ function EVisibility::addClassOptions( %this )
}
}
function togglePhysicsDebugViz( %enable )
function togglePhysicsDebugViz( )
{
$PhysicsWorld::render = %enable;
$PhysicsWorld::render = !$PhysicsWorld::render;
if(physicsPluginPresent())
{
physicsDebugDraw(%enable);
physicsDebugDraw($PhysicsWorld::render);
}
EVisibilityDebugRenderOptions.checkItem(4, $PhysicsWorld::render);
}
function disableVisualizers()