public static ResourceTypes[] GetRequirements(CraftedResourcesType type) { var requirements = new List <ResourceTypes>(); if (type.ToString().ToLower()[0] == 's') { requirements.AddRange(new ResourceTypes[] { ResourceTypes.Iron, ResourceTypes.Magnesium, ResourceTypes.Chromite }); } else if (type.ToString().ToLower()[0] == 'b') { requirements.AddRange(new ResourceTypes[] { ResourceTypes.Coal, ResourceTypes.Cobalt }); } switch (type) { case CraftedResourcesType.S_316: requirements.Add(ResourceTypes.Molybdenum); break; case CraftedResourcesType.S_316Ti: requirements.Add(ResourceTypes.Titanium); break; case CraftedResourcesType.S_430: requirements.Add(ResourceTypes.Nickel); break; case CraftedResourcesType.S_440C: requirements.Add(ResourceTypes.Carbon); break; case CraftedResourcesType.B_Lithium: requirements.Add(ResourceTypes.Lithium); break; case CraftedResourcesType.B_Plasma: requirements.Add(ResourceTypes.Plasma); break; } return(requirements.ToArray()); }
protected override bool IsValidType(CraftedResourcesType type) { return(type.ToString().Split('_')[0] == "B"); }
protected CraftedResources(CraftedResourcesType type, Dictionary <ResourceTypes, int> requires, List <Components> buildsInto) { if (!IsValidType(type)) { throw new InvalidOperationException("The given type if crafted resource ('" + type.ToString() + "') is not valid for the casted type"); } else { Type = type; BuildsInto = buildsInto ?? new List <Components>(); Requires = requires ?? new Dictionary <ResourceTypes, int>(); } }