Files
UltimateFishing/Assets/Scripts/Assembly-UnityScript/tree_output_class.cs
2026-02-21 16:45:37 +08:00

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 + ")";
}
}
}