forgot to push

This commit is contained in:
2024-01-26 00:45:23 +01:00
parent bb763ea4e2
commit 3ce02c2147
28 changed files with 4037 additions and 262 deletions

View File

@@ -1,100 +0,0 @@
# SPDX-FileCopyrightText: 2023 Jummit
#
# SPDX-License-Identifier: MIT
@tool
@icon("destruction_icon.svg")
class_name Destruction
extends Node
## Handles destruction of the parent node.
##
## When [method destroy] is called, the parent node is freed and shards
## are added to the [member shard_container].
## A scene of the fragmented mesh containing multiple [MeshInstance3D]s.
@export var fragmented: PackedScene: set = set_fragmented
## The node where created shards are added to.
@onready @export var shard_container := get_node("../../")
@export_group("Animation")
## How many seconds until the shards fade away. Set to -1 to disable fading.
@export var fade_delay := 2.0
## How many seconds until the shards shrink. Set to -1 to disable shrinking.
@export var shrink_delay := 2.0
## How long the animation lasts before the shard is removed.
@export var animation_length := 2.0
@export_group("Collision")
## The [member RigidBody3D.collision_layer] set on the created shards.
@export_flags_3d_physics var collision_layer = 1
## The [member RigidBody3D.collision_mask] set on the created shards.
@export_flags_3d_physics var collision_mask = 1
## Cached shard meshes (instantiated from [member fragmented]).
static var cached_meshes := {}
## Cached collision shapes.
static var cached_shapes := {}
## Remove the parent node and add shards to the shard container.
func destroy(explosion_power := 1.0) -> void:
if not fragmented in cached_meshes:
cached_meshes[fragmented] = fragmented.instantiate()
for shard_mesh in cached_meshes[fragmented].get_children():
cached_shapes[shard_mesh] = shard_mesh.mesh.create_convex_shape()
var original_meshes = cached_meshes[fragmented]
for original in original_meshes.get_children():
if original is MeshInstance3D:
_add_shard(original, explosion_power)
get_parent().queue_free()
func _add_shard(original: MeshInstance3D, explosion_power: float) -> void:
var body := RigidBody3D.new()
var mesh := MeshInstance3D.new()
var shape := CollisionShape3D.new()
body.add_child(mesh)
body.add_child(shape)
shard_container.add_child(body, true)
body.global_position = get_parent().global_transform.origin + original.position
body.collision_layer = collision_layer
body.collision_mask = collision_mask
shape.shape = cached_shapes[original]
mesh.mesh = original.mesh
if fade_delay >= 0:
var material = original.mesh.surface_get_material(0)
if material is StandardMaterial3D:
material = material.duplicate()
material.flags_transparent = true
get_tree().create_tween().tween_property(material, "albedo_color",
Color(1, 1, 1, 0), animation_length)\
.set_delay(fade_delay)\
.set_trans(Tween.TRANS_EXPO)\
.set_ease(Tween.EASE_OUT)
mesh.material_override = material
else:
push_warning("Shard doesn't use a StandardMaterial3D, can't add transparency.")
body.apply_impulse(_random_direction() * explosion_power,
-original.position.normalized())
if shrink_delay < 0 and fade_delay < 0:
get_tree().create_timer(animation_length)\
.timeout.connect(func(): body.queue_free())
elif shrink_delay >= 0:
var tween := get_tree().create_tween()
tween.tween_property(mesh, "scale", Vector3.ZERO, animation_length)\
.set_delay(shrink_delay)
tween.finished.connect(func(): body.queue_free())
func set_fragmented(to: PackedScene) -> void:
fragmented = to
if is_inside_tree():
get_tree().node_configuration_warning_changed.emit(self)
func _get_configuration_warnings() -> PackedStringArray:
return ["No fragmented version set"] if not fragmented else []
static func _random_direction() -> Vector3:
return (Vector3(randf(), randf(), randf()) - Vector3.ONE / 2.0).normalized() * 2.0

View File

@@ -1,94 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 16 16"
version="1.1"
id="svg6"
sodipodi:docname="destruction_icon.svg"
width="16"
height="16"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata
id="metadata12">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs10" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1131"
id="namedview8"
showgrid="false"
inkscape:zoom="22.627417"
inkscape:cx="11.645165"
inkscape:cy="3.2924659"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="g833"
inkscape:snap-global="false"
inkscape:showpageshadow="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#d1d1d1" />
<g
id="g833">
<path
style="fill:#fc7f7f;fill-opacity:1;stroke-width:0.0434868"
d="M 6.1124514,0.21990751 5.3179785,4.9274647 7.539946,5.6402636 9.1601633,3.7724775 6.1123592,0.21993901 Z"
id="path934"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc" />
<path
style="fill:#fc7f7f;fill-opacity:1;stroke-width:0.0504769"
d="M 11.609494,6.2543511 10.546935,7.2961746 11.599644,9.6605288 15.569415,8.1031384 11.609544,6.2543186 Z"
id="path932"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc" />
<path
style="fill:#fc7f7f;fill-opacity:1;stroke-width:0.0425204"
d="M 0.35089167,5.7394229 3.7991292,8.9407222 5.0837143,6.8823657 4.9404114,4.9535918 0.35084477,5.7395054 Z"
id="path928"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc" />
<path
style="fill:#fc7f7f;fill-opacity:1;stroke-width:0.064974"
d="M 3.9865178,9.5278182 0.84397687,15.149556 7.0836262,12.29648 6.8710224,10.228417 3.9865809,9.5279402 Z"
id="path926"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc" />
<path
style="fill:#fc7f7f;fill-opacity:1;stroke-width:0.0595588"
d="M 14.18702,0.87714727 9.6322453,3.0261429 10.097515,5.3436305 12.605668,5.5752977 14.187044,0.87722377 Z"
id="path2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc" />
<path
inkscape:connector-curvature="0"
id="path936"
d="M 12.202851,10.748434 9.3093393,9.4420942 8.6059995,12.371114 14.224963,15.307286 12.202739,10.748503 Z"
style="fill:#fc7f7f;fill-opacity:1;stroke-width:0.0621997"
sodipodi:nodetypes="cccccc" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -1,37 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://co3om28rgeos3"
path="res://.godot/imported/destruction_icon.svg-716fc5b182e74f5a75cf299975d03542.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/destruction/destruction_icon.svg"
dest_files=["res://.godot/imported/destruction_icon.svg-716fc5b182e74f5a75cf299975d03542.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View File

@@ -1,4 +0,0 @@
SPDX-FileCopyrightText: 2023 Jummit
SPDX-FileContributor: Jummit
SPDX-License-Identifier: CC0-1.0

View File

@@ -1,4 +0,0 @@
SPDX-FileCopyrightText: 2023 Jummit
SPDX-FileContributor: Jummit
SPDX-License-Identifier: CC0-1.0

View File

@@ -1,11 +0,0 @@
; SPDX-FileCopyrightText: 2023 Jummit
;
; SPDX-License-Identifier: MIT
[plugin]
name="Destruction"
description="Destroy 3D objects."
author="Jummit"
version="7.0"
script="plugin.gd"

View File

@@ -1,6 +0,0 @@
# SPDX-FileCopyrightText: 2023 Jummit
#
# SPDX-License-Identifier: MIT
@tool
extends EditorPlugin

View File

@@ -1,3 +0,0 @@
# SPDX-FileCopyrightText: 2023 Jummit
#
# SPDX-License-Identifier: MIT

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,22 @@
[remap]
importer="wavefront_obj"
importer_version=1
type="Mesh"
uid="uid://b63yl40nfg4hi"
path="res://.godot/imported/keyboard_mouse.obj-fdbbdcdc348338479c3d3ddec20b4703.mesh"
[deps]
files=["res://.godot/imported/keyboard_mouse.obj-fdbbdcdc348338479c3d3ddec20b4703.mesh"]
source_file="res://assets/models/keyboard_mouse.obj"
dest_files=["res://.godot/imported/keyboard_mouse.obj-fdbbdcdc348338479c3d3ddec20b4703.mesh", "res://.godot/imported/keyboard_mouse.obj-fdbbdcdc348338479c3d3ddec20b4703.mesh"]
[params]
generate_tangents=true
scale_mesh=Vector3(1, 1, 1)
offset_mesh=Vector3(0, 0, 0)
optimize_mesh=true
force_disable_mesh_compression=false

View File

@@ -10,3 +10,13 @@ Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 2
newmtl Screen
Ns 250.000000
Ka 1.000000 1.000000 1.000000
Kd 0.800000 0.800000 0.800000
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 2

1786
assets/models/screen.obj Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,22 @@
[remap]
importer="wavefront_obj"
importer_version=1
type="Mesh"
uid="uid://5jmm7tn60qa4"
path="res://.godot/imported/screen.obj-324b93289a753e94cfd34f91ddb5533c.mesh"
[deps]
files=["res://.godot/imported/screen.obj-324b93289a753e94cfd34f91ddb5533c.mesh"]
source_file="res://assets/models/screen.obj"
dest_files=["res://.godot/imported/screen.obj-324b93289a753e94cfd34f91ddb5533c.mesh", "res://.godot/imported/screen.obj-324b93289a753e94cfd34f91ddb5533c.mesh"]
[params]
generate_tangents=true
scale_mesh=Vector3(1, 1, 1)
offset_mesh=Vector3(0, 0, 0)
optimize_mesh=true
force_disable_mesh_compression=false

View File

@@ -38,7 +38,6 @@ enabled=PackedStringArray("res://addons/destruction/plugin.cfg")
[file_customization]
folder_colors={
"res://addons/": "purple",
"res://assets/": "pink",
"res://assets/models/": "pink",
"res://resources/": "yellow",

View File

@@ -7,7 +7,7 @@
[ext_resource type="PackedScene" uid="uid://22blfybi6n4q" path="res://scenes/objects/completion_counter.tscn" id="12_vn8j0"]
[ext_resource type="PackedScene" uid="uid://cy0x2nliyw8gw" path="res://scenes/objects/door.tscn" id="13_fhdru"]
[ext_resource type="PackedScene" uid="uid://dqy8bqf1chm8c" path="res://scenes/objects/interactables/button_stand.tscn" id="14_mpdbg"]
[ext_resource type="PackedScene" uid="uid://ced2w03t8er5k" path="res://scenes/objects/cube.tscn" id="15_40os8"]
[ext_resource type="PackedScene" uid="uid://ced2w03t8er5k" path="res://scenes/objects/physics_objects/cube.tscn" id="15_40os8"]
[ext_resource type="AudioStream" uid="uid://cgvbxwsnkbs43" path="res://assets/audio/voicelines/anouncer_lvl1_01.ogg" id="15_b0jr0"]
[ext_resource type="PackedScene" uid="uid://ce8nemacxi67m" path="res://scenes/audio_subtitle_system.tscn" id="16_2wrmg"]
[ext_resource type="AudioStream" uid="uid://bflyad1e0la3d" path="res://assets/audio/voicelines/anouncer_lvl1_02.ogg" id="16_ova7a"]

View File

@@ -1,9 +1,12 @@
[gd_scene load_steps=5 format=3 uid="uid://c17x7kmjmqdk3"]
[gd_scene load_steps=8 format=3 uid="uid://c17x7kmjmqdk3"]
[ext_resource type="PackedScene" uid="uid://ddwkhfly2xyyt" path="res://assets/models/interior.obj" id="1_yhnvx"]
[ext_resource type="Material" uid="uid://bg5hb1744y4ik" path="res://assets/textures/material/planks/planks.material" id="2_58abf"]
[ext_resource type="Material" uid="uid://du8w0x0kmgjui" path="res://assets/textures/material/bricks/bricks.tres" id="3_dimow"]
[ext_resource type="PackedScene" uid="uid://gg5ph541e4p3" path="res://scenes/player.tscn" id="4_s0xrk"]
[ext_resource type="PackedScene" uid="uid://bk4h14lkwp04a" path="res://scenes/objects/furniture/desk.tscn" id="5_u4bki"]
[ext_resource type="PackedScene" uid="uid://ced2w03t8er5k" path="res://scenes/objects/physics_objects/cube.tscn" id="6_ndtyp"]
[ext_resource type="PackedScene" uid="uid://y7mgnooudpqv" path="res://scenes/objects/physics_objects/vent.tscn" id="7_r3yjb"]
[node name="LVL1" type="Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1)
@@ -28,4 +31,13 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 5.23956)
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.965926, 0.258819, 0, -0.258819, 0.965926, 0, 3, 6)
[node name="Desk" parent="." instance=ExtResource("5_u4bki")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.64074, 1, 0)
[node name="Cube" parent="." instance=ExtResource("6_ndtyp")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.920002, 0.15612, 1.95953)
[node name="Vent" parent="." instance=ExtResource("7_r3yjb")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.54621, 2.315, -3.06745)
[editable path="interior"]

View File

@@ -0,0 +1,60 @@
[gd_scene load_steps=10 format=3 uid="uid://bk4h14lkwp04a"]
[ext_resource type="ArrayMesh" uid="uid://xeg8cain6roo" path="res://assets/models/desk.obj" id="1_wrfg2"]
[ext_resource type="Material" uid="uid://cxjgare3kcbtl" path="res://assets/materials/dark_metal2.material" id="2_blvey"]
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_rff84"]
rough = true
bounce = 0.1
absorbent = true
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_pe3pe"]
points = PackedVector3Array(-0.948967, -0.0715381, -1.97243, -0.157877, 0.0696791, 1.98273, -0.157237, -0.0720123, 1.98572, -0.996468, -0.0424462, 1.90316, -0.151093, 0.128383, -1.92802, -0.928025, 0.128383, 1.92802, -0.167725, -0.0979304, -1.93677, -0.928025, 0.128383, -1.92802, -0.950125, -0.128314, 1.92212, -0.950134, -0.128317, -1.92216, -0.162645, -0.0991153, 1.93246, -0.161295, 0.0972037, 1.93867, -0.985687, 0.0660271, -1.85357, -0.784114, -0.13061, 1.95681, -0.784114, -0.13061, -1.95681, -0.996468, -0.0424462, -1.90316, -0.973444, 0.0686439, 1.95374, -0.157864, 0.0696812, -1.98279, -0.985687, 0.0660271, 1.85357, -0.948957, -0.0715362, 1.97238, -0.973453, 0.0686455, -1.95378)
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_whyvt"]
points = PackedVector3Array(-0.142051, 0.0696812, -1.98279, 0.982715, 0.0686545, 1.92611, 0.958948, 0.0692088, 1.96956, 0.769773, -0.13061, 1.95681, 0.951517, -0.125967, -1.88666, -0.128268, -0.097819, 1.93455, 0.942383, 0.128383, -1.92802, -0.137477, 0.0972037, 1.93867, -0.128284, -0.0978218, -1.9346, -0.151079, 0.128383, -1.92802, 0.942383, 0.128383, 1.92802, 0.951517, -0.125967, 1.88666, 0.769773, -0.13061, -1.95681, 0.981495, -0.0707288, -1.9219, -0.142034, 0.0696791, 1.98273, 0.982722, 0.0686554, -1.92613, 0.981488, -0.0707278, 1.92188, 0.958962, 0.0692106, -1.96961, 0.958561, -0.0713845, -1.96813, 0.958547, -0.0713827, 1.96808)
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_siwjc"]
points = PackedVector3Array(-0.810881, -0.100008, -1.75176, -0.930126, -0.100008, -1.75176, -0.962587, -0.074046, -1.96355, -0.779895, -0.0885504, -1.96182, -0.784173, -1.77078, -1.78418, -0.956835, -1.77078, -1.78418, -0.812955, -1.79953, -1.95683, -0.841738, -1.74203, -1.7554, -0.956835, -1.79953, -1.92805, -0.960995, -0.0896945, -1.78072, -0.781061, -0.100008, -1.78159, -0.784173, -1.79953, -1.92805, -0.928052, -1.79953, -1.95683, -0.899269, -1.74203, -1.7554, -0.928052, -1.79953, -1.78418)
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_7t873"]
points = PackedVector3Array(-0.779892, -0.0885187, 1.96183, -0.962594, -0.0739739, 1.96355, -0.930126, -0.100008, 1.75176, -0.784173, -1.77078, 1.78418, -0.956835, -1.77078, 1.78418, -0.812955, -1.79953, 1.95683, -0.781061, -0.100008, 1.78159, -0.956835, -1.79953, 1.92805, -0.841738, -1.74203, 1.7554, -0.960995, -0.089694, 1.78072, -0.810881, -0.100008, 1.75176, -0.784173, -1.79953, 1.92805, -0.928052, -1.79953, 1.95683, -0.899269, -1.74203, 1.7554, -0.812955, -1.79953, 1.78418)
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_c3yul"]
points = PackedVector3Array(0.94501, -0.100008, -1.75176, 0.795997, -0.100008, -1.75176, 0.764835, -0.0887182, -1.9618, 0.971203, -0.13061, -1.95683, 0.942418, -1.79953, -1.78418, 0.769804, -1.77078, -1.81295, 0.942418, -1.77078, -1.95683, 0.85614, -1.74203, -1.7554, 0.798589, -1.77078, -1.95683, 0.971203, -1.77078, -1.81295, 0.977643, -0.0763209, -1.77958, 0.766174, -0.100008, -1.78159, 0.971203, -1.77078, -1.92805, 0.769804, -1.77078, -1.92805, 0.798589, -1.79953, -1.78418, 0.913652, -1.79953, -1.95683)
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_vq4oj"]
points = PackedVector3Array(0.971203, -0.13061, 1.95683, 0.764831, -0.0886864, 1.96181, 0.795997, -0.100008, 1.75176, 0.971203, -1.77078, 1.81295, 0.942418, -1.77078, 1.95683, 0.977643, -0.0763203, 1.77958, 0.769804, -1.77078, 1.92805, 0.85614, -1.74203, 1.7554, 0.769804, -1.77078, 1.81295, 0.94501, -0.100008, 1.75176, 0.766174, -0.100008, 1.78159, 0.827355, -1.79953, 1.95683, 0.971203, -1.77078, 1.92805, 0.942418, -1.79953, 1.78418, 0.798589, -1.79953, 1.78418)
[node name="Desk" type="StaticBody3D"]
collision_priority = 2.0
physics_material_override = SubResource("PhysicsMaterial_rff84")
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
transform = Transform3D(0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, 0, 0, 0)
mesh = ExtResource("1_wrfg2")
surface_material_override/0 = ExtResource("2_blvey")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, 0, 0, 0)
shape = SubResource("ConvexPolygonShape3D_pe3pe")
[node name="CollisionShape3D2" type="CollisionShape3D" parent="."]
transform = Transform3D(0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, 0, 0, 0)
shape = SubResource("ConvexPolygonShape3D_whyvt")
[node name="CollisionShape3D3" type="CollisionShape3D" parent="."]
transform = Transform3D(0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, 0, 0, 0)
shape = SubResource("ConvexPolygonShape3D_siwjc")
[node name="CollisionShape3D4" type="CollisionShape3D" parent="."]
transform = Transform3D(0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, 0, 0, 0)
shape = SubResource("ConvexPolygonShape3D_7t873")
[node name="CollisionShape3D5" type="CollisionShape3D" parent="."]
transform = Transform3D(0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, 0, 0, 0)
shape = SubResource("ConvexPolygonShape3D_c3yul")
[node name="CollisionShape3D6" type="CollisionShape3D" parent="."]
transform = Transform3D(0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, 0, 0, 0)
shape = SubResource("ConvexPolygonShape3D_vq4oj")

View File

@@ -0,0 +1,25 @@
[gd_scene load_steps=5 format=3 uid="uid://n2fxmsp27rfs"]
[ext_resource type="ArrayMesh" uid="uid://dqymak6wgq3bb" path="res://assets/models/wall_holder.obj" id="1_lp6sm"]
[ext_resource type="Material" uid="uid://cxjgare3kcbtl" path="res://assets/materials/dark_metal2.material" id="2_l0awx"]
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_rff84"]
rough = true
bounce = 0.1
absorbent = true
[sub_resource type="BoxShape3D" id="BoxShape3D_m4ear"]
size = Vector3(0.1, 0.1, 0.276709)
[node name="Desk" type="StaticBody3D"]
collision_priority = 2.0
physics_material_override = SubResource("PhysicsMaterial_rff84")
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
transform = Transform3D(0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, 0, 0, 0)
mesh = ExtResource("1_lp6sm")
surface_material_override/0 = ExtResource("2_l0awx")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.132642)
shape = SubResource("BoxShape3D_m4ear")

View File

@@ -0,0 +1,30 @@
[gd_scene load_steps=6 format=3 uid="uid://ryumwinqbqgr"]
[ext_resource type="ArrayMesh" uid="uid://5jmm7tn60qa4" path="res://assets/models/screen.obj" id="1_561hv"]
[ext_resource type="Material" uid="uid://c8bic1or51fbf" path="res://assets/materials/old_plastic.material" id="2_r7j4a"]
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_rff84"]
rough = true
bounce = 0.1
absorbent = true
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_vbaul"]
albedo_color = Color(0, 0, 0, 1)
[sub_resource type="BoxShape3D" id="BoxShape3D_bsmvc"]
size = Vector3(0.894531, 1.15163, 1.1)
[node name="ComputerScreen" type="RigidBody3D" groups=["pushables"]]
collision_priority = 2.0
mass = 1.5
physics_material_override = SubResource("PhysicsMaterial_rff84")
continuous_cd = true
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
mesh = ExtResource("1_561hv")
surface_material_override/0 = ExtResource("2_r7j4a")
surface_material_override/1 = SubResource("StandardMaterial3D_vbaul")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00273436, -0.0842743, 0)
shape = SubResource("BoxShape3D_bsmvc")

View File

@@ -0,0 +1,27 @@
[gd_scene load_steps=5 format=3 uid="uid://jtb3abokylwq"]
[ext_resource type="ArrayMesh" uid="uid://b63yl40nfg4hi" path="res://assets/models/keyboard_mouse.obj" id="1_rgwan"]
[ext_resource type="Material" uid="uid://c8bic1or51fbf" path="res://assets/materials/old_plastic.material" id="2_gdlfn"]
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_rff84"]
rough = true
bounce = 0.1
absorbent = true
[sub_resource type="BoxShape3D" id="BoxShape3D_bsmvc"]
size = Vector3(0.276, 0.04, 0.7)
[node name="Cube" type="RigidBody3D" groups=["pushables"]]
collision_priority = 2.0
mass = 1.5
physics_material_override = SubResource("PhysicsMaterial_rff84")
continuous_cd = true
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
mesh = ExtResource("1_rgwan")
surface_material_override/0 = ExtResource("2_gdlfn")
surface_material_override/1 = ExtResource("2_gdlfn")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.000107422, 0.0221525, -0.0528177)
shape = SubResource("BoxShape3D_bsmvc")

View File

@@ -0,0 +1,33 @@
[gd_scene load_steps=7 format=3 uid="uid://bg2t4r1vey0pg"]
[ext_resource type="ArrayMesh" uid="uid://0w3r7ayg26vy" path="res://assets/models/security_cam.obj" id="1_23hxs"]
[ext_resource type="Material" uid="uid://canvgrlphqagw" path="res://assets/materials/light_metal.material" id="2_7sdra"]
[ext_resource type="Material" uid="uid://cxjgare3kcbtl" path="res://assets/materials/dark_metal2.material" id="3_2tsoq"]
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_rff84"]
rough = true
bounce = 0.1
absorbent = true
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_qn8tl"]
albedo_color = Color(0, 0, 0, 1)
[sub_resource type="BoxShape3D" id="BoxShape3D_bsmvc"]
size = Vector3(0.773401, 0.417932, 0.4)
[node name="Cube" type="RigidBody3D" groups=["pushables"]]
collision_priority = 2.0
mass = 1.5
physics_material_override = SubResource("PhysicsMaterial_rff84")
continuous_cd = true
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
transform = Transform3D(0.4, 0, 0, 0, 0.4, 0, 0, 0, 0.4, 0, 0, 0)
mesh = ExtResource("1_23hxs")
surface_material_override/0 = ExtResource("2_7sdra")
surface_material_override/1 = ExtResource("3_2tsoq")
surface_material_override/2 = SubResource("StandardMaterial3D_qn8tl")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.164203, 0.0343201, 0)
shape = SubResource("BoxShape3D_bsmvc")

View File

@@ -0,0 +1,27 @@
[gd_scene load_steps=5 format=3 uid="uid://y7mgnooudpqv"]
[ext_resource type="ArrayMesh" uid="uid://chtnprm8pe33p" path="res://assets/models/vent.obj" id="1_eu8db"]
[ext_resource type="Material" uid="uid://ctadhqfpd0j5u" path="res://assets/textures/material/metal/metal.material" id="2_dsp1h"]
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_rff84"]
rough = true
bounce = 0.1
absorbent = true
[sub_resource type="BoxShape3D" id="BoxShape3D_bsmvc"]
size = Vector3(0.05, 0.65, 0.8)
[node name="Vent" type="RigidBody3D" groups=["pushables"]]
collision_priority = 2.0
mass = 1.5
physics_material_override = SubResource("PhysicsMaterial_rff84")
freeze = true
continuous_cd = true
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
transform = Transform3D(0.4, 0, 0, 0, 0.4, 0, 0, 0, 0.4, 0, 0, 0)
mesh = ExtResource("1_eu8db")
surface_material_override/0 = ExtResource("2_dsp1h")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
shape = SubResource("BoxShape3D_bsmvc")

Binary file not shown.

Binary file not shown.

Binary file not shown.