255 lines
7.5 KiB
C#
255 lines
7.5 KiB
C#
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<Vector3> objects_placed;
|
|
|
|
public int placed;
|
|
|
|
[NonSerialized]
|
|
public object_output_class placed_reference;
|
|
|
|
public List<Vector3> objects_placed_rot;
|
|
|
|
public List<object_class> @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<Vector3>();
|
|
objects_placed_rot = new List<Vector3>();
|
|
@object = new List<object_class>();
|
|
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;
|
|
}
|
|
}
|