Instantly share code, notes, and snippets.

Embed
What would you like to do?
Sets amount of tree variations and calculates equal probability. Thanks to TPB for making it work.
//----------------------------------------------------------------
// Tree Variation Amount Changer
// Set amount of Tree variations.
// If you are increasing the amount, previous variations will be preserved.
// If decreasing, all variations will be removed!
var variations = 12; //CHANGE THIS
var asset = ToolsModifierControl.toolController.m_editPrefabInfo as TreeInfo;
if(variations!=asset.m_variations.Length) {
TreeInfo.Variation[] temp = new TreeInfo.Variation[variations];
for(int i = 0; i < temp.Length; i++) temp[i] = new TreeInfo.Variation();
if(asset.m_variations.Length<variations) asset.m_variations.CopyTo(temp, 0);
asset.m_variations = temp;
UnityEngine.Object.FindObjectOfType<DecorationPropertiesPanel>().Refresh(); }
else Debug.LogWarning("Amount of variations already is " + variations.ToString());
//----------------------------------------------------------------
// Tree Variation Equal Probability Calculator
// Automatically calculate equal probability for all variations.
// The formula is 100 divided by (variation amount + 1), then rounded down.
// Empty variations can't have probability,
// so run this after you have added all your variations.
var asset = ToolsModifierControl.toolController.m_editPrefabInfo as TreeInfo;
var variations = asset.m_variations.Length;
var probability = (int)Math.Floor(100f/(variations+1));
for(uint i = 0; i < variations; i++) asset.m_variations[i].m_probability=probability;
UnityEngine.Object.FindObjectOfType<DecorationPropertiesPanel>().Refresh();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment