SpawnMapActors trait on world actor is now responsible for spawning trees etc at gamestart time

This commit is contained in:
Chris Forbes
2010-03-17 19:31:19 +13:00
parent 79ce49dd77
commit 79bcb3c739
5 changed files with 27 additions and 9 deletions

View File

@@ -120,15 +120,6 @@ namespace OpenRA
viewport = new Viewport(clientSize, Game.world.Map.Offset, Game.world.Map.Offset + Game.world.Map.Size, renderer);
Timer.Time( "ChromeProv, SeqProv, viewport: {0}" );
// todo: delay this
skipMakeAnims = true;
foreach (var actorReference in world.Map.Actors)
world.CreateActor(actorReference.Name, actorReference.Location,
world.players.Values.FirstOrDefault(p => p.InternalName == actorReference.Owner)
?? world.NeutralPlayer);
skipMakeAnims = false;
Timer.Time( "map actors: {0}" );
chrome = new Chrome(renderer, manifest);
Timer.Time( "chrome: {0}" );

View File

@@ -258,6 +258,7 @@
<Compile Include="Traits\TraitsInterfaces.cs" />
<Compile Include="Traits\Turreted.cs" />
<Compile Include="Traits\Unit.cs" />
<Compile Include="Traits\World\SpawnMapActors.cs" />
<Compile Include="Traits\World\UnitInfluence.cs" />
<Compile Include="Traits\World\WallLoadHook.cs" />
<Compile Include="Traits\World\WaterPaletteRotation.cs" />

View File

@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace OpenRA.Traits
{
class SpawnMapActorsInfo : StatelessTraitInfo<SpawnMapActors> { }
class SpawnMapActors : IGameStarted
{
public void GameStarted(World world)
{
Game.skipMakeAnims = true; // rude hack
foreach (var actorReference in world.Map.Actors)
world.CreateActor(actorReference.Name, actorReference.Location,
world.players.Values.FirstOrDefault(p => p.InternalName == actorReference.Owner)
?? world.NeutralPlayer);
Game.skipMakeAnims = false;
}
}
}

View File

@@ -207,4 +207,5 @@ World:
Name: Tiberium
GrowthInterval: 1
SpreadInterval: 6
SpawnMapActors:
SpawnDefaultUnits:

View File

@@ -265,6 +265,7 @@ World:
Templates:templates.ini
Tileset:tileSet.til
MapColors:temperat.col
SpawnMapActors:
SpawnDefaultUnits:
MGG: