private static bool TryConvertResource(string key, float amount, out IndustryResource resource) { if (ResourceClass.TryParse(key, out ResourceClass rClass)) { resource = new IndustryResource(rClass, amount); return(true); } resource = null; DVIndustry.ModEntry.Logger.Critical($"Unrecognized resource class \"{key}\""); return(false); }
//{ // { AgProducts.ID, AgProducts }, // { FreshFood.ID, FreshFood }, // { Steel.ID, Steel }, // { Lumber.ID, Lumber }, // { NewVehicles.ID, NewVehicles }, // { Electronics.ID, Electronics }, // { Tooling.ID, Tooling }, // { Clothing.ID, Clothing }, // { ConsumerGoods.ID, ConsumerGoods } //}; static ResourceClass() { // get all public ResourceClass Fields var builtinClassFields = typeof(ResourceClass).GetFields(BindingFlags.Public | BindingFlags.Static) .Where(f => f.FieldType.Equals(typeof(ResourceClass))); foreach (FieldInfo field in builtinClassFields) { ResourceClass resource = field.GetValue(null) as ResourceClass; BuiltinClasses[resource.ID] = resource; } }
public static ResourceClass SingleCargoClass(CargoType singleType) { if (singleResourceClassMap.TryGetValue(singleType, out var resource)) { return(resource); } else { resource = new ResourceClass(singleType); singleResourceClassMap[singleType] = resource; return(resource); } }
public static bool TryParse(string id, out ResourceClass resource) { if (BuiltinClasses.TryGetValue(id, out resource)) { return(true); } else if (Enum.TryParse(id, out CargoType cargo)) { resource = SingleCargoClass(cargo); return(true); } return(false); }
public IndustryResource(CargoType singleType, float amount) : this(ResourceClass.SingleCargoClass(singleType), amount) { }
public IndustryResource(ResourceClass accepted, float amount) { AcceptedItems = accepted; Amount = amount; }