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); }
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(); }