// private LightArea GetLightArea(ShadowmapSize size) //{ //switch (size) //{ // case ShadowmapSize.Size128: // return lightArea128; // case ShadowmapSize.Size256: // return lightArea256; // case ShadowmapSize.Size512: // return lightArea512; // case ShadowmapSize.Size1024: // return lightArea1024; // default: // return lightArea1024; //} // } // Draws all walls in the area around the light relative to it, and in black (test code, not pretty) private void DrawWallsRelativeToLight(ILightArea area) { RectangleF lightArea = new RectangleF(area.LightPosition - (area.LightAreaSize / 2), area.LightAreaSize); var tiles = MapManager.GetWallsIntersecting(lightArea); foreach (TileRef t in tiles) { Vector2 pos = area.ToRelativePosition(new Vector2(t.X, t.Y)); t.Tile.TileDef.RenderPos(pos.X, pos.Y, MapManager.TileSize, (int)area.LightAreaSize.X); } }
// Draws all walls in the area around the light relative to it, and in black (test code, not pretty) private void DrawWallsRelativeToLight(ILightArea area) { Vector2f lightAreaSize = CluwneLib.PixelToTile(area.LightAreaSize) / 2; var lightArea = new FloatRect(area.LightPosition - lightAreaSize, CluwneLib.PixelToTile(area.LightAreaSize)); var tiles = MapManager.GetWallsIntersecting(lightArea); foreach (TileRef t in tiles) { Vector2f pos = area.ToRelativePosition(CluwneLib.WorldToScreen(new Vector2f(t.X, t.Y))); t.Tile.TileDef.RenderPos(pos.X, pos.Y); } }