示例#1
0
        public ResourcePackage ProvideResource(Structure providingStructure, ResourceType resourceType, RequestPriority priority)
        {
            var requestPackage = Requests.Dequeue(resourceType, rp => HasPathFilter(providingStructure, rp.DestinationStructure));

            if (requestPackage != null)
            {
                requestPackage.StartStructure = providingStructure;
                requestPackage.SpecifyResourceType(resourceType);
                requestPackage.Move();
                return(requestPackage);
            }
            var resourcePackage = new ResourcePackage(resourceType, World.PathFinder, World.GameSettings.GameplaySettings)
            {
                StartStructure = providingStructure
            };

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