diff --git a/OpenRa.Game/CoreSheetBuilder.cs b/OpenRa.Game/CoreSheetBuilder.cs index 13ba01ade7..876eacc17d 100644 --- a/OpenRa.Game/CoreSheetBuilder.cs +++ b/OpenRa.Game/CoreSheetBuilder.cs @@ -25,4 +25,22 @@ namespace OpenRa.Game return rect; } } + + static class BeedeeSheetBuilder + { + static Dictionary> sprites = + new Dictionary>(); + + public static SheetRectangle LoadSprite(Package package, string filename) + { + SheetRectangle value; + if (!sprites.TryGetValue(filename, out value)) + { + ShpReader shp = new ShpReader(package.GetContent(filename)); + sprites.Add(filename, value = CoreSheetBuilder.Add(shp[0].Image, shp.Size)); + } + + return value; + } + } }