protected override void Loaded(BehaviorLoadedEventArgs args) { args.TrackSubscription(Draw.Subscribe(OnDraw)); args.TrackSubscription(CreateResources.Subscribe(e => e.Tasks.Add(OnCreateResourcesAsync(e)))); _terrain = Entity.GetBehavior <TerrainBehavior>(); }
public TerrainPage() { /* * HEIGHT MAP INFO: * - Kitzbüheler Alpen: 20x20 km, BaseHeight: 719 m, MaxHeight: 2328 m * - Wildkogel : 8x8 km, BaseHeight: 779 m, MaxHeight: 2264 m * - Zillertal Arena : 20x20 km, BaseHeight: 524 m, MaxHeight: 3049 m */ InitializeComponent(); Engine.Engine.Current.Attach(canvas); var level = new Level(); var spriteManager = new SpriteManagerBehavior(); spriteManager.Sprites.Add("Terrain.Grass", new Uri("ms-appx:///Assets/Sprites/Grass0202_1_S.jpg"), new Vector2(20, 20)); spriteManager.Sprites.Add("Terrain.Snow", new Uri("ms-appx:///Assets/Sprites/Snow0080_1_S.jpg"), new Vector2(20, 20)); spriteManager.Sprites.Add("Terrain.Rock", new Uri("ms-appx:///Assets/Sprites/terrain-cliffs-ground.png"), new Vector2(20, 20)); spriteManager.Sprites.Add("Terrain.HeightMap", new Uri("ms-appx:///Assets/Sprites/HeightMaps/Wildkogel8x8 Height Map (Merged).png"), new Vector2(8000, 8000)); spriteManager.Sprites.Add("Road", new Uri("ms-appx:///Assets/Sprites/Roads0059_1_S.jpg"), new Vector2(10, 10)); var terrain = new TerrainBehavior { Height = 2264, BaseHeight = 779, HeightMap = "Terrain.HeightMap" }; var terrainRenderer = new TerrainRendererBehavior { GrassSprite = "Terrain.Grass", SnowSprite = "Terrain.Snow", RockSprite = "Terrain.Rock" }; level.RootEntity.AddBehavior(spriteManager); level.RootEntity.AddBehavior(terrain); level.RootEntity.AddBehavior(terrainRenderer); Engine.Engine.Current.AddFeature(new TrackTerrainMousePositionEngineFeature(terrain, true)); Engine.Engine.Current.LoadLevel(level); Engine.Engine.Current.StartOrResume(); Engine.Engine.Current.Events.CreateResources.Subscribe(Canvas_CreateResources); }
public TerrainTestPage() { InitializeComponent(); Engine.Engine.Current.Attach(canvas); var level = new Level(); Engine.Engine.Current.AddFeature(new TrackMousePositionEngineFeature(true)); var terrain = new TerrainBehavior(); Engine.Engine.Current.LoadLevel(level); Engine.Engine.Current.StartOrResume(); }
public void Awake() { TerrainRandomNumber = UnityEngine.Random.Range(0, 100000); TerrainRandNum = Random.Range(1, 1000); ChildTransform = GetComponent <Transform>(); TempObjects = new List <GameObject>(); TileHeight = new float[] { 2f, 2f, 2f, 2f, 2f, 2f, 2f, 2f, 2f, 2f, 2f, 2f, 2f, 2f, 2f, 2f }; PowValue = 2.0f; TileProperties = new float[System.Enum.GetNames(typeof(BiomeManager.CellType)).Length + System.Enum.GetNames(typeof(BiomeManager.TowerType)).Length]; for (int i = 0; i < TileProperties.Length; i++) { TileProperties[i] = 0; } InnerTileNoise = new float[10, 10]; terrain = gameObject.GetComponent <TerrainBehavior>(); }
public void LoadTerrain(TerrainBehavior terrain, float randNumber, GameObject TowersParent) { if (CurrentTerrainBehavior) { Destroy(CurrentTerrainBehavior.TowerMeshParent); } CurrentTerrainBehavior = terrain; //CurrentTerrainBehavior.Biome = GetComponent<CellBehaviour>().TileBiome; CurrentTerrainBehavior.TowerParent = TowersParent; CurrentTerrainBehavior.GenerateTerrain(randNumber, CellObjects, Cells, GridSize); if (MeshParent) { Destroy(MeshParent); } MeshParent = new GameObject(); MeshParent.AddComponent <MeshRenderer>(); MeshParent.AddComponent <MeshFilter>(); MeshFilter[] meshFilters = SmallCellsParent.GetComponentsInChildren <MeshFilter>(); CombineInstance[] combine = new CombineInstance[meshFilters.Length]; int i = 0; while (i < meshFilters.Length) { combine[i].mesh = meshFilters[i].sharedMesh; combine[i].transform = meshFilters[i].transform.localToWorldMatrix; meshFilters[i].gameObject.GetComponent <MeshRenderer>().enabled = false; i++; } MeshParent.transform.GetComponent <MeshFilter>().mesh = new Mesh(); MeshParent.transform.GetComponent <MeshFilter>().mesh.CombineMeshes(combine); MeshParent.transform.GetComponent <Renderer>().material = meshFilters[0].gameObject.GetComponent <Renderer>().material; MeshParent.transform.gameObject.SetActive(true); }
private void Start() { TilePostition = new List <Vector2>(); SmallCellsParent = new GameObject(); SmallCellsParent.name = "Inner Cells"; SmallCellsParent.transform.parent = transform; CurrentTerrainBehavior = null; CellObjects = new List <List <GameObject> >(); Cells = new List <List <Cell> >(); CreateHexagon(); for (int q = 0; q < GridSize * 2 + 1; q++) { Cells[q] = new List <Cell>(); for (int r = 0; r < CellObjects[q].Count; r++) { Cells[q].Add(CellObjects[q][r].GetComponent <Cell>()); Cells[q][r].TilePostition = TilePostition[tempint]; tempint++; } } }
private void processBehavior(TerrainBehavior tb) { if (tb.fx != null) { Instantiate(tb.fx, transform.position, Quaternion.identity); } if (tb.sound != null && tb.sound != "") { SoundManager.instance.Play(tb.sound); } string seq = tb.type.ToString().ToLower(); Anim anim = animLayers[tb.layer]; if (anim.IsCached(seq)) { if (seq == TerrainBehaviorType.OnStill.ToString().ToLower() && anim.sequenceName == seq) { return; } anim.Play(seq); } }