TreeCache dies; trees & MINE have unitinfo

This commit is contained in:
Chris Forbes
2009-12-03 18:59:11 +13:00
parent bbbe23ae90
commit cf54a47b0c
9 changed files with 295 additions and 19 deletions

View File

@@ -47,12 +47,12 @@ namespace OpenRa.Game
+ "; add Traits= to units.ini for appropriate unit" );
}
public Actor( TreeReference tree, TreeCache treeRenderer )
{
ActorID = 0xffffffff;
Location = new int2( tree.Location );
traits.Add( new Traits.Tree( treeRenderer.GetImage( tree.Image ) ) );
}
//public Actor( TreeReference tree, TreeCache treeRenderer )
//{
// ActorID = 0xffffffff;
// Location = new int2( tree.Location );
// traits.Add( new Traits.Tree( treeRenderer.GetImage( tree.Image ) ) );
//}
public void Tick()
{

View File

@@ -20,7 +20,6 @@ namespace OpenRa.Game
public static readonly int CellSize = 24;
public static World world;
static TreeCache treeCache;
public static Viewport viewport;
public static PathFinder PathFinder;
public static WorldRenderer worldRenderer;
@@ -75,14 +74,15 @@ namespace OpenRa.Game
viewport = new Viewport( clientSize, Rules.Map.Offset, Rules.Map.Offset + Rules.Map.Size, renderer );
world = new World();
treeCache = new TreeCache(Rules.Map);
foreach (TreeReference treeReference in Rules.Map.Trees)
world.Add(new Actor(treeReference, treeCache));
BuildingInfluence = new BuildingInfluenceMap();
UnitInfluence = new UnitInfluenceMap();
foreach (TreeReference treeReference in Rules.Map.Trees)
world.Add(new Actor(treeReference.Image,
new int2(treeReference.Location),
null));
LoadMapBuildings(Rules.AllRules);
LoadMapUnits(Rules.AllRules);

View File

@@ -31,14 +31,16 @@ namespace OpenRa.Game
FileSystem.Open( "rules.ini" ),
FileSystem.Open( "aftermathUnits.ini" ),
FileSystem.Open( "units.ini" ),
FileSystem.Open( "campaignUnits.ini" ) );
FileSystem.Open("campaignUnits.ini"),
FileSystem.Open("trees.ini"));
else
AllRules = new IniFile(
FileSystem.Open("session.ini"),
FileSystem.Open(mapFileName),
FileSystem.Open("rules.ini"),
FileSystem.Open("units.ini"),
FileSystem.Open("campaignUnits.ini"));
FileSystem.Open("campaignUnits.ini"),
FileSystem.Open("trees.ini"));
General = new GeneralInfo();
FieldLoader.Load(General, AllRules.GetSection("General"));

View File

@@ -24,7 +24,7 @@ namespace OpenRa.Game.Graphics
int low = sprites.Count;
ShpReader reader = new ShpReader( FileSystem.OpenWithExts( name, ".shp", ".tem", ".sno", ".int" ) );
ShpReader reader = new ShpReader( FileSystem.OpenWithExts( name, ".tem", ".sno", ".int", ".shp" ) );
foreach (ImageHeader h in reader)
sprites.Add(SheetBuilder.Add(h.Image, reader.Size));

View File

@@ -137,7 +137,6 @@
<Compile Include="Graphics\SpriteSheetBuilder.cs" />
<Compile Include="TerrainCosts.cs" />
<Compile Include="Graphics\TerrainRenderer.cs" />
<Compile Include="Graphics\TreeCache.cs" />
<Compile Include="Traits\Activities\Harvest.cs" />
<Compile Include="Traits\Activities\Move.cs" />
<Compile Include="Traits\Activities\Follow.cs" />

View File

@@ -26,7 +26,8 @@ namespace OpenRa.Game.Traits
public void BuildingComplete(Actor self)
{
self.Owner.ChangePower(unitInfo.Power);
if (self.Owner != null)
self.Owner.ChangePower(unitInfo.Power);
}
}
}

View File

@@ -66,7 +66,8 @@ namespace OpenRa.Game.Traits
public override IEnumerable<Tuple<Sprite, float2, int>> Render(Actor self)
{
yield return Tuple.New(anim.Image, 24f * (float2)self.Location, self.Owner.Palette);
var pal = self.Owner == null ? 0 : self.Owner.Palette;
yield return Tuple.New(anim.Image, 24f * (float2)self.Location, pal);
}
public virtual void Damaged(Actor self, DamageState state)