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; }