mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-12 03:45:54 +00:00
Terminal dialogue and entities fix
This commit is contained in:
parent
fe33f8d225
commit
dd979fe50a
16 changed files with 1078 additions and 912 deletions
Binary file not shown.
File diff suppressed because one or more lines are too long
|
|
@ -2690,25 +2690,21 @@
|
|||
{
|
||||
"classname" "light_omni"
|
||||
"origin" "248 456 40"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 27
|
||||
{
|
||||
"classname" "light_spot"
|
||||
"origin" "136 408 40"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 28
|
||||
{
|
||||
"classname" "light_omni"
|
||||
"origin" "312 232 40"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 29
|
||||
{
|
||||
"classname" "light_omni"
|
||||
"origin" "408 280 40"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 30
|
||||
{
|
||||
|
|
@ -2720,31 +2716,26 @@
|
|||
{
|
||||
"classname" "light_omni"
|
||||
"origin" "504 184 40"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 32
|
||||
{
|
||||
"classname" "light_omni"
|
||||
"origin" "376 104 40"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 33
|
||||
{
|
||||
"classname" "light_omni"
|
||||
"origin" "488 264 40"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 34
|
||||
{
|
||||
"classname" "light_omni"
|
||||
"origin" "488 328 40"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 35
|
||||
{
|
||||
"classname" "light_omni"
|
||||
"origin" "488 408 40"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 36
|
||||
{
|
||||
|
|
@ -3178,422 +3169,417 @@
|
|||
}
|
||||
// entity 106
|
||||
{
|
||||
"classname" "actor_terminal"
|
||||
"origin" "272 232 28"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 107
|
||||
{
|
||||
"classname" "actor_ac_unit"
|
||||
"origin" "304 188 24"
|
||||
"angle" "270"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 108
|
||||
// entity 107
|
||||
{
|
||||
"classname" "actor_tube_corner"
|
||||
"origin" "208 488 24"
|
||||
"angle" "270"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 109
|
||||
// entity 108
|
||||
{
|
||||
"classname" "actor_tube_corner"
|
||||
"origin" "208 440 24"
|
||||
"angle" "180"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 110
|
||||
// entity 109
|
||||
{
|
||||
"classname" "actor_box_green"
|
||||
"origin" "328 472 20"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 111
|
||||
// entity 110
|
||||
{
|
||||
"classname" "actor_box_green"
|
||||
"origin" "344 472 20"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 112
|
||||
// entity 111
|
||||
{
|
||||
"classname" "actor_box_yellow"
|
||||
"origin" "344 488 20"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 113
|
||||
// entity 112
|
||||
{
|
||||
"classname" "actor_box_green"
|
||||
"origin" "328 488 28"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 114
|
||||
// entity 113
|
||||
{
|
||||
"classname" "actor_box_yellow"
|
||||
"origin" "328 440 28"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 115
|
||||
// entity 114
|
||||
{
|
||||
"classname" "actor_box_yellow"
|
||||
"origin" "360 472 20"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 116
|
||||
// entity 115
|
||||
{
|
||||
"classname" "actor_capacitor"
|
||||
"origin" "528 136 28"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 117
|
||||
// entity 116
|
||||
{
|
||||
"classname" "actor_capacitor"
|
||||
"origin" "496 136 28"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 118
|
||||
// entity 117
|
||||
{
|
||||
"classname" "actor_box_green"
|
||||
"origin" "248 712 20"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 119
|
||||
// entity 118
|
||||
{
|
||||
"classname" "actor_box_wood"
|
||||
"origin" "244 792 28"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 120
|
||||
// entity 119
|
||||
{
|
||||
"classname" "actor_box_wood"
|
||||
"origin" "244 792 20"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 121
|
||||
// entity 120
|
||||
{
|
||||
"classname" "actor_table"
|
||||
"origin" "248 732 20"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 122
|
||||
// entity 121
|
||||
{
|
||||
"classname" "actor_box_green"
|
||||
"origin" "280 792 20"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 123
|
||||
// entity 122
|
||||
{
|
||||
"classname" "actor_box_red"
|
||||
"origin" "296 784 20"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 124
|
||||
// entity 123
|
||||
{
|
||||
"classname" "actor_box_blue"
|
||||
"origin" "312 760 20"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 125
|
||||
// entity 124
|
||||
{
|
||||
"classname" "actor_box_yellow"
|
||||
"origin" "320 792 20"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 126
|
||||
// entity 125
|
||||
{
|
||||
"classname" "actor_box_blue"
|
||||
"origin" "248 712 28"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 127
|
||||
// entity 126
|
||||
{
|
||||
"classname" "actor_box_wood"
|
||||
"origin" "244 776 20"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 128
|
||||
// entity 127
|
||||
{
|
||||
"classname" "actor_box_wood"
|
||||
"origin" "252 792 20"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 129
|
||||
// entity 128
|
||||
{
|
||||
"classname" "actor_box_wood"
|
||||
"origin" "308 792 20"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 130
|
||||
// entity 129
|
||||
{
|
||||
"classname" "actor_ac_unit"
|
||||
"origin" "284 708 24"
|
||||
"angle" "270"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 131
|
||||
// entity 130
|
||||
{
|
||||
"classname" "actor_vendingmachine"
|
||||
"origin" "248 760 28"
|
||||
"targetname" "actor_elevator_test"
|
||||
}
|
||||
// entity 132
|
||||
// entity 131
|
||||
{
|
||||
"classname" "actor_terminal_big"
|
||||
"origin" "168 532 28"
|
||||
}
|
||||
// entity 133
|
||||
// entity 132
|
||||
{
|
||||
"classname" "actor_box_green"
|
||||
"origin" "376 456 20"
|
||||
}
|
||||
// entity 134
|
||||
// entity 133
|
||||
{
|
||||
"classname" "actor_box_green"
|
||||
"origin" "376 456 28"
|
||||
}
|
||||
// entity 135
|
||||
// entity 134
|
||||
{
|
||||
"classname" "actor_capacitor_mini"
|
||||
"origin" "184 360 24"
|
||||
}
|
||||
// entity 136
|
||||
// entity 135
|
||||
{
|
||||
"classname" "actor_capacitor_mini"
|
||||
"origin" "168 360 24"
|
||||
}
|
||||
// entity 137
|
||||
// entity 136
|
||||
{
|
||||
"classname" "actor_table"
|
||||
"origin" "168 396 20"
|
||||
}
|
||||
// entity 138
|
||||
// entity 137
|
||||
{
|
||||
"classname" "actor_terminal"
|
||||
"origin" "168 396 28"
|
||||
"timeline" "computer1"
|
||||
}
|
||||
// entity 139
|
||||
// entity 138
|
||||
{
|
||||
"classname" "actor_box_wood"
|
||||
"origin" "168 376 20"
|
||||
"angle" "90"
|
||||
}
|
||||
// entity 140
|
||||
// entity 139
|
||||
{
|
||||
"classname" "actor_box_blue"
|
||||
"origin" "136 456 28"
|
||||
}
|
||||
// entity 141
|
||||
// entity 140
|
||||
{
|
||||
"classname" "actor_box_red"
|
||||
"origin" "148 456 20"
|
||||
}
|
||||
// entity 142
|
||||
// entity 141
|
||||
{
|
||||
"classname" "actor_tank_large"
|
||||
"origin" "336 544 32"
|
||||
}
|
||||
// entity 143
|
||||
// entity 142
|
||||
{
|
||||
"classname" "actor_tank_large"
|
||||
"origin" "429.93 463.728 32"
|
||||
"angles" "0 90 0"
|
||||
}
|
||||
// entity 144
|
||||
// entity 143
|
||||
{
|
||||
"classname" "actor_elevator_1"
|
||||
"origin" "320 -1104 -10"
|
||||
}
|
||||
// entity 145
|
||||
// entity 144
|
||||
{
|
||||
"classname" "actor_tank_large"
|
||||
"origin" "144 -1072 8"
|
||||
}
|
||||
// entity 146
|
||||
// entity 145
|
||||
{
|
||||
"classname" "actor_tank"
|
||||
"origin" "112 -936 0"
|
||||
}
|
||||
// entity 147
|
||||
// entity 146
|
||||
{
|
||||
"classname" "actor_tank"
|
||||
"origin" "112 -904 0"
|
||||
}
|
||||
// entity 148
|
||||
// entity 147
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "112 -960 0"
|
||||
}
|
||||
// entity 149
|
||||
// entity 148
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "112 -976 0"
|
||||
}
|
||||
// entity 150
|
||||
// entity 149
|
||||
{
|
||||
"classname" "actor_box_red"
|
||||
"origin" "360 208 20"
|
||||
}
|
||||
// entity 151
|
||||
// entity 150
|
||||
{
|
||||
"classname" "actor_box_red"
|
||||
"origin" "360 208 28"
|
||||
}
|
||||
// entity 152
|
||||
// entity 151
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "336 -88 48"
|
||||
}
|
||||
// entity 153
|
||||
// entity 152
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "336 -104 48"
|
||||
}
|
||||
// entity 154
|
||||
// entity 153
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "336 -120 48"
|
||||
}
|
||||
// entity 155
|
||||
// entity 154
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "336 -136 48"
|
||||
}
|
||||
// entity 156
|
||||
// entity 155
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "336 -152 48"
|
||||
}
|
||||
// entity 157
|
||||
// entity 156
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "336 -168 48"
|
||||
}
|
||||
// entity 158
|
||||
// entity 157
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "336 -184 48"
|
||||
}
|
||||
// entity 159
|
||||
// entity 158
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "336 -200 48"
|
||||
}
|
||||
// entity 160
|
||||
// entity 159
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "336 -216 48"
|
||||
}
|
||||
// entity 161
|
||||
// entity 160
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "336 -232 48"
|
||||
}
|
||||
// entity 162
|
||||
// entity 161
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "336 -264 48"
|
||||
}
|
||||
// entity 163
|
||||
// entity 162
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "336 -280 48"
|
||||
}
|
||||
// entity 164
|
||||
// entity 163
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "336 -296 48"
|
||||
}
|
||||
// entity 165
|
||||
// entity 164
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "336 -312 48"
|
||||
}
|
||||
// entity 166
|
||||
// entity 165
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "336 -328 48"
|
||||
}
|
||||
// entity 167
|
||||
// entity 166
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "336 -344 48"
|
||||
}
|
||||
// entity 168
|
||||
// entity 167
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "336 -360 48"
|
||||
}
|
||||
// entity 169
|
||||
// entity 168
|
||||
{
|
||||
"classname" "actor_tube_corner"
|
||||
"origin" "336 -376 48"
|
||||
}
|
||||
// entity 170
|
||||
// entity 169
|
||||
{
|
||||
"classname" "actor_tube_junction"
|
||||
"origin" "336 -248 48"
|
||||
}
|
||||
// entity 171
|
||||
// entity 170
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "352 -248 48"
|
||||
"angle" "270"
|
||||
}
|
||||
// entity 172
|
||||
// entity 171
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "368 -248 48"
|
||||
"angle" "270"
|
||||
}
|
||||
// entity 173
|
||||
// entity 172
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "384 -248 48"
|
||||
"angle" "270"
|
||||
}
|
||||
// entity 174
|
||||
// entity 173
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "400 -248 48"
|
||||
"angle" "270"
|
||||
}
|
||||
// entity 175
|
||||
// entity 174
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "416 -248 48"
|
||||
"angle" "270"
|
||||
}
|
||||
// entity 176
|
||||
// entity 175
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "432 -248 48"
|
||||
"angle" "270"
|
||||
}
|
||||
// entity 177
|
||||
// entity 176
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "448 -248 48"
|
||||
"angle" "270"
|
||||
}
|
||||
// entity 178
|
||||
// entity 177
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "464 -248 48"
|
||||
"angle" "270"
|
||||
}
|
||||
// entity 179
|
||||
// entity 178
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "480 -248 48"
|
||||
"angle" "270"
|
||||
}
|
||||
// entity 180
|
||||
// entity 179
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "496 -248 48"
|
||||
"angle" "270"
|
||||
}
|
||||
// entity 181
|
||||
// entity 180
|
||||
{
|
||||
"classname" "acid_area"
|
||||
// brush 0
|
||||
|
|
@ -3606,32 +3592,32 @@
|
|||
( 504 -80 32 ) ( 504 -80 33 ) ( 504 -79 32 ) Manual/Acid [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||
}
|
||||
}
|
||||
// entity 182
|
||||
// entity 181
|
||||
{
|
||||
"classname" "light_omni"
|
||||
"origin" "408 -272 88"
|
||||
}
|
||||
// entity 183
|
||||
// entity 182
|
||||
{
|
||||
"classname" "light_omni"
|
||||
"origin" "408 -152 88"
|
||||
}
|
||||
// entity 184
|
||||
// entity 183
|
||||
{
|
||||
"classname" "light_omni"
|
||||
"origin" "408 -408 88"
|
||||
}
|
||||
// entity 185
|
||||
// entity 184
|
||||
{
|
||||
"classname" "light_omni"
|
||||
"origin" "264 -416 88"
|
||||
}
|
||||
// entity 186
|
||||
// entity 185
|
||||
{
|
||||
"classname" "light_omni"
|
||||
"origin" "536 -248 88"
|
||||
}
|
||||
// entity 187
|
||||
// entity 186
|
||||
{
|
||||
"classname" "acid_area"
|
||||
// brush 0
|
||||
|
|
@ -3644,7 +3630,7 @@
|
|||
( 448 -16 32 ) ( 448 -16 33 ) ( 448 -15 32 ) Manual/Acid [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||
}
|
||||
}
|
||||
// entity 188
|
||||
// entity 187
|
||||
{
|
||||
"classname" "func_group"
|
||||
"_tb_type" "_tb_group"
|
||||
|
|
@ -3662,7 +3648,7 @@
|
|||
( 288 348 16 ) ( 288 348 17 ) ( 288 349 16 ) Manual/Wall_Light_Test [ -6.049014748177263e-16 1 0 -8 ] [ 0 0 -1 0 ] 0 1 1
|
||||
}
|
||||
}
|
||||
// entity 189
|
||||
// entity 188
|
||||
{
|
||||
"classname" "func_group"
|
||||
"_tb_type" "_tb_group"
|
||||
|
|
@ -3671,7 +3657,7 @@
|
|||
"_tb_linked_group_id" "{4aa44f96-7631-4a72-89b8-8090e930ac25}"
|
||||
"_tb_transformation" "1 0 0 -80 0 1 0 188 0 0 1 0 0 0 0 1"
|
||||
}
|
||||
// entity 190
|
||||
// entity 189
|
||||
{
|
||||
"classname" "func_group"
|
||||
"_tb_type" "_tb_group"
|
||||
|
|
@ -3690,7 +3676,7 @@
|
|||
( 128 448 20 ) ( 128 448 21 ) ( 128 449 20 ) Manual/Wall_Light_Test [ 0 1 0 0 ] [ 0 0 -1 0 ] 270 1 1
|
||||
}
|
||||
}
|
||||
// entity 191
|
||||
// entity 190
|
||||
{
|
||||
"classname" "func_group"
|
||||
"_tb_type" "_tb_group"
|
||||
|
|
@ -3699,7 +3685,7 @@
|
|||
"_tb_linked_group_id" "{4aa44f96-7631-4a72-89b8-8090e930ac25}"
|
||||
"_tb_transformation" "1 0 0 -80 0 1 0 204 0 0 1 0 0 0 0 1"
|
||||
}
|
||||
// entity 192
|
||||
// entity 191
|
||||
{
|
||||
"classname" "func_group"
|
||||
"_tb_type" "_tb_group"
|
||||
|
|
@ -3718,7 +3704,7 @@
|
|||
( 128 464 20 ) ( 128 464 21 ) ( 128 465 20 ) Manual/Wall_Light_Test [ 0 1 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
||||
}
|
||||
}
|
||||
// entity 193
|
||||
// entity 192
|
||||
{
|
||||
"classname" "func_group"
|
||||
"_tb_type" "_tb_group"
|
||||
|
|
@ -3736,52 +3722,81 @@
|
|||
( 204 268 20 ) ( 204 268 21 ) ( 204 269 20 ) Manual/Wall_Light_Test [ 0 1 0 4 ] [ 0 0 -1 0 ] 0 1 1
|
||||
}
|
||||
}
|
||||
// entity 194
|
||||
// entity 193
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "112 -992 16"
|
||||
"angles" "0 -90 90"
|
||||
}
|
||||
// entity 195
|
||||
// entity 194
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "112 -992 32"
|
||||
"angles" "0 -90 90"
|
||||
}
|
||||
// entity 196
|
||||
// entity 195
|
||||
{
|
||||
"classname" "actor_tube_corner"
|
||||
"origin" "112 -992 48"
|
||||
"angles" "0 0 -90"
|
||||
}
|
||||
// entity 197
|
||||
// entity 196
|
||||
{
|
||||
"classname" "actor_tube_corner"
|
||||
"origin" "112 -992 0"
|
||||
"angles" "90 0 0"
|
||||
}
|
||||
// entity 198
|
||||
// entity 197
|
||||
{
|
||||
"classname" "actor_barrel_1"
|
||||
"origin" "432 -216 64"
|
||||
}
|
||||
// entity 199
|
||||
// entity 198
|
||||
{
|
||||
"classname" "actor_barrel_1"
|
||||
"origin" "432 -200 64"
|
||||
}
|
||||
// entity 200
|
||||
// entity 199
|
||||
{
|
||||
"classname" "actor_barrel_1"
|
||||
"origin" "424 -384 64"
|
||||
}
|
||||
// entity 201
|
||||
// entity 200
|
||||
{
|
||||
"classname" "actor_barrel_1"
|
||||
"origin" "408 -384 64"
|
||||
}
|
||||
// entity 202
|
||||
// entity 201
|
||||
{
|
||||
"classname" "actor_barrel_1"
|
||||
"origin" "424 -368 64"
|
||||
}
|
||||
// entity 202
|
||||
{
|
||||
"classname" "actor_elevator_1"
|
||||
"origin" "368 56 15"
|
||||
"targetname" "elevator_1"
|
||||
}
|
||||
// entity 203
|
||||
{
|
||||
"classname" "actor_controlpad"
|
||||
"origin" "356 80 36"
|
||||
"target" "elevator_1"
|
||||
}
|
||||
// entity 204
|
||||
{
|
||||
"classname" "light_omni"
|
||||
"origin" "436 44 24"
|
||||
}
|
||||
// entity 205
|
||||
{
|
||||
"classname" "actor_controlpad"
|
||||
"origin" "352 20 64"
|
||||
"target" "elevator_1"
|
||||
}
|
||||
// entity 206
|
||||
{
|
||||
"classname" "actor_terminal"
|
||||
"origin" "272 232 28"
|
||||
"timeline" "computer2"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,50 +1,27 @@
|
|||
[gd_scene load_steps=7 format=3 uid="uid://dioiq4nb7kiet"]
|
||||
[gd_scene load_steps=5 format=3 uid="uid://dioiq4nb7kiet"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://gc24sjyj47x6" path="res://Sprites/Actors/ForceFieldHorizontal.png" id="2_4cotp"]
|
||||
[ext_resource type="Texture2D" uid="uid://6p28earvo6m2" path="res://textures/Manual/Forcefield/ForceField1.png" id="1_xl5wo"]
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_7axon"]
|
||||
size = Vector3(1.99927, 2.00482, 0.140869)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_hfile"]
|
||||
atlas = ExtResource("2_4cotp")
|
||||
region = Rect2(0, 0, 32, 32)
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_4cotp"]
|
||||
transparency = 1
|
||||
albedo_color = Color(1, 1, 1, 0.490196)
|
||||
albedo_texture = ExtResource("1_xl5wo")
|
||||
texture_filter = 0
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_2serc"]
|
||||
atlas = ExtResource("2_4cotp")
|
||||
region = Rect2(32, 0, 32, 32)
|
||||
[sub_resource type="QuadMesh" id="QuadMesh_hfile"]
|
||||
material = SubResource("StandardMaterial3D_4cotp")
|
||||
size = Vector2(2, 2)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_nl1bd"]
|
||||
atlas = ExtResource("2_4cotp")
|
||||
region = Rect2(64, 0, 32, 32)
|
||||
|
||||
[sub_resource type="SpriteFrames" id="SpriteFrames_q44q4"]
|
||||
animations = [{
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_hfile")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_2serc")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"texture": SubResource("AtlasTexture_nl1bd")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"default",
|
||||
"speed": 5.0
|
||||
}]
|
||||
|
||||
[node name="Door3d" type="AnimatableBody3D" groups=["Solid"]]
|
||||
[node name="Forcefield" type="AnimatableBody3D" groups=["Solid"]]
|
||||
collision_layer = 16
|
||||
collision_mask = 0
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00500488, 0.00234985, -0.00524902)
|
||||
shape = SubResource("BoxShape3D_7axon")
|
||||
|
||||
[node name="AnimatedSprite3D" type="AnimatedSprite3D" parent="."]
|
||||
modulate = Color(1, 1, 1, 0.596)
|
||||
pixel_size = 0.06
|
||||
texture_filter = 0
|
||||
sprite_frames = SubResource("SpriteFrames_q44q4")
|
||||
autoplay = "default"
|
||||
frame_progress = 0.581369
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
||||
mesh = SubResource("QuadMesh_hfile")
|
||||
|
|
|
|||
|
|
@ -1,15 +1,26 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://hak5o0k5yhn1"]
|
||||
[gd_scene load_steps=5 format=3 uid="uid://hak5o0k5yhn1"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://bc0du3r4krgg1" path="res://3D/BlockbenchModels/Terminal/Terminal.gltf" id="1_7jsh0"]
|
||||
[ext_resource type="Script" uid="uid://duy020jwtwver" path="res://Scripts/Activables/Terminal3D.cs" id="1_sn7tt"]
|
||||
|
||||
[sub_resource type="SphereShape3D" id="SphereShape3D_2cx3w"]
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_hsg1w"]
|
||||
size = Vector3(0.405762, 0.402695, 0.405273)
|
||||
|
||||
[node name="BoxRed" type="StaticBody3D"]
|
||||
[node name="Terminal" type="Area3D" groups=["Interactable"]]
|
||||
collision_layer = 32
|
||||
collision_mask = 0
|
||||
script = ExtResource("1_sn7tt")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
shape = SubResource("SphereShape3D_2cx3w")
|
||||
|
||||
[node name="Model" type="StaticBody3D" parent="." groups=["Solid"]]
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Model"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00488285, -0.00800342, -0.00830072)
|
||||
shape = SubResource("BoxShape3D_hsg1w")
|
||||
|
||||
[node name="blockbench_export" parent="." instance=ExtResource("1_7jsh0")]
|
||||
[node name="blockbench_export" parent="Model" instance=ExtResource("1_7jsh0")]
|
||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
|
||||
|
|
|
|||
23
3D/TrenchBroom/EntityDefinitions/base/dialogue_base.tres
Normal file
23
3D/TrenchBroom/EntityDefinitions/base/dialogue_base.tres
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
[gd_resource type="Resource" script_class="FuncGodotFGDBaseClass" load_steps=2 format=3 uid="uid://di5wnbv5icxtq"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://6o4wbl0iau0v" path="res://addons/func_godot/src/fgd/func_godot_fgd_base_class.gd" id="1_h5gnk"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_h5gnk")
|
||||
classname = "Dialogue"
|
||||
description = "Starts the dialogue associated to the named timeline"
|
||||
func_godot_internal = false
|
||||
base_classes = Array[Resource]([])
|
||||
class_properties = {
|
||||
"timeline": ""
|
||||
}
|
||||
class_property_descriptions = {
|
||||
"timeline": "Name of the timeline to trigger"
|
||||
}
|
||||
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 = ""
|
||||
|
|
@ -5,11 +5,11 @@
|
|||
[resource]
|
||||
script = ExtResource("1_7j8c1")
|
||||
classname = "Targetname"
|
||||
description = ""
|
||||
description = "Target name for event targeting purposes"
|
||||
func_godot_internal = false
|
||||
base_classes = Array[Resource]([])
|
||||
class_properties = {
|
||||
"targetname": null
|
||||
"targetname": ""
|
||||
}
|
||||
class_property_descriptions = {
|
||||
"targetname": "Adds this entity to a group with this targetname."
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
[gd_resource type="Resource" script_class="FuncGodotFGDPointClass" load_steps=4 format=3 uid="uid://cvo11hahyoo4d"]
|
||||
[gd_resource type="Resource" script_class="FuncGodotFGDPointClass" load_steps=5 format=3 uid="uid://cvo11hahyoo4d"]
|
||||
|
||||
[ext_resource type="Resource" uid="uid://5bc1qysixhmh" path="res://3D/TrenchBroom/EntityDefinitions/base/actor_base.tres" id="1_f03df"]
|
||||
[ext_resource type="PackedScene" uid="uid://hak5o0k5yhn1" path="res://3D/Scenes/Props/Terminal_3D.tscn" id="2_f03df"]
|
||||
[ext_resource type="Resource" uid="uid://di5wnbv5icxtq" path="res://3D/TrenchBroom/EntityDefinitions/base/dialogue_base.tres" id="2_iuc81"]
|
||||
[ext_resource type="Script" uid="uid://c83r7t467hm4m" path="res://addons/func_godot/src/fgd/func_godot_fgd_point_class.gd" id="3_q0k5x"]
|
||||
|
||||
[resource]
|
||||
|
|
@ -12,7 +13,7 @@ apply_scale_on_map_build = false
|
|||
classname = "actor_terminal"
|
||||
description = "Red Box"
|
||||
func_godot_internal = false
|
||||
base_classes = Array[Resource]([ExtResource("1_f03df")])
|
||||
base_classes = Array[Resource]([ExtResource("1_f03df"), ExtResource("2_iuc81")])
|
||||
class_properties = {}
|
||||
class_property_descriptions = {}
|
||||
auto_apply_to_matching_node_properties = false
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
[gd_resource type="Resource" script_class="FuncGodotFGDFile" load_steps=9 format=3 uid="uid://onsfttdpojex"]
|
||||
[gd_resource type="Resource" script_class="FuncGodotFGDFile" load_steps=10 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="Script" uid="uid://cknmd0lgmorx2" path="res://addons/func_godot/src/fgd/func_godot_fgd_file.gd" id="1_p3xok"]
|
||||
|
|
@ -8,6 +8,7 @@
|
|||
[ext_resource type="Resource" uid="uid://5bc1qysixhmh" path="res://3D/TrenchBroom/EntityDefinitions/base/actor_base.tres" id="5_mkw5g"]
|
||||
[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://di5wnbv5icxtq" path="res://3D/TrenchBroom/EntityDefinitions/base/dialogue_base.tres" id="8_2isdf"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_p3xok")
|
||||
|
|
@ -15,5 +16,5 @@ export_file = false
|
|||
target_map_editor = 1
|
||||
fgd_name = "FuncGodot"
|
||||
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")])
|
||||
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")])
|
||||
metadata/_custom_type_script = "uid://cknmd0lgmorx2"
|
||||
|
|
|
|||
|
|
@ -1,10 +1,12 @@
|
|||
using Cirno.Scripts.Resources.Events;
|
||||
using Cirno.Scripts.Interactables;
|
||||
using Cirno.Scripts.Misc;
|
||||
using Cirno.Scripts.Resources.Events;
|
||||
using Godot;
|
||||
using Godot.Collections;
|
||||
|
||||
namespace Cirno.Scripts.Activables;
|
||||
|
||||
public partial class ScriptableArea3D : Area3D, IActivable
|
||||
public partial class ScriptableArea3D : Area3D, IActivable, IInteractable
|
||||
{
|
||||
[Export] public Array<EventResource> Events { get; set; } = [];
|
||||
|
||||
|
|
@ -71,4 +73,19 @@ public partial class ScriptableArea3D : Area3D, IActivable
|
|||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public Vector2 GetGlobalPosition2D()
|
||||
{
|
||||
return new Vector2(this.GlobalPosition.X, this.GlobalPosition.Z);
|
||||
}
|
||||
|
||||
public Vector2 GetScreenPosition()
|
||||
{
|
||||
if (CameraController3D.Instance is null)
|
||||
{
|
||||
return this.GetGlobalPosition2D();
|
||||
}
|
||||
|
||||
return CameraController3D.Instance.UnprojectPosition(this.GlobalPosition);
|
||||
}
|
||||
}
|
||||
55
Scripts/Activables/Terminal3D.cs
Normal file
55
Scripts/Activables/Terminal3D.cs
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
using Cirno.Scripts.Interactables;
|
||||
using Cirno.Scripts.Misc;
|
||||
using Cirno.Scripts.Utils;
|
||||
using Godot;
|
||||
using Godot.Collections;
|
||||
|
||||
namespace Cirno.Scripts.Activables;
|
||||
|
||||
[Tool]
|
||||
public partial class Terminal3D : Area3D, IInteractable
|
||||
{
|
||||
[Export] public StringName TimelineName = "timeline";
|
||||
private DialogueTools _dialogueInstance;
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
if (Engine.IsEditorHint()) return;
|
||||
_dialogueInstance = new DialogueTools();
|
||||
_dialogueInstance.Init(this, TimelineName);
|
||||
}
|
||||
|
||||
public void _func_godot_apply_properties(Dictionary<string, string> props)
|
||||
{
|
||||
TimelineName = props["timeline"];
|
||||
}
|
||||
|
||||
public bool Activate(ActivationType activationType = ActivationType.Toggle)
|
||||
{
|
||||
if (Engine.IsEditorHint()) return false;
|
||||
_dialogueInstance.Start(this);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public bool CanActivate()
|
||||
{
|
||||
if (Engine.IsEditorHint()) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
public Vector2 GetGlobalPosition2D()
|
||||
{
|
||||
return new Vector2(this.GlobalPosition.X, this.GlobalPosition.Z);
|
||||
}
|
||||
|
||||
public Vector2 GetScreenPosition()
|
||||
{
|
||||
if (CameraController3D.Instance is null)
|
||||
{
|
||||
return this.GetGlobalPosition2D();
|
||||
}
|
||||
|
||||
return CameraController3D.Instance.UnprojectPosition(this.GlobalPosition);
|
||||
}
|
||||
}
|
||||
1
Scripts/Activables/Terminal3D.cs.uid
Normal file
1
Scripts/Activables/Terminal3D.cs.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://duy020jwtwver
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
using Cirno.Scripts.Misc;
|
||||
using Cirno.Scripts.Utils;
|
||||
using Godot;
|
||||
|
||||
namespace Cirno.Scripts.Resources.Events;
|
||||
|
|
@ -7,78 +8,18 @@ namespace Cirno.Scripts.Resources.Events;
|
|||
public partial class DialogueStartEvent : EventResource
|
||||
{
|
||||
[Export] public StringName TimelineName = "timeline";
|
||||
private Node _dialogic;
|
||||
private bool _isComplete = false;
|
||||
|
||||
private DialogueSkipListener _listener;
|
||||
|
||||
|
||||
private DialogueTools _dialogueInstance;
|
||||
|
||||
public override void Init(Node parent)
|
||||
{
|
||||
_dialogic = parent.GetNode("/root/Dialogic");
|
||||
_dialogic.ProcessMode = Node.ProcessModeEnum.Always;
|
||||
_dialogueInstance = new DialogueTools();
|
||||
_dialogueInstance.Init(parent, TimelineName);
|
||||
}
|
||||
|
||||
public override void Start(Node parent)
|
||||
{
|
||||
if (GlobalState.Instance.SessionSettings.SkipDialogues)
|
||||
{
|
||||
DialogueEndAction();
|
||||
return;
|
||||
}
|
||||
|
||||
CreateSkipListener(parent);
|
||||
|
||||
Hud.Instance?.HideHud();
|
||||
|
||||
_dialogic.Connect("timeline_ended", Callable.From(OnTimelineEnded));
|
||||
|
||||
var dialogicNode =_dialogic.Call("start", TimelineName.ToString());
|
||||
((Node)dialogicNode).ProcessMode = Node.ProcessModeEnum.Always;
|
||||
ChangeState(GameState.Dialogue);
|
||||
}
|
||||
|
||||
private void ChangeState(GameState state)
|
||||
{
|
||||
if (GameManager.Instance is not null)
|
||||
{
|
||||
GameManager.Instance.ChangeState(state);
|
||||
}
|
||||
else if (GameController.Instance is not null)
|
||||
{
|
||||
GameController.Instance.ChangeState(state);
|
||||
}
|
||||
}
|
||||
|
||||
private void CreateSkipListener(Node parent)
|
||||
{
|
||||
_listener = new DialogueSkipListener();
|
||||
parent.AddChild(_listener);
|
||||
_listener.ProcessMode = Node.ProcessModeEnum.Always;
|
||||
_listener.Skipped += ListenerOnSkipped;
|
||||
}
|
||||
|
||||
private void ListenerOnSkipped()
|
||||
{
|
||||
_listener.Skipped -= ListenerOnSkipped;
|
||||
_listener.QueueFree();
|
||||
_dialogic.Call("end_timeline");
|
||||
}
|
||||
|
||||
private void OnTimelineEnded()
|
||||
{
|
||||
Hud.Instance?.ShowHud();
|
||||
ChangeState(GameState.Playing);
|
||||
if (_dialogic.IsConnected("timeline_ended", Callable.From(OnTimelineEnded)))
|
||||
{
|
||||
_dialogic.Disconnect("timeline_ended", Callable.From(OnTimelineEnded));
|
||||
}
|
||||
|
||||
DialogueEndAction();
|
||||
}
|
||||
|
||||
private void DialogueEndAction()
|
||||
{
|
||||
_isComplete = true;
|
||||
_dialogueInstance.Start(parent);
|
||||
}
|
||||
|
||||
public override void UpdateEvent(double delta)
|
||||
|
|
@ -87,6 +28,6 @@ public partial class DialogueStartEvent : EventResource
|
|||
|
||||
public override bool IsComplete()
|
||||
{
|
||||
return _isComplete;
|
||||
return _dialogueInstance.IsComplete;
|
||||
}
|
||||
}
|
||||
85
Scripts/Utils/DialogueTools.cs
Normal file
85
Scripts/Utils/DialogueTools.cs
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
using Cirno.Scripts.Misc;
|
||||
using Godot;
|
||||
|
||||
namespace Cirno.Scripts.Utils;
|
||||
|
||||
public partial class DialogueTools : RefCounted
|
||||
{
|
||||
private Node _dialogic;
|
||||
private bool _isComplete = false;
|
||||
public bool IsComplete => _isComplete;
|
||||
private DialogueSkipListener _listener;
|
||||
|
||||
private StringName TimelineName;
|
||||
|
||||
public void Init(Node parent, StringName timelineName)
|
||||
{
|
||||
_dialogic = parent.GetNode("/root/Dialogic");
|
||||
_dialogic.ProcessMode = Node.ProcessModeEnum.Always;
|
||||
TimelineName = timelineName;
|
||||
}
|
||||
|
||||
public void Start(Node parent)
|
||||
{
|
||||
if (GlobalState.Instance.SessionSettings.SkipDialogues)
|
||||
{
|
||||
DialogueEndAction();
|
||||
return;
|
||||
}
|
||||
|
||||
CreateSkipListener(parent);
|
||||
|
||||
Hud.Instance?.HideHud();
|
||||
|
||||
_dialogic.Connect("timeline_ended", Callable.From(OnTimelineEnded));
|
||||
|
||||
var dialogicNode =_dialogic.Call("start", TimelineName.ToString());
|
||||
((Node)dialogicNode).ProcessMode = Node.ProcessModeEnum.Always;
|
||||
ChangeState(GameState.Dialogue);
|
||||
}
|
||||
|
||||
private void ChangeState(GameState state)
|
||||
{
|
||||
if (GameManager.Instance is not null)
|
||||
{
|
||||
GameManager.Instance.ChangeState(state);
|
||||
}
|
||||
else if (GameController.Instance is not null)
|
||||
{
|
||||
GameController.Instance.ChangeState(state);
|
||||
}
|
||||
}
|
||||
|
||||
private void CreateSkipListener(Node parent)
|
||||
{
|
||||
_listener = new DialogueSkipListener();
|
||||
parent.AddChild(_listener);
|
||||
_listener.ProcessMode = Node.ProcessModeEnum.Always;
|
||||
_listener.Skipped += ListenerOnSkipped;
|
||||
}
|
||||
|
||||
private void ListenerOnSkipped()
|
||||
{
|
||||
_listener.Skipped -= ListenerOnSkipped;
|
||||
_listener.QueueFree();
|
||||
_dialogic.Call("end_timeline");
|
||||
}
|
||||
|
||||
private void OnTimelineEnded()
|
||||
{
|
||||
Hud.Instance?.ShowHud();
|
||||
ChangeState(GameState.Playing);
|
||||
if (_dialogic.IsConnected("timeline_ended", Callable.From(OnTimelineEnded)))
|
||||
{
|
||||
_dialogic.Disconnect("timeline_ended", Callable.From(OnTimelineEnded));
|
||||
}
|
||||
|
||||
DialogueEndAction();
|
||||
}
|
||||
|
||||
private void DialogueEndAction()
|
||||
{
|
||||
_isComplete = true;
|
||||
}
|
||||
|
||||
}
|
||||
1
Scripts/Utils/DialogueTools.cs.uid
Normal file
1
Scripts/Utils/DialogueTools.cs.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://dqe13b0edlud1
|
||||
Loading…
Add table
Add a link
Reference in a new issue