Compare commits
10 Commits
b7891f58da
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5a1c02aa15 | ||
| 933bd98a4f | |||
| f8a0208362 | |||
| 351567fe07 | |||
| 32c5e8fa9b | |||
| 1c8e3d7314 | |||
| 0a3919ce4c | |||
| 703285f555 | |||
| c208d069bb | |||
| 36c648cfe5 |
BIN
.sconsign.dblite
BIN
blender/glock 17 gen 1/Screenshot From 2025-12-27 17-24-49.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
blender/glock 17 gen 1/glock-17-front.jpg
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
blender/glock 17 gen 1/glock-17-reference-iso.jpg
Normal file
|
After Width: | Height: | Size: 104 KiB |
BIN
blender/soup can/soup_can.blend
Normal file
BIN
blender/soup can/soup_can.blend1
Normal file
BIN
blender/soup can/soup_can.glb
Normal file
BIN
blender/soup can/texture/AORoughMetal.png
Normal file
|
After Width: | Height: | Size: 941 KiB |
BIN
blender/soup can/texture/BaseColor.png
Normal file
|
After Width: | Height: | Size: 427 KiB |
BIN
blender/soup can/texture/Normal.png
Normal file
|
After Width: | Height: | Size: 1.5 MiB |
@@ -321,6 +321,7 @@ func generate_entity_surfaces(entity_index: int) -> void:
|
|||||||
var current_metadata_index: int = 0
|
var current_metadata_index: int = 0
|
||||||
var texture_names_metadata: Array[StringName] = []
|
var texture_names_metadata: Array[StringName] = []
|
||||||
var textures_metadata: PackedInt32Array = []
|
var textures_metadata: PackedInt32Array = []
|
||||||
|
var uv_metadata: PackedVector2Array = []
|
||||||
var vertices_metadata: PackedVector3Array = []
|
var vertices_metadata: PackedVector3Array = []
|
||||||
var normals_metadata: PackedVector3Array = []
|
var normals_metadata: PackedVector3Array = []
|
||||||
var positions_metadata: PackedVector3Array = []
|
var positions_metadata: PackedVector3Array = []
|
||||||
@@ -371,7 +372,6 @@ func generate_entity_surfaces(entity_index: int) -> void:
|
|||||||
|
|
||||||
# Begin fresh index offset for this subarray
|
# Begin fresh index offset for this subarray
|
||||||
var index_offset: int = 0
|
var index_offset: int = 0
|
||||||
|
|
||||||
for face in faces:
|
for face in faces:
|
||||||
# FACE SCOPE BEGIN
|
# FACE SCOPE BEGIN
|
||||||
|
|
||||||
@@ -423,6 +423,13 @@ func generate_entity_surfaces(entity_index: int) -> void:
|
|||||||
face_index_metadata_map[face] = PackedInt32Array(range(current_metadata_index, current_metadata_index + num_tris))
|
face_index_metadata_map[face] = PackedInt32Array(range(current_metadata_index, current_metadata_index + num_tris))
|
||||||
current_metadata_index += num_tris
|
current_metadata_index += num_tris
|
||||||
|
|
||||||
|
# ADD UV METADATA
|
||||||
|
for i in face.indices:
|
||||||
|
var v = face.vertices[i]
|
||||||
|
var tx_sz: Vector2 = texture_sizes.get(face.texture, Vector2.ONE * map_settings.inverse_scale_factor)
|
||||||
|
uv_metadata.append(FuncGodotUtil.get_face_vertex_uv(v, face, tx_sz))
|
||||||
|
print(uv_metadata)
|
||||||
|
|
||||||
# Append face data to surface array
|
# Append face data to surface array
|
||||||
for i in face.vertices.size():
|
for i in face.vertices.size():
|
||||||
# TODO: Mesh metadata may be generated here.
|
# TODO: Mesh metadata may be generated here.
|
||||||
@@ -470,6 +477,7 @@ func generate_entity_surfaces(entity_index: int) -> void:
|
|||||||
entity.mesh_metadata["normals"] = normals_metadata
|
entity.mesh_metadata["normals"] = normals_metadata
|
||||||
if def.add_face_position_metadata:
|
if def.add_face_position_metadata:
|
||||||
entity.mesh_metadata["positions"] = positions_metadata
|
entity.mesh_metadata["positions"] = positions_metadata
|
||||||
|
entity.mesh_metadata["uvs"] = uv_metadata
|
||||||
|
|
||||||
entity.mesh = mesh
|
entity.mesh = mesh
|
||||||
|
|
||||||
|
|||||||
BIN
demo/assets/models/9mm_bullet/9mmbullet.glb
Normal file
42
demo/assets/models/9mm_bullet/9mmbullet.glb.import
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="scene"
|
||||||
|
importer_version=1
|
||||||
|
type="PackedScene"
|
||||||
|
uid="uid://dgw06me4h5oxg"
|
||||||
|
path="res://.godot/imported/9mmbullet.glb-08fa90d0ac9f92cf2f79e93940481a63.scn"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/models/9mm_bullet/9mmbullet.glb"
|
||||||
|
dest_files=["res://.godot/imported/9mmbullet.glb-08fa90d0ac9f92cf2f79e93940481a63.scn"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
nodes/root_type=""
|
||||||
|
nodes/root_name=""
|
||||||
|
nodes/root_script=null
|
||||||
|
nodes/apply_root_scale=true
|
||||||
|
nodes/root_scale=1.0
|
||||||
|
nodes/import_as_skeleton_bones=false
|
||||||
|
nodes/use_name_suffixes=true
|
||||||
|
nodes/use_node_type_suffixes=true
|
||||||
|
meshes/ensure_tangents=true
|
||||||
|
meshes/generate_lods=true
|
||||||
|
meshes/create_shadow_meshes=true
|
||||||
|
meshes/light_baking=1
|
||||||
|
meshes/lightmap_texel_size=0.2
|
||||||
|
meshes/force_disable_compression=false
|
||||||
|
skins/use_named_skins=true
|
||||||
|
animation/import=true
|
||||||
|
animation/fps=30
|
||||||
|
animation/trimming=false
|
||||||
|
animation/remove_immutable_tracks=true
|
||||||
|
animation/import_rest_as_RESET=false
|
||||||
|
import_script/path=""
|
||||||
|
materials/extract=0
|
||||||
|
materials/extract_format=0
|
||||||
|
materials/extract_path=""
|
||||||
|
_subresources={}
|
||||||
|
gltf/naming_version=2
|
||||||
|
gltf/embedded_image_handling=1
|
||||||
BIN
demo/assets/models/9mm_bullet/9mmbullet_AORoughnessMetal.png
Normal file
|
After Width: | Height: | Size: 2.0 MiB |
@@ -0,0 +1,44 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cndcfcwu6kc3m"
|
||||||
|
path.s3tc="res://.godot/imported/9mmbullet_AORoughnessMetal.png-d39a736faebc99b118eacd21e4401fbf.s3tc.ctex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
generator_parameters={
|
||||||
|
"md5": "c44e0919528fbe67cd51c60bebb57656"
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/models/9mm_bullet/9mmbullet_AORoughnessMetal.png"
|
||||||
|
dest_files=["res://.godot/imported/9mmbullet_AORoughnessMetal.png-d39a736faebc99b118eacd21e4401fbf.s3tc.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=2
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=8
|
||||||
|
roughness/src_normal="res://assets/models/9mm_bullet/9mmbullet_Normal.png"
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=0
|
||||||
BIN
demo/assets/models/9mm_bullet/9mmbullet_BaseColor.png
Normal file
|
After Width: | Height: | Size: 515 KiB |
44
demo/assets/models/9mm_bullet/9mmbullet_BaseColor.png.import
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://xi6j7dju4ogx"
|
||||||
|
path.s3tc="res://.godot/imported/9mmbullet_BaseColor.png-eda905325610325ff7a1e4b3e05065c5.s3tc.ctex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
generator_parameters={
|
||||||
|
"md5": "a98860476b04dc276cd7a0b40a5e28ef"
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/models/9mm_bullet/9mmbullet_BaseColor.png"
|
||||||
|
dest_files=["res://.godot/imported/9mmbullet_BaseColor.png-eda905325610325ff7a1e4b3e05065c5.s3tc.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=2
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=0
|
||||||
BIN
demo/assets/models/9mm_bullet/9mmbullet_Normal.png
Normal file
|
After Width: | Height: | Size: 371 KiB |
44
demo/assets/models/9mm_bullet/9mmbullet_Normal.png.import
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://sjkw4fe2mcvm"
|
||||||
|
path.s3tc="res://.godot/imported/9mmbullet_Normal.png-0fdb4f7e4b8191fc5d65179f440a90a7.s3tc.ctex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
generator_parameters={
|
||||||
|
"md5": "c40796455614717c9c461d32f8b4f0a8"
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/models/9mm_bullet/9mmbullet_Normal.png"
|
||||||
|
dest_files=["res://.godot/imported/9mmbullet_Normal.png-0fdb4f7e4b8191fc5d65179f440a90a7.s3tc.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=2
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=1
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=1
|
||||||
|
roughness/src_normal="res://assets/models/9mm_bullet/9mmbullet_Normal.png"
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=0
|
||||||
BIN
demo/assets/models/soup_can/soup_can.glb
Normal file
42
demo/assets/models/soup_can/soup_can.glb.import
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="scene"
|
||||||
|
importer_version=1
|
||||||
|
type="PackedScene"
|
||||||
|
uid="uid://04ag2c3lcicg"
|
||||||
|
path="res://.godot/imported/soup_can.glb-789b0529ee38a7f623de5835c9b37487.scn"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/models/soup_can/soup_can.glb"
|
||||||
|
dest_files=["res://.godot/imported/soup_can.glb-789b0529ee38a7f623de5835c9b37487.scn"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
nodes/root_type=""
|
||||||
|
nodes/root_name=""
|
||||||
|
nodes/root_script=null
|
||||||
|
nodes/apply_root_scale=true
|
||||||
|
nodes/root_scale=1.0
|
||||||
|
nodes/import_as_skeleton_bones=false
|
||||||
|
nodes/use_name_suffixes=true
|
||||||
|
nodes/use_node_type_suffixes=true
|
||||||
|
meshes/ensure_tangents=true
|
||||||
|
meshes/generate_lods=true
|
||||||
|
meshes/create_shadow_meshes=true
|
||||||
|
meshes/light_baking=1
|
||||||
|
meshes/lightmap_texel_size=0.2
|
||||||
|
meshes/force_disable_compression=false
|
||||||
|
skins/use_named_skins=true
|
||||||
|
animation/import=false
|
||||||
|
animation/fps=30
|
||||||
|
animation/trimming=false
|
||||||
|
animation/remove_immutable_tracks=true
|
||||||
|
animation/import_rest_as_RESET=false
|
||||||
|
import_script/path=""
|
||||||
|
materials/extract=0
|
||||||
|
materials/extract_format=0
|
||||||
|
materials/extract_path=""
|
||||||
|
_subresources={}
|
||||||
|
gltf/naming_version=2
|
||||||
|
gltf/embedded_image_handling=1
|
||||||
BIN
demo/assets/models/soup_can/soup_can_AORoughMetal.png
Normal file
|
After Width: | Height: | Size: 707 KiB |
44
demo/assets/models/soup_can/soup_can_AORoughMetal.png.import
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://ck5tahw45mdyg"
|
||||||
|
path.s3tc="res://.godot/imported/soup_can_AORoughMetal.png-43e2632063d2d19b56c9d0c621da1d76.s3tc.ctex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
generator_parameters={
|
||||||
|
"md5": "35b96d6af8c926765a1b0dfedb661ac0"
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/models/soup_can/soup_can_AORoughMetal.png"
|
||||||
|
dest_files=["res://.godot/imported/soup_can_AORoughMetal.png-43e2632063d2d19b56c9d0c621da1d76.s3tc.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=2
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=0
|
||||||
BIN
demo/assets/models/soup_can/soup_can_BaseColor.png
Normal file
|
After Width: | Height: | Size: 368 KiB |
44
demo/assets/models/soup_can/soup_can_BaseColor.png.import
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dfacteo6e26uj"
|
||||||
|
path.s3tc="res://.godot/imported/soup_can_BaseColor.png-6727e8f8d3ac7d832b3d936fe9e3ce00.s3tc.ctex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
generator_parameters={
|
||||||
|
"md5": "1860f397e89d1e452194ed3fd622504d"
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/models/soup_can/soup_can_BaseColor.png"
|
||||||
|
dest_files=["res://.godot/imported/soup_can_BaseColor.png-6727e8f8d3ac7d832b3d936fe9e3ce00.s3tc.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=2
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=0
|
||||||
BIN
demo/assets/models/soup_can/soup_can_Normal.png
Normal file
|
After Width: | Height: | Size: 201 KiB |
44
demo/assets/models/soup_can/soup_can_Normal.png.import
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://ct7pciueuljsr"
|
||||||
|
path.s3tc="res://.godot/imported/soup_can_Normal.png-ecfc9a38b9ec7072ea5bc1197d66919c.s3tc.ctex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
generator_parameters={
|
||||||
|
"md5": "eeb4f586a588a0287b05a6d4499c3676"
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/models/soup_can/soup_can_Normal.png"
|
||||||
|
dest_files=["res://.godot/imported/soup_can_Normal.png-ecfc9a38b9ec7072ea5bc1197d66919c.s3tc.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=2
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=1
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=1
|
||||||
|
roughness/src_normal="res://assets/models/soup_can/soup_can_Normal.png"
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=0
|
||||||
@@ -10,23 +10,47 @@ enum ExtrudeDirection {
|
|||||||
@export_category("TrechBroom Generated Values")
|
@export_category("TrechBroom Generated Values")
|
||||||
@export var verts2d: PackedVector2Array
|
@export var verts2d: PackedVector2Array
|
||||||
@export var meshInstance3d: MeshInstance3D
|
@export var meshInstance3d: MeshInstance3D
|
||||||
@export var extrusion_direction: ExtrudeDirection
|
|
||||||
@export var depth: float = 0.1
|
@export var depth: float = 0.1
|
||||||
@export var depth_position_offset: Vector3 = Vector3.ZERO
|
@export var original_vertices = PackedVector3Array()
|
||||||
|
@export var original_normals = PackedVector3Array()
|
||||||
|
@export var original_uvs = PackedVector2Array()
|
||||||
|
@export_category("TrechBroom User Values")
|
||||||
|
@export var extrusion_direction: ExtrudeDirection
|
||||||
|
@export var hole_proximity: float
|
||||||
@export var edge_non_fracture: float = 0.1
|
@export var edge_non_fracture: float = 0.1
|
||||||
@onready var parentNode = get_node("..")
|
|
||||||
|
var parentNode
|
||||||
|
var inner_rtree: RectangleTree
|
||||||
|
|
||||||
var outer_polygon: PackedVector2Array
|
var outer_polygon: PackedVector2Array
|
||||||
var inner_polygons: Array[PackedVector2Array]
|
var inner_polygons: Holes
|
||||||
|
|
||||||
var static_body: StaticBody3D
|
var static_body: StaticBody3D
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
if Engine.is_editor_hint():
|
||||||
|
return
|
||||||
|
parentNode = get_node("..")
|
||||||
|
inner_polygons = Holes.new()
|
||||||
|
inner_rtree = RectangleTree.new()
|
||||||
|
outer_polygon = verts2d
|
||||||
|
_draw()
|
||||||
|
|
||||||
|
func _exit_tree() -> void:
|
||||||
|
if Engine.is_editor_hint():
|
||||||
|
return
|
||||||
|
inner_rtree.free()
|
||||||
|
|
||||||
func _func_godot_apply_properties(entity_properties: Dictionary) -> void:
|
func _func_godot_apply_properties(entity_properties: Dictionary) -> void:
|
||||||
meshInstance3d = _find_mesh_body()
|
meshInstance3d = _find_mesh_body()
|
||||||
var verticies = meshInstance3d.mesh.surface_get_arrays(0)[Mesh.ARRAY_VERTEX]
|
var verticies = meshInstance3d.mesh.surface_get_arrays(0)[Mesh.ARRAY_VERTEX]
|
||||||
|
original_vertices = self.get_meta("func_godot_mesh_data")["vertices"]
|
||||||
|
original_normals = self.get_meta("func_godot_mesh_data")["normals"]
|
||||||
|
original_uvs = self.get_meta("func_godot_mesh_data")["uvs"]
|
||||||
|
|
||||||
extrusion_direction = entity_properties["extrude_direction"]
|
extrusion_direction = entity_properties["extrude_direction"]
|
||||||
|
hole_proximity = entity_properties["hole_proximity"]
|
||||||
|
edge_non_fracture = entity_properties["edge_non_fractured"]
|
||||||
|
|
||||||
var depth_min: float
|
var depth_min: float
|
||||||
var depth_max: float
|
var depth_max: float
|
||||||
@@ -43,8 +67,6 @@ func _func_godot_apply_properties(entity_properties: Dictionary) -> void:
|
|||||||
elif d < depth_min:
|
elif d < depth_min:
|
||||||
depth_min = d
|
depth_min = d
|
||||||
depth = -(abs(depth_min) + abs(depth_max))
|
depth = -(abs(depth_min) + abs(depth_max))
|
||||||
|
|
||||||
depth_position_offset = -(Vector3.BACK * (depth/2))
|
|
||||||
elif extrusion_direction == ExtrudeDirection.RIGHT:
|
elif extrusion_direction == ExtrudeDirection.RIGHT:
|
||||||
for vert in verticies:
|
for vert in verticies:
|
||||||
verts_2d.append(Vector2(vert.z, vert.y))
|
verts_2d.append(Vector2(vert.z, vert.y))
|
||||||
@@ -56,8 +78,6 @@ func _func_godot_apply_properties(entity_properties: Dictionary) -> void:
|
|||||||
elif d < depth_min:
|
elif d < depth_min:
|
||||||
depth_min = d
|
depth_min = d
|
||||||
depth = -(abs(depth_min) + abs(depth_max))
|
depth = -(abs(depth_min) + abs(depth_max))
|
||||||
|
|
||||||
depth_position_offset = Vector3.RIGHT * (depth/2)
|
|
||||||
elif extrusion_direction == ExtrudeDirection.UP:
|
elif extrusion_direction == ExtrudeDirection.UP:
|
||||||
for vert in verticies:
|
for vert in verticies:
|
||||||
verts_2d.append(Vector2(vert.x, vert.z))
|
verts_2d.append(Vector2(vert.x, vert.z))
|
||||||
@@ -70,56 +90,49 @@ func _func_godot_apply_properties(entity_properties: Dictionary) -> void:
|
|||||||
depth_min = d
|
depth_min = d
|
||||||
depth = -(abs(depth_min) + abs(depth_max))
|
depth = -(abs(depth_min) + abs(depth_max))
|
||||||
|
|
||||||
depth_position_offset = (Vector3.UP * (depth/2))
|
|
||||||
|
|
||||||
|
|
||||||
var outer_boudary = Geometry2D.convex_hull(verts_2d)
|
var outer_boudary = Geometry2D.convex_hull(verts_2d)
|
||||||
verts2d = outer_boudary
|
verts2d = outer_boudary
|
||||||
|
|
||||||
func _ready() -> void:
|
|
||||||
if Engine.is_editor_hint():
|
|
||||||
return
|
|
||||||
|
|
||||||
outer_polygon = verts2d
|
|
||||||
_draw()
|
|
||||||
|
|
||||||
func _draw():
|
func _draw():
|
||||||
var vector_indexes = GeoPolyTriangulization.triangulate(outer_polygon, inner_polygons)
|
var vector_indexes = GeoPolyTriangulization.triangulate(outer_polygon, inner_polygons.get_holes())
|
||||||
var vectors = []
|
var vectors = []
|
||||||
|
|
||||||
vectors.append_array(outer_polygon)
|
vectors.append_array(outer_polygon)
|
||||||
for ip in inner_polygons:
|
vectors.append_array(inner_polygons.get_hole_verticies())
|
||||||
vectors.append_array(ip)
|
|
||||||
|
|
||||||
var meshGenerator = GeoPolyMesh.new(vector_indexes, vectors, extrusion_direction, depth)
|
var meshGenerator = GeoPolyMesh.new(vector_indexes, vectors, extrusion_direction, original_vertices, original_uvs, original_normals, depth)
|
||||||
var commited_mesh = meshGenerator.commit_mesh(meshInstance3d.get_active_material(0))
|
var commited_mesh = meshGenerator.commit_mesh(meshInstance3d.get_active_material(0))
|
||||||
meshGenerator.free()
|
meshGenerator.free()
|
||||||
|
|
||||||
|
|
||||||
meshInstance3d.mesh = commited_mesh
|
meshInstance3d.mesh = commited_mesh
|
||||||
meshInstance3d.position += depth_position_offset
|
|
||||||
meshInstance3d.create_trimesh_collision()
|
meshInstance3d.create_trimesh_collision()
|
||||||
static_body = _find_static_body()
|
static_body = _find_static_body()
|
||||||
|
|
||||||
func _re_draw():
|
func _re_draw():
|
||||||
|
var vector_indexes = GeoPolyTriangulization.triangulate(outer_polygon, inner_polygons.get_holes())
|
||||||
|
|
||||||
|
var vectors = []
|
||||||
|
vectors.append_array(outer_polygon)
|
||||||
|
vectors.append_array(inner_polygons.get_hole_verticies())
|
||||||
|
|
||||||
|
WorkerThreadPool.add_task(_generate_mesh.bind(vector_indexes, vectors))
|
||||||
|
|
||||||
|
func _deffered_draw(mesh: Mesh, task_id: int):
|
||||||
|
if task_id:
|
||||||
|
WorkerThreadPool.wait_for_task_completion(task_id)
|
||||||
|
|
||||||
meshInstance3d.remove_child(static_body)
|
meshInstance3d.remove_child(static_body)
|
||||||
static_body.queue_free()
|
static_body.queue_free()
|
||||||
|
meshInstance3d.mesh = mesh
|
||||||
var vector_indexes = GeoPolyTriangulization.triangulate(outer_polygon, inner_polygons)
|
|
||||||
var vectors = []
|
|
||||||
|
|
||||||
vectors.append_array(outer_polygon)
|
|
||||||
for ip in inner_polygons:
|
|
||||||
vectors.append_array(ip)
|
|
||||||
|
|
||||||
var meshGenerator = GeoPolyMesh.new(vector_indexes, vectors, extrusion_direction, depth)
|
|
||||||
var commited_mesh = meshGenerator.commit_mesh(meshInstance3d.get_active_material(0))
|
|
||||||
meshGenerator.free()
|
|
||||||
|
|
||||||
meshInstance3d.mesh = commited_mesh
|
|
||||||
meshInstance3d.create_trimesh_collision()
|
meshInstance3d.create_trimesh_collision()
|
||||||
static_body = _find_static_body()
|
static_body = _find_static_body()
|
||||||
|
|
||||||
|
func _generate_mesh(vector_indexes: PackedInt32Array, vectors: PackedVector2Array):
|
||||||
|
var meshGenerator = GeoPolyMesh.new(vector_indexes, vectors, extrusion_direction, original_vertices, original_uvs, original_normals, depth)
|
||||||
|
var commited_mesh = meshGenerator.commit_mesh(meshInstance3d.get_active_material(0))
|
||||||
|
meshGenerator.free()
|
||||||
|
|
||||||
|
self.call_deferred("_deffered_draw", commited_mesh, WorkerThreadPool.get_caller_task_id())
|
||||||
|
|
||||||
func hit(position: Vector3):
|
func hit(position: Vector3):
|
||||||
var cutter = Cutter.circleCutter()
|
var cutter = Cutter.circleCutter()
|
||||||
@@ -135,13 +148,18 @@ func hit(position: Vector3):
|
|||||||
|
|
||||||
# translate the cutter
|
# translate the cutter
|
||||||
var hole_vectors = Transform2D(0, hole_vector2_offset) * cutter
|
var hole_vectors = Transform2D(0, hole_vector2_offset) * cutter
|
||||||
|
|
||||||
var draw = _add_hole(hole_vectors)
|
var draw = _add_hole(hole_vectors)
|
||||||
|
|
||||||
if draw:
|
if draw:
|
||||||
_re_draw()
|
_re_draw()
|
||||||
|
|
||||||
func _add_hole(new_hole: PackedVector2Array) -> bool:
|
func _add_hole(new_hole: PackedVector2Array) -> bool:
|
||||||
var values_to_remove = []
|
var ids_to_remove = []
|
||||||
|
|
||||||
|
var holes_id = []
|
||||||
|
for vector in new_hole:
|
||||||
|
holes_id.append_array(inner_rtree.query(vector))
|
||||||
|
|
||||||
# validate that the hole is valid
|
# validate that the hole is valid
|
||||||
var boundary_polygon = Geometry2D.offset_polygon(outer_polygon, -edge_non_fracture)
|
var boundary_polygon = Geometry2D.offset_polygon(outer_polygon, -edge_non_fracture)
|
||||||
@@ -151,24 +169,46 @@ func _add_hole(new_hole: PackedVector2Array) -> bool:
|
|||||||
return false
|
return false
|
||||||
|
|
||||||
var merged: PackedVector2Array = boundary_hole[0]
|
var merged: PackedVector2Array = boundary_hole[0]
|
||||||
for index in range(len(self.inner_polygons)):
|
|
||||||
var result = Geometry2D.merge_polygons(merged, self.inner_polygons[index])
|
for id in holes_id:
|
||||||
|
var result = Geometry2D.merge_polygons(merged, inner_polygons.get_hole(id).vectors)
|
||||||
|
|
||||||
if len(result) == 1:
|
if len(result) == 1:
|
||||||
merged = result[0]
|
merged = result[0]
|
||||||
values_to_remove.append(self.inner_polygons[index])
|
ids_to_remove.append(id)
|
||||||
elif len(result) > 1:
|
elif len(result) > 1:
|
||||||
# need to check that they have no overlapping area if they do clip
|
# need to check that they have no overlapping area if they do clip
|
||||||
var overlap = Geometry2D.intersect_polygons(result[0], result[1])
|
var overlap = Geometry2D.intersect_polygons(result[0], result[1])
|
||||||
|
|
||||||
if len(overlap) != 0:
|
if len(overlap) != 0:
|
||||||
merged = Geometry2D.clip_polygons(result[0], result[1])[0]
|
merged = Geometry2D.clip_polygons(result[0], result[1])[0]
|
||||||
values_to_remove.append(self.inner_polygons[index])
|
ids_to_remove.append(id)
|
||||||
|
|
||||||
for i in values_to_remove:
|
for id in ids_to_remove:
|
||||||
inner_polygons.erase(i)
|
inner_rtree.remove(id)
|
||||||
|
inner_polygons.remove_hole(id)
|
||||||
|
|
||||||
inner_polygons.append(merged)
|
var hole = inner_polygons.add_hole(merged)
|
||||||
|
var bound_rect = UTIL.get_bounding_rect(merged)
|
||||||
|
inner_rtree.add(bound_rect.position, bound_rect.end, hole.hole_id)
|
||||||
|
|
||||||
|
var hole_prox_boundary = bound_rect.grow(hole.area * 4)
|
||||||
|
var prox_holes_ids = inner_rtree.query_rect(hole_prox_boundary.position, hole_prox_boundary.end)
|
||||||
|
|
||||||
|
# any holes that are close in proximity convex hull
|
||||||
|
if len(prox_holes_ids) <= 1: # needs to be length 2 or more because it will always return the hole just created
|
||||||
|
return true
|
||||||
|
|
||||||
|
var proxmity_hole_vectors = []
|
||||||
|
for id in prox_holes_ids:
|
||||||
|
proxmity_hole_vectors.append_array(inner_polygons.get_hole(id).vectors)
|
||||||
|
inner_rtree.remove(id)
|
||||||
|
inner_polygons.remove_hole(id)
|
||||||
|
|
||||||
|
var convex_vectors = Geometry2D.convex_hull(proxmity_hole_vectors)
|
||||||
|
hole = inner_polygons.add_hole(convex_vectors)
|
||||||
|
bound_rect = UTIL.get_bounding_rect(convex_vectors)
|
||||||
|
inner_rtree.add(bound_rect.position, bound_rect.end, hole.hole_id)
|
||||||
|
|
||||||
return true
|
return true
|
||||||
|
|
||||||
|
|||||||
29
demo/assets/scripts/environment/destructable/faces.gd
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
extends RefCounted
|
||||||
|
|
||||||
|
class_name Faces
|
||||||
|
|
||||||
|
var faces: Array[Face]
|
||||||
|
|
||||||
|
func _init(verts: PackedVector3Array, uvs: PackedVector2Array, normals: PackedVector3Array) -> void:
|
||||||
|
assert(len(verts) == len(uvs), "number of verts vs uvs do not match")
|
||||||
|
assert(len(normals)*3 == len(verts), "missing normal data")
|
||||||
|
|
||||||
|
for i in range(0, len(normals)):
|
||||||
|
var start_index = i*3
|
||||||
|
|
||||||
|
var v0 = verts[start_index]
|
||||||
|
var v1 = verts[start_index+1]
|
||||||
|
var v2 = verts[start_index+2]
|
||||||
|
|
||||||
|
var varray = PackedVector3Array([v0, v1, v2])
|
||||||
|
|
||||||
|
var u0 = uvs[start_index]
|
||||||
|
var u1 = uvs[start_index+1]
|
||||||
|
var u2 = uvs[start_index+2]
|
||||||
|
|
||||||
|
var uarray = PackedVector2Array([u0, u1, u2])
|
||||||
|
|
||||||
|
self.faces.append(Face.new(varray, uarray, normals[i]))
|
||||||
|
|
||||||
|
func get_faces() -> Array[Face]:
|
||||||
|
return faces
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://bw2u2opw8uy82
|
||||||
@@ -9,6 +9,8 @@ var uvs = PackedVector2Array()
|
|||||||
var normals = PackedVector3Array()
|
var normals = PackedVector3Array()
|
||||||
var array_mesh = ArrayMesh.new()
|
var array_mesh = ArrayMesh.new()
|
||||||
|
|
||||||
|
var original_face_data: Faces
|
||||||
|
|
||||||
var _v_indexes = []
|
var _v_indexes = []
|
||||||
var _v_points = []
|
var _v_points = []
|
||||||
|
|
||||||
@@ -17,24 +19,25 @@ var edges = {}
|
|||||||
var depth_vector: Vector3
|
var depth_vector: Vector3
|
||||||
var extrude_direction: DestructableWall.ExtrudeDirection
|
var extrude_direction: DestructableWall.ExtrudeDirection
|
||||||
|
|
||||||
func _init(vector_indexes: PackedInt32Array, vector_points: PackedVector2Array, extrude_direction: DestructableWall.ExtrudeDirection, depth: float = -0.1):
|
func _init(vector_indexes: PackedInt32Array, vector_points: PackedVector2Array, extrude_direction: DestructableWall.ExtrudeDirection, original_vectors: PackedVector3Array, original_uvs: PackedVector2Array, original_normals: PackedVector3Array, depth: float = -0.1):
|
||||||
assert(len(vector_indexes) % 3 == 0 && len(vector_indexes) != 0, "Number of vertex points is not divisible by 3, invalid triangle verticies")
|
assert(len(vector_indexes) % 3 == 0 && len(vector_indexes) != 0, "Number of vertex points is not divisible by 3, invalid triangle verticies")
|
||||||
surface_array.resize(Mesh.ARRAY_MAX)
|
surface_array.resize(Mesh.ARRAY_MAX)
|
||||||
|
original_face_data = Faces.new(original_vectors, original_uvs, original_normals)
|
||||||
|
|
||||||
self._v_indexes = vector_indexes
|
self._v_indexes = vector_indexes
|
||||||
self.extrude_direction = extrude_direction
|
self.extrude_direction = extrude_direction
|
||||||
|
|
||||||
if extrude_direction == DestructableWall.ExtrudeDirection.BACK:
|
if extrude_direction == DestructableWall.ExtrudeDirection.BACK:
|
||||||
for point in vector_points:
|
|
||||||
self._v_points.append(Vector3(point.x, point.y, 0))
|
|
||||||
depth_vector = Vector3.BACK * depth
|
depth_vector = Vector3.BACK * depth
|
||||||
elif extrude_direction == DestructableWall.ExtrudeDirection.RIGHT:
|
|
||||||
for point in vector_points:
|
for point in vector_points:
|
||||||
self._v_points.append(Vector3(0, point.y, point.x))
|
self._v_points.append(Vector3(point.x, point.y, -depth/2))
|
||||||
depth_vector = -Vector3.RIGHT * depth
|
elif extrude_direction == DestructableWall.ExtrudeDirection.RIGHT:
|
||||||
|
depth_vector = Vector3.LEFT * depth
|
||||||
|
for point in vector_points:
|
||||||
|
self._v_points.append(Vector3(depth/2, point.y, point.x))
|
||||||
elif extrude_direction == DestructableWall.ExtrudeDirection.UP:
|
elif extrude_direction == DestructableWall.ExtrudeDirection.UP:
|
||||||
for point in vector_points:
|
for point in vector_points:
|
||||||
self._v_points.append(Vector3(point.x, 0, point.y))
|
self._v_points.append(Vector3(point.x, depth/2, point.y))
|
||||||
depth_vector = Vector3.DOWN * depth
|
depth_vector = Vector3.DOWN * depth
|
||||||
|
|
||||||
|
|
||||||
@@ -71,6 +74,38 @@ func _pre_process_edges():
|
|||||||
else:
|
else:
|
||||||
self.edges[[min_index, max_index]] += 1
|
self.edges[[min_index, max_index]] += 1
|
||||||
|
|
||||||
|
func in_triag(u, v, w):
|
||||||
|
return u >= 0 and u <= 1 and v >= 0 and v <= 1 and w >= 0 and w <= 1
|
||||||
|
|
||||||
|
func _reduce_significance(value: float):
|
||||||
|
return snapped(value, 0.0001)
|
||||||
|
|
||||||
|
func _new_interpolated_uv_point(new_vector: Vector3, normal: Vector3) -> Vector2:
|
||||||
|
# get faces that have the same normal e.g faces that the point can fall into
|
||||||
|
var faces = self.original_face_data.get_faces()
|
||||||
|
|
||||||
|
var possible_faces: Array[Face] = []
|
||||||
|
|
||||||
|
for f in faces:
|
||||||
|
if normal.dot(f.normal) > 0.99:
|
||||||
|
possible_faces.append(f)
|
||||||
|
|
||||||
|
for ps in possible_faces:
|
||||||
|
var ps_face_verts = ps.vectors
|
||||||
|
var b_points = Geometry3D.get_triangle_barycentric_coords(new_vector, ps_face_verts[0], ps_face_verts[1], ps_face_verts[2])
|
||||||
|
|
||||||
|
var u = self._reduce_significance(b_points[0])
|
||||||
|
var v = self._reduce_significance(b_points[1])
|
||||||
|
var w = self._reduce_significance(b_points[2])
|
||||||
|
|
||||||
|
|
||||||
|
var uv_coords = ps.uvs
|
||||||
|
if in_triag(u, v, w):
|
||||||
|
return (uv_coords[0] * u) + (uv_coords[1] * v) + (uv_coords[2] * w)
|
||||||
|
|
||||||
|
# for destructable walls, if we couldn't interpolate a uv, this is fine
|
||||||
|
return Vector2.ZERO
|
||||||
|
|
||||||
func get_loops():
|
func get_loops():
|
||||||
var unvisted_edges = self.get_outline_edge()
|
var unvisted_edges = self.get_outline_edge()
|
||||||
var loops = []
|
var loops = []
|
||||||
@@ -167,34 +202,16 @@ func _draw_sides():
|
|||||||
|
|
||||||
var n1 = self._calc_triangle_normal(v2, v1, v0)
|
var n1 = self._calc_triangle_normal(v2, v1, v0)
|
||||||
self.verts.append_array([v0, v1, v2, v1, v3, v2])
|
self.verts.append_array([v0, v1, v2, v1, v3, v2])
|
||||||
_append_uvs4(v0, v1, v2, v3, n1)
|
_append_uvs3(v0, v1, v2, n1)
|
||||||
|
_append_uvs3(v1, v3, v2, n1)
|
||||||
self.normals.append_array([n1, n1, n1, n1, n1, n1])
|
self.normals.append_array([n1, n1, n1, n1, n1, n1])
|
||||||
|
|
||||||
func _append_uvs4(v0: Vector3, v1: Vector3, v2: Vector3, v3: Vector3, normal: Vector3):
|
|
||||||
if normal == Vector3.BACK or normal == Vector3.FORWARD:
|
|
||||||
self.uvs.append_array([Vector2(-v0.x, -v0.y), Vector2(-v1.x, -v1.y), Vector2(-v2.x, -v2.y), Vector2(-v1.x, -v1.y), Vector2(-v3.x, -v3.y), Vector2(-v2.x, -v2.y)])
|
|
||||||
return
|
|
||||||
elif normal == Vector3.RIGHT or normal == Vector3.LEFT:
|
|
||||||
self.uvs.append_array([Vector2(-v0.z, -v0.y), Vector2(-v1.z, -v1.y), Vector2(-v2.z, -v2.y), Vector2(-v1.z, -v1.y), Vector2(-v3.z, -v3.y), Vector2(-v2.z, -v2.y)])
|
|
||||||
return
|
|
||||||
elif normal == Vector3.UP or normal == Vector3.DOWN:
|
|
||||||
self.uvs.append_array([Vector2(-v0.x, -v0.z), Vector2(-v1.x, -v1.z), Vector2(-v2.x, -v2.z), Vector2(-v1.x, -v1.z), Vector2(-v3.x, -v3.z), Vector2(-v2.x, -v2.z)])
|
|
||||||
return
|
|
||||||
|
|
||||||
self.uvs.append_array([Vector2(-v0.x, -v0.y), Vector2(-v1.x, -v1.y), Vector2(-v2.x, -v2.y), Vector2(-v1.x, -v1.y), Vector2(-v3.x, -v3.y), Vector2(-v2.x, -v2.y)])
|
|
||||||
|
|
||||||
func _append_uvs3(v0: Vector3, v1: Vector3, v2: Vector3, normal: Vector3):
|
func _append_uvs3(v0: Vector3, v1: Vector3, v2: Vector3, normal: Vector3):
|
||||||
if normal == Vector3.BACK or normal == Vector3.FORWARD:
|
var uv0 = self._new_interpolated_uv_point(v0, normal)
|
||||||
self.uvs.append_array([Vector2(-v0.x, -v0.y), Vector2(-v1.x, -v1.y), Vector2(-v2.x, -v2.y)])
|
var uv1 = self._new_interpolated_uv_point(v1, normal)
|
||||||
return
|
var uv2 = self._new_interpolated_uv_point(v2, normal)
|
||||||
elif normal == Vector3.RIGHT or normal == Vector3.LEFT:
|
|
||||||
self.uvs.append_array([Vector2(-v0.z, -v0.y), Vector2(-v1.z, -v1.y), Vector2(-v2.z, -v2.y)])
|
|
||||||
return
|
|
||||||
elif normal == Vector3.UP or normal == Vector3.DOWN:
|
|
||||||
self.uvs.append_array([Vector2(-v0.x, -v0.z), Vector2(-v1.x, -v1.z), Vector2(-v2.x, -v2.z)])
|
|
||||||
return
|
|
||||||
|
|
||||||
self.uvs.append_array([Vector2(-v0.x, -v0.y), Vector2(-v1.x, -v1.y), Vector2(-v2.x, -v2.y)])
|
self.uvs.append_array([uv0, uv1, uv2])
|
||||||
|
|
||||||
# front face
|
# front face
|
||||||
func _draw_mesh():
|
func _draw_mesh():
|
||||||
@@ -204,7 +221,6 @@ func _draw_mesh():
|
|||||||
|
|
||||||
var normal = self._calc_triangle_normal(vector3C, vector3B, vector3A)
|
var normal = self._calc_triangle_normal(vector3C, vector3B, vector3A)
|
||||||
|
|
||||||
|
|
||||||
self.verts.append_array([vector3A, vector3B, vector3C])
|
self.verts.append_array([vector3A, vector3B, vector3C])
|
||||||
_append_uvs3(vector3A, vector3B, vector3C, normal)
|
_append_uvs3(vector3A, vector3B, vector3C, normal)
|
||||||
|
|
||||||
|
|||||||
34
demo/assets/scripts/environment/destructable/holes.gd
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
extends RefCounted
|
||||||
|
|
||||||
|
class_name Holes
|
||||||
|
|
||||||
|
var holes: Dictionary[int, Hole]
|
||||||
|
var counter: int = 0
|
||||||
|
|
||||||
|
func _init() -> void:
|
||||||
|
self.holes = {}
|
||||||
|
|
||||||
|
func add_hole(vectors: PackedVector2Array) -> Hole:
|
||||||
|
var hole = Hole.new(counter, vectors)
|
||||||
|
self.holes[counter] = hole
|
||||||
|
counter += 1
|
||||||
|
|
||||||
|
return hole
|
||||||
|
|
||||||
|
func remove_hole(hole_id: int):
|
||||||
|
self.holes.erase(hole_id)
|
||||||
|
|
||||||
|
func get_hole(hole_id: int) -> Hole:
|
||||||
|
return self.holes[hole_id]
|
||||||
|
|
||||||
|
func get_hole_verticies() -> PackedVector2Array:
|
||||||
|
var return_val: PackedVector2Array = []
|
||||||
|
for hole in holes.values():
|
||||||
|
return_val.append_array(hole.vectors)
|
||||||
|
return return_val
|
||||||
|
|
||||||
|
func get_holes() -> Array[PackedVector2Array]:
|
||||||
|
var return_val: Array[PackedVector2Array] = []
|
||||||
|
for hole in holes.values():
|
||||||
|
return_val.append(hole.vectors)
|
||||||
|
return return_val
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://dt73l1q8fgdyo
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
extends Resource
|
||||||
|
|
||||||
|
class_name Face
|
||||||
|
|
||||||
|
var vectors: PackedVector3Array
|
||||||
|
var uvs: PackedVector2Array
|
||||||
|
var normal: Vector3
|
||||||
|
|
||||||
|
func _init(vectors: PackedVector3Array, uvs: PackedVector2Array, normal: Vector3):
|
||||||
|
assert(len(vectors) % 3 == 0, "not a face")
|
||||||
|
assert(len(uvs) == len(vectors), "missing uvs for vectors")
|
||||||
|
self.vectors = vectors.duplicate()
|
||||||
|
self.uvs = uvs.duplicate()
|
||||||
|
self.normal = normal
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://bto8ov1esykmk
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
extends Resource
|
||||||
|
|
||||||
|
class_name Hole
|
||||||
|
|
||||||
|
var hole_id: int
|
||||||
|
var vectors: PackedVector2Array # verticies
|
||||||
|
var area: float
|
||||||
|
|
||||||
|
|
||||||
|
func _init(hole_id: int, vectors: PackedVector2Array):
|
||||||
|
self.hole_id = hole_id
|
||||||
|
self.vectors = vectors
|
||||||
|
|
||||||
|
self.area = UTIL.get_polygon_area(self.vectors)
|
||||||
|
|
||||||
|
func center():
|
||||||
|
var avg_vert = Vector2.ZERO
|
||||||
|
|
||||||
|
for v in vectors:
|
||||||
|
avg_vert += v
|
||||||
|
|
||||||
|
return avg_vert / len(vectors)
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://cqtnb878sls4b
|
||||||
@@ -14,3 +14,24 @@ static func chunk_array(arr: Array, chunk_size: int) -> Array:
|
|||||||
|
|
||||||
static func vector2_to_vector3(v: Vector2) -> Vector3:
|
static func vector2_to_vector3(v: Vector2) -> Vector3:
|
||||||
return Vector3(v.x, v.y, 0)
|
return Vector3(v.x, v.y, 0)
|
||||||
|
|
||||||
|
static func get_bounding_rect(vectors: PackedVector2Array) -> Rect2:
|
||||||
|
if vectors.is_empty():
|
||||||
|
return Rect2()
|
||||||
|
|
||||||
|
var rect := Rect2(vectors[0], Vector2.ZERO) # Initialize with the first point
|
||||||
|
for point in vectors:
|
||||||
|
rect = rect.expand(point)
|
||||||
|
|
||||||
|
# The 'position' of the Rect2 will be the minimum corner
|
||||||
|
return rect
|
||||||
|
|
||||||
|
static func get_polygon_area(vectors: PackedVector2Array) -> float:
|
||||||
|
var result := 0.0
|
||||||
|
var num_vertices := vectors.size()
|
||||||
|
|
||||||
|
for q in range(num_vertices):
|
||||||
|
var p = (q - 1 + num_vertices) % num_vertices
|
||||||
|
result += vectors[q].cross(vectors[p])
|
||||||
|
|
||||||
|
return abs(result * 0.5)
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 7.9 KiB |
|
Before Width: | Height: | Size: 11 KiB |
BIN
demo/bin/libgtriangulation.windows.template_debug.x86_64.dll
Normal file
BIN
demo/bin/liblibgtriangulation.windows.template_debug.x86_64.a
Normal file
@@ -1,8 +1,9 @@
|
|||||||
[gd_scene load_steps=7 format=3 uid="uid://yr0ymw4fpseu"]
|
[gd_scene load_steps=8 format=3 uid="uid://yr0ymw4fpseu"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://b2sgheexmeisv" path="res://levels/test.tscn" id="1_htrvu"]
|
[ext_resource type="PackedScene" uid="uid://b2sgheexmeisv" path="res://levels/test.tscn" id="1_htrvu"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bm4jq3rokgbn2" path="res://scenes/environment/world_environment.tscn" id="3_qd0o6"]
|
[ext_resource type="PackedScene" uid="uid://bm4jq3rokgbn2" path="res://scenes/environment/world_environment.tscn" id="3_qd0o6"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dh8v00nh02l1" path="res://scenes/player/player_controller.tscn" id="4_6lfjr"]
|
[ext_resource type="PackedScene" uid="uid://dh8v00nh02l1" path="res://scenes/player/player_controller.tscn" id="4_6lfjr"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://04ag2c3lcicg" path="res://assets/models/soup_can/soup_can.glb" id="4_qd0o6"]
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_q6206"]
|
[sub_resource type="Animation" id="Animation_q6206"]
|
||||||
resource_name = "Camera_Pan"
|
resource_name = "Camera_Pan"
|
||||||
@@ -96,3 +97,6 @@ libraries = {
|
|||||||
}
|
}
|
||||||
autoplay = "Camera_Pan"
|
autoplay = "Camera_Pan"
|
||||||
speed_scale = 0.5
|
speed_scale = 0.5
|
||||||
|
|
||||||
|
[node name="soup_can" parent="." instance=ExtResource("4_qd0o6")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.9325094, 1.736591, -0.044523656)
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
[ext_resource type="Script" uid="uid://42cwsrh6jyns" path="res://assets/scripts/environment/destructable/destructable_wall.gd" id="6_u45fp"]
|
[ext_resource type="Script" uid="uid://42cwsrh6jyns" path="res://assets/scripts/environment/destructable/destructable_wall.gd" id="6_u45fp"]
|
||||||
[ext_resource type="Material" uid="uid://ct5j4aamfudvd" path="res://trenchbroom/textures/tile043.tres" id="7_u45fp"]
|
[ext_resource type="Material" uid="uid://ct5j4aamfudvd" path="res://trenchbroom/textures/tile043.tres" id="7_u45fp"]
|
||||||
|
|
||||||
[sub_resource type="ArrayMesh" id="ArrayMesh_u45fp"]
|
[sub_resource type="ArrayMesh" id="ArrayMesh_2grjb"]
|
||||||
_surfaces = [{
|
_surfaces = [{
|
||||||
"aabb": AABB(-7, -0.5001221, -5.5, 14, 1.0001221, 11.5),
|
"aabb": AABB(-7, -0.5001221, -5.5, 14, 1.0001221, 11.5),
|
||||||
"attribute_data": PackedByteArray("AABgwQAAgL8AAGBBAACAvwAAYEEACIA/AABgwQAIgD8AAEBBAAiAPwD/L8EACIA/AP8vwQAAgL8AAEBBAACAvwAAQMEAAGBBAABAwQAAYMEA/y9BAABgwQD/L0EAAGBBAABAQQAAYEEA/y/BAABgQQD/L8EAAGDBAABAQQAAYMEAAEDBAACAvwD/L0EAAIC/AP8vQQAIgD8AAEDBAAiAPwAAYEEACIA/AABgwQAIgD8AAGDBAACAvwAAYEEAAIC/"),
|
"attribute_data": PackedByteArray("AABgwQAAgL8AAGBBAACAvwAAYEEACIA/AABgwQAIgD8AAEBBAAiAPwD/L8EACIA/AP8vwQAAgL8AAEBBAACAvwAAQMEAAGBBAABAwQAAYMEA/y9BAABgwQD/L0EAAGBBAABAQQAAYEEA/y/BAABgQQD/L8EAAGDBAABAQQAAYMEAAEDBAACAvwD/L0EAAIC/AP8vQQAIgD8AAEDBAAiAPwAAYEEACIA/AABgwQAIgD8AAGDBAACAvwAAYEEAAIC/"),
|
||||||
@@ -23,10 +23,10 @@ _surfaces = [{
|
|||||||
"vertex_data": PackedByteArray("AADgQAAAAD8AALDAAADgwAAAAD8AALDAAADgwAAIAL8AALDAAADgQAAIAL8AALDAAADgwAAIAL8AAMBAAADgwAAIAL8A/6/AAADgwAAAAD8A/6/AAADgwAAAAD8AAMBAAADgwAAAAL8AAMBAAADgQAAAAL8AAMBAAADgQAAAAL8A/6/AAADgwAAAAL8A/6/AAADgwAAAAD8AAMBAAADgwAAAAD8A/6/AAADgQAAAAD8A/6/AAADgQAAAAD8AAMBAAADgQAAAAD8AAMBAAADgQAAAAD8A/6/AAADgQAAIAL8A/6/AAADgQAAIAL8AAMBAAADgQAAIAL8AAMBAAADgwAAIAL8AAMBAAADgwAAAAD8AAMBAAADgQAAAAD8AAMBA/////wAA/7//////AAD/v/////8AAP+//////wAA/78AAP9//3//vwAA/3//f/+/AAD/f/9//78AAP9//3//v/9/AAD//////38AAP//////fwAA//////9/AAD//////3////9//7//f////3//v/9/////f/+//3////9//7////9//////////3//////////f/////////9///////9//3////+//3//f////7//f/9/////v/9//3////+/")
|
"vertex_data": PackedByteArray("AADgQAAAAD8AALDAAADgwAAAAD8AALDAAADgwAAIAL8AALDAAADgQAAIAL8AALDAAADgwAAIAL8AAMBAAADgwAAIAL8A/6/AAADgwAAAAD8A/6/AAADgwAAAAD8AAMBAAADgwAAAAL8AAMBAAADgQAAAAL8AAMBAAADgQAAAAL8A/6/AAADgwAAAAL8A/6/AAADgwAAAAD8AAMBAAADgwAAAAD8A/6/AAADgQAAAAD8A/6/AAADgQAAAAD8AAMBAAADgQAAAAD8AAMBAAADgQAAAAD8A/6/AAADgQAAIAL8A/6/AAADgQAAIAL8AAMBAAADgQAAIAL8AAMBAAADgwAAIAL8AAMBAAADgwAAAAD8AAMBAAADgQAAAAD8AAMBA/////wAA/7//////AAD/v/////8AAP+//////wAA/78AAP9//3//vwAA/3//f/+/AAD/f/9//78AAP9//3//v/9/AAD//////38AAP//////fwAA//////9/AAD//////3////9//7//f////3//v/9/////f/+//3////9//7////9//////////3//////////f/////////9///////9//3////+//3//f////7//f/9/////v/9//3////+/")
|
||||||
}]
|
}]
|
||||||
|
|
||||||
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_2grjb"]
|
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_qhvcx"]
|
||||||
points = PackedVector3Array(7, 0.5, 6, 7, -0.5, 6, -7, 0.5, 6, -7, -0.5, 6, 7, 0.5, -5.5, 7, -0.5, -5.5, -7, 0.5, -5.5, -7, -0.5, -5.5)
|
points = PackedVector3Array(7, 0.5, 6, 7, -0.5, 6, -7, 0.5, 6, -7, -0.5, 6, 7, 0.5, -5.5, 7, -0.5, -5.5, -7, 0.5, -5.5, -7, -0.5, -5.5)
|
||||||
|
|
||||||
[sub_resource type="ArrayMesh" id="ArrayMesh_qhvcx"]
|
[sub_resource type="ArrayMesh" id="ArrayMesh_kqvnf"]
|
||||||
_surfaces = [{
|
_surfaces = [{
|
||||||
"aabb": AABB(-7, -0.50006104, -5.75, 14, 1.0001221, 11.5),
|
"aabb": AABB(-7, -0.50006104, -5.75, 14, 1.0001221, 11.5),
|
||||||
"attribute_data": PackedByteArray("AABgwQAAgL8AAGBBAACAvwAAYEEACIA/AABgwQAIgD8AACBCAAiAPwAAiEEACIA/AACIQQAAgL8AACBCAACAvwAAIMIAAGBBAAAgwgAAYMEAAIjBAABgwQAAiMEAAGBBAAAgQgAAYEEAAIhBAABgQQAAiEEAAGDBAAAgQgAAYMEAACDCAACAvwAAiMEAAIC/AACIwQAIgD8AACDCAAiAPwAAYEEACIA/AABgwQAIgD8AAGDBAACAvwAAYEEAAIC/"),
|
"attribute_data": PackedByteArray("AABgwQAAgL8AAGBBAACAvwAAYEEACIA/AABgwQAIgD8AACBCAAiAPwAAiEEACIA/AACIQQAAgL8AACBCAACAvwAAIMIAAGBBAAAgwgAAYMEAAIjBAABgwQAAiMEAAGBBAAAgQgAAYEEAAIhBAABgQQAAiEEAAGDBAAAgQgAAYMEAACDCAACAvwAAiMEAAIC/AACIwQAIgD8AACDCAAiAPwAAYEEACIA/AABgwQAIgD8AAGDBAACAvwAAYEEAAIC/"),
|
||||||
@@ -41,40 +41,10 @@ _surfaces = [{
|
|||||||
"vertex_data": PackedByteArray("AADgQAAEAD8AALjAAADgwAAEAD8AALjAAADgwAAEAL8AALjAAADgQAAEAL8AALjAAADgwAAEAL8AALhAAADgwAAEAL8AALjAAADgwAAEAD8AALjAAADgwAAEAD8AALhAAADgwAD4/74AALhAAADgQAD4/74AALhAAADgQAD4/74AALjAAADgwAD4/74AALjAAADgwAAEAD8AALhAAADgwAAEAD8AALjAAADgQAAEAD8AALjAAADgQAAEAD8AALhAAADgQAAEAD8AALhAAADgQAAEAD8AALjAAADgQAAEAL8AALjAAADgQAAEAL8AALhAAADgQAAEAL8AALhAAADgwAAEAL8AALhAAADgwAAEAD8AALhAAADgQAAEAD8AALhA/////wAA/7//////AAD/v/////8AAP+//////wAA/78AAP9//3//vwAA/3//f/+/AAD/f/9//78AAP9//3//v/9/AAD//////38AAP//////fwAA//////9/AAD//////3////9//7//f////3//v/9/////f/+//3////9//7////9//////////3//////////f/////////9///////9//3////+//3//f////7//f/9/////v/9//3////+/")
|
"vertex_data": PackedByteArray("AADgQAAEAD8AALjAAADgwAAEAD8AALjAAADgwAAEAL8AALjAAADgQAAEAL8AALjAAADgwAAEAL8AALhAAADgwAAEAL8AALjAAADgwAAEAD8AALjAAADgwAAEAD8AALhAAADgwAD4/74AALhAAADgQAD4/74AALhAAADgQAD4/74AALjAAADgwAD4/74AALjAAADgwAAEAD8AALhAAADgwAAEAD8AALjAAADgQAAEAD8AALjAAADgQAAEAD8AALhAAADgQAAEAD8AALhAAADgQAAEAD8AALjAAADgQAAEAL8AALjAAADgQAAEAL8AALhAAADgQAAEAL8AALhAAADgwAAEAL8AALhAAADgwAAEAD8AALhAAADgQAAEAD8AALhA/////wAA/7//////AAD/v/////8AAP+//////wAA/78AAP9//3//vwAA/3//f/+/AAD/f/9//78AAP9//3//v/9/AAD//////38AAP//////fwAA//////9/AAD//////3////9//7//f////3//v/9/////f/+//3////9//7////9//////////3//////////f/////////9///////9//3////+//3//f////7//f/9/////v/9//3////+/")
|
||||||
}]
|
}]
|
||||||
|
|
||||||
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_kqvnf"]
|
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_eudka"]
|
||||||
points = PackedVector3Array(7, 0.50006104, 5.75, 7, -0.49993896, 5.75, -7, 0.50006104, 5.75, -7, -0.49993896, 5.75, 7, 0.50006104, -5.75, 7, -0.49993896, -5.75, -7, 0.50006104, -5.75, -7, -0.49993896, -5.75)
|
points = PackedVector3Array(7, 0.50006104, 5.75, 7, -0.49993896, 5.75, -7, 0.50006104, 5.75, -7, -0.49993896, 5.75, 7, 0.50006104, -5.75, 7, -0.49993896, -5.75, -7, 0.50006104, -5.75, -7, -0.49993896, -5.75)
|
||||||
|
|
||||||
[sub_resource type="ArrayMesh" id="ArrayMesh_eudka"]
|
[sub_resource type="ArrayMesh" id="ArrayMesh_rmkky"]
|
||||||
_surfaces = [{
|
|
||||||
"aabb": AABB(-1, -1.5, -0.5, 2, 3, 1),
|
|
||||||
"attribute_data": PackedByteArray("AACAPwAA4MAAAEDAAADgwAAAQMAAAIC/AACAPwAAgL8AAMDAAACAvwAAgMAAAIC/AACAwAAA4MAAAMDAAADgwAAAwMAAAEBAAADAwAAAgL8AAIDAAACAvwAAgMAAAEBAAADAQAAAQEAAAIBAAABAQAAAgEAAAIC/AADAQAAAgL8AAMBAAADgwAAAgEAAAODAAACAQAAAgL8AAMBAAACAvwAAgL8AAIC/AABAQAAAgL8AAEBAAADgwAAAgL8AAODA"),
|
|
||||||
"format": 34359742487,
|
|
||||||
"index_count": 36,
|
|
||||||
"index_data": PackedByteArray("AAABAAIAAAACAAMABAAFAAYABAAGAAcACAAJAAoACAAKAAsADAANAA4ADAAOAA8AEAARABIAEAASABMAFAAVABYAFAAWABcA"),
|
|
||||||
"material": ExtResource("7_u45fp"),
|
|
||||||
"name": "tile043",
|
|
||||||
"primitive": 3,
|
|
||||||
"uv_scale": Vector4(0, 0, 0, 0),
|
|
||||||
"vertex_count": 24,
|
|
||||||
"vertex_data": PackedByteArray("AACAPwAAwD8AAAC/AACAvwAAwD8AAAC/AACAvwAAwL8AAAC/AACAPwAAwL8AAAC/AACAvwAAwL8AAAA/AACAvwAAwL8AAAC/AACAvwAAwD8AAAC/AACAvwAAwD8AAAA/AACAvwAAwL8AAAA/AACAPwAAwL8AAAA/AACAPwAAwL8AAAC/AACAvwAAwL8AAAC/AACAvwAAwD8AAAA/AACAvwAAwD8AAAC/AACAPwAAwD8AAAC/AACAPwAAwD8AAAA/AACAPwAAwD8AAAA/AACAPwAAwD8AAAC/AACAPwAAwL8AAAC/AACAPwAAwL8AAAA/AACAPwAAwL8AAAA/AACAvwAAwL8AAAA/AACAvwAAwD8AAAA/AACAPwAAwD8AAAA//////////z//////////P/////////8//////////z8AAP9///8AAAAA/3///wAAAAD/f///AAAAAP9///8AAP9/AAD//////38AAP//////fwAA//////9/AAD//////3////9//7//f////3//v/9/////f/+//3////9//7////9//3//P////3//f/8/////f/9//z////9//3//P/9//38AAP8//3//fwAA/z//f/9/AAD/P/9//38AAP8/")
|
|
||||||
}]
|
|
||||||
|
|
||||||
[sub_resource type="ArrayMesh" id="ArrayMesh_qtvpr"]
|
|
||||||
_surfaces = [{
|
|
||||||
"aabb": AABB(-0.25, -1.5, -2.546875, 0.5, 3, 5.09375),
|
|
||||||
"attribute_data": PackedByteArray("AADgwAAA4MAA/v/AAADgwAD+/8AAAIC/AADgwAAAgL8AAFA/AACAvwD/L0EAAIC/AP8vQQAA4MAAAFA/AADgwAAAUD8A/v9AAABQPwAA4EAA/y9BAADgQAD/L0EA/v9AAABQvwD+/0AA/y/BAP7/QAD/L8EAAOBAAABQvwAA4EAAAFC/AADgwAD/L8EAAODAAP8vwQAAgL8AAFC/AACAvwAA4EAAAIC/AP7/QAAAgL8A/v9AAADgwAAA4EAAAODA"),
|
|
||||||
"format": 34359742487,
|
|
||||||
"index_count": 36,
|
|
||||||
"index_data": PackedByteArray("AAABAAIAAAACAAMABAAFAAYABAAGAAcACAAJAAoACAAKAAsADAANAA4ADAAOAA8AEAARABIAEAASABMAFAAVABYAFAAWABcA"),
|
|
||||||
"material": ExtResource("7_u45fp"),
|
|
||||||
"name": "tile043",
|
|
||||||
"primitive": 3,
|
|
||||||
"uv_scale": Vector4(0, 0, 0, 0),
|
|
||||||
"vertex_count": 24,
|
|
||||||
"vertex_data": PackedByteArray("AACAPgAAwD8AACPAAOB/vgAAwD8AACPAAOB/vgAAwL8AACPAAACAPgAAwL8AACPAAACAvgAAwL8AACNAAACAvgAAwL8A/iLAAACAvgAAwD8A/iLAAACAvgAAwD8AACNAAOB/vgAAwL8AACNAAACAPgAAwL8AACNAAACAPgAAwL8A/iLAAOB/vgAAwL8A/iLAAOB/vgAAwD8AACNAAOB/vgAAwD8A/iLAAACAPgAAwD8A/iLAAACAPgAAwD8AACNAAACAPgAAwD8AACNAAACAPgAAwD8A/iLAAACAPgAAwL8A/iLAAACAPgAAwL8AACNAAACAPgAAwL8AACNAAOB/vgAAwL8AACNAAOB/vgAAwD8AACNAAACAPgAAwD8AACNA/////////z//////////P/////////8//////////z8AAP9///8AAAAA/3///wAAAAD/f///AAAAAP9///8AAP9/AAD//////38AAP//////fwAA//////9/AAD//////3////9//7//f////3//v/9/////f/+//3////9//7////9//3//P////3//f/8/////f/9//z////9//3//P/9//38AAP8//3//fwAA/z//f/9/AAD/P/9//38AAP8/")
|
|
||||||
}]
|
|
||||||
|
|
||||||
[sub_resource type="ArrayMesh" id="ArrayMesh_drwxn"]
|
|
||||||
_surfaces = [{
|
_surfaces = [{
|
||||||
"aabb": AABB(-1.546875, -0.25, -2, 3.09375, 0.5, 4),
|
"aabb": AABB(-1.546875, -0.25, -2, 3.09375, 0.5, 4),
|
||||||
"attribute_data": PackedByteArray("AAC4QQAAAMAAgIZBAAAAwACAhkEAAIC/AAC4QQAAgL8AAKBAAACAvwAAUEEAAIC/AABQQQAAAMAAAKBAAAAAwAAAoEAAgIbBAACgQAAAuMEAAFBBAAC4wQAAUEEAgIbBAACgwACAhsEAAFDBAICGwQAAUMEAALjBAACgwAAAuMEAAKDAAAAAwAAAUMEAAADAAABQwQAAgL8AAKDAAACAvwAAuMEAAIC/AICGwQAAgL8AgIbBAAAAwAAAuMEAAADA"),
|
"attribute_data": PackedByteArray("AAC4QQAAAMAAgIZBAAAAwACAhkEAAIC/AAC4QQAAgL8AAKBAAACAvwAAUEEAAIC/AABQQQAAAMAAAKBAAAAAwAAAoEAAgIbBAACgQAAAuMEAAFBBAAC4wQAAUEEAgIbBAACgwACAhsEAAFDBAICGwQAAUMEAALjBAACgwAAAuMEAAKDAAAAAwAAAUMEAAADAAABQwQAAgL8AAKDAAACAvwAAuMEAAIC/AICGwQAAgL8AgIbBAAAAwAAAuMEAAADA"),
|
||||||
@@ -89,7 +59,7 @@ _surfaces = [{
|
|||||||
"vertex_data": PackedByteArray("AADGPwAAgD4AAADAAADGvwAAgD4AAADAAADGvwAAgL4AAADAAADGPwAAgL4AAADAAADGvwAAgL4AAABAAADGvwAAgL4AAADAAADGvwAAgD4AAADAAADGvwAAgD4AAABAAADGvwAAgL4AAABAAADGPwAAgL4AAABAAADGPwAAgL4AAADAAADGvwAAgL4AAADAAADGvwAAgD4AAABAAADGvwAAgD4AAADAAADGPwAAgD4AAADAAADGPwAAgD4AAABAAADGPwAAgD4AAABAAADGPwAAgD4AAADAAADGPwAAgL4AAADAAADGPwAAgL4AAABAAADGPwAAgL4AAABAAADGvwAAgL4AAABAAADGvwAAgD4AAABAAADGPwAAgD4AAABA/////////z//////////P/////////8//////////z8AAP9///8AAAAA/3///wAAAAD/f///AAAAAP9///8AAP9/AAD//////38AAP//////fwAA//////9/AAD//////3////9//7//f////3//v/9/////f/+//3////9//7////9//3//P////3//f/8/////f/9//z////9//3//P/9//38AAP8//3//fwAA/z//f/9/AAD/P/9//38AAP8/")
|
"vertex_data": PackedByteArray("AADGPwAAgD4AAADAAADGvwAAgD4AAADAAADGvwAAgL4AAADAAADGPwAAgL4AAADAAADGvwAAgL4AAABAAADGvwAAgL4AAADAAADGvwAAgD4AAADAAADGvwAAgD4AAABAAADGvwAAgL4AAABAAADGPwAAgL4AAABAAADGPwAAgL4AAADAAADGvwAAgL4AAADAAADGvwAAgD4AAABAAADGvwAAgD4AAADAAADGPwAAgD4AAADAAADGPwAAgD4AAABAAADGPwAAgD4AAABAAADGPwAAgD4AAADAAADGPwAAgL4AAADAAADGPwAAgL4AAABAAADGPwAAgL4AAABAAADGvwAAgL4AAABAAADGvwAAgD4AAABAAADGPwAAgD4AAABA/////////z//////////P/////////8//////////z8AAP9///8AAAAA/3///wAAAAD/f///AAAAAP9///8AAP9/AAD//////38AAP//////fwAA//////9/AAD//////3////9//7//f////3//v/9/////f/+//3////9//7////9//3//P////3//f/8/////f/9//z////9//3//P/9//38AAP8//3//fwAA/z//f/9/AAD/P/9//38AAP8/")
|
||||||
}]
|
}]
|
||||||
|
|
||||||
[sub_resource type="ArrayMesh" id="ArrayMesh_rmkky"]
|
[sub_resource type="ArrayMesh" id="ArrayMesh_lqn8c"]
|
||||||
_surfaces = [{
|
_surfaces = [{
|
||||||
"aabb": AABB(-1.046875, -1.5, -0.5, 2.09375, 3, 1),
|
"aabb": AABB(-1.046875, -1.5, -0.5, 2.09375, 3, 1),
|
||||||
"attribute_data": PackedByteArray("AADAQAAA4MAAAOg/AADgwAAA6D8AAIC/AADAQAAAgL8AAMDAAACAvwAAgMAAAIC/AACAwAAA4MAAAMDAAADgwAAAwMAAAOi/AADAwAAAwMAAAIDAAADAwAAAgMAAAOi/AADAQAAA6L8AAIBAAADovwAAgEAAAMDAAADAQAAAwMAAAMBAAADgwAAAgEAAAODAAACAQAAAgL8AAMBAAACAvwAAwMAAAIC/AADovwAAgL8AAOi/AADgwAAAwMAAAODA"),
|
"attribute_data": PackedByteArray("AADAQAAA4MAAAOg/AADgwAAA6D8AAIC/AADAQAAAgL8AAMDAAACAvwAAgMAAAIC/AACAwAAA4MAAAMDAAADgwAAAwMAAAOi/AADAwAAAwMAAAIDAAADAwAAAgMAAAOi/AADAQAAA6L8AAIBAAADovwAAgEAAAMDAAADAQAAAwMAAAMBAAADgwAAAgEAAAODAAACAQAAAgL8AAMBAAACAvwAAwMAAAIC/AADovwAAgL8AAOi/AADgwAAAwMAAAODA"),
|
||||||
@@ -104,10 +74,17 @@ _surfaces = [{
|
|||||||
"vertex_data": PackedByteArray("AACGPwAAwD8AAAC/AACGvwAAwD8AAAC/AACGvwAAwL8AAAC/AACGPwAAwL8AAAC/AACGvwAAwL8AAAA/AACGvwAAwL8AAAC/AACGvwAAwD8AAAC/AACGvwAAwD8AAAA/AACGvwAAwL8AAAA/AACGPwAAwL8AAAA/AACGPwAAwL8AAAC/AACGvwAAwL8AAAC/AACGvwAAwD8AAAA/AACGvwAAwD8AAAC/AACGPwAAwD8AAAC/AACGPwAAwD8AAAA/AACGPwAAwD8AAAA/AACGPwAAwD8AAAC/AACGPwAAwL8AAAC/AACGPwAAwL8AAAA/AACGPwAAwL8AAAA/AACGvwAAwL8AAAA/AACGvwAAwD8AAAA/AACGPwAAwD8AAAA//////////z//////////P/////////8//////////z8AAP9///8AAAAA/3///wAAAAD/f///AAAAAP9///8AAP9/AAD//////38AAP//////fwAA//////9/AAD//////3////9//7//f////3//v/9/////f/+//3////9//7////9//3//P////3//f/8/////f/9//z////9//3//P/9//38AAP8//3//fwAA/z//f/9/AAD/P/9//38AAP8/")
|
"vertex_data": PackedByteArray("AACGPwAAwD8AAAC/AACGvwAAwD8AAAC/AACGvwAAwL8AAAC/AACGPwAAwL8AAAC/AACGvwAAwL8AAAA/AACGvwAAwL8AAAC/AACGvwAAwD8AAAC/AACGvwAAwD8AAAA/AACGvwAAwL8AAAA/AACGPwAAwL8AAAA/AACGPwAAwL8AAAC/AACGvwAAwL8AAAC/AACGvwAAwD8AAAA/AACGvwAAwD8AAAC/AACGPwAAwD8AAAC/AACGPwAAwD8AAAA/AACGPwAAwD8AAAA/AACGPwAAwD8AAAC/AACGPwAAwL8AAAC/AACGPwAAwL8AAAA/AACGPwAAwL8AAAA/AACGvwAAwL8AAAA/AACGvwAAwD8AAAA/AACGPwAAwD8AAAA//////////z//////////P/////////8//////////z8AAP9///8AAAAA/3///wAAAAD/f///AAAAAP9///8AAP9/AAD//////38AAP//////fwAA//////9/AAD//////3////9//7//f////3//v/9/////f/+//3////9//7////9//3//P////3//f/8/////f/9//z////9//3//P/9//38AAP8//3//fwAA/z//f/9/AAD/P/9//38AAP8/")
|
||||||
}]
|
}]
|
||||||
|
|
||||||
[sub_resource type="ArrayMesh" id="ArrayMesh_epu3l"]
|
[sub_resource type="ArrayOccluder3D" id="ArrayOccluder3D_08uri"]
|
||||||
|
vertices = PackedVector3Array(1.046875, 1.5, -0.5, -1.046875, 1.5, -0.5, -1.046875, -1.5, -0.5, 1.046875, -1.5, -0.5, -1.046875, -1.5, 0.5, -1.046875, -1.5, -0.5, -1.046875, 1.5, -0.5, -1.046875, 1.5, 0.5, -1.046875, -1.5, 0.5, 1.046875, -1.5, 0.5, 1.046875, -1.5, -0.5, -1.046875, -1.5, -0.5, -1.046875, 1.5, 0.5, -1.046875, 1.5, -0.5, 1.046875, 1.5, -0.5, 1.046875, 1.5, 0.5, 1.046875, 1.5, 0.5, 1.046875, 1.5, -0.5, 1.046875, -1.5, -0.5, 1.046875, -1.5, 0.5, 1.046875, -1.5, 0.5, -1.046875, -1.5, 0.5, -1.046875, 1.5, 0.5, 1.046875, 1.5, 0.5)
|
||||||
|
indices = PackedInt32Array(0, 1, 2, 0, 2, 3, 4, 5, 6, 4, 6, 7, 8, 9, 10, 8, 10, 11, 12, 13, 14, 12, 14, 15, 16, 17, 18, 16, 18, 19, 20, 21, 22, 20, 22, 23)
|
||||||
|
|
||||||
|
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_fivcu"]
|
||||||
|
data = PackedVector3Array(1.046875, 1.5, -0.5, -1.046875, 1.5, -0.5, -1.046875, -1.5, -0.5, 1.046875, 1.5, -0.5, -1.046875, -1.5, -0.5, 1.046875, -1.5, -0.5, -1.046875, -1.5, 0.5, -1.046875, -1.5, -0.5, -1.046875, 1.5, -0.5, -1.046875, -1.5, 0.5, -1.046875, 1.5, -0.5, -1.046875, 1.5, 0.5, -1.046875, -1.5, 0.5, 1.046875, -1.5, 0.5, 1.046875, -1.5, -0.5, -1.046875, -1.5, 0.5, 1.046875, -1.5, -0.5, -1.046875, -1.5, -0.5, -1.046875, 1.5, 0.5, -1.046875, 1.5, -0.5, 1.046875, 1.5, -0.5, -1.046875, 1.5, 0.5, 1.046875, 1.5, -0.5, 1.046875, 1.5, 0.5, 1.046875, 1.5, 0.5, 1.046875, 1.5, -0.5, 1.046875, -1.5, -0.5, 1.046875, 1.5, 0.5, 1.046875, -1.5, -0.5, 1.046875, -1.5, 0.5, 1.046875, -1.5, 0.5, -1.046875, -1.5, 0.5, -1.046875, 1.5, 0.5, 1.046875, -1.5, 0.5, -1.046875, 1.5, 0.5, 1.046875, 1.5, 0.5)
|
||||||
|
|
||||||
|
[sub_resource type="ArrayMesh" id="ArrayMesh_uy2g7"]
|
||||||
_surfaces = [{
|
_surfaces = [{
|
||||||
"aabb": AABB(-0.25, -1.5, -2.546875, 0.5, 3, 5.09375),
|
"aabb": AABB(-0.25, -1.5, -2.546875, 0.5, 3, 5.09375),
|
||||||
"attribute_data": PackedByteArray("AADgwAAA4MAA/v/AAADgwAD+/8AAAIC/AADgwAAAgL8AACPBAACAvwAAAKcAAIC/AAAApwAA4MAAACPBAADgwAAAI8EA/v9AAAAjwQAA4EAAAAAAAADgQAAAAAAA/v9AAAAjQQD+/0AAAAAAAP7/QAAAAAAAAOBAAAAjQQAA4EAAACNBAADgwAAA4CYAAODAAADgJgAAgL8AACNBAACAvwAA4EAAAIC/AP7/QAAAgL8A/v9AAADgwAAA4EAAAODA"),
|
"attribute_data": PackedByteArray("AAAAwQAA4MAAABDBAADgwAAAEMEAAIC/AAAAwQAAgL8AACPBAACAvwAAEKcAAIC/AAAQpwAA4MAAACPBAADgwAAAI8EAABBBAAAjwQAAAEEAAAAAAAAAQQAAAAAAABBBAAAjQQAAEEEAAAAAAAAQQQAAAAAAAABBAAAjQQAAAEEAACNBAADgwAAAACcAAODAAAAAJwAAgL8AACNBAACAvwAAAEEAAIC/AAAQQQAAgL8AABBBAADgwAAAAEEAAODA"),
|
||||||
"format": 34359742487,
|
"format": 34359742487,
|
||||||
"index_count": 36,
|
"index_count": 36,
|
||||||
"index_data": PackedByteArray("AAABAAIAAAACAAMABAAFAAYABAAGAAcACAAJAAoACAAKAAsADAANAA4ADAAOAA8AEAARABIAEAASABMAFAAVABYAFAAWABcA"),
|
"index_data": PackedByteArray("AAABAAIAAAACAAMABAAFAAYABAAGAAcACAAJAAoACAAKAAsADAANAA4ADAAOAA8AEAARABIAEAASABMAFAAVABYAFAAWABcA"),
|
||||||
@@ -116,38 +93,15 @@ _surfaces = [{
|
|||||||
"primitive": 3,
|
"primitive": 3,
|
||||||
"uv_scale": Vector4(0, 0, 0, 0),
|
"uv_scale": Vector4(0, 0, 0, 0),
|
||||||
"vertex_count": 24,
|
"vertex_count": 24,
|
||||||
"vertex_data": PackedByteArray("AACAPgAAwD8AACPAAOB/vgAAwD8AACPAAOB/vgAAwL8AACPAAACAPgAAwL8AACPAAACAvgAAwL8AACNAAACAvgAAwL8AACPAAACAvgAAwD8AACPAAACAvgAAwD8AACNAAOB/vgAAwL8AACNAAACAPgAAwL8AACNAAACAPgAAwL8AACPAAOB/vgAAwL8AACPAAOB/vgAAwD8AACNAAOB/vgAAwD8AACPAAACAPgAAwD8AACPAAACAPgAAwD8AACNAAACAPgAAwD8AACNAAACAPgAAwD8AACPAAACAPgAAwL8AACPAAACAPgAAwL8AACNAAACAPgAAwL8AACNAAOB/vgAAwL8AACNAAOB/vgAAwD8AACNAAACAPgAAwD8AACNA/////////z//////////P/////////8//////////z8AAP9///8AAAAA/3///wAAAAD/f///AAAAAP9///8AAP9/AAD//////38AAP//////fwAA//////9/AAD//////3////9//7//f////3//v/9/////f/+//3////9//7////9//3//P////3//f/8/////f/9//z////9//3//P/9//38AAP8//3//fwAA/z//f/9/AAD/P/9//38AAP8/")
|
"vertex_data": PackedByteArray("AACAPgAAwD8AACPAAACAvgAAwD8AACPAAACAvgAAwL8AACPAAACAPgAAwL8AACPAAACAvgAAwL8AACNAAACAvgAAwL8AACPAAACAvgAAwD8AACPAAACAvgAAwD8AACNAAACAvgAAwL8AACNAAACAPgAAwL8AACNAAACAPgAAwL8AACPAAACAvgAAwL8AACPAAACAvgAAwD8AACNAAACAvgAAwD8AACPAAACAPgAAwD8AACPAAACAPgAAwD8AACNAAACAPgAAwD8AACNAAACAPgAAwD8AACPAAACAPgAAwL8AACPAAACAPgAAwL8AACNAAACAPgAAwL8AACNAAACAvgAAwL8AACNAAACAvgAAwD8AACNAAACAPgAAwD8AACNA/////////z//////////P/////////8//////////z8AAP9///8AAAAA/3///wAAAAD/f///AAAAAP9///8AAP9/AAD//////38AAP//////fwAA//////9/AAD//////3////9//7//f////3//v/9/////f/+//3////9//7////9//3//P////3//f/8/////f/9//z////9//3//P/9//38AAP8//3//fwAA/z//f/9/AAD/P/9//38AAP8/")
|
||||||
}]
|
}]
|
||||||
|
|
||||||
[sub_resource type="ArrayMesh" id="ArrayMesh_lqn8c"]
|
[sub_resource type="ArrayOccluder3D" id="ArrayOccluder3D_u1nm5"]
|
||||||
_surfaces = [{
|
vertices = PackedVector3Array(0.25, 1.5, -2.546875, -0.25, 1.5, -2.546875, -0.25, -1.5, -2.546875, 0.25, -1.5, -2.546875, -0.25, -1.5, 2.546875, -0.25, -1.5, -2.546875, -0.25, 1.5, -2.546875, -0.25, 1.5, 2.546875, -0.25, -1.5, 2.546875, 0.25, -1.5, 2.546875, 0.25, -1.5, -2.546875, -0.25, -1.5, -2.546875, -0.25, 1.5, 2.546875, -0.25, 1.5, -2.546875, 0.25, 1.5, -2.546875, 0.25, 1.5, 2.546875, 0.25, 1.5, 2.546875, 0.25, 1.5, -2.546875, 0.25, -1.5, -2.546875, 0.25, -1.5, 2.546875, 0.25, -1.5, 2.546875, -0.25, -1.5, 2.546875, -0.25, 1.5, 2.546875, 0.25, 1.5, 2.546875)
|
||||||
"aabb": AABB(-1.0000001, -0.50000006, -0.7500305, 2, 1, 1.500061),
|
indices = PackedInt32Array(0, 1, 2, 0, 2, 3, 4, 5, 6, 4, 6, 7, 8, 9, 10, 8, 10, 11, 12, 13, 14, 12, 14, 15, 16, 17, 18, 16, 18, 19, 20, 21, 22, 20, 22, 23)
|
||||||
"attribute_data": PackedByteArray("AACAwP7/f78C/v/A/v9/vwAAgMAA/j/AAAAAwQAAQMAAAoDAAABAwAAAAMEABIC/AADAwAAAgL8AABDBAACAvwAAEMEAAEDAAADAwAAAQMAAAMBA//9/wAAAwEAAAADBAAAAQQAAAMHAAABBAP7/wIAAEEH//3/AAADAwAAAgMAAABDBAACAwAAAwMAAAADBAADAQAAAQMAAAABBAACAvwAAwEAAAIC/AAAAQQAAgL8AAIBAAACAvwAAgEAAAEDAVf3/QAAAQMAAAABB//s/wA=="),
|
|
||||||
"format": 34359742487,
|
|
||||||
"index_count": 36,
|
|
||||||
"index_data": PackedByteArray("AAABAAIAAwAEAAUABgAHAAgABgAIAAkACgALAAwACgAMAA0ACgANAA4ADwAQABEAEgATABQAFQAWABcAFQAXABgAFQAYABkA"),
|
|
||||||
"material": ExtResource("7_u45fp"),
|
|
||||||
"name": "tile043",
|
|
||||||
"primitive": 3,
|
|
||||||
"uv_scale": Vector4(0, 0, 0, 0),
|
|
||||||
"vertex_count": 26,
|
|
||||||
"vertex_data": PackedByteArray("AACAvwEAAL8A/j+/CPh/PwEAAL8AAIC+AACAvwD4/z4A/j+/AACAPwAAAD8AAEA/APh/vwAAAD8A+j+/AACAPwD4/74A8H++AACAvwAAAL8AAkA/AACAvwAAAL8A/j+/AACAvwAAAD8A/j+/AACAvwAAAD8AAkA/AQCAvwAAAL8AAkA/AACAPwAAAL8AAkA/AACAPwAAAL8A+H++APh/PwAAAL8ACIC+AQCAvwAAAL8AAkC/AACAvwAAAD8AAkA/AACAvwAAAD8A/j+/AACAPwAAAD8AAkA/AACAPwAAAD8AAkA/AACAPwAAAL8A+H++AACAPwAAAL8AAkA/AACAPwAAAL8AAkA/AACAvwAAAL8AAkA/AACAvwAAAD8AAkA/VPV/PwAAAD8AAkA/AACAP/zv/z4AAkA///9l5gAA/7///2XmAAD/v///ZeYAAP+/c9EW3QAA/79z0RbdAAD/v3PRFt0AAP+/AAD/f/9//78AAP9//3//vwAA/3//f/+/AAD/f/9//7//fwAA//////9/AAD//////38AAP//////fwAA//////9/AAD//////3////9//7//f////3//v/9/////f/+/////f/////////9//////////3///////3//f////7//f/9/////v/9//3////+//3//f////7//f/9/////vw==")
|
|
||||||
}]
|
|
||||||
|
|
||||||
[sub_resource type="ArrayMesh" id="ArrayMesh_08uri"]
|
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_1w0m8"]
|
||||||
_surfaces = [{
|
data = PackedVector3Array(0.25, 1.5, -2.546875, -0.25, 1.5, -2.546875, -0.25, -1.5, -2.546875, 0.25, 1.5, -2.546875, -0.25, -1.5, -2.546875, 0.25, -1.5, -2.546875, -0.25, -1.5, 2.546875, -0.25, -1.5, -2.546875, -0.25, 1.5, -2.546875, -0.25, -1.5, 2.546875, -0.25, 1.5, -2.546875, -0.25, 1.5, 2.546875, -0.25, -1.5, 2.546875, 0.25, -1.5, 2.546875, 0.25, -1.5, -2.546875, -0.25, -1.5, 2.546875, 0.25, -1.5, -2.546875, -0.25, -1.5, -2.546875, -0.25, 1.5, 2.546875, -0.25, 1.5, -2.546875, 0.25, 1.5, -2.546875, -0.25, 1.5, 2.546875, 0.25, 1.5, -2.546875, 0.25, 1.5, 2.546875, 0.25, 1.5, 2.546875, 0.25, 1.5, -2.546875, 0.25, -1.5, -2.546875, 0.25, 1.5, 2.546875, 0.25, -1.5, -2.546875, 0.25, -1.5, 2.546875, 0.25, -1.5, 2.546875, -0.25, -1.5, 2.546875, -0.25, 1.5, 2.546875, 0.25, -1.5, 2.546875, -0.25, 1.5, 2.546875, 0.25, 1.5, 2.546875)
|
||||||
"aabb": AABB(-1.046875, -1.5, -0.015625, 2.09375, 3, 0.03125),
|
|
||||||
"attribute_data": PackedByteArray("AACAPwAA4MAAAEzAAADgwAAATMAAAIC/AACAPwAAgL8AAAHBAACAvwAAAMEAAIC/AAAAwQAA4MAAAAHBAADgwAAAAcEAAExAAAABwQAAgL8AAADBAACAvwAAAMEAAExAAAABQQAATEAAAABBAABMQAAAAEEAAIC/AAABQQAAgL8AAAFBAADgwAAAAEEAAODAAAAAQQAAgL8AAAFBAACAvwAAgL8AAIC/AABMQAAAgL8AAExAAADgwAAAgL8AAODA"),
|
|
||||||
"format": 34359742487,
|
|
||||||
"index_count": 36,
|
|
||||||
"index_data": PackedByteArray("AAABAAIAAAACAAMABAAFAAYABAAGAAcACAAJAAoACAAKAAsADAANAA4ADAAOAA8AEAARABIAEAASABMAFAAVABYAFAAWABcA"),
|
|
||||||
"material": ExtResource("7_u45fp"),
|
|
||||||
"name": "tile043",
|
|
||||||
"primitive": 3,
|
|
||||||
"uv_scale": Vector4(0, 0, 0, 0),
|
|
||||||
"vertex_count": 24,
|
|
||||||
"vertex_data": PackedByteArray("AACGPwAAwD8AAIC8AACGvwAAwD8AAIC8AACGvwAAwL8AAIC8AACGPwAAwL8AAIC8AACGvwAAwL8AAIA8AACGvwAAwL8AAIC8AACGvwAAwD8AAIC8AACGvwAAwD8AAIA8AACGvwAAwL8AAIA8AACGPwAAwL8AAIA8AACGPwAAwL8AAIC8AACGvwAAwL8AAIC8AACGvwAAwD8AAIA8AACGvwAAwD8AAIC8AACGPwAAwD8AAIC8AACGPwAAwD8AAIA8AACGPwAAwD8AAIA8AACGPwAAwD8AAIC8AACGPwAAwL8AAIC8AACGPwAAwL8AAIA8AACGPwAAwL8AAIA8AACGvwAAwL8AAIA8AACGvwAAwD8AAIA8AACGPwAAwD8AAIA8/////////z//////////P/////////8//////////z8AAP9///8AAAAA/3///wAAAAD/f///AAAAAP9///8AAP9/AAD//////38AAP//////fwAA//////9/AAD//////3////9//7//f////3//v/9/////f/+//3////9//7////9//3//P////3//f/8/////f/9//z////9//3//P/9//38AAP8//3//fwAA/z//f/9/AAD/P/9//38AAP8/")
|
|
||||||
}]
|
|
||||||
|
|
||||||
[node name="Test" type="Node3D"]
|
[node name="Test" type="Node3D"]
|
||||||
|
|
||||||
@@ -159,100 +113,85 @@ metadata/_custom_type_script = "uid://cwu5cf7a0awcd"
|
|||||||
|
|
||||||
[node name="entity_0_worldspawn" type="StaticBody3D" parent="FuncGodotMap"]
|
[node name="entity_0_worldspawn" type="StaticBody3D" parent="FuncGodotMap"]
|
||||||
collision_mask = 0
|
collision_mask = 0
|
||||||
|
metadata/func_godot_mesh_data = {
|
||||||
|
"uvs": PackedVector2Array(-14, -1, 14, -1, 14, 1.0002441, -14, -1, 14, 1.0002441, -14, 1.0002441, 12, 1.0002441, -10.999756, 1.0002441, -10.999756, -1, 12, 1.0002441, -10.999756, -1, 12, -1, -12, 14, -12, -14, 10.999756, -14, -12, 14, 10.999756, -14, 10.999756, 14, 12, 14, -10.999756, 14, -10.999756, -14, 12, 14, -10.999756, -14, 12, -14, -12, -1, 10.999756, -1, 10.999756, 1.0002441, -12, -1, 10.999756, 1.0002441, -12, 1.0002441, 14, 1.0002441, -14, 1.0002441, -14, -1, 14, 1.0002441, -14, -1, 14, -1)
|
||||||
|
}
|
||||||
|
|
||||||
[node name="entity_0_mesh_instance" type="MeshInstance3D" parent="FuncGodotMap/entity_0_worldspawn"]
|
[node name="entity_0_mesh_instance" type="MeshInstance3D" parent="FuncGodotMap/entity_0_worldspawn"]
|
||||||
mesh = SubResource("ArrayMesh_u45fp")
|
mesh = SubResource("ArrayMesh_2grjb")
|
||||||
|
|
||||||
[node name="entity_0_brush_0_collision_shape" type="CollisionShape3D" parent="FuncGodotMap/entity_0_worldspawn"]
|
[node name="entity_0_brush_0_collision_shape" type="CollisionShape3D" parent="FuncGodotMap/entity_0_worldspawn"]
|
||||||
shape = SubResource("ConvexPolygonShape3D_2grjb")
|
shape = SubResource("ConvexPolygonShape3D_qhvcx")
|
||||||
|
|
||||||
[node name="entity_1_func_movingplatform" type="AnimatableBody3D" parent="FuncGodotMap"]
|
[node name="entity_1_func_movingplatform" type="AnimatableBody3D" parent="FuncGodotMap"]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -6.1035156e-05, 14.25)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -6.1035156e-05, 14.25)
|
||||||
script = ExtResource("4_6g8e2")
|
script = ExtResource("4_6g8e2")
|
||||||
|
metadata/func_godot_mesh_data = {
|
||||||
|
"uvs": PackedVector2Array(-14, -1, 14, -1, 14, 1.0002441, -14, -1, 14, 1.0002441, -14, 1.0002441, 40, 1.0002441, 17, 1.0002441, 17, -1, 40, 1.0002441, 17, -1, 40, -1, -40, 14, -40, -14, -17, -14, -40, 14, -17, -14, -17, 14, 40, 14, 17, 14, 17, -14, 40, 14, 17, -14, 40, -14, -40, -1, -17, -1, -17, 1.0002441, -40, -1, -17, 1.0002441, -40, 1.0002441, 14, 1.0002441, -14, 1.0002441, -14, -1, 14, 1.0002441, -14, -1, 14, -1)
|
||||||
|
}
|
||||||
|
|
||||||
[node name="entity_1_mesh_instance" type="MeshInstance3D" parent="FuncGodotMap/entity_1_func_movingplatform"]
|
[node name="entity_1_mesh_instance" type="MeshInstance3D" parent="FuncGodotMap/entity_1_func_movingplatform"]
|
||||||
mesh = SubResource("ArrayMesh_qhvcx")
|
mesh = SubResource("ArrayMesh_kqvnf")
|
||||||
|
|
||||||
[node name="entity_1_brush_0_collision_shape" type="CollisionShape3D" parent="FuncGodotMap/entity_1_func_movingplatform"]
|
[node name="entity_1_brush_0_collision_shape" type="CollisionShape3D" parent="FuncGodotMap/entity_1_func_movingplatform"]
|
||||||
shape = SubResource("ConvexPolygonShape3D_kqvnf")
|
shape = SubResource("ConvexPolygonShape3D_eudka")
|
||||||
|
|
||||||
[node name="entity_2_func_destructablewall" type="Node3D" parent="FuncGodotMap" node_paths=PackedStringArray("meshInstance3d")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, 2, 2.5)
|
|
||||||
script = ExtResource("6_u45fp")
|
|
||||||
verts2d = PackedVector2Array(-1, -1.5, 1, -1.5, 1, 1.5, -1, 1.5, -1, -1.5)
|
|
||||||
meshInstance3d = NodePath("entity_2_mesh_instance")
|
|
||||||
depth = -1.0
|
|
||||||
depth_position_offset = Vector3(0, 0, 0.5)
|
|
||||||
|
|
||||||
[node name="entity_2_mesh_instance" type="MeshInstance3D" parent="FuncGodotMap/entity_2_func_destructablewall"]
|
|
||||||
mesh = SubResource("ArrayMesh_eudka")
|
|
||||||
|
|
||||||
[node name="entity_3_func_destructablewall" type="Node3D" parent="FuncGodotMap" node_paths=PackedStringArray("meshInstance3d")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.75, 2, -2.953125)
|
|
||||||
script = ExtResource("6_u45fp")
|
|
||||||
verts2d = PackedVector2Array(-2.546875, -1.5, 2.546875, -1.5, 2.546875, 1.5, -2.546875, 1.5, -2.546875, -1.5)
|
|
||||||
meshInstance3d = NodePath("entity_3_mesh_instance")
|
|
||||||
extrusion_direction = 1
|
|
||||||
depth = -0.5
|
|
||||||
depth_position_offset = Vector3(-0.25, 0, 0)
|
|
||||||
|
|
||||||
[node name="entity_3_mesh_instance" type="MeshInstance3D" parent="FuncGodotMap/entity_3_func_destructablewall"]
|
|
||||||
mesh = SubResource("ArrayMesh_qtvpr")
|
|
||||||
|
|
||||||
[node name="entity_4_func_destructablewall" type="Node3D" parent="FuncGodotMap" node_paths=PackedStringArray("meshInstance3d")]
|
[node name="entity_4_func_destructablewall" type="Node3D" parent="FuncGodotMap" node_paths=PackedStringArray("meshInstance3d")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.953125, 0.75, -4.5)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.953125, 0.75, -4.5)
|
||||||
script = ExtResource("6_u45fp")
|
script = ExtResource("6_u45fp")
|
||||||
verts2d = PackedVector2Array(-1.546875, -2, 1.546875, -2, 1.546875, 2, -1.546875, 2, -1.546875, -2)
|
verts2d = PackedVector2Array(-1.546875, -2, 1.546875, -2, 1.546875, 2, -1.546875, 2, -1.546875, -2)
|
||||||
meshInstance3d = NodePath("entity_4_mesh_instance")
|
meshInstance3d = NodePath("entity_4_mesh_instance")
|
||||||
extrusion_direction = 2
|
|
||||||
depth = -0.5
|
depth = -0.5
|
||||||
depth_position_offset = Vector3(0, -0.25, 0)
|
original_vertices = PackedVector3Array(1.546875, 0.25, -2, -1.546875, 0.25, -2, -1.546875, -0.25, -2, 1.546875, 0.25, -2, -1.546875, -0.25, -2, 1.546875, -0.25, -2, -1.546875, -0.25, 2, -1.546875, -0.25, -2, -1.546875, 0.25, -2, -1.546875, -0.25, 2, -1.546875, 0.25, -2, -1.546875, 0.25, 2, -1.546875, -0.25, 2, 1.546875, -0.25, 2, 1.546875, -0.25, -2, -1.546875, -0.25, 2, 1.546875, -0.25, -2, -1.546875, -0.25, -2, -1.546875, 0.25, 2, -1.546875, 0.25, -2, 1.546875, 0.25, -2, -1.546875, 0.25, 2, 1.546875, 0.25, -2, 1.546875, 0.25, 2, 1.546875, 0.25, 2, 1.546875, 0.25, -2, 1.546875, -0.25, -2, 1.546875, 0.25, 2, 1.546875, -0.25, -2, 1.546875, -0.25, 2, 1.546875, -0.25, 2, -1.546875, -0.25, 2, -1.546875, 0.25, 2, 1.546875, -0.25, 2, -1.546875, 0.25, 2, 1.546875, 0.25, 2)
|
||||||
|
original_normals = PackedVector3Array(0, 0, -1, 0, 0, -1, -1, 0, 0, -1, 0, 0, 0, -1, 0, 0, -1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1)
|
||||||
|
original_uvs = PackedVector2Array(23, -2, 16.8125, -2, 16.8125, -1, 23, -2, 16.8125, -1, 23, -1, 5, -1, 13, -1, 13, -2, 5, -1, 13, -2, 5, -2, 5, -16.8125, 5, -23, 13, -23, 5, -16.8125, 13, -23, 13, -16.8125, -5, -16.8125, -13, -16.8125, -13, -23, -5, -16.8125, -13, -23, -5, -23, -5, -2, -13, -2, -13, -1, -5, -2, -13, -1, -5, -1, -23, -1, -16.8125, -1, -16.8125, -2, -23, -1, -16.8125, -2, -23, -2)
|
||||||
|
extrusion_direction = 2
|
||||||
|
hole_proximity = 1.0
|
||||||
|
edge_non_fracture = 0.01
|
||||||
|
metadata/func_godot_mesh_data = {
|
||||||
|
"normals": PackedVector3Array(0, 0, -1, 0, 0, -1, -1, 0, 0, -1, 0, 0, 0, -1, 0, 0, -1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1),
|
||||||
|
"texture_names": Array[StringName]([&"tile043"]),
|
||||||
|
"textures": PackedInt32Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
|
||||||
|
"uvs": PackedVector2Array(23, -2, 16.8125, -2, 16.8125, -1, 23, -2, 16.8125, -1, 23, -1, 5, -1, 13, -1, 13, -2, 5, -1, 13, -2, 5, -2, 5, -16.8125, 5, -23, 13, -23, 5, -16.8125, 13, -23, 13, -16.8125, -5, -16.8125, -13, -16.8125, -13, -23, -5, -16.8125, -13, -23, -5, -23, -5, -2, -13, -2, -13, -1, -5, -2, -13, -1, -5, -1, -23, -1, -16.8125, -1, -16.8125, -2, -23, -1, -16.8125, -2, -23, -2),
|
||||||
|
"vertices": PackedVector3Array(1.546875, 0.25, -2, -1.546875, 0.25, -2, -1.546875, -0.25, -2, 1.546875, 0.25, -2, -1.546875, -0.25, -2, 1.546875, -0.25, -2, -1.546875, -0.25, 2, -1.546875, -0.25, -2, -1.546875, 0.25, -2, -1.546875, -0.25, 2, -1.546875, 0.25, -2, -1.546875, 0.25, 2, -1.546875, -0.25, 2, 1.546875, -0.25, 2, 1.546875, -0.25, -2, -1.546875, -0.25, 2, 1.546875, -0.25, -2, -1.546875, -0.25, -2, -1.546875, 0.25, 2, -1.546875, 0.25, -2, 1.546875, 0.25, -2, -1.546875, 0.25, 2, 1.546875, 0.25, -2, 1.546875, 0.25, 2, 1.546875, 0.25, 2, 1.546875, 0.25, -2, 1.546875, -0.25, -2, 1.546875, 0.25, 2, 1.546875, -0.25, -2, 1.546875, -0.25, 2, 1.546875, -0.25, 2, -1.546875, -0.25, 2, -1.546875, 0.25, 2, 1.546875, -0.25, 2, -1.546875, 0.25, 2, 1.546875, 0.25, 2)
|
||||||
|
}
|
||||||
|
|
||||||
[node name="entity_4_mesh_instance" type="MeshInstance3D" parent="FuncGodotMap/entity_4_func_destructablewall"]
|
[node name="entity_4_mesh_instance" type="MeshInstance3D" parent="FuncGodotMap/entity_4_func_destructablewall"]
|
||||||
mesh = SubResource("ArrayMesh_drwxn")
|
|
||||||
|
|
||||||
[node name="entity_5_func_destructablewall" type="Node3D" parent="FuncGodotMap" node_paths=PackedStringArray("meshInstance3d")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.953125, 2, 2.5)
|
|
||||||
script = ExtResource("6_u45fp")
|
|
||||||
verts2d = PackedVector2Array(-1.046875, -1.5, 1.046875, -1.5, 1.046875, 1.5, -1.046875, 1.5, -1.046875, -1.5)
|
|
||||||
meshInstance3d = NodePath("entity_5_mesh_instance")
|
|
||||||
depth = -1.0
|
|
||||||
depth_position_offset = Vector3(0, 0, 0.5)
|
|
||||||
|
|
||||||
[node name="entity_5_mesh_instance" type="MeshInstance3D" parent="FuncGodotMap/entity_5_func_destructablewall"]
|
|
||||||
mesh = SubResource("ArrayMesh_rmkky")
|
mesh = SubResource("ArrayMesh_rmkky")
|
||||||
|
|
||||||
[node name="entity_6_func_destructablewall" type="Node3D" parent="FuncGodotMap" node_paths=PackedStringArray("meshInstance3d")]
|
[node name="entity_6_func_geo" type="StaticBody3D" parent="FuncGodotMap"]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.75, 2, 2.546875)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.953125, 2, 2.5)
|
||||||
script = ExtResource("6_u45fp")
|
collision_mask = 0
|
||||||
verts2d = PackedVector2Array(-2.546875, -1.5, 2.546875, -1.5, 2.546875, 1.5, -2.546875, 1.5, -2.546875, -1.5)
|
metadata/func_godot_mesh_data = {
|
||||||
meshInstance3d = NodePath("entity_6_mesh_instance")
|
"uvs": PackedVector2Array(6, -7, 1.8125, -7, 1.8125, -1, 6, -7, 1.8125, -1, 6, -1, -6, -1, -4, -1, -4, -7, -6, -1, -4, -7, -6, -7, -6, -1.8125, -6, -6, -4, -6, -6, -1.8125, -4, -6, -4, -1.8125, 6, -1.8125, 4, -1.8125, 4, -6, 6, -1.8125, 4, -6, 6, -6, 6, -7, 4, -7, 4, -1, 6, -7, 4, -1, 6, -1, -6, -1, -1.8125, -1, -1.8125, -7, -6, -1, -1.8125, -7, -6, -7)
|
||||||
extrusion_direction = 1
|
}
|
||||||
depth = -0.5
|
|
||||||
depth_position_offset = Vector3(-0.25, 0, 0)
|
|
||||||
|
|
||||||
[node name="entity_6_mesh_instance" type="MeshInstance3D" parent="FuncGodotMap/entity_6_func_destructablewall"]
|
[node name="entity_6_mesh_instance" type="MeshInstance3D" parent="FuncGodotMap/entity_6_func_geo"]
|
||||||
mesh = SubResource("ArrayMesh_epu3l")
|
|
||||||
|
|
||||||
[node name="entity_7_func_destructablewall" type="Node3D" parent="FuncGodotMap" node_paths=PackedStringArray("meshInstance3d")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 1, -3.7500305)
|
|
||||||
script = ExtResource("6_u45fp")
|
|
||||||
verts2d = PackedVector2Array(-1.0000001, -0.7500305, 0.9998779, -0.25006104, 1, -0.24996948, 1, 0.7500305, -1.0000001, 0.7500305, -1.0000001, -0.7500305)
|
|
||||||
meshInstance3d = NodePath("entity_7_mesh_instance")
|
|
||||||
extrusion_direction = 2
|
|
||||||
depth = -1.0000000596046448
|
|
||||||
depth_position_offset = Vector3(0, -0.5, 0)
|
|
||||||
|
|
||||||
[node name="entity_7_mesh_instance" type="MeshInstance3D" parent="FuncGodotMap/entity_7_func_destructablewall"]
|
|
||||||
mesh = SubResource("ArrayMesh_lqn8c")
|
mesh = SubResource("ArrayMesh_lqn8c")
|
||||||
|
|
||||||
[node name="entity_8_func_destructablewall" type="Node3D" parent="FuncGodotMap" node_paths=PackedStringArray("meshInstance3d")]
|
[node name="entity_6_occluder_instance" type="OccluderInstance3D" parent="FuncGodotMap/entity_6_func_geo"]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.546875, 2, 4.015625)
|
occluder = SubResource("ArrayOccluder3D_08uri")
|
||||||
script = ExtResource("6_u45fp")
|
|
||||||
verts2d = PackedVector2Array(-1.046875, -1.5, 1.046875, -1.5, 1.046875, 1.5, -1.046875, 1.5, -1.046875, -1.5)
|
|
||||||
meshInstance3d = NodePath("entity_8_mesh_instance")
|
|
||||||
depth = -0.03125
|
|
||||||
depth_position_offset = Vector3(0, 0, 0.015625)
|
|
||||||
|
|
||||||
[node name="entity_8_mesh_instance" type="MeshInstance3D" parent="FuncGodotMap/entity_8_func_destructablewall"]
|
[node name="entity_6_collision_shape" type="CollisionShape3D" parent="FuncGodotMap/entity_6_func_geo"]
|
||||||
mesh = SubResource("ArrayMesh_08uri")
|
shape = SubResource("ConcavePolygonShape3D_fivcu")
|
||||||
|
|
||||||
|
[node name="entity_7_func_geo" type="StaticBody3D" parent="FuncGodotMap"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.25, 2, 2.546875)
|
||||||
|
collision_mask = 0
|
||||||
|
metadata/func_godot_mesh_data = {
|
||||||
|
"uvs": PackedVector2Array(-8, -7, -9, -7, -9, -1, -8, -7, -9, -1, -8, -1, -10.1875, -1, -1.9984014e-15, -1, -1.9984014e-15, -7, -10.1875, -1, -1.9984014e-15, -7, -10.1875, -7, -10.1875, 9, -10.1875, 8, 0, 8, -10.1875, 9, 0, 8, 0, 9, 10.1875, 9, 0, 9, 0, 8, 10.1875, 9, 0, 8, 10.1875, 8, 10.1875, -7, 1.7763568e-15, -7, 1.7763568e-15, -1, 10.1875, -7, 1.7763568e-15, -1, 10.1875, -1, 8, -1, 9, -1, 9, -7, 8, -1, 9, -7, 8, -7)
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="entity_7_mesh_instance" type="MeshInstance3D" parent="FuncGodotMap/entity_7_func_geo"]
|
||||||
|
mesh = SubResource("ArrayMesh_uy2g7")
|
||||||
|
|
||||||
|
[node name="entity_7_occluder_instance" type="OccluderInstance3D" parent="FuncGodotMap/entity_7_func_geo"]
|
||||||
|
occluder = SubResource("ArrayOccluder3D_u1nm5")
|
||||||
|
|
||||||
|
[node name="entity_7_collision_shape" type="CollisionShape3D" parent="FuncGodotMap/entity_7_func_geo"]
|
||||||
|
shape = SubResource("ConcavePolygonShape3D_1w0m8")
|
||||||
|
|
||||||
|
[node name="OmniLight3D" type="OmniLight3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.6516542, 2.4242716, 0)
|
||||||
|
light_color = Color(0.68519044, 0.30453056, 0.26691508, 1)
|
||||||
|
light_energy = 7.369
|
||||||
|
|||||||
@@ -14,5 +14,6 @@ script = ExtResource("1_qoi2i")
|
|||||||
[node name="CurrentLevel" type="Node3D" parent="."]
|
[node name="CurrentLevel" type="Node3D" parent="."]
|
||||||
|
|
||||||
[node name="PrototypeLevel" parent="CurrentLevel" instance=ExtResource("1_rtgv3")]
|
[node name="PrototypeLevel" parent="CurrentLevel" instance=ExtResource("1_rtgv3")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0066280365, -0.0119102, 0.014269352)
|
||||||
|
|
||||||
[node name="UserInterface" parent="." instance=ExtResource("2_mgb3u")]
|
[node name="UserInterface" parent="." instance=ExtResource("2_mgb3u")]
|
||||||
|
|||||||
@@ -5,12 +5,17 @@
|
|||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
script = ExtResource("1_1gpns")
|
script = ExtResource("1_1gpns")
|
||||||
|
add_textures_metadata = true
|
||||||
|
add_vertex_metadata = true
|
||||||
|
add_face_normal_metadata = true
|
||||||
script_class = ExtResource("2_7nwkm")
|
script_class = ExtResource("2_7nwkm")
|
||||||
classname = "func_destructablewall"
|
classname = "func_destructablewall"
|
||||||
description = "Set the brush entity as a destructable.
|
description = "Set the brush entity as a destructable.
|
||||||
"
|
"
|
||||||
class_properties = {
|
class_properties = {
|
||||||
"extrude_direction": 0
|
"edge_non_fractured": 0.01,
|
||||||
|
"extrude_direction": 0,
|
||||||
|
"hole_proximity": 1.0
|
||||||
}
|
}
|
||||||
node_class = "Node3D"
|
node_class = "Node3D"
|
||||||
metadata/_custom_type_script = "uid://5cow84q03m6a"
|
metadata/_custom_type_script = "uid://5cow84q03m6a"
|
||||||
|
|||||||
@@ -6,171 +6,125 @@
|
|||||||
"wad" ""
|
"wad" ""
|
||||||
"classname" "worldspawn"
|
"classname" "worldspawn"
|
||||||
"_tb_mod" "trenchbroom"
|
"_tb_mod" "trenchbroom"
|
||||||
|
// brush 0
|
||||||
|
{
|
||||||
|
( -176 -64 -16 ) ( -176 -63 -16 ) ( -176 -64 -15 ) tile013 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
||||||
|
( -64 -224 -16 ) ( -64 -224 -15 ) ( -63 -224 -16 ) tile013 [ 1 0 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
||||||
|
( -64 -64 -16 ) ( -63 -64 -16 ) ( -64 -63 -16 ) tile013 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( 64 64 16 ) ( 64 65 16 ) ( 65 64 16 ) tile013 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( 64 224 16 ) ( 65 224 16 ) ( 64 224 17 ) tile013 [ -1 0 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
||||||
|
( 192 64 16 ) ( 192 64 17 ) ( 192 65 16 ) tile013 [ 0 1 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// entity 1
|
// entity 1
|
||||||
{
|
{
|
||||||
"classname" "func_group"
|
"classname" "func_movingplatform"
|
||||||
"_tb_type" "_tb_group"
|
"move_distance" "2"
|
||||||
"_tb_name" "floor"
|
"move_time" "2"
|
||||||
"_tb_id" "1"
|
"move_direction" "0.0 1.0 0.0"
|
||||||
"_tb_linked_group_id" "{fbbc3a97-f5d3-443e-97e2-242861ee6c78}"
|
|
||||||
"_tb_transformation" "1 0 0 -144 0 1 0 -144 0 0 1 0 0 0 0 1"
|
|
||||||
// brush 0
|
// brush 0
|
||||||
{
|
{
|
||||||
( 272 -512 -16 ) ( 272 -510 -16 ) ( 272 -512 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
( 272 -64 -16 ) ( 272 -63 -16 ) ( 272 -64 -15 ) tile002 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
( 272 -512 -16 ) ( 272 -512 -15 ) ( 274.125 -512 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
( 384 -224 -16 ) ( 384 -224 -15 ) ( 385 -224 -16 ) tile002 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
( 272 -512 -16 ) ( 274.125 -512 -16 ) ( 272 -510 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 0 1 1
|
( 384 -64 -16 ) ( 385 -64 -16 ) ( 384 -63 -16 ) tile002 [ -1 0 0 0 ] [ 0 -1 0 0 ] 180 1 1
|
||||||
( 544 -256 16 ) ( 544 -254 16 ) ( 546.125 -256 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 0 1 1
|
( 512 64 16 ) ( 512 65 16 ) ( 513 64 16 ) tile002 [ 1 0 0 0 ] [ 0 -1 0 0 ] 180 1 1
|
||||||
( 544 -256 16 ) ( 546.125 -256 16 ) ( 544 -256 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
( 512 224 16 ) ( 513 224 16 ) ( 512 224 17 ) tile002 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
( 544 -256 16 ) ( 544 -256 17 ) ( 544 -254 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
( 640 64 16 ) ( 640 64 17 ) ( 640 65 16 ) tile002 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
}
|
|
||||||
// brush 1
|
|
||||||
{
|
|
||||||
( 0 -512 -16 ) ( 0 -510 -16 ) ( 0 -512 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( 0 -512 -16 ) ( 0 -512 -15 ) ( 2.125 -512 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( 0 -512 -16 ) ( 2.125 -512 -16 ) ( 0 -510 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 0 1 1
|
|
||||||
( 272 -256 16 ) ( 272 -254 16 ) ( 274.125 -256 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 0 1 1
|
|
||||||
( 272 -256 16 ) ( 274.125 -256 16 ) ( 272 -256 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( 272 -256 16 ) ( 272 -256 17 ) ( 272 -254 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
}
|
|
||||||
// brush 2
|
|
||||||
{
|
|
||||||
( -272 -512 -16 ) ( -272 -510 -16 ) ( -272 -512 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
|
||||||
( -272 -512 -16 ) ( -272 -512 -15 ) ( -269.875 -512 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
|
||||||
( -272 -512 -16 ) ( -269.875 -512 -16 ) ( -272 -510 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 90 1 1
|
|
||||||
( 0 -256 16 ) ( 0 -254 16 ) ( 2.125 -256 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 90 1 1
|
|
||||||
( 0 -256 16 ) ( 2.125 -256 16 ) ( 0 -256 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
|
||||||
( 0 -256 16 ) ( 0 -256 17 ) ( 0 -254 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
|
||||||
}
|
|
||||||
// brush 3
|
|
||||||
{
|
|
||||||
( -544 -512 -16 ) ( -544 -510 -16 ) ( -544 -512 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
|
||||||
( -544 -512 -16 ) ( -544 -512 -15 ) ( -541.875 -512 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
|
||||||
( -544 -512 -16 ) ( -541.875 -512 -16 ) ( -544 -510 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 90 1 1
|
|
||||||
( -272 -256 16 ) ( -272 -254 16 ) ( -269.875 -256 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 90 1 1
|
|
||||||
( -272 -256 16 ) ( -269.875 -256 16 ) ( -272 -256 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
|
||||||
( -272 -256 16 ) ( -272 -256 17 ) ( -272 -254 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
|
||||||
}
|
|
||||||
// brush 4
|
|
||||||
{
|
|
||||||
( -544 -256 -16 ) ( -544 -254 -16 ) ( -544 -256 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
( -544 -256 -16 ) ( -544 -256 -15 ) ( -541.875 -256 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
( -544 -256 -16 ) ( -541.875 -256 -16 ) ( -544 -254 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 270 1 1
|
|
||||||
( -272 0 16 ) ( -272 2 16 ) ( -269.875 0 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 270 1 1
|
|
||||||
( -272 0 16 ) ( -269.875 0 16 ) ( -272 0 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
( -272 0 16 ) ( -272 0 17 ) ( -272 2 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
}
|
|
||||||
// brush 5
|
|
||||||
{
|
|
||||||
( -272 -256 -16 ) ( -272 -254 -16 ) ( -272 -256 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
( -272 -256 -16 ) ( -272 -256 -15 ) ( -269.875 -256 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
( -272 -256 -16 ) ( -269.875 -256 -16 ) ( -272 -254 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 270 1 1
|
|
||||||
( 0 0 16 ) ( 0 2 16 ) ( 2.125 0 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 270 1 1
|
|
||||||
( 0 0 16 ) ( 2.125 0 16 ) ( 0 0 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
( 0 0 16 ) ( 0 0 17 ) ( 0 2 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
}
|
|
||||||
// brush 6
|
|
||||||
{
|
|
||||||
( 0 -256 -16 ) ( 0 -254 -16 ) ( 0 -256 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
|
||||||
( 0 -256 -16 ) ( 0 -256 -15 ) ( 2.125 -256 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
|
||||||
( 0 -256 -16 ) ( 2.125 -256 -16 ) ( 0 -254 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 180 1 1
|
|
||||||
( 272 0 16 ) ( 272 2 16 ) ( 274.125 0 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 180 1 1
|
|
||||||
( 272 0 16 ) ( 274.125 0 16 ) ( 272 0 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
|
||||||
( 272 0 16 ) ( 272 0 17 ) ( 272 2 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
|
||||||
}
|
|
||||||
// brush 7
|
|
||||||
{
|
|
||||||
( 272 -256 -16 ) ( 272 -254 -16 ) ( 272 -256 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
|
||||||
( 272 -256 -16 ) ( 272 -256 -15 ) ( 274.125 -256 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
|
||||||
( 272 -256 -16 ) ( 274.125 -256 -16 ) ( 272 -254 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 180 1 1
|
|
||||||
( 544 0 16 ) ( 544 2 16 ) ( 546.125 0 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 180 1 1
|
|
||||||
( 544 0 16 ) ( 546.125 0 16 ) ( 544 0 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
|
||||||
( 544 0 16 ) ( 544 0 17 ) ( 544 2 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
|
||||||
}
|
|
||||||
// brush 8
|
|
||||||
{
|
|
||||||
( 0 0 -16 ) ( 0 2 -16 ) ( 0 0 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
( 0 0 -16 ) ( 0 0 -15 ) ( 2.125 0 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
( 0 0 -16 ) ( 2.125 0 -16 ) ( 0 2 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 270 1 1
|
|
||||||
( 272 256 16 ) ( 272 258 16 ) ( 274.125 256 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 270 1 1
|
|
||||||
( 272 256 16 ) ( 274.125 256 16 ) ( 272 256 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
( 272 256 16 ) ( 272 256 17 ) ( 272 258 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
}
|
|
||||||
// brush 9
|
|
||||||
{
|
|
||||||
( -272 0 -16 ) ( -272 2 -16 ) ( -272 0 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
( -272 0 -16 ) ( -272 0 -15 ) ( -269.875 0 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
( -272 0 -16 ) ( -269.875 0 -16 ) ( -272 2 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 270 1 1
|
|
||||||
( 0 256 16 ) ( 0 258 16 ) ( 2.125 256 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 270 1 1
|
|
||||||
( 0 256 16 ) ( 2.125 256 16 ) ( 0 256 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
( 0 256 16 ) ( 0 256 17 ) ( 0 258 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
}
|
|
||||||
// brush 10
|
|
||||||
{
|
|
||||||
( -544 0 -16 ) ( -544 2 -16 ) ( -544 0 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
( -544 0 -16 ) ( -544 0 -15 ) ( -541.875 0 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
( -544 0 -16 ) ( -541.875 0 -16 ) ( -544 2 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 270 1 1
|
|
||||||
( -272 256 16 ) ( -272 258 16 ) ( -269.875 256 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 270 1 1
|
|
||||||
( -272 256 16 ) ( -269.875 256 16 ) ( -272 256 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
( -272 256 16 ) ( -272 256 17 ) ( -272 258 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
}
|
|
||||||
// brush 11
|
|
||||||
{
|
|
||||||
( 272 0 -16 ) ( 272 2 -16 ) ( 272 0 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
( 272 0 -16 ) ( 272 0 -15 ) ( 274.125 0 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
( 272 0 -16 ) ( 274.125 0 -16 ) ( 272 2 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 270 1 1
|
|
||||||
( 544 256 16 ) ( 544 258 16 ) ( 546.125 256 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 270 1 1
|
|
||||||
( 544 256 16 ) ( 546.125 256 16 ) ( 544 256 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
( 544 256 16 ) ( 544 256 17 ) ( 544 258 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
}
|
|
||||||
// brush 12
|
|
||||||
{
|
|
||||||
( 272 256 -16 ) ( 272 258 -16 ) ( 272 256 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
|
||||||
( 272 256 -16 ) ( 272 256 -15 ) ( 274.125 256 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
|
||||||
( 272 256 -16 ) ( 274.125 256 -16 ) ( 272 258 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 90 1 1
|
|
||||||
( 544 512 16 ) ( 544 514 16 ) ( 546.125 512 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 90 1 1
|
|
||||||
( 544 512 16 ) ( 546.125 512 16 ) ( 544 512 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
|
||||||
( 544 512 16 ) ( 544 512 17 ) ( 544 514 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
|
||||||
}
|
|
||||||
// brush 13
|
|
||||||
{
|
|
||||||
( 0 256 -16 ) ( 0 258 -16 ) ( 0 256 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
|
||||||
( 0 256 -16 ) ( 0 256 -15 ) ( 2.125 256 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
|
||||||
( 0 256 -16 ) ( 2.125 256 -16 ) ( 0 258 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 90 1 1
|
|
||||||
( 272 512 16 ) ( 272 514 16 ) ( 274.125 512 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 90 1 1
|
|
||||||
( 272 512 16 ) ( 274.125 512 16 ) ( 272 512 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
|
||||||
( 272 512 16 ) ( 272 512 17 ) ( 272 514 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
|
||||||
}
|
|
||||||
// brush 14
|
|
||||||
{
|
|
||||||
( -272 256 -16 ) ( -272 258 -16 ) ( -272 256 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
|
||||||
( -272 256 -16 ) ( -272 256 -15 ) ( -269.875 256 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
|
||||||
( -272 256 -16 ) ( -269.875 256 -16 ) ( -272 258 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 90 1 1
|
|
||||||
( 0 512 16 ) ( 0 514 16 ) ( 2.125 512 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 90 1 1
|
|
||||||
( 0 512 16 ) ( 2.125 512 16 ) ( 0 512 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
|
||||||
( 0 512 16 ) ( 0 512 17 ) ( 0 514 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
|
||||||
}
|
|
||||||
// brush 15
|
|
||||||
{
|
|
||||||
( -544 256 -16 ) ( -544 258 -16 ) ( -544 256 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
|
||||||
( -544 256 -16 ) ( -544 256 -15 ) ( -541.875 256 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
|
||||||
( -544 256 -16 ) ( -541.875 256 -16 ) ( -544 258 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 90 1 1
|
|
||||||
( -272 512 16 ) ( -272 514 16 ) ( -269.875 512 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 90 1 1
|
|
||||||
( -272 512 16 ) ( -269.875 512 16 ) ( -272 512 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
|
||||||
( -272 512 16 ) ( -272 512 17 ) ( -272 514 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// entity 2
|
// entity 2
|
||||||
{
|
{
|
||||||
"classname" "func_destructable"
|
"classname" "func_destructablewall"
|
||||||
"_tb_group" "1"
|
|
||||||
// brush 0
|
// brush 0
|
||||||
{
|
{
|
||||||
( 96 -144 -16 ) ( 96 -142 -16 ) ( 96 -144 -15 ) tile017 [ 0 -0.5 0 -8 ] [ 0 0 -1 0 ] 270 1 1
|
( 64 0 32 ) ( 64 0 33 ) ( 64 -1 32 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
||||||
( 96 -144 -16 ) ( 96 -144 -15 ) ( 98.125 -144 -16 ) tile017 [ 0.47058823529411775 0 0 -13.176468 ] [ 0 0 -1 0 ] 270 1 1
|
( 0 -48 32 ) ( -1 -48 32 ) ( 0 -48 33 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
( 96 -144 48 ) ( 98.125 -144 48 ) ( 96 -142 48 ) tile017 [ -0.47058823529411775 0 0 13.176468 ] [ 0 -0.5 0 -8 ] 180 1 1
|
( 80 80 16 ) ( 79 80 16 ) ( 80 79 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
( 368 112 144 ) ( 368 114 144 ) ( 370.125 112 144 ) tile017 [ 0.47058823529411775 0 0 -13.176468 ] [ 0 -0.5 0 -8 ] 90 1 1
|
( 0 0 112 ) ( 0 -1 112 ) ( -1 0 112 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
||||||
( 368 112 16 ) ( 370.125 112 16 ) ( 368 112 17 ) tile017 [ -0.47058823529411775 0 0 13.176468 ] [ 0 0 -1 0 ] 270 1 1
|
( 80 16 16 ) ( 80 16 17 ) ( 79 16 16 ) tile043 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
( 112 112 16 ) ( 112 112 17 ) ( 112 114 16 ) tile017 [ 0 0.5 0 8 ] [ 0 0 -1 0 ] 90 1 1
|
( 96 80 16 ) ( 96 79 16 ) ( 96 80 17 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// entity 3
|
||||||
|
{
|
||||||
|
"classname" "func_destructablewall"
|
||||||
|
"extrude_direction" "1"
|
||||||
|
// brush 0
|
||||||
|
{
|
||||||
|
( -176 -96 16 ) ( -176 -96 17 ) ( -176 -97 16 ) tile000 [ 0 -1 0 0 ] [ -0 -0 -1 0 ] 0 1 1
|
||||||
|
( -64 -144 32 ) ( -64 -144 33 ) ( -63 -144 32 ) "Stone Base/albedo" [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -144 -96 16 ) ( -144 -97 16 ) ( -143 -96 16 ) tile000 [ -1 0 0 0 ] [ -0 -1 -0 0 ] 0 1 1
|
||||||
|
( -64 -176 112 ) ( -63 -176 112 ) ( -64 -177 112 ) tile000 [ 1 -0 0 0 ] [ -0 -1 0 0 ] 0 1 1
|
||||||
|
( -144 -128 16 ) ( -143 -128 16 ) ( -144 -128 17 ) tile000 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -13 -176 32 ) ( -13 -177 32 ) ( -13 -176 33 ) tile000 [ -0 1 0 0 ] [ -0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// entity 4
|
||||||
|
{
|
||||||
|
"classname" "func_destructablewall"
|
||||||
|
"extrude_direction" "2"
|
||||||
|
// brush 0
|
||||||
|
{
|
||||||
|
( -208 320 32 ) ( -208 320 33 ) ( -208 319 32 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
||||||
|
( -160 269 32 ) ( -161 269 32 ) ( -160 269 33 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -80 400 16 ) ( -81 400 16 ) ( -80 399 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( -160 320 32 ) ( -160 319 32 ) ( -161 320 32 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
||||||
|
( -80 368 16 ) ( -80 368 17 ) ( -81 368 16 ) tile043 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -80 400 16 ) ( -80 399 16 ) ( -80 400 17 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// entity 5
|
||||||
|
{
|
||||||
|
"classname" "func_destructablewall"
|
||||||
|
// brush 0
|
||||||
|
{
|
||||||
|
( 64 80 32 ) ( 64 80 33 ) ( 64 79 32 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
||||||
|
( 0 29 32 ) ( -1 29 32 ) ( 0 29 33 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 80 160 16 ) ( 79 160 16 ) ( 80 159 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( 0 80 112 ) ( 0 79 112 ) ( -1 80 112 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
||||||
|
( 80 96 16 ) ( 80 96 17 ) ( 79 96 16 ) tile043 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 96 160 16 ) ( 96 159 16 ) ( 96 160 17 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// entity 6
|
||||||
|
{
|
||||||
|
"classname" "func_destructablewall"
|
||||||
|
"extrude_direction" "1"
|
||||||
|
// brush 0
|
||||||
|
{
|
||||||
|
( 0 -80 16 ) ( 0 -80 17 ) ( 0 -81 16 ) tile043 [ 2.220446049250313e-16 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 112 -128 32 ) ( 112 -128 33 ) ( 113 -128 32 ) tile043 [ -1 2.220446049250313e-16 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
||||||
|
( 32 -80 16 ) ( 32 -81 16 ) ( 33 -80 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( 112 -160 112 ) ( 113 -160 112 ) ( 112 -161 112 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
||||||
|
( 32 -112 16 ) ( 33 -112 16 ) ( 32 -112 17 ) tile043 [ 1 -2.220446049250313e-16 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 163 -160 32 ) ( 163 -161 32 ) ( 163 -160 33 ) tile043 [ -2.220446049250313e-16 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// entity 7
|
||||||
|
{
|
||||||
|
"classname" "func_destructablewall"
|
||||||
|
"extrude_direction" "2"
|
||||||
|
// brush 0
|
||||||
|
{
|
||||||
|
( -144 64 48 ) ( -144 64 16 ) ( -128 128 16 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -128 128 16 ) ( -96 128 48 ) ( -144 64 48 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -144 64 48 ) ( -96 64 48 ) ( -96 64 16 ) tile043 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -96 64 16 ) ( -96 128 16 ) ( -128 128 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( -144 64 48 ) ( -96 128 48 ) ( -96 64 48 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( -96 128 16 ) ( -96 128 48 ) ( -128 128 16 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -96 64 48 ) ( -96 128 48 ) ( -96 128 16 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// entity 8
|
||||||
|
{
|
||||||
|
"classname" "func_destructablewall"
|
||||||
|
// brush 0
|
||||||
|
{
|
||||||
|
( 128 0 32 ) ( 128 0 33 ) ( 128 -1 32 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
||||||
|
( 64 -51 32 ) ( 63 -51 32 ) ( 64 -51 33 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 144 80 16 ) ( 143 80 16 ) ( 144 79 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( 64 0 112 ) ( 64 -1 112 ) ( 63 0 112 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
||||||
|
( 144 16 16 ) ( 144 16 17 ) ( 143 16 16 ) tile043 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 129 80 16 ) ( 129 79 16 ) ( 129 80 17 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,146 +8,123 @@
|
|||||||
"_tb_mod" "trenchbroom"
|
"_tb_mod" "trenchbroom"
|
||||||
// brush 0
|
// brush 0
|
||||||
{
|
{
|
||||||
( 272 -512 -16 ) ( 272 -510 -16 ) ( 272 -512 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
( -176 -64 -16 ) ( -176 -63 -16 ) ( -176 -64 -15 ) tile013 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
||||||
( 272 -512 -16 ) ( 272 -512 -15 ) ( 274.125 -512 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
( -64 -224 -16 ) ( -64 -224 -15 ) ( -63 -224 -16 ) tile013 [ 1 0 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
||||||
( 272 -512 -16 ) ( 274.125 -512 -16 ) ( 272 -510 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 0 1 1
|
( -64 -64 -16 ) ( -63 -64 -16 ) ( -64 -63 -16 ) tile013 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
( 544 -256 16 ) ( 544 -254 16 ) ( 546.125 -256 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 0 1 1
|
( 64 64 16 ) ( 64 65 16 ) ( 65 64 16 ) tile013 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
( 544 -256 16 ) ( 546.125 -256 16 ) ( 544 -256 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
( 64 224 16 ) ( 65 224 16 ) ( 64 224 17 ) tile013 [ -1 0 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
||||||
( 544 -256 16 ) ( 544 -256 17 ) ( 544 -254 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
( 192 64 16 ) ( 192 64 17 ) ( 192 65 16 ) tile013 [ 0 1 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
||||||
}
|
}
|
||||||
// brush 1
|
}
|
||||||
|
// entity 1
|
||||||
{
|
{
|
||||||
( 0 -512 -16 ) ( 0 -510 -16 ) ( 0 -512 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
"classname" "func_movingplatform"
|
||||||
( 0 -512 -16 ) ( 0 -512 -15 ) ( 2.125 -512 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
"move_distance" "2"
|
||||||
( 0 -512 -16 ) ( 2.125 -512 -16 ) ( 0 -510 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 0 1 1
|
"move_time" "2"
|
||||||
( 272 -256 16 ) ( 272 -254 16 ) ( 274.125 -256 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 0 1 1
|
"move_direction" "0.0 1.0 0.0"
|
||||||
( 272 -256 16 ) ( 274.125 -256 16 ) ( 272 -256 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
// brush 0
|
||||||
( 272 -256 16 ) ( 272 -256 17 ) ( 272 -254 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
}
|
|
||||||
// brush 2
|
|
||||||
{
|
{
|
||||||
( -272 -512 -16 ) ( -272 -510 -16 ) ( -272 -512 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
( 272 -64 -16 ) ( 272 -63 -16 ) ( 272 -64 -15 ) tile002 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
( -272 -512 -16 ) ( -272 -512 -15 ) ( -269.875 -512 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
( 384 -224 -16 ) ( 384 -224 -15 ) ( 385 -224 -16 ) tile002 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
( -272 -512 -16 ) ( -269.875 -512 -16 ) ( -272 -510 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 90 1 1
|
( 384 -64 -16 ) ( 385 -64 -16 ) ( 384 -63 -16 ) tile002 [ -1 0 0 0 ] [ 0 -1 0 0 ] 180 1 1
|
||||||
( 0 -256 16 ) ( 0 -254 16 ) ( 2.125 -256 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 90 1 1
|
( 512 64 16 ) ( 512 65 16 ) ( 513 64 16 ) tile002 [ 1 0 0 0 ] [ 0 -1 0 0 ] 180 1 1
|
||||||
( 0 -256 16 ) ( 2.125 -256 16 ) ( 0 -256 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
( 512 224 16 ) ( 513 224 16 ) ( 512 224 17 ) tile002 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
( 0 -256 16 ) ( 0 -256 17 ) ( 0 -254 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
( 640 64 16 ) ( 640 64 17 ) ( 640 65 16 ) tile002 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
}
|
}
|
||||||
// brush 3
|
}
|
||||||
|
// entity 2
|
||||||
{
|
{
|
||||||
( -544 -512 -16 ) ( -544 -510 -16 ) ( -544 -512 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
"classname" "func_destructablewall"
|
||||||
( -544 -512 -16 ) ( -544 -512 -15 ) ( -541.875 -512 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
// brush 0
|
||||||
( -544 -512 -16 ) ( -541.875 -512 -16 ) ( -544 -510 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 90 1 1
|
|
||||||
( -272 -256 16 ) ( -272 -254 16 ) ( -269.875 -256 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 90 1 1
|
|
||||||
( -272 -256 16 ) ( -269.875 -256 16 ) ( -272 -256 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
|
||||||
( -272 -256 16 ) ( -272 -256 17 ) ( -272 -254 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
|
||||||
}
|
|
||||||
// brush 4
|
|
||||||
{
|
{
|
||||||
( -544 -256 -16 ) ( -544 -254 -16 ) ( -544 -256 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
( 64 0 32 ) ( 64 0 33 ) ( 64 -1 32 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
||||||
( -544 -256 -16 ) ( -544 -256 -15 ) ( -541.875 -256 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
( 0 -48 32 ) ( -1 -48 32 ) ( 0 -48 33 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
( -544 -256 -16 ) ( -541.875 -256 -16 ) ( -544 -254 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 270 1 1
|
( 80 80 16 ) ( 79 80 16 ) ( 80 79 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
( -272 0 16 ) ( -272 2 16 ) ( -269.875 0 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 270 1 1
|
( 0 0 112 ) ( 0 -1 112 ) ( -1 0 112 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
||||||
( -272 0 16 ) ( -269.875 0 16 ) ( -272 0 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
( 80 16 16 ) ( 80 16 17 ) ( 79 16 16 ) tile043 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
( -272 0 16 ) ( -272 0 17 ) ( -272 2 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
( 96 80 16 ) ( 96 79 16 ) ( 96 80 17 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
}
|
}
|
||||||
// brush 5
|
}
|
||||||
|
// entity 3
|
||||||
{
|
{
|
||||||
( -272 -256 -16 ) ( -272 -254 -16 ) ( -272 -256 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
"classname" "func_destructablewall"
|
||||||
( -272 -256 -16 ) ( -272 -256 -15 ) ( -269.875 -256 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
"extrude_direction" "1"
|
||||||
( -272 -256 -16 ) ( -269.875 -256 -16 ) ( -272 -254 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 270 1 1
|
// brush 0
|
||||||
( 0 0 16 ) ( 0 2 16 ) ( 2.125 0 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 270 1 1
|
|
||||||
( 0 0 16 ) ( 2.125 0 16 ) ( 0 0 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
( 0 0 16 ) ( 0 0 17 ) ( 0 2 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
}
|
|
||||||
// brush 6
|
|
||||||
{
|
{
|
||||||
( 0 -256 -16 ) ( 0 -254 -16 ) ( 0 -256 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
( -176 -96 16 ) ( -176 -96 17 ) ( -176 -97 16 ) "Stone Base/albedo" [ 0 -1 0 0 ] [ -0 -0 -1 0 ] 0 1 1
|
||||||
( 0 -256 -16 ) ( 0 -256 -15 ) ( 2.125 -256 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
( -64 -144 32 ) ( -64 -144 33 ) ( -63 -144 32 ) "Stone Base/albedo" [ 1 0 0 0 ] [ 0 0 -1 320 ] 0 0.05 0.05
|
||||||
( 0 -256 -16 ) ( 2.125 -256 -16 ) ( 0 -254 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 180 1 1
|
( -144 -96 16 ) ( -144 -97 16 ) ( -143 -96 16 ) "Stone Base/albedo" [ -1 0 0 0 ] [ -0 -1 -0 0 ] 0 1 1
|
||||||
( 272 0 16 ) ( 272 2 16 ) ( 274.125 0 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 180 1 1
|
( -64 -176 112 ) ( -63 -176 112 ) ( -64 -177 112 ) "Stone Base/albedo" [ 1 -0 0 0 ] [ -0 -1 0 0 ] 0 1 1
|
||||||
( 272 0 16 ) ( 274.125 0 16 ) ( 272 0 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
( -144 -128 16 ) ( -143 -128 16 ) ( -144 -128 17 ) "Stone Base/albedo" [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
( 272 0 16 ) ( 272 0 17 ) ( 272 2 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
( -13 -176 32 ) ( -13 -177 32 ) ( -13 -176 33 ) "Stone Base/albedo" [ -0 1 0 0 ] [ -0 0 -1 0 ] 0 1 1
|
||||||
}
|
}
|
||||||
// brush 7
|
}
|
||||||
|
// entity 4
|
||||||
{
|
{
|
||||||
( 272 -256 -16 ) ( 272 -254 -16 ) ( 272 -256 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
"classname" "func_destructablewall"
|
||||||
( 272 -256 -16 ) ( 272 -256 -15 ) ( 274.125 -256 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
"extrude_direction" "2"
|
||||||
( 272 -256 -16 ) ( 274.125 -256 -16 ) ( 272 -254 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 180 1 1
|
// brush 0
|
||||||
( 544 0 16 ) ( 544 2 16 ) ( 546.125 0 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 180 1 1
|
|
||||||
( 544 0 16 ) ( 546.125 0 16 ) ( 544 0 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
|
||||||
( 544 0 16 ) ( 544 0 17 ) ( 544 2 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
|
||||||
}
|
|
||||||
// brush 8
|
|
||||||
{
|
{
|
||||||
( 0 0 -16 ) ( 0 2 -16 ) ( 0 0 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
( -208 320 32 ) ( -208 320 33 ) ( -208 319 32 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
||||||
( 0 0 -16 ) ( 0 0 -15 ) ( 2.125 0 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
( -160 269 32 ) ( -161 269 32 ) ( -160 269 33 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
( 0 0 -16 ) ( 2.125 0 -16 ) ( 0 2 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 270 1 1
|
( -80 400 16 ) ( -81 400 16 ) ( -80 399 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
( 272 256 16 ) ( 272 258 16 ) ( 274.125 256 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 270 1 1
|
( -160 320 32 ) ( -160 319 32 ) ( -161 320 32 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
||||||
( 272 256 16 ) ( 274.125 256 16 ) ( 272 256 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
( -80 368 16 ) ( -80 368 17 ) ( -81 368 16 ) tile043 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
( 272 256 16 ) ( 272 256 17 ) ( 272 258 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
( -80 400 16 ) ( -80 399 16 ) ( -80 400 17 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
}
|
}
|
||||||
// brush 9
|
}
|
||||||
|
// entity 5
|
||||||
{
|
{
|
||||||
( -272 0 -16 ) ( -272 2 -16 ) ( -272 0 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
"classname" "func_destructablewall"
|
||||||
( -272 0 -16 ) ( -272 0 -15 ) ( -269.875 0 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
// brush 0
|
||||||
( -272 0 -16 ) ( -269.875 0 -16 ) ( -272 2 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 270 1 1
|
|
||||||
( 0 256 16 ) ( 0 258 16 ) ( 2.125 256 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 270 1 1
|
|
||||||
( 0 256 16 ) ( 2.125 256 16 ) ( 0 256 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
( 0 256 16 ) ( 0 256 17 ) ( 0 258 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
}
|
|
||||||
// brush 10
|
|
||||||
{
|
{
|
||||||
( -544 0 -16 ) ( -544 2 -16 ) ( -544 0 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
( 64 80 32 ) ( 64 80 33 ) ( 64 79 32 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
||||||
( -544 0 -16 ) ( -544 0 -15 ) ( -541.875 0 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
( 0 29 32 ) ( -1 29 32 ) ( 0 29 33 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
( -544 0 -16 ) ( -541.875 0 -16 ) ( -544 2 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 270 1 1
|
( 80 160 16 ) ( 79 160 16 ) ( 80 159 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
( -272 256 16 ) ( -272 258 16 ) ( -269.875 256 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 270 1 1
|
( 0 80 112 ) ( 0 79 112 ) ( -1 80 112 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
||||||
( -272 256 16 ) ( -269.875 256 16 ) ( -272 256 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
( 80 96 16 ) ( 80 96 17 ) ( 79 96 16 ) tile043 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
( -272 256 16 ) ( -272 256 17 ) ( -272 258 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
( 96 160 16 ) ( 96 159 16 ) ( 96 160 17 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
}
|
}
|
||||||
// brush 11
|
}
|
||||||
|
// entity 6
|
||||||
{
|
{
|
||||||
( 272 0 -16 ) ( 272 2 -16 ) ( 272 0 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
"classname" "func_destructablewall"
|
||||||
( 272 0 -16 ) ( 272 0 -15 ) ( 274.125 0 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
"extrude_direction" "1"
|
||||||
( 272 0 -16 ) ( 274.125 0 -16 ) ( 272 2 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 270 1 1
|
// brush 0
|
||||||
( 544 256 16 ) ( 544 258 16 ) ( 546.125 256 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 270 1 1
|
|
||||||
( 544 256 16 ) ( 546.125 256 16 ) ( 544 256 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
( 544 256 16 ) ( 544 256 17 ) ( 544 258 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
}
|
|
||||||
// brush 12
|
|
||||||
{
|
{
|
||||||
( 272 256 -16 ) ( 272 258 -16 ) ( 272 256 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
( 0 -80 16 ) ( 0 -80 17 ) ( 0 -81 16 ) tile043 [ 2.220446049250313e-16 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
( 272 256 -16 ) ( 272 256 -15 ) ( 274.125 256 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
( 112 -128 32 ) ( 112 -128 33 ) ( 113 -128 32 ) tile043 [ -1 2.220446049250313e-16 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
||||||
( 272 256 -16 ) ( 274.125 256 -16 ) ( 272 258 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 90 1 1
|
( 32 -80 16 ) ( 32 -81 16 ) ( 33 -80 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
( 544 512 16 ) ( 544 514 16 ) ( 546.125 512 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 90 1 1
|
( 112 -160 112 ) ( 113 -160 112 ) ( 112 -161 112 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
||||||
( 544 512 16 ) ( 546.125 512 16 ) ( 544 512 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
( 32 -112 16 ) ( 33 -112 16 ) ( 32 -112 17 ) tile043 [ 1 -2.220446049250313e-16 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
( 544 512 16 ) ( 544 512 17 ) ( 544 514 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
( 163 -160 32 ) ( 163 -161 32 ) ( 163 -160 33 ) tile043 [ -2.220446049250313e-16 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
}
|
}
|
||||||
// brush 13
|
}
|
||||||
|
// entity 7
|
||||||
{
|
{
|
||||||
( 0 256 -16 ) ( 0 258 -16 ) ( 0 256 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
"classname" "func_destructablewall"
|
||||||
( 0 256 -16 ) ( 0 256 -15 ) ( 2.125 256 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
"extrude_direction" "2"
|
||||||
( 0 256 -16 ) ( 2.125 256 -16 ) ( 0 258 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 90 1 1
|
// brush 0
|
||||||
( 272 512 16 ) ( 272 514 16 ) ( 274.125 512 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 90 1 1
|
|
||||||
( 272 512 16 ) ( 274.125 512 16 ) ( 272 512 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
|
||||||
( 272 512 16 ) ( 272 512 17 ) ( 272 514 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
|
||||||
}
|
|
||||||
// brush 14
|
|
||||||
{
|
{
|
||||||
( -272 256 -16 ) ( -272 258 -16 ) ( -272 256 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
( -144 64 48 ) ( -144 64 16 ) ( -128 128 16 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
( -272 256 -16 ) ( -272 256 -15 ) ( -269.875 256 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
( -128 128 16 ) ( -96 128 48 ) ( -144 64 48 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
( -272 256 -16 ) ( -269.875 256 -16 ) ( -272 258 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 90 1 1
|
( -144 64 48 ) ( -96 64 48 ) ( -96 64 16 ) tile043 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
( 0 512 16 ) ( 0 514 16 ) ( 2.125 512 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 90 1 1
|
( -96 64 16 ) ( -96 128 16 ) ( -128 128 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
( 0 512 16 ) ( 2.125 512 16 ) ( 0 512 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
( -144 64 48 ) ( -96 128 48 ) ( -96 64 48 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
( 0 512 16 ) ( 0 512 17 ) ( 0 514 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
( -96 128 16 ) ( -96 128 48 ) ( -128 128 16 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -96 64 48 ) ( -96 128 48 ) ( -96 128 16 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
}
|
}
|
||||||
// brush 15
|
}
|
||||||
|
// entity 8
|
||||||
{
|
{
|
||||||
( -544 256 -16 ) ( -544 258 -16 ) ( -544 256 -15 ) tile191 [ 0 -0.5 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
"classname" "func_destructablewall"
|
||||||
( -544 256 -16 ) ( -544 256 -15 ) ( -541.875 256 -16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
// brush 0
|
||||||
( -544 256 -16 ) ( -541.875 256 -16 ) ( -544 258 -16 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 90 1 1
|
{
|
||||||
( -272 512 16 ) ( -272 514 16 ) ( -269.875 512 16 ) tile191 [ 0.47058823529411775 0 0 0 ] [ 0 -0.5 0 0 ] 90 1 1
|
( 128 0 32 ) ( 128 0 33 ) ( 128 -1 32 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
||||||
( -272 512 16 ) ( -269.875 512 16 ) ( -272 512 17 ) tile191 [ -0.47058823529411775 0 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
( 64 -51 32 ) ( 63 -51 32 ) ( 64 -51 33 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
( -272 512 16 ) ( -272 512 17 ) ( -272 514 16 ) tile191 [ 0 0.5 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
( 144 80 16 ) ( 143 80 16 ) ( 144 79 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( 64 0 112 ) ( 64 -1 112 ) ( 63 0 112 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
||||||
|
( 144 16 16 ) ( 144 16 17 ) ( 143 16 16 ) tile043 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 129 80 16 ) ( 129 79 16 ) ( 129 80 17 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,9 @@
|
|||||||
// entity 1
|
// entity 1
|
||||||
{
|
{
|
||||||
"classname" "func_movingplatform"
|
"classname" "func_movingplatform"
|
||||||
|
"move_distance" "2"
|
||||||
|
"move_time" "2"
|
||||||
|
"move_direction" "0.0 1.0 0.0"
|
||||||
// brush 0
|
// brush 0
|
||||||
{
|
{
|
||||||
( 272 -64 -16 ) ( 272 -63 -16 ) ( 272 -64 -15 ) tile002 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
( 272 -64 -16 ) ( 272 -63 -16 ) ( 272 -64 -15 ) tile002 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
@@ -29,3 +32,99 @@
|
|||||||
( 640 64 16 ) ( 640 64 17 ) ( 640 65 16 ) tile002 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
( 640 64 16 ) ( 640 64 17 ) ( 640 65 16 ) tile002 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// entity 2
|
||||||
|
{
|
||||||
|
"classname" "func_destructablewall"
|
||||||
|
// brush 0
|
||||||
|
{
|
||||||
|
( 64 0 32 ) ( 64 0 33 ) ( 64 -1 32 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
||||||
|
( 0 -48 32 ) ( -1 -48 32 ) ( 0 -48 33 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 80 80 16 ) ( 79 80 16 ) ( 80 79 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( 0 0 112 ) ( 0 -1 112 ) ( -1 0 112 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
||||||
|
( 80 16 16 ) ( 80 16 17 ) ( 79 16 16 ) tile043 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 96 80 16 ) ( 96 79 16 ) ( 96 80 17 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// entity 3
|
||||||
|
{
|
||||||
|
"classname" "func_destructablewall"
|
||||||
|
"extrude_direction" "1"
|
||||||
|
// brush 0
|
||||||
|
{
|
||||||
|
( -176 -96 16 ) ( -176 -96 17 ) ( -176 -97 16 ) "Stone Base/albedo" [ 0 -1 0 0 ] [ -0 -0 -1 0 ] 0 0.007 0.007
|
||||||
|
( -64 -144 32 ) ( -64 -144 33 ) ( -63 -144 32 ) "Stone Base/albedo" [ 1 0 0 0 ] [ 0 0 -1 320 ] 0 0.007 0.007
|
||||||
|
( -144 -96 16 ) ( -144 -97 16 ) ( -143 -96 16 ) "Stone Base/albedo" [ -1 0 0 0 ] [ -0 -1 -0 0 ] 0 0.007 0.007
|
||||||
|
( -64 -176 112 ) ( -63 -176 112 ) ( -64 -177 112 ) "Stone Base/albedo" [ 1 -0 0 0 ] [ -0 -1 0 0 ] 0 0.007 0.007
|
||||||
|
( -144 -128 16 ) ( -143 -128 16 ) ( -144 -128 17 ) "Stone Base/albedo" [ -1 0 0 0 ] [ 0 0 -1 320 ] 0 0.007 0.007
|
||||||
|
( -13 -176 32 ) ( -13 -177 32 ) ( -13 -176 33 ) "Stone Base/albedo" [ -0 1 0 0 ] [ -0 0 -1 0 ] 0 0.007 0.007
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// entity 4
|
||||||
|
{
|
||||||
|
"classname" "func_destructablewall"
|
||||||
|
"extrude_direction" "2"
|
||||||
|
// brush 0
|
||||||
|
{
|
||||||
|
( -208 320 32 ) ( -208 320 33 ) ( -208 319 32 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
||||||
|
( -160 269 32 ) ( -161 269 32 ) ( -160 269 33 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -80 400 16 ) ( -81 400 16 ) ( -80 399 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( -160 320 32 ) ( -160 319 32 ) ( -161 320 32 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
||||||
|
( -80 368 16 ) ( -80 368 17 ) ( -81 368 16 ) tile043 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -80 400 16 ) ( -80 399 16 ) ( -80 400 17 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// entity 5
|
||||||
|
{
|
||||||
|
"classname" "func_destructablewall"
|
||||||
|
// brush 0
|
||||||
|
{
|
||||||
|
( 64 80 32 ) ( 64 80 33 ) ( 64 79 32 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
||||||
|
( 0 29 32 ) ( -1 29 32 ) ( 0 29 33 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 80 160 16 ) ( 79 160 16 ) ( 80 159 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( 0 80 112 ) ( 0 79 112 ) ( -1 80 112 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
||||||
|
( 80 96 16 ) ( 80 96 17 ) ( 79 96 16 ) tile043 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 96 160 16 ) ( 96 159 16 ) ( 96 160 17 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// entity 6
|
||||||
|
{
|
||||||
|
"classname" "func_destructablewall"
|
||||||
|
"extrude_direction" "1"
|
||||||
|
// brush 0
|
||||||
|
{
|
||||||
|
( 0 -80 16 ) ( 0 -80 17 ) ( 0 -81 16 ) tile043 [ 2.220446049250313e-16 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 112 -128 32 ) ( 112 -128 33 ) ( 113 -128 32 ) tile043 [ -1 2.220446049250313e-16 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
||||||
|
( 32 -80 16 ) ( 32 -81 16 ) ( 33 -80 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( 112 -160 112 ) ( 113 -160 112 ) ( 112 -161 112 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
||||||
|
( 32 -112 16 ) ( 33 -112 16 ) ( 32 -112 17 ) tile043 [ 1 -2.220446049250313e-16 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 163 -160 32 ) ( 163 -161 32 ) ( 163 -160 33 ) tile043 [ -2.220446049250313e-16 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// entity 7
|
||||||
|
{
|
||||||
|
"classname" "func_destructablewall"
|
||||||
|
"extrude_direction" "2"
|
||||||
|
// brush 0
|
||||||
|
{
|
||||||
|
( -144 64 48 ) ( -144 64 16 ) ( -128 128 16 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -128 128 16 ) ( -96 128 48 ) ( -144 64 48 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -144 64 48 ) ( -96 64 48 ) ( -96 64 16 ) tile043 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -96 64 16 ) ( -96 128 16 ) ( -128 128 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( -144 64 48 ) ( -96 128 48 ) ( -96 64 48 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( -96 128 16 ) ( -96 128 48 ) ( -128 128 16 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -96 64 48 ) ( -96 128 48 ) ( -96 128 16 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// entity 8
|
||||||
|
{
|
||||||
|
"classname" "func_destructablewall"
|
||||||
|
// brush 0
|
||||||
|
{
|
||||||
|
( 128 0 32 ) ( 128 0 33 ) ( 128 -1 32 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
||||||
|
( 64 -51 32 ) ( 63 -51 32 ) ( 64 -51 33 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 144 80 16 ) ( 143 80 16 ) ( 144 79 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( 64 0 112 ) ( 64 -1 112 ) ( 63 0 112 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
||||||
|
( 144 16 16 ) ( 144 16 17 ) ( 143 16 16 ) tile043 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 129 80 16 ) ( 129 79 16 ) ( 129 80 17 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -15,15 +15,6 @@
|
|||||||
( 64 224 16 ) ( 65 224 16 ) ( 64 224 17 ) tile013 [ -1 0 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
( 64 224 16 ) ( 65 224 16 ) ( 64 224 17 ) tile013 [ -1 0 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
||||||
( 192 64 16 ) ( 192 64 17 ) ( 192 65 16 ) tile013 [ 0 1 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
( 192 64 16 ) ( 192 64 17 ) ( 192 65 16 ) tile013 [ 0 1 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
||||||
}
|
}
|
||||||
// brush 1
|
|
||||||
{
|
|
||||||
( -96 -80 16 ) ( -96 -79 16 ) ( -96 -80 17 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( -96 -80 16 ) ( -96 -80 17 ) ( -95 -80 16 ) tile043 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( -96 -80 16 ) ( -95 -80 16 ) ( -96 -79 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
|
||||||
( -16 0 112 ) ( -16 1 112 ) ( -15 0 112 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
|
||||||
( -16 0 32 ) ( -15 0 32 ) ( -16 0 33 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( -80 0 32 ) ( -80 0 33 ) ( -80 1 32 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// entity 1
|
// entity 1
|
||||||
{
|
{
|
||||||
@@ -41,3 +32,84 @@
|
|||||||
( 640 64 16 ) ( 640 64 17 ) ( 640 65 16 ) tile002 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
( 640 64 16 ) ( 640 64 17 ) ( 640 65 16 ) tile002 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// entity 2
|
||||||
|
{
|
||||||
|
"classname" "func_destructablewall"
|
||||||
|
// brush 0
|
||||||
|
{
|
||||||
|
( 64 0 32 ) ( 64 0 33 ) ( 64 -1 32 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
||||||
|
( 0 -48 32 ) ( -1 -48 32 ) ( 0 -48 33 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 80 80 16 ) ( 79 80 16 ) ( 80 79 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( 0 0 112 ) ( 0 -1 112 ) ( -1 0 112 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
||||||
|
( 80 16 16 ) ( 80 16 17 ) ( 79 16 16 ) tile043 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 96 80 16 ) ( 96 79 16 ) ( 96 80 17 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// entity 3
|
||||||
|
{
|
||||||
|
"classname" "func_destructablewall"
|
||||||
|
"extrude_direction" "1"
|
||||||
|
// brush 0
|
||||||
|
{
|
||||||
|
( -176 -96 16 ) ( -176 -96 17 ) ( -176 -97 16 ) "Stone Base/albedo" [ 0 -1 0 0 ] [ -0 -0 -1 0 ] 0 0.25 0.25
|
||||||
|
( -64 -144 32 ) ( -64 -144 33 ) ( -63 -144 32 ) "Stone Base/albedo" [ 1 0 -0 1680 ] [ 0 -0 -1 2400 ] 0 0.06 0.06
|
||||||
|
( -144 -96 16 ) ( -144 -97 16 ) ( -143 -96 16 ) "Stone Base/albedo" [ -1 0 0 0 ] [ -0 -1 -0 0 ] 0 0.25 0.25
|
||||||
|
( -64 -176 112 ) ( -63 -176 112 ) ( -64 -177 112 ) "Stone Base/albedo" [ 1 -0 0 0 ] [ -0 -1 0 0 ] 0 0.25 0.25
|
||||||
|
( -144 -128 16 ) ( -143 -128 16 ) ( -144 -128 17 ) "Stone Base/albedo" [ -1 0 0 1680 ] [ 0 0 -1 2400 ] 0 0.06 0.06
|
||||||
|
( -13 -176 32 ) ( -13 -177 32 ) ( -13 -176 33 ) "Stone Base/albedo" [ -0 1 0 0 ] [ -0 0 -1 0 ] 0 0.25 0.25
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// entity 4
|
||||||
|
{
|
||||||
|
"classname" "func_destructablewall"
|
||||||
|
"extrude_direction" "2"
|
||||||
|
// brush 0
|
||||||
|
{
|
||||||
|
( -208 320 32 ) ( -208 320 33 ) ( -208 319 32 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
||||||
|
( -160 269 32 ) ( -161 269 32 ) ( -160 269 33 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -80 400 16 ) ( -81 400 16 ) ( -80 399 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( -160 320 32 ) ( -160 319 32 ) ( -161 320 32 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
||||||
|
( -80 368 16 ) ( -80 368 17 ) ( -81 368 16 ) tile043 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( -80 400 16 ) ( -80 399 16 ) ( -80 400 17 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// entity 5
|
||||||
|
{
|
||||||
|
"classname" "func_destructablewall"
|
||||||
|
"extrude_direction" "1"
|
||||||
|
// brush 0
|
||||||
|
{
|
||||||
|
( 0 -80 16 ) ( 0 -80 17 ) ( 0 -81 16 ) tile043 [ 2.220446049250313e-16 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 112 -128 32 ) ( 112 -128 33 ) ( 113 -128 32 ) tile043 [ -1 2.220446049250313e-16 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
||||||
|
( 32 -80 16 ) ( 32 -81 16 ) ( 33 -80 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( 112 -160 112 ) ( 113 -160 112 ) ( 112 -161 112 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
||||||
|
( 32 -112 16 ) ( 33 -112 16 ) ( 32 -112 17 ) tile043 [ 1 -2.220446049250313e-16 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 176 -160 32 ) ( 176 -161 32 ) ( 176 -160 33 ) tile043 [ -2.220446049250313e-16 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// entity 6
|
||||||
|
{
|
||||||
|
"classname" "func_destructablewall"
|
||||||
|
// brush 0
|
||||||
|
{
|
||||||
|
( 128 0 32 ) ( 128 0 33 ) ( 128 -1 32 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
||||||
|
( 64 -51 32 ) ( 63 -51 32 ) ( 64 -51 33 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 144 80 16 ) ( 143 80 16 ) ( 144 79 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( 64 0 112 ) ( 64 -1 112 ) ( 63 0 112 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
||||||
|
( 144 16 16 ) ( 144 16 17 ) ( 143 16 16 ) tile043 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 129 80 16 ) ( 129 79 16 ) ( 129 80 17 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// entity 7
|
||||||
|
{
|
||||||
|
"classname" "func_destructablewall"
|
||||||
|
// brush 0
|
||||||
|
{
|
||||||
|
( 64 80 32 ) ( 64 80 33 ) ( 64 79 32 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
||||||
|
( 0 29 32 ) ( -1 29 32 ) ( 0 29 33 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 80 160 16 ) ( 79 160 16 ) ( 80 159 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( 0 80 112 ) ( 0 79 112 ) ( -1 80 112 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
||||||
|
( 80 96 16 ) ( 80 96 17 ) ( 79 96 16 ) tile043 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 96 160 16 ) ( 96 159 16 ) ( 96 160 17 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,60 +0,0 @@
|
|||||||
// Game: demo
|
|
||||||
// Format: Valve
|
|
||||||
// entity 0
|
|
||||||
{
|
|
||||||
"mapversion" "220"
|
|
||||||
"wad" ""
|
|
||||||
"classname" "worldspawn"
|
|
||||||
"_tb_mod" "trenchbroom"
|
|
||||||
// brush 0
|
|
||||||
{
|
|
||||||
( -176 -64 -16 ) ( -176 -63 -16 ) ( -176 -64 -15 ) tile013 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
|
||||||
( -64 -224 -16 ) ( -64 -224 -15 ) ( -63 -224 -16 ) tile013 [ 1 0 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
|
||||||
( -64 -64 -16 ) ( -63 -64 -16 ) ( -64 -63 -16 ) tile013 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
|
||||||
( 64 64 16 ) ( 64 65 16 ) ( 65 64 16 ) tile013 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
|
||||||
( 64 224 16 ) ( 65 224 16 ) ( 64 224 17 ) tile013 [ -1 0 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
|
||||||
( 192 64 16 ) ( 192 64 17 ) ( 192 65 16 ) tile013 [ 0 1 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// entity 1
|
|
||||||
{
|
|
||||||
"classname" "func_movingplatform"
|
|
||||||
"move_distance" "2"
|
|
||||||
"move_time" "2"
|
|
||||||
"move_direction" "0.0 1.0 0.0"
|
|
||||||
// brush 0
|
|
||||||
{
|
|
||||||
( 272 -64 -16 ) ( 272 -63 -16 ) ( 272 -64 -15 ) tile002 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( 384 -224 -16 ) ( 384 -224 -15 ) ( 385 -224 -16 ) tile002 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( 384 -64 -16 ) ( 385 -64 -16 ) ( 384 -63 -16 ) tile002 [ -1 0 0 0 ] [ 0 -1 0 0 ] 180 1 1
|
|
||||||
( 512 64 16 ) ( 512 65 16 ) ( 513 64 16 ) tile002 [ 1 0 0 0 ] [ 0 -1 0 0 ] 180 1 1
|
|
||||||
( 512 224 16 ) ( 513 224 16 ) ( 512 224 17 ) tile002 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( 640 64 16 ) ( 640 64 17 ) ( 640 65 16 ) tile002 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// entity 2
|
|
||||||
{
|
|
||||||
"classname" "func_destructablewall"
|
|
||||||
// brush 0
|
|
||||||
{
|
|
||||||
( -96 -80 16 ) ( -96 -79 16 ) ( -96 -80 17 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( -96 -80 16 ) ( -96 -80 17 ) ( -95 -80 16 ) tile043 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( -96 -80 16 ) ( -95 -80 16 ) ( -96 -79 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
|
||||||
( -16 0 112 ) ( -16 1 112 ) ( -15 0 112 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
|
||||||
( -16 48 32 ) ( -15 48 32 ) ( -16 48 33 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( -80 0 32 ) ( -80 0 33 ) ( -80 1 32 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// entity 3
|
|
||||||
{
|
|
||||||
"classname" "func_destructablewall"
|
|
||||||
// brush 0
|
|
||||||
{
|
|
||||||
( -16 -96 16 ) ( -16 -95 16 ) ( -16 -96 17 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( -16 -96 16 ) ( -16 -96 17 ) ( -15 -96 16 ) tile043 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( -16 -96 16 ) ( -15 -96 16 ) ( -16 -95 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
|
||||||
( 64 -16 112 ) ( 64 -15 112 ) ( 65 -16 112 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
|
||||||
( 64 32 32 ) ( 65 32 32 ) ( 64 32 33 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( 0 -16 32 ) ( 0 -16 33 ) ( 0 -15 32 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,60 +0,0 @@
|
|||||||
// Game: demo
|
|
||||||
// Format: Valve
|
|
||||||
// entity 0
|
|
||||||
{
|
|
||||||
"mapversion" "220"
|
|
||||||
"wad" ""
|
|
||||||
"classname" "worldspawn"
|
|
||||||
"_tb_mod" "trenchbroom"
|
|
||||||
// brush 0
|
|
||||||
{
|
|
||||||
( -176 -64 -16 ) ( -176 -63 -16 ) ( -176 -64 -15 ) tile013 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
|
||||||
( -64 -224 -16 ) ( -64 -224 -15 ) ( -63 -224 -16 ) tile013 [ 1 0 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
|
||||||
( -64 -64 -16 ) ( -63 -64 -16 ) ( -64 -63 -16 ) tile013 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
|
||||||
( 64 64 16 ) ( 64 65 16 ) ( 65 64 16 ) tile013 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
|
||||||
( 64 224 16 ) ( 65 224 16 ) ( 64 224 17 ) tile013 [ -1 0 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
|
||||||
( 192 64 16 ) ( 192 64 17 ) ( 192 65 16 ) tile013 [ 0 1 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// entity 1
|
|
||||||
{
|
|
||||||
"classname" "func_movingplatform"
|
|
||||||
"move_distance" "2"
|
|
||||||
"move_time" "2"
|
|
||||||
"move_direction" "0.0 1.0 0.0"
|
|
||||||
// brush 0
|
|
||||||
{
|
|
||||||
( 272 -64 -16 ) ( 272 -63 -16 ) ( 272 -64 -15 ) tile002 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( 384 -224 -16 ) ( 384 -224 -15 ) ( 385 -224 -16 ) tile002 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( 384 -64 -16 ) ( 385 -64 -16 ) ( 384 -63 -16 ) tile002 [ -1 0 0 0 ] [ 0 -1 0 0 ] 180 1 1
|
|
||||||
( 512 64 16 ) ( 512 65 16 ) ( 513 64 16 ) tile002 [ 1 0 0 0 ] [ 0 -1 0 0 ] 180 1 1
|
|
||||||
( 512 224 16 ) ( 513 224 16 ) ( 512 224 17 ) tile002 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( 640 64 16 ) ( 640 64 17 ) ( 640 65 16 ) tile002 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// entity 2
|
|
||||||
{
|
|
||||||
"classname" "func_destructablewall"
|
|
||||||
// brush 0
|
|
||||||
{
|
|
||||||
( 64 -16 32 ) ( 64 -16 33 ) ( 64 -17 32 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
( 0 -67 32 ) ( -1 -67 32 ) ( 0 -67 33 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( 80 64 16 ) ( 79 64 16 ) ( 80 63 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
|
||||||
( 0 -16 112 ) ( 0 -17 112 ) ( -1 -16 112 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
|
||||||
( 80 32 16 ) ( 80 32 17 ) ( 79 32 16 ) tile043 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( 80 64 16 ) ( 80 63 16 ) ( 80 64 17 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// entity 3
|
|
||||||
{
|
|
||||||
"classname" "func_destructablewall"
|
|
||||||
// brush 0
|
|
||||||
{
|
|
||||||
( -115 -64 32 ) ( -115 -63 32 ) ( -115 -64 33 ) tile043 [ -2.220446049250313e-16 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( 16 -144 16 ) ( 15 -144 16 ) ( 16 -144 17 ) tile043 [ -1 -2.220446049250313e-16 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( 16 -144 16 ) ( 16 -143 16 ) ( 15 -144 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
|
||||||
( -64 -64 112 ) ( -65 -64 112 ) ( -64 -63 112 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
|
||||||
( -64 -128 32 ) ( -64 -128 33 ) ( -65 -128 32 ) tile043 [ 1 2.220446049250313e-16 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
( -16 -144 16 ) ( -16 -144 17 ) ( -16 -143 16 ) tile043 [ 2.220446049250313e-16 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,116 +0,0 @@
|
|||||||
// Game: demo
|
|
||||||
// Format: Valve
|
|
||||||
// entity 0
|
|
||||||
{
|
|
||||||
"mapversion" "220"
|
|
||||||
"wad" ""
|
|
||||||
"classname" "worldspawn"
|
|
||||||
"_tb_mod" "trenchbroom"
|
|
||||||
// brush 0
|
|
||||||
{
|
|
||||||
( -176 -64 -16 ) ( -176 -63 -16 ) ( -176 -64 -15 ) tile013 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
|
||||||
( -64 -224 -16 ) ( -64 -224 -15 ) ( -63 -224 -16 ) tile013 [ 1 0 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
|
||||||
( -64 -64 -16 ) ( -63 -64 -16 ) ( -64 -63 -16 ) tile013 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
|
||||||
( 64 64 16 ) ( 64 65 16 ) ( 65 64 16 ) tile013 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
|
||||||
( 64 224 16 ) ( 65 224 16 ) ( 64 224 17 ) tile013 [ -1 0 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
|
||||||
( 192 64 16 ) ( 192 64 17 ) ( 192 65 16 ) tile013 [ 0 1 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// entity 1
|
|
||||||
{
|
|
||||||
"classname" "func_movingplatform"
|
|
||||||
"move_distance" "2"
|
|
||||||
"move_time" "2"
|
|
||||||
"move_direction" "0.0 1.0 0.0"
|
|
||||||
// brush 0
|
|
||||||
{
|
|
||||||
( 272 -64 -16 ) ( 272 -63 -16 ) ( 272 -64 -15 ) tile002 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( 384 -224 -16 ) ( 384 -224 -15 ) ( 385 -224 -16 ) tile002 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( 384 -64 -16 ) ( 385 -64 -16 ) ( 384 -63 -16 ) tile002 [ -1 0 0 0 ] [ 0 -1 0 0 ] 180 1 1
|
|
||||||
( 512 64 16 ) ( 512 65 16 ) ( 513 64 16 ) tile002 [ 1 0 0 0 ] [ 0 -1 0 0 ] 180 1 1
|
|
||||||
( 512 224 16 ) ( 513 224 16 ) ( 512 224 17 ) tile002 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( 640 64 16 ) ( 640 64 17 ) ( 640 65 16 ) tile002 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// entity 2
|
|
||||||
{
|
|
||||||
"classname" "func_destructablewall"
|
|
||||||
// brush 0
|
|
||||||
{
|
|
||||||
( 64 0 32 ) ( 64 0 33 ) ( 64 -1 32 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
( 0 -48 32 ) ( -1 -48 32 ) ( 0 -48 33 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( 80 80 16 ) ( 79 80 16 ) ( 80 79 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
|
||||||
( 0 0 112 ) ( 0 -1 112 ) ( -1 0 112 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
|
||||||
( 80 16 16 ) ( 80 16 17 ) ( 79 16 16 ) tile043 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( 96 80 16 ) ( 96 79 16 ) ( 96 80 17 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// entity 3
|
|
||||||
{
|
|
||||||
"classname" "func_destructablewall"
|
|
||||||
"extrude_direction" "1"
|
|
||||||
// brush 0
|
|
||||||
{
|
|
||||||
( -176 -80 16 ) ( -176 -80 17 ) ( -176 -81 16 ) tile043 [ 2.220446049250313e-16 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( -64 -128 32 ) ( -64 -128 33 ) ( -63 -128 32 ) tile043 [ -1 2.220446049250313e-16 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
( -144 -80 16 ) ( -144 -81 16 ) ( -143 -80 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
|
||||||
( -64 -160 112 ) ( -63 -160 112 ) ( -64 -161 112 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
|
||||||
( -144 -112 16 ) ( -143 -112 16 ) ( -144 -112 17 ) tile043 [ 1 -2.220446049250313e-16 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( -13 -160 32 ) ( -13 -161 32 ) ( -13 -160 33 ) tile043 [ -2.220446049250313e-16 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// entity 4
|
|
||||||
{
|
|
||||||
"classname" "func_destructablewall"
|
|
||||||
"extrude_direction" "2"
|
|
||||||
// brush 0
|
|
||||||
{
|
|
||||||
( -208 320 32 ) ( -208 320 33 ) ( -208 319 32 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
( -160 269 32 ) ( -161 269 32 ) ( -160 269 33 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( -80 400 16 ) ( -81 400 16 ) ( -80 399 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
|
||||||
( -160 320 32 ) ( -160 319 32 ) ( -161 320 32 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
|
||||||
( -80 368 16 ) ( -80 368 17 ) ( -81 368 16 ) tile043 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( -80 400 16 ) ( -80 399 16 ) ( -80 400 17 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// entity 5
|
|
||||||
{
|
|
||||||
"classname" "func_destructablewall"
|
|
||||||
// brush 0
|
|
||||||
{
|
|
||||||
( 64 80 32 ) ( 64 80 33 ) ( 64 79 32 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
( 0 29 32 ) ( -1 29 32 ) ( 0 29 33 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( 80 160 16 ) ( 79 160 16 ) ( 80 159 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
|
||||||
( 0 80 112 ) ( 0 79 112 ) ( -1 80 112 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
|
||||||
( 80 96 16 ) ( 80 96 17 ) ( 79 96 16 ) tile043 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( 96 160 16 ) ( 96 159 16 ) ( 96 160 17 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// entity 6
|
|
||||||
{
|
|
||||||
"classname" "func_destructablewall"
|
|
||||||
"extrude_direction" "1"
|
|
||||||
// brush 0
|
|
||||||
{
|
|
||||||
( 0 -80 16 ) ( 0 -80 17 ) ( 0 -81 16 ) tile043 [ 2.220446049250313e-16 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( 112 -128 32 ) ( 112 -128 33 ) ( 113 -128 32 ) tile043 [ -1 2.220446049250313e-16 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
( 32 -80 16 ) ( 32 -81 16 ) ( 33 -80 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
|
||||||
( 112 -160 112 ) ( 113 -160 112 ) ( 112 -161 112 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
|
||||||
( 32 -112 16 ) ( 33 -112 16 ) ( 32 -112 17 ) tile043 [ 1 -2.220446049250313e-16 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( 163 -160 32 ) ( 163 -161 32 ) ( 163 -160 33 ) tile043 [ -2.220446049250313e-16 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// entity 7
|
|
||||||
{
|
|
||||||
"classname" "func_destructablewall"
|
|
||||||
"extrude_direction" "2"
|
|
||||||
// brush 0
|
|
||||||
{
|
|
||||||
( -128 112 32 ) ( -144 64 32 ) ( -144 64 16 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( -96 128 16 ) ( -96 128 32 ) ( -128 112 32 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( -144 64 32 ) ( -96 64 32 ) ( -96 64 16 ) tile043 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( -96 64 16 ) ( -96 128 16 ) ( -128 112 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
|
||||||
( -128 112 32 ) ( -96 128 32 ) ( -96 64 32 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
|
||||||
( -96 64 32 ) ( -96 128 32 ) ( -96 128 16 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -51,12 +51,12 @@
|
|||||||
"extrude_direction" "1"
|
"extrude_direction" "1"
|
||||||
// brush 0
|
// brush 0
|
||||||
{
|
{
|
||||||
( -176 -80 16 ) ( -176 -80 17 ) ( -176 -81 16 ) tile043 [ 2.220446049250313e-16 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
( -176 -96 16 ) ( -176 -96 17 ) ( -176 -97 16 ) "Stone Base/albedo" [ 0 -1 0 0 ] [ -0 -0 -1 0 ] 0 0.25 0.25
|
||||||
( -64 -128 32 ) ( -64 -128 33 ) ( -63 -128 32 ) tile043 [ -1 2.220446049250313e-16 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
( -64 -144 32 ) ( -64 -144 33 ) ( -63 -144 32 ) "Stone Base/albedo" [ 1 0 -0 1680 ] [ 0 -0 -1 2400 ] 0 0.06 0.06
|
||||||
( -144 -80 16 ) ( -144 -81 16 ) ( -143 -80 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
( -144 -96 16 ) ( -144 -97 16 ) ( -143 -96 16 ) "Stone Base/albedo" [ -1 0 0 0 ] [ -0 -1 -0 0 ] 0 0.25 0.25
|
||||||
( -64 -160 112 ) ( -63 -160 112 ) ( -64 -161 112 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
( -64 -176 112 ) ( -63 -176 112 ) ( -64 -177 112 ) "Stone Base/albedo" [ 1 -0 0 0 ] [ -0 -1 0 0 ] 0 0.25 0.25
|
||||||
( -144 -112 16 ) ( -143 -112 16 ) ( -144 -112 17 ) tile043 [ 1 -2.220446049250313e-16 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
( -144 -128 16 ) ( -143 -128 16 ) ( -144 -128 17 ) "Stone Base/albedo" [ -1 0 0 1680 ] [ 0 0 -1 2400 ] 0 0.06 0.06
|
||||||
( -13 -160 32 ) ( -13 -161 32 ) ( -13 -160 33 ) tile043 [ -2.220446049250313e-16 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
( -13 -176 32 ) ( -13 -177 32 ) ( -13 -176 33 ) "Stone Base/albedo" [ -0 1 0 0 ] [ -0 0 -1 0 ] 0 0.25 0.25
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// entity 4
|
// entity 4
|
||||||
@@ -78,48 +78,6 @@
|
|||||||
"classname" "func_destructablewall"
|
"classname" "func_destructablewall"
|
||||||
// brush 0
|
// brush 0
|
||||||
{
|
{
|
||||||
( 64 80 32 ) ( 64 80 33 ) ( 64 79 32 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
( 0 29 32 ) ( -1 29 32 ) ( 0 29 33 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( 80 160 16 ) ( 79 160 16 ) ( 80 159 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
|
||||||
( 0 80 112 ) ( 0 79 112 ) ( -1 80 112 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
|
||||||
( 80 96 16 ) ( 80 96 17 ) ( 79 96 16 ) tile043 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( 96 160 16 ) ( 96 159 16 ) ( 96 160 17 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// entity 6
|
|
||||||
{
|
|
||||||
"classname" "func_destructablewall"
|
|
||||||
"extrude_direction" "1"
|
|
||||||
// brush 0
|
|
||||||
{
|
|
||||||
( 0 -80 16 ) ( 0 -80 17 ) ( 0 -81 16 ) tile043 [ 2.220446049250313e-16 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( 112 -128 32 ) ( 112 -128 33 ) ( 113 -128 32 ) tile043 [ -1 2.220446049250313e-16 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
|
||||||
( 32 -80 16 ) ( 32 -81 16 ) ( 33 -80 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
|
||||||
( 112 -160 112 ) ( 113 -160 112 ) ( 112 -161 112 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
|
||||||
( 32 -112 16 ) ( 33 -112 16 ) ( 32 -112 17 ) tile043 [ 1 -2.220446049250313e-16 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( 163 -160 32 ) ( 163 -161 32 ) ( 163 -160 33 ) tile043 [ -2.220446049250313e-16 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// entity 7
|
|
||||||
{
|
|
||||||
"classname" "func_destructablewall"
|
|
||||||
"extrude_direction" "2"
|
|
||||||
// brush 0
|
|
||||||
{
|
|
||||||
( -144 64 48 ) ( -144 64 16 ) ( -128 128 16 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( -128 128 16 ) ( -96 128 48 ) ( -144 64 48 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( -144 64 48 ) ( -96 64 48 ) ( -96 64 16 ) tile043 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( -96 64 16 ) ( -96 128 16 ) ( -128 128 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
|
||||||
( -144 64 48 ) ( -96 128 48 ) ( -96 64 48 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
|
||||||
( -96 128 16 ) ( -96 128 48 ) ( -128 128 16 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
( -96 64 48 ) ( -96 128 48 ) ( -96 128 16 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// entity 8
|
|
||||||
{
|
|
||||||
"classname" "func_destructablewall"
|
|
||||||
// brush 0
|
|
||||||
{
|
|
||||||
( 128 0 32 ) ( 128 0 33 ) ( 128 -1 32 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
( 128 0 32 ) ( 128 0 33 ) ( 128 -1 32 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
||||||
( 64 -51 32 ) ( 63 -51 32 ) ( 64 -51 33 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
( 64 -51 32 ) ( 63 -51 32 ) ( 64 -51 33 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
( 144 80 16 ) ( 143 80 16 ) ( 144 79 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
( 144 80 16 ) ( 143 80 16 ) ( 144 79 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
@@ -128,3 +86,30 @@
|
|||||||
( 129 80 16 ) ( 129 79 16 ) ( 129 80 17 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
( 129 80 16 ) ( 129 79 16 ) ( 129 80 17 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// entity 6
|
||||||
|
{
|
||||||
|
"classname" "func_geo"
|
||||||
|
// brush 0
|
||||||
|
{
|
||||||
|
( 64 80 32 ) ( 64 80 33 ) ( 64 79 32 ) tile043 [ 0 1 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
||||||
|
( 0 29 32 ) ( -1 29 32 ) ( 0 29 33 ) tile043 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 80 160 16 ) ( 79 160 16 ) ( 80 159 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( 0 80 112 ) ( 0 79 112 ) ( -1 80 112 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
||||||
|
( 80 96 16 ) ( 80 96 17 ) ( 79 96 16 ) tile043 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 96 160 16 ) ( 96 159 16 ) ( 96 160 17 ) tile043 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// entity 7
|
||||||
|
{
|
||||||
|
"classname" "func_geo"
|
||||||
|
"extrude_direction" "1"
|
||||||
|
// brush 0
|
||||||
|
{
|
||||||
|
( 0 -96 16 ) ( 0 -96 17 ) ( 0 -97 16 ) tile043 [ 2.220446049250313e-16 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 112 -144 32 ) ( 112 -144 33 ) ( 113 -144 32 ) tile043 [ -1 2.220446049250313e-16 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
||||||
|
( 32 -96 16 ) ( 32 -97 16 ) ( 33 -96 16 ) tile043 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
|
||||||
|
( 112 -176 112 ) ( 113 -176 112 ) ( 112 -177 112 ) tile043 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
|
||||||
|
( 32 -128 16 ) ( 33 -128 16 ) ( 32 -128 17 ) tile043 [ 1 -2.220446049250313e-16 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
( 163 -176 32 ) ( 163 -177 32 ) ( 163 -176 33 ) tile043 [ -2.220446049250313e-16 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
BIN
demo/trenchbroom/textures/Concrete Trimsheet/albedo.png
Normal file
|
After Width: | Height: | Size: 7.5 MiB |
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cgn5jtjilj4o2"
|
||||||
|
path="res://.godot/imported/albedo.png-c9467079c2560110d7a406cbf02b588b.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://trenchbroom/textures/Concrete Trimsheet/albedo.png"
|
||||||
|
dest_files=["res://.godot/imported/albedo.png-c9467079c2560110d7a406cbf02b588b.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
demo/trenchbroom/textures/Concrete Trimsheet/ao.png
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
40
demo/trenchbroom/textures/Concrete Trimsheet/ao.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://b01emixymb3w2"
|
||||||
|
path="res://.godot/imported/ao.png-cc585abad8c5bdd965c9f768c4972044.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://trenchbroom/textures/Concrete Trimsheet/ao.png"
|
||||||
|
dest_files=["res://.godot/imported/ao.png-cc585abad8c5bdd965c9f768c4972044.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
demo/trenchbroom/textures/Concrete Trimsheet/displacement.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://b5ixgw1r8yv0"
|
||||||
|
path="res://.godot/imported/displacement.png-f7acd672c788173cc64aba629b031337.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://trenchbroom/textures/Concrete Trimsheet/displacement.png"
|
||||||
|
dest_files=["res://.godot/imported/displacement.png-f7acd672c788173cc64aba629b031337.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
demo/trenchbroom/textures/Concrete Trimsheet/metalness.png
Normal file
|
After Width: | Height: | Size: 103 KiB |
@@ -0,0 +1,41 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://ddwy3erxcerb1"
|
||||||
|
path.s3tc="res://.godot/imported/metalness.png-811de7d8398e0f7ac5d420b69ae07b8b.s3tc.ctex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://trenchbroom/textures/Concrete Trimsheet/metalness.png"
|
||||||
|
dest_files=["res://.godot/imported/metalness.png-811de7d8398e0f7ac5d420b69ae07b8b.s3tc.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=2
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=0
|
||||||
BIN
demo/trenchbroom/textures/Concrete Trimsheet/normal.png
Normal file
|
After Width: | Height: | Size: 6.6 MiB |
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://2wh1r7d623bj"
|
||||||
|
path="res://.godot/imported/normal.png-561203e071145348ed337aeb4ea37bbe.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://trenchbroom/textures/Concrete Trimsheet/normal.png"
|
||||||
|
dest_files=["res://.godot/imported/normal.png-561203e071145348ed337aeb4ea37bbe.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
demo/trenchbroom/textures/Concrete Trimsheet/roughness.png
Normal file
|
After Width: | Height: | Size: 1.7 MiB |
@@ -0,0 +1,41 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://fnabneyexyga"
|
||||||
|
path.s3tc="res://.godot/imported/roughness.png-366d2753b7f639d68976124291e62a4b.s3tc.ctex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://trenchbroom/textures/Concrete Trimsheet/roughness.png"
|
||||||
|
dest_files=["res://.godot/imported/roughness.png-366d2753b7f639d68976124291e62a4b.s3tc.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=2
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=0
|
||||||
BIN
demo/trenchbroom/textures/Stone Base/albedo.png
Normal file
|
After Width: | Height: | Size: 7.0 MiB |
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://dwhdp7spars2b"
|
uid="uid://cqtxxrpfvymko"
|
||||||
path.s3tc="res://.godot/imported/texture.png-59546a6b6ae00ae598d09228d4c66fd2.s3tc.ctex"
|
path.s3tc="res://.godot/imported/albedo.png-94a1bad07a09df0b9c2c6971f6d1a756.s3tc.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"imported_formats": ["s3tc_bptc"],
|
"imported_formats": ["s3tc_bptc"],
|
||||||
"vram_texture": true
|
"vram_texture": true
|
||||||
@@ -11,8 +11,8 @@ metadata={
|
|||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://assets/textures/texture.png"
|
source_file="res://trenchbroom/textures/Stone Base/albedo.png"
|
||||||
dest_files=["res://.godot/imported/texture.png-59546a6b6ae00ae598d09228d4c66fd2.s3tc.ctex"]
|
dest_files=["res://.godot/imported/albedo.png-94a1bad07a09df0b9c2c6971f6d1a756.s3tc.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
17
demo/trenchbroom/textures/Stone Base/albedo.tres
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
[gd_resource type="StandardMaterial3D" load_steps=6 format=3 uid="uid://bh6w2gaj6r1nf"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cqtxxrpfvymko" path="res://trenchbroom/textures/Stone Base/albedo.png" id="1_bp3ec"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cyk5a2yldx1gj" path="res://trenchbroom/textures/Stone Base/ao.png" id="2_d52id"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://ddwy3erxcerb1" path="res://trenchbroom/textures/Concrete Trimsheet/metalness.png" id="3_8wxnd"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bpbj8v704qrnv" path="res://trenchbroom/textures/Stone Base/normal.png" id="4_niemy"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://fnabneyexyga" path="res://trenchbroom/textures/Concrete Trimsheet/roughness.png" id="5_a0haq"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
albedo_texture = ExtResource("1_bp3ec")
|
||||||
|
metallic = 1.0
|
||||||
|
metallic_specular = 0.0
|
||||||
|
metallic_texture = ExtResource("3_8wxnd")
|
||||||
|
roughness_texture = ExtResource("5_a0haq")
|
||||||
|
normal_texture = ExtResource("4_niemy")
|
||||||
|
ao_texture = ExtResource("2_d52id")
|
||||||
|
texture_filter = 2
|
||||||
BIN
demo/trenchbroom/textures/Stone Base/ao.png
Normal file
|
After Width: | Height: | Size: 2.1 MiB |
41
demo/trenchbroom/textures/Stone Base/ao.png.import
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cyk5a2yldx1gj"
|
||||||
|
path.s3tc="res://.godot/imported/ao.png-f4bde4f93e17cff49491d998d779f05e.s3tc.ctex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://trenchbroom/textures/Stone Base/ao.png"
|
||||||
|
dest_files=["res://.godot/imported/ao.png-f4bde4f93e17cff49491d998d779f05e.s3tc.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=2
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=8
|
||||||
|
roughness/src_normal="res://trenchbroom/textures/Stone Base/normal.png"
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=0
|
||||||
BIN
demo/trenchbroom/textures/Stone Base/displacement.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
41
demo/trenchbroom/textures/Stone Base/displacement.png.import
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bkhltyv2nlja0"
|
||||||
|
path.s3tc="res://.godot/imported/displacement.png-091d413bff0b611e04185243b1b3c4fc.s3tc.ctex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://trenchbroom/textures/Stone Base/displacement.png"
|
||||||
|
dest_files=["res://.godot/imported/displacement.png-091d413bff0b611e04185243b1b3c4fc.s3tc.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=2
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=0
|
||||||
BIN
demo/trenchbroom/textures/Stone Base/metalness.png
Normal file
|
After Width: | Height: | Size: 76 KiB |
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://doknmohl75xnp"
|
uid="uid://d15eqalyirq77"
|
||||||
path.s3tc="res://.godot/imported/t_floormetal1.png-42986c698f9d8b89446ac25d30252b9c.s3tc.ctex"
|
path.s3tc="res://.godot/imported/metalness.png-4d0f08f876483f872b739098571e4533.s3tc.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"imported_formats": ["s3tc_bptc"],
|
"imported_formats": ["s3tc_bptc"],
|
||||||
"vram_texture": true
|
"vram_texture": true
|
||||||
@@ -11,8 +11,8 @@ metadata={
|
|||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://assets/textures/t_floormetal1.png"
|
source_file="res://trenchbroom/textures/Stone Base/metalness.png"
|
||||||
dest_files=["res://.godot/imported/t_floormetal1.png-42986c698f9d8b89446ac25d30252b9c.s3tc.ctex"]
|
dest_files=["res://.godot/imported/metalness.png-4d0f08f876483f872b739098571e4533.s3tc.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
BIN
demo/trenchbroom/textures/Stone Base/normal.png
Normal file
|
After Width: | Height: | Size: 7.3 MiB |
41
demo/trenchbroom/textures/Stone Base/normal.png.import
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bpbj8v704qrnv"
|
||||||
|
path.s3tc="res://.godot/imported/normal.png-6b358cdb8f5db94cc35c6aaf1ca79241.s3tc.ctex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://trenchbroom/textures/Stone Base/normal.png"
|
||||||
|
dest_files=["res://.godot/imported/normal.png-6b358cdb8f5db94cc35c6aaf1ca79241.s3tc.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=2
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=1
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=1
|
||||||
|
roughness/src_normal="res://trenchbroom/textures/Stone Base/normal.png"
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=0
|
||||||
BIN
demo/trenchbroom/textures/Stone Base/roughness.png
Normal file
|
After Width: | Height: | Size: 3.4 MiB |
41
demo/trenchbroom/textures/Stone Base/roughness.png.import
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bst8ahg5ksw7d"
|
||||||
|
path.s3tc="res://.godot/imported/roughness.png-8db90d670ae678b651ee6728ab1574b5.s3tc.ctex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://trenchbroom/textures/Stone Base/roughness.png"
|
||||||
|
dest_files=["res://.godot/imported/roughness.png-8db90d670ae678b651ee6728ab1574b5.s3tc.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=2
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=0
|
||||||
77
src/rectangletree.cpp
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
#include "rectangletree.hpp"
|
||||||
|
#include "godot_cpp/core/class_db.hpp"
|
||||||
|
#include "godot_cpp/variant/packed_int32_array.hpp"
|
||||||
|
#include "godot_cpp/variant/packed_vector2_array.hpp"
|
||||||
|
#include "godot_cpp/variant/vector2.hpp"
|
||||||
|
|
||||||
|
RectangleTree::RectangleTree() {}
|
||||||
|
|
||||||
|
void RectangleTree::_bind_methods() {
|
||||||
|
ClassDB::bind_method(
|
||||||
|
godot::D_METHOD("add", "min_bound", "max_bound", "polygon_index"),
|
||||||
|
&RectangleTree::add);
|
||||||
|
ClassDB::bind_method(godot::D_METHOD("remove", "point"),
|
||||||
|
&RectangleTree::remove);
|
||||||
|
ClassDB::bind_method(godot::D_METHOD("query", "point"),
|
||||||
|
&RectangleTree::query);
|
||||||
|
ClassDB::bind_method(godot::D_METHOD("nearest", "point", "number"),
|
||||||
|
&RectangleTree::nearest);
|
||||||
|
ClassDB::bind_method(godot::D_METHOD("query_rect", "min", "max"),
|
||||||
|
&RectangleTree::query_rect);
|
||||||
|
}
|
||||||
|
|
||||||
|
void RectangleTree::add(const Vector2 &min_bound, const Vector2 &max_bound,
|
||||||
|
const int &polygon_index) {
|
||||||
|
// convert into c++ types from godot types
|
||||||
|
Rect rect = Rect(min_bound.x, min_bound.y, max_bound.x, max_bound.y);
|
||||||
|
|
||||||
|
tree.Insert(rect.min, rect.max, polygon_index);
|
||||||
|
}
|
||||||
|
|
||||||
|
void RectangleTree::remove(const int &polygon_index) {
|
||||||
|
tree.Remove(polygon_index);
|
||||||
|
}
|
||||||
|
|
||||||
|
PackedInt32Array RectangleTree::query(const Vector2 &point) {
|
||||||
|
Rect rect = Rect(point.x, point.y, point.x, point.y);
|
||||||
|
|
||||||
|
PackedInt32Array return_value;
|
||||||
|
auto callbackLambda = [&return_value](int index) {
|
||||||
|
return_value.push_back(index);
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
|
||||||
|
tree.Search(rect.min, rect.max, callbackLambda);
|
||||||
|
|
||||||
|
return return_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
PackedInt32Array RectangleTree::nearest(const Vector2 &point,
|
||||||
|
const int &number) {
|
||||||
|
Rect rect = Rect(point.x, point.y, point.x, point.y);
|
||||||
|
|
||||||
|
PackedInt32Array return_value;
|
||||||
|
auto callbackLambda = [&return_value, &number](int index, float) {
|
||||||
|
return_value.push_back(index);
|
||||||
|
return return_value.size() < number;
|
||||||
|
};
|
||||||
|
|
||||||
|
tree.NNSearch(rect.min, rect.max, callbackLambda);
|
||||||
|
|
||||||
|
return return_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
PackedInt32Array RectangleTree::query_rect(const Vector2 &min,
|
||||||
|
const Vector2 &max) {
|
||||||
|
Rect rect = Rect(min.x, min.y, max.x, max.y);
|
||||||
|
|
||||||
|
PackedInt32Array return_value;
|
||||||
|
auto callbackLambda = [&return_value](int index) {
|
||||||
|
return_value.push_back(index);
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
|
||||||
|
tree.Search(rect.min, rect.max, callbackLambda);
|
||||||
|
|
||||||
|
return return_value;
|
||||||
|
}
|
||||||
55
src/rectangletree.hpp
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "godot_cpp/classes/wrapped.hpp"
|
||||||
|
#include "godot_cpp/variant/packed_int32_array.hpp"
|
||||||
|
#include "godot_cpp/variant/packed_vector2_array.hpp"
|
||||||
|
#include "godot_cpp/variant/vector2.hpp"
|
||||||
|
#include "rtree.h"
|
||||||
|
#include <godot_cpp/classes/object.hpp>
|
||||||
|
#include <godot_cpp/classes/polygon2d.hpp>
|
||||||
|
|
||||||
|
using namespace godot;
|
||||||
|
|
||||||
|
template <class CoordType = float> struct RectTemplate {
|
||||||
|
RectTemplate() {}
|
||||||
|
|
||||||
|
RectTemplate(CoordType a_minX, CoordType a_minY, CoordType a_maxX,
|
||||||
|
CoordType a_maxY) {
|
||||||
|
min[0] = a_minX;
|
||||||
|
min[1] = a_minY;
|
||||||
|
|
||||||
|
max[0] = a_maxX;
|
||||||
|
max[1] = a_maxY;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool operator==(const RectTemplate &o) const {
|
||||||
|
return min[0] == o.min[0] && min[1] == o.min[1] && max[0] == o.max[0] &&
|
||||||
|
max[1] == o.max[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
CoordType min[2];
|
||||||
|
CoordType max[2];
|
||||||
|
};
|
||||||
|
|
||||||
|
// returns an index, accepts 2 dimension floats
|
||||||
|
typedef RTree<int, float, 2> RecTree;
|
||||||
|
typedef RectTemplate<float> Rect;
|
||||||
|
|
||||||
|
class RectangleTree : public Object {
|
||||||
|
GDCLASS(RectangleTree, Object);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
RecTree tree;
|
||||||
|
|
||||||
|
static void _bind_methods();
|
||||||
|
|
||||||
|
public:
|
||||||
|
RectangleTree();
|
||||||
|
|
||||||
|
void add(const Vector2 &min_bound, const Vector2 &max_bound,
|
||||||
|
const int &polgon_index);
|
||||||
|
void remove(const int &polygon_index);
|
||||||
|
PackedInt32Array query(const Vector2 &point);
|
||||||
|
PackedInt32Array nearest(const Vector2 &point, const int &number);
|
||||||
|
PackedInt32Array query_rect(const Vector2 &min, const Vector2 &max);
|
||||||
|
};
|
||||||
BIN
src/rectangletree.o
Normal file
@@ -1,5 +1,6 @@
|
|||||||
#include "register_types.h"
|
#include "register_types.h"
|
||||||
#include "godot_cpp/core/class_db.hpp"
|
#include "godot_cpp/core/class_db.hpp"
|
||||||
|
#include "rectangletree.hpp"
|
||||||
#include "triangulization.hpp"
|
#include "triangulization.hpp"
|
||||||
|
|
||||||
#include <gdextension_interface.h>
|
#include <gdextension_interface.h>
|
||||||
@@ -13,7 +14,8 @@ void initialize_triangulation_module(ModuleInitializationLevel p_level) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
GDREGISTER_CLASS(Triangulization)
|
GDREGISTER_CLASS(Triangulization);
|
||||||
|
GDREGISTER_CLASS(RectangleTree);
|
||||||
}
|
}
|
||||||
|
|
||||||
void uninitialize_triangulation_module(ModuleInitializationLevel p_level) {
|
void uninitialize_triangulation_module(ModuleInitializationLevel p_level) {
|
||||||
|
|||||||
BIN
src/register_types.o
Normal file
10
src/rtree.h
@@ -1,6 +1,16 @@
|
|||||||
#ifndef RTREE_H
|
#ifndef RTREE_H
|
||||||
#define RTREE_H
|
#define RTREE_H
|
||||||
|
|
||||||
|
#define _USE_MATH_DEFINES
|
||||||
|
|
||||||
|
#ifndef M_PI
|
||||||
|
#define M_PI 3.14159265358979323846
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef M_E
|
||||||
|
#define M_E 2.71828182845904523536
|
||||||
|
#endif
|
||||||
|
|
||||||
// NOTE This file compiles under MSVC 6 SP5 and MSVC .Net 2003 it may not work
|
// NOTE This file compiles under MSVC 6 SP5 and MSVC .Net 2003 it may not work
|
||||||
// on other compilers without modification.
|
// on other compilers without modification.
|
||||||
|
|
||||||
|
|||||||