mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-19 07:33:48 +00:00
Door and forcefield in TB
This commit is contained in:
parent
650db8986c
commit
52756defba
18 changed files with 880 additions and 628 deletions
Binary file not shown.
BIN
3D/MapModels/actor_door_1.glb
Normal file
BIN
3D/MapModels/actor_door_1.glb
Normal file
Binary file not shown.
BIN
3D/MapModels/actor_forcefield_1.glb
Normal file
BIN
3D/MapModels/actor_forcefield_1.glb
Normal file
Binary file not shown.
BIN
3D/MapModels/actor_keypad.glb
Normal file
BIN
3D/MapModels/actor_keypad.glb
Normal file
Binary file not shown.
File diff suppressed because one or more lines are too long
|
|
@ -3862,6 +3862,30 @@
|
||||||
}
|
}
|
||||||
// entity 215
|
// entity 215
|
||||||
{
|
{
|
||||||
|
"classname" "actor_keypad"
|
||||||
|
"origin" "348 692 36"
|
||||||
|
"key" "BLUE_KEY"
|
||||||
|
"target" "door_secret_1"
|
||||||
|
}
|
||||||
|
// entity 216
|
||||||
|
{
|
||||||
|
"classname" "actor_door_1"
|
||||||
|
"origin" "304 732 32"
|
||||||
|
"targetname" "door_secret_1"
|
||||||
|
}
|
||||||
|
// entity 217
|
||||||
|
{
|
||||||
|
"classname" "actor_forcefield_1"
|
||||||
|
"origin" "344 720 32"
|
||||||
|
"targetname" "forcefield_1"
|
||||||
|
}
|
||||||
|
// entity 218
|
||||||
|
{
|
||||||
|
"classname" "actor_chest_1"
|
||||||
|
"origin" "264 712 24"
|
||||||
|
}
|
||||||
|
// entity 219
|
||||||
|
{
|
||||||
"classname" "func_group"
|
"classname" "func_group"
|
||||||
"_tb_type" "_tb_layer"
|
"_tb_type" "_tb_layer"
|
||||||
"_tb_name" "Computer Room"
|
"_tb_name" "Computer Room"
|
||||||
|
|
@ -3940,37 +3964,37 @@
|
||||||
( 104 -200 60 ) ( 104 -200 61 ) ( 104 -199 60 ) Manual/Blue_Panel_Wall [ 0 1 0 -16 ] [ 0 0 -1 24 ] 0 1 1
|
( 104 -200 60 ) ( 104 -200 61 ) ( 104 -199 60 ) Manual/Blue_Panel_Wall [ 0 1 0 -16 ] [ 0 0 -1 24 ] 0 1 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// entity 216
|
// entity 220
|
||||||
{
|
{
|
||||||
"classname" "actor_table"
|
"classname" "actor_table"
|
||||||
"origin" "48 -164 60"
|
"origin" "48 -164 60"
|
||||||
"_tb_layer" "37"
|
"_tb_layer" "37"
|
||||||
}
|
}
|
||||||
// entity 217
|
// entity 221
|
||||||
{
|
{
|
||||||
"classname" "actor_terminal_big"
|
"classname" "actor_terminal_big"
|
||||||
"origin" "8 -140 68"
|
"origin" "8 -140 68"
|
||||||
"_tb_layer" "37"
|
"_tb_layer" "37"
|
||||||
}
|
}
|
||||||
// entity 218
|
// entity 222
|
||||||
{
|
{
|
||||||
"classname" "actor_terminal_big"
|
"classname" "actor_terminal_big"
|
||||||
"origin" "8 -164 68"
|
"origin" "8 -164 68"
|
||||||
"_tb_layer" "37"
|
"_tb_layer" "37"
|
||||||
}
|
}
|
||||||
// entity 219
|
// entity 223
|
||||||
{
|
{
|
||||||
"classname" "actor_mainframe"
|
"classname" "actor_mainframe"
|
||||||
"origin" "8 -184 68"
|
"origin" "8 -184 68"
|
||||||
"_tb_layer" "37"
|
"_tb_layer" "37"
|
||||||
}
|
}
|
||||||
// entity 220
|
// entity 224
|
||||||
{
|
{
|
||||||
"classname" "actor_mainframe"
|
"classname" "actor_mainframe"
|
||||||
"origin" "8 -200 68"
|
"origin" "8 -200 68"
|
||||||
"_tb_layer" "37"
|
"_tb_layer" "37"
|
||||||
}
|
}
|
||||||
// entity 221
|
// entity 225
|
||||||
{
|
{
|
||||||
"classname" "actor_terminal"
|
"classname" "actor_terminal"
|
||||||
"origin" "48 -168 68"
|
"origin" "48 -168 68"
|
||||||
|
|
|
||||||
|
|
@ -24,4 +24,5 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00500488, 0.00234985, -0.0
|
||||||
shape = SubResource("BoxShape3D_7axon")
|
shape = SubResource("BoxShape3D_7axon")
|
||||||
|
|
||||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
||||||
|
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
|
||||||
mesh = SubResource("QuadMesh_hfile")
|
mesh = SubResource("QuadMesh_hfile")
|
||||||
|
|
|
||||||
33
3D/Scenes/Props/Key_Pad_3D.tscn
Normal file
33
3D/Scenes/Props/Key_Pad_3D.tscn
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
[gd_scene load_steps=6 format=3 uid="uid://bd12hm40bg5mt"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://qxh76ahgexqa" path="res://Scripts/Interactables/Switch3D.cs" id="1_l7ayv"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://d24g1qb40t72l" path="res://Sprites/Button_Small.png" id="2_d7f2j"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://bjvklk7qmlivd" path="res://SFX/288963__littlerobotsoundfactory__click_electronic_14.wav" id="3_gv7k2"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://qs3vxatub5lc" path="res://3D/BlockbenchModels/Keypad/Key_Pad.gltf" id="4_l7ayv"]
|
||||||
|
|
||||||
|
[sub_resource type="SphereShape3D" id="SphereShape3D_itd0i"]
|
||||||
|
radius = 0.868968
|
||||||
|
|
||||||
|
[node name="KeyPad" type="Area3D" groups=["Interactable"]]
|
||||||
|
collision_layer = 32
|
||||||
|
collision_mask = 0
|
||||||
|
script = ExtResource("1_l7ayv")
|
||||||
|
metadata/_edit_group_ = true
|
||||||
|
|
||||||
|
[node name="Sprite3D" type="Sprite3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 0, 0)
|
||||||
|
visible = false
|
||||||
|
pixel_size = 0.1
|
||||||
|
texture_filter = 0
|
||||||
|
texture = ExtResource("2_d7f2j")
|
||||||
|
hframes = 4
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||||
|
shape = SubResource("SphereShape3D_itd0i")
|
||||||
|
|
||||||
|
[node name="ActivationSound" type="AudioStreamPlayer3D" parent="."]
|
||||||
|
visible = false
|
||||||
|
stream = ExtResource("3_gv7k2")
|
||||||
|
bus = &"Effects"
|
||||||
|
|
||||||
|
[node name="blockbench_export" parent="." instance=ExtResource("4_l7ayv")]
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
[gd_resource type="Resource" script_class="FuncGodotFGDBaseClass" load_steps=2 format=3 uid="uid://dwc3j47cgj78j"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://6o4wbl0iau0v" path="res://addons/func_godot/src/fgd/func_godot_fgd_base_class.gd" id="1_tkd7e"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
script = ExtResource("1_tkd7e")
|
||||||
|
classname = "Requirement_Key"
|
||||||
|
description = "Key Requirement"
|
||||||
|
func_godot_internal = false
|
||||||
|
base_classes = Array[Resource]([])
|
||||||
|
class_properties = {
|
||||||
|
"key": {
|
||||||
|
"BLUE_KEY": "BLUE_KEY",
|
||||||
|
"GENERIC_KEY": "GENERIC_KEY",
|
||||||
|
"GREEN_KEY": "GREEN_KEY",
|
||||||
|
"RED_KEY": "RED_KEY",
|
||||||
|
"YELLOW_KEY": "YELLOW_KEY"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
class_property_descriptions = {
|
||||||
|
"key": "The key to use as requirement"
|
||||||
|
}
|
||||||
|
auto_apply_to_matching_node_properties = false
|
||||||
|
meta_properties = {
|
||||||
|
"color": Color(0.8, 0.8, 0.8, 1),
|
||||||
|
"size": AABB(-8, -8, -8, 8, 8, 8)
|
||||||
|
}
|
||||||
|
node_class = ""
|
||||||
|
name_property = ""
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
[gd_resource type="Resource" script_class="FuncGodotFGDModelPointClass" load_steps=5 format=3 uid="uid://vuuarep4h5w2"]
|
||||||
|
|
||||||
|
[ext_resource type="Resource" uid="uid://5bc1qysixhmh" path="res://3D/TrenchBroom/EntityDefinitions/base/actor_base.tres" id="1_3puc0"]
|
||||||
|
[ext_resource type="Resource" uid="uid://c1utxplehq2jl" path="res://3D/TrenchBroom/EntityDefinitions/base/targetname_base.tres" id="2_7csyq"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://c0262d4ffxx1w" path="res://3D/Scenes/Props/Door_Path_3D.tscn" id="3_7csyq"]
|
||||||
|
[ext_resource type="Script" uid="uid://dkmyelig23ub5" path="res://addons/func_godot/src/fgd/func_godot_fgd_model_point_class.gd" id="3_gqtxh"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
script = ExtResource("3_gqtxh")
|
||||||
|
target_map_editor = 1
|
||||||
|
models_sub_folder = ""
|
||||||
|
scale_expression = ""
|
||||||
|
generate_size_property = false
|
||||||
|
rotation_offset = Vector3(0, 0, 0)
|
||||||
|
generate_gd_ignore_file = false
|
||||||
|
scene_file = ExtResource("3_7csyq")
|
||||||
|
apply_rotation_on_map_build = true
|
||||||
|
apply_scale_on_map_build = false
|
||||||
|
classname = "actor_door_1"
|
||||||
|
description = "Door Type 1"
|
||||||
|
func_godot_internal = false
|
||||||
|
base_classes = Array[Resource]([ExtResource("1_3puc0"), ExtResource("2_7csyq")])
|
||||||
|
class_properties = {}
|
||||||
|
class_property_descriptions = {}
|
||||||
|
auto_apply_to_matching_node_properties = false
|
||||||
|
meta_properties = {
|
||||||
|
"model": "\"3D/MapModels/actor_door_1.glb\"",
|
||||||
|
"size": AABB(-4, -16, -16, 4, 16, 16)
|
||||||
|
}
|
||||||
|
node_class = ""
|
||||||
|
name_property = ""
|
||||||
|
metadata/_custom_type_script = "uid://c83r7t467hm4m"
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
[gd_resource type="Resource" script_class="FuncGodotFGDModelPointClass" load_steps=5 format=3 uid="uid://cc881gocw0au4"]
|
||||||
|
|
||||||
|
[ext_resource type="Resource" uid="uid://5bc1qysixhmh" path="res://3D/TrenchBroom/EntityDefinitions/base/actor_base.tres" id="1_wufju"]
|
||||||
|
[ext_resource type="Resource" uid="uid://c1utxplehq2jl" path="res://3D/TrenchBroom/EntityDefinitions/base/targetname_base.tres" id="2_6wd32"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dioiq4nb7kiet" path="res://3D/Scenes/Props/ForceField_3D.tscn" id="3_wufju"]
|
||||||
|
[ext_resource type="Script" uid="uid://dkmyelig23ub5" path="res://addons/func_godot/src/fgd/func_godot_fgd_model_point_class.gd" id="4_jvva7"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
script = ExtResource("4_jvva7")
|
||||||
|
target_map_editor = 1
|
||||||
|
models_sub_folder = ""
|
||||||
|
scale_expression = ""
|
||||||
|
generate_size_property = false
|
||||||
|
rotation_offset = Vector3(0, 180, 0)
|
||||||
|
generate_gd_ignore_file = false
|
||||||
|
scene_file = ExtResource("3_wufju")
|
||||||
|
apply_rotation_on_map_build = true
|
||||||
|
apply_scale_on_map_build = false
|
||||||
|
classname = "actor_forcefield_1"
|
||||||
|
description = "Forcefield Type 1"
|
||||||
|
func_godot_internal = false
|
||||||
|
base_classes = Array[Resource]([ExtResource("1_wufju"), ExtResource("2_6wd32")])
|
||||||
|
class_properties = {}
|
||||||
|
class_property_descriptions = {}
|
||||||
|
auto_apply_to_matching_node_properties = false
|
||||||
|
meta_properties = {
|
||||||
|
"model": "\"3D/MapModels/actor_forcefield_1.glb\"",
|
||||||
|
"size": AABB(-4, -16, -16, 4, 16, 16)
|
||||||
|
}
|
||||||
|
node_class = ""
|
||||||
|
name_property = ""
|
||||||
|
metadata/_custom_type_script = "uid://c83r7t467hm4m"
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
script = ExtResource("3_6p0lm")
|
script = ExtResource("3_6p0lm")
|
||||||
target_map_editor = 0
|
target_map_editor = 1
|
||||||
models_sub_folder = ""
|
models_sub_folder = ""
|
||||||
scale_expression = ""
|
scale_expression = ""
|
||||||
generate_size_property = false
|
generate_size_property = false
|
||||||
|
|
@ -23,9 +23,7 @@ class_properties = {}
|
||||||
class_property_descriptions = {}
|
class_property_descriptions = {}
|
||||||
auto_apply_to_matching_node_properties = false
|
auto_apply_to_matching_node_properties = false
|
||||||
meta_properties = {
|
meta_properties = {
|
||||||
"model": "\"3D/MapModels/Barrel3DModel.glb\"",
|
"size": AABB(-8, -8, -8, 8, 8, 8)
|
||||||
"size": AABB(-8, -8, -8, 8, 8, 8),
|
|
||||||
"studio": "\"3D/MapModels/actor_chest_1.glb\""
|
|
||||||
}
|
}
|
||||||
node_class = ""
|
node_class = ""
|
||||||
name_property = ""
|
name_property = ""
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
[gd_resource type="Resource" script_class="FuncGodotFGDModelPointClass" load_steps=6 format=3 uid="uid://1ew6u5xe3xhb"]
|
||||||
|
|
||||||
|
[ext_resource type="Resource" uid="uid://5bc1qysixhmh" path="res://3D/TrenchBroom/EntityDefinitions/base/actor_base.tres" id="1_ercjo"]
|
||||||
|
[ext_resource type="Resource" uid="uid://kerywjgft7vh" path="res://3D/TrenchBroom/EntityDefinitions/base/target_base.tres" id="2_wyj6h"]
|
||||||
|
[ext_resource type="Resource" uid="uid://dwc3j47cgj78j" path="res://3D/TrenchBroom/EntityDefinitions/base/requirement_key_base.tres" id="3_wyj6h"]
|
||||||
|
[ext_resource type="Script" uid="uid://dkmyelig23ub5" path="res://addons/func_godot/src/fgd/func_godot_fgd_model_point_class.gd" id="4_8crxf"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bd12hm40bg5mt" path="res://3D/Scenes/Props/Key_Pad_3D.tscn" id="4_wyj6h"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
script = ExtResource("4_8crxf")
|
||||||
|
target_map_editor = 1
|
||||||
|
models_sub_folder = ""
|
||||||
|
scale_expression = ""
|
||||||
|
generate_size_property = false
|
||||||
|
rotation_offset = Vector3(0, 180, 0)
|
||||||
|
generate_gd_ignore_file = false
|
||||||
|
scene_file = ExtResource("4_wyj6h")
|
||||||
|
apply_rotation_on_map_build = true
|
||||||
|
apply_scale_on_map_build = false
|
||||||
|
classname = "actor_keypad"
|
||||||
|
description = "Key Pad"
|
||||||
|
func_godot_internal = false
|
||||||
|
base_classes = Array[Resource]([ExtResource("1_ercjo"), ExtResource("2_wyj6h"), ExtResource("3_wyj6h")])
|
||||||
|
class_properties = {}
|
||||||
|
class_property_descriptions = {}
|
||||||
|
auto_apply_to_matching_node_properties = false
|
||||||
|
meta_properties = {
|
||||||
|
"size": AABB(-4, -4, -4, 4, 4, 4)
|
||||||
|
}
|
||||||
|
node_class = ""
|
||||||
|
name_property = ""
|
||||||
|
metadata/_custom_type_script = "uid://c83r7t467hm4m"
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_resource type="Resource" script_class="FuncGodotFGDFile" load_steps=10 format=3 uid="uid://onsfttdpojex"]
|
[gd_resource type="Resource" script_class="FuncGodotFGDFile" load_steps=11 format=3 uid="uid://onsfttdpojex"]
|
||||||
|
|
||||||
[ext_resource type="Resource" uid="uid://kerywjgft7vh" path="res://3D/TrenchBroom/EntityDefinitions/base/target_base.tres" id="1_abw2p"]
|
[ext_resource type="Resource" uid="uid://kerywjgft7vh" path="res://3D/TrenchBroom/EntityDefinitions/base/target_base.tres" id="1_abw2p"]
|
||||||
[ext_resource type="Script" uid="uid://cknmd0lgmorx2" path="res://addons/func_godot/src/fgd/func_godot_fgd_file.gd" id="1_p3xok"]
|
[ext_resource type="Script" uid="uid://cknmd0lgmorx2" path="res://addons/func_godot/src/fgd/func_godot_fgd_file.gd" id="1_p3xok"]
|
||||||
|
|
@ -9,6 +9,7 @@
|
||||||
[ext_resource type="Resource" uid="uid://bfjnt8q3l2p65" path="res://3D/TrenchBroom/EntityDefinitions/base/func_base.tres" id="6_1xsdl"]
|
[ext_resource type="Resource" uid="uid://bfjnt8q3l2p65" path="res://3D/TrenchBroom/EntityDefinitions/base/func_base.tres" id="6_1xsdl"]
|
||||||
[ext_resource type="Resource" uid="uid://ermxog0n4mvn" path="res://3D/TrenchBroom/EntityDefinitions/base/trigger_base.tres" id="7_2isdf"]
|
[ext_resource type="Resource" uid="uid://ermxog0n4mvn" path="res://3D/TrenchBroom/EntityDefinitions/base/trigger_base.tres" id="7_2isdf"]
|
||||||
[ext_resource type="Resource" uid="uid://di5wnbv5icxtq" path="res://3D/TrenchBroom/EntityDefinitions/base/dialogue_base.tres" id="8_2isdf"]
|
[ext_resource type="Resource" uid="uid://di5wnbv5icxtq" path="res://3D/TrenchBroom/EntityDefinitions/base/dialogue_base.tres" id="8_2isdf"]
|
||||||
|
[ext_resource type="Resource" uid="uid://dwc3j47cgj78j" path="res://3D/TrenchBroom/EntityDefinitions/base/requirement_key_base.tres" id="9_htav4"]
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
script = ExtResource("1_p3xok")
|
script = ExtResource("1_p3xok")
|
||||||
|
|
@ -16,5 +17,5 @@ export_file = false
|
||||||
target_map_editor = 1
|
target_map_editor = 1
|
||||||
fgd_name = "FuncGodot"
|
fgd_name = "FuncGodot"
|
||||||
base_fgd_files = Array[Resource]([])
|
base_fgd_files = Array[Resource]([])
|
||||||
entity_definitions = Array[Resource]([ExtResource("1_abw2p"), ExtResource("2_entxp"), ExtResource("1_wfoxw"), ExtResource("5_mkw5g"), ExtResource("2_abw2p"), ExtResource("6_1xsdl"), ExtResource("7_2isdf"), ExtResource("8_2isdf")])
|
entity_definitions = Array[Resource]([ExtResource("1_abw2p"), ExtResource("2_entxp"), ExtResource("1_wfoxw"), ExtResource("5_mkw5g"), ExtResource("2_abw2p"), ExtResource("6_1xsdl"), ExtResource("7_2isdf"), ExtResource("8_2isdf"), ExtResource("9_htav4")])
|
||||||
metadata/_custom_type_script = "uid://cknmd0lgmorx2"
|
metadata/_custom_type_script = "uid://cknmd0lgmorx2"
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_resource type="Resource" script_class="FuncGodotFGDFile" load_steps=30 format=3 uid="uid://b700sa4be6dfa"]
|
[gd_resource type="Resource" script_class="FuncGodotFGDFile" load_steps=33 format=3 uid="uid://b700sa4be6dfa"]
|
||||||
|
|
||||||
[ext_resource type="Resource" uid="uid://ia1t5p4mhom3" path="res://3D/TrenchBroom/EntityDefinitions/point/lights/light_omni.tres" id="1_7vcj1"]
|
[ext_resource type="Resource" uid="uid://ia1t5p4mhom3" path="res://3D/TrenchBroom/EntityDefinitions/point/lights/light_omni.tres" id="1_7vcj1"]
|
||||||
[ext_resource type="Script" uid="uid://cknmd0lgmorx2" path="res://addons/func_godot/src/fgd/func_godot_fgd_file.gd" id="1_lykim"]
|
[ext_resource type="Script" uid="uid://cknmd0lgmorx2" path="res://addons/func_godot/src/fgd/func_godot_fgd_file.gd" id="1_lykim"]
|
||||||
|
|
@ -29,6 +29,9 @@
|
||||||
[ext_resource type="Resource" uid="uid://clbpsv6t4qamd" path="res://3D/TrenchBroom/EntityDefinitions/point/actors/Actor_Furniture_Shelf.tres" id="26_v48k5"]
|
[ext_resource type="Resource" uid="uid://clbpsv6t4qamd" path="res://3D/TrenchBroom/EntityDefinitions/point/actors/Actor_Furniture_Shelf.tres" id="26_v48k5"]
|
||||||
[ext_resource type="Resource" uid="uid://cdlo7qrub1bbd" path="res://3D/TrenchBroom/EntityDefinitions/point/actors/Actor_Furniture_Can.tres" id="27_ombvk"]
|
[ext_resource type="Resource" uid="uid://cdlo7qrub1bbd" path="res://3D/TrenchBroom/EntityDefinitions/point/actors/Actor_Furniture_Can.tres" id="27_ombvk"]
|
||||||
[ext_resource type="Resource" uid="uid://ocl6a6lorlxa" path="res://3D/TrenchBroom/EntityDefinitions/point/actors/Actor_Furniture_Box.tres" id="28_31lma"]
|
[ext_resource type="Resource" uid="uid://ocl6a6lorlxa" path="res://3D/TrenchBroom/EntityDefinitions/point/actors/Actor_Furniture_Box.tres" id="28_31lma"]
|
||||||
|
[ext_resource type="Resource" uid="uid://1ew6u5xe3xhb" path="res://3D/TrenchBroom/EntityDefinitions/point/actors/actor_keypad.tres" id="29_louv0"]
|
||||||
|
[ext_resource type="Resource" uid="uid://vuuarep4h5w2" path="res://3D/TrenchBroom/EntityDefinitions/point/actors/Actor_Door.tres" id="30_wfgfu"]
|
||||||
|
[ext_resource type="Resource" uid="uid://cc881gocw0au4" path="res://3D/TrenchBroom/EntityDefinitions/point/actors/Actor_Forcefield.tres" id="31_elv2e"]
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
script = ExtResource("1_lykim")
|
script = ExtResource("1_lykim")
|
||||||
|
|
@ -36,5 +39,5 @@ export_file = false
|
||||||
target_map_editor = 1
|
target_map_editor = 1
|
||||||
fgd_name = "FuncGodot"
|
fgd_name = "FuncGodot"
|
||||||
base_fgd_files = Array[Resource]([])
|
base_fgd_files = Array[Resource]([])
|
||||||
entity_definitions = Array[Resource]([ExtResource("1_7vcj1"), ExtResource("2_u7uvb"), ExtResource("3_u7uvb"), ExtResource("4_1nmxk"), ExtResource("5_ljb2x"), ExtResource("6_seuvu"), ExtResource("7_fmwex"), ExtResource("8_c8m8m"), ExtResource("9_14sjf"), ExtResource("10_xik3w"), ExtResource("11_dgiqm"), ExtResource("12_1teik"), ExtResource("13_f0hti"), ExtResource("14_6ld6e"), ExtResource("15_g8j5j"), ExtResource("16_7h4of"), ExtResource("17_m3sbm"), ExtResource("18_m3sbm"), ExtResource("19_hvhb8"), ExtResource("20_3v5us"), ExtResource("21_g67cj"), ExtResource("22_iy67w"), ExtResource("23_b5lmu"), ExtResource("24_ndas4"), ExtResource("25_n7wsi"), ExtResource("26_v48k5"), ExtResource("27_ombvk"), ExtResource("28_31lma")])
|
entity_definitions = Array[Resource]([ExtResource("1_7vcj1"), ExtResource("2_u7uvb"), ExtResource("3_u7uvb"), ExtResource("4_1nmxk"), ExtResource("5_ljb2x"), ExtResource("6_seuvu"), ExtResource("7_fmwex"), ExtResource("8_c8m8m"), ExtResource("9_14sjf"), ExtResource("10_xik3w"), ExtResource("11_dgiqm"), ExtResource("12_1teik"), ExtResource("13_f0hti"), ExtResource("14_6ld6e"), ExtResource("15_g8j5j"), ExtResource("16_7h4of"), ExtResource("17_m3sbm"), ExtResource("18_m3sbm"), ExtResource("19_hvhb8"), ExtResource("20_3v5us"), ExtResource("21_g67cj"), ExtResource("22_iy67w"), ExtResource("23_b5lmu"), ExtResource("24_ndas4"), ExtResource("25_n7wsi"), ExtResource("26_v48k5"), ExtResource("27_ombvk"), ExtResource("28_31lma"), ExtResource("29_louv0"), ExtResource("30_wfgfu"), ExtResource("31_elv2e")])
|
||||||
metadata/_custom_type_script = "uid://cknmd0lgmorx2"
|
metadata/_custom_type_script = "uid://cknmd0lgmorx2"
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,53 @@
|
||||||
using Cirno.Scripts.Misc;
|
using System.Linq;
|
||||||
|
using Cirno.Scripts.Misc;
|
||||||
|
using Cirno.Scripts.Resources;
|
||||||
using Godot;
|
using Godot;
|
||||||
|
using Godot.Collections;
|
||||||
|
|
||||||
namespace Cirno.Scripts.Interactables;
|
namespace Cirno.Scripts.Interactables;
|
||||||
|
|
||||||
|
[Tool]
|
||||||
public partial class Interactable3D : Area3D, IInteractable
|
public partial class Interactable3D : Area3D, IInteractable
|
||||||
{
|
{
|
||||||
|
[Export] public Array<LootItem> Requirements = [];
|
||||||
|
[Export] public Array<StringName> RequirementKeys = [];
|
||||||
|
|
||||||
public virtual bool Activate(ActivationType activationType = ActivationType.Toggle)
|
public virtual bool Activate(ActivationType activationType = ActivationType.Toggle)
|
||||||
{
|
{
|
||||||
return true;
|
return MeetsRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual bool MeetsRequirements()
|
protected virtual bool MeetsRequirements()
|
||||||
{
|
{
|
||||||
|
if (Requirements.Count != 0)
|
||||||
|
{
|
||||||
|
if (InventoryManager.Instance.HasItems(Requirements.Select(x => x.ItemKey.ToString()).ToList()))
|
||||||
|
{
|
||||||
|
GD.Print($"Requirements for activation of {this.Name} successfully met: {string.Join(",", Requirements.Select(x => x.Item))} ");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
GD.Print($"Requirements for activation of {this.Name} not met: {string.Join(",", Requirements.Select(x => x.Item))} ");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (RequirementKeys.Count != 0)
|
||||||
|
{
|
||||||
|
if (InventoryManager.Instance.HasItems(RequirementKeys.Select(x => x.ToString()).ToList()))
|
||||||
|
{
|
||||||
|
GD.Print($"Requirements for activation of {this.Name} successfully met: {string.Join(",", RequirementKeys.Select(x => x))} ");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
GD.Print($"Requirements for activation of {this.Name} not met: {string.Join(",", RequirementKeys.Select(x => x))} ");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,10 @@ public partial class Switch3D : Interactable3D
|
||||||
public void _func_godot_apply_properties(Dictionary<string, string> props)
|
public void _func_godot_apply_properties(Dictionary<string, string> props)
|
||||||
{
|
{
|
||||||
TargetGroup = props["target"];
|
TargetGroup = props["target"];
|
||||||
|
if (props.TryGetValue("key", out var prop))
|
||||||
|
{
|
||||||
|
RequirementKeys = [prop];
|
||||||
|
}
|
||||||
//TargetFunc = props["targetfunc"];
|
//TargetFunc = props["targetfunc"];
|
||||||
//TargetName = props["targetname"];
|
//TargetName = props["targetname"];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,25 +3,26 @@
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://bvybqletsvqgk"
|
uid="uid://bvybqletsvqgk"
|
||||||
path="res://.godot/imported/BlueKeycard_Small.png-b925d0e80a2eaa9ef7fe1ee182ce6c65.ctex"
|
path.s3tc="res://.godot/imported/BlueKeycard_Small.png-b925d0e80a2eaa9ef7fe1ee182ce6c65.s3tc.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://Sprites/Items/BlueKeycard_Small.png"
|
source_file="res://Sprites/Items/BlueKeycard_Small.png"
|
||||||
dest_files=["res://.godot/imported/BlueKeycard_Small.png-b925d0e80a2eaa9ef7fe1ee182ce6c65.ctex"]
|
dest_files=["res://.godot/imported/BlueKeycard_Small.png-b925d0e80a2eaa9ef7fe1ee182ce6c65.s3tc.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=0
|
compress/mode=2
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
mipmaps/generate=false
|
mipmaps/generate=true
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
|
|
@ -31,4 +32,4 @@ process/normal_map_invert_y=false
|
||||||
process/hdr_as_srgb=false
|
process/hdr_as_srgb=false
|
||||||
process/hdr_clamp_exposure=false
|
process/hdr_clamp_exposure=false
|
||||||
process/size_limit=0
|
process/size_limit=0
|
||||||
detect_3d/compress_to=1
|
detect_3d/compress_to=0
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue