Example #1
0
        private async Task OnCreateResourcesAsync(EngineCreateResourcesEventArgs e)
        {
            // Load all registered sprites

            var coords = Entity.GetImplementation <ICoordinateSystem>();
            await Task.WhenAll(Sprites.Select(sprite => sprite.LoadAsync(e.Sender, coords))).ConfigureAwait(false);
        }
Example #2
0
        private async void Canvas_CreateResources(EngineCreateResourcesEventArgs e)
        {
            await Task.Delay(1000);

            AddRoads(
                Engine.Engine.Current.CurrentLevel.RootEntity,
                Engine.Engine.Current.CurrentLevel.RootEntity.GetImplementation <ICoordinateSystem>());
        }
Example #3
0
        private async Task OnCreateResourcesAsync(EngineCreateResourcesEventArgs e)
        {
            var grass     = GrassSprite.Resolve(Entity);
            var snow      = SnowSprite.Resolve(Entity);
            var rock      = RockSprite.Resolve(Entity);
            var heightMap = _terrain.HeightMap.Resolve(Entity);

            if (!heightMap.IsPreScaled || !grass.IsPreScaled || !snow.IsPreScaled || !rock.IsPreScaled)
            {
                throw new ArgumentException("The heightmap, grass, snow and rock textures must be prescaled in order to be used for terrain rendering");
            }

            // Calculate average colors (these are used at small zoom levels)
            _grassColor = GetAverageColor(e.Sender, grass.Image);
            _snowColor  = GetAverageColor(e.Sender, snow.Image);
            _rockColor  = GetAverageColor(e.Sender, rock.Image);

            _normalHeightMap = await RenderNormalHeightMapAsync(e.Sender, heightMap.Image, _terrain.Height - _terrain.BaseHeight);

            var wrap       = CanvasEdgeBehavior.Wrap;
            var grassTiled = new BorderEffect {
                Source = grass.Image, ExtendX = wrap, ExtendY = wrap, CacheOutput = true
            };
            var snowTiled = new BorderEffect {
                Source = snow.Image, ExtendX = wrap, ExtendY = wrap, CacheOutput = true
            };
            var rockTiled = new BorderEffect {
                Source = rock.Image, ExtendX = wrap, ExtendY = wrap, CacheOutput = true
            };

            var shaderBytes = await Utilities.ReadBytesFromUriAsync(new Uri("ms-appx:///Shaders/TerrainShader.bin"));

            _terrainMap = new PixelShaderEffect(shaderBytes)
            {
                Source1     = _normalHeightMap,
                Source2     = grassTiled,
                Source3     = snowTiled,
                Source4     = rockTiled,
                CacheOutput = true
            };
        }
Example #4
0
 private void OnCreateResources(EngineCreateResourcesEventArgs e)
 {
     _canvasControl = e.Sender;
 }
Example #5
0
 private void OnCreateResources(EngineCreateResourcesEventArgs e)
 {
     _canvasControl = e.Sender;
     _heightMap     = HeightMap.Resolve(Entity);
 }