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));
                    }
                }
            }
        }
 public static void SetCustomProperties(this BuildingInfo building, CustomizableProperties customProperties)
 {
     building.m_placementMode  = customProperties.m_placementMode;
     building.m_fullGravel     = customProperties.m_fullGravel;
     building.m_fullPavement   = customProperties.m_fullPavement;
     building.m_flattenTerrain = customProperties.m_flattenTerrain;
 }