diff --git a/.github/workflows/generate-files.yml b/.github/workflows/generate-files.yml new file mode 100644 index 000000000..115ade8b2 --- /dev/null +++ b/.github/workflows/generate-files.yml @@ -0,0 +1,48 @@ +name: Generate Files + +on: + pull_request_target: + branches: + - dev + paths: + - i18n/languages/*.json + - version.json + push: + branches: + - dev + paths: + - i18n/languages/*.json + - version.json + + workflow_dispatch: + +jobs: + generate_files: + name: Generate Files + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + with: + repository: ${{ github.event.pull_request.head.repo.full_name }} + ref: ${{ github.head_ref }} + if: github.event_name == 'pull_request' + + - uses: actions/checkout@v3 + with: + ref: ${{ github.head_ref }} + token: ${{ secrets.TOKEN }} + if: github.event_name != 'pull_request' + + - name: Generate Languages + run: ./generate-languages.ps1 + shell: pwsh + + - name: Generate Version + run: ./generate-version.ps1 + shell: pwsh + + - name: Git Auto Commit + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "Update Generated Files" diff --git a/.github/workflows/generate-languages.yml b/.github/workflows/generate-languages.yml deleted file mode 100644 index f64d2ce1f..000000000 --- a/.github/workflows/generate-languages.yml +++ /dev/null @@ -1,41 +0,0 @@ -name: Generate Languages - -on: - pull_request_target: - branches: - - dev - paths: - - i18n/languages/*.json - push: - branches: - - dev - paths: - - i18n/languages/*.json - workflow_dispatch: - -jobs: - generate_languages: - name: Generate Languages - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - with: - repository: ${{ github.event.pull_request.head.repo.full_name }} - ref: ${{ github.head_ref }} - if: github.event_name == 'pull_request' - - - uses: actions/checkout@v3 - with: - ref: ${{ github.head_ref }} - token: ${{ secrets.TOKEN }} - if: github.event_name != 'pull_request' - - - name: Generate Languages - run: ./generate-languages.ps1 - shell: pwsh - - - name: Git Auto Commit - uses: stefanzweifel/git-auto-commit-action@v4 - with: - commit_message: "Update Generated Languages" diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 8ad510ad8..4f76bfd87 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -8,6 +8,12 @@ "type": "shell", "command": "pwsh -File \"${workspaceFolder}/generate-languages.ps1\"", "problemMatcher": [] + }, + { + "label": "Generate Version", + "type": "shell", + "command": "pwsh -File \"${workspaceFolder}/generate-version.ps1\"", + "problemMatcher": [] } ] } \ No newline at end of file diff --git a/addon.json b/addon.json index 11d174756..8337bf7ba 100644 --- a/addon.json +++ b/addon.json @@ -9,13 +9,15 @@ "*.git*", "*.fgd", "*.psd", + "*.ps1", + "*.sh", "CODEOWNERS", "LICENSE", ".vscode/*", ".github/*", "i18n/*", "assets/*", - "generate-languages.ps1", - "crowdin.yml" + "crowdin.yml", + "version.json" ] } \ No newline at end of file diff --git a/assets/spawnicons/models/cem/toyota_contr/audio_system.png b/assets/spawnicons/models/cem/toyota_contr/audio_system.png new file mode 100644 index 000000000..792c9022a --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/audio_system.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b173a00c02109989672ee96e6a2ccd7e2086f1748e89e5161636218999dacc0 +size 7013 diff --git a/assets/spawnicons/models/cem/toyota_contr/audio_system_2012.png b/assets/spawnicons/models/cem/toyota_contr/audio_system_2012.png new file mode 100644 index 000000000..34868f0a1 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/audio_system_2012.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44a0df0abb3bb376981b6ef5db8e0203a3fef847472506e115327ab04515d83c +size 8493 diff --git a/assets/spawnicons/models/cem/toyota_contr/balls.png b/assets/spawnicons/models/cem/toyota_contr/balls.png new file mode 100644 index 000000000..ddb0aac5d --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/balls.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0fb0abac49e81477e4268503ac1c263ecd5d587f318337b2a2e2345b5f26b64 +size 6701 diff --git a/assets/spawnicons/models/cem/toyota_contr/bouncy_lever.png b/assets/spawnicons/models/cem/toyota_contr/bouncy_lever.png new file mode 100644 index 000000000..822100521 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/bouncy_lever.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ccb15359b728b5296f3c67ab7defc4ba7775984ef87dbf6ad72b178c2e0c454e +size 3033 diff --git a/assets/spawnicons/models/cem/toyota_contr/button.png b/assets/spawnicons/models/cem/toyota_contr/button.png new file mode 100644 index 000000000..7e6143c38 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/button.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90fa616542de289ee1f25122373ce8fb930b0cddf1147c8131d40767e66119bb +size 5639 diff --git a/assets/spawnicons/models/cem/toyota_contr/buttons.png b/assets/spawnicons/models/cem/toyota_contr/buttons.png new file mode 100644 index 000000000..21ad3fa45 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/buttons.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0145209d99ea8b97c9eef1c8aecb47dc71a20d0339eaebfc40c5f88b5c0b4f7 +size 2533 diff --git a/assets/spawnicons/models/cem/toyota_contr/colored_lever_1.png b/assets/spawnicons/models/cem/toyota_contr/colored_lever_1.png new file mode 100644 index 000000000..2ee2b687a --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/colored_lever_1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dffc40c7c39e2a2b63595d99a6b33dd2a9d312b9534e96359b0ebbf433ef5d9c +size 2121 diff --git a/assets/spawnicons/models/cem/toyota_contr/colored_lever_2.png b/assets/spawnicons/models/cem/toyota_contr/colored_lever_2.png new file mode 100644 index 000000000..d3aac2051 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/colored_lever_2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0a02387c2e55619a07f38bb5cade9773825133520f8ec14e7215f3782ed11ee +size 2049 diff --git a/assets/spawnicons/models/cem/toyota_contr/colored_lever_3.png b/assets/spawnicons/models/cem/toyota_contr/colored_lever_3.png new file mode 100644 index 000000000..9a542edff --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/colored_lever_3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b5212f317d3c1b8c7192e5e00eb71a3c7eb4d47d1cc26cc55a46f3adbe602e6c +size 2052 diff --git a/assets/spawnicons/models/cem/toyota_contr/colored_lever_4.png b/assets/spawnicons/models/cem/toyota_contr/colored_lever_4.png new file mode 100644 index 000000000..ee487fe14 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/colored_lever_4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea2ae99a82692b02adc49aaab7f5240ed8327f19832b36af072d3c62d286b7cc +size 2096 diff --git a/assets/spawnicons/models/cem/toyota_contr/colored_lever_5.png b/assets/spawnicons/models/cem/toyota_contr/colored_lever_5.png new file mode 100644 index 000000000..5508b0bb7 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/colored_lever_5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:528ffed5c3869d69082419002fa82195fb5c726b17120f708cd6902b697608c1 +size 2055 diff --git a/assets/spawnicons/models/cem/toyota_contr/console_scanner.png b/assets/spawnicons/models/cem/toyota_contr/console_scanner.png new file mode 100644 index 000000000..378526097 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/console_scanner.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c979e6dadac8ea73d6e0589251d9e2b67ccd3e7a8a58bfd3b1eb4c3d7c9cc957 +size 4615 diff --git a/assets/spawnicons/models/cem/toyota_contr/crank.png b/assets/spawnicons/models/cem/toyota_contr/crank.png new file mode 100644 index 000000000..66e92f6fe --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/crank.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3ac1e3189fd6e7ed2e1c6a53a48054e3b3e373240d02262d7da3249e1171221 +size 5222 diff --git a/assets/spawnicons/models/cem/toyota_contr/crank2.png b/assets/spawnicons/models/cem/toyota_contr/crank2.png new file mode 100644 index 000000000..b632a2ee6 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/crank2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:afa535a27f66f00c09b46f1935803adb188f50226f7d6cf18194ec7af16f60a1 +size 6189 diff --git a/assets/spawnicons/models/cem/toyota_contr/crank3.png b/assets/spawnicons/models/cem/toyota_contr/crank3.png new file mode 100644 index 000000000..e427d4d5b --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/crank3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41836e33a05c7e8f3f5137e7346ff785824305666b6430a7ec1ad3099b4cab07 +size 5471 diff --git a/assets/spawnicons/models/cem/toyota_contr/crank4.png b/assets/spawnicons/models/cem/toyota_contr/crank4.png new file mode 100644 index 000000000..a3b0c9add --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/crank4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90510a5dfcd2de8da207484e6f94854da430161efd93b46295a5859e5635b910 +size 5257 diff --git a/assets/spawnicons/models/cem/toyota_contr/crank5.png b/assets/spawnicons/models/cem/toyota_contr/crank5.png new file mode 100644 index 000000000..c49d20424 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/crank5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4db9955ef3333329d9fb115a8cbcc6f0d939923203de354f8cb8ebe0346a5a07 +size 5930 diff --git a/assets/spawnicons/models/cem/toyota_contr/crank6.png b/assets/spawnicons/models/cem/toyota_contr/crank6.png new file mode 100644 index 000000000..d014eaba9 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/crank6.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eaf38569b6060fb4a7cab2b60a9d0fa165d671b3a9bdc207f86a6eaf0859e064 +size 4943 diff --git a/assets/spawnicons/models/cem/toyota_contr/cranks.png b/assets/spawnicons/models/cem/toyota_contr/cranks.png new file mode 100644 index 000000000..5208b38e7 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/cranks.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:abb188208f0c3b76952f8430ddd1b872f28c4c32a5b7b16eb9fb37206384b4b7 +size 2778 diff --git a/assets/spawnicons/models/cem/toyota_contr/ducks.png b/assets/spawnicons/models/cem/toyota_contr/ducks.png new file mode 100644 index 000000000..84f2f3336 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/ducks.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:53d08749dae4596966a59f51be059b80d18a7854fe7093c58d4bde90b08f230b +size 2523 diff --git a/assets/spawnicons/models/cem/toyota_contr/fiddle1.png b/assets/spawnicons/models/cem/toyota_contr/fiddle1.png new file mode 100644 index 000000000..d9d5fdbf6 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/fiddle1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60572b9d8e528916b907e3bd9a9dad0a5a131ea37f9c5e87689ceacf0f612f7e +size 3538 diff --git a/assets/spawnicons/models/cem/toyota_contr/fiddle2.png b/assets/spawnicons/models/cem/toyota_contr/fiddle2.png new file mode 100644 index 000000000..93f61b5b6 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/fiddle2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d826b94fe071d959f096cf87f4ef44ea2bc28a57ff6b3732bf887bb66e78276 +size 4163 diff --git a/assets/spawnicons/models/cem/toyota_contr/flat_switch.png b/assets/spawnicons/models/cem/toyota_contr/flat_switch.png new file mode 100644 index 000000000..20c614e1a --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/flat_switch.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:215d8aa8b54b1fd76c602b8298463337f0f1b01047fc8168d9ee20e08c395179 +size 3705 diff --git a/assets/spawnicons/models/cem/toyota_contr/flippers.png b/assets/spawnicons/models/cem/toyota_contr/flippers.png new file mode 100644 index 000000000..1ab78bf61 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/flippers.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d4c87c944a5e83160baffc741f64b856486aacb090539b948920ff5f5baa5cd +size 3932 diff --git a/assets/spawnicons/models/cem/toyota_contr/gears.png b/assets/spawnicons/models/cem/toyota_contr/gears.png new file mode 100644 index 000000000..8c579b419 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/gears.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:364bda65547e9a130a3cdaeb3f4ea9b78bf637ae076a4d4022b2a8c5e3c3f53a +size 7292 diff --git a/assets/spawnicons/models/cem/toyota_contr/handbrake.png b/assets/spawnicons/models/cem/toyota_contr/handbrake.png new file mode 100644 index 000000000..b01440d08 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/handbrake.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e68d911ba022c046b11b8d9b8412f19fac3ff143ff1720ba65754d1176a67ac1 +size 4057 diff --git a/assets/spawnicons/models/cem/toyota_contr/handle1.png b/assets/spawnicons/models/cem/toyota_contr/handle1.png new file mode 100644 index 000000000..7bd517087 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/handle1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69fd92f8968dc205aa562e0666dd8d3684878864112e4bd07ae1fda2db013a98 +size 2335 diff --git a/assets/spawnicons/models/cem/toyota_contr/handle2.png b/assets/spawnicons/models/cem/toyota_contr/handle2.png new file mode 100644 index 000000000..c87819403 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/handle2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33ac1b7e4f3b7681314a1ba30bce078689350784eefc015c951366cfeced15d1 +size 2155 diff --git a/assets/spawnicons/models/cem/toyota_contr/holder.png b/assets/spawnicons/models/cem/toyota_contr/holder.png new file mode 100644 index 000000000..c1f497a82 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/holder.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:711d543e4d223a55701a19b659ce5702fbb998acfe5649e8c45dbcd8e0752285 +size 4194 diff --git a/assets/spawnicons/models/cem/toyota_contr/key.png b/assets/spawnicons/models/cem/toyota_contr/key.png new file mode 100644 index 000000000..f1c6eb4ad --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/key.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6708c860e0801a8373275d19a3c38a6955cada93dc68558175fbb1a75603ce8b +size 3860 diff --git a/assets/spawnicons/models/cem/toyota_contr/keyboard.png b/assets/spawnicons/models/cem/toyota_contr/keyboard.png new file mode 100644 index 000000000..2f61bc3a2 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/keyboard.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc9af4203d74a10763a3eccf9cc26197ab5f63088eaa921ba98ae0f90445c65f +size 7527 diff --git a/assets/spawnicons/models/cem/toyota_contr/lever.png b/assets/spawnicons/models/cem/toyota_contr/lever.png new file mode 100644 index 000000000..ac3772088 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/lever.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e9dce223ffa5ca1c02c32ae2f060b8f5636c1e8f086c581a476a7ea87a823721 +size 2666 diff --git a/assets/spawnicons/models/cem/toyota_contr/lever3.png b/assets/spawnicons/models/cem/toyota_contr/lever3.png new file mode 100644 index 000000000..456d041a3 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/lever3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c40434c7617d99a5a9c56e85d9eb47a37ca5dcf5a1fe06e41e2345cc19eac53 +size 6133 diff --git a/assets/spawnicons/models/cem/toyota_contr/lever5.png b/assets/spawnicons/models/cem/toyota_contr/lever5.png new file mode 100644 index 000000000..a591ea524 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/lever5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e3943068c99823b581e090255e2bbea16aad387bf57cb09a17ec58bd8237f7b5 +size 2933 diff --git a/assets/spawnicons/models/cem/toyota_contr/levers.png b/assets/spawnicons/models/cem/toyota_contr/levers.png new file mode 100644 index 000000000..865a420d9 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/levers.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d340d3749178ad6ca21db72998fc313a158a83fc5d162ff82c99e1614032c85b +size 4247 diff --git a/assets/spawnicons/models/cem/toyota_contr/levers1.png b/assets/spawnicons/models/cem/toyota_contr/levers1.png new file mode 100644 index 000000000..2ee2b687a --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/levers1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dffc40c7c39e2a2b63595d99a6b33dd2a9d312b9534e96359b0ebbf433ef5d9c +size 2121 diff --git a/assets/spawnicons/models/cem/toyota_contr/levers2.png b/assets/spawnicons/models/cem/toyota_contr/levers2.png new file mode 100644 index 000000000..d3aac2051 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/levers2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0a02387c2e55619a07f38bb5cade9773825133520f8ec14e7215f3782ed11ee +size 2049 diff --git a/assets/spawnicons/models/cem/toyota_contr/levers3.png b/assets/spawnicons/models/cem/toyota_contr/levers3.png new file mode 100644 index 000000000..9a542edff --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/levers3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b5212f317d3c1b8c7192e5e00eb71a3c7eb4d47d1cc26cc55a46f3adbe602e6c +size 2052 diff --git a/assets/spawnicons/models/cem/toyota_contr/levers4.png b/assets/spawnicons/models/cem/toyota_contr/levers4.png new file mode 100644 index 000000000..ee487fe14 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/levers4.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea2ae99a82692b02adc49aaab7f5240ed8327f19832b36af072d3c62d286b7cc +size 2096 diff --git a/assets/spawnicons/models/cem/toyota_contr/levers5.png b/assets/spawnicons/models/cem/toyota_contr/levers5.png new file mode 100644 index 000000000..5508b0bb7 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/levers5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:528ffed5c3869d69082419002fa82195fb5c726b17120f708cd6902b697608c1 +size 2055 diff --git a/assets/spawnicons/models/cem/toyota_contr/monitor.png b/assets/spawnicons/models/cem/toyota_contr/monitor.png new file mode 100644 index 000000000..f43a20644 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/monitor.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d2b85d1a6435dfa140b4cb475de037047a9bc63276ed63b30fbc6d783941e4b +size 4464 diff --git a/assets/spawnicons/models/cem/toyota_contr/monitor_2012.png b/assets/spawnicons/models/cem/toyota_contr/monitor_2012.png new file mode 100644 index 000000000..e609f3537 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/monitor_2012.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a15ddd4fae5d3a492f3dd07a9e0ad08bb9b250724924f11fc256e08770d8a1d9 +size 5341 diff --git a/assets/spawnicons/models/cem/toyota_contr/monitor_2015.png b/assets/spawnicons/models/cem/toyota_contr/monitor_2015.png new file mode 100644 index 000000000..5cb1e5fb4 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/monitor_2015.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:619c35293610b14e70244ad6ff671450c2e92b833448e3d088385bebd2c8c19f +size 4909 diff --git a/assets/spawnicons/models/cem/toyota_contr/phone.png b/assets/spawnicons/models/cem/toyota_contr/phone.png new file mode 100644 index 000000000..5896a27cf --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/phone.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1cdc5a26ccae081e7e92c0d5a484d808e3a30c49f04473d3c240c597c61274b0 +size 3592 diff --git a/assets/spawnicons/models/cem/toyota_contr/phone_port.png b/assets/spawnicons/models/cem/toyota_contr/phone_port.png new file mode 100644 index 000000000..3b9949c42 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/phone_port.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92cafd8566f0937c008ed3dae78dae6b73d219a159e661426cd9134f04a1a074 +size 5001 diff --git a/assets/spawnicons/models/cem/toyota_contr/red_flick_cover.png b/assets/spawnicons/models/cem/toyota_contr/red_flick_cover.png new file mode 100644 index 000000000..14e90a682 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/red_flick_cover.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ad8b1d25a79ef4707bfe5f156ecbd60c954bb19ecfc062012916173aa6e3046 +size 4934 diff --git a/assets/spawnicons/models/cem/toyota_contr/red_flick_switch.png b/assets/spawnicons/models/cem/toyota_contr/red_flick_switch.png new file mode 100644 index 000000000..f2c4c87e1 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/red_flick_switch.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6431c1be4cec8cd757d1a1b1fe2e65d0ff5c99ebfa9e5ab03d14495d8206f545 +size 3682 diff --git a/assets/spawnicons/models/cem/toyota_contr/red_lever.png b/assets/spawnicons/models/cem/toyota_contr/red_lever.png new file mode 100644 index 000000000..6cb33cd2e --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/red_lever.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9762116a0aba2c95c7dee945955f2d682a0a0166c4757cfb4c27fd0010f49ea +size 2912 diff --git a/assets/spawnicons/models/cem/toyota_contr/sliders.png b/assets/spawnicons/models/cem/toyota_contr/sliders.png new file mode 100644 index 000000000..e393f181e --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/sliders.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:095179ac64e7693d3356e6dfc52b00aaa56413312a4bbfb26a2e42fe701bf4db +size 4353 diff --git a/assets/spawnicons/models/cem/toyota_contr/small_switch.png b/assets/spawnicons/models/cem/toyota_contr/small_switch.png new file mode 100644 index 000000000..068bac835 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/small_switch.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9927b17bca0cbbb3529f6aa2e4c8f99de68e7771997a2959c1fcb91914b91437 +size 4747 diff --git a/assets/spawnicons/models/cem/toyota_contr/sonic_charger.png b/assets/spawnicons/models/cem/toyota_contr/sonic_charger.png new file mode 100644 index 000000000..3615ef2b9 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/sonic_charger.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:185225ce7891d101b7afb5502689aeb723de384d29b5e9e1f817f9b1d2d2a11a +size 5706 diff --git a/assets/spawnicons/models/cem/toyota_contr/spin1.png b/assets/spawnicons/models/cem/toyota_contr/spin1.png new file mode 100644 index 000000000..62d835618 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/spin1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:280b22c96cdd7fd582792de2a6d4d072cd857707c3dae36201e623ccd835f9ae +size 5390 diff --git a/assets/spawnicons/models/cem/toyota_contr/spin10.png b/assets/spawnicons/models/cem/toyota_contr/spin10.png new file mode 100644 index 000000000..776826c5b --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/spin10.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b785e4d6f1eb8984a8e1f17a6542cad1b4bc58f96672ca63be2faa0c810b946 +size 2807 diff --git a/assets/spawnicons/models/cem/toyota_contr/spin11.png b/assets/spawnicons/models/cem/toyota_contr/spin11.png new file mode 100644 index 000000000..dea16d41b --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/spin11.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3035a0f191846a60b01bf5f5bba3f03553192d6f059af8bf52dd2ecde067e568 +size 2829 diff --git a/assets/spawnicons/models/cem/toyota_contr/spin12.png b/assets/spawnicons/models/cem/toyota_contr/spin12.png new file mode 100644 index 000000000..e2eb94a0a --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/spin12.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e837709108e17a756ff733fae382b8cda66c0a6aa25bf9b043e435492071d857 +size 3331 diff --git a/assets/spawnicons/models/cem/toyota_contr/spin6.png b/assets/spawnicons/models/cem/toyota_contr/spin6.png new file mode 100644 index 000000000..ef64840fa --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/spin6.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd7f43d7e8dd0cfe6b941704b8fefd7fb37f473bec75404b25c762560c3de246 +size 5918 diff --git a/assets/spawnicons/models/cem/toyota_contr/spin_a.png b/assets/spawnicons/models/cem/toyota_contr/spin_a.png new file mode 100644 index 000000000..f7197924a --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/spin_a.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6002aa416be4f13e0de628c7750b506f72f1542d370e3ca91972bd32b69ddf44 +size 7516 diff --git a/assets/spawnicons/models/cem/toyota_contr/spin_b.png b/assets/spawnicons/models/cem/toyota_contr/spin_b.png new file mode 100644 index 000000000..6351a456f --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/spin_b.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76649d6c4483820fee62135e5ee2e903108ac8b8c90c4ebc6fb62e9327f0aa96 +size 7074 diff --git a/assets/spawnicons/models/cem/toyota_contr/spin_big.png b/assets/spawnicons/models/cem/toyota_contr/spin_big.png new file mode 100644 index 000000000..fc77e0040 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/spin_big.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3587dbc0c5033479e29e37bd4dc73a4647a5538e253e5753ef231b191103ae4 +size 5157 diff --git a/assets/spawnicons/models/cem/toyota_contr/spin_crank.png b/assets/spawnicons/models/cem/toyota_contr/spin_crank.png new file mode 100644 index 000000000..eab45781a --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/spin_crank.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68596bda315be56b222eaf67ed439be3a928baf71a6524e24e5e479eb5f38cb1 +size 3979 diff --git a/assets/spawnicons/models/cem/toyota_contr/spin_switch.png b/assets/spawnicons/models/cem/toyota_contr/spin_switch.png new file mode 100644 index 000000000..c9781cf4b --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/spin_switch.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea16bb355b6988e654463927863f664991132951abcca653accd7645be09b9ff +size 5007 diff --git a/assets/spawnicons/models/cem/toyota_contr/switch.png b/assets/spawnicons/models/cem/toyota_contr/switch.png new file mode 100644 index 000000000..b55fe10b2 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/switch.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1c5797e5e95227e529663d09ec1d6a75e85ddb5df9f12ad17b7bb87c58e69a8 +size 3739 diff --git a/assets/spawnicons/models/cem/toyota_contr/switch2.png b/assets/spawnicons/models/cem/toyota_contr/switch2.png new file mode 100644 index 000000000..fd70f24cd --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/switch2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48fd050708cabd17ee8ca48866b83ba69c8699a4cb039d5f1fdd600665fb9479 +size 5625 diff --git a/assets/spawnicons/models/cem/toyota_contr/telepathic.png b/assets/spawnicons/models/cem/toyota_contr/telepathic.png new file mode 100644 index 000000000..4f50b7149 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/telepathic.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:16f9cecca030282443a69993027f9a41c694d16080ad4776d0eda90cec2d9cd2 +size 5115 diff --git a/assets/spawnicons/models/cem/toyota_contr/thick_lever.png b/assets/spawnicons/models/cem/toyota_contr/thick_lever.png new file mode 100644 index 000000000..ed54816ee --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/thick_lever.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3c16ff4f6a0506ecddaf67b332c0ef124c0099e52f6985303a932638b14bf40 +size 3950 diff --git a/assets/spawnicons/models/cem/toyota_contr/throttle.png b/assets/spawnicons/models/cem/toyota_contr/throttle.png new file mode 100644 index 000000000..467008c53 --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/throttle.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d52ba857dd93b111b02484829d2a8cd3014b7cc9f20e4a4d1828d7f4fa1a5836 +size 5268 diff --git a/assets/spawnicons/models/cem/toyota_contr/toggles.png b/assets/spawnicons/models/cem/toyota_contr/toggles.png new file mode 100644 index 000000000..5bb1e4a7a --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/toggles.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3cf28eda8dcfee7e1487ee620bbc7ad4f24e2db72fd0711cde38f5a0946cc8ee +size 5522 diff --git a/assets/spawnicons/models/cem/toyota_contr/toggles2.png b/assets/spawnicons/models/cem/toyota_contr/toggles2.png new file mode 100644 index 000000000..e1375255f --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/toggles2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60fb06ac6ff0f2963280c788d51bddf6968b19d49a220c4697fffd9f1ba93f01 +size 2229 diff --git a/assets/spawnicons/models/cem/toyota_contr/tumblers.png b/assets/spawnicons/models/cem/toyota_contr/tumblers.png new file mode 100644 index 000000000..246fcbd5d --- /dev/null +++ b/assets/spawnicons/models/cem/toyota_contr/tumblers.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ddabb2a107ffe190e800cda9a18b58bdb3ac4a2794eb23c298da6ba247ae34f +size 5690 diff --git a/assets/spawnicons/models/molda/toyota_int/balls.png b/assets/spawnicons/models/molda/toyota_int/balls.png new file mode 100644 index 000000000..ddb0aac5d --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/balls.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0fb0abac49e81477e4268503ac1c263ecd5d587f318337b2a2e2345b5f26b64 +size 6701 diff --git a/assets/spawnicons/models/molda/toyota_int/bulbs.png b/assets/spawnicons/models/molda/toyota_int/bulbs.png new file mode 100644 index 000000000..cebca4717 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/bulbs.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21cf229c9a529c8573953f53619e4cd6ab861037be2d57eca80b0d42533e4025 +size 1312 diff --git a/assets/spawnicons/models/molda/toyota_int/cables1.png b/assets/spawnicons/models/molda/toyota_int/cables1.png new file mode 100644 index 000000000..f7f483d46 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/cables1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:332b9daec03e59d7a7b8dc82329cdf6ff9e8455b95ee554ac60104dd4ca31e5e +size 6819 diff --git a/assets/spawnicons/models/molda/toyota_int/cables2.png b/assets/spawnicons/models/molda/toyota_int/cables2.png new file mode 100644 index 000000000..bb3c70059 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/cables2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:810ee09a6ba2887b439ed32227767e35e4f4ad48f177cfcd3f78d38a82e372aa +size 6403 diff --git a/assets/spawnicons/models/molda/toyota_int/cables3.png b/assets/spawnicons/models/molda/toyota_int/cables3.png new file mode 100644 index 000000000..09cd03cfa --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/cables3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c43ae3f7ab7ba7105723c6a7e628a3099e2f7e111f8d928e8c51a974682ee9f +size 8120 diff --git a/assets/spawnicons/models/molda/toyota_int/casing.png b/assets/spawnicons/models/molda/toyota_int/casing.png new file mode 100644 index 000000000..9da93ad32 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/casing.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4dd190d3dad94deca9bcd87e2da0d482517411061c292ad15cfc8bb86bf4319 +size 1977 diff --git a/assets/spawnicons/models/molda/toyota_int/chairs.png b/assets/spawnicons/models/molda/toyota_int/chairs.png new file mode 100644 index 000000000..862545918 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/chairs.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da0ee234df2ac03d4634ccfa1ff2e44076e3d6932bc55d769d94182147d56bd3 +size 3846 diff --git a/assets/spawnicons/models/molda/toyota_int/console.png b/assets/spawnicons/models/molda/toyota_int/console.png new file mode 100644 index 000000000..f723f0814 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/console.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43074d533c844989e2ba531db28dd7cb5025f8afa29c1652b9ceef9bf522a04f +size 4422 diff --git a/assets/spawnicons/models/molda/toyota_int/corridor_version2.png b/assets/spawnicons/models/molda/toyota_int/corridor_version2.png new file mode 100644 index 000000000..26f8520e4 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/corridor_version2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7861a9dc45ff299925c735911528e94f9e4a778ae73e91e4946b16841ce7750 +size 5405 diff --git a/assets/spawnicons/models/molda/toyota_int/corridor_version_3.png b/assets/spawnicons/models/molda/toyota_int/corridor_version_3.png new file mode 100644 index 000000000..966360999 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/corridor_version_3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aea435db5535de0b9a9a03fddf0a8a0b9a92a9838581a33954fd6a7f71bf509b +size 4008 diff --git a/assets/spawnicons/models/molda/toyota_int/entry.png b/assets/spawnicons/models/molda/toyota_int/entry.png new file mode 100644 index 000000000..8f73dd08d --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/entry.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:559a5eaf2e165364e082d05fb966ad277371459ec8cfd50591d77717bba1e00d +size 4463 diff --git a/assets/spawnicons/models/molda/toyota_int/floor.png b/assets/spawnicons/models/molda/toyota_int/floor.png new file mode 100644 index 000000000..0bc575427 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/floor.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f2f69f0faaddf6b0ad33b2bf1cfcd9a64dc53e210b2ceb950bb1a1fca8e7f24 +size 9085 diff --git a/assets/spawnicons/models/molda/toyota_int/frame.png b/assets/spawnicons/models/molda/toyota_int/frame.png new file mode 100644 index 000000000..05ffff66e --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/frame.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e657940203369db4f405ce05d602b2c9dd11e71e1792150df509b22384abab44 +size 2364 diff --git a/assets/spawnicons/models/molda/toyota_int/frame2.png b/assets/spawnicons/models/molda/toyota_int/frame2.png new file mode 100644 index 000000000..f6bdf0492 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/frame2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c96404c20fc7ecb314c5c38b01278738f7aeca112779468169e2270e423ce639 +size 1523 diff --git a/assets/spawnicons/models/molda/toyota_int/gears1.png b/assets/spawnicons/models/molda/toyota_int/gears1.png new file mode 100644 index 000000000..97cad079b --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/gears1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd85b0c03d94f9f9de0f7d19536e845c2fbb4c2dfaaf222db16ba0ee09ae0fda +size 6955 diff --git a/assets/spawnicons/models/molda/toyota_int/gears2.png b/assets/spawnicons/models/molda/toyota_int/gears2.png new file mode 100644 index 000000000..210e721af --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/gears2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f50df015a87fd615371b14dc682ded4a7d8c7d5e6d055dba801abd8c090638c2 +size 3633 diff --git a/assets/spawnicons/models/molda/toyota_int/gears3.png b/assets/spawnicons/models/molda/toyota_int/gears3.png new file mode 100644 index 000000000..30ccbbde8 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/gears3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:742c2a0483e1a9c040fd5bf04a86fab8b61f45db3136d2707c6455fe6fb271cd +size 4241 diff --git a/assets/spawnicons/models/molda/toyota_int/handbrake.png b/assets/spawnicons/models/molda/toyota_int/handbrake.png new file mode 100644 index 000000000..7395a6e3b --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/handbrake.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e03d23e5ae272ba72bec3131f85d1ed77c2a3265ec38545f217a611eacfb0f59 +size 3136 diff --git a/assets/spawnicons/models/molda/toyota_int/hitboxes/flip_stage1.png b/assets/spawnicons/models/molda/toyota_int/hitboxes/flip_stage1.png new file mode 100644 index 000000000..b452f6bf5 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/hitboxes/flip_stage1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f0d9d031e5a688962c965aa947d029eeee60a576a055c1ae5220439f07bdd9c +size 2947 diff --git a/assets/spawnicons/models/molda/toyota_int/hitboxes/flip_stage2.png b/assets/spawnicons/models/molda/toyota_int/hitboxes/flip_stage2.png new file mode 100644 index 000000000..b0ba010d7 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/hitboxes/flip_stage2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00d415b6860c6aab5003639117e6332b3d160070df5083f0a6ce5ca7978bcf40 +size 2865 diff --git a/assets/spawnicons/models/molda/toyota_int/hitboxes/flip_stage3.png b/assets/spawnicons/models/molda/toyota_int/hitboxes/flip_stage3.png new file mode 100644 index 000000000..098029d1e --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/hitboxes/flip_stage3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9264534a039414f034e5a31b05ce0d11a2b57fa461114e2f15793992461104b3 +size 2511 diff --git a/assets/spawnicons/models/molda/toyota_int/hitboxes/flip_up_stage1.png b/assets/spawnicons/models/molda/toyota_int/hitboxes/flip_up_stage1.png new file mode 100644 index 000000000..d2fd33481 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/hitboxes/flip_up_stage1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52c0689f7a7eb0f3c56b547f7210b1d89226191457abec38097e970efe338cd7 +size 1489 diff --git a/assets/spawnicons/models/molda/toyota_int/hitboxes/flip_up_stage2.png b/assets/spawnicons/models/molda/toyota_int/hitboxes/flip_up_stage2.png new file mode 100644 index 000000000..c21f5bdbf --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/hitboxes/flip_up_stage2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a49ca52b7272f96552196da360a53b367da47e9375bb8adba037b3e76c46085 +size 1451 diff --git a/assets/spawnicons/models/molda/toyota_int/hitboxes/flip_up_stage3.png b/assets/spawnicons/models/molda/toyota_int/hitboxes/flip_up_stage3.png new file mode 100644 index 000000000..031b03674 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/hitboxes/flip_up_stage3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e9ceae9c70c3af5ccf7fe42954e4637df12ac34cfac90683fb0d540bc4ac61c +size 1483 diff --git a/assets/spawnicons/models/molda/toyota_int/hitboxes/monitor_handles.png b/assets/spawnicons/models/molda/toyota_int/hitboxes/monitor_handles.png new file mode 100644 index 000000000..5362a5230 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/hitboxes/monitor_handles.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a497e298cf0f075f6592a3fa4dd4f2f3f1622df6c8a0caac40a8a1bd6345fd91 +size 2274 diff --git a/assets/spawnicons/models/molda/toyota_int/hitboxes/monitor_handles_vertical_1.png b/assets/spawnicons/models/molda/toyota_int/hitboxes/monitor_handles_vertical_1.png new file mode 100644 index 000000000..b3e6169e0 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/hitboxes/monitor_handles_vertical_1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e45a409bab8e4f5711bb6021f39cc05cc8fa1c49481862ba2ecef691b17c047 +size 1538 diff --git a/assets/spawnicons/models/molda/toyota_int/hitboxes/monitor_handles_vertical_2.png b/assets/spawnicons/models/molda/toyota_int/hitboxes/monitor_handles_vertical_2.png new file mode 100644 index 000000000..d5efa7935 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/hitboxes/monitor_handles_vertical_2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:790affdd6a8ac3075a3a3f93f406eb8545dd8b49cb958e744c2c4800e3e5e6e8 +size 1542 diff --git a/assets/spawnicons/models/molda/toyota_int/hitboxes/monitor_handles_vertical_3.png b/assets/spawnicons/models/molda/toyota_int/hitboxes/monitor_handles_vertical_3.png new file mode 100644 index 000000000..f86c3f8f9 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/hitboxes/monitor_handles_vertical_3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:229c05a007559867fda72808fc7349bdcf0c0630124f0de92fb73aae60f0c672 +size 1644 diff --git a/assets/spawnicons/models/molda/toyota_int/hitboxes/sonic_cube.png b/assets/spawnicons/models/molda/toyota_int/hitboxes/sonic_cube.png new file mode 100644 index 000000000..82a61a4db --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/hitboxes/sonic_cube.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:298f5ce789ffb9e22cd60f1ca8e44f660f2f8b98216efc95515beea2027719f9 +size 1499 diff --git a/assets/spawnicons/models/molda/toyota_int/hitboxes/stage0.png b/assets/spawnicons/models/molda/toyota_int/hitboxes/stage0.png new file mode 100644 index 000000000..61921dbc1 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/hitboxes/stage0.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e61957ff88a63622871188f21fd700454eea308c5dda8bb143b9056a9f17b82 +size 3706 diff --git a/assets/spawnicons/models/molda/toyota_int/hitboxes/stage1.png b/assets/spawnicons/models/molda/toyota_int/hitboxes/stage1.png new file mode 100644 index 000000000..d669935f8 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/hitboxes/stage1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea5a59a5a0d99f157b3b9d9ed4981625b37be7660a2f1bcd1ea883ea2d32225c +size 3656 diff --git a/assets/spawnicons/models/molda/toyota_int/hitboxes/stage2.png b/assets/spawnicons/models/molda/toyota_int/hitboxes/stage2.png new file mode 100644 index 000000000..5ffdfc9a4 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/hitboxes/stage2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cce8bcbbdb867205fdb0640b8c3a7f1c6f6057033a1d214626189190c7916b2a +size 4098 diff --git a/assets/spawnicons/models/molda/toyota_int/hitboxes/stage3.png b/assets/spawnicons/models/molda/toyota_int/hitboxes/stage3.png new file mode 100644 index 000000000..edfa17ecf --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/hitboxes/stage3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9996886eae70dc13feffe0e6cfcd8173e7c87f42e60b39436dabf0e0c8c105f4 +size 3500 diff --git a/assets/spawnicons/models/molda/toyota_int/intdoors.png b/assets/spawnicons/models/molda/toyota_int/intdoors.png new file mode 100644 index 000000000..bfc102a8b --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/intdoors.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc533f113bb252d73ddaf05a9584fc5fd3c21b773f61f4e390a4b21bec2a96d9 +size 3150 diff --git a/assets/spawnicons/models/molda/toyota_int/intdoors2.png b/assets/spawnicons/models/molda/toyota_int/intdoors2.png new file mode 100644 index 000000000..19168e9c2 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/intdoors2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7bad3f9e30de9e3e2d30d558eeb955e446db6da996a766d2e0e7370e74c8e741 +size 3515 diff --git a/assets/spawnicons/models/molda/toyota_int/interior.png b/assets/spawnicons/models/molda/toyota_int/interior.png new file mode 100644 index 000000000..ac96ca3f8 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/interior.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e7366b0f9fd5a8a63cc1b6a37e235c3b46fc38a05e6676c21cc7929f24be053 +size 7413 diff --git a/assets/spawnicons/models/molda/toyota_int/keyboard.png b/assets/spawnicons/models/molda/toyota_int/keyboard.png new file mode 100644 index 000000000..b94b7e12d --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/keyboard.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c6c7b8ddef224a51571f02df45e7ea29f12e1f1ebd5fdf39274b200f0ad89b7 +size 4722 diff --git a/assets/spawnicons/models/molda/toyota_int/monitor.png b/assets/spawnicons/models/molda/toyota_int/monitor.png new file mode 100644 index 000000000..c6e63818e --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/monitor.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f59928d35033aa2a585f5c561ca5c13b2f32a63a20c40cf8f352887f5fd4cdf +size 6490 diff --git a/assets/spawnicons/models/molda/toyota_int/pillars.png b/assets/spawnicons/models/molda/toyota_int/pillars.png new file mode 100644 index 000000000..2226295ba --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/pillars.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a8b4762a0ad7c7fb06cc36fd85d550ea11f08680e2b5683dee496734a019428 +size 7986 diff --git a/assets/spawnicons/models/molda/toyota_int/pistons.png b/assets/spawnicons/models/molda/toyota_int/pistons.png new file mode 100644 index 000000000..42a58802d --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/pistons.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9fca1e5aa177f20e5c2ff61e71dc89529712f822ba35d95e032a52bb846cc65 +size 1073 diff --git a/assets/spawnicons/models/molda/toyota_int/rings.png b/assets/spawnicons/models/molda/toyota_int/rings.png new file mode 100644 index 000000000..96eb63427 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/rings.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a82b448e8074b77cebd3584a9c6a6d84ac6c06c6d4eba9d04c15aa8dcda60f04 +size 5766 diff --git a/assets/spawnicons/models/molda/toyota_int/roof.png b/assets/spawnicons/models/molda/toyota_int/roof.png new file mode 100644 index 000000000..d92142fd3 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/roof.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9679dfefaa8911fabc855f8a3ff74bbe27ce008009eb1e2e50b4760bee14e75d +size 3057 diff --git a/assets/spawnicons/models/molda/toyota_int/rotor.png b/assets/spawnicons/models/molda/toyota_int/rotor.png new file mode 100644 index 000000000..873a9f166 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/rotor.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8cf7c898b448306545bbb3e2319fd4108d75472ba0070ae553e8b8abbe3a969 +size 8031 diff --git a/assets/spawnicons/models/molda/toyota_int/rotor_base_smith.png b/assets/spawnicons/models/molda/toyota_int/rotor_base_smith.png new file mode 100644 index 000000000..b6a91df22 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/rotor_base_smith.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e3c1b0e505bcf09d843dbbf475872f615a11fb69410d34ff8bb17a3144bcba6 +size 3453 diff --git a/assets/spawnicons/models/molda/toyota_int/rotor_ring.png b/assets/spawnicons/models/molda/toyota_int/rotor_ring.png new file mode 100644 index 000000000..30c5d880a --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/rotor_ring.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42b143792958d47a60831bba0ef02236bb7e7b86336cfbe65a5147fb39106171 +size 2943 diff --git a/assets/spawnicons/models/molda/toyota_int/rotor_small.png b/assets/spawnicons/models/molda/toyota_int/rotor_small.png new file mode 100644 index 000000000..35cbc3dd3 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/rotor_small.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb1ccf417b47a687317074fff896c7498ae32e7f1f86dc262c64978d6cfb3f92 +size 6122 diff --git a/assets/spawnicons/models/molda/toyota_int/roundels1.png b/assets/spawnicons/models/molda/toyota_int/roundels1.png new file mode 100644 index 000000000..066fd2a2f --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/roundels1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4ce64cca6099460d07248ae0d3ace2d06942174f77dd8a6a3ab08fd0a3ff492 +size 2180 diff --git a/assets/spawnicons/models/molda/toyota_int/roundels2.png b/assets/spawnicons/models/molda/toyota_int/roundels2.png new file mode 100644 index 000000000..174ef691c --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/roundels2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d2120f79f6565cad6e3a26d376e872a03defb3bfe0369928a8a0a550c4fdf56 +size 2650 diff --git a/assets/spawnicons/models/molda/toyota_int/scanner.png b/assets/spawnicons/models/molda/toyota_int/scanner.png new file mode 100644 index 000000000..b679c68cb --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/scanner.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:25cfd3cd57858f35392bf78623f04fae3d14714578ba677be5869ac7cff6e49e +size 4804 diff --git a/assets/spawnicons/models/molda/toyota_int/side_details1.png b/assets/spawnicons/models/molda/toyota_int/side_details1.png new file mode 100644 index 000000000..f31e6fa4f --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/side_details1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:755e823af311f80520a04cbf6159b1ef4e3deb0e495037ab5b4268a532219bb8 +size 2859 diff --git a/assets/spawnicons/models/molda/toyota_int/side_details2.png b/assets/spawnicons/models/molda/toyota_int/side_details2.png new file mode 100644 index 000000000..816a654ba --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/side_details2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce1a4edf6faf03e8c7f2748b2351ac4aa1d2f0696e6d72042e0410149ca5ea26 +size 2753 diff --git a/assets/spawnicons/models/molda/toyota_int/side_dial.png b/assets/spawnicons/models/molda/toyota_int/side_dial.png new file mode 100644 index 000000000..a084481b2 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/side_dial.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:352b46fdfd8a2f38d92df3623dca32b32171c3dc6b8ef2d0d60c2e6e98642522 +size 2745 diff --git a/assets/spawnicons/models/molda/toyota_int/side_speakers.png b/assets/spawnicons/models/molda/toyota_int/side_speakers.png new file mode 100644 index 000000000..a2908cc04 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/side_speakers.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9c5a7f1ee0248d5fae14c441c2614f993edbe76c9a72bf8b428584868f0e6f5 +size 3565 diff --git a/assets/spawnicons/models/molda/toyota_int/side_toggle.png b/assets/spawnicons/models/molda/toyota_int/side_toggle.png new file mode 100644 index 000000000..084f53ada --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/side_toggle.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d424a9fe3716f1ca35a8ca31d24b56f5dd0812788a1bcf5f04ccda89745ab6b +size 2758 diff --git a/assets/spawnicons/models/molda/toyota_int/sidelever1.png b/assets/spawnicons/models/molda/toyota_int/sidelever1.png new file mode 100644 index 000000000..25ab6956d --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/sidelever1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e705f1f5f3cf86624a9052b3f7cc02ee1839dd51e0b38e09d17530f9f65e99b +size 3706 diff --git a/assets/spawnicons/models/molda/toyota_int/sidelever2.png b/assets/spawnicons/models/molda/toyota_int/sidelever2.png new file mode 100644 index 000000000..fa4f70c6b --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/sidelever2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca79847171074ea3dc4556128230d745d8d8f55edb0588a58d1025c50503fa53 +size 4209 diff --git a/assets/spawnicons/models/molda/toyota_int/sidepanels.png b/assets/spawnicons/models/molda/toyota_int/sidepanels.png new file mode 100644 index 000000000..d0fd1d2bf --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/sidepanels.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5498834d26600a2092c6c6137e7c14393140d0ddcebb2ef2b318ac8870e9cd6b +size 3574 diff --git a/assets/spawnicons/models/molda/toyota_int/slidedoors1.png b/assets/spawnicons/models/molda/toyota_int/slidedoors1.png new file mode 100644 index 000000000..419a2069b --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/slidedoors1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c69e0a366400c3f6596d54e4678fd6efb4ef923bc24e399e4525bf6b3affaa9 +size 4929 diff --git a/assets/spawnicons/models/molda/toyota_int/slidedoors2.png b/assets/spawnicons/models/molda/toyota_int/slidedoors2.png new file mode 100644 index 000000000..dc1d59c95 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/slidedoors2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4a6b26efb75242891ca09d945ec19904fe232a00f6fcf7d302ef004ce18b4a0 +size 4599 diff --git a/assets/spawnicons/models/molda/toyota_int/slidedoors3.png b/assets/spawnicons/models/molda/toyota_int/slidedoors3.png new file mode 100644 index 000000000..096453110 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/slidedoors3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b53425092bac7d2d3014ea3df8edcee486c4a4f12808649180a7aeca0bc6745 +size 5549 diff --git a/assets/spawnicons/models/molda/toyota_int/sliders.png b/assets/spawnicons/models/molda/toyota_int/sliders.png new file mode 100644 index 000000000..98266144e --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/sliders.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:390328cc1713e96b1ca725c345f5b1ea683888d06339165768f012684735d60f +size 3353 diff --git a/assets/spawnicons/models/molda/toyota_int/step.png b/assets/spawnicons/models/molda/toyota_int/step.png new file mode 100644 index 000000000..9a1d999df --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/step.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0a5057ceaef08da7a30550177a3fa49099e6a586006e4095bc69a856b20b6b0 +size 5548 diff --git a/assets/spawnicons/models/molda/toyota_int/telepathic.png b/assets/spawnicons/models/molda/toyota_int/telepathic.png new file mode 100644 index 000000000..7da5e8461 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/telepathic.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a94087f29c34cac53e1b6e2ee7b5725b732a6f5560c50278517a06d6feaed70 +size 4635 diff --git a/assets/spawnicons/models/molda/toyota_int/throttle.png b/assets/spawnicons/models/molda/toyota_int/throttle.png new file mode 100644 index 000000000..c8c325945 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/throttle.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6f51510e153339ac0c58beb7d5d3712d1d132a83fa651bdba5a4808ef0a6788 +size 3437 diff --git a/assets/spawnicons/models/molda/toyota_int/throttle_lights.png b/assets/spawnicons/models/molda/toyota_int/throttle_lights.png new file mode 100644 index 000000000..33873222d --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/throttle_lights.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5078c7226a33dc9ad19a5f61c76e9e004351a49ef86dffe002441f89df5bbd33 +size 1299 diff --git a/assets/spawnicons/models/molda/toyota_int/ticks.png b/assets/spawnicons/models/molda/toyota_int/ticks.png new file mode 100644 index 000000000..6199bced8 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/ticks.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:717cfea797f4a91588284a9d04eafeb4eda1817a986390bc9fb892487b9f53e4 +size 1334 diff --git a/assets/spawnicons/models/molda/toyota_int/toplights.png b/assets/spawnicons/models/molda/toyota_int/toplights.png new file mode 100644 index 000000000..15343ee9e --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/toplights.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c76971f3cd91483f4709d31a9579fe8a08773adfb14fd15fabefd026c9ee16c0 +size 3396 diff --git a/assets/spawnicons/models/molda/toyota_int/vents.png b/assets/spawnicons/models/molda/toyota_int/vents.png new file mode 100644 index 000000000..c4ddc2265 --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/vents.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8021b4ae7e52f128c65aca3cb6325d8d968e1659edf379b942be3edf5bde495d +size 8762 diff --git a/assets/spawnicons/models/molda/toyota_int/walls.png b/assets/spawnicons/models/molda/toyota_int/walls.png new file mode 100644 index 000000000..0dc71d77c --- /dev/null +++ b/assets/spawnicons/models/molda/toyota_int/walls.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7408cb882bf1e05a6af4642e7162b554faf6110dead8b1c280e6cc6538b33dd4 +size 7827 diff --git a/assets/spawnicons/models/vtalanov98/toyota_ext/doors_exterior.png b/assets/spawnicons/models/vtalanov98/toyota_ext/doors_exterior.png new file mode 100644 index 000000000..1abb6017a --- /dev/null +++ b/assets/spawnicons/models/vtalanov98/toyota_ext/doors_exterior.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09837017bd0ba262cce60420971ecfb065197669d466b03a3995a71c7b2dab7d +size 4130 diff --git a/assets/spawnicons/models/vtalanov98/toyota_ext/doors_interior.png b/assets/spawnicons/models/vtalanov98/toyota_ext/doors_interior.png new file mode 100644 index 000000000..4d4e8182d --- /dev/null +++ b/assets/spawnicons/models/vtalanov98/toyota_ext/doors_interior.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba4cff31efb908c7196631bb155aee9e3979fded4be1d8c922a41313777b27f7 +size 4637 diff --git a/assets/spawnicons/models/vtalanov98/toyota_ext/exterior.png b/assets/spawnicons/models/vtalanov98/toyota_ext/exterior.png new file mode 100644 index 000000000..5a40c5648 --- /dev/null +++ b/assets/spawnicons/models/vtalanov98/toyota_ext/exterior.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:225600865b0be0ebb96c25e4aee95680ea02923576e90fe3ada4606480cdf8fb +size 5937 diff --git a/generate-version.ps1 b/generate-version.ps1 new file mode 100644 index 000000000..d52d10a88 --- /dev/null +++ b/generate-version.ps1 @@ -0,0 +1,46 @@ +$ErrorActionPreference = "Stop" + +$versionFile = "version.json" +$version = Get-Content -Raw (Join-Path $PSScriptRoot $versionFile) | ConvertFrom-Json -AsHashtable + +$major = $version.Major +$minor = $version.Minor +$patch = $version.Patch + +Write-Host "Current version: $major.$minor.$patch" + +$versionString = "$major.$minor.$patch" + +$tag = git tag | Where-Object { $_ -eq $versionString } + +if ($tag) { + $commit = git rev-parse HEAD + $tagCommit = git rev-parse $tag + + if ($commit -eq $tagCommit) { + Write-Host "Tag $tag already exists, but is on the current commit, allowing.." + } + else { + Write-Error "Tag $tag already exists, please increment the version number in version.json" + } +} +else { + Write-Host "Tag $versionString does not exist yet" +} + +$targetFilename = Join-Path $PSScriptRoot "lua/tardis/libraries/libraries/libraries/sh_version_generated.lua" + +$content = [System.Text.StringBuilder]::new() + +$null = $content.AppendLine("-- AUTO GENERATED FILE - DO NOT EDIT --") +$null = $content.AppendLine("-- SOURCE FILE: $versionFile --") +$null = $content.AppendLine() +$null = $content.AppendLine("TARDIS.Version = {") +$null = $content.AppendLine(" Major = $major,") +$null = $content.AppendLine(" Minor = $minor,") +$null = $content.AppendLine(" Patch = $patch") +$null = $content.AppendLine("}") + +Write-Host "Writing version to $targetFilename" + +Set-Content -NoNewline -Path $targetFilename -Value $content \ No newline at end of file diff --git a/i18n/languages/cy.json b/i18n/languages/cy.json index 8299909b6..203dc3f1a 100644 --- a/i18n/languages/cy.json +++ b/i18n/languages/cy.json @@ -3,6 +3,11 @@ "Author": "Tîm Datblygu TARDIS", "Phrases": { "Artron.Depleted": "Artron ynni disbyddu", + "ArtronInhibitor": "", + "ArtronInhibitor.Disabled": "", + "ArtronInhibitor.Enabled": "", + "ArtronInhibitor.Instructions": "", + "ArtronInhibitor.Starting": "", "Binds.AnyKey": "Gwasgwch unrhyw cywair", "Binds.Invalid": "Annilys", "Binds.Key": "Allwedd", @@ -10,16 +15,26 @@ "Binds.Sections.Destination.Backward": "Yn ôl", "Binds.Sections.Destination.Boost": "Cynyddu cyflymder", "Binds.Sections.Destination.Boost.Description": "Gwasgwch y cywair hwn pan mordwyo i gyflymu", + "Binds.Sections.Destination.Chameleon": "", + "Binds.Sections.Destination.Chameleon.Description": "", "Binds.Sections.Destination.Down": "Lawr", + "Binds.Sections.Destination.FindRandom": "", + "Binds.Sections.Destination.FindRandom.Description": "", "Binds.Sections.Destination.Forward": "Ymlaen", + "Binds.Sections.Destination.Jump": "", + "Binds.Sections.Destination.Jump.Description": "", "Binds.Sections.Destination.Left": "Chwith", "Binds.Sections.Destination.Right": "Dde", "Binds.Sections.Destination.Rotate": "Cylchdroi", "Binds.Sections.Destination.Rotate.Description": "Gwasgwch hyn gyda'r cywair cynyddu cyflymder a'r cywair chwith neu dde i cylchdroi", + "Binds.Sections.Destination.ShowCurrent": "", + "Binds.Sections.Destination.ShowCurrent.Description": "", "Binds.Sections.Destination.Slow": "Araf", "Binds.Sections.Destination.Slow.Description": "Gwasgwch y cywair hwn i arafu eich symudiad", "Binds.Sections.Destination.SnapToFloor": "Chlecia i'r llawr", "Binds.Sections.Destination.SnapToFloor.Description": "Gwasgwch y cywair hwn i chlecia i'r llawr agosach", + "Binds.Sections.Destination.ToggleRotationMode": "", + "Binds.Sections.Destination.ToggleRotationMode.Description": "", "Binds.Sections.Destination.Up": "I fyny", "Binds.Sections.Flight": "Hedfan", "Binds.Sections.Flight.Backward": "Yn ôl", @@ -33,6 +48,10 @@ "Binds.Sections.Flight.Rotate.Description": "Gwasgwch a ddal y cywair hwn tra defnyddio chwith neu dde i cylchdroi", "Binds.Sections.Flight.SpinDirection": "Cyfeiriad cylchdroi", "Binds.Sections.Flight.SpinDirection.Description": "Newid pa ffordd mae'r TARDIS yn cylchdroi pan hedfan", + "Binds.Sections.Flight.Tracking": "", + "Binds.Sections.Flight.Tracking.Description": "", + "Binds.Sections.Flight.TrackRotation": "", + "Binds.Sections.Flight.TrackRotation.Description": "", "Binds.Sections.Flight.Up": "I fyny", "Binds.Sections.Float": "Arnofio", "Binds.Sections.Float.Backward": "Yn ôl", @@ -59,8 +78,12 @@ "Binds.Sections.ThirdPerson.ToggleFlight": "Toglo'r Hedfan", "Binds.Sections.ThirdPerson.ToggleFloat": "Toglo'r arnofio", "Binds.Sections.ThirdPerson.ToggleFloat.Description": "Gadael i'r TARDIS hedfan fel pe na bai disgyrchiant", + "Binds.Sections.ThirdPerson.ToggleHandbrake": "", "Binds.Sections.ThirdPerson.TogglePhyslock": "Toglo Physlock", "Binds.Sections.ThirdPerson.TogglePhyslock.Description": "Gwnewch y TARDIS yn gyson ac yn ansymudol yn y gofod", + "Binds.Sections.ThirdPerson.TogglePower": "", + "Binds.Sections.ThirdPerson.ToggleVortex": "", + "Chameleon.ExteriorPlanned": "", "Chameleon.ExteriorSelected": "Mae tu allan newydd wedi'i ddewis", "Chameleon.FailedExteriorSelect": "Wedi methu dewis tu allan newydd", "Chameleon.FailReasons.AlreadyChanging": "Mae'r tu allan yn cael ei newid yn barod!", @@ -184,6 +207,9 @@ "Controls.Repair.FailedToggle": "Wedi methu â toglo hunan-atgyweirio", "Controls.Repair.Tip": "Hunan-Trwsio", "Controls.Scanner.Tip": "Sganiwr", + "Controls.Shields": "", + "Controls.Shields.FailedToggle": "", + "Controls.Shields.Status": "", "Controls.Shields.Tip": "Tarianau", "Controls.SonicDispenser.AlreadyEquipped": "Rydych chi eisoes yn dal Sgriwdreifer Sonig", "Controls.SonicDispenser.Dispensed": "Mae Sonic Screwdriver wedi'i ddosbarthu", @@ -219,28 +245,55 @@ "Controls.ToggleScreens.FailedToggle": "Wedi methu toglo sgriniau mewnol", "Controls.ToggleScreens.Status": "Sgriniau mewnol", "Controls.ToggleScreens.Tip": "Toglo Sgrin", + "Controls.Tracking": "", + "Controls.Tracking.ConstrainedFail": "", + "Controls.Tracking.DistanceFail": "", + "Controls.Tracking.FlightFail": "", + "Controls.Tracking.GenericFail": "", + "Controls.Tracking.InteriorFail": "", + "Controls.Tracking.PhyslockFail": "", + "Controls.Tracking.PilotWarning": "", + "Controls.Tracking.Rotation": "", + "Controls.Tracking.RotationChangedAuto": "", + "Controls.Tracking.RotationHint": "", + "Controls.Tracking.SameTarget": "", + "Controls.Tracking.SelfFail": "", + "Controls.Tracking.SpinWarning": "", + "Controls.Tracking.Status": "", + "Controls.Tracking.Target": "", + "Controls.Tracking.TargetLost": "", + "Controls.Tracking.TargetTooFar": "", "Controls.VirtualConsole.Tip": "Consol Rhithwir", "Controls.VortexFlight": "Hedfan fortecs", "Controls.VortexFlight.FailedToggle": "Wedi methu â toglo hedfan fortecs", "Controls.VortexFlight.Status": "Hedfan fortecs", "Controls.VortexFlight.Tip": "Hedfan fortecs", + "CustomControls.Default.ToggleScreen.1": "", + "CustomControls.Default.ToggleScreen.1.FailedToggle": "", + "CustomControls.Default.ToggleScreen.1.Status": "", + "CustomControls.Default.ToggleScreen.1.Tip": "", + "CustomControls.Default.ToggleScreen.2": "", + "CustomControls.Default.ToggleScreen.2.FailedToggle": "", + "CustomControls.Default.ToggleScreen.2.Status": "", + "CustomControls.Default.ToggleScreen.2.Tip": "", "Destination.FailedDemat": "Wedi methu â disylweddu", "Destination.FailedSetDestination": "Wedi methu gosod cyrchfan", "Destination.FailedSetDestinationMaybeTransitioning": "Wedi methu â gosod cyrchfan, efallai ei fod yn trawsnewid", "Destination.LockedDemat": "Cyrchfan wedi'i chloi, yn diystyru...", "Destination.LockedReadyToDemat": "Cyrchfan wedi'i chloi, yn barod i'w dad-wneud", "Destination.LockedReadyToMat": "Cyrchfan ar glo, yn barod i'w gwireddu", + "Destination.RotationMode": "", "Expression2.Error": "Methu â galw swyddogaethau TARDIS ar rywbeth heblaw TARDIS", "Expression2.Security.UseDenied": "Methu â galw swyddogaethau set TARDIS ar TARDIS rhywun arall gyda Diogelwch Isomorffig yn weithredol", "Exteriors.Categories.Misc": "Amrywiol", "Exteriors.Categories.PoliceBoxes": "Bocsys yr Heddlu", "Exteriors.Categories.TTCapsules": "Capsiwlau TT", "Exteriors.DefaultPoliceBox": "Blwch Heddlu Diofyn", + "Exteriors.LegacyPoliceBox": "", "Exteriors.SIDRAT": "SIDRAT", "Exteriors.TTCapsuleType40": "Math Capsiwl TT 40", "Exteriors.TTCapsuleType50": "Math Capsiwl TT 50", "Exteriors.TTCapsuleType55": "Math Capsiwl TT 55", - "Exteriors.TTCapsuleType55B": "Capsiwl TT Math 55-B", "Flight.DoorOpenNoBoost": "Nid yw Boost yn gweithio gyda drysau ar agor", "Flight.NameIsNowThePilot": "%s yw'r peilot bellach", "Flight.NameIsThePilot": "%s yw'r peilot", @@ -260,16 +313,28 @@ "Interior.FindingPositionFailed.NoSpace": "RHYBUDD: Methu dod o hyd i le ar gyfer y tu mewn, gallwch geisio eto neu ddefnyddio map gwahanol", "Interior.FoundPosition": "Wedi gorffen!", "Interiors.Default": "Diofyn", + "Interiors.Default.CustomSettings.ClassicDoorsButton": "", + "Interiors.Default.CustomSettings.Color": "", + "Interiors.Default.CustomSettings.Color.Blue": "", + "Interiors.Default.CustomSettings.Color.Dynamic": "", + "Interiors.Default.CustomSettings.Color.Green": "", + "Interiors.Default.CustomSettings.Color.Random": "", + "Interiors.Default.CustomSettings.Color.Turquoise": "", + "Interiors.Default.CustomSettings.Lamps": "", + "Interiors.Default.CustomSettings.Lamps.Few": "", + "Interiors.Default.CustomSettings.Lamps.Many": "", + "Interiors.Default.CustomSettings.Lamps.Off": "", + "Interiors.Default.CustomSettings.ScreensOff": "", + "Interiors.Default.CustomSettings.SmallVersion": "", + "Interiors.Default.Versions.ClassicDoors": "", "Interiors.Default.Versions.SIDRAT": "SIDRAT Allanol", "Interiors.Default.Versions.TTCapsuleType40": "TT Capsiwl Math 40 Allanol", "Interiors.Default.Versions.TTCapsuleType50": "TT Capsiwl Math 50 Allanol", "Interiors.Default.Versions.TTCapsuleType55": "Math Capsiwl TT 55 Allanol", - "Interiors.Default.Versions.TTCapsuleType55B": "Capsiwl TT Math 55-B Allanol", "Interiors.DefaultSIDRAT": "SIDRAT Diofyn", "Interiors.DefaultTTCapsuleType40": "Math Capsiwl TT 40 Rhagosodedig", "Interiors.DefaultTTCapsuleType50": "Math Capsiwl TT 50 Rhagosodiad", "Interiors.DefaultTTCapsuleType55": "Math Capsiwl TT 55 Rhagosodedig", - "Interiors.DefaultTTCapsuleType55B": "Math Capsiwl TT 55-B Rhagosodiad", "Lock.Locked": "Mae'r TARDIS hwn wedi'i gloi", "MenuOptions.ConfirmResetSettings": "Ailosod pob gosodiad ar ochr y cleient? Ni ellir dadwneud hyn.", "MenuOptions.ConfirmSectionReset": "Ailosod gosodiadau ochr cleientiaid yn adran \"%s\"? Ni ellir dadwneud hyn.", @@ -301,6 +366,7 @@ "Screens.Chameleon.Apply": "Ymgeisiwch", "Screens.Chameleon.Categories": "Categorïau", "Screens.Chameleon.Exteriors": "Y tu allan", + "Screens.Chameleon.Plan": "", "Screens.Chameleon.Reset": "Ail gychwyn", "Screens.Common.Back": "yn ol", "Screens.Common.CurrentPage": "Tudalen %d o %d", @@ -410,6 +476,8 @@ "Settings.Sections.Global.BoostSpeed.Description": "Y cynnydd mewn cyflymder y mae TARDIS yn ei gael gyda'r allwedd hwb wedi'i alluogi", "Settings.Sections.Global.EnableHealth": "Galluogi Iechyd", "Settings.Sections.Global.EnableHealth.Description": "A ddylai'r TARDIS gael iechyd a chymryd niwed?", + "Settings.Sections.Global.HealthToShieldsRatio": "", + "Settings.Sections.Global.HealthToShieldsRatio.Description": "", "Settings.Sections.Global.MaxHealth": "Iechyd Mwyaf", "Settings.Sections.Global.MaxHealth.Description": "Uchafswm iechyd y TARDIS", "Settings.Sections.Global.WaitLongForRepair": "Galluogi atgyweirio hir", @@ -452,6 +520,8 @@ "Settings.Sections.Misc.NotificationType.Types.ConsoleLog": "Log consol", "Settings.Sections.Misc.NotificationType.Types.Disabled": "Anabl", "Settings.Sections.Misc.NotificationType.Types.Inbuilt": "Hysbysiadau mewnol", + "Settings.Sections.Misc.ShowReleaseNotes": "", + "Settings.Sections.Misc.ShowReleaseNotes.Description": "", "Settings.Sections.Misc.Spawning": "Silio'r TARDIS", "Settings.Sections.Misc.Spawning.LegacyDoorType": "Silio gyda drysau etifeddiaeth math", "Settings.Sections.Misc.Spawning.LegacyDoorType.Description": "Bydd drysau TARDIS yn teleportio'r chwaraewr y tu mewn pan glicir arno (yn lle agor)", @@ -579,6 +649,8 @@ "TipStyles.Default": "Rhagosodedig (wedi'i osod gan y tu mewn)", "TipStyles.WhiteOnBlue": "Gwyn ar ddu", "TipStyles.WhiteOnGrey": "Gwyn ar llwyd", + "Update.ShowReleaseNotes": "", + "Update.Updated": "", "Vortex.ModelMissing": "RHYBUDD: Model vortex yn annilys - fortecs anablu, a ydych chi'n colli dibyniaeth?", "Wiremod.Inputs.Ang": "X,Y,Z: ongl teleport", "Wiremod.Inputs.Demat": "Disylweddoli'r TARDIS", diff --git a/i18n/languages/de.json b/i18n/languages/de.json index cb7374553..4526a903d 100644 --- a/i18n/languages/de.json +++ b/i18n/languages/de.json @@ -3,6 +3,11 @@ "Author": "TARDIS-Entwicklungsteam", "Phrases": { "Artron.Depleted": "Artronenergie aufgebraucht", + "ArtronInhibitor": "", + "ArtronInhibitor.Disabled": "", + "ArtronInhibitor.Enabled": "", + "ArtronInhibitor.Instructions": "", + "ArtronInhibitor.Starting": "", "Binds.AnyKey": "Drücke eine beliebige Taste", "Binds.Invalid": "Ungültig", "Binds.Key": "Schlüssel", @@ -10,16 +15,26 @@ "Binds.Sections.Destination.Backward": "Rückwärts", "Binds.Sections.Destination.Boost": "Boost", "Binds.Sections.Destination.Boost.Description": "Halte diese Taste beim Navigieren gedrückt, um die Geschwindigkeit zu erhöhen", + "Binds.Sections.Destination.Chameleon": "", + "Binds.Sections.Destination.Chameleon.Description": "", "Binds.Sections.Destination.Down": "Runter", + "Binds.Sections.Destination.FindRandom": "", + "Binds.Sections.Destination.FindRandom.Description": "", "Binds.Sections.Destination.Forward": "Vorwärts", + "Binds.Sections.Destination.Jump": "", + "Binds.Sections.Destination.Jump.Description": "", "Binds.Sections.Destination.Left": "Links", "Binds.Sections.Destination.Right": "Rechts", "Binds.Sections.Destination.Rotate": "Rotieren", "Binds.Sections.Destination.Rotate.Description": "Halte dies mit der Boost-Taste und den linken oder rechten Tasten gedrückt, um zu rotieren", + "Binds.Sections.Destination.ShowCurrent": "", + "Binds.Sections.Destination.ShowCurrent.Description": "", "Binds.Sections.Destination.Slow": "Langsam", "Binds.Sections.Destination.Slow.Description": "Halte diese Taste gedrückt, um die Bewegung zu verlangsamen", "Binds.Sections.Destination.SnapToFloor": "An Boden anheften", "Binds.Sections.Destination.SnapToFloor.Description": "Drücke diese Taste, um dich an den nächsten Boden anzuheften", + "Binds.Sections.Destination.ToggleRotationMode": "", + "Binds.Sections.Destination.ToggleRotationMode.Description": "", "Binds.Sections.Destination.Up": "Hoch", "Binds.Sections.Flight": "Flug", "Binds.Sections.Flight.Backward": "Rückwärts", @@ -33,6 +48,10 @@ "Binds.Sections.Flight.Rotate.Description": "Halte diese Taste gedrückt, während du mit links und rechts rotierst", "Binds.Sections.Flight.SpinDirection": "Drehrichtung", "Binds.Sections.Flight.SpinDirection.Description": "Verändert die Richtung, in die sich die TARDIS während des Fluges dreht", + "Binds.Sections.Flight.Tracking": "", + "Binds.Sections.Flight.Tracking.Description": "", + "Binds.Sections.Flight.TrackRotation": "", + "Binds.Sections.Flight.TrackRotation.Description": "", "Binds.Sections.Flight.Up": "Hoch", "Binds.Sections.Float": "Schweben", "Binds.Sections.Float.Backward": "Rückwärts", @@ -59,8 +78,12 @@ "Binds.Sections.ThirdPerson.ToggleFlight": "Flug ein/aus", "Binds.Sections.ThirdPerson.ToggleFloat": "Schwebemodus ein/aus", "Binds.Sections.ThirdPerson.ToggleFloat.Description": "Lässt die TARDIS fliegen, als ob es keine Schwerkraft gäbe", + "Binds.Sections.ThirdPerson.ToggleHandbrake": "", "Binds.Sections.ThirdPerson.TogglePhyslock": "Physikalische Sperre ein/aus", "Binds.Sections.ThirdPerson.TogglePhyslock.Description": "Macht die TARDIS im Raum konstant und unbeweglich", + "Binds.Sections.ThirdPerson.TogglePower": "", + "Binds.Sections.ThirdPerson.ToggleVortex": "", + "Chameleon.ExteriorPlanned": "", "Chameleon.ExteriorSelected": "Eine neue Hülle wurde ausgewählt", "Chameleon.FailedExteriorSelect": "Konnte keine neue Hülle auswählen", "Chameleon.FailReasons.AlreadyChanging": "Die Hülle ändert sich bereits!", @@ -184,6 +207,9 @@ "Controls.Repair.FailedToggle": "Selbstreparatur konnte nicht umgeschaltet werden", "Controls.Repair.Tip": "Selbstreparatur", "Controls.Scanner.Tip": "Scanner", + "Controls.Shields": "", + "Controls.Shields.FailedToggle": "", + "Controls.Shields.Status": "", "Controls.Shields.Tip": "Schilde", "Controls.SonicDispenser.AlreadyEquipped": "Du hältst bereits einen Schallschraubenzieher", "Controls.SonicDispenser.Dispensed": "Schallschraubenzieher wurde ausgegeben", @@ -219,28 +245,55 @@ "Controls.ToggleScreens.FailedToggle": "Interne Bildschirme konnten nicht umgeschaltet werden", "Controls.ToggleScreens.Status": "Innere Bildschirme", "Controls.ToggleScreens.Tip": "Bildschirm umschalten", + "Controls.Tracking": "", + "Controls.Tracking.ConstrainedFail": "", + "Controls.Tracking.DistanceFail": "", + "Controls.Tracking.FlightFail": "", + "Controls.Tracking.GenericFail": "", + "Controls.Tracking.InteriorFail": "", + "Controls.Tracking.PhyslockFail": "", + "Controls.Tracking.PilotWarning": "", + "Controls.Tracking.Rotation": "", + "Controls.Tracking.RotationChangedAuto": "", + "Controls.Tracking.RotationHint": "", + "Controls.Tracking.SameTarget": "", + "Controls.Tracking.SelfFail": "", + "Controls.Tracking.SpinWarning": "", + "Controls.Tracking.Status": "", + "Controls.Tracking.Target": "", + "Controls.Tracking.TargetLost": "", + "Controls.Tracking.TargetTooFar": "", "Controls.VirtualConsole.Tip": "Virtuelle Konsole", "Controls.VortexFlight": "Vortexflug", "Controls.VortexFlight.FailedToggle": "Vortexflug konnte nicht umgeschaltet werden", "Controls.VortexFlight.Status": "Vortexflug", "Controls.VortexFlight.Tip": "Vortexflug", + "CustomControls.Default.ToggleScreen.1": "", + "CustomControls.Default.ToggleScreen.1.FailedToggle": "", + "CustomControls.Default.ToggleScreen.1.Status": "", + "CustomControls.Default.ToggleScreen.1.Tip": "", + "CustomControls.Default.ToggleScreen.2": "", + "CustomControls.Default.ToggleScreen.2.FailedToggle": "", + "CustomControls.Default.ToggleScreen.2.Status": "", + "CustomControls.Default.ToggleScreen.2.Tip": "", "Destination.FailedDemat": "Konnte nicht dematerialisieren", "Destination.FailedSetDestination": "Ziel konnte nicht festgelegt werden", "Destination.FailedSetDestinationMaybeTransitioning": "Das Ziel konnte nicht festgelegt werden, möglicherweise ein Übergang", "Destination.LockedDemat": "Ziel erfasst, dematerialisiere...", "Destination.LockedReadyToDemat": "Ziel erfasst, bereit zur Dematerialisierung", "Destination.LockedReadyToMat": "Ziel erfasst, bereit zur Materialisierung", + "Destination.RotationMode": "", "Expression2.Error": "TARDIS-Funktionen können nicht auf etwas anderem als einer TARDIS aufgerufen werden", "Expression2.Security.UseDenied": "Kann keine TARDIS Set-Functions aufrufen, wenn die Isomorphe Sicherheit aktiv ist", "Exteriors.Categories.Misc": "Sonstiges", "Exteriors.Categories.PoliceBoxes": "Polizei-Boxen", "Exteriors.Categories.TTCapsules": "TT-Kapseln", "Exteriors.DefaultPoliceBox": "Standard Polizei-Box", + "Exteriors.LegacyPoliceBox": "", "Exteriors.SIDRAT": "SIDRAT", "Exteriors.TTCapsuleType40": "TT-Kapsel Typ 40", "Exteriors.TTCapsuleType50": "TT-Kapsel Typ 50", "Exteriors.TTCapsuleType55": "TT-Kapsel Typ 55", - "Exteriors.TTCapsuleType55B": "TT-Kapsel Typ 55-B", "Flight.DoorOpenNoBoost": "Boost funktioniert nicht bei offenen Türen", "Flight.NameIsNowThePilot": "%s ist jetzt der Pilot", "Flight.NameIsThePilot": "%s ist der Pilot", @@ -260,16 +313,28 @@ "Interior.FindingPositionFailed.NoSpace": "WARNUNG: Konnte keinen Platz für den Innenraum finden, versuche es bitte noch einmal oder nutze eine andere Map", "Interior.FoundPosition": "Fertig!", "Interiors.Default": "Standard", + "Interiors.Default.CustomSettings.ClassicDoorsButton": "", + "Interiors.Default.CustomSettings.Color": "", + "Interiors.Default.CustomSettings.Color.Blue": "", + "Interiors.Default.CustomSettings.Color.Dynamic": "", + "Interiors.Default.CustomSettings.Color.Green": "", + "Interiors.Default.CustomSettings.Color.Random": "", + "Interiors.Default.CustomSettings.Color.Turquoise": "", + "Interiors.Default.CustomSettings.Lamps": "", + "Interiors.Default.CustomSettings.Lamps.Few": "", + "Interiors.Default.CustomSettings.Lamps.Many": "", + "Interiors.Default.CustomSettings.Lamps.Off": "", + "Interiors.Default.CustomSettings.ScreensOff": "", + "Interiors.Default.CustomSettings.SmallVersion": "", + "Interiors.Default.Versions.ClassicDoors": "", "Interiors.Default.Versions.SIDRAT": "SIDRAT-Hülle", "Interiors.Default.Versions.TTCapsuleType40": "TT-Kapsel Typ 40-Hülle", "Interiors.Default.Versions.TTCapsuleType50": "TT-Kapsel Typ 50-Hülle", "Interiors.Default.Versions.TTCapsuleType55": "TT-Kapsel Typ 55-Hülle", - "Interiors.Default.Versions.TTCapsuleType55B": "TT-Kapsel Typ 55-B-Hülle", "Interiors.DefaultSIDRAT": "Standard SIDRAT", "Interiors.DefaultTTCapsuleType40": "Standard TT-Kapsel Typ 40", "Interiors.DefaultTTCapsuleType50": "Standard TT-Kapsel Typ 50", "Interiors.DefaultTTCapsuleType55": "Standard TT-Kapsel Typ 55", - "Interiors.DefaultTTCapsuleType55B": "Standard TT-Kapsel Typ 55-B", "Lock.Locked": "Diese TARDIS ist abgesperrt", "MenuOptions.ConfirmResetSettings": "Alle clientseitigen Einstellungen zurücksetzen? Dies kann nicht rückgängig gemacht werden.", "MenuOptions.ConfirmSectionReset": "Clientseitige Einstellungen des Abschnitts \"%s\" zurücksetzen? Dies kann nicht rückgängig gemacht werden.", @@ -301,6 +366,7 @@ "Screens.Chameleon.Apply": "Anwenden", "Screens.Chameleon.Categories": "Kategorien", "Screens.Chameleon.Exteriors": "Hüllen", + "Screens.Chameleon.Plan": "", "Screens.Chameleon.Reset": "Zurücksetzen", "Screens.Common.Back": "Zurück", "Screens.Common.CurrentPage": "Seite %d von %d", @@ -410,6 +476,8 @@ "Settings.Sections.Global.BoostSpeed.Description": "Die Erhöhung der Geschwindigkeit der TARDIS bei aktivierter Boost-Taste", "Settings.Sections.Global.EnableHealth": "Gesundheit ermöglichen", "Settings.Sections.Global.EnableHealth.Description": "Sollte die TARDIS Gesundheit haben und Schaden nehmen?", + "Settings.Sections.Global.HealthToShieldsRatio": "", + "Settings.Sections.Global.HealthToShieldsRatio.Description": "", "Settings.Sections.Global.MaxHealth": "Maximale Gesundheit", "Settings.Sections.Global.MaxHealth.Description": "Maximale Anzahl von Lebenspunkten der TARDIS", "Settings.Sections.Global.WaitLongForRepair": "Langes Reparieren aktivieren", @@ -452,6 +520,8 @@ "Settings.Sections.Misc.NotificationType.Types.ConsoleLog": "Konsolenprotokoll", "Settings.Sections.Misc.NotificationType.Types.Disabled": "Behinderte", "Settings.Sections.Misc.NotificationType.Types.Inbuilt": "Eingebaute Benachrichtigungen", + "Settings.Sections.Misc.ShowReleaseNotes": "", + "Settings.Sections.Misc.ShowReleaseNotes.Description": "", "Settings.Sections.Misc.Spawning": "Das Hervorbringen der TARDIS", "Settings.Sections.Misc.Spawning.LegacyDoorType": "Spawne mit altem Tür-Typ", "Settings.Sections.Misc.Spawning.LegacyDoorType.Description": "TARDIS-Türen werden den Spieler bei Klick reinteleportieren (anstatt diese zu öffnen)", @@ -579,6 +649,8 @@ "TipStyles.Default": "Standard (von innen eingestellt)", "TipStyles.WhiteOnBlue": "Weiß auf Blau", "TipStyles.WhiteOnGrey": "Weiß auf Grau", + "Update.ShowReleaseNotes": "", + "Update.Updated": "", "Vortex.ModelMissing": "WARNUNG: Vortex-Modell ungültig - Deaktivieren von Vortex, fehlt eine Abhängigkeit?", "Wiremod.Inputs.Ang": "X,Y,Z: Teleportwinkel", "Wiremod.Inputs.Demat": "Entmaterialisiere die TARDIS", diff --git a/i18n/languages/en.json b/i18n/languages/en.json index 89b6d8dcb..52991da86 100644 --- a/i18n/languages/en.json +++ b/i18n/languages/en.json @@ -3,6 +3,11 @@ "Author": "TARDIS Development Team", "Phrases": { "Artron.Depleted": "Artron energy depleted", + "ArtronInhibitor": "Artron Inhibitor", + "ArtronInhibitor.Disabled": "Artron inhibitor disabled", + "ArtronInhibitor.Enabled": "Artron inhibitor enabled", + "ArtronInhibitor.Instructions": "Creates an Artron Inhibitor field, which drains Artron Energy from nearby TARDISes", + "ArtronInhibitor.Starting": "Starting the artron inhibitor...", "Binds.AnyKey": "Press any key", "Binds.Invalid": "Invalid", "Binds.Key": "Key", @@ -10,16 +15,26 @@ "Binds.Sections.Destination.Backward": "Backward", "Binds.Sections.Destination.Boost": "Boost", "Binds.Sections.Destination.Boost.Description": "Hold this key while navigating to speed up", + "Binds.Sections.Destination.Chameleon": "Change chameleon circuit", + "Binds.Sections.Destination.Chameleon.Description": "Press this key to select the chameleon circuit preset", "Binds.Sections.Destination.Down": "Down", + "Binds.Sections.Destination.FindRandom": "Find Random", + "Binds.Sections.Destination.FindRandom.Description": "Press this key to find a random destination", "Binds.Sections.Destination.Forward": "Forward", + "Binds.Sections.Destination.Jump": "Jump to surface", + "Binds.Sections.Destination.Jump.Description": "Hold this key to select a surface and move to it", "Binds.Sections.Destination.Left": "Left", "Binds.Sections.Destination.Right": "Right", "Binds.Sections.Destination.Rotate": "Rotate", "Binds.Sections.Destination.Rotate.Description": "Hold this with the boost and left or right keys to rotate", + "Binds.Sections.Destination.ShowCurrent": "Show current destination", + "Binds.Sections.Destination.ShowCurrent.Description": "Press this key to show the current set destination", "Binds.Sections.Destination.Slow": "Slow", "Binds.Sections.Destination.Slow.Description": "Hold this key to slow movement", - "Binds.Sections.Destination.SnapToFloor": "Snap To Floor", + "Binds.Sections.Destination.SnapToFloor": "Snap to Floor", "Binds.Sections.Destination.SnapToFloor.Description": "Press this key to snap to the nearest floor", + "Binds.Sections.Destination.ToggleRotationMode": "Toggle Rotation Mode", + "Binds.Sections.Destination.ToggleRotationMode.Description": "Press this key to toggle rotation mode", "Binds.Sections.Destination.Up": "Up", "Binds.Sections.Flight": "Flight", "Binds.Sections.Flight.Backward": "Backward", @@ -33,6 +48,10 @@ "Binds.Sections.Flight.Rotate.Description": "Hold this key while using left and right to rotate", "Binds.Sections.Flight.SpinDirection": "Spin Direction", "Binds.Sections.Flight.SpinDirection.Description": "Changes which way the TARDIS rotates while flying", + "Binds.Sections.Flight.Tracking": "Tracking", + "Binds.Sections.Flight.Tracking.Description": "Hold to select an entity to track / follow", + "Binds.Sections.Flight.TrackRotation": "Track Rotation", + "Binds.Sections.Flight.TrackRotation.Description": "Toggle tracking the target entities rotation", "Binds.Sections.Flight.Up": "Up", "Binds.Sections.Float": "Float", "Binds.Sections.Float.Backward": "Backward", @@ -59,8 +78,12 @@ "Binds.Sections.ThirdPerson.ToggleFlight": "Toggle Flight", "Binds.Sections.ThirdPerson.ToggleFloat": "Toggle Float", "Binds.Sections.ThirdPerson.ToggleFloat.Description": "Lets the TARDIS fly as if there is no gravity", + "Binds.Sections.ThirdPerson.ToggleHandbrake": "Toggle Handbrake", "Binds.Sections.ThirdPerson.TogglePhyslock": "Toggle Physlock", "Binds.Sections.ThirdPerson.TogglePhyslock.Description": "Make the TARDIS constant and unmovable in space", + "Binds.Sections.ThirdPerson.TogglePower": "Toggle Power", + "Binds.Sections.ThirdPerson.ToggleVortex": "Toggle Vortex", + "Chameleon.ExteriorPlanned": "An exterior change has been planned. It will apply when the TARDIS next lands", "Chameleon.ExteriorSelected": "A new exterior has been selected", "Chameleon.FailedExteriorSelect": "Failed to select a new exterior", "Chameleon.FailReasons.AlreadyChanging": "The exterior is being changed already!", @@ -184,6 +207,9 @@ "Controls.Repair.FailedToggle": "Failed to toggle self-repair", "Controls.Repair.Tip": "Self-Repair", "Controls.Scanner.Tip": "Scanner", + "Controls.Shields": "Shields", + "Controls.Shields.FailedToggle": "Failed to toggle shields", + "Controls.Shields.Status": "Shields", "Controls.Shields.Tip": "Shields", "Controls.SonicDispenser.AlreadyEquipped": "You are already holding a Sonic Screwdriver", "Controls.SonicDispenser.Dispensed": "Sonic Screwdriver has been dispensed", @@ -219,28 +245,55 @@ "Controls.ToggleScreens.FailedToggle": "Failed to toggle interior screens", "Controls.ToggleScreens.Status": "Interior screens", "Controls.ToggleScreens.Tip": "Toggle Screen", + "Controls.Tracking": "Tracking", + "Controls.Tracking.ConstrainedFail": "Can't track entities that are attached to this TARDIS", + "Controls.Tracking.DistanceFail": "Can't track entities that are too far away", + "Controls.Tracking.FlightFail": "Failed to enable flight mode for tracking", + "Controls.Tracking.GenericFail": "Failed to track entity", + "Controls.Tracking.InteriorFail": "Can't track entities inside the TARDIS", + "Controls.Tracking.PhyslockFail": "Can't enable tracking when physlock is enabled", + "Controls.Tracking.PilotWarning": "WARNING: Tracking is enabled, press '%s' to change target or disable tracking", + "Controls.Tracking.Rotation": "Tracking rotation", + "Controls.Tracking.RotationChangedAuto": "Tracking rotation %s automatically based on target's rotation", + "Controls.Tracking.RotationHint": "Press '%s' to toggle tracking target rotation", + "Controls.Tracking.SameTarget": "You are already tracking this entity", + "Controls.Tracking.SelfFail": "The TARDIS can't track itself", + "Controls.Tracking.SpinWarning": "WARNING: You can't change tracking direction while spinning is enabled", + "Controls.Tracking.Status": "Tracking", + "Controls.Tracking.Target": "Started tracking %s", + "Controls.Tracking.TargetLost": "Tracking target lost", + "Controls.Tracking.TargetTooFar": "Tracking target too far", "Controls.VirtualConsole.Tip": "Virtual Console", "Controls.VortexFlight": "Vortex Flight", "Controls.VortexFlight.FailedToggle": "Failed to toggle vortex flight", "Controls.VortexFlight.Status": "Vortex flight", "Controls.VortexFlight.Tip": "Vortex Flight", + "CustomControls.Default.ToggleScreen.1": "Toggle screen 1", + "CustomControls.Default.ToggleScreen.1.FailedToggle": "Failed to toggle screen 1", + "CustomControls.Default.ToggleScreen.1.Status": "Screen 1", + "CustomControls.Default.ToggleScreen.1.Tip": "Screen 1", + "CustomControls.Default.ToggleScreen.2": "Toggle screen 2", + "CustomControls.Default.ToggleScreen.2.FailedToggle": "Failed to toggle screen 2", + "CustomControls.Default.ToggleScreen.2.Status": "Screen 2", + "CustomControls.Default.ToggleScreen.2.Tip": "Screen 2", "Destination.FailedDemat": "Failed to dematerialise", "Destination.FailedSetDestination": "Failed to set destination", "Destination.FailedSetDestinationMaybeTransitioning": "Failed to set destination, may be transitioning", "Destination.LockedDemat": "Destination locked, dematerialising...", "Destination.LockedReadyToDemat": "Destination locked, ready to dematerialise", "Destination.LockedReadyToMat": "Destination locked, ready to materialise", + "Destination.RotationMode": "Rotation mode", "Expression2.Error": "Can't call TARDIS functions on something other than a TARDIS", "Expression2.Security.UseDenied": "Can't call TARDIS set functions on another's TARDIS with Isomorphic Security active", "Exteriors.Categories.Misc": "Miscellaneous", "Exteriors.Categories.PoliceBoxes": "Police Boxes", "Exteriors.Categories.TTCapsules": "TT Capsules", "Exteriors.DefaultPoliceBox": "Default Police Box", + "Exteriors.LegacyPoliceBox": "Legacy Police Box", "Exteriors.SIDRAT": "SIDRAT", "Exteriors.TTCapsuleType40": "TT Capsule Type 40", "Exteriors.TTCapsuleType50": "TT Capsule Type 50", "Exteriors.TTCapsuleType55": "TT Capsule Type 55", - "Exteriors.TTCapsuleType55B": "TT Capsule Type 55-B", "Flight.DoorOpenNoBoost": "Boost doesn't work with doors open", "Flight.NameIsNowThePilot": "%s is now the pilot", "Flight.NameIsThePilot": "%s is the pilot", @@ -260,16 +313,28 @@ "Interior.FindingPositionFailed.NoSpace": "WARNING: Unable to locate space for interior, you can try again or use a different map", "Interior.FoundPosition": "Done!", "Interiors.Default": "Default", + "Interiors.Default.CustomSettings.ClassicDoorsButton": "Enable button (classic doors version)", + "Interiors.Default.CustomSettings.Color": "Interior color", + "Interiors.Default.CustomSettings.Color.Blue": "Blue", + "Interiors.Default.CustomSettings.Color.Dynamic": "Dynamic (changes slowly)", + "Interiors.Default.CustomSettings.Color.Green": "Green", + "Interiors.Default.CustomSettings.Color.Random": "Random", + "Interiors.Default.CustomSettings.Color.Turquoise": "Turquoise", + "Interiors.Default.CustomSettings.Lamps": "Lamps", + "Interiors.Default.CustomSettings.Lamps.Few": "Few (optimal for performance)", + "Interiors.Default.CustomSettings.Lamps.Many": "Many (best visuals)", + "Interiors.Default.CustomSettings.Lamps.Off": "Disabled", + "Interiors.Default.CustomSettings.ScreensOff": "Screen disabled on spawn", + "Interiors.Default.CustomSettings.SmallVersion": "Small interior (less corridors)", + "Interiors.Default.Versions.ClassicDoors": "Classic doors version", "Interiors.Default.Versions.SIDRAT": "SIDRAT Exterior", "Interiors.Default.Versions.TTCapsuleType40": "TT Capsule Type 40 Exterior", "Interiors.Default.Versions.TTCapsuleType50": "TT Capsule Type 50 Exterior", "Interiors.Default.Versions.TTCapsuleType55": "TT Capsule Type 55 Exterior", - "Interiors.Default.Versions.TTCapsuleType55B": "TT Capsule Type 55-B Exterior", "Interiors.DefaultSIDRAT": "SIDRAT Default", "Interiors.DefaultTTCapsuleType40": "TT Capsule Type 40 Default", "Interiors.DefaultTTCapsuleType50": "TT Capsule Type 50 Default", "Interiors.DefaultTTCapsuleType55": "TT Capsule Type 55 Default", - "Interiors.DefaultTTCapsuleType55B": "TT Capsule Type 55-B Default", "Lock.Locked": "This TARDIS is locked", "MenuOptions.ConfirmResetSettings": "Reset all clientside settings? This cannot be undone.", "MenuOptions.ConfirmSectionReset": "Reset clientside settings of section \"%s\"? This cannot be undone.", @@ -301,6 +366,7 @@ "Screens.Chameleon.Apply": "Apply", "Screens.Chameleon.Categories": "Categories", "Screens.Chameleon.Exteriors": "Exteriors", + "Screens.Chameleon.Plan": "Plan", "Screens.Chameleon.Reset": "Reset", "Screens.Common.Back": "Back", "Screens.Common.CurrentPage": "Page %d of %d", @@ -410,6 +476,8 @@ "Settings.Sections.Global.BoostSpeed.Description": "The increase of speed the TARDIS gets with the boost key enabled", "Settings.Sections.Global.EnableHealth": "Enable Health", "Settings.Sections.Global.EnableHealth.Description": "Should the TARDIS have health and take damage?", + "Settings.Sections.Global.HealthToShieldsRatio": "Health to shields ratio", + "Settings.Sections.Global.HealthToShieldsRatio.Description": "Higher ratios give more health but less shields, combined health / shields remains the same", "Settings.Sections.Global.MaxHealth": "Max Health", "Settings.Sections.Global.MaxHealth.Description": "Maximum ammount of health the TARDIS has", "Settings.Sections.Global.WaitLongForRepair": "Enable long repair", @@ -452,6 +520,8 @@ "Settings.Sections.Misc.NotificationType.Types.ConsoleLog": "Console log", "Settings.Sections.Misc.NotificationType.Types.Disabled": "Disabled", "Settings.Sections.Misc.NotificationType.Types.Inbuilt": "In-built notifications", + "Settings.Sections.Misc.ShowReleaseNotes": "Show release notes", + "Settings.Sections.Misc.ShowReleaseNotes.Description": "Should release notes be shown when the TARDIS is updated?", "Settings.Sections.Misc.Spawning": "Spawning the TARDIS", "Settings.Sections.Misc.Spawning.LegacyDoorType": "Spawn with legacy doors type", "Settings.Sections.Misc.Spawning.LegacyDoorType.Description": "TARDIS doors will teleport the player inside when clicked on (instead of opening)", @@ -579,6 +649,8 @@ "TipStyles.Default": "Default (set by interior)", "TipStyles.WhiteOnBlue": "White on blue", "TipStyles.WhiteOnGrey": "White on grey", + "Update.ShowReleaseNotes": "Would you like to find out more?", + "Update.Updated": "The TARDIS has been updated to version %s", "Vortex.ModelMissing": "WARNING: Vortex model invalid - disabling vortex, are you missing a dependency?", "Wiremod.Inputs.Ang": "X,Y,Z: Teleport angle", "Wiremod.Inputs.Demat": "Dematerialise the TARDIS", diff --git a/i18n/languages/es-ES.json b/i18n/languages/es-ES.json index 5fd97780a..98bb2503c 100644 --- a/i18n/languages/es-ES.json +++ b/i18n/languages/es-ES.json @@ -3,6 +3,11 @@ "Author": "Franco D.M. (francodml), Custom Doctor (reisoglu.cem), covauski3", "Phrases": { "Artron.Depleted": "Energía artron agotada", + "ArtronInhibitor": "", + "ArtronInhibitor.Disabled": "", + "ArtronInhibitor.Enabled": "", + "ArtronInhibitor.Instructions": "", + "ArtronInhibitor.Starting": "", "Binds.AnyKey": "Presiona cualquier tecla", "Binds.Invalid": "Inválido", "Binds.Key": "Tecla", @@ -10,16 +15,26 @@ "Binds.Sections.Destination.Backward": "Retroceder", "Binds.Sections.Destination.Boost": "Acelerar", "Binds.Sections.Destination.Boost.Description": "Mantén presionada esta tecla mientras navegas para ir más rápido", + "Binds.Sections.Destination.Chameleon": "", + "Binds.Sections.Destination.Chameleon.Description": "", "Binds.Sections.Destination.Down": "Abajo", + "Binds.Sections.Destination.FindRandom": "Encontrar Aleatorio", + "Binds.Sections.Destination.FindRandom.Description": "Presione esta tecla para encontrar un destino aleatorio", "Binds.Sections.Destination.Forward": "Avanzar", + "Binds.Sections.Destination.Jump": "Saltar a la superficie", + "Binds.Sections.Destination.Jump.Description": "Mantenga presionada esta tecla para seleccionar una superficie y moverse hacia ella", "Binds.Sections.Destination.Left": "Izquierda", "Binds.Sections.Destination.Right": "Derecha", "Binds.Sections.Destination.Rotate": "Rotar", "Binds.Sections.Destination.Rotate.Description": "Mantén esta tecla junto con Acelerar y las teclas Izquierda o Derecha para rotar", + "Binds.Sections.Destination.ShowCurrent": "", + "Binds.Sections.Destination.ShowCurrent.Description": "", "Binds.Sections.Destination.Slow": "Desacelerar", "Binds.Sections.Destination.Slow.Description": "Mantén presionada esta tecla para ir más lento", "Binds.Sections.Destination.SnapToFloor": "Alinear Al Suelo", "Binds.Sections.Destination.SnapToFloor.Description": "Presiona esta tecla para alinearte con el suelo", + "Binds.Sections.Destination.ToggleRotationMode": "", + "Binds.Sections.Destination.ToggleRotationMode.Description": "", "Binds.Sections.Destination.Up": "Arriba", "Binds.Sections.Flight": "Modo de vuelo", "Binds.Sections.Flight.Backward": "Retroceder", @@ -33,6 +48,10 @@ "Binds.Sections.Flight.Rotate.Description": "Mantén presionada esta tecla mientras presionas izquierda o derecha para rotar", "Binds.Sections.Flight.SpinDirection": "Sentido de rotación", "Binds.Sections.Flight.SpinDirection.Description": "Cambia el sentido de giro del TARDIS mientras vuelas", + "Binds.Sections.Flight.Tracking": "", + "Binds.Sections.Flight.Tracking.Description": "", + "Binds.Sections.Flight.TrackRotation": "", + "Binds.Sections.Flight.TrackRotation.Description": "", "Binds.Sections.Flight.Up": "Arriba", "Binds.Sections.Float": "Modo flotante", "Binds.Sections.Float.Backward": "Retroceder", @@ -59,8 +78,12 @@ "Binds.Sections.ThirdPerson.ToggleFlight": "Alternar Modo de Vuelo", "Binds.Sections.ThirdPerson.ToggleFloat": "Alternar Modo Flotante", "Binds.Sections.ThirdPerson.ToggleFloat.Description": "Permite al TARDIS volar como si no hubiera gravedad", + "Binds.Sections.ThirdPerson.ToggleHandbrake": "", "Binds.Sections.ThirdPerson.TogglePhyslock": "Alternar Bloqueo Físico", "Binds.Sections.ThirdPerson.TogglePhyslock.Description": "Hacer el TARDIS constante e inamovible en el espacio", + "Binds.Sections.ThirdPerson.TogglePower": "", + "Binds.Sections.ThirdPerson.ToggleVortex": "", + "Chameleon.ExteriorPlanned": "", "Chameleon.ExteriorSelected": "Un nuevo exterior ha sido seleccionado", "Chameleon.FailedExteriorSelect": "No se pudo seleccionar un nuevo exterior", "Chameleon.FailReasons.AlreadyChanging": "¡El exterior ya se está cambiando!", @@ -184,6 +207,9 @@ "Controls.Repair.FailedToggle": "No se pudo alternar la auto-reparación", "Controls.Repair.Tip": "Auto-Reparación", "Controls.Scanner.Tip": "Escáner", + "Controls.Shields": "", + "Controls.Shields.FailedToggle": "", + "Controls.Shields.Status": "", "Controls.Shields.Tip": "Escudos", "Controls.SonicDispenser.AlreadyEquipped": "Ya tienes un Destornillador Sónico", "Controls.SonicDispenser.Dispensed": "Se ha dispensado un Destornillador Sónico", @@ -219,28 +245,55 @@ "Controls.ToggleScreens.FailedToggle": "No se pudieron alternar los monitores interiores", "Controls.ToggleScreens.Status": "Monitores interiores", "Controls.ToggleScreens.Tip": "Alternar Monitor", + "Controls.Tracking": "", + "Controls.Tracking.ConstrainedFail": "", + "Controls.Tracking.DistanceFail": "", + "Controls.Tracking.FlightFail": "", + "Controls.Tracking.GenericFail": "", + "Controls.Tracking.InteriorFail": "", + "Controls.Tracking.PhyslockFail": "", + "Controls.Tracking.PilotWarning": "", + "Controls.Tracking.Rotation": "", + "Controls.Tracking.RotationChangedAuto": "", + "Controls.Tracking.RotationHint": "", + "Controls.Tracking.SameTarget": "", + "Controls.Tracking.SelfFail": "", + "Controls.Tracking.SpinWarning": "", + "Controls.Tracking.Status": "", + "Controls.Tracking.Target": "", + "Controls.Tracking.TargetLost": "", + "Controls.Tracking.TargetTooFar": "", "Controls.VirtualConsole.Tip": "Consola Virtual", "Controls.VortexFlight": "Vuelo de Vórtice", "Controls.VortexFlight.FailedToggle": "No se pudo alternar el vuelo de vórtice", "Controls.VortexFlight.Status": "Vuelo de vórtice", "Controls.VortexFlight.Tip": "Vuelo de Vórtice", + "CustomControls.Default.ToggleScreen.1": "", + "CustomControls.Default.ToggleScreen.1.FailedToggle": "", + "CustomControls.Default.ToggleScreen.1.Status": "", + "CustomControls.Default.ToggleScreen.1.Tip": "", + "CustomControls.Default.ToggleScreen.2": "", + "CustomControls.Default.ToggleScreen.2.FailedToggle": "", + "CustomControls.Default.ToggleScreen.2.Status": "", + "CustomControls.Default.ToggleScreen.2.Tip": "", "Destination.FailedDemat": "No se pudo desmaterializar", "Destination.FailedSetDestination": "No se pudo establecer el destino", "Destination.FailedSetDestinationMaybeTransitioning": "No se pudo establecer el destino, puede estar en transición", "Destination.LockedDemat": "Destino establecido, desmaterializando...", "Destination.LockedReadyToDemat": "Destino establecido, listo para desmaterializar", "Destination.LockedReadyToMat": "Destino establecido, listo para materializar", + "Destination.RotationMode": "Modo de rotación", "Expression2.Error": "No se pueden cargar funciones en otra cosa que no sea el TARDIS", "Expression2.Security.UseDenied": "No se pueden cargar las funciones fijadas en el TARDIS de otra persona con la Seguridad Isomórfica activada", "Exteriors.Categories.Misc": "Miscelánea", "Exteriors.Categories.PoliceBoxes": "Cabinas de Policía", "Exteriors.Categories.TTCapsules": "Cápsulas TT", "Exteriors.DefaultPoliceBox": "Cabina de Policía Predeterminada", + "Exteriors.LegacyPoliceBox": "", "Exteriors.SIDRAT": "SIDRAT", "Exteriors.TTCapsuleType40": "Cápsula TT Tipo 40", "Exteriors.TTCapsuleType50": "Cápsula TT Tipo 50", "Exteriors.TTCapsuleType55": "Cápsula TT Tipo 55", - "Exteriors.TTCapsuleType55B": "Cápsula TT Tipo 55-B", "Flight.DoorOpenNoBoost": "La aceleración no funciona con las puertas abiertas", "Flight.NameIsNowThePilot": "El piloto ahora es %s", "Flight.NameIsThePilot": "El piloto es %s", @@ -260,16 +313,28 @@ "Interior.FindingPositionFailed.NoSpace": "ADVERTENCIA: No se pudo encontrar espacio para el interior, puedes intentarlo de nuevo o utilizar un mapa diferente", "Interior.FoundPosition": "¡Listo!", "Interiors.Default": "Predeterminado", + "Interiors.Default.CustomSettings.ClassicDoorsButton": "", + "Interiors.Default.CustomSettings.Color": "", + "Interiors.Default.CustomSettings.Color.Blue": "", + "Interiors.Default.CustomSettings.Color.Dynamic": "", + "Interiors.Default.CustomSettings.Color.Green": "", + "Interiors.Default.CustomSettings.Color.Random": "", + "Interiors.Default.CustomSettings.Color.Turquoise": "", + "Interiors.Default.CustomSettings.Lamps": "", + "Interiors.Default.CustomSettings.Lamps.Few": "", + "Interiors.Default.CustomSettings.Lamps.Many": "", + "Interiors.Default.CustomSettings.Lamps.Off": "", + "Interiors.Default.CustomSettings.ScreensOff": "", + "Interiors.Default.CustomSettings.SmallVersion": "", + "Interiors.Default.Versions.ClassicDoors": "", "Interiors.Default.Versions.SIDRAT": "Exterior SIDRAT", "Interiors.Default.Versions.TTCapsuleType40": "Exterior Cápsula TT Tipo 40", "Interiors.Default.Versions.TTCapsuleType50": "Exterior Cápsula TT Tipo 50", "Interiors.Default.Versions.TTCapsuleType55": "Exterior Cápsula TT Tipo 55", - "Interiors.Default.Versions.TTCapsuleType55B": "Exterior Cápsula TT Tipo 55-B", "Interiors.DefaultSIDRAT": "Predeterminado SIDRAT", "Interiors.DefaultTTCapsuleType40": "Predeterminada Cápsula TT Tipo 40", "Interiors.DefaultTTCapsuleType50": "Predeterminada Cápsula TT Tipo 50", "Interiors.DefaultTTCapsuleType55": "Predeterminada Cápsula TT Tipo 55", - "Interiors.DefaultTTCapsuleType55B": "Predeterminada Cápsula TT Tipo 55-B", "Lock.Locked": "Este TARDIS tiene sus puertas trabadas", "MenuOptions.ConfirmResetSettings": "¿Restablecer todos los ajustes del cliente? Esto no se puede deshacer.", "MenuOptions.ConfirmSectionReset": "¿Restablecer los ajustes del cliente de la sección \"%s\"? Esto no se puede deshacer.", @@ -301,6 +366,7 @@ "Screens.Chameleon.Apply": "Aplicar", "Screens.Chameleon.Categories": "Categorías", "Screens.Chameleon.Exteriors": "Exteriores", + "Screens.Chameleon.Plan": "", "Screens.Chameleon.Reset": "Restablecer", "Screens.Common.Back": "Volver", "Screens.Common.CurrentPage": "Página %d de %d", @@ -410,6 +476,8 @@ "Settings.Sections.Global.BoostSpeed.Description": "El aumento de velocidad que obtiene el TARDIS al presionar la tecla de aceleración", "Settings.Sections.Global.EnableHealth": "Habilitar Salud", "Settings.Sections.Global.EnableHealth.Description": "Controla si el TARDIS tiene salud y puede sufrir daños", + "Settings.Sections.Global.HealthToShieldsRatio": "", + "Settings.Sections.Global.HealthToShieldsRatio.Description": "", "Settings.Sections.Global.MaxHealth": "Salud máxima", "Settings.Sections.Global.MaxHealth.Description": "Cantidad máxima de salud que tiene el TARDIS", "Settings.Sections.Global.WaitLongForRepair": "Activar reparación larga", @@ -452,6 +520,8 @@ "Settings.Sections.Misc.NotificationType.Types.ConsoleLog": "Registro de consola", "Settings.Sections.Misc.NotificationType.Types.Disabled": "Desactivado", "Settings.Sections.Misc.NotificationType.Types.Inbuilt": "Notificaciones integradas", + "Settings.Sections.Misc.ShowReleaseNotes": "", + "Settings.Sections.Misc.ShowReleaseNotes.Description": "", "Settings.Sections.Misc.Spawning": "Creación del TARDIS", "Settings.Sections.Misc.Spawning.LegacyDoorType": "Crear con puertas del tipo antiguo", "Settings.Sections.Misc.Spawning.LegacyDoorType.Description": "Las puertas del TARDIS teletransportarán al jugador adentro cuando se haga clic en ellas (en lugar de abrirlas)", @@ -579,6 +649,8 @@ "TipStyles.Default": "Predeterminado (definido por el interior)", "TipStyles.WhiteOnBlue": "Blanco sobre azul", "TipStyles.WhiteOnGrey": "Blanco sobre gris", + "Update.ShowReleaseNotes": "", + "Update.Updated": "", "Vortex.ModelMissing": "ADVERTENCIA: El modelo del vórtice es inválido - desactivando vórtice. ¿Le falta una dependencia?", "Wiremod.Inputs.Ang": "X, Y, Z: Ángulo de teletransporte", "Wiremod.Inputs.Demat": "Desmaterializar el TARDIS", diff --git a/i18n/languages/fi.json b/i18n/languages/fi.json index 5a4f585e9..fc6fe4dc5 100644 --- a/i18n/languages/fi.json +++ b/i18n/languages/fi.json @@ -3,6 +3,11 @@ "Author": "TARDIS-kehitystiimi", "Phrases": { "Artron.Depleted": "", + "ArtronInhibitor": "", + "ArtronInhibitor.Disabled": "", + "ArtronInhibitor.Enabled": "", + "ArtronInhibitor.Instructions": "", + "ArtronInhibitor.Starting": "", "Binds.AnyKey": "Paina mitä tahansa näppäintä", "Binds.Invalid": "Virheellinen", "Binds.Key": "Avain", @@ -10,16 +15,26 @@ "Binds.Sections.Destination.Backward": "Taaksepäin", "Binds.Sections.Destination.Boost": "Boosti", "Binds.Sections.Destination.Boost.Description": "", + "Binds.Sections.Destination.Chameleon": "", + "Binds.Sections.Destination.Chameleon.Description": "", "Binds.Sections.Destination.Down": "", + "Binds.Sections.Destination.FindRandom": "", + "Binds.Sections.Destination.FindRandom.Description": "", "Binds.Sections.Destination.Forward": "Eteenpäin", + "Binds.Sections.Destination.Jump": "", + "Binds.Sections.Destination.Jump.Description": "", "Binds.Sections.Destination.Left": "Vasen", "Binds.Sections.Destination.Right": "Oikea", "Binds.Sections.Destination.Rotate": "", "Binds.Sections.Destination.Rotate.Description": "", + "Binds.Sections.Destination.ShowCurrent": "", + "Binds.Sections.Destination.ShowCurrent.Description": "", "Binds.Sections.Destination.Slow": "", "Binds.Sections.Destination.Slow.Description": "", "Binds.Sections.Destination.SnapToFloor": "", "Binds.Sections.Destination.SnapToFloor.Description": "", + "Binds.Sections.Destination.ToggleRotationMode": "", + "Binds.Sections.Destination.ToggleRotationMode.Description": "", "Binds.Sections.Destination.Up": "", "Binds.Sections.Flight": "", "Binds.Sections.Flight.Backward": "Taaksepäin", @@ -33,6 +48,10 @@ "Binds.Sections.Flight.Rotate.Description": "", "Binds.Sections.Flight.SpinDirection": "Pyörimissuunta", "Binds.Sections.Flight.SpinDirection.Description": "", + "Binds.Sections.Flight.Tracking": "", + "Binds.Sections.Flight.Tracking.Description": "", + "Binds.Sections.Flight.TrackRotation": "", + "Binds.Sections.Flight.TrackRotation.Description": "", "Binds.Sections.Flight.Up": "", "Binds.Sections.Float": "", "Binds.Sections.Float.Backward": "Taaksepäin", @@ -59,8 +78,12 @@ "Binds.Sections.ThirdPerson.ToggleFlight": "", "Binds.Sections.ThirdPerson.ToggleFloat": "", "Binds.Sections.ThirdPerson.ToggleFloat.Description": "", + "Binds.Sections.ThirdPerson.ToggleHandbrake": "", "Binds.Sections.ThirdPerson.TogglePhyslock": "", "Binds.Sections.ThirdPerson.TogglePhyslock.Description": "", + "Binds.Sections.ThirdPerson.TogglePower": "", + "Binds.Sections.ThirdPerson.ToggleVortex": "", + "Chameleon.ExteriorPlanned": "", "Chameleon.ExteriorSelected": "", "Chameleon.FailedExteriorSelect": "", "Chameleon.FailReasons.AlreadyChanging": "", @@ -184,6 +207,9 @@ "Controls.Repair.FailedToggle": "Itsekorjauksen päällekytkentä epäonnistui", "Controls.Repair.Tip": "Itsekorjaus", "Controls.Scanner.Tip": "Skanneri", + "Controls.Shields": "", + "Controls.Shields.FailedToggle": "", + "Controls.Shields.Status": "", "Controls.Shields.Tip": "Kilvet", "Controls.SonicDispenser.AlreadyEquipped": "", "Controls.SonicDispenser.Dispensed": "", @@ -219,28 +245,55 @@ "Controls.ToggleScreens.FailedToggle": "", "Controls.ToggleScreens.Status": "", "Controls.ToggleScreens.Tip": "", + "Controls.Tracking": "", + "Controls.Tracking.ConstrainedFail": "", + "Controls.Tracking.DistanceFail": "", + "Controls.Tracking.FlightFail": "", + "Controls.Tracking.GenericFail": "", + "Controls.Tracking.InteriorFail": "", + "Controls.Tracking.PhyslockFail": "", + "Controls.Tracking.PilotWarning": "", + "Controls.Tracking.Rotation": "", + "Controls.Tracking.RotationChangedAuto": "", + "Controls.Tracking.RotationHint": "", + "Controls.Tracking.SameTarget": "", + "Controls.Tracking.SelfFail": "", + "Controls.Tracking.SpinWarning": "", + "Controls.Tracking.Status": "", + "Controls.Tracking.Target": "", + "Controls.Tracking.TargetLost": "", + "Controls.Tracking.TargetTooFar": "", "Controls.VirtualConsole.Tip": "Virtuaalikonsoli", "Controls.VortexFlight": "", "Controls.VortexFlight.FailedToggle": "", "Controls.VortexFlight.Status": "", "Controls.VortexFlight.Tip": "", + "CustomControls.Default.ToggleScreen.1": "", + "CustomControls.Default.ToggleScreen.1.FailedToggle": "", + "CustomControls.Default.ToggleScreen.1.Status": "", + "CustomControls.Default.ToggleScreen.1.Tip": "", + "CustomControls.Default.ToggleScreen.2": "", + "CustomControls.Default.ToggleScreen.2.FailedToggle": "", + "CustomControls.Default.ToggleScreen.2.Status": "", + "CustomControls.Default.ToggleScreen.2.Tip": "", "Destination.FailedDemat": "", "Destination.FailedSetDestination": "", "Destination.FailedSetDestinationMaybeTransitioning": "", "Destination.LockedDemat": "", "Destination.LockedReadyToDemat": "", "Destination.LockedReadyToMat": "", + "Destination.RotationMode": "", "Expression2.Error": "", "Expression2.Security.UseDenied": "", "Exteriors.Categories.Misc": "", "Exteriors.Categories.PoliceBoxes": "Poliisipuhelinkopit", "Exteriors.Categories.TTCapsules": "TT Capsulet", "Exteriors.DefaultPoliceBox": "Oletuspoliisipuhelinkoppi", + "Exteriors.LegacyPoliceBox": "", "Exteriors.SIDRAT": "", "Exteriors.TTCapsuleType40": "", "Exteriors.TTCapsuleType50": "", "Exteriors.TTCapsuleType55": "", - "Exteriors.TTCapsuleType55B": "", "Flight.DoorOpenNoBoost": "", "Flight.NameIsNowThePilot": "", "Flight.NameIsThePilot": "", @@ -260,16 +313,28 @@ "Interior.FindingPositionFailed.NoSpace": "", "Interior.FoundPosition": "", "Interiors.Default": "", + "Interiors.Default.CustomSettings.ClassicDoorsButton": "", + "Interiors.Default.CustomSettings.Color": "", + "Interiors.Default.CustomSettings.Color.Blue": "", + "Interiors.Default.CustomSettings.Color.Dynamic": "", + "Interiors.Default.CustomSettings.Color.Green": "", + "Interiors.Default.CustomSettings.Color.Random": "", + "Interiors.Default.CustomSettings.Color.Turquoise": "", + "Interiors.Default.CustomSettings.Lamps": "", + "Interiors.Default.CustomSettings.Lamps.Few": "", + "Interiors.Default.CustomSettings.Lamps.Many": "", + "Interiors.Default.CustomSettings.Lamps.Off": "", + "Interiors.Default.CustomSettings.ScreensOff": "", + "Interiors.Default.CustomSettings.SmallVersion": "", + "Interiors.Default.Versions.ClassicDoors": "", "Interiors.Default.Versions.SIDRAT": "", "Interiors.Default.Versions.TTCapsuleType40": "", "Interiors.Default.Versions.TTCapsuleType50": "", "Interiors.Default.Versions.TTCapsuleType55": "", - "Interiors.Default.Versions.TTCapsuleType55B": "", "Interiors.DefaultSIDRAT": "", "Interiors.DefaultTTCapsuleType40": "", "Interiors.DefaultTTCapsuleType50": "", "Interiors.DefaultTTCapsuleType55": "", - "Interiors.DefaultTTCapsuleType55B": "", "Lock.Locked": "Tämä TARDIS on lukittu", "MenuOptions.ConfirmResetSettings": "", "MenuOptions.ConfirmSectionReset": "", @@ -301,6 +366,7 @@ "Screens.Chameleon.Apply": "", "Screens.Chameleon.Categories": "Luokat", "Screens.Chameleon.Exteriors": "", + "Screens.Chameleon.Plan": "", "Screens.Chameleon.Reset": "Nollaa", "Screens.Common.Back": "Takaisin", "Screens.Common.CurrentPage": "Sivu %d / %d", @@ -410,6 +476,8 @@ "Settings.Sections.Global.BoostSpeed.Description": "", "Settings.Sections.Global.EnableHealth": "", "Settings.Sections.Global.EnableHealth.Description": "", + "Settings.Sections.Global.HealthToShieldsRatio": "", + "Settings.Sections.Global.HealthToShieldsRatio.Description": "", "Settings.Sections.Global.MaxHealth": "", "Settings.Sections.Global.MaxHealth.Description": "", "Settings.Sections.Global.WaitLongForRepair": "Ota pitkä korjaus käyttöön", @@ -452,6 +520,8 @@ "Settings.Sections.Misc.NotificationType.Types.ConsoleLog": "", "Settings.Sections.Misc.NotificationType.Types.Disabled": "", "Settings.Sections.Misc.NotificationType.Types.Inbuilt": "", + "Settings.Sections.Misc.ShowReleaseNotes": "", + "Settings.Sections.Misc.ShowReleaseNotes.Description": "", "Settings.Sections.Misc.Spawning": "", "Settings.Sections.Misc.Spawning.LegacyDoorType": "", "Settings.Sections.Misc.Spawning.LegacyDoorType.Description": "", @@ -579,6 +649,8 @@ "TipStyles.Default": "", "TipStyles.WhiteOnBlue": "", "TipStyles.WhiteOnGrey": "", + "Update.ShowReleaseNotes": "", + "Update.Updated": "", "Vortex.ModelMissing": "", "Wiremod.Inputs.Ang": "", "Wiremod.Inputs.Demat": "", diff --git a/i18n/languages/fr.json b/i18n/languages/fr.json index 387d9ed8f..9e1e649de 100644 --- a/i18n/languages/fr.json +++ b/i18n/languages/fr.json @@ -3,23 +3,38 @@ "Author": "Kirbe, Piquixel", "Phrases": { "Artron.Depleted": "Énergie artron épuisée", + "ArtronInhibitor": "", + "ArtronInhibitor.Disabled": "", + "ArtronInhibitor.Enabled": "", + "ArtronInhibitor.Instructions": "", + "ArtronInhibitor.Starting": "", "Binds.AnyKey": "Appuyez sur une touche", "Binds.Invalid": "Invalide", "Binds.Key": "Touche", "Binds.Sections.Destination": "Destination", "Binds.Sections.Destination.Backward": "Reculer", "Binds.Sections.Destination.Boost": "Accélérer", - "Binds.Sections.Destination.Boost.Description": "Maintenez cette touche enfoncée tout en naviguant pour accélérer", + "Binds.Sections.Destination.Boost.Description": "Maintenez cette touche tout en naviguant pour accélérer", + "Binds.Sections.Destination.Chameleon": "Changer le circuit caméléon", + "Binds.Sections.Destination.Chameleon.Description": "Appuyez sur cette touche pour sélectionner le préréglage du circuit caméléon", "Binds.Sections.Destination.Down": "Descendre", + "Binds.Sections.Destination.FindRandom": "Trouver aléatoirement", + "Binds.Sections.Destination.FindRandom.Description": "Appuyez sur cette touche pour trouver une destination aléatoire", "Binds.Sections.Destination.Forward": "Avancer", + "Binds.Sections.Destination.Jump": "Sauter à la surface", + "Binds.Sections.Destination.Jump.Description": "Maintenez cette touche pour sélectionner une surface et vous y déplacer", "Binds.Sections.Destination.Left": "Gauche", "Binds.Sections.Destination.Right": "Droite", "Binds.Sections.Destination.Rotate": "Pivoter", - "Binds.Sections.Destination.Rotate.Description": "Maintenez ce bouton avec les touches \"Accélération\" et \"Gauche\" ou \"Droite\" pour faire pivoter", + "Binds.Sections.Destination.Rotate.Description": "Maintenez ceci avec les touches \"Accélération\" et \"Gauche\" ou \"Droite\" pour pivoter", + "Binds.Sections.Destination.ShowCurrent": "Afficher la destination actuelle", + "Binds.Sections.Destination.ShowCurrent.Description": "Appuyez sur cette touche pour afficher la destination actuellement définie", "Binds.Sections.Destination.Slow": "Ralentir", - "Binds.Sections.Destination.Slow.Description": "Maintenez cette touche enfoncée pour ralentir le mouvement", + "Binds.Sections.Destination.Slow.Description": "Maintenez cette touche pour ralentir le mouvement", "Binds.Sections.Destination.SnapToFloor": "S'aligner au sol", "Binds.Sections.Destination.SnapToFloor.Description": "Appuyez sur cette touche pour s'aligner au sol", + "Binds.Sections.Destination.ToggleRotationMode": "Permuter le mode de rotation", + "Binds.Sections.Destination.ToggleRotationMode.Description": "Appuyez sur cette touche pour permuter le mode de rotation", "Binds.Sections.Destination.Up": "Monter", "Binds.Sections.Flight": "Vol", "Binds.Sections.Flight.Backward": "Reculer", @@ -33,7 +48,11 @@ "Binds.Sections.Flight.Rotate.Description": "Maintenez ce bouton enfoncé en utilisant les touches \"Gauche\" et \"Droite\" pour pivoter", "Binds.Sections.Flight.SpinDirection": "Direction de rotation", "Binds.Sections.Flight.SpinDirection.Description": "Change la direction dans laquelle le TARDIS pivote en volant", - "Binds.Sections.Flight.Up": "Haut", + "Binds.Sections.Flight.Tracking": "Suivi", + "Binds.Sections.Flight.Tracking.Description": "Maintenez pour sélectionner une entité à traquer / suivre", + "Binds.Sections.Flight.TrackRotation": "Suivi de rotation", + "Binds.Sections.Flight.TrackRotation.Description": "Activer le suivi de la rotation des entités ciblées", + "Binds.Sections.Flight.Up": "Monter", "Binds.Sections.Float": "Flottaison", "Binds.Sections.Float.Backward": "Reculer", "Binds.Sections.Float.Boost": "Accélérer", @@ -46,7 +65,7 @@ "Binds.Sections.Float.Rotate": "Pivoter", "Binds.Sections.Float.Rotate.Description": "Maintenez ce bouton enfoncé en utilisant les touches \"Gauche\" et \"Droite\" pour faire pivoter sur l'axe Z", "Binds.Sections.Teleport": "Téléportation", - "Binds.Sections.Teleport.Demat": "Décollage", + "Binds.Sections.Teleport.Demat": "Dématérialiser", "Binds.Sections.Teleport.Mat": "Matérialiser", "Binds.Sections.Teleport.Set": "Définir", "Binds.Sections.ThirdPerson": "Troisième personne", @@ -59,8 +78,12 @@ "Binds.Sections.ThirdPerson.ToggleFlight": "Activer/Desactiver le vol", "Binds.Sections.ThirdPerson.ToggleFloat": "Activer/Désactiver la flottaison", "Binds.Sections.ThirdPerson.ToggleFloat.Description": "Fait voler le TARDIS comme s'il n'y avait pas de gravité", + "Binds.Sections.ThirdPerson.ToggleHandbrake": "Activer/Désactiver le frein à main", "Binds.Sections.ThirdPerson.TogglePhyslock": "Activer/Désactiver le Verrou Physique", "Binds.Sections.ThirdPerson.TogglePhyslock.Description": "Rendez le TARDIS statique et immobile dans l'espace", + "Binds.Sections.ThirdPerson.TogglePower": "Activer/Désactiver l'allimentation", + "Binds.Sections.ThirdPerson.ToggleVortex": "Activer/Désactiver les vortex", + "Chameleon.ExteriorPlanned": "Une modification d'extérieur a été planifiée. Elle s'appliquera lors du prochain atterrissage du TARDIS", "Chameleon.ExteriorSelected": "Un nouvel extérieur a été sélectionné", "Chameleon.FailedExteriorSelect": "Échec lors de la sélection d'un nouvel extérieur", "Chameleon.FailReasons.AlreadyChanging": "L'extérieur est déjà en cours de modification!", @@ -131,8 +154,8 @@ "Controls.DoorLock.UsingEmergencyPower": "Utilisation de l'alimentation d'urgence pour désengager le verrou...", "Controls.EngineRelease": "Libération des Moteurs", "Controls.EngineRelease.ArtronAdded": "La santé a été sacrifiée afin de recharger l'énergie artron dans le vortex", - "Controls.EngineRelease.FailedDemat": "Échec du décollage", - "Controls.EngineRelease.ForceDemat": "Décollage forcée déclenchée", + "Controls.EngineRelease.FailedDemat": "Échec de la dématérialisation", + "Controls.EngineRelease.ForceDemat": "Dématérialisation forcée déclenchée", "Controls.EngineRelease.Tip": "Libération des Moteurs", "Controls.ExteriorLight": "Éclairage Extérieur", "Controls.ExteriorLight.Status": "Éclairage Extérieur", @@ -184,10 +207,13 @@ "Controls.Repair.FailedToggle": "Échec de l'activation l'auto-réparation", "Controls.Repair.Tip": "Auto-Réparation", "Controls.Scanner.Tip": "Scanneur", + "Controls.Shields": "Boucliers", + "Controls.Shields.FailedToggle": "Échec de l'activation des boucliers", + "Controls.Shields.Status": "Boucliers", "Controls.Shields.Tip": "Boucliers", - "Controls.SonicDispenser.AlreadyEquipped": "Vous êtes déjà en possession d'un sonique", - "Controls.SonicDispenser.Dispensed": "Un Sonique a été distribué", - "Controls.SonicDispenser.Equipped": "Un Sonique a été équipé", + "Controls.SonicDispenser.AlreadyEquipped": "Vous avez déjà un Tournevis Sonique", + "Controls.SonicDispenser.Dispensed": "Un Tournevis Sonique a été distribué", + "Controls.SonicDispenser.Equipped": "Un Tournevis Sonique a été équipé", "Controls.SonicDispenser.MissingAddon": "Vous n'avez pas l'addon \"Sonic Screwdriver\". Installez-le pour que cela fonctionne", "Controls.SonicDispenser.Tip": "Chargeur Sonique", "Controls.SpinCycle": "Direction de rotation", @@ -199,9 +225,9 @@ "Controls.Stabilizers.Tip": "Stabilisateurs de vol", "Controls.Teleport": "Téléporter", "Controls.Teleport.Demat": "Dématérialisation", - "Controls.Teleport.FailedDemat": "Échec du décollage", - "Controls.Teleport.FailedDematDoorsOpen": "Décollage impossible, les portes sont ouvertes", - "Controls.Teleport.FailedDematHandbrake": "Freins à main du routeur temporel engagé ! Décollage impossible", + "Controls.Teleport.FailedDemat": "Échec de la dématérialisation", + "Controls.Teleport.FailedDematDoorsOpen": "Dématérialisation impossible, les portes sont ouvertes", + "Controls.Teleport.FailedDematHandbrake": "Freins à main du routeur temporel engagé ! Dématérialisation impossible", "Controls.Teleport.FailedMat": "Échec de la matérialisation", "Controls.Teleport.Mat": "Matérialisation", "Controls.Teleport.Tip": "Accélérateur d'espace-temps", @@ -219,28 +245,55 @@ "Controls.ToggleScreens.FailedToggle": "Échec de l'activation des écrans intérieurs", "Controls.ToggleScreens.Status": "Écrans intérieurs", "Controls.ToggleScreens.Tip": "Activer les écrans", + "Controls.Tracking": "Traçage", + "Controls.Tracking.ConstrainedFail": "Impossible de tracer les entités attachées au TARDIS", + "Controls.Tracking.DistanceFail": "Impossible de tracer les entités trop éloignées", + "Controls.Tracking.FlightFail": "Échec de l'activation du mode vol pour le traçage", + "Controls.Tracking.GenericFail": "Échec du traçage de l'entité", + "Controls.Tracking.InteriorFail": "Impossible de tracer les entités à l'intérieur du TARDIS", + "Controls.Tracking.PhyslockFail": "Impossible d'activer le traçage lorsque le verrou physique est enclenché", + "Controls.Tracking.PilotWarning": "ATTENTION: Le traçage est activé, appuyez sur '%s' pour changer de cible ou désactiver le traçage", + "Controls.Tracking.Rotation": "Suivre la rotation", + "Controls.Tracking.RotationChangedAuto": "Suivi automatique de la rotation %s sur base de la rotation de la cible", + "Controls.Tracking.RotationHint": "Appuyez sur '%s' pour permuter le suivi de la rotation de la cible", + "Controls.Tracking.SameTarget": "Vous tracez déjà cette entité", + "Controls.Tracking.SelfFail": "Le TARDIS ne peut se tracer lui-même", + "Controls.Tracking.SpinWarning": "ATTENTION: Vous ne pouvez changer la direction du traçage lorsque la rotation est activée", + "Controls.Tracking.Status": "Traçage", + "Controls.Tracking.Target": "Traçage de %s commencé", + "Controls.Tracking.TargetLost": "Cible du traçage perdue", + "Controls.Tracking.TargetTooFar": "Cible du traçage trop éloignée", "Controls.VirtualConsole.Tip": "Console virtuelle", "Controls.VortexFlight": "Vol dans le Vortex", "Controls.VortexFlight.FailedToggle": "Échec de l'activation du vol dans le vortex", "Controls.VortexFlight.Status": "Vol dans le vortex", "Controls.VortexFlight.Tip": "Vol dans le Vortex", + "CustomControls.Default.ToggleScreen.1": "", + "CustomControls.Default.ToggleScreen.1.FailedToggle": "", + "CustomControls.Default.ToggleScreen.1.Status": "", + "CustomControls.Default.ToggleScreen.1.Tip": "", + "CustomControls.Default.ToggleScreen.2": "", + "CustomControls.Default.ToggleScreen.2.FailedToggle": "", + "CustomControls.Default.ToggleScreen.2.Status": "", + "CustomControls.Default.ToggleScreen.2.Tip": "", "Destination.FailedDemat": "Échec de la dématérialisation", "Destination.FailedSetDestination": "Échec de la définition d'une destination", "Destination.FailedSetDestinationMaybeTransitioning": "Échec de la définition d'une destination, peut être en cours de transition", - "Destination.LockedDemat": "Destination verrouillée, décollage...", - "Destination.LockedReadyToDemat": "Destination verrouillée, prêt pour le décollage", - "Destination.LockedReadyToMat": "Destination verrouillée, prêt pour atterrir", + "Destination.LockedDemat": "Destination verrouillée, dématérialisation...", + "Destination.LockedReadyToDemat": "Destination verrouillée, prêt pour la dématérialisation", + "Destination.LockedReadyToMat": "Destination verrouillée, prêt pour la matérialisation", + "Destination.RotationMode": "Mode de rotation", "Expression2.Error": "Impossible d'appeler les fonctions TARDIS sur autre chose qu'un TARDIS", "Expression2.Security.UseDenied": "Impossible d'appeler les procédures TARDIS sur le TARDIS d'un autre joueur ayant la sécurité isomorphique active", "Exteriors.Categories.Misc": "Divers", "Exteriors.Categories.PoliceBoxes": "Cabines de Police", "Exteriors.Categories.TTCapsules": "Capsules TT", "Exteriors.DefaultPoliceBox": "Cabine de Police par Défaut", + "Exteriors.LegacyPoliceBox": "", "Exteriors.SIDRAT": "SIDRAT", "Exteriors.TTCapsuleType40": "Capsule TT Type 40", "Exteriors.TTCapsuleType50": "Capsule TT Type 50", "Exteriors.TTCapsuleType55": "Capsule TT Type 55", - "Exteriors.TTCapsuleType55B": "Capsule TT Type 55-B", "Flight.DoorOpenNoBoost": "L'accélération ne fonctionne pas avec les portes ouvertes", "Flight.NameIsNowThePilot": "%s Contrôle désormais votre TARDIS", "Flight.NameIsThePilot": "%s est le pilote", @@ -260,16 +313,28 @@ "Interior.FindingPositionFailed.NoSpace": "ATTENTION: Impossible de localiser l'espace pour l'intérieur, vous pouvez réessayer ou utiliser une map différente", "Interior.FoundPosition": "Terminé!", "Interiors.Default": "Par défaut", + "Interiors.Default.CustomSettings.ClassicDoorsButton": "", + "Interiors.Default.CustomSettings.Color": "", + "Interiors.Default.CustomSettings.Color.Blue": "", + "Interiors.Default.CustomSettings.Color.Dynamic": "", + "Interiors.Default.CustomSettings.Color.Green": "", + "Interiors.Default.CustomSettings.Color.Random": "", + "Interiors.Default.CustomSettings.Color.Turquoise": "", + "Interiors.Default.CustomSettings.Lamps": "", + "Interiors.Default.CustomSettings.Lamps.Few": "", + "Interiors.Default.CustomSettings.Lamps.Many": "", + "Interiors.Default.CustomSettings.Lamps.Off": "", + "Interiors.Default.CustomSettings.ScreensOff": "", + "Interiors.Default.CustomSettings.SmallVersion": "", + "Interiors.Default.Versions.ClassicDoors": "", "Interiors.Default.Versions.SIDRAT": "Extérieur SIDRAT", "Interiors.Default.Versions.TTCapsuleType40": "Extérieur Capsule TT Type 40", "Interiors.Default.Versions.TTCapsuleType50": "Extérieur Capsule TT Type 50", "Interiors.Default.Versions.TTCapsuleType55": "Extérieur Capsule TT Type 55", - "Interiors.Default.Versions.TTCapsuleType55B": "Extérieur Capsule TT Type 55-B", "Interiors.DefaultSIDRAT": "SIDRAT par Défaut", "Interiors.DefaultTTCapsuleType40": "Capsule TT Type 40 par Défaut", "Interiors.DefaultTTCapsuleType50": "Capsule TT Type 50 par Défaut", "Interiors.DefaultTTCapsuleType55": "Capsule TT Type 55 par Défaut", - "Interiors.DefaultTTCapsuleType55B": "Capsule TT Type 55-B par Défaut", "Lock.Locked": "Ce TARDIS est verrouillé", "MenuOptions.ConfirmResetSettings": "Réinitialiser tous vos paramètres? Cette action est irréversible.", "MenuOptions.ConfirmSectionReset": "Réinitialiser vos paramètres de la section \"%s\" ? Cette action est irréversible.", @@ -296,11 +361,12 @@ "Parts.Door.Locked": "Les portes sont verrouillées", "Prompts.LightingOverride": "Ce TARDIS recommande le remplacement d'éclairage que vous n'avez pas activé. Activer maintenant ? Cela peut être modifié dans les paramètres TARDIS plus tard", "Prompts.LOD": "L'intérieur du TARDIS peut nécessiter les détails de modèle élevé, définir maintenant ?", - "Redecorate.Failed": "Échec de la reconstruction : impossible de faire apparaître le remplacement", + "Redecorate.Failed": "Échec de la reconstruction: impossible de faire apparaître le remplacement", "Screens.Chameleon": "Circuit Caméléon", "Screens.Chameleon.Apply": "Appliquer", "Screens.Chameleon.Categories": "Catégories", "Screens.Chameleon.Exteriors": "Extérieurs", + "Screens.Chameleon.Plan": "Plan", "Screens.Chameleon.Reset": "Réinitialiser", "Screens.Common.Back": "Retour", "Screens.Common.CurrentPage": "Page %d sur %d", @@ -366,7 +432,7 @@ "Screens.VirtualConsole.Old.OpenDoor": "Ouvrir les portes", "Screens.VirtualConsole.Old.Physlock": "Verrou Physique", "Screens.VirtualConsole.Old.Repair": "Réparer le TARDIS", - "Screens.VirtualConsole.Old.TogglePower": "Activation de l'alimentation", + "Screens.VirtualConsole.Old.TogglePower": "Activer l'alimentation", "Screens.VirtualConsole.Old.UnlockDoor": "Déverrouiller les portes", "Security.ControlUseDenied": "Sécurité Isomorphique engagé . Vous n'êtes pas autorisé à utiliser les commandes", "Settings.NoPermissionGlobalSettings": "Vous n'avez pas la permission de modifier les paramètres globaux", @@ -410,6 +476,8 @@ "Settings.Sections.Global.BoostSpeed.Description": "L'augmentation de la vitesse que le TARDIS obtient avec la touche \"Accélération\" enfoncée", "Settings.Sections.Global.EnableHealth": "Activer la santé", "Settings.Sections.Global.EnableHealth.Description": "Le TARDIS devrait-il avoir de la santé et subir des dégâts ?", + "Settings.Sections.Global.HealthToShieldsRatio": "", + "Settings.Sections.Global.HealthToShieldsRatio.Description": "Des ratios plus élevés apportent plus santé mais moins de boucliers, la combinaison santé / boucliers reste la même", "Settings.Sections.Global.MaxHealth": "Santé maximale", "Settings.Sections.Global.MaxHealth.Description": "Quantité maximale de santé que le TARDIS a", "Settings.Sections.Global.WaitLongForRepair": "Activer la réparation longue", @@ -452,6 +520,8 @@ "Settings.Sections.Misc.NotificationType.Types.ConsoleLog": "Log de la console", "Settings.Sections.Misc.NotificationType.Types.Disabled": "Désactivé", "Settings.Sections.Misc.NotificationType.Types.Inbuilt": "Notifications intégrées", + "Settings.Sections.Misc.ShowReleaseNotes": "", + "Settings.Sections.Misc.ShowReleaseNotes.Description": "", "Settings.Sections.Misc.Spawning": "Faire apparaître le TARDIS", "Settings.Sections.Misc.Spawning.LegacyDoorType": "Faire apparaitre avec les portes de type \"héritage\"", "Settings.Sections.Misc.Spawning.LegacyDoorType.Description": "Les portes du TARDIS téléporteront le joueur à l'intérieur lors de l'interaction (au lieu de s'ouvrir)", @@ -579,7 +649,9 @@ "TipStyles.Default": "Par défaut (défini par l'intérieur)", "TipStyles.WhiteOnBlue": "Blanc sur bleu", "TipStyles.WhiteOnGrey": "Blanc sur gris", - "Vortex.ModelMissing": "ATTENTION : modèle de vortex invalide - désactivation des vortexs, avez-vous tous les Addons ?", + "Update.ShowReleaseNotes": "", + "Update.Updated": "", + "Vortex.ModelMissing": "ATTENTION: modèle de vortex invalide - désactivation des vortex, vous manque-t-il une dépendance?", "Wiremod.Inputs.Ang": "X,Y,Z: Angle de téléportation", "Wiremod.Inputs.Demat": "Dématérialiser le TARDIS", "Wiremod.Inputs.Mat": "Matérialiser le TARDIS", diff --git a/i18n/languages/pt-BR.json b/i18n/languages/pt-BR.json index d879204a9..abbdcb1a9 100644 --- a/i18n/languages/pt-BR.json +++ b/i18n/languages/pt-BR.json @@ -3,6 +3,11 @@ "Author": "covauski3", "Phrases": { "Artron.Depleted": "Energia artron esgotada", + "ArtronInhibitor": "Inibidor Artron", + "ArtronInhibitor.Disabled": "Inibidor artron desativado", + "ArtronInhibitor.Enabled": "Inibidor artron ativado", + "ArtronInhibitor.Instructions": "Cria um campo Inibidor Artron, drenando a Energia Artron de outras TARDISes próximas", + "ArtronInhibitor.Starting": "Inicializando o inibidor artron...", "Binds.AnyKey": "Aperte qualquer tecla", "Binds.Invalid": "Inválido", "Binds.Key": "Tecla", @@ -10,16 +15,26 @@ "Binds.Sections.Destination.Backward": "Para trás", "Binds.Sections.Destination.Boost": "Acelerar", "Binds.Sections.Destination.Boost.Description": "Segure esta tecla enquanto estiver navegando para acelerar", + "Binds.Sections.Destination.Chameleon": "Alterar o circuito camaleão", + "Binds.Sections.Destination.Chameleon.Description": "Pressione esta tecla para selecionar a predefinição do circuito camaleão", "Binds.Sections.Destination.Down": "Para baixo", + "Binds.Sections.Destination.FindRandom": "Encontrar Destino Aleatório", + "Binds.Sections.Destination.FindRandom.Description": "Pressione esta tecla para encontrar um destino aleatório", "Binds.Sections.Destination.Forward": "Para frente", + "Binds.Sections.Destination.Jump": "Saltar para superfície", + "Binds.Sections.Destination.Jump.Description": "Segure esta tecla para selecionar uma superfície e mover-se para ela", "Binds.Sections.Destination.Left": "Esquerda", "Binds.Sections.Destination.Right": "Direita", "Binds.Sections.Destination.Rotate": "Rotacionar", "Binds.Sections.Destination.Rotate.Description": "Segure esta tecla e a de aceleração e use esquerda e direita para rotacionar", + "Binds.Sections.Destination.ShowCurrent": "Mostrar o destino atual", + "Binds.Sections.Destination.ShowCurrent.Description": "Pressione esta tecla para mostrar o destino atual definido", "Binds.Sections.Destination.Slow": "Desacelerar", "Binds.Sections.Destination.Slow.Description": "Segure esta tecla para desacelerar o movimento", "Binds.Sections.Destination.SnapToFloor": "Grudar ao chão", "Binds.Sections.Destination.SnapToFloor.Description": "Pressione esta tecla para grudar ao chão mais próximo", + "Binds.Sections.Destination.ToggleRotationMode": "Alternar o modo de rotação", + "Binds.Sections.Destination.ToggleRotationMode.Description": "Pressione esta tecla para alternar o modo de rotação", "Binds.Sections.Destination.Up": "Para cima", "Binds.Sections.Flight": "Voo", "Binds.Sections.Flight.Backward": "Para trás", @@ -33,6 +48,10 @@ "Binds.Sections.Flight.Rotate.Description": "Segure esta tecla e use esquerda e direita para rotacionar", "Binds.Sections.Flight.SpinDirection": "Direção do Giro", "Binds.Sections.Flight.SpinDirection.Description": "Alterna a direção em que a TARDIS rotaciona enquanto voa", + "Binds.Sections.Flight.Tracking": "Rastreamento", + "Binds.Sections.Flight.Tracking.Description": "Segure para selecionar uma entidade para rastrear/seguir", + "Binds.Sections.Flight.TrackRotation": "Rotação do Rastreamento", + "Binds.Sections.Flight.TrackRotation.Description": "Alternar a rotação do rastreamento das entidades alvo", "Binds.Sections.Flight.Up": "Para cima", "Binds.Sections.Float": "Flutuar", "Binds.Sections.Float.Backward": "Para trás", @@ -59,8 +78,12 @@ "Binds.Sections.ThirdPerson.ToggleFlight": "Alternar Voo", "Binds.Sections.ThirdPerson.ToggleFloat": "Alternar Flutuador", "Binds.Sections.ThirdPerson.ToggleFloat.Description": "Deixa a TARDIS voar como se não houvesse gravidade", + "Binds.Sections.ThirdPerson.ToggleHandbrake": "Alternar Freio de Mão", "Binds.Sections.ThirdPerson.TogglePhyslock": "Alternar Trava Física", "Binds.Sections.ThirdPerson.TogglePhyslock.Description": "Torna a TARDIS estática e imóvel no espaço", + "Binds.Sections.ThirdPerson.TogglePower": "Alternar Energia", + "Binds.Sections.ThirdPerson.ToggleVortex": "Alternar Vórtice", + "Chameleon.ExteriorPlanned": "Uma mudança do exterior foi planejada. Será aplicada na próxima vez que a TARDIS pousar", "Chameleon.ExteriorSelected": "Um novo exterior foi selecionado", "Chameleon.FailedExteriorSelect": "Falha ao selecionar um novo exterior", "Chameleon.FailReasons.AlreadyChanging": "O exterior já está sendo mudado!", @@ -184,6 +207,9 @@ "Controls.Repair.FailedToggle": "Falha ao alternar o auto-reparo", "Controls.Repair.Tip": "Auto-Reparo", "Controls.Scanner.Tip": "Scanner", + "Controls.Shields": "Escudos", + "Controls.Shields.FailedToggle": "Falha ao Alternar os Escudos", + "Controls.Shields.Status": "Escudos", "Controls.Shields.Tip": "Escudos", "Controls.SonicDispenser.AlreadyEquipped": "Você já está segurando uma Chave de Fenda Sônica", "Controls.SonicDispenser.Dispensed": "Chave de Fenda Sônica foi ejetada", @@ -219,28 +245,55 @@ "Controls.ToggleScreens.FailedToggle": "Falha ao alternar as telas internas", "Controls.ToggleScreens.Status": "Telas internas", "Controls.ToggleScreens.Tip": "Alternar Tela", + "Controls.Tracking": "Rastreando", + "Controls.Tracking.ConstrainedFail": "Não é possível rastrear entidades anexadas a esta TARDIS", + "Controls.Tracking.DistanceFail": "Não é possível rastrear entidades que estão muito distantes", + "Controls.Tracking.FlightFail": "Falha ao ativar o modo de voo para rastreamento", + "Controls.Tracking.GenericFail": "Falha ao rastrear entidade", + "Controls.Tracking.InteriorFail": "Não é possível rastrear entidades dentro da TARDIS", + "Controls.Tracking.PhyslockFail": "Não é possível ativar o rastreamento quando o travamento físico está ativado", + "Controls.Tracking.PilotWarning": "AVISO: O rastreamento está ativado, pressione '%s' para alterar o alvo ou desativar o rastreamento", + "Controls.Tracking.Rotation": "Rotação do Rastreamento", + "Controls.Tracking.RotationChangedAuto": "Rastreando a rotação %s automaticamente com base na rotação do alvo", + "Controls.Tracking.RotationHint": "Pressione '%s' para alternar a rotação do rastreamento do alvo", + "Controls.Tracking.SameTarget": "Você já está rastreando esta entidade", + "Controls.Tracking.SelfFail": "A TARDIS não consegue se rastrear", + "Controls.Tracking.SpinWarning": "AVISO: você não pode alterar a direção do rastreamento enquanto a rotação estiver ativada", + "Controls.Tracking.Status": "Rastreamento", + "Controls.Tracking.Target": "Rastreamento iniciado %s", + "Controls.Tracking.TargetLost": "Alvo de rastreamento perdido", + "Controls.Tracking.TargetTooFar": "Alvo de rastreamento perdido", "Controls.VirtualConsole.Tip": "Console Virtual", "Controls.VortexFlight": "Voo de Vórtex", "Controls.VortexFlight.FailedToggle": "Falha ao alternar voo de vórtex", "Controls.VortexFlight.Status": "Voo de vórtex", "Controls.VortexFlight.Tip": "Voo de Vórtex", + "CustomControls.Default.ToggleScreen.1": "", + "CustomControls.Default.ToggleScreen.1.FailedToggle": "", + "CustomControls.Default.ToggleScreen.1.Status": "", + "CustomControls.Default.ToggleScreen.1.Tip": "", + "CustomControls.Default.ToggleScreen.2": "", + "CustomControls.Default.ToggleScreen.2.FailedToggle": "", + "CustomControls.Default.ToggleScreen.2.Status": "", + "CustomControls.Default.ToggleScreen.2.Tip": "", "Destination.FailedDemat": "Falha ao desmaterializar", "Destination.FailedSetDestination": "Falha ao definir destino", "Destination.FailedSetDestinationMaybeTransitioning": "Falha ao definir destino, talvez esteja em transição", "Destination.LockedDemat": "Destino travado, desmaterializando...", "Destination.LockedReadyToDemat": "Destino travado, pronto para desmaterializar", "Destination.LockedReadyToMat": "Destino travado, pronto para materializar", + "Destination.RotationMode": "Modo de rotação", "Expression2.Error": "Impossível carregar as funções à algo que não seja uma TARDIS", "Expression2.Security.UseDenied": "Impossível carregar as funções definidas à TARDIS de outra pessoa com a Segurança Isomórfica ativa", "Exteriors.Categories.Misc": "Diversos", "Exteriors.Categories.PoliceBoxes": "Cabines Policiais", "Exteriors.Categories.TTCapsules": "Cápsulas TT", "Exteriors.DefaultPoliceBox": "Cabine Policial Padrão", + "Exteriors.LegacyPoliceBox": "", "Exteriors.SIDRAT": "SIDRAT", "Exteriors.TTCapsuleType40": "Cápsula TT Tipo 40", "Exteriors.TTCapsuleType50": "Cápsula TT Tipo 50", "Exteriors.TTCapsuleType55": "Cápsula TT Tipo 55", - "Exteriors.TTCapsuleType55B": "Cápsula TT Tipo 55-B", "Flight.DoorOpenNoBoost": "A aceleração não funciona com as portas abertas", "Flight.NameIsNowThePilot": "%s agora é o piloto", "Flight.NameIsThePilot": "%s é o piloto", @@ -260,16 +313,28 @@ "Interior.FindingPositionFailed.NoSpace": "AVISO: Não foi possível encontrar espaço para o interior, você pode tentar novamente ou usar um mapa diferente", "Interior.FoundPosition": "Pronto!", "Interiors.Default": "Padrão", + "Interiors.Default.CustomSettings.ClassicDoorsButton": "", + "Interiors.Default.CustomSettings.Color": "", + "Interiors.Default.CustomSettings.Color.Blue": "", + "Interiors.Default.CustomSettings.Color.Dynamic": "", + "Interiors.Default.CustomSettings.Color.Green": "", + "Interiors.Default.CustomSettings.Color.Random": "", + "Interiors.Default.CustomSettings.Color.Turquoise": "", + "Interiors.Default.CustomSettings.Lamps": "", + "Interiors.Default.CustomSettings.Lamps.Few": "", + "Interiors.Default.CustomSettings.Lamps.Many": "", + "Interiors.Default.CustomSettings.Lamps.Off": "", + "Interiors.Default.CustomSettings.ScreensOff": "", + "Interiors.Default.CustomSettings.SmallVersion": "", + "Interiors.Default.Versions.ClassicDoors": "", "Interiors.Default.Versions.SIDRAT": "Exterior SIDRAT", "Interiors.Default.Versions.TTCapsuleType40": "Exterior Cápsula TT Tipo 40", "Interiors.Default.Versions.TTCapsuleType50": "Exterior Cápsula TT Tipo 50", "Interiors.Default.Versions.TTCapsuleType55": "Exterior Cápsula TT Tipo 55", - "Interiors.Default.Versions.TTCapsuleType55B": "Exterior Cápsula TT Tipo 55-B", "Interiors.DefaultSIDRAT": "Padrão SIDRAT", "Interiors.DefaultTTCapsuleType40": "Padrão Cápsula TT Tipo 40", "Interiors.DefaultTTCapsuleType50": "Padrão Cápsula TT Tipo 50", "Interiors.DefaultTTCapsuleType55": "Padrão Cápsula TT Tipo 55", - "Interiors.DefaultTTCapsuleType55B": "Padrão Cápsula TT Tipo 55-B", "Lock.Locked": "Esta TARDIS está trancada", "MenuOptions.ConfirmResetSettings": "Redefinir todas as configurações do lado do cliente? Isso não pode ser desfeito.", "MenuOptions.ConfirmSectionReset": "Redefinir as configurações do lado do cliente da seção \"%s\"? Essa ação não pode ser desfeita.", @@ -301,6 +366,7 @@ "Screens.Chameleon.Apply": "Aplicar", "Screens.Chameleon.Categories": "Categorias", "Screens.Chameleon.Exteriors": "Exteriores", + "Screens.Chameleon.Plan": "Planejamento", "Screens.Chameleon.Reset": "Redefinir", "Screens.Common.Back": "Voltar", "Screens.Common.CurrentPage": "Página %d de %d", @@ -410,6 +476,8 @@ "Settings.Sections.Global.BoostSpeed.Description": "O aumento da velocidade que a TARDIS recebe com a tecla de aceleração ativada", "Settings.Sections.Global.EnableHealth": "Ativar Saúde", "Settings.Sections.Global.EnableHealth.Description": "A TARDIS deve ter saúde e sofrer danos?", + "Settings.Sections.Global.HealthToShieldsRatio": "Proporção entre saúde e escudos", + "Settings.Sections.Global.HealthToShieldsRatio.Description": "Proporções mais altas dão mais saúde, mas menos escudos, a combinação de saúde/escudos permanece a mesma", "Settings.Sections.Global.MaxHealth": "Vida Máxima", "Settings.Sections.Global.MaxHealth.Description": "Quantidade máxima de saúde que a TARDIS tem", "Settings.Sections.Global.WaitLongForRepair": "Ativar reparo longo", @@ -452,6 +520,8 @@ "Settings.Sections.Misc.NotificationType.Types.ConsoleLog": "Registro de console", "Settings.Sections.Misc.NotificationType.Types.Disabled": "Desativado", "Settings.Sections.Misc.NotificationType.Types.Inbuilt": "Notificações integradas", + "Settings.Sections.Misc.ShowReleaseNotes": "", + "Settings.Sections.Misc.ShowReleaseNotes.Description": "", "Settings.Sections.Misc.Spawning": "Criando a TARDIS", "Settings.Sections.Misc.Spawning.LegacyDoorType": "Criar com portas do tipo legado", "Settings.Sections.Misc.Spawning.LegacyDoorType.Description": "Clicar na porta da TARDIS teleportará o jogador para dentro (ao invés de abrir a porta)", @@ -579,6 +649,8 @@ "TipStyles.Default": "Padrão (definido pelo interior)", "TipStyles.WhiteOnBlue": "Branco no azul", "TipStyles.WhiteOnGrey": "Branco no cinza", + "Update.ShowReleaseNotes": "", + "Update.Updated": "", "Vortex.ModelMissing": "AVISO: Modelo de vórtex inválido - desabilitando o vórtex, está faltando uma dependência?", "Wiremod.Inputs.Ang": "X,Y,Z: Ângulo de teleporte", "Wiremod.Inputs.Demat": "Desmaterializar a TARDIS", diff --git a/i18n/languages/pt-PT.json b/i18n/languages/pt-PT.json index a7b5db6e1..5f7690e66 100644 --- a/i18n/languages/pt-PT.json +++ b/i18n/languages/pt-PT.json @@ -3,6 +3,11 @@ "Author": "covauski3", "Phrases": { "Artron.Depleted": "Energia artron esgotada", + "ArtronInhibitor": "Inibidor Artron", + "ArtronInhibitor.Disabled": "Inibidor artron desativado", + "ArtronInhibitor.Enabled": "Inibidor artron ativado", + "ArtronInhibitor.Instructions": "Cria um campo inibidor de Artron, drenando a Energia Artron de outras TARDISes próximas", + "ArtronInhibitor.Starting": "Inicializando o inibidor artron...", "Binds.AnyKey": "Aperte qualquer tecla", "Binds.Invalid": "Inválido", "Binds.Key": "Tecla", @@ -10,16 +15,26 @@ "Binds.Sections.Destination.Backward": "Para trás", "Binds.Sections.Destination.Boost": "Acelerar", "Binds.Sections.Destination.Boost.Description": "Segure esta tecla enquanto estiver a navegar para acelerar", + "Binds.Sections.Destination.Chameleon": "", + "Binds.Sections.Destination.Chameleon.Description": "", "Binds.Sections.Destination.Down": "Para baixo", + "Binds.Sections.Destination.FindRandom": "Encontrar Aleatório", + "Binds.Sections.Destination.FindRandom.Description": "Pressione esta tecla para encontrar um destino aleatório", "Binds.Sections.Destination.Forward": "Para frente", + "Binds.Sections.Destination.Jump": "Saltar para superfície", + "Binds.Sections.Destination.Jump.Description": "Segure esta tecla para selecionar uma superfície e mover-se para ela", "Binds.Sections.Destination.Left": "Esquerda", "Binds.Sections.Destination.Right": "Direita", "Binds.Sections.Destination.Rotate": "Rotacionar", "Binds.Sections.Destination.Rotate.Description": "Segure esta tecla e a de aceleração e use esquerda e direita para rotacionar", + "Binds.Sections.Destination.ShowCurrent": "", + "Binds.Sections.Destination.ShowCurrent.Description": "", "Binds.Sections.Destination.Slow": "Desacelerar", "Binds.Sections.Destination.Slow.Description": "Segure esta tecla para desacelerar o movimento", "Binds.Sections.Destination.SnapToFloor": "Grudar ao chão", "Binds.Sections.Destination.SnapToFloor.Description": "Pressione esta tecla para grudar ao chão mais próximo", + "Binds.Sections.Destination.ToggleRotationMode": "", + "Binds.Sections.Destination.ToggleRotationMode.Description": "", "Binds.Sections.Destination.Up": "Para cima", "Binds.Sections.Flight": "Voo", "Binds.Sections.Flight.Backward": "Para trás", @@ -33,6 +48,10 @@ "Binds.Sections.Flight.Rotate.Description": "Segure esta tecla e use esquerda e direita para rotacionar", "Binds.Sections.Flight.SpinDirection": "Direção do Giro", "Binds.Sections.Flight.SpinDirection.Description": "Alterna a direção em que a TARDIS rotaciona enquanto voa", + "Binds.Sections.Flight.Tracking": "", + "Binds.Sections.Flight.Tracking.Description": "", + "Binds.Sections.Flight.TrackRotation": "", + "Binds.Sections.Flight.TrackRotation.Description": "", "Binds.Sections.Flight.Up": "Para cima", "Binds.Sections.Float": "Flutuar", "Binds.Sections.Float.Backward": "Para trás", @@ -59,8 +78,12 @@ "Binds.Sections.ThirdPerson.ToggleFlight": "Alternar Voo", "Binds.Sections.ThirdPerson.ToggleFloat": "Alternar Flutuador", "Binds.Sections.ThirdPerson.ToggleFloat.Description": "Deixa a TARDIS voar como se não houvesse gravidade", + "Binds.Sections.ThirdPerson.ToggleHandbrake": "", "Binds.Sections.ThirdPerson.TogglePhyslock": "Alternar Trava Física", "Binds.Sections.ThirdPerson.TogglePhyslock.Description": "Torna a TARDIS estática e imóvel no espaço", + "Binds.Sections.ThirdPerson.TogglePower": "", + "Binds.Sections.ThirdPerson.ToggleVortex": "", + "Chameleon.ExteriorPlanned": "", "Chameleon.ExteriorSelected": "Um novo exterior foi selecionado", "Chameleon.FailedExteriorSelect": "Falha ao selecionar um novo exterior", "Chameleon.FailReasons.AlreadyChanging": "O exterior já está a ser mudado!", @@ -184,6 +207,9 @@ "Controls.Repair.FailedToggle": "Falha ao alternar o auto-reparo", "Controls.Repair.Tip": "Auto-Reparo", "Controls.Scanner.Tip": "Scanner", + "Controls.Shields": "", + "Controls.Shields.FailedToggle": "", + "Controls.Shields.Status": "", "Controls.Shields.Tip": "Escudos", "Controls.SonicDispenser.AlreadyEquipped": "Já está a segurar uma Chave de Fenda Sónica", "Controls.SonicDispenser.Dispensed": "Chave de Fenda Sónica foi ejetada", @@ -219,28 +245,55 @@ "Controls.ToggleScreens.FailedToggle": "Falha ao alternar telas internas", "Controls.ToggleScreens.Status": "Telas internas", "Controls.ToggleScreens.Tip": "Alternar Tela", + "Controls.Tracking": "", + "Controls.Tracking.ConstrainedFail": "", + "Controls.Tracking.DistanceFail": "", + "Controls.Tracking.FlightFail": "", + "Controls.Tracking.GenericFail": "", + "Controls.Tracking.InteriorFail": "", + "Controls.Tracking.PhyslockFail": "", + "Controls.Tracking.PilotWarning": "", + "Controls.Tracking.Rotation": "", + "Controls.Tracking.RotationChangedAuto": "", + "Controls.Tracking.RotationHint": "", + "Controls.Tracking.SameTarget": "", + "Controls.Tracking.SelfFail": "", + "Controls.Tracking.SpinWarning": "", + "Controls.Tracking.Status": "", + "Controls.Tracking.Target": "", + "Controls.Tracking.TargetLost": "", + "Controls.Tracking.TargetTooFar": "", "Controls.VirtualConsole.Tip": "Console Virtual", "Controls.VortexFlight": "Voo de Vórtex", "Controls.VortexFlight.FailedToggle": "Falha ao alternar voo de vórtex", "Controls.VortexFlight.Status": "Voo de vórtex", "Controls.VortexFlight.Tip": "Voo de Vórtex", + "CustomControls.Default.ToggleScreen.1": "", + "CustomControls.Default.ToggleScreen.1.FailedToggle": "", + "CustomControls.Default.ToggleScreen.1.Status": "", + "CustomControls.Default.ToggleScreen.1.Tip": "", + "CustomControls.Default.ToggleScreen.2": "", + "CustomControls.Default.ToggleScreen.2.FailedToggle": "", + "CustomControls.Default.ToggleScreen.2.Status": "", + "CustomControls.Default.ToggleScreen.2.Tip": "", "Destination.FailedDemat": "Falha ao desmaterializar", "Destination.FailedSetDestination": "Falha ao definir destino", "Destination.FailedSetDestinationMaybeTransitioning": "Falha ao definir destino, talvez esteja em transição", "Destination.LockedDemat": "Destino travado, desmaterializando...", "Destination.LockedReadyToDemat": "Destino travado, pronto para desmaterializar", "Destination.LockedReadyToMat": "Destino travado, pronto para materializar", + "Destination.RotationMode": "Modo de rotação", "Expression2.Error": "Impossível carregar as funções à algo que não seja uma TARDIS", "Expression2.Security.UseDenied": "Impossível carregar as funções definidas à TARDIS de outra pessoa com a Segurança Isomórfica ativa", "Exteriors.Categories.Misc": "Diversos", "Exteriors.Categories.PoliceBoxes": "Cabines Policiais", "Exteriors.Categories.TTCapsules": "Cápsulas TT", "Exteriors.DefaultPoliceBox": "Cabine Policial Padrão", + "Exteriors.LegacyPoliceBox": "", "Exteriors.SIDRAT": "SIDRAT", "Exteriors.TTCapsuleType40": "Cápsula TT Tipo 40", "Exteriors.TTCapsuleType50": "Cápsula TT Tipo 50", "Exteriors.TTCapsuleType55": "Cápsula TT Tipo 55", - "Exteriors.TTCapsuleType55B": "Cápsula TT Tipo 55-B", "Flight.DoorOpenNoBoost": "A aceleração não funciona com as portas abertas", "Flight.NameIsNowThePilot": "%s agora é o piloto", "Flight.NameIsThePilot": "%s é o piloto", @@ -260,16 +313,28 @@ "Interior.FindingPositionFailed.NoSpace": "AVISO: Não foi possível encontrar espaço para o interior, pode tentar novamente ou usar um mapa diferente", "Interior.FoundPosition": "Pronto!", "Interiors.Default": "Padrão", + "Interiors.Default.CustomSettings.ClassicDoorsButton": "", + "Interiors.Default.CustomSettings.Color": "", + "Interiors.Default.CustomSettings.Color.Blue": "", + "Interiors.Default.CustomSettings.Color.Dynamic": "", + "Interiors.Default.CustomSettings.Color.Green": "", + "Interiors.Default.CustomSettings.Color.Random": "", + "Interiors.Default.CustomSettings.Color.Turquoise": "", + "Interiors.Default.CustomSettings.Lamps": "", + "Interiors.Default.CustomSettings.Lamps.Few": "", + "Interiors.Default.CustomSettings.Lamps.Many": "", + "Interiors.Default.CustomSettings.Lamps.Off": "", + "Interiors.Default.CustomSettings.ScreensOff": "", + "Interiors.Default.CustomSettings.SmallVersion": "", + "Interiors.Default.Versions.ClassicDoors": "", "Interiors.Default.Versions.SIDRAT": "Exterior SIDRAT", "Interiors.Default.Versions.TTCapsuleType40": "Exterior Cápsula TT Tipo 40", "Interiors.Default.Versions.TTCapsuleType50": "Exterior Cápsula TT Tipo 50", "Interiors.Default.Versions.TTCapsuleType55": "Exterior Cápsula TT Tipo 55", - "Interiors.Default.Versions.TTCapsuleType55B": "Exterior Cápsula TT Tipo 55-B", "Interiors.DefaultSIDRAT": "Padrão SIDRAT", "Interiors.DefaultTTCapsuleType40": "Padrão Cápsula TT Tipo 40", "Interiors.DefaultTTCapsuleType50": "Padrão Cápsula TT Tipo 50", "Interiors.DefaultTTCapsuleType55": "Padrão Cápsula TT Tipo 55", - "Interiors.DefaultTTCapsuleType55B": "Padrão Cápsula TT Tipo 55-B", "Lock.Locked": "Esta TARDIS está trancada", "MenuOptions.ConfirmResetSettings": "Redefinir todas as configurações do lado do cliente? Isso não pode ser desfeito.", "MenuOptions.ConfirmSectionReset": "Redefinir as configurações do lado do cliente da secção \"%s\"? Essa ação não pode ser desfeita.", @@ -301,6 +366,7 @@ "Screens.Chameleon.Apply": "Aplicar", "Screens.Chameleon.Categories": "Categorias", "Screens.Chameleon.Exteriors": "Exteriores", + "Screens.Chameleon.Plan": "", "Screens.Chameleon.Reset": "Redefinir", "Screens.Common.Back": "Voltar", "Screens.Common.CurrentPage": "Página %d de %d", @@ -410,6 +476,8 @@ "Settings.Sections.Global.BoostSpeed.Description": "O aumento da velocidade que a TARDIS recebe com a tecla de aceleração ativada", "Settings.Sections.Global.EnableHealth": "Ativar Saúde", "Settings.Sections.Global.EnableHealth.Description": "A TARDIS deve ter saúde e sofrer danos?", + "Settings.Sections.Global.HealthToShieldsRatio": "", + "Settings.Sections.Global.HealthToShieldsRatio.Description": "", "Settings.Sections.Global.MaxHealth": "Saúde Máxima", "Settings.Sections.Global.MaxHealth.Description": "Quantidade máxima de saúde que a TARDIS tem", "Settings.Sections.Global.WaitLongForRepair": "Ativar reparo longo", @@ -452,6 +520,8 @@ "Settings.Sections.Misc.NotificationType.Types.ConsoleLog": "Registro de console", "Settings.Sections.Misc.NotificationType.Types.Disabled": "Desativado", "Settings.Sections.Misc.NotificationType.Types.Inbuilt": "Notificações integradas", + "Settings.Sections.Misc.ShowReleaseNotes": "", + "Settings.Sections.Misc.ShowReleaseNotes.Description": "", "Settings.Sections.Misc.Spawning": "Criando a TARDIS", "Settings.Sections.Misc.Spawning.LegacyDoorType": "Criar com portas do tipo legado", "Settings.Sections.Misc.Spawning.LegacyDoorType.Description": "Clicar na porta da TARDIS teleportará o jogador para dentro (ao invés de abrir a porta)", @@ -579,6 +649,8 @@ "TipStyles.Default": "Padrão (definido pelo interior)", "TipStyles.WhiteOnBlue": "Branco no azul", "TipStyles.WhiteOnGrey": "Branco no cinza", + "Update.ShowReleaseNotes": "", + "Update.Updated": "", "Vortex.ModelMissing": "AVISO: Modelo de vórtex inválido - desabilitando o vórtex, falta uma dependência?", "Wiremod.Inputs.Ang": "X,Y,Z: Ângulo de teleporte", "Wiremod.Inputs.Demat": "Desmaterializar a TARDIS", diff --git a/i18n/languages/ru.json b/i18n/languages/ru.json index 6ffe96caf..ae552661f 100644 --- a/i18n/languages/ru.json +++ b/i18n/languages/ru.json @@ -3,6 +3,11 @@ "Author": "P00gie, parar020100", "Phrases": { "Artron.Depleted": "Артронная энергия исчерпана", + "ArtronInhibitor": "", + "ArtronInhibitor.Disabled": "", + "ArtronInhibitor.Enabled": "", + "ArtronInhibitor.Instructions": "", + "ArtronInhibitor.Starting": "", "Binds.AnyKey": "Нажмите любую клавишу", "Binds.Invalid": "Не указан", "Binds.Key": "Клавиша", @@ -10,16 +15,26 @@ "Binds.Sections.Destination.Backward": "Назад", "Binds.Sections.Destination.Boost": "Ускорение", "Binds.Sections.Destination.Boost.Description": "Зажимайте эту клавишу для ускорения при выборе точки назначения", + "Binds.Sections.Destination.Chameleon": "", + "Binds.Sections.Destination.Chameleon.Description": "", "Binds.Sections.Destination.Down": "Вниз", + "Binds.Sections.Destination.FindRandom": "", + "Binds.Sections.Destination.FindRandom.Description": "", "Binds.Sections.Destination.Forward": "Вперёд", + "Binds.Sections.Destination.Jump": "", + "Binds.Sections.Destination.Jump.Description": "", "Binds.Sections.Destination.Left": "Влево", "Binds.Sections.Destination.Right": "Вправо", "Binds.Sections.Destination.Rotate": "Вращение", "Binds.Sections.Destination.Rotate.Description": "Зажимайте эту клавишу вместе с клавишей ускорения и клавишей вправо / влево для вращения ТАРДИС", + "Binds.Sections.Destination.ShowCurrent": "", + "Binds.Sections.Destination.ShowCurrent.Description": "", "Binds.Sections.Destination.Slow": "Замедление", "Binds.Sections.Destination.Slow.Description": "Зажимайте эту клавишу для замедления движения", "Binds.Sections.Destination.SnapToFloor": "Прижаться к полу", "Binds.Sections.Destination.SnapToFloor.Description": "Нажмите эту кнопку, чтобы прижаться к полу", + "Binds.Sections.Destination.ToggleRotationMode": "", + "Binds.Sections.Destination.ToggleRotationMode.Description": "", "Binds.Sections.Destination.Up": "Вверх", "Binds.Sections.Flight": "Полёт", "Binds.Sections.Flight.Backward": "Назад", @@ -33,6 +48,10 @@ "Binds.Sections.Flight.Rotate.Description": "Зажимая эту клавишу, поворачивайте экстерьер клавишами вправо/влево", "Binds.Sections.Flight.SpinDirection": "Направление вращения", "Binds.Sections.Flight.SpinDirection.Description": "Меняет направление вращения ТАРДИС во время полёта", + "Binds.Sections.Flight.Tracking": "", + "Binds.Sections.Flight.Tracking.Description": "", + "Binds.Sections.Flight.TrackRotation": "", + "Binds.Sections.Flight.TrackRotation.Description": "", "Binds.Sections.Flight.Up": "Вверх", "Binds.Sections.Float": "Анти-Гравы", "Binds.Sections.Float.Backward": "Назад", @@ -59,8 +78,12 @@ "Binds.Sections.ThirdPerson.ToggleFlight": "Переключение полёта", "Binds.Sections.ThirdPerson.ToggleFloat": "Переключение Анти-Гравов", "Binds.Sections.ThirdPerson.ToggleFloat.Description": "Позволяет ТАРДИС летать, игнорируя законы гравитации", + "Binds.Sections.ThirdPerson.ToggleHandbrake": "", "Binds.Sections.ThirdPerson.TogglePhyslock": "Преключение физической блокировки", "Binds.Sections.ThirdPerson.TogglePhyslock.Description": "Зафиксировать физическую оболочку ТАРДИС в одном положении", + "Binds.Sections.ThirdPerson.TogglePower": "", + "Binds.Sections.ThirdPerson.ToggleVortex": "", + "Chameleon.ExteriorPlanned": "", "Chameleon.ExteriorSelected": "Выбран новый внешний вид", "Chameleon.FailedExteriorSelect": "Не удалось выбрать новый внешний вид", "Chameleon.FailReasons.AlreadyChanging": "Внешний вид уже меняется!", @@ -184,6 +207,9 @@ "Controls.Repair.FailedToggle": "Не получилось переключить режим восстановления", "Controls.Repair.Tip": "Режим восстановления", "Controls.Scanner.Tip": "Сканер", + "Controls.Shields": "", + "Controls.Shields.FailedToggle": "", + "Controls.Shields.Status": "", "Controls.Shields.Tip": "Щиты", "Controls.SonicDispenser.AlreadyEquipped": "Вы уже держите звуковую отвёртку", "Controls.SonicDispenser.Dispensed": "Звуковая отвёртка была выдана", @@ -219,28 +245,55 @@ "Controls.ToggleScreens.FailedToggle": "Не получилось переключить внутренние мониторы", "Controls.ToggleScreens.Status": "Внутренние Мониторы", "Controls.ToggleScreens.Tip": "Переключатель экрана", + "Controls.Tracking": "", + "Controls.Tracking.ConstrainedFail": "", + "Controls.Tracking.DistanceFail": "", + "Controls.Tracking.FlightFail": "", + "Controls.Tracking.GenericFail": "", + "Controls.Tracking.InteriorFail": "", + "Controls.Tracking.PhyslockFail": "", + "Controls.Tracking.PilotWarning": "", + "Controls.Tracking.Rotation": "", + "Controls.Tracking.RotationChangedAuto": "", + "Controls.Tracking.RotationHint": "", + "Controls.Tracking.SameTarget": "", + "Controls.Tracking.SelfFail": "", + "Controls.Tracking.SpinWarning": "", + "Controls.Tracking.Status": "", + "Controls.Tracking.Target": "", + "Controls.Tracking.TargetLost": "", + "Controls.Tracking.TargetTooFar": "", "Controls.VirtualConsole.Tip": "Виртуальная консоль", "Controls.VortexFlight": "Полёт через воронку времени", "Controls.VortexFlight.FailedToggle": "Не получилось переключить полёт в воронке", "Controls.VortexFlight.Status": "Полёт через воронку времени", "Controls.VortexFlight.Tip": "Временная воронка", + "CustomControls.Default.ToggleScreen.1": "", + "CustomControls.Default.ToggleScreen.1.FailedToggle": "", + "CustomControls.Default.ToggleScreen.1.Status": "", + "CustomControls.Default.ToggleScreen.1.Tip": "", + "CustomControls.Default.ToggleScreen.2": "", + "CustomControls.Default.ToggleScreen.2.FailedToggle": "", + "CustomControls.Default.ToggleScreen.2.Status": "", + "CustomControls.Default.ToggleScreen.2.Tip": "", "Destination.FailedDemat": "Не получилось дематериализоваться", "Destination.FailedSetDestination": "Ошибка выбора точки назначения", "Destination.FailedSetDestinationMaybeTransitioning": "Не удалось задать место назначения", "Destination.LockedDemat": "Маршрут построен, ТАРДИС дематериализуется!", "Destination.LockedReadyToDemat": "Маршрут построен, ТАРДИС готова к дематериализации!", "Destination.LockedReadyToMat": "Маршрут построен. ТАРДИС готова к материализации!", + "Destination.RotationMode": "", "Expression2.Error": "Невозможно вызывать функции ТАРДИС на чем-то другом, кроме ТАРДИС.", "Expression2.Security.UseDenied": "Невозможно вызвать функции набора ТАРДИС на чужой ТАРДИС с активной изоморфной защитой.", "Exteriors.Categories.Misc": "Разнообразный", "Exteriors.Categories.PoliceBoxes": "Полицейские будки", "Exteriors.Categories.TTCapsules": "Капсулы ТТ", "Exteriors.DefaultPoliceBox": "Полицейская будка по умолчанию", + "Exteriors.LegacyPoliceBox": "", "Exteriors.SIDRAT": "СИДРАТ", "Exteriors.TTCapsuleType40": "ТТ Капсула Тип 40", "Exteriors.TTCapsuleType50": "ТТ Капсула Тип 50", "Exteriors.TTCapsuleType55": "ТТ Капсула Тип 55", - "Exteriors.TTCapsuleType55B": "Капсула ТТ Тип 55-Б", "Flight.DoorOpenNoBoost": "Ускорение не работает с открытыми дверями.", "Flight.NameIsNowThePilot": "%s теперь пилот", "Flight.NameIsThePilot": "%s является пилотом", @@ -260,16 +313,28 @@ "Interior.FindingPositionFailed.NoSpace": "ПРЕДУПРЕЖДЕНИЕ: Не удалось найти место для интерьера, попробуйте заново или используйте другую карту", "Interior.FoundPosition": "Готово!", "Interiors.Default": "По умолчанию", + "Interiors.Default.CustomSettings.ClassicDoorsButton": "", + "Interiors.Default.CustomSettings.Color": "", + "Interiors.Default.CustomSettings.Color.Blue": "", + "Interiors.Default.CustomSettings.Color.Dynamic": "", + "Interiors.Default.CustomSettings.Color.Green": "", + "Interiors.Default.CustomSettings.Color.Random": "", + "Interiors.Default.CustomSettings.Color.Turquoise": "", + "Interiors.Default.CustomSettings.Lamps": "", + "Interiors.Default.CustomSettings.Lamps.Few": "", + "Interiors.Default.CustomSettings.Lamps.Many": "", + "Interiors.Default.CustomSettings.Lamps.Off": "", + "Interiors.Default.CustomSettings.ScreensOff": "", + "Interiors.Default.CustomSettings.SmallVersion": "", + "Interiors.Default.Versions.ClassicDoors": "", "Interiors.Default.Versions.SIDRAT": "Экстерьер СИДРАТ", "Interiors.Default.Versions.TTCapsuleType40": "Экстерьер ТТ Капсула Типа 40", "Interiors.Default.Versions.TTCapsuleType50": "Экстерьер ТТ Капсула Типа 50", "Interiors.Default.Versions.TTCapsuleType55": "Экстерьер ТТ Капсула Типа 55", - "Interiors.Default.Versions.TTCapsuleType55B": "Экстерьер ТТ Капсула Типа 55-Б", "Interiors.DefaultSIDRAT": "Стандартный СИДРАТ", "Interiors.DefaultTTCapsuleType40": "Стандартная ТТ Капсула Типа 40", "Interiors.DefaultTTCapsuleType50": "Стандартная ТТ Капсула Типа 50", "Interiors.DefaultTTCapsuleType55": "Стандартная ТТ Капсула Типа 55", - "Interiors.DefaultTTCapsuleType55B": "Стандартная ТТ Капсула Типа 55-Б", "Lock.Locked": "Эта ТАРДИС заперта", "MenuOptions.ConfirmResetSettings": "Сбросить все настройки со стороны клиента? Это нельзя отменить.", "MenuOptions.ConfirmSectionReset": "Сбросить настройки со стороны клиента в разделе \"%s\"? Это нельзя отменить.", @@ -301,6 +366,7 @@ "Screens.Chameleon.Apply": "Применять", "Screens.Chameleon.Categories": "Категории", "Screens.Chameleon.Exteriors": "Экстерьеры", + "Screens.Chameleon.Plan": "", "Screens.Chameleon.Reset": "Перезагрузить", "Screens.Common.Back": "Назад", "Screens.Common.CurrentPage": "Страница %d из %d", @@ -410,6 +476,8 @@ "Settings.Sections.Global.BoostSpeed.Description": "Степень ускорения ТАРДИС при использовании клавиши ускорения", "Settings.Sections.Global.EnableHealth": "Включение здоровья", "Settings.Sections.Global.EnableHealth.Description": "Имеет ли ТАРДИС здоровье, получает ли она урон?", + "Settings.Sections.Global.HealthToShieldsRatio": "", + "Settings.Sections.Global.HealthToShieldsRatio.Description": "", "Settings.Sections.Global.MaxHealth": "Максимальное здоровье", "Settings.Sections.Global.MaxHealth.Description": "Максимальное количество здоровья у ТАРДИС", "Settings.Sections.Global.WaitLongForRepair": "Включить долгое восстановление", @@ -452,6 +520,8 @@ "Settings.Sections.Misc.NotificationType.Types.ConsoleLog": "Журнал в консоли", "Settings.Sections.Misc.NotificationType.Types.Disabled": "Выключены", "Settings.Sections.Misc.NotificationType.Types.Inbuilt": "Встроенные уведомления игры", + "Settings.Sections.Misc.ShowReleaseNotes": "", + "Settings.Sections.Misc.ShowReleaseNotes.Description": "", "Settings.Sections.Misc.Spawning": "Создание ТАРДИС", "Settings.Sections.Misc.Spawning.LegacyDoorType": "Спаун с устаревшим типом дверей", "Settings.Sections.Misc.Spawning.LegacyDoorType.Description": "Двери ТАРДИС будут телепортировать игрока внутрь при нажатии (вместо открытия).", @@ -579,6 +649,8 @@ "TipStyles.Default": "По-умолчанию (определяются интерьером)", "TipStyles.WhiteOnBlue": "Белые на синем", "TipStyles.WhiteOnGrey": "Белые на cером", + "Update.ShowReleaseNotes": "", + "Update.Updated": "", "Vortex.ModelMissing": "ПРЕДУПРЕЖДЕНИЕ: Ошибочная модель воронки времени - воронка будет отключена. Проверьте, добавлены ли все необходимые аддоны?", "Wiremod.Inputs.Ang": "X,Y,Z: Угол телепортации", "Wiremod.Inputs.Demat": "Дематериализовать ТАРДИС", diff --git a/i18n/languages/tr.json b/i18n/languages/tr.json index 262cae6c2..ff4d7dee8 100644 --- a/i18n/languages/tr.json +++ b/i18n/languages/tr.json @@ -1,90 +1,113 @@ { - "Name": "Türk", + "Name": "Türkçe", "Author": "TARDIS Geliştirme Ekibi", "Phrases": { "Artron.Depleted": "Artron enerjisi tükendi", + "ArtronInhibitor": "", + "ArtronInhibitor.Disabled": "", + "ArtronInhibitor.Enabled": "", + "ArtronInhibitor.Instructions": "", + "ArtronInhibitor.Starting": "", "Binds.AnyKey": "Herhangi bir tuşa basın", "Binds.Invalid": "Geçersiz", "Binds.Key": "Anahtar", "Binds.Sections.Destination": "Hedef", "Binds.Sections.Destination.Backward": "Geriye", - "Binds.Sections.Destination.Boost": "Artırmak", + "Binds.Sections.Destination.Boost": "Hızlandır", "Binds.Sections.Destination.Boost.Description": "Hızlandırmak için gezinirken bu tuşu basılı tutun", + "Binds.Sections.Destination.Chameleon": "", + "Binds.Sections.Destination.Chameleon.Description": "", "Binds.Sections.Destination.Down": "Aşağı", + "Binds.Sections.Destination.FindRandom": "Rastgele Bul", + "Binds.Sections.Destination.FindRandom.Description": "Rastgele bir konum seçmek için bu tuşa basın", "Binds.Sections.Destination.Forward": "İleri", - "Binds.Sections.Destination.Left": "Ayrıldı", - "Binds.Sections.Destination.Right": "Doğru", + "Binds.Sections.Destination.Jump": "Yüzeye atla", + "Binds.Sections.Destination.Jump.Description": "Bir yüzey seçip oraya gitmek için bu tuşu basılı tutun", + "Binds.Sections.Destination.Left": "Sol", + "Binds.Sections.Destination.Right": "Sağ", "Binds.Sections.Destination.Rotate": "Döndür", "Binds.Sections.Destination.Rotate.Description": "Döndürmek için bunu artırma ve sol veya sağ tuşlarla basılı tutun", + "Binds.Sections.Destination.ShowCurrent": "", + "Binds.Sections.Destination.ShowCurrent.Description": "", "Binds.Sections.Destination.Slow": "Yavaş", "Binds.Sections.Destination.Slow.Description": "Hareketi yavaşlatmak için bu tuşu basılı tutun", "Binds.Sections.Destination.SnapToFloor": "Zemine Yasla", "Binds.Sections.Destination.SnapToFloor.Description": "En yakın kata geçmek için bu tuşa basın", + "Binds.Sections.Destination.ToggleRotationMode": "", + "Binds.Sections.Destination.ToggleRotationMode.Description": "", "Binds.Sections.Destination.Up": "Yukarı", "Binds.Sections.Flight": "Uçuş", "Binds.Sections.Flight.Backward": "Geriye", - "Binds.Sections.Flight.Boost": "Artırmak", + "Binds.Sections.Flight.Boost": "Hızlandır", "Binds.Sections.Flight.Boost.Description": "Hızlandırmak için uçarken bu tuşu basılı tutun", "Binds.Sections.Flight.Down": "Aşağı", "Binds.Sections.Flight.Forward": "İleri", - "Binds.Sections.Flight.Left": "Ayrıldı", - "Binds.Sections.Flight.Right": "Doğru", + "Binds.Sections.Flight.Left": "Sol", + "Binds.Sections.Flight.Right": "Sağ", "Binds.Sections.Flight.Rotate": "Döndür", - "Binds.Sections.Flight.Rotate.Description": "Döndürmek için sola ve sağa kullanırken bu tuşu basılı tutun", - "Binds.Sections.Flight.SpinDirection": "Spin Yönü", + "Binds.Sections.Flight.Rotate.Description": "Döndürmek için sol ve sağ tuşlarını kullanırken bu tuşu basılı tutun", + "Binds.Sections.Flight.SpinDirection": "Döndürme Yönü", "Binds.Sections.Flight.SpinDirection.Description": "TARDIS'in uçarken dönüş yönünü değiştirir", + "Binds.Sections.Flight.Tracking": "", + "Binds.Sections.Flight.Tracking.Description": "", + "Binds.Sections.Flight.TrackRotation": "", + "Binds.Sections.Flight.TrackRotation.Description": "", "Binds.Sections.Flight.Up": "Yukarı", - "Binds.Sections.Float": "Batmadan yüzmek", + "Binds.Sections.Float": "Süzülmek", "Binds.Sections.Float.Backward": "Geriye", - "Binds.Sections.Float.Boost": "Artırmak", + "Binds.Sections.Float.Boost": "Hızlandır", "Binds.Sections.Float.Boost.Description": "Dönmeyi hızlandırmak için kayarken bu tuşu basılı tutun", "Binds.Sections.Float.Brake": "Fren", "Binds.Sections.Float.Brake.Description": "Float modunda dönüşü yavaşlatmak için bu tuşu basılı tutun", "Binds.Sections.Float.Forward": "İleri", - "Binds.Sections.Float.Left": "Ayrıldı", + "Binds.Sections.Float.Left": "Sol", "Binds.Sections.Float.Right": "Doğru", - "Binds.Sections.Float.Rotate": "Döndür", - "Binds.Sections.Float.Rotate.Description": "Yaw ekseninde döndürmek için sola ve sağa kullanırken bu tuşu basılı tutun", + "Binds.Sections.Float.Rotate": "Sağ", + "Binds.Sections.Float.Rotate.Description": "Sapma ekseninde döndürmek için sol ve sağ tuşlarına basarken bu tuşu basılı tutun", "Binds.Sections.Teleport": "Işınlanma", "Binds.Sections.Teleport.Demat": "Demat", "Binds.Sections.Teleport.Mat": "Mat", - "Binds.Sections.Teleport.Set": "Ayarlamak", - "Binds.Sections.ThirdPerson": "Üçüncü kişi", + "Binds.Sections.Teleport.Set": "Ayarla", + "Binds.Sections.ThirdPerson": "Üçüncü Şahıs Bakış Açısı", "Binds.Sections.ThirdPerson.Destination": "Hedef", "Binds.Sections.ThirdPerson.Destination.Description": "Hedef seçme durumunu girin", "Binds.Sections.ThirdPerson.OpenScreen": "Açık Ekran", - "Binds.Sections.ThirdPerson.OpenScreen.Description": "HUD ekranını değiştirir", - "Binds.Sections.ThirdPerson.ToggleCloak": "Pelerini Aç/Kapat", + "Binds.Sections.ThirdPerson.OpenScreen.Description": "HUD'u açar/kapatır", + "Binds.Sections.ThirdPerson.ToggleCloak": "Görünmezliği Aç/Kapat", "Binds.Sections.ThirdPerson.ToggleDoor": "Kapıyı Aç/Kapat", "Binds.Sections.ThirdPerson.ToggleFlight": "Uçuşu Aç/Kapat", - "Binds.Sections.ThirdPerson.ToggleFloat": "Şamandırayı Aç/Kapat", - "Binds.Sections.ThirdPerson.ToggleFloat.Description": "TARDIS'in yerçekimi yokmuş gibi uçmasına izin verin", - "Binds.Sections.ThirdPerson.TogglePhyslock": "Physlock'u Aç/Kapat", - "Binds.Sections.ThirdPerson.TogglePhyslock.Description": "TARDIS'i uzayda sabit ve hareketsiz hale getirin", - "Chameleon.ExteriorSelected": "Yeni bir dış mekan seçildi", - "Chameleon.FailedExteriorSelect": "Yeni bir dış görünüm seçilemedi", - "Chameleon.FailReasons.AlreadyChanging": "Dış cephe şimdiden değiştiriliyor!", - "Chameleon.FailReasons.AlreadySelected": "Bu dış zaten seçili", - "Chameleon.FailReasons.DoorsOpen": "Kapıların kapanmasını bekliyorum...", + "Binds.Sections.ThirdPerson.ToggleFloat": "Süzülme modunu aç/kapat", + "Binds.Sections.ThirdPerson.ToggleFloat.Description": "TARDIS'in yerçekimi yokmuş gibi uçmasına izin verir", + "Binds.Sections.ThirdPerson.ToggleHandbrake": "", + "Binds.Sections.ThirdPerson.TogglePhyslock": "Fiziksel kilidi Aç/Kapat", + "Binds.Sections.ThirdPerson.TogglePhyslock.Description": "TARDIS'i uzayda sabit ve hareketsiz hale getirir", + "Binds.Sections.ThirdPerson.TogglePower": "", + "Binds.Sections.ThirdPerson.ToggleVortex": "", + "Chameleon.ExteriorPlanned": "", + "Chameleon.ExteriorSelected": "Yeni bir dış kabuk seçildi", + "Chameleon.FailedExteriorSelect": "Yeni bir dış kabuk seçilemedi", + "Chameleon.FailReasons.AlreadyChanging": "Dış kabuk zaten değiştiriliyor!", + "Chameleon.FailReasons.AlreadySelected": "Bu dış kabuk zaten seçili", + "Chameleon.FailReasons.DoorsOpen": "Kapıların kapanması bekleniyor...", "Chameleon.FailReasons.NoPower": "Bukalemun devresi güç olmadan çalışmıyor", - "Chameleon.FailReasons.NotEnoughArtron": "Bukalemun devresini değiştirmek için yeterli artron enerjisi yok", - "Chameleon.FailReasons.SameSelected": "TARDIS zaten bu dış görünüme sahip", - "Chameleon.FailReasons.Teleporting": "TARDIS indiğinde dış görünüş değişecek", - "Chameleon.Status": "bukalemun devresi", + "Chameleon.FailReasons.NotEnoughArtron": "Bukalemun devresini açmak/kapatmak için yeterli artron enerjisi yok", + "Chameleon.FailReasons.SameSelected": "TARDIS zaten bu dış kabuğu kullanıyor", + "Chameleon.FailReasons.Teleporting": "TARDIS indiğinde dış kabuk değişecek", + "Chameleon.Status": "Bukalemun devresi", "Chameleon.Status.Activated": "Aktif", "Chameleon.Status.Deactivated": "devre dışı bırakıldı", "Common.Cancel": "İptal", "Common.Closed.Lower": "kapalı", - "Common.ControlSequencesEnabledWarning": "Kontrol Sıraları etkinleştirildi. sırayı kullanmalısın", + "Common.ControlSequencesEnabledWarning": "Kontrol Sıraları etkinleştirildi. Sıralara göre kullanmalısınız", "Common.Default": "Varsayılan", - "Common.Delete": "Silmek", - "Common.Disabled.Lower": "engelli", - "Common.Disengaged.Lower": "ayrılmış", + "Common.Delete": "Sil", + "Common.Disabled.Lower": "Devre dışı bırakıldı", + "Common.Disengaged.Lower": "bağlantısız", "Common.DontAskAgain": "Bir daha sorma", - "Common.DoorsNotInstalled": "Kapılar takılı değil!", + "Common.DoorsNotInstalled": "Doors modu yüklü değil!", "Common.Enabled.Lower": "etkinleştirilmiş", - "Common.Engaged.Lower": "nişanlı", - "Common.EnterTextInput": "Metin girişi girin", + "Common.Engaged.Lower": "aktif", + "Common.EnterTextInput": "Metin girin", "Common.Error": "HATA", "Common.Interface": "TARDIS Arayüzü", "Common.Load": "Yük", @@ -93,15 +116,15 @@ "Common.New": "Yeni", "Common.No": "Numara", "Common.NotInTARDIS": "TARDIS'te değilsin", - "Common.NotYetImplemented": "Bu henüz uygulanmadı", + "Common.NotYetImplemented": "Bu henüz yapılmadı", "Common.OK": "TAMAM", "Common.Opened.Lower": "açıldı", "Common.PowerDisabled": "Güç devre dışı", "Common.PowerDisabledControl": "Güç devre dışı. Bu çalışmıyor", - "Common.Remove": "Kaldırmak", + "Common.Remove": "Kaldır", "Common.Reset": "Sıfırla", - "Common.Save": "Kaydetmek", - "Common.Set": "Ayarlamak", + "Common.Save": "Kaydet", + "Common.Set": "Ayarla", "Common.TARDIS": "TARDIS", "Common.UnknownError": "Bilinmeyen hata", "Common.Unlocked.Lower": "kilidi açıldı", @@ -109,10 +132,10 @@ "Common.UnsavedChangesWarning": "Kaydedilmemiş değişiklikleriniz var, bunları kaydetmek ister misiniz?", "Common.Update": "Güncelleme", "Common.Yes": "Evet", - "Controls.Cloak": "Pelerin", - "Controls.Cloak.FailedToggle": "Gizleme değiştirilemedi", - "Controls.Cloak.Status": "Pelerin", - "Controls.Cloak.Tip": "Gizleme Cihazı", + "Controls.Cloak": "Görünmezlik", + "Controls.Cloak.FailedToggle": "Görünmezlik değiştirilemedi", + "Controls.Cloak.Status": "Görünmezlik", + "Controls.Cloak.Tip": "Görünmezlik Cihazı", "Controls.Coordinates.Tip": "Koordinatlar", "Controls.Destination": "Hedef", "Controls.Destination.Tip": "Hedef Seçimi", @@ -123,32 +146,32 @@ "Controls.Door.NoSwitch": "Kapı anahtarı çalışmıyor", "Controls.Door.Status": "Kapı", "Controls.Door.Tip": "Kapı anahtarı", - "Controls.Door.UsingEmergencyPower": "Kapıyı açmak için acil durum gücünü kullanmak...", + "Controls.Door.UsingEmergencyPower": "Kapıyı açmak için acil durum gücünü kullanılıyor...", "Controls.DoorLock": "Kapı kilidi", - "Controls.DoorLock.FailedToggle": "Kapı kilidi değiştirilemedi", + "Controls.DoorLock.FailedToggle": "Kapı kitlenemedi/kilidi açılamadı", "Controls.DoorLock.NotWorking": "Kapı kilidi çalışmıyor", "Controls.DoorLock.Tip": "Kapı kilidi", - "Controls.DoorLock.UsingEmergencyPower": "Kilidi devreden çıkarmak için acil durum gücünü kullanmak...", - "Controls.EngineRelease": "Motor Yayını", + "Controls.DoorLock.UsingEmergencyPower": "Kilidi açmak için acil durum gücü kullanılıyor...", + "Controls.EngineRelease": "Motoru Serbest Bırak", "Controls.EngineRelease.ArtronAdded": "Girdapta artron enerjisini şarj etmek için sağlık feda edildi", - "Controls.EngineRelease.FailedDemat": "Kaydileştirilemedi", - "Controls.EngineRelease.ForceDemat": "Zorla kaydileştirme tetiklendi", - "Controls.EngineRelease.Tip": "Motor Yayını", + "Controls.EngineRelease.FailedDemat": "Demateryalizasyon başarısız oldu", + "Controls.EngineRelease.ForceDemat": "Zorla demateryalizasyon tetiklendi", + "Controls.EngineRelease.Tip": "Motor Tahliyesi", "Controls.ExteriorLight": "Dış Işık", "Controls.ExteriorLight.Status": "Dış Işık", "Controls.ExteriorLight.Tip": "Dış Işık", - "Controls.FastReturn": "Hızlı İade", + "Controls.FastReturn": "Hızlı Geri Dönüş", "Controls.FastReturn.Activated": "Hızlı dönüş protokolü başlatıldı", "Controls.FastReturn.Failed": "Hızlı dönüş protokolü başlatılamadı", "Controls.FastReturn.Tip": "Hızlı Dönüş Protokolü", "Controls.Flight": "Uçuş modu", - "Controls.Flight.FailedToggle": "Uçuş modu değiştirilemedi", + "Controls.Flight.FailedToggle": "Uçuş modu açılamadı/kapatılamadı", "Controls.Flight.Status": "Uçuş modu", "Controls.Flight.Tip": "Uçuş modu", - "Controls.Float": "Anti-gravs", - "Controls.Float.FailedToggle": "Anti-grav'ler arasında geçiş yapılamadı", - "Controls.Float.Status": "Anti-gravs", - "Controls.Float.Tip": "Anti-gravs", + "Controls.Float": "Anti-yerçekimi", + "Controls.Float.FailedToggle": "Anti-yerçekimi açılamadı/kapatılamadı", + "Controls.Float.Status": "Anti-yerçekimi", + "Controls.Float.Tip": "Anti-yerçekimi", "Controls.HADS": "H.A.D.S.", "Controls.HADS.Status": "Düşmanca Eylem Yer Değiştirme Sistemi", "Controls.HADS.Tip": "H.A.D.S.", @@ -158,13 +181,13 @@ "Controls.Handbrake.Tip": "Zaman Rotor El Freni", "Controls.InteriorLights.Tip": "Işıklar", "Controls.Isomorphic": "Izomorfik güvenlik", - "Controls.Isomorphic.FailedToggle": "İzomorfik güvenlik değiştirilemedi", + "Controls.Isomorphic.FailedToggle": "İzomorfik güvenlik açılamadı/kapatılamadı", "Controls.Isomorphic.NotCreator": "Bu senin TARDIS'in değil", - "Controls.Isomorphic.SingleplayerWarning": "UYARI: İzomorfik güvenliğin singleplayer'da kullanımı yoktur", + "Controls.Isomorphic.SingleplayerWarning": "UYARI: İzomorfik güvenliğin tek oyunculuda kullanımı yoktur", "Controls.Isomorphic.Status": "Izomorfik güvenlik", "Controls.Isomorphic.Tip": "Izomorfik Güvenlik Sistemi", "Controls.Music.Tip": "Müzik", - "Controls.Physlock": "Fizik kilidi", + "Controls.Physlock": "Fiziksel kilit", "Controls.Physlock.FailedToggle": "Kilitleme mekanizması değiştirilemedi", "Controls.Physlock.Status": "Kilitleme mekanizması", "Controls.Physlock.Tip": "Kilitleme mekanizması", @@ -172,8 +195,8 @@ "Controls.Power.FailedToggle": "Güç değiştirilemedi", "Controls.Power.Status": "Güç", "Controls.Power.Tip": "Güç düğmesi", - "Controls.RandomCoords.Selected": "Rastgele hedef seçildi", - "Controls.RandomCoords.Tip": "Rastgele Hedef", + "Controls.RandomCoords.Selected": "Rastgele konum seçildi", + "Controls.RandomCoords.Tip": "Rastgele Konum", "Controls.Redecorate": "Yeniden dekorasyon", "Controls.Redecorate.FailedToggle": "Yeniden dekorasyon arasında geçiş yapılamadı", "Controls.Redecorate.NotCreator": "Başkasının TARDIS'ini yeniden dekore edemezsiniz", @@ -184,11 +207,14 @@ "Controls.Repair.FailedToggle": "Kendi kendine onarım değiştirilemedi", "Controls.Repair.Tip": "Kendi Kendine Onarım", "Controls.Scanner.Tip": "Tarayıcı", + "Controls.Shields": "", + "Controls.Shields.FailedToggle": "", + "Controls.Shields.Status": "", "Controls.Shields.Tip": "Kalkanlar", "Controls.SonicDispenser.AlreadyEquipped": "Halihazırda bir Sonik Tornavida tutuyorsunuz", - "Controls.SonicDispenser.Dispensed": "Sonic Tornavida dağıtıldı", - "Controls.SonicDispenser.Equipped": "Sonic Tornavida donatıldı", - "Controls.SonicDispenser.MissingAddon": "Sonic Tornavida eklentisi yüklü değil. Bu parçanın çalışması için yükleyin", + "Controls.SonicDispenser.Dispensed": "Sonik Tornavida verildi", + "Controls.SonicDispenser.Equipped": "Sonik Tornavida alındı", + "Controls.SonicDispenser.MissingAddon": "Sonik Tornavida eklentisi yüklü değil. Bunun çalışması için yükleyin", "Controls.SonicDispenser.Tip": "Sonik Şarj Cihazı", "Controls.SpinCycle": "Dönüş yönü", "Controls.SpinCycle.Tip": "Döndürmek", @@ -198,13 +224,13 @@ "Controls.SpinToggle.Tip": "Döndürmeyi aç/kapat", "Controls.Stabilizers.Tip": "Uçuş stabilizatörleri", "Controls.Teleport": "Işınlanma", - "Controls.Teleport.Demat": "Kaydileştirme", - "Controls.Teleport.FailedDemat": "Kaydileştirilemedi", - "Controls.Teleport.FailedDematDoorsOpen": "Kapılar açıkken kaydi yapılamaz", - "Controls.Teleport.FailedDematHandbrake": "Zaman Rotor El Freni devrede! Kaydileştirilemez", - "Controls.Teleport.FailedMat": "Gerçekleştirilemedi", - "Controls.Teleport.Mat": "Materyalize etmek", - "Controls.Teleport.Tip": "Uzay-Zaman Gaz Kelebeği", + "Controls.Teleport.Demat": "Demateryalizasyon gerçekleşiyor", + "Controls.Teleport.FailedDemat": "Demateryelize olunamadı", + "Controls.Teleport.FailedDematDoorsOpen": "Kapılar açıkken demateryalize olunamaz", + "Controls.Teleport.FailedDematHandbrake": "Zaman Rotor El Freni devrede! Demateryelize olunamaz", + "Controls.Teleport.FailedMat": "Materyelize olunamadı", + "Controls.Teleport.Mat": "Materyalize olunuyor", + "Controls.Teleport.Tip": "Uzay-Zaman Kolu", "Controls.ThirdPerson": "Uçuş kontrol", "Controls.ThirdPerson.Tip": "Manuel Uçuş Kontrolü", "Controls.ThirdPersonCareful.Tip": "Manuel Uçuş Kontrolü", @@ -219,28 +245,55 @@ "Controls.ToggleScreens.FailedToggle": "İç ekranlar değiştirilemedi", "Controls.ToggleScreens.Status": "İç ekranlar", "Controls.ToggleScreens.Tip": "Ekranı Değiştir", + "Controls.Tracking": "", + "Controls.Tracking.ConstrainedFail": "", + "Controls.Tracking.DistanceFail": "", + "Controls.Tracking.FlightFail": "", + "Controls.Tracking.GenericFail": "", + "Controls.Tracking.InteriorFail": "", + "Controls.Tracking.PhyslockFail": "", + "Controls.Tracking.PilotWarning": "", + "Controls.Tracking.Rotation": "", + "Controls.Tracking.RotationChangedAuto": "", + "Controls.Tracking.RotationHint": "", + "Controls.Tracking.SameTarget": "", + "Controls.Tracking.SelfFail": "", + "Controls.Tracking.SpinWarning": "", + "Controls.Tracking.Status": "", + "Controls.Tracking.Target": "", + "Controls.Tracking.TargetLost": "", + "Controls.Tracking.TargetTooFar": "", "Controls.VirtualConsole.Tip": "Sanal Konsol", "Controls.VortexFlight": "Girdap uçuşu", "Controls.VortexFlight.FailedToggle": "Girdap uçuşu değiştirilemedi", "Controls.VortexFlight.Status": "Girdap uçuşu", "Controls.VortexFlight.Tip": "Girdap uçuşu", + "CustomControls.Default.ToggleScreen.1": "", + "CustomControls.Default.ToggleScreen.1.FailedToggle": "", + "CustomControls.Default.ToggleScreen.1.Status": "", + "CustomControls.Default.ToggleScreen.1.Tip": "", + "CustomControls.Default.ToggleScreen.2": "", + "CustomControls.Default.ToggleScreen.2.FailedToggle": "", + "CustomControls.Default.ToggleScreen.2.Status": "", + "CustomControls.Default.ToggleScreen.2.Tip": "", "Destination.FailedDemat": "Kaydileştirilemedi", "Destination.FailedSetDestination": "Hedef ayarlanamadı", "Destination.FailedSetDestinationMaybeTransitioning": "Hedef belirlenemedi, geçiş yapılıyor olabilir", "Destination.LockedDemat": "Hedef kilitlendi, kaydileştiriliyor...", "Destination.LockedReadyToDemat": "Hedef kilitli, kaydileştirilmeye hazır", "Destination.LockedReadyToMat": "Hedef kilitlendi, gerçekleşmeye hazır", + "Destination.RotationMode": "Döndürme modu", "Expression2.Error": "TARDIS işlevlerini TARDIS dışında bir şeyde çağıramazsınız", "Expression2.Security.UseDenied": "İzomorfik Güvenlik etkinken başka birinin TARDIS'inde TARDIS ayarlı işlevler çağrılamaz", "Exteriors.Categories.Misc": "Çeşitli", "Exteriors.Categories.PoliceBoxes": "Polis Kutuları", "Exteriors.Categories.TTCapsules": "TT Kapsülleri", "Exteriors.DefaultPoliceBox": "Varsayılan Polis Kutusu", + "Exteriors.LegacyPoliceBox": "", "Exteriors.SIDRAT": "SIDRAT", "Exteriors.TTCapsuleType40": "TT Kapsül Tip 40", "Exteriors.TTCapsuleType50": "TT Kapsül Tip 50", "Exteriors.TTCapsuleType55": "TT Kapsül Tip 55", - "Exteriors.TTCapsuleType55B": "TT Kapsül Tip 55-B", "Flight.DoorOpenNoBoost": "Boost, kapılar açıkken çalışmıyor", "Flight.NameIsNowThePilot": "%s artık pilot", "Flight.NameIsThePilot": "%s artık pilot", @@ -260,16 +313,28 @@ "Interior.FindingPositionFailed.NoSpace": "UYARI: İç mekan için yer bulunamıyor, tekrar deneyebilir veya farklı bir harita kullanabilirsiniz", "Interior.FoundPosition": "Tamamlandı!", "Interiors.Default": "Varsayılan", + "Interiors.Default.CustomSettings.ClassicDoorsButton": "", + "Interiors.Default.CustomSettings.Color": "", + "Interiors.Default.CustomSettings.Color.Blue": "", + "Interiors.Default.CustomSettings.Color.Dynamic": "", + "Interiors.Default.CustomSettings.Color.Green": "", + "Interiors.Default.CustomSettings.Color.Random": "", + "Interiors.Default.CustomSettings.Color.Turquoise": "", + "Interiors.Default.CustomSettings.Lamps": "", + "Interiors.Default.CustomSettings.Lamps.Few": "", + "Interiors.Default.CustomSettings.Lamps.Many": "", + "Interiors.Default.CustomSettings.Lamps.Off": "", + "Interiors.Default.CustomSettings.ScreensOff": "", + "Interiors.Default.CustomSettings.SmallVersion": "", + "Interiors.Default.Versions.ClassicDoors": "", "Interiors.Default.Versions.SIDRAT": "SIDRAT Dış Cephe", "Interiors.Default.Versions.TTCapsuleType40": "TT Kapsül Tip 40 Dış", "Interiors.Default.Versions.TTCapsuleType50": "TT Kapsül Tip 50 Dış", "Interiors.Default.Versions.TTCapsuleType55": "TT Kapsül Tip 55 Dış", - "Interiors.Default.Versions.TTCapsuleType55B": "TT Kapsül Tip 55-B Dış", "Interiors.DefaultSIDRAT": "SIDRAT Varsayılan", "Interiors.DefaultTTCapsuleType40": "TT Kapsül Tip 40 Varsayılan", "Interiors.DefaultTTCapsuleType50": "TT Kapsül Tip 50 Varsayılan", "Interiors.DefaultTTCapsuleType55": "TT Kapsül Tipi 55 Varsayılan", - "Interiors.DefaultTTCapsuleType55B": "TT Kapsül Tip 55-B Varsayılan", "Lock.Locked": "Bu TARDIS kilitli", "MenuOptions.ConfirmResetSettings": "Tüm istemci tarafı ayarları sıfırlansın mı? Bu geri alınamaz.", "MenuOptions.ConfirmSectionReset": "\"%s\" bölümünün istemci tarafı ayarları sıfırlansın mı? Bu geri alınamaz.", @@ -301,6 +366,7 @@ "Screens.Chameleon.Apply": "Uygula", "Screens.Chameleon.Categories": "Kategoriler", "Screens.Chameleon.Exteriors": "dış", + "Screens.Chameleon.Plan": "", "Screens.Chameleon.Reset": "Sıfırla", "Screens.Common.Back": "Geri", "Screens.Common.CurrentPage": "Sayfa %d / %d", @@ -377,8 +443,8 @@ "Settings.Sections.Exterior.Light.AlwaysOn.Description": "Bir kontrol tarafından devre dışı bırakılmadığı sürece dış ışık her zaman yanmalı mı?", "Settings.Sections.Exterior.Light.ColorOverride": "Renk Geçersiz Kılma", "Settings.Sections.Exterior.Light.ColorOverride.Description": "Dış ışığın geçersiz kılma rengi", - "Settings.Sections.Exterior.Light.DynamicLightSize": "", - "Settings.Sections.Exterior.Light.DynamicLightSize.Description": "", + "Settings.Sections.Exterior.Light.DynamicLightSize": "Dinamik Işık Büyüklüğü", + "Settings.Sections.Exterior.Light.DynamicLightSize.Description": "Dinamik dış ışıklandırmanın boyutu", "Settings.Sections.Exterior.Light.EnableColorOverride": "Açık Renk Geçersiz Kılmayı Etkinleştir", "Settings.Sections.Exterior.Light.EnableColorOverride.Description": "Dış ışık renginin geçersiz kılınmasının etkinleştirilip etkinleştirilmediği", "Settings.Sections.Exterior.ProjectedLight": "Yansıtılan ışık", @@ -395,8 +461,8 @@ "Settings.Sections.Exterior.ProjectedLight.EnableDistanceOverride": "Mesafe Geçersiz Kılmayı Etkinleştir", "Settings.Sections.Exterior.ProjectedLight.EnableDistanceOverride.Description": "Yansıtılan ışık mesafesinin geçersiz kılınmasının etkinleştirilip etkinleştirilmediği", "Settings.Sections.Global": "Yönetici Seçenekleri", - "Settings.Sections.Global.AdminSecurityBypass": "", - "Settings.Sections.Global.AdminSecurityBypass.Description": "", + "Settings.Sections.Global.AdminSecurityBypass": "Admin Güvenlik Atlaması", + "Settings.Sections.Global.AdminSecurityBypass.Description": "Adminler izomorfik güvenliği atlayabilmeli mi?", "Settings.Sections.Global.ArtronEnergy": "Artron Enerji", "Settings.Sections.Global.ArtronEnergy.ArtronEnergyChargeFrequency": "El freni olmadan şarj frekansı (saniye cinsinden)", "Settings.Sections.Global.ArtronEnergy.ArtronEnergyChargeFrequency.Description": "Artron enerjisinin şarjı ne sıklıkla el freni olmadan gerçekleşir?", @@ -410,6 +476,8 @@ "Settings.Sections.Global.BoostSpeed.Description": "Boost tuşu etkinken TARDIS'in aldığı hız artışı", "Settings.Sections.Global.EnableHealth": "Sağlığı Etkinleştir", "Settings.Sections.Global.EnableHealth.Description": "TARDIS'in sağlığı olmalı ve hasar almalı mı?", + "Settings.Sections.Global.HealthToShieldsRatio": "", + "Settings.Sections.Global.HealthToShieldsRatio.Description": "", "Settings.Sections.Global.MaxHealth": "Maksimum Sağlık", "Settings.Sections.Global.MaxHealth.Description": "TARDIS'in sahip olduğu maksimum sağlık miktarı", "Settings.Sections.Global.WaitLongForRepair": "Uzun onarımı etkinleştir", @@ -452,6 +520,8 @@ "Settings.Sections.Misc.NotificationType.Types.ConsoleLog": "Konsol günlüğü", "Settings.Sections.Misc.NotificationType.Types.Disabled": "Engelli", "Settings.Sections.Misc.NotificationType.Types.Inbuilt": "Dahili bildirimler", + "Settings.Sections.Misc.ShowReleaseNotes": "", + "Settings.Sections.Misc.ShowReleaseNotes.Description": "", "Settings.Sections.Misc.Spawning": "TARDIS'i Yumurtlamak", "Settings.Sections.Misc.Spawning.LegacyDoorType": "Eski kapı tipi ile spawn", "Settings.Sections.Misc.Spawning.LegacyDoorType.Description": "TARDIS kapıları, tıklandığında oyuncuyu içeri ışınlayacak (açmak yerine)", @@ -579,6 +649,8 @@ "TipStyles.Default": "Varsayılan (iç mekan tarafından belirlenir)", "TipStyles.WhiteOnBlue": "Mavi üzerine beyaz", "TipStyles.WhiteOnGrey": "Gri üzerine beyaz", + "Update.ShowReleaseNotes": "", + "Update.Updated": "", "Vortex.ModelMissing": "UYARI: Girdap modeli geçersiz - girdap devre dışı bırakılıyor, bir bağımlılığı mı kaçırıyorsunuz?", "Wiremod.Inputs.Ang": "X,Y,Z: Işınlanma açısı", "Wiremod.Inputs.Demat": "TARDIS'i kaydileştirin", diff --git a/i18n/languages/zh-CN.json b/i18n/languages/zh-CN.json index e4c4d0ae8..70f995778 100644 --- a/i18n/languages/zh-CN.json +++ b/i18n/languages/zh-CN.json @@ -3,6 +3,11 @@ "Author": "ALexZekio", "Phrases": { "Artron.Depleted": "Artron能量已耗尽", + "ArtronInhibitor": "", + "ArtronInhibitor.Disabled": "", + "ArtronInhibitor.Enabled": "", + "ArtronInhibitor.Instructions": "", + "ArtronInhibitor.Starting": "", "Binds.AnyKey": "按下任意键", "Binds.Invalid": "无效", "Binds.Key": "键", @@ -10,16 +15,26 @@ "Binds.Sections.Destination.Backward": "后退", "Binds.Sections.Destination.Boost": "加速", "Binds.Sections.Destination.Boost.Description": "按住此键以加速移动", + "Binds.Sections.Destination.Chameleon": "", + "Binds.Sections.Destination.Chameleon.Description": "", "Binds.Sections.Destination.Down": "下降", + "Binds.Sections.Destination.FindRandom": "", + "Binds.Sections.Destination.FindRandom.Description": "", "Binds.Sections.Destination.Forward": "前进", + "Binds.Sections.Destination.Jump": "", + "Binds.Sections.Destination.Jump.Description": "", "Binds.Sections.Destination.Left": "左转", "Binds.Sections.Destination.Right": "右转", "Binds.Sections.Destination.Rotate": "旋转", "Binds.Sections.Destination.Rotate.Description": "按住加速键同时使用左和右以旋转", + "Binds.Sections.Destination.ShowCurrent": "", + "Binds.Sections.Destination.ShowCurrent.Description": "", "Binds.Sections.Destination.Slow": "减速", "Binds.Sections.Destination.Slow.Description": "按住此键以减速", "Binds.Sections.Destination.SnapToFloor": "对齐到地面", "Binds.Sections.Destination.SnapToFloor.Description": "按下此键对齐到最近的地面", + "Binds.Sections.Destination.ToggleRotationMode": "", + "Binds.Sections.Destination.ToggleRotationMode.Description": "", "Binds.Sections.Destination.Up": "上升", "Binds.Sections.Flight": "飞行", "Binds.Sections.Flight.Backward": "后退", @@ -33,6 +48,10 @@ "Binds.Sections.Flight.Rotate.Description": "按住此键同时使用左和右以旋转", "Binds.Sections.Flight.SpinDirection": "自旋方向", "Binds.Sections.Flight.SpinDirection.Description": "改变塔迪斯飞行时自旋的方向", + "Binds.Sections.Flight.Tracking": "", + "Binds.Sections.Flight.Tracking.Description": "", + "Binds.Sections.Flight.TrackRotation": "", + "Binds.Sections.Flight.TrackRotation.Description": "", "Binds.Sections.Flight.Up": "上升", "Binds.Sections.Float": "漂浮", "Binds.Sections.Float.Backward": "后退", @@ -59,8 +78,12 @@ "Binds.Sections.ThirdPerson.ToggleFlight": "切换飞行", "Binds.Sections.ThirdPerson.ToggleFloat": "切换漂浮", "Binds.Sections.ThirdPerson.ToggleFloat.Description": "使塔迪斯如同无重力一般飞行", + "Binds.Sections.ThirdPerson.ToggleHandbrake": "", "Binds.Sections.ThirdPerson.TogglePhyslock": "切换物理锁定", "Binds.Sections.ThirdPerson.TogglePhyslock.Description": "使塔迪斯在空间中不可移动", + "Binds.Sections.ThirdPerson.TogglePower": "", + "Binds.Sections.ThirdPerson.ToggleVortex": "", + "Chameleon.ExteriorPlanned": "", "Chameleon.ExteriorSelected": "已选择新外观", "Chameleon.FailedExteriorSelect": "无法选择新外观", "Chameleon.FailReasons.AlreadyChanging": "外观已经在改变!", @@ -184,6 +207,9 @@ "Controls.Repair.FailedToggle": "切换自我修复失败", "Controls.Repair.Tip": "自我修复", "Controls.Scanner.Tip": "监视器", + "Controls.Shields": "", + "Controls.Shields.FailedToggle": "", + "Controls.Shields.Status": "", "Controls.Shields.Tip": "护盾", "Controls.SonicDispenser.AlreadyEquipped": "您已经有音速起子了", "Controls.SonicDispenser.Dispensed": "音速起子已被分配", @@ -219,28 +245,55 @@ "Controls.ToggleScreens.FailedToggle": "切换内部屏幕失败", "Controls.ToggleScreens.Status": "内部屏幕", "Controls.ToggleScreens.Tip": "切换屏幕", + "Controls.Tracking": "", + "Controls.Tracking.ConstrainedFail": "", + "Controls.Tracking.DistanceFail": "", + "Controls.Tracking.FlightFail": "", + "Controls.Tracking.GenericFail": "", + "Controls.Tracking.InteriorFail": "", + "Controls.Tracking.PhyslockFail": "", + "Controls.Tracking.PilotWarning": "", + "Controls.Tracking.Rotation": "", + "Controls.Tracking.RotationChangedAuto": "", + "Controls.Tracking.RotationHint": "", + "Controls.Tracking.SameTarget": "", + "Controls.Tracking.SelfFail": "", + "Controls.Tracking.SpinWarning": "", + "Controls.Tracking.Status": "", + "Controls.Tracking.Target": "", + "Controls.Tracking.TargetLost": "", + "Controls.Tracking.TargetTooFar": "", "Controls.VirtualConsole.Tip": "虚拟控制台", "Controls.VortexFlight": "漩涡飞行", "Controls.VortexFlight.FailedToggle": "切换漩涡飞行失败", "Controls.VortexFlight.Status": "漩涡飞行", "Controls.VortexFlight.Tip": "漩涡飞行", + "CustomControls.Default.ToggleScreen.1": "", + "CustomControls.Default.ToggleScreen.1.FailedToggle": "", + "CustomControls.Default.ToggleScreen.1.Status": "", + "CustomControls.Default.ToggleScreen.1.Tip": "", + "CustomControls.Default.ToggleScreen.2": "", + "CustomControls.Default.ToggleScreen.2.FailedToggle": "", + "CustomControls.Default.ToggleScreen.2.Status": "", + "CustomControls.Default.ToggleScreen.2.Tip": "", "Destination.FailedDemat": "去物质化失败", "Destination.FailedSetDestination": "未能设定目的地", "Destination.FailedSetDestinationMaybeTransitioning": "未能设定目的地,可能转换中", "Destination.LockedDemat": "目的地锁定,起飞中……", "Destination.LockedReadyToDemat": "目的地锁定,准备起飞", "Destination.LockedReadyToMat": "目的地锁定,准备降落", + "Destination.RotationMode": "", "Expression2.Error": "无法在塔迪斯以外的东西上调用塔迪斯功能", "Expression2.Security.UseDenied": "无法在对方的塔迪斯激活同构安全时调用塔迪斯设置功能", "Exteriors.Categories.Misc": "各种各样的", "Exteriors.Categories.PoliceBoxes": "派出所", "Exteriors.Categories.TTCapsules": "TT胶囊", "Exteriors.DefaultPoliceBox": "默认派出所", + "Exteriors.LegacyPoliceBox": "", "Exteriors.SIDRAT": "西德拉特", "Exteriors.TTCapsuleType40": "TT 胶囊类型 40", "Exteriors.TTCapsuleType50": "TT 胶囊类型 50", "Exteriors.TTCapsuleType55": "TT 胶囊类型 55", - "Exteriors.TTCapsuleType55B": "TT 胶囊类型 55-B", "Flight.DoorOpenNoBoost": "门打开时无法加速", "Flight.NameIsNowThePilot": "%s 现在是飞行员", "Flight.NameIsThePilot": "%s 是飞行员", @@ -260,16 +313,28 @@ "Interior.FindingPositionFailed.NoSpace": "警告:无法找到内部空间,您可以重试或使用其他地图", "Interior.FoundPosition": "完毕!", "Interiors.Default": "默认", + "Interiors.Default.CustomSettings.ClassicDoorsButton": "", + "Interiors.Default.CustomSettings.Color": "", + "Interiors.Default.CustomSettings.Color.Blue": "", + "Interiors.Default.CustomSettings.Color.Dynamic": "", + "Interiors.Default.CustomSettings.Color.Green": "", + "Interiors.Default.CustomSettings.Color.Random": "", + "Interiors.Default.CustomSettings.Color.Turquoise": "", + "Interiors.Default.CustomSettings.Lamps": "", + "Interiors.Default.CustomSettings.Lamps.Few": "", + "Interiors.Default.CustomSettings.Lamps.Many": "", + "Interiors.Default.CustomSettings.Lamps.Off": "", + "Interiors.Default.CustomSettings.ScreensOff": "", + "Interiors.Default.CustomSettings.SmallVersion": "", + "Interiors.Default.Versions.ClassicDoors": "", "Interiors.Default.Versions.SIDRAT": "SIDRAT外部", "Interiors.Default.Versions.TTCapsuleType40": "40型 TT太空舱 外部", "Interiors.Default.Versions.TTCapsuleType50": "50型 TT太空舱 外部", "Interiors.Default.Versions.TTCapsuleType55": "55型 TT太空舱 外部", - "Interiors.Default.Versions.TTCapsuleType55B": "50-B型 TT太空舱 外部", "Interiors.DefaultSIDRAT": "SIDRAT 默认", "Interiors.DefaultTTCapsuleType40": "40型 TT太空舱 默认", "Interiors.DefaultTTCapsuleType50": "50型 TT太空舱 默认", "Interiors.DefaultTTCapsuleType55": "55型 TT太空舱 默认", - "Interiors.DefaultTTCapsuleType55B": "50-B型 TT太空舱 默认", "Lock.Locked": "这架塔迪斯已上锁", "MenuOptions.ConfirmResetSettings": "恢复所有客户端设置?此步骤无法撤销!", "MenuOptions.ConfirmSectionReset": "恢复\"%s\"部分的客户端设置?此步骤无法撤销!", @@ -301,6 +366,7 @@ "Screens.Chameleon.Apply": "申请", "Screens.Chameleon.Categories": "类别", "Screens.Chameleon.Exteriors": "外观", + "Screens.Chameleon.Plan": "", "Screens.Chameleon.Reset": "重置", "Screens.Common.Back": "返回", "Screens.Common.CurrentPage": "第%d页,共%d页", @@ -410,6 +476,8 @@ "Settings.Sections.Global.BoostSpeed.Description": "按下加速键后,塔迪斯的加速速度", "Settings.Sections.Global.EnableHealth": "启用生命值", "Settings.Sections.Global.EnableHealth.Description": "塔迪斯是否有生命值并会受到伤害", + "Settings.Sections.Global.HealthToShieldsRatio": "", + "Settings.Sections.Global.HealthToShieldsRatio.Description": "", "Settings.Sections.Global.MaxHealth": "最大生命值", "Settings.Sections.Global.MaxHealth.Description": "塔迪斯的最大生命值", "Settings.Sections.Global.WaitLongForRepair": "启用长时间维修", @@ -452,6 +520,8 @@ "Settings.Sections.Misc.NotificationType.Types.ConsoleLog": "控制台日志", "Settings.Sections.Misc.NotificationType.Types.Disabled": "禁用", "Settings.Sections.Misc.NotificationType.Types.Inbuilt": "内置通知", + "Settings.Sections.Misc.ShowReleaseNotes": "", + "Settings.Sections.Misc.ShowReleaseNotes.Description": "", "Settings.Sections.Misc.Spawning": "生成塔迪斯", "Settings.Sections.Misc.Spawning.LegacyDoorType": "生成经典门型号", "Settings.Sections.Misc.Spawning.LegacyDoorType.Description": "当点击时,塔迪斯门会将玩家传送到内部(而不是打开)", @@ -579,6 +649,8 @@ "TipStyles.Default": "默认(取决内饰)", "TipStyles.WhiteOnBlue": "蓝底白字", "TipStyles.WhiteOnGrey": "白底蓝字", + "Update.ShowReleaseNotes": "", + "Update.Updated": "", "Vortex.ModelMissing": "警告:旋涡模型无效,已禁用旋涡,您可能遗漏了依赖", "Wiremod.Inputs.Ang": "X,Y,Z:传送角度", "Wiremod.Inputs.Demat": "使塔迪斯起飞", diff --git a/i18n/languages/zh-TW.json b/i18n/languages/zh-TW.json index ace64ab4e..b5997054e 100644 --- a/i18n/languages/zh-TW.json +++ b/i18n/languages/zh-TW.json @@ -3,6 +3,11 @@ "Author": "ALexZekio", "Phrases": { "Artron.Depleted": "雅昌能源耗盡", + "ArtronInhibitor": "", + "ArtronInhibitor.Disabled": "", + "ArtronInhibitor.Enabled": "", + "ArtronInhibitor.Instructions": "", + "ArtronInhibitor.Starting": "", "Binds.AnyKey": "按下任意鍵", "Binds.Invalid": "無效", "Binds.Key": "鍵", @@ -10,16 +15,26 @@ "Binds.Sections.Destination.Backward": "後", "Binds.Sections.Destination.Boost": "加速", "Binds.Sections.Destination.Boost.Description": "按住此鍵以加速移動", + "Binds.Sections.Destination.Chameleon": "", + "Binds.Sections.Destination.Chameleon.Description": "", "Binds.Sections.Destination.Down": "下", + "Binds.Sections.Destination.FindRandom": "", + "Binds.Sections.Destination.FindRandom.Description": "", "Binds.Sections.Destination.Forward": "前", + "Binds.Sections.Destination.Jump": "", + "Binds.Sections.Destination.Jump.Description": "", "Binds.Sections.Destination.Left": "左", "Binds.Sections.Destination.Right": "右", "Binds.Sections.Destination.Rotate": "旋轉", "Binds.Sections.Destination.Rotate.Description": "按住加速鍵同時使用左和右以旋轉", + "Binds.Sections.Destination.ShowCurrent": "", + "Binds.Sections.Destination.ShowCurrent.Description": "", "Binds.Sections.Destination.Slow": "減速", "Binds.Sections.Destination.Slow.Description": "按住此鍵以減速移動", "Binds.Sections.Destination.SnapToFloor": "對齊到地面", "Binds.Sections.Destination.SnapToFloor.Description": "按下此鍵對齊到最近的地面", + "Binds.Sections.Destination.ToggleRotationMode": "", + "Binds.Sections.Destination.ToggleRotationMode.Description": "", "Binds.Sections.Destination.Up": "上", "Binds.Sections.Flight": "飛行", "Binds.Sections.Flight.Backward": "後", @@ -33,6 +48,10 @@ "Binds.Sections.Flight.Rotate.Description": "按住此鍵+左/右以旋轉", "Binds.Sections.Flight.SpinDirection": "自旋方向", "Binds.Sections.Flight.SpinDirection.Description": "改變塔迪斯飛行時自旋的方向", + "Binds.Sections.Flight.Tracking": "", + "Binds.Sections.Flight.Tracking.Description": "", + "Binds.Sections.Flight.TrackRotation": "", + "Binds.Sections.Flight.TrackRotation.Description": "", "Binds.Sections.Flight.Up": "上", "Binds.Sections.Float": "漂浮", "Binds.Sections.Float.Backward": "後", @@ -59,8 +78,12 @@ "Binds.Sections.ThirdPerson.ToggleFlight": "切換飛行", "Binds.Sections.ThirdPerson.ToggleFloat": "切換漂浮", "Binds.Sections.ThirdPerson.ToggleFloat.Description": "讓塔迪斯像沒有重力一樣飛行", + "Binds.Sections.ThirdPerson.ToggleHandbrake": "", "Binds.Sections.ThirdPerson.TogglePhyslock": "切換物理鎖定", "Binds.Sections.ThirdPerson.TogglePhyslock.Description": "讓塔迪斯在空間中不可移動", + "Binds.Sections.ThirdPerson.TogglePower": "", + "Binds.Sections.ThirdPerson.ToggleVortex": "", + "Chameleon.ExteriorPlanned": "", "Chameleon.ExteriorSelected": "已選擇新外觀", "Chameleon.FailedExteriorSelect": "無法選擇新外觀", "Chameleon.FailReasons.AlreadyChanging": "外觀已經在改變!", @@ -184,6 +207,9 @@ "Controls.Repair.FailedToggle": "切換自我修復失敗", "Controls.Repair.Tip": "自我修復", "Controls.Scanner.Tip": "監視器", + "Controls.Shields": "", + "Controls.Shields.FailedToggle": "", + "Controls.Shields.Status": "", "Controls.Shields.Tip": "護盾", "Controls.SonicDispenser.AlreadyEquipped": "您已經有音速起子了", "Controls.SonicDispenser.Dispensed": "音速起子已被分配", @@ -219,28 +245,55 @@ "Controls.ToggleScreens.FailedToggle": "切換內部屏幕失敗", "Controls.ToggleScreens.Status": "內部屏幕", "Controls.ToggleScreens.Tip": "切換屏幕", + "Controls.Tracking": "", + "Controls.Tracking.ConstrainedFail": "", + "Controls.Tracking.DistanceFail": "", + "Controls.Tracking.FlightFail": "", + "Controls.Tracking.GenericFail": "", + "Controls.Tracking.InteriorFail": "", + "Controls.Tracking.PhyslockFail": "", + "Controls.Tracking.PilotWarning": "", + "Controls.Tracking.Rotation": "", + "Controls.Tracking.RotationChangedAuto": "", + "Controls.Tracking.RotationHint": "", + "Controls.Tracking.SameTarget": "", + "Controls.Tracking.SelfFail": "", + "Controls.Tracking.SpinWarning": "", + "Controls.Tracking.Status": "", + "Controls.Tracking.Target": "", + "Controls.Tracking.TargetLost": "", + "Controls.Tracking.TargetTooFar": "", "Controls.VirtualConsole.Tip": "虛擬操縱臺", "Controls.VortexFlight": "漩渦飛行", "Controls.VortexFlight.FailedToggle": "切換漩渦飛行失敗", "Controls.VortexFlight.Status": "漩渦飛行", "Controls.VortexFlight.Tip": "漩渦飛行", + "CustomControls.Default.ToggleScreen.1": "", + "CustomControls.Default.ToggleScreen.1.FailedToggle": "", + "CustomControls.Default.ToggleScreen.1.Status": "", + "CustomControls.Default.ToggleScreen.1.Tip": "", + "CustomControls.Default.ToggleScreen.2": "", + "CustomControls.Default.ToggleScreen.2.FailedToggle": "", + "CustomControls.Default.ToggleScreen.2.Status": "", + "CustomControls.Default.ToggleScreen.2.Tip": "", "Destination.FailedDemat": "去物質化失敗", "Destination.FailedSetDestination": "未能設置目標", "Destination.FailedSetDestinationMaybeTransitioning": "未能設置目標,可能轉換中", "Destination.LockedDemat": "目標鎖定,起飛……", "Destination.LockedReadyToDemat": "目標鎖定,準備起飛", "Destination.LockedReadyToMat": "目標鎖定,準備降落", + "Destination.RotationMode": "", "Expression2.Error": "不能在 TARDIS 以外的東西上調用 TARDIS 函數", "Expression2.Security.UseDenied": "無法在同構安全激活的情況下在另一個 TARDIS 上調用 TARDIS 設置函數", "Exteriors.Categories.Misc": "各種各樣的", "Exteriors.Categories.PoliceBoxes": "派出所", "Exteriors.Categories.TTCapsules": "TT膠囊", "Exteriors.DefaultPoliceBox": "默認派出所", + "Exteriors.LegacyPoliceBox": "", "Exteriors.SIDRAT": "西德拉特", "Exteriors.TTCapsuleType40": "TT 膠囊類型 40", "Exteriors.TTCapsuleType50": "TT 膠囊類型 50", "Exteriors.TTCapsuleType55": "TT 膠囊類型 55", - "Exteriors.TTCapsuleType55B": "TT 膠囊類型 55-B", "Flight.DoorOpenNoBoost": "門打開時無法加速", "Flight.NameIsNowThePilot": "%s 現在是飛行員", "Flight.NameIsThePilot": "%s 是飛行員", @@ -260,16 +313,28 @@ "Interior.FindingPositionFailed.NoSpace": "警告:無法找到內部空間,您可以重試或使用其他地圖", "Interior.FoundPosition": "完畢!", "Interiors.Default": "預設", + "Interiors.Default.CustomSettings.ClassicDoorsButton": "", + "Interiors.Default.CustomSettings.Color": "", + "Interiors.Default.CustomSettings.Color.Blue": "", + "Interiors.Default.CustomSettings.Color.Dynamic": "", + "Interiors.Default.CustomSettings.Color.Green": "", + "Interiors.Default.CustomSettings.Color.Random": "", + "Interiors.Default.CustomSettings.Color.Turquoise": "", + "Interiors.Default.CustomSettings.Lamps": "", + "Interiors.Default.CustomSettings.Lamps.Few": "", + "Interiors.Default.CustomSettings.Lamps.Many": "", + "Interiors.Default.CustomSettings.Lamps.Off": "", + "Interiors.Default.CustomSettings.ScreensOff": "", + "Interiors.Default.CustomSettings.SmallVersion": "", + "Interiors.Default.Versions.ClassicDoors": "", "Interiors.Default.Versions.SIDRAT": "西德拉外觀", "Interiors.Default.Versions.TTCapsuleType40": "TT 膠囊型 40 外觀", "Interiors.Default.Versions.TTCapsuleType50": "TT 膠囊型 50 外觀", "Interiors.Default.Versions.TTCapsuleType55": "TT 膠囊型 55 外觀", - "Interiors.Default.Versions.TTCapsuleType55B": "TT 膠囊型 55-B 外觀", "Interiors.DefaultSIDRAT": "SIDRAT違約", "Interiors.DefaultTTCapsuleType40": "TT 膠囊類型 40 默認", "Interiors.DefaultTTCapsuleType50": "TT 膠囊類型 50 默認值", "Interiors.DefaultTTCapsuleType55": "TT 膠囊類型 55 默認值", - "Interiors.DefaultTTCapsuleType55B": "TT 膠囊類型 55-B 默認", "Lock.Locked": "這架塔迪斯已上鎖", "MenuOptions.ConfirmResetSettings": "恢復所有客戶端設置?此步驟無法撤銷!", "MenuOptions.ConfirmSectionReset": "恢復\"%s\"部分的客戶端設置?此步驟無法撤銷!", @@ -301,6 +366,7 @@ "Screens.Chameleon.Apply": "申請", "Screens.Chameleon.Categories": "類別", "Screens.Chameleon.Exteriors": "外觀", + "Screens.Chameleon.Plan": "", "Screens.Chameleon.Reset": "重置", "Screens.Common.Back": "返回", "Screens.Common.CurrentPage": "第%d頁,共%d頁", @@ -410,6 +476,8 @@ "Settings.Sections.Global.BoostSpeed.Description": "按下加速鍵後,塔迪斯的加速速度", "Settings.Sections.Global.EnableHealth": "啟用生命值", "Settings.Sections.Global.EnableHealth.Description": "塔迪斯是否有生命值並會受到傷害", + "Settings.Sections.Global.HealthToShieldsRatio": "", + "Settings.Sections.Global.HealthToShieldsRatio.Description": "", "Settings.Sections.Global.MaxHealth": "最大生命值", "Settings.Sections.Global.MaxHealth.Description": "塔迪斯的最大生命值", "Settings.Sections.Global.WaitLongForRepair": "啟用長修復", @@ -452,6 +520,8 @@ "Settings.Sections.Misc.NotificationType.Types.ConsoleLog": "操縱臺日誌", "Settings.Sections.Misc.NotificationType.Types.Disabled": "禁用", "Settings.Sections.Misc.NotificationType.Types.Inbuilt": "內置通知", + "Settings.Sections.Misc.ShowReleaseNotes": "", + "Settings.Sections.Misc.ShowReleaseNotes.Description": "", "Settings.Sections.Misc.Spawning": "生成塔迪斯", "Settings.Sections.Misc.Spawning.LegacyDoorType": "使用傳統門類型生成", "Settings.Sections.Misc.Spawning.LegacyDoorType.Description": "TARDIS 門會在點擊時將玩家傳送到裡面(而不是打開)", @@ -579,6 +649,8 @@ "TipStyles.Default": "預設(取決內飾)", "TipStyles.WhiteOnBlue": "藍底白字", "TipStyles.WhiteOnGrey": "白底藍字", + "Update.ShowReleaseNotes": "", + "Update.Updated": "", "Vortex.ModelMissing": "警告:旋渦模型無效 - 已禁用旋渦,你錯過了一個依賴嗎?", "Wiremod.Inputs.Ang": "X,Y,Z:傳送角度", "Wiremod.Inputs.Demat": "使塔迪斯起飛", diff --git a/lua/autorun/tardis.lua b/lua/autorun/tardis.lua index 2c39f43e4..afe3c6034 100644 --- a/lua/autorun/tardis.lua +++ b/lua/autorun/tardis.lua @@ -36,4 +36,6 @@ end TARDIS:LoadFolder("libraries/libraries/libraries") TARDIS:LoadFolder("libraries/libraries") TARDIS:LoadFolder("libraries") -TARDIS:LoadFolder() \ No newline at end of file +TARDIS:LoadFolder() + +TARDIS:RunMigrations() \ No newline at end of file diff --git a/lua/entities/gmod_artron_inhibitor/cl_init.lua b/lua/entities/gmod_artron_inhibitor/cl_init.lua new file mode 100644 index 000000000..d0ba552ae --- /dev/null +++ b/lua/entities/gmod_artron_inhibitor/cl_init.lua @@ -0,0 +1,7 @@ +-- Artron Inhibitor by Nova Astral, an edit of the Time Distortion Generator by parar020100 and JEREDEK + +include("shared.lua") + +function ENT:Draw() + self:DrawModel() +end \ No newline at end of file diff --git a/lua/entities/gmod_artron_inhibitor/init.lua b/lua/entities/gmod_artron_inhibitor/init.lua new file mode 100644 index 000000000..5fb666281 --- /dev/null +++ b/lua/entities/gmod_artron_inhibitor/init.lua @@ -0,0 +1,214 @@ +-- Artron Inhibitor by Nova Astral, an edit of the Time Distortion Generator by parar020100 and JEREDEK + +AddCSLuaFile("cl_init.lua") +AddCSLuaFile("shared.lua") + +include("shared.lua") + + +function ENT:Initialize() + self:SetModel("models/props_lab/reciever01b.mdl") + self:PhysicsInit(SOLID_VPHYSICS) + self:SetMoveType(MOVETYPE_VPHYSICS) + self:SetSolid(SOLID_VPHYSICS) + + self:SetName("ArtronInhibitor") + self:SetColor(Color(255, 255, 255, 255)) + self:SetUseType(SIMPLE_USE) + + local phys = self:GetPhysicsObject() + + self.Radius = 1000 + self.EntMaxHealth = 100 + self.EntHealth = self.EntMaxHealth + + + if phys:IsValid() then + phys:Wake() + end + + if WireLib then + local inNames = {"Activate","Radius"} + local inTypes = {"NORMAL","NORMAL"} + + WireLib.CreateSpecialInputs( self,inNames,inTypes) + Wire_CreateOutputs(self,{"Active","Radius","Health"}) + + Wire_TriggerOutput(self,"Radius",self.Radius) + Wire_TriggerOutput(self,"Health",self.EntHealth) + end +end + +function ENT:TriggerWire(tname,value) + if WireLib then + Wire_TriggerOutput(self,tname,value) + end +end + +function ENT:GetRadius() + return self.Radius +end + +function ENT:SetRadius(radius) + self.Radius = math.Clamp(radius,0,2048) + self:TriggerWire("Radius",self.Radius) + return self.Radius +end + +function ENT:Repair(repair) + if self.EntHealth >= 0 then + local hp = self.EntHealth + repair + + if self.Broken == true and hp >= 0 then + self:SetColor(Color(255, 255, 255, self:GetColor().a)) + self.Broken = false + end + + self.EntHealth = math.Clamp(hp,0,self.EntMaxHealth) + self:TriggerWire("Health",self.EntHealth) + end +end + +function ENT:TriggerInput(iname, value) + if iname == "Activate" then + if self.Broken then return end + + if value >= 1 and self:GetEnabled() == false then + self:TurnOn(true) + else + self:TurnOn(false) + end + elseif iname == "Radius" then + self:SetRadius(value) + end +end + +function ENT:TurnOn(active) + if self.Broken then return end + + local phys = self:GetPhysicsObject() + + if active and self.FlyTime == nil then + self:SetColor(Color(0, 50, 255, self:GetColor().a)) + phys:SetAngleVelocity(Vector(20, -20, -10)) + phys:EnableGravity(false) + phys:SetVelocity(Vector(0, 0, 15)) + + self:TriggerWire("Active",0.5) + + sound.Play("drmatt/tardis/seq_ok.wav", self:GetPos()) + + if IsValid(self.LastActivator) then + TARDIS:Message(self.LastActivator, "ArtronInhibitor.Starting") + end + + self.FlyTime = CurTime() + self.ArtronTick = CurTime() + elseif self.On == true then + self.FlyTime = nil + self.ArtronTick = nil + + self.On = false + self:SetEnabled(false) + self:TriggerWire("Active",0) + self:SetColor(Color(255, 255, 255, self:GetColor().a)) + + phys:EnableGravity(true) + + sound.Play("drmatt/tardis/seq_bad.wav", self:GetPos()) + + if IsValid(self.LastActivator) then + TARDIS:Message(self.LastActivator, "ArtronInhibitor.Disabled") + end + + local effect_data = EffectData() + effect_data:SetOrigin(self:GetPos()) + util.Effect("cball_explode", effect_data) + end +end + +function ENT:Use(ply) + if self.Broken then return end + + self.LastActivator = ply + + if self:GetEnabled() then + self:TurnOn(false) + else + self:TurnOn(true) + end +end + +function ENT:Think() + if self.Broken then return end + + if self.On then + local phys = self:GetPhysicsObject() + if phys:IsMotionEnabled() then + phys:SetAngleVelocity(Vector(180, -200, -190)) + phys:AddVelocity(-0.2 * phys:GetVelocity()) + end + end + + if self.FlyTime ~= nil and CurTime() - self.FlyTime > 3 then + self.FlyTime = nil + self.On = true + self:SetEnabled(true) + + TARDIS:Message(self.LastActivator, "ArtronInhibitor.Enabled") + self.LastActivator = nil + + self:GetPhysicsObject():SetVelocity(Vector(0, 0, 0)) + self:SetColor(Color(255, 166, 0, self:GetColor().a)) + self:TriggerWire("Active",1) + + sound.Play("drmatt/tardis/power_on.wav", self:GetPos()) + end + + if self.ArtronTick ~= nil and CurTime() - self.ArtronTick > 3 then + self.ArtronTick = CurTime() + for i,v in ipairs(ents.FindByClass("gmod_tardis")) do + if v:GetPos():Distance(self:GetPos()) <= self.Radius then + v:AddArtron(-2) + end + end + + for i,v in ipairs(ents.FindByClass("gmod_tardis_interior")) do + if v:GetPos():Distance(self:GetPos()) <= self.Radius then + v.exterior:AddArtron(-2) + end + end + end +end + +function ENT:Break() + self.On = false + self.Broken = true + self.FlyTime = nil + self.ArtronTick = nil + + self:SetEnabled(false) + self:SetColor(Color(100, 100, 100, self:GetColor().a)) + self:GetPhysicsObject():EnableGravity(true) + + self:TriggerWire("Active",0) + + local effect_data = EffectData() + effect_data:SetOrigin(self:GetPos()) + effect_data:SetMagnitude(10) + util.Effect("Explosion", effect_data) +end + +function ENT:OnTakeDamage(damage) + if self.Broken then return end + + local dmg = damage:GetDamage() + + self.EntHealth = math.Clamp(self.EntHealth - dmg,0,self.EntMaxHealth) + + self:TriggerWire("Health",self.EntHealth) + + if self.EntHealth <= 0 then + self:Break() + end +end diff --git a/lua/entities/gmod_artron_inhibitor/shared.lua b/lua/entities/gmod_artron_inhibitor/shared.lua new file mode 100644 index 000000000..70f04c075 --- /dev/null +++ b/lua/entities/gmod_artron_inhibitor/shared.lua @@ -0,0 +1,17 @@ +-- Artron Inhibitor by Nova Astral, an edit of the Time Distortion Generator by parar020100 and JEREDEK + +ENT.Type = "anim" +ENT.Base = "base_gmodentity" + +ENT.PrintName = "#TARDIS.ArtronInhibitor" +ENT.Spawnable = true + +ENT.Instructions= "#TARDIS.ArtronInhibitor.Instructions" +ENT.AdminOnly = false +ENT.Category = "#TARDIS.Spawnmenu.CategoryTools" +ENT.IconOverride = "materials/entities/time_distortion_generator.png" + + +function ENT:SetupDataTables() + self:NetworkVar( "Bool", 1, "Enabled" ) +end \ No newline at end of file diff --git a/lua/entities/gmod_tardis/init.lua b/lua/entities/gmod_tardis/init.lua index 343f68282..41f6b9607 100644 --- a/lua/entities/gmod_tardis/init.lua +++ b/lua/entities/gmod_tardis/init.lua @@ -32,11 +32,14 @@ ENT:AddHook("CustomData", "metadata", function(self, customData) end) function ENT:Initialize() - self.metadata=TARDIS:CreateInteriorMetadata(self.metadataID, self) - self.Model=self.metadata.Exterior.Model - self.Portal=self.metadata.Exterior.Portal - self.Fallback=self.metadata.Exterior.Fallback - self.BaseClass.Initialize(self) + if IsValid(self:GetCreator()) then + self.exterior = self + self.metadata=TARDIS:CreateInteriorMetadata(self.metadataID, self) + self.Model=self.metadata.Exterior.Model + self.Portal=self.metadata.Exterior.Portal + self.Fallback=self.metadata.Exterior.Fallback + self.BaseClass.Initialize(self) + end end function ENT:PhysicsCollide(colData, collider) @@ -45,4 +48,11 @@ end function ENT:OnTakeDamage(dmginfo) if self:CallHook("ShouldTakeDamage",dmginfo)==false then return end self:CallHook("OnTakeDamage", dmginfo) -end \ No newline at end of file +end + +duplicator.RegisterEntityClass("gmod_tardis", function(ply, data) + local ent = duplicator.GenericDuplicatorFunction(ply, data) + ent:SetCreator(ply) + ent:Initialize() + return ent +end, "Data") \ No newline at end of file diff --git a/lua/entities/gmod_tardis/modules/cl_alpha.lua b/lua/entities/gmod_tardis/modules/cl_alpha.lua index b87f848b8..a328ab423 100644 --- a/lua/entities/gmod_tardis/modules/cl_alpha.lua +++ b/lua/entities/gmod_tardis/modules/cl_alpha.lua @@ -9,7 +9,7 @@ function ENT:GetAlpha() return 0 elseif self:GetData("teleport") then return alpha - elseif self:GetData("teleport-trace") then + elseif self:GetData("teleport-trace") or self:GetData("tracking-trace") then return 20/255 end return 1 diff --git a/lua/entities/gmod_tardis/modules/cl_effects.lua b/lua/entities/gmod_tardis/modules/cl_effects.lua deleted file mode 100644 index d7155fc5f..000000000 --- a/lua/entities/gmod_tardis/modules/cl_effects.lua +++ /dev/null @@ -1,46 +0,0 @@ --- Breakdown effects for the TARDIS (sparks, explosions) - -local function rand_offset(x) - return math.random(-x, x) -end - -local function get_effect_pos(self) - local console = self.interior:GetPart("console") - if self.metadata.Interior.BreakdownEffectPos then - self.effect_pos = self.interior:GetPos() + self.metadata.Interior.BreakdownEffectPos - elseif console and IsValid(console) then - self.effect_pos = console:GetPos() + Vector(0, 0, 50) - else - self.effect_pos = self.interior:GetPos() + Vector(0, 0, 50) - end -end - -function ENT:InteriorExplosion() - if self.effect_pos == nil then - get_effect_pos(self) - end - - local effect_data = EffectData() - effect_data:SetOrigin(self.effect_pos + Vector(rand_offset(40), rand_offset(40), 0)) - - util.Effect("Explosion", effect_data) - - effect_data:SetScale(0.5) - effect_data:SetMagnitude(math.random(3, 5)) - effect_data:SetRadius(math.random(1,5)) - util.Effect("ElectricSpark", effect_data) -end - -function ENT:InteriorSparks(power) - if self.effect_pos == nil then - get_effect_pos(self) - end - - local effect_data = EffectData() - effect_data:SetOrigin(self.effect_pos + Vector(rand_offset(35), rand_offset(35), 0)) - - effect_data:SetScale(power) - effect_data:SetMagnitude(math.random(3, 5) * power) - effect_data:SetRadius(math.random(1,5) * power) - util.Effect("ElectricSpark", effect_data) -end \ No newline at end of file diff --git a/lua/entities/gmod_tardis/modules/cl_phase_animation.lua b/lua/entities/gmod_tardis/modules/cl_phase_animation.lua index ce482cb25..de8bbdfe4 100644 --- a/lua/entities/gmod_tardis/modules/cl_phase_animation.lua +++ b/lua/entities/gmod_tardis/modules/cl_phase_animation.lua @@ -1,66 +1,66 @@ -- Phase Animation local function dodraw(self, ent) - if not self:CallHook("ShouldDrawPhaseAnimation") then return end - - ent = ent or self - - local oldClip = render.EnableClipping(true) - - local normal = self:GetUp() - local pos = self:GetData("phase-highPos",Vector(0,0,0)) - local dist = normal:Dot(pos) - - local normal2 = self:GetUp() * -1 - local pos2 = self:GetData("phase-pos",Vector(0,0,0)) - local dist2 = normal2:Dot(pos2) - local dist3 = normal:Dot(pos2) - - local alpha = self:GetAlpha() - - local ignorez = self:CallHook("ShouldVortexIgnoreZ") - if ignorez then - cam.IgnoreZ(true) - end - - local oldblend = render.GetBlend() - render.SetBlend(alpha) - - render.PushCustomClipPlane(normal, dist) - render.MaterialOverride(self.PhaseMaterial) - render.PushCustomClipPlane(normal2, dist2) - ent:DrawModel() - render.PopCustomClipPlane() - render.MaterialOverride() - render.PopCustomClipPlane() - - render.PushCustomClipPlane(normal, dist3) - ent:DrawModel() - render.PopCustomClipPlane() - - render.EnableClipping(oldClip) - - render.SetBlend(oldblend) - - if ignorez then - cam.IgnoreZ(false) - end - - return false + if not self:CallHook("ShouldDrawPhaseAnimation") then return end + + ent = ent or self + + local oldClip = render.EnableClipping(true) + + local normal = self:GetUp() + local pos = self:GetData("phase-highPos",Vector(0,0,0)) + local dist = normal:Dot(pos) + + local normal2 = self:GetUp() * -1 + local pos2 = self:GetData("phase-pos",Vector(0,0,0)) + local dist2 = normal2:Dot(pos2) + local dist3 = normal:Dot(pos2) + + local alpha = self:GetAlpha() + + local ignorez = self:CallHook("ShouldVortexIgnoreZ") + if ignorez then + cam.IgnoreZ(true) + end + + local oldblend = render.GetBlend() + render.SetBlend(alpha) + + render.PushCustomClipPlane(normal, dist) + render.MaterialOverride(self.PhaseMaterial) + render.PushCustomClipPlane(normal2, dist2) + ent:DrawModel() + render.PopCustomClipPlane() + render.MaterialOverride() + render.PopCustomClipPlane() + + render.PushCustomClipPlane(normal, dist3) + ent:DrawModel() + render.PopCustomClipPlane() + + render.EnableClipping(oldClip) + + render.SetBlend(oldblend) + + if ignorez then + cam.IgnoreZ(false) + end + + return false end ENT:AddHook("PreDraw", "phase_animation", dodraw) ENT:AddHook("PreDrawPart", "phase_animation", function(self,part) - if part.NoCloak ~= true then - return dodraw(self,part) - end + if part.NoCloak ~= true then + return dodraw(self,part) + end end) ENT:AddHook("Initialize", "phase_animation", function(self) - self.PhaseMaterial = Material(self.metadata.Exterior.PhaseMaterial) + self.PhaseMaterial = Material(self.metadata.Exterior.PhaseMaterial) end) ENT:AddHook("ExteriorChanged", "phase_animation", function(self) - self.PhaseMaterial = Material(self.metadata.Exterior.PhaseMaterial) + self.PhaseMaterial = Material(self.metadata.Exterior.PhaseMaterial) end) diff --git a/lua/entities/gmod_tardis/modules/cl_projectedlight.lua b/lua/entities/gmod_tardis/modules/cl_projectedlight.lua index 0fd7a513a..dd520d19e 100644 --- a/lua/entities/gmod_tardis/modules/cl_projectedlight.lua +++ b/lua/entities/gmod_tardis/modules/cl_projectedlight.lua @@ -15,7 +15,7 @@ function ENT:PickProjectedLightColor() local override = TARDIS:GetSetting("extprojlight-override-color") if override then return TARDIS:GetSetting("extprojlight-color") end - local warning = self:GetData("health-warning",false) + local warning = self:GetData("warning",false) local pl = self.metadata.Exterior.ProjectedLight local ld = self.interior.light_data diff --git a/lua/entities/gmod_tardis/modules/sh_artronenergy.lua b/lua/entities/gmod_tardis/modules/sh_artronenergy.lua index 4cb94825c..3b2474f4c 100644 --- a/lua/entities/gmod_tardis/modules/sh_artronenergy.lua +++ b/lua/entities/gmod_tardis/modules/sh_artronenergy.lua @@ -21,6 +21,7 @@ if SERVER then spend_flight_static = -5 / 144, spend_flight_moving = -24 / 144, spend_flight_boost = -45 / 144, + spend_flight_broken = -8 / 144, spend_cloak = -18 / 144, spend_cloak_handbrake = -8 / 144, @@ -30,7 +31,8 @@ if SERVER then -- every 5 (by default) seconds: increase_normal = 15 * 5 / 144, - increase_warning = 10 * 5 / 144, + increase_damaged = 10 * 5 / 144, + increase_broken = 6 * 5 / 144, increase_poweroff = 24 * 5 / 144, increase_float = 8 * 5 / 144, @@ -47,7 +49,7 @@ if SERVER then end function ENT:AddArtron(value) - local currentArtron = self:GetData("artron-val", 0) + local currentArtron = self:GetArtron() self:SetArtron(currentArtron + value) end @@ -80,7 +82,7 @@ if SERVER then local function ArtronDematCheck(self) local fast = self:GetFastRemat() - local artron = self:GetData("artron-val", 0) + local artron = self:GetArtron() if self:CallHook("ShouldUpdateArtron") == false then return end @@ -107,7 +109,7 @@ if SERVER then if self:CallHook("ShouldUpdateArtron") == false then return end local fast = self:GetFastRemat() - local artron = self:GetData("artron-val", 0) + local artron = self:GetArtron() if not fast and artron < -TARDIS.artron_values.cost_mat then return true end @@ -118,13 +120,11 @@ if SERVER then if not TARDIS:GetSetting("artron_energy") then return end if self:GetData("redecorate") then return end - if self:GetData("artron-val") <= 0 and self:GetPower() == false then + if self:GetArtron() <= 0 and self:GetPower() == false then return false end end) - - -- -- Decreasing artron energy -- @@ -145,7 +145,9 @@ if SERVER then local handbrake = self:GetHandbrake() local cloak = self:GetCloak() local float = self:GetData("floatfirst") - local warning = self:GetData("health-warning") + local damaged = self:IsDamaged() + local broken = self:IsBroken() + local broken_flight = self:GetData("broken_flight") local change = 0 @@ -153,6 +155,8 @@ if SERVER then return elseif vortex then change = change + TARDIS.artron_values.spend_vortex_teleport + elseif broken_flight then + change = change + TARDIS.artron_values.spend_flight_broken elseif flight then if TARDIS:IsBindDown(self.pilot,"flight-forward") or TARDIS:IsBindDown(self.pilot,"flight-backward") @@ -170,6 +174,15 @@ if SERVER then end end + if self:GetTracking() then + local vel = self:GetVelocity():Length() + if vel > 1500 then + change = change + TARDIS.artron_values.spend_flight_boost + elseif vel > 200 then + change = change + TARDIS.artron_values.spend_flight_moving + end + end + change = change + TARDIS.artron_values.spend_flight_static end if cloak then @@ -212,8 +225,12 @@ if SERVER then self:AddArtron(TARDIS.artron_values.increase_float) return end - if warning then - self:AddArtron(TARDIS.artron_values.increase_warning) + if damaged then + self:AddArtron(TARDIS.artron_values.increase_damaged) + return + end + if broken then + self:AddArtron(TARDIS.artron_values.increase_broken) return end self:AddArtron(TARDIS.artron_values.increase_normal) -- default state @@ -227,10 +244,10 @@ if SERVER then end end) - ENT:AddHook("HandleNoDemat", "artron", function(self) + ENT:AddHook("DematFailed", "artron", function(self) if not TARDIS:GetSetting("artron_energy") then return end - if ArtronDematCheck(self) then return end + if not ArtronDematCheck(self) then return end self:AddArtron(TARDIS.artron_values.cost_failed_demat) end) @@ -280,7 +297,7 @@ if SERVER then ENT:AddHook("CanChangeExterior", "artron", function(self) if not TARDIS:GetSetting("artron_energy") then return end - if self:GetData("artron-val") + TARDIS.artron_values.cost_chameleon < 1 then + if self:GetArtron() + TARDIS.artron_values.cost_chameleon < 1 then return false,true,"Chameleon.FailReasons.NotEnoughArtron",true end end) @@ -314,9 +331,8 @@ if SERVER then end self:AddArtron(TARDIS.artron_values.increase_engine_release) - local decrease = math.random(53, 432) * TARDIS:GetSetting("health-max") / 1000 - local newhealth = self:GetHealth() - decrease - self:ChangeHealth(newhealth) + local decrease = math.random(53, 432) * self:GetHealthMax() / 1000 + self:AddHealth(-decrease) end function ENT:EngineReleaseVortexArtron() @@ -329,9 +345,30 @@ if SERVER then end return false end + + ENT:AddHook("HandleE2", "artron", function(self, name, e2, ...) + local args = {...} + if name == "RemoveArtron" and TARDIS:CheckPP(e2.player, self) then + local removeAmount = args[1] + local currentAmount = self:GetArtron() + + if removeAmount <= 0 then return currentAmount end + + if currentAmount - removeAmount <= 0 then + self:SetArtron(0) + return 0 + elseif removeAmount < currentAmount then + self:SetArtron(currentAmount - removeAmount) + return currentAmount - removeAmount + end + elseif name == "GetArtron" then + return self:GetArtron() + elseif name == "GetMaxArtron" then + return TARDIS:GetSetting("artron_energy_max") + end + end) end function ENT:GetArtron() return self:GetData("artron-val", 0) end - diff --git a/lua/entities/gmod_tardis/modules/sh_chameleon.lua b/lua/entities/gmod_tardis/modules/sh_chameleon.lua index 6f57c9044..fa8b19cba 100644 --- a/lua/entities/gmod_tardis/modules/sh_chameleon.lua +++ b/lua/entities/gmod_tardis/modules/sh_chameleon.lua @@ -6,17 +6,26 @@ if SERVER then end) ENT:AddHook("Initialize", "chameleon", function(self) + local init_ext = self:GetData("chameleon_current_exterior") + if init_ext ~= nil then + self:SetData("chameleon_initial_exterior", init_ext, true) + end self:SetData("chameleon_current_exterior", false, true) end) ENT:AddHook("PostInitialize", "chameleon", function(self) local id = self.metadata.ID - local ply = self:GetCreator() - local default_ext = TARDIS:GetCustomSetting(id, "exterior_default", ply) + local init_ext = self:GetData("chameleon_initial_exterior") + if init_ext then + self:ChangeExterior(init_ext, false) + return + end + + local default_ext = TARDIS:GetCustomSetting(id, "exterior_default", self) if not default_ext then return end - local ext_enabled = TARDIS:GetCustomSetting(id, "exterior_enabled", ply) + local ext_enabled = TARDIS:GetCustomSetting(id, "exterior_enabled", self) if not ext_enabled then return end self:ChangeExterior(default_ext, false) @@ -125,7 +134,9 @@ function ENT:ChangeExteriorMetadata(id) end self.metadata.Exterior = ext_md - self.interior.metadata.Exterior = ext_md + if IsValid(self.interior) then + self.interior.metadata.Exterior = ext_md + end return ext_md end @@ -170,10 +181,6 @@ function ENT:ChangeExterior(id, animate, ply, retry) self:SetData("chameleon_selected_exterior", nil, true) self:SetData("chameleon_exterior_last_selector", nil, true) - if not IsValid(self.interior) then - return - end - local ext_md = self:ChangeExteriorMetadata(id) if animate then @@ -220,71 +227,71 @@ function ENT:ChangeExterior(id, animate, ply, retry) end end - local extportal = self.interior.portals.exterior - local portal_md = ext_md.Portal + if IsValid(self.interior) and IsValid(self.interior.portals.exterior) then + local extportal = self.interior.portals.exterior + local portal_md = ext_md.Portal - if not IsValid(extportal) then return end + extportal:SetParent(nil) + extportal:SetPos(self:LocalToWorld(portal_md.pos)) + extportal:SetAngles(self:LocalToWorldAngles(portal_md.ang)) + extportal:SetWidth(portal_md.width) + extportal:SetHeight(portal_md.height) + extportal:SetThickness(portal_md.thickness or 0) + extportal:SetInverted(portal_md.inverted) + extportal:SetParent(self) - extportal:SetParent(nil) - extportal:SetPos(self:LocalToWorld(portal_md.pos)) - extportal:SetAngles(self:LocalToWorldAngles(portal_md.ang)) - extportal:SetWidth(portal_md.width) - extportal:SetHeight(portal_md.height) - extportal:SetThickness(portal_md.thickness or 0) - extportal:SetInverted(portal_md.inverted) - extportal:SetParent(self) + -- aligning interior portal + local intportal = self.interior.portals.interior + local fallback = self.interior.Fallback.pos - -- aligning interior portal - local intportal = self.interior.portals.interior - local fallback = self.interior.Fallback.pos + local floor_z - local floor_z + if self.metadata.Interior.FloorLevel then + floor_z = self.metadata.Interior.FloorLevel + else + local floor = util.QuickTrace(self.interior:LocalToWorld(fallback) + Vector(0, 0, 30), Vector(0, 0, -0.1) * 99999999).HitPos + floor = self.interior:WorldToLocal(floor) + floor_z = floor.z + end - if self.metadata.Interior.FloorLevel then - floor_z = self.metadata.Interior.FloorLevel - else - local floor = util.QuickTrace(self.interior:LocalToWorld(fallback) + Vector(0, 0, 30), Vector(0, 0, -0.1) * 99999999).HitPos - floor = self.interior:WorldToLocal(floor) - floor_z = floor.z - end + local prev_int_z_offset = self:GetData("chameleon_intportal_z_offset", 0) - local prev_int_z_offset = self:GetData("chameleon_intportal_z_offset", 0) + local intp_offset = intportal:GetExitPosOffset() + local intp_offset_real_z = intp_offset.z - prev_int_z_offset - local intp_offset = intportal:GetExitPosOffset() - local intp_offset_real_z = intp_offset.z - prev_int_z_offset + local intp_midtofloor = self.interior:WorldToLocal(intportal:GetPos()).z - floor_z - local intp_midtofloor = self.interior:WorldToLocal(intportal:GetPos()).z - floor_z + local new_int_z_offset - local new_int_z_offset + if id == false then + new_int_z_offset = 0 + else + new_int_z_offset = 0.5 * extportal:GetHeight() - intp_midtofloor + end - if id == false then - new_int_z_offset = 0 - else - new_int_z_offset = 0.5 * extportal:GetHeight() - intp_midtofloor - end + intportal:SetExitPosOffset(Vector(intp_offset.x, intp_offset.y, intp_offset_real_z + new_int_z_offset)) + self:SetData("chameleon_intportal_z_offset", new_int_z_offset) - intportal:SetExitPosOffset(Vector(intp_offset.x, intp_offset.y, intp_offset_real_z + new_int_z_offset)) - self:SetData("chameleon_intportal_z_offset", new_int_z_offset) + -- aligning exterior portal - -- aligning exterior portal + local prev_ext_z_offset = self:GetData("chameleon_extportal_z_offset", 0) - local prev_ext_z_offset = self:GetData("chameleon_extportal_z_offset", 0) + local extp_offset = extportal:GetExitPosOffset() + local extp_offset_real_z = extp_offset.z - prev_ext_z_offset - local extp_offset = extportal:GetExitPosOffset() - local extp_offset_real_z = extp_offset.z - prev_ext_z_offset + local new_ext_z_offset + if id == false then + new_ext_z_offset = 0 + else + new_ext_z_offset = intp_midtofloor - 0.5 * extportal:GetHeight() + end - local new_ext_z_offset - if id == false then - new_ext_z_offset = 0 - else - new_ext_z_offset = intp_midtofloor - 0.5 * extportal:GetHeight() + extportal:SetExitPosOffset(Vector(extp_offset.x, extp_offset.y, extp_offset_real_z + new_ext_z_offset)) + self:SetData("chameleon_extportal_z_offset", new_ext_z_offset) end - extportal:SetExitPosOffset(Vector(extp_offset.x, extp_offset.y, extp_offset_real_z + new_ext_z_offset)) - self:SetData("chameleon_extportal_z_offset", new_ext_z_offset) - -- exterior parts replacement for k,v in pairs(self:GetParts()) do if IsValid(v) then @@ -323,7 +330,16 @@ ENT:AddHook("PowerToggled", "chameleon", function(self,on) self:RetryChameleon(true) end) +ENT:AddHook("MigrateData", "chameleon", function(self,parent,data) + self:SetData("chameleon_selected_exterior", self:GetData("chameleon_current_exterior"), true) +end) + ENT:AddHook("MatStart", "chameleon", function(self) + local planned_ext = self:GetData("chameleon_planned_exterior") + if planned_ext then + self:SetData("chameleon_selected_exterior", planned_ext) + self:SetData("chameleon_planned_exterior", nil) + end self:RetryChameleon(false) end) diff --git a/lua/entities/gmod_tardis/modules/sh_destination.lua b/lua/entities/gmod_tardis/modules/sh_destination.lua index d38ecd4ad..6636a5653 100644 --- a/lua/entities/gmod_tardis/modules/sh_destination.lua +++ b/lua/entities/gmod_tardis/modules/sh_destination.lua @@ -1,5 +1,9 @@ -- Destination +local TRACE_DISTANCE = 9999999999 +local TRACE_DOWN_VECTOR = Vector(0, 0, -TRACE_DISTANCE) +local TRACE_DEBUG = false + -- Binds TARDIS:AddKeyBind("destination-open",{ @@ -84,7 +88,8 @@ TARDIS:AddKeyBind("destination-demat",{ if ply:GetTardisData("destination") then local prop = self:GetData("destinationprop") if IsValid(prop) then - self:SendMessage("destination-demat", {prop:GetPos(), prop:GetAngles()}) + local prop_chameleon = self:GetData("destination_chameleon") + self:SendMessage("destination-demat", {prop:GetPos(), prop:GetAngles(), prop_chameleon}) end end end, @@ -92,15 +97,47 @@ TARDIS:AddKeyBind("destination-demat",{ clientonly=true, exterior=true }) +TARDIS:AddKeyBind("destination-jump",{ + name="Jump", + section="Destination", + func=function(self,down,ply) + if ply:GetTardisData("destination") then + if down then + self:SetData("destination-trace",true) + elseif self:GetData("destination-trace") then + local prop = self:GetData("destinationprop") + local pos,ang = self:GetDestinationPropTrace(ply,ply:EyeAngles()) + + prop:SetPos(pos) + prop:SetAngles(ang) + + self:SetData("destination-trace",false) + end + end + end, + key=MOUSE_RIGHT, + clientonly=true, + exterior=true +}) TARDIS:AddKeyBind("destination-snaptofloor",{ name="SnapToFloor", section="Destination", func=function(self,down,ply) - if ply:GetTardisData("destination") then + if down and ply:GetTardisData("destination") then local prop = self:GetData("destinationprop") if IsValid(prop) then - local pos = util.QuickTrace(prop:GetPos()+Vector(0,0,50), Vector(0,0,-1)*99999999).HitPos + local pos, ang + if TARDIS:IsBindDown("destination-boost") then + pos,ang = self:GetDestinationPropTrace(ply,Angle(90,0,0)) + else + local prevpos = self:GetData("destination_snaptofloor_lastpos") + local should_glue = (prevpos == prop:GetPos()) + + pos, ang = self:GetGroundedPos(prop:GetPos(), should_glue) + end prop:SetPos(pos) + prop:SetAngles(ang) + self:SetData("destination_snaptofloor_lastpos", (not should_glue and pos)) end end end, @@ -108,6 +145,92 @@ TARDIS:AddKeyBind("destination-snaptofloor",{ clientonly=true, exterior=true }) +TARDIS:AddKeyBind("destination-rotation-toggle",{ + name="ToggleRotationMode", + section="Destination", + func=function(self,down,ply) + if down and ply:GetTardisData("destination") then + local rotating = not self:GetData("destination-rotating") + self:SetData("destination-rotating", rotating) + TARDIS:StatusMessage(ply, "Destination.RotationMode", rotating) + end + end, + key=KEY_T, + clientonly=true, + exterior=true +}) +TARDIS:AddKeyBind("destination-find-random",{ + name="FindRandom", + section="Destination", + func=function(self,down,ply) + if down and ply:GetTardisData("destination") then + local prop = self:GetData("destinationprop") + if IsValid(prop) then + prop:SetAngles(Angle(0,prop:GetAngles().y,0)) + local pos, ang = self:GetGroundedPos(self:GetRandomLocation(true), true) + prop:SetPos(pos) + prop:SetAngles(ang) + + self:SetData("destination_snaptofloor_lastpos", grounded and pos) + end + end + end, + key=KEY_G, + clientonly=true, + exterior=true +}) +TARDIS:AddKeyBind("destination-show-current",{ + name="ShowCurrent", + section="Destination", + func=function(self,down,ply) + if down and ply:GetTardisData("destination") then + local prop = self:GetData("destinationprop") + if IsValid(prop) then + prop:SetPos(self:GetDestinationPos(true)) + prop:SetAngles(self:GetDestinationAng(true)) + end + end + end, + key=KEY_H, + clientonly=true, + exterior=true +}) + +TARDIS:AddKeyBind("destination-chameleon",{ + name="Chameleon", + section="Destination", + func=function(self,down,ply) + if down and ply:GetTardisData("destination") then + + local prop = self:GetData("destinationprop") + local pos, ang + if IsValid(prop) then + pos = prop:GetPos() + ang = prop:GetAngles() + end + + local ext, ext_id = table.Random(TARDIS:GetExteriors()) + + self:CreateDestinationProp(ext_id) + self:SetData("destination_chameleon", ext_id) + + prop = self:GetData("destinationprop") + if IsValid(prop) then + prop:SetPos(pos) + prop:SetAngles(ang) + end + end + end, + key=KEY_F, + clientonly=true, + exterior=true +}) + +hook.Add("PlayerSwitchFlashlight", "tardis-destination", function(ply,enabled) + if ply:GetTardisData("destination") then + return false + end +end) if SERVER then function ENT:SetDestination(pos, ang) @@ -138,8 +261,7 @@ if SERVER then local randomLocation = self:GetRandomLocation(grounded) if randomLocation then self:CallHook("RandomDestinationSet", randomLocation) - self:SetDestination(randomLocation, Angle(0,0,0)) - return true + return self:SetDestination(randomLocation, Angle(0,0,0)) else return false end @@ -187,9 +309,17 @@ if SERVER then end local pos = data[1] local ang = data[2] + local ext = data[3] + if ply:GetTardisData("destination") then self:SelectDestination(ply, false) end + + self:SetData("chameleon_planned_exterior", ext, true) + if ext then + TARDIS:Message(ply, "Chameleon.ExteriorPlanned") + end + if self:GetData("vortex") or self:GetData("teleport") then if self:SetDestination(pos,ang) then TARDIS:Message(ply, "Destination.LockedReadyToMat") @@ -214,6 +344,12 @@ if SERVER then end end end) + + ENT:AddHook("Destination", "destination_exit", function(self, ply, enabled) + if enabled then return end + + ply:SetTardisData("destination_last_exit", CurTime(), true) + end) else local defaultdist = 210 function ENT:GetDestinationPropPos(ply, pos, ang) @@ -229,7 +365,17 @@ else return tr.HitPos+(ang:Forward()*10), Angle(ang.p,ang.y,0) end + function ENT:GetDestinationPropTrace(ply,ang) + local prop = self:GetData("destinationprop") + local pos,ang=self:GetDestinationPropPos(ply,nil,ang) + local trace=util.QuickTrace(pos,ang:Forward()*TRACE_DISTANCE,{self,TARDIS:GetPart(self,"door"),prop}) + local angle=trace.HitNormal:Angle() + angle:RotateAroundAxis(angle:Right(),-90) + return trace.HitPos,angle + end + local function setup(ent, model, pos, ang) + if not IsValid(ent) then return end local prop = ents.CreateClientProp() prop:SetModel(model or ent:GetModel()) @@ -250,10 +396,12 @@ else return prop end - function ENT:CreateDestinationProp() + function ENT:CreateDestinationProp(exterior_id) self:RemoveDestinationProp() - local cham_ext = self:GetData("chameleon_selected_exterior") + local planned_ext = self:GetData("chameleon_planned_exterior") + local selected_ext = self:GetData("chameleon_selected_exterior") + local cham_ext = exterior_id or planned_ext or selected_ext local md if cham_ext then md = TARDIS:CreateExteriorMetadata(cham_ext) @@ -294,7 +442,9 @@ else attachment = setup(v) end - attachment:SetParent(prop) + if IsValid(attachment) then + attachment:SetParent(prop) + end end end @@ -335,6 +485,10 @@ else end end) + ENT:AddHook("Destination", "rotation_mode", function(self, enabled) + self:SetData("destination-rotating", nil) + end) + ENT:OnMessage("destination", function(self, data, ply) local enabled = data[1] self:CallHook("Destination", enabled) @@ -351,32 +505,29 @@ else end) ENT:AddHook("Think", "destination", function(self) - if LocalPlayer():GetTardisData("destination") then - local prop=self:GetData("destinationprop") - if not IsValid(prop) then return end - local dt=FrameTime()*66 - local eye=LocalPlayer():EyeAngles() - eye.r = 0 - if not eye then - eye=angle_zero - end - local force = 15 - local angforce = 6 - local boostmul = 15 - local slowmul = 0.1 - local angslowmul = 0.5 - local fwd=eye:Forward() - local ri=eye:Right() - local up=prop:GetUp() - - local mv = Vector(0,0,0) - local rt = Angle(0,0,0) - if TARDIS:IsBindDown("destination-forward") then - mv:Add(force*fwd*dt) - elseif TARDIS:IsBindDown("destination-backward") then - mv:Add(force*fwd*-1*dt) - end + if not LocalPlayer():GetTardisData("destination") then return end + local prop=self:GetData("destinationprop") + if not IsValid(prop) then return end + local dt=FrameTime()*66 + local eye=LocalPlayer():EyeAngles() + eye.r = 0 + if not eye then + eye=angle_zero + end + local force = 15 + local angforce = 6 + local boostmul = 15 + local slowmul = 0.1 + local angslowmul = 0.5 + local fwd=eye:Forward() + local ri=eye:Right() + local up=Vector(0,0,1) + + local mv = Vector(0,0,0) + local rt = Angle(0,0,0) + + if not self:GetData("destination-rotating") then if TARDIS:IsBindDown("destination-rotate") and TARDIS:IsBindDown("destination-boost") then if TARDIS:IsBindDown("destination-left") then rt = rt + Angle(0,angforce*dt,0) @@ -384,7 +535,32 @@ else if TARDIS:IsBindDown("destination-right") then rt = rt + Angle(0,angforce*-1*dt,0) end + + local fwd = TARDIS:IsBindDown("destination-forward") + local back = TARDIS:IsBindDown("destination-backward") + + if fwd or back then + if not self:GetData("destination_rotate_key") then + local ang = prop:GetAngles() + + local k = fwd and 1 or ((ang.y % 45) == 0) and -1 or 0 + + if ang:Up() == Vector(0,0,1) then + prop:SetAngles(Angle(ang.x, ang.y + 45 * k - (ang.y % 45), ang.z)) + else + rt = rt + Angle(0, 90 * k, 0) + end + end + self:SetData("destination_rotate_key", true) + else + self:SetData("destination_rotate_key", nil) + end else + if TARDIS:IsBindDown("destination-forward") then + mv:Add(force*fwd*dt) + elseif TARDIS:IsBindDown("destination-backward") then + mv:Add(force*fwd*-1*dt) + end if TARDIS:IsBindDown("destination-left") then mv:Add(force*ri*-1*dt) end @@ -406,14 +582,56 @@ else mv=mv*boostmul rt=rt*boostmul end + else + angforce = angforce * 0.25 - if not mv:IsZero() then - prop:SetPos(prop:GetPos() + mv) + if TARDIS:IsBindDown("destination-rotate") then + if TARDIS:IsBindDown("destination-left") then + rt = rt + Angle(0,0,angforce*dt) + end + if TARDIS:IsBindDown("destination-right") then + rt = rt + Angle(0,0,angforce*-1*dt) + end + else + if TARDIS:IsBindDown("destination-left") then + rt = rt + Angle(0,angforce*dt,0) + end + if TARDIS:IsBindDown("destination-right") then + rt = rt + Angle(0,angforce*-1*dt,0) + end end - if not rt:IsZero() then - prop:SetAngles(prop:GetAngles() + rt) + if TARDIS:IsBindDown("destination-forward") then + rt = rt + Angle(angforce*dt,0,0) + elseif TARDIS:IsBindDown("destination-backward") then + rt = rt + Angle(angforce*-1*dt,0,0) + end + + if TARDIS:IsBindDown("destination-boost") then + rt = rt * 2 end end + + if not mv:IsZero() then + prop:SetPos(prop:GetPos() + mv) + end + if not rt:IsZero() then + local ang = prop:GetAngles() + + ang:RotateAroundAxis(ang:Up(), rt.y) + ang:RotateAroundAxis(ang:Right(), rt.x) + ang:RotateAroundAxis(ang:Forward(), rt.z) + prop:SetAngles(ang) + end + end) + + hook.Add("PostDrawTranslucentRenderables", "destination-trace", function() + local ext=TARDIS:GetExteriorEnt() + if not IsValid(ext) then return end + if not LocalPlayer():GetTardisData("destination") then return end + if not ext:GetData("destination-trace") then return end + + local pos, ang = ext:GetDestinationPropTrace(LocalPlayer(),LocalPlayer():EyeAngles()) + ext:DrawViewCrosshair(pos,ang) end) end @@ -429,26 +647,274 @@ function ENT:GetDestinationAng(auto) return self:GetData("destination_ang") or (auto and self:GetAngles() or nil) end -function ENT:GetRandomLocation(grounded) - local td = {} - td.mins = self:OBBMins() - td.maxs = self:OBBMaxs() - local max = 16384 +function ENT:DestinationTraceDown(point, vertical_offset) + local vertical_offset = vertical_offset or 50 + + local filter = function(ent) + if ent:IsNPC() or ent:IsPlayer() then return false end + if ent == self or ent.TardisPart then return false end + return true + end + + return util.QuickTrace(point + Vector(0, 0, vertical_offset), TRACE_DOWN_VECTOR, filter) +end + +function ENT:DestinationTraceDownHit(point, vertical_offset) + return self:DestinationTraceDown(point, vertical_offset).HitPos +end + +local function GenerateTracePoints(self, yaw) + local trace_offsets = { Vector(0,0,0), } + + local xmin, ymin, zmin = self:OBBMins():Unpack() + local xmax, ymax, zmax = self:OBBMaxs():Unpack() + + -- add points on the border rectangle + + table.insert(trace_offsets, Vector(xmin, ymin, zmin)) + table.insert(trace_offsets, Vector(xmax, ymax, zmin)) + table.insert(trace_offsets, Vector(xmin, ymax, zmin)) + table.insert(trace_offsets, Vector(xmax, ymin, zmin)) + + for i,v in ipairs(trace_offsets) do + v:Rotate(yaw) + end + + local r = self:OBBMins() * 0.9 + + -- add points from a circle in the middle + local num_dirs = 32 + for i = 0,num_dirs do + r:Rotate(Angle(0,360 / num_dirs,0)) + table.insert(trace_offsets, (Vector() + r)) + if i % 2 == 0 then + table.insert(trace_offsets, (Vector() + r) * 0.5) + table.insert(trace_offsets, (Vector() + r) * 0.75) + end + end + + return trace_offsets +end + +local function GetPlaneNormal(p1, p2, p3) + local d1 = p1 - p2 + local d2 = p1 - p3 + + local normal = d1:Cross(d2) + if normal.z < 0 then normal = -normal end + + return normal:GetNormalized() +end + +local function SelectPlaneDefiningPoints(points) + local a,b = points[1], points[2] + + local todelete = {} + for i,c in ipairs(points) do + local ca = c - a + local cb = c - b + + local ca_h = Vector(ca.x, ca.y, 0) + local cb_h = Vector(cb.x, cb.y, 0) + + -- removing points on the same line as the first two selected + if ca_h:Cross(cb_h):IsEqualTol(Vector(0,0,0), 0.01) then + table.insert(todelete, i) + end + end + table.sort(todelete, function(a,b) return a > b end) + for i,c in ipairs(todelete) do + table.remove(points, c) + end + + -- select the third highest point + local c = points[3] + + if not c then + -- all the points were in one line + -- this means we're probably landing horizontally + return nil + end + + return a,b,c +end + +function ENT:GetGroundedPos(point, get_angle) + if TRACE_DEBUG then + RunConsoleCommand("tardis2_debug_pointer_clear") + end + + local prop = self:GetData("destinationprop") + local initial_yaw = Angle(0, IsValid(prop) and prop:GetAngles().y or self:GetAngles().y, 0) + + local traces = {} + table.insert(traces, self:DestinationTraceDownHit(point)) + + -- a number of point quick-traces is more precise than TraceEntityHull or TraceEntity since they don't take rotation into account + + for k,offset in ipairs(GenerateTracePoints(self,initial_yaw)) do + table.insert(traces, self:DestinationTraceDownHit(point + offset)) + end + + -- finding top 3 points + table.sort(traces, function(a, b) return a.z > b.z end) + + local pos = Vector(point.x, point.y, traces[1].z) + + if not get_angle then + return pos, initial_yaw + end + + local a,b,c = SelectPlaneDefiningPoints(traces) + if a == nil then + return pos, initial_yaw + end + + local cur_normal = GetPlaneNormal(a,b,c) + + -- looking for the highest selected plane with the first two points + for j,c2 in ipairs(traces) do + local n = GetPlaneNormal(a, b, c2) + if n.z > cur_normal.z then + c = c2 + cur_normal = n + end + end + + local ca = c - a + local cb = c - b + + if TRACE_DEBUG then + -- Debugging code, might be useful in the future + for k,v in ipairs(traces) do + if not v:IsEqualTol(a, 0.0001) and not v:IsEqualTol(b, 0.0001) and not v:IsEqualTol(c, 0.0001) then + RunConsoleCommand("tardis2_debug_pointer", "worldpos", v.x, v.y, v.z) + end + end + RunConsoleCommand("tardis2_debug_pointer_color") + RunConsoleCommand("tardis2_debug_pointer", "worldpos", a.x, a.y, a.z) + RunConsoleCommand("tardis2_debug_pointer", "worldpos", b.x, b.y, b.z) + RunConsoleCommand("tardis2_debug_pointer", "worldpos", c.x, c.y, c.z) + end + + local normal = ca:Cross(cb):GetNormalized() + + if normal.z < 0 then + -- looking down + normal = - normal + end + + local ang = normal:Angle() + Angle(90,0,0) + ang:RotateAroundAxis(normal, initial_yaw.y) + + if normal ~= Vector(0,0,0) and normal.z > 0.5 then + -- the TARDIS can land there and the selected position is not vertical + + local A,B,C = normal:Unpack() + local x0,y0,z0 = a:Unpack() + + local D = - A * x0 - B * y0 - C * z0 + local z = (- D - A * point.x - B * point.y) / C + + return Vector(point.x, point.y, z), ang + end + + return pos, initial_yaw +end + +function ENT:CanFit(point) + return not util.TraceEntity({start = point, endpos = point}, self).Hit +end + +local function IsTraceBelowWorld(trace_result) + if trace_result.HitPos.z < -16384 then + return true + end + local texture = trace_result.HitTexture + if texture == "**empty**" + or texture == "TOOLS/TOOLSNODRAW" + or texture == "TOOLS/TOOLSSKYBOX" + then + return true + end + return false +end + +function ENT:FindPosInBox(p1, p2) + local xmin, ymin, zmin = p1:Unpack() + local xmax, ymax, zmax = p2:Unpack() + local tries = 1000 local point + + if xmin > xmax or ymin > ymax or zmin > zmax then + return + end + while tries > 0 do tries = tries - 1 - point=Vector(math.random(-max, max),math.random(-max, max),math.random(-max, max)) - td.start=point - td.endpos=point - if not util.TraceHull(td).Hit - then - if grounded then - local down = util.QuickTrace(point + Vector(0, 0, 50), Vector(0, 0, -1) * 99999999).HitPos - return down, true - else - return point, false - end + + local x = (xmin == xmax) and xmin or math.Rand(xmin, xmax) + local y = (ymin == ymax) and ymin or math.Rand(ymin, ymax) + local z = (zmin == zmax) and zmin or math.Rand(zmin, zmax) + + point=Vector(x,y,z) + + if self:CanFit(point) and not IsTraceBelowWorld(self:DestinationTraceDown(point, -50)) then + return point end end +end + +function ENT:GetRandomLocation(grounded) + local max = 16384 + + local pos = self:FindPosInBox(Vector(-max,-max,-max), Vector(max,max,max)) + + if not pos then + return self:GetPos() + elseif not grounded then + return pos + end + + pos = self:GetGroundedPos(pos) + + if math.random(0,5) == 0 then + return pos + end + + -- Searching for underground / indoor locations + -- the probability of them is rather low, but much higher than after the initial search + -- plus, the chances of skybox landing are lower + + local locations = {} + + local trace_res, trace_good, trace_last_hitpos + + local function trace_down_next() + trace_res = self:DestinationTraceDown(trace_last_hitpos, -50) + trace_last_hitpos = trace_res.HitPos + trace_good = not IsTraceBelowWorld(trace_res) + end + + trace_last_hitpos = pos + trace_down_next() + while trace_good do + table.insert(locations, trace_last_hitpos) + trace_down_next() + end + + if #locations < 1 then return pos end + + local newpos = locations[math.random(#locations)] + local z_size = self:OBBMaxs().z - self:OBBMins().z + 50 + + -- we gotta make sure the TARDIS fits + newpos = self:FindPosInBox(Vector(pos.x,pos.y,newpos.z - z_size), Vector(pos.x,pos.y,newpos.z + z_size)) + + if newpos then + pos = self:GetGroundedPos(newpos) + end + + return pos end \ No newline at end of file diff --git a/lua/entities/gmod_tardis/modules/sh_doors.lua b/lua/entities/gmod_tardis/modules/sh_doors.lua index 6335da6d7..5671404e2 100644 --- a/lua/entities/gmod_tardis/modules/sh_doors.lua +++ b/lua/entities/gmod_tardis/modules/sh_doors.lua @@ -96,7 +96,7 @@ if SERVER then return 1 end else - if open and self:CloseDoor() then + if open and self:CloseDoor() then return 1 end end @@ -108,20 +108,8 @@ if SERVER then end end) - ENT:AddHook("ToggleDoor", "intdoors", function(self,open) - local intdoor=TARDIS:GetPart(self.interior,"door") - if IsValid(intdoor) then - local override = self:CallHook("DoorCollisionOverride") - if (override == nil and open) or override==false then - intdoor:SetCollisionGroup( COLLISION_GROUP_WORLD ) - elseif override or override==nil then - intdoor:SetCollisionGroup( COLLISION_GROUP_NONE ) - end - end - end) - ENT:AddHook("Initialize", "legacy_door_type", function(self,open) - local islegacy = TARDIS:GetSetting("legacy_door_type", self) + local islegacy = self.metadata.Exterior.UseLegacyDoors or TARDIS:GetSetting("legacy_door_type", self) self:SetData("legacy_door_type", islegacy, true) end) @@ -147,18 +135,32 @@ if SERVER then end end) - ENT:AddHook("ToggleDoor", "extcollision",function(self,open) - local door = TARDIS:GetPart(self,"door") - if IsValid(door) then - local override = self:CallHook("DoorCollisionOverride") - if (override == nil and open) or override==false then - door:SetSolid(SOLID_NONE) - elseif override or override==nil then - door:SetSolid(SOLID_VPHYSICS) - end + ENT:AddHook("ToggleDoor", "doorcollision",function(self,open) + self:UpdateDoorCollision() + end) + + ENT:AddHook("SlowThink", "doorcollision",function(self,open) + if self:DoorOpen(true) then + self:UpdateDoorCollision() end end) + function ENT:UpdateDoorCollision() + local open = self:DoorOpen(true) + local override = self:CallHook("DoorCollisionOverride") + + local door_ext = TARDIS:GetPart(self,"door") + local door_int=TARDIS:GetPart(self.interior,"door") + + if (override == nil and open) or override==false then + if IsValid(door_ext) then door_ext:SetSolid(SOLID_NONE) end + if IsValid(door_int) then door_int:SetCollisionGroup( COLLISION_GROUP_WORLD ) end + elseif override or override==nil then + if IsValid(door_ext) then door_ext:SetSolid(SOLID_VPHYSICS) end + if IsValid(door_int) then door_int:SetCollisionGroup( COLLISION_GROUP_NONE ) end + end + end + ENT:AddHook("ShouldExteriorDoorCollide", "dooropen", function(self,open) local override = self:CallHook("DoorCollisionOverride") if (override == nil and open) or override==false then @@ -172,6 +174,10 @@ if SERVER then self:SendMessage("ToggleDoorReal", {open}) end) + ENT:AddHook("ToggleDoor", "doors", function(self,open) + self:SendMessage("ToggleDoor", {open}) + end) + ENT:AddHook("Think", "doors", function(self) if self:GetData("doorchangewait",false) and CurTime()>self:GetData("doorchange",0) then self:SetData("doorchangewait",nil) @@ -236,7 +242,16 @@ if SERVER then return false,false,"Chameleon.FailReasons.DoorsOpen",false end end) + + ENT:AddHook("LockedUse", "door", function(self, a) + self:SendMessage("LockedUse", {a}) + end) + else + ENT:OnMessage("LockedUse", function(self,data,ply) + self:CallHook("LockedUse", data[1]) + end) + function ENT:DoorOpen(real) local door=self:GetPart("door") if real and IsValid(door) then @@ -259,6 +274,10 @@ else self:CallHook("ToggleDoorReal", data[1]) end) + ENT:OnMessage("ToggleDoor", function(self, data, ply) + self:CallHook("ToggleDoor", data[1]) + end) + ENT:AddHook("ToggleDoorReal","doorsounds",function(self,open) local extsnds = self.metadata.Exterior.Sounds.Door local intsnds = self.metadata.Interior.Sounds.Door or extsnds diff --git a/lua/entities/gmod_tardis/modules/sh_effects.lua b/lua/entities/gmod_tardis/modules/sh_effects.lua new file mode 100644 index 000000000..ed9584320 --- /dev/null +++ b/lua/entities/gmod_tardis/modules/sh_effects.lua @@ -0,0 +1,194 @@ +-- Various effects for the TARDIS (smoke, sparks, explosions) + +if SERVER then + function ENT:Explode(f) + local force = 60 + if f ~= nil then + force = tostring(f) + end + local explode = ents.Create("env_explosion") + explode:SetPos( self:LocalToWorld(Vector(0,0,50)) ) + explode:SetOwner( self ) + explode:Spawn() + explode:SetKeyValue("iMagnitude", force) + explode:Fire("Explode", 0, 0 ) + end + + ENT:AddHook("Think", "smoke", function(self) + if self:CallHook("ShouldStartSmoke") and self:CallHook("ShouldStopSmoke")~=true then + if self.smoke then return end + self:StartSmoke() + else + self:StopSmoke() + end + end) + + ENT:AddHook("Think", "RemoveSmoke", function(self) + local smokedelay = self:GetData("smoke-killdelay") + if smokedelay ~= nil and CurTime() >= smokedelay then + if IsValid(self.smoke) then + self.smoke:Remove() + self.smoke = nil + self:SetData("smoke-killdelay",nil) + end + end + end) + + function ENT:StartSmoke() + local smoke = ents.Create("env_smokestack") + smoke:SetPos(self:LocalToWorld(Vector(0,0,80))) + smoke:SetAngles(self:GetAngles()+Angle(-90,0,0)) + smoke:SetKeyValue("InitialState", "1") + smoke:SetKeyValue("WindAngle", "0 0 0") + smoke:SetKeyValue("WindSpeed", "0") + smoke:SetKeyValue("rendercolor", "50 50 50") + smoke:SetKeyValue("renderamt", "70") + smoke:SetKeyValue("SmokeMaterial", "particle/smokesprites_0001.vmt") + smoke:SetKeyValue("BaseSpread", "5") + smoke:SetKeyValue("SpreadSpeed", "10") + smoke:SetKeyValue("Speed", "50") + smoke:SetKeyValue("StartSize", "60") + smoke:SetKeyValue("EndSize", "140") + smoke:SetKeyValue("roll", "20") + smoke:SetKeyValue("Rate", "25") + smoke:SetKeyValue("JetLength", "100") + smoke:SetKeyValue("twist", "5") + smoke:Spawn() + smoke:SetParent(self) + smoke:Activate() + self.smoke=smoke + end + + function ENT:StopSmoke() + if IsValid(self.smoke) and self:GetData("smoke-killdelay")==nil then + self.smoke:Fire("TurnOff") + local jetlength = self.smoke:GetInternalVariable("JetLength") + local speed = self.smoke:GetInternalVariable("Speed") + self:SetData("smoke-killdelay",CurTime()+(speed/jetlength)*5) + end + end + + function ENT:StartFire() + self.fire = ents.Create("env_fire") + self.fire:SetKeyValue("firesize", "500") + self.fire:SetKeyValue("spawnflags", "29") + self.fire:SetKeyValue("StartDisabled", "0") + self.fire:SetKeyValue("damagescale", "0") + self.fire:SetKeyValue("firedamage", "0") + self.fire:SetKeyValue("fireradius", "0") + self.fire:SetKeyValue("Speed", "50") + self.fire:SetPos(self:LocalToWorld(Vector(0,0,30))) + + self.fire:SetParent(self) + self.fire:Spawn() + self.fire:Activate() + end + + function ENT:StopFire() + if IsValid(self.fire) then + self.fire:Remove() + self.fire=nil + end + end + + ENT:AddHook("Think", "fire", function(self) + if self:CallHook("ShouldStartFire") and self:CallHook("ShouldStopFire")~=true then + if IsValid(self.fire) then return end + self:StartFire() + elseif self.fire then + if not self:GetTimer("fire_stop") then + self:Timer("fire_stop", 2, function() + if not self:CallHook("ShouldStartFire") or self:CallHook("ShouldStopFire") then + self:StopFire() + end + end) + end + end + end) + + -- Rotorwash + + function ENT:CreateRotorWash() + if IsValid(self.rotorwash) then return end + self.rotorwash = ents.Create("env_rotorwash_emitter") + self.rotorwash:SetPos(self:GetPos()) + self.rotorwash:SetParent(self) + self.rotorwash:Activate() + end + + function ENT:RemoveRotorWash() + if IsValid(self.rotorwash) then + self.rotorwash:Remove() + self.rotorwash=nil + end + end + + ENT:AddHook("Think", "rotorwash", function(self) + local shouldon=self:CallHook("ShouldTurnOnRotorwash") + local shouldoff=self:CallHook("ShouldTurnOffRotorwash") + + if shouldon and (not shouldoff) then + if not self.rotorwash then + self:CreateRotorWash() + end + elseif self.rotorwash then + self:RemoveRotorWash() + end + end) + +else -- CLIENT + local function rand_offset(x) + return math.random(-x, x) + end + + local function get_effect_pos(self) + local console = self.interior:GetPart("console") + if self.metadata.Interior.BreakdownEffectPos then + self.effect_pos = self.interior:GetPos() + self.metadata.Interior.BreakdownEffectPos + elseif console and IsValid(console) then + self.effect_pos = console:GetPos() + Vector(0, 0, 50) + else + self.effect_pos = self.interior:GetPos() + Vector(0, 0, 50) + end + end + + function ENT:InteriorExplosion() + if self.effect_pos == nil then + get_effect_pos(self) + end + + local effect_data = EffectData() + effect_data:SetOrigin(self.effect_pos + Vector(rand_offset(40), rand_offset(40), 0)) + + util.Effect("Explosion", effect_data) + + effect_data:SetScale(0.5) + effect_data:SetMagnitude(math.random(3, 5)) + effect_data:SetRadius(math.random(1,5)) + util.Effect("ElectricSpark", effect_data) + end + + function ENT:InteriorSparks(power) + if self.effect_pos == nil then + get_effect_pos(self) + end + + local effect_data = EffectData() + effect_data:SetOrigin(self.effect_pos + Vector(rand_offset(35), rand_offset(35), 0)) + + effect_data:SetScale(power) + effect_data:SetMagnitude(math.random(3, 5) * power) + effect_data:SetRadius(math.random(1,5) * power) + util.Effect("ElectricSpark", effect_data) + end + + function ENT:ExteriorSparks(power) + local effect_data = EffectData() + effect_data:SetOrigin(self:GetPos()) + + effect_data:SetScale(power) + effect_data:SetMagnitude(math.random(3, 5) * power) + effect_data:SetRadius(math.random(10,15) * power) + util.Effect("ElectricSpark", effect_data) + end +end \ No newline at end of file diff --git a/lua/entities/gmod_tardis/modules/sh_exterior_light.lua b/lua/entities/gmod_tardis/modules/sh_exterior_light.lua index 95cb28907..789ff00e2 100644 --- a/lua/entities/gmod_tardis/modules/sh_exterior_light.lua +++ b/lua/entities/gmod_tardis/modules/sh_exterior_light.lua @@ -57,7 +57,7 @@ else if shouldon and (not shouldoff) then local col = light.color - if self:GetData("health-warning") and light.warncolor ~= nil then + if self:GetData("warning") and light.warncolor ~= nil then col = light.warncolor end if TARDIS:GetSetting("extlight-override-color", self) then @@ -106,7 +106,7 @@ else if shouldon and (not shouldoff) then local col = light.color - if self:GetData("health-warning") and light.warncolor ~= nil then + if self:GetData("warning") and light.warncolor ~= nil then col = light.warncolor end if TARDIS:GetSetting("extlight-override-color", self) then diff --git a/lua/entities/gmod_tardis/modules/sh_falling.lua b/lua/entities/gmod_tardis/modules/sh_falling.lua new file mode 100644 index 000000000..7c96217dd --- /dev/null +++ b/lua/entities/gmod_tardis/modules/sh_falling.lua @@ -0,0 +1,137 @@ +if SERVER then + function ENT:IsVerticalLanding(collision_data) + local ang = self:GetAngles() + local angmax = math.max(math.abs(ang.p), math.abs(ang.r)) + + local hit_normal_z = collision_data.HitNormal.z + local vel = collision_data.OurOldVelocity + local velh = Vector(vel.x, vel.y, 0):Length() + local velv = math.abs(vel.z) + + return (angmax < 30 and hit_normal_z < -0.85 and vel.z < 0 and (velh <= 1500 or velv > 500)) + end + + ENT:AddHook("PhysicsCollide", "falling", function(self, data, collider) + + if self:IsVerticalLanding(data) then + if self:CallHook("ShouldNotPlayLandingSound") ~= true and data.OurOldVelocity.z < -100 then + self:SendMessage((data.OurOldVelocity.z < -1500) and "fall_crashing_sound" or "fall_landing_sound") + end + + self:SetData("vertbrakes", true) + self:Timer("vertbrakes", 0.3, function() + self:SetData("vertbrakes", false) + end) + end + + end) + + ENT:AddHook("PhysicsUpdate", "falling", function(self,ph) + + local free_movement = not self:GetData("float") and not self:GetData("flight") and not self:IsPlayerHolding() + free_movement = free_movement and ph:IsGravityEnabled() and self:IsAlive() + + self:SetData("free_movement", free_movement, true) + + if not free_movement then + if self:GetData("vertbrakes") then + self:SetData("vertbrakes", false) + end + return + end + + if not self:IsAlive() then return end + + local phm=FrameTime()*66 + local up=self:GetUp() + local ri2=self:GetRight() + local fwd2=self:GetForward() + local ang=self:GetAngles() + local vel=ph:GetVelocity() + local vell=ph:GetVelocity():Length() + local cen=ph:GetMassCenter() + local mass=ph:GetMass() + local lev=ph:GetInertia():Length() + local angv=ph:GetAngleVelocity() + + local function align_in_flight() + local angmax = math.max(math.abs(ang.p), math.abs(ang.r)) + local angvmax = math.max(math.abs(angv.x), math.abs(angv.y)) + + ph:SetAngleVelocityInstantaneous(Vector(angv.x * 0.95, angv.y * 0.95, angv.z)) + + if angvmax <= 50 and angmax > 10 then + ph:ApplyForceOffset( up * -ang.p * 10, cen - fwd2 * lev) + ph:ApplyForceOffset(-up * -ang.p * 10, cen + fwd2 * lev) + ph:ApplyForceOffset( up * -ang.r * 10, cen - ri2 * lev) + ph:ApplyForceOffset(-up * -ang.r * 10, cen + ri2 * lev) + end + end + + + local function reduce_movement() + if math.abs(ang.p) <= 35 and math.abs(ang.r) <= 35 and vel.z > 0 then + local newvel_x = math.Clamp(vel.x * 0.05,-30,30) + local newvel_y = math.Clamp(vel.y * 0.05,-30,30) + + ph:SetVelocityInstantaneous(-up * 100 * phm) + ph:AddVelocity(Vector(newvel_x,newvel_y,0)) + + local newavel_x = math.Clamp(angv.x * 0.1,-300,300) + local newavel_y = math.Clamp(angv.y * 0.1,-300,300) + local newavel_z = math.Clamp(angv.z * 0.1,-300,300) + ph:SetAngleVelocityInstantaneous(Vector(newavel_x,newavel_y,newavel_z)) + end + end + + local pressing_down = IsValid(self.pilot) and TARDIS:IsBindDown(self.pilot,"flight-down") + local vertbrakes = self:GetData("vertbrakes") + local stopped = (vell < 1) + + local height = self:OBBMaxs().z - self:OBBMins().z + local tr = util.QuickTrace(self:GetPos(), Vector(0,0,-height)) + + if pressing_down and not vertbrakes and not tr.Hit then + align_in_flight() + end + + if vertbrakes then + if stopped then + self:SetData("vertbrakes", false) + self:CancelTimer("vertbrakes") + end + reduce_movement() + end + end) +else + ENT:OnMessage("fall_landing_sound", function(self, data, ply) + if not TARDIS:GetSetting("sound") then return end + if CurTime() - self:GetData("fall_sound_last", 0) < 2 then return end + self:SetData("fall_sound_last", CurTime()) + + local snds = self.metadata.Exterior.Sounds + + if TARDIS:GetSetting("flight-externalsound") then + self:EmitSound(snds.FlightLand) + end + + if IsValid(self.interior) and TARDIS:GetSetting("flight-internalsound") then + local snds_i = self.metadata.Interior.Sounds + self.interior:EmitSound(snds_i.FlightLand or snds.FlightLand) + end + end) + + ENT:OnMessage("fall_crashing_sound", function(self, data, ply) + if not TARDIS:GetSetting("sound") then return end + local snds = self.metadata.Exterior.Sounds + + if TARDIS:GetSetting("flight-externalsound") then + self:EmitSound(snds.FlightFall) + end + + if IsValid(self.interior) and TARDIS:GetSetting("flight-internalsound") then + local snds_i = self.metadata.Interior.Sounds + self.interior:EmitSound(snds_i.FlightFall or snds.FlightFall) + end + end) +end \ No newline at end of file diff --git a/lua/entities/gmod_tardis/modules/sh_flight.lua b/lua/entities/gmod_tardis/modules/sh_flight.lua index c1d65a890..451082568 100644 --- a/lua/entities/gmod_tardis/modules/sh_flight.lua +++ b/lua/entities/gmod_tardis/modules/sh_flight.lua @@ -15,7 +15,7 @@ TARDIS:AddKeyBind("flight-toggle",{ }) TARDIS:AddKeyBind("handbrake",{ - name="Handbrake", + name="ToggleHandbrake", section="ThirdPerson", func=function(self,down,ply) if down and ply == self.pilot then @@ -96,6 +96,20 @@ TARDIS:AddKeyBind("flight-spindir",{ exterior=true }) +function ENT:GetFlight() + return self:GetData("flight",false) +end + +function ENT:IsTravelling() + return self:CallHook("IsTravelling") +end + +ENT:AddHook("IsTravelling", "flight", function(self) + if self:GetFlight() then + return true + end +end) + if SERVER then function ENT:ToggleFlight() local on = not self:GetData("flight",false) @@ -105,7 +119,7 @@ if SERVER then function ENT:InterruptFlight() if not self:GetData("flight") and not self:GetData("vortex") then return end - if TARDIS:GetSetting("flight_interrupt_to_float", self:GetCreator()) then + if TARDIS:GetSetting("flight_interrupt_to_float", self) then self:SetData("floatfirst", true) end @@ -149,6 +163,10 @@ if SERVER then end end) + ENT:AddHook("FlightToggled", "client", function(self, on) + self:SendMessage("FlightToggled", {on}) + end) + ENT:AddHook("CanTurnOffFloat", "flight", function(self) if self:GetData("flight") then return false end end) @@ -194,6 +212,12 @@ if SERVER then end end) + ENT:AddHook("FlightToggled","broken_flight",function(self,on) + if not on and self:GetData("broken_flight") then + self:SetData("broken_flight", false, true) + end + end) + ENT:AddHook("PilotChanged","flight",function(self,old,new) self:SetData("pilot",new,true) self:SendMessage("PilotChanged", {old, new} ) @@ -231,6 +255,143 @@ if SERVER then local spin = (spindir ~= 0) local brakes = false + local broken = self:IsBroken() + local damaged = not broken and self:IsDamaged() + + local fbinds = { + forward = TARDIS:IsBindDown(self.pilot,"flight-forward"), + backward = TARDIS:IsBindDown(self.pilot,"flight-backward"), + left = TARDIS:IsBindDown(self.pilot,"flight-left"), + right = TARDIS:IsBindDown(self.pilot,"flight-right"), + rotate = TARDIS:IsBindDown(self.pilot,"flight-rotate"), + up = TARDIS:IsBindDown(self.pilot,"flight-up"), + down = TARDIS:IsBindDown(self.pilot,"flight-down"), + boost = TARDIS:IsBindDown(self.pilot,"flight-boost"), + } + + local function num_keys_pressed() + local count = 0 + for k,v in pairs(fbinds) do + if v then + count = count + 1 + end + end + return count + end + + local function VectorClamp(vec, minv, maxv) + local x = math.Clamp(vec.x, minv, maxv) + local y = math.Clamp(vec.y, minv, maxv) + local z = math.Clamp(vec.z, minv, maxv) + return Vector(x,y,z) + end + + local function stabilize() + -- lean into the flight + ph:ApplyForceOffset( vel * 0.005, cen + up * lev) + ph:ApplyForceOffset(-vel * 0.005, cen - up * lev) + + -- stabilise pitch + ph:ApplyForceOffset( up * -ang.p, cen - fwd2 * lev) + ph:ApplyForceOffset(-up * -ang.p, cen + fwd2 * lev) + + -- stabilise roll and apply tilt + ph:ApplyForceOffset( up * -(ang.r - tilt), cen - ri2 * lev) + ph:ApplyForceOffset(-up * -(ang.r - tilt), cen + ri2 * lev) + + local angbrake=angvel*-0.015 + ph:AddAngleVelocity(angbrake) + + local brake=vel*-0.01 + ph:AddVelocity(brake) + end + + if broken and vell > 200 then + if not self:GetData("broken_flight") then + self:SetData("broken_flight", true, true) + self:SendMessage("BrokenFlightEnable") + end + + local last_dir_change = self:GetData("broken_flight_dir_change_time", 0) + + local collided = self:GetData("broken_flight_collision") + if collided then + self:SetData("broken_flight_collision", nil) + end + + local pressed_data = self:GetData("flight_num_keys_pressed", 0) + local pressed = num_keys_pressed() + + if pressed ~= pressed_data then + self:SetData("flight_num_keys_pressed", pressed) + end + + local pressed_recently = (pressed_data < pressed) and (math.random(4) ~= 1) + + if (CurTime() > last_dir_change and vell < 2000) or collided or pressed_recently then + local new_direction = AngleRand():Forward() * vell + local old_dir_mult = 0.7 + local hit_vector = self:GetData("broken_flight_collision_vector") + + if hit_vector then + new_direction = new_direction - 2 * hit_vector * vell + self:SetData("broken_flight_collision_vector", nil) + end + if fbinds.boost then + new_direction = new_direction * 3 + end + if collided then + old_dir_mult = -2 + end + + if (math.random(5) == 1 or num_keys_pressed() >= 6) + and CurTime() - self:GetData("broken_flight_last_explode", 0) > 2 + then + self:Explode(0) + ph:SetAngleVelocity(AngleRand():Forward() * vell) + + self:SetData("broken_flight_last_explode", CurTime()) + self:SendMessage("BrokenFlightExplosion") + ph:AddVelocity(-0.75 * vel + new_direction * math.Rand(2,5) ) + else + self:SendMessage("BrokenFlightTurn") + ph:AddVelocity(0.5 * (old_dir_mult * vel + new_direction * math.Rand(2,3)) ) + end + + local stabilize = (math.random(4) == 1) + stabilize = stabilize or (fbinds.rotate and fbinds.down and not self:SetData("broken_flight_stabilize")) + self:SetData("broken_flight_stabilize", stabilize) + + self:SetData("broken_flight_dir_change_time", CurTime() + math.random(3) - 0.5) + + vel = ph:GetVelocity() + if (fbinds.up and vel.z < 0) or (fbinds.down and not fbinds.rotate and vel.z > 0) then + ph:SetVelocity(Vector(vel.x, vel.y, -vel.z)) + end + end + + if vell < 2000 then + ph:AddVelocity(vel * 0.02) + end + + if self:GetData("broken_flight_stabilize") and math.random(6) ~= 1 then + stabilize() + elseif angvel:Length() > 450 and CurTime() - self:GetData("broken_flight_last_explode", CurTime()) > 1 then + local angbrake=angvel*-0.015 + ph:AddAngleVelocity(angbrake) + else + ph:AddAngleVelocity(AngleRand():Forward() * 40) + local vec=Vector(0,vell / 10000,0) + vec:Rotate(ang) + ph:AddAngleVelocity(vec) + end + + return + end + if self:GetData("broken_flight") then + self:SetData("broken_flight", false, true) + end + if self.pilot and IsValid(self.pilot) and control then local p=self.pilot local eye=p:GetTardisData("viewang") @@ -240,7 +401,7 @@ if SERVER then local fwd=eye:Forward() local ri=eye:Right() - if TARDIS:IsBindDown(self.pilot,"flight-boost") then + if fbinds.boost then local force_mult local door = self:GetData("doorstatereal", false) @@ -269,24 +430,24 @@ if SERVER then elseif self.bad_flight_boost_msg ~= nil then self.bad_flight_boost_msg = nil end - if TARDIS:IsBindDown(self.pilot,"flight-forward") then + if fbinds.forward then ph:AddVelocity(fwd*force*phm) tilt=tilt+5 end - if TARDIS:IsBindDown(self.pilot,"flight-backward") then + if fbinds.backward then ph:AddVelocity(-fwd*force*phm) tilt=tilt+5 end - if TARDIS:IsBindDown(self.pilot,"flight-right") then - if TARDIS:IsBindDown(self.pilot,"flight-rotate") then + if fbinds.right then + if fbinds.rotate then ph:AddAngleVelocity(Vector(0,0,-rforce)) else ph:AddVelocity(ri*force*phm) tilt=tilt+5 end end - if TARDIS:IsBindDown(self.pilot,"flight-left") then - if TARDIS:IsBindDown(self.pilot,"flight-rotate") then + if fbinds.left then + if fbinds.rotate then ph:AddAngleVelocity(Vector(0,0,rforce)) else ph:AddVelocity(-ri*force*phm) @@ -294,9 +455,9 @@ if SERVER then end end - if TARDIS:IsBindDown(self.pilot,"flight-down") then + if fbinds.down then ph:AddVelocity(-up*vforce*phm) - elseif TARDIS:IsBindDown(self.pilot,"flight-up") then + elseif fbinds.up then ph:AddVelocity(up*vforce*phm) end end @@ -305,27 +466,52 @@ if SERVER then tilt = 0 end + if damaged then + local health_mult = (5 + self.HEALTH_PERCENT_DAMAGED - self:GetHealthPercent()) / 10 + + local pressed_data = self:GetData("flight_num_keys_pressed", 0) + local pressed = num_keys_pressed() + local do_random_skid = false + + if CurTime() > self:GetData("flight_damaged_random", 0) then + self:SetData("flight_damaged_random", CurTime() + math.random(3,5)) + do_random_skid = (vell > 400) + end - -- lean into the flight - ph:ApplyForceOffset( vel * 0.005, cen + up * lev) - ph:ApplyForceOffset(-vel * 0.005, cen - up * lev) + if pressed_data < pressed or do_random_skid then + local skid = AngleRand():Forward() * vell * (0.2 + math.random()) * health_mult + ph:AddVelocity(skid) - -- stabilise pitch - ph:ApplyForceOffset( up * -ang.p, cen - fwd2 * lev) - ph:ApplyForceOffset(-up * -ang.p, cen + fwd2 * lev) + if math.random(5) == 1 then + self:SendMessage("BrokenFlightTurn") + end + local skid_ang = AngleRand():Forward() * vell * health_mult * 0.01 + ph:AddAngleVelocity(skid_ang) - -- stabilise roll and apply tilt - ph:ApplyForceOffset( up * -(ang.r - tilt), cen - ri2 * lev) - ph:ApplyForceOffset(-up * -(ang.r - tilt), cen + ri2 * lev) + ph:ApplyForceOffset(-skid * 0.1, cen + up * lev) + ph:ApplyForceOffset( skid * 0.1, cen - up * lev) + + tforce = tforce * 2 + end + + if pressed ~= pressed_data then + self:SetData("flight_num_keys_pressed", pressed) + end + end if spin and not brakes then local twist = Vector(0, 0, -spindir * math.sqrt(vell / tforce)) ph:AddAngleVelocity(twist) end - local angbrake=angvel*-0.015 - ph:AddAngleVelocity(angbrake) - local brake=vel*-0.01 - ph:AddVelocity(brake) + + stabilize() + end + end) + + ENT:AddHook("PhysicsCollide", "broken_flight", function(self, data, collider) + if self:GetData("broken_flight") then + self:SetData("broken_flight_collision", true) + self:SetData("broken_flight_collision_vector", data.HitNormal) end end) @@ -342,21 +528,36 @@ if SERVER then local spindir = args[1] self:SetSpinDir(spindir) return self:GetSpinDir() - elseif name == "Track" and TARDIS:CheckPP(e2.player, self) then - return 0 -- Not yet implemented end end) ENT:AddHook("HandleE2", "flight_get", function(self, name, e2) if name == "GetFlying" then return self:GetData("flight",false) and 1 or 0 - elseif name == "GetTracking" then - return NULL --We don't have flight tracking yet elseif name == "GetPilot" then return self:GetData("pilot", NULL) or NULL end end) + + ENT:AddHook("ShouldNotPlayLandingSound", "flight", function(self) + if self:GetData("flight") or self:GetData("float") then + return true + end + end) + + ENT:AddHook("ShouldStartFire", "broken_flight", function(self) + if self:GetData("broken_flight") and self:GetData("flight") then + return true + end + end) else + local function ShouldPlayFlightSounds(self) + if not TARDIS:GetSetting("sound") then return false end + if not TARDIS:GetSetting("flight-externalsound") then return false end + if self:CallHook("ShouldTurnOffFlightSound") then return false end + return true + end + ENT:AddHook("OnRemove", "flight", function(self) if self.flightsound then self.flightsound:Stop() @@ -364,20 +565,30 @@ else end end) - local function ChooseFlightSound(ent) - if ent:GetData("health-warning", false) then - ent.flightsound = CreateSound(ent, ent.metadata.Exterior.Sounds.FlightLoopDamaged) - ent.flightsounddamaged = true + function ENT:ChooseFlightSound() + if self:GetData("broken_flight") then + self.flightsound = CreateSound(self, self.metadata.Exterior.Sounds.FlightLoopBroken) + self.flightsounddamaged = false + self.flightsoundbroken = true + elseif self:IsLowHealth() then + self.flightsound = CreateSound(self, self.metadata.Exterior.Sounds.FlightLoopDamaged) + self.flightsounddamaged = true + self.flightsoundbroken = false else - ent.flightsound = CreateSound(ent, ent.metadata.Exterior.Sounds.FlightLoop) - ent.flightsounddamaged = false + self.flightsound = CreateSound(self, self.metadata.Exterior.Sounds.FlightLoop) + self.flightsounddamaged = false + self.flightsoundbroken = false end end + local function IsFlightSoundWrong(self) + if self.flightsoundbroken ~= self:GetData("broken_flight", false) then return true end + if self.flightsounddamaged ~= (self:IsLowHealth() and not self:GetData("broken_flight")) then return true end + return false + end + ENT:AddHook("Think", "flight", function(self) - if self:GetData("flight") and TARDIS:GetSetting("flight-externalsound") - and TARDIS:GetSetting("sound") and (not self:CallHook("ShouldTurnOffFlightSound")) - then + if self:GetData("flight") and ShouldPlayFlightSounds(self) then if self.flightsound and self.flightsound:IsPlaying() then local p=math.Clamp(self:GetVelocity():Length()/250,0,15) local ply=LocalPlayer() @@ -401,15 +612,14 @@ else end self.flightsound:ChangeVolume(0.75) - if self.flightsounddamaged ~= self:GetData("health-warning",false) - then + if IsFlightSoundWrong(self) then self.flightsound:Stop() - ChooseFlightSound(self) + self:ChooseFlightSound() self.flightsound:SetSoundLevel(90) self.flightsound:Play() end else - ChooseFlightSound(self) + self:ChooseFlightSound() self.flightsound:SetSoundLevel(90) self.flightsound:Play() end @@ -424,4 +634,38 @@ else local new=data[2] self:CallHook("PilotChanged",old,new) end) + + ENT:OnMessage("FlightToggled", function(self, data, ply) + local on = data[1] + self:CallCommonHook("FlightToggled",on) + end) + + ENT:AddHook("FlightToggled", "broken_flight", function(self,on) + if ShouldPlayFlightSounds(self) and not on and self:IsBroken() then + local snd = self.metadata.Exterior.Sounds.BrokenFlightDisable + self:EmitSound(snd) + end + end) + + ENT:OnMessage("BrokenFlightEnable", function(self, data, ply) + if not ShouldPlayFlightSounds(self) then return end + local snd = self.metadata.Exterior.Sounds.BrokenFlightEnable + self:EmitSound(snd) + end) + + ENT:OnMessage("BrokenFlightExplosion", function(self, data, ply) + if not ShouldPlayFlightSounds(self) then return end + self:EmitSound(self.metadata.Exterior.Sounds.BrokenFlightExplosion) + end) + + ENT:OnMessage("BrokenFlightTurn", function(self, data, ply) + local snds = self.metadata.Exterior.Sounds + if snds and istable(snds.BrokenFlightTurn) and ShouldPlayFlightSounds(self) then + local snd = table.Random(snds.BrokenFlightTurn) + self:EmitSound(snd) + end + if math.random(3) ~= 1 then + self:ExteriorSparks(1) + end + end) end \ No newline at end of file diff --git a/lua/entities/gmod_tardis/modules/sh_float.lua b/lua/entities/gmod_tardis/modules/sh_float.lua index 49265c3b5..52b6a267b 100644 --- a/lua/entities/gmod_tardis/modules/sh_float.lua +++ b/lua/entities/gmod_tardis/modules/sh_float.lua @@ -5,7 +5,7 @@ TARDIS:AddKeyBind("float-toggle",{ name="ToggleFloat", section="ThirdPerson", func=function(self,down,ply) - if ply==self.pilot and down then + if ply==self.pilot and down and not self:GetTracking() then TARDIS:Control("float", ply) end end, diff --git a/lua/entities/gmod_tardis/modules/sh_hads.lua b/lua/entities/gmod_tardis/modules/sh_hads.lua index 87d8baba0..b554b35e2 100644 --- a/lua/entities/gmod_tardis/modules/sh_hads.lua +++ b/lua/entities/gmod_tardis/modules/sh_hads.lua @@ -28,7 +28,7 @@ if SERVER then self:ToggleDoor() end self:SetData("hads-attempt", true) - if self:CallHook("CanDemat", true) == false then + if self:CallHook("CanDemat", true, true) == false then if not self:GetData("hads-failed-time") or CurTime() > self:GetData("hads-failed-time") + 10 then self:SetData("hads-failed-time", CurTime()) TARDIS:ErrorMessage(self:GetCreator(), "HADS.DematError") @@ -40,7 +40,8 @@ if SERVER then self:SetData("hads-attempt", nil) TARDIS:Message(self:GetCreator(), "HADS.Triggered") TARDIS:Message(self:GetCreator(), "HADS.UnderAttack") - self:SetData("hads-triggered", true) + self:SetData("hads-triggered", true, true) + self:SetData("hads-demat", true, true) self:SetFastRemat(false) self:SetRandomDestination(true) self:AutoDemat() @@ -89,18 +90,16 @@ if SERVER then self:SetData("hads-auto-remat", nil, true) end) + ENT:AddHook("ShouldStopSmoke", "hads", function(self) + if self:GetData("hads-triggered") then return true end + end) + ENT:AddHook("InterruptTeleport", "hads-data", function(self) self:SetData("hads-triggered",false,true) self:SetData("hads-need-remat", nil, true) self:SetData("hads-auto-remat", nil, true) end) - hook.Add("OnPhysgunPickup", "tardis-hads", function(ply,ent) - if ent:GetClass()=="gmod_tardis" and ent:TriggerHADS() then - ent:ForcePlayerDrop() - end - end) - ENT:AddHook("ShouldUpdateArtron", "hads", function(self) if self:GetData("hads-triggered") or self:GetData("hads-need-remat") @@ -131,4 +130,10 @@ if SERVER then return 0 end end) -end \ No newline at end of file +end + +ENT:AddHook("StopDemat","hads-demat",function(self) + if self:GetData("hads-demat",false) then + self:SetData("hads-demat", false, false) -- not networked + end +end) \ No newline at end of file diff --git a/lua/entities/gmod_tardis/modules/sh_handbrake.lua b/lua/entities/gmod_tardis/modules/sh_handbrake.lua new file mode 100644 index 000000000..fb96127ba --- /dev/null +++ b/lua/entities/gmod_tardis/modules/sh_handbrake.lua @@ -0,0 +1,74 @@ +-- Handbrake + +function ENT:GetHandbrake() + return self:GetData("handbrake", false) +end + +if SERVER then + ENT:AddHook("Initialize","handbrake-init", function(self) + self:SetData("handbrake", false, true) + end) + + function ENT:ToggleHandbrake() + return self:SetHandbrake(not self:GetHandbrake()) + end + + function ENT:SetHandbrake(on) + if self:CallCommonHook("CanToggleHandbrake") == false then + return false + end + self:SetData("handbrake", on, true) + self:CallCommonHook("HandbrakeToggled", on) + self:SendMessage("handbrake_toggled", {on}) + return true + end + + ENT:AddHook("ShouldFailDemat", "handbrake", function(self, force) + if self:GetHandbrake() and force ~= true then + return true + end + end) + + ENT:AddHook("HandbrakeToggled", "vortex", function(self, on) + if not on then return end + + if self:GetData("teleport") or self:GetData("vortex") then + self:InterruptTeleport() + else + self:InterruptFlight() + end + end) + + ENT:AddHook("CanTurnOnFlight", "handbrake", function(self) + if self:GetHandbrake() then + return false + end + end) + + ENT:AddHook("HandleE2", "handbrake", function(self, name, e2, ...) + local args = {...} + if name == "SetBrake" and TARDIS:CheckPP(e2.player, self) then + local on = args[1] + local handbrake = self:GetHandbrake() + if on == 1 then + if (not handbrake) and self:SetHandbrake(true) then + return 1 + end + else + if handbrake and self:SetHandbrake(false) then + return 1 + end + end + return 0 + elseif name == "ToggleBrake" and TARDIS:CheckPP(e2.player, self) then + return self:ToggleHandbrake() and 1 or 0 + elseif name == "GetBrake" then + return self:GetHandbrake() and 1 or 0 + end + end) +else + ENT:OnMessage("handbrake_toggled", function(self, data, ply) + local on = data[1] + self:CallCommonHook("HandbrakeToggled", on) + end) +end \ No newline at end of file diff --git a/lua/entities/gmod_tardis/modules/sh_health.lua b/lua/entities/gmod_tardis/modules/sh_health.lua index 708647e4c..bf7b5947d 100644 --- a/lua/entities/gmod_tardis/modules/sh_health.lua +++ b/lua/entities/gmod_tardis/modules/sh_health.lua @@ -1,41 +1,8 @@ -- Health -ENT:AddHook("Initialize","health-init",function(self) - self:SetData("health-val", TARDIS:GetSetting("health-max"), true) - if SERVER and WireLib then - self:TriggerWireOutput("Health", self:GetHealth()) - end -end) - -ENT:AddHook("SettingChanged","maxhealth-changed", function(self, id, val) - if id ~= "health-max" then return end - - if self:GetHealth() > val then - self:ChangeHealth(val) - end -end) - -function ENT:ChangeHealth(newhealth) - if self:GetRepairing() then - return - end - local maxhealth = TARDIS:GetSetting("health-max") - if not TARDIS:GetSetting("health-enabled") then - self:SetData("health-val", maxhealth, true) - return - end - local oldhealth = self:GetHealth() - if newhealth > oldhealth and oldhealth+newhealth > maxhealth then - newhealth = maxhealth - end - if newhealth <= 0 then - newhealth = 0 - if newhealth ~= oldhealth then - self:CallCommonHook("OnHealthDepleted") - end - end - self:SetData("health-val", newhealth, true) - self:CallCommonHook("OnHealthChange", newhealth, oldhealth) +function ENT:GetHealthMax() + local ratio = TARDIS:GetSetting("health_to_shields_ratio") + return math.max(1, ratio * TARDIS:GetSetting("health_max")) end function ENT:GetHealth() @@ -43,183 +10,107 @@ function ENT:GetHealth() end function ENT:GetHealthPercent() - local val = self:GetData("health-val", 0) - local percent = (val * 100)/TARDIS:GetSetting("health-max") + local val = self:GetHealth() + local percent = (val * 100) / self:GetHealthMax() return percent end -function ENT:GetRepairTime() - return self:GetData("repair-time")-CurTime() +ENT.HEALTH_PERCENT_DAMAGED = 40 +ENT.HEALTH_PERCENT_BROKEN = 10 + +function ENT:IsAlive() + return self:GetHealth() ~= 0 end -function ENT:GetRepairPrimed() - return self:GetData("repair-primed",false) +function ENT:IsDamaged() + return not self:IsBroken() and (self:GetHealthPercent() <= self.HEALTH_PERCENT_DAMAGED) end -function ENT:GetRepairing() - return self:GetData("repairing",false) +function ENT:IsBroken() + return self:GetHealthPercent() <= self.HEALTH_PERCENT_BROKEN end -if SERVER then - ENT:AddWireOutput("Health", "Wiremod.Outputs.Health") +function ENT:IsLowHealth() + return self:IsBroken() or self:IsDamaged() +end + +function ENT:IsDead() + return self:GetHealth() == 0 +end - function ENT:Explode(f) - local force = 60 - if f ~= nil then - force = tostring(f) +if SERVER then + ENT:AddHook("Initialize","health-init",function(self) + self:SetData("health-val", self:GetHealthMax(), true) + if WireLib then + self:TriggerWireOutput("Health", self:GetHealth()) end - local explode = ents.Create("env_explosion") - explode:SetPos( self:LocalToWorld(Vector(0,0,50)) ) - explode:SetOwner( self ) - explode:Spawn() - explode:SetKeyValue("iMagnitude", force) - explode:Fire("Explode", 0, 0 ) - end + end) - function ENT:ToggleRepair() - local on = not self:GetRepairPrimed() - return self:SetRepair(on) - end - function ENT:SetRepair(on) - if not TARDIS:GetSetting("health-enabled") - and self:GetHealth() ~= TARDIS:GetSetting("health-max") - then - self:ChangeHealth(TARDIS:GetSetting("health-max")) - return false + ENT:AddHook("SettingChanged","maxhealth-changed", function(self, id, val) + if id ~= "health_max" then return end + + if self:GetHealth() > val then + self:ChangeHealth(val) end + end) - if self:CallHook("CanRepair") == false then return false end + function ENT:AddHealth(value) + local newhealth = self:GetHealth() + value + self:ChangeHealth(newhealth) + end - if on == true then - for k,_ in pairs(self.occupants) do - TARDIS:Message(k, "Health.RepairActivated") - end - local power = self:GetPower() - self:SetData("power-before-repair", power) - if power then self:SetPower(false) end - self:SetData("repair-primed", true, true) - - if table.IsEmpty(self.occupants) then - self:Timer("repair-nooccupants", 0, function() - self:SetData("repair-shouldstart", true) - self:SetData("repair-delay", CurTime()+0.3) - end) + function ENT:ApplyDamage(dmg) + local shields = self:GetShields() + if shields then + self:AddShieldsLevel(-dmg) + if shields - dmg < 0 then + self:AddHealth(shields - dmg) end else - self:SetData("repair-primed",false,true) - self:CallCommonHook("RepairCancelled") - - local prev_power = self:GetData("power-before-repair") - if (prev_power ~= nil) then - self:SetPower(prev_power) - else - self:SetPower(true) - end - - for k,_ in pairs(self.occupants) do - TARDIS:Message(k, "Health.RepairCancelled") - end + self:AddHealth(-dmg) end - self:CallHook("RepairToggled", on) - return true end - function ENT:StartRepair() - if not IsValid(self) then return end - self:SetLocked(true,nil,true,true) - local maxhealth = TARDIS:GetSetting("health-max") - local curhealth = self:GetData("health-val") - local maxtime = TARDIS:GetSetting("long_repair") and 60 or 15 - local repairtime = math.Clamp(maxtime * (maxhealth - curhealth) / maxhealth, 1, maxtime) - - local time = CurTime() + repairtime - self:SetData("repair-time", time, true) - self:SetData("repairing", true, true) - self:SetData("repair-primed", false, true) - self:CallHook("RepairStarted") - end - - function ENT:FinishRepair() - if self:GetData("redecorate") and self:Redecorate() then + function ENT:ChangeHealth(new_health) + if self:GetRepairing() then return end - self:EmitSound(self.metadata.Exterior.Sounds.RepairFinish) - self:SetData("repairing", false, true) - self:ChangeHealth(TARDIS:GetSetting("health-max")) - self:CallHook("RepairFinished") - self:SetPower(true) - self:SetLocked(false, nil, true) - TARDIS:Message(self:GetCreator(), "Health.RepairFinished") - self:StopSmoke() - self:FlashLight(1.5) + local max_health = self:GetHealthMax() + if not TARDIS:GetSetting("health-enabled") then + self:SetData("health-val", max_health, true) + return + end + + local old_health = self:GetHealth() + new_health = math.Clamp(new_health, 0, max_health) + self:SetData("health-val", new_health, true) + self:CallCommonHook("OnHealthChange", new_health, old_health) + + if new_health == 0 and old_health ~= 0 then + self:CallCommonHook("OnHealthDepleted") + end end + ENT:AddWireOutput("Health", "Wiremod.Outputs.Health") ENT:AddHook("CanRepair", "health", function(self, ignore_health) - if (self:GetHealth() >= TARDIS:GetSetting("health-max")) + if (self:GetHealth() >= self:GetHealthMax()) and not ignore_health and not self:GetData("redecorate") then return false end end) - ENT:AddHook("CanTogglePower", "health", function(self) - if (not (self:GetData("health-val", 0) > 0)) or (self:GetRepairing() or self:GetRepairPrimed()) then + ENT:AddHook("CanTogglePower", "health", function(self, on) + if on and self:GetHealth() <= 0 then return false end end) - ENT:AddHook("CanLock", "repair", function(self) - if (not self:GetRepairing()) then return true end - end) - - ENT:AddHook("PostPlayerExit", "repair", function(self,ply,forced,notp) - if (self:GetRepairPrimed()==true) and (table.IsEmpty(self.occupants)) then - self:SetData("repair-shouldstart", true) - self:SetData("repair-delay", CurTime()+0.3) - end - end) - - ENT:AddHook("PlayerEnter", "repair", function(self,ply,forced,notp) - if (self:GetRepairPrimed()==true) and table.Count(self.occupants)>=0 then - self:SetData("repair-shouldstart", false) - end - end) - - ENT:AddHook("LockedUse", "repair", function(self, a) - if self:GetRepairing() then - TARDIS:Message(a, "Health.Repairing", math.floor(self:GetRepairTime())) - return true - end - end) - - ENT:AddHook("Think", "repair", function(self) - if self:GetRepairPrimed() and self:CallHook("CanRepair") == false then - self:SetData("repair-primed", false, true) - self:SetPower(true) - for k,_ in pairs(self.occupants) do - TARDIS:Message(k, "Health.RepairCancelled") - end - end - - if self:GetRepairPrimed() and self:GetData("repair-shouldstart") and CurTime() > self:GetData("repair-delay") then - self:SetData("repair-shouldstart", false) - self:StartRepair() - end - - if (self:GetRepairing() and CurTime()>self:GetData("repair-time",0)) then - self:FinishRepair() - end - end) - ENT:AddHook("ShouldTakeDamage", "health", function(self, dmginfo) if not TARDIS:GetSetting("health-enabled") then return false end end) - ENT:AddHook("ShouldTakeDamage", "repair", function(self, dmginfo) - if self:GetRepairing() then return false end - end) - --------------------------------- --Damage calculation and sounds-- --------------------------------- @@ -231,28 +122,42 @@ if SERVER then return end if dmginfo:GetDamage() <= 0 then return end - local newhealth = self:GetHealth() - (dmginfo:GetDamage()/2) - self:ChangeHealth(newhealth) + self:ApplyDamage(dmginfo:GetDamage() / 2) if not IsValid(self.interior) then return end + local int = self.metadata.Interior.Sounds.Damage if dmginfo:IsDamageType(DMG_BLAST) and self:GetHealth() ~= 0 then - int = self.metadata.Interior.Sounds.Damage self.interior:EmitSound(int.Explosion) end end) ENT:AddHook("PhysicsCollide", "Health", function(self, data, collider) + + if self:IsPlayerHolding() then + local last_dmg = self:GetData("damage_last_by_ply", 0) + if CurTime() - last_dmg < 1 then return end + self:SetData("damage_last_by_ply", CurTime()) + else + self:SetData("damage_last_by_ply", 0) + end + + local vert = self:IsVerticalLanding(data) + local speed_border = vert and 1500 or 300 + local speed_dmg_mult = vert and 0.2 or 1 + if not TARDIS:GetSetting("health-enabled") then return end - if (data.Speed < 300) then return end - local newhealth = self:GetHealth() - (data.Speed / 23) - self:ChangeHealth(newhealth) + if (data.Speed < speed_border) then return end + + self:ApplyDamage(speed_dmg_mult * data.Speed / 25) + if not IsValid(self.interior) then return end + local phys = self:GetPhysicsObject() local vel = phys:GetVelocity():Length() + + local int = self.metadata.Interior.Sounds.Damage if self:GetHealth() ~= 0 and vel < 900 then - int = self.metadata.Interior.Sounds.Damage self.interior:EmitSound(int.Crash) elseif self:GetHealth() ~= 0 and vel > 900 then - int = self.metadata.Interior.Sounds.Damage self.interior:EmitSound(int.BigCrash) end end) @@ -265,7 +170,9 @@ if SERVER then if self:GetData("teleport") or self:GetData("vortex") then self:InterruptTeleport() end - self:SetPower(false) + if self:GetPower() then + self:SetPower(false) + end if IsValid(self.interior) then local int = self.metadata.Interior.Sounds.Damage self.interior:StopSound(int.BigCrash) @@ -276,13 +183,15 @@ if SERVER then self:Explode(180) end) - ENT:AddHook("OnHealthChange", "warning", function(self) - self:UpdateWarning() + ENT:AddHook("ShouldWarningBeEnabled","health", function(self) + if self:IsLowHealth() then + return true + end end) - ENT:AddHook("ShouldWarningBeEnabled","health-warning", function(self) - if self:GetHealthPercent() <= 20 then - return true + ENT:AddHook("ShouldRegenShields", "health", function(self) + if self:IsDead() then + return false end end) @@ -290,42 +199,44 @@ if SERVER then local args = {...} if name == "GetHealth" then return self:GetHealthPercent() - elseif name == "Selfrepair" and TARDIS:CheckPP(e2.player, self) then - return self:ToggleRepair() and 1 or 0 - elseif name == "SetSelfrepair" and TARDIS:CheckPP(e2.player, self) then - local on = args[1] - local primed = self:GetRepairPrimed() - if on == 1 then - if (not primed) and self:SetRepair(true) then - return 1 - end - else - if primed and self:SetRepair(false) then - return 1 - end - end - return 0 - elseif name == "GetSelfrepairing" then - local repairing = self:GetRepairing() - local primed = self:GetRepairPrimed() - if repairing then - return 1 - elseif primed then - return 2 - else - return 0 - end - elseif name == "GetRepairTime" then - if self:GetRepairing() then - return self:GetRepairTime() - else - return 0 - end end end) - ENT:AddHook("ShouldUpdateArtron", "repair", function(self) - if self:GetRepairPrimed() or self:GetRepairing() then + ENT:AddHook("DestinationOverride", "broken", function(self,pos,ang) + if self:IsBroken() and math.random(5) ~= 1 then + self:SetData("broken_pre_override_destination_pos", pos) + self:SetData("broken_pre_override_destination_ang", ang) + return self:GetRandomLocation(math.random(6) ~= 1), Angle(0,0,0) + elseif self:GetData("broken_pre_override_destination_pos") then + self:SetData("broken_pre_override_destination_pos", nil) + self:SetData("broken_pre_override_destination_ang", nil) + end + end) + + ENT:AddHook("StopMat", "broken", function(self) + if self:GetData("broken_pre_override_destination_pos") then + local pos = self:GetData("broken_pre_override_destination_pos") + local ang = self:GetData("broken_pre_override_destination_ang") + self:SetData("broken_pre_override_destination_pos", nil) + self:SetData("broken_pre_override_destination_ang", nil) + self:SetDestination(pos, ang) + end + end) + + ENT:AddHook("ShouldStartSmoke", "health", function(self) + if self:IsLowHealth() then + return true + end + end) + + ENT:AddHook("ShouldForceDemat", "health", function(self, pos, ang) + if self:IsBroken() then + return true + end + end) + + ENT:AddHook("CanTurnOnPhyslock", "broken", function(self) + if self:IsBroken() then return false end end) diff --git a/lua/entities/gmod_tardis/modules/sh_outside.lua b/lua/entities/gmod_tardis/modules/sh_outside.lua index 1ad857976..9cd85bb69 100644 --- a/lua/entities/gmod_tardis/modules/sh_outside.lua +++ b/lua/entities/gmod_tardis/modules/sh_outside.lua @@ -78,6 +78,8 @@ else ENT:AddHook("Initialize", "outside", function(self) self.thpprop=ents.CreateClientProp("models/props_junk/PopCan01a.mdl") self.thpprop:SetNoDraw(true) + self.thpprop:SetCollisionGroup(COLLISION_GROUP_IN_VEHICLE) + self.thpprop:SetMoveType(MOVETYPE_NONE) end) ENT:AddHook("OnRemove", "outside", function(self) diff --git a/lua/entities/gmod_tardis/modules/sh_parts.lua b/lua/entities/gmod_tardis/modules/sh_parts.lua index c507188c5..2a449a8e6 100644 --- a/lua/entities/gmod_tardis/modules/sh_parts.lua +++ b/lua/entities/gmod_tardis/modules/sh_parts.lua @@ -16,4 +16,20 @@ end function ENT:GetParts() return self.parts +end + +function ENT:SetPartInvisible(id, invisible) + local invisible_parts = self:GetData("invisible_int_parts", {}) + invisible_parts[id] = invisible or false + self:SetData("invisible_int_parts", invisible_parts, true) +end + +if CLIENT then + ENT:OnMessage("part_use", function(self,data,ply) + local part = data[1] + + if IsValid(part) and part.Use then + part:Use(unpack(data, 2)) + end + end) end \ No newline at end of file diff --git a/lua/entities/gmod_tardis/modules/sh_physlock.lua b/lua/entities/gmod_tardis/modules/sh_physlock.lua index 6c32d110e..7509f5c13 100644 --- a/lua/entities/gmod_tardis/modules/sh_physlock.lua +++ b/lua/entities/gmod_tardis/modules/sh_physlock.lua @@ -36,6 +36,7 @@ function ENT:SetPhyslock(on) return false end if on and self:CallHook("CanTurnOnPhyslock") == false then + self:CallHook("FailedPhyslockEnable") return false end @@ -61,18 +62,6 @@ function ENT:TogglePhyslock() return self:SetPhyslock(on) end -hook.Add("PlayerUnfrozeObject", "tardis-physlock", function(ply,ent,phys) - if ent:GetClass()=="gmod_tardis" and ent:GetPhyslock()==true then - phys:EnableMotion(false) - end -end) - -hook.Add("PhysgunDrop", "tardis-physlock", function(ply,ent) - if ent:GetClass()=="gmod_tardis" and ent:GetPhyslock()==true then - ent:GetPhysicsObject():EnableMotion(false) - end -end) - ENT:AddHook("MatStart", "physlock", function(self) if not self:GetPhyslock() then self.phys:EnableMotion(true) @@ -118,9 +107,19 @@ ENT:AddHook("HandleE2", "physlock", function(self, name, e2, ...) end end) - -ENT:AddHook("MigrateData", "music", function(self, parent, parent_data) +ENT:AddHook("MigrateData", "physlock", function(self, parent, parent_data) self:SetPhyslock(parent_data["physlock"]) end) +ENT:AddHook("OnHealthChange", "physlock", function(self) + if self:IsBroken() and self:GetPhyslock() then + self:SetPhyslock(false) + end +end) +ENT:AddHook("FailedPhyslockEnable", "physlock", function(self) + if self:IsBroken() then + local vel = self:GetPhysicsObject():GetVelocity():Length() + self:Explode(math.max((vel - 2500) / 5, 0)) + end +end) diff --git a/lua/entities/gmod_tardis/modules/sh_players.lua b/lua/entities/gmod_tardis/modules/sh_players.lua index 8c14d7ed0..246f62956 100644 --- a/lua/entities/gmod_tardis/modules/sh_players.lua +++ b/lua/entities/gmod_tardis/modules/sh_players.lua @@ -80,4 +80,10 @@ else ENT:AddHook("PlayerExit", "players", function(self) TARDIS:RemoveHUDScreen() -- force close hud screen if exit tardis end) -end \ No newline at end of file +end + +ENT:AddHook("Initialize", "creatorID", function(self) + self.CreatorID = self:GetCreator():UserID() + self.CreatorNick = self:GetCreator():Nick() + self.CreatorSteamID = self:GetCreator():SteamID64() +end) \ No newline at end of file diff --git a/lua/entities/gmod_tardis/modules/sh_power.lua b/lua/entities/gmod_tardis/modules/sh_power.lua index 551687f8f..65e53a0f7 100644 --- a/lua/entities/gmod_tardis/modules/sh_power.lua +++ b/lua/entities/gmod_tardis/modules/sh_power.lua @@ -1,7 +1,7 @@ -- Power Exterior TARDIS:AddKeyBind("power",{ - name="Power", + name="TogglePower", section="ThirdPerson", func=function(self,down,ply) if down and ply == self.pilot then @@ -14,6 +14,9 @@ TARDIS:AddKeyBind("power",{ }) ENT:AddHook("Initialize","power-init", function(self) + if SERVER and self:GetData("power-state") == false then + self:SetData("power_disabled_first", true) + end self:SetData("power-state",true,true) end) @@ -33,14 +36,20 @@ if SERVER then return self:SetPower(not self:GetPower()) end function ENT:SetPower(on) - if (self:CallCommonHook("CanTogglePower") == false) then return false end + if (self:CallCommonHook("CanTogglePower", on) == false) then return false end self:SetData("power-state",on,true) self:CallCommonHook("PowerToggled", on) self:SendMessage("power_toggled", {on}) return true end - ENT:AddHook("CanTogglePower", "vortex", function(self) + ENT:AddHook("PostInitialize","power-init", function(self) + if self:GetData("power_disabled_first") then + self:SetPower(false) + end + end) + + ENT:AddHook("CanTogglePower", "vortex", function(self, on) if self:GetData("teleport") or self:GetData("vortex") then return false end @@ -50,6 +59,16 @@ if SERVER then if not self:GetPower() then return false end end) + ENT:AddHook("CanToggleShields", "power", function(self, on) + if on and not self:GetPower() then return false end + end) + + ENT:AddHook("CanChangeExterior","power",function(self) + if not self:GetPower() then + return false,true,"Chameleon.FailReasons.NoPower",true + end + end) + ENT:AddHook("HandleE2", "power", function(self, name, e2, ...) local args = {...} if name == "Power" and TARDIS:CheckPP(e2.player, self) then @@ -71,6 +90,13 @@ if SERVER then return 0 end end) + + ENT:AddHook("ShouldRegenShields", "power", function(self) + if not self:GetPower() then + return false + end + end) + else ENT:AddHook("ShouldNotDrawProjectedLight", "power", function(self) if not self:GetPower() then return true end diff --git a/lua/entities/gmod_tardis/modules/sh_redecorate.lua b/lua/entities/gmod_tardis/modules/sh_redecorate.lua index 3dc55fa63..798f1a3bd 100644 --- a/lua/entities/gmod_tardis/modules/sh_redecorate.lua +++ b/lua/entities/gmod_tardis/modules/sh_redecorate.lua @@ -12,6 +12,9 @@ local saved_data_names = { "fastreturn-ang", "artron-val", "security", + "chameleon_active", + "chameleon_current_exterior", + "chameleon_exterior_last_selector", } if SERVER then @@ -31,12 +34,11 @@ if SERVER then return false end - local ply = self:GetCreator() - local chosen_int = TARDIS:GetSetting("redecorate-interior", ply) + local chosen_int = TARDIS:GetSetting("redecorate-interior", self) local random_int = false if not chosen_int then random_int = true - chosen_int = TARDIS:SelectNewRandomInterior(self.metadata.ID, ply) + chosen_int = TARDIS:SelectNewRandomInterior(self.metadata.ID, self) end self:SetData("redecorate-interior", chosen_int) @@ -49,7 +51,7 @@ if SERVER then return false end if random_int then - TARDIS:Message(ply, "Controls.Redecorate.RandomInteriorWarning") + TARDIS:Message(self:GetCreator(), "Controls.Redecorate.RandomInteriorWarning") end return true end @@ -64,7 +66,7 @@ if SERVER then local ply = self:GetCreator() self:SetData("repairing", false, true) - self:ChangeHealth(TARDIS:GetSetting("health-max")) + self:ChangeHealth(self:GetHealthMax()) self:SetPower(true) -- save tardis state @@ -187,15 +189,17 @@ if SERVER then parent:SetCollisionGroup(COLLISION_GROUP_IN_VEHICLE) self:Timer("redecorate_materialise", 1, function() - parent:ForcePlayerDrop() - parent:SetData("redecorate_mat_started", true) + if IsValid(parent) then + parent:ForcePlayerDrop() + parent:SetData("redecorate_mat_started", true) + end phys:Wake() self:SetFastRemat(true, true) self:Mat() local ply = self:GetCreator() - if ply and ply.linked_tardis == parent then + if IsValid(ply) and ply.linked_tardis == parent then ply.linked_tardis = self net.Start("Sonic-SetLinkedTARDIS") net.WriteEntity(self) diff --git a/lua/entities/gmod_tardis/modules/sh_repair.lua b/lua/entities/gmod_tardis/modules/sh_repair.lua new file mode 100644 index 000000000..3e49d1211 --- /dev/null +++ b/lua/entities/gmod_tardis/modules/sh_repair.lua @@ -0,0 +1,187 @@ +function ENT:GetRepairPrimed() + return self:GetData("repair-primed",false) +end + +function ENT:GetRepairing() + return self:GetData("repairing",false) +end + +function ENT:GetRepairTime() + return self:GetData("repair-time")-CurTime() +end + +if SERVER then + function ENT:ToggleRepair() + local on = not self:GetRepairPrimed() + return self:SetRepair(on) + end + + function ENT:SetRepair(on) + if not TARDIS:GetSetting("health-enabled") + and self:GetHealth() ~= self:GetHealthMax() + then + self:ChangeHealth(self:GetHealthMax()) + return false + end + + if self:CallHook("CanRepair") == false then return false end + + if on == true then + for k,_ in pairs(self.occupants) do + TARDIS:Message(k, "Health.RepairActivated") + end + local power = self:GetPower() + self:SetData("power-before-repair", power) + if power then self:SetPower(false) end + self:SetData("repair-primed", true, true) + + if table.IsEmpty(self.occupants) then + self:Timer("repair-nooccupants", 0, function() + self:SetData("repair-shouldstart", true) + self:SetData("repair-delay", CurTime()+0.3) + end) + end + else + self:SetData("repair-primed",false,true) + self:CallCommonHook("RepairCancelled") + + local prev_power = self:GetData("power-before-repair") + if (prev_power ~= nil) then + self:SetPower(prev_power) + else + self:SetPower(true) + end + + for k,_ in pairs(self.occupants) do + TARDIS:Message(k, "Health.RepairCancelled") + end + end + self:CallHook("RepairToggled", on) + return true + end + + function ENT:StartRepair() + if not IsValid(self) then return end + self:SetLocked(true,nil,true,true) + local max_health = self:GetHealthMax() + local cur_health = self:GetHealth() + local maxtime = TARDIS:GetSetting("long_repair") and 60 or 15 + local repairtime = math.Clamp(maxtime * (max_health - cur_health) / max_health, 1, maxtime) + + local time = CurTime() + repairtime + self:SetData("repair-time", time, true) + self:SetData("repairing", true, true) + self:SetData("repair-primed", false, true) + self:CallHook("RepairStarted") + end + + function ENT:FinishRepair() + if self:GetData("redecorate") and self:Redecorate() then + return + end + self:EmitSound(self.metadata.Exterior.Sounds.RepairFinish) + self:SetData("repairing", false, true) + self:ChangeHealth(self:GetHealthMax()) + self:CallHook("RepairFinished") + self:SetPower(true) + self:SetLocked(false, nil, true) + TARDIS:Message(self:GetCreator(), "Health.RepairFinished") + self:StopSmoke() + self:FlashLight(1.5) + end + + ENT:AddHook("CanLock", "repair", function(self) + if (not self:GetRepairing()) then return true end + end) + + ENT:AddHook("CanTogglePower", "repair", function(self, on) + if on and (self:GetRepairing() or self:GetRepairPrimed()) then + return false + end + end) + + ENT:AddHook("PostPlayerExit", "repair", function(self,ply,forced,notp) + if (self:GetRepairPrimed()==true) and (table.IsEmpty(self.occupants)) then + self:SetData("repair-shouldstart", true) + self:SetData("repair-delay", CurTime()+0.3) + end + end) + + ENT:AddHook("PlayerEnter", "repair", function(self,ply,forced,notp) + if (self:GetRepairPrimed()==true) and table.Count(self.occupants)>=0 then + self:SetData("repair-shouldstart", false) + end + end) + + ENT:AddHook("LockedUse", "repair", function(self, a) + if self:GetRepairing() then + TARDIS:Message(a, "Health.Repairing", math.floor(self:GetRepairTime())) + return true + end + end) + + ENT:AddHook("Think", "repair", function(self) + if self:GetRepairPrimed() and self:CallHook("CanRepair") == false then + self:SetData("repair-primed", false, true) + self:SetPower(true) + for k,_ in pairs(self.occupants) do + TARDIS:Message(k, "Health.RepairCancelled") + end + end + + if self:GetRepairPrimed() and self:GetData("repair-shouldstart") and CurTime() > self:GetData("repair-delay") then + self:SetData("repair-shouldstart", false) + self:StartRepair() + end + + if (self:GetRepairing() and CurTime()>self:GetData("repair-time",0)) then + self:FinishRepair() + end + end) + + ENT:AddHook("ShouldUpdateArtron", "repair", function(self) + if self:GetRepairPrimed() or self:GetRepairing() then + return false + end + end) + + ENT:AddHook("ShouldTakeDamage", "repair", function(self, dmginfo) + if self:GetRepairing() then return false end + end) + + ENT:AddHook("HandleE2", "repair", function(self, name, e2, ...) + local args = {...} + if name == "Selfrepair" and TARDIS:CheckPP(e2.player, self) then + return self:ToggleRepair() and 1 or 0 + elseif name == "SetSelfrepair" and TARDIS:CheckPP(e2.player, self) then + local on = args[1] + local primed = self:GetRepairPrimed() + if on == 1 then + if (not primed) and self:SetRepair(true) then + return 1 + end + else + if primed and self:SetRepair(false) then + return 1 + end + end + return 0 + elseif name == "GetSelfrepairing" then + local repairing = self:GetRepairing() + local primed = self:GetRepairPrimed() + if repairing then + return 1 + elseif primed then + return 2 + else + return 0 + end + elseif name == "GetRepairTime" then + if self:GetRepairing() then + return self:GetRepairTime() + else + return 0 + end + end + end) +end diff --git a/lua/entities/gmod_tardis/modules/sh_shields.lua b/lua/entities/gmod_tardis/modules/sh_shields.lua new file mode 100644 index 000000000..322cb6c28 --- /dev/null +++ b/lua/entities/gmod_tardis/modules/sh_shields.lua @@ -0,0 +1,175 @@ +function ENT:GetShieldsMax() + local ratio = TARDIS:GetSetting("health_to_shields_ratio") + return math.max(1, (1 - ratio) * TARDIS:GetSetting("health_max")) +end + +function ENT:GetShieldsLevel() + return self:GetData("shields_val") +end + +function ENT:GetShieldsPercent() + local val = self:GetShieldsLevel() + local percent = (val * 100)/self:GetShieldsMax() + return percent +end + +function ENT:GetShieldsOn() + return self:GetData("shields_on") +end + +function ENT:GetShields() + if not self:GetShieldsOn() or self:GetShieldsLevel() <= 0 then + return false + end + return self:GetShieldsLevel() +end + +if SERVER then + function ENT:SetShieldsLevel(value, force) + if not self:GetShieldsOn() and not force then return end + + local MaxShields = self:GetShieldsMax() + value = math.Clamp(value, 0 , MaxShields) + if self:GetData("shields_val") > value then + self:SetData("shields_last_hit", CurTime()) + self:SetData("shields_charge_start", nil) + self:SetData("shields_charge_aim", nil) + end + self:SetData("shields_val", value, true) + end + + function ENT:AddShieldsLevel(value, force) + if not self:GetShieldsOn() and not force then return end + + local CurrentShields = self:GetData("shields_val", 0) + self:SetShieldsLevel(CurrentShields + value, force) + end + + ENT:AddHook("Initialize", "shields", function(self) + local max = self:GetShieldsMax() + self:SetData("shields_val", max, true) + self:SetData("shields_on", true, true) + end) + + function ENT:SetShieldsOn(on) + if self:CallCommonHook("CanToggleShields", on) == false then + return false + end + self:SetData("shields_on", on, true) + self:CallCommonHook("ShieldsToggled", on) + return true + end + + function ENT:ToggleShields() + return self:SetShieldsOn(not self:GetShieldsOn()) + end + + ENT:AddHook("Think", "shields", function(self) + if self:CallCommonHook("ShouldRegenShields") == false then return end + if CurTime() < self:GetData("shields_regen_time", 0) then return end + + local charge_aim = self:GetData("shields_charge_aim") + + if charge_aim and self:GetShieldsLevel() < charge_aim then + local charge_start = self:GetData("shields_charge_start", CurTime()) + local progress = math.Clamp(0.1 * (CurTime() - charge_start), 0, 1) + local value = self:GetShieldsMax() * progress + + self:SetShieldsLevel(value) + return + end + + if charge_aim then + self:SetData("shields_charge_aim", nil) + self:SetData("shields_charge_start", nil) + self:SetData("shields_last_hit", CurTime()) + return + end + + if CurTime() < self:GetData("shields_last_hit", 0) + 10 then return end + + self:SetData("shields_regen_time", CurTime() + 0.75) + self:AddShieldsLevel(self:GetShieldsMax() * 0.01) + end) + + ENT:AddHook("ShouldRegenShields", "shields", function(self) + if not self:GetShieldsOn() then + return false + end + end) + + ENT:AddHook("OnHealthDepleted", "shields", function(self) + self:SetShieldsLevel(0,true) + end) + + ENT:AddHook("PowerToggled", "shields", function(self, on) + if on and self:GetData("power_last_shields", false) == true then + self:SetShieldsOn(true) + else + self:SetData("power_last_shields", self:GetShieldsOn()) + self:SetShieldsOn(false) + end + end) + + ENT:AddHook("ShieldsToggled", "charge", function(self, on) + if not on then return end + + local saved_value = self:GetData("shields_charge_aim") or self:GetShieldsLevel() + self:SetShieldsLevel(0, true) + self:SetData("shields_charge_aim", saved_value) + self:SetData("shields_charge_start", CurTime()) + end) + + ENT:AddHook("ShouldThinkFast","shields_charge",function(self) + if self:GetData("shields_charge_aim") then + return true + end + end) + + ENT:AddHook("SettingChanged", "shields", function(self, id, val) + if id == "health_to_shields_ratio" then + self:ChangeHealth(self:GetHealth()) + self:SetShieldsLevel(self:GetShieldsLevel()) + return + end + if id == "health_max" then + self:SetShieldsLevel(self:GetShieldsLevel()) + end + end) + + ENT:AddHook("HandleE2", "shields", function(self, name, e2, ...) + local args = {...} + if name == "ToggleShield" and TARDIS:CheckPP(e2.player, self) then + if self:ToggleShields() then + return 1 + else + return 0 + end + elseif name == "SetShield" and TARDIS:CheckPP(e2.player, self) then + if args[1] == 1 then + if (not self:GetShieldsOn()) and self:SetShieldsOn(true) then + return 1 + end + else + if self:GetShieldsOn() and self:SetShieldsOn(false) then + return 1 + end + end + return 0 + elseif name == "GetShieldsOn" then + if self:GetShieldsOn() then + return 1 + else + return 0 + end + elseif name == "GetShieldsLevel" then + return self:GetShieldsLevel() + elseif name == "GetShieldsPercent" then + return self:GetShieldsPercent() + elseif name == "GetShieldMax" then + return self:GetShieldsMax() + end + end) +end + + diff --git a/lua/entities/gmod_tardis/modules/sh_spin.lua b/lua/entities/gmod_tardis/modules/sh_spin.lua index a86df86a8..407563ce1 100644 --- a/lua/entities/gmod_tardis/modules/sh_spin.lua +++ b/lua/entities/gmod_tardis/modules/sh_spin.lua @@ -1,14 +1,15 @@ -- Spin -function ENT:GetSpinDir() - return self:GetData("spindir", -1) +function ENT:GetSpin() + return self:GetData("spin", false) end -function ENT:GetSpinDirText(show_next) - local current = self:GetData("spindir", -1) - if show_next == true then - current = self:GetData("spindir_prev", 0) - end +function ENT:GetSpinDir(ignore_enabled) + return ignore_enabled and self:GetData("spin-dir",-1) or (self:GetSpin() and self:GetData("spin-dir",-1) or 0) +end + +function ENT:GetSpinDirText(ignore_enabled) + local current = self:GetSpinDir(ignore_enabled) local text if current == -1 then @@ -24,53 +25,70 @@ end if SERVER then ENT:AddHook("Initialize", "spin", function(self) - self:SetData("spindir", -1, true) - self:SetData("spindir_prev", 0, true) + self:SetData("spin", true, true) + self:SetData("spin-dir", -1, true) end) function ENT:SetSpinDir(dir) - self:CallHook("SpinChanged", dir) - return self:SetData("spindir", dir, true) + self:SetData("spin-dir", dir, true) + self:CallHook("SpinChanged", self:GetSpinDir()) end - function ENT:ToggleSpin() - local current = self:GetData("spindir", -1) - local prev = self:GetData("spindir_prev", 0) + function ENT:SetSpin(on, dir) + self:SetData("spin", on, true) + if dir ~= nil then + self:SetData("spin-dir", dir, true) + end + self:CallHook("SpinChanged", self:GetSpinDir()) + end - self:SetData("spindir_prev", current, true) - self:SetSpinDir(prev) + function ENT:ToggleSpin() + self:SetSpin(not self:GetSpin()) end function ENT:CycleSpinDir() - local current = self:GetData("spindir", -1) - local prev = self:GetData("spindir_prev", 0) + local lastCycle = self:GetData("spin-lastcycle", false) - self:SetData("spindir_prev", current, true) - self:SetSpinDir(-prev) + self:SetData("spin-lastcycle", not lastCycle) + + if lastCycle then + self:SetSpin(false) + else + self:SetSpin(true, -self:GetSpinDir(true)) + end end function ENT:SwitchSpinDir() - local current = self:GetData("spindir", -1) - local prev = self:GetData("spindir_prev", 0) - - self:SetData("spindir_prev", -prev, true) - self:SetSpinDir(-current) + self:SetSpinDir(-self:GetSpinDir(true)) end ENT:AddHook("ToggleDoorReal", "spin-dir", function(self,open) if TARDIS:GetSetting("opened-door-no-spin", self) then - local current = self:GetData("spindir", -1) - local before = self:GetData("spindir_before_door", nil) + local current = self:GetSpinDir() + local before = self:GetData("spindir-beforedoor", false) if open and self:GetSpinDir() ~= 0 then - self:SetData("spindir_before_door", current, true) - self:SetData("spindir_prev", current, true) - self:SetData("spindir", 0, true) - elseif not open and self:GetSpinDir() == 0 and before ~= nil then - self:SetData("spindir_before_door", nil, true) - self:SetData("spindir_prev", current, true) - self:SetData("spindir", before, true) + self:SetData("spindir-beforedoor", self:GetSpin()) + self:SetSpin(false) + elseif not open and self:GetSpinDir() == 0 and before then + self:SetData("spindir-beforedoor", nil) + self:SetSpin(true) + end + end + end) + + ENT:AddHook("HandleE2", "spin", function(self, name, e2, ...) + local args = {...} + if name == "SetSpinmode" and TARDIS:CheckPP(e2.player, self) then + local spinmode = args[1] + if spinmode == 0 then + self:SetSpin(false) + else + self:SetSpin(true, spinmode) end + return self:GetSpinDir() + elseif name == "GetSpinmode" then + return self:GetSpinDir() end end) end \ No newline at end of file diff --git a/lua/entities/gmod_tardis/modules/sh_thirdperson.lua b/lua/entities/gmod_tardis/modules/sh_thirdperson.lua index 6a5047520..1c0b2a7aa 100644 --- a/lua/entities/gmod_tardis/modules/sh_thirdperson.lua +++ b/lua/entities/gmod_tardis/modules/sh_thirdperson.lua @@ -37,7 +37,7 @@ function ENT:GetThirdPersonTrace(ply,ang) local trace=util.QuickTrace(pos,ang:Forward()*9999999999,{self,TARDIS:GetPart(self,"door")}) local angle=trace.HitNormal:Angle() angle:RotateAroundAxis(angle:Right(),-90) - return trace.HitPos,angle + return trace.HitPos,angle,trace.Entity end if SERVER then @@ -61,6 +61,10 @@ if SERVER then self:CallHook("ThirdPerson", ply, enabled) end end) + + ENT:AddHook("ThirdPerson", "client", function(self, ply, enabled) + self:SendMessage("third_person_hook", {ply, enabled}) + end) else ENT:AddHook("Outside-StartCommand", "thirdperson", function(self, ply, cmd) if LocalPlayer():GetTardisData("thirdperson") and cmd:GetMouseWheel()~=0 then @@ -73,6 +77,10 @@ else end end) + ENT:OnMessage("third_person_hook", function(self, data, ply) + self:CallHook("ThirdPerson", data[1], data[2]) + end) + ENT:OnMessage("thirdperson-careful-hint", function(self, data, ply) local use_binding = input.LookupBinding("+use", true) local walk_binding = input.LookupBinding("+walk", true) diff --git a/lua/entities/gmod_tardis/modules/sh_time_distortions.lua b/lua/entities/gmod_tardis/modules/sh_time_distortions.lua index cf966cbc4..5bedac5c0 100644 --- a/lua/entities/gmod_tardis/modules/sh_time_distortions.lua +++ b/lua/entities/gmod_tardis/modules/sh_time_distortions.lua @@ -65,9 +65,8 @@ if SERVER then end end) - ENT:AddHook("HandleNoDemat", "time_distortions", function(self, pos, ang, callback, force) - if not force and DistortionsInside(self) and not DistortionsOutside(self) then - self:ForceDemat(pos, ang, callback) + ENT:AddHook("ShouldForceDemat", "time_distortions", function(self, pos, ang) + if DistortionsInside(self) and not DistortionsOutside(self) then return true end end) diff --git a/lua/entities/gmod_tardis/modules/sh_tracking.lua b/lua/entities/gmod_tardis/modules/sh_tracking.lua new file mode 100644 index 000000000..60a8c63e4 --- /dev/null +++ b/lua/entities/gmod_tardis/modules/sh_tracking.lua @@ -0,0 +1,571 @@ +-- Tracking + +local TRACKING_MAX_DISTANCE_SET = 1000 +local TRACKING_MAX_DISTANCE_TARGET_MAX = 1500 +local TRACKING_MAX_DISTANCE_NO_LOS = 2000 +local TRACKING_MAX_DISTANCE_TRACE = 10000 + +local TRACKING_DEBUG = false + +TARDIS:AddKeyBind("tracking",{ + name="Tracking", + section="Flight", + func=function(self,down,ply) + local pilot = self:GetData("pilot") + if down and self:CallHook("CanTrack") == false then return end + if ply==pilot then + if down then + self:SetData("tracking-trace",true) + else + self:SendMessage("tracking-set", {self:GetData("tracking-trace-ent")}) + end + end + if not down then + self:SetData("tracking-trace",false) + self:SetData("tracking-trace-ent",nil) + end + end, + key=KEY_X, + clientonly=true, + exterior=true +}) + +TARDIS:AddKeyBind("tracking-rotation",{ + name="TrackRotation", + section="Flight", + func=function(self,down,ply) + local pilot = self:GetData("pilot") + if not self:GetTracking() or ply ~= pilot or not down then return end + self:ToggleTrackRotation() + TARDIS:StatusMessage(ply, "Controls.Tracking.Rotation", self:GetTrackRotation()) + end, + key=KEY_T, + serveronly=true, + exterior=true +}) + +function ENT:GetTracking() + return self:GetData("tracking-ent") +end + +local function get_ent_size(ent) + if not ent.GetModelBounds then return 0 end + + local mins, maxs = ent:GetModelBounds() + if mins and maxs then + local size = maxs - mins + local entsize = math.max(size.x, size.y, size.z) + if ent.GetModelScale then + local modelscale = ent:GetModelScale() + if isnumber(modelscale) then + entsize = entsize * modelscale + end + end + return entsize + end +end + +if SERVER then + function ENT:SetTracking(ent, ply) + if not ply then ply = self:GetData("pilot") end + local wasTrackingEnt = self:GetData("tracking-ent") + local wasTracking = wasTrackingEnt ~= nil + local isTracking = IsValid(ent) + if not isTracking then + self:SetData("tracking-ent",nil,true) + self:SetData("tracking-offset-pos", nil) + self:SetData("tracking-offset-yaw", nil) + + if wasTracking and (not self:GetData("tracking-wasflight")) then + self:SetFlight(false) + end + self:SetData("tracking-wasflight", nil) + + if IsValid(wasTrackingEnt) and wasTrackingEnt.TardisExterior then + wasTrackingEnt:SetData("tracking-tracked-by", nil) + end + + if IsValid(self.trackingdebugprop) then + self.trackingdebugprop:Remove() + end + + if wasTracking ~= isTracking then + TARDIS:StatusMessage(ply, "Controls.Tracking.Status", isTracking) + end + return true + end + + if ent.TardisPart and ent.ExteriorPart then + ent = ent.exterior + end + + local entSize = get_ent_size(ent) + + if ent.TardisPart or ent.TardisInterior or (ent:IsPlayer() and IsValid(TARDIS:GetInteriorEnt(ent))) then + TARDIS:ErrorMessage(ply, "Controls.Tracking.InteriorFail") + return false + elseif ent == self then + TARDIS:ErrorMessage(ply, "Controls.Tracking.SelfFail") + return false + elseif table.HasValue(constraint.GetAllConstrainedEntities(ent), self) then + TARDIS:ErrorMessage(ply, "Controls.Tracking.ConstrainedFail") + return false + elseif ent:GetPos():Distance(self:GetPos()) > (TRACKING_MAX_DISTANCE_SET + entSize) then + TARDIS:ErrorMessage(ply, "Controls.Tracking.DistanceFail") + return false + elseif self:CallHook("CanTrack", ent, ply) == false then + TARDIS:ErrorMessage(ply, "Controls.Tracking.GenericFail") + return false + end + + local wasFlying = self:GetFlight() + if not wasFlying then + local success = self:SetFlight(true) + if not success then + TARDIS:ErrorMessage(ply, "Controls.Tracking.FlightFail") + return false + end + end + + if self:GetPhyslock() then + TARDIS:ErrorMessage(ply, "Controls.Tracking.PhyslockFail") + return false + end + + if not wasTracking then + self:SetData("tracking-wasflight", wasFlying) + end + + if ent ~= wasTrackingEnt then + local offsetPos + local offsetYaw + if self:GetTrackRotation() then + offsetPos = ent:WorldToLocal(self:GetPos()) + offsetYaw = -ent:GetAngles().y + self:GetAngles().y + else + offsetPos = WorldToLocal(self:GetPos(), angle_zero, ent:GetPos(), angle_zero) + offsetYaw = self:GetAngles().y + end + self:SetData("tracking-offset-pos", offsetPos) + self:SetData("tracking-offset-yaw", offsetYaw) + self:SetData("tracking-ent-size", entSize) + self:SetData("tracking-ent",ent,true) + if ent.TardisExterior then + ent:SetData("tracking-tracked-by", self) + end + self:SetTrackRotationAuto() + end + + if wasTrackingEnt ~= ent then + local name = ent.PrintName or (isfunction(ent.Name) and ent:Name()) or ent.Name or ent:GetModel() or ent:GetClass() + if ent.GetCreator then + local creator = ent:GetCreator() + if IsValid(creator) then + name = name .. " (" .. creator:Nick() .. ")" + end + end + TARDIS:Message(ply, "Controls.Tracking.Target", name) + else + TARDIS:Message(ply, "Controls.Tracking.SameTarget") + end + + if wasTracking ~= isTracking then + TARDIS:StatusMessage(ply, "Controls.Tracking.Status", isTracking) + if ply == self:GetData("pilot") then + self:SendMessage("tracking-rotationhint", nil, ply) + end + end + + return true + end + + function ENT:GetTrackRotation() + return self:GetData("tracking-rotation", false) + end + + function ENT:SetTrackRotation(on) + if self:GetTrackRotation() == on then return end + + self:SetData("tracking-rotation", on) + + local ent = self:GetTracking() + if not IsValid(ent) then return end + local offsetPos = self:GetData("tracking-offset-pos", Vector(0,0,0)) + local offsetYaw = self:GetData("tracking-offset-yaw", 0) + local newOffsetPos, newOffsetYaw + if on then + local currentTrackingPos = ent:GetPos() + offsetPos + newOffsetPos = ent:WorldToLocal(currentTrackingPos) + newOffsetYaw = offsetYaw - ent:GetAngles().y + else + local currentTrackingPos = ent:LocalToWorld(offsetPos) + newOffsetPos = WorldToLocal(currentTrackingPos, angle_zero, ent:GetPos(), angle_zero) + newOffsetYaw = offsetYaw + ent:GetAngles().y + end + self:SetData("tracking-offset-pos", newOffsetPos) + self:SetData("tracking-offset-yaw", newOffsetYaw) + end + + function ENT:ToggleTrackRotation() + self:SetTrackRotation(not self:GetTrackRotation()) + end + + function ENT:SetTrackRotationAuto() + local ent = self:GetTracking() + if not IsValid(ent) then return end + if ent.TardisExterior then + local trackRotation = ent:GetSpinDir() == 0 + if trackRotation ~= self:GetTrackRotation() then + self:SetTrackRotation(trackRotation) + TARDIS:Message(self:GetData("pilot"), "Controls.Tracking.RotationChangedAuto", trackRotation and "Common.Enabled.Lower" or "Common.Disabled.Lower") + end + end + end + + ENT:AddHook("Initialize", "tracking", function(self) + self:SetTrackRotation(true) + end) + + ENT:AddHook("HandleE2", "tracking", function(self, name, e2, ...) + local args = {...} + if name == "Track" and (args[1] == e2.player or TARDIS:CheckPP(e2.player, self)) then + local ent = args[1] + local success = self:SetTracking(ent, e2.player) + return success and 1 or 0 + end + end) + + ENT:AddHook("HandleE2", "tracking_get", function(self, name, e2) + if name == "GetTracking" then + return self:GetTracking() or NULL + end + end) + + ENT:AddHook("FlightToggled", "tracking", function(self, on) + if not on then + self:SetTracking() + end + end) + + ENT:AddHook("PhyslockToggled", "tracking", function(self, on) + if on then + self:SetTracking() + end + end) + + local VECTOR_UP = Vector(0,0,1) + + ENT:AddHook("PhysicsUpdate", "tracking", function(self, ph) + local ent = self:GetTracking() + if ent and not IsValid(ent) then + self:SetTracking() + return + elseif not ent then + return + end + + local pos = self:GetPos() + local entPos = ent:GetPos() + local offset = self:GetData("tracking-offset-pos", Vector(0,0,0)) + local yawoffset = self:GetData("tracking-offset-yaw", 0) + local pilot = self:GetData("pilot") + local phm = FrameTime()*66 + local offsetforce = 5 + local offsetrforce = 2 + local spin = self:GetSpin() + local trackrotation = self:GetTrackRotation() + + if IsValid(pilot) then + local eye = pilot:GetTardisData("viewang") + if not eye then + eye = angle_zero + end + local fwd = eye:Forward() + local ri = eye:Right() + + local fbinds = { + forward = TARDIS:IsBindDown(pilot,"flight-forward"), + backward = TARDIS:IsBindDown(pilot,"flight-backward"), + left = TARDIS:IsBindDown(pilot,"flight-left"), + right = TARDIS:IsBindDown(pilot,"flight-right"), + rotate = TARDIS:IsBindDown(pilot,"flight-rotate"), + up = TARDIS:IsBindDown(pilot,"flight-up"), + down = TARDIS:IsBindDown(pilot,"flight-down"), + boost = TARDIS:IsBindDown(pilot,"flight-boost"), + } + + if fbinds.boost then + offsetforce = offsetforce*TARDIS:GetSetting("boost-speed") + offsetrforce = offsetrforce*TARDIS:GetSetting("boost-speed") + end + + local adjustedOffset = Vector() + if fbinds.forward then + adjustedOffset:Add(fwd * offsetforce) + end + if fbinds.backward then + adjustedOffset:Add(fwd * -offsetforce) + end + + local adjustedYawOffset = yawoffset + if fbinds.left then + if fbinds.rotate then + if not spin then + adjustedYawOffset = adjustedYawOffset + offsetrforce + if adjustedYawOffset > 180 then + adjustedYawOffset = adjustedYawOffset - 360 + end + end + else + adjustedOffset:Add(ri * -offsetforce) + end + end + if fbinds.right then + if fbinds.rotate then + if not spin then + adjustedYawOffset = adjustedYawOffset - offsetrforce + if adjustedYawOffset < -180 then + adjustedYawOffset = adjustedYawOffset + 360 + end + end + else + adjustedOffset:Add(ri * offsetforce) + end + end + + local spinwarning = (fbinds.left or fbinds.right) and fbinds.rotate and spin + if spinwarning and self:GetData("lastspinwarning", 0) < CurTime() then + self:SetData("lastspinwarning", CurTime() + 1) + TARDIS:Message(pilot, "Controls.Tracking.SpinWarning") + end + + if fbinds.up then + adjustedOffset:Add(Vector(0,0,offsetforce)) + elseif fbinds.down then + adjustedOffset:Add(Vector(0,0,-offsetforce)) + end + + if adjustedOffset ~= vector_origin then + adjustedOffset:Mul(phm) + if trackrotation then + offset:Add(WorldToLocal(adjustedOffset, angle_zero, vector_origin, ent:GetAngles())) + else + offset:Add(adjustedOffset) + end + self:SetData("tracking-offset-pos", offset) + end + + if adjustedYawOffset ~= yawoffset then + yawoffset = adjustedYawOffset + self:SetData("tracking-offset-yaw", yawoffset) + end + end + + local tvel = ent:GetVelocity() + local tfwd = tvel:Angle():Forward() + local target + if trackrotation then + target = ent:LocalToWorld(offset) + else + target = entPos + offset + end + local offsetdist = entPos:Distance(target) + local tdiff = target:Distance(pos) + local targetpredicted = target+(tfwd*tvel:Length()*phm) + local mass = ph:GetMass() + local vel = ph:GetVelocity() + local velnorm = vel:GetNormalized() + local len = vel:Length() + + local entSize = self:GetData("tracking-ent-size") + + if offsetdist > (TRACKING_MAX_DISTANCE_TARGET_MAX + entSize) then + self:SetTracking() + if IsValid(pilot) then + TARDIS:ErrorMessage(pilot, "Controls.Tracking.TargetTooFar") + end + return + end + + local targetph = ent:GetPhysicsObject() + if trackrotation and IsValid(targetph) then + local tdifftoent = (target-entPos):Angle() + local tdifftoentfwd = tdifftoent:Forward() + tdifftoentfwd.z = 0 + local spinvelocity = math.abs(targetph:GetAngleVelocity():Dot(VECTOR_UP)) + local angveloutwards = (tdifftoentfwd * spinvelocity * 2 * phm) + targetpredicted = targetpredicted + angveloutwards + end + + if tdiff > (TRACKING_MAX_DISTANCE_TRACE + entSize) then + self:SetTracking() + if IsValid(pilot) then + TARDIS:ErrorMessage(pilot, "Controls.Tracking.TargetLost") + end + return + end + + local diffang = (entPos - pos):Angle() + local trace = util.QuickTrace(pos,diffang:Forward()*(TRACKING_MAX_DISTANCE_TRACE + entSize),{self,TARDIS:GetPart(self,"door")}) + local targetfound = trace.Entity==ent or tdiff < (TRACKING_MAX_DISTANCE_NO_LOS + entSize) + + local trackinglost = self:GetData("tracking-lost") + if trackinglost and CurTime() > trackinglost then + self:SetData("tracking-lost", nil) + self:SetTracking() + if IsValid(pilot) then + TARDIS:ErrorMessage(pilot, "Controls.Tracking.TargetLost") + end + return + elseif (not targetfound) and (not trackinglost) then + self:SetData("tracking-lost", CurTime() + 5) + elseif targetfound and trackinglost then + self:SetData("tracking-lost", nil) + end + + if TRACKING_DEBUG then + if not IsValid(self.trackingdebugprop) then + self.trackingdebugprop = ents.Create("prop_physics") + self.trackingdebugprop:SetModel("models/hunter/blocks/cube05x05x05.mdl") + self.trackingdebugprop:SetColor(Color(255,0,0)) + self.trackingdebugprop:SetRenderMode(RENDERMODE_TRANSALPHA) + self.trackingdebugprop:SetMoveType(MOVETYPE_NONE) + self.trackingdebugprop:SetSolid(SOLID_NONE) + self.trackingdebugprop:SetCollisionGroup(COLLISION_GROUP_IN_VEHICLE) + self.trackingdebugprop:Activate() + self.trackingdebugprop:Spawn() + end + + self.trackingdebugprop:SetPos(targetpredicted) + end + + local tpdiff = targetpredicted-pos + local tdist = tpdiff:Length() + local diffnorm = tpdiff:GetNormalized() + local force = math.Clamp((tdist * 0.05), 0, 15*TARDIS:GetSetting("boost-speed")) + + ph:AddVelocity(diffnorm*force*phm) + + local brake = len-tdist + local brakeClamped = math.Clamp(brake, 0, len)*0.9 + ph:AddVelocity(-velnorm*brakeClamped) + + if not spin then + local cen = ph:GetMassCenter() + local fwd = self:GetForward() + local lev = ph:GetInertia():Length() + local ri = self:GetRight() + local ang = self:GetAngles() + + local targetang = yawoffset + if trackrotation then + targetang = targetang + ent:GetAngles().y + end + local angdiff = math.AngleDifference(targetang,ang.y) + ph:AddAngleVelocity(Vector(0,0,angdiff*phm)) + ph:AddAngleVelocity(Vector(0,0,-ph:GetAngleVelocity().z*0.3*phm)) + + if TRACKING_DEBUG then + self.trackingdebugprop:SetAngles(Angle(0,targetang,0)) + end + end + end) + + ENT:AddHook("OnRemove", "tracking", function(self) + local trackingEnt = self:GetTracking() + + if IsValid(trackingEnt) and trackingEnt.TardisExterior then + trackingEnt:SetData("tracking-tracked-by", nil) + end + + if IsValid(self.trackingdebugprop) then + self.trackingdebugprop:Remove() + end + end) + + ENT:AddHook("FlightControl", "tracking", function(self, ply) + if self:GetTracking() then + return false + end + end) + + ENT:AddHook("StopDemat", "tracking", function(self) + if self:GetTracking() then + self:SetTracking() + end + end) + + ENT:AddHook("PilotChanged", "tracking", function(self, old, new) + if IsValid(new) and self:GetTracking() then + self:SendMessage("tracking-pilotwarning", nil, new) + end + end) + + ENT:AddHook("ShouldTeleportPortal", "tracking", function(self,portal,ent) + local trackingEnt = self:GetTracking() + if not IsValid(trackingEnt) then return end + + if ent == trackingEnt then + return false + end + if table.HasValue(constraint.GetAllConstrainedEntities(trackingEnt), ent) then + return false + end + end) + + ENT:AddHook("SpinChanged", "tracking", function(self, dir) + local trackedBy = self:GetData("tracking-tracked-by") + if IsValid(trackedBy) then + trackedBy:SetTrackRotationAuto() + end + end) + + ENT:OnMessage("tracking-set", function(self,data,ply) + local ent = data[1] + + if self:GetData("pilot") ~= ply then return end + + self:SetTracking(ent) + end) +else + hook.Add("PostDrawTranslucentRenderables", "tardis-tracking", function() + local ext = TARDIS:GetExteriorEnt() + if not IsValid(ext) then return end + if not ext:GetData("tracking-trace") then return end + + local pos,ang,ent = ext:GetThirdPersonTrace(LocalPlayer(),LocalPlayer():EyeAngles()) + + local currentEnt = ext:GetData("tracking-trace-ent") + + if ent ~= currentEnt then + ext:SetData("tracking-trace-ent",ent) + ext:SetData("tracking-trace-ent-size", get_ent_size(ent)) + end + + if not IsValid(ent) then + ext:DrawViewCrosshair(pos,ang) + end + end) + + hook.Add("PreDrawHalos", "tardis-tracking", function() + local ext = TARDIS:GetExteriorEnt() + if not IsValid(ext) then return end + + local ent = ext:GetData("tracking-trace-ent") + if not IsValid(ent) then return end + + local entSize = ext:GetData("tracking-trace-ent-size") + + local dist = ent:GetPos():Distance(ext:GetPos()) + halo.Add({ent},dist > (TRACKING_MAX_DISTANCE_SET + entSize) and Color(255,0,0) or Color(0,255,0),1,1,1,true,true) + end) + + ENT:OnMessage("tracking-pilotwarning", function(self) + local keyName = input.GetKeyName(TARDIS:GetBindKey("tracking")) + TARDIS:Message(LocalPlayer(), "Controls.Tracking.PilotWarning", string.upper(keyName)) + end) + + ENT:OnMessage("tracking-rotationhint", function(self) + TARDIS:Message(LocalPlayer(), "Controls.Tracking.RotationHint", TARDIS:GetKeyName(TARDIS:GetBindKey("tracking-rotation"))) + end) +end \ No newline at end of file diff --git a/lua/entities/gmod_tardis/modules/sh_version.lua b/lua/entities/gmod_tardis/modules/sh_version.lua new file mode 100644 index 000000000..13fa25968 --- /dev/null +++ b/lua/entities/gmod_tardis/modules/sh_version.lua @@ -0,0 +1,69 @@ +-- Version + +ENT:AddHook("Initialize", "version", function(self) + if CLIENT and LocalPlayer()~=self:GetCreator() then return end + + if TARDIS:IsNewVersion() then + local newVersion = TARDIS:GetVersion() + local newVersionStr = TARDIS:GetVersionString(newVersion) + + local oldVersion = TARDIS:GetLastUsedVersion() + local oldVersionStr = TARDIS:GetVersionString(oldVersion) + + self:CallCommonHook("NewVersion", newVersion, newVersionStr, oldVersion, oldVersionStr) + end + + TARDIS:SetLastUsedVersion() +end) + +if SERVER then return end + +local function get_release_notes(newVersion) + local show = TARDIS:GetSetting("show_release_notes") + if not show then return end + local headers = { + ["X-GitHub-Api-Version"] = "2022-11-28" + } + local function onsuccess(body, size, headers, code) + if code ~= 200 then + print("Failed to retrieve TARDIS release notes for " .. newVersion .. ", code: " .. code .. ", body: " .. body) + return + end + local data = util.JSONToTable(body) + local release_notes = data.body + local json = string.match(release_notes, "") + if not json then return end + local releaseMetadata = util.JSONToTable(json) + if releaseMetadata.showPopup and releaseMetadata.summary then + local notes = releaseMetadata.summary + if releaseMetadata.changes then + notes = notes .. "\n" + for k,v in ipairs(releaseMetadata.changes) do + notes = notes .. "\n" .. "• ".. v + end + end + Derma_Query( + TARDIS:GetPhrase("Update.Updated", newVersion) .. "\n\n" .. notes .. "\n\n" .. TARDIS:GetPhrase("Update.ShowReleaseNotes"), + "TARDIS Update", + TARDIS:GetPhrase("Common.Yes"), + function() + gui.OpenURL(data.html_url) + end, + TARDIS:GetPhrase("Common.No"), + function() end, + TARDIS:GetPhrase("Common.DontAskAgain"), + function() + TARDIS:SetSetting("show_release_notes", false) + end + ) + end + end + local function onfailure(reason) + print("Failed to retrieve TARDIS release notes for " .. newVersion .. ": " .. reason) + end + http.Fetch("https://api.github.com/repos/MattJeanes/TARDIS/releases/tags/" .. newVersion, onsuccess, onfailure, headers) +end + +ENT:AddHook("NewVersion", "version", function(self, newVersion, newVersionStr, oldVersion, oldVersionStr) + get_release_notes(newVersionStr) +end) diff --git a/lua/entities/gmod_tardis/modules/sh_vortex.lua b/lua/entities/gmod_tardis/modules/sh_vortex.lua index a7d22ad80..7ce3dc11d 100644 --- a/lua/entities/gmod_tardis/modules/sh_vortex.lua +++ b/lua/entities/gmod_tardis/modules/sh_vortex.lua @@ -1,5 +1,18 @@ -- Vortex +TARDIS:AddKeyBind("vortex-toggle",{ + name="ToggleVortex", + section="ThirdPerson", + func=function(self,down,ply) + if ply==self.pilot and down then + TARDIS:Control("vortex_flight", ply) + end + end, + key=KEY_LBRACKET, + serveronly=true, + exterior=true +}) + function ENT:IsVortexEnabled(pilot) local hookResult = self:CallHook("VortexEnabled", pilot) if hookResult ~= nil then return hookResult end @@ -14,6 +27,12 @@ ENT:AddHook("VortexEnabled", "demat-fast", function(self, pilot) end end) +ENT:AddHook("CanTrack","vortex",function(self,state) + if self:GetData("vortex") then + return false + end +end) + if SERVER then ENT:AddHook("PhysicsUpdate","vortex",function(self,ph) -- Simulate flight without actually moving anywhere diff --git a/lua/entities/gmod_tardis/modules/sh_warning.lua b/lua/entities/gmod_tardis/modules/sh_warning.lua index e130fc4bc..42d2f8ea6 100644 --- a/lua/entities/gmod_tardis/modules/sh_warning.lua +++ b/lua/entities/gmod_tardis/modules/sh_warning.lua @@ -1,19 +1,19 @@ +function ENT:GetWarning() + return self:GetData("warning", false) +end + if SERVER then ENT:AddHook("Initialize","warning-init", function(self) - self:SetData("health-warning", false, true) + self:SetData("warning", false, true) end) - function ENT:GetWarning() - return self:GetData("health-warning", false) - end - function ENT:ToggleWarning() return self:SetWarning(not self:GetWarning()) end function ENT:SetWarning(on) - self:SetData("health-warning", on, true) - self:CallCommonHook("HealthWarningToggled", on) + self:SetData("warning", on, true) + self:CallCommonHook("WarningToggled", on) end function ENT:UpdateWarning() @@ -22,74 +22,27 @@ if SERVER then end end - ENT:AddHook("HealthWarningToggled", "client", function(self, on) - self:SendMessage("health_warning_toggled", {on}) - end) - - ENT:AddHook("Think", "health-warning", function(self) - if self:CallHook("ShouldStartSmoke") and self:CallHook("ShouldStopSmoke")~=true then - if self.smoke then return end - self:StartSmoke() - else - self:StopSmoke() - end + ENT:AddHook("OnHealthChange", "warning", function(self) + self:UpdateWarning() end) - ENT:AddHook("Think", "RemoveSmoke", function(self) - local smokedelay = self:GetData("smoke-killdelay") - if smokedelay ~= nil and CurTime() >= smokedelay then - if IsValid(self.smoke) then - self.smoke:Remove() - self.smoke = nil - self:SetData("smoke-killdelay",nil) - end - end + ENT:AddHook("WarningToggled", "client", function(self, on) + self:SendMessage("warning_toggled", {on}) end) - - ENT:AddHook("ShouldStartSmoke", "health-warning", function(self) - if self:GetData("health-warning",false) then - return true - end +else + ENT:OnMessage("warning_toggled", function(self, data, ply) + self:CallCommonHook("WarningToggled", data[1]) end) +end - function ENT:StartSmoke() - local smoke = ents.Create("env_smokestack") - smoke:SetPos(self:LocalToWorld(Vector(0,0,80))) - smoke:SetAngles(self:GetAngles()+Angle(-90,0,0)) - smoke:SetKeyValue("InitialState", "1") - smoke:SetKeyValue("WindAngle", "0 0 0") - smoke:SetKeyValue("WindSpeed", "0") - smoke:SetKeyValue("rendercolor", "50 50 50") - smoke:SetKeyValue("renderamt", "170") - smoke:SetKeyValue("SmokeMaterial", "particle/smokesprites_0001.vmt") - smoke:SetKeyValue("BaseSpread", "5") - smoke:SetKeyValue("SpreadSpeed", "10") - smoke:SetKeyValue("Speed", "50") - smoke:SetKeyValue("StartSize", "30") - smoke:SetKeyValue("EndSize", "70") - smoke:SetKeyValue("roll", "20") - smoke:SetKeyValue("Rate", "10") - smoke:SetKeyValue("JetLength", "100") - smoke:SetKeyValue("twist", "5") - smoke:Spawn() - smoke:SetParent(self) - smoke:Activate() - self.smoke=smoke - end +-- Support for old naming - function ENT:StopSmoke() - if self.smoke and IsValid(self.smoke) and self:GetData("smoke-killdelay")==nil then - self.smoke:Fire("TurnOff") - local jetlength = self.smoke:GetInternalVariable("JetLength") - local speed = self.smoke:GetInternalVariable("Speed") - self:SetData("smoke-killdelay",CurTime()+(speed/jetlength)*5) - end - end +ENT:AddHook("DataChanged", "warning", function(self, id, val) + if id ~= "warning" then return end -else - - ENT:OnMessage("health_warning_toggled", function(self, data, ply) - self:CallCommonHook("HealthWarningToggled", data[1]) - end) + self:SetData("health-warning", val, true) +end) -end +ENT:AddHook("WarningToggled", "warning", function(self, on) + self:CallCommonHook("HealthWarningToggled", on) +end) \ No newline at end of file diff --git a/lua/entities/gmod_tardis/modules/sv_handbrake.lua b/lua/entities/gmod_tardis/modules/sv_handbrake.lua deleted file mode 100644 index 458b80941..000000000 --- a/lua/entities/gmod_tardis/modules/sv_handbrake.lua +++ /dev/null @@ -1,64 +0,0 @@ --- Handbrake - -ENT:AddHook("Initialize","handbrake-init", function(self) - self:SetData("handbrake", false, true) -end) - -function ENT:GetHandbrake() - return self:GetData("handbrake", false) -end - -function ENT:ToggleHandbrake() - return self:SetHandbrake(not self:GetHandbrake()) -end - -function ENT:SetHandbrake(on) - if self:CallCommonHook("CanToggleHandbrake") == false then - return false - end - self:SetData("handbrake", on, true) - self:CallCommonHook("HandbrakeToggled", on) - return true -end - -ENT:AddHook("ShouldFailDemat", "handbrake", function(self, force) - if self:GetHandbrake() and force ~= true then - return true - end -end) - -ENT:AddHook("HandbrakeToggled", "vortex", function(self, on) - if on and self:GetData("teleport") or self:GetData("vortex") then - self:InterruptTeleport() - else - self:InterruptFlight() - end -end) - -ENT:AddHook("CanTurnOnFlight", "handbrake", function(self) - if self:GetHandbrake() then - return false - end -end) - -ENT:AddHook("HandleE2", "handbrake", function(self, name, e2, ...) - local args = {...} - if name == "SetBrake" and TARDIS:CheckPP(e2.player, self) then - local on = args[1] - local handbrake = self:GetHandbrake() - if on == 1 then - if (not handbrake) and self:SetHandbrake(true) then - return 1 - end - else - if handbrake and self:SetHandbrake(false) then - return 1 - end - end - return 0 - elseif name == "ToggleBrake" and TARDIS:CheckPP(e2.player, self) then - return self:ToggleHandbrake() and 1 or 0 - elseif name == "GetBrake" then - return self:GetHandbrake() and 1 or 0 - end -end) \ No newline at end of file diff --git a/lua/entities/gmod_tardis/modules/sv_interior.lua b/lua/entities/gmod_tardis/modules/sv_interior.lua index 5dd107014..21660bca4 100644 --- a/lua/entities/gmod_tardis/modules/sv_interior.lua +++ b/lua/entities/gmod_tardis/modules/sv_interior.lua @@ -34,4 +34,10 @@ ENT:AddHook("ShouldSpawnInterior", "interior", function(self) if TARDIS:GetSetting("nointerior", self) then return false end +end) + +ENT:AddHook("OnRemove", "interior", function(self) + if IsValid(self.interior) then + self.interior.exterior_deleted = true + end end) \ No newline at end of file diff --git a/lua/entities/gmod_tardis/modules/sv_physgun.lua b/lua/entities/gmod_tardis/modules/sv_physgun.lua new file mode 100644 index 000000000..346c894d9 --- /dev/null +++ b/lua/entities/gmod_tardis/modules/sv_physgun.lua @@ -0,0 +1,31 @@ +hook.Add("OnPhysgunPickup", "tardis-hads", function(ply,ent) + if ent:GetClass() ~= "gmod_tardis" then return end + + if ent:TriggerHADS() then + ent:ForcePlayerDrop() + end +end) + +hook.Add("PhysgunPickup", "tardis-teleport", function(ply,ent) + if ent:GetClass() ~= "gmod_tardis" then return end + + if ent:GetData("teleport") or ent:GetData("vortex") or ent:GetData("hads-triggered") then + return false + end +end) + +hook.Add("PlayerUnfrozeObject", "tardis-physlock", function(ply,ent,phys) + if ent:GetClass() ~= "gmod_tardis" then return end + + if ent:GetPhyslock() == true then + phys:EnableMotion(false) + end +end) + +hook.Add("PhysgunDrop", "tardis-physlock", function(ply,ent) + if ent:GetClass() ~= "gmod_tardis" then return end + + if ent:GetPhyslock() == true then + ent:GetPhysicsObject():EnableMotion(false) + end +end) \ No newline at end of file diff --git a/lua/entities/gmod_tardis/modules/sv_rotorwash.lua b/lua/entities/gmod_tardis/modules/sv_rotorwash.lua deleted file mode 100644 index b2f3ad2b4..000000000 --- a/lua/entities/gmod_tardis/modules/sv_rotorwash.lua +++ /dev/null @@ -1,29 +0,0 @@ --- Rotorwash - -function ENT:CreateRotorWash() - if IsValid(self.rotorwash) then return end - self.rotorwash = ents.Create("env_rotorwash_emitter") - self.rotorwash:SetPos(self:GetPos()) - self.rotorwash:SetParent(self) - self.rotorwash:Activate() -end - -function ENT:RemoveRotorWash() - if IsValid(self.rotorwash) then - self.rotorwash:Remove() - self.rotorwash=nil - end -end - -ENT:AddHook("Think", "rotorwash", function(self) - local shouldon=self:CallHook("ShouldTurnOnRotorwash") - local shouldoff=self:CallHook("ShouldTurnOffRotorwash") - - if shouldon and (not shouldoff) then - if not self.rotorwash then - self:CreateRotorWash() - end - elseif self.rotorwash then - self:RemoveRotorWash() - end -end) \ No newline at end of file diff --git a/lua/entities/gmod_tardis/modules/teleport/cl_tp_rendering.lua b/lua/entities/gmod_tardis/modules/teleport/cl_tp_rendering.lua index 724799d75..8ec069d70 100644 --- a/lua/entities/gmod_tardis/modules/teleport/cl_tp_rendering.lua +++ b/lua/entities/gmod_tardis/modules/teleport/cl_tp_rendering.lua @@ -8,20 +8,25 @@ ENT:AddHook("ShouldAllowThickPortal", "teleport", function(self, portal) end end) +function ENT:DrawViewCrosshair(pos,ang) + local fw=ang:Forward() + local bk=fw*-1 + local ri=ang:Right() + local le=ri*-1 + + local size=10 + local col=Color(255,0,0) + render.DrawLine(pos,pos+(fw*size),col) + render.DrawLine(pos,pos+(bk*size),col) + render.DrawLine(pos,pos+(ri*size),col) + render.DrawLine(pos,pos+(le*size),col) +end + hook.Add("PostDrawTranslucentRenderables", "tardis-trace", function() local ext=TARDIS:GetExteriorEnt() - if IsValid(ext) and ext:GetData("teleport-trace") then - local pos,ang=ext:GetThirdPersonTrace(LocalPlayer(),LocalPlayer():EyeAngles()) - local fw=ang:Forward() - local bk=fw*-1 - local ri=ang:Right() - local le=ri*-1 + if not IsValid(ext) then return end + if not ext:GetData("teleport-trace") then return end - local size=10 - local col=Color(255,0,0) - render.DrawLine(pos,pos+(fw*size),col) - render.DrawLine(pos,pos+(bk*size),col) - render.DrawLine(pos,pos+(ri*size),col) - render.DrawLine(pos,pos+(le*size),col) - end + local pos, ang = ext:GetThirdPersonTrace(LocalPlayer(),LocalPlayer():EyeAngles()) + ext:DrawViewCrosshair(pos,ang) end) diff --git a/lua/entities/gmod_tardis/modules/teleport/sh_tp_failed.lua b/lua/entities/gmod_tardis/modules/teleport/sh_tp_failed.lua index 8a8c8d013..e14f89120 100644 --- a/lua/entities/gmod_tardis/modules/teleport/sh_tp_failed.lua +++ b/lua/entities/gmod_tardis/modules/teleport/sh_tp_failed.lua @@ -1,32 +1,23 @@ -- Failed and forced teleport functions if SERVER then + function ENT:FailDemat() + self:SetData("failing-demat", true, true) + self:CallCommonHook("DematFailed") - function ENT:HandleNoDemat(pos, ang, callback, force) - local fail = self:CallHook("ShouldFailDemat", force) - local possible = self:CallHook("CanDemat", force, true) + self:SendMessage("failed-demat") - if self:CallHook("HandleNoDemat", pos, ang, callback, force) == true then - return -- when the behaviour is overriden, the hook will return true - end - - if fail == true and possible ~= false then - self:SetData("failing-demat", true, true) - self:SendMessage("failed-demat") - self:Timer("failed-demat-stop", 4, function() - self:SetData("failing-demat", false, true) - end) - end - if callback then callback(false) end + local time = self.metadata.Timings.DematFail + self:Timer("failed-demat-stop", time, function() + self:SetData("failing-demat", false, true) + end) end function ENT:HandleNoMat(pos, ang, callback) local fail = self:CallHook("ShouldFailMat", pos, ang) local possible = self:CallHook("CanMat", pos, ang, true) - if self:CallHook("HandleNoMat", pos, ang, callback) == true then - return -- when the behaviour is overriden, the hook will return true - end + self:CallHook("HandleNoMat", pos, ang, callback) if fail ~= true or possible == false then if callback then callback(false) end @@ -52,7 +43,8 @@ if SERVER then self:SetData("failing-mat", true, true) self:SendMessage("failed-mat") - self:Timer("failed-mat-stop", 4, function() + local time = self.metadata.Timings.MatFail + self:Timer("failed-mat-stop", time, function() self:SetData("failing-mat", false, true) end) if callback then callback(false) end @@ -83,17 +75,19 @@ if SERVER then end function ENT:AutoDemat(pos, ang, callback) - if self:CallHook("CanDemat", false) ~= false then + if self:CallHook("CanDemat", false, true) ~= false then self:Demat(pos, ang, callback) - elseif self:CallHook("CanDemat", true) ~= false then + elseif self:CallHook("CanDemat", true, true) ~= false then self:ForceDemat(pos, ang, callback) else if callback then callback(false) end end end - ENT:AddHook("CanDemat", "failed", function(self, force, ignore_fail_demat) - if ignore_fail_demat ~= true and self:CallHook("ShouldFailDemat", force) == true then + ENT:AddHook("CanDemat", "failed", function(self, force, check_failed) + if not check_failed then return end + + if self:CallHook("ShouldFailDemat", force) == true then return false end end) @@ -118,7 +112,7 @@ if SERVER then self:SetData("failing-demat", false, true) if self:CallHook("ShouldFailDemat", false) == true then - if not self:GetData("health-warning", false) then + if not self:IsLowHealth() then self:ForceDemat(pos, ang, callback) else self:SendMessage("engine-release-explode") @@ -149,6 +143,7 @@ if SERVER then else -- CLIENT ENT:OnMessage("failed-demat", function(self, data, ply) + self:CallCommonHook("DematFailed") if TARDIS:GetSetting("teleport-sound") and TARDIS:GetSetting("sound") then local ext = self.metadata.Exterior.Sounds.Teleport local int = self.metadata.Interior.Sounds.Teleport @@ -216,8 +211,10 @@ ENT:AddHook("Think","breakdown-effects", function(self) end if self:GetData("interior-lights-blinking", false) and timediff > 4 then - local newhealth = self:GetHealth() * math.random(75, 95) * 0.01 - self:ChangeHealth(newhealth) + if SERVER then + local newhealth = self:GetHealth() * math.random(75, 95) * 0.01 + self:ChangeHealth(newhealth) + end if showeffects then self:InteriorExplosion() end self:SetData("interior-lights-blinking", false, true) end diff --git a/lua/entities/gmod_tardis/modules/teleport/sh_tp_hooks.lua b/lua/entities/gmod_tardis/modules/teleport/sh_tp_hooks.lua index 0c8255f27..3c103006d 100644 --- a/lua/entities/gmod_tardis/modules/teleport/sh_tp_hooks.lua +++ b/lua/entities/gmod_tardis/modules/teleport/sh_tp_hooks.lua @@ -1,7 +1,18 @@ -- Teleport hooks -if SERVER then +ENT:AddHook("CanTrack","teleport",function(self,state) + if self:GetData("teleport") then + return false + end +end) + +ENT:AddHook("IsTravelling", "teleport", function(self) + if self:GetData("teleport") or self:GetData("vortex") then + return true + end +end) +if SERVER then ENT:AddHook("CanToggleDoor","teleport",function(self,state) if self:GetData("teleport") then return false @@ -38,6 +49,12 @@ if SERVER then end end) + ENT:AddHook("ShouldNotPlayLandingSound", "teleport", function(self) + if self:GetData("teleport") then + return true + end + end) + ENT:AddHook("ShouldExteriorDoorCollide", "teleport", function(self,open) if self:GetData("teleport") or self:GetData("vortex") then return false @@ -63,6 +80,12 @@ if SERVER then return false end end) + + ENT:AddHook("ShouldStopFire", "teleport", function(self) + if self:GetData("teleport") or self:GetData("vortex") then + return true + end + end) else ENT:AddHook("ShouldTurnOnLight","teleport",function(self) if self:GetData("teleport") then diff --git a/lua/entities/gmod_tardis/modules/teleport/sh_tp_interrupt.lua b/lua/entities/gmod_tardis/modules/teleport/sh_tp_interrupt.lua index 3644bef32..b86970dc6 100644 --- a/lua/entities/gmod_tardis/modules/teleport/sh_tp_interrupt.lua +++ b/lua/entities/gmod_tardis/modules/teleport/sh_tp_interrupt.lua @@ -56,6 +56,12 @@ if SERVER then self:SetData("teleport-interrupted", true, true) self:SetData("teleport-interrupt-time", CurTime(), true) self:SetData("teleport-interrupt-effects", true, true) + else + local time = self.metadata.Timings.DematInterrupt + self:SetData("demat-interrupted", true, true) + self:Timer("interrupt_demat", time, function() + self:SetData("demat-interrupted", nil, true) + end) end end @@ -75,8 +81,8 @@ if SERVER then self:CancelTimer("matdelay") end) - ENT:AddHook("CanTogglePower", "tp_interrupt", function(self) - if self:GetData("teleport-interrupted", false) then + ENT:AddHook("CanTogglePower", "tp_interrupt", function(self, on) + if on and self:GetData("teleport-interrupted", false) then return false end end) diff --git a/lua/entities/gmod_tardis/modules/teleport/sh_tp_main.lua b/lua/entities/gmod_tardis/modules/teleport/sh_tp_main.lua index adaa5c05d..5c24725d9 100644 --- a/lua/entities/gmod_tardis/modules/teleport/sh_tp_main.lua +++ b/lua/entities/gmod_tardis/modules/teleport/sh_tp_main.lua @@ -78,11 +78,18 @@ if SERVER then end function ENT:Demat(pos, ang, callback, force) - local ignore_failed_demat = self:GetData("redecorate") - if self:CallHook("CanDemat", force, ignore_failed_demat) == false then - self:HandleNoDemat(pos, ang, callback, force) - return + force = force or self:CallCommonHook("ShouldForceDemat", pos, ang) + + if self:CallHook("CanDemat", force, false) == false then + return callback and callback(false) + end + + local redecorating = self:GetData("redecorate") + + if self:CallHook("ShouldFailDemat", force, pos, ang) == true and not redecorating then + self:FailDemat() + return callback and callback(false) end if not self:DematDoorCheck(pos, ang, callback, force) then return end @@ -96,7 +103,8 @@ if SERVER then pos = pos or self:GetDestinationPos(true) ang = ang or self:GetDestinationAng(true) - self:SetDestination(pos, ang, true) + pos,ang = self:CallCommonHook("DestinationOverride", pos, ang) or pos,ang + self:SetDestination(pos, ang) self:SendMessage("demat", { self:GetDestinationPos(true) } ) self:SetData("demat",true) @@ -195,9 +203,8 @@ if SERVER then self:CallHook("StopMat") end - ENT:AddHook("CanDemat", "teleport", function(self, force, ignore_fail_demat) - if self:GetData("teleport") or self:GetData("vortex") or (not self:GetPower()) - then + ENT:AddHook("CanDemat", "teleport", function(self, force, check_failed) + if self:GetData("teleport") or self:GetData("vortex") or (not self:GetPower()) then return false end end) @@ -245,7 +252,7 @@ else local sound_fullflight_ext = ext.fullflight local sound_fullflight_int = int.fullflight or ext.fullflight - if (self:GetData("health-warning", false) or self:GetData("force-demat", false)) + if (self:IsLowHealth() or self:GetData("force-demat", false)) and not self:GetData("redecorate") then sound_demat_ext = ext.demat_damaged @@ -255,11 +262,12 @@ else sound_fullflight_int = int.fullflight_damaged or ext.fullflight_damaged end + local sound_demat_hads_ext = ext.demat_hads + local sound_demat_hads_int = int.demat_hads or ext.demat_hads + local pos = data[1] if LocalPlayer():GetTardisData("exterior")==self then - local intsound = int.demat or ext.demat - local extsound = ext.demat if self:GetFastRemat() then if shouldPlayInterior then self.interior:EmitSound(sound_fullflight_int) @@ -269,21 +277,33 @@ else end else if shouldPlayInterior then - self.interior:EmitSound(sound_demat_int) + if self:GetData("hads-demat") then + self.interior:EmitSound(sound_demat_hads_int) + else + self.interior:EmitSound(sound_demat_int) + end end if shouldPlayExterior then - self:EmitSound(sound_demat_ext) + if self:GetData("hads-demat") then + self:EmitSound(sound_demat_hads_ext) + else + self:EmitSound(sound_demat_ext) + end end end elseif shouldPlayExterior then if self:GetFastRemat() then sound.Play(sound_demat_fast_ext,self:GetPos()) else - sound.Play(sound_demat_ext,self:GetPos()) + if self:GetData("hads-demat") then + sound.Play(sound_demat_hads_ext,self:GetPos()) + else + sound.Play(sound_demat_ext,self:GetPos()) + end end if pos and self:GetFastRemat() then if not IsValid(self) then return end - if self:GetData("health-warning", false) and (self:GetFastRemat())==true then + if self:IsLowHealth() and self:GetFastRemat() then sound.Play(ext.mat_damaged_fast, pos) else sound.Play(ext.mat_fast, pos) @@ -305,7 +325,7 @@ else local int = self.metadata.Interior.Sounds.Teleport local pos=data[1] if LocalPlayer():GetTardisData("exterior")==self and (not self:GetFastRemat()) then - if self:GetData("health-warning", false) then + if self:IsLowHealth() then if shouldPlayExterior then self:EmitSound(ext.mat_damaged) end @@ -321,7 +341,7 @@ else end end elseif not self:GetFastRemat() and shouldPlayExterior then - if self:GetData("health-warning", false) then + if self:IsLowHealth() then sound.Play(ext.mat_damaged,pos) else sound.Play(ext.mat,pos) @@ -370,11 +390,14 @@ function ENT:SetStepDelay() local demat=self:GetData("demat") local fast=self:GetFastRemat() local mat=self:GetData("mat") + local hads=self:GetData("hads-triggered") if not (demat or mat) then return end local teleport_md = self.metadata.Exterior.Teleport local sequence_delays - if demat then + if hads then + sequence_delays = teleport_md.DematHadsSequenceDelays + elseif demat then if fast then sequence_delays = teleport_md.DematFastSequenceDelays else @@ -396,10 +419,14 @@ function ENT:SetStepDelay() end function ENT:GetTargetAlpha() - local demat=self:GetData("demat") - local mat=self:GetData("mat") - local step=self:GetData("step",1) - if demat and (not mat) then + local demat = self:GetData("demat") + local mat = self:GetData("mat") + local hads = self:GetData("hads-triggered") + local step = self:GetData("step",1) + + if demat and hads then + return self.metadata.Exterior.Teleport.HadsDematSequence[step] + elseif demat and (not mat) then return self.metadata.Exterior.Teleport.DematSequence[step] elseif mat and (not demat) then return self.metadata.Exterior.Teleport.MatSequence[step] @@ -409,8 +436,9 @@ function ENT:GetTargetAlpha() end ENT:AddHook("Think","teleport",function(self,delta) - local demat=self:GetData("demat") - local mat=self:GetData("mat") + local demat = self:GetData("demat") + local hads = self:GetData("hads-demat") + local mat = self:GetData("mat") if not (demat or mat) then return end local alpha=self:GetData("alpha",255) local target=self:GetTargetAlpha() @@ -419,9 +447,11 @@ ENT:AddHook("Think","teleport",function(self,delta) local teleport_md = self.metadata.Exterior.Teleport local fast = self:GetFastRemat() + local demat_steps = hads and #teleport_md.HadsDematSequence or #teleport_md.DematSequence + if alpha==target then if demat then - if step>=#teleport_md.DematSequence then + if step >= demat_steps then self:StopDemat() return else @@ -429,7 +459,7 @@ ENT:AddHook("Think","teleport",function(self,delta) self:SetStepDelay() end elseif mat then - if step>=#teleport_md.MatSequence then + if step >= #teleport_md.MatSequence then self:StopMat() return else @@ -442,9 +472,12 @@ ENT:AddHook("Think","teleport",function(self,delta) if self:GetData("step-delay") and self:GetData("step-delay")>CurTime() then return end local sequencespeed = (fast and teleport_md.SequenceSpeedFast or teleport_md.SequenceSpeed) - if self:GetData("health-warning",false) then + if self:IsLowHealth() then sequencespeed = (fast and teleport_md.SequenceSpeedWarnFast or teleport_md.SequenceSpeedWarning) end + if self:GetData("hads-demat") then + sequencespeed = teleport_md.SequenceSpeedHads + end alpha=math.Approach(alpha,target,delta*66*sequencespeed) self:SetData("alpha",alpha) self:SetAttachedTransparency(alpha) @@ -457,6 +490,11 @@ function ENT:GetSequenceProgress() local tp_metadata = self.metadata.Exterior.Teleport local demat = self:GetData("demat") local sequence = demat and tp_metadata.DematSequence or tp_metadata.MatSequence + + if self:GetData("hads-demat") then + sequence = tp_metadata.HadsDematSequence + end + local start_alpha = demat and 255 or 0 local steps = #sequence - 1 diff --git a/lua/entities/gmod_tardis/modules/teleport/sh_tp_vortex.lua b/lua/entities/gmod_tardis/modules/teleport/sh_tp_vortex.lua index 7bfab709d..7be779322 100644 --- a/lua/entities/gmod_tardis/modules/teleport/sh_tp_vortex.lua +++ b/lua/entities/gmod_tardis/modules/teleport/sh_tp_vortex.lua @@ -23,7 +23,7 @@ function ENT:ToggleFastRemat() end function ENT:SetFastRemat(on, force) - if (not force) and (self:CallHook("CanToggleFastRemat") == false) then + if self:CallHook("CanToggleFastRemat", force) == false then return false end @@ -32,14 +32,14 @@ function ENT:SetFastRemat(on, force) return true end -ENT:AddHook("CanToggleFastRemat", "vortex", function(self) - if self:GetData("vortex") or self:GetData("teleport") then +ENT:AddHook("CanToggleFastRemat", "vortex", function(self, force) + if not force and (self:GetData("vortex") or self:GetData("teleport")) then return false end end) ENT:AddHook("ShouldStopSmoke", "vortex", function(self) - if self:GetData("vortex") then return true end + if self:GetData("vortex") or self:GetData("demat") then return true end end) ENT:AddHook("ShouldTakeDamage", "vortex", function(self) diff --git a/lua/entities/gmod_tardis/modules/teleport/sv_tp_fastreturn.lua b/lua/entities/gmod_tardis/modules/teleport/sv_tp_fastreturn.lua index 0da1b58c2..712981ab8 100644 --- a/lua/entities/gmod_tardis/modules/teleport/sv_tp_fastreturn.lua +++ b/lua/entities/gmod_tardis/modules/teleport/sv_tp_fastreturn.lua @@ -14,7 +14,7 @@ function ENT:FastReturn(callback) return end - if self:CallHook("CanDemat", true) == false then + if self:CallHook("CanDemat", true, true) == false then if callback then callback(false) end return end diff --git a/lua/entities/gmod_tardis_debug_pointer/init.lua b/lua/entities/gmod_tardis_debug_pointer/init.lua index 47aec49ce..bbdfa38a0 100644 --- a/lua/entities/gmod_tardis_debug_pointer/init.lua +++ b/lua/entities/gmod_tardis_debug_pointer/init.lua @@ -11,7 +11,7 @@ function ENT:Initialize() self:SetModel(self.model or "models/brundoob/precision.mdl" ) self:SetModelScale(self.scale or 1) - self:PhysicsInit( MOVETYPE_VPHYSICS ) + self:PhysicsInit( SOLID_VPHYSICS ) self:SetMoveType( MOVETYPE_NONE ) self:SetSolid( SOLID_VPHYSICS ) self:SetCollisionGroup( COLLISION_GROUP_WORLD ) @@ -24,6 +24,11 @@ function ENT:Initialize() phys:EnableMotion(false) phys:Wake() end + + local ply = self:GetCreator() + if IsValid(ply) and not IsValid(ply.last_used_tardis_debug_pointer) then + ply.last_used_tardis_debug_pointer = self + end end function ENT:Use( activator, caller ) @@ -35,6 +40,7 @@ function ENT:Use( activator, caller ) activator:ChatPrint(" \nCurrent pointer position:") activator:ChatPrint(text) end + activator.last_used_tardis_debug_pointer = self return end diff --git a/lua/entities/gmod_tardis_debug_pointer/shared.lua b/lua/entities/gmod_tardis_debug_pointer/shared.lua index 5dfb0e8e0..76d6024c7 100644 --- a/lua/entities/gmod_tardis_debug_pointer/shared.lua +++ b/lua/entities/gmod_tardis_debug_pointer/shared.lua @@ -11,6 +11,20 @@ ENT.Category = "Doctor Who - TARDIS" ENT.Spawnable = false ENT.AdminOnly = true +-- debugging functions + +concommand.Add("tardis2_debug_pointer_clear", function(ply,cmd,args) + for k,v in pairs(ents.FindByClass("gmod_tardis_debug_pointer")) do + v:Remove() + end +end) + +concommand.Add("tardis2_debug_pointer_color", function(ply,cmd,args) + for k,v in pairs(ents.FindByClass("gmod_tardis_debug_pointer")) do + v:SetColor(Color(10,0,255)) + end +end) + concommand.Add("tardis2_debug_pointer", function(ply,cmd,args) if not (ply:IsAdmin() and gamemode.Call("PlayerSpawnSENT", ply, "gmod_tardis_debug_pointer")) then return end @@ -43,14 +57,16 @@ concommand.Add("tardis2_debug_pointer", function(ply,cmd,args) if part then ent.model = part.Model end elseif v == "scale" then ent.scale = args[i + 1] - elseif v == "pos" or v == "ang" then - a = tonumber(args[i + 1]) - b = tonumber(args[i + 2]) - c = tonumber(args[i + 3]) - ok = (a and b and c) + elseif v == "pos" or v == "ang" or v == "worldpos" then + local a = tonumber(args[i + 1]) + local b = tonumber(args[i + 2]) + local c = tonumber(args[i + 3]) + local ok = (a and b and c) if ok and v == "pos" and interior then ent:SetPos(interior:LocalToWorld(Vector(a, b, c))) + elseif ok and v == "worldpos" then + ent:SetPos(Vector(a, b, c)) elseif ok then ent:SetAngles(Angle(a, b, c)) end @@ -64,4 +80,365 @@ concommand.Add("tardis2_debug_pointer", function(ply,cmd,args) undo.SetPlayer(ply) undo.Finish() ply:AddCleanup("sents",ent) +end) + + + +if SERVER then + util.AddNetworkString("TARDIS-Pointer-Debug") + util.AddNetworkString("TARDIS-Pointer-Debug-Update") + util.AddNetworkString("TARDIS-Pointer-Use") + + net.Receive("TARDIS-Pointer-Debug-Update",function(len,ply) + local pointer = net.ReadEntity() + if not IsValid(pointer) then return end + + local update_type = net.ReadString() + + if update_type == "pos" then + pointer:SetPos(net.ReadVector()) + elseif update_type == "ang" then + pointer:SetAngles(net.ReadAngle()) + elseif update_type == "scale" then + local scale = net.ReadFloat() + pointer:SetModelScale(scale) + end + end) + + net.Receive("TARDIS-Pointer-Use",function(len,ply) + local pointer = net.ReadEntity() + if not IsValid(pointer) then return end + pointer:Use(ply,ply) + end) +else + function TARDIS:ShowPointerDebugMenu(p) + if IsValid(p.debug_window) then + if not g_ContextMenu:IsVisible() then + g_ContextMenu:Open() + end + local w = p.debug_window + w:SetPos(ScrW() * 0.25 - w:GetWide() * 0.5, ScrH() * 0.5 - w:GetTall() * 0.5) + return + end + + local x = ScrW() * 0.2; + local y = ScrH() * 0.8; + + g_ContextMenu:Open() + local frame=g_ContextMenu:Add( "DFrame" ) + frame:SetTitle("TARDIS Pointer Debug") + frame:SetSizable(true) + frame:SetSize(x + 50, y + 50) + frame:SetPos(ScrW() * 0.25 - frame:GetWide() * 0.5, ScrH() * 0.5 - frame:GetTall() * 0.5) + frame:ShowCloseButton(true) + frame:RequestFocus() + + p.debug_window = frame + + local pr = vgui.Create( "DProperties", frame ) + pr:SetSize(x, y) + pr:Center() + + local ent = LocalPlayer():GetTardisData("interior") + if not ent then + frame:Close() + LocalPlayer():ChatPrint("No TARDIS interior found") + return + end + + local x, x2, y, y2, z, z2 + local xr, xr2, yr, yr2, zr, zr2 + local xpv, xpv2, ypv, ypv2, zpv, zpv2 + + local px, py, pz = ent:WorldToLocal(p:GetPos()):Unpack() + local prx, pry, prz = 0, 0, 0 -- relative coordinates to pointer's rotation + local ppvx, ppvy, ppvz = 0, 0, 0 -- relative coordinates to player's view + local ang_p, ang_y, ang_r = ent:WorldToLocalAngles(p:GetAngles()):Unpack() + + local pv_ignore_vertical_angle = true + + local scale = p:GetModelScale() or 1 + + local function RefreshRelativeCoords() + local pos = Vector(px, py, pz) + local ang = Angle(ang_p, ang_y, ang_r) + + local B = Matrix() + B:SetForward(ang:Forward()) + B:SetRight(ang:Right()) + B:SetUp(ang:Up()) + local B_inv = B:GetInverse() + + prx, pry, prz = (B_inv * pos):Unpack() + + if xr then + xr:SetValue(prx) + xr2:SetValue(prx) + end + if yr then + yr:SetValue(pry) + yr2:SetValue(pry) + end + if zr then + zr:SetValue(prz) + zr2:SetValue(prz) + end + end + + local function RefreshAbsoluteCoords(src_player_view) + local posr, ang + + if src_player_view then + posr = Vector(ppvx, ppvy, ppvz) + if pv_ignore_vertical_angle then + ang = Angle(0, LocalPlayer():EyeAngles().y, 0) + else + ang = LocalPlayer():EyeAngles() + end + else + posr = Vector(prx, pry, prz) + ang = Angle(ang_p, ang_y, ang_r) + end + + local B = Matrix() + B:SetForward(ang:Forward()) + B:SetRight(ang:Right()) + B:SetUp(ang:Up()) + + px, py, pz = (B * posr):Unpack() + + if x then + x:SetValue(px) + x2:SetValue(px) + end + if y then + y:SetValue(py) + y2:SetValue(py) + end + if z then + z:SetValue(pz) + z2:SetValue(pz) + end + end + + local function RefreshPlayerViewCoords() + local pos = Vector(px, py, pz) + local ang + if pv_ignore_vertical_angle then + ang = Angle(0, LocalPlayer():EyeAngles().y, 0) + else + ang = LocalPlayer():EyeAngles() + end + + local B = Matrix() + B:SetForward(ang:Forward()) + B:SetRight(ang:Right()) + B:SetUp(ang:Up()) + local B_inv = B:GetInverse() + + ppvx, ppvy, ppvz = (B_inv * pos):Unpack() + + if xpv then + xpv:SetValue(ppvx) + xpv2:SetValue(ppvx) + end + if ypv then + ypv:SetValue(ppvy) + ypv2:SetValue(ppvy) + end + if zpv then + zpv:SetValue(ppvz) + zpv2:SetValue(ppvz) + end + end + + local function RefreshRealCoords() + px, py, pz = ent:WorldToLocal(p:GetPos()):Unpack() + ang_p, ang_y, ang_r = ent:WorldToLocalAngles(p:GetAngles()):Unpack() + RefreshRelativeCoords() + RefreshPlayerViewCoords() + end + + RefreshRealCoords() + + local function UpdatePointerPos(src_relative, src_player_view) + if src_player_view then + RefreshAbsoluteCoords(true) + RefreshRelativeCoords() + elseif src_relative then + RefreshAbsoluteCoords() + RefreshPlayerViewCoords() + else + RefreshRelativeCoords() + RefreshPlayerViewCoords() + end + + net.Start("TARDIS-Pointer-Debug-Update") + net.WriteEntity(p) + net.WriteString("pos") + net.WriteVector(ent:LocalToWorld(Vector(px, py, pz))) + net.SendToServer() + end + + local function UpdatePointerAng() + RefreshRelativeCoords() + net.Start("TARDIS-Pointer-Debug-Update") + net.WriteEntity(p) + net.WriteString("ang") + net.WriteAngle(ent:LocalToWorldAngles(Angle(ang_p, ang_y, ang_r))) + net.SendToServer() + end + + local function UpdatePointerScale() + net.Start("TARDIS-Pointer-Debug-Update") + net.WriteEntity(p) + net.WriteString("scale") + net.WriteFloat(scale) + net.SendToServer() + end + + local function SetupProperty(category, name, value, a, b, c, d) + local vmin, vmax, update_func + local vtype = "Float" + if isnumber(b) then + vmin = a + vmax = b + update_func = c + else + vmin = value - a + vmax = value + a + update_func = b + end + + if d then + vtype = d + end + + local row1 = pr:CreateRow( category, name ) + local row2 = pr:CreateRow( category, name .. " (precise)" ) + + row1:Setup( vtype, { min = vmin, max = vmax } ) + row1:SetValue(value) + row1.DataChanged = function( _, val ) + row2:SetValue(val) + update_func(val) + end + + row2:Setup( "Generic" ) + row2:SetValue(value) + row2.DataChanged = function( _, val ) + if tonumber(val) == nil then return end + row1:SetValue(val) + update_func(val) + end + + return row1, row2 + end + + x, x2 = SetupProperty("Position", "X", px, 100, function(val) + px = val + UpdatePointerPos() + end) + y, y2 = SetupProperty("Position", "Y", py, 100, function(val) + py = val + UpdatePointerPos() + end) + z, z2 = SetupProperty("Position", "Z", pz, 100, function(val) + pz = val + UpdatePointerPos() + end) + + xr, xr2 = SetupProperty("Relative position", "Forward / Back", prx, 100, function(val) + prx = val + UpdatePointerPos(true) + end) + yr, yr2 = SetupProperty("Relative position", "Right / Left", pry, 100, function(val) + pry = val + UpdatePointerPos(true) + end) + zr, zr2 = SetupProperty("Relative position", "Up / Down", prz, 100, function(val) + prz = val + UpdatePointerPos(true) + end) + + xpv, xpv2 = SetupProperty("Player view position", "Forward / Back", ppvx, 400, function(val) + ppvx = val + UpdatePointerPos(false, true) + end) + ypv, ypv2 = SetupProperty("Player view position", "Right / Left", ppvy, 400, function(val) + ppvy = val + UpdatePointerPos(false, true) + end) + zpv, zpv2 = SetupProperty("Player view position", "Up / Down", ppvz, 400, function(val) + ppvz = val + UpdatePointerPos(false, true) + end) + + local pv_iva = pr:CreateRow( "Player view position", "Ignore vertical angle" ) + pv_iva:Setup( "Bool" ) + pv_iva:SetValue(pv_ignore_vertical_angle) + pv_iva.DataChanged = function( _, val ) + pv_ignore_vertical_angle = (val == 1) + end + + local ap, ap2 = SetupProperty( "Angle", "Pitch", ang_p, 360, function(val) + ang_p = val + UpdatePointerAng() + end) + local ay, ay2 = SetupProperty( "Angle", "Yaw", ang_y, 360, function(val) + ang_y = val + UpdatePointerAng() + end) + local ar, ar2 = SetupProperty( "Angle", "Roll", ang_r, 360, function(val) + ang_r = val + UpdatePointerAng() + end) + + local sc, sc2 = SetupProperty( "Scale", "Pointer scale", scale, 0.1, 10, function(val) + scale = val + UpdatePointerScale() + end) + + function pr:Think() + if not IsValid(p) then + frame:Close() + return + end + if pr.p_pos ~= p:GetPos() or pr.p_ang ~= p:GetAngles() then + RefreshRealCoords() + end + if pr.eyeang ~= LocalPlayer():EyeAngles() then + pr.eyeang = LocalPlayer():EyeAngles() + RefreshPlayerViewCoords() + end + end + + local inv = pr:CreateRow( "Actions", "Print" ) + inv:Setup( "Bool" ) + inv:SetValue(false) + inv.DataChanged = function( _, val ) + inv:SetValue(false) + net.Start("TARDIS-Pointer-Use") + net.WriteEntity(p) + net.SendToServer() + end + end + + net.Receive("TARDIS-Pointer-Debug", function() + local p = net.ReadEntity() + if not IsValid(p) then return end + TARDIS:ShowPointerDebugMenu(p) + end) +end + +concommand.Add("tardis2_pointer_debug", function(ply,cmd,args) + local pointer = ply.last_used_tardis_debug_pointer + + if IsValid(pointer) then + net.Start("TARDIS-Pointer-Debug") + net.WriteEntity(pointer) + net.Send(ply) + else + ply:ChatPrint("No pointer found") + end end) \ No newline at end of file diff --git a/lua/entities/gmod_tardis_interior/init.lua b/lua/entities/gmod_tardis_interior/init.lua index b59c95620..77b2937dd 100644 --- a/lua/entities/gmod_tardis_interior/init.lua +++ b/lua/entities/gmod_tardis_interior/init.lua @@ -15,7 +15,53 @@ ENT:AddHook("PostPlayerInitialize", "senddata", function(self,ply) self:SendData(ply) end) +ENT:AddHook("PostInitialize", "save_interior_position", function(self,ply) + self:SetData("interior_saved_pos", self:GetPos()) + self:SetData("interior_saved_map", game.GetMap()) +end) + +ENT:AddHook("SetupPosition", "restore_position", function(self,pos) + local saved_pos = self:GetData("interior_saved_pos") + if not saved_pos then return end + + if game.GetMap() ~= self:GetData("interior_saved_map") then return end + + local td={ + mins=self.mins or self:OBBMins(), + maxs=self.maxs or self:OBBMaxs(), + start=saved_pos, + endpos=saved_pos, + filter = function(ent) + if ent.TardisInterior then return true end + return false + end + } + + if not util.TraceHull(td).Hit and + self:CallHook("AllowInteriorPos",nil,saved_pos,td.mins,td.maxs)~=false + then + return saved_pos + end + + return pos +end) + +ENT:AddHook("ShouldRemoveProp", "restore", function(self,prop) + if prop:IsVehicle() then + return true + end + if not IsValid(self.exterior) and not self.exterior_deleted and not prop.TardisPart then + return false + end +end) + function ENT:Initialize() + if not IsValid(self.exterior) then + self:Remove() + return + end + + self.interior = self if self.spacecheck then self.metadata=TARDIS:CreateInteriorMetadata(self.exterior.metadataID, self) self.Model=self.metadata.Interior.Model diff --git a/lua/entities/gmod_tardis_interior/modules/cl_flight.lua b/lua/entities/gmod_tardis_interior/modules/cl_flight.lua index 9bce0bc03..04c1253fa 100644 --- a/lua/entities/gmod_tardis_interior/modules/cl_flight.lua +++ b/lua/entities/gmod_tardis_interior/modules/cl_flight.lua @@ -7,22 +7,40 @@ ENT:AddHook("OnRemove", "flight", function(self) end end) -local function ChooseFlightSound(ent) - if ent.exterior:GetData("health-warning", false) then - local current_sound = ent.metadata.Interior.Sounds.FlightLoopDamaged or - ent.metadata.Exterior.Sounds.FlightLoopDamaged - ent.flightsound = CreateSound(ent, current_sound) - ent.flightsounddamaged = true +function ENT:ChooseFlightSound() + local sounds_int = self.metadata.Interior.Sounds + local sounds_ext = self.metadata.Exterior.Sounds + local ext = self.exterior + local current_sound + + if self:GetData("broken_flight") then + current_sound = sounds_int.FlightLoopBroken or sounds_int.FlightLoopDamaged + or sounds_ext.FlightLoopBroken + -- if the interior has its own damaged sound specified, + -- we prefer it to exterior's broken sound for this case + + self.flightsounddamaged = false + self.flightsoundbroken = true + elseif self.exterior:IsLowHealth() then + current_sound = sounds_int.FlightLoopDamaged or sounds_ext.FlightLoopDamaged + self.flightsounddamaged = true + self.flightsoundbroken = false else - local current_sound = ent.metadata.Interior.Sounds.FlightLoop or - ent.metadata.Exterior.Sounds.FlightLoop - ent.flightsound = CreateSound(ent, current_sound) - ent.flightsounddamaged = false + current_sound = sounds_int.FlightLoop or sounds_ext.FlightLoop + self.flightsounddamaged = false + self.flightsoundbroken = false end + self.flightsound = CreateSound(self, current_sound) +end + +local function IsFlightSoundWrong(self) + if self.flightsoundbroken ~= self:GetData("broken_flight", false) then return true end + if self.flightsounddamaged ~= (self.exterior:IsLowHealth() and not self:GetData("broken_flight")) then return true end + return false end ENT:AddHook("Think", "flight", function(self) - if self.exterior:GetData("flight") and TARDIS:GetSetting("flight-internalsound") + if self:GetData("flight") and TARDIS:GetSetting("flight-internalsound") and TARDIS:GetSetting("sound") then if self.flightsound and self.flightsound:IsPlaying() then @@ -30,14 +48,13 @@ ENT:AddHook("Think", "flight", function(self) self.flightsound:ChangePitch(95+p,0.1) self.flightsound:ChangeVolume(0.4) - if self.flightsounddamaged ~= self.exterior:GetData("health-warning",false) - then + if IsFlightSoundWrong(self) then self.flightsound:Stop() - ChooseFlightSound(self) + self:ChooseFlightSound() self.flightsound:Play() end else - ChooseFlightSound(self) + self:ChooseFlightSound() self.flightsound:Play() end elseif self.flightsound then diff --git a/lua/entities/gmod_tardis_interior/modules/cl_render.lua b/lua/entities/gmod_tardis_interior/modules/cl_render.lua index be9885e26..b5d9c5539 100644 --- a/lua/entities/gmod_tardis_interior/modules/cl_render.lua +++ b/lua/entities/gmod_tardis_interior/modules/cl_render.lua @@ -1,6 +1,6 @@ -- Rendering override -local function predraw_o(self) +local function predraw_o(self, part) if not TARDIS:GetSetting("lightoverride-enabled") then return end local lo = self.metadata.Interior.LightOverride if not lo then return end @@ -8,8 +8,24 @@ local function predraw_o(self) local power = self:GetPower() render.SuppressEngineLighting(true) + local br = power and lo.basebrightness or lo.nopowerbrightness - render.ResetModelLighting(br, br, br) + local col = power and lo.basebrightnessRGB or lo.nopowerbrightnessRGB + + local parts_table = power and lo.parts or lo.parts_nopower + + if part and parts_table and parts_table[part.ID] then + local part_br = parts_table[part.ID] + if istable(part_br) then + render.ResetModelLighting(part_br[1], part_br[2], part_br[3]) + else + render.ResetModelLighting(part_br, part_br, part_br) + end + elseif col then + render.ResetModelLighting(col[1], col[2], col[3]) + else + render.ResetModelLighting(br, br, br) + end --render.SetLightingMode(1) local light = self.light_data.main @@ -18,7 +34,7 @@ local function predraw_o(self) --because for some reason SOMEONE OUT THERE didn't define a light. local lights = self.light_data.extra - local warning = self:GetData("health-warning", false) + local warning = self:GetData("warning", false) local tab={} diff --git a/lua/entities/gmod_tardis_interior/modules/cl_tips.lua b/lua/entities/gmod_tardis_interior/modules/cl_tips.lua index a32413ad6..0439b0271 100644 --- a/lua/entities/gmod_tardis_interior/modules/cl_tips.lua +++ b/lua/entities/gmod_tardis_interior/modules/cl_tips.lua @@ -29,6 +29,11 @@ function ENT:InitializeTips(style_name) for setting,value in pairs(interior_tip) do tip[setting]=value end + + if TARDIS.debug_tips_show_all then + tip.text = " " + end + if not tip.text then if tip.part then local part = TARDIS:GetRegisteredPart(tip.part) @@ -42,7 +47,7 @@ function ENT:InitializeTips(style_name) end if part.Control then - local control = TARDIS:GetControl(part.Control) + local control = TARDIS:GetControl(part.Control, self) if control and control.tip_text then tip.text = control.tip_text else @@ -57,7 +62,7 @@ function ENT:InitializeTips(style_name) end end if tip.control then - local control = TARDIS:GetControl(tip.control) + local control = TARDIS:GetControl(tip.control, self) if control and control.tip_text then tip.text = control.tip_text else @@ -179,15 +184,17 @@ hook.Add("HUDPaint", "TARDIS-DrawTips", function() end local part = tip.part and interior:GetPart(tip.part) - local partok = IsValid(part) - local shoulddraw = TARDIS:GetSetting("tips_show_all") or tip:GetHighlight() or (partok and part:BeingLookedAtByLocalPlayer()) - local pos = interior:LocalToWorld(tip.pos or Vector(0,0,0)) + local untraceable = part and IsValid(part) and part.scale + local shoulddraw = tip:GetHighlight() or TARDIS:GetSetting("tips_show_all") or untraceable + local lookedat = part and IsValid(part) and part:BeingLookedAtByLocalPlayer() + + local pos = interior:LocalToWorld(tip.pos or (IsValid(part) and part.pos) or Vector(0,0,0)) local dist = pos:Distance(player_pos) - if dist <= view_range_max and partok and shoulddraw then + if (shoulddraw and dist <= view_range_max) or lookedat then surface.SetFont(tip.font) local alpha = tip.colors.current.background.a - if dist > view_range_min then + if not lookedat and dist > view_range_min then local normalised = 1 - ((dist - view_range_min) / (view_range_max - view_range_min)) alpha = (tip.colors.current.background.a) * normalised end diff --git a/lua/entities/gmod_tardis_interior/modules/libraries/sh_data.lua b/lua/entities/gmod_tardis_interior/modules/libraries/sh_data.lua index b0caf70ce..c04bf2be5 100644 --- a/lua/entities/gmod_tardis_interior/modules/libraries/sh_data.lua +++ b/lua/entities/gmod_tardis_interior/modules/libraries/sh_data.lua @@ -7,11 +7,11 @@ if SERVER then end function ENT:SetData(k,v,network) - return self.exterior:SetData(k, v, network) + return IsValid(self.exterior) and self.exterior:SetData(k, v, network) end function ENT:GetData(k,default) - return self.exterior:GetData(k, default) + return IsValid(self.exterior) and self.exterior:GetData(k, default) end function ENT:ClearData() diff --git a/lua/entities/gmod_tardis_interior/modules/sh_cloisterbells.lua b/lua/entities/gmod_tardis_interior/modules/sh_cloisterbells.lua index 579eaa521..0b2d142e9 100644 --- a/lua/entities/gmod_tardis_interior/modules/sh_cloisterbells.lua +++ b/lua/entities/gmod_tardis_interior/modules/sh_cloisterbells.lua @@ -17,6 +17,12 @@ if CLIENT then end end) + ENT:AddHook("ShouldTurnOffCloisters", "handbrake", function(self) + if self.exterior:GetHandbrake() then + return true + end + end) + ENT:AddHook("Think", "cloistersound", function(self) local shouldon=self:CallHook("ShouldTurnOnCloisters") local shouldoff=self:CallHook("ShouldTurnOffCloisters") @@ -44,6 +50,6 @@ function ENT:ToggleCloisters() self:SetCloisters(not self:GetData("cloisters",false)) end -ENT:AddHook("HealthWarningToggled","cloisters",function(self, on) +ENT:AddHook("WarningToggled","cloisters",function(self, on) self:SetCloisters(on) end) \ No newline at end of file diff --git a/lua/entities/gmod_tardis_interior/modules/sh_interior_lights.lua b/lua/entities/gmod_tardis_interior/modules/sh_interior_lights.lua index 946dd52c3..5a8f0a318 100644 --- a/lua/entities/gmod_tardis_interior/modules/sh_interior_lights.lua +++ b/lua/entities/gmod_tardis_interior/modules/sh_interior_lights.lua @@ -11,6 +11,9 @@ TARDIS.debug_lamps_enabled = GetConVar("tardis2_debug_lamps"):GetBool() local function ParseLightTable(lt, interior, default_falloff) if SERVER then return end + + if not lt then return end + lt.falloff = lt.falloff or default_falloff -- default falloff values were taken from cl_render.lua::predraw_o @@ -85,12 +88,38 @@ local function ParseLightTable(lt, interior, default_falloff) end if CLIENT then + local function MergeLightTable(tbl, base) + local new_table = TARDIS:CopyTable(base) + if not tbl then return new_table end + + new_table.NoLO = nil + new_table.NoExtra = nil + new_table.NoExtraNoLO = nil + + table.Merge(new_table, tbl) + return new_table + end + function ENT:LoadLights() - local light = self.metadata.Interior.Light - local lights = self.metadata.Interior.Lights + local noLO = not TARDIS:GetSetting("lightoverride-enabled") + local noExtra = not TARDIS:GetSetting("extra-lights") + + local int_metadata = self.metadata.Interior + local light = int_metadata.Light + local lights = int_metadata.Lights + + local light_alt + + if noLO and noExtra then + light_alt = light.NoExtraNoLO or light.NoLO + elseif noLO then + light_alt = light.NoLO + elseif noExtra then + light_alt = light.NoExtra + end self.light_data = { - main = TARDIS:CopyTable(light), + main = MergeLightTable(light_alt, light), extra = {}, } ParseLightTable(self.light_data.main, self, 20) @@ -98,7 +127,11 @@ if CLIENT then if not lights then return end for k,v in pairs(lights) do if v and istable(v) then - self.light_data.extra[k] = TARDIS:CopyTable(v) + local v_alt + if noLO then + v_alt = v.NoLO + end + self.light_data.extra[k] = MergeLightTable(v_alt, v) ParseLightTable(self.light_data.extra[k], self, 10) end end @@ -108,13 +141,18 @@ if CLIENT then self:LoadLights() end) + ENT:AddHook("SettingChanged", "lights", function(self, id, val) + if id ~= "lightoverride-enabled" and id ~= "extra-lights" then return end + self:LoadLights() + end) + function ENT:DrawLight(id,light) if self:CallHook("ShouldDrawLight",id,light)==false then return end local dlight = DynamicLight(id, true) if not dlight then return end - local warning = self:GetData("health-warning", false) + local warning = self:GetData("warning", false) local power = self:GetPower() if not power and warning then @@ -271,7 +309,7 @@ if CLIENT then local function SelectLampTable(self, lmp) local state = self:GetData("light_state") - local warning = self:GetData("health-warning", false) + local warning = self:GetData("warning", false) local power = self:GetPower() local l = lmp @@ -326,7 +364,7 @@ if CLIENT then ENT:AddHook("PowerToggled", "lamps", ReplaceLamps) - ENT:AddHook("HealthWarningToggled", "lamps", ReplaceLamps) + ENT:AddHook("WarningToggled", "lamps", ReplaceLamps) function ENT:RunLampUpdate() @@ -472,6 +510,9 @@ if SERVER then for k,v in pairs(lamps) do if v then + if not v.color then + v.color = Color(255,255,255) + end local lamp = MakeLamp(nil, -- creator v.color.r, v.color.g, v.color.b, KEY_NONE, -- toggle key @@ -576,9 +617,11 @@ if CLIENT then ENT:AddHook("SlowThink", "lights", function(self) local pos = self:GetPos() if self.lights_lastpos == pos then return end + if self.lights_lastpos ~= nil then + self:LoadLights() + self:LoadLamps() + self:CreateLamps() + end self.lights_lastpos = pos - self:LoadLights() - self:LoadLamps() - self:CreateLamps() end) end \ No newline at end of file diff --git a/lua/entities/gmod_tardis_interior/modules/sh_interior_screens.lua b/lua/entities/gmod_tardis_interior/modules/sh_interior_screens.lua index 86206d839..cc13443d4 100644 --- a/lua/entities/gmod_tardis_interior/modules/sh_interior_screens.lua +++ b/lua/entities/gmod_tardis_interior/modules/sh_interior_screens.lua @@ -6,13 +6,13 @@ ENT:AddHook("Initialize", "screens-toggle", function(self) end) ENT:AddHook("CanToggleScreens", "power", function(self) - if not self.exterior:GetData("power-state") then + if not self:GetData("power-state") then return false end end) ENT:AddHook("CanEnableScreens", "power", function(self) - if not self.exterior:GetData("power-state") then + if not self:GetData("power-state") then return false end end) diff --git a/lua/entities/gmod_tardis_interior/modules/sh_parts.lua b/lua/entities/gmod_tardis_interior/modules/sh_parts.lua index 0df08a104..835ae392e 100644 --- a/lua/entities/gmod_tardis_interior/modules/sh_parts.lua +++ b/lua/entities/gmod_tardis_interior/modules/sh_parts.lua @@ -22,6 +22,12 @@ function ENT:GetParts() return self.parts end +function ENT:SetPartInvisible(id, invisible) + local invisible_parts = self:GetData("invisible_int_parts", {}) + invisible_parts[id] = invisible or false + self:SetData("invisible_int_parts", invisible_parts, true) +end + if CLIENT then -- Special rendering for transparent parts @@ -34,4 +40,12 @@ if CLIENT then end end end) + + ENT:OnMessage("part_use", function(self,data,ply) + local part = data[1] + + if IsValid(part) and part.Use then + part:Use(unpack(data, 2)) + end + end) end diff --git a/lua/entities/gmod_tardis_interior/modules/sh_power.lua b/lua/entities/gmod_tardis_interior/modules/sh_power.lua index c36305290..5f2e5ce9d 100644 --- a/lua/entities/gmod_tardis_interior/modules/sh_power.lua +++ b/lua/entities/gmod_tardis_interior/modules/sh_power.lua @@ -20,6 +20,12 @@ if SERVER then self.exterior:SetPower(on) end + ENT:AddHook("PostInitialize","power-init", function(self) + if self:GetData("power_disabled_first") then + self:SetPower(false) + end + end) + ENT:AddHook("PowerToggled", "interior-power", function(self, state) self:SendMessage("power-toggled", {state} ) end) @@ -68,7 +74,7 @@ else end) ENT:AddHook("ShouldDrawLight", "interior-lights-blinking", function(self) - if self.exterior:GetData("interior-lights-blinking") then + if self:GetData("interior-lights-blinking") then return (math.Round(3 * CurTime()) % 2 ~= 0) end end) diff --git a/lua/entities/gmod_tardis_interior/modules/sh_vortex.lua b/lua/entities/gmod_tardis_interior/modules/sh_vortex.lua index 09d6b6dc8..3a480ecc8 100644 --- a/lua/entities/gmod_tardis_interior/modules/sh_vortex.lua +++ b/lua/entities/gmod_tardis_interior/modules/sh_vortex.lua @@ -1,13 +1,13 @@ -- Vortex ENT:AddHook("ShouldTracePortal", "vortex", function(self,portal) - if self.exterior:GetData("vortex",false) and portal==self.portals.interior then + if self:GetData("vortex",false) and portal==self.portals.interior then return false end end) ENT:AddHook("ShouldTeleportPortal", "vortex", function(self,portal) - if self.exterior:GetData("vortex",false) and portal==self.portals.interior then + if self:GetData("vortex",false) and portal==self.portals.interior then return false end end) \ No newline at end of file diff --git a/lua/entities/gmod_tardis_part/init.lua b/lua/entities/gmod_tardis_part/init.lua index cfe21ae7d..c9c8d11de 100644 --- a/lua/entities/gmod_tardis_part/init.lua +++ b/lua/entities/gmod_tardis_part/init.lua @@ -18,6 +18,8 @@ function ENT:SetCollide(collide, notrace) end end +-- this is deprecated; it's better to use ENT:SetInvisible() +-- some extensions still use color-based part invisibility, so we should not change this function ENT:SetVisible(visible) if visible then if self.pre_invis_color then diff --git a/lua/entities/gmod_tardis_part/shared.lua b/lua/entities/gmod_tardis_part/shared.lua index ea66fbffb..d048bb074 100644 --- a/lua/entities/gmod_tardis_part/shared.lua +++ b/lua/entities/gmod_tardis_part/shared.lua @@ -19,7 +19,7 @@ function ENT:Initialize() end function ENT:SetupDataTables() self:NetworkVar("Bool",0,"On") - self:SetOn(false) + self:SetOn(self.EnabledOnStart or false) end hook.Add("PhysgunPickup", "tardis-part", function(ply,ent) @@ -39,9 +39,31 @@ hook.Add("CanDrive", "tardis-part", function(ply,ent) end) function ENT:SetData(k,v,network) - return self.exterior and self.exterior:SetData(k, v, network) + return IsValid(self.exterior) and self.exterior:SetData(k, v, network) end function ENT:GetData(k,default) - return self.exterior and self.exterior:GetData(k, default) + return IsValid(self.exterior) and self.exterior:GetData(k, default) end + +hook.Add("BodygroupChanged", "tardis_parts", function(ent,bodygroup,value) + if ent.TardisPart then + if ent.OnBodygroupChanged then + ent.OnBodygroupChanged(ent, bodygroup, value) + end + if IsValid(ent.parent) then + ent.parent:CallHook("PartBodygroupChanged", ent, bodygroup, value) + end + end +end) + +function ENT:SetInvisible(invisible) + return self.parent:SetPartInvisible(self.ID, invisible) +end + +function ENT:IsInvisible() + local inv_parts = self:GetData("invisible_int_parts") + + if not inv_parts then return false end + return inv_parts[self.ID] +end \ No newline at end of file diff --git a/lua/entities/gmod_time_distortion_generator/init.lua b/lua/entities/gmod_time_distortion_generator/init.lua index b00908ce4..e903a93ad 100644 --- a/lua/entities/gmod_time_distortion_generator/init.lua +++ b/lua/entities/gmod_time_distortion_generator/init.lua @@ -32,7 +32,7 @@ function ENT:Initialize() WireLib.CreateSpecialInputs( self,inNames,inTypes) Wire_CreateOutputs(self,{"Active","Radius","Health"}) - + Wire_TriggerOutput(self,"Radius",self.Radius) Wire_TriggerOutput(self,"Health",self.EntHealth) end @@ -57,7 +57,7 @@ end function ENT:Repair(repair) if self.EntHealth >= 0 then local hp = self.EntHealth + repair - + if self.Broken == true and hp >= 0 then self:SetColor(Color(255, 255, 255, self:GetColor().a)) self.Broken = false @@ -102,7 +102,7 @@ function ENT:TurnOn(active) self.FlyTime = CurTime() elseif self.On == true then self.FlyTime = nil - + self.On = false self:SetEnabled(false) self:TriggerWire("Active",0) @@ -191,11 +191,11 @@ function ENT:OnTakeDamage(damage) if self.Broken then return end local dmg = damage:GetDamage() - + self.EntHealth = math.Clamp(self.EntHealth - dmg,0,self.EntMaxHealth) self:TriggerWire("Health",self.EntHealth) - + if self.EntHealth <= 0 then self:Break() end diff --git a/lua/entities/gmod_wire_expression2/core/custom/cl_tardis.lua b/lua/entities/gmod_wire_expression2/core/custom/cl_tardis.lua new file mode 100644 index 000000000..46b044214 --- /dev/null +++ b/lua/entities/gmod_wire_expression2/core/custom/cl_tardis.lua @@ -0,0 +1,46 @@ +E2Helper.Descriptions["tardisGet"] = "Returns exterior shell of a tardis when used on an occupant, the exterior itself, or the interior." +E2Helper.Descriptions["tardisDemat"] = "Initiates dematerialisation, takes vector pos and optional angle rot, returns 1 if success or 0 if failure." +E2Helper.Descriptions["tardisPhase"] = "Toggles or sets phase, returns 1 if success or 0 if failure." +E2Helper.Descriptions["tardisFlightmode"] = "Toggles or sets flightmode, returns 1 if success or 0 if failure." +E2Helper.Descriptions["tardisLock"] = "Toggles or sets the lock it, returns 1 if success or 0 if failure." +E2Helper.Descriptions["tardisPhyslock"] = "Toggles or sets physlock, returns 1 if success or 0 if failure." +E2Helper.Descriptions["tardisPower"] = "Toggles or sets power, returns 1 if success or 0 if failure." +E2Helper.Descriptions["tardisIsomorph"] = "Toggles or sets isomorphic security systems, returns 1 if success or 0 if failure." +E2Helper.Descriptions["tardisLongflight"] = "Toggles or sets long-flight, returns 1 if success or 0 if failure." +E2Helper.Descriptions["tardisMaterialise"] = "Rematerialises, returns 1 if success or 0 if failure." +E2Helper.Descriptions["tardisSelfrepair"] = "Toggles or sets self-repair, returns 1 if success or 0 if failure." +E2Helper.Descriptions["tardisTrack"] = "Sets tracking entity, takes entity ent, returns 1 if success or 0 if failure." +E2Helper.Descriptions["tardisSpinmode"] = "Gets or sets spinmode, optionally takes number spinmode (-1=anti-clockwise|0=none|1=clockwise), returns spinmode as number." +E2Helper.Descriptions["tardisSetDestination"] = "Sets destination if in vortex, takes vector pos and optional angle rot, returns 1 if success or 0 if failure." +E2Helper.Descriptions["tardisFastReturn"] = "Returns TARDIS to its previous takeoff position, returns 1 if success or 0 if failure." +E2Helper.Descriptions["tardisHADS"] = "Toggles or sets HADS, returns 1 if success or 0 if failure." +E2Helper.Descriptions["tardisFastDemat"] = "Quickly dematerialises TARDIS, returns 1 if success or 0 if failure." +E2Helper.Descriptions["tardisDoors"] = "Toggles or sets the doors, returns 1 if success or 0 if failure." +E2Helper.Descriptions["tardisHandbrake"] = "Toggles or sets handbrake, returns 1 if success or 0 if failure." +E2Helper.Descriptions["tardisMoving"] = "Returns 1 if teleporting or 0 if not teleporting." +E2Helper.Descriptions["tardisVisible"] = "Returns 1 if visible or 0 if invisible." +E2Helper.Descriptions["tardisFlying"] = "Returns 1 if flying or 0 if not flying." +E2Helper.Descriptions["tardisLocked"] = "Returns 1 if locked or 0 if not locked." +E2Helper.Descriptions["tardisPhyslocked"] = "Returns 1 if physlocked or 0 if not physlocked." +E2Helper.Descriptions["tardisPowered"] = "Returns 1 if powered or 0 if not powered." +E2Helper.Descriptions["tardisIsomorphic"] = "Returns 1 if isomorphic security systems are enabled or 0 if isomorphic security systems are disabled." +E2Helper.Descriptions["tardisLongflighted"] = "Returns 1 if long-flight is enabled or 0 if long-flight is disabled." +E2Helper.Descriptions["tardisSelfrepairing"] = "Returns 1 if self-repairing or 0 if not self-repairing." +E2Helper.Descriptions["tardisHealth"] = "Returns tardis health." +E2Helper.Descriptions["tardisLastPos"] = "Returns the vector of where the TARDIS last dematerialised from." +E2Helper.Descriptions["tardisLastAng"] = "Returns the angle of where the TARDIS last dematerialised from." +E2Helper.Descriptions["tardisTracking"] = "Returns the entity the TARDIS is tracking." +E2Helper.Descriptions["tardisInVortex"] = "Returns 1 if in vortex, or 0 if not." +E2Helper.Descriptions["tardisIsHADS"] = "Returns 1 if HADS is enabled, or 0 if not." +E2Helper.Descriptions["tardisPilot"] = "Returns the pilot if valid." +E2Helper.Descriptions["tardisOpened"] = "Returns 1 if the TARDIS doors are opened, 0 if not." +E2Helper.Descriptions["tardisBraking"] = "Returns 1 if the Handbrake is enabled, 0 if not." +E2Helper.Descriptions["tardisSelfrepairTime"] = "Returns the time left on the TARDIS self repair." +E2Helper.Descriptions["tardisRemoveArtronEnergy"] = "Removes Artron Energy from the TARDIS. Returns the TARDISes new Artron Energy amount." +E2Helper.Descriptions["tardisMaxArtronEnergy"] = "Returns the current Max Artron Energy for the TARDIS." +E2Helper.Descriptions["tardisArtronEnergy"] = "Returns how much Artron Energy the TARDIS has." +E2Helper.Descriptions["tardisShields"] = "Toggles or sets the Shields, returns 1 if success or 0 if failure." +E2Helper.Descriptions["tardisShieldsOn"] = "Returns if the Shields are on." +E2Helper.Descriptions["tardisShieldsLevel"] = "Returns the Shields power level." +E2Helper.Descriptions["tardisShieldsPercent"] = "Returns a percentage of how much Shield power the TARDIS has." +E2Helper.Descriptions["tardisShieldsMax"] = "Return the max amount of Shield power the TARDIS can have." \ No newline at end of file diff --git a/lua/entities/gmod_wire_expression2/core/custom/cl_tardis2.lua b/lua/entities/gmod_wire_expression2/core/custom/cl_tardis2.lua deleted file mode 100644 index d5726add2..000000000 --- a/lua/entities/gmod_wire_expression2/core/custom/cl_tardis2.lua +++ /dev/null @@ -1,38 +0,0 @@ -E2Helper.Descriptions["tardisGet"] = "Returns exterior shell of a tardis when used on an occupant, the exterior itself, or the interior." -E2Helper.Descriptions["tardisDemat"] = "Initiates dematerialisation, takes vector pos and optional angle rot, returns 1 if success or 0 if failure." -E2Helper.Descriptions["tardisPhase"] = "Toggles or sets phase, returns 1 if success or 0 if failure." -E2Helper.Descriptions["tardisFlightmode"] = "Toggles or sets flightmode, returns 1 if success or 0 if failure." -E2Helper.Descriptions["tardisLock"] = "Toggles or sets the lock it, returns 1 if success or 0 if failure." -E2Helper.Descriptions["tardisPhyslock"] = "Toggles or sets physlock, returns 1 if success or 0 if failure." -E2Helper.Descriptions["tardisPower"] = "Toggles or sets power, returns 1 if success or 0 if failure." -E2Helper.Descriptions["tardisIsomorph"] = "Toggles or sets isomorphic security systems, returns 1 if success or 0 if failure." -E2Helper.Descriptions["tardisLongflight"] = "Toggles or sets long-flight, returns 1 if success or 0 if failure." -E2Helper.Descriptions["tardisMaterialise"] = "Rematerialises, returns 1 if success or 0 if failure." -E2Helper.Descriptions["tardisSelfrepair"] = "Toggles or sets self-repair, returns 1 if success or 0 if failure." -E2Helper.Descriptions["tardisTrack"] = "Sets tracking entity, takes entity ent, returns 1 if success or 0 if failure." -E2Helper.Descriptions["tardisSpinmode"] = "Sets spinmode, takes number spinmode (-1=anti-clockwise|0=none|1=clockwise), returns spinmode as number." -E2Helper.Descriptions["tardisSetDestination"] = "Sets destination if in vortex, takes vector pos and optional angle rot, returns 1 if success or 0 if failure." -E2Helper.Descriptions["tardisFastReturn"] = "Returns TARDIS to its previous takeoff position, returns 1 if success or 0 if failure." -E2Helper.Descriptions["tardisHADS"] = "Toggles or sets HADS, returns 1 if success or 0 if failure." -E2Helper.Descriptions["tardisFastDemat"] = "Quickly dematerialises TARDIS, returns 1 if success or 0 if failure." -E2Helper.Descriptions["tardisDoors"] = "Toggles or sets the doors, returns 1 if success or 0 if failure." -E2Helper.Descriptions["tardisHandbrake"] = "Toggles or sets handbrake, returns 1 if success or 0 if failure." -E2Helper.Descriptions["tardisMoving"] = "Returns 1 if teleporting or 0 if not teleporting." -E2Helper.Descriptions["tardisVisible"] = "Returns 1 if visible or 0 if invisible." -E2Helper.Descriptions["tardisFlying"] = "Returns 1 if flying or 0 if not flying." -E2Helper.Descriptions["tardisLocked"] = "Returns 1 if locked or 0 if not locked." -E2Helper.Descriptions["tardisPhyslocked"] = "Returns 1 if physlocked or 0 if not physlocked." -E2Helper.Descriptions["tardisPowered"] = "Returns 1 if powered or 0 if not powered." -E2Helper.Descriptions["tardisIsomorphic"] = "Returns 1 if isomorphic security systems are enabled or 0 if isomorphic security systems are disabled." -E2Helper.Descriptions["tardisLongflighted"] = "Returns 1 if long-flight is enabled or 0 if long-flight is disabled." -E2Helper.Descriptions["tardisSelfrepairing"] = "Returns 1 if self-repairing or 0 if not self-repairing." -E2Helper.Descriptions["tardisHealth"] = "Returns tardis health." -E2Helper.Descriptions["tardisLastPos"] = "Returns the vector of where the TARDIS last dematerialised from." -E2Helper.Descriptions["tardisLastAng"] = "Returns the angle of where the TARDIS last dematerialised from." -E2Helper.Descriptions["tardisTracking"] = "Returns the entity the TARDIS is tracking." -E2Helper.Descriptions["tardisInVortex"] = "Returns 1 if in vortex, or 0 if not." -E2Helper.Descriptions["tardisIsHADS"] = "Returns 1 if HADS is enabled, or 0 if not." -E2Helper.Descriptions["tardisPilot"] = "Returns the pilot if valid." -E2Helper.Descriptions["tardisOpened"] = "Returns 1 if the TARDIS doors are opened, 0 if not." -E2Helper.Descriptions["tardisBraking"] = "Returns 1 if the Handbrake is enabled, 0 if not." -E2Helper.Descriptions["tardisSelfrepairTime"] = "Returns the time left on the TARDIS self repair." \ No newline at end of file diff --git a/lua/entities/gmod_wire_expression2/core/custom/tardis.lua b/lua/entities/gmod_wire_expression2/core/custom/tardis.lua new file mode 100644 index 000000000..0b440aebd --- /dev/null +++ b/lua/entities/gmod_wire_expression2/core/custom/tardis.lua @@ -0,0 +1,308 @@ +E2Lib.RegisterExtension("tardis", true) + +local function getTardis(ent) + if not IsValid(ent) then return end + local class = ent:GetClass() + if class == "gmod_tardis" or class == "sent_tardis" then + return ent + elseif class == "sent_tardis_interior" and IsValid(ent.tardis) then + return ent.tardis + elseif (class == "gmod_tardis_interior" or ent.Base == "gmod_tardis_part") and IsValid(ent.exterior) then + return ent.exterior + elseif ent:IsPlayer() and IsValid(ent.tardis) then + return ent.tardis.exterior or ent.tardis + else + return NULL + end +end + +local function HandleE2(ent, type, name, e2, ...) + local tardis = getTardis(ent) + if IsValid(tardis) then + if type == "Setter" and tardis:CheckSecurity(e2.player) == false then + TARDIS:ErrorMessage(e2.player,"Expression2.Security.UseDenied") + else + return tardis:HandleE2(name, e2, ...) + end + else + error(TARDIS:GetPhrase("Expression2.Error"),0) + end +end + +e2function entity entity:tardisGet() + return getTardis(this) +end + +--[[ + ╔═══════════════════╗ + ║Setters and actions║ + ╚═══════════════════╝ +]] + +--Teleport + +e2function number entity:tardisDemat(vector pos, angle rot) + return HandleE2(this, "Setter", "Demat", self, pos, rot) +end + +e2function number entity:tardisDemat(vector pos) + return HandleE2(this, "Setter", "Demat", self, pos) +end + +e2function number entity:tardisFastDemat() + return HandleE2(this, "Setter", "FastDemat", self) +end + +e2function number entity:tardisMaterialise() + return HandleE2(this, "Setter", "Mat", self) +end + +e2function number entity:tardisSetDestination(vector pos, angle ang) + return HandleE2(this, "Setter", "SetDestination", self, pos, ang) +end + +e2function number entity:tardisSetDestination(vector pos) + return HandleE2(this, "Setter", "SetDestination", self, pos) +end + +e2function number entity:tardisFastReturn() + return HandleE2(this, "Setter", "FastReturn", self) +end + +e2function number entity:tardisLongflight() + return HandleE2(this, "Setter", "Longflight", self) +end + +e2function number entity:tardisLongflight(on) + return HandleE2(this, "Setter", "SetLongflight", self, on) +end + +e2function number entity:tardisHADS() + return HandleE2(this, "Setter", "HADS", self) +end + +e2function number entity:tardisHADS(on) + return HandleE2(this, "Setter", "SetHADS", self, on) +end + +--Flight + +e2function number entity:tardisFlightmode(normal on) + return HandleE2(this, "Setter", "Flightmode", self, on) +end + +e2function number entity:tardisFlightmode() + return HandleE2(this, "Setter", "Flightmode", self) +end + +e2function number entity:tardisPhyslock() + return HandleE2(this, "Setter", "Physlock", self) +end + +e2function number entity:tardisPhyslock(on) + return HandleE2(this, "Setter", "SetPhyslock", self, on) +end + +e2function number entity:tardisSpinmode(number spinmode) + return HandleE2(this, "Setter", "SetSpinmode", self, spinmode) +end + +e2function number entity:tardisTrack(entity ent) + return HandleE2(this, "Setter", "Track", self, ent) +end + +--Security + +e2function number entity:tardisLock() + return HandleE2(this, "Setter", "Lock", self) +end + +e2function number entity:tardisLock(on) + return HandleE2(this, "Setter", "SetLock", self, on) +end + +e2function number entity:tardisIsomorph() + return HandleE2(this, "Setter", "Isomorph", self) +end + +e2function number entity:tardisIsomorph(on) + return HandleE2(this, "Setter", "SetIsomorph", self, on) +end + +--Extra + +e2function number entity:tardisPower() + return HandleE2(this, "Setter", "Power", self) +end + +e2function number entity:tardisPower(on) + return HandleE2(this, "Setter", "SetPower", self, on) +end + +e2function number entity:tardisSelfrepair() + return HandleE2(this, "Setter", "Selfrepair", self) +end + +e2function number entity:tardisSelfrepair(on) + return HandleE2(this, "Setter", "SetSelfrepair", self, on) +end + +e2function number entity:tardisPhase() + return HandleE2(this, "Setter", "Phase", self) +end + +e2function number entity:tardisPhase(on) + return HandleE2(this, "Setter", "SetPhase", self, on) +end + +e2function number entity:tardisDoor(number open) + return HandleE2(this, "Setter", "SetDoors", self, open) +end + +e2function number entity:tardisDoor() + return HandleE2(this, "Setter", "ToggleDoors", self) +end + +e2function number entity:tardisHandbrake(on) + return HandleE2(this, "Setter", "SetBrake", self, on) +end + +e2function number entity:tardisHandbrake() + return HandleE2(this, "Setter", "ToggleBrake", self) +end + +e2function number entity:tardisRemoveArtronEnergy(number energy) + return HandleE2(this, "Setter", "RemoveArtron", self, energy) +end + +e2function number entity:tardisShields() + return HandleE2(this, "Setter", "ToggleShield", self) +end + +e2function number entity:tardisShields(number on) + return HandleE2(this, "Setter", "SetShield", self, on) +end + +--[[ + ╔════════════╗ + ║Data getters║ + ╚════════════╝ +]] + +e2function string entity:tardisGetData(string id) + return tostring(this:GetData(id,false)) +end + +--Teleport + +e2function number entity:tardisMoving() + return HandleE2(this, "Getter", "GetMoving", self) +end + +e2function number entity:tardisInVortex() + return HandleE2(this, "Getter", "GetInVortex", self) +end + +e2function number entity:tardisLongflighted() + return HandleE2(this, "Getter", "GetLongflight", self) +end + +e2function vector entity:tardisLastPos() + return HandleE2(this, "Getter", "LastPos", self) +end + +e2function angle entity:tardisLastAng() + return HandleE2(this, "Getter", "LastAng", self) +end + +e2function number entity:tardisIsHADS() + return HandleE2(this, "Getter", "GetHADS", self) +end + +--Flight + +e2function number entity:tardisFlying() + return HandleE2(this, "Getter", "GetFlying", self) +end + +e2function entity entity:tardisPilot() + return HandleE2(this, "Getter", "GetPilot", self) +end + +e2function number entity:tardisSpinmode() + return HandleE2(this, "Setter", "GetSpinmode", self) +end + +e2function entity entity:tardisTracking() + return HandleE2(this, "Getter", "GetTracking", self) +end + +e2function number entity:tardisPhyslocked() + return HandleE2(this, "Getter", "GetPhyslocked", self) +end + +--Health + +e2function number entity:tardisHealth() + return HandleE2(this, "Getter", "GetHealth", self) +end + +e2function number entity:tardisSelfrepairing() + return HandleE2(this, "Getter", "GetSelfrepairing", self) +end + +e2function number entity:tardisSelfrepairTime() + return HandleE2(this, "Getter", "GetRepairTime", self) +end + +--Security + +e2function number entity:tardisIsomorphic() + return HandleE2(this, "Getter", "GetIsomorphic", self) +end + +e2function number entity:tardisLocked() + return HandleE2(this, "Getter", "GetLocked", self) +end + +--Extra + +e2function number entity:tardisVisible() + return HandleE2(this, "Getter", "GetVisible", self) +end + +e2function number entity:tardisPowered() + return HandleE2(this, "Getter", "GetPowered", self) +end + +e2function number entity:tardisOpened() + return HandleE2(this, "Getter", "GetDoors", self) +end + +e2function number entity:tardisBraking() + return HandleE2(this, "Getter", "GetBrake", self) +end + +e2function number entity:tardisArtronEnergy() + return HandleE2(this, "Getter", "GetArtron", self) +end + +e2function number entity:tardisMaxArtronEnergy() + return HandleE2(this, "Getter", "GetMaxArtron", self) +end + +e2function number entity:tardisShieldsOn() + return HandleE2(this, "Getter", "GetShieldsOn", self) +end + +e2function number entity:tardisShieldsLevel() + return HandleE2(this, "Getter", "GetShieldsLevel", self) +end + +e2function number entity:tardisShieldsPercent() + return HandleE2(this, "Getter", "GetShieldsPercent", self) +end + +e2function number entity:tardisShieldsMax() + return HandleE2(this, "Getter", "GetShieldMax", self) +end \ No newline at end of file diff --git a/lua/entities/gmod_wire_expression2/core/custom/tardis2.lua b/lua/entities/gmod_wire_expression2/core/custom/tardis2.lua deleted file mode 100644 index 3235b7ffd..000000000 --- a/lua/entities/gmod_wire_expression2/core/custom/tardis2.lua +++ /dev/null @@ -1,268 +0,0 @@ -E2Lib.RegisterExtension("tardis", true) - -local function getTardis(ent) - if not IsValid(ent) then return end - local class = ent:GetClass() - if class == "gmod_tardis" or class == "sent_tardis" then - return ent - elseif class == "sent_tardis_interior" and IsValid(ent.tardis) then - return ent.tardis - elseif (class == "gmod_tardis_interior" or ent.Base == "gmod_tardis_part") and IsValid(ent.exterior) then - return ent.exterior - elseif ent:IsPlayer() and IsValid(ent.tardis) then - return ent.tardis.exterior or ent.tardis - else - return NULL - end -end - -local function HandleE2(ent, type, name, e2, ...) - local tardis = getTardis(ent) - if IsValid(tardis) then - if type == "Setter" and tardis:CheckSecurity(e2.player) == false then - TARDIS:ErrorMessage(e2.player,"Expression2.Security.UseDenied") - else - return tardis:HandleE2(name, e2, ...) - end - else - error(TARDIS:GetPhrase("Expression2.Error"),0) - end -end - -e2function entity entity:tardisGet() - return getTardis(this) -end - ---[[ - ╔═══════════════════╗ - ║Setters and actions║ - ╚═══════════════════╝ -]] - ---Teleport - -e2function number entity:tardisDemat(vector pos, angle rot) - return HandleE2(this, "Setter", "Demat", self, pos, rot) -end - -e2function number entity:tardisDemat(vector pos) - return HandleE2(this, "Setter", "Demat", self, pos) -end - -e2function number entity:tardisFastDemat() - return HandleE2(this, "Setter", "FastDemat", self) -end - -e2function number entity:tardisMaterialise() - return HandleE2(this, "Setter", "Mat", self) -end - -e2function number entity:tardisSetDestination(vector pos, angle ang) - return HandleE2(this, "Setter", "SetDestination", self, pos, ang) -end - -e2function number entity:tardisSetDestination(vector pos) - return HandleE2(this, "Setter", "SetDestination", self, pos) -end - -e2function number entity:tardisFastReturn() - return HandleE2(this, "Setter", "FastReturn", self) -end - -e2function number entity:tardisLongflight() - return HandleE2(this, "Setter", "Longflight", self) -end - -e2function number entity:tardisLongflight(on) - return HandleE2(this, "Setter", "SetLongflight", self, on) -end - -e2function number entity:tardisHADS() - return HandleE2(this, "Setter", "HADS", self) -end - -e2function number entity:tardisHADS(on) - return HandleE2(this, "Setter", "SetHADS", self, on) -end - ---Flight - -e2function number entity:tardisFlightmode(normal on) - return HandleE2(this, "Setter", "Flightmode", self, on) -end - -e2function number entity:tardisFlightmode() - return HandleE2(this, "Setter", "Flightmode", self) -end - -e2function number entity:tardisPhyslock() - return HandleE2(this, "Setter", "Physlock", self) -end - -e2function number entity:tardisPhyslock(on) - return HandleE2(this, "Setter", "SetPhyslock", self, on) -end - -e2function number entity:tardisSpinmode(number spinmode) - return HandleE2(this, "Setter", "Spinmode", self, spinmode) -end - -e2function number entity:tardisTrack(entity ent) - return HandleE2(this, "Setter", "Track", self, ent) -end - ---Security - -e2function number entity:tardisLock() - return HandleE2(this, "Setter", "Lock", self) -end - -e2function number entity:tardisLock(on) - return HandleE2(this, "Setter", "SetLock", self, on) -end - -e2function number entity:tardisIsomorph() - return HandleE2(this, "Setter", "Isomorph", self) -end - -e2function number entity:tardisIsomorph(on) - return HandleE2(this, "Setter", "SetIsomorph", self, on) -end - ---Extra - -e2function number entity:tardisPower() - return HandleE2(this, "Setter", "Power", self) -end - -e2function number entity:tardisPower(on) - return HandleE2(this, "Setter", "SetPower", self, on) -end - -e2function number entity:tardisSelfrepair() - return HandleE2(this, "Setter", "Selfrepair", self) -end - -e2function number entity:tardisSelfrepair(on) - return HandleE2(this, "Setter", "SetSelfrepair", self, on) -end - -e2function number entity:tardisPhase() - return HandleE2(this, "Setter", "Phase", self) -end - -e2function number entity:tardisPhase(on) - return HandleE2(this, "Setter", "SetPhase", self, on) -end - -e2function number entity:tardisDoor(number open) - return HandleE2(this, "Setter", "SetDoors", self, open) -end - -e2function number entity:tardisDoor() - return HandleE2(this, "Setter", "ToggleDoors", self) -end - -e2function number entity:tardisHandbrake(on) - return HandleE2(this, "Setter", "SetBrake", self, on) -end - -e2function number entity:tardisHandbrake() - return HandleE2(this, "Setter", "ToggleBrake", self) -end - ---[[ - ╔════════════╗ - ║Data getters║ - ╚════════════╝ -]] - -e2function string entity:tardisGetData(string id) - return tostring(this:GetData(id,false)) -end - ---Teleport - -e2function number entity:tardisMoving() - return HandleE2(this, "Getter", "GetMoving", self) -end - -e2function number entity:tardisInVortex() - return HandleE2(this, "Getter", "GetInVortex", self) -end - -e2function number entity:tardisLongflighted() - return HandleE2(this, "Getter", "GetLongflight", self) -end - -e2function vector entity:tardisLastPos() - return HandleE2(this, "Getter", "LastPos", self) -end - -e2function angle entity:tardisLastAng() - return HandleE2(this, "Getter", "LastAng", self) -end - -e2function number entity:tardisIsHADS() - return HandleE2(this, "Getter", "GetHADS", self) -end - ---Flight - -e2function number entity:tardisFlying() - return HandleE2(this, "Getter", "GetFlying", self) -end - -e2function entity entity:tardisPilot() - return HandleE2(this, "Getter", "GetPilot", self) -end - -e2function entity entity:tardisTracking() - return HandleE2(this, "Getter", "GetTracking", self) -end - -e2function number entity:tardisPhyslocked() - return HandleE2(this, "Getter", "GetPhyslocked", self) -end - ---Health - -e2function number entity:tardisHealth() - return HandleE2(this, "Getter", "GetHealth", self) -end - -e2function number entity:tardisSelfrepairing() - return HandleE2(this, "Getter", "GetSelfrepairing", self) -end - -e2function number entity:tardisSelfrepairTime() - return HandleE2(this, "Getter", "GetRepairTime", self) -end - ---Security - -e2function number entity:tardisIsomorphic() - return HandleE2(this, "Getter", "GetIsomorphic", self) -end - -e2function number entity:tardisLocked() - return HandleE2(this, "Getter", "GetLocked", self) -end - ---Extra - -e2function number entity:tardisVisible() - return HandleE2(this, "Getter", "GetVisible", self) -end - -e2function number entity:tardisPowered() - return HandleE2(this, "Getter", "GetPowered", self) -end - -e2function number entity:tardisOpened() - return HandleE2(this, "Getter", "GetDoors", self) -end - -e2function number entity:tardisBraking() - return HandleE2(this, "Getter", "GetBrake", self) -end \ No newline at end of file diff --git a/lua/matproxy/matproxy_tardis.lua b/lua/matproxy/matproxy_tardis.lua new file mode 100644 index 000000000..2dc5c1a8c --- /dev/null +++ b/lua/matproxy/matproxy_tardis.lua @@ -0,0 +1,121 @@ +matproxy.Add({ + name = "TARDIS_State", + + init = function(self, mat, values) + self.Texture = values.resulttexturevar + self.FrameNo = values.resultframevar + + self.Textures = table.Copy(values.textures) + self.FrameRates = table.Copy(values.framerates) + + self.AnimateTextures = {} + self.FrameDurations = {} + self.FrameNumbers = {} + + for k,v in pairs(self.Textures) do + local animate = (self.FrameRates[k] and self.FrameRates[k] > 0) + self.AnimateTextures[k] = animate + if animate then + self.FrameDurations[k] = 1.0 / self.FrameRates[k] + end + end + + self.next_frame_update = RealTime() + self.last_frame_update = RealTime() + self.current_frame = 0 + end, + + bind = function(self, mat, ent) + if not IsValid(ent) or not ent.TardisPart then return end + local ext = ent.exterior + if not IsValid(ext) then return end + + local function get_base_mat_name() + if not ext:GetPower() then + return "off" + elseif ext:GetData("demat_animation") then + return "demat" + elseif ext:GetData("mat_animation") then + return "mat" + elseif ext:GetData("failing-demat") then + return "demat_fail" + elseif ext:GetData("failing-mat") then + return "mat_fail" + elseif ext:GetData("demat-interrupted") then + return "interrupt" + elseif ext:GetHandbrake() then + return "handbrake" + elseif ext:IsTravelling() then + return "travel" + end + + return "idle" + end + + local m = get_base_mat_name() + + if ext:GetWarning() then + m = m .. "_warning" + end + + if not self.Textures or not self.Textures[m] then return end + + if mat:GetTexture(self.Texture):GetName() ~= self.Textures[m] then + mat:SetTexture(self.Texture, self.Textures[m]) + end + + if self.AnimateTextures[m] then + local num_frames = mat:GetTexture(self.Texture):GetNumAnimationFrames() + local time = RealTime() + + if time > self.next_frame_update then + local time_past = time - self.last_frame_update + local frames_past = math.floor(time_past / self.FrameDurations[m]) + + self.current_frame = (self.current_frame + frames_past) % num_frames + + self.last_frame_update = time + self.next_frame_update = time + self.FrameDurations[m] + end + else + self.current_frame = 0 + end + + if mat:GetInt(self.FrameNo) ~= self.current_frame then + mat:SetInt(self.FrameNo, self.current_frame) + end + end +}) + +local function matproxy_tardis_power_init(self, mat, values) + self.ResultTo = values.resultvar + self.on_var = values.onvar + self.off_var = values.offvar +end + +local function matproxy_tardis_power_bind(self, mat, ent) + if not IsValid(ent) or not IsValid(ent.exterior) or not ent.TardisPart then return end + + local var = ent.exterior:GetPower() and self.on_var or self.off_var + if not var then return end + + mat:SetVector(self.ResultTo, mat:GetVector(var)) +end + +matproxy.Add({ + name = "TARDIS_Power", + init = matproxy_tardis_power_init, + bind = matproxy_tardis_power_bind, +}) + +matproxy.Add({ + name = "TARDIS_Power2", + init = matproxy_tardis_power_init, + bind = matproxy_tardis_power_bind, +}) + +matproxy.Add({ + name = "TARDIS_Power3", + init = matproxy_tardis_power_init, + bind = matproxy_tardis_power_bind, +}) diff --git a/lua/matproxy/matproxy_tardis_default_int.lua b/lua/matproxy/matproxy_tardis_default_int.lua new file mode 100644 index 000000000..e89d5f607 --- /dev/null +++ b/lua/matproxy/matproxy_tardis_default_int.lua @@ -0,0 +1,140 @@ +matproxy.Add({ + name = "TARDIS_DefaultInt_EnvColor", + + init = function(self, mat, values) + self.ResultTo = values.resultvar + end, + + bind = function(self, mat, ent) + if not IsValid(ent) or not ent.TardisPart then return end + + local col = ent:GetData("default_int_env_color") or Color(0,200,255) + col = Color(col.r, col.g, col.b):ToVector() + + if ent.exterior and not ent.exterior:GetPower() then + col = col * 0.1 + end + + mat:SetVector( self.ResultTo, col); + end +}) + +matproxy.Add({ + name = "TARDIS_DefaultInt_FloorLightsColor", + + init = function(self, mat, values) + self.ResultTo = values.resultvar + end, + + bind = function(self, mat, ent) + if not IsValid(ent) or not ent.TardisPart then return end + + local col = ent:GetData("default_int_floor_lights_color") or Color(230,230,210) + + col = Color(col.r, col.g, col.b):ToVector() + + mat:SetVector( self.ResultTo, col); + end +}) + +matproxy.Add({ + name = "TARDIS_DefaultInt_RotorInColor", + + init = function(self, mat, values) + self.ResultTo = values.resultvar + end, + + bind = function(self, mat, ent) + if not IsValid(ent) or not ent.TardisPart then return end + + local col = ent:GetData("default_int_rotor_color") or Color(255,255,255) + + col = Color(col.r, col.g, col.b):ToVector() + mat:SetVector( self.ResultTo, col); + end +}) + +matproxy.Add({ + name = "TARDIS_DefaultInt_TelepathicsAddColor", + + init = function(self, mat, values) + self.ResultTo = values.resultvar + end, + + bind = function(self, mat, ent) + if not IsValid(ent) or not IsValid(ent.interior) or not ent.TardisPart then return end + + local time = ent.interior:GetData("default_telepathic_activation") + local timediff = time and (RealTime() - time) + + if time == nil then + time = LocalPlayer():GetTardisData("destination_last_exit") + timediff = time and (CurTime() - time) + end + + if time then + timediff = math.Clamp(math.abs(timediff), 0, 1) + mat:SetFloat(self.ResultTo, 0.7 * (1 - timediff)) + return + end + + mat:SetFloat(self.ResultTo, 0) + end +}) + + +matproxy.Add({ + name = "TARDIS_DefaultInt_SonicCharger", + init = function (self, mat, values) + self.ResultTo = values.resultvar + self.on_var = values.onvar + self.off_var = values.offvar + end, + bind = function(self, mat, ent) + if not IsValid(ent) or not IsValid(ent.exterior) or not ent.TardisPart then return end + + local var = ent:GetData("default_sonic_charger_active") and self.on_var or self.off_var + if not var then return end + + mat:SetVector(self.ResultTo, mat:GetVector(var)) + end, +}) + +matproxy.Add({ + name = "TARDIS_DefaultInt_ThrottleLights", + init = function (self, mat, values) + self.ResultTo = values.resultvar + self.on_var = values.onvar + self.off_var = values.offvar + + self.ResultTo2 = values.resultvar2 + self.on_var2 = values.onvar2 + self.off_var2 = values.offvar2 + + self.ResultTo3 = values.resultvar3 + self.on_var3 = values.onvar3 + self.off_var3 = values.offvar3 + end, + bind = function(self, mat, ent) + if not IsValid(ent) or not IsValid(ent.interior) or not ent.TardisPart or ent.ID ~= "default_throttle_lights" then + mat:SetVector(self.ResultTo, mat:GetVector(self.on_var)) + mat:SetVector(self.ResultTo2, mat:GetVector(self.on_var2)) + mat:SetVector(self.ResultTo3, mat:GetVector(self.on_var3)) + return + end + + local throttle = ent.interior:GetPart("default_throttle") + if not IsValid(throttle) then return end + + local on = not throttle:GetOn() + local var = on and self.on_var or self.off_var + local var2 = on and self.on_var2 or self.off_var2 + local var3 = on and self.on_var3 or self.off_var3 + if not var or not var2 or not var3 then return end + + mat:SetVector(self.ResultTo, mat:GetVector(var)) + mat:SetVector(self.ResultTo2, mat:GetVector(var2)) + mat:SetVector(self.ResultTo3, mat:GetVector(var3)) + end, +}) + diff --git a/lua/tardis/cl_binds.lua b/lua/tardis/cl_binds.lua index 51f429875..b9861a47c 100644 --- a/lua/tardis/cl_binds.lua +++ b/lua/tardis/cl_binds.lua @@ -1,6 +1,6 @@ -- Binds -function TARDIS:ChangeKeyBind(id,data) +function TARDIS:ChangeKeyBind(id,data,callback) local frame = vgui.Create("DFrame") frame:SetSkin(TARDIS:GetPhrase("Common.TARDIS")) frame:SetTitle(TARDIS:GetPhrase("Common.Interface")) @@ -10,6 +10,12 @@ function TARDIS:ChangeKeyBind(id,data) frame:SetDrawOnTop(true) frame:Center() frame:MakePopup() + frame.saved = false + frame.OnClose = function() + if callback then + callback(frame.saved) + end + end local section = "Binds.Sections."..(data.section or "Other") local name = section .. "." .. (data.name or id) @@ -51,7 +57,11 @@ function TARDIS:ChangeKeyBind(id,data) button:SetText(TARDIS:GetPhrase("Common.Save")) button:SetSize(frame:GetWide()*0.2, 40) button:SetPos(10,frame:GetTall()-button:GetTall()-10) - button.DoClick = function() TARDIS:SetKeyBind(id,keybutton.key) frame:Close() end + button.DoClick = function() + TARDIS:SetKeyBind(id,keybutton.key) + frame.saved = true + frame:Close() + end local reset = vgui.Create("DButton",frame) reset:SetText(TARDIS:GetPhrase("Common.Reset")) @@ -62,11 +72,22 @@ end function TARDIS:CreateBindOptionInterface(id, data) local button = vgui.Create("DButton") - local section = data.section or "Other" - button:SetText(TARDIS:GetPhrase("Binds.Sections."..section.."."..data.name or id)) - button.DoClick = function() - TARDIS:ChangeKeyBind(id,data) + button.DoClick = function(self) + TARDIS:ChangeKeyBind(id,data, function(saved) + if saved then + if IsValid(self) then + self:UpdateText() + end + end + end) + end + button.UpdateText = function(self) + local section = data.section or "Other" + local name = TARDIS:GetPhrase("Binds.Sections."..section.."."..data.name or id) + local bind = TARDIS:GetKeyName(TARDIS:GetBindKey(id)) + self:SetText(name.." ("..bind..")") end + button:UpdateText() button:SetTooltip(data.desc) return button end diff --git a/lua/tardis/cl_hud.lua b/lua/tardis/cl_hud.lua index 595cbe6ae..e3c203cf4 100644 --- a/lua/tardis/cl_hud.lua +++ b/lua/tardis/cl_hud.lua @@ -38,17 +38,31 @@ UpdateHudFont() local fgcolor = NamedColor("FgColor") local red = NamedColor("Caution") local bgcolor = NamedColor("BgColor") +local deadtextcolor = Color(20, 20, 20, 210) +local deadheadcolor = Color(200, 200, 200, 200) local health_icon = Material("vgui/tardis_health.png") -local energy_icon= Material("vgui/tardis_energy.png") +local energy_icon = Material("vgui/tardis_energy.png") +local shields_icon = Material("vgui/tardis_shields.png") -local function DrawNumber(icon_mat, value, red_level, x, y) - local bad = (value < red_level) +local function DrawNumber(icon_mat, value, x, y, bad_level, very_bad_level, dead_level) + local dead = (dead_level ~= nil) and (value <= dead_level) - local textcolor = fgcolor + local verybad = (very_bad_level ~= nil) and (value <= very_bad_level) and not dead + local bad = verybad or ((bad_level ~= nil) and (value <= bad_level)) and not dead - if bad then - local alpha = 255 * (0.5 + 0.1 * math.sin(CurTime() * 8)) - textcolor = Color(red.r, red.g, red.b, alpha) + local textcolor = bad and red or fgcolor + local alpha = 255 + + if verybad then + alpha = 255 * (0.6 + 0.1 * math.sin(CurTime() * 12)) + elseif bad then + alpha = 200 + end + + textcolor = Color(textcolor.r, textcolor.g, textcolor.b, alpha) + + if dead then + textcolor = deadtextcolor end surface.SetMaterial(icon_mat) @@ -58,7 +72,7 @@ local function DrawNumber(icon_mat, value, red_level, x, y) draw.DrawText( tostring(value), "TARDIS-HUD", x + number_offset, y, textcolor, TEXT_ALIGN_LEFT) - if bad then + if verybad then draw.DrawText( tostring(value), "TARDIS-HUD-Glow", x + number_offset - 2, y - 2, textcolor, TEXT_ALIGN_LEFT) end end @@ -70,25 +84,33 @@ hook.Add("HUDPaint", "TARDIS-HUD", function() if not IsValid(tardis) then return end local draw_health = TARDIS:GetSetting("health-enabled") - local draw_artron = TARDIS:GetSetting("artron_energy") + local draw_artron = TARDIS:GetSetting("artron_energy") and tardis:IsAlive() + local draw_shields = TARDIS:GetSetting("health-enabled") and tardis:GetShieldsOn() local count = 0 if draw_health then count = count + 1 end if draw_artron then count = count + 1 end + if draw_shields then count = count + 1 end if count == 0 then return end local yc = y draw.RoundedBox( 10, x, y, width, height + y_offset * count, bgcolor ) - draw.DrawText(TARDIS:GetPhrase("Common.TARDIS"), "HudDefault", x + x_offset, y + y_offset_3, fgcolor, TEXT_ALIGN_LEFT ) + local head_clr = tardis:IsAlive() and fgcolor or deadheadcolor + draw.DrawText(TARDIS:GetPhrase("Common.TARDIS"), "HudDefault", x + x_offset, y + y_offset_3, head_clr, TEXT_ALIGN_LEFT ) yc = yc + y_offset_2 if draw_health then - DrawNumber(health_icon, math.ceil(tardis:GetHealthPercent()), 20, x + x_offset, yc) + DrawNumber(health_icon, math.ceil(tardis:GetHealthPercent()), x + x_offset, yc, tardis.HEALTH_PERCENT_DAMAGED, tardis.HEALTH_PERCENT_BROKEN, 0) + yc = yc + y_offset + end + if draw_shields then + DrawNumber(shields_icon, math.ceil(tardis:GetShieldsPercent()), x + x_offset, yc, 10, 0) yc = yc + y_offset end if draw_artron then - DrawNumber(energy_icon, math.ceil(tardis:GetArtron()), TARDIS:GetSetting("artron_energy_max") * 0.1, x + x_offset, yc) + local artron_max = TARDIS:GetSetting("artron_energy_max") + DrawNumber(energy_icon, math.ceil(tardis:GetArtron()), x + x_offset, yc, nil, artron_max * 0.1) yc = yc + y_offset end end) diff --git a/lua/tardis/cl_menuoptions.lua b/lua/tardis/cl_menuoptions.lua index eb81d84eb..123bab3eb 100644 --- a/lua/tardis/cl_menuoptions.lua +++ b/lua/tardis/cl_menuoptions.lua @@ -94,6 +94,7 @@ hook.Add("PopulateToolMenu", "TARDIS2-PopulateToolMenu", function() v:RefreshVal() end end + RunConsoleCommand("spawnmenu_reload") end, TARDIS:GetPhrase("Common.Cancel"), nil ):SetSkin("TARDIS") @@ -129,6 +130,7 @@ hook.Add("PopulateToolMenu", "TARDIS2-PopulateToolMenu", function() TARDIS:GetPhrase("Common.OK"), function() TARDIS:ResetSectionSettings(nil) TARDIS:Message(LocalPlayer(), "MenuOptions.SectionReset", "Settings.Sections.Other") + RunConsoleCommand("spawnmenu_reload") end, TARDIS:GetPhrase("Common.Cancel"), nil ):SetSkin("TARDIS") diff --git a/lua/tardis/cl_savedlocations.lua b/lua/tardis/cl_savedlocations.lua index 107ee0939..1432e4345 100644 --- a/lua/tardis/cl_savedlocations.lua +++ b/lua/tardis/cl_savedlocations.lua @@ -1,20 +1,31 @@ TARDIS.Locations = TARDIS.Locations or {} -local filename = "tardis2_locations.txt" +local LOCATIONS_FILE = "tardis2_locations.txt" -function TARDIS:LoadLocations() - if file.Exists(filename,"DATA") then - TARDIS.Locations = TARDIS.von.deserialize(file.Read(filename,"DATA")) - elseif file.Exists("tardis_locations.txt", "DATA") then - TARDIS.Locations = TARDIS.von.deserialize(file.Read("tardis_locations.txt", "DATA")) - if not file.Exists(filename,"DATA") then - TARDIS:SaveLocations() +--[[ TODO: Add back in before release +TARDIS:AddMigration("locations-move", "2023.8.0", function(self) + if file.Exists("tardis2_locations.txt", "DATA") then + if file.Exists(LOCATIONS_FILE, "DATA") then + file.Delete(LOCATIONS_FILE) end + file.Rename("tardis2_locations.txt", LOCATIONS_FILE) + + self:LoadLocations() + elseif file.Exists("tardis_locations.txt", "DATA") and not file.Exists(LOCATIONS_FILE, "DATA") then + TARDIS.Locations = TARDIS.von.deserialize(file.Read("tardis_locations.txt", "DATA")) + TARDIS:SaveLocations() + end +end) +]] + +function TARDIS:LoadLocations() + if file.Exists(LOCATIONS_FILE, "DATA") then + TARDIS.Locations = TARDIS.von.deserialize(file.Read(LOCATIONS_FILE,"DATA")) end end function TARDIS:SaveLocations() - file.Write(filename, TARDIS.von.serialize(TARDIS.Locations)) + file.Write(LOCATIONS_FILE, TARDIS.von.serialize(TARDIS.Locations)) end function TARDIS:AddLocation(pos,ang,name,map) diff --git a/lua/tardis/controls/sh_control_exterior_light.lua b/lua/tardis/controls/sh_control_exterior_light.lua index f1216f681..be84337c0 100644 --- a/lua/tardis/controls/sh_control_exterior_light.lua +++ b/lua/tardis/controls/sh_control_exterior_light.lua @@ -2,7 +2,7 @@ TARDIS:AddControl({ id = "exterior_light", ext_func=function(self,ply) local y, n - if TARDIS:GetSetting("extlight-alwayson", self:GetCreator()) then + if TARDIS:GetSetting("extlight-alwayson", self) then y = "Common.Disabled.Lower" n = "Common.Enabled.Lower" else diff --git a/lua/tardis/controls/sh_control_float.lua b/lua/tardis/controls/sh_control_float.lua index 8a3d61c9e..6ca4cee1f 100644 --- a/lua/tardis/controls/sh_control_float.lua +++ b/lua/tardis/controls/sh_control_float.lua @@ -8,7 +8,7 @@ TARDIS:AddControl({ end end, serveronly=true, - power_independent = false, + power_independent = true, screen_button = { virt_console = true, mmenu = false, diff --git a/lua/tardis/controls/sh_control_shields.lua b/lua/tardis/controls/sh_control_shields.lua index 6d26e155b..390521a1e 100644 --- a/lua/tardis/controls/sh_control_shields.lua +++ b/lua/tardis/controls/sh_control_shields.lua @@ -1,13 +1,23 @@ TARDIS:AddControl({ id = "shields", ext_func=function(self,ply) - TARDIS:Message(ply, "Common.NotYetImplemented") + if self:ToggleShields() then + TARDIS:StatusMessage(ply, "Controls.Shields.Status", self:GetData("shields_on")) + else + TARDIS:ErrorMessage(ply, "Controls.Shields.FailedToggle") + end end, - clientonly=true, + serveronly=true, power_independent = false, screen_button = { - virt_console = false, + virt_console = true, mmenu = false, + popup_only = true, + toggle = true, + frame_type = {2, 1}, + text = "Controls.Shields", + pressed_state_data = "shields_on", + order = 1, }, tip_text = "Controls.Shields.Tip", }) \ No newline at end of file diff --git a/lua/tardis/controls/sh_control_teleport.lua b/lua/tardis/controls/sh_control_teleport.lua index 9581de50a..c6086f39c 100644 --- a/lua/tardis/controls/sh_control_teleport.lua +++ b/lua/tardis/controls/sh_control_teleport.lua @@ -27,7 +27,6 @@ TARDIS:AddControl({ end, serveronly=true, power_independent = false, - bypass_console_toggle = true, screen_button = { virt_console = true, mmenu = false, diff --git a/lua/tardis/controls/sh_control_teleport_double.lua b/lua/tardis/controls/sh_control_teleport_double.lua index 4c31a3227..c02b484e8 100644 --- a/lua/tardis/controls/sh_control_teleport_double.lua +++ b/lua/tardis/controls/sh_control_teleport_double.lua @@ -14,7 +14,6 @@ TARDIS:AddControl({ end end, serveronly=true, - bypass_console_toggle = true, power_independent = false, screen_button = false, tip_text = "Controls.Teleport.Tip", diff --git a/lua/tardis/interiors/base.lua b/lua/tardis/interiors/base.lua index 03034e775..865fdaf19 100644 --- a/lua/tardis/interiors/base.lua +++ b/lua/tardis/interiors/base.lua @@ -92,6 +92,7 @@ T.Exterior = { demat = "p00gie/tardis/base/demat.wav", demat_damaged = "drmatt/tardis/demat_damaged.wav", demat_fast = "p00gie/tardis/base/demat.wav", + demat_hads = "p00gie/tardis/base/demat_hads.wav", demat_fail = "drmatt/tardis/demat_fail.wav", mat = "p00gie/tardis/base/mat.wav", mat_damaged = "jeredek/tardis/mat_damaged.wav", @@ -106,7 +107,7 @@ T.Exterior = { Lock = "drmatt/tardis/lock.wav", Unlock = "p00gie/tardis/base/door_unlock_ext.wav", Spawn = "p00gie/tardis/base/repairfinish.wav", - Delete = "p00gie/tardis/tardis_delete.wav", + Delete = "p00gie/tardis/base/tardis_delete.wav", Door = { enabled = true, open = "drmatt/tardis/door_open.wav", @@ -115,6 +116,17 @@ T.Exterior = { }, FlightLoop = "drmatt/tardis/flight_loop.wav", FlightLoopDamaged = "drmatt/tardis/flight_loop_damaged.wav", + FlightLoopBroken = "p00gie/tardis/flight_loop_broken.wav", + FlightLand = "p00gie/tardis/base/tardis_landing.wav", + FlightFall = "p00gie/tardis/fall.wav", + BrokenFlightTurn = { + "p00gie/tardis/flight_turn_1.wav", + "p00gie/tardis/flight_turn_2.wav", + "p00gie/tardis/flight_turn_3.wav", + }, + BrokenFlightExplosion = "p00gie/tardis/flight_turn_explosion.wav", + BrokenFlightEnable = "p00gie/tardis/flight_broken_start.wav", + BrokenFlightDisable = "p00gie/tardis/flight_broken_stop.wav", Cloak = "drmatt/tardis/phase_enable.wav", CloakOff = "drmatt/tardis/phase_disable.wav", Hum = nil, @@ -135,6 +147,7 @@ T.Exterior = { SequenceSpeed = 0.77, SequenceSpeedWarning = 0.6, SequenceSpeedFast = 0.935, + SequenceSpeedHads = 1.8, SequenceSpeedWarnFast = 0.97, DematSequence = { 200, @@ -151,9 +164,19 @@ T.Exterior = { 200, 150, 255 - } + }, + HadsDematSequence = { + 100, + 200, + 0 + }, } } +T.Timings = { + DematInterrupt = 1, + DematFail = 4, + MatFail = 8, +} TARDIS:AddInterior(T) diff --git a/lua/tardis/interiors/default.lua b/lua/tardis/interiors/default.lua index 53c97d567..1d6638503 100644 --- a/lua/tardis/interiors/default.lua +++ b/lua/tardis/interiors/default.lua @@ -1,345 +1,796 @@ --- Default - -local function SonicModelExists() - if SonicSD and file.Exists("models/weapons/c_sonicsd.mdl", "GAME") then - return true - end - return false -end - local T = {} +T.Base = "base" +T.Name = "Interiors.Default" +T.ID = "default" + T.Versions = { + main = { id = "default", }, randomize = false, - allow_custom = false, - randomize_custom = false, - - main = { - id = "default", - }, other = { { - name = "Interiors.Default.Versions.TTCapsuleType40", - id = "default_tt_type40", + id = "default_cl", + name = "Interiors.Default.Versions.ClassicDoors", }, - { - name = "Interiors.Default.Versions.TTCapsuleType50", - id = "default_tt_type50", + }, +} + +T.Interior = { + + Model="models/molda/toyota_int/interior.mdl", + ExitDistance = 1450, + + LightOverride = { + basebrightness = 0.05, + nopowerbrightness = 0.001, + }, + + Light={ + color = Color(0,170,255), + pos = Vector(0,0,-30), + brightness = 8, + warn_brightness = 6, + NoLO = { + brightness = 5, + warn_brightness = 3, }, - { - name = "Interiors.Default.Versions.TTCapsuleType55", - id = "default_tt_type55", + NoExtra = { + pos = Vector(0,0,187.4), + brightness = 1, }, - { - name = "Interiors.Default.Versions.TTCapsuleType55B", - id = "default_tt_type55b", + }, + + Lights={ + console_white = { + pos = Vector(0,0,187.4), + brightness = 0.4, + color = Color(255,255,200), + warn_color = Color(255,143,143), + off_color = Color(0,120,200), + off_brightness = 0.1, + nopower = true, }, - { - name = "Interiors.Default.Versions.SIDRAT", - id = "default_sidrat", + console_bottom = { + color = Color(0,170,255), + pos = Vector(0,0,110), + brightness = 0.5, + warn_brightness = 0.2, + nopower = true, + off_color = Color(0,65,215), + off_brightness = 0.2, }, }, -} + Portal = { + -- Generated by portals debug tool + pos = Vector(-326.12, 0, 138.900390625), + ang = Angle(-0, 0, 0), + width = 50, + height = 92, + thickness = -5, + }, -T.Base = "base" -T.Name = "Interiors.Default" -T.ID = "default" -T.Interior = { - Model = "models/drmatt/tardis/interior.mdl", - IdleSound = { - { - path = "drmatt/tardis/default/interior_idle_loop.wav", - volume = 0.5 - }, - { - path = "drmatt/tardis/default/interior_idle2_loop.wav", - volume = 0.5 - } + Fallback={ + pos=Vector(-280,0,100), + ang=Angle(0,0,0) }, - Light = { - color = Color(255, 50, 0), - warncolor = Color(255, 0, 0), - pos = Vector(0, 0, 120), - brightness = 5 + + Sounds = { + Teleport = { + demat = "p00gie/tardis/default/demat_int.ogg", + mat = "p00gie/tardis/default/mat_int.ogg", + fullflight = "p00gie/tardis/default/full_int.ogg", + demat_fail = "p00gie/tardis/default/demat_fail.ogg", + demat_hads = "p00gie/tardis/demat_hads.wav", + interrupt = "p00gie/tardis/default/demat_interrupt.ogg", + }, + FlightLoop = "p00gie/tardis/default/flight_loop.wav", }, - Lights = { + + IdleSound={ { - color = Color(0, 255, 0), - pos = Vector(0, 0, -50), - brightness = 2, - nopower = true + path="p00gie/tardis/default/hum.wav", + volume=0.3 } }, - Portal = { - pos = Vector(316.7, 334.9, -33.7), - ang = Angle(0, 230, 0), - width = 45, - height = 91 - }, - Fallback = { - pos = Vector(291, 305, -75), - ang = Angle(0, 230, 0) - }, - Screens = { + + Seats = { { - pos = Vector(44.5, -6.5, 39), - ang = Angle(0, 84.5, 91), - width = 227.75, - height = 140, - gui_rows = 2, - power_off_black = true - } + pos = Vector(9, -154., 105), + ang = Angle(0,0,0), + }, + { + pos = Vector(-134, -77, 105), + ang = Angle(0,-65,0), + }, + { + pos = Vector(40, 147, 105), + ang = Angle(0,170,0), + }, + { + pos = Vector(150, 26, 105), + ang = Angle(0,100,0), + }, }, + Scanners = { { - mat = "models/drmatt/tardis/tardisscanner", + part = "default_console_scanner", + mat = "models/cem/toyota_contr/screen", width = 1024, height = 1024, ang = Angle(0,0,0), fov = 90, - } + }, }, - Sounds = { - Teleport = { - demat = "drmatt/tardis/demat.wav", - mat = "drmatt/tardis/mat.wav", - mat_fast = "p00gie/tardis/mat_fast.wav", - mat_damaged_fast = "p00gie/tardis/mat_damaged_fast.wav", - fullflight = "drmatt/tardis/full.wav", + + Screens = { + { + pos = Vector(-33.658, -35.45, 159.97), + ang = Angle(0, -30, 96), + width = 378, + height = 198, + gui_rows = 4, + }, + { + pos = Vector(33.658, 35.45, 159.97), + ang = Angle(0, 150, 96), + width = 378, + height = 198, + gui_rows = 4, + }, + { + pos = Vector(-27.484, -23.735, 165.416), + ang = Angle(0, -30, 102), + width = 378, + height = 198, + gui_rows = 4, + }, + { + pos = Vector(27.484, 23.735, 165.416), + ang = Angle(0, 150, 102), + width = 378, + height = 198, + gui_rows = 4, }, }, - Sequences = "default_sequences", + Parts = { door = { - posoffset=Vector(28,0,-54.6), - ang = Angle(0, 50, 0), - width = 443, - height = 335 - }, - default_rails = true, - default_throttle = {pos = Vector(-8.87, -50, 5.5), ang = Angle(-12, -5, 24), }, - default_flightlever = {pos = Vector(-0.431641, 44.75, 6.4), ang = Angle(-63.913, 137.035, 136.118), }, - default_screen = {pos = Vector(42, 0.75, 27.1), ang = Angle(0, -5, 0), }, - default_screenbutton = {pos = Vector(44.5, 9.75, 38.2), ang = Angle(215, 85, 90), }, - default_scannerbutton = {pos = Vector(42, -31.5, 1.4), ang = Angle(-25, 150, -10) }, - default_wibblylever = {pos = Vector(-48, 18, 5.4), ang = Angle(335, 347, 6), }, - default_enginerelease = {pos = Vector(-61.229, 21.622, -4.514), ang = Angle(180, 90.911, -90), }, - default_doorbutton = {pos = Vector(-60.782, -25.129, -6.108), ang = Angle(0, 65.911, -81.515), }, - default_powerlever = {pos = Vector(44, -18, 5.5), ang = Angle(22, 328, 347.5), }, - default_keyboard = {pos = Vector(29, -53, -8), ang = Angle(0, 30, 50), }, - default_hads = {pos = Vector(39, 22.75, 5.828125), ang = Angle(296.260, 78.027, 136.528), }, - default_typewriter = {pos = Vector(19.002930, 48.807617, 2.078125), ang = Angle(0.945, 330.128, 339.750), }, - default_repairlever = {pos = Vector(-6.623535, 44.351563, 7), ang = Angle(349, 5, 337), }, - default_redecoratebutton = {pos = Vector(-6.412, 53.588, 1.556), ang = Angle(9.445, 46.482, -21.861), }, - default_handbrake = {pos = Vector(-40.088379, -21.466797, 7.924805), ang = Angle(290.494, 208.321, 182.157), }, - default_gramophone = {pos = Vector(-26, -1.5, 30), ang = Angle(0, 30, 0), }, - default_biglever = {pos = Vector(-9.94, -65, -52), ang = Angle(0, 270, 0), }, - default_physlock = {pos = Vector(39.5, -22.75, 6.914063), ang = Angle(303.286, 6.660, 148.819), }, - default_isomorphic = {pos = Vector(-39.5, 22, 6.629883), ang = Angle(290.762, 195, 137.777), }, - default_atomaccel = {pos = Vector(20, -37.669998, 1.75), ang = Angle(0, 0, 0), }, - default_directionalpointer = {pos = Vector(12.5, -24.5, 23), ang = Angle(0, 30, 0), }, - default_float = {pos = Vector(-2.5, -45.5, 7.75), ang = Angle(-56.714, -54.280, 148.819), }, - default_blacksticks = {pos = Vector(4.480469, -43.906372, 7), ang = Angle(13, 0, 24.176), }, - default_longflighttoggle = {pos = Vector(-37.242310, -27.915344, 7.428223), ang = Angle(338, 28.721, 15), }, - default_dematcircuit = {pos = Vector(-43.168457, -31.015625, 4.7), ang = Angle(22, 209.224, 348), }, - default_sonicdispenser = {pos = Vector(-26.048, 42.31, 1.45), ang = Angle(9.445, 46.482, -21.861), }, - default_helmic = {pos = Vector(-26, -41, 4), ang = Angle(0, 330, 24.5), }, - default_sonic_inserted = SonicModelExists() and - {pos = Vector(-29.748, 40.71, -20.15), ang = Angle(-100, -90, 90), }, - default_doorframe = { - pos = Vector(317, 336.3, -80), - ang = Angle(0, -40, 0), - scale = 0.764, - matrixScale = Vector(1, 1, 1.083) + model="models/vtalanov98/toyota_ext/doors_interior.mdl", + posoffset=Vector(4.42,0,-52.33), + angoffset=Angle(0,180,0), }, - default_doorframe_bottom = { - pos = Vector(317, 335.8, -93.5), - ang = Angle(0, 50, 0), - scale = 1.14, - matrixScale = Vector(0.53, 1.02, 1) + default_doorframe = {}, + default_floor = {}, + default_entry = {}, + default_walls = {}, + default_roof = {}, + default_pillars = {}, + default_rings = {}, + default_side_panels = {}, + default_chairs = {}, + default_casing = {}, + default_console = { ang = Angle(0,90,0), pos = Vector(0,0,-0.1) }, + default_side_details1 = {}, + default_side_details2 = {}, + default_toplights = {}, + default_cables1 = {}, + default_cables2 = {}, + default_cables3 = {}, + default_roundels1 = {}, + default_roundels2 = {}, + default_bulbs = {}, + default_ticks = {}, + + default_gears1 = {}, + default_gears2 = {}, + default_gears3 = {}, + + default_handbrake = {}, + default_keyboard = {}, + default_telepathic = {}, + default_throttle = {}, + + default_side_lever1 = { pos = Vector(100.487, 114.569, 126.76), }, + default_side_lever2 = { pos = Vector(-55.242, -142.028, 126.76), }, + default_side_dial = {}, + default_side_speakers = {}, + default_throttle_lights = {}, + + default_bouncy_lever = { pos = Vector(37.6148, 12.5797, 134.562), }, + default_button_1 = {}, + default_button_2 = { pos = Vector(0,9.4,0), }, + default_buttons = {}, + default_crank = {}, + default_crank2 = {}, + default_crank3 = {}, + default_crank4 = {}, + default_crank5 = {}, + default_crank6 = {}, + default_ducks = {}, + default_fiddle1 = { pos = Vector(-47.83, 20.39, 128.36), }, + default_fiddle2 = { pos = Vector(-47.83, 17.33, 128.36), }, + + default_flat_switch_1 = { pos = Vector(-10.1897, 28.1115, 137.23), }, + default_flat_switch_2 = { pos = Vector(-11.3625, 27.4343, 137.23), }, + default_flat_switch_3 = { pos = Vector(-12.5354, 26.7572, 137.23), }, + default_flat_switch_4 = { pos = Vector(-16.7892, 24.3012, 137.23), }, + default_flat_switch_5 = { pos = Vector(-17.9621, 23.6241, 137.23), }, + default_flat_switch_6 = { pos = Vector(-19.1350, 22.9469, 137.23), }, + + default_flippers = {}, + default_handle1 = {pos = Vector(-32.0253, -11.1286, 136.032), ang = Angle(33.87, 94.5, -24.402)}, + default_handle2 = {pos = Vector(-32.0253, 11.1286, 136.032), }, + default_key = {}, + + default_red_lever_1 = {}, + default_red_lever_2 = { pos = Vector(0,26.55,0), }, + + default_thick_lever = {}, + + default_colored_lever_1 = { pos = Vector(31.28, -6.48, 134.362), }, + default_colored_lever_2 = { pos = Vector(31.28, -3.23, 134.362), }, + default_colored_lever_3 = { pos = Vector(31.28, 0.00, 134.362), }, + default_colored_lever_4 = { pos = Vector(31.28, 3.24, 134.362), }, + default_colored_lever_5 = { pos = Vector(31.28, 6.47, 134.362), }, + + default_phone = {}, + default_red_flick_cover = { pos = Vector(46.8003, 20.3683, 130.056), }, + default_red_flick_switch = { pos = Vector(48.3763, 20.3791, 129.36), }, + default_sliders = {}, + + default_small_switch_1 = { pos = Vector(-43.5688,9.2562,129.997), }, + default_small_switch_2 = { pos = Vector(-43.5688,8.45203,129.997), }, + default_small_switch_3 = { pos = Vector(-43.5688,7.64787,129.997), }, + default_small_switch_4 = { pos = Vector(-43.5688,6.84371,129.997), }, + default_small_switch_5 = { pos = Vector(-43.5688,6.03954,129.997), }, + default_small_switch_6 = { pos = Vector(-43.5688,5.23538,129.997), }, + default_small_switch_7 = { pos = Vector(-43.5688,4.43121,129.997), }, + default_small_switch_8 = { pos = Vector(-43.5688,3.62705,129.997), }, + default_small_switch_9 = { pos = Vector(-43.5688,2.82289,129.997), }, + default_small_switch_10 = { pos = Vector(-43.5688,-2.63501,129.997), }, + default_small_switch_11 = { pos = Vector(-43.5688,-3.43917,129.997), }, + default_small_switch_12 = { pos = Vector(-43.5688,-4.24334,129.997), }, + default_small_switch_13 = { pos = Vector(-43.5688,-5.0475,129.997), }, + default_small_switch_14 = { pos = Vector(-43.5688,-5.85166,129.997), }, + default_small_switch_15 = { pos = Vector(-43.5688,-6.65583,129.997), }, + default_small_switch_16 = { pos = Vector(-43.5688,-7.45999,129.997), }, + default_small_switch_17 = { pos = Vector(-43.5688,-8.26416,129.997), }, + default_small_switch_18 = { pos = Vector(-43.5688,-9.06832,129.997), }, + + default_spin_a_1 = { pos = Vector(-48.304, 9.401, 129.35), }, + default_spin_a_2 = { pos = Vector(-48.304, 4.707, 129.35), }, + default_spin_a_3 = { pos = Vector(-48.304, -0.009, 129.35), }, + default_spin_a_4 = { pos = Vector(-48.304, -4.644, 129.35), }, + default_spin_a_5 = { pos = Vector(-48.304, -9.453, 129.35), }, + + default_spin_b_1 = { pos = Vector(-10.011, 45.859, 130.910), ang = Angle(0, -2.574, 0) }, + default_spin_b_2 = { pos = Vector(-14.892, 46.776, 129.530), ang = Angle(-2.88, -7.88, 4.089) }, + default_spin_b_3 = { pos = Vector(-33.016, 36.267, 129.530), ang = Angle(-4.68, -21.49, 4.023) }, + default_spin_b_4 = { pos = Vector(-34.663, 31.617, 130.910), ang = Angle( 1.56, 9.08, -1.378) }, + + default_spin_big = { pos = Vector(33.5519, -30.4627, 130.518), ang = Angle(11.6955,-19.35,-2) }, + default_spin_crank = { pos = Vector(-39.865, -31.28, 129.931), ang = Angle(0, -4.62, 0) }, + default_spin_switch = { pos = Vector(32.9344, -25.9602, 132.217), ang = Angle(0, -4.62, 0) }, + + default_switch = {}, + default_switch2 = {}, + default_toggles = {}, + default_toggles2 = {}, + default_tumblers = {}, + + default_balls = {}, + default_console_scanner = {}, + + default_side_cranks1 = { + pos = Vector(-5.781, -7.625, 0.5), + ang = Angle(0, -1.54, 0), }, - default_doorframe_bottom2 = { - pos = Vector(317, 335.8, -93.5), - ang = Angle(0, 230, 0), - scale = 1.14, - matrixScale = Vector(0.54, 1.02, 1) + default_side_cranks2 = { + pos = Vector(2.98, 9.09, 0.5), + ang = Angle(0, 198.54, 0), }, + + default_side_toggles_1 = {}, + default_side_toggles_2 = { ang = Angle(0,160,0), }, + + default_top_doors_1 = { pos = Vector(-346.742, 125.858, 160.575), ang = Angle(0,70,0), }, + default_top_doors_2 = { pos = Vector(-346.742, -125.858, 160.575), ang = Angle(0,110,0), }, + + default_monitor_1 = { ang = Angle(0,-120,0), }, + default_monitor_1_hitbox_handles = { pos = Vector(-20.06, -34.75, 154.08), ang = Angle(0, -30, 96.16) }, + default_monitor_1_hitbox_screen = { pos = Vector(-20.06, -34.75, 154.08), ang = Angle(0, -30, 96.16) }, + default_monitor_1_hitbox_static = { ang = Angle(0,-30,0) }, + + default_monitor_2 = { ang = Angle(0,60,0), }, + default_monitor_2_hitbox_handles = { pos = Vector(20.06, 34.75, 154.08), ang = Angle(0, 150, 96.16) }, + default_monitor_2_hitbox_screen = { pos = Vector(20.06, 34.75, 154.08), ang = Angle(0, 150, 96.16) }, + default_monitor_2_hitbox_static = { ang = Angle(0,150,0) }, + + default_rotor_ring = {}, + + default_rotor = {}, + default_corridors = { ang = Angle(0,90,0), }, + default_intdoors = { pos = Vector(73.559, -417.853, 47.506), ang = Angle(0,10,0), }, + + default_sonic_dispenser_hitbox = { ang = Angle(0,90,0), }, }, + Controls = { - default_throttle = "teleport_double", - default_flightlever = "flight", - default_screen = nil, - default_screenbutton = "toggle_screens", - default_scannerbutton = "toggle_scanners", - default_wibblylever = "doorlock", - default_enginerelease = "engine_release", - default_doorbutton = "door", - default_powerlever = "power", - default_keyboard = "destination", - default_hads = "hads", - default_typewriter = "coordinates", - default_repairlever = "repair", - default_redecoratebutton = "redecorate", - default_handbrake = "handbrake", - default_gramophone = "music", - default_biglever = "fastreturn", - default_physlock = "physlock", - default_isomorphic = "isomorphic", - default_float = "float", - default_blacksticks = "cloak", - default_longflighttoggle = "vortex_flight", - default_dematcircuit = nil, - default_sonicdispenser = "sonic_dispenser", - default_sonic_inserted = SonicModelExists() and "sonic_dispenser", - default_helmic = "thirdperson", - default_atomaccel = "spin_toggle", - default_directionalpointer = "spin_switch", - - - }, - Tips = {}, - -- Interior.Tips are deprecated; should be deleted when the extensions update and - -- replace with Interior.CustomTips, Interior.PartTips and Interior.TipSettings + default_throttle = "teleport_double", + default_handbrake = "handbrake", + default_side_lever1 = "engine_release", + default_side_speakers = "music", + default_telepathic = "destination", + default_console_scanner = "thirdperson_careful", + default_balls = "thirdperson", + default_keyboard = "coordinates", + default_crank4 = "repair", + default_crank2 = "power", + default_crank3 = "redecorate", + default_side_lever2 = "physlock", + default_crank = "random_coords", + default_buttons = "isomorphic", + default_fiddle1 = "door", + default_fiddle2 = "doorlock", + default_crank6 = "cloak", + default_tumblers = "vortex_flight", + default_button2 = "toggle_scanners", + default_red_flick_switch = "engine_release", + default_bouncy_lever = "fastreturn", + default_key = "toggle_console", + default_sonic_charger = "sonic_dispenser", + default_spin_crank = "hads", + default_small_switch_17 = "toggle_doorframe_light", + default_small_switch_18 = "exterior_light", + + default_spin_b_1 = "flight", + default_spin_b_2 = "float", + default_spin_b_3 = "physlock", + default_spin_b_4 = "spin_cycle", + default_thick_lever = "shields", + + default_flat_switch_1 = "toggle_screen_1", + default_flat_switch_2 = "toggle_screen_2", + default_flat_switch_3 = "toggle_scanners", + + default_sonic_dispenser_hitbox = "sonic_dispenser", + }, + TipSettings = { - view_range_min = 70, - view_range_max = 90, + view_range_min = 40, + view_range_max = 75, }, + + PartTips = { + default_throttle = {pos = Vector(44.891, 14.683, 132.679), right = false, down = true, }, + default_handbrake = {pos = Vector(46.248, -16.804, 131.436), right = true, down = true, }, + default_side_lever1 = {pos = Vector(103.41, 121.655, 130.044), right = true, down = false, }, + default_side_lever2 = {pos = Vector(-59.115, -151.548, 126.17), right = true, down = false, }, + default_telepathic = {pos = Vector(19.919, 35.908, 130.754), right = true, down = false, }, + default_keyboard = {pos = Vector(20.64, -39.63, 129.29), right = true, down = true, }, + default_crank4 = {pos = Vector(-34.917, -29.135, 132.425), right = true, down = true, }, + default_toggles = {pos = Vector(39.523, 0.016, 133.705), right = true, down = false, }, + default_buttons = {pos = Vector(10.193, -49.502, 128.582), right = true, down = true, }, + default_switch2 = {pos = Vector(-35.645, 12.629, 135.094), right = true, down = true, }, + default_switch = {pos = Vector(-45.646, -17.836, 130.267), right = true, down = true, }, + default_thick_lever = {pos = Vector(-36.787, -13.688, 134.195), right = true, down = false, }, + default_crank = {pos = Vector(30.237, -28.123, 132.312), right = true, down = false, }, + default_crank2 = {pos = Vector(-9.156, -47.859, 130.481), right = true, down = true, }, + default_crank3 = {pos = Vector(-6.948, -30.268, 137.647), right = false, down = false, }, + default_crank5 = {pos = Vector(-24.084, 21.564, 136.681), right = true, down = false, }, + default_crank6 = {pos = Vector(-6.901, 31.399, 136.842), right = false, down = true, }, + default_spin_switch = {pos = Vector(33.531, -25.783, 132.247), right = true, down = false, }, + default_tumblers = {pos = Vector(35.573, -11.599, 134.216), right = false, down = false, }, + default_button_1 = {pos = Vector(39.263, -4.64, 132.233), right = false, down = false, }, + default_button_2 = {pos = Vector(39.263, 4.64, 132.233), right = true, down = false, }, + default_handle2 = {pos = Vector(-33.066, 10.939, 137.381), right = true, down = false, }, + default_handle1 = {pos = Vector(-32.921, -10.81, 137.31), right = false, down = false, }, + default_red_flick_switch = {pos = Vector(47.918, 20.722, 129.642), right = true, down = true, }, + default_bouncy_lever = { pos = Vector(36.789, 14.121, 134.479), right = true, down = false, }, + default_red_lever_1 = {pos = Vector(-44.239, -12.951, 131.572), right = true, down = false, }, + default_red_lever_2 = {pos = Vector(-44.051, 14.102, 131.376), right = false, down = false, }, + default_spin_a_2 = {pos = Vector(-49.221, 4.594, 129.101), right = true, down = true, }, + default_spin_b_3 = {pos = Vector(-32.958, 36.406, 129.314), right = true, down = true, }, + default_spin_b_2 = {pos = Vector(-15.003, 46.519, 128.838), right = true, down = true, }, + default_spin_crank = {pos = Vector(-40.013, -31.619, 130.98), right = false, down = true, }, + default_key = {pos = Vector(-23.59, -20.837, 137.406), right = false, down = false, }, + + default_fiddle1 = { right = false, down = true, }, + default_fiddle2 = { right = true, down = true, }, + + default_small_switch_1 = {right = false, down = true,}, + default_small_switch_2 = {right = false, down = false,}, + default_small_switch_3 = {right = true, down = false,}, + default_small_switch_4 = {right = true, down = true,}, + default_small_switch_5 = {right = false, down = true,}, + default_small_switch_6 = {right = false, down = false,}, + default_small_switch_7 = {right = true, down = false,}, + default_small_switch_8 = {right = true, down = true,}, + default_small_switch_9 = {right = false, down = true,}, + default_small_switch_10 = {right = true, down = false}, + default_small_switch_11 = {right = false, down = true,}, + default_small_switch_12 = {right = false, down = false,}, + default_small_switch_13 = {right = true, down = false,}, + default_small_switch_14 = {right = true, down = true,}, + default_small_switch_15 = {right = false, down = true,}, + default_small_switch_16 = {right = false, down = false,}, + default_small_switch_17 = {right = true, down = false,}, + default_small_switch_18 = {right = true, down = true,}, + + default_spin_a_1 = {}, + default_spin_a_2 = {}, + default_spin_a_3 = {}, + default_spin_a_4 = {}, + default_spin_a_5 = {}, + + default_spin_b_1 = { right = false, down = true, }, + default_spin_b_2 = { right = true, down = true, }, + default_spin_b_3 = { right = false, down = false, }, + default_spin_b_4 = { right = true, down = true, }, + + default_flat_switch_1 = {right = false, down = false, }, + default_flat_switch_2 = {right = true, down = false, }, + default_flat_switch_3 = {right = true, down = true, }, + default_flat_switch_4 = {right = false, down = false, }, + default_flat_switch_5 = {right = true, down = true, }, + default_flat_switch_6 = {right = true, down = false,}, + + default_side_cranks1 = { pos = Vector(75.28, 139.87, 129.97), right = true, down = true, }, + default_side_cranks2 = { pos = Vector(-23.13, -157.55, 130.01), right = true, down = true, }, + + default_flippers = { pos = Vector(-36.1, 0.49, 131.31), right = true, down = true, }, + default_spin_big = { pos = Vector(34.71, -30.58, 130.3), right = true, down = true, }, + default_gears1 = { pos = Vector(-25.47, -28.1, 133.62), right = true, down = true, }, + default_gears2 = { pos = Vector(-17.79, -39.58, 131.39), right = true, down = true, }, + default_gears3 = { pos = Vector(-13.37, -28.16, 135.71), right = true, down = true, }, + default_sonic_dispenser_hitbox = { pos = Vector(8.4, -37.31, 135.07), right = false, down = false, }, + default_sliders = { pos = Vector(14.79, -31.19, 134.22), right = true, down = true, }, + default_toggles2 = { pos = Vector(15.55, -24.79, 136.77), right = true, down = true, }, + default_phone = { pos = Vector(27.75, -35.17, 130.68), right = true, down = true, }, + default_ducks = { pos = Vector(31.21, -32.59, 130.36), right = true, down = true, }, + default_colored_lever_1 = { pos = Vector(31.04, -6.4, 135.01), right = true, down = true, }, + default_colored_lever_2 = { pos = Vector(31.27, -3.28, 134.69), right = true, down = true, }, + default_colored_lever_3 = { pos = Vector(31.37, -0.02, 134.47), right = true, down = true, }, + default_colored_lever_4 = { pos = Vector(31.12, 3.29, 135.1), right = true, down = true, }, + default_colored_lever_5 = { pos = Vector(31.09, 6.44, 135.21), right = true, down = true, }, + }, + CustomTips = { - --{ text = "Example", pos = Vector(0, 0, 0) }, + {pos = Vector(83.96, 122.99, 125.78), right = true, down = true, part = "default_side_speakers", }, + {pos = Vector(130.65, 71.77, 125.87), right = true, down = true, part = "default_side_speakers", }, + {pos = Vector(-38.64, -144.1, 125.97), right = true, down = true, part = "default_side_speakers", }, + {pos = Vector(-101.11, -110.17, 126.19), right = true, down = true, part = "default_side_speakers", }, + {pos = Vector(-35.68, 28.74, 131.96), right = true, down = false, part = "default_balls", }, + {pos = Vector(-6.69, 45.46, 131.72), right = false, down = false, part = "default_balls", }, + + {pos = Vector(334.946, -34.611, 40.627), text = "Never Gonna Give You Up!\nNever Gonna Let You Down!"} }, - PartTips = { +} - default_throttle = {pos = Vector(-8.87, -50, 5.5), down = true}, - default_flightlever = {pos = Vector(-1, 59, 2), down = true}, - default_screen = {pos = Vector(42, 0.75, 29.1), down = true}, - default_screenbutton = {pos = Vector(47, 10, 38), right = true}, - default_scannerbutton = {pos = Vector(43, -32, 3.5), down = true}, - default_wibblylever = {pos = Vector(-48, 18, 5.4), right = true}, - default_enginerelease = {pos = Vector(-61.229, 21.622, -4.514), down = true}, - default_doorbutton = {pos = Vector(-62.699, -24.23, -5.506), down = true}, - default_powerlever = {pos = Vector(44, -18, 5.5), right = true}, - default_keyboard = {pos = Vector(29, -53, -8), right = true, down = true}, - default_hads = {pos = Vector(52, 31, 1), down = true}, - default_typewriter = {pos = Vector(19, 48.80, 2.07) }, - default_repairlever = {pos = Vector(-8, 45, 9), right = true}, - default_redecoratebutton = {pos = Vector(-6.542, 54.408, 3.081), down = true, right = true}, - default_handbrake = {pos = Vector(-52, -29, 2), down = true}, - default_gramophone = {pos = Vector(-26, -1.50, 40), right = true, down = true}, - default_biglever = {pos = Vector(-9.94, -65, -12) }, - default_physlock = {pos = Vector(52, -30, 0), down = true}, - default_isomorphic = {pos = Vector(-52, 29, 2), down = true}, - default_atomaccel = {pos = Vector(20, -38, 6), right = true}, - default_directionalpointer = {pos = Vector(12.5, -24.5, 23) }, - default_float = {pos = Vector(-2, -60, 1), right = true, down = true}, - default_blacksticks = {pos = Vector(4.48, -43.9, 7) }, - default_longflighttoggle = {pos = Vector(-37.24, -27.91, 7.42) }, - default_dematcircuit = {pos = Vector(-43.16, -31.01, 4.7), right = true, down = true}, - default_sonicdispenser = {pos = Vector(-26.048, 42.31, 3.15), right = true, down = false}, - default_helmic = { - pos = Vector(-26, -41, 4), - right = true, - view_range_max = 70, --less view range since there's a lot stuff in the way - view_range_min = 50, +T.Exterior = { + Sounds = { + Spawn = "drmatt/tardis/repairfinish.wav", + Delete = "p00gie/tardis/tardis_delete.wav", + }, +} + +T.Timings = { + DematInterrupt = 3, + DematStartingAnimation = 3, + MatStoppingAnimation = 3.2, +} + +T.CustomHooks = { + fast_top_bulbs = { + exthooks = { + ["DematStart"] = true, + ["StopMat"] = true, }, + func = function(ext,int) + if SERVER then return end + if not IsValid(int) then return end + + local time, data + + if ext:GetData("demat") then + time = ext.metadata.Timings.DematStartingAnimation + data = "demat_animation" + else + time = ext.metadata.Timings.MatStoppingAnimation + data = "mat_animation" + end + + int:SetData(data, true) + int:Timer(data, time, function() + int:SetData(data, nil) + end) + end, }, - Seats = { - { - pos = Vector(130, -96, -30), - ang = Angle(0, 40, 0) + fast_top_bulbs_handbrake = { + inthooks = { + ["HandbrakeToggled"] = true, }, - { - pos = Vector(125, 55, -30), - ang = Angle(0, 135, 0) - } + func = function(ext,int,on) + if CLIENT and on and IsValid(int) and int:GetData("mat_animation") then + int:CancelTimer("mat_animation") + int:SetData("mat_animation", nil) + end + end, + }, + screen_disable = { + inthooks = { + ["ShouldNotDrawScreen"] = true, + }, + func = function(ext,int,id) + if SERVER then return end + + local m_id = (id % 2 ~= 0 and 1 or 2) + + if not ext:GetData("default_screen_enabled_" .. m_id) then return true end + + local m = int:GetPart("default_monitor_" .. m_id) + if not IsValid(m) then return true end + + if id == 1 or id == 2 then + if m:IsAnimationPlaying() then + return true + end + + if m:IsStatic() then + return true + end + end + + if id == 3 or id == 4 then + if not m:IsStatic() then + return true + end + end + end, }, - BreakdownEffectPos = Vector(0, 0, 40), + } -T.Exterior = { - Parts = { - door = { - posoffset=Vector(-28,0,-54.6) - } + +local function screen_toggle_func(self, ply, no) + if self:GetScreensOn() then + local data = "default_screen_enabled_" .. no + local on = not self:GetData(data) + self:SetData(data, on, true) + + TARDIS:StatusMessage(ply, "CustomControls.Default.ToggleScreen." .. no .. ".Status", on) + else + TARDIS:ErrorMessage(ply, "CustomControls.Default.ToggleScreen." .. no .. ".FailedToggle") + end +end + +T.CustomControls = { + toggle_screen_1 = { + int_func=function(self,ply) + screen_toggle_func(self, ply, 1) + end, + power_independent = false, + screen_button = false, + tip_text = "CustomControls.Default.ToggleScreen.1.Tip", }, - Sounds = { - Teleport = { - demat = "drmatt/tardis/demat.wav", - demat_fast = "drmatt/tardis/demat.wav", - mat = "drmatt/tardis/mat.wav", - mat_fast = "p00gie/tardis/mat_fast.wav", - mat_damaged_fast = "p00gie/tardis/mat_damaged_fast.wav", - fullflight = "drmatt/tardis/full.wav", - interrupt = "drmatt/tardis/repairfinish.wav", + toggle_screen_2 = { + int_func=function(self,ply) + screen_toggle_func(self, ply, 2) + end, + power_independent = false, + screen_button = false, + tip_text = "CustomControls.Default.ToggleScreen.2.Tip", + }, + + toggle_doorframe_light = { + int_func=function(self,ply,part) + local doorframe = self:GetPart("default_doorframe") + doorframe:SetBodygroup(1,part:GetOn() and 0 or 1) + end, + power_independent = false, + screen_button = false, + tip_text = nil, -- let this one be an easter-egg-ish feature for now + }, +} + +T.CustomSettings = { + color = { + text = "Interiors.Default.CustomSettings.Color", + value_type = "list", + value = "dynamic", + options = { + ["dynamic"] = "Interiors.Default.CustomSettings.Color.Dynamic", + ["blue"] = "Interiors.Default.CustomSettings.Color.Blue", + ["green"] = "Interiors.Default.CustomSettings.Color.Green", + ["turquoise"] = "Interiors.Default.CustomSettings.Color.Turquoise", + ["random"] = "Interiors.Default.CustomSettings.Color.Random", }, - Spawn = "drmatt/tardis/repairfinish.wav", - RepairFinish = "drmatt/tardis/repairfinish.wav", - Delete = "p00gie/tardis/base/tardis_delete.wav", }, - Light = { - warncolor = Color(255,200,200), + lamps = { + text = "Interiors.Default.CustomSettings.Lamps", + value_type = "list", + value = false, + options = { + [false] = "Interiors.Default.CustomSettings.Lamps.Off", + ["few"] = "Interiors.Default.CustomSettings.Lamps.Few", + ["many"] = "Interiors.Default.CustomSettings.Lamps.Many", + }, + }, + small_version = { + text = "Interiors.Default.CustomSettings.SmallVersion", + value_type = "bool", + value = false, + }, + screens_off = { + text = "Interiors.Default.CustomSettings.ScreensOff", + value_type = "bool", + value = false, + }, + classic_doors_button = { + text = "Interiors.Default.CustomSettings.ClassicDoorsButton", + value_type = "bool", + value = false, }, - PhaseMaterial = "models/drmatt/tardis/exterior/phase.vmt", +} + +T.Templates = { + default_exterior = { override = true, }, + default_lamps = { + override = true, + condition = function(id, ply, ent) + return (TARDIS:GetCustomSetting(id, "lamps", ply) ~= false) + end, + }, + default_more_lamps = { + override = true, + condition = function(id, ply, ent) + return (TARDIS:GetCustomSetting(id, "lamps", ply) == "many") + end, + }, + default_dynamic_color = { + override = true, + condition = function(id, ply, ent) + local setting_val = TARDIS:GetCustomSetting(id, "color", ply) + return (setting_val == "dynamic") + end, + }, + default_fixed_color = { + override = true, + condition = function(id, ply, ent) + local setting_val = TARDIS:GetCustomSetting(id, "color", ply) + return (setting_val ~= "dynamic") + end, + }, + default_color_update = {}, + + default_small_version = { + override = true, + condition = function(id, ply, ent) + return TARDIS:GetCustomSetting(id, "small_version", ply) + end, + }, + default_screens_off = { + override = true, + condition = function(id, ply, ent) + return TARDIS:GetCustomSetting(id, "screens_off", ply) + end, + }, + default_screens_on = { + override = true, + condition = function(id, ply, ent) + return not TARDIS:GetCustomSetting(id, "screens_off", ply) + end, + }, +} +T.TemplatesMergeOrder = { + "default_lamps", + "default_more_lamps", +} + +TARDIS:AddInterior(T) + + + + + + +local T = {} + +T.Base = "default" +T.Name = "Interiors.Default" +T.ID = "default_cl" + +T.EnableClassicDoors = true +T.IsVersionOf = "default" + +T.Interior = { + Fallback = { pos = Vector(-320, 0, 100), }, + Portal = { - pos = Vector(28,0,54.6), - ang = Angle(0,0,0), - width = 45, - height = 92, - thickness = 42, - inverted = true, + -- Generated by portals debug tool + pos = Vector(-383.48433620246, 0, 145.419), + ang = Angle(-0, 0, 0), + width = 73.255813953488, + height = 103.48837209302, + thickness = -5, + }, + + Parts = { + intdoor = { + model = "models/parar020100/toyota_int/classic_doors.mdl", + pos = Vector(-343.701, 0, 95.02), + ang = Angle(0,0,0), + }, + + default_entry = { + model = "models/parar020100/toyota_int/classic_doors_entry.mdl", + }, + default_doorframe = false, + default_door_button = { pos = Vector(-345.457, 30.183, 145.419), }, + }, + Controls = { + default_door_button = "door", }, + + Sounds = { + Door={ + enabled=true, + open="karmal/toyota/intdoor.wav", + close="karmal/toyota/intdoor.wav", + }, + }, + IntDoorAnimationTime = 3.5, } -local function playerlookingat(self,ply,vec,fov,width) - local disp = vec - self:WorldToLocal(ply:GetPos()+Vector(0,0,64)) - local dist = disp:Length() +T.Exterior = {} - local maxcos = math.abs( math.cos( math.acos( dist / math.sqrt( dist * dist + width * width ) ) + fov * ( math.pi / 180 ) ) ) - disp:Normalize() +T.Templates = { + default_exterior = false, + exterior_ttcapsule_type50 = {override = true,} +} - if disp:Dot( ply:EyeAngles():Forward() ) > maxcos then - return true - end - return false -end +T.CustomHooks = { + doorframe_init = { + inthooks = { + ["PostInitialize"] = true, + }, + func = function(ext,int) + if CLIENT then return end + local button_on = TARDIS:GetCustomSetting(ext.metadata.ID, "classic_doors_button", ext) + local entry_part = int:GetPart("default_entry") -T.Interior.CustomHooks = { - init_rotor = { - "Initialize", - function(self) - self.timerotor={} - self.timerotor.pos=0 - self.timerotor.mode=1 - end - }, - think_rotor = { - "Think", - function(self) - local moving = self.exterior:GetData("teleport",false) - local flightmode = self.exterior:GetData("flight",false) - local active = (moving or flightmode) - if not CLIENT then return end - if active or self.timerotor.pos > 0 then - if self.timerotor.pos==1 then - self.timerotor.mode=0 - elseif active and self.timerotor.pos==0 then - self.timerotor.mode=1 - end - self.timerotor.pos=math.Approach( self.timerotor.pos, self.timerotor.mode, FrameTime()*1.1 ) - self:SetPoseParameter( "glass", self.timerotor.pos ) + if not IsValid(entry_part) then return end + + entry_part:SetBodyGroups(button_on and "11" or "00") + int:SetPartInvisible("default_door_button", not button_on) + + local button = int:GetPart("default_door_button") + if IsValid(button) then + button:SetCollide(button_on, true) end end, }, - use_console = { - "Use", - function(self,a,c) - if SERVER and a:IsPlayer() and (not a:GetTardisData("outside")) and CurTime() > a:GetTardisData("outsidecool",0) then - local pos=Vector(0,0,0) - local pos2=self:WorldToLocal(a:GetPos()) - local distance=pos:Distance(pos2) - if distance < 110 and playerlookingat(self,a,pos,10,10) then - TARDIS:Control("thirdperson_careful", a) + doorframe_sync = { + inthooks = { + ["PartBodygroupChanged"] = true, + }, + func = function(ext, int, ent, bodygroup, value) + if CLIENT then return end + if ent == int:GetPart("default_entry") then + local other = (bodygroup + 1) % 2 + if ent:GetBodygroup(other) ~= value then + ent:SetBodygroup(other, value) + + local pipes = (value == 0) + + local button = int:GetPart("default_door_button") + if IsValid(button) then + button:SetInvisible(pipes) + button:SetCollide(not pipes, true) + end end end end, diff --git a/lua/tardis/interiors/default_sidrat.lua b/lua/tardis/interiors/default_sidrat.lua deleted file mode 100644 index 2274f9edc..000000000 --- a/lua/tardis/interiors/default_sidrat.lua +++ /dev/null @@ -1,37 +0,0 @@ --- Default (TT Sidrat Capsule) - -local T = {} -T.Base = "default" -T.Name = "Interiors.DefaultSIDRAT" -T.ID = "default_sidrat" - -T.IsVersionOf = "default" - -T.Interior = { - Portal = { - pos = Vector(316.7, 334.9, -36.5), - ang = Angle(0, 230, 0), - width = 31, - height = 87 - }, - Parts = { - default_doorframe = { - pos = Vector(317, 336.3, -80.4), - ang = Angle(0, -40, 0), - scale = 0.764, - matrixScale = Vector(0.58, 1, 1.083) - }, - default_doorframe_bottom = { - matrixScale = Vector(0.53, 0.6, 1) - }, - default_doorframe_bottom2 = { - matrixScale = Vector(0.54, 0.6, 1) - }, - }, -} - -T.Templates = { - exterior_sidrat = { override = true, fail = function() ErrorNoHalt("Failed to add SIDRAT default exterior") end, }, -} - -TARDIS:AddInterior(T) diff --git a/lua/tardis/interiors/default_tt_capsule_type40.lua b/lua/tardis/interiors/default_tt_capsule_type40.lua deleted file mode 100644 index 842542d08..000000000 --- a/lua/tardis/interiors/default_tt_capsule_type40.lua +++ /dev/null @@ -1,37 +0,0 @@ --- Default (TT Mk1 Capsule) - -local T = {} -T.Base = "default" -T.Name = "Interiors.DefaultTTCapsuleType40" -T.ID = "default_tt_type40" - -T.IsVersionOf = "default" - -T.Interior = { - Portal = { - pos = Vector(316.7, 334.9, -36.5), - ang = Angle(0, 230, 0), - width = 55, - height = 95 - }, - Parts = { - default_doorframe = { - pos = Vector(317, 336.3, -80.4), - ang = Angle(0, -40, 0), - scale = 0.764, - matrixScale = Vector(1, 1, 1.118) - }, - default_doorframe_bottom = { - matrixScale = Vector(0.53, 1.02, 1) - }, - default_doorframe_bottom2 = { - matrixScale = Vector(0.54, 1.02, 1) - }, - }, -} - -T.Templates = { - exterior_ttcapsule_type40 = { override = true, fail = function() ErrorNoHalt("Failed to add ttcapsule_type40 default exterior") end, }, -} - -TARDIS:AddInterior(T) diff --git a/lua/tardis/interiors/default_tt_capsule_type50.lua b/lua/tardis/interiors/default_tt_capsule_type50.lua deleted file mode 100644 index 4d8390a62..000000000 --- a/lua/tardis/interiors/default_tt_capsule_type50.lua +++ /dev/null @@ -1,37 +0,0 @@ --- Default (TT Mk2 Capsule) - -local T = {} -T.Base = "default" -T.Name = "Interiors.DefaultTTCapsuleType50" -T.ID = "default_tt_type50" - -T.IsVersionOf = "default" - -T.Interior = { - Portal = { - pos = Vector(316.7, 334.9, -31.9), - ang = Angle(0, 230, 0), - width = 40, - height = 99 - }, - Parts = { - default_doorframe = { - pos = Vector(317, 336.3, -80.4), - ang = Angle(0, -40, 0), - scale = 0.764, - matrixScale = Vector(0.88, 1, 1.19) - }, - default_doorframe_bottom = { - matrixScale = Vector(0.88, 0.9, 1) - }, - default_doorframe_bottom2 = { - matrixScale = Vector(0.88, 0.9, 1) - }, - }, -} - -T.Templates = { - exterior_ttcapsule_type50 = { override = true, fail = function() ErrorNoHalt("Failed to add ttcapsule_type50 default exterior") end, }, -} - -TARDIS:AddInterior(T) diff --git a/lua/tardis/interiors/default_tt_capsule_type55.lua b/lua/tardis/interiors/default_tt_capsule_type55.lua deleted file mode 100644 index 37d87b1ca..000000000 --- a/lua/tardis/interiors/default_tt_capsule_type55.lua +++ /dev/null @@ -1,37 +0,0 @@ --- Default (TT Mk3 Capsule) - -local T = {} -T.Base = "default" -T.Name = "Interiors.DefaultTTCapsuleType55" -T.ID = "default_tt_type55" - -T.IsVersionOf = "default" - -T.Interior = { - Portal = { - pos = Vector(316.7, 334.9, -36.5), - ang = Angle(0, 230, 0), - width = 31, - height = 91 - }, - Parts = { - default_doorframe = { - pos = Vector(317, 336.3, -80), - ang = Angle(0, -40, 0), - scale = 0.764, - matrixScale = Vector(0.58, 1, 1.083) - }, - default_doorframe_bottom = { - matrixScale = Vector(0.53, 0.6, 1) - }, - default_doorframe_bottom2 = { - matrixScale = Vector(0.54, 0.6, 1) - }, - }, -} - -T.Templates = { - exterior_ttcapsule_type55 = { override = true, fail = function() ErrorNoHalt("Failed to add ttcapsule_type55 default exterior") end, }, -} - -TARDIS:AddInterior(T) diff --git a/lua/tardis/interiors/default_tt_capsule_type55b.lua b/lua/tardis/interiors/default_tt_capsule_type55b.lua deleted file mode 100644 index 47aaae649..000000000 --- a/lua/tardis/interiors/default_tt_capsule_type55b.lua +++ /dev/null @@ -1,42 +0,0 @@ --- Default (TT Capsule) - -local T = {} -T.Base = "default" -T.Name = "Interiors.DefaultTTCapsuleType55B" -T.ID = "default_tt_type55b" - -T.IsVersionOf = "default" - -T.Interior = { - Portal = { - pos = Vector(316.7, 334.9, -36.5), - ang = Angle(0, 230, 0), - width = 31, - height = 91 - }, - Parts = { - default_doorframe = { - pos = Vector(317, 336.3, -80), - ang = Angle(0, -40, 0), - scale = 0.764, - matrixScale = Vector(0.58, 1, 1.083) - }, - default_doorframe_bottom = { - matrixScale = Vector(0.53, 0.6, 1) - }, - default_doorframe_bottom2 = { - matrixScale = Vector(0.54, 0.6, 1) - }, - }, -} -T.Exterior = { - Portal = { - thickness = 30 - } -} - -T.Templates = { - ttcapsule = { override = true, fail = function() ErrorNoHalt("Failed to add ttcapsule_type55b default exterior") end, }, -} - -TARDIS:AddInterior(T) diff --git a/lua/tardis/interiors/exteriors/ext_default.lua b/lua/tardis/interiors/exteriors/ext_default.lua deleted file mode 100644 index ee99b142d..000000000 --- a/lua/tardis/interiors/exteriors/ext_default.lua +++ /dev/null @@ -1,4 +0,0 @@ -TARDIS:ImportExterior("default", { - category = "Exteriors.Categories.PoliceBoxes", - name = "Exteriors.DefaultPoliceBox", -}) diff --git a/lua/tardis/interiors/exteriors/legacy_exterior.lua b/lua/tardis/interiors/exteriors/legacy_exterior.lua new file mode 100644 index 000000000..9a8a5ac5f --- /dev/null +++ b/lua/tardis/interiors/exteriors/legacy_exterior.lua @@ -0,0 +1,42 @@ +local E = { + ID = "legacy", + Name = "Exteriors.LegacyPoliceBox", + Base = "base", + Category = "Exteriors.Categories.PoliceBoxes", + + Parts = { + door = { + posoffset=Vector(-28,0,-54.6) + } + }, + Sounds = { + Teleport = { + demat = "drmatt/tardis/demat.wav", + demat_fast = "drmatt/tardis/demat.wav", + demat_hads = "p00gie/tardis/demat_hads.wav", + mat = "drmatt/tardis/mat.wav", + mat_fast = "p00gie/tardis/mat_fast.wav", + mat_damaged_fast = "p00gie/tardis/mat_damaged_fast.wav", + fullflight = "drmatt/tardis/full.wav", + interrupt = "drmatt/tardis/repairfinish.wav", + }, + Spawn = "drmatt/tardis/repairfinish.wav", + RepairFinish = "drmatt/tardis/repairfinish.wav", + Delete = "p00gie/tardis/tardis_delete.wav", + FlightLand = "p00gie/tardis/tardis_landing.wav", + }, + Light = { + warncolor = Color(255,200,200), + }, + PhaseMaterial = "models/drmatt/tardis/exterior/phase.vmt", + Portal = { + pos = Vector(28,0,54.6), + ang = Angle(0,0,0), + width = 45, + height = 92, + thickness = 42, + inverted = true, + }, +} + +TARDIS:AddExterior(E) \ No newline at end of file diff --git a/lua/tardis/interiors/sequences/default_sequences.lua b/lua/tardis/interiors/sequences/default_sequences.lua deleted file mode 100644 index a51b72a84..000000000 --- a/lua/tardis/interiors/sequences/default_sequences.lua +++ /dev/null @@ -1,27 +0,0 @@ ---Default Interior - Control Sequences (advanced mode) - -local Seq = { - ID = "default_sequences", - - ["default_dematcircuit"] = { - Controls = { - "default_helmic", - "default_physlock", - "default_handbrake", - "default_throttle" - }, - OnFinish = function(self, ply, step, part) - if IsValid(self) and IsValid(self) then - self.exterior:Demat() - end - end, - OnFail = function(self, ply, step, part) - -- Fail stuff - end, - Condition = function(self) - return self.exterior:GetData("vortex",false)==false and self.exterior:GetData("teleport",false)==false - end - } -} - -TARDIS:AddControlSequence(Seq) \ No newline at end of file diff --git a/lua/tardis/interiors/templates/sidrat.lua b/lua/tardis/interiors/templates/sidrat.lua deleted file mode 100644 index 41f045e43..000000000 --- a/lua/tardis/interiors/templates/sidrat.lua +++ /dev/null @@ -1,59 +0,0 @@ -T = { - Exterior = { - Model="models/artixc/exteriors/sidrat.mdl", - Mass=5000, - Portal={ - pos=Vector(29.75, 0, 46.5), - ang=Angle(0,0,0), - width=25, - height=87, - thickness = 25, - inverted = true, - }, - Fallback={ - pos=Vector(44,0,7), - ang=Angle(0,0,0) - }, - Light={ - enabled=false, - }, - Sounds={ - Teleport={ - demat="vtalanov98/hellbentext/demat.wav", - mat="vtalanov98/hellbentext/mat.wav" - }, - Lock="vtalanov98/hellbentext/lock.wav", - Door={ - enabled=true, - open="vtalanov98/hellbentext/doorext_open.wav", - close="vtalanov98/hellbentext/doorext_close.wav", - }, - FlightLoop="vtalanov98/hellbentext/flight_loop.wav", - }, - Parts={ - door={ - model="models/artixc/exteriors/sidrat_door.mdl", - posoffset=Vector(-29.85,0,-46.45), - angoffset=Angle(0,0,0), - }, - } - }, - Interior = { - Parts={ - door={ - model="models/artixc/exteriors/sidrat_door.mdl", - posoffset=Vector(29.85,0,-46.45), - }, - } - }, -} - -TARDIS:AddInteriorTemplate("exterior_sidrat", T) - -local E = TARDIS:CopyTable(T.Exterior) -E.ID = "sidrat" -E.Base = "base" -E.Name = "Exteriors.SIDRAT" -E.Category = "Exteriors.Categories.TTCapsules" - -TARDIS:AddExterior(E) \ No newline at end of file diff --git a/lua/tardis/interiors/templates/templates_default_exterior.lua b/lua/tardis/interiors/templates/templates_default_exterior.lua new file mode 100644 index 000000000..85319b1eb --- /dev/null +++ b/lua/tardis/interiors/templates/templates_default_exterior.lua @@ -0,0 +1,67 @@ +local E = { + ID = "default", + Name = "Exteriors.DefaultPoliceBox", + Base = "base", + Category = "Exteriors.Categories.PoliceBoxes", + + Model="models/molda/toyota_ext/exterior.mdl", + Mass=2900, + DoorAnimationTime = 0.6, + + Parts = { + door = { + model="models/vtalanov98/toyota_ext/doors_exterior.mdl", + posoffset=Vector(-4.42, 0, -52.33), + angoffset=Angle(0,0,0), + } + }, + + Portal = { + -- Generated by portals debug tool + pos = Vector(30.899990081787, 7.5340270996094e-05, 52.330177307129), + ang = Angle(-3.3871641602623e-10, -1.7075475398087e-06, 8.3376339166108e-10), + width = 45, + height = 92, + thickness = 42, + inverted = true, + }, + + Sounds = { + Teleport = { + demat = "p00gie/tardis/default/demat_ext.ogg", + demat_fast = "p00gie/tardis/default/demat_ext.ogg", + demat_hads = "p00gie/tardis/demat_hads.wav", + mat = "p00gie/tardis/default/mat_ext.ogg", + mat_fast = "p00gie/tardis/default/mat_fast.ogg", + mat_damaged_fast = "p00gie/tardis/mat_damaged_fast.wav", + fullflight = "p00gie/tardis/default/full_ext.ogg", + interrupt = "drmatt/tardis/repairfinish.wav", + }, + Door = { + enabled = true, + open = "p00gie/tardis/default/door_open.ogg", + close = "p00gie/tardis/default/door_close.ogg", + }, + RepairFinish = "drmatt/tardis/repairfinish.wav", + FlightLand = "p00gie/tardis/default/tardis_land.ogg", + }, + Light = { + enabled = true, + pos = Vector(0,0,122), + color = Color(160,190,255), + dynamicpos = Vector(0,0,130), + dynamicbrightness = 3, + dynamicsize = 500, + warncolor = Color(190,170,170), + }, + Teleport = { + DematSequenceDelays={ + [1] = 2.5 + }, + }, + ScannerOffset = Vector(25,0,50), +} + +TARDIS:AddExterior(E) + +TARDIS:AddInteriorTemplate("default_exterior", { Exterior = E, }) \ No newline at end of file diff --git a/lua/tardis/interiors/templates/templates_default_interior.lua b/lua/tardis/interiors/templates/templates_default_interior.lua new file mode 100644 index 000000000..7a7dad662 --- /dev/null +++ b/lua/tardis/interiors/templates/templates_default_interior.lua @@ -0,0 +1,283 @@ +local function generate_lamps(n, l_brightness, l_fov) + local lp = Vector(197, 0, 340) + local la = Angle(86.8, 0, 90) + local up = Vector(0,0,1) + + local v0 = Vector(0,0,0) + local a0 = Angle(0,0,0) + + local ra = 360 / n + + local lamp_positions = {} + for i = 1,n do + lamp_positions[i] = { pos = v0 + lp, ang = a0 + la, } + lp:Rotate(Angle(0,ra,0)) + la:RotateAroundAxis(up, ra) + end + + local lamps = {} + + for i = 1,n do + lamps[i] = { + color = Color(255, 255, 230), + texture = "effects/flashlight/soft", + fov = l_fov, + distance = 290, + brightness = l_brightness, + shadows = false, + pos = lamp_positions[i].pos, + ang = lamp_positions[i].ang, + warn = { + brightness = l_brightness * 0.5, + }, + states = { + ["normal"] = { + enabled = true, + brightness = l_brightness, + }, + ["moving"] = { + enabled = false, + }, + }, + } + end + + return lamps +end + +TARDIS:AddInteriorTemplate("default_lamps", { + Interior = { + LightOverride = { + basebrightness = 0.01, + parts = { + default_rings = 0.05, + default_corridors = 0.05, + default_intdoors = 0.05, + default_intdoors_static = 0.05, + default_corridor_doors_static = 0.05, + }, + parts_nopower = { + default_rings = 0.001, + }, + }, + Lamps = generate_lamps(5, 0.6, 165), + Light={ + brightness = 5, + warn_brightness = 4, + }, + }, + CustomHooks = { + lamps_toggle = { + exthooks = { + ["DematStart"] = true, + ["StopMat"] = true, + ["FlightToggled"] = true, + }, + func = function(ext,int) + if SERVER then return end + if not IsValid(int) then return end + + if ext:GetData("demat") or ext:GetData("flight") or ext:GetData("mat") then + int:ApplyLightState("moving") + else + int:ApplyLightState("normal") + end + end, + }, + thirdperson_lamps_update = { + exthooks = { + ["ThirdPerson"] = true, + }, + func = function(ext,int,ply,enabled) + if SERVER then return end + if not IsValid(int) then return end + if enabled then return end + + if ext:GetData("teleport") or ext:GetData("vortex") or ext:GetData("flight") then + int:ApplyLightState("moving") + else + int:ApplyLightState("normal") + end + end, + }, + }, +}) + +TARDIS:AddInteriorTemplate("default_more_lamps", { + Interior = { + Lamps = generate_lamps(9, 0.5, 150), + }, +}) + +TARDIS:AddInteriorTemplate("default_dynamic_color", { + CustomHooks = { + int_color = { + inthooks = { ["Think"] = true }, + func = function(ext,int,frame_time) + if not IsValid(int) then return end + + if SERVER then + local speed = 0.001 + + local k = ext:GetData("default_int_color_mult", math.Rand(0,1)) + local target = ext:GetData("default_int_color_target") + if not target then + target = math.random(2) - 1 + ext:SetData("default_int_color_target", target) + end + + k = math.Approach(k, target, frame_time * speed) + + ext:SetData("default_int_color_mult", k, true) + if k == target then + ext:SetData("default_int_color_target", 1 - target, true) + end + end + end, + }, + }, +}) + +local function get_color_setting_k(ply) + local st = TARDIS:GetCustomSetting("default", "color", ply) + + if st == "blue" then + return 0 + end + if st == "green" then + return 1 + end + if st == "turquoise" then + return 0.5 + end + if st == "random" then + return math.Rand(0,1) + end + return 0 +end + +TARDIS:AddInteriorTemplate("default_fixed_color", { + CustomHooks = { + int_color = { + inthooks = { + ["PostInitialize"] = true + }, + func = function(ext,int,frame_time) + if CLIENT then return end + + local k = get_color_setting_k(ext:GetCreator()) + int:SetData("default_int_color_mult", k, true) + end, + }, + }, +}) + +local function change_light_color(lt, col) + if lt and lt.brightness and col then + lt.color = col + lt.color_vec = Vector(col.r/255, col.g/255, col.b/255) * lt.brightness + lt.render_table.color = lt.color_vec + end +end + +local function set_interior_color(int, k) + if not int.light_data then return end + + local p = 1 - k + + -- Color(0,180,255) ... Color(0,235,200) + local col = Color(0, 180 + 55 * k, 200 + 55 * p) + + int:SetData("default_int_env_color", col) + + change_light_color(int.light_data.main, col) + change_light_color(int.light_data.extra.console_bottom, col) + + -- Color(80, 120, 255) ... Color (80, 255, 120) + local rotor_col = Color(80, 120 + 125 * k, 120 + 125 * p) + int:SetData("default_int_rotor_color", rotor_col) + + -- Color(240,240,255) ... Color(255,255,200) + local console_col = Color(240 + 15 * k, 240 + 15 * k, 200 + 55 * p) + change_light_color(int.light_data.extra.console_white, console_col) + + -- Color(255,255,255) ... Color(255,255,220) + local floor_lights_col = Color(255, 255, 220 + 20 * p) + int:SetData("default_int_floor_lights_color", floor_lights_col) + + int:SetData("default_int_color_set_mult", k) +end + +TARDIS:AddInteriorTemplate("default_color_update", { + CustomHooks = { + int_color_update = { + inthooks = { ["Think"] = true }, + func = function(ext,int,frame_time) + if SERVER or not IsValid(int) then return end + + local k = int:GetData("default_int_color_mult") + if not k then return end + + if k ~= int:GetData("default_int_color_set_mult") then + set_interior_color(int, k) + end + end, + }, + }, +}) + + +TARDIS:AddInteriorTemplate("default_small_version", { + Interior = { + ExitDistance = 600, + Parts = { + default_rotor = { + model = "models/molda/toyota_int/rotor_small.mdl", + }, + default_intdoors = false, + default_intdoors_static = { pos = Vector(73.559, -417.853, 47.506), ang = Angle(0,10,0), }, + default_corridor_doors_static = { pos = Vector(-475.5, 213, 160.8) }, + default_corridors = { + model = "models/molda/toyota_int/corridor_version3.mdl" + }, + }, + }, +}) + +TARDIS:AddInteriorTemplate("default_screens_off", { + CustomHooks = { + screens_init = { + inthooks = { + ["Initialize"] = true, + }, + func = function(ext,int,id) + ext:SetData("default_screen_enabled_1", false, true) + ext:SetData("default_screen_enabled_2", false, true) + end, + }, + }, + Interior = { + Parts = { + default_flat_switch_1 = { EnabledOnStart = false, }, + }, + }, +}) + +TARDIS:AddInteriorTemplate("default_screens_on", { + CustomHooks = { + screens_init = { + inthooks = { + ["Initialize"] = true, + }, + func = function(ext,int,id) + ext:SetData("default_screen_enabled_1", true, true) + ext:SetData("default_screen_enabled_2", false, true) + end, + }, + }, + Interior = { + Parts = { + default_flat_switch_1 = { EnabledOnStart = true, }, + }, + }, +}) diff --git a/lua/tardis/interiors/templates/templates_tt_capsule_exteriors.lua b/lua/tardis/interiors/templates/templates_tt_capsule_exteriors.lua new file mode 100644 index 000000000..2b10ca64e --- /dev/null +++ b/lua/tardis/interiors/templates/templates_tt_capsule_exteriors.lua @@ -0,0 +1,253 @@ +local T = { + Exterior = { + Model="models/artixc/exteriors/sidrat.mdl", + Mass=5000, + Portal={ + pos=Vector(29.75, 0, 46.5), + ang=Angle(0,0,0), + width=25, + height=87, + thickness = 25, + inverted = true, + }, + Fallback={ + pos=Vector(44,0,7), + ang=Angle(0,0,0) + }, + Light={ + enabled=false, + }, + Sounds={ + Teleport={ + demat="vtalanov98/hellbentext/demat.wav", + mat="vtalanov98/hellbentext/mat.wav" + }, + Lock="vtalanov98/hellbentext/lock.wav", + Door={ + enabled=true, + open="vtalanov98/hellbentext/doorext_open.wav", + close="vtalanov98/hellbentext/doorext_close.wav", + }, + FlightLoop="vtalanov98/hellbentext/flight_loop.wav", + }, + Parts={ + door={ + model="models/artixc/exteriors/sidrat_door.mdl", + posoffset=Vector(-29.85,0,-46.45), + angoffset=Angle(0,0,0), + }, + } + }, + Interior = { + Parts={ + door={ + model="models/artixc/exteriors/sidrat_door.mdl", + posoffset=Vector(29.85,0,-46.45), + }, + } + }, +} + +TARDIS:AddInteriorTemplate("exterior_sidrat", T) + + +local E = TARDIS:CopyTable(T.Exterior) +E.ID = "sidrat" +E.Base = "base" +E.Name = "Exteriors.SIDRAT" +E.Category = "Exteriors.Categories.TTCapsules" + +TARDIS:AddExterior(E) + + + +local T = { + Exterior = { + Model="models/artixc/exteriors/mk1.mdl", + Mass=5000, + Portal={ + pos=Vector(30, 0, 46.73), + ang=Angle(0,0,0), + width=40, + height=92, + thickness = 25, + inverted = true, + }, + Fallback={ + pos=Vector(44,0,7), + ang=Angle(0,0,0) + }, + Light={ + enabled=false, + }, + Sounds={ + Teleport={ + demat="vtalanov98/hellbentext/demat.wav", + mat="vtalanov98/hellbentext/mat.wav" + }, + Lock="vtalanov98/hellbentext/lock.wav", + Door={ + enabled=true, + open="vtalanov98/hellbentext/doorext_open.wav", + close="vtalanov98/hellbentext/doorext_close.wav", + }, + FlightLoop="vtalanov98/hellbentext/flight_loop.wav", + }, + Parts={ + door={ + model="models/artixc/exteriors/mk1_door.mdl", + posoffset=Vector(-30.05,0,-46.45), + angoffset=Angle(0,0,0), + }, + }, + ScannerOffset = Vector(30,0,50), + }, + Interior = { + Parts={ + door={ + model="models/artixc/exteriors/mk1_door.mdl", + posoffset=Vector(30.05,0,-46.45), + use_exit_point_offset = true, + }, + } + }, +} + +TARDIS:AddInteriorTemplate("exterior_ttcapsule_type40", T) + + +local E = TARDIS:CopyTable(T.Exterior) +E.ID = "ttcapsule_type40" +E.Base = "base" +E.Name = "Exteriors.TTCapsuleType40" +E.Category = "Exteriors.Categories.TTCapsules" + +TARDIS:AddExterior(E) + + + +local T = { + Exterior = { + Model="models/artixc/exteriors/mk2.mdl", + Mass=5000, + Portal={ + pos=Vector(28, 0, 57.1), + ang=Angle(0,0,0), + width=40, + height=96, + thickness = 25, + inverted = true, + }, + Fallback={ + pos=Vector(44,0,7), + ang=Angle(0,0,0) + }, + Light={ + enabled=false, + }, + Sounds={ + Teleport={ + demat="vtalanov98/hellbentext/demat.wav", + mat="vtalanov98/hellbentext/mat.wav" + }, + Lock="vtalanov98/hellbentext/lock.wav", + Door={ + enabled=true, + open="vtalanov98/hellbentext/doorext_open.wav", + close="vtalanov98/hellbentext/doorext_close.wav", + }, + FlightLoop="vtalanov98/hellbentext/flight_loop.wav", + }, + Parts={ + door={ + model="models/artixc/exteriors/mk2_door.mdl", + posoffset=Vector(-27.95,0,-56.2), + angoffset=Angle(0,0,0), + }, + } + }, + Interior = { + Parts={ + door={ + model="models/artixc/exteriors/mk2_door.mdl", + posoffset=Vector(27.95,0,-56.2), + use_exit_point_offset = true, + }, + } + }, +} + +TARDIS:AddInteriorTemplate("exterior_ttcapsule_type50", T) + +local E = TARDIS:CopyTable(T.Exterior) +E.ID = "ttcapsule_type50" +E.Base = "base" +E.Name = "Exteriors.TTCapsuleType50" +E.Category = "Exteriors.Categories.TTCapsules" + +TARDIS:AddExterior(E) + + + +local T = { + Exterior = { + Model="models/artixc/exteriors/mk3.mdl", + Mass=5000, + Portal={ + pos=Vector(18.85, 0, 52.6), + ang=Angle(0,0,0), + width=26, + height=87, + thickness = 25, + inverted = true, + }, + Fallback={ + pos=Vector(44,0,7), + ang=Angle(0,0,0) + }, + Light={ + enabled=false, + }, + Sounds={ + Teleport={ + demat="vtalanov98/hellbentext/demat.wav", + mat="vtalanov98/hellbentext/mat.wav" + }, + Lock="vtalanov98/hellbentext/lock.wav", + Door={ + enabled=true, + open="vtalanov98/hellbentext/doorext_open.wav", + close="vtalanov98/hellbentext/doorext_close.wav", + }, + FlightLoop="vtalanov98/hellbentext/flight_loop.wav", + }, + Parts={ + door={ + model="models/artixc/exteriors/mk3_door.mdl", + posoffset=Vector(-5,12.54,-43.55), + angoffset=Angle(0,0,0), + }, + } + }, + Interior = { + Parts={ + door={ + model="models/artixc/exteriors/mk3_door.mdl", + posoffset=Vector(5,-12.54,-43.55), + use_exit_point_offset = true, + }, + } + }, +} + +TARDIS:AddInteriorTemplate("exterior_ttcapsule_type55", T) +TARDIS:AddInteriorTemplate("ttcapsule", T) + +local E = TARDIS:CopyTable(T.Exterior) +E.ID = "ttcapsule_type55" +E.Base = "base" +E.Name = "Exteriors.TTCapsuleType55" +E.Category = "Exteriors.Categories.TTCapsules" + +TARDIS:AddExterior(E) + diff --git a/lua/tardis/interiors/templates/tt_capsule_type40.lua b/lua/tardis/interiors/templates/tt_capsule_type40.lua deleted file mode 100644 index 87f56baf6..000000000 --- a/lua/tardis/interiors/templates/tt_capsule_type40.lua +++ /dev/null @@ -1,61 +0,0 @@ -T = { - Exterior = { - Model="models/artixc/exteriors/mk1.mdl", - Mass=5000, - Portal={ - pos=Vector(30, 0, 46.73), - ang=Angle(0,0,0), - width=40, - height=92, - thickness = 25, - inverted = true, - }, - Fallback={ - pos=Vector(44,0,7), - ang=Angle(0,0,0) - }, - Light={ - enabled=false, - }, - Sounds={ - Teleport={ - demat="vtalanov98/hellbentext/demat.wav", - mat="vtalanov98/hellbentext/mat.wav" - }, - Lock="vtalanov98/hellbentext/lock.wav", - Door={ - enabled=true, - open="vtalanov98/hellbentext/doorext_open.wav", - close="vtalanov98/hellbentext/doorext_close.wav", - }, - FlightLoop="vtalanov98/hellbentext/flight_loop.wav", - }, - Parts={ - door={ - model="models/artixc/exteriors/mk1_door.mdl", - posoffset=Vector(-30.05,0,-46.45), - angoffset=Angle(0,0,0), - }, - }, - ScannerOffset = Vector(30,0,50), - }, - Interior = { - Parts={ - door={ - model="models/artixc/exteriors/mk1_door.mdl", - posoffset=Vector(30.05,0,-46.45), - use_exit_point_offset = true, - }, - } - }, -} - -TARDIS:AddInteriorTemplate("exterior_ttcapsule_type40", T) - -local E = TARDIS:CopyTable(T.Exterior) -E.ID = "ttcapsule_type40" -E.Base = "base" -E.Name = "Exteriors.TTCapsuleType40" -E.Category = "Exteriors.Categories.TTCapsules" - -TARDIS:AddExterior(E) \ No newline at end of file diff --git a/lua/tardis/interiors/templates/tt_capsule_type50.lua b/lua/tardis/interiors/templates/tt_capsule_type50.lua deleted file mode 100644 index f3e9070b7..000000000 --- a/lua/tardis/interiors/templates/tt_capsule_type50.lua +++ /dev/null @@ -1,60 +0,0 @@ -T = { - Exterior = { - Model="models/artixc/exteriors/mk2.mdl", - Mass=5000, - Portal={ - pos=Vector(28, 0, 57.1), - ang=Angle(0,0,0), - width=40, - height=96, - thickness = 25, - inverted = true, - }, - Fallback={ - pos=Vector(44,0,7), - ang=Angle(0,0,0) - }, - Light={ - enabled=false, - }, - Sounds={ - Teleport={ - demat="vtalanov98/hellbentext/demat.wav", - mat="vtalanov98/hellbentext/mat.wav" - }, - Lock="vtalanov98/hellbentext/lock.wav", - Door={ - enabled=true, - open="vtalanov98/hellbentext/doorext_open.wav", - close="vtalanov98/hellbentext/doorext_close.wav", - }, - FlightLoop="vtalanov98/hellbentext/flight_loop.wav", - }, - Parts={ - door={ - model="models/artixc/exteriors/mk2_door.mdl", - posoffset=Vector(-27.95,0,-56.2), - angoffset=Angle(0,0,0), - }, - } - }, - Interior = { - Parts={ - door={ - model="models/artixc/exteriors/mk2_door.mdl", - posoffset=Vector(27.95,0,-56.2), - use_exit_point_offset = true, - }, - } - }, -} - -TARDIS:AddInteriorTemplate("exterior_ttcapsule_type50", T) - -local E = TARDIS:CopyTable(T.Exterior) -E.ID = "ttcapsule_type50" -E.Base = "base" -E.Name = "Exteriors.TTCapsuleType50" -E.Category = "Exteriors.Categories.TTCapsules" - -TARDIS:AddExterior(E) \ No newline at end of file diff --git a/lua/tardis/interiors/templates/tt_capsule_type55.lua b/lua/tardis/interiors/templates/tt_capsule_type55.lua deleted file mode 100644 index cc55b5997..000000000 --- a/lua/tardis/interiors/templates/tt_capsule_type55.lua +++ /dev/null @@ -1,60 +0,0 @@ -T = { - Exterior = { - Model="models/artixc/exteriors/mk3.mdl", - Mass=5000, - Portal={ - pos=Vector(18.85, 0, 52.6), - ang=Angle(0,0,0), - width=26, - height=87, - thickness = 25, - inverted = true, - }, - Fallback={ - pos=Vector(44,0,7), - ang=Angle(0,0,0) - }, - Light={ - enabled=false, - }, - Sounds={ - Teleport={ - demat="vtalanov98/hellbentext/demat.wav", - mat="vtalanov98/hellbentext/mat.wav" - }, - Lock="vtalanov98/hellbentext/lock.wav", - Door={ - enabled=true, - open="vtalanov98/hellbentext/doorext_open.wav", - close="vtalanov98/hellbentext/doorext_close.wav", - }, - FlightLoop="vtalanov98/hellbentext/flight_loop.wav", - }, - Parts={ - door={ - model="models/artixc/exteriors/mk3_door.mdl", - posoffset=Vector(-5,12.54,-43.55), - angoffset=Angle(0,0,0), - }, - } - }, - Interior = { - Parts={ - door={ - model="models/artixc/exteriors/mk3_door.mdl", - posoffset=Vector(5,-12.54,-43.55), - use_exit_point_offset = true, - }, - } - }, -} - -TARDIS:AddInteriorTemplate("exterior_ttcapsule_type55", T) - -local E = TARDIS:CopyTable(T.Exterior) -E.ID = "ttcapsule_type55" -E.Base = "base" -E.Name = "Exteriors.TTCapsuleType55" -E.Category = "Exteriors.Categories.TTCapsules" - -TARDIS:AddExterior(E) \ No newline at end of file diff --git a/lua/tardis/interiors/templates/tt_capsule_type55b.lua b/lua/tardis/interiors/templates/tt_capsule_type55b.lua deleted file mode 100644 index afaaa6621..000000000 --- a/lua/tardis/interiors/templates/tt_capsule_type55b.lua +++ /dev/null @@ -1,60 +0,0 @@ -T = { - Exterior = { - Model="models/vtalanov98/hellbentext/exterior.mdl", - Mass=5000, - Portal={ - pos=Vector(16.76,0,52.22), - ang=Angle(0,0,0), - width=30, - height=88, - thickness = 25, - inverted = true, - }, - Fallback={ - pos=Vector(44,0,7), - ang=Angle(0,0,0) - }, - Light={ - enabled=false, - }, - Sounds={ - Teleport={ - demat="vtalanov98/hellbentext/demat.wav", - mat="vtalanov98/hellbentext/mat.wav" - }, - Lock="vtalanov98/hellbentext/lock.wav", - Door={ - enabled=true, - open="vtalanov98/hellbentext/doorext_open.wav", - close="vtalanov98/hellbentext/doorext_close.wav", - }, - FlightLoop="vtalanov98/hellbentext/flight_loop.wav", - }, - Parts={ - door={ - model="models/vtalanov98/hellbentext/doorsext.mdl", - posoffset=Vector(-3,0,0), - angoffset=Angle(0,0,0) - }, - } - }, - Interior = { - Parts={ - door={ - model="models/vtalanov98/hellbentext/doors.mdl", - posoffset=Vector(3, 0, 0), - use_exit_point_offset = true, - }, - } - }, -} - -TARDIS:AddInteriorTemplate("ttcapsule", T) - -local E = TARDIS:CopyTable(T.Exterior) -E.ID = "ttcapsule_type55b" -E.Base = "base" -E.Name = "Exteriors.TTCapsuleType55B" -E.Category = "Exteriors.Categories.TTCapsules" - -TARDIS:AddExterior(E) \ No newline at end of file diff --git a/lua/tardis/languages/cy.lua b/lua/tardis/languages/cy.lua index ad7c2c4ec..e3faf18db 100644 --- a/lua/tardis/languages/cy.lua +++ b/lua/tardis/languages/cy.lua @@ -243,7 +243,6 @@ T.Phrases = { ["Exteriors.TTCapsuleType40"] = "Math Capsiwl TT 40", ["Exteriors.TTCapsuleType50"] = "Math Capsiwl TT 50", ["Exteriors.TTCapsuleType55"] = "Math Capsiwl TT 55", - ["Exteriors.TTCapsuleType55B"] = "Capsiwl TT Math 55-B", ["Flight.DoorOpenNoBoost"] = "Nid yw Boost yn gweithio gyda drysau ar agor", ["Flight.NameIsNowThePilot"] = "%s yw'r peilot bellach", ["Flight.NameIsThePilot"] = "%s yw'r peilot", @@ -267,12 +266,10 @@ T.Phrases = { ["Interiors.Default.Versions.TTCapsuleType40"] = "TT Capsiwl Math 40 Allanol", ["Interiors.Default.Versions.TTCapsuleType50"] = "TT Capsiwl Math 50 Allanol", ["Interiors.Default.Versions.TTCapsuleType55"] = "Math Capsiwl TT 55 Allanol", - ["Interiors.Default.Versions.TTCapsuleType55B"] = "Capsiwl TT Math 55-B Allanol", ["Interiors.DefaultSIDRAT"] = "SIDRAT Diofyn", ["Interiors.DefaultTTCapsuleType40"] = "Math Capsiwl TT 40 Rhagosodedig", ["Interiors.DefaultTTCapsuleType50"] = "Math Capsiwl TT 50 Rhagosodiad", ["Interiors.DefaultTTCapsuleType55"] = "Math Capsiwl TT 55 Rhagosodedig", - ["Interiors.DefaultTTCapsuleType55B"] = "Math Capsiwl TT 55-B Rhagosodiad", ["Lock.Locked"] = "Mae'r TARDIS hwn wedi'i gloi", ["MenuOptions.ConfirmResetSettings"] = "Ailosod pob gosodiad ar ochr y cleient? Ni ellir dadwneud hyn.", ["MenuOptions.ConfirmSectionReset"] = "Ailosod gosodiadau ochr cleientiaid yn adran \"%s\"? Ni ellir dadwneud hyn.", diff --git a/lua/tardis/languages/de.lua b/lua/tardis/languages/de.lua index 3498ee8db..d5e7e172c 100644 --- a/lua/tardis/languages/de.lua +++ b/lua/tardis/languages/de.lua @@ -243,7 +243,6 @@ T.Phrases = { ["Exteriors.TTCapsuleType40"] = "TT-Kapsel Typ 40", ["Exteriors.TTCapsuleType50"] = "TT-Kapsel Typ 50", ["Exteriors.TTCapsuleType55"] = "TT-Kapsel Typ 55", - ["Exteriors.TTCapsuleType55B"] = "TT-Kapsel Typ 55-B", ["Flight.DoorOpenNoBoost"] = "Boost funktioniert nicht bei offenen Türen", ["Flight.NameIsNowThePilot"] = "%s ist jetzt der Pilot", ["Flight.NameIsThePilot"] = "%s ist der Pilot", @@ -267,12 +266,10 @@ T.Phrases = { ["Interiors.Default.Versions.TTCapsuleType40"] = "TT-Kapsel Typ 40-Hülle", ["Interiors.Default.Versions.TTCapsuleType50"] = "TT-Kapsel Typ 50-Hülle", ["Interiors.Default.Versions.TTCapsuleType55"] = "TT-Kapsel Typ 55-Hülle", - ["Interiors.Default.Versions.TTCapsuleType55B"] = "TT-Kapsel Typ 55-B-Hülle", ["Interiors.DefaultSIDRAT"] = "Standard SIDRAT", ["Interiors.DefaultTTCapsuleType40"] = "Standard TT-Kapsel Typ 40", ["Interiors.DefaultTTCapsuleType50"] = "Standard TT-Kapsel Typ 50", ["Interiors.DefaultTTCapsuleType55"] = "Standard TT-Kapsel Typ 55", - ["Interiors.DefaultTTCapsuleType55B"] = "Standard TT-Kapsel Typ 55-B", ["Lock.Locked"] = "Diese TARDIS ist abgesperrt", ["MenuOptions.ConfirmResetSettings"] = "Alle clientseitigen Einstellungen zurücksetzen? Dies kann nicht rückgängig gemacht werden.", ["MenuOptions.ConfirmSectionReset"] = "Clientseitige Einstellungen des Abschnitts \"%s\" zurücksetzen? Dies kann nicht rückgängig gemacht werden.", diff --git a/lua/tardis/languages/en.lua b/lua/tardis/languages/en.lua index e944028e5..402f9104a 100644 --- a/lua/tardis/languages/en.lua +++ b/lua/tardis/languages/en.lua @@ -6,6 +6,11 @@ T.Code = "en" T.Name = "English" T.Phrases = { ["Artron.Depleted"] = "Artron energy depleted", + ["ArtronInhibitor"] = "Artron Inhibitor", + ["ArtronInhibitor.Disabled"] = "Artron inhibitor disabled", + ["ArtronInhibitor.Enabled"] = "Artron inhibitor enabled", + ["ArtronInhibitor.Instructions"] = "Creates an Artron Inhibitor field, which drains Artron Energy from nearby TARDISes", + ["ArtronInhibitor.Starting"] = "Starting the artron inhibitor...", ["Binds.AnyKey"] = "Press any key", ["Binds.Invalid"] = "Invalid", ["Binds.Key"] = "Key", @@ -13,16 +18,26 @@ T.Phrases = { ["Binds.Sections.Destination.Backward"] = "Backward", ["Binds.Sections.Destination.Boost"] = "Boost", ["Binds.Sections.Destination.Boost.Description"] = "Hold this key while navigating to speed up", + ["Binds.Sections.Destination.Chameleon"] = "Change chameleon circuit", + ["Binds.Sections.Destination.Chameleon.Description"] = "Press this key to select the chameleon circuit preset", ["Binds.Sections.Destination.Down"] = "Down", + ["Binds.Sections.Destination.FindRandom"] = "Find Random", + ["Binds.Sections.Destination.FindRandom.Description"] = "Press this key to find a random destination", ["Binds.Sections.Destination.Forward"] = "Forward", + ["Binds.Sections.Destination.Jump"] = "Jump to surface", + ["Binds.Sections.Destination.Jump.Description"] = "Hold this key to select a surface and move to it", ["Binds.Sections.Destination.Left"] = "Left", ["Binds.Sections.Destination.Right"] = "Right", ["Binds.Sections.Destination.Rotate"] = "Rotate", ["Binds.Sections.Destination.Rotate.Description"] = "Hold this with the boost and left or right keys to rotate", + ["Binds.Sections.Destination.ShowCurrent"] = "Show current destination", + ["Binds.Sections.Destination.ShowCurrent.Description"] = "Press this key to show the current set destination", ["Binds.Sections.Destination.Slow"] = "Slow", ["Binds.Sections.Destination.Slow.Description"] = "Hold this key to slow movement", - ["Binds.Sections.Destination.SnapToFloor"] = "Snap To Floor", + ["Binds.Sections.Destination.SnapToFloor"] = "Snap to Floor", ["Binds.Sections.Destination.SnapToFloor.Description"] = "Press this key to snap to the nearest floor", + ["Binds.Sections.Destination.ToggleRotationMode"] = "Toggle Rotation Mode", + ["Binds.Sections.Destination.ToggleRotationMode.Description"] = "Press this key to toggle rotation mode", ["Binds.Sections.Destination.Up"] = "Up", ["Binds.Sections.Flight"] = "Flight", ["Binds.Sections.Flight.Backward"] = "Backward", @@ -36,6 +51,10 @@ T.Phrases = { ["Binds.Sections.Flight.Rotate.Description"] = "Hold this key while using left and right to rotate", ["Binds.Sections.Flight.SpinDirection"] = "Spin Direction", ["Binds.Sections.Flight.SpinDirection.Description"] = "Changes which way the TARDIS rotates while flying", + ["Binds.Sections.Flight.Tracking"] = "Tracking", + ["Binds.Sections.Flight.Tracking.Description"] = "Hold to select an entity to track / follow", + ["Binds.Sections.Flight.TrackRotation"] = "Track Rotation", + ["Binds.Sections.Flight.TrackRotation.Description"] = "Toggle tracking the target entities rotation", ["Binds.Sections.Flight.Up"] = "Up", ["Binds.Sections.Float"] = "Float", ["Binds.Sections.Float.Backward"] = "Backward", @@ -62,8 +81,12 @@ T.Phrases = { ["Binds.Sections.ThirdPerson.ToggleFlight"] = "Toggle Flight", ["Binds.Sections.ThirdPerson.ToggleFloat"] = "Toggle Float", ["Binds.Sections.ThirdPerson.ToggleFloat.Description"] = "Lets the TARDIS fly as if there is no gravity", + ["Binds.Sections.ThirdPerson.ToggleHandbrake"] = "Toggle Handbrake", ["Binds.Sections.ThirdPerson.TogglePhyslock"] = "Toggle Physlock", ["Binds.Sections.ThirdPerson.TogglePhyslock.Description"] = "Make the TARDIS constant and unmovable in space", + ["Binds.Sections.ThirdPerson.TogglePower"] = "Toggle Power", + ["Binds.Sections.ThirdPerson.ToggleVortex"] = "Toggle Vortex", + ["Chameleon.ExteriorPlanned"] = "An exterior change has been planned. It will apply when the TARDIS next lands", ["Chameleon.ExteriorSelected"] = "A new exterior has been selected", ["Chameleon.FailedExteriorSelect"] = "Failed to select a new exterior", ["Chameleon.FailReasons.AlreadyChanging"] = "The exterior is being changed already!", @@ -187,6 +210,9 @@ T.Phrases = { ["Controls.Repair.FailedToggle"] = "Failed to toggle self-repair", ["Controls.Repair.Tip"] = "Self-Repair", ["Controls.Scanner.Tip"] = "Scanner", + ["Controls.Shields"] = "Shields", + ["Controls.Shields.FailedToggle"] = "Failed to toggle shields", + ["Controls.Shields.Status"] = "Shields", ["Controls.Shields.Tip"] = "Shields", ["Controls.SonicDispenser.AlreadyEquipped"] = "You are already holding a Sonic Screwdriver", ["Controls.SonicDispenser.Dispensed"] = "Sonic Screwdriver has been dispensed", @@ -222,28 +248,55 @@ T.Phrases = { ["Controls.ToggleScreens.FailedToggle"] = "Failed to toggle interior screens", ["Controls.ToggleScreens.Status"] = "Interior screens", ["Controls.ToggleScreens.Tip"] = "Toggle Screen", + ["Controls.Tracking"] = "Tracking", + ["Controls.Tracking.ConstrainedFail"] = "Can't track entities that are attached to this TARDIS", + ["Controls.Tracking.DistanceFail"] = "Can't track entities that are too far away", + ["Controls.Tracking.FlightFail"] = "Failed to enable flight mode for tracking", + ["Controls.Tracking.GenericFail"] = "Failed to track entity", + ["Controls.Tracking.InteriorFail"] = "Can't track entities inside the TARDIS", + ["Controls.Tracking.PhyslockFail"] = "Can't enable tracking when physlock is enabled", + ["Controls.Tracking.PilotWarning"] = "WARNING: Tracking is enabled, press '%s' to change target or disable tracking", + ["Controls.Tracking.Rotation"] = "Tracking rotation", + ["Controls.Tracking.RotationChangedAuto"] = "Tracking rotation %s automatically based on target's rotation", + ["Controls.Tracking.RotationHint"] = "Press '%s' to toggle tracking target rotation", + ["Controls.Tracking.SameTarget"] = "You are already tracking this entity", + ["Controls.Tracking.SelfFail"] = "The TARDIS can't track itself", + ["Controls.Tracking.SpinWarning"] = "WARNING: You can't change tracking direction while spinning is enabled", + ["Controls.Tracking.Status"] = "Tracking", + ["Controls.Tracking.Target"] = "Started tracking %s", + ["Controls.Tracking.TargetLost"] = "Tracking target lost", + ["Controls.Tracking.TargetTooFar"] = "Tracking target too far", ["Controls.VirtualConsole.Tip"] = "Virtual Console", ["Controls.VortexFlight"] = "Vortex Flight", ["Controls.VortexFlight.FailedToggle"] = "Failed to toggle vortex flight", ["Controls.VortexFlight.Status"] = "Vortex flight", ["Controls.VortexFlight.Tip"] = "Vortex Flight", + ["CustomControls.Default.ToggleScreen.1"] = "Toggle screen 1", + ["CustomControls.Default.ToggleScreen.1.FailedToggle"] = "Failed to toggle screen 1", + ["CustomControls.Default.ToggleScreen.1.Status"] = "Screen 1", + ["CustomControls.Default.ToggleScreen.1.Tip"] = "Screen 1", + ["CustomControls.Default.ToggleScreen.2"] = "Toggle screen 2", + ["CustomControls.Default.ToggleScreen.2.FailedToggle"] = "Failed to toggle screen 2", + ["CustomControls.Default.ToggleScreen.2.Status"] = "Screen 2", + ["CustomControls.Default.ToggleScreen.2.Tip"] = "Screen 2", ["Destination.FailedDemat"] = "Failed to dematerialise", ["Destination.FailedSetDestination"] = "Failed to set destination", ["Destination.FailedSetDestinationMaybeTransitioning"] = "Failed to set destination, may be transitioning", ["Destination.LockedDemat"] = "Destination locked, dematerialising...", ["Destination.LockedReadyToDemat"] = "Destination locked, ready to dematerialise", ["Destination.LockedReadyToMat"] = "Destination locked, ready to materialise", + ["Destination.RotationMode"] = "Rotation mode", ["Expression2.Error"] = "Can't call TARDIS functions on something other than a TARDIS", ["Expression2.Security.UseDenied"] = "Can't call TARDIS set functions on another's TARDIS with Isomorphic Security active", ["Exteriors.Categories.Misc"] = "Miscellaneous", ["Exteriors.Categories.PoliceBoxes"] = "Police Boxes", ["Exteriors.Categories.TTCapsules"] = "TT Capsules", ["Exteriors.DefaultPoliceBox"] = "Default Police Box", + ["Exteriors.LegacyPoliceBox"] = "Legacy Police Box", ["Exteriors.SIDRAT"] = "SIDRAT", ["Exteriors.TTCapsuleType40"] = "TT Capsule Type 40", ["Exteriors.TTCapsuleType50"] = "TT Capsule Type 50", ["Exteriors.TTCapsuleType55"] = "TT Capsule Type 55", - ["Exteriors.TTCapsuleType55B"] = "TT Capsule Type 55-B", ["Flight.DoorOpenNoBoost"] = "Boost doesn't work with doors open", ["Flight.NameIsNowThePilot"] = "%s is now the pilot", ["Flight.NameIsThePilot"] = "%s is the pilot", @@ -263,16 +316,28 @@ T.Phrases = { ["Interior.FindingPositionFailed.NoSpace"] = "WARNING: Unable to locate space for interior, you can try again or use a different map", ["Interior.FoundPosition"] = "Done!", ["Interiors.Default"] = "Default", + ["Interiors.Default.CustomSettings.ClassicDoorsButton"] = "Enable button (classic doors version)", + ["Interiors.Default.CustomSettings.Color"] = "Interior color", + ["Interiors.Default.CustomSettings.Color.Blue"] = "Blue", + ["Interiors.Default.CustomSettings.Color.Dynamic"] = "Dynamic (changes slowly)", + ["Interiors.Default.CustomSettings.Color.Green"] = "Green", + ["Interiors.Default.CustomSettings.Color.Random"] = "Random", + ["Interiors.Default.CustomSettings.Color.Turquoise"] = "Turquoise", + ["Interiors.Default.CustomSettings.Lamps"] = "Lamps", + ["Interiors.Default.CustomSettings.Lamps.Few"] = "Few (optimal for performance)", + ["Interiors.Default.CustomSettings.Lamps.Many"] = "Many (best visuals)", + ["Interiors.Default.CustomSettings.Lamps.Off"] = "Disabled", + ["Interiors.Default.CustomSettings.ScreensOff"] = "Screen disabled on spawn", + ["Interiors.Default.CustomSettings.SmallVersion"] = "Small interior (less corridors)", + ["Interiors.Default.Versions.ClassicDoors"] = "Classic doors version", ["Interiors.Default.Versions.SIDRAT"] = "SIDRAT Exterior", ["Interiors.Default.Versions.TTCapsuleType40"] = "TT Capsule Type 40 Exterior", ["Interiors.Default.Versions.TTCapsuleType50"] = "TT Capsule Type 50 Exterior", ["Interiors.Default.Versions.TTCapsuleType55"] = "TT Capsule Type 55 Exterior", - ["Interiors.Default.Versions.TTCapsuleType55B"] = "TT Capsule Type 55-B Exterior", ["Interiors.DefaultSIDRAT"] = "SIDRAT Default", ["Interiors.DefaultTTCapsuleType40"] = "TT Capsule Type 40 Default", ["Interiors.DefaultTTCapsuleType50"] = "TT Capsule Type 50 Default", ["Interiors.DefaultTTCapsuleType55"] = "TT Capsule Type 55 Default", - ["Interiors.DefaultTTCapsuleType55B"] = "TT Capsule Type 55-B Default", ["Lock.Locked"] = "This TARDIS is locked", ["MenuOptions.ConfirmResetSettings"] = "Reset all clientside settings? This cannot be undone.", ["MenuOptions.ConfirmSectionReset"] = "Reset clientside settings of section \"%s\"? This cannot be undone.", @@ -304,6 +369,7 @@ T.Phrases = { ["Screens.Chameleon.Apply"] = "Apply", ["Screens.Chameleon.Categories"] = "Categories", ["Screens.Chameleon.Exteriors"] = "Exteriors", + ["Screens.Chameleon.Plan"] = "Plan", ["Screens.Chameleon.Reset"] = "Reset", ["Screens.Common.Back"] = "Back", ["Screens.Common.CurrentPage"] = "Page %d of %d", @@ -413,6 +479,8 @@ T.Phrases = { ["Settings.Sections.Global.BoostSpeed.Description"] = "The increase of speed the TARDIS gets with the boost key enabled", ["Settings.Sections.Global.EnableHealth"] = "Enable Health", ["Settings.Sections.Global.EnableHealth.Description"] = "Should the TARDIS have health and take damage?", + ["Settings.Sections.Global.HealthToShieldsRatio"] = "Health to shields ratio", + ["Settings.Sections.Global.HealthToShieldsRatio.Description"] = "Higher ratios give more health but less shields, combined health / shields remains the same", ["Settings.Sections.Global.MaxHealth"] = "Max Health", ["Settings.Sections.Global.MaxHealth.Description"] = "Maximum ammount of health the TARDIS has", ["Settings.Sections.Global.WaitLongForRepair"] = "Enable long repair", @@ -455,6 +523,8 @@ T.Phrases = { ["Settings.Sections.Misc.NotificationType.Types.ConsoleLog"] = "Console log", ["Settings.Sections.Misc.NotificationType.Types.Disabled"] = "Disabled", ["Settings.Sections.Misc.NotificationType.Types.Inbuilt"] = "In-built notifications", + ["Settings.Sections.Misc.ShowReleaseNotes"] = "Show release notes", + ["Settings.Sections.Misc.ShowReleaseNotes.Description"] = "Should release notes be shown when the TARDIS is updated?", ["Settings.Sections.Misc.Spawning"] = "Spawning the TARDIS", ["Settings.Sections.Misc.Spawning.LegacyDoorType"] = "Spawn with legacy doors type", ["Settings.Sections.Misc.Spawning.LegacyDoorType.Description"] = "TARDIS doors will teleport the player inside when clicked on (instead of opening)", @@ -582,6 +652,8 @@ T.Phrases = { ["TipStyles.Default"] = "Default (set by interior)", ["TipStyles.WhiteOnBlue"] = "White on blue", ["TipStyles.WhiteOnGrey"] = "White on grey", + ["Update.ShowReleaseNotes"] = "Would you like to find out more?", + ["Update.Updated"] = "The TARDIS has been updated to version %s", ["Vortex.ModelMissing"] = "WARNING: Vortex model invalid - disabling vortex, are you missing a dependency?", ["Wiremod.Inputs.Ang"] = "X,Y,Z: Teleport angle", ["Wiremod.Inputs.Demat"] = "Dematerialise the TARDIS", diff --git a/lua/tardis/languages/es-es.lua b/lua/tardis/languages/es-es.lua index 40a1cd202..e08c51742 100644 --- a/lua/tardis/languages/es-es.lua +++ b/lua/tardis/languages/es-es.lua @@ -14,7 +14,11 @@ T.Phrases = { ["Binds.Sections.Destination.Boost"] = "Acelerar", ["Binds.Sections.Destination.Boost.Description"] = "Mantén presionada esta tecla mientras navegas para ir más rápido", ["Binds.Sections.Destination.Down"] = "Abajo", + ["Binds.Sections.Destination.FindRandom"] = "Encontrar Aleatorio", + ["Binds.Sections.Destination.FindRandom.Description"] = "Presione esta tecla para encontrar un destino aleatorio", ["Binds.Sections.Destination.Forward"] = "Avanzar", + ["Binds.Sections.Destination.Jump"] = "Saltar a la superficie", + ["Binds.Sections.Destination.Jump.Description"] = "Mantenga presionada esta tecla para seleccionar una superficie y moverse hacia ella", ["Binds.Sections.Destination.Left"] = "Izquierda", ["Binds.Sections.Destination.Right"] = "Derecha", ["Binds.Sections.Destination.Rotate"] = "Rotar", @@ -233,6 +237,7 @@ T.Phrases = { ["Destination.LockedDemat"] = "Destino establecido, desmaterializando...", ["Destination.LockedReadyToDemat"] = "Destino establecido, listo para desmaterializar", ["Destination.LockedReadyToMat"] = "Destino establecido, listo para materializar", + ["Destination.RotationMode"] = "Modo de rotación", ["Expression2.Error"] = "No se pueden cargar funciones en otra cosa que no sea el TARDIS", ["Expression2.Security.UseDenied"] = "No se pueden cargar las funciones fijadas en el TARDIS de otra persona con la Seguridad Isomórfica activada", ["Exteriors.Categories.Misc"] = "Miscelánea", @@ -243,7 +248,6 @@ T.Phrases = { ["Exteriors.TTCapsuleType40"] = "Cápsula TT Tipo 40", ["Exteriors.TTCapsuleType50"] = "Cápsula TT Tipo 50", ["Exteriors.TTCapsuleType55"] = "Cápsula TT Tipo 55", - ["Exteriors.TTCapsuleType55B"] = "Cápsula TT Tipo 55-B", ["Flight.DoorOpenNoBoost"] = "La aceleración no funciona con las puertas abiertas", ["Flight.NameIsNowThePilot"] = "El piloto ahora es %s", ["Flight.NameIsThePilot"] = "El piloto es %s", @@ -267,12 +271,10 @@ T.Phrases = { ["Interiors.Default.Versions.TTCapsuleType40"] = "Exterior Cápsula TT Tipo 40", ["Interiors.Default.Versions.TTCapsuleType50"] = "Exterior Cápsula TT Tipo 50", ["Interiors.Default.Versions.TTCapsuleType55"] = "Exterior Cápsula TT Tipo 55", - ["Interiors.Default.Versions.TTCapsuleType55B"] = "Exterior Cápsula TT Tipo 55-B", ["Interiors.DefaultSIDRAT"] = "Predeterminado SIDRAT", ["Interiors.DefaultTTCapsuleType40"] = "Predeterminada Cápsula TT Tipo 40", ["Interiors.DefaultTTCapsuleType50"] = "Predeterminada Cápsula TT Tipo 50", ["Interiors.DefaultTTCapsuleType55"] = "Predeterminada Cápsula TT Tipo 55", - ["Interiors.DefaultTTCapsuleType55B"] = "Predeterminada Cápsula TT Tipo 55-B", ["Lock.Locked"] = "Este TARDIS tiene sus puertas trabadas", ["MenuOptions.ConfirmResetSettings"] = "¿Restablecer todos los ajustes del cliente? Esto no se puede deshacer.", ["MenuOptions.ConfirmSectionReset"] = "¿Restablecer los ajustes del cliente de la sección \"%s\"? Esto no se puede deshacer.", diff --git a/lua/tardis/languages/fr.lua b/lua/tardis/languages/fr.lua index 59dca27a3..13cd0cb35 100644 --- a/lua/tardis/languages/fr.lua +++ b/lua/tardis/languages/fr.lua @@ -12,17 +12,27 @@ T.Phrases = { ["Binds.Sections.Destination"] = "Destination", ["Binds.Sections.Destination.Backward"] = "Reculer", ["Binds.Sections.Destination.Boost"] = "Accélérer", - ["Binds.Sections.Destination.Boost.Description"] = "Maintenez cette touche enfoncée tout en naviguant pour accélérer", + ["Binds.Sections.Destination.Boost.Description"] = "Maintenez cette touche tout en naviguant pour accélérer", + ["Binds.Sections.Destination.Chameleon"] = "Changer le circuit caméléon", + ["Binds.Sections.Destination.Chameleon.Description"] = "Appuyez sur cette touche pour sélectionner le préréglage du circuit caméléon", ["Binds.Sections.Destination.Down"] = "Descendre", + ["Binds.Sections.Destination.FindRandom"] = "Trouver aléatoirement", + ["Binds.Sections.Destination.FindRandom.Description"] = "Appuyez sur cette touche pour trouver une destination aléatoire", ["Binds.Sections.Destination.Forward"] = "Avancer", + ["Binds.Sections.Destination.Jump"] = "Sauter à la surface", + ["Binds.Sections.Destination.Jump.Description"] = "Maintenez cette touche pour sélectionner une surface et vous y déplacer", ["Binds.Sections.Destination.Left"] = "Gauche", ["Binds.Sections.Destination.Right"] = "Droite", ["Binds.Sections.Destination.Rotate"] = "Pivoter", - ["Binds.Sections.Destination.Rotate.Description"] = "Maintenez ce bouton avec les touches \"Accélération\" et \"Gauche\" ou \"Droite\" pour faire pivoter", + ["Binds.Sections.Destination.Rotate.Description"] = "Maintenez ceci avec les touches \"Accélération\" et \"Gauche\" ou \"Droite\" pour pivoter", + ["Binds.Sections.Destination.ShowCurrent"] = "Afficher la destination actuelle", + ["Binds.Sections.Destination.ShowCurrent.Description"] = "Appuyez sur cette touche pour afficher la destination actuellement définie", ["Binds.Sections.Destination.Slow"] = "Ralentir", - ["Binds.Sections.Destination.Slow.Description"] = "Maintenez cette touche enfoncée pour ralentir le mouvement", + ["Binds.Sections.Destination.Slow.Description"] = "Maintenez cette touche pour ralentir le mouvement", ["Binds.Sections.Destination.SnapToFloor"] = "S'aligner au sol", ["Binds.Sections.Destination.SnapToFloor.Description"] = "Appuyez sur cette touche pour s'aligner au sol", + ["Binds.Sections.Destination.ToggleRotationMode"] = "Permuter le mode de rotation", + ["Binds.Sections.Destination.ToggleRotationMode.Description"] = "Appuyez sur cette touche pour permuter le mode de rotation", ["Binds.Sections.Destination.Up"] = "Monter", ["Binds.Sections.Flight"] = "Vol", ["Binds.Sections.Flight.Backward"] = "Reculer", @@ -36,7 +46,11 @@ T.Phrases = { ["Binds.Sections.Flight.Rotate.Description"] = "Maintenez ce bouton enfoncé en utilisant les touches \"Gauche\" et \"Droite\" pour pivoter", ["Binds.Sections.Flight.SpinDirection"] = "Direction de rotation", ["Binds.Sections.Flight.SpinDirection.Description"] = "Change la direction dans laquelle le TARDIS pivote en volant", - ["Binds.Sections.Flight.Up"] = "Haut", + ["Binds.Sections.Flight.Tracking"] = "Suivi", + ["Binds.Sections.Flight.Tracking.Description"] = "Maintenez pour sélectionner une entité à traquer / suivre", + ["Binds.Sections.Flight.TrackRotation"] = "Suivi de rotation", + ["Binds.Sections.Flight.TrackRotation.Description"] = "Activer le suivi de la rotation des entités ciblées", + ["Binds.Sections.Flight.Up"] = "Monter", ["Binds.Sections.Float"] = "Flottaison", ["Binds.Sections.Float.Backward"] = "Reculer", ["Binds.Sections.Float.Boost"] = "Accélérer", @@ -49,7 +63,7 @@ T.Phrases = { ["Binds.Sections.Float.Rotate"] = "Pivoter", ["Binds.Sections.Float.Rotate.Description"] = "Maintenez ce bouton enfoncé en utilisant les touches \"Gauche\" et \"Droite\" pour faire pivoter sur l'axe Z", ["Binds.Sections.Teleport"] = "Téléportation", - ["Binds.Sections.Teleport.Demat"] = "Décollage", + ["Binds.Sections.Teleport.Demat"] = "Dématérialiser", ["Binds.Sections.Teleport.Mat"] = "Matérialiser", ["Binds.Sections.Teleport.Set"] = "Définir", ["Binds.Sections.ThirdPerson"] = "Troisième personne", @@ -62,8 +76,12 @@ T.Phrases = { ["Binds.Sections.ThirdPerson.ToggleFlight"] = "Activer/Desactiver le vol", ["Binds.Sections.ThirdPerson.ToggleFloat"] = "Activer/Désactiver la flottaison", ["Binds.Sections.ThirdPerson.ToggleFloat.Description"] = "Fait voler le TARDIS comme s'il n'y avait pas de gravité", + ["Binds.Sections.ThirdPerson.ToggleHandbrake"] = "Activer/Désactiver le frein à main", ["Binds.Sections.ThirdPerson.TogglePhyslock"] = "Activer/Désactiver le Verrou Physique", ["Binds.Sections.ThirdPerson.TogglePhyslock.Description"] = "Rendez le TARDIS statique et immobile dans l'espace", + ["Binds.Sections.ThirdPerson.TogglePower"] = "Activer/Désactiver l'allimentation", + ["Binds.Sections.ThirdPerson.ToggleVortex"] = "Activer/Désactiver les vortex", + ["Chameleon.ExteriorPlanned"] = "Une modification d'extérieur a été planifiée. Elle s'appliquera lors du prochain atterrissage du TARDIS", ["Chameleon.ExteriorSelected"] = "Un nouvel extérieur a été sélectionné", ["Chameleon.FailedExteriorSelect"] = "Échec lors de la sélection d'un nouvel extérieur", ["Chameleon.FailReasons.AlreadyChanging"] = "L'extérieur est déjà en cours de modification!", @@ -134,8 +152,8 @@ T.Phrases = { ["Controls.DoorLock.UsingEmergencyPower"] = "Utilisation de l'alimentation d'urgence pour désengager le verrou...", ["Controls.EngineRelease"] = "Libération des Moteurs", ["Controls.EngineRelease.ArtronAdded"] = "La santé a été sacrifiée afin de recharger l'énergie artron dans le vortex", - ["Controls.EngineRelease.FailedDemat"] = "Échec du décollage", - ["Controls.EngineRelease.ForceDemat"] = "Décollage forcée déclenchée", + ["Controls.EngineRelease.FailedDemat"] = "Échec de la dématérialisation", + ["Controls.EngineRelease.ForceDemat"] = "Dématérialisation forcée déclenchée", ["Controls.EngineRelease.Tip"] = "Libération des Moteurs", ["Controls.ExteriorLight"] = "Éclairage Extérieur", ["Controls.ExteriorLight.Status"] = "Éclairage Extérieur", @@ -187,10 +205,13 @@ T.Phrases = { ["Controls.Repair.FailedToggle"] = "Échec de l'activation l'auto-réparation", ["Controls.Repair.Tip"] = "Auto-Réparation", ["Controls.Scanner.Tip"] = "Scanneur", + ["Controls.Shields"] = "Boucliers", + ["Controls.Shields.FailedToggle"] = "Échec de l'activation des boucliers", + ["Controls.Shields.Status"] = "Boucliers", ["Controls.Shields.Tip"] = "Boucliers", - ["Controls.SonicDispenser.AlreadyEquipped"] = "Vous êtes déjà en possession d'un sonique", - ["Controls.SonicDispenser.Dispensed"] = "Un Sonique a été distribué", - ["Controls.SonicDispenser.Equipped"] = "Un Sonique a été équipé", + ["Controls.SonicDispenser.AlreadyEquipped"] = "Vous avez déjà un Tournevis Sonique", + ["Controls.SonicDispenser.Dispensed"] = "Un Tournevis Sonique a été distribué", + ["Controls.SonicDispenser.Equipped"] = "Un Tournevis Sonique a été équipé", ["Controls.SonicDispenser.MissingAddon"] = "Vous n'avez pas l'addon \"Sonic Screwdriver\". Installez-le pour que cela fonctionne", ["Controls.SonicDispenser.Tip"] = "Chargeur Sonique", ["Controls.SpinCycle"] = "Direction de rotation", @@ -202,9 +223,9 @@ T.Phrases = { ["Controls.Stabilizers.Tip"] = "Stabilisateurs de vol", ["Controls.Teleport"] = "Téléporter", ["Controls.Teleport.Demat"] = "Dématérialisation", - ["Controls.Teleport.FailedDemat"] = "Échec du décollage", - ["Controls.Teleport.FailedDematDoorsOpen"] = "Décollage impossible, les portes sont ouvertes", - ["Controls.Teleport.FailedDematHandbrake"] = "Freins à main du routeur temporel engagé ! Décollage impossible", + ["Controls.Teleport.FailedDemat"] = "Échec de la dématérialisation", + ["Controls.Teleport.FailedDematDoorsOpen"] = "Dématérialisation impossible, les portes sont ouvertes", + ["Controls.Teleport.FailedDematHandbrake"] = "Freins à main du routeur temporel engagé ! Dématérialisation impossible", ["Controls.Teleport.FailedMat"] = "Échec de la matérialisation", ["Controls.Teleport.Mat"] = "Matérialisation", ["Controls.Teleport.Tip"] = "Accélérateur d'espace-temps", @@ -222,6 +243,24 @@ T.Phrases = { ["Controls.ToggleScreens.FailedToggle"] = "Échec de l'activation des écrans intérieurs", ["Controls.ToggleScreens.Status"] = "Écrans intérieurs", ["Controls.ToggleScreens.Tip"] = "Activer les écrans", + ["Controls.Tracking"] = "Traçage", + ["Controls.Tracking.ConstrainedFail"] = "Impossible de tracer les entités attachées au TARDIS", + ["Controls.Tracking.DistanceFail"] = "Impossible de tracer les entités trop éloignées", + ["Controls.Tracking.FlightFail"] = "Échec de l'activation du mode vol pour le traçage", + ["Controls.Tracking.GenericFail"] = "Échec du traçage de l'entité", + ["Controls.Tracking.InteriorFail"] = "Impossible de tracer les entités à l'intérieur du TARDIS", + ["Controls.Tracking.PhyslockFail"] = "Impossible d'activer le traçage lorsque le verrou physique est enclenché", + ["Controls.Tracking.PilotWarning"] = "ATTENTION: Le traçage est activé, appuyez sur '%s' pour changer de cible ou désactiver le traçage", + ["Controls.Tracking.Rotation"] = "Suivre la rotation", + ["Controls.Tracking.RotationChangedAuto"] = "Suivi automatique de la rotation %s sur base de la rotation de la cible", + ["Controls.Tracking.RotationHint"] = "Appuyez sur '%s' pour permuter le suivi de la rotation de la cible", + ["Controls.Tracking.SameTarget"] = "Vous tracez déjà cette entité", + ["Controls.Tracking.SelfFail"] = "Le TARDIS ne peut se tracer lui-même", + ["Controls.Tracking.SpinWarning"] = "ATTENTION: Vous ne pouvez changer la direction du traçage lorsque la rotation est activée", + ["Controls.Tracking.Status"] = "Traçage", + ["Controls.Tracking.Target"] = "Traçage de %s commencé", + ["Controls.Tracking.TargetLost"] = "Cible du traçage perdue", + ["Controls.Tracking.TargetTooFar"] = "Cible du traçage trop éloignée", ["Controls.VirtualConsole.Tip"] = "Console virtuelle", ["Controls.VortexFlight"] = "Vol dans le Vortex", ["Controls.VortexFlight.FailedToggle"] = "Échec de l'activation du vol dans le vortex", @@ -230,9 +269,10 @@ T.Phrases = { ["Destination.FailedDemat"] = "Échec de la dématérialisation", ["Destination.FailedSetDestination"] = "Échec de la définition d'une destination", ["Destination.FailedSetDestinationMaybeTransitioning"] = "Échec de la définition d'une destination, peut être en cours de transition", - ["Destination.LockedDemat"] = "Destination verrouillée, décollage...", - ["Destination.LockedReadyToDemat"] = "Destination verrouillée, prêt pour le décollage", - ["Destination.LockedReadyToMat"] = "Destination verrouillée, prêt pour atterrir", + ["Destination.LockedDemat"] = "Destination verrouillée, dématérialisation...", + ["Destination.LockedReadyToDemat"] = "Destination verrouillée, prêt pour la dématérialisation", + ["Destination.LockedReadyToMat"] = "Destination verrouillée, prêt pour la matérialisation", + ["Destination.RotationMode"] = "Mode de rotation", ["Expression2.Error"] = "Impossible d'appeler les fonctions TARDIS sur autre chose qu'un TARDIS", ["Expression2.Security.UseDenied"] = "Impossible d'appeler les procédures TARDIS sur le TARDIS d'un autre joueur ayant la sécurité isomorphique active", ["Exteriors.Categories.Misc"] = "Divers", @@ -243,7 +283,6 @@ T.Phrases = { ["Exteriors.TTCapsuleType40"] = "Capsule TT Type 40", ["Exteriors.TTCapsuleType50"] = "Capsule TT Type 50", ["Exteriors.TTCapsuleType55"] = "Capsule TT Type 55", - ["Exteriors.TTCapsuleType55B"] = "Capsule TT Type 55-B", ["Flight.DoorOpenNoBoost"] = "L'accélération ne fonctionne pas avec les portes ouvertes", ["Flight.NameIsNowThePilot"] = "%s Contrôle désormais votre TARDIS", ["Flight.NameIsThePilot"] = "%s est le pilote", @@ -267,12 +306,10 @@ T.Phrases = { ["Interiors.Default.Versions.TTCapsuleType40"] = "Extérieur Capsule TT Type 40", ["Interiors.Default.Versions.TTCapsuleType50"] = "Extérieur Capsule TT Type 50", ["Interiors.Default.Versions.TTCapsuleType55"] = "Extérieur Capsule TT Type 55", - ["Interiors.Default.Versions.TTCapsuleType55B"] = "Extérieur Capsule TT Type 55-B", ["Interiors.DefaultSIDRAT"] = "SIDRAT par Défaut", ["Interiors.DefaultTTCapsuleType40"] = "Capsule TT Type 40 par Défaut", ["Interiors.DefaultTTCapsuleType50"] = "Capsule TT Type 50 par Défaut", ["Interiors.DefaultTTCapsuleType55"] = "Capsule TT Type 55 par Défaut", - ["Interiors.DefaultTTCapsuleType55B"] = "Capsule TT Type 55-B par Défaut", ["Lock.Locked"] = "Ce TARDIS est verrouillé", ["MenuOptions.ConfirmResetSettings"] = "Réinitialiser tous vos paramètres? Cette action est irréversible.", ["MenuOptions.ConfirmSectionReset"] = "Réinitialiser vos paramètres de la section \"%s\" ? Cette action est irréversible.", @@ -299,11 +336,12 @@ T.Phrases = { ["Parts.Door.Locked"] = "Les portes sont verrouillées", ["Prompts.LightingOverride"] = "Ce TARDIS recommande le remplacement d'éclairage que vous n'avez pas activé. Activer maintenant ? Cela peut être modifié dans les paramètres TARDIS plus tard", ["Prompts.LOD"] = "L'intérieur du TARDIS peut nécessiter les détails de modèle élevé, définir maintenant ?", - ["Redecorate.Failed"] = "Échec de la reconstruction : impossible de faire apparaître le remplacement", + ["Redecorate.Failed"] = "Échec de la reconstruction: impossible de faire apparaître le remplacement", ["Screens.Chameleon"] = "Circuit Caméléon", ["Screens.Chameleon.Apply"] = "Appliquer", ["Screens.Chameleon.Categories"] = "Catégories", ["Screens.Chameleon.Exteriors"] = "Extérieurs", + ["Screens.Chameleon.Plan"] = "Plan", ["Screens.Chameleon.Reset"] = "Réinitialiser", ["Screens.Common.Back"] = "Retour", ["Screens.Common.CurrentPage"] = "Page %d sur %d", @@ -369,7 +407,7 @@ T.Phrases = { ["Screens.VirtualConsole.Old.OpenDoor"] = "Ouvrir les portes", ["Screens.VirtualConsole.Old.Physlock"] = "Verrou Physique", ["Screens.VirtualConsole.Old.Repair"] = "Réparer le TARDIS", - ["Screens.VirtualConsole.Old.TogglePower"] = "Activation de l'alimentation", + ["Screens.VirtualConsole.Old.TogglePower"] = "Activer l'alimentation", ["Screens.VirtualConsole.Old.UnlockDoor"] = "Déverrouiller les portes", ["Security.ControlUseDenied"] = "Sécurité Isomorphique engagé . Vous n'êtes pas autorisé à utiliser les commandes", ["Settings.NoPermissionGlobalSettings"] = "Vous n'avez pas la permission de modifier les paramètres globaux", @@ -413,6 +451,7 @@ T.Phrases = { ["Settings.Sections.Global.BoostSpeed.Description"] = "L'augmentation de la vitesse que le TARDIS obtient avec la touche \"Accélération\" enfoncée", ["Settings.Sections.Global.EnableHealth"] = "Activer la santé", ["Settings.Sections.Global.EnableHealth.Description"] = "Le TARDIS devrait-il avoir de la santé et subir des dégâts ?", + ["Settings.Sections.Global.HealthToShieldsRatio.Description"] = "Des ratios plus élevés apportent plus santé mais moins de boucliers, la combinaison santé / boucliers reste la même", ["Settings.Sections.Global.MaxHealth"] = "Santé maximale", ["Settings.Sections.Global.MaxHealth.Description"] = "Quantité maximale de santé que le TARDIS a", ["Settings.Sections.Global.WaitLongForRepair"] = "Activer la réparation longue", @@ -582,7 +621,7 @@ T.Phrases = { ["TipStyles.Default"] = "Par défaut (défini par l'intérieur)", ["TipStyles.WhiteOnBlue"] = "Blanc sur bleu", ["TipStyles.WhiteOnGrey"] = "Blanc sur gris", - ["Vortex.ModelMissing"] = "ATTENTION : modèle de vortex invalide - désactivation des vortexs, avez-vous tous les Addons ?", + ["Vortex.ModelMissing"] = "ATTENTION: modèle de vortex invalide - désactivation des vortex, vous manque-t-il une dépendance?", ["Wiremod.Inputs.Ang"] = "X,Y,Z: Angle de téléportation", ["Wiremod.Inputs.Demat"] = "Dématérialiser le TARDIS", ["Wiremod.Inputs.Mat"] = "Matérialiser le TARDIS", diff --git a/lua/tardis/languages/pt-br.lua b/lua/tardis/languages/pt-br.lua index e4157d25d..37339aa1c 100644 --- a/lua/tardis/languages/pt-br.lua +++ b/lua/tardis/languages/pt-br.lua @@ -6,6 +6,11 @@ T.Code = "pt-BR" T.Name = "Português (Brasil)" T.Phrases = { ["Artron.Depleted"] = "Energia artron esgotada", + ["ArtronInhibitor"] = "Inibidor Artron", + ["ArtronInhibitor.Disabled"] = "Inibidor artron desativado", + ["ArtronInhibitor.Enabled"] = "Inibidor artron ativado", + ["ArtronInhibitor.Instructions"] = "Cria um campo Inibidor Artron, drenando a Energia Artron de outras TARDISes próximas", + ["ArtronInhibitor.Starting"] = "Inicializando o inibidor artron...", ["Binds.AnyKey"] = "Aperte qualquer tecla", ["Binds.Invalid"] = "Inválido", ["Binds.Key"] = "Tecla", @@ -13,16 +18,26 @@ T.Phrases = { ["Binds.Sections.Destination.Backward"] = "Para trás", ["Binds.Sections.Destination.Boost"] = "Acelerar", ["Binds.Sections.Destination.Boost.Description"] = "Segure esta tecla enquanto estiver navegando para acelerar", + ["Binds.Sections.Destination.Chameleon"] = "Alterar o circuito camaleão", + ["Binds.Sections.Destination.Chameleon.Description"] = "Pressione esta tecla para selecionar a predefinição do circuito camaleão", ["Binds.Sections.Destination.Down"] = "Para baixo", + ["Binds.Sections.Destination.FindRandom"] = "Encontrar Destino Aleatório", + ["Binds.Sections.Destination.FindRandom.Description"] = "Pressione esta tecla para encontrar um destino aleatório", ["Binds.Sections.Destination.Forward"] = "Para frente", + ["Binds.Sections.Destination.Jump"] = "Saltar para superfície", + ["Binds.Sections.Destination.Jump.Description"] = "Segure esta tecla para selecionar uma superfície e mover-se para ela", ["Binds.Sections.Destination.Left"] = "Esquerda", ["Binds.Sections.Destination.Right"] = "Direita", ["Binds.Sections.Destination.Rotate"] = "Rotacionar", ["Binds.Sections.Destination.Rotate.Description"] = "Segure esta tecla e a de aceleração e use esquerda e direita para rotacionar", + ["Binds.Sections.Destination.ShowCurrent"] = "Mostrar o destino atual", + ["Binds.Sections.Destination.ShowCurrent.Description"] = "Pressione esta tecla para mostrar o destino atual definido", ["Binds.Sections.Destination.Slow"] = "Desacelerar", ["Binds.Sections.Destination.Slow.Description"] = "Segure esta tecla para desacelerar o movimento", ["Binds.Sections.Destination.SnapToFloor"] = "Grudar ao chão", ["Binds.Sections.Destination.SnapToFloor.Description"] = "Pressione esta tecla para grudar ao chão mais próximo", + ["Binds.Sections.Destination.ToggleRotationMode"] = "Alternar o modo de rotação", + ["Binds.Sections.Destination.ToggleRotationMode.Description"] = "Pressione esta tecla para alternar o modo de rotação", ["Binds.Sections.Destination.Up"] = "Para cima", ["Binds.Sections.Flight"] = "Voo", ["Binds.Sections.Flight.Backward"] = "Para trás", @@ -36,6 +51,10 @@ T.Phrases = { ["Binds.Sections.Flight.Rotate.Description"] = "Segure esta tecla e use esquerda e direita para rotacionar", ["Binds.Sections.Flight.SpinDirection"] = "Direção do Giro", ["Binds.Sections.Flight.SpinDirection.Description"] = "Alterna a direção em que a TARDIS rotaciona enquanto voa", + ["Binds.Sections.Flight.Tracking"] = "Rastreamento", + ["Binds.Sections.Flight.Tracking.Description"] = "Segure para selecionar uma entidade para rastrear/seguir", + ["Binds.Sections.Flight.TrackRotation"] = "Rotação do Rastreamento", + ["Binds.Sections.Flight.TrackRotation.Description"] = "Alternar a rotação do rastreamento das entidades alvo", ["Binds.Sections.Flight.Up"] = "Para cima", ["Binds.Sections.Float"] = "Flutuar", ["Binds.Sections.Float.Backward"] = "Para trás", @@ -62,8 +81,12 @@ T.Phrases = { ["Binds.Sections.ThirdPerson.ToggleFlight"] = "Alternar Voo", ["Binds.Sections.ThirdPerson.ToggleFloat"] = "Alternar Flutuador", ["Binds.Sections.ThirdPerson.ToggleFloat.Description"] = "Deixa a TARDIS voar como se não houvesse gravidade", + ["Binds.Sections.ThirdPerson.ToggleHandbrake"] = "Alternar Freio de Mão", ["Binds.Sections.ThirdPerson.TogglePhyslock"] = "Alternar Trava Física", ["Binds.Sections.ThirdPerson.TogglePhyslock.Description"] = "Torna a TARDIS estática e imóvel no espaço", + ["Binds.Sections.ThirdPerson.TogglePower"] = "Alternar Energia", + ["Binds.Sections.ThirdPerson.ToggleVortex"] = "Alternar Vórtice", + ["Chameleon.ExteriorPlanned"] = "Uma mudança do exterior foi planejada. Será aplicada na próxima vez que a TARDIS pousar", ["Chameleon.ExteriorSelected"] = "Um novo exterior foi selecionado", ["Chameleon.FailedExteriorSelect"] = "Falha ao selecionar um novo exterior", ["Chameleon.FailReasons.AlreadyChanging"] = "O exterior já está sendo mudado!", @@ -187,6 +210,9 @@ T.Phrases = { ["Controls.Repair.FailedToggle"] = "Falha ao alternar o auto-reparo", ["Controls.Repair.Tip"] = "Auto-Reparo", ["Controls.Scanner.Tip"] = "Scanner", + ["Controls.Shields"] = "Escudos", + ["Controls.Shields.FailedToggle"] = "Falha ao Alternar os Escudos", + ["Controls.Shields.Status"] = "Escudos", ["Controls.Shields.Tip"] = "Escudos", ["Controls.SonicDispenser.AlreadyEquipped"] = "Você já está segurando uma Chave de Fenda Sônica", ["Controls.SonicDispenser.Dispensed"] = "Chave de Fenda Sônica foi ejetada", @@ -222,6 +248,24 @@ T.Phrases = { ["Controls.ToggleScreens.FailedToggle"] = "Falha ao alternar as telas internas", ["Controls.ToggleScreens.Status"] = "Telas internas", ["Controls.ToggleScreens.Tip"] = "Alternar Tela", + ["Controls.Tracking"] = "Rastreando", + ["Controls.Tracking.ConstrainedFail"] = "Não é possível rastrear entidades anexadas a esta TARDIS", + ["Controls.Tracking.DistanceFail"] = "Não é possível rastrear entidades que estão muito distantes", + ["Controls.Tracking.FlightFail"] = "Falha ao ativar o modo de voo para rastreamento", + ["Controls.Tracking.GenericFail"] = "Falha ao rastrear entidade", + ["Controls.Tracking.InteriorFail"] = "Não é possível rastrear entidades dentro da TARDIS", + ["Controls.Tracking.PhyslockFail"] = "Não é possível ativar o rastreamento quando o travamento físico está ativado", + ["Controls.Tracking.PilotWarning"] = "AVISO: O rastreamento está ativado, pressione '%s' para alterar o alvo ou desativar o rastreamento", + ["Controls.Tracking.Rotation"] = "Rotação do Rastreamento", + ["Controls.Tracking.RotationChangedAuto"] = "Rastreando a rotação %s automaticamente com base na rotação do alvo", + ["Controls.Tracking.RotationHint"] = "Pressione '%s' para alternar a rotação do rastreamento do alvo", + ["Controls.Tracking.SameTarget"] = "Você já está rastreando esta entidade", + ["Controls.Tracking.SelfFail"] = "A TARDIS não consegue se rastrear", + ["Controls.Tracking.SpinWarning"] = "AVISO: você não pode alterar a direção do rastreamento enquanto a rotação estiver ativada", + ["Controls.Tracking.Status"] = "Rastreamento", + ["Controls.Tracking.Target"] = "Rastreamento iniciado %s", + ["Controls.Tracking.TargetLost"] = "Alvo de rastreamento perdido", + ["Controls.Tracking.TargetTooFar"] = "Alvo de rastreamento perdido", ["Controls.VirtualConsole.Tip"] = "Console Virtual", ["Controls.VortexFlight"] = "Voo de Vórtex", ["Controls.VortexFlight.FailedToggle"] = "Falha ao alternar voo de vórtex", @@ -233,6 +277,7 @@ T.Phrases = { ["Destination.LockedDemat"] = "Destino travado, desmaterializando...", ["Destination.LockedReadyToDemat"] = "Destino travado, pronto para desmaterializar", ["Destination.LockedReadyToMat"] = "Destino travado, pronto para materializar", + ["Destination.RotationMode"] = "Modo de rotação", ["Expression2.Error"] = "Impossível carregar as funções à algo que não seja uma TARDIS", ["Expression2.Security.UseDenied"] = "Impossível carregar as funções definidas à TARDIS de outra pessoa com a Segurança Isomórfica ativa", ["Exteriors.Categories.Misc"] = "Diversos", @@ -243,7 +288,6 @@ T.Phrases = { ["Exteriors.TTCapsuleType40"] = "Cápsula TT Tipo 40", ["Exteriors.TTCapsuleType50"] = "Cápsula TT Tipo 50", ["Exteriors.TTCapsuleType55"] = "Cápsula TT Tipo 55", - ["Exteriors.TTCapsuleType55B"] = "Cápsula TT Tipo 55-B", ["Flight.DoorOpenNoBoost"] = "A aceleração não funciona com as portas abertas", ["Flight.NameIsNowThePilot"] = "%s agora é o piloto", ["Flight.NameIsThePilot"] = "%s é o piloto", @@ -267,12 +311,10 @@ T.Phrases = { ["Interiors.Default.Versions.TTCapsuleType40"] = "Exterior Cápsula TT Tipo 40", ["Interiors.Default.Versions.TTCapsuleType50"] = "Exterior Cápsula TT Tipo 50", ["Interiors.Default.Versions.TTCapsuleType55"] = "Exterior Cápsula TT Tipo 55", - ["Interiors.Default.Versions.TTCapsuleType55B"] = "Exterior Cápsula TT Tipo 55-B", ["Interiors.DefaultSIDRAT"] = "Padrão SIDRAT", ["Interiors.DefaultTTCapsuleType40"] = "Padrão Cápsula TT Tipo 40", ["Interiors.DefaultTTCapsuleType50"] = "Padrão Cápsula TT Tipo 50", ["Interiors.DefaultTTCapsuleType55"] = "Padrão Cápsula TT Tipo 55", - ["Interiors.DefaultTTCapsuleType55B"] = "Padrão Cápsula TT Tipo 55-B", ["Lock.Locked"] = "Esta TARDIS está trancada", ["MenuOptions.ConfirmResetSettings"] = "Redefinir todas as configurações do lado do cliente? Isso não pode ser desfeito.", ["MenuOptions.ConfirmSectionReset"] = "Redefinir as configurações do lado do cliente da seção \"%s\"? Essa ação não pode ser desfeita.", @@ -304,6 +346,7 @@ T.Phrases = { ["Screens.Chameleon.Apply"] = "Aplicar", ["Screens.Chameleon.Categories"] = "Categorias", ["Screens.Chameleon.Exteriors"] = "Exteriores", + ["Screens.Chameleon.Plan"] = "Planejamento", ["Screens.Chameleon.Reset"] = "Redefinir", ["Screens.Common.Back"] = "Voltar", ["Screens.Common.CurrentPage"] = "Página %d de %d", @@ -413,6 +456,8 @@ T.Phrases = { ["Settings.Sections.Global.BoostSpeed.Description"] = "O aumento da velocidade que a TARDIS recebe com a tecla de aceleração ativada", ["Settings.Sections.Global.EnableHealth"] = "Ativar Saúde", ["Settings.Sections.Global.EnableHealth.Description"] = "A TARDIS deve ter saúde e sofrer danos?", + ["Settings.Sections.Global.HealthToShieldsRatio"] = "Proporção entre saúde e escudos", + ["Settings.Sections.Global.HealthToShieldsRatio.Description"] = "Proporções mais altas dão mais saúde, mas menos escudos, a combinação de saúde/escudos permanece a mesma", ["Settings.Sections.Global.MaxHealth"] = "Vida Máxima", ["Settings.Sections.Global.MaxHealth.Description"] = "Quantidade máxima de saúde que a TARDIS tem", ["Settings.Sections.Global.WaitLongForRepair"] = "Ativar reparo longo", diff --git a/lua/tardis/languages/pt-pt.lua b/lua/tardis/languages/pt-pt.lua index 2314d0d2c..323f8dabd 100644 --- a/lua/tardis/languages/pt-pt.lua +++ b/lua/tardis/languages/pt-pt.lua @@ -6,6 +6,11 @@ T.Code = "pt-PT" T.Name = "Português" T.Phrases = { ["Artron.Depleted"] = "Energia artron esgotada", + ["ArtronInhibitor"] = "Inibidor Artron", + ["ArtronInhibitor.Disabled"] = "Inibidor artron desativado", + ["ArtronInhibitor.Enabled"] = "Inibidor artron ativado", + ["ArtronInhibitor.Instructions"] = "Cria um campo inibidor de Artron, drenando a Energia Artron de outras TARDISes próximas", + ["ArtronInhibitor.Starting"] = "Inicializando o inibidor artron...", ["Binds.AnyKey"] = "Aperte qualquer tecla", ["Binds.Invalid"] = "Inválido", ["Binds.Key"] = "Tecla", @@ -14,7 +19,11 @@ T.Phrases = { ["Binds.Sections.Destination.Boost"] = "Acelerar", ["Binds.Sections.Destination.Boost.Description"] = "Segure esta tecla enquanto estiver a navegar para acelerar", ["Binds.Sections.Destination.Down"] = "Para baixo", + ["Binds.Sections.Destination.FindRandom"] = "Encontrar Aleatório", + ["Binds.Sections.Destination.FindRandom.Description"] = "Pressione esta tecla para encontrar um destino aleatório", ["Binds.Sections.Destination.Forward"] = "Para frente", + ["Binds.Sections.Destination.Jump"] = "Saltar para superfície", + ["Binds.Sections.Destination.Jump.Description"] = "Segure esta tecla para selecionar uma superfície e mover-se para ela", ["Binds.Sections.Destination.Left"] = "Esquerda", ["Binds.Sections.Destination.Right"] = "Direita", ["Binds.Sections.Destination.Rotate"] = "Rotacionar", @@ -233,6 +242,7 @@ T.Phrases = { ["Destination.LockedDemat"] = "Destino travado, desmaterializando...", ["Destination.LockedReadyToDemat"] = "Destino travado, pronto para desmaterializar", ["Destination.LockedReadyToMat"] = "Destino travado, pronto para materializar", + ["Destination.RotationMode"] = "Modo de rotação", ["Expression2.Error"] = "Impossível carregar as funções à algo que não seja uma TARDIS", ["Expression2.Security.UseDenied"] = "Impossível carregar as funções definidas à TARDIS de outra pessoa com a Segurança Isomórfica ativa", ["Exteriors.Categories.Misc"] = "Diversos", @@ -243,7 +253,6 @@ T.Phrases = { ["Exteriors.TTCapsuleType40"] = "Cápsula TT Tipo 40", ["Exteriors.TTCapsuleType50"] = "Cápsula TT Tipo 50", ["Exteriors.TTCapsuleType55"] = "Cápsula TT Tipo 55", - ["Exteriors.TTCapsuleType55B"] = "Cápsula TT Tipo 55-B", ["Flight.DoorOpenNoBoost"] = "A aceleração não funciona com as portas abertas", ["Flight.NameIsNowThePilot"] = "%s agora é o piloto", ["Flight.NameIsThePilot"] = "%s é o piloto", @@ -267,12 +276,10 @@ T.Phrases = { ["Interiors.Default.Versions.TTCapsuleType40"] = "Exterior Cápsula TT Tipo 40", ["Interiors.Default.Versions.TTCapsuleType50"] = "Exterior Cápsula TT Tipo 50", ["Interiors.Default.Versions.TTCapsuleType55"] = "Exterior Cápsula TT Tipo 55", - ["Interiors.Default.Versions.TTCapsuleType55B"] = "Exterior Cápsula TT Tipo 55-B", ["Interiors.DefaultSIDRAT"] = "Padrão SIDRAT", ["Interiors.DefaultTTCapsuleType40"] = "Padrão Cápsula TT Tipo 40", ["Interiors.DefaultTTCapsuleType50"] = "Padrão Cápsula TT Tipo 50", ["Interiors.DefaultTTCapsuleType55"] = "Padrão Cápsula TT Tipo 55", - ["Interiors.DefaultTTCapsuleType55B"] = "Padrão Cápsula TT Tipo 55-B", ["Lock.Locked"] = "Esta TARDIS está trancada", ["MenuOptions.ConfirmResetSettings"] = "Redefinir todas as configurações do lado do cliente? Isso não pode ser desfeito.", ["MenuOptions.ConfirmSectionReset"] = "Redefinir as configurações do lado do cliente da secção \"%s\"? Essa ação não pode ser desfeita.", diff --git a/lua/tardis/languages/ru.lua b/lua/tardis/languages/ru.lua index 175bc4a6c..39c778b8d 100644 --- a/lua/tardis/languages/ru.lua +++ b/lua/tardis/languages/ru.lua @@ -243,7 +243,6 @@ T.Phrases = { ["Exteriors.TTCapsuleType40"] = "ТТ Капсула Тип 40", ["Exteriors.TTCapsuleType50"] = "ТТ Капсула Тип 50", ["Exteriors.TTCapsuleType55"] = "ТТ Капсула Тип 55", - ["Exteriors.TTCapsuleType55B"] = "Капсула ТТ Тип 55-Б", ["Flight.DoorOpenNoBoost"] = "Ускорение не работает с открытыми дверями.", ["Flight.NameIsNowThePilot"] = "%s теперь пилот", ["Flight.NameIsThePilot"] = "%s является пилотом", @@ -267,12 +266,10 @@ T.Phrases = { ["Interiors.Default.Versions.TTCapsuleType40"] = "Экстерьер ТТ Капсула Типа 40", ["Interiors.Default.Versions.TTCapsuleType50"] = "Экстерьер ТТ Капсула Типа 50", ["Interiors.Default.Versions.TTCapsuleType55"] = "Экстерьер ТТ Капсула Типа 55", - ["Interiors.Default.Versions.TTCapsuleType55B"] = "Экстерьер ТТ Капсула Типа 55-Б", ["Interiors.DefaultSIDRAT"] = "Стандартный СИДРАТ", ["Interiors.DefaultTTCapsuleType40"] = "Стандартная ТТ Капсула Типа 40", ["Interiors.DefaultTTCapsuleType50"] = "Стандартная ТТ Капсула Типа 50", ["Interiors.DefaultTTCapsuleType55"] = "Стандартная ТТ Капсула Типа 55", - ["Interiors.DefaultTTCapsuleType55B"] = "Стандартная ТТ Капсула Типа 55-Б", ["Lock.Locked"] = "Эта ТАРДИС заперта", ["MenuOptions.ConfirmResetSettings"] = "Сбросить все настройки со стороны клиента? Это нельзя отменить.", ["MenuOptions.ConfirmSectionReset"] = "Сбросить настройки со стороны клиента в разделе \"%s\"? Это нельзя отменить.", diff --git a/lua/tardis/languages/tr.lua b/lua/tardis/languages/tr.lua index 8623f6220..77c8861e4 100644 --- a/lua/tardis/languages/tr.lua +++ b/lua/tardis/languages/tr.lua @@ -3,7 +3,7 @@ local T = {} T.Code = "tr" -T.Name = "Türk" +T.Name = "Türkçe" T.Phrases = { ["Artron.Depleted"] = "Artron enerjisi tükendi", ["Binds.AnyKey"] = "Herhangi bir tuşa basın", @@ -11,12 +11,16 @@ T.Phrases = { ["Binds.Key"] = "Anahtar", ["Binds.Sections.Destination"] = "Hedef", ["Binds.Sections.Destination.Backward"] = "Geriye", - ["Binds.Sections.Destination.Boost"] = "Artırmak", + ["Binds.Sections.Destination.Boost"] = "Hızlandır", ["Binds.Sections.Destination.Boost.Description"] = "Hızlandırmak için gezinirken bu tuşu basılı tutun", ["Binds.Sections.Destination.Down"] = "Aşağı", + ["Binds.Sections.Destination.FindRandom"] = "Rastgele Bul", + ["Binds.Sections.Destination.FindRandom.Description"] = "Rastgele bir konum seçmek için bu tuşa basın", ["Binds.Sections.Destination.Forward"] = "İleri", - ["Binds.Sections.Destination.Left"] = "Ayrıldı", - ["Binds.Sections.Destination.Right"] = "Doğru", + ["Binds.Sections.Destination.Jump"] = "Yüzeye atla", + ["Binds.Sections.Destination.Jump.Description"] = "Bir yüzey seçip oraya gitmek için bu tuşu basılı tutun", + ["Binds.Sections.Destination.Left"] = "Sol", + ["Binds.Sections.Destination.Right"] = "Sağ", ["Binds.Sections.Destination.Rotate"] = "Döndür", ["Binds.Sections.Destination.Rotate.Description"] = "Döndürmek için bunu artırma ve sol veya sağ tuşlarla basılı tutun", ["Binds.Sections.Destination.Slow"] = "Yavaş", @@ -26,68 +30,68 @@ T.Phrases = { ["Binds.Sections.Destination.Up"] = "Yukarı", ["Binds.Sections.Flight"] = "Uçuş", ["Binds.Sections.Flight.Backward"] = "Geriye", - ["Binds.Sections.Flight.Boost"] = "Artırmak", + ["Binds.Sections.Flight.Boost"] = "Hızlandır", ["Binds.Sections.Flight.Boost.Description"] = "Hızlandırmak için uçarken bu tuşu basılı tutun", ["Binds.Sections.Flight.Down"] = "Aşağı", ["Binds.Sections.Flight.Forward"] = "İleri", - ["Binds.Sections.Flight.Left"] = "Ayrıldı", - ["Binds.Sections.Flight.Right"] = "Doğru", + ["Binds.Sections.Flight.Left"] = "Sol", + ["Binds.Sections.Flight.Right"] = "Sağ", ["Binds.Sections.Flight.Rotate"] = "Döndür", - ["Binds.Sections.Flight.Rotate.Description"] = "Döndürmek için sola ve sağa kullanırken bu tuşu basılı tutun", - ["Binds.Sections.Flight.SpinDirection"] = "Spin Yönü", + ["Binds.Sections.Flight.Rotate.Description"] = "Döndürmek için sol ve sağ tuşlarını kullanırken bu tuşu basılı tutun", + ["Binds.Sections.Flight.SpinDirection"] = "Döndürme Yönü", ["Binds.Sections.Flight.SpinDirection.Description"] = "TARDIS'in uçarken dönüş yönünü değiştirir", ["Binds.Sections.Flight.Up"] = "Yukarı", - ["Binds.Sections.Float"] = "Batmadan yüzmek", + ["Binds.Sections.Float"] = "Süzülmek", ["Binds.Sections.Float.Backward"] = "Geriye", - ["Binds.Sections.Float.Boost"] = "Artırmak", + ["Binds.Sections.Float.Boost"] = "Hızlandır", ["Binds.Sections.Float.Boost.Description"] = "Dönmeyi hızlandırmak için kayarken bu tuşu basılı tutun", ["Binds.Sections.Float.Brake"] = "Fren", ["Binds.Sections.Float.Brake.Description"] = "Float modunda dönüşü yavaşlatmak için bu tuşu basılı tutun", ["Binds.Sections.Float.Forward"] = "İleri", - ["Binds.Sections.Float.Left"] = "Ayrıldı", + ["Binds.Sections.Float.Left"] = "Sol", ["Binds.Sections.Float.Right"] = "Doğru", - ["Binds.Sections.Float.Rotate"] = "Döndür", - ["Binds.Sections.Float.Rotate.Description"] = "Yaw ekseninde döndürmek için sola ve sağa kullanırken bu tuşu basılı tutun", + ["Binds.Sections.Float.Rotate"] = "Sağ", + ["Binds.Sections.Float.Rotate.Description"] = "Sapma ekseninde döndürmek için sol ve sağ tuşlarına basarken bu tuşu basılı tutun", ["Binds.Sections.Teleport"] = "Işınlanma", ["Binds.Sections.Teleport.Demat"] = "Demat", ["Binds.Sections.Teleport.Mat"] = "Mat", - ["Binds.Sections.Teleport.Set"] = "Ayarlamak", - ["Binds.Sections.ThirdPerson"] = "Üçüncü kişi", + ["Binds.Sections.Teleport.Set"] = "Ayarla", + ["Binds.Sections.ThirdPerson"] = "Üçüncü Şahıs Bakış Açısı", ["Binds.Sections.ThirdPerson.Destination"] = "Hedef", ["Binds.Sections.ThirdPerson.Destination.Description"] = "Hedef seçme durumunu girin", ["Binds.Sections.ThirdPerson.OpenScreen"] = "Açık Ekran", - ["Binds.Sections.ThirdPerson.OpenScreen.Description"] = "HUD ekranını değiştirir", - ["Binds.Sections.ThirdPerson.ToggleCloak"] = "Pelerini Aç/Kapat", + ["Binds.Sections.ThirdPerson.OpenScreen.Description"] = "HUD'u açar/kapatır", + ["Binds.Sections.ThirdPerson.ToggleCloak"] = "Görünmezliği Aç/Kapat", ["Binds.Sections.ThirdPerson.ToggleDoor"] = "Kapıyı Aç/Kapat", ["Binds.Sections.ThirdPerson.ToggleFlight"] = "Uçuşu Aç/Kapat", - ["Binds.Sections.ThirdPerson.ToggleFloat"] = "Şamandırayı Aç/Kapat", - ["Binds.Sections.ThirdPerson.ToggleFloat.Description"] = "TARDIS'in yerçekimi yokmuş gibi uçmasına izin verin", - ["Binds.Sections.ThirdPerson.TogglePhyslock"] = "Physlock'u Aç/Kapat", - ["Binds.Sections.ThirdPerson.TogglePhyslock.Description"] = "TARDIS'i uzayda sabit ve hareketsiz hale getirin", - ["Chameleon.ExteriorSelected"] = "Yeni bir dış mekan seçildi", - ["Chameleon.FailedExteriorSelect"] = "Yeni bir dış görünüm seçilemedi", - ["Chameleon.FailReasons.AlreadyChanging"] = "Dış cephe şimdiden değiştiriliyor!", - ["Chameleon.FailReasons.AlreadySelected"] = "Bu dış zaten seçili", - ["Chameleon.FailReasons.DoorsOpen"] = "Kapıların kapanmasını bekliyorum...", + ["Binds.Sections.ThirdPerson.ToggleFloat"] = "Süzülme modunu aç/kapat", + ["Binds.Sections.ThirdPerson.ToggleFloat.Description"] = "TARDIS'in yerçekimi yokmuş gibi uçmasına izin verir", + ["Binds.Sections.ThirdPerson.TogglePhyslock"] = "Fiziksel kilidi Aç/Kapat", + ["Binds.Sections.ThirdPerson.TogglePhyslock.Description"] = "TARDIS'i uzayda sabit ve hareketsiz hale getirir", + ["Chameleon.ExteriorSelected"] = "Yeni bir dış kabuk seçildi", + ["Chameleon.FailedExteriorSelect"] = "Yeni bir dış kabuk seçilemedi", + ["Chameleon.FailReasons.AlreadyChanging"] = "Dış kabuk zaten değiştiriliyor!", + ["Chameleon.FailReasons.AlreadySelected"] = "Bu dış kabuk zaten seçili", + ["Chameleon.FailReasons.DoorsOpen"] = "Kapıların kapanması bekleniyor...", ["Chameleon.FailReasons.NoPower"] = "Bukalemun devresi güç olmadan çalışmıyor", - ["Chameleon.FailReasons.NotEnoughArtron"] = "Bukalemun devresini değiştirmek için yeterli artron enerjisi yok", - ["Chameleon.FailReasons.SameSelected"] = "TARDIS zaten bu dış görünüme sahip", - ["Chameleon.FailReasons.Teleporting"] = "TARDIS indiğinde dış görünüş değişecek", - ["Chameleon.Status"] = "bukalemun devresi", + ["Chameleon.FailReasons.NotEnoughArtron"] = "Bukalemun devresini açmak/kapatmak için yeterli artron enerjisi yok", + ["Chameleon.FailReasons.SameSelected"] = "TARDIS zaten bu dış kabuğu kullanıyor", + ["Chameleon.FailReasons.Teleporting"] = "TARDIS indiğinde dış kabuk değişecek", + ["Chameleon.Status"] = "Bukalemun devresi", ["Chameleon.Status.Activated"] = "Aktif", ["Chameleon.Status.Deactivated"] = "devre dışı bırakıldı", ["Common.Cancel"] = "İptal", ["Common.Closed.Lower"] = "kapalı", - ["Common.ControlSequencesEnabledWarning"] = "Kontrol Sıraları etkinleştirildi. sırayı kullanmalısın", + ["Common.ControlSequencesEnabledWarning"] = "Kontrol Sıraları etkinleştirildi. Sıralara göre kullanmalısınız", ["Common.Default"] = "Varsayılan", - ["Common.Delete"] = "Silmek", - ["Common.Disabled.Lower"] = "engelli", - ["Common.Disengaged.Lower"] = "ayrılmış", + ["Common.Delete"] = "Sil", + ["Common.Disabled.Lower"] = "Devre dışı bırakıldı", + ["Common.Disengaged.Lower"] = "bağlantısız", ["Common.DontAskAgain"] = "Bir daha sorma", - ["Common.DoorsNotInstalled"] = "Kapılar takılı değil!", + ["Common.DoorsNotInstalled"] = "Doors modu yüklü değil!", ["Common.Enabled.Lower"] = "etkinleştirilmiş", - ["Common.Engaged.Lower"] = "nişanlı", - ["Common.EnterTextInput"] = "Metin girişi girin", + ["Common.Engaged.Lower"] = "aktif", + ["Common.EnterTextInput"] = "Metin girin", ["Common.Error"] = "HATA", ["Common.Interface"] = "TARDIS Arayüzü", ["Common.Load"] = "Yük", @@ -96,15 +100,15 @@ T.Phrases = { ["Common.New"] = "Yeni", ["Common.No"] = "Numara", ["Common.NotInTARDIS"] = "TARDIS'te değilsin", - ["Common.NotYetImplemented"] = "Bu henüz uygulanmadı", + ["Common.NotYetImplemented"] = "Bu henüz yapılmadı", ["Common.OK"] = "TAMAM", ["Common.Opened.Lower"] = "açıldı", ["Common.PowerDisabled"] = "Güç devre dışı", ["Common.PowerDisabledControl"] = "Güç devre dışı. Bu çalışmıyor", - ["Common.Remove"] = "Kaldırmak", + ["Common.Remove"] = "Kaldır", ["Common.Reset"] = "Sıfırla", - ["Common.Save"] = "Kaydetmek", - ["Common.Set"] = "Ayarlamak", + ["Common.Save"] = "Kaydet", + ["Common.Set"] = "Ayarla", ["Common.TARDIS"] = "TARDIS", ["Common.UnknownError"] = "Bilinmeyen hata", ["Common.Unlocked.Lower"] = "kilidi açıldı", @@ -112,10 +116,10 @@ T.Phrases = { ["Common.UnsavedChangesWarning"] = "Kaydedilmemiş değişiklikleriniz var, bunları kaydetmek ister misiniz?", ["Common.Update"] = "Güncelleme", ["Common.Yes"] = "Evet", - ["Controls.Cloak"] = "Pelerin", - ["Controls.Cloak.FailedToggle"] = "Gizleme değiştirilemedi", - ["Controls.Cloak.Status"] = "Pelerin", - ["Controls.Cloak.Tip"] = "Gizleme Cihazı", + ["Controls.Cloak"] = "Görünmezlik", + ["Controls.Cloak.FailedToggle"] = "Görünmezlik değiştirilemedi", + ["Controls.Cloak.Status"] = "Görünmezlik", + ["Controls.Cloak.Tip"] = "Görünmezlik Cihazı", ["Controls.Coordinates.Tip"] = "Koordinatlar", ["Controls.Destination"] = "Hedef", ["Controls.Destination.Tip"] = "Hedef Seçimi", @@ -126,32 +130,32 @@ T.Phrases = { ["Controls.Door.NoSwitch"] = "Kapı anahtarı çalışmıyor", ["Controls.Door.Status"] = "Kapı", ["Controls.Door.Tip"] = "Kapı anahtarı", - ["Controls.Door.UsingEmergencyPower"] = "Kapıyı açmak için acil durum gücünü kullanmak...", + ["Controls.Door.UsingEmergencyPower"] = "Kapıyı açmak için acil durum gücünü kullanılıyor...", ["Controls.DoorLock"] = "Kapı kilidi", - ["Controls.DoorLock.FailedToggle"] = "Kapı kilidi değiştirilemedi", + ["Controls.DoorLock.FailedToggle"] = "Kapı kitlenemedi/kilidi açılamadı", ["Controls.DoorLock.NotWorking"] = "Kapı kilidi çalışmıyor", ["Controls.DoorLock.Tip"] = "Kapı kilidi", - ["Controls.DoorLock.UsingEmergencyPower"] = "Kilidi devreden çıkarmak için acil durum gücünü kullanmak...", - ["Controls.EngineRelease"] = "Motor Yayını", + ["Controls.DoorLock.UsingEmergencyPower"] = "Kilidi açmak için acil durum gücü kullanılıyor...", + ["Controls.EngineRelease"] = "Motoru Serbest Bırak", ["Controls.EngineRelease.ArtronAdded"] = "Girdapta artron enerjisini şarj etmek için sağlık feda edildi", - ["Controls.EngineRelease.FailedDemat"] = "Kaydileştirilemedi", - ["Controls.EngineRelease.ForceDemat"] = "Zorla kaydileştirme tetiklendi", - ["Controls.EngineRelease.Tip"] = "Motor Yayını", + ["Controls.EngineRelease.FailedDemat"] = "Demateryalizasyon başarısız oldu", + ["Controls.EngineRelease.ForceDemat"] = "Zorla demateryalizasyon tetiklendi", + ["Controls.EngineRelease.Tip"] = "Motor Tahliyesi", ["Controls.ExteriorLight"] = "Dış Işık", ["Controls.ExteriorLight.Status"] = "Dış Işık", ["Controls.ExteriorLight.Tip"] = "Dış Işık", - ["Controls.FastReturn"] = "Hızlı İade", + ["Controls.FastReturn"] = "Hızlı Geri Dönüş", ["Controls.FastReturn.Activated"] = "Hızlı dönüş protokolü başlatıldı", ["Controls.FastReturn.Failed"] = "Hızlı dönüş protokolü başlatılamadı", ["Controls.FastReturn.Tip"] = "Hızlı Dönüş Protokolü", ["Controls.Flight"] = "Uçuş modu", - ["Controls.Flight.FailedToggle"] = "Uçuş modu değiştirilemedi", + ["Controls.Flight.FailedToggle"] = "Uçuş modu açılamadı/kapatılamadı", ["Controls.Flight.Status"] = "Uçuş modu", ["Controls.Flight.Tip"] = "Uçuş modu", - ["Controls.Float"] = "Anti-gravs", - ["Controls.Float.FailedToggle"] = "Anti-grav'ler arasında geçiş yapılamadı", - ["Controls.Float.Status"] = "Anti-gravs", - ["Controls.Float.Tip"] = "Anti-gravs", + ["Controls.Float"] = "Anti-yerçekimi", + ["Controls.Float.FailedToggle"] = "Anti-yerçekimi açılamadı/kapatılamadı", + ["Controls.Float.Status"] = "Anti-yerçekimi", + ["Controls.Float.Tip"] = "Anti-yerçekimi", ["Controls.HADS"] = "H.A.D.S.", ["Controls.HADS.Status"] = "Düşmanca Eylem Yer Değiştirme Sistemi", ["Controls.HADS.Tip"] = "H.A.D.S.", @@ -161,13 +165,13 @@ T.Phrases = { ["Controls.Handbrake.Tip"] = "Zaman Rotor El Freni", ["Controls.InteriorLights.Tip"] = "Işıklar", ["Controls.Isomorphic"] = "Izomorfik güvenlik", - ["Controls.Isomorphic.FailedToggle"] = "İzomorfik güvenlik değiştirilemedi", + ["Controls.Isomorphic.FailedToggle"] = "İzomorfik güvenlik açılamadı/kapatılamadı", ["Controls.Isomorphic.NotCreator"] = "Bu senin TARDIS'in değil", - ["Controls.Isomorphic.SingleplayerWarning"] = "UYARI: İzomorfik güvenliğin singleplayer'da kullanımı yoktur", + ["Controls.Isomorphic.SingleplayerWarning"] = "UYARI: İzomorfik güvenliğin tek oyunculuda kullanımı yoktur", ["Controls.Isomorphic.Status"] = "Izomorfik güvenlik", ["Controls.Isomorphic.Tip"] = "Izomorfik Güvenlik Sistemi", ["Controls.Music.Tip"] = "Müzik", - ["Controls.Physlock"] = "Fizik kilidi", + ["Controls.Physlock"] = "Fiziksel kilit", ["Controls.Physlock.FailedToggle"] = "Kilitleme mekanizması değiştirilemedi", ["Controls.Physlock.Status"] = "Kilitleme mekanizması", ["Controls.Physlock.Tip"] = "Kilitleme mekanizması", @@ -175,8 +179,8 @@ T.Phrases = { ["Controls.Power.FailedToggle"] = "Güç değiştirilemedi", ["Controls.Power.Status"] = "Güç", ["Controls.Power.Tip"] = "Güç düğmesi", - ["Controls.RandomCoords.Selected"] = "Rastgele hedef seçildi", - ["Controls.RandomCoords.Tip"] = "Rastgele Hedef", + ["Controls.RandomCoords.Selected"] = "Rastgele konum seçildi", + ["Controls.RandomCoords.Tip"] = "Rastgele Konum", ["Controls.Redecorate"] = "Yeniden dekorasyon", ["Controls.Redecorate.FailedToggle"] = "Yeniden dekorasyon arasında geçiş yapılamadı", ["Controls.Redecorate.NotCreator"] = "Başkasının TARDIS'ini yeniden dekore edemezsiniz", @@ -189,9 +193,9 @@ T.Phrases = { ["Controls.Scanner.Tip"] = "Tarayıcı", ["Controls.Shields.Tip"] = "Kalkanlar", ["Controls.SonicDispenser.AlreadyEquipped"] = "Halihazırda bir Sonik Tornavida tutuyorsunuz", - ["Controls.SonicDispenser.Dispensed"] = "Sonic Tornavida dağıtıldı", - ["Controls.SonicDispenser.Equipped"] = "Sonic Tornavida donatıldı", - ["Controls.SonicDispenser.MissingAddon"] = "Sonic Tornavida eklentisi yüklü değil. Bu parçanın çalışması için yükleyin", + ["Controls.SonicDispenser.Dispensed"] = "Sonik Tornavida verildi", + ["Controls.SonicDispenser.Equipped"] = "Sonik Tornavida alındı", + ["Controls.SonicDispenser.MissingAddon"] = "Sonik Tornavida eklentisi yüklü değil. Bunun çalışması için yükleyin", ["Controls.SonicDispenser.Tip"] = "Sonik Şarj Cihazı", ["Controls.SpinCycle"] = "Dönüş yönü", ["Controls.SpinCycle.Tip"] = "Döndürmek", @@ -201,13 +205,13 @@ T.Phrases = { ["Controls.SpinToggle.Tip"] = "Döndürmeyi aç/kapat", ["Controls.Stabilizers.Tip"] = "Uçuş stabilizatörleri", ["Controls.Teleport"] = "Işınlanma", - ["Controls.Teleport.Demat"] = "Kaydileştirme", - ["Controls.Teleport.FailedDemat"] = "Kaydileştirilemedi", - ["Controls.Teleport.FailedDematDoorsOpen"] = "Kapılar açıkken kaydi yapılamaz", - ["Controls.Teleport.FailedDematHandbrake"] = "Zaman Rotor El Freni devrede! Kaydileştirilemez", - ["Controls.Teleport.FailedMat"] = "Gerçekleştirilemedi", - ["Controls.Teleport.Mat"] = "Materyalize etmek", - ["Controls.Teleport.Tip"] = "Uzay-Zaman Gaz Kelebeği", + ["Controls.Teleport.Demat"] = "Demateryalizasyon gerçekleşiyor", + ["Controls.Teleport.FailedDemat"] = "Demateryelize olunamadı", + ["Controls.Teleport.FailedDematDoorsOpen"] = "Kapılar açıkken demateryalize olunamaz", + ["Controls.Teleport.FailedDematHandbrake"] = "Zaman Rotor El Freni devrede! Demateryelize olunamaz", + ["Controls.Teleport.FailedMat"] = "Materyelize olunamadı", + ["Controls.Teleport.Mat"] = "Materyalize olunuyor", + ["Controls.Teleport.Tip"] = "Uzay-Zaman Kolu", ["Controls.ThirdPerson"] = "Uçuş kontrol", ["Controls.ThirdPerson.Tip"] = "Manuel Uçuş Kontrolü", ["Controls.ThirdPersonCareful.Tip"] = "Manuel Uçuş Kontrolü", @@ -233,6 +237,7 @@ T.Phrases = { ["Destination.LockedDemat"] = "Hedef kilitlendi, kaydileştiriliyor...", ["Destination.LockedReadyToDemat"] = "Hedef kilitli, kaydileştirilmeye hazır", ["Destination.LockedReadyToMat"] = "Hedef kilitlendi, gerçekleşmeye hazır", + ["Destination.RotationMode"] = "Döndürme modu", ["Expression2.Error"] = "TARDIS işlevlerini TARDIS dışında bir şeyde çağıramazsınız", ["Expression2.Security.UseDenied"] = "İzomorfik Güvenlik etkinken başka birinin TARDIS'inde TARDIS ayarlı işlevler çağrılamaz", ["Exteriors.Categories.Misc"] = "Çeşitli", @@ -243,7 +248,6 @@ T.Phrases = { ["Exteriors.TTCapsuleType40"] = "TT Kapsül Tip 40", ["Exteriors.TTCapsuleType50"] = "TT Kapsül Tip 50", ["Exteriors.TTCapsuleType55"] = "TT Kapsül Tip 55", - ["Exteriors.TTCapsuleType55B"] = "TT Kapsül Tip 55-B", ["Flight.DoorOpenNoBoost"] = "Boost, kapılar açıkken çalışmıyor", ["Flight.NameIsNowThePilot"] = "%s artık pilot", ["Flight.NameIsThePilot"] = "%s artık pilot", @@ -267,12 +271,10 @@ T.Phrases = { ["Interiors.Default.Versions.TTCapsuleType40"] = "TT Kapsül Tip 40 Dış", ["Interiors.Default.Versions.TTCapsuleType50"] = "TT Kapsül Tip 50 Dış", ["Interiors.Default.Versions.TTCapsuleType55"] = "TT Kapsül Tip 55 Dış", - ["Interiors.Default.Versions.TTCapsuleType55B"] = "TT Kapsül Tip 55-B Dış", ["Interiors.DefaultSIDRAT"] = "SIDRAT Varsayılan", ["Interiors.DefaultTTCapsuleType40"] = "TT Kapsül Tip 40 Varsayılan", ["Interiors.DefaultTTCapsuleType50"] = "TT Kapsül Tip 50 Varsayılan", ["Interiors.DefaultTTCapsuleType55"] = "TT Kapsül Tipi 55 Varsayılan", - ["Interiors.DefaultTTCapsuleType55B"] = "TT Kapsül Tip 55-B Varsayılan", ["Lock.Locked"] = "Bu TARDIS kilitli", ["MenuOptions.ConfirmResetSettings"] = "Tüm istemci tarafı ayarları sıfırlansın mı? Bu geri alınamaz.", ["MenuOptions.ConfirmSectionReset"] = "\"%s\" bölümünün istemci tarafı ayarları sıfırlansın mı? Bu geri alınamaz.", @@ -380,6 +382,8 @@ T.Phrases = { ["Settings.Sections.Exterior.Light.AlwaysOn.Description"] = "Bir kontrol tarafından devre dışı bırakılmadığı sürece dış ışık her zaman yanmalı mı?", ["Settings.Sections.Exterior.Light.ColorOverride"] = "Renk Geçersiz Kılma", ["Settings.Sections.Exterior.Light.ColorOverride.Description"] = "Dış ışığın geçersiz kılma rengi", + ["Settings.Sections.Exterior.Light.DynamicLightSize"] = "Dinamik Işık Büyüklüğü", + ["Settings.Sections.Exterior.Light.DynamicLightSize.Description"] = "Dinamik dış ışıklandırmanın boyutu", ["Settings.Sections.Exterior.Light.EnableColorOverride"] = "Açık Renk Geçersiz Kılmayı Etkinleştir", ["Settings.Sections.Exterior.Light.EnableColorOverride.Description"] = "Dış ışık renginin geçersiz kılınmasının etkinleştirilip etkinleştirilmediği", ["Settings.Sections.Exterior.ProjectedLight"] = "Yansıtılan ışık", @@ -396,6 +400,8 @@ T.Phrases = { ["Settings.Sections.Exterior.ProjectedLight.EnableDistanceOverride"] = "Mesafe Geçersiz Kılmayı Etkinleştir", ["Settings.Sections.Exterior.ProjectedLight.EnableDistanceOverride.Description"] = "Yansıtılan ışık mesafesinin geçersiz kılınmasının etkinleştirilip etkinleştirilmediği", ["Settings.Sections.Global"] = "Yönetici Seçenekleri", + ["Settings.Sections.Global.AdminSecurityBypass"] = "Admin Güvenlik Atlaması", + ["Settings.Sections.Global.AdminSecurityBypass.Description"] = "Adminler izomorfik güvenliği atlayabilmeli mi?", ["Settings.Sections.Global.ArtronEnergy"] = "Artron Enerji", ["Settings.Sections.Global.ArtronEnergy.ArtronEnergyChargeFrequency"] = "El freni olmadan şarj frekansı (saniye cinsinden)", ["Settings.Sections.Global.ArtronEnergy.ArtronEnergyChargeFrequency.Description"] = "Artron enerjisinin şarjı ne sıklıkla el freni olmadan gerçekleşir?", diff --git a/lua/tardis/languages/zh-cn.lua b/lua/tardis/languages/zh-cn.lua index 602410c3d..a18105cc9 100644 --- a/lua/tardis/languages/zh-cn.lua +++ b/lua/tardis/languages/zh-cn.lua @@ -243,7 +243,6 @@ T.Phrases = { ["Exteriors.TTCapsuleType40"] = "TT 胶囊类型 40", ["Exteriors.TTCapsuleType50"] = "TT 胶囊类型 50", ["Exteriors.TTCapsuleType55"] = "TT 胶囊类型 55", - ["Exteriors.TTCapsuleType55B"] = "TT 胶囊类型 55-B", ["Flight.DoorOpenNoBoost"] = "门打开时无法加速", ["Flight.NameIsNowThePilot"] = "%s 现在是飞行员", ["Flight.NameIsThePilot"] = "%s 是飞行员", @@ -267,12 +266,10 @@ T.Phrases = { ["Interiors.Default.Versions.TTCapsuleType40"] = "40型 TT太空舱 外部", ["Interiors.Default.Versions.TTCapsuleType50"] = "50型 TT太空舱 外部", ["Interiors.Default.Versions.TTCapsuleType55"] = "55型 TT太空舱 外部", - ["Interiors.Default.Versions.TTCapsuleType55B"] = "50-B型 TT太空舱 外部", ["Interiors.DefaultSIDRAT"] = "SIDRAT 默认", ["Interiors.DefaultTTCapsuleType40"] = "40型 TT太空舱 默认", ["Interiors.DefaultTTCapsuleType50"] = "50型 TT太空舱 默认", ["Interiors.DefaultTTCapsuleType55"] = "55型 TT太空舱 默认", - ["Interiors.DefaultTTCapsuleType55B"] = "50-B型 TT太空舱 默认", ["Lock.Locked"] = "这架塔迪斯已上锁", ["MenuOptions.ConfirmResetSettings"] = "恢复所有客户端设置?此步骤无法撤销!", ["MenuOptions.ConfirmSectionReset"] = "恢复\"%s\"部分的客户端设置?此步骤无法撤销!", diff --git a/lua/tardis/languages/zh-tw.lua b/lua/tardis/languages/zh-tw.lua index 0b6995bee..8742b1275 100644 --- a/lua/tardis/languages/zh-tw.lua +++ b/lua/tardis/languages/zh-tw.lua @@ -243,7 +243,6 @@ T.Phrases = { ["Exteriors.TTCapsuleType40"] = "TT 膠囊類型 40", ["Exteriors.TTCapsuleType50"] = "TT 膠囊類型 50", ["Exteriors.TTCapsuleType55"] = "TT 膠囊類型 55", - ["Exteriors.TTCapsuleType55B"] = "TT 膠囊類型 55-B", ["Flight.DoorOpenNoBoost"] = "門打開時無法加速", ["Flight.NameIsNowThePilot"] = "%s 現在是飛行員", ["Flight.NameIsThePilot"] = "%s 是飛行員", @@ -267,12 +266,10 @@ T.Phrases = { ["Interiors.Default.Versions.TTCapsuleType40"] = "TT 膠囊型 40 外觀", ["Interiors.Default.Versions.TTCapsuleType50"] = "TT 膠囊型 50 外觀", ["Interiors.Default.Versions.TTCapsuleType55"] = "TT 膠囊型 55 外觀", - ["Interiors.Default.Versions.TTCapsuleType55B"] = "TT 膠囊型 55-B 外觀", ["Interiors.DefaultSIDRAT"] = "SIDRAT違約", ["Interiors.DefaultTTCapsuleType40"] = "TT 膠囊類型 40 默認", ["Interiors.DefaultTTCapsuleType50"] = "TT 膠囊類型 50 默認值", ["Interiors.DefaultTTCapsuleType55"] = "TT 膠囊類型 55 默認值", - ["Interiors.DefaultTTCapsuleType55B"] = "TT 膠囊類型 55-B 默認", ["Lock.Locked"] = "這架塔迪斯已上鎖", ["MenuOptions.ConfirmResetSettings"] = "恢復所有客戶端設置?此步驟無法撤銷!", ["MenuOptions.ConfirmSectionReset"] = "恢復\"%s\"部分的客戶端設置?此步驟無法撤銷!", diff --git a/lua/tardis/libraries/libraries/libraries/sh_version.lua b/lua/tardis/libraries/libraries/libraries/sh_version.lua new file mode 100644 index 000000000..844fc196d --- /dev/null +++ b/lua/tardis/libraries/libraries/libraries/sh_version.lua @@ -0,0 +1,209 @@ +-- Version + +TARDIS.Migrations = TARDIS.Migrations or {} + +local function get_version_from_string(str) + local major, minor, patch = string.match(str, "^(%d+)%.(%d+)%.(%d+)$") + if not major then return false end + return true, { + Major = tonumber(major), + Minor = tonumber(minor), + Patch = tonumber(patch) + } +end + +local function get_version_from_file(versionFile) + local version, success + if file.Exists(versionFile, "DATA") then + local versionStr = file.Read(versionFile, "DATA") + success, version = get_version_from_string(versionStr) + if not success then + error("Invalid version in ".. versionFile .. ": " .. versionStr) + end + else + version = { + Major = 0, + Minor = 0, + Patch = 0 + } + end + + return version +end + +local VERSION_FILE = "tardis/version" .. (SERVER and "_sv" or "_cl") .. ".txt" +local VERSION_LAST_USED_FILE = "tardis/version_lastused" .. (SERVER and "_sv" or "_cl") .. ".txt" + +local function get_previous_version() + return get_version_from_file(VERSION_FILE) +end + +local function get_last_used_version() + return get_version_from_file(VERSION_LAST_USED_FILE) +end + +TARDIS.PreviousVersion = TARDIS.PreviousVersion or get_previous_version() +TARDIS.LastUsedVersion = TARDIS.LastUsedVersion or get_last_used_version() + +function TARDIS:GetVersion() + return self.Version +end + +function TARDIS:GetPreviousVersion() + return self.PreviousVersion +end + +function TARDIS:GetLastUsedVersion() + return self.LastUsedVersion +end + +function TARDIS:SetLastUsedVersion() + if self:IsVersionEqualTo(self:GetVersion(), self.LastUsedVersion) then + return + end + file.Write(VERSION_LAST_USED_FILE, self:GetVersionString()) + self.LastUsedVersion = self:GetVersion() +end + +function TARDIS:IsNewVersion() + if self.LastUsedVersion.Major == 0 + and self.LastUsedVersion.Minor == 0 + and self.LastUsedVersion.Patch == 0 + then + -- We need to try and determine if this is a new install or an update + -- If the version file doesn't exist, it would normally be a new install + -- However, this feature was added in 2023.8.0 so if we are within two weeks of the release date, we can assume it's an update + + -- This code can be removed after 2023.8.0 has been out for two weeks + -- and this can always return false if the version file doesn't exist + + local releaseDate = os.time({year=2023, month=11, day=23, hour=0, min=0, sec=0}) + local now = os.time() + local twoWeeks = 60 * 60 * 24 * 14 + if (now - releaseDate) < twoWeeks then + return true + else + return false + end + end + return self:IsVersionHigherThan(self.LastUsedVersion) +end + +function TARDIS:GetVersionString(version) + version = version or self.Version + return string.format("%d.%d.%d", version.Major, version.Minor, version.Patch) +end + +local function get_versions(versionStrOrTbl, compareVersionStrOrTbl) + local version, compareVersion, success + + if istable(versionStrOrTbl) then + version = versionStrOrTbl + else + success, version = get_version_from_string(versionStrOrTbl) + if not success then + error("Invalid version string: " .. versionStrOrTbl) + end + end + + if istable(compareVersionStrOrTbl) then + compareVersion = compareVersionStrOrTbl + elseif compareVersionStrOrTbl then + success, compareVersion = get_version_from_string(compareVersionStrOrTbl) + if not success then + error("Invalid version string: " .. compareVersionStrOrTbl) + end + else + compareVersion = TARDIS.Version + end + + return version, compareVersion +end + +function TARDIS:IsVersionHigherOrEqualTo(versionStrOrTbl, compareVersionStrOrTbl) + local version, compareVersion = get_versions(versionStrOrTbl, compareVersionStrOrTbl) + + if compareVersion.Major > version.Major then return true end + if compareVersion.Major < version.Major then return false end + + if compareVersion.Minor > version.Minor then return true end + if compareVersion.Minor < version.Minor then return false end + + if compareVersion.Patch >= version.Patch then return true end + + return false +end + +function TARDIS:IsVersionHigherThan(versionStrOrTbl, compareVersionStrOrTbl) + local version, compareVersion = get_versions(versionStrOrTbl, compareVersionStrOrTbl) + + if compareVersion.Major > version.Major then return true end + if compareVersion.Major < version.Major then return false end + + if compareVersion.Minor > version.Minor then return true end + if compareVersion.Minor < version.Minor then return false end + + if compareVersion.Patch > version.Patch then return true end + + return false +end + +function TARDIS:IsVersionEqualTo(versionStrOrTbl, compareVersionStrOrTbl) + local version, compareVersion = get_versions(versionStrOrTbl, compareVersionStrOrTbl) + + if compareVersion.Major ~= version.Major then return false end + if compareVersion.Minor ~= version.Minor then return false end + if compareVersion.Patch ~= version.Patch then return false end + + return true +end + +function TARDIS:AddMigration(name, fromVersion, func) + local source = debug.getinfo(2).short_src + + if not TARDIS:IsVersionHigherOrEqualTo(fromVersion) then + error("Invalid version for migration '".. name .."': " .. fromVersion .. " (current version is " .. self:GetVersionString() .. ")") + end + + if self.Migrations[fromVersion] and self.Migrations[fromVersion][name] and self.Migrations[fromVersion][name].source ~= source then + error("Duplicate migration registered: " .. name .. "(" .. fromVersion .. ") (exists in both " .. self.Migrations[fromVersion][name].source .. " and " .. source .. ")") + end + + local success = get_version_from_string(fromVersion) + if not success then + error("Invalid version in migration: " .. fromVersion) + end + + if self.Migrations[fromVersion] == nil then + self.Migrations[fromVersion] = {} + end + self.Migrations[fromVersion][name] = { + func = func, + source = source + } +end + +function TARDIS:RunMigrations() + local versions = table.GetKeys(self.Migrations) + if #versions == 0 then return end + + local filteredVersions = {} + local previousVersion = get_previous_version() + for _, version in ipairs(versions) do + if self:IsVersionHigherThan(previousVersion, version) then + table.insert(filteredVersions, version) + end + end + + table.sort(filteredVersions, function(a,b) + return self:IsVersionHigherThan(a,b) + end) + + for _, version in ipairs(filteredVersions) do + for name, migration in pairs(self.Migrations[version]) do + print("[TARDIS] Running migration " .. name .. " (" .. version .. ")") + migration.func(self) + end + end + file.Write(VERSION_FILE, self:GetVersionString()) +end diff --git a/lua/tardis/libraries/libraries/libraries/sh_version_generated.lua b/lua/tardis/libraries/libraries/libraries/sh_version_generated.lua new file mode 100644 index 000000000..6c72d02c3 --- /dev/null +++ b/lua/tardis/libraries/libraries/libraries/sh_version_generated.lua @@ -0,0 +1,8 @@ +-- AUTO GENERATED FILE - DO NOT EDIT -- +-- SOURCE FILE: version.json -- + +TARDIS.Version = { + Major = 2023, + Minor = 8, + Patch = 0 +} diff --git a/lua/tardis/libraries/libraries/sh_debug.lua b/lua/tardis/libraries/libraries/sh_debug.lua index f80e9b008..bff1b77b5 100644 --- a/lua/tardis/libraries/libraries/sh_debug.lua +++ b/lua/tardis/libraries/libraries/sh_debug.lua @@ -1,47 +1,228 @@ +-- I often need to run custom code in the TARDIS, this is a template for that +TARDIS.DebugFunction = function(ext,int,ply,cmd,args) + TARDIS:Debug("Debug function") + TARDIS:Debug("Exterior:", ext, "") + TARDIS:Debug("Interior:", int, "") --- Debug messages + if IsValid(ext) then + -- paste code here + end + + if IsValid(int) then + -- paste code here + end + + if IsValid(ext) and IsValid(int) then + -- paste code here + end + + local lext, lint + + if ply.linked_tardis then + lext = ply.linked_tardis + lint = lext.interior + end + + if IsValid(lext) then + -- paste code here + end + + if IsValid(lint) then + -- paste code here + end + + if IsValid(lext) and IsValid(lint) then + -- paste code here + end +end + +concommand.Add("tardis2_debug_func", function(ply,cmd,args) + if not ply:IsAdmin() then return end + local ext = ply:GetTardisData("exterior") + local int = ply:GetTardisData("interior") + + TARDIS.DebugFunction(ext,int,ply,cmd,args) +end) + +if SERVER then + util.AddNetworkString("TARDIS_Debug_Convar") +end + +local convar_update_funcs = {} + +local function CreateBoolDebugConVar(name, desc) + local id = "tardis2_" .. name + CreateConVar(id, 0, {FCVAR_ARCHIVE, FCVAR_REPLICATED}, desc) + + local function convar_update() + TARDIS[name] = GetConVar(id):GetBool() + end + + cvars.AddChangeCallback(id, function() + convar_update() + + -- fixing https://github.com/Facepunch/garrysmod-issues/issues/3740 + net.Start("TARDIS_Debug_Convar") + net.WriteString(id) + net.Broadcast() + end) -CreateConVar("tardis2_debug", 0, {FCVAR_ARCHIVE, FCVAR_REPLICATED}, "TARDIS - debug enabled") -cvars.AddChangeCallback("tardis2_debug", function() - TARDIS.debug = GetConVar("tardis2_debug"):GetBool() + convar_update() + + convar_update_funcs[id] = convar_update +end + +net.Receive("TARDIS_Debug_Convar", function(name, len, ply) + local id = net.ReadString() + if convar_update_funcs[id] then + convar_update_funcs[id]() + end end) -CreateConVar("tardis2_debug_chat", 0, {FCVAR_ARCHIVE, FCVAR_REPLICATED}, "TARDIS - print debug to chat as well") -cvars.AddChangeCallback("tardis2_debug_chat", function() - TARDIS.debug_chat = GetConVar("tardis2_debug_chat"):GetBool() +CreateBoolDebugConVar("debug", "TARDIS - debug enabled") +CreateBoolDebugConVar("debug_chat", "TARDIS - print debug to chat as well") +CreateBoolDebugConVar("debug_textures", "TARDIS - print the texture list in TextureSet format") +CreateBoolDebugConVar("debug_tips", "TARDIS - generate tip code when using the part") +CreateBoolDebugConVar("debug_tips_show_all", "TARDIS - show all existing tips (not depending on their text)") + +concommand.Add("tardis2_debug_tips_print", function(ply,cmd,args) + local int = ply:GetTardisData("interior") + if not IsValid(int) then return end + + print(int.debug_tips_text or "NO TIPS DEBUG TEXT GENERATED") end) -CreateConVar("tardis2_debug_textures", 0, {FCVAR_ARCHIVE, FCVAR_REPLICATED}, - "TARDIS - print the list of textures in TextureSet / ChangeTexture form") -cvars.AddChangeCallback("tardis2_debug_textures", function() - TARDIS.debug_textures = GetConVar("tardis2_debug_textures"):GetBool() +concommand.Add("tardis2_debug_tips_reset", function(ply,cmd,args) + local int = ply:GetTardisData("interior") + if not IsValid(int) then return end + + int.debug_tips_text = nil end) -TARDIS.debug = GetConVar("tardis2_debug"):GetBool() -TARDIS.debug_chat = GetConVar("tardis2_debug_chat"):GetBool() -TARDIS.debug_textures = GetConVar("tardis2_debug_textures"):GetBool() +TARDIS.DebugTipsFunction = function(self, ply, ...) + local int = self.interior + + local trace = { + start = ply:EyePos(), + endpos = ply:EyePos() + (ply:GetAimVector() * 4096), + filter = { ply, }, + } + + local trace_res = util.TraceLine(trace) + + if not trace_res.Hit then return end + + int.debug_tips_text = int.debug_tips_text or "" + + local tip_pos = int:WorldToLocal(trace_res.HitPos) + tip_pos.z = tip_pos.z - 1 + + local ent = trace_res.Entity + local id = ent.TardisPart and ent.ID or nil + + local function sm(x) return math.Round(x,2) end + + local function add_tip_text(pos) + local tip_string = "{ pos = Vector(" .. sm(pos.x) .. ", " .. sm(pos.y) .. ", " .. sm(pos.z) + tip_string = tip_string .. "), right = true, down = true, }," + + if id then + tip_string = id .. " = " .. tip_string + end + + int.debug_tips_text = int.debug_tips_text .. " " .. tip_string .. "\n" + end + + TARDIS:Debug(id or ent, sm(tip_pos.x), sm(tip_pos.y), sm(tip_pos.z)) + + local p_pos = int:LocalToWorld(tip_pos) + if IsValid(int.tip_debug_pointer) then + + if ply:KeyDown(IN_WALK) then + p_pos = int.tip_debug_pointer:GetPos() + end + + int.tip_debug_pointer:Remove() + end + + local p = ents.Create("gmod_tardis_debug_pointer") + p:SetCreator(ply) + p:SetPos(p_pos) + p.Use = function(ptr) + add_tip_text(int:WorldToLocal(ptr:GetPos())) + ply:ChatPrint("Added. Use tardis2_debug_tips_print to get the list.") + end + p:Spawn() + p:Activate() + int:DeleteOnRemove(p) + int.tip_debug_pointer = p + +end concommand.Add("tardis2_debug_warning", function(ply,cmd,args) local ext = ply:GetTardisData("exterior") - if not ext or not ply:IsAdmin() then return end + if not IsValid(ext) or not ply:IsAdmin() then return end + + local max = ext:GetHealthMax() - local oldval = ext:GetData("health-val", 0) + local dead = ext:IsDead() + local broken = ext:IsBroken() + local damaged = ext:IsDamaged() - local val = TARDIS:GetSetting("health-max") - if not ext:GetData("health-warning", false) then - val = val / 10 + if dead then + ext:ChangeHealth(max) + ext:SetShieldsLevel(ext:GetShieldsMax(), true) + ext:SetArtron(TARDIS:GetSetting("artron_energy_max")) + ext:TogglePower() + return end - ext:SetData("health-val", val, true) - ext:CallHook("OnHealthChange", val, oldval) + + if broken then + return ext:ChangeHealth(0) + end + + if damaged and math.abs(ext:GetHealthPercent() - ext.HEALTH_PERCENT_DAMAGED + 1) < 2 then + return ext:ChangeHealth(max * (ext.HEALTH_PERCENT_BROKEN + 2) / 100) + end + + + if damaged then + return ext:ChangeHealth(max * (ext.HEALTH_PERCENT_BROKEN - 1) / 100) + end + + ext:ChangeHealth(max * (ext.HEALTH_PERCENT_DAMAGED - 1) / 100) +end) + +concommand.Add("tardis2_debug_health", function(ply,cmd,args) + local ext = ply:GetTardisData("exterior") + if not IsValid(ext) or not ply:IsAdmin() then return end + if not args[1] or not tonumber(args[1]) then return end + + ext:ChangeHealth(tonumber(args[1])) +end) + +concommand.Add("tardis2_debug_shields", function(ply,cmd,args) + local ext = ply:GetTardisData("exterior") + if not IsValid(ext) or not ply:IsAdmin() then return end + if not args[1] or not tonumber(args[1]) then return end + + ext:SetShieldsLevel(tonumber(args[1]),true) end) concommand.Add("tardis2_debug_power", function(ply,cmd,args) local ext = ply:GetTardisData("exterior") - if not ext or not ply:IsAdmin() then return end + if not IsValid(ext) or not ply:IsAdmin() then return end ext:TogglePower() end) +concommand.Add("tardis2_debug_ply_pos", function(ply,cmd,args) + local int = ply:GetTardisData("interior") + if not IsValid(int) then return end + + print(tostring(int:WorldToLocal(ply:GetPos()))) +end) + if SERVER then util.AddNetworkString("TARDIS-Debug") end diff --git a/lua/tardis/libraries/libraries/sh_debug_portals.lua b/lua/tardis/libraries/libraries/sh_debug_portals.lua index 41e9a594a..81893c1a8 100644 --- a/lua/tardis/libraries/libraries/sh_debug_portals.lua +++ b/lua/tardis/libraries/libraries/sh_debug_portals.lua @@ -18,7 +18,7 @@ if SERVER then elseif update_type == "size" then portal:SetWidth(net.ReadFloat()) portal:SetHeight(net.ReadFloat()) - elseif update_type == "exit_offset" then + elseif update_type == "exit_offset" then portal:SetExitPosOffset(net.ReadVector()) portal:SetExitAngOffset(net.ReadAngle()) elseif update_type == "3d" then @@ -181,7 +181,7 @@ else net.SendToServer() end - local function UpdatePortalExitOffset() + local function UpdatePortalExitOffset() net.Start("TARDIS-Debug-Portals-Update") net.WriteEntity(p) net.WriteString("exit_offset") diff --git a/lua/tardis/libraries/libraries/sh_settings.lua b/lua/tardis/libraries/libraries/sh_settings.lua index 40f94e2cc..1020874e2 100644 --- a/lua/tardis/libraries/libraries/sh_settings.lua +++ b/lua/tardis/libraries/libraries/sh_settings.lua @@ -24,7 +24,12 @@ function TARDIS:AddSetting(data) cvars.AddChangeCallback(convar.name, function(cvname, oldvalue, newvalue) if data.type == "integer" or data.type == "number" then local value = tonumber(newvalue) - local set_value = TARDIS:SetSetting(data.id, value) + + local current_setting = TARDIS:GetSetting(data.id) + if current_setting == value then return end + + local set_value = TARDIS:SetSetting(data.id, value, true) + if set_value ~= value then if data.type == "integer" then GetConVar(convar.name):SetInt(set_value) @@ -52,7 +57,7 @@ end -------------------------------------------------------------------------------- -- Accessing -function TARDIS:SetSetting(id, value) +function TARDIS:SetSetting(id, value, ignore_convar) local data = self.SettingsData[id] if not data then error("Requested setting " .. id .. " does not exist") end @@ -62,7 +67,7 @@ function TARDIS:SetSetting(id, value) if value ~= nil and (data.type == "number" or data.type == "integer") then if data.min and data.max then - value = math.max(data.min, math.min(data.max, value)) + value = math.Clamp(value, data.min, data.max) end if data.round_func then value = data.round_func(value) @@ -77,7 +82,7 @@ function TARDIS:SetSetting(id, value) if data.class == "global" then self.GlobalSettings[id]=value - if data.convar then + if data.convar and not ignore_convar then local convar = GetConVar(data.convar.name) if data.type == "integer" then convar:SetInt(value) @@ -115,8 +120,11 @@ function TARDIS:SetSetting(id, value) return value end -function TARDIS:GetSetting(id, src) +function TARDIS:GetSetting(id, src, no_default) local ply + if IsValid(src) and not src:IsPlayer() and not src.TardisExterior then + src = src.exterior + end if IsEntity(src) then ply = (src:IsPlayer() and src) or src:GetCreator() end @@ -129,6 +137,9 @@ function TARDIS:GetSetting(id, src) if table_value ~= nil then return table_value end + if no_default then + return nil + end return data.value end @@ -149,14 +160,17 @@ function TARDIS:GetSetting(id, src) return select_return_val(self.NetworkedSettings[id]) end - if IsValid(ply) then - if self.ClientSettings[ply:UserID()] then - return select_return_val(self.ClientSettings[ply:UserID()][id]) - end + local user_id = (IsValid(ply) and ply:UserID()) or src.CreatorID + + if not user_id then + print("[TARDIS] WARNING: Networked setting " .. id .. " was requested for invalid source " .. tostring(src)) + end + + if not user_id or not self.ClientSettings[user_id] then return select_return_val(nil) end - error("Networked setting " .. id .. " was requested for invalid player " .. tostring(ply)) + return select_return_val(self.ClientSettings[user_id][id]) end error("Requested setting " .. id .. " either doesn't exist or has no defined class") @@ -170,6 +184,34 @@ local LOCAL_SETTINGS_FILE = "tardis_settings_cl.txt" local NETWORKED_SETTINGS_FILE = "tardis_settings_cl_nw.txt" local GLOBAL_SETTINGS_FILE = "tardis_settings_sv.txt" +--[[ TODO: Add back in before release +TARDIS:AddMigration("settings-move", "2023.8.0", function(self) + if SERVER then + if file.Exists("tardis_settings_sv.txt", "DATA") then + if file.Exists(GLOBAL_SETTINGS_FILE, "DATA") then + file.Delete(GLOBAL_SETTINGS_FILE) + end + file.Rename("tardis_settings_sv.txt", GLOBAL_SETTINGS_FILE) + end + else + if file.Exists("tardis_settings_cl.txt", "DATA") then + if file.Exists(LOCAL_SETTINGS_FILE, "DATA") then + file.Delete(LOCAL_SETTINGS_FILE) + end + file.Rename("tardis_settings_cl.txt", LOCAL_SETTINGS_FILE) + end + if file.Exists("tardis_settings_cl_nw.txt", "DATA") then + if file.Exists(NETWORKED_SETTINGS_FILE, "DATA") then + file.Delete(NETWORKED_SETTINGS_FILE) + end + file.Rename("tardis_settings_cl_nw.txt", NETWORKED_SETTINGS_FILE) + end + end + + self:LoadSettings() +end) +]] + function TARDIS:SaveSettings() local function SaveSettingsToFile(settings_table, settings_file) diff --git a/lua/tardis/libraries/sh_table_tools.lua b/lua/tardis/libraries/sh_table_tools.lua index 095173a4a..e928a924a 100644 --- a/lua/tardis/libraries/sh_table_tools.lua +++ b/lua/tardis/libraries/sh_table_tools.lua @@ -1,31 +1,31 @@ -- a modified version of table.Copy() to deal with Vectors / Angles / ... function TARDIS:CopyTable(t) - if not t or not istable(t) then return nil end + if not t or not istable(t) then return nil end - local copy = {} - setmetatable(copy, debug.getmetatable(t)) + local copy = {} + setmetatable(copy, debug.getmetatable(t)) - local lookup_table + local lookup_table - for i,v in pairs(t) do - if istable(v) then -- also works for colors - lookup_table = lookup_table or {} - lookup_table[t] = copy - if (lookup_table[v]) then - copy[i] = lookup_table[v] - -- we already copied this table. reuse the copy. - else - copy[i] = TARDIS:CopyTable(v, lookup_table) - -- not yet copied. copy it. - end - elseif isvector(v) then - copy[i] = Vector(0,0,0) + v - elseif isangle(v) then - copy[i] = Angle(0,0,0) + v - else - copy[i] = v - end - end + for i,v in pairs(t) do + if istable(v) then -- also works for colors + lookup_table = lookup_table or {} + lookup_table[t] = copy + if (lookup_table[v]) then + copy[i] = lookup_table[v] + -- we already copied this table. reuse the copy. + else + copy[i] = TARDIS:CopyTable(v, lookup_table) + -- not yet copied. copy it. + end + elseif isvector(v) then + copy[i] = Vector(0,0,0) + v + elseif isangle(v) then + copy[i] = Angle(0,0,0) + v + else + copy[i] = v + end + end - return copy + return copy end diff --git a/lua/tardis/interiors/modules/sh_customsettings.lua b/lua/tardis/metadata/sh_customsettings.lua similarity index 88% rename from lua/tardis/interiors/modules/sh_customsettings.lua rename to lua/tardis/metadata/sh_customsettings.lua index 38ddc7590..627a621a6 100644 --- a/lua/tardis/interiors/modules/sh_customsettings.lua +++ b/lua/tardis/metadata/sh_customsettings.lua @@ -1,5 +1,5 @@ -function TARDIS:GetCustomSettings(ply) - return TARDIS:GetSetting("interior_custom_settings", ply) or {} -- nil is never allowed +function TARDIS:GetCustomSettings(ent) + return TARDIS:GetSetting("interior_custom_settings", ent) or {} -- nil is never allowed end function TARDIS:SetupCustomSettings(int_id) @@ -28,10 +28,10 @@ local default_custom_setting_values = { ["exterior_default"] = "ttcapsule_type40", } -function TARDIS:GetCustomSetting(int_id, setting_id, ply, default_val) +function TARDIS:GetCustomSetting(int_id, setting_id, ent, default_val) local int_id = self:GetMainVersionId(int_id) - local custom_settings = self:GetCustomSettings(ply) + local custom_settings = self:GetCustomSettings(ent) local settings = custom_settings[int_id] if settings and settings[setting_id] ~= nil then return settings[setting_id] @@ -85,7 +85,7 @@ if CLIENT then end function TARDIS:ToggleCustomSetting(int_id, setting_id) - local value = TARDIS:GetCustomSetting(int_id, setting_id, ply) + local value = TARDIS:GetCustomSetting(int_id, setting_id, ent) TARDIS:SetCustomSetting(int_id, setting_id, (not value)) end end @@ -93,13 +93,13 @@ end ---------------------------------------------------------------------------------------------------- -- Favorites -function TARDIS:IsFavoriteInt(id, ply) - return self:GetCustomSetting(id, "is_favorite", ply, false) +function TARDIS:IsFavoriteInt(id, ent) + return self:GetCustomSetting(id, "is_favorite", ent, false) end if CLIENT then function TARDIS:SetFavoriteInt(id, favorite) - self:SetCustomSetting(id, "is_favorite", favorite, ply) + self:SetCustomSetting(id, "is_favorite", favorite, ent) end function TARDIS:ToggleFavoriteInt(id) diff --git a/lua/tardis/interiors/modules/sh_exteriors.lua b/lua/tardis/metadata/sh_exteriors.lua similarity index 100% rename from lua/tardis/interiors/modules/sh_exteriors.lua rename to lua/tardis/metadata/sh_exteriors.lua diff --git a/lua/tardis/interiors/modules/sh_spawn_tardis.lua b/lua/tardis/metadata/sh_spawn_tardis.lua similarity index 100% rename from lua/tardis/interiors/modules/sh_spawn_tardis.lua rename to lua/tardis/metadata/sh_spawn_tardis.lua diff --git a/lua/tardis/interiors/modules/sh_spawnmenu.lua b/lua/tardis/metadata/sh_spawnmenu.lua similarity index 100% rename from lua/tardis/interiors/modules/sh_spawnmenu.lua rename to lua/tardis/metadata/sh_spawnmenu.lua diff --git a/lua/tardis/interiors/modules/sh_templates.lua b/lua/tardis/metadata/sh_templates.lua similarity index 91% rename from lua/tardis/interiors/modules/sh_templates.lua rename to lua/tardis/metadata/sh_templates.lua index 7c6583fdf..3a475555b 100644 --- a/lua/tardis/interiors/modules/sh_templates.lua +++ b/lua/tardis/metadata/sh_templates.lua @@ -140,13 +140,29 @@ function TARDIS:MergeTemplates(metadata, ent) end elseif SERVER then ent.templates = {} + local added_already = {} - for template_id, template in pairs(metadata.Templates) do - if template and istable(template) and (not template.condition or template.condition(id, ent:GetCreator(), ent)) then + local function add_to_list(template_id, template) + if not template then return end + if not istable(template) then return end + if not template.condition or template.condition(id, ent:GetCreator(), ent) then table.insert(ent.templates, template_id) end end + if metadata.TemplatesMergeOrder then + for i, template_id in ipairs(metadata.TemplatesMergeOrder) do + add_to_list(template_id, metadata.Templates[template_id]) + added_already[template_id] = true + end + end + + for template_id, template in pairs(metadata.Templates) do + if not added_already[template_id] then + add_to_list(template_id, template) + end + end + templates_todo = ent.templates elseif CLIENT and ent.templates then if ent.TardisExterior and ent.interior and ent.interior.templates then diff --git a/lua/tardis/interiors/modules/sh_versions.lua b/lua/tardis/metadata/sh_versions.lua similarity index 84% rename from lua/tardis/interiors/modules/sh_versions.lua rename to lua/tardis/metadata/sh_versions.lua index e49664ca6..061900f59 100644 --- a/lua/tardis/interiors/modules/sh_versions.lua +++ b/lua/tardis/metadata/sh_versions.lua @@ -32,18 +32,18 @@ function TARDIS:SetupVersions(int_id) end end -function TARDIS:ShouldUseClassicDoors(ply) - return TARDIS:GetSetting("use_classic_door_interiors", ply) +function TARDIS:ShouldUseClassicDoors(ent) + return TARDIS:GetSetting("use_classic_door_interiors", ent) end -function TARDIS:SelectDoorVersionID(x, ply) +function TARDIS:SelectDoorVersionID(x, ent) local version = (istable(x) and x) or self.MetadataVersions[x].main if not version then return end if not version.classic_doors_id then return version.id end - local use_classic = TARDIS:ShouldUseClassicDoors(ply) - local custom = TARDIS:GetCustomSetting(version.classic_doors_id, "preferred_door_type", ply, nil) + local use_classic = TARDIS:ShouldUseClassicDoors(ent) + local custom = TARDIS:GetCustomSetting(version.classic_doors_id, "preferred_door_type", ent, nil) if custom ~= nil and custom ~= "default" then if custom == "classic" then @@ -76,11 +76,11 @@ function TARDIS:DefaultPreferredVersion(int_id) return "main" end -function TARDIS:SelectSpawnID(id, ply) +function TARDIS:SelectSpawnID(id, ent) local versions = self.MetadataVersions[id] if not versions then return id end - local preferred_version = TARDIS:GetCustomSetting(id, "preferred_version", ply, "main") + local preferred_version = TARDIS:GetCustomSetting(id, "preferred_version", ent, "main") local version = versions.main @@ -96,7 +96,7 @@ function TARDIS:SelectSpawnID(id, ply) version = id end - return TARDIS:SelectDoorVersionID(version, ply) + return TARDIS:SelectDoorVersionID(version, ent) end function TARDIS:GetMainVersionId(int_id) @@ -131,29 +131,30 @@ end ---------------------------------------------------------------------------------------------------- -- Redecoration -function TARDIS:ShouldRedecorateInto(int_id, ply) +function TARDIS:ShouldRedecorateInto(int_id, ent) local int_id = TARDIS:GetMainVersionId(int_id) - return not TARDIS:GetCustomSetting(int_id, "redecoration_exclude", ply) + return not TARDIS:GetCustomSetting(int_id, "redecoration_exclude", ent) end -function TARDIS:SelectNewRandomInterior(current, ply) +function TARDIS:SelectNewRandomInterior(current, ent) local current = TARDIS:GetMainVersionId(current) local chosen_int local attempts = 1000 while not chosen_int or TARDIS:GetMainVersionId(chosen_int) == current - or TARDIS.Metadata[chosen_int].IsVersionOf - or TARDIS.Metadata[chosen_int].Base == true - or not TARDIS:ShouldRedecorateInto(chosen_int, ply) + or TARDIS.MetadataRaw[chosen_int].IsVersionOf + or TARDIS.MetadataRaw[chosen_int].Base == true + or TARDIS.MetadataRaw[chosen_int].Hidden == true + or not TARDIS:ShouldRedecorateInto(chosen_int, ent) do - chosen_int = table.Random(TARDIS.Metadata).ID + chosen_int = table.Random(TARDIS.MetadataRaw).ID attempts = attempts - 1 if attempts < 1 then return "default" end end - return TARDIS:SelectSpawnID(TARDIS:GetMainVersionId(chosen_int), ply) + return TARDIS:SelectSpawnID(TARDIS:GetMainVersionId(chosen_int), ent) end TARDIS:LoadInteriors() \ No newline at end of file diff --git a/lua/tardis/parts/default/default_int_atomaccel.lua b/lua/tardis/parts/default/default_int_atomaccel.lua deleted file mode 100644 index c70602f0b..000000000 --- a/lua/tardis/parts/default/default_int_atomaccel.lua +++ /dev/null @@ -1,34 +0,0 @@ --- Default Interior - Atom Accelerator - -local PART = {} -PART.ID = "default_atomaccel" -PART.Name = "Default Atom Accelerator" -PART.Text = "Parts.DefaultAtomAccelerator.Text" -PART.Model = "models/drmatt/tardis/atomaccel.mdl" -PART.AutoSetup = true -PART.Collision = true - -if CLIENT then - function PART:Think() - if not self.exterior:GetData("flight") then return end - local spindir = self.exterior:GetSpinDir() - if spindir == 0 then return end - local pos = self:GetPoseParameter("switch") - local target - if spindir == 1 then - target = 0 - if pos == 0 then - pos = 1 - end - else - target = 1 - if pos == 1 then - pos = 0 - end - end - self:SetPoseParameter("switch", math.Approach( pos, target, FrameTime() * 1 )) - self:InvalidateBoneCache() - end -end - -TARDIS:AddPart(PART) diff --git a/lua/tardis/parts/default/default_int_biglever.lua b/lua/tardis/parts/default/default_int_biglever.lua deleted file mode 100644 index 51fb772b0..000000000 --- a/lua/tardis/parts/default/default_int_biglever.lua +++ /dev/null @@ -1,11 +0,0 @@ --- Default Interior - Fast Return Lever - -local PART = {} -PART.ID = "default_biglever" -PART.Name = "Default Fast Return Lever" -PART.Model = "models/drmatt/tardis/biglever.mdl" -PART.AutoSetup = true -PART.Collision = true -PART.Animate = true - -TARDIS:AddPart(PART) diff --git a/lua/tardis/parts/default/default_int_blacksticks.lua b/lua/tardis/parts/default/default_int_blacksticks.lua deleted file mode 100644 index 70aadf81b..000000000 --- a/lua/tardis/parts/default/default_int_blacksticks.lua +++ /dev/null @@ -1,11 +0,0 @@ --- Default Interior - Cloaking Blacksticks - -local PART = {} -PART.ID = "default_blacksticks" -PART.Name = "Default Cloaking Blacksticks" -PART.Model = "models/drmatt/tardis/blacksticks.mdl" -PART.AutoSetup = true -PART.Collision = true -PART.Animate = true - -TARDIS:AddPart(PART) diff --git a/lua/tardis/parts/default/default_int_dematcircuit.lua b/lua/tardis/parts/default/default_int_dematcircuit.lua deleted file mode 100644 index 5944f5335..000000000 --- a/lua/tardis/parts/default/default_int_dematcircuit.lua +++ /dev/null @@ -1,14 +0,0 @@ --- Default Interior - Dematerialisation Circuit - -local PART = {} -PART.ID = "default_dematcircuit" -PART.Name = "Default Dematerialisation Circuit" -PART.Text = "Parts.DefaultDematCircuit.Text" -PART.Model = "models/drmatt/tardis/smallbutton.mdl" -PART.AutoSetup = true -PART.Collision = true -PART.Animate = true - -PART.Sound = "drmatt/tardis/seq_ok.wav" - -TARDIS:AddPart(PART) diff --git a/lua/tardis/parts/default/default_int_directionalpointer.lua b/lua/tardis/parts/default/default_int_directionalpointer.lua deleted file mode 100644 index b7012bf32..000000000 --- a/lua/tardis/parts/default/default_int_directionalpointer.lua +++ /dev/null @@ -1,12 +0,0 @@ --- Default Interior - Directional Pointer - -local PART = {} -PART.ID = "default_directionalpointer" -PART.Name = "Default Directional Pointer" -PART.Text = "Parts.DefaultDirectionalPointer.Text" -PART.Model = "models/drmatt/tardis/directionalpointer.mdl" -PART.AutoSetup = true -PART.Collision = true -PART.Animate = true - -TARDIS:AddPart(PART) diff --git a/lua/tardis/parts/default/default_int_doorbutton.lua b/lua/tardis/parts/default/default_int_doorbutton.lua deleted file mode 100644 index b32e1c534..000000000 --- a/lua/tardis/parts/default/default_int_doorbutton.lua +++ /dev/null @@ -1,14 +0,0 @@ --- Default Interior - Door button - -local PART = {} -PART.ID = "default_doorbutton" -PART.Name = "Default Door Button" -PART.Model = "models/drmatt/tardis/longflighttoggle.mdl" -PART.AutoSetup = true -PART.Collision = true -PART.Animate = true -PART.Sound = "drmatt/tardis/default/control_handbrake.wav" - -PART.PowerOffUse = false - -TARDIS:AddPart(PART) diff --git a/lua/tardis/parts/default/default_int_doorframe.lua b/lua/tardis/parts/default/default_int_doorframe.lua deleted file mode 100644 index 4d757e517..000000000 --- a/lua/tardis/parts/default/default_int_doorframe.lua +++ /dev/null @@ -1,32 +0,0 @@ --- Default Interior - Door frame - -local PART = {} -PART.ID = "default_doorframe" -PART.Name = "Default Door Frame" -PART.Model = "models/drmatt/tardis/door.mdl" -PART.BypassIsomorphic = true -PART.AutoSetup = true -PART.Collision = false -PART.CollisionUse = false -PART.Animate = true - -TARDIS:AddPart(PART) - -local PART = {} -PART.ID = "default_doorframe_bottom" -PART.Name = "Default Door Frame Bottom" -PART.Model = "models/hunter/blocks/cube025x1x025.mdl" -PART.BypassIsomorphic = true -PART.AutoSetup = true -PART.Collision = false -PART.CollisionUse = false -PART.Animate = true - -function PART:Initialize() - self:SetMaterial("models/drmatt/tardis/tardisfloor") -end - -TARDIS:AddPart(PART) - -PART.ID = "default_doorframe_bottom2" -- make a copy -TARDIS:AddPart(PART) diff --git a/lua/tardis/parts/default/default_int_enginerelease.lua b/lua/tardis/parts/default/default_int_enginerelease.lua deleted file mode 100644 index cdcd8282a..000000000 --- a/lua/tardis/parts/default/default_int_enginerelease.lua +++ /dev/null @@ -1,12 +0,0 @@ --- Default Interior - Engine Release - -local PART = {} -PART.ID = "default_enginerelease" -PART.Name = "Default Engine Release" -PART.Model = "models/drmatt/tardis/longflighttoggle.mdl" -PART.AutoSetup = true -PART.Collision = true -PART.Animate = true -PART.Sound = "drmatt/tardis/default/control_handbrake.wav" - -TARDIS:AddPart(PART) diff --git a/lua/tardis/parts/default/default_int_flightlever.lua b/lua/tardis/parts/default/default_int_flightlever.lua deleted file mode 100644 index dedd6e882..000000000 --- a/lua/tardis/parts/default/default_int_flightlever.lua +++ /dev/null @@ -1,12 +0,0 @@ --- Default Interior - Flightmode Lever - -local PART = {} -PART.ID = "default_flightlever" -PART.Name = "Default Flight Lever" -PART.Model = "models/drmatt/tardis/handbrake.mdl" -PART.AutoSetup = true -PART.Collision = true -PART.Animate = true -PART.Sound = "drmatt/tardis/default/control_handbrake.wav" - -TARDIS:AddPart(PART) diff --git a/lua/tardis/parts/default/default_int_float.lua b/lua/tardis/parts/default/default_int_float.lua deleted file mode 100644 index c3bd238f8..000000000 --- a/lua/tardis/parts/default/default_int_float.lua +++ /dev/null @@ -1,12 +0,0 @@ --- Default Interior - Anti-Gravs Pull Handle - -local PART = {} -PART.ID = "default_float" -PART.Name = "Default Float" -PART.Model = "models/drmatt/tardis/handbrake.mdl" -PART.AutoSetup = true -PART.Collision = true -PART.Animate = true -PART.Sound = "drmatt/tardis/default/control_handbrake.wav" - -TARDIS:AddPart(PART) \ No newline at end of file diff --git a/lua/tardis/parts/default/default_int_gramophone.lua b/lua/tardis/parts/default/default_int_gramophone.lua deleted file mode 100644 index 5c16a6be0..000000000 --- a/lua/tardis/parts/default/default_int_gramophone.lua +++ /dev/null @@ -1,11 +0,0 @@ --- Default Interior - Gramophone - -local PART = {} -PART.ID = "default_gramophone" -PART.Name = "Default Gramophone" -PART.Text = "Parts.DefaultGramophone.Text" -PART.Model = "models/drmatt/tardis/gramophone.mdl" -PART.AutoSetup = true -PART.Collision = true - -TARDIS:AddPart(PART) diff --git a/lua/tardis/parts/default/default_int_hads.lua b/lua/tardis/parts/default/default_int_hads.lua deleted file mode 100644 index 1b2225c91..000000000 --- a/lua/tardis/parts/default/default_int_hads.lua +++ /dev/null @@ -1,12 +0,0 @@ --- Default Interior - HADS Switch - -local PART = {} -PART.ID = "default_hads" -PART.Name = "Default HADS Switch" -PART.Model = "models/drmatt/tardis/handbrake.mdl" -PART.AutoSetup = true -PART.Collision = true -PART.Animate = true -PART.Sound = "drmatt/tardis/default/control_handbrake.wav" - -TARDIS:AddPart(PART) diff --git a/lua/tardis/parts/default/default_int_handbrake.lua b/lua/tardis/parts/default/default_int_handbrake.lua deleted file mode 100644 index 9ec93bcd9..000000000 --- a/lua/tardis/parts/default/default_int_handbrake.lua +++ /dev/null @@ -1,12 +0,0 @@ --- Default Interior - Handbrake - -local PART = {} -PART.ID = "default_handbrake" -PART.Name = "Default Handbrake" -PART.Model = "models/drmatt/tardis/handbrake.mdl" -PART.AutoSetup = true -PART.Collision = true -PART.Animate = true -PART.Sound = "drmatt/tardis/default/control_handbrake.wav" - -TARDIS:AddPart(PART) diff --git a/lua/tardis/parts/default/default_int_helmic.lua b/lua/tardis/parts/default/default_int_helmic.lua deleted file mode 100644 index 9668e2e57..000000000 --- a/lua/tardis/parts/default/default_int_helmic.lua +++ /dev/null @@ -1,22 +0,0 @@ --- Default Interior - Helmic Regulator - -local PART = {} -PART.ID = "default_helmic" -PART.Name = "Default Helmic Regulator" -PART.Text = "Parts.DefaultHelmic.Text" -PART.Model = "models/drmatt/tardis/helmicregulator.mdl" -PART.AutoSetup = true -PART.Collision = true - -if CLIENT then - function PART:Think() - local pos = self:GetPoseParameter("switch") - if pos == 1 then - pos = 0 - end - self:SetPoseParameter("switch", math.Approach( pos, 1, FrameTime() * 1 )) - self:InvalidateBoneCache() - end -end - -TARDIS:AddPart(PART) diff --git a/lua/tardis/parts/default/default_int_isomorphic.lua b/lua/tardis/parts/default/default_int_isomorphic.lua deleted file mode 100644 index 8064f898a..000000000 --- a/lua/tardis/parts/default/default_int_isomorphic.lua +++ /dev/null @@ -1,12 +0,0 @@ --- Default Interior - Isomorphic Security - -local PART = {} -PART.ID = "default_isomorphic" -PART.Name = "Default Isomorphic Security" -PART.Model = "models/drmatt/tardis/handbrake.mdl" -PART.AutoSetup = true -PART.Collision = true -PART.Animate = true -PART.Sound = "drmatt/tardis/default/control_handbrake.wav" - -TARDIS:AddPart(PART) diff --git a/lua/tardis/parts/default/default_int_keyboard.lua b/lua/tardis/parts/default/default_int_keyboard.lua deleted file mode 100644 index 75c0418b7..000000000 --- a/lua/tardis/parts/default/default_int_keyboard.lua +++ /dev/null @@ -1,11 +0,0 @@ --- Default Interior - Keyboard - -local PART = {} -PART.ID = "default_keyboard" -PART.Name = "Default Keyboard" -PART.Model = "models/drmatt/tardis/keyboard.mdl" -PART.AutoSetup = true -PART.Collision = true -PART.Animate = true - -TARDIS:AddPart(PART) diff --git a/lua/tardis/parts/default/default_int_longflighttoggle.lua b/lua/tardis/parts/default/default_int_longflighttoggle.lua deleted file mode 100644 index 2d480fb6f..000000000 --- a/lua/tardis/parts/default/default_int_longflighttoggle.lua +++ /dev/null @@ -1,11 +0,0 @@ --- Default Interior - Long Flight Toggle - -local PART = {} -PART.ID = "default_longflighttoggle" -PART.Name = "Default Long Flight Toggle" -PART.Model = "models/drmatt/tardis/longflighttoggle.mdl" -PART.AutoSetup = true -PART.Collision = true -PART.Animate = true - -TARDIS:AddPart(PART) diff --git a/lua/tardis/parts/default/default_int_physlock.lua b/lua/tardis/parts/default/default_int_physlock.lua deleted file mode 100644 index 483a64c22..000000000 --- a/lua/tardis/parts/default/default_int_physlock.lua +++ /dev/null @@ -1,12 +0,0 @@ --- Default Interior - Physics Lock - -local PART = {} -PART.ID = "default_physlock" -PART.Name = "Default Physics Lock" -PART.Model = "models/drmatt/tardis/handbrake.mdl" -PART.AutoSetup = true -PART.Collision = true -PART.Animate = true -PART.Sound = "drmatt/tardis/default/control_handbrake.wav" - -TARDIS:AddPart(PART) diff --git a/lua/tardis/parts/default/default_int_powerlever.lua b/lua/tardis/parts/default/default_int_powerlever.lua deleted file mode 100644 index 4130aa2a9..000000000 --- a/lua/tardis/parts/default/default_int_powerlever.lua +++ /dev/null @@ -1,11 +0,0 @@ --- Default Interior - Power Lever - -local PART = {} -PART.ID = "default_powerlever" -PART.Name = "Default Power Lever" -PART.Model = "models/drmatt/tardis/flightlever.mdl" -PART.AutoSetup = true -PART.Collision = true -PART.Animate = true - -TARDIS:AddPart(PART) diff --git a/lua/tardis/parts/default/default_int_rails.lua b/lua/tardis/parts/default/default_int_rails.lua deleted file mode 100644 index f66c47abd..000000000 --- a/lua/tardis/parts/default/default_int_rails.lua +++ /dev/null @@ -1,10 +0,0 @@ --- Adds default rails - -local PART={} -PART.ID = "default_rails" -PART.Name = "Rails" -PART.Model = "models/drmatt/tardis/rails.mdl" -PART.AutoSetup = true -PART.Collision = true - -TARDIS:AddPart(PART) \ No newline at end of file diff --git a/lua/tardis/parts/default/default_int_redecoratebutton.lua b/lua/tardis/parts/default/default_int_redecoratebutton.lua deleted file mode 100644 index a5f1c8297..000000000 --- a/lua/tardis/parts/default/default_int_redecoratebutton.lua +++ /dev/null @@ -1,14 +0,0 @@ --- Default Interior - Redecorate button - -local PART = {} -PART.ID = "default_redecoratebutton" -PART.Name = "Default Redecotate Button" -PART.Model = "models/drmatt/tardis/smallbutton.mdl" -PART.AutoSetup = true -PART.Collision = true -PART.Animate = true - -PART.SoundOn = "drmatt/tardis/seq_ok.wav" -PART.SoundOff = "drmatt/tardis/seq_bad.wav" - -TARDIS:AddPart(PART) diff --git a/lua/tardis/parts/default/default_int_repairlever.lua b/lua/tardis/parts/default/default_int_repairlever.lua deleted file mode 100644 index 7fdf1e843..000000000 --- a/lua/tardis/parts/default/default_int_repairlever.lua +++ /dev/null @@ -1,11 +0,0 @@ --- Default Interior - Repair Lever - -local PART = {} -PART.ID = "default_repairlever" -PART.Name = "Default Repair Lever" -PART.Model = "models/drmatt/tardis/repairlever.mdl" -PART.AutoSetup = true -PART.Collision = true -PART.Animate = true - -TARDIS:AddPart(PART) diff --git a/lua/tardis/parts/default/default_int_scannerbutton.lua b/lua/tardis/parts/default/default_int_scannerbutton.lua deleted file mode 100644 index ac34a1fe5..000000000 --- a/lua/tardis/parts/default/default_int_scannerbutton.lua +++ /dev/null @@ -1,11 +0,0 @@ --- Default Interior - Scanner button - -local PART = {} -PART.ID = "default_scannerbutton" -PART.Name = "Default Scanner Button" -PART.Model = "models/drmatt/tardis/smallbutton.mdl" -PART.AutoSetup = true -PART.Collision = true -PART.Animate = true - -TARDIS:AddPart(PART) diff --git a/lua/tardis/parts/default/default_int_screen.lua b/lua/tardis/parts/default/default_int_screen.lua deleted file mode 100644 index 4874b3545..000000000 --- a/lua/tardis/parts/default/default_int_screen.lua +++ /dev/null @@ -1,11 +0,0 @@ --- Default Interior - Screen - -local PART = {} -PART.ID = "default_screen" -PART.Name = "Default Screen" -PART.Text = "Parts.DefaultScreen.Text" -PART.Model = "models/drmatt/tardis/screen.mdl" -PART.AutoSetup = true -PART.Collision = true - -TARDIS:AddPart(PART) diff --git a/lua/tardis/parts/default/default_int_screenbutton.lua b/lua/tardis/parts/default/default_int_screenbutton.lua deleted file mode 100644 index e0a44750a..000000000 --- a/lua/tardis/parts/default/default_int_screenbutton.lua +++ /dev/null @@ -1,11 +0,0 @@ --- Default Interior - Screen Button - -local PART = {} -PART.ID = "default_screenbutton" -PART.Name = "Default Screen Button" -PART.Model = "models/drmatt/tardis/smallbutton.mdl" -PART.AutoSetup = true -PART.Collision = true -PART.Animate = true - -TARDIS:AddPart(PART) diff --git a/lua/tardis/parts/default/default_int_sonic_dispenser_button.lua b/lua/tardis/parts/default/default_int_sonic_dispenser_button.lua deleted file mode 100644 index 1e10cec47..000000000 --- a/lua/tardis/parts/default/default_int_sonic_dispenser_button.lua +++ /dev/null @@ -1,11 +0,0 @@ --- Default Interior - Sonic charger - -local PART = {} -PART.ID = "default_sonicdispenser" -PART.Name = "Default Sonic Screwdriver Dispenser" -PART.AutoSetup = true -PART.Collision = true -PART.Animate = true -PART.Model = "models/drmatt/tardis/smallbutton.mdl" - -TARDIS:AddPart(PART) \ No newline at end of file diff --git a/lua/tardis/parts/default/default_int_sonic_inserted.lua b/lua/tardis/parts/default/default_int_sonic_inserted.lua deleted file mode 100644 index 11d10205c..000000000 --- a/lua/tardis/parts/default/default_int_sonic_inserted.lua +++ /dev/null @@ -1,22 +0,0 @@ --- Default Interior - Sonic charger - -local PART = {} -PART.ID = "default_sonic_inserted" -PART.Name = "Default Sonic Screwdriver in the charger" -PART.AutoSetup = true -PART.Collision = true -PART.Animate = true -PART.Model = "models/weapons/c_sonicsd.mdl" - -if CLIENT then - function PART:Think() - local weapon = LocalPlayer():GetActiveWeapon() - if IsValid(weapon) and weapon:GetClass() == "swep_sonicsd" then - self:SetColor(Color(0,0,0,0)) - else - self:SetColor(Color(255,255,255,255)) - end - end -end - -TARDIS:AddPart(PART) \ No newline at end of file diff --git a/lua/tardis/parts/default/default_int_throttle.lua b/lua/tardis/parts/default/default_int_throttle.lua deleted file mode 100644 index 45a12fdec..000000000 --- a/lua/tardis/parts/default/default_int_throttle.lua +++ /dev/null @@ -1,28 +0,0 @@ --- Default Interior - Throttle - -local PART = {} -PART.ID = "default_throttle" -PART.Name = "Default Throttle" -PART.Model = "models/drmatt/tardis/throttle.mdl" -PART.AutoSetup = true -PART.Collision = true -PART.Animate = true -PART.Sound = "drmatt/tardis/default/control_throttle.wav" - -if SERVER then - function PART:Use(ply) - if self.Control ~= "teleport_double" then - TARDIS:Control(self.Control, ply, self) - end - - if self.exterior:GetData("teleport") == true or self.exterior:GetData("vortex") == true - or not self.interior:GetSequencesEnabled() - then - TARDIS:Control("teleport_double", ply, self) - else - TARDIS:ErrorMessage(ply, "Common.ControlSequencesEnabledWarning") - end - end -end - -TARDIS:AddPart(PART) diff --git a/lua/tardis/parts/default/default_int_typewriter.lua b/lua/tardis/parts/default/default_int_typewriter.lua deleted file mode 100644 index cba9af0c5..000000000 --- a/lua/tardis/parts/default/default_int_typewriter.lua +++ /dev/null @@ -1,11 +0,0 @@ --- Default Interior - Typewriter - -local PART = {} -PART.ID = "default_typewriter" -PART.Name = "Default Typewriter" -PART.Model = "models/drmatt/tardis/typewriter.mdl" -PART.AutoSetup = true -PART.Collision = true -PART.Animate = true - -TARDIS:AddPart(PART) diff --git a/lua/tardis/parts/default/default_int_wibblylever.lua b/lua/tardis/parts/default/default_int_wibblylever.lua deleted file mode 100644 index 90d60b99b..000000000 --- a/lua/tardis/parts/default/default_int_wibblylever.lua +++ /dev/null @@ -1,12 +0,0 @@ --- Default Interior - Wibbly Lever - -local PART = {} -PART.ID = "default_wibblylever" -PART.Name = "Default Wibbly lever" -PART.Text = "Parts.DefaultWibblyLever.Text" -PART.Model = "models/drmatt/tardis/wibblylever.mdl" -PART.AutoSetup = true -PART.Collision = true -PART.Animate = true - -TARDIS:AddPart(PART) diff --git a/lua/tardis/parts/default_interior_parts.lua b/lua/tardis/parts/default_interior_parts.lua deleted file mode 100644 index cf7c0bdf9..000000000 --- a/lua/tardis/parts/default_interior_parts.lua +++ /dev/null @@ -1 +0,0 @@ -TARDIS:LoadFolder("parts/default",false,true) \ No newline at end of file diff --git a/lua/tardis/parts/door.lua b/lua/tardis/parts/door.lua index 1cb0cfa6d..8e23d5160 100644 --- a/lua/tardis/parts/door.lua +++ b/lua/tardis/parts/door.lua @@ -12,16 +12,12 @@ PART.BypassIsomorphic = true if SERVER then function PART:Initialize() - self:SetBodygroup(1,1) -- Sticker - self:SetBodygroup(2,1) -- Lit sign - if self.ExteriorPart then self.ClientDrawOverride = true self:SetSolid(SOLID_VPHYSICS) --self:SetCollisionGroup(COLLISION_GROUP_WORLD) elseif self.InteriorPart then self.DrawThroughPortal = true - self:SetBodygroup(3,1) -- 3D sign table.insert(self.interior.stuckfilter, self) end @@ -47,10 +43,12 @@ if SERVER then self:SetAngles(self.parent:LocalToWorldAngles(ang)) self:SetParent(self.parent) end + + self:SetSkin(self.exterior:GetSkin()) end function PART:Use(a) - if self.exterior:GetData("locked") then + if self:GetData("locked") then if IsValid(a) and a:IsPlayer() then if self.exterior:CallHook("LockedUse",a)==nil then TARDIS:Message(a, "Parts.Door.Locked") @@ -58,7 +56,15 @@ if SERVER then self:EmitSound(self.exterior.metadata.Exterior.Sounds.Door.locked) end else - if a:KeyDown(IN_WALK) or not IsValid(self.interior) or self:GetData("legacy_door_type") then + if self:GetData("legacy_door_type") and a:KeyDown(IN_WALK) then + if self.ExteriorPart then + self.exterior:PlayerEnter(a) + self.exterior:PlayerThirdPerson(a, true) + else + self.exterior:PlayerExit(a) + a:ScreenFade(SCREENFADE.IN, color_black, 1, 0) + end + elseif a:KeyDown(IN_WALK) or not IsValid(self.interior) or self:GetData("legacy_door_type") then if self.ExteriorPart then self.exterior:PlayerEnter(a) a:ScreenFade(SCREENFADE.IN, color_black, 1, 0) @@ -87,10 +93,8 @@ if SERVER then end end end - if ent.TardisPart then - if ent.ID == "door" and ent.exterior:GetSkin()~=i then - ent.exterior:SetSkin(i) - end + if ent.TardisPart and ent.ID == "door" and IsValid(ent.exterior) and ent.exterior:GetSkin()~=i then + ent.exterior:SetSkin(i) end end) else @@ -101,7 +105,7 @@ else function PART:Think() if self.ExteriorPart then - self.DoorTarget=self.exterior.DoorOverride or (self.exterior:GetData("doorstatereal",false) and 1 or 0) + self.DoorTarget=self.exterior.DoorOverride or (self:GetData("doorstatereal",false) and 1 or 0) local animtime = self.exterior.metadata.Exterior.DoorAnimationTime @@ -109,11 +113,19 @@ else self.DoorPos = self.exterior.DoorOverride or math.Approach(self.DoorPos, self.DoorTarget, FrameTime() * (1 / animtime)) + -- for extension tweaks + if self.ExtOnlyAnimation + and self.ExtOnlyAnimation == self.DoorTarget + and self.DoorPos == self.DoorTarget + then + self.ExtOnlyAnimation = nil + end + self:SetPoseParameter("switch", self.DoorPos) self:InvalidateBoneCache() elseif self.InteriorPart then -- copy exterior, no need to redo the calculation local door=self.exterior:GetPart("door") - if IsValid(door) then + if IsValid(door) and not door.ExtOnlyAnimation then self:SetPoseParameter("switch", door.DoorPos) self:InvalidateBoneCache() end diff --git a/lua/tardis/parts/intdoor.lua b/lua/tardis/parts/intdoor.lua index 34f371c71..e1469e567 100644 --- a/lua/tardis/parts/intdoor.lua +++ b/lua/tardis/parts/intdoor.lua @@ -5,7 +5,7 @@ PART.Model = "models/drmatt/tardis/exterior/door.mdl" PART.AutoSetup = true PART.AutoPosition = true PART.ClientThinkOverride = true -PART.Collision = false +PART.Collision = true PART.NoStrictUse = true PART.ShouldTakeDamage = true PART.BypassIsomorphic = true @@ -14,14 +14,14 @@ PART.BypassIsomorphic = true if SERVER then function PART:Use(a) - if self.exterior:GetData("locked") then + if self:GetData("locked") then if IsValid(a) and a:IsPlayer() then if self.exterior:CallHook("LockedUse",a)==nil then TARDIS:Message(a, "Parts.Door.Locked") end end else - if a:KeyDown(IN_WALK) then + if a:KeyDown(IN_WALK) or self:GetData("legacy_door_type") then self.exterior:PlayerExit(a) end end @@ -34,7 +34,7 @@ else end function PART:Think() - self.IntDoorTarget=self.exterior.IntDoorOverride or (self.exterior:GetData("doorstatereal",false) and 1 or 0) + self.IntDoorTarget=self.exterior.IntDoorOverride or (self:GetData("doorstatereal",false) and 1 or 0) local animtime = self.exterior.metadata.Interior.IntDoorAnimationTime or self.exterior.metadata.Exterior.DoorAnimationTime diff --git a/lua/tardis/parts/parts_default_basic.lua b/lua/tardis/parts/parts_default_basic.lua new file mode 100644 index 000000000..c3e81370d --- /dev/null +++ b/lua/tardis/parts/parts_default_basic.lua @@ -0,0 +1,254 @@ +local PART = {} +PART.ID = "default_doorframe" +PART.Model = "models/molda/toyota_int/doorframe.mdl" +PART.AutoSetup = true +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_floor" +PART.Model = "models/molda/toyota_int/floor.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.ShouldTakeDamage = true +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_walls" +PART.Model = "models/molda/toyota_int/walls.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.ShouldTakeDamage = true +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_entry" +PART.Model = "models/molda/toyota_int/entry.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.ShouldTakeDamage = true +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_pillars" +PART.Model = "models/molda/toyota_int/pillars.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.ShouldTakeDamage = true +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_roof" +PART.Model = "models/molda/toyota_int/roof.mdl" +PART.AutoSetup = true +PART.ShouldTakeDamage = true +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_rings" +PART.Model = "models/molda/toyota_int/rings.mdl" +PART.AutoSetup = true +PART.Animate = true +PART.ClientThinkOverride = true +PART.AnimateOptions = { + Type = "travel", + Speed = 0.075 +} +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_cables1" +PART.Model = "models/molda/toyota_int/cables1.mdl" +PART.AutoSetup = true +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_cables2" +PART.Model = "models/molda/toyota_int/cables2.mdl" +PART.AutoSetup = true +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_cables3" +PART.Model = "models/molda/toyota_int/cables3.mdl" +PART.AutoSetup = true +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_chairs" +PART.Model = "models/molda/toyota_int/chairs.mdl" +PART.AutoSetup = true +PART.Collision = true +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_casing" +PART.Model = "models/molda/toyota_int/casing.mdl" +PART.AutoSetup = true +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_console" +PART.Model = "models/molda/toyota_int/console.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.ShouldTakeDamage = true +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_side_details1" +PART.Model = "models/molda/toyota_int/side_details1.mdl" +PART.AutoSetup = true +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_side_details2" +PART.Model = "models/molda/toyota_int/side_details2.mdl" +PART.AutoSetup = true +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_toplights" +PART.Model = "models/molda/toyota_int/toplights.mdl" +PART.AutoSetup = true +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_roundels1" +PART.Model = "models/molda/toyota_int/roundels1.mdl" +PART.AutoSetup = true +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_roundels2" +PART.Model = "models/molda/toyota_int/roundels2.mdl" +PART.AutoSetup = true +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_bulbs" +PART.Model = "models/molda/toyota_int/bulbs.mdl" +PART.AutoSetup = true +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_ticks" +PART.Model = "models/molda/toyota_int/ticks.mdl" +PART.AutoSetup = true +PART.ShouldTakeDamage = false +PART.Animate = true +PART.AnimateOptions = { + Type = "idle", + Speed = 0.5, + NoPowerFreeze = true, +} +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_intdoors" +PART.Model = "models/molda/toyota_int/slidedoors2.mdl" +PART.AutoSetup = true +PART.Animate = true +PART.Collision = true +PART.ShouldTakeDamage = true +PART.AnimateSpeed = 1 +PART.Sound = "p00gie/tardis/default/intdoors_open.ogg" + +if SERVER then + function PART:Use(ply) + self:SetCollide(self:GetOn()) + + if not self:GetOn() then + self.interior:Timer(self.ID, 5, function(int) + self:SetOn(false) + self:SetCollide(true) + if self.SoundOff then + self:EmitSound(self.SoundOff) + elseif self.Sound then + self:EmitSound(self.Sound) + end + end) + else + self.interior:CancelTimer(self.ID) + end + end +end + +TARDIS:AddPart(PART) + +PART.Model = "models/molda/toyota_int/slidedoors3.mdl" +PART.ID = "default_corridor_doors" +PART.ShouldTakeDamage = true +TARDIS:AddPart(PART) + +PART.ID = "default_top_doors_1" +PART.Model = "models/molda/toyota_int/slidedoors1.mdl" +PART.ShouldTakeDamage = true +PART.Sound = nil +PART.SoundOn = "p00gie/tardis/default/topdoor_open.ogg" +PART.SoundOff = "p00gie/tardis/default/topdoor_close.ogg" +PART.AnimateSpeed = 0.8 +TARDIS:AddPart(PART) + + +PART.ID = "default_top_doors_2" +PART.ShouldTakeDamage = true +TARDIS:AddPart(PART) + +PART.Use = nil +PART.Animate = false +PART.AnimateSpeed = nil +PART.SoundOn = nil +PART.SoundOff = nil +PART.SoundPos = nil + +PART.ID = "default_intdoors_static" +PART.Model = "models/molda/toyota_int/slidedoors2.mdl" +PART.ShouldTakeDamage = true +TARDIS:AddPart(PART) + +PART.ID = "default_corridor_doors_static" +PART.Model = "models/molda/toyota_int/slidedoors3.mdl" +PART.ShouldTakeDamage = true +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_rotor" +PART.Model = "models/molda/toyota_int/rotor.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.UseTransparencyFix = true +PART.ClientThinkOverride = true +PART.ShouldTakeDamage = true +PART.Animate = true + +function PART:Initialize() + self:SetBodygroup(3,1) +end + +PART.AnimateOptions = { + Type = "travel", + Speed = 0.075, + ReturnAfterStop = false, + NoPowerFreeze = true, + PoseParameter = "rings", +} + +PART.ExtraAnimations = { + piston = { + Type = "travel", + Speed = 0.5, + ReturnAfterStop = true, + NoPowerFreeze = true, + PoseParameter = "piston", + } +} + +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_corridors" +PART.Model = "models/molda/toyota_int/corridor_version2.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.ShouldTakeDamage = true +TARDIS:AddPart(PART) \ No newline at end of file diff --git a/lua/tardis/parts/parts_default_controls.lua b/lua/tardis/parts/parts_default_controls.lua new file mode 100644 index 000000000..980945037 --- /dev/null +++ b/lua/tardis/parts/parts_default_controls.lua @@ -0,0 +1,741 @@ + +local PART={} +PART.ID = "default_gears1" +PART.Model = "models/molda/toyota_int/gears1.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.ShouldTakeDamage = false + +PART.SoundLoop = "p00gie/tardis/default/steeringmech_loop.wav" +PART.SoundLoopVolume = 0.5 + +PART.Animate = true +PART.AnimateOptions = { + Type = "perpetual_use", + Speed = 1.2, + StopAnywhere = true, + SpeedOverrideFunc = function(self, a, target, do_reset) + if do_reset and (a.pos < 0.2 or a.pos > 0.8) then + return a.speed * 3 + end + return a.speed + end, +} + +if CLIENT then + PART.Use = function(self, ply) + self.animation.stop_anywhere = LocalPlayer():KeyDown(IN_WALK) + end +end + +TARDIS:AddPart(PART) + +PART.ID = "default_gears2" +PART.Model = "models/molda/toyota_int/gears2.mdl" +PART.AnimateOptions.Speed = 1.5 +TARDIS:AddPart(PART) + +PART.ID = "default_gears3" +PART.Model = "models/molda/toyota_int/gears3.mdl" +PART.AnimateOptions.Speed = 0.9 +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_handbrake" +PART.Model = "models/molda/toyota_int/handbrake.mdl" +PART.SoundOn = "p00gie/tardis/default/handbrake_on.ogg" +PART.SoundOff = "p00gie/tardis/default/handbrake_off.ogg" +PART.AutoSetup = true +PART.Collision = true +PART.ShouldTakeDamage = false + +PART.EnabledOnStart = true + +PART.Animate = true +PART.AnimateOptions = { + Type = "toggle", + Speed = 1.2, +} + +if CLIENT then + + function trace_height(int, ply) + local trace = { + start = ply:EyePos(), + endpos = ply:EyePos() + (ply:GetAimVector() * 4096), + filter = { ply, }, + } + local trace_res = util.TraceLine(trace) + if trace_res.Hit then + return int:WorldToLocal(trace_res.HitPos).z + end + end + + function PART:Use(ply) + if not self:GetOn() then return end + + if LocalPlayer():KeyDown(IN_WALK) then + -- giving the player some control over the height + local h = trace_height(self.interior, ply) - 132 + self.animation.max = math.Clamp(0.4 + h * 0.16, 0.4, 1) + else + self.animation.max = math.Rand(0.5, 1) + end + end +end + +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_throttle" +PART.Model = "models/molda/toyota_int/throttle.mdl" +PART.SoundOn = "p00gie/tardis/default/throttle_on.ogg" +PART.SoundOff = "p00gie/tardis/default/throttle_off.ogg" +PART.AutoSetup = true +PART.Collision = true +PART.ShouldTakeDamage = false +PART.Animate = true +PART.AnimateSpeed = 2.3 +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_keyboard" +PART.Model = "models/molda/toyota_int/keyboard.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.ShouldTakeDamage = false +PART.SoundOn = "p00gie/tardis/default/keyboard_2014.ogg" +PART.SoundOff = "p00gie/tardis/default/keyboard_2015.ogg" +PART.SoundNoPower = "p00gie/tardis/default/keyboard.ogg" + +if SERVER then + function PART:Use(ply) + self.interior:Timer("default_keyboard", 1, function() + TARDIS:Control(self.Control, ply, self) + end) + end +end + +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_telepathic" +PART.Model = "models/molda/toyota_int/telepathic.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.ShouldTakeDamage = false +PART.SoundOn = "p00gie/tardis/default/telepathic_on.ogg" +PART.SoundOff = "p00gie/tardis/default/telepathic_off.ogg" + +function PART:Use(ply) + local last_d_exit = ply:GetTardisData("destination_last_exit") + + if last_d_exit and self.Control == "destination" and CurTime() - last_d_exit < 1 then return end + + if CLIENT then + self:SetData("default_telepathic_activation", RealTime() + 1) + end + + ply:ScreenFade(SCREENFADE.OUT, Color(255,255,255,30), 1.2, 0) + + self.interior:Timer("default_telepathic", 1, function() + if SERVER then + TARDIS:Control(self.Control, ply, self) + ply:ScreenFade(SCREENFADE.IN, Color(255,255,255,30), 0.5, 0) + else + self:SetData("default_telepathic_activation", nil) + end + end) +end + +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_side_lever1" +PART.Model = "models/molda/toyota_int/sidelever1.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.ShouldTakeDamage = false +PART.Animate = true +PART.AnimateSpeed = 3 +PART.SoundOn = "p00gie/tardis/default/slider_2_on.ogg" +PART.SoundOff = "p00gie/tardis/default/slider_off.ogg" +PART.SoundNoPower = "p00gie/tardis/default/slider_off.ogg" +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_side_lever2" +PART.Model = "models/molda/toyota_int/sidelever2.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.ShouldTakeDamage = false +PART.Animate = true +PART.AnimateSpeed = 3 +PART.SoundOn = "p00gie/tardis/default/slider_on.ogg" +PART.SoundOff = "p00gie/tardis/default/slider_off.ogg" +PART.SoundNoPower = "p00gie/tardis/default/slider_off.ogg" +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_side_dial" +PART.Model = "models/molda/toyota_int/side_dial.mdl" +PART.AutoSetup = true +TARDIS:AddPart(PART) + + +local PART={} +PART.ID = "default_throttle_lights" +PART.Model = "models/molda/toyota_int/throttle_lights.mdl" +PART.AutoSetup = true +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_side_speakers" +PART.Model = "models/molda/toyota_int/side_speakers.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.ShouldTakeDamage = false +TARDIS:AddPart(PART) + + +------------------------------ +-- ported from Toyota addon -- +------------------------------ + +local PART = {} +PART.ID = "default_bouncy_lever" +PART.Model = "models/cem/toyota_contr/bouncy_lever.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.AnimateSpeed = 3 +PART.Sound = "p00gie/tardis/default/levers.ogg" +TARDIS:AddPart(PART) + +local PART = {} +PART.Model = "models/cem/toyota_contr/button.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.AnimateSpeed = 6 + +PART.ID = "default_button_1" +PART.Sound = "p00gie/tardis/default/buttons.ogg" +PART.AnimateSpeed = 5 +TARDIS:AddPart(PART) + +PART.ID = "default_button_2" +PART.Sound = "p00gie/tardis/default/buttons.ogg" +PART.AnimateSpeed = 5 +TARDIS:AddPart(PART) + +local PART = {} +PART.ID = "default_buttons" +PART.Model = "models/cem/toyota_contr/buttons.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.AnimateSpeed = 1 +PART.SoundOn = "p00gie/tardis/default/buttons_on.ogg" +PART.SoundOff = "p00gie/tardis/default/buttons.ogg" +PART.SoundNoPower = "p00gie/tardis/default/buttons.ogg" +TARDIS:AddPart(PART) + +local PART = {} +PART.ID = "default_crank" +PART.Model = "models/cem/toyota_contr/crank.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true + +PART.SoundLoop = "p00gie/tardis/default/crank_loop.wav" +PART.SoundStop = "p00gie/tardis/default/crank_beep.ogg" + +PART.AnimateOptions = { + Type = "perpetual_use", + Speed = 1.2, + StopAnywhere = true, +} + +TARDIS:AddPart(PART) + +local PART = {} +PART.ID = "default_crank2" +PART.Model = "models/cem/toyota_contr/crank2.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.Sound = "p00gie/tardis/default/crank.ogg" + +PART.AnimateOptions = { + Type = "perpetual_use", + Speed = 1, + StopAnywhere = false, +} + +TARDIS:AddPart(PART) + +local PART = {} +PART.ID = "default_crank3" +PART.Model = "models/cem/toyota_contr/crank3.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.AnimateSpeed = 0.75 +PART.Sound = "p00gie/tardis/default/crank.ogg" +TARDIS:AddPart(PART) + +local PART = {} +PART.ID = "default_crank4" +PART.Model = "models/cem/toyota_contr/crank4.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.Sound = "p00gie/tardis/default/crank2.ogg" +TARDIS:AddPart(PART) + +local PART = {} +PART.ID = "default_crank5" +PART.Model = "models/cem/toyota_contr/crank5.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.AnimateSpeed = 1.1 +PART.Sound = "p00gie/tardis/default/crank.ogg" +TARDIS:AddPart(PART) + +local PART = {} +PART.ID = "default_crank6" +PART.Model = "models/cem/toyota_contr/crank6.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.AnimateSpeed = 1.1 +PART.Sound = "p00gie/tardis/default/crank.ogg" +TARDIS:AddPart(PART) + +local PART = {} +PART.ID = "default_ducks" +PART.Model = "models/cem/toyota_contr/ducks.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.SoundOn = "p00gie/tardis/default/ducks_on.ogg" +PART.SoundOff = "p00gie/tardis/default/ducks_off.ogg" +TARDIS:AddPart(PART) + +local PART = {} +PART.ID = "default_flippers" +PART.Model = "models/cem/toyota_contr/flippers.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.AnimateSpeed = 1 +PART.Sound = "p00gie/tardis/default/flippers.ogg" +TARDIS:AddPart(PART) + +local PART = {} +PART.ID = "default_fiddle1" +PART.Model = "models/cem/toyota_contr/fiddle1.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.AnimateSpeed = 3 +PART.Sound = "p00gie/tardis/default/levers.ogg" +TARDIS:AddPart(PART) + +local PART = {} +PART.ID = "default_fiddle2" +PART.Model = "models/cem/toyota_contr/fiddle2.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.AnimateSpeed = 3 +PART.Sound = "p00gie/tardis/default/levers.ogg" +TARDIS:AddPart(PART) + +local PART = {} +PART.Model = "models/cem/toyota_contr/flat_switch.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.AnimateSpeed = 5 +PART.Sound = "p00gie/tardis/default/switch.ogg" + +for i = 1,6 do + PART.ID = "default_flat_switch_" .. i + TARDIS:AddPart(PART) +end + +local PART = {} +PART.ID = "default_handle1" +PART.Model = "models/cem/toyota_contr/handle1.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.AnimateSpeed = 3 +PART.Sound = "p00gie/tardis/default/levers.ogg" +TARDIS:AddPart(PART) + +local PART = {} +PART.ID = "default_handle2" +PART.Model = "models/cem/toyota_contr/handle2.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.AnimateSpeed = 3 +PART.Sound = "p00gie/tardis/default/levers.ogg" +TARDIS:AddPart(PART) + +local PART = {} +PART.ID = "default_key" +PART.Model = "models/cem/toyota_contr/key.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.AnimateSpeed = 8 +PART.SoundOn = "p00gie/tardis/default/key.ogg" +PART.SoundOff = "p00gie/tardis/default/buttons.ogg" +PART.SoundNoPower = "p00gie/tardis/default/buttons.ogg" +TARDIS:AddPart(PART) + +local PART = {} +PART.Model = "models/cem/toyota_contr/red_lever.mdl" +PART.SoundOn = "p00gie/tardis/default/red_lever_on.ogg" +PART.SoundOff = "p00gie/tardis/default/red_lever_off.ogg" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.AnimateSpeed = 3 + +PART.ID = "default_red_lever_1" +TARDIS:AddPart(PART) +PART.ID = "default_red_lever_2" +TARDIS:AddPart(PART) + +local PART = {} +PART.ID = "default_thick_lever" +PART.Model = "models/cem/toyota_contr/thick_lever.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.AnimateSpeed = 5 +PART.Sound = "p00gie/tardis/default/lever5.ogg" +TARDIS:AddPart(PART) + +for i = 1,5 do + local PART = {} + PART.ID = "default_colored_lever_" .. i + PART.Model = "models/cem/toyota_contr/colored_lever_" .. i .. ".mdl" + + PART.SoundOn = "p00gie/tardis/default/colored_lever_" .. i .. ".ogg" + PART.SoundOff = "p00gie/tardis/default/colored_lever_off.ogg" + PART.SoundOnNoPower = "p00gie/tardis/default/colored_lever_1.ogg" + PART.SoundOffNoPower = "p00gie/tardis/default/colored_lever_off.ogg" + + PART.AutoSetup = true + PART.Collision = true + PART.Animate = true + PART.AnimateSpeed = 3 + + TARDIS:AddPart(PART) +end + +local PART = {} +PART.ID = "default_phone" +PART.Model = "models/cem/toyota_contr/phone.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.Sound = "p00gie/tardis/default/phone.ogg" +PART.SoundNoPower = false +TARDIS:AddPart(PART) + +local PART = {} +PART.ID = "default_red_flick_cover" +PART.Model = "models/cem/toyota_contr/red_flick_cover.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.Sound = "p00gie/tardis/default/levers.ogg" +if SERVER then + function PART:Use(ply) + if not self:GetOn() then + self:SetCollide(false, true) + end + end +end +TARDIS:AddPart(PART) + +local PART = {} +PART.ID = "default_red_flick_switch" +PART.Model = "models/cem/toyota_contr/red_flick_switch.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.AnimateSpeed = 6 +PART.Sound = "p00gie/tardis/default/switch.ogg" +if SERVER then + function PART:Use(ply) + local cover = self.interior:GetPart("default_red_flick_cover") + if not IsValid(cover) then return end + + if cover:GetOn() then + TARDIS:Control(self.Control, ply, self) + self.interior:Timer("default_redflickswitch_cover", 0.3, function() + cover:SetOn(false) + cover:SetPoseParameter("switch", 0) + cover:SetCollide(true) + end) + end + end +end +TARDIS:AddPart(PART) + +local PART = {} +PART.ID = "default_sliders" +PART.Model = "models/cem/toyota_contr/sliders.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.SoundOn = "p00gie/tardis/default/sliders.ogg" +PART.SoundOff = "p00gie/tardis/default/sliders_off.ogg" +PART.AnimateSpeed = 1 +PART.SoundNoPower = "p00gie/tardis/default/sliders_off.ogg" +TARDIS:AddPart(PART) + +local PART = {} +PART.Model = "models/cem/toyota_contr/small_switch.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.AnimateSpeed = 4 +PART.Sound = "p00gie/tardis/default/switch.ogg" + +for i = 1,18 do + PART.ID = "default_small_switch_" .. i + TARDIS:AddPart(PART) +end + +local PART = {} +PART.Model = "models/cem/toyota_contr/spin_a.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true + +PART.AnimateOptions = { + Type = "perpetual_use", + Speed = 3, +} + +PART.Sound = "p00gie/tardis/default/switch2.ogg" + +for i = 1,5 do + PART.ID = "default_spin_a_" .. i + TARDIS:AddPart(PART) +end + +local PART = {} +PART.Model = "models/cem/toyota_contr/spin_b.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.AnimateSpeed = 2 +PART.Sound = "p00gie/tardis/default/switch2.ogg" + +for i = 1,4 do + PART.ID = "default_spin_b_" .. i + TARDIS:AddPart(PART) +end + +local PART = {} +PART.ID = "default_spin_big" +PART.Model = "models/cem/toyota_contr/spin_big.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.Sound = "p00gie/tardis/default/crank2.ogg" +TARDIS:AddPart(PART) + +local PART = {} +PART.ID = "default_spin_crank" +PART.Model = "models/cem/toyota_contr/spin_crank.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.Sound = "p00gie/tardis/default/crank2.ogg" +TARDIS:AddPart(PART) + +local PART = {} +PART.ID = "default_spin_switch" +PART.Model = "models/cem/toyota_contr/spin_switch.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.Sound = "p00gie/tardis/default/crank2.ogg" +TARDIS:AddPart(PART) + +local PART = {} +PART.ID = "default_switch" +PART.Model = "models/cem/toyota_contr/switch.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.SoundOn = "p00gie/tardis/default/switch_on.ogg" +PART.SoundOff = "p00gie/tardis/default/switch.ogg" +PART.SoundNoPower = "p00gie/tardis/default/switch.ogg" +TARDIS:AddPart(PART) + +local PART = {} +PART.ID = "default_switch2" +PART.Model = "models/cem/toyota_contr/switch2.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.Sound = "p00gie/tardis/default/switch.ogg" +TARDIS:AddPart(PART) + +local PART = {} +PART.ID = "default_toggles" +PART.Model = "models/cem/toyota_contr/toggles.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.AnimateSpeed = 2 +PART.SoundOn = "p00gie/tardis/default/toggles_on.ogg" +PART.SoundOff = "p00gie/tardis/default/toggles_off.ogg" +PART.SoundNoPower = "p00gie/tardis/default/toggles.ogg" +function PART:Use(ply) + TARDIS:Control(self.Control, ply, self) + + local pr = "p00gie/tardis/default/toggles_on" + self.SoundOn = pr .. (self.exterior:IsTravelling() and ".ogg" or "_2.ogg") +end +TARDIS:AddPart(PART) + +local PART = {} +PART.ID = "default_toggles2" +PART.Model = "models/cem/toyota_contr/toggles2.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.AnimateSpeed = 1.5 +PART.SoundOn = "p00gie/tardis/default/toggles2.ogg" +PART.SoundOff = "p00gie/tardis/default/toggles2_off.ogg" +PART.SoundNoPower = "p00gie/tardis/default/toggles2_off.ogg" +TARDIS:AddPart(PART) + +local PART = {} +PART.ID = "default_tumblers" +PART.Model = "models/cem/toyota_contr/tumblers.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.AnimateSpeed = 3 +PART.SoundOn = "p00gie/tardis/default/tumblers_on.ogg" +PART.SoundOff = "p00gie/tardis/default/tumblers_off.ogg" +PART.SoundNoPower = "p00gie/tardis/default/tumblers_off.ogg" +TARDIS:AddPart(PART) + +local PART = {} +PART.ID = "default_balls" +PART.Model = "models/cem/toyota_contr/balls.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Sound = "p00gie/tardis/default/balls.ogg" +TARDIS:AddPart(PART) + +local PART = {} +PART.ID = "default_console_scanner" +PART.Model = "models/cem/toyota_contr/console_scanner.mdl" +PART.AutoSetup = true +PART.Collision = true +TARDIS:AddPart(PART) + +local PART = {} +PART.Model = "models/cem/toyota_contr/cranks.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.NoStrictUse = true + +PART.ID = "default_side_cranks1" +PART.AnimateSpeed = 1.6 +PART.Sound = "p00gie/tardis/default/crank.ogg" +TARDIS:AddPart(PART) + +PART.ID = "default_side_cranks2" +PART.AnimateSpeed = 0.6 +PART.Sound = "p00gie/tardis/default/cranks.ogg" +TARDIS:AddPart(PART) + + +local PART={} +PART.ID = "default_side_panels" +PART.Model = "models/molda/toyota_int/sidepanels.mdl" +PART.AutoSetup = true +PART.Collision = true + +if SERVER then + -- temporary fix for side panels collision + local function TraceEyeThroughSidePanels(self, ply) + local trace = { + start = ply:EyePos(), + endpos = ply:EyePos() + ( ply:GetAimVector() * 4096 ), + filter = { ply, self }, + } + return util.TraceLine(trace).Hit and util.TraceLine(trace).Entity + end + + function PART:Use(ply) + local tr_ent = TraceEyeThroughSidePanels(self, ply) + local p1 = self.interior:GetPart("default_side_cranks1") + local p2 = self.interior:GetPart("default_side_cranks2") + + if IsValid(tr_ent) and (tr_ent == p1 or tr_ent == p2) then + return tr_ent:Use(ply, ply, SIMPLE_USE, 1) + end + + TARDIS:Control(self.Control, ply, self) + end +end + +TARDIS:AddPart(PART) + + +local PART={} +PART.Model = "models/molda/toyota_int/side_toggle.mdl" +PART.AutoSetup = true + +PART.ID = "default_side_toggles_1" +TARDIS:AddPart(PART) +PART.ID = "default_side_toggles_2" +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_sonic_dispenser_hitbox" +PART.Model = "models/molda/toyota_int/hitboxes/sonic_cube.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.NoDraw = true +PART.Sound = "p00gie/tardis/default/sonic_dispenser.ogg" +PART.PowerOffUse = false + +function PART:Use(ply) + TARDIS:Control(self.Control, ply, self) + + self:SetData("default_sonic_charger_active", true, true) + + self.interior:Timer(self.ID, 3, function() + self:SetData("default_sonic_charger_active", false, true) + end) +end + +TARDIS:AddPart(PART) + +local PART={} +PART.ID = "default_door_button" +PART.Model = "models/parar020100/toyota_int/classic_doors_button.mdl" +PART.AutoSetup = true +PART.Collision = true +TARDIS:AddPart(PART) \ No newline at end of file diff --git a/lua/tardis/parts/parts_default_monitors.lua b/lua/tardis/parts/parts_default_monitors.lua new file mode 100644 index 000000000..f03f94f16 --- /dev/null +++ b/lua/tardis/parts/parts_default_monitors.lua @@ -0,0 +1,639 @@ +local HIDE_COLLISIONS = true + + +local PART = {} +PART.Model = "models/molda/toyota_int/monitor.mdl" +PART.AutoSetup = true +PART.Collision = true +PART.Animate = true +PART.poses_flip = { 0.5, 1, 0.5, 0, } +PART.poses_down = { 0.5, 0, 1, } + + +-- Initialize: set data names for each monitor + +function PART:Initialize(ply) + self.data_flip = self.ID .. "_flip" + self.data_flip_pos = self.ID .. "_flip_pos" + self.data_down = self.ID .. "_down" + self.data_down_pos = self.ID .. "_down_pos" + + self.data_rotation = self.ID .. "_rotation" + self.data_rotated_by = self.ID .. "_rotated_by" + + self.data_other_rotation = self.OtherID .. "_rotation" + + self.handles_hitbox_id = self.ID .. "_hitbox_handles" + self.screen_hitbox_id = self.ID .. "_hitbox_screen" + self.static_hitbox_id = self.ID .. "_hitbox_static" + + if self.ScreenID then + self.data_screen_enabled = "default_screen_enabled_" .. self.ScreenID + end + + self:SetBodygroup(0, 1) +end + +-- Getting other monitor and parts + +function PART:GetOther() + return self.interior:GetPart(self.OtherID) +end + +local function rotation_get_other(r) + r = r + 0.5 + return (r > 1) and (r - 1) or r +end + +function PART:GetOtherRotation() + local r = self:GetData(self.data_other_rotation, 0) + return rotation_get_other(r) +end + +function PART:GetHitboxScreen() + return self.interior:GetPart(self.screen_hitbox_id) +end + +function PART:GetHitboxHandles() + return self.interior:GetPart(self.handles_hitbox_id) +end + +function PART:GetHitboxStatic() + return self.interior:GetPart(self.static_hitbox_id) +end + + +-- Animation functions + +function PART:AnimateRotation(anim) + local target = self:GetData(self.data_rotation,0) + + local other = self:GetOtherRotation() + + local increase = (anim.pos < target) + local through_other = false + + if increase then + if anim.pos < other and other < target then + through_other = true + end + else + if anim.pos > other and other > target then + through_other = true + end + end + + if not through_other then + TARDIS.DoPartAnimation(self, true, anim, target, false) + elseif increase then + TARDIS.DoPartAnimation(self, true, anim, 0, true) + else + TARDIS.DoPartAnimation(self, true, anim, 1, true) + end +end + +function PART:AnimateDownMovement(anim) + local target = self:GetData(self.data_down_pos, 0.5) + TARDIS.DoPartAnimation(self, true, anim, target, false) +end + +function PART:AnimateFlip(anim) + local target = self:GetData(self.data_flip_pos, 0.5) + TARDIS.DoPartAnimation(self, true, anim, target, false) +end + + +-- Data / state functions + +function PART:IsStatic() + return self:GetBodygroup(0) == 0 +end + +function PART:IsVertical() + return self:GetBodygroup(0) == 1 and (self:GetData(self.data_flip_pos, 0.5) ~= 0.5) +end + +function PART:CanMove() + return self:GetBodygroup(0) ~= 0 +end + +function PART:CanFlip() + return self:GetBodygroup(0) == 2 +end + +function PART:GetScreenPosition() + local matrix = self:GetBoneMatrix(4) + if not matrix then return end + local pos = self.interior:WorldToLocal(matrix:GetTranslation()) + local ang = matrix:GetAngles() + return pos, ang +end + + +-- Monitor position (all values between 0 and 1) + +local function trace_console_angle(int, ply) + local origin = ply:EyePos() + local aim = ply:GetAimVector() + local delta = Vector(aim.x, aim.y, 0) + + local circle_pos = int:LocalToWorld(Vector(0,0,0)) + circle_pos.z = origin.z + + local r = 70 + + local p1, p2 = util.IntersectRayWithSphere(origin, delta, circle_pos, 50) + if not p1 then return nil end + + local point = int:WorldToLocal(origin + p1 * aim) + if point.z < 140 or point.z > 165 then return nil end + + local d = point - Vector(0,0,point.z) + local ang = d:Angle() + + return ang.y, point.z +end + +local function trace_monitor_pos(ply, part) + local ang_y, down = trace_console_angle(part.interior, ply) + if not ang_y then return end + + local rotation = math.Clamp((ang_y - part:GetAngles().y) % 360 / 360, 0, 1) + local down = 1 - (down - 140) / 25 + + return rotation, down +end + + +local function rotations_colliding (r1, r2) + local border = 0.11 + if math.abs(r1 - r2) < border then + return true + end + if r1 + math.abs(1 - r2) < border then + return true + end + if r2 + math.abs(1 - r1) < border then + return true + end + return false +end + +local function rotations_distance(r1, r2) + local d1 = math.abs(r1 - r2) + local d2 = r1 + math.abs(1 - r2) + local d3 = math.abs(1 - r1) + r2 + + return math.min(d1, d2, d3) +end + +function PART:ChangePosition(rotation, down) + local other_r = self:GetOtherRotation() + + if not rotations_colliding(rotation, other_r) then + self:SetData(self.data_rotation, rotation, SERVER) + end + + self:SetData(self.data_down_pos, down, SERVER) +end + +function PART:GetPosition() + local rotation = self:GetData(self.data_rotation, 0) + local down = self:GetData(self.data_down_pos, 0.5) + return rotation, down +end + + +-- Hitbox part positions + +if SERVER then + function PART:UpdateHitboxCollision() + local static = self:IsStatic() + + local function do_collision(part, collide) + if not IsValid(part) then return end + if collide then + part:SetCollide(true) + else + part:SetCollide(false, true) + end + end + + do_collision(self:GetHitboxHandles(), not static) + do_collision(self:GetHitboxScreen(), not static) + do_collision(self:GetHitboxStatic(), static) + end + + function PART:MoveHitboxes(pos, ang) + local handles_hitbox = self:GetHitboxHandles() + local screen_hitbox = self:GetHitboxScreen() + + if IsValid(handles_hitbox) then + handles_hitbox:Move(pos, ang) + end + + if IsValid(screen_hitbox) then + screen_hitbox:Move(pos, ang) + end + end +end + + +-- Actions + +if SERVER then + function PART:Use(ply) + if ply:KeyDown(IN_WALK) then + + local rotation, down = trace_monitor_pos(ply, self) + + local rot_this = self:GetData(self.data_other_rotation, 0) + local rot_other = self:GetOtherRotation() + + local to_this = rotations_distance(rot_this, rotation) + local to_other = rotations_distance(rot_other, rotation) + + -- select closest one + if to_other < to_this then + local other = self:GetOther() + if IsValid(other) then + other:RotateToEyePos(ply) + end + else + self:RotateToEyePos(ply) + end + end + end + + function PART:MoveDown(ply) + if not self:CanMove() then return end + + local down_state = self:GetData(self.data_down, 1) % #self.poses_down + self:SetData(self.data_down, down_state + 1, true) + self:SetData(self.data_down_pos, self.poses_down[down_state + 1], true) + self:EmitSound("p00gie/tardis/default/monitor_move_vert.ogg") + + self:RequestHitboxUpdate(ply) + end + + function PART:Flip(ply) + if not self:CanFlip() then return end + + local flip_state = self:GetData(self.data_flip, 1) % #self.poses_flip + self:SetData(self.data_flip, flip_state + 1, true) + self:SetData(self.data_flip_pos, self.poses_flip[flip_state + 1], true) + self:EmitSound("p00gie/tardis/default/monitor_flip.ogg") + self:RequestHitboxUpdate(ply) + end + + function PART:RotateToEyePos(ply) + local prev = self:GetData(self.data_rotated_by) + + if not ply then + if IsValid(prev) then + self:EmitSound("p00gie/tardis/default/monitor_release.ogg") + end + self:SetData(self.data_rotated_by, nil, true) + return + end + + if not self:CanMove() then return end + if IsValid() then return end + + self:SetData(self.data_rotated_by, ply, true) + self:EmitSound("p00gie/tardis/default/monitor_hold.ogg") + end + + function PART:Think() + local ply = self:GetData(self.data_rotated_by) + if not IsValid(ply) then return end + + if not ply:KeyDown(IN_USE) then + self:RotateToEyePos(nil) + + if self:CanMove() then + local rotation, down = trace_monitor_pos(ply, self) + if rotation then + self:ChangePosition(rotation, down) + end + self:RequestFullUpdate(ply) + end + end + end + + function PART:OnBodygroupChanged(bodygroup, value) + if not IsValid(self.interior) then return end + + local other = self:GetOther() + if IsValid(other) and other:GetBodygroup(bodygroup) ~= value then + other:SetBodygroup(bodygroup, value) + end + + local ring = self.interior:GetPart("default_rotor_ring") + if IsValid(ring) then + if bodygroup == 0 and value == 0 then + ring:SetBodygroup(0,0) + else + ring:SetBodygroup(0,1) + end + end + + self:UpdateHitboxCollision() + end +else + function PART:Think() + if self.pending_update and not self:IsAnimationPlaying() then + self:SendMonitorsUpdate(self.pending_update_pos, self.pending_update_hitbox) + end + + local ply = self:GetData(self.data_rotated_by) + + if self.ScreenID then + + if self.interior:GetScreensOn() and self:GetData(self.data_screen_enabled) then + + self:SetSubMaterial(2, "models/molda/toyota_int/screen_loading") + self.loading_mat = true + + scr_pos, scr_ang = self:GetScreenPosition() + + if scr_pos and self.interior.screens3D then + local offset = Vector(-11.5, 6.8, 5.8) + + if self:GetBodygroup(0) == 2 then + offset = Vector(-11.5, 6.8, 6.8) + end + + offset:Rotate(scr_ang) + self.interior.screens3D[self.ScreenID].pos3D = scr_pos + offset + self.interior.screens3D[self.ScreenID].ang3D = scr_ang + end + elseif self.loading_mat then + self.loading_mat = nil + self:SetSubMaterial(2, nil) + end + end + + if ply ~= LocalPlayer() then return end + + local rotation, down = trace_monitor_pos(ply, self) + + if rotation then + self:ChangePosition(rotation, down) + end + end + + function PART:IsAnimationPlaying() + local a_rotate = self.animation + local a_down = self.extra_animations.down + local a_flip = self.extra_animations.flip + + if a_rotate.pos ~= self:GetData(self.data_rotation,0) then + return true + end + if a_down.pos ~= self:GetData(self.data_down_pos, 0.5) then + return true + end + if a_flip.pos ~= self:GetData(self.data_flip_pos, 0.5) then + return true + end + return false + end +end + + +-- Networking + + +if SERVER then + util.AddNetworkString("TARDIS_DefaultMonitorsRequestUpdate") + util.AddNetworkString("TARDIS_DefaultMonitorsUpdate") + + function PART:RequestUpdate(update_pos, update_hitbox, ply) + net.Start("TARDIS_DefaultMonitorsRequestUpdate") + net.WriteEntity(self) + net.WriteBool(update_pos) + net.WriteBool(update_hitbox) + net.Send(ply) + end + + function PART:RequestHitboxUpdate(ply) self:RequestUpdate(false, true, ply) end + function PART:RequestPositionUpdate(ply) self:RequestUpdate(true, false, ply) end + function PART:RequestFullUpdate(ply) self:RequestUpdate(true, true, ply) end + + net.Receive("TARDIS_DefaultMonitorsUpdate", function(len,ply) + local part = net.ReadEntity() + local update_pos = net.ReadBool() + local update_hitbox = net.ReadBool() + + local message_valid = IsValid(part) and part.exterior.occupants[ply] + + if update_pos then + local rotation, down = net.ReadFloat(), net.ReadFloat() + if message_valid and rotation and down then + part:ChangePosition(rotation, down) + end + end + + if update_hitbox then + local scr_pos, scr_ang = net.ReadVector(), net.ReadAngle() + if message_valid then + part:MoveHitboxes(scr_pos, scr_ang) + end + end + end) +else + function PART:SendMonitorsUpdate(update_pos, update_hitbox) + net.Start("TARDIS_DefaultMonitorsUpdate") + + net.WriteEntity(self) + net.WriteBool(update_pos) + net.WriteBool(update_hitbox) + + if update_pos then + local rotation, down = self:GetPosition() + net.WriteFloat(rotation) + net.WriteFloat(down) + end + + if update_hitbox then + local scr_pos, scr_ang = self:GetScreenPosition() + net.WriteVector(scr_pos) + net.WriteAngle(scr_ang) + end + + net.SendToServer() + + if self.pending_update then + self.pending_update = nil + self.pending_update_pos = nil + self.pending_update_hitbox = nil + end + end + + net.Receive("TARDIS_DefaultMonitorsRequestUpdate", function(len,ply) + local part = net.ReadEntity() + + local update_pos = net.ReadBool() + local update_hitbox = net.ReadBool() + + if not IsValid(part) then return end + + if part:IsAnimationPlaying() then + part.pending_update = true + part.pending_update_pos = update_pos + part.pending_update_hitbox = update_hitbox + else + part:SendMonitorsUpdate(update_pos, update_hitbox) + end + end) +end + +-- Adding parts + + +PART.AnimateOptions = { + Type = "custom", + PoseParameter = "Bone", + Speed = 0.3, + CustomAnimationFunc = PART.AnimateRotation, +} + +PART.ExtraAnimations = { + down = { + Type = "custom", + PoseParameter = "arm", + StartPos = 0.5, + CustomAnimationFunc = PART.AnimateDownMovement, + }, + flip = { + Type = "custom", + PoseParameter = "flip", + StartPos = 0.5, + CustomAnimationFunc = PART.AnimateFlip, + }, +} + +PART.ID = "default_monitor_1" +PART.ScreenID = 1 +PART.OtherID = "default_monitor_2" +TARDIS:AddPart(PART) + +PART.ID = "default_monitor_2" +PART.ScreenID = 2 +PART.OtherID = "default_monitor_1" +TARDIS:AddPart(PART) + + + + +-- Hitbox use functions + +local function UseScreen(self,ply) + local monitor = self:GetMonitor() + if not IsValid(monitor) then return end + + if ply:KeyDown(IN_WALK) then + monitor:MoveDown(ply) + end +end + +local function UseHandle(self,ply) + local monitor = self:GetMonitor() + if not IsValid(monitor) then return end + + if ply:KeyDown(IN_WALK) and monitor:CanFlip() then + monitor:Flip(ply) + elseif ply:KeyDown(IN_WALK) then + monitor:MoveDown(ply) + else + monitor:RotateToEyePos(ply) + end +end + +local function UseStatic(self,ply) + local monitor = self:GetMonitor() + if not IsValid(monitor) then return end + +end + + + + +-- Hitbox parts + +local function Setup_Hitbox_Parts(MonitorID) + local PART = {} + PART.MonitorID = MonitorID + PART.AutoSetup = true + PART.Collision = false + PART.NoDraw = HIDE_COLLISIONS + + if not HIDE_COLLISIONS then + function PART:Initialize() + self:SetColor(Color(255,255,255,100)) + end + end + + PART.GetMonitor = function(self) + return self.interior:GetPart(self.MonitorID) + end + + + -- static + + PART.ID = PART.MonitorID .. "_hitbox_static" + PART.Model = "models/molda/toyota_int/hitboxes/static_monitor_hitbox.mdl" + if SERVER then + PART.Use = UseStatic + end + TARDIS:AddPart(PART) + + + -- moving + + if SERVER then + PART.Move = function(self, pos, ang) + self:SetPos(pos) + self:SetAngles(ang) + end + end + + + -- handles + + PART.ID = PART.MonitorID .. "_hitbox_handles" + PART.Model = "models/uriel/toyota_int/monitor_collision_handles.mdl" + if SERVER then + PART.Use = UseHandle + end + TARDIS:AddPart(PART) + + + -- screen + + PART.ID = PART.MonitorID .. "_hitbox_screen" + PART.Model = "models/uriel/toyota_int/monitor_collision_screen.mdl" + if SERVER then + PART.Use = UseScreen + end + TARDIS:AddPart(PART) +end + +Setup_Hitbox_Parts("default_monitor_1") +Setup_Hitbox_Parts("default_monitor_2") + + + +-- Rotor ring + +local PART={} +PART.ID = "default_rotor_ring" +PART.Model = "models/molda/toyota_int/rotor_ring.mdl" +PART.AutoSetup = true + +function PART:Initialize() + self:SetBodygroup(0,1) +end + +TARDIS:AddPart(PART) \ No newline at end of file diff --git a/lua/tardis/parts/vortex.lua b/lua/tardis/parts/vortex.lua index d5e0c7341..0713adab0 100644 --- a/lua/tardis/parts/vortex.lua +++ b/lua/tardis/parts/vortex.lua @@ -24,9 +24,9 @@ if SERVER then end else function PART:PreDraw() - if self.exterior:GetData("vortexalpha",0)>0 then + if self:GetData("vortexalpha",0)>0 then self:SetRenderOrigin(self.exterior:LocalToWorld(self.pos)) - self:SetRenderAngles(self.exterior:GetData("lockedang")) + self:SetRenderAngles(self:GetData("lockedang")) end end end diff --git a/lua/tardis/screens/cl_screen_chameleon.lua b/lua/tardis/screens/cl_screen_chameleon.lua index 6978a78e7..41efbf3a9 100644 --- a/lua/tardis/screens/cl_screen_chameleon.lua +++ b/lua/tardis/screens/cl_screen_chameleon.lua @@ -32,7 +32,7 @@ TARDIS:AddScreen("Chameleon", {id="chameleon", text="Screens.Chameleon", menu=fa local listW = (frW - 4 * gap) / 3 local listT = frT - 2 * gap - local bW = 0.5 * (listW - 3 * gap2) + local bW = (listW - 4 * gap2) / 3 local bT = frT * 0.1 local imW = listW - 2 * gap2 local imT = listT - 3 * gap2 - bT @@ -84,9 +84,15 @@ TARDIS:AddScreen("Chameleon", {id="chameleon", text="Screens.Chameleon", menu=fa apply:SetText(TARDIS:GetPhrase("Screens.Chameleon.Apply")) apply:SetFont(TARDIS:GetScreenFont(screen, "Default")) + local plan = vgui.Create("DButton", panel) + plan:SetSize(bW, bT) + plan:SetPos(2 * gap2 + bW, listT - gap2 - bT) + plan:SetText(TARDIS:GetPhrase("Screens.Chameleon.Plan")) + plan:SetFont(TARDIS:GetScreenFont(screen, "Default")) + local reset = vgui.Create("DButton", panel) reset:SetSize(bW, bT) - reset:SetPos(2 * gap2 + bW, listT - gap2 - bT) + reset:SetPos(3 * gap2 + 2 * bW, listT - gap2 - bT) reset:SetText(TARDIS:GetPhrase("Screens.Chameleon.Reset")) reset:SetFont(TARDIS:GetScreenFont(screen, "Default")) @@ -168,6 +174,13 @@ TARDIS:AddScreen("Chameleon", {id="chameleon", text="Screens.Chameleon", menu=fa end end + function plan:DoClick() + if change_id ~= nil then + ext:SetData("chameleon_planned_exterior", change_id, true) + TARDIS:Message(LocalPlayer(), "Chameleon.ExteriorPlanned") + end + end + function reset:DoClick() ext:ChangeExterior(nil, true, LocalPlayer()) end diff --git a/lua/tardis/screens/cl_screen_music.lua b/lua/tardis/screens/cl_screen_music.lua index 939a03b0c..358cd85f8 100644 --- a/lua/tardis/screens/cl_screen_music.lua +++ b/lua/tardis/screens/cl_screen_music.lua @@ -3,18 +3,34 @@ --Custom music local custom_music +local MUSIC_FILE = "tardis2_custom_music.txt" -local filename = "tardis2_custom_music.txt" -if file.Exists(filename,"DATA") then - custom_music = TARDIS.von.deserialize(file.Read(filename,"DATA")) -else - custom_music = {} +function TARDIS:LoadCustomMusic() + if file.Exists(MUSIC_FILE,"DATA") then + custom_music = TARDIS.von.deserialize(file.Read(MUSIC_FILE,"DATA")) + else + custom_music = {} + end end +TARDIS:LoadCustomMusic() + function TARDIS:SaveCustomMusic() - file.Write(filename, TARDIS.von.serialize(custom_music)) + file.Write(MUSIC_FILE, TARDIS.von.serialize(custom_music)) end +--[[ TODO: Add back in before release +TARDIS:AddMigration("music-move", "2023.8.0", function(self) + if file.Exists("tardis2_custom_music.txt", "DATA") then + if file.Exists(MUSIC_FILE, "DATA") then + file.Delete(MUSIC_FILE) + end + file.Rename("tardis2_custom_music.txt", MUSIC_FILE) + self:LoadCustomMusic() + end +end) +]] + function TARDIS:AddCustomMusic(name, url) if name == nil or name == "" then TARDIS:ErrorMessage(LocalPlayer(), "Screens.Music.MissingName") diff --git a/lua/tardis/settings/sh_global_settings.lua b/lua/tardis/settings/sh_global_settings.lua index ad6ef9ce8..90a1b502b 100644 --- a/lua/tardis/settings/sh_global_settings.lua +++ b/lua/tardis/settings/sh_global_settings.lua @@ -20,11 +20,11 @@ TARDIS:AddSetting({ }) TARDIS:AddSetting({ - id="health-max", + id="health_max", type="integer", - value=1000, + value=3000, min=1, - max=10000, + max=30000, round_func = function(x) if x < 50 then return x end if x < 500 then return (x - x % 10) end @@ -44,6 +44,37 @@ TARDIS:AddSetting({ name="MaxHealth", }) +if SERVER then + TARDIS:AddMigration("health-changed", "2023.8.0", function(self) + local oldHealthMax = self.GlobalSettings["health-max"] + if oldHealthMax then + self:SetSetting("health_max", oldHealthMax * 3) + end + end) +end + +TARDIS:AddSetting({ + id="health_to_shields_ratio", + type="number", + value=0.2, + min=0.05, + max=0.95, + round_func = function(x) + return x - ((x * 100) % 5) * 0.01 + end, + + class="global", + convar = { + name = "tardis2_health_to_shields_ratio", + flags = CONVAR_FLAGS, + desc = "TARDIS - the ratio of max health to max shields", + }, + + option = true, + section=SETTING_SECTION, + name="HealthToShieldsRatio", +}) + TARDIS:AddSetting({ id="long_repair", type="bool", diff --git a/lua/tardis/settings/sh_miscellaneous.lua b/lua/tardis/settings/sh_miscellaneous.lua index ca7d878f3..e92c8ed08 100644 --- a/lua/tardis/settings/sh_miscellaneous.lua +++ b/lua/tardis/settings/sh_miscellaneous.lua @@ -69,6 +69,18 @@ TARDIS:AddSetting({ name="DoorCloseOnLock", }) +TARDIS:AddSetting({ + id="show_release_notes", + type="bool", + value=true, + + class="local", + + option = true, + section = SETTING_SECTION, + name = "ShowReleaseNotes", +}) + -------------------------------------------------------------------------------- -- Teleport diff --git a/lua/tardis/sh_control.lua b/lua/tardis/sh_control.lua index c8a437ba3..22dfa5f60 100644 --- a/lua/tardis/sh_control.lua +++ b/lua/tardis/sh_control.lua @@ -20,19 +20,26 @@ function TARDIS:GetControls() return controls end -function TARDIS:GetControl(id) +function TARDIS:GetControl(id, ent) + + if ent and ent.metadata.CustomControls and ent.metadata.CustomControls[id] then + return ent.metadata.CustomControls[id] + end + if controls[id] then return controls[id] end end function TARDIS:Control(control_id, ply, part) - if CLIENT then ply=LocalPlayer() end + if CLIENT then ply = LocalPlayer() end if not ply:IsPlayer() then return end - local control=controls[control_id] - local ext=ply:GetTardisData("exterior") + + local ext = ply:GetTardisData("exterior") + local control = TARDIS:GetControl(control_id, ext) + if control and IsValid(ext) then - local int=ply:GetTardisData("interior") + local int = ply:GetTardisData("interior") if ext:CallCommonHook("CanUseTardisControl", control, ply, part) == false then return end diff --git a/lua/tardis/sh_interiors.lua b/lua/tardis/sh_interiors.lua deleted file mode 100644 index 1f4b820ba..000000000 --- a/lua/tardis/sh_interiors.lua +++ /dev/null @@ -1,164 +0,0 @@ --- Interiors - -CreateConVar("tardis2_selected_interior", "", {FCVAR_REPLICATED}, "TARDIS - selected interior to spawn when not using the spawnmenu") - -function TARDIS:LoadInteriors() - if TARDIS.InteriorsLoading then return end - - TARDIS.Metadata = {} - TARDIS.MetadataRaw = {} - TARDIS.MetadataTemplates = {} - TARDIS.MetadataVersions = {} - TARDIS.MetadataCustomVersions = {} - - TARDIS.ExteriorsMetadata = {} - TARDIS.ExteriorsMetadataRaw = {} - TARDIS.ExteriorCategories = {} - - TARDIS.ImportedExteriors = {} - - TARDIS.IntCustomSettings = {} - TARDIS.IntUpdatesPerTemplate = {} - - TARDIS.InteriorsLoading = true - TARDIS:LoadFolder("interiors/modules") - TARDIS:LoadFolder("interiors/templates", nil, true) - TARDIS:LoadFolder("interiors", nil, true) - TARDIS:LoadFolder("interiors/exteriors", nil, true) - TARDIS:LoadFolder("interiors/versions", nil, true) - TARDIS.InteriorsLoading = nil - - hook.Call("TARDIS_MetadataLoaded", GAMEMODE) - hook.Call("TARDIS_PostMetadataLoaded", GAMEMODE) -end - -function TARDIS:PreMergeExteriorMetadata(ext_m) - if ext_m and ext_m.Teleport then - if ext_m.Teleport.DematSequence then - ext_m.Teleport.DematSequenceSaved = table.Copy(ext_m.Teleport.DematSequence) - end - - if ext_m.Teleport.MatSequence then - ext_m.Teleport.MatSequenceSaved = table.Copy(ext_m.Teleport.MatSequence) - end - end -end - -function TARDIS:PostMergeExteriorMetadata(ext_m) - if ext_m and ext_m.Teleport then - if ext_m.Teleport.DematSequenceSaved then - ext_m.Teleport.DematSequence = ext_m.Teleport.DematSequenceSaved - ext_m.Teleport.DematSequenceSaved = nil - end - - if ext_m.Teleport.MatSequenceSaved then - ext_m.Teleport.MatSequence = ext_m.Teleport.MatSequenceSaved - ext_m.Teleport.MatSequenceSaved = nil - end - end -end - -function TARDIS:MergeMetadata(base, t) - local copy=table.Copy(base) - self:PreMergeExteriorMetadata(t.Exterior) - table.Merge(copy,t) - self:PostMergeExteriorMetadata(copy.Exterior) - return copy -end - -function TARDIS:ClearMetadata(id) - self.Metadata[id] = nil - for k,v in pairs(self.MetadataRaw) do - if v.Base == id then - self:ClearMetadata(k) - end - end -end - -function TARDIS:AddInterior(t) - local id = t.ID - - self.MetadataRaw[id] = t - - self:ClearMetadata(id) - - -- setting up the stuff we need before spawning, e.g. in spawnmenu - self:SetupVersions(id) - self:AddSpawnmenuInterior(id) - self:SetupTemplateUpdates(id) - self:SetupCustomSettings(id) - - if self.ImportedExteriors and self.ImportedExteriors[id] then - self:ImportExterior(id, self.ImportedExteriors[id]) - end -end - -function TARDIS:SetupMetadata(id) - if self.Metadata[id] then return end - local t = self.MetadataRaw[id] - if not t then return end - - local base = t.Base - - if base == true then - self.Metadata[id] = t - return - end - - self:SetupMetadata(base) - - local m_base = self.Metadata[base] - if not m_base then return end - - self.Metadata[id] = self:MergeMetadata(m_base, t) - self.Metadata[id].Versions = nil -- we don't want those mixing up anywhere -end - -function TARDIS:CreateInteriorMetadata(id, ent) - if ent then - if ent.TardisExterior and ent.interior and ent.interior.metadata then - if ent.interior.templates then - ent.templates = ent.interior.templates - end - return ent.interior.metadata - end - if ent.TardisInterior and ent.exterior and ent.exterior.metadata then - if ent.exterior.templates then - ent.templates = ent.exterior.templates - end - return ent.exterior.metadata - end - end - - if id == nil then - local cv_id = GetConVar("tardis2_selected_interior"):GetString() - if cv_id ~= "" then - id = cv_id - end - end - - self:SetupMetadata(id) - - if self.Metadata[id] == nil or self.Metadata[id].BaseMerged ~= true then - return self:CreateInteriorMetadata("default", ent) - end - - local metadata = TARDIS:CopyTable(self.Metadata[id]) - - metadata = TARDIS:MergeTemplates(metadata, ent) - - metadata.Interior.TextureSets = TARDIS:GetMergedTextureSets(metadata.Interior.TextureSets) - metadata.Exterior.TextureSets = TARDIS:GetMergedTextureSets(metadata.Exterior.TextureSets) - - return metadata -end - -function TARDIS:GetInteriors() - return self.MetadataRaw -end - -function TARDIS:GetInterior(id) - return self.Metadata[id] or self.MetadataRaw[id] -end - -TARDIS:LoadInteriors() \ No newline at end of file diff --git a/lua/tardis/sh_keybind.lua b/lua/tardis/sh_keybind.lua index df1c0ff83..728c0efdd 100644 --- a/lua/tardis/sh_keybind.lua +++ b/lua/tardis/sh_keybind.lua @@ -212,6 +212,8 @@ else end end + local BINDS_FILE = "tardis_binds.txt" + function TARDIS:SaveKeyBinds() local keys={} for k,v in pairs(self.binds) do @@ -219,17 +221,30 @@ else keys[k]=self.bindkeys[k] end end - file.Write("tardis_binds.txt", self.von.serialize(keys)) + file.Write(BINDS_FILE, self.von.serialize(keys)) end function TARDIS:LoadKeyBinds() - local keys=file.Read("tardis_binds.txt","DATA") + local keys=file.Read(BINDS_FILE,"DATA") if keys then table.Merge(self.bindkeys,self.von.deserialize(keys)) end end TARDIS:LoadKeyBinds() + --[[ TODO: Add back in before release + TARDIS:AddMigration("binds-move", "2023.8.0", function(self) + if file.Exists("tardis_binds.txt", "DATA") then + if file.Exists(BINDS_FILE, "DATA") then + file.Delete(BINDS_FILE) + end + file.Rename("tardis_binds.txt", BINDS_FILE) + + self:LoadKeyBinds() + end + end) + ]] + function TARDIS:IsBindDown(id) if self.bindkeys[id] then return keys[self.bindkeys[id]].b @@ -275,4 +290,4 @@ TARDIS:AddKeyBind("test",{ key=KEY_SPACE, exterior=true }) -]]-- \ No newline at end of file +]] \ No newline at end of file diff --git a/lua/tardis/sh_metadata.lua b/lua/tardis/sh_metadata.lua new file mode 100644 index 000000000..2aa2489d5 --- /dev/null +++ b/lua/tardis/sh_metadata.lua @@ -0,0 +1,173 @@ +-- Interiors + +CreateConVar("tardis2_selected_interior", "", {FCVAR_REPLICATED}, "TARDIS - selected interior to spawn when not using the spawnmenu") + +function TARDIS:LoadInteriors() + if TARDIS.InteriorsLoading then return end + + TARDIS.Metadata = {} + TARDIS.MetadataRaw = {} + TARDIS.MetadataTemplates = {} + TARDIS.MetadataVersions = {} + TARDIS.MetadataCustomVersions = {} + + TARDIS.ExteriorsMetadata = {} + TARDIS.ExteriorsMetadataRaw = {} + TARDIS.ExteriorCategories = {} + + TARDIS.ImportedExteriors = {} + + TARDIS.IntCustomSettings = {} + TARDIS.IntUpdatesPerTemplate = {} + + TARDIS.InteriorsLoading = true + TARDIS:LoadFolder("metadata") + TARDIS:LoadFolder("interiors/templates", nil, true) + TARDIS:LoadFolder("interiors", nil, true) + TARDIS:LoadFolder("interiors/exteriors", nil, true) + TARDIS:LoadFolder("interiors/versions", nil, true) + TARDIS.InteriorsLoading = nil + + hook.Call("TARDIS_MetadataLoaded", GAMEMODE) + hook.Call("TARDIS_PostMetadataLoaded", GAMEMODE) +end + +function TARDIS:PreMergeExteriorMetadata(ext_m) + if ext_m and ext_m.Teleport then + if ext_m.Teleport.HadsDematSequence then + ext_m.Teleport.HadsDematSequenceSaved = table.Copy(ext_m.Teleport.HadsDematSequence) + end + + if ext_m.Teleport.DematSequence then + ext_m.Teleport.DematSequenceSaved = table.Copy(ext_m.Teleport.DematSequence) + end + + if ext_m.Teleport.MatSequence then + ext_m.Teleport.MatSequenceSaved = table.Copy(ext_m.Teleport.MatSequence) + end + end +end + +function TARDIS:PostMergeExteriorMetadata(ext_m) + if ext_m and ext_m.Teleport then + if ext_m.Teleport.DematSequenceSaved then + ext_m.Teleport.DematSequence = ext_m.Teleport.DematSequenceSaved + ext_m.Teleport.DematSequenceSaved = nil + end + + if ext_m.Teleport.MatSequenceSaved then + ext_m.Teleport.MatSequence = ext_m.Teleport.MatSequenceSaved + ext_m.Teleport.MatSequenceSaved = nil + end + + if ext_m.Teleport.HadsDematSequenceSaved then + ext_m.Teleport.HadsDematSequence = ext_m.Teleport.HadsDematSequenceSaved + ext_m.Teleport.HadsDematSequenceSaved = nil + end + end +end + +function TARDIS:MergeMetadata(base, t) + local copy=table.Copy(base) + self:PreMergeExteriorMetadata(t.Exterior) + table.Merge(copy,t) + self:PostMergeExteriorMetadata(copy.Exterior) + return copy +end + +function TARDIS:ClearMetadata(id) + self.Metadata[id] = nil + for k,v in pairs(self.MetadataRaw) do + if v.Base == id then + self:ClearMetadata(k) + end + end +end + +function TARDIS:AddInterior(t) + local id = t.ID + + self.MetadataRaw[id] = t + + self:ClearMetadata(id) + + -- setting up the stuff we need before spawning, e.g. in spawnmenu + self:SetupVersions(id) + self:AddSpawnmenuInterior(id) + self:SetupTemplateUpdates(id) + self:SetupCustomSettings(id) + + if self.ImportedExteriors and self.ImportedExteriors[id] then + self:ImportExterior(id, self.ImportedExteriors[id]) + end +end + +function TARDIS:SetupMetadata(id) + if self.Metadata[id] then return end + local t = self.MetadataRaw[id] + if not t then return end + + local base = t.Base + + if base == true then + self.Metadata[id] = t + return + end + + self:SetupMetadata(base) + + local m_base = self.Metadata[base] + if not m_base then return end + + self.Metadata[id] = self:MergeMetadata(m_base, t) + self.Metadata[id].Versions = nil -- we don't want those mixing up anywhere +end + +function TARDIS:CreateInteriorMetadata(id, ent) + if ent then + if ent.TardisExterior and ent.interior and ent.interior.metadata then + if ent.interior.templates then + ent.templates = ent.interior.templates + end + return ent.interior.metadata + end + if ent.TardisInterior and ent.exterior and ent.exterior.metadata then + if ent.exterior.templates then + ent.templates = ent.exterior.templates + end + return ent.exterior.metadata + end + end + + if id == nil then + local cv_id = GetConVar("tardis2_selected_interior"):GetString() + if cv_id ~= "" then + id = cv_id + end + end + + self:SetupMetadata(id) + + if self.Metadata[id] == nil or self.Metadata[id].BaseMerged ~= true then + return self:CreateInteriorMetadata("default", ent) + end + + local metadata = TARDIS:CopyTable(self.Metadata[id]) + + metadata = TARDIS:MergeTemplates(metadata, ent) + + metadata.Interior.TextureSets = TARDIS:GetMergedTextureSets(metadata.Interior.TextureSets) + metadata.Exterior.TextureSets = TARDIS:GetMergedTextureSets(metadata.Exterior.TextureSets) + + return metadata +end + +function TARDIS:GetInteriors() + return self.MetadataRaw +end + +function TARDIS:GetInterior(id) + return self.Metadata[id] or self.MetadataRaw[id] +end + +TARDIS:LoadInteriors() \ No newline at end of file diff --git a/lua/tardis/sh_parts.lua b/lua/tardis/sh_parts.lua index a77966a32..97517a5ab 100644 --- a/lua/tardis/sh_parts.lua +++ b/lua/tardis/sh_parts.lua @@ -4,26 +4,61 @@ if SERVER then util.AddNetworkString("TARDIS-SetupPart") end + +function TARDIS.ShouldDrawInteriorPart(self) + local int=self.interior + local ext=self.exterior + + if not IsValid(int) then + return false + end + + if int:CallHook("ShouldDraw") ~= false then + return true + end + + if ext:DoorOpen() and self.ClientDrawOverride then + local dist_to_portal = LocalPlayer():GetPos():Distance(ext:GetPos()) + local close_dist = TARDIS:GetSetting("portals-closedist") + if dist_to_portal < close_dist then + return true + end + end + + if self.DrawThroughPortal then + return (int.scannerrender or (IsValid(wp.drawingent) and wp.drawingent:GetParent()==int)) + end + + return false +end + +function TARDIS.ShouldDrawExteriorPart(self) + local ext=self.exterior + + if ext:CallHook("ShouldDraw") ~= false then + return true + end + + if self.ShouldDrawOverride then + return true + end + + return false +end + function TARDIS.DrawOverride(self,override) if self.NoDraw then return end + if self:IsInvisible() then return end + local int=self.interior local ext=self.exterior - - if IsValid(ext) then - if (self.InteriorPart and IsValid(int) - and ((int:CallHook("ShouldDraw")~=false) - or (ext:DoorOpen() - and (self.ClientDrawOverride and LocalPlayer():GetPos():Distance(ext:GetPos()) < TARDIS:GetSetting("portals-closedist")) - or (self.DrawThroughPortal and (int.scannerrender or (IsValid(wp.drawingent) and wp.drawingent:GetParent()==int))) - ) - ) - ) or (self.ExteriorPart - and (ext:CallHook("ShouldDraw")~=false) - or self.ShouldDrawOverride - ) + if IsValid(ext) then + if (self.InteriorPart and TARDIS.ShouldDrawInteriorPart(self)) + or (self.ExteriorPart and TARDIS.ShouldDrawExteriorPart(self)) then - + if not IsValid(self.parent) then return end + if self.parent:CallHook("ShouldDrawPart", self) == false then return end if self.parent:CallHook("PreDrawPart",self) == false then return end if self.PreDraw then self:PreDraw() end @@ -40,16 +75,167 @@ function TARDIS.DrawOverride(self,override) end end +function TARDIS.DoPartAnimation(self, can_move, a, target, should_reset) + local pose_pos = a.pos + local speed = a.speed + + if a.condition_func then + can_move = can_move and a.condition_func(self, a, target, should_reset) + end + + if can_move then + if a.speed_override_func then + speed = a.speed_override_func(self, a, target, should_reset) + end + + pose_pos = math.Approach(pose_pos, target, FrameTime() * speed) + + if pose_pos == target and should_reset then + pose_pos = (a.max == pose_pos and a.min) or a.max + end + end + + self:SetPoseParameter(a.pose_param, pose_pos) + self:InvalidateBoneCache() + a.pos = pose_pos +end + +function TARDIS.InitAnimation(self, anim) + -- `anim` is either the part or extra animation table + + local a = {} + + a.type = anim.Type or "toggle" + -- toggle / perpetual_use / travel / idle / custom + + a.max = anim.MaxPos or 1 + a.min = anim.MinPos or 0 + a.pos = anim.StartPos or (self.EnabledOnStart and self.posemax) or a.min + a.speed = anim.Speed or 1.5 + a.pose_param = anim.PoseParameter or "switch" + a.stop_anywhere = anim.StopAnywhere -- applies to perpetual_use + a.constant_dir = anim.NoDirectionChange -- applies to perpetual_use and toggle + a.no_power = not anim.NoPowerFreeze -- applies to travel and idle + a.should_return = anim.ReturnAfterStop -- applies to travel and idle + a.speed_override_func = anim.SpeedOverrideFunc + a.condition_func = anim.ConditionFunc + a.custom_func = anim.CustomAnimationFunc + + if a.pos ~= 0 then + self:SetPoseParameter(a.pose_param, a.pos) + self:InvalidateBoneCache() + end + + return a +end + +function TARDIS.ProcessAnimation(self, a) + + if a.type == "travel" then + local power_ok = self.exterior:GetPower() or a.no_power + local returning = a.should_return and a.pos ~= a.min + local move = power_ok and (self.exterior:IsTravelling() or returning) + + TARDIS.DoPartAnimation(self, move, a, a.max, move) + + elseif a.type == "idle" then + local returning = a.should_return and a.pos ~= a.min + local move = self.exterior:GetPower() or a.no_power + TARDIS.DoPartAnimation(self, move or returning, a, a.max, true) + + elseif a.type == "perpetual_use" or a.type == "toggle" then + + local target = (a.constant_dir or self:GetOn()) and a.max or a.min + + if a.type == "perpetual_use" then + local ply = LocalPlayer() + local looked_at = self:BeingLookedAtByLocalPlayer() + + local function is_sonic_pressed() + if not looked_at then + return false + end + if ply:GetActiveWeapon() ~= ply:GetWeapon("swep_sonicsd") then + return false + end + return ply:KeyDown(IN_ATTACK) or ply:KeyDown(IN_ATTACK2) + end + + local moving = looked_at and ply:KeyDown(IN_USE) + + if is_sonic_pressed() then + self.sonic_activation_start = self.sonic_activation_start or CurTime() + if CurTime() - self.sonic_activation_start > 0.5 then + moving = true + end + elseif self.sonic_activation_start then + self.sonic_activation_start = nil + end + + local move = (not a.stop_anywhere) or moving + + if moving then + self.last_moved = CurTime() + end + + local moved_recently = CurTime() - (self.last_moved or 0) < 0.1 + + if moving and self.SoundLoop and not self.use_sound then + self.use_sound = CreateSound(self, self.SoundLoop) + self.use_sound:SetSoundLevel(90) + self.use_sound:ChangeVolume(self.SoundLoopVolume or 0.75) + self.use_sound:Play() + elseif self.use_sound and not moved_recently then + self.use_sound:Stop() + self.use_sound = nil + + if self.SoundStop then + self:EmitSound(self.SoundStop) + end + end + + TARDIS.DoPartAnimation(self, move, a, target, moving) + else + TARDIS.DoPartAnimation(self, true, a, target, false) + end + + elseif a.type == "custom" then + a.custom_func(self, a) + end +end + local overrides={ ["Draw"]={TARDIS.DrawOverride, CLIENT}, ["Initialize"]={function(self) - if self.Animate then - self.posepos=0 + if CLIENT then + if self.Animate then + self.AnimateOptions = self.AnimateOptions or {} + + -- supporting old format + if self.AnimateSpeed then + self.AnimateOptions.Speed = self.AnimateSpeed + end + + self.animation = TARDIS.InitAnimation(self, self.AnimateOptions) + + if self.ExtraAnimations then + self.extra_animations = {} + for k,v in pairs(self.ExtraAnimations) do + self.extra_animations[k] = TARDIS.InitAnimation(self, v) + end + end + end + net.Start("TARDIS-SetupPart") + net.WriteEntity(self) + net.SendToServer() + else + if not IsValid(self.exterior) then + self:Remove() + return + end + self.o.Initialize(self) end - net.Start("TARDIS-SetupPart") - net.WriteEntity(self) - net.SendToServer() - end, CLIENT}, + end, CLIENT or SERVER}, ["Think"]={function(self) local int=self.interior local ext=self.exterior @@ -68,16 +254,27 @@ local overrides={ if think_ok or self.ExteriorPart or is_visible_through_door() then if self.Animate then - local target=self:GetOn() and 1 or 0 - self.posepos=math.Approach(self.posepos,target,FrameTime()*(self.AnimateSpeed or 1.5)) - self:SetPoseParameter("switch",self.posepos) - self:InvalidateBoneCache() + TARDIS.ProcessAnimation(self, self.animation) + + if self.extra_animations then + for k,v in pairs(self.extra_animations) do + TARDIS.ProcessAnimation(self, v) + end + end end return self.o.Think(self) end end end, CLIENT}, ["Use"]={function(self,a,...) + if SERVER and TARDIS.debug_tips and self.InteriorPart then + return TARDIS.DebugTipsFunction(self, a, ...) + end + + if SERVER then + self.parent:SendMessage("part_use", {self, a, ...}) + end + local call=false local res if (not self.NoStrictUse) and IsValid(a) and a:IsPlayer() and a:GetEyeTraceNoCursor().Entity~=self then return end @@ -89,7 +286,9 @@ local overrides={ end if self.PowerOffUse == false and not self.interior:GetPower() then - TARDIS:ErrorMessage(a, "Common.PowerDisabledControl") + if SERVER then + TARDIS:ErrorMessage(a, "Common.PowerDisabledControl") + end else if allowed~=false then if self.HasUseBasic then @@ -108,12 +307,24 @@ local overrides={ if self.PowerOffSound ~= false or self.interior:GetPower() then local part_sound = nil - if self.SoundOff and on then - part_sound = self.SoundOff - elseif self.SoundOn and (not on) then - part_sound = self.SoundOn - elseif self.Sound then - part_sound = self.Sound + if not self.exterior:GetPower() then + if self.SoundOffNoPower and on then + part_sound = self.SoundOffNoPower + elseif self.SoundOnNoPower and (not on) then + part_sound = self.SoundOnNoPower + elseif self.SoundNoPower then + part_sound = self.SoundNoPower + end + end + + if part_sound == nil then + if self.SoundOff and on then + part_sound = self.SoundOff + elseif self.SoundOn and (not on) then + part_sound = self.SoundOn + elseif self.Sound then + part_sound = self.Sound + end end if part_sound and self.SoundPos then @@ -132,6 +343,12 @@ local overrides={ end return res end, SERVER or CLIENT}, + ["OnRemove"]={function(self,a,...) + if self.use_sound then + self.use_sound:Stop() + self.use_sound = nil + end + end, CLIENT}, } function SetupOverrides(e) @@ -163,6 +380,7 @@ end local overridequeue={} postinit=postinit or false -- local vars cannot stay on autorefresh + function TARDIS:AddPart(e) local source = debug.getinfo(2).short_src @@ -173,6 +391,11 @@ function TARDIS:AddPart(e) if parts[e.ID] and parts[e.ID].source ~= source then error("Duplicate part ID registered: " .. e.ID .. " (exists in both " .. parts[e.ID].source .. " and " .. source .. ")") end + + if not e.Name then + e.Name = e.ID -- most creators just copy the ID anyway + end + e=table.Copy(e) e.HasUseBasic = e.UseBasic ~= nil e.HasUse = e.Use ~= nil @@ -320,6 +543,9 @@ if SERVER then end SetupPartMetadataControl(e) + if e.EnabledOnStart then + e:SetOn(true) + end if e.enabled==false then e:Remove() @@ -365,6 +591,9 @@ else end SetupPartMetadataControl(e) + if e.EnabledOnStart then + e:SetOn(true) + end if not parent.parts then parent.parts={} end parent.parts[name]=e diff --git a/lua/tardis/themes/visgui/theme-default.lua b/lua/tardis/themes/visgui/theme-default.lua index 0bce607d1..9e50fc202 100644 --- a/lua/tardis/themes/visgui/theme-default.lua +++ b/lua/tardis/themes/visgui/theme-default.lua @@ -15,9 +15,9 @@ local theme = { subfolder = "backgrounds", default = "console.png", virtualconsole = "console.png", - coordinates = "console.png", + coordinates = "default.png", music = "console.png", - main = "default.png", + main = "console.png", }, text_icons_off = { subfolder = "off", diff --git a/lua/weapons/tardis_hands.lua b/lua/weapons/tardis_hands.lua index 80c04c41f..f970bf033 100644 --- a/lua/weapons/tardis_hands.lua +++ b/lua/weapons/tardis_hands.lua @@ -40,4 +40,4 @@ function SWEP:PrimaryAttack() end function SWEP:SecondaryAttack() -end \ No newline at end of file +end \ No newline at end of file diff --git a/materials/models/cem/toyota_contr/console.vmt b/materials/models/cem/toyota_contr/console.vmt new file mode 100644 index 000000000..79b9b01b2 --- /dev/null +++ b/materials/models/cem/toyota_contr/console.vmt @@ -0,0 +1,28 @@ +"VertexlitGeneric" +{ + "$basetexture" "models/cem/toyota_contr/console1" + "$bumpmap" "models/cem/toyota_contr/metal_normal" + "$normalmapalphaenvmapmask" "1" + "$surfaceprop" "Metal" + "$nodecal" "1" + + "$color2" "[1.35 1.35 1.35]" + +// "$envmap" "models/cem/toyota_contr/environment" + "$envmaptint" "[0.4 0.41 0.41]" + + $phong 1 + $phongexponent 25 + $phongboost 1 + $phongtint "[ 0.125 0.425 0.325 ]" + $phongfresnelranges "[0.35 0.5 1]" + + "$detail" "detail/metal_detail_01" + "$detailscale" "20.4" + "$detailblendfactor" "0.3" + "$detailblendmode" "0" + + $rimlight "1" + $rimlightexponent "5" + $rimlightboost "5" +} diff --git a/materials/models/cem/toyota_contr/console1.vtf b/materials/models/cem/toyota_contr/console1.vtf new file mode 100644 index 000000000..a30aa3eef Binary files /dev/null and b/materials/models/cem/toyota_contr/console1.vtf differ diff --git a/materials/models/cem/toyota_contr/details.vmt b/materials/models/cem/toyota_contr/details.vmt new file mode 100644 index 000000000..bfbf2ba99 --- /dev/null +++ b/materials/models/cem/toyota_contr/details.vmt @@ -0,0 +1,13 @@ +"VertexlitGeneric" +{ + "$basetexture" "models/cem/toyota_contr/details" + "$bumpmap" "models/cem/toyota_contr/details_normal" + "$surfaceprop" "Metal" + "$nodecal" "1" + + $phong 1 + $phongexponent 15 + $phongboost 3 + $phongtint "[ .35 .35 .35 ]" + $phongfresnelranges "[0.05 0.5 1]" +} diff --git a/materials/models/cem/toyota_contr/details.vtf b/materials/models/cem/toyota_contr/details.vtf new file mode 100644 index 000000000..277b2a274 Binary files /dev/null and b/materials/models/cem/toyota_contr/details.vtf differ diff --git a/materials/models/cem/toyota_contr/details_normal.vtf b/materials/models/cem/toyota_contr/details_normal.vtf new file mode 100644 index 000000000..c6ab04481 Binary files /dev/null and b/materials/models/cem/toyota_contr/details_normal.vtf differ diff --git a/materials/models/cem/toyota_contr/detailsm.vmt b/materials/models/cem/toyota_contr/detailsm.vmt new file mode 100644 index 000000000..4dce45022 --- /dev/null +++ b/materials/models/cem/toyota_contr/detailsm.vmt @@ -0,0 +1,29 @@ +"VertexlitGeneric" +{ + "$basetexture" "models/cem/toyota_contr/details" + "$bumpmap" "models/cem/toyota_contr/metal_normal" + "$normalmapalphaenvmapmask" "1" + "$surfaceprop" "Metal" + "$nodecal" "1" + "$envmap" "models/cem/toyota_contr/metal_env" + "$envmaptint" "[0.35 0.35 0.35]" + "$color2" "[0.65 0.65 0.65]" + + $phong 1 + $phongexponent 75 + $phongboost 5 +// $phongtint "[ .35 .35 .35 ]" + $phongfresnelranges "[0.05 0.5 1]" + + $envmaptint_on "[0.35 0.35 0.35]" + $envmaptint_off "[0.05 0.05 0.05]" + + "Proxies" + { + TARDIS_Power { + onVar "$envmaptint_on" + offVar "$envmaptint_off" + resultVar "$envmaptint" + } + } +} diff --git a/materials/models/cem/toyota_contr/glass_normal.vtf b/materials/models/cem/toyota_contr/glass_normal.vtf new file mode 100644 index 000000000..292de2ec2 Binary files /dev/null and b/materials/models/cem/toyota_contr/glass_normal.vtf differ diff --git a/materials/models/cem/toyota_contr/metal_env.vtf b/materials/models/cem/toyota_contr/metal_env.vtf new file mode 100644 index 000000000..edbbb266d Binary files /dev/null and b/materials/models/cem/toyota_contr/metal_env.vtf differ diff --git a/materials/models/cem/toyota_contr/metal_normal.vtf b/materials/models/cem/toyota_contr/metal_normal.vtf new file mode 100644 index 000000000..98b227a26 Binary files /dev/null and b/materials/models/cem/toyota_contr/metal_normal.vtf differ diff --git a/materials/models/cem/toyota_contr/newswitches.vmt b/materials/models/cem/toyota_contr/newswitches.vmt new file mode 100644 index 000000000..6ea0d2049 --- /dev/null +++ b/materials/models/cem/toyota_contr/newswitches.vmt @@ -0,0 +1,26 @@ +"VertexlitGeneric" +{ + "$basetexture" "models/cem/toyota_contr/newswitches" + "$bumpmap" "models/cem/toyota_contr/metal_normal" + "$nodecal" "1" + "$surfaceprop" "Metal" + "$color2" "[0.5 0.5 0.5]" + + "$envmap" "models/cem/toyota_contr/metal_env" + "$envmaptint" "[0.25 0.375 0.5]" + + $phong 1 + $phongexponent 75 + $phongboost 15 + $phongtint "[ .35 .35 .35 ]" + $phongfresnelranges "[0.05 0.5 1]" + + "$detail" "detail/metal_detail_01" + "$detailscale" "4.283" + "$detailblendfactor" "0.2" + "$detailblendmode" "0" + + $rimlight "1" + $rimlightexponent "25" + $rimlightboost "0.15" +} diff --git a/materials/models/cem/toyota_contr/newswitches.vtf b/materials/models/cem/toyota_contr/newswitches.vtf new file mode 100644 index 000000000..726acdbb2 Binary files /dev/null and b/materials/models/cem/toyota_contr/newswitches.vtf differ diff --git a/materials/models/cem/toyota_contr/screen.vmt b/materials/models/cem/toyota_contr/screen.vmt new file mode 100644 index 000000000..cce708df6 --- /dev/null +++ b/materials/models/cem/toyota_contr/screen.vmt @@ -0,0 +1,32 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/cem/toyota_contr/screen" + "$bumpmap" "models/cem/toyota_contr/glass_normal" + "$selfillum" 1 + "$selfillummask" "models/cem/toyota_contr/white" + "$nodecal" "1" + + $phong 1 + $phongexponent 20 + $phongboost 0.15 + $phongfresnelranges "[1 1 1]" + + $selfillum_on "[1 1 1]" + $selfillum_off "[0 0 0]" + $color2_on "[1 1 1]" + $color2_off "[0 0 0]" + + "Proxies" + { + TARDIS_Power { + onVar "$selfillum_on" + offVar "$selfillum_off" + resultVar "$selfillumtint" + } + TARDIS_Power2 { + onVar "$color2_on" + offVar "$color2_off" + resultVar "$color2" + } + } +} diff --git a/materials/models/cem/toyota_contr/screen.vtf b/materials/models/cem/toyota_contr/screen.vtf new file mode 100644 index 000000000..5c3302270 Binary files /dev/null and b/materials/models/cem/toyota_contr/screen.vtf differ diff --git a/materials/models/cem/toyota_contr/white.vtf b/materials/models/cem/toyota_contr/white.vtf new file mode 100644 index 000000000..f0abe9887 Binary files /dev/null and b/materials/models/cem/toyota_contr/white.vtf differ diff --git a/materials/models/drmatt/tardis/ConsoleBack_DiffSpec.vmt b/materials/models/drmatt/tardis/ConsoleBack_DiffSpec.vmt deleted file mode 100644 index 7ae81f24e..000000000 --- a/materials/models/drmatt/tardis/ConsoleBack_DiffSpec.vmt +++ /dev/null @@ -1,6 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/ConsoleBack_DiffSpec" - "$translucent" 1 - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/ConsoleBack_DiffSpec.vtf b/materials/models/drmatt/tardis/ConsoleBack_DiffSpec.vtf deleted file mode 100644 index 2bec21a20..000000000 Binary files a/materials/models/drmatt/tardis/ConsoleBack_DiffSpec.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/ConsoleBack_refl.vmt b/materials/models/drmatt/tardis/ConsoleBack_refl.vmt deleted file mode 100644 index f0788b078..000000000 --- a/materials/models/drmatt/tardis/ConsoleBack_refl.vmt +++ /dev/null @@ -1,6 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/ConsoleBack_refl" - "$translucent" 1 - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/ConsoleBack_refl.vtf b/materials/models/drmatt/tardis/ConsoleBack_refl.vtf deleted file mode 100644 index 24046943f..000000000 Binary files a/materials/models/drmatt/tardis/ConsoleBack_refl.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/ConsoleBase_Normal.vmt b/materials/models/drmatt/tardis/ConsoleBase_Normal.vmt deleted file mode 100644 index 51096713e..000000000 --- a/materials/models/drmatt/tardis/ConsoleBase_Normal.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/ConsoleBase_Normal" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/ConsoleBase_Normal.vtf b/materials/models/drmatt/tardis/ConsoleBase_Normal.vtf deleted file mode 100644 index e4740b8b2..000000000 Binary files a/materials/models/drmatt/tardis/ConsoleBase_Normal.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/ConsoleFront_DiffSpec.vmt b/materials/models/drmatt/tardis/ConsoleFront_DiffSpec.vmt deleted file mode 100644 index 5f98f5815..000000000 --- a/materials/models/drmatt/tardis/ConsoleFront_DiffSpec.vmt +++ /dev/null @@ -1,6 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/ConsoleFront_DiffSpec" - "$translucent" 1 - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/ConsoleFront_DiffSpec.vtf b/materials/models/drmatt/tardis/ConsoleFront_DiffSpec.vtf deleted file mode 100644 index f9ecda0ba..000000000 Binary files a/materials/models/drmatt/tardis/ConsoleFront_DiffSpec.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/ConsoleGlass.vmt b/materials/models/drmatt/tardis/ConsoleGlass.vmt deleted file mode 100644 index 8635ff2fa..000000000 --- a/materials/models/drmatt/tardis/ConsoleGlass.vmt +++ /dev/null @@ -1,6 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/ConsoleGlass" - "$translucent" "1" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/ConsoleGlass.vtf b/materials/models/drmatt/tardis/ConsoleGlass.vtf deleted file mode 100644 index f314687c2..000000000 Binary files a/materials/models/drmatt/tardis/ConsoleGlass.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Console_Base_Ao.vmt b/materials/models/drmatt/tardis/Console_Base_Ao.vmt deleted file mode 100644 index 03f1bf896..000000000 --- a/materials/models/drmatt/tardis/Console_Base_Ao.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Console_Base_Ao" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Console_Base_Ao.vtf b/materials/models/drmatt/tardis/Console_Base_Ao.vtf deleted file mode 100644 index 354abe16b..000000000 Binary files a/materials/models/drmatt/tardis/Console_Base_Ao.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Console_Base_DiffSpec.vmt b/materials/models/drmatt/tardis/Console_Base_DiffSpec.vmt deleted file mode 100644 index 0c3fd5273..000000000 --- a/materials/models/drmatt/tardis/Console_Base_DiffSpec.vmt +++ /dev/null @@ -1,6 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Console_Base_DiffSpec" - "$translucent" 1 - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Console_Base_DiffSpec.vtf b/materials/models/drmatt/tardis/Console_Base_DiffSpec.vtf deleted file mode 100644 index 03d58c732..000000000 Binary files a/materials/models/drmatt/tardis/Console_Base_DiffSpec.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Glass.vmt b/materials/models/drmatt/tardis/Glass.vmt deleted file mode 100644 index 98e6256a8..000000000 --- a/materials/models/drmatt/tardis/Glass.vmt +++ /dev/null @@ -1,6 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Glass" - "$translucent" "1" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Glass.vtf b/materials/models/drmatt/tardis/Glass.vtf deleted file mode 100644 index 23f0e5e98..000000000 Binary files a/materials/models/drmatt/tardis/Glass.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Glass2.vmt b/materials/models/drmatt/tardis/Glass2.vmt deleted file mode 100644 index 4a79d9c23..000000000 --- a/materials/models/drmatt/tardis/Glass2.vmt +++ /dev/null @@ -1,17 +0,0 @@ -"vertexlitgeneric" -{ - "$additive" 1 - - "$basetexture" "models\drmatt\tardis\Glass2" - "$envmap" "env_cubemap" - "$envmapcontrast" "1" - "$envmaptint" "[ 0.4 0.2 0 ]" - "$model" 1 - "$halflambert" 1 - "$bumpmap" "models\drmatt\tardis\Glass2_nm" - "$phong" "1" - "$phongexponent" "30" - "$phongboost" "0.1" - "$phongfresnelranges" "[ 8 4 8 ]" - -} diff --git a/materials/models/drmatt/tardis/Glass2.vtf b/materials/models/drmatt/tardis/Glass2.vtf deleted file mode 100644 index 7db6e5cca..000000000 Binary files a/materials/models/drmatt/tardis/Glass2.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Glass2_nm.vtf b/materials/models/drmatt/tardis/Glass2_nm.vtf deleted file mode 100644 index f2aa17122..000000000 Binary files a/materials/models/drmatt/tardis/Glass2_nm.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/SC_Floor_En.vmt b/materials/models/drmatt/tardis/SC_Floor_En.vmt deleted file mode 100644 index 8f2351549..000000000 --- a/materials/models/drmatt/tardis/SC_Floor_En.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/SC_Floor_En" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/SC_Floor_En.vtf b/materials/models/drmatt/tardis/SC_Floor_En.vtf deleted file mode 100644 index dd0768de0..000000000 Binary files a/materials/models/drmatt/tardis/SC_Floor_En.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/TardisConsole.vmt b/materials/models/drmatt/tardis/TardisConsole.vmt deleted file mode 100644 index 5d545c118..000000000 --- a/materials/models/drmatt/tardis/TardisConsole.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/TardisConsole" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/TardisConsole.vtf b/materials/models/drmatt/tardis/TardisConsole.vtf deleted file mode 100644 index 62c7caf91..000000000 Binary files a/materials/models/drmatt/tardis/TardisConsole.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/TardisConsoleFloor.vmt b/materials/models/drmatt/tardis/TardisConsoleFloor.vmt deleted file mode 100644 index 5033c9c8d..000000000 --- a/materials/models/drmatt/tardis/TardisConsoleFloor.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/TardisConsoleFloor" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/TardisConsoleFloor.vtf b/materials/models/drmatt/tardis/TardisConsoleFloor.vtf deleted file mode 100644 index e593b9d1c..000000000 Binary files a/materials/models/drmatt/tardis/TardisConsoleFloor.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/TardisCurveWall.vmt b/materials/models/drmatt/tardis/TardisCurveWall.vmt deleted file mode 100644 index 763e4de1c..000000000 --- a/materials/models/drmatt/tardis/TardisCurveWall.vmt +++ /dev/null @@ -1,6 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/TardisCurveWall" - "$nodecal" "1" - "$alphatest" 1 -} diff --git a/materials/models/drmatt/tardis/TardisCurveWall.vtf b/materials/models/drmatt/tardis/TardisCurveWall.vtf deleted file mode 100644 index 50ff9c774..000000000 Binary files a/materials/models/drmatt/tardis/TardisCurveWall.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/TardisCurveWall2.vmt b/materials/models/drmatt/tardis/TardisCurveWall2.vmt deleted file mode 100644 index 597211415..000000000 --- a/materials/models/drmatt/tardis/TardisCurveWall2.vmt +++ /dev/null @@ -1,6 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/TardisCurveWall2" - "$nodecal" "1" - "$alphatest" 1 -} diff --git a/materials/models/drmatt/tardis/TardisCurveWall2.vtf b/materials/models/drmatt/tardis/TardisCurveWall2.vtf deleted file mode 100644 index 699a119cd..000000000 Binary files a/materials/models/drmatt/tardis/TardisCurveWall2.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/TardisDoor_Dif.vmt b/materials/models/drmatt/tardis/TardisDoor_Dif.vmt deleted file mode 100644 index ccf774466..000000000 --- a/materials/models/drmatt/tardis/TardisDoor_Dif.vmt +++ /dev/null @@ -1,4 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/TardisDoor_Dif" -} diff --git a/materials/models/drmatt/tardis/TardisDoor_Dif.vtf b/materials/models/drmatt/tardis/TardisDoor_Dif.vtf deleted file mode 100644 index b83511a9a..000000000 Binary files a/materials/models/drmatt/tardis/TardisDoor_Dif.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/TardisDoor_Dif_Hurt.vmt b/materials/models/drmatt/tardis/TardisDoor_Dif_Hurt.vmt deleted file mode 100644 index 7731ca349..000000000 --- a/materials/models/drmatt/tardis/TardisDoor_Dif_Hurt.vmt +++ /dev/null @@ -1,4 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/TardisDoor_Dif_Hurt" -} diff --git a/materials/models/drmatt/tardis/TardisDoor_Dif_Hurt.vtf b/materials/models/drmatt/tardis/TardisDoor_Dif_Hurt.vtf deleted file mode 100644 index ef1ab69d7..000000000 Binary files a/materials/models/drmatt/tardis/TardisDoor_Dif_Hurt.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/TardisDoor_Dif_SmithOld.vmt b/materials/models/drmatt/tardis/TardisDoor_Dif_SmithOld.vmt deleted file mode 100644 index 5aaa1040e..000000000 --- a/materials/models/drmatt/tardis/TardisDoor_Dif_SmithOld.vmt +++ /dev/null @@ -1,4 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/TardisDoor_Dif_SmithOld" -} diff --git a/materials/models/drmatt/tardis/TardisDoor_Dif_SmithOld.vtf b/materials/models/drmatt/tardis/TardisDoor_Dif_SmithOld.vtf deleted file mode 100644 index d2244b7b4..000000000 Binary files a/materials/models/drmatt/tardis/TardisDoor_Dif_SmithOld.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/TardisDoor_Dif_Tennant.vmt b/materials/models/drmatt/tardis/TardisDoor_Dif_Tennant.vmt deleted file mode 100644 index 1e516ee9c..000000000 --- a/materials/models/drmatt/tardis/TardisDoor_Dif_Tennant.vmt +++ /dev/null @@ -1,4 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/TardisDoor_Dif_Tennant" -} diff --git a/materials/models/drmatt/tardis/TardisDoor_Dif_Tennant.vtf b/materials/models/drmatt/tardis/TardisDoor_Dif_Tennant.vtf deleted file mode 100644 index 5b2c41b16..000000000 Binary files a/materials/models/drmatt/tardis/TardisDoor_Dif_Tennant.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/TardisDoor_Em.vmt b/materials/models/drmatt/tardis/TardisDoor_Em.vmt deleted file mode 100644 index 29109b4ca..000000000 --- a/materials/models/drmatt/tardis/TardisDoor_Em.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/TardisDoor_Em" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/TardisDoor_Em.vtf b/materials/models/drmatt/tardis/TardisDoor_Em.vtf deleted file mode 100644 index 4112fd69e..000000000 Binary files a/materials/models/drmatt/tardis/TardisDoor_Em.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/TardisDoor_LightGlow.vmt b/materials/models/drmatt/tardis/TardisDoor_LightGlow.vmt deleted file mode 100644 index 3cbe65e2a..000000000 --- a/materials/models/drmatt/tardis/TardisDoor_LightGlow.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/TardisDoor_LightGlow" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/TardisDoor_LightGlow.vtf b/materials/models/drmatt/tardis/TardisDoor_LightGlow.vtf deleted file mode 100644 index 7624115b0..000000000 Binary files a/materials/models/drmatt/tardis/TardisDoor_LightGlow.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/TardisFloor.vmt b/materials/models/drmatt/tardis/TardisFloor.vmt deleted file mode 100644 index 056377cf9..000000000 --- a/materials/models/drmatt/tardis/TardisFloor.vmt +++ /dev/null @@ -1,7 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/TardisFloor" - "$bumpmap" "models/drmatt/tardis/TardisFloor_NM" - "$normalmapalphaenvmapmask" "0.5" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/TardisFloor.vtf b/materials/models/drmatt/tardis/TardisFloor.vtf deleted file mode 100644 index e57be5f3b..000000000 Binary files a/materials/models/drmatt/tardis/TardisFloor.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/TardisFloor_NM.vtf b/materials/models/drmatt/tardis/TardisFloor_NM.vtf deleted file mode 100644 index 2acc606ba..000000000 Binary files a/materials/models/drmatt/tardis/TardisFloor_NM.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/TardisMainColumn.vmt b/materials/models/drmatt/tardis/TardisMainColumn.vmt deleted file mode 100644 index 491ce6107..000000000 --- a/materials/models/drmatt/tardis/TardisMainColumn.vmt +++ /dev/null @@ -1,7 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/TardisMainColumn" - "$nodecal" "1" - "$envmap" env_cubemap - "$envmaptint" "[0.6 0.3 0]" -} diff --git a/materials/models/drmatt/tardis/TardisMainColumn.vtf b/materials/models/drmatt/tardis/TardisMainColumn.vtf deleted file mode 100644 index c28e8f291..000000000 Binary files a/materials/models/drmatt/tardis/TardisMainColumn.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/TardisMetal01.vmt b/materials/models/drmatt/tardis/TardisMetal01.vmt deleted file mode 100644 index 7072ee875..000000000 --- a/materials/models/drmatt/tardis/TardisMetal01.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/TardisMetal01" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/TardisMetal01.vtf b/materials/models/drmatt/tardis/TardisMetal01.vtf deleted file mode 100644 index dc71784a4..000000000 Binary files a/materials/models/drmatt/tardis/TardisMetal01.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/TardisMetal02_dif.vmt b/materials/models/drmatt/tardis/TardisMetal02_dif.vmt deleted file mode 100644 index 5db8cd434..000000000 --- a/materials/models/drmatt/tardis/TardisMetal02_dif.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/TardisMetal02_dif" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/TardisMetal02_dif.vtf b/materials/models/drmatt/tardis/TardisMetal02_dif.vtf deleted file mode 100644 index 3f77966c3..000000000 Binary files a/materials/models/drmatt/tardis/TardisMetal02_dif.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/TardisMetal02_norm.vmt b/materials/models/drmatt/tardis/TardisMetal02_norm.vmt deleted file mode 100644 index 601192342..000000000 --- a/materials/models/drmatt/tardis/TardisMetal02_norm.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/TardisMetal02_norm" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/TardisMetal02_norm.vtf b/materials/models/drmatt/tardis/TardisMetal02_norm.vtf deleted file mode 100644 index 23e663d41..000000000 Binary files a/materials/models/drmatt/tardis/TardisMetal02_norm.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/TardisMetal03_Dif.vmt b/materials/models/drmatt/tardis/TardisMetal03_Dif.vmt deleted file mode 100644 index 73dab3236..000000000 --- a/materials/models/drmatt/tardis/TardisMetal03_Dif.vmt +++ /dev/null @@ -1,7 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/TardisMetal03_Dif" - "$nodecal" "1" - "$envmap" env_cubemap - "$envmaptint" "[0.6 0.3 0]" -} \ No newline at end of file diff --git a/materials/models/drmatt/tardis/TardisMetal03_Dif.vtf b/materials/models/drmatt/tardis/TardisMetal03_Dif.vtf deleted file mode 100644 index 071c5bc5f..000000000 Binary files a/materials/models/drmatt/tardis/TardisMetal03_Dif.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/TardisMetal03_Spec.vmt b/materials/models/drmatt/tardis/TardisMetal03_Spec.vmt deleted file mode 100644 index 1bedb6fb0..000000000 --- a/materials/models/drmatt/tardis/TardisMetal03_Spec.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/TardisMetal03_Spec" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/TardisMetal03_Spec.vtf b/materials/models/drmatt/tardis/TardisMetal03_Spec.vtf deleted file mode 100644 index 333a75f21..000000000 Binary files a/materials/models/drmatt/tardis/TardisMetal03_Spec.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/TardisMetalPanel_Dif.vmt b/materials/models/drmatt/tardis/TardisMetalPanel_Dif.vmt deleted file mode 100644 index 781b76eb9..000000000 --- a/materials/models/drmatt/tardis/TardisMetalPanel_Dif.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/TardisMetalPanel_Dif" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/TardisMetalPanel_Dif.vtf b/materials/models/drmatt/tardis/TardisMetalPanel_Dif.vtf deleted file mode 100644 index a85520a79..000000000 Binary files a/materials/models/drmatt/tardis/TardisMetalPanel_Dif.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/TardisMetalPanel_NRM.vmt b/materials/models/drmatt/tardis/TardisMetalPanel_NRM.vmt deleted file mode 100644 index cb6210bf6..000000000 --- a/materials/models/drmatt/tardis/TardisMetalPanel_NRM.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/TardisMetalPanel_NRM" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/TardisMetalPanel_NRM.vtf b/materials/models/drmatt/tardis/TardisMetalPanel_NRM.vtf deleted file mode 100644 index c6d9bca1e..000000000 Binary files a/materials/models/drmatt/tardis/TardisMetalPanel_NRM.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/TardisMetalPanel_Spec.vmt b/materials/models/drmatt/tardis/TardisMetalPanel_Spec.vmt deleted file mode 100644 index ca15778d4..000000000 --- a/materials/models/drmatt/tardis/TardisMetalPanel_Spec.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/TardisMetalPanel_Spec" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/TardisMetalPanel_Spec.vtf b/materials/models/drmatt/tardis/TardisMetalPanel_Spec.vtf deleted file mode 100644 index 3cfed0463..000000000 Binary files a/materials/models/drmatt/tardis/TardisMetalPanel_Spec.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/TardisMetalParts_Dif.vmt b/materials/models/drmatt/tardis/TardisMetalParts_Dif.vmt deleted file mode 100644 index 0771f46a9..000000000 --- a/materials/models/drmatt/tardis/TardisMetalParts_Dif.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/TardisMetalParts_Dif" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/TardisMetalParts_Dif.vtf b/materials/models/drmatt/tardis/TardisMetalParts_Dif.vtf deleted file mode 100644 index 91d43bd09..000000000 Binary files a/materials/models/drmatt/tardis/TardisMetalParts_Dif.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/TardisMetalParts_Spec.vmt b/materials/models/drmatt/tardis/TardisMetalParts_Spec.vmt deleted file mode 100644 index ddad146c1..000000000 --- a/materials/models/drmatt/tardis/TardisMetalParts_Spec.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/TardisMetalParts_Spec" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/TardisMetalParts_Spec.vtf b/materials/models/drmatt/tardis/TardisMetalParts_Spec.vtf deleted file mode 100644 index 4bd58bfe6..000000000 Binary files a/materials/models/drmatt/tardis/TardisMetalParts_Spec.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/TardisMonitor.vmt b/materials/models/drmatt/tardis/TardisMonitor.vmt deleted file mode 100644 index da7f0994f..000000000 --- a/materials/models/drmatt/tardis/TardisMonitor.vmt +++ /dev/null @@ -1,7 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/TardisMonitor" - "$translucent" 1 - "$nodecal" "1" - "$selfillum" 1 -} diff --git a/materials/models/drmatt/tardis/TardisMonitor.vtf b/materials/models/drmatt/tardis/TardisMonitor.vtf deleted file mode 100644 index b91615974..000000000 Binary files a/materials/models/drmatt/tardis/TardisMonitor.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/TardisPipes_Spec.vmt b/materials/models/drmatt/tardis/TardisPipes_Spec.vmt deleted file mode 100644 index 8ab1281a5..000000000 --- a/materials/models/drmatt/tardis/TardisPipes_Spec.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/TardisPipes_Spec" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/TardisPipes_Spec.vtf b/materials/models/drmatt/tardis/TardisPipes_Spec.vtf deleted file mode 100644 index 452d36d6f..000000000 Binary files a/materials/models/drmatt/tardis/TardisPipes_Spec.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/TardisRings.vmt b/materials/models/drmatt/tardis/TardisRings.vmt deleted file mode 100644 index 77794127c..000000000 --- a/materials/models/drmatt/tardis/TardisRings.vmt +++ /dev/null @@ -1,7 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/TardisRings" - "$nodecal" "1" - "$envmap" env_cubemap - "$envmaptint" "[0.6 0.3 0]" -} diff --git a/materials/models/drmatt/tardis/TardisRings.vtf b/materials/models/drmatt/tardis/TardisRings.vtf deleted file mode 100644 index 72aa9b82a..000000000 Binary files a/materials/models/drmatt/tardis/TardisRings.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/TardisScanner.vmt b/materials/models/drmatt/tardis/TardisScanner.vmt deleted file mode 100644 index 05a4f718b..000000000 --- a/materials/models/drmatt/tardis/TardisScanner.vmt +++ /dev/null @@ -1,7 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/TardisScanner" - "$model" 1 - "$nodecal" 1 - "$selfillum" 1 -} diff --git a/materials/models/drmatt/tardis/TardisScanner.vtf b/materials/models/drmatt/tardis/TardisScanner.vtf deleted file mode 100644 index d133597de..000000000 Binary files a/materials/models/drmatt/tardis/TardisScanner.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/TardisStairs.vmt b/materials/models/drmatt/tardis/TardisStairs.vmt deleted file mode 100644 index 588bd6d45..000000000 --- a/materials/models/drmatt/tardis/TardisStairs.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/TardisStairs" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/TardisStairs.vtf b/materials/models/drmatt/tardis/TardisStairs.vtf deleted file mode 100644 index e593b9d1c..000000000 Binary files a/materials/models/drmatt/tardis/TardisStairs.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/TardisWood_02_Dif.vmt b/materials/models/drmatt/tardis/TardisWood_02_Dif.vmt deleted file mode 100644 index af221f22b..000000000 --- a/materials/models/drmatt/tardis/TardisWood_02_Dif.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/TardisWood_02_Dif" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/TardisWood_02_Dif.vtf b/materials/models/drmatt/tardis/TardisWood_02_Dif.vtf deleted file mode 100644 index 5bec14d90..000000000 Binary files a/materials/models/drmatt/tardis/TardisWood_02_Dif.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/TardisWood_02_Spec.vmt b/materials/models/drmatt/tardis/TardisWood_02_Spec.vmt deleted file mode 100644 index 12448dc91..000000000 --- a/materials/models/drmatt/tardis/TardisWood_02_Spec.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/TardisWood_02_Spec" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/TardisWood_02_Spec.vtf b/materials/models/drmatt/tardis/TardisWood_02_Spec.vtf deleted file mode 100644 index 1780c0156..000000000 Binary files a/materials/models/drmatt/tardis/TardisWood_02_Spec.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Tardis_CabBL.vmt b/materials/models/drmatt/tardis/Tardis_CabBL.vmt deleted file mode 100644 index cd3779fde..000000000 --- a/materials/models/drmatt/tardis/Tardis_CabBL.vmt +++ /dev/null @@ -1,6 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Tardis_CabBL" - "$translucent" 1 - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Tardis_CabBL.vtf b/materials/models/drmatt/tardis/Tardis_CabBL.vtf deleted file mode 100644 index b4351363b..000000000 Binary files a/materials/models/drmatt/tardis/Tardis_CabBL.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Tardis_Cables.vmt b/materials/models/drmatt/tardis/Tardis_Cables.vmt deleted file mode 100644 index 5e68f23bd..000000000 --- a/materials/models/drmatt/tardis/Tardis_Cables.vmt +++ /dev/null @@ -1,6 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Tardis_Cables" - "$translucent" 1 - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Tardis_Cables.vtf b/materials/models/drmatt/tardis/Tardis_Cables.vtf deleted file mode 100644 index 859c5c509..000000000 Binary files a/materials/models/drmatt/tardis/Tardis_Cables.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Tardis_Console_I1.vmt b/materials/models/drmatt/tardis/Tardis_Console_I1.vmt deleted file mode 100644 index 42e083e9d..000000000 --- a/materials/models/drmatt/tardis/Tardis_Console_I1.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Tardis_Console_I1" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Tardis_Console_I1.vtf b/materials/models/drmatt/tardis/Tardis_Console_I1.vtf deleted file mode 100644 index 6ca030f1b..000000000 Binary files a/materials/models/drmatt/tardis/Tardis_Console_I1.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Tardis_Console_I13.vmt b/materials/models/drmatt/tardis/Tardis_Console_I13.vmt deleted file mode 100644 index 0f610cbfa..000000000 --- a/materials/models/drmatt/tardis/Tardis_Console_I13.vmt +++ /dev/null @@ -1,6 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Tardis_Console_I13" - "$translucent" 1 - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Tardis_Console_I13.vtf b/materials/models/drmatt/tardis/Tardis_Console_I13.vtf deleted file mode 100644 index 6362e2013..000000000 Binary files a/materials/models/drmatt/tardis/Tardis_Console_I13.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Tardis_Console_I1C.vmt b/materials/models/drmatt/tardis/Tardis_Console_I1C.vmt deleted file mode 100644 index 5447b8f52..000000000 --- a/materials/models/drmatt/tardis/Tardis_Console_I1C.vmt +++ /dev/null @@ -1,6 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Tardis_Console_I1C" - "$translucent" 1 - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Tardis_Console_I1C.vtf b/materials/models/drmatt/tardis/Tardis_Console_I1C.vtf deleted file mode 100644 index 1ab8a02fc..000000000 Binary files a/materials/models/drmatt/tardis/Tardis_Console_I1C.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Tardis_Console_I23.vmt b/materials/models/drmatt/tardis/Tardis_Console_I23.vmt deleted file mode 100644 index 4839fc0d9..000000000 --- a/materials/models/drmatt/tardis/Tardis_Console_I23.vmt +++ /dev/null @@ -1,6 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Tardis_Console_I23" - "$translucent" 1 - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Tardis_Console_I23.vtf b/materials/models/drmatt/tardis/Tardis_Console_I23.vtf deleted file mode 100644 index 30b100768..000000000 Binary files a/materials/models/drmatt/tardis/Tardis_Console_I23.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Tardis_Console_I26.vmt b/materials/models/drmatt/tardis/Tardis_Console_I26.vmt deleted file mode 100644 index 23eaebff2..000000000 --- a/materials/models/drmatt/tardis/Tardis_Console_I26.vmt +++ /dev/null @@ -1,6 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Tardis_Console_I26" - "$translucent" 1 - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Tardis_Console_I26.vtf b/materials/models/drmatt/tardis/Tardis_Console_I26.vtf deleted file mode 100644 index edb89f78f..000000000 Binary files a/materials/models/drmatt/tardis/Tardis_Console_I26.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Tardis_Console_I2B.vmt b/materials/models/drmatt/tardis/Tardis_Console_I2B.vmt deleted file mode 100644 index 381c84448..000000000 --- a/materials/models/drmatt/tardis/Tardis_Console_I2B.vmt +++ /dev/null @@ -1,7 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Tardis_Console_I2B" - "$translucent" 1 - "$nodecal" "1" - "$selfillum" "1" -} diff --git a/materials/models/drmatt/tardis/Tardis_Console_I2B.vtf b/materials/models/drmatt/tardis/Tardis_Console_I2B.vtf deleted file mode 100644 index aafd83447..000000000 Binary files a/materials/models/drmatt/tardis/Tardis_Console_I2B.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Tardis_Console_I30.vmt b/materials/models/drmatt/tardis/Tardis_Console_I30.vmt deleted file mode 100644 index 492613a6d..000000000 --- a/materials/models/drmatt/tardis/Tardis_Console_I30.vmt +++ /dev/null @@ -1,6 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Tardis_Console_I30" - "$translucent" 1 - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Tardis_Console_I30.vtf b/materials/models/drmatt/tardis/Tardis_Console_I30.vtf deleted file mode 100644 index 9a991a650..000000000 Binary files a/materials/models/drmatt/tardis/Tardis_Console_I30.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Tardis_Console_I3C.vmt b/materials/models/drmatt/tardis/Tardis_Console_I3C.vmt deleted file mode 100644 index 0f610cbfa..000000000 --- a/materials/models/drmatt/tardis/Tardis_Console_I3C.vmt +++ /dev/null @@ -1,6 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Tardis_Console_I13" - "$translucent" 1 - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Tardis_Console_I4.vmt b/materials/models/drmatt/tardis/Tardis_Console_I4.vmt deleted file mode 100644 index 9c6f0663c..000000000 --- a/materials/models/drmatt/tardis/Tardis_Console_I4.vmt +++ /dev/null @@ -1,6 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Tardis_Console_I4" - "$translucent" 1 - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Tardis_Console_I4.vtf b/materials/models/drmatt/tardis/Tardis_Console_I4.vtf deleted file mode 100644 index 9eac7cf0f..000000000 Binary files a/materials/models/drmatt/tardis/Tardis_Console_I4.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Tardis_Console_I6.vmt b/materials/models/drmatt/tardis/Tardis_Console_I6.vmt deleted file mode 100644 index e2edf3036..000000000 --- a/materials/models/drmatt/tardis/Tardis_Console_I6.vmt +++ /dev/null @@ -1,6 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Tardis_Console_I6" - "$translucent" 1 - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Tardis_Console_I6.vtf b/materials/models/drmatt/tardis/Tardis_Console_I6.vtf deleted file mode 100644 index 0078868db..000000000 Binary files a/materials/models/drmatt/tardis/Tardis_Console_I6.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Tardis_Console_IE.vmt b/materials/models/drmatt/tardis/Tardis_Console_IE.vmt deleted file mode 100644 index 08f810c79..000000000 --- a/materials/models/drmatt/tardis/Tardis_Console_IE.vmt +++ /dev/null @@ -1,6 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Tardis_Console_IE" - "$translucent" 1 - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Tardis_Console_IE.vtf b/materials/models/drmatt/tardis/Tardis_Console_IE.vtf deleted file mode 100644 index cb03e89bf..000000000 Binary files a/materials/models/drmatt/tardis/Tardis_Console_IE.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Tardis_Hole01_Dif.vmt b/materials/models/drmatt/tardis/Tardis_Hole01_Dif.vmt deleted file mode 100644 index f59da076a..000000000 --- a/materials/models/drmatt/tardis/Tardis_Hole01_Dif.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Tardis_Hole01_Dif" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Tardis_Hole01_Dif.vtf b/materials/models/drmatt/tardis/Tardis_Hole01_Dif.vtf deleted file mode 100644 index 84cea003d..000000000 Binary files a/materials/models/drmatt/tardis/Tardis_Hole01_Dif.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Tardis_Hole01_Em.vmt b/materials/models/drmatt/tardis/Tardis_Hole01_Em.vmt deleted file mode 100644 index 9b958a7cf..000000000 --- a/materials/models/drmatt/tardis/Tardis_Hole01_Em.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Tardis_Hole01_Em" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Tardis_Hole01_Em.vtf b/materials/models/drmatt/tardis/Tardis_Hole01_Em.vtf deleted file mode 100644 index d7f9d20a0..000000000 Binary files a/materials/models/drmatt/tardis/Tardis_Hole01_Em.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Tardis_Hole01_NM.vmt b/materials/models/drmatt/tardis/Tardis_Hole01_NM.vmt deleted file mode 100644 index 727c7a177..000000000 --- a/materials/models/drmatt/tardis/Tardis_Hole01_NM.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Tardis_Hole01_NM" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Tardis_Hole01_NM.vtf b/materials/models/drmatt/tardis/Tardis_Hole01_NM.vtf deleted file mode 100644 index 9bb8eceda..000000000 Binary files a/materials/models/drmatt/tardis/Tardis_Hole01_NM.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Tardis_Hole02_Dif.vmt b/materials/models/drmatt/tardis/Tardis_Hole02_Dif.vmt deleted file mode 100644 index 8066c15d0..000000000 --- a/materials/models/drmatt/tardis/Tardis_Hole02_Dif.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Tardis_Hole02_Dif" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Tardis_Hole02_Dif.vtf b/materials/models/drmatt/tardis/Tardis_Hole02_Dif.vtf deleted file mode 100644 index f2547f79b..000000000 Binary files a/materials/models/drmatt/tardis/Tardis_Hole02_Dif.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Tardis_LightSmall_Dif.vmt b/materials/models/drmatt/tardis/Tardis_LightSmall_Dif.vmt deleted file mode 100644 index 8c0b47233..000000000 --- a/materials/models/drmatt/tardis/Tardis_LightSmall_Dif.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Tardis_LightSmall_Dif" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Tardis_LightSmall_Dif.vtf b/materials/models/drmatt/tardis/Tardis_LightSmall_Dif.vtf deleted file mode 100644 index 9763dcfdf..000000000 Binary files a/materials/models/drmatt/tardis/Tardis_LightSmall_Dif.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Tardis_LightSmall_Emis.vmt b/materials/models/drmatt/tardis/Tardis_LightSmall_Emis.vmt deleted file mode 100644 index da8c094ff..000000000 --- a/materials/models/drmatt/tardis/Tardis_LightSmall_Emis.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Tardis_LightSmall_Emis" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Tardis_LightSmall_Emis.vtf b/materials/models/drmatt/tardis/Tardis_LightSmall_Emis.vtf deleted file mode 100644 index bdde91e73..000000000 Binary files a/materials/models/drmatt/tardis/Tardis_LightSmall_Emis.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Tardis_Metal02_NM.vmt b/materials/models/drmatt/tardis/Tardis_Metal02_NM.vmt deleted file mode 100644 index dc46d79ff..000000000 --- a/materials/models/drmatt/tardis/Tardis_Metal02_NM.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Tardis_Metal02_NM" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Tardis_Metal02_NM.vtf b/materials/models/drmatt/tardis/Tardis_Metal02_NM.vtf deleted file mode 100644 index c109db46b..000000000 Binary files a/materials/models/drmatt/tardis/Tardis_Metal02_NM.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Tardis_Metal02_dif.vmt b/materials/models/drmatt/tardis/Tardis_Metal02_dif.vmt deleted file mode 100644 index fdf6bd6d3..000000000 --- a/materials/models/drmatt/tardis/Tardis_Metal02_dif.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Tardis_Metal02_dif" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Tardis_Metal02_dif.vtf b/materials/models/drmatt/tardis/Tardis_Metal02_dif.vtf deleted file mode 100644 index 005ebd567..000000000 Binary files a/materials/models/drmatt/tardis/Tardis_Metal02_dif.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Tardis_PlasticCilinder_dif.vmt b/materials/models/drmatt/tardis/Tardis_PlasticCilinder_dif.vmt deleted file mode 100644 index 0195d53e5..000000000 --- a/materials/models/drmatt/tardis/Tardis_PlasticCilinder_dif.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Tardis_PlasticCilinder_dif" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Tardis_PlasticCilinder_dif.vtf b/materials/models/drmatt/tardis/Tardis_PlasticCilinder_dif.vtf deleted file mode 100644 index e60c54bfc..000000000 Binary files a/materials/models/drmatt/tardis/Tardis_PlasticCilinder_dif.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Tardis_PlasticCilinder_emis.vmt b/materials/models/drmatt/tardis/Tardis_PlasticCilinder_emis.vmt deleted file mode 100644 index 6a98827c2..000000000 --- a/materials/models/drmatt/tardis/Tardis_PlasticCilinder_emis.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Tardis_PlasticCilinder_emis" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Tardis_PlasticCilinder_emis.vtf b/materials/models/drmatt/tardis/Tardis_PlasticCilinder_emis.vtf deleted file mode 100644 index f9b29e65b..000000000 Binary files a/materials/models/drmatt/tardis/Tardis_PlasticCilinder_emis.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Tardis_ReflectNew.vmt b/materials/models/drmatt/tardis/Tardis_ReflectNew.vmt deleted file mode 100644 index c2573042e..000000000 --- a/materials/models/drmatt/tardis/Tardis_ReflectNew.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Tardis_ReflectNew" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Tardis_ReflectNew.vtf b/materials/models/drmatt/tardis/Tardis_ReflectNew.vtf deleted file mode 100644 index bf12591d6..000000000 Binary files a/materials/models/drmatt/tardis/Tardis_ReflectNew.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Tardis_ReflectNew2.vmt b/materials/models/drmatt/tardis/Tardis_ReflectNew2.vmt deleted file mode 100644 index df9e9025f..000000000 --- a/materials/models/drmatt/tardis/Tardis_ReflectNew2.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Tardis_ReflectNew2" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Tardis_ReflectNew2.vtf b/materials/models/drmatt/tardis/Tardis_ReflectNew2.vtf deleted file mode 100644 index 22890e588..000000000 Binary files a/materials/models/drmatt/tardis/Tardis_ReflectNew2.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Tardis_TV_Dif.vmt b/materials/models/drmatt/tardis/Tardis_TV_Dif.vmt deleted file mode 100644 index 4eea9637d..000000000 --- a/materials/models/drmatt/tardis/Tardis_TV_Dif.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Tardis_TV_Dif" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Tardis_TV_Dif.vtf b/materials/models/drmatt/tardis/Tardis_TV_Dif.vtf deleted file mode 100644 index 95fbe3280..000000000 Binary files a/materials/models/drmatt/tardis/Tardis_TV_Dif.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Tardis_TV_NM.vmt b/materials/models/drmatt/tardis/Tardis_TV_NM.vmt deleted file mode 100644 index c137e29c3..000000000 --- a/materials/models/drmatt/tardis/Tardis_TV_NM.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Tardis_TV_NM" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Tardis_TV_NM.vtf b/materials/models/drmatt/tardis/Tardis_TV_NM.vtf deleted file mode 100644 index 7509e0a56..000000000 Binary files a/materials/models/drmatt/tardis/Tardis_TV_NM.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Tardis_Wall01_Dif.vmt b/materials/models/drmatt/tardis/Tardis_Wall01_Dif.vmt deleted file mode 100644 index 93c97b6c8..000000000 --- a/materials/models/drmatt/tardis/Tardis_Wall01_Dif.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Tardis_Wall01_Dif" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Tardis_Wall01_Dif.vtf b/materials/models/drmatt/tardis/Tardis_Wall01_Dif.vtf deleted file mode 100644 index c27590de3..000000000 Binary files a/materials/models/drmatt/tardis/Tardis_Wall01_Dif.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Tardis_Wall01_NM.vmt b/materials/models/drmatt/tardis/Tardis_Wall01_NM.vmt deleted file mode 100644 index 5417f29b2..000000000 --- a/materials/models/drmatt/tardis/Tardis_Wall01_NM.vmt +++ /dev/null @@ -1,5 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Tardis_Wall01_NM" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Tardis_Wall01_NM.vtf b/materials/models/drmatt/tardis/Tardis_Wall01_NM.vtf deleted file mode 100644 index 9476605da..000000000 Binary files a/materials/models/drmatt/tardis/Tardis_Wall01_NM.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Tardis_chair_Dif.vmt b/materials/models/drmatt/tardis/Tardis_chair_Dif.vmt deleted file mode 100644 index 5dd1ebf7b..000000000 --- a/materials/models/drmatt/tardis/Tardis_chair_Dif.vmt +++ /dev/null @@ -1,6 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Tardis_chair_Dif" - "$bumpmap" "models/drmatt/tardis/Tardis_chair_NM" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/Tardis_chair_Dif.vtf b/materials/models/drmatt/tardis/Tardis_chair_Dif.vtf deleted file mode 100644 index cceea2f66..000000000 Binary files a/materials/models/drmatt/tardis/Tardis_chair_Dif.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/Tardis_chair_NM.vtf b/materials/models/drmatt/tardis/Tardis_chair_NM.vtf deleted file mode 100644 index d543ffc79..000000000 Binary files a/materials/models/drmatt/tardis/Tardis_chair_NM.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/TimeRotorGlass.vmt b/materials/models/drmatt/tardis/TimeRotorGlass.vmt deleted file mode 100644 index 98e6256a8..000000000 --- a/materials/models/drmatt/tardis/TimeRotorGlass.vmt +++ /dev/null @@ -1,6 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/Glass" - "$translucent" "1" - "$nodecal" "1" -} diff --git a/materials/models/drmatt/tardis/TimeRotorGlass.vtf b/materials/models/drmatt/tardis/TimeRotorGlass.vtf deleted file mode 100644 index d0611a446..000000000 Binary files a/materials/models/drmatt/tardis/TimeRotorGlass.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/black.vmt b/materials/models/drmatt/tardis/black.vmt deleted file mode 100644 index 7a40957a4..000000000 --- a/materials/models/drmatt/tardis/black.vmt +++ /dev/null @@ -1,4 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/black" -} diff --git a/materials/models/drmatt/tardis/black.vtf b/materials/models/drmatt/tardis/black.vtf deleted file mode 100644 index 7a3dd3511..000000000 Binary files a/materials/models/drmatt/tardis/black.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/white.vmt b/materials/models/drmatt/tardis/white.vmt deleted file mode 100644 index f6bc3ad81..000000000 --- a/materials/models/drmatt/tardis/white.vmt +++ /dev/null @@ -1,4 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/white" -} diff --git a/materials/models/drmatt/tardis/white.vtf b/materials/models/drmatt/tardis/white.vtf deleted file mode 100644 index ede378a2c..000000000 Binary files a/materials/models/drmatt/tardis/white.vtf and /dev/null differ diff --git a/materials/models/drmatt/tardis/white_grid.vmt b/materials/models/drmatt/tardis/white_grid.vmt deleted file mode 100644 index 0f3c4eeae..000000000 --- a/materials/models/drmatt/tardis/white_grid.vmt +++ /dev/null @@ -1,4 +0,0 @@ -"VertexLitGeneric" -{ - "$basetexture" "models/drmatt/tardis/white_grid" -} diff --git a/materials/models/drmatt/tardis/white_grid.vtf b/materials/models/drmatt/tardis/white_grid.vtf deleted file mode 100644 index 8adb7bf5b..000000000 Binary files a/materials/models/drmatt/tardis/white_grid.vtf and /dev/null differ diff --git a/materials/models/molda/toyota_int/black.vmt b/materials/models/molda/toyota_int/black.vmt new file mode 100644 index 000000000..9119662d3 --- /dev/null +++ b/materials/models/molda/toyota_int/black.vmt @@ -0,0 +1,10 @@ +"UnlitGeneric" +{ + "$basetexture" "models/molda/toyota_int/black" + + "$surfaceprop" "Metal" + + "$nodecal" "1" + "$nocull" "0" + +} diff --git a/materials/models/molda/toyota_int/black.vtf b/materials/models/molda/toyota_int/black.vtf new file mode 100644 index 000000000..6e4f66aea Binary files /dev/null and b/materials/models/molda/toyota_int/black.vtf differ diff --git a/materials/models/molda/toyota_int/bluepaint.vmt b/materials/models/molda/toyota_int/bluepaint.vmt new file mode 100644 index 000000000..2451cfa84 --- /dev/null +++ b/materials/models/molda/toyota_int/bluepaint.vmt @@ -0,0 +1,28 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/bluepaint" + + "$color2" "[0.9 0.9 0.8]" + + "$surfaceprop" "Metal" + + "$envmap" "models/molda/toyota_int/environment" + + "$envmaptint" "[0 0.4 0.8]" + "$envmapmask" "models/molda/toyota_int/smudge2N" + + "$nodecal" "1" + "$nocull" "0" + + $envmaptint_on "[0 0.4 0.8]" + $envmaptint_off "[0 0.1 0.2]" + + "Proxies" + { + TARDIS_Power2 { + onVar "$envmaptint_on" + offVar "$envmaptint_off" + resultVar "$envmaptint" + } + } +} diff --git a/materials/models/molda/toyota_int/bluepaint.vtf b/materials/models/molda/toyota_int/bluepaint.vtf new file mode 100644 index 000000000..92c328f32 Binary files /dev/null and b/materials/models/molda/toyota_int/bluepaint.vtf differ diff --git a/materials/models/molda/toyota_int/bulbs.vmt b/materials/models/molda/toyota_int/bulbs.vmt new file mode 100644 index 000000000..d724794bd --- /dev/null +++ b/materials/models/molda/toyota_int/bulbs.vmt @@ -0,0 +1,104 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/bulbs" + "$surfaceprop" "Metal" + + "$selfillum" 1 + "$selfillummask" "models/molda/toyota_int/white" + "$selfillumtint" "[1 1 1]" + + "$envmap" "models/molda/toyota_int/cubemap1" + "$envmaptint" "[0.5 0.5 0.5]" + + "$nodecal" "1" + "$nocull" "0" + + $speed 10 + $frame 0 + + $sine 1 + + $envmaptint_on "[0.5 0.5 0.5]" + $envmaptint_off "[0.05 0.05 0.05]" + $color2_on "[1 1 1]" + $color2_off "[0.3 0.3 0.3]" + + Proxies { + TARDIS_Power { + onVar "$envmaptint_on" + offVar "$envmaptint_off" + resultVar "$envmaptint" + } + TARDIS_Power2 { + onVar "$color2_on" + offVar "$color2_off" + resultVar "$color2" + } + TARDIS_State { + resultTextureVar $basetexture + resultFrameVar $frame + + textures { + idle "models/molda/toyota_int/bulbs" + handbrake "models/molda/toyota_int/bulbs" + interrupt "models/molda/toyota_int/bulbs_half" + demat_fail "models/molda/toyota_int/bulbs_warning" + mat_fail "models/molda/toyota_int/bulbs_travel_warning" + off "models/molda/toyota_int/bulbs_off" + travel "models/molda/toyota_int/bulbs_travel" + demat "models/molda/toyota_int/bulbs_travel" + mat "models/molda/toyota_int/bulbs_travel" + + idle_warning "models/molda/toyota_int/bulbs_warning" + handbrake_warning "models/molda/toyota_int/bulbs_warning_static" + interrupt_warning "models/molda/toyota_int/bulbs_warning" + demat_fail_warning "models/molda/toyota_int/bulbs_warning" + mat_fail_warning "models/molda/toyota_int/bulbs_travel_warning" + off_warning "models/molda/toyota_int/bulbs_off" + travel_warning "models/molda/toyota_int/bulbs_travel_warning" + demat_warning "models/molda/toyota_int/bulbs_travel_warning" + mat_warning "models/molda/toyota_int/bulbs_travel_warning" + } + frameRates { + idle 0 + handbrake 0 + interrupt 0 + demat_fail 30 + mat_fail 30 + off 0 + travel 10 + demat 55 + mat 50 + + idle_warning 10 + handbrake_warning 0 + interrupt_warning 10 + demat_fail_warning 40 + mat_fail_warning 40 + off_warning 0 + travel_warning 10 + demat_warning 40 + mat_warning 40 + } + } + Sine { + sineperiod 4 + sinemin 0.8 + sinemax 1 + resultVar $sine + } + Equals { + srcVar1 $sine + resultVar "$selfillumtint[0]" + } + Equals { + srcVar1 $sine + resultVar "$selfillumtint[1]" + } + Equals { + srcVar1 $sine + resultVar "$selfillumtint[2]" + } + } +} + diff --git a/materials/models/molda/toyota_int/bulbs.vtf b/materials/models/molda/toyota_int/bulbs.vtf new file mode 100644 index 000000000..a8eb669ff Binary files /dev/null and b/materials/models/molda/toyota_int/bulbs.vtf differ diff --git a/materials/models/molda/toyota_int/bulbs_half.vtf b/materials/models/molda/toyota_int/bulbs_half.vtf new file mode 100644 index 000000000..4d34f9f0b Binary files /dev/null and b/materials/models/molda/toyota_int/bulbs_half.vtf differ diff --git a/materials/models/molda/toyota_int/bulbs_off.vtf b/materials/models/molda/toyota_int/bulbs_off.vtf new file mode 100644 index 000000000..de161d934 Binary files /dev/null and b/materials/models/molda/toyota_int/bulbs_off.vtf differ diff --git a/materials/models/molda/toyota_int/bulbs_travel.vtf b/materials/models/molda/toyota_int/bulbs_travel.vtf new file mode 100644 index 000000000..eff1f8067 Binary files /dev/null and b/materials/models/molda/toyota_int/bulbs_travel.vtf differ diff --git a/materials/models/molda/toyota_int/bulbs_travel_warning.vtf b/materials/models/molda/toyota_int/bulbs_travel_warning.vtf new file mode 100644 index 000000000..2d936508d Binary files /dev/null and b/materials/models/molda/toyota_int/bulbs_travel_warning.vtf differ diff --git a/materials/models/molda/toyota_int/bulbs_warning.vtf b/materials/models/molda/toyota_int/bulbs_warning.vtf new file mode 100644 index 000000000..2a6d519bd Binary files /dev/null and b/materials/models/molda/toyota_int/bulbs_warning.vtf differ diff --git a/materials/models/molda/toyota_int/bulbs_warning_static.vtf b/materials/models/molda/toyota_int/bulbs_warning_static.vtf new file mode 100644 index 000000000..af8c1302a Binary files /dev/null and b/materials/models/molda/toyota_int/bulbs_warning_static.vtf differ diff --git a/materials/models/molda/toyota_int/cabinets.vmt b/materials/models/molda/toyota_int/cabinets.vmt new file mode 100644 index 000000000..822bbf33f --- /dev/null +++ b/materials/models/molda/toyota_int/cabinets.vmt @@ -0,0 +1,16 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/cabinets" + + "$color2" "[3 3 3]" + + "$envmap" "models/molda/toyota_int/environment" + "$envmaptint" "[0.7 0.5 0]" + "$envmapmask" "models/molda/toyota_int/smudgeN" + + "$surfaceprop" "Metal" + + "$nodecal" "1" + "$nocull" "0" + +} diff --git a/materials/models/molda/toyota_int/cabinets.vtf b/materials/models/molda/toyota_int/cabinets.vtf new file mode 100644 index 000000000..5dd5b73cb Binary files /dev/null and b/materials/models/molda/toyota_int/cabinets.vtf differ diff --git a/materials/models/molda/toyota_int/cables.vmt b/materials/models/molda/toyota_int/cables.vmt new file mode 100644 index 000000000..fd2006141 --- /dev/null +++ b/materials/models/molda/toyota_int/cables.vmt @@ -0,0 +1,13 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/cables" + + "$surfaceprop" "Metal" + + "$envmap" "models/molda/toyota_int/environment" + "$envmaptint" "[0.2 0.3 0.3]" + + + "$nodecal" "1" + "$nocull" "0" +} diff --git a/materials/models/molda/toyota_int/cables.vtf b/materials/models/molda/toyota_int/cables.vtf new file mode 100644 index 000000000..06b0ef64a Binary files /dev/null and b/materials/models/molda/toyota_int/cables.vtf differ diff --git a/materials/models/molda/toyota_int/cables2.vmt b/materials/models/molda/toyota_int/cables2.vmt new file mode 100644 index 000000000..21f7d28d8 --- /dev/null +++ b/materials/models/molda/toyota_int/cables2.vmt @@ -0,0 +1,11 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/cables2" + + "$surfaceprop" "Metal" + + "$translucent" "1" + + "$nodecal" "1" + "$nocull" "0" +} diff --git a/materials/models/molda/toyota_int/cables2.vtf b/materials/models/molda/toyota_int/cables2.vtf new file mode 100644 index 000000000..db4a60938 Binary files /dev/null and b/materials/models/molda/toyota_int/cables2.vtf differ diff --git a/materials/models/molda/toyota_int/ceiling.vmt b/materials/models/molda/toyota_int/ceiling.vmt new file mode 100644 index 000000000..794ea0f85 --- /dev/null +++ b/materials/models/molda/toyota_int/ceiling.vmt @@ -0,0 +1,10 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/ceiling" + + "$surfaceprop" "Metal" + + "$nodecal" "1" + "$nocull" "0" + +} diff --git a/materials/models/molda/toyota_int/ceiling.vtf b/materials/models/molda/toyota_int/ceiling.vtf new file mode 100644 index 000000000..dcccd6a3c Binary files /dev/null and b/materials/models/molda/toyota_int/ceiling.vtf differ diff --git a/materials/models/molda/toyota_int/ceiling2.vmt b/materials/models/molda/toyota_int/ceiling2.vmt new file mode 100644 index 000000000..40d4c2cd8 --- /dev/null +++ b/materials/models/molda/toyota_int/ceiling2.vmt @@ -0,0 +1,8 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/ceiling2" + "$surfaceprop" "Metal" + "$nodecal" "1" + "$nocull" "0" + +} diff --git a/materials/models/molda/toyota_int/ceiling2.vtf b/materials/models/molda/toyota_int/ceiling2.vtf new file mode 100644 index 000000000..0f5ebd6d2 Binary files /dev/null and b/materials/models/molda/toyota_int/ceiling2.vtf differ diff --git a/materials/models/molda/toyota_int/ceilingmesh.vmt b/materials/models/molda/toyota_int/ceilingmesh.vmt new file mode 100644 index 000000000..b45951bb3 --- /dev/null +++ b/materials/models/molda/toyota_int/ceilingmesh.vmt @@ -0,0 +1,12 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/ceilingmesh" + + "$color2" "[0.7 0.7 0.7]" + + "$surfaceprop" "Metal" + + "$nodecal" "1" + "$nocull" "0" + +} diff --git a/materials/models/molda/toyota_int/ceilingmesh.vtf b/materials/models/molda/toyota_int/ceilingmesh.vtf new file mode 100644 index 000000000..b0ad0966f Binary files /dev/null and b/materials/models/molda/toyota_int/ceilingmesh.vtf differ diff --git a/materials/models/molda/toyota_int/classic_doors.vmt b/materials/models/molda/toyota_int/classic_doors.vmt new file mode 100644 index 000000000..136545136 --- /dev/null +++ b/materials/models/molda/toyota_int/classic_doors.vmt @@ -0,0 +1,28 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/classic_doors" + + "$surfaceprop" "Metal" + + "$envmap" "models/molda/toyota_int/environment" +// "$envmaptint" "[0.1 0.3 0.35]" +// "$envmaptint" "[0.2 0.9 1]" + "$envmaptint" "[0.1 0.45 0.5]" + "$envmapmask" "models/molda/toyota_int/smudgeN" + + "$nodecal" "1" + "$nocull" "0" + + $envmaptint_mult "0.5" + $envmaptint_color "[1 1 1]" + Proxies { + TARDIS_DefaultInt_EnvColor { + resultVar $envmaptint_color + } + Multiply { + srcVar1 $envmaptint_color + srcVar2 $envmaptint_mult + resultVar $envmaptint + } + } +} diff --git a/materials/models/molda/toyota_int/classic_doors.vtf b/materials/models/molda/toyota_int/classic_doors.vtf new file mode 100644 index 000000000..5c2c7884e Binary files /dev/null and b/materials/models/molda/toyota_int/classic_doors.vtf differ diff --git a/materials/models/molda/toyota_int/classic_doors_back.vmt b/materials/models/molda/toyota_int/classic_doors_back.vmt new file mode 100644 index 000000000..9a12ba261 --- /dev/null +++ b/materials/models/molda/toyota_int/classic_doors_back.vmt @@ -0,0 +1,30 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/metal" + "$surfaceprop" "Metal" + + "$color2" "[0.5 0.5 0.5]" + + "$envmap" "models/molda/toyota_int/environment" + "$envmaptint" "[0 0.175 0.225]" + + "$nodecal" "1" + "$nocull" "0" + + "$detail" "detail/metal_detail_01" + "$detailscale" "4" + "$detailblendfactor" "0.6" + "$detailblendmode" "0" + + $envmaptint_on "[0 0.175 0.225]" + $envmaptint_off "[0 0.1 0.1]" + + "Proxies" + { + TARDIS_Power2 { + onVar "$envmaptint_on" + offVar "$envmaptint_off" + resultVar "$envmaptint" + } + } +} diff --git a/materials/models/molda/toyota_int/classic_frame.vmt b/materials/models/molda/toyota_int/classic_frame.vmt new file mode 100644 index 000000000..9a12ba261 --- /dev/null +++ b/materials/models/molda/toyota_int/classic_frame.vmt @@ -0,0 +1,30 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/metal" + "$surfaceprop" "Metal" + + "$color2" "[0.5 0.5 0.5]" + + "$envmap" "models/molda/toyota_int/environment" + "$envmaptint" "[0 0.175 0.225]" + + "$nodecal" "1" + "$nocull" "0" + + "$detail" "detail/metal_detail_01" + "$detailscale" "4" + "$detailblendfactor" "0.6" + "$detailblendmode" "0" + + $envmaptint_on "[0 0.175 0.225]" + $envmaptint_off "[0 0.1 0.1]" + + "Proxies" + { + TARDIS_Power2 { + onVar "$envmaptint_on" + offVar "$envmaptint_off" + resultVar "$envmaptint" + } + } +} diff --git a/materials/models/molda/toyota_int/console.vmt b/materials/models/molda/toyota_int/console.vmt new file mode 100644 index 000000000..09c978c95 --- /dev/null +++ b/materials/models/molda/toyota_int/console.vmt @@ -0,0 +1,31 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/console" + + "$color2" "[2.5 2.5 2.5]" + + "$surfaceprop" "Metal" + + "$envmap" "models/molda/toyota_int/environment" +// "$envmaptint" "[0 0.42 0.5]" + "$envmaptint" "[0.2 0.9 1]" + "$envmapmask" "models/molda/toyota_int/smudgeN" + + "$nodecal" "1" + "$nocull" "0" + + $envmaptint_mult "2" + $envmaptint_color "[0.2 0.9 1]" + + Proxies { + TARDIS_DefaultInt_EnvColor { + resultVar $envmaptint_color + } + Multiply { + srcVar1 $envmaptint_color + srcVar2 $envmaptint_mult + resultVar $envmaptint + } + } + +} diff --git a/materials/models/molda/toyota_int/console.vtf b/materials/models/molda/toyota_int/console.vtf new file mode 100644 index 000000000..f26ed6b3c Binary files /dev/null and b/materials/models/molda/toyota_int/console.vtf differ diff --git a/materials/models/molda/toyota_int/corridorslights.vmt b/materials/models/molda/toyota_int/corridorslights.vmt new file mode 100644 index 000000000..442224086 --- /dev/null +++ b/materials/models/molda/toyota_int/corridorslights.vmt @@ -0,0 +1,12 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/corridorslights" + "$surfaceprop" "Metal" + + "$selfillum" 1 + "$selfillummask" "/models/molda/toyota_int/corridorslights" + + "$nodecal" "1" + "$nocull" "0" + +} diff --git a/materials/models/molda/toyota_int/corridorslights.vtf b/materials/models/molda/toyota_int/corridorslights.vtf new file mode 100644 index 000000000..bee0af5f4 Binary files /dev/null and b/materials/models/molda/toyota_int/corridorslights.vtf differ diff --git a/materials/models/molda/toyota_int/cubemap1.vtf b/materials/models/molda/toyota_int/cubemap1.vtf new file mode 100644 index 000000000..e3a6966a4 Binary files /dev/null and b/materials/models/molda/toyota_int/cubemap1.vtf differ diff --git a/materials/models/molda/toyota_int/details.vmt b/materials/models/molda/toyota_int/details.vmt new file mode 100644 index 000000000..1edcfa220 --- /dev/null +++ b/materials/models/molda/toyota_int/details.vmt @@ -0,0 +1,26 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/details" + + "$color2" "[3 3 3]" + + "$surfaceprop" "Metal" + + "$envmap" "models/molda/toyota_int/environment" + "$envmaptint" "[0.1 0.3 0.3]" + + "$nodecal" "1" + "$nocull" "0" + + $envmaptint_on "[0.1 0.3 0.3]" + $envmaptint_off "[0.05 0.05 0.05]" + + "Proxies" + { + TARDIS_Power { + onVar "$envmaptint_on" + offVar "$envmaptint_off" + resultVar "$envmaptint" + } + } +} diff --git a/materials/models/molda/toyota_int/details.vtf b/materials/models/molda/toyota_int/details.vtf new file mode 100644 index 000000000..af245aec5 Binary files /dev/null and b/materials/models/molda/toyota_int/details.vtf differ diff --git a/materials/models/molda/toyota_int/details2.vmt b/materials/models/molda/toyota_int/details2.vmt new file mode 100644 index 000000000..cec2ac657 --- /dev/null +++ b/materials/models/molda/toyota_int/details2.vmt @@ -0,0 +1,13 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/details" + "$surfaceprop" "Metal" + + "$envmap" "models/molda/toyota_int/environment" + "$envmaptint" "[0.1 0.1 0.1]" + + "$nodecal" "1" + "$nocull" "0" + + "$color2" "[2.3 2.3 2.3]" +} diff --git a/materials/models/molda/toyota_int/doors.vmt b/materials/models/molda/toyota_int/doors.vmt new file mode 100644 index 000000000..01568e2f5 --- /dev/null +++ b/materials/models/molda/toyota_int/doors.vmt @@ -0,0 +1,9 @@ +"VertexlitGeneric" +{ + "$basetexture" "models/vtalanov98/toyota_ext/doors" + "$bumpmap" "models/vtalanov98/toyota_ext/doorsn" + "$nodecal" "1" + "$normalmap" "models/vtalanov98/toyota_ext/doorsn" + "$surfaceprop" "Wood_Solid" + "$color2" "[2.8 3 3]" +} \ No newline at end of file diff --git a/materials/models/molda/toyota_int/entry.vmt b/materials/models/molda/toyota_int/entry.vmt new file mode 100644 index 000000000..2066b30af --- /dev/null +++ b/materials/models/molda/toyota_int/entry.vmt @@ -0,0 +1,23 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/entry" + "$surfaceprop" "Metal" + + "$envmap" "models/molda/toyota_int/environment" + "$envmaptint" "[0.2 0.2 0.2]" + + "$nodecal" "1" + "$nocull" "0" + + $envmaptint_on "[0.2 0.2 0.2]" + $envmaptint_off "[0.05 0.05 0.05]" + + "Proxies" + { + TARDIS_Power2 { + onVar "$envmaptint_on" + offVar "$envmaptint_off" + resultVar "$envmaptint" + } + } +} diff --git a/materials/models/molda/toyota_int/entry.vtf b/materials/models/molda/toyota_int/entry.vtf new file mode 100644 index 000000000..a66608675 Binary files /dev/null and b/materials/models/molda/toyota_int/entry.vtf differ diff --git a/materials/models/vtalanov98/hellbentext/environment.vtf b/materials/models/molda/toyota_int/environment.vtf similarity index 100% rename from materials/models/vtalanov98/hellbentext/environment.vtf rename to materials/models/molda/toyota_int/environment.vtf diff --git a/materials/models/molda/toyota_int/exterior.vmt b/materials/models/molda/toyota_int/exterior.vmt new file mode 100644 index 000000000..28bcb4f3e --- /dev/null +++ b/materials/models/molda/toyota_int/exterior.vmt @@ -0,0 +1,19 @@ +"VertexLitGeneric" +{ + $basetexture "models/vtalanov98/toyota_ext/exterior" + $bumpmap "models/vtalanov98/toyota_ext/e_box_bumpmap" + $envmaptint "[.0125 .0125 .0125]" + $diffuseexp 1 + $halflambert 1 + $nocull 0 + $nodecal 1 + $phong 1 + $phongalbedotint 1 + $phongalbedoboost 255 + $phongexponenttexture "models/vtalanov98/toyota_ext/tardis_e_r" + $phongboost .2 + $phongfresnelranges "[.175 .175 .175]" + $rimlight 1 + $rimlightexponent 11 + $rimlightboost .5 +} diff --git a/materials/models/molda/toyota_int/eye.vmt b/materials/models/molda/toyota_int/eye.vmt new file mode 100644 index 000000000..7c121b18f --- /dev/null +++ b/materials/models/molda/toyota_int/eye.vmt @@ -0,0 +1,13 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/eye" + "$surfaceprop" "Metal" + + "$selfillum" 1 + "$selfillummask" "/models/molda/toyota_int/eye" + + "$nodecal" "1" + "$nocull" "0" + +} + diff --git a/materials/models/molda/toyota_int/eye.vtf b/materials/models/molda/toyota_int/eye.vtf new file mode 100644 index 000000000..d8e1e50bb Binary files /dev/null and b/materials/models/molda/toyota_int/eye.vtf differ diff --git a/materials/models/molda/toyota_int/floorlights.vmt b/materials/models/molda/toyota_int/floorlights.vmt new file mode 100644 index 000000000..2aba8f3d1 --- /dev/null +++ b/materials/models/molda/toyota_int/floorlights.vmt @@ -0,0 +1,77 @@ +"UnlitGeneric" +{ + "$basetexture" "models/molda/toyota_int/bulbs" + "$surfaceprop" "Metal" + + "$color2" "[0.8 0.8 0.7]" + + "$nodecal" "1" + "$nocull" "0" + + $color2_on "[1 1 1]" + $color2_off "[0.1 0.1 0.1]" + + "Proxies" + { + TARDIS_Power { + onVar "$color2_on" + offVar "$color2_off" + resultVar "$color2" + } + TARDIS_DefaultInt_FloorLightsColor { + resultVar $color2_on + } + + + TARDIS_State { + resultTextureVar $basetexture + resultFrameVar $frame + + textures { + idle "models/molda/toyota_int/bulbs" + handbrake "models/molda/toyota_int/bulbs" + interrupt "models/molda/toyota_int/bulbs" + demat_fail "models/molda/toyota_int/bulbs_off" + mat_fail "models/molda/toyota_int/bulbs_warning" + off "models/molda/toyota_int/bulbs_off" + travel "models/molda/toyota_int/bulbs_travel" + demat "models/molda/toyota_int/bulbs_travel" + mat "models/molda/toyota_int/bulbs" + + idle_warning "models/molda/toyota_int/bulbs_warning" + handbrake_warning "models/molda/toyota_int/bulbs_warning" + interrupt_warning "models/molda/toyota_int/bulbs_warning" + demat_fail_warning "models/molda/toyota_int/bulbs_travel_warning" + mat_fail_warning "models/molda/toyota_int/bulbs_warning" + off_warning "models/molda/toyota_int/bulbs_off" + travel_warning "models/molda/toyota_int/bulbs_travel_warning" + demat_warning "models/molda/toyota_int/bulbs_travel_warning" + mat_warning "models/molda/toyota_int/bulbs_warning" + } + frameRates { + idle 0 + handbrake 0 + interrupt 0 + demat_fail 0 + mat_fail 18 + off 0 + travel 10 + demat 10 + mat 10 + + idle_warning 10 + handbrake_warning 0 + interrupt_warning 10 + demat_fail_warning 20 + mat_fail_warning 30 + off_warning 0 + travel_warning 10 + demat_warning 10 + mat_warning 10 + } + } + + } + +} + diff --git a/materials/models/molda/toyota_int/floornew.vmt b/materials/models/molda/toyota_int/floornew.vmt new file mode 100644 index 000000000..be81295c4 --- /dev/null +++ b/materials/models/molda/toyota_int/floornew.vmt @@ -0,0 +1,29 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/floornew" + + "$color2" "[1 1 0.9]" + + "$surfaceprop" "Metal" + + "$envmap" "models/molda/toyota_int/environment" +// "$envmaptint" "[0.32 0.35 0.35]" + "$envmaptint" "[0 0.7 0.8]" + "$envmapmask" "models/molda/toyota_int/smudgeN" + + "$nodecal" "1" + "$nocull" "0" + + $envmaptint_mult "0.6" + $envmaptint_color "[1 1 1]" + Proxies { + TARDIS_DefaultInt_EnvColor { + resultVar $envmaptint_color + } + Multiply { + srcVar1 $envmaptint_color + srcVar2 $envmaptint_mult + resultVar $envmaptint + } + } +} diff --git a/materials/models/molda/toyota_int/floornew.vtf b/materials/models/molda/toyota_int/floornew.vtf new file mode 100644 index 000000000..ef6ff89ec Binary files /dev/null and b/materials/models/molda/toyota_int/floornew.vtf differ diff --git a/materials/models/molda/toyota_int/floornew2.vmt b/materials/models/molda/toyota_int/floornew2.vmt new file mode 100644 index 000000000..1bf12a0b3 --- /dev/null +++ b/materials/models/molda/toyota_int/floornew2.vmt @@ -0,0 +1,26 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/floornew2" + "$surfaceprop" "Metal" + + "$envmap" "models/molda/toyota_int/environment" +// "$envmaptint" "[0.4 0.4 0.4]" + "$envmaptint" "[0.2 0.9 1]" + "$envmapmask" "models/molda/toyota_int/smudgeN" + + "$nodecal" "1" + "$nocull" "0" + + $envmaptint_mult "1" + $envmaptint_color "[1 1 1]" + Proxies { + TARDIS_DefaultInt_EnvColor { + resultVar $envmaptint_color + } + Multiply { + srcVar1 $envmaptint_color + srcVar2 $envmaptint_mult + resultVar $envmaptint + } + } +} diff --git a/materials/models/molda/toyota_int/floornew2.vtf b/materials/models/molda/toyota_int/floornew2.vtf new file mode 100644 index 000000000..fc193494d Binary files /dev/null and b/materials/models/molda/toyota_int/floornew2.vtf differ diff --git a/materials/models/molda/toyota_int/gearsglow.vmt b/materials/models/molda/toyota_int/gearsglow.vmt new file mode 100644 index 000000000..0c6e1561c --- /dev/null +++ b/materials/models/molda/toyota_int/gearsglow.vmt @@ -0,0 +1,30 @@ +"UnlitGeneric" +{ + "$basetexture" "models/molda/toyota_int/gearsglow" + "$surfaceprop" "Metal" + + "$selfillum" 1 + "$selfillummask" "/models/molda/toyota_int/gearsglow" + + "$nodecal" "1" + "$nocull" "0" + + $selfillum_on "[1 1 1]" + $selfillum_off "[0.1 0.1 0.1]" + $color2_on "[1 1 1]" + $color2_off "[0.15 0.15 0.15]" + + "Proxies" + { + TARDIS_Power { + onVar "$selfillum_on" + offVar "$selfillum_off" + resultVar "$selfillumtint" + } + TARDIS_Power2 { + onVar "$color2_on" + offVar "$color2_off" + resultVar "$color2" + } + } +} diff --git a/materials/models/molda/toyota_int/gearsglow.vtf b/materials/models/molda/toyota_int/gearsglow.vtf new file mode 100644 index 000000000..29335d562 Binary files /dev/null and b/materials/models/molda/toyota_int/gearsglow.vtf differ diff --git a/materials/models/molda/toyota_int/glass.vmt b/materials/models/molda/toyota_int/glass.vmt new file mode 100644 index 000000000..3502a36fa --- /dev/null +++ b/materials/models/molda/toyota_int/glass.vmt @@ -0,0 +1,30 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/glass" + + "$color2" "[0.2 0.2 0.2]" + + "$bumpmap" "models/molda/toyota_int/glassN" + + "$envmap" "models/molda/toyota_int/cubemap1" + "$envmaptint" "[0.3 0.3 0.3]" + + "$surfaceprop" "Metal" + + "$additive" "1" + + "$nodecal" "1" + "$nocull" "0" + + $envmaptint_on "[0.3 0.3 0.3]" + $envmaptint_off "[0.1 0.1 0.1]" + + "Proxies" + { + TARDIS_Power { + onVar "$envmaptint_on" + offVar "$envmaptint_off" + resultVar "$envmaptint" + } + } +} diff --git a/materials/models/molda/toyota_int/glass.vtf b/materials/models/molda/toyota_int/glass.vtf new file mode 100644 index 000000000..6a263459e Binary files /dev/null and b/materials/models/molda/toyota_int/glass.vtf differ diff --git a/materials/models/molda/toyota_int/glass2.vmt b/materials/models/molda/toyota_int/glass2.vmt new file mode 100644 index 000000000..ce802d1a5 --- /dev/null +++ b/materials/models/molda/toyota_int/glass2.vmt @@ -0,0 +1,30 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/glass" + + "$color2" "[0.1 0.1 0.1]" + + "$bumpmap" "models/molda/toyota_int/glassN" + + "$envmap" "models/molda/toyota_int/environment" + "$envmaptint" "[0.3 0.3 0.3]" + + "$surfaceprop" "Metal" + + "$additive" "1" + + "$nodecal" "1" + "$nocull" "0" + + $envmaptint_on "[0.3 0.3 0.3]" + $envmaptint_off "[0.1 0.1 0.1]" + + "Proxies" + { + TARDIS_Power { + onVar "$envmaptint_on" + offVar "$envmaptint_off" + resultVar "$envmaptint" + } + } +} diff --git a/materials/models/molda/toyota_int/glassN.vtf b/materials/models/molda/toyota_int/glassN.vtf new file mode 100644 index 000000000..7ddf841ef Binary files /dev/null and b/materials/models/molda/toyota_int/glassN.vtf differ diff --git a/materials/models/molda/toyota_int/glow.vmt b/materials/models/molda/toyota_int/glow.vmt new file mode 100644 index 000000000..acb0ff35d --- /dev/null +++ b/materials/models/molda/toyota_int/glow.vmt @@ -0,0 +1,23 @@ +"UnlitGeneric" +{ + "$basetexture" "models/molda/toyota_int/glow" + "$surfaceprop" "Glass" + + "$additive" "1" + "$translucent" "1" + + "$nodecal" "1" + "$nocull" "1" + + $color2_on "[6 6 1]" + $color2_off "[0 0 0]" + + "Proxies" + { + TARDIS_Power { + onVar "$color2_on" + offVar "$color2_off" + resultVar "$color2" + } + } +} \ No newline at end of file diff --git a/materials/models/molda/toyota_int/glow.vtf b/materials/models/molda/toyota_int/glow.vtf new file mode 100644 index 000000000..4917563ae Binary files /dev/null and b/materials/models/molda/toyota_int/glow.vtf differ diff --git a/materials/models/molda/toyota_int/glow2.vmt b/materials/models/molda/toyota_int/glow2.vmt new file mode 100644 index 000000000..49e29d203 --- /dev/null +++ b/materials/models/molda/toyota_int/glow2.vmt @@ -0,0 +1,40 @@ +"UnlitGeneric" +{ + "$basetexture" "models/molda/toyota_int/glow2" + "$surfaceprop" "Glass" + + "$additive" "1" + "$translucent" "1" + + "$nodecal" "1" + "$nocull" "1" + + $sine 0 + Proxies + { + + Sine + { + sineperiod 10 + sinemin 0.2 + sinemax 0.5 + resultVar $sine + } + Equals + { + srcVar1 $sine + resultVar "$color2[1]" + } + Equals + { + srcVar1 $sine + resultVar "$color2[2]" + } + Equals + { + srcVar1 $sine + resultVar "$color2[0]" + } + + } +} diff --git a/materials/models/molda/toyota_int/glow2.vtf b/materials/models/molda/toyota_int/glow2.vtf new file mode 100644 index 000000000..4917563ae Binary files /dev/null and b/materials/models/molda/toyota_int/glow2.vtf differ diff --git a/materials/models/molda/toyota_int/goldpaint.vmt b/materials/models/molda/toyota_int/goldpaint.vmt new file mode 100644 index 000000000..ca710b33e --- /dev/null +++ b/materials/models/molda/toyota_int/goldpaint.vmt @@ -0,0 +1,8 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/goldpaint" + "$surfaceprop" "Metal" + "$nodecal" "1" + "$nocull" "0" + +} diff --git a/materials/models/molda/toyota_int/goldpaint.vtf b/materials/models/molda/toyota_int/goldpaint.vtf new file mode 100644 index 000000000..3de99eda9 Binary files /dev/null and b/materials/models/molda/toyota_int/goldpaint.vtf differ diff --git a/materials/models/molda/toyota_int/grainN.vtf b/materials/models/molda/toyota_int/grainN.vtf new file mode 100644 index 000000000..c89151d37 Binary files /dev/null and b/materials/models/molda/toyota_int/grainN.vtf differ diff --git a/materials/models/molda/toyota_int/grate.vmt b/materials/models/molda/toyota_int/grate.vmt new file mode 100644 index 000000000..7dce070dd --- /dev/null +++ b/materials/models/molda/toyota_int/grate.vmt @@ -0,0 +1,8 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/grate" + "$surfaceprop" "Metal" + "$nodecal" "1" + "$nocull" "0" + +} diff --git a/materials/models/molda/toyota_int/grate.vtf b/materials/models/molda/toyota_int/grate.vtf new file mode 100644 index 000000000..aad6b7b94 Binary files /dev/null and b/materials/models/molda/toyota_int/grate.vtf differ diff --git a/materials/models/molda/toyota_int/hills.vmt b/materials/models/molda/toyota_int/hills.vmt new file mode 100644 index 000000000..65642b0a5 --- /dev/null +++ b/materials/models/molda/toyota_int/hills.vmt @@ -0,0 +1,12 @@ +"UnlitGeneric" +{ + "$basetexture" "models/molda/toyota_int/hills" + "$surfaceprop" "Metal" + + "$selfillum" 1 + "$selfillummask" "/models/molda/toyota_int/hills" + + "$nodecal" "1" + "$nocull" "0" + +} diff --git a/materials/models/molda/toyota_int/hills.vtf b/materials/models/molda/toyota_int/hills.vtf new file mode 100644 index 000000000..121d5a50b Binary files /dev/null and b/materials/models/molda/toyota_int/hills.vtf differ diff --git a/materials/models/molda/toyota_int/holder.vmt b/materials/models/molda/toyota_int/holder.vmt new file mode 100644 index 000000000..121fd1d80 --- /dev/null +++ b/materials/models/molda/toyota_int/holder.vmt @@ -0,0 +1,8 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/holder" + "$surfaceprop" "Metal" + "$nodecal" "1" + "$nocull" "0" + +} diff --git a/materials/models/molda/toyota_int/holder.vtf b/materials/models/molda/toyota_int/holder.vtf new file mode 100644 index 000000000..eb2603bfd Binary files /dev/null and b/materials/models/molda/toyota_int/holder.vtf differ diff --git a/materials/models/molda/toyota_int/library.vmt b/materials/models/molda/toyota_int/library.vmt new file mode 100644 index 000000000..b017c5383 --- /dev/null +++ b/materials/models/molda/toyota_int/library.vmt @@ -0,0 +1,13 @@ +"UnlitGeneric" +{ + "$basetexture" "models/molda/toyota_int/library" + + "$selfillum" "1" + "$selfillummap" "models/molda/toyota_int/library" + + "$surfaceprop" "Metal" + + "$nodecal" "1" + "$nocull" "0" + +} diff --git a/materials/models/molda/toyota_int/library.vtf b/materials/models/molda/toyota_int/library.vtf new file mode 100644 index 000000000..f7c2b8faa Binary files /dev/null and b/materials/models/molda/toyota_int/library.vtf differ diff --git a/materials/models/molda/toyota_int/lights.vmt b/materials/models/molda/toyota_int/lights.vmt new file mode 100644 index 000000000..12826ac4f --- /dev/null +++ b/materials/models/molda/toyota_int/lights.vmt @@ -0,0 +1,61 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/lights" + "$surfaceprop" "Metal" + + "$envmap" "models/molda/toyota_int/environment" + "$envmaptint" "[1 1 1]" + + "$selfillum" 1 + "$selfillummask" "/models/molda/toyota_int/lights" + + "$nodecal" "1" + "$nocull" "0" + + $selfillum_default "[1 1 1]" + $selfillum_on "[1 1 1]" + $selfillum_off "[0 0 0]" + $selfillum_disabled "[0.2 0.2 0.2]" + + $envmaptint_default "[1 1 1]" + $envmaptint_on "[1 1 1]" + $envmaptint_off "[0 0 0]" + + $color2_default "[1 1 1]" + $color2_on "[1 1 1]" + $color2_off "[0.3 0.3 0.3]" + $color2_disabled "[0.5 0.5 0.5]" + + "Proxies" + { + TARDIS_Power { + onVar "$selfillum_on" + offVar "$selfillum_off" + resultVar "$selfillumtint" + } + TARDIS_Power2 { + onVar "$envmaptint_on" + offVar "$envmaptint_off" + resultVar "$envmaptint" + } + TARDIS_Power3 { + onVar "$color2_on" + offVar "$color2_off" + resultVar "$color2" + } + TARDIS_DefaultInt_ThrottleLights { + onVar "$selfillum_default" + offVar "$selfillum_disabled" + resultVar "$selfillum_on" + + onVar2 "$envmaptint_default" + offVar2 "$envmaptint_off" + resultVar2 "$envmaptint_on" + + onVar3 "$color2_default" + offVar3 "$color2_disabled" + resultVar3 "$color2_on" + } + } + +} diff --git a/materials/models/molda/toyota_int/lights.vtf b/materials/models/molda/toyota_int/lights.vtf new file mode 100644 index 000000000..7dc07ead3 Binary files /dev/null and b/materials/models/molda/toyota_int/lights.vtf differ diff --git a/materials/models/molda/toyota_int/lightsconsole.vmt b/materials/models/molda/toyota_int/lightsconsole.vmt new file mode 100644 index 000000000..4490e7f00 --- /dev/null +++ b/materials/models/molda/toyota_int/lightsconsole.vmt @@ -0,0 +1,8 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/lightsconsole" + "$surfaceprop" "Metal" + "$nodecal" "1" + "$nocull" "0" + +} diff --git a/materials/models/molda/toyota_int/lightsconsole.vtf b/materials/models/molda/toyota_int/lightsconsole.vtf new file mode 100644 index 000000000..8cb4095f3 Binary files /dev/null and b/materials/models/molda/toyota_int/lightsconsole.vtf differ diff --git a/materials/models/molda/toyota_int/metal.vmt b/materials/models/molda/toyota_int/metal.vmt new file mode 100644 index 000000000..5bdc6554d --- /dev/null +++ b/materials/models/molda/toyota_int/metal.vmt @@ -0,0 +1,24 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/metal" + "$surfaceprop" "Metal" + + "$envmap" "models/molda/toyota_int/environment" + "$envmaptint" "[0.5 0.5 0.5]" + + "$nodecal" "1" + "$nocull" "0" + + $envmaptint_on "[0.5 0.5 0.5]" + $envmaptint_off "[0 0 0]" + + "Proxies" + { + TARDIS_Power { + onVar "$envmaptint_on" + offVar "$envmaptint_off" + resultVar "$envmaptint" + } + } + +} diff --git a/materials/models/molda/toyota_int/metal.vtf b/materials/models/molda/toyota_int/metal.vtf new file mode 100644 index 000000000..a4f80367e Binary files /dev/null and b/materials/models/molda/toyota_int/metal.vtf differ diff --git a/materials/models/molda/toyota_int/monitor.vmt b/materials/models/molda/toyota_int/monitor.vmt new file mode 100644 index 000000000..dc33a728b --- /dev/null +++ b/materials/models/molda/toyota_int/monitor.vmt @@ -0,0 +1,38 @@ +"VertexlitGeneric" +{ + "$basetexture" "models/molda/toyota_int/monitor" + + "$color2" "[5 5 5]" + + "$surfaceprop" "Metal" + + "$envmap" "models/molda/toyota_int/environment" + "$envmaptint" "[0.1 0.45 0.5]" + "$envmapmask" "models/molda/toyota_int/smudgeN" + + "$nodecal" "1" + "$nocull" "0" + + $envmaptint_on "[0.1 0.45 0.5]" + $envmaptint_off "[0.05 0.05 0.05]" + + $envmaptint_mult "0.7" + + "Proxies" + { + TARDIS_DefaultInt_EnvColor { + resultVar $envmaptint_color + } + Multiply { + srcVar1 $envmaptint_color + srcVar2 $envmaptint_mult + resultVar $envmaptint_on + } + TARDIS_Power { + onVar "$envmaptint_on" + offVar "$envmaptint_off" + resultVar "$envmaptint" + } + } + +} diff --git a/materials/models/molda/toyota_int/monitor.vtf b/materials/models/molda/toyota_int/monitor.vtf new file mode 100644 index 000000000..3315fefef Binary files /dev/null and b/materials/models/molda/toyota_int/monitor.vtf differ diff --git a/materials/models/molda/toyota_int/neon.vtf b/materials/models/molda/toyota_int/neon.vtf new file mode 100644 index 000000000..f7287f537 Binary files /dev/null and b/materials/models/molda/toyota_int/neon.vtf differ diff --git a/materials/models/molda/toyota_int/neon_in.vmt b/materials/models/molda/toyota_int/neon_in.vmt new file mode 100644 index 000000000..cdf8fff3b --- /dev/null +++ b/materials/models/molda/toyota_int/neon_in.vmt @@ -0,0 +1,42 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/neon" + "$surfaceprop" "Metal" + + $selfillum 1 + "$selfillummask" "/models/molda/toyota_int/neon" + + "$nodecal" "1" + "$nocull" "0" + + $rotor_mult "2.5" + $rotor_mult_nopower "0.8" + $rotor_color "[1 1 1]" + $rotor "[1 1 1]" + $rotor_nopower "[0 0.7 1]" + Proxies { + TARDIS_DefaultInt_RotorInColor { + resultVar $rotor_color + } + Multiply { + srcVar1 $rotor_color + srcVar2 $rotor_mult + resultVar $rotor + } + TARDIS_Power { + onVar "$rotor" + offVar "$rotor_nopower" + resultVar "$color2" + } + TARDIS_Power2 { + onVar "$rotor" + offVar "$rotor_nopower" + resultVar "$selfillumtint" + } + TARDIS_Power3 { + onVar "$rotor" + offVar "$rotor_nopower" + resultVar "$envmaptint" + } + } +} diff --git a/materials/models/molda/toyota_int/neon_mid.vmt b/materials/models/molda/toyota_int/neon_mid.vmt new file mode 100644 index 000000000..808452421 --- /dev/null +++ b/materials/models/molda/toyota_int/neon_mid.vmt @@ -0,0 +1,31 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/neon" + "$surfaceprop" "Metal" + + "$selfillum" 1 + "$selfillummask" "/models/molda/toyota_int/neon" + + "$nodecal" "1" + "$nocull" "0" + + $rotor_mult "1" + $rotor_color "[1 1 1]" + $rotor "[1 1 1]" + $rotor_nopower "[0 0.2 0.5]" + Proxies { + TARDIS_DefaultInt_RotorInColor { + resultVar $rotor_color + } + Multiply { + srcVar1 $rotor_color + srcVar2 $rotor_mult + resultVar $rotor + } + TARDIS_Power { + onVar "$rotor" + offVar "$rotor_nopower" + resultVar "$color2" + } + } +} diff --git a/materials/models/molda/toyota_int/neon_out.vmt b/materials/models/molda/toyota_int/neon_out.vmt new file mode 100644 index 000000000..2fa018544 --- /dev/null +++ b/materials/models/molda/toyota_int/neon_out.vmt @@ -0,0 +1,38 @@ +"UnlitGeneric" +{ + "$basetexture" "models/molda/toyota_int/neon" + "$surfaceprop" "Metal" + + "$additive" "1" + + "$nodecal" "1" + "$nocull" "0" + + "$bumpmap" "models/molda/toyota_int/glassN" + "$envmap" "models/cem/toyota_smith/environment" + "$envmaptint" "[0.05 1 0.75]" + + "$rimlight" "1" + "$rimlightexponent" "12" + "$rimlightboost" "0.8" + + $rotor_mult "1" + $rotor_color "[1 1 1]" + $color2_on "[0.5 0.5 0.5]" + $color2_off "[0 0.1 0.3]" + Proxies { + TARDIS_DefaultInt_EnvColor { + resultVar $rotor_color + } + Multiply { + srcVar1 $rotor_color + srcVar2 $rotor_mult + resultVar $envmaptint + } + TARDIS_Power { + onVar "$color2_on" + offVar "$color2_off" + resultVar "$color2" + } + } +} diff --git a/materials/models/molda/toyota_int/no_material.vmt b/materials/models/molda/toyota_int/no_material.vmt new file mode 100644 index 000000000..16b299b2b --- /dev/null +++ b/materials/models/molda/toyota_int/no_material.vmt @@ -0,0 +1,4 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/white" +} diff --git a/materials/models/molda/toyota_int/panels.vmt b/materials/models/molda/toyota_int/panels.vmt new file mode 100644 index 000000000..e76d68305 --- /dev/null +++ b/materials/models/molda/toyota_int/panels.vmt @@ -0,0 +1,28 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/panels" + "$surfaceprop" "Metal" + + "$envmap" "models/molda/toyota_int/environment" +// "$envmaptint" "[0.3 0.3 0.3]" + "$envmaptint" "[0.2 0.9 1]" + "$envmapmask" "models/molda/toyota_int/smudgeN" + + "$nodecal" "1" + "$nocull" "0" + + $envmaptint_mult "2" + $envmaptint_color "[0.2 0.9 1]" + + Proxies { + TARDIS_DefaultInt_EnvColor { + resultVar $envmaptint_color + } + Multiply { + srcVar1 $envmaptint_color + srcVar2 $envmaptint_mult + resultVar $envmaptint + } + } + +} diff --git a/materials/models/molda/toyota_int/panels.vtf b/materials/models/molda/toyota_int/panels.vtf new file mode 100644 index 000000000..8095e0690 Binary files /dev/null and b/materials/models/molda/toyota_int/panels.vtf differ diff --git a/materials/models/molda/toyota_int/pipes.vmt b/materials/models/molda/toyota_int/pipes.vmt new file mode 100644 index 000000000..e4c10f7ed --- /dev/null +++ b/materials/models/molda/toyota_int/pipes.vmt @@ -0,0 +1,11 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/pipes" + "$surfaceprop" "Metal" + + "$selfillum" 1 + "$selfillummask" "/models/molda/toyota_int/pipes" + "$nodecal" "1" + "$nocull" "0" + +} diff --git a/materials/models/molda/toyota_int/pipes.vtf b/materials/models/molda/toyota_int/pipes.vtf new file mode 100644 index 000000000..4c0179fd9 Binary files /dev/null and b/materials/models/molda/toyota_int/pipes.vtf differ diff --git a/materials/models/molda/toyota_int/pipes2.vmt b/materials/models/molda/toyota_int/pipes2.vmt new file mode 100644 index 000000000..92e673240 --- /dev/null +++ b/materials/models/molda/toyota_int/pipes2.vmt @@ -0,0 +1,12 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/pipes2" + "$surfaceprop" "Metal" + + "$envmap" "models/molda/toyota_int/environment" + "$envmaptint" "[0.3 0.3 0.3]" + + "$nodecal" "1" + "$nocull" "0" + +} diff --git a/materials/models/molda/toyota_int/pipes2.vtf b/materials/models/molda/toyota_int/pipes2.vtf new file mode 100644 index 000000000..9329d3a2f Binary files /dev/null and b/materials/models/molda/toyota_int/pipes2.vtf differ diff --git a/materials/models/molda/toyota_int/policeboxsign.vmt b/materials/models/molda/toyota_int/policeboxsign.vmt new file mode 100644 index 000000000..6fdd484ca --- /dev/null +++ b/materials/models/molda/toyota_int/policeboxsign.vmt @@ -0,0 +1,8 @@ +"VertexlitGeneric" +{ + "$basetexture" "models/vtalanov98/toyota_ext/policeboxsign" + "$surfaceprop" "Glass" + "$selfillum" 1 + "$selfillummask" "models/vtalanov98/toyota_ext/white" + "$nodecal" "1" +} diff --git a/materials/models/molda/toyota_int/pool.vmt b/materials/models/molda/toyota_int/pool.vmt new file mode 100644 index 000000000..55a47e973 --- /dev/null +++ b/materials/models/molda/toyota_int/pool.vmt @@ -0,0 +1,12 @@ +"UnlitGeneric" +{ + "$basetexture" "models/molda/toyota_int/pool" + "$surfaceprop" "Metal" + + "$selfillum" 1 + "$selfillummask" "/models/molda/toyota_int/pool" + + "$nodecal" "1" + "$nocull" "0" + +} diff --git a/materials/models/molda/toyota_int/pool.vtf b/materials/models/molda/toyota_int/pool.vtf new file mode 100644 index 000000000..4bc9da20a Binary files /dev/null and b/materials/models/molda/toyota_int/pool.vtf differ diff --git a/materials/models/molda/toyota_int/portalsnew.vmt b/materials/models/molda/toyota_int/portalsnew.vmt new file mode 100644 index 000000000..0071c10a8 --- /dev/null +++ b/materials/models/molda/toyota_int/portalsnew.vmt @@ -0,0 +1,26 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/portalsnew" + "$surfaceprop" "Metal" + + "$color2" "[2 2 2]" + + "$envmap" "models/molda/toyota_int/environment" + "$envmaptint" "[0 0.175 0.225]" + + "$bumpmap" "models/molda/toyota_int/grainN" + "$nodecal" "1" + "$nocull" "0" + + $envmaptint_on "[0 0.175 0.225]" + $envmaptint_off "[0 0.1 0.1]" + + "Proxies" + { + TARDIS_Power2 { + onVar "$envmaptint_on" + offVar "$envmaptint_off" + resultVar "$envmaptint" + } + } +} diff --git a/materials/models/molda/toyota_int/portalsnew.vtf b/materials/models/molda/toyota_int/portalsnew.vtf new file mode 100644 index 000000000..ea20fb2d5 Binary files /dev/null and b/materials/models/molda/toyota_int/portalsnew.vtf differ diff --git a/materials/models/molda/toyota_int/portalsnew2.vmt b/materials/models/molda/toyota_int/portalsnew2.vmt new file mode 100644 index 000000000..0b3b3f479 --- /dev/null +++ b/materials/models/molda/toyota_int/portalsnew2.vmt @@ -0,0 +1,26 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/portalsnew2" + "$surfaceprop" "Metal" + + "$color2" "[2 2 2]" + + "$envmap" "models/molda/toyota_int/environment" + "$envmaptint" "[0 0.175 0.225]" + + "$bumpmap" "models/molda/toyota_int/grainN" + "$nodecal" "1" + "$nocull" "0" + + $envmaptint_on "[0 0.175 0.225]" + $envmaptint_off "[0 0.1 0.1]" + + "Proxies" + { + TARDIS_Power2 { + onVar "$envmaptint_on" + offVar "$envmaptint_off" + resultVar "$envmaptint" + } + } +} \ No newline at end of file diff --git a/materials/models/molda/toyota_int/portalsnew2.vtf b/materials/models/molda/toyota_int/portalsnew2.vtf new file mode 100644 index 000000000..7dc93e5b2 Binary files /dev/null and b/materials/models/molda/toyota_int/portalsnew2.vtf differ diff --git a/materials/models/molda/toyota_int/rails.vmt b/materials/models/molda/toyota_int/rails.vmt new file mode 100644 index 000000000..7beb1deb0 --- /dev/null +++ b/materials/models/molda/toyota_int/rails.vmt @@ -0,0 +1,24 @@ +"VertexlitGeneric" +{ + "$basetexture" "models/molda/toyota_int/rails" + + "$envmap" "models/molda/toyota_int/environment" + "$envmaptint" "[0.6 0.8 0.85]" + + "$nodecal" "1" + "$nocull" "1" + + "$surfaceprop" "Metal" + + $envmaptint_on "[0.6 0.8 0.85]" + $envmaptint_off "[0.1 0.15 0.15]" + + "Proxies" + { + TARDIS_Power { + onVar "$envmaptint_on" + offVar "$envmaptint_off" + resultVar "$envmaptint" + } + } +} diff --git a/materials/models/molda/toyota_int/rails.vtf b/materials/models/molda/toyota_int/rails.vtf new file mode 100644 index 000000000..68a5ca3a0 Binary files /dev/null and b/materials/models/molda/toyota_int/rails.vtf differ diff --git a/materials/models/molda/toyota_int/rock.vmt b/materials/models/molda/toyota_int/rock.vmt new file mode 100644 index 000000000..51952b3d2 --- /dev/null +++ b/materials/models/molda/toyota_int/rock.vmt @@ -0,0 +1,8 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/rock" + "$surfaceprop" "Metal" + "$nodecal" "1" + "$nocull" "0" + +} diff --git a/materials/models/molda/toyota_int/rock.vtf b/materials/models/molda/toyota_int/rock.vtf new file mode 100644 index 000000000..cbd1e9b41 Binary files /dev/null and b/materials/models/molda/toyota_int/rock.vtf differ diff --git a/materials/models/molda/toyota_int/roommesh.vmt b/materials/models/molda/toyota_int/roommesh.vmt new file mode 100644 index 000000000..40e5a400c --- /dev/null +++ b/materials/models/molda/toyota_int/roommesh.vmt @@ -0,0 +1,12 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/ceilingmesh" + + "$color2" "[0.9 0.9 0.9]" + + "$surfaceprop" "Metal" + + "$nodecal" "1" + "$nocull" "0" + +} diff --git a/materials/models/molda/toyota_int/rotor.vmt b/materials/models/molda/toyota_int/rotor.vmt new file mode 100644 index 000000000..d9a00ad64 --- /dev/null +++ b/materials/models/molda/toyota_int/rotor.vmt @@ -0,0 +1,29 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/rotor" + + "$color2" "[2 2 2]" + + "$surfaceprop" "Metal" + + "$envmaptint" "[0 0.4 0.5]" + "$envmap" "models/molda/toyota_int/environment" +// "$envmapmask" "models/molda/toyota_int/smudgeN" + + "$nodecal" "1" + "$nocull" "0" + + $envmaptint_mult "0.4" + $envmaptint_color "[0 0.4 0.5]" + Proxies { + TARDIS_DefaultInt_EnvColor { + resultVar $envmaptint_color + } + Multiply { + srcVar1 $envmaptint_color + srcVar2 $envmaptint_mult + resultVar $envmaptint + } + } + +} diff --git a/materials/models/molda/toyota_int/rotor.vtf b/materials/models/molda/toyota_int/rotor.vtf new file mode 100644 index 000000000..f2593906c Binary files /dev/null and b/materials/models/molda/toyota_int/rotor.vtf differ diff --git a/materials/models/molda/toyota_int/rotorbaseemit.vmt b/materials/models/molda/toyota_int/rotorbaseemit.vmt new file mode 100644 index 000000000..8d582c2ba --- /dev/null +++ b/materials/models/molda/toyota_int/rotorbaseemit.vmt @@ -0,0 +1,10 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/rotorbaseemit" + + "$selfillum" 1 + "$selfillummask" "models/molda/toyota_int/rotorbaseemit" + + "$nodecal" "1" + "$nocull" "0" +} diff --git a/materials/models/molda/toyota_int/rotorbaseemit.vtf b/materials/models/molda/toyota_int/rotorbaseemit.vtf new file mode 100644 index 000000000..3b324ba3b Binary files /dev/null and b/materials/models/molda/toyota_int/rotorbaseemit.vtf differ diff --git a/materials/models/molda/toyota_int/rotorbott.vmt b/materials/models/molda/toyota_int/rotorbott.vmt new file mode 100644 index 000000000..251a3e667 --- /dev/null +++ b/materials/models/molda/toyota_int/rotorbott.vmt @@ -0,0 +1,30 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/rotorbott" + + "$color2" "[0.8 0.8 0.8]" + + "$surfaceprop" "Metal" + + "$envmap" "models/molda/toyota_int/environment" + "$envmaptint" "[0.2 0.9 1]" + "$envmapmask" "models/molda/toyota_int/smudgeN" + + "$nodecal" "1" + "$nocull" "0" + + $envmaptint_mult "0.5" + $envmaptint_color "[0.2 0.9 1]" + + Proxies { + TARDIS_DefaultInt_EnvColor { + resultVar $envmaptint_color + } + Multiply { + srcVar1 $envmaptint_color + srcVar2 $envmaptint_mult + resultVar $envmaptint + } + } + +} diff --git a/materials/models/molda/toyota_int/rotorbott.vtf b/materials/models/molda/toyota_int/rotorbott.vtf new file mode 100644 index 000000000..116f6d90e Binary files /dev/null and b/materials/models/molda/toyota_int/rotorbott.vtf differ diff --git a/materials/models/molda/toyota_int/rotordisc.vmt b/materials/models/molda/toyota_int/rotordisc.vmt new file mode 100644 index 000000000..33104a3cf --- /dev/null +++ b/materials/models/molda/toyota_int/rotordisc.vmt @@ -0,0 +1,29 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/rotordisc" + + "$color2" "[0.9 0.9 0.9]" + + "$surfaceprop" "Metal" + + "$envmap" "models/molda/toyota_int/environment" + "$envmaptint" "[0.2 0.9 1]" + "$envmapmask" "models/molda/toyota_int/smudge2N" + + "$nodecal" "1" + "$nocull" "1" + + $envmaptint_mult "1.6" + $envmaptint_color "[1 1 1]" + Proxies { + TARDIS_DefaultInt_EnvColor { + resultVar $envmaptint_color + } + Multiply { + srcVar1 $envmaptint_color + srcVar2 $envmaptint_mult + resultVar $envmaptint + } + } + +} diff --git a/materials/models/molda/toyota_int/rotordisc.vtf b/materials/models/molda/toyota_int/rotordisc.vtf new file mode 100644 index 000000000..a2f22759b Binary files /dev/null and b/materials/models/molda/toyota_int/rotordisc.vtf differ diff --git a/materials/models/molda/toyota_int/rotorglass.vmt b/materials/models/molda/toyota_int/rotorglass.vmt new file mode 100644 index 000000000..2da45fd73 --- /dev/null +++ b/materials/models/molda/toyota_int/rotorglass.vmt @@ -0,0 +1,24 @@ +"vertexlitgeneric" +{ + //"$additive" 1 + "$basetexture" "models/molda/toyota_int/rotorglass" + + "$surfaceprop" "glass" + "$envmap" "models/molda/toyota_int/environment" + "$envmaptint" "[ 0.1 0.5 0.5 ]" + "$envmapfresnel" "0.75" + "$translucent" "1" + "$nocull" "1" + "$color2" "[ 0.2 0.2 0.2 ]" + + "$phong" "1" + "$phongexponent" "63" + "$phongboost" "2" + "$phongfresnelranges" "[1 8 4]" + "$phongtint" "[ .5 .5 .5 ]" + "$halflambert" "1" + + "$rimlight" "1" + "$rimlightexponent" "12" + "$rimlightboost" "0.8" +} diff --git a/materials/models/molda/toyota_int/rotorglass.vtf b/materials/models/molda/toyota_int/rotorglass.vtf new file mode 100644 index 000000000..72738b8ce Binary files /dev/null and b/materials/models/molda/toyota_int/rotorglass.vtf differ diff --git a/materials/models/molda/toyota_int/rotorlights.vmt b/materials/models/molda/toyota_int/rotorlights.vmt new file mode 100644 index 000000000..0411ce230 --- /dev/null +++ b/materials/models/molda/toyota_int/rotorlights.vmt @@ -0,0 +1,33 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/rotorlights" + + "$color2" "[0.9 0.7 0.5]" + + "$surfaceprop" "Metal" + + "$selfillum" "1" + "$selfillummask" "models/molda/toyota_int/white" + "$selfillumtint" "[3 3 3]" + + "$nodecal" "1" + "$nocull" "0" + + $selfillum_on "[3 3 3]" + $selfillum_off "[0 0 0]" + $color2_on "[0.9 0.7 0.5]" + $color2_off "[0.3 0.3 0.3]" + "Proxies" + { + TARDIS_Power { + onVar "$selfillum_on" + offVar "$selfillum_off" + resultVar "$selfillumtint" + } + TARDIS_Power2 { + onVar "$color2_on" + offVar "$color2_off" + resultVar "$color2" + } + } +} diff --git a/materials/models/molda/toyota_int/rotorlights.vtf b/materials/models/molda/toyota_int/rotorlights.vtf new file mode 100644 index 000000000..bb1d6708c Binary files /dev/null and b/materials/models/molda/toyota_int/rotorlights.vtf differ diff --git a/materials/models/molda/toyota_int/rotormid.vmt b/materials/models/molda/toyota_int/rotormid.vmt new file mode 100644 index 000000000..8740a2a16 --- /dev/null +++ b/materials/models/molda/toyota_int/rotormid.vmt @@ -0,0 +1,30 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/rotormid" + + "$color2" "[0.8 0.8 0.8]" + + "$surfaceprop" "Metal" + + "$envmap" "models/molda/toyota_int/environment" + "$envmaptint" "[0.2 0.9 1]" + "$envmapmask" "models/molda/toyota_int/smudgeN" + + "$nodecal" "1" + "$nocull" "0" + + $envmaptint_mult "0.5" + $envmaptint_color "[0.2 0.9 1]" + + Proxies { + TARDIS_DefaultInt_EnvColor { + resultVar $envmaptint_color + } + Multiply { + srcVar1 $envmaptint_color + srcVar2 $envmaptint_mult + resultVar $envmaptint + } + } + +} diff --git a/materials/models/molda/toyota_int/rotormid.vtf b/materials/models/molda/toyota_int/rotormid.vtf new file mode 100644 index 000000000..66711c029 Binary files /dev/null and b/materials/models/molda/toyota_int/rotormid.vtf differ diff --git a/materials/models/molda/toyota_int/rotortop.vmt b/materials/models/molda/toyota_int/rotortop.vmt new file mode 100644 index 000000000..5b5abcdcb --- /dev/null +++ b/materials/models/molda/toyota_int/rotortop.vmt @@ -0,0 +1,30 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/rotortop" + + "$color2" "[0.8 0.8 0.8]" + + "$surfaceprop" "Metal" + + "$envmap" "models/molda/toyota_int/environment" + "$envmaptint" "[0.2 0.9 1]" + "$envmapmask" "models/molda/toyota_int/smudgeN" + + "$nodecal" "1" + "$nocull" "0" + + $envmaptint_mult "0.5" + $envmaptint_color "[0.2 0.9 1]" + + Proxies { + TARDIS_DefaultInt_EnvColor { + resultVar $envmaptint_color + } + Multiply { + srcVar1 $envmaptint_color + srcVar2 $envmaptint_mult + resultVar $envmaptint + } + } + +} diff --git a/materials/models/molda/toyota_int/rotortop.vtf b/materials/models/molda/toyota_int/rotortop.vtf new file mode 100644 index 000000000..df8108862 Binary files /dev/null and b/materials/models/molda/toyota_int/rotortop.vtf differ diff --git a/materials/models/molda/toyota_int/roundellights.vmt b/materials/models/molda/toyota_int/roundellights.vmt new file mode 100644 index 000000000..57ed6d34b --- /dev/null +++ b/materials/models/molda/toyota_int/roundellights.vmt @@ -0,0 +1,39 @@ +"UnlitGeneric" +{ + "$basetexture" "models/molda/toyota_int/roundellights" + "$surfaceprop" "Metal" + + "$selfillum" 1 + "$selfillummask" "models/molda/toyota_int/roundellights" + + "$nodecal" "1" + "$nocull" "0" + + $sine 0 + Proxies + { + + Sine + { + sineperiod 10 + sinemin 0.7 + sinemax 2.5 + resultVar $sine + } + Equals + { + srcVar1 $sine + resultVar "$color2[0]" + } + Equals + { + srcVar1 $sine + resultVar "$color2[1]" + } + Equals + { + srcVar1 $sine + resultVar "$color2[2]" + } + } +} \ No newline at end of file diff --git a/materials/models/molda/toyota_int/roundellights.vtf b/materials/models/molda/toyota_int/roundellights.vtf new file mode 100644 index 000000000..007b2a8e7 Binary files /dev/null and b/materials/models/molda/toyota_int/roundellights.vtf differ diff --git a/materials/models/molda/toyota_int/roundels.vmt b/materials/models/molda/toyota_int/roundels.vmt new file mode 100644 index 000000000..f36c9f5a1 --- /dev/null +++ b/materials/models/molda/toyota_int/roundels.vmt @@ -0,0 +1,8 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/roundels" + "$surfaceprop" "Metal" + "$nodecal" "1" + "$nocull" "0" + +} diff --git a/materials/models/molda/toyota_int/roundels.vtf b/materials/models/molda/toyota_int/roundels.vtf new file mode 100644 index 000000000..81b11d4cb Binary files /dev/null and b/materials/models/molda/toyota_int/roundels.vtf differ diff --git a/materials/models/molda/toyota_int/screen.vmt b/materials/models/molda/toyota_int/screen.vmt new file mode 100644 index 000000000..5bafafd97 --- /dev/null +++ b/materials/models/molda/toyota_int/screen.vmt @@ -0,0 +1,26 @@ +"VertexlitGeneric" +{ + "$basetexture" "models/molda/toyota_int/screen" + "$bumpmap" "models/cem/toyota_contr/glass_normal" + "$surfaceprop" "Glass" + "$selfillum" 1 + "$selfillummask" "models/molda/toyota_int/white" + + "$nodecal" "1" + + $color2_on "[1 1 1]" + $color2_off "[0 0 0]" + "Proxies" + { + "AnimatedTexture" { + "animatedTextureVar" "$basetexture" + "animatedTextureFrameNumVar" "$frame" + "animatedTextureFrameRate" "10" + } + TARDIS_Power { + onVar "$color2_on" + offVar "$color2_off" + resultVar "$color2" + } + } +} \ No newline at end of file diff --git a/materials/models/molda/toyota_int/screen.vtf b/materials/models/molda/toyota_int/screen.vtf new file mode 100644 index 000000000..be56a13b3 Binary files /dev/null and b/materials/models/molda/toyota_int/screen.vtf differ diff --git a/materials/models/molda/toyota_int/screen_loading.vmt b/materials/models/molda/toyota_int/screen_loading.vmt new file mode 100644 index 000000000..688d2ed2d --- /dev/null +++ b/materials/models/molda/toyota_int/screen_loading.vmt @@ -0,0 +1,26 @@ +"VertexlitGeneric" +{ + "$basetexture" "models/molda/toyota_int/screen_loading" + "$bumpmap" "models/cem/toyota_contr/glass_normal" + "$surfaceprop" "Glass" + "$selfillum" 1 + "$selfillummask" "models/molda/toyota_int/white" + + "$nodecal" "1" + + $color2_on "[1 1 1]" + $color2_off "[0 0 0]" + "Proxies" + { + "AnimatedTexture" { + "animatedTextureVar" "$basetexture" + "animatedTextureFrameNumVar" "$frame" + "animatedTextureFrameRate" "10" + } + TARDIS_Power { + onVar "$color2_on" + offVar "$color2_off" + resultVar "$color2" + } + } +} \ No newline at end of file diff --git a/materials/models/molda/toyota_int/screen_loading.vtf b/materials/models/molda/toyota_int/screen_loading.vtf new file mode 100644 index 000000000..932c4a596 Binary files /dev/null and b/materials/models/molda/toyota_int/screen_loading.vtf differ diff --git a/materials/models/molda/toyota_int/secondary.vmt b/materials/models/molda/toyota_int/secondary.vmt new file mode 100644 index 000000000..64e33612a --- /dev/null +++ b/materials/models/molda/toyota_int/secondary.vmt @@ -0,0 +1,13 @@ +"UnlitGeneric" +{ + "$basetexture" "models/molda/toyota_int/secondary" + + "$selfillum" 1 + "$selfillummask" "/models/molda/toyota_int/secondary" + + "$surfaceprop" "Metal" + + "$nodecal" "1" + "$nocull" "0" + +} diff --git a/materials/models/molda/toyota_int/secondary.vtf b/materials/models/molda/toyota_int/secondary.vtf new file mode 100644 index 000000000..ddcc8f2dc Binary files /dev/null and b/materials/models/molda/toyota_int/secondary.vtf differ diff --git a/materials/models/molda/toyota_int/setroof.vmt b/materials/models/molda/toyota_int/setroof.vmt new file mode 100644 index 000000000..5a2b20477 --- /dev/null +++ b/materials/models/molda/toyota_int/setroof.vmt @@ -0,0 +1,12 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/setroof" + + "$color2" "[0 0 0]" + + "$surfaceprop" "Metal" + + "$nodecal" "1" + "$nocull" "0" + +} diff --git a/materials/models/molda/toyota_int/setroof.vtf b/materials/models/molda/toyota_int/setroof.vtf new file mode 100644 index 000000000..c0fcf5f21 Binary files /dev/null and b/materials/models/molda/toyota_int/setroof.vtf differ diff --git a/materials/models/molda/toyota_int/silver.vmt b/materials/models/molda/toyota_int/silver.vmt new file mode 100644 index 000000000..734a8b7af --- /dev/null +++ b/materials/models/molda/toyota_int/silver.vmt @@ -0,0 +1,23 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/silver" + "$surfaceprop" "Metal" + + "$envmap" "models/molda/toyota_int/environment" + "$envmaptint" "[0.2 0.2 0.2]" + + "$nodecal" "1" + "$nocull" "0" + + $envmaptint_on "[0.2 0.2 0.2]" + $envmaptint_off "[0 0 0]" + + "Proxies" + { + TARDIS_Power2 { + onVar "$envmaptint_on" + offVar "$envmaptint_off" + resultVar "$envmaptint" + } + } +} diff --git a/materials/models/molda/toyota_int/silver.vtf b/materials/models/molda/toyota_int/silver.vtf new file mode 100644 index 000000000..3bde3481b Binary files /dev/null and b/materials/models/molda/toyota_int/silver.vtf differ diff --git a/materials/models/molda/toyota_int/silver2.vmt b/materials/models/molda/toyota_int/silver2.vmt new file mode 100644 index 000000000..4efee1558 --- /dev/null +++ b/materials/models/molda/toyota_int/silver2.vmt @@ -0,0 +1,12 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/silver" + "$surfaceprop" "Metal" + + "$envmap" "models/molda/toyota_int/cubemap1" + "$envmaptint" "[0.2 0.2 0.2]" + + "$nodecal" "1" + "$nocull" "0" + +} diff --git a/materials/models/molda/toyota_int/smudge2N.vtf b/materials/models/molda/toyota_int/smudge2N.vtf new file mode 100644 index 000000000..b3e757c8e Binary files /dev/null and b/materials/models/molda/toyota_int/smudge2N.vtf differ diff --git a/materials/models/molda/toyota_int/smudgeN.vtf b/materials/models/molda/toyota_int/smudgeN.vtf new file mode 100644 index 000000000..0b6fe3250 Binary files /dev/null and b/materials/models/molda/toyota_int/smudgeN.vtf differ diff --git a/materials/models/molda/toyota_int/sonic_charger_lights.vmt b/materials/models/molda/toyota_int/sonic_charger_lights.vmt new file mode 100644 index 000000000..2746361e7 --- /dev/null +++ b/materials/models/molda/toyota_int/sonic_charger_lights.vmt @@ -0,0 +1,41 @@ +"VertexLitGeneric" +{ + $basetexture "models/molda/toyota_int/white" + $color2 "[1 0.8 0]" + + $selfillum 1 + $selfillummask "models/molda/toyota_int/white" + $selfillumtint "[0 0 0]" + + $selfillum_on_default "[1 1 1]" + $selfillum_on "[1 1 1]" + $selfillum_off "[0 0 0]" + $selfillumtint_set "[0 0 0]" + + $sine 1 + + "Proxies" + { + TARDIS_DefaultInt_SonicCharger { + onVar "$selfillum_on" + offVar "$selfillum_off" + resultVar "$selfillumtint_set" + } + Multiply { + srcVar1 $selfillumtint_set + srcVar2 $sine + resultVar $selfillumtint + } + Sine { + sineperiod 1 + sinemin 0.6 + sinemax 1.3 + resultVar $sine + } + TARDIS_Power { + onVar "$selfillum_on_default" + offVar "$selfillum_off" + resultVar "$selfillum_on" + } + } +} diff --git a/materials/models/molda/toyota_int/sonic_charger_lights_top.vmt b/materials/models/molda/toyota_int/sonic_charger_lights_top.vmt new file mode 100644 index 000000000..2746361e7 --- /dev/null +++ b/materials/models/molda/toyota_int/sonic_charger_lights_top.vmt @@ -0,0 +1,41 @@ +"VertexLitGeneric" +{ + $basetexture "models/molda/toyota_int/white" + $color2 "[1 0.8 0]" + + $selfillum 1 + $selfillummask "models/molda/toyota_int/white" + $selfillumtint "[0 0 0]" + + $selfillum_on_default "[1 1 1]" + $selfillum_on "[1 1 1]" + $selfillum_off "[0 0 0]" + $selfillumtint_set "[0 0 0]" + + $sine 1 + + "Proxies" + { + TARDIS_DefaultInt_SonicCharger { + onVar "$selfillum_on" + offVar "$selfillum_off" + resultVar "$selfillumtint_set" + } + Multiply { + srcVar1 $selfillumtint_set + srcVar2 $sine + resultVar $selfillumtint + } + Sine { + sineperiod 1 + sinemin 0.6 + sinemax 1.3 + resultVar $sine + } + TARDIS_Power { + onVar "$selfillum_on_default" + offVar "$selfillum_off" + resultVar "$selfillum_on" + } + } +} diff --git a/materials/models/molda/toyota_int/telepathics.vmt b/materials/models/molda/toyota_int/telepathics.vmt new file mode 100644 index 000000000..34b4a54c6 --- /dev/null +++ b/materials/models/molda/toyota_int/telepathics.vmt @@ -0,0 +1,101 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/telepathics" + + "$surfaceprop" "Metal" + + //"$envmap" "models/molda/toyota_int/environment" + //"$envmaptint" "[0.2 0.45 0.6]" + + "$selfillum" "1" + "$selfillummask" "models/molda/toyota_int/white" + $selfillumtint "[0 0 0]" + $color2 "[0 1.4 1.8]" + + "$nodecal" "1" + "$nocull" "0" + + $sine_basic 1 + $sine_use 0 + $sine_add 1 + $sine_r 1 + $sine_g 1 + $sine_b 1 + + $selfillum_on "[1 1 1]" + $selfillum_off "[0.1 0.1 0.1]" + + $color2_on "[0 1.4 1.8]" + $color2_off "[0.5 0.5 0.5]" + + "Proxies" + { + TARDIS_Power { + onVar "$selfillum_on" + offVar "$selfillum_off" + resultVar "$selfillumtint" + } + TARDIS_Power2 { + onVar "$color2_on" + offVar "$color2_off" + resultVar "$color2" + } + TARDIS_DefaultInt_TelepathicsAddColor { + resultVar "$sine_use" + } + Sine + { + sineperiod 10 + sinemin -0.3 + sinemax 0 + resultVar "$sine_basic" + } + Add + { + srcVar1 $sine_basic + srcVar2 $sine_use + resultVar "$sine_add" + } + Sine + { + sineperiod 32 + sinemin -0.8 + sinemax 0.7 + resultVar "$sine_r" + } + Sine + { + sineperiod 16 + timeoffset 16 + sinemin 0.8 + sinemax 1.4 + resultVar "$sine_g" + } + Sine + { + sineperiod 16 + sinemin 1 + sinemax 1.8 + resultVar "$sine_b" + } + Add + { + srcVar1 $sine_r + srcVar2 $sine_add + resultVar "$color2_on[0]" + } + Add + { + srcVar1 $sine_g + srcVar2 $sine_add + resultVar "$color2_on[1]" + } + Add + { + srcVar1 $sine_b + srcVar2 $sine_add + resultVar "$color2_on[2]" + } + + } +} diff --git a/materials/models/molda/toyota_int/telepathics.vtf b/materials/models/molda/toyota_int/telepathics.vtf new file mode 100644 index 000000000..c7f977353 Binary files /dev/null and b/materials/models/molda/toyota_int/telepathics.vtf differ diff --git a/materials/models/molda/toyota_int/toplights.vmt b/materials/models/molda/toyota_int/toplights.vmt new file mode 100644 index 000000000..9b0774570 --- /dev/null +++ b/materials/models/molda/toyota_int/toplights.vmt @@ -0,0 +1,82 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/bulbs" + "$surfaceprop" "Glass" + + //"$color2" "[0.85 0.65 0.5]" + + "$selfillum" "1" + "$selfillummask" "/models/molda/toyota_int/bulbs" + "$selfillumtint" "[4 4 4]" + + "$nodecal" "1" + "$nocull" "0" + + $selfillum_on "[4 4 4]" + $selfillum_off "[0 0 0]" + $color2_on "[0.85 0.65 0.5]" + $color2_off "[0.3 0.3 0.3]" + + "Proxies" + { + TARDIS_Power { + onVar "$selfillum_on" + offVar "$selfillum_off" + resultVar "$selfillumtint" + } + TARDIS_Power2 { + onVar "$color2_on" + offVar "$color2_off" + resultVar "$color2" + } + + TARDIS_State { + resultTextureVar $basetexture + resultFrameVar $frame + + textures { + idle "models/molda/toyota_int/bulbs" + handbrake "models/molda/toyota_int/bulbs" + interrupt "models/molda/toyota_int/bulbs" + demat_fail "models/molda/toyota_int/bulbs" + mat_fail "models/molda/toyota_int/toplights" + travel "models/molda/toyota_int/toplights" + demat "models/molda/toyota_int/toplights" + mat "models/molda/toyota_int/bulbs" + off "models/molda/toyota_int/toplights_off" + + idle_warning "models/molda/toyota_int/bulbs_half" + handbrake_warning "models/molda/toyota_int/bulbs_half" + interrupt_warning "models/molda/toyota_int/bulbs_half" + demat_fail_warning "models/molda/toyota_int/bulbs_half" + mat_fail_warning "models/molda/toyota_int/toplights" + travel_warning "models/molda/toyota_int/toplights" + demat_warning "models/molda/toyota_int/toplights" + mat_warning "models/molda/toyota_int/bulbs" + off_warning "models/molda/toyota_int/bulbs_off" + } + frameRates { + idle 0 + handbrake 0 + interrupt 0 + demat_fail 0 + mat_fail 10 + travel 10 + demat 10 + mat 0 + off 0 + + idle_warning 0 + handbrake_warning 0 + interrupt_warning 0 + demat_fail_warning 0 + mat_fail_warning 10 + travel_warning 10 + demat_warning 10 + mat_warning 0 + off_warning 0 + } + } + } +} + diff --git a/materials/models/molda/toyota_int/toplights.vtf b/materials/models/molda/toyota_int/toplights.vtf new file mode 100644 index 000000000..f07b49fb5 Binary files /dev/null and b/materials/models/molda/toyota_int/toplights.vtf differ diff --git a/materials/models/molda/toyota_int/toplights_off.vtf b/materials/models/molda/toyota_int/toplights_off.vtf new file mode 100644 index 000000000..46d03e312 Binary files /dev/null and b/materials/models/molda/toyota_int/toplights_off.vtf differ diff --git a/materials/models/molda/toyota_int/wallroundels.vmt b/materials/models/molda/toyota_int/wallroundels.vmt new file mode 100644 index 000000000..8a4c74b12 --- /dev/null +++ b/materials/models/molda/toyota_int/wallroundels.vmt @@ -0,0 +1,12 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/wallroundels" + + "$surfaceprop" "Glass" + + "$selfillum" 1 + "$selfillummask" "models/molda/toyota_int/wallroundels" + + "$nodecal" "1" + "$nocull" "0" +} diff --git a/materials/models/molda/toyota_int/wallroundels.vtf b/materials/models/molda/toyota_int/wallroundels.vtf new file mode 100644 index 000000000..c5f93240d Binary files /dev/null and b/materials/models/molda/toyota_int/wallroundels.vtf differ diff --git a/materials/models/molda/toyota_int/walls2new.vmt b/materials/models/molda/toyota_int/walls2new.vmt new file mode 100644 index 000000000..001cdaf60 --- /dev/null +++ b/materials/models/molda/toyota_int/walls2new.vmt @@ -0,0 +1,28 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/walls2new" + + //"$color2" "[0.9 0.9 0.8]" + + "$surfaceprop" "Metal" + + "$envmap" "models/molda/toyota_int/environment" + "$envmaptint" "[0.05 0.15 0.15]" + + "$nodecal" "1" + "$nocull" "0" + + $envmaptint_mult "0.15" + $envmaptint_color "[1 1 1]" + Proxies + { + TARDIS_DefaultInt_EnvColor { + resultVar $envmaptint_color + } + Multiply { + srcVar1 $envmaptint_color + srcVar2 $envmaptint_mult + resultVar $envmaptint + } + } +} diff --git a/materials/models/molda/toyota_int/walls2new.vtf b/materials/models/molda/toyota_int/walls2new.vtf new file mode 100644 index 000000000..c2c76a067 Binary files /dev/null and b/materials/models/molda/toyota_int/walls2new.vtf differ diff --git a/materials/models/molda/toyota_int/wallsnew.vmt b/materials/models/molda/toyota_int/wallsnew.vmt new file mode 100644 index 000000000..5394a0ae7 --- /dev/null +++ b/materials/models/molda/toyota_int/wallsnew.vmt @@ -0,0 +1,30 @@ +"VertexLitGeneric" +{ + "$basetexture" "models/molda/toyota_int/wallsnew" + + "$color2" "[0.8 0.8 0.8]" + + "$surfaceprop" "Metal" + + "$envmap" "models/molda/toyota_int/environment" +// "$envmaptint" "[0.1 0.3 0.35]" +// "$envmaptint" "[0.2 0.9 1]" + "$envmaptint" "[0.1 0.45 0.5]" + "$envmapmask" "models/molda/toyota_int/smudgeN" + + "$nodecal" "1" + "$nocull" "0" + + $envmaptint_mult "0.5" + $envmaptint_color "[1 1 1]" + Proxies { + TARDIS_DefaultInt_EnvColor { + resultVar $envmaptint_color + } + Multiply { + srcVar1 $envmaptint_color + srcVar2 $envmaptint_mult + resultVar $envmaptint + } + } +} diff --git a/materials/models/molda/toyota_int/wallsnew.vtf b/materials/models/molda/toyota_int/wallsnew.vtf new file mode 100644 index 000000000..1e63f2937 Binary files /dev/null and b/materials/models/molda/toyota_int/wallsnew.vtf differ diff --git a/materials/models/molda/toyota_int/white.vtf b/materials/models/molda/toyota_int/white.vtf new file mode 100644 index 000000000..f0abe9887 Binary files /dev/null and b/materials/models/molda/toyota_int/white.vtf differ diff --git a/materials/models/vtalanov98/hellbentext/exterior.vmt b/materials/models/vtalanov98/hellbentext/exterior.vmt deleted file mode 100644 index e34d841d6..000000000 --- a/materials/models/vtalanov98/hellbentext/exterior.vmt +++ /dev/null @@ -1,8 +0,0 @@ -"VertexlitGeneric" -{ - "$basetexture" "models/vtalanov98/hellbentext/exterior" - "$envmap" "models/vtalanov98/hellbentext/environment" - "$envmaptint" "[0.4 0.4 0.4]" - "$nodecal" "1" - "$surfaceprop" "Glass" -} diff --git a/materials/models/vtalanov98/hellbentext/exterior.vtf b/materials/models/vtalanov98/hellbentext/exterior.vtf deleted file mode 100644 index 0b616e5cf..000000000 Binary files a/materials/models/vtalanov98/hellbentext/exterior.vtf and /dev/null differ diff --git a/materials/models/vtalanov98/hellbentext/exterior2.vmt b/materials/models/vtalanov98/hellbentext/exterior2.vmt deleted file mode 100644 index 50ffdeb05..000000000 --- a/materials/models/vtalanov98/hellbentext/exterior2.vmt +++ /dev/null @@ -1,8 +0,0 @@ -"VertexlitGeneric" -{ - "$basetexture" "models/vtalanov98/hellbentext/exterior2" - "$envmap" "models/vtalanov98/hellbentext/environment" - "$envmaptint" "[0.4 0.4 0.4]" - "$nodecal" "1" - "$surfaceprop" "Glass" -} diff --git a/materials/models/vtalanov98/hellbentext/exterior2.vtf b/materials/models/vtalanov98/hellbentext/exterior2.vtf deleted file mode 100644 index e9d825afc..000000000 Binary files a/materials/models/vtalanov98/hellbentext/exterior2.vtf and /dev/null differ diff --git a/materials/models/vtalanov98/hellbentext/exterior3.vmt b/materials/models/vtalanov98/hellbentext/exterior3.vmt deleted file mode 100644 index 50ffdeb05..000000000 --- a/materials/models/vtalanov98/hellbentext/exterior3.vmt +++ /dev/null @@ -1,8 +0,0 @@ -"VertexlitGeneric" -{ - "$basetexture" "models/vtalanov98/hellbentext/exterior2" - "$envmap" "models/vtalanov98/hellbentext/environment" - "$envmaptint" "[0.4 0.4 0.4]" - "$nodecal" "1" - "$surfaceprop" "Glass" -} diff --git a/materials/models/vtalanov98/toyota_ext/doorframe.vmt b/materials/models/vtalanov98/toyota_ext/doorframe.vmt new file mode 100644 index 000000000..8bc235d4d --- /dev/null +++ b/materials/models/vtalanov98/toyota_ext/doorframe.vmt @@ -0,0 +1,9 @@ +"VertexlitGeneric" +{ + "$basealphaenvmapmask" "1" + "$basetexture" "models/vtalanov98/toyota_ext/exterior" + "$envmap" "models/vtalanov98/toyota_ext/environment" + "$envmaptint" "[0.3 0.3 0.3]" + "$nodecal" "1" + "$surfaceprop" "Wood_Solid" +} \ No newline at end of file diff --git a/materials/models/vtalanov98/toyota_ext/doorframe_2017.vmt b/materials/models/vtalanov98/toyota_ext/doorframe_2017.vmt new file mode 100644 index 000000000..fbf8c51a5 --- /dev/null +++ b/materials/models/vtalanov98/toyota_ext/doorframe_2017.vmt @@ -0,0 +1,9 @@ +"VertexlitGeneric" +{ + "$basealphaenvmapmask" "1" + "$basetexture" "models/vtalanov98/toyota_ext/exterior_2017" + "$envmap" "models/vtalanov98/toyota_ext/environment" + "$envmaptint" "[0.3 0.3 0.3]" + "$nodecal" "1" + "$surfaceprop" "Wood_Solid" +} \ No newline at end of file diff --git a/materials/models/vtalanov98/toyota_ext/doors.vmt b/materials/models/vtalanov98/toyota_ext/doors.vmt new file mode 100644 index 000000000..01568e2f5 --- /dev/null +++ b/materials/models/vtalanov98/toyota_ext/doors.vmt @@ -0,0 +1,9 @@ +"VertexlitGeneric" +{ + "$basetexture" "models/vtalanov98/toyota_ext/doors" + "$bumpmap" "models/vtalanov98/toyota_ext/doorsn" + "$nodecal" "1" + "$normalmap" "models/vtalanov98/toyota_ext/doorsn" + "$surfaceprop" "Wood_Solid" + "$color2" "[2.8 3 3]" +} \ No newline at end of file diff --git a/materials/models/vtalanov98/toyota_ext/doors.vtf b/materials/models/vtalanov98/toyota_ext/doors.vtf new file mode 100644 index 000000000..e89e981f6 Binary files /dev/null and b/materials/models/vtalanov98/toyota_ext/doors.vtf differ diff --git a/materials/models/vtalanov98/toyota_ext/doorsign.vmt b/materials/models/vtalanov98/toyota_ext/doorsign.vmt new file mode 100644 index 000000000..6df8f9a64 --- /dev/null +++ b/materials/models/vtalanov98/toyota_ext/doorsign.vmt @@ -0,0 +1,8 @@ +"VertexlitGeneric" +{ + "$basetexture" "models/vtalanov98/toyota_ext/doorsign" + "$nodecal" "1" + "$selfillum" "1" + "$selfillummask" "models/vtalanov98/toyota_ext/white" + "$surfaceprop" "Plastic" +} \ No newline at end of file diff --git a/materials/models/vtalanov98/toyota_ext/doorsign.vtf b/materials/models/vtalanov98/toyota_ext/doorsign.vtf new file mode 100644 index 000000000..ad85f2474 Binary files /dev/null and b/materials/models/vtalanov98/toyota_ext/doorsign.vtf differ diff --git a/materials/models/vtalanov98/toyota_ext/doorsign_2017.vmt b/materials/models/vtalanov98/toyota_ext/doorsign_2017.vmt new file mode 100644 index 000000000..6df8f9a64 --- /dev/null +++ b/materials/models/vtalanov98/toyota_ext/doorsign_2017.vmt @@ -0,0 +1,8 @@ +"VertexlitGeneric" +{ + "$basetexture" "models/vtalanov98/toyota_ext/doorsign" + "$nodecal" "1" + "$selfillum" "1" + "$selfillummask" "models/vtalanov98/toyota_ext/white" + "$surfaceprop" "Plastic" +} \ No newline at end of file diff --git a/materials/models/vtalanov98/toyota_ext/doorsn.vtf b/materials/models/vtalanov98/toyota_ext/doorsn.vtf new file mode 100644 index 000000000..43764e272 Binary files /dev/null and b/materials/models/vtalanov98/toyota_ext/doorsn.vtf differ diff --git a/materials/models/vtalanov98/toyota_ext/e_box_bumpmap.vtf b/materials/models/vtalanov98/toyota_ext/e_box_bumpmap.vtf new file mode 100644 index 000000000..e27394970 Binary files /dev/null and b/materials/models/vtalanov98/toyota_ext/e_box_bumpmap.vtf differ diff --git a/materials/models/vtalanov98/toyota_ext/environment.vtf b/materials/models/vtalanov98/toyota_ext/environment.vtf new file mode 100644 index 000000000..3b393a4e3 Binary files /dev/null and b/materials/models/vtalanov98/toyota_ext/environment.vtf differ diff --git a/materials/models/vtalanov98/toyota_ext/exterior.vmt b/materials/models/vtalanov98/toyota_ext/exterior.vmt new file mode 100644 index 000000000..bc1231672 --- /dev/null +++ b/materials/models/vtalanov98/toyota_ext/exterior.vmt @@ -0,0 +1,19 @@ +"VertexlitGeneric" +{ + $basetexture "models/vtalanov98/toyota_ext/exterior" + $bumpmap "models/vtalanov98/toyota_ext/e_box_bumpmap" + $envmaptint "[.0125 .0125 .0125]" + $diffuseexp 1 + $halflambert 1 + $nocull 0 + $nodecal 1 + $phong 1 + $phongalbedotint 1 + $phongalbedoboost 255 + $phongexponenttexture "models/vtalanov98/toyota_ext/tardis_e_r" + $phongboost .2 + $phongfresnelranges "[.175 .175 .175]" + $rimlight 1 + $rimlightexponent 11 + $rimlightboost .5 +} \ No newline at end of file diff --git a/materials/models/vtalanov98/toyota_ext/exterior.vtf b/materials/models/vtalanov98/toyota_ext/exterior.vtf new file mode 100644 index 000000000..331248371 Binary files /dev/null and b/materials/models/vtalanov98/toyota_ext/exterior.vtf differ diff --git a/materials/models/vtalanov98/toyota_ext/exterior_2017.vmt b/materials/models/vtalanov98/toyota_ext/exterior_2017.vmt new file mode 100644 index 000000000..d1fd4bf32 --- /dev/null +++ b/materials/models/vtalanov98/toyota_ext/exterior_2017.vmt @@ -0,0 +1,18 @@ +"VertexlitGeneric" +{ + "$basetexture" "models/vtalanov98/toyota_ext/exterior_2017" + $bumpmap "models/vtalanov98/toyota_ext/e_box_bumpmap" + $envmaptint "[.0125 .0125 .0125]" + $diffuseexp 1 + $halflambert 1 + $nocull 0 + $phong 1 + $phongalbedotint 1 + $phongalbedoboost 255 + $phongexponenttexture "models/vtalanov98/toyota_ext/tardis_e_r" + $phongboost .2 + $phongfresnelranges "[.175 .175 .175]" + $rimlight 1 + $rimlightexponent 11 + $rimlightboost .5 +} \ No newline at end of file diff --git a/materials/models/vtalanov98/toyota_ext/exterior_2017.vtf b/materials/models/vtalanov98/toyota_ext/exterior_2017.vtf new file mode 100644 index 000000000..1b274ef64 Binary files /dev/null and b/materials/models/vtalanov98/toyota_ext/exterior_2017.vtf differ diff --git a/materials/models/vtalanov98/toyota_ext/exteriorlamp.vmt b/materials/models/vtalanov98/toyota_ext/exteriorlamp.vmt new file mode 100644 index 000000000..f55619bdf --- /dev/null +++ b/materials/models/vtalanov98/toyota_ext/exteriorlamp.vmt @@ -0,0 +1,9 @@ +"VertexlitGeneric" +{ + "$basetexture" "models/vtalanov98/toyota_ext/exteriorlamp" + "$envmap" "models/vtalanov98/toyota_ext/environment" + "$envmaptint" "[0.3 0.3 0.3]" + "$nodecal" "1" + "$halflambert" "1" + "$surfaceprop" "Glass" +} \ No newline at end of file diff --git a/materials/models/vtalanov98/toyota_ext/exteriorlamp.vtf b/materials/models/vtalanov98/toyota_ext/exteriorlamp.vtf new file mode 100644 index 000000000..28e6cd12c Binary files /dev/null and b/materials/models/vtalanov98/toyota_ext/exteriorlamp.vtf differ diff --git a/materials/models/vtalanov98/toyota_ext/lock.vmt b/materials/models/vtalanov98/toyota_ext/lock.vmt new file mode 100644 index 000000000..7661f3a08 --- /dev/null +++ b/materials/models/vtalanov98/toyota_ext/lock.vmt @@ -0,0 +1,8 @@ +"VertexlitGeneric" +{ + "$basetexture" "models/vtalanov98/toyota_ext/lock" + "$envmap" "models/vtalanov98/toyota_ext/environment" + "$envmaptint" "[0.5 0.5 0.5]" + "$nodecal" "1" + "$surfaceprop" "Wood_Solid" +} \ No newline at end of file diff --git a/materials/models/vtalanov98/toyota_ext/lock.vtf b/materials/models/vtalanov98/toyota_ext/lock.vtf new file mode 100644 index 000000000..3e85879bf Binary files /dev/null and b/materials/models/vtalanov98/toyota_ext/lock.vtf differ diff --git a/materials/models/vtalanov98/toyota_ext/lock_off.vmt b/materials/models/vtalanov98/toyota_ext/lock_off.vmt new file mode 100644 index 000000000..18a464c73 --- /dev/null +++ b/materials/models/vtalanov98/toyota_ext/lock_off.vmt @@ -0,0 +1,6 @@ +"VertexlitGeneric" +{ + "$basetexture" "models/vtalanov98/toyota_ext/lock" + "$nodecal" "1" + "$surfaceprop" "Wood_Solid" +} \ No newline at end of file diff --git a/materials/models/vtalanov98/toyota_ext/n.vtf b/materials/models/vtalanov98/toyota_ext/n.vtf new file mode 100644 index 000000000..365b5761a Binary files /dev/null and b/materials/models/vtalanov98/toyota_ext/n.vtf differ diff --git a/materials/models/vtalanov98/toyota_ext/policeboxsign.vmt b/materials/models/vtalanov98/toyota_ext/policeboxsign.vmt new file mode 100644 index 000000000..6fdd484ca --- /dev/null +++ b/materials/models/vtalanov98/toyota_ext/policeboxsign.vmt @@ -0,0 +1,8 @@ +"VertexlitGeneric" +{ + "$basetexture" "models/vtalanov98/toyota_ext/policeboxsign" + "$surfaceprop" "Glass" + "$selfillum" 1 + "$selfillummask" "models/vtalanov98/toyota_ext/white" + "$nodecal" "1" +} diff --git a/materials/models/vtalanov98/toyota_ext/policeboxsign.vtf b/materials/models/vtalanov98/toyota_ext/policeboxsign.vtf new file mode 100644 index 000000000..97289a723 Binary files /dev/null and b/materials/models/vtalanov98/toyota_ext/policeboxsign.vtf differ diff --git a/materials/models/vtalanov98/toyota_ext/policeboxsign_2017.vmt b/materials/models/vtalanov98/toyota_ext/policeboxsign_2017.vmt new file mode 100644 index 000000000..9b1bc28d9 --- /dev/null +++ b/materials/models/vtalanov98/toyota_ext/policeboxsign_2017.vmt @@ -0,0 +1,8 @@ +"VertexlitGeneric" +{ + "$basetexture" "models/vtalanov98/toyota_ext/policeboxsign_2017" + "$surfaceprop" "Glass" + "$selfillum" 1 + "$selfillummask" "models/vtalanov98/toyota_ext/white" + "$nodecal" "1" +} diff --git a/materials/models/vtalanov98/toyota_ext/policeboxsign_2017.vtf b/materials/models/vtalanov98/toyota_ext/policeboxsign_2017.vtf new file mode 100644 index 000000000..a9ac67ff8 Binary files /dev/null and b/materials/models/vtalanov98/toyota_ext/policeboxsign_2017.vtf differ diff --git a/materials/models/vtalanov98/toyota_ext/stjohn.vmt b/materials/models/vtalanov98/toyota_ext/stjohn.vmt new file mode 100644 index 000000000..904b6b60f --- /dev/null +++ b/materials/models/vtalanov98/toyota_ext/stjohn.vmt @@ -0,0 +1,19 @@ +VertexLitGeneric +{ + $basetexture "models/vtalanov98/toyota_ext/stjohn" + $bumpmap "models/TARDISman/tardisman550/bump_random2" + $envmap "env_cubemap" + $envmaptint "[.02 .02 .02]" + $diffuseexp 1 + $halflambert 1 + $nocull 0 + $phong 1 + $phongalbedotint 1 + $phongalbedoboost 255 + $phongexponenttexture "models/TARDISman/tardisman550/tardis_f_r4" + $phongboost .2 + $phongfresnelranges "[.25 .25 .25]" + $rimlight 1 + $rimlightexponent 11 + $rimlightboost .5 +} diff --git a/materials/models/vtalanov98/toyota_ext/stjohn.vtf b/materials/models/vtalanov98/toyota_ext/stjohn.vtf new file mode 100644 index 000000000..a58832e3c Binary files /dev/null and b/materials/models/vtalanov98/toyota_ext/stjohn.vtf differ diff --git a/materials/models/vtalanov98/toyota_ext/tardis_e_r.vtf b/materials/models/vtalanov98/toyota_ext/tardis_e_r.vtf new file mode 100644 index 000000000..abd2c5c80 Binary files /dev/null and b/materials/models/vtalanov98/toyota_ext/tardis_e_r.vtf differ diff --git a/materials/models/vtalanov98/toyota_ext/white.vmt b/materials/models/vtalanov98/toyota_ext/white.vmt new file mode 100644 index 000000000..cc8b0d0dc --- /dev/null +++ b/materials/models/vtalanov98/toyota_ext/white.vmt @@ -0,0 +1,6 @@ +"VertexlitGeneric" +{ + "$basetexture" "models/vtalanov98/toyota_ext/white" + "$nodecal" "1" + "$surfaceprop" "Glass" +} \ No newline at end of file diff --git a/materials/models/vtalanov98/toyota_ext/white.vtf b/materials/models/vtalanov98/toyota_ext/white.vtf new file mode 100644 index 000000000..f0abe9887 Binary files /dev/null and b/materials/models/vtalanov98/toyota_ext/white.vtf differ diff --git a/materials/models/vtalanov98/toyota_ext/windows.vmt b/materials/models/vtalanov98/toyota_ext/windows.vmt new file mode 100644 index 000000000..0c2942594 --- /dev/null +++ b/materials/models/vtalanov98/toyota_ext/windows.vmt @@ -0,0 +1,19 @@ +"VertexlitGeneric" +{ + "$basetexture" "models/vtalanov98/toyota_ext/windows" + "$bumpmap" "models/vtalanov98/toyota_ext/windowsn" + "$envmap" "models/vtalanov98/toyota_ext/environment" + "$envmaptint" "[0.01 0.01 0.01]" + "$nodecal" "0" + "$normalmap" "models/vtalanov98/toyota_ext/windowsn" + "$selfillum" "0" + "$selfillummask" "models/vtalanov98/toyota_ext/white" + "$surfaceprop" "Glass" + + $phong 1 + $phongalbedotint 1 + $phongalbedoboost 255 + $phongexponent 60 + $phongboost .1 + $phongfresnelranges "[1 1 1]" +} \ No newline at end of file diff --git a/materials/models/vtalanov98/toyota_ext/windows.vtf b/materials/models/vtalanov98/toyota_ext/windows.vtf new file mode 100644 index 000000000..5fa22d7a1 Binary files /dev/null and b/materials/models/vtalanov98/toyota_ext/windows.vtf differ diff --git a/materials/models/vtalanov98/toyota_ext/windows2.vmt b/materials/models/vtalanov98/toyota_ext/windows2.vmt new file mode 100644 index 000000000..0ac2545bf --- /dev/null +++ b/materials/models/vtalanov98/toyota_ext/windows2.vmt @@ -0,0 +1,19 @@ +"VertexlitGeneric" +{ + "$basetexture" "models/vtalanov98/toyota_ext/windows2" + "$bumpmap" "models/vtalanov98/toyota_ext/windowsn" + "$envmap" "models/vtalanov98/toyota_ext/environment" + "$envmaptint" "[0.5 0.5 0.5]" + "$nodecal" "1" + "$normalmap" "models/vtalanov98/toyota_ext/windowsn" + "$selfillum" "1" + "$selfillummask" "models/vtalanov98/toyota_ext/white" + "$surfaceprop" "Glass" + + $phong 1 + $phongalbedotint 1 + $phongalbedoboost 255 + $phongexponent 60 + $phongboost .1 + $phongfresnelranges "[1 1 1]" +} \ No newline at end of file diff --git a/materials/models/vtalanov98/toyota_ext/windows2.vtf b/materials/models/vtalanov98/toyota_ext/windows2.vtf new file mode 100644 index 000000000..eae0fe4f1 Binary files /dev/null and b/materials/models/vtalanov98/toyota_ext/windows2.vtf differ diff --git a/materials/models/vtalanov98/toyota_ext/windows2_2017.vmt b/materials/models/vtalanov98/toyota_ext/windows2_2017.vmt new file mode 100644 index 000000000..2aee0f917 --- /dev/null +++ b/materials/models/vtalanov98/toyota_ext/windows2_2017.vmt @@ -0,0 +1,12 @@ +"VertexlitGeneric" +{ + "$basetexture" "models/vtalanov98/toyota_ext/windows2_2017" + "$bumpmap" "models/vtalanov98/toyota_ext/windowsn" + "$envmap" "models/vtalanov98/toyota_ext/environment" + "$envmaptint" "[0.01 0.01 0.01]" + "$nodecal" "0" + "$normalmap" "models/vtalanov98/toyota_ext/windowsn" + "$selfillum" "0" + "$selfillummask" "models/vtalanov98/toyota_ext/white" + "$surfaceprop" "Glass" +} \ No newline at end of file diff --git a/materials/models/vtalanov98/toyota_ext/windows2_2017.vtf b/materials/models/vtalanov98/toyota_ext/windows2_2017.vtf new file mode 100644 index 000000000..5fa22d7a1 Binary files /dev/null and b/materials/models/vtalanov98/toyota_ext/windows2_2017.vtf differ diff --git a/materials/models/vtalanov98/toyota_ext/windows3.vmt b/materials/models/vtalanov98/toyota_ext/windows3.vmt new file mode 100644 index 000000000..02492c5a3 --- /dev/null +++ b/materials/models/vtalanov98/toyota_ext/windows3.vmt @@ -0,0 +1,19 @@ +"VertexlitGeneric" +{ + "$basetexture" "models/vtalanov98/toyota_ext/windows3" + "$bumpmap" "models/vtalanov98/toyota_ext/windowsn" + "$envmap" "models/vtalanov98/toyota_ext/environment" + "$envmaptint" "[0.7 0.7 0.7]" + "$nodecal" "1" + "$normalmap" "models/vtalanov98/toyota_ext/windowsn" + "$selfillum" "1" + "$selfillummask" "models/vtalanov98/toyota_ext/white" + "$surfaceprop" "Glass" + + $phong 1 + $phongalbedotint 1 + $phongalbedoboost 255 + $phongexponent 60 + $phongboost .1 + $phongfresnelranges "[1 1 1]" +} \ No newline at end of file diff --git a/materials/models/vtalanov98/toyota_ext/windows3.vtf b/materials/models/vtalanov98/toyota_ext/windows3.vtf new file mode 100644 index 000000000..8b1407cb5 Binary files /dev/null and b/materials/models/vtalanov98/toyota_ext/windows3.vtf differ diff --git a/materials/models/vtalanov98/toyota_ext/windows3_2017.vmt b/materials/models/vtalanov98/toyota_ext/windows3_2017.vmt new file mode 100644 index 000000000..58ae31ab3 --- /dev/null +++ b/materials/models/vtalanov98/toyota_ext/windows3_2017.vmt @@ -0,0 +1,12 @@ +"VertexlitGeneric" +{ + "$basetexture" "models/vtalanov98/toyota_ext/windows3_2017" + "$bumpmap" "models/vtalanov98/toyota_ext/windowsn" + "$envmap" "models/vtalanov98/toyota_ext/environment" + "$envmaptint" "[0.5 0.5 0.5]" + "$nodecal" "1" + "$normalmap" "models/vtalanov98/toyota_ext/windowsn" + "$selfillum" "1" + "$selfillummask" "models/vtalanov98/toyota_ext/white" + "$surfaceprop" "Glass" +} \ No newline at end of file diff --git a/materials/models/vtalanov98/toyota_ext/windows3_2017.vtf b/materials/models/vtalanov98/toyota_ext/windows3_2017.vtf new file mode 100644 index 000000000..3c8d09352 Binary files /dev/null and b/materials/models/vtalanov98/toyota_ext/windows3_2017.vtf differ diff --git a/materials/models/vtalanov98/toyota_ext/windows_2017.vmt b/materials/models/vtalanov98/toyota_ext/windows_2017.vmt new file mode 100644 index 000000000..1db07cf98 --- /dev/null +++ b/materials/models/vtalanov98/toyota_ext/windows_2017.vmt @@ -0,0 +1,12 @@ +"VertexlitGeneric" +{ + "$basetexture" "models/vtalanov98/toyota_ext/windows_2017" + "$bumpmap" "models/vtalanov98/toyota_ext/windowsn" + "$envmap" "models/vtalanov98/toyota_ext/environment" + "$envmaptint" "[0.01 0.01 0.01]" + "$nodecal" "0" + "$normalmap" "models/vtalanov98/toyota_ext/windowsn" + "$selfillum" "0" + "$selfillummask" "models/vtalanov98/toyota_ext/white" + "$surfaceprop" "Glass" +} \ No newline at end of file diff --git a/materials/models/vtalanov98/toyota_ext/windows_2017.vtf b/materials/models/vtalanov98/toyota_ext/windows_2017.vtf new file mode 100644 index 000000000..9a40dbdc0 Binary files /dev/null and b/materials/models/vtalanov98/toyota_ext/windows_2017.vtf differ diff --git a/materials/models/vtalanov98/toyota_ext/windowsn.vtf b/materials/models/vtalanov98/toyota_ext/windowsn.vtf new file mode 100644 index 000000000..ff75eb7cd Binary files /dev/null and b/materials/models/vtalanov98/toyota_ext/windowsn.vtf differ diff --git a/materials/vgui/entities/tardis/default.jpg b/materials/vgui/entities/tardis/default.jpg new file mode 100644 index 000000000..36aae8029 Binary files /dev/null and b/materials/vgui/entities/tardis/default.jpg differ diff --git a/materials/vgui/entities/tardis/default.png b/materials/vgui/entities/tardis/default.png deleted file mode 100644 index 2ad63ef0c..000000000 Binary files a/materials/vgui/entities/tardis/default.png and /dev/null differ diff --git a/materials/vgui/entities/tardis/exteriors/default.png b/materials/vgui/entities/tardis/exteriors/legacy.png similarity index 100% rename from materials/vgui/entities/tardis/exteriors/default.png rename to materials/vgui/entities/tardis/exteriors/legacy.png diff --git a/materials/vgui/entities/tardis/interiors/default/default.jpg b/materials/vgui/entities/tardis/interiors/default/default.jpg deleted file mode 100644 index 591413c85..000000000 Binary files a/materials/vgui/entities/tardis/interiors/default/default.jpg and /dev/null differ diff --git a/materials/vgui/tardis_shields.png b/materials/vgui/tardis_shields.png new file mode 100644 index 000000000..8b1ee002b Binary files /dev/null and b/materials/vgui/tardis_shields.png differ diff --git a/models/cem/toyota_contr/balls.dx80.vtx b/models/cem/toyota_contr/balls.dx80.vtx new file mode 100644 index 000000000..a063d5f33 Binary files /dev/null and b/models/cem/toyota_contr/balls.dx80.vtx differ diff --git a/models/cem/toyota_contr/balls.dx90.vtx b/models/cem/toyota_contr/balls.dx90.vtx new file mode 100644 index 000000000..105a084cf Binary files /dev/null and b/models/cem/toyota_contr/balls.dx90.vtx differ diff --git a/models/cem/toyota_contr/balls.mdl b/models/cem/toyota_contr/balls.mdl new file mode 100644 index 000000000..19ee8947e Binary files /dev/null and b/models/cem/toyota_contr/balls.mdl differ diff --git a/models/cem/toyota_contr/balls.phy b/models/cem/toyota_contr/balls.phy new file mode 100644 index 000000000..cc11268b8 Binary files /dev/null and b/models/cem/toyota_contr/balls.phy differ diff --git a/models/cem/toyota_contr/balls.sw.vtx b/models/cem/toyota_contr/balls.sw.vtx new file mode 100644 index 000000000..08a35b380 Binary files /dev/null and b/models/cem/toyota_contr/balls.sw.vtx differ diff --git a/models/cem/toyota_contr/balls.vvd b/models/cem/toyota_contr/balls.vvd new file mode 100644 index 000000000..347104ad0 Binary files /dev/null and b/models/cem/toyota_contr/balls.vvd differ diff --git a/models/cem/toyota_contr/bouncy_lever.dx80.vtx b/models/cem/toyota_contr/bouncy_lever.dx80.vtx new file mode 100644 index 000000000..7b62b596c Binary files /dev/null and b/models/cem/toyota_contr/bouncy_lever.dx80.vtx differ diff --git a/models/cem/toyota_contr/bouncy_lever.dx90.vtx b/models/cem/toyota_contr/bouncy_lever.dx90.vtx new file mode 100644 index 000000000..17d4d1020 Binary files /dev/null and b/models/cem/toyota_contr/bouncy_lever.dx90.vtx differ diff --git a/models/cem/toyota_contr/bouncy_lever.mdl b/models/cem/toyota_contr/bouncy_lever.mdl new file mode 100644 index 000000000..0ad1ca7af Binary files /dev/null and b/models/cem/toyota_contr/bouncy_lever.mdl differ diff --git a/models/cem/toyota_contr/bouncy_lever.phy b/models/cem/toyota_contr/bouncy_lever.phy new file mode 100644 index 000000000..9b0bda90e Binary files /dev/null and b/models/cem/toyota_contr/bouncy_lever.phy differ diff --git a/models/cem/toyota_contr/bouncy_lever.sw.vtx b/models/cem/toyota_contr/bouncy_lever.sw.vtx new file mode 100644 index 000000000..7adca024a Binary files /dev/null and b/models/cem/toyota_contr/bouncy_lever.sw.vtx differ diff --git a/models/cem/toyota_contr/bouncy_lever.vvd b/models/cem/toyota_contr/bouncy_lever.vvd new file mode 100644 index 000000000..1cac77ccc Binary files /dev/null and b/models/cem/toyota_contr/bouncy_lever.vvd differ diff --git a/models/cem/toyota_contr/button.dx80.vtx b/models/cem/toyota_contr/button.dx80.vtx new file mode 100644 index 000000000..f302185df Binary files /dev/null and b/models/cem/toyota_contr/button.dx80.vtx differ diff --git a/models/cem/toyota_contr/button.dx90.vtx b/models/cem/toyota_contr/button.dx90.vtx new file mode 100644 index 000000000..9079f939f Binary files /dev/null and b/models/cem/toyota_contr/button.dx90.vtx differ diff --git a/models/cem/toyota_contr/button.mdl b/models/cem/toyota_contr/button.mdl new file mode 100644 index 000000000..359547a2d Binary files /dev/null and b/models/cem/toyota_contr/button.mdl differ diff --git a/models/cem/toyota_contr/button.phy b/models/cem/toyota_contr/button.phy new file mode 100644 index 000000000..2a833e417 Binary files /dev/null and b/models/cem/toyota_contr/button.phy differ diff --git a/models/cem/toyota_contr/button.sw.vtx b/models/cem/toyota_contr/button.sw.vtx new file mode 100644 index 000000000..d58e7f6a6 Binary files /dev/null and b/models/cem/toyota_contr/button.sw.vtx differ diff --git a/models/cem/toyota_contr/button.vvd b/models/cem/toyota_contr/button.vvd new file mode 100644 index 000000000..c719933dc Binary files /dev/null and b/models/cem/toyota_contr/button.vvd differ diff --git a/models/cem/toyota_contr/buttons.dx80.vtx b/models/cem/toyota_contr/buttons.dx80.vtx new file mode 100644 index 000000000..bc7c18d19 Binary files /dev/null and b/models/cem/toyota_contr/buttons.dx80.vtx differ diff --git a/models/cem/toyota_contr/buttons.dx90.vtx b/models/cem/toyota_contr/buttons.dx90.vtx new file mode 100644 index 000000000..39eb1db9b Binary files /dev/null and b/models/cem/toyota_contr/buttons.dx90.vtx differ diff --git a/models/cem/toyota_contr/buttons.mdl b/models/cem/toyota_contr/buttons.mdl new file mode 100644 index 000000000..506818a1b Binary files /dev/null and b/models/cem/toyota_contr/buttons.mdl differ diff --git a/models/cem/toyota_contr/buttons.phy b/models/cem/toyota_contr/buttons.phy new file mode 100644 index 000000000..c3a914d9b Binary files /dev/null and b/models/cem/toyota_contr/buttons.phy differ diff --git a/models/cem/toyota_contr/buttons.sw.vtx b/models/cem/toyota_contr/buttons.sw.vtx new file mode 100644 index 000000000..0088f5692 Binary files /dev/null and b/models/cem/toyota_contr/buttons.sw.vtx differ diff --git a/models/cem/toyota_contr/buttons.vvd b/models/cem/toyota_contr/buttons.vvd new file mode 100644 index 000000000..421bf67fc Binary files /dev/null and b/models/cem/toyota_contr/buttons.vvd differ diff --git a/models/cem/toyota_contr/colored_lever_1.dx80.vtx b/models/cem/toyota_contr/colored_lever_1.dx80.vtx new file mode 100644 index 000000000..c0680b3de Binary files /dev/null and b/models/cem/toyota_contr/colored_lever_1.dx80.vtx differ diff --git a/models/cem/toyota_contr/colored_lever_1.dx90.vtx b/models/cem/toyota_contr/colored_lever_1.dx90.vtx new file mode 100644 index 000000000..46879b3de Binary files /dev/null and b/models/cem/toyota_contr/colored_lever_1.dx90.vtx differ diff --git a/models/cem/toyota_contr/colored_lever_1.mdl b/models/cem/toyota_contr/colored_lever_1.mdl new file mode 100644 index 000000000..37fe12026 Binary files /dev/null and b/models/cem/toyota_contr/colored_lever_1.mdl differ diff --git a/models/cem/toyota_contr/colored_lever_1.phy b/models/cem/toyota_contr/colored_lever_1.phy new file mode 100644 index 000000000..97afb7292 Binary files /dev/null and b/models/cem/toyota_contr/colored_lever_1.phy differ diff --git a/models/cem/toyota_contr/colored_lever_1.sw.vtx b/models/cem/toyota_contr/colored_lever_1.sw.vtx new file mode 100644 index 000000000..bf1652a0a Binary files /dev/null and b/models/cem/toyota_contr/colored_lever_1.sw.vtx differ diff --git a/models/cem/toyota_contr/colored_lever_1.vvd b/models/cem/toyota_contr/colored_lever_1.vvd new file mode 100644 index 000000000..be3737152 Binary files /dev/null and b/models/cem/toyota_contr/colored_lever_1.vvd differ diff --git a/models/cem/toyota_contr/colored_lever_2.dx80.vtx b/models/cem/toyota_contr/colored_lever_2.dx80.vtx new file mode 100644 index 000000000..f2883851b Binary files /dev/null and b/models/cem/toyota_contr/colored_lever_2.dx80.vtx differ diff --git a/models/cem/toyota_contr/colored_lever_2.dx90.vtx b/models/cem/toyota_contr/colored_lever_2.dx90.vtx new file mode 100644 index 000000000..ebaa980fe Binary files /dev/null and b/models/cem/toyota_contr/colored_lever_2.dx90.vtx differ diff --git a/models/cem/toyota_contr/colored_lever_2.mdl b/models/cem/toyota_contr/colored_lever_2.mdl new file mode 100644 index 000000000..6a71b0436 Binary files /dev/null and b/models/cem/toyota_contr/colored_lever_2.mdl differ diff --git a/models/cem/toyota_contr/colored_lever_2.phy b/models/cem/toyota_contr/colored_lever_2.phy new file mode 100644 index 000000000..198cb37b7 Binary files /dev/null and b/models/cem/toyota_contr/colored_lever_2.phy differ diff --git a/models/cem/toyota_contr/colored_lever_2.sw.vtx b/models/cem/toyota_contr/colored_lever_2.sw.vtx new file mode 100644 index 000000000..ebecabd35 Binary files /dev/null and b/models/cem/toyota_contr/colored_lever_2.sw.vtx differ diff --git a/models/cem/toyota_contr/colored_lever_2.vvd b/models/cem/toyota_contr/colored_lever_2.vvd new file mode 100644 index 000000000..51b899b39 Binary files /dev/null and b/models/cem/toyota_contr/colored_lever_2.vvd differ diff --git a/models/cem/toyota_contr/colored_lever_3.dx80.vtx b/models/cem/toyota_contr/colored_lever_3.dx80.vtx new file mode 100644 index 000000000..c94405327 Binary files /dev/null and b/models/cem/toyota_contr/colored_lever_3.dx80.vtx differ diff --git a/models/cem/toyota_contr/colored_lever_3.dx90.vtx b/models/cem/toyota_contr/colored_lever_3.dx90.vtx new file mode 100644 index 000000000..e18058217 Binary files /dev/null and b/models/cem/toyota_contr/colored_lever_3.dx90.vtx differ diff --git a/models/cem/toyota_contr/colored_lever_3.mdl b/models/cem/toyota_contr/colored_lever_3.mdl new file mode 100644 index 000000000..cc06e5f33 Binary files /dev/null and b/models/cem/toyota_contr/colored_lever_3.mdl differ diff --git a/models/cem/toyota_contr/colored_lever_3.phy b/models/cem/toyota_contr/colored_lever_3.phy new file mode 100644 index 000000000..32edf7d48 Binary files /dev/null and b/models/cem/toyota_contr/colored_lever_3.phy differ diff --git a/models/cem/toyota_contr/colored_lever_3.sw.vtx b/models/cem/toyota_contr/colored_lever_3.sw.vtx new file mode 100644 index 000000000..78a5081c7 Binary files /dev/null and b/models/cem/toyota_contr/colored_lever_3.sw.vtx differ diff --git a/models/cem/toyota_contr/colored_lever_3.vvd b/models/cem/toyota_contr/colored_lever_3.vvd new file mode 100644 index 000000000..2121c90ba Binary files /dev/null and b/models/cem/toyota_contr/colored_lever_3.vvd differ diff --git a/models/cem/toyota_contr/colored_lever_4.dx80.vtx b/models/cem/toyota_contr/colored_lever_4.dx80.vtx new file mode 100644 index 000000000..501452197 Binary files /dev/null and b/models/cem/toyota_contr/colored_lever_4.dx80.vtx differ diff --git a/models/cem/toyota_contr/colored_lever_4.dx90.vtx b/models/cem/toyota_contr/colored_lever_4.dx90.vtx new file mode 100644 index 000000000..58804d091 Binary files /dev/null and b/models/cem/toyota_contr/colored_lever_4.dx90.vtx differ diff --git a/models/cem/toyota_contr/colored_lever_4.mdl b/models/cem/toyota_contr/colored_lever_4.mdl new file mode 100644 index 000000000..056e337d5 Binary files /dev/null and b/models/cem/toyota_contr/colored_lever_4.mdl differ diff --git a/models/cem/toyota_contr/colored_lever_4.phy b/models/cem/toyota_contr/colored_lever_4.phy new file mode 100644 index 000000000..3af57c0e0 Binary files /dev/null and b/models/cem/toyota_contr/colored_lever_4.phy differ diff --git a/models/cem/toyota_contr/colored_lever_4.sw.vtx b/models/cem/toyota_contr/colored_lever_4.sw.vtx new file mode 100644 index 000000000..21c7bfc0a Binary files /dev/null and b/models/cem/toyota_contr/colored_lever_4.sw.vtx differ diff --git a/models/cem/toyota_contr/colored_lever_4.vvd b/models/cem/toyota_contr/colored_lever_4.vvd new file mode 100644 index 000000000..00d2b682c Binary files /dev/null and b/models/cem/toyota_contr/colored_lever_4.vvd differ diff --git a/models/cem/toyota_contr/colored_lever_5.dx80.vtx b/models/cem/toyota_contr/colored_lever_5.dx80.vtx new file mode 100644 index 000000000..074d361fd Binary files /dev/null and b/models/cem/toyota_contr/colored_lever_5.dx80.vtx differ diff --git a/models/cem/toyota_contr/colored_lever_5.dx90.vtx b/models/cem/toyota_contr/colored_lever_5.dx90.vtx new file mode 100644 index 000000000..83581d4c3 Binary files /dev/null and b/models/cem/toyota_contr/colored_lever_5.dx90.vtx differ diff --git a/models/cem/toyota_contr/colored_lever_5.mdl b/models/cem/toyota_contr/colored_lever_5.mdl new file mode 100644 index 000000000..b49206fd0 Binary files /dev/null and b/models/cem/toyota_contr/colored_lever_5.mdl differ diff --git a/models/cem/toyota_contr/colored_lever_5.phy b/models/cem/toyota_contr/colored_lever_5.phy new file mode 100644 index 000000000..1a0a39e70 Binary files /dev/null and b/models/cem/toyota_contr/colored_lever_5.phy differ diff --git a/models/cem/toyota_contr/colored_lever_5.sw.vtx b/models/cem/toyota_contr/colored_lever_5.sw.vtx new file mode 100644 index 000000000..45dbcff61 Binary files /dev/null and b/models/cem/toyota_contr/colored_lever_5.sw.vtx differ diff --git a/models/cem/toyota_contr/colored_lever_5.vvd b/models/cem/toyota_contr/colored_lever_5.vvd new file mode 100644 index 000000000..6c4ca77a2 Binary files /dev/null and b/models/cem/toyota_contr/colored_lever_5.vvd differ diff --git a/models/cem/toyota_contr/console_scanner.dx80.vtx b/models/cem/toyota_contr/console_scanner.dx80.vtx new file mode 100644 index 000000000..7feed2df9 Binary files /dev/null and b/models/cem/toyota_contr/console_scanner.dx80.vtx differ diff --git a/models/cem/toyota_contr/console_scanner.dx90.vtx b/models/cem/toyota_contr/console_scanner.dx90.vtx new file mode 100644 index 000000000..1d5aab2d2 Binary files /dev/null and b/models/cem/toyota_contr/console_scanner.dx90.vtx differ diff --git a/models/cem/toyota_contr/console_scanner.mdl b/models/cem/toyota_contr/console_scanner.mdl new file mode 100644 index 000000000..78a8c269f Binary files /dev/null and b/models/cem/toyota_contr/console_scanner.mdl differ diff --git a/models/cem/toyota_contr/console_scanner.phy b/models/cem/toyota_contr/console_scanner.phy new file mode 100644 index 000000000..119370596 Binary files /dev/null and b/models/cem/toyota_contr/console_scanner.phy differ diff --git a/models/cem/toyota_contr/console_scanner.sw.vtx b/models/cem/toyota_contr/console_scanner.sw.vtx new file mode 100644 index 000000000..c758655ae Binary files /dev/null and b/models/cem/toyota_contr/console_scanner.sw.vtx differ diff --git a/models/cem/toyota_contr/console_scanner.vvd b/models/cem/toyota_contr/console_scanner.vvd new file mode 100644 index 000000000..0a02b3f33 Binary files /dev/null and b/models/cem/toyota_contr/console_scanner.vvd differ diff --git a/models/cem/toyota_contr/crank.dx80.vtx b/models/cem/toyota_contr/crank.dx80.vtx new file mode 100644 index 000000000..7cc60f8b7 Binary files /dev/null and b/models/cem/toyota_contr/crank.dx80.vtx differ diff --git a/models/cem/toyota_contr/crank.dx90.vtx b/models/cem/toyota_contr/crank.dx90.vtx new file mode 100644 index 000000000..00369d5c1 Binary files /dev/null and b/models/cem/toyota_contr/crank.dx90.vtx differ diff --git a/models/cem/toyota_contr/crank.mdl b/models/cem/toyota_contr/crank.mdl new file mode 100644 index 000000000..106cc4142 Binary files /dev/null and b/models/cem/toyota_contr/crank.mdl differ diff --git a/models/cem/toyota_contr/crank.phy b/models/cem/toyota_contr/crank.phy new file mode 100644 index 000000000..1c14c82e6 Binary files /dev/null and b/models/cem/toyota_contr/crank.phy differ diff --git a/models/cem/toyota_contr/crank.sw.vtx b/models/cem/toyota_contr/crank.sw.vtx new file mode 100644 index 000000000..835c04738 Binary files /dev/null and b/models/cem/toyota_contr/crank.sw.vtx differ diff --git a/models/cem/toyota_contr/crank.vvd b/models/cem/toyota_contr/crank.vvd new file mode 100644 index 000000000..d807853a2 Binary files /dev/null and b/models/cem/toyota_contr/crank.vvd differ diff --git a/models/cem/toyota_contr/crank2.dx80.vtx b/models/cem/toyota_contr/crank2.dx80.vtx new file mode 100644 index 000000000..a2b0beef2 Binary files /dev/null and b/models/cem/toyota_contr/crank2.dx80.vtx differ diff --git a/models/cem/toyota_contr/crank2.dx90.vtx b/models/cem/toyota_contr/crank2.dx90.vtx new file mode 100644 index 000000000..c442e8e0c Binary files /dev/null and b/models/cem/toyota_contr/crank2.dx90.vtx differ diff --git a/models/cem/toyota_contr/crank2.mdl b/models/cem/toyota_contr/crank2.mdl new file mode 100644 index 000000000..5030d6b0d Binary files /dev/null and b/models/cem/toyota_contr/crank2.mdl differ diff --git a/models/cem/toyota_contr/crank2.phy b/models/cem/toyota_contr/crank2.phy new file mode 100644 index 000000000..d49ad0a6b Binary files /dev/null and b/models/cem/toyota_contr/crank2.phy differ diff --git a/models/cem/toyota_contr/crank2.sw.vtx b/models/cem/toyota_contr/crank2.sw.vtx new file mode 100644 index 000000000..466d15d56 Binary files /dev/null and b/models/cem/toyota_contr/crank2.sw.vtx differ diff --git a/models/cem/toyota_contr/crank2.vvd b/models/cem/toyota_contr/crank2.vvd new file mode 100644 index 000000000..619757394 Binary files /dev/null and b/models/cem/toyota_contr/crank2.vvd differ diff --git a/models/cem/toyota_contr/crank3.dx80.vtx b/models/cem/toyota_contr/crank3.dx80.vtx new file mode 100644 index 000000000..71dc6d0cb Binary files /dev/null and b/models/cem/toyota_contr/crank3.dx80.vtx differ diff --git a/models/cem/toyota_contr/crank3.dx90.vtx b/models/cem/toyota_contr/crank3.dx90.vtx new file mode 100644 index 000000000..72eaf7563 Binary files /dev/null and b/models/cem/toyota_contr/crank3.dx90.vtx differ diff --git a/models/cem/toyota_contr/crank3.mdl b/models/cem/toyota_contr/crank3.mdl new file mode 100644 index 000000000..d30a181c8 Binary files /dev/null and b/models/cem/toyota_contr/crank3.mdl differ diff --git a/models/cem/toyota_contr/crank3.phy b/models/cem/toyota_contr/crank3.phy new file mode 100644 index 000000000..dd299c7bb Binary files /dev/null and b/models/cem/toyota_contr/crank3.phy differ diff --git a/models/cem/toyota_contr/crank3.sw.vtx b/models/cem/toyota_contr/crank3.sw.vtx new file mode 100644 index 000000000..b613f466c Binary files /dev/null and b/models/cem/toyota_contr/crank3.sw.vtx differ diff --git a/models/cem/toyota_contr/crank3.vvd b/models/cem/toyota_contr/crank3.vvd new file mode 100644 index 000000000..2af2c6730 Binary files /dev/null and b/models/cem/toyota_contr/crank3.vvd differ diff --git a/models/cem/toyota_contr/crank4.dx80.vtx b/models/cem/toyota_contr/crank4.dx80.vtx new file mode 100644 index 000000000..4f9fb2329 Binary files /dev/null and b/models/cem/toyota_contr/crank4.dx80.vtx differ diff --git a/models/cem/toyota_contr/crank4.dx90.vtx b/models/cem/toyota_contr/crank4.dx90.vtx new file mode 100644 index 000000000..73274d4b2 Binary files /dev/null and b/models/cem/toyota_contr/crank4.dx90.vtx differ diff --git a/models/cem/toyota_contr/crank4.mdl b/models/cem/toyota_contr/crank4.mdl new file mode 100644 index 000000000..268be1ecf Binary files /dev/null and b/models/cem/toyota_contr/crank4.mdl differ diff --git a/models/cem/toyota_contr/crank4.phy b/models/cem/toyota_contr/crank4.phy new file mode 100644 index 000000000..cd7892b12 Binary files /dev/null and b/models/cem/toyota_contr/crank4.phy differ diff --git a/models/cem/toyota_contr/crank4.sw.vtx b/models/cem/toyota_contr/crank4.sw.vtx new file mode 100644 index 000000000..d96d2aa45 Binary files /dev/null and b/models/cem/toyota_contr/crank4.sw.vtx differ diff --git a/models/cem/toyota_contr/crank4.vvd b/models/cem/toyota_contr/crank4.vvd new file mode 100644 index 000000000..f81be034c Binary files /dev/null and b/models/cem/toyota_contr/crank4.vvd differ diff --git a/models/cem/toyota_contr/crank5.dx80.vtx b/models/cem/toyota_contr/crank5.dx80.vtx new file mode 100644 index 000000000..4820e03ff Binary files /dev/null and b/models/cem/toyota_contr/crank5.dx80.vtx differ diff --git a/models/cem/toyota_contr/crank5.dx90.vtx b/models/cem/toyota_contr/crank5.dx90.vtx new file mode 100644 index 000000000..f551bb2c6 Binary files /dev/null and b/models/cem/toyota_contr/crank5.dx90.vtx differ diff --git a/models/cem/toyota_contr/crank5.mdl b/models/cem/toyota_contr/crank5.mdl new file mode 100644 index 000000000..aee4c9277 Binary files /dev/null and b/models/cem/toyota_contr/crank5.mdl differ diff --git a/models/cem/toyota_contr/crank5.phy b/models/cem/toyota_contr/crank5.phy new file mode 100644 index 000000000..22b4a5ab9 Binary files /dev/null and b/models/cem/toyota_contr/crank5.phy differ diff --git a/models/cem/toyota_contr/crank5.sw.vtx b/models/cem/toyota_contr/crank5.sw.vtx new file mode 100644 index 000000000..6262baa6d Binary files /dev/null and b/models/cem/toyota_contr/crank5.sw.vtx differ diff --git a/models/cem/toyota_contr/crank5.vvd b/models/cem/toyota_contr/crank5.vvd new file mode 100644 index 000000000..77568fc1e Binary files /dev/null and b/models/cem/toyota_contr/crank5.vvd differ diff --git a/models/cem/toyota_contr/crank6.dx80.vtx b/models/cem/toyota_contr/crank6.dx80.vtx new file mode 100644 index 000000000..cb4cb43d0 Binary files /dev/null and b/models/cem/toyota_contr/crank6.dx80.vtx differ diff --git a/models/cem/toyota_contr/crank6.dx90.vtx b/models/cem/toyota_contr/crank6.dx90.vtx new file mode 100644 index 000000000..154f91493 Binary files /dev/null and b/models/cem/toyota_contr/crank6.dx90.vtx differ diff --git a/models/cem/toyota_contr/crank6.mdl b/models/cem/toyota_contr/crank6.mdl new file mode 100644 index 000000000..e69d0ce15 Binary files /dev/null and b/models/cem/toyota_contr/crank6.mdl differ diff --git a/models/cem/toyota_contr/crank6.phy b/models/cem/toyota_contr/crank6.phy new file mode 100644 index 000000000..4d1d8f2b3 Binary files /dev/null and b/models/cem/toyota_contr/crank6.phy differ diff --git a/models/cem/toyota_contr/crank6.sw.vtx b/models/cem/toyota_contr/crank6.sw.vtx new file mode 100644 index 000000000..aff1dda17 Binary files /dev/null and b/models/cem/toyota_contr/crank6.sw.vtx differ diff --git a/models/cem/toyota_contr/crank6.vvd b/models/cem/toyota_contr/crank6.vvd new file mode 100644 index 000000000..22bbe8a95 Binary files /dev/null and b/models/cem/toyota_contr/crank6.vvd differ diff --git a/models/cem/toyota_contr/cranks.dx80.vtx b/models/cem/toyota_contr/cranks.dx80.vtx new file mode 100644 index 000000000..93d094bd1 Binary files /dev/null and b/models/cem/toyota_contr/cranks.dx80.vtx differ diff --git a/models/cem/toyota_contr/cranks.dx90.vtx b/models/cem/toyota_contr/cranks.dx90.vtx new file mode 100644 index 000000000..9dd3742ef Binary files /dev/null and b/models/cem/toyota_contr/cranks.dx90.vtx differ diff --git a/models/cem/toyota_contr/cranks.mdl b/models/cem/toyota_contr/cranks.mdl new file mode 100644 index 000000000..db9195064 Binary files /dev/null and b/models/cem/toyota_contr/cranks.mdl differ diff --git a/models/cem/toyota_contr/cranks.phy b/models/cem/toyota_contr/cranks.phy new file mode 100644 index 000000000..acd0c0376 Binary files /dev/null and b/models/cem/toyota_contr/cranks.phy differ diff --git a/models/cem/toyota_contr/cranks.sw.vtx b/models/cem/toyota_contr/cranks.sw.vtx new file mode 100644 index 000000000..e56c7c5f8 Binary files /dev/null and b/models/cem/toyota_contr/cranks.sw.vtx differ diff --git a/models/cem/toyota_contr/cranks.vvd b/models/cem/toyota_contr/cranks.vvd new file mode 100644 index 000000000..93193aa93 Binary files /dev/null and b/models/cem/toyota_contr/cranks.vvd differ diff --git a/models/cem/toyota_contr/ducks.dx80.vtx b/models/cem/toyota_contr/ducks.dx80.vtx new file mode 100644 index 000000000..9e499eda1 Binary files /dev/null and b/models/cem/toyota_contr/ducks.dx80.vtx differ diff --git a/models/cem/toyota_contr/ducks.dx90.vtx b/models/cem/toyota_contr/ducks.dx90.vtx new file mode 100644 index 000000000..d35c81c26 Binary files /dev/null and b/models/cem/toyota_contr/ducks.dx90.vtx differ diff --git a/models/cem/toyota_contr/ducks.mdl b/models/cem/toyota_contr/ducks.mdl new file mode 100644 index 000000000..278e756be Binary files /dev/null and b/models/cem/toyota_contr/ducks.mdl differ diff --git a/models/cem/toyota_contr/ducks.phy b/models/cem/toyota_contr/ducks.phy new file mode 100644 index 000000000..a4c699cac Binary files /dev/null and b/models/cem/toyota_contr/ducks.phy differ diff --git a/models/cem/toyota_contr/ducks.sw.vtx b/models/cem/toyota_contr/ducks.sw.vtx new file mode 100644 index 000000000..ac57e38a1 Binary files /dev/null and b/models/cem/toyota_contr/ducks.sw.vtx differ diff --git a/models/cem/toyota_contr/ducks.vvd b/models/cem/toyota_contr/ducks.vvd new file mode 100644 index 000000000..99a7ffb61 Binary files /dev/null and b/models/cem/toyota_contr/ducks.vvd differ diff --git a/models/cem/toyota_contr/fiddle1.dx80.vtx b/models/cem/toyota_contr/fiddle1.dx80.vtx new file mode 100644 index 000000000..585a16ab8 Binary files /dev/null and b/models/cem/toyota_contr/fiddle1.dx80.vtx differ diff --git a/models/cem/toyota_contr/fiddle1.dx90.vtx b/models/cem/toyota_contr/fiddle1.dx90.vtx new file mode 100644 index 000000000..6cf9eb6e1 Binary files /dev/null and b/models/cem/toyota_contr/fiddle1.dx90.vtx differ diff --git a/models/cem/toyota_contr/fiddle1.mdl b/models/cem/toyota_contr/fiddle1.mdl new file mode 100644 index 000000000..9cdb6de3b Binary files /dev/null and b/models/cem/toyota_contr/fiddle1.mdl differ diff --git a/models/cem/toyota_contr/fiddle1.phy b/models/cem/toyota_contr/fiddle1.phy new file mode 100644 index 000000000..383b403c5 Binary files /dev/null and b/models/cem/toyota_contr/fiddle1.phy differ diff --git a/models/cem/toyota_contr/fiddle1.sw.vtx b/models/cem/toyota_contr/fiddle1.sw.vtx new file mode 100644 index 000000000..13e472726 Binary files /dev/null and b/models/cem/toyota_contr/fiddle1.sw.vtx differ diff --git a/models/cem/toyota_contr/fiddle1.vvd b/models/cem/toyota_contr/fiddle1.vvd new file mode 100644 index 000000000..cd68b259f Binary files /dev/null and b/models/cem/toyota_contr/fiddle1.vvd differ diff --git a/models/cem/toyota_contr/fiddle2.dx80.vtx b/models/cem/toyota_contr/fiddle2.dx80.vtx new file mode 100644 index 000000000..9c1556363 Binary files /dev/null and b/models/cem/toyota_contr/fiddle2.dx80.vtx differ diff --git a/models/cem/toyota_contr/fiddle2.dx90.vtx b/models/cem/toyota_contr/fiddle2.dx90.vtx new file mode 100644 index 000000000..e7eec696b Binary files /dev/null and b/models/cem/toyota_contr/fiddle2.dx90.vtx differ diff --git a/models/cem/toyota_contr/fiddle2.mdl b/models/cem/toyota_contr/fiddle2.mdl new file mode 100644 index 000000000..e15394a99 Binary files /dev/null and b/models/cem/toyota_contr/fiddle2.mdl differ diff --git a/models/cem/toyota_contr/fiddle2.phy b/models/cem/toyota_contr/fiddle2.phy new file mode 100644 index 000000000..90029e34f Binary files /dev/null and b/models/cem/toyota_contr/fiddle2.phy differ diff --git a/models/cem/toyota_contr/fiddle2.sw.vtx b/models/cem/toyota_contr/fiddle2.sw.vtx new file mode 100644 index 000000000..f501d9c10 Binary files /dev/null and b/models/cem/toyota_contr/fiddle2.sw.vtx differ diff --git a/models/cem/toyota_contr/fiddle2.vvd b/models/cem/toyota_contr/fiddle2.vvd new file mode 100644 index 000000000..71c268200 Binary files /dev/null and b/models/cem/toyota_contr/fiddle2.vvd differ diff --git a/models/cem/toyota_contr/flat_switch.dx80.vtx b/models/cem/toyota_contr/flat_switch.dx80.vtx new file mode 100644 index 000000000..8aee419d4 Binary files /dev/null and b/models/cem/toyota_contr/flat_switch.dx80.vtx differ diff --git a/models/cem/toyota_contr/flat_switch.dx90.vtx b/models/cem/toyota_contr/flat_switch.dx90.vtx new file mode 100644 index 000000000..7527cab7a Binary files /dev/null and b/models/cem/toyota_contr/flat_switch.dx90.vtx differ diff --git a/models/cem/toyota_contr/flat_switch.mdl b/models/cem/toyota_contr/flat_switch.mdl new file mode 100644 index 000000000..94b79c355 Binary files /dev/null and b/models/cem/toyota_contr/flat_switch.mdl differ diff --git a/models/cem/toyota_contr/flat_switch.phy b/models/cem/toyota_contr/flat_switch.phy new file mode 100644 index 000000000..06f6fb52b Binary files /dev/null and b/models/cem/toyota_contr/flat_switch.phy differ diff --git a/models/cem/toyota_contr/flat_switch.sw.vtx b/models/cem/toyota_contr/flat_switch.sw.vtx new file mode 100644 index 000000000..9d9026cc9 Binary files /dev/null and b/models/cem/toyota_contr/flat_switch.sw.vtx differ diff --git a/models/cem/toyota_contr/flat_switch.vvd b/models/cem/toyota_contr/flat_switch.vvd new file mode 100644 index 000000000..629a858f9 Binary files /dev/null and b/models/cem/toyota_contr/flat_switch.vvd differ diff --git a/models/cem/toyota_contr/flippers.dx80.vtx b/models/cem/toyota_contr/flippers.dx80.vtx new file mode 100644 index 000000000..524a3106a Binary files /dev/null and b/models/cem/toyota_contr/flippers.dx80.vtx differ diff --git a/models/cem/toyota_contr/flippers.dx90.vtx b/models/cem/toyota_contr/flippers.dx90.vtx new file mode 100644 index 000000000..476c921c5 Binary files /dev/null and b/models/cem/toyota_contr/flippers.dx90.vtx differ diff --git a/models/cem/toyota_contr/flippers.mdl b/models/cem/toyota_contr/flippers.mdl new file mode 100644 index 000000000..286dafea7 Binary files /dev/null and b/models/cem/toyota_contr/flippers.mdl differ diff --git a/models/cem/toyota_contr/flippers.phy b/models/cem/toyota_contr/flippers.phy new file mode 100644 index 000000000..96260afea Binary files /dev/null and b/models/cem/toyota_contr/flippers.phy differ diff --git a/models/cem/toyota_contr/flippers.sw.vtx b/models/cem/toyota_contr/flippers.sw.vtx new file mode 100644 index 000000000..722da95a8 Binary files /dev/null and b/models/cem/toyota_contr/flippers.sw.vtx differ diff --git a/models/cem/toyota_contr/flippers.vvd b/models/cem/toyota_contr/flippers.vvd new file mode 100644 index 000000000..41021ce93 Binary files /dev/null and b/models/cem/toyota_contr/flippers.vvd differ diff --git a/models/cem/toyota_contr/handle1.dx80.vtx b/models/cem/toyota_contr/handle1.dx80.vtx new file mode 100644 index 000000000..ee050df76 Binary files /dev/null and b/models/cem/toyota_contr/handle1.dx80.vtx differ diff --git a/models/cem/toyota_contr/handle1.dx90.vtx b/models/cem/toyota_contr/handle1.dx90.vtx new file mode 100644 index 000000000..4982721b9 Binary files /dev/null and b/models/cem/toyota_contr/handle1.dx90.vtx differ diff --git a/models/cem/toyota_contr/handle1.mdl b/models/cem/toyota_contr/handle1.mdl new file mode 100644 index 000000000..f76adb3cb Binary files /dev/null and b/models/cem/toyota_contr/handle1.mdl differ diff --git a/models/cem/toyota_contr/handle1.phy b/models/cem/toyota_contr/handle1.phy new file mode 100644 index 000000000..67fd94314 Binary files /dev/null and b/models/cem/toyota_contr/handle1.phy differ diff --git a/models/cem/toyota_contr/handle1.sw.vtx b/models/cem/toyota_contr/handle1.sw.vtx new file mode 100644 index 000000000..3890ff34e Binary files /dev/null and b/models/cem/toyota_contr/handle1.sw.vtx differ diff --git a/models/cem/toyota_contr/handle1.vvd b/models/cem/toyota_contr/handle1.vvd new file mode 100644 index 000000000..7eb8abf90 Binary files /dev/null and b/models/cem/toyota_contr/handle1.vvd differ diff --git a/models/cem/toyota_contr/handle2.dx80.vtx b/models/cem/toyota_contr/handle2.dx80.vtx new file mode 100644 index 000000000..b1be8e90e Binary files /dev/null and b/models/cem/toyota_contr/handle2.dx80.vtx differ diff --git a/models/cem/toyota_contr/handle2.dx90.vtx b/models/cem/toyota_contr/handle2.dx90.vtx new file mode 100644 index 000000000..7f01b56e5 Binary files /dev/null and b/models/cem/toyota_contr/handle2.dx90.vtx differ diff --git a/models/cem/toyota_contr/handle2.mdl b/models/cem/toyota_contr/handle2.mdl new file mode 100644 index 000000000..403eee490 Binary files /dev/null and b/models/cem/toyota_contr/handle2.mdl differ diff --git a/models/cem/toyota_contr/handle2.phy b/models/cem/toyota_contr/handle2.phy new file mode 100644 index 000000000..35fc2b103 Binary files /dev/null and b/models/cem/toyota_contr/handle2.phy differ diff --git a/models/cem/toyota_contr/handle2.sw.vtx b/models/cem/toyota_contr/handle2.sw.vtx new file mode 100644 index 000000000..707052e3c Binary files /dev/null and b/models/cem/toyota_contr/handle2.sw.vtx differ diff --git a/models/cem/toyota_contr/handle2.vvd b/models/cem/toyota_contr/handle2.vvd new file mode 100644 index 000000000..dafbf498c Binary files /dev/null and b/models/cem/toyota_contr/handle2.vvd differ diff --git a/models/cem/toyota_contr/key.dx80.vtx b/models/cem/toyota_contr/key.dx80.vtx new file mode 100644 index 000000000..56156cd4b Binary files /dev/null and b/models/cem/toyota_contr/key.dx80.vtx differ diff --git a/models/cem/toyota_contr/key.dx90.vtx b/models/cem/toyota_contr/key.dx90.vtx new file mode 100644 index 000000000..7fdaf936c Binary files /dev/null and b/models/cem/toyota_contr/key.dx90.vtx differ diff --git a/models/cem/toyota_contr/key.mdl b/models/cem/toyota_contr/key.mdl new file mode 100644 index 000000000..28eeb3ae6 Binary files /dev/null and b/models/cem/toyota_contr/key.mdl differ diff --git a/models/cem/toyota_contr/key.phy b/models/cem/toyota_contr/key.phy new file mode 100644 index 000000000..6c30f5dcb Binary files /dev/null and b/models/cem/toyota_contr/key.phy differ diff --git a/models/cem/toyota_contr/key.sw.vtx b/models/cem/toyota_contr/key.sw.vtx new file mode 100644 index 000000000..0e7d582d4 Binary files /dev/null and b/models/cem/toyota_contr/key.sw.vtx differ diff --git a/models/cem/toyota_contr/key.vvd b/models/cem/toyota_contr/key.vvd new file mode 100644 index 000000000..eb1fbac63 Binary files /dev/null and b/models/cem/toyota_contr/key.vvd differ diff --git a/models/cem/toyota_contr/phone.dx80.vtx b/models/cem/toyota_contr/phone.dx80.vtx new file mode 100644 index 000000000..08c47358f Binary files /dev/null and b/models/cem/toyota_contr/phone.dx80.vtx differ diff --git a/models/cem/toyota_contr/phone.dx90.vtx b/models/cem/toyota_contr/phone.dx90.vtx new file mode 100644 index 000000000..be6d60783 Binary files /dev/null and b/models/cem/toyota_contr/phone.dx90.vtx differ diff --git a/models/cem/toyota_contr/phone.mdl b/models/cem/toyota_contr/phone.mdl new file mode 100644 index 000000000..97fd1dcb0 Binary files /dev/null and b/models/cem/toyota_contr/phone.mdl differ diff --git a/models/cem/toyota_contr/phone.phy b/models/cem/toyota_contr/phone.phy new file mode 100644 index 000000000..3d13e37ea Binary files /dev/null and b/models/cem/toyota_contr/phone.phy differ diff --git a/models/cem/toyota_contr/phone.sw.vtx b/models/cem/toyota_contr/phone.sw.vtx new file mode 100644 index 000000000..34002b082 Binary files /dev/null and b/models/cem/toyota_contr/phone.sw.vtx differ diff --git a/models/cem/toyota_contr/phone.vvd b/models/cem/toyota_contr/phone.vvd new file mode 100644 index 000000000..1a5299e7d Binary files /dev/null and b/models/cem/toyota_contr/phone.vvd differ diff --git a/models/cem/toyota_contr/red_flick_cover.dx80.vtx b/models/cem/toyota_contr/red_flick_cover.dx80.vtx new file mode 100644 index 000000000..9121c91d4 Binary files /dev/null and b/models/cem/toyota_contr/red_flick_cover.dx80.vtx differ diff --git a/models/cem/toyota_contr/red_flick_cover.dx90.vtx b/models/cem/toyota_contr/red_flick_cover.dx90.vtx new file mode 100644 index 000000000..255ab1235 Binary files /dev/null and b/models/cem/toyota_contr/red_flick_cover.dx90.vtx differ diff --git a/models/cem/toyota_contr/red_flick_cover.mdl b/models/cem/toyota_contr/red_flick_cover.mdl new file mode 100644 index 000000000..050d27451 Binary files /dev/null and b/models/cem/toyota_contr/red_flick_cover.mdl differ diff --git a/models/cem/toyota_contr/red_flick_cover.phy b/models/cem/toyota_contr/red_flick_cover.phy new file mode 100644 index 000000000..03aab5590 Binary files /dev/null and b/models/cem/toyota_contr/red_flick_cover.phy differ diff --git a/models/cem/toyota_contr/red_flick_cover.sw.vtx b/models/cem/toyota_contr/red_flick_cover.sw.vtx new file mode 100644 index 000000000..cad422a98 Binary files /dev/null and b/models/cem/toyota_contr/red_flick_cover.sw.vtx differ diff --git a/models/cem/toyota_contr/red_flick_cover.vvd b/models/cem/toyota_contr/red_flick_cover.vvd new file mode 100644 index 000000000..398f57f02 Binary files /dev/null and b/models/cem/toyota_contr/red_flick_cover.vvd differ diff --git a/models/cem/toyota_contr/red_flick_switch.dx80.vtx b/models/cem/toyota_contr/red_flick_switch.dx80.vtx new file mode 100644 index 000000000..b5dda2c94 Binary files /dev/null and b/models/cem/toyota_contr/red_flick_switch.dx80.vtx differ diff --git a/models/cem/toyota_contr/red_flick_switch.dx90.vtx b/models/cem/toyota_contr/red_flick_switch.dx90.vtx new file mode 100644 index 000000000..84579b8d5 Binary files /dev/null and b/models/cem/toyota_contr/red_flick_switch.dx90.vtx differ diff --git a/models/cem/toyota_contr/red_flick_switch.mdl b/models/cem/toyota_contr/red_flick_switch.mdl new file mode 100644 index 000000000..b9f744904 Binary files /dev/null and b/models/cem/toyota_contr/red_flick_switch.mdl differ diff --git a/models/cem/toyota_contr/red_flick_switch.phy b/models/cem/toyota_contr/red_flick_switch.phy new file mode 100644 index 000000000..8c3c10c28 Binary files /dev/null and b/models/cem/toyota_contr/red_flick_switch.phy differ diff --git a/models/cem/toyota_contr/red_flick_switch.sw.vtx b/models/cem/toyota_contr/red_flick_switch.sw.vtx new file mode 100644 index 000000000..f518c5e99 Binary files /dev/null and b/models/cem/toyota_contr/red_flick_switch.sw.vtx differ diff --git a/models/cem/toyota_contr/red_flick_switch.vvd b/models/cem/toyota_contr/red_flick_switch.vvd new file mode 100644 index 000000000..bc084a3dd Binary files /dev/null and b/models/cem/toyota_contr/red_flick_switch.vvd differ diff --git a/models/cem/toyota_contr/red_lever.dx80.vtx b/models/cem/toyota_contr/red_lever.dx80.vtx new file mode 100644 index 000000000..2f5650304 Binary files /dev/null and b/models/cem/toyota_contr/red_lever.dx80.vtx differ diff --git a/models/cem/toyota_contr/red_lever.dx90.vtx b/models/cem/toyota_contr/red_lever.dx90.vtx new file mode 100644 index 000000000..4ad22630d Binary files /dev/null and b/models/cem/toyota_contr/red_lever.dx90.vtx differ diff --git a/models/cem/toyota_contr/red_lever.mdl b/models/cem/toyota_contr/red_lever.mdl new file mode 100644 index 000000000..63dc06e2d Binary files /dev/null and b/models/cem/toyota_contr/red_lever.mdl differ diff --git a/models/cem/toyota_contr/red_lever.phy b/models/cem/toyota_contr/red_lever.phy new file mode 100644 index 000000000..d51594d9f Binary files /dev/null and b/models/cem/toyota_contr/red_lever.phy differ diff --git a/models/cem/toyota_contr/red_lever.sw.vtx b/models/cem/toyota_contr/red_lever.sw.vtx new file mode 100644 index 000000000..db8f4c27f Binary files /dev/null and b/models/cem/toyota_contr/red_lever.sw.vtx differ diff --git a/models/cem/toyota_contr/red_lever.vvd b/models/cem/toyota_contr/red_lever.vvd new file mode 100644 index 000000000..f3e9965a1 Binary files /dev/null and b/models/cem/toyota_contr/red_lever.vvd differ diff --git a/models/cem/toyota_contr/sliders.dx80.vtx b/models/cem/toyota_contr/sliders.dx80.vtx new file mode 100644 index 000000000..d99225edb Binary files /dev/null and b/models/cem/toyota_contr/sliders.dx80.vtx differ diff --git a/models/cem/toyota_contr/sliders.dx90.vtx b/models/cem/toyota_contr/sliders.dx90.vtx new file mode 100644 index 000000000..877d86aea Binary files /dev/null and b/models/cem/toyota_contr/sliders.dx90.vtx differ diff --git a/models/cem/toyota_contr/sliders.mdl b/models/cem/toyota_contr/sliders.mdl new file mode 100644 index 000000000..87f300dfa Binary files /dev/null and b/models/cem/toyota_contr/sliders.mdl differ diff --git a/models/cem/toyota_contr/sliders.phy b/models/cem/toyota_contr/sliders.phy new file mode 100644 index 000000000..83f2a4c2c Binary files /dev/null and b/models/cem/toyota_contr/sliders.phy differ diff --git a/models/cem/toyota_contr/sliders.sw.vtx b/models/cem/toyota_contr/sliders.sw.vtx new file mode 100644 index 000000000..c74dfbf65 Binary files /dev/null and b/models/cem/toyota_contr/sliders.sw.vtx differ diff --git a/models/cem/toyota_contr/sliders.vvd b/models/cem/toyota_contr/sliders.vvd new file mode 100644 index 000000000..91d673a5b Binary files /dev/null and b/models/cem/toyota_contr/sliders.vvd differ diff --git a/models/cem/toyota_contr/small_switch.dx80.vtx b/models/cem/toyota_contr/small_switch.dx80.vtx new file mode 100644 index 000000000..876db5913 Binary files /dev/null and b/models/cem/toyota_contr/small_switch.dx80.vtx differ diff --git a/models/cem/toyota_contr/small_switch.dx90.vtx b/models/cem/toyota_contr/small_switch.dx90.vtx new file mode 100644 index 000000000..f05daf8e8 Binary files /dev/null and b/models/cem/toyota_contr/small_switch.dx90.vtx differ diff --git a/models/cem/toyota_contr/small_switch.mdl b/models/cem/toyota_contr/small_switch.mdl new file mode 100644 index 000000000..982bb979d Binary files /dev/null and b/models/cem/toyota_contr/small_switch.mdl differ diff --git a/models/cem/toyota_contr/small_switch.phy b/models/cem/toyota_contr/small_switch.phy new file mode 100644 index 000000000..a27db4462 Binary files /dev/null and b/models/cem/toyota_contr/small_switch.phy differ diff --git a/models/cem/toyota_contr/small_switch.sw.vtx b/models/cem/toyota_contr/small_switch.sw.vtx new file mode 100644 index 000000000..e9a4f5986 Binary files /dev/null and b/models/cem/toyota_contr/small_switch.sw.vtx differ diff --git a/models/cem/toyota_contr/small_switch.vvd b/models/cem/toyota_contr/small_switch.vvd new file mode 100644 index 000000000..a00a02d6f Binary files /dev/null and b/models/cem/toyota_contr/small_switch.vvd differ diff --git a/models/cem/toyota_contr/spin_a.dx80.vtx b/models/cem/toyota_contr/spin_a.dx80.vtx new file mode 100644 index 000000000..293eed7de Binary files /dev/null and b/models/cem/toyota_contr/spin_a.dx80.vtx differ diff --git a/models/cem/toyota_contr/spin_a.dx90.vtx b/models/cem/toyota_contr/spin_a.dx90.vtx new file mode 100644 index 000000000..3fa468cc2 Binary files /dev/null and b/models/cem/toyota_contr/spin_a.dx90.vtx differ diff --git a/models/cem/toyota_contr/spin_a.mdl b/models/cem/toyota_contr/spin_a.mdl new file mode 100644 index 000000000..f8d9eb8a1 Binary files /dev/null and b/models/cem/toyota_contr/spin_a.mdl differ diff --git a/models/cem/toyota_contr/spin_a.phy b/models/cem/toyota_contr/spin_a.phy new file mode 100644 index 000000000..6588dc552 Binary files /dev/null and b/models/cem/toyota_contr/spin_a.phy differ diff --git a/models/cem/toyota_contr/spin_a.sw.vtx b/models/cem/toyota_contr/spin_a.sw.vtx new file mode 100644 index 000000000..78d038a07 Binary files /dev/null and b/models/cem/toyota_contr/spin_a.sw.vtx differ diff --git a/models/cem/toyota_contr/spin_a.vvd b/models/cem/toyota_contr/spin_a.vvd new file mode 100644 index 000000000..0f215a006 Binary files /dev/null and b/models/cem/toyota_contr/spin_a.vvd differ diff --git a/models/cem/toyota_contr/spin_b.dx80.vtx b/models/cem/toyota_contr/spin_b.dx80.vtx new file mode 100644 index 000000000..f2bfcf4ec Binary files /dev/null and b/models/cem/toyota_contr/spin_b.dx80.vtx differ diff --git a/models/cem/toyota_contr/spin_b.dx90.vtx b/models/cem/toyota_contr/spin_b.dx90.vtx new file mode 100644 index 000000000..a7282d25c Binary files /dev/null and b/models/cem/toyota_contr/spin_b.dx90.vtx differ diff --git a/models/cem/toyota_contr/spin_b.mdl b/models/cem/toyota_contr/spin_b.mdl new file mode 100644 index 000000000..316949ff5 Binary files /dev/null and b/models/cem/toyota_contr/spin_b.mdl differ diff --git a/models/cem/toyota_contr/spin_b.phy b/models/cem/toyota_contr/spin_b.phy new file mode 100644 index 000000000..c705cd049 Binary files /dev/null and b/models/cem/toyota_contr/spin_b.phy differ diff --git a/models/cem/toyota_contr/spin_b.sw.vtx b/models/cem/toyota_contr/spin_b.sw.vtx new file mode 100644 index 000000000..7c4b2f69f Binary files /dev/null and b/models/cem/toyota_contr/spin_b.sw.vtx differ diff --git a/models/cem/toyota_contr/spin_b.vvd b/models/cem/toyota_contr/spin_b.vvd new file mode 100644 index 000000000..ddbe951cc Binary files /dev/null and b/models/cem/toyota_contr/spin_b.vvd differ diff --git a/models/cem/toyota_contr/spin_big.dx80.vtx b/models/cem/toyota_contr/spin_big.dx80.vtx new file mode 100644 index 000000000..83bb9c596 Binary files /dev/null and b/models/cem/toyota_contr/spin_big.dx80.vtx differ diff --git a/models/cem/toyota_contr/spin_big.dx90.vtx b/models/cem/toyota_contr/spin_big.dx90.vtx new file mode 100644 index 000000000..aaaf67b4a Binary files /dev/null and b/models/cem/toyota_contr/spin_big.dx90.vtx differ diff --git a/models/cem/toyota_contr/spin_big.mdl b/models/cem/toyota_contr/spin_big.mdl new file mode 100644 index 000000000..26ea7aebe Binary files /dev/null and b/models/cem/toyota_contr/spin_big.mdl differ diff --git a/models/cem/toyota_contr/spin_big.phy b/models/cem/toyota_contr/spin_big.phy new file mode 100644 index 000000000..b1c33495d Binary files /dev/null and b/models/cem/toyota_contr/spin_big.phy differ diff --git a/models/cem/toyota_contr/spin_big.sw.vtx b/models/cem/toyota_contr/spin_big.sw.vtx new file mode 100644 index 000000000..ded0460a6 Binary files /dev/null and b/models/cem/toyota_contr/spin_big.sw.vtx differ diff --git a/models/cem/toyota_contr/spin_big.vvd b/models/cem/toyota_contr/spin_big.vvd new file mode 100644 index 000000000..370bf31c0 Binary files /dev/null and b/models/cem/toyota_contr/spin_big.vvd differ diff --git a/models/cem/toyota_contr/spin_crank.dx80.vtx b/models/cem/toyota_contr/spin_crank.dx80.vtx new file mode 100644 index 000000000..79ab3c038 Binary files /dev/null and b/models/cem/toyota_contr/spin_crank.dx80.vtx differ diff --git a/models/cem/toyota_contr/spin_crank.dx90.vtx b/models/cem/toyota_contr/spin_crank.dx90.vtx new file mode 100644 index 000000000..0770e0b8d Binary files /dev/null and b/models/cem/toyota_contr/spin_crank.dx90.vtx differ diff --git a/models/cem/toyota_contr/spin_crank.mdl b/models/cem/toyota_contr/spin_crank.mdl new file mode 100644 index 000000000..8c80a7273 Binary files /dev/null and b/models/cem/toyota_contr/spin_crank.mdl differ diff --git a/models/cem/toyota_contr/spin_crank.phy b/models/cem/toyota_contr/spin_crank.phy new file mode 100644 index 000000000..97a94360f Binary files /dev/null and b/models/cem/toyota_contr/spin_crank.phy differ diff --git a/models/cem/toyota_contr/spin_crank.sw.vtx b/models/cem/toyota_contr/spin_crank.sw.vtx new file mode 100644 index 000000000..db69db74e Binary files /dev/null and b/models/cem/toyota_contr/spin_crank.sw.vtx differ diff --git a/models/cem/toyota_contr/spin_crank.vvd b/models/cem/toyota_contr/spin_crank.vvd new file mode 100644 index 000000000..4f1cb12d7 Binary files /dev/null and b/models/cem/toyota_contr/spin_crank.vvd differ diff --git a/models/cem/toyota_contr/spin_switch.dx80.vtx b/models/cem/toyota_contr/spin_switch.dx80.vtx new file mode 100644 index 000000000..3b2207f9b Binary files /dev/null and b/models/cem/toyota_contr/spin_switch.dx80.vtx differ diff --git a/models/cem/toyota_contr/spin_switch.dx90.vtx b/models/cem/toyota_contr/spin_switch.dx90.vtx new file mode 100644 index 000000000..9251f1224 Binary files /dev/null and b/models/cem/toyota_contr/spin_switch.dx90.vtx differ diff --git a/models/cem/toyota_contr/spin_switch.mdl b/models/cem/toyota_contr/spin_switch.mdl new file mode 100644 index 000000000..5d4b17ec3 Binary files /dev/null and b/models/cem/toyota_contr/spin_switch.mdl differ diff --git a/models/cem/toyota_contr/spin_switch.phy b/models/cem/toyota_contr/spin_switch.phy new file mode 100644 index 000000000..d23593c37 Binary files /dev/null and b/models/cem/toyota_contr/spin_switch.phy differ diff --git a/models/cem/toyota_contr/spin_switch.sw.vtx b/models/cem/toyota_contr/spin_switch.sw.vtx new file mode 100644 index 000000000..e3d050737 Binary files /dev/null and b/models/cem/toyota_contr/spin_switch.sw.vtx differ diff --git a/models/cem/toyota_contr/spin_switch.vvd b/models/cem/toyota_contr/spin_switch.vvd new file mode 100644 index 000000000..11637b72a Binary files /dev/null and b/models/cem/toyota_contr/spin_switch.vvd differ diff --git a/models/cem/toyota_contr/switch.dx80.vtx b/models/cem/toyota_contr/switch.dx80.vtx new file mode 100644 index 000000000..a6376b49b Binary files /dev/null and b/models/cem/toyota_contr/switch.dx80.vtx differ diff --git a/models/cem/toyota_contr/switch.dx90.vtx b/models/cem/toyota_contr/switch.dx90.vtx new file mode 100644 index 000000000..1be7fd37e Binary files /dev/null and b/models/cem/toyota_contr/switch.dx90.vtx differ diff --git a/models/cem/toyota_contr/switch.mdl b/models/cem/toyota_contr/switch.mdl new file mode 100644 index 000000000..75a8fc5c3 Binary files /dev/null and b/models/cem/toyota_contr/switch.mdl differ diff --git a/models/cem/toyota_contr/switch.phy b/models/cem/toyota_contr/switch.phy new file mode 100644 index 000000000..e715fc6a6 Binary files /dev/null and b/models/cem/toyota_contr/switch.phy differ diff --git a/models/cem/toyota_contr/switch.sw.vtx b/models/cem/toyota_contr/switch.sw.vtx new file mode 100644 index 000000000..28561cc5c Binary files /dev/null and b/models/cem/toyota_contr/switch.sw.vtx differ diff --git a/models/cem/toyota_contr/switch.vvd b/models/cem/toyota_contr/switch.vvd new file mode 100644 index 000000000..e27840ef6 Binary files /dev/null and b/models/cem/toyota_contr/switch.vvd differ diff --git a/models/cem/toyota_contr/switch2.dx80.vtx b/models/cem/toyota_contr/switch2.dx80.vtx new file mode 100644 index 000000000..ac8cebd10 Binary files /dev/null and b/models/cem/toyota_contr/switch2.dx80.vtx differ diff --git a/models/cem/toyota_contr/switch2.dx90.vtx b/models/cem/toyota_contr/switch2.dx90.vtx new file mode 100644 index 000000000..396cc2ab8 Binary files /dev/null and b/models/cem/toyota_contr/switch2.dx90.vtx differ diff --git a/models/cem/toyota_contr/switch2.mdl b/models/cem/toyota_contr/switch2.mdl new file mode 100644 index 000000000..9d43b8053 Binary files /dev/null and b/models/cem/toyota_contr/switch2.mdl differ diff --git a/models/cem/toyota_contr/switch2.phy b/models/cem/toyota_contr/switch2.phy new file mode 100644 index 000000000..a5a449a07 Binary files /dev/null and b/models/cem/toyota_contr/switch2.phy differ diff --git a/models/cem/toyota_contr/switch2.sw.vtx b/models/cem/toyota_contr/switch2.sw.vtx new file mode 100644 index 000000000..678a219a4 Binary files /dev/null and b/models/cem/toyota_contr/switch2.sw.vtx differ diff --git a/models/cem/toyota_contr/switch2.vvd b/models/cem/toyota_contr/switch2.vvd new file mode 100644 index 000000000..4f66b9166 Binary files /dev/null and b/models/cem/toyota_contr/switch2.vvd differ diff --git a/models/cem/toyota_contr/thick_lever.dx80.vtx b/models/cem/toyota_contr/thick_lever.dx80.vtx new file mode 100644 index 000000000..7a992dcdd Binary files /dev/null and b/models/cem/toyota_contr/thick_lever.dx80.vtx differ diff --git a/models/cem/toyota_contr/thick_lever.dx90.vtx b/models/cem/toyota_contr/thick_lever.dx90.vtx new file mode 100644 index 000000000..e464aa2af Binary files /dev/null and b/models/cem/toyota_contr/thick_lever.dx90.vtx differ diff --git a/models/cem/toyota_contr/thick_lever.mdl b/models/cem/toyota_contr/thick_lever.mdl new file mode 100644 index 000000000..43d86ebfc Binary files /dev/null and b/models/cem/toyota_contr/thick_lever.mdl differ diff --git a/models/cem/toyota_contr/thick_lever.phy b/models/cem/toyota_contr/thick_lever.phy new file mode 100644 index 000000000..f205d3090 Binary files /dev/null and b/models/cem/toyota_contr/thick_lever.phy differ diff --git a/models/cem/toyota_contr/thick_lever.sw.vtx b/models/cem/toyota_contr/thick_lever.sw.vtx new file mode 100644 index 000000000..7c6543a92 Binary files /dev/null and b/models/cem/toyota_contr/thick_lever.sw.vtx differ diff --git a/models/cem/toyota_contr/thick_lever.vvd b/models/cem/toyota_contr/thick_lever.vvd new file mode 100644 index 000000000..c62cf6cab Binary files /dev/null and b/models/cem/toyota_contr/thick_lever.vvd differ diff --git a/models/cem/toyota_contr/toggles.dx80.vtx b/models/cem/toyota_contr/toggles.dx80.vtx new file mode 100644 index 000000000..e94c5dd9a Binary files /dev/null and b/models/cem/toyota_contr/toggles.dx80.vtx differ diff --git a/models/cem/toyota_contr/toggles.dx90.vtx b/models/cem/toyota_contr/toggles.dx90.vtx new file mode 100644 index 000000000..0e77cb863 Binary files /dev/null and b/models/cem/toyota_contr/toggles.dx90.vtx differ diff --git a/models/cem/toyota_contr/toggles.mdl b/models/cem/toyota_contr/toggles.mdl new file mode 100644 index 000000000..2305f8767 Binary files /dev/null and b/models/cem/toyota_contr/toggles.mdl differ diff --git a/models/cem/toyota_contr/toggles.phy b/models/cem/toyota_contr/toggles.phy new file mode 100644 index 000000000..4367a6f25 Binary files /dev/null and b/models/cem/toyota_contr/toggles.phy differ diff --git a/models/cem/toyota_contr/toggles.sw.vtx b/models/cem/toyota_contr/toggles.sw.vtx new file mode 100644 index 000000000..675653124 Binary files /dev/null and b/models/cem/toyota_contr/toggles.sw.vtx differ diff --git a/models/cem/toyota_contr/toggles.vvd b/models/cem/toyota_contr/toggles.vvd new file mode 100644 index 000000000..9ee8e4968 Binary files /dev/null and b/models/cem/toyota_contr/toggles.vvd differ diff --git a/models/cem/toyota_contr/toggles2.dx80.vtx b/models/cem/toyota_contr/toggles2.dx80.vtx new file mode 100644 index 000000000..a1967938e Binary files /dev/null and b/models/cem/toyota_contr/toggles2.dx80.vtx differ diff --git a/models/cem/toyota_contr/toggles2.dx90.vtx b/models/cem/toyota_contr/toggles2.dx90.vtx new file mode 100644 index 000000000..3199a1af3 Binary files /dev/null and b/models/cem/toyota_contr/toggles2.dx90.vtx differ diff --git a/models/cem/toyota_contr/toggles2.mdl b/models/cem/toyota_contr/toggles2.mdl new file mode 100644 index 000000000..9d9ddcae8 Binary files /dev/null and b/models/cem/toyota_contr/toggles2.mdl differ diff --git a/models/cem/toyota_contr/toggles2.phy b/models/cem/toyota_contr/toggles2.phy new file mode 100644 index 000000000..5ee2bcfae Binary files /dev/null and b/models/cem/toyota_contr/toggles2.phy differ diff --git a/models/cem/toyota_contr/toggles2.sw.vtx b/models/cem/toyota_contr/toggles2.sw.vtx new file mode 100644 index 000000000..19cf6b675 Binary files /dev/null and b/models/cem/toyota_contr/toggles2.sw.vtx differ diff --git a/models/cem/toyota_contr/toggles2.vvd b/models/cem/toyota_contr/toggles2.vvd new file mode 100644 index 000000000..285b019c6 Binary files /dev/null and b/models/cem/toyota_contr/toggles2.vvd differ diff --git a/models/cem/toyota_contr/tumblers.dx80.vtx b/models/cem/toyota_contr/tumblers.dx80.vtx new file mode 100644 index 000000000..2da93610c Binary files /dev/null and b/models/cem/toyota_contr/tumblers.dx80.vtx differ diff --git a/models/cem/toyota_contr/tumblers.dx90.vtx b/models/cem/toyota_contr/tumblers.dx90.vtx new file mode 100644 index 000000000..ff92bce54 Binary files /dev/null and b/models/cem/toyota_contr/tumblers.dx90.vtx differ diff --git a/models/cem/toyota_contr/tumblers.mdl b/models/cem/toyota_contr/tumblers.mdl new file mode 100644 index 000000000..571e7240c Binary files /dev/null and b/models/cem/toyota_contr/tumblers.mdl differ diff --git a/models/cem/toyota_contr/tumblers.phy b/models/cem/toyota_contr/tumblers.phy new file mode 100644 index 000000000..7933eb4e5 Binary files /dev/null and b/models/cem/toyota_contr/tumblers.phy differ diff --git a/models/cem/toyota_contr/tumblers.sw.vtx b/models/cem/toyota_contr/tumblers.sw.vtx new file mode 100644 index 000000000..9a1c9cb41 Binary files /dev/null and b/models/cem/toyota_contr/tumblers.sw.vtx differ diff --git a/models/cem/toyota_contr/tumblers.vvd b/models/cem/toyota_contr/tumblers.vvd new file mode 100644 index 000000000..a0684f539 Binary files /dev/null and b/models/cem/toyota_contr/tumblers.vvd differ diff --git a/models/drmatt/tardis/atomaccel.dx80.vtx b/models/drmatt/tardis/atomaccel.dx80.vtx deleted file mode 100644 index b675ba489..000000000 Binary files a/models/drmatt/tardis/atomaccel.dx80.vtx and /dev/null differ diff --git a/models/drmatt/tardis/atomaccel.dx90.vtx b/models/drmatt/tardis/atomaccel.dx90.vtx deleted file mode 100644 index 2f4aff74f..000000000 Binary files a/models/drmatt/tardis/atomaccel.dx90.vtx and /dev/null differ diff --git a/models/drmatt/tardis/atomaccel.mdl b/models/drmatt/tardis/atomaccel.mdl deleted file mode 100644 index bcc6dc762..000000000 Binary files a/models/drmatt/tardis/atomaccel.mdl and /dev/null differ diff --git a/models/drmatt/tardis/atomaccel.phy b/models/drmatt/tardis/atomaccel.phy deleted file mode 100644 index cc4b93763..000000000 Binary files a/models/drmatt/tardis/atomaccel.phy and /dev/null differ diff --git a/models/drmatt/tardis/atomaccel.sw.vtx b/models/drmatt/tardis/atomaccel.sw.vtx deleted file mode 100644 index ff02ec86f..000000000 Binary files a/models/drmatt/tardis/atomaccel.sw.vtx and /dev/null differ diff --git a/models/drmatt/tardis/atomaccel.vvd b/models/drmatt/tardis/atomaccel.vvd deleted file mode 100644 index 6639bb1bf..000000000 Binary files a/models/drmatt/tardis/atomaccel.vvd and /dev/null differ diff --git a/models/drmatt/tardis/biglever.dx80.vtx b/models/drmatt/tardis/biglever.dx80.vtx deleted file mode 100644 index 35539b55e..000000000 Binary files a/models/drmatt/tardis/biglever.dx80.vtx and /dev/null differ diff --git a/models/drmatt/tardis/biglever.dx90.vtx b/models/drmatt/tardis/biglever.dx90.vtx deleted file mode 100644 index 4b05fee67..000000000 Binary files a/models/drmatt/tardis/biglever.dx90.vtx and /dev/null differ diff --git a/models/drmatt/tardis/biglever.mdl b/models/drmatt/tardis/biglever.mdl deleted file mode 100644 index 17e3afa90..000000000 Binary files a/models/drmatt/tardis/biglever.mdl and /dev/null differ diff --git a/models/drmatt/tardis/biglever.phy b/models/drmatt/tardis/biglever.phy deleted file mode 100644 index 38380864e..000000000 Binary files a/models/drmatt/tardis/biglever.phy and /dev/null differ diff --git a/models/drmatt/tardis/biglever.sw.vtx b/models/drmatt/tardis/biglever.sw.vtx deleted file mode 100644 index 60eb9faf6..000000000 Binary files a/models/drmatt/tardis/biglever.sw.vtx and /dev/null differ diff --git a/models/drmatt/tardis/biglever.vvd b/models/drmatt/tardis/biglever.vvd deleted file mode 100644 index cc9cb54af..000000000 Binary files a/models/drmatt/tardis/biglever.vvd and /dev/null differ diff --git a/models/drmatt/tardis/blacksticks.dx80.vtx b/models/drmatt/tardis/blacksticks.dx80.vtx deleted file mode 100644 index 6f011bd64..000000000 Binary files a/models/drmatt/tardis/blacksticks.dx80.vtx and /dev/null differ diff --git a/models/drmatt/tardis/blacksticks.dx90.vtx b/models/drmatt/tardis/blacksticks.dx90.vtx deleted file mode 100644 index da3c6e3a9..000000000 Binary files a/models/drmatt/tardis/blacksticks.dx90.vtx and /dev/null differ diff --git a/models/drmatt/tardis/blacksticks.mdl b/models/drmatt/tardis/blacksticks.mdl deleted file mode 100644 index b87fa03e8..000000000 Binary files a/models/drmatt/tardis/blacksticks.mdl and /dev/null differ diff --git a/models/drmatt/tardis/blacksticks.phy b/models/drmatt/tardis/blacksticks.phy deleted file mode 100644 index bf52bdaac..000000000 Binary files a/models/drmatt/tardis/blacksticks.phy and /dev/null differ diff --git a/models/drmatt/tardis/blacksticks.sw.vtx b/models/drmatt/tardis/blacksticks.sw.vtx deleted file mode 100644 index 6efabdce4..000000000 Binary files a/models/drmatt/tardis/blacksticks.sw.vtx and /dev/null differ diff --git a/models/drmatt/tardis/blacksticks.vvd b/models/drmatt/tardis/blacksticks.vvd deleted file mode 100644 index 5bb691996..000000000 Binary files a/models/drmatt/tardis/blacksticks.vvd and /dev/null differ diff --git a/models/drmatt/tardis/directionalpointer.dx80.vtx b/models/drmatt/tardis/directionalpointer.dx80.vtx deleted file mode 100644 index 316c1980a..000000000 Binary files a/models/drmatt/tardis/directionalpointer.dx80.vtx and /dev/null differ diff --git a/models/drmatt/tardis/directionalpointer.dx90.vtx b/models/drmatt/tardis/directionalpointer.dx90.vtx deleted file mode 100644 index f179eecb9..000000000 Binary files a/models/drmatt/tardis/directionalpointer.dx90.vtx and /dev/null differ diff --git a/models/drmatt/tardis/directionalpointer.mdl b/models/drmatt/tardis/directionalpointer.mdl deleted file mode 100644 index ba10a72d8..000000000 Binary files a/models/drmatt/tardis/directionalpointer.mdl and /dev/null differ diff --git a/models/drmatt/tardis/directionalpointer.phy b/models/drmatt/tardis/directionalpointer.phy deleted file mode 100644 index 1a124caca..000000000 Binary files a/models/drmatt/tardis/directionalpointer.phy and /dev/null differ diff --git a/models/drmatt/tardis/directionalpointer.sw.vtx b/models/drmatt/tardis/directionalpointer.sw.vtx deleted file mode 100644 index 26fca6e8c..000000000 Binary files a/models/drmatt/tardis/directionalpointer.sw.vtx and /dev/null differ diff --git a/models/drmatt/tardis/directionalpointer.vvd b/models/drmatt/tardis/directionalpointer.vvd deleted file mode 100644 index d4f57aae9..000000000 Binary files a/models/drmatt/tardis/directionalpointer.vvd and /dev/null differ diff --git a/models/drmatt/tardis/door.dx80.vtx b/models/drmatt/tardis/door.dx80.vtx deleted file mode 100644 index 5a1e04433..000000000 Binary files a/models/drmatt/tardis/door.dx80.vtx and /dev/null differ diff --git a/models/drmatt/tardis/door.dx90.vtx b/models/drmatt/tardis/door.dx90.vtx deleted file mode 100644 index 5f21c8f76..000000000 Binary files a/models/drmatt/tardis/door.dx90.vtx and /dev/null differ diff --git a/models/drmatt/tardis/door.mdl b/models/drmatt/tardis/door.mdl deleted file mode 100644 index a13dc27a7..000000000 Binary files a/models/drmatt/tardis/door.mdl and /dev/null differ diff --git a/models/drmatt/tardis/door.phy b/models/drmatt/tardis/door.phy deleted file mode 100644 index e1246f29e..000000000 Binary files a/models/drmatt/tardis/door.phy and /dev/null differ diff --git a/models/drmatt/tardis/door.sw.vtx b/models/drmatt/tardis/door.sw.vtx deleted file mode 100644 index 2d94eb00a..000000000 Binary files a/models/drmatt/tardis/door.sw.vtx and /dev/null differ diff --git a/models/drmatt/tardis/door.vvd b/models/drmatt/tardis/door.vvd deleted file mode 100644 index fc703594a..000000000 Binary files a/models/drmatt/tardis/door.vvd and /dev/null differ diff --git a/models/drmatt/tardis/exterior.dx80.vtx b/models/drmatt/tardis/exterior.dx80.vtx deleted file mode 100644 index 2693d25f8..000000000 Binary files a/models/drmatt/tardis/exterior.dx80.vtx and /dev/null differ diff --git a/models/drmatt/tardis/exterior.dx90.vtx b/models/drmatt/tardis/exterior.dx90.vtx deleted file mode 100644 index b700aed87..000000000 Binary files a/models/drmatt/tardis/exterior.dx90.vtx and /dev/null differ diff --git a/models/drmatt/tardis/exterior.mdl b/models/drmatt/tardis/exterior.mdl deleted file mode 100644 index c117ac38d..000000000 Binary files a/models/drmatt/tardis/exterior.mdl and /dev/null differ diff --git a/models/drmatt/tardis/exterior.phy b/models/drmatt/tardis/exterior.phy deleted file mode 100644 index 9aeeb8c05..000000000 Binary files a/models/drmatt/tardis/exterior.phy and /dev/null differ diff --git a/models/drmatt/tardis/exterior.sw.vtx b/models/drmatt/tardis/exterior.sw.vtx deleted file mode 100644 index eb38dd621..000000000 Binary files a/models/drmatt/tardis/exterior.sw.vtx and /dev/null differ diff --git a/models/drmatt/tardis/exterior.vvd b/models/drmatt/tardis/exterior.vvd deleted file mode 100644 index 4a53808a9..000000000 Binary files a/models/drmatt/tardis/exterior.vvd and /dev/null differ diff --git a/models/drmatt/tardis/flightlever.dx80.vtx b/models/drmatt/tardis/flightlever.dx80.vtx deleted file mode 100644 index e8fc197ae..000000000 Binary files a/models/drmatt/tardis/flightlever.dx80.vtx and /dev/null differ diff --git a/models/drmatt/tardis/flightlever.dx90.vtx b/models/drmatt/tardis/flightlever.dx90.vtx deleted file mode 100644 index f27605789..000000000 Binary files a/models/drmatt/tardis/flightlever.dx90.vtx and /dev/null differ diff --git a/models/drmatt/tardis/flightlever.mdl b/models/drmatt/tardis/flightlever.mdl deleted file mode 100644 index 6408451c1..000000000 Binary files a/models/drmatt/tardis/flightlever.mdl and /dev/null differ diff --git a/models/drmatt/tardis/flightlever.phy b/models/drmatt/tardis/flightlever.phy deleted file mode 100644 index a5b7bb79c..000000000 Binary files a/models/drmatt/tardis/flightlever.phy and /dev/null differ diff --git a/models/drmatt/tardis/flightlever.sw.vtx b/models/drmatt/tardis/flightlever.sw.vtx deleted file mode 100644 index 931ecc0d6..000000000 Binary files a/models/drmatt/tardis/flightlever.sw.vtx and /dev/null differ diff --git a/models/drmatt/tardis/flightlever.vvd b/models/drmatt/tardis/flightlever.vvd deleted file mode 100644 index 48689eacf..000000000 Binary files a/models/drmatt/tardis/flightlever.vvd and /dev/null differ diff --git a/models/drmatt/tardis/gramophone.dx80.vtx b/models/drmatt/tardis/gramophone.dx80.vtx deleted file mode 100644 index fc07a7e60..000000000 Binary files a/models/drmatt/tardis/gramophone.dx80.vtx and /dev/null differ diff --git a/models/drmatt/tardis/gramophone.dx90.vtx b/models/drmatt/tardis/gramophone.dx90.vtx deleted file mode 100644 index c40315041..000000000 Binary files a/models/drmatt/tardis/gramophone.dx90.vtx and /dev/null differ diff --git a/models/drmatt/tardis/gramophone.mdl b/models/drmatt/tardis/gramophone.mdl deleted file mode 100644 index a8383bcd6..000000000 Binary files a/models/drmatt/tardis/gramophone.mdl and /dev/null differ diff --git a/models/drmatt/tardis/gramophone.phy b/models/drmatt/tardis/gramophone.phy deleted file mode 100644 index adf675124..000000000 Binary files a/models/drmatt/tardis/gramophone.phy and /dev/null differ diff --git a/models/drmatt/tardis/gramophone.sw.vtx b/models/drmatt/tardis/gramophone.sw.vtx deleted file mode 100644 index adeb9d455..000000000 Binary files a/models/drmatt/tardis/gramophone.sw.vtx and /dev/null differ diff --git a/models/drmatt/tardis/gramophone.vvd b/models/drmatt/tardis/gramophone.vvd deleted file mode 100644 index 3188d88fa..000000000 Binary files a/models/drmatt/tardis/gramophone.vvd and /dev/null differ diff --git a/models/drmatt/tardis/handbrake.dx80.vtx b/models/drmatt/tardis/handbrake.dx80.vtx deleted file mode 100644 index 3dc0466e3..000000000 Binary files a/models/drmatt/tardis/handbrake.dx80.vtx and /dev/null differ diff --git a/models/drmatt/tardis/handbrake.dx90.vtx b/models/drmatt/tardis/handbrake.dx90.vtx deleted file mode 100644 index 36a0ccc1d..000000000 Binary files a/models/drmatt/tardis/handbrake.dx90.vtx and /dev/null differ diff --git a/models/drmatt/tardis/handbrake.mdl b/models/drmatt/tardis/handbrake.mdl deleted file mode 100644 index e58c5bd09..000000000 Binary files a/models/drmatt/tardis/handbrake.mdl and /dev/null differ diff --git a/models/drmatt/tardis/handbrake.phy b/models/drmatt/tardis/handbrake.phy deleted file mode 100644 index bb54512de..000000000 Binary files a/models/drmatt/tardis/handbrake.phy and /dev/null differ diff --git a/models/drmatt/tardis/handbrake.sw.vtx b/models/drmatt/tardis/handbrake.sw.vtx deleted file mode 100644 index 4b906ba7e..000000000 Binary files a/models/drmatt/tardis/handbrake.sw.vtx and /dev/null differ diff --git a/models/drmatt/tardis/handbrake.vvd b/models/drmatt/tardis/handbrake.vvd deleted file mode 100644 index ead0d79b0..000000000 Binary files a/models/drmatt/tardis/handbrake.vvd and /dev/null differ diff --git a/models/drmatt/tardis/helmicregulator.dx80.vtx b/models/drmatt/tardis/helmicregulator.dx80.vtx deleted file mode 100644 index 629833bca..000000000 Binary files a/models/drmatt/tardis/helmicregulator.dx80.vtx and /dev/null differ diff --git a/models/drmatt/tardis/helmicregulator.dx90.vtx b/models/drmatt/tardis/helmicregulator.dx90.vtx deleted file mode 100644 index baf4b2c39..000000000 Binary files a/models/drmatt/tardis/helmicregulator.dx90.vtx and /dev/null differ diff --git a/models/drmatt/tardis/helmicregulator.mdl b/models/drmatt/tardis/helmicregulator.mdl deleted file mode 100644 index b6cdd933a..000000000 Binary files a/models/drmatt/tardis/helmicregulator.mdl and /dev/null differ diff --git a/models/drmatt/tardis/helmicregulator.phy b/models/drmatt/tardis/helmicregulator.phy deleted file mode 100644 index e646c9c6e..000000000 Binary files a/models/drmatt/tardis/helmicregulator.phy and /dev/null differ diff --git a/models/drmatt/tardis/helmicregulator.sw.vtx b/models/drmatt/tardis/helmicregulator.sw.vtx deleted file mode 100644 index 3b94a9461..000000000 Binary files a/models/drmatt/tardis/helmicregulator.sw.vtx and /dev/null differ diff --git a/models/drmatt/tardis/helmicregulator.vvd b/models/drmatt/tardis/helmicregulator.vvd deleted file mode 100644 index 204a08ff7..000000000 Binary files a/models/drmatt/tardis/helmicregulator.vvd and /dev/null differ diff --git a/models/drmatt/tardis/interior.dx80.vtx b/models/drmatt/tardis/interior.dx80.vtx deleted file mode 100644 index 88032adc0..000000000 Binary files a/models/drmatt/tardis/interior.dx80.vtx and /dev/null differ diff --git a/models/drmatt/tardis/interior.dx90.vtx b/models/drmatt/tardis/interior.dx90.vtx deleted file mode 100644 index 88032adc0..000000000 Binary files a/models/drmatt/tardis/interior.dx90.vtx and /dev/null differ diff --git a/models/drmatt/tardis/interior.mdl b/models/drmatt/tardis/interior.mdl deleted file mode 100644 index a7191e727..000000000 Binary files a/models/drmatt/tardis/interior.mdl and /dev/null differ diff --git a/models/drmatt/tardis/interior.phy b/models/drmatt/tardis/interior.phy deleted file mode 100644 index 60d089c57..000000000 Binary files a/models/drmatt/tardis/interior.phy and /dev/null differ diff --git a/models/drmatt/tardis/interior.sw.vtx b/models/drmatt/tardis/interior.sw.vtx deleted file mode 100644 index bc250a1e4..000000000 Binary files a/models/drmatt/tardis/interior.sw.vtx and /dev/null differ diff --git a/models/drmatt/tardis/interior.vvd b/models/drmatt/tardis/interior.vvd deleted file mode 100644 index d8e211a11..000000000 Binary files a/models/drmatt/tardis/interior.vvd and /dev/null differ diff --git a/models/drmatt/tardis/keyboard.dx80.vtx b/models/drmatt/tardis/keyboard.dx80.vtx deleted file mode 100644 index 2ebef21e5..000000000 Binary files a/models/drmatt/tardis/keyboard.dx80.vtx and /dev/null differ diff --git a/models/drmatt/tardis/keyboard.dx90.vtx b/models/drmatt/tardis/keyboard.dx90.vtx deleted file mode 100644 index bef005936..000000000 Binary files a/models/drmatt/tardis/keyboard.dx90.vtx and /dev/null differ diff --git a/models/drmatt/tardis/keyboard.mdl b/models/drmatt/tardis/keyboard.mdl deleted file mode 100644 index 46cfdd095..000000000 Binary files a/models/drmatt/tardis/keyboard.mdl and /dev/null differ diff --git a/models/drmatt/tardis/keyboard.phy b/models/drmatt/tardis/keyboard.phy deleted file mode 100644 index 159d9a657..000000000 Binary files a/models/drmatt/tardis/keyboard.phy and /dev/null differ diff --git a/models/drmatt/tardis/keyboard.sw.vtx b/models/drmatt/tardis/keyboard.sw.vtx deleted file mode 100644 index 162c2e7b6..000000000 Binary files a/models/drmatt/tardis/keyboard.sw.vtx and /dev/null differ diff --git a/models/drmatt/tardis/keyboard.vvd b/models/drmatt/tardis/keyboard.vvd deleted file mode 100644 index 814430244..000000000 Binary files a/models/drmatt/tardis/keyboard.vvd and /dev/null differ diff --git a/models/drmatt/tardis/longflighttoggle.dx80.vtx b/models/drmatt/tardis/longflighttoggle.dx80.vtx deleted file mode 100644 index 0e0c1821e..000000000 Binary files a/models/drmatt/tardis/longflighttoggle.dx80.vtx and /dev/null differ diff --git a/models/drmatt/tardis/longflighttoggle.dx90.vtx b/models/drmatt/tardis/longflighttoggle.dx90.vtx deleted file mode 100644 index 1a072bfe7..000000000 Binary files a/models/drmatt/tardis/longflighttoggle.dx90.vtx and /dev/null differ diff --git a/models/drmatt/tardis/longflighttoggle.mdl b/models/drmatt/tardis/longflighttoggle.mdl deleted file mode 100644 index cb7ab2ae0..000000000 Binary files a/models/drmatt/tardis/longflighttoggle.mdl and /dev/null differ diff --git a/models/drmatt/tardis/longflighttoggle.phy b/models/drmatt/tardis/longflighttoggle.phy deleted file mode 100644 index 3cf09e870..000000000 Binary files a/models/drmatt/tardis/longflighttoggle.phy and /dev/null differ diff --git a/models/drmatt/tardis/longflighttoggle.sw.vtx b/models/drmatt/tardis/longflighttoggle.sw.vtx deleted file mode 100644 index 326512705..000000000 Binary files a/models/drmatt/tardis/longflighttoggle.sw.vtx and /dev/null differ diff --git a/models/drmatt/tardis/longflighttoggle.vvd b/models/drmatt/tardis/longflighttoggle.vvd deleted file mode 100644 index 1d7d6bbab..000000000 Binary files a/models/drmatt/tardis/longflighttoggle.vvd and /dev/null differ diff --git a/models/drmatt/tardis/rails.dx80.vtx b/models/drmatt/tardis/rails.dx80.vtx deleted file mode 100644 index edcaa7568..000000000 Binary files a/models/drmatt/tardis/rails.dx80.vtx and /dev/null differ diff --git a/models/drmatt/tardis/rails.dx90.vtx b/models/drmatt/tardis/rails.dx90.vtx deleted file mode 100644 index 6d03c1d01..000000000 Binary files a/models/drmatt/tardis/rails.dx90.vtx and /dev/null differ diff --git a/models/drmatt/tardis/rails.mdl b/models/drmatt/tardis/rails.mdl deleted file mode 100644 index 3c8956e40..000000000 Binary files a/models/drmatt/tardis/rails.mdl and /dev/null differ diff --git a/models/drmatt/tardis/rails.phy b/models/drmatt/tardis/rails.phy deleted file mode 100644 index 933d6dc2d..000000000 Binary files a/models/drmatt/tardis/rails.phy and /dev/null differ diff --git a/models/drmatt/tardis/rails.sw.vtx b/models/drmatt/tardis/rails.sw.vtx deleted file mode 100644 index 0a85ccc6c..000000000 Binary files a/models/drmatt/tardis/rails.sw.vtx and /dev/null differ diff --git a/models/drmatt/tardis/rails.vvd b/models/drmatt/tardis/rails.vvd deleted file mode 100644 index 606fa33a9..000000000 Binary files a/models/drmatt/tardis/rails.vvd and /dev/null differ diff --git a/models/drmatt/tardis/repairlever.dx80.vtx b/models/drmatt/tardis/repairlever.dx80.vtx deleted file mode 100644 index 1ec716861..000000000 Binary files a/models/drmatt/tardis/repairlever.dx80.vtx and /dev/null differ diff --git a/models/drmatt/tardis/repairlever.dx90.vtx b/models/drmatt/tardis/repairlever.dx90.vtx deleted file mode 100644 index ad71a81d0..000000000 Binary files a/models/drmatt/tardis/repairlever.dx90.vtx and /dev/null differ diff --git a/models/drmatt/tardis/repairlever.mdl b/models/drmatt/tardis/repairlever.mdl deleted file mode 100644 index 82bb79aa7..000000000 Binary files a/models/drmatt/tardis/repairlever.mdl and /dev/null differ diff --git a/models/drmatt/tardis/repairlever.phy b/models/drmatt/tardis/repairlever.phy deleted file mode 100644 index ed21ae2c4..000000000 Binary files a/models/drmatt/tardis/repairlever.phy and /dev/null differ diff --git a/models/drmatt/tardis/repairlever.sw.vtx b/models/drmatt/tardis/repairlever.sw.vtx deleted file mode 100644 index cb9c26355..000000000 Binary files a/models/drmatt/tardis/repairlever.sw.vtx and /dev/null differ diff --git a/models/drmatt/tardis/repairlever.vvd b/models/drmatt/tardis/repairlever.vvd deleted file mode 100644 index c2c9984d2..000000000 Binary files a/models/drmatt/tardis/repairlever.vvd and /dev/null differ diff --git a/models/drmatt/tardis/screen.dx80.vtx b/models/drmatt/tardis/screen.dx80.vtx deleted file mode 100644 index f6dd8156c..000000000 Binary files a/models/drmatt/tardis/screen.dx80.vtx and /dev/null differ diff --git a/models/drmatt/tardis/screen.dx90.vtx b/models/drmatt/tardis/screen.dx90.vtx deleted file mode 100644 index a376bd604..000000000 Binary files a/models/drmatt/tardis/screen.dx90.vtx and /dev/null differ diff --git a/models/drmatt/tardis/screen.mdl b/models/drmatt/tardis/screen.mdl deleted file mode 100644 index 8eaba3665..000000000 Binary files a/models/drmatt/tardis/screen.mdl and /dev/null differ diff --git a/models/drmatt/tardis/screen.phy b/models/drmatt/tardis/screen.phy deleted file mode 100644 index 232564eb1..000000000 Binary files a/models/drmatt/tardis/screen.phy and /dev/null differ diff --git a/models/drmatt/tardis/screen.sw.vtx b/models/drmatt/tardis/screen.sw.vtx deleted file mode 100644 index aec235d1e..000000000 Binary files a/models/drmatt/tardis/screen.sw.vtx and /dev/null differ diff --git a/models/drmatt/tardis/screen.vvd b/models/drmatt/tardis/screen.vvd deleted file mode 100644 index bbb6919c8..000000000 Binary files a/models/drmatt/tardis/screen.vvd and /dev/null differ diff --git a/models/drmatt/tardis/smallbutton.dx80.vtx b/models/drmatt/tardis/smallbutton.dx80.vtx deleted file mode 100644 index 54806022e..000000000 Binary files a/models/drmatt/tardis/smallbutton.dx80.vtx and /dev/null differ diff --git a/models/drmatt/tardis/smallbutton.dx90.vtx b/models/drmatt/tardis/smallbutton.dx90.vtx deleted file mode 100644 index 6373ea404..000000000 Binary files a/models/drmatt/tardis/smallbutton.dx90.vtx and /dev/null differ diff --git a/models/drmatt/tardis/smallbutton.mdl b/models/drmatt/tardis/smallbutton.mdl deleted file mode 100644 index c2582f326..000000000 Binary files a/models/drmatt/tardis/smallbutton.mdl and /dev/null differ diff --git a/models/drmatt/tardis/smallbutton.phy b/models/drmatt/tardis/smallbutton.phy deleted file mode 100644 index 38cfcf015..000000000 Binary files a/models/drmatt/tardis/smallbutton.phy and /dev/null differ diff --git a/models/drmatt/tardis/smallbutton.sw.vtx b/models/drmatt/tardis/smallbutton.sw.vtx deleted file mode 100644 index 61e9faaed..000000000 Binary files a/models/drmatt/tardis/smallbutton.sw.vtx and /dev/null differ diff --git a/models/drmatt/tardis/smallbutton.vvd b/models/drmatt/tardis/smallbutton.vvd deleted file mode 100644 index e395637af..000000000 Binary files a/models/drmatt/tardis/smallbutton.vvd and /dev/null differ diff --git a/models/drmatt/tardis/throttle.dx80.vtx b/models/drmatt/tardis/throttle.dx80.vtx deleted file mode 100644 index 75573f587..000000000 Binary files a/models/drmatt/tardis/throttle.dx80.vtx and /dev/null differ diff --git a/models/drmatt/tardis/throttle.dx90.vtx b/models/drmatt/tardis/throttle.dx90.vtx deleted file mode 100644 index 878a04505..000000000 Binary files a/models/drmatt/tardis/throttle.dx90.vtx and /dev/null differ diff --git a/models/drmatt/tardis/throttle.mdl b/models/drmatt/tardis/throttle.mdl deleted file mode 100644 index 5e1dbcfe1..000000000 Binary files a/models/drmatt/tardis/throttle.mdl and /dev/null differ diff --git a/models/drmatt/tardis/throttle.phy b/models/drmatt/tardis/throttle.phy deleted file mode 100644 index 5e78b1400..000000000 Binary files a/models/drmatt/tardis/throttle.phy and /dev/null differ diff --git a/models/drmatt/tardis/throttle.sw.vtx b/models/drmatt/tardis/throttle.sw.vtx deleted file mode 100644 index feba9a542..000000000 Binary files a/models/drmatt/tardis/throttle.sw.vtx and /dev/null differ diff --git a/models/drmatt/tardis/throttle.vvd b/models/drmatt/tardis/throttle.vvd deleted file mode 100644 index db5aec8fc..000000000 Binary files a/models/drmatt/tardis/throttle.vvd and /dev/null differ diff --git a/models/drmatt/tardis/typewriter.dx80.vtx b/models/drmatt/tardis/typewriter.dx80.vtx deleted file mode 100644 index 38cb0e9e9..000000000 Binary files a/models/drmatt/tardis/typewriter.dx80.vtx and /dev/null differ diff --git a/models/drmatt/tardis/typewriter.dx90.vtx b/models/drmatt/tardis/typewriter.dx90.vtx deleted file mode 100644 index 4fa6fc890..000000000 Binary files a/models/drmatt/tardis/typewriter.dx90.vtx and /dev/null differ diff --git a/models/drmatt/tardis/typewriter.mdl b/models/drmatt/tardis/typewriter.mdl deleted file mode 100644 index b65ac8f6f..000000000 Binary files a/models/drmatt/tardis/typewriter.mdl and /dev/null differ diff --git a/models/drmatt/tardis/typewriter.phy b/models/drmatt/tardis/typewriter.phy deleted file mode 100644 index 94ea49cab..000000000 Binary files a/models/drmatt/tardis/typewriter.phy and /dev/null differ diff --git a/models/drmatt/tardis/typewriter.sw.vtx b/models/drmatt/tardis/typewriter.sw.vtx deleted file mode 100644 index 74ae3510c..000000000 Binary files a/models/drmatt/tardis/typewriter.sw.vtx and /dev/null differ diff --git a/models/drmatt/tardis/typewriter.vvd b/models/drmatt/tardis/typewriter.vvd deleted file mode 100644 index 730db6152..000000000 Binary files a/models/drmatt/tardis/typewriter.vvd and /dev/null differ diff --git a/models/drmatt/tardis/vortex.dx80.vtx b/models/drmatt/tardis/vortex.dx80.vtx deleted file mode 100644 index 9d02d51fe..000000000 Binary files a/models/drmatt/tardis/vortex.dx80.vtx and /dev/null differ diff --git a/models/drmatt/tardis/vortex.dx90.vtx b/models/drmatt/tardis/vortex.dx90.vtx deleted file mode 100644 index 1ecdb6678..000000000 Binary files a/models/drmatt/tardis/vortex.dx90.vtx and /dev/null differ diff --git a/models/drmatt/tardis/vortex.mdl b/models/drmatt/tardis/vortex.mdl deleted file mode 100644 index 6e95ca1ee..000000000 Binary files a/models/drmatt/tardis/vortex.mdl and /dev/null differ diff --git a/models/drmatt/tardis/vortex.sw.vtx b/models/drmatt/tardis/vortex.sw.vtx deleted file mode 100644 index 41f3a1d74..000000000 Binary files a/models/drmatt/tardis/vortex.sw.vtx and /dev/null differ diff --git a/models/drmatt/tardis/vortex.vvd b/models/drmatt/tardis/vortex.vvd deleted file mode 100644 index da6019421..000000000 Binary files a/models/drmatt/tardis/vortex.vvd and /dev/null differ diff --git a/models/drmatt/tardis/wibblylever.dx80.vtx b/models/drmatt/tardis/wibblylever.dx80.vtx deleted file mode 100644 index 15267b275..000000000 Binary files a/models/drmatt/tardis/wibblylever.dx80.vtx and /dev/null differ diff --git a/models/drmatt/tardis/wibblylever.dx90.vtx b/models/drmatt/tardis/wibblylever.dx90.vtx deleted file mode 100644 index fdc60b69c..000000000 Binary files a/models/drmatt/tardis/wibblylever.dx90.vtx and /dev/null differ diff --git a/models/drmatt/tardis/wibblylever.mdl b/models/drmatt/tardis/wibblylever.mdl deleted file mode 100644 index dc0c5f9f1..000000000 Binary files a/models/drmatt/tardis/wibblylever.mdl and /dev/null differ diff --git a/models/drmatt/tardis/wibblylever.phy b/models/drmatt/tardis/wibblylever.phy deleted file mode 100644 index ba7110db3..000000000 Binary files a/models/drmatt/tardis/wibblylever.phy and /dev/null differ diff --git a/models/drmatt/tardis/wibblylever.sw.vtx b/models/drmatt/tardis/wibblylever.sw.vtx deleted file mode 100644 index 852dadebc..000000000 Binary files a/models/drmatt/tardis/wibblylever.sw.vtx and /dev/null differ diff --git a/models/drmatt/tardis/wibblylever.vvd b/models/drmatt/tardis/wibblylever.vvd deleted file mode 100644 index ca250f799..000000000 Binary files a/models/drmatt/tardis/wibblylever.vvd and /dev/null differ diff --git a/models/molda/toyota_ext/exterior.dx80.vtx b/models/molda/toyota_ext/exterior.dx80.vtx new file mode 100644 index 000000000..67107a364 Binary files /dev/null and b/models/molda/toyota_ext/exterior.dx80.vtx differ diff --git a/models/molda/toyota_ext/exterior.dx90.vtx b/models/molda/toyota_ext/exterior.dx90.vtx new file mode 100644 index 000000000..ef3ac833b Binary files /dev/null and b/models/molda/toyota_ext/exterior.dx90.vtx differ diff --git a/models/molda/toyota_ext/exterior.mdl b/models/molda/toyota_ext/exterior.mdl new file mode 100644 index 000000000..3cce3fa64 Binary files /dev/null and b/models/molda/toyota_ext/exterior.mdl differ diff --git a/models/molda/toyota_ext/exterior.phy b/models/molda/toyota_ext/exterior.phy new file mode 100644 index 000000000..0cfc89140 Binary files /dev/null and b/models/molda/toyota_ext/exterior.phy differ diff --git a/models/molda/toyota_ext/exterior.sw.vtx b/models/molda/toyota_ext/exterior.sw.vtx new file mode 100644 index 000000000..42ba1d017 Binary files /dev/null and b/models/molda/toyota_ext/exterior.sw.vtx differ diff --git a/models/molda/toyota_ext/exterior.vvd b/models/molda/toyota_ext/exterior.vvd new file mode 100644 index 000000000..4c3fcc061 Binary files /dev/null and b/models/molda/toyota_ext/exterior.vvd differ diff --git a/models/molda/toyota_int/bulbs.dx80.vtx b/models/molda/toyota_int/bulbs.dx80.vtx new file mode 100644 index 000000000..b35b29a87 Binary files /dev/null and b/models/molda/toyota_int/bulbs.dx80.vtx differ diff --git a/models/molda/toyota_int/bulbs.dx90.vtx b/models/molda/toyota_int/bulbs.dx90.vtx new file mode 100644 index 000000000..1439de403 Binary files /dev/null and b/models/molda/toyota_int/bulbs.dx90.vtx differ diff --git a/models/molda/toyota_int/bulbs.mdl b/models/molda/toyota_int/bulbs.mdl new file mode 100644 index 000000000..48df2ba5c Binary files /dev/null and b/models/molda/toyota_int/bulbs.mdl differ diff --git a/models/molda/toyota_int/bulbs.sw.vtx b/models/molda/toyota_int/bulbs.sw.vtx new file mode 100644 index 000000000..d6b68f184 Binary files /dev/null and b/models/molda/toyota_int/bulbs.sw.vtx differ diff --git a/models/molda/toyota_int/bulbs.vvd b/models/molda/toyota_int/bulbs.vvd new file mode 100644 index 000000000..9c766b69f Binary files /dev/null and b/models/molda/toyota_int/bulbs.vvd differ diff --git a/models/molda/toyota_int/cables1.dx80.vtx b/models/molda/toyota_int/cables1.dx80.vtx new file mode 100644 index 000000000..326105d12 Binary files /dev/null and b/models/molda/toyota_int/cables1.dx80.vtx differ diff --git a/models/molda/toyota_int/cables1.dx90.vtx b/models/molda/toyota_int/cables1.dx90.vtx new file mode 100644 index 000000000..3871828a0 Binary files /dev/null and b/models/molda/toyota_int/cables1.dx90.vtx differ diff --git a/models/molda/toyota_int/cables1.mdl b/models/molda/toyota_int/cables1.mdl new file mode 100644 index 000000000..dc92bcf9e Binary files /dev/null and b/models/molda/toyota_int/cables1.mdl differ diff --git a/models/molda/toyota_int/cables1.sw.vtx b/models/molda/toyota_int/cables1.sw.vtx new file mode 100644 index 000000000..62e5f9225 Binary files /dev/null and b/models/molda/toyota_int/cables1.sw.vtx differ diff --git a/models/molda/toyota_int/cables1.vvd b/models/molda/toyota_int/cables1.vvd new file mode 100644 index 000000000..725e65e08 Binary files /dev/null and b/models/molda/toyota_int/cables1.vvd differ diff --git a/models/molda/toyota_int/cables2.dx80.vtx b/models/molda/toyota_int/cables2.dx80.vtx new file mode 100644 index 000000000..adac14827 Binary files /dev/null and b/models/molda/toyota_int/cables2.dx80.vtx differ diff --git a/models/molda/toyota_int/cables2.dx90.vtx b/models/molda/toyota_int/cables2.dx90.vtx new file mode 100644 index 000000000..aa389fc3b Binary files /dev/null and b/models/molda/toyota_int/cables2.dx90.vtx differ diff --git a/models/molda/toyota_int/cables2.mdl b/models/molda/toyota_int/cables2.mdl new file mode 100644 index 000000000..66b6b1e4f Binary files /dev/null and b/models/molda/toyota_int/cables2.mdl differ diff --git a/models/molda/toyota_int/cables2.sw.vtx b/models/molda/toyota_int/cables2.sw.vtx new file mode 100644 index 000000000..b093d8fa2 Binary files /dev/null and b/models/molda/toyota_int/cables2.sw.vtx differ diff --git a/models/molda/toyota_int/cables2.vvd b/models/molda/toyota_int/cables2.vvd new file mode 100644 index 000000000..55eb9fa2f Binary files /dev/null and b/models/molda/toyota_int/cables2.vvd differ diff --git a/models/molda/toyota_int/cables3.dx80.vtx b/models/molda/toyota_int/cables3.dx80.vtx new file mode 100644 index 000000000..b0f9d22b4 Binary files /dev/null and b/models/molda/toyota_int/cables3.dx80.vtx differ diff --git a/models/molda/toyota_int/cables3.dx90.vtx b/models/molda/toyota_int/cables3.dx90.vtx new file mode 100644 index 000000000..c54900fff Binary files /dev/null and b/models/molda/toyota_int/cables3.dx90.vtx differ diff --git a/models/molda/toyota_int/cables3.mdl b/models/molda/toyota_int/cables3.mdl new file mode 100644 index 000000000..fc6aabfa9 Binary files /dev/null and b/models/molda/toyota_int/cables3.mdl differ diff --git a/models/molda/toyota_int/cables3.sw.vtx b/models/molda/toyota_int/cables3.sw.vtx new file mode 100644 index 000000000..e50680028 Binary files /dev/null and b/models/molda/toyota_int/cables3.sw.vtx differ diff --git a/models/molda/toyota_int/cables3.vvd b/models/molda/toyota_int/cables3.vvd new file mode 100644 index 000000000..a1c865a4a Binary files /dev/null and b/models/molda/toyota_int/cables3.vvd differ diff --git a/models/molda/toyota_int/casing.dx80.vtx b/models/molda/toyota_int/casing.dx80.vtx new file mode 100644 index 000000000..9d217a4fa Binary files /dev/null and b/models/molda/toyota_int/casing.dx80.vtx differ diff --git a/models/molda/toyota_int/casing.dx90.vtx b/models/molda/toyota_int/casing.dx90.vtx new file mode 100644 index 000000000..7471415cb Binary files /dev/null and b/models/molda/toyota_int/casing.dx90.vtx differ diff --git a/models/molda/toyota_int/casing.mdl b/models/molda/toyota_int/casing.mdl new file mode 100644 index 000000000..2461b12cf Binary files /dev/null and b/models/molda/toyota_int/casing.mdl differ diff --git a/models/molda/toyota_int/casing.sw.vtx b/models/molda/toyota_int/casing.sw.vtx new file mode 100644 index 000000000..7604f1440 Binary files /dev/null and b/models/molda/toyota_int/casing.sw.vtx differ diff --git a/models/molda/toyota_int/casing.vvd b/models/molda/toyota_int/casing.vvd new file mode 100644 index 000000000..10509e838 Binary files /dev/null and b/models/molda/toyota_int/casing.vvd differ diff --git a/models/molda/toyota_int/chairs.dx80.vtx b/models/molda/toyota_int/chairs.dx80.vtx new file mode 100644 index 000000000..f3551d3e9 Binary files /dev/null and b/models/molda/toyota_int/chairs.dx80.vtx differ diff --git a/models/molda/toyota_int/chairs.dx90.vtx b/models/molda/toyota_int/chairs.dx90.vtx new file mode 100644 index 000000000..da1386585 Binary files /dev/null and b/models/molda/toyota_int/chairs.dx90.vtx differ diff --git a/models/molda/toyota_int/chairs.mdl b/models/molda/toyota_int/chairs.mdl new file mode 100644 index 000000000..8d4814e49 Binary files /dev/null and b/models/molda/toyota_int/chairs.mdl differ diff --git a/models/molda/toyota_int/chairs.phy b/models/molda/toyota_int/chairs.phy new file mode 100644 index 000000000..7231c24af Binary files /dev/null and b/models/molda/toyota_int/chairs.phy differ diff --git a/models/molda/toyota_int/chairs.sw.vtx b/models/molda/toyota_int/chairs.sw.vtx new file mode 100644 index 000000000..fda7d7806 Binary files /dev/null and b/models/molda/toyota_int/chairs.sw.vtx differ diff --git a/models/molda/toyota_int/chairs.vvd b/models/molda/toyota_int/chairs.vvd new file mode 100644 index 000000000..9d0caa8ee Binary files /dev/null and b/models/molda/toyota_int/chairs.vvd differ diff --git a/models/molda/toyota_int/console.dx80.vtx b/models/molda/toyota_int/console.dx80.vtx new file mode 100644 index 000000000..46dfa924a Binary files /dev/null and b/models/molda/toyota_int/console.dx80.vtx differ diff --git a/models/molda/toyota_int/console.dx90.vtx b/models/molda/toyota_int/console.dx90.vtx new file mode 100644 index 000000000..4c0008280 Binary files /dev/null and b/models/molda/toyota_int/console.dx90.vtx differ diff --git a/models/molda/toyota_int/console.mdl b/models/molda/toyota_int/console.mdl new file mode 100644 index 000000000..04c3099af Binary files /dev/null and b/models/molda/toyota_int/console.mdl differ diff --git a/models/molda/toyota_int/console.phy b/models/molda/toyota_int/console.phy new file mode 100644 index 000000000..0eb57a729 Binary files /dev/null and b/models/molda/toyota_int/console.phy differ diff --git a/models/molda/toyota_int/console.sw.vtx b/models/molda/toyota_int/console.sw.vtx new file mode 100644 index 000000000..8d95c0857 Binary files /dev/null and b/models/molda/toyota_int/console.sw.vtx differ diff --git a/models/molda/toyota_int/console.vvd b/models/molda/toyota_int/console.vvd new file mode 100644 index 000000000..ac71c8b2e Binary files /dev/null and b/models/molda/toyota_int/console.vvd differ diff --git a/models/molda/toyota_int/corridor_version2.dx80.vtx b/models/molda/toyota_int/corridor_version2.dx80.vtx new file mode 100644 index 000000000..90e34a955 Binary files /dev/null and b/models/molda/toyota_int/corridor_version2.dx80.vtx differ diff --git a/models/molda/toyota_int/corridor_version2.dx90.vtx b/models/molda/toyota_int/corridor_version2.dx90.vtx new file mode 100644 index 000000000..575fa2df1 Binary files /dev/null and b/models/molda/toyota_int/corridor_version2.dx90.vtx differ diff --git a/models/molda/toyota_int/corridor_version2.mdl b/models/molda/toyota_int/corridor_version2.mdl new file mode 100644 index 000000000..2d76b4e8b Binary files /dev/null and b/models/molda/toyota_int/corridor_version2.mdl differ diff --git a/models/molda/toyota_int/corridor_version2.phy b/models/molda/toyota_int/corridor_version2.phy new file mode 100644 index 000000000..4e9410cdb Binary files /dev/null and b/models/molda/toyota_int/corridor_version2.phy differ diff --git a/models/molda/toyota_int/corridor_version2.sw.vtx b/models/molda/toyota_int/corridor_version2.sw.vtx new file mode 100644 index 000000000..b8ad223ed Binary files /dev/null and b/models/molda/toyota_int/corridor_version2.sw.vtx differ diff --git a/models/molda/toyota_int/corridor_version2.vvd b/models/molda/toyota_int/corridor_version2.vvd new file mode 100644 index 000000000..5ce8efe92 Binary files /dev/null and b/models/molda/toyota_int/corridor_version2.vvd differ diff --git a/models/molda/toyota_int/corridor_version3.dx80.vtx b/models/molda/toyota_int/corridor_version3.dx80.vtx new file mode 100644 index 000000000..61e3462fa Binary files /dev/null and b/models/molda/toyota_int/corridor_version3.dx80.vtx differ diff --git a/models/molda/toyota_int/corridor_version3.dx90.vtx b/models/molda/toyota_int/corridor_version3.dx90.vtx new file mode 100644 index 000000000..cde6c8c16 Binary files /dev/null and b/models/molda/toyota_int/corridor_version3.dx90.vtx differ diff --git a/models/molda/toyota_int/corridor_version3.mdl b/models/molda/toyota_int/corridor_version3.mdl new file mode 100644 index 000000000..586a984eb Binary files /dev/null and b/models/molda/toyota_int/corridor_version3.mdl differ diff --git a/models/molda/toyota_int/corridor_version3.phy b/models/molda/toyota_int/corridor_version3.phy new file mode 100644 index 000000000..78b3bcd7b Binary files /dev/null and b/models/molda/toyota_int/corridor_version3.phy differ diff --git a/models/molda/toyota_int/corridor_version3.sw.vtx b/models/molda/toyota_int/corridor_version3.sw.vtx new file mode 100644 index 000000000..57cc2193b Binary files /dev/null and b/models/molda/toyota_int/corridor_version3.sw.vtx differ diff --git a/models/molda/toyota_int/corridor_version3.vvd b/models/molda/toyota_int/corridor_version3.vvd new file mode 100644 index 000000000..a036b9630 Binary files /dev/null and b/models/molda/toyota_int/corridor_version3.vvd differ diff --git a/models/molda/toyota_int/doorframe.dx80.vtx b/models/molda/toyota_int/doorframe.dx80.vtx new file mode 100644 index 000000000..32753f471 Binary files /dev/null and b/models/molda/toyota_int/doorframe.dx80.vtx differ diff --git a/models/molda/toyota_int/doorframe.dx90.vtx b/models/molda/toyota_int/doorframe.dx90.vtx new file mode 100644 index 000000000..7d861714b Binary files /dev/null and b/models/molda/toyota_int/doorframe.dx90.vtx differ diff --git a/models/molda/toyota_int/doorframe.mdl b/models/molda/toyota_int/doorframe.mdl new file mode 100644 index 000000000..be8ddde48 Binary files /dev/null and b/models/molda/toyota_int/doorframe.mdl differ diff --git a/models/molda/toyota_int/doorframe.sw.vtx b/models/molda/toyota_int/doorframe.sw.vtx new file mode 100644 index 000000000..6d0f5ae67 Binary files /dev/null and b/models/molda/toyota_int/doorframe.sw.vtx differ diff --git a/models/molda/toyota_int/doorframe.vvd b/models/molda/toyota_int/doorframe.vvd new file mode 100644 index 000000000..88d5673ee Binary files /dev/null and b/models/molda/toyota_int/doorframe.vvd differ diff --git a/models/molda/toyota_int/entry.dx80.vtx b/models/molda/toyota_int/entry.dx80.vtx new file mode 100644 index 000000000..30c8fd0fc Binary files /dev/null and b/models/molda/toyota_int/entry.dx80.vtx differ diff --git a/models/molda/toyota_int/entry.dx90.vtx b/models/molda/toyota_int/entry.dx90.vtx new file mode 100644 index 000000000..621166427 Binary files /dev/null and b/models/molda/toyota_int/entry.dx90.vtx differ diff --git a/models/molda/toyota_int/entry.mdl b/models/molda/toyota_int/entry.mdl new file mode 100644 index 000000000..1a3f8c845 Binary files /dev/null and b/models/molda/toyota_int/entry.mdl differ diff --git a/models/molda/toyota_int/entry.phy b/models/molda/toyota_int/entry.phy new file mode 100644 index 000000000..4013f837d Binary files /dev/null and b/models/molda/toyota_int/entry.phy differ diff --git a/models/molda/toyota_int/entry.sw.vtx b/models/molda/toyota_int/entry.sw.vtx new file mode 100644 index 000000000..3baaf7c06 Binary files /dev/null and b/models/molda/toyota_int/entry.sw.vtx differ diff --git a/models/molda/toyota_int/entry.vvd b/models/molda/toyota_int/entry.vvd new file mode 100644 index 000000000..af29c5b01 Binary files /dev/null and b/models/molda/toyota_int/entry.vvd differ diff --git a/models/molda/toyota_int/floor.dx80.vtx b/models/molda/toyota_int/floor.dx80.vtx new file mode 100644 index 000000000..a011f6421 Binary files /dev/null and b/models/molda/toyota_int/floor.dx80.vtx differ diff --git a/models/molda/toyota_int/floor.dx90.vtx b/models/molda/toyota_int/floor.dx90.vtx new file mode 100644 index 000000000..96802fcae Binary files /dev/null and b/models/molda/toyota_int/floor.dx90.vtx differ diff --git a/models/molda/toyota_int/floor.mdl b/models/molda/toyota_int/floor.mdl new file mode 100644 index 000000000..8f0d04732 Binary files /dev/null and b/models/molda/toyota_int/floor.mdl differ diff --git a/models/molda/toyota_int/floor.phy b/models/molda/toyota_int/floor.phy new file mode 100644 index 000000000..20e043867 Binary files /dev/null and b/models/molda/toyota_int/floor.phy differ diff --git a/models/molda/toyota_int/floor.sw.vtx b/models/molda/toyota_int/floor.sw.vtx new file mode 100644 index 000000000..5825cfa84 Binary files /dev/null and b/models/molda/toyota_int/floor.sw.vtx differ diff --git a/models/molda/toyota_int/floor.vvd b/models/molda/toyota_int/floor.vvd new file mode 100644 index 000000000..e5c84220d Binary files /dev/null and b/models/molda/toyota_int/floor.vvd differ diff --git a/models/molda/toyota_int/gears1.dx80.vtx b/models/molda/toyota_int/gears1.dx80.vtx new file mode 100644 index 000000000..cae598fca Binary files /dev/null and b/models/molda/toyota_int/gears1.dx80.vtx differ diff --git a/models/molda/toyota_int/gears1.dx90.vtx b/models/molda/toyota_int/gears1.dx90.vtx new file mode 100644 index 000000000..84f8d7c5c Binary files /dev/null and b/models/molda/toyota_int/gears1.dx90.vtx differ diff --git a/models/molda/toyota_int/gears1.mdl b/models/molda/toyota_int/gears1.mdl new file mode 100644 index 000000000..2ff44f3a6 Binary files /dev/null and b/models/molda/toyota_int/gears1.mdl differ diff --git a/models/molda/toyota_int/gears1.phy b/models/molda/toyota_int/gears1.phy new file mode 100644 index 000000000..1126c01ef Binary files /dev/null and b/models/molda/toyota_int/gears1.phy differ diff --git a/models/molda/toyota_int/gears1.sw.vtx b/models/molda/toyota_int/gears1.sw.vtx new file mode 100644 index 000000000..ff3ef0503 Binary files /dev/null and b/models/molda/toyota_int/gears1.sw.vtx differ diff --git a/models/molda/toyota_int/gears1.vvd b/models/molda/toyota_int/gears1.vvd new file mode 100644 index 000000000..759babd82 Binary files /dev/null and b/models/molda/toyota_int/gears1.vvd differ diff --git a/models/molda/toyota_int/gears2.dx80.vtx b/models/molda/toyota_int/gears2.dx80.vtx new file mode 100644 index 000000000..d60bb3aa6 Binary files /dev/null and b/models/molda/toyota_int/gears2.dx80.vtx differ diff --git a/models/molda/toyota_int/gears2.dx90.vtx b/models/molda/toyota_int/gears2.dx90.vtx new file mode 100644 index 000000000..940afe8dd Binary files /dev/null and b/models/molda/toyota_int/gears2.dx90.vtx differ diff --git a/models/molda/toyota_int/gears2.mdl b/models/molda/toyota_int/gears2.mdl new file mode 100644 index 000000000..998f5048c Binary files /dev/null and b/models/molda/toyota_int/gears2.mdl differ diff --git a/models/molda/toyota_int/gears2.phy b/models/molda/toyota_int/gears2.phy new file mode 100644 index 000000000..cb2a2eb8a Binary files /dev/null and b/models/molda/toyota_int/gears2.phy differ diff --git a/models/molda/toyota_int/gears2.sw.vtx b/models/molda/toyota_int/gears2.sw.vtx new file mode 100644 index 000000000..c2d4b40a4 Binary files /dev/null and b/models/molda/toyota_int/gears2.sw.vtx differ diff --git a/models/molda/toyota_int/gears2.vvd b/models/molda/toyota_int/gears2.vvd new file mode 100644 index 000000000..1a5c8cdb3 Binary files /dev/null and b/models/molda/toyota_int/gears2.vvd differ diff --git a/models/molda/toyota_int/gears3.dx80.vtx b/models/molda/toyota_int/gears3.dx80.vtx new file mode 100644 index 000000000..0f9f8c2a2 Binary files /dev/null and b/models/molda/toyota_int/gears3.dx80.vtx differ diff --git a/models/molda/toyota_int/gears3.dx90.vtx b/models/molda/toyota_int/gears3.dx90.vtx new file mode 100644 index 000000000..538b79211 Binary files /dev/null and b/models/molda/toyota_int/gears3.dx90.vtx differ diff --git a/models/molda/toyota_int/gears3.mdl b/models/molda/toyota_int/gears3.mdl new file mode 100644 index 000000000..5137f733c Binary files /dev/null and b/models/molda/toyota_int/gears3.mdl differ diff --git a/models/molda/toyota_int/gears3.phy b/models/molda/toyota_int/gears3.phy new file mode 100644 index 000000000..2182c6f19 Binary files /dev/null and b/models/molda/toyota_int/gears3.phy differ diff --git a/models/molda/toyota_int/gears3.sw.vtx b/models/molda/toyota_int/gears3.sw.vtx new file mode 100644 index 000000000..fbe68f97b Binary files /dev/null and b/models/molda/toyota_int/gears3.sw.vtx differ diff --git a/models/molda/toyota_int/gears3.vvd b/models/molda/toyota_int/gears3.vvd new file mode 100644 index 000000000..3be3fc09b Binary files /dev/null and b/models/molda/toyota_int/gears3.vvd differ diff --git a/models/molda/toyota_int/handbrake.dx80.vtx b/models/molda/toyota_int/handbrake.dx80.vtx new file mode 100644 index 000000000..24f1000ea Binary files /dev/null and b/models/molda/toyota_int/handbrake.dx80.vtx differ diff --git a/models/molda/toyota_int/handbrake.dx90.vtx b/models/molda/toyota_int/handbrake.dx90.vtx new file mode 100644 index 000000000..fff7589ca Binary files /dev/null and b/models/molda/toyota_int/handbrake.dx90.vtx differ diff --git a/models/molda/toyota_int/handbrake.mdl b/models/molda/toyota_int/handbrake.mdl new file mode 100644 index 000000000..12e98f89f Binary files /dev/null and b/models/molda/toyota_int/handbrake.mdl differ diff --git a/models/molda/toyota_int/handbrake.phy b/models/molda/toyota_int/handbrake.phy new file mode 100644 index 000000000..067236b08 Binary files /dev/null and b/models/molda/toyota_int/handbrake.phy differ diff --git a/models/molda/toyota_int/handbrake.sw.vtx b/models/molda/toyota_int/handbrake.sw.vtx new file mode 100644 index 000000000..b70179996 Binary files /dev/null and b/models/molda/toyota_int/handbrake.sw.vtx differ diff --git a/models/molda/toyota_int/handbrake.vvd b/models/molda/toyota_int/handbrake.vvd new file mode 100644 index 000000000..50f9a4733 Binary files /dev/null and b/models/molda/toyota_int/handbrake.vvd differ diff --git a/models/molda/toyota_int/hitboxes/sonic_cube.dx80.vtx b/models/molda/toyota_int/hitboxes/sonic_cube.dx80.vtx new file mode 100644 index 000000000..b2bb01af9 Binary files /dev/null and b/models/molda/toyota_int/hitboxes/sonic_cube.dx80.vtx differ diff --git a/models/molda/toyota_int/hitboxes/sonic_cube.dx90.vtx b/models/molda/toyota_int/hitboxes/sonic_cube.dx90.vtx new file mode 100644 index 000000000..c9f79c06e Binary files /dev/null and b/models/molda/toyota_int/hitboxes/sonic_cube.dx90.vtx differ diff --git a/models/molda/toyota_int/hitboxes/sonic_cube.mdl b/models/molda/toyota_int/hitboxes/sonic_cube.mdl new file mode 100644 index 000000000..39174fbe6 Binary files /dev/null and b/models/molda/toyota_int/hitboxes/sonic_cube.mdl differ diff --git a/models/molda/toyota_int/hitboxes/sonic_cube.phy b/models/molda/toyota_int/hitboxes/sonic_cube.phy new file mode 100644 index 000000000..072670a7d Binary files /dev/null and b/models/molda/toyota_int/hitboxes/sonic_cube.phy differ diff --git a/models/molda/toyota_int/hitboxes/sonic_cube.sw.vtx b/models/molda/toyota_int/hitboxes/sonic_cube.sw.vtx new file mode 100644 index 000000000..8f08c978d Binary files /dev/null and b/models/molda/toyota_int/hitboxes/sonic_cube.sw.vtx differ diff --git a/models/molda/toyota_int/hitboxes/sonic_cube.vvd b/models/molda/toyota_int/hitboxes/sonic_cube.vvd new file mode 100644 index 000000000..1ed8ad3c5 Binary files /dev/null and b/models/molda/toyota_int/hitboxes/sonic_cube.vvd differ diff --git a/models/molda/toyota_int/hitboxes/static_monitor_hitbox.dx80.vtx b/models/molda/toyota_int/hitboxes/static_monitor_hitbox.dx80.vtx new file mode 100644 index 000000000..99e0926ff Binary files /dev/null and b/models/molda/toyota_int/hitboxes/static_monitor_hitbox.dx80.vtx differ diff --git a/models/molda/toyota_int/hitboxes/static_monitor_hitbox.dx90.vtx b/models/molda/toyota_int/hitboxes/static_monitor_hitbox.dx90.vtx new file mode 100644 index 000000000..9d13ea7bb Binary files /dev/null and b/models/molda/toyota_int/hitboxes/static_monitor_hitbox.dx90.vtx differ diff --git a/models/molda/toyota_int/hitboxes/static_monitor_hitbox.mdl b/models/molda/toyota_int/hitboxes/static_monitor_hitbox.mdl new file mode 100644 index 000000000..e18d1cc0d Binary files /dev/null and b/models/molda/toyota_int/hitboxes/static_monitor_hitbox.mdl differ diff --git a/models/molda/toyota_int/hitboxes/static_monitor_hitbox.phy b/models/molda/toyota_int/hitboxes/static_monitor_hitbox.phy new file mode 100644 index 000000000..84710e5ca Binary files /dev/null and b/models/molda/toyota_int/hitboxes/static_monitor_hitbox.phy differ diff --git a/models/molda/toyota_int/hitboxes/static_monitor_hitbox.sw.vtx b/models/molda/toyota_int/hitboxes/static_monitor_hitbox.sw.vtx new file mode 100644 index 000000000..62e727d1c Binary files /dev/null and b/models/molda/toyota_int/hitboxes/static_monitor_hitbox.sw.vtx differ diff --git a/models/molda/toyota_int/hitboxes/static_monitor_hitbox.vvd b/models/molda/toyota_int/hitboxes/static_monitor_hitbox.vvd new file mode 100644 index 000000000..130ff63ac Binary files /dev/null and b/models/molda/toyota_int/hitboxes/static_monitor_hitbox.vvd differ diff --git a/models/molda/toyota_int/interior.dx80.vtx b/models/molda/toyota_int/interior.dx80.vtx new file mode 100644 index 000000000..b053a5cfa Binary files /dev/null and b/models/molda/toyota_int/interior.dx80.vtx differ diff --git a/models/molda/toyota_int/interior.dx90.vtx b/models/molda/toyota_int/interior.dx90.vtx new file mode 100644 index 000000000..d8ec24794 Binary files /dev/null and b/models/molda/toyota_int/interior.dx90.vtx differ diff --git a/models/molda/toyota_int/interior.mdl b/models/molda/toyota_int/interior.mdl new file mode 100644 index 000000000..88be08a3f Binary files /dev/null and b/models/molda/toyota_int/interior.mdl differ diff --git a/models/molda/toyota_int/interior.phy b/models/molda/toyota_int/interior.phy new file mode 100644 index 000000000..cde34d6d7 Binary files /dev/null and b/models/molda/toyota_int/interior.phy differ diff --git a/models/molda/toyota_int/interior.sw.vtx b/models/molda/toyota_int/interior.sw.vtx new file mode 100644 index 000000000..efae3ac20 Binary files /dev/null and b/models/molda/toyota_int/interior.sw.vtx differ diff --git a/models/molda/toyota_int/interior.vvd b/models/molda/toyota_int/interior.vvd new file mode 100644 index 000000000..a76a2052d Binary files /dev/null and b/models/molda/toyota_int/interior.vvd differ diff --git a/models/molda/toyota_int/keyboard.dx80.vtx b/models/molda/toyota_int/keyboard.dx80.vtx new file mode 100644 index 000000000..77336abcc Binary files /dev/null and b/models/molda/toyota_int/keyboard.dx80.vtx differ diff --git a/models/molda/toyota_int/keyboard.dx90.vtx b/models/molda/toyota_int/keyboard.dx90.vtx new file mode 100644 index 000000000..1a77c0c4a Binary files /dev/null and b/models/molda/toyota_int/keyboard.dx90.vtx differ diff --git a/models/molda/toyota_int/keyboard.mdl b/models/molda/toyota_int/keyboard.mdl new file mode 100644 index 000000000..1c612419f Binary files /dev/null and b/models/molda/toyota_int/keyboard.mdl differ diff --git a/models/molda/toyota_int/keyboard.phy b/models/molda/toyota_int/keyboard.phy new file mode 100644 index 000000000..3780608b2 Binary files /dev/null and b/models/molda/toyota_int/keyboard.phy differ diff --git a/models/molda/toyota_int/keyboard.sw.vtx b/models/molda/toyota_int/keyboard.sw.vtx new file mode 100644 index 000000000..c7029bb41 Binary files /dev/null and b/models/molda/toyota_int/keyboard.sw.vtx differ diff --git a/models/molda/toyota_int/keyboard.vvd b/models/molda/toyota_int/keyboard.vvd new file mode 100644 index 000000000..79cd34a38 Binary files /dev/null and b/models/molda/toyota_int/keyboard.vvd differ diff --git a/models/molda/toyota_int/monitor.dx80.vtx b/models/molda/toyota_int/monitor.dx80.vtx new file mode 100644 index 000000000..6259c8f33 Binary files /dev/null and b/models/molda/toyota_int/monitor.dx80.vtx differ diff --git a/models/molda/toyota_int/monitor.dx90.vtx b/models/molda/toyota_int/monitor.dx90.vtx new file mode 100644 index 000000000..62dbaa06d Binary files /dev/null and b/models/molda/toyota_int/monitor.dx90.vtx differ diff --git a/models/molda/toyota_int/monitor.mdl b/models/molda/toyota_int/monitor.mdl new file mode 100644 index 000000000..356e272c5 Binary files /dev/null and b/models/molda/toyota_int/monitor.mdl differ diff --git a/models/molda/toyota_int/monitor.phy b/models/molda/toyota_int/monitor.phy new file mode 100644 index 000000000..9784e97fc Binary files /dev/null and b/models/molda/toyota_int/monitor.phy differ diff --git a/models/molda/toyota_int/monitor.sw.vtx b/models/molda/toyota_int/monitor.sw.vtx new file mode 100644 index 000000000..640557626 Binary files /dev/null and b/models/molda/toyota_int/monitor.sw.vtx differ diff --git a/models/molda/toyota_int/monitor.vvd b/models/molda/toyota_int/monitor.vvd new file mode 100644 index 000000000..ac72a4081 Binary files /dev/null and b/models/molda/toyota_int/monitor.vvd differ diff --git a/models/molda/toyota_int/pillars.dx80.vtx b/models/molda/toyota_int/pillars.dx80.vtx new file mode 100644 index 000000000..3e327a963 Binary files /dev/null and b/models/molda/toyota_int/pillars.dx80.vtx differ diff --git a/models/molda/toyota_int/pillars.dx90.vtx b/models/molda/toyota_int/pillars.dx90.vtx new file mode 100644 index 000000000..01c280988 Binary files /dev/null and b/models/molda/toyota_int/pillars.dx90.vtx differ diff --git a/models/molda/toyota_int/pillars.mdl b/models/molda/toyota_int/pillars.mdl new file mode 100644 index 000000000..dada69da2 Binary files /dev/null and b/models/molda/toyota_int/pillars.mdl differ diff --git a/models/molda/toyota_int/pillars.phy b/models/molda/toyota_int/pillars.phy new file mode 100644 index 000000000..0935ecdc6 Binary files /dev/null and b/models/molda/toyota_int/pillars.phy differ diff --git a/models/molda/toyota_int/pillars.sw.vtx b/models/molda/toyota_int/pillars.sw.vtx new file mode 100644 index 000000000..780480bc1 Binary files /dev/null and b/models/molda/toyota_int/pillars.sw.vtx differ diff --git a/models/molda/toyota_int/pillars.vvd b/models/molda/toyota_int/pillars.vvd new file mode 100644 index 000000000..46a505cc0 Binary files /dev/null and b/models/molda/toyota_int/pillars.vvd differ diff --git a/models/molda/toyota_int/rings.dx80.vtx b/models/molda/toyota_int/rings.dx80.vtx new file mode 100644 index 000000000..27a9bcc27 Binary files /dev/null and b/models/molda/toyota_int/rings.dx80.vtx differ diff --git a/models/molda/toyota_int/rings.dx90.vtx b/models/molda/toyota_int/rings.dx90.vtx new file mode 100644 index 000000000..2156b1ce7 Binary files /dev/null and b/models/molda/toyota_int/rings.dx90.vtx differ diff --git a/models/molda/toyota_int/rings.mdl b/models/molda/toyota_int/rings.mdl new file mode 100644 index 000000000..a389ddca4 Binary files /dev/null and b/models/molda/toyota_int/rings.mdl differ diff --git a/models/molda/toyota_int/rings.sw.vtx b/models/molda/toyota_int/rings.sw.vtx new file mode 100644 index 000000000..18ee9a460 Binary files /dev/null and b/models/molda/toyota_int/rings.sw.vtx differ diff --git a/models/molda/toyota_int/rings.vvd b/models/molda/toyota_int/rings.vvd new file mode 100644 index 000000000..9cce99939 Binary files /dev/null and b/models/molda/toyota_int/rings.vvd differ diff --git a/models/molda/toyota_int/roof.dx80.vtx b/models/molda/toyota_int/roof.dx80.vtx new file mode 100644 index 000000000..15d1eb91f Binary files /dev/null and b/models/molda/toyota_int/roof.dx80.vtx differ diff --git a/models/molda/toyota_int/roof.dx90.vtx b/models/molda/toyota_int/roof.dx90.vtx new file mode 100644 index 000000000..e70100991 Binary files /dev/null and b/models/molda/toyota_int/roof.dx90.vtx differ diff --git a/models/molda/toyota_int/roof.mdl b/models/molda/toyota_int/roof.mdl new file mode 100644 index 000000000..f0b5fb0df Binary files /dev/null and b/models/molda/toyota_int/roof.mdl differ diff --git a/models/molda/toyota_int/roof.sw.vtx b/models/molda/toyota_int/roof.sw.vtx new file mode 100644 index 000000000..1839b5b32 Binary files /dev/null and b/models/molda/toyota_int/roof.sw.vtx differ diff --git a/models/molda/toyota_int/roof.vvd b/models/molda/toyota_int/roof.vvd new file mode 100644 index 000000000..083c24995 Binary files /dev/null and b/models/molda/toyota_int/roof.vvd differ diff --git a/models/molda/toyota_int/rotor.dx80.vtx b/models/molda/toyota_int/rotor.dx80.vtx new file mode 100644 index 000000000..334f5cbce Binary files /dev/null and b/models/molda/toyota_int/rotor.dx80.vtx differ diff --git a/models/molda/toyota_int/rotor.dx90.vtx b/models/molda/toyota_int/rotor.dx90.vtx new file mode 100644 index 000000000..e0293b042 Binary files /dev/null and b/models/molda/toyota_int/rotor.dx90.vtx differ diff --git a/models/molda/toyota_int/rotor.mdl b/models/molda/toyota_int/rotor.mdl new file mode 100644 index 000000000..c02de4188 Binary files /dev/null and b/models/molda/toyota_int/rotor.mdl differ diff --git a/models/molda/toyota_int/rotor.phy b/models/molda/toyota_int/rotor.phy new file mode 100644 index 000000000..5bafc0493 Binary files /dev/null and b/models/molda/toyota_int/rotor.phy differ diff --git a/models/molda/toyota_int/rotor.sw.vtx b/models/molda/toyota_int/rotor.sw.vtx new file mode 100644 index 000000000..9d53a5e94 Binary files /dev/null and b/models/molda/toyota_int/rotor.sw.vtx differ diff --git a/models/molda/toyota_int/rotor.vvd b/models/molda/toyota_int/rotor.vvd new file mode 100644 index 000000000..04b734d98 Binary files /dev/null and b/models/molda/toyota_int/rotor.vvd differ diff --git a/models/molda/toyota_int/rotor_ring.dx80.vtx b/models/molda/toyota_int/rotor_ring.dx80.vtx new file mode 100644 index 000000000..e9bf20139 Binary files /dev/null and b/models/molda/toyota_int/rotor_ring.dx80.vtx differ diff --git a/models/molda/toyota_int/rotor_ring.dx90.vtx b/models/molda/toyota_int/rotor_ring.dx90.vtx new file mode 100644 index 000000000..3223c3471 Binary files /dev/null and b/models/molda/toyota_int/rotor_ring.dx90.vtx differ diff --git a/models/molda/toyota_int/rotor_ring.mdl b/models/molda/toyota_int/rotor_ring.mdl new file mode 100644 index 000000000..ace4300fd Binary files /dev/null and b/models/molda/toyota_int/rotor_ring.mdl differ diff --git a/models/molda/toyota_int/rotor_ring.sw.vtx b/models/molda/toyota_int/rotor_ring.sw.vtx new file mode 100644 index 000000000..fb28338f7 Binary files /dev/null and b/models/molda/toyota_int/rotor_ring.sw.vtx differ diff --git a/models/molda/toyota_int/rotor_ring.vvd b/models/molda/toyota_int/rotor_ring.vvd new file mode 100644 index 000000000..0c64c4420 Binary files /dev/null and b/models/molda/toyota_int/rotor_ring.vvd differ diff --git a/models/molda/toyota_int/rotor_small.dx80.vtx b/models/molda/toyota_int/rotor_small.dx80.vtx new file mode 100644 index 000000000..4205cd1fa Binary files /dev/null and b/models/molda/toyota_int/rotor_small.dx80.vtx differ diff --git a/models/molda/toyota_int/rotor_small.dx90.vtx b/models/molda/toyota_int/rotor_small.dx90.vtx new file mode 100644 index 000000000..539f940df Binary files /dev/null and b/models/molda/toyota_int/rotor_small.dx90.vtx differ diff --git a/models/molda/toyota_int/rotor_small.mdl b/models/molda/toyota_int/rotor_small.mdl new file mode 100644 index 000000000..577fbf8b5 Binary files /dev/null and b/models/molda/toyota_int/rotor_small.mdl differ diff --git a/models/molda/toyota_int/rotor_small.phy b/models/molda/toyota_int/rotor_small.phy new file mode 100644 index 000000000..2c1b06c31 Binary files /dev/null and b/models/molda/toyota_int/rotor_small.phy differ diff --git a/models/molda/toyota_int/rotor_small.sw.vtx b/models/molda/toyota_int/rotor_small.sw.vtx new file mode 100644 index 000000000..1aac19eb7 Binary files /dev/null and b/models/molda/toyota_int/rotor_small.sw.vtx differ diff --git a/models/molda/toyota_int/rotor_small.vvd b/models/molda/toyota_int/rotor_small.vvd new file mode 100644 index 000000000..b25e541ff Binary files /dev/null and b/models/molda/toyota_int/rotor_small.vvd differ diff --git a/models/molda/toyota_int/roundels1.dx80.vtx b/models/molda/toyota_int/roundels1.dx80.vtx new file mode 100644 index 000000000..33d473571 Binary files /dev/null and b/models/molda/toyota_int/roundels1.dx80.vtx differ diff --git a/models/molda/toyota_int/roundels1.dx90.vtx b/models/molda/toyota_int/roundels1.dx90.vtx new file mode 100644 index 000000000..fdd5bbb1b Binary files /dev/null and b/models/molda/toyota_int/roundels1.dx90.vtx differ diff --git a/models/molda/toyota_int/roundels1.mdl b/models/molda/toyota_int/roundels1.mdl new file mode 100644 index 000000000..0c4f5392c Binary files /dev/null and b/models/molda/toyota_int/roundels1.mdl differ diff --git a/models/molda/toyota_int/roundels1.sw.vtx b/models/molda/toyota_int/roundels1.sw.vtx new file mode 100644 index 000000000..911d1a054 Binary files /dev/null and b/models/molda/toyota_int/roundels1.sw.vtx differ diff --git a/models/molda/toyota_int/roundels1.vvd b/models/molda/toyota_int/roundels1.vvd new file mode 100644 index 000000000..390212b91 Binary files /dev/null and b/models/molda/toyota_int/roundels1.vvd differ diff --git a/models/molda/toyota_int/roundels2.dx80.vtx b/models/molda/toyota_int/roundels2.dx80.vtx new file mode 100644 index 000000000..7b097835b Binary files /dev/null and b/models/molda/toyota_int/roundels2.dx80.vtx differ diff --git a/models/molda/toyota_int/roundels2.dx90.vtx b/models/molda/toyota_int/roundels2.dx90.vtx new file mode 100644 index 000000000..e21dc6e15 Binary files /dev/null and b/models/molda/toyota_int/roundels2.dx90.vtx differ diff --git a/models/molda/toyota_int/roundels2.mdl b/models/molda/toyota_int/roundels2.mdl new file mode 100644 index 000000000..2807341a7 Binary files /dev/null and b/models/molda/toyota_int/roundels2.mdl differ diff --git a/models/molda/toyota_int/roundels2.sw.vtx b/models/molda/toyota_int/roundels2.sw.vtx new file mode 100644 index 000000000..0155ef9a9 Binary files /dev/null and b/models/molda/toyota_int/roundels2.sw.vtx differ diff --git a/models/molda/toyota_int/roundels2.vvd b/models/molda/toyota_int/roundels2.vvd new file mode 100644 index 000000000..ea0f5ef06 Binary files /dev/null and b/models/molda/toyota_int/roundels2.vvd differ diff --git a/models/molda/toyota_int/side_details1.dx80.vtx b/models/molda/toyota_int/side_details1.dx80.vtx new file mode 100644 index 000000000..d30ae9ab4 Binary files /dev/null and b/models/molda/toyota_int/side_details1.dx80.vtx differ diff --git a/models/molda/toyota_int/side_details1.dx90.vtx b/models/molda/toyota_int/side_details1.dx90.vtx new file mode 100644 index 000000000..703f1d713 Binary files /dev/null and b/models/molda/toyota_int/side_details1.dx90.vtx differ diff --git a/models/molda/toyota_int/side_details1.mdl b/models/molda/toyota_int/side_details1.mdl new file mode 100644 index 000000000..51ab22fce Binary files /dev/null and b/models/molda/toyota_int/side_details1.mdl differ diff --git a/models/molda/toyota_int/side_details1.sw.vtx b/models/molda/toyota_int/side_details1.sw.vtx new file mode 100644 index 000000000..348779f02 Binary files /dev/null and b/models/molda/toyota_int/side_details1.sw.vtx differ diff --git a/models/molda/toyota_int/side_details1.vvd b/models/molda/toyota_int/side_details1.vvd new file mode 100644 index 000000000..989e87f9f Binary files /dev/null and b/models/molda/toyota_int/side_details1.vvd differ diff --git a/models/molda/toyota_int/side_details2.dx80.vtx b/models/molda/toyota_int/side_details2.dx80.vtx new file mode 100644 index 000000000..10d908c70 Binary files /dev/null and b/models/molda/toyota_int/side_details2.dx80.vtx differ diff --git a/models/molda/toyota_int/side_details2.dx90.vtx b/models/molda/toyota_int/side_details2.dx90.vtx new file mode 100644 index 000000000..15074b724 Binary files /dev/null and b/models/molda/toyota_int/side_details2.dx90.vtx differ diff --git a/models/molda/toyota_int/side_details2.mdl b/models/molda/toyota_int/side_details2.mdl new file mode 100644 index 000000000..b222cbc36 Binary files /dev/null and b/models/molda/toyota_int/side_details2.mdl differ diff --git a/models/molda/toyota_int/side_details2.sw.vtx b/models/molda/toyota_int/side_details2.sw.vtx new file mode 100644 index 000000000..abf033c38 Binary files /dev/null and b/models/molda/toyota_int/side_details2.sw.vtx differ diff --git a/models/molda/toyota_int/side_details2.vvd b/models/molda/toyota_int/side_details2.vvd new file mode 100644 index 000000000..4f70e6fcd Binary files /dev/null and b/models/molda/toyota_int/side_details2.vvd differ diff --git a/models/molda/toyota_int/side_dial.dx80.vtx b/models/molda/toyota_int/side_dial.dx80.vtx new file mode 100644 index 000000000..50eb7f08d Binary files /dev/null and b/models/molda/toyota_int/side_dial.dx80.vtx differ diff --git a/models/molda/toyota_int/side_dial.dx90.vtx b/models/molda/toyota_int/side_dial.dx90.vtx new file mode 100644 index 000000000..e1f26df02 Binary files /dev/null and b/models/molda/toyota_int/side_dial.dx90.vtx differ diff --git a/models/molda/toyota_int/side_dial.mdl b/models/molda/toyota_int/side_dial.mdl new file mode 100644 index 000000000..7cff0f609 Binary files /dev/null and b/models/molda/toyota_int/side_dial.mdl differ diff --git a/models/molda/toyota_int/side_dial.sw.vtx b/models/molda/toyota_int/side_dial.sw.vtx new file mode 100644 index 000000000..28430b2ac Binary files /dev/null and b/models/molda/toyota_int/side_dial.sw.vtx differ diff --git a/models/molda/toyota_int/side_dial.vvd b/models/molda/toyota_int/side_dial.vvd new file mode 100644 index 000000000..bc86f12c8 Binary files /dev/null and b/models/molda/toyota_int/side_dial.vvd differ diff --git a/models/molda/toyota_int/side_speakers.dx80.vtx b/models/molda/toyota_int/side_speakers.dx80.vtx new file mode 100644 index 000000000..d5b86516f Binary files /dev/null and b/models/molda/toyota_int/side_speakers.dx80.vtx differ diff --git a/models/molda/toyota_int/side_speakers.dx90.vtx b/models/molda/toyota_int/side_speakers.dx90.vtx new file mode 100644 index 000000000..c05ea5434 Binary files /dev/null and b/models/molda/toyota_int/side_speakers.dx90.vtx differ diff --git a/models/molda/toyota_int/side_speakers.mdl b/models/molda/toyota_int/side_speakers.mdl new file mode 100644 index 000000000..a41e75686 Binary files /dev/null and b/models/molda/toyota_int/side_speakers.mdl differ diff --git a/models/molda/toyota_int/side_speakers.phy b/models/molda/toyota_int/side_speakers.phy new file mode 100644 index 000000000..4212ee406 Binary files /dev/null and b/models/molda/toyota_int/side_speakers.phy differ diff --git a/models/molda/toyota_int/side_speakers.sw.vtx b/models/molda/toyota_int/side_speakers.sw.vtx new file mode 100644 index 000000000..4d3e376a2 Binary files /dev/null and b/models/molda/toyota_int/side_speakers.sw.vtx differ diff --git a/models/molda/toyota_int/side_speakers.vvd b/models/molda/toyota_int/side_speakers.vvd new file mode 100644 index 000000000..7a055d78d Binary files /dev/null and b/models/molda/toyota_int/side_speakers.vvd differ diff --git a/models/molda/toyota_int/side_toggle.dx80.vtx b/models/molda/toyota_int/side_toggle.dx80.vtx new file mode 100644 index 000000000..1caa34c39 Binary files /dev/null and b/models/molda/toyota_int/side_toggle.dx80.vtx differ diff --git a/models/molda/toyota_int/side_toggle.dx90.vtx b/models/molda/toyota_int/side_toggle.dx90.vtx new file mode 100644 index 000000000..7ec32a603 Binary files /dev/null and b/models/molda/toyota_int/side_toggle.dx90.vtx differ diff --git a/models/molda/toyota_int/side_toggle.mdl b/models/molda/toyota_int/side_toggle.mdl new file mode 100644 index 000000000..589999e08 Binary files /dev/null and b/models/molda/toyota_int/side_toggle.mdl differ diff --git a/models/molda/toyota_int/side_toggle.sw.vtx b/models/molda/toyota_int/side_toggle.sw.vtx new file mode 100644 index 000000000..e83a8e68b Binary files /dev/null and b/models/molda/toyota_int/side_toggle.sw.vtx differ diff --git a/models/molda/toyota_int/side_toggle.vvd b/models/molda/toyota_int/side_toggle.vvd new file mode 100644 index 000000000..5254d4d6f Binary files /dev/null and b/models/molda/toyota_int/side_toggle.vvd differ diff --git a/models/molda/toyota_int/sidelever1.dx80.vtx b/models/molda/toyota_int/sidelever1.dx80.vtx new file mode 100644 index 000000000..15421118f Binary files /dev/null and b/models/molda/toyota_int/sidelever1.dx80.vtx differ diff --git a/models/molda/toyota_int/sidelever1.dx90.vtx b/models/molda/toyota_int/sidelever1.dx90.vtx new file mode 100644 index 000000000..b2c158555 Binary files /dev/null and b/models/molda/toyota_int/sidelever1.dx90.vtx differ diff --git a/models/molda/toyota_int/sidelever1.mdl b/models/molda/toyota_int/sidelever1.mdl new file mode 100644 index 000000000..e31364336 Binary files /dev/null and b/models/molda/toyota_int/sidelever1.mdl differ diff --git a/models/molda/toyota_int/sidelever1.phy b/models/molda/toyota_int/sidelever1.phy new file mode 100644 index 000000000..96a8fb1e8 Binary files /dev/null and b/models/molda/toyota_int/sidelever1.phy differ diff --git a/models/molda/toyota_int/sidelever1.sw.vtx b/models/molda/toyota_int/sidelever1.sw.vtx new file mode 100644 index 000000000..4e3adc3d9 Binary files /dev/null and b/models/molda/toyota_int/sidelever1.sw.vtx differ diff --git a/models/molda/toyota_int/sidelever1.vvd b/models/molda/toyota_int/sidelever1.vvd new file mode 100644 index 000000000..fc13c9f70 Binary files /dev/null and b/models/molda/toyota_int/sidelever1.vvd differ diff --git a/models/molda/toyota_int/sidelever2.dx80.vtx b/models/molda/toyota_int/sidelever2.dx80.vtx new file mode 100644 index 000000000..1ed4da501 Binary files /dev/null and b/models/molda/toyota_int/sidelever2.dx80.vtx differ diff --git a/models/molda/toyota_int/sidelever2.dx90.vtx b/models/molda/toyota_int/sidelever2.dx90.vtx new file mode 100644 index 000000000..dbe4761ba Binary files /dev/null and b/models/molda/toyota_int/sidelever2.dx90.vtx differ diff --git a/models/molda/toyota_int/sidelever2.mdl b/models/molda/toyota_int/sidelever2.mdl new file mode 100644 index 000000000..bce04fe77 Binary files /dev/null and b/models/molda/toyota_int/sidelever2.mdl differ diff --git a/models/molda/toyota_int/sidelever2.phy b/models/molda/toyota_int/sidelever2.phy new file mode 100644 index 000000000..610b8ef05 Binary files /dev/null and b/models/molda/toyota_int/sidelever2.phy differ diff --git a/models/molda/toyota_int/sidelever2.sw.vtx b/models/molda/toyota_int/sidelever2.sw.vtx new file mode 100644 index 000000000..3bf9bcae9 Binary files /dev/null and b/models/molda/toyota_int/sidelever2.sw.vtx differ diff --git a/models/molda/toyota_int/sidelever2.vvd b/models/molda/toyota_int/sidelever2.vvd new file mode 100644 index 000000000..de1fbbb06 Binary files /dev/null and b/models/molda/toyota_int/sidelever2.vvd differ diff --git a/models/molda/toyota_int/sidepanels.dx80.vtx b/models/molda/toyota_int/sidepanels.dx80.vtx new file mode 100644 index 000000000..2c43a5b80 Binary files /dev/null and b/models/molda/toyota_int/sidepanels.dx80.vtx differ diff --git a/models/molda/toyota_int/sidepanels.dx90.vtx b/models/molda/toyota_int/sidepanels.dx90.vtx new file mode 100644 index 000000000..64464c465 Binary files /dev/null and b/models/molda/toyota_int/sidepanels.dx90.vtx differ diff --git a/models/molda/toyota_int/sidepanels.mdl b/models/molda/toyota_int/sidepanels.mdl new file mode 100644 index 000000000..bde5102e7 Binary files /dev/null and b/models/molda/toyota_int/sidepanels.mdl differ diff --git a/models/molda/toyota_int/sidepanels.phy b/models/molda/toyota_int/sidepanels.phy new file mode 100644 index 000000000..4df6271f6 Binary files /dev/null and b/models/molda/toyota_int/sidepanels.phy differ diff --git a/models/molda/toyota_int/sidepanels.sw.vtx b/models/molda/toyota_int/sidepanels.sw.vtx new file mode 100644 index 000000000..081030617 Binary files /dev/null and b/models/molda/toyota_int/sidepanels.sw.vtx differ diff --git a/models/molda/toyota_int/sidepanels.vvd b/models/molda/toyota_int/sidepanels.vvd new file mode 100644 index 000000000..269abd534 Binary files /dev/null and b/models/molda/toyota_int/sidepanels.vvd differ diff --git a/models/molda/toyota_int/slidedoors1.dx80.vtx b/models/molda/toyota_int/slidedoors1.dx80.vtx new file mode 100644 index 000000000..503cdbedd Binary files /dev/null and b/models/molda/toyota_int/slidedoors1.dx80.vtx differ diff --git a/models/molda/toyota_int/slidedoors1.dx90.vtx b/models/molda/toyota_int/slidedoors1.dx90.vtx new file mode 100644 index 000000000..7bb2c3c29 Binary files /dev/null and b/models/molda/toyota_int/slidedoors1.dx90.vtx differ diff --git a/models/molda/toyota_int/slidedoors1.mdl b/models/molda/toyota_int/slidedoors1.mdl new file mode 100644 index 000000000..fd270692e Binary files /dev/null and b/models/molda/toyota_int/slidedoors1.mdl differ diff --git a/models/molda/toyota_int/slidedoors1.phy b/models/molda/toyota_int/slidedoors1.phy new file mode 100644 index 000000000..a693e6c68 Binary files /dev/null and b/models/molda/toyota_int/slidedoors1.phy differ diff --git a/models/molda/toyota_int/slidedoors1.sw.vtx b/models/molda/toyota_int/slidedoors1.sw.vtx new file mode 100644 index 000000000..fc80a0d3e Binary files /dev/null and b/models/molda/toyota_int/slidedoors1.sw.vtx differ diff --git a/models/molda/toyota_int/slidedoors1.vvd b/models/molda/toyota_int/slidedoors1.vvd new file mode 100644 index 000000000..2208bcd04 Binary files /dev/null and b/models/molda/toyota_int/slidedoors1.vvd differ diff --git a/models/molda/toyota_int/slidedoors2.dx80.vtx b/models/molda/toyota_int/slidedoors2.dx80.vtx new file mode 100644 index 000000000..83cec6532 Binary files /dev/null and b/models/molda/toyota_int/slidedoors2.dx80.vtx differ diff --git a/models/molda/toyota_int/slidedoors2.dx90.vtx b/models/molda/toyota_int/slidedoors2.dx90.vtx new file mode 100644 index 000000000..a69db48b7 Binary files /dev/null and b/models/molda/toyota_int/slidedoors2.dx90.vtx differ diff --git a/models/molda/toyota_int/slidedoors2.mdl b/models/molda/toyota_int/slidedoors2.mdl new file mode 100644 index 000000000..3beed7693 Binary files /dev/null and b/models/molda/toyota_int/slidedoors2.mdl differ diff --git a/models/molda/toyota_int/slidedoors2.phy b/models/molda/toyota_int/slidedoors2.phy new file mode 100644 index 000000000..fa6773cd6 Binary files /dev/null and b/models/molda/toyota_int/slidedoors2.phy differ diff --git a/models/molda/toyota_int/slidedoors2.sw.vtx b/models/molda/toyota_int/slidedoors2.sw.vtx new file mode 100644 index 000000000..021675c07 Binary files /dev/null and b/models/molda/toyota_int/slidedoors2.sw.vtx differ diff --git a/models/molda/toyota_int/slidedoors2.vvd b/models/molda/toyota_int/slidedoors2.vvd new file mode 100644 index 000000000..df5bbc17f Binary files /dev/null and b/models/molda/toyota_int/slidedoors2.vvd differ diff --git a/models/molda/toyota_int/slidedoors3.dx80.vtx b/models/molda/toyota_int/slidedoors3.dx80.vtx new file mode 100644 index 000000000..1827ad272 Binary files /dev/null and b/models/molda/toyota_int/slidedoors3.dx80.vtx differ diff --git a/models/molda/toyota_int/slidedoors3.dx90.vtx b/models/molda/toyota_int/slidedoors3.dx90.vtx new file mode 100644 index 000000000..c1a876186 Binary files /dev/null and b/models/molda/toyota_int/slidedoors3.dx90.vtx differ diff --git a/models/molda/toyota_int/slidedoors3.mdl b/models/molda/toyota_int/slidedoors3.mdl new file mode 100644 index 000000000..07f471656 Binary files /dev/null and b/models/molda/toyota_int/slidedoors3.mdl differ diff --git a/models/molda/toyota_int/slidedoors3.phy b/models/molda/toyota_int/slidedoors3.phy new file mode 100644 index 000000000..37412fc60 Binary files /dev/null and b/models/molda/toyota_int/slidedoors3.phy differ diff --git a/models/molda/toyota_int/slidedoors3.sw.vtx b/models/molda/toyota_int/slidedoors3.sw.vtx new file mode 100644 index 000000000..8ff5e196e Binary files /dev/null and b/models/molda/toyota_int/slidedoors3.sw.vtx differ diff --git a/models/molda/toyota_int/slidedoors3.vvd b/models/molda/toyota_int/slidedoors3.vvd new file mode 100644 index 000000000..3526eaaa3 Binary files /dev/null and b/models/molda/toyota_int/slidedoors3.vvd differ diff --git a/models/molda/toyota_int/telepathic.dx80.vtx b/models/molda/toyota_int/telepathic.dx80.vtx new file mode 100644 index 000000000..859c54b9b Binary files /dev/null and b/models/molda/toyota_int/telepathic.dx80.vtx differ diff --git a/models/molda/toyota_int/telepathic.dx90.vtx b/models/molda/toyota_int/telepathic.dx90.vtx new file mode 100644 index 000000000..819bc1f2e Binary files /dev/null and b/models/molda/toyota_int/telepathic.dx90.vtx differ diff --git a/models/molda/toyota_int/telepathic.mdl b/models/molda/toyota_int/telepathic.mdl new file mode 100644 index 000000000..ac847991f Binary files /dev/null and b/models/molda/toyota_int/telepathic.mdl differ diff --git a/models/molda/toyota_int/telepathic.phy b/models/molda/toyota_int/telepathic.phy new file mode 100644 index 000000000..19aea32ba Binary files /dev/null and b/models/molda/toyota_int/telepathic.phy differ diff --git a/models/molda/toyota_int/telepathic.sw.vtx b/models/molda/toyota_int/telepathic.sw.vtx new file mode 100644 index 000000000..ba2a77eb6 Binary files /dev/null and b/models/molda/toyota_int/telepathic.sw.vtx differ diff --git a/models/molda/toyota_int/telepathic.vvd b/models/molda/toyota_int/telepathic.vvd new file mode 100644 index 000000000..0826ff465 Binary files /dev/null and b/models/molda/toyota_int/telepathic.vvd differ diff --git a/models/molda/toyota_int/throttle.dx80.vtx b/models/molda/toyota_int/throttle.dx80.vtx new file mode 100644 index 000000000..0fd8dab58 Binary files /dev/null and b/models/molda/toyota_int/throttle.dx80.vtx differ diff --git a/models/molda/toyota_int/throttle.dx90.vtx b/models/molda/toyota_int/throttle.dx90.vtx new file mode 100644 index 000000000..7e0257e20 Binary files /dev/null and b/models/molda/toyota_int/throttle.dx90.vtx differ diff --git a/models/molda/toyota_int/throttle.mdl b/models/molda/toyota_int/throttle.mdl new file mode 100644 index 000000000..b2ae4b23d Binary files /dev/null and b/models/molda/toyota_int/throttle.mdl differ diff --git a/models/molda/toyota_int/throttle.phy b/models/molda/toyota_int/throttle.phy new file mode 100644 index 000000000..999cce5b7 Binary files /dev/null and b/models/molda/toyota_int/throttle.phy differ diff --git a/models/molda/toyota_int/throttle.sw.vtx b/models/molda/toyota_int/throttle.sw.vtx new file mode 100644 index 000000000..beb57572e Binary files /dev/null and b/models/molda/toyota_int/throttle.sw.vtx differ diff --git a/models/molda/toyota_int/throttle.vvd b/models/molda/toyota_int/throttle.vvd new file mode 100644 index 000000000..270529729 Binary files /dev/null and b/models/molda/toyota_int/throttle.vvd differ diff --git a/models/molda/toyota_int/throttle_lights.dx80.vtx b/models/molda/toyota_int/throttle_lights.dx80.vtx new file mode 100644 index 000000000..3d3beba5e Binary files /dev/null and b/models/molda/toyota_int/throttle_lights.dx80.vtx differ diff --git a/models/molda/toyota_int/throttle_lights.dx90.vtx b/models/molda/toyota_int/throttle_lights.dx90.vtx new file mode 100644 index 000000000..64c08fba6 Binary files /dev/null and b/models/molda/toyota_int/throttle_lights.dx90.vtx differ diff --git a/models/molda/toyota_int/throttle_lights.mdl b/models/molda/toyota_int/throttle_lights.mdl new file mode 100644 index 000000000..5660e76ea Binary files /dev/null and b/models/molda/toyota_int/throttle_lights.mdl differ diff --git a/models/molda/toyota_int/throttle_lights.sw.vtx b/models/molda/toyota_int/throttle_lights.sw.vtx new file mode 100644 index 000000000..f8a67346a Binary files /dev/null and b/models/molda/toyota_int/throttle_lights.sw.vtx differ diff --git a/models/molda/toyota_int/throttle_lights.vvd b/models/molda/toyota_int/throttle_lights.vvd new file mode 100644 index 000000000..1de8726d3 Binary files /dev/null and b/models/molda/toyota_int/throttle_lights.vvd differ diff --git a/models/molda/toyota_int/ticks.dx80.vtx b/models/molda/toyota_int/ticks.dx80.vtx new file mode 100644 index 000000000..14267233c Binary files /dev/null and b/models/molda/toyota_int/ticks.dx80.vtx differ diff --git a/models/molda/toyota_int/ticks.dx90.vtx b/models/molda/toyota_int/ticks.dx90.vtx new file mode 100644 index 000000000..d554b35c0 Binary files /dev/null and b/models/molda/toyota_int/ticks.dx90.vtx differ diff --git a/models/molda/toyota_int/ticks.mdl b/models/molda/toyota_int/ticks.mdl new file mode 100644 index 000000000..3eea5fabb Binary files /dev/null and b/models/molda/toyota_int/ticks.mdl differ diff --git a/models/molda/toyota_int/ticks.sw.vtx b/models/molda/toyota_int/ticks.sw.vtx new file mode 100644 index 000000000..89444099b Binary files /dev/null and b/models/molda/toyota_int/ticks.sw.vtx differ diff --git a/models/molda/toyota_int/ticks.vvd b/models/molda/toyota_int/ticks.vvd new file mode 100644 index 000000000..06a0ecdff Binary files /dev/null and b/models/molda/toyota_int/ticks.vvd differ diff --git a/models/molda/toyota_int/toplights.dx80.vtx b/models/molda/toyota_int/toplights.dx80.vtx new file mode 100644 index 000000000..0b87702e2 Binary files /dev/null and b/models/molda/toyota_int/toplights.dx80.vtx differ diff --git a/models/molda/toyota_int/toplights.dx90.vtx b/models/molda/toyota_int/toplights.dx90.vtx new file mode 100644 index 000000000..87968d04d Binary files /dev/null and b/models/molda/toyota_int/toplights.dx90.vtx differ diff --git a/models/molda/toyota_int/toplights.mdl b/models/molda/toyota_int/toplights.mdl new file mode 100644 index 000000000..5a3a2c9bc Binary files /dev/null and b/models/molda/toyota_int/toplights.mdl differ diff --git a/models/molda/toyota_int/toplights.sw.vtx b/models/molda/toyota_int/toplights.sw.vtx new file mode 100644 index 000000000..a544093d3 Binary files /dev/null and b/models/molda/toyota_int/toplights.sw.vtx differ diff --git a/models/molda/toyota_int/toplights.vvd b/models/molda/toyota_int/toplights.vvd new file mode 100644 index 000000000..668b73a4a Binary files /dev/null and b/models/molda/toyota_int/toplights.vvd differ diff --git a/models/molda/toyota_int/walls.dx80.vtx b/models/molda/toyota_int/walls.dx80.vtx new file mode 100644 index 000000000..ec3b4fb31 Binary files /dev/null and b/models/molda/toyota_int/walls.dx80.vtx differ diff --git a/models/molda/toyota_int/walls.dx90.vtx b/models/molda/toyota_int/walls.dx90.vtx new file mode 100644 index 000000000..184cd49ca Binary files /dev/null and b/models/molda/toyota_int/walls.dx90.vtx differ diff --git a/models/molda/toyota_int/walls.mdl b/models/molda/toyota_int/walls.mdl new file mode 100644 index 000000000..0ff8a9aac Binary files /dev/null and b/models/molda/toyota_int/walls.mdl differ diff --git a/models/molda/toyota_int/walls.phy b/models/molda/toyota_int/walls.phy new file mode 100644 index 000000000..00b91095d Binary files /dev/null and b/models/molda/toyota_int/walls.phy differ diff --git a/models/molda/toyota_int/walls.sw.vtx b/models/molda/toyota_int/walls.sw.vtx new file mode 100644 index 000000000..3c1770c3d Binary files /dev/null and b/models/molda/toyota_int/walls.sw.vtx differ diff --git a/models/molda/toyota_int/walls.vvd b/models/molda/toyota_int/walls.vvd new file mode 100644 index 000000000..b044983fd Binary files /dev/null and b/models/molda/toyota_int/walls.vvd differ diff --git a/models/parar020100/toyota_int/classic_doors.dx80.vtx b/models/parar020100/toyota_int/classic_doors.dx80.vtx new file mode 100644 index 000000000..21a4294f8 Binary files /dev/null and b/models/parar020100/toyota_int/classic_doors.dx80.vtx differ diff --git a/models/parar020100/toyota_int/classic_doors.dx90.vtx b/models/parar020100/toyota_int/classic_doors.dx90.vtx new file mode 100644 index 000000000..b4cee58af Binary files /dev/null and b/models/parar020100/toyota_int/classic_doors.dx90.vtx differ diff --git a/models/parar020100/toyota_int/classic_doors.mdl b/models/parar020100/toyota_int/classic_doors.mdl new file mode 100644 index 000000000..c76896712 Binary files /dev/null and b/models/parar020100/toyota_int/classic_doors.mdl differ diff --git a/models/parar020100/toyota_int/classic_doors.phy b/models/parar020100/toyota_int/classic_doors.phy new file mode 100644 index 000000000..a684a54f4 Binary files /dev/null and b/models/parar020100/toyota_int/classic_doors.phy differ diff --git a/models/parar020100/toyota_int/classic_doors.sw.vtx b/models/parar020100/toyota_int/classic_doors.sw.vtx new file mode 100644 index 000000000..90c17d08c Binary files /dev/null and b/models/parar020100/toyota_int/classic_doors.sw.vtx differ diff --git a/models/parar020100/toyota_int/classic_doors.vvd b/models/parar020100/toyota_int/classic_doors.vvd new file mode 100644 index 000000000..8a45689f7 Binary files /dev/null and b/models/parar020100/toyota_int/classic_doors.vvd differ diff --git a/models/parar020100/toyota_int/classic_doors_button.dx80.vtx b/models/parar020100/toyota_int/classic_doors_button.dx80.vtx new file mode 100644 index 000000000..d556aa51d Binary files /dev/null and b/models/parar020100/toyota_int/classic_doors_button.dx80.vtx differ diff --git a/models/parar020100/toyota_int/classic_doors_button.dx90.vtx b/models/parar020100/toyota_int/classic_doors_button.dx90.vtx new file mode 100644 index 000000000..52fa3b286 Binary files /dev/null and b/models/parar020100/toyota_int/classic_doors_button.dx90.vtx differ diff --git a/models/parar020100/toyota_int/classic_doors_button.mdl b/models/parar020100/toyota_int/classic_doors_button.mdl new file mode 100644 index 000000000..611da72a8 Binary files /dev/null and b/models/parar020100/toyota_int/classic_doors_button.mdl differ diff --git a/models/parar020100/toyota_int/classic_doors_button.phy b/models/parar020100/toyota_int/classic_doors_button.phy new file mode 100644 index 000000000..31266e378 Binary files /dev/null and b/models/parar020100/toyota_int/classic_doors_button.phy differ diff --git a/models/parar020100/toyota_int/classic_doors_button.sw.vtx b/models/parar020100/toyota_int/classic_doors_button.sw.vtx new file mode 100644 index 000000000..0f511599b Binary files /dev/null and b/models/parar020100/toyota_int/classic_doors_button.sw.vtx differ diff --git a/models/parar020100/toyota_int/classic_doors_button.vvd b/models/parar020100/toyota_int/classic_doors_button.vvd new file mode 100644 index 000000000..910939d28 Binary files /dev/null and b/models/parar020100/toyota_int/classic_doors_button.vvd differ diff --git a/models/parar020100/toyota_int/classic_doors_entry.dx80.vtx b/models/parar020100/toyota_int/classic_doors_entry.dx80.vtx new file mode 100644 index 000000000..f429dae61 Binary files /dev/null and b/models/parar020100/toyota_int/classic_doors_entry.dx80.vtx differ diff --git a/models/parar020100/toyota_int/classic_doors_entry.dx90.vtx b/models/parar020100/toyota_int/classic_doors_entry.dx90.vtx new file mode 100644 index 000000000..93d6b29c6 Binary files /dev/null and b/models/parar020100/toyota_int/classic_doors_entry.dx90.vtx differ diff --git a/models/parar020100/toyota_int/classic_doors_entry.mdl b/models/parar020100/toyota_int/classic_doors_entry.mdl new file mode 100644 index 000000000..f3b1189b1 Binary files /dev/null and b/models/parar020100/toyota_int/classic_doors_entry.mdl differ diff --git a/models/parar020100/toyota_int/classic_doors_entry.phy b/models/parar020100/toyota_int/classic_doors_entry.phy new file mode 100644 index 000000000..d47e59433 Binary files /dev/null and b/models/parar020100/toyota_int/classic_doors_entry.phy differ diff --git a/models/parar020100/toyota_int/classic_doors_entry.sw.vtx b/models/parar020100/toyota_int/classic_doors_entry.sw.vtx new file mode 100644 index 000000000..5d02bf703 Binary files /dev/null and b/models/parar020100/toyota_int/classic_doors_entry.sw.vtx differ diff --git a/models/parar020100/toyota_int/classic_doors_entry.vvd b/models/parar020100/toyota_int/classic_doors_entry.vvd new file mode 100644 index 000000000..1bee12625 Binary files /dev/null and b/models/parar020100/toyota_int/classic_doors_entry.vvd differ diff --git a/models/uriel/toyota_int/monitor_collision_handles.dx80.vtx b/models/uriel/toyota_int/monitor_collision_handles.dx80.vtx new file mode 100644 index 000000000..3cd4de779 Binary files /dev/null and b/models/uriel/toyota_int/monitor_collision_handles.dx80.vtx differ diff --git a/models/uriel/toyota_int/monitor_collision_handles.dx90.vtx b/models/uriel/toyota_int/monitor_collision_handles.dx90.vtx new file mode 100644 index 000000000..9337e8903 Binary files /dev/null and b/models/uriel/toyota_int/monitor_collision_handles.dx90.vtx differ diff --git a/models/uriel/toyota_int/monitor_collision_handles.mdl b/models/uriel/toyota_int/monitor_collision_handles.mdl new file mode 100644 index 000000000..81f359345 Binary files /dev/null and b/models/uriel/toyota_int/monitor_collision_handles.mdl differ diff --git a/models/uriel/toyota_int/monitor_collision_handles.phy b/models/uriel/toyota_int/monitor_collision_handles.phy new file mode 100644 index 000000000..03a6144f5 Binary files /dev/null and b/models/uriel/toyota_int/monitor_collision_handles.phy differ diff --git a/models/uriel/toyota_int/monitor_collision_handles.sw.vtx b/models/uriel/toyota_int/monitor_collision_handles.sw.vtx new file mode 100644 index 000000000..b76594396 Binary files /dev/null and b/models/uriel/toyota_int/monitor_collision_handles.sw.vtx differ diff --git a/models/uriel/toyota_int/monitor_collision_handles.vvd b/models/uriel/toyota_int/monitor_collision_handles.vvd new file mode 100644 index 000000000..4bdbab8ac Binary files /dev/null and b/models/uriel/toyota_int/monitor_collision_handles.vvd differ diff --git a/models/uriel/toyota_int/monitor_collision_screen.dx80.vtx b/models/uriel/toyota_int/monitor_collision_screen.dx80.vtx new file mode 100644 index 000000000..0179be764 Binary files /dev/null and b/models/uriel/toyota_int/monitor_collision_screen.dx80.vtx differ diff --git a/models/uriel/toyota_int/monitor_collision_screen.dx90.vtx b/models/uriel/toyota_int/monitor_collision_screen.dx90.vtx new file mode 100644 index 000000000..75efbc5cf Binary files /dev/null and b/models/uriel/toyota_int/monitor_collision_screen.dx90.vtx differ diff --git a/models/uriel/toyota_int/monitor_collision_screen.mdl b/models/uriel/toyota_int/monitor_collision_screen.mdl new file mode 100644 index 000000000..cada39e31 Binary files /dev/null and b/models/uriel/toyota_int/monitor_collision_screen.mdl differ diff --git a/models/uriel/toyota_int/monitor_collision_screen.phy b/models/uriel/toyota_int/monitor_collision_screen.phy new file mode 100644 index 000000000..105b0444a Binary files /dev/null and b/models/uriel/toyota_int/monitor_collision_screen.phy differ diff --git a/models/uriel/toyota_int/monitor_collision_screen.sw.vtx b/models/uriel/toyota_int/monitor_collision_screen.sw.vtx new file mode 100644 index 000000000..97d254b82 Binary files /dev/null and b/models/uriel/toyota_int/monitor_collision_screen.sw.vtx differ diff --git a/models/uriel/toyota_int/monitor_collision_screen.vvd b/models/uriel/toyota_int/monitor_collision_screen.vvd new file mode 100644 index 000000000..e622b28af Binary files /dev/null and b/models/uriel/toyota_int/monitor_collision_screen.vvd differ diff --git a/models/vtalanov98/hellbentext/doors.dx80.vtx b/models/vtalanov98/hellbentext/doors.dx80.vtx deleted file mode 100644 index 323a148e4..000000000 Binary files a/models/vtalanov98/hellbentext/doors.dx80.vtx and /dev/null differ diff --git a/models/vtalanov98/hellbentext/doors.dx90.vtx b/models/vtalanov98/hellbentext/doors.dx90.vtx deleted file mode 100644 index a97024414..000000000 Binary files a/models/vtalanov98/hellbentext/doors.dx90.vtx and /dev/null differ diff --git a/models/vtalanov98/hellbentext/doors.mdl b/models/vtalanov98/hellbentext/doors.mdl deleted file mode 100644 index d9890970a..000000000 Binary files a/models/vtalanov98/hellbentext/doors.mdl and /dev/null differ diff --git a/models/vtalanov98/hellbentext/doors.phy b/models/vtalanov98/hellbentext/doors.phy deleted file mode 100644 index 84ff783e0..000000000 Binary files a/models/vtalanov98/hellbentext/doors.phy and /dev/null differ diff --git a/models/vtalanov98/hellbentext/doors.sw.vtx b/models/vtalanov98/hellbentext/doors.sw.vtx deleted file mode 100644 index d2cb89678..000000000 Binary files a/models/vtalanov98/hellbentext/doors.sw.vtx and /dev/null differ diff --git a/models/vtalanov98/hellbentext/doors.vvd b/models/vtalanov98/hellbentext/doors.vvd deleted file mode 100644 index 40875523f..000000000 Binary files a/models/vtalanov98/hellbentext/doors.vvd and /dev/null differ diff --git a/models/vtalanov98/hellbentext/doorsext.dx80.vtx b/models/vtalanov98/hellbentext/doorsext.dx80.vtx deleted file mode 100644 index 704de9425..000000000 Binary files a/models/vtalanov98/hellbentext/doorsext.dx80.vtx and /dev/null differ diff --git a/models/vtalanov98/hellbentext/doorsext.dx90.vtx b/models/vtalanov98/hellbentext/doorsext.dx90.vtx deleted file mode 100644 index 023e60a56..000000000 Binary files a/models/vtalanov98/hellbentext/doorsext.dx90.vtx and /dev/null differ diff --git a/models/vtalanov98/hellbentext/doorsext.mdl b/models/vtalanov98/hellbentext/doorsext.mdl deleted file mode 100644 index 2768bf007..000000000 Binary files a/models/vtalanov98/hellbentext/doorsext.mdl and /dev/null differ diff --git a/models/vtalanov98/hellbentext/doorsext.phy b/models/vtalanov98/hellbentext/doorsext.phy deleted file mode 100644 index 07616a119..000000000 Binary files a/models/vtalanov98/hellbentext/doorsext.phy and /dev/null differ diff --git a/models/vtalanov98/hellbentext/doorsext.sw.vtx b/models/vtalanov98/hellbentext/doorsext.sw.vtx deleted file mode 100644 index 86f729d98..000000000 Binary files a/models/vtalanov98/hellbentext/doorsext.sw.vtx and /dev/null differ diff --git a/models/vtalanov98/hellbentext/doorsext.vvd b/models/vtalanov98/hellbentext/doorsext.vvd deleted file mode 100644 index 8b5b647b1..000000000 Binary files a/models/vtalanov98/hellbentext/doorsext.vvd and /dev/null differ diff --git a/models/vtalanov98/hellbentext/exterior.dx80.vtx b/models/vtalanov98/hellbentext/exterior.dx80.vtx deleted file mode 100644 index 3e95f448c..000000000 Binary files a/models/vtalanov98/hellbentext/exterior.dx80.vtx and /dev/null differ diff --git a/models/vtalanov98/hellbentext/exterior.dx90.vtx b/models/vtalanov98/hellbentext/exterior.dx90.vtx deleted file mode 100644 index 6ae75bdfc..000000000 Binary files a/models/vtalanov98/hellbentext/exterior.dx90.vtx and /dev/null differ diff --git a/models/vtalanov98/hellbentext/exterior.mdl b/models/vtalanov98/hellbentext/exterior.mdl deleted file mode 100644 index 76bbc65ac..000000000 Binary files a/models/vtalanov98/hellbentext/exterior.mdl and /dev/null differ diff --git a/models/vtalanov98/hellbentext/exterior.phy b/models/vtalanov98/hellbentext/exterior.phy deleted file mode 100644 index dd3d67f26..000000000 Binary files a/models/vtalanov98/hellbentext/exterior.phy and /dev/null differ diff --git a/models/vtalanov98/hellbentext/exterior.sw.vtx b/models/vtalanov98/hellbentext/exterior.sw.vtx deleted file mode 100644 index 4ecaca158..000000000 Binary files a/models/vtalanov98/hellbentext/exterior.sw.vtx and /dev/null differ diff --git a/models/vtalanov98/hellbentext/exterior.vvd b/models/vtalanov98/hellbentext/exterior.vvd deleted file mode 100644 index cfed812f7..000000000 Binary files a/models/vtalanov98/hellbentext/exterior.vvd and /dev/null differ diff --git a/models/vtalanov98/toyota_ext/doors_exterior.dx80.vtx b/models/vtalanov98/toyota_ext/doors_exterior.dx80.vtx new file mode 100644 index 000000000..10493e073 Binary files /dev/null and b/models/vtalanov98/toyota_ext/doors_exterior.dx80.vtx differ diff --git a/models/vtalanov98/toyota_ext/doors_exterior.dx90.vtx b/models/vtalanov98/toyota_ext/doors_exterior.dx90.vtx new file mode 100644 index 000000000..393dadaee Binary files /dev/null and b/models/vtalanov98/toyota_ext/doors_exterior.dx90.vtx differ diff --git a/models/vtalanov98/toyota_ext/doors_exterior.mdl b/models/vtalanov98/toyota_ext/doors_exterior.mdl new file mode 100644 index 000000000..4f2d1e603 Binary files /dev/null and b/models/vtalanov98/toyota_ext/doors_exterior.mdl differ diff --git a/models/vtalanov98/toyota_ext/doors_exterior.phy b/models/vtalanov98/toyota_ext/doors_exterior.phy new file mode 100644 index 000000000..7f8f15f87 Binary files /dev/null and b/models/vtalanov98/toyota_ext/doors_exterior.phy differ diff --git a/models/vtalanov98/toyota_ext/doors_exterior.sw.vtx b/models/vtalanov98/toyota_ext/doors_exterior.sw.vtx new file mode 100644 index 000000000..56f9fa4b1 Binary files /dev/null and b/models/vtalanov98/toyota_ext/doors_exterior.sw.vtx differ diff --git a/models/vtalanov98/toyota_ext/doors_exterior.vvd b/models/vtalanov98/toyota_ext/doors_exterior.vvd new file mode 100644 index 000000000..6b55b7665 Binary files /dev/null and b/models/vtalanov98/toyota_ext/doors_exterior.vvd differ diff --git a/models/vtalanov98/toyota_ext/doors_interior.dx80.vtx b/models/vtalanov98/toyota_ext/doors_interior.dx80.vtx new file mode 100644 index 000000000..531dfb283 Binary files /dev/null and b/models/vtalanov98/toyota_ext/doors_interior.dx80.vtx differ diff --git a/models/vtalanov98/toyota_ext/doors_interior.dx90.vtx b/models/vtalanov98/toyota_ext/doors_interior.dx90.vtx new file mode 100644 index 000000000..3d6e7cd91 Binary files /dev/null and b/models/vtalanov98/toyota_ext/doors_interior.dx90.vtx differ diff --git a/models/vtalanov98/toyota_ext/doors_interior.mdl b/models/vtalanov98/toyota_ext/doors_interior.mdl new file mode 100644 index 000000000..11286a9a1 Binary files /dev/null and b/models/vtalanov98/toyota_ext/doors_interior.mdl differ diff --git a/models/vtalanov98/toyota_ext/doors_interior.phy b/models/vtalanov98/toyota_ext/doors_interior.phy new file mode 100644 index 000000000..25e295e72 Binary files /dev/null and b/models/vtalanov98/toyota_ext/doors_interior.phy differ diff --git a/models/vtalanov98/toyota_ext/doors_interior.sw.vtx b/models/vtalanov98/toyota_ext/doors_interior.sw.vtx new file mode 100644 index 000000000..2c2603f8d Binary files /dev/null and b/models/vtalanov98/toyota_ext/doors_interior.sw.vtx differ diff --git a/models/vtalanov98/toyota_ext/doors_interior.vvd b/models/vtalanov98/toyota_ext/doors_interior.vvd new file mode 100644 index 000000000..504a4ae4d Binary files /dev/null and b/models/vtalanov98/toyota_ext/doors_interior.vvd differ diff --git a/sound/drmatt/tardis/chameleon_circuit.wav b/sound/drmatt/tardis/chameleon_circuit.wav index 2c6ac6ac9..5cb3d10e7 100644 Binary files a/sound/drmatt/tardis/chameleon_circuit.wav and b/sound/drmatt/tardis/chameleon_circuit.wav differ diff --git a/sound/drmatt/tardis/cloisterbell_loop.wav b/sound/drmatt/tardis/cloisterbell_loop.wav index 7fa3ea146..19d01f86b 100644 Binary files a/sound/drmatt/tardis/cloisterbell_loop.wav and b/sound/drmatt/tardis/cloisterbell_loop.wav differ diff --git a/sound/drmatt/tardis/default/control_handbrake.wav b/sound/drmatt/tardis/default/control_handbrake.wav deleted file mode 100644 index 365e9a359..000000000 Binary files a/sound/drmatt/tardis/default/control_handbrake.wav and /dev/null differ diff --git a/sound/drmatt/tardis/default/control_throttle.wav b/sound/drmatt/tardis/default/control_throttle.wav deleted file mode 100644 index e09005dcb..000000000 Binary files a/sound/drmatt/tardis/default/control_throttle.wav and /dev/null differ diff --git a/sound/drmatt/tardis/default/interior_idle2_loop.wav b/sound/drmatt/tardis/default/interior_idle2_loop.wav deleted file mode 100644 index 463e5730e..000000000 Binary files a/sound/drmatt/tardis/default/interior_idle2_loop.wav and /dev/null differ diff --git a/sound/drmatt/tardis/default/interior_idle_loop.wav b/sound/drmatt/tardis/default/interior_idle_loop.wav deleted file mode 100644 index c5613be74..000000000 Binary files a/sound/drmatt/tardis/default/interior_idle_loop.wav and /dev/null differ diff --git a/sound/drmatt/tardis/demat.wav b/sound/drmatt/tardis/demat.wav index 0bc570672..0283d8b10 100644 Binary files a/sound/drmatt/tardis/demat.wav and b/sound/drmatt/tardis/demat.wav differ diff --git a/sound/drmatt/tardis/demat_damaged.wav b/sound/drmatt/tardis/demat_damaged.wav index d98a6a793..dcbe98da4 100644 Binary files a/sound/drmatt/tardis/demat_damaged.wav and b/sound/drmatt/tardis/demat_damaged.wav differ diff --git a/sound/drmatt/tardis/demat_fail.wav b/sound/drmatt/tardis/demat_fail.wav index 0a337d875..1cd0b7673 100644 Binary files a/sound/drmatt/tardis/demat_fail.wav and b/sound/drmatt/tardis/demat_fail.wav differ diff --git a/sound/drmatt/tardis/door_close.wav b/sound/drmatt/tardis/door_close.wav index 937606ace..432ea3df5 100644 Binary files a/sound/drmatt/tardis/door_close.wav and b/sound/drmatt/tardis/door_close.wav differ diff --git a/sound/drmatt/tardis/door_locked.wav b/sound/drmatt/tardis/door_locked.wav index 305d4257e..b82339633 100644 Binary files a/sound/drmatt/tardis/door_locked.wav and b/sound/drmatt/tardis/door_locked.wav differ diff --git a/sound/drmatt/tardis/door_open.wav b/sound/drmatt/tardis/door_open.wav index c1ddde0ec..b7858a40a 100644 Binary files a/sound/drmatt/tardis/door_open.wav and b/sound/drmatt/tardis/door_open.wav differ diff --git a/sound/drmatt/tardis/flight_loop.wav b/sound/drmatt/tardis/flight_loop.wav index 5a4d6faae..28dc83366 100644 Binary files a/sound/drmatt/tardis/flight_loop.wav and b/sound/drmatt/tardis/flight_loop.wav differ diff --git a/sound/drmatt/tardis/flight_loop_damaged.wav b/sound/drmatt/tardis/flight_loop_damaged.wav index 4f5d1fd67..ab3f64b53 100644 Binary files a/sound/drmatt/tardis/flight_loop_damaged.wav and b/sound/drmatt/tardis/flight_loop_damaged.wav differ diff --git a/sound/drmatt/tardis/full.wav b/sound/drmatt/tardis/full.wav index ff99df7cc..1345c855b 100644 Binary files a/sound/drmatt/tardis/full.wav and b/sound/drmatt/tardis/full.wav differ diff --git a/sound/drmatt/tardis/full_damaged.wav b/sound/drmatt/tardis/full_damaged.wav index 9e0b1387f..40d4e7a91 100644 Binary files a/sound/drmatt/tardis/full_damaged.wav and b/sound/drmatt/tardis/full_damaged.wav differ diff --git a/sound/drmatt/tardis/lock.wav b/sound/drmatt/tardis/lock.wav index 522ee3da1..d0021ef75 100644 Binary files a/sound/drmatt/tardis/lock.wav and b/sound/drmatt/tardis/lock.wav differ diff --git a/sound/drmatt/tardis/lock_int.wav b/sound/drmatt/tardis/lock_int.wav index 083cb5d6c..80291b033 100644 Binary files a/sound/drmatt/tardis/lock_int.wav and b/sound/drmatt/tardis/lock_int.wav differ diff --git a/sound/drmatt/tardis/mat.wav b/sound/drmatt/tardis/mat.wav index 1b3f0a1fd..d8ac1d9a9 100644 Binary files a/sound/drmatt/tardis/mat.wav and b/sound/drmatt/tardis/mat.wav differ diff --git a/sound/drmatt/tardis/mat_damaged.wav b/sound/drmatt/tardis/mat_damaged.wav index f8746f06f..729684661 100644 Binary files a/sound/drmatt/tardis/mat_damaged.wav and b/sound/drmatt/tardis/mat_damaged.wav differ diff --git a/sound/drmatt/tardis/phase_disable.wav b/sound/drmatt/tardis/phase_disable.wav index 4d7775a74..3f52538f0 100644 Binary files a/sound/drmatt/tardis/phase_disable.wav and b/sound/drmatt/tardis/phase_disable.wav differ diff --git a/sound/drmatt/tardis/phase_enable.wav b/sound/drmatt/tardis/phase_enable.wav index ade526114..0065b421e 100644 Binary files a/sound/drmatt/tardis/phase_enable.wav and b/sound/drmatt/tardis/phase_enable.wav differ diff --git a/sound/drmatt/tardis/power_off.wav b/sound/drmatt/tardis/power_off.wav index c22fbf341..945618eba 100644 Binary files a/sound/drmatt/tardis/power_off.wav and b/sound/drmatt/tardis/power_off.wav differ diff --git a/sound/drmatt/tardis/power_on.wav b/sound/drmatt/tardis/power_on.wav index 56154f6ca..c24df2ac3 100644 Binary files a/sound/drmatt/tardis/power_on.wav and b/sound/drmatt/tardis/power_on.wav differ diff --git a/sound/drmatt/tardis/repairfinish.wav b/sound/drmatt/tardis/repairfinish.wav index 9e073569c..1f21b48fd 100644 Binary files a/sound/drmatt/tardis/repairfinish.wav and b/sound/drmatt/tardis/repairfinish.wav differ diff --git a/sound/drmatt/tardis/seq_bad.wav b/sound/drmatt/tardis/seq_bad.wav index ac0027977..d2d26c190 100644 Binary files a/sound/drmatt/tardis/seq_bad.wav and b/sound/drmatt/tardis/seq_bad.wav differ diff --git a/sound/drmatt/tardis/seq_ok.wav b/sound/drmatt/tardis/seq_ok.wav index 2c4b14710..614c0b203 100644 Binary files a/sound/drmatt/tardis/seq_ok.wav and b/sound/drmatt/tardis/seq_ok.wav differ diff --git a/sound/jeredek/tardis/damage_bigcollision.wav b/sound/jeredek/tardis/damage_bigcollision.wav index 41d07d2fc..306b934de 100644 Binary files a/sound/jeredek/tardis/damage_bigcollision.wav and b/sound/jeredek/tardis/damage_bigcollision.wav differ diff --git a/sound/jeredek/tardis/damage_collision.wav b/sound/jeredek/tardis/damage_collision.wav index ce2348186..1261c7964 100644 Binary files a/sound/jeredek/tardis/damage_collision.wav and b/sound/jeredek/tardis/damage_collision.wav differ diff --git a/sound/jeredek/tardis/damage_death.wav b/sound/jeredek/tardis/damage_death.wav index a8676a0e3..2b7006aea 100644 Binary files a/sound/jeredek/tardis/damage_death.wav and b/sound/jeredek/tardis/damage_death.wav differ diff --git a/sound/jeredek/tardis/damage_explode.wav b/sound/jeredek/tardis/damage_explode.wav index cd1210f41..439d4b5dc 100644 Binary files a/sound/jeredek/tardis/damage_explode.wav and b/sound/jeredek/tardis/damage_explode.wav differ diff --git a/sound/jeredek/tardis/mat_damaged.wav b/sound/jeredek/tardis/mat_damaged.wav index 483abbfcf..5be268b2e 100644 Binary files a/sound/jeredek/tardis/mat_damaged.wav and b/sound/jeredek/tardis/mat_damaged.wav differ diff --git a/sound/p00gie/tardis/base/demat.wav b/sound/p00gie/tardis/base/demat.wav index 132a155bf..980b794b6 100644 Binary files a/sound/p00gie/tardis/base/demat.wav and b/sound/p00gie/tardis/base/demat.wav differ diff --git a/sound/p00gie/tardis/base/demat_hads.wav b/sound/p00gie/tardis/base/demat_hads.wav new file mode 100644 index 000000000..09f29bbab Binary files /dev/null and b/sound/p00gie/tardis/base/demat_hads.wav differ diff --git a/sound/p00gie/tardis/base/door_unlock.wav b/sound/p00gie/tardis/base/door_unlock.wav index 141a0fad2..2f4be5dce 100644 Binary files a/sound/p00gie/tardis/base/door_unlock.wav and b/sound/p00gie/tardis/base/door_unlock.wav differ diff --git a/sound/p00gie/tardis/base/door_unlock_ext.wav b/sound/p00gie/tardis/base/door_unlock_ext.wav index f444e3b15..f5377f71d 100644 Binary files a/sound/p00gie/tardis/base/door_unlock_ext.wav and b/sound/p00gie/tardis/base/door_unlock_ext.wav differ diff --git a/sound/p00gie/tardis/base/full.wav b/sound/p00gie/tardis/base/full.wav index 461a9ae47..562098de2 100644 Binary files a/sound/p00gie/tardis/base/full.wav and b/sound/p00gie/tardis/base/full.wav differ diff --git a/sound/p00gie/tardis/base/mat.wav b/sound/p00gie/tardis/base/mat.wav index d55799bc8..8400504c0 100644 Binary files a/sound/p00gie/tardis/base/mat.wav and b/sound/p00gie/tardis/base/mat.wav differ diff --git a/sound/p00gie/tardis/base/mat_damaged_fast.wav b/sound/p00gie/tardis/base/mat_damaged_fast.wav index f67f2629a..da36eaa40 100644 Binary files a/sound/p00gie/tardis/base/mat_damaged_fast.wav and b/sound/p00gie/tardis/base/mat_damaged_fast.wav differ diff --git a/sound/p00gie/tardis/base/mat_fast.wav b/sound/p00gie/tardis/base/mat_fast.wav index 7fd03ba2c..9378b1ac1 100644 Binary files a/sound/p00gie/tardis/base/mat_fast.wav and b/sound/p00gie/tardis/base/mat_fast.wav differ diff --git a/sound/p00gie/tardis/base/repairfinish.wav b/sound/p00gie/tardis/base/repairfinish.wav index 0f0a97571..f2bd28249 100644 Binary files a/sound/p00gie/tardis/base/repairfinish.wav and b/sound/p00gie/tardis/base/repairfinish.wav differ diff --git a/sound/p00gie/tardis/base/tardis_delete.wav b/sound/p00gie/tardis/base/tardis_delete.wav index 50d3aa697..b3c868279 100644 Binary files a/sound/p00gie/tardis/base/tardis_delete.wav and b/sound/p00gie/tardis/base/tardis_delete.wav differ diff --git a/sound/p00gie/tardis/base/tardis_landing.wav b/sound/p00gie/tardis/base/tardis_landing.wav new file mode 100644 index 000000000..a788e6495 Binary files /dev/null and b/sound/p00gie/tardis/base/tardis_landing.wav differ diff --git a/sound/p00gie/tardis/default/balls.ogg b/sound/p00gie/tardis/default/balls.ogg new file mode 100644 index 000000000..c9eddeff0 Binary files /dev/null and b/sound/p00gie/tardis/default/balls.ogg differ diff --git a/sound/p00gie/tardis/default/buttons.ogg b/sound/p00gie/tardis/default/buttons.ogg new file mode 100644 index 000000000..652c83b57 Binary files /dev/null and b/sound/p00gie/tardis/default/buttons.ogg differ diff --git a/sound/p00gie/tardis/default/buttons_on.ogg b/sound/p00gie/tardis/default/buttons_on.ogg new file mode 100644 index 000000000..87ac024fd Binary files /dev/null and b/sound/p00gie/tardis/default/buttons_on.ogg differ diff --git a/sound/p00gie/tardis/default/colored_lever_1.ogg b/sound/p00gie/tardis/default/colored_lever_1.ogg new file mode 100644 index 000000000..9d6cf10d6 Binary files /dev/null and b/sound/p00gie/tardis/default/colored_lever_1.ogg differ diff --git a/sound/p00gie/tardis/default/colored_lever_2.ogg b/sound/p00gie/tardis/default/colored_lever_2.ogg new file mode 100644 index 000000000..e1c6020ca Binary files /dev/null and b/sound/p00gie/tardis/default/colored_lever_2.ogg differ diff --git a/sound/p00gie/tardis/default/colored_lever_3.ogg b/sound/p00gie/tardis/default/colored_lever_3.ogg new file mode 100644 index 000000000..04f0f5074 Binary files /dev/null and b/sound/p00gie/tardis/default/colored_lever_3.ogg differ diff --git a/sound/p00gie/tardis/default/colored_lever_4.ogg b/sound/p00gie/tardis/default/colored_lever_4.ogg new file mode 100644 index 000000000..c45a4e8d8 Binary files /dev/null and b/sound/p00gie/tardis/default/colored_lever_4.ogg differ diff --git a/sound/p00gie/tardis/default/colored_lever_5.ogg b/sound/p00gie/tardis/default/colored_lever_5.ogg new file mode 100644 index 000000000..3b15bda80 Binary files /dev/null and b/sound/p00gie/tardis/default/colored_lever_5.ogg differ diff --git a/sound/p00gie/tardis/default/colored_lever_off.ogg b/sound/p00gie/tardis/default/colored_lever_off.ogg new file mode 100644 index 000000000..541ab5528 Binary files /dev/null and b/sound/p00gie/tardis/default/colored_lever_off.ogg differ diff --git a/sound/p00gie/tardis/default/crank.ogg b/sound/p00gie/tardis/default/crank.ogg new file mode 100644 index 000000000..4277ec2d9 Binary files /dev/null and b/sound/p00gie/tardis/default/crank.ogg differ diff --git a/sound/p00gie/tardis/default/crank2.ogg b/sound/p00gie/tardis/default/crank2.ogg new file mode 100644 index 000000000..ea6ec34a2 Binary files /dev/null and b/sound/p00gie/tardis/default/crank2.ogg differ diff --git a/sound/p00gie/tardis/default/crank_beep.ogg b/sound/p00gie/tardis/default/crank_beep.ogg new file mode 100644 index 000000000..72a432f9f Binary files /dev/null and b/sound/p00gie/tardis/default/crank_beep.ogg differ diff --git a/sound/p00gie/tardis/default/crank_loop.wav b/sound/p00gie/tardis/default/crank_loop.wav new file mode 100644 index 000000000..ca9522e12 Binary files /dev/null and b/sound/p00gie/tardis/default/crank_loop.wav differ diff --git a/sound/p00gie/tardis/default/cranks.ogg b/sound/p00gie/tardis/default/cranks.ogg new file mode 100644 index 000000000..2c1e03d67 Binary files /dev/null and b/sound/p00gie/tardis/default/cranks.ogg differ diff --git a/sound/p00gie/tardis/default/demat_ext.ogg b/sound/p00gie/tardis/default/demat_ext.ogg new file mode 100644 index 000000000..dc0dc30d2 Binary files /dev/null and b/sound/p00gie/tardis/default/demat_ext.ogg differ diff --git a/sound/p00gie/tardis/default/demat_fail.ogg b/sound/p00gie/tardis/default/demat_fail.ogg new file mode 100644 index 000000000..c82573f2a Binary files /dev/null and b/sound/p00gie/tardis/default/demat_fail.ogg differ diff --git a/sound/p00gie/tardis/default/demat_int.ogg b/sound/p00gie/tardis/default/demat_int.ogg new file mode 100644 index 000000000..b276ade32 Binary files /dev/null and b/sound/p00gie/tardis/default/demat_int.ogg differ diff --git a/sound/p00gie/tardis/default/demat_interrupt.ogg b/sound/p00gie/tardis/default/demat_interrupt.ogg new file mode 100644 index 000000000..6596df854 Binary files /dev/null and b/sound/p00gie/tardis/default/demat_interrupt.ogg differ diff --git a/sound/p00gie/tardis/default/door_close.ogg b/sound/p00gie/tardis/default/door_close.ogg new file mode 100644 index 000000000..6de771091 Binary files /dev/null and b/sound/p00gie/tardis/default/door_close.ogg differ diff --git a/sound/p00gie/tardis/default/door_open.ogg b/sound/p00gie/tardis/default/door_open.ogg new file mode 100644 index 000000000..ff5bfb542 Binary files /dev/null and b/sound/p00gie/tardis/default/door_open.ogg differ diff --git a/sound/p00gie/tardis/default/ducks_off.ogg b/sound/p00gie/tardis/default/ducks_off.ogg new file mode 100644 index 000000000..d9eaaa7db Binary files /dev/null and b/sound/p00gie/tardis/default/ducks_off.ogg differ diff --git a/sound/p00gie/tardis/default/ducks_on.ogg b/sound/p00gie/tardis/default/ducks_on.ogg new file mode 100644 index 000000000..d05b84f44 Binary files /dev/null and b/sound/p00gie/tardis/default/ducks_on.ogg differ diff --git a/sound/p00gie/tardis/default/flight_loop.wav b/sound/p00gie/tardis/default/flight_loop.wav new file mode 100644 index 000000000..116325c6b Binary files /dev/null and b/sound/p00gie/tardis/default/flight_loop.wav differ diff --git a/sound/p00gie/tardis/default/flippers.ogg b/sound/p00gie/tardis/default/flippers.ogg new file mode 100644 index 000000000..2b3affd63 Binary files /dev/null and b/sound/p00gie/tardis/default/flippers.ogg differ diff --git a/sound/p00gie/tardis/default/full_ext.ogg b/sound/p00gie/tardis/default/full_ext.ogg new file mode 100644 index 000000000..666bc14ea Binary files /dev/null and b/sound/p00gie/tardis/default/full_ext.ogg differ diff --git a/sound/p00gie/tardis/default/full_int.ogg b/sound/p00gie/tardis/default/full_int.ogg new file mode 100644 index 000000000..d619ec384 Binary files /dev/null and b/sound/p00gie/tardis/default/full_int.ogg differ diff --git a/sound/p00gie/tardis/default/handbrake_off.ogg b/sound/p00gie/tardis/default/handbrake_off.ogg new file mode 100644 index 000000000..a98212e14 Binary files /dev/null and b/sound/p00gie/tardis/default/handbrake_off.ogg differ diff --git a/sound/p00gie/tardis/default/handbrake_on.ogg b/sound/p00gie/tardis/default/handbrake_on.ogg new file mode 100644 index 000000000..ef5cfd595 Binary files /dev/null and b/sound/p00gie/tardis/default/handbrake_on.ogg differ diff --git a/sound/p00gie/tardis/default/hum.wav b/sound/p00gie/tardis/default/hum.wav new file mode 100644 index 000000000..290cd139c Binary files /dev/null and b/sound/p00gie/tardis/default/hum.wav differ diff --git a/sound/p00gie/tardis/default/intdoors_open.ogg b/sound/p00gie/tardis/default/intdoors_open.ogg new file mode 100644 index 000000000..ad20dcb69 Binary files /dev/null and b/sound/p00gie/tardis/default/intdoors_open.ogg differ diff --git a/sound/p00gie/tardis/default/key.ogg b/sound/p00gie/tardis/default/key.ogg new file mode 100644 index 000000000..246694aff Binary files /dev/null and b/sound/p00gie/tardis/default/key.ogg differ diff --git a/sound/p00gie/tardis/default/keyboard.ogg b/sound/p00gie/tardis/default/keyboard.ogg new file mode 100644 index 000000000..dd24bc066 Binary files /dev/null and b/sound/p00gie/tardis/default/keyboard.ogg differ diff --git a/sound/p00gie/tardis/default/keyboard_2014.ogg b/sound/p00gie/tardis/default/keyboard_2014.ogg new file mode 100644 index 000000000..b315d1642 Binary files /dev/null and b/sound/p00gie/tardis/default/keyboard_2014.ogg differ diff --git a/sound/p00gie/tardis/default/keyboard_2015.ogg b/sound/p00gie/tardis/default/keyboard_2015.ogg new file mode 100644 index 000000000..9271a118c Binary files /dev/null and b/sound/p00gie/tardis/default/keyboard_2015.ogg differ diff --git a/sound/p00gie/tardis/default/lever5.ogg b/sound/p00gie/tardis/default/lever5.ogg new file mode 100644 index 000000000..d1ccf06de Binary files /dev/null and b/sound/p00gie/tardis/default/lever5.ogg differ diff --git a/sound/p00gie/tardis/default/levers.ogg b/sound/p00gie/tardis/default/levers.ogg new file mode 100644 index 000000000..f12fed334 Binary files /dev/null and b/sound/p00gie/tardis/default/levers.ogg differ diff --git a/sound/p00gie/tardis/default/mat_ext.ogg b/sound/p00gie/tardis/default/mat_ext.ogg new file mode 100644 index 000000000..f77d0c575 Binary files /dev/null and b/sound/p00gie/tardis/default/mat_ext.ogg differ diff --git a/sound/p00gie/tardis/default/mat_fast.ogg b/sound/p00gie/tardis/default/mat_fast.ogg new file mode 100644 index 000000000..ed3185e40 Binary files /dev/null and b/sound/p00gie/tardis/default/mat_fast.ogg differ diff --git a/sound/p00gie/tardis/default/mat_int.ogg b/sound/p00gie/tardis/default/mat_int.ogg new file mode 100644 index 000000000..763829c23 Binary files /dev/null and b/sound/p00gie/tardis/default/mat_int.ogg differ diff --git a/sound/p00gie/tardis/default/monitor_flip.ogg b/sound/p00gie/tardis/default/monitor_flip.ogg new file mode 100644 index 000000000..ac62f689d Binary files /dev/null and b/sound/p00gie/tardis/default/monitor_flip.ogg differ diff --git a/sound/p00gie/tardis/default/monitor_hold.ogg b/sound/p00gie/tardis/default/monitor_hold.ogg new file mode 100644 index 000000000..290f78e03 Binary files /dev/null and b/sound/p00gie/tardis/default/monitor_hold.ogg differ diff --git a/sound/p00gie/tardis/default/monitor_move_vert.ogg b/sound/p00gie/tardis/default/monitor_move_vert.ogg new file mode 100644 index 000000000..066fea878 Binary files /dev/null and b/sound/p00gie/tardis/default/monitor_move_vert.ogg differ diff --git a/sound/p00gie/tardis/default/monitor_release.ogg b/sound/p00gie/tardis/default/monitor_release.ogg new file mode 100644 index 000000000..3faf2ca5f Binary files /dev/null and b/sound/p00gie/tardis/default/monitor_release.ogg differ diff --git a/sound/p00gie/tardis/default/phone.ogg b/sound/p00gie/tardis/default/phone.ogg new file mode 100644 index 000000000..413dd86ad Binary files /dev/null and b/sound/p00gie/tardis/default/phone.ogg differ diff --git a/sound/p00gie/tardis/default/red_lever_off.ogg b/sound/p00gie/tardis/default/red_lever_off.ogg new file mode 100644 index 000000000..5a57abd1b Binary files /dev/null and b/sound/p00gie/tardis/default/red_lever_off.ogg differ diff --git a/sound/p00gie/tardis/default/red_lever_on.ogg b/sound/p00gie/tardis/default/red_lever_on.ogg new file mode 100644 index 000000000..437def17b Binary files /dev/null and b/sound/p00gie/tardis/default/red_lever_on.ogg differ diff --git a/sound/p00gie/tardis/default/slider_2_on.ogg b/sound/p00gie/tardis/default/slider_2_on.ogg new file mode 100644 index 000000000..6cefbf087 Binary files /dev/null and b/sound/p00gie/tardis/default/slider_2_on.ogg differ diff --git a/sound/p00gie/tardis/default/slider_off.ogg b/sound/p00gie/tardis/default/slider_off.ogg new file mode 100644 index 000000000..38cf34316 Binary files /dev/null and b/sound/p00gie/tardis/default/slider_off.ogg differ diff --git a/sound/p00gie/tardis/default/slider_on.ogg b/sound/p00gie/tardis/default/slider_on.ogg new file mode 100644 index 000000000..83fac8ab9 Binary files /dev/null and b/sound/p00gie/tardis/default/slider_on.ogg differ diff --git a/sound/p00gie/tardis/default/sliders.ogg b/sound/p00gie/tardis/default/sliders.ogg new file mode 100644 index 000000000..5d5349f6b Binary files /dev/null and b/sound/p00gie/tardis/default/sliders.ogg differ diff --git a/sound/p00gie/tardis/default/sliders_off.ogg b/sound/p00gie/tardis/default/sliders_off.ogg new file mode 100644 index 000000000..f92c5e32b Binary files /dev/null and b/sound/p00gie/tardis/default/sliders_off.ogg differ diff --git a/sound/p00gie/tardis/default/sonic_dispenser.ogg b/sound/p00gie/tardis/default/sonic_dispenser.ogg new file mode 100644 index 000000000..4fd79c76f Binary files /dev/null and b/sound/p00gie/tardis/default/sonic_dispenser.ogg differ diff --git a/sound/p00gie/tardis/default/steeringmech_loop.wav b/sound/p00gie/tardis/default/steeringmech_loop.wav new file mode 100644 index 000000000..023c43e06 Binary files /dev/null and b/sound/p00gie/tardis/default/steeringmech_loop.wav differ diff --git a/sound/p00gie/tardis/default/switch.ogg b/sound/p00gie/tardis/default/switch.ogg new file mode 100644 index 000000000..e0a2a7f18 Binary files /dev/null and b/sound/p00gie/tardis/default/switch.ogg differ diff --git a/sound/p00gie/tardis/default/switch2.ogg b/sound/p00gie/tardis/default/switch2.ogg new file mode 100644 index 000000000..f507e8128 Binary files /dev/null and b/sound/p00gie/tardis/default/switch2.ogg differ diff --git a/sound/p00gie/tardis/default/switch_on.ogg b/sound/p00gie/tardis/default/switch_on.ogg new file mode 100644 index 000000000..e41192031 Binary files /dev/null and b/sound/p00gie/tardis/default/switch_on.ogg differ diff --git a/sound/p00gie/tardis/default/tardis_land.ogg b/sound/p00gie/tardis/default/tardis_land.ogg new file mode 100644 index 000000000..e439f0c37 Binary files /dev/null and b/sound/p00gie/tardis/default/tardis_land.ogg differ diff --git a/sound/p00gie/tardis/default/telepathic_off.ogg b/sound/p00gie/tardis/default/telepathic_off.ogg new file mode 100644 index 000000000..7c88aa6fd Binary files /dev/null and b/sound/p00gie/tardis/default/telepathic_off.ogg differ diff --git a/sound/p00gie/tardis/default/telepathic_on.ogg b/sound/p00gie/tardis/default/telepathic_on.ogg new file mode 100644 index 000000000..8eae4408e Binary files /dev/null and b/sound/p00gie/tardis/default/telepathic_on.ogg differ diff --git a/sound/p00gie/tardis/default/throttle_off.ogg b/sound/p00gie/tardis/default/throttle_off.ogg new file mode 100644 index 000000000..4a6f5f4cb Binary files /dev/null and b/sound/p00gie/tardis/default/throttle_off.ogg differ diff --git a/sound/p00gie/tardis/default/throttle_on.ogg b/sound/p00gie/tardis/default/throttle_on.ogg new file mode 100644 index 000000000..94dc83dbb Binary files /dev/null and b/sound/p00gie/tardis/default/throttle_on.ogg differ diff --git a/sound/p00gie/tardis/default/toggles.ogg b/sound/p00gie/tardis/default/toggles.ogg new file mode 100644 index 000000000..59b5a40ee Binary files /dev/null and b/sound/p00gie/tardis/default/toggles.ogg differ diff --git a/sound/p00gie/tardis/default/toggles2.ogg b/sound/p00gie/tardis/default/toggles2.ogg new file mode 100644 index 000000000..0ebf711e9 Binary files /dev/null and b/sound/p00gie/tardis/default/toggles2.ogg differ diff --git a/sound/p00gie/tardis/default/toggles2_off.ogg b/sound/p00gie/tardis/default/toggles2_off.ogg new file mode 100644 index 000000000..f4587fbab Binary files /dev/null and b/sound/p00gie/tardis/default/toggles2_off.ogg differ diff --git a/sound/p00gie/tardis/default/toggles_off.ogg b/sound/p00gie/tardis/default/toggles_off.ogg new file mode 100644 index 000000000..75dd19e9d Binary files /dev/null and b/sound/p00gie/tardis/default/toggles_off.ogg differ diff --git a/sound/p00gie/tardis/default/toggles_on.ogg b/sound/p00gie/tardis/default/toggles_on.ogg new file mode 100644 index 000000000..ab98f281a Binary files /dev/null and b/sound/p00gie/tardis/default/toggles_on.ogg differ diff --git a/sound/p00gie/tardis/default/toggles_on_2.ogg b/sound/p00gie/tardis/default/toggles_on_2.ogg new file mode 100644 index 000000000..3c05fe002 Binary files /dev/null and b/sound/p00gie/tardis/default/toggles_on_2.ogg differ diff --git a/sound/p00gie/tardis/default/topdoor_close.ogg b/sound/p00gie/tardis/default/topdoor_close.ogg new file mode 100644 index 000000000..2ff1dd38a Binary files /dev/null and b/sound/p00gie/tardis/default/topdoor_close.ogg differ diff --git a/sound/p00gie/tardis/default/topdoor_open.ogg b/sound/p00gie/tardis/default/topdoor_open.ogg new file mode 100644 index 000000000..9569aa74b Binary files /dev/null and b/sound/p00gie/tardis/default/topdoor_open.ogg differ diff --git a/sound/p00gie/tardis/default/tumblers_off.ogg b/sound/p00gie/tardis/default/tumblers_off.ogg new file mode 100644 index 000000000..ca9441391 Binary files /dev/null and b/sound/p00gie/tardis/default/tumblers_off.ogg differ diff --git a/sound/p00gie/tardis/default/tumblers_on.ogg b/sound/p00gie/tardis/default/tumblers_on.ogg new file mode 100644 index 000000000..69895a40e Binary files /dev/null and b/sound/p00gie/tardis/default/tumblers_on.ogg differ diff --git a/sound/p00gie/tardis/demat_hads.wav b/sound/p00gie/tardis/demat_hads.wav new file mode 100644 index 000000000..ee3f58186 Binary files /dev/null and b/sound/p00gie/tardis/demat_hads.wav differ diff --git a/sound/p00gie/tardis/fall.wav b/sound/p00gie/tardis/fall.wav new file mode 100644 index 000000000..6d0ef3d51 Binary files /dev/null and b/sound/p00gie/tardis/fall.wav differ diff --git a/sound/p00gie/tardis/flight_broken_start.wav b/sound/p00gie/tardis/flight_broken_start.wav new file mode 100644 index 000000000..3dc3e00cf Binary files /dev/null and b/sound/p00gie/tardis/flight_broken_start.wav differ diff --git a/sound/p00gie/tardis/flight_broken_stop.wav b/sound/p00gie/tardis/flight_broken_stop.wav new file mode 100644 index 000000000..1ac30b9b9 Binary files /dev/null and b/sound/p00gie/tardis/flight_broken_stop.wav differ diff --git a/sound/p00gie/tardis/flight_loop_broken.wav b/sound/p00gie/tardis/flight_loop_broken.wav new file mode 100644 index 000000000..8993a41ee Binary files /dev/null and b/sound/p00gie/tardis/flight_loop_broken.wav differ diff --git a/sound/p00gie/tardis/flight_turn_1.wav b/sound/p00gie/tardis/flight_turn_1.wav new file mode 100644 index 000000000..84148b036 Binary files /dev/null and b/sound/p00gie/tardis/flight_turn_1.wav differ diff --git a/sound/p00gie/tardis/flight_turn_2.wav b/sound/p00gie/tardis/flight_turn_2.wav new file mode 100644 index 000000000..c701d817c Binary files /dev/null and b/sound/p00gie/tardis/flight_turn_2.wav differ diff --git a/sound/p00gie/tardis/flight_turn_3.wav b/sound/p00gie/tardis/flight_turn_3.wav new file mode 100644 index 000000000..77647d378 Binary files /dev/null and b/sound/p00gie/tardis/flight_turn_3.wav differ diff --git a/sound/p00gie/tardis/flight_turn_explosion.wav b/sound/p00gie/tardis/flight_turn_explosion.wav new file mode 100644 index 000000000..c2d8ebd0b Binary files /dev/null and b/sound/p00gie/tardis/flight_turn_explosion.wav differ diff --git a/sound/p00gie/tardis/force_artron.wav b/sound/p00gie/tardis/force_artron.wav index 47c61f423..73b5e2d34 100644 Binary files a/sound/p00gie/tardis/force_artron.wav and b/sound/p00gie/tardis/force_artron.wav differ diff --git a/sound/p00gie/tardis/mat_damaged_fast.wav b/sound/p00gie/tardis/mat_damaged_fast.wav index b4d4ae6fb..1cf3f7fcf 100644 Binary files a/sound/p00gie/tardis/mat_damaged_fast.wav and b/sound/p00gie/tardis/mat_damaged_fast.wav differ diff --git a/sound/p00gie/tardis/mat_fail.wav b/sound/p00gie/tardis/mat_fail.wav index b99b61b45..91cfde8c8 100644 Binary files a/sound/p00gie/tardis/mat_fail.wav and b/sound/p00gie/tardis/mat_fail.wav differ diff --git a/sound/p00gie/tardis/mat_fast.wav b/sound/p00gie/tardis/mat_fast.wav index ce836af81..b276f42a7 100644 Binary files a/sound/p00gie/tardis/mat_fast.wav and b/sound/p00gie/tardis/mat_fast.wav differ diff --git a/sound/p00gie/tardis/tardis_delete.wav b/sound/p00gie/tardis/tardis_delete.wav index 89b00a10a..a1e2340d9 100644 Binary files a/sound/p00gie/tardis/tardis_delete.wav and b/sound/p00gie/tardis/tardis_delete.wav differ diff --git a/sound/p00gie/tardis/tardis_landing.wav b/sound/p00gie/tardis/tardis_landing.wav new file mode 100644 index 000000000..cc518ff04 Binary files /dev/null and b/sound/p00gie/tardis/tardis_landing.wav differ diff --git a/sound/vtalanov98/hellbentext/demat.wav b/sound/vtalanov98/hellbentext/demat.wav index 76209d1f9..264b0c482 100644 Binary files a/sound/vtalanov98/hellbentext/demat.wav and b/sound/vtalanov98/hellbentext/demat.wav differ diff --git a/sound/vtalanov98/hellbentext/doorext_close.wav b/sound/vtalanov98/hellbentext/doorext_close.wav index ccff9fa5b..66cd1563e 100644 Binary files a/sound/vtalanov98/hellbentext/doorext_close.wav and b/sound/vtalanov98/hellbentext/doorext_close.wav differ diff --git a/sound/vtalanov98/hellbentext/doorext_open.wav b/sound/vtalanov98/hellbentext/doorext_open.wav index 8437efc40..aeaf6d130 100644 Binary files a/sound/vtalanov98/hellbentext/doorext_open.wav and b/sound/vtalanov98/hellbentext/doorext_open.wav differ diff --git a/sound/vtalanov98/hellbentext/flight_loop.wav b/sound/vtalanov98/hellbentext/flight_loop.wav index 454af424d..68be5f166 100644 Binary files a/sound/vtalanov98/hellbentext/flight_loop.wav and b/sound/vtalanov98/hellbentext/flight_loop.wav differ diff --git a/sound/vtalanov98/hellbentext/lock.wav b/sound/vtalanov98/hellbentext/lock.wav index 9a3df2bd1..133c419a6 100644 Binary files a/sound/vtalanov98/hellbentext/lock.wav and b/sound/vtalanov98/hellbentext/lock.wav differ diff --git a/sound/vtalanov98/hellbentext/mat.wav b/sound/vtalanov98/hellbentext/mat.wav index 3d4a4ef8a..ed44450ec 100644 Binary files a/sound/vtalanov98/hellbentext/mat.wav and b/sound/vtalanov98/hellbentext/mat.wav differ diff --git a/version.json b/version.json new file mode 100644 index 000000000..7114d8fae --- /dev/null +++ b/version.json @@ -0,0 +1,5 @@ +{ + "Major": 2023, + "Minor": 8, + "Patch": 0 +} \ No newline at end of file