169 lines
4.1 KiB
C#
169 lines
4.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
[Serializable]
|
|
public class tree_output_class
|
|
{
|
|
public bool active;
|
|
|
|
public Color color_tree;
|
|
|
|
public bool foldout;
|
|
|
|
public float strength;
|
|
|
|
public bool interface_display;
|
|
|
|
public bool icon_display;
|
|
|
|
public bool trees_active;
|
|
|
|
public bool trees_foldout;
|
|
|
|
public bool terrain_tree_assigned;
|
|
|
|
public string tree_text;
|
|
|
|
public float scale;
|
|
|
|
public List<tree_class> tree;
|
|
|
|
public value_class tree_value;
|
|
|
|
public int placed;
|
|
|
|
[NonSerialized]
|
|
public tree_output_class placed_reference;
|
|
|
|
public tree_output_class()
|
|
{
|
|
color_tree = new Color(2f, 2f, 2f, 1f);
|
|
foldout = true;
|
|
strength = 1f;
|
|
interface_display = true;
|
|
icon_display = true;
|
|
trees_active = true;
|
|
trees_foldout = true;
|
|
tree_text = "Tree:";
|
|
scale = 1f;
|
|
tree = new List<tree_class>();
|
|
tree_value = new value_class();
|
|
}
|
|
|
|
public virtual void set_scale(tree_class tree1, int tree_number, bool all)
|
|
{
|
|
for (int i = 0; i < tree.Count; i++)
|
|
{
|
|
if (tree_value.active[i] || all)
|
|
{
|
|
if (i != tree_number)
|
|
{
|
|
tree[i].link_start = tree1.link_start;
|
|
tree[i].link_end = tree1.link_end;
|
|
tree[i].width_start = tree1.width_start;
|
|
tree[i].width_end = tree1.width_end;
|
|
tree[i].height_start = tree1.height_start;
|
|
tree[i].height_end = tree1.height_end;
|
|
tree[i].unlink = tree1.unlink;
|
|
tree[i].random_position = tree1.random_position;
|
|
tree[i].height = tree1.height;
|
|
tree[i].raycast = tree1.raycast;
|
|
tree[i].layerMask = tree1.layerMask;
|
|
tree[i].ray_length = tree1.ray_length;
|
|
tree[i].cast_height = tree1.cast_height;
|
|
tree[i].ray_radius = tree1.ray_radius;
|
|
tree[i].ray_direction = tree1.ray_direction;
|
|
tree[i].raycast_mode = tree1.raycast_mode;
|
|
}
|
|
if (!(tree[i].color_tree[0] >= 1.5f))
|
|
{
|
|
tree[i].color_tree = tree[i].color_tree + new Color(0.5f, 0.5f, 0.5f, 0f);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public virtual void set_distance(tree_class tree1, int tree_number, bool all)
|
|
{
|
|
for (int i = 0; i < tree.Count; i++)
|
|
{
|
|
if (tree_value.active[i] || all)
|
|
{
|
|
if (i != tree_number)
|
|
{
|
|
tree[i].min_distance = tree1.min_distance;
|
|
tree[i].distance_level = tree1.distance_level;
|
|
tree[i].distance_mode = tree1.distance_mode;
|
|
tree[i].distance_rotation_mode = tree1.distance_rotation_mode;
|
|
tree[i].distance_include_scale = tree1.distance_include_scale;
|
|
tree[i].distance_include_scale_group = tree1.distance_include_scale_group;
|
|
}
|
|
if (!(tree[i].color_tree[0] >= 1.5f))
|
|
{
|
|
tree[i].color_tree = tree[i].color_tree + new Color(0.5f, 0.5f, 0.5f, 0f);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public virtual void add_tree(int tree_number, terraincomposer_save script, bool new_filter)
|
|
{
|
|
tree.Insert(tree_number, new tree_class(script, new_filter));
|
|
tree_value.add_value(tree_number, 50f);
|
|
set_tree_text();
|
|
}
|
|
|
|
public virtual void erase_tree(int tree_number, terraincomposer_save script)
|
|
{
|
|
if (tree.Count > 0)
|
|
{
|
|
script.erase_filters(tree[tree_number].prefilter);
|
|
tree.RemoveAt(tree_number);
|
|
tree_value.erase_value(tree_number);
|
|
set_tree_text();
|
|
}
|
|
}
|
|
|
|
public virtual void clear_tree(terraincomposer_save script)
|
|
{
|
|
int count = tree.Count;
|
|
for (int i = 0; i < count; i++)
|
|
{
|
|
erase_tree(tree.Count - 1, script);
|
|
}
|
|
}
|
|
|
|
public virtual void swap_tree(int tree_number, int tree_number2)
|
|
{
|
|
if (tree_number2 > -1 && tree_number2 < tree.Count)
|
|
{
|
|
tree_class value = tree[tree_number];
|
|
float num = tree_value.value[tree_number];
|
|
tree[tree_number] = tree[tree_number2];
|
|
tree[tree_number2] = value;
|
|
if (!(tree[tree_number].color_tree[0] >= 1.5f))
|
|
{
|
|
tree[tree_number].color_tree = tree[tree_number].color_tree + new Color(0.5f, 0.5f, 0.5f, 0f);
|
|
}
|
|
if (!(tree[tree_number2].color_tree[0] >= 1.5f))
|
|
{
|
|
tree[tree_number2].color_tree = tree[tree_number2].color_tree + new Color(0.5f, 0.5f, 0.5f, 0f);
|
|
}
|
|
tree_value.swap_value(tree_number, tree_number2);
|
|
}
|
|
}
|
|
|
|
public virtual void set_tree_text()
|
|
{
|
|
if (tree.Count > 1)
|
|
{
|
|
tree_text = "Trees(" + tree.Count + ")";
|
|
}
|
|
else
|
|
{
|
|
tree_text = "Tree(" + tree.Count + ")";
|
|
}
|
|
}
|
|
}
|