128 lines
5.0 KiB
C#
128 lines
5.0 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|