git-svn-id: svn://svn.ijw.co.nz/svn/OpenRa@1195 993157c7-ee19-0410-b2c4-bb4e9862e678

This commit is contained in:
chrisf
2007-07-13 11:12:16 +00:00
parent 9ffe1d2845
commit d4a7e5fb9e
10 changed files with 102 additions and 100 deletions

View File

@@ -11,22 +11,8 @@ namespace OpenRa.Game
{
Dictionary<string, SheetRectangle<Sheet>> trees = new Dictionary<string, SheetRectangle<Sheet>>();
public readonly Sheet sh;
public TreeCache(GraphicsDevice device, Map map, Package package)
{
Size pageSize = new Size(1024, 512);
List<Sheet> sheets = new List<Sheet>();
Provider<Sheet> sheetProvider = delegate
{
Sheet sheet = new Sheet(pageSize, device);
sheets.Add(sheet);
return sheet;
};
TileSheetBuilder<Sheet> builder = new TileSheetBuilder<Sheet>(pageSize, sheetProvider);
foreach (TreeReference r in map.Trees)
{
if (trees.ContainsKey(r.Image))
@@ -35,17 +21,10 @@ namespace OpenRa.Game
string filename = r.Image + "." + map.Theater.Substring(0, 3);
ShpReader reader = new ShpReader(package.GetContent(filename));
SheetRectangle<Sheet> rect = builder.AddImage(reader.Size);
Util.CopyIntoChannel(rect.sheet.bitmap, TextureChannel.Red, reader[0].Image, rect);
trees.Add(r.Image, rect);
trees.Add(r.Image, CoreSheetBuilder.Add(reader[0].Image, reader.Size));
}
sh = sheets[0];
}
public SheetRectangle<Sheet> GetImage(string tree)
{
return trees[tree];
}
public SheetRectangle<Sheet> GetImage(string tree) { return trees[tree]; }
}
}