using System; using System.Collections.Generic; using System.Text; using OpenRa.FileFormats; using System.Drawing; using BluntDirectX.Direct3D; namespace OpenRa.Game { static class UnitSheetBuilder { static readonly Package unitsPackage = new Package( "../../../conquer.mix" ); public static readonly List> McvSheet = new List>(); static TileSheetBuilder builder; static List sheets = new List(); static Size pageSize = new Size(1024, 512); public static void Initialize( GraphicsDevice device ) { Provider sheetProvider = delegate { Sheet sheet = new Sheet(pageSize, device); sheets.Add(sheet); return sheet; }; builder = new TileSheetBuilder(pageSize, sheetProvider); } public static void AddUnit( string name ) { ShpReader reader = new ShpReader( unitsPackage.GetContent( name + ".shp" ) ); foreach( ImageHeader h in reader ) { SheetRectangle rect = builder.AddImage(reader.Size); Util.CopyIntoChannel(rect.sheet.bitmap, TextureChannel.Red, h.Image, rect); McvSheet.Add( rect ); } } } }