private void Register()
        {
            ILocalization lc = IOC.Resolve <ILocalization>();

            lc.LoadStringResources("RTBuilder.StringResources");

            IWindowManager wm         = IOC.Resolve <IWindowManager>();
            IRTEAppearance appearance = IOC.Resolve <IRTEAppearance>();

            if (m_proBuilderWindow != null)
            {
                RegisterWindow(wm, "ProBuilder", lc.GetString("ID_RTBuilder_WM_Header_Builder", "Builder"),
                               Resources.Load <Sprite>("hammer-24"), m_proBuilderWindow, false);

                appearance.RegisterPrefab(m_proBuilderWindow);
            }

            foreach (GameObject prefab in m_prefabs)
            {
                if (prefab != null)
                {
                    appearance.RegisterPrefab(prefab);
                }
            }
        }
        protected override void OnEditorExist()
        {
            base.OnEditorExist();

            m_editor = IOC.Resolve <IRTE>();

            m_compiler = new Complier();
            IOC.RegisterFallback(m_compiler);

            if (m_scriptManager == null)
            {
                m_scriptManager = gameObject.AddComponent <RuntimeScriptsManager>();
            }

            Subscribe();

            IRTEAppearance   appearance = IOC.Resolve <IRTEAppearance>();
            List <AssetIcon> icons      = appearance.AssetIcons.ToList();

            icons.Add(new AssetIcon {
                AssetTypeName = typeof(RuntimeTextAsset).FullName + Ext, Icon = Resources.Load <Sprite>("RTE_Script")
            });
            appearance.AssetIcons = icons.ToArray();
            Register();
        }
        private void Register()
        {
            ILocalization lc = IOC.Resolve <ILocalization>();

            lc.LoadStringResources("RTTerrain.StringResources");

            IWindowManager wm = IOC.Resolve <IWindowManager>();

            if (m_terrainView != null)
            {
                RegisterWindow(wm, "TerrainEditor", lc.GetString("ID_RTTerrain_WM_Header_TerrainEditor", "Terrain Editor"),
                               Resources.Load <Sprite>("icons8-earth-element-24"), m_terrainView, false);

                IRTEAppearance appearance = IOC.Resolve <IRTEAppearance>();
                appearance.ApplyColors(m_terrainView);
            }

            if (m_terrainComponentEditor != null)
            {
                IEditorsMap editorsMap = IOC.Resolve <IEditorsMap>();
                editorsMap.AddMapping(typeof(Terrain), m_terrainComponentEditor.gameObject, true, false);

                IRTEAppearance appearance = IOC.Resolve <IRTEAppearance>();
                appearance.ApplyColors(m_terrainComponentEditor.gameObject);
            }
        }
        protected override void OnEnable()
        {
            base.OnEnable();

            m_parentDockPanel = GetComponentInParent <DockPanel>();

            SetComponentsActive(true);

            IRuntimeSceneComponent scene = IOCContainer.Resolve <IRuntimeSceneComponent>();

            scene.CameraPosition     = new Vector3(0.5f, 0.5f, -1) * ManualUVRenderer.Scale;
            scene.Pivot              = new Vector3(0.5f, 0.5f, 0) * ManualUVRenderer.Scale;
            scene.IsSelectionVisible = false;
            scene.IsOrthographic     = true;
            scene.CanRotate          = false;
            scene.CanFreeMove        = false;
            scene.CanSelect          = false;
            scene.CanSelectAll       = false;
            // scene.ChangeOrthographicSizeOnly = true;

            if (scene.Selection != m_uvEditor.PivotPointSelection)
            {
                scene.Selection = m_uvEditor.PivotPointSelection;
                m_uvEditor.PivotPointSelection.activeObject = null;
            }

            IRTEAppearance appearance = IOC.Resolve <IRTEAppearance>();

            Camera.backgroundColor = appearance.Colors.Secondary;
            Camera.cullingMask     = 0;
            Camera.clearFlags      = CameraClearFlags.SolidColor;

            EnableRaycasts();
            Editor.StartCoroutine(CoSetAlpha());
        }
        public void EndEditUIScale()
        {
            float scale = 1.0f;

            if (UIAutoScale)
            {
                if (!Application.isEditor)
                {
                    scale = Mathf.Clamp((float)System.Math.Round(Display.main.systemWidth / 1920.0f, 1), 0.5f, 4);
                }
            }
            else
            {
                scale = UIScale;
            }

            IRTEAppearance appearance = IOC.Resolve <IRTEAppearance>();

            appearance.UIScale = scale;

            IRuntimeHandlesComponent handles = IOC.Resolve <IRuntimeHandlesComponent>();

            handles.HandleScale     = scale;
            handles.SceneGizmoScale = scale;
        }
Beispiel #6
0
        private void UpdateImage()
        {
            if (m_project == null)
            {
                m_project = IOC.Resolve <IProject>();
                if (m_project == null)
                {
                    Debug.LogError("Project is null");
                }
            }

            IRTEAppearance appearance = IOC.Resolve <IRTEAppearance>();

            if (m_texture != null)
            {
                Destroy(m_texture);
                m_texture = null;
            }
            if (m_projectItem == null)
            {
                m_imgPreview.sprite = null;
            }
            else if (m_projectItem is AssetItem)
            {
                AssetItem assetItem     = (AssetItem)m_projectItem;
                Type      assetItemType = m_project.ToType(assetItem);
                if (assetItem.Preview == null || assetItem.Preview.PreviewData == null || assetItemType == null)
                {
                    //#warning None displayed for scene objects. And this is wrong
                    m_imgPreview.sprite = appearance.GetAssetIcon("None");
                }
                else if (assetItem.Preview.PreviewData.Length == 0)
                {
                    m_imgPreview.sprite = appearance.GetAssetIcon(assetItemType.FullName + assetItem.Ext);
                    if (m_imgPreview.sprite == null)
                    {
                        m_imgPreview.sprite = appearance.GetAssetIcon(assetItemType.FullName);
                    }

                    if (m_imgPreview.sprite == null)
                    {
                        m_imgPreview.sprite = appearance.GetAssetIcon("Default");
                    }
                }
                else
                {
                    m_texture = new Texture2D(1, 1, TextureFormat.ARGB32, true);
                    m_texture.LoadImage(assetItem.Preview.PreviewData);
                    m_imgPreview.sprite = Sprite.Create(m_texture, new Rect(0, 0, m_texture.width, m_texture.height), new Vector2(0.5f, 0.5f));
                }
            }
            else if (m_projectItem.IsFolder)
            {
                m_imgPreview.sprite = appearance.GetAssetIcon("Folder");
            }
            else
            {
                throw new NotSupportedException();
            }
        }
        protected override void OnEditorExist()
        {
            base.OnEditorExist();

            m_editor = IOC.Resolve <IRTE>();

            m_compiler = new Complier();
            IOC.RegisterFallback(m_compiler);

            if (m_scriptManager == null)
            {
                m_scriptManager = gameObject.AddComponent <RuntimeScriptsManager>();
                m_scriptManager.AddReference(typeof(IRTE).Assembly.Location);
                m_scriptManager.AddReference(typeof(ILocalization).Assembly.Location);
                m_scriptManager.AddReference(typeof(IRuntimeEditor).Assembly.Location);
                m_scriptManager.AddReference(typeof(BHRoot).Assembly.Location);
                m_scriptManager.AddReference(typeof(VirtualizingTreeView).Assembly.Location);
                m_scriptManager.AddReference(typeof(RTSLVersion).Assembly.Location);
                m_scriptManager.AddReference(typeof(TextMeshProUGUI).Assembly.Location);
            }

            Subscribe();

            IRTEAppearance   appearance = IOC.Resolve <IRTEAppearance>();
            List <AssetIcon> icons      = appearance.AssetIcons.ToList();

            icons.Add(new AssetIcon {
                AssetTypeName = typeof(RuntimeTextAsset).FullName + Ext, Icon = Resources.Load <Sprite>("RTE_Script")
            });
            appearance.AssetIcons = icons.ToArray();
            Register();
        }
        protected override void OnEditorExist()
        {
            base.OnEditorExist();
            if (RenderPipelineInfo.Type != RPType.HDRP || RenderPipelineInfo.ForceUseRenderTextures)
            {
                return;
            }

            m_cameraUtility  = GetComponent <IRenderPipelineCameraUtility>();
            m_outlineManager = gameObject.AddComponent <OutlineManagerHDRP>();
            m_outlineManager.SelectionMaterial = m_selectionMaterial;

            IRTE           rte        = IOC.Resolve <IRTE>();
            IRTEAppearance appearance = IOC.Resolve <IRTEAppearance>();

            if (appearance != null)
            {
                Canvas foregroundCanvas = appearance.UIForegroundScaler.GetComponent <Canvas>();
                Camera foregroundCamera = foregroundCanvas.worldCamera;
                if (foregroundCamera != null)
                {
                    if (m_cameraUtility != null)
                    {
                        m_cameraUtility.EnablePostProcessing(foregroundCamera, false);
                        m_cameraUtility.SetBackgroundColor(foregroundCamera, new Color(0, 0, 0, 0));
                    }

                    GameObject foregroundLayer = new GameObject("ForegroundLayer");
                    foregroundLayer.transform.SetParent(rte.Root, false);
                    foregroundCanvas            = foregroundLayer.AddComponent <Canvas>();
                    foregroundCanvas.renderMode = RenderMode.ScreenSpaceOverlay;

                    foregroundCamera.gameObject.SetActive(false);
                    m_foregroundOutput = new GameObject("Output");
                    m_foregroundOutput.transform.SetParent(foregroundCanvas.transform, false);
                    m_foregroundOutput.AddComponent <RectTransform>().Stretch();

                    RenderTextureCamera renderTextureCamera = foregroundCamera.gameObject.AddComponent <RenderTextureCamera>();
                    renderTextureCamera.OutputRoot      = foregroundCanvas.gameObject.GetComponent <RectTransform>();
                    renderTextureCamera.Output          = m_foregroundOutput.AddComponent <RawImage>();
                    renderTextureCamera.OverlayMaterial = new Material(Shader.Find("Battlehub/HDRP/RTEditor/UIForeground"));
                    foregroundCamera.gameObject.SetActive(true);

                    foregroundCanvas.sortingOrder = -1;
                }

                Canvas backgroundCanvas = IOC.Resolve <IRTEAppearance>().UIBackgroundScaler.GetComponent <Canvas>();
                if (backgroundCanvas != null)
                {
                    Camera backgroundCamera = backgroundCanvas.worldCamera;
                    if (m_cameraUtility != null)
                    {
                        m_cameraUtility.EnablePostProcessing(backgroundCamera, false);
                        m_cameraUtility.SetBackgroundColor(backgroundCamera, new Color(0, 0, 0, 0));
                    }
                }
            }
        }
Beispiel #9
0
        protected override void OnEditorExist()
        {
            RTEColors colors = new RTEColors();

            colors.Primary = Color.red;

            IRTEAppearance appearance = IOC.Resolve <IRTEAppearance>();

            appearance.Colors = colors;
        }
Beispiel #10
0
        protected virtual void AwakeOverride()
        {
            m_rte = RTE;
            IOC.Register <IRTE>(m_rte);
            IOC.Register(m_rte);


            m_resourcePreview = ResourcePreview;
            m_rteAppearance   = RTEAppearance;
        }
Beispiel #11
0
        protected override void OnEditorExist()
        {
            IRTEAppearance appearance = IOC.Resolve <IRTEAppearance>();

            appearance.UIScale = Scale;

            IRuntimeHandlesComponent handles = IOC.Resolve <IRuntimeHandlesComponent>();

            handles.HandleScale     = Scale;
            handles.SceneGizmoScale = Scale;
        }
Beispiel #12
0
        protected virtual void AwakeOverride()
        {
            m_rte = RTE;
            IOC.Register <IRTE>(m_rte);
            IOC.Register(m_rte);

            m_resourcePreview         = ResourcePreview;
            m_rteAppearance           = RTEAppearance;
            m_windowManager           = WindowManager;
            m_console                 = RuntimeConsole;
            m_gameObjectCmd           = GameObjectCmd;
            m_editCmd                 = EditCmd;
            m_contextMenu             = ContextMenu;
            m_runtimeHandlesComponent = RuntimeHandlesComponent;
            m_editorsMap              = EditorsMap;
        }
Beispiel #13
0
        private void OnDestroy()
        {
            if (m_instance == this)
            {
                m_instance = null;
            }

            OnDestroyOverride();

            IOC.Unregister <IRTE>(m_rte);
            IOC.Unregister(m_rte);

            m_resourcePreview = null;
            m_rteAppearance   = null;
            m_rte             = null;
        }
        private void Register()
        {
            ILocalization lc = IOC.Resolve <ILocalization>();

            lc.LoadStringResources("RTDeformer.StringResources");

            IWindowManager wm = IOC.Resolve <IWindowManager>();

            if (m_meshDeformerWindow != null)
            {
                RegisterWindow(wm, "MeshDeformer", lc.GetString("ID_RTDeformer_WM_Header_Deformer", "Deformer"),
                               Resources.Load <Sprite>("meshdeformer-24"), m_meshDeformerWindow, false);

                IRTEAppearance appearance = IOC.Resolve <IRTEAppearance>();
                appearance.ApplyColors(m_meshDeformerWindow);
            }
        }
Beispiel #15
0
        private void OnDestroy()
        {
            if (m_instance == this)
            {
                m_instance = null;
            }

            OnDestroyOverride();

            IOC.Unregister <IRTE>(m_rte);
            IOC.Unregister(m_rte);

            m_resourcePreview         = null;
            m_rteAppearance           = null;
            m_windowManager           = null;
            m_console                 = null;
            m_gameObjectCmd           = null;
            m_editCmd                 = null;
            m_contextMenu             = null;
            m_runtimeHandlesComponent = null;
            m_editorsMap              = null;
        }
        private void Register()
        {
            ILocalization lc = IOC.Resolve <ILocalization>();

            lc.LoadStringResources("RTScripting.StringResources");

            IWindowManager wm = IOC.Resolve <IWindowManager>();

            if (m_editRuntimeScriptDialog != null)
            {
                RegisterWindow(wm, "EditRuntimeScript", lc.GetString("ID_RTScripting_WM_Header_EditScript", "Edit Script"),
                               Resources.Load <Sprite>("RTE_Script"), m_editRuntimeScriptDialog, true);

                IRTEAppearance appearance = IOC.Resolve <IRTEAppearance>();
                appearance.ApplyColors(m_editRuntimeScriptDialog);
            }

            if (m_runtimeScriptEditor != null)
            {
                IEditorsMap map = IOC.Resolve <IEditorsMap>();
                map.RegisterEditor(m_runtimeScriptEditor);
            }
        }
        private void ApplySettings()
        {
            ApplyGridOpacity(GridOpacity);

            foreach (IRuntimeSceneComponent sceneComponent in m_sceneComponents.Values)
            {
                ApplySettings(sceneComponent);
            }

            GraphicsQuality = GraphicsQuality;

            Light[] lights = FindObjectsOfType <Light>();
            foreach (Light light in lights)
            {
                if (light.type != LightType.Directional)
                {
                    continue;
                }

                light.color          = LightColor;
                light.intensity      = LightIntensity;
                light.shadows        = ShadowType;
                light.shadowStrength = ShadowStrength;
            }

            EndEditUIScale();

            int themeIndex = SelectedThemeIndex;

            if (Themes != null && 0 <= themeIndex && themeIndex < Themes.Length)
            {
                IRTEAppearance appearance = IOC.Resolve <IRTEAppearance>();
                appearance.Colors         = Themes[themeIndex].Colors;
                appearance.CursorSettings = Themes[themeIndex].Cursors;
            }
        }