Пример #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);
    }
Пример #2
0
 public Train(GameWorld world, TrainSpawn trainSpawn)
 {
     this.world              = world;
     this.tile               = world.GetTile(trainSpawn.X, trainSpawn.Y) ?? throw new Exception($"Train at invalid position: [{trainSpawn.X}, {trainSpawn.Y}]");
     this.spawnTile          = tile;
     this.progressInsideTile = 0.5f;
     this.direction          = trainSpawn.Direction;
     this.tileEnterDirection = direction.Opposite();
     this.positionHistory    = new PositionStateHistory(1000, GetSnapshot());
     this.type               = trainSpawn.Type;
     this.color              = trainSpawn.Color;
     this.cars               = trainSpawn.InitialCars;
     this.initialCars        = this.cars;
     this.speed              = trainSpawn.Type.GetSpeed();
 }