コード例 #1
0
ファイル: SeedsResource.cs プロジェクト: Blackbird88/OpenRA
        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);
            }
        }
コード例 #2
0
        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);
                }
            }
        }