├── .gitignore ├── Assets ├── _defaultMat.material ├── dark.material ├── gun.glb ├── gun.glb.import ├── gun.model ├── metalDark.material └── prototype │ ├── Cube.material │ ├── Cube_2M.dae │ ├── Cube_2M.dae.import │ ├── Cube_2M.tscn │ ├── Cube_2M_Texture.png │ ├── Cube_2M_Texture.png.import │ ├── crosshair.png │ └── crosshair.png.import ├── Enemy ├── Enemy.gd └── Enemy.tscn ├── Interactable ├── Interactable.gd └── InteractableLightSwitch.gd ├── LICENSE ├── Player ├── GunCamera.gd ├── Interaction.gd ├── Player.gd ├── Player.tscn ├── Shotgun.gd ├── Weapon.gd └── Weapons │ └── gun.tscn ├── Scenes └── World.tscn ├── default_env.tres ├── icon.png ├── icon.png.import └── project.godot /.gitignore: -------------------------------------------------------------------------------- 1 | .import/ 2 | .mono/ 3 | export_presets.cfg 4 | -------------------------------------------------------------------------------- /Assets/_defaultMat.material: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codewithtom/godot-fps/5f31855858023ea19bf33b14af037b64e91876f7/Assets/_defaultMat.material -------------------------------------------------------------------------------- /Assets/dark.material: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codewithtom/godot-fps/5f31855858023ea19bf33b14af037b64e91876f7/Assets/dark.material -------------------------------------------------------------------------------- /Assets/gun.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codewithtom/godot-fps/5f31855858023ea19bf33b14af037b64e91876f7/Assets/gun.glb -------------------------------------------------------------------------------- /Assets/gun.glb.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="scene" 4 | type="PackedScene" 5 | path="res://.import/gun.glb-8458d682027182449fbe4241aca28968.scn" 6 | 7 | [deps] 8 | 9 | source_file="res://Assets/gun.glb" 10 | dest_files=[ "res://.import/gun.glb-8458d682027182449fbe4241aca28968.scn" ] 11 | 12 | [params] 13 | 14 | nodes/root_type="Spatial" 15 | nodes/root_name="Scene Root" 16 | nodes/root_scale=1.0 17 | nodes/custom_script="" 18 | nodes/storage=0 19 | materials/location=1 20 | materials/storage=1 21 | materials/keep_on_reimport=true 22 | meshes/compress=true 23 | meshes/ensure_tangents=true 24 | meshes/storage=0 25 | meshes/light_baking=0 26 | meshes/lightmap_texel_size=0.1 27 | skins/use_named_skins=true 28 | external_files/store_in_subdir=false 29 | animation/import=true 30 | animation/fps=15 31 | animation/filter_script="" 32 | animation/storage=false 33 | animation/keep_custom_tracks=false 34 | animation/optimizer/enabled=true 35 | animation/optimizer/max_linear_error=0.05 36 | animation/optimizer/max_angular_error=0.01 37 | animation/optimizer/max_angle=22 38 | animation/optimizer/remove_unused_tracks=true 39 | animation/clips/amount=0 40 | animation/clip_1/name="" 41 | animation/clip_1/start_frame=0 42 | animation/clip_1/end_frame=0 43 | animation/clip_1/loops=false 44 | animation/clip_2/name="" 45 | animation/clip_2/start_frame=0 46 | animation/clip_2/end_frame=0 47 | animation/clip_2/loops=false 48 | animation/clip_3/name="" 49 | animation/clip_3/start_frame=0 50 | animation/clip_3/end_frame=0 51 | animation/clip_3/loops=false 52 | animation/clip_4/name="" 53 | animation/clip_4/start_frame=0 54 | animation/clip_4/end_frame=0 55 | animation/clip_4/loops=false 56 | animation/clip_5/name="" 57 | animation/clip_5/start_frame=0 58 | animation/clip_5/end_frame=0 59 | animation/clip_5/loops=false 60 | animation/clip_6/name="" 61 | animation/clip_6/start_frame=0 62 | animation/clip_6/end_frame=0 63 | animation/clip_6/loops=false 64 | animation/clip_7/name="" 65 | animation/clip_7/start_frame=0 66 | animation/clip_7/end_frame=0 67 | animation/clip_7/loops=false 68 | animation/clip_8/name="" 69 | animation/clip_8/start_frame=0 70 | animation/clip_8/end_frame=0 71 | animation/clip_8/loops=false 72 | animation/clip_9/name="" 73 | animation/clip_9/start_frame=0 74 | animation/clip_9/end_frame=0 75 | animation/clip_9/loops=false 76 | animation/clip_10/name="" 77 | animation/clip_10/start_frame=0 78 | animation/clip_10/end_frame=0 79 | animation/clip_10/loops=false 80 | animation/clip_11/name="" 81 | animation/clip_11/start_frame=0 82 | animation/clip_11/end_frame=0 83 | animation/clip_11/loops=false 84 | animation/clip_12/name="" 85 | animation/clip_12/start_frame=0 86 | animation/clip_12/end_frame=0 87 | animation/clip_12/loops=false 88 | animation/clip_13/name="" 89 | animation/clip_13/start_frame=0 90 | animation/clip_13/end_frame=0 91 | animation/clip_13/loops=false 92 | animation/clip_14/name="" 93 | animation/clip_14/start_frame=0 94 | animation/clip_14/end_frame=0 95 | animation/clip_14/loops=false 96 | animation/clip_15/name="" 97 | animation/clip_15/start_frame=0 98 | animation/clip_15/end_frame=0 99 | animation/clip_15/loops=false 100 | animation/clip_16/name="" 101 | animation/clip_16/start_frame=0 102 | animation/clip_16/end_frame=0 103 | animation/clip_16/loops=false 104 | animation/clip_17/name="" 105 | animation/clip_17/start_frame=0 106 | animation/clip_17/end_frame=0 107 | animation/clip_17/loops=false 108 | animation/clip_18/name="" 109 | animation/clip_18/start_frame=0 110 | animation/clip_18/end_frame=0 111 | animation/clip_18/loops=false 112 | animation/clip_19/name="" 113 | animation/clip_19/start_frame=0 114 | animation/clip_19/end_frame=0 115 | animation/clip_19/loops=false 116 | animation/clip_20/name="" 117 | animation/clip_20/start_frame=0 118 | animation/clip_20/end_frame=0 119 | animation/clip_20/loops=false 120 | animation/clip_21/name="" 121 | animation/clip_21/start_frame=0 122 | animation/clip_21/end_frame=0 123 | animation/clip_21/loops=false 124 | animation/clip_22/name="" 125 | animation/clip_22/start_frame=0 126 | animation/clip_22/end_frame=0 127 | animation/clip_22/loops=false 128 | animation/clip_23/name="" 129 | animation/clip_23/start_frame=0 130 | animation/clip_23/end_frame=0 131 | animation/clip_23/loops=false 132 | animation/clip_24/name="" 133 | animation/clip_24/start_frame=0 134 | animation/clip_24/end_frame=0 135 | animation/clip_24/loops=false 136 | animation/clip_25/name="" 137 | animation/clip_25/start_frame=0 138 | animation/clip_25/end_frame=0 139 | animation/clip_25/loops=false 140 | animation/clip_26/name="" 141 | animation/clip_26/start_frame=0 142 | animation/clip_26/end_frame=0 143 | animation/clip_26/loops=false 144 | animation/clip_27/name="" 145 | animation/clip_27/start_frame=0 146 | animation/clip_27/end_frame=0 147 | animation/clip_27/loops=false 148 | animation/clip_28/name="" 149 | animation/clip_28/start_frame=0 150 | animation/clip_28/end_frame=0 151 | animation/clip_28/loops=false 152 | animation/clip_29/name="" 153 | animation/clip_29/start_frame=0 154 | animation/clip_29/end_frame=0 155 | animation/clip_29/loops=false 156 | animation/clip_30/name="" 157 | animation/clip_30/start_frame=0 158 | animation/clip_30/end_frame=0 159 | animation/clip_30/loops=false 160 | animation/clip_31/name="" 161 | animation/clip_31/start_frame=0 162 | animation/clip_31/end_frame=0 163 | animation/clip_31/loops=false 164 | animation/clip_32/name="" 165 | animation/clip_32/start_frame=0 166 | animation/clip_32/end_frame=0 167 | animation/clip_32/loops=false 168 | animation/clip_33/name="" 169 | animation/clip_33/start_frame=0 170 | animation/clip_33/end_frame=0 171 | animation/clip_33/loops=false 172 | animation/clip_34/name="" 173 | animation/clip_34/start_frame=0 174 | animation/clip_34/end_frame=0 175 | animation/clip_34/loops=false 176 | animation/clip_35/name="" 177 | animation/clip_35/start_frame=0 178 | animation/clip_35/end_frame=0 179 | animation/clip_35/loops=false 180 | animation/clip_36/name="" 181 | animation/clip_36/start_frame=0 182 | animation/clip_36/end_frame=0 183 | animation/clip_36/loops=false 184 | animation/clip_37/name="" 185 | animation/clip_37/start_frame=0 186 | animation/clip_37/end_frame=0 187 | animation/clip_37/loops=false 188 | animation/clip_38/name="" 189 | animation/clip_38/start_frame=0 190 | animation/clip_38/end_frame=0 191 | animation/clip_38/loops=false 192 | animation/clip_39/name="" 193 | animation/clip_39/start_frame=0 194 | animation/clip_39/end_frame=0 195 | animation/clip_39/loops=false 196 | animation/clip_40/name="" 197 | animation/clip_40/start_frame=0 198 | animation/clip_40/end_frame=0 199 | animation/clip_40/loops=false 200 | animation/clip_41/name="" 201 | animation/clip_41/start_frame=0 202 | animation/clip_41/end_frame=0 203 | animation/clip_41/loops=false 204 | animation/clip_42/name="" 205 | animation/clip_42/start_frame=0 206 | animation/clip_42/end_frame=0 207 | animation/clip_42/loops=false 208 | animation/clip_43/name="" 209 | animation/clip_43/start_frame=0 210 | animation/clip_43/end_frame=0 211 | animation/clip_43/loops=false 212 | animation/clip_44/name="" 213 | animation/clip_44/start_frame=0 214 | animation/clip_44/end_frame=0 215 | animation/clip_44/loops=false 216 | animation/clip_45/name="" 217 | animation/clip_45/start_frame=0 218 | animation/clip_45/end_frame=0 219 | animation/clip_45/loops=false 220 | animation/clip_46/name="" 221 | animation/clip_46/start_frame=0 222 | animation/clip_46/end_frame=0 223 | animation/clip_46/loops=false 224 | animation/clip_47/name="" 225 | animation/clip_47/start_frame=0 226 | animation/clip_47/end_frame=0 227 | animation/clip_47/loops=false 228 | animation/clip_48/name="" 229 | animation/clip_48/start_frame=0 230 | animation/clip_48/end_frame=0 231 | animation/clip_48/loops=false 232 | animation/clip_49/name="" 233 | animation/clip_49/start_frame=0 234 | animation/clip_49/end_frame=0 235 | animation/clip_49/loops=false 236 | animation/clip_50/name="" 237 | animation/clip_50/start_frame=0 238 | animation/clip_50/end_frame=0 239 | animation/clip_50/loops=false 240 | animation/clip_51/name="" 241 | animation/clip_51/start_frame=0 242 | animation/clip_51/end_frame=0 243 | animation/clip_51/loops=false 244 | animation/clip_52/name="" 245 | animation/clip_52/start_frame=0 246 | animation/clip_52/end_frame=0 247 | animation/clip_52/loops=false 248 | animation/clip_53/name="" 249 | animation/clip_53/start_frame=0 250 | animation/clip_53/end_frame=0 251 | animation/clip_53/loops=false 252 | animation/clip_54/name="" 253 | animation/clip_54/start_frame=0 254 | animation/clip_54/end_frame=0 255 | animation/clip_54/loops=false 256 | animation/clip_55/name="" 257 | animation/clip_55/start_frame=0 258 | animation/clip_55/end_frame=0 259 | animation/clip_55/loops=false 260 | animation/clip_56/name="" 261 | animation/clip_56/start_frame=0 262 | animation/clip_56/end_frame=0 263 | animation/clip_56/loops=false 264 | animation/clip_57/name="" 265 | animation/clip_57/start_frame=0 266 | animation/clip_57/end_frame=0 267 | animation/clip_57/loops=false 268 | animation/clip_58/name="" 269 | animation/clip_58/start_frame=0 270 | animation/clip_58/end_frame=0 271 | animation/clip_58/loops=false 272 | animation/clip_59/name="" 273 | animation/clip_59/start_frame=0 274 | animation/clip_59/end_frame=0 275 | animation/clip_59/loops=false 276 | animation/clip_60/name="" 277 | animation/clip_60/start_frame=0 278 | animation/clip_60/end_frame=0 279 | animation/clip_60/loops=false 280 | animation/clip_61/name="" 281 | animation/clip_61/start_frame=0 282 | animation/clip_61/end_frame=0 283 | animation/clip_61/loops=false 284 | animation/clip_62/name="" 285 | animation/clip_62/start_frame=0 286 | animation/clip_62/end_frame=0 287 | animation/clip_62/loops=false 288 | animation/clip_63/name="" 289 | animation/clip_63/start_frame=0 290 | animation/clip_63/end_frame=0 291 | animation/clip_63/loops=false 292 | animation/clip_64/name="" 293 | animation/clip_64/start_frame=0 294 | animation/clip_64/end_frame=0 295 | animation/clip_64/loops=false 296 | animation/clip_65/name="" 297 | animation/clip_65/start_frame=0 298 | animation/clip_65/end_frame=0 299 | animation/clip_65/loops=false 300 | animation/clip_66/name="" 301 | animation/clip_66/start_frame=0 302 | animation/clip_66/end_frame=0 303 | animation/clip_66/loops=false 304 | animation/clip_67/name="" 305 | animation/clip_67/start_frame=0 306 | animation/clip_67/end_frame=0 307 | animation/clip_67/loops=false 308 | animation/clip_68/name="" 309 | animation/clip_68/start_frame=0 310 | animation/clip_68/end_frame=0 311 | animation/clip_68/loops=false 312 | animation/clip_69/name="" 313 | animation/clip_69/start_frame=0 314 | animation/clip_69/end_frame=0 315 | animation/clip_69/loops=false 316 | animation/clip_70/name="" 317 | animation/clip_70/start_frame=0 318 | animation/clip_70/end_frame=0 319 | animation/clip_70/loops=false 320 | animation/clip_71/name="" 321 | animation/clip_71/start_frame=0 322 | animation/clip_71/end_frame=0 323 | animation/clip_71/loops=false 324 | animation/clip_72/name="" 325 | animation/clip_72/start_frame=0 326 | animation/clip_72/end_frame=0 327 | animation/clip_72/loops=false 328 | animation/clip_73/name="" 329 | animation/clip_73/start_frame=0 330 | animation/clip_73/end_frame=0 331 | animation/clip_73/loops=false 332 | animation/clip_74/name="" 333 | animation/clip_74/start_frame=0 334 | animation/clip_74/end_frame=0 335 | animation/clip_74/loops=false 336 | animation/clip_75/name="" 337 | animation/clip_75/start_frame=0 338 | animation/clip_75/end_frame=0 339 | animation/clip_75/loops=false 340 | animation/clip_76/name="" 341 | animation/clip_76/start_frame=0 342 | animation/clip_76/end_frame=0 343 | animation/clip_76/loops=false 344 | animation/clip_77/name="" 345 | animation/clip_77/start_frame=0 346 | animation/clip_77/end_frame=0 347 | animation/clip_77/loops=false 348 | animation/clip_78/name="" 349 | animation/clip_78/start_frame=0 350 | animation/clip_78/end_frame=0 351 | animation/clip_78/loops=false 352 | animation/clip_79/name="" 353 | animation/clip_79/start_frame=0 354 | animation/clip_79/end_frame=0 355 | animation/clip_79/loops=false 356 | animation/clip_80/name="" 357 | animation/clip_80/start_frame=0 358 | animation/clip_80/end_frame=0 359 | animation/clip_80/loops=false 360 | animation/clip_81/name="" 361 | animation/clip_81/start_frame=0 362 | animation/clip_81/end_frame=0 363 | animation/clip_81/loops=false 364 | animation/clip_82/name="" 365 | animation/clip_82/start_frame=0 366 | animation/clip_82/end_frame=0 367 | animation/clip_82/loops=false 368 | animation/clip_83/name="" 369 | animation/clip_83/start_frame=0 370 | animation/clip_83/end_frame=0 371 | animation/clip_83/loops=false 372 | animation/clip_84/name="" 373 | animation/clip_84/start_frame=0 374 | animation/clip_84/end_frame=0 375 | animation/clip_84/loops=false 376 | animation/clip_85/name="" 377 | animation/clip_85/start_frame=0 378 | animation/clip_85/end_frame=0 379 | animation/clip_85/loops=false 380 | animation/clip_86/name="" 381 | animation/clip_86/start_frame=0 382 | animation/clip_86/end_frame=0 383 | animation/clip_86/loops=false 384 | animation/clip_87/name="" 385 | animation/clip_87/start_frame=0 386 | animation/clip_87/end_frame=0 387 | animation/clip_87/loops=false 388 | animation/clip_88/name="" 389 | animation/clip_88/start_frame=0 390 | animation/clip_88/end_frame=0 391 | animation/clip_88/loops=false 392 | animation/clip_89/name="" 393 | animation/clip_89/start_frame=0 394 | animation/clip_89/end_frame=0 395 | animation/clip_89/loops=false 396 | animation/clip_90/name="" 397 | animation/clip_90/start_frame=0 398 | animation/clip_90/end_frame=0 399 | animation/clip_90/loops=false 400 | animation/clip_91/name="" 401 | animation/clip_91/start_frame=0 402 | animation/clip_91/end_frame=0 403 | animation/clip_91/loops=false 404 | animation/clip_92/name="" 405 | animation/clip_92/start_frame=0 406 | animation/clip_92/end_frame=0 407 | animation/clip_92/loops=false 408 | animation/clip_93/name="" 409 | animation/clip_93/start_frame=0 410 | animation/clip_93/end_frame=0 411 | animation/clip_93/loops=false 412 | animation/clip_94/name="" 413 | animation/clip_94/start_frame=0 414 | animation/clip_94/end_frame=0 415 | animation/clip_94/loops=false 416 | animation/clip_95/name="" 417 | animation/clip_95/start_frame=0 418 | animation/clip_95/end_frame=0 419 | animation/clip_95/loops=false 420 | animation/clip_96/name="" 421 | animation/clip_96/start_frame=0 422 | animation/clip_96/end_frame=0 423 | animation/clip_96/loops=false 424 | animation/clip_97/name="" 425 | animation/clip_97/start_frame=0 426 | animation/clip_97/end_frame=0 427 | animation/clip_97/loops=false 428 | animation/clip_98/name="" 429 | animation/clip_98/start_frame=0 430 | animation/clip_98/end_frame=0 431 | animation/clip_98/loops=false 432 | animation/clip_99/name="" 433 | animation/clip_99/start_frame=0 434 | animation/clip_99/end_frame=0 435 | animation/clip_99/loops=false 436 | animation/clip_100/name="" 437 | animation/clip_100/start_frame=0 438 | animation/clip_100/end_frame=0 439 | animation/clip_100/loops=false 440 | animation/clip_101/name="" 441 | animation/clip_101/start_frame=0 442 | animation/clip_101/end_frame=0 443 | animation/clip_101/loops=false 444 | animation/clip_102/name="" 445 | animation/clip_102/start_frame=0 446 | animation/clip_102/end_frame=0 447 | animation/clip_102/loops=false 448 | animation/clip_103/name="" 449 | animation/clip_103/start_frame=0 450 | animation/clip_103/end_frame=0 451 | animation/clip_103/loops=false 452 | animation/clip_104/name="" 453 | animation/clip_104/start_frame=0 454 | animation/clip_104/end_frame=0 455 | animation/clip_104/loops=false 456 | animation/clip_105/name="" 457 | animation/clip_105/start_frame=0 458 | animation/clip_105/end_frame=0 459 | animation/clip_105/loops=false 460 | animation/clip_106/name="" 461 | animation/clip_106/start_frame=0 462 | animation/clip_106/end_frame=0 463 | animation/clip_106/loops=false 464 | animation/clip_107/name="" 465 | animation/clip_107/start_frame=0 466 | animation/clip_107/end_frame=0 467 | animation/clip_107/loops=false 468 | animation/clip_108/name="" 469 | animation/clip_108/start_frame=0 470 | animation/clip_108/end_frame=0 471 | animation/clip_108/loops=false 472 | animation/clip_109/name="" 473 | animation/clip_109/start_frame=0 474 | animation/clip_109/end_frame=0 475 | animation/clip_109/loops=false 476 | animation/clip_110/name="" 477 | animation/clip_110/start_frame=0 478 | animation/clip_110/end_frame=0 479 | animation/clip_110/loops=false 480 | animation/clip_111/name="" 481 | animation/clip_111/start_frame=0 482 | animation/clip_111/end_frame=0 483 | animation/clip_111/loops=false 484 | animation/clip_112/name="" 485 | animation/clip_112/start_frame=0 486 | animation/clip_112/end_frame=0 487 | animation/clip_112/loops=false 488 | animation/clip_113/name="" 489 | animation/clip_113/start_frame=0 490 | animation/clip_113/end_frame=0 491 | animation/clip_113/loops=false 492 | animation/clip_114/name="" 493 | animation/clip_114/start_frame=0 494 | animation/clip_114/end_frame=0 495 | animation/clip_114/loops=false 496 | animation/clip_115/name="" 497 | animation/clip_115/start_frame=0 498 | animation/clip_115/end_frame=0 499 | animation/clip_115/loops=false 500 | animation/clip_116/name="" 501 | animation/clip_116/start_frame=0 502 | animation/clip_116/end_frame=0 503 | animation/clip_116/loops=false 504 | animation/clip_117/name="" 505 | animation/clip_117/start_frame=0 506 | animation/clip_117/end_frame=0 507 | animation/clip_117/loops=false 508 | animation/clip_118/name="" 509 | animation/clip_118/start_frame=0 510 | animation/clip_118/end_frame=0 511 | animation/clip_118/loops=false 512 | animation/clip_119/name="" 513 | animation/clip_119/start_frame=0 514 | animation/clip_119/end_frame=0 515 | animation/clip_119/loops=false 516 | animation/clip_120/name="" 517 | animation/clip_120/start_frame=0 518 | animation/clip_120/end_frame=0 519 | animation/clip_120/loops=false 520 | animation/clip_121/name="" 521 | animation/clip_121/start_frame=0 522 | animation/clip_121/end_frame=0 523 | animation/clip_121/loops=false 524 | animation/clip_122/name="" 525 | animation/clip_122/start_frame=0 526 | animation/clip_122/end_frame=0 527 | animation/clip_122/loops=false 528 | animation/clip_123/name="" 529 | animation/clip_123/start_frame=0 530 | animation/clip_123/end_frame=0 531 | animation/clip_123/loops=false 532 | animation/clip_124/name="" 533 | animation/clip_124/start_frame=0 534 | animation/clip_124/end_frame=0 535 | animation/clip_124/loops=false 536 | animation/clip_125/name="" 537 | animation/clip_125/start_frame=0 538 | animation/clip_125/end_frame=0 539 | animation/clip_125/loops=false 540 | animation/clip_126/name="" 541 | animation/clip_126/start_frame=0 542 | animation/clip_126/end_frame=0 543 | animation/clip_126/loops=false 544 | animation/clip_127/name="" 545 | animation/clip_127/start_frame=0 546 | animation/clip_127/end_frame=0 547 | animation/clip_127/loops=false 548 | animation/clip_128/name="" 549 | animation/clip_128/start_frame=0 550 | animation/clip_128/end_frame=0 551 | animation/clip_128/loops=false 552 | animation/clip_129/name="" 553 | animation/clip_129/start_frame=0 554 | animation/clip_129/end_frame=0 555 | animation/clip_129/loops=false 556 | animation/clip_130/name="" 557 | animation/clip_130/start_frame=0 558 | animation/clip_130/end_frame=0 559 | animation/clip_130/loops=false 560 | animation/clip_131/name="" 561 | animation/clip_131/start_frame=0 562 | animation/clip_131/end_frame=0 563 | animation/clip_131/loops=false 564 | animation/clip_132/name="" 565 | animation/clip_132/start_frame=0 566 | animation/clip_132/end_frame=0 567 | animation/clip_132/loops=false 568 | animation/clip_133/name="" 569 | animation/clip_133/start_frame=0 570 | animation/clip_133/end_frame=0 571 | animation/clip_133/loops=false 572 | animation/clip_134/name="" 573 | animation/clip_134/start_frame=0 574 | animation/clip_134/end_frame=0 575 | animation/clip_134/loops=false 576 | animation/clip_135/name="" 577 | animation/clip_135/start_frame=0 578 | animation/clip_135/end_frame=0 579 | animation/clip_135/loops=false 580 | animation/clip_136/name="" 581 | animation/clip_136/start_frame=0 582 | animation/clip_136/end_frame=0 583 | animation/clip_136/loops=false 584 | animation/clip_137/name="" 585 | animation/clip_137/start_frame=0 586 | animation/clip_137/end_frame=0 587 | animation/clip_137/loops=false 588 | animation/clip_138/name="" 589 | animation/clip_138/start_frame=0 590 | animation/clip_138/end_frame=0 591 | animation/clip_138/loops=false 592 | animation/clip_139/name="" 593 | animation/clip_139/start_frame=0 594 | animation/clip_139/end_frame=0 595 | animation/clip_139/loops=false 596 | animation/clip_140/name="" 597 | animation/clip_140/start_frame=0 598 | animation/clip_140/end_frame=0 599 | animation/clip_140/loops=false 600 | animation/clip_141/name="" 601 | animation/clip_141/start_frame=0 602 | animation/clip_141/end_frame=0 603 | animation/clip_141/loops=false 604 | animation/clip_142/name="" 605 | animation/clip_142/start_frame=0 606 | animation/clip_142/end_frame=0 607 | animation/clip_142/loops=false 608 | animation/clip_143/name="" 609 | animation/clip_143/start_frame=0 610 | animation/clip_143/end_frame=0 611 | animation/clip_143/loops=false 612 | animation/clip_144/name="" 613 | animation/clip_144/start_frame=0 614 | animation/clip_144/end_frame=0 615 | animation/clip_144/loops=false 616 | animation/clip_145/name="" 617 | animation/clip_145/start_frame=0 618 | animation/clip_145/end_frame=0 619 | animation/clip_145/loops=false 620 | animation/clip_146/name="" 621 | animation/clip_146/start_frame=0 622 | animation/clip_146/end_frame=0 623 | animation/clip_146/loops=false 624 | animation/clip_147/name="" 625 | animation/clip_147/start_frame=0 626 | animation/clip_147/end_frame=0 627 | animation/clip_147/loops=false 628 | animation/clip_148/name="" 629 | animation/clip_148/start_frame=0 630 | animation/clip_148/end_frame=0 631 | animation/clip_148/loops=false 632 | animation/clip_149/name="" 633 | animation/clip_149/start_frame=0 634 | animation/clip_149/end_frame=0 635 | animation/clip_149/loops=false 636 | animation/clip_150/name="" 637 | animation/clip_150/start_frame=0 638 | animation/clip_150/end_frame=0 639 | animation/clip_150/loops=false 640 | animation/clip_151/name="" 641 | animation/clip_151/start_frame=0 642 | animation/clip_151/end_frame=0 643 | animation/clip_151/loops=false 644 | animation/clip_152/name="" 645 | animation/clip_152/start_frame=0 646 | animation/clip_152/end_frame=0 647 | animation/clip_152/loops=false 648 | animation/clip_153/name="" 649 | animation/clip_153/start_frame=0 650 | animation/clip_153/end_frame=0 651 | animation/clip_153/loops=false 652 | animation/clip_154/name="" 653 | animation/clip_154/start_frame=0 654 | animation/clip_154/end_frame=0 655 | animation/clip_154/loops=false 656 | animation/clip_155/name="" 657 | animation/clip_155/start_frame=0 658 | animation/clip_155/end_frame=0 659 | animation/clip_155/loops=false 660 | animation/clip_156/name="" 661 | animation/clip_156/start_frame=0 662 | animation/clip_156/end_frame=0 663 | animation/clip_156/loops=false 664 | animation/clip_157/name="" 665 | animation/clip_157/start_frame=0 666 | animation/clip_157/end_frame=0 667 | animation/clip_157/loops=false 668 | animation/clip_158/name="" 669 | animation/clip_158/start_frame=0 670 | animation/clip_158/end_frame=0 671 | animation/clip_158/loops=false 672 | animation/clip_159/name="" 673 | animation/clip_159/start_frame=0 674 | animation/clip_159/end_frame=0 675 | animation/clip_159/loops=false 676 | animation/clip_160/name="" 677 | animation/clip_160/start_frame=0 678 | animation/clip_160/end_frame=0 679 | animation/clip_160/loops=false 680 | animation/clip_161/name="" 681 | animation/clip_161/start_frame=0 682 | animation/clip_161/end_frame=0 683 | animation/clip_161/loops=false 684 | animation/clip_162/name="" 685 | animation/clip_162/start_frame=0 686 | animation/clip_162/end_frame=0 687 | animation/clip_162/loops=false 688 | animation/clip_163/name="" 689 | animation/clip_163/start_frame=0 690 | animation/clip_163/end_frame=0 691 | animation/clip_163/loops=false 692 | animation/clip_164/name="" 693 | animation/clip_164/start_frame=0 694 | animation/clip_164/end_frame=0 695 | animation/clip_164/loops=false 696 | animation/clip_165/name="" 697 | animation/clip_165/start_frame=0 698 | animation/clip_165/end_frame=0 699 | animation/clip_165/loops=false 700 | animation/clip_166/name="" 701 | animation/clip_166/start_frame=0 702 | animation/clip_166/end_frame=0 703 | animation/clip_166/loops=false 704 | animation/clip_167/name="" 705 | animation/clip_167/start_frame=0 706 | animation/clip_167/end_frame=0 707 | animation/clip_167/loops=false 708 | animation/clip_168/name="" 709 | animation/clip_168/start_frame=0 710 | animation/clip_168/end_frame=0 711 | animation/clip_168/loops=false 712 | animation/clip_169/name="" 713 | animation/clip_169/start_frame=0 714 | animation/clip_169/end_frame=0 715 | animation/clip_169/loops=false 716 | animation/clip_170/name="" 717 | animation/clip_170/start_frame=0 718 | animation/clip_170/end_frame=0 719 | animation/clip_170/loops=false 720 | animation/clip_171/name="" 721 | animation/clip_171/start_frame=0 722 | animation/clip_171/end_frame=0 723 | animation/clip_171/loops=false 724 | animation/clip_172/name="" 725 | animation/clip_172/start_frame=0 726 | animation/clip_172/end_frame=0 727 | animation/clip_172/loops=false 728 | animation/clip_173/name="" 729 | animation/clip_173/start_frame=0 730 | animation/clip_173/end_frame=0 731 | animation/clip_173/loops=false 732 | animation/clip_174/name="" 733 | animation/clip_174/start_frame=0 734 | animation/clip_174/end_frame=0 735 | animation/clip_174/loops=false 736 | animation/clip_175/name="" 737 | animation/clip_175/start_frame=0 738 | animation/clip_175/end_frame=0 739 | animation/clip_175/loops=false 740 | animation/clip_176/name="" 741 | animation/clip_176/start_frame=0 742 | animation/clip_176/end_frame=0 743 | animation/clip_176/loops=false 744 | animation/clip_177/name="" 745 | animation/clip_177/start_frame=0 746 | animation/clip_177/end_frame=0 747 | animation/clip_177/loops=false 748 | animation/clip_178/name="" 749 | animation/clip_178/start_frame=0 750 | animation/clip_178/end_frame=0 751 | animation/clip_178/loops=false 752 | animation/clip_179/name="" 753 | animation/clip_179/start_frame=0 754 | animation/clip_179/end_frame=0 755 | animation/clip_179/loops=false 756 | animation/clip_180/name="" 757 | animation/clip_180/start_frame=0 758 | animation/clip_180/end_frame=0 759 | animation/clip_180/loops=false 760 | animation/clip_181/name="" 761 | animation/clip_181/start_frame=0 762 | animation/clip_181/end_frame=0 763 | animation/clip_181/loops=false 764 | animation/clip_182/name="" 765 | animation/clip_182/start_frame=0 766 | animation/clip_182/end_frame=0 767 | animation/clip_182/loops=false 768 | animation/clip_183/name="" 769 | animation/clip_183/start_frame=0 770 | animation/clip_183/end_frame=0 771 | animation/clip_183/loops=false 772 | animation/clip_184/name="" 773 | animation/clip_184/start_frame=0 774 | animation/clip_184/end_frame=0 775 | animation/clip_184/loops=false 776 | animation/clip_185/name="" 777 | animation/clip_185/start_frame=0 778 | animation/clip_185/end_frame=0 779 | animation/clip_185/loops=false 780 | animation/clip_186/name="" 781 | animation/clip_186/start_frame=0 782 | animation/clip_186/end_frame=0 783 | animation/clip_186/loops=false 784 | animation/clip_187/name="" 785 | animation/clip_187/start_frame=0 786 | animation/clip_187/end_frame=0 787 | animation/clip_187/loops=false 788 | animation/clip_188/name="" 789 | animation/clip_188/start_frame=0 790 | animation/clip_188/end_frame=0 791 | animation/clip_188/loops=false 792 | animation/clip_189/name="" 793 | animation/clip_189/start_frame=0 794 | animation/clip_189/end_frame=0 795 | animation/clip_189/loops=false 796 | animation/clip_190/name="" 797 | animation/clip_190/start_frame=0 798 | animation/clip_190/end_frame=0 799 | animation/clip_190/loops=false 800 | animation/clip_191/name="" 801 | animation/clip_191/start_frame=0 802 | animation/clip_191/end_frame=0 803 | animation/clip_191/loops=false 804 | animation/clip_192/name="" 805 | animation/clip_192/start_frame=0 806 | animation/clip_192/end_frame=0 807 | animation/clip_192/loops=false 808 | animation/clip_193/name="" 809 | animation/clip_193/start_frame=0 810 | animation/clip_193/end_frame=0 811 | animation/clip_193/loops=false 812 | animation/clip_194/name="" 813 | animation/clip_194/start_frame=0 814 | animation/clip_194/end_frame=0 815 | animation/clip_194/loops=false 816 | animation/clip_195/name="" 817 | animation/clip_195/start_frame=0 818 | animation/clip_195/end_frame=0 819 | animation/clip_195/loops=false 820 | animation/clip_196/name="" 821 | animation/clip_196/start_frame=0 822 | animation/clip_196/end_frame=0 823 | animation/clip_196/loops=false 824 | animation/clip_197/name="" 825 | animation/clip_197/start_frame=0 826 | animation/clip_197/end_frame=0 827 | animation/clip_197/loops=false 828 | animation/clip_198/name="" 829 | animation/clip_198/start_frame=0 830 | animation/clip_198/end_frame=0 831 | animation/clip_198/loops=false 832 | animation/clip_199/name="" 833 | animation/clip_199/start_frame=0 834 | animation/clip_199/end_frame=0 835 | animation/clip_199/loops=false 836 | animation/clip_200/name="" 837 | animation/clip_200/start_frame=0 838 | animation/clip_200/end_frame=0 839 | animation/clip_200/loops=false 840 | animation/clip_201/name="" 841 | animation/clip_201/start_frame=0 842 | animation/clip_201/end_frame=0 843 | animation/clip_201/loops=false 844 | animation/clip_202/name="" 845 | animation/clip_202/start_frame=0 846 | animation/clip_202/end_frame=0 847 | animation/clip_202/loops=false 848 | animation/clip_203/name="" 849 | animation/clip_203/start_frame=0 850 | animation/clip_203/end_frame=0 851 | animation/clip_203/loops=false 852 | animation/clip_204/name="" 853 | animation/clip_204/start_frame=0 854 | animation/clip_204/end_frame=0 855 | animation/clip_204/loops=false 856 | animation/clip_205/name="" 857 | animation/clip_205/start_frame=0 858 | animation/clip_205/end_frame=0 859 | animation/clip_205/loops=false 860 | animation/clip_206/name="" 861 | animation/clip_206/start_frame=0 862 | animation/clip_206/end_frame=0 863 | animation/clip_206/loops=false 864 | animation/clip_207/name="" 865 | animation/clip_207/start_frame=0 866 | animation/clip_207/end_frame=0 867 | animation/clip_207/loops=false 868 | animation/clip_208/name="" 869 | animation/clip_208/start_frame=0 870 | animation/clip_208/end_frame=0 871 | animation/clip_208/loops=false 872 | animation/clip_209/name="" 873 | animation/clip_209/start_frame=0 874 | animation/clip_209/end_frame=0 875 | animation/clip_209/loops=false 876 | animation/clip_210/name="" 877 | animation/clip_210/start_frame=0 878 | animation/clip_210/end_frame=0 879 | animation/clip_210/loops=false 880 | animation/clip_211/name="" 881 | animation/clip_211/start_frame=0 882 | animation/clip_211/end_frame=0 883 | animation/clip_211/loops=false 884 | animation/clip_212/name="" 885 | animation/clip_212/start_frame=0 886 | animation/clip_212/end_frame=0 887 | animation/clip_212/loops=false 888 | animation/clip_213/name="" 889 | animation/clip_213/start_frame=0 890 | animation/clip_213/end_frame=0 891 | animation/clip_213/loops=false 892 | animation/clip_214/name="" 893 | animation/clip_214/start_frame=0 894 | animation/clip_214/end_frame=0 895 | animation/clip_214/loops=false 896 | animation/clip_215/name="" 897 | animation/clip_215/start_frame=0 898 | animation/clip_215/end_frame=0 899 | animation/clip_215/loops=false 900 | animation/clip_216/name="" 901 | animation/clip_216/start_frame=0 902 | animation/clip_216/end_frame=0 903 | animation/clip_216/loops=false 904 | animation/clip_217/name="" 905 | animation/clip_217/start_frame=0 906 | animation/clip_217/end_frame=0 907 | animation/clip_217/loops=false 908 | animation/clip_218/name="" 909 | animation/clip_218/start_frame=0 910 | animation/clip_218/end_frame=0 911 | animation/clip_218/loops=false 912 | animation/clip_219/name="" 913 | animation/clip_219/start_frame=0 914 | animation/clip_219/end_frame=0 915 | animation/clip_219/loops=false 916 | animation/clip_220/name="" 917 | animation/clip_220/start_frame=0 918 | animation/clip_220/end_frame=0 919 | animation/clip_220/loops=false 920 | animation/clip_221/name="" 921 | animation/clip_221/start_frame=0 922 | animation/clip_221/end_frame=0 923 | animation/clip_221/loops=false 924 | animation/clip_222/name="" 925 | animation/clip_222/start_frame=0 926 | animation/clip_222/end_frame=0 927 | animation/clip_222/loops=false 928 | animation/clip_223/name="" 929 | animation/clip_223/start_frame=0 930 | animation/clip_223/end_frame=0 931 | animation/clip_223/loops=false 932 | animation/clip_224/name="" 933 | animation/clip_224/start_frame=0 934 | animation/clip_224/end_frame=0 935 | animation/clip_224/loops=false 936 | animation/clip_225/name="" 937 | animation/clip_225/start_frame=0 938 | animation/clip_225/end_frame=0 939 | animation/clip_225/loops=false 940 | animation/clip_226/name="" 941 | animation/clip_226/start_frame=0 942 | animation/clip_226/end_frame=0 943 | animation/clip_226/loops=false 944 | animation/clip_227/name="" 945 | animation/clip_227/start_frame=0 946 | animation/clip_227/end_frame=0 947 | animation/clip_227/loops=false 948 | animation/clip_228/name="" 949 | animation/clip_228/start_frame=0 950 | animation/clip_228/end_frame=0 951 | animation/clip_228/loops=false 952 | animation/clip_229/name="" 953 | animation/clip_229/start_frame=0 954 | animation/clip_229/end_frame=0 955 | animation/clip_229/loops=false 956 | animation/clip_230/name="" 957 | animation/clip_230/start_frame=0 958 | animation/clip_230/end_frame=0 959 | animation/clip_230/loops=false 960 | animation/clip_231/name="" 961 | animation/clip_231/start_frame=0 962 | animation/clip_231/end_frame=0 963 | animation/clip_231/loops=false 964 | animation/clip_232/name="" 965 | animation/clip_232/start_frame=0 966 | animation/clip_232/end_frame=0 967 | animation/clip_232/loops=false 968 | animation/clip_233/name="" 969 | animation/clip_233/start_frame=0 970 | animation/clip_233/end_frame=0 971 | animation/clip_233/loops=false 972 | animation/clip_234/name="" 973 | animation/clip_234/start_frame=0 974 | animation/clip_234/end_frame=0 975 | animation/clip_234/loops=false 976 | animation/clip_235/name="" 977 | animation/clip_235/start_frame=0 978 | animation/clip_235/end_frame=0 979 | animation/clip_235/loops=false 980 | animation/clip_236/name="" 981 | animation/clip_236/start_frame=0 982 | animation/clip_236/end_frame=0 983 | animation/clip_236/loops=false 984 | animation/clip_237/name="" 985 | animation/clip_237/start_frame=0 986 | animation/clip_237/end_frame=0 987 | animation/clip_237/loops=false 988 | animation/clip_238/name="" 989 | animation/clip_238/start_frame=0 990 | animation/clip_238/end_frame=0 991 | animation/clip_238/loops=false 992 | animation/clip_239/name="" 993 | animation/clip_239/start_frame=0 994 | animation/clip_239/end_frame=0 995 | animation/clip_239/loops=false 996 | animation/clip_240/name="" 997 | animation/clip_240/start_frame=0 998 | animation/clip_240/end_frame=0 999 | animation/clip_240/loops=false 1000 | animation/clip_241/name="" 1001 | animation/clip_241/start_frame=0 1002 | animation/clip_241/end_frame=0 1003 | animation/clip_241/loops=false 1004 | animation/clip_242/name="" 1005 | animation/clip_242/start_frame=0 1006 | animation/clip_242/end_frame=0 1007 | animation/clip_242/loops=false 1008 | animation/clip_243/name="" 1009 | animation/clip_243/start_frame=0 1010 | animation/clip_243/end_frame=0 1011 | animation/clip_243/loops=false 1012 | animation/clip_244/name="" 1013 | animation/clip_244/start_frame=0 1014 | animation/clip_244/end_frame=0 1015 | animation/clip_244/loops=false 1016 | animation/clip_245/name="" 1017 | animation/clip_245/start_frame=0 1018 | animation/clip_245/end_frame=0 1019 | animation/clip_245/loops=false 1020 | animation/clip_246/name="" 1021 | animation/clip_246/start_frame=0 1022 | animation/clip_246/end_frame=0 1023 | animation/clip_246/loops=false 1024 | animation/clip_247/name="" 1025 | animation/clip_247/start_frame=0 1026 | animation/clip_247/end_frame=0 1027 | animation/clip_247/loops=false 1028 | animation/clip_248/name="" 1029 | animation/clip_248/start_frame=0 1030 | animation/clip_248/end_frame=0 1031 | animation/clip_248/loops=false 1032 | animation/clip_249/name="" 1033 | animation/clip_249/start_frame=0 1034 | animation/clip_249/end_frame=0 1035 | animation/clip_249/loops=false 1036 | animation/clip_250/name="" 1037 | animation/clip_250/start_frame=0 1038 | animation/clip_250/end_frame=0 1039 | animation/clip_250/loops=false 1040 | animation/clip_251/name="" 1041 | animation/clip_251/start_frame=0 1042 | animation/clip_251/end_frame=0 1043 | animation/clip_251/loops=false 1044 | animation/clip_252/name="" 1045 | animation/clip_252/start_frame=0 1046 | animation/clip_252/end_frame=0 1047 | animation/clip_252/loops=false 1048 | animation/clip_253/name="" 1049 | animation/clip_253/start_frame=0 1050 | animation/clip_253/end_frame=0 1051 | animation/clip_253/loops=false 1052 | animation/clip_254/name="" 1053 | animation/clip_254/start_frame=0 1054 | animation/clip_254/end_frame=0 1055 | animation/clip_254/loops=false 1056 | animation/clip_255/name="" 1057 | animation/clip_255/start_frame=0 1058 | animation/clip_255/end_frame=0 1059 | animation/clip_255/loops=false 1060 | animation/clip_256/name="" 1061 | animation/clip_256/start_frame=0 1062 | animation/clip_256/end_frame=0 1063 | animation/clip_256/loops=false 1064 | -------------------------------------------------------------------------------- /Assets/gun.model: -------------------------------------------------------------------------------- 1 | # Made using Asset Forge (2.0 preview-1b) 2 | 3 | :materials 4 | 5 | [name:_defaultMat;color:RGBA(0.939, 0.953, 1.000, 1.000);shader:Standard;valueA:0.35;valueB:0;] 6 | [name:dark;color:RGBA(0.224, 0.235, 0.275, 1.000);shader:Standard;valueA:0.35;valueB:0;] 7 | [name:metalDark;color:RGBA(0.400, 0.388, 0.647, 1.000);shader:Standard;valueA:0.35;valueB:0.5;] 8 | 9 | :models 10 | 11 | [name:;collection:Blasters;type:clip_default;position:(0.0000, 0.0000, 1.0000);rotation:(0.0000, 0.0000, 0.0000);scale:(1.0000, 1.0000, 1.0000);group:;locked:False;hidden:False;materials:dark;] 12 | [name:;collection:Blasters;type:blaster_barrel;position:(0.0000, 0.0000, 2.0000);rotation:(0.0000, 0.0000, 0.0000);scale:(1.0000, 1.0000, 1.0000);group:;locked:False;hidden:False;materials:metalDark+_defaultMat+dark;] 13 | [name:;collection:Blasters;type:blaster_handleGuard;position:(0.0000, 0.0000, 0.1000);rotation:(0.0000, 0.0000, 0.0000);scale:(1.0000, 1.0000, 1.0000);group:;locked:False;hidden:False;materials:dark+_defaultMat+metalDark;] 14 | [name:;collection:Blasters;type:blaster_back;position:(0.0000, 0.0000, -0.8000);rotation:(0.0000, 0.0000, 0.0000);scale:(1.0000, 1.0000, 1.0000);group:;locked:False;hidden:False;materials:_defaultMat+metalDark;] 15 | [name:;collection:Blasters;type:attachment_laser;position:(0.0000, 0.0000, 1.7000);rotation:(0.0000, 0.0000, 0.0000);scale:(1.0000, 1.0000, 1.0000);group:;locked:False;hidden:False;materials:dark+_defaultMat+metalDark;] 16 | [name:;collection:Blasters;type:blaster_centerDetail;position:(0.0000, 0.0000, 1.0000);rotation:(0.0000, 0.0000, 0.0000);scale:(1.0000, 1.0000, 1.0000);group:;locked:False;hidden:False;materials:metalDark+_defaultMat+dark;] 17 | [name:;collection:Blasters;type:detailCounter;position:(-0.1750, 0.7720, 0.7000);rotation:(0.0000, 0.0000, 90.0000);scale:(0.4000, 0.6600, 1.0000);group:;locked:False;hidden:False;materials:metalDark+dark+_defaultMat;] 18 | [name:;collection:Blasters;type:detailRail_front;position:(0.0037, 1.0000, 2.0000);rotation:(0.0000, 0.0000, 0.0000);scale:(0.5184, 1.0000, 0.3000);group:;locked:False;hidden:False;materials:dark;] 19 | [name:;collection:Blasters;type:detailRail;position:(0.0000, 1.0000, 0.4945);rotation:(0.0000, 0.0000, 0.0000);scale:(1.0000, 1.0000, 0.2310);group:;locked:False;hidden:False;materials:dark;] 20 | [name:;collection:Blasters;type:stock_assault;position:(0.0000, 0.0000, -1.1000);rotation:(0.0000, 0.0000, 0.0000);scale:(1.0000, 1.0000, 1.0000);group:;locked:False;hidden:False;materials:dark+metalDark+_defaultMat;] 21 | -------------------------------------------------------------------------------- /Assets/metalDark.material: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codewithtom/godot-fps/5f31855858023ea19bf33b14af037b64e91876f7/Assets/metalDark.material -------------------------------------------------------------------------------- /Assets/prototype/Cube.material: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codewithtom/godot-fps/5f31855858023ea19bf33b14af037b64e91876f7/Assets/prototype/Cube.material -------------------------------------------------------------------------------- /Assets/prototype/Cube_2M.dae: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Blender User 6 | Blender 2.80.75 commit date:2019-07-29, commit time:14:47, hash:f6cb5f54494e 7 | 8 | 2020-04-02T21:31:41 9 | 2020-04-02T21:31:41 10 | 11 | Z_UP 12 | 13 | 14 | 15 | 16 | 17 | 18 | Cube_Texture 19 | 20 | 21 | 22 | 23 | Cube_Texture-surface 24 | 25 | 26 | 27 | 28 | 29 | 0 0 0 1 30 | 31 | 32 | 33 | 34 | 35 | 1.45 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | Cube_Texture.png 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 1 1 1 1 1 -1 1 -1 1 1 -1 -1 -1 1 1 -1 1 -1 -1 -1 1 -1 -1 -1 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 0 -1 0 1 0 0 0 0 -1 0 0 1 -1 0 0 0 1 0 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 0.3763386 0.2509437 0.6236614 0.003621101 0.6236614 0.2509437 0.3763385 0.7455889 0.129016 0.4982663 0.3763386 0.4982663 0.6236614 0.2509437 0.3763386 0.4982663 0.3763386 0.2509437 0.6236612 0.9929116 0.3763385 0.7455889 0.6236612 0.7455889 0.8709837 0.4982664 0.6236612 0.7455889 0.6236613 0.4982664 0.6236613 0.4982664 0.3763385 0.7455889 0.3763386 0.4982663 0.3763386 0.2509437 0.3763386 0.003621101 0.6236614 0.003621101 0.3763385 0.7455889 0.1290159 0.7455888 0.129016 0.4982663 0.6236614 0.2509437 0.6236613 0.4982664 0.3763386 0.4982663 0.6236612 0.9929116 0.3763385 0.9929113 0.3763385 0.7455889 0.8709837 0.4982664 0.8709835 0.7455889 0.6236612 0.7455889 0.6236613 0.4982664 0.6236612 0.7455889 0.3763385 0.7455889 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 |

3 0 0 6 0 1 7 0 2 0 1 3 3 1 4 1 1 5 7 2 6 1 2 7 3 2 8 6 3 9 0 3 10 4 3 11 7 4 12 4 4 13 5 4 14 5 5 15 0 5 16 1 5 17 3 0 18 2 0 19 6 0 20 0 1 21 2 1 22 3 1 23 7 2 24 5 2 25 1 2 26 6 3 27 2 3 28 0 3 29 7 4 30 6 4 31 4 4 32 5 5 33 4 5 34 0 5 35

92 |
93 |
94 |
95 |
96 | 97 | 98 | 99 | 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 |
-------------------------------------------------------------------------------- /Assets/prototype/Cube_2M.dae.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="scene" 4 | type="PackedScene" 5 | path="res://.import/Cube_2M.dae-119c28a0dd18c9de180c50674103285b.scn" 6 | 7 | [deps] 8 | 9 | source_file="res://Assets/prototype/Cube_2M.dae" 10 | dest_files=[ "res://.import/Cube_2M.dae-119c28a0dd18c9de180c50674103285b.scn" ] 11 | 12 | [params] 13 | 14 | nodes/root_type="Spatial" 15 | nodes/root_name="Scene Root" 16 | nodes/root_scale=1.0 17 | nodes/custom_script="" 18 | nodes/storage=0 19 | materials/location=1 20 | materials/storage=1 21 | materials/keep_on_reimport=true 22 | meshes/compress=true 23 | meshes/ensure_tangents=true 24 | meshes/storage=0 25 | meshes/light_baking=0 26 | meshes/lightmap_texel_size=0.1 27 | skins/use_named_skins=true 28 | external_files/store_in_subdir=false 29 | animation/import=true 30 | animation/fps=15 31 | animation/filter_script="" 32 | animation/storage=false 33 | animation/keep_custom_tracks=false 34 | animation/optimizer/enabled=true 35 | animation/optimizer/max_linear_error=0.05 36 | animation/optimizer/max_angular_error=0.01 37 | animation/optimizer/max_angle=22 38 | animation/optimizer/remove_unused_tracks=true 39 | animation/clips/amount=0 40 | animation/clip_1/name="" 41 | animation/clip_1/start_frame=0 42 | animation/clip_1/end_frame=0 43 | animation/clip_1/loops=false 44 | animation/clip_2/name="" 45 | animation/clip_2/start_frame=0 46 | animation/clip_2/end_frame=0 47 | animation/clip_2/loops=false 48 | animation/clip_3/name="" 49 | animation/clip_3/start_frame=0 50 | animation/clip_3/end_frame=0 51 | animation/clip_3/loops=false 52 | animation/clip_4/name="" 53 | animation/clip_4/start_frame=0 54 | animation/clip_4/end_frame=0 55 | animation/clip_4/loops=false 56 | animation/clip_5/name="" 57 | animation/clip_5/start_frame=0 58 | animation/clip_5/end_frame=0 59 | animation/clip_5/loops=false 60 | animation/clip_6/name="" 61 | animation/clip_6/start_frame=0 62 | animation/clip_6/end_frame=0 63 | animation/clip_6/loops=false 64 | animation/clip_7/name="" 65 | animation/clip_7/start_frame=0 66 | animation/clip_7/end_frame=0 67 | animation/clip_7/loops=false 68 | animation/clip_8/name="" 69 | animation/clip_8/start_frame=0 70 | animation/clip_8/end_frame=0 71 | animation/clip_8/loops=false 72 | animation/clip_9/name="" 73 | animation/clip_9/start_frame=0 74 | animation/clip_9/end_frame=0 75 | animation/clip_9/loops=false 76 | animation/clip_10/name="" 77 | animation/clip_10/start_frame=0 78 | animation/clip_10/end_frame=0 79 | animation/clip_10/loops=false 80 | animation/clip_11/name="" 81 | animation/clip_11/start_frame=0 82 | animation/clip_11/end_frame=0 83 | animation/clip_11/loops=false 84 | animation/clip_12/name="" 85 | animation/clip_12/start_frame=0 86 | animation/clip_12/end_frame=0 87 | animation/clip_12/loops=false 88 | animation/clip_13/name="" 89 | animation/clip_13/start_frame=0 90 | animation/clip_13/end_frame=0 91 | animation/clip_13/loops=false 92 | animation/clip_14/name="" 93 | animation/clip_14/start_frame=0 94 | animation/clip_14/end_frame=0 95 | animation/clip_14/loops=false 96 | animation/clip_15/name="" 97 | animation/clip_15/start_frame=0 98 | animation/clip_15/end_frame=0 99 | animation/clip_15/loops=false 100 | animation/clip_16/name="" 101 | animation/clip_16/start_frame=0 102 | animation/clip_16/end_frame=0 103 | animation/clip_16/loops=false 104 | animation/clip_17/name="" 105 | animation/clip_17/start_frame=0 106 | animation/clip_17/end_frame=0 107 | animation/clip_17/loops=false 108 | animation/clip_18/name="" 109 | animation/clip_18/start_frame=0 110 | animation/clip_18/end_frame=0 111 | animation/clip_18/loops=false 112 | animation/clip_19/name="" 113 | animation/clip_19/start_frame=0 114 | animation/clip_19/end_frame=0 115 | animation/clip_19/loops=false 116 | animation/clip_20/name="" 117 | animation/clip_20/start_frame=0 118 | animation/clip_20/end_frame=0 119 | animation/clip_20/loops=false 120 | animation/clip_21/name="" 121 | animation/clip_21/start_frame=0 122 | animation/clip_21/end_frame=0 123 | animation/clip_21/loops=false 124 | animation/clip_22/name="" 125 | animation/clip_22/start_frame=0 126 | animation/clip_22/end_frame=0 127 | animation/clip_22/loops=false 128 | animation/clip_23/name="" 129 | animation/clip_23/start_frame=0 130 | animation/clip_23/end_frame=0 131 | animation/clip_23/loops=false 132 | animation/clip_24/name="" 133 | animation/clip_24/start_frame=0 134 | animation/clip_24/end_frame=0 135 | animation/clip_24/loops=false 136 | animation/clip_25/name="" 137 | animation/clip_25/start_frame=0 138 | animation/clip_25/end_frame=0 139 | animation/clip_25/loops=false 140 | animation/clip_26/name="" 141 | animation/clip_26/start_frame=0 142 | animation/clip_26/end_frame=0 143 | animation/clip_26/loops=false 144 | animation/clip_27/name="" 145 | animation/clip_27/start_frame=0 146 | animation/clip_27/end_frame=0 147 | animation/clip_27/loops=false 148 | animation/clip_28/name="" 149 | animation/clip_28/start_frame=0 150 | animation/clip_28/end_frame=0 151 | animation/clip_28/loops=false 152 | animation/clip_29/name="" 153 | animation/clip_29/start_frame=0 154 | animation/clip_29/end_frame=0 155 | animation/clip_29/loops=false 156 | animation/clip_30/name="" 157 | animation/clip_30/start_frame=0 158 | animation/clip_30/end_frame=0 159 | animation/clip_30/loops=false 160 | animation/clip_31/name="" 161 | animation/clip_31/start_frame=0 162 | animation/clip_31/end_frame=0 163 | animation/clip_31/loops=false 164 | animation/clip_32/name="" 165 | animation/clip_32/start_frame=0 166 | animation/clip_32/end_frame=0 167 | animation/clip_32/loops=false 168 | animation/clip_33/name="" 169 | animation/clip_33/start_frame=0 170 | animation/clip_33/end_frame=0 171 | animation/clip_33/loops=false 172 | animation/clip_34/name="" 173 | animation/clip_34/start_frame=0 174 | animation/clip_34/end_frame=0 175 | animation/clip_34/loops=false 176 | animation/clip_35/name="" 177 | animation/clip_35/start_frame=0 178 | animation/clip_35/end_frame=0 179 | animation/clip_35/loops=false 180 | animation/clip_36/name="" 181 | animation/clip_36/start_frame=0 182 | animation/clip_36/end_frame=0 183 | animation/clip_36/loops=false 184 | animation/clip_37/name="" 185 | animation/clip_37/start_frame=0 186 | animation/clip_37/end_frame=0 187 | animation/clip_37/loops=false 188 | animation/clip_38/name="" 189 | animation/clip_38/start_frame=0 190 | animation/clip_38/end_frame=0 191 | animation/clip_38/loops=false 192 | animation/clip_39/name="" 193 | animation/clip_39/start_frame=0 194 | animation/clip_39/end_frame=0 195 | animation/clip_39/loops=false 196 | animation/clip_40/name="" 197 | animation/clip_40/start_frame=0 198 | animation/clip_40/end_frame=0 199 | animation/clip_40/loops=false 200 | animation/clip_41/name="" 201 | animation/clip_41/start_frame=0 202 | animation/clip_41/end_frame=0 203 | animation/clip_41/loops=false 204 | animation/clip_42/name="" 205 | animation/clip_42/start_frame=0 206 | animation/clip_42/end_frame=0 207 | animation/clip_42/loops=false 208 | animation/clip_43/name="" 209 | animation/clip_43/start_frame=0 210 | animation/clip_43/end_frame=0 211 | animation/clip_43/loops=false 212 | animation/clip_44/name="" 213 | animation/clip_44/start_frame=0 214 | animation/clip_44/end_frame=0 215 | animation/clip_44/loops=false 216 | animation/clip_45/name="" 217 | animation/clip_45/start_frame=0 218 | animation/clip_45/end_frame=0 219 | animation/clip_45/loops=false 220 | animation/clip_46/name="" 221 | animation/clip_46/start_frame=0 222 | animation/clip_46/end_frame=0 223 | animation/clip_46/loops=false 224 | animation/clip_47/name="" 225 | animation/clip_47/start_frame=0 226 | animation/clip_47/end_frame=0 227 | animation/clip_47/loops=false 228 | animation/clip_48/name="" 229 | animation/clip_48/start_frame=0 230 | animation/clip_48/end_frame=0 231 | animation/clip_48/loops=false 232 | animation/clip_49/name="" 233 | animation/clip_49/start_frame=0 234 | animation/clip_49/end_frame=0 235 | animation/clip_49/loops=false 236 | animation/clip_50/name="" 237 | animation/clip_50/start_frame=0 238 | animation/clip_50/end_frame=0 239 | animation/clip_50/loops=false 240 | animation/clip_51/name="" 241 | animation/clip_51/start_frame=0 242 | animation/clip_51/end_frame=0 243 | animation/clip_51/loops=false 244 | animation/clip_52/name="" 245 | animation/clip_52/start_frame=0 246 | animation/clip_52/end_frame=0 247 | animation/clip_52/loops=false 248 | animation/clip_53/name="" 249 | animation/clip_53/start_frame=0 250 | animation/clip_53/end_frame=0 251 | animation/clip_53/loops=false 252 | animation/clip_54/name="" 253 | animation/clip_54/start_frame=0 254 | animation/clip_54/end_frame=0 255 | animation/clip_54/loops=false 256 | animation/clip_55/name="" 257 | animation/clip_55/start_frame=0 258 | animation/clip_55/end_frame=0 259 | animation/clip_55/loops=false 260 | animation/clip_56/name="" 261 | animation/clip_56/start_frame=0 262 | animation/clip_56/end_frame=0 263 | animation/clip_56/loops=false 264 | animation/clip_57/name="" 265 | animation/clip_57/start_frame=0 266 | animation/clip_57/end_frame=0 267 | animation/clip_57/loops=false 268 | animation/clip_58/name="" 269 | animation/clip_58/start_frame=0 270 | animation/clip_58/end_frame=0 271 | animation/clip_58/loops=false 272 | animation/clip_59/name="" 273 | animation/clip_59/start_frame=0 274 | animation/clip_59/end_frame=0 275 | animation/clip_59/loops=false 276 | animation/clip_60/name="" 277 | animation/clip_60/start_frame=0 278 | animation/clip_60/end_frame=0 279 | animation/clip_60/loops=false 280 | animation/clip_61/name="" 281 | animation/clip_61/start_frame=0 282 | animation/clip_61/end_frame=0 283 | animation/clip_61/loops=false 284 | animation/clip_62/name="" 285 | animation/clip_62/start_frame=0 286 | animation/clip_62/end_frame=0 287 | animation/clip_62/loops=false 288 | animation/clip_63/name="" 289 | animation/clip_63/start_frame=0 290 | animation/clip_63/end_frame=0 291 | animation/clip_63/loops=false 292 | animation/clip_64/name="" 293 | animation/clip_64/start_frame=0 294 | animation/clip_64/end_frame=0 295 | animation/clip_64/loops=false 296 | animation/clip_65/name="" 297 | animation/clip_65/start_frame=0 298 | animation/clip_65/end_frame=0 299 | animation/clip_65/loops=false 300 | animation/clip_66/name="" 301 | animation/clip_66/start_frame=0 302 | animation/clip_66/end_frame=0 303 | animation/clip_66/loops=false 304 | animation/clip_67/name="" 305 | animation/clip_67/start_frame=0 306 | animation/clip_67/end_frame=0 307 | animation/clip_67/loops=false 308 | animation/clip_68/name="" 309 | animation/clip_68/start_frame=0 310 | animation/clip_68/end_frame=0 311 | animation/clip_68/loops=false 312 | animation/clip_69/name="" 313 | animation/clip_69/start_frame=0 314 | animation/clip_69/end_frame=0 315 | animation/clip_69/loops=false 316 | animation/clip_70/name="" 317 | animation/clip_70/start_frame=0 318 | animation/clip_70/end_frame=0 319 | animation/clip_70/loops=false 320 | animation/clip_71/name="" 321 | animation/clip_71/start_frame=0 322 | animation/clip_71/end_frame=0 323 | animation/clip_71/loops=false 324 | animation/clip_72/name="" 325 | animation/clip_72/start_frame=0 326 | animation/clip_72/end_frame=0 327 | animation/clip_72/loops=false 328 | animation/clip_73/name="" 329 | animation/clip_73/start_frame=0 330 | animation/clip_73/end_frame=0 331 | animation/clip_73/loops=false 332 | animation/clip_74/name="" 333 | animation/clip_74/start_frame=0 334 | animation/clip_74/end_frame=0 335 | animation/clip_74/loops=false 336 | animation/clip_75/name="" 337 | animation/clip_75/start_frame=0 338 | animation/clip_75/end_frame=0 339 | animation/clip_75/loops=false 340 | animation/clip_76/name="" 341 | animation/clip_76/start_frame=0 342 | animation/clip_76/end_frame=0 343 | animation/clip_76/loops=false 344 | animation/clip_77/name="" 345 | animation/clip_77/start_frame=0 346 | animation/clip_77/end_frame=0 347 | animation/clip_77/loops=false 348 | animation/clip_78/name="" 349 | animation/clip_78/start_frame=0 350 | animation/clip_78/end_frame=0 351 | animation/clip_78/loops=false 352 | animation/clip_79/name="" 353 | animation/clip_79/start_frame=0 354 | animation/clip_79/end_frame=0 355 | animation/clip_79/loops=false 356 | animation/clip_80/name="" 357 | animation/clip_80/start_frame=0 358 | animation/clip_80/end_frame=0 359 | animation/clip_80/loops=false 360 | animation/clip_81/name="" 361 | animation/clip_81/start_frame=0 362 | animation/clip_81/end_frame=0 363 | animation/clip_81/loops=false 364 | animation/clip_82/name="" 365 | animation/clip_82/start_frame=0 366 | animation/clip_82/end_frame=0 367 | animation/clip_82/loops=false 368 | animation/clip_83/name="" 369 | animation/clip_83/start_frame=0 370 | animation/clip_83/end_frame=0 371 | animation/clip_83/loops=false 372 | animation/clip_84/name="" 373 | animation/clip_84/start_frame=0 374 | animation/clip_84/end_frame=0 375 | animation/clip_84/loops=false 376 | animation/clip_85/name="" 377 | animation/clip_85/start_frame=0 378 | animation/clip_85/end_frame=0 379 | animation/clip_85/loops=false 380 | animation/clip_86/name="" 381 | animation/clip_86/start_frame=0 382 | animation/clip_86/end_frame=0 383 | animation/clip_86/loops=false 384 | animation/clip_87/name="" 385 | animation/clip_87/start_frame=0 386 | animation/clip_87/end_frame=0 387 | animation/clip_87/loops=false 388 | animation/clip_88/name="" 389 | animation/clip_88/start_frame=0 390 | animation/clip_88/end_frame=0 391 | animation/clip_88/loops=false 392 | animation/clip_89/name="" 393 | animation/clip_89/start_frame=0 394 | animation/clip_89/end_frame=0 395 | animation/clip_89/loops=false 396 | animation/clip_90/name="" 397 | animation/clip_90/start_frame=0 398 | animation/clip_90/end_frame=0 399 | animation/clip_90/loops=false 400 | animation/clip_91/name="" 401 | animation/clip_91/start_frame=0 402 | animation/clip_91/end_frame=0 403 | animation/clip_91/loops=false 404 | animation/clip_92/name="" 405 | animation/clip_92/start_frame=0 406 | animation/clip_92/end_frame=0 407 | animation/clip_92/loops=false 408 | animation/clip_93/name="" 409 | animation/clip_93/start_frame=0 410 | animation/clip_93/end_frame=0 411 | animation/clip_93/loops=false 412 | animation/clip_94/name="" 413 | animation/clip_94/start_frame=0 414 | animation/clip_94/end_frame=0 415 | animation/clip_94/loops=false 416 | animation/clip_95/name="" 417 | animation/clip_95/start_frame=0 418 | animation/clip_95/end_frame=0 419 | animation/clip_95/loops=false 420 | animation/clip_96/name="" 421 | animation/clip_96/start_frame=0 422 | animation/clip_96/end_frame=0 423 | animation/clip_96/loops=false 424 | animation/clip_97/name="" 425 | animation/clip_97/start_frame=0 426 | animation/clip_97/end_frame=0 427 | animation/clip_97/loops=false 428 | animation/clip_98/name="" 429 | animation/clip_98/start_frame=0 430 | animation/clip_98/end_frame=0 431 | animation/clip_98/loops=false 432 | animation/clip_99/name="" 433 | animation/clip_99/start_frame=0 434 | animation/clip_99/end_frame=0 435 | animation/clip_99/loops=false 436 | animation/clip_100/name="" 437 | animation/clip_100/start_frame=0 438 | animation/clip_100/end_frame=0 439 | animation/clip_100/loops=false 440 | animation/clip_101/name="" 441 | animation/clip_101/start_frame=0 442 | animation/clip_101/end_frame=0 443 | animation/clip_101/loops=false 444 | animation/clip_102/name="" 445 | animation/clip_102/start_frame=0 446 | animation/clip_102/end_frame=0 447 | animation/clip_102/loops=false 448 | animation/clip_103/name="" 449 | animation/clip_103/start_frame=0 450 | animation/clip_103/end_frame=0 451 | animation/clip_103/loops=false 452 | animation/clip_104/name="" 453 | animation/clip_104/start_frame=0 454 | animation/clip_104/end_frame=0 455 | animation/clip_104/loops=false 456 | animation/clip_105/name="" 457 | animation/clip_105/start_frame=0 458 | animation/clip_105/end_frame=0 459 | animation/clip_105/loops=false 460 | animation/clip_106/name="" 461 | animation/clip_106/start_frame=0 462 | animation/clip_106/end_frame=0 463 | animation/clip_106/loops=false 464 | animation/clip_107/name="" 465 | animation/clip_107/start_frame=0 466 | animation/clip_107/end_frame=0 467 | animation/clip_107/loops=false 468 | animation/clip_108/name="" 469 | animation/clip_108/start_frame=0 470 | animation/clip_108/end_frame=0 471 | animation/clip_108/loops=false 472 | animation/clip_109/name="" 473 | animation/clip_109/start_frame=0 474 | animation/clip_109/end_frame=0 475 | animation/clip_109/loops=false 476 | animation/clip_110/name="" 477 | animation/clip_110/start_frame=0 478 | animation/clip_110/end_frame=0 479 | animation/clip_110/loops=false 480 | animation/clip_111/name="" 481 | animation/clip_111/start_frame=0 482 | animation/clip_111/end_frame=0 483 | animation/clip_111/loops=false 484 | animation/clip_112/name="" 485 | animation/clip_112/start_frame=0 486 | animation/clip_112/end_frame=0 487 | animation/clip_112/loops=false 488 | animation/clip_113/name="" 489 | animation/clip_113/start_frame=0 490 | animation/clip_113/end_frame=0 491 | animation/clip_113/loops=false 492 | animation/clip_114/name="" 493 | animation/clip_114/start_frame=0 494 | animation/clip_114/end_frame=0 495 | animation/clip_114/loops=false 496 | animation/clip_115/name="" 497 | animation/clip_115/start_frame=0 498 | animation/clip_115/end_frame=0 499 | animation/clip_115/loops=false 500 | animation/clip_116/name="" 501 | animation/clip_116/start_frame=0 502 | animation/clip_116/end_frame=0 503 | animation/clip_116/loops=false 504 | animation/clip_117/name="" 505 | animation/clip_117/start_frame=0 506 | animation/clip_117/end_frame=0 507 | animation/clip_117/loops=false 508 | animation/clip_118/name="" 509 | animation/clip_118/start_frame=0 510 | animation/clip_118/end_frame=0 511 | animation/clip_118/loops=false 512 | animation/clip_119/name="" 513 | animation/clip_119/start_frame=0 514 | animation/clip_119/end_frame=0 515 | animation/clip_119/loops=false 516 | animation/clip_120/name="" 517 | animation/clip_120/start_frame=0 518 | animation/clip_120/end_frame=0 519 | animation/clip_120/loops=false 520 | animation/clip_121/name="" 521 | animation/clip_121/start_frame=0 522 | animation/clip_121/end_frame=0 523 | animation/clip_121/loops=false 524 | animation/clip_122/name="" 525 | animation/clip_122/start_frame=0 526 | animation/clip_122/end_frame=0 527 | animation/clip_122/loops=false 528 | animation/clip_123/name="" 529 | animation/clip_123/start_frame=0 530 | animation/clip_123/end_frame=0 531 | animation/clip_123/loops=false 532 | animation/clip_124/name="" 533 | animation/clip_124/start_frame=0 534 | animation/clip_124/end_frame=0 535 | animation/clip_124/loops=false 536 | animation/clip_125/name="" 537 | animation/clip_125/start_frame=0 538 | animation/clip_125/end_frame=0 539 | animation/clip_125/loops=false 540 | animation/clip_126/name="" 541 | animation/clip_126/start_frame=0 542 | animation/clip_126/end_frame=0 543 | animation/clip_126/loops=false 544 | animation/clip_127/name="" 545 | animation/clip_127/start_frame=0 546 | animation/clip_127/end_frame=0 547 | animation/clip_127/loops=false 548 | animation/clip_128/name="" 549 | animation/clip_128/start_frame=0 550 | animation/clip_128/end_frame=0 551 | animation/clip_128/loops=false 552 | animation/clip_129/name="" 553 | animation/clip_129/start_frame=0 554 | animation/clip_129/end_frame=0 555 | animation/clip_129/loops=false 556 | animation/clip_130/name="" 557 | animation/clip_130/start_frame=0 558 | animation/clip_130/end_frame=0 559 | animation/clip_130/loops=false 560 | animation/clip_131/name="" 561 | animation/clip_131/start_frame=0 562 | animation/clip_131/end_frame=0 563 | animation/clip_131/loops=false 564 | animation/clip_132/name="" 565 | animation/clip_132/start_frame=0 566 | animation/clip_132/end_frame=0 567 | animation/clip_132/loops=false 568 | animation/clip_133/name="" 569 | animation/clip_133/start_frame=0 570 | animation/clip_133/end_frame=0 571 | animation/clip_133/loops=false 572 | animation/clip_134/name="" 573 | animation/clip_134/start_frame=0 574 | animation/clip_134/end_frame=0 575 | animation/clip_134/loops=false 576 | animation/clip_135/name="" 577 | animation/clip_135/start_frame=0 578 | animation/clip_135/end_frame=0 579 | animation/clip_135/loops=false 580 | animation/clip_136/name="" 581 | animation/clip_136/start_frame=0 582 | animation/clip_136/end_frame=0 583 | animation/clip_136/loops=false 584 | animation/clip_137/name="" 585 | animation/clip_137/start_frame=0 586 | animation/clip_137/end_frame=0 587 | animation/clip_137/loops=false 588 | animation/clip_138/name="" 589 | animation/clip_138/start_frame=0 590 | animation/clip_138/end_frame=0 591 | animation/clip_138/loops=false 592 | animation/clip_139/name="" 593 | animation/clip_139/start_frame=0 594 | animation/clip_139/end_frame=0 595 | animation/clip_139/loops=false 596 | animation/clip_140/name="" 597 | animation/clip_140/start_frame=0 598 | animation/clip_140/end_frame=0 599 | animation/clip_140/loops=false 600 | animation/clip_141/name="" 601 | animation/clip_141/start_frame=0 602 | animation/clip_141/end_frame=0 603 | animation/clip_141/loops=false 604 | animation/clip_142/name="" 605 | animation/clip_142/start_frame=0 606 | animation/clip_142/end_frame=0 607 | animation/clip_142/loops=false 608 | animation/clip_143/name="" 609 | animation/clip_143/start_frame=0 610 | animation/clip_143/end_frame=0 611 | animation/clip_143/loops=false 612 | animation/clip_144/name="" 613 | animation/clip_144/start_frame=0 614 | animation/clip_144/end_frame=0 615 | animation/clip_144/loops=false 616 | animation/clip_145/name="" 617 | animation/clip_145/start_frame=0 618 | animation/clip_145/end_frame=0 619 | animation/clip_145/loops=false 620 | animation/clip_146/name="" 621 | animation/clip_146/start_frame=0 622 | animation/clip_146/end_frame=0 623 | animation/clip_146/loops=false 624 | animation/clip_147/name="" 625 | animation/clip_147/start_frame=0 626 | animation/clip_147/end_frame=0 627 | animation/clip_147/loops=false 628 | animation/clip_148/name="" 629 | animation/clip_148/start_frame=0 630 | animation/clip_148/end_frame=0 631 | animation/clip_148/loops=false 632 | animation/clip_149/name="" 633 | animation/clip_149/start_frame=0 634 | animation/clip_149/end_frame=0 635 | animation/clip_149/loops=false 636 | animation/clip_150/name="" 637 | animation/clip_150/start_frame=0 638 | animation/clip_150/end_frame=0 639 | animation/clip_150/loops=false 640 | animation/clip_151/name="" 641 | animation/clip_151/start_frame=0 642 | animation/clip_151/end_frame=0 643 | animation/clip_151/loops=false 644 | animation/clip_152/name="" 645 | animation/clip_152/start_frame=0 646 | animation/clip_152/end_frame=0 647 | animation/clip_152/loops=false 648 | animation/clip_153/name="" 649 | animation/clip_153/start_frame=0 650 | animation/clip_153/end_frame=0 651 | animation/clip_153/loops=false 652 | animation/clip_154/name="" 653 | animation/clip_154/start_frame=0 654 | animation/clip_154/end_frame=0 655 | animation/clip_154/loops=false 656 | animation/clip_155/name="" 657 | animation/clip_155/start_frame=0 658 | animation/clip_155/end_frame=0 659 | animation/clip_155/loops=false 660 | animation/clip_156/name="" 661 | animation/clip_156/start_frame=0 662 | animation/clip_156/end_frame=0 663 | animation/clip_156/loops=false 664 | animation/clip_157/name="" 665 | animation/clip_157/start_frame=0 666 | animation/clip_157/end_frame=0 667 | animation/clip_157/loops=false 668 | animation/clip_158/name="" 669 | animation/clip_158/start_frame=0 670 | animation/clip_158/end_frame=0 671 | animation/clip_158/loops=false 672 | animation/clip_159/name="" 673 | animation/clip_159/start_frame=0 674 | animation/clip_159/end_frame=0 675 | animation/clip_159/loops=false 676 | animation/clip_160/name="" 677 | animation/clip_160/start_frame=0 678 | animation/clip_160/end_frame=0 679 | animation/clip_160/loops=false 680 | animation/clip_161/name="" 681 | animation/clip_161/start_frame=0 682 | animation/clip_161/end_frame=0 683 | animation/clip_161/loops=false 684 | animation/clip_162/name="" 685 | animation/clip_162/start_frame=0 686 | animation/clip_162/end_frame=0 687 | animation/clip_162/loops=false 688 | animation/clip_163/name="" 689 | animation/clip_163/start_frame=0 690 | animation/clip_163/end_frame=0 691 | animation/clip_163/loops=false 692 | animation/clip_164/name="" 693 | animation/clip_164/start_frame=0 694 | animation/clip_164/end_frame=0 695 | animation/clip_164/loops=false 696 | animation/clip_165/name="" 697 | animation/clip_165/start_frame=0 698 | animation/clip_165/end_frame=0 699 | animation/clip_165/loops=false 700 | animation/clip_166/name="" 701 | animation/clip_166/start_frame=0 702 | animation/clip_166/end_frame=0 703 | animation/clip_166/loops=false 704 | animation/clip_167/name="" 705 | animation/clip_167/start_frame=0 706 | animation/clip_167/end_frame=0 707 | animation/clip_167/loops=false 708 | animation/clip_168/name="" 709 | animation/clip_168/start_frame=0 710 | animation/clip_168/end_frame=0 711 | animation/clip_168/loops=false 712 | animation/clip_169/name="" 713 | animation/clip_169/start_frame=0 714 | animation/clip_169/end_frame=0 715 | animation/clip_169/loops=false 716 | animation/clip_170/name="" 717 | animation/clip_170/start_frame=0 718 | animation/clip_170/end_frame=0 719 | animation/clip_170/loops=false 720 | animation/clip_171/name="" 721 | animation/clip_171/start_frame=0 722 | animation/clip_171/end_frame=0 723 | animation/clip_171/loops=false 724 | animation/clip_172/name="" 725 | animation/clip_172/start_frame=0 726 | animation/clip_172/end_frame=0 727 | animation/clip_172/loops=false 728 | animation/clip_173/name="" 729 | animation/clip_173/start_frame=0 730 | animation/clip_173/end_frame=0 731 | animation/clip_173/loops=false 732 | animation/clip_174/name="" 733 | animation/clip_174/start_frame=0 734 | animation/clip_174/end_frame=0 735 | animation/clip_174/loops=false 736 | animation/clip_175/name="" 737 | animation/clip_175/start_frame=0 738 | animation/clip_175/end_frame=0 739 | animation/clip_175/loops=false 740 | animation/clip_176/name="" 741 | animation/clip_176/start_frame=0 742 | animation/clip_176/end_frame=0 743 | animation/clip_176/loops=false 744 | animation/clip_177/name="" 745 | animation/clip_177/start_frame=0 746 | animation/clip_177/end_frame=0 747 | animation/clip_177/loops=false 748 | animation/clip_178/name="" 749 | animation/clip_178/start_frame=0 750 | animation/clip_178/end_frame=0 751 | animation/clip_178/loops=false 752 | animation/clip_179/name="" 753 | animation/clip_179/start_frame=0 754 | animation/clip_179/end_frame=0 755 | animation/clip_179/loops=false 756 | animation/clip_180/name="" 757 | animation/clip_180/start_frame=0 758 | animation/clip_180/end_frame=0 759 | animation/clip_180/loops=false 760 | animation/clip_181/name="" 761 | animation/clip_181/start_frame=0 762 | animation/clip_181/end_frame=0 763 | animation/clip_181/loops=false 764 | animation/clip_182/name="" 765 | animation/clip_182/start_frame=0 766 | animation/clip_182/end_frame=0 767 | animation/clip_182/loops=false 768 | animation/clip_183/name="" 769 | animation/clip_183/start_frame=0 770 | animation/clip_183/end_frame=0 771 | animation/clip_183/loops=false 772 | animation/clip_184/name="" 773 | animation/clip_184/start_frame=0 774 | animation/clip_184/end_frame=0 775 | animation/clip_184/loops=false 776 | animation/clip_185/name="" 777 | animation/clip_185/start_frame=0 778 | animation/clip_185/end_frame=0 779 | animation/clip_185/loops=false 780 | animation/clip_186/name="" 781 | animation/clip_186/start_frame=0 782 | animation/clip_186/end_frame=0 783 | animation/clip_186/loops=false 784 | animation/clip_187/name="" 785 | animation/clip_187/start_frame=0 786 | animation/clip_187/end_frame=0 787 | animation/clip_187/loops=false 788 | animation/clip_188/name="" 789 | animation/clip_188/start_frame=0 790 | animation/clip_188/end_frame=0 791 | animation/clip_188/loops=false 792 | animation/clip_189/name="" 793 | animation/clip_189/start_frame=0 794 | animation/clip_189/end_frame=0 795 | animation/clip_189/loops=false 796 | animation/clip_190/name="" 797 | animation/clip_190/start_frame=0 798 | animation/clip_190/end_frame=0 799 | animation/clip_190/loops=false 800 | animation/clip_191/name="" 801 | animation/clip_191/start_frame=0 802 | animation/clip_191/end_frame=0 803 | animation/clip_191/loops=false 804 | animation/clip_192/name="" 805 | animation/clip_192/start_frame=0 806 | animation/clip_192/end_frame=0 807 | animation/clip_192/loops=false 808 | animation/clip_193/name="" 809 | animation/clip_193/start_frame=0 810 | animation/clip_193/end_frame=0 811 | animation/clip_193/loops=false 812 | animation/clip_194/name="" 813 | animation/clip_194/start_frame=0 814 | animation/clip_194/end_frame=0 815 | animation/clip_194/loops=false 816 | animation/clip_195/name="" 817 | animation/clip_195/start_frame=0 818 | animation/clip_195/end_frame=0 819 | animation/clip_195/loops=false 820 | animation/clip_196/name="" 821 | animation/clip_196/start_frame=0 822 | animation/clip_196/end_frame=0 823 | animation/clip_196/loops=false 824 | animation/clip_197/name="" 825 | animation/clip_197/start_frame=0 826 | animation/clip_197/end_frame=0 827 | animation/clip_197/loops=false 828 | animation/clip_198/name="" 829 | animation/clip_198/start_frame=0 830 | animation/clip_198/end_frame=0 831 | animation/clip_198/loops=false 832 | animation/clip_199/name="" 833 | animation/clip_199/start_frame=0 834 | animation/clip_199/end_frame=0 835 | animation/clip_199/loops=false 836 | animation/clip_200/name="" 837 | animation/clip_200/start_frame=0 838 | animation/clip_200/end_frame=0 839 | animation/clip_200/loops=false 840 | animation/clip_201/name="" 841 | animation/clip_201/start_frame=0 842 | animation/clip_201/end_frame=0 843 | animation/clip_201/loops=false 844 | animation/clip_202/name="" 845 | animation/clip_202/start_frame=0 846 | animation/clip_202/end_frame=0 847 | animation/clip_202/loops=false 848 | animation/clip_203/name="" 849 | animation/clip_203/start_frame=0 850 | animation/clip_203/end_frame=0 851 | animation/clip_203/loops=false 852 | animation/clip_204/name="" 853 | animation/clip_204/start_frame=0 854 | animation/clip_204/end_frame=0 855 | animation/clip_204/loops=false 856 | animation/clip_205/name="" 857 | animation/clip_205/start_frame=0 858 | animation/clip_205/end_frame=0 859 | animation/clip_205/loops=false 860 | animation/clip_206/name="" 861 | animation/clip_206/start_frame=0 862 | animation/clip_206/end_frame=0 863 | animation/clip_206/loops=false 864 | animation/clip_207/name="" 865 | animation/clip_207/start_frame=0 866 | animation/clip_207/end_frame=0 867 | animation/clip_207/loops=false 868 | animation/clip_208/name="" 869 | animation/clip_208/start_frame=0 870 | animation/clip_208/end_frame=0 871 | animation/clip_208/loops=false 872 | animation/clip_209/name="" 873 | animation/clip_209/start_frame=0 874 | animation/clip_209/end_frame=0 875 | animation/clip_209/loops=false 876 | animation/clip_210/name="" 877 | animation/clip_210/start_frame=0 878 | animation/clip_210/end_frame=0 879 | animation/clip_210/loops=false 880 | animation/clip_211/name="" 881 | animation/clip_211/start_frame=0 882 | animation/clip_211/end_frame=0 883 | animation/clip_211/loops=false 884 | animation/clip_212/name="" 885 | animation/clip_212/start_frame=0 886 | animation/clip_212/end_frame=0 887 | animation/clip_212/loops=false 888 | animation/clip_213/name="" 889 | animation/clip_213/start_frame=0 890 | animation/clip_213/end_frame=0 891 | animation/clip_213/loops=false 892 | animation/clip_214/name="" 893 | animation/clip_214/start_frame=0 894 | animation/clip_214/end_frame=0 895 | animation/clip_214/loops=false 896 | animation/clip_215/name="" 897 | animation/clip_215/start_frame=0 898 | animation/clip_215/end_frame=0 899 | animation/clip_215/loops=false 900 | animation/clip_216/name="" 901 | animation/clip_216/start_frame=0 902 | animation/clip_216/end_frame=0 903 | animation/clip_216/loops=false 904 | animation/clip_217/name="" 905 | animation/clip_217/start_frame=0 906 | animation/clip_217/end_frame=0 907 | animation/clip_217/loops=false 908 | animation/clip_218/name="" 909 | animation/clip_218/start_frame=0 910 | animation/clip_218/end_frame=0 911 | animation/clip_218/loops=false 912 | animation/clip_219/name="" 913 | animation/clip_219/start_frame=0 914 | animation/clip_219/end_frame=0 915 | animation/clip_219/loops=false 916 | animation/clip_220/name="" 917 | animation/clip_220/start_frame=0 918 | animation/clip_220/end_frame=0 919 | animation/clip_220/loops=false 920 | animation/clip_221/name="" 921 | animation/clip_221/start_frame=0 922 | animation/clip_221/end_frame=0 923 | animation/clip_221/loops=false 924 | animation/clip_222/name="" 925 | animation/clip_222/start_frame=0 926 | animation/clip_222/end_frame=0 927 | animation/clip_222/loops=false 928 | animation/clip_223/name="" 929 | animation/clip_223/start_frame=0 930 | animation/clip_223/end_frame=0 931 | animation/clip_223/loops=false 932 | animation/clip_224/name="" 933 | animation/clip_224/start_frame=0 934 | animation/clip_224/end_frame=0 935 | animation/clip_224/loops=false 936 | animation/clip_225/name="" 937 | animation/clip_225/start_frame=0 938 | animation/clip_225/end_frame=0 939 | animation/clip_225/loops=false 940 | animation/clip_226/name="" 941 | animation/clip_226/start_frame=0 942 | animation/clip_226/end_frame=0 943 | animation/clip_226/loops=false 944 | animation/clip_227/name="" 945 | animation/clip_227/start_frame=0 946 | animation/clip_227/end_frame=0 947 | animation/clip_227/loops=false 948 | animation/clip_228/name="" 949 | animation/clip_228/start_frame=0 950 | animation/clip_228/end_frame=0 951 | animation/clip_228/loops=false 952 | animation/clip_229/name="" 953 | animation/clip_229/start_frame=0 954 | animation/clip_229/end_frame=0 955 | animation/clip_229/loops=false 956 | animation/clip_230/name="" 957 | animation/clip_230/start_frame=0 958 | animation/clip_230/end_frame=0 959 | animation/clip_230/loops=false 960 | animation/clip_231/name="" 961 | animation/clip_231/start_frame=0 962 | animation/clip_231/end_frame=0 963 | animation/clip_231/loops=false 964 | animation/clip_232/name="" 965 | animation/clip_232/start_frame=0 966 | animation/clip_232/end_frame=0 967 | animation/clip_232/loops=false 968 | animation/clip_233/name="" 969 | animation/clip_233/start_frame=0 970 | animation/clip_233/end_frame=0 971 | animation/clip_233/loops=false 972 | animation/clip_234/name="" 973 | animation/clip_234/start_frame=0 974 | animation/clip_234/end_frame=0 975 | animation/clip_234/loops=false 976 | animation/clip_235/name="" 977 | animation/clip_235/start_frame=0 978 | animation/clip_235/end_frame=0 979 | animation/clip_235/loops=false 980 | animation/clip_236/name="" 981 | animation/clip_236/start_frame=0 982 | animation/clip_236/end_frame=0 983 | animation/clip_236/loops=false 984 | animation/clip_237/name="" 985 | animation/clip_237/start_frame=0 986 | animation/clip_237/end_frame=0 987 | animation/clip_237/loops=false 988 | animation/clip_238/name="" 989 | animation/clip_238/start_frame=0 990 | animation/clip_238/end_frame=0 991 | animation/clip_238/loops=false 992 | animation/clip_239/name="" 993 | animation/clip_239/start_frame=0 994 | animation/clip_239/end_frame=0 995 | animation/clip_239/loops=false 996 | animation/clip_240/name="" 997 | animation/clip_240/start_frame=0 998 | animation/clip_240/end_frame=0 999 | animation/clip_240/loops=false 1000 | animation/clip_241/name="" 1001 | animation/clip_241/start_frame=0 1002 | animation/clip_241/end_frame=0 1003 | animation/clip_241/loops=false 1004 | animation/clip_242/name="" 1005 | animation/clip_242/start_frame=0 1006 | animation/clip_242/end_frame=0 1007 | animation/clip_242/loops=false 1008 | animation/clip_243/name="" 1009 | animation/clip_243/start_frame=0 1010 | animation/clip_243/end_frame=0 1011 | animation/clip_243/loops=false 1012 | animation/clip_244/name="" 1013 | animation/clip_244/start_frame=0 1014 | animation/clip_244/end_frame=0 1015 | animation/clip_244/loops=false 1016 | animation/clip_245/name="" 1017 | animation/clip_245/start_frame=0 1018 | animation/clip_245/end_frame=0 1019 | animation/clip_245/loops=false 1020 | animation/clip_246/name="" 1021 | animation/clip_246/start_frame=0 1022 | animation/clip_246/end_frame=0 1023 | animation/clip_246/loops=false 1024 | animation/clip_247/name="" 1025 | animation/clip_247/start_frame=0 1026 | animation/clip_247/end_frame=0 1027 | animation/clip_247/loops=false 1028 | animation/clip_248/name="" 1029 | animation/clip_248/start_frame=0 1030 | animation/clip_248/end_frame=0 1031 | animation/clip_248/loops=false 1032 | animation/clip_249/name="" 1033 | animation/clip_249/start_frame=0 1034 | animation/clip_249/end_frame=0 1035 | animation/clip_249/loops=false 1036 | animation/clip_250/name="" 1037 | animation/clip_250/start_frame=0 1038 | animation/clip_250/end_frame=0 1039 | animation/clip_250/loops=false 1040 | animation/clip_251/name="" 1041 | animation/clip_251/start_frame=0 1042 | animation/clip_251/end_frame=0 1043 | animation/clip_251/loops=false 1044 | animation/clip_252/name="" 1045 | animation/clip_252/start_frame=0 1046 | animation/clip_252/end_frame=0 1047 | animation/clip_252/loops=false 1048 | animation/clip_253/name="" 1049 | animation/clip_253/start_frame=0 1050 | animation/clip_253/end_frame=0 1051 | animation/clip_253/loops=false 1052 | animation/clip_254/name="" 1053 | animation/clip_254/start_frame=0 1054 | animation/clip_254/end_frame=0 1055 | animation/clip_254/loops=false 1056 | animation/clip_255/name="" 1057 | animation/clip_255/start_frame=0 1058 | animation/clip_255/end_frame=0 1059 | animation/clip_255/loops=false 1060 | animation/clip_256/name="" 1061 | animation/clip_256/start_frame=0 1062 | animation/clip_256/end_frame=0 1063 | animation/clip_256/loops=false 1064 | -------------------------------------------------------------------------------- /Assets/prototype/Cube_2M_Texture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codewithtom/godot-fps/5f31855858023ea19bf33b14af037b64e91876f7/Assets/prototype/Cube_2M_Texture.png -------------------------------------------------------------------------------- /Assets/prototype/Cube_2M_Texture.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="image" 4 | type="Image" 5 | path="res://.import/Cube_2M_Texture.png-2f84b8fdfe2045b40527695eee2dd13f.image" 6 | 7 | [deps] 8 | 9 | source_file="res://Assets/prototype/Cube_2M_Texture.png" 10 | dest_files=[ "res://.import/Cube_2M_Texture.png-2f84b8fdfe2045b40527695eee2dd13f.image" ] 11 | 12 | [params] 13 | 14 | -------------------------------------------------------------------------------- /Assets/prototype/crosshair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codewithtom/godot-fps/5f31855858023ea19bf33b14af037b64e91876f7/Assets/prototype/crosshair.png -------------------------------------------------------------------------------- /Assets/prototype/crosshair.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/crosshair.png-7c7d173bfbf22a36496c4d264fe4b8ac.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://Assets/prototype/crosshair.png" 13 | dest_files=[ "res://.import/crosshair.png-7c7d173bfbf22a36496c4d264fe4b8ac.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=false 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=16 33 | detect_3d=false 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /Enemy/Enemy.gd: -------------------------------------------------------------------------------- 1 | extends KinematicBody 2 | 3 | export var speed = 100 4 | var space_state 5 | var target 6 | 7 | func _ready(): 8 | space_state = get_world().direct_space_state 9 | 10 | func _process(delta): 11 | if target: 12 | var result = space_state.intersect_ray(global_transform.origin, target.global_transform.origin) 13 | if result.collider.is_in_group("Player"): 14 | look_at(target.global_transform.origin, Vector3.UP) 15 | set_color_red() 16 | move_to_target(delta) 17 | else: 18 | set_color_green() 19 | 20 | func _on_Area_body_entered(body): 21 | if body.is_in_group("Player"): 22 | target = body 23 | print(body.name + " entered") 24 | set_color_red() 25 | 26 | func _on_Area_body_exited(body): 27 | if body.is_in_group("Player"): 28 | target = null 29 | print(body.name + " exited") 30 | set_color_green() 31 | 32 | func move_to_target(delta): 33 | var direction = (target.transform.origin - transform.origin).normalized() 34 | move_and_slide(direction * speed * delta, Vector3.UP) 35 | 36 | func set_color_red(): 37 | $MeshInstance.get_surface_material(0).set_albedo(Color(1, 0, 0)) 38 | 39 | func set_color_green(): 40 | $MeshInstance.get_surface_material(0).set_albedo(Color(0, 1, 0)) 41 | -------------------------------------------------------------------------------- /Enemy/Enemy.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=6 format=2] 2 | 3 | [ext_resource path="res://Enemy/Enemy.gd" type="Script" id=1] 4 | 5 | [sub_resource type="CapsuleMesh" id=1] 6 | 7 | [sub_resource type="SpatialMaterial" id=2] 8 | albedo_color = Color( 0, 1, 0, 1 ) 9 | 10 | [sub_resource type="CubeMesh" id=3] 11 | 12 | [sub_resource type="CapsuleShape" id=4] 13 | 14 | [node name="Enemy" type="KinematicBody" groups=[ 15 | "Enemies", 16 | ]] 17 | script = ExtResource( 1 ) 18 | 19 | [node name="MeshInstance" type="MeshInstance" parent="."] 20 | transform = Transform( 1, 0, 0, 0, -1.62921e-07, -1, 0, 1, -1.62921e-07, 0, 0, 0 ) 21 | mesh = SubResource( 1 ) 22 | material/0 = SubResource( 2 ) 23 | 24 | [node name="MeshInstance2" type="MeshInstance" parent="."] 25 | transform = Transform( 0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.34, 0, 0.7, -1 ) 26 | mesh = SubResource( 3 ) 27 | material/0 = null 28 | 29 | [node name="CollisionShape" type="CollisionShape" parent="."] 30 | transform = Transform( 1, 0, 0, 0, -1.62921e-07, -1, 0, 1, -1.62921e-07, 0, 0, 0 ) 31 | shape = SubResource( 4 ) 32 | 33 | [node name="Area" type="Area" parent="."] 34 | transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, -1.1 ) 35 | 36 | [node name="CollisionPolygon" type="CollisionPolygon" parent="Area"] 37 | transform = Transform( 1, 0, 0, 0, -1.62921e-07, 1, 0, -1, -1.62921e-07, 0, 0, 0 ) 38 | polygon = PoolVector2Array( 0, 0, 15, 6, 15, -6 ) 39 | [connection signal="body_entered" from="Area" to="." method="_on_Area_body_entered"] 40 | [connection signal="body_exited" from="Area" to="." method="_on_Area_body_exited"] 41 | -------------------------------------------------------------------------------- /Interactable/Interactable.gd: -------------------------------------------------------------------------------- 1 | extends Node 2 | 3 | class_name Interactable 4 | 5 | func get_interaction_text(): 6 | return "Interact" 7 | 8 | func interact(): 9 | print("Interacted with %s" % name) -------------------------------------------------------------------------------- /Interactable/InteractableLightSwitch.gd: -------------------------------------------------------------------------------- 1 | extends Interactable 2 | 3 | export var light : NodePath 4 | export var on_by_default = true 5 | export var energy_when_on = 1 6 | export var energy_when_off = 0 7 | 8 | onready var light_node = get_node(light) 9 | onready var on = on_by_default 10 | 11 | func _ready(): 12 | set_light_energy() 13 | 14 | func get_interaction_text(): 15 | return "Switch Light Off" if on else "Switch Light On" 16 | 17 | func interact(): 18 | on = !on 19 | set_light_energy() 20 | 21 | func set_light_energy(): 22 | light_node.set_param(Light.PARAM_ENERGY, energy_when_on if on else energy_when_off) -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2019 Tom Glenn 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. 20 | -------------------------------------------------------------------------------- /Player/GunCamera.gd: -------------------------------------------------------------------------------- 1 | extends Camera 2 | 3 | export var camera_path : NodePath 4 | 5 | var camera : Camera 6 | 7 | func _ready(): 8 | camera = get_node(camera_path) 9 | 10 | func _process(delta): 11 | global_transform = camera.global_transform 12 | -------------------------------------------------------------------------------- /Player/Interaction.gd: -------------------------------------------------------------------------------- 1 | extends RayCast 2 | 3 | var current_collider 4 | 5 | onready var interaction_label = get_node("/root/World/UI/InteractionLabel") 6 | 7 | func _ready(): 8 | set_interaction_text("") 9 | 10 | func _process(delta): 11 | var collider = get_collider() 12 | 13 | if is_colliding() and collider is Interactable: 14 | if current_collider != collider: 15 | set_interaction_text(collider.get_interaction_text()) 16 | current_collider = collider 17 | 18 | if Input.is_action_just_pressed("Interact"): 19 | collider.interact() 20 | set_interaction_text(collider.get_interaction_text()) 21 | elif current_collider: 22 | current_collider = null 23 | set_interaction_text("") 24 | 25 | func set_interaction_text(text): 26 | if !text: 27 | interaction_label.set_text("") 28 | interaction_label.set_visible(false) 29 | else: 30 | var interact_key = OS.get_scancode_string(InputMap.get_action_list("Interact")[0].scancode) 31 | interaction_label.set_text("Press %s to %s" % [interact_key, text]) 32 | interaction_label.set_visible(true) -------------------------------------------------------------------------------- /Player/Player.gd: -------------------------------------------------------------------------------- 1 | extends KinematicBody 2 | 3 | export var speed = 10 4 | export var acceleration = 5 5 | export var gravity = 0.98 6 | export var jump_power = 30 7 | export var mouse_sensitivity = 10 8 | export var vertical_fov = 140 9 | export var focus_on_ready = true 10 | 11 | onready var head = $Head 12 | onready var camera = $Head/Camera 13 | 14 | var velocity = Vector3.ZERO 15 | var mouse_delta = Vector2.ZERO 16 | var camera_x_rotation = 0 17 | 18 | func _ready(): 19 | if focus_on_ready: 20 | Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) 21 | 22 | func _input(event): 23 | if event is InputEventMouseMotion: 24 | # Capture the mouse coordinates 25 | mouse_delta = event.relative 26 | 27 | func _process(delta): 28 | # Rotate camera 29 | if (Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED) and (mouse_delta.length() > 0): 30 | # Get rotation degrees 31 | var x_delta = -mouse_delta.x * mouse_sensitivity * delta 32 | var y_delta = -mouse_delta.y * mouse_sensitivity * delta 33 | var temp_rot = Vector3.ZERO 34 | 35 | # Rotate the camera 36 | mouse_delta = Vector2() 37 | head.rotate_y(deg2rad(x_delta)) 38 | camera.rotate_x(deg2rad(y_delta)) 39 | 40 | # Clamp to reasonable maximums 41 | temp_rot = camera.rotation_degrees 42 | temp_rot.x = clamp(temp_rot.x, -vertical_fov/2, vertical_fov/2) 43 | camera.rotation_degrees = temp_rot 44 | 45 | if Input.is_action_just_pressed("ui_cancel"): 46 | if Input.get_mouse_mode() == Input.MOUSE_MODE_VISIBLE: 47 | Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) 48 | else: 49 | Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE) 50 | 51 | if Input.is_action_just_pressed("primary_fire"): 52 | if Input.get_mouse_mode() == Input.MOUSE_MODE_VISIBLE: 53 | Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) 54 | 55 | func _physics_process(delta): 56 | var head_basis = head.get_global_transform().basis 57 | 58 | var direction = Vector3.ZERO 59 | if Input.is_action_pressed("move_forward"): 60 | direction -= head_basis.z 61 | elif Input.is_action_pressed("move_backward"): 62 | direction += head_basis.z 63 | 64 | if Input.is_action_pressed("move_left"): 65 | direction -= head_basis.x 66 | elif Input.is_action_pressed("move_right"): 67 | direction += head_basis.x 68 | 69 | direction = direction.normalized() 70 | 71 | velocity = velocity.linear_interpolate(direction * speed, acceleration * delta) 72 | velocity.y -= gravity 73 | 74 | if Input.is_action_just_pressed("jump") and is_on_floor(): 75 | velocity.y += jump_power 76 | 77 | velocity = move_and_slide(velocity, Vector3.UP) 78 | -------------------------------------------------------------------------------- /Player/Player.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=8 format=2] 2 | 3 | [ext_resource path="res://Player/Player.gd" type="Script" id=1] 4 | [ext_resource path="res://Player/Interaction.gd" type="Script" id=2] 5 | [ext_resource path="res://Player/Weapon.gd" type="Script" id=3] 6 | [ext_resource path="res://Player/GunCamera.gd" type="Script" id=4] 7 | [ext_resource path="res://Player/Weapons/gun.tscn" type="PackedScene" id=5] 8 | 9 | [sub_resource type="CapsuleShape" id=1] 10 | radius = 0.75 11 | height = 1.25 12 | 13 | [sub_resource type="CapsuleMesh" id=2] 14 | radius = 0.75 15 | mid_height = 1.25 16 | 17 | [node name="Player" type="KinematicBody" groups=[ 18 | "Player", 19 | ]] 20 | script = ExtResource( 1 ) 21 | 22 | [node name="Head" type="Spatial" parent="."] 23 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.919402, 0 ) 24 | 25 | [node name="Camera" type="Camera" parent="Head"] 26 | cull_mask = 1048573 27 | 28 | [node name="RayCast" type="RayCast" parent="Head/Camera"] 29 | enabled = true 30 | cast_to = Vector3( 0, 0, -100 ) 31 | 32 | [node name="InteractionRayCast" type="RayCast" parent="Head/Camera"] 33 | enabled = true 34 | cast_to = Vector3( 0, 0, -2 ) 35 | collision_mask = 2 36 | script = ExtResource( 2 ) 37 | 38 | [node name="Weapons" type="Spatial" parent="Head/Camera"] 39 | 40 | [node name="gun" parent="Head/Camera/Weapons" instance=ExtResource( 5 )] 41 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.288, -0.276, -0.229 ) 42 | script = ExtResource( 3 ) 43 | default_position = Vector3( 0.288, -0.276, -0.229 ) 44 | ads_position = Vector3( 0, -0.215, -0.134 ) 45 | raycast_path = NodePath("../../RayCast") 46 | camera_path = NodePath("../..") 47 | 48 | [node name="CollisionShape" type="CollisionShape" parent="."] 49 | transform = Transform( 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0 ) 50 | shape = SubResource( 1 ) 51 | 52 | [node name="MeshInstance" type="MeshInstance" parent="."] 53 | transform = Transform( 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0 ) 54 | mesh = SubResource( 2 ) 55 | material/0 = null 56 | 57 | [node name="ViewportContainer" type="ViewportContainer" parent="."] 58 | anchor_right = 1.0 59 | anchor_bottom = 1.0 60 | __meta__ = { 61 | "_edit_use_anchors_": false 62 | } 63 | 64 | [node name="Viewport" type="Viewport" parent="ViewportContainer"] 65 | size = Vector2( 1024, 600 ) 66 | transparent_bg = true 67 | handle_input_locally = false 68 | render_target_update_mode = 3 69 | 70 | [node name="Camera" type="Camera" parent="ViewportContainer/Viewport"] 71 | cull_mask = 2 72 | near = 0.01 73 | script = ExtResource( 4 ) 74 | camera_path = NodePath("../../../Head/Camera") 75 | -------------------------------------------------------------------------------- /Player/Shotgun.gd: -------------------------------------------------------------------------------- 1 | extends Weapon 2 | 3 | export var fire_range = 10 4 | 5 | func _ready(): 6 | raycast.cast_to = Vector3(0, 0, -fire_range) 7 | -------------------------------------------------------------------------------- /Player/Weapon.gd: -------------------------------------------------------------------------------- 1 | extends Spatial 2 | 3 | class_name Weapon 4 | 5 | export var fire_rate = 0.5 6 | export var clip_size = 5 7 | export var reload_rate = 1 8 | export var default_position : Vector3 9 | export var ads_position : Vector3 10 | export var ads_acceleration : float = 0.3 11 | export var default_fov : float = 70 12 | export var ads_fov : float = 55 13 | 14 | onready var ammo_label = $"/root/World/UI/Label" 15 | export var raycast_path : NodePath 16 | export var camera_path : NodePath 17 | 18 | var raycast : RayCast 19 | var camera : Camera 20 | 21 | var current_ammo = 0 22 | var can_fire = true 23 | var reloading = false 24 | 25 | func _ready(): 26 | current_ammo = clip_size 27 | raycast = get_node(raycast_path) 28 | camera = get_node(camera_path) 29 | 30 | func _process(delta): 31 | if reloading: 32 | ammo_label.set_text("Reloading...") 33 | else: 34 | ammo_label.set_text("%d / %d" % [current_ammo, clip_size]) 35 | 36 | if Input.is_action_just_pressed("primary_fire") and can_fire: 37 | if current_ammo > 0 and not reloading: 38 | fire() 39 | elif not reloading: 40 | reload() 41 | 42 | if Input.is_action_just_pressed("reload") and not reloading: 43 | reload() 44 | 45 | if Input.is_action_pressed("ads"): 46 | transform.origin = transform.origin.linear_interpolate(ads_position, ads_acceleration) 47 | camera.fov = lerp(camera.fov, ads_fov, ads_acceleration) 48 | else: 49 | transform.origin = transform.origin.linear_interpolate(default_position, ads_acceleration) 50 | camera.fov = lerp(camera.fov, default_fov, ads_acceleration) 51 | 52 | func check_collision(): 53 | if raycast.is_colliding(): 54 | var collider = raycast.get_collider() 55 | if collider.is_in_group("Enemies"): 56 | collider.queue_free() 57 | print("Killed " + collider.name) 58 | 59 | func fire(): 60 | print("Fired weapon") 61 | can_fire = false 62 | current_ammo -= 1 63 | check_collision() 64 | yield(get_tree().create_timer(fire_rate), "timeout") 65 | 66 | can_fire = true 67 | 68 | func reload(): 69 | print("Reloading") 70 | reloading = true 71 | yield(get_tree().create_timer(reload_rate), "timeout") 72 | current_ammo = clip_size 73 | reloading = false 74 | print("Reload complete") 75 | -------------------------------------------------------------------------------- /Player/Weapons/gun.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://Assets/gun.glb" type="PackedScene" id=1] 4 | 5 | [node name="gun" instance=ExtResource( 1 )] 6 | 7 | [node name="mergedBlocksClone" parent="." index="0"] 8 | layers = 2 9 | -------------------------------------------------------------------------------- /Scenes/World.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=9 format=2] 2 | 3 | [ext_resource path="res://Player/Player.tscn" type="PackedScene" id=1] 4 | [ext_resource path="res://Assets/prototype/crosshair.png" type="Texture" id=2] 5 | [ext_resource path="res://default_env.tres" type="Environment" id=3] 6 | [ext_resource path="res://Enemy/Enemy.tscn" type="PackedScene" id=4] 7 | 8 | [sub_resource type="SpatialMaterial" id=1] 9 | albedo_color = Color( 0.403922, 0.443137, 0.572549, 1 ) 10 | 11 | [sub_resource type="SpatialMaterial" id=2] 12 | albedo_color = Color( 1, 0, 0, 1 ) 13 | 14 | [sub_resource type="SpatialMaterial" id=3] 15 | albedo_color = Color( 0.247059, 0.768627, 0.317647, 1 ) 16 | 17 | [sub_resource type="CubeMesh" id=4] 18 | 19 | [node name="World" type="Spatial"] 20 | 21 | [node name="Enemy" parent="." instance=ExtResource( 4 )] 22 | transform = Transform( -1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 7, -0.8, 17 ) 23 | 24 | [node name="Player" parent="." instance=ExtResource( 1 )] 25 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 24 ) 26 | 27 | [node name="Environment" type="Spatial" parent="."] 28 | 29 | [node name="Room" type="CSGBox" parent="Environment"] 30 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 6, 0 ) 31 | use_collision = true 32 | invert_faces = true 33 | width = 84.0 34 | height = 16.0 35 | depth = 78.0 36 | 37 | [node name="Light Bulb" type="OmniLight" parent="Environment"] 38 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 10, 0 ) 39 | light_energy = 0.52 40 | omni_range = 42.0 41 | 42 | [node name="Podium" type="Spatial" parent="Environment"] 43 | 44 | [node name="CSGCylinder" type="CSGCylinder" parent="Environment/Podium"] 45 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0 ) 46 | material_override = SubResource( 1 ) 47 | use_collision = true 48 | radius = 12.0 49 | height = 0.8 50 | 51 | [node name="CSGCylinder2" type="CSGCylinder" parent="Environment/Podium"] 52 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.2, 0 ) 53 | material_override = SubResource( 1 ) 54 | use_collision = true 55 | radius = 10.0 56 | height = 0.8 57 | 58 | [node name="CSGCylinder3" type="CSGCylinder" parent="Environment/Podium"] 59 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.6, 0 ) 60 | material_override = SubResource( 1 ) 61 | use_collision = true 62 | radius = 7.0 63 | height = 0.8 64 | 65 | [node name="CSGCylinder4" type="CSGCylinder" parent="Environment/Podium"] 66 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 11 ) 67 | material_override = SubResource( 2 ) 68 | use_collision = true 69 | radius = 0.2 70 | height = 8.0 71 | 72 | [node name="CSGCylinder5" type="CSGCylinder" parent="Environment/Podium"] 73 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 0, 8 ) 74 | material_override = SubResource( 2 ) 75 | use_collision = true 76 | radius = 0.2 77 | height = 8.0 78 | 79 | [node name="CSGCylinder6" type="CSGCylinder" parent="Environment/Podium"] 80 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 11, 0, 0 ) 81 | material_override = SubResource( 2 ) 82 | use_collision = true 83 | radius = 0.2 84 | height = 8.0 85 | 86 | [node name="CSGCylinder7" type="CSGCylinder" parent="Environment/Podium"] 87 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 0, -8 ) 88 | material_override = SubResource( 2 ) 89 | use_collision = true 90 | radius = 0.2 91 | height = 8.0 92 | 93 | [node name="CSGCylinder8" type="CSGCylinder" parent="Environment/Podium"] 94 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -11 ) 95 | material_override = SubResource( 2 ) 96 | use_collision = true 97 | radius = 0.2 98 | height = 8.0 99 | 100 | [node name="CSGCylinder9" type="CSGCylinder" parent="Environment/Podium"] 101 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8, 0, -8 ) 102 | material_override = SubResource( 2 ) 103 | use_collision = true 104 | radius = 0.2 105 | height = 8.0 106 | 107 | [node name="CSGCylinder10" type="CSGCylinder" parent="Environment/Podium"] 108 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -11, 0, 0 ) 109 | material_override = SubResource( 2 ) 110 | use_collision = true 111 | radius = 0.2 112 | height = 8.0 113 | 114 | [node name="CSGCylinder11" type="CSGCylinder" parent="Environment/Podium"] 115 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8, 0, 8 ) 116 | material_override = SubResource( 2 ) 117 | use_collision = true 118 | radius = 0.2 119 | height = 8.0 120 | 121 | [node name="CSGBox" type="CSGBox" parent="Environment"] 122 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 25, -1, 16 ) 123 | material_override = SubResource( 3 ) 124 | use_collision = true 125 | width = 16.0 126 | depth = 1.0 127 | 128 | [node name="CSGBox2" type="CSGBox" parent="Environment"] 129 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -30, -1, 16 ) 130 | material_override = SubResource( 3 ) 131 | use_collision = true 132 | width = 16.0 133 | depth = 1.0 134 | 135 | [node name="CSGBox3" type="CSGBox" parent="Environment"] 136 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -30, -1, -27 ) 137 | material_override = SubResource( 3 ) 138 | use_collision = true 139 | width = 16.0 140 | depth = 1.0 141 | 142 | [node name="CSGBox4" type="CSGBox" parent="Environment"] 143 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 27, -1, -27 ) 144 | material_override = SubResource( 3 ) 145 | use_collision = true 146 | width = 16.0 147 | depth = 1.0 148 | 149 | [node name="CSGBox5" type="CSGBox" parent="Environment"] 150 | transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 17.5, -1, 18.1 ) 151 | material_override = SubResource( 3 ) 152 | use_collision = true 153 | width = 5.2 154 | depth = 1.0 155 | 156 | [node name="UI" type="Control" parent="."] 157 | anchor_right = 1.0 158 | anchor_bottom = 1.0 159 | __meta__ = { 160 | "_edit_use_anchors_": false 161 | } 162 | 163 | [node name="Label" type="Label" parent="UI"] 164 | anchor_left = 1.0 165 | anchor_top = 1.0 166 | anchor_right = 1.0 167 | anchor_bottom = 1.0 168 | margin_left = -79.0 169 | margin_top = -36.0 170 | margin_right = -8.0 171 | margin_bottom = -5.0 172 | text = "Ammo 173 | 2/2" 174 | align = 2 175 | __meta__ = { 176 | "_edit_use_anchors_": false 177 | } 178 | 179 | [node name="InteractionLabel" type="Label" parent="UI"] 180 | anchor_top = 1.0 181 | anchor_right = 1.0 182 | anchor_bottom = 1.0 183 | margin_top = -31.0 184 | text = "Press E to interact" 185 | align = 1 186 | valign = 1 187 | __meta__ = { 188 | "_edit_use_anchors_": false 189 | } 190 | 191 | [node name="CenterContainer" type="CenterContainer" parent="UI"] 192 | margin_right = 1024.0 193 | margin_bottom = 600.0 194 | __meta__ = { 195 | "_edit_use_anchors_": false 196 | } 197 | 198 | [node name="TextureRect" type="TextureRect" parent="UI/CenterContainer"] 199 | margin_left = 504.0 200 | margin_top = 292.0 201 | margin_right = 520.0 202 | margin_bottom = 308.0 203 | grow_horizontal = 2 204 | grow_vertical = 2 205 | texture = ExtResource( 2 ) 206 | stretch_mode = 4 207 | 208 | [node name="WorldEnvironment" type="WorldEnvironment" parent="."] 209 | environment = ExtResource( 3 ) 210 | 211 | [node name="MeshInstance" type="MeshInstance" parent="."] 212 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.0592, 19.6118 ) 213 | mesh = SubResource( 4 ) 214 | material/0 = null 215 | -------------------------------------------------------------------------------- /default_env.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Environment" load_steps=2 format=2] 2 | 3 | [sub_resource type="ProceduralSky" id=1] 4 | 5 | [resource] 6 | background_mode = 2 7 | background_sky = SubResource( 1 ) 8 | ambient_light_energy = 0.2 9 | -------------------------------------------------------------------------------- /icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codewithtom/godot-fps/5f31855858023ea19bf33b14af037b64e91876f7/icon.png -------------------------------------------------------------------------------- /icon.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://icon.png" 13 | dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /project.godot: -------------------------------------------------------------------------------- 1 | ; Engine configuration file. 2 | ; It's best edited using the editor UI and not directly, 3 | ; since the parameters that go here are not all obvious. 4 | ; 5 | ; Format: 6 | ; [section] ; section goes between [] 7 | ; param=value ; assign values to parameters 8 | 9 | config_version=4 10 | 11 | _global_script_classes=[ { 12 | "base": "Node", 13 | "class": "Interactable", 14 | "language": "GDScript", 15 | "path": "res://Interactable/Interactable.gd" 16 | }, { 17 | "base": "Spatial", 18 | "class": "Weapon", 19 | "language": "GDScript", 20 | "path": "res://Player/Weapon.gd" 21 | } ] 22 | _global_script_class_icons={ 23 | "Interactable": "", 24 | "Weapon": "" 25 | } 26 | 27 | [application] 28 | 29 | config/name="FPS Tutorial" 30 | run/main_scene="res://Scenes/World.tscn" 31 | config/icon="res://icon.png" 32 | 33 | [importer_defaults] 34 | 35 | image={ 36 | 37 | } 38 | 39 | [input] 40 | 41 | move_forward={ 42 | "deadzone": 0.5, 43 | "events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":87,"unicode":0,"echo":false,"script":null) 44 | ] 45 | } 46 | move_backward={ 47 | "deadzone": 0.5, 48 | "events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":83,"unicode":0,"echo":false,"script":null) 49 | ] 50 | } 51 | move_left={ 52 | "deadzone": 0.5, 53 | "events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":65,"unicode":0,"echo":false,"script":null) 54 | ] 55 | } 56 | move_right={ 57 | "deadzone": 0.5, 58 | "events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":68,"unicode":0,"echo":false,"script":null) 59 | ] 60 | } 61 | jump={ 62 | "deadzone": 0.5, 63 | "events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"unicode":0,"echo":false,"script":null) 64 | ] 65 | } 66 | primary_fire={ 67 | "deadzone": 0.5, 68 | "events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":1,"pressed":false,"doubleclick":false,"script":null) 69 | ] 70 | } 71 | reload={ 72 | "deadzone": 0.5, 73 | "events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":82,"unicode":0,"echo":false,"script":null) 74 | ] 75 | } 76 | Interact={ 77 | "deadzone": 0.5, 78 | "events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":69,"unicode":0,"echo":false,"script":null) 79 | ] 80 | } 81 | ads={ 82 | "deadzone": 0.5, 83 | "events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":2,"pressed":false,"doubleclick":false,"script":null) 84 | ] 85 | } 86 | 87 | [layer_names] 88 | 89 | 3d_render/layer_1="World" 90 | 3d_render/layer_2="Guns" 91 | 92 | [rendering] 93 | 94 | environment/default_environment="res://default_env.tres" 95 | --------------------------------------------------------------------------------