示例#1
0
        public ResourcePackage RequestResource(Structure requestingStructure, ResourceType resourceType, RequestPriority priority)
        {
            var providedPackage = Provisions.Dequeue(resourceType, rp => HasPathFilter(rp.StartStructure, requestingStructure));

            if (providedPackage != null)
            {
                providedPackage.DestinationStructure = requestingStructure;
                providedPackage.SpecifyResourceType(resourceType);
                providedPackage.Move();
                return(providedPackage);
            }
            var resourcePackage = new ResourcePackage(resourceType, World.PathFinder, World.GameSettings.GameplaySettings)
            {
                DestinationStructure = requestingStructure
            };

            AddPackage(resourcePackage);
            Requests.Enqueue(resourcePackage, priority);
            return(resourcePackage);
        }