Replace ResourceLayer references with IResourceLayer in traits/warheads.

This commit is contained in:
Paul Chote
2021-03-07 17:31:26 +00:00
committed by reaperrr
parent 5adcbe4c78
commit dcd8eccee4
14 changed files with 72 additions and 80 deletions

View File

@@ -30,7 +30,7 @@ namespace OpenRA.Mods.Common.Traits
readonly SeedsResourceInfo info;
readonly ResourceType resourceType;
readonly ResourceLayer resLayer;
readonly IResourceLayer resourceLayer;
public SeedsResource(Actor self, SeedsResourceInfo info)
: base(info)
@@ -43,7 +43,7 @@ namespace OpenRA.Mods.Common.Traits
if (resourceType == null)
throw new InvalidOperationException("No such resource type `{0}`".F(info.ResourceType));
resLayer = self.World.WorldActor.Trait<ResourceLayer>();
resourceLayer = self.World.WorldActor.Trait<IResourceLayer>();
}
int ticks;
@@ -64,12 +64,11 @@ namespace OpenRA.Mods.Common.Traits
{
var cell = Util.RandomWalk(self.Location, self.World.SharedRandom)
.Take(info.MaxRange)
.SkipWhile(p => !self.World.Map.Contains(p) ||
(resLayer.GetResourceType(p) == resourceType && resLayer.IsFull(p)))
.SkipWhile(p => resourceLayer.GetResource(p).Type == resourceType && !resourceLayer.CanAddResource(resourceType, p))
.Cast<CPos?>().FirstOrDefault();
if (cell != null && resLayer.CanAddResource(resourceType, cell.Value))
resLayer.AddResource(resourceType, cell.Value);
if (cell != null && resourceLayer.CanAddResource(resourceType, cell.Value))
resourceLayer.AddResource(resourceType, cell.Value);
}
}
}