public Arguments(ConfigNode configNode) { duration = ConfigNodeUtil.ParseValue(configNode, "duration", new ContractConfigurator.Duration(0.0)); allowedDowntime = ConfigNodeUtil.ParseValue(configNode, "allowedDowntime", new ContractConfigurator.Duration(0.0)); waitDuration = ConfigNodeUtil.ParseValue(configNode, "waitDuration", new ContractConfigurator.Duration(0.0)); requirementId = ConfigNodeUtil.ParseValue(configNode, "id", ""); minVessels = ConfigNodeUtil.ParseValue(configNode, "minVessels", 1); waypointIndex = ConfigNodeUtil.ParseValue(configNode, "waypointIndex", 0); allowReset = ConfigNodeUtil.ParseValue(configNode, "allowReset", true); title = ConfigNodeUtil.ParseValue(configNode, "title", ""); hideChildren = ConfigNodeUtil.ParseValue(configNode, "hideChildren", false); durationType = Lib.ConfigEnum(configNode, "durationType", DurationParameter.DurationType.countdown); allowUnpowered = ConfigNodeUtil.ParseValue(configNode, "allowUnpowered", false); }
public override bool Load(ConfigNode configNode) { // Load base class bool valid = base.Load(configNode); // Get type string contractType = null; valid &= ConfigNodeUtil.ParseValue <string>(configNode, "contractType", x => contractType = x, this); if (valid) { if (ContractType.GetContractType(contractType) != null) { ccType = contractType; } else { ccType = null; // Search for the correct type var classes = from assembly in AppDomain.CurrentDomain.GetAssemblies() from type in assembly.GetTypes() where type.IsSubclassOf(typeof(Contract)) && type.Name.Equals(contractType) select type; if (classes.Count() < 1) { valid = false; LoggingUtil.LogError(this.GetType(), "contractType '" + contractType + "' must either be a Contract sub-class or ContractConfigurator contract type"); } else { contractClass = classes.First(); } } } valid &= ConfigNodeUtil.ParseValue <uint>(configNode, "minCount", x => minCount = x, this, 1); valid &= ConfigNodeUtil.ParseValue <uint>(configNode, "maxCount", x => maxCount = x, this, UInt32.MaxValue); valid &= ConfigNodeUtil.ParseValue <Duration>(configNode, "cooldownDuration", x => cooldownDuration = x, this, new Duration(0.0)); return(valid); }