Exemple #1
0
    public static HomeIconView Spawn(TrainSpawn spawn)
    {
        var prefab   = Resources.Load <HomeIconView>("Prefabs/HomeIconView");
        var instance = GameObject.Instantiate(prefab);

        instance.transform.position = TileViewUtil.GetPosition3D(spawn.X, spawn.Y);
        var colorSettings = GameSettings.Instance.GetColorSettings(spawn.Color);

        instance.GetComponentInChildren <MeshRenderer>().material.color = colorSettings.Color;
        return(instance);
    }
Exemple #2
0
    public ViewController(GameWorld gameWorld)
    {
        this.gameWorld = gameWorld;

        tileViewPrefab = Resources.Load <TileView>("Prefabs/TileView");
        tile2View      = new TileView[levelData.Width, levelData.Height];
        for (var i = 0; i < levelData.Width; i++)
        {
            for (var j = 0; j < levelData.Height; j++)
            {
                var tile     = gameWorld.GetTile(i, j);
                var tileView = TileView.CreateView(tile, tileViewPrefab);
                tile2View[i, j] = tileView;
            }
        }

        foreach (var train in gameWorld.AllTrains)
        {
            allTrainViews.Add(TrainView.CreateView(train));
        }

        foreach (var trainSpawn in levelData.TrainSpawns)
        {
            HomeIconView.Spawn(trainSpawn);
        }

        foreach (var cargSpawner in gameWorld.AllCargoSpawners)
        {
            CargoIconsView.Create(cargSpawner);
        }

        var levelTextPrefab = Resources.Load <TextMeshPro>("Prefabs/LevelText");

        foreach (var levelText in levelData.LevelTexts)
        {
            var levelTextInstance =
                Object.Instantiate(levelTextPrefab, TileViewUtil.GetPosition3D(levelText.X, levelText.Y),
                                   Quaternion.identity);
            levelTextInstance.text = levelText.Text;
            levelTextInstance.GetComponent <RectTransform>().sizeDelta = new Vector2(levelText.Width, levelText.Height);
        }
    }