void OnInspectorUpdate()
    {
        #region Load Scripts
        if (!directory)
        {
            directory = ScriptableObject.CreateInstance<CheckDirectories>();
        }
        if (!layersandtags)
        {
            layersandtags = ScriptableObject.CreateInstance<LayerAndTags>();
        }
        if (!tileTextures)
        {
            tileTextures = ScriptableObject.CreateInstance<SetTileTextures>();
        }
        if (directory.fileCheckClear == 0)
        {
            if(showConsole)
            {
                Debug.Log("Initializing Directory Check...");
            }
            directory.BeginDirectoryCheck();
            setupStage = directory.fileCheckClear;

            #region Clear Up Old Window
            // Occurs on change of scene or restart
            tileSelected = false;
            #endregion
        }
        if (setupStage == 2)
        {
            if (layersandtags.LayerCheckClear == 0)
            {
                if (showConsole)
                {
                    Debug.Log("Directory Check Complete \nInitializing Layer Creator...");
                }
                layersandtags.createTagsandLayers();
            }
            if (layersandtags.LayerCheckClear == 1)
            {
                if(showConsole)
                {
                    Debug.Log("Layer and Tag Creator Complete \nInitializing...");
                }
                tileTextures.LoadListsAndGUIFirst();
                currentTabList = tileTextures.currentTileList;
                if (showConsole)
                {
                    Debug.Log("All Tiles have been formatted and listed. currentObjectList Set.\nWatching Tile Positions...");
                }
                setupStage = 3;
            }
            else if (layersandtags.LayerCheckClear == -1)
            {
                Debug.LogError("Layer Creator Failed. Closing Window.");
                this.Close();
            }
        }
        if (setupStage == 3 && tileTextures != null)
        {
            #region Monitor Window Size & Tab
            windowRect = new Rect(this.position.x, this.position.y, this.position.width, this.position.height);
            int lastTileInRow = tileTextures.maxTileColumn;
            //Change Border Box BG to wrap around tile
            if (tileTextures.tileBoxX[lastTileInRow] == 0)
            {
                boxMaxX = tileTextures.tileBoxX[lastTileInRow - 1] + 80;
            }
            else
            {
                boxMaxX = tileTextures.tileBoxX[lastTileInRow] + 80;
            }
            //If item list is less than windows minimum column length
            if (currentTabList.Length <= lastTileInRow)
            {
                boxMaxX = tileTextures.tileBoxX[currentTabList.Length] + 10;
            }
            //Detect Tab change
            if (currentTabOpen != tileTextures.currentTab)
            {
                tileTextures.LoadListsAndGUIFirst();
                currentTabList = tileTextures.currentTileList; // Load Current Open Tabs Textures
            }
            //Detect window resize
            if (windowRect != tileTextures.windowRect)
            {
                tileTextures.GetTilePositions();
            }
            #endregion
        }
        if (setupStage == -1)
        {
            Debug.LogError("Directory Check Failed. Closing Window.");
            this.Close();
        }
        #endregion

        #region Load Gizmos on Tile Select
        if (tileSelected && setupStage == 3)
        {
            if (gizmoCursor == null)
            {
                gizmoCursor = (GameObject) Instantiate(Resources.Load(directory.resourceFile[4]));
                gizmoCursor.name = "gizmoCursor";
                gizmoCursor.hideFlags = HideFlags.HideInHierarchy;
            }

            if (gizmoTile == null)
            {
                gizmoTile = (GameObject)Instantiate(currentTabList[tileSelectedID]);
                gizmoTile.transform.name = "gizmoTile";
                SpriteRenderer[] tempTile;
                tempTile = gizmoTile.GetComponentsInChildren<SpriteRenderer>();
                foreach (SpriteRenderer sRen in tempTile)
                {
                    sRen.GetComponent<SpriteRenderer>().color = new Color(1f, 1f, 1f, 0.4f); //40% transparent
                }
                gizmoTile.hideFlags = HideFlags.HideInHierarchy;
            }
        }
        else
        {
            DestroyImmediate(GameObject.Find("gizmoCursor"));
            DestroyImmediate(GameObject.Find("gizmoTile"));
        }
        #endregion
    }
Exemplo n.º 2
0
    void OnInspectorUpdate()
    {
        #region Load Scripts
        if (!directory)
        {
            directory = ScriptableObject.CreateInstance <CheckDirectories>();
        }
        if (!layersandtags)
        {
            layersandtags = ScriptableObject.CreateInstance <LayerAndTags>();
        }
        if (!tileTextures)
        {
            tileTextures = ScriptableObject.CreateInstance <SetTileTextures>();
        }
        if (directory.fileCheckClear == 0)
        {
            if (showConsole)
            {
                Debug.Log("Initializing Directory Check...");
            }
            directory.BeginDirectoryCheck();
            setupStage = directory.fileCheckClear;

            #region Clear Up Old Window
            // Occurs on change of scene or restart
            tileSelected = false;
            #endregion
        }
        if (setupStage == 2)
        {
            if (layersandtags.LayerCheckClear == 0)
            {
                if (showConsole)
                {
                    Debug.Log("Directory Check Complete \nInitializing Layer Creator...");
                }
                layersandtags.createTagsandLayers();
            }
            if (layersandtags.LayerCheckClear == 1)
            {
                if (showConsole)
                {
                    Debug.Log("Layer and Tag Creator Complete \nInitializing...");
                }
                tileTextures.LoadListsAndGUIFirst();
                currentTabList = tileTextures.currentTileList;
                if (showConsole)
                {
                    Debug.Log("All Tiles have been formatted and listed. currentObjectList Set.\nWatching Tile Positions...");
                }
                setupStage = 3;
            }
            else if (layersandtags.LayerCheckClear == -1)
            {
                Debug.LogError("Layer Creator Failed. Closing Window.");
                this.Close();
            }
        }
        if (setupStage == 3 && tileTextures != null)
        {
            #region Monitor Window Size & Tab
            windowRect = new Rect(this.position.x, this.position.y, this.position.width, this.position.height);
            int lastTileInRow = tileTextures.maxTileColumn;
            //Change Border Box BG to wrap around tile
            if (tileTextures.tileBoxX[lastTileInRow] == 0)
            {
                boxMaxX = tileTextures.tileBoxX[lastTileInRow - 1] + 80;
            }
            else
            {
                boxMaxX = tileTextures.tileBoxX[lastTileInRow] + 80;
            }
            //If item list is less than windows minimum column length
            if (currentTabList.Length <= lastTileInRow)
            {
                boxMaxX = tileTextures.tileBoxX[currentTabList.Length] + 10;
            }
            //Detect Tab change
            if (currentTabOpen != tileTextures.currentTab)
            {
                tileTextures.LoadListsAndGUIFirst();
                currentTabList = tileTextures.currentTileList; // Load Current Open Tabs Textures
            }
            //Detect window resize
            if (windowRect != tileTextures.windowRect)
            {
                tileTextures.GetTilePositions();
            }
            #endregion
        }
        if (setupStage == -1)
        {
            Debug.LogError("Directory Check Failed. Closing Window.");
            this.Close();
        }
        #endregion

        #region Load Gizmos on Tile Select
        if (tileSelected && setupStage == 3)
        {
            if (gizmoCursor == null)
            {
                gizmoCursor           = (GameObject)Instantiate(Resources.Load(directory.resourceFile[4]));
                gizmoCursor.name      = "gizmoCursor";
                gizmoCursor.hideFlags = HideFlags.HideInHierarchy;
            }

            if (gizmoTile == null)
            {
                gizmoTile = (GameObject)Instantiate(currentTabList[tileSelectedID]);
                gizmoTile.transform.name = "gizmoTile";
                SpriteRenderer[] tempTile;
                tempTile = gizmoTile.GetComponentsInChildren <SpriteRenderer>();
                foreach (SpriteRenderer sRen in tempTile)
                {
                    sRen.GetComponent <SpriteRenderer>().color = new Color(1f, 1f, 1f, 0.4f); //40% transparent
                }
                gizmoTile.hideFlags = HideFlags.HideInHierarchy;
            }
        }
        else
        {
            DestroyImmediate(GameObject.Find("gizmoCursor"));
            DestroyImmediate(GameObject.Find("gizmoTile"));
        }
        #endregion
    }