namespace Harmony.BiomeDefinitionPatches { [HarmonyPatch(typeof(BiomeDefinition))] [HarmonyPatch("AddDecoBlock")] public class AddDecoBlockPatch { public static bool Prefix(BiomeDefinition __instance, BiomeBlockDecoration _deco) { if (Block.BlocksLoaded && _deco.blockValue.Block != null) { string name = _deco.blockName; float multiplier = float.Parse(RebirthVariables.customTreeDensityMultiplier) / 100; if (name == "treeJuniper4m" || name == "treeMountainPine12m" || name == "treeMountainPine19m" || name == "treeMountainPineDry21m" || name == "treeMountainPine27m" || name == "treeMountainPine31m" || name == "treeMountainPine41m" || name == "treeMountainPine48m" || name == "treeOakSml01" || name == "treeOakLrg01" || name == "treeOakMed01" || name == "treeOakMed02" || name == "treeFirLrg01" ) { _deco.prob = _deco.prob * multiplier * 0.8f; } if (name == "treeWinterEverGreen" || name == "treeWinterPine13m" || name == "treeWinterPine19m" || name == "treeWinterPine28m" ) { _deco.prob = _deco.prob * multiplier; } if (name == "treeJuniper4m" || name == "treeDeadPineLeaf" || name == "treePineBurntLrg" || name == "treePineBurntMed" || name == "treePineBurntFullMed" || name == "treeBurntMaple01" || name == "treeBurntMaple02" || name == "treeBurntMaple03" || name == "treeDeadTree01" || name == "treeDeadTree02" ) { _deco.prob = _deco.prob * multiplier * 1.67f; if (__instance.m_sBiomeName == "burnt_forest") { _deco.prob = _deco.prob * 2f; } else if (__instance.m_sBiomeName == "wasteland") { _deco.prob = _deco.prob / 250f; } } /*if (name == "deco_remnant_wood_01" || name == "deco_remnant_wood_02" || name == "deco_remnant_stone_01" || name == "deco_remnant_stone_02" || name == "deco_remnant_stone_03" || name == "deco_remnant_stone_04" || name == "deco_remnant_stone_05" ) { if (__instance.m_sBiomeName == "wasteland") { //_deco.prob = _deco.prob * 100f; _deco.prob = 1f; ; } } if (name == "deco_rubble_stone_01" || name == "deco_rubble_stone_02" || name == "deco_rubble_stone_03" || name == "deco_rubble_stone_04" || name == "deco_rubble_stone_05" || name == "deco_rubble_stone_06" || name == "deco_rubble_stone_07" || name == "deco_rubble_stone_08" || name == "deco_rubble_stone_09" || name == "deco_rubble_stone_10" ) { if (__instance.m_sBiomeName == "wasteland") { _deco.prob = _deco.prob * 15f; } } if (name.Contains("zztong_rubble")) { _deco.prob = 0f; }*/ multiplier = float.Parse(RebirthVariables.customVehicleDensityMultiplier) / 100; if (name == "carsRandomHelperBiome") { //Log.Out("BiomeDefinitionPatches-AddDecoBlock BIOME: " + __instance.m_sBiomeName); //Log.Out("BiomeDefinitionPatches-AddDecoBlock multiplier: " + multiplier); //Log.Out("BiomeDefinitionPatches-AddDecoBlock BEFORE prob: " + _deco.prob); _deco.prob = _deco.prob * multiplier; if (__instance.m_sBiomeName == "wasteland") { _deco.prob = _deco.prob * 3; } //Log.Out("BiomeDefinitionPatches-AddDecoBlock AFTER prob: " + _deco.prob); } } if (Block.BlocksLoaded && _deco.blockValue.Block != null && _deco.blockValue.Block.IsDistantDecoration) __instance.m_DistantDecoBlocks.Add(_deco); __instance.m_DecoBlocks.Add(_deco); return false; } } }