using System; using System.Collections.Generic; using System.Text; using OpenRa.FileFormats; namespace OpenRa.Game { class Game { public readonly World world; public readonly Map map; public readonly SpriteRenderer SpriteRenderer; public readonly TreeCache treeCache; public readonly TerrainRenderer terrain; public readonly Viewport viewport; public readonly PathFinder pathFinder; public Game( string mapName, Renderer renderer, int2 clientSize ) { SheetBuilder.Initialize( renderer.Device ); map = new Map( new IniFile( FileSystem.Open( mapName ) ) ); FileSystem.Mount( new Package( "../../../" + map.Theater + ".mix" ) ); viewport = new Viewport( clientSize, new float2( map.Size ), renderer ); terrain = new TerrainRenderer( renderer, map, viewport ); world = new World( renderer, viewport ); treeCache = new TreeCache( renderer.Device, map ); foreach( TreeReference treeReference in map.Trees ) world.Add( new Tree( treeReference, treeCache, map ) ); pathFinder = new PathFinder( map, terrain.tileSet ); } } }