예제 #1
0
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();

        SquareGridCreator creator = (SquareGridCreator)target;

        if (GUILayout.Button("Create Grid"))
        {
            CreateGrid();
        }

        if (GUILayout.Button("Clear Grid"))
        {
            ClearGrid();
        }

        if (GUILayout.Button("Refresh Grid"))
        {
            RefreshGrid();
        }

        GUILayout.Label(creator.GridArray == null ? "Grid Needs Refreshing" : "Grid Reference is Fine");
        if (creator.GridArray == null)
        {
            RefreshGrid();
        }

        if (GUILayout.Button("Rename Grid"))
        {
            RenameChildren();
        }
    }
예제 #2
0
    // Use this for initialization
    void Start()
    {
        //Grid Creator, Clear, Create, Rename
        GameObject[] rootObjects   = SceneManager.GetActiveScene().GetRootGameObjects(); //loadedScene.GetRootGameObjects();
        GameObject   SquareGridRef = null;

        for (int i = 0; i < rootObjects.Length; i++)
        {
            if (rootObjects[i].name == "SquareGrid")
            {
                SquareGridRef = rootObjects[i];
                break;
            }
        }

        SquareGridCreator creator = SquareGridRef.GetComponent <SquareGridCreator>();

        creator.ClearGrid();
        creator.CreateGrid();
        creator.RenameGrid();

        //Get Level Editor, Get Level of Index
        LevelEditor tempEditor = SquareGridRef.GetComponent <LevelEditor>();

        Debug.Log("Load Level Index: " + levelIndex);
        tempEditor.getLevel(levelIndex);
    }
예제 #3
0
    void GameLevelLoaded(Scene loadedScene, LoadSceneMode loadMode)
    {
        if (loadedScene.buildIndex == 1)
        {
            //Load Level if we have Reference to Scene

            //Grid Creator, Clear, Create, Rename
            GameObject[] rootObjects   = loadedScene.GetRootGameObjects();
            GameObject   SquareGridRef = null;
            for (int i = 0; i < rootObjects.Length; i++)
            {
                if (rootObjects[i].name == "SquareGrid")
                {
                    SquareGridRef = rootObjects[i];
                    break;
                }
            }

            SquareGridCreator creator = SquareGridRef.GetComponent <SquareGridCreator>();

            creator.ClearGrid();
            creator.CreateGrid();
            creator.RenameGrid();

            //Get Level Editor, Get Level of Index
            LevelEditor tempEditor = SquareGridRef.GetComponent <LevelEditor>();
            Debug.Log("Load Level Index: " + levelIndex);
            tempEditor.getLevel(levelIndex);

            SceneManager.sceneLoaded -= GameLevelLoaded;

            creator.LevelComplete += LevelCompleted;
        }
    }
예제 #4
0
    public override void AssignNewTile(Vector2Int arrayPosition, SquareGridCreator creator, Color tileColour)
    {
        base.AssignNewTile(arrayPosition, creator, Color.magenta);

        tileType = TileTypes.Asteroid;

        GameObject refPrefab = (GameObject)Resources.Load("AsteroidPrefab");

        Instantiate(refPrefab, transform);
    }
예제 #5
0
    public override void AssignNewTile(Vector2Int arrayPosition, SquareGridCreator creator, Color tileColour)
    {
        base.AssignNewTile(arrayPosition, creator, new Color(1.0f, 0.5f, 0f));

        tileType = TileTypes.CombineSatellite;

        GameObject   referenceObj = (GameObject)Resources.Load("Light");
        GameObject   tempLine     = Instantiate(referenceObj, transform);
        LineRenderer tempRender   = referenceObj.GetComponent <LineRenderer>();

        lineRenderer = tempLine.GetComponent <LineRenderer>();
    }
예제 #6
0
    public override void AssignNewTile(Vector2Int arrayPosition, SquareGridCreator creator, Color tileColour)
    {
        base.AssignNewTile(arrayPosition, creator, Color.red);

        tileType = TileTypes.LightOutput;

        GameObject   referenceObj = (GameObject)Resources.Load("Light");
        GameObject   tempLine     = Instantiate(referenceObj, transform);
        LineRenderer tempRender   = referenceObj.GetComponent <LineRenderer>();

        GameObject refPrefab = (GameObject)Resources.Load("OutputPrefab");

        outputModel = Instantiate(refPrefab, transform);

        lineRenderer = tempLine.GetComponent <LineRenderer>();
    }
예제 #7
0
    private void Start()
    {
        if (instance == null || instance == this)
        {
            instance = this;
        }
        else
        {
            Destroy(this);
            return;
        }

        if (GridArray == null)
        {
            GridArray = new BaseTile[Width][];

            for (int i = 0; i < Width; i++)
            {
                GridArray[i] = new BaseTile[Height];
            }

            for (int i = 0; i < transform.childCount; i++)
            {
                GameObject childRef = transform.GetChild(i).gameObject;
                BaseTile   tempTile = childRef.GetComponent <BaseTile>();

                if (tempTile != null)
                {
                    GridArray[tempTile.arrayPosition.x][tempTile.arrayPosition.y] = tempTile;
                }
                else
                {
                    Debug.LogError("NULL Grid found at child: " + i, childRef);

                    #if UNITY_EDITOR
                    UnityEditor.EditorApplication.isPlaying = false;
                    #else
                    //TODO, BACK TO MAIN MENU- Reload Scene
                    Application.Quit();
                    #endif
                }
            }
        }

        GetComponent <LevelEditor>().levelLoaded += FindTargets;
    }
예제 #8
0
    public override void AssignNewTile(Vector2Int arrayPosition, SquareGridCreator creator, Color tileColour)
    {
        base.AssignNewTile(arrayPosition, creator, new Color(1f, 1f, 1f));

        tileType = TileTypes.SatelliteSplitter;

        //Instanciate two Light Emiiters
        lineRenderers = new LineRenderer[2];

        for (int i = 0; i < lineRenderers.Length; i++)
        {
            GameObject   referenceObj = (GameObject)Resources.Load("Light");
            GameObject   tempLine     = Instantiate(referenceObj, transform);
            LineRenderer tempRender   = referenceObj.GetComponent <LineRenderer>();

            lineRenderers[i] = tempLine.GetComponent <LineRenderer>();
        }
    }
예제 #9
0
파일: BaseTile.cs 프로젝트: DDewy/GGJ_2018
    public virtual void AssignNewTile(Vector2Int arrayPosition, SquareGridCreator creator, Color tileColour)
    {
        this.arrayPosition = arrayPosition;
        this.creator       = creator;

        creator.SetTile(arrayPosition, this);

        //Assign Tile Colour
        SpriteRenderer sprite = GetComponent <SpriteRenderer>();

        if (sprite != null)
        {
            sprite.color = tileColour;
        }

        //Assign TileType

        //Any Extra stuff such as additional models
    }
예제 #10
0
 public override void AssignNewTile(Vector2Int arrayPosition, SquareGridCreator creator, Color tileColor)
 {
     base.AssignNewTile(arrayPosition, creator, tileColor);
 }
예제 #11
0
    void RenameChildren()
    {
        SquareGridCreator creator = (SquareGridCreator)target;

        creator.RenameGrid();
    }
예제 #12
0
    void RefreshGrid()
    {
        SquareGridCreator creator = (SquareGridCreator)target;

        creator.RefreshGrid();
    }
예제 #13
0
    void ClearGrid()
    {
        SquareGridCreator creator = (SquareGridCreator)target;

        creator.ClearGrid();
    }
예제 #14
0
    public override void AssignNewTile(Vector2Int arrayPosition, SquareGridCreator creator, Color tileColour)
    {
        base.AssignNewTile(arrayPosition, creator, new Color(0f, 1f, 1f));

        tileType = TileTypes.LightTrigger;
    }
예제 #15
0
    public override void AssignNewTile(Vector2Int arrayPosition, SquareGridCreator creator, Color tileColour)
    {
        base.AssignNewTile(arrayPosition, creator, Color.blue);

        tileType = TileTypes.Satalite;
    }
예제 #16
0
    void LevelCompleted(SquareGridCreator creator)
    {
        creator.LevelComplete -= LevelCompleted;

        UIManager.instance.ShowCompleteLevel();
    }