|
|
|
@ -76,19 +76,28 @@ func refresh_animation_lib():
|
|
|
|
|
|
|
|
|
|
|
|
func refresh_mesh_library(path_list: Array, with_clear: bool = false):
|
|
|
|
func refresh_mesh_library(path_list: Array, with_clear: bool = false):
|
|
|
|
print("refresh_mesh_library")
|
|
|
|
print("refresh_mesh_library")
|
|
|
|
var default_shape_full: Array[Variant] = [load("res://resource/mesh_library/default_shape_full.tres") as Shape3D, Transform3D.IDENTITY]
|
|
|
|
var default_shape_normal_full: Array[Variant] = [load("res://resource/mesh_library/default_shape_normal_full.tres") as Shape3D, Transform3D.IDENTITY]
|
|
|
|
var default_shape_half: Array[Variant] = [load("res://resource/mesh_library/default_shape_half.tres") as Shape3D, Transform3D.IDENTITY]
|
|
|
|
var default_shape_normal_half: Array[Variant] = [load("res://resource/mesh_library/default_shape_normal_half.tres") as Shape3D, Transform3D.IDENTITY]
|
|
|
|
var mesh_library_level: MeshLibrary = load("res://resource/mesh_library/mesh_library_level.tres") as MeshLibrary
|
|
|
|
var default_shape_normal_stair1: Array[Variant] = [load("res://resource/mesh_library/default_shape_normal_stair1.tres") as Shape3D, Transform3D.IDENTITY]
|
|
|
|
var mesh_library_ground: MeshLibrary = load("res://resource/mesh_library/mesh_library_ground.tres") as MeshLibrary
|
|
|
|
var default_shape_normal_stair2: Array[Variant] = [load("res://resource/mesh_library/default_shape_normal_stair2.tres") as Shape3D, Transform3D.IDENTITY]
|
|
|
|
var mesh_library_level_id_list: Array[int] = []
|
|
|
|
var default_shape_large_full: Array[Variant] = [load("res://resource/mesh_library/default_shape_large_full.tres") as Shape3D, Transform3D.IDENTITY]
|
|
|
|
var mesh_library_ground_id_list: Array[int] = []
|
|
|
|
var default_shape_large_half: Array[Variant] = [load("res://resource/mesh_library/default_shape_large_half.tres") as Shape3D, Transform3D.IDENTITY]
|
|
|
|
|
|
|
|
var default_shape_large_stair1: Array[Variant] = [load("res://resource/mesh_library/default_shape_large_stair1.tres") as Shape3D, Transform3D.IDENTITY]
|
|
|
|
|
|
|
|
var default_shape_large_stair2: Array[Variant] = [load("res://resource/mesh_library/default_shape_large_stair2.tres") as Shape3D, Transform3D.IDENTITY]
|
|
|
|
|
|
|
|
var mesh_library_level: MeshLibrary = load("res://resource/mesh_library/mesh_library_level.tres") as MeshLibrary
|
|
|
|
|
|
|
|
var mesh_library_ground: MeshLibrary = load("res://resource/mesh_library/mesh_library_ground.tres") as MeshLibrary
|
|
|
|
|
|
|
|
var mesh_library_level_id_list: Array[int] = []
|
|
|
|
|
|
|
|
var mesh_library_ground_id_list: Array[int] = []
|
|
|
|
|
|
|
|
|
|
|
|
for file_name_full in path_list:
|
|
|
|
for file_name_full in path_list:
|
|
|
|
var mesh_name = file_name_full.get_file().split('-')[0].trim_suffix('.vox')
|
|
|
|
var mesh_name = file_name_full.get_file().split('-')[0].trim_suffix('.vox')
|
|
|
|
print(mesh_name)
|
|
|
|
print(mesh_name)
|
|
|
|
|
|
|
|
var is_ground = mesh_name.begins_with("g_")
|
|
|
|
|
|
|
|
if is_ground:
|
|
|
|
|
|
|
|
mesh_name = mesh_name.trim_prefix("g_")
|
|
|
|
var mesh: Mesh = load(file_name_full) as Mesh
|
|
|
|
var mesh: Mesh = load(file_name_full) as Mesh
|
|
|
|
var mesh_library: MeshLibrary = mesh_library_ground if mesh_name.begins_with("g_") else mesh_library_level
|
|
|
|
var mesh_library: MeshLibrary = mesh_library_ground if is_ground else mesh_library_level
|
|
|
|
var mesh_library_id_list: Array[int] = mesh_library_ground_id_list if mesh_name.begins_with("g_") else mesh_library_level_id_list
|
|
|
|
var mesh_library_id_list: Array[int] = mesh_library_ground_id_list if is_ground else mesh_library_level_id_list
|
|
|
|
var mesh_id: int = mesh_library.find_item_by_name(mesh_name)
|
|
|
|
var mesh_id: int = mesh_library.find_item_by_name(mesh_name)
|
|
|
|
if mesh_id == -1:
|
|
|
|
if mesh_id == -1:
|
|
|
|
mesh_id = mesh_library.get_last_unused_item_id()
|
|
|
|
mesh_id = mesh_library.get_last_unused_item_id()
|
|
|
|
@ -96,21 +105,22 @@ func refresh_mesh_library(path_list: Array, with_clear: bool = false):
|
|
|
|
mesh_library_id_list.append(mesh_id)
|
|
|
|
mesh_library_id_list.append(mesh_id)
|
|
|
|
mesh_library.set_item_name(mesh_id, mesh_name)
|
|
|
|
mesh_library.set_item_name(mesh_id, mesh_name)
|
|
|
|
mesh_library.set_item_mesh(mesh_id, mesh)
|
|
|
|
mesh_library.set_item_mesh(mesh_id, mesh)
|
|
|
|
if mesh_name.begins_with("f_"):
|
|
|
|
|
|
|
|
#full cube
|
|
|
|
var name_prefix = mesh_name.split("_")[0] if mesh_name.contains("_") else mesh_name
|
|
|
|
mesh_library.set_item_shapes(mesh_id, default_shape_full)
|
|
|
|
var item_shapes: Array
|
|
|
|
elif mesh_name.begins_with("h_"):
|
|
|
|
match name_prefix:
|
|
|
|
#half cube
|
|
|
|
"f": item_shapes = default_shape_normal_full if not is_ground else default_shape_large_full
|
|
|
|
mesh_library.set_item_shapes(mesh_id, default_shape_half)
|
|
|
|
"h": item_shapes = default_shape_normal_half if not is_ground else default_shape_large_half
|
|
|
|
else:
|
|
|
|
"s1": item_shapes = default_shape_normal_stair1 if not is_ground else default_shape_large_stair1
|
|
|
|
#custom shape
|
|
|
|
"s2": item_shapes = default_shape_normal_stair2 if not is_ground else default_shape_large_stair2
|
|
|
|
var new_shape: Array[Variant] = [mesh.create_convex_shape(), Transform3D.IDENTITY]
|
|
|
|
_: item_shapes = [mesh.create_convex_shape(), Transform3D.IDENTITY]
|
|
|
|
mesh_library.set_item_shapes(mesh_id, new_shape)
|
|
|
|
if item_shapes:
|
|
|
|
|
|
|
|
mesh_library.set_item_shapes(mesh_id, item_shapes)
|
|
|
|
_save_mesh_library(mesh_library_level, mesh_library_level_id_list, with_clear)
|
|
|
|
_save_mesh_library(mesh_library_level, mesh_library_level_id_list, with_clear)
|
|
|
|
_save_mesh_library(mesh_library_ground, mesh_library_ground_id_list, with_clear)
|
|
|
|
_save_mesh_library(mesh_library_ground, mesh_library_ground_id_list, with_clear)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func _save_mesh_library( mesh_library: MeshLibrary, id_list: Array, with_clear: bool):
|
|
|
|
func _save_mesh_library(mesh_library: MeshLibrary, id_list: Array, with_clear: bool):
|
|
|
|
if with_clear:
|
|
|
|
if with_clear:
|
|
|
|
var ids: PackedInt32Array = mesh_library.get_item_list()
|
|
|
|
var ids: PackedInt32Array = mesh_library.get_item_list()
|
|
|
|
for id in ids:
|
|
|
|
for id in ids:
|
|
|
|
|