public static void SaveConfig(string fileName, Octave3DConfigSaveLoadSettings saveSettings)
        {
            if (string.IsNullOrEmpty(fileName))
            {
                return;
            }

            using (XmlTextWriter xmlWriter = new XmlTextWriter(fileName, Encoding.UTF8))
            {
                xmlWriter.WriteStartDocument();
                xmlWriter.WriteNewLine(0);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.RootNode);

                SaveSnapSettings(xmlWriter, saveSettings);
                SaveObjectSelectionSettings(xmlWriter, saveSettings);
                SaveObjectErasingSettings(xmlWriter, saveSettings);
                SaveMirrorLookAndFeel(ObjectPlacement.Get().MirrorRenderSettings, xmlWriter, saveSettings, true);
                SaveMirrorLookAndFeel(ObjectSelection.Get().MirrorRenderSettings, xmlWriter, saveSettings, false);
                SaveSnapLookAndFeel(xmlWriter, saveSettings);
                SaveObjectPlacementLookAndFeel(xmlWriter, saveSettings);
                SaveObjectSelectionLookAndFeel(xmlWriter, saveSettings);
                SaveObjectErasingLookAndFeel(xmlWriter, saveSettings);

                xmlWriter.WriteNewLine(0);
                xmlWriter.WriteEndElement();
                xmlWriter.WriteEndDocument();
            }
        }
Exemple #2
0
        protected override void RenderContent()
        {
            if (!ObjectPlacement.Get().UserWantsToPlaceTileConnections)
            {
                RenderExcludeCornersToggle();
            }
            if (!ObjectPlacement.Get().UserWantsToPlaceTileConnections)
            {
                RenderRandomizePrefabsInActiveCategoryToggle();
            }
            if (!ObjectPlacement.Get().UserWantsToPlaceTileConnections)
            {
                RenderRotateObjectsToFollowPathToggle();
            }
            RenderObjectMissChanceSlider();
            RenderOffsetAlongGrowDirectionField();
            if (!ObjectPlacement.Get().UserWantsToPlaceTileConnections)
            {
                _settings.PaddingSettings.View.Render();
            }

            EditorGUILayout.Separator();
            _settings.BorderSettings.View.Render();

            EditorGUILayout.Separator();
            _settings.HeightAdjustmentSettings.View.Render();
        }
        private static void EnsureGuideUsesBeginTileConnectionPrefab()
        {
            ObjectPlacementPathTileConnectionSettings     tileConnectionSettings      = ObjectPlacement.Get().PathObjectPlacement.PathSettings.TileConnectionSettings;
            ObjectPlacementPathTileConnectionTypeSettings beginTileConnectionSettings = tileConnectionSettings.GetSettingsForTileConnectionType(ObjectPlacementPathTileConnectionType.Begin);

            if (CanRefreshGuideToUseBeginTileConnectionPrefab(beginTileConnectionSettings))
            {
                PrefabCategory categoryWhichContainsBeginPrefab = PrefabCategoryDatabase.Get().GetPrefabCategoryWhichContainsPrefab(beginTileConnectionSettings.Prefab);
                if (categoryWhichContainsBeginPrefab == null)
                {
                    return;
                }

                PrefabCategoryDatabase.Get().SetActivePrefabCategory(categoryWhichContainsBeginPrefab);
                categoryWhichContainsBeginPrefab.SetActivePrefab(beginTileConnectionSettings.Prefab);

                ObjectPlacement.Get().DestroyPlacementGuide();
                ObjectPlacementGuide.CreateFromActivePrefabIfNotExists();
            }

            // Note: When using tile connections, we will always use the original prefab scale
            if (ObjectPlacementGuide.ExistsInScene)
            {
                ObjectPlacementGuide.Instance.WorldScale = beginTileConnectionSettings.Prefab.InitialWorldScale;
            }
        }
Exemple #4
0
        public void Snap()
        {
            float offsetFromSurface = SourcePrefab.OffsetFromGridSurface;

            if (ObjectSnapping.Get().SnapSurfaceType != SnapSurfaceType.GridCell)
            {
                offsetFromSurface = SourcePrefab.OffsetFromObjectSurface;
            }

            if (AllShortcutCombos.Instance.PlaceGuideBehindSurfacePlane.IsActive())
            {
                offsetFromSurface *= -1.0f;
            }

            if (AllShortcutCombos.Instance.SnapCenterToCenter.IsActive())
            {
                ObjectSnapping.Get().SnapObjectHierarchyToCenterOfSnapSurface(gameObject, ObjectPlacement.Get().CenterProjectedGuidePivotPoint, ObjectPlacement.Get().ProjectedGuidePivotPoints, offsetFromSurface);
            }
            else
            {
                ObjectSnapping.Get().SnapObjectHierarchy(gameObject, ObjectPlacement.Get().ProjectedGuidePivotPoints, offsetFromSurface);
            }

            PersistentObjectPlacementGuideData.Get().LastUsedWorldPosition = _transform.position;
        }
        protected override void HandleRepaintEvent(Event e)
        {
            if (!CanEventBeHandled(e))
            {
                return;
            }
            base.HandleRepaintEvent(e);

            ObjectPlacement.Get().HandleRepaintEvent(e);
        }
        protected override void HandleKeyboardButtonUpEvent(Event e)
        {
            if (!CanEventBeHandled(e))
            {
                return;
            }
            base.HandleKeyboardButtonUpEvent(e);

            ObjectPlacement.Get().HandleKeyboardButtonUpEvent(e);
        }
        protected override void HandleMouseScrollWheelEvent(Event e)
        {
            if (!CanEventBeHandled(e))
            {
                return;
            }
            base.HandleMouseScrollWheelEvent(e);

            ObjectPlacement.Get().HandleMouseScrollWheelEvent(e);
        }
Exemple #8
0
        public static GameObject GetSurfaceObject()
        {
            ObjectPlacementSettings objectPlacementSettings = ObjectPlacementSettings.Get();

            if (objectPlacementSettings.ObjectPlacementMode == ObjectPlacementMode.DecorPaint)
            {
                return(ObjectPlacement.Get().DecorPaintObjectPlacement.DecorPaintSurfaceObject);
            }
            else
            {
                return(ObjectSnapping.Get().ObjectSnapSurfaceObject);
            }
        }
Exemple #9
0
 private void OnEditorUpdate()
 {
     if (!EditorApplication.isPlaying)
     {
         if (Octave3DWorldBuilder.ActiveInstance == null)
         {
             UndoEx.DestroyObjectImmediate(gameObject);
         }
         else
         if (!Selection.Contains(Octave3DWorldBuilder.ActiveInstance.gameObject))
         {
             ObjectPlacement.Get().DestroyPlacementGuide();
         }
     }
 }
Exemple #10
0
        public override void Render()
        {
            if (ObjectPlacement.Get().IsPlacementLocked)
            {
                string helpMessage = "Object placement is currently locked. Press \'" + AllShortcutCombos.Instance.LockObjectPlacement.ToString() + "\' to toggle the lock state.";
                EditorGUILayout.HelpBox(helpMessage, UnityEditor.MessageType.Warning);
            }

            RenderXZGridRotationField();
            ObjectPlacement.Get().MirrorView.Render();
            Octave3DWorldBuilder.ActiveInstance.PlacementObjectGroupDatabase.View.Render();
            ObjectPlacementSettings.Get().View.Render();
            if (ObjectPlacementSettings.Get().ObjectPlacementMode == ObjectPlacementMode.DecorPaint)
            {
                RenderControlsForDecorPaintPlacementMode();
            }

            _objectPlacementLookAndFeelSettingsView.Render();
        }
Exemple #11
0
        protected override void RenderContent()
        {
            ObjectPlacement.Get().GuidePivotPointsRenderSettings.View.Render();
            ObjectPlacement.Get().ObjectVertexSnapSessionRenderSettings.View.Render();

            ObjectPlacementMode placementMode = ObjectPlacement.Get().ObjectPlacementMode;

            if (placementMode == ObjectPlacementMode.Path)
            {
                _pathObjectPlacementLookAndFeelSettingsView.Render();
            }
            else if (placementMode == ObjectPlacementMode.Block)
            {
                _blockObjectPlacementLookAndFeelSettingsView.Render();
            }
            else if (placementMode == ObjectPlacementMode.DecorPaint)
            {
                _decorPaintLookAndFeelSettingsView.Render();
            }
        }
        private static void EnsureGuideUsesActivePrefab()
        {
            PrefabCategory activePrefabCategory = PrefabCategoryDatabase.Get().ActivePrefabCategory;

            if (activePrefabCategory != null)
            {
                Prefab activePrefab = activePrefabCategory.ActivePrefab;
                if (activePrefab != null)
                {
                    if (!ObjectPlacementGuide.ExistsInScene)
                    {
                        ObjectPlacementGuide.CreateFromActivePrefabIfNotExists();
                    }
                    else if (ObjectPlacementGuide.Instance.SourcePrefab != activePrefab)
                    {
                        ObjectPlacement.Get().DestroyPlacementGuide();
                        ObjectPlacementGuide.CreateFromActivePrefabIfNotExists();
                    }
                }
            }
        }
        public static void EnsureGuideUsesCorrectPrefab()
        {
            if (ObjectPlacement.Get().IsObjectVertexSnapSessionActive)
            {
                ObjectPlacement.Get().DestroyPlacementGuide();
                return;
            }

            if (ObjectPlacement.Get().ObjectPlacementMode == ObjectPlacementMode.VolumeTiles)
            {
                ObjectPlacement.Get().DestroyPlacementGuide();
                return;
            }

            if (ObjectPlacement.Get().UserWantsToPlaceTileConnections)
            {
                EnsureGuideUsesBeginTileConnectionPrefab();
            }
            else
            if (ObjectPlacement.Get().UsingBrushDecorPaintMode)
            {
                ObjectPlacement.Get().DestroyPlacementGuide();
            }
            else
            {
                EnsureGuideUsesActivePrefab();
            }

            // If the placement guide exists in the scene but its source prefab is not available, destroy the guide
            if (ObjectPlacementGuide.ExistsInScene)
            {
                if (!ObjectPlacementGuide.Instance.IsSourcePrefabAvailable)
                {
                    ObjectPlacement.Get().DestroyPlacementGuide();
                }
            }
        }
Exemple #14
0
        private Vector3 CalculateNewPlacementGuidePosition()
        {
            float offsetFromSurface = ObjectPlacementGuide.Instance.SourcePrefab.OffsetFromGridSurface;

            if (SurfaceType != DecorPaintStrokeSurfaceType.GridCell)
            {
                offsetFromSurface = ObjectPlacementGuide.Instance.SourcePrefab.OffsetFromObjectSurface;
            }

            if (AllShortcutCombos.Instance.PlaceGuideBehindSurfacePlane.IsActive())
            {
                offsetFromSurface *= -1.0f;
            }

            if (ObjectPlacement.Get().Settings.DecorPaintObjectPlacementSettings.SingleDecorPaintModeSettings.UseOriginalPivot)
            {
                return(_strokeSurface.MouseCursorPickPoint + StrokeSurfacePlane.normal * offsetFromSurface);
            }
            else
            {
                Vector3 fromActivePivotPointToGuidePosition = ObjectPlacementGuide.Instance.WorldPosition - ObjectPlacement.Get().ActiveGuidePivotPoint;
                return(_strokeSurface.MouseCursorPickPoint + fromActivePivotPointToGuidePosition + StrokeSurfacePlane.normal * offsetFromSurface);
            }
        }
        public void RemoveNullPrefabReferences()
        {
            if (PrefabPreviewTextureCache.Get() == null)
            {
                return;
            }
            if (PrefabCategoryDatabase.Get() == null)
            {
                return;
            }
            if (DecorPaintObjectPlacementBrushDatabase.Get() == null)
            {
                return;
            }
            if (ObjectPlacement.Get() == null)
            {
                return;
            }

            PrefabPreviewTextureCache.Get().DestroyTexturesForNullPrefabEntries();
            PrefabCategoryDatabase.Get().RemoveNullPrefabEntriesInAllCategories();
            DecorPaintObjectPlacementBrushDatabase.Get().RemoveNullPrefabsFromAllBrushElements();
            ObjectPlacement.Get().PathObjectPlacement.PathSettings.TileConnectionSettings.RemoveNullPrefabReferences();
        }
Exemple #16
0
        private void AdjustGuidePivotPoints()
        {
            OrientedBox guideHierarchyWorldOrientedBox = ObjectPlacementGuide.SceneObject.GetHierarchyWorldOrientedBox();

            ObjectPlacement.Get().ProjectedGuidePivotPoints.FromOrientedBoxAndDecorStrokeSurface(guideHierarchyWorldOrientedBox, _strokeSurface);
        }
Exemple #17
0
 public static PathObjectPlacement Get()
 {
     return(ObjectPlacement.Get().PathObjectPlacement);
 }
        private static void SaveObjectPlacementLookAndFeel(XmlTextWriter xmlWriter, Octave3DConfigSaveLoadSettings saveSettings)
        {
            if (saveSettings.ObjectPlacementLookAndFeel)
            {
                ObjectPivotPointsRenderSettings           pivotPointsRenderSettings         = ObjectPlacement.Get().GuidePivotPointsRenderSettings;
                ProjectedBoxFacePivotPointsRenderSettings projectedPivotPointRenderSettings = pivotPointsRenderSettings.ProjectedBoxFacePivotPointsRenderSettings;
                ObjectVertexSnapSessionRenderSettings     vertexSnapRenderSettings          = ObjectPlacement.Get().ObjectVertexSnapSessionRenderSettings;

                xmlWriter.WriteNewLine(1);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.ObjectPlacementLookAndFeelNode);

                // Pivot points
                xmlWriter.WriteNewLine(2);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.GuidePivotPointsLookAndFeelNode);

                xmlWriter.WriteNewLine(3);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.GuidePivotPointsShapeTypeNode);
                xmlWriter.WriteString(pivotPointsRenderSettings.ShapeType.ToString());
                xmlWriter.WriteEndElement();

                xmlWriter.WriteNewLine(3);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.GuidePivotPointsShapeSizeInPixelsNode);
                xmlWriter.WriteString(pivotPointsRenderSettings.PivotPointSizeInPixels.ToString());
                xmlWriter.WriteEndElement();

                xmlWriter.WriteNewLine(3);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.DrawPivotPointProjectionLinesNode);
                xmlWriter.WriteString(projectedPivotPointRenderSettings.RenderProjectionLines.ToString());
                xmlWriter.WriteEndElement();

                xmlWriter.WriteNewLine(3);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.PivotPointProjectionLineColorNode);
                xmlWriter.WriteColorString(projectedPivotPointRenderSettings.ProjectionLineColor);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteNewLine(3);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.DrawPivotPointConnectionLinesNode);
                xmlWriter.WriteString(projectedPivotPointRenderSettings.RenderPivotPointConnectionLines.ToString());
                xmlWriter.WriteEndElement();

                xmlWriter.WriteNewLine(3);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.PivotPointConnectionLineColorNode);
                xmlWriter.WriteColorString(projectedPivotPointRenderSettings.PivotPointConnectionLineColor);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteNewLine(3);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.ActivePivotPointLookAndFeelNode);

                xmlWriter.WriteNewLine(4);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.PivotPointIsVisibleNode);
                xmlWriter.WriteString(projectedPivotPointRenderSettings.ActivePivotPointRenderSettings.IsVisible.ToString());
                xmlWriter.WriteEndElement();

                xmlWriter.WriteNewLine(4);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.PivotPointFillColorNode);
                xmlWriter.WriteColorString(projectedPivotPointRenderSettings.ActivePivotPointRenderSettings.FillColor);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteNewLine(4);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.PivotPointBorderColorNode);
                xmlWriter.WriteColorString(projectedPivotPointRenderSettings.ActivePivotPointRenderSettings.BorderLineColor);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteNewLine(4);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.PivotPointScaleNode);
                xmlWriter.WriteString(projectedPivotPointRenderSettings.ActivePivotPointRenderSettings.Scale.ToString());
                xmlWriter.WriteEndElement();

                xmlWriter.WriteNewLine(3);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteNewLine(3);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.InactivePivotPointLookAndFeelNode);

                xmlWriter.WriteNewLine(4);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.PivotPointIsVisibleNode);
                xmlWriter.WriteString(projectedPivotPointRenderSettings.InactivePivotPointRenderSettings.IsVisible.ToString());
                xmlWriter.WriteEndElement();

                xmlWriter.WriteNewLine(4);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.PivotPointFillColorNode);
                xmlWriter.WriteColorString(projectedPivotPointRenderSettings.InactivePivotPointRenderSettings.FillColor);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteNewLine(4);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.PivotPointBorderColorNode);
                xmlWriter.WriteColorString(projectedPivotPointRenderSettings.InactivePivotPointRenderSettings.BorderLineColor);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteNewLine(4);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.PivotPointScaleNode);
                xmlWriter.WriteString(projectedPivotPointRenderSettings.InactivePivotPointRenderSettings.Scale.ToString());
                xmlWriter.WriteEndElement();

                xmlWriter.WriteNewLine(3);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteNewLine(2);
                xmlWriter.WriteEndElement();

                // Vertex snapping
                xmlWriter.WriteNewLine(2);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.ObjectVertexSnappingLookAndFeelNode);

                xmlWriter.WriteNewLine(3);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.ObjectVertexSnappingDrawSrcVertexNode);
                xmlWriter.WriteString(vertexSnapRenderSettings.RenderSourceVertex.ToString());
                xmlWriter.WriteEndElement();

                xmlWriter.WriteNewLine(3);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.ObjectVertexSnappingSrcVertexFillColorNode);
                xmlWriter.WriteColorString(vertexSnapRenderSettings.SourceVertexFillColor);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteNewLine(3);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.ObjectVertexSnappingSrcVertexBorderColorNode);
                xmlWriter.WriteColorString(vertexSnapRenderSettings.SourceVertexBorderColor);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteNewLine(3);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.ObjectVertexSnappingSrcVertexPixelRadiusNode);
                xmlWriter.WriteString(vertexSnapRenderSettings.SourceVertexRadiusInPixels.ToString());
                xmlWriter.WriteEndElement();

                xmlWriter.WriteNewLine(2);
                xmlWriter.WriteEndElement();

                // Decor paint
                xmlWriter.WriteNewLine(2);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.DecorPaintLookAndFeelNode);

                xmlWriter.WriteNewLine(3);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.DecorPaintBrushCircleLookAndFeelNode);

                xmlWriter.WriteNewLine(4);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.DecorPaintBrushCircleBorderLineColorNode);
                xmlWriter.WriteColorString(ObjectPlacement.Get().DecorPaintObjectPlacement.BrushCircleRenderSettings.BorderLineColor);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteNewLine(3);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteNewLine(2);
                xmlWriter.WriteEndElement();

                // Path
                ObjectPlacementPathRenderSettings pathRenderSettings = ObjectPlacement.Get().PathObjectPlacement.PathRenderSettings;
                xmlWriter.WriteNewLine(2);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.PathLookAndFeelNode);

                xmlWriter.WriteNewLine(3);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.PathBorderLineColorNode);
                xmlWriter.WriteColorString(pathRenderSettings.ManualConstructionRenderSettings.BoxBorderLineColor);
                xmlWriter.WriteEndElement();

                SaveExtensionPlaneLookAndFeel(ObjectPlacement.Get().PathObjectPlacement.PathExtensionPlaneRenderSettings, xmlWriter, 3);

                xmlWriter.WriteNewLine(2);
                xmlWriter.WriteEndElement();

                // Block
                ObjectPlacementBlockRenderSettings blockRenderSettings = ObjectPlacement.Get().BlockObjectPlacement.BlockRenderSettings;
                xmlWriter.WriteNewLine(2);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.BlockLookAndFeelNode);

                xmlWriter.WriteNewLine(3);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.BlockBorderLineColorNode);
                xmlWriter.WriteColorString(blockRenderSettings.ManualConstructionRenderSettings.BoxBorderLineColor);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteNewLine(3);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.BlockTextColorNode);
                xmlWriter.WriteColorString(blockRenderSettings.ManualConstructionRenderSettings.DimensionsLabelRenderSettings.TextColor);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteNewLine(3);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.BlockFontSizeNode);
                xmlWriter.WriteString(blockRenderSettings.ManualConstructionRenderSettings.DimensionsLabelRenderSettings.FontSize.ToString());
                xmlWriter.WriteEndElement();

                xmlWriter.WriteNewLine(3);
                xmlWriter.WriteStartElement(Octave3DConfigXMLInfo.BlockBoldTextNode);
                xmlWriter.WriteString(blockRenderSettings.ManualConstructionRenderSettings.DimensionsLabelRenderSettings.Bold.ToString());
                xmlWriter.WriteEndElement();

                SaveExtensionPlaneLookAndFeel(ObjectPlacement.Get().BlockObjectPlacement.BlockExtensionPlaneRenderSettings, xmlWriter, 3);

                xmlWriter.WriteNewLine(2);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteNewLine(1);
                xmlWriter.WriteEndElement();
            }
        }
 public static PersistentObjectPlacementGuideData Get()
 {
     return(ObjectPlacement.Get().PersistentObjectPlacementGuideData);
 }
Exemple #20
0
        public override void Initialize()
        {
            base.Initialize();
            if (Octave3DWorldBuilder.ActiveInstance == null)
            {
                return;
            }

            ObjectPlacementSettings.Get().ObjectIntersectionSettings.View.IsVisible = false;

            _objectPlacementLookAndFeelSettingsView.IsVisible = false;
            _objectPlacementLookAndFeelSettingsView.BlockObjectPlacementLookAndFeelSettingsView.ToggleVisibilityBeforeRender = true;
            _objectPlacementLookAndFeelSettingsView.BlockObjectPlacementLookAndFeelSettingsView.VisibilityToggleLabel        = "Block";
            _objectPlacementLookAndFeelSettingsView.BlockObjectPlacementLookAndFeelSettingsView.IndentContent = true;
            _objectPlacementLookAndFeelSettingsView.BlockObjectPlacementLookAndFeelSettingsView.IsVisible     = false;

            _objectPlacementLookAndFeelSettingsView.PathObjectPlacementLookAndFeelSettingsView.ToggleVisibilityBeforeRender = true;
            _objectPlacementLookAndFeelSettingsView.PathObjectPlacementLookAndFeelSettingsView.VisibilityToggleLabel        = "Path";
            _objectPlacementLookAndFeelSettingsView.PathObjectPlacementLookAndFeelSettingsView.IndentContent = true;
            _objectPlacementLookAndFeelSettingsView.PathObjectPlacementLookAndFeelSettingsView.IsVisible     = false;

            _objectPlacementLookAndFeelSettingsView.DecorPaintLookAndFeelSettingsView.ToggleVisibilityBeforeRender = true;
            _objectPlacementLookAndFeelSettingsView.DecorPaintLookAndFeelSettingsView.VisibilityToggleLabel        = "Decor Paint";
            _objectPlacementLookAndFeelSettingsView.DecorPaintLookAndFeelSettingsView.IndentContent = true;
            _objectPlacementLookAndFeelSettingsView.DecorPaintLookAndFeelSettingsView.IsVisible     = false;

            ObjectGroupDatabaseView objectGroupDatabaseView = Octave3DWorldBuilder.ActiveInstance.PlacementObjectGroupDatabase.View;

            objectGroupDatabaseView.ToggleVisibilityBeforeRender = true;
            objectGroupDatabaseView.VisibilityToggleLabel        = "Object Groups";
            objectGroupDatabaseView.IsVisible       = false;
            objectGroupDatabaseView.SurroundWithBox = true;

            ObjectPlacementGuideSettings objectPlacementGuideSettings = ObjectPlacementSettings.Get().ObjectPlacementGuideSettings;

            objectPlacementGuideSettings.KeyboardRotationSettings.XAxisRotationSettings.View.VisibilityToggleLabel      = objectPlacementGuideSettings.KeyboardRotationSettings.XAxisRotationSettings.RotationAxis.ToString() + " Axis Settings";
            objectPlacementGuideSettings.KeyboardRotationSettings.YAxisRotationSettings.View.VisibilityToggleLabel      = objectPlacementGuideSettings.KeyboardRotationSettings.YAxisRotationSettings.RotationAxis.ToString() + " Axis Settings";
            objectPlacementGuideSettings.KeyboardRotationSettings.ZAxisRotationSettings.View.VisibilityToggleLabel      = objectPlacementGuideSettings.KeyboardRotationSettings.ZAxisRotationSettings.RotationAxis.ToString() + " Axis Settings";
            objectPlacementGuideSettings.KeyboardRotationSettings.CustomAxisRotationSettings.View.VisibilityToggleLabel = "Placement Surface Normal Settings";

            objectPlacementGuideSettings.KeyboardRotationSettings.XAxisRotationSettings.View.IsVisible      = false;
            objectPlacementGuideSettings.KeyboardRotationSettings.YAxisRotationSettings.View.IsVisible      = false;
            objectPlacementGuideSettings.KeyboardRotationSettings.ZAxisRotationSettings.View.IsVisible      = false;
            objectPlacementGuideSettings.KeyboardRotationSettings.CustomAxisRotationSettings.View.IsVisible = false;

            objectPlacementGuideSettings.MouseRotationSettings.XAxisRotationSettings.View.VisibilityToggleLabel      = objectPlacementGuideSettings.MouseRotationSettings.XAxisRotationSettings.RotationAxis.ToString() + " Axis Settings";
            objectPlacementGuideSettings.MouseRotationSettings.YAxisRotationSettings.View.VisibilityToggleLabel      = objectPlacementGuideSettings.MouseRotationSettings.YAxisRotationSettings.RotationAxis.ToString() + " Axis Settings";
            objectPlacementGuideSettings.MouseRotationSettings.ZAxisRotationSettings.View.VisibilityToggleLabel      = objectPlacementGuideSettings.MouseRotationSettings.ZAxisRotationSettings.RotationAxis.ToString() + " Axis Settings";
            objectPlacementGuideSettings.MouseRotationSettings.CustomAxisRotationSettings.View.VisibilityToggleLabel = "Placement Surface Normal Settings";

            objectPlacementGuideSettings.MouseRotationSettings.XAxisRotationSettings.View.IsVisible      = false;
            objectPlacementGuideSettings.MouseRotationSettings.YAxisRotationSettings.View.IsVisible      = false;
            objectPlacementGuideSettings.MouseRotationSettings.ZAxisRotationSettings.View.IsVisible      = false;
            objectPlacementGuideSettings.MouseRotationSettings.CustomAxisRotationSettings.View.IsVisible = false;

            ObjectPlacement.Get().MirrorView.IsVisible = false;
            InteractableMirrorSettings mirrorSettings = ObjectPlacement.Get().MirrorSettings;

            mirrorSettings.View.IsVisible = false;
            mirrorSettings.View.ToggleVisibilityBeforeRender = true;
            mirrorSettings.View.VisibilityToggleLabel        = "More settings";
            mirrorSettings.View.VisibilityToggleIndent       = 1;
            mirrorSettings.View.IndentContent = true;
            mirrorSettings.KeyboardRotationSettings.XAxisRotationSettings.View.VisibilityToggleLabel      = mirrorSettings.KeyboardRotationSettings.XAxisRotationSettings.RotationAxis.ToString() + " Axis Settings";
            mirrorSettings.KeyboardRotationSettings.YAxisRotationSettings.View.VisibilityToggleLabel      = mirrorSettings.KeyboardRotationSettings.YAxisRotationSettings.RotationAxis.ToString() + " Axis Settings";
            mirrorSettings.KeyboardRotationSettings.ZAxisRotationSettings.View.VisibilityToggleLabel      = mirrorSettings.KeyboardRotationSettings.ZAxisRotationSettings.RotationAxis.ToString() + " Axis Settings";
            mirrorSettings.KeyboardRotationSettings.CustomAxisRotationSettings.View.VisibilityToggleLabel = "Hover Surface Normal Settings";

            mirrorSettings.KeyboardRotationSettings.XAxisRotationSettings.View.IsVisible      = false;
            mirrorSettings.KeyboardRotationSettings.YAxisRotationSettings.View.IsVisible      = false;
            mirrorSettings.KeyboardRotationSettings.ZAxisRotationSettings.View.IsVisible      = false;
            mirrorSettings.KeyboardRotationSettings.CustomAxisRotationSettings.View.IsVisible = false;

            mirrorSettings.MouseRotationSettings.XAxisRotationSettings.View.VisibilityToggleLabel      = mirrorSettings.MouseRotationSettings.XAxisRotationSettings.RotationAxis.ToString() + " Axis Settings";
            mirrorSettings.MouseRotationSettings.YAxisRotationSettings.View.VisibilityToggleLabel      = mirrorSettings.MouseRotationSettings.YAxisRotationSettings.RotationAxis.ToString() + " Axis Settings";
            mirrorSettings.MouseRotationSettings.ZAxisRotationSettings.View.VisibilityToggleLabel      = mirrorSettings.MouseRotationSettings.ZAxisRotationSettings.RotationAxis.ToString() + " Axis Settings";
            mirrorSettings.MouseRotationSettings.CustomAxisRotationSettings.View.VisibilityToggleLabel = "Hover Surface Normal Settings";

            mirrorSettings.MouseRotationSettings.XAxisRotationSettings.View.IsVisible      = false;
            mirrorSettings.MouseRotationSettings.YAxisRotationSettings.View.IsVisible      = false;
            mirrorSettings.MouseRotationSettings.ZAxisRotationSettings.View.IsVisible      = false;
            mirrorSettings.MouseRotationSettings.CustomAxisRotationSettings.View.IsVisible = false;

            InteractableMirrorRenderSettingsView mirrorRenderSettingsView = ObjectPlacement.Get().MirrorRenderSettings.View;

            mirrorRenderSettingsView.VisibilityToggleLabel        = "Look and feel";
            mirrorRenderSettingsView.ToggleVisibilityBeforeRender = true;
            mirrorRenderSettingsView.IndentContent          = true;
            mirrorRenderSettingsView.VisibilityToggleIndent = 1;
            mirrorRenderSettingsView.IsVisible = false;

            ObjectRotationRandomizationSettings     placementGuideRotationRandomizationSettings     = PointAndClickObjectPlacementSettings.Get().PlacementGuideRotationRandomizationSettings;
            ObjectRotationRandomizationSettingsView placementGuideRotationRandomizationSettingsView = placementGuideRotationRandomizationSettings.View;

            placementGuideRotationRandomizationSettingsView.VisibilityToggleIndent = 1;
            placementGuideRotationRandomizationSettingsView.VisibilityToggleLabel  = "Rotation Randomization Settings";
            placementGuideRotationRandomizationSettingsView.IsVisible = false;
            placementGuideRotationRandomizationSettings.XAxisRandomizationSettings.View.VisibilityToggleLabel      = placementGuideRotationRandomizationSettings.XAxisRandomizationSettings.Axis + " Axis Settings";
            placementGuideRotationRandomizationSettings.XAxisRandomizationSettings.View.IsVisible                  = false;
            placementGuideRotationRandomizationSettings.YAxisRandomizationSettings.View.VisibilityToggleLabel      = placementGuideRotationRandomizationSettings.YAxisRandomizationSettings.Axis + " Axis Settings";
            placementGuideRotationRandomizationSettings.YAxisRandomizationSettings.View.IsVisible                  = false;
            placementGuideRotationRandomizationSettings.ZAxisRandomizationSettings.View.VisibilityToggleLabel      = placementGuideRotationRandomizationSettings.ZAxisRandomizationSettings.Axis + " Axis Settings";
            placementGuideRotationRandomizationSettings.ZAxisRandomizationSettings.View.IsVisible                  = false;
            placementGuideRotationRandomizationSettings.CustomAxisRandomizationSettings.View.VisibilityToggleLabel = "Placement Surface Normal Settings";

            placementGuideRotationRandomizationSettings     = DecorPaintObjectPlacementSettings.Get().SingleDecorPaintModeSettings.PlacementGuideRotationRandomizationSettings;
            placementGuideRotationRandomizationSettingsView = placementGuideRotationRandomizationSettings.View;
            placementGuideRotationRandomizationSettingsView.VisibilityToggleIndent = 1;
            placementGuideRotationRandomizationSettingsView.VisibilityToggleLabel  = "Rotation Randomization Settings";
            placementGuideRotationRandomizationSettingsView.IsVisible = false;
            placementGuideRotationRandomizationSettings.XAxisRandomizationSettings.View.VisibilityToggleLabel      = placementGuideRotationRandomizationSettings.XAxisRandomizationSettings.Axis + " Axis Settings";
            placementGuideRotationRandomizationSettings.XAxisRandomizationSettings.View.IsVisible                  = false;
            placementGuideRotationRandomizationSettings.YAxisRandomizationSettings.View.VisibilityToggleLabel      = placementGuideRotationRandomizationSettings.YAxisRandomizationSettings.Axis + " Axis Settings";
            placementGuideRotationRandomizationSettings.YAxisRandomizationSettings.View.IsVisible                  = false;
            placementGuideRotationRandomizationSettings.ZAxisRandomizationSettings.View.VisibilityToggleLabel      = placementGuideRotationRandomizationSettings.ZAxisRandomizationSettings.Axis + " Axis Settings";
            placementGuideRotationRandomizationSettings.ZAxisRandomizationSettings.View.IsVisible                  = false;
            placementGuideRotationRandomizationSettings.CustomAxisRandomizationSettings.View.VisibilityToggleLabel = "Placement Surface Normal Settings";

            ObjectScaleRandomizationSettings     placementGuideScaleRandomizationSettings = PointAndClickObjectPlacementSettings.Get().PlacementGuideScaleRandomizationSettings;
            ObjectScaleRandomizationSettingsView guideScaleRandomizationSettingsView      = placementGuideScaleRandomizationSettings.View;

            guideScaleRandomizationSettingsView.VisibilityToggleIndent = 1;
            guideScaleRandomizationSettingsView.VisibilityToggleLabel  = "Scale Randomization Settings";
            guideScaleRandomizationSettingsView.IsVisible     = false;
            guideScaleRandomizationSettingsView.IndentContent = true;

            placementGuideScaleRandomizationSettings = DecorPaintObjectPlacementSettings.Get().SingleDecorPaintModeSettings.PlacementGuideScaleRandomizationSettings;
            guideScaleRandomizationSettingsView      = placementGuideScaleRandomizationSettings.View;
            guideScaleRandomizationSettingsView.VisibilityToggleIndent = 1;
            guideScaleRandomizationSettingsView.VisibilityToggleLabel  = "Scale Randomization Settings";
            guideScaleRandomizationSettingsView.IsVisible     = false;
            guideScaleRandomizationSettingsView.IndentContent = true;

            AxisAlignmentSettingsView placementGuideSurfaceAlignmentSettingsView = PointAndClickObjectPlacementSettings.Get().PlacementGuideSurfaceAlignmentSettings.View;

            placementGuideSurfaceAlignmentSettingsView.VisibilityToggleIndent = 1;
            placementGuideSurfaceAlignmentSettingsView.VisibilityToggleLabel  = "Surface Alignment Settings";

            placementGuideSurfaceAlignmentSettingsView = PathObjectPlacementSettings.Get().PlacementGuideSurfaceAlignmentSettings.View;
            placementGuideSurfaceAlignmentSettingsView.VisibilityToggleIndent = 1;
            placementGuideSurfaceAlignmentSettingsView.VisibilityToggleLabel  = "Surface Alignment Settings";

            placementGuideSurfaceAlignmentSettingsView = BlockObjectPlacementSettings.Get().PlacementGuideSurfaceAlignmentSettings.View;
            placementGuideSurfaceAlignmentSettingsView.VisibilityToggleIndent = 1;
            placementGuideSurfaceAlignmentSettingsView.VisibilityToggleLabel  = "Surface Alignment Settings";

            placementGuideSurfaceAlignmentSettingsView = DecorPaintObjectPlacementSettings.Get().SingleDecorPaintModeSettings.PlacementGuideSurfaceAlignmentSettings.View;
            placementGuideSurfaceAlignmentSettingsView.VisibilityToggleIndent = 1;
            placementGuideSurfaceAlignmentSettingsView.VisibilityToggleLabel  = "Surface Alignment Settings";

            ObjectRotationRandomizationSettings     blockObjectRotationRandomizationSettings     = ObjectPlacement.Get().BlockObjectPlacement.BlockSettings.ManualConstructionSettings.ObjectRotationRandomizationSettings;
            ObjectRotationRandomizationSettingsView blockObjectRotationRandomizationSettingsView = blockObjectRotationRandomizationSettings.View;

            blockObjectRotationRandomizationSettings.CustomAxisRandomizationSettings.View.ToggleVisibilityBeforeRender = false;
            blockObjectRotationRandomizationSettings.CustomAxisRandomizationSettings.View.IsVisible = false;
            blockObjectRotationRandomizationSettings.CustomAxisRandomizationSettings.Randomize      = false;
            blockObjectRotationRandomizationSettingsView.SurroundWithBox        = false;
            blockObjectRotationRandomizationSettingsView.VisibilityToggleIndent = 1;
            blockObjectRotationRandomizationSettings.XAxisRandomizationSettings.View.VisibilityToggleLabel = blockObjectRotationRandomizationSettings.XAxisRandomizationSettings.Axis + " Axis Settings";
            blockObjectRotationRandomizationSettings.YAxisRandomizationSettings.View.VisibilityToggleLabel = blockObjectRotationRandomizationSettings.YAxisRandomizationSettings.Axis + " Axis Settings";
            blockObjectRotationRandomizationSettings.ZAxisRandomizationSettings.View.VisibilityToggleLabel = blockObjectRotationRandomizationSettings.ZAxisRandomizationSettings.Axis + " Axis Settings";

            XZOrientedEllipseShapeRenderSettingsView xzOrientedElipseShapeRenderSettingsView = DecorPaintObjectPlacement.Get().BrushCircleRenderSettings.View;

            xzOrientedElipseShapeRenderSettingsView.ToggleVisibilityBeforeRender = true;
            xzOrientedElipseShapeRenderSettingsView.IndentContent         = true;
            xzOrientedElipseShapeRenderSettingsView.VisibilityToggleLabel = "Brush Circle";
            xzOrientedElipseShapeRenderSettingsView.IsVisible             = false;

            ObjectPivotPointsRenderSettingsView guidePivotPointsSettingsView = ObjectPlacement.Get().GuidePivotPointsRenderSettings.View;

            guidePivotPointsSettingsView.ToggleVisibilityBeforeRender = true;
            guidePivotPointsSettingsView.IndentContent         = true;
            guidePivotPointsSettingsView.VisibilityToggleLabel = "Guide Pivot Points";
            guidePivotPointsSettingsView.IsVisible             = false;

            ObjectPlacement.Get().ObjectVertexSnapSessionRenderSettings.View.IsVisible = false;

            ProjectedBoxFacePivotPointsRenderSettings     projectedBoxFacePointsRenderSettings     = ObjectPlacement.Get().GuidePivotPointsRenderSettings.ProjectedBoxFacePivotPointsRenderSettings;
            ProjectedBoxFacePivotPointsRenderSettingsView projectedBoxFacePointsRenderSettingsView = projectedBoxFacePointsRenderSettings.View;

            projectedBoxFacePointsRenderSettingsView.ToggleVisibilityBeforeRender = true;
            projectedBoxFacePointsRenderSettingsView.IndentContent         = true;
            projectedBoxFacePointsRenderSettingsView.VisibilityToggleLabel = "Projected Guide Pivot Points";
            projectedBoxFacePointsRenderSettingsView.IsVisible             = false;

            SingleObjectPivotPointRenderSettingsView activePivotPointRenderSettingsView = projectedBoxFacePointsRenderSettings.ActivePivotPointRenderSettings.View;

            activePivotPointRenderSettingsView.ToggleVisibilityBeforeRender = true;
            activePivotPointRenderSettingsView.VisibilityToggleLabel        = "Active Pivot Point";
            activePivotPointRenderSettingsView.IndentContent          = true;
            activePivotPointRenderSettingsView.VisibilityToggleIndent = 1;

            SingleObjectPivotPointRenderSettingsView inactivePivotPointRenderSettingsView = projectedBoxFacePointsRenderSettings.InactivePivotPointRenderSettings.View;

            inactivePivotPointRenderSettingsView.ToggleVisibilityBeforeRender = true;
            inactivePivotPointRenderSettingsView.VisibilityToggleLabel        = "Inactive Pivot Point";
            inactivePivotPointRenderSettingsView.IndentContent          = true;
            inactivePivotPointRenderSettingsView.VisibilityToggleIndent = 1;

            ObjectMaskView objectMaskView = DecorPaintObjectPlacement.Get().DecorPaintMask.View;

            objectMaskView.SurroundWithBox = true;

            ObjectLayerObjectMaskView objectLayerObjectMaskView = DecorPaintObjectPlacement.Get().DecorPaintMask.ObjectLayerObjectMask.View;

            objectLayerObjectMaskView.IsVisible = false;
            objectLayerObjectMaskView.ToggleVisibilityBeforeRender = true;
            objectLayerObjectMaskView.VisibilityToggleIndent       = 1;
            objectLayerObjectMaskView.VisibilityToggleLabel        = "Object Layer Decor Paint Mask";

            ObjectCollectionMaskView objectCollectionMaskView = DecorPaintObjectPlacement.Get().DecorPaintMask.ObjectCollectionMask.View;

            objectCollectionMaskView.IsVisible = false;
            objectCollectionMaskView.ToggleVisibilityBeforeRender = true;
            objectCollectionMaskView.VisibilityToggleIndent       = 1;
            objectCollectionMaskView.VisibilityToggleLabel        = "Object Decor Paint Mask";

            LabelRenderSettings labelRenderSettings = ObjectPlacement.Get().BlockObjectPlacement.BlockRenderSettings.ManualConstructionRenderSettings.DimensionsLabelRenderSettings;

            labelRenderSettings.Bold      = true;
            labelRenderSettings.FontSize  = 15;
            labelRenderSettings.TextColor = Color.white;
            LabelRenderSettingsView labelRenderSettingsView = labelRenderSettings.View;

            labelRenderSettingsView.ToggleVisibilityBeforeRender = true;
            labelRenderSettingsView.VisibilityToggleLabel        = "Dimensions Label";
            labelRenderSettingsView.IndentContent = true;
        }
Exemple #21
0
 public override void RenderHandles()
 {
     Handles.BeginGUI();
     ObjectPlacement.Get().RenderHandles();
     Handles.EndGUI();
 }
Exemple #22
0
 public static ObjectPlacementSettings Get()
 {
     return(ObjectPlacement.Get().Settings);
 }
Exemple #23
0
 public override void RenderGizmos()
 {
     ObjectPlacement.Get().RenderGizmos();
 }
 public static DecorPaintObjectPlacement Get()
 {
     return(ObjectPlacement.Get().DecorPaintObjectPlacement);
 }
Exemple #25
0
 public static BlockObjectPlacement Get()
 {
     return(ObjectPlacement.Get().BlockObjectPlacement);
 }
 public static PointAndClickObjectPlacement Get()
 {
     return(ObjectPlacement.Get().PointAndClickObjectPlacement);
 }