public override void SaveToNode(ConfigNode node, bool serializing)
        {
            base.SaveToNode(node, serializing);

            foreach (var value in List)
            {
                node.AddValue(ConfigName, CFGUtil.FormatConfigValue(value));
            }
        }
        public override void SaveToNode(ConfigNode node, bool serializing)
        {
            base.SaveToNode(node, serializing);

            if (Value.IsNull())
            {
                return;
            }

            node.AddValue(ConfigName, CFGUtil.FormatConfigValue(Value));
        }
        public override void LoadFromNode(ConfigNode node)
        {
            base.LoadFromNode(node);

            var value = node.GetValue(ConfigName);

            if (value.IsNull())
            {
                return;
            }

            Value = CFGUtil.ParseConfigValue(ElementType, value);
        }
        public override void LoadFromNode(ConfigNode node)
        {
            base.LoadFromNode(node);

            var newNode = node.GetNode(ConfigName);

            if (newNode.IsNull())
            {
                return;
            }

            var value = (IConfigNode)Value;

            CFGUtil.AssignConfigObject(this, newNode, ref value);
            Value = value;
        }
Example #5
0
        public static void AssignConfigObject(ConfigFieldInfo field, string value, ref object result)
        {
            object parseResult = CFGUtil.ParseConfigValue(field.ElementType, value);

            if (parseResult == null)
            {
                return;
            }

            if (result.IsNotNull() && (result is UnityEngine.Object) && field.Attribute.destroy)
            {
                UnityEngine.Object.Destroy((UnityEngine.Object)result);
            }

            result = parseResult;
            return;
        }
        public override void LoadFromNode(ConfigNode node)
        {
            base.LoadFromNode(node);

            var values = node.GetValues(ConfigName);

            if (values.Length == 0)
            {
                return;
            }

            CreateListIfNecessary();

            bool createNewItems = false;

            if (Count != values.Length)
            {
                ClearList();
                createNewItems = true;
            }

            for (int i = 0; i < values.Length; i++)
            {
                object obj = null;

                if (!createNewItems)
                {
                    obj = List[i];
                }

                CFGUtil.AssignConfigObject(this, values[i], ref obj);

                if (createNewItems)
                {
                    List.Add(obj);
                }
                else
                {
                    List[i] = obj; // This may be self-assignment under certain circumstances
                }
            }
        }
 static B9TankSettings()
 {
     CFGUtil.RegisterParseType <PartResourceDefinition>(FindResourceDefinition, x => x.name);
     CFGUtil.RegisterParseType <TankType>(B9TankSettings.GetTankType, x => x.tankName);
 }