Пример #1
0
        public void AddResources(List <ResourceAmount> resources)
        {
            foreach (ResourceAmount resource in resources)
            {
                ResourceLibrary.ResourceType resourceName = resource.ResourceType.Type;
                if (PutResources.ContainsKey(resourceName))
                {
                    ResourceAmount amount = PutResources[resourceName];
                    amount.NumResources += resource.NumResources;
                }
                else
                {
                    ResourceAmount amount = new ResourceAmount();
                    amount.NumResources += resource.NumResources;
                    amount.ResourceType  = resource.ResourceType;

                    PutResources[resourceName] = amount;
                }
            }

            if (MeetsBuildRequirements())
            {
                Build();
            }
        }
Пример #2
0
        public bool IsResourceSatisfied(Resource.ResourceTags name)
        {
            int required = GetNumRequiredResources(name);
            int current  = 0;

            if (PutResources.ContainsKey(name))
            {
                current = (int)PutResources[name].NumResources;
            }

            return(current >= required);
        }
Пример #3
0
        public string GetTextDisplay()
        {
            string toReturn = ToBuild.RoomData.Name;

            foreach (Quantitiy <Resource.ResourceTags> amount in ToBuild.RoomData.RequiredResources.Values)
            {
                toReturn += "\n";
                int numResource = 0;
                if (PutResources.ContainsKey(amount.ResourceType))
                {
                    numResource = (int)(PutResources[amount.ResourceType].NumResources);
                }
                toReturn += amount.ResourceType.ToString() + " : " + numResource + "/" + Math.Max((int)(amount.NumResources * VoxelOrders.Count * 0.25f), 1);
            }

            return(toReturn);
        }
Пример #4
0
        public bool MeetsBuildRequirements()
        {
            bool toReturn = true;

            foreach (Resource.ResourceTags s in ToBuild.RoomData.RequiredResources.Keys)
            {
                if (!PutResources.ContainsKey(s))
                {
                    return(false);
                }
                else
                {
                    toReturn = toReturn && (PutResources[s].NumResources >= Math.Max((int)(ToBuild.RoomData.RequiredResources[s].NumResources * VoxelOrders.Count * 0.25f), 1));
                }
            }

            return(toReturn);
        }
Пример #5
0
        public void AddResources(List <Quantitiy <Resource.ResourceTags> > resources)
        {
            foreach (Quantitiy <Resource.ResourceTags> resource in resources)
            {
                if (PutResources.ContainsKey(resource.ResourceType))
                {
                    Quantitiy <Resource.ResourceTags> amount = PutResources[resource.ResourceType];
                    amount.NumResources += resource.NumResources;
                }
                else
                {
                    Quantitiy <Resource.ResourceTags> amount = new Quantitiy <Resource.ResourceTags>();
                    amount.NumResources += resource.NumResources;
                    amount.ResourceType  = resource.ResourceType;

                    PutResources[resource.ResourceType] = amount;
                }
            }
        }
Пример #6
0
        public List <Quantitiy <Resource.ResourceTags> > ListRequiredResources()
        {
            List <Quantitiy <Resource.ResourceTags> > toReturn = new List <Quantitiy <Resource.ResourceTags> >();

            foreach (Resource.ResourceTags s in ToBuild.RoomData.RequiredResources.Keys)
            {
                int needed           = Math.Max((int)(ToBuild.RoomData.RequiredResources[s].NumResources * VoxelOrders.Count * 0.25f), 1);
                int currentResources = 0;

                if (PutResources.ContainsKey(s))
                {
                    currentResources = PutResources[s].NumResources;
                }

                if (currentResources >= needed)
                {
                    continue;
                }

                toReturn.Add(new Quantitiy <Resource.ResourceTags>(s, needed - currentResources));
            }

            return(toReturn);
        }