public VehicleFuelSpecification GetFuelSpecificationForVehicleHash(VehicleHash vehicleHash) { if (_fuelSpecificationCache.ContainsKey(vehicleHash)) { return(_fuelSpecificationCache[vehicleHash]); } var modelName = Enum.GetName(typeof(VehicleHash), vehicleHash).ToLowerInvariant(); var specification = VehicleFuelSpecifications.FirstOrDefault(s => string.Equals(s.ModelName, modelName, StringComparison.OrdinalIgnoreCase)); if (specification == null) { FuelMain.Log("No fuel specification found for vehicle model: " + modelName); } else { _fuelSpecificationCache.Add(vehicleHash, specification); return(specification); } VehicleFuelSpecifications.Add(new VehicleFuelSpecification { FuelCapacity = DefaultFuelCapacity, ConsumptionMultiplier = DefaultConsumptionMultiplier, FuelType = DefaultFuelType, ModelName = modelName }); this.Save(); return(GetFuelSpecificationForVehicleHash(vehicleHash)); }
public void Save() { try { using (var writer = File.CreateText(ConfigPath)) { GetSerializer().Serialize(writer, this); writer.Flush(); writer.Close(); } } catch (Exception ex) { FuelMain.Log("Failed to save config: " + ex); } }
public static Config LoadConfig() { if (!File.Exists(ConfigPath)) { return(CreateNewConfig()); } using (var reader = File.OpenRead(ConfigPath)) { try { return((Config)GetSerializer().Deserialize(reader) ?? CreateNewConfig()); } catch (Exception ex) { FuelMain.Log("Failed to load config: " + ex); } } return(CreateNewConfig()); }