public IEnumerator theme_asset_is_null() { SceneManager.LoadScene(0); MapGenerator generator = GameObject.Find("MapGenerator").GetComponent <MapGenerator>(); generator.Generate(); GridAssetSpawner spawner = generator.gameObject.GetComponent <GridAssetSpawner>(); GridAssets assets = new GameObject().AddComponent <GridAssets>(); GameObject assetPrefab = new GameObject(); GridAssetTheme[] themes = new GridAssetTheme[3]; for (int i = 0; i < themes.Length; ++i) { themes[i] = ScriptableObject.CreateInstance <GridAssetTheme>(); themes[i].SelectedTheme = GridAssetTheme.Theme.Forest; } themes[0].Sprites = new Sprite[9]; for (int i = 0; i < themes[0].Sprites.Length; ++i) { themes[0].Sprites[i] = Sprite.Create(new Texture2D(10, 10), new Rect(), Vector2.down); } assetPrefab.AddComponent <Tile>(); assets.Init(assetPrefab, themes); spawner.Init(assets); yield return(new WaitForEndOfFrame()); Assert.Throws <System.Exception>(() => generator.Generate(), $"The {generator.MapTheme.ToString()} (attached to: {spawner.name}) is null!"); }
public void grid_generation_events_firing() { #region Arrange GridAssetTheme[] themes = new GridAssetTheme[1]; themes[0] = ScriptableObject.CreateInstance <GridAssetTheme>(); themes[0].SelectedTheme = 0; themes[0].TileDecorations = new TileDecoration[1]; themes[0].TileDecorations[0] = ScriptableObject.CreateInstance <TileDecoration>(); themes[0].Sprites = new Sprite[9]; for (int i = 0; i < themes[0].Sprites.Length; ++i) { themes[0].Sprites[i] = Sprite.Create(new Texture2D(10, 10), new Rect(), new Vector2(0, 0)); } GridAssets assets = new GameObject().AddComponent <GridAssets>(); GameObject assetPrefab = new GameObject(); assetPrefab.AddComponent <SpriteRenderer>(); assetPrefab.AddComponent <Tile>(); assetPrefab.GetComponent <Tile>().TilePositionOnGrid = 0; assets.Init(assetPrefab, themes); GridAssetSpawner spawner = new GameObject().AddComponent <GridAssetSpawner>(); spawner.Init(assets); GridContainer container = new GameObject().AddComponent <GridContainer>(); MapGenerator generator = new GameObject().AddComponent <MapGenerator>(); generator.Init(spawner, container, 0); bool gridGenerating = false; bool gridGenerated = false; generator.OnMapGenerating += () => { gridGenerating = true; }; generator.OnMapGenerated += () => { gridGenerated = true; }; #endregion Assert.DoesNotThrow(() => generator.Generate()); Assert.True(gridGenerating); Assert.True(gridGenerated); Assert.NotNull(generator.Grid); }