Esempio n. 1
0
    public void RefreshTiles()
    {
        for (int i = 0; i < tiles.Length; i++)
        {
            if (tiles[i].GetComponent <Tile>().HasChangedValue())
            {
                MMUtils.DeleteAllChildrenWithException(tiles[i].transform, "Tile");

                tiles[i].GetComponent <Tile>().SetNewTile();
                if (tiles[i].GetComponent <Tile>().ttTile == MMEnums.TileType.NONE)
                {
                    tiles[i].GetComponent <Tile>().goTile.SetActive(false);
                }
                else
                {
                    tiles[i].GetComponent <Tile>().goTile.SetActive(true);
                    GameObject goToInstantiate = null;
                    switch (tiles[i].GetComponent <Tile>().ttTile)
                    {
                    case MMEnums.TileType.MIRROR:
                        goToInstantiate = prefMirror;
                        break;

                    case MMEnums.TileType.LASER:
                        goToInstantiate = prefLaser;
                        break;

                    case MMEnums.TileType.RECEIVER:
                        goToInstantiate = prefReceiver;
                        break;

                    case MMEnums.TileType.SPLITTER:
                        goToInstantiate = prefSplitter;
                        break;

                    case MMEnums.TileType.ROCKS:
                        goToInstantiate = prefRocks;
                        break;

                    case MMEnums.TileType.CHARACTER:
                        goToInstantiate = prefCharacter;
                        break;

                    case MMEnums.TileType.MERGER:
                        goToInstantiate = prefMerger;
                        break;

                    case MMEnums.TileType.BIG_ROCK:
                        goToInstantiate = prefBigRock;
                        break;

                    case MMEnums.TileType.DUPLICATOR:
                        goToInstantiate = prefDuplicator;
                        break;
                    }
                    if (goToInstantiate != null)
                    {
                        GameObject goNewObj = Instantiate(goToInstantiate, Vector3.zero, Quaternion.identity);
                        //tiles[i].GetComponent<Tile>().bMovementOn = goToInstantiate.GetComponent<ScenarioObject>().

                        goNewObj.transform.SetParent(tiles[i].transform);
                        goNewObj.transform.localPosition = new Vector3(0, 0.2f, 0) + goToInstantiate.GetComponent <ScenarioObject>().v3Offset;
                        goNewObj.transform.localRotation = Quaternion.identity;

                        if (tiles[i].GetComponent <Tile>().ttTile != MMEnums.TileType.ROCKS && tiles[i].GetComponent <Tile>().ttTile != MMEnums.TileType.BIG_ROCK)
                        {
                            iNumberOfObjects++;
                        }

                        if (MMUtils.IsPushableObject(tiles[i].GetComponent <Tile>().ttTile))
                        {
                            iNumberOfMovementObjects++;
                        }

                        if (MMUtils.IsColorObject(tiles[i].GetComponent <Tile>().ttTile))
                        {
                            if (tiles[i].GetComponent <Tile>().ttTile == MMEnums.TileType.LASER)
                            {
                                tiles[i].GetComponentInChildren <LineRenderer>().startColor = tiles[i].GetComponent <Tile>().clrObject;
                                tiles[i].GetComponentInChildren <LineRenderer>().endColor   = tiles[i].GetComponent <Tile>().clrObject;

                                Renderer recRenderer = tiles[i].GetComponentInChildren <LineRenderer>().GetComponentsInChildren <Renderer>()[1];

                                recRenderer.material.SetColor("_Color", tiles[i].GetComponent <Tile>().clrObject);
                            }
                            else if (tiles[i].GetComponent <Tile>().ttTile == MMEnums.TileType.RECEIVER)
                            {
                                Renderer recRenderer = tiles[i].GetComponentInChildren <Receiver>().GetComponentsInChildren <Renderer>()[2];
                                recRenderer.materials[0].SetColor("_Color", tiles[i].GetComponent <Tile>().clrObject);
                            }
                            iNumberOfColors++;
                        }
                    }
                }
            }
        }
    }