using System; using System.Collections.Generic; using UnityEngine; [Serializable] public class object_output_class { public object active; public bool foldout; public Color color_object; public line_placement_class line_placement; public object_mode_enum object_mode; public bool icon_display; public bool objects_active; public bool objects_foldout; public float strength; public bool interface_display; public bool object_set; public string object_text; public float scale; public float min_distance_x; public float min_distance_z; public float min_distance_x_rot; public float min_distance_z_rot; public bool group_rotation; public bool group_rotation_steps; public Vector3 group_rotation_step; public List objects_placed; public int placed; [NonSerialized] public object_output_class placed_reference; public List objects_placed_rot; public List @object; public value_class object_value; [NonSerialized] public rotation_map_class rotation_map; public bool search_active; public bool search_erase_doubles; public Transform search_object; public object_output_class() { foldout = true; color_object = new Color(2f, 2f, 2f, 1f); icon_display = true; objects_active = true; objects_foldout = true; strength = 1f; interface_display = true; object_text = "Object:"; scale = 1f; objects_placed = new List(); objects_placed_rot = new List(); @object = new List(); object_value = new value_class(); rotation_map = new rotation_map_class(); } public virtual void set_settings(object_class object1, int object_number, bool all) { for (int i = 0; i < @object.Count; i++) { if (object_value.active[i] || all) { @object[i].count_mesh(); Debug.Log(@object[i].object1.name); if (i != object_number) { @object[i].parent = object1.parent; @object[i].parent_clear = object1.parent_clear; @object[i].combine = object1.combine; @object[i].combine_total = object1.combine_total; @object[i].place_max = object1.place_max; @object[i].place_maximum = object1.place_maximum; @object[i].place_maximum_total = object1.place_maximum_total; } if (!(@object[i].color_object[0] <= 0.5f)) { @object[i].color_object = @object[i].color_object + new Color(-0.5f, 0f, -0.5f, 0f); } } } } public virtual void set_transform(object_class object1, int object_number, bool all) { for (int i = 0; i < @object.Count; i++) { if (object_value.active[i] || all) { if (i != object_number) { @object[i].scale_start = object1.scale_start; @object[i].scale_end = object1.scale_end; @object[i].scale_link = object1.scale_link; @object[i].scale_link_start_y = object1.scale_link_start_y; @object[i].scale_link_end_y = object1.scale_link_end_y; @object[i].scale_link_start_z = object1.scale_link_start_z; @object[i].scale_link_end_z = object1.scale_link_end_z; @object[i].rotation_start = object1.rotation_start; @object[i].rotation_end = object1.rotation_end; @object[i].rotation_link = object1.rotation_link; @object[i].rotation_link_start_y = object1.rotation_link_start_y; @object[i].rotation_link_end_y = object1.rotation_link_end_y; @object[i].rotation_link_start_z = object1.rotation_link_start_z; @object[i].rotation_link_end_z = object1.rotation_link_end_z; @object[i].terrain_height = object1.terrain_height; @object[i].position_start = object1.position_start; @object[i].position_end = object1.position_end; @object[i].unlink_y = object1.unlink_y; @object[i].unlink_z = object1.unlink_z; @object[i].random_position = object1.random_position; @object[i].scaleCurve = new AnimationCurve(object1.scaleCurve.keys); @object[i].lookAtObject = object1.lookAtObject; @object[i].includeScale = object1.includeScale; @object[i].raycast = object1.raycast; @object[i].layerMask = object1.layerMask; @object[i].ray_length = object1.ray_length; @object[i].cast_height = object1.cast_height; @object[i].ray_radius = object1.ray_radius; @object[i].ray_direction = object1.ray_direction; @object[i].raycast_mode = object1.raycast_mode; } if (!(@object[i].color_object[0] <= 0.5f)) { @object[i].color_object = @object[i].color_object + new Color(-0.5f, 0f, -0.5f, 0f); } } } } public virtual void set_rotation(object_class object1, int object_number, bool all) { for (int i = 0; i < @object.Count; i++) { if (object_value.active[i] || all) { if (i != object_number) { @object[i].rotation_steps = object1.rotation_steps; @object[i].rotation_step = object1.rotation_step; @object[i].rotation_map = copy_rotation_map(object1.rotation_map); } if (!(@object[i].color_object[0] <= 0.5f)) { @object[i].color_object = @object[i].color_object + new Color(-0.5f, 0f, -0.5f, 0f); } } } } public virtual void set_distance(object_class object1, int object_number, bool all) { for (int i = 0; i < @object.Count; i++) { if (object_value.active[i] || all) { if (i != object_number) { @object[i].min_distance = object1.min_distance; @object[i].distance_level = object1.distance_level; @object[i].distance_mode = object1.distance_mode; @object[i].distance_rotation_mode = object1.distance_rotation_mode; @object[i].distance_include_scale = object1.distance_include_scale; @object[i].distance_include_scale_group = object1.distance_include_scale_group; } if (!(@object[i].color_object[0] <= 0.5f)) { @object[i].color_object = @object[i].color_object + new Color(-0.5f, 0f, -0.5f, 0f); } } } } public virtual void swap_object(int object_number, int object_number2) { if (object_number2 > -1 && object_number2 < @object.Count) { object_class value = @object[object_number]; float value2 = object_value.value[object_number]; bool value3 = object_value.active[object_number]; @object[object_number] = @object[object_number2]; @object[object_number2] = value; if (!(@object[object_number].color_object[0] <= 0.5f)) { @object[object_number].color_object = @object[object_number].color_object + new Color(-0.5f, 0f, -0.5f, 0f); } if (!(@object[object_number2].color_object[0] <= 0.5f)) { @object[object_number2].color_object = @object[object_number2].color_object + new Color(-0.5f, 0f, -0.5f, 0f); } object_value.value[object_number] = object_value.value[object_number2]; object_value.value[object_number2] = value2; object_value.active[object_number] = object_value.active[object_number2]; object_value.active[object_number2] = value3; object_value.calc_value(); } } public virtual void set_object_text() { if (@object.Count > 1) { object_text = "Objects(" + @object.Count + ")"; } else { object_text = "Object"; } } public virtual rotation_map_class copy_rotation_map(rotation_map_class rotation_map) { rotation_map_class rotation_map_class2 = null; GameObject gameObject = new GameObject(); save_template save_template2 = (save_template)gameObject.AddComponent(typeof(save_template)); save_template2.rotation_map = rotation_map; GameObject gameObject2 = UnityEngine.Object.Instantiate(gameObject); UnityEngine.Object.DestroyImmediate(gameObject); save_template2 = (save_template)gameObject2.GetComponent(typeof(save_template)); rotation_map_class2 = save_template2.rotation_map; UnityEngine.Object.DestroyImmediate(gameObject2); return rotation_map_class2; } }