Exemplo n.º 1
0
        public BuildingProperties(CustomizableProperties oldProps)
        {
            var fields = oldProps.GetType().GetFields();

            var originalFields = fields.ToDictionary(field => field.Name);

            fields = GetType().GetFields();

            if (!CustomizeItExtendedMod.Settings.OverrideRebalancedIndustries)
            {
                foreach (var customField in fields)
                {
                    if (RebalancedIndustries.IsRebalancedIndustriesActive() &&
                        RebalancedIndustries.RebalancedFields.Contains(customField.Name))
                    {
                        continue;
                    }

                    if (originalFields.ContainsKey(customField.Name))
                    {
                        customField.SetValue(this, originalFields[customField.Name].GetValue(oldProps));
                    }
                }
            }
            else
            {
                foreach (var customField in fields)
                {
                    if (originalFields.ContainsKey(customField.Name))
                    {
                        customField.SetValue(this, originalFields[customField.Name].GetValue(oldProps));
                    }
                }
            }
        }