Player movement and camera

This commit is contained in:
Marco 2025-06-11 15:28:26 +02:00
commit a324f2e347
43 changed files with 1777 additions and 316 deletions

File diff suppressed because one or more lines are too long

424
3D/Maps/autosave/test.8.map Normal file
View file

@ -0,0 +1,424 @@
// Game: FuncGodot
// Format: Standard
// entity 0
{
"classname" "worldspawn"
"_tb_textures" "textures;textures/Floors;textures/Manual;textures/Various;textures/Walls"
// brush 0
{
( 120 464 -16 ) ( 120 464 -15 ) ( 120 463 -16 ) Floors/Floor227 0 0 180 1 -1
( 240 344 16 ) ( 240 344 17 ) ( 241 344 16 ) Floors/Floor227 0 0 0 1 1
( 112 464 0 ) ( 112 463 0 ) ( 113 464 0 ) Floors/Floor227 0 0 270 1 1
( 240 336 16 ) ( 241 336 16 ) ( 240 335 16 ) Floors/Floor227 0 0 270 1 1
( 112 480 -16 ) ( 113 480 -16 ) ( 112 480 -15 ) Floors/Floor227 0 0 0 1 1
( 192 336 16 ) ( 192 335 16 ) ( 192 336 17 ) Floors/Floor227 0 0 180 1 -1
}
// brush 1
{
( 120 464 16 ) ( 120 464 17 ) ( 120 463 16 ) Walls/Wall0 0 0 0 -1 1
( 128 344 32 ) ( 128 344 33 ) ( 129 344 32 ) Walls/Wall0 0 0 0 1 1
( 112 464 16 ) ( 112 463 16 ) ( 113 464 16 ) Walls/Wall0 0 16 270 1 1
( 128 336 48 ) ( 129 336 48 ) ( 128 335 48 ) Walls/Wall0 0 16 270 1 1
( 112 432 16 ) ( 113 432 16 ) ( 112 432 17 ) Walls/Wall0 0 0 0 1 1
( 128 336 32 ) ( 128 335 32 ) ( 128 336 33 ) Walls/Wall0 0 0 0 -1 1
}
// brush 2
{
( 272 352 16 ) ( 272 352 17 ) ( 272 351 16 ) Walls/Wall0 0 0 0 -1 1
( 176 344 32 ) ( 176 344 33 ) ( 177 344 32 ) Walls/Wall0 0 0 0 1 1
( 160 352 16 ) ( 160 351 16 ) ( 161 352 16 ) Walls/Wall0 0 0 270 1 1
( 176 224 48 ) ( 177 224 48 ) ( 176 223 48 ) Walls/Wall0 0 0 270 1 1
( 160 352 16 ) ( 161 352 16 ) ( 160 352 17 ) Walls/Wall0 0 0 0 1 1
( 384 224 32 ) ( 384 223 32 ) ( 384 224 33 ) Walls/Wall0 0 0 0 -1 1
}
// brush 3
{
( 192 464 -16 ) ( 192 464 -15 ) ( 192 463 -16 ) Various/Various1 0 0 180 0.5 -0.5
( 320 368 16 ) ( 320 368 17 ) ( 321 368 16 ) Various/Various1 0 0 0 0.5 0.5
( 192 464 0 ) ( 192 463 0 ) ( 193 464 0 ) Various/Various1 0 0 270 0.5 0.5
( 320 336 16 ) ( 321 336 16 ) ( 320 335 16 ) Various/Various1 0 0 270 0.5 0.5
( 192 448 -16 ) ( 193 448 -16 ) ( 192 448 -15 ) Various/Various1 0 0 0 0.5 0.5
( 224 336 16 ) ( 224 335 16 ) ( 224 336 17 ) Various/Various1 0 0 180 0.5 -0.5
}
// brush 4
{
( 192 544 -16 ) ( 192 544 -15 ) ( 192 543 -16 ) Floors/Floor273 0 0 180 1 -1
( 320 448 16 ) ( 320 448 17 ) ( 321 448 16 ) Floors/Floor273 0 0 0 1 1
( 192 544 0 ) ( 192 543 0 ) ( 193 544 0 ) Floors/Floor273 0 0 270 1 1
( 320 416 16 ) ( 321 416 16 ) ( 320 415 16 ) Floors/Floor273 0 0 270 1 1
( 192 560 -16 ) ( 193 560 -16 ) ( 192 560 -15 ) Floors/Floor273 0 0 0 1 1
( 224 416 16 ) ( 224 415 16 ) ( 224 416 17 ) Floors/Floor273 0 0 180 1 -1
}
// brush 5
{
( 192 336 -16 ) ( 192 336 -15 ) ( 192 335 -16 ) Floors/Floor273 0 0 180 1 -1
( 320 344 16 ) ( 320 344 17 ) ( 321 344 16 ) Floors/Floor273 0 0 0 1 1
( 192 336 0 ) ( 192 335 0 ) ( 193 336 0 ) Floors/Floor273 0 0 270 1 1
( 320 208 16 ) ( 321 208 16 ) ( 320 207 16 ) Floors/Floor273 0 0 270 1 1
( 192 368 -16 ) ( 193 368 -16 ) ( 192 368 -15 ) Floors/Floor273 0 0 0 1 1
( 224 208 16 ) ( 224 207 16 ) ( 224 208 17 ) Floors/Floor273 0 0 180 1 -1
}
// brush 6
{
( 120 480 16 ) ( 120 480 17 ) ( 120 479 16 ) Walls/Wall0 0 0 0 -1 1
( 160 464 32 ) ( 160 464 33 ) ( 161 464 32 ) Walls/Wall0 0 0 0 1 1
( 144 480 16 ) ( 144 479 16 ) ( 145 480 16 ) Walls/Wall0 0 16 270 1 1
( 160 352 80 ) ( 161 352 80 ) ( 160 351 80 ) Walls/Wall0 0 16 270 1 1
( 144 472 16 ) ( 145 472 16 ) ( 144 472 17 ) Walls/Wall0 0 0 0 1 1
( 152 352 32 ) ( 152 351 32 ) ( 152 352 33 ) Walls/Wall0 0 0 0 -1 1
}
// brush 7
{
( 400 448 32 ) ( 400 448 33 ) ( 400 447 32 ) Walls/Wall0 0 0 0 -1 1
( 208 560 32 ) ( 208 560 33 ) ( 209 560 32 ) Walls/Wall0 0 0 0 1 1
( 192 576 0 ) ( 192 575 0 ) ( 193 576 0 ) Walls/Wall0 0 0 270 1 1
( 208 448 48 ) ( 209 448 48 ) ( 208 447 48 ) Walls/Wall0 0 0 270 1 1
( 192 568 16 ) ( 193 568 16 ) ( 192 568 17 ) Manual/Black 0 0 0 1 1
( 456 448 32 ) ( 456 447 32 ) ( 456 448 33 ) Manual/Black 0 0 0 -1 1
}
// brush 8
{
( 152 608 -16 ) ( 152 608 -15 ) ( 152 607 -16 ) Floors/Floor227 0 0 180 1 -1
( 256 480 16 ) ( 256 480 17 ) ( 257 480 16 ) Floors/Floor227 0 0 0 1 1
( 128 608 0 ) ( 128 607 0 ) ( 129 608 0 ) Floors/Floor227 0 0 270 1 1
( 256 480 16 ) ( 257 480 16 ) ( 256 479 16 ) Floors/Floor227 0 0 270 1 1
( 128 560 -16 ) ( 129 560 -16 ) ( 128 560 -15 ) Floors/Floor227 0 0 0 1 1
( 192 480 16 ) ( 192 479 16 ) ( 192 480 17 ) Floors/Floor227 0 0 180 1 -1
}
// brush 9
{
( 152 608 16 ) ( 152 608 17 ) ( 152 607 16 ) Manual/Blue_Panel_Wall 16 16 180 1 -1
( 160 496 32 ) ( 160 496 33 ) ( 161 496 32 ) Manual/Blue_Panel_Wall -16 16 0 1 1
( 144 608 16 ) ( 144 607 16 ) ( 145 608 16 ) Manual/Blue_Panel_Wall 16 0 270 1 1
( 160 480 48 ) ( 161 480 48 ) ( 160 479 48 ) Floors/Floor96 0 0 270 1 1
( 160 528 32 ) ( 161 528 32 ) ( 160 528 33 ) Manual/Blue_Panel_Wall -16 16 0 1 1
( 160 480 32 ) ( 160 479 32 ) ( 160 480 33 ) Manual/Blue_Panel_Wall 16 16 180 1 -1
}
// brush 10
{
( 152 608 16 ) ( 152 608 17 ) ( 152 607 16 ) Various/Various0 0 0 180 1 -1
( 160 528 32 ) ( 160 528 33 ) ( 161 528 32 ) Various/Various0 0 0 0 1 1
( 144 608 16 ) ( 144 607 16 ) ( 145 608 16 ) Various/Various0 0 0 270 1 1
( 160 480 48 ) ( 161 480 48 ) ( 160 479 48 ) Floors/Floor96 0 0 270 1 1
( 144 560 16 ) ( 145 560 16 ) ( 144 560 17 ) Various/Various0 0 0 0 1 1
( 160 480 32 ) ( 160 479 32 ) ( 160 480 33 ) Various/Various0 0 0 180 1 -1
}
// brush 11
{
( 448 560 16 ) ( 448 560 17 ) ( 448 559 16 ) Walls/Wall0 0 0 0 -1 1
( 464 336 32 ) ( 464 336 33 ) ( 465 336 32 ) Walls/Wall0 0 0 0 1 1
( 448 560 0 ) ( 448 559 0 ) ( 449 560 0 ) Walls/Wall0 0 0 270 1 1
( 464 432 48 ) ( 465 432 48 ) ( 464 431 48 ) Walls/Wall0 0 0 270 1 1
( 448 560 16 ) ( 449 560 16 ) ( 448 560 17 ) Walls/Wall0 0 0 0 1 1
( 456 432 32 ) ( 456 431 32 ) ( 456 432 33 ) Manual/Black 0 0 0 -1 1
}
// brush 12
{
( 416 352 16 ) ( 416 352 17 ) ( 416 351 16 ) Walls/Wall0 0 0 0 -1 1
( 448 344 32 ) ( 448 344 33 ) ( 449 344 32 ) Walls/Wall0 0 0 0 1 1
( 432 352 16 ) ( 432 351 16 ) ( 433 352 16 ) Walls/Wall0 0 16 270 1 1
( 448 224 48 ) ( 449 224 48 ) ( 448 223 48 ) Walls/Wall0 0 16 270 1 1
( 432 352 16 ) ( 433 352 16 ) ( 432 352 17 ) Walls/Wall0 0 0 0 1 1
( 448 224 32 ) ( 448 223 32 ) ( 448 224 33 ) Walls/Wall0 0 0 0 -1 1
}
// brush 13
{
( 152 568 16 ) ( 152 568 17 ) ( 152 567 16 ) Walls/Wall0 8 0 0 -1 1
( 208 560 32 ) ( 208 560 33 ) ( 209 560 32 ) Walls/Wall0 0 0 0 1 1
( 192 568 0 ) ( 192 567 0 ) ( 193 568 0 ) Walls/Wall0 8 0 270 1 1
( 208 440 48 ) ( 209 440 48 ) ( 208 439 48 ) Walls/Wall0 8 0 270 1 1
( 192 568 16 ) ( 193 568 16 ) ( 192 568 17 ) Manual/Black 0 0 0 1 1
( 384 440 32 ) ( 384 439 32 ) ( 384 440 33 ) Walls/Wall0 8 0 0 -1 1
}
// brush 14
{
( 224 336 0 ) ( 224 432 0 ) ( 224 336 16 ) Floors/Floor17 0 0 180 1 -1
( 224 344 16 ) ( 464 344 16 ) ( 224 344 0 ) Floors/Floor17 0 0 0 1 1
( 464 336 0 ) ( 464 432 0 ) ( 224 336 0 ) Floors/Floor17 0 0 270 1 1
( 224 336 16 ) ( 224 432 16 ) ( 464 336 16 ) Floors/Floor17 0 0 270 1 1
( 464 432 16 ) ( 224 432 16 ) ( 464 432 0 ) Floors/Floor17 0 0 0 1 1
( 448 336 16 ) ( 448 432 16 ) ( 448 336 0 ) Floors/Floor17 0 0 180 1 -1
}
// brush 15
{
( 224 576 16 ) ( 224 496 16 ) ( 224 576 0 ) Floors/Floor17 0 0 180 1 -1
( 224 496 0 ) ( 224 496 16 ) ( 464 496 0 ) Floors/Floor17 0 0 0 1 1
( 224 576 0 ) ( 224 496 0 ) ( 464 576 0 ) Floors/Floor17 0 0 270 1 1
( 464 576 16 ) ( 464 496 16 ) ( 224 576 16 ) Floors/Floor17 0 0 270 1 1
( 224 560 0 ) ( 464 560 0 ) ( 224 560 16 ) Floors/Floor17 0 0 0 1 1
( 448 576 0 ) ( 448 496 0 ) ( 448 576 16 ) Floors/Floor17 0 0 180 1 -1
}
// brush 16
{
( 384 432 16 ) ( 384 432 0 ) ( 384 496 16 ) Floors/Floor17 0 0 180 1 -1
( 464 432 0 ) ( 384 432 0 ) ( 464 432 16 ) Floors/Floor17 0 0 0 1 1
( 464 496 0 ) ( 384 496 0 ) ( 464 432 0 ) Floors/Floor17 0 0 270 1 1
( 464 432 16 ) ( 384 432 16 ) ( 464 496 16 ) Floors/Floor17 0 0 270 1 1
( 464 496 16 ) ( 384 496 16 ) ( 464 496 0 ) Floors/Floor17 0 0 0 1 1
( 448 432 16 ) ( 448 496 16 ) ( 448 432 0 ) Floors/Floor17 0 0 180 1 -1
}
// brush 17
{
( 224 432 0 ) ( 224 496 0 ) ( 224 432 16 ) Floors/Floor17 0 0 180 1 -1
( 224 432 16 ) ( 320 432 16 ) ( 224 432 0 ) Floors/Floor17 0 0 0 1 1
( 224 432 0 ) ( 320 432 0 ) ( 224 496 0 ) Floors/Floor17 0 0 270 1 1
( 224 496 16 ) ( 320 496 16 ) ( 224 432 16 ) Floors/Floor17 0 0 270 1 1
( 224 496 0 ) ( 320 496 0 ) ( 224 496 16 ) Floors/Floor17 0 0 0 1 1
( 320 496 0 ) ( 320 432 0 ) ( 320 496 16 ) Floors/Floor17 0 0 180 1 -1
}
// brush 18
{
( 320 432 0 ) ( 320 496 0 ) ( 320 432 16 ) Floors/Floor260 0 0 180 1 -1
( 288 432 16 ) ( 384 432 16 ) ( 288 432 0 ) Floors/Floor260 0 0 0 1 1
( 288 432 0 ) ( 384 432 0 ) ( 288 496 0 ) Floors/Floor260 0 0 270 1 1
( 288 496 16 ) ( 384 496 16 ) ( 288 432 16 ) Floors/Floor260 0 0 270 1 1
( 288 496 0 ) ( 384 496 0 ) ( 288 496 16 ) Floors/Floor260 0 0 0 1 1
( 384 496 0 ) ( 384 432 0 ) ( 384 496 16 ) Floors/Floor260 0 0 180 1 -1
}
// brush 19
{
( 120 544 16 ) ( 120 544 17 ) ( 120 543 16 ) Manual/Blue_Panel_Wall 16 16 180 1 -1
( 128 432 32 ) ( 128 432 33 ) ( 129 432 32 ) Manual/Blue_Panel_Wall -16 16 0 1 1
( 112 544 16 ) ( 112 543 16 ) ( 113 544 16 ) Manual/Blue_Panel_Wall 16 0 270 1 1
( 128 416 48 ) ( 129 416 48 ) ( 128 415 48 ) Floors/Floor96 0 0 270 1 1
( 128 464 32 ) ( 129 464 32 ) ( 128 464 33 ) Manual/Blue_Panel_Wall -16 16 0 1 1
( 128 416 32 ) ( 128 415 32 ) ( 128 416 33 ) Manual/Blue_Panel_Wall 16 16 180 1 -1
}
// brush 20
{
( 120 464 48 ) ( 120 464 49 ) ( 120 463 48 ) Walls/Wall0 0 0 0 -1 1
( 128 344 64 ) ( 128 344 65 ) ( 129 344 64 ) Walls/Wall0 0 0 0 1 1
( 112 464 48 ) ( 112 463 48 ) ( 113 464 48 ) Walls/Wall0 0 16 270 1 1
( 128 336 80 ) ( 129 336 80 ) ( 128 335 80 ) Walls/Wall0 0 16 270 1 1
( 112 464 48 ) ( 113 464 48 ) ( 112 464 49 ) Walls/Wall0 0 0 0 1 1
( 128 336 64 ) ( 128 335 64 ) ( 128 336 65 ) Walls/Wall0 0 0 0 -1 1
}
// brush 21
{
( 128 352 48 ) ( 128 352 49 ) ( 128 351 48 ) Walls/Wall0 0 0 0 -1 1
( 176 344 64 ) ( 176 344 65 ) ( 177 344 64 ) Walls/Wall0 0 0 0 1 1
( 160 352 48 ) ( 160 351 48 ) ( 161 352 48 ) Walls/Wall0 0 0 270 1 1
( 176 224 80 ) ( 177 224 80 ) ( 176 223 80 ) Walls/Wall0 0 0 270 1 1
( 160 352 48 ) ( 161 352 48 ) ( 160 352 49 ) Walls/Wall0 0 0 0 1 1
( 352 224 64 ) ( 352 223 64 ) ( 352 224 65 ) Walls/Wall0 0 0 0 -1 1
}
// brush 22
{
( 344 240 0 ) ( 344 336 0 ) ( 344 240 16 ) Floors/Floor225 0 0 180 1 -1
( 224 112 16 ) ( 464 112 16 ) ( 224 112 0 ) Floors/Floor225 0 0 0 1 1
( 464 240 0 ) ( 464 336 0 ) ( 224 240 0 ) Floors/Floor225 0 0 270 1 1
( 224 240 16 ) ( 224 336 16 ) ( 464 240 16 ) Floors/Floor225 0 0 270 1 1
( 464 344 16 ) ( 224 344 16 ) ( 464 344 0 ) Floors/Floor225 0 0 0 1 1
( 448 240 16 ) ( 448 336 16 ) ( 448 240 0 ) Floors/Floor225 0 0 180 1 -1
}
// brush 23
{
( 448 336 16 ) ( 448 336 17 ) ( 448 335 16 ) Walls/Wall0 0 0 0 -1 1
( 464 184 32 ) ( 464 184 33 ) ( 465 184 32 ) Walls/Wall0 0 0 0 1 1
( 448 336 0 ) ( 448 335 0 ) ( 449 336 0 ) Walls/Wall0 0 0 270 1 1
( 464 208 48 ) ( 465 208 48 ) ( 464 207 48 ) Walls/Wall0 0 0 270 1 1
( 448 336 16 ) ( 449 336 16 ) ( 448 336 17 ) Walls/Wall0 0 0 0 1 1
( 456 208 32 ) ( 456 207 32 ) ( 456 208 33 ) Manual/Black 0 0 0 -1 1
}
// brush 24
{
( 344 336 16 ) ( 344 336 17 ) ( 344 335 16 ) Walls/Wall0 0 0 0 -1 1
( 352 112 32 ) ( 352 112 33 ) ( 353 112 32 ) Walls/Wall0 0 0 0 1 1
( 336 336 16 ) ( 336 335 16 ) ( 337 336 16 ) Walls/Wall0 0 16 270 1 1
( 352 208 48 ) ( 353 208 48 ) ( 352 207 48 ) Walls/Wall0 0 16 270 1 1
( 336 344 16 ) ( 337 344 16 ) ( 336 344 17 ) Walls/Wall0 0 0 0 1 1
( 352 208 32 ) ( 352 207 32 ) ( 352 208 33 ) Walls/Wall0 0 0 0 -1 1
}
// brush 25
{
( 416 128 16 ) ( 416 128 17 ) ( 416 127 16 ) Walls/Wall0 0 0 0 -1 1
( 448 112 32 ) ( 448 112 33 ) ( 449 112 32 ) Walls/Wall0 0 0 0 1 1
( 432 128 16 ) ( 432 127 16 ) ( 433 128 16 ) Walls/Wall0 0 16 270 1 1
( 448 0 48 ) ( 449 0 48 ) ( 448 -1 48 ) Walls/Wall0 0 16 270 1 1
( 432 120 16 ) ( 433 120 16 ) ( 432 120 17 ) Walls/Wall0 0 0 0 1 1
( 448 0 32 ) ( 448 -1 32 ) ( 448 0 33 ) Walls/Wall0 0 0 0 -1 1
}
// brush 26
{
( 352 128 16 ) ( 352 128 17 ) ( 352 127 16 ) Walls/Wall0 0 0 0 -1 1
( 384 112 32 ) ( 384 112 33 ) ( 385 112 32 ) Walls/Wall0 0 0 0 1 1
( 368 128 16 ) ( 368 127 16 ) ( 369 128 16 ) Walls/Wall0 0 16 270 1 1
( 384 0 48 ) ( 385 0 48 ) ( 384 -1 48 ) Walls/Wall0 0 16 270 1 1
( 368 120 16 ) ( 369 120 16 ) ( 368 120 17 ) Walls/Wall0 0 0 0 1 1
( 384 0 32 ) ( 384 -1 32 ) ( 384 0 33 ) Walls/Wall0 0 0 0 -1 1
}
// brush 27
{
( 344 16 0 ) ( 344 112 0 ) ( 344 16 16 ) Floors/Floor17 0 0 180 1 -1
( 224 0 16 ) ( 464 0 16 ) ( 224 0 0 ) Floors/Floor17 0 0 0 1 1
( 464 16 0 ) ( 464 112 0 ) ( 224 16 0 ) Floors/Floor17 0 0 270 1 1
( 224 16 16 ) ( 224 112 16 ) ( 464 16 16 ) Floors/Floor17 0 0 270 1 1
( 464 112 16 ) ( 224 112 16 ) ( 464 112 0 ) Floors/Floor17 0 0 0 1 1
( 448 16 16 ) ( 448 112 16 ) ( 448 16 0 ) Floors/Floor17 0 0 180 1 -1
}
// brush 28
{
( 344 112 16 ) ( 344 112 17 ) ( 344 111 16 ) Walls/Wall0 0 0 0 -1 1
( 352 -72 32 ) ( 352 -72 33 ) ( 353 -72 32 ) Walls/Wall0 0 0 0 1 1
( 336 112 16 ) ( 336 111 16 ) ( 337 112 16 ) Walls/Wall0 0 16 270 1 1
( 352 -16 80 ) ( 353 -16 80 ) ( 352 -17 80 ) Walls/Wall0 0 16 270 1 1
( 336 112 16 ) ( 337 112 16 ) ( 336 112 17 ) Walls/Wall0 0 0 0 1 1
( 352 -16 32 ) ( 352 -17 32 ) ( 352 -16 33 ) Walls/Wall0 0 0 0 -1 1
}
// brush 29
{
( 448 112 16 ) ( 448 112 17 ) ( 448 111 16 ) Walls/Wall0 0 0 0 -1 1
( 464 0 32 ) ( 464 0 33 ) ( 465 0 32 ) Walls/Wall0 0 0 0 1 1
( 448 112 0 ) ( 448 111 0 ) ( 449 112 0 ) Walls/Wall0 0 0 270 1 1
( 464 -16 48 ) ( 465 -16 48 ) ( 464 -17 48 ) Walls/Wall0 0 0 270 1 1
( 448 112 16 ) ( 449 112 16 ) ( 448 112 17 ) Walls/Wall0 0 0 0 1 1
( 456 -16 32 ) ( 456 -17 32 ) ( 456 -16 33 ) Manual/Black 0 0 0 -1 1
}
// brush 30
{
( 352 16 16 ) ( 352 16 17 ) ( 352 15 16 ) Walls/Wall0 0 0 0 -1 1
( 384 0 32 ) ( 384 0 33 ) ( 385 0 32 ) Walls/Wall0 0 0 0 1 1
( 368 16 16 ) ( 368 15 16 ) ( 369 16 16 ) Walls/Wall0 0 16 270 1 1
( 384 -112 48 ) ( 385 -112 48 ) ( 384 -113 48 ) Walls/Wall0 0 16 270 1 1
( 368 16 16 ) ( 369 16 16 ) ( 368 16 17 ) Walls/Wall0 0 0 0 1 1
( 448 -112 32 ) ( 448 -113 32 ) ( 448 -112 33 ) Walls/Wall0 0 0 0 -1 1
}
// brush 31
{
( 312 -328 32 ) ( 312 -232 32 ) ( 312 -328 48 ) Floors/Floor17 8 0 180 1 -1
( 200 -344 48 ) ( 440 -344 48 ) ( 200 -344 32 ) Floors/Floor17 -8 0 0 1 1
( 440 -328 32 ) ( 440 -232 32 ) ( 200 -328 32 ) Floors/Floor17 8 8 270 1 1
( 200 -328 48 ) ( 200 -232 48 ) ( 440 -328 48 ) Floors/Floor17 8 8 270 1 1
( 440 -232 48 ) ( 200 -232 48 ) ( 440 -232 32 ) Floors/Floor17 -8 0 0 1 1
( 440 -328 48 ) ( 440 -232 48 ) ( 440 -328 32 ) Floors/Floor17 8 0 180 1 -1
}
// brush 32
{
( 352 -56 40 ) ( 352 40 40 ) ( 352 -56 56 ) Various/Various2 8 -8 180 1 -1
( 240 -72 56 ) ( 480 -72 56 ) ( 240 -72 40 ) Various/Various2 0 -8 0 1 1
( 480 -56 48 ) ( 480 40 48 ) ( 240 -56 48 ) Various/Various2 8 0 270 1 1
( 240 -56 56 ) ( 240 40 56 ) ( 480 -56 56 ) Various/Various2 8 0 270 1 1
( 480 40 56 ) ( 240 40 56 ) ( 480 40 40 ) Various/Various2 0 -8 0 1 1
( 448 -56 56 ) ( 448 40 56 ) ( 448 -56 40 ) Various/Various2 8 -8 180 1 -1
}
// brush 33
{
( 448 0 16 ) ( 448 0 17 ) ( 448 -1 16 ) Walls/Wall0 0 0 0 -1 1
( 464 -112 32 ) ( 464 -112 33 ) ( 465 -112 32 ) Walls/Wall0 0 0 0 1 1
( 448 0 16 ) ( 448 -1 16 ) ( 449 0 16 ) Walls/Wall0 0 0 270 1 1
( 464 -128 80 ) ( 465 -128 80 ) ( 464 -129 80 ) Walls/Wall0 0 0 270 1 1
( 448 0 16 ) ( 449 0 16 ) ( 448 0 17 ) Walls/Wall0 0 0 0 1 1
( 464 -128 32 ) ( 464 -129 32 ) ( 464 -128 33 ) Walls/Wall0 0 0 0 -1 1
}
// brush 34
{
( 448 224 16 ) ( 448 224 17 ) ( 448 223 16 ) Walls/Wall0 0 0 0 -1 1
( 464 112 32 ) ( 464 112 33 ) ( 465 112 32 ) Walls/Wall0 0 0 0 1 1
( 448 224 0 ) ( 448 223 0 ) ( 449 224 0 ) Walls/Wall0 0 0 270 1 1
( 464 96 48 ) ( 465 96 48 ) ( 464 95 48 ) Walls/Wall0 0 0 270 1 1
( 448 152 16 ) ( 449 152 16 ) ( 448 152 17 ) Walls/Wall0 0 0 0 1 1
( 456 96 32 ) ( 456 95 32 ) ( 456 96 33 ) Manual/Black 0 0 0 -1 1
}
// brush 35
{
( 152 488 16 ) ( 152 488 17 ) ( 152 487 16 ) Walls/Wall0 8 0 0 -1 1
( 160 464 32 ) ( 160 464 33 ) ( 161 464 32 ) Walls/Wall0 0 0 0 1 1
( 144 488 16 ) ( 144 487 16 ) ( 145 488 16 ) Walls/Wall0 8 16 270 1 1
( 160 360 48 ) ( 161 360 48 ) ( 160 359 48 ) Walls/Wall0 8 16 270 1 1
( 144 480 16 ) ( 145 480 16 ) ( 144 480 17 ) Walls/Wall0 0 0 0 1 1
( 160 360 32 ) ( 160 359 32 ) ( 160 360 33 ) Walls/Wall0 8 0 0 -1 1
}
// brush 36
{
( 152 584 48 ) ( 152 584 49 ) ( 152 583 48 ) Walls/Wall0 8 0 0 -1 1
( 160 464 64 ) ( 160 464 65 ) ( 161 464 64 ) Walls/Wall0 0 0 0 1 1
( 144 584 48 ) ( 144 583 48 ) ( 145 584 48 ) Walls/Wall0 8 16 270 1 1
( 160 456 80 ) ( 161 456 80 ) ( 160 455 80 ) Walls/Wall0 8 16 270 1 1
( 144 560 48 ) ( 145 560 48 ) ( 144 560 49 ) Walls/Wall0 0 0 0 1 1
( 160 456 64 ) ( 160 455 64 ) ( 160 456 65 ) Walls/Wall0 8 0 0 -1 1
}
// brush 37
{
( 128 352 16 ) ( 128 352 17 ) ( 128 351 16 ) Walls/Wall0 0 0 0 -1 1
( 0 344 32 ) ( 0 344 33 ) ( 1 344 32 ) Walls/Wall0 0 0 0 1 1
( -16 352 16 ) ( -16 351 16 ) ( -15 352 16 ) Walls/Wall0 0 16 270 1 1
( 0 224 48 ) ( 1 224 48 ) ( 0 223 48 ) Walls/Wall0 0 16 270 1 1
( -16 352 16 ) ( -15 352 16 ) ( -16 352 17 ) Walls/Wall0 0 0 0 1 1
( 208 224 32 ) ( 208 223 32 ) ( 208 224 33 ) Walls/Wall0 0 0 0 -1 1
}
// brush 38
{
( 384 704 -16 ) ( 384 704 -15 ) ( 384 703 -16 ) Floors/Floor103 0 0 180 1 -1
( 464 560 16 ) ( 464 560 17 ) ( 465 560 16 ) Floors/Floor103 0 0 0 1 1
( 336 704 0 ) ( 336 703 0 ) ( 337 704 0 ) Floors/Floor103 0 0 270 1 1
( 464 576 16 ) ( 465 576 16 ) ( 464 575 16 ) Floors/Floor103 0 0 270 1 1
( 336 672 -16 ) ( 337 672 -16 ) ( 336 672 -15 ) Floors/Floor103 0 0 0 1 1
( 400 576 16 ) ( 400 575 16 ) ( 400 576 17 ) Floors/Floor103 0 0 180 1 -1
}
// brush 39
{
( 376 800 16 ) ( 376 800 17 ) ( 376 799 16 ) Walls/Wall0 0 0 0 -1 1
( 384 568 32 ) ( 384 568 33 ) ( 385 568 32 ) Walls/Wall0 0 0 0 1 1
( 368 800 0 ) ( 368 799 0 ) ( 369 800 0 ) Walls/Wall0 0 16 270 1 1
( 384 672 32 ) ( 385 672 32 ) ( 384 671 32 ) Walls/Wall0 0 16 270 1 1
( 368 672 16 ) ( 369 672 16 ) ( 368 672 17 ) Walls/Wall0 0 0 0 1 1
( 384 672 32 ) ( 384 671 32 ) ( 384 672 33 ) Walls/Wall0 0 0 0 -1 1
}
// brush 40
{
( 400 800 16 ) ( 400 800 17 ) ( 400 799 16 ) Walls/Wall0 0 0 0 -1 1
( 408 568 32 ) ( 408 568 33 ) ( 409 568 32 ) Walls/Wall0 -8 0 0 1 1
( 392 800 0 ) ( 392 799 0 ) ( 393 800 0 ) Walls/Wall0 0 8 270 1 1
( 408 672 32 ) ( 409 672 32 ) ( 408 671 32 ) Walls/Wall0 0 8 270 1 1
( 392 672 16 ) ( 393 672 16 ) ( 392 672 17 ) Walls/Wall0 -8 0 0 1 1
( 408 672 32 ) ( 408 671 32 ) ( 408 672 33 ) Manual/Black 0 0 0 -1 1
}
// brush 41
{
( 376 40 48 ) ( 376 41 48 ) ( 376 40 49 ) Floors/Floor107 0 0 0 1 1
( 376 40 48 ) ( 376 40 49 ) ( 377 40 48 ) Floors/Floor107 0 0 0 1 1
( 376 40 16 ) ( 377 40 16 ) ( 376 41 16 ) Floors/Floor107 0 0 0 1 1
( 424 96 56 ) ( 424 97 56 ) ( 425 96 56 ) Floors/Floor107 0 0 0 1 1
( 424 96 56 ) ( 425 96 56 ) ( 424 96 57 ) Floors/Floor107 0 0 0 1 1
( 424 96 56 ) ( 424 96 57 ) ( 424 97 56 ) Floors/Floor107 0 0 0 1 1
}
}
// entity 1
{
"classname" "blue_panel_nw"
// brush 0
{
( 240 352 16 ) ( 240 352 17 ) ( 240 351 16 ) Manual/Blue_Panel_Wall_Thin 0 16 0 -0.5 1
( 64 344 32 ) ( 64 344 33 ) ( 65 344 32 ) Manual/Blue_Panel_Wall -16 16 0 1 1
( 48 352 16 ) ( 48 351 16 ) ( 49 352 16 ) Manual/Blue_Panel_Wall 0 16 270 1 1
( 64 224 48 ) ( 65 224 48 ) ( 64 223 48 ) Manual/Blue_Panel_Wall 0 16 270 1 1
( 48 352 16 ) ( 49 352 16 ) ( 48 352 17 ) Manual/Blue_Panel_Wall -16 16 0 1 1
( 272 224 32 ) ( 272 223 32 ) ( 272 224 33 ) Manual/Blue_Panel_Wall_Thin 0 16 0 -0.5 1
}
}
// entity 2
{
"classname" "blue_panel_nw"
// brush 0
{
( 208 352 16 ) ( 208 352 17 ) ( 208 351 16 ) Manual/Blue_Panel_Wall_Thin 0 16 0 -0.5 1
( 32 344 32 ) ( 32 344 33 ) ( 33 344 32 ) Manual/Blue_Panel_Wall -16 16 0 1 1
( 16 352 16 ) ( 16 351 16 ) ( 17 352 16 ) Manual/Blue_Panel_Wall 0 16 270 1 1
( 32 224 48 ) ( 33 224 48 ) ( 32 223 48 ) Manual/Blue_Panel_Wall 0 16 270 1 1
( 16 352 16 ) ( 17 352 16 ) ( 16 352 17 ) Manual/Blue_Panel_Wall -16 16 0 1 1
( 240 224 32 ) ( 240 223 32 ) ( 240 224 33 ) Manual/Blue_Panel_Wall_Thin 0 16 0 -0.5 1
}
}
// entity 3
{
"classname" "grille_wall_ne"
// brush 0
{
( 152 608 16 ) ( 152 608 17 ) ( 152 607 16 ) Manual/Grille_Wall 0 16 0 -1 1
( 160 480 32 ) ( 160 480 33 ) ( 161 480 32 ) Manual/Grille_Wall 0 16 0 1 1
( 144 608 16 ) ( 144 607 16 ) ( 145 608 16 ) Manual/Grille_Wall 0 0 270 1 1
( 160 480 48 ) ( 161 480 48 ) ( 160 479 48 ) Floors/Floor96 0 0 270 1 1
( 160 496 32 ) ( 161 496 32 ) ( 160 496 33 ) Manual/Grille_Wall 0 16 0 1 1
( 160 480 32 ) ( 160 479 32 ) ( 160 480 33 ) Manual/Grille_Wall 0 16 0 -1 1
}
}

458
3D/Maps/autosave/test.9.map Normal file
View file

@ -0,0 +1,458 @@
// Game: FuncGodot
// Format: Standard
// entity 0
{
"classname" "worldspawn"
"_tb_textures" "textures;textures/Floors;textures/Manual;textures/Various;textures/Walls;textures/special"
// brush 0
{
( 120 464 -16 ) ( 120 464 -15 ) ( 120 463 -16 ) Floors/Floor227 0 0 180 1 -1
( 240 344 16 ) ( 240 344 17 ) ( 241 344 16 ) Floors/Floor227 0 0 0 1 1
( 112 464 0 ) ( 112 463 0 ) ( 113 464 0 ) Floors/Floor227 0 0 270 1 1
( 240 336 16 ) ( 241 336 16 ) ( 240 335 16 ) Floors/Floor227 0 0 270 1 1
( 112 480 -16 ) ( 113 480 -16 ) ( 112 480 -15 ) Floors/Floor227 0 0 0 1 1
( 192 336 16 ) ( 192 335 16 ) ( 192 336 17 ) Floors/Floor227 0 0 180 1 -1
}
// brush 1
{
( 120 464 16 ) ( 120 464 17 ) ( 120 463 16 ) Walls/Wall0 0 0 0 -1 1
( 128 344 32 ) ( 128 344 33 ) ( 129 344 32 ) Walls/Wall0 0 0 0 1 1
( 112 464 16 ) ( 112 463 16 ) ( 113 464 16 ) Walls/Wall0 0 16 270 1 1
( 128 336 48 ) ( 129 336 48 ) ( 128 335 48 ) Walls/Wall0 0 16 270 1 1
( 112 432 16 ) ( 113 432 16 ) ( 112 432 17 ) Walls/Wall0 0 0 0 1 1
( 128 336 32 ) ( 128 335 32 ) ( 128 336 33 ) Walls/Wall0 0 0 0 -1 1
}
// brush 2
{
( 272 352 16 ) ( 272 352 17 ) ( 272 351 16 ) Walls/Wall0 0 0 0 -1 1
( 176 344 32 ) ( 176 344 33 ) ( 177 344 32 ) Walls/Wall0 0 0 0 1 1
( 160 352 16 ) ( 160 351 16 ) ( 161 352 16 ) Walls/Wall0 0 0 270 1 1
( 176 224 48 ) ( 177 224 48 ) ( 176 223 48 ) Walls/Wall0 0 0 270 1 1
( 160 352 16 ) ( 161 352 16 ) ( 160 352 17 ) Walls/Wall0 0 0 0 1 1
( 384 224 32 ) ( 384 223 32 ) ( 384 224 33 ) Walls/Wall0 0 0 0 -1 1
}
// brush 3
{
( 192 464 -16 ) ( 192 464 -15 ) ( 192 463 -16 ) Various/Various1 0 0 180 0.5 -0.5
( 320 368 16 ) ( 320 368 17 ) ( 321 368 16 ) Various/Various1 0 0 0 0.5 0.5
( 192 464 0 ) ( 192 463 0 ) ( 193 464 0 ) Various/Various1 0 0 270 0.5 0.5
( 320 336 16 ) ( 321 336 16 ) ( 320 335 16 ) Various/Various1 0 0 270 0.5 0.5
( 192 448 -16 ) ( 193 448 -16 ) ( 192 448 -15 ) Various/Various1 0 0 0 0.5 0.5
( 224 336 16 ) ( 224 335 16 ) ( 224 336 17 ) Various/Various1 0 0 180 0.5 -0.5
}
// brush 4
{
( 192 544 -16 ) ( 192 544 -15 ) ( 192 543 -16 ) Floors/Floor273 0 0 180 1 -1
( 320 448 16 ) ( 320 448 17 ) ( 321 448 16 ) Floors/Floor273 0 0 0 1 1
( 192 544 0 ) ( 192 543 0 ) ( 193 544 0 ) Floors/Floor273 0 0 270 1 1
( 320 416 16 ) ( 321 416 16 ) ( 320 415 16 ) Floors/Floor273 0 0 270 1 1
( 192 560 -16 ) ( 193 560 -16 ) ( 192 560 -15 ) Floors/Floor273 0 0 0 1 1
( 224 416 16 ) ( 224 415 16 ) ( 224 416 17 ) Floors/Floor273 0 0 180 1 -1
}
// brush 5
{
( 192 336 -16 ) ( 192 336 -15 ) ( 192 335 -16 ) Floors/Floor273 0 0 180 1 -1
( 320 344 16 ) ( 320 344 17 ) ( 321 344 16 ) Floors/Floor273 0 0 0 1 1
( 192 336 0 ) ( 192 335 0 ) ( 193 336 0 ) Floors/Floor273 0 0 270 1 1
( 320 208 16 ) ( 321 208 16 ) ( 320 207 16 ) Floors/Floor273 0 0 270 1 1
( 192 368 -16 ) ( 193 368 -16 ) ( 192 368 -15 ) Floors/Floor273 0 0 0 1 1
( 224 208 16 ) ( 224 207 16 ) ( 224 208 17 ) Floors/Floor273 0 0 180 1 -1
}
// brush 6
{
( 120 480 16 ) ( 120 480 17 ) ( 120 479 16 ) Walls/Wall0 0 0 0 -1 1
( 160 464 32 ) ( 160 464 33 ) ( 161 464 32 ) Walls/Wall0 0 0 0 1 1
( 144 480 16 ) ( 144 479 16 ) ( 145 480 16 ) Walls/Wall0 0 16 270 1 1
( 160 352 80 ) ( 161 352 80 ) ( 160 351 80 ) Walls/Wall0 0 16 270 1 1
( 144 472 16 ) ( 145 472 16 ) ( 144 472 17 ) Walls/Wall0 0 0 0 1 1
( 152 352 32 ) ( 152 351 32 ) ( 152 352 33 ) Walls/Wall0 0 0 0 -1 1
}
// brush 7
{
( 400 448 32 ) ( 400 448 33 ) ( 400 447 32 ) Walls/Wall0 0 0 0 -1 1
( 208 560 32 ) ( 208 560 33 ) ( 209 560 32 ) Walls/Wall0 0 0 0 1 1
( 192 576 0 ) ( 192 575 0 ) ( 193 576 0 ) Walls/Wall0 0 0 270 1 1
( 208 448 48 ) ( 209 448 48 ) ( 208 447 48 ) Walls/Wall0 0 0 270 1 1
( 192 568 16 ) ( 193 568 16 ) ( 192 568 17 ) Manual/Black 0 0 0 1 1
( 456 448 32 ) ( 456 447 32 ) ( 456 448 33 ) Manual/Black 0 0 0 -1 1
}
// brush 8
{
( 152 608 -16 ) ( 152 608 -15 ) ( 152 607 -16 ) Floors/Floor227 0 0 180 1 -1
( 256 480 16 ) ( 256 480 17 ) ( 257 480 16 ) Floors/Floor227 0 0 0 1 1
( 128 608 0 ) ( 128 607 0 ) ( 129 608 0 ) Floors/Floor227 0 0 270 1 1
( 256 480 16 ) ( 257 480 16 ) ( 256 479 16 ) Floors/Floor227 0 0 270 1 1
( 128 560 -16 ) ( 129 560 -16 ) ( 128 560 -15 ) Floors/Floor227 0 0 0 1 1
( 192 480 16 ) ( 192 479 16 ) ( 192 480 17 ) Floors/Floor227 0 0 180 1 -1
}
// brush 9
{
( 152 608 16 ) ( 152 608 17 ) ( 152 607 16 ) Manual/Blue_Panel_Wall 16 16 180 1 -1
( 160 496 32 ) ( 160 496 33 ) ( 161 496 32 ) Manual/Blue_Panel_Wall -16 16 0 1 1
( 144 608 16 ) ( 144 607 16 ) ( 145 608 16 ) Manual/Blue_Panel_Wall 16 0 270 1 1
( 160 480 48 ) ( 161 480 48 ) ( 160 479 48 ) Floors/Floor96 0 0 270 1 1
( 160 528 32 ) ( 161 528 32 ) ( 160 528 33 ) Manual/Blue_Panel_Wall -16 16 0 1 1
( 160 480 32 ) ( 160 479 32 ) ( 160 480 33 ) Manual/Blue_Panel_Wall 16 16 180 1 -1
}
// brush 10
{
( 152 608 16 ) ( 152 608 17 ) ( 152 607 16 ) Various/Various0 0 0 180 1 -1
( 160 528 32 ) ( 160 528 33 ) ( 161 528 32 ) Various/Various0 0 0 0 1 1
( 144 608 16 ) ( 144 607 16 ) ( 145 608 16 ) Various/Various0 0 0 270 1 1
( 160 480 48 ) ( 161 480 48 ) ( 160 479 48 ) Floors/Floor96 0 0 270 1 1
( 144 560 16 ) ( 145 560 16 ) ( 144 560 17 ) Various/Various0 0 0 0 1 1
( 160 480 32 ) ( 160 479 32 ) ( 160 480 33 ) Various/Various0 0 0 180 1 -1
}
// brush 11
{
( 448 560 16 ) ( 448 560 17 ) ( 448 559 16 ) Walls/Wall0 0 0 0 -1 1
( 464 336 32 ) ( 464 336 33 ) ( 465 336 32 ) Walls/Wall0 0 0 0 1 1
( 448 560 0 ) ( 448 559 0 ) ( 449 560 0 ) Walls/Wall0 0 0 270 1 1
( 464 432 48 ) ( 465 432 48 ) ( 464 431 48 ) Walls/Wall0 0 0 270 1 1
( 448 560 16 ) ( 449 560 16 ) ( 448 560 17 ) Walls/Wall0 0 0 0 1 1
( 456 432 32 ) ( 456 431 32 ) ( 456 432 33 ) Manual/Black 0 0 0 -1 1
}
// brush 12
{
( 416 352 16 ) ( 416 352 17 ) ( 416 351 16 ) Walls/Wall0 0 0 0 -1 1
( 448 344 32 ) ( 448 344 33 ) ( 449 344 32 ) Walls/Wall0 0 0 0 1 1
( 432 352 16 ) ( 432 351 16 ) ( 433 352 16 ) Walls/Wall0 0 16 270 1 1
( 448 224 48 ) ( 449 224 48 ) ( 448 223 48 ) Walls/Wall0 0 16 270 1 1
( 432 352 16 ) ( 433 352 16 ) ( 432 352 17 ) Walls/Wall0 0 0 0 1 1
( 448 224 32 ) ( 448 223 32 ) ( 448 224 33 ) Walls/Wall0 0 0 0 -1 1
}
// brush 13
{
( 152 568 16 ) ( 152 568 17 ) ( 152 567 16 ) Walls/Wall0 8 0 0 -1 1
( 208 560 32 ) ( 208 560 33 ) ( 209 560 32 ) Walls/Wall0 0 0 0 1 1
( 192 568 0 ) ( 192 567 0 ) ( 193 568 0 ) Walls/Wall0 8 0 270 1 1
( 208 440 48 ) ( 209 440 48 ) ( 208 439 48 ) Walls/Wall0 8 0 270 1 1
( 192 568 16 ) ( 193 568 16 ) ( 192 568 17 ) Manual/Black 0 0 0 1 1
( 384 440 32 ) ( 384 439 32 ) ( 384 440 33 ) Walls/Wall0 8 0 0 -1 1
}
// brush 14
{
( 224 336 0 ) ( 224 432 0 ) ( 224 336 16 ) Floors/Floor17 0 0 180 1 -1
( 224 344 16 ) ( 464 344 16 ) ( 224 344 0 ) Floors/Floor17 0 0 0 1 1
( 464 336 0 ) ( 464 432 0 ) ( 224 336 0 ) Floors/Floor17 0 0 270 1 1
( 224 336 16 ) ( 224 432 16 ) ( 464 336 16 ) Floors/Floor17 0 0 270 1 1
( 464 432 16 ) ( 224 432 16 ) ( 464 432 0 ) Floors/Floor17 0 0 0 1 1
( 448 336 16 ) ( 448 432 16 ) ( 448 336 0 ) Floors/Floor17 0 0 180 1 -1
}
// brush 15
{
( 224 576 16 ) ( 224 496 16 ) ( 224 576 0 ) Floors/Floor17 0 0 180 1 -1
( 224 496 0 ) ( 224 496 16 ) ( 464 496 0 ) Floors/Floor17 0 0 0 1 1
( 224 576 0 ) ( 224 496 0 ) ( 464 576 0 ) Floors/Floor17 0 0 270 1 1
( 464 576 16 ) ( 464 496 16 ) ( 224 576 16 ) Floors/Floor17 0 0 270 1 1
( 224 560 0 ) ( 464 560 0 ) ( 224 560 16 ) Floors/Floor17 0 0 0 1 1
( 448 576 0 ) ( 448 496 0 ) ( 448 576 16 ) Floors/Floor17 0 0 180 1 -1
}
// brush 16
{
( 384 432 16 ) ( 384 432 0 ) ( 384 496 16 ) Floors/Floor17 0 0 180 1 -1
( 464 432 0 ) ( 384 432 0 ) ( 464 432 16 ) Floors/Floor17 0 0 0 1 1
( 464 496 0 ) ( 384 496 0 ) ( 464 432 0 ) Floors/Floor17 0 0 270 1 1
( 464 432 16 ) ( 384 432 16 ) ( 464 496 16 ) Floors/Floor17 0 0 270 1 1
( 464 496 16 ) ( 384 496 16 ) ( 464 496 0 ) Floors/Floor17 0 0 0 1 1
( 448 432 16 ) ( 448 496 16 ) ( 448 432 0 ) Floors/Floor17 0 0 180 1 -1
}
// brush 17
{
( 224 432 0 ) ( 224 496 0 ) ( 224 432 16 ) Floors/Floor17 0 0 180 1 -1
( 224 432 16 ) ( 320 432 16 ) ( 224 432 0 ) Floors/Floor17 0 0 0 1 1
( 224 432 0 ) ( 320 432 0 ) ( 224 496 0 ) Floors/Floor17 0 0 270 1 1
( 224 496 16 ) ( 320 496 16 ) ( 224 432 16 ) Floors/Floor17 0 0 270 1 1
( 224 496 0 ) ( 320 496 0 ) ( 224 496 16 ) Floors/Floor17 0 0 0 1 1
( 320 496 0 ) ( 320 432 0 ) ( 320 496 16 ) Floors/Floor17 0 0 180 1 -1
}
// brush 18
{
( 320 432 0 ) ( 320 496 0 ) ( 320 432 16 ) Floors/Floor260 0 0 180 1 -1
( 288 432 16 ) ( 384 432 16 ) ( 288 432 0 ) Floors/Floor260 0 0 0 1 1
( 288 432 0 ) ( 384 432 0 ) ( 288 496 0 ) Floors/Floor260 0 0 270 1 1
( 288 496 16 ) ( 384 496 16 ) ( 288 432 16 ) Floors/Floor260 0 0 270 1 1
( 288 496 0 ) ( 384 496 0 ) ( 288 496 16 ) Floors/Floor260 0 0 0 1 1
( 384 496 0 ) ( 384 432 0 ) ( 384 496 16 ) Floors/Floor260 0 0 180 1 -1
}
// brush 19
{
( 120 544 16 ) ( 120 544 17 ) ( 120 543 16 ) Manual/Blue_Panel_Wall 16 16 180 1 -1
( 128 432 32 ) ( 128 432 33 ) ( 129 432 32 ) Manual/Blue_Panel_Wall -16 16 0 1 1
( 112 544 16 ) ( 112 543 16 ) ( 113 544 16 ) Manual/Blue_Panel_Wall 16 0 270 1 1
( 128 416 48 ) ( 129 416 48 ) ( 128 415 48 ) Floors/Floor96 0 0 270 1 1
( 128 464 32 ) ( 129 464 32 ) ( 128 464 33 ) Manual/Blue_Panel_Wall -16 16 0 1 1
( 128 416 32 ) ( 128 415 32 ) ( 128 416 33 ) Manual/Blue_Panel_Wall 16 16 180 1 -1
}
// brush 20
{
( 120 464 48 ) ( 120 464 49 ) ( 120 463 48 ) Walls/Wall0 0 0 0 -1 1
( 128 344 64 ) ( 128 344 65 ) ( 129 344 64 ) Walls/Wall0 0 0 0 1 1
( 112 464 48 ) ( 112 463 48 ) ( 113 464 48 ) Walls/Wall0 0 16 270 1 1
( 128 336 80 ) ( 129 336 80 ) ( 128 335 80 ) Walls/Wall0 0 16 270 1 1
( 112 464 48 ) ( 113 464 48 ) ( 112 464 49 ) Walls/Wall0 0 0 0 1 1
( 128 336 64 ) ( 128 335 64 ) ( 128 336 65 ) Walls/Wall0 0 0 0 -1 1
}
// brush 21
{
( 128 352 48 ) ( 128 352 49 ) ( 128 351 48 ) Walls/Wall0 0 0 0 -1 1
( 176 344 64 ) ( 176 344 65 ) ( 177 344 64 ) Walls/Wall0 0 0 0 1 1
( 160 352 48 ) ( 160 351 48 ) ( 161 352 48 ) Walls/Wall0 0 0 270 1 1
( 176 224 80 ) ( 177 224 80 ) ( 176 223 80 ) Walls/Wall0 0 0 270 1 1
( 160 352 48 ) ( 161 352 48 ) ( 160 352 49 ) Walls/Wall0 0 0 0 1 1
( 352 224 64 ) ( 352 223 64 ) ( 352 224 65 ) Walls/Wall0 0 0 0 -1 1
}
// brush 22
{
( 344 240 0 ) ( 344 336 0 ) ( 344 240 16 ) Floors/Floor225 0 0 180 1 -1
( 224 112 16 ) ( 464 112 16 ) ( 224 112 0 ) Floors/Floor225 0 0 0 1 1
( 464 240 0 ) ( 464 336 0 ) ( 224 240 0 ) Floors/Floor225 0 0 270 1 1
( 224 240 16 ) ( 224 336 16 ) ( 464 240 16 ) Floors/Floor225 0 0 270 1 1
( 464 344 16 ) ( 224 344 16 ) ( 464 344 0 ) Floors/Floor225 0 0 0 1 1
( 448 240 16 ) ( 448 336 16 ) ( 448 240 0 ) Floors/Floor225 0 0 180 1 -1
}
// brush 23
{
( 448 336 16 ) ( 448 336 17 ) ( 448 335 16 ) Walls/Wall0 0 0 0 -1 1
( 464 184 32 ) ( 464 184 33 ) ( 465 184 32 ) Walls/Wall0 0 0 0 1 1
( 448 336 0 ) ( 448 335 0 ) ( 449 336 0 ) Walls/Wall0 0 0 270 1 1
( 464 208 48 ) ( 465 208 48 ) ( 464 207 48 ) Walls/Wall0 0 0 270 1 1
( 448 336 16 ) ( 449 336 16 ) ( 448 336 17 ) Walls/Wall0 0 0 0 1 1
( 456 208 32 ) ( 456 207 32 ) ( 456 208 33 ) Manual/Black 0 0 0 -1 1
}
// brush 24
{
( 344 336 16 ) ( 344 336 17 ) ( 344 335 16 ) Walls/Wall0 0 0 0 -1 1
( 352 112 32 ) ( 352 112 33 ) ( 353 112 32 ) Walls/Wall0 0 0 0 1 1
( 336 336 16 ) ( 336 335 16 ) ( 337 336 16 ) Walls/Wall0 0 16 270 1 1
( 352 208 48 ) ( 353 208 48 ) ( 352 207 48 ) Walls/Wall0 0 16 270 1 1
( 336 344 16 ) ( 337 344 16 ) ( 336 344 17 ) Walls/Wall0 0 0 0 1 1
( 352 208 32 ) ( 352 207 32 ) ( 352 208 33 ) Walls/Wall0 0 0 0 -1 1
}
// brush 25
{
( 416 128 16 ) ( 416 128 17 ) ( 416 127 16 ) Walls/Wall0 0 0 0 -1 1
( 448 112 32 ) ( 448 112 33 ) ( 449 112 32 ) Walls/Wall0 0 0 0 1 1
( 432 128 16 ) ( 432 127 16 ) ( 433 128 16 ) Walls/Wall0 0 16 270 1 1
( 448 0 48 ) ( 449 0 48 ) ( 448 -1 48 ) Walls/Wall0 0 16 270 1 1
( 432 120 16 ) ( 433 120 16 ) ( 432 120 17 ) Walls/Wall0 0 0 0 1 1
( 448 0 32 ) ( 448 -1 32 ) ( 448 0 33 ) Walls/Wall0 0 0 0 -1 1
}
// brush 26
{
( 352 128 16 ) ( 352 128 17 ) ( 352 127 16 ) Walls/Wall0 0 0 0 -1 1
( 384 112 32 ) ( 384 112 33 ) ( 385 112 32 ) Walls/Wall0 0 0 0 1 1
( 368 128 16 ) ( 368 127 16 ) ( 369 128 16 ) Walls/Wall0 0 16 270 1 1
( 384 0 48 ) ( 385 0 48 ) ( 384 -1 48 ) Walls/Wall0 0 16 270 1 1
( 368 120 16 ) ( 369 120 16 ) ( 368 120 17 ) Walls/Wall0 0 0 0 1 1
( 384 0 32 ) ( 384 -1 32 ) ( 384 0 33 ) Walls/Wall0 0 0 0 -1 1
}
// brush 27
{
( 344 16 0 ) ( 344 112 0 ) ( 344 16 16 ) Floors/Floor17 0 0 180 1 -1
( 224 0 16 ) ( 464 0 16 ) ( 224 0 0 ) Floors/Floor17 0 0 0 1 1
( 464 16 0 ) ( 464 112 0 ) ( 224 16 0 ) Floors/Floor17 0 0 270 1 1
( 224 16 16 ) ( 224 112 16 ) ( 464 16 16 ) Floors/Floor17 0 0 270 1 1
( 464 112 16 ) ( 224 112 16 ) ( 464 112 0 ) Floors/Floor17 0 0 0 1 1
( 448 16 16 ) ( 448 112 16 ) ( 448 16 0 ) Floors/Floor17 0 0 180 1 -1
}
// brush 28
{
( 344 112 16 ) ( 344 112 17 ) ( 344 111 16 ) Walls/Wall0 0 0 0 -1 1
( 352 -72 32 ) ( 352 -72 33 ) ( 353 -72 32 ) Walls/Wall0 0 0 0 1 1
( 336 112 16 ) ( 336 111 16 ) ( 337 112 16 ) Walls/Wall0 0 16 270 1 1
( 352 -16 80 ) ( 353 -16 80 ) ( 352 -17 80 ) Walls/Wall0 0 16 270 1 1
( 336 112 16 ) ( 337 112 16 ) ( 336 112 17 ) Walls/Wall0 0 0 0 1 1
( 352 -16 32 ) ( 352 -17 32 ) ( 352 -16 33 ) Walls/Wall0 0 0 0 -1 1
}
// brush 29
{
( 448 112 16 ) ( 448 112 17 ) ( 448 111 16 ) Walls/Wall0 0 0 0 -1 1
( 464 0 32 ) ( 464 0 33 ) ( 465 0 32 ) Walls/Wall0 0 0 0 1 1
( 448 112 0 ) ( 448 111 0 ) ( 449 112 0 ) Walls/Wall0 0 0 270 1 1
( 464 -16 48 ) ( 465 -16 48 ) ( 464 -17 48 ) Walls/Wall0 0 0 270 1 1
( 448 112 16 ) ( 449 112 16 ) ( 448 112 17 ) Walls/Wall0 0 0 0 1 1
( 456 -16 32 ) ( 456 -17 32 ) ( 456 -16 33 ) Manual/Black 0 0 0 -1 1
}
// brush 30
{
( 352 16 16 ) ( 352 16 17 ) ( 352 15 16 ) Walls/Wall0 0 0 0 -1 1
( 384 0 32 ) ( 384 0 33 ) ( 385 0 32 ) Walls/Wall0 0 0 0 1 1
( 368 16 16 ) ( 368 15 16 ) ( 369 16 16 ) Walls/Wall0 0 16 270 1 1
( 384 -112 48 ) ( 385 -112 48 ) ( 384 -113 48 ) Walls/Wall0 0 16 270 1 1
( 368 16 16 ) ( 369 16 16 ) ( 368 16 17 ) Walls/Wall0 0 0 0 1 1
( 448 -112 32 ) ( 448 -113 32 ) ( 448 -112 33 ) Walls/Wall0 0 0 0 -1 1
}
// brush 31
{
( 312 -328 32 ) ( 312 -232 32 ) ( 312 -328 48 ) Floors/Floor17 8 0 180 1 -1
( 200 -344 48 ) ( 440 -344 48 ) ( 200 -344 32 ) Floors/Floor17 -8 0 0 1 1
( 440 -328 32 ) ( 440 -232 32 ) ( 200 -328 32 ) Floors/Floor17 8 8 270 1 1
( 200 -328 48 ) ( 200 -232 48 ) ( 440 -328 48 ) Floors/Floor17 8 8 270 1 1
( 440 -232 48 ) ( 200 -232 48 ) ( 440 -232 32 ) Floors/Floor17 -8 0 0 1 1
( 440 -328 48 ) ( 440 -232 48 ) ( 440 -328 32 ) Floors/Floor17 8 0 180 1 -1
}
// brush 32
{
( 352 -56 40 ) ( 352 40 40 ) ( 352 -56 56 ) Various/Various2 8 -8 180 1 -1
( 240 -72 56 ) ( 480 -72 56 ) ( 240 -72 40 ) Various/Various2 0 -8 0 1 1
( 480 -56 48 ) ( 480 40 48 ) ( 240 -56 48 ) Various/Various2 8 0 270 1 1
( 240 -56 56 ) ( 240 40 56 ) ( 480 -56 56 ) Various/Various2 8 0 270 1 1
( 480 40 56 ) ( 240 40 56 ) ( 480 40 40 ) Various/Various2 0 -8 0 1 1
( 448 -56 56 ) ( 448 40 56 ) ( 448 -56 40 ) Various/Various2 8 -8 180 1 -1
}
// brush 33
{
( 448 0 16 ) ( 448 0 17 ) ( 448 -1 16 ) Walls/Wall0 0 0 0 -1 1
( 464 -112 32 ) ( 464 -112 33 ) ( 465 -112 32 ) Walls/Wall0 0 0 0 1 1
( 448 0 16 ) ( 448 -1 16 ) ( 449 0 16 ) Walls/Wall0 0 0 270 1 1
( 464 -128 80 ) ( 465 -128 80 ) ( 464 -129 80 ) Walls/Wall0 0 0 270 1 1
( 448 0 16 ) ( 449 0 16 ) ( 448 0 17 ) Walls/Wall0 0 0 0 1 1
( 464 -128 32 ) ( 464 -129 32 ) ( 464 -128 33 ) Walls/Wall0 0 0 0 -1 1
}
// brush 34
{
( 448 224 16 ) ( 448 224 17 ) ( 448 223 16 ) Walls/Wall0 0 0 0 -1 1
( 464 112 32 ) ( 464 112 33 ) ( 465 112 32 ) Walls/Wall0 0 0 0 1 1
( 448 224 0 ) ( 448 223 0 ) ( 449 224 0 ) Walls/Wall0 0 0 270 1 1
( 464 96 48 ) ( 465 96 48 ) ( 464 95 48 ) Walls/Wall0 0 0 270 1 1
( 448 152 16 ) ( 449 152 16 ) ( 448 152 17 ) Walls/Wall0 0 0 0 1 1
( 456 96 32 ) ( 456 95 32 ) ( 456 96 33 ) Manual/Black 0 0 0 -1 1
}
// brush 35
{
( 152 488 16 ) ( 152 488 17 ) ( 152 487 16 ) Walls/Wall0 8 0 0 -1 1
( 160 464 32 ) ( 160 464 33 ) ( 161 464 32 ) Walls/Wall0 0 0 0 1 1
( 144 488 16 ) ( 144 487 16 ) ( 145 488 16 ) Walls/Wall0 8 16 270 1 1
( 160 360 48 ) ( 161 360 48 ) ( 160 359 48 ) Walls/Wall0 8 16 270 1 1
( 144 480 16 ) ( 145 480 16 ) ( 144 480 17 ) Walls/Wall0 0 0 0 1 1
( 160 360 32 ) ( 160 359 32 ) ( 160 360 33 ) Walls/Wall0 8 0 0 -1 1
}
// brush 36
{
( 152 584 48 ) ( 152 584 49 ) ( 152 583 48 ) Walls/Wall0 8 0 0 -1 1
( 160 464 64 ) ( 160 464 65 ) ( 161 464 64 ) Walls/Wall0 0 0 0 1 1
( 144 584 48 ) ( 144 583 48 ) ( 145 584 48 ) Walls/Wall0 8 16 270 1 1
( 160 456 80 ) ( 161 456 80 ) ( 160 455 80 ) Walls/Wall0 8 16 270 1 1
( 144 560 48 ) ( 145 560 48 ) ( 144 560 49 ) Walls/Wall0 0 0 0 1 1
( 160 456 64 ) ( 160 455 64 ) ( 160 456 65 ) Walls/Wall0 8 0 0 -1 1
}
// brush 37
{
( 128 352 16 ) ( 128 352 17 ) ( 128 351 16 ) Walls/Wall0 0 0 0 -1 1
( 0 344 32 ) ( 0 344 33 ) ( 1 344 32 ) Walls/Wall0 0 0 0 1 1
( -16 352 16 ) ( -16 351 16 ) ( -15 352 16 ) Walls/Wall0 0 16 270 1 1
( 0 224 48 ) ( 1 224 48 ) ( 0 223 48 ) Walls/Wall0 0 16 270 1 1
( -16 352 16 ) ( -15 352 16 ) ( -16 352 17 ) Walls/Wall0 0 0 0 1 1
( 208 224 32 ) ( 208 223 32 ) ( 208 224 33 ) Walls/Wall0 0 0 0 -1 1
}
// brush 38
{
( 384 704 -16 ) ( 384 704 -15 ) ( 384 703 -16 ) Floors/Floor103 0 0 180 1 -1
( 464 560 16 ) ( 464 560 17 ) ( 465 560 16 ) Floors/Floor103 0 0 0 1 1
( 336 704 0 ) ( 336 703 0 ) ( 337 704 0 ) Floors/Floor103 0 0 270 1 1
( 464 576 16 ) ( 465 576 16 ) ( 464 575 16 ) Floors/Floor103 0 0 270 1 1
( 336 672 -16 ) ( 337 672 -16 ) ( 336 672 -15 ) Floors/Floor103 0 0 0 1 1
( 400 576 16 ) ( 400 575 16 ) ( 400 576 17 ) Floors/Floor103 0 0 180 1 -1
}
// brush 39
{
( 376 800 16 ) ( 376 800 17 ) ( 376 799 16 ) Walls/Wall0 0 0 0 -1 1
( 384 568 32 ) ( 384 568 33 ) ( 385 568 32 ) Walls/Wall0 0 0 0 1 1
( 368 800 0 ) ( 368 799 0 ) ( 369 800 0 ) Walls/Wall0 0 16 270 1 1
( 384 672 48 ) ( 385 672 48 ) ( 384 671 48 ) Walls/Wall0 0 16 270 1 1
( 368 672 16 ) ( 369 672 16 ) ( 368 672 17 ) Walls/Wall0 0 0 0 1 1
( 384 672 32 ) ( 384 671 32 ) ( 384 672 33 ) Walls/Wall0 0 0 0 -1 1
}
// brush 40
{
( 400 800 16 ) ( 400 800 17 ) ( 400 799 16 ) Walls/Wall0 0 0 0 -1 1
( 408 568 32 ) ( 408 568 33 ) ( 409 568 32 ) Walls/Wall0 -8 0 0 1 1
( 392 800 0 ) ( 392 799 0 ) ( 393 800 0 ) Walls/Wall0 0 8 270 1 1
( 408 672 24 ) ( 409 672 24 ) ( 408 671 24 ) Walls/Wall0 0 8 270 1 1
( 392 672 16 ) ( 393 672 16 ) ( 392 672 17 ) Walls/Wall0 -8 0 0 1 1
( 408 672 32 ) ( 408 671 32 ) ( 408 672 33 ) Manual/Black 0 0 0 -1 1
}
// brush 41
{
( 376 40 56 ) ( 376 40 16 ) ( 376 96 16 ) Floors/Floor107 0 0 0 1 1
( 376 40 56 ) ( 424 40 56 ) ( 424 40 16 ) Floors/Floor107 0 0 0 1 1
( 424 40 16 ) ( 424 96 16 ) ( 376 96 16 ) Floors/Floor107 0 0 0 1 1
( 376 96 16 ) ( 424 96 16 ) ( 424 40 56 ) Floors/Floor107 0 0 0 1 1
( 424 40 56 ) ( 424 96 16 ) ( 424 40 16 ) Floors/Floor107 0 0 0 1 1
}
// brush 42
{
( 352 352 48 ) ( 352 352 49 ) ( 352 351 48 ) Walls/Wall0 0 0 0 -1 1
( 176 344 64 ) ( 176 344 65 ) ( 177 344 64 ) Walls/Wall0 0 0 0 1 1
( 160 352 48 ) ( 160 351 48 ) ( 161 352 48 ) Walls/Wall0 0 0 270 1 1
( 176 224 56 ) ( 177 224 56 ) ( 176 223 56 ) Walls/Wall0 0 0 270 1 1
( 160 352 48 ) ( 161 352 48 ) ( 160 352 49 ) Walls/Wall0 0 0 0 1 1
( 456 224 64 ) ( 456 223 64 ) ( 456 224 65 ) Walls/Wall0 0 0 0 -1 1
}
// brush 43
{
( 384 568 40 ) ( 384 568 41 ) ( 384 567 40 ) Walls/Wall0 8 -8 0 -1 1
( 152 560 56 ) ( 152 560 57 ) ( 153 560 56 ) Walls/Wall0 -8 -8 0 1 1
( 136 568 40 ) ( 136 567 40 ) ( 137 568 40 ) Walls/Wall0 8 8 270 1 1
( 152 440 48 ) ( 153 440 48 ) ( 152 439 48 ) Walls/Wall0 8 8 270 1 1
( 136 568 40 ) ( 137 568 40 ) ( 136 568 41 ) Walls/Wall0 -8 -8 0 1 1
( 400 440 56 ) ( 400 439 56 ) ( 400 440 57 ) Walls/Wall0 8 -8 0 -1 1
}
// brush 44
{
( 248 376 16 ) ( 248 424 16 ) ( 304 424 56 ) Floors/Floor107 0 -8 90 1 1
( 304 376 56 ) ( 304 376 16 ) ( 248 376 16 ) Floors/Floor107 8 0 180 1 -1
( 304 424 16 ) ( 248 424 16 ) ( 248 376 16 ) Floors/Floor107 0 -8 90 1 1
( 304 424 56 ) ( 248 424 16 ) ( 304 424 16 ) Floors/Floor107 8 0 180 1 -1
( 304 376 56 ) ( 304 424 56 ) ( 304 424 16 ) Floors/Floor107 0 0 0 1 1
}
// brush 45
{
( 400 800 40 ) ( 400 800 41 ) ( 400 799 40 ) special/clip 0 24 0 -1 1
( 408 568 56 ) ( 408 568 57 ) ( 409 568 56 ) special/clip 8 24 0 1 1
( 392 800 24 ) ( 392 799 24 ) ( 393 800 24 ) special/clip 0 8 270 1 1
( 408 672 48 ) ( 409 672 48 ) ( 408 671 48 ) special/clip 0 8 270 1 1
( 392 672 40 ) ( 393 672 40 ) ( 392 672 41 ) special/clip 8 24 0 1 1
( 408 672 56 ) ( 408 671 56 ) ( 408 672 57 ) special/clip 0 0 180 1 -1
}
}
// entity 1
{
"classname" "wall_panel_blue_nw"
// brush 0
{
( 240 352 16 ) ( 240 352 17 ) ( 240 351 16 ) Manual/Blue_Panel_Wall_Thin 0 16 0 -0.5 1
( 64 344 32 ) ( 64 344 33 ) ( 65 344 32 ) Manual/Blue_Panel_Wall -16 16 0 1 1
( 48 352 16 ) ( 48 351 16 ) ( 49 352 16 ) Manual/Blue_Panel_Wall 0 16 270 1 1
( 64 224 48 ) ( 65 224 48 ) ( 64 223 48 ) Manual/Blue_Panel_Wall 0 16 270 1 1
( 48 352 16 ) ( 49 352 16 ) ( 48 352 17 ) Manual/Blue_Panel_Wall -16 16 0 1 1
( 272 224 32 ) ( 272 223 32 ) ( 272 224 33 ) Manual/Blue_Panel_Wall_Thin 0 16 0 -0.5 1
}
}
// entity 2
{
"classname" "wall_panel_blue_nw"
// brush 0
{
( 208 352 16 ) ( 208 352 17 ) ( 208 351 16 ) Manual/Blue_Panel_Wall_Thin 0 16 0 -0.5 1
( 32 344 32 ) ( 32 344 33 ) ( 33 344 32 ) Manual/Blue_Panel_Wall -16 16 0 1 1
( 16 352 16 ) ( 16 351 16 ) ( 17 352 16 ) Manual/Blue_Panel_Wall 0 16 270 1 1
( 32 224 48 ) ( 33 224 48 ) ( 32 223 48 ) Manual/Blue_Panel_Wall 0 16 270 1 1
( 16 352 16 ) ( 17 352 16 ) ( 16 352 17 ) Manual/Blue_Panel_Wall -16 16 0 1 1
( 240 224 32 ) ( 240 223 32 ) ( 240 224 33 ) Manual/Blue_Panel_Wall_Thin 0 16 0 -0.5 1
}
}
// entity 3
{
"classname" "grille_wall_ne"
// brush 0
{
( 152 608 16 ) ( 152 608 17 ) ( 152 607 16 ) Manual/Grille_Wall 0 16 0 -1 1
( 160 480 32 ) ( 160 480 33 ) ( 161 480 32 ) Manual/Grille_Wall 0 16 0 1 1
( 144 608 16 ) ( 144 607 16 ) ( 145 608 16 ) Manual/Grille_Wall 0 0 270 1 1
( 160 480 48 ) ( 161 480 48 ) ( 160 479 48 ) Floors/Floor96 0 0 270 1 1
( 160 496 32 ) ( 161 496 32 ) ( 160 496 33 ) Manual/Grille_Wall 0 16 0 1 1
( 160 480 32 ) ( 160 479 32 ) ( 160 480 33 ) Manual/Grille_Wall 0 16 0 -1 1
}
}

View file

@ -3,7 +3,7 @@
// entity 0
{
"classname" "worldspawn"
"_tb_textures" "textures;textures/Floors;textures/Manual;textures/Various;textures/Walls"
"_tb_textures" "textures;textures/Floors;textures/Manual;textures/Various;textures/Walls;textures/special"
// brush 0
{
( 120 464 -16 ) ( 120 464 -15 ) ( 120 463 -16 ) Floors/Floor227 0 0 180 1 -1
@ -46,7 +46,7 @@
( 320 448 16 ) ( 320 448 17 ) ( 321 448 16 ) Floors/Floor273 0 0 0 1 1
( 192 544 0 ) ( 192 543 0 ) ( 193 544 0 ) Floors/Floor273 0 0 270 1 1
( 320 416 16 ) ( 321 416 16 ) ( 320 415 16 ) Floors/Floor273 0 0 270 1 1
( 192 568 -16 ) ( 193 568 -16 ) ( 192 568 -15 ) Floors/Floor273 0 0 0 1 1
( 192 560 -16 ) ( 193 560 -16 ) ( 192 560 -15 ) Floors/Floor273 0 0 0 1 1
( 224 416 16 ) ( 224 415 16 ) ( 224 416 17 ) Floors/Floor273 0 0 180 1 -1
}
// brush 5
@ -71,10 +71,10 @@
{
( 400 448 32 ) ( 400 448 33 ) ( 400 447 32 ) Walls/Wall0 0 0 0 -1 1
( 208 560 32 ) ( 208 560 33 ) ( 209 560 32 ) Walls/Wall0 0 0 0 1 1
( 192 576 16 ) ( 192 575 16 ) ( 193 576 16 ) Walls/Wall0 0 0 270 1 1
( 192 576 0 ) ( 192 575 0 ) ( 193 576 0 ) Walls/Wall0 0 0 270 1 1
( 208 448 48 ) ( 209 448 48 ) ( 208 447 48 ) Walls/Wall0 0 0 270 1 1
( 192 568 16 ) ( 193 568 16 ) ( 192 568 17 ) Walls/Wall0 0 0 0 1 1
( 456 448 32 ) ( 456 447 32 ) ( 456 448 33 ) Walls/Wall0 0 0 0 -1 1
( 192 568 16 ) ( 193 568 16 ) ( 192 568 17 ) Manual/Black 0 0 0 1 1
( 456 448 32 ) ( 456 447 32 ) ( 456 448 33 ) Manual/Black 0 0 0 -1 1
}
// brush 8
{
@ -82,7 +82,7 @@
( 256 480 16 ) ( 256 480 17 ) ( 257 480 16 ) Floors/Floor227 0 0 0 1 1
( 128 608 0 ) ( 128 607 0 ) ( 129 608 0 ) Floors/Floor227 0 0 270 1 1
( 256 480 16 ) ( 257 480 16 ) ( 256 479 16 ) Floors/Floor227 0 0 270 1 1
( 128 568 -16 ) ( 129 568 -16 ) ( 128 568 -15 ) Floors/Floor227 0 0 0 1 1
( 128 560 -16 ) ( 129 560 -16 ) ( 128 560 -15 ) Floors/Floor227 0 0 0 1 1
( 192 480 16 ) ( 192 479 16 ) ( 192 480 17 ) Floors/Floor227 0 0 180 1 -1
}
// brush 9
@ -107,10 +107,10 @@
{
( 448 560 16 ) ( 448 560 17 ) ( 448 559 16 ) Walls/Wall0 0 0 0 -1 1
( 464 336 32 ) ( 464 336 33 ) ( 465 336 32 ) Walls/Wall0 0 0 0 1 1
( 448 560 16 ) ( 448 559 16 ) ( 449 560 16 ) Walls/Wall0 0 0 270 1 1
( 448 560 0 ) ( 448 559 0 ) ( 449 560 0 ) Walls/Wall0 0 0 270 1 1
( 464 432 48 ) ( 465 432 48 ) ( 464 431 48 ) Walls/Wall0 0 0 270 1 1
( 448 560 16 ) ( 449 560 16 ) ( 448 560 17 ) Walls/Wall0 0 0 0 1 1
( 456 432 32 ) ( 456 431 32 ) ( 456 432 33 ) Walls/Wall0 0 0 0 -1 1
( 456 432 32 ) ( 456 431 32 ) ( 456 432 33 ) Manual/Black 0 0 0 -1 1
}
// brush 12
{
@ -125,9 +125,9 @@
{
( 152 568 16 ) ( 152 568 17 ) ( 152 567 16 ) Walls/Wall0 8 0 0 -1 1
( 208 560 32 ) ( 208 560 33 ) ( 209 560 32 ) Walls/Wall0 0 0 0 1 1
( 192 568 16 ) ( 192 567 16 ) ( 193 568 16 ) Walls/Wall0 8 0 270 1 1
( 192 568 0 ) ( 192 567 0 ) ( 193 568 0 ) Walls/Wall0 8 0 270 1 1
( 208 440 48 ) ( 209 440 48 ) ( 208 439 48 ) Walls/Wall0 8 0 270 1 1
( 192 568 16 ) ( 193 568 16 ) ( 192 568 17 ) Walls/Wall0 0 0 0 1 1
( 192 568 16 ) ( 193 568 16 ) ( 192 568 17 ) Manual/Black 0 0 0 1 1
( 384 440 32 ) ( 384 439 32 ) ( 384 440 33 ) Walls/Wall0 8 0 0 -1 1
}
// brush 14
@ -137,7 +137,7 @@
( 464 336 0 ) ( 464 432 0 ) ( 224 336 0 ) Floors/Floor17 0 0 270 1 1
( 224 336 16 ) ( 224 432 16 ) ( 464 336 16 ) Floors/Floor17 0 0 270 1 1
( 464 432 16 ) ( 224 432 16 ) ( 464 432 0 ) Floors/Floor17 0 0 0 1 1
( 456 336 16 ) ( 456 432 16 ) ( 456 336 0 ) Floors/Floor17 0 0 180 1 -1
( 448 336 16 ) ( 448 432 16 ) ( 448 336 0 ) Floors/Floor17 0 0 180 1 -1
}
// brush 15
{
@ -145,8 +145,8 @@
( 224 496 0 ) ( 224 496 16 ) ( 464 496 0 ) Floors/Floor17 0 0 0 1 1
( 224 576 0 ) ( 224 496 0 ) ( 464 576 0 ) Floors/Floor17 0 0 270 1 1
( 464 576 16 ) ( 464 496 16 ) ( 224 576 16 ) Floors/Floor17 0 0 270 1 1
( 224 568 0 ) ( 464 568 0 ) ( 224 568 16 ) Floors/Floor17 0 0 0 1 1
( 456 576 0 ) ( 456 496 0 ) ( 456 576 16 ) Floors/Floor17 0 0 180 1 -1
( 224 560 0 ) ( 464 560 0 ) ( 224 560 16 ) Floors/Floor17 0 0 0 1 1
( 448 576 0 ) ( 448 496 0 ) ( 448 576 16 ) Floors/Floor17 0 0 180 1 -1
}
// brush 16
{
@ -155,7 +155,7 @@
( 464 496 0 ) ( 384 496 0 ) ( 464 432 0 ) Floors/Floor17 0 0 270 1 1
( 464 432 16 ) ( 384 432 16 ) ( 464 496 16 ) Floors/Floor17 0 0 270 1 1
( 464 496 16 ) ( 384 496 16 ) ( 464 496 0 ) Floors/Floor17 0 0 0 1 1
( 456 432 16 ) ( 456 496 16 ) ( 456 432 0 ) Floors/Floor17 0 0 180 1 -1
( 448 432 16 ) ( 448 496 16 ) ( 448 432 0 ) Floors/Floor17 0 0 180 1 -1
}
// brush 17
{
@ -209,16 +209,16 @@
( 464 240 0 ) ( 464 336 0 ) ( 224 240 0 ) Floors/Floor225 0 0 270 1 1
( 224 240 16 ) ( 224 336 16 ) ( 464 240 16 ) Floors/Floor225 0 0 270 1 1
( 464 344 16 ) ( 224 344 16 ) ( 464 344 0 ) Floors/Floor225 0 0 0 1 1
( 456 240 16 ) ( 456 336 16 ) ( 456 240 0 ) Floors/Floor225 0 0 180 1 -1
( 448 240 16 ) ( 448 336 16 ) ( 448 240 0 ) Floors/Floor225 0 0 180 1 -1
}
// brush 23
{
( 448 336 16 ) ( 448 336 17 ) ( 448 335 16 ) Walls/Wall0 0 0 0 -1 1
( 464 184 32 ) ( 464 184 33 ) ( 465 184 32 ) Walls/Wall0 0 0 0 1 1
( 448 336 16 ) ( 448 335 16 ) ( 449 336 16 ) Walls/Wall0 0 0 270 1 1
( 448 336 0 ) ( 448 335 0 ) ( 449 336 0 ) Walls/Wall0 0 0 270 1 1
( 464 208 48 ) ( 465 208 48 ) ( 464 207 48 ) Walls/Wall0 0 0 270 1 1
( 448 336 16 ) ( 449 336 16 ) ( 448 336 17 ) Walls/Wall0 0 0 0 1 1
( 456 208 32 ) ( 456 207 32 ) ( 456 208 33 ) Walls/Wall0 0 0 0 -1 1
( 456 208 32 ) ( 456 207 32 ) ( 456 208 33 ) Manual/Black 0 0 0 -1 1
}
// brush 24
{
@ -254,7 +254,7 @@
( 464 16 0 ) ( 464 112 0 ) ( 224 16 0 ) Floors/Floor17 0 0 270 1 1
( 224 16 16 ) ( 224 112 16 ) ( 464 16 16 ) Floors/Floor17 0 0 270 1 1
( 464 112 16 ) ( 224 112 16 ) ( 464 112 0 ) Floors/Floor17 0 0 0 1 1
( 456 16 16 ) ( 456 112 16 ) ( 456 16 0 ) Floors/Floor17 0 0 180 1 -1
( 448 16 16 ) ( 448 112 16 ) ( 448 16 0 ) Floors/Floor17 0 0 180 1 -1
}
// brush 28
{
@ -269,10 +269,10 @@
{
( 448 112 16 ) ( 448 112 17 ) ( 448 111 16 ) Walls/Wall0 0 0 0 -1 1
( 464 0 32 ) ( 464 0 33 ) ( 465 0 32 ) Walls/Wall0 0 0 0 1 1
( 448 112 16 ) ( 448 111 16 ) ( 449 112 16 ) Walls/Wall0 0 0 270 1 1
( 448 112 0 ) ( 448 111 0 ) ( 449 112 0 ) Walls/Wall0 0 0 270 1 1
( 464 -16 48 ) ( 465 -16 48 ) ( 464 -17 48 ) Walls/Wall0 0 0 270 1 1
( 448 112 16 ) ( 449 112 16 ) ( 448 112 17 ) Walls/Wall0 0 0 0 1 1
( 456 -16 32 ) ( 456 -17 32 ) ( 456 -16 33 ) Walls/Wall0 0 0 0 -1 1
( 456 -16 32 ) ( 456 -17 32 ) ( 456 -16 33 ) Manual/Black 0 0 0 -1 1
}
// brush 30
{
@ -314,10 +314,10 @@
{
( 448 224 16 ) ( 448 224 17 ) ( 448 223 16 ) Walls/Wall0 0 0 0 -1 1
( 464 112 32 ) ( 464 112 33 ) ( 465 112 32 ) Walls/Wall0 0 0 0 1 1
( 448 224 16 ) ( 448 223 16 ) ( 449 224 16 ) Walls/Wall0 0 0 270 1 1
( 448 224 0 ) ( 448 223 0 ) ( 449 224 0 ) Walls/Wall0 0 0 270 1 1
( 464 96 48 ) ( 465 96 48 ) ( 464 95 48 ) Walls/Wall0 0 0 270 1 1
( 448 152 16 ) ( 449 152 16 ) ( 448 152 17 ) Walls/Wall0 0 0 0 1 1
( 456 96 32 ) ( 456 95 32 ) ( 456 96 33 ) Walls/Wall0 0 0 0 -1 1
( 456 96 32 ) ( 456 95 32 ) ( 456 96 33 ) Manual/Black 0 0 0 -1 1
}
// brush 35
{
@ -346,10 +346,125 @@
( -16 352 16 ) ( -15 352 16 ) ( -16 352 17 ) Walls/Wall0 0 0 0 1 1
( 208 224 32 ) ( 208 223 32 ) ( 208 224 33 ) Walls/Wall0 0 0 0 -1 1
}
// brush 38
{
( 384 704 -16 ) ( 384 704 -15 ) ( 384 703 -16 ) Floors/Floor103 0 0 180 1 -1
( 464 560 16 ) ( 464 560 17 ) ( 465 560 16 ) Floors/Floor103 0 0 0 1 1
( 336 704 0 ) ( 336 703 0 ) ( 337 704 0 ) Floors/Floor103 0 0 270 1 1
( 464 576 16 ) ( 465 576 16 ) ( 464 575 16 ) Floors/Floor103 0 0 270 1 1
( 336 672 -16 ) ( 337 672 -16 ) ( 336 672 -15 ) Floors/Floor103 0 0 0 1 1
( 400 576 16 ) ( 400 575 16 ) ( 400 576 17 ) Floors/Floor103 0 0 180 1 -1
}
// brush 39
{
( 376 800 16 ) ( 376 800 17 ) ( 376 799 16 ) Walls/Wall0 0 0 0 -1 1
( 384 568 32 ) ( 384 568 33 ) ( 385 568 32 ) Walls/Wall0 0 0 0 1 1
( 368 800 0 ) ( 368 799 0 ) ( 369 800 0 ) Walls/Wall0 0 16 270 1 1
( 384 672 48 ) ( 385 672 48 ) ( 384 671 48 ) Walls/Wall0 0 16 270 1 1
( 368 672 16 ) ( 369 672 16 ) ( 368 672 17 ) Walls/Wall0 0 0 0 1 1
( 384 672 32 ) ( 384 671 32 ) ( 384 672 33 ) Walls/Wall0 0 0 0 -1 1
}
// brush 40
{
( 400 800 16 ) ( 400 800 17 ) ( 400 799 16 ) Walls/Wall0 0 0 0 -1 1
( 408 568 32 ) ( 408 568 33 ) ( 409 568 32 ) Walls/Wall0 -8 0 0 1 1
( 392 800 0 ) ( 392 799 0 ) ( 393 800 0 ) Walls/Wall0 0 8 270 1 1
( 408 672 24 ) ( 409 672 24 ) ( 408 671 24 ) Walls/Wall0 0 8 270 1 1
( 392 672 16 ) ( 393 672 16 ) ( 392 672 17 ) Walls/Wall0 -8 0 0 1 1
( 408 672 32 ) ( 408 671 32 ) ( 408 672 33 ) Manual/Black 0 0 0 -1 1
}
// brush 41
{
( 376 40 56 ) ( 376 40 16 ) ( 376 96 16 ) Floors/Floor107 0 0 0 1 1
( 376 40 56 ) ( 424 40 56 ) ( 424 40 16 ) Floors/Floor107 0 0 0 1 1
( 424 40 16 ) ( 424 96 16 ) ( 376 96 16 ) Floors/Floor107 0 0 0 1 1
( 376 96 16 ) ( 424 96 16 ) ( 424 40 56 ) Floors/Floor107 0 0 0 1 1
( 424 40 56 ) ( 424 96 16 ) ( 424 40 16 ) Floors/Floor107 0 0 0 1 1
}
// brush 42
{
( 352 352 48 ) ( 352 352 49 ) ( 352 351 48 ) Walls/Wall0 0 0 0 -1 1
( 176 344 64 ) ( 176 344 65 ) ( 177 344 64 ) Walls/Wall0 0 0 0 1 1
( 160 352 48 ) ( 160 351 48 ) ( 161 352 48 ) Walls/Wall0 0 0 270 1 1
( 176 224 56 ) ( 177 224 56 ) ( 176 223 56 ) Walls/Wall0 0 0 270 1 1
( 160 352 48 ) ( 161 352 48 ) ( 160 352 49 ) Walls/Wall0 0 0 0 1 1
( 456 224 64 ) ( 456 223 64 ) ( 456 224 65 ) Walls/Wall0 0 0 0 -1 1
}
// brush 43
{
( 384 568 40 ) ( 384 568 41 ) ( 384 567 40 ) Walls/Wall0 8 -8 0 -1 1
( 152 560 56 ) ( 152 560 57 ) ( 153 560 56 ) Walls/Wall0 -8 -8 0 1 1
( 136 568 40 ) ( 136 567 40 ) ( 137 568 40 ) Walls/Wall0 8 8 270 1 1
( 152 440 48 ) ( 153 440 48 ) ( 152 439 48 ) Walls/Wall0 8 8 270 1 1
( 136 568 40 ) ( 137 568 40 ) ( 136 568 41 ) Walls/Wall0 -8 -8 0 1 1
( 400 440 56 ) ( 400 439 56 ) ( 400 440 57 ) Walls/Wall0 8 -8 0 -1 1
}
// brush 44
{
( 248 376 16 ) ( 248 424 16 ) ( 304 424 56 ) Floors/Floor107 0 -8 90 1 1
( 304 376 56 ) ( 304 376 16 ) ( 248 376 16 ) Floors/Floor107 8 0 180 1 -1
( 304 424 16 ) ( 248 424 16 ) ( 248 376 16 ) Floors/Floor107 0 -8 90 1 1
( 304 424 56 ) ( 248 424 16 ) ( 304 424 16 ) Floors/Floor107 8 0 180 1 -1
( 304 376 56 ) ( 304 424 56 ) ( 304 424 16 ) Floors/Floor107 0 0 0 1 1
}
// brush 45
{
( 400 800 40 ) ( 400 800 41 ) ( 400 799 40 ) special/clip 0 24 0 -1 1
( 408 568 56 ) ( 408 568 57 ) ( 409 568 56 ) special/clip 8 24 0 1 1
( 392 800 24 ) ( 392 799 24 ) ( 393 800 24 ) special/clip 0 8 270 1 1
( 408 672 48 ) ( 409 672 48 ) ( 408 671 48 ) special/clip 0 8 270 1 1
( 392 672 40 ) ( 393 672 40 ) ( 392 672 41 ) special/clip 8 24 0 1 1
( 408 672 56 ) ( 408 671 56 ) ( 408 672 57 ) special/clip 0 0 180 1 -1
}
// brush 46
{
( 288 456 16 ) ( 288 520 16 ) ( 288 456 32 ) special/skip 8 0 180 1 -1
( 208 464 32 ) ( 304 464 32 ) ( 208 464 16 ) special/skip 16 0 0 1 1
( 208 456 16 ) ( 304 456 16 ) ( 208 520 16 ) special/skip 8 -16 270 1 1
( 208 520 32 ) ( 304 520 32 ) ( 208 456 32 ) special/skip 8 -16 270 1 1
( 208 480 16 ) ( 304 480 16 ) ( 208 480 32 ) special/skip 16 0 0 1 1
( 304 520 16 ) ( 304 456 16 ) ( 304 520 32 ) special/skip 8 0 180 1 -1
}
// brush 47
{
( 288 440 16 ) ( 288 504 16 ) ( 288 440 32 ) Floors/Floor112 -8 0 180 1 -1
( 208 448 32 ) ( 304 448 32 ) ( 208 448 16 ) Floors/Floor112 16 0 0 1 1
( 208 440 16 ) ( 304 440 16 ) ( 208 504 16 ) Floors/Floor112 -8 -16 270 1 1
( 208 504 32 ) ( 304 504 32 ) ( 208 440 32 ) Floors/Floor112 -8 -16 270 1 1
( 208 464 16 ) ( 304 464 16 ) ( 208 464 32 ) Floors/Floor112 16 0 0 1 1
( 304 504 16 ) ( 304 440 16 ) ( 304 504 32 ) Floors/Floor112 -8 0 180 1 -1
}
// brush 48
{
( 288 472 16 ) ( 288 536 16 ) ( 288 472 32 ) Floors/Floor112 -8 0 180 1 -1
( 208 480 32 ) ( 304 480 32 ) ( 208 480 16 ) Floors/Floor112 16 0 0 1 1
( 208 472 16 ) ( 304 472 16 ) ( 208 536 16 ) Floors/Floor112 -8 -16 270 1 1
( 208 536 32 ) ( 304 536 32 ) ( 208 472 32 ) Floors/Floor112 -8 -16 270 1 1
( 208 496 16 ) ( 304 496 16 ) ( 208 496 32 ) Floors/Floor112 16 0 0 1 1
( 304 536 16 ) ( 304 472 16 ) ( 304 536 32 ) Floors/Floor112 -8 0 180 1 -1
}
// brush 49
{
( 288 504 16 ) ( 288 568 16 ) ( 288 504 32 ) Floors/Floor112 24 0 180 1 -1
( 208 512 32 ) ( 304 512 32 ) ( 208 512 16 ) Floors/Floor112 16 0 0 1 1
( 208 504 16 ) ( 304 504 16 ) ( 208 568 16 ) Floors/Floor112 24 -16 270 1 1
( 208 568 32 ) ( 304 568 32 ) ( 208 504 32 ) Floors/Floor112 24 -16 270 1 1
( 208 528 16 ) ( 304 528 16 ) ( 208 528 32 ) Floors/Floor112 16 0 0 1 1
( 304 568 16 ) ( 304 504 16 ) ( 304 568 32 ) Floors/Floor112 24 0 180 1 -1
}
// brush 50
{
( 288 488 16 ) ( 288 552 16 ) ( 288 488 32 ) special/clip 8 0 180 1 -1
( 208 496 32 ) ( 304 496 32 ) ( 208 496 16 ) special/clip 16 0 0 1 1
( 208 488 16 ) ( 304 488 16 ) ( 208 552 16 ) special/clip 8 -16 270 1 1
( 208 552 32 ) ( 304 552 32 ) ( 208 488 32 ) special/clip 8 -16 270 1 1
( 208 512 16 ) ( 304 512 16 ) ( 208 512 32 ) special/clip 16 0 0 1 1
( 304 552 16 ) ( 304 488 16 ) ( 304 552 32 ) special/clip 8 0 180 1 -1
}
}
// entity 1
{
"classname" "blue_panel_nw"
"classname" "wall_panel_blue_nw"
// brush 0
{
( 240 352 16 ) ( 240 352 17 ) ( 240 351 16 ) Manual/Blue_Panel_Wall_Thin 0 16 0 -0.5 1
@ -362,7 +477,7 @@
}
// entity 2
{
"classname" "blue_panel_nw"
"classname" "wall_panel_blue_nw"
// brush 0
{
( 208 352 16 ) ( 208 352 17 ) ( 208 351 16 ) Manual/Blue_Panel_Wall_Thin 0 16 0 -0.5 1

View file

@ -3,25 +3,26 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://y6d1g0acrfg4"
path="res://.godot/imported/Floor103.png-eb930e3c49c0d304c79ae7184c63863d.ctex"
path.s3tc="res://.godot/imported/Floor103.png-eb930e3c49c0d304c79ae7184c63863d.s3tc.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://textures/Floors/Floor103.png"
dest_files=["res://.godot/imported/Floor103.png-eb930e3c49c0d304c79ae7184c63863d.ctex"]
dest_files=["res://.godot/imported/Floor103.png-eb930e3c49c0d304c79ae7184c63863d.s3tc.ctex"]
[params]
compress/mode=0
compress/mode=2
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/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@ -31,4 +32,4 @@ 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
detect_3d/compress_to=0

View file

@ -0,0 +1,8 @@
[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://sqvd3nmfoiln"]
[ext_resource type="Texture2D" uid="uid://y6d1g0acrfg4" path="res://textures/Floors/Floor103.png" id="1_qx40x"]
[resource]
albedo_texture = ExtResource("1_qx40x")
metallic_specular = 0.0
texture_filter = 2

View file

@ -3,25 +3,26 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://bh3f51hjfefky"
path="res://.godot/imported/Floor107.png-158ac7ab735ceb0a4728b42f161bdbed.ctex"
path.s3tc="res://.godot/imported/Floor107.png-158ac7ab735ceb0a4728b42f161bdbed.s3tc.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://textures/Floors/Floor107.png"
dest_files=["res://.godot/imported/Floor107.png-158ac7ab735ceb0a4728b42f161bdbed.ctex"]
dest_files=["res://.godot/imported/Floor107.png-158ac7ab735ceb0a4728b42f161bdbed.s3tc.ctex"]
[params]
compress/mode=0
compress/mode=2
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/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@ -31,4 +32,4 @@ 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
detect_3d/compress_to=0

View file

@ -0,0 +1,8 @@
[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://dk207qthyvydo"]
[ext_resource type="Texture2D" uid="uid://bh3f51hjfefky" path="res://textures/Floors/Floor107.png" id="1_r0taw"]
[resource]
albedo_texture = ExtResource("1_r0taw")
metallic_specular = 0.0
texture_filter = 2

View file

@ -3,25 +3,26 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://dqicfkutghlp5"
path="res://.godot/imported/Floor112.png-791cd5b649c4397d3ed92ce305bf8a96.ctex"
path.s3tc="res://.godot/imported/Floor112.png-791cd5b649c4397d3ed92ce305bf8a96.s3tc.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://textures/Floors/Floor112.png"
dest_files=["res://.godot/imported/Floor112.png-791cd5b649c4397d3ed92ce305bf8a96.ctex"]
dest_files=["res://.godot/imported/Floor112.png-791cd5b649c4397d3ed92ce305bf8a96.s3tc.ctex"]
[params]
compress/mode=0
compress/mode=2
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/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@ -31,4 +32,4 @@ 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
detect_3d/compress_to=0

View file

@ -0,0 +1,8 @@
[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://bv0ruan4ko0kr"]
[ext_resource type="Texture2D" uid="uid://dqicfkutghlp5" path="res://textures/Floors/Floor112.png" id="1_q70e0"]
[resource]
albedo_texture = ExtResource("1_q70e0")
metallic_specular = 0.0
texture_filter = 2

View file

@ -3,20 +3,19 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://be4mopr5i37ft"
path.s3tc="res://.godot/imported/Floor227.png-12993c3bc83f62c20606126b7a7e070e.s3tc.ctex"
path="res://.godot/imported/Floor227.png-12993c3bc83f62c20606126b7a7e070e.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
"vram_texture": false
}
[deps]
source_file="res://textures/Floors/Floor227.png"
dest_files=["res://.godot/imported/Floor227.png-12993c3bc83f62c20606126b7a7e070e.s3tc.ctex"]
dest_files=["res://.godot/imported/Floor227.png-12993c3bc83f62c20606126b7a7e070e.ctex"]
[params]
compress/mode=2
compress/mode=3
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1

View file

@ -3,26 +3,25 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://0op1cja0p58s"
path.s3tc="res://.godot/imported/Floor260.png-a45c0681e30ad9a5f118331ca5c3bf20.s3tc.ctex"
path="res://.godot/imported/Floor260.png-a45c0681e30ad9a5f118331ca5c3bf20.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
"vram_texture": false
}
[deps]
source_file="res://textures/Floors/Floor260.png"
dest_files=["res://.godot/imported/Floor260.png-a45c0681e30ad9a5f118331ca5c3bf20.s3tc.ctex"]
dest_files=["res://.godot/imported/Floor260.png-a45c0681e30ad9a5f118331ca5c3bf20.ctex"]
[params]
compress/mode=2
compress/mode=3
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""

View file

@ -1,6 +1,7 @@
[gd_scene load_steps=52 format=3 uid="uid://ec4m3geediis"]
[gd_scene load_steps=53 format=3 uid="uid://ec4m3geediis"]
[ext_resource type="Script" uid="uid://cvisn0b641od4" path="res://addons/cyclops_level_builder/nodes/cyclops_block.gd" id="1_18fbr"]
[ext_resource type="Script" uid="uid://ba0tf7ihw4hpp" path="res://Scripts/Misc/CameraController3D.cs" id="1_g4gcm"]
[ext_resource type="Script" uid="uid://djeq3sxhsep3c" path="res://addons/cyclops_level_builder/resources/data_vector_byte.gd" id="2_kler0"]
[ext_resource type="Script" uid="uid://civ3w78ahacnu" path="res://addons/cyclops_level_builder/resources/data_vector_int.gd" id="3_k6bah"]
[ext_resource type="Script" uid="uid://db41w3h28c2la" path="res://addons/cyclops_level_builder/resources/data_vector_float.gd" id="4_01bfr"]
@ -408,11 +409,6 @@ face_vertex_data = {
[node name="IsoMapTest2" type="Node3D"]
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(0.707107, -0.5, 0.5, 0, 0.707107, 0.707107, -0.707107, -0.5, 0.5, 27.2174, 7.93547, 12.3356)
projection = 1
size = 7.537
[node name="block0" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, 0)
script = ExtResource("1_18fbr")
@ -458,3 +454,12 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.84862, 0, -4.8932)
[node name="IsoPlayerFsm" parent="." instance=ExtResource("12_g4gcm")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 21.4753, 2.03037, 5.55344)
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(0.707107, -0.5, 0.5, 0, 0.707107, 0.707107, -0.707107, -0.5, 0.5, 26.5146, 7.935, 10.4923)
projection = 1
size = 7.537
script = ExtResource("1_g4gcm")
MaxAimOffsetDistance = 16.0
CameraOffset = Vector3(8, 12, 8)
TargetPath = NodePath("../IsoPlayerFsm")

View file

@ -22,8 +22,8 @@ _name = "Intro"
[sub_resource type="Resource" id="Resource_cfhv5"]
script = ExtResource("1_ov731")
EggIndex = 0
StartingEquipment = Array[ExtResource("2_bkci5")]([])
RemoveEquipment = Array[ExtResource("2_bkci5")]([])
StartingEquipment = []
RemoveEquipment = []
[sub_resource type="Resource" id="Resource_0k62o"]
script = ExtResource("2_tnajf")
@ -35,8 +35,8 @@ StartData = SubResource("Resource_cfhv5")
[sub_resource type="Resource" id="Resource_tpb7s"]
script = ExtResource("1_ov731")
EggIndex = 0
StartingEquipment = Array[ExtResource("2_bkci5")]([])
RemoveEquipment = Array[ExtResource("2_bkci5")]([])
StartingEquipment = []
RemoveEquipment = []
[sub_resource type="Resource" id="Resource_edoov"]
script = ExtResource("2_tnajf")
@ -48,8 +48,8 @@ StartData = SubResource("Resource_tpb7s")
[sub_resource type="Resource" id="Resource_1sw5g"]
script = ExtResource("1_ov731")
EggIndex = 255
StartingEquipment = Array[ExtResource("2_bkci5")]([])
RemoveEquipment = Array[ExtResource("2_bkci5")]([])
StartingEquipment = []
RemoveEquipment = []
[sub_resource type="Resource" id="Resource_47bot"]
script = ExtResource("2_tnajf")
@ -62,7 +62,7 @@ StartData = SubResource("Resource_1sw5g")
script = ExtResource("1_ov731")
EggIndex = 2
StartingEquipment = Array[ExtResource("2_bkci5")]([ExtResource("3_fydgr"), ExtResource("4_38yta"), ExtResource("5_em757"), ExtResource("6_sdmg8")])
RemoveEquipment = Array[ExtResource("2_bkci5")]([])
RemoveEquipment = []
[sub_resource type="Resource" id="Resource_mgdm6"]
script = ExtResource("2_tnajf")
@ -80,8 +80,8 @@ _name = "Rebel Base"
[sub_resource type="Resource" id="Resource_maxpt"]
script = ExtResource("1_ov731")
EggIndex = 0
StartingEquipment = Array[ExtResource("2_bkci5")]([])
RemoveEquipment = Array[ExtResource("2_bkci5")]([])
StartingEquipment = []
RemoveEquipment = []
[sub_resource type="Resource" id="Resource_pein5"]
script = ExtResource("2_tnajf")
@ -118,7 +118,7 @@ _name = "Default Scene"
script = ExtResource("1_ov731")
EggIndex = 0
StartingEquipment = Array[ExtResource("2_bkci5")]([ExtResource("7_b3oo5")])
RemoveEquipment = Array[ExtResource("2_bkci5")]([])
RemoveEquipment = []
[sub_resource type="Resource" id="Resource_6ijnv"]
script = ExtResource("2_tnajf")
@ -137,8 +137,8 @@ metadata/_custom_type_script = "uid://dnthdjrx78u6m"
[sub_resource type="Resource" id="Resource_7sue8"]
script = ExtResource("1_ov731")
EggIndex = 255
StartingEquipment = Array[ExtResource("2_bkci5")]([])
RemoveEquipment = Array[ExtResource("2_bkci5")]([])
StartingEquipment = []
RemoveEquipment = []
metadata/_custom_type_script = "uid://mja0rk7n2kln"
[sub_resource type="Resource" id="Resource_ognca"]
@ -152,8 +152,8 @@ metadata/_custom_type_script = "uid://dnthdjrx78u6m"
[sub_resource type="Resource" id="Resource_olpjo"]
script = ExtResource("1_ov731")
EggIndex = 0
StartingEquipment = Array[ExtResource("2_bkci5")]([])
RemoveEquipment = Array[ExtResource("2_bkci5")]([])
StartingEquipment = []
RemoveEquipment = []
metadata/_custom_type_script = "uid://mja0rk7n2kln"
[sub_resource type="Resource" id="Resource_nbnej"]

View file

@ -1,17 +1,32 @@
[gd_scene load_steps=4 format=3 uid="uid://rimplblbptcd"]
[gd_scene load_steps=10 format=3 uid="uid://rimplblbptcd"]
[ext_resource type="Script" uid="uid://88smibkin17p" path="res://Scripts/Components/FSM/3DPlayer/IsoPlayerFSMProxy.cs" id="1_cc7e7"]
[ext_resource type="Texture2D" uid="uid://ddwhrlrgj6i00" path="res://Sprites/Actors/Cirno.png" id="1_vex34"]
[ext_resource type="Script" uid="uid://cn3o414nvdd58" path="res://Scripts/Components/FSM/3DPlayer/IsoPlayerStateMachine.cs" id="1_vsywg"]
[ext_resource type="Script" uid="uid://y35vqx1ifo52" path="res://Scripts/Components/FSM/3DPlayer/Init.cs" id="2_3oyrx"]
[ext_resource type="Script" uid="uid://d3ydlcdm8m3tg" path="res://Scripts/Components/FSM/3DPlayer/Active.cs" id="3_cc7e7"]
[ext_resource type="Script" uid="uid://c5brx3ail1tlh" path="res://Scripts/Components/FSM/3DPlayer/IsoMovementModule.cs" id="5_fg04g"]
[ext_resource type="Script" uid="uid://eop2ue3otxcs" path="res://Scripts/Components/FSM/3DPlayer/IsoPlayerStorageModule.cs" id="6_habpy"]
[ext_resource type="Script" uid="uid://dq338w2lw5phl" path="res://Scripts/Components/Actors/KeyboardInputProvider.cs" id="7_4cdxq"]
[sub_resource type="SphereShape3D" id="SphereShape3D_vex34"]
radius = 0.260804
[node name="IsoPlayerFsm" type="CharacterBody3D"]
[node name="IsoPlayerFsm" type="CharacterBody3D" node_paths=PackedStringArray("PlayerFSM")]
collision_layer = 2
script = ExtResource("1_cc7e7")
PlayerFSM = NodePath("StateMachine")
[node name="StateMachine" type="Node" parent="."]
script = ExtResource("1_vsywg")
[node name="Init" type="Node" parent="StateMachine"]
script = ExtResource("2_3oyrx")
[node name="Active" type="Node" parent="StateMachine" node_paths=PackedStringArray("_moduleNodes")]
script = ExtResource("3_cc7e7")
_moduleNodes = [NodePath("../../InputProvider"), NodePath("../../MovementModule")]
[node name="Sprite" type="Sprite3D" parent="."]
transform = Transform3D(0.707107, -0.5, 0.5, 0, 0.707107, 0.707107, -0.707107, -0.5, 0.5, 0, 0, 0)
pixel_size = 0.05
@ -22,3 +37,21 @@ vframes = 4
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
shape = SubResource("SphereShape3D_vex34")
[node name="MovementModule" type="Node" parent="." node_paths=PackedStringArray("PlayerStorage", "_inputProvider")]
script = ExtResource("5_fg04g")
PlayerStorage = NodePath("../Storage")
_inputProvider = NodePath("../InputProvider")
Speed = 6
StrafeSpeed = 4
Acceleration = 150.0
Deceleration = 25.0
Gravity = -50.0
FallSpeed = 100.0
[node name="Storage" type="Node" parent="." node_paths=PackedStringArray("Root")]
script = ExtResource("6_habpy")
Root = NodePath("..")
[node name="InputProvider" type="Node" parent="."]
script = ExtResource("7_4cdxq")

View file

@ -334,7 +334,7 @@ collision_mask = 97
platform_floor_layers = 4294967294
platform_wall_layers = 97
script = ExtResource("1_g3wua")
PlayerFSM = NodePath("")
PlayerFSM = NodePath("StateMachine")
InteractionController = NodePath("InteractionController")
metadata/_edit_group_ = true

View file

@ -16,24 +16,29 @@ public partial class CreateEmitterPattern : AttackPattern
[Export] public double LifeTime { get; set; } = 10d;
public override IPatternMachine MakeMachine(Node2D parent)
public override IPatternMachine MakeMachine(Node parent)
{
return new EmitterPatternMachine(this, parent);
}
public class EmitterPatternMachine(CreateEmitterPattern pattern, Node2D parent) : IPatternMachine
public class EmitterPatternMachine(CreateEmitterPattern pattern, Node parent) : IPatternMachine
{
private bool _active = false;
public Node2D Parent => parent;
public Node Parent => parent;
public AutonomousBulletEmitter Emitter { get; private set; }
public void Start()
{
if (parent is not Node2D parent2d)
{
return;
}
Emitter = pattern.CreateAsChild
? parent.CreateChild<AutonomousBulletEmitter>(pattern.Prefab,
parent.GlobalPosition + pattern.SpawnOffset)
: parent.CreateSibling<AutonomousBulletEmitter>(pattern.Prefab,
parent.GlobalPosition + pattern.SpawnOffset);
? parent2d.CreateChild<AutonomousBulletEmitter>(pattern.Prefab,
parent2d.GlobalPosition + pattern.SpawnOffset)
: parent2d.CreateSibling<AutonomousBulletEmitter>(pattern.Prefab,
parent2d.GlobalPosition + pattern.SpawnOffset);
Emitter.Script = pattern.Script;
Emitter.EmitOnStart = true;
Emitter.LifeTime = pattern.LifeTime;

View file

@ -14,14 +14,14 @@ public partial class MovementPattern : AttackPattern
[Export] public Tween.EaseType easeType = Tween.EaseType.InOut;
[Export] public AttackPattern shootingPattern;
public override IPatternMachine MakeMachine(Node2D parent)
public override IPatternMachine MakeMachine(Node parent)
{
return new MovementPatternMachine(this, parent);
}
public class MovementPatternMachine(MovementPattern pattern, Node2D parent) : IPatternMachine
public class MovementPatternMachine(MovementPattern pattern, Node parent) : IPatternMachine
{
public Node2D Parent => parent;
public Node Parent => parent;
public MovementPattern Pattern { get; } = pattern;
private IPatternMachine _machine;
@ -39,10 +39,11 @@ public partial class MovementPattern : AttackPattern
Boss = boss;
tween = parent.CreateTween();
isComplete = false;
Vector2 targetPosition = (Boss?.HomePosition ?? boss.ParentObject.GlobalPosition) + Pattern.relativeTargetPosition;
Vector2 targetPosition = (Boss?.HomePosition ?? parent.GlobalPosition) + Pattern.relativeTargetPosition;
tween.TweenProperty(Parent, "position", targetPosition, Pattern.moveDuration)
tween.TweenProperty(boss.ParentObject, "position", targetPosition, Pattern.moveDuration)
.SetTrans(Pattern.transitionType)
.SetEase(Pattern.easeType)
.Finished += () => isComplete = true;

View file

@ -16,14 +16,14 @@ public partial class NodeMovementPattern : AttackPattern
// [Export] private Tween.TransitionType transitionType = Tween.TransitionType.Linear;
[Export] public GTweens.Easings.Easing EaseType { get; private set; } = Easing.Linear;
public override IPatternMachine MakeMachine(Node2D parent)
public override IPatternMachine MakeMachine(Node parent)
{
return new NodeMovementPatternMachine(this, parent);
}
public class NodeMovementPatternMachine(NodeMovementPattern pattern, Node2D parent) : IPatternMachine
public class NodeMovementPatternMachine(NodeMovementPattern pattern, Node parent) : IPatternMachine
{
public Node2D Parent => parent;
public Node Parent => parent;
private GTween _tween;
private bool isComplete = false;
@ -37,11 +37,12 @@ public partial class NodeMovementPattern : AttackPattern
return;
}
_tween?.Complete();
isComplete = false;
Vector2 targetPosition = (scriptHost?.HomePosition ?? Parent.GlobalPosition) + pattern.relativeTargetPosition;
Vector2 targetPosition = (scriptHost?.HomePosition ?? scriptHost.ParentObject.GlobalPosition) + pattern.relativeTargetPosition;
_tween = GTweenSequenceBuilder.New()
.Append(scriptHost.ParentObject.TweenGlobalPosition(targetPosition, pattern.moveDuration))

View file

@ -112,14 +112,15 @@ public partial class SpiralPattern : AttackPattern
// };
}
public override IPatternMachine MakeMachine(Node2D parent)
public override IPatternMachine MakeMachine(Node parent)
{
return new SpiralPatternMachine(this, parent);
}
public class SpiralPatternMachine(SpiralPattern pattern, Node2D parent) : IPatternMachine
public class SpiralPatternMachine(SpiralPattern pattern, Node parent) : IPatternMachine
{
public Node2D Parent => parent;
public Node Parent => parent;
public IScriptHost ScriptHost { get; private set; }
private double timer;
private double burstTimer;
//private double _burstRateTimer;
@ -131,6 +132,8 @@ public partial class SpiralPattern : AttackPattern
public void Start()
{
ScriptHost = Parent as IScriptHost;
timer = 0;
_burstBullets = pattern.ShotsPerBurst;
burstTimer = pattern.burstInterval; // start immediately
@ -231,21 +234,21 @@ public partial class SpiralPattern : AttackPattern
{
if (pattern._predictPlayer && GameManager.Instance.PlayerVelocity.HasValue)
{
var predictedDirection = MathFunctions.PredictInterceptPosition(Parent.GlobalPosition,
var predictedDirection = MathFunctions.PredictInterceptPosition(ScriptHost.ParentObject.GlobalPosition,
GameManager.Instance.PlayerPosition.Value, GameManager.Instance.PlayerVelocity.Value,
pattern.BulletResource.BulletSpeed);
if (predictedDirection.HasValue)
{
direction = (predictedDirection.Value - Parent.GlobalPosition).Normalized();
direction = (predictedDirection.Value - ScriptHost.ParentObject.GlobalPosition).Normalized();
}
}
else
{
direction = (GameManager.Instance.PlayerPosition.Value - Parent.GlobalPosition).Normalized();
direction = (GameManager.Instance.PlayerPosition.Value - ScriptHost.ParentObject.GlobalPosition).Normalized();
}
}
var bullet = pattern.MakeBullet(Parent.GlobalPosition + pattern.EmitterOffset, pattern.bulletCount,
var bullet = pattern.MakeBullet(ScriptHost.ParentObject.GlobalPosition + pattern.EmitterOffset, pattern.bulletCount,
pattern.spread, angleOffset);
bullet.Direction = direction;

View file

@ -43,11 +43,17 @@ public partial class KeyboardInputProvider : InputProvider
public override void _Ready()
{
CallDeferred(MethodName.DelayedRegisterGameManager);
}
private void DelayedRegisterGameManager()
{
if (GameManager.Instance is null)
{
GD.Print("No GameManager found for keyboard inputprovider");
return;
}
GameManager.Instance.GameStateChange += InstanceOnGameStateChange;
_enabled = true;
}
@ -107,9 +113,11 @@ public partial class KeyboardInputProvider : InputProvider
//if (camera == null) return Vector2.Zero; // Ensure there's a valid camera
//Vector2 mouseScreenPos = GetViewport().get_local_mouse_position();
Vector2 mouseWorldPos = this.GetGlobalMousePosition();
if (GameManager.Instance is null) return Vector2.Zero;
Vector2 mouseWorldPos = DisplayServer.MouseGetPosition();// GameManager.Instance.GetGlobalMousePosition();
return mouseWorldPos - this.GlobalPosition; // Get direction vector
return mouseWorldPos - GameManager.Instance.PlayerPosition.Value; // Get direction vector
}
public override bool GetActionJustPressed(string action)

View file

@ -81,52 +81,7 @@ public partial class Active : BaseState<PlayerState, CharacterBody3D>
{
base.ProcessState(delta);
_movementDirection = _inputProvider.GetMovementInput().Normalized();
_isStrafing = _inputProvider.GetStrafePressed();
// Toggle visibility of the hitbox sprite based on strafing
_hitboxSpriteProvider.SetVisibility(_isStrafing);
var rightStickInput = _inputProvider.GetAimInput().Normalized();
// Update Facing Direction
// if (!_isStrafing)
// {
if (rightStickInput.Length() > 0.1f) // If the right stick is moved
{
FacingDirection = rightStickInput;
}
else if (_movementDirection != Vector2.Zero) // Fall back to movement direction
{
FacingDirection = _movementDirection;
}
// }
_animationProvider.SetAnimationSpeed(MainObject.Velocity);
_animationProvider.SetAnimation(FacingDirection);
HandleWeaponSwitch();
_weaponProvider.Update(delta);
//_crosshairProvider.UpdatePosition(FacingDirection);
HandleShoot();
HandleInteraction();
// FindInteractable();
// _crosshair.Position = CalculateCrosshairPosition();
if (_inputProvider.GetInventoryJustPressed())
{
GameManager.Instance.ChangeState(GameState.Inventory);
}
if (_inputProvider.GetPauseJustPressed())
{
//CallDeferred(MethodName.PauseDeferred);
PauseDeferred();
}
}
private void PauseDeferred()
@ -134,32 +89,5 @@ public partial class Active : BaseState<PlayerState, CharacterBody3D>
GameManager.Instance.Pause();
}
// private void HandleShoot()
// {
// if (_inputProvider.GetReloadJustPressed())
// {
// _weaponProvider.Reload();
// return;
// }
//
// if (!_inputProvider.GetShootPressed()) return;
// _weaponProvider.Shoot(this.FacingDirection);
// }
//
// private void HandleInteraction()
// {
// _activationProvider.HandleInteraction();
// }
//
// private void HandleWeaponSwitch()
// {
// if (_inputProvider.GetWeaponNextJustPressed())
// {
// _weaponProvider.NextWeapon();
// }
// else if (_inputProvider.GetWeaponPreviousJustPressed())
// {
// _weaponProvider.PreviousWeapon();
// }
// }
}

View file

@ -32,6 +32,6 @@ public partial class Init : BaseState<PlayerState, CharacterBody3D>
private async Task AutoSwitchToStart()
{
await Task.Delay(500);
//StateMachine.SetState(PlayerState.Active);
StateMachine.SetState(PlayerState.Active);
}
}

View file

@ -12,6 +12,8 @@ public partial class IsoMovementModule : ModuleBase<PlayerState, CharacterBody3D
[Export] public int StrafeSpeed { get; set; } = 35;
[Export] public float Acceleration = 8f;
[Export] public float Deceleration = 8f;
[Export] public float Gravity = -9.8f;
[Export] public float FallSpeed = 20f;
private bool _isStrafing;
private float _accelerationPerSecond;
@ -41,16 +43,38 @@ public partial class IsoMovementModule : ModuleBase<PlayerState, CharacterBody3D
public override void Process(double delta)
{
var movementInput = _inputProvider.GetMovementInput();
_isStrafing = _inputProvider.GetStrafePressed();
var rightStickInput = _inputProvider.GetAimInput().Normalized();
// Update Facing Direction
// if (!_isStrafing)
// {
if (rightStickInput.Length() > 0.1f) // If the right stick is moved
{
PlayerStorage.FacingDirection = rightStickInput;
}
else if (movementInput != Vector2.Zero) // Fall back to movement direction
{
PlayerStorage.FacingDirection = movementInput;
}
// }
var rotatedMovementDirection = movementInput.Rotated(Mathf.DegToRad(-45f));
PlayerStorage.MovementDirection = new Vector3(rotatedMovementDirection.X, 0, rotatedMovementDirection.Y);
}
public override void PhysicsProcess(double delta)
{
var frameVelocity = MainObject.Velocity;
if (_isStrafing)
{
// Instant movement at strafe speed
MainObject.Velocity = PlayerStorage.MovementDirection * StrafeSpeed;
frameVelocity = PlayerStorage.MovementDirection * StrafeSpeed;
}
else
{
@ -58,16 +82,22 @@ public partial class IsoMovementModule : ModuleBase<PlayerState, CharacterBody3D
if (PlayerStorage.MovementDirection != Vector3.Zero)
{
MainObject.Velocity = MainObject.Velocity.MoveToward(targetVelocity, Acceleration * (float)delta);
frameVelocity = frameVelocity.MoveToward(targetVelocity, Acceleration * (float)delta);
}
else
{
MainObject.Velocity = MainObject.Velocity.MoveToward(Vector3.Zero, Deceleration * (float)delta);
frameVelocity = frameVelocity.MoveToward(Vector3.Zero, Deceleration * (float)delta);
}
}
//MainObject.Velocity += _movementDirection * MovementSpeed;
var velocityY = Mathf.Clamp(frameVelocity.Y + Gravity * (float)delta, -FallSpeed, FallSpeed);
frameVelocity.Y = velocityY;
MainObject.Velocity = frameVelocity;
MainObject.MoveAndSlide();
}
}

View file

@ -5,7 +5,7 @@ using Godot.Collections;
namespace Cirno.Scripts.Components.FSM;
public abstract partial class BaseState<TKey, TType> : Node2D, IState<TKey, TType>
public abstract partial class BaseState<TKey, TType> : Node, IState<TKey, TType>
where TKey : notnull
where TType : Node
{

View file

@ -84,7 +84,7 @@ public abstract partial class ElevatorMovementState : BaseState<ElevatorState, E
private async Task MovePlayerToCenter()
{
var tween = GTweenSequenceBuilder.New()
.Append(PlayerBody.TweenPosition(this.Position, 0.2f))
.Append(PlayerBody.TweenPosition(MainObject.Position, 0.2f))
.Build();
await tween.PlayAsync(CancellationToken.None);

View file

@ -78,7 +78,7 @@ public partial class Alert : EnemyStateBase
}
// if player is outside disengage range, change to idle (later on, search)
if (this.GlobalPosition.DistanceTo(GameManager.Instance.PlayerPosition.Value) >=
if (MainObject.GlobalPosition.DistanceTo(GameManager.Instance.PlayerPosition.Value) >=
StorageModule.Root.EnemyResource.PlayerDisengageRange)
{
StateMachine.SetState(EnemyState.Idle);

View file

@ -72,7 +72,7 @@ public partial class TurretAlert : EnemyStateBase
}
// if player is outside disengage range, change to idle (later on, search)
if (this.GlobalPosition.DistanceTo(GameManager.Instance.PlayerPosition.Value) >=
if (MainObject.GlobalPosition.DistanceTo(GameManager.Instance.PlayerPosition.Value) >=
StorageModule.Root.EnemyResource.PlayerDisengageRange)
{

View file

@ -0,0 +1,121 @@
using Godot;
namespace Cirno.Scripts.Misc;
public partial class CameraController3D : Camera3D
{
[Export] public bool EnableSmoothing = true;
[Export] public bool FollowTargeting = true;
[Export] public float SmoothTime = 0.2f;
[Export] public float MaxAimOffsetDistance = 2.0f;
[Export] public float AimLerpSpeed = 8.0f;
[Export] public float AimDeadzone = 0.2f;
[Export] public Vector3 CameraOffset = new Vector3(0, 12, -12); // Relative to target
[Export] public StringName AimUpName = "aim_up";
[Export] public StringName AimDownName = "aim_down";
[Export] public StringName AimLeftName = "aim_left";
[Export] public StringName AimRightName = "aim_right";
[Export] public NodePath TargetPath;
private Node3D _target;
private Vector3 _currentPosition = Vector3.Zero;
private Vector3 _currentAimOffset = Vector3.Zero;
public override void _Ready()
{
_target = GetNode<Node3D>(TargetPath);
if (_target == null)
{
GD.PushError("Camera target not found.");
return;
}
_currentPosition = GlobalPosition;
// Set fixed isometric angle once: -45° X tilt, 45° Y pan
RotationDegrees = new Vector3(-45f, 45f, 0f);
Projection = ProjectionType.Orthogonal;
}
public override void _Process(double delta)
{
if (_target == null) return;
float dt = (float)delta;
Vector3 targetPos = _target.GlobalTransform.Origin;
// Aim offset
if (FollowTargeting)
{
Vector3 desiredOffset = GetAimOffsetWorldSpace();
_currentAimOffset = _currentAimOffset.Lerp(desiredOffset, AimLerpSpeed * dt);
if (_currentAimOffset.Length() > MaxAimOffsetDistance)
_currentAimOffset = _currentAimOffset.Normalized() * MaxAimOffsetDistance;
}
else
{
_currentAimOffset = Vector3.Zero;
}
// Final target position
Vector3 targetWithOffset = targetPos + _currentAimOffset;
Vector3 desiredCameraPos = targetWithOffset + CameraOffset;
if (EnableSmoothing)
{
float smoothingFactor = 1f - Mathf.Exp(-dt / SmoothTime);
_currentPosition = _currentPosition.Lerp(desiredCameraPos, smoothingFactor);
}
else
{
_currentPosition = desiredCameraPos;
}
GlobalPosition = _currentPosition;
// No LookAt or dynamic rotation — angle is fixed
}
private Vector3 GetAimOffsetWorldSpace()
{
Vector2 stickDir = new Vector2(
Input.GetActionStrength(AimRightName) - Input.GetActionStrength(AimLeftName),
Input.GetActionStrength(AimDownName) - Input.GetActionStrength(AimUpName)
);
float stickLen = stickDir.Length();
if (stickLen > AimDeadzone)
{
float scaled = (stickLen - AimDeadzone) / (1f - AimDeadzone);
Vector2 aimDir2D = stickDir.Normalized() * Mathf.Clamp(scaled, 0f, 1f);
return new Vector3(aimDir2D.X, 0, aimDir2D.Y);
}
// Mouse fallback
Vector2 mousePos = GetViewport().GetMousePosition();
Vector3 rayOrigin = ProjectRayOrigin(mousePos);
Vector3 rayDir = ProjectRayNormal(mousePos) * 1000f;
var plane = new Plane(Vector3.Up, 0);
var hit = plane.IntersectsRay(rayOrigin, rayDir);
if (hit is Vector3 hitPoint)
{
Vector3 offset = hitPoint - _target.GlobalTransform.Origin;
offset.Y = 0;
float dist = offset.Length();
if (dist > 0.01f)
{
float scaled = Mathf.Clamp((dist - AimDeadzone) / (10f - AimDeadzone), 0f, 1f);
return offset.Normalized() * scaled;
}
}
return Vector3.Zero;
}
}

View file

@ -0,0 +1 @@
uid://ba0tf7ihw4hpp

View file

@ -36,10 +36,15 @@ public partial class FSMMovementPattern : AttackPattern
tween = Parent.CreateTween();
isComplete = false;
Vector2 targetPosition = (Boss?.HomePosition ?? Parent.GlobalPosition) + pattern.relativeTargetPosition;
if (parent is not Node2D parent2d)
{
return;
}
Vector2 targetPosition = (Boss?.HomePosition ?? parent2d.GlobalPosition) + pattern.relativeTargetPosition;
boss.ChangeSpriteDirection(-(Parent.GlobalPosition - targetPosition));
tween.TweenProperty(Parent, "global_position", targetPosition, pattern.moveDuration)
boss.ChangeSpriteDirection(-(parent2d.GlobalPosition - targetPosition));
tween.TweenProperty(parent2d, "global_position", targetPosition, pattern.moveDuration)
.SetTrans(pattern.transitionType)
.SetEase(pattern.easeType)
.Finished += () =>

View file

@ -35,11 +35,16 @@ public partial class SimpleMovementPattern : AttackPattern
Boss = boss;
tween = Parent.CreateTween();
isComplete = false;
if (parent is not Node2D parent2d)
{
return;
}
Vector2 targetPosition = (Boss?.HomePosition ?? Parent.GlobalPosition) + pattern.relativeTargetPosition;
Vector2 targetPosition = (Boss?.HomePosition ?? parent2d.GlobalPosition) + pattern.relativeTargetPosition;
boss.ChangeSpriteDirection(-(Parent.GlobalPosition - targetPosition));
tween.TweenProperty(Parent, "global_position", targetPosition, pattern.moveDuration)
boss.ChangeSpriteDirection(-(parent2d.GlobalPosition - targetPosition));
tween.TweenProperty(parent2d, "global_position", targetPosition, pattern.moveDuration)
.SetTrans(pattern.transitionType)
.SetEase(pattern.easeType)
.Finished += () =>

View file

@ -3,20 +3,19 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://ddwhrlrgj6i00"
path.s3tc="res://.godot/imported/Cirno.png-aacabeda82e04505f27522043f5f6a75.s3tc.ctex"
path="res://.godot/imported/Cirno.png-aacabeda82e04505f27522043f5f6a75.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
"vram_texture": false
}
[deps]
source_file="res://Sprites/Actors/Cirno.png"
dest_files=["res://.godot/imported/Cirno.png-aacabeda82e04505f27522043f5f6a75.s3tc.ctex"]
dest_files=["res://.godot/imported/Cirno.png-aacabeda82e04505f27522043f5f6a75.ctex"]
[params]
compress/mode=2
compress/mode=3
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1

BIN
textures/Manual/Black.png (Stored with Git LFS) Normal file

Binary file not shown.

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://di3gxywisocfe"
path="res://.godot/imported/Black.png-ea3a19596de3e62c62511967595e26d5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://textures/Manual/Black.png"
dest_files=["res://.godot/imported/Black.png-ea3a19596de3e62c62511967595e26d5.ctex"]
[params]
compress/mode=3
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=0

View file

@ -0,0 +1,8 @@
[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://d1l36akdfa0yf"]
[ext_resource type="Texture2D" uid="uid://di3gxywisocfe" path="res://textures/Manual/Black.png" id="1_uhhlx"]
[resource]
albedo_texture = ExtResource("1_uhhlx")
metallic_specular = 0.0
texture_filter = 2

View file

@ -1,8 +1,11 @@
[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://dnegblycwcpc8"]
[gd_resource type="StandardMaterial3D" load_steps=3 format=3 uid="uid://dnegblycwcpc8"]
[ext_resource type="Texture2D" uid="uid://benrsgds02nym" path="res://textures/Manual/Blue_Panel_Wall.png" id="1_bnsbx"]
[ext_resource type="Texture2D" uid="uid://bi0kqow54reu6" path="res://textures/Manual/Blue_Panel_Wall_height.png" id="2_qk23j"]
[resource]
albedo_texture = ExtResource("1_bnsbx")
metallic_specular = 0.0
heightmap_enabled = true
heightmap_texture = ExtResource("2_qk23j")
texture_filter = 2

BIN
textures/Manual/Blue_Panel_Wall_height.png (Stored with Git LFS) Normal file

Binary file not shown.

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bi0kqow54reu6"
path="res://.godot/imported/Blue_Panel_Wall_height.png-3426cf79476a6e2cf15898dd96437f9b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://textures/Manual/Blue_Panel_Wall_height.png"
dest_files=["res://.godot/imported/Blue_Panel_Wall_height.png-3426cf79476a6e2cf15898dd96437f9b.ctex"]
[params]
compress/mode=3
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=0

BIN
textures/special/clip.png (Stored with Git LFS) Normal file

Binary file not shown.

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d0j44atq076b5"
path="res://.godot/imported/clip.png-b88af128d9765ee842c60c6e4c027bc0.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://textures/special/clip.png"
dest_files=["res://.godot/imported/clip.png-b88af128d9765ee842c60c6e4c027bc0.ctex"]
[params]
compress/mode=3
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=0

BIN
textures/special/skip.png (Stored with Git LFS) Normal file

Binary file not shown.

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://p8xebjdv35f0"
path="res://.godot/imported/skip.png-2026d0f841ccf5af70e5ac1bf277c3e0.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://textures/special/skip.png"
dest_files=["res://.godot/imported/skip.png-2026d0f841ccf5af70e5ac1bf277c3e0.ctex"]
[params]
compress/mode=3
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=0