Made capacitors and emitters destroyable

This commit is contained in:
Marco 2025-09-01 16:51:55 +02:00
commit 9dd4b6d6e1
5 changed files with 458 additions and 387 deletions

File diff suppressed because one or more lines are too long

View file

@ -863,9 +863,9 @@
// brush 95
{
( 136 816 16 ) ( 136 817 16 ) ( 136 816 17 ) Walls/Wall1 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 136 816 16 ) ( 136 816 17 ) ( 137 816 16 ) Walls/Wall1 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 136 820 16 ) ( 136 820 17 ) ( 137 820 16 ) Walls/Wall1 [ 1 0 0 0 ] [ 0 0 -1 0 ] 270 1 1
( 136 816 16 ) ( 137 816 16 ) ( 136 817 16 ) Walls/Wall1 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
( 168 824 48 ) ( 168 825 48 ) ( 169 824 48 ) Walls/Wall1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
( 168 824 48 ) ( 168 825 48 ) ( 169 824 48 ) Walls/Wall1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 90 1 1
( 168 824 24 ) ( 169 824 24 ) ( 168 824 25 ) Walls/Wall1 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 216 824 24 ) ( 216 824 25 ) ( 216 825 24 ) Walls/Wall1 [ 0 1 0 0 ] [ 0 0 -1 0 ] 270 1 1
}
@ -898,12 +898,30 @@
}
// brush 99
{
( 8 912 16 ) ( 8 913 16 ) ( 8 912 17 ) Manual/Glass_002 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 8 912 16 ) ( 8 912 17 ) ( 9 912 16 ) Manual/Glass_002 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 8 912 16 ) ( 9 912 16 ) ( 8 913 16 ) Manual/Glass_002 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
( 16 944 40 ) ( 16 945 40 ) ( 17 944 40 ) Manual/Glass_002 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
( 16 944 24 ) ( 17 944 24 ) ( 16 944 25 ) Manual/Glass_002 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 16 944 24 ) ( 16 944 25 ) ( 16 945 24 ) Manual/Glass_002 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 264 816 16 ) ( 264 817 16 ) ( 264 816 17 ) Walls/Wall1 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 216 820 16 ) ( 216 820 17 ) ( 217 820 16 ) Walls/Wall1 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 216 816 16 ) ( 217 816 16 ) ( 216 817 16 ) Walls/Wall1 [ -1 0 0 0 ] [ 0 -1 0 0 ] 90 1 1
( 248 824 32 ) ( 248 825 32 ) ( 249 824 32 ) Walls/Wall1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
( 248 824 24 ) ( 249 824 24 ) ( 248 824 25 ) Walls/Wall1 [ -1 0 0 0 ] [ 0 0 -1 0 ] 90 1 1
( 296 824 24 ) ( 296 824 25 ) ( 296 825 24 ) Walls/Wall1 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
}
// brush 100
{
( 136 792 16 ) ( 136 793 16 ) ( 136 792 17 ) Walls/Wall1 [ 0 -1 0 -8 ] [ 0 0 -1 0 ] 270 1 1
( 136 796 16 ) ( 136 796 17 ) ( 137 796 16 ) Walls/Wall1 [ 1 0 0 0 ] [ 0 0 -1 0 ] 180 1 1
( 136 792 24 ) ( 137 792 24 ) ( 136 793 24 ) Walls/Wall1 [ -1 0 0 0 ] [ 0 -1 0 -24 ] 180 1 1
( 168 800 28 ) ( 168 801 28 ) ( 169 800 28 ) Walls/Wall1 [ 1 0 0 0 ] [ 0 -1 0 -24 ] 0 1 1
( 168 800 24 ) ( 169 800 24 ) ( 168 800 25 ) Walls/Wall1 [ -1 0 0 0 ] [ 0 0 -1 0 ] 270 1 1
( 160 800 24 ) ( 160 800 25 ) ( 160 801 24 ) Walls/Wall1 [ 0 1 0 8 ] [ 0 0 -1 0 ] 270 1 1
}
// brush 101
{
( 156 796 16 ) ( 156 797 16 ) ( 156 796 17 ) Walls/Wall1 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 270 1 1
( 156 796 16 ) ( 156 796 17 ) ( 157 796 16 ) Walls/Wall1 [ 1 0 0 0 ] [ 0 0 -1 0 ] 270 1 1
( 156 796 16 ) ( 157 796 16 ) ( 156 797 16 ) Walls/Wall1 [ -1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
( 160 800 24 ) ( 160 801 24 ) ( 161 800 24 ) Walls/Wall1 [ 1 0 0 0 ] [ 0 -1 0 0 ] 180 1 1
( 160 800 20 ) ( 161 800 20 ) ( 160 800 21 ) Walls/Wall1 [ -1 0 0 0 ] [ 0 0 -1 0 ] 270 1 1
( 160 800 20 ) ( 160 800 21 ) ( 160 801 20 ) Walls/Wall1 [ 0 1 0 0 ] [ 0 0 -1 0 ] 270 1 1
}
}
// entity 1
@ -1576,7 +1594,7 @@
// entity 112
{
"classname" "actor_terminal_big"
"origin" "216 652 28"
"origin" "216 648 28"
"angles" "0 90 0"
}
// entity 113
@ -1676,7 +1694,7 @@
// entity 125
{
"classname" "actor_capacitor_mini"
"origin" "144 800 24"
"origin" "144 808 24"
"target" "danmaku_room_1"
"activationtype" "Disable"
}
@ -1685,7 +1703,7 @@
"classname" "func_move"
"move_pos" "0.0 0.0 -66.0"
"speed" "0.25"
"targetname" "danmaku_room_1"
"targetname" "secret_001"
// brush 0
{
( 48 800 16 ) ( 48 801 16 ) ( 48 800 17 ) Walls/Wall1 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 90 1 1
@ -1736,32 +1754,6 @@
}
// entity 131
{
"classname" "solid_transparent"
// brush 0
{
( 48 856 16 ) ( 48 857 16 ) ( 48 856 17 ) Various/Various3 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 48 856 16 ) ( 48 856 17 ) ( 49 856 16 ) Various/Various3 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 48 856 16 ) ( 49 856 16 ) ( 48 857 16 ) Various/Various3 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
( 56 904 40 ) ( 56 905 40 ) ( 57 904 40 ) Various/Various3 [ 1 0 0 0 ] [ 0 -1 0 0 ] 270 1 1
( 56 904 24 ) ( 57 904 24 ) ( 56 904 25 ) Various/Various3 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 56 904 24 ) ( 56 904 25 ) ( 56 905 24 ) Various/Various3 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
}
}
// entity 132
{
"classname" "solid_transparent"
// brush 0
{
( 72 896 16 ) ( 72 897 16 ) ( 72 896 17 ) Manual/Glass_002 [ 0 -1 0 8 ] [ 0 0 -1 0 ] 90 1 1
( 72 896 16 ) ( 72 896 17 ) ( 73 896 16 ) Manual/Glass_002 [ 1 0 0 -8 ] [ 0 0 -1 0 ] 90 1 1
( 72 896 16 ) ( 73 896 16 ) ( 72 897 16 ) Manual/Glass_002 [ -1 0 0 8 ] [ 0 -1 0 8 ] 90 1 1
( 80 944 40 ) ( 80 945 40 ) ( 81 944 40 ) Manual/Glass_002 [ 1 0 0 -8 ] [ 0 -1 0 8 ] 0 1 1
( 80 944 24 ) ( 81 944 24 ) ( 80 944 25 ) Manual/Glass_002 [ -1 0 0 8 ] [ 0 0 -1 0 ] 90 1 1
( 80 944 24 ) ( 80 944 25 ) ( 80 945 24 ) Manual/Glass_002 [ 0 1 0 -8 ] [ 0 0 -1 0 ] 90 1 1
}
}
// entity 133
{
"classname" "solid_bullet_permeable"
// brush 0
{
@ -1773,7 +1765,7 @@
( 228 896 16 ) ( 228 896 17 ) ( 228 897 16 ) Various/Various3 [ 5.053215498074303e-16 1 0 8 ] [ 0 0 -1 0 ] 90 1 1
}
}
// entity 134
// entity 132
{
"classname" "solid_bullet_permeable"
// brush 0
@ -1786,7 +1778,7 @@
( 172 904 24 ) ( 172 904 25 ) ( 172 905 24 ) Various/Various3 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
}
}
// entity 135
// entity 133
{
"classname" "solid_bullet_permeable"
// brush 0
@ -1799,29 +1791,88 @@
( 172 856 16 ) ( 172 856 17 ) ( 172 857 16 ) Various/Various3 [ 5.053215498074303e-16 1 0 0 ] [ 0 0 -1 0 ] 270 1 1
}
}
// entity 136
// entity 134
{
"classname" "solid_bullet_permeable"
// brush 0
{
( 212 836 16 ) ( 212 837 16 ) ( 212 836 17 ) Various/Various3 [ 0 -1 0 -4 ] [ 0 0 -1 0 ] 270 1 1
( 212 828 16 ) ( 212 828 17 ) ( 213 828 16 ) Various/Various3 [ 1 0 0 -12 ] [ 0 0 -1 0 ] 180 1 1
( 212 824 16 ) ( 212 824 17 ) ( 213 824 16 ) Various/Various3 [ 1 0 0 -12 ] [ 0 0 -1 0 ] 90 1 1
( 212 836 16 ) ( 213 836 16 ) ( 212 837 16 ) Various/Various3 [ -1 0 0 12 ] [ 0 -1 0 -4 ] 270 1 1
( 220 868 32 ) ( 220 869 32 ) ( 221 868 32 ) Various/Various3 [ 1 0 0 -12 ] [ 0 -1 0 -4 ] 0 1 1
( 220 868 24 ) ( 221 868 24 ) ( 220 868 25 ) Various/Various3 [ -1 0 0 12 ] [ 0 0 -1 0 ] 270 1 1
( 216 868 24 ) ( 216 868 25 ) ( 216 869 24 ) Various/Various3 [ 0 1 0 4 ] [ 0 0 -1 0 ] 180 1 1
}
}
// entity 135
{
"classname" "actor_door_1"
"origin" "-196 544 64"
"targetname" "door_4"
}
// entity 136
{
"classname" "actor_keypad"
"origin" "-192 520 64"
"key" "BLUE_KEY"
"target" "door_4"
}
// entity 137
{
"classname" "solid_bullet_permeable"
"classname" "actor_mainframe"
"origin" "272 752 28"
"angles" "0 90 0"
}
// entity 138
{
"classname" "actor_mainframe"
"origin" "288 752 28"
"angles" "0 90 0"
}
// entity 139
{
"classname" "actor_terminal_big"
"origin" "252 752 28"
"angles" "0 90 0"
}
// entity 140
{
"classname" "actor_table"
"origin" "272 796 20"
}
// entity 141
{
"classname" "actor_capacitor"
"origin" "144 944 28"
}
// entity 142
{
"classname" "actor_controlpad"
"origin" "64 860 20"
"target" "secret_001"
}
// entity 143
{
"classname" "func_group"
"_tb_type" "_tb_layer"
"_tb_name" "Shrouds"
"_tb_id" "1"
"_tb_layer_sort_index" "0"
"_tb_layer_hidden" "1"
}
// entity 144
{
"classname" "func_shroud"
"targetname" "secret_001"
"one_time" "1"
"_tb_layer" "1"
// brush 0
{
( 264 828 24 ) ( 264 829 24 ) ( 264 828 25 ) Various/Various3 [ -5.053215498074303e-16 -1 0 -4 ] [ 0 0 -1 0 ] 270 1 1
( 296 824 16 ) ( 295 824 16 ) ( 296 824 17 ) Various/Various3 [ 1 -5.053215498074303e-16 0 0 ] [ 0 0 -1 0 ] 270 1 1
( 296 820 16 ) ( 296 821 16 ) ( 295 820 16 ) Various/Various3 [ -5.053215498074303e-16 -1 0 -4 ] [ 1 -5.053215498074303e-16 0 0 ] 90 1 1
( 264 828 32 ) ( 263 828 32 ) ( 264 829 32 ) Various/Various3 [ 5.053215498074303e-16 1 0 4 ] [ 1 -5.053215498074303e-16 0 0 ] 90 1 1
( 264 828 24 ) ( 264 828 25 ) ( 263 828 24 ) Various/Various3 [ -1 5.053215498074303e-16 0 0 ] [ 0 0 -1 0 ] 0 1 1
( 296 820 16 ) ( 296 820 17 ) ( 296 821 16 ) Various/Various3 [ 5.053215498074303e-16 1 0 4 ] [ 0 0 -1 0 ] 0 1 1
( 48 760 44 ) ( 48 761 44 ) ( 48 760 45 ) Manual/Black [ 0 -1 0 0 ] [ 0 0 -1 -4 ] 180 1 1
( 48 760 44 ) ( 48 760 45 ) ( 49 760 44 ) Manual/Black [ 1 0 0 0 ] [ 0 0 -1 -4 ] 180 1 1
( 48 760 44 ) ( 49 760 44 ) ( 48 761 44 ) Manual/Black [ -1 0 0 0 ] [ 0 -1 0 0 ] 180 1 1
( 128 800 48 ) ( 128 801 48 ) ( 129 800 48 ) Manual/Black [ 1 0 0 0 ] [ 0 -1 0 0 ] 180 1 1
( 128 800 48 ) ( 129 800 48 ) ( 128 800 49 ) Manual/Black [ -1 0 0 0 ] [ 0 0 -1 -4 ] 180 1 1
( 128 800 48 ) ( 128 800 49 ) ( 128 801 48 ) Manual/Black [ 0 1 0 0 ] [ 0 0 -1 -4 ] 180 1 1
}
}

View file

@ -8,7 +8,7 @@
[sub_resource type="CylinderShape3D" id="CylinderShape3D_dkwt8"]
height = 0.882874
[node name="CapacitorMini" type="StaticBody3D"]
[node name="CapacitorMini" type="StaticBody3D" groups=["Destroyable"]]
collision_layer = 16
collision_mask = 0
script = ExtResource("1_lyqcr")

View file

@ -1,7 +1,8 @@
[gd_scene load_steps=6 format=3 uid="uid://d4ek8xjuh6y11"]
[gd_scene load_steps=7 format=3 uid="uid://d4ek8xjuh6y11"]
[ext_resource type="Script" uid="uid://dpibtd73awwp7" path="res://Scripts/Actors/ScriptableBulletsEmitter3D.cs" id="1_dtfaj"]
[ext_resource type="Script" uid="uid://ddsqqfx1usc3j" path="res://Scripts/Resources/DamageResistance.cs" id="2_dtfaj"]
[ext_resource type="Resource" uid="uid://bes254wblt1lm" path="res://Resources/Bullets/3D/Explosion_Harmless_Small_3D.tres" id="2_o5sow"]
[ext_resource type="PackedScene" uid="uid://sy821kigcoqx" path="res://3D/BlockbenchModels/FloorEmitter/Floor_Emitter.gltf" id="3_ro7iq"]
[ext_resource type="Script" uid="uid://bf5f2phitdqw8" path="res://Scripts/Actors/BulletSpawner3D.cs" id="4_0cjnq"]
@ -9,12 +10,13 @@
height = 0.297607
radius = 0.277344
[node name="FloorEmitter" type="StaticBody3D"]
[node name="FloorEmitter" type="StaticBody3D" groups=["Destroyable"]]
collision_layer = 64
collision_mask = 0
script = ExtResource("1_dtfaj")
EmitOnStart = true
Health = 10.0
ExplosionData = ExtResource("2_o5sow")
DamageResistances = Array[ExtResource("2_dtfaj")]([])
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]

View file

@ -1,7 +1,8 @@
[gd_scene load_steps=6 format=3 uid="uid://yath5bvxo3cn"]
[gd_scene load_steps=7 format=3 uid="uid://yath5bvxo3cn"]
[ext_resource type="Script" uid="uid://dpibtd73awwp7" path="res://Scripts/Actors/ScriptableBulletsEmitter3D.cs" id="1_3n1ol"]
[ext_resource type="Script" uid="uid://ddsqqfx1usc3j" path="res://Scripts/Resources/DamageResistance.cs" id="2_eoje4"]
[ext_resource type="Resource" uid="uid://bes254wblt1lm" path="res://Resources/Bullets/3D/Explosion_Harmless_Small_3D.tres" id="2_g6b3n"]
[ext_resource type="PackedScene" uid="uid://lwpt32xplrjw" path="res://3D/BlockbenchModels/WallEmitter/Wall_Emitter.gltf" id="3_3n1ol"]
[ext_resource type="Script" uid="uid://bf5f2phitdqw8" path="res://Scripts/Actors/BulletSpawner3D.cs" id="3_g6b3n"]
@ -9,12 +10,13 @@
height = 0.297607
radius = 0.277344
[node name="WallEmitter" type="StaticBody3D"]
[node name="WallEmitter" type="StaticBody3D" groups=["Destroyable"]]
collision_layer = 64
collision_mask = 0
script = ExtResource("1_3n1ol")
EmitOnStart = true
Health = 10.0
ExplosionData = ExtResource("2_g6b3n")
DamageResistances = Array[ExtResource("2_eoje4")]([])
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]