Fixes a batch of legendary camouflage problems in the Tankopedia viewer, adds three missing unique camouflages and lets attachments be shown together with a camouflage.
## Camouflage parts (state switchers)
- Camouflages now choose which tank pieces show the same way the game does. Each switcher's load-time scenario script runs at export time (checks for attached camouflage items, or compares the camouflage preset), along with its state-switch actions. This replaces the old guess from part names (new `core/blitzkit/switcherStates.ts`).
- Fixes missing roof MGs, fenders and fuel tanks (IS-3 Bear, Obj. 140 Terror, IS-7, IS-4, FV215b 183, AMX 50 B, KV-1S) and default parts mixed into camouflages (Pershing Speedfire, Forest Witch Fullmetal, Waffenträger Goldstreifen).
- Switchers inside camouflage parts now show one state instead of all of them stacked (Obj. Kust double net, Goldstreifen stowage, Tiger II cat).
- States are matched by original node names, because the GLTF loader renames duplicates.
- Camouflage part meshes with no LODs (`lodIndex -1`) are kept, which restores the Tiger II cat body and missing pieces on about 11 other camouflages.
## Materials
- `AlphaBlend` materials export as transparent. `AlphaBlendAdditive` materials export as additive and are applied in `jsxTree`, and unlit `Textured` materials export as unlit (IS-8 Raroh flames, dinosaur holograms, and glass and screens on a few base tanks).
- Camouflage part materials that share a name with the tank's material no longer replace the tank's camouflage material (Bisonte C45 Unbreakable).
## Names
- With a legendary camouflage selected, the title shows the tank's in-battle name ("GuP Type 95 Ha-Go", "KV-1 Warrior", "Shinobi").
- Camouflages without a name in the game files yet show "Unreleased" in orange instead of their raw string key, and no longer crash the tank names list.
## Attachments
- Attachments (`kind: customization`) are listed in their own group under the camouflages and can be turned on together with a camouflage. They load the same way as camouflages and fade with the same transition.
## Other
- Liberté, You Rock! and Ozzie (single-tank camouflages that only set a preset through `override`) are now available.
- Mastery gun mark meshes (`custom_gun_marks_*`) are no longer drawn (Helsing, HWT20 FalconFire and two camouflage guns).
## Not included
- Pixel Wave, Digital Trace and Forest Shadow are tiled pattern camouflages, which the viewer can't render yet.
- FV301 Corbie's drone position and the dinosaur heads' glow depend on camouflage animations and emissive materials, which are separate PRs.
Fixes #417
Fixes #419
Fixes #421
BlitzKit
Your Blitz experience, elevated. https://blitzkit.app/.
Developing: Prerequisites
There's a few things you'll need to get started. If this is your first time working with BlitzKit, it's completely safe to ignore all optional prerequisites below to get things running as quickly as possible.
Bun
Bun is the package manager and runtime that BlitzKit uses.
Ideally, you should also uninstall Node.js if you have it installed to avoid any cases where Node.js is used to run code instead of Bun which happens in some cases. But, this is not required and is unlikely to cause issues.
Protocol Buffer
BlitzKit uses Protocol Buffer's protoc CLI to generate efficiently packed data structures to serve data to clients in place of JSON.
World of Tanks Blitz
You will need a local installation of World of Tanks Blitz for BlitzKit to build off.
aria2 (Optional)
If you plan to use BlitzKit's client-management CLI for BlitzKit Previews, you will need to get aria2 to speed up your downloads.
libarchive (Optional)
If you plan to use BlitzKit's client-management CLI for BlitzKit OpenTests, you will need to get libarchive to keep your downloads completely in-memory.
Linux (Optional)
All work on BlitzKit is done on Linux and macOS. It is theoretically possible to work on Windows; please feel free to try and share your discoveries with us!
Developing: Setting Up
Start by cloning the repository and changing directories.
git clone https://github.com/blitzkit/blitzkit.git
cd blitzkit
Note
There is a closed source submodule under
packages/closedthat you can safely ignore. This sole purpose of this submodule is to providedvp.ts, a proprietary Wargaming game asset tree compression tool. You will not need this at any point.
Then, download the dependencies with Bun.
bun install
Finally, compile the proto files into TypeScript.
build build-protos
Developing: Environment
Go through the different packages in the packages directory and clone their respective template.env's to .env files. Follow the instructions in the .env files to fill them out as much as you can.
Developing: Running
Launching the website is as easy as running the dev script.
bun dev
If you ever make a change to any proto file, make sure to rebuild them.
build build-protos