public Tile GetTile(FloorTileData t) { SetMinimapTile(Color.White); var initalizer = new FloorInitializer(); var res = new FloorTile(initalizer); sidesCreator.SetupSidesAsync(initalizer, currentGridPosition, res); res.Renderer = builder.Factories.RenderersSource.GetTileRenderer(res); this.initializer = initalizer; return(res); }
public virtual async Task SetupSidesAwaitableAsync(FloorInitializer initalizer, Point pos, ITile tile) { var sides = await Task.WhenAll(MapDirection.Sides .Select(d => Tuple.Create(d, builder.CurrentMap.GetTileData(pos + d))) .Where(t => t.Item2 == null || t.Item2.GetType() == typeof(WallTileData)) .Select(async t => await CreateWallSide(t.Item1, (WallTileData)t.Item2, pos)) .ToArray()); //int level = builder.CurrentLevelIndex - 1; //if (level >= 0 && builder.Data.Maps[level].GetTileData(pos) is PitTileData) //{ // initalizer.WallSides = sides; //} //else //{ initalizer.WallSides = sides .Concat(new[] { GetCeelingSide() }) .ToArray(); //} initalizer.FloorSide = await GetFloorSide(pos, tile); }
// Use this for initialization void Start() { FloorInitializer.CreateFloor(); EnvironmentModel.Instance.RemoveAll(); PickUpGenerator.Clear(); EnvironmentModel.Instance.Offset = new Vector3(0, 0.5f, 0); //this.transform.position; EnvironmentModel.Instance.Generate(25, 5, 5, 5); Player.transform.position = new Vector3(0, 100, 0); Star.transform.position = this.CreateNewStar(5, 5, 5) + EnvironmentModel.Instance.Offset; PickUpGenerator.GenerateHearts(5, 7, 3, 7); LevelStopwatch.Instance.Reset(); LevelStopwatch.Instance.Start(); LevelStopwatch.Instance.ElapsedTimeSpan = new System.TimeSpan(); this.currentLevel = 0; EnvironmentModel.Instance.CurrentLevel = 0; Constants.DestroyedBlocksCounter = 0; Constants.CreatedBlocksCounter = 0; if (this.first) { EnvironmentModel.Instance.DestroyGameObjectEvent += (GameObject obj) => DestroyImmediate(obj); first = false; } }
public FloorTile(FloorInitializer initializer) : base(initializer) { }
public async void SetupSidesAsync(FloorInitializer initalizer, Point pos, ITile tile) { await SetupSidesAwaitableAsync(initalizer, pos, tile); }