public void Seed(Actor self) { var cell = RandomWalk(self.Location, self.World.SharedRandom) .Take(info.MaxRange) .SkipWhile(p => resLayer.GetResource(p) == resourceType && resLayer.IsFull(p)) .Cast <CPos?>().FirstOrDefault(); if (cell != null && resLayer.CanSpawnResourceAt(resourceType, cell.Value)) { resLayer.AddResource(resourceType, cell.Value, 1); } }
public void Seed(Actor self) { var cellone = Util.RandomWalk(self.Location, self.World.SharedRandom) .Take(_info.MaxRange) .SkipWhile(p => !self.World.Map.Contains(p) || (_resLayer.GetResourceDensity(p) > 0 && _resLayer.IsFull(p))) .Cast <CPos?>().FirstOrDefault(); if (cellone != null) { var cell = Util.RandomWalk(cellone.Value, self.World.SharedRandom) .Take(_info.MaxRange) .SkipWhile(p => !self.World.Map.Contains(p) && _resLayer.GetResourceDensity(p) > 0) .Cast <CPos?>().FirstOrDefault(); if (cell != null) { _resLayer.Harvest(cell.Value); } } }