diff --git a/.gitea/workflows/publish.yaml b/.gitea/workflows/publish.yaml deleted file mode 100644 index df43668..0000000 --- a/.gitea/workflows/publish.yaml +++ /dev/null @@ -1,83 +0,0 @@ -name: Publish - -on: - push: - branches: - - main - pull_request: - branches: - - main -env: - REGISTRY: git.jeffa.io - IMAGE_NAME: ${{ gitea.repository }} -jobs: - rust: - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v2 - - - name: Set up Rust - uses: actions-rs/toolchain@v1 - - - name: Run cargo clippy - run: cargo clippy -- -D warnings - - - name: Check for errors - run: | - if [ "$?" -ne 0 ]; then - echo "Check failed" - exit 1 - fi - docker: - - runs-on: ubuntu-latest - permissions: - contents: read - packages: write - # This is used to complete the identity challenge - # with sigstore/fulcio when running outside of PRs. - id-token: write - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - # Set up BuildKit Docker container builder to be able to build - # multi-platform images and export cache - # https://github.com/docker/setup-buildx-action - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0 - - # Login against a Docker registry except on PR - # https://github.com/docker/login-action - - name: Log into registry ${{ env.REGISTRY }} - if: github.event_name != 'pull_request' - uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0 - with: - registry: ${{ env.REGISTRY }} - username: ${{ gitea.actor }} - password: ${{ secrets.TOKEN }} - - # Extract metadata (tags, labels) for Docker - # https://github.com/docker/metadata-action - - name: Extract Docker metadata - id: meta - uses: docker/metadata-action@96383f45573cb7f253c731d3b3ab81c87ef81934 # v5.0.0 - with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - - # Build and push Docker image with Buildx (don't push on PR) - # https://github.com/docker/build-push-action - - name: Build and push Docker image - id: build-and-push - uses: docker/build-push-action@0565240e2d4ab88bba5387d719585280857ece09 # v5.0.0 - with: - context: . - file: Containerfile - push: ${{ gitea.event_name != 'pull_request' }} - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - cache-from: type=gha - cache-to: type=gha,mode=max diff --git a/Cargo.lock b/Cargo.lock index ad5dafe..e732b95 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "addr2line" @@ -47,9 +47,9 @@ dependencies = [ [[package]] name = "allocator-api2" -version = "0.2.20" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45862d1c77f2228b9e10bc609d5bc203d86ebc9b87ad8d5d5167a6c9abf739d9" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "android-tzdata" @@ -187,13 +187,13 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.83" +version = "0.1.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" +checksum = "3f934833b4b7233644e5848f235df3f57ed8c80f1528a26c3dfa13d2147fa056" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -329,9 +329,9 @@ checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bytemuck" -version = "1.19.0" +version = "1.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d" +checksum = "ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3" [[package]] name = "byteorder" @@ -347,15 +347,15 @@ checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" [[package]] name = "bytes" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" +checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" [[package]] name = "cc" -version = "1.2.1" +version = "1.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd9de9f2205d5ef3fd67e685b0df337994ddd4495e2a28d185500d0e1edfea47" +checksum = "a012a0df96dd6d06ba9a1b29d6402d1a5d77c6befd2566afdc26e10603dc93d7" dependencies = [ "shlex", ] @@ -380,9 +380,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.38" +version = "0.4.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" dependencies = [ "android-tzdata", "iana-time-zone", @@ -395,9 +395,9 @@ dependencies = [ [[package]] name = "chrono-tz" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93698b29de5e97ad0ae26447b344c482a7284c737d9ddc5f9e52b74a336671bb" +checksum = "cd6dd8046d00723a59a2f8c5f295c515b9bb9a331ee4f8f3d4dd49e428acd3b6" dependencies = [ "chrono", "chrono-tz-build", @@ -407,12 +407,11 @@ dependencies = [ [[package]] name = "chrono-tz-build" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c088aee841df9c3041febbb73934cfc39708749bf96dc827e3359cd39ef11b1" +checksum = "e94fea34d77a245229e7746bd2beb786cd2a896f306ff491fb8cecb3074b10a7" dependencies = [ "parse-zoneinfo", - "phf", "phf_codegen", ] @@ -457,6 +456,16 @@ dependencies = [ "libc", ] +[[package]] +name = "core-foundation" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -465,9 +474,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ca741a962e1b0bff6d724a1a0958b686406e853bb14061f218562e1896f95e6" +checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" dependencies = [ "libc", ] @@ -483,18 +492,18 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.13" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" +checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-deque" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" dependencies = [ "crossbeam-epoch", "crossbeam-utils", @@ -511,18 +520,18 @@ dependencies = [ [[package]] name = "crossbeam-queue" -version = "0.3.11" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" +checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.20" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" @@ -557,7 +566,7 @@ checksum = "1234e1717066d3c71dcf89b75e7b586299e41204d361db56ec51e6ded5014279" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -580,7 +589,7 @@ dependencies = [ "ident_case", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -591,7 +600,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -645,7 +654,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -693,7 +702,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -714,7 +723,7 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -735,14 +744,14 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] name = "env_filter" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab" +checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" dependencies = [ "log", "regex", @@ -750,9 +759,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.5" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d" +checksum = "dcaee3d8e3cfc3fd92428d477bc97fc29ec8716d180c0d74c643bb26166660e0" dependencies = [ "anstream", "anstyle", @@ -769,9 +778,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "event-listener" -version = "5.3.1" +version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" +checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" dependencies = [ "concurrent-queue", "parking", @@ -780,9 +789,9 @@ dependencies = [ [[package]] name = "event-listener-strategy" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" +checksum = "3c3e4e0dd3673c1139bf041f3008816d9cf2946bbfac2945c09e523b8d7b05b2" dependencies = [ "event-listener", "pin-project-lite", @@ -790,9 +799,9 @@ dependencies = [ [[package]] name = "fdeflate" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07c6f4c64c1d33a3111c4466f7365ebdcc37c5bd1ea0d62aae2e3d722aacbedb" +checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" dependencies = [ "simd-adler32", ] @@ -867,6 +876,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" + [[package]] name = "form_urlencoded" version = "1.2.1" @@ -938,7 +953,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -982,9 +997,9 @@ dependencies = [ [[package]] name = "generator" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb949699c3e4df3a183b1d2142cb24277057055ed23c68ed58894f76c517223" +checksum = "cc6bd114ceda131d3b1d665eba35788690ad37f5916457286b32ab6fd3c438dd" dependencies = [ "cfg-if", "libc", @@ -1043,23 +1058,16 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +version = "0.15.1" +source = "git+https://github.com/rust-lang/hashbrown.git?rev=458e44532a65cf850bde3c22bd5d30a1ce2ed6af#458e44532a65cf850bde3c22bd5d30a1ce2ed6af" dependencies = [ - "ahash 0.8.11", "allocator-api2", "equivalent", + "foldhash", "rayon", "serde", ] -[[package]] -name = "hashbrown" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" - [[package]] name = "heck" version = "0.5.0" @@ -1089,9 +1097,9 @@ dependencies = [ [[package]] name = "hickory-proto" -version = "0.24.1" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07698b8420e2f0d6447a436ba999ec85d8fbf2a398bbd737b82cac4a2e96e512" +checksum = "447afdcdb8afb9d0a852af6dc65d9b285ce720ed7a59e42a8bf2e931c67bc1b5" dependencies = [ "async-trait", "cfg-if", @@ -1100,7 +1108,7 @@ dependencies = [ "futures-channel", "futures-io", "futures-util", - "idna 0.4.0", + "idna", "ipnet", "once_cell", "rand", @@ -1113,9 +1121,9 @@ dependencies = [ [[package]] name = "hickory-resolver" -version = "0.24.1" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28757f23aa75c98f254cf0405e6d8c25b831b32921b050a66692427679b1f243" +checksum = "0a2e2aba9c389ce5267d31cf1e4dace82390ae276b0b364ea55630b1fa1b44b4" dependencies = [ "cfg-if", "futures-util", @@ -1145,9 +1153,9 @@ dependencies = [ [[package]] name = "http" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" dependencies = [ "bytes", "fnv", @@ -1191,9 +1199,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "1.5.0" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" +checksum = "256fb8d4bd6413123cc9d91832d78325c48ff41677595be797d90f42969beae0" dependencies = [ "bytes", "futures-channel", @@ -1210,16 +1218,16 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.3" +version = "0.27.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" +checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" dependencies = [ "futures-util", "http", "hyper", "hyper-util", "rustls", - "rustls-native-certs 0.8.0", + "rustls-native-certs 0.8.1", "rustls-pki-types", "tokio", "tokio-rustls", @@ -1383,7 +1391,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -1392,16 +1400,6 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" -[[package]] -name = "idna" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - [[package]] name = "idna" version = "1.0.3" @@ -1439,9 +1437,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" +checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" dependencies = [ "equivalent", "hashbrown 0.15.1", @@ -1507,9 +1505,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "jni" @@ -1533,10 +1531,11 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "js-sys" -version = "0.3.72" +version = "0.3.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" +checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -1571,9 +1570,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.162" +version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18d287de67fe55fd7e1581fe933d965a5a9477b38e949cfa9f8574ef01506398" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "libredox" @@ -1593,9 +1592,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "litemap" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" [[package]] name = "lock_api" @@ -1671,9 +1670,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" dependencies = [ "adler2", "simd-adler32", @@ -1687,11 +1686,10 @@ checksum = "e53debba6bda7a793e5f99b8dacf19e626084f525f7829104ba9898f367d85ff" [[package]] name = "mio" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ - "hermit-abi", "libc", "wasi", "windows-sys 0.52.0", @@ -1790,7 +1788,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -1845,9 +1843,9 @@ dependencies = [ [[package]] name = "object" -version = "0.36.5" +version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" dependencies = [ "memchr", ] @@ -1866,9 +1864,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "ordered-float" -version = "4.5.0" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c65ee1f9701bf938026630b455d5315f490640234259037edb259798b3bcf85e" +checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951" dependencies = [ "num-traits", ] @@ -1931,18 +1929,18 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "phf" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" dependencies = [ "phf_shared", ] [[package]] name = "phf_codegen" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a" +checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" dependencies = [ "phf_generator", "phf_shared", @@ -1950,9 +1948,9 @@ dependencies = [ [[package]] name = "phf_generator" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" dependencies = [ "phf_shared", "rand", @@ -1960,18 +1958,18 @@ dependencies = [ [[package]] name = "phf_shared" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" dependencies = [ "siphasher", ] [[package]] name = "pin-project-lite" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "pin-utils" @@ -1981,9 +1979,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "png" -version = "0.17.14" +version = "0.17.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52f9d46a34a05a6a57566bc2bfae066ef07585a6e3fa30fbbdff5936380623f0" +checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" dependencies = [ "bitflags 1.3.2", "crc32fast", @@ -2015,9 +2013,9 @@ checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086" [[package]] name = "proc-macro2" -version = "1.0.89" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] @@ -2052,10 +2050,10 @@ dependencies = [ "pin-project-lite", "quinn-proto", "quinn-udp", - "rustc-hash 2.0.0", + "rustc-hash 2.1.0", "rustls", "socket2", - "thiserror 2.0.3", + "thiserror 2.0.10", "tokio", "tracing", ] @@ -2070,12 +2068,12 @@ dependencies = [ "getrandom", "rand", "ring", - "rustc-hash 2.0.0", + "rustc-hash 2.1.0", "rustls", "rustls-pki-types", "rustls-platform-verifier", "slab", - "thiserror 2.0.3", + "thiserror 2.0.10", "tinyvec", "tracing", "web-time", @@ -2083,9 +2081,9 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.7" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d5a626c6807713b15cac82a6acaccd6043c9a5408c24baae07611fec3f243da" +checksum = "1c40286217b4ba3a71d644d752e6a0b71f13f1b6a2c5311acfcbe0c2418ed904" dependencies = [ "cfg_aliases", "libc", @@ -2097,9 +2095,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.37" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -2171,9 +2169,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" +checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ "bitflags 2.6.0", ] @@ -2286,9 +2284,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustc-hash" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" +checksum = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497" [[package]] name = "rustc_version" @@ -2301,9 +2299,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.16" +version = "0.23.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eee87ff5d9b36712a58574e12e9f0ea80f915a5b0ac518d322b24a465617925e" +checksum = "5065c3f250cbd332cd894be57c40fa52387247659b14a2d6041d121547903b1b" dependencies = [ "once_cell", "ring", @@ -2323,20 +2321,19 @@ dependencies = [ "rustls-pemfile", "rustls-pki-types", "schannel", - "security-framework", + "security-framework 2.11.1", ] [[package]] name = "rustls-native-certs" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcaf18a4f2be7326cd874a5fa579fae794320a0f388d365dca7e480e55f83f8a" +checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" dependencies = [ "openssl-probe", - "rustls-pemfile", "rustls-pki-types", "schannel", - "security-framework", + "security-framework 3.2.0", ] [[package]] @@ -2350,9 +2347,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.10.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" +checksum = "d2bf47e6ff922db3825eb750c4e2ff784c6ff8fb9e13046ef6a1d1c5401b0b37" dependencies = [ "web-time", ] @@ -2363,7 +2360,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4c7dc240fec5517e6c4eab3310438636cfe6391dfc345ba013109909a90d136" dependencies = [ - "core-foundation", + "core-foundation 0.9.4", "core-foundation-sys", "jni", "log", @@ -2372,7 +2369,7 @@ dependencies = [ "rustls-native-certs 0.7.3", "rustls-platform-verifier-android", "rustls-webpki", - "security-framework", + "security-framework 2.11.1", "security-framework-sys", "webpki-root-certs", "windows-sys 0.52.0", @@ -2397,9 +2394,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" +checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" [[package]] name = "ryu" @@ -2418,9 +2415,9 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01227be5826fa0690321a2ba6c5cd57a19cf3f6a09e76973b58e61de6ab9d1c1" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" dependencies = [ "windows-sys 0.59.0", ] @@ -2438,7 +2435,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ "bitflags 2.6.0", - "core-foundation", + "core-foundation 0.9.4", "core-foundation-sys", "libc", "num-bigint", @@ -2446,10 +2443,23 @@ dependencies = [ ] [[package]] -name = "security-framework-sys" -version = "2.12.1" +name = "security-framework" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2" +checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" +dependencies = [ + "bitflags 2.6.0", + "core-foundation 0.10.0", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" dependencies = [ "core-foundation-sys", "libc", @@ -2461,46 +2471,46 @@ version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e14e4d63b804dc0c7ec4a1e52bcb63f02c7ac94476755aa579edac21e01f915d" dependencies = [ - "self_cell 1.0.4", + "self_cell 1.1.0", ] [[package]] name = "self_cell" -version = "1.0.4" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d369a96f978623eb3dc28807c4852d6cc617fed53da5d3c400feff1ef34a714a" +checksum = "c2fdfc24bc566f839a2da4c4295b82db7d25a24253867d5c64355abb5799bdbe" [[package]] name = "semver" -version = "1.0.23" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" [[package]] name = "serde" -version = "1.0.215" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.215" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] name = "serde_json" -version = "1.0.132" +version = "1.0.135" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" +checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" dependencies = [ "itoa", "memchr", @@ -2516,7 +2526,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -2594,9 +2604,9 @@ checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" [[package]] name = "siphasher" -version = "0.3.11" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" [[package]] name = "slab" @@ -2625,9 +2635,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "socket2" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" dependencies = [ "libc", "windows-sys 0.52.0", @@ -2675,9 +2685,9 @@ checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" [[package]] name = "spin_sleep" -version = "1.2.1" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64bd7227d85bfd1b8df51e0d83da36d9baaee85eb75730386ef8e3ab6f2a2ea3" +checksum = "4196b31c8c1dc443543be4f4d0e827657fbf2b87387e5c8f229b14f1c046718a" dependencies = [ "windows-sys 0.59.0", ] @@ -2713,7 +2723,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -2741,9 +2751,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.87" +version = "2.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" +checksum = "46f71c0377baf4ef1cc3e3402ded576dccc315800fbc62dfc7fe04b009773b4a" dependencies = [ "proc-macro2", "quote", @@ -2758,7 +2768,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -2778,11 +2788,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.3" +version = "2.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa" +checksum = "a3ac7f54ca534db81081ef1c1e7f6ea8a3ef428d2fc069097c079443d24124d3" dependencies = [ - "thiserror-impl 2.0.3", + "thiserror-impl 2.0.10", ] [[package]] @@ -2793,18 +2803,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] name = "thiserror-impl" -version = "2.0.3" +version = "2.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" +checksum = "9e9465d30713b56a37ede7185763c3492a91be2f5fa68d958c44e41ab9248beb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -2838,9 +2848,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" +checksum = "022db8904dfa342efe721985167e9fcd16c29b226db4397ed752a761cfce81e8" dependencies = [ "tinyvec_macros", ] @@ -2853,9 +2863,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.41.1" +version = "1.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" +checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e" dependencies = [ "backtrace", "bytes", @@ -2869,31 +2879,30 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] name = "tokio-rustls" -version = "0.26.0" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" dependencies = [ "rustls", - "rustls-pki-types", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" dependencies = [ "futures-core", "pin-project-lite", @@ -2942,9 +2951,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "log", "pin-project-lite", @@ -2954,20 +2963,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", "valuable", @@ -2986,9 +2995,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.18" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" dependencies = [ "nu-ansi-term", "sharded-slab", @@ -3003,7 +3012,7 @@ name = "trade-bot" version = "0.1.0" dependencies = [ "env_logger", - "hashbrown 0.14.5", + "hashbrown 0.15.1", "log", "serde", "tokio", @@ -3086,26 +3095,11 @@ dependencies = [ "tinystr", ] -[[package]] -name = "unicode-bidi" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" - [[package]] name = "unicode-ident" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" - -[[package]] -name = "unicode-normalization" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" -dependencies = [ - "tinyvec", -] +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "untrusted" @@ -3115,12 +3109,12 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.3" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", - "idna 1.0.3", + "idna", "percent-encoding", ] @@ -3174,12 +3168,12 @@ dependencies = [ [[package]] name = "veloren-client" -version = "0.16.0" -source = "git+https://gitlab.com/veloren/veloren?tag=weekly#57ed7d762c4f93e58db96c7c28171787e1d9b700" +version = "0.17.0" +source = "git+https://gitlab.com/veloren/veloren?tag=weekly#e8b92888ea8d349c8ab4fdff398b31f9cf92c0eb" dependencies = [ "authc", "byteorder", - "hashbrown 0.14.5", + "hashbrown 0.15.1", "hickory-resolver", "image", "num", @@ -3201,13 +3195,13 @@ dependencies = [ [[package]] name = "veloren-client-i18n" version = "0.13.0" -source = "git+https://gitlab.com/veloren/veloren?tag=weekly#57ed7d762c4f93e58db96c7c28171787e1d9b700" +source = "git+https://gitlab.com/veloren/veloren?tag=weekly#e8b92888ea8d349c8ab4fdff398b31f9cf92c0eb" dependencies = [ "deunicode", "fluent", "fluent-bundle", "fluent-syntax", - "hashbrown 0.14.5", + "hashbrown 0.15.1", "intl-memoizer", "serde", "tracing", @@ -3219,7 +3213,7 @@ dependencies = [ [[package]] name = "veloren-common" version = "0.10.0" -source = "git+https://gitlab.com/veloren/veloren?tag=weekly#57ed7d762c4f93e58db96c7c28171787e1d9b700" +source = "git+https://gitlab.com/veloren/veloren?tag=weekly#e8b92888ea8d349c8ab4fdff398b31f9cf92c0eb" dependencies = [ "approx", "bitflags 2.6.0", @@ -3229,7 +3223,7 @@ dependencies = [ "dot_vox", "enum-map", "fxhash", - "hashbrown 0.14.5", + "hashbrown 0.15.1", "indexmap", "itertools", "lazy_static", @@ -3259,11 +3253,11 @@ dependencies = [ [[package]] name = "veloren-common-assets" version = "0.10.0" -source = "git+https://gitlab.com/veloren/veloren?tag=weekly#57ed7d762c4f93e58db96c7c28171787e1d9b700" +source = "git+https://gitlab.com/veloren/veloren?tag=weekly#e8b92888ea8d349c8ab4fdff398b31f9cf92c0eb" dependencies = [ "assets_manager", "dot_vox", - "hashbrown 0.14.5", + "hashbrown 0.15.1", "image", "lazy_static", "ron", @@ -3274,7 +3268,7 @@ dependencies = [ [[package]] name = "veloren-common-base" version = "0.10.0" -source = "git+https://gitlab.com/veloren/veloren?tag=weekly#57ed7d762c4f93e58db96c7c28171787e1d9b700" +source = "git+https://gitlab.com/veloren/veloren?tag=weekly#e8b92888ea8d349c8ab4fdff398b31f9cf92c0eb" dependencies = [ "directories-next", "tracing", @@ -3283,7 +3277,7 @@ dependencies = [ [[package]] name = "veloren-common-ecs" version = "0.10.0" -source = "git+https://gitlab.com/veloren/veloren?tag=weekly#57ed7d762c4f93e58db96c7c28171787e1d9b700" +source = "git+https://gitlab.com/veloren/veloren?tag=weekly#e8b92888ea8d349c8ab4fdff398b31f9cf92c0eb" dependencies = [ "specs", "tracing", @@ -3293,9 +3287,9 @@ dependencies = [ [[package]] name = "veloren-common-i18n" version = "0.1.0" -source = "git+https://gitlab.com/veloren/veloren?tag=weekly#57ed7d762c4f93e58db96c7c28171787e1d9b700" +source = "git+https://gitlab.com/veloren/veloren?tag=weekly#e8b92888ea8d349c8ab4fdff398b31f9cf92c0eb" dependencies = [ - "hashbrown 0.14.5", + "hashbrown 0.15.1", "rand", "serde", ] @@ -3303,11 +3297,11 @@ dependencies = [ [[package]] name = "veloren-common-net" version = "0.10.0" -source = "git+https://gitlab.com/veloren/veloren?tag=weekly#57ed7d762c4f93e58db96c7c28171787e1d9b700" +source = "git+https://gitlab.com/veloren/veloren?tag=weekly#e8b92888ea8d349c8ab4fdff398b31f9cf92c0eb" dependencies = [ "bincode", "flate2", - "hashbrown 0.14.5", + "hashbrown 0.15.1", "image", "num-traits", "serde", @@ -3321,12 +3315,12 @@ dependencies = [ [[package]] name = "veloren-common-state" version = "0.10.0" -source = "git+https://gitlab.com/veloren/veloren?tag=weekly#57ed7d762c4f93e58db96c7c28171787e1d9b700" +source = "git+https://gitlab.com/veloren/veloren?tag=weekly#e8b92888ea8d349c8ab4fdff398b31f9cf92c0eb" dependencies = [ "async-trait", "bytes", "futures", - "hashbrown 0.14.5", + "hashbrown 0.15.1", "num_cpus", "rayon", "scopeguard", @@ -3343,7 +3337,7 @@ dependencies = [ [[package]] name = "veloren-common-systems" version = "0.10.0" -source = "git+https://gitlab.com/veloren/veloren?tag=weekly#57ed7d762c4f93e58db96c7c28171787e1d9b700" +source = "git+https://gitlab.com/veloren/veloren?tag=weekly#e8b92888ea8d349c8ab4fdff398b31f9cf92c0eb" dependencies = [ "itertools", "ordered-float", @@ -3361,7 +3355,7 @@ dependencies = [ [[package]] name = "veloren-network" version = "0.3.0" -source = "git+https://gitlab.com/veloren/veloren?tag=weekly#57ed7d762c4f93e58db96c7c28171787e1d9b700" +source = "git+https://gitlab.com/veloren/veloren?tag=weekly#e8b92888ea8d349c8ab4fdff398b31f9cf92c0eb" dependencies = [ "async-channel", "async-trait", @@ -3369,7 +3363,7 @@ dependencies = [ "bytes", "crossbeam-channel", "futures-util", - "hashbrown 0.14.5", + "hashbrown 0.15.1", "lazy_static", "lz-fear", "quinn", @@ -3386,12 +3380,12 @@ dependencies = [ [[package]] name = "veloren-network-protocol" version = "0.6.1" -source = "git+https://gitlab.com/veloren/veloren?tag=weekly#57ed7d762c4f93e58db96c7c28171787e1d9b700" +source = "git+https://gitlab.com/veloren/veloren?tag=weekly#e8b92888ea8d349c8ab4fdff398b31f9cf92c0eb" dependencies = [ "async-trait", "bitflags 2.6.0", "bytes", - "hashbrown 0.14.5", + "hashbrown 0.15.1", "prometheus", "rand", "tracing", @@ -3400,7 +3394,7 @@ dependencies = [ [[package]] name = "veloren-world" version = "0.10.0" -source = "git+https://gitlab.com/veloren/veloren?tag=weekly#57ed7d762c4f93e58db96c7c28171787e1d9b700" +source = "git+https://gitlab.com/veloren/veloren?tag=weekly#e8b92888ea8d349c8ab4fdff398b31f9cf92c0eb" dependencies = [ "arr_macro", "bincode", @@ -3409,7 +3403,7 @@ dependencies = [ "enumset", "fixed", "fxhash", - "hashbrown 0.14.5", + "hashbrown 0.15.1", "image", "itertools", "kiddo", @@ -3463,9 +3457,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.95" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" +checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" dependencies = [ "cfg-if", "once_cell", @@ -3474,24 +3468,23 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.95" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" +checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.95" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" +checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3499,22 +3492,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.95" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" +checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.95" +version = "0.2.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" +checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" [[package]] name = "wavefront" @@ -3537,9 +3530,9 @@ dependencies = [ [[package]] name = "webpki-root-certs" -version = "0.26.6" +version = "0.26.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c6dfa3ac045bc517de14c7b1384298de1dbd229d38e08e169d9ae8c170937c" +checksum = "9cd5da49bdf1f30054cfe0b8ce2958b8fbeb67c4d82c8967a598af481bef255c" dependencies = [ "rustls-pki-types", ] @@ -3621,7 +3614,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -3632,7 +3625,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -3804,9 +3797,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.6.20" +version = "0.6.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" +checksum = "39281189af81c07ec09db316b302a3e67bf9bd7cbf6c820b50e35fee9c2fa980" dependencies = [ "memchr", ] @@ -3844,9 +3837,9 @@ dependencies = [ [[package]] name = "yoke" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" dependencies = [ "serde", "stable_deref_trait", @@ -3856,13 +3849,13 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", "synstructure", ] @@ -3884,27 +3877,27 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] name = "zerofrom" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", "synstructure", ] @@ -3933,7 +3926,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.95", ] [[package]] @@ -3944,9 +3937,9 @@ checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a" [[package]] name = "zune-jpeg" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16099418600b4d8f028622f73ff6e3deaabdff330fb9a2a131dea781ee8b0768" +checksum = "99a5bab8d7dedf81405c4bb1f2b83ea057643d9cb28778cea9eecddeedd2e028" dependencies = [ "zune-core", ] diff --git a/Cargo.toml b/Cargo.toml index 0d87817..ad5285e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,7 +17,8 @@ serde = { version = "1.0.203", features = ["derive"] } log = "0.4.22" env_logger = "0.11.3" vek = { version = "0.17.0", features = ["repr_simd"] } -hashbrown = { version = "0.14.5", features = ["equivalent"] } +hashbrown = { version = "0.15.1", features = ["equivalent"] } [patch.crates-io] specs = { git = "https://github.com/amethyst/specs.git", rev = "4e2da1df29ee840baa9b936593c45592b7c9ae27" } +hashbrown = { git = "https://github.com/rust-lang/hashbrown.git", rev = "458e44532a65cf850bde3c22bd5d30a1ce2ed6af"} diff --git a/assets/common/abilities/ability_set_manifest.ron b/assets/common/abilities/ability_set_manifest.ron index 6c2e41a..145efd3 100644 --- a/assets/common/abilities/ability_set_manifest.ron +++ b/assets/common/abilities/ability_set_manifest.ron @@ -131,7 +131,7 @@ pseudo_id: "common.abilities.sword.agile_flurry", abilities: [ ((stance: Sword(Agile), dual_wielding_same_kind: true), (Sword(AgileFlurry), "common.abilities.sword.agile_dual_flurry")), - ((stance: Sword(Agile)), (Sword(AgileFlurry), "common.abilities.sword.agile_flurry")), + ((), (Sword(AgileFlurry), "common.abilities.sword.agile_flurry")), ], ), Simple(Sword(DefensiveStalwartSword), "common.abilities.sword.defensive_stalwart_sword"), @@ -923,18 +923,18 @@ Simple(None, "common.abilities.custom.gigas_frost.whirlwind"), ], ), - Custom("Boreal Bow"): ( - primary: Simple(None, "common.abilities.custom.boreal_warrior.bow.charged"), - secondary: Simple(None, "common.abilities.custom.boreal_warrior.bow.repeater"), - abilities: [ - Simple(None, "common.abilities.custom.boreal_warrior.bow.shotgun") - ], - ), Custom("Boreal Hammer"): ( primary: Simple(None, "common.abilities.custom.boreal_warrior.hammer.singlestrike"), secondary: Simple(None, "common.abilities.custom.boreal_warrior.hammer.dash"), abilities: [ - Simple(None, "common.abilities.custom.boreal_warrior.hammer.leap") + Simple(None, "common.abilities.custom.boreal_warrior.hammer.leap"), + ], + ), + Custom("Boreal Bow"): ( + primary: Simple(None, "common.abilities.custom.boreal_warrior.bow.doublestrike"), + secondary: Simple(None, "common.abilities.custom.boreal_warrior.bow.shotgun"), + abilities: [ + Simple(None, "common.abilities.custom.boreal_warrior.bow.trap"), ], ), Custom("Tornado"): ( @@ -1031,7 +1031,12 @@ primary: Simple(None, "common.abilities.music.kora"), secondary: Simple(None, "common.abilities.music.kora"), abilities: [], - ), + ), + Custom("Banjo"): ( + primary: Simple(None, "common.abilities.music.banjo"), + secondary: Simple(None, "common.abilities.music.banjo"), + abilities: [], + ), Tool(Debug): ( primary: Simple(None, "common.abilities.debug.forwardboost"), secondary: Simple(None, "common.abilities.debug.upboost"), diff --git a/assets/common/abilities/adlet/elder/leap.ron b/assets/common/abilities/adlet/elder/leap.ron index bf0436f..cc89811 100644 --- a/assets/common/abilities/adlet/elder/leap.ron +++ b/assets/common/abilities/adlet/elder/leap.ron @@ -6,7 +6,7 @@ LeapMelee( recover_duration: 0.2, melee_constructor: ( kind: Bash( - damage: 25.0, + damage: 19.0, poise: 40.0, knockback: 25.0, energy_regen: 0.0, @@ -22,6 +22,6 @@ LeapMelee( ))), ), forward_leap_strength: 30.0, - vertical_leap_strength: 15.0, + vertical_leap_strength: 7.0, specifier: Some(LeapWhoosh), ) diff --git a/assets/common/abilities/adlet/elder/triplestrike.ron b/assets/common/abilities/adlet/elder/triplestrike.ron index 0836dae..f396ecc 100644 --- a/assets/common/abilities/adlet/elder/triplestrike.ron +++ b/assets/common/abilities/adlet/elder/triplestrike.ron @@ -51,7 +51,7 @@ ComboMelee2( buildup_duration: 0.85, swing_duration: 0.35, hit_timing: 0.5, - recover_duration: 0.4, + recover_duration: 0.5, movement: ( swing: Some(Forward(0.5)), ), diff --git a/assets/common/abilities/adlet/hunter/stab.ron b/assets/common/abilities/adlet/hunter/stab.ron index 6ad047c..2e69010 100644 --- a/assets/common/abilities/adlet/hunter/stab.ron +++ b/assets/common/abilities/adlet/hunter/stab.ron @@ -1,7 +1,7 @@ BasicMelee( energy_cost: 0, - buildup_duration: 0.4, - swing_duration: 0.2, + buildup_duration: 0.6, + swing_duration: 0.3, hit_timing: 0.8, recover_duration: 0.4, melee_constructor: ( diff --git a/assets/common/abilities/adlet/hunter/throw.ron b/assets/common/abilities/adlet/hunter/throw.ron index b40c78d..ddcdcba 100644 --- a/assets/common/abilities/adlet/hunter/throw.ron +++ b/assets/common/abilities/adlet/hunter/throw.ron @@ -5,7 +5,7 @@ BasicRanged( projectile: ( kind: Pointed, attack: Some(( - damage: 16, + damage: 14, knockback: Some(1), energy: 0, buff: Some(( diff --git a/assets/common/abilities/adlet/icepicker/leap.ron b/assets/common/abilities/adlet/icepicker/leap.ron index 484f3ce..6d8e0aa 100644 --- a/assets/common/abilities/adlet/icepicker/leap.ron +++ b/assets/common/abilities/adlet/icepicker/leap.ron @@ -1,12 +1,12 @@ LeapMelee( energy_cost: 0.0, - buildup_duration: 0.6, + buildup_duration: 0.8, movement_duration: 0.2, swing_duration: 0.1, recover_duration: 0.3, melee_constructor: ( kind: Stab( - damage: 20, + damage: 11, poise: 20, knockback: 0, energy_regen: 0, diff --git a/assets/common/abilities/adlet/icepicker/spike.ron b/assets/common/abilities/adlet/icepicker/spike.ron index dd0c7d0..09700b9 100644 --- a/assets/common/abilities/adlet/icepicker/spike.ron +++ b/assets/common/abilities/adlet/icepicker/spike.ron @@ -6,7 +6,7 @@ BasicMelee( recover_duration: 0.45, melee_constructor: ( kind: Stab( - damage: 12, + damage: 8, poise: 10, knockback: 0, energy_regen: 0, diff --git a/assets/common/abilities/adlet/tracker/arrow.ron b/assets/common/abilities/adlet/tracker/arrow.ron index 4446ee0..17645f3 100644 --- a/assets/common/abilities/adlet/tracker/arrow.ron +++ b/assets/common/abilities/adlet/tracker/arrow.ron @@ -1,11 +1,11 @@ BasicRanged( energy_cost: 0, - buildup_duration: 0.6, + buildup_duration: 1.0, recover_duration: 0.4, projectile: ( kind: Pointed, attack: Some(( - damage: 12, + damage: 6, energy: 0, buff: Some(( kind: Bleeding, diff --git a/assets/common/abilities/adlet/tracker/trap.ron b/assets/common/abilities/adlet/tracker/trap.ron index 26fb914..c6edeab 100644 --- a/assets/common/abilities/adlet/tracker/trap.ron +++ b/assets/common/abilities/adlet/tracker/trap.ron @@ -8,7 +8,7 @@ BasicRanged( duration: 10, ), attack: Some(( - damage: 12, + damage: 8, energy: 0, )), ), diff --git a/assets/common/abilities/axe/adrenaline_rush.ron b/assets/common/abilities/axe/adrenaline_rush.ron index 6425755..e1c0259 100644 --- a/assets/common/abilities/axe/adrenaline_rush.ron +++ b/assets/common/abilities/axe/adrenaline_rush.ron @@ -4,7 +4,7 @@ SelfBuff( recover_duration: 0.2, buff_kind: EnergyRegen, buff_strength: 0.1, - buff_duration: Some(10.0), + buff_duration: Some(15.0), combo_cost: 1, combo_scaling: Some(Linear), energy_cost: 0, diff --git a/assets/common/abilities/axe/basic_guard.ron b/assets/common/abilities/axe/basic_guard.ron index 79e67f1..41b5938 100644 --- a/assets/common/abilities/axe/basic_guard.ron +++ b/assets/common/abilities/axe/basic_guard.ron @@ -1,8 +1,8 @@ BasicBlock( buildup_duration: 0.25, - recover_duration: 0.2, + recover_duration: 0.4, max_angle: 60.0, - block_strength: 5.0, + block_strength: 2.25, parry_window: ( buildup: true, recover: false, diff --git a/assets/common/abilities/axe/berserk.ron b/assets/common/abilities/axe/berserk.ron index 3e093ca..e584966 100644 --- a/assets/common/abilities/axe/berserk.ron +++ b/assets/common/abilities/axe/berserk.ron @@ -3,8 +3,8 @@ SelfBuff( cast_duration: 0.2, recover_duration: 0.1, buff_kind: Berserk, - buff_strength: 0.5, - buff_duration: Some(15.0), + buff_strength: 0.3, + buff_duration: Some(20.0), combo_cost: 10, energy_cost: 0, ) diff --git a/assets/common/abilities/axe/bloodfeast.ron b/assets/common/abilities/axe/bloodfeast.ron index ead722a..cea5310 100644 --- a/assets/common/abilities/axe/bloodfeast.ron +++ b/assets/common/abilities/axe/bloodfeast.ron @@ -4,7 +4,7 @@ SelfBuff( recover_duration: 0.1, buff_kind: Bloodfeast, buff_strength: 0.1, - buff_duration: Some(15.0), + buff_duration: Some(20.0), energy_cost: 0, combo_cost: 10, ) diff --git a/assets/common/abilities/axe/brutal_swing.ron b/assets/common/abilities/axe/brutal_swing.ron index af92e0a..58852ac 100644 --- a/assets/common/abilities/axe/brutal_swing.ron +++ b/assets/common/abilities/axe/brutal_swing.ron @@ -8,14 +8,14 @@ ComboMelee2( knockback: 0, energy_regen: 0, ), - range: 3.0, + range: 4.0, angle: 360.0, multi_target: Some(Normal), ), buildup_duration: 0.2, swing_duration: 0.2, hit_timing: 0.5, - recover_duration: 0.3, + recover_duration: 0.4, ori_modifier: 0.6, ), ], diff --git a/assets/common/abilities/axe/bulkhead.ron b/assets/common/abilities/axe/bulkhead.ron index 2a95c1d..8ba77a7 100644 --- a/assets/common/abilities/axe/bulkhead.ron +++ b/assets/common/abilities/axe/bulkhead.ron @@ -4,8 +4,8 @@ FinisherMelee( swing_duration: 0.2, recover_duration: 0.4, melee_constructor: ( - kind: Slash( - damage: 40, + kind: Bash( + damage: 45, poise: 100, knockback: 0, energy_regen: 0, diff --git a/assets/common/abilities/axe/capsize.ron b/assets/common/abilities/axe/capsize.ron index 8b5ebe6..45b391d 100644 --- a/assets/common/abilities/axe/capsize.ron +++ b/assets/common/abilities/axe/capsize.ron @@ -4,8 +4,8 @@ FinisherMelee( swing_duration: 0.3, recover_duration: 0.4, melee_constructor: ( - kind: Slash( - damage: 40, + kind: Bash( + damage: 45, poise: 100, knockback: 0, energy_regen: 0, diff --git a/assets/common/abilities/axe/cleave.ron b/assets/common/abilities/axe/cleave.ron index 944a036..3e283cb 100644 --- a/assets/common/abilities/axe/cleave.ron +++ b/assets/common/abilities/axe/cleave.ron @@ -18,9 +18,9 @@ ChargedMelee( range: 4.5, angle: 10.0, ), - charge_duration: 0.7, + charge_duration: 0.6, swing_duration: 0.1, hit_timing: 0.2, recover_duration: 0.2, - custom_combo: Some((additional: 4)), + custom_combo: (base: Some(4)), ) diff --git a/assets/common/abilities/axe/defiance.ron b/assets/common/abilities/axe/defiance.ron index ad5fc6d..d88a99e 100644 --- a/assets/common/abilities/axe/defiance.ron +++ b/assets/common/abilities/axe/defiance.ron @@ -3,7 +3,7 @@ SelfBuff( cast_duration: 1.0, recover_duration: 0.1, buff_kind: Defiance, - buff_strength: 1.0, + buff_strength: 0.65, buff_duration: Some(8.0), energy_cost: 20, enforced_limit: false, diff --git a/assets/common/abilities/axe/dual_fierce_raze.ron b/assets/common/abilities/axe/dual_fierce_raze.ron index 790ac59..989ca78 100644 --- a/assets/common/abilities/axe/dual_fierce_raze.ron +++ b/assets/common/abilities/axe/dual_fierce_raze.ron @@ -9,12 +9,12 @@ RapidMelee( knockback: 0, energy_regen: 0, ), - range: 6.0, + range: 4.0, angle: 10.0, simultaneous_hits: 2, ), energy_cost: 8, - max_strikes: Some(5), + max_strikes: Some(4), move_modifier: 0.35, ori_modifier: 0.25, ) diff --git a/assets/common/abilities/axe/execute.ron b/assets/common/abilities/axe/execute.ron index f67849c..3fa2e70 100644 --- a/assets/common/abilities/axe/execute.ron +++ b/assets/common/abilities/axe/execute.ron @@ -5,7 +5,7 @@ FinisherMelee( recover_duration: 0.4, melee_constructor: ( kind: Slash( - damage: 60, + damage: 70, poise: 20, knockback: 0, energy_regen: 0, diff --git a/assets/common/abilities/axe/fierce_raze.ron b/assets/common/abilities/axe/fierce_raze.ron index 84291ca..113028c 100644 --- a/assets/common/abilities/axe/fierce_raze.ron +++ b/assets/common/abilities/axe/fierce_raze.ron @@ -9,11 +9,11 @@ RapidMelee( knockback: 0, energy_regen: 0, ), - range: 6.0, + range: 5.0, angle: 10.0, ), energy_cost: 4, - max_strikes: Some(5), + max_strikes: Some(4), move_modifier: 0.35, ori_modifier: 0.25, ) diff --git a/assets/common/abilities/axe/fracture.ron b/assets/common/abilities/axe/fracture.ron index cd30bcd..af7359b 100644 --- a/assets/common/abilities/axe/fracture.ron +++ b/assets/common/abilities/axe/fracture.ron @@ -15,7 +15,7 @@ FinisherMelee( damage_effect: Some(Buff(( kind: Crippled, dur_secs: 10.0, - strength: Value(0.1), + strength: Value(0.05), chance: 1.0, ))), ), diff --git a/assets/common/abilities/axe/furor.ron b/assets/common/abilities/axe/furor.ron index 0847421..fbb1fb1 100644 --- a/assets/common/abilities/axe/furor.ron +++ b/assets/common/abilities/axe/furor.ron @@ -4,7 +4,7 @@ SelfBuff( recover_duration: 0.2, buff_kind: Fury, buff_strength: 1.0, - buff_duration: Some(15.0), + buff_duration: Some(20.0), energy_cost: 20, enforced_limit: false, ) diff --git a/assets/common/abilities/axe/lacerate.ron b/assets/common/abilities/axe/lacerate.ron index 35407c5..6288e0f 100644 --- a/assets/common/abilities/axe/lacerate.ron +++ b/assets/common/abilities/axe/lacerate.ron @@ -5,7 +5,7 @@ FinisherMelee( recover_duration: 0.5, melee_constructor: ( kind: Slash( - damage: 10, + damage: 8, poise: 5, knockback: 0, energy_regen: 0, @@ -14,7 +14,7 @@ FinisherMelee( angle: 45.0, damage_effect: Some(Buff(( kind: Bleeding, - dur_secs: 5.0, + dur_secs: 8.0, strength: DamageFraction(1.0), chance: 1.0, ))), diff --git a/assets/common/abilities/axe/maelstrom.ron b/assets/common/abilities/axe/maelstrom.ron index aa7084b..c4d58f3 100644 --- a/assets/common/abilities/axe/maelstrom.ron +++ b/assets/common/abilities/axe/maelstrom.ron @@ -5,7 +5,7 @@ FinisherMelee( recover_duration: 0.2, melee_constructor: ( kind: Slash( - damage: 60, + damage: 70, poise: 20, knockback: 0, energy_regen: 0, diff --git a/assets/common/abilities/axe/plunder.ron b/assets/common/abilities/axe/plunder.ron index e46aafe..58ec0cd 100644 --- a/assets/common/abilities/axe/plunder.ron +++ b/assets/common/abilities/axe/plunder.ron @@ -8,7 +8,7 @@ ComboMelee2( knockback: 10, energy_regen: 0, ), - range: 2.5, + range: 3.0, angle: 60.0, ), buildup_duration: 0.1, @@ -20,8 +20,11 @@ ComboMelee2( swing: Some(Forward(0.7)), ), ori_modifier: 0.6, - custom_combo: Some((additional: 4)), + custom_combo: ( + base: Some(3), + conditional: Some((3, TargetPoised)), + ), ), ], energy_cost_per_strike: 10, -) \ No newline at end of file +) diff --git a/assets/common/abilities/axe/riptide.ron b/assets/common/abilities/axe/riptide.ron index f6699b4..12124d9 100644 --- a/assets/common/abilities/axe/riptide.ron +++ b/assets/common/abilities/axe/riptide.ron @@ -5,7 +5,7 @@ FinisherMelee( recover_duration: 0.5, melee_constructor: ( kind: Slash( - damage: 10, + damage: 8, poise: 5, knockback: 0, energy_regen: 0, @@ -15,7 +15,7 @@ FinisherMelee( multi_target: Some(Normal), damage_effect: Some(Buff(( kind: Bleeding, - dur_secs: 5.0, + dur_secs: 8.0, strength: DamageFraction(1.0), chance: 1.0, ))), diff --git a/assets/common/abilities/axe/rising_tide.ron b/assets/common/abilities/axe/rising_tide.ron index c60e22d..cd5b33c 100644 --- a/assets/common/abilities/axe/rising_tide.ron +++ b/assets/common/abilities/axe/rising_tide.ron @@ -11,13 +11,16 @@ ComboMelee2( range: 3.0, angle: 45.0, ), - buildup_duration: 0.25, + buildup_duration: 0.2, swing_duration: 0.1, hit_timing: 0.5, - recover_duration: 0.3, + recover_duration: 0.25, ori_modifier: 0.6, - custom_combo: Some((additional: 4)), + custom_combo: ( + base: Some(3), + conditional: Some((3, TargetHasBuff(Bleeding))), + ), ), ], energy_cost_per_strike: 10, -) \ No newline at end of file +) diff --git a/assets/common/abilities/axe/skull_bash.ron b/assets/common/abilities/axe/skull_bash.ron index 3802b50..ab5c00a 100644 --- a/assets/common/abilities/axe/skull_bash.ron +++ b/assets/common/abilities/axe/skull_bash.ron @@ -3,18 +3,18 @@ ComboMelee2( ( melee_constructor: ( kind: Bash( - damage: 15, - poise: 50, + damage: 14, + poise: 60, knockback: 0, energy_regen: 0, ), range: 3.0, angle: 45.0, ), - buildup_duration: 0.3, + buildup_duration: 0.2, swing_duration: 0.1, hit_timing: 0.5, - recover_duration: 0.3, + recover_duration: 0.25, ori_modifier: 0.6, ), ], diff --git a/assets/common/abilities/axe/sunder.ron b/assets/common/abilities/axe/sunder.ron index 119ed42..0182d37 100644 --- a/assets/common/abilities/axe/sunder.ron +++ b/assets/common/abilities/axe/sunder.ron @@ -3,8 +3,8 @@ SelfBuff( cast_duration: 0.2, recover_duration: 0.1, buff_kind: Sunderer, - buff_strength: 0.25, - buff_duration: Some(15.0), + buff_strength: 0.2, + buff_duration: Some(20.0), combo_cost: 10, energy_cost: 0, ) diff --git a/assets/common/abilities/axe/triple_chop.ron b/assets/common/abilities/axe/triple_chop.ron index 8dfe48c..f2750f8 100644 --- a/assets/common/abilities/axe/triple_chop.ron +++ b/assets/common/abilities/axe/triple_chop.ron @@ -3,7 +3,7 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 4, + damage: 6, poise: 5, knockback: 0, energy_regen: 8, @@ -20,7 +20,7 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 4, + damage: 6, poise: 5, knockback: 0, energy_regen: 8, @@ -37,7 +37,7 @@ ComboMelee2( ( melee_constructor: ( kind: Slash( - damage: 8, + damage: 9, poise: 5, knockback: 0, energy_regen: 9, diff --git a/assets/common/abilities/axesimple/doublestrike.ron b/assets/common/abilities/axesimple/doublestrike.ron index d80d9e3..446e7d1 100644 --- a/assets/common/abilities/axesimple/doublestrike.ron +++ b/assets/common/abilities/axesimple/doublestrike.ron @@ -17,12 +17,12 @@ ComboMelee2( chance: 0.1, ))), ), - buildup_duration: 0.4, - swing_duration: 0.08, + buildup_duration: 0.45, + swing_duration: 0.1, hit_timing: 0.5, recover_duration: 0.5, movement: ( - swing: Some(Forward(2.5)), + swing: Some(Forward(0.4)), ), ori_modifier: 0.7, ), @@ -43,12 +43,12 @@ ComboMelee2( chance: 0.1, ))), ), - buildup_duration: 0.7, - swing_duration: 0.1, + buildup_duration: 0.8, + swing_duration: 0.15, hit_timing: 0.5, - recover_duration: 0.7, + recover_duration: 0.8, movement: ( - swing: Some(Forward(2.0)), + swing: Some(Forward(0.2)), ), ori_modifier: 0.7, ), diff --git a/assets/common/abilities/custom/arthropods/antlion/singlestrike.ron b/assets/common/abilities/custom/arthropods/antlion/singlestrike.ron index 9795c75..01c33bc 100644 --- a/assets/common/abilities/custom/arthropods/antlion/singlestrike.ron +++ b/assets/common/abilities/custom/arthropods/antlion/singlestrike.ron @@ -17,10 +17,10 @@ ComboMelee2( chance: 0.6, ))), ), - buildup_duration: 0.65, - swing_duration: 0.15, + buildup_duration: 0.80, + swing_duration: 0.25, hit_timing: 0.5, - recover_duration: 0.5, + recover_duration: 1.85, movement: ( swing: Some(Forward(1.0)), ), diff --git a/assets/common/abilities/custom/arthropods/blackwidow/singlestrike.ron b/assets/common/abilities/custom/arthropods/blackwidow/singlestrike.ron index efc1f19..8eadbe2 100644 --- a/assets/common/abilities/custom/arthropods/blackwidow/singlestrike.ron +++ b/assets/common/abilities/custom/arthropods/blackwidow/singlestrike.ron @@ -17,10 +17,10 @@ ComboMelee2( chance: 0.4, ))), ), - buildup_duration: 0.55, + buildup_duration: 0.65, swing_duration: 0.35, hit_timing: 0.5, - recover_duration: 0.8, + recover_duration: 1.4, movement: ( swing: Some(Forward(0.1)), ), diff --git a/assets/common/abilities/custom/arthropods/crawler/singlestrike.ron b/assets/common/abilities/custom/arthropods/crawler/singlestrike.ron index 28e0b8e..20f8dec 100644 --- a/assets/common/abilities/custom/arthropods/crawler/singlestrike.ron +++ b/assets/common/abilities/custom/arthropods/crawler/singlestrike.ron @@ -12,9 +12,9 @@ ComboMelee2( angle: 60.0, ), buildup_duration: 0.5, - swing_duration: 0.3, + swing_duration: 0.35, hit_timing: 0.5, - recover_duration: 1.0, + recover_duration: 1.35, movement: ( swing: Some(Forward(0.1)), ), diff --git a/assets/common/abilities/custom/arthropods/hornbeetle/singlestrike.ron b/assets/common/abilities/custom/arthropods/hornbeetle/singlestrike.ron index fb438d4..914c95b 100644 --- a/assets/common/abilities/custom/arthropods/hornbeetle/singlestrike.ron +++ b/assets/common/abilities/custom/arthropods/hornbeetle/singlestrike.ron @@ -3,7 +3,7 @@ ComboMelee2( ( melee_constructor: ( kind: Bash( - damage: 43, + damage: 63, poise: 20, knockback: 5, energy_regen: 0, @@ -11,10 +11,10 @@ ComboMelee2( range: 3.0, angle: 60.0, ), - buildup_duration: 0.7, - swing_duration: 0.2, - hit_timing: 0.5, - recover_duration: 0.6, + buildup_duration: 1.75, + swing_duration: 0.45, + hit_timing: 0.6, + recover_duration: 1.2, movement: ( swing: Some(Forward(0.1)), ), diff --git a/assets/common/abilities/custom/arthropods/tarantula/singlestrike.ron b/assets/common/abilities/custom/arthropods/tarantula/singlestrike.ron index a51dc1b..ff2338a 100644 --- a/assets/common/abilities/custom/arthropods/tarantula/singlestrike.ron +++ b/assets/common/abilities/custom/arthropods/tarantula/singlestrike.ron @@ -17,10 +17,10 @@ ComboMelee2( chance: 0.8, ))), ), - buildup_duration: 0.6, - swing_duration: 0.3, + buildup_duration: 0.65, + swing_duration: 0.35, hit_timing: 0.5, - recover_duration: 0.8, + recover_duration: 1.4, movement: ( swing: Some(Forward(0.1)), ), diff --git a/assets/common/abilities/custom/asp/singlestrike.ron b/assets/common/abilities/custom/asp/singlestrike.ron index f5b9c82..0a9e5f5 100644 --- a/assets/common/abilities/custom/asp/singlestrike.ron +++ b/assets/common/abilities/custom/asp/singlestrike.ron @@ -11,10 +11,10 @@ ComboMelee2( range: 4.0, angle: 30.0, ), - buildup_duration: 0.9, - swing_duration: 0.5, - hit_timing: 0.5, - recover_duration: 0.4, + buildup_duration: 0.25, + swing_duration: 0.55, + hit_timing: 0.6, + recover_duration: 2.3, movement: ( swing: Some(Forward(0.05)), ), diff --git a/assets/common/abilities/custom/basilisk/petrify.ron b/assets/common/abilities/custom/basilisk/petrify.ron index dc48f20..107a987 100644 --- a/assets/common/abilities/custom/basilisk/petrify.ron +++ b/assets/common/abilities/custom/basilisk/petrify.ron @@ -1,9 +1,9 @@ BasicBeam( - buildup_duration: 1.8, + buildup_duration: 1.0, recover_duration: 1.0, beam_duration: 1.15, - damage: 64.0, - tick_rate: 0.35, + damage: 34.0, + tick_rate: 1.35, range: 22.0, max_angle: 5.0, damage_effect: Some(Buff(( diff --git a/assets/common/abilities/custom/basilisk/triplestrike.ron b/assets/common/abilities/custom/basilisk/triplestrike.ron index 61174ef..357f28b 100644 --- a/assets/common/abilities/custom/basilisk/triplestrike.ron +++ b/assets/common/abilities/custom/basilisk/triplestrike.ron @@ -11,10 +11,10 @@ ComboMelee2( range: 2.8, angle: 90.0, ), - buildup_duration: 1.15, - swing_duration: 0.25, + buildup_duration: 1.45, + swing_duration: 0.65, hit_timing: 0.5, - recover_duration: 0.4, + recover_duration: 2.85, movement: ( swing: Some(Forward(0.25)), ), @@ -25,16 +25,16 @@ ComboMelee2( kind: Slash( damage: 39, poise: 18, - knockback: 24, + knockback: 12, energy_regen: 0, ), range: 3.2, angle: 30.0, ), - buildup_duration: 0.55, - swing_duration: 0.25, + buildup_duration: 1.0, + swing_duration: 0.45, hit_timing: 0.5, - recover_duration: 0.8, + recover_duration: 1.8, movement: ( swing: Some(Forward(0.45)), ), diff --git a/assets/common/abilities/custom/birdlargefire/triplestrike.ron b/assets/common/abilities/custom/birdlargefire/triplestrike.ron index f024be6..e195c3d 100644 --- a/assets/common/abilities/custom/birdlargefire/triplestrike.ron +++ b/assets/common/abilities/custom/birdlargefire/triplestrike.ron @@ -11,7 +11,7 @@ ComboMelee2( range: 4.5, angle: 30.0, ), - buildup_duration: 0.8, + buildup_duration: 1.4, swing_duration: 0.25, hit_timing: 0.5, recover_duration: 0.6, @@ -31,7 +31,7 @@ ComboMelee2( range: 3.5, angle: 30.0, ), - buildup_duration: 1.2, + buildup_duration: 1.4, swing_duration: 0.3, hit_timing: 0.5, recover_duration: 0.6, @@ -51,8 +51,8 @@ ComboMelee2( range: 3.5, angle: 30.0, ), - buildup_duration: 0.8, - swing_duration: 0.35, + buildup_duration: 1.45, + swing_duration: 0.3, hit_timing: 0.5, recover_duration: 0.6, movement: ( diff --git a/assets/common/abilities/custom/boreal_warrior/bow/charged.ron b/assets/common/abilities/custom/boreal_warrior/bow/charged.ron deleted file mode 100644 index e5e4f22..0000000 --- a/assets/common/abilities/custom/boreal_warrior/bow/charged.ron +++ /dev/null @@ -1,36 +0,0 @@ -ChargedRanged( - energy_cost: 0, - energy_drain: 0, - projectile: ( - kind: Pointed, - attack: Some(( - damage: 2, - energy: 2, - buff: Some(( - kind: Bleeding, - dur_secs: 10, - strength: DamageFraction(0.1), - chance: 0.1, - )), - )), - scaled: Some(( - damage: 12, - knockback: Some(12), - energy: 14, - )), - ), - buildup_duration: 0.25, - charge_duration: 1.0, - recover_duration: 0.4, - projectile_body: Object(Arrow), - projectile_light: None, - initial_projectile_speed: 50.0, - scaled_projectile_speed: 200.0, - damage_effect: Some(Buff(( - kind: Frozen, - dur_secs: 2.0, - strength: Value(0.3), - chance: 1.0, - ))), - move_speed: 0.6, -) diff --git a/assets/common/abilities/custom/boreal_warrior/bow/doublestrike.ron b/assets/common/abilities/custom/boreal_warrior/bow/doublestrike.ron new file mode 100644 index 0000000..aa97a77 --- /dev/null +++ b/assets/common/abilities/custom/boreal_warrior/bow/doublestrike.ron @@ -0,0 +1,45 @@ +ComboMelee2( + strikes: [ + ( + melee_constructor: ( + kind: Bash( + damage: 52, + poise: 0, + knockback: 4, + energy_regen: 35, + ), + range: 5.5, + angle: 50.0, + ), + buildup_duration: 1.0, + swing_duration: 0.2, + hit_timing: 0.7, + recover_duration: 1.2, + movement: ( + swing: Some(Forward(0.5)), + ), + ori_modifier: 0.6, + ), + ( + melee_constructor: ( + kind: Bash( + damage: 63, + poise: 0, + knockback: 26, + energy_regen: 35, + ), + range: 5.5, + angle: 15.0, + ), + buildup_duration: 1.25, + swing_duration: 0.25, + hit_timing: 0.7, + recover_duration: 1.5, + movement: ( + swing: Some(Forward(0.65)), + ), + ori_modifier: 0.6, + ), + ], + energy_cost_per_strike: 0, +) diff --git a/assets/common/abilities/custom/boreal_warrior/bow/repeater.ron b/assets/common/abilities/custom/boreal_warrior/bow/repeater.ron deleted file mode 100644 index e812846..0000000 --- a/assets/common/abilities/custom/boreal_warrior/bow/repeater.ron +++ /dev/null @@ -1,30 +0,0 @@ -RepeaterRanged( - energy_cost: 6.0, - buildup_duration: 0.2, - shoot_duration: 0.3, - recover_duration: 0.5, - max_speed: 4.0, - half_speed_at: 3, - projectile: ( - kind: Pointed, - attack: Some(( - damage: 5, - energy: 0, - buff: Some(( - kind: Bleeding, - dur_secs: 10, - strength: DamageFraction(0.1), - chance: 0.1, - )), - )), - ), - projectile_body: Object(Arrow), - projectile_light: None, - projectile_speed: 100.0, - damage_effect: Some(Buff(( - kind: Frozen, - dur_secs: 2.0, - strength: Value(0.3), - chance: 1.0, - ))), -) \ No newline at end of file diff --git a/assets/common/abilities/custom/boreal_warrior/bow/shotgun.ron b/assets/common/abilities/custom/boreal_warrior/bow/shotgun.ron index f76c59b..f6a52bb 100644 --- a/assets/common/abilities/custom/boreal_warrior/bow/shotgun.ron +++ b/assets/common/abilities/custom/boreal_warrior/bow/shotgun.ron @@ -1,12 +1,12 @@ BasicRanged( - energy_cost: 25.0, - buildup_duration: 0.3, - recover_duration: 0.3, + energy_cost: 0.0, + buildup_duration: 0.75, + recover_duration: 1.4, projectile_spread: 0.05, projectile: ( kind: Pointed, attack: Some(( - damage: 6, + damage: 12, knockback: Some(5), energy: 0, buff: Some(( @@ -19,7 +19,7 @@ BasicRanged( ), projectile_body: Object(Arrow), projectile_light: None, - projectile_speed: 80.0, + projectile_speed: 40.0, num_projectiles: Value(5), damage_effect: Some(Buff(( kind: Frozen, diff --git a/assets/common/abilities/custom/boreal_warrior/bow/trap.ron b/assets/common/abilities/custom/boreal_warrior/bow/trap.ron new file mode 100644 index 0000000..5bd2072 --- /dev/null +++ b/assets/common/abilities/custom/boreal_warrior/bow/trap.ron @@ -0,0 +1,27 @@ +BasicRanged( + energy_cost: 20, + buildup_duration: 0.75, + recover_duration: 0.75, + projectile: ( + kind: Hazard( + is_sticky: true, + duration: 80, + ), + attack: Some(( + damage: 32, + energy: 0, + )), + ), + projectile_body: Object(BorealTrap), + projectile_light: None, + projectile_speed: 20.0, + num_projectiles: Value(3), + projectile_spread: 1.0, + move_efficiency: 0.8, + damage_effect: Some(Buff(( + kind: Frozen, + dur_secs: 10, + strength: Value(0.3), + chance: 1.0, + ))), +) diff --git a/assets/common/abilities/custom/boreal_warrior/hammer/dash.ron b/assets/common/abilities/custom/boreal_warrior/hammer/dash.ron index 88f6966..17cdae8 100644 --- a/assets/common/abilities/custom/boreal_warrior/hammer/dash.ron +++ b/assets/common/abilities/custom/boreal_warrior/hammer/dash.ron @@ -1,11 +1,11 @@ DashMelee( - energy_cost: 3.0, + energy_cost: 0.0, melee_constructor: ( kind: Bash( - damage: 9.0, + damage: 54.0, poise: 40.0, - knockback: 16.0, - energy_regen: 0.0, + knockback: 25.0, + energy_regen: 50.0, ), scaled: Some(( kind: Bash( @@ -16,6 +16,7 @@ DashMelee( ))), range: 5.0, angle: 45.0, + attack_effect: Some((Poise(1000), TargetBlocking)), damage_effect: Some(Buff(( kind: Frozen, dur_secs: 2.0, @@ -25,7 +26,7 @@ DashMelee( ), energy_drain: 0, forward_speed: 12.0, - buildup_duration: 0.6, + buildup_duration: 0.65, charge_duration: 0.2, swing_duration: 0.1, recover_duration: 0.9, diff --git a/assets/common/abilities/custom/boreal_warrior/hammer/leap.ron b/assets/common/abilities/custom/boreal_warrior/hammer/leap.ron index 78260c4..8c629f5 100644 --- a/assets/common/abilities/custom/boreal_warrior/hammer/leap.ron +++ b/assets/common/abilities/custom/boreal_warrior/hammer/leap.ron @@ -1,27 +1,27 @@ LeapMelee( - energy_cost: 35.0, - buildup_duration: 0.1, + energy_cost: 25.0, + buildup_duration: 0.8, movement_duration: 0.6, swing_duration: 0.15, recover_duration: 0.2, melee_constructor: ( kind: Bash( - damage: 25.0, + damage: 50.0, poise: 40.0, knockback: 25.0, energy_regen: 0.0, ), - range: 4.5, + range: 7.5, angle: 360.0, multi_target: Some(Normal), damage_effect: Some(Buff(( kind: Frozen, - dur_secs: 2.0, + dur_secs: 8.0, strength: Value(0.3), chance: 1.0, ))), ), - forward_leap_strength: 20.0, + forward_leap_strength: 60.0, vertical_leap_strength: 8.0, specifier: None, ) \ No newline at end of file diff --git a/assets/common/abilities/custom/boreal_warrior/hammer/singlestrike.ron b/assets/common/abilities/custom/boreal_warrior/hammer/singlestrike.ron index 6aa0832..1ce4635 100644 --- a/assets/common/abilities/custom/boreal_warrior/hammer/singlestrike.ron +++ b/assets/common/abilities/custom/boreal_warrior/hammer/singlestrike.ron @@ -3,12 +3,12 @@ ComboMelee2( ( melee_constructor: ( kind: Bash( - damage: 15, + damage: 68, poise: 0, knockback: 3.5, - energy_regen: 5, + energy_regen: 35, ), - range: 4.5, + range: 6.5, angle: 50.0, damage_effect: Some(Buff(( kind: Frozen, @@ -20,7 +20,10 @@ ComboMelee2( buildup_duration: 0.7, swing_duration: 0.1, hit_timing: 0.5, - recover_duration: 0.45, + recover_duration: 1.6, + movement: ( + swing: Some(Forward(1.0)), + ), ori_modifier: 1.0, ), ], diff --git a/assets/common/abilities/custom/claygolem/strike.ron b/assets/common/abilities/custom/claygolem/strike.ron index 75fecb0..9ace0c9 100644 --- a/assets/common/abilities/custom/claygolem/strike.ron +++ b/assets/common/abilities/custom/claygolem/strike.ron @@ -14,7 +14,7 @@ ComboMelee2( buildup_duration: 1.4, swing_duration: 0.35, hit_timing: 0.45, - recover_duration: 0.5, + recover_duration: 1.2, movement: ( swing: Some(Forward(0.5)), ), diff --git a/assets/common/abilities/custom/claysteed/basic.ron b/assets/common/abilities/custom/claysteed/basic.ron index 3732413..3ae9e70 100644 --- a/assets/common/abilities/custom/claysteed/basic.ron +++ b/assets/common/abilities/custom/claysteed/basic.ron @@ -3,7 +3,7 @@ BasicMelee( buildup_duration: 0.50, swing_duration: 0.6, hit_timing: 0.4, - recover_duration: 0.85, + recover_duration: 1.1, melee_constructor: ( kind: Bash( damage:26.0, diff --git a/assets/common/abilities/custom/cloudwyvern/triplestrike.ron b/assets/common/abilities/custom/cloudwyvern/triplestrike.ron index cdd63dd..b0510e0 100644 --- a/assets/common/abilities/custom/cloudwyvern/triplestrike.ron +++ b/assets/common/abilities/custom/cloudwyvern/triplestrike.ron @@ -11,8 +11,8 @@ ComboMelee2( range: 4.5, angle: 30.0, ), - buildup_duration: 0.8, - swing_duration: 0.1, + buildup_duration: 1.4, + swing_duration: 0.2, hit_timing: 0.5, recover_duration: 0.6, movement: ( @@ -31,7 +31,7 @@ ComboMelee2( range: 3.5, angle: 30.0, ), - buildup_duration: 1.2, + buildup_duration: 1.4, swing_duration: 0.3, hit_timing: 0.5, recover_duration: 0.6, @@ -51,7 +51,7 @@ ComboMelee2( range: 3.5, angle: 30.0, ), - buildup_duration: 0.8, + buildup_duration: 1.45, swing_duration: 0.3, hit_timing: 0.5, recover_duration: 0.6, diff --git a/assets/common/abilities/custom/coralgolem/strike.ron b/assets/common/abilities/custom/coralgolem/strike.ron index 6ad6159..d67f132 100644 --- a/assets/common/abilities/custom/coralgolem/strike.ron +++ b/assets/common/abilities/custom/coralgolem/strike.ron @@ -1,9 +1,9 @@ BasicMelee( energy_cost: 0, buildup_duration: 1.6, - swing_duration: 0.1, + swing_duration: 0.35, hit_timing: 0.6, - recover_duration: 1.0, + recover_duration: 1.6, melee_constructor: ( kind: Bash( damage: 30.0, diff --git a/assets/common/abilities/custom/cursekeeper/poisonbomb.ron b/assets/common/abilities/custom/cursekeeper/poisonbomb.ron index 51090f3..0e7e976 100644 --- a/assets/common/abilities/custom/cursekeeper/poisonbomb.ron +++ b/assets/common/abilities/custom/cursekeeper/poisonbomb.ron @@ -1,7 +1,7 @@ BasicRanged( energy_cost: 0, buildup_duration: 1.3, - recover_duration: 0.3, + recover_duration: 1.6, projectile: ( kind: Explosive( radius: 6, @@ -23,7 +23,7 @@ BasicRanged( ), projectile_body: Object(SpitPoison), projectile_light: None, - projectile_speed: 10.0, + projectile_speed: 15.0, num_projectiles: Value(2), projectile_spread: 0.1, move_efficiency: 0.3, diff --git a/assets/common/abilities/custom/cursekeeper/summonmogwai.ron b/assets/common/abilities/custom/cursekeeper/summonmogwai.ron deleted file mode 100644 index cb2abb8..0000000 --- a/assets/common/abilities/custom/cursekeeper/summonmogwai.ron +++ /dev/null @@ -1,19 +0,0 @@ -BasicSummon( - buildup_duration: 0.2, - cast_duration: 0.3, - recover_duration: 4.0, - summon_amount: 1, - summon_distance: (4, 4), - summon_info: ( - body: Golem(( - species: Mogwai, - body_type: Male, - )), - scale: None, - use_npc_name: true, - has_health: true, - loadout_config: None, - skillset_config: Some(Rank3), - ), - duration: None, -) diff --git a/assets/common/abilities/custom/cursekeeper/unlive.ron b/assets/common/abilities/custom/cursekeeper/unlive.ron deleted file mode 100644 index cf68be5..0000000 --- a/assets/common/abilities/custom/cursekeeper/unlive.ron +++ /dev/null @@ -1,9 +0,0 @@ -SelfBuff( - buildup_duration: 0.1, - cast_duration: 0.1, - recover_duration: 0.1, - buff_kind: Burning, - buff_strength: 2000.0, - buff_duration: Some(60.0), - energy_cost: 0, -) diff --git a/assets/common/abilities/custom/cyclops/doublestrike.ron b/assets/common/abilities/custom/cyclops/doublestrike.ron index b4f42d0..af161e2 100644 --- a/assets/common/abilities/custom/cyclops/doublestrike.ron +++ b/assets/common/abilities/custom/cyclops/doublestrike.ron @@ -37,10 +37,10 @@ ComboMelee2( chance: 1.0, ))), ), - buildup_duration: 0.8, + buildup_duration: 0.95, swing_duration: 0.8, hit_timing: 0.3, - recover_duration: 1.2, + recover_duration: 1.65, movement: ( swing: Some(Forward(0.2)), ), diff --git a/assets/common/abilities/custom/dullahan/melee.ron b/assets/common/abilities/custom/dullahan/melee.ron index 6bd16a0..62b40b5 100644 --- a/assets/common/abilities/custom/dullahan/melee.ron +++ b/assets/common/abilities/custom/dullahan/melee.ron @@ -43,7 +43,7 @@ ComboMelee2( chance: 0.15, ))), ), - buildup_duration: 0.95, + buildup_duration: 1.25, swing_duration: 0.15, hit_timing: 0.4, recover_duration: 1.3, diff --git a/assets/common/abilities/custom/dwarves/iron_dwarf/singlestrike.ron b/assets/common/abilities/custom/dwarves/iron_dwarf/singlestrike.ron index c3c1202..00e7410 100644 --- a/assets/common/abilities/custom/dwarves/iron_dwarf/singlestrike.ron +++ b/assets/common/abilities/custom/dwarves/iron_dwarf/singlestrike.ron @@ -14,7 +14,7 @@ ComboMelee2( buildup_duration: 0.8, swing_duration: 0.27, hit_timing: 0.5, - recover_duration: 0.5, + recover_duration: 1.0, movement: ( swing: Some(Forward(0.5)), ), diff --git a/assets/common/abilities/custom/dwarves/snaretongue/beam.ron b/assets/common/abilities/custom/dwarves/snaretongue/beam.ron index bb54832..95fcb9c 100644 --- a/assets/common/abilities/custom/dwarves/snaretongue/beam.ron +++ b/assets/common/abilities/custom/dwarves/snaretongue/beam.ron @@ -1,5 +1,5 @@ BasicBeam( - buildup_duration: 0.5, + buildup_duration: 1.0, recover_duration: 0.5, beam_duration: 1.0, damage: 10.0, diff --git a/assets/common/abilities/custom/dwarves/snaretongue/bombs.ron b/assets/common/abilities/custom/dwarves/snaretongue/bombs.ron index 3b01909..745b3d9 100644 --- a/assets/common/abilities/custom/dwarves/snaretongue/bombs.ron +++ b/assets/common/abilities/custom/dwarves/snaretongue/bombs.ron @@ -1,6 +1,6 @@ BasicRanged( energy_cost: 0, - buildup_duration: 0.5, + buildup_duration: 1.0, recover_duration: 1.5, projectile: ( kind: Explosive( diff --git a/assets/common/abilities/custom/dwarves/snaretongue/tongue.ron b/assets/common/abilities/custom/dwarves/snaretongue/tongue.ron index 5289514..ea07afb 100644 --- a/assets/common/abilities/custom/dwarves/snaretongue/tongue.ron +++ b/assets/common/abilities/custom/dwarves/snaretongue/tongue.ron @@ -13,7 +13,7 @@ ComboMelee2( ), buildup_duration: 0.5, swing_duration: 0.4, - hit_timing: 0.4, + hit_timing: 0.6, recover_duration: 0.5, movement: ( swing: Some(Forward(0.0)), diff --git a/assets/common/abilities/custom/flamewyvern/triplestrike.ron b/assets/common/abilities/custom/flamewyvern/triplestrike.ron index 906e8a2..7c2af04 100644 --- a/assets/common/abilities/custom/flamewyvern/triplestrike.ron +++ b/assets/common/abilities/custom/flamewyvern/triplestrike.ron @@ -6,13 +6,13 @@ ComboMelee2( damage: 20, poise: 0, knockback: 5, - energy_regen: 0, + energy_regen: 10, ), range: 4.5, angle: 30.0, ), - buildup_duration: 0.8, - swing_duration: 0.1, + buildup_duration: 1.4, + swing_duration: 0.2, hit_timing: 0.5, recover_duration: 0.6, movement: ( @@ -26,12 +26,12 @@ ComboMelee2( damage: 16, poise: 0, knockback: 5, - energy_regen: 0, + energy_regen: 10, ), range: 3.5, angle: 30.0, ), - buildup_duration: 1.2, + buildup_duration: 1.4, swing_duration: 0.3, hit_timing: 0.5, recover_duration: 0.6, @@ -46,13 +46,13 @@ ComboMelee2( damage: 26, poise: 0, knockback: 10, - energy_regen: 0, + energy_regen: 10, ), range: 3.5, angle: 30.0, ), - buildup_duration: 0.9, - swing_duration: 0.2, + buildup_duration: 1.45, + swing_duration: 0.3, hit_timing: 0.5, recover_duration: 0.6, movement: ( diff --git a/assets/common/abilities/custom/frostfang/singlestrike.ron b/assets/common/abilities/custom/frostfang/singlestrike.ron index 213f2a1..9223b1d 100644 --- a/assets/common/abilities/custom/frostfang/singlestrike.ron +++ b/assets/common/abilities/custom/frostfang/singlestrike.ron @@ -17,7 +17,7 @@ ComboMelee2( chance: 1.0, ))), ), - buildup_duration: 0.8, + buildup_duration: 0.95, swing_duration: 0.1, hit_timing: 0.5, recover_duration: 0.8, diff --git a/assets/common/abilities/custom/frostfang/triplestrike.ron b/assets/common/abilities/custom/frostfang/triplestrike.ron index 83479d8..a811942 100644 --- a/assets/common/abilities/custom/frostfang/triplestrike.ron +++ b/assets/common/abilities/custom/frostfang/triplestrike.ron @@ -11,7 +11,7 @@ ComboMelee2( range: 2.5, angle: 30.0, ), - buildup_duration: 0.65, + buildup_duration: 0.95, swing_duration: 0.3, hit_timing: 0.5, recover_duration: 0.4, @@ -31,7 +31,7 @@ ComboMelee2( range: 2.5, angle: 30.0, ), - buildup_duration: 0.9, + buildup_duration: 1.0, swing_duration: 0.4, hit_timing: 0.5, recover_duration: 0.4, @@ -48,10 +48,10 @@ ComboMelee2( range: 2.5, angle: 30.0, ), - buildup_duration: 0.9, + buildup_duration: 1.0, swing_duration: 0.4, hit_timing: 0.5, - recover_duration: 0.4, + recover_duration: 1.95, movement: ( swing: Some(Forward(0.2)), ), diff --git a/assets/common/abilities/custom/frostwyvern/triplestrike.ron b/assets/common/abilities/custom/frostwyvern/triplestrike.ron index a066171..b0510e0 100644 --- a/assets/common/abilities/custom/frostwyvern/triplestrike.ron +++ b/assets/common/abilities/custom/frostwyvern/triplestrike.ron @@ -11,8 +11,8 @@ ComboMelee2( range: 4.5, angle: 30.0, ), - buildup_duration: 0.8, - swing_duration: 0.1, + buildup_duration: 1.4, + swing_duration: 0.2, hit_timing: 0.5, recover_duration: 0.6, movement: ( @@ -31,8 +31,8 @@ ComboMelee2( range: 3.5, angle: 30.0, ), - buildup_duration: 1.1, - swing_duration: 0.4, + buildup_duration: 1.4, + swing_duration: 0.3, hit_timing: 0.5, recover_duration: 0.6, movement: ( @@ -51,8 +51,8 @@ ComboMelee2( range: 3.5, angle: 30.0, ), - buildup_duration: 0.7, - swing_duration: 0.4, + buildup_duration: 1.45, + swing_duration: 0.3, hit_timing: 0.5, recover_duration: 0.6, movement: ( diff --git a/assets/common/abilities/custom/gigas_frost/bonk.ron b/assets/common/abilities/custom/gigas_frost/bonk.ron index 234c012..1a8cb96 100644 --- a/assets/common/abilities/custom/gigas_frost/bonk.ron +++ b/assets/common/abilities/custom/gigas_frost/bonk.ron @@ -6,19 +6,14 @@ BasicMelee( recover_duration: 0.6, melee_constructor: ( kind: Bash( - damage: 30, - poise: 100, + damage: 68, + poise: 250, knockback: 0, energy_regen: 0, ), range: 8.0, angle: 100.0, - damage_effect: Some(Buff(( - kind: Frozen, - dur_secs: 5, - strength: Value(0.7), - chance: 1.0, - ))), + attack_effect: Some((Poise(1000), TargetBlocking)), multi_target: Some(Normal), ), ori_modifier: 0.8, diff --git a/assets/common/abilities/custom/gigas_frost/cleave.ron b/assets/common/abilities/custom/gigas_frost/cleave.ron index 5d3dfac..cda2324 100644 --- a/assets/common/abilities/custom/gigas_frost/cleave.ron +++ b/assets/common/abilities/custom/gigas_frost/cleave.ron @@ -1,12 +1,12 @@ BasicMelee( energy_cost: 0, - buildup_duration: 0.5, - swing_duration: 0.1, + buildup_duration: 0.75, + swing_duration: 0.2, hit_timing: 0.5, - recover_duration: 0.7, + recover_duration: 1.7, melee_constructor: ( kind: Slash( - damage: 60.0, + damage: 75.0, poise: 5.0, knockback: 5.0, energy_regen: 10.0, diff --git a/assets/common/abilities/custom/gigas_frost/frost_summons.ron b/assets/common/abilities/custom/gigas_frost/frost_summons.ron index f33c006..ae39821 100644 --- a/assets/common/abilities/custom/gigas_frost/frost_summons.ron +++ b/assets/common/abilities/custom/gigas_frost/frost_summons.ron @@ -2,8 +2,8 @@ BasicSummon( buildup_duration: 1.75, cast_duration: 1.5, recover_duration: 0.75, - summon_amount: 12, - summon_distance: (10, 15), + summon_amount: 2, + summon_distance: (5, 10), summon_info: ( body: BipedSmall(( species: Boreal, diff --git a/assets/common/abilities/custom/gigas_frost/whirlwind.ron b/assets/common/abilities/custom/gigas_frost/whirlwind.ron index 98f08a7..952c420 100644 --- a/assets/common/abilities/custom/gigas_frost/whirlwind.ron +++ b/assets/common/abilities/custom/gigas_frost/whirlwind.ron @@ -1,5 +1,5 @@ RapidMelee( - buildup_duration: 1.1, + buildup_duration: 2.475, swing_duration: 0.4, recover_duration: 0.6, melee_constructor: ( diff --git a/assets/common/abilities/custom/gigas_frost/wide_cleave.ron b/assets/common/abilities/custom/gigas_frost/wide_cleave.ron index 744d6c5..09f025e 100644 --- a/assets/common/abilities/custom/gigas_frost/wide_cleave.ron +++ b/assets/common/abilities/custom/gigas_frost/wide_cleave.ron @@ -2,11 +2,11 @@ BasicMelee( energy_cost: 0, buildup_duration: 0.4, swing_duration: 0.1, - hit_timing: 0.5, + hit_timing: 0.6, recover_duration: 0.8, melee_constructor: ( kind: Slash( - damage: 70.0, + damage: 58.0, poise: 20.0, knockback: 5.0, energy_regen: 5.0, diff --git a/assets/common/abilities/custom/harvester/ensnaringvines.ron b/assets/common/abilities/custom/harvester/ensnaringvines.ron deleted file mode 100644 index e5d460b..0000000 --- a/assets/common/abilities/custom/harvester/ensnaringvines.ron +++ /dev/null @@ -1,10 +0,0 @@ -SpriteSummon( - buildup_duration: 0.6, - cast_duration: 0.4, - recover_duration: 0.3, - sprite: EnsnaringVines, - del_timeout: None, - summon_distance: (0, 25), - sparseness: 0.67, - angle: 360, -) \ No newline at end of file diff --git a/assets/common/abilities/custom/husk_brute/singlestrike.ron b/assets/common/abilities/custom/husk_brute/singlestrike.ron index 0f1ada6..99c7080 100644 --- a/assets/common/abilities/custom/husk_brute/singlestrike.ron +++ b/assets/common/abilities/custom/husk_brute/singlestrike.ron @@ -3,7 +3,7 @@ BasicMelee( buildup_duration: 1.0, swing_duration: 0.2, hit_timing: 0.5, - recover_duration: 1.0, + recover_duration: 1.6, melee_constructor: ( kind: Bash( damage: 40, diff --git a/assets/common/abilities/custom/hydra/multi_bite.ron b/assets/common/abilities/custom/hydra/multi_bite.ron index 9112490..24e8601 100644 --- a/assets/common/abilities/custom/hydra/multi_bite.ron +++ b/assets/common/abilities/custom/hydra/multi_bite.ron @@ -11,10 +11,10 @@ ComboMelee2( range: 3.2, angle: 100.0, ), - buildup_duration: 0.7, - swing_duration: 0.3, + buildup_duration: 0.75, + swing_duration: 0.35, hit_timing: 0.5, - recover_duration: 0.6, + recover_duration: 1.45, movement: ( swing: Some(Forward(0.05)), ), @@ -31,10 +31,10 @@ ComboMelee2( range: 3.2, angle: 200.0, ), - buildup_duration: 0.5, - swing_duration: 0.3, + buildup_duration: 1.0, + swing_duration: 0.45, hit_timing: 0.5, - recover_duration: 0.6, + recover_duration: 1.5, movement: ( swing: Some(Forward(0.05)), ), @@ -51,8 +51,8 @@ ComboMelee2( range: 4.2, angle: 360.0, ), - buildup_duration: 1.3, - swing_duration: 0.4, + buildup_duration: 0.95, + swing_duration: 0.45, hit_timing: 0.5, recover_duration: 0.8, movement: ( diff --git a/assets/common/abilities/custom/icedrake/icy_bite.ron b/assets/common/abilities/custom/icedrake/icy_bite.ron index bee29da..e4b8f3f 100644 --- a/assets/common/abilities/custom/icedrake/icy_bite.ron +++ b/assets/common/abilities/custom/icedrake/icy_bite.ron @@ -17,7 +17,7 @@ ComboMelee2( chance: 1.0, ))), ), - buildup_duration: 1.2, + buildup_duration: 0.8, swing_duration: 0.4, hit_timing: 0.5, recover_duration: 0.8, diff --git a/assets/common/abilities/custom/icedrake/multi_bite.ron b/assets/common/abilities/custom/icedrake/multi_bite.ron index 1b44d01..2d3bb7a 100644 --- a/assets/common/abilities/custom/icedrake/multi_bite.ron +++ b/assets/common/abilities/custom/icedrake/multi_bite.ron @@ -11,10 +11,10 @@ ComboMelee2( range: 2.2, angle: 30.0, ), - buildup_duration: 0.7, - swing_duration: 0.3, + buildup_duration: 1.2, + swing_duration: 0.4, hit_timing: 0.5, - recover_duration: 0.6, + recover_duration: 0.8, movement: ( swing: Some(Forward(0.15)), ), @@ -31,8 +31,8 @@ ComboMelee2( range: 2.2, angle: 30.0, ), - buildup_duration: 0.5, - swing_duration: 0.3, + buildup_duration: 0.95, + swing_duration: 0.35, hit_timing: 0.5, recover_duration: 0.6, movement: ( diff --git a/assets/common/abilities/custom/irongolemfist/singlestrike.ron b/assets/common/abilities/custom/irongolemfist/singlestrike.ron index f4cff3f..74b0b3c 100644 --- a/assets/common/abilities/custom/irongolemfist/singlestrike.ron +++ b/assets/common/abilities/custom/irongolemfist/singlestrike.ron @@ -11,10 +11,10 @@ ComboMelee2( range: 5.5, angle: 60.0, ), - buildup_duration: 0.9, + buildup_duration: 1.0, swing_duration: 0.1, hit_timing: 0.5, - recover_duration: 0.5, + recover_duration: 1.35, ori_modifier: 0.7, ), ], diff --git a/assets/common/abilities/custom/irongolemfist/spin.ron b/assets/common/abilities/custom/irongolemfist/spin.ron index ccfa847..5df6f66 100644 --- a/assets/common/abilities/custom/irongolemfist/spin.ron +++ b/assets/common/abilities/custom/irongolemfist/spin.ron @@ -1,6 +1,6 @@ BasicMelee( energy_cost: 0, - buildup_duration: 0.2, + buildup_duration: 0.45, swing_duration: 0.3, recover_duration: 0.1, melee_constructor: ( diff --git a/assets/common/abilities/custom/maneater/singlestrike.ron b/assets/common/abilities/custom/maneater/singlestrike.ron index b9715b0..deb0abd 100644 --- a/assets/common/abilities/custom/maneater/singlestrike.ron +++ b/assets/common/abilities/custom/maneater/singlestrike.ron @@ -11,10 +11,10 @@ ComboMelee2( range: 3.5, angle: 60.0, ), - buildup_duration: 0.25, + buildup_duration: 0.32, swing_duration: 0.25, hit_timing: 0.5, - recover_duration: 0.8, + recover_duration: 1.9, movement: ( swing: Some(Forward(0.15)), ), diff --git a/assets/common/abilities/custom/mindflayer/summonextraminions.ron b/assets/common/abilities/custom/mindflayer/summonextraminions.ron deleted file mode 100644 index 83eed07..0000000 --- a/assets/common/abilities/custom/mindflayer/summonextraminions.ron +++ /dev/null @@ -1,19 +0,0 @@ -BasicSummon( - buildup_duration: 0.5, - cast_duration: 1.0, - recover_duration: 0.5, - summon_amount: 2, - summon_distance: (1, 1), - summon_info: ( - body: BipedSmall(( - species: Husk, - body_type: Male, - )), - use_npc_name: true, - scale: None, - has_health: true, - loadout_config: Some(HuskSummon), - skillset_config: Some(Rank5), - ), - duration: None, -) diff --git a/assets/common/abilities/custom/quadlowbasic/singlestrike.ron b/assets/common/abilities/custom/quadlowbasic/singlestrike.ron index fd8b7ae..2a580de 100644 --- a/assets/common/abilities/custom/quadlowbasic/singlestrike.ron +++ b/assets/common/abilities/custom/quadlowbasic/singlestrike.ron @@ -12,9 +12,9 @@ ComboMelee2( angle: 90.0, ), buildup_duration: 0.5, - swing_duration: 0.2, + swing_duration: 0.35, hit_timing: 0.5, - recover_duration: 0.5, + recover_duration: 1.5, movement: ( swing: Some(Forward(0.1)), ), diff --git a/assets/common/abilities/custom/quadlowbasic/triplestrike.ron b/assets/common/abilities/custom/quadlowbasic/triplestrike.ron index 5743aee..195f559 100644 --- a/assets/common/abilities/custom/quadlowbasic/triplestrike.ron +++ b/assets/common/abilities/custom/quadlowbasic/triplestrike.ron @@ -11,8 +11,8 @@ ComboMelee2( range: 4.0, angle: 30.0, ), - buildup_duration: 0.75, - swing_duration: 0.45, + buildup_duration: 0.5, + swing_duration: 0.35, hit_timing: 0.5, recover_duration: 0.4, movement: ( @@ -31,7 +31,7 @@ ComboMelee2( range: 3.5, angle: 75.0, ), - buildup_duration: 0.35, + buildup_duration: 1.2, swing_duration: 0.35, hit_timing: 0.5, recover_duration: 0.3, @@ -51,10 +51,10 @@ ComboMelee2( range: 3.0, angle: 55.0, ), - buildup_duration: 0.55, - swing_duration: 0.25, + buildup_duration: 1.55, + swing_duration: 0.35, hit_timing: 0.5, - recover_duration: 0.6, + recover_duration: 1.2, movement: ( swing: Some(Forward(0.3)), ), diff --git a/assets/common/abilities/custom/quadlowtail/charged.ron b/assets/common/abilities/custom/quadlowtail/charged.ron index 28dd1ce..5c45148 100644 --- a/assets/common/abilities/custom/quadlowtail/charged.ron +++ b/assets/common/abilities/custom/quadlowtail/charged.ron @@ -20,7 +20,7 @@ ChargedMelee( multi_target: Some(Normal), ), charge_duration: 1.7, - swing_duration: 0.4, - hit_timing: 0.5, + swing_duration: 0.7, + hit_timing: 0.85, recover_duration: 1.1, ) diff --git a/assets/common/abilities/custom/quadmedbasic/singlestrike.ron b/assets/common/abilities/custom/quadmedbasic/singlestrike.ron index 0e0f02e..80e6cfd 100644 --- a/assets/common/abilities/custom/quadmedbasic/singlestrike.ron +++ b/assets/common/abilities/custom/quadmedbasic/singlestrike.ron @@ -11,9 +11,9 @@ ComboMelee2( range: 2.7, angle: 60.0, ), - buildup_duration: 0.5, - swing_duration: 0.3, - hit_timing: 0.5, + buildup_duration: 0.95, + swing_duration: 0.35, + hit_timing: 0.35, recover_duration: 0.8, movement: ( swing: Some(Forward(0.1)), diff --git a/assets/common/abilities/custom/quadmedbasic/triplestrike.ron b/assets/common/abilities/custom/quadmedbasic/triplestrike.ron index 7e377d4..41dcb62 100644 --- a/assets/common/abilities/custom/quadmedbasic/triplestrike.ron +++ b/assets/common/abilities/custom/quadmedbasic/triplestrike.ron @@ -11,9 +11,9 @@ ComboMelee2( range: 2.5, angle: 30.0, ), - buildup_duration: 0.55, + buildup_duration: 0.95, swing_duration: 0.35, - hit_timing: 0.5, + hit_timing: 0.35, recover_duration: 0.4, movement: ( swing: Some(Forward(0.1)), @@ -31,9 +31,9 @@ ComboMelee2( range: 2.5, angle: 30.0, ), - buildup_duration: 0.8, + buildup_duration: 1.0, swing_duration: 0.4, - hit_timing: 0.5, + hit_timing: 0.35, recover_duration: 0.4, movement: ( swing: Some(Forward(0.2)), @@ -51,10 +51,10 @@ ComboMelee2( range: 2.5, angle: 30.0, ), - buildup_duration: 0.9, + buildup_duration: 1.0, swing_duration: 0.4, - hit_timing: 0.5, - recover_duration: 0.4, + hit_timing: 0.35, + recover_duration: 1.95, movement: ( swing: Some(Forward(0.1)), ), diff --git a/assets/common/abilities/custom/quadmedcharge/doublestrike.ron b/assets/common/abilities/custom/quadmedcharge/doublestrike.ron index 145f5f9..40d9aeb 100644 --- a/assets/common/abilities/custom/quadmedcharge/doublestrike.ron +++ b/assets/common/abilities/custom/quadmedcharge/doublestrike.ron @@ -13,7 +13,7 @@ ComboMelee2( ), buildup_duration: 0.85, swing_duration: 0.45, - hit_timing: 0.5, + hit_timing: 0.4, recover_duration: 0.6, movement: ( swing: Some(Forward(0.1)), @@ -33,8 +33,8 @@ ComboMelee2( ), buildup_duration: 1.1, swing_duration: 0.35, - hit_timing: 0.5, - recover_duration: 0.6, + hit_timing: 0.4, + recover_duration: 1.45, movement: ( swing: Some(Forward(0.1)), ), diff --git a/assets/common/abilities/custom/quadmedhoof/basic.ron b/assets/common/abilities/custom/quadmedhoof/basic.ron index ca6cffc..be208fd 100644 --- a/assets/common/abilities/custom/quadmedhoof/basic.ron +++ b/assets/common/abilities/custom/quadmedhoof/basic.ron @@ -3,7 +3,7 @@ BasicMelee( buildup_duration: 0.7, swing_duration: 0.45, hit_timing: 0.4, - recover_duration: 0.85, + recover_duration: 1.55, melee_constructor: ( kind: Bash( damage: 10.0, diff --git a/assets/common/abilities/custom/roshwalr/doublehusk.ron b/assets/common/abilities/custom/roshwalr/doublehusk.ron index fa1761b..a55180d 100644 --- a/assets/common/abilities/custom/roshwalr/doublehusk.ron +++ b/assets/common/abilities/custom/roshwalr/doublehusk.ron @@ -11,9 +11,9 @@ ComboMelee2( range: 3.0, angle: 75.0, ), - buildup_duration: 1.2, - swing_duration: 0.07, - hit_timing: 0.5, + buildup_duration: 1.1, + swing_duration: 0.25, + hit_timing: 0.4, recover_duration: 0.3, movement: ( swing: Some(Forward(0.15)), @@ -31,10 +31,10 @@ ComboMelee2( range: 3.0, angle: 75.0, ), - buildup_duration: 0.5, - swing_duration: 0.07, - hit_timing: 0.5, - recover_duration: 0.6, + buildup_duration: 1.0, + swing_duration: 0.25, + hit_timing: 0.4, + recover_duration: 1.6, movement: ( swing: Some(Forward(0.15)), ), diff --git a/assets/common/abilities/custom/seawyvern/triplestrike.ron b/assets/common/abilities/custom/seawyvern/triplestrike.ron index 1e77749..b0510e0 100644 --- a/assets/common/abilities/custom/seawyvern/triplestrike.ron +++ b/assets/common/abilities/custom/seawyvern/triplestrike.ron @@ -11,8 +11,8 @@ ComboMelee2( range: 4.5, angle: 30.0, ), - buildup_duration: 0.8, - swing_duration: 0.1, + buildup_duration: 1.4, + swing_duration: 0.2, hit_timing: 0.5, recover_duration: 0.6, movement: ( @@ -31,8 +31,8 @@ ComboMelee2( range: 3.5, angle: 30.0, ), - buildup_duration: 1.1, - swing_duration: 0.4, + buildup_duration: 1.4, + swing_duration: 0.3, hit_timing: 0.5, recover_duration: 0.6, movement: ( @@ -51,7 +51,7 @@ ComboMelee2( range: 3.5, angle: 30.0, ), - buildup_duration: 0.8, + buildup_duration: 1.45, swing_duration: 0.3, hit_timing: 0.5, recover_duration: 0.6, diff --git a/assets/common/abilities/custom/terracotta_pursuer/doublestrike.ron b/assets/common/abilities/custom/terracotta_pursuer/doublestrike.ron index 40470f7..ce3a98b 100644 --- a/assets/common/abilities/custom/terracotta_pursuer/doublestrike.ron +++ b/assets/common/abilities/custom/terracotta_pursuer/doublestrike.ron @@ -17,12 +17,12 @@ ComboMelee2( chance: 0.1, ))), ), - buildup_duration: 0.4, - swing_duration: 0.08, - hit_timing: 0.5, - recover_duration: 0.5, + buildup_duration: 0.7, + swing_duration: 0.3, + hit_timing: 0.4, + recover_duration: 0.3, movement: ( - swing: Some(Forward(2.5)), + swing: Some(Forward(0.8)), ), ori_modifier: 0.7, ), @@ -43,12 +43,12 @@ ComboMelee2( chance: 0.1, ))), ), - buildup_duration: 0.7, - swing_duration: 0.1, - hit_timing: 0.5, - recover_duration: 0.7, + buildup_duration: 0.8, + swing_duration: 0.15, + hit_timing: 0.4, + recover_duration: 1.3, movement: ( - swing: Some(Forward(2.0)), + swing: Some(Forward(0.2)), ), ori_modifier: 0.7, ), diff --git a/assets/common/abilities/custom/theropodbasic/triplestrike.ron b/assets/common/abilities/custom/theropodbasic/triplestrike.ron index ebde387..1750e5e 100644 --- a/assets/common/abilities/custom/theropodbasic/triplestrike.ron +++ b/assets/common/abilities/custom/theropodbasic/triplestrike.ron @@ -31,8 +31,8 @@ ComboMelee2( range: 5.0, angle: 45.0, ), - buildup_duration: 0.6, - swing_duration: 0.2, + buildup_duration: 1.4, + swing_duration: 0.25, hit_timing: 0.5, recover_duration: 0.4, movement: ( @@ -51,10 +51,10 @@ ComboMelee2( range: 5.5, angle: 30.0, ), - buildup_duration: 0.7, + buildup_duration: 2.15, swing_duration: 0.25, hit_timing: 0.5, - recover_duration: 1.1, + recover_duration: 1.45, movement: ( swing: Some(Forward(0.1)), ), diff --git a/assets/common/abilities/custom/theropodbird/triplestrike.ron b/assets/common/abilities/custom/theropodbird/triplestrike.ron index fa398f0..ffb62e3 100644 --- a/assets/common/abilities/custom/theropodbird/triplestrike.ron +++ b/assets/common/abilities/custom/theropodbird/triplestrike.ron @@ -11,10 +11,10 @@ ComboMelee2( range: 3.0, angle: 30.0, ), - buildup_duration: 0.7, - swing_duration: 0.4, + buildup_duration: 0.9, + swing_duration: 0.15, hit_timing: 0.5, - recover_duration: 0.2, + recover_duration: 0.3, movement: ( swing: Some(Forward(0.2)), ), @@ -31,8 +31,8 @@ ComboMelee2( range: 3.0, angle: 30.0, ), - buildup_duration: 0.35, - swing_duration: 0.3, + buildup_duration: 1.4, + swing_duration: 0.25, hit_timing: 0.5, recover_duration: 0.4, movement: ( @@ -51,10 +51,10 @@ ComboMelee2( range: 3.0, angle: 15.0, ), - buildup_duration: 0.95, + buildup_duration: 2.15, swing_duration: 0.25, hit_timing: 0.5, - recover_duration: 1.3, + recover_duration: 0.2, movement: ( swing: Some(Forward(0.1)), ), diff --git a/assets/common/abilities/custom/tidalwarrior/pincer.ron b/assets/common/abilities/custom/tidalwarrior/pincer.ron index 186bf14..2e438a4 100644 --- a/assets/common/abilities/custom/tidalwarrior/pincer.ron +++ b/assets/common/abilities/custom/tidalwarrior/pincer.ron @@ -1,9 +1,9 @@ BasicMelee( energy_cost: 0, - buildup_duration: 0.45, - swing_duration: 0.1, + buildup_duration: 0.65, + swing_duration: 0.3, hit_timing: 0.3, - recover_duration: 1.2, + recover_duration: 1.5, melee_constructor: ( kind: Bash( damage: 12.5, diff --git a/assets/common/abilities/custom/tursus/tursus_claws.ron b/assets/common/abilities/custom/tursus/tursus_claws.ron index 5006b9f..5214539 100644 --- a/assets/common/abilities/custom/tursus/tursus_claws.ron +++ b/assets/common/abilities/custom/tursus/tursus_claws.ron @@ -1,9 +1,9 @@ BasicMelee( energy_cost: 0, - buildup_duration: 0.5, - swing_duration: 0.1, + buildup_duration: 0.9, + swing_duration: 0.25, hit_timing: 0.4, - recover_duration: 0.5, + recover_duration: 1.2, melee_constructor: ( kind: Slash( damage: 40.0, diff --git a/assets/common/abilities/custom/tursus/tusk_bash_leap.ron b/assets/common/abilities/custom/tursus/tusk_bash_leap.ron index df6adbd..52a6b42 100644 --- a/assets/common/abilities/custom/tursus/tusk_bash_leap.ron +++ b/assets/common/abilities/custom/tursus/tusk_bash_leap.ron @@ -3,7 +3,7 @@ LeapMelee( buildup_duration: 1.5, movement_duration: 0.6, swing_duration: 0.15, - recover_duration: 0.2, + recover_duration: 1.0, melee_constructor: ( kind: Bash( damage: 25.0, diff --git a/assets/common/abilities/custom/wealdwyvern/triplestrike.ron b/assets/common/abilities/custom/wealdwyvern/triplestrike.ron index a85791e..b0510e0 100644 --- a/assets/common/abilities/custom/wealdwyvern/triplestrike.ron +++ b/assets/common/abilities/custom/wealdwyvern/triplestrike.ron @@ -11,8 +11,8 @@ ComboMelee2( range: 4.5, angle: 30.0, ), - buildup_duration: 0.8, - swing_duration: 0.1, + buildup_duration: 1.4, + swing_duration: 0.2, hit_timing: 0.5, recover_duration: 0.6, movement: ( @@ -31,7 +31,7 @@ ComboMelee2( range: 3.5, angle: 30.0, ), - buildup_duration: 1.2, + buildup_duration: 1.4, swing_duration: 0.3, hit_timing: 0.5, recover_duration: 0.6, @@ -51,7 +51,7 @@ ComboMelee2( range: 3.5, angle: 30.0, ), - buildup_duration: 0.9, + buildup_duration: 1.45, swing_duration: 0.3, hit_timing: 0.5, recover_duration: 0.6, diff --git a/assets/common/abilities/custom/wendigomagic/frostbomb.ron b/assets/common/abilities/custom/wendigomagic/frostbomb.ron index aec5ff7..17347ac 100644 --- a/assets/common/abilities/custom/wendigomagic/frostbomb.ron +++ b/assets/common/abilities/custom/wendigomagic/frostbomb.ron @@ -1,7 +1,7 @@ BasicRanged( energy_cost: 0, - buildup_duration: 0.5, - recover_duration: 1.4, + buildup_duration: 0.6, + recover_duration: 1.8, projectile: ( kind: Explosive( radius: 5, diff --git a/assets/common/abilities/custom/woodgolem/strike.ron b/assets/common/abilities/custom/woodgolem/strike.ron index 84437ce..1536620 100644 --- a/assets/common/abilities/custom/woodgolem/strike.ron +++ b/assets/common/abilities/custom/woodgolem/strike.ron @@ -3,7 +3,7 @@ BasicMelee( buildup_duration: 1.0, swing_duration: 0.2, hit_timing: 0.6, - recover_duration: 1.0, + recover_duration: 1.3, melee_constructor: ( kind: Bash( damage: 12.0, diff --git a/assets/common/abilities/custom/yeti/strike.ron b/assets/common/abilities/custom/yeti/strike.ron index d14132f..c7b7da5 100644 --- a/assets/common/abilities/custom/yeti/strike.ron +++ b/assets/common/abilities/custom/yeti/strike.ron @@ -1,8 +1,8 @@ BasicMelee( energy_cost: 0, buildup_duration: 1.2, - swing_duration: 0.1, - hit_timing: 0.8, + swing_duration: 0.35, + hit_timing: 0.75, recover_duration: 2.0, melee_constructor: ( kind: Bash( diff --git a/assets/common/abilities/gnarling/axe/chop.ron b/assets/common/abilities/gnarling/axe/chop.ron index 7bebf0a..e16ad69 100644 --- a/assets/common/abilities/gnarling/axe/chop.ron +++ b/assets/common/abilities/gnarling/axe/chop.ron @@ -3,7 +3,7 @@ BasicMelee( buildup_duration: 0.4, swing_duration: 0.05, hit_timing: 0.8, - recover_duration: 0.45, + recover_duration: 0.9, melee_constructor: ( kind: Slash( damage: 4, diff --git a/assets/common/abilities/gnarling/chieftain/flamestrike.ron b/assets/common/abilities/gnarling/chieftain/flamestrike.ron index 00982a7..1e09b33 100644 --- a/assets/common/abilities/gnarling/chieftain/flamestrike.ron +++ b/assets/common/abilities/gnarling/chieftain/flamestrike.ron @@ -1,9 +1,9 @@ BasicMelee( energy_cost: 0, - buildup_duration: 0.75, + buildup_duration: 0.95, swing_duration: 0.4, hit_timing: 0.5, - recover_duration: 0.6, + recover_duration: 0.8, melee_constructor: ( kind: Bash( damage: 9, diff --git a/assets/common/abilities/gnarling/dagger/stab.ron b/assets/common/abilities/gnarling/dagger/stab.ron index 04074bc..f0d08b6 100644 --- a/assets/common/abilities/gnarling/dagger/stab.ron +++ b/assets/common/abilities/gnarling/dagger/stab.ron @@ -1,9 +1,9 @@ BasicMelee( energy_cost: 0, - buildup_duration: 0.2, + buildup_duration: 0.3, swing_duration: 0.05, hit_timing: 0.4, - recover_duration: 0.375, + recover_duration: 1.0, melee_constructor: ( kind: Stab( damage: 2.5, diff --git a/assets/common/abilities/hammer/basic_guard.ron b/assets/common/abilities/hammer/basic_guard.ron index 79e67f1..41b5938 100644 --- a/assets/common/abilities/hammer/basic_guard.ron +++ b/assets/common/abilities/hammer/basic_guard.ron @@ -1,8 +1,8 @@ BasicBlock( buildup_duration: 0.25, - recover_duration: 0.2, + recover_duration: 0.4, max_angle: 60.0, - block_strength: 5.0, + block_strength: 2.25, parry_window: ( buildup: true, recover: false, diff --git a/assets/common/abilities/hammer/retaliate.ron b/assets/common/abilities/hammer/retaliate.ron index 872fe9c..5185d69 100644 --- a/assets/common/abilities/hammer/retaliate.ron +++ b/assets/common/abilities/hammer/retaliate.ron @@ -4,7 +4,7 @@ RiposteMelee( swing_duration: 0.1, recover_duration: 0.2, whiffed_recover_duration: 0.6, - block_strength: 5.0, + block_strength: 2.1, melee_constructor: ( kind: Bash( damage: 8, diff --git a/assets/common/abilities/hammer/tenacity.ron b/assets/common/abilities/hammer/tenacity.ron index 9c73a51..6a08e16 100644 --- a/assets/common/abilities/hammer/tenacity.ron +++ b/assets/common/abilities/hammer/tenacity.ron @@ -3,7 +3,7 @@ SelfBuff( cast_duration: 1.0, recover_duration: 0.1, buff_kind: Tenacity, - buff_strength: 1.0, + buff_strength: 0.65, buff_duration: Some(8.0), energy_cost: 20, enforced_limit: false, diff --git a/assets/common/abilities/hammer/vigorous_bash.ron b/assets/common/abilities/hammer/vigorous_bash.ron index afcfa89..a7db379 100644 --- a/assets/common/abilities/hammer/vigorous_bash.ron +++ b/assets/common/abilities/hammer/vigorous_bash.ron @@ -20,7 +20,7 @@ ComboMelee2( swing: Some(Forward(0.3)), ), ori_modifier: 0.6, - custom_combo: Some((additional: 4, requirement: Some(TargetPoised))), + custom_combo: (conditional: Some((4, TargetPoised))), ), ], energy_cost_per_strike: 10, diff --git a/assets/common/abilities/hammersimple/doublestrike.ron b/assets/common/abilities/hammersimple/doublestrike.ron index c50acbc..b8dc67a 100644 --- a/assets/common/abilities/hammersimple/doublestrike.ron +++ b/assets/common/abilities/hammersimple/doublestrike.ron @@ -11,10 +11,10 @@ ComboMelee2( range: 4.5, angle: 50.0, ), - buildup_duration: 0.6, - swing_duration: 0.25, - hit_timing: 0.5, - recover_duration: 0.25, + buildup_duration: 0.5, + swing_duration: 0.4, + hit_timing: 0.4, + recover_duration: 0.4, movement: ( swing: Some(Forward(0.5)), ), @@ -34,7 +34,7 @@ ComboMelee2( buildup_duration: 1, swing_duration: 0.4, hit_timing: 0.5, - recover_duration: 1.2, + recover_duration: 2.45, movement: ( swing: Some(Forward(0.5)), ), diff --git a/assets/common/abilities/haniwa/soldier/strike.ron b/assets/common/abilities/haniwa/soldier/strike.ron index 66a2978..7663459 100644 --- a/assets/common/abilities/haniwa/soldier/strike.ron +++ b/assets/common/abilities/haniwa/soldier/strike.ron @@ -1,9 +1,9 @@ BasicMelee( energy_cost: 0, - buildup_duration: 0.8, + buildup_duration: 0.85, swing_duration: 0.25, hit_timing: 0.5, - recover_duration: 0.6, + recover_duration: 0.9, melee_constructor: ( kind: Slash( damage: 34, diff --git a/assets/common/abilities/music/banjo.ron b/assets/common/abilities/music/banjo.ron new file mode 100644 index 0000000..18f0a9b --- /dev/null +++ b/assets/common/abilities/music/banjo.ron @@ -0,0 +1,4 @@ +Music( + play_duration: 0.4, + ori_modifier: 1.0, +) \ No newline at end of file diff --git a/assets/common/abilities/shield/basic_guard.ron b/assets/common/abilities/shield/basic_guard.ron index 5d8ac8f..9235b68 100644 --- a/assets/common/abilities/shield/basic_guard.ron +++ b/assets/common/abilities/shield/basic_guard.ron @@ -2,7 +2,7 @@ BasicBlock( buildup_duration: 0.45, recover_duration: 0.2, max_angle: 90.0, - block_strength: 10.0, + block_strength: 5.0, parry_window: ( buildup: true, recover: false, diff --git a/assets/common/abilities/shield/power_guard.ron b/assets/common/abilities/shield/power_guard.ron index fbbd23d..7b0f305 100644 --- a/assets/common/abilities/shield/power_guard.ron +++ b/assets/common/abilities/shield/power_guard.ron @@ -1,8 +1,8 @@ BasicBlock( buildup_duration: 0.5, - recover_duration: 0.25, + recover_duration: 0.4, max_angle: 90.0, - block_strength: 15.0, + block_strength: 10.0, parry_window: ( buildup: true, recover: false, diff --git a/assets/common/abilities/spear/doublestrike.ron b/assets/common/abilities/spear/doublestrike.ron index 76e629d..7fec409 100644 --- a/assets/common/abilities/spear/doublestrike.ron +++ b/assets/common/abilities/spear/doublestrike.ron @@ -46,7 +46,7 @@ ComboMelee2( buildup_duration: 0.5, swing_duration: 0.1, hit_timing: 0.5, - recover_duration: 0.5, + recover_duration: 1.4, movement: ( swing: Some(Forward(0.7)), ), diff --git a/assets/common/abilities/sword/basic_guard.ron b/assets/common/abilities/sword/basic_guard.ron index 79e67f1..41b5938 100644 --- a/assets/common/abilities/sword/basic_guard.ron +++ b/assets/common/abilities/sword/basic_guard.ron @@ -1,8 +1,8 @@ BasicBlock( buildup_duration: 0.25, - recover_duration: 0.2, + recover_duration: 0.4, max_angle: 60.0, - block_strength: 5.0, + block_strength: 2.25, parry_window: ( buildup: true, recover: false, diff --git a/assets/common/abilities/sword/defensive_guard.ron b/assets/common/abilities/sword/defensive_guard.ron index 1bc159d..6c69a3a 100644 --- a/assets/common/abilities/sword/defensive_guard.ron +++ b/assets/common/abilities/sword/defensive_guard.ron @@ -1,8 +1,8 @@ BasicBlock( buildup_duration: 0.4, - recover_duration: 0.15, + recover_duration: 0.4, max_angle: 60.0, - block_strength: 7.5, + block_strength: 2.5, parry_window: ( buildup: true, recover: false, diff --git a/assets/common/abilities/sword/defensive_riposte.ron b/assets/common/abilities/sword/defensive_riposte.ron index 82958ab..52ed70a 100644 --- a/assets/common/abilities/sword/defensive_riposte.ron +++ b/assets/common/abilities/sword/defensive_riposte.ron @@ -4,7 +4,7 @@ RiposteMelee( swing_duration: 0.1, recover_duration: 0.2, whiffed_recover_duration: 0.6, - block_strength: 5.0, + block_strength: 2.1, melee_constructor: ( kind: Slash( damage: 18, diff --git a/assets/common/abilities/vampire/bloodmoon_bat/shapeshift.ron b/assets/common/abilities/vampire/bloodmoon_bat/shapeshift.ron deleted file mode 100644 index 6bf2aab..0000000 --- a/assets/common/abilities/vampire/bloodmoon_bat/shapeshift.ron +++ /dev/null @@ -1,7 +0,0 @@ -Transform( - buildup_duration: 0.1, - recover_duration: 0.1, - target: "common.entity.dungeon.vampire.bloodmoon_heiress", - specifier: Some(Evolve), - allow_players: false, -) diff --git a/assets/common/abilities/vampire/bloodmoon_heiress/singlestrike.ron b/assets/common/abilities/vampire/bloodmoon_heiress/singlestrike.ron index 2f1844f..1b71238 100644 --- a/assets/common/abilities/vampire/bloodmoon_heiress/singlestrike.ron +++ b/assets/common/abilities/vampire/bloodmoon_heiress/singlestrike.ron @@ -14,7 +14,7 @@ ComboMelee2( buildup_duration: 0.35, swing_duration: 0.25, hit_timing: 0.5, - recover_duration: 0.5, + recover_duration: 1.5, movement: ( swing: None, ), diff --git a/assets/common/abilities/vampire/bloodservant/doublestrike.ron b/assets/common/abilities/vampire/bloodservant/doublestrike.ron index e841d91..7491418 100644 --- a/assets/common/abilities/vampire/bloodservant/doublestrike.ron +++ b/assets/common/abilities/vampire/bloodservant/doublestrike.ron @@ -17,8 +17,8 @@ ComboMelee2( chance: 0.1, ))), ), - buildup_duration: 0.4, - swing_duration: 0.08, + buildup_duration: 0.8, + swing_duration: 0.2, hit_timing: 0.5, recover_duration: 0.5, movement: ( @@ -43,10 +43,10 @@ ComboMelee2( chance: 0.1, ))), ), - buildup_duration: 0.7, + buildup_duration: 0.95, swing_duration: 0.1, hit_timing: 0.5, - recover_duration: 0.9, + recover_duration: 1.85, movement: ( swing: Some(Forward(0.5)), ), diff --git a/assets/common/abilities/vampire/executioner/doublestrike.ron b/assets/common/abilities/vampire/executioner/doublestrike.ron index ca5afa8..47e4e54 100644 --- a/assets/common/abilities/vampire/executioner/doublestrike.ron +++ b/assets/common/abilities/vampire/executioner/doublestrike.ron @@ -17,10 +17,10 @@ ComboMelee2( chance: 0.1, ))), ), - buildup_duration: 0.4, + buildup_duration: 0.6, swing_duration: 0.08, hit_timing: 0.5, - recover_duration: 0.5, + recover_duration: 0.7, movement: ( swing: Some(Forward(1.5)), ), @@ -46,7 +46,7 @@ ComboMelee2( buildup_duration: 0.7, swing_duration: 0.1, hit_timing: 0.5, - recover_duration: 1.0, + recover_duration: 2.4, movement: ( swing: Some(Forward(0.5)), ), diff --git a/assets/common/abilities/vampire/harlequin/stab.ron b/assets/common/abilities/vampire/harlequin/stab.ron index 1883b87..46b1fe4 100644 --- a/assets/common/abilities/vampire/harlequin/stab.ron +++ b/assets/common/abilities/vampire/harlequin/stab.ron @@ -1,9 +1,9 @@ BasicMelee( energy_cost: 0, - buildup_duration: 0.2, + buildup_duration: 0.45, swing_duration: 0.05, hit_timing: 0.4, - recover_duration: 0.375, + recover_duration: 0.8, melee_constructor: ( kind: Stab( damage: 15, diff --git a/assets/common/abilities/vampire/strigoi/singlestrike.ron b/assets/common/abilities/vampire/strigoi/singlestrike.ron index cb89ad7..cdc6bca 100644 --- a/assets/common/abilities/vampire/strigoi/singlestrike.ron +++ b/assets/common/abilities/vampire/strigoi/singlestrike.ron @@ -3,7 +3,7 @@ BasicMelee( buildup_duration: 0.5, swing_duration: 0.4, hit_timing: 0.5, - recover_duration: 0.5, + recover_duration: 0.7, melee_constructor: ( kind: Bash( damage: 40, diff --git a/assets/common/credits.ron b/assets/common/credits.ron deleted file mode 100644 index 4a54dad..0000000 --- a/assets/common/credits.ron +++ /dev/null @@ -1,147 +0,0 @@ -( - // See best attribution practices for creative commons licenses: - // https://wiki.creativecommons.org/wiki/Best_practices_for_attribution - - // TODO: consider splitting this into a file for each of common/voxygen/server assets (applications will - // need to ensure to properly combine them) - // - /// Entry format: - /// ``` - /// ( - /// name: "Name of art", - /// // Provide if the asset is from or derived from an external source that can be - /// // linked. - /// source_link: "https://fonts.com/fancyfont/", - /// // Can be omitted if no authors are listed for some reason. - /// // TODO: differentiate original authors and authors of derivative work / modifications? - /// // Maybe for now this can be noted in parentheses like: "AuthorOne (original), AuthorTwo (derivative)"? - /// authors: ["Art creator, Art co-creator"], - /// // Must point to file that actually exists - /// // TODO: would it make sense to allow having a list of files here? - /// asset_path: "relative/path/to/asset.ext", - /// // Can be omitted, but assumed to be GPL3 if not provided. - /// license: "CC BY-SA 3.0", - /// // Link to the license, can be omitted if the license can't be linked and/or a - /// // local copy is provided. - /// license_link: "https://creativecommons.org/licenses/by-sa/3.0/", - /// // Note any modifcations if the original work has been modified - /// modfications: "Added additional characters to the font.", - /// // Any additional attribution notes that may be desired and/or required by the - /// // respective license that can't be conveyed or would be awkward to convey with the - /// // fields above. - /// notes: "Other information", - /// ) - /// ``` - music: [], - fonts: [( - name: "Alkhemikal", - source_link: "https://fontenddev.com/fonts/alkhemikal/", - authors: ["jeti"], - asset_path: "voxygen/font/Alkhemikal.ttf", - license: "CC BY 4.0", - license_link: "https://creativecommons.org/licenses/by/4.0/", - ), ( - name: "bdfUMplus outline", - authors: ["hikaen2"], - asset_path: "voxygen/font/bdfUMplus-outline.ttf", - // License text file included alongside font which should satisfy the requirements. - license: "MIT", - ), ( - name: "HaxrCorp 4089 Cyrillic AltGr", - source_link: "https://fontstruct.com/fontstructions/show/330387/haxrcorp_4089_cyrillic_altgr", - authors: ["sahwar"], - asset_path: "voxygen/font/haxrcorp_4089_cyrillic_altgr.ttf", - license: "CC BY-SA 3.0", - license_link: "https://creativecommons.org/licenses/by-sa/3.0/", - ), ( - name: "HaxrCorp 4089 Cyrillic AltGr Extended", - // original - source_link: "https://fontstruct.com/fontstructions/show/330387/haxrcorp_4089_cyrillic_altgr", - authors: ["sahwar (original)"], - asset_path: "voxygen/font/haxrcorp_4089_cyrillic_altgr_extended.ttf", - license: "CC BY-SA 3.0", - license_link: "https://creativecommons.org/licenses/by-sa/3.0/", - modifications: "Added additional characters.", - notes: "Derived from HaxrCorp 4089 Cyrillic AltGr", - ), ( - name: "Metamorphous", - authors: ["Sorkin Type Co"], - asset_path: "voxygen/font/Metamorphous-Regular.ttf", - // License appears to be satisfied by inclusion of its text file. - license: "OFL", - license_link: "https://scripts.sil.org/OFL", - ), ( - name: "Open Sans", - authors: [""], - asset_path: "voxygen/font/OpenSans-Regular.ttf", - // License appears to be satisfied by inclusion of its text file. - license: "Apache 2.0", - license_link: "http://www.apache.org/licenses/LICENSE-2.0", - ), ( - name: "WenQuanYi Zen Hei", - source_link: "http://wenq.org/wqy2/index.cgi?ZenHei%28en%29", - authors: ["Qianqian Fang", "WenQuanYi project"], - asset_path: "voxygen/font/WenQuanYiZenHei.ttf", - license: "GPL2", - license_link: "http://wenq.org/wqy2/index.cgi?GPL", - ), ( - name: "Wizard", - source_link: "https://fontstruct.com/fontstructions/show/1506403/wizard-5", - authors: ["Omegaville"], - asset_path: "voxygen/font/wizard.ttf", - license: "CC BY-SA 3.0", - license_link: "https://creativecommons.org/licenses/by-sa/3.0/", - ), ( - name: "Wizard Extended", - // original - source_link: "https://fontstruct.com/fontstructions/show/1506403/wizard-5", - authors: ["Omegaville (original)"], - asset_path: "voxygen/font/wizard_extended.ttf", - license: "CC BY-SA 3.0", - license_link: "https://creativecommons.org/licenses/by-sa/3.0/", - modifications: "Added additional characters.", - notes: "Derived from Wizard", - ), ( - name: "Sarabun", - authors: ["Suppakit Chalermlarp"], - asset_path: "voxygen/font/Sarabun-Regular.ttf", - // License appears to be satisfied by inclusion of its text file. - license: "OFL", - license_link: "https://scripts.sil.org/OFL", - ),], - other_art: [], - /// Entry format: - /// ``` - /// ( - /// name: "Contributor name", - /// contributions: "Note about what contributor contributed", // optional, field can be omitted - /// ) - /// ``` - contributors: [( - name: "zesterer", - ), ( - name: "XVar", - ), ( - name: "xMAC94", - ), ( - name: "Timo", - ), ( - name: "Songtronix", - ), ( - name: "Snowram", - ), ( - name: "Slipped", - ), ( - name: "Sharp", - ), ( - name: "Sam", - ), ( - name: "Pfau", - ), ( - name: "imbris", - ), ( - name: "Christof", - ), ( - name: "AngelOnFira", - )], -) diff --git a/assets/common/item_i18n_manifest.ron b/assets/common/item_i18n_manifest.ron index f2f9d1d..9e90de1 100644 --- a/assets/common/item_i18n_manifest.ron +++ b/assets/common/item_i18n_manifest.ron @@ -2530,7 +2530,10 @@ ): "weapon-tool-shamisen", Simple( "common.items.tool.instruments.kora", - ): "weapon-tool-kora", + ): "weapon-tool-kora", + Simple( + "common.items.tool.instruments.banjo", + ): "weapon-tool-banjo", Simple( "common.items.log.bamboo", ): "sprite-wood-item-bamboo", diff --git a/assets/common/items/armor/golemite/helmet.ron b/assets/common/items/armor/golemite/helmet.ron index 724f8d8..c17013e 100644 --- a/assets/common/items/armor/golemite/helmet.ron +++ b/assets/common/items/armor/golemite/helmet.ron @@ -7,7 +7,7 @@ ItemDef( protection: Some(Normal(13.0)), poise_resilience: Some(Normal(4.5)), energy_max: Some(7.0), - energy_reward: Some(-0.07), + energy_reward: Some(-0.05), )), )), quality: Legendary, diff --git a/assets/common/items/armor/misc/neck/ankh_of_life.ron b/assets/common/items/armor/misc/neck/ankh_of_life.ron index 7a8691f..d15bda6 100644 --- a/assets/common/items/armor/misc/neck/ankh_of_life.ron +++ b/assets/common/items/armor/misc/neck/ankh_of_life.ron @@ -1,6 +1,6 @@ ItemDef( legacy_name: "Ankh of Life", - legacy_description: "A unique necklace of unkown origin... You can feel the power flowing through it.", + legacy_description: "A unique necklace of unknown origin... You can feel the power flowing through it.", kind: Armor(( kind: Neck, stats: Direct(( diff --git a/assets/common/items/armor/misc/neck/fang.ron b/assets/common/items/armor/misc/neck/fang.ron index 7ec9af8..fdc2d78 100644 --- a/assets/common/items/armor/misc/neck/fang.ron +++ b/assets/common/items/armor/misc/neck/fang.ron @@ -9,6 +9,6 @@ ItemDef( energy_max: Some(-3.75), )), )), - quality: High, + quality: Moderate, tags: [], ) \ No newline at end of file diff --git a/assets/common/items/keys/bloodmoon_key.ron b/assets/common/items/keys/bloodmoon_key.ron deleted file mode 100644 index 135e544..0000000 --- a/assets/common/items/keys/bloodmoon_key.ron +++ /dev/null @@ -1,10 +0,0 @@ -ItemDef( - legacy_name: "Bloodmoon Key", - legacy_description: "Used to open doors. Will break after use.", - kind: Utility( - kind: Key, - ), - quality: High, - tags: [Utility], -) - diff --git a/assets/common/items/npc_weapons/biped_small/myrmidon/marksman.ron b/assets/common/items/npc_weapons/biped_small/myrmidon/marksman.ron index e383ece..de67e67 100644 --- a/assets/common/items/npc_weapons/biped_small/myrmidon/marksman.ron +++ b/assets/common/items/npc_weapons/biped_small/myrmidon/marksman.ron @@ -6,9 +6,9 @@ ItemDef( hands: Two, stats: ( equip_time_secs: 0.0, - power: 3.0, + power: 1.0, effect_power: 0.8, - speed: 0.6, + speed: 0.85, range: 1.0, energy_efficiency: 1.0, buff_strength: 1.0, diff --git a/assets/common/items/recipes/instruments.ron b/assets/common/items/recipes/instruments.ron index 8e46f6b..eac1ef1 100644 --- a/assets/common/items/recipes/instruments.ron +++ b/assets/common/items/recipes/instruments.ron @@ -13,7 +13,8 @@ ItemDef( "washboard", "sitar", "icy_talharpa", - "kora", + "kora", + "banjo", ], ), quality: Common, diff --git a/assets/common/items/tool/instruments/banjo.ron b/assets/common/items/tool/instruments/banjo.ron new file mode 100644 index 0000000..6c0e4c0 --- /dev/null +++ b/assets/common/items/tool/instruments/banjo.ron @@ -0,0 +1,20 @@ +ItemDef( + legacy_name: "Banjo", + legacy_description: "Banjo.", + kind: Tool(( + kind: Instrument, + hands: Two, + stats: ( + equip_time_secs: 0.4, + power: 0.0, + effect_power: 1.0, + speed: 1.0, + range: 0.0, + energy_efficiency: 1.0, + buff_strength: 1.0, + ), + )), + quality: Common, + tags: [Utility], + ability_spec: Some(Custom("Banjo")), +) diff --git a/assets/common/loot_tables/dungeon/cultist/miniboss.ron b/assets/common/loot_tables/dungeon/cultist/miniboss.ron deleted file mode 100644 index 402bd90..0000000 --- a/assets/common/loot_tables/dungeon/cultist/miniboss.ron +++ /dev/null @@ -1,12 +0,0 @@ -[ - // Currency - (10.0, MultiDrop(Item("common.items.utility.coins"), 500, 1000)), - // Consumables - (5.0, MultiDrop(Item("common.items.consumable.potion_minor"), 4, 8)), - // Back - (1.0, Item("common.items.armor.misc.back.dungeon_purple")), - // Ring - (0.5, LootTable("common.loot_tables.armor.cultist")), - // Glider - (1.0, Item("common.items.glider.blue")), -] diff --git a/assets/common/loot_tables/dungeon/cultist/minion.ron b/assets/common/loot_tables/dungeon/cultist/minion.ron deleted file mode 100644 index 8afdbda..0000000 --- a/assets/common/loot_tables/dungeon/cultist/minion.ron +++ /dev/null @@ -1,8 +0,0 @@ -[ - // Currency - (30.0, MultiDrop(Item("common.items.utility.coins"), 50, 100)), - // Nothing - (30.0, Nothing), - // Special - (1.0, Item("common.items.food.spore_corruption")), -] diff --git a/assets/common/material_stats_manifest.ron b/assets/common/material_stats_manifest.ron index 3242426..5f18c40 100644 --- a/assets/common/material_stats_manifest.ron +++ b/assets/common/material_stats_manifest.ron @@ -330,7 +330,7 @@ protection: Some(Normal(117.0)), poise_resilience: Some(Normal(40.5)), energy_max: Some(63.0), - energy_reward: Some(-0.63), + energy_reward: Some(-0.45), ), }, ) diff --git a/assets/common/recipe_book.ron b/assets/common/recipe_book.ron deleted file mode 100644 index 4a07e17..0000000 --- a/assets/common/recipe_book.ron +++ /dev/null @@ -1,2402 +0,0 @@ -{ - "crafting_hammer": ( - output: ("common.items.tool.craftsman_hammer", 1), - inputs: [ - (Item("common.items.log.wood"), 1, false), - (Item("common.items.mineral.ingot.iron"), 3, false), - ], - craft_sprite: None, - ), - "mortar_pestle": ( - output: ("common.items.crafting_tools.mortar_pestle", 1), - inputs: [ - (Item("common.items.crafting_ing.stones"), 6, false), - (Item("common.items.crafting_ing.bowl"), 1, false), - ], - craft_sprite: Some(CraftingBench), - ), - "sewing_set": ( - output: ("common.items.crafting_tools.sewing_set", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.linen"), 1, false), - (Item("common.items.mineral.ingot.tin"), 1, false), - ], - craft_sprite: Some(CraftingBench), - ), - "velorite_frag": ( - output: ("common.items.mineral.ore.veloritefrag", 3), - inputs: [ - (Item("common.items.mineral.ore.velorite"), 1, false), - (Item("common.items.tool.craftsman_hammer"), 0, false), - ], - craft_sprite: Some(Anvil), - ), - "potion_combustion": ( - output: ("common.items.consumable.potion_combustion", 1), - inputs: [ - (Item("common.items.crafting_ing.empty_vial"), 1, false), - (Item("common.items.crafting_ing.living_embers"), 3, false), - (Item("common.items.crafting_ing.animal_misc.viscous_ooze"), 1, false), - ], - craft_sprite: Some(Cauldron), - ), - "potion_agility": ( - output: ("common.items.consumable.potion_agility", 1), - inputs: [ - (Item("common.items.crafting_ing.empty_vial"), 1, false), - (Item("common.items.mineral.ore.veloritefrag"), 2, false), - (Item("common.items.crafting_ing.animal_misc.raptor_feather"), 2, false), - (Item("common.items.crafting_ing.animal_misc.viscous_ooze"), 3, false), - ], - craft_sprite: Some(Cauldron), - ), - "potion_s": ( - output: ("common.items.consumable.potion_minor", 1), - inputs: [ - (Item("common.items.crafting_ing.empty_vial"), 1, false), - (Item("common.items.food.apple"), 4, false), - (Item("common.items.crafting_ing.honey"), 1, false), - ], - craft_sprite: Some(Cauldron), - ), - "potion_m": ( - output: ("common.items.consumable.potion_med", 1), - inputs: [ - (Item("common.items.consumable.potion_minor"), 2, false), - (Item("common.items.mineral.ore.veloritefrag"), 4, false), - ], - craft_sprite: Some(Cauldron), - ), - "cactus_colada": ( - output: ("common.items.food.cactus_colada", 1), - inputs: [ - (Item("common.items.crafting_ing.empty_vial"), 1, false), - (Item("common.items.crafting_ing.cactus"), 4, false), - ], - craft_sprite: Some(Cauldron), - ), - "collar_basic": ( - output: ("common.items.utility.collar", 1), - inputs: [ - (Item("common.items.crafting_ing.leather.leather_strips"), 5, false), - (Item("common.items.mineral.ingot.iron"), 1, false), - ], - craft_sprite: None, - ), - "bomb_coconut": ( - output: ("common.items.utility.bomb", 1), - inputs: [ - (Item("common.items.crafting_ing.stones"), 10, false), - (Item("common.items.food.coconut"), 2, false), - (Item("common.items.mineral.ore.veloritefrag"), 2, false), - (Item("common.items.crafting_ing.living_embers"), 1, false), - (Item("common.items.crafting_tools.mortar_pestle"), 0, false), - ], - craft_sprite: Some(CraftingBench), - ), - "firework_blue": ( - output: ("common.items.utility.firework_blue", 1), - inputs: [ - (Item("common.items.crafting_ing.twigs"), 1, false), - (Item("common.items.crafting_ing.stones"), 1, false), - (Item("common.items.food.coconut"), 1, false), - (Item("common.items.crafting_ing.living_embers"), 1, false), - (Item("common.items.mineral.ore.veloritefrag"), 1, false), - (Item("common.items.crafting_tools.mortar_pestle"), 0, false), - ], - craft_sprite: Some(CraftingBench), - ), - "firework_green": ( - output: ("common.items.utility.firework_green", 1), - inputs: [ - (Item("common.items.crafting_ing.twigs"), 1, false), - (Item("common.items.crafting_ing.stones"), 1, false), - (Item("common.items.food.coconut"), 1, false), - (Item("common.items.crafting_ing.living_embers"), 1, false), - (Item("common.items.mineral.ore.veloritefrag"), 1, false), - (Item("common.items.crafting_tools.mortar_pestle"), 0, false), - ], - craft_sprite: Some(CraftingBench), - ), - "firework_purple": ( - output: ("common.items.utility.firework_purple", 1), - inputs: [ - (Item("common.items.crafting_ing.twigs"), 1, false), - (Item("common.items.crafting_ing.stones"), 1, false), - (Item("common.items.food.coconut"), 1, false), - (Item("common.items.crafting_ing.living_embers"), 1, false), - (Item("common.items.mineral.ore.veloritefrag"), 1, false), - (Item("common.items.crafting_tools.mortar_pestle"), 0, false), - ], - craft_sprite: Some(CraftingBench), - ), - "firework_red": ( - output: ("common.items.utility.firework_red", 1), - inputs: [ - (Item("common.items.crafting_ing.twigs"), 1, false), - (Item("common.items.crafting_ing.stones"), 1, false), - (Item("common.items.food.coconut"), 1, false), - (Item("common.items.crafting_ing.living_embers"), 1, false), - (Item("common.items.mineral.ore.veloritefrag"), 1, false), - (Item("common.items.crafting_tools.mortar_pestle"), 0, false), - ], - craft_sprite: Some(CraftingBench), - ), - "firework_white": ( - output: ("common.items.utility.firework_white", 1), - inputs: [ - (Item("common.items.crafting_ing.twigs"), 1, false), - (Item("common.items.crafting_ing.stones"), 1, false), - (Item("common.items.food.coconut"), 1, false), - (Item("common.items.crafting_ing.living_embers"), 1, false), - (Item("common.items.mineral.ore.veloritefrag"), 1, false), - (Item("common.items.crafting_tools.mortar_pestle"), 0, false), - ], - craft_sprite: Some(CraftingBench), - ), - "firework_yellow": ( - output: ("common.items.utility.firework_yellow", 1), - inputs: [ - (Item("common.items.crafting_ing.twigs"), 1, false), - (Item("common.items.crafting_ing.stones"), 1, false), - (Item("common.items.food.coconut"), 1, false), - (Item("common.items.crafting_ing.living_embers"), 1, false), - (Item("common.items.mineral.ore.veloritefrag"), 1, false), - (Item("common.items.crafting_tools.mortar_pestle"), 0, false), - ], - craft_sprite: Some(CraftingBench), - ), - "twig": ( - output: ("common.items.crafting_ing.twigs", 4), - inputs: [ - (Item("common.items.log.wood"), 1, false), - ], - craft_sprite: Some(CraftingBench), - ), - "apple_shroom_curry": ( - output: ("common.items.food.apple_mushroom_curry", 1), - inputs: [ - (Item("common.items.food.mushroom"), 4, false), - (Item("common.items.food.coconut"), 1, false), - (Item("common.items.food.apple"), 2, false), - (Item("common.items.crafting_tools.mortar_pestle"), 0, false), - ], - craft_sprite: Some(CookingPot), - ), - "fish_cooked": ( - output: ("common.items.food.meat.fish_cooked", 1), - inputs: [ - (Item("common.items.food.meat.fish_raw"), 1, false), - ], - craft_sprite: Some(CookingPot), - ), - "bird_cooked": ( - output: ("common.items.food.meat.bird_cooked", 1), - inputs: [ - (Item("common.items.food.meat.bird_raw"), 1, false), - ], - craft_sprite: Some(CookingPot), - ), - "bird_large_cooked": ( - output: ("common.items.food.meat.bird_large_cooked", 1), - inputs: [ - (Item("common.items.food.meat.bird_large_raw"), 1, false), - ], - craft_sprite: Some(CookingPot), - ), - "beast_small_cooked": ( - output: ("common.items.food.meat.beast_small_cooked", 1), - inputs: [ - (Item("common.items.food.meat.beast_small_raw"), 1, false), - ], - craft_sprite: Some(CookingPot), - ), - "beast_large_cooked": ( - output: ("common.items.food.meat.beast_large_cooked", 1), - inputs: [ - (Item("common.items.food.meat.beast_large_raw"), 1, false), - ], - craft_sprite: Some(CookingPot), - ), - "tough_cooked": ( - output: ("common.items.food.meat.tough_cooked", 1), - inputs: [ - (Item("common.items.food.meat.tough_raw"), 1, false), - ], - craft_sprite: Some(CookingPot), - ), - "leather_strips": ( - output: ("common.items.crafting_ing.leather.leather_strips", 3), - inputs: [ - (Item("common.items.crafting_ing.leather.simple_leather"), 1, false), - ], - craft_sprite: Some(TanningRack), - ), - "simple_leather": ( - output: ("common.items.crafting_ing.leather.simple_leather", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.animal_hide"), 1, false), - ], - craft_sprite: Some(TanningRack), - ), - "thick_leather": ( - output: ("common.items.crafting_ing.leather.thick_leather", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.tough_hide"), 1, false), - ], - craft_sprite: Some(TanningRack), - ), - "rigid_leather": ( - output: ("common.items.crafting_ing.leather.rigid_leather", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.rugged_hide"), 1, false), - ], - craft_sprite: Some(TanningRack), - ), - "gold_ingot": ( - output: ("common.items.mineral.ingot.gold", 1), - inputs: [ - (Item("common.items.mineral.ore.gold"), 1, false), - ], - craft_sprite: Some(Forge), - ), - "silver_ingot": ( - output: ("common.items.mineral.ingot.silver", 1), - inputs: [ - (Item("common.items.mineral.ore.silver"), 1, false), - ], - craft_sprite: Some(Forge), - ), - "iron_ingot": ( - output: ("common.items.mineral.ingot.iron", 1), - inputs: [ - (Item("common.items.mineral.ore.iron"), 1, false), - ], - craft_sprite: Some(Forge), - ), - "cobalt_ingot": ( - output: ("common.items.mineral.ingot.cobalt", 1), - inputs: [ - (Item("common.items.mineral.ore.cobalt"), 1, false), - ], - craft_sprite: Some(Forge), - ), - "tin_ingot": ( - output: ("common.items.mineral.ingot.tin", 2), - inputs: [ - (Item("common.items.mineral.ore.tin"), 1, false), - ], - craft_sprite: Some(Forge), - ), - "orichalcum_ingot": ( - output: ("common.items.mineral.ingot.orichalcum", 2), - inputs: [ - (Item("common.items.mineral.ingot.copper"), 2, false), - (Item("common.items.crafting_ing.alkahest"), 1, false), - (Item("common.items.mineral.ore.ancient_gold"), 1, false), - ], - craft_sprite: Some(Forge), - ), - "copper_ingot": ( - output: ("common.items.mineral.ingot.copper", 2), - inputs: [ - (Item("common.items.mineral.ore.copper"), 1, false), - ], - craft_sprite: Some(Forge), - ), - "bloodsteel_ingot": ( - output: ("common.items.mineral.ingot.bloodsteel", 2), - inputs: [ - (Item("common.items.mineral.ore.bloodstone"), 1, false), - (Item("common.items.mineral.ingot.iron"), 1, false), - (Item("common.items.mineral.ore.coal"), 1, false), - ], - craft_sprite: Some(Forge), - ), - "steel_ingot": ( - output: ("common.items.mineral.ingot.steel", 1), - inputs: [ - (Item("common.items.mineral.ingot.iron"), 1, false), - (Item("common.items.mineral.ore.coal"), 1, false), - ], - craft_sprite: Some(Forge), - ), - "bronze_ingot": ( - output: ("common.items.mineral.ingot.bronze", 2), - inputs: [ - (Item("common.items.mineral.ingot.copper"), 1, false), - (Item("common.items.mineral.ingot.tin"), 1, false), - ], - craft_sprite: Some(Forge), - ), - /* Only for Christmas event so comment out once done - "diamonds": ( - output: ("common.items.mineral.gem.diamond", 1), - inputs: [ - (Item("common.items.mineral.ore.coal"), 20, false), - ], - craft_sprite: Some(Forge), - ), */ - "cotton": ( - output: ("common.items.crafting_ing.cloth.cotton", 1), - inputs: [ - (Item("common.items.crafting_ing.cotton_boll"), 2, false), - ], - craft_sprite: Some(SpinningWheel), - ), - "linen_flax": ( - output: ("common.items.crafting_ing.cloth.linen", 1), - inputs: [ - (Item("common.items.flowers.wild_flax"), 2, false), - ], - craft_sprite: Some(SpinningWheel), - ), - "cloth_strips": ( - output: ("common.items.crafting_ing.cloth.cloth_strips", 3), - inputs: [ - (Item("common.items.crafting_ing.cloth.linen"), 1, false), - ], - craft_sprite: Some(SpinningWheel), - ), - "silk": ( - output: ("common.items.crafting_ing.cloth.silk", 1), - inputs: [ - (Item("common.items.crafting_ing.sticky_thread"), 1, false), - ], - craft_sprite: Some(SpinningWheel), - ), - "lifecloth": ( - output: ("common.items.crafting_ing.cloth.lifecloth", 1), - inputs: [ - (Item("common.items.crafting_ing.animal_misc.lively_vine"), 1, false), - (Item("common.items.crafting_ing.cloth.cotton"), 1, false), - ], - craft_sprite: Some(SpinningWheel), - ), - "moonweave": ( - output: ("common.items.crafting_ing.cloth.moonweave", 1), - inputs: [ - (Item("common.items.flowers.moonbell"), 2, false), - ], - craft_sprite: Some(SpinningWheel), - ), - "sunsilk": ( - output: ("common.items.crafting_ing.cloth.sunsilk", 1), - inputs: [ - (Item("common.items.flowers.pyrebloom"), 2, false), - ], - craft_sprite: Some(SpinningWheel), - ), - "salad_plain": ( - output: ("common.items.food.plainsalad", 1), - inputs: [ - (Item("common.items.food.lettuce"), 1, false), - (Item("common.items.crafting_ing.bowl"), 1, false), - ], - craft_sprite: None, - ), - "salad_tomato": ( - output: ("common.items.food.tomatosalad", 1), - inputs: [ - (Item("common.items.food.lettuce"), 1, false), - (Item("common.items.food.tomato"), 2, false), - (Item("common.items.crafting_ing.bowl"), 1, false), - ], - craft_sprite: None, - ), - "apples_stick": ( - output: ("common.items.food.apple_stick", 1), - inputs: [ - (Item("common.items.crafting_ing.twigs"), 1, false), - (Item("common.items.food.apple"), 1, false), - ], - craft_sprite: None, - ), - "mushroom_stick": ( - output: ("common.items.food.mushroom_stick", 1), - inputs: [ - (Item("common.items.crafting_ing.twigs"), 1, false), - (Item("common.items.food.mushroom"), 2, false), - ], - craft_sprite: None, - ), - "sunflower_icetea": ( - output: ("common.items.food.sunflower_icetea", 4), - inputs: [ - (Item("common.items.crafting_ing.empty_vial"), 1, false), - (Item("common.items.crafting_ing.animal_misc.icy_fang"), 1, false), - (Item("common.items.flowers.sunflower"), 4, false), - (Item("common.items.crafting_ing.honey"), 1, false), - ], - craft_sprite: Some(Cauldron), - ), - "plain_cloth_glider": ( - output: ("common.items.glider.basic_white", 1), - inputs: [ - (Item("common.items.crafting_ing.twigs"), 5, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 5, false), - (Item("common.items.crafting_ing.cloth.linen"), 10, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(CraftingBench), - ), - "red_cloth_glider": ( - output: ("common.items.glider.basic_red", 1), - inputs: [ - (Item("common.items.crafting_ing.twigs"), 5, false), - (Item("common.items.crafting_ing.cloth.linen_red"), 10, false), - (Item("common.items.crafting_ing.leather.thick_leather"), 4, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(CraftingBench), - ), - "cloverleaf_glider": ( - output: ("common.items.glider.cloverleaf", 1), - inputs: [ - (Item("common.items.log.wood"), 5, false), - (Item("common.items.flowers.plant_fiber"), 3, false), - (Item("common.items.crafting_ing.sentient_seed"), 1, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(CraftingBench), - ), - "leaves_glider": ( - output: ("common.items.glider.leaves", 1), - inputs: [ - (Item("common.items.crafting_ing.twigs"), 5, false), - (Item("common.items.crafting_ing.leather.thick_leather"), 4, false), - (Item("common.items.crafting_ing.cloth.linen"), 5, false), - (Item("common.items.mineral.gem.emerald"), 1, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(CraftingBench), - ), - "sand_raptor_wings": ( - output: ("common.items.glider.sandraptor", 1), - inputs: [ - (Item("common.items.crafting_ing.animal_misc.raptor_feather"), 6, false), - (Item("common.items.crafting_ing.twigs"), 5, false), - (Item("common.items.crafting_ing.leather.thick_leather"), 4, false), - (Item("common.items.crafting_ing.cloth.wool"), 5, false), - (Item("common.items.mineral.gem.sapphire"), 1, false), - (Item("common.items.tool.craftsman_hammer"), 0, false), - ], - craft_sprite: Some(CraftingBench), - ), - "snow_raptor_wings": ( - output: ("common.items.glider.snowraptor", 1), - inputs: [ - (Item("common.items.crafting_ing.animal_misc.raptor_feather"), 6, false), - (Item("common.items.crafting_ing.twigs"), 5, false), - (Item("common.items.crafting_ing.leather.thick_leather"), 4, false), - (Item("common.items.crafting_ing.cloth.silk"), 5, false), - (Item("common.items.crafting_ing.animal_misc.icy_fang"), 1, false), - (Item("common.items.mineral.gem.ruby"), 1, false), - (Item("common.items.tool.craftsman_hammer"), 0, false), - ], - craft_sprite: Some(CraftingBench), - ), - "wood_raptor_wings": ( - output: ("common.items.glider.woodraptor", 1), - inputs: [ - (Item("common.items.crafting_ing.animal_misc.raptor_feather"), 6, false), - (Item("common.items.crafting_ing.twigs"), 5, false), - (Item("common.items.crafting_ing.leather.thick_leather"), 4, false), - (Item("common.items.crafting_ing.cloth.lifecloth"), 5, false), - (Item("common.items.mineral.gem.emerald"), 1, false), - (Item("common.items.tool.craftsman_hammer"), 0, false), - ], - craft_sprite: Some(CraftingBench), - ), - "moonlit_love_glider": ( - output: ("common.items.glider.butterfly3", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.moonweave"), 20, false), - (Item("common.items.crafting_ing.twigs"), 5, false), - (Item("common.items.flowers.red"), 6, false), - (Item("common.items.crafting_ing.sticky_thread"), 8, false), - (Item("common.items.mineral.gem.diamond"), 2, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - (Item("common.items.tool.craftsman_hammer"), 0, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), - "horizon_glider": ( - output: ("common.items.glider.sunset", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.linen_red"), 20, false), - (Item("common.items.crafting_ing.twigs"), 5, false), - (Item("common.items.crafting_ing.cactus"), 8, false), - (Item("common.items.mineral.gem.topaz"), 6, false), - (Item("common.items.mineral.gem.ruby"), 2, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - (Item("common.items.tool.craftsman_hammer"), 0, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), - "winter_wings": ( - output: ("common.items.glider.winter_wings", 1), - inputs: [ - (Item("common.items.crafting_ing.glacial_crystal"), 6, false), - (Item("common.items.crafting_ing.animal_misc.icy_fang"), 32, false), - (Item("common.items.mineral.gem.sapphire"), 18, false), - (Item("common.items.tool.craftsman_hammer"), 0, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), - "healing_sceptre": ( - output: ("common.items.weapons.sceptre.starter_sceptre", 1), - inputs: [ - (Item("common.items.crafting_ing.twigs"), 10, false), - (Item("common.items.crafting_ing.stones"), 0, false), - ], - craft_sprite: None, - ), - "burnt_drumstick": ( - output: ("common.items.weapons.hammer.burnt_drumstick", 1), - inputs: [ - (Item("common.items.food.meat.bird_large_cooked"), 1, false), - ], - craft_sprite: Some(CookingPot), - ), - //ARMOR/HIDE/RAWHIDE - "rawhide_back": ( - output: ("common.items.armor.hide.rawhide.back", 1), - inputs: [ - (Item("common.items.crafting_ing.leather.simple_leather"), 1, false), - ], - craft_sprite: Some(CraftingBench), - ), - "rawhide_belt": ( - output: ("common.items.armor.hide.rawhide.belt", 1), - inputs: [ - (Item("common.items.crafting_ing.leather.simple_leather"), 1, false), - ], - craft_sprite: Some(CraftingBench), - ), - "rawhide_chest": ( - output: ("common.items.armor.hide.rawhide.chest", 1), - inputs: [ - (Item("common.items.crafting_ing.leather.simple_leather"), 5, false), - ], - craft_sprite: Some(CraftingBench), - ), - "rawhide_feet": ( - output: ("common.items.armor.hide.rawhide.foot", 1), - inputs: [ - (Item("common.items.crafting_ing.leather.simple_leather"), 2, false), - ], - craft_sprite: Some(CraftingBench), - ), - "rawhide_hands": ( - output: ("common.items.armor.hide.rawhide.hand", 1), - inputs: [ - (Item("common.items.crafting_ing.leather.simple_leather"), 2, false), - ], - craft_sprite: Some(CraftingBench), - ), - "rawhide_pants": ( - output: ("common.items.armor.hide.rawhide.pants", 1), - inputs: [ - (Item("common.items.crafting_ing.leather.simple_leather"), 4, false), - ], - craft_sprite: Some(CraftingBench), - ), - "rawhide_shoulder": ( - output: ("common.items.armor.hide.rawhide.shoulder", 1), - inputs: [ - (Item("common.items.crafting_ing.leather.simple_leather"), 4, false), - ], - craft_sprite: Some(CraftingBench), - ), - //ARMOR/HIDE/LEATHER - "leather_back": ( - output: ("common.items.armor.hide.leather.back", 1), - inputs: [ - (Item("common.items.crafting_ing.leather.thick_leather"), 3, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), - ], - craft_sprite: Some(CraftingBench), - ), - "leather_belt": ( - output: ("common.items.armor.hide.leather.belt", 1), - inputs: [ - (Item("common.items.crafting_ing.leather.thick_leather"), 2, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), - ], - craft_sprite: Some(CraftingBench), - ), - "leather_chest": ( - output: ("common.items.armor.hide.leather.chest", 1), - inputs: [ - (Item("common.items.crafting_ing.leather.thick_leather"), 10, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 4, false), - ], - craft_sprite: Some(CraftingBench), - ), - "leather_feet": ( - output: ("common.items.armor.hide.leather.foot", 1), - inputs: [ - (Item("common.items.crafting_ing.leather.thick_leather"), 3, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), - ], - craft_sprite: Some(CraftingBench), - ), - "leather_hands": ( - output: ("common.items.armor.hide.leather.hand", 1), - inputs: [ - (Item("common.items.crafting_ing.leather.thick_leather"), 3, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), - ], - craft_sprite: Some(CraftingBench), - ), - "leather_pants": ( - output: ("common.items.armor.hide.leather.pants", 1), - inputs: [ - (Item("common.items.crafting_ing.leather.thick_leather"), 8, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 4, false), - ], - craft_sprite: Some(CraftingBench), - ), - "leather_shoulder": ( - output: ("common.items.armor.hide.leather.shoulder", 1), - inputs: [ - (Item("common.items.crafting_ing.leather.thick_leather"), 8, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 6, false), - ], - craft_sprite: Some(CraftingBench), - ), - //ARMOR/HIDE/SCALE - "scale_back": ( - output: ("common.items.armor.hide.scale.back", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.scales"), 3, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), - ], - craft_sprite: Some(CraftingBench), - ), - "scale_belt": ( - output: ("common.items.armor.hide.scale.belt", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.scales"), 2, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), - ], - craft_sprite: Some(CraftingBench), - ), - "scale_chest": ( - output: ("common.items.armor.hide.scale.chest", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.scales"), 10, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 4, false), - ], - craft_sprite: Some(CraftingBench), - ), - "scale_feet": ( - output: ("common.items.armor.hide.scale.foot", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.scales"), 3, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), - ], - craft_sprite: Some(CraftingBench), - ), - "scale_hands": ( - output: ("common.items.armor.hide.scale.hand", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.scales"), 3, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), - ], - craft_sprite: Some(CraftingBench), - ), - "scale_pants": ( - output: ("common.items.armor.hide.scale.pants", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.scales"), 8, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 4, false), - ], - craft_sprite: Some(CraftingBench), - ), - "scale_shoulder": ( - output: ("common.items.armor.hide.scale.shoulder", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.scales"), 8, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 6, false), - ], - craft_sprite: Some(CraftingBench), - ), - //ARMOR/HIDE/CARAPACE - "carapace_back": ( - output: ("common.items.armor.hide.carapace.back", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.carapace"), 3, false), - (Item("common.items.mineral.ingot.steel"), 1, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), - ], - craft_sprite: Some(CraftingBench), - ), - "carapace_belt": ( - output: ("common.items.armor.hide.carapace.belt", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.carapace"), 2, false), - (Item("common.items.mineral.ingot.steel"), 1, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), - ], - craft_sprite: Some(CraftingBench), - ), - "carapace_chest": ( - output: ("common.items.armor.hide.carapace.chest", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.carapace"), 10, false), - (Item("common.items.mineral.ingot.steel"), 2, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 4, false), - ], - craft_sprite: Some(CraftingBench), - ), - "carapace_feet": ( - output: ("common.items.armor.hide.carapace.foot", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.carapace"), 3, false), - (Item("common.items.mineral.ingot.steel"), 1, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), - ], - craft_sprite: Some(CraftingBench), - ), - "carapace_hands": ( - output: ("common.items.armor.hide.carapace.hand", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.carapace"), 3, false), - (Item("common.items.mineral.ingot.steel"), 1, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), - ], - craft_sprite: Some(CraftingBench), - ), - "carapace_pants": ( - output: ("common.items.armor.hide.carapace.pants", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.carapace"), 8, false), - (Item("common.items.mineral.ingot.steel"), 1, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 4, false), - ], - craft_sprite: Some(CraftingBench), - ), - "carapace_shoulder": ( - output: ("common.items.armor.hide.carapace.shoulder", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.carapace"), 8, false), - (Item("common.items.mineral.ingot.steel"), 1, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 6, false), - ], - craft_sprite: Some(CraftingBench), - ), - //ARMOR/HIDE/PRIMAL - "primal_back": ( - output: ("common.items.armor.hide.primal.back", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.plate"), 3, false), - (Item("common.items.crafting_ing.animal_misc.large_horn"), 1, false), - (Item("common.items.crafting_ing.cloth.lifecloth"), 1, false), - (Item("common.items.crafting_ing.leather.rigid_leather"), 2, false), - ], - craft_sprite: Some(CraftingBench), - ), - "primal_belt": ( - output: ("common.items.armor.hide.primal.belt", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.plate"), 2, false), - (Item("common.items.crafting_ing.cloth.lifecloth"), 1, false), - (Item("common.items.crafting_ing.leather.rigid_leather"), 2, false), - ], - craft_sprite: Some(CraftingBench), - ), - "primal_chest": ( - output: ("common.items.armor.hide.primal.chest", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.plate"), 10, false), - (Item("common.items.crafting_ing.animal_misc.large_horn"), 1, false), - (Item("common.items.crafting_ing.cloth.lifecloth"), 2, false), - (Item("common.items.crafting_ing.leather.rigid_leather"), 4, false), - ], - craft_sprite: Some(CraftingBench), - ), - "primal_feet": ( - output: ("common.items.armor.hide.primal.foot", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.plate"), 3, false), - (Item("common.items.crafting_ing.cloth.lifecloth"), 1, false), - (Item("common.items.crafting_ing.leather.rigid_leather"), 2, false), - ], - craft_sprite: Some(CraftingBench), - ), - "primal_hands": ( - output: ("common.items.armor.hide.primal.hand", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.plate"), 3, false), - (Item("common.items.crafting_ing.cloth.lifecloth"), 1, false), - (Item("common.items.crafting_ing.leather.rigid_leather"), 2, false), - ], - craft_sprite: Some(CraftingBench), - ), - "primal_pants": ( - output: ("common.items.armor.hide.primal.pants", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.plate"), 8, false), - (Item("common.items.crafting_ing.animal_misc.large_horn"), 1, false), - (Item("common.items.crafting_ing.cloth.lifecloth"), 2, false), - (Item("common.items.crafting_ing.leather.rigid_leather"), 4, false), - ], - craft_sprite: Some(CraftingBench), - ), - "primal_shoulder": ( - output: ("common.items.armor.hide.primal.shoulder", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.plate"), 8, false), - (Item("common.items.crafting_ing.animal_misc.large_horn"), 2, false), - (Item("common.items.crafting_ing.cloth.lifecloth"), 2, false), - (Item("common.items.crafting_ing.leather.rigid_leather"), 6, false), - ], - craft_sprite: Some(CraftingBench), - ), - //ARMOR/HIDE/DRAGONSCALE - "dragonscale_back": ( - output: ("common.items.armor.hide.dragonscale.back", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.dragon_scale"), 3, false), - (Item("common.items.mineral.ingot.bloodsteel"), 2, false), - (Item("common.items.crafting_ing.leather.rigid_leather"), 1, false), - (Item("common.items.crafting_ing.hide.scales"), 2, false), - ], - craft_sprite: Some(CraftingBench), - ), - "dragonscale_belt": ( - output: ("common.items.armor.hide.dragonscale.belt", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.dragon_scale"), 2, false), - (Item("common.items.mineral.ingot.bloodsteel"), 2, false), - (Item("common.items.crafting_ing.hide.scales"), 2, false), - ], - craft_sprite: Some(CraftingBench), - ), - "dragonscale_chest": ( - output: ("common.items.armor.hide.dragonscale.chest", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.dragon_scale"), 10, false), - (Item("common.items.mineral.ingot.bloodsteel"), 3, false), - (Item("common.items.crafting_ing.leather.rigid_leather"), 2, false), - (Item("common.items.crafting_ing.hide.scales"), 4, false), - ], - craft_sprite: Some(CraftingBench), - ), - "dragonscale_feet": ( - output: ("common.items.armor.hide.dragonscale.foot", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.dragon_scale"), 3, false), - (Item("common.items.mineral.ingot.bloodsteel"), 2, false), - (Item("common.items.crafting_ing.hide.scales"), 2, false), - ], - craft_sprite: Some(CraftingBench), - ), - "dragonscale_hands": ( - output: ("common.items.armor.hide.dragonscale.hand", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.dragon_scale"), 3, false), - (Item("common.items.mineral.ingot.bloodsteel"), 2, false), - (Item("common.items.crafting_ing.hide.scales"), 2, false), - ], - craft_sprite: Some(CraftingBench), - ), - "dragonscale_pants": ( - output: ("common.items.armor.hide.dragonscale.pants", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.dragon_scale"), 8, false), - (Item("common.items.mineral.ingot.bloodsteel"), 3, false), - (Item("common.items.crafting_ing.leather.rigid_leather"), 1, false), - (Item("common.items.crafting_ing.hide.scales"), 4, false), - ], - craft_sprite: Some(CraftingBench), - ), - "dragonscale_shoulder": ( - output: ("common.items.armor.hide.dragonscale.shoulder", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.dragon_scale"), 8, false), - (Item("common.items.mineral.ingot.bloodsteel"), 3, false), - (Item("common.items.crafting_ing.leather.rigid_leather"), 2, false), - (Item("common.items.crafting_ing.hide.scales"), 6, false), - ], - craft_sprite: Some(CraftingBench), - ), - //ARMOR/CLOTH/LINEN - "linen_back": ( - output: ("common.items.armor.cloth.linen.back", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.linen"), 1, false), - ], - craft_sprite: Some(Loom), - ), - "linen_belt": ( - output: ("common.items.armor.cloth.linen.belt", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.linen"), 1, false), - ], - craft_sprite: Some(Loom), - ), - "linen_chest": ( - output: ("common.items.armor.cloth.linen.chest", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.linen"), 5, false), - ], - craft_sprite: Some(Loom), - ), - "linen_feet": ( - output: ("common.items.armor.cloth.linen.foot", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.linen"), 2, false), - ], - craft_sprite: Some(Loom), - ), - "linen_hands": ( - output: ("common.items.armor.cloth.linen.hand", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.linen"), 2, false), - ], - craft_sprite: Some(Loom), - ), - "linen_pants": ( - output: ("common.items.armor.cloth.linen.pants", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.linen"), 4, false), - ], - craft_sprite: Some(Loom), - ), - "linen_shoulder": ( - output: ("common.items.armor.cloth.linen.shoulder", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.linen"), 4, false), - ], - craft_sprite: Some(Loom), - ), - //ARMOR/CLOTH/WOOLEN - "woolen_back": ( - output: ("common.items.armor.cloth.woolen.back", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.wool"), 3, false), - (Item("common.items.crafting_ing.cloth.cotton"), 2, false), - (Item("common.items.crafting_ing.animal_misc.fur"), 1, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - "woolen_belt": ( - output: ("common.items.armor.cloth.woolen.belt", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.wool"), 1, false), - (Item("common.items.crafting_ing.cloth.cotton"), 1, false), - (Item("common.items.crafting_ing.animal_misc.fur"), 1, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - "woolen_chest": ( - output: ("common.items.armor.cloth.woolen.chest", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.wool"), 8, false), - (Item("common.items.crafting_ing.cloth.cotton"), 2, false), - (Item("common.items.crafting_ing.animal_misc.fur"), 2, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - "woolen_feet": ( - output: ("common.items.armor.cloth.woolen.foot", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.wool"), 2, false), - (Item("common.items.crafting_ing.cloth.cotton"), 1, false), - (Item("common.items.crafting_ing.animal_misc.fur"), 1, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - "woolen_hands": ( - output: ("common.items.armor.cloth.woolen.hand", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.wool"), 2, false), - (Item("common.items.crafting_ing.cloth.cotton"), 1, false), - (Item("common.items.crafting_ing.animal_misc.fur"), 1, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - "woolen_pants": ( - output: ("common.items.armor.cloth.woolen.pants", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.wool"), 6, false), - (Item("common.items.crafting_ing.cloth.cotton"), 2, false), - (Item("common.items.crafting_ing.animal_misc.fur"), 2, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - "woolen_shoulder": ( - output: ("common.items.armor.cloth.woolen.shoulder", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.wool"), 6, false), - (Item("common.items.crafting_ing.cloth.cotton"), 2, false), - (Item("common.items.crafting_ing.animal_misc.fur"), 2, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - //ARMOR/CLOTH/SILKEN - "silken_back": ( - output: ("common.items.armor.cloth.silken.back", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.silk"), 3, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - "silken_belt": ( - output: ("common.items.armor.cloth.silken.belt", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.silk"), 2, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - "silken_chest": ( - output: ("common.items.armor.cloth.silken.chest", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.silk"), 10, false), - (Item("common.items.mineral.gem.amethyst"), 2, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - "silken_feet": ( - output: ("common.items.armor.cloth.silken.foot", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.silk"), 3, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - "silken_hands": ( - output: ("common.items.armor.cloth.silken.hand", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.silk"), 3, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - "silken_pants": ( - output: ("common.items.armor.cloth.silken.pants", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.silk"), 8, false), - (Item("common.items.mineral.gem.amethyst"), 1, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - "silken_shoulder": ( - output: ("common.items.armor.cloth.silken.shoulder", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.silk"), 8, false), - (Item("common.items.mineral.gem.amethyst"), 2, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - //ARMOR/CLOTH/DRUID - "druid_back": ( - output: ("common.items.armor.cloth.druid.back", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.lifecloth"), 3, false), - (Item("common.items.mineral.ore.veloritefrag"), 2, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - "druid_belt": ( - output: ("common.items.armor.cloth.druid.belt", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.lifecloth"), 2, false), - (Item("common.items.mineral.ore.veloritefrag"), 1, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - "druid_chest": ( - output: ("common.items.armor.cloth.druid.chest", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.lifecloth"), 10, false), - (Item("common.items.mineral.ore.veloritefrag"), 3, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - "druid_feet": ( - output: ("common.items.armor.cloth.druid.foot", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.lifecloth"), 3, false), - (Item("common.items.mineral.ore.veloritefrag"), 2, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - "druid_hands": ( - output: ("common.items.armor.cloth.druid.hand", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.lifecloth"), 3, false), - (Item("common.items.mineral.ore.veloritefrag"), 2, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - "druid_pants": ( - output: ("common.items.armor.cloth.druid.pants", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.lifecloth"), 8, false), - (Item("common.items.mineral.ore.veloritefrag"), 2, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - "druid_shoulder": ( - output: ("common.items.armor.cloth.druid.shoulder", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.lifecloth"), 8, false), - (Item("common.items.mineral.ore.veloritefrag"), 2, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - //ARMOR/CLOTH/MOONWEAVE - "moonweave_back": ( - output: ("common.items.armor.cloth.moonweave.back", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.moonweave"), 3, false), - (Item("common.items.crafting_ing.hide.leather_troll"), 3, false), - (Item("common.items.mineral.ingot.silver"), 1, false), - (Item("common.items.mineral.ingot.cobalt"), 2, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - "moonweave_belt": ( - output: ("common.items.armor.cloth.moonweave.belt", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.moonweave"), 2, false), - (Item("common.items.crafting_ing.hide.leather_troll"), 2, false), - (Item("common.items.mineral.ingot.cobalt"), 2, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - "moonweave_chest": ( - output: ("common.items.armor.cloth.moonweave.chest", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.moonweave"), 10, false), - (Item("common.items.crafting_ing.hide.leather_troll"), 5, false), - (Item("common.items.mineral.ingot.silver"), 1, false), - (Item("common.items.mineral.ingot.cobalt"), 3, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - "moonweave_feet": ( - output: ("common.items.armor.cloth.moonweave.foot", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.moonweave"), 3, false), - (Item("common.items.crafting_ing.hide.leather_troll"), 2, false), - (Item("common.items.mineral.ingot.cobalt"), 2, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - "moonweave_hands": ( - output: ("common.items.armor.cloth.moonweave.hand", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.moonweave"), 3, false), - (Item("common.items.crafting_ing.hide.leather_troll"), 2, false), - (Item("common.items.mineral.ingot.cobalt"), 2, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - "moonweave_pants": ( - output: ("common.items.armor.cloth.moonweave.pants", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.moonweave"), 8, false), - (Item("common.items.crafting_ing.hide.leather_troll"), 3, false), - (Item("common.items.mineral.ingot.cobalt"), 3, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - "moonweave_shoulder": ( - output: ("common.items.armor.cloth.moonweave.shoulder", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.moonweave"), 8, false), - (Item("common.items.crafting_ing.hide.leather_troll"), 3, false), - (Item("common.items.mineral.ingot.cobalt"), 3, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - //ARMOR/CLOTH/SUNSILK - "sunsilk_back": ( - output: ("common.items.armor.cloth.sunsilk.back", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.sunsilk"), 3, false), - (Item("common.items.crafting_ing.animal_misc.phoenix_feather"), 1, false), - (Item("common.items.mineral.ingot.gold"), 1, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - "sunsilk_belt": ( - output: ("common.items.armor.cloth.sunsilk.belt", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.sunsilk"), 2, false), - (Item("common.items.mineral.ingot.gold"), 1, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - "sunsilk_chest": ( - output: ("common.items.armor.cloth.sunsilk.chest", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.sunsilk"), 10, false), - (Item("common.items.crafting_ing.animal_misc.phoenix_feather"), 2, false), - (Item("common.items.mineral.ingot.gold"), 2, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - "sunsilk_feet": ( - output: ("common.items.armor.cloth.sunsilk.foot", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.sunsilk"), 3, false), - (Item("common.items.mineral.ingot.gold"), 2, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - "sunsilk_hands": ( - output: ("common.items.armor.cloth.sunsilk.hand", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.sunsilk"), 3, false), - (Item("common.items.mineral.ingot.gold"), 2, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - "sunsilk_pants": ( - output: ("common.items.armor.cloth.sunsilk.pants", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.sunsilk"), 8, false), - (Item("common.items.mineral.ingot.gold"), 3, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - "sunsilk_shoulder": ( - output: ("common.items.armor.cloth.sunsilk.shoulder", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.sunsilk"), 8, false), - (Item("common.items.mineral.ingot.gold"), 3, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(Loom), - ), - //ARMOR/MAIL/BRONZE - "bronze_back": ( - output: ("common.items.armor.mail.bronze.back", 1), - inputs: [ - (Item("common.items.mineral.ingot.bronze"), 3, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), - ], - craft_sprite: Some(Anvil), - ), - "bronze_belt": ( - output: ("common.items.armor.mail.bronze.belt", 1), - inputs: [ - (Item("common.items.mineral.ingot.bronze"), 2, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), - ], - craft_sprite: Some(Anvil), - ), - "bronze_chest": ( - output: ("common.items.armor.mail.bronze.chest", 1), - inputs: [ - (Item("common.items.mineral.ingot.bronze"), 10, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 4, false), - ], - craft_sprite: Some(Anvil), - ), - "bronze_feet": ( - output: ("common.items.armor.mail.bronze.foot", 1), - inputs: [ - (Item("common.items.mineral.ingot.bronze"), 3, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), - ], - craft_sprite: Some(Anvil), - ), - "bronze_hands": ( - output: ("common.items.armor.mail.bronze.hand", 1), - inputs: [ - (Item("common.items.mineral.ingot.bronze"), 3, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), - ], - craft_sprite: Some(Anvil), - ), - "bronze_pants": ( - output: ("common.items.armor.mail.bronze.pants", 1), - inputs: [ - (Item("common.items.mineral.ingot.bronze"), 8, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 4, false), - ], - craft_sprite: Some(Anvil), - ), - "bronze_shoulder": ( - output: ("common.items.armor.mail.bronze.shoulder", 1), - inputs: [ - (Item("common.items.mineral.ingot.bronze"), 8, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 6, false), - ], - craft_sprite: Some(Anvil), - ), - //ARMOR/MAIL/IRON - "iron_back": ( - output: ("common.items.armor.mail.iron.back", 1), - inputs: [ - (Item("common.items.mineral.ingot.iron"), 3, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), - ], - craft_sprite: Some(Anvil), - ), - "iron_belt": ( - output: ("common.items.armor.mail.iron.belt", 1), - inputs: [ - (Item("common.items.mineral.ingot.iron"), 2, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), - ], - craft_sprite: Some(Anvil), - ), - "iron_chest": ( - output: ("common.items.armor.mail.iron.chest", 1), - inputs: [ - (Item("common.items.mineral.ingot.iron"), 10, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 4, false), - ], - craft_sprite: Some(Anvil), - ), - "iron_feet": ( - output: ("common.items.armor.mail.iron.foot", 1), - inputs: [ - (Item("common.items.mineral.ingot.iron"), 3, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), - ], - craft_sprite: Some(Anvil), - ), - "iron_hands": ( - output: ("common.items.armor.mail.iron.hand", 1), - inputs: [ - (Item("common.items.mineral.ingot.iron"), 3, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), - ], - craft_sprite: Some(Anvil), - ), - "iron_pants": ( - output: ("common.items.armor.mail.iron.pants", 1), - inputs: [ - (Item("common.items.mineral.ingot.iron"), 8, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 4, false), - ], - craft_sprite: Some(Anvil), - ), - "iron_shoulder": ( - output: ("common.items.armor.mail.iron.shoulder", 1), - inputs: [ - (Item("common.items.mineral.ingot.iron"), 8, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 6, false), - ], - craft_sprite: Some(Anvil), - ), - //ARMOR/MAIL/STEEL - "steel_back": ( - output: ("common.items.armor.mail.steel.back", 1), - inputs: [ - (Item("common.items.mineral.ingot.steel"), 3, false), - (Item("common.items.crafting_ing.cloth.linen"), 2, false), - ], - craft_sprite: Some(Anvil), - ), - "steel_belt": ( - output: ("common.items.armor.mail.steel.belt", 1), - inputs: [ - (Item("common.items.mineral.ingot.steel"), 2, false), - (Item("common.items.crafting_ing.leather.thick_leather"), 2, false), - ], - craft_sprite: Some(Anvil), - ), - "steel_chest": ( - output: ("common.items.armor.mail.steel.chest", 1), - inputs: [ - (Item("common.items.mineral.ingot.steel"), 10, false), - (Item("common.items.crafting_ing.leather.thick_leather"), 4, false), - ], - craft_sprite: Some(Anvil), - ), - "steel_feet": ( - output: ("common.items.armor.mail.steel.foot", 1), - inputs: [ - (Item("common.items.mineral.ingot.steel"), 3, false), - (Item("common.items.crafting_ing.leather.thick_leather"), 2, false), - ], - craft_sprite: Some(Anvil), - ), - "steel_hands": ( - output: ("common.items.armor.mail.steel.hand", 1), - inputs: [ - (Item("common.items.mineral.ingot.steel"), 3, false), - (Item("common.items.crafting_ing.leather.thick_leather"), 2, false), - ], - craft_sprite: Some(Anvil), - ), - "steel_pants": ( - output: ("common.items.armor.mail.steel.pants", 1), - inputs: [ - (Item("common.items.mineral.ingot.steel"), 8, false), - (Item("common.items.crafting_ing.leather.thick_leather"), 4, false), - ], - craft_sprite: Some(Anvil), - ), - "steel_shoulder": ( - output: ("common.items.armor.mail.steel.shoulder", 1), - inputs: [ - (Item("common.items.mineral.ingot.steel"), 8, false), - (Item("common.items.crafting_ing.leather.thick_leather"), 6, false), - ], - craft_sprite: Some(Anvil), - ), - //ARMOR/MAIL/COBALT - "cobalt_back": ( - output: ("common.items.armor.mail.cobalt.back", 1), - inputs: [ - (Item("common.items.mineral.ingot.cobalt"), 3, false), - (Item("common.items.crafting_ing.cloth.silk"), 4, false), - (Item("common.items.mineral.gem.sapphire"), 2, false), - ], - craft_sprite: Some(Anvil), - ), - "cobalt_belt": ( - output: ("common.items.armor.mail.cobalt.belt", 1), - inputs: [ - (Item("common.items.mineral.ingot.cobalt"), 2, false), - (Item("common.items.crafting_ing.cloth.silk"), 2, false), - (Item("common.items.mineral.gem.sapphire"), 1, false), - ], - craft_sprite: Some(Anvil), - ), - "cobalt_chest": ( - output: ("common.items.armor.mail.cobalt.chest", 1), - inputs: [ - (Item("common.items.mineral.ingot.cobalt"), 10, false), - (Item("common.items.crafting_ing.cloth.silk"), 3, false), - (Item("common.items.mineral.gem.sapphire"), 3, false), - ], - craft_sprite: Some(Anvil), - ), - "cobalt_feet": ( - output: ("common.items.armor.mail.cobalt.foot", 1), - inputs: [ - (Item("common.items.mineral.ingot.cobalt"), 3, false), - (Item("common.items.crafting_ing.cloth.silk"), 3, false), - ], - craft_sprite: Some(Anvil), - ), - "cobalt_hands": ( - output: ("common.items.armor.mail.cobalt.hand", 1), - inputs: [ - (Item("common.items.mineral.ingot.cobalt"), 3, false), - (Item("common.items.crafting_ing.cloth.silk"), 3, false), - ], - craft_sprite: Some(Anvil), - ), - "cobalt_pants": ( - output: ("common.items.armor.mail.cobalt.pants", 1), - inputs: [ - (Item("common.items.mineral.ingot.cobalt"), 8, false), - (Item("common.items.crafting_ing.cloth.silk"), 3, false), - (Item("common.items.mineral.gem.sapphire"), 2, false), - ], - craft_sprite: Some(Anvil), - ), - "cobalt_shoulder": ( - output: ("common.items.armor.mail.cobalt.shoulder", 1), - inputs: [ - (Item("common.items.mineral.ingot.cobalt"), 8, false), - (Item("common.items.crafting_ing.cloth.silk"), 3, false), - (Item("common.items.mineral.gem.sapphire"), 2, false), - ], - craft_sprite: Some(Anvil), - ), - //ARMOR/MAIL/BLOODSTEEL - "bloodsteel_back": ( - output: ("common.items.armor.mail.bloodsteel.back", 1), - inputs: [ - (Item("common.items.mineral.ingot.bloodsteel"), 3, false), - (Item("common.items.crafting_ing.hide.carapace"), 1, false), - (Item("common.items.crafting_ing.cloth.lifecloth"), 3, false), - (Item("common.items.mineral.gem.ruby"), 1, false), - ], - craft_sprite: Some(Anvil), - ), - "bloodsteel_belt": ( - output: ("common.items.armor.mail.bloodsteel.belt", 1), - inputs: [ - (Item("common.items.mineral.ingot.bloodsteel"), 2, false), - (Item("common.items.crafting_ing.hide.carapace"), 2, false), - ], - craft_sprite: Some(Anvil), - ), - "bloodsteel_chest": ( - output: ("common.items.armor.mail.bloodsteel.chest", 1), - inputs: [ - (Item("common.items.mineral.ingot.bloodsteel"), 10, false), - (Item("common.items.crafting_ing.hide.carapace"), 4, false), - (Item("common.items.mineral.gem.diamond"), 2, false), - (Item("common.items.mineral.gem.ruby"), 2, false), - ], - craft_sprite: Some(Anvil), - ), - "bloodsteel_feet": ( - output: ("common.items.armor.mail.bloodsteel.foot", 1), - inputs: [ - (Item("common.items.mineral.ingot.bloodsteel"), 3, false), - (Item("common.items.crafting_ing.hide.carapace"), 2, false), - ], - craft_sprite: Some(Anvil), - ), - "bloodsteel_hands": ( - output: ("common.items.armor.mail.bloodsteel.hand", 1), - inputs: [ - (Item("common.items.mineral.ingot.bloodsteel"), 3, false), - (Item("common.items.crafting_ing.hide.carapace"), 2, false), - ], - craft_sprite: Some(Anvil), - ), - "bloodsteel_pants": ( - output: ("common.items.armor.mail.bloodsteel.pants", 1), - inputs: [ - (Item("common.items.mineral.ingot.bloodsteel"), 8, false), - (Item("common.items.crafting_ing.hide.carapace"), 3, false), - (Item("common.items.mineral.gem.ruby"), 2, false), - ], - craft_sprite: Some(Anvil), - ), - "bloodsteel_shoulder": ( - output: ("common.items.armor.mail.bloodsteel.shoulder", 1), - inputs: [ - (Item("common.items.mineral.ingot.bloodsteel"), 8, false), - (Item("common.items.crafting_ing.hide.carapace"), 4, false), - (Item("common.items.mineral.gem.ruby"), 2, false), - ], - craft_sprite: Some(Anvil), - ), - //ARMOR/MAIL/ORICHALCUM - "orichalcum_back": ( - output: ("common.items.armor.mail.orichalcum.back", 1), - inputs: [ - (Item("common.items.mineral.ingot.orichalcum"), 3, false), - (Item("common.items.crafting_ing.hide.plate"), 3, false), - (Item("common.items.crafting_ing.cloth.moonweave"), 4, false), - (Item("common.items.mineral.gem.diamond"), 2, false), - ], - craft_sprite: Some(Anvil), - ), - "orichalcum_belt": ( - output: ("common.items.armor.mail.orichalcum.belt", 1), - inputs: [ - (Item("common.items.mineral.ingot.orichalcum"), 2, false), - (Item("common.items.crafting_ing.hide.plate"), 2, false), - (Item("common.items.mineral.gem.diamond"), 2, false), - ], - craft_sprite: Some(Anvil), - ), - "orichalcum_chest": ( - output: ("common.items.armor.mail.orichalcum.chest", 1), - inputs: [ - (Item("common.items.mineral.ingot.orichalcum"), 10, false), - (Item("common.items.crafting_ing.hide.plate"), 4, false), - (Item("common.items.mineral.gem.diamond"), 3, false), - ], - craft_sprite: Some(Anvil), - ), - "orichalcum_feet": ( - output: ("common.items.armor.mail.orichalcum.foot", 1), - inputs: [ - (Item("common.items.mineral.ingot.orichalcum"), 3, false), - (Item("common.items.crafting_ing.hide.plate"), 2, false), - (Item("common.items.mineral.gem.diamond"), 1, false), - ], - craft_sprite: Some(Anvil), - ), - "orichalcum_hands": ( - output: ("common.items.armor.mail.orichalcum.hand", 1), - inputs: [ - (Item("common.items.mineral.ingot.orichalcum"), 3, false), - (Item("common.items.crafting_ing.hide.plate"), 2, false), - (Item("common.items.mineral.gem.diamond"), 1, false), - ], - craft_sprite: Some(Anvil), - ), - "orichalcum_pants": ( - output: ("common.items.armor.mail.orichalcum.pants", 1), - inputs: [ - (Item("common.items.mineral.ingot.orichalcum"), 8, false), - (Item("common.items.crafting_ing.hide.plate"), 3, false), - (Item("common.items.mineral.gem.diamond"), 2, false), - ], - craft_sprite: Some(Anvil), - ), - "orichalcum_shoulder": ( - output: ("common.items.armor.mail.orichalcum.shoulder", 1), - inputs: [ - (Item("common.items.mineral.ingot.orichalcum"), 8, false), - (Item("common.items.crafting_ing.hide.plate"), 4, false), - (Item("common.items.mineral.gem.diamond"), 4, false), - ], - craft_sprite: Some(Anvil), - ), - "orichalcum_head": ( - output: ("common.items.armor.mail.orichalcum.head", 1), - inputs: [ - (Item("common.items.mineral.ingot.orichalcum"), 3, false), - (Item("common.items.crafting_ing.hide.plate"), 2, false), - (Item("common.items.crafting_ing.cloth.moonweave"), 2, false), - (Item("common.items.mineral.gem.diamond"), 1, false), - ], - craft_sprite: Some(Anvil), - ), - //ARMOR/BRINESTONE - "brinestone_back": ( - output: ("common.items.armor.brinestone.back", 1), - inputs: [ - (Item("common.items.mineral.ingot.gold"), 1, false), - (Item("common.items.crafting_ing.brinestone"), 3, false), - (Item("common.items.crafting_ing.hide.plate"), 3, false), - ], - craft_sprite: Some(Anvil), - ), - "brinestone_belt": ( - output: ("common.items.armor.brinestone.belt", 1), - inputs: [ - (Item("common.items.mineral.ingot.gold"), 1, false), - (Item("common.items.crafting_ing.brinestone"), 2, false), - (Item("common.items.crafting_ing.hide.plate"), 1, false), - ], - craft_sprite: Some(Anvil), - ), - "brinestone_chest": ( - output: ("common.items.armor.brinestone.chest", 1), - inputs: [ - (Item("common.items.mineral.ingot.gold"), 4, false), - (Item("common.items.crafting_ing.brinestone"), 10, false), - (Item("common.items.crafting_ing.hide.plate"), 4, false), - (Item("common.items.crafting_ing.abyssal_heart"), 1, false), - (Item("common.items.crafting_ing.coral_branch"), 2, false), - ], - craft_sprite: Some(Anvil), - ), - "brinestone_feet": ( - output: ("common.items.armor.brinestone.foot", 1), - inputs: [ - (Item("common.items.mineral.ingot.gold"), 1, false), - (Item("common.items.crafting_ing.brinestone"), 3, false), - (Item("common.items.crafting_ing.hide.plate"), 1, false), - (Item("common.items.crafting_ing.coral_branch"), 1, false), - ], - craft_sprite: Some(Anvil), - ), - "brinestone_hands": ( - output: ("common.items.armor.brinestone.hand", 1), - inputs: [ - (Item("common.items.mineral.ingot.gold"), 1, false), - (Item("common.items.crafting_ing.brinestone"), 3, false), - (Item("common.items.crafting_ing.hide.plate"), 1, false), - (Item("common.items.crafting_ing.coral_branch"), 1, false), - ], - craft_sprite: Some(Anvil), - ), - "brinestone_pants": ( - output: ("common.items.armor.brinestone.pants", 1), - inputs: [ - (Item("common.items.mineral.ingot.gold"), 2, false), - (Item("common.items.crafting_ing.brinestone"), 8, false), - (Item("common.items.crafting_ing.hide.plate"), 3, false), - ], - craft_sprite: Some(Anvil), - ), - "brinestone_shoulder": ( - output: ("common.items.armor.brinestone.shoulder", 1), - inputs: [ - (Item("common.items.mineral.ingot.gold"), 2, false), - (Item("common.items.crafting_ing.brinestone"), 8, false), - (Item("common.items.crafting_ing.hide.plate"), 4, false), - (Item("common.items.crafting_ing.pearl"), 4, false), - (Item("common.items.crafting_ing.coral_branch"), 2, false), - ], - craft_sprite: Some(Anvil), - ), - "brinestone_crown": ( - output: ("common.items.armor.brinestone.crown", 1), - inputs: [ - (Item("common.items.mineral.ingot.gold"), 2, false), - (Item("common.items.crafting_ing.brinestone"), 3, false), - (Item("common.items.crafting_ing.pearl"), 1, false), - (Item("common.items.crafting_ing.coral_branch"), 2, false), - ], - craft_sprite: Some(Anvil), - ), - "seashell_necklace": ( - output: ("common.items.armor.misc.neck.shell", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.linen"), 2, false), - (Item("common.items.mineral.gem.sapphire"), 1, false), - (Item("common.items.crafting_ing.seashells"), 3, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(CraftingBench), - ), - "red_cloth": ( - output: ("common.items.crafting_ing.cloth.linen_red", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.linen"), 1, false), - (Item("common.items.flowers.red"), 1, false), - (Item("common.items.crafting_tools.mortar_pestle"), 0, false), - ], - craft_sprite: None, - ), - "tiny_red_pouch": ( - output: ("common.items.armor.misc.bag.tiny_red_pouch", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.linen_red"), 3, false), - ], - craft_sprite: None, - ), - "tiny_leather_pouch": ( - output: ("common.items.armor.misc.bag.tiny_leather_pouch", 1), - inputs: [ - (Item("common.items.crafting_ing.leather.simple_leather"), 3, false), - ], - craft_sprite: None, - ), - "knitted_red_pouch": ( - output: ("common.items.armor.misc.bag.knitted_red_pouch", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.wool"), 6, false), - (Item("common.items.armor.misc.bag.tiny_red_pouch"), 2, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: None, - ), - "reliable_leather_pack": ( - output: ("common.items.armor.misc.bag.reliable_leather_pack", 1), - inputs: [ - (Item("common.items.crafting_ing.leather.thick_leather"), 3, false), - (Item("common.items.armor.misc.bag.tiny_leather_pouch"), 2, false), - (Item("common.items.mineral.ingot.iron"), 1, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: None, - ), - "woven_red_bag": ( - output: ("common.items.armor.misc.bag.woven_red_bag", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.silk"), 6, false), - (Item("common.items.armor.misc.bag.knitted_red_pouch"), 1, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: None, - ), - "traveler_backpack": ( - output: ("common.items.armor.misc.back.backpack", 1), - inputs: [ - (Item("common.items.crafting_ing.leather.rigid_leather"), 4, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), - (Item("common.items.armor.misc.bag.tiny_leather_pouch"), 2, false), - (Item("common.items.mineral.gem.diamond"), 2, false), - (Item("common.items.mineral.ingot.iron"), 1, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(CraftingBench), - ), - "sturdy_red_backpack": ( - output: ("common.items.armor.misc.bag.sturdy_red_backpack", 1), - inputs: [ - (Item("common.items.mineral.gem.amethyst"), 2, false), - (Item("common.items.crafting_ing.cloth.linen_red"), 3, false), - (Item("common.items.crafting_ing.cloth.silk"), 6, false), - (Item("common.items.armor.misc.bag.woven_red_bag"), 1, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: None, - ), - "troll_hide_pack": ( - output: ("common.items.armor.misc.bag.troll_hide_pack", 1), - inputs: [ - (Item("common.items.crafting_ing.hide.leather_troll"), 6, false), - (Item("common.items.crafting_ing.leather.rigid_leather"), 2, false), - (Item("common.items.mineral.gem.diamond"), 1, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: None, - ), - "mindflayer_spellbag": ( - output: ("common.items.armor.misc.bag.mindflayer_spellbag", 1), - inputs: [ - (Item("common.items.crafting_ing.mindflayer_bag_damaged"), 1, false), - (Item("common.items.crafting_ing.leather.rigid_leather"), 8, false), - (Item("common.items.mineral.gem.diamond"), 4, false), - (Item("common.items.crafting_ing.cloth.moonweave"), 10, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: None, - ), - "abyssal_gorget": ( - output: ("common.items.armor.misc.neck.abyssal_gorget", 1), - inputs: [ - (Item("common.items.crafting_ing.coral_branch"), 10, false), - (Item("common.items.crafting_ing.abyssal_heart"), 2, false), - (Item("common.items.crafting_ing.cloth.linen"), 2, false), - ], - craft_sprite: Some(CraftingBench), - ), - "tin_pickaxe": ( - output: ("common.items.tool.pickaxe_stone", 1), - inputs: [ - (Item("common.items.crafting_ing.twigs"), 4, false), - (Item("common.items.crafting_ing.stones"), 5, false), - ], - craft_sprite: None, - ), - "steel_pickaxe": ( - output: ("common.items.tool.pickaxe_steel", 1), - inputs: [ - (Item("common.items.log.hardwood"), 1, false), - (Item("common.items.crafting_ing.cloth.lifecloth"), 1, false), - (Item("common.items.mineral.ingot.steel"), 3, false), - (Item("common.items.tool.craftsman_hammer"), 0, false), - ], - craft_sprite: Some(Anvil), - ), - "fang_necklace": ( - output: ("common.items.armor.misc.neck.fang", 1), - inputs: [ - (Item("common.items.crafting_ing.leather.leather_strips"), 3, false), - (Item("common.items.crafting_ing.animal_misc.sharp_fang"), 15, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), - "honeycomb_pendant": ( - output: ("common.items.armor.misc.neck.honeycomb_pendant", 1), - inputs: [ - (Item("common.items.crafting_ing.sticky_thread"), 3, false), - (Item("common.items.crafting_ing.honey"), 15, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), - "diamond_ring": ( - output: ("common.items.armor.misc.ring.diamond", 1), - inputs: [ - (Item("common.items.mineral.ingot.gold"), 1, false), - (Item("common.items.mineral.gem.diamond"), 1, false), - ], - craft_sprite: Some(CraftingBench), - ), - "diamond_necklace": ( - output: ("common.items.armor.misc.neck.diamond", 1), - inputs: [ - (Item("common.items.mineral.ingot.gold"), 4, false), - (Item("common.items.mineral.gem.diamond"), 6, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), - "ruby_ring": ( - output: ("common.items.armor.misc.ring.ruby", 1), - inputs: [ - (Item("common.items.mineral.ingot.silver"), 1, false), - (Item("common.items.mineral.gem.ruby"), 1, false), - ], - craft_sprite: Some(CraftingBench), - ), - "ruby_necklace": ( - output: ("common.items.armor.misc.neck.ruby", 1), - inputs: [ - (Item("common.items.mineral.ingot.silver"), 4, false), - (Item("common.items.mineral.gem.ruby"), 6, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), - "emerald_ring": ( - output: ("common.items.armor.misc.ring.emerald", 1), - inputs: [ - (Item("common.items.mineral.ingot.cobalt"), 1, false), - (Item("common.items.mineral.gem.emerald"), 1, false), - ], - craft_sprite: Some(CraftingBench), - ), - "emerald_necklace": ( - output: ("common.items.armor.misc.neck.emerald", 1), - inputs: [ - (Item("common.items.mineral.ingot.cobalt"), 4, false), - (Item("common.items.mineral.gem.emerald"), 6, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), - "sapphire_ring": ( - output: ("common.items.armor.misc.ring.sapphire", 1), - inputs: [ - (Item("common.items.mineral.ingot.iron"), 1, false), - (Item("common.items.mineral.gem.sapphire"), 1, false), - ], - craft_sprite: Some(CraftingBench), - ), - "sapphire_necklace": ( - output: ("common.items.armor.misc.neck.sapphire", 1), - inputs: [ - (Item("common.items.mineral.ingot.iron"), 2, false), - (Item("common.items.mineral.gem.sapphire"), 3, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), - "topaz_ring": ( - output: ("common.items.armor.misc.ring.topaz", 1), - inputs: [ - (Item("common.items.mineral.ingot.copper"), 1, false), - (Item("common.items.mineral.gem.topaz"), 1, false), - ], - craft_sprite: Some(CraftingBench), - ), - "topaz_necklace": ( - output: ("common.items.armor.misc.neck.topaz", 1), - inputs: [ - (Item("common.items.mineral.ingot.copper"), 2, false), - (Item("common.items.mineral.gem.topaz"), 3, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), - "amethyst_ring": ( - output: ("common.items.armor.misc.ring.amethyst", 1), - inputs: [ - (Item("common.items.mineral.ingot.tin"), 1, false), - (Item("common.items.mineral.gem.amethyst"), 1, false), - ], - craft_sprite: Some(CraftingBench), - ), - "amethyst_necklace": ( - output: ("common.items.armor.misc.neck.amethyst", 1), - inputs: [ - (Item("common.items.mineral.ingot.tin"), 2, false), - (Item("common.items.mineral.gem.amethyst"), 3, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), - "merchant_turban": ( - output: ("common.items.armor.merchant.turban", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.linen_red"), 20, false), - (Item("common.items.mineral.gem.diamond"), 4, false), - (Item("common.items.crafting_ing.mindflayer_bag_damaged"), 1, false), - (Item("common.items.crafting_tools.sewing_set"), 0, false), - ], - craft_sprite: Some(CraftingBench), - ), - "winged_coronet": ( - output: ("common.items.armor.misc.head.winged_coronet", 1), - inputs: [ - (Item("common.items.mineral.gem.emerald"), 1, false), - (Item("common.items.mineral.ingot.gold"), 4, false), - (Item("common.items.crafting_ing.animal_misc.raptor_feather"), 2, false), - ], - craft_sprite: Some(CraftingBench), - ), - "abyssal_ring": ( - output: ("common.items.armor.misc.ring.abyssal_ring", 1), - inputs: [ - (Item("common.items.crafting_ing.coral_branch"), 2, false), - (Item("common.items.mineral.ingot.gold"), 1, false), - (Item("common.items.crafting_ing.pearl"), 1, false), - ], - craft_sprite: Some(CraftingBench), - ), -/// LANTERN - "black_lantern": ( - output: ("common.items.lantern.black_0", 1), - inputs: [ - (Item("common.items.mineral.ingot.tin"), 5, false), - (Item("common.items.crafting_ing.living_embers"), 2, false), - ], - craft_sprite: Some(Anvil), - ), - "polaris": ( - output: ("common.items.lantern.polaris", 1), - inputs: [ - (Item("common.items.crafting_ing.glacial_crystal"), 3, false), - (Item("common.items.crafting_ing.animal_misc.icy_fang"), 16, false), - (Item("common.items.crafting_ing.pearl"), 1, false), - (Item("common.items.tool.craftsman_hammer"), 0, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), - "delvers_lamp": ( - output: ("common.items.lantern.delvers_lamp", 1), - inputs: [ - (Item("common.items.crafting_ing.dwarven_battery"), 1, false), - (Item("common.items.crafting_ing.twigs"), 16, false), - (Item("common.items.crafting_ing.pearl"), 1, false), - (Item("common.items.tool.craftsman_hammer"), 0, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), -/// MODULAR WEAPONS/SWORDS/SECONDARY COMPONENTS - "short_hilt": ( - output: ("common.items.modular.weapon.secondary.sword.short", 1), - inputs: [ - (Item("common.items.log.wood"), 1, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 1, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), - "medium_hilt": ( - output: ("common.items.modular.weapon.secondary.sword.medium", 1), - inputs: [ - (Item("common.items.log.wood"), 1, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 1, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), - "long_hilt": ( - output: ("common.items.modular.weapon.secondary.sword.long", 1), - inputs: [ - (Item("common.items.log.wood"), 1, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 1, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), -/// MODULAR WEAPONS/HAMMERS/SECONDARY COMPONENTS - "short_hammer_haft": ( - output: ("common.items.modular.weapon.secondary.hammer.short", 1), - inputs: [ - (Item("common.items.log.wood"), 1, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), - "medium_hammer_haft": ( - output: ("common.items.modular.weapon.secondary.hammer.medium", 1), - inputs: [ - (Item("common.items.log.wood"), 1, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), - "long_hammer_haft": ( - output: ("common.items.modular.weapon.secondary.hammer.long", 1), - inputs: [ - (Item("common.items.log.wood"), 1, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), -/// MODULAR WEAPONS/AXES/SECONDARY COMPONENTS - "short_axe_haft": ( - output: ("common.items.modular.weapon.secondary.axe.short", 1), - inputs: [ - (Item("common.items.log.wood"), 1, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), - "medium_axe_haft": ( - output: ("common.items.modular.weapon.secondary.axe.medium", 1), - inputs: [ - (Item("common.items.log.wood"), 1, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), - "long_axe_haft": ( - output: ("common.items.modular.weapon.secondary.axe.long", 1), - inputs: [ - (Item("common.items.log.wood"), 1, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), -/// MODULAR WEAPONS/BOWS/SECONDARY COMPONENTS - "short_bow_grip": ( - output: ("common.items.modular.weapon.secondary.bow.short", 1), - inputs: [ - (Item("common.items.flowers.plant_fiber"), 3, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), - "medium_bow_grip": ( - output: ("common.items.modular.weapon.secondary.bow.medium", 1), - inputs: [ - (Item("common.items.flowers.plant_fiber"), 3, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), - "long_bow_grip": ( - output: ("common.items.modular.weapon.secondary.bow.long", 1), - inputs: [ - (Item("common.items.flowers.plant_fiber"), 3, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 2, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), -/// MODULAR WEAPONS/FIRE STAFFS/SECONDARY COMPONENTS - "light_pyrocore": ( - output: ("common.items.modular.weapon.secondary.staff.light", 1), - inputs: [ - (Item("common.items.crafting_ing.living_embers"), 1, false), - (Item("common.items.mineral.ore.veloritefrag"), 3, false), - ], - craft_sprite: Some(Cauldron), - is_recycling: false, - ), - "medium_pyrocore": ( - output: ("common.items.modular.weapon.secondary.staff.medium", 1), - inputs: [ - (Item("common.items.crafting_ing.living_embers"), 1, false), - (Item("common.items.mineral.ore.veloritefrag"), 3, false), - ], - craft_sprite: Some(Cauldron), - is_recycling: false, - ), - "heavy_pyrocore": ( - output: ("common.items.modular.weapon.secondary.staff.heavy", 1), - inputs: [ - (Item("common.items.crafting_ing.living_embers"), 1, false), - (Item("common.items.mineral.ore.veloritefrag"), 3, false), - ], - craft_sprite: Some(Cauldron), - is_recycling: false, - ), -/// MODULAR WEAPONS/NATURE SCEPTRES/SECONDARY COMPONENTS - "light_biocore": ( - output: ("common.items.modular.weapon.secondary.sceptre.light", 1), - inputs: [ - (Item("common.items.crafting_ing.sentient_seed"), 1, false), - (Item("common.items.mineral.ore.veloritefrag"), 3, false), - ], - craft_sprite: Some(Cauldron), - is_recycling: false, - ), - "medium_biocore": ( - output: ("common.items.modular.weapon.secondary.sceptre.medium", 1), - inputs: [ - (Item("common.items.crafting_ing.sentient_seed"), 1, false), - (Item("common.items.mineral.ore.veloritefrag"), 3, false), - ], - craft_sprite: Some(Cauldron), - is_recycling: false, - ), - "heavy_biocore": ( - output: ("common.items.modular.weapon.secondary.sceptre.heavy", 1), - inputs: [ - (Item("common.items.crafting_ing.sentient_seed"), 1, false), - (Item("common.items.mineral.ore.veloritefrag"), 3, false), - ], - craft_sprite: Some(Cauldron), - is_recycling: false, - ), - // musical instruments - "double_bass": ( - output: ("common.items.tool.instruments.double_bass", 1), - inputs: [ - (Item("common.items.log.hardwood"), 6, false), - (Item("common.items.crafting_ing.resin"), 3, false), - (Item("common.items.flowers.plant_fiber"), 4, false), - (Item("common.items.mineral.ingot.iron"), 1, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), - "flute": ( - output: ("common.items.tool.instruments.flute", 1), - inputs: [ - (Item("common.items.log.hardwood"), 1, false), - (Item("common.items.crafting_ing.resin"), 1, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), - "guitar": ( - output: ("common.items.tool.instruments.guitar", 1), - inputs: [ - (Item("common.items.log.hardwood"), 4, false), - (Item("common.items.crafting_ing.resin"), 2, false), - (Item("common.items.flowers.plant_fiber"), 6, false), - (Item("common.items.mineral.ingot.iron"), 2, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), - "lyre": ( - output: ("common.items.tool.instruments.lyre", 1), - inputs: [ - (Item("common.items.log.hardwood"), 3, false), - (Item("common.items.crafting_ing.resin"), 2, false), - (Item("common.items.flowers.plant_fiber"), 5, false), - (Item("common.items.mineral.ingot.iron"), 1, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), - "kalimba": ( - output: ("common.items.tool.instruments.kalimba", 1), - inputs: [ - (Item("common.items.log.hardwood"), 2, false), - (Item("common.items.crafting_ing.resin"), 1, false), - (Item("common.items.mineral.ingot.iron"), 4, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), - "lute": ( - output: ("common.items.tool.instruments.lute", 1), - inputs: [ - (Item("common.items.log.hardwood"), 2, false), - (Item("common.items.crafting_ing.resin"), 1, false), - (Item("common.items.flowers.plant_fiber"), 3, false), - (Item("common.items.mineral.ingot.iron"), 1, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), - "melodica": ( - output: ("common.items.tool.instruments.melodica", 1), - inputs: [ - (Item("common.items.log.hardwood"), 1, false), - (Item("common.items.crafting_ing.resin"), 1, false), - (Item("common.items.mineral.ingot.tin"), 1, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), - "washboard": ( - output: ("common.items.tool.instruments.washboard", 1), - inputs: [ - (Item("common.items.log.hardwood"), 2, false), - (Item("common.items.crafting_ing.resin"), 1, false), - (Item("common.items.mineral.ingot.copper"), 1, false), - (Item("common.items.mineral.ingot.tin"), 1, false), - (Item("common.items.mineral.ingot.iron"), 1, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), - "sitar": ( - output: ("common.items.tool.instruments.sitar", 1), - inputs: [ - (Item("common.items.log.hardwood"), 4, false), - (Item("common.items.crafting_ing.resin"), 2, false), - (Item("common.items.mineral.ingot.iron"), 1, false), - (Item("common.items.mineral.ingot.silver"), 6, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), - "icy_talharpa": ( - output: ("common.items.tool.instruments.icy_talharpa", 1), - inputs: [ - (Item("common.items.crafting_ing.glacial_crystal"), 4, false), - (Item("common.items.crafting_ing.animal_misc.icy_fang"), 8, false), - (Item("common.items.crafting_ing.cloth.silk"), 3, false), - (Item("common.items.tool.craftsman_hammer"), 0, false), - ], - craft_sprite: Some(CraftingBench), - is_recycling: false, - ), - "lockpick": ( - output: ("common.items.utility.lockpick_0", 2), - inputs: [ - (Item("common.items.mineral.ingot.copper"), 3, false), - ], - craft_sprite: Some(CraftingBench), - ), - "shovel": ( - output: ("common.items.weapons.tool.shovel-0", 1), - inputs: [ - (Item("common.items.crafting_ing.twigs"), 5, false), - (Item("common.items.mineral.ingot.iron"), 2, false), - (Item("common.items.tool.craftsman_hammer"), 0, false), - ], - craft_sprite: Some(CraftingBench), - ), - "burning_charm": ( - output: ("common.items.charms.burning_charm", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.cloth_strips"), 5, false), - (Item("common.items.mineral.ore.veloritefrag"), 3, false), - (Item("common.items.crafting_ing.living_embers"), 1, false), - ], - craft_sprite: Some(Cauldron), - ), - "frozen_charm": ( - output: ("common.items.charms.frozen_charm", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.cloth_strips"), 5, false), - (Item("common.items.mineral.ore.veloritefrag"), 3, false), - (Item("common.items.crafting_ing.animal_misc.icy_fang"), 1, false), - ], - craft_sprite: Some(Cauldron), - ), - "lifesteal_charm": ( - output: ("common.items.charms.lifesteal_charm", 1), - inputs: [ - (Item("common.items.crafting_ing.cloth.cloth_strips"), 5, false), - (Item("common.items.mineral.ore.veloritefrag"), 3, false), - (Item("common.items.crafting_ing.sentient_seed"), 1, false), - ], - craft_sprite: Some(Cauldron), - ), - "shield": ( - output: ("common.items.weapons.shield.starter_shield", 1), - inputs: [ - (Item("common.items.log.wood"), 5, false), - (Item("common.items.crafting_ing.leather.leather_strips"), 2, false) - ], - craft_sprite: Some(CraftingBench), - ), -} diff --git a/assets/common/recipe_book_manifest.ron b/assets/common/recipe_book_manifest.ron index e5490ac..17a674d 100644 --- a/assets/common/recipe_book_manifest.ron +++ b/assets/common/recipe_book_manifest.ron @@ -2440,7 +2440,20 @@ ], craft_sprite: Some(CraftingBench), is_recycling: false, - ), + ), + "banjo": ( + output: ("common.items.tool.instruments.banjo", 1), + inputs: [ + (Item("common.items.log.hardwood"), 3, false), + (Item("common.items.log.wood"), 3, false), + (Item("common.items.crafting_ing.resin"), 2, false), + (Item("common.items.flowers.plant_fiber"), 5, false), + (Item("common.items.mineral.ingot.iron"), 2, false), + (Item("common.items.mineral.ingot.tin"), 1, false), + ], + craft_sprite: Some(CraftingBench), + is_recycling: false, + ), "lockpick": ( output: ("common.items.utility.lockpick_0", 2), inputs: [ diff --git a/assets/common/trading/collection.ron b/assets/common/trading/collection.ron index 2040300..2dc74e0 100644 --- a/assets/common/trading/collection.ron +++ b/assets/common/trading/collection.ron @@ -8,21 +8,31 @@ // Please keep it sorted by rarity so it's easier to reason about things [ /// Non-craftable gliders - (5.0, Item("common.items.glider.blue")), - (5.0, Item("common.items.glider.moonrise")), - (2.0, Item("common.items.glider.skullgrin")), + (1.5, Item("common.items.glider.blue")), + (1.5, Item("common.items.glider.moonrise")), + (1.0, Item("common.items.glider.skullgrin")), // Butterfly gliders - (5.0, Item("common.items.glider.morpho")), - (5.0, Item("common.items.glider.monarch")), - (5.0, Item("common.items.glider.moth")), + (1.5, Item("common.items.glider.morpho")), + (1.5, Item("common.items.glider.monarch")), + (1.5, Item("common.items.glider.moth")), // Lanterns - (5.0, Item("common.items.lantern.geode_purp")), - (2.0, Item("common.items.lantern.pumpkin")), - (2.0, Item("common.items.boss_drops.lantern")), - (2.0, Item("common.items.lantern.blue_0")), + (1.5, Item("common.items.lantern.geode_purp")), + (1.5, Item("common.items.lantern.pumpkin")), + (1.0, Item("common.items.boss_drops.lantern")), + (1.5, Item("common.items.lantern.blue_0")), // Keys - (5.0, Item("common.items.keys.bone_key")), - (5.0, Item("common.items.keys.glass_key")), + (15.0, Item("common.items.keys.bone_key")), + (15.0, Item("common.items.keys.glass_key")), + (15.0, Item("common.items.keys.haniwa_key")), + (15.0, Item("common.items.keys.minotaur_key")), + (15.0, Item("common.items.keys.myrmidon_key")), + (15.0, Item("common.items.keys.rusty_tower_key")), + (15.0, Item("common.items.keys.sahagin_key")), + (15.0, Item("common.items.keys.terracotta_key_chest")), + (15.0, Item("common.items.keys.terracotta_key_door")), + (15.0, Item("common.items.keys.vampire_key")), + (15.0, Item("common.items.keys.quarry_keys.forge_key")), + (15.0, Item("common.items.keys.quarry_keys.miner_key")), ] diff --git a/assets/common/trading/food.ron b/assets/common/trading/food.ron index f8f7e8e..f14f03b 100644 --- a/assets/common/trading/food.ron +++ b/assets/common/trading/food.ron @@ -8,15 +8,15 @@ [ // Meats (0.1, Item("common.items.food.meat.bird_large_raw")), - (0.35, Item("common.items.food.meat.beast_large_raw")), - (0.65, Item("common.items.food.meat.bird_raw")), - (0.65, Item("common.items.food.meat.fish_raw")), - (0.65, Item("common.items.food.meat.tough_raw")), + (0.5, Item("common.items.food.meat.beast_large_raw")), + (0.75, Item("common.items.food.meat.bird_raw")), + (0.75, Item("common.items.food.meat.fish_raw")), + (0.75, Item("common.items.food.meat.tough_raw")), (1.5, Item("common.items.food.meat.beast_small_raw")), // Gatherables - (0.25, Item("common.items.food.coconut")), + (0.5, Item("common.items.food.coconut")), (0.75, Item("common.items.food.cheese")), - (1.0, Item("common.items.food.apple")), + (1.5, Item("common.items.food.apple")), (2.0, Item("common.items.food.carrot")), (2.0, Item("common.items.food.lettuce")), (2.0, Item("common.items.food.tomato")), diff --git a/assets/common/trading/item_price_calculation.ron b/assets/common/trading/item_price_calculation.ron index 1d61152..cfe093d 100644 --- a/assets/common/trading/item_price_calculation.ron +++ b/assets/common/trading/item_price_calculation.ron @@ -12,7 +12,7 @@ loot_tables: [ (6.0, true, "common.loot_tables.armor.twigs"), (6.0, true, "common.loot_tables.armor.twigsflowers"), (6.0, true, "common.loot_tables.armor.twigsleaves"), - (4.0, false, "common.trading.misc_armor"), + (2.0, false, "common.trading.misc_armor"), (0.09, false, "common.loot_tables.armor.cultist"), (0.0016, false, "common.loot_tables.armor.boreal"), @@ -37,7 +37,7 @@ loot_tables: [ // and economy. // // Collections - (0.00026, false, "common.trading.collection"), + (1.0, false, "common.trading.collection"), // Manual balance (81.0, false, "common.trading.balance"), ], diff --git a/assets/common/trading/misc_armor.ron b/assets/common/trading/misc_armor.ron index f044152..8c34359 100644 --- a/assets/common/trading/misc_armor.ron +++ b/assets/common/trading/misc_armor.ron @@ -9,52 +9,54 @@ // Please keep it sorted by rarity so it's easier to reason about things [ // Bags - (0.1, Item("common.items.armor.misc.bag.heavy_seabag")), + (0.12, Item("common.items.armor.misc.bag.heavy_seabag")), (0.2, Item("common.items.armor.misc.bag.liana_kit")), // Basic - (2.0, Item("common.items.armor.misc.head.straw")), - (2.0, Item("common.items.armor.misc.head.bamboo_twig")), + (2.5, Item("common.items.armor.misc.head.straw")), + (2.5, Item("common.items.armor.misc.head.bamboo_twig")), // General humanoid - (0.75, Item("common.items.armor.misc.ring.gold")), - (0.75, Item("common.items.armor.misc.neck.gold")), + (0.12, Item("common.items.armor.misc.ring.gold")), + (0.12, Item("common.items.armor.misc.neck.gold")), // Grim Salvager - (2.0, Item("common.items.armor.misc.head.bandana.thief")), - (2.0, Item("common.items.armor.misc.head.bandana.red")), - (2.0, Item("common.items.armor.misc.head.hood")), - (2.0, Item("common.items.armor.misc.head.hood_dark")), + (1.5, Item("common.items.armor.misc.head.bandana.thief")), + (1.5, Item("common.items.armor.misc.head.bandana.red")), + (0.5, Item("common.items.armor.misc.head.hood")), + (0.5, Item("common.items.armor.misc.head.hood_dark")), // Pirate - (0.05, Item("common.items.armor.misc.head.crown")), - (0.05, Item("common.items.armor.pirate.hat")), + (0.03, Item("common.items.armor.misc.head.crown")), + (0.03, Item("common.items.armor.pirate.hat")), // Witch - (0.05, Item("common.items.armor.witch.hat")), + (0.03, Item("common.items.armor.witch.hat")), // Gnarling - (0.5, Item("common.items.armor.misc.head.gnarling_mask")), - (1.5, Item("common.items.armor.misc.head.wanderers_hat")), - (2.0, Item("common.items.armor.misc.neck.scratched")), + (0.3, Item("common.items.armor.misc.head.gnarling_mask")), + (0.5, Item("common.items.armor.misc.head.wanderers_hat")), + (1.5, Item("common.items.armor.misc.neck.scratched")), // Adlet - (0.1, Item("common.items.armor.misc.head.bear_bonnet")), - (0.1, Item("common.items.armor.misc.head.howl_cowl")), + (0.07, Item("common.items.armor.misc.head.bear_bonnet")), + (0.07, Item("common.items.armor.misc.head.howl_cowl")), (0.2, Item("common.items.armor.misc.head.hog_hood")), - (0.75, Item("common.items.armor.misc.neck.pendant_of_protection")), + (0.5, Item("common.items.armor.misc.neck.pendant_of_protection")), // Sahagin - (0.25, Item("common.items.armor.misc.neck.gem_of_resilience")), + (0.2, Item("common.items.armor.misc.neck.gem_of_resilience")), // Haniwa - (0.2, Item("common.items.armor.misc.neck.haniwa_talisman")), + (0.12, Item("common.items.armor.misc.neck.haniwa_talisman")), // Myrmidon - (0.05, Item("common.items.armor.misc.head.spikeguard")), - (0.05, Item("common.items.armor.misc.neck.carcanet_of_wrath")), - (0.05, Item("common.items.armor.misc.head.mitre")), + (0.07, Item("common.items.armor.misc.head.spikeguard")), + (0.03, Item("common.items.armor.misc.neck.carcanet_of_wrath")), + + // Vampire + (0.07, Item("common.items.armor.misc.head.mitre")), // Cultist - (0.0005, Item("common.items.armor.misc.neck.ankh_of_life")), + (0.03, Item("common.items.armor.misc.neck.ankh_of_life")), ] diff --git a/assets/common/trading/sellable_materials.ron b/assets/common/trading/sellable_materials.ron index e5c2ebf..800f5f1 100644 --- a/assets/common/trading/sellable_materials.ron +++ b/assets/common/trading/sellable_materials.ron @@ -7,38 +7,35 @@ // Please keep it sorted by rarity so it's easier to reason about things [ // Stones - (0.02, Item("common.items.mineral.gem.diamond")), - (0.08, Item("common.items.mineral.gem.ruby")), - (0.1, Item("common.items.mineral.gem.emerald")), - (0.2, Item("common.items.mineral.gem.sapphire")), (0.5, Item("common.items.mineral.ore.velorite")), (0.75, Item("common.items.mineral.gem.topaz")), - (1.0, Item("common.items.mineral.gem.amethyst")), - (2.0, Item("common.items.mineral.ore.veloritefrag")), + (0.75, Item("common.items.mineral.gem.amethyst")), + (1.5, Item("common.items.mineral.ore.veloritefrag")), (4.0, Item("common.items.crafting_ing.stones")), // Ores - (0.3, Item("common.items.mineral.ore.velorite")), - (0.4, Item("common.items.mineral.ore.veloritefrag")), (1.5, Item("common.items.mineral.ore.copper")), (1.5, Item("common.items.mineral.ore.tin")), // Logs - (5.0, Item("common.items.log.wood")), + (4.0, Item("common.items.log.wood")), // Animal Hide (4.0, Item("common.items.crafting_ing.hide.animal_hide")), // Mob Drops - (0.10, Item("common.items.crafting_ing.animal_misc.long_tusk")), - (0.15, Item("common.items.crafting_ing.animal_misc.elegant_crest")), - (0.15, Item("common.items.crafting_ing.animal_misc.grim_eyeball")), - (0.15, Item("common.items.crafting_ing.animal_misc.icy_fang")), - (0.2, Item("common.items.crafting_ing.animal_misc.strong_pincer")), + (0.3, Item("common.items.crafting_ing.animal_misc.grim_eyeball")), + (0.3, Item("common.items.crafting_ing.animal_misc.icy_fang")), + (0.3, Item("common.items.crafting_ing.animal_misc.long_tusk")), + (0.3, Item("common.items.crafting_ing.animal_misc.elegant_crest")), + (0.4, Item("common.items.crafting_ing.animal_misc.strong_pincer")), + (0.4, Item("common.items.crafting_ing.resin")), + (0.5, Item("common.items.crafting_ing.animal_misc.claw")), + (0.5, Item("common.items.crafting_ing.animal_misc.sharp_fang")), (0.5, Item("common.items.crafting_ing.animal_misc.raptor_feather")), - (1.2, Item("common.items.crafting_ing.animal_misc.claw")), + (0.5, Item("common.items.crafting_ing.sentient_seed")), + (0.75, Item("common.items.crafting_ing.living_embers")), (2.5, Item("common.items.crafting_ing.animal_misc.fur")), - (2.5, Item("common.items.crafting_ing.animal_misc.sharp_fang")), (2.5, Item("common.items.crafting_ing.animal_misc.venom_sac")), (2.5, Item("common.items.crafting_ing.animal_misc.viscous_ooze")), (4.0, Item("common.items.crafting_ing.cloth.wool")), @@ -49,14 +46,12 @@ (4.0, Item("common.items.crafting_ing.empty_vial")), // Gatherables - (0.1, Item("common.items.crafting_ing.seashells")), + (0.75, Item("common.items.crafting_ing.seashells")), (4.0, Item("common.items.crafting_ing.honey")), - (4.0, Item("common.items.flowers.moonbell")), (3.0, Item("common.items.crafting_ing.cotton_boll")), - (1.0, Item("common.items.flowers.pyrebloom")), (3.5, Item("common.items.crafting_ing.twigs")), (3.0, Item("common.items.crafting_ing.cactus")), - (2.0, Item("common.items.flowers.red")), + (3.0, Item("common.items.flowers.red")), (4.0, Item("common.items.flowers.wild_flax")), (8.0, Item("common.items.flowers.sunflower")), ] diff --git a/assets/common/trading/unsellable_materials.ron b/assets/common/trading/unsellable_materials.ron index 76a597c..13c0e04 100644 --- a/assets/common/trading/unsellable_materials.ron +++ b/assets/common/trading/unsellable_materials.ron @@ -14,6 +14,12 @@ (0.5, Item("common.items.mineral.ore.coal")), (1.0, Item("common.items.mineral.ore.iron")), + // High tier Gems + (0.1, Item("common.items.mineral.gem.diamond")), + (0.3, Item("common.items.mineral.gem.ruby")), + (0.35, Item("common.items.mineral.gem.emerald")), + (0.4, Item("common.items.mineral.gem.sapphire")), + // High tier woods (0.05, Item("common.items.log.eldwood")), (0.1, Item("common.items.log.frostwood")), @@ -32,9 +38,19 @@ // High tier Mob drops (0.005, Item("common.items.crafting_ing.animal_misc.phoenix_feather")), - (0.18, Item("common.items.crafting_ing.animal_misc.large_horn")), - (0.28, Item("common.items.crafting_ing.animal_misc.lively_vine")), - (0.35, Item("common.items.crafting_ing.sticky_thread")), + (0.025, Item("common.items.crafting_ing.golem_core")), + (0.025, Item("common.items.crafting_ing.cursed_bead")), + (0.025, Item("common.items.mineral.ore.ancient_gold")), + (0.05, Item("common.items.crafting_ing.alkahest")), + (0.05, Item("common.items.crafting_ing.dwarven_battery")), + (0.25, Item("common.items.crafting_ing.animal_misc.large_horn")), + (0.3, Item("common.items.crafting_ing.animal_misc.lively_vine")), + (0.5, Item("common.items.crafting_ing.sticky_thread")), + (1.0, Item("common.items.crafting_ing.earthern_shard")), + + // High tier Flowers + (1.0, Item("common.items.flowers.pyrebloom")), + (2.0, Item("common.items.flowers.moonbell")), // Sea Materials (0.05, Item("common.items.crafting_ing.abyssal_heart")), @@ -42,12 +58,7 @@ (0.25, Item("common.items.crafting_ing.brinestone")), (1.0, Item("common.items.crafting_ing.coral_branch")), - // Miscellaneous Materials - (0.75, Item("common.items.crafting_ing.resin")), - (1.0, Item("common.items.crafting_ing.sentient_seed")), - (2.0, Item("common.items.crafting_ing.living_embers")), - // Ultra Rare drops - (0.0005, Item("common.items.crafting_ing.mindflayer_bag_damaged")), - (0.00075, Item("common.items.crafting_ing.glacial_crystal")), + (0.001, Item("common.items.crafting_ing.mindflayer_bag_damaged")), + (0.001, Item("common.items.crafting_ing.glacial_crystal")), ] diff --git a/assets/credits.ron b/assets/credits.ron deleted file mode 100644 index d45210f..0000000 --- a/assets/credits.ron +++ /dev/null @@ -1,158 +0,0 @@ -( - // See best attribution practices for creative commons licenses: - // https://wiki.creativecommons.org/wiki/Best_practices_for_attribution - - // TODO: consider splitting this into a file for each of common/voxygen/server assets (applications will - // need to ensure to properly combine them) - // - /// Entry format: - /// ``` - /// ( - /// name: "Name of art", - /// // Provide if the asset is from or derived from an external source that can be - /// // linked. - /// source_link: "https://fonts.com/fancyfont/", - /// // Can be omitted if no authors are listed for some reason. - /// // TODO: differentiate original authors and authors of derivative work / modifications? - /// // Maybe for now this can be noted in parentheses like: "AuthorOne (original), AuthorTwo (derivative)"? - /// authors: ["Art creator, Art co-creator"], - /// // Must point to file that actually exists - /// // TODO: would it make sense to allow having a list of files here? - /// asset_path: "relative/path/to/asset.ext", - /// // Can be omitted, but assumed to be GPL3 if not provided. - /// license: "CC BY-SA 3.0", - /// // Link to the license, can be omitted if the license can't be linked and/or a - /// // local copy is provided. - /// license_link: "https://creativecommons.org/licenses/by-sa/3.0/", - /// // Note any modifcations if the original work has been modified - /// modfications: "Added additional characters to the font.", - /// // Any additional attribution notes that may be desired and/or required by the - /// // respective license that can't be conveyed or would be awkward to convey with the - /// // fields above. - /// notes: "Other information", - /// ) - /// ``` - music: [], - fonts: [( - name: "Alkhemikal", - source_link: "https://fontenddev.com/fonts/alkhemikal/", - authors: ["jeti"], - asset_path: "voxygen/font/Alkhemikal.ttf", - license: "CC BY 4.0", - license_link: "https://creativecommons.org/licenses/by/4.0/", - ), ( - name: "bdfUMplus outline", - authors: ["hikaen2"], - asset_path: "voxygen/font/bdfUMplus-outline.ttf", - // License text file included alongside font which should satisfy the requirements. - license: "MIT", - ), ( - name: "HaxrCorp 4089 Cyrillic AltGr", - source_link: "https://fontstruct.com/fontstructions/show/330387/haxrcorp_4089_cyrillic_altgr", - authors: ["sahwar"], - asset_path: "voxygen/font/haxrcorp_4089_cyrillic_altgr.ttf", - license: "CC BY-SA 3.0", - license_link: "https://creativecommons.org/licenses/by-sa/3.0/", - ), ( - name: "HaxrCorp 4089 Cyrillic AltGr Extended", - // original - source_link: "https://fontstruct.com/fontstructions/show/330387/haxrcorp_4089_cyrillic_altgr", - authors: ["sahwar (original)"], - asset_path: "voxygen/font/haxrcorp_4089_cyrillic_altgr_extended.ttf", - license: "CC BY-SA 3.0", - license_link: "https://creativecommons.org/licenses/by-sa/3.0/", - modifications: "Added additional characters.", - notes: "Derived from HaxrCorp 4089 Cyrillic AltGr", - ), ( - name: "Metamorphous", - authors: ["Sorkin Type Co"], - asset_path: "voxygen/font/Metamorphous-Regular.ttf", - // License appears to be satisfied by inclusion of its text file. - license: "OFL", - license_link: "https://scripts.sil.org/OFL", - ), ( - name: "Open Sans", - authors: [""], - asset_path: "voxygen/font/OpenSans-Regular.ttf", - // License appears to be satisfied by inclusion of its text file. - license: "Apache 2.0", - license_link: "http://www.apache.org/licenses/LICENSE-2.0", - ), ( - name: "WenQuanYi Zen Hei", - source_link: "http://wenq.org/wqy2/index.cgi?ZenHei%28en%29", - authors: ["Qianqian Fang", "WenQuanYi project"], - asset_path: "voxygen/font/WenQuanYiZenHei.ttf", - license: "GPL2", - license_link: "http://wenq.org/wqy2/index.cgi?GPL", - ), ( - name: "Wizard", - source_link: "https://fontstruct.com/fontstructions/show/1506403/wizard-5", - authors: ["Omegaville"], - asset_path: "voxygen/font/wizard.ttf", - license: "CC BY-SA 3.0", - license_link: "https://creativecommons.org/licenses/by-sa/3.0/", - ), ( - name: "Wizard Extended", - // original - source_link: "https://fontstruct.com/fontstructions/show/1506403/wizard-5", - authors: ["Omegaville (original)"], - asset_path: "voxygen/font/wizard_extended.ttf", - license: "CC BY-SA 3.0", - license_link: "https://creativecommons.org/licenses/by-sa/3.0/", - modifications: "Added additional characters.", - notes: "Derived from Wizard", - ), ( - name: "Sarabun", - authors: ["Suppakit Chalermlarp"], - asset_path: "voxygen/font/Sarabun-Regular.ttf", - // License appears to be satisfied by inclusion of its text file. - license: "OFL", - license_link: "https://scripts.sil.org/OFL", - ),], - models: [( - name: "Vroom", - authors: ["horblegorble"], - asset_path: "voxygen/voxel/glider/vroom.vox", - license: "CC-BY-NC-SA 4.0", - license_link: "https://creativecommons.org/licenses/by-nc-sa/4.0/", - notes: "exceptions (to the extent to which the license is prohibitive): - - appearances in images and videos (including streams) of veloren gameplay or model viewing/editing software - - official releases of veloren on platforms that have relevant restrictions" - ), - ], - other_art: [], - /// Entry format: - /// ``` - /// ( - /// name: "Contributor name", - /// contributions: "Note about what contributor contributed", // optional, field can be omitted - /// ) - /// ``` - contributors: [( - name: "zesterer", - ), ( - name: "XVar", - ), ( - name: "xMAC94", - ), ( - name: "Timo", - ), ( - name: "Songtronix", - ), ( - name: "Snowram", - ), ( - name: "Slipped", - ), ( - name: "Sharp", - ), ( - name: "Sam", - ), ( - name: "Pfau", - ), ( - name: "imbris", - ), ( - name: "Christof", - ), ( - name: "AngelOnFira", - )], -) diff --git a/assets/voxygen/audio/ambience.ron b/assets/voxygen/audio/ambience.ron new file mode 100644 index 0000000..f5b3286 --- /dev/null +++ b/assets/voxygen/audio/ambience.ron @@ -0,0 +1,24 @@ +( + tracks: [ + ( + path: "voxygen.audio.ambience.wind", + tag: Wind, + ), + ( + path: "voxygen.audio.ambience.rain", + tag: Rain, + ), + ( + path:"voxygen.audio.ambience.thunder", + tag: ThunderRumbling, + ), + ( + path:"voxygen.audio.ambience.leaves", + tag: Leaves, + ), + ( + path:"voxygen.audio.ambience.cave", + tag: Cave, + ) + ] +) diff --git a/assets/voxygen/audio/ambience/cave.ogg b/assets/voxygen/audio/ambience/cave.ogg new file mode 100644 index 0000000..dfda318 Binary files /dev/null and b/assets/voxygen/audio/ambience/cave.ogg differ diff --git a/assets/voxygen/audio/ambience/leaves.ogg b/assets/voxygen/audio/ambience/leaves.ogg new file mode 100644 index 0000000..69be4ec Binary files /dev/null and b/assets/voxygen/audio/ambience/leaves.ogg differ diff --git a/assets/voxygen/audio/ambience/rain.ogg b/assets/voxygen/audio/ambience/rain.ogg new file mode 100644 index 0000000..2af73b7 Binary files /dev/null and b/assets/voxygen/audio/ambience/rain.ogg differ diff --git a/assets/voxygen/audio/ambience/thunder.ogg b/assets/voxygen/audio/ambience/thunder.ogg new file mode 100644 index 0000000..e06b0d1 Binary files /dev/null and b/assets/voxygen/audio/ambience/thunder.ogg differ diff --git a/assets/voxygen/audio/ambience/wind.ogg b/assets/voxygen/audio/ambience/wind.ogg new file mode 100644 index 0000000..b20db51 Binary files /dev/null and b/assets/voxygen/audio/ambience/wind.ogg differ diff --git a/assets/voxygen/audio/calendar/christmas/soundtrack.ron b/assets/voxygen/audio/calendar/christmas/soundtrack.ron new file mode 100644 index 0000000..4cb4f1d --- /dev/null +++ b/assets/voxygen/audio/calendar/christmas/soundtrack.ron @@ -0,0 +1,492 @@ +// Times: Day, Night, or None (both) +// Weathers: Clear, Cloudy, Rain, Storm, or None (any weather) +// Biomes: Grassland, Forest, Desert, Snowland, Lake, Mountain, Ocean, Jungle, Savannah, Taiga +// planned biomes: Swamp +// Number after biome indicates weighting; higher numbers are less frequent +// Sites: Settlement(Default, CliffTown, DesertCity, or SavannahTown), Cave, Dungeon, or Void [none] +// Music states: Activity(Explore or Combat) +// Combat music is looped. Needs three files: start, loop, and end. Start contains leadup to the loop. +// Artist format is ("Artist", "https://website.com/"). If no website, use None. +// It's recommended to also have appropriate metadata for those who listen via the game files :) + +#![enable(implicit_some)] +( + tracks: + [ + + // Overworld exploration tracks + Individual(( + title: "Everbearing", + path: "voxygen.audio.soundtrack.overworld.everbearing", + length: 192.0, + timing: Day, + weather: None, + biomes: [], + sites: [Void, Settlement(Default), Settlement(CliffTown), Settlement(DesertCity), Settlement(SavannahTown)], + music_state: Activity(Explore), + artist: ("DaforLynx", "https://daforlynx.neocities.org/"), + )), + Individual(( + title: "Song of the Eldwood", + path: "voxygen.audio.soundtrack.overworld.song_of_the_eldwood", + length: 254.0, + timing: Night, + weather: None, + biomes: [], + sites: [Void, Settlement(Default), Settlement(CliffTown), Settlement(DesertCity), Settlement(SavannahTown)], + music_state: Activity(Explore), + artist: ("DaforLynx", "https://daforlynx.neocities.org/"), + )), + Individual(( + title: "Torii", + path: "voxygen.audio.soundtrack.overworld.torii", + length: 157.0, + timing: Day, + weather: None, + biomes: [], + sites: [Void, Settlement(Default), Settlement(CliffTown), Settlement(DesertCity), Settlement(SavannahTown)], + music_state: Activity(Explore), + artist: ("FaceImplosion", "https://www.youtube.com/c/FaceImplosion"), + )), + Individual(( + title: "Adventurous Soul", + path: "voxygen.audio.soundtrack.overworld.adventurous_soul", + length: 184.0, + timing: Day, + weather: None, + biomes: [], + sites: [Void, Settlement(Default), Settlement(CliffTown), Settlement(DesertCity), Settlement(SavannahTown)], + music_state: Activity(Explore), + artist: ("Crow", None), + )), + Individual(( + title: "Stargazing", + path: "voxygen.audio.soundtrack.overworld.stargazing", + length: 216.0, + timing: Night, + weather: None, + biomes: [], + sites: [Void, Settlement(Default), Settlement(CliffTown), Settlement(DesertCity), Settlement(SavannahTown)], + music_state: Activity(Explore), + artist: ("GeekyGami", "https://geekygami.newgrounds.com/audio/"), + )), + Individual(( + title: "The Heavens Weep", + path: "voxygen.audio.soundtrack.overworld.the_heavens_weep", + length: 210.0, + timing: None, + weather: Rain, + biomes: [], + sites: [Void, Settlement(Default), Settlement(CliffTown), Settlement(DesertCity), Settlement(SavannahTown)], + music_state: Activity(Explore), + artist: ("Oolnokk", "https://soundcloud.com/walkerhallplaysthegeetar"), + )), + Individual(( + title: "A Hero's Sorrow", + path: "voxygen.audio.soundtrack.overworld.a_heros_sorrow", + length: 252.0, + timing: None, + weather: Rain, + biomes: [], + sites: [Void, Settlement(Default), Settlement(CliffTown), Settlement(DesertCity), Settlement(SavannahTown)], + music_state: Activity(Explore), + artist: ("Oolnokk", "https://soundcloud.com/walkerhallplaysthegeetar"), + )), + Individual(( + title: "Follow the Signs", + path: "voxygen.audio.soundtrack.overworld.follow_the_signs", + length: 154.0, + timing: Day, + weather: None, + biomes: [], + sites: [Void, Settlement(Default), Settlement(CliffTown), Settlement(DesertCity), Settlement(SavannahTown)], + music_state: Activity(Explore), + artist: ("Oolnokk", "https://soundcloud.com/walkerhallplaysthegeetar"), + )), + Individual(( + title: "Travel By Night", + path: "voxygen.audio.soundtrack.overworld.travel_by_night", + length: 66.0, + timing: Night, + weather: None, + biomes: [], + sites: [Void, Settlement(Default), Settlement(CliffTown), Settlement(DesertCity), Settlement(SavannahTown)], + music_state: Activity(Explore), + artist: ("Oolnokk", "https://soundcloud.com/walkerhallplaysthegeetar"), + )), + Individual(( + title: "Winter Falls", + path: "voxygen.audio.soundtrack.overworld.winter_falls", + length: 215.0, + timing: Day, + weather: None, + biomes: [], + sites: [Void, Settlement(Default), Settlement(CliffTown), Settlement(DesertCity), Settlement(SavannahTown)], + music_state: Activity(Explore), + artist: ("DaforLynx", "https://daforlynx.neocities.org/"), + )), + Individual(( + title: "A Solemn Quest", + path: "voxygen.audio.soundtrack.overworld.a_solemn_quest", + length: 206.0, + timing: Night, + weather: None, + biomes: [], + sites: [Void, Settlement(Default), Settlement(CliffTown), Settlement(DesertCity), Settlement(SavannahTown)], + music_state: Activity(Explore), + artist: ("Eden", "https://soundcloud.com/usernumberuser"), + )), + Individual(( + title: "Snowtop Volume", + path: "voxygen.audio.soundtrack.overworld.snowtop_volume", + length: 89.0, + timing: Day, + weather: None, + biomes: [], + sites: [Void, Settlement(Default), Settlement(CliffTown), Settlement(DesertCity), Settlement(SavannahTown)], + music_state: Activity(Explore), + artist: ("Aeronic", "https://soundcloud.com/aeronic"), + )), + Individual(( + title: "Moonbeams", + path: "voxygen.audio.soundtrack.overworld.moonbeams", + length: 158.0, + timing: Night, + weather: None, + biomes: [], + sites: [Void, Settlement(Default), Settlement(CliffTown), Settlement(DesertCity), Settlement(SavannahTown)], + music_state: Activity(Explore), + artist: ("Aeronic", "https://soundcloud.com/aeronic"), + )), + Individual(( + title: "Campfire Stories", + path: "voxygen.audio.soundtrack.overworld.campfire_stories", + length: 100.0, + timing: Night, + weather: None, + biomes: [], + sites: [Void, Settlement(Default), Settlement(CliffTown), Settlement(DesertCity), Settlement(SavannahTown)], + music_state: Activity(Explore), + artist: ("badbbad", "https://soundcloud.com/tomerbarnea"), + )), + Individual(( + title: "Limits", + path: "voxygen.audio.soundtrack.overworld.limits", + length: 203.0, + timing: Day, + weather: None, + biomes: [], + sites: [Void, Settlement(Default), Settlement(CliffTown), Settlement(DesertCity), Settlement(SavannahTown)], + music_state: Activity(Explore), + artist: ("badbbad", "https://soundcloud.com/tomerbarnea"), + )), + Individual(( + title: "Between The Fairies", + path: "voxygen.audio.soundtrack.overworld.between_the_fairies", + length: 175.0, + timing: Day, + weather: None, + biomes: [], + sites: [Void, Settlement(Default), Settlement(CliffTown), Settlement(DesertCity), Settlement(SavannahTown)], + music_state: Activity(Explore), + artist: ("badbbad", "https://soundcloud.com/tomerbarnea"), + )), + Individual(( + title: "Life of a Background Mob", + path: "voxygen.audio.soundtrack.town.life_of_a_background_mob", + length: 234.0, + timing: Day, + weather: None, + biomes: [], + sites: [Void, Settlement(Default), Settlement(CliffTown), Settlement(DesertCity), Settlement(SavannahTown)], + music_state: Activity(Explore), + artist: ("GeekyGami", "https://geekygami.newgrounds.com/audio/"), + )), + Individual(( + title: "Warmth of the Hearth", + path: "voxygen.audio.soundtrack.town.warmth_of_the_hearth", + length: 156.0, + timing: Night, + weather: None, + biomes:[], + sites: [Void, Settlement(Default), Settlement(CliffTown), Settlement(DesertCity), Settlement(SavannahTown)], + music_state: Activity(Explore), + artist: ("Crow", None), + )), + Individual(( + title: "The Quiet After the Battle", + path: "voxygen.audio.soundtrack.town.the_quiet_after_the_battle", + length: 240.0, + timing: Night, + weather: None, + biomes: [], + sites: [Void, Settlement(Default), Settlement(CliffTown), Settlement(DesertCity), Settlement(SavannahTown)], + music_state: Activity(Explore), + artist: ("Tobias Thy - (Thy SFX)", "https://soundcloud.com/thyofficial"), + )), + Individual(( + title: "Starlit Pathways", + path: "voxygen.audio.soundtrack.town.starlit_pathways", + length: 132.0, + timing: Night, + weather: None, + biomes: [], + sites: [Void, Settlement(Default), Settlement(CliffTown), Settlement(DesertCity), Settlement(SavannahTown)], + music_state: Activity(Explore), + artist: ("DaforLynx", "https://daforlynx.neocities.org/"), + )), + Individual(( + title: "Stars Like Stalactites", + path: "voxygen.audio.soundtrack.cave.stars_like_stalactites", + length: 130.0, + timing: Night, + weather: None, + biomes: [], + sites: [Void, Settlement(Default), Settlement(CliffTown), Settlement(DesertCity), Settlement(SavannahTown)], + music_state: Activity(Explore), + artist: ("DragonDee", "https://soundcloud.com/deanna-rusnock"), + )), + + // Cave music + + Individual(( + title: "Stars Like Stalactites", + path: "voxygen.audio.soundtrack.cave.stars_like_stalactites", + length: 130.0, + timing: None, + weather: None, + biomes: [], + sites: [Cave], + music_state: Activity(Explore), + artist: ("DragonDee", "https://soundcloud.com/deanna-rusnock"), + )), + Individual(( + title: "Cavernous Hollow", + path: "voxygen.audio.soundtrack.cave.cavernous_hollow", + length: 256.0, + timing: None, + weather: None, + biomes: [], + sites: [Cave], + music_state: Activity(Explore), + artist: ("GeekyGami", "https://geekygami.newgrounds.com/audio/"), + )), + Individual(( + title: "Saturated Hallows", + path: "voxygen.audio.soundtrack.cave.saturated_hallows", + length: 227.0, + timing: None, + weather: None, + biomes: [], + sites: [Cave], + music_state: Activity(Explore), + artist: ("Flashbang", "https://soundcloud.com/unboundir0n-m4n"), + )), + Individual(( + title: "Mineral Deposits", + path: "voxygen.audio.soundtrack.cave.mineral_deposits", + length: 148.0, + timing: None, + weather: None, + biomes: [], + sites: [Cave], + music_state: Activity(Explore), + artist: ("Aeronic", "https://soundcloud.com/aeronic"), + )), + Individual(( + title: "Down The Rabbit Hole", + path: "voxygen.audio.soundtrack.cave.down_the_rabbit_hole", + length: 244.0, + timing: None, + weather: None, + biomes: [], + sites: [Cave], + music_state: Activity(Explore), + artist: ("badbbad", "https://soundcloud.com/tomerbarnea"), + )), + + // Dungeon music + + Individual(( + title: "A Heart's Ice-Cold Protection", + path: "voxygen.audio.soundtrack.dungeon.a_hearts_ice-cold_protection", + length: 205.0, + timing: None, + weather: None, + biomes:[], + sites: [ + Dungeon(Adlet), + ], + music_state: Activity(Explore), + artist: ("GeekyGami", "https://geekygami.newgrounds.com/audio/"), + )), + Individual(( + title: "Mysty Temple", + path: "voxygen.audio.soundtrack.dungeon.mysty_temple", + length: 183.0, + timing: None, + weather: None, + biomes:[], + sites: [ + Dungeon(Myrmidon), + Dungeon(Adlet), + ], + music_state: Activity(Explore), + artist: ("Tiny", None), + )), + Individual(( + title: "Cobbled Halls", + path: "voxygen.audio.soundtrack.dungeon.cobbled_halls", + length: 240.0, + timing: None, + weather: None, + biomes:[], + sites: [ + Dungeon(Myrmidon), + ], + music_state: Activity(Explore), + artist: ("Crow", None), + )), + Individual(( + title: "Dank Dungeon", + path: "voxygen.audio.soundtrack.dungeon.dank_dungeon", + length: 130.0, + timing: None, + weather: None, + biomes: [], + sites: [ + Dungeon(Myrmidon), + Dungeon(Adlet), + ], + music_state: Activity(Explore), + artist: ("Aeronic", "https://soundcloud.com/aeronic"), + )), + Individual(( + title: "Ruination", + path: "voxygen.audio.soundtrack.dungeon.ruination", + length: 135.0, + timing: None, + weather: None, + biomes: [], + sites: [ + Dungeon(Myrmidon), + Dungeon(Adlet), + ], + music_state: Activity(Explore), + artist: ("Aeronic", "https://soundcloud.com/aeronic"), + )), + Individual(( + title: "Vast Onslaught", + path: "voxygen.audio.soundtrack.dungeon.vast_onslaught", + length: 237.0, + timing: None, + weather: None, + biomes: [], + sites: [ + Dungeon(Myrmidon), + ], + music_state: Activity(Explore), + artist: ("Aeronic", "https://soundcloud.com/aeronic"), + )), + Individual(( + title: "Sacred Temple", + path: "voxygen.audio.soundtrack.dungeon.sacred_temple", + length: 75.0, + timing: None, + weather: None, + biomes: [], + sites: [ + Dungeon(Myrmidon), + ], + music_state: Activity(Explore), + artist: ("Aeronic", "https://soundcloud.com/aeronic"), + )), + Individual(( + title: "The Undergrowth", + path: "voxygen.audio.soundtrack.overworld.the_undergrowth", + length: 165.0, + timing: None, + weather: None, + biomes: [], + sites: [ + Dungeon(Gnarling), + ], + music_state: Activity(Explore), + artist: ("Oolnokk", "https://soundcloud.com/walkerhallplaysthegeetar"), + )), + Individual(( + title: "Jungle Ambient", + path: "voxygen.audio.soundtrack.overworld.jungle_ambient", + length: 218.0, + timing: None, + weather: None, + biomes: [], + sites: [ + Dungeon(Gnarling), + ], + music_state: Activity(Explore), + artist: ("badbbad", "https://soundcloud.com/tomerbarnea"), + )), + Individual(( + title: "Thrumming Waters", + path: "voxygen.audio.soundtrack.dungeon.thrumming_waters", + length: 100.0, + timing: None, + weather: None, + biomes: [], + sites: [ + Dungeon(Gnarling), + ], + music_state: Activity(Explore), + artist: ("Jeremiah Sweeney", "https://soundcloud.com/jsweeney743"), + )), + + // Combat Music + + // Segmented( + // title: "Barred Paths", + // timing: None, + // weather: None, + // biomes: [], + // sites: [ + // Dungeon(Old), + // ], + // segments: [ + // ("voxygen.audio.soundtrack.combat.barred_paths.barred_paths-start", 61.818, Transition(Explore, Combat(High)), Some(Combat(High))), + // ("voxygen.audio.soundtrack.combat.barred_paths.barred_paths-loop", 54.545, Activity(Combat(High)), None), + // ("voxygen.audio.soundtrack.combat.barred_paths.barred_paths-end", 6.0, Transition(Combat(High), Explore), None), + // ], + // artist: ("DaforLynx", "https://daforlynx.neocities.org/"), + // ), + // Segmented( + // title: "Reversal", + // timing: None, + // weather: None, + // biomes: [], + // sites: [ + // Dungeon(Old), + // ], + // segments: [ + // ("voxygen.audio.soundtrack.combat.reversal.reversal-start", 61.666, Transition(Explore, Combat(High)), Some(Combat(High))), + // ("voxygen.audio.soundtrack.combat.reversal.reversal-loop", 60.0, Activity(Combat(High)), None), + // ("voxygen.audio.soundtrack.combat.reversal.reversal-end", 3.666, Transition(Combat(High), Explore), None), + // ], + // artist: ("DaforLynx", "https://daforlynx.neocities.org/"), + // ), + // Segmented( + // title: "Clash", + // timing: None, + // weather: None, + // biomes: [], + // sites: [ + // Dungeon(Old), + // ], + // segments: [ + // ("voxygen.audio.soundtrack.combat.clash.clash-start", 121.5, Transition(Explore, Combat(High)), Some(Combat(High))), + // ("voxygen.audio.soundtrack.combat.clash.clash-loop", 81.0, Activity(Combat(High)), None), + // ("voxygen.audio.soundtrack.combat.clash.clash-end", 1.5, Transition(Combat(High), Explore), None), + // ], + // artist: ("Alfredo Pompa D & Rodriogo Plata", None), + // ), + ] +) \ No newline at end of file diff --git a/assets/voxygen/audio/calendar/halloween/soundtrack.ron b/assets/voxygen/audio/calendar/halloween/soundtrack.ron new file mode 100644 index 0000000..a8805a0 --- /dev/null +++ b/assets/voxygen/audio/calendar/halloween/soundtrack.ron @@ -0,0 +1,350 @@ +// Times: Day, Night, or None (both) +// Weathers: Clear, Cloudy, Rain, Storm, or None (any weather) +// Biomes: Grassland, Forest, Desert, Snowland, Lake, Mountain, Ocean, Jungle, Savannah, Taiga +// planned biomes: Swamp +// Number after biome indicates weighting; higher numbers are less frequent +// Sites: Settlement(Default, CliffTown, DesertCity, or SavannahTown), Cave, Dungeon, or Void [none] +// Music states: Activity(Explore or Combat) +// Combat music is looped. Needs three files: start, loop, and end. Start contains leadup to the loop. +// Artist format is ("Artist", "https://website.com/"). If no website, use None. +// It's recommended to also have appropriate metadata for those who listen via the game files :) + +#![enable(implicit_some)] +( + tracks: + [ + + // Overworld exploration tracks + + Individual(( + title: "Down The Rabbit Hole", + path: "voxygen.audio.soundtrack.cave.down_the_rabbit_hole", + length: 244.0, + timing: None, + weather: None, + biomes: [], + sites: [Void, Settlement(Default), Settlement(CliffTown), Settlement(DesertCity)], + music_state: Activity(Explore), + artist: ("badbbad", "https://soundcloud.com/tomerbarnea"), + )), + Individual(( + title: "Dank Dungeon", + path: "voxygen.audio.soundtrack.dungeon.dank_dungeon", + length: 130.0, + timing: None, + weather: None, + biomes: [], + sites: [Void, Settlement(Default), Settlement(CliffTown), Settlement(DesertCity)], + music_state: Activity(Explore), + artist: ("Aeronic", "https://soundcloud.com/aeronic"), + )), + Individual(( + title: "Ruination", + path: "voxygen.audio.soundtrack.dungeon.ruination", + length: 135.0, + timing: None, + weather: None, + biomes: [], + sites: [Void, Settlement(Default), Settlement(CliffTown), Settlement(DesertCity)], + music_state: Activity(Explore), + artist: ("Aeronic", "https://soundcloud.com/aeronic"), + )), + Individual(( + title: "Moonlit Canopy", + path: "voxygen.audio.soundtrack.overworld.moonlit_canopy", + length: 170.0, + timing: None, + weather: None, + biomes: [], + sites: [Void, Settlement(Default), Settlement(CliffTown), Settlement(DesertCity)], + music_state: Activity(Explore), + artist: ("GeekyGami", "https://geekygami.newgrounds.com/audio/"), + )), + Individual(( + title: "Ethereal Bonds", + path: "voxygen.audio.soundtrack.overworld.ethereal_bonds", + length: 59.0, + timing: None, + weather: None, + biomes: [], + sites: [Void, Settlement(Default), Settlement(CliffTown), Settlement(DesertCity)], + music_state: Activity(Explore), + artist: ("Aeronic", "https://soundcloud.com/aeronic"), + )), + Individual(( + title: "Raising Below Like Thunder", + path: "voxygen.audio.soundtrack.overworld.raising_below_like_thunder", + length: 120.0, + timing: None, + weather: None, + biomes: [], + sites: [Void, Settlement(Default), Settlement(CliffTown), Settlement(DesertCity)], + music_state: Activity(Explore), + artist: ("Rarnage", "https://soundcloud.com/rarnage44"), + )), + Individual(( + title: "Into The Dark Forest", + path: "voxygen.audio.soundtrack.overworld.into_the_dark_forest", + length: 184.0, + timing: None, + weather: None, + biomes: [], + sites: [Void, Settlement(Default), Settlement(CliffTown), Settlement(DesertCity)], + music_state: Activity(Explore), + artist: ("Aeronic", "https://soundcloud.com/aeronic"), + )), + Individual(( + title: "Ballerine Macabre", + path: "voxygen.audio.soundtrack.overworld.ballerine_macabre", + length: 193.0, + timing: None, + weather: None, + biomes: [], + sites: [Void, Settlement(Default), Settlement(CliffTown), Settlement(DesertCity)], + music_state: Activity(Explore), + artist: ("GeekyGami", "https://geekygami.newgrounds.com/audio/"), + )), + + // Cave music + + Individual(( + title: "Stars Like Stalactites", + path: "voxygen.audio.soundtrack.cave.stars_like_stalactites", + length: 130.0, + timing: None, + weather: None, + biomes: [], + sites: [Cave], + music_state: Activity(Explore), + artist: ("DragonDee", "https://soundcloud.com/deanna-rusnock"), + )), + Individual(( + title: "Cavernous Hollow", + path: "voxygen.audio.soundtrack.cave.cavernous_hollow", + length: 256.0, + timing: None, + weather: None, + biomes: [], + sites: [Cave], + music_state: Activity(Explore), + artist: ("GeekyGami", "https://geekygami.newgrounds.com/audio/"), + )), + Individual(( + title: "Saturated Hallows", + path: "voxygen.audio.soundtrack.cave.saturated_hallows", + length: 227.0, + timing: None, + weather: None, + biomes: [], + sites: [Cave], + music_state: Activity(Explore), + artist: ("Flashbang", "https://soundcloud.com/unboundir0n-m4n"), + )), + Individual(( + title: "Mineral Deposits", + path: "voxygen.audio.soundtrack.cave.mineral_deposits", + length: 148.0, + timing: None, + weather: None, + biomes: [], + sites: [Cave], + music_state: Activity(Explore), + artist: ("Aeronic", "https://soundcloud.com/aeronic"), + )), + Individual(( + title: "Down The Rabbit Hole", + path: "voxygen.audio.soundtrack.cave.down_the_rabbit_hole", + length: 244.0, + timing: None, + weather: None, + biomes: [], + sites: [Cave], + music_state: Activity(Explore), + artist: ("badbbad", "https://soundcloud.com/tomerbarnea"), + )), + + // Dungeon music + + Individual(( + title: "A Heart's Ice-Cold Protection", + path: "voxygen.audio.soundtrack.dungeon.a_hearts_ice-cold_protection", + length: 205.0, + timing: None, + weather: None, + biomes:[], + sites: [ + Dungeon(Adlet), + ], + music_state: Activity(Explore), + artist: ("GeekyGami", "https://geekygami.newgrounds.com/audio/"), + )), + Individual(( + title: "Mysty Temple", + path: "voxygen.audio.soundtrack.dungeon.mysty_temple", + length: 183.0, + timing: None, + weather: None, + biomes:[], + sites: [ + Dungeon(Myrmidon), + Dungeon(Adlet), + ], + music_state: Activity(Explore), + artist: ("Tiny", None), + )), + Individual(( + title: "Cobbled Halls", + path: "voxygen.audio.soundtrack.dungeon.cobbled_halls", + length: 240.0, + timing: None, + weather: None, + biomes:[], + sites: [ + Dungeon(Myrmidon), + ], + music_state: Activity(Explore), + artist: ("Crow", None), + )), + Individual(( + title: "Dank Dungeon", + path: "voxygen.audio.soundtrack.dungeon.dank_dungeon", + length: 130.0, + timing: None, + weather: None, + biomes: [], + sites: [ + Dungeon(Myrmidon), + Dungeon(Adlet), + ], + music_state: Activity(Explore), + artist: ("Aeronic", "https://soundcloud.com/aeronic"), + )), + Individual(( + title: "Ruination", + path: "voxygen.audio.soundtrack.dungeon.ruination", + length: 135.0, + timing: None, + weather: None, + biomes: [], + sites: [ + Dungeon(Myrmidon), + Dungeon(Adlet), + ], + music_state: Activity(Explore), + artist: ("Aeronic", "https://soundcloud.com/aeronic"), + )), + Individual(( + title: "Vast Onslaught", + path: "voxygen.audio.soundtrack.dungeon.vast_onslaught", + length: 237.0, + timing: None, + weather: None, + biomes: [], + sites: [ + Dungeon(Myrmidon), + ], + music_state: Activity(Explore), + artist: ("Aeronic", "https://soundcloud.com/aeronic"), + )), + Individual(( + title: "Sacred Temple", + path: "voxygen.audio.soundtrack.dungeon.sacred_temple", + length: 75.0, + timing: None, + weather: None, + biomes: [], + sites: [ + Dungeon(Myrmidon), + ], + music_state: Activity(Explore), + artist: ("Aeronic", "https://soundcloud.com/aeronic"), + )), + Individual(( + title: "The Undergrowth", + path: "voxygen.audio.soundtrack.overworld.the_undergrowth", + length: 165.0, + timing: None, + weather: None, + biomes: [], + sites: [ + Dungeon(Gnarling), + ], + music_state: Activity(Explore), + artist: ("Oolnokk", "https://soundcloud.com/walkerhallplaysthegeetar"), + )), + Individual(( + title: "Jungle Ambient", + path: "voxygen.audio.soundtrack.overworld.jungle_ambient", + length: 218.0, + timing: None, + weather: None, + biomes: [], + sites: [ + Dungeon(Gnarling), + ], + music_state: Activity(Explore), + artist: ("badbbad", "https://soundcloud.com/tomerbarnea"), + )), + Individual(( + title: "Thrumming Waters", + path: "voxygen.audio.soundtrack.dungeon.thrumming_waters", + length: 100.0, + timing: None, + weather: None, + biomes: [], + sites: [ + Dungeon(Gnarling), + ], + music_state: Activity(Explore), + artist: ("Jeremiah Sweeney", "https://soundcloud.com/jsweeney743"), + )), + + // Combat Music + + // Segmented( + // title: "Barred Paths", + // timing: None, + // weather: None, + // biomes: [], + // sites: [ + // Dungeon(Old), + // ], + // segments: [ + // ("voxygen.audio.soundtrack.combat.barred_paths.barred_paths-start", 61.818, Transition(Explore, Combat(High)), Some(Combat(High))), + // ("voxygen.audio.soundtrack.combat.barred_paths.barred_paths-loop", 54.545, Activity(Combat(High)), None), + // ("voxygen.audio.soundtrack.combat.barred_paths.barred_paths-end", 6.0, Transition(Combat(High), Explore), None), + // ], + // artist: ("DaforLynx", "https://daforlynx.neocities.org/"), + // ), + // Segmented( + // title: "Reversal", + // timing: None, + // weather: None, + // biomes: [], + // sites: [ + // Dungeon(Old), + // ], + // segments: [ + // ("voxygen.audio.soundtrack.combat.reversal.reversal-start", 61.666, Transition(Explore, Combat(High)), Some(Combat(High))), + // ("voxygen.audio.soundtrack.combat.reversal.reversal-loop", 60.0, Activity(Combat(High)), None), + // ("voxygen.audio.soundtrack.combat.reversal.reversal-end", 3.666, Transition(Combat(High), Explore), None), + // ], + // artist: ("DaforLynx", "https://daforlynx.neocities.org/"), + // ), + // Segmented( + // title: "Clash", + // timing: None, + // weather: None, + // biomes: [], + // sites: [ + // Dungeon(Old), + // ], + // segments: [ + // ("voxygen.audio.soundtrack.combat.clash.clash-start", 121.5, Transition(Explore, Combat(High)), Some(Combat(High))), + // ("voxygen.audio.soundtrack.combat.clash.clash-loop", 81.0, Activity(Combat(High)), None), + // ("voxygen.audio.soundtrack.combat.clash.clash-end", 1.5, Transition(Combat(High), Explore), None), + // ], + // artist: ("Alfredo Pompa D & Rodriogo Plata", None), + // ), + ] +) \ No newline at end of file diff --git a/assets/voxygen/audio/music_transition_manifest.ron b/assets/voxygen/audio/music_transition_manifest.ron new file mode 100644 index 0000000..1dc923b --- /dev/null +++ b/assets/voxygen/audio/music_transition_manifest.ron @@ -0,0 +1,16 @@ +( + combat_nearby_radius: 25.0, + combat_health_factor: 70.0, + combat_nearby_high_thresh: 4, + combat_nearby_low_thresh: 4, + fade_timings: { + //(Track 1, Track 2): (Track 1 fade out (sec), Track 2 fade in (sec)), + (TitleMusic, Exploration): (4.0, 4.0), + (TitleMusic, Combat): (4.0, 4.0), + (Exploration, TitleMusic): (2.0, 2.0), + (Exploration, Combat): (1.0, 0.5), + (Combat, Exploration): (2.0, 5.0), + (Combat, TitleMusic): (2.0, 2.0), + }, + interrupt_delay: 5.0, +) diff --git a/assets/voxygen/audio/null.ogg b/assets/voxygen/audio/null.ogg new file mode 100644 index 0000000..3a87acd Binary files /dev/null and b/assets/voxygen/audio/null.ogg differ diff --git a/assets/voxygen/audio/sfx.ron b/assets/voxygen/audio/sfx.ron new file mode 100644 index 0000000..0001e2f --- /dev/null +++ b/assets/voxygen/audio/sfx.ron @@ -0,0 +1,2026 @@ +#![enable(implicit_some)] +( + { + // + // Ambient + // + Campfire: ( + files: [ + "voxygen.audio.sfx.ambient.fire", + ], + threshold: 21.835, + subtitle: "subtitle-campfire", + ), + Birdcall: ( + files: [ + "voxygen.audio.sfx.ambient.birdcall_01", + "voxygen.audio.sfx.ambient.birdcall_02", + "voxygen.audio.sfx.ambient.birdcall_03", + "voxygen.audio.sfx.ambient.birdcall_04", + "voxygen.audio.sfx.ambient.birdcall_05", + "voxygen.audio.sfx.ambient.birdcall_06", + "voxygen.audio.sfx.ambient.birdcall_07", + "voxygen.audio.sfx.ambient.birdcall_08", + "voxygen.audio.sfx.ambient.birdcall_09", + "voxygen.audio.sfx.ambient.birdcall_10", + ], + threshold: 10.0, + subtitle: "subtitle-bird_call", + ), + Owl: ( + files: [ + "voxygen.audio.sfx.ambient.owl_1", + ], + threshold: 14.0, + subtitle: "subtitle-owl", + ), + //Crickets: -20dB + Cricket1: ( + files: [ + "voxygen.audio.sfx.ambient.crickets_1", + ], + threshold: 0.0, + ), + Cricket2: ( + files: [ + "voxygen.audio.sfx.ambient.crickets_2", + ], + threshold: 0.0, + ), + Cricket3: ( + files: [ + "voxygen.audio.sfx.ambient.crickets_3", + ], + threshold: 0.0, + ), + Frog: ( + files: [ + "voxygen.audio.sfx.ambient.frog_croak_1", + ], + threshold: 4.0, + ), + Bees: ( + files: [ + "voxygen.audio.sfx.ambient.bees_1", + ], + threshold: 15.0, + subtitle: "subtitle-bees", + ), + RunningWaterSlow: ( + files: [ + "voxygen.audio.sfx.ambient.river_sounds.running_water-001", + "voxygen.audio.sfx.ambient.river_sounds.running_water-002", + "voxygen.audio.sfx.ambient.river_sounds.running_water-003", + "voxygen.audio.sfx.ambient.river_sounds.running_water-004", + "voxygen.audio.sfx.ambient.river_sounds.running_water-005", + "voxygen.audio.sfx.ambient.river_sounds.running_water-006", + "voxygen.audio.sfx.ambient.river_sounds.running_water-007", + "voxygen.audio.sfx.ambient.river_sounds.running_water-008", + "voxygen.audio.sfx.ambient.river_sounds.running_water-009", + "voxygen.audio.sfx.ambient.river_sounds.running_water-010", + "voxygen.audio.sfx.ambient.river_sounds.running_water-011", + "voxygen.audio.sfx.ambient.river_sounds.running_water-012", + "voxygen.audio.sfx.ambient.river_sounds.running_water-013", + "voxygen.audio.sfx.ambient.river_sounds.running_water-014", + "voxygen.audio.sfx.ambient.river_sounds.running_water-015", + "voxygen.audio.sfx.ambient.river_sounds.running_water-016", + "voxygen.audio.sfx.ambient.river_sounds.running_water-017", + "voxygen.audio.sfx.ambient.river_sounds.running_water-018", + "voxygen.audio.sfx.ambient.river_sounds.running_water-019", + "voxygen.audio.sfx.ambient.river_sounds.running_water-020", + "voxygen.audio.sfx.ambient.river_sounds.running_water-021", + "voxygen.audio.sfx.ambient.river_sounds.running_water-022", + "voxygen.audio.sfx.ambient.river_sounds.running_water-023", + "voxygen.audio.sfx.ambient.river_sounds.running_water-024", + "voxygen.audio.sfx.ambient.river_sounds.running_water-025", + "voxygen.audio.sfx.ambient.river_sounds.running_water-026", + "voxygen.audio.sfx.ambient.river_sounds.running_water-027", + ], + threshold: 7.0, + subtitle: "subtitle-running_water", + ), + RunningWaterFast: ( + files: [ + "voxygen.audio.sfx.ambient.river_sounds.fast_water-001", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-002", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-003", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-004", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-005", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-006", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-007", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-008", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-009", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-010", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-011", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-012", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-013", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-014", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-015", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-016", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-017", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-018", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-019", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-020", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-021", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-022", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-023", + "voxygen.audio.sfx.ambient.river_sounds.fast_water-024", + ], + threshold: 5.0, + subtitle: "subtitle-running_water", + ), + Lavapool: ( + files: [ + "voxygen.audio.sfx.ambient.river_sounds.running_water-003", + "voxygen.audio.sfx.ambient.river_sounds.running_water-004", + "voxygen.audio.sfx.ambient.river_sounds.running_water-005", + "voxygen.audio.sfx.ambient.river_sounds.running_water-006", + "voxygen.audio.sfx.ambient.river_sounds.running_water-012", + "voxygen.audio.sfx.ambient.river_sounds.running_water-013", + ], + threshold: 7.0, + subtitle: "subtitle-lavapool", + ), + SplashSmall: ( + files: [ + "voxygen.audio.sfx.footsteps.splash_small", + ], + threshold: 0.0, + subtitle: "subtitle-splash" + ), + SplashMedium: ( + files: [ + "voxygen.audio.sfx.footsteps.splash_medium", + ], + threshold: 0.0, + subtitle: "subtitle-splash" + ), + SplashBig: ( + files: [ + "voxygen.audio.sfx.footsteps.splash_big", + ], + threshold: 0.0, + subtitle: "subtitle-splash" + ), + // + // Character States + // + Swim: ( + files: [ + "voxygen.audio.sfx.footsteps.water_splash_1", + "voxygen.audio.sfx.footsteps.water_splash_2", + "voxygen.audio.sfx.footsteps.water_splash_3", + "voxygen.audio.sfx.footsteps.water_splash_4", + ], + threshold: 0.5, + subtitle: "subtitle-swim", + ), + Run(Earth): ( + files: [ + "voxygen.audio.sfx.footsteps.stepdirt_1", + "voxygen.audio.sfx.footsteps.stepdirt_2", + "voxygen.audio.sfx.footsteps.stepdirt_3", + "voxygen.audio.sfx.footsteps.stepdirt_4", + "voxygen.audio.sfx.footsteps.stepdirt_5", + ], + threshold: 0.5, + subtitle: "subtitle-footsteps_earth", + ), + QuadRun(Earth): ( + files: [ + "voxygen.audio.sfx.footsteps.stepdirt_1", + "voxygen.audio.sfx.footsteps.stepdirt_2", + "voxygen.audio.sfx.footsteps.stepdirt_3", + "voxygen.audio.sfx.footsteps.stepdirt_4", + "voxygen.audio.sfx.footsteps.stepdirt_5", + ], + threshold: 0.25, + subtitle: "subtitle-footsteps_earth", + ), + Run(Grass): ( + files: [ + "voxygen.audio.sfx.footsteps.stepgrass_1", + "voxygen.audio.sfx.footsteps.stepgrass_2", + "voxygen.audio.sfx.footsteps.stepgrass_3", + "voxygen.audio.sfx.footsteps.stepgrass_4", + "voxygen.audio.sfx.footsteps.stepgrass_5", + "voxygen.audio.sfx.footsteps.stepgrass_6", + ], + threshold: 1.0, + subtitle: "subtitle-footsteps_grass", + ), + QuadRun(Grass): ( + files: [ + "voxygen.audio.sfx.footsteps.stepgrass_1", + "voxygen.audio.sfx.footsteps.stepgrass_2", + "voxygen.audio.sfx.footsteps.stepgrass_3", + "voxygen.audio.sfx.footsteps.stepgrass_4", + "voxygen.audio.sfx.footsteps.stepgrass_5", + "voxygen.audio.sfx.footsteps.stepgrass_6", + ], + threshold: 0.5, + subtitle: "subtitle-footsteps_grass", + ), + // For when sand 1) exists and 2) has unique sounds + // Run(Sand): ( + // files: [ + // "voxygen.audio.sfx.footsteps.stepdirt_1", + // "voxygen.audio.sfx.footsteps.stepdirt_2", + // "voxygen.audio.sfx.footsteps.stepdirt_3", + // "voxygen.audio.sfx.footsteps.stepdirt_4", + // "voxygen.audio.sfx.footsteps.stepdirt_5", + // ], + // threshold: 1.6, + // ), + // QuadRun(Sand): ( + // files: [ + // "voxygen.audio.sfx.footsteps.stepdirt_1", + // "voxygen.audio.sfx.footsteps.stepdirt_2", + // "voxygen.audio.sfx.footsteps.stepdirt_3", + // "voxygen.audio.sfx.footsteps.stepdirt_4", + // "voxygen.audio.sfx.footsteps.stepdirt_5", + // ], + // threshold: 0.8, + // ), + Run(Snow): ( + files: [ + "voxygen.audio.sfx.footsteps.snow_step_1", + "voxygen.audio.sfx.footsteps.snow_step_2", + "voxygen.audio.sfx.footsteps.snow_step_3", + ], + threshold: 1.0, + subtitle: "subtitle-footsteps_snow", + ), + QuadRun(Snow): ( + files: [ + "voxygen.audio.sfx.footsteps.snow_step_1", + "voxygen.audio.sfx.footsteps.snow_step_2", + "voxygen.audio.sfx.footsteps.snow_step_3", + ], + threshold: 0.5, + subtitle: "subtitle-footsteps_snow", + ), + Run(Rock): ( + files: [ + "voxygen.audio.sfx.footsteps.stone_step_1", + "voxygen.audio.sfx.footsteps.stone_step_2", + "voxygen.audio.sfx.footsteps.stone_step_3", + "voxygen.audio.sfx.footsteps.stone_step_4", + "voxygen.audio.sfx.footsteps.stone_step_5", + "voxygen.audio.sfx.footsteps.stone_step_6", + "voxygen.audio.sfx.footsteps.stone_step_7", + "voxygen.audio.sfx.footsteps.stone_step_8", + "voxygen.audio.sfx.footsteps.stone_step_9", + "voxygen.audio.sfx.footsteps.stone_step_10", + "voxygen.audio.sfx.footsteps.stone_step_11", + "voxygen.audio.sfx.footsteps.stone_step_12", + ], + threshold: 1.0, + subtitle: "subtitle-footsteps_rock", + ), + QuadRun(Rock): ( + files: [ + "voxygen.audio.sfx.footsteps.stone_step_1", + "voxygen.audio.sfx.footsteps.stone_step_2", + "voxygen.audio.sfx.footsteps.stone_step_3", + "voxygen.audio.sfx.footsteps.stone_step_4", + "voxygen.audio.sfx.footsteps.stone_step_5", + "voxygen.audio.sfx.footsteps.stone_step_6", + "voxygen.audio.sfx.footsteps.stone_step_7", + "voxygen.audio.sfx.footsteps.stone_step_8", + "voxygen.audio.sfx.footsteps.stone_step_9", + "voxygen.audio.sfx.footsteps.stone_step_10", + "voxygen.audio.sfx.footsteps.stone_step_11", + "voxygen.audio.sfx.footsteps.stone_step_12", + ], + threshold: 0.5, + subtitle: "subtitle-footsteps_rock", + ), + Roll: ( + files: [ + "voxygen.audio.sfx.character.dive_roll_1", + "voxygen.audio.sfx.character.dive_roll_2", + ], + threshold: 0.3, + subtitle: "subtitle-roll", + ), + Climb: ( + files: [ + // TODO: sync with animation, make actual sfx + "voxygen.audio.sfx.footsteps.stepdirt_1", + "voxygen.audio.sfx.footsteps.stepdirt_2", + "voxygen.audio.sfx.footsteps.stepdirt_3", + "voxygen.audio.sfx.footsteps.stepdirt_4", + "voxygen.audio.sfx.footsteps.stepdirt_5", + ], + threshold: 1.2, + subtitle: "subtitle-climb", + ), + GliderOpen: ( + files: [ + "voxygen.audio.sfx.character.glider_open", + ], + threshold: 0.1, + subtitle: "subtitle-glider_open", + ), + GliderClose: ( + files: [ + "voxygen.audio.sfx.character.glider_close", + ], + threshold: 0.1, + subtitle: "subtitle-glider_close", + ), + Glide: ( + files: [ + "voxygen.audio.sfx.character.catch_air_1", + "voxygen.audio.sfx.character.catch_air_2", + "voxygen.audio.sfx.character.catch_air_3", + "voxygen.audio.sfx.character.catch_air_4", + "voxygen.audio.sfx.character.catch_air_5", + "voxygen.audio.sfx.character.catch_air_6", + "voxygen.audio.sfx.character.catch_air_7", + "voxygen.audio.sfx.character.catch_air_8", + ], + threshold: 0.85, + subtitle: "subtitle-glide", + ), + + // + // Sword + // + Wield(Sword): ( + files: [ + "voxygen.audio.sfx.weapon.sword_out", + ], + threshold: 0.5, + subtitle: "subtitle-wield_sword", + ), + Unwield(Sword): ( + files: [ + "voxygen.audio.sfx.weapon.sword_in", + ], + threshold: 0.5, + subtitle: "subtitle-unwield_sword", + ), + Attack(ComboMelee2(Action), Sword): ( + files: [ + "voxygen.audio.sfx.abilities.swing_sword", + ], + threshold: 0.7, + subtitle: "subtitle-sword_attack", + ), + Attack(FinisherMelee(Action), Sword): ( + files: [ + "voxygen.audio.sfx.abilities.swing_sword", + ], + threshold: 0.7, + subtitle: "subtitle-sword_attack", + ), + Attack(DiveMelee(Action), Sword): ( + files: [ + "voxygen.audio.sfx.abilities.swing_sword", + ], + threshold: 0.7, + subtitle: "subtitle-sword_attack", + ), + Attack(RiposteMelee(Action), Sword): ( + files: [ + "voxygen.audio.sfx.abilities.swing_sword", + ], + threshold: 0.7, + subtitle: "subtitle-sword_attack", + ), + Attack(RapidMelee(Action), Sword): ( + files: [ + "voxygen.audio.sfx.abilities.swing_sword", + ], + threshold: 0.7, + subtitle: "subtitle-sword_attack", + ), + Attack(ChargedMelee(Action), Sword): ( + files: [ + "voxygen.audio.sfx.abilities.swing_sword", + ], + threshold: 0.7, + subtitle: "subtitle-sword_attack", + ), + Attack(DashMelee(Action), Sword): ( + files: [ + "voxygen.audio.sfx.abilities.sword_dash", + ], + threshold: 0.8, + subtitle: "subtitle-sword_attack", + ), + Attack(DashMelee(Action), Hammer): ( + files: [ + "voxygen.audio.sfx.abilities.swing", + ], + threshold: 0.7, + subtitle: "subtitle-hammer-attack", + ), + Inventory(CollectedTool(Sword)): ( + files: [ + "voxygen.audio.sfx.inventory.pickup_sword", + ], + threshold: 0.3, + subtitle: "subtitle-pickup_sword", + ), + + // + // Hammer + // + Wield(Hammer): ( + files: [ + "voxygen.audio.sfx.weapon.weapon_out", + ], + threshold: 0.5, + subtitle: "subtitle-wield_hammer", + ), + Unwield(Hammer): ( + files: [ + "voxygen.audio.sfx.weapon.weapon_in", + ], + threshold: 0.5, + subtitle: "subtitle-unwield_hammer", + ), + Attack(ChargedMelee(Action), Hammer): ( + files: [ + "voxygen.audio.sfx.abilities.swing", + ], + threshold: 0.7, + subtitle: "subtitle-hammer_attack", + ), + Attack(LeapMelee(Action), Hammer): ( + files: [ + "voxygen.audio.sfx.abilities.swing", + ], + threshold: 0.8, + subtitle: "subtitle-hammer_attack", + ), + Inventory(CollectedTool(Hammer)): ( + files: [ + "voxygen.audio.sfx.inventory.pickup_sword", + ], + threshold: 0.3, + subtitle: "subtitle-pickup_hammer", + ), + + // + // Axe + // + Wield(Axe): ( + files: [ + "voxygen.audio.sfx.weapon.weapon_out", + ], + threshold: 0.5, + subtitle: "subtitle-wield_axe", + ), + Unwield(Axe): ( + files: [ + "voxygen.audio.sfx.weapon.weapon_in", + ], + threshold: 0.5, + subtitle: "subtitle-unwield_axe", + ), + Attack(RapidMelee(Action), Axe): ( + files: [ + "voxygen.audio.sfx.abilities.swing", + ], + threshold: 0.8, + subtitle: "subtitle-axe_attack", + ), + Attack(LeapMelee(Action), Axe): ( + files: [ + "voxygen.audio.sfx.abilities.swing", + ], + threshold: 0.8, + subtitle: "subtitle-axe_attack", + ), + Attack(BasicMelee(Action), Axe): ( + files: [ + "voxygen.audio.sfx.abilities.swing", + ], + threshold: 0.8, + subtitle: "subtitle-axe_attack", + ), + Inventory(CollectedTool(Axe)): ( + files: [ + "voxygen.audio.sfx.inventory.pickup_sword", + ], + threshold: 0.3, + subtitle: "subtitle-pickup_axe", + ), + + // + // Fire Staff + // + Wield(Staff): ( + files: [ + "voxygen.audio.sfx.weapon.weapon_out", + ], + threshold: 0.5, + subtitle: "subtitle-wield_staff", + ), + Unwield(Staff): ( + files: [ + "voxygen.audio.sfx.weapon.weapon_in", + ], + threshold: 0.5, + subtitle: "subtitle-unwield_staff", + ), + //Attack(BasicRanged, Staff): ( + // files: [ + // "voxygen.audio.sfx.abilities.staff_channeling", + // ], + // threshold: 0.8, + //), + Inventory(CollectedTool(Staff)): ( + files: [ + "voxygen.audio.sfx.inventory.pickup_staff", + ], + threshold: 0.3, + subtitle: "subtitle-pickup_staff", + ), + + // + // Bow + // + Wield(Bow): ( + files: [ + "voxygen.audio.sfx.weapon.weapon_out", + ], + threshold: 0.5, + subtitle: "subtitle-wield_bow", + ), + Unwield(Bow): ( + files: [ + "voxygen.audio.sfx.weapon.weapon_in", + ], + threshold: 0.5, + subtitle: "subtitle-unwield_bow", + ), + //Attack(BasicRanged, Bow): ( + // files: [ + // // channeling sound. + // ], + // threshold: 0.8, + //), + Inventory(CollectedTool(Bow)): ( + files: [ + "voxygen.audio.sfx.inventory.add_item", + ], + threshold: 0.3, + subtitle: "subtitle-pickup_bow", + ), + + // + // Sceptre + // + Wield(Sceptre): ( + files: [ + "voxygen.audio.sfx.weapon.weapon_out", + ], + threshold: 0.5, + subtitle: "subtitle-wield_sceptre", + ), + Unwield(Sceptre): ( + files: [ + "voxygen.audio.sfx.weapon.weapon_in", + ], + threshold: 0.5, + subtitle: "subtitle-unwield_sceptre", + ), + Attack(BasicAura, Sceptre): ( + files: [ + "voxygen.audio.sfx.abilities.sceptre_aura", + ], + threshold: 2.5, + subtitle: "subtitle-sceptre_heal", + ), + Inventory(CollectedTool(Sceptre)): ( + files: [ + "voxygen.audio.sfx.inventory.pickup_staff", + ], + threshold: 0.3, + subtitle: "subtitle-pickup_sceptre", + ), + + // + // Instruments + // NPC Organ + Attack(BasicAura, Instrument): ( + files: [ + "voxygen.audio.sfx.abilities.barrel_organ", + ], + threshold: 34.75, + subtitle: "subtitle-instrument_organ", + ), + // Player Instruments + Wield(Instrument): ( + files: [ + "voxygen.audio.sfx.weapon.weapon_out", + ], + threshold: 0.5, + subtitle: "subtitle-wield_instrument", + ), + Unwield(Instrument): ( + files: [ + "voxygen.audio.sfx.weapon.weapon_in", + ], + threshold: 0.5, + subtitle: "subtitle-unwield_instrument", + ), + Music(Instrument, Custom("DoubleBass")): ( + files: [ + "voxygen.audio.sfx.instrument.double_bass.double_bass_c", + "voxygen.audio.sfx.instrument.double_bass.double_bass_g", + "voxygen.audio.sfx.instrument.double_bass.double_bass_d", + "voxygen.audio.sfx.instrument.double_bass.double_bass_a", + "voxygen.audio.sfx.instrument.double_bass.double_bass_e", + "voxygen.audio.sfx.instrument.double_bass.double_bass_c1", + "voxygen.audio.sfx.instrument.double_bass.double_bass_ac1", + "voxygen.audio.sfx.instrument.double_bass.double_bass_ag", + "voxygen.audio.sfx.instrument.double_bass.double_bass_cec", + "voxygen.audio.sfx.instrument.double_bass.double_bass_de", + "voxygen.audio.sfx.instrument.double_bass.double_bass_e1c1", + "voxygen.audio.sfx.instrument.double_bass.double_bass_ge", + ], + threshold: 0.5, + subtitle: "subtitle-instrument_double_bass", + ), + Music(Instrument, Custom("Flute")): ( + files: [ + "voxygen.audio.sfx.instrument.flute.flute_c", + "voxygen.audio.sfx.instrument.flute.flute_g", + "voxygen.audio.sfx.instrument.flute.flute_d", + "voxygen.audio.sfx.instrument.flute.flute_a", + "voxygen.audio.sfx.instrument.flute.flute_e", + "voxygen.audio.sfx.instrument.flute.flute_c1", + "voxygen.audio.sfx.instrument.flute.flute_c1a", + "voxygen.audio.sfx.instrument.flute.flute_c1ag", + "voxygen.audio.sfx.instrument.flute.flute_c1d1c1", + "voxygen.audio.sfx.instrument.flute.flute_ceg", + "voxygen.audio.sfx.instrument.flute.flute_dac1", + "voxygen.audio.sfx.instrument.flute.flute_eg", + ], + threshold: 0.5, + subtitle: "subtitle-instrument_flute", + ), + Music(Instrument, Custom("GlassFlute")): ( + files: [ + "voxygen.audio.sfx.instrument.glass_flute.glass_flute_c", + "voxygen.audio.sfx.instrument.glass_flute.glass_flute_g", + "voxygen.audio.sfx.instrument.glass_flute.glass_flute_d", + "voxygen.audio.sfx.instrument.glass_flute.glass_flute_a", + "voxygen.audio.sfx.instrument.glass_flute.glass_flute_e", + "voxygen.audio.sfx.instrument.glass_flute.glass_flute_c1", + "voxygen.audio.sfx.instrument.glass_flute.glass_flute_c1a", + "voxygen.audio.sfx.instrument.glass_flute.glass_flute_c1ag", + "voxygen.audio.sfx.instrument.glass_flute.glass_flute_c1d1c1", + "voxygen.audio.sfx.instrument.glass_flute.glass_flute_ceg", + "voxygen.audio.sfx.instrument.glass_flute.glass_flute_dac1", + "voxygen.audio.sfx.instrument.glass_flute.glass_flute_eg", + ], + threshold: 0.5, + subtitle: "subtitle-instrument_glass_flute", + ), + Music(Instrument, Custom("Lyre")): ( + files: [ + "voxygen.audio.sfx.instrument.lyre.lyre_c", + "voxygen.audio.sfx.instrument.lyre.lyre_g", + "voxygen.audio.sfx.instrument.lyre.lyre_d", + "voxygen.audio.sfx.instrument.lyre.lyre_a", + "voxygen.audio.sfx.instrument.lyre.lyre_e", + "voxygen.audio.sfx.instrument.lyre.lyre_c1", + "voxygen.audio.sfx.instrument.lyre.lyre_c1ag", + "voxygen.audio.sfx.instrument.lyre.lyre_cde", + "voxygen.audio.sfx.instrument.lyre.lyre_d1c1a", + "voxygen.audio.sfx.instrument.lyre.lyre_d1g", + "voxygen.audio.sfx.instrument.lyre.lyre_ec1", + "voxygen.audio.sfx.instrument.lyre.lyre_ega", + ], + threshold: 0.5, + subtitle: "subtitle-instrument_lyre", + ), + Music(Instrument, Custom("IcyTalharpa")): ( + files: [ + "voxygen.audio.sfx.instrument.icy_talharpa.icy_talharpa_c", + "voxygen.audio.sfx.instrument.icy_talharpa.icy_talharpa_g", + "voxygen.audio.sfx.instrument.icy_talharpa.icy_talharpa_d", + "voxygen.audio.sfx.instrument.icy_talharpa.icy_talharpa_a", + "voxygen.audio.sfx.instrument.icy_talharpa.icy_talharpa_e", + "voxygen.audio.sfx.instrument.icy_talharpa.icy_talharpa_c1", + "voxygen.audio.sfx.instrument.icy_talharpa.icy_talharpa_c1ag", + "voxygen.audio.sfx.instrument.icy_talharpa.icy_talharpa_cde", + "voxygen.audio.sfx.instrument.icy_talharpa.icy_talharpa_d1c1a", + "voxygen.audio.sfx.instrument.icy_talharpa.icy_talharpa_d1g", + "voxygen.audio.sfx.instrument.icy_talharpa.icy_talharpa_ec1", + "voxygen.audio.sfx.instrument.icy_talharpa.icy_talharpa_ega", + ], + threshold: 0.5, + subtitle: "subtitle-instrument_icy_talharpa", + ), + Music(Instrument, Custom("Kalimba")): ( + files: [ + "voxygen.audio.sfx.instrument.kalimba.kalimba_c", + "voxygen.audio.sfx.instrument.kalimba.kalimba_g", + "voxygen.audio.sfx.instrument.kalimba.kalimba_d", + "voxygen.audio.sfx.instrument.kalimba.kalimba_a", + "voxygen.audio.sfx.instrument.kalimba.kalimba_e", + "voxygen.audio.sfx.instrument.kalimba.kalimba_c1", + "voxygen.audio.sfx.instrument.kalimba.kalimba_c1a", + "voxygen.audio.sfx.instrument.kalimba.kalimba_c1d1c1", + "voxygen.audio.sfx.instrument.kalimba.kalimba_c1ge", + "voxygen.audio.sfx.instrument.kalimba.kalimba_cdc", + "voxygen.audio.sfx.instrument.kalimba.kalimba_ceg", + "voxygen.audio.sfx.instrument.kalimba.kalimba_da", + ], + threshold: 0.5, + subtitle: "subtitle-instrument_kalimba", + ), + Music(Instrument, Custom("Melodica")): ( + files: [ + "voxygen.audio.sfx.instrument.melodica.melodica_c", + "voxygen.audio.sfx.instrument.melodica.melodica_g", + "voxygen.audio.sfx.instrument.melodica.melodica_d", + "voxygen.audio.sfx.instrument.melodica.melodica_a", + "voxygen.audio.sfx.instrument.melodica.melodica_e", + "voxygen.audio.sfx.instrument.melodica.melodica_c1", + "voxygen.audio.sfx.instrument.melodica.melodica_ad1c1", + "voxygen.audio.sfx.instrument.melodica.melodica_c1a", + "voxygen.audio.sfx.instrument.melodica.melodica_d1a", + "voxygen.audio.sfx.instrument.melodica.melodica_ec", + "voxygen.audio.sfx.instrument.melodica.melodica_ec1g", + "voxygen.audio.sfx.instrument.melodica.melodica_ge", + ], + threshold: 0.5, + subtitle: "subtitle-instrument_melodica", + ), + Music(Instrument, Custom("Lute")): ( + files: [ + "voxygen.audio.sfx.instrument.lute.lute_c", + "voxygen.audio.sfx.instrument.lute.lute_g", + "voxygen.audio.sfx.instrument.lute.lute_d", + "voxygen.audio.sfx.instrument.lute.lute_a", + "voxygen.audio.sfx.instrument.lute.lute_e", + "voxygen.audio.sfx.instrument.lute.lute_c1", + "voxygen.audio.sfx.instrument.lute.lute_ac1", + "voxygen.audio.sfx.instrument.lute.lute_c1d1c1", + "voxygen.audio.sfx.instrument.lute.lute_cdc", + "voxygen.audio.sfx.instrument.lute.lute_ege", + "voxygen.audio.sfx.instrument.lute.lute_gag", + "voxygen.audio.sfx.instrument.lute.lute_ded", + ], + threshold: 0.5, + subtitle: "subtitle-instrument_lute", + ), + Music(Instrument, Custom("Steeltonguedrum")): ( + files: [ + "voxygen.audio.sfx.instrument.steeltonguedrum.steeltonguedrum_eg", + "voxygen.audio.sfx.instrument.steeltonguedrum.steeltonguedrum_e", + "voxygen.audio.sfx.instrument.steeltonguedrum.steeltonguedrum_d1c1", + "voxygen.audio.sfx.instrument.steeltonguedrum.steeltonguedrum_d1", + "voxygen.audio.sfx.instrument.steeltonguedrum.steeltonguedrum_d", + "voxygen.audio.sfx.instrument.steeltonguedrum.steeltonguedrum_ce", + "voxygen.audio.sfx.instrument.steeltonguedrum.steeltonguedrum_c1ag", + "voxygen.audio.sfx.instrument.steeltonguedrum.steeltonguedrum_c1ae", + "voxygen.audio.sfx.instrument.steeltonguedrum.steeltonguedrum_c1", + "voxygen.audio.sfx.instrument.steeltonguedrum.steeltonguedrum_c", + "voxygen.audio.sfx.instrument.steeltonguedrum.steeltonguedrum_ac1", + "voxygen.audio.sfx.instrument.steeltonguedrum.steeltonguedrum_a", + "voxygen.audio.sfx.instrument.steeltonguedrum.steeltonguedrum_c1c1", + "voxygen.audio.sfx.instrument.steeltonguedrum.steeltonguedrum_g", + ], + threshold: 0.5, + subtitle: "subtitle-instrument_steeltonguedrum", + ), + Music(Instrument, Custom("Shamisen")): ( + files: [ + "voxygen.audio.sfx.instrument.shamisen.shamisen_a", + "voxygen.audio.sfx.instrument.shamisen.shamisen_aec1", + "voxygen.audio.sfx.instrument.shamisen.shamisen_c", + "voxygen.audio.sfx.instrument.shamisen.shamisen_c1", + "voxygen.audio.sfx.instrument.shamisen.shamisen_c1c1a", + "voxygen.audio.sfx.instrument.shamisen.shamisen_cc", + "voxygen.audio.sfx.instrument.shamisen.shamisen_cdc1", + "voxygen.audio.sfx.instrument.shamisen.shamisen_cea", + "voxygen.audio.sfx.instrument.shamisen.shamisen_ceg", + "voxygen.audio.sfx.instrument.shamisen.shamisen_cge", + "voxygen.audio.sfx.instrument.shamisen.shamisen_d", + "voxygen.audio.sfx.instrument.shamisen.shamisen_dac", + "voxygen.audio.sfx.instrument.shamisen.shamisen_e", + "voxygen.audio.sfx.instrument.shamisen.shamisen_ea", + "voxygen.audio.sfx.instrument.shamisen.shamisen_eac1c", + "voxygen.audio.sfx.instrument.shamisen.shamisen_g", + "voxygen.audio.sfx.instrument.shamisen.shamisen_gg", + ], + threshold: 0.5, + subtitle: "subtitle-instrument_shamisen", + ), + Music(Instrument, Custom("Sitar")): ( + files: [ + "voxygen.audio.sfx.instrument.sitar.sitar_c", + "voxygen.audio.sfx.instrument.sitar.sitar_g", + "voxygen.audio.sfx.instrument.sitar.sitar_d", + "voxygen.audio.sfx.instrument.sitar.sitar_a", + "voxygen.audio.sfx.instrument.sitar.sitar_e", + "voxygen.audio.sfx.instrument.sitar.sitar_c1", + "voxygen.audio.sfx.instrument.sitar.sitar_c1ae", + "voxygen.audio.sfx.instrument.sitar.sitar_ce", + "voxygen.audio.sfx.instrument.sitar.sitar_da", + "voxygen.audio.sfx.instrument.sitar.sitar_ec1", + "voxygen.audio.sfx.instrument.sitar.sitar_gd1", + "voxygen.audio.sfx.instrument.sitar.sitar_gec", + ], + threshold: 0.5, + subtitle: "subtitle-instrument_sitar", + ), + Music(Instrument, Custom("Guitar")): ( + files: [ + "voxygen.audio.sfx.instrument.guitar.guitar_c", + "voxygen.audio.sfx.instrument.guitar.guitar_g", + "voxygen.audio.sfx.instrument.guitar.guitar_d", + "voxygen.audio.sfx.instrument.guitar.guitar_a", + "voxygen.audio.sfx.instrument.guitar.guitar_e", + "voxygen.audio.sfx.instrument.guitar.guitar_c1", + "voxygen.audio.sfx.instrument.guitar.guitar_ac1a", + "voxygen.audio.sfx.instrument.guitar.guitar_c1d1c1", + "voxygen.audio.sfx.instrument.guitar.guitar_cdc", + "voxygen.audio.sfx.instrument.guitar.guitar_ded", + "voxygen.audio.sfx.instrument.guitar.guitar_ege", + "voxygen.audio.sfx.instrument.guitar.guitar_gag", + ], + threshold: 0.5, + subtitle: "subtitle-instrument_guitar", + ), + Music(Instrument, Custom("DarkGuitar")): ( + files: [ + "voxygen.audio.sfx.instrument.dark_guitar.dark_guitar_a", + "voxygen.audio.sfx.instrument.dark_guitar.dark_guitar_c", + "voxygen.audio.sfx.instrument.dark_guitar.dark_guitar_c1", + "voxygen.audio.sfx.instrument.dark_guitar.dark_guitar_c1ae", + "voxygen.audio.sfx.instrument.dark_guitar.dark_guitar_cce", + "voxygen.audio.sfx.instrument.dark_guitar.dark_guitar_ceg", + "voxygen.audio.sfx.instrument.dark_guitar.dark_guitar_d", + "voxygen.audio.sfx.instrument.dark_guitar.dark_guitar_d1c1a", + "voxygen.audio.sfx.instrument.dark_guitar.dark_guitar_d1ge", + "voxygen.audio.sfx.instrument.dark_guitar.dark_guitar_dda", + "voxygen.audio.sfx.instrument.dark_guitar.dark_guitar_e", + "voxygen.audio.sfx.instrument.dark_guitar.dark_guitar_eeg", + "voxygen.audio.sfx.instrument.dark_guitar.dark_guitar_g", + "voxygen.audio.sfx.instrument.dark_guitar.dark_guitar_gec", + ], + threshold: 0.5, + subtitle: "subtitle-instrument_dark_guitar", + ), + Music(Instrument, Custom("Washboard")): ( + files: [ + "voxygen.audio.sfx.instrument.washboard.washboard_c", + "voxygen.audio.sfx.instrument.washboard.washboard_g", + "voxygen.audio.sfx.instrument.washboard.washboard_d", + "voxygen.audio.sfx.instrument.washboard.washboard_d", + "voxygen.audio.sfx.instrument.washboard.washboard_d", + "voxygen.audio.sfx.instrument.washboard.washboard_d", + "voxygen.audio.sfx.instrument.washboard.washboard_d_d", + "voxygen.audio.sfx.instrument.washboard.washboard_dd", + "voxygen.audio.sfx.instrument.washboard.washboard_d_dd", + "voxygen.audio.sfx.instrument.washboard.washboard_dd_d", + "voxygen.audio.sfx.instrument.washboard.washboard_a", + "voxygen.audio.sfx.instrument.washboard.washboard_e", + ], + threshold: 0.5, + subtitle: "subtitle-instrument_washboard", + ), + Music(Instrument, Custom("WildskinDrum")): ( + files: [ + "voxygen.audio.sfx.instrument.wildskin_drum.wildskin_drum_c", + "voxygen.audio.sfx.instrument.wildskin_drum.wildskin_drum_d", + "voxygen.audio.sfx.instrument.wildskin_drum.wildskin_drum_e", + "voxygen.audio.sfx.instrument.wildskin_drum.wildskin_drum_f", + "voxygen.audio.sfx.instrument.wildskin_drum.wildskin_drum_g", + "voxygen.audio.sfx.instrument.wildskin_drum.wildskin_drum_a", + "voxygen.audio.sfx.instrument.wildskin_drum.wildskin_drum_b", + "voxygen.audio.sfx.instrument.wildskin_drum.wildskin_drum_c1", + ], + threshold: 0.5, + subtitle: "subtitle-instrument_wildskin_drum", + ), + Music(Instrument, Custom("Kora")): ( + files: [ + "voxygen.audio.sfx.instrument.kora.kora_c1e1c2", + "voxygen.audio.sfx.instrument.kora.kora_cega", + "voxygen.audio.sfx.instrument.kora.kora_deac1", + "voxygen.audio.sfx.instrument.kora.kora_eg", + "voxygen.audio.sfx.instrument.kora.kora_c1e1g1", + "voxygen.audio.sfx.instrument.kora.kora_ce", + "voxygen.audio.sfx.instrument.kora.kora_e1g1e2c2", + "voxygen.audio.sfx.instrument.kora.kora_cdeg", + "voxygen.audio.sfx.instrument.kora.kora_d1a1d2c2", + "voxygen.audio.sfx.instrument.kora.kora_egad1c1", + "voxygen.audio.sfx.instrument.kora.kora_cec1", + "voxygen.audio.sfx.instrument.kora.kora_dad1c1", + "voxygen.audio.sfx.instrument.kora.kora_ege1c1", + ], + threshold: 0.5, + subtitle: "subtitle-instrument_kora", + ), + Music(Instrument, Custom("Banjo")): ( + files: [ + "voxygen.audio.sfx.instrument.banjo.banjo_c1e1d1c1", + "voxygen.audio.sfx.instrument.banjo.banjo_cecgce", + "voxygen.audio.sfx.instrument.banjo.banjo_ceeg", + "voxygen.audio.sfx.instrument.banjo.banjo_ceeg", + "voxygen.audio.sfx.instrument.banjo.banjo_ceeg", + "voxygen.audio.sfx.instrument.banjo.banjo_daece", + "voxygen.audio.sfx.instrument.banjo.banjo_egc1a", + "voxygen.audio.sfx.instrument.banjo.banjo_egc1a", + "voxygen.audio.sfx.instrument.banjo.banjo_egc1a", + "voxygen.audio.sfx.instrument.banjo.banjo_egegc1", + "voxygen.audio.sfx.instrument.banjo.banjo_egegc1", + "voxygen.audio.sfx.instrument.banjo.banjo_egegc1", + "voxygen.audio.sfx.instrument.banjo.banjo_egegc1", + "voxygen.audio.sfx.instrument.banjo.banjo_egga", + "voxygen.audio.sfx.instrument.banjo.banjo_gd1gd1ac1", + "voxygen.audio.sfx.instrument.banjo.banjo_c1e1c1e1d1g1", + "voxygen.audio.sfx.instrument.banjo.banjo_c1e1c1e1d1g1", + "voxygen.audio.sfx.instrument.banjo.banjo_c1e1c1e1d1g1", + "voxygen.audio.sfx.instrument.banjo.banjo_c1d1ae1e1", + "voxygen.audio.sfx.instrument.banjo.banjo_c1d1ae1e1", + "voxygen.audio.sfx.instrument.banjo.banjo_c1d1ae1e1", + "voxygen.audio.sfx.instrument.banjo.banjo_e1a1e1g12c2", + "voxygen.audio.sfx.instrument.banjo.banjo_e1a1e1g12c2", + "voxygen.audio.sfx.instrument.banjo.banjo_e1a1e1g12c2", + "voxygen.audio.sfx.instrument.banjo.banjo_ceceac1ce", + "voxygen.audio.sfx.instrument.banjo.banjo_egegac1eg", + "voxygen.audio.sfx.instrument.banjo.banjo_cecegd1ce", + ], + threshold: 0.5, + subtitle: "subtitle-instrument_banjo", + ), + Inventory(CollectedTool(Instrument)): ( + files: [ + "voxygen.audio.sfx.inventory.add_item", + ], + threshold: 0.3, + subtitle: "subtitle-pickup_instrument", + ), + // + // Dagger + // + Wield(Dagger): ( + files: [ + "voxygen.audio.sfx.weapon.dagger_out", + ], + threshold: 0.5, + subtitle: "subtitle-wield_dagger", + ), + Unwield(Dagger): ( + files: [ + "voxygen.audio.sfx.weapon.dagger_in", + ], + threshold: 0.5, + subtitle: "subtitle-unwield_dagger", + ), + Attack(BasicMelee(Action), Dagger): ( + files: [ + "voxygen.audio.sfx.abilities.swing_sword", + ], + threshold: 0.8, + subtitle: "subtitle-dagger_attack", + ), + Attack(DashMelee(Action), Dagger): ( + files: [ + "voxygen.audio.sfx.abilities.sword_dash", + ], + threshold: 0.8, + subtitle: "subtitle-dagger_attack", + ), + Inventory(CollectedTool(Dagger)): ( + files: [ + "voxygen.audio.sfx.inventory.pickup_sword", + ], + threshold: 0.3, + subtitle: "subtitle-pickup_dagger", + ), + + // + // Shield + // + Wield(Shield): ( + files: [ + "voxygen.audio.sfx.weapon.shield_out", + ], + threshold: 0.5, + subtitle: "subtitle-wield_shield", + ), + Unwield(Shield): ( + files: [ + "voxygen.audio.sfx.weapon.weapon_in", + ], + threshold: 0.5, + subtitle: "subtitle-unwield_shield", + ), + Attack(ComboMelee2(Action), Shield): ( + files: [ + "voxygen.audio.sfx.abilities.swing", + ], + threshold: 0.8, + subtitle: "subtitle-shield_attack", + ), + Inventory(CollectedTool(Shield)): ( + files: [ + "voxygen.audio.sfx.inventory.pickup_sword", + ], + threshold: 0.3, + subtitle: "subtitle-pickup_shield", + ), + + // PickAxe Tool + Inventory(CollectedTool(Pick)): ( + files: [ + "voxygen.audio.sfx.inventory.add_item", + ], + threshold: 0.3, + subtitle: "subtitle-pickup_pick", + ), + // + // Inventory + // + Inventory(Collected): ( + files: [ + "voxygen.audio.sfx.inventory.add_item", + ], + threshold: 0.3, + subtitle: "subtitle-pickup_item", + ), + Inventory(CollectedItem("Gemstone")): ( + files: [ + "voxygen.audio.sfx.inventory.collect_gemstone", + ], + threshold: 0.3, + subtitle: "subtitle-pickup_gemstone", + ), + Inventory(CollectFailed): ( + files: [ + "voxygen.audio.sfx.inventory.add_failed", + ], + threshold: 0.3, + subtitle: "subtitle-pickup_failed", + ), + Inventory(Swapped): ( + files: [ + "voxygen.audio.sfx.inventory.add_item", + ], + threshold: 0.3, + ), + Inventory(Given): ( + files: [ + "voxygen.audio.sfx.inventory.add_item", + ], + threshold: 0.3, + ), + Inventory(Dropped): ( + files: [ + "voxygen.audio.sfx.inventory.drop_item", + ], + threshold: 0.3, + ), + Inventory(Craft): ( + files: [ + "voxygen.audio.sfx.crafting.hammer", + ], + threshold: 0.05, + ), + + // + // Consumables + // + Inventory(Consumed(Simple("common.items.consumable.potion_minor"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.liquid", + ], + threshold: 0.3, + subtitle: "subtitle-consume_potion", + ), + Inventory(Consumed(Simple("common.items.consumable.potion_med"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.liquid", + ], + threshold: 0.3, + subtitle: "subtitle-consume_potion", + ), + Inventory(Consumed(Simple("common.items.consumable.potion_big"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.liquid", + ], + threshold: 0.3, + subtitle: "subtitle-consume_potion", + ), + Inventory(Consumed(Simple("common.items.food.apple"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.apple", + ], + threshold: 0.3, + subtitle: "subtitle-consume_apple", + ), + Inventory(Consumed(Simple("common.items.food.mushroom"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.food", + ], + threshold: 0.3, + subtitle: "subtitle-consume_food", + ), + Inventory(Consumed(Simple("common.items.food.cheese"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.food", + ], + threshold: 0.3, + subtitle: "subtitle-consume_cheese", + ), + Inventory(Consumed(Simple("common.items.food.sunflower_icetea"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.liquid", + ], + threshold: 0.3, + subtitle: "subtitle-consume_liquid", + ), + Inventory(Consumed(Simple("common.items.food.apple_mushroom_curry"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.liquid", + ], + threshold: 0.3, + subtitle: "subtitle-consume_food", + ), + Inventory(Consumed(Simple("common.items.food.apple_stick"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.food", + ], + threshold: 0.3, + subtitle: "subtitle-consume_food", + ), + Inventory(Consumed(Simple("common.items.food.coconut"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.food", + ], + threshold: 0.3, + subtitle: "subtitle-consume_food", + ), + Inventory(Consumed(Simple("common.items.food.mushroom_stick"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.food", + ], + threshold: 0.3, + subtitle: "subtitle-consume_food", + ), + Inventory(Consumed(Simple("common.items.food.tomato"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.food", + ], + threshold: 0.3, + subtitle: "subtitle-consume_food", + ), + Inventory(Consumed(Simple("common.items.food.carrot"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.food", + ], + threshold: 0.3, + subtitle: "subtitle-consume_food", + ), + Inventory(Consumed(Simple("common.items.food.lettuce"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.food", + ], + threshold: 0.3, + subtitle: "subtitle-consume_food", + ), + Inventory(Consumed(Simple("common.items.food.plainsalad"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.food", + ], + threshold: 0.3, + subtitle: "subtitle-consume_food", + ), + Inventory(Consumed(Simple("common.items.food.tomatosalad"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.food", + ], + threshold: 0.3, + subtitle: "subtitle-consume_food", + ), + Inventory(Consumed(Simple("common.items.food.cactus_colada"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.liquid", + ], + threshold: 0.3, + subtitle: "subtitle-consume_liquid", + ), + Inventory(Consumed(Simple("common.items.food.meat.bird_raw"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.food", + ], + threshold: 0.3, + subtitle: "subtitle-consume_food", + ), + Inventory(Consumed(Simple("common.items.food.meat.bird_cooked"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.food", + ], + threshold: 0.3, + subtitle: "subtitle-consume_food", + ), + Inventory(Consumed(Simple("common.items.food.meat.fish_raw"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.food", + ], + threshold: 0.3, + subtitle: "subtitle-consume_food", + ), + Inventory(Consumed(Simple("common.items.food.meat.fish_cooked"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.food", + ], + threshold: 0.3, + subtitle: "subtitle-consume_food", + ), + Inventory(Consumed(Simple("common.items.food.meat.beast_large_raw"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.food", + ], + threshold: 0.3, + subtitle: "subtitle-consume_food", + ), + Inventory(Consumed(Simple("common.items.food.meat.beast_large_cooked"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.food", + ], + threshold: 0.3, + subtitle: "subtitle-consume_food", + ), + Inventory(Consumed(Simple("common.items.food.meat.beast_small_raw"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.food", + ], + threshold: 0.3, + subtitle: "subtitle-consume_food", + ), + Inventory(Consumed(Simple("common.items.food.meat.beast_small_cooked"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.food", + ], + threshold: 0.3, + subtitle: "subtitle-consume_food", + ), + Inventory(Consumed(Simple("common.items.food.meat.tough_raw"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.food", + ], + threshold: 0.3, + subtitle: "subtitle-consume_food", + ), + Inventory(Consumed(Simple("common.items.food.meat.tough_cooked"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.food", + ], + threshold: 0.3, + subtitle: "subtitle-consume_food", + ), + Inventory(Consumed(Simple("common.items.food.meat.bird_large_raw"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.food", + ], + threshold: 0.3, + subtitle: "subtitle-consume_food", + ), + Inventory(Consumed(Simple("common.items.food.meat.bird_large_cooked"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.food", + ], + threshold: 0.3, + subtitle: "subtitle-consume_food", + ), + Inventory(Consumed(Simple("common.items.food.honeycorn"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.food", + ], + threshold: 0.3, + subtitle: "subtitle-consume_food", + ), + Inventory(Consumed(Simple("common.items.food.pumpkin_spice_brew"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.liquid", + ], + threshold: 0.3, + subtitle: "subtitle-consume_liquid", + ), + Inventory(Consumed(Simple("common.items.food.blue_cheese"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.food", + ], + threshold: 0.3, + subtitle: "subtitle-consume_cheese", + ), + Inventory(Consumed(Simple("common.items.debug.golden_cheese"))): ( + files: [ + "voxygen.audio.sfx.inventory.consumable.food", + ], + threshold: 0.3, + subtitle: "subtitle-consume_cheese", + ), + + // + //Combat + // + Explosion: ( + files: [ + "voxygen.audio.sfx.abilities.explosion", + ], + threshold: 0.2, + subtitle: "subtitle-explosion", + ), + ArrowShot: ( + files: [ + "voxygen.audio.sfx.abilities.arrow_shot_1", + "voxygen.audio.sfx.abilities.arrow_shot_2", + "voxygen.audio.sfx.abilities.arrow_shot_3", + "voxygen.audio.sfx.abilities.arrow_shot_4", + ], + threshold: 0.2, + subtitle: "subtitle-arrow_shot", + ), + Yeet: ( + files: [ + "voxygen.audio.sfx.abilities.yeet", + ], + threshold: 0.3, + ), + FireShot: ( + files: [ + "voxygen.audio.sfx.abilities.fire_shot_1", + "voxygen.audio.sfx.abilities.fire_shot_2", + ], + threshold: 0.2, + subtitle: "subtitle-fire_shot", + ), + ArrowMiss: ( + files: [ + "voxygen.audio.sfx.character.arrow_miss", + ], + threshold: 0.2, + subtitle: "subtitle-arrow_miss", + ), + ArrowHit: ( + files: [ + "voxygen.audio.sfx.character.arrow_hit", + ], + threshold: 0.2, + subtitle: "subtitle-arrow_hit", + ), + Klonk: ( + files: [ + "voxygen.audio.sfx.abilities.klonk", + ], + threshold: 0.4, + ), + SmashKlonk: ( + files: [ + "voxygen.audio.sfx.abilities.smashklonk", + ], + threshold: 0.4, + ), + StrigoiHead: ( + files: [ + "voxygen.audio.sfx.abilities.strigoi_head", + ], + threshold: 0.8, + subtitle: "subtitle-attack-strigoi_head", + + ), + Hiss: ( + files: [ + "voxygen.audio.sfx.abilities.hiss", + ], + threshold: 0.2, + ), + BloodmoonHeiressSummon: ( + files: [ + "voxygen.audio.sfx.abilities.bloodmoon_heiress_summon", + ], + threshold: 0.5, + subtitle: "subtitle-attack-bloodmoon_heiress_summon", + + ), + SkillPointGain: ( + files: [ + "voxygen.audio.sfx.character.level_up_sound_-_shorter_wind_up", + ], + threshold: 0.2, + subtitle: "subtitle-skill_point", + ), + SceptreBeam: ( + files: [ + "voxygen.audio.sfx.abilities.sceptre_channeling", + ], + threshold: 0.2, + subtitle: "subtitle-sceptre_beam", + ), + FlameThrower: ( + files: [ + "voxygen.audio.sfx.abilities.flame_thrower", + ], + threshold: 0.2, + subtitle: "subtitle-flame_thrower", + ), + BreakBlock: ( + files: [ + "voxygen.audio.sfx.footsteps.stone_step_1", + ], + threshold: 0.2, + subtitle: "subtitle-break_block", + ), + PickaxeDamage: ( + files: [ + "voxygen.audio.sfx.abilities.pickaxe_damage", + ], + threshold: 0.2, + subtitle: "subtitle-damage_block", + ), + PickaxeDamageStrong: ( + files: [ + "voxygen.audio.sfx.abilities.pickaxe_damage_stronk", + ], + threshold: 0.2, + subtitle: "subtitle-damage_strong_block", + ), + PickaxeBreakBlock: ( + files: [ + "voxygen.audio.sfx.abilities.pickaxe_damage_broken", + ], + threshold: 0.2, + subtitle: "subtitle-damage_strong_broken", + ), + Damage: ( + files: [ + "voxygen.audio.sfx.character.hit_1", + "voxygen.audio.sfx.character.hit_2", + "voxygen.audio.sfx.character.hit_3", + "voxygen.audio.sfx.character.hit_4", + ], + threshold: 0.2, + subtitle: "subtitle-damage", + ), + Death: ( + files: [ + "voxygen.audio.sfx.character.death_1", + "voxygen.audio.sfx.character.death_2", + "voxygen.audio.sfx.character.death_3", + ], + threshold: 0.2, + subtitle: "subtitle-death", + ), + Block: ( + files: [ + "voxygen.audio.sfx.character.block_1", + "voxygen.audio.sfx.character.block_2", + "voxygen.audio.sfx.character.block_3", + ], + threshold: 0.2, + subtitle: "subtitle-attack_blocked", + ), + Parry: ( + files: [ + "voxygen.audio.sfx.character.parry_1", + "voxygen.audio.sfx.character.parry_2", + ], + threshold: 0.2, + subtitle: "subtitle-parry", + ), + PoiseChange(Interrupted): ( + files: [ + "voxygen.audio.sfx.character.interrupted_1", + "voxygen.audio.sfx.character.interrupted_2", + "voxygen.audio.sfx.character.interrupted_3", + "voxygen.audio.sfx.character.interrupted_4", + ], + threshold: 0.25, + subtitle: "subtitle-interrupted", + ), + PoiseChange(Stunned): ( + files: [ + "voxygen.audio.sfx.character.stunned_1", + "voxygen.audio.sfx.character.stunned_2", + "voxygen.audio.sfx.character.stunned_3", + ], + threshold: 0.6, + subtitle: "subtitle-stunned", + ), + PoiseChange(Dazed): ( + files: [ + "voxygen.audio.sfx.character.dazed_1", + "voxygen.audio.sfx.character.dazed_2", + "voxygen.audio.sfx.character.dazed_3", + ], + threshold: 0.85, + subtitle: "subtitle-dazed", + ), + PoiseChange(KnockedDown): ( + files: [ + "voxygen.audio.sfx.character.knockeddown_1", + "voxygen.audio.sfx.character.knockeddown_2", + ], + threshold: 1.25, + subtitle: "subtitle-knocked_down", + ), + GroundSlam: ( + files: [ + "voxygen.audio.sfx.abilities.minotaur_smash_1", + "voxygen.audio.sfx.abilities.minotaur_smash_2", + ], + threshold: 0.2, + subtitle: "subtitle-attack-ground_slam", + ), + SurpriseEgg: ( + files: [ + "voxygen.audio.sfx.abilities.surprise_egg_0", + "voxygen.audio.sfx.abilities.surprise_egg_1", + "voxygen.audio.sfx.abilities.surprise_egg_2", + "voxygen.audio.sfx.abilities.surprise_egg_3", + ], + threshold: 2.2, + subtitle: "subtitle-surprise_egg", + ), + LaserBeam: ( + files: [ + "voxygen.audio.sfx.abilities.laser_beam", + ], + threshold: 1.25, + subtitle: "subtitle-attack-laser_beam", + ), + Whoosh: ( + files: [ + "voxygen.audio.sfx.abilities.whoosh", + ], + threshold: 0.4, + ), + Swoosh: ( + files: [ + "voxygen.audio.sfx.abilities.swoosh", + ], + threshold: 1.3, + ), + CyclopsCharge: ( + files: [ + "voxygen.audio.sfx.abilities.cyclops_charge", + ], + threshold: 0.3, + subtitle: "subtitle-attack-cyclops_charge", + ), + FuseCharge: ( + files: [ + "voxygen.audio.sfx.abilities.fuse", + ], + threshold: 0.2, + subtitle: "subtitle-attack-fuse_charge", + ), + GigaRoar: ( + files: [ + "voxygen.audio.sfx.abilities.gigas_frost_roar", + ], + threshold: 1.3, + subtitle: "subtitle-giga_roar", + ), + DeepLaugh: ( + files: [ + "voxygen.audio.sfx.abilities.deep_laugh", + ], + threshold: 1.2, + subtitle: "subtitle-deep_laugh", + ), + Bleep: ( + files: [ + "voxygen.audio.sfx.abilities.bleep", + ], + threshold: 1.8, + subtitle: "subtitle-bleep", + ), + FlashFreeze: ( + files: [ + "voxygen.audio.sfx.abilities.minotaur_smash_2", + ], + threshold: 0.2, + subtitle: "subtitle-attack-flash_freeze", + ), + IceSpikes: ( + files: [ + "voxygen.audio.sfx.abilities.minotaur_smash_2", + ], + threshold: 0.2, + subtitle: "subtitle-attack-icy_spikes", + ), + IceCrack: ( + files: [ + "voxygen.audio.sfx.abilities.ice_crack", + ], + threshold: 0.9, + subtitle: "subtitle-attack-ice_crack", + ), + Steam: ( + files: [ + "voxygen.audio.sfx.abilities.steam", + ], + threshold: 0.9, + subtitle: "subtitle-attack-steam", + ), + GroundDig: ( + files: [ + "voxygen.audio.sfx.abilities.shovel", + ], + threshold: 0.8, + subtitle: "subtitle-attack-shovel", + ), + PortalActivated: ( + files: [ + "voxygen.audio.sfx.ambient.portal_2", + ], + threshold: 0.8, + subtitle: "subtitle-portal-activated", + ), + TeleportedByPortal: ( + files: [ + "voxygen.audio.sfx.ambient.portal_1", + ], + threshold: 0.8, + subtitle: "subtitle-portal-teleported", + ), + FromTheAshes: ( + files: [ + "voxygen.audio.sfx.abilities.heal", + ], + threshold: 1.8, + subtitle: "subtitle-attack-from-the-ashes", + ), + + // Utterances (NPCs) + + Utterance(Angry, Alligator): ( + files: [ + "voxygen.audio.sfx.utterance.alligator_angry1", + "voxygen.audio.sfx.utterance.alligator_angry2", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-alligator-angry", + ), + Utterance(Angry, Antelope): ( + files: [ + "voxygen.audio.sfx.utterance.antelope_angry1", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-antelope-angry", + ), + Utterance(Angry, BipedLarge): ( + files: [ + "voxygen.audio.sfx.utterance.ogre_angry1", + "voxygen.audio.sfx.utterance.ogre_angry2", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-biped_large-angry", + ), + Utterance(Angry, Bird): ( + files: [ + "voxygen.audio.sfx.utterance.bird_angry1", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-bird-angry", + ), + Utterance(Angry, Wyvern): ( + files: [ + "voxygen.audio.sfx.utterance.wyvern_angry", + ], + threshold: 1.3, + subtitle: "subtitle-utterance-wyvern-angry", + ), + Utterance(Angry, Phoenix): ( + files: [ + "voxygen.audio.sfx.utterance.phoenix_angry_0", + "voxygen.audio.sfx.utterance.phoenix_angry_1", + ], + threshold: 3.1, + subtitle: "subtitle-utterance-phoenix-angry", + ), + Utterance(Angry, VampireBat): ( + files: [ + "voxygen.audio.sfx.utterance.vampire_bat_angry", + ], + threshold: 1.3, + subtitle: "subtitle-utterance-vampire-bat-angry", + ), + Utterance(Angry, Adlet): ( + files: [ + "voxygen.audio.sfx.utterance.adlet_angry1", + "voxygen.audio.sfx.utterance.adlet_angry2", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-adlet-angry", + ), + Utterance(Angry, Pig): ( + files: [ + "voxygen.audio.sfx.utterance.pig_angry1", + "voxygen.audio.sfx.utterance.pig_angry2", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-pig-angry", + ), + Utterance(Angry, Reptile): ( + files: [ + "voxygen.audio.sfx.utterance.alligator_angry1", + "voxygen.audio.sfx.utterance.alligator_angry2", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-reptile-angry", + ), + Utterance(Angry, SeaCrocodile): ( + files: [ + "voxygen.audio.sfx.utterance.sea_crocodile_angry1", + "voxygen.audio.sfx.utterance.sea_crocodile_angry2", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-sea_crocodile-angry", + ), + Utterance(Angry, Saurok): ( + files: [ + "voxygen.audio.sfx.utterance.saurok_angry1", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-saurok-angry", + ), + Utterance(Calm, Cat): ( + files: [ + "voxygen.audio.sfx.utterance.cat_calm1", + "voxygen.audio.sfx.utterance.cat_calm2", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-cat-calm", + ), + Utterance(Calm, Cow): ( + files: [ + "voxygen.audio.sfx.utterance.cow_calm1", + "voxygen.audio.sfx.utterance.cow_calm2", + "voxygen.audio.sfx.utterance.cow_calm3", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-cow-calm", + ), + Utterance(Calm, Fungome): ( + files: [ + "voxygen.audio.sfx.utterance.fungome_calm1", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-fungome-calm", + ), + Utterance(Calm, Goat): ( + files: [ + "voxygen.audio.sfx.utterance.goat_calm1", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-goat-calm", + ), + Utterance(Calm, Pig): ( + files: [ + "voxygen.audio.sfx.utterance.pig_calm1", + "voxygen.audio.sfx.utterance.pig_calm2", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-pig-calm", + ), + Utterance(Calm, Sheep): ( + files: [ + "voxygen.audio.sfx.utterance.sheep_calm1", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-sheep-calm", + ), + Utterance(Calm, Truffler): ( + files: [ + "voxygen.audio.sfx.utterance.truffler_calm1", + "voxygen.audio.sfx.utterance.truffler_calm2", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-truffler-calm", + ), + Utterance(Greeting, HumanMale): ( + files: [ + "voxygen.audio.sfx.utterance.humanmale_greeting1", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-human-greeting", + ), + Utterance(Greeting, HumanFemale): ( + files: [ + "voxygen.audio.sfx.utterance.humanfemale_greeting1", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-human-greeting", + ), + Utterance(Hurt, Adlet): ( + files: [ + "voxygen.audio.sfx.utterance.adlet_hurt1", + "voxygen.audio.sfx.utterance.adlet_hurt2", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-adlet-hurt", + ), + Utterance(Hurt, Antelope): ( + files: [ + "voxygen.audio.sfx.utterance.antelope_hurt1", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-antelope-hurt", + ), + Utterance(Hurt, BipedLarge): ( + files: [ + "voxygen.audio.sfx.utterance.ogre_hurt1", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-biped_large-hurt", + ), + Utterance(Hurt, HumanMale): ( + files: [ + "voxygen.audio.sfx.utterance.humanmale_hurt1", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-human-hurt", + ), + Utterance(Hurt, Lion): ( + files: [ + "voxygen.audio.sfx.utterance.lion_hurt1", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-lion-hurt", + ), + Utterance(Hurt, Mandragora): ( + files: [ + "voxygen.audio.sfx.utterance.mandragora_hurt1", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-mandroga-hurt", + ), + Utterance(Hurt, Maneater): ( + files: [ + "voxygen.audio.sfx.utterance.maneater_hurt1", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-maneater-hurt", + ), + Utterance(Hurt, Marlin): ( + files: [ + "voxygen.audio.sfx.utterance.marlin_hurt1", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-marlin-hurt", + ), + Utterance(Hurt, Mindflayer): ( + files: [ + "voxygen.audio.sfx.utterance.mindflayer_hurt1", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-mindflayer-hurt", + ), + Utterance(Hurt, Dagon): ( + files: [ + "voxygen.audio.sfx.utterance.dagon_hurt1", + "voxygen.audio.sfx.utterance.dagon_hurt2", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-dagon-hurt", + ), + Utterance(Angry, Asp): ( + files: [ + "voxygen.audio.sfx.utterance.asp_angry1", + "voxygen.audio.sfx.utterance.asp_angry2", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-asp-angry", + ), + Utterance(Calm, Asp): ( + files: [ + "voxygen.audio.sfx.utterance.asp_calm1", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-asp-calm", + ), + Utterance(Hurt, Asp): ( + files: [ + "voxygen.audio.sfx.utterance.asp_hurt1", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-asp-hurt", + ), + Utterance(Hurt, Wyvern): ( + files: [ + "voxygen.audio.sfx.utterance.wyvern_hurt", + ], + threshold: 1.2, + subtitle: "subtitle-utterance-wyvern-hurt", + ), + Utterance(Hurt, Phoenix): ( + files: [ + "voxygen.audio.sfx.utterance.phoenix_hurt_0", + "voxygen.audio.sfx.utterance.phoenix_hurt_1", + ], + threshold: 1.5, + subtitle: "subtitle-utterance-phoenix-hurt", + ), + Utterance(Hurt, VampireBat): ( + files: [ + "voxygen.audio.sfx.utterance.vampire_bat_hurt", + ], + threshold: 1.2, + subtitle: "subtitle-utterance-vampire-bat-hurt", + ), + Utterance(Angry, Wendigo): ( + files: [ + "voxygen.audio.sfx.utterance.wendigo_angry1", + "voxygen.audio.sfx.utterance.wendigo_angry2", + "voxygen.audio.sfx.utterance.wendigo_angry3", + "voxygen.audio.sfx.utterance.wendigo_angry4", + "voxygen.audio.sfx.utterance.wendigo_angry5", + "voxygen.audio.sfx.utterance.wendigo_angry6", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-wendigo-angry", + ), + Utterance(Calm, Wendigo): ( + files: [ + "voxygen.audio.sfx.utterance.wendigo_calm1", + "voxygen.audio.sfx.utterance.wendigo_calm2", + "voxygen.audio.sfx.utterance.wendigo_calm3", + "voxygen.audio.sfx.utterance.wendigo_calm4", + "voxygen.audio.sfx.utterance.wendigo_calm5", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-wendigo-calm", + ), + Utterance(Angry, Wolf): ( + files: [ + "voxygen.audio.sfx.utterance.wolf_angry1", + "voxygen.audio.sfx.utterance.wolf_angry2", + "voxygen.audio.sfx.utterance.wolf_angry3", + "voxygen.audio.sfx.utterance.wolf_angry4", + "voxygen.audio.sfx.utterance.wolf_angry5", + "voxygen.audio.sfx.utterance.wolf_angry6", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-wolf-angry", + ), + Utterance(Hurt, Wolf): ( + files: [ + "voxygen.audio.sfx.utterance.wolf_hurt1", + "voxygen.audio.sfx.utterance.wolf_hurt2", + "voxygen.audio.sfx.utterance.wolf_hurt3", + "voxygen.audio.sfx.utterance.wolf_hurt4", + "voxygen.audio.sfx.utterance.wolf_hurt5", + ], + threshold: 1.0, + subtitle: "subtitle-utterance-wolf-hurt", + ), + Utterance(Calm, Legoom): ( + files: [ + "voxygen.audio.sfx.utterance.legoom_3", + "voxygen.audio.sfx.utterance.legoom_4", + "voxygen.audio.sfx.utterance.legoom_6", + "voxygen.audio.sfx.utterance.legoom_11", + "voxygen.audio.sfx.utterance.legoom_15", + ], + threshold: 1.0, + subtitle:"subtitle-utterance-legoom-calm", + ), + Utterance(Hurt, Legoom): ( + files: [ + "voxygen.audio.sfx.utterance.legoom_2", + "voxygen.audio.sfx.utterance.legoom_9", + "voxygen.audio.sfx.utterance.legoom_10", + "voxygen.audio.sfx.utterance.legoom_12", + "voxygen.audio.sfx.utterance.legoom_13", + ], + threshold: 1.0, + subtitle:"subtitle-utterance-legoom-hurt", + ), + Utterance(Angry, Legoom): ( + files: [ + "voxygen.audio.sfx.utterance.legoom_1", + "voxygen.audio.sfx.utterance.legoom_5", + "voxygen.audio.sfx.utterance.legoom_7", + "voxygen.audio.sfx.utterance.legoom_8", + "voxygen.audio.sfx.utterance.legoom_14", + ], + threshold: 1.0, + subtitle:"subtitle-utterance-legoom-angry", + ), + Lightning: ( + files: [ + "voxygen.audio.sfx.ambient.lightning_1", + ], + threshold: 1.0, + subtitle: "subtitle-lightning", + ), + } +) diff --git a/assets/voxygen/audio/sfx/abilities/arrow_shot_1.ogg b/assets/voxygen/audio/sfx/abilities/arrow_shot_1.ogg new file mode 100644 index 0000000..36959fb Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/arrow_shot_1.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/arrow_shot_2.ogg b/assets/voxygen/audio/sfx/abilities/arrow_shot_2.ogg new file mode 100644 index 0000000..1c58237 Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/arrow_shot_2.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/arrow_shot_3.ogg b/assets/voxygen/audio/sfx/abilities/arrow_shot_3.ogg new file mode 100644 index 0000000..3872398 Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/arrow_shot_3.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/arrow_shot_4.ogg b/assets/voxygen/audio/sfx/abilities/arrow_shot_4.ogg new file mode 100644 index 0000000..4023f95 Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/arrow_shot_4.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/barrel_organ.ogg b/assets/voxygen/audio/sfx/abilities/barrel_organ.ogg new file mode 100644 index 0000000..f50a478 Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/barrel_organ.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/bleep.ogg b/assets/voxygen/audio/sfx/abilities/bleep.ogg new file mode 100644 index 0000000..ad2e2d6 Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/bleep.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/bloodmoon_heiress_summon.ogg b/assets/voxygen/audio/sfx/abilities/bloodmoon_heiress_summon.ogg new file mode 100644 index 0000000..54168d7 Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/bloodmoon_heiress_summon.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/cyclops_charge.ogg b/assets/voxygen/audio/sfx/abilities/cyclops_charge.ogg new file mode 100644 index 0000000..2f9c9d1 Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/cyclops_charge.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/deep_laugh.ogg b/assets/voxygen/audio/sfx/abilities/deep_laugh.ogg new file mode 100644 index 0000000..b309b34 Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/deep_laugh.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/explosion.ogg b/assets/voxygen/audio/sfx/abilities/explosion.ogg new file mode 100644 index 0000000..dd3de0a Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/explosion.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/fire_shot_1.ogg b/assets/voxygen/audio/sfx/abilities/fire_shot_1.ogg new file mode 100644 index 0000000..d411789 Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/fire_shot_1.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/fire_shot_2.ogg b/assets/voxygen/audio/sfx/abilities/fire_shot_2.ogg new file mode 100644 index 0000000..e32699a Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/fire_shot_2.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/flame_thrower.ogg b/assets/voxygen/audio/sfx/abilities/flame_thrower.ogg new file mode 100644 index 0000000..a9052f6 Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/flame_thrower.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/fuse.ogg b/assets/voxygen/audio/sfx/abilities/fuse.ogg new file mode 100644 index 0000000..785b416 Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/fuse.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/gigas_frost_roar.ogg b/assets/voxygen/audio/sfx/abilities/gigas_frost_roar.ogg new file mode 100644 index 0000000..648da8a Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/gigas_frost_roar.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/heal.ogg b/assets/voxygen/audio/sfx/abilities/heal.ogg new file mode 100644 index 0000000..81531f3 Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/heal.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/heal_bomb.ogg b/assets/voxygen/audio/sfx/abilities/heal_bomb.ogg new file mode 100644 index 0000000..b18e95d Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/heal_bomb.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/hiss.ogg b/assets/voxygen/audio/sfx/abilities/hiss.ogg new file mode 100644 index 0000000..c2b0ede Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/hiss.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/ice_crack.ogg b/assets/voxygen/audio/sfx/abilities/ice_crack.ogg new file mode 100644 index 0000000..47e39d3 Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/ice_crack.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/klonk.ogg b/assets/voxygen/audio/sfx/abilities/klonk.ogg new file mode 100644 index 0000000..71a838b Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/klonk.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/laser_beam.ogg b/assets/voxygen/audio/sfx/abilities/laser_beam.ogg new file mode 100644 index 0000000..ad0fd48 Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/laser_beam.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/minotaur_smash_1.ogg b/assets/voxygen/audio/sfx/abilities/minotaur_smash_1.ogg new file mode 100644 index 0000000..2f9db0a Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/minotaur_smash_1.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/minotaur_smash_2.ogg b/assets/voxygen/audio/sfx/abilities/minotaur_smash_2.ogg new file mode 100644 index 0000000..354cbb9 Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/minotaur_smash_2.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/pickaxe_damage.ogg b/assets/voxygen/audio/sfx/abilities/pickaxe_damage.ogg new file mode 100644 index 0000000..528ec87 Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/pickaxe_damage.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/pickaxe_damage_broken.ogg b/assets/voxygen/audio/sfx/abilities/pickaxe_damage_broken.ogg new file mode 100644 index 0000000..1e8482a Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/pickaxe_damage_broken.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/pickaxe_damage_stronk.ogg b/assets/voxygen/audio/sfx/abilities/pickaxe_damage_stronk.ogg new file mode 100644 index 0000000..0c20089 Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/pickaxe_damage_stronk.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/sceptre_aura.ogg b/assets/voxygen/audio/sfx/abilities/sceptre_aura.ogg new file mode 100644 index 0000000..04f09e6 Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/sceptre_aura.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/sceptre_channeling.ogg b/assets/voxygen/audio/sfx/abilities/sceptre_channeling.ogg new file mode 100644 index 0000000..fabd7e7 Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/sceptre_channeling.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/separated_second_swing.ogg b/assets/voxygen/audio/sfx/abilities/separated_second_swing.ogg new file mode 100644 index 0000000..c27d363 Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/separated_second_swing.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/separated_third_swing.ogg b/assets/voxygen/audio/sfx/abilities/separated_third_swing.ogg new file mode 100644 index 0000000..5d25aa8 Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/separated_third_swing.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/shovel.ogg b/assets/voxygen/audio/sfx/abilities/shovel.ogg new file mode 100644 index 0000000..2fc12ef Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/shovel.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/smashklonk.ogg b/assets/voxygen/audio/sfx/abilities/smashklonk.ogg new file mode 100644 index 0000000..179baa1 Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/smashklonk.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/steam.ogg b/assets/voxygen/audio/sfx/abilities/steam.ogg new file mode 100644 index 0000000..e45443f Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/steam.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/strigoi_head.ogg b/assets/voxygen/audio/sfx/abilities/strigoi_head.ogg new file mode 100644 index 0000000..2951f49 Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/strigoi_head.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/surprise_egg_0.ogg b/assets/voxygen/audio/sfx/abilities/surprise_egg_0.ogg new file mode 100644 index 0000000..35a1e38 Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/surprise_egg_0.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/surprise_egg_1.ogg b/assets/voxygen/audio/sfx/abilities/surprise_egg_1.ogg new file mode 100644 index 0000000..d6b1373 Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/surprise_egg_1.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/surprise_egg_2.ogg b/assets/voxygen/audio/sfx/abilities/surprise_egg_2.ogg new file mode 100644 index 0000000..b38d469 Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/surprise_egg_2.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/surprise_egg_3.ogg b/assets/voxygen/audio/sfx/abilities/surprise_egg_3.ogg new file mode 100644 index 0000000..9b85b4a Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/surprise_egg_3.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/swing.ogg b/assets/voxygen/audio/sfx/abilities/swing.ogg new file mode 100644 index 0000000..2f48755 Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/swing.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/swing_sword.ogg b/assets/voxygen/audio/sfx/abilities/swing_sword.ogg new file mode 100644 index 0000000..67c4b1f Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/swing_sword.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/swoosh.ogg b/assets/voxygen/audio/sfx/abilities/swoosh.ogg new file mode 100644 index 0000000..92634bb Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/swoosh.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/sword_dash.ogg b/assets/voxygen/audio/sfx/abilities/sword_dash.ogg new file mode 100644 index 0000000..aa748dc Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/sword_dash.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/whoosh.ogg b/assets/voxygen/audio/sfx/abilities/whoosh.ogg new file mode 100644 index 0000000..70a44ba Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/whoosh.ogg differ diff --git a/assets/voxygen/audio/sfx/abilities/yeet.ogg b/assets/voxygen/audio/sfx/abilities/yeet.ogg new file mode 100644 index 0000000..4b3f990 Binary files /dev/null and b/assets/voxygen/audio/sfx/abilities/yeet.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/bees_1.ogg b/assets/voxygen/audio/sfx/ambient/bees_1.ogg new file mode 100644 index 0000000..26f4d1d Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/bees_1.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_01.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_01.ogg new file mode 100644 index 0000000..e99eba0 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/birdcall_01.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_02.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_02.ogg new file mode 100644 index 0000000..4dbc9b5 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/birdcall_02.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_03.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_03.ogg new file mode 100644 index 0000000..bf8f9f0 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/birdcall_03.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_04.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_04.ogg new file mode 100644 index 0000000..a1691e2 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/birdcall_04.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_05.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_05.ogg new file mode 100644 index 0000000..19ce34c Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/birdcall_05.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_06.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_06.ogg new file mode 100644 index 0000000..5e90ff7 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/birdcall_06.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_07.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_07.ogg new file mode 100644 index 0000000..aacc81d Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/birdcall_07.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_08.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_08.ogg new file mode 100644 index 0000000..c8be87d Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/birdcall_08.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_09.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_09.ogg new file mode 100644 index 0000000..2c1e958 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/birdcall_09.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/birdcall_10.ogg b/assets/voxygen/audio/sfx/ambient/birdcall_10.ogg new file mode 100644 index 0000000..c30e580 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/birdcall_10.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/crickets_1.ogg b/assets/voxygen/audio/sfx/ambient/crickets_1.ogg new file mode 100644 index 0000000..9c2b80a Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/crickets_1.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/crickets_2.ogg b/assets/voxygen/audio/sfx/ambient/crickets_2.ogg new file mode 100644 index 0000000..d0e6bb3 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/crickets_2.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/crickets_3.ogg b/assets/voxygen/audio/sfx/ambient/crickets_3.ogg new file mode 100644 index 0000000..fc7e051 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/crickets_3.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/fire.ogg b/assets/voxygen/audio/sfx/ambient/fire.ogg new file mode 100644 index 0000000..fa4bca3 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/fire.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/frog_croak_1.ogg b/assets/voxygen/audio/sfx/ambient/frog_croak_1.ogg new file mode 100644 index 0000000..4a4e287 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/frog_croak_1.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/lightning_1.ogg b/assets/voxygen/audio/sfx/ambient/lightning_1.ogg new file mode 100644 index 0000000..e4e37e7 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/lightning_1.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/owl_1.ogg b/assets/voxygen/audio/sfx/ambient/owl_1.ogg new file mode 100644 index 0000000..457f0db Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/owl_1.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/portal_1.ogg b/assets/voxygen/audio/sfx/ambient/portal_1.ogg new file mode 100644 index 0000000..c3bd48b Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/portal_1.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/portal_2.ogg b/assets/voxygen/audio/sfx/ambient/portal_2.ogg new file mode 100644 index 0000000..0531ff2 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/portal_2.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-001.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-001.ogg new file mode 100644 index 0000000..90a6337 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-001.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-002.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-002.ogg new file mode 100644 index 0000000..3d3837f Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-002.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-003.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-003.ogg new file mode 100644 index 0000000..79ea0a6 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-003.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-004.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-004.ogg new file mode 100644 index 0000000..d0ae3aa Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-004.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-005.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-005.ogg new file mode 100644 index 0000000..5879d61 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-005.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-006.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-006.ogg new file mode 100644 index 0000000..2834cdf Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-006.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-007.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-007.ogg new file mode 100644 index 0000000..837999a Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-007.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-008.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-008.ogg new file mode 100644 index 0000000..caf184c Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-008.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-009.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-009.ogg new file mode 100644 index 0000000..2cb7398 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-009.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-010.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-010.ogg new file mode 100644 index 0000000..3948892 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-010.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-011.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-011.ogg new file mode 100644 index 0000000..f84860a Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-011.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-012.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-012.ogg new file mode 100644 index 0000000..96c42f5 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-012.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-013.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-013.ogg new file mode 100644 index 0000000..3afd12e Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-013.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-014.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-014.ogg new file mode 100644 index 0000000..abaa46d Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-014.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-015.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-015.ogg new file mode 100644 index 0000000..8fb961a Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-015.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-016.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-016.ogg new file mode 100644 index 0000000..511cfa0 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-016.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-017.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-017.ogg new file mode 100644 index 0000000..ef06e56 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-017.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-018.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-018.ogg new file mode 100644 index 0000000..e92b74c Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-018.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-019.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-019.ogg new file mode 100644 index 0000000..ee98f24 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-019.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-020.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-020.ogg new file mode 100644 index 0000000..eea00ab Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-020.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-021.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-021.ogg new file mode 100644 index 0000000..d22e587 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-021.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-022.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-022.ogg new file mode 100644 index 0000000..6231718 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-022.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-023.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-023.ogg new file mode 100644 index 0000000..37fcea8 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-023.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-024.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-024.ogg new file mode 100644 index 0000000..d8ce55b Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/fast_water-024.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-001.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-001.ogg new file mode 100644 index 0000000..35c1a53 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-001.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-002.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-002.ogg new file mode 100644 index 0000000..ea625cf Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-002.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-003.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-003.ogg new file mode 100644 index 0000000..445605e Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-003.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-004.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-004.ogg new file mode 100644 index 0000000..d35a6bf Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-004.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-005.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-005.ogg new file mode 100644 index 0000000..ebbdfff Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-005.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-006.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-006.ogg new file mode 100644 index 0000000..fdd5a63 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-006.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-007.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-007.ogg new file mode 100644 index 0000000..2ea35f6 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-007.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-008.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-008.ogg new file mode 100644 index 0000000..4db6583 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-008.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-009.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-009.ogg new file mode 100644 index 0000000..6c098e0 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-009.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-010.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-010.ogg new file mode 100644 index 0000000..c902312 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-010.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-011.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-011.ogg new file mode 100644 index 0000000..a29e1a4 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-011.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-012.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-012.ogg new file mode 100644 index 0000000..04d254a Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-012.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-013.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-013.ogg new file mode 100644 index 0000000..0cc3aaa Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-013.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-014.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-014.ogg new file mode 100644 index 0000000..1e3dd00 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-014.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-015.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-015.ogg new file mode 100644 index 0000000..61998dc Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-015.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-016.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-016.ogg new file mode 100644 index 0000000..d88372b Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-016.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-017.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-017.ogg new file mode 100644 index 0000000..d254ae1 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-017.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-018.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-018.ogg new file mode 100644 index 0000000..2d6057a Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-018.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-019.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-019.ogg new file mode 100644 index 0000000..5b1a36c Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-019.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-020.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-020.ogg new file mode 100644 index 0000000..72a00f2 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-020.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-021.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-021.ogg new file mode 100644 index 0000000..80d7c9b Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-021.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-022.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-022.ogg new file mode 100644 index 0000000..b52cbae Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-022.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-023.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-023.ogg new file mode 100644 index 0000000..f87422c Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-023.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-024.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-024.ogg new file mode 100644 index 0000000..5fa88d3 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-024.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-025.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-025.ogg new file mode 100644 index 0000000..38ed3d6 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-025.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-026.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-026.ogg new file mode 100644 index 0000000..80c4362 Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-026.ogg differ diff --git a/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-027.ogg b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-027.ogg new file mode 100644 index 0000000..02ddaad Binary files /dev/null and b/assets/voxygen/audio/sfx/ambient/river_sounds/running_water-027.ogg differ diff --git a/assets/voxygen/audio/sfx/character/arrow_hit.ogg b/assets/voxygen/audio/sfx/character/arrow_hit.ogg new file mode 100644 index 0000000..54e1911 Binary files /dev/null and b/assets/voxygen/audio/sfx/character/arrow_hit.ogg differ diff --git a/assets/voxygen/audio/sfx/character/arrow_miss.ogg b/assets/voxygen/audio/sfx/character/arrow_miss.ogg new file mode 100644 index 0000000..d61e0fa Binary files /dev/null and b/assets/voxygen/audio/sfx/character/arrow_miss.ogg differ diff --git a/assets/voxygen/audio/sfx/character/block_1.ogg b/assets/voxygen/audio/sfx/character/block_1.ogg new file mode 100644 index 0000000..bf794a7 Binary files /dev/null and b/assets/voxygen/audio/sfx/character/block_1.ogg differ diff --git a/assets/voxygen/audio/sfx/character/block_2.ogg b/assets/voxygen/audio/sfx/character/block_2.ogg new file mode 100644 index 0000000..c702303 Binary files /dev/null and b/assets/voxygen/audio/sfx/character/block_2.ogg differ diff --git a/assets/voxygen/audio/sfx/character/block_3.ogg b/assets/voxygen/audio/sfx/character/block_3.ogg new file mode 100644 index 0000000..4fa3805 Binary files /dev/null and b/assets/voxygen/audio/sfx/character/block_3.ogg differ diff --git a/assets/voxygen/audio/sfx/character/catch_air_1.ogg b/assets/voxygen/audio/sfx/character/catch_air_1.ogg new file mode 100644 index 0000000..5cbf0ec Binary files /dev/null and b/assets/voxygen/audio/sfx/character/catch_air_1.ogg differ diff --git a/assets/voxygen/audio/sfx/character/catch_air_2.ogg b/assets/voxygen/audio/sfx/character/catch_air_2.ogg new file mode 100644 index 0000000..5fab373 Binary files /dev/null and b/assets/voxygen/audio/sfx/character/catch_air_2.ogg differ diff --git a/assets/voxygen/audio/sfx/character/catch_air_3.ogg b/assets/voxygen/audio/sfx/character/catch_air_3.ogg new file mode 100644 index 0000000..00bdce6 Binary files /dev/null and b/assets/voxygen/audio/sfx/character/catch_air_3.ogg differ diff --git a/assets/voxygen/audio/sfx/character/catch_air_4.ogg b/assets/voxygen/audio/sfx/character/catch_air_4.ogg new file mode 100644 index 0000000..7e54d2b Binary files /dev/null and b/assets/voxygen/audio/sfx/character/catch_air_4.ogg differ diff --git a/assets/voxygen/audio/sfx/character/catch_air_5.ogg b/assets/voxygen/audio/sfx/character/catch_air_5.ogg new file mode 100644 index 0000000..1188534 Binary files /dev/null and b/assets/voxygen/audio/sfx/character/catch_air_5.ogg differ diff --git a/assets/voxygen/audio/sfx/character/catch_air_6.ogg b/assets/voxygen/audio/sfx/character/catch_air_6.ogg new file mode 100644 index 0000000..7e5a809 Binary files /dev/null and b/assets/voxygen/audio/sfx/character/catch_air_6.ogg differ diff --git a/assets/voxygen/audio/sfx/character/catch_air_7.ogg b/assets/voxygen/audio/sfx/character/catch_air_7.ogg new file mode 100644 index 0000000..87ddf6b Binary files /dev/null and b/assets/voxygen/audio/sfx/character/catch_air_7.ogg differ diff --git a/assets/voxygen/audio/sfx/character/catch_air_8.ogg b/assets/voxygen/audio/sfx/character/catch_air_8.ogg new file mode 100644 index 0000000..9c143bf Binary files /dev/null and b/assets/voxygen/audio/sfx/character/catch_air_8.ogg differ diff --git a/assets/voxygen/audio/sfx/character/dazed_1.ogg b/assets/voxygen/audio/sfx/character/dazed_1.ogg new file mode 100644 index 0000000..2fbc75e Binary files /dev/null and b/assets/voxygen/audio/sfx/character/dazed_1.ogg differ diff --git a/assets/voxygen/audio/sfx/character/dazed_2.ogg b/assets/voxygen/audio/sfx/character/dazed_2.ogg new file mode 100644 index 0000000..f6043fb Binary files /dev/null and b/assets/voxygen/audio/sfx/character/dazed_2.ogg differ diff --git a/assets/voxygen/audio/sfx/character/dazed_3.ogg b/assets/voxygen/audio/sfx/character/dazed_3.ogg new file mode 100644 index 0000000..b987b67 Binary files /dev/null and b/assets/voxygen/audio/sfx/character/dazed_3.ogg differ diff --git a/assets/voxygen/audio/sfx/character/death_1.ogg b/assets/voxygen/audio/sfx/character/death_1.ogg new file mode 100644 index 0000000..9d278fc Binary files /dev/null and b/assets/voxygen/audio/sfx/character/death_1.ogg differ diff --git a/assets/voxygen/audio/sfx/character/death_2.ogg b/assets/voxygen/audio/sfx/character/death_2.ogg new file mode 100644 index 0000000..faef94b Binary files /dev/null and b/assets/voxygen/audio/sfx/character/death_2.ogg differ diff --git a/assets/voxygen/audio/sfx/character/death_3.ogg b/assets/voxygen/audio/sfx/character/death_3.ogg new file mode 100644 index 0000000..c99cf45 Binary files /dev/null and b/assets/voxygen/audio/sfx/character/death_3.ogg differ diff --git a/assets/voxygen/audio/sfx/character/dive_roll_1.ogg b/assets/voxygen/audio/sfx/character/dive_roll_1.ogg new file mode 100644 index 0000000..f61750f Binary files /dev/null and b/assets/voxygen/audio/sfx/character/dive_roll_1.ogg differ diff --git a/assets/voxygen/audio/sfx/character/dive_roll_2.ogg b/assets/voxygen/audio/sfx/character/dive_roll_2.ogg new file mode 100644 index 0000000..4e6679b Binary files /dev/null and b/assets/voxygen/audio/sfx/character/dive_roll_2.ogg differ diff --git a/assets/voxygen/audio/sfx/character/experience_gained_1.ogg b/assets/voxygen/audio/sfx/character/experience_gained_1.ogg new file mode 100644 index 0000000..d1a1d52 Binary files /dev/null and b/assets/voxygen/audio/sfx/character/experience_gained_1.ogg differ diff --git a/assets/voxygen/audio/sfx/character/experience_gained_2.ogg b/assets/voxygen/audio/sfx/character/experience_gained_2.ogg new file mode 100644 index 0000000..777484e Binary files /dev/null and b/assets/voxygen/audio/sfx/character/experience_gained_2.ogg differ diff --git a/assets/voxygen/audio/sfx/character/experience_gained_3.ogg b/assets/voxygen/audio/sfx/character/experience_gained_3.ogg new file mode 100644 index 0000000..5550eb7 Binary files /dev/null and b/assets/voxygen/audio/sfx/character/experience_gained_3.ogg differ diff --git a/assets/voxygen/audio/sfx/character/glider_close.ogg b/assets/voxygen/audio/sfx/character/glider_close.ogg new file mode 100644 index 0000000..c26414b Binary files /dev/null and b/assets/voxygen/audio/sfx/character/glider_close.ogg differ diff --git a/assets/voxygen/audio/sfx/character/glider_open.ogg b/assets/voxygen/audio/sfx/character/glider_open.ogg new file mode 100644 index 0000000..c21e702 Binary files /dev/null and b/assets/voxygen/audio/sfx/character/glider_open.ogg differ diff --git a/assets/voxygen/audio/sfx/character/hit_1.ogg b/assets/voxygen/audio/sfx/character/hit_1.ogg new file mode 100644 index 0000000..58b74ca Binary files /dev/null and b/assets/voxygen/audio/sfx/character/hit_1.ogg differ diff --git a/assets/voxygen/audio/sfx/character/hit_2.ogg b/assets/voxygen/audio/sfx/character/hit_2.ogg new file mode 100644 index 0000000..1f64516 Binary files /dev/null and b/assets/voxygen/audio/sfx/character/hit_2.ogg differ diff --git a/assets/voxygen/audio/sfx/character/hit_3.ogg b/assets/voxygen/audio/sfx/character/hit_3.ogg new file mode 100644 index 0000000..733f219 Binary files /dev/null and b/assets/voxygen/audio/sfx/character/hit_3.ogg differ diff --git a/assets/voxygen/audio/sfx/character/hit_4.ogg b/assets/voxygen/audio/sfx/character/hit_4.ogg new file mode 100644 index 0000000..9d8fb36 Binary files /dev/null and b/assets/voxygen/audio/sfx/character/hit_4.ogg differ diff --git a/assets/voxygen/audio/sfx/character/interrupted_1.ogg b/assets/voxygen/audio/sfx/character/interrupted_1.ogg new file mode 100644 index 0000000..77cd536 Binary files /dev/null and b/assets/voxygen/audio/sfx/character/interrupted_1.ogg differ diff --git a/assets/voxygen/audio/sfx/character/interrupted_2.ogg b/assets/voxygen/audio/sfx/character/interrupted_2.ogg new file mode 100644 index 0000000..8a98005 Binary files /dev/null and b/assets/voxygen/audio/sfx/character/interrupted_2.ogg differ diff --git a/assets/voxygen/audio/sfx/character/interrupted_3.ogg b/assets/voxygen/audio/sfx/character/interrupted_3.ogg new file mode 100644 index 0000000..4e1d79f Binary files /dev/null and b/assets/voxygen/audio/sfx/character/interrupted_3.ogg differ diff --git a/assets/voxygen/audio/sfx/character/interrupted_4.ogg b/assets/voxygen/audio/sfx/character/interrupted_4.ogg new file mode 100644 index 0000000..8bb6ff4 Binary files /dev/null and b/assets/voxygen/audio/sfx/character/interrupted_4.ogg differ diff --git a/assets/voxygen/audio/sfx/character/knockeddown_1.ogg b/assets/voxygen/audio/sfx/character/knockeddown_1.ogg new file mode 100644 index 0000000..ecc964b Binary files /dev/null and b/assets/voxygen/audio/sfx/character/knockeddown_1.ogg differ diff --git a/assets/voxygen/audio/sfx/character/knockeddown_2.ogg b/assets/voxygen/audio/sfx/character/knockeddown_2.ogg new file mode 100644 index 0000000..b7b4c52 Binary files /dev/null and b/assets/voxygen/audio/sfx/character/knockeddown_2.ogg differ diff --git a/assets/voxygen/audio/sfx/character/level_up_sound_-_shorter_wind_up.ogg b/assets/voxygen/audio/sfx/character/level_up_sound_-_shorter_wind_up.ogg new file mode 100644 index 0000000..df6db5b Binary files /dev/null and b/assets/voxygen/audio/sfx/character/level_up_sound_-_shorter_wind_up.ogg differ diff --git a/assets/voxygen/audio/sfx/character/parry_1.ogg b/assets/voxygen/audio/sfx/character/parry_1.ogg new file mode 100644 index 0000000..b9cabe7 Binary files /dev/null and b/assets/voxygen/audio/sfx/character/parry_1.ogg differ diff --git a/assets/voxygen/audio/sfx/character/parry_2.ogg b/assets/voxygen/audio/sfx/character/parry_2.ogg new file mode 100644 index 0000000..3aaf6c3 Binary files /dev/null and b/assets/voxygen/audio/sfx/character/parry_2.ogg differ diff --git a/assets/voxygen/audio/sfx/character/stunned_1.ogg b/assets/voxygen/audio/sfx/character/stunned_1.ogg new file mode 100644 index 0000000..28a4b0b Binary files /dev/null and b/assets/voxygen/audio/sfx/character/stunned_1.ogg differ diff --git a/assets/voxygen/audio/sfx/character/stunned_2.ogg b/assets/voxygen/audio/sfx/character/stunned_2.ogg new file mode 100644 index 0000000..c5a38ab Binary files /dev/null and b/assets/voxygen/audio/sfx/character/stunned_2.ogg differ diff --git a/assets/voxygen/audio/sfx/character/stunned_3.ogg b/assets/voxygen/audio/sfx/character/stunned_3.ogg new file mode 100644 index 0000000..225b45d Binary files /dev/null and b/assets/voxygen/audio/sfx/character/stunned_3.ogg differ diff --git a/assets/voxygen/audio/sfx/crafting/hammer.ogg b/assets/voxygen/audio/sfx/crafting/hammer.ogg new file mode 100644 index 0000000..e66b4fe Binary files /dev/null and b/assets/voxygen/audio/sfx/crafting/hammer.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/snow_step_1.ogg b/assets/voxygen/audio/sfx/footsteps/snow_step_1.ogg new file mode 100644 index 0000000..1a90e20 Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/snow_step_1.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/snow_step_2.ogg b/assets/voxygen/audio/sfx/footsteps/snow_step_2.ogg new file mode 100644 index 0000000..831dd6e Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/snow_step_2.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/snow_step_3.ogg b/assets/voxygen/audio/sfx/footsteps/snow_step_3.ogg new file mode 100644 index 0000000..8837133 Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/snow_step_3.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/splash_big.ogg b/assets/voxygen/audio/sfx/footsteps/splash_big.ogg new file mode 100644 index 0000000..7ec9461 Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/splash_big.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/splash_medium.ogg b/assets/voxygen/audio/sfx/footsteps/splash_medium.ogg new file mode 100644 index 0000000..f6a0b80 Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/splash_medium.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/splash_small.ogg b/assets/voxygen/audio/sfx/footsteps/splash_small.ogg new file mode 100644 index 0000000..5d73a0d Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/splash_small.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/stepdirt_1.ogg b/assets/voxygen/audio/sfx/footsteps/stepdirt_1.ogg new file mode 100644 index 0000000..a6cbe4e Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/stepdirt_1.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/stepdirt_2.ogg b/assets/voxygen/audio/sfx/footsteps/stepdirt_2.ogg new file mode 100644 index 0000000..baf009c Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/stepdirt_2.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/stepdirt_3.ogg b/assets/voxygen/audio/sfx/footsteps/stepdirt_3.ogg new file mode 100644 index 0000000..0159573 Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/stepdirt_3.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/stepdirt_4.ogg b/assets/voxygen/audio/sfx/footsteps/stepdirt_4.ogg new file mode 100644 index 0000000..21320f4 Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/stepdirt_4.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/stepdirt_5.ogg b/assets/voxygen/audio/sfx/footsteps/stepdirt_5.ogg new file mode 100644 index 0000000..b5d5fb0 Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/stepdirt_5.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/stepgrass_1.ogg b/assets/voxygen/audio/sfx/footsteps/stepgrass_1.ogg new file mode 100644 index 0000000..56c151f Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/stepgrass_1.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/stepgrass_2.ogg b/assets/voxygen/audio/sfx/footsteps/stepgrass_2.ogg new file mode 100644 index 0000000..c32b60e Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/stepgrass_2.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/stepgrass_3.ogg b/assets/voxygen/audio/sfx/footsteps/stepgrass_3.ogg new file mode 100644 index 0000000..33ddd65 Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/stepgrass_3.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/stepgrass_4.ogg b/assets/voxygen/audio/sfx/footsteps/stepgrass_4.ogg new file mode 100644 index 0000000..98d068c Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/stepgrass_4.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/stepgrass_5.ogg b/assets/voxygen/audio/sfx/footsteps/stepgrass_5.ogg new file mode 100644 index 0000000..baeed6c Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/stepgrass_5.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/stepgrass_6.ogg b/assets/voxygen/audio/sfx/footsteps/stepgrass_6.ogg new file mode 100644 index 0000000..c3a72bd Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/stepgrass_6.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/stone_step_1.ogg b/assets/voxygen/audio/sfx/footsteps/stone_step_1.ogg new file mode 100644 index 0000000..34088b8 Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/stone_step_1.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/stone_step_10.ogg b/assets/voxygen/audio/sfx/footsteps/stone_step_10.ogg new file mode 100644 index 0000000..7abd33d Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/stone_step_10.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/stone_step_11.ogg b/assets/voxygen/audio/sfx/footsteps/stone_step_11.ogg new file mode 100644 index 0000000..efaf003 Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/stone_step_11.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/stone_step_12.ogg b/assets/voxygen/audio/sfx/footsteps/stone_step_12.ogg new file mode 100644 index 0000000..b8c52a9 Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/stone_step_12.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/stone_step_2.ogg b/assets/voxygen/audio/sfx/footsteps/stone_step_2.ogg new file mode 100644 index 0000000..6e4c8e5 Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/stone_step_2.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/stone_step_3.ogg b/assets/voxygen/audio/sfx/footsteps/stone_step_3.ogg new file mode 100644 index 0000000..d903f33 Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/stone_step_3.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/stone_step_4.ogg b/assets/voxygen/audio/sfx/footsteps/stone_step_4.ogg new file mode 100644 index 0000000..c81a9eb Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/stone_step_4.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/stone_step_5.ogg b/assets/voxygen/audio/sfx/footsteps/stone_step_5.ogg new file mode 100644 index 0000000..a6d5ac2 Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/stone_step_5.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/stone_step_6.ogg b/assets/voxygen/audio/sfx/footsteps/stone_step_6.ogg new file mode 100644 index 0000000..5298786 Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/stone_step_6.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/stone_step_7.ogg b/assets/voxygen/audio/sfx/footsteps/stone_step_7.ogg new file mode 100644 index 0000000..9292206 Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/stone_step_7.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/stone_step_8.ogg b/assets/voxygen/audio/sfx/footsteps/stone_step_8.ogg new file mode 100644 index 0000000..cf8cd50 Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/stone_step_8.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/stone_step_9.ogg b/assets/voxygen/audio/sfx/footsteps/stone_step_9.ogg new file mode 100644 index 0000000..a88a27c Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/stone_step_9.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/water_splash_1.ogg b/assets/voxygen/audio/sfx/footsteps/water_splash_1.ogg new file mode 100644 index 0000000..228d72c Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/water_splash_1.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/water_splash_2.ogg b/assets/voxygen/audio/sfx/footsteps/water_splash_2.ogg new file mode 100644 index 0000000..cae473e Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/water_splash_2.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/water_splash_3.ogg b/assets/voxygen/audio/sfx/footsteps/water_splash_3.ogg new file mode 100644 index 0000000..4b0aa8a Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/water_splash_3.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/water_splash_4.ogg b/assets/voxygen/audio/sfx/footsteps/water_splash_4.ogg new file mode 100644 index 0000000..c3a1b8b Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/water_splash_4.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/wood_step_1.ogg b/assets/voxygen/audio/sfx/footsteps/wood_step_1.ogg new file mode 100644 index 0000000..df33a6a Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/wood_step_1.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/wood_step_2.ogg b/assets/voxygen/audio/sfx/footsteps/wood_step_2.ogg new file mode 100644 index 0000000..c063e43 Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/wood_step_2.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/wood_step_3.ogg b/assets/voxygen/audio/sfx/footsteps/wood_step_3.ogg new file mode 100644 index 0000000..b752562 Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/wood_step_3.ogg differ diff --git a/assets/voxygen/audio/sfx/footsteps/wood_step_4.ogg b/assets/voxygen/audio/sfx/footsteps/wood_step_4.ogg new file mode 100644 index 0000000..4030490 Binary files /dev/null and b/assets/voxygen/audio/sfx/footsteps/wood_step_4.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/banjo/banjo_c1d1ae1e1.ogg b/assets/voxygen/audio/sfx/instrument/banjo/banjo_c1d1ae1e1.ogg new file mode 100644 index 0000000..1fe818a Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/banjo/banjo_c1d1ae1e1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/banjo/banjo_c1e1c1e1d1g1.ogg b/assets/voxygen/audio/sfx/instrument/banjo/banjo_c1e1c1e1d1g1.ogg new file mode 100644 index 0000000..89f4f4a Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/banjo/banjo_c1e1c1e1d1g1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/banjo/banjo_c1e1d1c1.ogg b/assets/voxygen/audio/sfx/instrument/banjo/banjo_c1e1d1c1.ogg new file mode 100644 index 0000000..d2c4d61 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/banjo/banjo_c1e1d1c1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/banjo/banjo_ceceac1ce.ogg b/assets/voxygen/audio/sfx/instrument/banjo/banjo_ceceac1ce.ogg new file mode 100644 index 0000000..a062ffe Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/banjo/banjo_ceceac1ce.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/banjo/banjo_cecegd1ce.ogg b/assets/voxygen/audio/sfx/instrument/banjo/banjo_cecegd1ce.ogg new file mode 100644 index 0000000..a7caaa1 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/banjo/banjo_cecegd1ce.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/banjo/banjo_cecgce.ogg b/assets/voxygen/audio/sfx/instrument/banjo/banjo_cecgce.ogg new file mode 100644 index 0000000..cd4e51b Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/banjo/banjo_cecgce.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/banjo/banjo_ceeg.ogg b/assets/voxygen/audio/sfx/instrument/banjo/banjo_ceeg.ogg new file mode 100644 index 0000000..1bdb6e9 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/banjo/banjo_ceeg.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/banjo/banjo_daece.ogg b/assets/voxygen/audio/sfx/instrument/banjo/banjo_daece.ogg new file mode 100644 index 0000000..6cfc50e Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/banjo/banjo_daece.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/banjo/banjo_e1a1e1g12c2.ogg b/assets/voxygen/audio/sfx/instrument/banjo/banjo_e1a1e1g12c2.ogg new file mode 100644 index 0000000..85f69f9 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/banjo/banjo_e1a1e1g12c2.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/banjo/banjo_egc1a.ogg b/assets/voxygen/audio/sfx/instrument/banjo/banjo_egc1a.ogg new file mode 100644 index 0000000..5a2eda3 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/banjo/banjo_egc1a.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/banjo/banjo_egegac1eg.ogg b/assets/voxygen/audio/sfx/instrument/banjo/banjo_egegac1eg.ogg new file mode 100644 index 0000000..e40c8d6 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/banjo/banjo_egegac1eg.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/banjo/banjo_egegc1.ogg b/assets/voxygen/audio/sfx/instrument/banjo/banjo_egegc1.ogg new file mode 100644 index 0000000..655f5d0 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/banjo/banjo_egegc1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/banjo/banjo_egga.ogg b/assets/voxygen/audio/sfx/instrument/banjo/banjo_egga.ogg new file mode 100644 index 0000000..bbf7441 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/banjo/banjo_egga.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/banjo/banjo_gd1gd1ac1.ogg b/assets/voxygen/audio/sfx/instrument/banjo/banjo_gd1gd1ac1.ogg new file mode 100644 index 0000000..033de9b Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/banjo/banjo_gd1gd1ac1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_a.ogg b/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_a.ogg new file mode 100644 index 0000000..c2a7ea5 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_a.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_c.ogg b/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_c.ogg new file mode 100644 index 0000000..c93aeb9 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_c.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_c1.ogg b/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_c1.ogg new file mode 100644 index 0000000..0890ad6 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_c1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_c1ae.ogg b/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_c1ae.ogg new file mode 100644 index 0000000..e53a2c3 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_c1ae.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_cce.ogg b/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_cce.ogg new file mode 100644 index 0000000..0c537d9 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_cce.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_ceg.ogg b/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_ceg.ogg new file mode 100644 index 0000000..9f20645 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_ceg.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_d.ogg b/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_d.ogg new file mode 100644 index 0000000..932ac15 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_d.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_d1c1a.ogg b/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_d1c1a.ogg new file mode 100644 index 0000000..4977919 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_d1c1a.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_d1ge.ogg b/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_d1ge.ogg new file mode 100644 index 0000000..6c4c8fa Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_d1ge.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_dda.ogg b/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_dda.ogg new file mode 100644 index 0000000..30deb78 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_dda.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_e.ogg b/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_e.ogg new file mode 100644 index 0000000..7bf106d Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_e.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_eeg.ogg b/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_eeg.ogg new file mode 100644 index 0000000..44b2b30 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_eeg.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_g.ogg b/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_g.ogg new file mode 100644 index 0000000..dd68f56 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_g.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_gec.ogg b/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_gec.ogg new file mode 100644 index 0000000..5ecb663 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/dark_guitar/dark_guitar_gec.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_a.ogg b/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_a.ogg new file mode 100644 index 0000000..06d5b36 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_a.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_ac1.ogg b/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_ac1.ogg new file mode 100644 index 0000000..6d639fe Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_ac1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_ag.ogg b/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_ag.ogg new file mode 100644 index 0000000..4b67348 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_ag.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_c.ogg b/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_c.ogg new file mode 100644 index 0000000..94589bc Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_c.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_c1.ogg b/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_c1.ogg new file mode 100644 index 0000000..6cd5ec4 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_c1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_cec.ogg b/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_cec.ogg new file mode 100644 index 0000000..37b3ad5 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_cec.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_d.ogg b/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_d.ogg new file mode 100644 index 0000000..22abcee Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_d.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_de.ogg b/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_de.ogg new file mode 100644 index 0000000..780c76c Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_de.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_e.ogg b/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_e.ogg new file mode 100644 index 0000000..fbb0d01 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_e.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_e1c1.ogg b/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_e1c1.ogg new file mode 100644 index 0000000..84514fb Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_e1c1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_g.ogg b/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_g.ogg new file mode 100644 index 0000000..e5c4c54 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_g.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_ge.ogg b/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_ge.ogg new file mode 100644 index 0000000..0455592 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/double_bass/double_bass_ge.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/flute/flute_a.ogg b/assets/voxygen/audio/sfx/instrument/flute/flute_a.ogg new file mode 100644 index 0000000..f2e6f5c Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/flute/flute_a.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/flute/flute_c.ogg b/assets/voxygen/audio/sfx/instrument/flute/flute_c.ogg new file mode 100644 index 0000000..ccf4522 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/flute/flute_c.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/flute/flute_c1.ogg b/assets/voxygen/audio/sfx/instrument/flute/flute_c1.ogg new file mode 100644 index 0000000..5c1d4e0 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/flute/flute_c1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/flute/flute_c1a.ogg b/assets/voxygen/audio/sfx/instrument/flute/flute_c1a.ogg new file mode 100644 index 0000000..8a5bd5b Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/flute/flute_c1a.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/flute/flute_c1ag.ogg b/assets/voxygen/audio/sfx/instrument/flute/flute_c1ag.ogg new file mode 100644 index 0000000..d2bbc73 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/flute/flute_c1ag.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/flute/flute_c1d1c1.ogg b/assets/voxygen/audio/sfx/instrument/flute/flute_c1d1c1.ogg new file mode 100644 index 0000000..43a71f6 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/flute/flute_c1d1c1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/flute/flute_ceg.ogg b/assets/voxygen/audio/sfx/instrument/flute/flute_ceg.ogg new file mode 100644 index 0000000..c443ebc Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/flute/flute_ceg.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/flute/flute_d.ogg b/assets/voxygen/audio/sfx/instrument/flute/flute_d.ogg new file mode 100644 index 0000000..424e05e Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/flute/flute_d.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/flute/flute_dac1.ogg b/assets/voxygen/audio/sfx/instrument/flute/flute_dac1.ogg new file mode 100644 index 0000000..323275b Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/flute/flute_dac1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/flute/flute_e.ogg b/assets/voxygen/audio/sfx/instrument/flute/flute_e.ogg new file mode 100644 index 0000000..3c07150 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/flute/flute_e.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/flute/flute_eg.ogg b/assets/voxygen/audio/sfx/instrument/flute/flute_eg.ogg new file mode 100644 index 0000000..c1c9ab9 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/flute/flute_eg.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/flute/flute_g.ogg b/assets/voxygen/audio/sfx/instrument/flute/flute_g.ogg new file mode 100644 index 0000000..dcd6064 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/flute/flute_g.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_a.ogg b/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_a.ogg new file mode 100644 index 0000000..3c59f85 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_a.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_c.ogg b/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_c.ogg new file mode 100644 index 0000000..e8c2c3b Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_c.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_c1.ogg b/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_c1.ogg new file mode 100644 index 0000000..473ac3c Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_c1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_c1a.ogg b/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_c1a.ogg new file mode 100644 index 0000000..f9abbc4 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_c1a.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_c1ag.ogg b/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_c1ag.ogg new file mode 100644 index 0000000..1e306e9 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_c1ag.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_c1d1c1.ogg b/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_c1d1c1.ogg new file mode 100644 index 0000000..d7fa98c Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_c1d1c1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_ceg.ogg b/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_ceg.ogg new file mode 100644 index 0000000..07f0579 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_ceg.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_d.ogg b/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_d.ogg new file mode 100644 index 0000000..629efd8 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_d.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_dac1.ogg b/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_dac1.ogg new file mode 100644 index 0000000..05c4424 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_dac1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_e.ogg b/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_e.ogg new file mode 100644 index 0000000..c6967f1 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_e.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_eg.ogg b/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_eg.ogg new file mode 100644 index 0000000..4b53f81 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_eg.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_g.ogg b/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_g.ogg new file mode 100644 index 0000000..2bc939f Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/glass_flute/glass_flute_g.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/guitar/guitar_a.ogg b/assets/voxygen/audio/sfx/instrument/guitar/guitar_a.ogg new file mode 100644 index 0000000..e04f277 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/guitar/guitar_a.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/guitar/guitar_ac1a.ogg b/assets/voxygen/audio/sfx/instrument/guitar/guitar_ac1a.ogg new file mode 100644 index 0000000..120ae63 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/guitar/guitar_ac1a.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/guitar/guitar_c.ogg b/assets/voxygen/audio/sfx/instrument/guitar/guitar_c.ogg new file mode 100644 index 0000000..da8beb1 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/guitar/guitar_c.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/guitar/guitar_c1.ogg b/assets/voxygen/audio/sfx/instrument/guitar/guitar_c1.ogg new file mode 100644 index 0000000..f878669 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/guitar/guitar_c1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/guitar/guitar_c1d1c1.ogg b/assets/voxygen/audio/sfx/instrument/guitar/guitar_c1d1c1.ogg new file mode 100644 index 0000000..358136f Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/guitar/guitar_c1d1c1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/guitar/guitar_cdc.ogg b/assets/voxygen/audio/sfx/instrument/guitar/guitar_cdc.ogg new file mode 100644 index 0000000..a12a594 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/guitar/guitar_cdc.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/guitar/guitar_d.ogg b/assets/voxygen/audio/sfx/instrument/guitar/guitar_d.ogg new file mode 100644 index 0000000..11594c4 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/guitar/guitar_d.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/guitar/guitar_ded.ogg b/assets/voxygen/audio/sfx/instrument/guitar/guitar_ded.ogg new file mode 100644 index 0000000..8bce691 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/guitar/guitar_ded.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/guitar/guitar_e.ogg b/assets/voxygen/audio/sfx/instrument/guitar/guitar_e.ogg new file mode 100644 index 0000000..6c9e9c3 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/guitar/guitar_e.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/guitar/guitar_ege.ogg b/assets/voxygen/audio/sfx/instrument/guitar/guitar_ege.ogg new file mode 100644 index 0000000..a6165bc Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/guitar/guitar_ege.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/guitar/guitar_g.ogg b/assets/voxygen/audio/sfx/instrument/guitar/guitar_g.ogg new file mode 100644 index 0000000..861f548 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/guitar/guitar_g.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/guitar/guitar_gag.ogg b/assets/voxygen/audio/sfx/instrument/guitar/guitar_gag.ogg new file mode 100644 index 0000000..a291241 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/guitar/guitar_gag.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_a.ogg b/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_a.ogg new file mode 100644 index 0000000..0113561 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_a.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_c.ogg b/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_c.ogg new file mode 100644 index 0000000..860832d Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_c.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_c1.ogg b/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_c1.ogg new file mode 100644 index 0000000..0cc57a8 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_c1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_c1ag.ogg b/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_c1ag.ogg new file mode 100644 index 0000000..07e219d Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_c1ag.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_cde.ogg b/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_cde.ogg new file mode 100644 index 0000000..d25b124 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_cde.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_d.ogg b/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_d.ogg new file mode 100644 index 0000000..d7ab818 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_d.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_d1c1a.ogg b/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_d1c1a.ogg new file mode 100644 index 0000000..008f961 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_d1c1a.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_d1g.ogg b/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_d1g.ogg new file mode 100644 index 0000000..348c5bc Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_d1g.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_e.ogg b/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_e.ogg new file mode 100644 index 0000000..9503e1e Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_e.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_ec1.ogg b/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_ec1.ogg new file mode 100644 index 0000000..f1b8b64 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_ec1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_ega.ogg b/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_ega.ogg new file mode 100644 index 0000000..9c62d3d Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_ega.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_g.ogg b/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_g.ogg new file mode 100644 index 0000000..cc05c66 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/icy_talharpa/icy_talharpa_g.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_a.ogg b/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_a.ogg new file mode 100644 index 0000000..fe10f76 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_a.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_c.ogg b/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_c.ogg new file mode 100644 index 0000000..41462d7 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_c.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_c1.ogg b/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_c1.ogg new file mode 100644 index 0000000..6d2178f Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_c1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_c1a.ogg b/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_c1a.ogg new file mode 100644 index 0000000..c65bebf Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_c1a.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_c1d1c1.ogg b/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_c1d1c1.ogg new file mode 100644 index 0000000..e100b14 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_c1d1c1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_c1ge.ogg b/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_c1ge.ogg new file mode 100644 index 0000000..7525bb5 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_c1ge.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_cdc.ogg b/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_cdc.ogg new file mode 100644 index 0000000..b7568b6 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_cdc.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_ceg.ogg b/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_ceg.ogg new file mode 100644 index 0000000..11b4174 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_ceg.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_d.ogg b/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_d.ogg new file mode 100644 index 0000000..9267891 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_d.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_da.ogg b/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_da.ogg new file mode 100644 index 0000000..a370b5a Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_da.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_e.ogg b/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_e.ogg new file mode 100644 index 0000000..dba63c2 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_e.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_g.ogg b/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_g.ogg new file mode 100644 index 0000000..81e5e59 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/kalimba/kalimba_g.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/kora/kora_c1e1c2.ogg b/assets/voxygen/audio/sfx/instrument/kora/kora_c1e1c2.ogg new file mode 100644 index 0000000..5e6eb3f Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/kora/kora_c1e1c2.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/kora/kora_c1e1g1.ogg b/assets/voxygen/audio/sfx/instrument/kora/kora_c1e1g1.ogg new file mode 100644 index 0000000..18c4108 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/kora/kora_c1e1g1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/kora/kora_cdeg.ogg b/assets/voxygen/audio/sfx/instrument/kora/kora_cdeg.ogg new file mode 100644 index 0000000..f2cc962 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/kora/kora_cdeg.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/kora/kora_ce.ogg b/assets/voxygen/audio/sfx/instrument/kora/kora_ce.ogg new file mode 100644 index 0000000..3089df3 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/kora/kora_ce.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/kora/kora_cec1.ogg b/assets/voxygen/audio/sfx/instrument/kora/kora_cec1.ogg new file mode 100644 index 0000000..e9ebc8d Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/kora/kora_cec1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/kora/kora_cega.ogg b/assets/voxygen/audio/sfx/instrument/kora/kora_cega.ogg new file mode 100644 index 0000000..48559e7 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/kora/kora_cega.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/kora/kora_d1a1d2c2.ogg b/assets/voxygen/audio/sfx/instrument/kora/kora_d1a1d2c2.ogg new file mode 100644 index 0000000..4513bf1 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/kora/kora_d1a1d2c2.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/kora/kora_dad1c1.ogg b/assets/voxygen/audio/sfx/instrument/kora/kora_dad1c1.ogg new file mode 100644 index 0000000..70267e8 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/kora/kora_dad1c1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/kora/kora_deac1.ogg b/assets/voxygen/audio/sfx/instrument/kora/kora_deac1.ogg new file mode 100644 index 0000000..27e1c93 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/kora/kora_deac1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/kora/kora_e1g1e2c2.ogg b/assets/voxygen/audio/sfx/instrument/kora/kora_e1g1e2c2.ogg new file mode 100644 index 0000000..cf41654 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/kora/kora_e1g1e2c2.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/kora/kora_eg.ogg b/assets/voxygen/audio/sfx/instrument/kora/kora_eg.ogg new file mode 100644 index 0000000..7a71784 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/kora/kora_eg.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/kora/kora_egad1c1.ogg b/assets/voxygen/audio/sfx/instrument/kora/kora_egad1c1.ogg new file mode 100644 index 0000000..544dc05 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/kora/kora_egad1c1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/kora/kora_ege1c1.ogg b/assets/voxygen/audio/sfx/instrument/kora/kora_ege1c1.ogg new file mode 100644 index 0000000..0930244 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/kora/kora_ege1c1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/lute/lute_a.ogg b/assets/voxygen/audio/sfx/instrument/lute/lute_a.ogg new file mode 100644 index 0000000..3389c25 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/lute/lute_a.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/lute/lute_ac1.ogg b/assets/voxygen/audio/sfx/instrument/lute/lute_ac1.ogg new file mode 100644 index 0000000..329db10 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/lute/lute_ac1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/lute/lute_c.ogg b/assets/voxygen/audio/sfx/instrument/lute/lute_c.ogg new file mode 100644 index 0000000..779191b Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/lute/lute_c.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/lute/lute_c1.ogg b/assets/voxygen/audio/sfx/instrument/lute/lute_c1.ogg new file mode 100644 index 0000000..db445f4 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/lute/lute_c1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/lute/lute_c1d1c1.ogg b/assets/voxygen/audio/sfx/instrument/lute/lute_c1d1c1.ogg new file mode 100644 index 0000000..28a281e Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/lute/lute_c1d1c1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/lute/lute_cdc.ogg b/assets/voxygen/audio/sfx/instrument/lute/lute_cdc.ogg new file mode 100644 index 0000000..fb7fbc7 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/lute/lute_cdc.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/lute/lute_d.ogg b/assets/voxygen/audio/sfx/instrument/lute/lute_d.ogg new file mode 100644 index 0000000..b9275f1 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/lute/lute_d.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/lute/lute_ded.ogg b/assets/voxygen/audio/sfx/instrument/lute/lute_ded.ogg new file mode 100644 index 0000000..a8b2fed Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/lute/lute_ded.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/lute/lute_e.ogg b/assets/voxygen/audio/sfx/instrument/lute/lute_e.ogg new file mode 100644 index 0000000..51b1821 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/lute/lute_e.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/lute/lute_ege.ogg b/assets/voxygen/audio/sfx/instrument/lute/lute_ege.ogg new file mode 100644 index 0000000..7c9e76e Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/lute/lute_ege.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/lute/lute_g.ogg b/assets/voxygen/audio/sfx/instrument/lute/lute_g.ogg new file mode 100644 index 0000000..4a90683 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/lute/lute_g.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/lute/lute_gag.ogg b/assets/voxygen/audio/sfx/instrument/lute/lute_gag.ogg new file mode 100644 index 0000000..d3d1ed4 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/lute/lute_gag.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/lyre/lyre_a.ogg b/assets/voxygen/audio/sfx/instrument/lyre/lyre_a.ogg new file mode 100644 index 0000000..a2c35d7 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/lyre/lyre_a.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/lyre/lyre_c.ogg b/assets/voxygen/audio/sfx/instrument/lyre/lyre_c.ogg new file mode 100644 index 0000000..a5836c1 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/lyre/lyre_c.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/lyre/lyre_c1.ogg b/assets/voxygen/audio/sfx/instrument/lyre/lyre_c1.ogg new file mode 100644 index 0000000..719a485 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/lyre/lyre_c1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/lyre/lyre_c1ag.ogg b/assets/voxygen/audio/sfx/instrument/lyre/lyre_c1ag.ogg new file mode 100644 index 0000000..07d08ea Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/lyre/lyre_c1ag.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/lyre/lyre_cde.ogg b/assets/voxygen/audio/sfx/instrument/lyre/lyre_cde.ogg new file mode 100644 index 0000000..27bfcfe Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/lyre/lyre_cde.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/lyre/lyre_d.ogg b/assets/voxygen/audio/sfx/instrument/lyre/lyre_d.ogg new file mode 100644 index 0000000..5efd458 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/lyre/lyre_d.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/lyre/lyre_d1c1a.ogg b/assets/voxygen/audio/sfx/instrument/lyre/lyre_d1c1a.ogg new file mode 100644 index 0000000..faae881 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/lyre/lyre_d1c1a.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/lyre/lyre_d1g.ogg b/assets/voxygen/audio/sfx/instrument/lyre/lyre_d1g.ogg new file mode 100644 index 0000000..cbdeb4a Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/lyre/lyre_d1g.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/lyre/lyre_e.ogg b/assets/voxygen/audio/sfx/instrument/lyre/lyre_e.ogg new file mode 100644 index 0000000..11faa28 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/lyre/lyre_e.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/lyre/lyre_ec1.ogg b/assets/voxygen/audio/sfx/instrument/lyre/lyre_ec1.ogg new file mode 100644 index 0000000..13f5525 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/lyre/lyre_ec1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/lyre/lyre_ega.ogg b/assets/voxygen/audio/sfx/instrument/lyre/lyre_ega.ogg new file mode 100644 index 0000000..1f00dc5 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/lyre/lyre_ega.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/lyre/lyre_g.ogg b/assets/voxygen/audio/sfx/instrument/lyre/lyre_g.ogg new file mode 100644 index 0000000..f3dea0b Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/lyre/lyre_g.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/melodica/melodica_a.ogg b/assets/voxygen/audio/sfx/instrument/melodica/melodica_a.ogg new file mode 100644 index 0000000..51d6f1a Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/melodica/melodica_a.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/melodica/melodica_ad1c1.ogg b/assets/voxygen/audio/sfx/instrument/melodica/melodica_ad1c1.ogg new file mode 100644 index 0000000..c8188a1 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/melodica/melodica_ad1c1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/melodica/melodica_c.ogg b/assets/voxygen/audio/sfx/instrument/melodica/melodica_c.ogg new file mode 100644 index 0000000..bfd0e8c Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/melodica/melodica_c.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/melodica/melodica_c1.ogg b/assets/voxygen/audio/sfx/instrument/melodica/melodica_c1.ogg new file mode 100644 index 0000000..56fe3e8 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/melodica/melodica_c1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/melodica/melodica_c1a.ogg b/assets/voxygen/audio/sfx/instrument/melodica/melodica_c1a.ogg new file mode 100644 index 0000000..0bae1f6 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/melodica/melodica_c1a.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/melodica/melodica_d.ogg b/assets/voxygen/audio/sfx/instrument/melodica/melodica_d.ogg new file mode 100644 index 0000000..8638960 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/melodica/melodica_d.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/melodica/melodica_d1a.ogg b/assets/voxygen/audio/sfx/instrument/melodica/melodica_d1a.ogg new file mode 100644 index 0000000..8dc5ee8 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/melodica/melodica_d1a.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/melodica/melodica_e.ogg b/assets/voxygen/audio/sfx/instrument/melodica/melodica_e.ogg new file mode 100644 index 0000000..6783b24 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/melodica/melodica_e.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/melodica/melodica_ec.ogg b/assets/voxygen/audio/sfx/instrument/melodica/melodica_ec.ogg new file mode 100644 index 0000000..3d1b473 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/melodica/melodica_ec.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/melodica/melodica_ec1g.ogg b/assets/voxygen/audio/sfx/instrument/melodica/melodica_ec1g.ogg new file mode 100644 index 0000000..21a7a00 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/melodica/melodica_ec1g.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/melodica/melodica_g.ogg b/assets/voxygen/audio/sfx/instrument/melodica/melodica_g.ogg new file mode 100644 index 0000000..7e17786 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/melodica/melodica_g.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/melodica/melodica_ge.ogg b/assets/voxygen/audio/sfx/instrument/melodica/melodica_ge.ogg new file mode 100644 index 0000000..3841123 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/melodica/melodica_ge.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_a.ogg b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_a.ogg new file mode 100644 index 0000000..fb80b02 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_a.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_aec1.ogg b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_aec1.ogg new file mode 100644 index 0000000..9239229 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_aec1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_c.ogg b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_c.ogg new file mode 100644 index 0000000..da850b4 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_c.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_c1.ogg b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_c1.ogg new file mode 100644 index 0000000..359f03b Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_c1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_c1c1a.ogg b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_c1c1a.ogg new file mode 100644 index 0000000..181bc12 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_c1c1a.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_cc.ogg b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_cc.ogg new file mode 100644 index 0000000..c41ed10 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_cc.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_cdc1.ogg b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_cdc1.ogg new file mode 100644 index 0000000..7b7f245 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_cdc1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_cea.ogg b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_cea.ogg new file mode 100644 index 0000000..72021a5 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_cea.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_ceg.ogg b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_ceg.ogg new file mode 100644 index 0000000..9c7d25d Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_ceg.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_cge.ogg b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_cge.ogg new file mode 100644 index 0000000..02195d7 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_cge.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_d.ogg b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_d.ogg new file mode 100644 index 0000000..d1f05ff Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_d.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_dac.ogg b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_dac.ogg new file mode 100644 index 0000000..fae89d7 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_dac.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_e.ogg b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_e.ogg new file mode 100644 index 0000000..df423fc Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_e.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_ea.ogg b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_ea.ogg new file mode 100644 index 0000000..67582d2 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_ea.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_eac1c.ogg b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_eac1c.ogg new file mode 100644 index 0000000..1cd4192 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_eac1c.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_g.ogg b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_g.ogg new file mode 100644 index 0000000..b26d56b Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_g.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_gg.ogg b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_gg.ogg new file mode 100644 index 0000000..b0e9c71 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/shamisen/shamisen_gg.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/sitar/sitar_a.ogg b/assets/voxygen/audio/sfx/instrument/sitar/sitar_a.ogg new file mode 100644 index 0000000..54faa41 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/sitar/sitar_a.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/sitar/sitar_c.ogg b/assets/voxygen/audio/sfx/instrument/sitar/sitar_c.ogg new file mode 100644 index 0000000..9b76a98 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/sitar/sitar_c.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/sitar/sitar_c1.ogg b/assets/voxygen/audio/sfx/instrument/sitar/sitar_c1.ogg new file mode 100644 index 0000000..934cd99 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/sitar/sitar_c1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/sitar/sitar_c1ae.ogg b/assets/voxygen/audio/sfx/instrument/sitar/sitar_c1ae.ogg new file mode 100644 index 0000000..d0084a3 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/sitar/sitar_c1ae.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/sitar/sitar_ce.ogg b/assets/voxygen/audio/sfx/instrument/sitar/sitar_ce.ogg new file mode 100644 index 0000000..afbbba3 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/sitar/sitar_ce.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/sitar/sitar_d.ogg b/assets/voxygen/audio/sfx/instrument/sitar/sitar_d.ogg new file mode 100644 index 0000000..bd70d9f Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/sitar/sitar_d.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/sitar/sitar_da.ogg b/assets/voxygen/audio/sfx/instrument/sitar/sitar_da.ogg new file mode 100644 index 0000000..53db5fc Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/sitar/sitar_da.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/sitar/sitar_e.ogg b/assets/voxygen/audio/sfx/instrument/sitar/sitar_e.ogg new file mode 100644 index 0000000..3fd18d5 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/sitar/sitar_e.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/sitar/sitar_ec1.ogg b/assets/voxygen/audio/sfx/instrument/sitar/sitar_ec1.ogg new file mode 100644 index 0000000..b7f0aba Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/sitar/sitar_ec1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/sitar/sitar_g.ogg b/assets/voxygen/audio/sfx/instrument/sitar/sitar_g.ogg new file mode 100644 index 0000000..db1262a Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/sitar/sitar_g.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/sitar/sitar_gd1.ogg b/assets/voxygen/audio/sfx/instrument/sitar/sitar_gd1.ogg new file mode 100644 index 0000000..0590cc6 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/sitar/sitar_gd1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/sitar/sitar_gec.ogg b/assets/voxygen/audio/sfx/instrument/sitar/sitar_gec.ogg new file mode 100644 index 0000000..d130b8a Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/sitar/sitar_gec.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_a.ogg b/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_a.ogg new file mode 100644 index 0000000..2b38fd5 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_a.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_ac1.ogg b/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_ac1.ogg new file mode 100644 index 0000000..ba5675f Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_ac1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_c.ogg b/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_c.ogg new file mode 100644 index 0000000..b07e9bc Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_c.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_c1.ogg b/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_c1.ogg new file mode 100644 index 0000000..6634370 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_c1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_c1ae.ogg b/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_c1ae.ogg new file mode 100644 index 0000000..2679bac Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_c1ae.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_c1ag.ogg b/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_c1ag.ogg new file mode 100644 index 0000000..2e45ede Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_c1ag.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_c1c1.ogg b/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_c1c1.ogg new file mode 100644 index 0000000..ebe57f5 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_c1c1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_ce.ogg b/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_ce.ogg new file mode 100644 index 0000000..ed95a48 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_ce.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_d.ogg b/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_d.ogg new file mode 100644 index 0000000..ca0cd12 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_d.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_d1.ogg b/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_d1.ogg new file mode 100644 index 0000000..1af2359 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_d1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_d1c1.ogg b/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_d1c1.ogg new file mode 100644 index 0000000..0fc91a8 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_d1c1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_e.ogg b/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_e.ogg new file mode 100644 index 0000000..7b1abc6 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_e.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_eg.ogg b/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_eg.ogg new file mode 100644 index 0000000..c114edb Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_eg.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_g.ogg b/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_g.ogg new file mode 100644 index 0000000..ba62e91 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/steeltonguedrum/steeltonguedrum_g.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/washboard/washboard_a.ogg b/assets/voxygen/audio/sfx/instrument/washboard/washboard_a.ogg new file mode 100644 index 0000000..0f44958 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/washboard/washboard_a.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/washboard/washboard_c.ogg b/assets/voxygen/audio/sfx/instrument/washboard/washboard_c.ogg new file mode 100644 index 0000000..a539e47 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/washboard/washboard_c.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/washboard/washboard_d.ogg b/assets/voxygen/audio/sfx/instrument/washboard/washboard_d.ogg new file mode 100644 index 0000000..5c93a8f Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/washboard/washboard_d.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/washboard/washboard_d_d.ogg b/assets/voxygen/audio/sfx/instrument/washboard/washboard_d_d.ogg new file mode 100644 index 0000000..3d7b1a8 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/washboard/washboard_d_d.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/washboard/washboard_d_dd.ogg b/assets/voxygen/audio/sfx/instrument/washboard/washboard_d_dd.ogg new file mode 100644 index 0000000..8b89532 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/washboard/washboard_d_dd.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/washboard/washboard_dd.ogg b/assets/voxygen/audio/sfx/instrument/washboard/washboard_dd.ogg new file mode 100644 index 0000000..1732150 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/washboard/washboard_dd.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/washboard/washboard_dd_d.ogg b/assets/voxygen/audio/sfx/instrument/washboard/washboard_dd_d.ogg new file mode 100644 index 0000000..e1a097b Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/washboard/washboard_dd_d.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/washboard/washboard_e.ogg b/assets/voxygen/audio/sfx/instrument/washboard/washboard_e.ogg new file mode 100644 index 0000000..964da81 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/washboard/washboard_e.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/washboard/washboard_g.ogg b/assets/voxygen/audio/sfx/instrument/washboard/washboard_g.ogg new file mode 100644 index 0000000..29f6ec8 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/washboard/washboard_g.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/wildskin_drum/wildskin_drum_a.ogg b/assets/voxygen/audio/sfx/instrument/wildskin_drum/wildskin_drum_a.ogg new file mode 100644 index 0000000..5280951 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/wildskin_drum/wildskin_drum_a.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/wildskin_drum/wildskin_drum_b.ogg b/assets/voxygen/audio/sfx/instrument/wildskin_drum/wildskin_drum_b.ogg new file mode 100644 index 0000000..b44b59e Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/wildskin_drum/wildskin_drum_b.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/wildskin_drum/wildskin_drum_c.ogg b/assets/voxygen/audio/sfx/instrument/wildskin_drum/wildskin_drum_c.ogg new file mode 100644 index 0000000..42e016e Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/wildskin_drum/wildskin_drum_c.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/wildskin_drum/wildskin_drum_c1.ogg b/assets/voxygen/audio/sfx/instrument/wildskin_drum/wildskin_drum_c1.ogg new file mode 100644 index 0000000..a7c4be5 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/wildskin_drum/wildskin_drum_c1.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/wildskin_drum/wildskin_drum_d.ogg b/assets/voxygen/audio/sfx/instrument/wildskin_drum/wildskin_drum_d.ogg new file mode 100644 index 0000000..8012c30 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/wildskin_drum/wildskin_drum_d.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/wildskin_drum/wildskin_drum_e.ogg b/assets/voxygen/audio/sfx/instrument/wildskin_drum/wildskin_drum_e.ogg new file mode 100644 index 0000000..70d9d3a Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/wildskin_drum/wildskin_drum_e.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/wildskin_drum/wildskin_drum_f.ogg b/assets/voxygen/audio/sfx/instrument/wildskin_drum/wildskin_drum_f.ogg new file mode 100644 index 0000000..cba9d7e Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/wildskin_drum/wildskin_drum_f.ogg differ diff --git a/assets/voxygen/audio/sfx/instrument/wildskin_drum/wildskin_drum_g.ogg b/assets/voxygen/audio/sfx/instrument/wildskin_drum/wildskin_drum_g.ogg new file mode 100644 index 0000000..9888479 Binary files /dev/null and b/assets/voxygen/audio/sfx/instrument/wildskin_drum/wildskin_drum_g.ogg differ diff --git a/assets/voxygen/audio/sfx/inventory/add_failed.ogg b/assets/voxygen/audio/sfx/inventory/add_failed.ogg new file mode 100644 index 0000000..91817f3 Binary files /dev/null and b/assets/voxygen/audio/sfx/inventory/add_failed.ogg differ diff --git a/assets/voxygen/audio/sfx/inventory/add_item.ogg b/assets/voxygen/audio/sfx/inventory/add_item.ogg new file mode 100644 index 0000000..a2a9ab3 Binary files /dev/null and b/assets/voxygen/audio/sfx/inventory/add_item.ogg differ diff --git a/assets/voxygen/audio/sfx/inventory/collect_gemstone.ogg b/assets/voxygen/audio/sfx/inventory/collect_gemstone.ogg new file mode 100644 index 0000000..c235942 Binary files /dev/null and b/assets/voxygen/audio/sfx/inventory/collect_gemstone.ogg differ diff --git a/assets/voxygen/audio/sfx/inventory/consumable/apple.ogg b/assets/voxygen/audio/sfx/inventory/consumable/apple.ogg new file mode 100644 index 0000000..298f9cb Binary files /dev/null and b/assets/voxygen/audio/sfx/inventory/consumable/apple.ogg differ diff --git a/assets/voxygen/audio/sfx/inventory/consumable/food.ogg b/assets/voxygen/audio/sfx/inventory/consumable/food.ogg new file mode 100644 index 0000000..61d656a Binary files /dev/null and b/assets/voxygen/audio/sfx/inventory/consumable/food.ogg differ diff --git a/assets/voxygen/audio/sfx/inventory/consumable/liquid.ogg b/assets/voxygen/audio/sfx/inventory/consumable/liquid.ogg new file mode 100644 index 0000000..2d59478 Binary files /dev/null and b/assets/voxygen/audio/sfx/inventory/consumable/liquid.ogg differ diff --git a/assets/voxygen/audio/sfx/inventory/drop_item.ogg b/assets/voxygen/audio/sfx/inventory/drop_item.ogg new file mode 100644 index 0000000..d143851 Binary files /dev/null and b/assets/voxygen/audio/sfx/inventory/drop_item.ogg differ diff --git a/assets/voxygen/audio/sfx/inventory/open_inventory.ogg b/assets/voxygen/audio/sfx/inventory/open_inventory.ogg new file mode 100644 index 0000000..67526f4 Binary files /dev/null and b/assets/voxygen/audio/sfx/inventory/open_inventory.ogg differ diff --git a/assets/voxygen/audio/sfx/inventory/pickup_staff.ogg b/assets/voxygen/audio/sfx/inventory/pickup_staff.ogg new file mode 100644 index 0000000..e12250f Binary files /dev/null and b/assets/voxygen/audio/sfx/inventory/pickup_staff.ogg differ diff --git a/assets/voxygen/audio/sfx/inventory/pickup_sword.ogg b/assets/voxygen/audio/sfx/inventory/pickup_sword.ogg new file mode 100644 index 0000000..41d5476 Binary files /dev/null and b/assets/voxygen/audio/sfx/inventory/pickup_sword.ogg differ diff --git a/assets/voxygen/audio/sfx/ui/click1.ogg b/assets/voxygen/audio/sfx/ui/click1.ogg new file mode 100644 index 0000000..a38ff2a Binary files /dev/null and b/assets/voxygen/audio/sfx/ui/click1.ogg differ diff --git a/assets/voxygen/audio/sfx/ui/click2.ogg b/assets/voxygen/audio/sfx/ui/click2.ogg new file mode 100644 index 0000000..5c92034 Binary files /dev/null and b/assets/voxygen/audio/sfx/ui/click2.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/adlet_angry1.ogg b/assets/voxygen/audio/sfx/utterance/adlet_angry1.ogg new file mode 100644 index 0000000..b20333f Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/adlet_angry1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/adlet_angry2.ogg b/assets/voxygen/audio/sfx/utterance/adlet_angry2.ogg new file mode 100644 index 0000000..a8b97cc Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/adlet_angry2.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/adlet_hurt1.ogg b/assets/voxygen/audio/sfx/utterance/adlet_hurt1.ogg new file mode 100644 index 0000000..03c1dfb Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/adlet_hurt1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/adlet_hurt2.ogg b/assets/voxygen/audio/sfx/utterance/adlet_hurt2.ogg new file mode 100644 index 0000000..e477b8e Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/adlet_hurt2.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/alligator_angry1.ogg b/assets/voxygen/audio/sfx/utterance/alligator_angry1.ogg new file mode 100644 index 0000000..3ce0652 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/alligator_angry1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/alligator_angry2.ogg b/assets/voxygen/audio/sfx/utterance/alligator_angry2.ogg new file mode 100644 index 0000000..65b33ce Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/alligator_angry2.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/antelope_angry1.ogg b/assets/voxygen/audio/sfx/utterance/antelope_angry1.ogg new file mode 100644 index 0000000..daf7e6b Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/antelope_angry1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/antelope_hurt1.ogg b/assets/voxygen/audio/sfx/utterance/antelope_hurt1.ogg new file mode 100644 index 0000000..d53cf93 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/antelope_hurt1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/asp_angry1.ogg b/assets/voxygen/audio/sfx/utterance/asp_angry1.ogg new file mode 100644 index 0000000..06225fc Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/asp_angry1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/asp_angry2.ogg b/assets/voxygen/audio/sfx/utterance/asp_angry2.ogg new file mode 100644 index 0000000..93e04e2 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/asp_angry2.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/asp_calm1.ogg b/assets/voxygen/audio/sfx/utterance/asp_calm1.ogg new file mode 100644 index 0000000..9f01866 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/asp_calm1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/asp_hurt1.ogg b/assets/voxygen/audio/sfx/utterance/asp_hurt1.ogg new file mode 100644 index 0000000..8c697d5 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/asp_hurt1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/bird_angry1.ogg b/assets/voxygen/audio/sfx/utterance/bird_angry1.ogg new file mode 100644 index 0000000..1f18291 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/bird_angry1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/cat_calm1.ogg b/assets/voxygen/audio/sfx/utterance/cat_calm1.ogg new file mode 100644 index 0000000..6cc7782 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/cat_calm1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/cat_calm2.ogg b/assets/voxygen/audio/sfx/utterance/cat_calm2.ogg new file mode 100644 index 0000000..e68283c Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/cat_calm2.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/cow_calm1.ogg b/assets/voxygen/audio/sfx/utterance/cow_calm1.ogg new file mode 100644 index 0000000..6ea0fe3 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/cow_calm1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/cow_calm2.ogg b/assets/voxygen/audio/sfx/utterance/cow_calm2.ogg new file mode 100644 index 0000000..072ad53 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/cow_calm2.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/cow_calm3.ogg b/assets/voxygen/audio/sfx/utterance/cow_calm3.ogg new file mode 100644 index 0000000..b624e4d Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/cow_calm3.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/dagon_hurt1.ogg b/assets/voxygen/audio/sfx/utterance/dagon_hurt1.ogg new file mode 100644 index 0000000..7ad0879 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/dagon_hurt1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/dagon_hurt2.ogg b/assets/voxygen/audio/sfx/utterance/dagon_hurt2.ogg new file mode 100644 index 0000000..1bb3847 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/dagon_hurt2.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/fungome_calm1.ogg b/assets/voxygen/audio/sfx/utterance/fungome_calm1.ogg new file mode 100644 index 0000000..c6d1051 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/fungome_calm1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/goat_calm1.ogg b/assets/voxygen/audio/sfx/utterance/goat_calm1.ogg new file mode 100644 index 0000000..1de23eb Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/goat_calm1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/humanfemale_greeting1.ogg b/assets/voxygen/audio/sfx/utterance/humanfemale_greeting1.ogg new file mode 100644 index 0000000..ce691e8 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/humanfemale_greeting1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/humanmale_greeting1.ogg b/assets/voxygen/audio/sfx/utterance/humanmale_greeting1.ogg new file mode 100644 index 0000000..937fe26 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/humanmale_greeting1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/humanmale_hurt1.ogg b/assets/voxygen/audio/sfx/utterance/humanmale_hurt1.ogg new file mode 100644 index 0000000..e5f9356 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/humanmale_hurt1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/legoom_1.ogg b/assets/voxygen/audio/sfx/utterance/legoom_1.ogg new file mode 100644 index 0000000..be8615a Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/legoom_1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/legoom_10.ogg b/assets/voxygen/audio/sfx/utterance/legoom_10.ogg new file mode 100644 index 0000000..7f4a0a0 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/legoom_10.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/legoom_11.ogg b/assets/voxygen/audio/sfx/utterance/legoom_11.ogg new file mode 100644 index 0000000..7af35d2 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/legoom_11.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/legoom_12.ogg b/assets/voxygen/audio/sfx/utterance/legoom_12.ogg new file mode 100644 index 0000000..f08d7a1 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/legoom_12.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/legoom_13.ogg b/assets/voxygen/audio/sfx/utterance/legoom_13.ogg new file mode 100644 index 0000000..540f79b Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/legoom_13.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/legoom_14.ogg b/assets/voxygen/audio/sfx/utterance/legoom_14.ogg new file mode 100644 index 0000000..8ea2a39 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/legoom_14.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/legoom_15.ogg b/assets/voxygen/audio/sfx/utterance/legoom_15.ogg new file mode 100644 index 0000000..73cd357 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/legoom_15.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/legoom_2.ogg b/assets/voxygen/audio/sfx/utterance/legoom_2.ogg new file mode 100644 index 0000000..498efcf Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/legoom_2.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/legoom_3.ogg b/assets/voxygen/audio/sfx/utterance/legoom_3.ogg new file mode 100644 index 0000000..3d64a80 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/legoom_3.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/legoom_4.ogg b/assets/voxygen/audio/sfx/utterance/legoom_4.ogg new file mode 100644 index 0000000..17e7a36 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/legoom_4.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/legoom_5.ogg b/assets/voxygen/audio/sfx/utterance/legoom_5.ogg new file mode 100644 index 0000000..151d362 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/legoom_5.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/legoom_6.ogg b/assets/voxygen/audio/sfx/utterance/legoom_6.ogg new file mode 100644 index 0000000..318e22e Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/legoom_6.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/legoom_7.ogg b/assets/voxygen/audio/sfx/utterance/legoom_7.ogg new file mode 100644 index 0000000..b6baf89 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/legoom_7.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/legoom_8.ogg b/assets/voxygen/audio/sfx/utterance/legoom_8.ogg new file mode 100644 index 0000000..d860690 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/legoom_8.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/legoom_9.ogg b/assets/voxygen/audio/sfx/utterance/legoom_9.ogg new file mode 100644 index 0000000..0620a6f Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/legoom_9.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/lion_hurt1.ogg b/assets/voxygen/audio/sfx/utterance/lion_hurt1.ogg new file mode 100644 index 0000000..2aacfe5 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/lion_hurt1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/mandragora_hurt1.ogg b/assets/voxygen/audio/sfx/utterance/mandragora_hurt1.ogg new file mode 100644 index 0000000..cd7d2fb Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/mandragora_hurt1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/maneater_hurt1.ogg b/assets/voxygen/audio/sfx/utterance/maneater_hurt1.ogg new file mode 100644 index 0000000..bcf9d03 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/maneater_hurt1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/marlin_hurt1.ogg b/assets/voxygen/audio/sfx/utterance/marlin_hurt1.ogg new file mode 100644 index 0000000..498c412 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/marlin_hurt1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/mindflayer_hurt1.ogg b/assets/voxygen/audio/sfx/utterance/mindflayer_hurt1.ogg new file mode 100644 index 0000000..1a94971 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/mindflayer_hurt1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/ogre_angry1.ogg b/assets/voxygen/audio/sfx/utterance/ogre_angry1.ogg new file mode 100644 index 0000000..4bf53b4 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/ogre_angry1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/ogre_angry2.ogg b/assets/voxygen/audio/sfx/utterance/ogre_angry2.ogg new file mode 100644 index 0000000..2c05347 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/ogre_angry2.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/ogre_hurt1.ogg b/assets/voxygen/audio/sfx/utterance/ogre_hurt1.ogg new file mode 100644 index 0000000..929ed59 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/ogre_hurt1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/phoenix_angry_0.ogg b/assets/voxygen/audio/sfx/utterance/phoenix_angry_0.ogg new file mode 100644 index 0000000..30e3dc7 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/phoenix_angry_0.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/phoenix_angry_1.ogg b/assets/voxygen/audio/sfx/utterance/phoenix_angry_1.ogg new file mode 100644 index 0000000..8be951b Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/phoenix_angry_1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/phoenix_hurt_0.ogg b/assets/voxygen/audio/sfx/utterance/phoenix_hurt_0.ogg new file mode 100644 index 0000000..52fbb81 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/phoenix_hurt_0.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/phoenix_hurt_1.ogg b/assets/voxygen/audio/sfx/utterance/phoenix_hurt_1.ogg new file mode 100644 index 0000000..08f03b4 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/phoenix_hurt_1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/pig_angry1.ogg b/assets/voxygen/audio/sfx/utterance/pig_angry1.ogg new file mode 100644 index 0000000..405a1bc Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/pig_angry1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/pig_angry2.ogg b/assets/voxygen/audio/sfx/utterance/pig_angry2.ogg new file mode 100644 index 0000000..5a828a6 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/pig_angry2.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/pig_calm1.ogg b/assets/voxygen/audio/sfx/utterance/pig_calm1.ogg new file mode 100644 index 0000000..77a11c9 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/pig_calm1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/pig_calm2.ogg b/assets/voxygen/audio/sfx/utterance/pig_calm2.ogg new file mode 100644 index 0000000..4f1fa14 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/pig_calm2.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/pig_calm3.ogg b/assets/voxygen/audio/sfx/utterance/pig_calm3.ogg new file mode 100644 index 0000000..42a814e Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/pig_calm3.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/saurok_angry1.ogg b/assets/voxygen/audio/sfx/utterance/saurok_angry1.ogg new file mode 100644 index 0000000..8362ab5 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/saurok_angry1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/sea_crocodile_angry1.ogg b/assets/voxygen/audio/sfx/utterance/sea_crocodile_angry1.ogg new file mode 100644 index 0000000..42f5d31 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/sea_crocodile_angry1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/sea_crocodile_angry2.ogg b/assets/voxygen/audio/sfx/utterance/sea_crocodile_angry2.ogg new file mode 100644 index 0000000..15e52b0 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/sea_crocodile_angry2.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/sheep_calm1.ogg b/assets/voxygen/audio/sfx/utterance/sheep_calm1.ogg new file mode 100644 index 0000000..5d7eed6 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/sheep_calm1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/truffler_calm1.ogg b/assets/voxygen/audio/sfx/utterance/truffler_calm1.ogg new file mode 100644 index 0000000..5a0f6d0 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/truffler_calm1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/truffler_calm2.ogg b/assets/voxygen/audio/sfx/utterance/truffler_calm2.ogg new file mode 100644 index 0000000..2305d3f Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/truffler_calm2.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/vampire_bat_angry.ogg b/assets/voxygen/audio/sfx/utterance/vampire_bat_angry.ogg new file mode 100644 index 0000000..eb186e7 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/vampire_bat_angry.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/vampire_bat_hurt.ogg b/assets/voxygen/audio/sfx/utterance/vampire_bat_hurt.ogg new file mode 100644 index 0000000..2a1b8bd Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/vampire_bat_hurt.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/wendigo_angry1.ogg b/assets/voxygen/audio/sfx/utterance/wendigo_angry1.ogg new file mode 100644 index 0000000..a29f309 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/wendigo_angry1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/wendigo_angry2.ogg b/assets/voxygen/audio/sfx/utterance/wendigo_angry2.ogg new file mode 100644 index 0000000..17c0447 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/wendigo_angry2.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/wendigo_angry3.ogg b/assets/voxygen/audio/sfx/utterance/wendigo_angry3.ogg new file mode 100644 index 0000000..26c2527 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/wendigo_angry3.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/wendigo_angry4.ogg b/assets/voxygen/audio/sfx/utterance/wendigo_angry4.ogg new file mode 100644 index 0000000..dc0954a Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/wendigo_angry4.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/wendigo_angry5.ogg b/assets/voxygen/audio/sfx/utterance/wendigo_angry5.ogg new file mode 100644 index 0000000..b3732ca Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/wendigo_angry5.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/wendigo_angry6.ogg b/assets/voxygen/audio/sfx/utterance/wendigo_angry6.ogg new file mode 100644 index 0000000..126e4de Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/wendigo_angry6.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/wendigo_calm1.ogg b/assets/voxygen/audio/sfx/utterance/wendigo_calm1.ogg new file mode 100644 index 0000000..3c8c4ec Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/wendigo_calm1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/wendigo_calm2.ogg b/assets/voxygen/audio/sfx/utterance/wendigo_calm2.ogg new file mode 100644 index 0000000..6f75b77 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/wendigo_calm2.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/wendigo_calm3.ogg b/assets/voxygen/audio/sfx/utterance/wendigo_calm3.ogg new file mode 100644 index 0000000..befc6fa Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/wendigo_calm3.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/wendigo_calm4.ogg b/assets/voxygen/audio/sfx/utterance/wendigo_calm4.ogg new file mode 100644 index 0000000..9394a8b Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/wendigo_calm4.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/wendigo_calm5.ogg b/assets/voxygen/audio/sfx/utterance/wendigo_calm5.ogg new file mode 100644 index 0000000..8021c1b Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/wendigo_calm5.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/wolf_angry1.ogg b/assets/voxygen/audio/sfx/utterance/wolf_angry1.ogg new file mode 100644 index 0000000..abda8d7 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/wolf_angry1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/wolf_angry2.ogg b/assets/voxygen/audio/sfx/utterance/wolf_angry2.ogg new file mode 100644 index 0000000..c99ee3e Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/wolf_angry2.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/wolf_angry3.ogg b/assets/voxygen/audio/sfx/utterance/wolf_angry3.ogg new file mode 100644 index 0000000..3dc9f56 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/wolf_angry3.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/wolf_angry4.ogg b/assets/voxygen/audio/sfx/utterance/wolf_angry4.ogg new file mode 100644 index 0000000..4cc9035 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/wolf_angry4.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/wolf_angry5.ogg b/assets/voxygen/audio/sfx/utterance/wolf_angry5.ogg new file mode 100644 index 0000000..afa5e3d Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/wolf_angry5.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/wolf_angry6.ogg b/assets/voxygen/audio/sfx/utterance/wolf_angry6.ogg new file mode 100644 index 0000000..67490e6 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/wolf_angry6.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/wolf_hurt1.ogg b/assets/voxygen/audio/sfx/utterance/wolf_hurt1.ogg new file mode 100644 index 0000000..bd5cd77 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/wolf_hurt1.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/wolf_hurt2.ogg b/assets/voxygen/audio/sfx/utterance/wolf_hurt2.ogg new file mode 100644 index 0000000..49aa89d Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/wolf_hurt2.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/wolf_hurt3.ogg b/assets/voxygen/audio/sfx/utterance/wolf_hurt3.ogg new file mode 100644 index 0000000..2675a77 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/wolf_hurt3.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/wolf_hurt4.ogg b/assets/voxygen/audio/sfx/utterance/wolf_hurt4.ogg new file mode 100644 index 0000000..471420a Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/wolf_hurt4.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/wolf_hurt5.ogg b/assets/voxygen/audio/sfx/utterance/wolf_hurt5.ogg new file mode 100644 index 0000000..f2c5c92 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/wolf_hurt5.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/wyvern_angry.ogg b/assets/voxygen/audio/sfx/utterance/wyvern_angry.ogg new file mode 100644 index 0000000..07f2d64 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/wyvern_angry.ogg differ diff --git a/assets/voxygen/audio/sfx/utterance/wyvern_hurt.ogg b/assets/voxygen/audio/sfx/utterance/wyvern_hurt.ogg new file mode 100644 index 0000000..854e111 Binary files /dev/null and b/assets/voxygen/audio/sfx/utterance/wyvern_hurt.ogg differ diff --git a/assets/voxygen/audio/sfx/weapon/dagger_in.ogg b/assets/voxygen/audio/sfx/weapon/dagger_in.ogg new file mode 100644 index 0000000..a9aaa09 Binary files /dev/null and b/assets/voxygen/audio/sfx/weapon/dagger_in.ogg differ diff --git a/assets/voxygen/audio/sfx/weapon/dagger_out.ogg b/assets/voxygen/audio/sfx/weapon/dagger_out.ogg new file mode 100644 index 0000000..2997fca Binary files /dev/null and b/assets/voxygen/audio/sfx/weapon/dagger_out.ogg differ diff --git a/assets/voxygen/audio/sfx/weapon/shield_out.ogg b/assets/voxygen/audio/sfx/weapon/shield_out.ogg new file mode 100644 index 0000000..2516d89 Binary files /dev/null and b/assets/voxygen/audio/sfx/weapon/shield_out.ogg differ diff --git a/assets/voxygen/audio/sfx/weapon/staff_in.ogg b/assets/voxygen/audio/sfx/weapon/staff_in.ogg new file mode 100644 index 0000000..90fe2ef Binary files /dev/null and b/assets/voxygen/audio/sfx/weapon/staff_in.ogg differ diff --git a/assets/voxygen/audio/sfx/weapon/staff_out.ogg b/assets/voxygen/audio/sfx/weapon/staff_out.ogg new file mode 100644 index 0000000..a8658c1 Binary files /dev/null and b/assets/voxygen/audio/sfx/weapon/staff_out.ogg differ diff --git a/assets/voxygen/audio/sfx/weapon/sword_in.ogg b/assets/voxygen/audio/sfx/weapon/sword_in.ogg new file mode 100644 index 0000000..87016cb Binary files /dev/null and b/assets/voxygen/audio/sfx/weapon/sword_in.ogg differ diff --git a/assets/voxygen/audio/sfx/weapon/sword_out.ogg b/assets/voxygen/audio/sfx/weapon/sword_out.ogg new file mode 100644 index 0000000..10bd885 Binary files /dev/null and b/assets/voxygen/audio/sfx/weapon/sword_out.ogg differ diff --git a/assets/voxygen/audio/sfx/weapon/weapon_in.ogg b/assets/voxygen/audio/sfx/weapon/weapon_in.ogg new file mode 100644 index 0000000..f620416 Binary files /dev/null and b/assets/voxygen/audio/sfx/weapon/weapon_in.ogg differ diff --git a/assets/voxygen/audio/sfx/weapon/weapon_out.ogg b/assets/voxygen/audio/sfx/weapon/weapon_out.ogg new file mode 100644 index 0000000..bba6573 Binary files /dev/null and b/assets/voxygen/audio/sfx/weapon/weapon_out.ogg differ diff --git a/assets/voxygen/audio/soundtrack.ron b/assets/voxygen/audio/soundtrack.ron new file mode 100644 index 0000000..391f8e7 --- /dev/null +++ b/assets/voxygen/audio/soundtrack.ron @@ -0,0 +1,943 @@ +// Times: Day, Night, or None (both) +// Weathers: Clear, Cloudy, Rain, Storm, or None (any weather) +// Biomes: Grassland, Forest, Desert, Snowland, Lake, Mountain, Ocean, Jungle, Savannah, Taiga +// planned biomes: Swamp +// Number after biome indicates weighting; higher numbers are less frequent +// Sites: Settlement(Default, CliffTown, DesertCity, or SavannahTown), Cave, Dungeon, or Void [none] +// Music states: Activity(Explore or Combat) +// Combat music is looped. Needs three files: start, loop, and end. Start contains leadup to the loop. +// Artist format is ("Artist", "https://website.com/"). If no website, use None. +// It's recommended to also have appropriate metadata for those who listen via the game files :) + +#![enable(implicit_some)] +( + tracks: + [ + + // Overworld exploration tracks + + Individual(( + title: "Graceful Journey", + path: "voxygen.audio.soundtrack.overworld.graceful_journey", + length: 240.0, + timing: Day, + weather: None, + biomes: [ + (Lake, 1), + (Grassland, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("Tobias Thy - (Thy SFX)", "https://soundcloud.com/thyofficial"), + )), + Individual(( + title: "A Cold Breeze Blows", + path: "voxygen.audio.soundtrack.overworld.a_cold_breeze_blows", + length: 123.0, + timing: Day, + weather: None, + biomes: [ + (Mountain, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("Stone Music Productions", "https://www.stonemusicproductions.com/"), + )), + Individual(( + title: "A Peaceful Moment", + path: "voxygen.audio.soundtrack.overworld.a_peaceful_moment", + length: 155.0, + timing: Night, + weather: None, + biomes: [ + (Grassland, 1), + (Mountain, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("ThanosFisherman", "https://soundcloud.com/thanosfisherman"), + )), + Individual(( + title: "Everbearing", + path: "voxygen.audio.soundtrack.overworld.everbearing", + length: 192.0, + timing: Day, + weather: None, + biomes: [ + (Taiga, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("DaforLynx", "https://daforlynx.neocities.org/"), + )), + Individual(( + title: "Song of the Eldwood", + path: "voxygen.audio.soundtrack.overworld.song_of_the_eldwood", + length: 254.0, + timing: Night, + weather: None, + biomes: [ + (Taiga, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("DaforLynx", "https://daforlynx.neocities.org/"), + )), + Individual(( + title: "Torii", + path: "voxygen.audio.soundtrack.overworld.torii", + length: 157.0, + timing: Night, + weather: None, + biomes: [ + (Taiga, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("FaceImplosion", "https://www.youtube.com/c/FaceImplosion"), + )), + Individual(( + title: "The Undergrowth", + path: "voxygen.audio.soundtrack.overworld.the_undergrowth", + length: 165.0, + timing: None, + weather: None, + biomes: [ + (Jungle, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("Oolnokk", "https://soundcloud.com/walkerhallplaysthegeetar"), + )), + Individual(( + title: "Moonlit Canopy", + path: "voxygen.audio.soundtrack.overworld.moonlit_canopy", + length: 170.0, + timing: Night, + weather: None, + biomes: [ + (Forest, 1), + (Taiga, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("GeekyGami", "https://geekygami.newgrounds.com/audio/"), + )), + Individual(( + title: "Adventurous Soul", + path: "voxygen.audio.soundtrack.overworld.adventurous_soul", + length: 184.0, + timing: Night, + weather: None, + biomes: [ + (Mountain, 1), + (Snowland, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("Crow", None), + )), + Individual(( + title: "Stargazing", + path: "voxygen.audio.soundtrack.overworld.stargazing", + length: 216.0, + timing: Night, + weather: None, + biomes: [ + (Taiga, 1), + (Grassland, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("GeekyGami", "https://geekygami.newgrounds.com/audio/"), + )), + Individual(( + title: "The Heavens Weep", + path: "voxygen.audio.soundtrack.overworld.the_heavens_weep", + length: 210.0, + timing: None, + weather: Rain, + biomes: [], + sites: [Void], + music_state: Activity(Explore), + artist: ("Oolnokk", "https://soundcloud.com/walkerhallplaysthegeetar"), + )), + Individual(( + title: "A Hero's Sorrow", + path: "voxygen.audio.soundtrack.overworld.a_heros_sorrow", + length: 252.0, + timing: None, + weather: Rain, + biomes: [], + sites: [Void], + music_state: Activity(Explore), + artist: ("Oolnokk", "https://soundcloud.com/walkerhallplaysthegeetar"), + )), + Individual(( + title: "Follow the Signs", + path: "voxygen.audio.soundtrack.overworld.follow_the_signs", + length: 154.0, + timing: Night, + weather: None, + biomes: [ + (Forest, 2), + (Taiga, 2), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("Oolnokk", "https://soundcloud.com/walkerhallplaysthegeetar"), + )), + Individual(( + title: "Travel By Night", + path: "voxygen.audio.soundtrack.overworld.travel_by_night", + length: 66.0, + timing: Night, + weather: None, + biomes: [ + (Forest, 1), + (Taiga, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("Oolnokk", "https://soundcloud.com/walkerhallplaysthegeetar"), + )), + Individual(( + title: "Raising Below Like Thunder", + path: "voxygen.audio.soundtrack.overworld.raising_below_like_thunder", + length: 120.0, + timing: Night, + weather: None, + biomes: [ + (Desert, 1), + (Savannah, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("Rarnage", "https://soundcloud.com/rarnage44"), + )), + Individual(( + title: "Calming Hills", + path: "voxygen.audio.soundtrack.overworld.calming_hills", + length: 101.0, + timing: Day, + weather: None, + biomes: [ + (Mountain, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("Ultimafounding; mixed by Robotnik", "https://jackmagson.bandcamp.com/"), + )), + Individual(( + title: "True Nature", + path: "voxygen.audio.soundtrack.overworld.true_nature", + length: 169.0, + timing: Day, + weather: None, + biomes: [ + (Forest, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("DaforLynx", "https://daforlynx.neocities.org/"), + )), + Individual(( + title: "Jungle Ambient", + path: "voxygen.audio.soundtrack.overworld.jungle_ambient", + length: 218.0, + timing: None, + weather: None, + biomes: [ + (Jungle, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("badbbad", "https://soundcloud.com/tomerbarnea"), + )), + Individual(( + title: "Ethereal Bonds", + path: "voxygen.audio.soundtrack.overworld.ethereal_bonds", + length: 59.0, + timing: Night, + weather: None, + biomes: [ + (Mountain, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("Aeronic", "https://soundcloud.com/aeronic"), + )), + Individual(( + title: "Leap of Faith", + path: "voxygen.audio.soundtrack.overworld.leap_of_faith", + length: 269.0, + timing: Night, + weather: None, + biomes: [ + (Ocean, 1), + (Lake, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("Aeronic", "https://soundcloud.com/aeronic"), + )), + Individual(( + title: "Highland of the Hawk", + path: "voxygen.audio.soundtrack.overworld.highland_of_the_hawk", + length: 283.0, + timing: Day, + weather: None, + biomes: [ + (Desert, 1), + (Savannah, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("badbbad", "https://soundcloud.com/tomerbarnea"), + )), + Individual(( + title: "Verdant Glades", + path: "voxygen.audio.soundtrack.overworld.verdant_glades", + length: 97.0, + timing: Day, + weather: None, + biomes: [ + (Grassland, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("Aeronic", "https://soundcloud.com/aeronic"), + )), + Individual(( + title: "Calling Wild", + path: "voxygen.audio.soundtrack.overworld.calling_wild", + length: 160.0, + timing: Night, + weather: None, + biomes: [ + (Grassland, 1), + (Savannah, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("Ultimafounding", "https://jackmagson.bandcamp.com/"), + )), + Individual(( + title: "Drifting Along", + path: "voxygen.audio.soundtrack.overworld.drifting_along", + length: 164.0, + timing: None, + weather: None, + biomes: [ + (Lake, 1), + (Ocean, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("DaforLynx", "https://daforlynx.neocities.org/"), + )), + Individual(( + title: "Winter Falls", + path: "voxygen.audio.soundtrack.overworld.winter_falls", + length: 215.0, + timing: Day, + weather: None, + biomes: [ + (Snowland, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("DaforLynx", "https://daforlynx.neocities.org/"), + )), + Individual(( + title: "Short Meandering", + path: "voxygen.audio.soundtrack.overworld.short_meandering", + length: 147.0, + timing: Night, + weather: None, + biomes: [ + (Desert, 1), + (Mountain, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("Ap1evideogame", "https://youtube.com/channel/UCt1M5lk2kGZStr64B3hUUKg"), + )), + Individual(( + title: "Oceania", + path: "voxygen.audio.soundtrack.overworld.oceania", + length: 135.0, + timing: None, + weather: None, + biomes: [ + (Lake, 1), + (Ocean, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("Eden", "https://soundcloud.com/usernumberuser"), + )), + Individual(( + title: "A Solemn Quest", + path: "voxygen.audio.soundtrack.overworld.a_solemn_quest", + length: 206.0, + timing: Night, + weather: None, + biomes: [ + (Forest, 1), + (Taiga, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("Eden", "https://soundcloud.com/usernumberuser"), + )), + Individual(( + title: "Into The Dark Forest", + path: "voxygen.audio.soundtrack.overworld.into_the_dark_forest", + length: 184.0, + timing: Night, + weather: None, + biomes: [ + (Forest, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("Aeronic", "https://soundcloud.com/aeronic"), + )), + Individual(( + title: "Field Grazing", + path: "voxygen.audio.soundtrack.overworld.field_grazing", + length: 154.0, + timing: Day, + weather: None, + biomes: [ + (Grassland, 1), + (Forest, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("Aeronic", "https://soundcloud.com/aeronic"), + )), + Individual(( + title: "Wandering Voices", + path: "voxygen.audio.soundtrack.overworld.wandering_voices", + length: 137.0, + timing: Night, + weather: None, + biomes: [ + (Grassland, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("Aeronic", "https://soundcloud.com/aeronic"), + )), + Individual(( + title: "Snowtop Volume", + path: "voxygen.audio.soundtrack.overworld.snowtop_volume", + length: 89.0, + timing: Day, + weather: None, + biomes: [ + (Snowland, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("Aeronic", "https://soundcloud.com/aeronic"), + )), + Individual(( + title: "Moonbeams", + path: "voxygen.audio.soundtrack.overworld.moonbeams", + length: 158.0, + timing: Night, + weather: None, + biomes: [ + (Snowland, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("Aeronic", "https://soundcloud.com/aeronic"), + )), + Individual(( + title: "Serene Meadows", + path: "voxygen.audio.soundtrack.overworld.serene_meadows", + length: 173.0, + timing: Night, + weather: None, + biomes: [ + (Grassland, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("Aeronic", "https://soundcloud.com/aeronic"), + )), + Individual(( + title: "Just The Beginning", + path: "voxygen.audio.soundtrack.overworld.just_the_beginning", + length: 188.0, + timing: Day, + weather: None, + biomes: [ + (Grassland, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("badbbad", "https://soundcloud.com/tomerbarnea"), + )), + Individual(( + title: "Campfire Stories", + path: "voxygen.audio.soundtrack.overworld.campfire_stories", + length: 100.0, + timing: Night, + weather: None, + biomes: [ + (Forest, 1), + (Taiga, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("badbbad", "https://soundcloud.com/tomerbarnea"), + )), + Individual(( + title: "Limits", + path: "voxygen.audio.soundtrack.overworld.limits", + length: 203.0, + timing: Day, + weather: None, + biomes: [ + (Mountain, 1), + (Taiga, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("badbbad", "https://soundcloud.com/tomerbarnea"), + )), + Individual(( + title: "Between The Fairies", + path: "voxygen.audio.soundtrack.overworld.between_the_fairies", + length: 175.0, + timing: Day, + weather: None, + biomes: [ + (Forest, 1), + (Taiga, 1), + ], + sites: [Void], + music_state: Activity(Explore), + artist: ("badbbad", "https://soundcloud.com/tomerbarnea"), + )), + + // Town music + + Individual(( + title: "Into the Mines", + path: "voxygen.audio.soundtrack.town.into_the_mines", + length: 157.0, + timing: Day, + weather: None, + biomes: [], + sites: [ + Settlement(CliffTown), + Settlement(SavannahTown), + ], + music_state: Activity(Explore), + artist: ("Stone Music Productions", "https://www.stonemusicproductions.com/"), + )), + Individual(( + title: "Life of a Background Mob", + path: "voxygen.audio.soundtrack.town.life_of_a_background_mob", + length: 234.0, + timing: Day, + weather: None, + biomes: [ + (Forest, 1), + (Grassland, 1), + ], + sites: [ + Settlement(Default), + Settlement(CliffTown), + Settlement(SavannahTown), + ], + music_state: Activity(Explore), + artist: ("GeekyGami", "https://geekygami.newgrounds.com/audio/"), + )), + Individual(( + title: "Warmth of the Hearth", + path: "voxygen.audio.soundtrack.town.warmth_of_the_hearth", + length: 156.0, + timing: Night, + weather: None, + biomes:[], + sites: [ + Settlement(Default), + Settlement(CliffTown), + Settlement(DesertCity), + Settlement(SavannahTown), + ], + music_state: Activity(Explore), + artist: ("Crow", None), + )), + Individual(( + title: "The Quiet After the Battle", + path: "voxygen.audio.soundtrack.town.the_quiet_after_the_battle", + length: 240.0, + timing: Night, + weather: None, + biomes: [], + sites: [ + Settlement(Default), + Settlement(CliffTown), + Settlement(DesertCity), + Settlement(SavannahTown), + ], + music_state: Activity(Explore), + artist: ("Tobias Thy - (Thy SFX)", "https://soundcloud.com/thyofficial"), + )), + Individual(( + title: "A Rest Under the Sunset", + path: "voxygen.audio.soundtrack.town.a_rest_under_the_sunset", + length: 83.0, + timing: Day, + weather: None, + biomes: [], + sites: [ + Settlement(Default), + Settlement(CliffTown), + Settlement(SavannahTown), + ], + music_state: Activity(Explore), + artist: ("phoenix13032005", None), + )), + Individual(( + title: "A Tale Worth Telling", + path: "voxygen.audio.soundtrack.town.a_tale_worth_telling", + length: 279.0, + timing: Night, + weather: None, + biomes: [], + sites: [ + Settlement(Default), + Settlement(CliffTown), + Settlement(DesertCity), + Settlement(SavannahTown), + ], + music_state: Activity(Explore), + artist: ("Oolnokk; mixed by cereal7", "https://soundcloud.com/walkerhallplaysthegeetar"), + )), + Individual(( + title: "Bustle and Bloom", + path: "voxygen.audio.soundtrack.town.bustle_and_bloom", + length: 155.0, + timing: Day, + weather: None, + biomes: [], + sites: [ + Settlement(Default), + Settlement(CliffTown), + Settlement(SavannahTown), + ], + music_state: Activity(Explore), + artist: ("DaforLynx", "https://daforlynx.neocities.org/"), + )), + Individual(( + title: "Starlit Pathways", + path: "voxygen.audio.soundtrack.town.starlit_pathways", + length: 132.0, + timing: Night, + weather: None, + biomes: [], + sites: [ + Settlement(Default), + Settlement(CliffTown), + Settlement(DesertCity), + Settlement(SavannahTown), + ], + music_state: Activity(Explore), + artist: ("DaforLynx", "https://daforlynx.neocities.org/"), + )), + Individual(( + title: "Fiesta Del Pueblo", + path: "voxygen.audio.soundtrack.town.fiesta_del_pueblo", + length: 96.0, + timing: Day, + weather: None, + biomes: [], + sites: [ + Settlement(DesertCity), + ], + music_state: Activity(Explore), + artist: ("Aeronic; mixed by Robotnik", "https://soundcloud.com/aeronic"), + )), + Individual(( + title: "Rest Assured", + path: "voxygen.audio.soundtrack.town.rest_assured", + length: 189.0, + timing: Day, + weather: None, + biomes: [], + sites: [ + Settlement(Default), + Settlement(CliffTown), + Settlement(SavannahTown), + ], + music_state: Activity(Explore), + artist: ("badbbad", "https://soundcloud.com/tomerbarnea"), + )), + Individual(( + title: "I'm Home", + path: "voxygen.audio.soundtrack.town.im_home", + length: 125.0, + timing: Night, + weather: None, + biomes: [], + sites: [ + Settlement(Default), + Settlement(CliffTown), + Settlement(SavannahTown), + ], + music_state: Activity(Explore), + artist: ("badbbad", "https://soundcloud.com/tomerbarnea"), + )), + + // Cave music + + Individual(( + title: "Stars Like Stalactites", + path: "voxygen.audio.soundtrack.cave.stars_like_stalactites", + length: 130.0, + timing: None, + weather: None, + biomes: [], + sites: [Cave], + music_state: Activity(Explore), + artist: ("DragonDee", "https://soundcloud.com/deanna-rusnock"), + )), + Individual(( + title: "Cavernous Hollow", + path: "voxygen.audio.soundtrack.cave.cavernous_hollow", + length: 256.0, + timing: None, + weather: None, + biomes: [], + sites: [Cave], + music_state: Activity(Explore), + artist: ("GeekyGami", "https://geekygami.newgrounds.com/audio/"), + )), + Individual(( + title: "Saturated Hallows", + path: "voxygen.audio.soundtrack.cave.saturated_hallows", + length: 227.0, + timing: None, + weather: None, + biomes: [], + sites: [Cave], + music_state: Activity(Explore), + artist: ("Flashbang", "https://soundcloud.com/unboundir0n-m4n"), + )), + Individual(( + title: "Mineral Deposits", + path: "voxygen.audio.soundtrack.cave.mineral_deposits", + length: 148.0, + timing: None, + weather: None, + biomes: [], + sites: [Cave], + music_state: Activity(Explore), + artist: ("Aeronic", "https://soundcloud.com/aeronic"), + )), + Individual(( + title: "Down The Rabbit Hole", + path: "voxygen.audio.soundtrack.cave.down_the_rabbit_hole", + length: 244.0, + timing: None, + weather: None, + biomes: [], + sites: [Cave], + music_state: Activity(Explore), + artist: ("badbbad", "https://soundcloud.com/tomerbarnea"), + )), + + // Dungeon music + + Individual(( + title: "A Heart's Ice-Cold Protection", + path: "voxygen.audio.soundtrack.dungeon.a_hearts_ice-cold_protection", + length: 205.0, + timing: None, + weather: None, + biomes:[], + sites: [ + Dungeon(Adlet), + ], + music_state: Activity(Explore), + artist: ("GeekyGami", "https://geekygami.newgrounds.com/audio/"), + )), + Individual(( + title: "Mysty Temple", + path: "voxygen.audio.soundtrack.dungeon.mysty_temple", + length: 183.0, + timing: None, + weather: None, + biomes:[], + sites: [ + Dungeon(Myrmidon), + Dungeon(Adlet), + ], + music_state: Activity(Explore), + artist: ("Tiny", None), + )), + Individual(( + title: "Cobbled Halls", + path: "voxygen.audio.soundtrack.dungeon.cobbled_halls", + length: 240.0, + timing: None, + weather: None, + biomes:[], + sites: [ + Dungeon(Myrmidon), + ], + music_state: Activity(Explore), + artist: ("Crow", None), + )), + Individual(( + title: "Dank Dungeon", + path: "voxygen.audio.soundtrack.dungeon.dank_dungeon", + length: 130.0, + timing: None, + weather: None, + biomes: [], + sites: [ + Dungeon(Myrmidon), + Dungeon(Adlet), + ], + music_state: Activity(Explore), + artist: ("Aeronic", "https://soundcloud.com/aeronic"), + )), + Individual(( + title: "Ruination", + path: "voxygen.audio.soundtrack.dungeon.ruination", + length: 135.0, + timing: None, + weather: None, + biomes: [], + sites: [ + Dungeon(Myrmidon), + Dungeon(Adlet), + ], + music_state: Activity(Explore), + artist: ("Aeronic", "https://soundcloud.com/aeronic"), + )), + Individual(( + title: "Vast Onslaught", + path: "voxygen.audio.soundtrack.dungeon.vast_onslaught", + length: 237.0, + timing: None, + weather: None, + biomes: [], + sites: [ + Dungeon(Myrmidon), + ], + music_state: Activity(Explore), + artist: ("Aeronic", "https://soundcloud.com/aeronic"), + )), + Individual(( + title: "Sacred Temple", + path: "voxygen.audio.soundtrack.dungeon.sacred_temple", + length: 75.0, + timing: None, + weather: None, + biomes: [], + sites: [ + Dungeon(Myrmidon), + ], + music_state: Activity(Explore), + artist: ("Aeronic", "https://soundcloud.com/aeronic"), + )), + Individual(( + title: "The Undergrowth", + path: "voxygen.audio.soundtrack.overworld.the_undergrowth", + length: 165.0, + timing: None, + weather: None, + biomes: [], + sites: [ + Dungeon(Gnarling), + ], + music_state: Activity(Explore), + artist: ("Oolnokk", "https://soundcloud.com/walkerhallplaysthegeetar"), + )), + Individual(( + title: "Jungle Ambient", + path: "voxygen.audio.soundtrack.overworld.jungle_ambient", + length: 218.0, + timing: None, + weather: None, + biomes: [], + sites: [ + Dungeon(Gnarling), + ], + music_state: Activity(Explore), + artist: ("badbbad", "https://soundcloud.com/tomerbarnea"), + )), + Individual(( + title: "Thrumming Waters", + path: "voxygen.audio.soundtrack.dungeon.thrumming_waters", + length: 100.0, + timing: None, + weather: None, + biomes: [], + sites: [ + Dungeon(Gnarling), + ], + music_state: Activity(Explore), + artist: ("Jeremiah Sweeney", "https://soundcloud.com/jsweeney743"), + )), + + // Combat Music + + // Segmented( + // title: "Barred Paths", + // timing: None, + // weather: None, + // biomes: [], + // sites: [ + // Dungeon(Old), + // ], + // segments: [ + // ("voxygen.audio.soundtrack.combat.barred_paths.barred_paths-start", 61.818, Transition(Explore, Combat(High)), Some(Combat(High))), + // ("voxygen.audio.soundtrack.combat.barred_paths.barred_paths-loop", 54.545, Activity(Combat(High)), None), + // ("voxygen.audio.soundtrack.combat.barred_paths.barred_paths-end", 6.0, Transition(Combat(High), Explore), None), + // ], + // artist: ("DaforLynx", "https://daforlynx.neocities.org/"), + // ), + // Segmented( + // title: "Reversal", + // timing: None, + // weather: None, + // biomes: [], + // sites: [ + // Dungeon(Old), + // ], + // segments: [ + // ("voxygen.audio.soundtrack.combat.reversal.reversal-start", 61.666, Transition(Explore, Combat(High)), Some(Combat(High))), + // ("voxygen.audio.soundtrack.combat.reversal.reversal-loop", 60.0, Activity(Combat(High)), None), + // ("voxygen.audio.soundtrack.combat.reversal.reversal-end", 3.666, Transition(Combat(High), Explore), None), + // ], + // artist: ("DaforLynx", "https://daforlynx.neocities.org/"), + // ), + // Segmented( + // title: "Clash", + // timing: None, + // weather: None, + // biomes: [], + // sites: [ + // Dungeon(Old), + // ], + // segments: [ + // ("voxygen.audio.soundtrack.combat.clash.clash-start", 121.5, Transition(Explore, Combat(High)), Some(Combat(High))), + // ("voxygen.audio.soundtrack.combat.clash.clash-loop", 81.0, Activity(Combat(High)), None), + // ("voxygen.audio.soundtrack.combat.clash.clash-end", 1.5, Transition(Combat(High), Explore), None), + // ], + // artist: ("Alfredo Pompa D & Rodriogo Plata", None), + // ), + ] +) diff --git a/assets/voxygen/audio/soundtrack/cave/cavernous_hollow.ogg b/assets/voxygen/audio/soundtrack/cave/cavernous_hollow.ogg new file mode 100644 index 0000000..ece1d5e Binary files /dev/null and b/assets/voxygen/audio/soundtrack/cave/cavernous_hollow.ogg differ diff --git a/assets/voxygen/audio/soundtrack/cave/down_the_rabbit_hole.ogg b/assets/voxygen/audio/soundtrack/cave/down_the_rabbit_hole.ogg new file mode 100644 index 0000000..6c1943d Binary files /dev/null and b/assets/voxygen/audio/soundtrack/cave/down_the_rabbit_hole.ogg differ diff --git a/assets/voxygen/audio/soundtrack/cave/mineral_deposits.ogg b/assets/voxygen/audio/soundtrack/cave/mineral_deposits.ogg new file mode 100644 index 0000000..c75891c Binary files /dev/null and b/assets/voxygen/audio/soundtrack/cave/mineral_deposits.ogg differ diff --git a/assets/voxygen/audio/soundtrack/cave/saturated_hallows.ogg b/assets/voxygen/audio/soundtrack/cave/saturated_hallows.ogg new file mode 100644 index 0000000..96db821 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/cave/saturated_hallows.ogg differ diff --git a/assets/voxygen/audio/soundtrack/cave/stars_like_stalactites.ogg b/assets/voxygen/audio/soundtrack/cave/stars_like_stalactites.ogg new file mode 100644 index 0000000..d52ca0a Binary files /dev/null and b/assets/voxygen/audio/soundtrack/cave/stars_like_stalactites.ogg differ diff --git a/assets/voxygen/audio/soundtrack/combat/barred_paths/barred_paths-end.ogg b/assets/voxygen/audio/soundtrack/combat/barred_paths/barred_paths-end.ogg new file mode 100644 index 0000000..55752b9 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/combat/barred_paths/barred_paths-end.ogg differ diff --git a/assets/voxygen/audio/soundtrack/combat/barred_paths/barred_paths-loop.ogg b/assets/voxygen/audio/soundtrack/combat/barred_paths/barred_paths-loop.ogg new file mode 100644 index 0000000..9c16c80 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/combat/barred_paths/barred_paths-loop.ogg differ diff --git a/assets/voxygen/audio/soundtrack/combat/barred_paths/barred_paths-start.ogg b/assets/voxygen/audio/soundtrack/combat/barred_paths/barred_paths-start.ogg new file mode 100644 index 0000000..9d0d826 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/combat/barred_paths/barred_paths-start.ogg differ diff --git a/assets/voxygen/audio/soundtrack/combat/clash/clash-end.ogg b/assets/voxygen/audio/soundtrack/combat/clash/clash-end.ogg new file mode 100644 index 0000000..1bea884 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/combat/clash/clash-end.ogg differ diff --git a/assets/voxygen/audio/soundtrack/combat/clash/clash-loop.ogg b/assets/voxygen/audio/soundtrack/combat/clash/clash-loop.ogg new file mode 100644 index 0000000..3f61e9c Binary files /dev/null and b/assets/voxygen/audio/soundtrack/combat/clash/clash-loop.ogg differ diff --git a/assets/voxygen/audio/soundtrack/combat/clash/clash-start.ogg b/assets/voxygen/audio/soundtrack/combat/clash/clash-start.ogg new file mode 100644 index 0000000..30b4242 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/combat/clash/clash-start.ogg differ diff --git a/assets/voxygen/audio/soundtrack/combat/reversal/reversal-end.ogg b/assets/voxygen/audio/soundtrack/combat/reversal/reversal-end.ogg new file mode 100644 index 0000000..affe1d3 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/combat/reversal/reversal-end.ogg differ diff --git a/assets/voxygen/audio/soundtrack/combat/reversal/reversal-loop.ogg b/assets/voxygen/audio/soundtrack/combat/reversal/reversal-loop.ogg new file mode 100644 index 0000000..d5434a4 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/combat/reversal/reversal-loop.ogg differ diff --git a/assets/voxygen/audio/soundtrack/combat/reversal/reversal-start.ogg b/assets/voxygen/audio/soundtrack/combat/reversal/reversal-start.ogg new file mode 100644 index 0000000..1a9668e Binary files /dev/null and b/assets/voxygen/audio/soundtrack/combat/reversal/reversal-start.ogg differ diff --git a/assets/voxygen/audio/soundtrack/dungeon/a_hearts_ice-cold_protection.ogg b/assets/voxygen/audio/soundtrack/dungeon/a_hearts_ice-cold_protection.ogg new file mode 100644 index 0000000..2e2c15c Binary files /dev/null and b/assets/voxygen/audio/soundtrack/dungeon/a_hearts_ice-cold_protection.ogg differ diff --git a/assets/voxygen/audio/soundtrack/dungeon/cobbled_halls.ogg b/assets/voxygen/audio/soundtrack/dungeon/cobbled_halls.ogg new file mode 100644 index 0000000..aecda76 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/dungeon/cobbled_halls.ogg differ diff --git a/assets/voxygen/audio/soundtrack/dungeon/dank_dungeon.ogg b/assets/voxygen/audio/soundtrack/dungeon/dank_dungeon.ogg new file mode 100644 index 0000000..b29a884 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/dungeon/dank_dungeon.ogg differ diff --git a/assets/voxygen/audio/soundtrack/dungeon/mysty_temple.ogg b/assets/voxygen/audio/soundtrack/dungeon/mysty_temple.ogg new file mode 100644 index 0000000..e8dbd7c Binary files /dev/null and b/assets/voxygen/audio/soundtrack/dungeon/mysty_temple.ogg differ diff --git a/assets/voxygen/audio/soundtrack/dungeon/ruination.ogg b/assets/voxygen/audio/soundtrack/dungeon/ruination.ogg new file mode 100644 index 0000000..704cfa7 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/dungeon/ruination.ogg differ diff --git a/assets/voxygen/audio/soundtrack/dungeon/sacred_temple.ogg b/assets/voxygen/audio/soundtrack/dungeon/sacred_temple.ogg new file mode 100644 index 0000000..f21fded Binary files /dev/null and b/assets/voxygen/audio/soundtrack/dungeon/sacred_temple.ogg differ diff --git a/assets/voxygen/audio/soundtrack/dungeon/thrumming_waters.ogg b/assets/voxygen/audio/soundtrack/dungeon/thrumming_waters.ogg new file mode 100644 index 0000000..16ffc5d Binary files /dev/null and b/assets/voxygen/audio/soundtrack/dungeon/thrumming_waters.ogg differ diff --git a/assets/voxygen/audio/soundtrack/dungeon/vast_onslaught.ogg b/assets/voxygen/audio/soundtrack/dungeon/vast_onslaught.ogg new file mode 100644 index 0000000..d7ba336 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/dungeon/vast_onslaught.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/a_cold_breeze_blows.ogg b/assets/voxygen/audio/soundtrack/overworld/a_cold_breeze_blows.ogg new file mode 100644 index 0000000..0c1a62a Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/a_cold_breeze_blows.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/a_heros_sorrow.ogg b/assets/voxygen/audio/soundtrack/overworld/a_heros_sorrow.ogg new file mode 100644 index 0000000..f81fdd8 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/a_heros_sorrow.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/a_peaceful_moment.ogg b/assets/voxygen/audio/soundtrack/overworld/a_peaceful_moment.ogg new file mode 100755 index 0000000..b3c4f5b Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/a_peaceful_moment.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/a_solemn_quest.ogg b/assets/voxygen/audio/soundtrack/overworld/a_solemn_quest.ogg new file mode 100644 index 0000000..8eb8f20 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/a_solemn_quest.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/adventurous_soul.ogg b/assets/voxygen/audio/soundtrack/overworld/adventurous_soul.ogg new file mode 100644 index 0000000..23fd6d3 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/adventurous_soul.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/ballerine_macabre.ogg b/assets/voxygen/audio/soundtrack/overworld/ballerine_macabre.ogg new file mode 100644 index 0000000..29391b7 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/ballerine_macabre.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/between_the_fairies.ogg b/assets/voxygen/audio/soundtrack/overworld/between_the_fairies.ogg new file mode 100644 index 0000000..35b1e4c Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/between_the_fairies.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/calling_wild.ogg b/assets/voxygen/audio/soundtrack/overworld/calling_wild.ogg new file mode 100644 index 0000000..f45cff1 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/calling_wild.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/calming_hills.ogg b/assets/voxygen/audio/soundtrack/overworld/calming_hills.ogg new file mode 100644 index 0000000..f1f81df Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/calming_hills.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/campfire_stories.ogg b/assets/voxygen/audio/soundtrack/overworld/campfire_stories.ogg new file mode 100644 index 0000000..9d914c2 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/campfire_stories.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/drifting_along.ogg b/assets/voxygen/audio/soundtrack/overworld/drifting_along.ogg new file mode 100644 index 0000000..fd1abe9 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/drifting_along.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/ethereal_bonds.ogg b/assets/voxygen/audio/soundtrack/overworld/ethereal_bonds.ogg new file mode 100644 index 0000000..0d87bbe Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/ethereal_bonds.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/everbearing.ogg b/assets/voxygen/audio/soundtrack/overworld/everbearing.ogg new file mode 100644 index 0000000..cf7fc2c Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/everbearing.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/field_grazing.ogg b/assets/voxygen/audio/soundtrack/overworld/field_grazing.ogg new file mode 100644 index 0000000..2e07e1e Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/field_grazing.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/follow_the_signs.ogg b/assets/voxygen/audio/soundtrack/overworld/follow_the_signs.ogg new file mode 100644 index 0000000..f3aac84 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/follow_the_signs.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/graceful_journey.ogg b/assets/voxygen/audio/soundtrack/overworld/graceful_journey.ogg new file mode 100644 index 0000000..c9e1d09 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/graceful_journey.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/highland_of_the_hawk.ogg b/assets/voxygen/audio/soundtrack/overworld/highland_of_the_hawk.ogg new file mode 100644 index 0000000..b69af73 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/highland_of_the_hawk.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/into_the_dark_forest.ogg b/assets/voxygen/audio/soundtrack/overworld/into_the_dark_forest.ogg new file mode 100644 index 0000000..0e9a296 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/into_the_dark_forest.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/jungle_ambient.ogg b/assets/voxygen/audio/soundtrack/overworld/jungle_ambient.ogg new file mode 100644 index 0000000..e148e10 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/jungle_ambient.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/just_the_beginning.ogg b/assets/voxygen/audio/soundtrack/overworld/just_the_beginning.ogg new file mode 100644 index 0000000..5e95778 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/just_the_beginning.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/leap_of_faith.ogg b/assets/voxygen/audio/soundtrack/overworld/leap_of_faith.ogg new file mode 100644 index 0000000..bd1899b Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/leap_of_faith.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/limits.ogg b/assets/voxygen/audio/soundtrack/overworld/limits.ogg new file mode 100644 index 0000000..04cf343 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/limits.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/moonbeams.ogg b/assets/voxygen/audio/soundtrack/overworld/moonbeams.ogg new file mode 100644 index 0000000..183bab1 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/moonbeams.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/moonlit_canopy.ogg b/assets/voxygen/audio/soundtrack/overworld/moonlit_canopy.ogg new file mode 100644 index 0000000..df701f2 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/moonlit_canopy.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/oceania.ogg b/assets/voxygen/audio/soundtrack/overworld/oceania.ogg new file mode 100644 index 0000000..e95e31e Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/oceania.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/raising_below_like_thunder.ogg b/assets/voxygen/audio/soundtrack/overworld/raising_below_like_thunder.ogg new file mode 100644 index 0000000..cf76ac8 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/raising_below_like_thunder.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/serene_meadows.ogg b/assets/voxygen/audio/soundtrack/overworld/serene_meadows.ogg new file mode 100644 index 0000000..cb93766 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/serene_meadows.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/short_meandering.ogg b/assets/voxygen/audio/soundtrack/overworld/short_meandering.ogg new file mode 100644 index 0000000..9f41677 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/short_meandering.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/snowtop_volume.ogg b/assets/voxygen/audio/soundtrack/overworld/snowtop_volume.ogg new file mode 100644 index 0000000..12eff9b Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/snowtop_volume.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/song_of_the_eldwood.ogg b/assets/voxygen/audio/soundtrack/overworld/song_of_the_eldwood.ogg new file mode 100644 index 0000000..32edcf9 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/song_of_the_eldwood.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/stargazing.ogg b/assets/voxygen/audio/soundtrack/overworld/stargazing.ogg new file mode 100644 index 0000000..c9ca9dc Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/stargazing.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/the_heavens_weep.ogg b/assets/voxygen/audio/soundtrack/overworld/the_heavens_weep.ogg new file mode 100644 index 0000000..f7461d1 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/the_heavens_weep.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/the_undergrowth.ogg b/assets/voxygen/audio/soundtrack/overworld/the_undergrowth.ogg new file mode 100644 index 0000000..5c2717a Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/the_undergrowth.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/torii.ogg b/assets/voxygen/audio/soundtrack/overworld/torii.ogg new file mode 100644 index 0000000..0ff371a Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/torii.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/travel_by_night.ogg b/assets/voxygen/audio/soundtrack/overworld/travel_by_night.ogg new file mode 100644 index 0000000..da96607 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/travel_by_night.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/true_nature.ogg b/assets/voxygen/audio/soundtrack/overworld/true_nature.ogg new file mode 100644 index 0000000..9fcae66 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/true_nature.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/verdant_glades.ogg b/assets/voxygen/audio/soundtrack/overworld/verdant_glades.ogg new file mode 100644 index 0000000..0a08936 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/verdant_glades.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/wandering_voices.ogg b/assets/voxygen/audio/soundtrack/overworld/wandering_voices.ogg new file mode 100644 index 0000000..e05ff13 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/wandering_voices.ogg differ diff --git a/assets/voxygen/audio/soundtrack/overworld/winter_falls.ogg b/assets/voxygen/audio/soundtrack/overworld/winter_falls.ogg new file mode 100644 index 0000000..f7e64e3 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/overworld/winter_falls.ogg differ diff --git a/assets/voxygen/audio/soundtrack/town/a_rest_under_the_sunset.ogg b/assets/voxygen/audio/soundtrack/town/a_rest_under_the_sunset.ogg new file mode 100644 index 0000000..fccd02f Binary files /dev/null and b/assets/voxygen/audio/soundtrack/town/a_rest_under_the_sunset.ogg differ diff --git a/assets/voxygen/audio/soundtrack/town/a_tale_worth_telling.ogg b/assets/voxygen/audio/soundtrack/town/a_tale_worth_telling.ogg new file mode 100644 index 0000000..f1c3a9a Binary files /dev/null and b/assets/voxygen/audio/soundtrack/town/a_tale_worth_telling.ogg differ diff --git a/assets/voxygen/audio/soundtrack/town/bustle_and_bloom.ogg b/assets/voxygen/audio/soundtrack/town/bustle_and_bloom.ogg new file mode 100644 index 0000000..2acfb03 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/town/bustle_and_bloom.ogg differ diff --git a/assets/voxygen/audio/soundtrack/town/fiesta_del_pueblo.ogg b/assets/voxygen/audio/soundtrack/town/fiesta_del_pueblo.ogg new file mode 100644 index 0000000..c8cd705 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/town/fiesta_del_pueblo.ogg differ diff --git a/assets/voxygen/audio/soundtrack/town/im_home.ogg b/assets/voxygen/audio/soundtrack/town/im_home.ogg new file mode 100644 index 0000000..51e53ca Binary files /dev/null and b/assets/voxygen/audio/soundtrack/town/im_home.ogg differ diff --git a/assets/voxygen/audio/soundtrack/town/into_the_mines.ogg b/assets/voxygen/audio/soundtrack/town/into_the_mines.ogg new file mode 100644 index 0000000..41b06d4 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/town/into_the_mines.ogg differ diff --git a/assets/voxygen/audio/soundtrack/town/life_of_a_background_mob.ogg b/assets/voxygen/audio/soundtrack/town/life_of_a_background_mob.ogg new file mode 100644 index 0000000..c056c1a Binary files /dev/null and b/assets/voxygen/audio/soundtrack/town/life_of_a_background_mob.ogg differ diff --git a/assets/voxygen/audio/soundtrack/town/rest_assured.ogg b/assets/voxygen/audio/soundtrack/town/rest_assured.ogg new file mode 100644 index 0000000..1098156 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/town/rest_assured.ogg differ diff --git a/assets/voxygen/audio/soundtrack/town/starlit_pathways.ogg b/assets/voxygen/audio/soundtrack/town/starlit_pathways.ogg new file mode 100644 index 0000000..991b7b1 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/town/starlit_pathways.ogg differ diff --git a/assets/voxygen/audio/soundtrack/town/the_quiet_after_the_battle.ogg b/assets/voxygen/audio/soundtrack/town/the_quiet_after_the_battle.ogg new file mode 100644 index 0000000..3679048 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/town/the_quiet_after_the_battle.ogg differ diff --git a/assets/voxygen/audio/soundtrack/town/warmth_of_the_hearth.ogg b/assets/voxygen/audio/soundtrack/town/warmth_of_the_hearth.ogg new file mode 100644 index 0000000..6e78c70 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/town/warmth_of_the_hearth.ogg differ diff --git a/assets/voxygen/audio/soundtrack/veloren_title_tune.ogg b/assets/voxygen/audio/soundtrack/veloren_title_tune.ogg new file mode 100644 index 0000000..f99c249 Binary files /dev/null and b/assets/voxygen/audio/soundtrack/veloren_title_tune.ogg differ diff --git a/assets/voxygen/background/bg_1.jpg b/assets/voxygen/background/bg_1.jpg new file mode 100644 index 0000000..0530c1b Binary files /dev/null and b/assets/voxygen/background/bg_1.jpg differ diff --git a/assets/voxygen/background/bg_10.jpg b/assets/voxygen/background/bg_10.jpg new file mode 100644 index 0000000..15f5948 Binary files /dev/null and b/assets/voxygen/background/bg_10.jpg differ diff --git a/assets/voxygen/background/bg_11.jpg b/assets/voxygen/background/bg_11.jpg new file mode 100644 index 0000000..007eae3 Binary files /dev/null and b/assets/voxygen/background/bg_11.jpg differ diff --git a/assets/voxygen/background/bg_12.jpg b/assets/voxygen/background/bg_12.jpg new file mode 100644 index 0000000..a504c5d Binary files /dev/null and b/assets/voxygen/background/bg_12.jpg differ diff --git a/assets/voxygen/background/bg_13.jpg b/assets/voxygen/background/bg_13.jpg new file mode 100644 index 0000000..de11de2 Binary files /dev/null and b/assets/voxygen/background/bg_13.jpg differ diff --git a/assets/voxygen/background/bg_14.jpg b/assets/voxygen/background/bg_14.jpg new file mode 100644 index 0000000..3dab679 Binary files /dev/null and b/assets/voxygen/background/bg_14.jpg differ diff --git a/assets/voxygen/background/bg_2.jpg b/assets/voxygen/background/bg_2.jpg new file mode 100644 index 0000000..3b53f29 Binary files /dev/null and b/assets/voxygen/background/bg_2.jpg differ diff --git a/assets/voxygen/background/bg_3.jpg b/assets/voxygen/background/bg_3.jpg new file mode 100644 index 0000000..0a2b8fe Binary files /dev/null and b/assets/voxygen/background/bg_3.jpg differ diff --git a/assets/voxygen/background/bg_4.jpg b/assets/voxygen/background/bg_4.jpg new file mode 100644 index 0000000..63fe2b3 Binary files /dev/null and b/assets/voxygen/background/bg_4.jpg differ diff --git a/assets/voxygen/background/bg_5.jpg b/assets/voxygen/background/bg_5.jpg new file mode 100644 index 0000000..dee52de Binary files /dev/null and b/assets/voxygen/background/bg_5.jpg differ diff --git a/assets/voxygen/background/bg_6.jpg b/assets/voxygen/background/bg_6.jpg new file mode 100644 index 0000000..494d46a Binary files /dev/null and b/assets/voxygen/background/bg_6.jpg differ diff --git a/assets/voxygen/background/bg_7.jpg b/assets/voxygen/background/bg_7.jpg new file mode 100644 index 0000000..cf14702 Binary files /dev/null and b/assets/voxygen/background/bg_7.jpg differ diff --git a/assets/voxygen/background/bg_8.jpg b/assets/voxygen/background/bg_8.jpg new file mode 100644 index 0000000..7ff0f29 Binary files /dev/null and b/assets/voxygen/background/bg_8.jpg differ diff --git a/assets/voxygen/background/bg_9.jpg b/assets/voxygen/background/bg_9.jpg new file mode 100644 index 0000000..57fb4d1 Binary files /dev/null and b/assets/voxygen/background/bg_9.jpg differ diff --git a/assets/voxygen/background/bg_main.jpg b/assets/voxygen/background/bg_main.jpg new file mode 100644 index 0000000..5bd9e40 Binary files /dev/null and b/assets/voxygen/background/bg_main.jpg differ diff --git a/assets/voxygen/background/death.png b/assets/voxygen/background/death.png new file mode 100644 index 0000000..fff5b73 Binary files /dev/null and b/assets/voxygen/background/death.png differ diff --git a/assets/voxygen/background/hurt.png b/assets/voxygen/background/hurt.png new file mode 100644 index 0000000..78dab70 Binary files /dev/null and b/assets/voxygen/background/hurt.png differ diff --git a/assets/voxygen/element/0_1_knight.png b/assets/voxygen/element/0_1_knight.png new file mode 100644 index 0000000..7ab6cd9 Binary files /dev/null and b/assets/voxygen/element/0_1_knight.png differ diff --git a/assets/voxygen/element/animation/buff_frame/1.png b/assets/voxygen/element/animation/buff_frame/1.png new file mode 100644 index 0000000..d304f6c Binary files /dev/null and b/assets/voxygen/element/animation/buff_frame/1.png differ diff --git a/assets/voxygen/element/animation/buff_frame/2.png b/assets/voxygen/element/animation/buff_frame/2.png new file mode 100644 index 0000000..940bf2e Binary files /dev/null and b/assets/voxygen/element/animation/buff_frame/2.png differ diff --git a/assets/voxygen/element/animation/buff_frame/3.png b/assets/voxygen/element/animation/buff_frame/3.png new file mode 100644 index 0000000..4fb0b51 Binary files /dev/null and b/assets/voxygen/element/animation/buff_frame/3.png differ diff --git a/assets/voxygen/element/animation/buff_frame/4.png b/assets/voxygen/element/animation/buff_frame/4.png new file mode 100644 index 0000000..22bd7f1 Binary files /dev/null and b/assets/voxygen/element/animation/buff_frame/4.png differ diff --git a/assets/voxygen/element/animation/buff_frame/5.png b/assets/voxygen/element/animation/buff_frame/5.png new file mode 100644 index 0000000..354ce82 Binary files /dev/null and b/assets/voxygen/element/animation/buff_frame/5.png differ diff --git a/assets/voxygen/element/animation/buff_frame/6.png b/assets/voxygen/element/animation/buff_frame/6.png new file mode 100644 index 0000000..a29d8dc Binary files /dev/null and b/assets/voxygen/element/animation/buff_frame/6.png differ diff --git a/assets/voxygen/element/animation/buff_frame/7.png b/assets/voxygen/element/animation/buff_frame/7.png new file mode 100644 index 0000000..9dde577 Binary files /dev/null and b/assets/voxygen/element/animation/buff_frame/7.png differ diff --git a/assets/voxygen/element/animation/buff_frame/8.png b/assets/voxygen/element/animation/buff_frame/8.png new file mode 100644 index 0000000..c1bfebc Binary files /dev/null and b/assets/voxygen/element/animation/buff_frame/8.png differ diff --git a/assets/voxygen/element/animation/loaders/boat1.png b/assets/voxygen/element/animation/loaders/boat1.png new file mode 100644 index 0000000..14e0f82 Binary files /dev/null and b/assets/voxygen/element/animation/loaders/boat1.png differ diff --git a/assets/voxygen/element/animation/loaders/boat2.png b/assets/voxygen/element/animation/loaders/boat2.png new file mode 100644 index 0000000..df0910d Binary files /dev/null and b/assets/voxygen/element/animation/loaders/boat2.png differ diff --git a/assets/voxygen/element/animation/loaders/boat3.png b/assets/voxygen/element/animation/loaders/boat3.png new file mode 100644 index 0000000..a1f14b2 Binary files /dev/null and b/assets/voxygen/element/animation/loaders/boat3.png differ diff --git a/assets/voxygen/element/animation/loaders/boat4.png b/assets/voxygen/element/animation/loaders/boat4.png new file mode 100644 index 0000000..4533cb9 Binary files /dev/null and b/assets/voxygen/element/animation/loaders/boat4.png differ diff --git a/assets/voxygen/element/animation/loaders/cauldron1.png b/assets/voxygen/element/animation/loaders/cauldron1.png new file mode 100644 index 0000000..975252a Binary files /dev/null and b/assets/voxygen/element/animation/loaders/cauldron1.png differ diff --git a/assets/voxygen/element/animation/loaders/cauldron2.png b/assets/voxygen/element/animation/loaders/cauldron2.png new file mode 100644 index 0000000..6eade7e Binary files /dev/null and b/assets/voxygen/element/animation/loaders/cauldron2.png differ diff --git a/assets/voxygen/element/animation/loaders/cauldron3.png b/assets/voxygen/element/animation/loaders/cauldron3.png new file mode 100644 index 0000000..db704fc Binary files /dev/null and b/assets/voxygen/element/animation/loaders/cauldron3.png differ diff --git a/assets/voxygen/element/animation/loaders/cauldron4.png b/assets/voxygen/element/animation/loaders/cauldron4.png new file mode 100644 index 0000000..94aea9e Binary files /dev/null and b/assets/voxygen/element/animation/loaders/cauldron4.png differ diff --git a/assets/voxygen/element/animation/loaders/cauldron5.png b/assets/voxygen/element/animation/loaders/cauldron5.png new file mode 100644 index 0000000..9b7b26a Binary files /dev/null and b/assets/voxygen/element/animation/loaders/cauldron5.png differ diff --git a/assets/voxygen/element/animation/loaders/cheese1.png b/assets/voxygen/element/animation/loaders/cheese1.png new file mode 100644 index 0000000..42af095 Binary files /dev/null and b/assets/voxygen/element/animation/loaders/cheese1.png differ diff --git a/assets/voxygen/element/animation/loaders/cheese2.png b/assets/voxygen/element/animation/loaders/cheese2.png new file mode 100644 index 0000000..ff1b49e Binary files /dev/null and b/assets/voxygen/element/animation/loaders/cheese2.png differ diff --git a/assets/voxygen/element/animation/loaders/cheese3.png b/assets/voxygen/element/animation/loaders/cheese3.png new file mode 100644 index 0000000..f151902 Binary files /dev/null and b/assets/voxygen/element/animation/loaders/cheese3.png differ diff --git a/assets/voxygen/element/animation/loaders/cheese4.png b/assets/voxygen/element/animation/loaders/cheese4.png new file mode 100644 index 0000000..0d54695 Binary files /dev/null and b/assets/voxygen/element/animation/loaders/cheese4.png differ diff --git a/assets/voxygen/element/animation/loaders/cheese5.png b/assets/voxygen/element/animation/loaders/cheese5.png new file mode 100644 index 0000000..7244605 Binary files /dev/null and b/assets/voxygen/element/animation/loaders/cheese5.png differ diff --git a/assets/voxygen/element/animation/loaders/coins1.png b/assets/voxygen/element/animation/loaders/coins1.png new file mode 100644 index 0000000..c036e3d Binary files /dev/null and b/assets/voxygen/element/animation/loaders/coins1.png differ diff --git a/assets/voxygen/element/animation/loaders/coins2.png b/assets/voxygen/element/animation/loaders/coins2.png new file mode 100644 index 0000000..f561f0e Binary files /dev/null and b/assets/voxygen/element/animation/loaders/coins2.png differ diff --git a/assets/voxygen/element/animation/loaders/coins3.png b/assets/voxygen/element/animation/loaders/coins3.png new file mode 100644 index 0000000..a5ec769 Binary files /dev/null and b/assets/voxygen/element/animation/loaders/coins3.png differ diff --git a/assets/voxygen/element/animation/loaders/coins4.png b/assets/voxygen/element/animation/loaders/coins4.png new file mode 100644 index 0000000..a223cef Binary files /dev/null and b/assets/voxygen/element/animation/loaders/coins4.png differ diff --git a/assets/voxygen/element/animation/loaders/coins5.png b/assets/voxygen/element/animation/loaders/coins5.png new file mode 100644 index 0000000..228e571 Binary files /dev/null and b/assets/voxygen/element/animation/loaders/coins5.png differ diff --git a/assets/voxygen/element/animation/loaders/house1.png b/assets/voxygen/element/animation/loaders/house1.png new file mode 100644 index 0000000..ae2f1c2 Binary files /dev/null and b/assets/voxygen/element/animation/loaders/house1.png differ diff --git a/assets/voxygen/element/animation/loaders/house2.png b/assets/voxygen/element/animation/loaders/house2.png new file mode 100644 index 0000000..0e294b2 Binary files /dev/null and b/assets/voxygen/element/animation/loaders/house2.png differ diff --git a/assets/voxygen/element/animation/loaders/house3.png b/assets/voxygen/element/animation/loaders/house3.png new file mode 100644 index 0000000..8e9149c Binary files /dev/null and b/assets/voxygen/element/animation/loaders/house3.png differ diff --git a/assets/voxygen/element/animation/loaders/house4.png b/assets/voxygen/element/animation/loaders/house4.png new file mode 100644 index 0000000..ba06613 Binary files /dev/null and b/assets/voxygen/element/animation/loaders/house4.png differ diff --git a/assets/voxygen/element/animation/loaders/house5.png b/assets/voxygen/element/animation/loaders/house5.png new file mode 100644 index 0000000..cce2271 Binary files /dev/null and b/assets/voxygen/element/animation/loaders/house5.png differ diff --git a/assets/voxygen/element/animation/loaders/manifest.ron b/assets/voxygen/element/animation/loaders/manifest.ron new file mode 100644 index 0000000..1843b40 --- /dev/null +++ b/assets/voxygen/element/animation/loaders/manifest.ron @@ -0,0 +1,50 @@ +([ + (8.0, [ + "voxygen.element.animation.loaders.cauldron1", + "voxygen.element.animation.loaders.cauldron2", + "voxygen.element.animation.loaders.cauldron3", + "voxygen.element.animation.loaders.cauldron4", + "voxygen.element.animation.loaders.cauldron5", + ]), + (6.0, [ + "voxygen.element.animation.loaders.cheese1", + "voxygen.element.animation.loaders.cheese2", + "voxygen.element.animation.loaders.cheese3", + "voxygen.element.animation.loaders.cheese4", + "voxygen.element.animation.loaders.cheese5", + ]), + (8.0, [ + "voxygen.element.animation.loaders.mouse-cheese1", + "voxygen.element.animation.loaders.mouse-cheese2", + "voxygen.element.animation.loaders.mouse-cheese3", + "voxygen.element.animation.loaders.mouse-cheese4", + "voxygen.element.animation.loaders.mouse-cheese5", + ]), + (6.0, [ + "voxygen.element.animation.loaders.coins1", + "voxygen.element.animation.loaders.coins2", + "voxygen.element.animation.loaders.coins3", + "voxygen.element.animation.loaders.coins4", + "voxygen.element.animation.loaders.coins5", + ]), + (1.0, [ + "voxygen.element.animation.loaders.house1", + "voxygen.element.animation.loaders.house2", + "voxygen.element.animation.loaders.house3", + "voxygen.element.animation.loaders.house4", + "voxygen.element.animation.loaders.house5", + ]), + (1.0, [ + "voxygen.element.animation.loaders.ship1", + "voxygen.element.animation.loaders.ship2", + "voxygen.element.animation.loaders.ship3", + "voxygen.element.animation.loaders.ship4", + "voxygen.element.animation.loaders.ship5", + ]), + (2.0, [ + "voxygen.element.animation.loaders.boat1", + "voxygen.element.animation.loaders.boat2", + "voxygen.element.animation.loaders.boat3", + "voxygen.element.animation.loaders.boat4", + ]), +]) \ No newline at end of file diff --git a/assets/voxygen/element/animation/loaders/mouse-cheese1.png b/assets/voxygen/element/animation/loaders/mouse-cheese1.png new file mode 100644 index 0000000..32d22d4 Binary files /dev/null and b/assets/voxygen/element/animation/loaders/mouse-cheese1.png differ diff --git a/assets/voxygen/element/animation/loaders/mouse-cheese2.png b/assets/voxygen/element/animation/loaders/mouse-cheese2.png new file mode 100644 index 0000000..d6b2ab4 Binary files /dev/null and b/assets/voxygen/element/animation/loaders/mouse-cheese2.png differ diff --git a/assets/voxygen/element/animation/loaders/mouse-cheese3.png b/assets/voxygen/element/animation/loaders/mouse-cheese3.png new file mode 100644 index 0000000..8ca1170 Binary files /dev/null and b/assets/voxygen/element/animation/loaders/mouse-cheese3.png differ diff --git a/assets/voxygen/element/animation/loaders/mouse-cheese4.png b/assets/voxygen/element/animation/loaders/mouse-cheese4.png new file mode 100644 index 0000000..29564bd Binary files /dev/null and b/assets/voxygen/element/animation/loaders/mouse-cheese4.png differ diff --git a/assets/voxygen/element/animation/loaders/mouse-cheese5.png b/assets/voxygen/element/animation/loaders/mouse-cheese5.png new file mode 100644 index 0000000..9f47b6a Binary files /dev/null and b/assets/voxygen/element/animation/loaders/mouse-cheese5.png differ diff --git a/assets/voxygen/element/animation/loaders/ship1.png b/assets/voxygen/element/animation/loaders/ship1.png new file mode 100644 index 0000000..4f013cb Binary files /dev/null and b/assets/voxygen/element/animation/loaders/ship1.png differ diff --git a/assets/voxygen/element/animation/loaders/ship2.png b/assets/voxygen/element/animation/loaders/ship2.png new file mode 100644 index 0000000..d965b68 Binary files /dev/null and b/assets/voxygen/element/animation/loaders/ship2.png differ diff --git a/assets/voxygen/element/animation/loaders/ship3.png b/assets/voxygen/element/animation/loaders/ship3.png new file mode 100644 index 0000000..cc93900 Binary files /dev/null and b/assets/voxygen/element/animation/loaders/ship3.png differ diff --git a/assets/voxygen/element/animation/loaders/ship4.png b/assets/voxygen/element/animation/loaders/ship4.png new file mode 100644 index 0000000..d965b68 Binary files /dev/null and b/assets/voxygen/element/animation/loaders/ship4.png differ diff --git a/assets/voxygen/element/animation/loaders/ship5.png b/assets/voxygen/element/animation/loaders/ship5.png new file mode 100644 index 0000000..4f013cb Binary files /dev/null and b/assets/voxygen/element/animation/loaders/ship5.png differ diff --git a/assets/voxygen/element/de_buffs/buff_campfire_heal_0.png b/assets/voxygen/element/de_buffs/buff_campfire_heal_0.png new file mode 100644 index 0000000..b4ff848 Binary files /dev/null and b/assets/voxygen/element/de_buffs/buff_campfire_heal_0.png differ diff --git a/assets/voxygen/element/de_buffs/buff_damage_reduce_0.png b/assets/voxygen/element/de_buffs/buff_damage_reduce_0.png new file mode 100644 index 0000000..e2444c2 Binary files /dev/null and b/assets/voxygen/element/de_buffs/buff_damage_reduce_0.png differ diff --git a/assets/voxygen/element/de_buffs/buff_defiance.png b/assets/voxygen/element/de_buffs/buff_defiance.png new file mode 100644 index 0000000..8b6320e Binary files /dev/null and b/assets/voxygen/element/de_buffs/buff_defiance.png differ diff --git a/assets/voxygen/element/de_buffs/buff_energyplus_0.png b/assets/voxygen/element/de_buffs/buff_energyplus_0.png new file mode 100644 index 0000000..9facb2e Binary files /dev/null and b/assets/voxygen/element/de_buffs/buff_energyplus_0.png differ diff --git a/assets/voxygen/element/de_buffs/buff_flame.png b/assets/voxygen/element/de_buffs/buff_flame.png new file mode 100644 index 0000000..bad833e Binary files /dev/null and b/assets/voxygen/element/de_buffs/buff_flame.png differ diff --git a/assets/voxygen/element/de_buffs/buff_fortitude_0.png b/assets/voxygen/element/de_buffs/buff_fortitude_0.png new file mode 100644 index 0000000..bc53479 Binary files /dev/null and b/assets/voxygen/element/de_buffs/buff_fortitude_0.png differ diff --git a/assets/voxygen/element/de_buffs/buff_frenzy_0.png b/assets/voxygen/element/de_buffs/buff_frenzy_0.png new file mode 100644 index 0000000..1b8c0e3 Binary files /dev/null and b/assets/voxygen/element/de_buffs/buff_frenzy_0.png differ diff --git a/assets/voxygen/element/de_buffs/buff_frigid.png b/assets/voxygen/element/de_buffs/buff_frigid.png new file mode 100644 index 0000000..0337a7d Binary files /dev/null and b/assets/voxygen/element/de_buffs/buff_frigid.png differ diff --git a/assets/voxygen/element/de_buffs/buff_fury.png b/assets/voxygen/element/de_buffs/buff_fury.png new file mode 100644 index 0000000..e1d98d9 Binary files /dev/null and b/assets/voxygen/element/de_buffs/buff_fury.png differ diff --git a/assets/voxygen/element/de_buffs/buff_haste_0.png b/assets/voxygen/element/de_buffs/buff_haste_0.png new file mode 100644 index 0000000..3032a63 Binary files /dev/null and b/assets/voxygen/element/de_buffs/buff_haste_0.png differ diff --git a/assets/voxygen/element/de_buffs/buff_healthplus_0.png b/assets/voxygen/element/de_buffs/buff_healthplus_0.png new file mode 100644 index 0000000..93fbf75 Binary files /dev/null and b/assets/voxygen/element/de_buffs/buff_healthplus_0.png differ diff --git a/assets/voxygen/element/de_buffs/buff_imminentcritical.png b/assets/voxygen/element/de_buffs/buff_imminentcritical.png new file mode 100644 index 0000000..e19977e Binary files /dev/null and b/assets/voxygen/element/de_buffs/buff_imminentcritical.png differ diff --git a/assets/voxygen/element/de_buffs/buff_invincibility_0.png b/assets/voxygen/element/de_buffs/buff_invincibility_0.png new file mode 100644 index 0000000..f67ebb8 Binary files /dev/null and b/assets/voxygen/element/de_buffs/buff_invincibility_0.png differ diff --git a/assets/voxygen/element/de_buffs/buff_lifesteal.png b/assets/voxygen/element/de_buffs/buff_lifesteal.png new file mode 100644 index 0000000..99a6b11 Binary files /dev/null and b/assets/voxygen/element/de_buffs/buff_lifesteal.png differ diff --git a/assets/voxygen/element/de_buffs/buff_plus_0.png b/assets/voxygen/element/de_buffs/buff_plus_0.png new file mode 100644 index 0000000..cc7c180 Binary files /dev/null and b/assets/voxygen/element/de_buffs/buff_plus_0.png differ diff --git a/assets/voxygen/element/de_buffs/buff_potion_0.png b/assets/voxygen/element/de_buffs/buff_potion_0.png new file mode 100644 index 0000000..4916c5e Binary files /dev/null and b/assets/voxygen/element/de_buffs/buff_potion_0.png differ diff --git a/assets/voxygen/element/de_buffs/buff_reckless.png b/assets/voxygen/element/de_buffs/buff_reckless.png new file mode 100644 index 0000000..9a3a32b Binary files /dev/null and b/assets/voxygen/element/de_buffs/buff_reckless.png differ diff --git a/assets/voxygen/element/de_buffs/buff_resilience.png b/assets/voxygen/element/de_buffs/buff_resilience.png new file mode 100644 index 0000000..307dde6 Binary files /dev/null and b/assets/voxygen/element/de_buffs/buff_resilience.png differ diff --git a/assets/voxygen/element/de_buffs/buff_saturation_0.png b/assets/voxygen/element/de_buffs/buff_saturation_0.png new file mode 100644 index 0000000..143a305 Binary files /dev/null and b/assets/voxygen/element/de_buffs/buff_saturation_0.png differ diff --git a/assets/voxygen/element/de_buffs/buff_scornfultaunt.png b/assets/voxygen/element/de_buffs/buff_scornfultaunt.png new file mode 100644 index 0000000..3d19220 Binary files /dev/null and b/assets/voxygen/element/de_buffs/buff_scornfultaunt.png differ diff --git a/assets/voxygen/element/de_buffs/buff_sunderer.png b/assets/voxygen/element/de_buffs/buff_sunderer.png new file mode 100644 index 0000000..c4280f7 Binary files /dev/null and b/assets/voxygen/element/de_buffs/buff_sunderer.png differ diff --git a/assets/voxygen/element/de_buffs/buff_tenacity.png b/assets/voxygen/element/de_buffs/buff_tenacity.png new file mode 100644 index 0000000..5f70a6d Binary files /dev/null and b/assets/voxygen/element/de_buffs/buff_tenacity.png differ diff --git a/assets/voxygen/element/de_buffs/debuff_bleed_0.png b/assets/voxygen/element/de_buffs/debuff_bleed_0.png new file mode 100644 index 0000000..2bac8c0 Binary files /dev/null and b/assets/voxygen/element/de_buffs/debuff_bleed_0.png differ diff --git a/assets/voxygen/element/de_buffs/debuff_burning_0.png b/assets/voxygen/element/de_buffs/debuff_burning_0.png new file mode 100644 index 0000000..7390789 Binary files /dev/null and b/assets/voxygen/element/de_buffs/debuff_burning_0.png differ diff --git a/assets/voxygen/element/de_buffs/debuff_concussion.png b/assets/voxygen/element/de_buffs/debuff_concussion.png new file mode 100644 index 0000000..e8463aa Binary files /dev/null and b/assets/voxygen/element/de_buffs/debuff_concussion.png differ diff --git a/assets/voxygen/element/de_buffs/debuff_cripple_0.png b/assets/voxygen/element/de_buffs/debuff_cripple_0.png new file mode 100644 index 0000000..21bfad7 Binary files /dev/null and b/assets/voxygen/element/de_buffs/debuff_cripple_0.png differ diff --git a/assets/voxygen/element/de_buffs/debuff_ensnared_0.png b/assets/voxygen/element/de_buffs/debuff_ensnared_0.png new file mode 100644 index 0000000..a7066f7 Binary files /dev/null and b/assets/voxygen/element/de_buffs/debuff_ensnared_0.png differ diff --git a/assets/voxygen/element/de_buffs/debuff_frozen_0.png b/assets/voxygen/element/de_buffs/debuff_frozen_0.png new file mode 100644 index 0000000..feac47d Binary files /dev/null and b/assets/voxygen/element/de_buffs/debuff_frozen_0.png differ diff --git a/assets/voxygen/element/de_buffs/debuff_heatstroke_0.png b/assets/voxygen/element/de_buffs/debuff_heatstroke_0.png new file mode 100644 index 0000000..64d6d8c Binary files /dev/null and b/assets/voxygen/element/de_buffs/debuff_heatstroke_0.png differ diff --git a/assets/voxygen/element/de_buffs/debuff_parried_0.png b/assets/voxygen/element/de_buffs/debuff_parried_0.png new file mode 100644 index 0000000..dd0bba1 Binary files /dev/null and b/assets/voxygen/element/de_buffs/debuff_parried_0.png differ diff --git a/assets/voxygen/element/de_buffs/debuff_poisoned_0.png b/assets/voxygen/element/de_buffs/debuff_poisoned_0.png new file mode 100644 index 0000000..d2b3d28 Binary files /dev/null and b/assets/voxygen/element/de_buffs/debuff_poisoned_0.png differ diff --git a/assets/voxygen/element/de_buffs/debuff_polymorphed.png b/assets/voxygen/element/de_buffs/debuff_polymorphed.png new file mode 100644 index 0000000..e9bf5a8 Binary files /dev/null and b/assets/voxygen/element/de_buffs/debuff_polymorphed.png differ diff --git a/assets/voxygen/element/de_buffs/debuff_potionsickness_0.png b/assets/voxygen/element/de_buffs/debuff_potionsickness_0.png new file mode 100644 index 0000000..471e1ff Binary files /dev/null and b/assets/voxygen/element/de_buffs/debuff_potionsickness_0.png differ diff --git a/assets/voxygen/element/de_buffs/debuff_rooted.png b/assets/voxygen/element/de_buffs/debuff_rooted.png new file mode 100644 index 0000000..f369128 Binary files /dev/null and b/assets/voxygen/element/de_buffs/debuff_rooted.png differ diff --git a/assets/voxygen/element/de_buffs/debuff_skull_0.png b/assets/voxygen/element/de_buffs/debuff_skull_0.png new file mode 100644 index 0000000..cce08f6 Binary files /dev/null and b/assets/voxygen/element/de_buffs/debuff_skull_0.png differ diff --git a/assets/voxygen/element/de_buffs/debuff_staggered.png b/assets/voxygen/element/de_buffs/debuff_staggered.png new file mode 100644 index 0000000..3a79fb0 Binary files /dev/null and b/assets/voxygen/element/de_buffs/debuff_staggered.png differ diff --git a/assets/voxygen/element/de_buffs/debuff_wet_0.png b/assets/voxygen/element/de_buffs/debuff_wet_0.png new file mode 100644 index 0000000..5953939 Binary files /dev/null and b/assets/voxygen/element/de_buffs/debuff_wet_0.png differ diff --git a/assets/voxygen/element/de_buffs/debuff_winded.png b/assets/voxygen/element/de_buffs/debuff_winded.png new file mode 100644 index 0000000..bba495d Binary files /dev/null and b/assets/voxygen/element/de_buffs/debuff_winded.png differ diff --git a/assets/voxygen/element/items/coin.png b/assets/voxygen/element/items/coin.png new file mode 100644 index 0000000..7f9caf7 Binary files /dev/null and b/assets/voxygen/element/items/coin.png differ diff --git a/assets/voxygen/element/items/item_bag_leather_large.png b/assets/voxygen/element/items/item_bag_leather_large.png new file mode 100644 index 0000000..6d15c15 Binary files /dev/null and b/assets/voxygen/element/items/item_bag_leather_large.png differ diff --git a/assets/voxygen/element/items/item_cheese.png b/assets/voxygen/element/items/item_cheese.png new file mode 100644 index 0000000..b55ed96 Binary files /dev/null and b/assets/voxygen/element/items/item_cheese.png differ diff --git a/assets/voxygen/element/items/item_flower.vox b/assets/voxygen/element/items/item_flower.vox new file mode 100644 index 0000000..21a2e18 Binary files /dev/null and b/assets/voxygen/element/items/item_flower.vox differ diff --git a/assets/voxygen/element/items/item_grass.vox b/assets/voxygen/element/items/item_grass.vox new file mode 100644 index 0000000..7c12db0 Binary files /dev/null and b/assets/voxygen/element/items/item_grass.vox differ diff --git a/assets/voxygen/element/missing_icon_grey.png b/assets/voxygen/element/missing_icon_grey.png new file mode 100644 index 0000000..b3cf4f5 Binary files /dev/null and b/assets/voxygen/element/missing_icon_grey.png differ diff --git a/assets/voxygen/element/not_found.png b/assets/voxygen/element/not_found.png new file mode 100644 index 0000000..adf48b3 Binary files /dev/null and b/assets/voxygen/element/not_found.png differ diff --git a/assets/voxygen/element/skills/axe/adrenaline_rush.png b/assets/voxygen/element/skills/axe/adrenaline_rush.png new file mode 100644 index 0000000..3720019 Binary files /dev/null and b/assets/voxygen/element/skills/axe/adrenaline_rush.png differ diff --git a/assets/voxygen/element/skills/axe/berserk.png b/assets/voxygen/element/skills/axe/berserk.png new file mode 100644 index 0000000..6175692 Binary files /dev/null and b/assets/voxygen/element/skills/axe/berserk.png differ diff --git a/assets/voxygen/element/skills/axe/bloodfeast.png b/assets/voxygen/element/skills/axe/bloodfeast.png new file mode 100644 index 0000000..01dca28 Binary files /dev/null and b/assets/voxygen/element/skills/axe/bloodfeast.png differ diff --git a/assets/voxygen/element/skills/axe/brutal_swing.png b/assets/voxygen/element/skills/axe/brutal_swing.png new file mode 100644 index 0000000..4e9f2eb Binary files /dev/null and b/assets/voxygen/element/skills/axe/brutal_swing.png differ diff --git a/assets/voxygen/element/skills/axe/bulkhead.png b/assets/voxygen/element/skills/axe/bulkhead.png new file mode 100644 index 0000000..6afd5a6 Binary files /dev/null and b/assets/voxygen/element/skills/axe/bulkhead.png differ diff --git a/assets/voxygen/element/skills/axe/capsize.png b/assets/voxygen/element/skills/axe/capsize.png new file mode 100644 index 0000000..ddff381 Binary files /dev/null and b/assets/voxygen/element/skills/axe/capsize.png differ diff --git a/assets/voxygen/element/skills/axe/cleave.png b/assets/voxygen/element/skills/axe/cleave.png new file mode 100644 index 0000000..4ceb18d Binary files /dev/null and b/assets/voxygen/element/skills/axe/cleave.png differ diff --git a/assets/voxygen/element/skills/axe/defiance.png b/assets/voxygen/element/skills/axe/defiance.png new file mode 100644 index 0000000..3f2818f Binary files /dev/null and b/assets/voxygen/element/skills/axe/defiance.png differ diff --git a/assets/voxygen/element/skills/axe/execute.png b/assets/voxygen/element/skills/axe/execute.png new file mode 100644 index 0000000..ef18b61 Binary files /dev/null and b/assets/voxygen/element/skills/axe/execute.png differ diff --git a/assets/voxygen/element/skills/axe/fierce_raze.png b/assets/voxygen/element/skills/axe/fierce_raze.png new file mode 100644 index 0000000..9c6971b Binary files /dev/null and b/assets/voxygen/element/skills/axe/fierce_raze.png differ diff --git a/assets/voxygen/element/skills/axe/fracture.png b/assets/voxygen/element/skills/axe/fracture.png new file mode 100644 index 0000000..818feee Binary files /dev/null and b/assets/voxygen/element/skills/axe/fracture.png differ diff --git a/assets/voxygen/element/skills/axe/furor.png b/assets/voxygen/element/skills/axe/furor.png new file mode 100644 index 0000000..1a460af Binary files /dev/null and b/assets/voxygen/element/skills/axe/furor.png differ diff --git a/assets/voxygen/element/skills/axe/keelhaul.png b/assets/voxygen/element/skills/axe/keelhaul.png new file mode 100644 index 0000000..5925159 Binary files /dev/null and b/assets/voxygen/element/skills/axe/keelhaul.png differ diff --git a/assets/voxygen/element/skills/axe/lacerate.png b/assets/voxygen/element/skills/axe/lacerate.png new file mode 100644 index 0000000..48acc86 Binary files /dev/null and b/assets/voxygen/element/skills/axe/lacerate.png differ diff --git a/assets/voxygen/element/skills/axe/maelstrom.png b/assets/voxygen/element/skills/axe/maelstrom.png new file mode 100644 index 0000000..2e2d4ec Binary files /dev/null and b/assets/voxygen/element/skills/axe/maelstrom.png differ diff --git a/assets/voxygen/element/skills/axe/plunder.png b/assets/voxygen/element/skills/axe/plunder.png new file mode 100644 index 0000000..4e2215e Binary files /dev/null and b/assets/voxygen/element/skills/axe/plunder.png differ diff --git a/assets/voxygen/element/skills/axe/rake.png b/assets/voxygen/element/skills/axe/rake.png new file mode 100644 index 0000000..6a27a5a Binary files /dev/null and b/assets/voxygen/element/skills/axe/rake.png differ diff --git a/assets/voxygen/element/skills/axe/riptide.png b/assets/voxygen/element/skills/axe/riptide.png new file mode 100644 index 0000000..e3524d5 Binary files /dev/null and b/assets/voxygen/element/skills/axe/riptide.png differ diff --git a/assets/voxygen/element/skills/axe/rising_tide.png b/assets/voxygen/element/skills/axe/rising_tide.png new file mode 100644 index 0000000..0d4df87 Binary files /dev/null and b/assets/voxygen/element/skills/axe/rising_tide.png differ diff --git a/assets/voxygen/element/skills/axe/savage_sense.png b/assets/voxygen/element/skills/axe/savage_sense.png new file mode 100644 index 0000000..3debd4c Binary files /dev/null and b/assets/voxygen/element/skills/axe/savage_sense.png differ diff --git a/assets/voxygen/element/skills/axe/skull_bash.png b/assets/voxygen/element/skills/axe/skull_bash.png new file mode 100644 index 0000000..56a5f46 Binary files /dev/null and b/assets/voxygen/element/skills/axe/skull_bash.png differ diff --git a/assets/voxygen/element/skills/axe/sunder.png b/assets/voxygen/element/skills/axe/sunder.png new file mode 100644 index 0000000..3e0c762 Binary files /dev/null and b/assets/voxygen/element/skills/axe/sunder.png differ diff --git a/assets/voxygen/element/skills/axe/triple_chop.png b/assets/voxygen/element/skills/axe/triple_chop.png new file mode 100644 index 0000000..523fa9f Binary files /dev/null and b/assets/voxygen/element/skills/axe/triple_chop.png differ diff --git a/assets/voxygen/element/skills/bow_m1.png b/assets/voxygen/element/skills/bow_m1.png new file mode 100644 index 0000000..eebb8fd Binary files /dev/null and b/assets/voxygen/element/skills/bow_m1.png differ diff --git a/assets/voxygen/element/skills/bow_m2.png b/assets/voxygen/element/skills/bow_m2.png new file mode 100644 index 0000000..9cf708c Binary files /dev/null and b/assets/voxygen/element/skills/bow_m2.png differ diff --git a/assets/voxygen/element/skills/debug_wand_m1.png b/assets/voxygen/element/skills/debug_wand_m1.png new file mode 100644 index 0000000..a703c4e Binary files /dev/null and b/assets/voxygen/element/skills/debug_wand_m1.png differ diff --git a/assets/voxygen/element/skills/debug_wand_m2.png b/assets/voxygen/element/skills/debug_wand_m2.png new file mode 100644 index 0000000..91ac561 Binary files /dev/null and b/assets/voxygen/element/skills/debug_wand_m2.png differ diff --git a/assets/voxygen/element/skills/hammer/breach.png b/assets/voxygen/element/skills/hammer/breach.png new file mode 100644 index 0000000..b0ca0dd Binary files /dev/null and b/assets/voxygen/element/skills/hammer/breach.png differ diff --git a/assets/voxygen/element/skills/hammer/earthshaker.png b/assets/voxygen/element/skills/hammer/earthshaker.png new file mode 100644 index 0000000..09b1886 Binary files /dev/null and b/assets/voxygen/element/skills/hammer/earthshaker.png differ diff --git a/assets/voxygen/element/skills/hammer/heavy_whorl.png b/assets/voxygen/element/skills/hammer/heavy_whorl.png new file mode 100644 index 0000000..c41535a Binary files /dev/null and b/assets/voxygen/element/skills/hammer/heavy_whorl.png differ diff --git a/assets/voxygen/element/skills/hammer/helm_crusher.png b/assets/voxygen/element/skills/hammer/helm_crusher.png new file mode 100644 index 0000000..53f2b3f Binary files /dev/null and b/assets/voxygen/element/skills/hammer/helm_crusher.png differ diff --git a/assets/voxygen/element/skills/hammer/intercept.png b/assets/voxygen/element/skills/hammer/intercept.png new file mode 100644 index 0000000..f6f8431 Binary files /dev/null and b/assets/voxygen/element/skills/hammer/intercept.png differ diff --git a/assets/voxygen/element/skills/hammer/iron_tempest.png b/assets/voxygen/element/skills/hammer/iron_tempest.png new file mode 100644 index 0000000..40da1d5 Binary files /dev/null and b/assets/voxygen/element/skills/hammer/iron_tempest.png differ diff --git a/assets/voxygen/element/skills/hammer/judgement.png b/assets/voxygen/element/skills/hammer/judgement.png new file mode 100644 index 0000000..9364472 Binary files /dev/null and b/assets/voxygen/element/skills/hammer/judgement.png differ diff --git a/assets/voxygen/element/skills/hammer/lung_pummel.png b/assets/voxygen/element/skills/hammer/lung_pummel.png new file mode 100644 index 0000000..606517e Binary files /dev/null and b/assets/voxygen/element/skills/hammer/lung_pummel.png differ diff --git a/assets/voxygen/element/skills/hammer/pile_driver.png b/assets/voxygen/element/skills/hammer/pile_driver.png new file mode 100644 index 0000000..3bcdb0f Binary files /dev/null and b/assets/voxygen/element/skills/hammer/pile_driver.png differ diff --git a/assets/voxygen/element/skills/hammer/rampart.png b/assets/voxygen/element/skills/hammer/rampart.png new file mode 100644 index 0000000..0b24409 Binary files /dev/null and b/assets/voxygen/element/skills/hammer/rampart.png differ diff --git a/assets/voxygen/element/skills/hammer/retaliate.png b/assets/voxygen/element/skills/hammer/retaliate.png new file mode 100644 index 0000000..3c1d22e Binary files /dev/null and b/assets/voxygen/element/skills/hammer/retaliate.png differ diff --git a/assets/voxygen/element/skills/hammer/scornful_swipe.png b/assets/voxygen/element/skills/hammer/scornful_swipe.png new file mode 100644 index 0000000..fa5b952 Binary files /dev/null and b/assets/voxygen/element/skills/hammer/scornful_swipe.png differ diff --git a/assets/voxygen/element/skills/hammer/seismic_shock.png b/assets/voxygen/element/skills/hammer/seismic_shock.png new file mode 100644 index 0000000..8ef8a63 Binary files /dev/null and b/assets/voxygen/element/skills/hammer/seismic_shock.png differ diff --git a/assets/voxygen/element/skills/hammer/solid_smash.png b/assets/voxygen/element/skills/hammer/solid_smash.png new file mode 100644 index 0000000..be1fa61 Binary files /dev/null and b/assets/voxygen/element/skills/hammer/solid_smash.png differ diff --git a/assets/voxygen/element/skills/hammer/spine_cracker.png b/assets/voxygen/element/skills/hammer/spine_cracker.png new file mode 100644 index 0000000..8abfafd Binary files /dev/null and b/assets/voxygen/element/skills/hammer/spine_cracker.png differ diff --git a/assets/voxygen/element/skills/hammer/tenacity.png b/assets/voxygen/element/skills/hammer/tenacity.png new file mode 100644 index 0000000..3f40494 Binary files /dev/null and b/assets/voxygen/element/skills/hammer/tenacity.png differ diff --git a/assets/voxygen/element/skills/hammer/thunderclap.png b/assets/voxygen/element/skills/hammer/thunderclap.png new file mode 100644 index 0000000..f98759c Binary files /dev/null and b/assets/voxygen/element/skills/hammer/thunderclap.png differ diff --git a/assets/voxygen/element/skills/hammer/tremor.png b/assets/voxygen/element/skills/hammer/tremor.png new file mode 100644 index 0000000..a8d7ba6 Binary files /dev/null and b/assets/voxygen/element/skills/hammer/tremor.png differ diff --git a/assets/voxygen/element/skills/hammer/upheaval.png b/assets/voxygen/element/skills/hammer/upheaval.png new file mode 100644 index 0000000..6824b18 Binary files /dev/null and b/assets/voxygen/element/skills/hammer/upheaval.png differ diff --git a/assets/voxygen/element/skills/hammer/vigorous_bash.png b/assets/voxygen/element/skills/hammer/vigorous_bash.png new file mode 100644 index 0000000..d81f91c Binary files /dev/null and b/assets/voxygen/element/skills/hammer/vigorous_bash.png differ diff --git a/assets/voxygen/element/skills/hammer/wide_wallop.png b/assets/voxygen/element/skills/hammer/wide_wallop.png new file mode 100644 index 0000000..0bed3f3 Binary files /dev/null and b/assets/voxygen/element/skills/hammer/wide_wallop.png differ diff --git a/assets/voxygen/element/skills/heal_0.png b/assets/voxygen/element/skills/heal_0.png new file mode 100644 index 0000000..eae67fc Binary files /dev/null and b/assets/voxygen/element/skills/heal_0.png differ diff --git a/assets/voxygen/element/skills/heal_aoe.png b/assets/voxygen/element/skills/heal_aoe.png new file mode 100644 index 0000000..846b765 Binary files /dev/null and b/assets/voxygen/element/skills/heal_aoe.png differ diff --git a/assets/voxygen/element/skills/heal_bomb.png b/assets/voxygen/element/skills/heal_bomb.png new file mode 100644 index 0000000..60a7e42 Binary files /dev/null and b/assets/voxygen/element/skills/heal_bomb.png differ diff --git a/assets/voxygen/element/skills/lifesteal.png b/assets/voxygen/element/skills/lifesteal.png new file mode 100644 index 0000000..2426f97 Binary files /dev/null and b/assets/voxygen/element/skills/lifesteal.png differ diff --git a/assets/voxygen/element/skills/music.png b/assets/voxygen/element/skills/music.png new file mode 100644 index 0000000..ca04374 Binary files /dev/null and b/assets/voxygen/element/skills/music.png differ diff --git a/assets/voxygen/element/skills/pickaxe.png b/assets/voxygen/element/skills/pickaxe.png new file mode 100644 index 0000000..25ea916 Binary files /dev/null and b/assets/voxygen/element/skills/pickaxe.png differ diff --git a/assets/voxygen/element/skills/pickaxe_gemgain.png b/assets/voxygen/element/skills/pickaxe_gemgain.png new file mode 100644 index 0000000..4b3bdf6 Binary files /dev/null and b/assets/voxygen/element/skills/pickaxe_gemgain.png differ diff --git a/assets/voxygen/element/skills/pickaxe_oregain.png b/assets/voxygen/element/skills/pickaxe_oregain.png new file mode 100644 index 0000000..be9dfa3 Binary files /dev/null and b/assets/voxygen/element/skills/pickaxe_oregain.png differ diff --git a/assets/voxygen/element/skills/pickaxe_speed.png b/assets/voxygen/element/skills/pickaxe_speed.png new file mode 100644 index 0000000..0e181d1 Binary files /dev/null and b/assets/voxygen/element/skills/pickaxe_speed.png differ diff --git a/assets/voxygen/element/skills/sceptre_protection.png b/assets/voxygen/element/skills/sceptre_protection.png new file mode 100644 index 0000000..a97c7e5 Binary files /dev/null and b/assets/voxygen/element/skills/sceptre_protection.png differ diff --git a/assets/voxygen/element/skills/skill_bow_jump_burst.png b/assets/voxygen/element/skills/skill_bow_jump_burst.png new file mode 100644 index 0000000..a480975 Binary files /dev/null and b/assets/voxygen/element/skills/skill_bow_jump_burst.png differ diff --git a/assets/voxygen/element/skills/skill_fire_aoe.png b/assets/voxygen/element/skills/skill_fire_aoe.png new file mode 100644 index 0000000..004c017 Binary files /dev/null and b/assets/voxygen/element/skills/skill_fire_aoe.png differ diff --git a/assets/voxygen/element/skills/skill_flamethrower.png b/assets/voxygen/element/skills/skill_flamethrower.png new file mode 100644 index 0000000..8a66a3d Binary files /dev/null and b/assets/voxygen/element/skills/skill_flamethrower.png differ diff --git a/assets/voxygen/element/skills/skill_slice_2.png b/assets/voxygen/element/skills/skill_slice_2.png new file mode 100644 index 0000000..d44f228 Binary files /dev/null and b/assets/voxygen/element/skills/skill_slice_2.png differ diff --git a/assets/voxygen/element/skills/skilltree/bg.png b/assets/voxygen/element/skills/skilltree/bg.png new file mode 100644 index 0000000..4b72ee3 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/bg.png differ diff --git a/assets/voxygen/element/skills/skilltree/buff_amount.png b/assets/voxygen/element/skills/skilltree/buff_amount.png new file mode 100644 index 0000000..5edbfb0 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/buff_amount.png differ diff --git a/assets/voxygen/element/skills/skilltree/buff_combo.png b/assets/voxygen/element/skills/skilltree/buff_combo.png new file mode 100644 index 0000000..fd43952 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/buff_combo.png differ diff --git a/assets/voxygen/element/skills/skilltree/buff_cost.png b/assets/voxygen/element/skills/skilltree/buff_cost.png new file mode 100644 index 0000000..50b2ae6 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/buff_cost.png differ diff --git a/assets/voxygen/element/skills/skilltree/buff_damage.png b/assets/voxygen/element/skills/skilltree/buff_damage.png new file mode 100644 index 0000000..8dee51a Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/buff_damage.png differ diff --git a/assets/voxygen/element/skills/skilltree/buff_distance.png b/assets/voxygen/element/skills/skilltree/buff_distance.png new file mode 100644 index 0000000..faacbcb Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/buff_distance.png differ diff --git a/assets/voxygen/element/skills/skilltree/buff_duration.png b/assets/voxygen/element/skills/skilltree/buff_duration.png new file mode 100644 index 0000000..3bb88b7 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/buff_duration.png differ diff --git a/assets/voxygen/element/skills/skilltree/buff_energy_drain.png b/assets/voxygen/element/skills/skilltree/buff_energy_drain.png new file mode 100644 index 0000000..1d75be7 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/buff_energy_drain.png differ diff --git a/assets/voxygen/element/skills/skilltree/buff_energy_regen.png b/assets/voxygen/element/skills/skilltree/buff_energy_regen.png new file mode 100644 index 0000000..fc09f9e Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/buff_energy_regen.png differ diff --git a/assets/voxygen/element/skills/skilltree/buff_explosion.png b/assets/voxygen/element/skills/skilltree/buff_explosion.png new file mode 100644 index 0000000..55b7efc Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/buff_explosion.png differ diff --git a/assets/voxygen/element/skills/skilltree/buff_heal.png b/assets/voxygen/element/skills/skilltree/buff_heal.png new file mode 100644 index 0000000..4de0ec7 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/buff_heal.png differ diff --git a/assets/voxygen/element/skills/skilltree/buff_helicopter.png b/assets/voxygen/element/skills/skilltree/buff_helicopter.png new file mode 100644 index 0000000..b919d6f Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/buff_helicopter.png differ diff --git a/assets/voxygen/element/skills/skilltree/buff_infinite.png b/assets/voxygen/element/skills/skilltree/buff_infinite.png new file mode 100644 index 0000000..4d53ea1 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/buff_infinite.png differ diff --git a/assets/voxygen/element/skills/skilltree/buff_knockback.png b/assets/voxygen/element/skills/skilltree/buff_knockback.png new file mode 100644 index 0000000..748f573 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/buff_knockback.png differ diff --git a/assets/voxygen/element/skills/skilltree/buff_lifesteal.png b/assets/voxygen/element/skills/skilltree/buff_lifesteal.png new file mode 100644 index 0000000..fdeda03 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/buff_lifesteal.png differ diff --git a/assets/voxygen/element/skills/skilltree/buff_projectile_speed.png b/assets/voxygen/element/skills/skilltree/buff_projectile_speed.png new file mode 100644 index 0000000..570fefd Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/buff_projectile_speed.png differ diff --git a/assets/voxygen/element/skills/skilltree/buff_radius.png b/assets/voxygen/element/skills/skilltree/buff_radius.png new file mode 100644 index 0000000..943c5fc Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/buff_radius.png differ diff --git a/assets/voxygen/element/skills/skilltree/buff_speed.png b/assets/voxygen/element/skills/skilltree/buff_speed.png new file mode 100644 index 0000000..b7e57da Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/buff_speed.png differ diff --git a/assets/voxygen/element/skills/skilltree/debuff_amount.png b/assets/voxygen/element/skills/skilltree/debuff_amount.png new file mode 100644 index 0000000..7d25ad8 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/debuff_amount.png differ diff --git a/assets/voxygen/element/skills/skilltree/debuff_combo.png b/assets/voxygen/element/skills/skilltree/debuff_combo.png new file mode 100644 index 0000000..56c000c Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/debuff_combo.png differ diff --git a/assets/voxygen/element/skills/skilltree/debuff_cost.png b/assets/voxygen/element/skills/skilltree/debuff_cost.png new file mode 100644 index 0000000..159f5e2 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/debuff_cost.png differ diff --git a/assets/voxygen/element/skills/skilltree/debuff_damage.png b/assets/voxygen/element/skills/skilltree/debuff_damage.png new file mode 100644 index 0000000..c73f6bc Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/debuff_damage.png differ diff --git a/assets/voxygen/element/skills/skilltree/debuff_distance.png b/assets/voxygen/element/skills/skilltree/debuff_distance.png new file mode 100644 index 0000000..8bba29d Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/debuff_distance.png differ diff --git a/assets/voxygen/element/skills/skilltree/debuff_duration.png b/assets/voxygen/element/skills/skilltree/debuff_duration.png new file mode 100644 index 0000000..1604ad5 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/debuff_duration.png differ diff --git a/assets/voxygen/element/skills/skilltree/debuff_energy_drain.png b/assets/voxygen/element/skills/skilltree/debuff_energy_drain.png new file mode 100644 index 0000000..135e8db Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/debuff_energy_drain.png differ diff --git a/assets/voxygen/element/skills/skilltree/debuff_energy_regen.png b/assets/voxygen/element/skills/skilltree/debuff_energy_regen.png new file mode 100644 index 0000000..e0535e1 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/debuff_energy_regen.png differ diff --git a/assets/voxygen/element/skills/skilltree/debuff_explosion.png b/assets/voxygen/element/skills/skilltree/debuff_explosion.png new file mode 100644 index 0000000..aff2768 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/debuff_explosion.png differ diff --git a/assets/voxygen/element/skills/skilltree/debuff_heal.png b/assets/voxygen/element/skills/skilltree/debuff_heal.png new file mode 100644 index 0000000..194df03 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/debuff_heal.png differ diff --git a/assets/voxygen/element/skills/skilltree/debuff_helicopter.png b/assets/voxygen/element/skills/skilltree/debuff_helicopter.png new file mode 100644 index 0000000..4ae6cd5 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/debuff_helicopter.png differ diff --git a/assets/voxygen/element/skills/skilltree/debuff_infinite.png b/assets/voxygen/element/skills/skilltree/debuff_infinite.png new file mode 100644 index 0000000..ff20841 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/debuff_infinite.png differ diff --git a/assets/voxygen/element/skills/skilltree/debuff_knockback.png b/assets/voxygen/element/skills/skilltree/debuff_knockback.png new file mode 100644 index 0000000..3c247b5 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/debuff_knockback.png differ diff --git a/assets/voxygen/element/skills/skilltree/debuff_lifesteal.png b/assets/voxygen/element/skills/skilltree/debuff_lifesteal.png new file mode 100644 index 0000000..ee1db4e Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/debuff_lifesteal.png differ diff --git a/assets/voxygen/element/skills/skilltree/debuff_projectile_speed.png b/assets/voxygen/element/skills/skilltree/debuff_projectile_speed.png new file mode 100644 index 0000000..2151a4e Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/debuff_projectile_speed.png differ diff --git a/assets/voxygen/element/skills/skilltree/debuff_radius.png b/assets/voxygen/element/skills/skilltree/debuff_radius.png new file mode 100644 index 0000000..458cf02 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/debuff_radius.png differ diff --git a/assets/voxygen/element/skills/skilltree/debuff_speed.png b/assets/voxygen/element/skills/skilltree/debuff_speed.png new file mode 100644 index 0000000..b5f041a Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/debuff_speed.png differ diff --git a/assets/voxygen/element/skills/skilltree/energy_plus.png b/assets/voxygen/element/skills/skilltree/energy_plus.png new file mode 100644 index 0000000..6c23de2 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/energy_plus.png differ diff --git a/assets/voxygen/element/skills/skilltree/heal_amount.png b/assets/voxygen/element/skills/skilltree/heal_amount.png new file mode 100644 index 0000000..3c8008b Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/heal_amount.png differ diff --git a/assets/voxygen/element/skills/skilltree/heal_combo.png b/assets/voxygen/element/skills/skilltree/heal_combo.png new file mode 100644 index 0000000..26d72ee Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/heal_combo.png differ diff --git a/assets/voxygen/element/skills/skilltree/heal_cost.png b/assets/voxygen/element/skills/skilltree/heal_cost.png new file mode 100644 index 0000000..2eae117 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/heal_cost.png differ diff --git a/assets/voxygen/element/skills/skilltree/heal_damage.png b/assets/voxygen/element/skills/skilltree/heal_damage.png new file mode 100644 index 0000000..fead298 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/heal_damage.png differ diff --git a/assets/voxygen/element/skills/skilltree/heal_distance.png b/assets/voxygen/element/skills/skilltree/heal_distance.png new file mode 100644 index 0000000..7c0e5e5 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/heal_distance.png differ diff --git a/assets/voxygen/element/skills/skilltree/heal_duration.png b/assets/voxygen/element/skills/skilltree/heal_duration.png new file mode 100644 index 0000000..4d00688 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/heal_duration.png differ diff --git a/assets/voxygen/element/skills/skilltree/heal_energy_drain.png b/assets/voxygen/element/skills/skilltree/heal_energy_drain.png new file mode 100644 index 0000000..c1fcff5 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/heal_energy_drain.png differ diff --git a/assets/voxygen/element/skills/skilltree/heal_energy_regen.png b/assets/voxygen/element/skills/skilltree/heal_energy_regen.png new file mode 100644 index 0000000..d8e8140 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/heal_energy_regen.png differ diff --git a/assets/voxygen/element/skills/skilltree/heal_explosion.png b/assets/voxygen/element/skills/skilltree/heal_explosion.png new file mode 100644 index 0000000..6381ec0 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/heal_explosion.png differ diff --git a/assets/voxygen/element/skills/skilltree/heal_heal.png b/assets/voxygen/element/skills/skilltree/heal_heal.png new file mode 100644 index 0000000..0c739f8 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/heal_heal.png differ diff --git a/assets/voxygen/element/skills/skilltree/heal_helicopter.png b/assets/voxygen/element/skills/skilltree/heal_helicopter.png new file mode 100644 index 0000000..269e7e6 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/heal_helicopter.png differ diff --git a/assets/voxygen/element/skills/skilltree/heal_infinite.png b/assets/voxygen/element/skills/skilltree/heal_infinite.png new file mode 100644 index 0000000..bb104fc Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/heal_infinite.png differ diff --git a/assets/voxygen/element/skills/skilltree/heal_knockback.png b/assets/voxygen/element/skills/skilltree/heal_knockback.png new file mode 100644 index 0000000..6a4fd2f Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/heal_knockback.png differ diff --git a/assets/voxygen/element/skills/skilltree/heal_lifesteal.png b/assets/voxygen/element/skills/skilltree/heal_lifesteal.png new file mode 100644 index 0000000..a6087eb Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/heal_lifesteal.png differ diff --git a/assets/voxygen/element/skills/skilltree/heal_projectile_speed.png b/assets/voxygen/element/skills/skilltree/heal_projectile_speed.png new file mode 100644 index 0000000..09224ab Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/heal_projectile_speed.png differ diff --git a/assets/voxygen/element/skills/skilltree/heal_radius.png b/assets/voxygen/element/skills/skilltree/heal_radius.png new file mode 100644 index 0000000..b5e67cd Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/heal_radius.png differ diff --git a/assets/voxygen/element/skills/skilltree/heal_speed.png b/assets/voxygen/element/skills/skilltree/heal_speed.png new file mode 100644 index 0000000..f5d316e Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/heal_speed.png differ diff --git a/assets/voxygen/element/skills/skilltree/health_plus.png b/assets/voxygen/element/skills/skilltree/health_plus.png new file mode 100644 index 0000000..06b621c Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/health_plus.png differ diff --git a/assets/voxygen/element/skills/skilltree/magic_amount.png b/assets/voxygen/element/skills/skilltree/magic_amount.png new file mode 100644 index 0000000..dcd3177 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/magic_amount.png differ diff --git a/assets/voxygen/element/skills/skilltree/magic_combo.png b/assets/voxygen/element/skills/skilltree/magic_combo.png new file mode 100644 index 0000000..e633de2 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/magic_combo.png differ diff --git a/assets/voxygen/element/skills/skilltree/magic_cost.png b/assets/voxygen/element/skills/skilltree/magic_cost.png new file mode 100644 index 0000000..b63237c Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/magic_cost.png differ diff --git a/assets/voxygen/element/skills/skilltree/magic_damage.png b/assets/voxygen/element/skills/skilltree/magic_damage.png new file mode 100644 index 0000000..60f898b Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/magic_damage.png differ diff --git a/assets/voxygen/element/skills/skilltree/magic_distance.png b/assets/voxygen/element/skills/skilltree/magic_distance.png new file mode 100644 index 0000000..7bd902a Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/magic_distance.png differ diff --git a/assets/voxygen/element/skills/skilltree/magic_duration.png b/assets/voxygen/element/skills/skilltree/magic_duration.png new file mode 100644 index 0000000..55585f5 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/magic_duration.png differ diff --git a/assets/voxygen/element/skills/skilltree/magic_energy_drain.png b/assets/voxygen/element/skills/skilltree/magic_energy_drain.png new file mode 100644 index 0000000..88aaf75 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/magic_energy_drain.png differ diff --git a/assets/voxygen/element/skills/skilltree/magic_energy_regen.png b/assets/voxygen/element/skills/skilltree/magic_energy_regen.png new file mode 100644 index 0000000..f2da4ea Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/magic_energy_regen.png differ diff --git a/assets/voxygen/element/skills/skilltree/magic_explosion.png b/assets/voxygen/element/skills/skilltree/magic_explosion.png new file mode 100644 index 0000000..72e4c84 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/magic_explosion.png differ diff --git a/assets/voxygen/element/skills/skilltree/magic_heal.png b/assets/voxygen/element/skills/skilltree/magic_heal.png new file mode 100644 index 0000000..b4b504e Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/magic_heal.png differ diff --git a/assets/voxygen/element/skills/skilltree/magic_helicopter.png b/assets/voxygen/element/skills/skilltree/magic_helicopter.png new file mode 100644 index 0000000..adb63b3 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/magic_helicopter.png differ diff --git a/assets/voxygen/element/skills/skilltree/magic_infinite.png b/assets/voxygen/element/skills/skilltree/magic_infinite.png new file mode 100644 index 0000000..b26cfa1 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/magic_infinite.png differ diff --git a/assets/voxygen/element/skills/skilltree/magic_knockback.png b/assets/voxygen/element/skills/skilltree/magic_knockback.png new file mode 100644 index 0000000..2effd1c Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/magic_knockback.png differ diff --git a/assets/voxygen/element/skills/skilltree/magic_lifesteal.png b/assets/voxygen/element/skills/skilltree/magic_lifesteal.png new file mode 100644 index 0000000..8575f1f Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/magic_lifesteal.png differ diff --git a/assets/voxygen/element/skills/skilltree/magic_projectile_speed.png b/assets/voxygen/element/skills/skilltree/magic_projectile_speed.png new file mode 100644 index 0000000..6566601 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/magic_projectile_speed.png differ diff --git a/assets/voxygen/element/skills/skilltree/magic_radius.png b/assets/voxygen/element/skills/skilltree/magic_radius.png new file mode 100644 index 0000000..f31b00c Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/magic_radius.png differ diff --git a/assets/voxygen/element/skills/skilltree/magic_speed.png b/assets/voxygen/element/skills/skilltree/magic_speed.png new file mode 100644 index 0000000..f191bec Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/magic_speed.png differ diff --git a/assets/voxygen/element/skills/skilltree/physical_amount.png b/assets/voxygen/element/skills/skilltree/physical_amount.png new file mode 100644 index 0000000..cc085c3 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/physical_amount.png differ diff --git a/assets/voxygen/element/skills/skilltree/physical_combo.png b/assets/voxygen/element/skills/skilltree/physical_combo.png new file mode 100644 index 0000000..3884fc4 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/physical_combo.png differ diff --git a/assets/voxygen/element/skills/skilltree/physical_cost.png b/assets/voxygen/element/skills/skilltree/physical_cost.png new file mode 100644 index 0000000..9a8642e Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/physical_cost.png differ diff --git a/assets/voxygen/element/skills/skilltree/physical_damage.png b/assets/voxygen/element/skills/skilltree/physical_damage.png new file mode 100644 index 0000000..ae737af Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/physical_damage.png differ diff --git a/assets/voxygen/element/skills/skilltree/physical_distance.png b/assets/voxygen/element/skills/skilltree/physical_distance.png new file mode 100644 index 0000000..1677c87 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/physical_distance.png differ diff --git a/assets/voxygen/element/skills/skilltree/physical_duration.png b/assets/voxygen/element/skills/skilltree/physical_duration.png new file mode 100644 index 0000000..244a8eb Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/physical_duration.png differ diff --git a/assets/voxygen/element/skills/skilltree/physical_energy_drain.png b/assets/voxygen/element/skills/skilltree/physical_energy_drain.png new file mode 100644 index 0000000..4dda706 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/physical_energy_drain.png differ diff --git a/assets/voxygen/element/skills/skilltree/physical_energy_regen.png b/assets/voxygen/element/skills/skilltree/physical_energy_regen.png new file mode 100644 index 0000000..05342d8 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/physical_energy_regen.png differ diff --git a/assets/voxygen/element/skills/skilltree/physical_explosion.png b/assets/voxygen/element/skills/skilltree/physical_explosion.png new file mode 100644 index 0000000..df2d29e Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/physical_explosion.png differ diff --git a/assets/voxygen/element/skills/skilltree/physical_heal.png b/assets/voxygen/element/skills/skilltree/physical_heal.png new file mode 100644 index 0000000..c813e4f Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/physical_heal.png differ diff --git a/assets/voxygen/element/skills/skilltree/physical_helicopter.png b/assets/voxygen/element/skills/skilltree/physical_helicopter.png new file mode 100644 index 0000000..ce59f6c Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/physical_helicopter.png differ diff --git a/assets/voxygen/element/skills/skilltree/physical_infinite.png b/assets/voxygen/element/skills/skilltree/physical_infinite.png new file mode 100644 index 0000000..666e3cd Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/physical_infinite.png differ diff --git a/assets/voxygen/element/skills/skilltree/physical_knockback.png b/assets/voxygen/element/skills/skilltree/physical_knockback.png new file mode 100644 index 0000000..fc0f3e3 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/physical_knockback.png differ diff --git a/assets/voxygen/element/skills/skilltree/physical_lifesteal.png b/assets/voxygen/element/skills/skilltree/physical_lifesteal.png new file mode 100644 index 0000000..4986d1a Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/physical_lifesteal.png differ diff --git a/assets/voxygen/element/skills/skilltree/physical_projectile_speed.png b/assets/voxygen/element/skills/skilltree/physical_projectile_speed.png new file mode 100644 index 0000000..d7e64eb Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/physical_projectile_speed.png differ diff --git a/assets/voxygen/element/skills/skilltree/physical_radius.png b/assets/voxygen/element/skills/skilltree/physical_radius.png new file mode 100644 index 0000000..5c9ac99 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/physical_radius.png differ diff --git a/assets/voxygen/element/skills/skilltree/physical_speed.png b/assets/voxygen/element/skills/skilltree/physical_speed.png new file mode 100644 index 0000000..d2c6e83 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/physical_speed.png differ diff --git a/assets/voxygen/element/skills/skilltree/skill_climbing.png b/assets/voxygen/element/skills/skilltree/skill_climbing.png new file mode 100644 index 0000000..06d1b43 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/skill_climbing.png differ diff --git a/assets/voxygen/element/skills/skilltree/skill_dodge.png b/assets/voxygen/element/skills/skilltree/skill_dodge.png new file mode 100644 index 0000000..7259130 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/skill_dodge.png differ diff --git a/assets/voxygen/element/skills/skilltree/skill_swim.png b/assets/voxygen/element/skills/skilltree/skill_swim.png new file mode 100644 index 0000000..0196fca Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/skill_swim.png differ diff --git a/assets/voxygen/element/skills/skilltree/unlock_axe.png b/assets/voxygen/element/skills/skilltree/unlock_axe.png new file mode 100644 index 0000000..4c9f5c9 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/unlock_axe.png differ diff --git a/assets/voxygen/element/skills/skilltree/unlock_bow.png b/assets/voxygen/element/skills/skilltree/unlock_bow.png new file mode 100644 index 0000000..e514c49 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/unlock_bow.png differ diff --git a/assets/voxygen/element/skills/skilltree/unlock_hammer.png b/assets/voxygen/element/skills/skilltree/unlock_hammer.png new file mode 100644 index 0000000..b9dfa08 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/unlock_hammer.png differ diff --git a/assets/voxygen/element/skills/skilltree/unlock_sceptre.png b/assets/voxygen/element/skills/skilltree/unlock_sceptre.png new file mode 100644 index 0000000..61a74f5 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/unlock_sceptre.png differ diff --git a/assets/voxygen/element/skills/skilltree/unlock_staff-0.png b/assets/voxygen/element/skills/skilltree/unlock_staff-0.png new file mode 100644 index 0000000..f1bf12e Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/unlock_staff-0.png differ diff --git a/assets/voxygen/element/skills/skilltree/unlock_sword.png b/assets/voxygen/element/skills/skilltree/unlock_sword.png new file mode 100644 index 0000000..4d1184e Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/unlock_sword.png differ diff --git a/assets/voxygen/element/skills/skilltree/utility_amount.png b/assets/voxygen/element/skills/skilltree/utility_amount.png new file mode 100644 index 0000000..e3335f0 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/utility_amount.png differ diff --git a/assets/voxygen/element/skills/skilltree/utility_combo.png b/assets/voxygen/element/skills/skilltree/utility_combo.png new file mode 100644 index 0000000..bacdbe1 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/utility_combo.png differ diff --git a/assets/voxygen/element/skills/skilltree/utility_cost.png b/assets/voxygen/element/skills/skilltree/utility_cost.png new file mode 100644 index 0000000..c0e3b98 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/utility_cost.png differ diff --git a/assets/voxygen/element/skills/skilltree/utility_damage.png b/assets/voxygen/element/skills/skilltree/utility_damage.png new file mode 100644 index 0000000..b9a5f7c Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/utility_damage.png differ diff --git a/assets/voxygen/element/skills/skilltree/utility_distance.png b/assets/voxygen/element/skills/skilltree/utility_distance.png new file mode 100644 index 0000000..45f09e5 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/utility_distance.png differ diff --git a/assets/voxygen/element/skills/skilltree/utility_duration.png b/assets/voxygen/element/skills/skilltree/utility_duration.png new file mode 100644 index 0000000..9bf7c61 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/utility_duration.png differ diff --git a/assets/voxygen/element/skills/skilltree/utility_energy_drain.png b/assets/voxygen/element/skills/skilltree/utility_energy_drain.png new file mode 100644 index 0000000..84f8403 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/utility_energy_drain.png differ diff --git a/assets/voxygen/element/skills/skilltree/utility_energy_regen.png b/assets/voxygen/element/skills/skilltree/utility_energy_regen.png new file mode 100644 index 0000000..f3555ee Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/utility_energy_regen.png differ diff --git a/assets/voxygen/element/skills/skilltree/utility_explosion.png b/assets/voxygen/element/skills/skilltree/utility_explosion.png new file mode 100644 index 0000000..dcf90b7 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/utility_explosion.png differ diff --git a/assets/voxygen/element/skills/skilltree/utility_heal.png b/assets/voxygen/element/skills/skilltree/utility_heal.png new file mode 100644 index 0000000..27609d3 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/utility_heal.png differ diff --git a/assets/voxygen/element/skills/skilltree/utility_helicopter.png b/assets/voxygen/element/skills/skilltree/utility_helicopter.png new file mode 100644 index 0000000..ac746ee Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/utility_helicopter.png differ diff --git a/assets/voxygen/element/skills/skilltree/utility_infinite.png b/assets/voxygen/element/skills/skilltree/utility_infinite.png new file mode 100644 index 0000000..80628d5 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/utility_infinite.png differ diff --git a/assets/voxygen/element/skills/skilltree/utility_knockback.png b/assets/voxygen/element/skills/skilltree/utility_knockback.png new file mode 100644 index 0000000..83dc338 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/utility_knockback.png differ diff --git a/assets/voxygen/element/skills/skilltree/utility_lifesteal.png b/assets/voxygen/element/skills/skilltree/utility_lifesteal.png new file mode 100644 index 0000000..36742ad Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/utility_lifesteal.png differ diff --git a/assets/voxygen/element/skills/skilltree/utility_projectile_speed.png b/assets/voxygen/element/skills/skilltree/utility_projectile_speed.png new file mode 100644 index 0000000..b30f31d Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/utility_projectile_speed.png differ diff --git a/assets/voxygen/element/skills/skilltree/utility_radius.png b/assets/voxygen/element/skills/skilltree/utility_radius.png new file mode 100644 index 0000000..1aa8515 Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/utility_radius.png differ diff --git a/assets/voxygen/element/skills/skilltree/utility_speed.png b/assets/voxygen/element/skills/skilltree/utility_speed.png new file mode 100644 index 0000000..5b706ca Binary files /dev/null and b/assets/voxygen/element/skills/skilltree/utility_speed.png differ diff --git a/assets/voxygen/element/skills/snake.png b/assets/voxygen/element/skills/snake.png new file mode 100644 index 0000000..745ca3c Binary files /dev/null and b/assets/voxygen/element/skills/snake.png differ diff --git a/assets/voxygen/element/skills/snake_green.png b/assets/voxygen/element/skills/snake_green.png new file mode 100644 index 0000000..733e832 Binary files /dev/null and b/assets/voxygen/element/skills/snake_green.png differ diff --git a/assets/voxygen/element/skills/staff_m1.png b/assets/voxygen/element/skills/staff_m1.png new file mode 100644 index 0000000..393fdd9 Binary files /dev/null and b/assets/voxygen/element/skills/staff_m1.png differ diff --git a/assets/voxygen/element/skills/staff_m2.png b/assets/voxygen/element/skills/staff_m2.png new file mode 100644 index 0000000..7998600 Binary files /dev/null and b/assets/voxygen/element/skills/staff_m2.png differ diff --git a/assets/voxygen/element/skills/sword/agile_cascade.png b/assets/voxygen/element/skills/sword/agile_cascade.png new file mode 100644 index 0000000..29704a7 Binary files /dev/null and b/assets/voxygen/element/skills/sword/agile_cascade.png differ diff --git a/assets/voxygen/element/skills/sword/agile_crescent_slash.png b/assets/voxygen/element/skills/sword/agile_crescent_slash.png new file mode 100644 index 0000000..bfcecf8 Binary files /dev/null and b/assets/voxygen/element/skills/sword/agile_crescent_slash.png differ diff --git a/assets/voxygen/element/skills/sword/agile_cross_cut.png b/assets/voxygen/element/skills/sword/agile_cross_cut.png new file mode 100644 index 0000000..f6c6485 Binary files /dev/null and b/assets/voxygen/element/skills/sword/agile_cross_cut.png differ diff --git a/assets/voxygen/element/skills/sword/agile_dancing_edge.png b/assets/voxygen/element/skills/sword/agile_dancing_edge.png new file mode 100644 index 0000000..2eee08a Binary files /dev/null and b/assets/voxygen/element/skills/sword/agile_dancing_edge.png differ diff --git a/assets/voxygen/element/skills/sword/agile_double_slash.png b/assets/voxygen/element/skills/sword/agile_double_slash.png new file mode 100644 index 0000000..5bbdc2f Binary files /dev/null and b/assets/voxygen/element/skills/sword/agile_double_slash.png differ diff --git a/assets/voxygen/element/skills/sword/agile_feint.png b/assets/voxygen/element/skills/sword/agile_feint.png new file mode 100644 index 0000000..604c2e8 Binary files /dev/null and b/assets/voxygen/element/skills/sword/agile_feint.png differ diff --git a/assets/voxygen/element/skills/sword/agile_fell_strike.png b/assets/voxygen/element/skills/sword/agile_fell_strike.png new file mode 100644 index 0000000..ab169dd Binary files /dev/null and b/assets/voxygen/element/skills/sword/agile_fell_strike.png differ diff --git a/assets/voxygen/element/skills/sword/agile_flurry.png b/assets/voxygen/element/skills/sword/agile_flurry.png new file mode 100644 index 0000000..e0a6f49 Binary files /dev/null and b/assets/voxygen/element/skills/sword/agile_flurry.png differ diff --git a/assets/voxygen/element/skills/sword/agile_hundred_cuts.png b/assets/voxygen/element/skills/sword/agile_hundred_cuts.png new file mode 100644 index 0000000..9a213a1 Binary files /dev/null and b/assets/voxygen/element/skills/sword/agile_hundred_cuts.png differ diff --git a/assets/voxygen/element/skills/sword/agile_perforate.png b/assets/voxygen/element/skills/sword/agile_perforate.png new file mode 100644 index 0000000..29c2f28 Binary files /dev/null and b/assets/voxygen/element/skills/sword/agile_perforate.png differ diff --git a/assets/voxygen/element/skills/sword/agile_quick_draw.png b/assets/voxygen/element/skills/sword/agile_quick_draw.png new file mode 100644 index 0000000..765e882 Binary files /dev/null and b/assets/voxygen/element/skills/sword/agile_quick_draw.png differ diff --git a/assets/voxygen/element/skills/sword/agile_skewer.png b/assets/voxygen/element/skills/sword/agile_skewer.png new file mode 100644 index 0000000..33fb8da Binary files /dev/null and b/assets/voxygen/element/skills/sword/agile_skewer.png differ diff --git a/assets/voxygen/element/skills/sword/agile_stance.png b/assets/voxygen/element/skills/sword/agile_stance.png new file mode 100644 index 0000000..5325652 Binary files /dev/null and b/assets/voxygen/element/skills/sword/agile_stance.png differ diff --git a/assets/voxygen/element/skills/sword/basic_cascade.png b/assets/voxygen/element/skills/sword/basic_cascade.png new file mode 100644 index 0000000..f93bbda Binary files /dev/null and b/assets/voxygen/element/skills/sword/basic_cascade.png differ diff --git a/assets/voxygen/element/skills/sword/basic_crescent_slash.png b/assets/voxygen/element/skills/sword/basic_crescent_slash.png new file mode 100644 index 0000000..db1da5e Binary files /dev/null and b/assets/voxygen/element/skills/sword/basic_crescent_slash.png differ diff --git a/assets/voxygen/element/skills/sword/basic_double_slash.png b/assets/voxygen/element/skills/sword/basic_double_slash.png new file mode 100644 index 0000000..a4f28f0 Binary files /dev/null and b/assets/voxygen/element/skills/sword/basic_double_slash.png differ diff --git a/assets/voxygen/element/skills/sword/basic_fell_strike.png b/assets/voxygen/element/skills/sword/basic_fell_strike.png new file mode 100644 index 0000000..2989f97 Binary files /dev/null and b/assets/voxygen/element/skills/sword/basic_fell_strike.png differ diff --git a/assets/voxygen/element/skills/sword/basic_mighty_strike.png b/assets/voxygen/element/skills/sword/basic_mighty_strike.png new file mode 100644 index 0000000..d753d3d Binary files /dev/null and b/assets/voxygen/element/skills/sword/basic_mighty_strike.png differ diff --git a/assets/voxygen/element/skills/sword/basic_skewer.png b/assets/voxygen/element/skills/sword/basic_skewer.png new file mode 100644 index 0000000..572aed9 Binary files /dev/null and b/assets/voxygen/element/skills/sword/basic_skewer.png differ diff --git a/assets/voxygen/element/skills/sword/basic_thrust.png b/assets/voxygen/element/skills/sword/basic_thrust.png new file mode 100644 index 0000000..1764c3a Binary files /dev/null and b/assets/voxygen/element/skills/sword/basic_thrust.png differ diff --git a/assets/voxygen/element/skills/sword/cascade.png b/assets/voxygen/element/skills/sword/cascade.png new file mode 100644 index 0000000..f93bbda Binary files /dev/null and b/assets/voxygen/element/skills/sword/cascade.png differ diff --git a/assets/voxygen/element/skills/sword/cleaving_blade_fever.png b/assets/voxygen/element/skills/sword/cleaving_blade_fever.png new file mode 100644 index 0000000..9c235f3 Binary files /dev/null and b/assets/voxygen/element/skills/sword/cleaving_blade_fever.png differ diff --git a/assets/voxygen/element/skills/sword/cleaving_bladestorm.png b/assets/voxygen/element/skills/sword/cleaving_bladestorm.png new file mode 100644 index 0000000..aa964b1 Binary files /dev/null and b/assets/voxygen/element/skills/sword/cleaving_bladestorm.png differ diff --git a/assets/voxygen/element/skills/sword/cleaving_cascade.png b/assets/voxygen/element/skills/sword/cleaving_cascade.png new file mode 100644 index 0000000..8077d6c Binary files /dev/null and b/assets/voxygen/element/skills/sword/cleaving_cascade.png differ diff --git a/assets/voxygen/element/skills/sword/cleaving_crescent_slash.png b/assets/voxygen/element/skills/sword/cleaving_crescent_slash.png new file mode 100644 index 0000000..60b45ff Binary files /dev/null and b/assets/voxygen/element/skills/sword/cleaving_crescent_slash.png differ diff --git a/assets/voxygen/element/skills/sword/cleaving_cross_cut.png b/assets/voxygen/element/skills/sword/cleaving_cross_cut.png new file mode 100644 index 0000000..8225951 Binary files /dev/null and b/assets/voxygen/element/skills/sword/cleaving_cross_cut.png differ diff --git a/assets/voxygen/element/skills/sword/cleaving_double_slash.png b/assets/voxygen/element/skills/sword/cleaving_double_slash.png new file mode 100644 index 0000000..b5417dc Binary files /dev/null and b/assets/voxygen/element/skills/sword/cleaving_double_slash.png differ diff --git a/assets/voxygen/element/skills/sword/cleaving_earth_splitter.png b/assets/voxygen/element/skills/sword/cleaving_earth_splitter.png new file mode 100644 index 0000000..1f3ec81 Binary files /dev/null and b/assets/voxygen/element/skills/sword/cleaving_earth_splitter.png differ diff --git a/assets/voxygen/element/skills/sword/cleaving_fell_strike.png b/assets/voxygen/element/skills/sword/cleaving_fell_strike.png new file mode 100644 index 0000000..5fa1f10 Binary files /dev/null and b/assets/voxygen/element/skills/sword/cleaving_fell_strike.png differ diff --git a/assets/voxygen/element/skills/sword/cleaving_skewer.png b/assets/voxygen/element/skills/sword/cleaving_skewer.png new file mode 100644 index 0000000..bbd8641 Binary files /dev/null and b/assets/voxygen/element/skills/sword/cleaving_skewer.png differ diff --git a/assets/voxygen/element/skills/sword/cleaving_sky_splitter.png b/assets/voxygen/element/skills/sword/cleaving_sky_splitter.png new file mode 100644 index 0000000..0ebf7ef Binary files /dev/null and b/assets/voxygen/element/skills/sword/cleaving_sky_splitter.png differ diff --git a/assets/voxygen/element/skills/sword/cleaving_spiral_slash.png b/assets/voxygen/element/skills/sword/cleaving_spiral_slash.png new file mode 100644 index 0000000..7bff541 Binary files /dev/null and b/assets/voxygen/element/skills/sword/cleaving_spiral_slash.png differ diff --git a/assets/voxygen/element/skills/sword/cleaving_stance.png b/assets/voxygen/element/skills/sword/cleaving_stance.png new file mode 100644 index 0000000..4d20580 Binary files /dev/null and b/assets/voxygen/element/skills/sword/cleaving_stance.png differ diff --git a/assets/voxygen/element/skills/sword/cleaving_whirlwind_slice.png b/assets/voxygen/element/skills/sword/cleaving_whirlwind_slice.png new file mode 100644 index 0000000..2532d2a Binary files /dev/null and b/assets/voxygen/element/skills/sword/cleaving_whirlwind_slice.png differ diff --git a/assets/voxygen/element/skills/sword/crescent_slash.png b/assets/voxygen/element/skills/sword/crescent_slash.png new file mode 100644 index 0000000..ab0ba1e Binary files /dev/null and b/assets/voxygen/element/skills/sword/crescent_slash.png differ diff --git a/assets/voxygen/element/skills/sword/crippling_bloody_gash.png b/assets/voxygen/element/skills/sword/crippling_bloody_gash.png new file mode 100644 index 0000000..4d822de Binary files /dev/null and b/assets/voxygen/element/skills/sword/crippling_bloody_gash.png differ diff --git a/assets/voxygen/element/skills/sword/crippling_cascade.png b/assets/voxygen/element/skills/sword/crippling_cascade.png new file mode 100644 index 0000000..fb1c2ce Binary files /dev/null and b/assets/voxygen/element/skills/sword/crippling_cascade.png differ diff --git a/assets/voxygen/element/skills/sword/crippling_crescent_slash.png b/assets/voxygen/element/skills/sword/crippling_crescent_slash.png new file mode 100644 index 0000000..f9de582 Binary files /dev/null and b/assets/voxygen/element/skills/sword/crippling_crescent_slash.png differ diff --git a/assets/voxygen/element/skills/sword/crippling_cross_cut.png b/assets/voxygen/element/skills/sword/crippling_cross_cut.png new file mode 100644 index 0000000..d57aa6d Binary files /dev/null and b/assets/voxygen/element/skills/sword/crippling_cross_cut.png differ diff --git a/assets/voxygen/element/skills/sword/crippling_deep_rend.png b/assets/voxygen/element/skills/sword/crippling_deep_rend.png new file mode 100644 index 0000000..fcdf7f0 Binary files /dev/null and b/assets/voxygen/element/skills/sword/crippling_deep_rend.png differ diff --git a/assets/voxygen/element/skills/sword/crippling_double_slash.png b/assets/voxygen/element/skills/sword/crippling_double_slash.png new file mode 100644 index 0000000..b36c4cf Binary files /dev/null and b/assets/voxygen/element/skills/sword/crippling_double_slash.png differ diff --git a/assets/voxygen/element/skills/sword/crippling_eviscerate.png b/assets/voxygen/element/skills/sword/crippling_eviscerate.png new file mode 100644 index 0000000..28d2b9f Binary files /dev/null and b/assets/voxygen/element/skills/sword/crippling_eviscerate.png differ diff --git a/assets/voxygen/element/skills/sword/crippling_fell_strike.png b/assets/voxygen/element/skills/sword/crippling_fell_strike.png new file mode 100644 index 0000000..d7edba4 Binary files /dev/null and b/assets/voxygen/element/skills/sword/crippling_fell_strike.png differ diff --git a/assets/voxygen/element/skills/sword/crippling_gouge.png b/assets/voxygen/element/skills/sword/crippling_gouge.png new file mode 100644 index 0000000..d773efb Binary files /dev/null and b/assets/voxygen/element/skills/sword/crippling_gouge.png differ diff --git a/assets/voxygen/element/skills/sword/crippling_hamstring.png b/assets/voxygen/element/skills/sword/crippling_hamstring.png new file mode 100644 index 0000000..97ab546 Binary files /dev/null and b/assets/voxygen/element/skills/sword/crippling_hamstring.png differ diff --git a/assets/voxygen/element/skills/sword/crippling_mutilate.png b/assets/voxygen/element/skills/sword/crippling_mutilate.png new file mode 100644 index 0000000..46086a3 Binary files /dev/null and b/assets/voxygen/element/skills/sword/crippling_mutilate.png differ diff --git a/assets/voxygen/element/skills/sword/crippling_skewer.png b/assets/voxygen/element/skills/sword/crippling_skewer.png new file mode 100644 index 0000000..bb9dbab Binary files /dev/null and b/assets/voxygen/element/skills/sword/crippling_skewer.png differ diff --git a/assets/voxygen/element/skills/sword/crippling_stance.png b/assets/voxygen/element/skills/sword/crippling_stance.png new file mode 100644 index 0000000..36789af Binary files /dev/null and b/assets/voxygen/element/skills/sword/crippling_stance.png differ diff --git a/assets/voxygen/element/skills/sword/cross_cut.png b/assets/voxygen/element/skills/sword/cross_cut.png new file mode 100644 index 0000000..9a03bbe Binary files /dev/null and b/assets/voxygen/element/skills/sword/cross_cut.png differ diff --git a/assets/voxygen/element/skills/sword/defensive_cascade.png b/assets/voxygen/element/skills/sword/defensive_cascade.png new file mode 100644 index 0000000..955ccbc Binary files /dev/null and b/assets/voxygen/element/skills/sword/defensive_cascade.png differ diff --git a/assets/voxygen/element/skills/sword/defensive_counter.png b/assets/voxygen/element/skills/sword/defensive_counter.png new file mode 100644 index 0000000..1d16a05 Binary files /dev/null and b/assets/voxygen/element/skills/sword/defensive_counter.png differ diff --git a/assets/voxygen/element/skills/sword/defensive_crescent_slash.png b/assets/voxygen/element/skills/sword/defensive_crescent_slash.png new file mode 100644 index 0000000..d4db158 Binary files /dev/null and b/assets/voxygen/element/skills/sword/defensive_crescent_slash.png differ diff --git a/assets/voxygen/element/skills/sword/defensive_cross_cut.png b/assets/voxygen/element/skills/sword/defensive_cross_cut.png new file mode 100644 index 0000000..cb0db8e Binary files /dev/null and b/assets/voxygen/element/skills/sword/defensive_cross_cut.png differ diff --git a/assets/voxygen/element/skills/sword/defensive_deflect.png b/assets/voxygen/element/skills/sword/defensive_deflect.png new file mode 100644 index 0000000..851a5ae Binary files /dev/null and b/assets/voxygen/element/skills/sword/defensive_deflect.png differ diff --git a/assets/voxygen/element/skills/sword/defensive_disengage.png b/assets/voxygen/element/skills/sword/defensive_disengage.png new file mode 100644 index 0000000..bc966ae Binary files /dev/null and b/assets/voxygen/element/skills/sword/defensive_disengage.png differ diff --git a/assets/voxygen/element/skills/sword/defensive_double_slash.png b/assets/voxygen/element/skills/sword/defensive_double_slash.png new file mode 100644 index 0000000..20e7f10 Binary files /dev/null and b/assets/voxygen/element/skills/sword/defensive_double_slash.png differ diff --git a/assets/voxygen/element/skills/sword/defensive_fell_strike.png b/assets/voxygen/element/skills/sword/defensive_fell_strike.png new file mode 100644 index 0000000..2b55423 Binary files /dev/null and b/assets/voxygen/element/skills/sword/defensive_fell_strike.png differ diff --git a/assets/voxygen/element/skills/sword/defensive_riposte.png b/assets/voxygen/element/skills/sword/defensive_riposte.png new file mode 100644 index 0000000..8671526 Binary files /dev/null and b/assets/voxygen/element/skills/sword/defensive_riposte.png differ diff --git a/assets/voxygen/element/skills/sword/defensive_skewer.png b/assets/voxygen/element/skills/sword/defensive_skewer.png new file mode 100644 index 0000000..0177942 Binary files /dev/null and b/assets/voxygen/element/skills/sword/defensive_skewer.png differ diff --git a/assets/voxygen/element/skills/sword/defensive_stalwart_sword.png b/assets/voxygen/element/skills/sword/defensive_stalwart_sword.png new file mode 100644 index 0000000..ca63fb0 Binary files /dev/null and b/assets/voxygen/element/skills/sword/defensive_stalwart_sword.png differ diff --git a/assets/voxygen/element/skills/sword/defensive_stance.png b/assets/voxygen/element/skills/sword/defensive_stance.png new file mode 100644 index 0000000..07c655a Binary files /dev/null and b/assets/voxygen/element/skills/sword/defensive_stance.png differ diff --git a/assets/voxygen/element/skills/sword/defensive_vital_jab.png b/assets/voxygen/element/skills/sword/defensive_vital_jab.png new file mode 100644 index 0000000..a822387 Binary files /dev/null and b/assets/voxygen/element/skills/sword/defensive_vital_jab.png differ diff --git a/assets/voxygen/element/skills/sword/double_slash.png b/assets/voxygen/element/skills/sword/double_slash.png new file mode 100644 index 0000000..d449e02 Binary files /dev/null and b/assets/voxygen/element/skills/sword/double_slash.png differ diff --git a/assets/voxygen/element/skills/sword/fell_strike.png b/assets/voxygen/element/skills/sword/fell_strike.png new file mode 100644 index 0000000..2989f97 Binary files /dev/null and b/assets/voxygen/element/skills/sword/fell_strike.png differ diff --git a/assets/voxygen/element/skills/sword/finisher.png b/assets/voxygen/element/skills/sword/finisher.png new file mode 100644 index 0000000..2083320 Binary files /dev/null and b/assets/voxygen/element/skills/sword/finisher.png differ diff --git a/assets/voxygen/element/skills/sword/heavy_cascade.png b/assets/voxygen/element/skills/sword/heavy_cascade.png new file mode 100644 index 0000000..1174ed9 Binary files /dev/null and b/assets/voxygen/element/skills/sword/heavy_cascade.png differ diff --git a/assets/voxygen/element/skills/sword/heavy_crescent_slash.png b/assets/voxygen/element/skills/sword/heavy_crescent_slash.png new file mode 100644 index 0000000..d5837db Binary files /dev/null and b/assets/voxygen/element/skills/sword/heavy_crescent_slash.png differ diff --git a/assets/voxygen/element/skills/sword/heavy_cross_cut.png b/assets/voxygen/element/skills/sword/heavy_cross_cut.png new file mode 100644 index 0000000..f76a753 Binary files /dev/null and b/assets/voxygen/element/skills/sword/heavy_cross_cut.png differ diff --git a/assets/voxygen/element/skills/sword/heavy_double_slash.png b/assets/voxygen/element/skills/sword/heavy_double_slash.png new file mode 100644 index 0000000..513fe8c Binary files /dev/null and b/assets/voxygen/element/skills/sword/heavy_double_slash.png differ diff --git a/assets/voxygen/element/skills/sword/heavy_fell_strike.png b/assets/voxygen/element/skills/sword/heavy_fell_strike.png new file mode 100644 index 0000000..ad4ba22 Binary files /dev/null and b/assets/voxygen/element/skills/sword/heavy_fell_strike.png differ diff --git a/assets/voxygen/element/skills/sword/heavy_fortitude.png b/assets/voxygen/element/skills/sword/heavy_fortitude.png new file mode 100644 index 0000000..0af9f8e Binary files /dev/null and b/assets/voxygen/element/skills/sword/heavy_fortitude.png differ diff --git a/assets/voxygen/element/skills/sword/heavy_guillotine.png b/assets/voxygen/element/skills/sword/heavy_guillotine.png new file mode 100644 index 0000000..4d7cee7 Binary files /dev/null and b/assets/voxygen/element/skills/sword/heavy_guillotine.png differ diff --git a/assets/voxygen/element/skills/sword/heavy_pillar_thrust.png b/assets/voxygen/element/skills/sword/heavy_pillar_thrust.png new file mode 100644 index 0000000..a85ef98 Binary files /dev/null and b/assets/voxygen/element/skills/sword/heavy_pillar_thrust.png differ diff --git a/assets/voxygen/element/skills/sword/heavy_pommel_strike.png b/assets/voxygen/element/skills/sword/heavy_pommel_strike.png new file mode 100644 index 0000000..f380ba5 Binary files /dev/null and b/assets/voxygen/element/skills/sword/heavy_pommel_strike.png differ diff --git a/assets/voxygen/element/skills/sword/heavy_skewer.png b/assets/voxygen/element/skills/sword/heavy_skewer.png new file mode 100644 index 0000000..6a94c93 Binary files /dev/null and b/assets/voxygen/element/skills/sword/heavy_skewer.png differ diff --git a/assets/voxygen/element/skills/sword/heavy_slam.png b/assets/voxygen/element/skills/sword/heavy_slam.png new file mode 100644 index 0000000..6afc540 Binary files /dev/null and b/assets/voxygen/element/skills/sword/heavy_slam.png differ diff --git a/assets/voxygen/element/skills/sword/heavy_stance.png b/assets/voxygen/element/skills/sword/heavy_stance.png new file mode 100644 index 0000000..db3e05a Binary files /dev/null and b/assets/voxygen/element/skills/sword/heavy_stance.png differ diff --git a/assets/voxygen/element/skills/sword/heavy_sweep.png b/assets/voxygen/element/skills/sword/heavy_sweep.png new file mode 100644 index 0000000..7fc2bc8 Binary files /dev/null and b/assets/voxygen/element/skills/sword/heavy_sweep.png differ diff --git a/assets/voxygen/element/skills/sword/secondary_ability.png b/assets/voxygen/element/skills/sword/secondary_ability.png new file mode 100644 index 0000000..d62e0b9 Binary files /dev/null and b/assets/voxygen/element/skills/sword/secondary_ability.png differ diff --git a/assets/voxygen/element/skills/sword/skewer.png b/assets/voxygen/element/skills/sword/skewer.png new file mode 100644 index 0000000..572aed9 Binary files /dev/null and b/assets/voxygen/element/skills/sword/skewer.png differ diff --git a/assets/voxygen/element/ui/bag/backgrounds/back.png b/assets/voxygen/element/ui/bag/backgrounds/back.png new file mode 100644 index 0000000..5d7df54 Binary files /dev/null and b/assets/voxygen/element/ui/bag/backgrounds/back.png differ diff --git a/assets/voxygen/element/ui/bag/backgrounds/bag.png b/assets/voxygen/element/ui/bag/backgrounds/bag.png new file mode 100644 index 0000000..19a8ecc Binary files /dev/null and b/assets/voxygen/element/ui/bag/backgrounds/bag.png differ diff --git a/assets/voxygen/element/ui/bag/backgrounds/belt.png b/assets/voxygen/element/ui/bag/backgrounds/belt.png new file mode 100644 index 0000000..47a66c2 Binary files /dev/null and b/assets/voxygen/element/ui/bag/backgrounds/belt.png differ diff --git a/assets/voxygen/element/ui/bag/backgrounds/chest.png b/assets/voxygen/element/ui/bag/backgrounds/chest.png new file mode 100644 index 0000000..4ac5d90 Binary files /dev/null and b/assets/voxygen/element/ui/bag/backgrounds/chest.png differ diff --git a/assets/voxygen/element/ui/bag/backgrounds/feet.png b/assets/voxygen/element/ui/bag/backgrounds/feet.png new file mode 100644 index 0000000..b927095 Binary files /dev/null and b/assets/voxygen/element/ui/bag/backgrounds/feet.png differ diff --git a/assets/voxygen/element/ui/bag/backgrounds/glider.png b/assets/voxygen/element/ui/bag/backgrounds/glider.png new file mode 100644 index 0000000..16aaa4b Binary files /dev/null and b/assets/voxygen/element/ui/bag/backgrounds/glider.png differ diff --git a/assets/voxygen/element/ui/bag/backgrounds/hands.png b/assets/voxygen/element/ui/bag/backgrounds/hands.png new file mode 100644 index 0000000..87ad5b3 Binary files /dev/null and b/assets/voxygen/element/ui/bag/backgrounds/hands.png differ diff --git a/assets/voxygen/element/ui/bag/backgrounds/head.png b/assets/voxygen/element/ui/bag/backgrounds/head.png new file mode 100644 index 0000000..cd5b2fb Binary files /dev/null and b/assets/voxygen/element/ui/bag/backgrounds/head.png differ diff --git a/assets/voxygen/element/ui/bag/backgrounds/lantern.png b/assets/voxygen/element/ui/bag/backgrounds/lantern.png new file mode 100644 index 0000000..6b36f69 Binary files /dev/null and b/assets/voxygen/element/ui/bag/backgrounds/lantern.png differ diff --git a/assets/voxygen/element/ui/bag/backgrounds/legs.png b/assets/voxygen/element/ui/bag/backgrounds/legs.png new file mode 100644 index 0000000..585536e Binary files /dev/null and b/assets/voxygen/element/ui/bag/backgrounds/legs.png differ diff --git a/assets/voxygen/element/ui/bag/backgrounds/mainhand.png b/assets/voxygen/element/ui/bag/backgrounds/mainhand.png new file mode 100644 index 0000000..340d0e9 Binary files /dev/null and b/assets/voxygen/element/ui/bag/backgrounds/mainhand.png differ diff --git a/assets/voxygen/element/ui/bag/backgrounds/necklace.png b/assets/voxygen/element/ui/bag/backgrounds/necklace.png new file mode 100644 index 0000000..f408dcb Binary files /dev/null and b/assets/voxygen/element/ui/bag/backgrounds/necklace.png differ diff --git a/assets/voxygen/element/ui/bag/backgrounds/offhand.png b/assets/voxygen/element/ui/bag/backgrounds/offhand.png new file mode 100644 index 0000000..df61863 Binary files /dev/null and b/assets/voxygen/element/ui/bag/backgrounds/offhand.png differ diff --git a/assets/voxygen/element/ui/bag/backgrounds/ring.png b/assets/voxygen/element/ui/bag/backgrounds/ring.png new file mode 100644 index 0000000..97877c4 Binary files /dev/null and b/assets/voxygen/element/ui/bag/backgrounds/ring.png differ diff --git a/assets/voxygen/element/ui/bag/backgrounds/shoulders.png b/assets/voxygen/element/ui/bag/backgrounds/shoulders.png new file mode 100644 index 0000000..74fd03f Binary files /dev/null and b/assets/voxygen/element/ui/bag/backgrounds/shoulders.png differ diff --git a/assets/voxygen/element/ui/bag/backgrounds/tabard.png b/assets/voxygen/element/ui/bag/backgrounds/tabard.png new file mode 100644 index 0000000..170d673 Binary files /dev/null and b/assets/voxygen/element/ui/bag/backgrounds/tabard.png differ diff --git a/assets/voxygen/element/ui/bag/buttons/inv_collapse.png b/assets/voxygen/element/ui/bag/buttons/inv_collapse.png new file mode 100644 index 0000000..ca2fa06 Binary files /dev/null and b/assets/voxygen/element/ui/bag/buttons/inv_collapse.png differ diff --git a/assets/voxygen/element/ui/bag/buttons/inv_collapse_hover.png b/assets/voxygen/element/ui/bag/buttons/inv_collapse_hover.png new file mode 100644 index 0000000..59edac1 Binary files /dev/null and b/assets/voxygen/element/ui/bag/buttons/inv_collapse_hover.png differ diff --git a/assets/voxygen/element/ui/bag/buttons/inv_collapse_press.png b/assets/voxygen/element/ui/bag/buttons/inv_collapse_press.png new file mode 100644 index 0000000..9e8fe8e Binary files /dev/null and b/assets/voxygen/element/ui/bag/buttons/inv_collapse_press.png differ diff --git a/assets/voxygen/element/ui/bag/buttons/inv_expand.png b/assets/voxygen/element/ui/bag/buttons/inv_expand.png new file mode 100644 index 0000000..d6d6135 Binary files /dev/null and b/assets/voxygen/element/ui/bag/buttons/inv_expand.png differ diff --git a/assets/voxygen/element/ui/bag/buttons/inv_expand_hover.png b/assets/voxygen/element/ui/bag/buttons/inv_expand_hover.png new file mode 100644 index 0000000..5ca19ba Binary files /dev/null and b/assets/voxygen/element/ui/bag/buttons/inv_expand_hover.png differ diff --git a/assets/voxygen/element/ui/bag/buttons/inv_expand_press.png b/assets/voxygen/element/ui/bag/buttons/inv_expand_press.png new file mode 100644 index 0000000..b46bd01 Binary files /dev/null and b/assets/voxygen/element/ui/bag/buttons/inv_expand_press.png differ diff --git a/assets/voxygen/element/ui/bag/buttons/inv_grid.png b/assets/voxygen/element/ui/bag/buttons/inv_grid.png new file mode 100644 index 0000000..89b0ea5 Binary files /dev/null and b/assets/voxygen/element/ui/bag/buttons/inv_grid.png differ diff --git a/assets/voxygen/element/ui/bag/buttons/inv_grid_hover.png b/assets/voxygen/element/ui/bag/buttons/inv_grid_hover.png new file mode 100644 index 0000000..3d3ef79 Binary files /dev/null and b/assets/voxygen/element/ui/bag/buttons/inv_grid_hover.png differ diff --git a/assets/voxygen/element/ui/bag/buttons/inv_grid_press.png b/assets/voxygen/element/ui/bag/buttons/inv_grid_press.png new file mode 100644 index 0000000..ee7f94d Binary files /dev/null and b/assets/voxygen/element/ui/bag/buttons/inv_grid_press.png differ diff --git a/assets/voxygen/element/ui/bag/buttons/inv_list.png b/assets/voxygen/element/ui/bag/buttons/inv_list.png new file mode 100644 index 0000000..4212a61 Binary files /dev/null and b/assets/voxygen/element/ui/bag/buttons/inv_list.png differ diff --git a/assets/voxygen/element/ui/bag/buttons/inv_list_hover.png b/assets/voxygen/element/ui/bag/buttons/inv_list_hover.png new file mode 100644 index 0000000..4e7a907 Binary files /dev/null and b/assets/voxygen/element/ui/bag/buttons/inv_list_hover.png differ diff --git a/assets/voxygen/element/ui/bag/buttons/inv_list_press.png b/assets/voxygen/element/ui/bag/buttons/inv_list_press.png new file mode 100644 index 0000000..7ca7caf Binary files /dev/null and b/assets/voxygen/element/ui/bag/buttons/inv_list_press.png differ diff --git a/assets/voxygen/element/ui/bag/buttons/inv_slot.png b/assets/voxygen/element/ui/bag/buttons/inv_slot.png new file mode 100644 index 0000000..2db0579 Binary files /dev/null and b/assets/voxygen/element/ui/bag/buttons/inv_slot.png differ diff --git a/assets/voxygen/element/ui/bag/buttons/inv_slot_blue.png b/assets/voxygen/element/ui/bag/buttons/inv_slot_blue.png new file mode 100644 index 0000000..fdf978f Binary files /dev/null and b/assets/voxygen/element/ui/bag/buttons/inv_slot_blue.png differ diff --git a/assets/voxygen/element/ui/bag/buttons/inv_slot_common.png b/assets/voxygen/element/ui/bag/buttons/inv_slot_common.png new file mode 100644 index 0000000..23cadc7 Binary files /dev/null and b/assets/voxygen/element/ui/bag/buttons/inv_slot_common.png differ diff --git a/assets/voxygen/element/ui/bag/buttons/inv_slot_gold.png b/assets/voxygen/element/ui/bag/buttons/inv_slot_gold.png new file mode 100644 index 0000000..bb13325 Binary files /dev/null and b/assets/voxygen/element/ui/bag/buttons/inv_slot_gold.png differ diff --git a/assets/voxygen/element/ui/bag/buttons/inv_slot_green.png b/assets/voxygen/element/ui/bag/buttons/inv_slot_green.png new file mode 100644 index 0000000..28e87cf Binary files /dev/null and b/assets/voxygen/element/ui/bag/buttons/inv_slot_green.png differ diff --git a/assets/voxygen/element/ui/bag/buttons/inv_slot_grey.png b/assets/voxygen/element/ui/bag/buttons/inv_slot_grey.png new file mode 100644 index 0000000..5e91a06 Binary files /dev/null and b/assets/voxygen/element/ui/bag/buttons/inv_slot_grey.png differ diff --git a/assets/voxygen/element/ui/bag/buttons/inv_slot_orange.png b/assets/voxygen/element/ui/bag/buttons/inv_slot_orange.png new file mode 100644 index 0000000..b9deb39 Binary files /dev/null and b/assets/voxygen/element/ui/bag/buttons/inv_slot_orange.png differ diff --git a/assets/voxygen/element/ui/bag/buttons/inv_slot_purple.png b/assets/voxygen/element/ui/bag/buttons/inv_slot_purple.png new file mode 100644 index 0000000..c669845 Binary files /dev/null and b/assets/voxygen/element/ui/bag/buttons/inv_slot_purple.png differ diff --git a/assets/voxygen/element/ui/bag/buttons/inv_slot_red.png b/assets/voxygen/element/ui/bag/buttons/inv_slot_red.png new file mode 100644 index 0000000..b5fbf9e Binary files /dev/null and b/assets/voxygen/element/ui/bag/buttons/inv_slot_red.png differ diff --git a/assets/voxygen/element/ui/bag/buttons/inv_slot_sel.png b/assets/voxygen/element/ui/bag/buttons/inv_slot_sel.png new file mode 100644 index 0000000..627d188 Binary files /dev/null and b/assets/voxygen/element/ui/bag/buttons/inv_slot_sel.png differ diff --git a/assets/voxygen/element/ui/bag/buttons/inv_sort.png b/assets/voxygen/element/ui/bag/buttons/inv_sort.png new file mode 100644 index 0000000..89e7bc5 Binary files /dev/null and b/assets/voxygen/element/ui/bag/buttons/inv_sort.png differ diff --git a/assets/voxygen/element/ui/bag/buttons/inv_sort_hover.png b/assets/voxygen/element/ui/bag/buttons/inv_sort_hover.png new file mode 100644 index 0000000..5c078ff Binary files /dev/null and b/assets/voxygen/element/ui/bag/buttons/inv_sort_hover.png differ diff --git a/assets/voxygen/element/ui/bag/buttons/inv_sort_press.png b/assets/voxygen/element/ui/bag/buttons/inv_sort_press.png new file mode 100644 index 0000000..15a703d Binary files /dev/null and b/assets/voxygen/element/ui/bag/buttons/inv_sort_press.png differ diff --git a/assets/voxygen/element/ui/bag/buttons/inv_tab_active.png b/assets/voxygen/element/ui/bag/buttons/inv_tab_active.png new file mode 100644 index 0000000..91d7882 Binary files /dev/null and b/assets/voxygen/element/ui/bag/buttons/inv_tab_active.png differ diff --git a/assets/voxygen/element/ui/bag/buttons/inv_tab_inactive.png b/assets/voxygen/element/ui/bag/buttons/inv_tab_inactive.png new file mode 100644 index 0000000..90e9e5a Binary files /dev/null and b/assets/voxygen/element/ui/bag/buttons/inv_tab_inactive.png differ diff --git a/assets/voxygen/element/ui/bag/buttons/swap_equipped_weapons.png b/assets/voxygen/element/ui/bag/buttons/swap_equipped_weapons.png new file mode 100644 index 0000000..20696cd Binary files /dev/null and b/assets/voxygen/element/ui/bag/buttons/swap_equipped_weapons.png differ diff --git a/assets/voxygen/element/ui/bag/buttons/swap_equipped_weapons_hover.png b/assets/voxygen/element/ui/bag/buttons/swap_equipped_weapons_hover.png new file mode 100644 index 0000000..cec739a Binary files /dev/null and b/assets/voxygen/element/ui/bag/buttons/swap_equipped_weapons_hover.png differ diff --git a/assets/voxygen/element/ui/bag/buttons/swap_equipped_weapons_press.png b/assets/voxygen/element/ui/bag/buttons/swap_equipped_weapons_press.png new file mode 100644 index 0000000..1ccd52c Binary files /dev/null and b/assets/voxygen/element/ui/bag/buttons/swap_equipped_weapons_press.png differ diff --git a/assets/voxygen/element/ui/bag/icons/character.png b/assets/voxygen/element/ui/bag/icons/character.png new file mode 100644 index 0000000..0c35f48 Binary files /dev/null and b/assets/voxygen/element/ui/bag/icons/character.png differ diff --git a/assets/voxygen/element/ui/bag/icons/combat_rating.png b/assets/voxygen/element/ui/bag/icons/combat_rating.png new file mode 100644 index 0000000..b31fc01 Binary files /dev/null and b/assets/voxygen/element/ui/bag/icons/combat_rating.png differ diff --git a/assets/voxygen/element/ui/bag/icons/combat_rating_shadow.png b/assets/voxygen/element/ui/bag/icons/combat_rating_shadow.png new file mode 100644 index 0000000..a183f9a Binary files /dev/null and b/assets/voxygen/element/ui/bag/icons/combat_rating_shadow.png differ diff --git a/assets/voxygen/element/ui/bag/icons/energy.png b/assets/voxygen/element/ui/bag/icons/energy.png new file mode 100644 index 0000000..c8f61c7 Binary files /dev/null and b/assets/voxygen/element/ui/bag/icons/energy.png differ diff --git a/assets/voxygen/element/ui/bag/icons/health.png b/assets/voxygen/element/ui/bag/icons/health.png new file mode 100644 index 0000000..ccd4a32 Binary files /dev/null and b/assets/voxygen/element/ui/bag/icons/health.png differ diff --git a/assets/voxygen/element/ui/bag/icons/protection.png b/assets/voxygen/element/ui/bag/icons/protection.png new file mode 100644 index 0000000..18e710f Binary files /dev/null and b/assets/voxygen/element/ui/bag/icons/protection.png differ diff --git a/assets/voxygen/element/ui/bag/icons/stealth_rating.png b/assets/voxygen/element/ui/bag/icons/stealth_rating.png new file mode 100644 index 0000000..21f5610 Binary files /dev/null and b/assets/voxygen/element/ui/bag/icons/stealth_rating.png differ diff --git a/assets/voxygen/element/ui/bag/icons/stun_res.png b/assets/voxygen/element/ui/bag/icons/stun_res.png new file mode 100644 index 0000000..59e0ef7 Binary files /dev/null and b/assets/voxygen/element/ui/bag/icons/stun_res.png differ diff --git a/assets/voxygen/element/ui/bag/inv_bg_0.png b/assets/voxygen/element/ui/bag/inv_bg_0.png new file mode 100644 index 0000000..c80b7b1 Binary files /dev/null and b/assets/voxygen/element/ui/bag/inv_bg_0.png differ diff --git a/assets/voxygen/element/ui/bag/inv_bg_1.png b/assets/voxygen/element/ui/bag/inv_bg_1.png new file mode 100644 index 0000000..ed1d81a Binary files /dev/null and b/assets/voxygen/element/ui/bag/inv_bg_1.png differ diff --git a/assets/voxygen/element/ui/bag/inv_bg_bag.png b/assets/voxygen/element/ui/bag/inv_bg_bag.png new file mode 100644 index 0000000..d176e19 Binary files /dev/null and b/assets/voxygen/element/ui/bag/inv_bg_bag.png differ diff --git a/assets/voxygen/element/ui/bag/inv_frame.png b/assets/voxygen/element/ui/bag/inv_frame.png new file mode 100644 index 0000000..75e6c58 Binary files /dev/null and b/assets/voxygen/element/ui/bag/inv_frame.png differ diff --git a/assets/voxygen/element/ui/bag/inv_frame_bag.png b/assets/voxygen/element/ui/bag/inv_frame_bag.png new file mode 100644 index 0000000..01982a2 Binary files /dev/null and b/assets/voxygen/element/ui/bag/inv_frame_bag.png differ diff --git a/assets/voxygen/element/ui/bag/inv_middle_bg_bag.png b/assets/voxygen/element/ui/bag/inv_middle_bg_bag.png new file mode 100644 index 0000000..0a45e8b Binary files /dev/null and b/assets/voxygen/element/ui/bag/inv_middle_bg_bag.png differ diff --git a/assets/voxygen/element/ui/bag/inv_middle_frame.png b/assets/voxygen/element/ui/bag/inv_middle_frame.png new file mode 100644 index 0000000..772c3b5 Binary files /dev/null and b/assets/voxygen/element/ui/bag/inv_middle_frame.png differ diff --git a/assets/voxygen/element/ui/bag/player_inv_bg_bag.png b/assets/voxygen/element/ui/bag/player_inv_bg_bag.png new file mode 100644 index 0000000..bf61ba8 Binary files /dev/null and b/assets/voxygen/element/ui/bag/player_inv_bg_bag.png differ diff --git a/assets/voxygen/element/ui/bag/player_inv_frame_bag.png b/assets/voxygen/element/ui/bag/player_inv_frame_bag.png new file mode 100644 index 0000000..4aad53c Binary files /dev/null and b/assets/voxygen/element/ui/bag/player_inv_frame_bag.png differ diff --git a/assets/voxygen/element/ui/bag/second_phase_scrollbar_bg.png b/assets/voxygen/element/ui/bag/second_phase_scrollbar_bg.png new file mode 100644 index 0000000..466b13b Binary files /dev/null and b/assets/voxygen/element/ui/bag/second_phase_scrollbar_bg.png differ diff --git a/assets/voxygen/element/ui/char_select/icons/bin.png b/assets/voxygen/element/ui/char_select/icons/bin.png new file mode 100644 index 0000000..02a01ae Binary files /dev/null and b/assets/voxygen/element/ui/char_select/icons/bin.png differ diff --git a/assets/voxygen/element/ui/char_select/icons/bin_hover.png b/assets/voxygen/element/ui/char_select/icons/bin_hover.png new file mode 100644 index 0000000..177aaa4 Binary files /dev/null and b/assets/voxygen/element/ui/char_select/icons/bin_hover.png differ diff --git a/assets/voxygen/element/ui/char_select/icons/bin_press.png b/assets/voxygen/element/ui/char_select/icons/bin_press.png new file mode 100644 index 0000000..0189d78 Binary files /dev/null and b/assets/voxygen/element/ui/char_select/icons/bin_press.png differ diff --git a/assets/voxygen/element/ui/char_select/icons/dice.png b/assets/voxygen/element/ui/char_select/icons/dice.png new file mode 100644 index 0000000..a5a03ef Binary files /dev/null and b/assets/voxygen/element/ui/char_select/icons/dice.png differ diff --git a/assets/voxygen/element/ui/char_select/icons/dice_hover.png b/assets/voxygen/element/ui/char_select/icons/dice_hover.png new file mode 100644 index 0000000..76dee56 Binary files /dev/null and b/assets/voxygen/element/ui/char_select/icons/dice_hover.png differ diff --git a/assets/voxygen/element/ui/char_select/icons/dice_press.png b/assets/voxygen/element/ui/char_select/icons/dice_press.png new file mode 100644 index 0000000..2d755a8 Binary files /dev/null and b/assets/voxygen/element/ui/char_select/icons/dice_press.png differ diff --git a/assets/voxygen/element/ui/char_select/icons/pen.png b/assets/voxygen/element/ui/char_select/icons/pen.png new file mode 100644 index 0000000..d8765d6 Binary files /dev/null and b/assets/voxygen/element/ui/char_select/icons/pen.png differ diff --git a/assets/voxygen/element/ui/char_select/icons/pen_hover.png b/assets/voxygen/element/ui/char_select/icons/pen_hover.png new file mode 100644 index 0000000..8f34beb Binary files /dev/null and b/assets/voxygen/element/ui/char_select/icons/pen_hover.png differ diff --git a/assets/voxygen/element/ui/char_select/icons/pen_press.png b/assets/voxygen/element/ui/char_select/icons/pen_press.png new file mode 100644 index 0000000..a7a0d33 Binary files /dev/null and b/assets/voxygen/element/ui/char_select/icons/pen_press.png differ diff --git a/assets/voxygen/element/ui/char_select/icons/town_marker.png b/assets/voxygen/element/ui/char_select/icons/town_marker.png new file mode 100644 index 0000000..6ed4fed Binary files /dev/null and b/assets/voxygen/element/ui/char_select/icons/town_marker.png differ diff --git a/assets/voxygen/element/ui/char_select/portraits/danari_f.png b/assets/voxygen/element/ui/char_select/portraits/danari_f.png new file mode 100644 index 0000000..817c446 Binary files /dev/null and b/assets/voxygen/element/ui/char_select/portraits/danari_f.png differ diff --git a/assets/voxygen/element/ui/char_select/portraits/danari_m.png b/assets/voxygen/element/ui/char_select/portraits/danari_m.png new file mode 100644 index 0000000..57d9bdd Binary files /dev/null and b/assets/voxygen/element/ui/char_select/portraits/danari_m.png differ diff --git a/assets/voxygen/element/ui/char_select/portraits/dwarf_f.png b/assets/voxygen/element/ui/char_select/portraits/dwarf_f.png new file mode 100644 index 0000000..21f0c8d Binary files /dev/null and b/assets/voxygen/element/ui/char_select/portraits/dwarf_f.png differ diff --git a/assets/voxygen/element/ui/char_select/portraits/dwarf_m.png b/assets/voxygen/element/ui/char_select/portraits/dwarf_m.png new file mode 100644 index 0000000..f8d7ffe Binary files /dev/null and b/assets/voxygen/element/ui/char_select/portraits/dwarf_m.png differ diff --git a/assets/voxygen/element/ui/char_select/portraits/elf_f.png b/assets/voxygen/element/ui/char_select/portraits/elf_f.png new file mode 100644 index 0000000..1702383 Binary files /dev/null and b/assets/voxygen/element/ui/char_select/portraits/elf_f.png differ diff --git a/assets/voxygen/element/ui/char_select/portraits/elf_m.png b/assets/voxygen/element/ui/char_select/portraits/elf_m.png new file mode 100644 index 0000000..dd09df2 Binary files /dev/null and b/assets/voxygen/element/ui/char_select/portraits/elf_m.png differ diff --git a/assets/voxygen/element/ui/char_select/portraits/human_f.png b/assets/voxygen/element/ui/char_select/portraits/human_f.png new file mode 100644 index 0000000..109e715 Binary files /dev/null and b/assets/voxygen/element/ui/char_select/portraits/human_f.png differ diff --git a/assets/voxygen/element/ui/char_select/portraits/human_m.png b/assets/voxygen/element/ui/char_select/portraits/human_m.png new file mode 100644 index 0000000..57dc480 Binary files /dev/null and b/assets/voxygen/element/ui/char_select/portraits/human_m.png differ diff --git a/assets/voxygen/element/ui/char_select/portraits/orc_f.png b/assets/voxygen/element/ui/char_select/portraits/orc_f.png new file mode 100644 index 0000000..f537033 Binary files /dev/null and b/assets/voxygen/element/ui/char_select/portraits/orc_f.png differ diff --git a/assets/voxygen/element/ui/char_select/portraits/orc_m.png b/assets/voxygen/element/ui/char_select/portraits/orc_m.png new file mode 100644 index 0000000..5e32305 Binary files /dev/null and b/assets/voxygen/element/ui/char_select/portraits/orc_m.png differ diff --git a/assets/voxygen/element/ui/char_select/portraits/ud_f.png b/assets/voxygen/element/ui/char_select/portraits/ud_f.png new file mode 100644 index 0000000..ded241e Binary files /dev/null and b/assets/voxygen/element/ui/char_select/portraits/ud_f.png differ diff --git a/assets/voxygen/element/ui/char_select/portraits/ud_m.png b/assets/voxygen/element/ui/char_select/portraits/ud_m.png new file mode 100644 index 0000000..2621d0a Binary files /dev/null and b/assets/voxygen/element/ui/char_select/portraits/ud_m.png differ diff --git a/assets/voxygen/element/ui/chat/icons/command_error_small.png b/assets/voxygen/element/ui/chat/icons/command_error_small.png new file mode 100644 index 0000000..d5795fc Binary files /dev/null and b/assets/voxygen/element/ui/chat/icons/command_error_small.png differ diff --git a/assets/voxygen/element/ui/chat/icons/command_info_small.png b/assets/voxygen/element/ui/chat/icons/command_info_small.png new file mode 100644 index 0000000..75308d9 Binary files /dev/null and b/assets/voxygen/element/ui/chat/icons/command_info_small.png differ diff --git a/assets/voxygen/element/ui/chat/icons/faction.png b/assets/voxygen/element/ui/chat/icons/faction.png new file mode 100644 index 0000000..eb6339f Binary files /dev/null and b/assets/voxygen/element/ui/chat/icons/faction.png differ diff --git a/assets/voxygen/element/ui/chat/icons/faction_small.png b/assets/voxygen/element/ui/chat/icons/faction_small.png new file mode 100644 index 0000000..676c72f Binary files /dev/null and b/assets/voxygen/element/ui/chat/icons/faction_small.png differ diff --git a/assets/voxygen/element/ui/chat/icons/group.png b/assets/voxygen/element/ui/chat/icons/group.png new file mode 100644 index 0000000..490fd80 Binary files /dev/null and b/assets/voxygen/element/ui/chat/icons/group.png differ diff --git a/assets/voxygen/element/ui/chat/icons/group_small.png b/assets/voxygen/element/ui/chat/icons/group_small.png new file mode 100644 index 0000000..2e6480f Binary files /dev/null and b/assets/voxygen/element/ui/chat/icons/group_small.png differ diff --git a/assets/voxygen/element/ui/chat/icons/kill_small.png b/assets/voxygen/element/ui/chat/icons/kill_small.png new file mode 100644 index 0000000..5bdb4ed Binary files /dev/null and b/assets/voxygen/element/ui/chat/icons/kill_small.png differ diff --git a/assets/voxygen/element/ui/chat/icons/mod_badge.png b/assets/voxygen/element/ui/chat/icons/mod_badge.png new file mode 100644 index 0000000..ece348f Binary files /dev/null and b/assets/voxygen/element/ui/chat/icons/mod_badge.png differ diff --git a/assets/voxygen/element/ui/chat/icons/offline_small.png b/assets/voxygen/element/ui/chat/icons/offline_small.png new file mode 100644 index 0000000..3b3b8c6 Binary files /dev/null and b/assets/voxygen/element/ui/chat/icons/offline_small.png differ diff --git a/assets/voxygen/element/ui/chat/icons/online_small.png b/assets/voxygen/element/ui/chat/icons/online_small.png new file mode 100644 index 0000000..88d7a49 Binary files /dev/null and b/assets/voxygen/element/ui/chat/icons/online_small.png differ diff --git a/assets/voxygen/element/ui/chat/icons/private_small.png b/assets/voxygen/element/ui/chat/icons/private_small.png new file mode 100644 index 0000000..ce2cf8e Binary files /dev/null and b/assets/voxygen/element/ui/chat/icons/private_small.png differ diff --git a/assets/voxygen/element/ui/chat/icons/region.png b/assets/voxygen/element/ui/chat/icons/region.png new file mode 100644 index 0000000..54b77a5 Binary files /dev/null and b/assets/voxygen/element/ui/chat/icons/region.png differ diff --git a/assets/voxygen/element/ui/chat/icons/region_small.png b/assets/voxygen/element/ui/chat/icons/region_small.png new file mode 100644 index 0000000..f3767bc Binary files /dev/null and b/assets/voxygen/element/ui/chat/icons/region_small.png differ diff --git a/assets/voxygen/element/ui/chat/icons/say.png b/assets/voxygen/element/ui/chat/icons/say.png new file mode 100644 index 0000000..d3926f9 Binary files /dev/null and b/assets/voxygen/element/ui/chat/icons/say.png differ diff --git a/assets/voxygen/element/ui/chat/icons/say_small.png b/assets/voxygen/element/ui/chat/icons/say_small.png new file mode 100644 index 0000000..54f598b Binary files /dev/null and b/assets/voxygen/element/ui/chat/icons/say_small.png differ diff --git a/assets/voxygen/element/ui/chat/icons/tell.png b/assets/voxygen/element/ui/chat/icons/tell.png new file mode 100644 index 0000000..99765c8 Binary files /dev/null and b/assets/voxygen/element/ui/chat/icons/tell.png differ diff --git a/assets/voxygen/element/ui/chat/icons/tell_small.png b/assets/voxygen/element/ui/chat/icons/tell_small.png new file mode 100644 index 0000000..551d4d4 Binary files /dev/null and b/assets/voxygen/element/ui/chat/icons/tell_small.png differ diff --git a/assets/voxygen/element/ui/chat/icons/world.png b/assets/voxygen/element/ui/chat/icons/world.png new file mode 100644 index 0000000..341f4a3 Binary files /dev/null and b/assets/voxygen/element/ui/chat/icons/world.png differ diff --git a/assets/voxygen/element/ui/chat/icons/world_small.png b/assets/voxygen/element/ui/chat/icons/world_small.png new file mode 100644 index 0000000..aad941c Binary files /dev/null and b/assets/voxygen/element/ui/chat/icons/world_small.png differ diff --git a/assets/voxygen/element/ui/crafting/crafting.png b/assets/voxygen/element/ui/crafting/crafting.png new file mode 100644 index 0000000..43b9ce7 Binary files /dev/null and b/assets/voxygen/element/ui/crafting/crafting.png differ diff --git a/assets/voxygen/element/ui/crafting/crafting_frame.png b/assets/voxygen/element/ui/crafting/crafting_frame.png new file mode 100644 index 0000000..71fdd6e Binary files /dev/null and b/assets/voxygen/element/ui/crafting/crafting_frame.png differ diff --git a/assets/voxygen/element/ui/crafting/icons/armors.png b/assets/voxygen/element/ui/crafting/icons/armors.png new file mode 100644 index 0000000..e7dfb97 Binary files /dev/null and b/assets/voxygen/element/ui/crafting/icons/armors.png differ diff --git a/assets/voxygen/element/ui/crafting/icons/blade.png b/assets/voxygen/element/ui/crafting/icons/blade.png new file mode 100644 index 0000000..6fbddcf Binary files /dev/null and b/assets/voxygen/element/ui/crafting/icons/blade.png differ diff --git a/assets/voxygen/element/ui/crafting/icons/claw.png b/assets/voxygen/element/ui/crafting/icons/claw.png new file mode 100644 index 0000000..15e0adf Binary files /dev/null and b/assets/voxygen/element/ui/crafting/icons/claw.png differ diff --git a/assets/voxygen/element/ui/crafting/icons/crafting_tools.png b/assets/voxygen/element/ui/crafting/icons/crafting_tools.png new file mode 100644 index 0000000..9877ebe Binary files /dev/null and b/assets/voxygen/element/ui/crafting/icons/crafting_tools.png differ diff --git a/assets/voxygen/element/ui/crafting/icons/dismantle.png b/assets/voxygen/element/ui/crafting/icons/dismantle.png new file mode 100644 index 0000000..58f2530 Binary files /dev/null and b/assets/voxygen/element/ui/crafting/icons/dismantle.png differ diff --git a/assets/voxygen/element/ui/crafting/icons/foods.png b/assets/voxygen/element/ui/crafting/icons/foods.png new file mode 100644 index 0000000..1fdd1db Binary files /dev/null and b/assets/voxygen/element/ui/crafting/icons/foods.png differ diff --git a/assets/voxygen/element/ui/crafting/icons/gliders.png b/assets/voxygen/element/ui/crafting/icons/gliders.png new file mode 100644 index 0000000..e93ea3a Binary files /dev/null and b/assets/voxygen/element/ui/crafting/icons/gliders.png differ diff --git a/assets/voxygen/element/ui/crafting/icons/globe.png b/assets/voxygen/element/ui/crafting/icons/globe.png new file mode 100644 index 0000000..db4358a Binary files /dev/null and b/assets/voxygen/element/ui/crafting/icons/globe.png differ diff --git a/assets/voxygen/element/ui/crafting/icons/globe_2.png b/assets/voxygen/element/ui/crafting/icons/globe_2.png new file mode 100644 index 0000000..ea8c12c Binary files /dev/null and b/assets/voxygen/element/ui/crafting/icons/globe_2.png differ diff --git a/assets/voxygen/element/ui/crafting/icons/handle.png b/assets/voxygen/element/ui/crafting/icons/handle.png new file mode 100644 index 0000000..a5a9f86 Binary files /dev/null and b/assets/voxygen/element/ui/crafting/icons/handle.png differ diff --git a/assets/voxygen/element/ui/crafting/icons/ingot.png b/assets/voxygen/element/ui/crafting/icons/ingot.png new file mode 100644 index 0000000..bbb208f Binary files /dev/null and b/assets/voxygen/element/ui/crafting/icons/ingot.png differ diff --git a/assets/voxygen/element/ui/crafting/icons/log.png b/assets/voxygen/element/ui/crafting/icons/log.png new file mode 100644 index 0000000..bffb3a7 Binary files /dev/null and b/assets/voxygen/element/ui/crafting/icons/log.png differ diff --git a/assets/voxygen/element/ui/crafting/icons/potions.png b/assets/voxygen/element/ui/crafting/icons/potions.png new file mode 100644 index 0000000..b9b1ac1 Binary files /dev/null and b/assets/voxygen/element/ui/crafting/icons/potions.png differ diff --git a/assets/voxygen/element/ui/crafting/icons/processed_material.png b/assets/voxygen/element/ui/crafting/icons/processed_material.png new file mode 100644 index 0000000..9c99d86 Binary files /dev/null and b/assets/voxygen/element/ui/crafting/icons/processed_material.png differ diff --git a/assets/voxygen/element/ui/crafting/icons/utilities.png b/assets/voxygen/element/ui/crafting/icons/utilities.png new file mode 100644 index 0000000..eb6568c Binary files /dev/null and b/assets/voxygen/element/ui/crafting/icons/utilities.png differ diff --git a/assets/voxygen/element/ui/crafting/icons/weapons.png b/assets/voxygen/element/ui/crafting/icons/weapons.png new file mode 100644 index 0000000..36a8f30 Binary files /dev/null and b/assets/voxygen/element/ui/crafting/icons/weapons.png differ diff --git a/assets/voxygen/element/ui/crafting/modular_weps_art.png b/assets/voxygen/element/ui/crafting/modular_weps_art.png new file mode 100644 index 0000000..efb25d6 Binary files /dev/null and b/assets/voxygen/element/ui/crafting/modular_weps_art.png differ diff --git a/assets/voxygen/element/ui/crafting/quality_indicator.png b/assets/voxygen/element/ui/crafting/quality_indicator.png new file mode 100644 index 0000000..377d612 Binary files /dev/null and b/assets/voxygen/element/ui/crafting/quality_indicator.png differ diff --git a/assets/voxygen/element/ui/diary/abilitiy_desc_frame.png b/assets/voxygen/element/ui/diary/abilitiy_desc_frame.png new file mode 100644 index 0000000..1eb267c Binary files /dev/null and b/assets/voxygen/element/ui/diary/abilitiy_desc_frame.png differ diff --git a/assets/voxygen/element/ui/diary/abilitiy_desc_frame_dual.png b/assets/voxygen/element/ui/diary/abilitiy_desc_frame_dual.png new file mode 100644 index 0000000..4267bb3 Binary files /dev/null and b/assets/voxygen/element/ui/diary/abilitiy_desc_frame_dual.png differ diff --git a/assets/voxygen/element/ui/diary/axe_bg.png b/assets/voxygen/element/ui/diary/axe_bg.png new file mode 100644 index 0000000..c2b6125 Binary files /dev/null and b/assets/voxygen/element/ui/diary/axe_bg.png differ diff --git a/assets/voxygen/element/ui/diary/buttons/arrow_l.png b/assets/voxygen/element/ui/diary/buttons/arrow_l.png new file mode 100644 index 0000000..dbc5054 Binary files /dev/null and b/assets/voxygen/element/ui/diary/buttons/arrow_l.png differ diff --git a/assets/voxygen/element/ui/diary/buttons/arrow_l_click.png b/assets/voxygen/element/ui/diary/buttons/arrow_l_click.png new file mode 100644 index 0000000..05d2b49 Binary files /dev/null and b/assets/voxygen/element/ui/diary/buttons/arrow_l_click.png differ diff --git a/assets/voxygen/element/ui/diary/buttons/arrow_l_inactive.png b/assets/voxygen/element/ui/diary/buttons/arrow_l_inactive.png new file mode 100644 index 0000000..f38e127 Binary files /dev/null and b/assets/voxygen/element/ui/diary/buttons/arrow_l_inactive.png differ diff --git a/assets/voxygen/element/ui/diary/buttons/arrow_r.png b/assets/voxygen/element/ui/diary/buttons/arrow_r.png new file mode 100644 index 0000000..3aa04fa Binary files /dev/null and b/assets/voxygen/element/ui/diary/buttons/arrow_r.png differ diff --git a/assets/voxygen/element/ui/diary/buttons/arrow_r_click.png b/assets/voxygen/element/ui/diary/buttons/arrow_r_click.png new file mode 100644 index 0000000..185e50d Binary files /dev/null and b/assets/voxygen/element/ui/diary/buttons/arrow_r_click.png differ diff --git a/assets/voxygen/element/ui/diary/buttons/arrow_r_inactive.png b/assets/voxygen/element/ui/diary/buttons/arrow_r_inactive.png new file mode 100644 index 0000000..e208860 Binary files /dev/null and b/assets/voxygen/element/ui/diary/buttons/arrow_r_inactive.png differ diff --git a/assets/voxygen/element/ui/diary/buttons/border_skills.png b/assets/voxygen/element/ui/diary/buttons/border_skills.png new file mode 100644 index 0000000..bc7be0b Binary files /dev/null and b/assets/voxygen/element/ui/diary/buttons/border_skills.png differ diff --git a/assets/voxygen/element/ui/diary/buttons/lock.png b/assets/voxygen/element/ui/diary/buttons/lock.png new file mode 100644 index 0000000..3cc51f3 Binary files /dev/null and b/assets/voxygen/element/ui/diary/buttons/lock.png differ diff --git a/assets/voxygen/element/ui/diary/buttons/skilltree.png b/assets/voxygen/element/ui/diary/buttons/skilltree.png new file mode 100644 index 0000000..f6413e3 Binary files /dev/null and b/assets/voxygen/element/ui/diary/buttons/skilltree.png differ diff --git a/assets/voxygen/element/ui/diary/buttons/slot_skilltree.png b/assets/voxygen/element/ui/diary/buttons/slot_skilltree.png new file mode 100644 index 0000000..b29207e Binary files /dev/null and b/assets/voxygen/element/ui/diary/buttons/slot_skilltree.png differ diff --git a/assets/voxygen/element/ui/diary/buttons/spellbook.png b/assets/voxygen/element/ui/diary/buttons/spellbook.png new file mode 100644 index 0000000..b1052df Binary files /dev/null and b/assets/voxygen/element/ui/diary/buttons/spellbook.png differ diff --git a/assets/voxygen/element/ui/diary/buttons/stats.png b/assets/voxygen/element/ui/diary/buttons/stats.png new file mode 100644 index 0000000..7da05e5 Binary files /dev/null and b/assets/voxygen/element/ui/diary/buttons/stats.png differ diff --git a/assets/voxygen/element/ui/diary/diary_bg.png b/assets/voxygen/element/ui/diary/diary_bg.png new file mode 100644 index 0000000..643b169 Binary files /dev/null and b/assets/voxygen/element/ui/diary/diary_bg.png differ diff --git a/assets/voxygen/element/ui/diary/diary_exp_bg.png b/assets/voxygen/element/ui/diary/diary_exp_bg.png new file mode 100644 index 0000000..a07597a Binary files /dev/null and b/assets/voxygen/element/ui/diary/diary_exp_bg.png differ diff --git a/assets/voxygen/element/ui/diary/diary_exp_frame.png b/assets/voxygen/element/ui/diary/diary_exp_frame.png new file mode 100644 index 0000000..99b6734 Binary files /dev/null and b/assets/voxygen/element/ui/diary/diary_exp_frame.png differ diff --git a/assets/voxygen/element/ui/diary/diary_frame.png b/assets/voxygen/element/ui/diary/diary_frame.png new file mode 100644 index 0000000..85df60e Binary files /dev/null and b/assets/voxygen/element/ui/diary/diary_frame.png differ diff --git a/assets/voxygen/element/ui/diary/diary_skills_bg.png b/assets/voxygen/element/ui/diary/diary_skills_bg.png new file mode 100644 index 0000000..0c5962c Binary files /dev/null and b/assets/voxygen/element/ui/diary/diary_skills_bg.png differ diff --git a/assets/voxygen/element/ui/diary/hammer_bg.png b/assets/voxygen/element/ui/diary/hammer_bg.png new file mode 100644 index 0000000..f6ecb3a Binary files /dev/null and b/assets/voxygen/element/ui/diary/hammer_bg.png differ diff --git a/assets/voxygen/element/ui/diary/pixel.png b/assets/voxygen/element/ui/diary/pixel.png new file mode 100644 index 0000000..38d802f Binary files /dev/null and b/assets/voxygen/element/ui/diary/pixel.png differ diff --git a/assets/voxygen/element/ui/diary/spellbook_bg.png b/assets/voxygen/element/ui/diary/spellbook_bg.png new file mode 100644 index 0000000..84d1266 Binary files /dev/null and b/assets/voxygen/element/ui/diary/spellbook_bg.png differ diff --git a/assets/voxygen/element/ui/diary/sword_bg.png b/assets/voxygen/element/ui/diary/sword_bg.png new file mode 100644 index 0000000..614acd0 Binary files /dev/null and b/assets/voxygen/element/ui/diary/sword_bg.png differ diff --git a/assets/voxygen/element/ui/diary/sword_path_overlay.png b/assets/voxygen/element/ui/diary/sword_path_overlay.png new file mode 100644 index 0000000..36202d5 Binary files /dev/null and b/assets/voxygen/element/ui/diary/sword_path_overlay.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/anvil.png b/assets/voxygen/element/ui/generic/buttons/anvil.png new file mode 100644 index 0000000..8b1720a Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/anvil.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/anvil_hover.png b/assets/voxygen/element/ui/generic/buttons/anvil_hover.png new file mode 100644 index 0000000..57f4b2d Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/anvil_hover.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/anvil_press.png b/assets/voxygen/element/ui/generic/buttons/anvil_press.png new file mode 100644 index 0000000..51a97a1 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/anvil_press.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/armor_slot.png b/assets/voxygen/element/ui/generic/buttons/armor_slot.png new file mode 100644 index 0000000..c63bead Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/armor_slot.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/armor_slot_empty.png b/assets/voxygen/element/ui/generic/buttons/armor_slot_empty.png new file mode 100644 index 0000000..3e1de00 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/armor_slot_empty.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/armor_slot_selected.png b/assets/voxygen/element/ui/generic/buttons/armor_slot_selected.png new file mode 100644 index 0000000..510a66a Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/armor_slot_selected.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/arrow_down.png b/assets/voxygen/element/ui/generic/buttons/arrow_down.png new file mode 100644 index 0000000..f593a74 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/arrow_down.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/arrow_down.vox b/assets/voxygen/element/ui/generic/buttons/arrow_down.vox new file mode 100644 index 0000000..a67582f Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/arrow_down.vox differ diff --git a/assets/voxygen/element/ui/generic/buttons/arrow_down_gold.png b/assets/voxygen/element/ui/generic/buttons/arrow_down_gold.png new file mode 100644 index 0000000..ac0a0d0 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/arrow_down_gold.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/arrow_down_hover.png b/assets/voxygen/element/ui/generic/buttons/arrow_down_hover.png new file mode 100644 index 0000000..9b10d0b Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/arrow_down_hover.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/arrow_down_hover.vox b/assets/voxygen/element/ui/generic/buttons/arrow_down_hover.vox new file mode 100644 index 0000000..2073da6 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/arrow_down_hover.vox differ diff --git a/assets/voxygen/element/ui/generic/buttons/arrow_down_press.png b/assets/voxygen/element/ui/generic/buttons/arrow_down_press.png new file mode 100644 index 0000000..09464e8 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/arrow_down_press.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/arrow_down_press.vox b/assets/voxygen/element/ui/generic/buttons/arrow_down_press.vox new file mode 100644 index 0000000..42cdce5 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/arrow_down_press.vox differ diff --git a/assets/voxygen/element/ui/generic/buttons/bag.png b/assets/voxygen/element/ui/generic/buttons/bag.png new file mode 100644 index 0000000..dec18d0 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/bag.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/border.png b/assets/voxygen/element/ui/generic/buttons/border.png new file mode 100644 index 0000000..891311d Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/border.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/border_mo.png b/assets/voxygen/element/ui/generic/buttons/border_mo.png new file mode 100644 index 0000000..0faf385 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/border_mo.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/border_press.png b/assets/voxygen/element/ui/generic/buttons/border_press.png new file mode 100644 index 0000000..271b547 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/border_press.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/border_pressed.png b/assets/voxygen/element/ui/generic/buttons/border_pressed.png new file mode 100644 index 0000000..9fe3879 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/border_pressed.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/button.png b/assets/voxygen/element/ui/generic/buttons/button.png new file mode 100644 index 0000000..c2e3bb4 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/button.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/button_hover.png b/assets/voxygen/element/ui/generic/buttons/button_hover.png new file mode 100644 index 0000000..859fdbe Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/button_hover.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/button_press.png b/assets/voxygen/element/ui/generic/buttons/button_press.png new file mode 100644 index 0000000..0a70395 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/button_press.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/checkbox/active.png b/assets/voxygen/element/ui/generic/buttons/checkbox/active.png new file mode 100644 index 0000000..7a71f05 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/checkbox/active.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/checkbox/hover.png b/assets/voxygen/element/ui/generic/buttons/checkbox/hover.png new file mode 100644 index 0000000..ec3322e Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/checkbox/hover.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/checkbox/inactive.png b/assets/voxygen/element/ui/generic/buttons/checkbox/inactive.png new file mode 100644 index 0000000..6d42d07 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/checkbox/inactive.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/checkbox/inactive_hover.png b/assets/voxygen/element/ui/generic/buttons/checkbox/inactive_hover.png new file mode 100644 index 0000000..aa9ab13 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/checkbox/inactive_hover.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/checkbox/press.png b/assets/voxygen/element/ui/generic/buttons/checkbox/press.png new file mode 100644 index 0000000..18434d7 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/checkbox/press.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/close_btn.png b/assets/voxygen/element/ui/generic/buttons/close_btn.png new file mode 100644 index 0000000..d930635 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/close_btn.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/close_btn_hover.png b/assets/voxygen/element/ui/generic/buttons/close_btn_hover.png new file mode 100644 index 0000000..42e6e0d Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/close_btn_hover.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/close_btn_press.png b/assets/voxygen/element/ui/generic/buttons/close_btn_press.png new file mode 100644 index 0000000..de618d9 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/close_btn_press.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/eye_closed_btn.png b/assets/voxygen/element/ui/generic/buttons/eye_closed_btn.png new file mode 100644 index 0000000..f580fe0 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/eye_closed_btn.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/eye_closed_btn_hover.png b/assets/voxygen/element/ui/generic/buttons/eye_closed_btn_hover.png new file mode 100644 index 0000000..fe3cc7a Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/eye_closed_btn_hover.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/eye_closed_btn_press.png b/assets/voxygen/element/ui/generic/buttons/eye_closed_btn_press.png new file mode 100644 index 0000000..c1302f8 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/eye_closed_btn_press.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/eye_open_btn.png b/assets/voxygen/element/ui/generic/buttons/eye_open_btn.png new file mode 100644 index 0000000..4d6553e Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/eye_open_btn.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/eye_open_btn_hover.png b/assets/voxygen/element/ui/generic/buttons/eye_open_btn_hover.png new file mode 100644 index 0000000..769ec3f Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/eye_open_btn_hover.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/eye_open_btn_press.png b/assets/voxygen/element/ui/generic/buttons/eye_open_btn_press.png new file mode 100644 index 0000000..1db188b Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/eye_open_btn_press.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/group.png b/assets/voxygen/element/ui/generic/buttons/group.png new file mode 100644 index 0000000..8902814 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/group.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/group_hover.png b/assets/voxygen/element/ui/generic/buttons/group_hover.png new file mode 100644 index 0000000..00b79bf Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/group_hover.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/group_press.png b/assets/voxygen/element/ui/generic/buttons/group_press.png new file mode 100644 index 0000000..ce2e7c8 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/group_press.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/key_button.png b/assets/voxygen/element/ui/generic/buttons/key_button.png new file mode 100644 index 0000000..68cb774 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/key_button.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/key_button_press.png b/assets/voxygen/element/ui/generic/buttons/key_button_press.png new file mode 100644 index 0000000..b49c9f6 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/key_button_press.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/map.png b/assets/voxygen/element/ui/generic/buttons/map.png new file mode 100644 index 0000000..f691c00 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/map.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/map_hover.png b/assets/voxygen/element/ui/generic/buttons/map_hover.png new file mode 100644 index 0000000..335c435 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/map_hover.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/map_press.png b/assets/voxygen/element/ui/generic/buttons/map_press.png new file mode 100644 index 0000000..d599e18 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/map_press.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/mute_btn.png b/assets/voxygen/element/ui/generic/buttons/mute_btn.png new file mode 100644 index 0000000..d3397c8 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/mute_btn.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/mute_btn_hover.png b/assets/voxygen/element/ui/generic/buttons/mute_btn_hover.png new file mode 100644 index 0000000..347947f Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/mute_btn_hover.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/mute_btn_press.png b/assets/voxygen/element/ui/generic/buttons/mute_btn_press.png new file mode 100644 index 0000000..944adbe Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/mute_btn_press.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/muted_btn.png b/assets/voxygen/element/ui/generic/buttons/muted_btn.png new file mode 100644 index 0000000..830e4d7 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/muted_btn.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/muted_btn_hover.png b/assets/voxygen/element/ui/generic/buttons/muted_btn_hover.png new file mode 100644 index 0000000..e755c03 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/muted_btn_hover.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/muted_btn_press.png b/assets/voxygen/element/ui/generic/buttons/muted_btn_press.png new file mode 100644 index 0000000..d54d8fa Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/muted_btn_press.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/radio/active.png b/assets/voxygen/element/ui/generic/buttons/radio/active.png new file mode 100644 index 0000000..28d3506 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/radio/active.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/radio/hover.png b/assets/voxygen/element/ui/generic/buttons/radio/hover.png new file mode 100644 index 0000000..0dbaf7b Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/radio/hover.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/radio/inactive.png b/assets/voxygen/element/ui/generic/buttons/radio/inactive.png new file mode 100644 index 0000000..f23317d Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/radio/inactive.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/radio/inactive_hover.png b/assets/voxygen/element/ui/generic/buttons/radio/inactive_hover.png new file mode 100644 index 0000000..f76548c Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/radio/inactive_hover.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/radio/press.png b/assets/voxygen/element/ui/generic/buttons/radio/press.png new file mode 100644 index 0000000..d03c68f Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/radio/press.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/search_btn.png b/assets/voxygen/element/ui/generic/buttons/search_btn.png new file mode 100644 index 0000000..a483537 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/search_btn.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/search_btn_hover.png b/assets/voxygen/element/ui/generic/buttons/search_btn_hover.png new file mode 100644 index 0000000..43de2be Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/search_btn_hover.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/search_btn_press.png b/assets/voxygen/element/ui/generic/buttons/search_btn_press.png new file mode 100644 index 0000000..b40cac4 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/search_btn_press.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/settings.png b/assets/voxygen/element/ui/generic/buttons/settings.png new file mode 100644 index 0000000..54bc375 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/settings.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/settings_hover.png b/assets/voxygen/element/ui/generic/buttons/settings_hover.png new file mode 100644 index 0000000..3f59b88 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/settings_hover.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/settings_press.png b/assets/voxygen/element/ui/generic/buttons/settings_press.png new file mode 100644 index 0000000..0d76c79 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/settings_press.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/social.png b/assets/voxygen/element/ui/generic/buttons/social.png new file mode 100644 index 0000000..e224585 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/social.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/social_hover.png b/assets/voxygen/element/ui/generic/buttons/social_hover.png new file mode 100644 index 0000000..5c0b8d2 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/social_hover.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/social_press.png b/assets/voxygen/element/ui/generic/buttons/social_press.png new file mode 100644 index 0000000..ccd2f0f Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/social_press.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/spellbook.png b/assets/voxygen/element/ui/generic/buttons/spellbook.png new file mode 100644 index 0000000..198d4c3 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/spellbook.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/spellbook0.png b/assets/voxygen/element/ui/generic/buttons/spellbook0.png new file mode 100644 index 0000000..9d82eff Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/spellbook0.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/spellbook_hover.png b/assets/voxygen/element/ui/generic/buttons/spellbook_hover.png new file mode 100644 index 0000000..d969773 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/spellbook_hover.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/spellbook_press.png b/assets/voxygen/element/ui/generic/buttons/spellbook_press.png new file mode 100644 index 0000000..452535f Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/spellbook_press.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/unlock.png b/assets/voxygen/element/ui/generic/buttons/unlock.png new file mode 100644 index 0000000..4d5589b Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/unlock.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/unlock_hover.png b/assets/voxygen/element/ui/generic/buttons/unlock_hover.png new file mode 100644 index 0000000..5511bf4 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/unlock_hover.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/unlock_press.png b/assets/voxygen/element/ui/generic/buttons/unlock_press.png new file mode 100644 index 0000000..56be7d3 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/unlock_press.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/x_red.png b/assets/voxygen/element/ui/generic/buttons/x_red.png new file mode 100644 index 0000000..dc6a44a Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/x_red.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/x_red_hover.png b/assets/voxygen/element/ui/generic/buttons/x_red_hover.png new file mode 100644 index 0000000..8ef92ed Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/x_red_hover.png differ diff --git a/assets/voxygen/element/ui/generic/buttons/x_red_press.png b/assets/voxygen/element/ui/generic/buttons/x_red_press.png new file mode 100644 index 0000000..3145b71 Binary files /dev/null and b/assets/voxygen/element/ui/generic/buttons/x_red_press.png differ diff --git a/assets/voxygen/element/ui/generic/fireplace.png b/assets/voxygen/element/ui/generic/fireplace.png new file mode 100644 index 0000000..4fdf477 Binary files /dev/null and b/assets/voxygen/element/ui/generic/fireplace.png differ diff --git a/assets/voxygen/element/ui/generic/frames/banner_bot.png b/assets/voxygen/element/ui/generic/frames/banner_bot.png new file mode 100644 index 0000000..32a57fe Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/banner_bot.png differ diff --git a/assets/voxygen/element/ui/generic/frames/banner_gradient_bottom.png b/assets/voxygen/element/ui/generic/frames/banner_gradient_bottom.png new file mode 100644 index 0000000..150064b Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/banner_gradient_bottom.png differ diff --git a/assets/voxygen/element/ui/generic/frames/banner_top.png b/assets/voxygen/element/ui/generic/frames/banner_top.png new file mode 100644 index 0000000..e0d78c9 Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/banner_top.png differ diff --git a/assets/voxygen/element/ui/generic/frames/bubble/bottom.png b/assets/voxygen/element/ui/generic/frames/bubble/bottom.png new file mode 100644 index 0000000..8df11f1 Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/bubble/bottom.png differ diff --git a/assets/voxygen/element/ui/generic/frames/bubble/bottom_left.png b/assets/voxygen/element/ui/generic/frames/bubble/bottom_left.png new file mode 100644 index 0000000..87ee7df Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/bubble/bottom_left.png differ diff --git a/assets/voxygen/element/ui/generic/frames/bubble/bottom_right.png b/assets/voxygen/element/ui/generic/frames/bubble/bottom_right.png new file mode 100644 index 0000000..f501bf4 Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/bubble/bottom_right.png differ diff --git a/assets/voxygen/element/ui/generic/frames/bubble/left.png b/assets/voxygen/element/ui/generic/frames/bubble/left.png new file mode 100644 index 0000000..af3462a Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/bubble/left.png differ diff --git a/assets/voxygen/element/ui/generic/frames/bubble/mid.png b/assets/voxygen/element/ui/generic/frames/bubble/mid.png new file mode 100644 index 0000000..bc6872c Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/bubble/mid.png differ diff --git a/assets/voxygen/element/ui/generic/frames/bubble/right.png b/assets/voxygen/element/ui/generic/frames/bubble/right.png new file mode 100644 index 0000000..a000325 Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/bubble/right.png differ diff --git a/assets/voxygen/element/ui/generic/frames/bubble/tail.png b/assets/voxygen/element/ui/generic/frames/bubble/tail.png new file mode 100644 index 0000000..27f3db6 Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/bubble/tail.png differ diff --git a/assets/voxygen/element/ui/generic/frames/bubble/top.png b/assets/voxygen/element/ui/generic/frames/bubble/top.png new file mode 100644 index 0000000..5e48c17 Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/bubble/top.png differ diff --git a/assets/voxygen/element/ui/generic/frames/bubble/top_left.png b/assets/voxygen/element/ui/generic/frames/bubble/top_left.png new file mode 100644 index 0000000..4ed6ed9 Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/bubble/top_left.png differ diff --git a/assets/voxygen/element/ui/generic/frames/bubble/top_right.png b/assets/voxygen/element/ui/generic/frames/bubble/top_right.png new file mode 100644 index 0000000..d08d62e Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/bubble/top_right.png differ diff --git a/assets/voxygen/element/ui/generic/frames/bubble_dark/bottom.png b/assets/voxygen/element/ui/generic/frames/bubble_dark/bottom.png new file mode 100644 index 0000000..d6003ae Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/bubble_dark/bottom.png differ diff --git a/assets/voxygen/element/ui/generic/frames/bubble_dark/bottom_left.png b/assets/voxygen/element/ui/generic/frames/bubble_dark/bottom_left.png new file mode 100644 index 0000000..c96230a Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/bubble_dark/bottom_left.png differ diff --git a/assets/voxygen/element/ui/generic/frames/bubble_dark/bottom_right.png b/assets/voxygen/element/ui/generic/frames/bubble_dark/bottom_right.png new file mode 100644 index 0000000..b80444e Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/bubble_dark/bottom_right.png differ diff --git a/assets/voxygen/element/ui/generic/frames/bubble_dark/icon_frame.png b/assets/voxygen/element/ui/generic/frames/bubble_dark/icon_frame.png new file mode 100644 index 0000000..971a0ad Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/bubble_dark/icon_frame.png differ diff --git a/assets/voxygen/element/ui/generic/frames/bubble_dark/left.png b/assets/voxygen/element/ui/generic/frames/bubble_dark/left.png new file mode 100644 index 0000000..ad26f8c Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/bubble_dark/left.png differ diff --git a/assets/voxygen/element/ui/generic/frames/bubble_dark/mid.png b/assets/voxygen/element/ui/generic/frames/bubble_dark/mid.png new file mode 100644 index 0000000..3cf8e00 Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/bubble_dark/mid.png differ diff --git a/assets/voxygen/element/ui/generic/frames/bubble_dark/right.png b/assets/voxygen/element/ui/generic/frames/bubble_dark/right.png new file mode 100644 index 0000000..a60a2be Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/bubble_dark/right.png differ diff --git a/assets/voxygen/element/ui/generic/frames/bubble_dark/tail.png b/assets/voxygen/element/ui/generic/frames/bubble_dark/tail.png new file mode 100644 index 0000000..dc761da Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/bubble_dark/tail.png differ diff --git a/assets/voxygen/element/ui/generic/frames/bubble_dark/top.png b/assets/voxygen/element/ui/generic/frames/bubble_dark/top.png new file mode 100644 index 0000000..d879085 Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/bubble_dark/top.png differ diff --git a/assets/voxygen/element/ui/generic/frames/bubble_dark/top_left.png b/assets/voxygen/element/ui/generic/frames/bubble_dark/top_left.png new file mode 100644 index 0000000..32954ae Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/bubble_dark/top_left.png differ diff --git a/assets/voxygen/element/ui/generic/frames/bubble_dark/top_right.png b/assets/voxygen/element/ui/generic/frames/bubble_dark/top_right.png new file mode 100644 index 0000000..b29c9fe Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/bubble_dark/top_right.png differ diff --git a/assets/voxygen/element/ui/generic/frames/divider.vox b/assets/voxygen/element/ui/generic/frames/divider.vox new file mode 100644 index 0000000..c3c4879 Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/divider.vox differ diff --git a/assets/voxygen/element/ui/generic/frames/divider_charwindow.vox b/assets/voxygen/element/ui/generic/frames/divider_charwindow.vox new file mode 100644 index 0000000..b48d8e2 Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/divider_charwindow.vox differ diff --git a/assets/voxygen/element/ui/generic/frames/enemybar.png b/assets/voxygen/element/ui/generic/frames/enemybar.png new file mode 100644 index 0000000..17c656a Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/enemybar.png differ diff --git a/assets/voxygen/element/ui/generic/frames/enemybar_1.png b/assets/voxygen/element/ui/generic/frames/enemybar_1.png new file mode 100644 index 0000000..d52bbc0 Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/enemybar_1.png differ diff --git a/assets/voxygen/element/ui/generic/frames/enemybar_bg.png b/assets/voxygen/element/ui/generic/frames/enemybar_bg.png new file mode 100644 index 0000000..0534fd7 Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/enemybar_bg.png differ diff --git a/assets/voxygen/element/ui/generic/frames/enemybar_bg_1.png b/assets/voxygen/element/ui/generic/frames/enemybar_bg_1.png new file mode 100644 index 0000000..f5199fd Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/enemybar_bg_1.png differ diff --git a/assets/voxygen/element/ui/generic/frames/esc_menu.png b/assets/voxygen/element/ui/generic/frames/esc_menu.png new file mode 100644 index 0000000..5151471 Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/esc_menu.png differ diff --git a/assets/voxygen/element/ui/generic/frames/frame_art/frame-b_l.vox b/assets/voxygen/element/ui/generic/frames/frame_art/frame-b_l.vox new file mode 100644 index 0000000..d9b5e40 Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/frame_art/frame-b_l.vox differ diff --git a/assets/voxygen/element/ui/generic/frames/frame_art/frame-b_r.vox b/assets/voxygen/element/ui/generic/frames/frame_art/frame-b_r.vox new file mode 100644 index 0000000..4a6b8ab Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/frame_art/frame-b_r.vox differ diff --git a/assets/voxygen/element/ui/generic/frames/frame_art/frame-t_l.vox b/assets/voxygen/element/ui/generic/frames/frame_art/frame-t_l.vox new file mode 100644 index 0000000..58e840b Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/frame_art/frame-t_l.vox differ diff --git a/assets/voxygen/element/ui/generic/frames/frame_art/frame-t_r.vox b/assets/voxygen/element/ui/generic/frames/frame_art/frame-t_r.vox new file mode 100644 index 0000000..ca67864 Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/frame_art/frame-t_r.vox differ diff --git a/assets/voxygen/element/ui/generic/frames/info_frame.vox b/assets/voxygen/element/ui/generic/frames/info_frame.vox new file mode 100644 index 0000000..d08bf68 Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/info_frame.vox differ diff --git a/assets/voxygen/element/ui/generic/frames/loading_screen/loading_bg.png b/assets/voxygen/element/ui/generic/frames/loading_screen/loading_bg.png new file mode 100644 index 0000000..e237a5b Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/loading_screen/loading_bg.png differ diff --git a/assets/voxygen/element/ui/generic/frames/loading_screen/loading_bg_l.png b/assets/voxygen/element/ui/generic/frames/loading_screen/loading_bg_l.png new file mode 100644 index 0000000..33a2741 Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/loading_screen/loading_bg_l.png differ diff --git a/assets/voxygen/element/ui/generic/frames/loading_screen/loading_bg_r.png b/assets/voxygen/element/ui/generic/frames/loading_screen/loading_bg_r.png new file mode 100644 index 0000000..dd6bb81 Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/loading_screen/loading_bg_r.png differ diff --git a/assets/voxygen/element/ui/generic/frames/prompt_dialog_bot.png b/assets/voxygen/element/ui/generic/frames/prompt_dialog_bot.png new file mode 100644 index 0000000..2b0f2af Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/prompt_dialog_bot.png differ diff --git a/assets/voxygen/element/ui/generic/frames/prompt_dialog_mid.png b/assets/voxygen/element/ui/generic/frames/prompt_dialog_mid.png new file mode 100644 index 0000000..062de38 Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/prompt_dialog_mid.png differ diff --git a/assets/voxygen/element/ui/generic/frames/prompt_dialog_top.png b/assets/voxygen/element/ui/generic/frames/prompt_dialog_top.png new file mode 100644 index 0000000..b48f8fd Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/prompt_dialog_top.png differ diff --git a/assets/voxygen/element/ui/generic/frames/selection.png b/assets/voxygen/element/ui/generic/frames/selection.png new file mode 100644 index 0000000..0e210c0 Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/selection.png differ diff --git a/assets/voxygen/element/ui/generic/frames/selection_hover.png b/assets/voxygen/element/ui/generic/frames/selection_hover.png new file mode 100644 index 0000000..51140c1 Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/selection_hover.png differ diff --git a/assets/voxygen/element/ui/generic/frames/selection_press.png b/assets/voxygen/element/ui/generic/frames/selection_press.png new file mode 100644 index 0000000..7fc0e51 Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/selection_press.png differ diff --git a/assets/voxygen/element/ui/generic/frames/tooltip/corner.png b/assets/voxygen/element/ui/generic/frames/tooltip/corner.png new file mode 100644 index 0000000..6deec78 Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/tooltip/corner.png differ diff --git a/assets/voxygen/element/ui/generic/frames/tooltip/edge.png b/assets/voxygen/element/ui/generic/frames/tooltip/edge.png new file mode 100644 index 0000000..67fd1a8 Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/tooltip/edge.png differ diff --git a/assets/voxygen/element/ui/generic/frames/tt_test_corner_tr.png b/assets/voxygen/element/ui/generic/frames/tt_test_corner_tr.png new file mode 100644 index 0000000..f437a3f Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/tt_test_corner_tr.png differ diff --git a/assets/voxygen/element/ui/generic/frames/tt_test_edge.png b/assets/voxygen/element/ui/generic/frames/tt_test_edge.png new file mode 100644 index 0000000..219f51c Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/tt_test_edge.png differ diff --git a/assets/voxygen/element/ui/generic/frames/window_3.png b/assets/voxygen/element/ui/generic/frames/window_3.png new file mode 100644 index 0000000..c0c25a9 Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/window_3.png differ diff --git a/assets/voxygen/element/ui/generic/frames/xp_charwindow.vox b/assets/voxygen/element/ui/generic/frames/xp_charwindow.vox new file mode 100644 index 0000000..90b5497 Binary files /dev/null and b/assets/voxygen/element/ui/generic/frames/xp_charwindow.vox differ diff --git a/assets/voxygen/element/ui/generic/icons/indicator_bubble.png b/assets/voxygen/element/ui/generic/icons/indicator_bubble.png new file mode 100644 index 0000000..d234198 Binary files /dev/null and b/assets/voxygen/element/ui/generic/icons/indicator_bubble.png differ diff --git a/assets/voxygen/element/ui/generic/icons/m1.png b/assets/voxygen/element/ui/generic/icons/m1.png new file mode 100644 index 0000000..b95de9b Binary files /dev/null and b/assets/voxygen/element/ui/generic/icons/m1.png differ diff --git a/assets/voxygen/element/ui/generic/icons/m2.png b/assets/voxygen/element/ui/generic/icons/m2.png new file mode 100644 index 0000000..5ad4324 Binary files /dev/null and b/assets/voxygen/element/ui/generic/icons/m2.png differ diff --git a/assets/voxygen/element/ui/generic/icons/m_click.png b/assets/voxygen/element/ui/generic/icons/m_click.png new file mode 100644 index 0000000..2575e09 Binary files /dev/null and b/assets/voxygen/element/ui/generic/icons/m_click.png differ diff --git a/assets/voxygen/element/ui/generic/icons/m_move.png b/assets/voxygen/element/ui/generic/icons/m_move.png new file mode 100644 index 0000000..f8eb1dd Binary files /dev/null and b/assets/voxygen/element/ui/generic/icons/m_move.png differ diff --git a/assets/voxygen/element/ui/generic/icons/m_scroll.png b/assets/voxygen/element/ui/generic/icons/m_scroll.png new file mode 100755 index 0000000..e802db7 Binary files /dev/null and b/assets/voxygen/element/ui/generic/icons/m_scroll.png differ diff --git a/assets/voxygen/element/ui/generic/icons/skull.png b/assets/voxygen/element/ui/generic/icons/skull.png new file mode 100644 index 0000000..cd674b8 Binary files /dev/null and b/assets/voxygen/element/ui/generic/icons/skull.png differ diff --git a/assets/voxygen/element/ui/generic/icons/skull_2.png b/assets/voxygen/element/ui/generic/icons/skull_2.png new file mode 100644 index 0000000..25fab1c Binary files /dev/null and b/assets/voxygen/element/ui/generic/icons/skull_2.png differ diff --git a/assets/voxygen/element/ui/generic/slider/indicator.png b/assets/voxygen/element/ui/generic/slider/indicator.png new file mode 100644 index 0000000..335e5d8 Binary files /dev/null and b/assets/voxygen/element/ui/generic/slider/indicator.png differ diff --git a/assets/voxygen/element/ui/generic/slider/indicator_round.png b/assets/voxygen/element/ui/generic/slider/indicator_round.png new file mode 100644 index 0000000..33ad60e Binary files /dev/null and b/assets/voxygen/element/ui/generic/slider/indicator_round.png differ diff --git a/assets/voxygen/element/ui/generic/slider/scrollbar.png b/assets/voxygen/element/ui/generic/slider/scrollbar.png new file mode 100644 index 0000000..cab801a Binary files /dev/null and b/assets/voxygen/element/ui/generic/slider/scrollbar.png differ diff --git a/assets/voxygen/element/ui/generic/slider/scrollbar_1.png b/assets/voxygen/element/ui/generic/slider/scrollbar_1.png new file mode 100644 index 0000000..ab705eb Binary files /dev/null and b/assets/voxygen/element/ui/generic/slider/scrollbar_1.png differ diff --git a/assets/voxygen/element/ui/generic/slider/track.png b/assets/voxygen/element/ui/generic/slider/track.png new file mode 100644 index 0000000..1a2ceba Binary files /dev/null and b/assets/voxygen/element/ui/generic/slider/track.png differ diff --git a/assets/voxygen/element/ui/generic/textbox.png b/assets/voxygen/element/ui/generic/textbox.png new file mode 100644 index 0000000..869d7dd Binary files /dev/null and b/assets/voxygen/element/ui/generic/textbox.png differ diff --git a/assets/voxygen/element/ui/groups/group_member_bg.png b/assets/voxygen/element/ui/groups/group_member_bg.png new file mode 100644 index 0000000..1ee775d Binary files /dev/null and b/assets/voxygen/element/ui/groups/group_member_bg.png differ diff --git a/assets/voxygen/element/ui/groups/group_member_frame.png b/assets/voxygen/element/ui/groups/group_member_frame.png new file mode 100644 index 0000000..eeee0cf Binary files /dev/null and b/assets/voxygen/element/ui/groups/group_member_frame.png differ diff --git a/assets/voxygen/element/ui/invite/progress.png b/assets/voxygen/element/ui/invite/progress.png new file mode 100644 index 0000000..5c93787 Binary files /dev/null and b/assets/voxygen/element/ui/invite/progress.png differ diff --git a/assets/voxygen/element/ui/invite/progress_bar.png b/assets/voxygen/element/ui/invite/progress_bar.png new file mode 100644 index 0000000..dda2627 Binary files /dev/null and b/assets/voxygen/element/ui/invite/progress_bar.png differ diff --git a/assets/voxygen/element/ui/map/buttons/adlet.png b/assets/voxygen/element/ui/map/buttons/adlet.png new file mode 100644 index 0000000..b5de6b5 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/adlet.png differ diff --git a/assets/voxygen/element/ui/map/buttons/adlet_bg.png b/assets/voxygen/element/ui/map/buttons/adlet_bg.png new file mode 100644 index 0000000..121dded Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/adlet_bg.png differ diff --git a/assets/voxygen/element/ui/map/buttons/adlet_hover.png b/assets/voxygen/element/ui/map/buttons/adlet_hover.png new file mode 100644 index 0000000..2c05f62 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/adlet_hover.png differ diff --git a/assets/voxygen/element/ui/map/buttons/biome.png b/assets/voxygen/element/ui/map/buttons/biome.png new file mode 100644 index 0000000..2d785f9 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/biome.png differ diff --git a/assets/voxygen/element/ui/map/buttons/bloodmoon_heiress.png b/assets/voxygen/element/ui/map/buttons/bloodmoon_heiress.png new file mode 100644 index 0000000..26f50a7 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/bloodmoon_heiress.png differ diff --git a/assets/voxygen/element/ui/map/buttons/bloodmoon_heiress_bg.png b/assets/voxygen/element/ui/map/buttons/bloodmoon_heiress_bg.png new file mode 100644 index 0000000..6d8ef9f Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/bloodmoon_heiress_bg.png differ diff --git a/assets/voxygen/element/ui/map/buttons/bloodmoon_heiress_hover.png b/assets/voxygen/element/ui/map/buttons/bloodmoon_heiress_hover.png new file mode 100644 index 0000000..9af3460 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/bloodmoon_heiress_hover.png differ diff --git a/assets/voxygen/element/ui/map/buttons/bridge.png b/assets/voxygen/element/ui/map/buttons/bridge.png new file mode 100644 index 0000000..4c43a52 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/bridge.png differ diff --git a/assets/voxygen/element/ui/map/buttons/bridge_bg.png b/assets/voxygen/element/ui/map/buttons/bridge_bg.png new file mode 100644 index 0000000..70dcbf8 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/bridge_bg.png differ diff --git a/assets/voxygen/element/ui/map/buttons/bridge_hover.png b/assets/voxygen/element/ui/map/buttons/bridge_hover.png new file mode 100644 index 0000000..653768b Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/bridge_hover.png differ diff --git a/assets/voxygen/element/ui/map/buttons/castle.png b/assets/voxygen/element/ui/map/buttons/castle.png new file mode 100644 index 0000000..1ae3352 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/castle.png differ diff --git a/assets/voxygen/element/ui/map/buttons/castle_bg.png b/assets/voxygen/element/ui/map/buttons/castle_bg.png new file mode 100644 index 0000000..14f44dc Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/castle_bg.png differ diff --git a/assets/voxygen/element/ui/map/buttons/castle_hover.png b/assets/voxygen/element/ui/map/buttons/castle_hover.png new file mode 100644 index 0000000..e45ece4 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/castle_hover.png differ diff --git a/assets/voxygen/element/ui/map/buttons/cave.png b/assets/voxygen/element/ui/map/buttons/cave.png new file mode 100644 index 0000000..9958abe Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/cave.png differ diff --git a/assets/voxygen/element/ui/map/buttons/cave_bg.png b/assets/voxygen/element/ui/map/buttons/cave_bg.png new file mode 100644 index 0000000..e0f893f Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/cave_bg.png differ diff --git a/assets/voxygen/element/ui/map/buttons/cave_hover.png b/assets/voxygen/element/ui/map/buttons/cave_hover.png new file mode 100644 index 0000000..8ff734f Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/cave_hover.png differ diff --git a/assets/voxygen/element/ui/map/buttons/dungeon.png b/assets/voxygen/element/ui/map/buttons/dungeon.png new file mode 100644 index 0000000..cdbe279 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/dungeon.png differ diff --git a/assets/voxygen/element/ui/map/buttons/dungeon_bg.png b/assets/voxygen/element/ui/map/buttons/dungeon_bg.png new file mode 100644 index 0000000..b8541bc Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/dungeon_bg.png differ diff --git a/assets/voxygen/element/ui/map/buttons/dungeon_hover.png b/assets/voxygen/element/ui/map/buttons/dungeon_hover.png new file mode 100644 index 0000000..7469bc8 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/dungeon_hover.png differ diff --git a/assets/voxygen/element/ui/map/buttons/excl.png b/assets/voxygen/element/ui/map/buttons/excl.png new file mode 100644 index 0000000..ca5cf43 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/excl.png differ diff --git a/assets/voxygen/element/ui/map/buttons/glider_course.png b/assets/voxygen/element/ui/map/buttons/glider_course.png new file mode 100644 index 0000000..022b167 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/glider_course.png differ diff --git a/assets/voxygen/element/ui/map/buttons/glider_course_bg.png b/assets/voxygen/element/ui/map/buttons/glider_course_bg.png new file mode 100644 index 0000000..e8a9ae2 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/glider_course_bg.png differ diff --git a/assets/voxygen/element/ui/map/buttons/glider_course_hover.png b/assets/voxygen/element/ui/map/buttons/glider_course_hover.png new file mode 100644 index 0000000..e18fa2d Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/glider_course_hover.png differ diff --git a/assets/voxygen/element/ui/map/buttons/gnarling.png b/assets/voxygen/element/ui/map/buttons/gnarling.png new file mode 100644 index 0000000..617e8f0 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/gnarling.png differ diff --git a/assets/voxygen/element/ui/map/buttons/gnarling_bg.png b/assets/voxygen/element/ui/map/buttons/gnarling_bg.png new file mode 100644 index 0000000..69edf25 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/gnarling_bg.png differ diff --git a/assets/voxygen/element/ui/map/buttons/gnarling_hover.png b/assets/voxygen/element/ui/map/buttons/gnarling_hover.png new file mode 100644 index 0000000..71a6fcb Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/gnarling_hover.png differ diff --git a/assets/voxygen/element/ui/map/buttons/group_indicator.png b/assets/voxygen/element/ui/map/buttons/group_indicator.png new file mode 100644 index 0000000..95869db Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/group_indicator.png differ diff --git a/assets/voxygen/element/ui/map/buttons/group_indicator_arrow_down.png b/assets/voxygen/element/ui/map/buttons/group_indicator_arrow_down.png new file mode 100644 index 0000000..3dafee4 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/group_indicator_arrow_down.png differ diff --git a/assets/voxygen/element/ui/map/buttons/group_indicator_arrow_up.png b/assets/voxygen/element/ui/map/buttons/group_indicator_arrow_up.png new file mode 100644 index 0000000..68e8a65 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/group_indicator_arrow_up.png differ diff --git a/assets/voxygen/element/ui/map/buttons/group_indicator_hover.png b/assets/voxygen/element/ui/map/buttons/group_indicator_hover.png new file mode 100644 index 0000000..921fd0a Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/group_indicator_hover.png differ diff --git a/assets/voxygen/element/ui/map/buttons/haniwa.png b/assets/voxygen/element/ui/map/buttons/haniwa.png new file mode 100644 index 0000000..1ffddb9 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/haniwa.png differ diff --git a/assets/voxygen/element/ui/map/buttons/haniwa_bg.png b/assets/voxygen/element/ui/map/buttons/haniwa_bg.png new file mode 100644 index 0000000..4c583cf Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/haniwa_bg.png differ diff --git a/assets/voxygen/element/ui/map/buttons/haniwa_hover.png b/assets/voxygen/element/ui/map/buttons/haniwa_hover.png new file mode 100644 index 0000000..5464415 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/haniwa_hover.png differ diff --git a/assets/voxygen/element/ui/map/buttons/location_marker.png b/assets/voxygen/element/ui/map/buttons/location_marker.png new file mode 100755 index 0000000..3a4991e Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/location_marker.png differ diff --git a/assets/voxygen/element/ui/map/buttons/location_marker_group.png b/assets/voxygen/element/ui/map/buttons/location_marker_group.png new file mode 100644 index 0000000..821addb Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/location_marker_group.png differ diff --git a/assets/voxygen/element/ui/map/buttons/location_marker_group_leader.png b/assets/voxygen/element/ui/map/buttons/location_marker_group_leader.png new file mode 100644 index 0000000..325a35f Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/location_marker_group_leader.png differ diff --git a/assets/voxygen/element/ui/map/buttons/map_modes.png b/assets/voxygen/element/ui/map/buttons/map_modes.png new file mode 100644 index 0000000..0181a10 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/map_modes.png differ diff --git a/assets/voxygen/element/ui/map/buttons/mindflayer.png b/assets/voxygen/element/ui/map/buttons/mindflayer.png new file mode 100644 index 0000000..0e8cc14 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/mindflayer.png differ diff --git a/assets/voxygen/element/ui/map/buttons/mindflayer_bg.png b/assets/voxygen/element/ui/map/buttons/mindflayer_bg.png new file mode 100644 index 0000000..965273c Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/mindflayer_bg.png differ diff --git a/assets/voxygen/element/ui/map/buttons/mindflayer_hover.png b/assets/voxygen/element/ui/map/buttons/mindflayer_hover.png new file mode 100644 index 0000000..01c299c Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/mindflayer_hover.png differ diff --git a/assets/voxygen/element/ui/map/buttons/mine.png b/assets/voxygen/element/ui/map/buttons/mine.png new file mode 100644 index 0000000..0c9d0f8 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/mine.png differ diff --git a/assets/voxygen/element/ui/map/buttons/mine_bg.png b/assets/voxygen/element/ui/map/buttons/mine_bg.png new file mode 100644 index 0000000..490bdf8 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/mine_bg.png differ diff --git a/assets/voxygen/element/ui/map/buttons/mine_hover.png b/assets/voxygen/element/ui/map/buttons/mine_hover.png new file mode 100644 index 0000000..4af0fac Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/mine_hover.png differ diff --git a/assets/voxygen/element/ui/map/buttons/minimap_modes.png b/assets/voxygen/element/ui/map/buttons/minimap_modes.png new file mode 100644 index 0000000..8a64d8f Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/minimap_modes.png differ diff --git a/assets/voxygen/element/ui/map/buttons/minotaur.png b/assets/voxygen/element/ui/map/buttons/minotaur.png new file mode 100644 index 0000000..09d4d47 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/minotaur.png differ diff --git a/assets/voxygen/element/ui/map/buttons/minotaur_bg.png b/assets/voxygen/element/ui/map/buttons/minotaur_bg.png new file mode 100644 index 0000000..d66a8b3 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/minotaur_bg.png differ diff --git a/assets/voxygen/element/ui/map/buttons/minotaur_hover.png b/assets/voxygen/element/ui/map/buttons/minotaur_hover.png new file mode 100644 index 0000000..e7a251b Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/minotaur_hover.png differ diff --git a/assets/voxygen/element/ui/map/buttons/peak.png b/assets/voxygen/element/ui/map/buttons/peak.png new file mode 100644 index 0000000..512f607 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/peak.png differ diff --git a/assets/voxygen/element/ui/map/buttons/peak_hover.png b/assets/voxygen/element/ui/map/buttons/peak_hover.png new file mode 100644 index 0000000..5301b0d Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/peak_hover.png differ diff --git a/assets/voxygen/element/ui/map/buttons/sea_chapel.png b/assets/voxygen/element/ui/map/buttons/sea_chapel.png new file mode 100644 index 0000000..abeb1e6 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/sea_chapel.png differ diff --git a/assets/voxygen/element/ui/map/buttons/sea_chapel_bg.png b/assets/voxygen/element/ui/map/buttons/sea_chapel_bg.png new file mode 100644 index 0000000..a045c70 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/sea_chapel_bg.png differ diff --git a/assets/voxygen/element/ui/map/buttons/sea_chapel_hover.png b/assets/voxygen/element/ui/map/buttons/sea_chapel_hover.png new file mode 100644 index 0000000..8056be6 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/sea_chapel_hover.png differ diff --git a/assets/voxygen/element/ui/map/buttons/terracotta.png b/assets/voxygen/element/ui/map/buttons/terracotta.png new file mode 100644 index 0000000..bafe412 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/terracotta.png differ diff --git a/assets/voxygen/element/ui/map/buttons/terracotta_bg.png b/assets/voxygen/element/ui/map/buttons/terracotta_bg.png new file mode 100644 index 0000000..bf31404 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/terracotta_bg.png differ diff --git a/assets/voxygen/element/ui/map/buttons/terracotta_hover.png b/assets/voxygen/element/ui/map/buttons/terracotta_hover.png new file mode 100644 index 0000000..f5214cc Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/terracotta_hover.png differ diff --git a/assets/voxygen/element/ui/map/buttons/tidal_warrior.png b/assets/voxygen/element/ui/map/buttons/tidal_warrior.png new file mode 100644 index 0000000..d2659ed Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/tidal_warrior.png differ diff --git a/assets/voxygen/element/ui/map/buttons/tidal_warrior_bg.png b/assets/voxygen/element/ui/map/buttons/tidal_warrior_bg.png new file mode 100644 index 0000000..965273c Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/tidal_warrior_bg.png differ diff --git a/assets/voxygen/element/ui/map/buttons/tidal_warrior_hover.png b/assets/voxygen/element/ui/map/buttons/tidal_warrior_hover.png new file mode 100644 index 0000000..c60cd6e Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/tidal_warrior_hover.png differ diff --git a/assets/voxygen/element/ui/map/buttons/topographic.png b/assets/voxygen/element/ui/map/buttons/topographic.png new file mode 100644 index 0000000..aa3ebd8 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/topographic.png differ diff --git a/assets/voxygen/element/ui/map/buttons/town.png b/assets/voxygen/element/ui/map/buttons/town.png new file mode 100644 index 0000000..42168fd Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/town.png differ diff --git a/assets/voxygen/element/ui/map/buttons/town_bg.png b/assets/voxygen/element/ui/map/buttons/town_bg.png new file mode 100644 index 0000000..a0f55bf Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/town_bg.png differ diff --git a/assets/voxygen/element/ui/map/buttons/town_hover.png b/assets/voxygen/element/ui/map/buttons/town_hover.png new file mode 100644 index 0000000..9dd5a77 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/town_hover.png differ diff --git a/assets/voxygen/element/ui/map/buttons/tree.png b/assets/voxygen/element/ui/map/buttons/tree.png new file mode 100644 index 0000000..ecf065c Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/tree.png differ diff --git a/assets/voxygen/element/ui/map/buttons/tree_hover.png b/assets/voxygen/element/ui/map/buttons/tree_hover.png new file mode 100644 index 0000000..6d36478 Binary files /dev/null and b/assets/voxygen/element/ui/map/buttons/tree_hover.png differ diff --git a/assets/voxygen/element/ui/map/icons/dif_1.png b/assets/voxygen/element/ui/map/icons/dif_1.png new file mode 100644 index 0000000..987b2bc Binary files /dev/null and b/assets/voxygen/element/ui/map/icons/dif_1.png differ diff --git a/assets/voxygen/element/ui/map/icons/dif_2.png b/assets/voxygen/element/ui/map/icons/dif_2.png new file mode 100644 index 0000000..ee32012 Binary files /dev/null and b/assets/voxygen/element/ui/map/icons/dif_2.png differ diff --git a/assets/voxygen/element/ui/map/icons/dif_3.png b/assets/voxygen/element/ui/map/icons/dif_3.png new file mode 100644 index 0000000..93a10ec Binary files /dev/null and b/assets/voxygen/element/ui/map/icons/dif_3.png differ diff --git a/assets/voxygen/element/ui/map/icons/dif_4.png b/assets/voxygen/element/ui/map/icons/dif_4.png new file mode 100644 index 0000000..3c09f39 Binary files /dev/null and b/assets/voxygen/element/ui/map/icons/dif_4.png differ diff --git a/assets/voxygen/element/ui/map/icons/dif_5.png b/assets/voxygen/element/ui/map/icons/dif_5.png new file mode 100644 index 0000000..8243ad5 Binary files /dev/null and b/assets/voxygen/element/ui/map/icons/dif_5.png differ diff --git a/assets/voxygen/element/ui/map/icons/dif_6.png b/assets/voxygen/element/ui/map/icons/dif_6.png new file mode 100644 index 0000000..300ad0d Binary files /dev/null and b/assets/voxygen/element/ui/map/icons/dif_6.png differ diff --git a/assets/voxygen/element/ui/map/icons/dif_map_icon.png b/assets/voxygen/element/ui/map/icons/dif_map_icon.png new file mode 100644 index 0000000..315d6aa Binary files /dev/null and b/assets/voxygen/element/ui/map/icons/dif_map_icon.png differ diff --git a/assets/voxygen/element/ui/map/icons/dif_unknown.png b/assets/voxygen/element/ui/map/icons/dif_unknown.png new file mode 100644 index 0000000..fbc325f Binary files /dev/null and b/assets/voxygen/element/ui/map/icons/dif_unknown.png differ diff --git a/assets/voxygen/element/ui/map/map_bg.png b/assets/voxygen/element/ui/map/map_bg.png new file mode 100644 index 0000000..65b5c4c Binary files /dev/null and b/assets/voxygen/element/ui/map/map_bg.png differ diff --git a/assets/voxygen/element/ui/map/map_frame.png b/assets/voxygen/element/ui/map/map_frame.png new file mode 100644 index 0000000..80bf1bb Binary files /dev/null and b/assets/voxygen/element/ui/map/map_frame.png differ diff --git a/assets/voxygen/element/ui/map/map_frame_art.png b/assets/voxygen/element/ui/map/map_frame_art.png new file mode 100644 index 0000000..01275a1 Binary files /dev/null and b/assets/voxygen/element/ui/map/map_frame_art.png differ diff --git a/assets/voxygen/element/ui/minimap/buttons/button_mmap_closed.png b/assets/voxygen/element/ui/minimap/buttons/button_mmap_closed.png new file mode 100644 index 0000000..f152d95 Binary files /dev/null and b/assets/voxygen/element/ui/minimap/buttons/button_mmap_closed.png differ diff --git a/assets/voxygen/element/ui/minimap/buttons/button_mmap_closed_hover.png b/assets/voxygen/element/ui/minimap/buttons/button_mmap_closed_hover.png new file mode 100644 index 0000000..f456f9c Binary files /dev/null and b/assets/voxygen/element/ui/minimap/buttons/button_mmap_closed_hover.png differ diff --git a/assets/voxygen/element/ui/minimap/buttons/button_mmap_closed_press.png b/assets/voxygen/element/ui/minimap/buttons/button_mmap_closed_press.png new file mode 100644 index 0000000..1bd4227 Binary files /dev/null and b/assets/voxygen/element/ui/minimap/buttons/button_mmap_closed_press.png differ diff --git a/assets/voxygen/element/ui/minimap/buttons/button_mmap_open.png b/assets/voxygen/element/ui/minimap/buttons/button_mmap_open.png new file mode 100644 index 0000000..dafad4b Binary files /dev/null and b/assets/voxygen/element/ui/minimap/buttons/button_mmap_open.png differ diff --git a/assets/voxygen/element/ui/minimap/buttons/button_mmap_open_hover.png b/assets/voxygen/element/ui/minimap/buttons/button_mmap_open_hover.png new file mode 100644 index 0000000..29ebb34 Binary files /dev/null and b/assets/voxygen/element/ui/minimap/buttons/button_mmap_open_hover.png differ diff --git a/assets/voxygen/element/ui/minimap/buttons/button_mmap_open_press.png b/assets/voxygen/element/ui/minimap/buttons/button_mmap_open_press.png new file mode 100644 index 0000000..184d910 Binary files /dev/null and b/assets/voxygen/element/ui/minimap/buttons/button_mmap_open_press.png differ diff --git a/assets/voxygen/element/ui/minimap/buttons/mmap_button-min.png b/assets/voxygen/element/ui/minimap/buttons/mmap_button-min.png new file mode 100644 index 0000000..56df70f Binary files /dev/null and b/assets/voxygen/element/ui/minimap/buttons/mmap_button-min.png differ diff --git a/assets/voxygen/element/ui/minimap/buttons/mmap_button-min_hover.png b/assets/voxygen/element/ui/minimap/buttons/mmap_button-min_hover.png new file mode 100644 index 0000000..1ddaf34 Binary files /dev/null and b/assets/voxygen/element/ui/minimap/buttons/mmap_button-min_hover.png differ diff --git a/assets/voxygen/element/ui/minimap/buttons/mmap_button-min_press.png b/assets/voxygen/element/ui/minimap/buttons/mmap_button-min_press.png new file mode 100644 index 0000000..fb5b1da Binary files /dev/null and b/assets/voxygen/element/ui/minimap/buttons/mmap_button-min_press.png differ diff --git a/assets/voxygen/element/ui/minimap/buttons/mmap_button-north.png b/assets/voxygen/element/ui/minimap/buttons/mmap_button-north.png new file mode 100644 index 0000000..6bbacf3 Binary files /dev/null and b/assets/voxygen/element/ui/minimap/buttons/mmap_button-north.png differ diff --git a/assets/voxygen/element/ui/minimap/buttons/mmap_button-north_hover.png b/assets/voxygen/element/ui/minimap/buttons/mmap_button-north_hover.png new file mode 100644 index 0000000..63c2fb2 Binary files /dev/null and b/assets/voxygen/element/ui/minimap/buttons/mmap_button-north_hover.png differ diff --git a/assets/voxygen/element/ui/minimap/buttons/mmap_button-north_press.png b/assets/voxygen/element/ui/minimap/buttons/mmap_button-north_press.png new file mode 100644 index 0000000..5093b6a Binary files /dev/null and b/assets/voxygen/element/ui/minimap/buttons/mmap_button-north_press.png differ diff --git a/assets/voxygen/element/ui/minimap/buttons/mmap_button-north_press_hover.png b/assets/voxygen/element/ui/minimap/buttons/mmap_button-north_press_hover.png new file mode 100644 index 0000000..b4172e7 Binary files /dev/null and b/assets/voxygen/element/ui/minimap/buttons/mmap_button-north_press_hover.png differ diff --git a/assets/voxygen/element/ui/minimap/buttons/mmap_button-plus.png b/assets/voxygen/element/ui/minimap/buttons/mmap_button-plus.png new file mode 100644 index 0000000..42db646 Binary files /dev/null and b/assets/voxygen/element/ui/minimap/buttons/mmap_button-plus.png differ diff --git a/assets/voxygen/element/ui/minimap/buttons/mmap_button-plus_hover.png b/assets/voxygen/element/ui/minimap/buttons/mmap_button-plus_hover.png new file mode 100644 index 0000000..583763b Binary files /dev/null and b/assets/voxygen/element/ui/minimap/buttons/mmap_button-plus_hover.png differ diff --git a/assets/voxygen/element/ui/minimap/buttons/mmap_button-plus_press.png b/assets/voxygen/element/ui/minimap/buttons/mmap_button-plus_press.png new file mode 100644 index 0000000..acaf523 Binary files /dev/null and b/assets/voxygen/element/ui/minimap/buttons/mmap_button-plus_press.png differ diff --git a/assets/voxygen/element/ui/minimap/icons/indicator_mmap.png b/assets/voxygen/element/ui/minimap/icons/indicator_mmap.png new file mode 100644 index 0000000..004fe0e Binary files /dev/null and b/assets/voxygen/element/ui/minimap/icons/indicator_mmap.png differ diff --git a/assets/voxygen/element/ui/minimap/icons/indicator_mmap_small.png b/assets/voxygen/element/ui/minimap/icons/indicator_mmap_small.png new file mode 100644 index 0000000..6e6476f Binary files /dev/null and b/assets/voxygen/element/ui/minimap/icons/indicator_mmap_small.png differ diff --git a/assets/voxygen/element/ui/minimap/mmap.png b/assets/voxygen/element/ui/minimap/mmap.png new file mode 100644 index 0000000..28de121 Binary files /dev/null and b/assets/voxygen/element/ui/minimap/mmap.png differ diff --git a/assets/voxygen/element/ui/minimap/mmap_closed.png b/assets/voxygen/element/ui/minimap/mmap_closed.png new file mode 100644 index 0000000..59d167b Binary files /dev/null and b/assets/voxygen/element/ui/minimap/mmap_closed.png differ diff --git a/assets/voxygen/element/ui/minimap/mmap_frame.png b/assets/voxygen/element/ui/minimap/mmap_frame.png new file mode 100644 index 0000000..5997fde Binary files /dev/null and b/assets/voxygen/element/ui/minimap/mmap_frame.png differ diff --git a/assets/voxygen/element/ui/quests/quest_bg.png b/assets/voxygen/element/ui/quests/quest_bg.png new file mode 100644 index 0000000..f62f23e Binary files /dev/null and b/assets/voxygen/element/ui/quests/quest_bg.png differ diff --git a/assets/voxygen/element/ui/quests/quest_frame.png b/assets/voxygen/element/ui/quests/quest_frame.png new file mode 100644 index 0000000..ee384ac Binary files /dev/null and b/assets/voxygen/element/ui/quests/quest_frame.png differ diff --git a/assets/voxygen/element/ui/quests/quest_icon.png b/assets/voxygen/element/ui/quests/quest_icon.png new file mode 100644 index 0000000..e625d84 Binary files /dev/null and b/assets/voxygen/element/ui/quests/quest_icon.png differ diff --git a/assets/voxygen/element/ui/quests/temp_quest_bg.png b/assets/voxygen/element/ui/quests/temp_quest_bg.png new file mode 100644 index 0000000..9e3dc4d Binary files /dev/null and b/assets/voxygen/element/ui/quests/temp_quest_bg.png differ diff --git a/assets/voxygen/element/ui/settings/buttons/settings_button.png b/assets/voxygen/element/ui/settings/buttons/settings_button.png new file mode 100644 index 0000000..4755552 Binary files /dev/null and b/assets/voxygen/element/ui/settings/buttons/settings_button.png differ diff --git a/assets/voxygen/element/ui/settings/buttons/settings_button_hover.png b/assets/voxygen/element/ui/settings/buttons/settings_button_hover.png new file mode 100644 index 0000000..2bc6ce9 Binary files /dev/null and b/assets/voxygen/element/ui/settings/buttons/settings_button_hover.png differ diff --git a/assets/voxygen/element/ui/settings/buttons/settings_button_plus.png b/assets/voxygen/element/ui/settings/buttons/settings_button_plus.png new file mode 100644 index 0000000..5941d8f Binary files /dev/null and b/assets/voxygen/element/ui/settings/buttons/settings_button_plus.png differ diff --git a/assets/voxygen/element/ui/settings/buttons/settings_button_plus_hover.png b/assets/voxygen/element/ui/settings/buttons/settings_button_plus_hover.png new file mode 100644 index 0000000..0756ba4 Binary files /dev/null and b/assets/voxygen/element/ui/settings/buttons/settings_button_plus_hover.png differ diff --git a/assets/voxygen/element/ui/settings/buttons/settings_button_plus_press.png b/assets/voxygen/element/ui/settings/buttons/settings_button_plus_press.png new file mode 100644 index 0000000..91dbde7 Binary files /dev/null and b/assets/voxygen/element/ui/settings/buttons/settings_button_plus_press.png differ diff --git a/assets/voxygen/element/ui/settings/buttons/settings_button_press.png b/assets/voxygen/element/ui/settings/buttons/settings_button_press.png new file mode 100644 index 0000000..e637cc0 Binary files /dev/null and b/assets/voxygen/element/ui/settings/buttons/settings_button_press.png differ diff --git a/assets/voxygen/element/ui/settings/buttons/settings_button_pressed.png b/assets/voxygen/element/ui/settings/buttons/settings_button_pressed.png new file mode 100644 index 0000000..729bae5 Binary files /dev/null and b/assets/voxygen/element/ui/settings/buttons/settings_button_pressed.png differ diff --git a/assets/voxygen/element/ui/settings/chat_tab_settings_bg.png b/assets/voxygen/element/ui/settings/chat_tab_settings_bg.png new file mode 100644 index 0000000..83d85ca Binary files /dev/null and b/assets/voxygen/element/ui/settings/chat_tab_settings_bg.png differ diff --git a/assets/voxygen/element/ui/settings/chat_tab_settings_frame.png b/assets/voxygen/element/ui/settings/chat_tab_settings_frame.png new file mode 100644 index 0000000..39b8997 Binary files /dev/null and b/assets/voxygen/element/ui/settings/chat_tab_settings_frame.png differ diff --git a/assets/voxygen/element/ui/settings/icons/crosshair_bg.png b/assets/voxygen/element/ui/settings/icons/crosshair_bg.png new file mode 100644 index 0000000..4f2f645 Binary files /dev/null and b/assets/voxygen/element/ui/settings/icons/crosshair_bg.png differ diff --git a/assets/voxygen/element/ui/settings/icons/crosshair_bg_hover.png b/assets/voxygen/element/ui/settings/icons/crosshair_bg_hover.png new file mode 100644 index 0000000..77426ff Binary files /dev/null and b/assets/voxygen/element/ui/settings/icons/crosshair_bg_hover.png differ diff --git a/assets/voxygen/element/ui/settings/icons/crosshair_bg_press.png b/assets/voxygen/element/ui/settings/icons/crosshair_bg_press.png new file mode 100644 index 0000000..ea7c745 Binary files /dev/null and b/assets/voxygen/element/ui/settings/icons/crosshair_bg_press.png differ diff --git a/assets/voxygen/element/ui/settings/icons/crosshair_bg_pressed.png b/assets/voxygen/element/ui/settings/icons/crosshair_bg_pressed.png new file mode 100644 index 0000000..77426ff Binary files /dev/null and b/assets/voxygen/element/ui/settings/icons/crosshair_bg_pressed.png differ diff --git a/assets/voxygen/element/ui/settings/icons/crosshair_inner.png b/assets/voxygen/element/ui/settings/icons/crosshair_inner.png new file mode 100644 index 0000000..69a673b Binary files /dev/null and b/assets/voxygen/element/ui/settings/icons/crosshair_inner.png differ diff --git a/assets/voxygen/element/ui/settings/icons/crosshair_outer_1.png b/assets/voxygen/element/ui/settings/icons/crosshair_outer_1.png new file mode 100644 index 0000000..913eb5c Binary files /dev/null and b/assets/voxygen/element/ui/settings/icons/crosshair_outer_1.png differ diff --git a/assets/voxygen/element/ui/settings/icons/crosshair_outer_2.png b/assets/voxygen/element/ui/settings/icons/crosshair_outer_2.png new file mode 100644 index 0000000..abaa462 Binary files /dev/null and b/assets/voxygen/element/ui/settings/icons/crosshair_outer_2.png differ diff --git a/assets/voxygen/element/ui/settings/icons/crosshair_outer_3.png b/assets/voxygen/element/ui/settings/icons/crosshair_outer_3.png new file mode 100644 index 0000000..c9fa522 Binary files /dev/null and b/assets/voxygen/element/ui/settings/icons/crosshair_outer_3.png differ diff --git a/assets/voxygen/element/ui/settings/settings_bg.png b/assets/voxygen/element/ui/settings/settings_bg.png new file mode 100644 index 0000000..6fd05ad Binary files /dev/null and b/assets/voxygen/element/ui/settings/settings_bg.png differ diff --git a/assets/voxygen/element/ui/settings/settings_frame.png b/assets/voxygen/element/ui/settings/settings_frame.png new file mode 100644 index 0000000..54b428b Binary files /dev/null and b/assets/voxygen/element/ui/settings/settings_frame.png differ diff --git a/assets/voxygen/element/ui/skillbar/bag_frame.png b/assets/voxygen/element/ui/skillbar/bag_frame.png new file mode 100644 index 0000000..e1764c4 Binary files /dev/null and b/assets/voxygen/element/ui/skillbar/bag_frame.png differ diff --git a/assets/voxygen/element/ui/skillbar/bar_content.png b/assets/voxygen/element/ui/skillbar/bar_content.png new file mode 100644 index 0000000..0af0346 Binary files /dev/null and b/assets/voxygen/element/ui/skillbar/bar_content.png differ diff --git a/assets/voxygen/element/ui/skillbar/bg.png b/assets/voxygen/element/ui/skillbar/bg.png new file mode 100644 index 0000000..9069a8a Binary files /dev/null and b/assets/voxygen/element/ui/skillbar/bg.png differ diff --git a/assets/voxygen/element/ui/skillbar/decayed_bg.png b/assets/voxygen/element/ui/skillbar/decayed_bg.png new file mode 100644 index 0000000..25777aa Binary files /dev/null and b/assets/voxygen/element/ui/skillbar/decayed_bg.png differ diff --git a/assets/voxygen/element/ui/skillbar/enemy_bar_content.png b/assets/voxygen/element/ui/skillbar/enemy_bar_content.png new file mode 100644 index 0000000..559c81e Binary files /dev/null and b/assets/voxygen/element/ui/skillbar/enemy_bar_content.png differ diff --git a/assets/voxygen/element/ui/skillbar/energy_bg.png b/assets/voxygen/element/ui/skillbar/energy_bg.png new file mode 100644 index 0000000..980aef8 Binary files /dev/null and b/assets/voxygen/element/ui/skillbar/energy_bg.png differ diff --git a/assets/voxygen/element/ui/skillbar/energy_frame.png b/assets/voxygen/element/ui/skillbar/energy_frame.png new file mode 100644 index 0000000..089b7df Binary files /dev/null and b/assets/voxygen/element/ui/skillbar/energy_frame.png differ diff --git a/assets/voxygen/element/ui/skillbar/exp_frame.png b/assets/voxygen/element/ui/skillbar/exp_frame.png new file mode 100644 index 0000000..e4670db Binary files /dev/null and b/assets/voxygen/element/ui/skillbar/exp_frame.png differ diff --git a/assets/voxygen/element/ui/skillbar/exp_frame_bg.png b/assets/voxygen/element/ui/skillbar/exp_frame_bg.png new file mode 100644 index 0000000..531f249 Binary files /dev/null and b/assets/voxygen/element/ui/skillbar/exp_frame_bg.png differ diff --git a/assets/voxygen/element/ui/skillbar/frame.png b/assets/voxygen/element/ui/skillbar/frame.png new file mode 100644 index 0000000..3764b96 Binary files /dev/null and b/assets/voxygen/element/ui/skillbar/frame.png differ diff --git a/assets/voxygen/element/ui/skillbar/health_bg.png b/assets/voxygen/element/ui/skillbar/health_bg.png new file mode 100644 index 0000000..f733bc5 Binary files /dev/null and b/assets/voxygen/element/ui/skillbar/health_bg.png differ diff --git a/assets/voxygen/element/ui/skillbar/health_frame.png b/assets/voxygen/element/ui/skillbar/health_frame.png new file mode 100644 index 0000000..92705ee Binary files /dev/null and b/assets/voxygen/element/ui/skillbar/health_frame.png differ diff --git a/assets/voxygen/element/ui/skillbar/level_up.png b/assets/voxygen/element/ui/skillbar/level_up.png new file mode 100644 index 0000000..1d50b68 Binary files /dev/null and b/assets/voxygen/element/ui/skillbar/level_up.png differ diff --git a/assets/voxygen/element/ui/skillbar/poise_bg.png b/assets/voxygen/element/ui/skillbar/poise_bg.png new file mode 100644 index 0000000..980aef8 Binary files /dev/null and b/assets/voxygen/element/ui/skillbar/poise_bg.png differ diff --git a/assets/voxygen/element/ui/skillbar/poise_frame.png b/assets/voxygen/element/ui/skillbar/poise_frame.png new file mode 100644 index 0000000..089b7df Binary files /dev/null and b/assets/voxygen/element/ui/skillbar/poise_frame.png differ diff --git a/assets/voxygen/element/ui/skillbar/selected_exp_frame.png b/assets/voxygen/element/ui/skillbar/selected_exp_frame.png new file mode 100644 index 0000000..133c21e Binary files /dev/null and b/assets/voxygen/element/ui/skillbar/selected_exp_frame.png differ diff --git a/assets/voxygen/element/ui/skillbar/selected_exp_frame_bg.png b/assets/voxygen/element/ui/skillbar/selected_exp_frame_bg.png new file mode 100644 index 0000000..64fbee5 Binary files /dev/null and b/assets/voxygen/element/ui/skillbar/selected_exp_frame_bg.png differ diff --git a/assets/voxygen/element/ui/skillbar/slot.png b/assets/voxygen/element/ui/skillbar/slot.png new file mode 100644 index 0000000..d1ed2ec Binary files /dev/null and b/assets/voxygen/element/ui/skillbar/slot.png differ diff --git a/assets/voxygen/element/ui/social/social_bg.png b/assets/voxygen/element/ui/social/social_bg.png new file mode 100644 index 0000000..eece6f1 Binary files /dev/null and b/assets/voxygen/element/ui/social/social_bg.png differ diff --git a/assets/voxygen/element/ui/social/social_frame.png b/assets/voxygen/element/ui/social/social_frame.png new file mode 100644 index 0000000..c25697c Binary files /dev/null and b/assets/voxygen/element/ui/social/social_frame.png differ diff --git a/assets/voxygen/element/ui/social/social_tab_active.png b/assets/voxygen/element/ui/social/social_tab_active.png new file mode 100644 index 0000000..5c1dba8 Binary files /dev/null and b/assets/voxygen/element/ui/social/social_tab_active.png differ diff --git a/assets/voxygen/element/v_logo.png b/assets/voxygen/element/v_logo.png new file mode 100644 index 0000000..4959f86 Binary files /dev/null and b/assets/voxygen/element/v_logo.png differ diff --git a/assets/voxygen/element/v_logo.vox b/assets/voxygen/element/v_logo.vox new file mode 100644 index 0000000..e40c77b Binary files /dev/null and b/assets/voxygen/element/v_logo.vox differ diff --git a/assets/voxygen/element/weapons/axe.png b/assets/voxygen/element/weapons/axe.png new file mode 100644 index 0000000..ea20fcc Binary files /dev/null and b/assets/voxygen/element/weapons/axe.png differ diff --git a/assets/voxygen/element/weapons/bow.png b/assets/voxygen/element/weapons/bow.png new file mode 100644 index 0000000..44d3c1f Binary files /dev/null and b/assets/voxygen/element/weapons/bow.png differ diff --git a/assets/voxygen/element/weapons/daggers.png b/assets/voxygen/element/weapons/daggers.png new file mode 100644 index 0000000..73e476d Binary files /dev/null and b/assets/voxygen/element/weapons/daggers.png differ diff --git a/assets/voxygen/element/weapons/dig.png b/assets/voxygen/element/weapons/dig.png new file mode 100644 index 0000000..d5cd0be Binary files /dev/null and b/assets/voxygen/element/weapons/dig.png differ diff --git a/assets/voxygen/element/weapons/hammer.png b/assets/voxygen/element/weapons/hammer.png new file mode 100644 index 0000000..ac5eb11 Binary files /dev/null and b/assets/voxygen/element/weapons/hammer.png differ diff --git a/assets/voxygen/element/weapons/mining.png b/assets/voxygen/element/weapons/mining.png new file mode 100644 index 0000000..3f7e00c Binary files /dev/null and b/assets/voxygen/element/weapons/mining.png differ diff --git a/assets/voxygen/element/weapons/pickaxe.png b/assets/voxygen/element/weapons/pickaxe.png new file mode 100644 index 0000000..ca6df22 Binary files /dev/null and b/assets/voxygen/element/weapons/pickaxe.png differ diff --git a/assets/voxygen/element/weapons/sceptre.png b/assets/voxygen/element/weapons/sceptre.png new file mode 100644 index 0000000..6131665 Binary files /dev/null and b/assets/voxygen/element/weapons/sceptre.png differ diff --git a/assets/voxygen/element/weapons/staff.png b/assets/voxygen/element/weapons/staff.png new file mode 100644 index 0000000..a412a3f Binary files /dev/null and b/assets/voxygen/element/weapons/staff.png differ diff --git a/assets/voxygen/element/weapons/sword.png b/assets/voxygen/element/weapons/sword.png new file mode 100644 index 0000000..2874cfe Binary files /dev/null and b/assets/voxygen/element/weapons/sword.png differ diff --git a/assets/voxygen/element/weapons/swords.png b/assets/voxygen/element/weapons/swords.png new file mode 100644 index 0000000..f61c7a9 Binary files /dev/null and b/assets/voxygen/element/weapons/swords.png differ diff --git a/assets/voxygen/element/weapons/swords_crossed.png b/assets/voxygen/element/weapons/swords_crossed.png new file mode 100644 index 0000000..a72f2db Binary files /dev/null and b/assets/voxygen/element/weapons/swords_crossed.png differ diff --git a/assets/voxygen/element/weapons/swordshield.png b/assets/voxygen/element/weapons/swordshield.png new file mode 100644 index 0000000..7e8126c Binary files /dev/null and b/assets/voxygen/element/weapons/swordshield.png differ diff --git a/assets/voxygen/font/Alkhemikal.ttf b/assets/voxygen/font/Alkhemikal.ttf new file mode 100644 index 0000000..3919a81 Binary files /dev/null and b/assets/voxygen/font/Alkhemikal.ttf differ diff --git a/assets/voxygen/font/Metamorphous-OFL.txt b/assets/voxygen/font/Metamorphous-OFL.txt new file mode 100644 index 0000000..ab509e6 --- /dev/null +++ b/assets/voxygen/font/Metamorphous-OFL.txt @@ -0,0 +1,94 @@ +Copyright (c) 2011-2012 by Sorkin Type Co (www.sorkintype.com), +with Reserved Font Name "Metamorphous". + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/assets/voxygen/font/Metamorphous-Regular.ttf b/assets/voxygen/font/Metamorphous-Regular.ttf new file mode 100644 index 0000000..2962aea Binary files /dev/null and b/assets/voxygen/font/Metamorphous-Regular.ttf differ diff --git a/assets/voxygen/font/NotoSansTC-Regular-OFL.txt b/assets/voxygen/font/NotoSansTC-Regular-OFL.txt new file mode 100644 index 0000000..de3c0b8 --- /dev/null +++ b/assets/voxygen/font/NotoSansTC-Regular-OFL.txt @@ -0,0 +1,91 @@ +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/assets/voxygen/font/NotoSansTC-Regular.ttf b/assets/voxygen/font/NotoSansTC-Regular.ttf new file mode 100644 index 0000000..a785aae Binary files /dev/null and b/assets/voxygen/font/NotoSansTC-Regular.ttf differ diff --git a/assets/voxygen/font/OpenSans-Regular-LICENSE.txt b/assets/voxygen/font/OpenSans-Regular-LICENSE.txt new file mode 100644 index 0000000..75b5248 --- /dev/null +++ b/assets/voxygen/font/OpenSans-Regular-LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/assets/voxygen/font/OpenSans-Regular.ttf b/assets/voxygen/font/OpenSans-Regular.ttf new file mode 100644 index 0000000..2e31d02 Binary files /dev/null and b/assets/voxygen/font/OpenSans-Regular.ttf differ diff --git a/assets/voxygen/font/Sarabun-Regular.ttf b/assets/voxygen/font/Sarabun-Regular.ttf new file mode 100644 index 0000000..50fa707 Binary files /dev/null and b/assets/voxygen/font/Sarabun-Regular.ttf differ diff --git a/assets/voxygen/font/Sarabun-license.txt b/assets/voxygen/font/Sarabun-license.txt new file mode 100644 index 0000000..a7d3a12 --- /dev/null +++ b/assets/voxygen/font/Sarabun-license.txt @@ -0,0 +1,93 @@ +Copyright 2018 The Sarabun Project Authors (https://github.com/cadsondemak/Sarabun) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/assets/voxygen/font/WenQuanYiZenHei.ttf b/assets/voxygen/font/WenQuanYiZenHei.ttf new file mode 100644 index 0000000..a31cdac Binary files /dev/null and b/assets/voxygen/font/WenQuanYiZenHei.ttf differ diff --git a/assets/voxygen/font/bdfUMplus-license.txt b/assets/voxygen/font/bdfUMplus-license.txt new file mode 100644 index 0000000..4d6af41 --- /dev/null +++ b/assets/voxygen/font/bdfUMplus-license.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2012 hikaen2 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/assets/voxygen/font/bdfUMplus-outline.ttf b/assets/voxygen/font/bdfUMplus-outline.ttf new file mode 100644 index 0000000..3153a7f Binary files /dev/null and b/assets/voxygen/font/bdfUMplus-outline.ttf differ diff --git a/assets/voxygen/font/haxrcorp_4089_cyrillic_altgr-license.txt b/assets/voxygen/font/haxrcorp_4089_cyrillic_altgr-license.txt new file mode 100644 index 0000000..6c70cdb --- /dev/null +++ b/assets/voxygen/font/haxrcorp_4089_cyrillic_altgr-license.txt @@ -0,0 +1,376 @@ +Creative Commons Legal Code + +Attribution-ShareAlike 3.0 Unported + +======================================================================= + +CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE +LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN +ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS +INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES +REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES +RESULTING FROM ITS USE. + +License + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS +CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS +PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK +OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS +PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND +AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS +LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE +RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS +AND CONDITIONS. + +1. Definitions + + a. "Adaptation" means a work based upon the Work, or upon the Work + and other pre-existing works, such as a translation, adaptation, + derivative work, arrangement of music or other alterations of a + literary or artistic work, or phonogram or performance and includes + cinematographic adaptations or any other form in which the Work may + be recast, transformed, or adapted including in any form + recognizably derived from the original, except that a work that + constitutes a Collection will not be considered an Adaptation for + the purpose of this License. For the avoidance of doubt, where the + Work is a musical work, performance or phonogram, the + synchronization of the Work in timed-relation with a moving image + ("synching") will be considered an Adaptation for the purpose of + this License. + + b. "Collection" means a collection of literary or artistic works + such as encyclopedias and anthologies, or performances, phonograms + or broadcasts, or other works or subject matter other than works + listed in Section 1(f) below, which, by reason of the selection and + arrangement of their contents, constitute intellectual creations, + in which the Work is included in its entirety in unmodified form + along with one or more other contributions, each constituting + separate and independent works in themselves, which together are + assembled into a collective whole. A work that constitutes a + Collection will not be considered an Adaptation (as defined below) + for the purposes of this License. + + c. "Creative Commons Compatible License" means a license that is + listed at https://creativecommons.org/compatiblelicenses that has + been approved by Creative Commons as being essentially equivalent + to this License, including, at a minimum, because that license: (i) + contains terms that have the same purpose, meaning and effect as + the License Elements of this License; and, (ii) explicitly permits + the relicensing of adaptations of works made available under that + license under this License or a Creative Commons jurisdiction + license with the same License Elements as this License. + + d. "Distribute" means to make available to the public the original + and copies of the Work or Adaptation, as appropriate, through sale + or other transfer of ownership. + + e. "License Elements" means the following high-level license + attributes as selected by Licensor and indicated in the title of + this License: Attribution, ShareAlike. + + f. "Licensor" means the individual, individuals, entity or entities + that offer(s) the Work under the terms of this License. + + g. "Original Author" means, in the case of a literary or artistic + work, the individual, individuals, entity or entities who created + the Work or if no individual or entity can be identified, the + publisher; and in addition (i) in the case of a performance the + actors, singers, musicians, dancers, and other persons who act, + sing, deliver, declaim, play in, interpret or otherwise perform + literary or artistic works or expressions of folklore; (ii) in the + case of a phonogram the producer being the person or legal entity + who first fixes the sounds of a performance or other sounds; and, + (iii) in the case of broadcasts, the organization that transmits + the broadcast. + + h. "Work" means the literary and/or artistic work offered under the + terms of this License including without limitation any production + in the literary, scientific and artistic domain, whatever may be + the mode or form of its expression including digital form, such as + a book, pamphlet and other writing; a lecture, address, sermon or + other work of the same nature; a dramatic or dramatico-musical + work; a choreographic work or entertainment in dumb show; a musical + composition with or without words; a cinematographic work to which + are assimilated works expressed by a process analogous to + cinematography; a work of drawing, painting, architecture, + sculpture, engraving or lithography; a photographic work to which + are assimilated works expressed by a process analogous to + photography; a work of applied art; an illustration, map, plan, + sketch or three-dimensional work relative to geography, topography, + architecture or science; a performance; a broadcast; a phonogram; a + compilation of data to the extent it is protected as a + copyrightable work; or a work performed by a variety or circus + performer to the extent it is not otherwise considered a literary + or artistic work. + + i. "You" means an individual or entity exercising rights under this + License who has not previously violated the terms of this License + with respect to the Work, or who has received express permission + from the Licensor to exercise rights under this License despite a + previous violation. + + j. "Publicly Perform" means to perform public recitations of the + Work and to communicate to the public those public recitations, by + any means or process, including by wire or wireless means or public + digital performances; to make available to the public Works in such + a way that members of the public may access these Works from a + place and at a place individually chosen by them; to perform the + Work to the public by any means or process and the communication to + the public of the performances of the Work, including by public + digital performance; to broadcast and rebroadcast the Work by any + means including signs, sounds or images. + + k. "Reproduce" means to make copies of the Work by any means + including without limitation by sound or visual recordings and the + right of fixation and reproducing fixations of the Work, including + storage of a protected performance or phonogram in digital form or + other electronic medium. + +2. Fair Dealing Rights. Nothing in this License is intended to reduce, +limit, or restrict any uses free from copyright or rights arising from +limitations or exceptions that are provided for in connection with the +copyright protection under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, +Licensor hereby grants You a worldwide, royalty-free, non-exclusive, +perpetual (for the duration of the applicable copyright) license to +exercise the rights in the Work as stated below: + + a. to Reproduce the Work, to incorporate the Work into one or more + Collections, and to Reproduce the Work as incorporated in the + Collections; + + b. to create and Reproduce Adaptations provided that any such + Adaptation, including any translation in any medium, takes + reasonable steps to clearly label, demarcate or otherwise identify + that changes were made to the original Work. For example, a + translation could be marked "The original work was translated from + English to Spanish," or a modification could indicate "The original + work has been modified."; + + c. to Distribute and Publicly Perform the Work including as + incorporated in Collections; and, + + d. to Distribute and Publicly Perform Adaptations. + + e. For the avoidance of doubt: + i. Non-waivable Compulsory License Schemes. In those + jurisdictions in which the right to collect royalties through + any statutory or compulsory licensing scheme cannot be waived, + the Licensor reserves the exclusive right to collect such + royalties for any exercise by You of the rights granted under + this License; + + ii. Waivable Compulsory License Schemes. In those jurisdictions + in which the right to collect royalties through any statutory + or compulsory licensing scheme can be waived, the Licensor + waives the exclusive right to collect such royalties for any + exercise by You of the rights granted under this License; and, + + iii. Voluntary License Schemes. The Licensor waives the right + to collect royalties, whether individually or, in the event + that the Licensor is a member of a collecting society that + administers voluntary licensing schemes, via that society, from + any exercise by You of the rights granted under this License. + +The above rights may be exercised in all media and formats whether now +known or hereafter devised. The above rights include the right to make +such modifications as are technically necessary to exercise the rights +in other media and formats. Subject to Section 8(f), all rights not +expressly granted by Licensor are hereby reserved. + +4. Restrictions. The license granted in Section 3 above is expressly +made subject to and limited by the following restrictions: + + a. You may Distribute or Publicly Perform the Work only under the + terms of this License. You must include a copy of, or the Uniform + Resource Identifier (URI) for, this License with every copy of the + Work You Distribute or Publicly Perform. You may not offer or + impose any terms on the Work that restrict the terms of this + License or the ability of the recipient of the Work to exercise the + rights granted to that recipient under the terms of the License. + You may not sublicense the Work. You must keep intact all notices + that refer to this License and to the disclaimer of warranties with + every copy of the Work You Distribute or Publicly Perform. When You + Distribute or Publicly Perform the Work, You may not impose any + effective technological measures on the Work that restrict the + ability of a recipient of the Work from You to exercise the rights + granted to that recipient under the terms of the License. This + Section 4(a) applies to the Work as incorporated in a Collection, + but this does not require the Collection apart from the Work itself + to be made subject to the terms of this License. If You create a + Collection, upon notice from any Licensor You must, to the extent + practicable, remove from the Collection any credit as required by + Section 4(c), as requested. If You create an Adaptation, upon + notice from any Licensor You must, to the extent practicable, + remove from the Adaptation any credit as required by Section 4(c), + as requested. + + b. You may Distribute or Publicly Perform an Adaptation only under + the terms of: (i) this License; (ii) a later version of this + License with the same License Elements as this License; (iii) a + Creative Commons jurisdiction license (either this or a later + license version) that contains the same License Elements as this + License (e.g., Attribution-ShareAlike 3.0 US)); (iv) a Creative + Commons Compatible License. If you license the Adaptation under one + of the licenses mentioned in (iv), you must comply with the terms + of that license. If you license the Adaptation under the terms of + any of the licenses mentioned in (i), (ii) or (iii) (the + "Applicable License"), you must comply with the terms of the + Applicable License generally and the following provisions: (I) You + must include a copy of, or the URI for, the Applicable License with + every copy of each Adaptation You Distribute or Publicly Perform; + (II) You may not offer or impose any terms on the Adaptation that + restrict the terms of the Applicable License or the ability of the + recipient of the Adaptation to exercise the rights granted to that + recipient under the terms of the Applicable License; (III) You must + keep intact all notices that refer to the Applicable License and to + the disclaimer of warranties with every copy of the Work as + included in the Adaptation You Distribute or Publicly Perform; (IV) + when You Distribute or Publicly Perform the Adaptation, You may not + impose any effective technological measures on the Adaptation that + restrict the ability of a recipient of the Adaptation from You to + exercise the rights granted to that recipient under the terms of + the Applicable License. This Section 4(b) applies to the Adaptation + as incorporated in a Collection, but this does not require the + Collection apart from the Adaptation itself to be made subject to + the terms of the Applicable License. + + c. If You Distribute, or Publicly Perform the Work or any + Adaptations or Collections, You must, unless a request has been + made pursuant to Section 4(a), keep intact all copyright notices + for the Work and provide, reasonable to the medium or means You are + utilizing: (i) the name of the Original Author (or pseudonym, if + applicable) if supplied, and/or if the Original Author and/or + Licensor designate another party or parties (e.g., a sponsor + institute, publishing entity, journal) for attribution + ("Attribution Parties") in Licensor's copyright notice, terms of + service or by other reasonable means, the name of such party or + parties; (ii) the title of the Work if supplied; (iii) to the + extent reasonably practicable, the URI, if any, that Licensor + specifies to be associated with the Work, unless such URI does not + refer to the copyright notice or licensing information for the + Work; and (iv) , consistent with Ssection 3(b), in the case of an + Adaptation, a credit identifying the use of the Work in the + Adaptation (e.g., "French translation of the Work by Original + Author," or "Screenplay based on original Work by Original + Author"). The credit required by this Section 4(c) may be + implemented in any reasonable manner; provided, however, that in + the case of a Adaptation or Collection, at a minimum such credit + will appear, if a credit for all contributing authors of the + Adaptation or Collection appears, then as part of these credits and + in a manner at least as prominent as the credits for the other + contributing authors. For the avoidance of doubt, You may only use + the credit required by this Section for the purpose of attribution + in the manner set out above and, by exercising Your rights under + this License, You may not implicitly or explicitly assert or imply + any connection with, sponsorship or endorsement by the Original + Author, Licensor and/or Attribution Parties, as appropriate, of You + or Your use of the Work, without the separate, express prior + written permission of the Original Author, Licensor and/or + Attribution Parties. + + d. Except as otherwise agreed in writing by the Licensor or as may + be otherwise permitted by applicable law, if You Reproduce, + Distribute or Publicly Perform the Work either by itself or as part + of any Adaptations or Collections, You must not distort, mutilate, + modify or take other derogatory action in relation to the Work + which would be prejudicial to the Original Author's honor or + reputation. Licensor agrees that in those jurisdictions (e.g. + Japan), in which any exercise of the right granted in Section 3(b) + of this License (the right to make Adaptations) would be deemed to + be a distortion, mutilation, modification or other derogatory + action prejudicial to the Original Author's honor and reputation, + the Licensor will waive or not assert, as appropriate, this + Section, to the fullest extent permitted by the applicable national + law, to enable You to reasonably exercise Your right under Section + (b) of this License (right to make Adaptations) but not otherwise. + +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR +OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY +KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, +INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, +FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF +LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF +ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW +THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO +YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE +LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR +ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES +ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR +HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + + a. This License and the rights granted hereunder will terminate + automatically upon any breach by You of the terms of this License. + Individuals or entities who have received Adaptations or + Collections from You under this License, however, will not have + their licenses terminated provided such individuals or entities + remain in full compliance with those licenses. Sections 1, 2, 5, 6, + 7, and 8 will survive any termination of this License. + + b. Subject to the above terms and conditions, the license granted + here is perpetual (for the duration of the applicable copyright in + the Work). Notwithstanding the above, Licensor reserves the right + to release the Work under different license terms or to stop + distributing the Work at any time; provided, however that any such + election will not serve to withdraw this License (or any other + license that has been, or is required to be, granted under the + terms of this License), and this License will continue in full + force and effect unless terminated as stated above. + +8. Miscellaneous + + a. Each time You Distribute or Publicly Perform the Work or a + Collection, the Licensor offers to the recipient a license to the + Work on the same terms and conditions as the license granted to You + under this License. + + b. Each time You Distribute or Publicly Perform an Adaptation, + Licensor offers to the recipient a license to the original Work on + the same terms and conditions as the license granted to You under + this License. + + c. If any provision of this License is invalid or unenforceable + under applicable law, it shall not affect the validity or + enforceability of the remainder of the terms of this License, and + without further action by the parties to this agreement, such + provision shall be reformed to the minimum extent necessary to make + such provision valid and enforceable. + + d. No term or provision of this License shall be deemed waived and + no breach consented to unless such waiver or consent shall be in + writing and signed by the party to be charged with such waiver or + consent. + + e. This License constitutes the entire agreement between the + parties with respect to the Work licensed here. There are no + understandings, agreements or representations with respect to the + Work not specified here. Licensor shall not be bound by any + additional provisions that may appear in any communication from + You. This License may not be modified without the mutual written + agreement of the Licensor and You. + + f. The rights granted under, and the subject matter referenced, in + this License were drafted utilizing the terminology of the Berne + Convention for the Protection of Literary and Artistic Works (as + amended on September 28, 1979), the Rome Convention of 1961, the + WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms + Treaty of 1996 and the Universal Copyright Convention (as revised + on July 24, 1971). These rights and subject matter take effect in + the relevant jurisdiction in which the License terms are sought to + be enforced according to the corresponding provisions of the + implementation of those treaty provisions in the applicable + national law. If the standard suite of rights granted under + applicable copyright law includes additional rights not granted + under this License, such additional rights are deemed to be + included in the License; this License is not intended to restrict + the license of any rights under applicable law. diff --git a/assets/voxygen/font/haxrcorp_4089_cyrillic_altgr.ttf b/assets/voxygen/font/haxrcorp_4089_cyrillic_altgr.ttf new file mode 100644 index 0000000..b507bb1 Binary files /dev/null and b/assets/voxygen/font/haxrcorp_4089_cyrillic_altgr.ttf differ diff --git a/assets/voxygen/font/haxrcorp_4089_cyrillic_altgr_extended.ttf b/assets/voxygen/font/haxrcorp_4089_cyrillic_altgr_extended.ttf new file mode 100644 index 0000000..63d3472 Binary files /dev/null and b/assets/voxygen/font/haxrcorp_4089_cyrillic_altgr_extended.ttf differ diff --git a/assets/voxygen/font/wizard-license.txt b/assets/voxygen/font/wizard-license.txt new file mode 100644 index 0000000..58bd0ae --- /dev/null +++ b/assets/voxygen/font/wizard-license.txt @@ -0,0 +1,4 @@ +The FontStruction “Wizard” +(https://fontstruct.com/fontstructions/show/1506403) by “Omegaville” is +licensed under a Creative Commons Attribution Share Alike license +(http://creativecommons.org/licenses/by-sa/3.0/). diff --git a/assets/voxygen/font/wizard.ttf b/assets/voxygen/font/wizard.ttf new file mode 100644 index 0000000..28dfd43 Binary files /dev/null and b/assets/voxygen/font/wizard.ttf differ diff --git a/assets/voxygen/font/wizard_extended.ttf b/assets/voxygen/font/wizard_extended.ttf new file mode 100644 index 0000000..e9c9de8 Binary files /dev/null and b/assets/voxygen/font/wizard_extended.ttf differ diff --git a/assets/voxygen/i18n/cs/hud/crafting.ftl b/assets/voxygen/i18n/cs/hud/crafting.ftl index 0dc08ad..d841bbf 100644 --- a/assets/voxygen/i18n/cs/hud/crafting.ftl +++ b/assets/voxygen/i18n/cs/hud/crafting.ftl @@ -52,3 +52,5 @@ hud-crafting-recipe-unlearned = Nejdřív se musíš naučit, jak takovou věc v hud-crafting-mod_comp_sec_slot_desc = Sem můžeš vložit část zvířete k výrobě, jen některé části zvířat mohou změnit vlastnosti zbraní. hud-crafting-repair_slot_title = Poškozený předmět hud-crafting-recipe-uncraftable = Recept nemůže být vyroben +hud-crafting-hide_unknown_recipes = Skrýt neznámé recepty +hud-crafting-show_unknown_recipes = Ukázat neznámé recepty diff --git a/assets/voxygen/i18n/cs/hud/misc.ftl b/assets/voxygen/i18n/cs/hud/misc.ftl index a4ce6aa..878396c 100644 --- a/assets/voxygen/i18n/cs/hud/misc.ftl +++ b/assets/voxygen/i18n/cs/hud/misc.ftl @@ -83,3 +83,4 @@ hud-init-stage-client-authentication = { "[" }{ -client }]: Prokazuji se... hud-init-stage-client-load-init-data = { "[" }{ -client }]: Načítám počáteční data ze serveru... hud-init-stage-client-starting-client = { "[" }{ -client }]: Připravuji klienta... hud-init-stage-render-pipeline = Vytvářím vykreslovací potrubí ({ $done }/{ $total }) +hud-steal = Ukrást diff --git a/assets/voxygen/i18n/cs/hud/settings.ftl b/assets/voxygen/i18n/cs/hud/settings.ftl index 28ff777..7f9937a 100644 --- a/assets/voxygen/i18n/cs/hud/settings.ftl +++ b/assets/voxygen/i18n/cs/hud/settings.ftl @@ -164,3 +164,4 @@ hud-settings-ultra_graphics = Nejvyšší hud-settings-point_glow = Bodová světla hud-settings-ambience_volume = Hlasitost prostředí hud-settings-music_spacing = Rozložení hudby +hud-settings-show_all_recipes = Ukázat všechny recepty diff --git a/assets/voxygen/i18n/cs/hud/subtitles.ftl b/assets/voxygen/i18n/cs/hud/subtitles.ftl index 5e9628a..e2d2daf 100644 --- a/assets/voxygen/i18n/cs/hud/subtitles.ftl +++ b/assets/voxygen/i18n/cs/hud/subtitles.ftl @@ -150,3 +150,8 @@ subtitle-surprise_egg = Boží zvuk subtitle-attack-shovel = Kopání lopatou subtitle-attack-from-the-ashes = Zvuk léčení subtitle-attack-strigoi_head = Řev Strigoje +subtitle-splash = Šplouch +subtitle-utterance-legoom-hurt = Sténání legumy +subtitle-utterance-legoom-angry = Řev legumy +subtitle-utterance-legoom-calm = Volání legumy +subtitle-instrument_banjo = Hrající banjo diff --git a/assets/voxygen/i18n/cs/item/common.ftl b/assets/voxygen/i18n/cs/item/common.ftl index c8dc24b..d7ef477 100644 --- a/assets/voxygen/i18n/cs/item/common.ftl +++ b/assets/voxygen/i18n/cs/item/common.ftl @@ -1 +1,3 @@ items-common-amount = Množství: { $amount } +items-common-recipe-known = Naučeno +items-common-recipe-not_known = Nenaučeno diff --git a/assets/voxygen/i18n/cs/item/weapon/musical_instrument.ftl b/assets/voxygen/i18n/cs/item/weapon/musical_instrument.ftl index af57534..d3eb29a 100644 --- a/assets/voxygen/i18n/cs/item/weapon/musical_instrument.ftl +++ b/assets/voxygen/i18n/cs/item/weapon/musical_instrument.ftl @@ -30,3 +30,5 @@ weapon-tool-kora = Kora .desc = Africká harfa ve tvaru loutny. weapon-tool-wooden_bass = Basa .desc = Dřevěná basa. +weapon-tool-banjo = Banjo + .desc = Banjo. diff --git a/assets/voxygen/i18n/cs/npc.ftl b/assets/voxygen/i18n/cs/npc.ftl index dc46017..ab7ed08 100644 --- a/assets/voxygen/i18n/cs/npc.ftl +++ b/assets/voxygen/i18n/cs/npc.ftl @@ -285,3 +285,15 @@ npc-speech-welcome-aboard = .a0 = Vítej na palubě! .a1 = Můžu vidět tvůj lístek... žertuju, je to zdarma! .a2 = Užij si jízdu! +npc-speech-witness_theft = + .a0 = To není tvoje! + .a1 = Drž ruce u těla. + .a2 = Nesahej na to! + .a3 = Zloděj! + .a4 = Vrať to. + .a5 = Co si myslíš že děláš? + .a6 = Přestaň nebo zavolám stráže. +npc-speech-witness_theft_owned = + .a0 = Hej! To je moje. + .a1 = Proč saháš na moje věci? + .a2 = Jestli mi budeš brát věci, nejsi tu vítán. diff --git a/assets/voxygen/i18n/de/npc.ftl b/assets/voxygen/i18n/de/npc.ftl index 91cc617..f0aecd1 100644 --- a/assets/voxygen/i18n/de/npc.ftl +++ b/assets/voxygen/i18n/de/npc.ftl @@ -328,5 +328,5 @@ npc-speech-night = # - $site represents hard-coded site in the world npc-speech-site = .a0 = Glaubst du nicht auch, dass unser Dorf das beste ist? - .a1 = Willkommen in { $site } ! + .a1 = Willkommen in { $site }! .a2 = { $site } ist ein schönes Dorf zum Leben. diff --git a/assets/voxygen/i18n/en/gameinput.ftl b/assets/voxygen/i18n/en/gameinput.ftl index a5368d5..3d2536f 100644 --- a/assets/voxygen/i18n/en/gameinput.ftl +++ b/assets/voxygen/i18n/en/gameinput.ftl @@ -41,8 +41,10 @@ gameinput-bag = Bag gameinput-trade = Trade gameinput-social = Social gameinput-sit = Sit +gameinput-crawl = Crawl gameinput-diary = Diary gameinput-settings = Settings +gameinput-giveup = Give Up gameinput-respawn = Respawn gameinput-togglewield = Toggle Wield gameinput-interact = Interact diff --git a/assets/voxygen/i18n/en/hud/ability.ftl b/assets/voxygen/i18n/en/hud/ability.ftl index eda3448..70f7000 100644 --- a/assets/voxygen/i18n/en/hud/ability.ftl +++ b/assets/voxygen/i18n/en/hud/ability.ftl @@ -315,7 +315,7 @@ common-abilities-axe-brutal_swing = Brutal Swing common-abilities-axe-berserk = Berserk .desc = Increases your strength at the cost of leaving you vulnerable. common-abilities-axe-rising_tide = Rising Tide - .desc = An upwards strike that greatly increases combo. + .desc = An upwards strike that greatly increases combo, even more so if the target is bleeding. common-abilities-axe-savage_sense = Savage Sense .desc = Identify a vital point on your target, ensuring your next strike critically damages them. common-abilities-axe-adrenaline_rush = Adrenaline Rush diff --git a/assets/voxygen/i18n/en/hud/misc.ftl b/assets/voxygen/i18n/en/hud/misc.ftl index 5836ea8..415622c 100644 --- a/assets/voxygen/i18n/en/hud/misc.ftl +++ b/assets/voxygen/i18n/en/hud/misc.ftl @@ -13,10 +13,14 @@ hud-press_key_to_toggle_lantern_fmt = [{ $key }] Lantern hud-press_key_to_show_debug_info_fmt = Press { $key } to show debug info hud-press_key_to_toggle_keybindings_fmt = Press { $key } to toggle key bindings hud-press_key_to_toggle_debug_info_fmt = Press { $key } to toggle debug info -hud_items_lost_dur = Your equipped items have lost Durability. +hud-items_lost_dur = Your equipped items have lost Durability. +hud-items_will_lose_dur = Your equipped items will lose Durability. hud-hardcore_char_deleted = This hardcore character has been deleted. +hud-hardcore_will_char_deleted = This hardcore character will be deleted. hud-press_key_to_respawn = Press { $key } to respawn at the last campfire you visited. +hud-press_key_to_give_up = Press { $key } to give up and die. hud-press_key_to_return_to_char_menu = Press { $key } to return to the character menu. +hud-downed_recieving_help = Recieving help. hud-tutorial_btn = Tutorial hud-tutorial_click_here = Press [ { $key } ] to free your cursor and click this button! hud-tutorial_elements = Crafting @@ -57,6 +61,7 @@ hud-mine-needs_pickaxe = Needs Pickaxe hud-mine-needs_shovel = Needs Shovel hud-mine-needs_unhandled_case = Needs ??? hud-talk = Talk +hud-help = Help hud-pet = Pet hud-trade = Trade hud-mount = Mount diff --git a/assets/voxygen/i18n/en/hud/subtitles.ftl b/assets/voxygen/i18n/en/hud/subtitles.ftl index 7d8bbdd..e8b80c7 100644 --- a/assets/voxygen/i18n/en/hud/subtitles.ftl +++ b/assets/voxygen/i18n/en/hud/subtitles.ftl @@ -88,6 +88,7 @@ subtitle-instrument_dark_guitar = Dark Guitar playing subtitle-instrument_washboard = Washboard playing subtitle-instrument_wildskin_drum = Wildskin Drum playing subtitle-instrument_kora = Kora playing +subtitle-instrument_banjo = Banjo playing subtitle-pickup_instrument = Pickup instrument subtitle-explosion = Explosion @@ -169,3 +170,6 @@ subtitle-utterance-phoenix-angry = Phoenix screaming subtitle-utterance-phoenix-hurt = Phoenix hurting subtitle-utterance-vampire-bat-angry = Bat screaming subtitle-utterance-vampire-bat-hurt = Bat hurting +subtitle-utterance-legoom-calm = Legoom calling +subtitle-utterance-legoom-hurt = Legoom hurting +subtitle-utterance-legoom-angry = Legoom shouting diff --git a/assets/voxygen/i18n/en/item/armor/armor.ftl b/assets/voxygen/i18n/en/item/armor/armor.ftl index e6fbcd7..4ae50e9 100644 --- a/assets/voxygen/i18n/en/item/armor/armor.ftl +++ b/assets/voxygen/i18n/en/item/armor/armor.ftl @@ -151,7 +151,7 @@ armor-misc-neck-abyssal_gorget = Abyssal Gorget armor-misc-neck-amethyst = Amethyst Necklace .desc = A tin necklace lined with amethyst gems. armor-misc-neck-ankh_of_life = Ankh of Life - .desc = A unique necklace of unkown origin... You can feel the power flowing through it. + .desc = A unique necklace of unknown origin... You can feel the power flowing through it. armor-misc-neck-carcanet_of_wrath = Carcanet of Wrath .desc = A necklace that gives even the most feeble beings immense amounts of power. armor-misc-neck-diamond = Diamond Necklace diff --git a/assets/voxygen/i18n/en/item/common.ftl b/assets/voxygen/i18n/en/item/common.ftl index 334ed26..7278c43 100644 --- a/assets/voxygen/i18n/en/item/common.ftl +++ b/assets/voxygen/i18n/en/item/common.ftl @@ -1 +1,3 @@ -items-common-amount = Amount: { $amount } \ No newline at end of file +items-common-amount = Amount: { $amount } +items-common-recipe-known = Learned +items-common-recipe-not_known = Not learned \ No newline at end of file diff --git a/assets/voxygen/i18n/en/item/weapon/musical_instrument.ftl b/assets/voxygen/i18n/en/item/weapon/musical_instrument.ftl index e6df01d..ca5f097 100644 --- a/assets/voxygen/i18n/en/item/weapon/musical_instrument.ftl +++ b/assets/voxygen/i18n/en/item/weapon/musical_instrument.ftl @@ -45,3 +45,6 @@ weapon-tool-shamisen = Shamisen weapon-tool-kora = Kora .desc = Kora. + +weapon-tool-banjo = Banjo + .desc = Banjo. \ No newline at end of file diff --git a/assets/voxygen/i18n/en/npc.ftl b/assets/voxygen/i18n/en/npc.ftl index 33c6006..73caa45 100644 --- a/assets/voxygen/i18n/en/npc.ftl +++ b/assets/voxygen/i18n/en/npc.ftl @@ -326,3 +326,6 @@ npc-speech-night = .a0 = Lanterns are handy for getting around at night! .a1 = I hope we are alone in the dark... .a2 = Boo! +npc-speech-thank_you = + .a0 = Thanks! + .a1 = Thank you diff --git a/assets/voxygen/i18n/es/item/armor/armor.ftl b/assets/voxygen/i18n/es/item/armor/armor.ftl index bda9080..2218231 100644 --- a/assets/voxygen/i18n/es/item/armor/armor.ftl +++ b/assets/voxygen/i18n/es/item/armor/armor.ftl @@ -196,8 +196,8 @@ armor-misc-shoulder-leather_strip = Tiras de cuero .desc = Tiras de pellejo de animal curtido. armor-misc-chest-worker_green = Camisa de trabajador verde .desc = Hasta hace poco la usaba un granjero. -armor-misc-chest-shirt_white = Camisa de trabajador blanca - .desc = Hasta hace poco la usaba un granjero. +armor-misc-chest-shirt_white = Camisa de Trabajador Blanca + .desc = Era utilizada por un campesino, hasta hace poco. armor-misc-chest-worker_orange_0 = Camisa de trabajador naranja .desc = Hasta hace poco la usaba un granjero. armor-misc-chest-worker_orange_1 = Camisa de trabajador naranja @@ -560,7 +560,29 @@ armor-cloth-silken-shoulder = Sobrehombros .desc = Tejidos con cariño por un sastre diestro. armor-cloth-druid-shoulder = Hombreras de druida .desc = Estas hombreras muy ligeras cuentan con la esencia de la naturaleza. -armor-misc-head-hare_hat = Sombrero de liebre - .desc = Un sombrero especial de la Pascua -armor-misc-head-cat_capuche = Capucha de gato - .desc = Una capucha especial del Día de los Inocentes +armor-misc-head-hare_hat = Sombrero de Liebre + .desc = Especial de Pascua. +armor-misc-head-cat_capuche = Capucha de Gato + .desc = Especial de Día de los Inocentes. +armor-golemite-back = Capa de Golemite + .desc = Equipamiento construido a partir de Golemite, que proporciona resistencia similar a la de un gólem. +armor-golemite-belt = Cinturón de Golemite + .desc = Equipamiento construido a partir de Golemite , que proporciona resistencia similar a la de un gólem. +armor-golemite-chest = Pechera de Golemite + .desc = Equipamiento construido a partir de Golemite, que proporciona resistencia similar a la de un gólem. +armor-golemite-helmet = Casco de Golemite + .desc = Equipamiento construido a partir de Golemite, que proporciona resistencia similar a la de un gólem. +armor-golemite-foot = Botas de Golemite + .desc = Equipamiento construido a partir de Golemite, que proporciona resistencia similar a la de un gólem. +armor-golemite-hand = Guanteletes de Golemite + .desc = Equipamiento construido a partir de Golemite, que proporciona resistencia similar a la de un gólem. +armor-golemite-pants = Pantalones de Golemite + .desc = Equipamiento construido a partir de Golemite, que proporciona resistencia similar a la de un gólem. +armor-golemite-shoulder = Hombreras de Golemite + .desc = Equipamiento construido a partir de Golemite, que proporciona resistencia similar a la de un gólem. +armor-mail-orichalcum-7 = Casco de oricalco + .desc = La hoja brilla cuando entras en batalla. +armor-misc-ring-abyssal_ring = Anillo Abisal + .desc = Un anillo perlado malamente unido junto con oro y coral. +armor-misc-head-scarlet_spectacles = Gafas Escarlata + .desc = ¡Perfectas para hacer bromas a tus compañeros aventureros haciéndoles creer que eres una criatura diabólica de la noche! No nos hacemos responsables de los daños, lesiones o multitudes enfurecidas que puedan surgir. diff --git a/assets/voxygen/i18n/es/item/armor/other.ftl b/assets/voxygen/i18n/es/item/armor/other.ftl index b96ba03..166a8f8 100644 --- a/assets/voxygen/i18n/es/item/armor/other.ftl +++ b/assets/voxygen/i18n/es/item/armor/other.ftl @@ -76,3 +76,5 @@ armor-misc-bag-soulkeeper_cursed = Guardián de almas maldito .desc = WIP. armor-misc-bag-knitted_red_pouch = Faltriquera roja tricotada .desc = Bolsa de lana de un tamaño considerable y con dos bolsillos. +lantern-delvers_lamp = La lampara de Delver + .desc = Es perfecta para ir a minar. diff --git a/assets/voxygen/i18n/es/item/common.ftl b/assets/voxygen/i18n/es/item/common.ftl new file mode 100644 index 0000000..e69de29 diff --git a/assets/voxygen/i18n/es/item/items/crafting.ftl b/assets/voxygen/i18n/es/item/items/crafting.ftl index 9cf92e7..e392d5e 100644 --- a/assets/voxygen/i18n/es/item/items/crafting.ftl +++ b/assets/voxygen/i18n/es/item/items/crafting.ftl @@ -236,3 +236,17 @@ sprite-flowers-pyrebloom = Piroflor .desc = Cálida al tacto, incluso pasado un tiempo tras haberla recolectado. sprite-crafting_ing-cloth-lifecloth = Tela vital .desc = Un tejido infundido con la gracia de la naturaleza. +sprite-mineral-ore-ancient_gold = Oro antiguo + .desc = Lingote ancestral de oro, empapado en energía mágica. +sprite-crafting_ing-dwarven_battery = Batería de los Enanos + .desc = Un contenedor de energía mágica. +sprite-crafting_ing-cursed_bead = Perla Maldita + .desc = ¿Qué oscuras magias podría albergar esta antigua perla mística? +sprite-crafting_ing-golem_core = Núcleo de Gólem + .desc = Un misterioso núcleo mágico, capaz de alimentar una antigua construcción de guardián. +sprite-crafting_ing-earthern_shard = Fragmento Terrenal + .desc = Un fragmento endurecido que alguna vez fue parte de un ser cerámico animado. +sprite-crafting_ing-golemite_slab = Lámina de Golemite + .desc = Después de ser restaurado a su antigua gloria, este material terrenal se volvió resistente y adecuado para la producción de armaduras. +sprite-crafting_ing-alkahest = Alkahest + .desc = Disolvente Alquímico. diff --git a/assets/voxygen/i18n/es/item/items/key.ftl b/assets/voxygen/i18n/es/item/items/key.ftl index d2c21d5..b162f97 100644 --- a/assets/voxygen/i18n/es/item/items/key.ftl +++ b/assets/voxygen/i18n/es/item/items/key.ftl @@ -26,3 +26,15 @@ object-key-quarry-keeper_goggle_right = Cristal de gafas derecho .desc = Parece poder usarse para abrir una puerta... object-key-quarry-keeper_goggle_left = Cristal de gafas izquierdo .desc = Parece poder usarse para abrir una puerta... +object-key-miner = Llave de Minero + .desc = Se utiliza para abrir puertas. Se romperá después de usarse. +object-key-myrmidon = Llave de Myrmidon + .desc = Se usa para abrir puertas. Se romperá después de usarse. +object-key-minotaur = Llave de Minotauro + .desc = Se usa para abrir puertas. Se romperá después de usarse. +object-key-vampire = Llave de Vampiro + .desc = Se usa para abrir puertas. Se romperá después de usarse. +object-key-forge = Llave de la forja + .desc = Sirve para abrir puertas. Es de un solo uso. +object-key-sahagin = Llave de Sahagin + .desc = Sirve para abrir puertas. Es de un solo uso. diff --git a/assets/voxygen/i18n/es/item/items/potion.ftl b/assets/voxygen/i18n/es/item/items/potion.ftl index 854664a..e287bbe 100644 --- a/assets/voxygen/i18n/es/item/items/potion.ftl +++ b/assets/voxygen/i18n/es/item/items/potion.ftl @@ -18,3 +18,7 @@ object-frozen_charm = Talismán congelante .desc = Haz que tus enemigos sientan el abrazo gélido de la escarcha con la que los detienes. object-lifesteal_charm = Talismán de succión .desc = Drena la fuerza vital de tu objetivo para tu propio beneficio. +object-potion_freezing = Poción congeladora + .desc = Congela el cerebro del usuario +object-potion_curious = Poción Curiosa + .desc = ¿Que hará esto...? diff --git a/assets/voxygen/i18n/es/item/recipe.ftl b/assets/voxygen/i18n/es/item/recipe.ftl new file mode 100644 index 0000000..e69de29 diff --git a/assets/voxygen/i18n/es/item/weapon/musical_instrument.ftl b/assets/voxygen/i18n/es/item/weapon/musical_instrument.ftl index 96e7cfc..6f188a2 100644 --- a/assets/voxygen/i18n/es/item/weapon/musical_instrument.ftl +++ b/assets/voxygen/i18n/es/item/weapon/musical_instrument.ftl @@ -28,3 +28,5 @@ weapon-tool-steeltonguedrum = Tambor metálico de lengüetas .desc = Tambor metálico de lengüetas. weapon-tool-wildskin_drum = Tambor salvaje .desc = Uno, dos, ¡ya sabes qué hacer! +weapon-tool-kora = Kora + .desc = Kora. diff --git a/assets/voxygen/i18n/fr/hud/ability.ftl b/assets/voxygen/i18n/fr/hud/ability.ftl index ba71a2e..6459731 100644 --- a/assets/voxygen/i18n/fr/hud/ability.ftl +++ b/assets/voxygen/i18n/fr/hud/ability.ftl @@ -226,3 +226,27 @@ common-abilities-sword-basic_dual_cross_cut = Coupe croisée basique # so please keep them, even when not used in English file. # See https://github.com/WeblateOrg/weblate/issues/9895 -cleaving_stance = "" +common-abilities-sword-basic_mighty_strike = Frappe puissante + .desc = + Un coup simple et puissant. + Nécessite une quantité modérée de combo pour l'utiliser. +common-abilities-sword-heavy_guillotine = Guillotine + .desc = + Un clivage puissant qui étourdira probablement ce qu'il ne tue pas. + Nécessite une quantité modérée de combo pour être utilisé. +common-abilities-sword-defensive_counter = Counter + .desc = + Une attaque lancée rapidement qui inflige beaucoup plus de dégâts à un ennemi paré. + Nécessite une quantité modérée de combo pour être utilisée. +common-abilities-sword-cleaving_bladestorm = Tempête de lames + .desc = + Décimez vos ennemis en tourbillonant avec votre épée. + Nécessite une quantité modérée de combo pour l'utiliser. +common-abilities-sword-agile_hundred_cuts = Cent coupures + .desc = + De nombreuses entailles très rapides sur une cible. + Nécessite une quantité modérée de combo pour être utilisé. +common-abilities-sword-crippling_mutilate = Mutilation + .desc = + Mutilez votre ennemi en sciant ses blessures, inflige plus de dégâts aux ennemis qui saignent. + Nécessite une quantité modérée de combo pour être utilisé. diff --git a/assets/voxygen/i18n/fr/hud/group.ftl b/assets/voxygen/i18n/fr/hud/group.ftl index 4bf799b..d9eadf6 100644 --- a/assets/voxygen/i18n/fr/hud/group.ftl +++ b/assets/voxygen/i18n/fr/hud/group.ftl @@ -11,3 +11,4 @@ hud-group-add_friend = Ajouter aux Amis hud-group-link_group = Lier le Groupe hud-group-in_menu = Dans les Menus hud-group-members = Membres du groupe +hud-group-invite-declined = { $target } a refusé ton invitation au groupe. diff --git a/assets/voxygen/i18n/fr/hud/misc.ftl b/assets/voxygen/i18n/fr/hud/misc.ftl index f64ac26..6f6c734 100644 --- a/assets/voxygen/i18n/fr/hud/misc.ftl +++ b/assets/voxygen/i18n/fr/hud/misc.ftl @@ -80,3 +80,4 @@ hud-init-stage-client-starting-client = { "[" }{ -client }]: Préparation du cli hud-init-stage-server-worldsim-erosion = { "[" }{ -server }]: Érosion { $percentage } % hud-init-stage-server-worldciv-site = { "[" }{ -server }]: Génération de sites... hud-init-stage-server-spotgen = { "[" }{ -server }]: Génération de spots... +hud-steal = Voler diff --git a/assets/voxygen/i18n/fr/hud/trade.ftl b/assets/voxygen/i18n/fr/hud/trade.ftl index 46841dc..ca26317 100644 --- a/assets/voxygen/i18n/fr/hud/trade.ftl +++ b/assets/voxygen/i18n/fr/hud/trade.ftl @@ -32,3 +32,4 @@ hud-trade-your_offer = Votre offre hud-trade-their_offer = Son offre hud-trade-amount_input = Sélectionner un objet hud-confirm-trade-for-nothing = Vous donnez vraiment ces objets en échange de rien ? +hud-trade-invite-declined = { $target } a refusé ta demande d'échange. diff --git a/assets/voxygen/i18n/fr/item/armor/other.ftl b/assets/voxygen/i18n/fr/item/armor/other.ftl index 0c1d756..26070dd 100644 --- a/assets/voxygen/i18n/fr/item/armor/other.ftl +++ b/assets/voxygen/i18n/fr/item/armor/other.ftl @@ -72,3 +72,9 @@ armor-misc-bag-troll_hide_pack = Sac en peau de troll .desc = Des trolls ont été blessés lors de la fabrication de ce produit. armor-misc-bag-woven_red_bag = Sac rouge tissé .desc = Un sac rouge de taille moyenne. Bien qu'il se sente toujours à l'étroit. +lantern-delvers_lamp = Lampe de Delver + .desc = Parfait pour le minage. +armor-misc-bag-soulkeeper_pure = Gardien d'âmes purifiées + .desc = Travail en cours. +armor-misc-bag-soulkeeper_cursed = Le gardien d'âmes maudit + .desc = Travail en cours. diff --git a/assets/voxygen/i18n/fr/item/items/crafting.ftl b/assets/voxygen/i18n/fr/item/items/crafting.ftl index 4125b10..0adcd66 100644 --- a/assets/voxygen/i18n/fr/item/items/crafting.ftl +++ b/assets/voxygen/i18n/fr/item/items/crafting.ftl @@ -72,3 +72,90 @@ sprite-crafting_ing-dwarven_battery = Batterie naine .desc = Conteneur d'énergie magique. sprite-rocks-rock-0 = Pierres .desc = Cailloux du sol, rien d'extraordinaire. +sprite-crafting_ing-alkahest = Alkahest + .desc = Solvant alchimique. +sprite-crafting_ing-golemite_slab = Plaque de golemite + .desc = Après avoir retrouvé sa gloire d'antan, ce matériau terrestre est devenu robuste et adapté à la fabrication d'armures. +sprite-crafting_ing-cursed_bead = Perle maudite + .desc = Quels sinistres pouvoirs magiques cette vieille perle mystique peut-elle receler ? +sprite-crafting_ing-golem_core = Noyau de golem + .desc = Un mystérieux noyau magique, capable d'alimenter une ancienne construction gardienne. +sprite-crafting_ing-earthern_shard = Éclat de terre + .desc = Tesson durci qui faisait autrefois partie d'un être de céramique animé. +sprite-twigs-twigs-0 = Brindilles + .desc = Trouvé près des arbres, un écureuil a dû la faire tomber. +sprite-crafting_ing-hide-carapace = Carapace dure + .desc = Carapace dure et résistante, un bouclier pour de nombreuses créatures. +sprite-crafting_ing-hide-animal_hide = Peau d'animal + .desc = Peau commune de la plupart des animaux. Devient du cuir. +sprite-crafting_ing-animal_misc-sharp_fang = Dent aiguisé + .desc = + Une dent aiguisé comme un rasoir d'un animal féroce. + + Les armes conçues avec auront des effets plus puissant et plus long. +sprite-crafting_ing-animal_misc-venom_sac = Sac à venin + .desc = Sac à venin provenant d'une créature venimeuse. +sprite-crafting_ing-leather-rigid_leather = Cuir rigide + .desc = Léger mais multicouches, parfait pour la protection. +sprite-crafting_ing-leather-simple_leather = Cuir simple + .desc = Léger et souple. +sprite-crafting_ing-cloth-cloth_strips = Bandes de tissu + .desc = Petites et douces, mais utiles. +sprite-crafting_ing-animal_misc-viscous_ooze = Suintement visqueux + .desc = Une mesure de suintement visqueux provenant d'une créature visqueuse. +sprite-crafting_ing-leather-leather_strips = Bandes de cuir + .desc = Simple et versatile. +sprite-crafting_ing-leather-thick_leather = Cuir épais + .desc = Solide et durable. +sprite-crafting_ing-cloth-cotton = Coton + .desc = Facile à travailler et multi-fonctionnel. +sprite-crafting_ing-cloth-linen = Lin + .desc = Textile fabriqué à partir de fibres de lin. +sprite-crafting_ing-cloth-linen_red = Lin rouge + .desc = Textile en fibre de lin, teint pour ressortir. +sprite-crafting_ing-cloth-moonweave = Tissu de lune + .desc = Un textile léger mais très robuste. +sprite-crafting_ing-cloth-silk = Soie + .desc = Fibre fine et résistante produite par les araignées. +sprite-crafting_ing-cloth-sunsilk = Soie solaire + .desc = Tissu extraordinairement résistant. +sprite-crafting_ing-cloth-wool = Laine douce + .desc = Laine douce provenant d'un animal. +sprite-crafting_ing-cloth-lifecloth = Tissu de vie + .desc = Un tissu imprégné de la douceur que la nature a à offrir. +sprite-flowers-moonbell = Cloche de lune + .desc = Elle scintille sous le clair de lune. +sprite-crafting_ing-plant_fiber = Fibre végétale + .desc = brin de matière végétale brute. +sprite-flowers-pyrebloom = Fleur de feu + .desc = Chaud au toucher, longtemps après la cueillette. +sprite-flowers-sunflower_1 = Tournesol + .desc = Ça respire l'été. +sprite-mineral-ingot-bronze = Lingot de bronze + .desc = + Un alliage robuste fabriqué à partir d'une combinaison de cuivre et d'étain. + + Peut être utilisé lors de la fabrication d'armes ou d'armures. +sprite-mineral-ingot-cobalt = Lingot de cobalt + .desc = + Un lingot d'un bleu éclatant. + + Peut être utilisé pour fabriquer des armes et armures. +sprite-mineral-ingot-silver = Lingot d'argent + .desc = Un lingot fait d'argent métallique raffiné. +sprite-mineral-ingot-gold = Lingot d'or + .desc = Un lingot fait d'or métallique raffiné. +sprite-mineral-ingot-tin = Lingot d'étain + .desc = Un lingot principalement utilisé pour fabriquer du bronze. +sprite-mineral-ingot-copper = Lingot de cuivre + .desc = Un lingot avec une couleur brune unique. +sprite-mineral-ingot-iron = Lingot de fer + .desc = + Un métal incroyablement courant. + + Il peut être utilisé lors de la fabrication d'armes ou d'armures. +sprite-mineral-ingot-steel = Lingot d'acier + .desc = + Un alliage de fer et de charbon qui est beaucoup plus résistant que ses composants. + + Peut être utilisé lors de la fabrication d'armes ou d'armures. diff --git a/assets/voxygen/i18n/fr/main.ftl b/assets/voxygen/i18n/fr/main.ftl index f0f7b90..12eb0b4 100644 --- a/assets/voxygen/i18n/fr/main.ftl +++ b/assets/voxygen/i18n/fr/main.ftl @@ -108,3 +108,5 @@ main-singleplayer-map_erosion_quality = Qualité de l'érosion main-singleplayer-generate_and_play = Générer et Jouer main-server-rules = Ce serveur a des règles qui souvent être acceptées. main-server-rules-seen-before = Ces règles ont changés depuis la dernière fois que vous les avez accepté. +main-singleplayer-map_shape-circle = Cercle +main-singleplayer-map_shape-square = Carré diff --git a/assets/voxygen/i18n/fr/npc.ftl b/assets/voxygen/i18n/fr/npc.ftl index 5b62855..01e1867 100644 --- a/assets/voxygen/i18n/fr/npc.ftl +++ b/assets/voxygen/i18n/fr/npc.ftl @@ -278,3 +278,23 @@ npc-speech-dist_near = pas trop loin npc-speech-dist_near_to = très près # NPC proposals npc-speech-arena = Asseyons-nous ici ! +npc-speech-site = + .a0 = Vous ne pensez pas que notre village est le meilleur ? + .a1 = Bienvenue à { $site } ! + .a2 = Il fait bon vivre à { $site }. +npc-speech-witness_theft = + .a0 = Ce n'est pas à vous ! + .a1 = Pas touche ! + .a2 = Ne touchez pas à ça ! + .a3 = Au voleur ! + .a4 = Rendez-moi ça. + .a5 = Pour qui vous prenez-vous ? + .a6 = Arrêtez maintenant ou j'appelle les gardes. +npc-speech-witness_theft_owned = + .a0 = Hop ! C'est à moi. + .a1 = Pourquoi touchez-vous mes affaires ? + .a2 = Vous n'êtes pas le bienvenu si vous prenez mes affaires. +npc-speech-night = + .a0 = Les lanternes sont pratiques pour se balader la nuit ! + .a1 = J'espère que nous sommes seuls... + .a2 = Bouh ! diff --git a/assets/voxygen/i18n/ko/common.ftl b/assets/voxygen/i18n/ko/common.ftl index 419aab7..f824974 100644 --- a/assets/voxygen/i18n/ko/common.ftl +++ b/assets/voxygen/i18n/ko/common.ftl @@ -95,3 +95,10 @@ common-material-stone = 돌 common-material-cloth = 천 common-material-hide = 가죽 common-sprite-chest = 상자 +common-accessibility_settings = 접근성 설정 +common-tool-shovel = 삽 +common-sprite-mud = 진흙 +common-sprite-grave = 무덤 +common-sprite-crate = 상자 +common-sprite-chair = 의자 +common-accessibility = 접근성 diff --git a/assets/voxygen/i18n/ko/hud/quest.ftl b/assets/voxygen/i18n/ko/hud/quest.ftl index e69de29..ebe9181 100644 --- a/assets/voxygen/i18n/ko/hud/quest.ftl +++ b/assets/voxygen/i18n/ko/hud/quest.ftl @@ -0,0 +1 @@ +hud-quest = 퀘스트 diff --git a/assets/voxygen/i18n/ko/hud/settings.ftl b/assets/voxygen/i18n/ko/hud/settings.ftl index cdd520e..b098ddc 100644 --- a/assets/voxygen/i18n/ko/hud/settings.ftl +++ b/assets/voxygen/i18n/ko/hud/settings.ftl @@ -146,3 +146,5 @@ hud-settings-group_only = 그룹만 hud-settings-reset_chat = 기본값으로 되돌리기 hud-settings-third_party_integrations = Third-party Integrations hud-settings-enable_discord_integration = Enable Discord Integration +hud-settings-slots = 슬롯 +hud-settings-autopress_behavior-auto = 자동 diff --git a/assets/voxygen/i18n/ko/item/weapon/modular.ftl b/assets/voxygen/i18n/ko/item/weapon/modular.ftl new file mode 100644 index 0000000..e69de29 diff --git a/assets/voxygen/i18n/pt/hud/chat.ftl b/assets/voxygen/i18n/pt/hud/chat.ftl index 3e7665b..8163918 100644 --- a/assets/voxygen/i18n/pt/hud/chat.ftl +++ b/assets/voxygen/i18n/pt/hud/chat.ftl @@ -4,3 +4,4 @@ hud-chat-goodbye = Adeus! hud-chat-online_msg = { "[" }{ $name }] está online agora. # Player events, $user_gender should be available hud-chat-offline_msg = { "[" }{ $name }] ficou offline +hud-chat-connection_lost = Conexão perdida. Saindo em { $time } segundos. diff --git a/assets/voxygen/i18n/sv/buff.ftl b/assets/voxygen/i18n/sv/buff.ftl index 9ebb3a3..c404d87 100644 --- a/assets/voxygen/i18n/sv/buff.ftl +++ b/assets/voxygen/i18n/sv/buff.ftl @@ -208,3 +208,5 @@ buff-staggered = Vacklan .desc = Du är i obalans och mer mottaglig till tunga attacker. buff-resilience = Resilians .desc = Efter att just ha tagit en försvagande attack blit du mer resilient mot framtida försvagande effekter. +buff-scornfultaunt = Föraktfullt Hån + .desc = Du hånar dina fiender föraktfullt, och får förstärkt mod och ork. Din död kommer dock förstärka din dödare. diff --git a/assets/voxygen/i18n/sv/hud/ability.ftl b/assets/voxygen/i18n/sv/hud/ability.ftl index e64e04c..47a0376 100644 --- a/assets/voxygen/i18n/sv/hud/ability.ftl +++ b/assets/voxygen/i18n/sv/hud/ability.ftl @@ -469,3 +469,5 @@ common-abilities-axe-sunder = Söndra # Axe abilities common-abilities-axe-skull_bash = Skalleslag .desc = Ett slag med det platta av din yxa som kan vackla. +common-abilities-hammer-scornful_swipe = Föraktfullt Slag + .desc = Förstärk din mod och ork genom att håna dina fiender innan du slår dem. Om du faller du till en fiende blir de stärkta. diff --git a/assets/voxygen/i18n/sv/hud/crafting.ftl b/assets/voxygen/i18n/sv/hud/crafting.ftl index 9f1fbe5..67e1e8d 100644 --- a/assets/voxygen/i18n/sv/hud/crafting.ftl +++ b/assets/voxygen/i18n/sv/hud/crafting.ftl @@ -52,3 +52,5 @@ hud-crafting-repair_equipped = Utrustade hud-crafting-repair-selection = Vald hud-crafting-req_crafting_station = Station: hud-crafting-repair_desc = Dra skadade saker hit för att reparera dem +hud-crafting-show_unknown_recipes = Visa Okända Recept +hud-crafting-hide_unknown_recipes = Dölj Okända Recept diff --git a/assets/voxygen/i18n/sv/hud/map.ftl b/assets/voxygen/i18n/sv/hud/map.ftl index d3a9d5f..92c6881 100644 --- a/assets/voxygen/i18n/sv/hud/map.ftl +++ b/assets/voxygen/i18n/sv/hud/map.ftl @@ -40,3 +40,7 @@ hud-map-terracotta = Terrakottaruinerna hud-map-haniwa = Haniwakatakomb hud-map-sahagin = Sahagin-ön hud-map-cultist = Kultisk Dungeon +hud-map-bridges = Broar +hud-map-glider_course = Glidbana +hud-map-glider_courses = Glidbanor +hud-map-vampire_castle = Vampyrslott diff --git a/assets/voxygen/i18n/sv/hud/misc.ftl b/assets/voxygen/i18n/sv/hud/misc.ftl index afd6497..ad5e695 100644 --- a/assets/voxygen/i18n/sv/hud/misc.ftl +++ b/assets/voxygen/i18n/sv/hud/misc.ftl @@ -83,3 +83,4 @@ hud-init-stage-server-spotgen = { "[" }{ -server }]: Genererar fläckar... hud-pet = Klappa hud-press_key_to_return_to_char_menu = Tryck { $key } för att återvända till karaktärsmenyn. hud-hardcore_char_deleted = Denna hardcore-karaktär har raderats. +hud-steal = Stjäl diff --git a/assets/voxygen/i18n/sv/hud/settings.ftl b/assets/voxygen/i18n/sv/hud/settings.ftl index b188838..114b849 100644 --- a/assets/voxygen/i18n/sv/hud/settings.ftl +++ b/assets/voxygen/i18n/sv/hud/settings.ftl @@ -164,3 +164,4 @@ hud-settings-slots = Platser hud-settings-keybind-helper = M1 för att sätta M2 för att avsätta +hud-settings-show_all_recipes = Visa Alla Recept diff --git a/assets/voxygen/i18n/sv/hud/subtitles.ftl b/assets/voxygen/i18n/sv/hud/subtitles.ftl index fd10b5a..3802472 100644 --- a/assets/voxygen/i18n/sv/hud/subtitles.ftl +++ b/assets/voxygen/i18n/sv/hud/subtitles.ftl @@ -150,3 +150,4 @@ subtitle-instrument_kora = Kora spelas subtitle-attack-strigoi_head = Strigoi skriker subtitle-utterance-vampire-bat-hurt = Fladdermus har ont subtitle-attack-bloodmoon_heiress_summon = Läskigt fågelljud +subtitle-splash = Plask diff --git a/assets/voxygen/i18n/sv/item/admin.ftl b/assets/voxygen/i18n/sv/item/admin.ftl index 24655d6..310d96b 100644 --- a/assets/voxygen/i18n/sv/item/admin.ftl +++ b/assets/voxygen/i18n/sv/item/admin.ftl @@ -34,3 +34,5 @@ armor-velorite-boots = Veloritstövlar .desc = { "" } weapon-sword-frost-admin_sword = Admin Storsvärd .desc = Borde det inte vara en hammare? +armor-velorite-shoulder = Veloritmantel + .desc = { "" } diff --git a/assets/voxygen/i18n/sv/item/armor/armor.ftl b/assets/voxygen/i18n/sv/item/armor/armor.ftl index b2b9319..abb0d12 100644 --- a/assets/voxygen/i18n/sv/item/armor/armor.ftl +++ b/assets/voxygen/i18n/sv/item/armor/armor.ftl @@ -56,7 +56,7 @@ armor-misc-chest-worker_purp_brown = Lila Arbetströja .desc = Robust och pålitlig. armor-cloth-woolen-belt = Ullbälte .desc = Tjock och redo för snön. -armor-hide-leather-back = Lädermantel +armor-hide-leather-back = Läderkåpa .desc = Kvick som vinden. armor-misc-head-leather-0 = Läderkeps .desc = Kvick som vinden. @@ -66,7 +66,7 @@ armor-hide-dragonscale-back = Drakfjällscape .desc = Tillverkad av fjällen från en legendarisk varelse, kraft kan kännas pulsera genom den. armor-hide-scale-back = Fjällcape .desc = Varje inbäddad fjäll ger ytterligare skydd. -armor-hide-rawhide-back = Råskinnsmantel +armor-hide-rawhide-back = Råskinnskåpa .desc = Tajt packade bitar av läder. Väger lite och är robust! armor-hide-rawhide-pants = Råskinnsbyxor .desc = Tajt packade bitar av läder. Väger lite och är robust! @@ -134,3 +134,39 @@ armor-hide-primal-foot = Primitiva Skor .desc = Smidd av skinn tuffare än stål. armor-twigs-chest = Kvisttröja .desc = Små pinnar magiskt genomsyrade för att hålla samman i formen av en tröja. +armor-boreal-back = Borealkåpa + .desc = Tjock fast överraskande kallt. +armor-misc-head-straw = Stråhatt + .desc = Bärs ofta av bybon. Den är enkel och stilig! +armor-misc-head-wanderers_hat = Vandrarens Hatt + .desc = Den perfekta huvudbonaden för de som känner sig hemma på Velorens huvud- och småvägar. +armor-mail-bronze-back = Bronskåpa + .desc = Tung och slö, men den kan ta ett slag. +armor-cloth-silken-belt = Silkesgehäng + .desc = Väven med omsorg av en erfaren skräddare. +armor-cloth-silken-chest = Silken Robe + .desc = Väven med omsorg av en erfaren skräddare. +armor-cloth-silken-back = Silkescape + .desc = Väven med omsorg av en erfaren skräddare.. +armor-cloth-woolen-back = Ullkåpa + .desc = Tjock och redo för snön. +armor-cloth-silken-pants = Silkeskjol + .desc = Väven med omsorg av en erfaren skräddare. +armor-mail-orichalcum-5 = Orikalkummantel + .desc = En uråldrig legering. Myter lever kvar om hjältar som en gång bar denna rustning. +armor-cultist-shoulder = Kultisk Mantel + .desc = Högtidlig klädsel använd av medlemmar. +armor-cloth-sunsilk-belt = Solsilkesgehäng + .desc = Den radierar med solens kraft, och förmågan att utnyttja den. +armor-hide-dragonscale-shoulder = Drakfjällsmantel + .desc = Tillverkad av fjällen från en legendarisk varelse, kraft kan kännas pulsera genom den. +armor-mail-iron-back = Järnkåpa + .desc = Tålig och oviklig, genom tider av krig. +armor-cloth-sunsilk-back = Solsilkescape + .desc = Den radierar med solens kraft, och förmågan att utnyttja den. +armor-cloth-silken-foot = Silken Feet + .desc = Väven med omsorg av en erfaren skräddare. +armor-cloth-silken-hand = Silken Wraps + .desc = Väven med omsorg av en erfaren skräddare. +armor-cloth-silken-shoulder = Silken Shoulders + .desc = Väven med omsorg av en erfaren skräddare. diff --git a/assets/voxygen/i18n/sv/item/armor/other.ftl b/assets/voxygen/i18n/sv/item/armor/other.ftl index 06e70b1..d80d154 100644 --- a/assets/voxygen/i18n/sv/item/armor/other.ftl +++ b/assets/voxygen/i18n/sv/item/armor/other.ftl @@ -56,3 +56,5 @@ armor-misc-bag-liana_kit = Liankit .desc = Vävd från torkade lianer. lantern-green = Limeskalslykta .desc = Den har en öppning som kan rymma en ring… +glider-cultists = Skullgrin + .desc = Död från ovan. diff --git a/assets/voxygen/i18n/sv/item/common.ftl b/assets/voxygen/i18n/sv/item/common.ftl index cec6a92..6864fbc 100644 --- a/assets/voxygen/i18n/sv/item/common.ftl +++ b/assets/voxygen/i18n/sv/item/common.ftl @@ -1 +1,3 @@ items-common-amount = Mängd: { $amount } +items-common-recipe-known = Lärd +items-common-recipe-not_known = Ej lärd diff --git a/assets/voxygen/i18n/sv/item/items/crafting.ftl b/assets/voxygen/i18n/sv/item/items/crafting.ftl index a5f5a03..035df39 100644 --- a/assets/voxygen/i18n/sv/item/items/crafting.ftl +++ b/assets/voxygen/i18n/sv/item/items/crafting.ftl @@ -153,3 +153,5 @@ sprite-crafting_ing-oil = Olja .desc = Ett mått tjock, geggig olja. sprite-crafting_ing-brinestone = Saltlagssten .desc = Används för rustningstillverkning. +sprite-crafting_ing-resin = Kåda + .desc = Används till trähantverk. diff --git a/assets/voxygen/i18n/sv/item/items/key.ftl b/assets/voxygen/i18n/sv/item/items/key.ftl index 9b4350c..ad78da5 100644 --- a/assets/voxygen/i18n/sv/item/items/key.ftl +++ b/assets/voxygen/i18n/sv/item/items/key.ftl @@ -32,3 +32,9 @@ object-key-miner = Gruvarbetarnyckel .desc = Används till att öppna dörrar. Går sönder efter användning. object-key-sahagin = Sahagin-nyckel .desc = Används till att öppna dörrar. Går sönder efter användning. +object-key-myrmidon = Myrmidonnyckel + .desc = Används till att öppna dörrar. Går sönder efter användning. +object-key-minotaur = Minotaurosnyckel + .desc = Används till att öppna dörrar. Går sönder efter användning. +object-key-vampire = Vampyrnyckel + .desc = Anänds till att öppna dörrar. Går sönder efter användning. diff --git a/assets/voxygen/i18n/sv/item/recipe.ftl b/assets/voxygen/i18n/sv/item/recipe.ftl index e69de29..e4437c1 100644 --- a/assets/voxygen/i18n/sv/item/recipe.ftl +++ b/assets/voxygen/i18n/sv/item/recipe.ftl @@ -0,0 +1,80 @@ +recipe-armor-bloodsteel = Blodstålrustningsrecept + .desc = { "" } +pseudo-recipe-modular_weapon-hammer = Hammarhuvud + .desc = { "" } +recipe-armor-dragonscale = Drakfjällrustningsrecept + .desc = { "" } +recipe-equipment-basic = Grundläggande Utrustningsrecept + .desc = { "" } +recipe-armor-leather = Läderrustningsrecept + .desc = { "" } +recipe-equipment-advanced = Avancerade Utrustningsrecept + .desc = { "" } +recipe-weapons-steel = Stålvapenrecept + .desc = { "" } +recipe-weapons-ironwood = Järnträvapenrecept + .desc = { "" } +recipe-armor-carapace = Carapaxrustningsrecept + .desc = { "" } +recipe-armor-cobalt = Koboltrustningsrecept + .desc = { "" } +recipe-armor-iron = Järnrustningsrecept + .desc = { "" } +recipe-armor-moonweave = Månvävrustningsrecept + .desc = { "" } +recipe-armor-orichalcum = Orikalkumrustningsrecept + .desc = { "" } +recipe-armor-scale = Fjällrustningsrecept + .desc = { "" } +recipe-armor-steel = Stålrustningsrecept + .desc = { "" } +recipe-armor-woolen = Ullrustningsrecept + .desc = { "" } +recipe-armor-silken = Silkesrustningsrecept + .desc = { "" } +recipe-armor-sunsilk = Solsilkesrustningsrecept + .desc = { "" } +recipe-equipment-moderate = Moderata Utrustningsrecept + .desc = { "" } +recipe-charms = Charmens Recept + .desc = { "" } +recipe-explosives = Explosiva Recept + .desc = { "" } +recipe-food = Matrecept + .desc = { "" } +recipe-gliders = Glidarrecept + .desc = { "" } +recipe-instruments = Instrumentrecept + .desc = { "" } +recipe-potions = Dryckrecept + .desc = { "" } +recipe-weapons-iron = Järnvapenrecept + .desc = { "" } +recipe-weapons-cobalt = Koboltvapenrecept + .desc = { "" } +recipe-weapons-bloodsteel = Blodstålsvapenrecept + .desc = { "" } +recipe-weapons-orichalcum = Orikalkumvapenrecept + .desc = { "" } +recipe-weapons-bamboo = Bambuvapenrecept + .desc = { "" } +recipe-weapons-hardwood = Hårdträvapenrecept + .desc = { "" } +recipe-weapons-frostwood = Frostträvapenrecept + .desc = { "" } +recipe-weapons-eldwood = Åldersträvapenrecept + .desc = { "" } +recipe-default = Standardrecept + .desc = { "" } +pseudo-recipe-modular_weapon-modular_weapon = Modulärt Vapen + .desc = { "" } +pseudo-recipe-modular_weapon-sword = Svärdblad + .desc = { "" } +pseudo-recipe-modular_weapon-axe = Yxhuvud + .desc = { "" } +pseudo-recipe-modular_weapon-bow = Båglemmar + .desc = { "" } +pseudo-recipe-modular_weapon-staff = Stavskaft + .desc = { "" } +pseudo-recipe-modular_weapon-sceptre = Spirskaft + .desc = { "" } diff --git a/assets/voxygen/i18n/sv/item/weapon/modular.ftl b/assets/voxygen/i18n/sv/item/weapon/modular.ftl index f7686c3..c746062 100644 --- a/assets/voxygen/i18n/sv/item/weapon/modular.ftl +++ b/assets/voxygen/i18n/sv/item/weapon/modular.ftl @@ -468,3 +468,15 @@ weapon-axe-jagged-bronze-2h = Taggig Bronsyxa .desc = { "" } weapon-sword-katana-iron-1h = Järnkvickblad .desc = { "" } +weapon-axe-ornate-orichalcum-1h = Orikalkum-kilonda + .desc = { "" } +weapon-axe-ornate-steel-1h = Stål-kilonda + .desc = { "" } +weapon-axe-ornate-bronze-1h = Brons-kilonda + .desc = { "" } +weapon-axe-ornate-bloodsteel-1h = Blodstål-kilonda + .desc = { "" } +weapon-axe-ornate-iron-1h = Järn-kilonda + .desc = { "" } +weapon-axe-ornate-cobalt-1h = Kobolt-kilonda + .desc = { "" } diff --git a/assets/voxygen/i18n/sv/item/weapon/primary_component.ftl b/assets/voxygen/i18n/sv/item/weapon/primary_component.ftl index d41fc6d..85c680a 100644 --- a/assets/voxygen/i18n/sv/item/weapon/primary_component.ftl +++ b/assets/voxygen/i18n/sv/item/weapon/primary_component.ftl @@ -302,3 +302,31 @@ weapon-component-bow-shortbow-wood = Trä Kortbågelemmar .desc = { "" } weapon-component-bow-longbow-wood = Trä Långbågelemmar .desc = { "" } +weapon-component-bow-warbow-ironwood = Järnträ Stridsbåglemmar + .desc = { "" } +weapon-component-bow-longbow-ironwood = Järnträ Långbågslemmar + .desc = { "" } +weapon-component-bow-greatbow-ironwood = Järnträ Storbågslemmar + .desc = { "" } +weapon-component-bow-shortbow-ironwood = Järnträ Kortbågslemmar + .desc = { "" } +weapon-component-staff-grandstaff-bamboo = Bambu Storstavsskaft + .desc = { "" } +weapon-component-sceptre-grandsceptre-bamboo = Bambu Storspirskaft + .desc = { "" } +weapon-component-staff-grandstaff-wood = Trä Storstavsskaft + .desc = { "" } +weapon-component-staff-grandstaff-eldwood = Åldersträ Storstavskaft + .desc = { "" } +weapon-component-sceptre-grandsceptre-hardwood = Hårdträ Storspirskaft + .desc = { "" } +weapon-component-sceptre-grandsceptre-eldwood = Åldersträ Storspirskaft + .desc = { "" } +weapon-component-bow-bow-ironwood = Järnträ Båglemmar + .desc = { "" } +weapon-component-bow-composite-ironwood = Järnträ Sammansatta Båglemmar + .desc = { "" } +weapon-component-axe-jagged-bronze = Brons Taggig Yxhuvud + .desc = { "" } +weapon-component-staff-grandstaff-ironwood = Järnträ Storstavskaft + .desc = { "" } diff --git a/assets/voxygen/i18n/sv/item/weapon/weapon.ftl b/assets/voxygen/i18n/sv/item/weapon/weapon.ftl index 72ed1c4..76369a4 100644 --- a/assets/voxygen/i18n/sv/item/weapon/weapon.ftl +++ b/assets/voxygen/i18n/sv/item/weapon/weapon.ftl @@ -60,3 +60,5 @@ weapon-sceptre-wood-simple = Naturalistisk prommenadkäpp .desc = Läker dina allierade med kraften av naturen. weapon-shield-wood-0 = En Sliten Targe .desc = Borde motså några fler träffar, förhoppningsvis... +weapon-staff-firestaff_starter = Knotigt Spö + .desc = Luktar som kåda och magi. diff --git a/assets/voxygen/i18n/sv/npc.ftl b/assets/voxygen/i18n/sv/npc.ftl index bbdba82..5cbac36 100644 --- a/assets/voxygen/i18n/sv/npc.ftl +++ b/assets/voxygen/i18n/sv/npc.ftl @@ -292,3 +292,15 @@ npc-speech-night = .a0 = Lyktor är användbara för att komma runt på natten! .a1 = Jag hoppas att vi är ensamma i mörkret... .a2 = Boo! +npc-speech-witness_theft_owned = + .a0 = Hallå! Det där är mitt. + .a1 = Varför rör du mina saker? + .a2 = Du är inte välkommen här om du tar mina saker.. +npc-speech-witness_theft = + .a0 = Det där är inte ditt! + .a1 = Håll dina händer för dig själv. + .a2 = Rör inte det där! + .a3 = Tjuv! + .a4 = Ge tillbaka det där. + .a5 = Vad tror du att du håller på med? + .a6 = Sluta eller så kallar jag på vakterna. diff --git a/assets/voxygen/i18n/tr/npc.ftl b/assets/voxygen/i18n/tr/npc.ftl index 4f71e67..33256b0 100644 --- a/assets/voxygen/i18n/tr/npc.ftl +++ b/assets/voxygen/i18n/tr/npc.ftl @@ -77,4 +77,5 @@ npc-speech-villager_under_attack = .a75 = Bunu haketmiyorum! .a76 = Lütfen bunu bir daha yapma. .a77 = Muhafızlar, şu canavarı göle atın! - .a78 = Tarrasque'ımı üzerine salarım! \ No newline at end of file + .a78 = Tarrasque'ımı üzerine salarım! +npc-speech-villager = Peynire bayılırım. diff --git a/assets/voxygen/item_image_manifest.ron b/assets/voxygen/item_image_manifest.ron index 8f590f3..f61288c 100644 --- a/assets/voxygen/item_image_manifest.ron +++ b/assets/voxygen/item_image_manifest.ron @@ -1698,7 +1698,11 @@ Simple("common.items.tool.instruments.kora"): VoxTrans( "voxel.weapon.tool.kora", (0.0, 0.0, 0.0), (45.0, 90.0, 0.0), 1.4, - ), + ), + Simple("common.items.tool.instruments.banjo"): VoxTrans( + "voxel.weapon.tool.banjo", + (0.0, 0.0, 0.0), (45.0, 90.0, 0.0), 1.4, + ), // Picks Simple("common.items.tool.pickaxe_stone"): VoxTrans( "voxel.weapon.tool.pickaxe_stone", diff --git a/assets/voxygen/lod/acacia.obj b/assets/voxygen/lod/acacia.obj new file mode 100644 index 0000000..8cf5176 --- /dev/null +++ b/assets/voxygen/lod/acacia.obj @@ -0,0 +1,230 @@ +# Blender 4.0.2 +# www.blender.org +o 150_95_65 +v -1.254123 1.686679 13.519532 +v 3.529774 -6.991860 19.791302 +v -2.798289 1.299578 13.271544 +v 2.263729 -7.789427 19.794483 +v -3.539829 1.018790 11.191601 +v 2.758112 -8.576844 18.622431 +v -1.457205 1.872955 10.653973 +v 4.024159 -7.779276 18.619251 +v 2.665143 1.232570 -10.135766 +v -4.948687 3.753592 23.244633 +v 0.357992 -0.807992 -10.392545 +v -5.877804 1.939741 23.288086 +v 2.297233 -3.093027 -9.638766 +v -4.116052 1.050700 23.797918 +v 4.604383 -1.052464 -9.381986 +v -3.186933 2.864555 23.754463 +vn 0.4964 0.6733 0.5480 +vn -0.8783 -0.2189 0.4251 +vn -0.7409 0.0448 0.6702 +vn 0.4427 0.6743 0.5910 +vn -0.1381 -0.6701 -0.7294 +vn -0.5329 -0.7052 -0.4677 +vn 0.3861 -0.4293 -0.8165 +vn 0.7842 -0.0497 -0.6185 +vn -0.4750 0.8643 -0.1653 +vn -0.9069 0.3672 -0.2068 +vn -0.9591 -0.2365 -0.1554 +vn -0.2543 0.9588 -0.1268 +vn 0.1412 -0.9786 0.1498 +vn 0.3700 -0.9094 0.1899 +vn 0.9736 0.0563 0.2214 +vn 0.8834 -0.3993 0.2451 +s 1 +f 1//1 3//2 4//3 2//4 +f 3//2 5//5 6//6 4//3 +f 5//5 7//7 8//8 6//6 +f 7//7 1//1 2//4 8//8 +f 9//9 11//10 12//11 10//12 +f 11//10 13//13 14//14 12//11 +f 13//13 15//15 16//16 14//14 +f 15//15 9//9 10//12 16//16 +o InstCol +v 2.155845 1.185259 19.516117 +v -4.836669 -1.279523 19.516117 +v -7.269387 -8.283253 19.516117 +v -2.757449 -19.360651 19.516117 +v 7.290589 -20.482147 19.516117 +v 14.421329 -13.318667 19.516117 +v 13.253801 -3.275868 19.516117 +v 1.948793 -8.033964 16.594593 +v -7.709281 6.190442 14.283049 +v -5.791293 -1.956090 14.283048 +v 1.773772 -5.535830 14.283048 +v 14.753009 -1.815847 14.283048 +v 17.230459 9.324826 14.283049 +v 10.055981 18.196434 14.283049 +v -1.356473 18.104328 14.283049 +v 2.612155 4.839787 10.985185 +v -6.265090 -2.270563 8.085488 +v -0.213819 -1.533966 8.085488 +v 2.983193 3.656369 8.085488 +v 1.328773 13.350545 8.085489 +v -6.538384 16.035694 8.085489 +v -13.535245 11.551620 8.085489 +v -14.381879 3.282071 8.085488 +v -4.461263 5.093669 5.683420 +v 5.752339 1.136609 24.313292 +v 1.817516 9.093175 24.313293 +v -6.856498 10.977647 24.313293 +v -19.373817 4.022391 24.313292 +v -19.262157 -8.081407 24.313290 +v -9.722838 -15.526714 24.313290 +v 2.045637 -12.695205 24.313290 +v 2.155845 1.185259 19.516117 +v -5.234906 0.057253 20.815613 +v 5.752339 1.136609 24.313292 +v 1.817516 9.093175 24.313293 +v -6.856498 10.977647 24.313293 +v -19.373817 4.022391 24.313292 +v -19.262157 -8.081407 24.313290 +v -9.722838 -15.526714 24.313290 +v 2.045637 -12.695205 24.313290 +v -5.269973 0.012321 28.305470 +v -4.836669 -1.279523 19.516117 +v -7.269387 -8.283253 19.516117 +v -2.757449 -19.360651 19.516117 +v 7.290589 -20.482147 19.516117 +v 14.421329 -13.318667 19.516117 +v 13.253801 -3.275868 19.516117 +v 1.982534 -8.067549 22.850685 +v -7.709281 6.190442 14.283049 +v -5.791293 -1.956090 14.283048 +v 1.773772 -5.535830 14.283048 +v 14.753009 -1.815847 14.283048 +v 17.230459 9.324826 14.283049 +v 10.055981 18.196434 14.283049 +v -1.356473 18.104328 14.283049 +v 2.653940 4.873582 18.047161 +v -6.265090 -2.270563 8.085488 +v -0.213819 -1.533966 8.085488 +v 2.983193 3.656369 8.085488 +v 1.328773 13.350545 8.085489 +v -6.538384 16.035694 8.085489 +v -13.535245 11.551620 8.085489 +v -14.381879 3.282071 8.085488 +v -4.482383 5.126626 10.827162 +vn -0.2068 0.2059 -0.9565 +vn 0.0066 0.3019 -0.9533 +vn -0.0391 0.0389 -0.9985 +vn 0.1953 0.1327 -0.9717 +vn 0.1986 -0.0717 -0.9775 +vn 0.0727 -0.1982 -0.9775 +vn -0.1318 -0.1959 -0.9717 +vn -0.3019 -0.0080 -0.9533 +vn -0.2269 -0.1835 -0.9565 +vn -0.2995 0.0390 -0.9533 +vn -0.0429 -0.0347 -0.9985 +vn -0.1110 0.2084 -0.9717 +vn 0.0927 0.1897 -0.9775 +vn 0.2049 0.0509 -0.9775 +vn 0.1806 -0.1521 -0.9717 +vn -0.0245 -0.3010 -0.9533 +vn 0.1575 -0.2457 -0.9565 +vn -0.0717 -0.2934 -0.9533 +vn 0.0298 -0.0465 -0.9985 +vn -0.2193 -0.0874 -0.9717 +vn -0.1784 0.1129 -0.9775 +vn -0.0281 0.2092 -0.9775 +vn 0.1710 0.1628 -0.9717 +vn 0.2965 -0.0575 -0.9533 +vn 0.2210 0.1506 0.9636 +vn 0.0072 0.3389 0.9408 +vn -0.0428 0.0426 0.9982 +vn 0.2258 -0.0815 0.9708 +vn 0.0825 -0.2255 0.9708 +vn -0.1496 -0.2217 0.9636 +vn -0.3389 -0.0087 0.9408 +vn -0.2321 0.2310 0.9449 +vn -0.2546 -0.2059 0.9449 +vn -0.0277 -0.3379 0.9408 +vn -0.0469 -0.0380 0.9982 +vn 0.1796 0.2301 -0.9565 +vn 0.3006 0.0297 -0.9533 +vn 0.0340 0.0435 -0.9985 +vn 0.1552 -0.1779 -0.9717 +vn -0.0474 -0.2057 -0.9775 +vn -0.1881 -0.0959 -0.9775 +vn -0.2103 0.1073 -0.9717 +vn -0.0442 0.2988 -0.9533 +vn 0.2015 0.2581 0.9449 +vn -0.0494 0.3354 0.9408 +vn 0.0371 0.0476 0.9982 +vn -0.2381 0.1219 0.9636 +vn -0.2139 -0.1090 0.9708 +vn -0.0538 -0.2340 0.9708 +vn 0.1761 -0.2014 0.9636 +vn 0.3373 0.0336 0.9408 +vn 0.2044 -0.1725 0.9636 +vn 0.2330 0.0578 0.9708 +vn 0.1053 0.2158 0.9708 +vn -0.1260 0.2359 0.9636 +vn -0.3362 0.0436 0.9408 +vn 0.1767 -0.2757 0.9449 +vn 0.3328 -0.0647 0.9408 +vn 0.0326 -0.0508 0.9982 +vn 0.1940 0.1842 0.9636 +vn -0.0319 0.2380 0.9708 +vn -0.2029 0.1284 0.9708 +vn -0.2484 -0.0993 0.9636 +vn -0.0802 -0.3294 0.9408 +s 1 +f 18//17 17//18 24//19 +f 17//18 23//20 24//19 +f 23//20 22//21 24//19 +f 22//21 21//22 24//19 +f 21//22 20//23 24//19 +f 20//23 19//24 24//19 +f 19//24 18//17 24//19 +f 26//25 25//26 32//27 +f 25//26 31//28 32//27 +f 31//28 30//29 32//27 +f 30//29 29//30 32//27 +f 29//30 28//31 32//27 +f 28//31 27//32 32//27 +f 27//32 26//25 32//27 +f 34//33 33//34 40//35 +f 33//34 39//36 40//35 +f 39//36 38//37 40//35 +f 38//37 37//38 40//35 +f 37//38 36//39 40//35 +f 36//39 35//40 40//35 +f 35//40 34//33 40//35 +f 63//41 48//42 64//43 +f 62//44 63//41 64//43 +f 61//45 62//44 64//43 +f 60//46 61//45 64//43 +f 59//47 60//46 64//43 +f 58//48 59//47 64//43 +f 66//49 67//50 72//51 +f 42//52 41//53 49//54 +f 41//53 47//55 49//54 +f 47//55 46//56 49//54 +f 46//56 45//57 49//54 +f 45//57 44//58 49//54 +f 44//58 43//59 49//54 +f 43//59 42//52 49//54 +f 51//60 52//61 57//62 +f 52//61 53//63 57//62 +f 53//63 54//64 57//62 +f 54//64 55//65 57//62 +f 55//65 56//66 57//62 +f 56//66 50//67 57//62 +f 50//67 51//60 57//62 +f 48//42 58//48 64//43 +f 67//50 68//68 72//51 +f 68//68 69//69 72//51 +f 69//69 70//70 72//51 +f 70//70 71//71 72//51 +f 71//71 65//72 72//51 +f 65//72 66//49 72//51 +f 74//73 75//74 80//75 +f 75//74 76//76 80//75 +f 76//76 77//77 80//75 +f 77//77 78//78 80//75 +f 78//78 79//79 80//75 +f 79//79 73//80 80//75 +f 73//80 74//73 80//75 diff --git a/assets/voxygen/lod/airship_dock.obj b/assets/voxygen/lod/airship_dock.obj new file mode 100644 index 0000000..4e81ec1 --- /dev/null +++ b/assets/voxygen/lod/airship_dock.obj @@ -0,0 +1,309 @@ +# Blender 4.0.2 +# www.blender.org +o 80_75_85 +v 5.795554 1.552914 -10.000000 +v 5.196152 3.000000 50.000000 +v 5.795554 -1.552914 -10.000000 +v 6.000000 0.000000 50.000000 +v 4.242640 -4.242640 -10.000000 +v 5.196152 -3.000000 50.000000 +v 1.552914 -5.795554 -10.000000 +v 3.000000 -5.196152 50.000000 +v -1.552914 -5.795554 -10.000000 +v 0.000000 -6.000000 50.000000 +v -4.242640 -4.242640 -10.000000 +v -3.000000 -5.196152 50.000000 +v -5.795554 -1.552914 -10.000000 +v -5.196152 -3.000000 50.000000 +v -5.795554 1.552914 -10.000000 +v -6.000000 -0.000000 50.000000 +v -4.242640 4.242640 -10.000000 +v -5.196152 3.000000 50.000000 +v -1.552914 5.795554 -10.000000 +v -3.000000 5.196152 50.000000 +v 1.552914 5.795554 -10.000000 +v -0.000000 6.000000 50.000000 +v 4.242640 4.242640 -10.000000 +v 3.000000 5.196152 50.000000 +vn 0.9659 0.2588 -0.0034 +vn 1.0000 -0.0000 0.0034 +vn 0.9659 -0.2588 -0.0034 +vn 0.8660 -0.5000 0.0034 +vn 0.7071 -0.7071 -0.0034 +vn 0.5000 -0.8660 0.0034 +vn 0.2588 -0.9659 -0.0034 +vn -0.0000 -1.0000 0.0034 +vn -0.2588 -0.9659 -0.0034 +vn -0.5000 -0.8660 0.0034 +vn -0.7071 -0.7071 -0.0034 +vn -0.8660 -0.5000 0.0034 +vn -0.9659 -0.2588 -0.0034 +vn -1.0000 -0.0000 0.0034 +vn -0.9659 0.2588 -0.0034 +vn -0.8660 0.5000 0.0034 +vn -0.7071 0.7071 -0.0034 +vn -0.5000 0.8660 0.0034 +vn -0.2588 0.9659 -0.0034 +vn -0.0000 1.0000 0.0034 +vn 0.2588 0.9659 -0.0034 +vn 0.5000 0.8660 0.0034 +vn 0.7071 0.7071 -0.0034 +vn 0.8660 0.5000 0.0034 +s 1 +f 1//1 4//2 3//3 +f 3//3 6//4 5//5 +f 5//5 8//6 7//7 +f 7//7 10//8 9//9 +f 9//9 12//10 11//11 +f 11//11 14//12 13//13 +f 13//13 16//14 15//15 +f 15//15 18//16 17//17 +f 17//17 20//18 19//19 +f 19//19 22//20 21//21 +f 21//21 24//22 23//23 +f 23//23 2//24 1//1 +f 1//1 2//24 4//2 +f 3//3 4//2 6//4 +f 5//5 6//4 8//6 +f 7//7 8//6 10//8 +f 9//9 10//8 12//10 +f 11//11 12//10 14//12 +f 13//13 14//12 16//14 +f 15//15 16//14 18//16 +f 17//17 18//16 20//18 +f 19//19 20//18 22//20 +f 21//21 22//20 24//22 +f 23//23 24//22 2//24 +o 45_28_21 +v 11.934315 -9.712869 39.000000 +v 11.934314 9.712870 39.000000 +v 9.712870 -11.934314 39.000000 +v -9.712869 -11.934315 39.000000 +v -11.934314 -9.712870 39.000000 +v -11.934315 9.712869 39.000000 +v -9.712870 11.934314 39.000000 +v 9.712869 11.934315 39.000000 +v 12.934313 10.127084 37.000000 +v 11.934314 9.712870 40.000000 +v 12.934315 -10.127082 37.000000 +v 11.934315 -9.712869 40.000000 +v 10.127084 -12.934313 37.000000 +v 9.712870 -11.934314 40.000000 +v -10.127082 -12.934315 37.000000 +v -9.712869 -11.934315 40.000000 +v -12.934313 -10.127084 37.000000 +v -11.934314 -9.712870 40.000000 +v -12.934315 10.127082 37.000000 +v -11.934315 9.712869 40.000000 +v -10.127084 12.934313 37.000000 +v -9.712870 11.934314 40.000000 +v 10.127082 12.934315 37.000000 +v 9.712869 11.934315 40.000000 +v -3.000000 -11.999999 37.000000 +v -3.000000 -5.000000 30.000000 +v 6.761479 1.811733 30.000000 +v 6.761479 1.811733 31.000000 +v 6.761479 -1.811733 30.000000 +v 6.761479 -1.811733 31.000000 +v 4.949746 -4.949747 30.000000 +v 4.949746 -4.949747 31.000000 +v 1.811733 -6.761479 30.000000 +v 1.811733 -6.761479 31.000000 +v -1.811733 -6.761479 30.000000 +v -1.811733 -6.761479 31.000000 +v -4.949747 -4.949746 30.000000 +v -4.949747 -4.949746 31.000000 +v -6.761479 -1.811733 30.000000 +v -6.761479 -1.811733 31.000000 +v -6.761479 1.811733 30.000000 +v -6.761479 1.811733 31.000000 +v -4.949746 4.949747 30.000000 +v -4.949746 4.949747 31.000000 +v -1.811733 6.761479 30.000000 +v -1.811733 6.761479 31.000000 +v 1.811733 6.761479 30.000000 +v 1.811733 6.761479 31.000000 +v 4.949747 4.949746 30.000000 +v 4.949747 4.949746 31.000000 +v -2.000000 -5.000000 30.000000 +v -2.000000 -11.999998 37.000000 +v 2.000000 -12.000000 37.000000 +v 2.000000 -5.000000 30.000000 +v 3.000000 -5.000000 30.000000 +v 3.000000 -11.999999 37.000000 +v 11.999999 -3.000000 36.999996 +v 5.000000 -3.000000 29.999998 +v 5.000000 -2.000000 29.999998 +v 11.999998 -2.000000 36.999996 +v 12.000000 2.000000 36.999996 +v 5.000000 2.000000 29.999998 +v 4.999999 3.000000 29.999998 +v 11.999999 3.000000 36.999996 +v 2.999998 11.999998 37.000000 +v 2.999999 5.000000 30.000000 +v 2.000000 5.000000 30.000000 +v 1.999999 11.999998 37.000000 +v -2.000001 11.999999 37.000000 +v -2.000000 5.000000 30.000000 +v -3.000000 4.999999 30.000000 +v -3.000001 11.999999 37.000000 +v -11.999998 2.999998 36.999996 +v -5.000000 2.999999 29.999998 +v -5.000000 2.000000 29.999998 +v -11.999998 1.999999 36.999996 +v -11.999999 -2.000001 36.999996 +v -5.000000 -2.000000 29.999998 +v -4.999999 -3.000000 29.999998 +v -11.999998 -3.000001 36.999996 +v 6.928202 3.999999 47.000000 +v 7.999998 -0.000000 47.000000 +v 6.928202 -4.000000 47.000000 +v 3.999999 -6.928202 47.000000 +v -0.000000 -7.999998 47.000000 +v -4.000000 -6.928202 47.000000 +v -6.928202 -3.999999 47.000000 +v -7.999998 0.000000 47.000000 +v -6.928202 4.000000 47.000000 +v -3.999999 6.928202 47.000000 +v 0.000000 7.999998 47.000000 +v 4.000000 6.928202 47.000000 +v 0.000000 0.000000 64.000000 +v 12.934315 -10.127082 40.000000 +v 12.934313 10.127084 40.000000 +v 10.127084 -12.934313 40.000000 +v -10.127082 -12.934315 40.000000 +v -12.934313 -10.127084 40.000000 +v -12.934315 10.127082 40.000000 +v -10.127084 12.934313 40.000000 +v 10.127082 12.934315 40.000000 +v 11.934315 -9.712869 39.000000 +v 11.934314 9.712870 39.000000 +v 9.712870 -11.934314 39.000000 +v -9.712869 -11.934315 39.000000 +v -11.934314 -9.712870 39.000000 +v -11.934315 9.712869 39.000000 +v -9.712870 11.934314 39.000000 +v 9.712869 11.934315 39.000000 +vn -0.0000 -0.0000 1.0000 +vn -0.9239 -0.3827 -0.0000 +vn -0.3827 -0.9239 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn 0.9659 0.2588 -0.0000 +vn 0.9659 -0.2588 -0.0000 +vn 0.7071 -0.7071 -0.0000 +vn 0.2588 -0.9659 -0.0000 +vn -0.2588 -0.9659 -0.0000 +vn -0.7071 -0.7071 -0.0000 +vn -0.9659 -0.2588 -0.0000 +vn -0.9659 0.2588 -0.0000 +vn -0.7071 0.7071 -0.0000 +vn -0.2588 0.9659 -0.0000 +vn 0.2588 0.9659 -0.0000 +vn -0.0000 -0.7071 -0.7071 +vn 0.7071 0.7071 -0.0000 +vn 0.7071 -0.0000 -0.7071 +vn -0.0000 0.7071 -0.7071 +vn -0.7071 -0.0000 -0.7071 +vn 0.8793 0.2356 0.4138 +vn 0.8793 -0.2356 0.4138 +vn 0.6437 -0.6437 0.4138 +vn 0.2356 -0.8793 0.4138 +vn -0.2356 -0.8793 0.4138 +vn -0.6437 -0.6437 0.4138 +vn -0.8793 -0.2356 0.4138 +vn -0.8793 0.2356 0.4138 +vn -0.6437 0.6437 0.4138 +vn -0.2356 0.8793 0.4138 +vn 0.2356 0.8793 0.4138 +vn 0.6437 0.6437 0.4138 +vn 0.3827 -0.9239 -0.0000 +vn 0.9239 -0.3827 -0.0000 +vn 0.9239 0.3827 -0.0000 +vn 0.3827 0.9239 -0.0000 +vn -0.3827 0.9239 -0.0000 +vn -0.9239 0.3827 -0.0000 +s 1 +f 25//25 26//25 32//25 31//25 30//25 29//25 28//25 27//25 +f 34//26 48//27 133//27 127//26 +f 33//28 35//28 37//28 39//28 41//28 43//28 45//28 47//28 +f 51//29 52//29 54//30 53//30 +f 53//30 54//30 56//31 55//31 +f 55//31 56//31 58//32 57//32 +f 57//32 58//32 60//33 59//33 +f 59//33 60//33 62//34 61//34 +f 61//34 62//34 64//35 63//35 +f 63//35 64//35 66//36 65//36 +f 65//36 66//36 68//37 67//37 +f 67//37 68//37 70//38 69//38 +f 69//38 70//38 72//39 71//39 +f 50//40 75//40 76//40 49//40 +f 71//39 72//39 74//41 73//41 +f 73//41 74//41 52//29 51//29 +f 78//40 79//40 80//40 77//40 +f 82//42 83//42 84//42 81//42 +f 86//42 87//42 88//42 85//42 +f 90//43 91//43 92//43 89//43 +f 94//43 95//43 96//43 93//43 +f 98//44 99//44 100//44 97//44 +f 102//44 103//44 104//44 101//44 +f 105//45 117//45 106//45 +f 106//46 117//46 107//46 +f 107//47 117//47 108//47 +f 108//48 117//48 109//48 +f 109//49 117//49 110//49 +f 110//50 117//50 111//50 +f 111//51 117//51 112//51 +f 112//52 117//52 113//52 +f 113//53 117//53 114//53 +f 114//54 117//54 115//54 +f 115//55 117//55 116//55 +f 116//56 117//56 105//56 +f 34//25 36//25 118//25 119//25 +f 36//25 38//25 120//25 118//25 +f 38//25 40//25 121//25 120//25 +f 40//25 42//25 122//25 121//25 +f 42//25 44//25 123//25 122//25 +f 44//25 46//25 124//25 123//25 +f 46//25 48//25 125//25 124//25 +f 48//25 34//25 119//25 125//25 +f 46//57 44//58 131//58 132//57 +f 42//59 40//60 129//60 130//59 +f 38//61 36//62 126//62 128//61 +f 48//27 46//57 132//57 133//27 +f 44//58 42//59 130//59 131//58 +f 40//60 38//61 128//61 129//60 +f 36//62 34//26 127//26 126//62 +o 30_22_15 +v 12.934313 10.127084 37.000000 +v 12.934315 -10.127082 37.000000 +v 10.127084 -12.934313 37.000000 +v -10.127082 -12.934315 37.000000 +v -12.934313 -10.127084 37.000000 +v -12.934315 10.127082 37.000000 +v -10.127084 12.934313 37.000000 +v 10.127082 12.934315 37.000000 +v 12.934315 -10.127082 40.000000 +v 12.934313 10.127084 40.000000 +v 10.127084 -12.934313 40.000000 +v -10.127082 -12.934315 40.000000 +v -12.934313 -10.127084 40.000000 +v -12.934315 10.127082 40.000000 +v -10.127084 12.934313 40.000000 +v 10.127082 12.934315 40.000000 +vn 1.0000 -0.0000 -0.0000 +vn 0.7071 -0.7071 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.7071 -0.7071 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.7071 0.7071 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn 0.7071 0.7071 -0.0000 +s 1 +f 134//63 143//63 142//63 135//63 +f 135//64 142//64 144//64 136//64 +f 136//65 144//65 145//65 137//65 +f 137//66 145//66 146//66 138//66 +f 138//67 146//67 147//67 139//67 +f 139//68 147//68 148//68 140//68 +f 140//69 148//69 149//69 141//69 +f 141//70 149//70 143//70 134//70 diff --git a/assets/voxygen/lod/arena.obj b/assets/voxygen/lod/arena.obj new file mode 100644 index 0000000..f1fdb1f --- /dev/null +++ b/assets/voxygen/lod/arena.obj @@ -0,0 +1,4444 @@ +# Blender 4.0.2 +# www.blender.org +o 247_216_136 +v -37.499996 69.500000 1.000000 +v -34.499992 84.500000 1.000000 +v -34.499992 81.500000 1.000000 +v -37.499992 77.500000 1.000000 +v -37.499992 84.500000 1.000000 +v -41.499992 81.500000 1.000000 +v -47.499992 81.500000 1.000000 +v -51.499992 84.500008 1.000000 +v -34.499992 81.500000 27.000000 +v -37.499992 77.500000 27.000000 +v -37.499992 84.500000 27.000000 +v -41.499992 81.500000 27.000000 +v -47.499992 81.500000 27.000000 +v -51.499992 84.500008 27.000000 +v -31.499994 87.500000 55.000000 +v -37.499996 73.500000 29.000000 +v -44.499992 81.500000 29.000000 +v -34.499992 79.500000 31.000000 +v -39.499992 84.500000 30.000000 +v -44.499992 84.500000 32.000000 +v -49.499992 84.500000 30.000000 +v -39.499992 81.500000 30.000000 +v -44.499992 81.500000 32.000000 +v -49.499992 81.500000 30.000000 +v -37.499992 75.500000 33.000000 +v -37.499992 81.500000 27.000000 +v -37.499992 79.500000 31.000000 +v -37.499992 81.500000 52.000000 +v -51.499992 84.500008 52.000000 +v -34.499992 84.500000 52.000000 +v -34.499992 81.500000 52.000000 +v -37.499992 84.500000 52.000000 +v -34.499996 67.500000 33.000000 +v -34.499996 67.500000 52.000000 +v -34.499992 84.500000 55.000000 +v -54.499992 84.500008 55.000000 +v -31.499994 87.500000 58.000000 +v -57.499992 87.500008 58.000000 +v -7.500000 61.499996 33.000000 +v -8.705772 66.000000 33.000000 +v -11.999999 69.294228 33.000000 +v -16.499998 70.500000 33.000000 +v -20.999998 69.294228 33.000000 +v -24.294226 66.000000 33.000000 +v -25.500000 61.500000 33.000000 +v -24.294228 56.999996 33.000000 +v -21.000000 53.705769 33.000000 +v -16.500000 52.499996 33.000000 +v -12.000001 53.705769 33.000000 +v -8.705772 56.999996 33.000000 +v -7.500000 61.499996 41.000000 +v -8.705772 66.000000 41.000000 +v -11.999999 69.294228 41.000000 +v -16.499998 70.500000 41.000000 +v -20.999998 69.294228 41.000000 +v -24.294226 66.000000 41.000000 +v -25.500000 61.500000 41.000000 +v -24.294228 56.999996 41.000000 +v -21.000000 53.705769 41.000000 +v -16.500000 52.499996 41.000000 +v -12.000001 53.705769 41.000000 +v -8.705772 56.999996 41.000000 +v -8.705772 66.000000 46.000000 +v -11.999999 69.294228 47.000000 +v -24.294228 56.999996 47.000000 +v -21.000000 53.705769 46.000000 +v -25.500000 61.500000 47.000000 +v -11.999999 69.294228 46.000000 +v -20.999998 69.294228 47.000000 +v -8.705772 56.999996 46.000000 +v -16.500000 52.499996 47.000000 +v -8.705772 66.000000 47.000000 +v -7.500000 61.499996 47.000000 +v -16.499998 70.500000 46.000000 +v -12.000001 53.705769 46.000000 +v -12.000001 53.705769 47.000000 +v -24.294226 66.000000 47.000000 +v -7.500000 61.499996 46.000000 +v -16.500000 52.499996 46.000000 +v -24.294226 66.000000 46.000000 +v -21.000000 53.705769 47.000000 +v -16.499998 70.500000 47.000000 +v -25.500000 61.500000 46.000000 +v -24.294228 56.999996 46.000000 +v -20.999998 69.294228 46.000000 +v -8.705772 56.999996 47.000000 +v -13.833332 61.500000 54.000000 +v -15.166666 59.190594 54.000000 +v -17.833334 59.190594 54.000000 +v -19.166666 61.500000 54.000000 +v -17.833332 63.809395 54.000000 +v -15.166666 63.809395 54.000000 +v -16.500000 61.500000 57.000000 +v -53.499996 54.499996 33.000000 +v -50.499996 51.499996 1.000000 +v -50.499996 64.500000 1.000000 +v -54.499996 64.500000 1.000000 +v -51.499996 64.500000 1.000000 +v -47.499996 67.499992 1.000000 +v -54.499996 67.500000 1.000000 +v -51.499996 71.500000 1.000000 +v -51.499992 77.500008 1.000000 +v -54.499992 81.500008 1.000000 +v -54.499992 84.500008 1.000000 +v -47.499996 51.499996 1.000000 +v -51.499996 64.500000 26.999998 +v -47.499996 67.499992 26.999998 +v -54.499996 67.500000 26.999998 +v -51.499996 71.500000 26.999998 +v -51.499992 77.500008 26.999998 +v -54.499992 81.500008 26.999998 +v -57.499996 61.499996 54.999996 +v -47.499996 51.499996 27.000000 +v -51.499996 74.500000 28.999998 +v -53.499996 64.500000 33.000000 +v -54.499996 69.500000 29.999998 +v -54.499996 74.500008 31.999998 +v -54.499992 79.500008 29.999998 +v -51.499992 81.500008 26.999998 +v -51.499996 69.500000 29.999998 +v -51.499996 74.500000 31.999998 +v -51.499992 79.500008 29.999998 +v -51.499996 67.500000 26.999996 +v -51.499992 81.500008 51.999996 +v -51.499996 67.500000 51.999996 +v -37.499996 67.499992 51.999996 +v -54.499992 81.500008 51.999996 +v -54.499996 64.500000 51.999996 +v -51.499996 64.500000 51.999996 +v -54.499996 67.500000 51.999996 +v -34.499996 64.499992 32.999996 +v -54.499992 84.500008 51.999996 +v -37.499996 64.499992 32.999996 +v -34.499996 64.499992 51.999996 +v -37.499996 64.499992 51.999996 +v -54.499996 64.500000 54.999996 +v -34.499996 64.499992 54.999996 +v -31.499996 61.499996 54.999996 +v -57.499992 87.500008 54.999996 +v -57.499996 61.499996 57.999996 +v -31.499996 61.499996 57.999996 +v -31.499994 57.500004 47.000000 +v -37.499992 51.500004 44.000000 +v -51.499992 54.500004 44.000000 +v -34.499992 54.500004 44.000000 +v -34.499992 51.500004 44.000000 +v -37.499992 54.500004 44.000000 +v -34.499992 37.500004 44.000000 +v -34.499992 54.500004 47.000000 +v -31.499994 57.500004 50.000000 +v -37.499992 51.500004 1.000000 +v -51.499992 54.500004 1.000000 +v -34.499992 54.500004 1.000000 +v -34.499992 51.500004 1.000000 +v -37.499992 54.500004 1.000000 +v -34.499992 37.500004 33.000000 +v 35.499992 75.500008 33.000000 +v -34.500000 75.499992 33.000000 +v -37.500011 69.499992 27.000000 +v 38.499989 69.500008 1.000000 +v 35.499989 72.500008 1.000000 +v -34.500011 72.499992 1.000000 +v 35.499992 84.500008 1.000000 +v 35.499992 81.500008 1.000000 +v 38.499992 77.500008 1.000000 +v 38.499992 84.500008 1.000000 +v 42.499992 81.500008 1.000000 +v 48.499992 81.500008 1.000000 +v 52.499992 84.500000 1.000000 +v 38.499989 69.500008 27.000000 +v 35.499992 81.500008 27.000000 +v 38.499992 77.500008 27.000000 +v 38.499992 84.500008 27.000000 +v 42.499992 81.500008 27.000000 +v 48.499992 81.500008 27.000000 +v 52.499992 84.500000 27.000000 +v 32.499992 87.500008 55.000000 +v 38.499989 73.500008 29.000000 +v 45.499992 81.500008 29.000000 +v 35.499992 79.500008 31.000000 +v 40.499992 84.500008 30.000000 +v 45.499992 84.500008 32.000000 +v 50.499992 84.500008 30.000000 +v 52.499992 81.500000 27.000000 +v 40.499992 81.500008 30.000000 +v 45.499992 81.500008 32.000000 +v 50.499992 81.500008 30.000000 +v 38.499992 75.500008 33.000000 +v 38.499992 81.500008 27.000000 +v 38.499992 79.500008 31.000000 +v 38.499992 81.500008 52.000000 +v 52.499992 84.500000 52.000000 +v 35.499992 84.500008 52.000000 +v 35.499992 81.500008 52.000000 +v 38.499992 84.500008 52.000000 +v 55.499992 84.500000 52.000000 +v 35.499989 67.500008 33.000000 +v 35.499989 67.500008 52.000000 +v 35.499992 84.500008 55.000000 +v 32.499992 87.500008 58.000000 +v 58.499992 87.500000 58.000000 +v 8.500000 61.499996 33.000000 +v 9.705772 66.000000 33.000000 +v 13.000001 69.294228 33.000000 +v 17.499998 70.500000 33.000000 +v 21.999998 69.294228 33.000000 +v 25.294230 66.000000 33.000000 +v 26.500000 61.499996 33.000000 +v 25.294228 57.000000 33.000000 +v 22.000000 53.705772 33.000000 +v 17.500000 52.500000 33.000000 +v 12.999999 53.705769 33.000000 +v 9.705772 56.999996 33.000000 +v 8.500000 61.499996 41.000000 +v 9.705772 66.000000 41.000000 +v 13.000001 69.294228 41.000000 +v 17.499998 70.500000 41.000000 +v 21.999998 69.294228 41.000000 +v 25.294230 66.000000 41.000000 +v 26.500000 61.499996 41.000000 +v 25.294228 57.000000 41.000000 +v 22.000000 53.705772 41.000000 +v 17.500000 52.500000 41.000000 +v 12.999999 53.705769 41.000000 +v 9.705772 56.999996 41.000000 +v 9.705772 66.000000 46.000000 +v 13.000001 69.294228 47.000000 +v 25.294228 57.000000 47.000000 +v 22.000000 53.705772 46.000000 +v 26.500000 61.499996 47.000000 +v 13.000001 69.294228 46.000000 +v 21.999998 69.294228 47.000000 +v 9.705772 56.999996 46.000000 +v 17.500000 52.500000 47.000000 +v 9.705772 66.000000 47.000000 +v 8.500000 61.499996 47.000000 +v 17.499998 70.500000 46.000000 +v 12.999999 53.705769 46.000000 +v 12.999999 53.705769 47.000000 +v 25.294230 66.000000 47.000000 +v 8.500000 61.499996 46.000000 +v 17.500000 52.500000 46.000000 +v 25.294230 66.000000 46.000000 +v 22.000000 53.705772 47.000000 +v 17.499998 70.500000 47.000000 +v 26.500000 61.499996 46.000000 +v 25.294228 57.000000 46.000000 +v 21.999998 69.294228 46.000000 +v 9.705772 56.999996 47.000000 +v 14.833332 61.500004 54.000000 +v 16.166666 59.190598 54.000000 +v 18.833330 59.190598 54.000000 +v 20.166662 61.500004 54.000000 +v 18.833332 63.809395 54.000000 +v 16.166666 63.809395 54.000000 +v 17.500000 61.500004 57.000000 +v 54.499996 54.499996 33.000000 +v 51.499996 51.499996 1.000000 +v 51.499989 64.499992 1.000000 +v 55.499989 64.499992 1.000000 +v 52.499989 64.499992 1.000000 +v 48.499989 67.500000 1.000000 +v 55.499989 67.499992 1.000000 +v 52.499989 71.499992 1.000000 +v 52.499992 77.500000 1.000000 +v 55.499992 81.500000 1.000000 +v 55.499992 84.500000 1.000000 +v 48.499996 51.499996 1.000000 +v 52.499989 64.499992 26.999998 +v 48.499989 67.500000 26.999998 +v 55.499989 67.499992 26.999998 +v 52.499989 71.499992 26.999998 +v 52.499992 77.500000 26.999998 +v 55.499992 81.500000 26.999998 +v 58.499996 61.499996 54.999996 +v 48.499996 51.499996 27.000000 +v 52.499989 74.499992 28.999998 +v 54.499989 64.499992 33.000000 +v 55.499989 69.499992 29.999998 +v 55.499989 74.500000 31.999998 +v 55.499992 79.500000 29.999998 +v 52.499989 69.499992 29.999998 +v 52.499989 74.499992 31.999998 +v 52.499992 79.500000 29.999998 +v 52.499989 67.499992 26.999996 +v 52.499992 81.500000 51.999996 +v 38.499989 67.500000 32.999996 +v 52.499989 67.499992 51.999996 +v 38.499989 67.500000 51.999996 +v 55.499992 81.500000 51.999996 +v 55.499989 64.499992 51.999996 +v 52.499989 64.499992 51.999996 +v 55.499989 67.499992 51.999996 +v 35.499989 64.500000 32.999996 +v 38.499989 64.500000 32.999996 +v 35.499989 64.500000 51.999996 +v 38.499989 64.500000 51.999996 +v 55.499989 64.499992 54.999996 +v 55.499992 84.500000 54.999996 +v 35.499989 64.500000 54.999996 +v 32.499996 61.499992 54.999996 +v 58.499992 87.500000 54.999996 +v 58.499996 61.499996 57.999996 +v 32.499996 61.499992 57.999996 +v 32.499992 57.500000 47.000000 +v 38.499992 51.500004 44.000000 +v 52.499992 54.500004 44.000000 +v 35.499992 54.500000 44.000000 +v 35.499992 51.500000 44.000000 +v 38.499992 54.500004 44.000000 +v 35.499992 37.500000 44.000000 +v 35.499992 54.500000 47.000000 +v 32.499992 57.500000 50.000000 +v 38.499992 51.500004 1.000000 +v 52.499992 54.500004 1.000000 +v 35.499992 54.500000 1.000000 +v 35.499992 51.500000 1.000000 +v 38.499992 54.500004 1.000000 +v 55.499992 54.500004 1.000000 +v 35.499992 37.500000 33.000000 +v -69.500000 37.500000 26.999998 +v -84.500000 -35.499992 1.000000 +v -81.500000 -35.499992 1.000000 +v -77.500000 -38.499992 1.000000 +v -84.500000 -38.499992 1.000000 +v -81.500000 -42.499992 1.000000 +v -81.500000 -48.499992 1.000000 +v -84.500008 -52.499992 1.000000 +v -81.500000 -35.499992 26.999998 +v -77.500000 -38.499992 26.999998 +v -84.500000 -38.499992 26.999998 +v -81.500000 -42.499992 26.999998 +v -81.500000 -48.499992 26.999998 +v -84.500008 -52.499992 26.999998 +v -87.500000 -32.499992 54.999996 +v -73.500000 -38.499996 28.999998 +v -81.500000 -45.499992 28.999998 +v -79.500000 -35.499992 30.999998 +v -84.500000 -40.499992 29.999998 +v -84.500000 -45.499992 31.999998 +v -84.500000 -50.499992 29.999998 +v -81.500008 -52.499992 26.999998 +v -81.500000 -40.499992 29.999998 +v -81.500000 -45.499992 31.999998 +v -81.500000 -50.499992 29.999998 +v -81.500000 -38.499992 26.999998 +v -79.500000 -38.499992 30.999998 +v -81.500000 -38.499992 51.999996 +v -67.500000 -38.499996 51.999996 +v -84.500008 -52.499992 51.999996 +v -84.500000 -35.499992 51.999996 +v -81.500000 -35.499992 51.999996 +v -84.500000 -38.499992 51.999996 +v -67.500000 -35.499996 32.999996 +v -67.500000 -35.499996 51.999996 +v -84.500000 -35.499992 54.999996 +v -61.500004 -32.499996 54.999996 +v -87.500000 -32.499992 57.999996 +v -87.500008 -58.499992 57.999996 +v -61.499996 -8.499999 32.999996 +v -66.000000 -9.705775 32.999996 +v -69.294228 -13.000002 32.999996 +v -70.500000 -17.500002 32.999996 +v -69.294228 -22.000002 32.999996 +v -66.000000 -25.294230 32.999996 +v -61.500000 -26.500000 32.999996 +v -56.999996 -25.294228 32.999996 +v -53.705769 -22.000000 32.999996 +v -52.499996 -17.500000 32.999996 +v -53.705769 -13.000000 32.999996 +v -56.999996 -9.705779 32.999996 +v -61.499996 -8.499999 40.999996 +v -66.000000 -9.705775 40.999996 +v -69.294228 -13.000002 40.999996 +v -70.500000 -17.500002 40.999996 +v -69.294228 -22.000002 40.999996 +v -66.000000 -25.294230 40.999996 +v -61.500000 -26.500000 40.999996 +v -56.999996 -25.294228 40.999996 +v -53.705769 -22.000000 40.999996 +v -52.499996 -17.500000 40.999996 +v -53.705769 -13.000000 40.999996 +v -56.999996 -9.705779 40.999996 +v -66.000000 -9.705775 45.999996 +v -69.294228 -13.000002 46.999996 +v -56.999996 -25.294228 46.999996 +v -53.705769 -22.000000 45.999996 +v -61.500000 -26.500000 46.999996 +v -69.294228 -13.000002 45.999996 +v -69.294228 -22.000002 46.999996 +v -56.999996 -9.705779 45.999996 +v -52.499996 -17.500000 46.999996 +v -66.000000 -9.705775 46.999996 +v -61.499996 -8.499999 46.999996 +v -70.500000 -17.500002 45.999996 +v -53.705769 -13.000000 45.999996 +v -53.705769 -13.000000 46.999996 +v -66.000000 -25.294230 46.999996 +v -61.499996 -8.499999 45.999996 +v -52.499996 -17.500000 45.999996 +v -66.000000 -25.294230 45.999996 +v -53.705769 -22.000000 46.999996 +v -70.500000 -17.500002 46.999996 +v -61.500000 -26.500000 45.999996 +v -56.999996 -25.294228 45.999996 +v -69.294228 -22.000002 45.999996 +v -56.999996 -9.705779 46.999996 +v -61.500000 -14.833339 53.999996 +v -59.190594 -16.166672 53.999996 +v -59.190590 -18.833336 53.999996 +v -61.500000 -20.166668 53.999996 +v -63.809395 -18.833330 53.999996 +v -63.809395 -16.166668 53.999996 +v -61.500000 -17.500004 56.999996 +v -54.499992 -54.500004 32.999996 +v -51.499992 -51.500004 1.000000 +v -64.500000 -51.500004 1.000000 +v -64.500000 -55.500004 1.000000 +v -64.500000 -52.500004 1.000000 +v -67.499992 -48.500004 1.000000 +v -67.500000 -55.500004 1.000000 +v -71.500000 -52.500004 1.000000 +v -77.500008 -52.499992 1.000000 +v -81.500008 -55.499992 1.000000 +v -84.500008 -55.499992 1.000000 +v -51.499992 -48.500004 1.000000 +v -64.500000 -52.500004 26.999996 +v -67.499992 -48.500004 26.999996 +v -67.500000 -55.500004 26.999996 +v -71.500000 -52.500004 26.999996 +v -77.500008 -52.499992 26.999996 +v -81.500008 -55.499992 26.999996 +v -61.499992 -58.500004 54.999992 +v -51.499992 -48.500004 26.999998 +v -74.500000 -52.500004 28.999996 +v -64.500000 -54.500004 32.999996 +v -69.500000 -55.500004 29.999996 +v -74.500008 -55.499996 31.999996 +v -79.500008 -55.499992 29.999996 +v -69.500000 -52.500004 29.999996 +v -74.500000 -52.500004 31.999996 +v -79.500008 -52.499992 29.999996 +v -67.500000 -52.500004 26.999992 +v -81.500008 -52.499992 51.999992 +v -67.499992 -38.500004 32.999992 +v -67.500000 -52.500004 51.999992 +v -81.500008 -55.499992 51.999992 +v -64.500000 -55.500004 51.999992 +v -64.500000 -52.500004 51.999992 +v -67.500000 -55.500004 51.999992 +v -64.499992 -35.500004 32.999992 +v -84.500008 -55.499992 51.999992 +v -64.499992 -38.500004 32.999992 +v -64.499992 -35.500004 51.999992 +v -64.499992 -38.500004 51.999992 +v -64.500000 -55.500004 54.999992 +v -84.500008 -55.499992 54.999992 +v -64.499992 -35.500004 54.999992 +v -87.500008 -58.499992 54.999992 +v -61.499992 -58.500004 57.999992 +v -61.499996 -32.500004 57.999992 +v -57.500004 -32.499996 46.999996 +v -51.500000 -52.499996 43.999996 +v -51.500004 -38.499996 43.999996 +v -37.500004 -38.499996 43.999996 +v -54.500000 -52.499996 43.999996 +v -54.500004 -35.499996 43.999996 +v -51.500004 -35.499996 43.999996 +v -54.500004 -38.499996 43.999996 +v -34.500004 -35.499996 43.999996 +v -37.500004 -35.499996 43.999996 +v -54.500004 -35.499996 46.999996 +v -54.500000 -55.499996 46.999996 +v -34.500004 -35.499996 46.999996 +v -31.500000 -32.500000 46.999996 +v -57.500000 -58.499996 46.999996 +v -57.500004 -32.499996 49.999996 +v -31.500000 -32.500000 49.999996 +v -57.500000 -58.499996 49.999996 +v -51.500000 -52.499996 1.000000 +v -51.500004 -38.499996 1.000000 +v -37.500004 -38.499996 32.999996 +v -54.500000 -52.499996 1.000000 +v -54.500004 -35.499996 1.000000 +v -51.500004 -35.499996 1.000000 +v -54.500004 -38.499996 1.000000 +v -34.500004 -35.499996 32.999996 +v -37.500004 -35.499996 32.999996 +v -75.500008 34.499989 32.999996 +v -75.499992 -35.500000 32.999996 +v -69.499992 -38.500019 26.999998 +v -69.500008 37.499985 1.000000 +v -69.499992 -38.500019 1.000000 +v -72.500008 34.499985 1.000000 +v -72.499992 -35.500019 1.000000 +v -84.500008 34.499989 1.000000 +v -81.500008 34.499989 1.000000 +v -77.500008 37.499989 1.000000 +v -84.500008 37.499989 1.000000 +v -81.500008 41.499989 1.000000 +v -81.500015 47.499989 1.000000 +v -84.500008 51.499989 1.000000 +v -81.500008 34.499989 26.999998 +v -77.500008 37.499989 26.999998 +v -84.500008 37.499989 26.999998 +v -81.500008 41.499989 26.999998 +v -81.500015 47.499989 26.999998 +v -84.500008 51.499989 26.999998 +v -87.500008 31.499987 54.999996 +v -73.500008 37.499985 28.999998 +v -81.500008 44.499989 28.999998 +v -79.500008 34.499989 30.999998 +v -84.500008 39.499989 29.999998 +v -84.500015 44.499989 31.999998 +v -84.500015 49.499989 29.999998 +v -81.500008 39.499989 29.999998 +v -81.500008 44.499989 31.999998 +v -81.500015 49.499989 29.999998 +v -75.500008 37.499989 32.999996 +v -81.500008 37.499989 26.999998 +v -79.500008 37.499989 30.999998 +v -81.500008 37.499989 51.999996 +v -84.500008 51.499989 51.999996 +v -84.500008 34.499989 51.999996 +v -81.500008 34.499989 51.999996 +v -84.500008 37.499989 51.999996 +v -67.500008 34.499985 32.999996 +v -64.500008 34.499985 51.999996 +v -67.500008 34.499985 51.999996 +v -84.500008 34.499989 54.999996 +v -87.500008 31.499987 57.999996 +v -61.500004 31.499994 57.999996 +v -87.500008 57.499989 57.999996 +v -61.499996 7.499997 32.999996 +v -66.000000 8.705770 32.999996 +v -69.294228 11.999998 32.999996 +v -70.500000 16.499994 32.999996 +v -69.294228 20.999994 32.999996 +v -66.000000 24.294226 32.999996 +v -61.500000 25.499996 32.999996 +v -56.999996 24.294224 32.999996 +v -53.705769 20.999996 32.999996 +v -52.500004 16.499996 32.999996 +v -53.705769 11.999996 32.999996 +v -56.999996 8.705770 32.999996 +v -61.499996 7.499997 40.999996 +v -66.000000 8.705770 40.999996 +v -69.294228 11.999998 40.999996 +v -70.500000 16.499994 40.999996 +v -69.294228 20.999994 40.999996 +v -66.000000 24.294226 40.999996 +v -61.500000 25.499996 40.999996 +v -56.999996 24.294224 40.999996 +v -53.705769 20.999996 40.999996 +v -52.500004 16.499996 40.999996 +v -53.705769 11.999996 40.999996 +v -56.999996 8.705770 40.999996 +v -66.000000 8.705770 45.999996 +v -69.294228 11.999998 46.999996 +v -56.999996 24.294224 46.999996 +v -53.705769 20.999996 45.999996 +v -61.500000 25.499996 46.999996 +v -69.294228 11.999998 45.999996 +v -69.294228 20.999994 46.999996 +v -56.999996 8.705770 45.999996 +v -52.500004 16.499996 46.999996 +v -66.000000 8.705770 46.999996 +v -61.499996 7.499997 46.999996 +v -70.500000 16.499994 45.999996 +v -53.705769 11.999996 45.999996 +v -53.705769 11.999996 46.999996 +v -66.000000 24.294226 46.999996 +v -61.499996 7.499997 45.999996 +v -52.500004 16.499996 45.999996 +v -66.000000 24.294226 45.999996 +v -53.705769 20.999996 46.999996 +v -70.500000 16.499994 46.999996 +v -61.500000 25.499996 45.999996 +v -56.999996 24.294224 45.999996 +v -69.294228 20.999994 45.999996 +v -56.999996 8.705770 46.999996 +v -61.500000 13.833329 53.999996 +v -59.190601 15.166661 53.999996 +v -59.190598 17.833328 53.999996 +v -61.500008 19.166660 53.999996 +v -63.809395 17.833330 53.999996 +v -63.809395 15.166661 53.999996 +v -61.500004 16.500000 56.999996 +v -54.500004 53.499992 32.999996 +v -51.500004 50.499992 1.000000 +v -64.499992 50.499985 1.000000 +v -64.499992 54.499985 1.000000 +v -64.499992 51.499985 1.000000 +v -67.500000 47.499985 1.000000 +v -67.499992 54.499985 1.000000 +v -71.499992 51.499985 1.000000 +v -77.500008 51.499989 1.000000 +v -81.500008 54.499989 1.000000 +v -84.500008 54.499989 1.000000 +v -51.500004 47.499992 1.000000 +v -64.499992 51.499985 26.999996 +v -67.500000 47.499985 26.999996 +v -67.499992 54.499985 26.999996 +v -71.499992 51.499985 26.999996 +v -77.500008 51.499989 26.999996 +v -81.500008 54.499989 26.999996 +v -61.500004 57.499992 54.999992 +v -51.500004 47.499992 26.999998 +v -74.499992 51.499985 28.999996 +v -64.499992 53.499985 32.999996 +v -69.499992 54.499985 29.999996 +v -74.500008 54.499985 31.999996 +v -79.500008 54.499989 29.999996 +v -81.500008 51.499989 26.999996 +v -69.499992 51.499985 29.999996 +v -74.499992 51.499985 31.999996 +v -79.500008 51.499989 29.999996 +v -67.499992 51.499985 26.999992 +v -81.500008 51.499989 51.999992 +v -67.500000 37.499985 32.999992 +v -67.499992 51.499985 51.999992 +v -67.500000 37.499985 51.999992 +v -81.500008 54.499989 51.999992 +v -64.499992 54.499985 51.999992 +v -64.499992 51.499985 51.999992 +v -67.499992 54.499985 51.999992 +v -64.500000 34.499985 32.999992 +v -84.500008 54.499989 51.999992 +v -64.500000 37.499985 32.999992 +v -64.500000 37.499985 51.999992 +v -64.499992 54.499985 54.999992 +v -84.500008 54.499989 54.999992 +v -64.500000 34.499985 54.999992 +v -61.499989 31.499994 54.999992 +v -87.500008 57.499989 54.999992 +v -61.500004 57.499992 57.999992 +v -57.500004 31.499989 46.999996 +v -51.500008 51.499989 43.999996 +v -51.500008 37.499989 43.999996 +v -37.500008 37.499992 43.999996 +v -54.500008 51.499989 43.999996 +v -54.500000 34.499989 43.999996 +v -51.500000 34.499989 43.999996 +v -54.500008 37.499989 43.999996 +v -54.500008 54.499989 43.999996 +v -34.500000 34.499992 43.999996 +v -37.500000 34.499992 43.999996 +v -54.500000 34.499989 46.999996 +v -54.500008 54.499989 46.999996 +v -34.500000 34.499992 46.999996 +v -31.500004 31.499994 46.999996 +v -57.500008 57.499989 46.999996 +v -57.500004 31.499989 49.999996 +v -31.500004 31.499994 49.999996 +v -57.500008 57.499989 49.999996 +v -51.500008 51.499989 1.000000 +v -51.500008 37.499989 1.000000 +v -37.500008 37.499992 32.999996 +v -54.500008 51.499989 1.000000 +v -54.500000 34.499989 1.000000 +v -51.500000 34.499989 1.000000 +v -54.500008 37.499989 1.000000 +v -54.500008 54.499989 1.000000 +v -34.500000 34.499992 32.999996 +v -37.500000 34.499992 32.999996 +v 35.500000 -76.500000 33.000000 +v -34.499992 -76.500000 33.000000 +v -37.499996 -70.500000 27.000000 +v 38.500004 -70.500000 1.000000 +v -37.499996 -70.500000 1.000000 +v -34.499996 -73.500000 1.000000 +v 35.500000 -85.500000 1.000000 +v 35.500000 -82.500000 1.000000 +v 38.500000 -78.500000 1.000000 +v 38.500000 -85.500000 1.000000 +v 42.500000 -82.500000 1.000000 +v 48.500000 -82.500000 1.000000 +v 52.500000 -85.500008 1.000000 +v 38.500004 -70.500000 27.000000 +v 35.500000 -82.500000 27.000000 +v 38.500000 -78.500000 27.000000 +v 38.500000 -85.500000 27.000000 +v 42.500000 -82.500000 27.000000 +v 48.500000 -82.500000 27.000000 +v 52.500000 -85.500008 27.000000 +v 32.500000 -88.500000 55.000000 +v 38.500004 -74.500000 29.000000 +v 45.500000 -82.500000 29.000000 +v 35.500000 -80.500000 31.000000 +v 40.500000 -85.500000 30.000000 +v 45.500000 -85.500000 32.000000 +v 50.500000 -85.500000 30.000000 +v 40.500000 -82.500000 30.000000 +v 45.500000 -82.500000 32.000000 +v 50.500000 -82.500000 30.000000 +v 38.500000 -76.500000 33.000000 +v 38.500000 -82.500000 27.000000 +v 38.500000 -80.500000 31.000000 +v 38.500000 -82.500000 52.000000 +v 52.500000 -85.500008 52.000000 +v 35.500000 -85.500000 52.000000 +v 35.500000 -82.500000 52.000000 +v 38.500000 -85.500000 52.000000 +v 35.500004 -68.500000 33.000000 +v 35.500004 -68.500000 52.000000 +v 35.500000 -85.500000 55.000000 +v 32.499996 -62.500004 55.000000 +v 32.500000 -88.500000 58.000000 +v 32.499996 -62.500004 58.000000 +v 8.500006 -62.499996 33.000000 +v 9.705778 -67.000000 33.000000 +v 13.000005 -70.294228 33.000000 +v 17.500006 -71.500000 33.000000 +v 22.000006 -70.294228 33.000000 +v 25.294233 -67.000000 33.000000 +v 26.500008 -62.499992 33.000000 +v 25.294235 -57.999989 33.000000 +v 22.000004 -54.705769 33.000000 +v 17.500004 -53.499996 33.000000 +v 13.000007 -54.705769 33.000000 +v 9.705778 -57.999996 33.000000 +v 8.500006 -62.499996 41.000000 +v 9.705778 -67.000000 41.000000 +v 13.000005 -70.294228 41.000000 +v 17.500006 -71.500000 41.000000 +v 22.000006 -70.294228 41.000000 +v 25.294233 -67.000000 41.000000 +v 26.500008 -62.499992 41.000000 +v 25.294235 -57.999989 41.000000 +v 22.000004 -54.705769 41.000000 +v 17.500004 -53.499996 41.000000 +v 13.000007 -54.705769 41.000000 +v 9.705778 -57.999996 41.000000 +v 9.705778 -67.000000 46.000000 +v 13.000005 -70.294228 47.000000 +v 25.294235 -57.999989 47.000000 +v 22.000004 -54.705769 46.000000 +v 26.500008 -62.499992 47.000000 +v 13.000005 -70.294228 46.000000 +v 22.000006 -70.294228 47.000000 +v 9.705778 -57.999996 46.000000 +v 17.500004 -53.499996 47.000000 +v 9.705778 -67.000000 47.000000 +v 8.500006 -62.499996 47.000000 +v 17.500006 -71.500000 46.000000 +v 13.000007 -54.705769 46.000000 +v 13.000007 -54.705769 47.000000 +v 25.294233 -67.000000 47.000000 +v 8.500006 -62.499996 46.000000 +v 17.500004 -53.499996 46.000000 +v 25.294233 -67.000000 46.000000 +v 22.000004 -54.705769 47.000000 +v 17.500006 -71.500000 47.000000 +v 26.500008 -62.499992 46.000000 +v 25.294235 -57.999989 46.000000 +v 22.000006 -70.294228 46.000000 +v 9.705778 -57.999996 47.000000 +v 14.833338 -62.500000 54.000000 +v 16.166672 -60.190594 54.000000 +v 18.833338 -60.190594 54.000000 +v 20.166670 -62.500000 54.000000 +v 18.833336 -64.809395 54.000000 +v 16.166672 -64.809395 54.000000 +v 17.500008 -62.500000 57.000000 +v 54.499996 -55.499996 33.000000 +v 51.499996 -52.499996 1.000000 +v 51.499996 -65.499985 1.000000 +v 55.499996 -65.499985 1.000000 +v 52.499996 -65.499985 1.000000 +v 48.500004 -68.499977 1.000000 +v 55.500004 -68.499985 1.000000 +v 52.500004 -72.499985 1.000000 +v 52.500000 -78.500008 1.000000 +v 55.500000 -82.500008 1.000000 +v 55.500000 -85.500008 1.000000 +v 48.499996 -52.499996 1.000000 +v 52.499996 -65.499985 26.999998 +v 48.500004 -68.499977 26.999998 +v 55.500004 -68.499985 26.999998 +v 52.500004 -72.499985 26.999998 +v 52.500000 -78.500008 26.999998 +v 55.500000 -82.500008 26.999998 +v 58.499996 -62.499996 54.999996 +v 48.499996 -52.499996 27.000000 +v 52.500004 -75.499985 28.999998 +v 54.499996 -65.499985 33.000000 +v 55.500004 -70.499985 29.999998 +v 55.500004 -75.500008 31.999998 +v 55.500000 -80.500008 29.999998 +v 52.500000 -82.500008 26.999998 +v 52.500004 -70.499985 29.999998 +v 52.500004 -75.499985 31.999998 +v 52.500000 -80.500008 29.999998 +v 52.500004 -68.499985 26.999996 +v 52.500000 -82.500008 51.999996 +v 38.500004 -68.499992 32.999996 +v 52.500004 -68.499985 51.999996 +v 38.500004 -68.499992 51.999996 +v 55.500000 -82.500008 51.999996 +v 55.499996 -65.499985 51.999996 +v 52.499996 -65.499985 51.999996 +v 55.500004 -68.499985 51.999996 +v 35.499996 -65.499992 32.999996 +v 55.500000 -85.500008 51.999996 +v 38.499996 -65.499992 32.999996 +v 35.499996 -65.499992 51.999996 +v 38.499996 -65.499992 51.999996 +v 55.499996 -65.499985 54.999996 +v 55.500000 -85.500008 54.999996 +v 35.499996 -65.499992 54.999996 +v 58.500000 -88.500008 54.999996 +v 58.499996 -62.499996 57.999996 +v 58.500000 -88.500008 57.999996 +v 32.499996 -58.500004 47.000000 +v 38.500000 -52.500004 44.000000 +v 52.500000 -55.500004 44.000000 +v 35.500000 -55.500004 44.000000 +v 35.500000 -52.500004 44.000000 +v 38.500000 -55.500004 44.000000 +v 35.500000 -38.500004 44.000000 +v 35.500000 -55.500004 47.000000 +v 32.500000 -32.500004 47.000000 +v 32.499996 -58.500004 50.000000 +v 32.500000 -32.500004 50.000000 +v 58.500000 -58.500004 50.000000 +v 52.500000 -52.500004 1.000000 +v 38.500000 -52.500004 1.000000 +v 52.500000 -55.500004 1.000000 +v 35.500000 -55.500004 1.000000 +v 35.500000 -52.500004 1.000000 +v 38.500000 -55.500004 1.000000 +v 35.500000 -38.500004 33.000000 +v 35.500019 -73.499992 1.000000 +v -34.499985 -85.500008 1.000000 +v -34.499985 -82.500008 1.000000 +v -37.499985 -78.500008 1.000000 +v -37.499985 -85.500008 1.000000 +v -41.499985 -82.500008 1.000000 +v -47.499985 -82.500023 1.000000 +v -51.499985 -85.500015 1.000000 +v -34.499985 -82.500008 27.000000 +v -37.499985 -78.500008 27.000000 +v -37.499985 -85.500008 27.000000 +v -41.499985 -82.500008 27.000000 +v -47.499985 -82.500023 27.000000 +v -51.499985 -85.500015 27.000000 +v -31.499983 -88.500008 55.000000 +v -37.499981 -74.500008 29.000000 +v -44.499985 -82.500023 29.000000 +v -34.499985 -80.500008 31.000000 +v -39.499985 -85.500008 30.000000 +v -44.499985 -85.500023 32.000000 +v -49.499985 -85.500023 30.000000 +v -39.499985 -82.500008 30.000000 +v -44.499985 -82.500023 32.000000 +v -49.499985 -82.500023 30.000000 +v -37.499985 -76.500008 33.000000 +v -37.499985 -82.500008 27.000000 +v -37.499985 -80.500008 31.000000 +v -37.499985 -82.500008 52.000000 +v -51.499985 -85.500015 52.000000 +v -34.499985 -85.500008 52.000000 +v -34.499985 -82.500008 52.000000 +v -37.499985 -85.500008 52.000000 +v -34.499981 -68.500008 33.000000 +v -34.499981 -68.500008 52.000000 +v -34.499985 -85.500008 55.000000 +v -31.499983 -88.500008 58.000000 +v -31.499989 -62.500008 58.000000 +v -7.499994 -62.499996 33.000000 +v -8.705767 -67.000000 33.000000 +v -11.999995 -70.294228 33.000000 +v -16.499990 -71.500000 33.000000 +v -20.999990 -70.294228 33.000000 +v -24.294222 -67.000000 33.000000 +v -25.499992 -62.499996 33.000000 +v -24.294220 -58.000000 33.000000 +v -20.999996 -54.705772 33.000000 +v -16.499996 -53.500000 33.000000 +v -11.999993 -54.705769 33.000000 +v -8.705767 -57.999996 33.000000 +v -7.499994 -62.499996 41.000000 +v -8.705767 -67.000000 41.000000 +v -11.999995 -70.294228 41.000000 +v -16.499990 -71.500000 41.000000 +v -20.999990 -70.294228 41.000000 +v -24.294222 -67.000000 41.000000 +v -25.499992 -62.499996 41.000000 +v -24.294220 -58.000000 41.000000 +v -20.999996 -54.705772 41.000000 +v -16.499996 -53.500000 41.000000 +v -11.999993 -54.705769 41.000000 +v -8.705767 -57.999996 41.000000 +v -8.705767 -67.000000 46.000000 +v -11.999995 -70.294228 47.000000 +v -24.294220 -58.000000 47.000000 +v -20.999996 -54.705772 46.000000 +v -25.499992 -62.499996 47.000000 +v -11.999995 -70.294228 46.000000 +v -20.999990 -70.294228 47.000000 +v -8.705767 -57.999996 46.000000 +v -16.499996 -53.500000 47.000000 +v -8.705767 -67.000000 47.000000 +v -7.499994 -62.499996 47.000000 +v -16.499990 -71.500000 46.000000 +v -11.999993 -54.705769 46.000000 +v -11.999993 -54.705769 47.000000 +v -24.294222 -67.000000 47.000000 +v -7.499994 -62.499996 46.000000 +v -16.499996 -53.500000 46.000000 +v -24.294222 -67.000000 46.000000 +v -20.999996 -54.705772 47.000000 +v -16.499990 -71.500000 47.000000 +v -25.499992 -62.499996 46.000000 +v -24.294220 -58.000000 46.000000 +v -20.999990 -70.294228 46.000000 +v -8.705767 -57.999996 47.000000 +v -13.833326 -62.500004 54.000000 +v -15.166660 -60.190598 54.000000 +v -17.833326 -60.190598 54.000000 +v -19.166658 -62.500004 54.000000 +v -17.833328 -64.809395 54.000000 +v -15.166660 -64.809395 54.000000 +v -16.499992 -62.500004 57.000000 +v -53.499996 -55.499996 33.000000 +v -50.499996 -52.499996 1.000000 +v -50.499989 -65.499992 1.000000 +v -54.499989 -65.499992 1.000000 +v -51.499989 -65.499992 1.000000 +v -47.499981 -68.500000 1.000000 +v -54.499981 -68.499992 1.000000 +v -51.499981 -72.499992 1.000000 +v -51.499985 -78.500015 1.000000 +v -54.499985 -82.500015 1.000000 +v -54.499985 -85.500015 1.000000 +v -47.499996 -52.499996 1.000000 +v -51.499989 -65.499992 26.999998 +v -47.499981 -68.500000 26.999998 +v -54.499981 -68.499992 26.999998 +v -51.499981 -72.499992 26.999998 +v -51.499985 -78.500015 26.999998 +v -54.499985 -82.500015 26.999998 +v -57.499996 -62.499996 54.999996 +v -47.499996 -52.499996 27.000000 +v -51.499981 -75.499992 28.999998 +v -53.499989 -65.499992 33.000000 +v -54.499981 -70.499992 29.999998 +v -54.499981 -75.500015 31.999998 +v -54.499985 -80.500015 29.999998 +v -51.499985 -82.500015 26.999998 +v -51.499981 -70.499992 29.999998 +v -51.499981 -75.499992 31.999998 +v -51.499985 -80.500015 29.999998 +v -51.499981 -68.499992 26.999996 +v -51.499985 -82.500015 51.999996 +v -51.499981 -68.499992 51.999996 +v -37.499981 -68.500000 51.999996 +v -54.499985 -82.500015 51.999996 +v -54.499989 -65.499992 51.999996 +v -51.499989 -65.499992 51.999996 +v -54.499981 -68.499992 51.999996 +v -34.499989 -65.500000 32.999996 +v -54.499985 -85.500015 51.999996 +v -37.499989 -65.500000 32.999996 +v -34.499989 -65.500000 51.999996 +v -37.499989 -65.500000 51.999996 +v -54.499989 -65.499992 54.999996 +v -54.499985 -85.500015 54.999996 +v -34.499989 -65.500000 54.999996 +v -31.499989 -62.500000 54.999996 +v -57.499985 -88.500015 54.999996 +v -57.499996 -62.499996 57.999996 +v -57.499985 -88.500015 57.999996 +v -31.499987 -58.500008 47.000000 +v -37.499985 -52.500004 44.000000 +v -51.499985 -55.500004 44.000000 +v -34.499985 -55.500008 44.000000 +v -34.499985 -52.500008 44.000000 +v -37.499985 -55.500004 44.000000 +v -54.499985 -55.500004 44.000000 +v -34.499985 -38.500008 44.000000 +v -34.499985 -55.500008 47.000000 +v -31.499987 -58.500008 50.000000 +v -37.499985 -52.500004 1.000000 +v -51.499985 -55.500004 1.000000 +v -34.499985 -55.500008 1.000000 +v -34.499985 -52.500008 1.000000 +v -37.499985 -55.500004 1.000000 +v -54.499985 -55.500004 1.000000 +v -34.499985 -38.500008 33.000000 +v 76.500000 34.500000 32.999996 +v 76.500000 -35.499989 32.999996 +v 70.500000 -38.499992 26.999998 +v 70.500000 37.500004 1.000000 +v 70.500000 -38.499992 1.000000 +v 73.500000 34.500004 1.000000 +v 73.500000 -35.499992 1.000000 +v 85.500000 34.500000 1.000000 +v 82.500000 34.500000 1.000000 +v 78.500000 37.500000 1.000000 +v 85.500000 37.500000 1.000000 +v 82.500000 41.500000 1.000000 +v 82.500000 47.500000 1.000000 +v 85.500008 51.500000 1.000000 +v 70.500000 37.500004 26.999998 +v 82.500000 34.500000 26.999998 +v 78.500000 37.500000 26.999998 +v 85.500000 37.500000 26.999998 +v 82.500000 41.500000 26.999998 +v 82.500000 47.500000 26.999998 +v 85.500008 51.500000 26.999998 +v 88.500000 31.500000 54.999996 +v 74.500000 37.500004 28.999998 +v 82.500000 44.500000 28.999998 +v 80.500000 34.500000 30.999998 +v 85.500000 39.500000 29.999998 +v 85.500000 44.500000 31.999998 +v 85.500000 49.500000 29.999998 +v 82.500000 39.500000 29.999998 +v 82.500000 44.500000 31.999998 +v 82.500000 49.500000 29.999998 +v 76.500000 37.500000 32.999996 +v 82.500000 37.500000 26.999998 +v 80.500000 37.500000 30.999998 +v 82.500008 51.500000 51.999996 +v 82.500000 37.500000 51.999996 +v 85.500008 51.500000 51.999996 +v 85.500000 34.500000 51.999996 +v 82.500000 34.500000 51.999996 +v 85.500000 37.500000 51.999996 +v 68.500000 34.500004 32.999996 +v 68.500000 34.500004 51.999996 +v 85.500000 34.500000 54.999996 +v 62.500004 31.499996 54.999996 +v 88.500000 31.500000 57.999996 +v 88.500008 57.500000 57.999996 +v 62.499996 7.500005 32.999996 +v 67.000000 8.705781 32.999996 +v 70.294228 12.000008 32.999996 +v 71.500000 16.500010 32.999996 +v 70.294228 21.000010 32.999996 +v 67.000000 24.294237 32.999996 +v 62.499992 25.500008 32.999996 +v 57.999989 24.294235 32.999996 +v 54.705769 21.000004 32.999996 +v 53.499996 16.500004 32.999996 +v 54.705769 12.000004 32.999996 +v 57.999996 8.705783 32.999996 +v 62.499996 7.500005 40.999996 +v 67.000000 8.705781 40.999996 +v 70.294228 12.000008 40.999996 +v 71.500000 16.500010 40.999996 +v 70.294228 21.000010 40.999996 +v 67.000000 24.294237 40.999996 +v 62.499992 25.500008 40.999996 +v 57.999989 24.294235 40.999996 +v 54.705769 21.000004 40.999996 +v 53.499996 16.500004 40.999996 +v 54.705769 12.000004 40.999996 +v 57.999996 8.705783 40.999996 +v 67.000000 8.705781 45.999996 +v 70.294228 12.000008 46.999996 +v 57.999989 24.294235 46.999996 +v 54.705769 21.000004 45.999996 +v 62.499992 25.500008 46.999996 +v 70.294228 12.000008 45.999996 +v 70.294228 21.000010 46.999996 +v 57.999996 8.705783 45.999996 +v 53.499996 16.500004 46.999996 +v 67.000000 8.705781 46.999996 +v 62.499996 7.500005 46.999996 +v 71.500000 16.500010 45.999996 +v 54.705769 12.000004 45.999996 +v 54.705769 12.000004 46.999996 +v 67.000000 24.294237 46.999996 +v 62.499996 7.500005 45.999996 +v 53.499996 16.500004 45.999996 +v 67.000000 24.294237 45.999996 +v 54.705769 21.000004 46.999996 +v 71.500000 16.500010 46.999996 +v 62.499992 25.500008 45.999996 +v 57.999989 24.294235 45.999996 +v 70.294228 21.000010 45.999996 +v 57.999996 8.705783 46.999996 +v 62.500000 13.833344 53.999996 +v 60.190594 15.166675 53.999996 +v 60.190590 17.833344 53.999996 +v 62.500000 19.166676 53.999996 +v 64.809395 17.833338 53.999996 +v 64.809395 15.166673 53.999996 +v 62.500000 16.500011 56.999996 +v 55.499985 53.500004 32.999996 +v 52.499985 50.500004 1.000000 +v 65.499985 50.500004 1.000000 +v 65.499985 54.500004 1.000000 +v 65.499985 51.500004 1.000000 +v 68.499977 47.500011 1.000000 +v 68.499985 54.500011 1.000000 +v 72.499985 51.500011 1.000000 +v 78.500008 51.500000 1.000000 +v 82.500008 54.500000 1.000000 +v 85.500008 54.500000 1.000000 +v 52.499985 47.500004 1.000000 +v 65.499985 51.500004 26.999996 +v 68.499977 47.500011 26.999996 +v 68.499985 54.500011 26.999996 +v 72.499985 51.500011 26.999996 +v 78.500008 51.500000 26.999996 +v 82.500008 54.500000 26.999996 +v 62.499985 57.500004 54.999992 +v 52.499985 47.500004 26.999998 +v 75.499985 51.500011 28.999996 +v 70.499985 54.500011 29.999996 +v 75.500008 54.500004 31.999996 +v 80.500008 54.500000 29.999996 +v 82.500008 51.500000 26.999996 +v 70.499985 51.500011 29.999996 +v 75.499985 51.500011 31.999996 +v 80.500008 51.500000 29.999996 +v 68.499985 51.500011 26.999992 +v 68.499992 37.500011 32.999992 +v 68.499985 51.500011 51.999992 +v 68.499992 37.500011 51.999992 +v 82.500008 54.500000 51.999992 +v 65.499985 54.500004 51.999992 +v 65.499985 51.500004 51.999992 +v 68.499985 54.500011 51.999992 +v 65.499992 34.500004 32.999992 +v 85.500008 54.500000 51.999992 +v 65.499992 37.500004 32.999992 +v 65.499992 34.500004 51.999992 +v 65.499992 37.500004 51.999992 +v 65.499985 54.500004 54.999992 +v 85.500008 54.500000 54.999992 +v 65.499992 34.500004 54.999992 +v 88.500008 57.500000 54.999992 +v 62.499985 57.500004 57.999992 +v 62.499996 31.500004 57.999992 +v 58.500004 31.499996 46.999996 +v 52.499992 51.499996 43.999996 +v 52.500004 37.499996 43.999996 +v 38.500004 37.499996 43.999996 +v 55.499992 51.499996 43.999996 +v 55.500004 34.499996 43.999996 +v 52.500004 34.499996 43.999996 +v 55.500004 37.499996 43.999996 +v 55.499992 54.499996 43.999996 +v 35.500004 34.499996 43.999996 +v 38.500004 34.499996 43.999996 +v 55.500004 34.499996 46.999996 +v 55.499992 54.499996 46.999996 +v 35.500004 34.499996 46.999996 +v 32.499996 31.499998 46.999996 +v 58.499992 57.499996 46.999996 +v 58.500004 31.499996 49.999996 +v 32.499996 31.499998 49.999996 +v 58.499992 57.499996 49.999996 +v 52.499992 51.499996 1.000000 +v 52.500004 37.499996 1.000000 +v 38.500004 37.499996 32.999996 +v 55.499992 51.499996 1.000000 +v 55.500004 34.499996 1.000000 +v 52.500004 34.499996 1.000000 +v 55.500004 37.499996 1.000000 +v 35.500004 34.499996 32.999996 +v 38.500004 34.499996 32.999996 +v 85.500008 -35.499981 1.000000 +v 82.500008 -35.499981 1.000000 +v 78.500008 -38.499981 1.000000 +v 85.500008 -38.499981 1.000000 +v 82.500008 -42.499981 1.000000 +v 82.500015 -48.499981 1.000000 +v 85.500008 -52.499981 1.000000 +v 85.500008 -55.499981 1.000000 +v 82.500008 -35.499981 26.999998 +v 78.500008 -38.499981 26.999998 +v 85.500008 -38.499981 26.999998 +v 82.500008 -42.499981 26.999998 +v 82.500015 -48.499981 26.999998 +v 85.500008 -52.499981 26.999998 +v 88.500008 -32.499977 54.999996 +v 74.500008 -38.499977 28.999998 +v 82.500023 -45.499981 28.999998 +v 80.500008 -35.499981 30.999998 +v 85.500008 -40.499981 29.999998 +v 85.500015 -45.499981 31.999998 +v 85.500015 -50.499981 29.999998 +v 82.500008 -40.499981 29.999998 +v 82.500023 -45.499981 31.999998 +v 82.500015 -50.499981 29.999998 +v 76.500008 -38.499981 32.999996 +v 82.500008 -38.499981 26.999998 +v 80.500008 -38.499981 30.999998 +v 82.500008 -38.499981 51.999996 +v 85.500008 -52.499981 51.999996 +v 85.500008 -35.499981 51.999996 +v 82.500008 -35.499981 51.999996 +v 85.500008 -38.499981 51.999996 +v 68.500008 -35.499977 32.999996 +v 68.500008 -35.499977 51.999996 +v 85.500008 -35.499981 54.999996 +v 88.500008 -32.499977 57.999996 +v 88.500008 -58.499981 57.999996 +v 62.499996 -8.499991 32.999996 +v 67.000000 -9.705764 32.999996 +v 70.294228 -12.999992 32.999996 +v 71.500000 -17.499987 32.999996 +v 70.294228 -21.999987 32.999996 +v 67.000000 -25.294218 32.999996 +v 62.500008 -26.499989 32.999996 +v 58.000004 -25.294216 32.999996 +v 54.705769 -21.999992 32.999996 +v 53.500004 -17.499992 32.999996 +v 54.705769 -12.999992 32.999996 +v 57.999996 -9.705766 32.999996 +v 62.499996 -8.499991 40.999996 +v 67.000000 -9.705764 40.999996 +v 70.294228 -12.999992 40.999996 +v 71.500000 -17.499987 40.999996 +v 70.294228 -21.999987 40.999996 +v 67.000000 -25.294218 40.999996 +v 62.500008 -26.499989 40.999996 +v 58.000004 -25.294216 40.999996 +v 54.705769 -21.999992 40.999996 +v 53.500004 -17.499992 40.999996 +v 54.705769 -12.999992 40.999996 +v 57.999996 -9.705766 40.999996 +v 67.000000 -9.705764 45.999996 +v 70.294228 -12.999992 46.999996 +v 58.000004 -25.294216 46.999996 +v 54.705769 -21.999992 45.999996 +v 62.500008 -26.499989 46.999996 +v 70.294228 -12.999992 45.999996 +v 70.294228 -21.999987 46.999996 +v 57.999996 -9.705766 45.999996 +v 53.500004 -17.499992 46.999996 +v 67.000000 -9.705764 46.999996 +v 62.499996 -8.499991 46.999996 +v 71.500000 -17.499987 45.999996 +v 54.705769 -12.999992 45.999996 +v 54.705769 -12.999992 46.999996 +v 67.000000 -25.294218 46.999996 +v 62.499996 -8.499991 45.999996 +v 53.500004 -17.499992 45.999996 +v 67.000000 -25.294218 45.999996 +v 54.705769 -21.999992 46.999996 +v 71.500000 -17.499987 46.999996 +v 62.500008 -26.499989 45.999996 +v 58.000004 -25.294216 45.999996 +v 70.294228 -21.999987 45.999996 +v 57.999996 -9.705766 46.999996 +v 62.500000 -14.833323 53.999996 +v 60.190601 -16.166656 53.999996 +v 60.190598 -18.833321 53.999996 +v 62.500008 -20.166653 53.999996 +v 64.809395 -18.833323 53.999996 +v 64.809395 -16.166656 53.999996 +v 62.500004 -17.499992 56.999996 +v 55.500004 -54.499985 32.999996 +v 52.500004 -51.499985 1.000000 +v 65.499992 -51.499977 1.000000 +v 65.499992 -55.499977 1.000000 +v 65.499992 -52.499977 1.000000 +v 68.500000 -48.499977 1.000000 +v 68.499992 -55.499977 1.000000 +v 72.499992 -52.499977 1.000000 +v 78.500008 -52.499981 1.000000 +v 82.500008 -55.499981 1.000000 +v 54.499985 -54.499996 32.999996 +v 52.500004 -48.499985 1.000000 +v 65.499992 -52.499977 26.999996 +v 68.500000 -48.499977 26.999996 +v 68.499992 -55.499977 26.999996 +v 72.499992 -52.499977 26.999996 +v 78.500008 -52.499981 26.999996 +v 82.500008 -55.499981 26.999996 +v 62.500004 -58.499985 54.999992 +v 52.500004 -48.499985 26.999998 +v 75.499992 -52.499977 28.999996 +v 70.499992 -55.499977 29.999996 +v 75.500008 -55.499977 31.999996 +v 80.500008 -55.499981 29.999996 +v 82.500008 -52.499981 26.999996 +v 70.499992 -52.499977 29.999996 +v 75.499992 -52.499977 31.999996 +v 80.500008 -52.499981 29.999996 +v 68.499992 -52.499977 26.999992 +v 82.500008 -52.499981 51.999992 +v 68.500000 -38.499977 32.999992 +v 68.499992 -52.499977 51.999992 +v 68.500000 -38.499977 51.999992 +v 82.500008 -55.499981 51.999992 +v 65.499992 -55.499977 51.999992 +v 65.499992 -52.499977 51.999992 +v 68.499992 -55.499977 51.999992 +v 65.500000 -35.499977 32.999992 +v 85.500008 -55.499981 51.999992 +v 65.500000 -38.499977 32.999992 +v 65.500000 -35.499977 51.999992 +v 65.500000 -38.499977 51.999992 +v 65.499992 -55.499977 54.999992 +v 85.500008 -55.499981 54.999992 +v 65.500000 -35.499977 54.999992 +v 62.499989 -32.499992 54.999992 +v 88.500008 -58.499981 54.999992 +v 62.500004 -58.499985 57.999992 +v 62.499989 -32.499992 57.999992 +v 54.499985 53.500004 32.999996 +v 58.500004 -32.499981 46.999996 +v 52.500015 -52.499989 43.999996 +v 52.500015 -38.499989 43.999996 +v 38.500015 -38.499985 43.999996 +v 55.500015 -52.499989 43.999996 +v 55.500008 -35.499989 43.999996 +v 52.500008 -35.499989 43.999996 +v 55.500015 -38.499989 43.999996 +v 55.500015 -55.499989 43.999996 +v 35.500008 -35.499985 43.999996 +v 38.500008 -35.499985 43.999996 +v 55.500008 -35.499989 46.999996 +v 55.500015 -55.499989 46.999996 +v 35.500008 -35.499985 46.999996 +v 58.500015 -58.499989 46.999996 +v 58.500004 -32.499981 49.999996 +v 54.500000 67.500015 32.999996 +v 54.500004 -68.499985 32.999996 +v 52.500015 -38.499989 1.000000 +v 38.500015 -38.499985 32.999996 +v 55.500015 -52.499989 1.000000 +v 55.500008 -35.499989 1.000000 +v 52.500008 -35.499989 1.000000 +v 55.500015 -38.499989 1.000000 +v 55.500015 -55.499989 1.000000 +v 35.500008 -35.499985 32.999996 +v 38.500008 -35.499985 32.999996 +v 65.499977 -54.499996 32.999996 +v 65.499992 53.500004 32.999996 +v -75.499992 -38.499977 32.999996 +v -53.499985 -54.499996 32.999996 +v -53.499985 53.500004 32.999996 +v -37.499996 -68.499985 32.999996 +v -37.500000 67.500015 32.999996 +v -53.500000 67.500023 32.999996 +v -53.499996 -68.499977 32.999996 +v -64.500000 -52.500004 32.999992 +v -75.500000 51.499989 32.999996 +v -64.499992 51.499985 32.999992 +v -75.500000 -52.499977 32.999996 +v 76.500008 51.500000 32.999996 +v 65.500000 51.500004 32.999992 +v 76.500000 -52.499981 32.999996 +v 65.499992 -52.499977 32.999992 +vn -0.0000 -0.0000 1.0000 +vn 0.6667 0.3333 -0.6667 +vn 0.7663 -0.5747 -0.2873 +vn 0.8305 -0.2491 -0.4983 +vn -0.5571 0.7428 -0.3714 +vn -0.2722 0.6804 -0.6804 +vn -0.3548 0.7687 -0.5322 +vn 0.2722 0.6804 -0.6804 +vn 0.3548 0.7687 -0.5322 +vn 0.5571 0.7428 -0.3714 +vn -0.9659 0.2588 -0.0000 +vn -0.2588 -0.9659 -0.0000 +vn -0.7071 -0.7071 -0.0000 +vn 0.2588 0.9659 -0.0000 +vn -0.7071 0.7071 -0.0000 +vn 0.9659 0.2588 -0.0000 +vn 0.7071 -0.7071 -0.0000 +vn 0.7071 0.7071 -0.0000 +vn 0.9659 -0.2588 -0.0000 +vn -0.9659 -0.2588 -0.0000 +vn -0.2588 0.9659 -0.0000 +vn 0.6000 0.8000 -0.0000 +vn -0.6000 0.8000 -0.0000 +vn 0.8000 -0.6000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.3714 -0.0000 0.9285 +vn 0.8321 -0.0000 0.5547 +vn -0.8321 -0.0000 0.5547 +vn 0.3714 -0.0000 0.9285 +vn -0.0000 0.8944 0.4472 +vn -0.0000 0.4472 0.8944 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn 0.2588 -0.9659 -0.0000 +vn 0.6862 -0.3962 0.6100 +vn -0.0000 -0.7924 0.6100 +vn -0.6862 -0.3962 0.6100 +vn -0.6862 0.3962 0.6100 +vn -0.0000 0.7924 0.6100 +vn 0.6862 0.3962 0.6100 +vn -0.7071 -0.0000 -0.7071 +vn -0.7428 0.5571 -0.3714 +vn -0.6804 0.2722 -0.6804 +vn -0.7687 0.3548 -0.5322 +vn -0.6804 -0.2722 -0.6804 +vn -0.7687 -0.3548 -0.5322 +vn -0.7428 -0.5571 -0.3714 +vn -0.8000 -0.6000 -0.0000 +vn -0.8000 0.6000 -0.0000 +vn 0.6000 -0.8000 -0.0000 +vn -0.0000 0.3714 0.9285 +vn -0.0000 -0.8321 0.5547 +vn -0.0000 0.8321 0.5547 +vn -0.0000 -0.3714 0.9285 +vn 0.5883 -0.7845 0.1961 +vn -0.6667 0.3333 -0.6667 +vn -0.7663 -0.5747 -0.2873 +vn -0.8305 -0.2491 -0.4983 +vn -0.0000 0.7071 -0.7071 +vn 0.7071 -0.0000 -0.7071 +vn 0.7428 0.5571 -0.3714 +vn 0.6804 0.2722 -0.6804 +vn 0.7687 0.3548 -0.5322 +vn 0.6804 -0.2722 -0.6804 +vn 0.7687 -0.3548 -0.5322 +vn 0.7428 -0.5571 -0.3714 +vn 0.8000 0.6000 -0.0000 +vn -0.6000 -0.8000 -0.0000 +vn -0.0000 0.8320 0.5547 +vn -0.5883 -0.7845 0.1961 +vn -0.3333 0.6667 -0.6667 +vn 0.5747 0.7663 -0.2873 +vn 0.2491 0.8305 -0.4983 +vn -0.8944 -0.0000 0.4472 +vn -0.4472 -0.0000 0.8944 +vn 0.3962 0.6862 0.6100 +vn 0.7924 -0.0000 0.6100 +vn 0.3962 -0.6862 0.6100 +vn -0.3962 -0.6862 0.6100 +vn -0.7924 -0.0000 0.6100 +vn -0.3962 0.6862 0.6100 +vn -0.0000 -0.7071 -0.7071 +vn -0.5571 -0.7428 -0.3714 +vn -0.2722 -0.6804 -0.6804 +vn -0.3548 -0.7687 -0.5322 +vn 0.2722 -0.6804 -0.6804 +vn 0.3548 -0.7687 -0.5322 +vn 0.5571 -0.7428 -0.3714 +vn 0.7845 0.5883 0.1961 +vn -0.3333 -0.6667 -0.6667 +vn 0.5747 -0.7663 -0.2873 +vn 0.2491 -0.8305 -0.4983 +vn 0.7845 -0.5883 0.1961 +vn -0.6667 -0.3333 -0.6667 +vn -0.7663 0.5747 -0.2873 +vn -0.8305 0.2491 -0.4983 +vn -0.0000 -0.8944 0.4472 +vn -0.0000 -0.4472 0.8944 +vn -0.5883 0.7845 0.1961 +vn 0.6667 -0.3333 -0.6667 +vn 0.7663 0.5747 -0.2873 +vn 0.8305 0.2491 -0.4983 +vn 0.5883 0.7845 0.1961 +vn 0.3333 -0.6667 -0.6667 +vn -0.5747 -0.7663 -0.2873 +vn -0.2491 -0.8305 -0.4983 +vn 0.8944 -0.0000 0.4472 +vn 0.4472 -0.0000 0.8944 +vn -0.7845 -0.5883 0.1961 +vn 0.3333 0.6667 -0.6667 +vn -0.5747 0.7663 -0.2873 +vn -0.2491 0.8305 -0.4983 +vn -0.7845 0.5883 0.1961 +s 0 +f 6//1 5//1 8//1 7//1 +f 159//2 16//2 158//2 +f 9//3 18//3 10//3 +f 18//4 158//4 10//4 +f 10//4 158//4 16//4 +f 12//5 19//5 11//5 +f 17//6 20//6 19//6 +f 17//7 19//7 12//7 +f 21//8 20//8 17//8 +f 17//9 13//9 21//9 +f 14//10 21//10 13//10 +f 141//1 37//1 38//1 +f 83//11 67//11 77//11 80//11 +f 79//12 71//12 81//12 66//12 +f 66//13 81//13 65//13 84//13 +f 74//14 82//14 64//14 68//14 +f 80//15 77//15 69//15 85//15 +f 63//16 72//16 73//16 78//16 +f 70//17 86//17 76//17 75//17 +f 68//18 64//18 72//18 63//18 +f 78//19 73//19 86//19 70//19 +f 84//20 65//20 67//20 83//20 +f 85//21 69//21 82//21 74//21 +f 1//1 160//1 161//1 162//1 +f 4//1 1//1 162//1 3//1 +f 13//22 7//22 8//22 14//22 +f 11//23 5//23 6//23 12//23 +f 4//24 3//24 9//24 10//24 +f 8//25 104//25 132//25 29//25 +f 20//26 21//26 24//26 23//26 +f 26//27 11//27 19//27 22//27 +f 24//28 21//28 14//28 119//28 +f 19//29 20//29 23//29 22//29 +f 27//30 18//30 9//30 26//30 +f 25//31 158//31 18//31 27//31 +f 32//32 11//32 26//32 28//32 +f 28//33 26//33 9//33 31//33 +f 124//34 119//34 14//34 29//34 +f 35//35 15//35 138//35 137//35 +f 32//35 28//35 124//35 29//35 +f 34//34 31//34 30//34 35//34 137//34 134//34 +f 33//25 1342//25 126//25 34//25 +f 131//34 33//34 34//34 134//34 +f 34//35 126//35 28//35 31//35 +f 32//25 29//25 132//25 36//25 35//25 30//25 +f 31//34 3//34 2//34 30//34 +f 2//25 5//25 32//25 30//25 +f 139//35 15//35 35//35 36//35 +f 37//25 15//25 139//25 38//25 +f 141//34 138//34 15//34 37//34 +f 41//14 42//14 54//14 53//14 +f 48//36 49//36 61//36 60//36 +f 45//20 46//20 58//20 57//20 +f 42//21 43//21 55//21 54//21 +f 49//17 50//17 62//17 61//17 +f 39//16 40//16 52//16 51//16 +f 46//13 47//13 59//13 58//13 +f 43//15 44//15 56//15 55//15 +f 50//19 39//19 51//19 62//19 +f 40//18 41//18 53//18 52//18 +f 47//12 48//12 60//12 59//12 +f 44//11 45//11 57//11 56//11 +f 75//36 76//36 71//36 79//36 +f 87//37 93//37 88//37 +f 88//38 93//38 89//38 +f 89//39 93//39 90//39 +f 90//40 93//40 91//40 +f 87//35 88//35 89//35 90//35 91//35 92//35 +f 91//41 93//41 92//41 +f 92//42 93//42 87//42 +f 101//1 102//1 103//1 100//1 +f 107//43 113//43 94//43 115//43 +f 654//1 150//1 655//1 +f 96//1 99//1 98//1 +f 109//44 108//44 116//44 +f 114//45 116//45 117//45 +f 114//46 109//46 116//46 +f 118//47 114//47 117//47 +f 114//48 118//48 110//48 +f 111//49 110//49 118//49 +f 141//1 38//1 140//1 +f 105//1 99//1 96//1 95//1 +f 110//50 111//50 103//50 102//50 +f 108//51 109//51 101//51 100//51 +f 148//34 146//34 145//34 149//34 650//34 646//34 +f 99//52 107//52 106//52 98//52 +f 103//32 127//32 132//32 104//32 +f 117//53 121//53 122//53 118//53 +f 123//54 120//54 116//54 108//54 +f 122//55 119//55 111//55 118//55 +f 116//56 120//56 121//56 117//56 +f 107//57 115//57 106//57 +f 149//35 142//35 651//35 650//35 +f 130//25 125//25 123//25 108//25 +f 125//34 129//34 106//34 123//34 +f 124//33 127//33 111//33 119//33 +f 136//35 137//35 138//35 112//35 +f 130//35 127//35 124//35 125//35 +f 135//33 134//33 137//33 136//33 128//33 129//33 +f 133//32 135//32 126//32 1342//32 +f 131//33 134//33 135//33 133//33 +f 135//35 129//35 125//35 126//35 +f 130//32 128//32 136//32 36//32 132//32 127//32 +f 129//33 128//33 97//33 98//33 +f 97//32 128//32 130//32 100//32 +f 139//35 36//35 136//35 112//35 +f 140//32 38//32 139//32 112//32 +f 141//33 140//33 112//33 138//33 +f 147//35 143//35 638//35 144//35 +f 148//35 640//35 143//35 146//35 +f 147//25 144//25 645//25 649//25 149//25 145//25 +f 652//35 142//35 149//35 649//35 +f 150//25 142//25 652//25 655//25 +f 654//34 651//34 142//34 150//34 +f 143//32 147//32 155//32 151//32 +f 645//25 144//25 152//25 663//25 +f 148//34 646//34 664//34 156//34 +f 145//34 146//34 154//34 153//34 +f 640//25 148//25 156//25 658//25 +f 147//25 145//25 153//25 155//25 +f 144//34 638//34 656//34 152//34 +f 146//33 143//33 151//33 154//33 +f 167//1 168//1 169//1 166//1 +f 170//58 157//58 178//58 +f 171//59 172//59 180//59 +f 180//60 172//60 157//60 +f 172//60 178//60 157//60 +f 174//10 173//10 181//10 +f 179//8 181//8 182//8 +f 179//9 174//9 181//9 +f 183//6 179//6 182//6 +f 179//7 183//7 175//7 +f 176//5 175//5 183//5 +f 304//1 201//1 200//1 +f 170//61 159//61 158//61 157//61 +f 246//16 243//16 240//16 230//16 +f 242//36 229//36 244//36 234//36 +f 229//17 247//17 228//17 244//17 +f 237//21 231//21 227//21 245//21 +f 243//18 248//18 232//18 240//18 +f 226//11 241//11 236//11 235//11 +f 233//13 238//13 239//13 249//13 +f 231//15 226//15 235//15 227//15 +f 241//20 233//20 249//20 236//20 +f 247//19 246//19 230//19 228//19 +f 248//14 237//14 245//14 232//14 +f 165//1 164//1 161//1 160//1 +f 175//23 176//23 169//23 168//23 +f 173//22 174//22 167//22 166//22 +f 165//50 172//50 171//50 164//50 +f 169//25 192//25 196//25 267//25 +f 182//29 186//29 187//29 183//29 +f 189//28 185//28 181//28 173//28 +f 187//27 184//27 176//27 183//27 +f 181//26 185//26 186//26 182//26 +f 190//30 189//30 171//30 180//30 +f 188//31 190//31 180//31 157//31 +f 195//34 191//34 189//34 173//34 +f 191//33 194//33 171//33 189//33 +f 286//32 192//32 176//32 184//32 +f 199//35 300//35 301//35 177//35 +f 195//35 192//35 286//35 191//35 +f 198//32 296//32 300//32 199//32 193//32 194//32 +f 197//25 198//25 289//25 287//25 +f 294//32 296//32 198//32 197//32 +f 198//35 194//35 191//35 289//35 +f 195//25 193//25 199//25 299//25 196//25 192//25 +f 194//32 193//32 163//32 164//32 +f 163//25 193//25 195//25 166//25 +f 302//35 299//35 199//35 177//35 +f 200//25 201//25 302//25 177//25 +f 304//32 200//32 177//32 301//32 +f 204//21 216//21 217//21 205//21 +f 211//12 223//12 224//12 212//12 +f 208//19 220//19 221//19 209//19 +f 205//14 217//14 218//14 206//14 +f 212//13 224//13 225//13 213//13 +f 202//11 214//11 215//11 203//11 +f 209//17 221//17 222//17 210//17 +f 206//18 218//18 219//18 207//18 +f 213//20 225//20 214//20 202//20 +f 203//15 215//15 216//15 204//15 +f 210//36 222//36 223//36 211//36 +f 207//16 219//16 220//16 208//16 +f 238//12 242//12 234//12 239//12 +f 250//39 251//39 256//39 +f 251//38 252//38 256//38 +f 252//37 253//37 256//37 +f 253//42 254//42 256//42 +f 250//35 255//35 254//35 253//35 252//35 251//35 +f 254//41 255//41 256//41 +f 255//40 250//40 256//40 +f 264//1 263//1 266//1 265//1 +f 270//62 278//62 257//62 276//62 +f 1156//1 1157//1 313//1 +f 259//1 261//1 262//1 +f 272//63 279//63 271//63 +f 277//64 280//64 279//64 +f 277//65 279//65 272//65 +f 281//66 280//66 277//66 +f 277//67 273//67 281//67 +f 274//68 281//68 273//68 +f 304//1 303//1 201//1 +f 268//1 258//1 259//1 262//1 +f 273//24 265//24 266//24 274//24 +f 271//69 263//69 264//69 272//69 +f 311//32 1148//32 1152//32 312//32 308//32 309//32 +f 262//70 261//70 269//70 270//70 +f 266//34 267//34 196//34 290//34 +f 280//53 281//53 284//53 283//53 +f 285//54 271//54 279//54 282//54 +f 284//71 281//71 274//71 184//71 +f 279//56 280//56 283//56 282//56 +f 270//72 269//72 278//72 +f 312//35 1152//35 1153//35 305//35 +f 293//25 271//25 285//25 288//25 +f 288//32 285//32 269//32 292//32 +f 286//33 184//33 274//33 290//33 +f 298//35 275//35 301//35 300//35 +f 293//35 288//35 286//35 290//35 +f 297//33 292//33 291//33 298//33 300//33 296//33 +f 295//34 287//34 289//34 297//34 +f 294//33 295//33 297//33 296//33 +f 297//35 289//35 288//35 292//35 +f 293//34 290//34 196//34 299//34 298//34 291//34 +f 292//33 261//33 260//33 291//33 +f 260//34 263//34 293//34 291//34 +f 302//35 275//35 298//35 299//35 +f 303//34 275//34 302//34 201//34 +f 304//33 301//33 275//33 303//33 +f 310//35 307//35 1140//35 306//35 +f 311//35 309//35 306//35 1142//35 +f 310//25 308//25 312//25 1151//25 1147//25 307//25 +f 1154//35 1151//35 312//35 305//35 +f 313//25 1157//25 1154//25 305//25 +f 1156//32 313//32 305//32 1153//32 +f 306//34 314//34 318//34 310//34 +f 1147//25 319//25 315//25 307//25 +f 311//32 320//32 1165//32 1148//32 +f 308//32 316//32 317//32 309//32 +f 1142//25 1160//25 320//25 311//25 +f 310//25 318//25 316//25 308//25 +f 307//32 315//32 1158//32 1140//32 +f 309//33 317//33 314//33 306//33 +f 326//1 325//1 328//1 327//1 +f 491//73 336//73 490//73 +f 329//74 338//74 330//74 +f 338//75 490//75 330//75 +f 330//75 490//75 336//75 +f 332//49 339//49 331//49 +f 337//47 340//47 339//47 +f 337//48 339//48 332//48 +f 341//45 340//45 337//45 +f 337//46 333//46 341//46 +f 334//44 341//44 333//44 +f 461//1 358//1 359//1 +f 491//43 490//43 489//43 321//43 +f 404//12 388//12 398//12 401//12 +f 400//19 392//19 402//19 387//19 +f 387//17 402//17 386//17 405//17 +f 395//11 403//11 385//11 389//11 +f 401//13 398//13 390//13 406//13 +f 384//21 393//21 394//21 399//21 +f 391//18 407//18 397//18 396//18 +f 389//15 385//15 393//15 384//15 +f 399//14 394//14 407//14 391//14 +f 405//36 386//36 388//36 404//36 +f 406//20 390//20 403//20 395//20 +f 324//1 493//1 495//1 323//1 +f 333//51 327//51 328//51 334//51 +f 331//50 325//50 326//50 332//50 +f 324//22 323//22 329//22 330//22 +f 328//32 425//32 452//32 350//32 +f 340//56 341//56 345//56 344//56 +f 346//55 331//55 339//55 343//55 +f 345//54 341//54 334//54 342//54 +f 339//53 340//53 344//53 343//53 +f 347//76 338//76 329//76 346//76 +f 1338//77 490//77 338//77 347//77 +f 353//33 331//33 346//33 348//33 +f 348//34 346//34 329//34 352//34 +f 444//25 342//25 334//25 350//25 +f 356//35 335//35 357//35 458//35 +f 353//35 348//35 444//35 350//35 +f 355//25 352//25 351//25 356//25 458//25 454//25 +f 354//32 445//32 349//32 355//32 +f 451//25 354//25 355//25 454//25 +f 355//35 349//35 348//35 352//35 +f 353//32 350//32 452//32 457//32 356//32 351//32 +f 352//25 323//25 322//25 351//25 +f 322//32 325//32 353//32 351//32 +f 459//35 335//35 356//35 457//35 +f 358//32 335//32 459//32 359//32 +f 461//25 357//25 335//25 358//25 +f 362//11 363//11 375//11 374//11 +f 369//16 370//16 382//16 381//16 +f 366//36 367//36 379//36 378//36 +f 363//20 364//20 376//20 375//20 +f 370//18 371//18 383//18 382//18 +f 360//21 361//21 373//21 372//21 +f 367//17 368//17 380//17 379//17 +f 364//13 365//13 377//13 376//13 +f 371//14 360//14 372//14 383//14 +f 361//15 362//15 374//15 373//15 +f 368//19 369//19 381//19 380//19 +f 365//12 366//12 378//12 377//12 +f 396//16 397//16 392//16 400//16 +f 408//78 414//78 409//78 +f 409//79 414//79 410//79 +f 410//80 414//80 411//80 +f 411//81 414//81 412//81 +f 408//35 409//35 410//35 411//35 412//35 413//35 +f 412//82 414//82 413//82 +f 413//83 414//83 408//83 +f 422//1 423//1 424//1 421//1 +f 428//84 434//84 415//84 436//84 +f 478//1 477//1 479//1 +f 417//1 420//1 419//1 +f 430//85 429//85 437//85 +f 435//86 437//86 438//86 +f 435//87 430//87 437//87 +f 439//88 435//88 438//88 +f 435//89 439//89 431//89 +f 432//90 431//90 439//90 +f 461//1 359//1 460//1 +f 426//1 420//1 417//1 416//1 +f 431//52 432//52 424//52 423//52 +f 429//70 430//70 422//70 421//70 +f 471//25 468//25 467//25 472//25 474//25 470//25 +f 420//69 428//69 427//69 419//69 +f 424//33 447//33 452//33 425//33 +f 438//26 441//26 442//26 439//26 +f 443//27 440//27 437//27 429//27 +f 442//28 342//28 432//28 439//28 +f 437//29 440//29 441//29 438//29 +f 428//91 436//91 427//91 +f 472//35 462//35 475//35 474//35 +f 450//32 446//32 443//32 429//32 +f 446//25 449//25 427//25 443//25 +f 444//34 447//34 432//34 342//34 +f 456//35 458//35 357//35 433//35 +f 450//35 447//35 444//35 446//35 +f 455//34 454//34 458//34 456//34 448//34 449//34 +f 453//33 455//33 349//33 445//33 +f 451//34 454//34 455//34 453//34 +f 455//35 449//35 446//35 349//35 +f 450//33 448//33 456//33 457//33 452//33 447//33 +f 449//34 448//34 418//34 419//34 +f 418//33 448//33 450//33 421//33 +f 459//35 457//35 456//35 433//35 +f 460//33 359//33 459//33 433//33 +f 461//34 460//34 433//34 357//34 +f 469//35 464//35 463//35 466//35 +f 471//35 465//35 464//35 468//35 +f 469//32 466//32 980//32 473//32 472//32 467//32 +f 476//35 462//35 472//35 473//35 +f 477//32 462//32 476//32 479//32 +f 478//25 475//25 462//25 477//25 +f 464//33 469//33 486//33 481//33 +f 980//32 466//32 483//32 989//32 +f 471//25 470//25 487//25 488//25 +f 467//25 468//25 485//25 484//25 +f 465//32 471//32 488//32 482//32 +f 469//32 467//32 484//32 486//32 +f 466//25 463//25 480//25 483//25 +f 468//34 464//34 481//34 485//34 +f 500//1 501//1 502//1 499//1 +f 321//92 489//92 510//92 +f 503//93 504//93 512//93 +f 512//94 504//94 489//94 +f 504//94 510//94 489//94 +f 506//44 505//44 513//44 +f 511//45 513//45 514//45 +f 511//46 506//46 513//46 +f 515//47 511//47 514//47 +f 511//48 515//48 507//48 +f 508//49 507//49 515//49 +f 532//1 533//1 531//1 +f 578//21 575//21 572//21 562//21 +f 574//16 561//16 576//16 566//16 +f 561//18 579//18 560//18 576//18 +f 569//20 563//20 559//20 577//20 +f 575//15 580//15 564//15 572//15 +f 558//12 573//12 568//12 567//12 +f 565//17 570//17 571//17 581//17 +f 563//13 558//13 567//13 559//13 +f 573//36 565//36 581//36 568//36 +f 579//14 578//14 562//14 560//14 +f 580//11 569//11 577//11 564//11 +f 492//1 494//1 495//1 493//1 +f 498//1 497//1 494//1 492//1 +f 507//50 508//50 502//50 501//50 +f 505//51 506//51 500//51 499//51 +f 498//52 504//52 503//52 497//52 +f 502//32 523//32 628//32 599//32 +f 514//53 517//53 518//53 515//53 +f 520//54 516//54 513//54 505//54 +f 518//55 614//55 508//55 515//55 +f 513//56 516//56 517//56 514//56 +f 521//76 520//76 503//76 512//76 +f 519//77 521//77 512//77 489//77 +f 526//25 522//25 520//25 505//25 +f 522//34 525//34 503//34 520//34 +f 619//33 523//33 508//33 614//33 +f 530//35 633//35 634//35 509//35 +f 526//35 523//35 619//35 522//35 +f 529//33 528//33 633//33 530//33 524//33 525//33 +f 527//32 529//32 622//32 620//32 +f 627//33 528//33 529//33 527//33 +f 529//35 525//35 522//35 622//35 +f 526//32 524//32 530//32 632//32 628//32 523//32 +f 525//33 524//33 496//33 497//33 +f 496//32 524//32 526//32 499//32 +f 635//35 632//35 530//35 509//35 +f 531//32 533//32 635//32 509//32 +f 532//33 531//33 509//33 634//33 +f 536//20 548//20 549//20 537//20 +f 543//19 555//19 556//19 544//19 +f 540//14 552//14 553//14 541//14 +f 537//11 549//11 550//11 538//11 +f 544//17 556//17 557//17 545//17 +f 534//12 546//12 547//12 535//12 +f 541//18 553//18 554//18 542//18 +f 538//15 550//15 551//15 539//15 +f 545//36 557//36 546//36 534//36 +f 535//13 547//13 548//13 536//13 +f 542//16 554//16 555//16 543//16 +f 539//21 551//21 552//21 540//21 +f 570//19 574//19 566//19 571//19 +f 582//80 583//80 588//80 +f 583//79 584//79 588//79 +f 584//78 585//78 588//78 +f 585//83 586//83 588//83 +f 582//35 587//35 586//35 585//35 584//35 583//35 +f 586//82 587//82 588//82 +f 587//81 582//81 588//81 +f 596//1 595//1 598//1 597//1 +f 602//61 610//61 589//61 608//61 +f 654//1 655//1 653//1 +f 591//1 593//1 594//1 +f 604//5 611//5 603//5 +f 609//6 612//6 611//6 +f 609//7 611//7 604//7 +f 613//8 612//8 609//8 +f 609//9 605//9 613//9 +f 606//10 613//10 605//10 +f 532//1 636//1 533//1 +f 600//1 590//1 591//1 594//1 +f 605//22 597//22 598//22 606//22 +f 603//23 595//23 596//23 604//23 +f 647//33 646//33 650//33 648//33 642//33 643//33 +f 594//24 593//24 601//24 602//24 +f 598//25 599//25 628//25 623//25 +f 612//26 613//26 617//26 616//26 +f 618//27 603//27 611//27 615//27 +f 617//28 613//28 606//28 614//28 +f 611//29 612//29 616//29 615//29 +f 602//95 601//95 610//95 +f 648//35 650//35 651//35 637//35 +f 626//32 603//32 618//32 621//32 +f 621//33 618//33 601//33 625//33 +f 619//34 614//34 606//34 623//34 +f 631//35 607//35 634//35 633//35 +f 626//35 621//35 619//35 623//35 +f 630//34 625//34 624//34 631//34 633//34 528//34 +f 629//25 620//25 622//25 630//25 +f 627//34 629//34 630//34 528//34 +f 630//35 622//35 621//35 625//35 +f 626//25 623//25 628//25 632//25 631//25 624//25 +f 625//34 593//34 592//34 624//34 +f 592//25 595//25 626//25 624//25 +f 635//35 607//35 631//35 632//35 +f 636//25 607//25 635//25 533//25 +f 532//34 634//34 607//34 636//34 +f 644//35 641//35 638//35 639//35 +f 647//35 643//35 639//35 640//35 +f 644//32 642//32 648//32 649//32 645//32 641//32 +f 652//35 649//35 648//35 637//35 +f 653//32 655//32 652//32 637//32 +f 654//33 653//33 637//33 651//33 +f 639//25 657//25 662//25 644//25 +f 645//32 663//32 659//32 641//32 +f 647//33 665//33 664//33 646//33 +f 642//33 660//33 661//33 643//33 +f 640//32 658//32 665//32 647//32 +f 644//32 662//32 660//32 642//32 +f 641//33 659//33 656//33 638//33 +f 643//34 661//34 657//34 639//34 +f 676//1 675//1 678//1 677//1 +f 679//96 687//96 666//96 +f 680//97 689//97 681//97 +f 689//98 666//98 681//98 +f 681//98 666//98 687//98 +f 683//90 690//90 682//90 +f 688//88 691//88 690//88 +f 688//89 690//89 683//89 +f 692//86 691//86 688//86 +f 688//87 684//87 692//87 +f 685//85 692//85 684//85 +f 709//1 708//1 813//1 +f 679//84 666//84 667//84 668//84 +f 754//19 738//19 748//19 751//19 +f 750//14 742//14 752//14 737//14 +f 737//18 752//18 736//18 755//18 +f 745//12 753//12 735//12 739//12 +f 751//17 748//17 740//17 756//17 +f 734//20 743//20 744//20 749//20 +f 741//15 757//15 747//15 746//15 +f 739//13 735//13 743//13 734//13 +f 749//11 744//11 757//11 741//11 +f 755//16 736//16 738//16 754//16 +f 756//36 740//36 753//36 745//36 +f 669//1 670//1 671//1 833//1 +f 674//1 669//1 833//1 673//1 +f 684//70 677//70 678//70 685//70 +f 682//52 675//52 676//52 683//52 +f 674//51 673//51 680//51 681//51 +f 678//33 775//33 804//33 700//33 +f 691//29 692//29 695//29 694//29 +f 697//28 682//28 690//28 693//28 +f 695//27 692//27 685//27 790//27 +f 690//26 691//26 694//26 693//26 +f 698//99 689//99 680//99 697//99 +f 696//100 666//100 689//100 698//100 +f 703//34 682//34 697//34 699//34 +f 699//25 697//25 680//25 702//25 +f 795//32 790//32 685//32 700//32 +f 706//35 686//35 707//35 810//35 +f 703//35 699//35 795//35 700//35 +f 705//32 702//32 701//32 706//32 810//32 806//32 +f 704//33 796//33 798//33 705//33 +f 803//32 704//32 705//32 806//32 +f 705//35 798//35 699//35 702//35 +f 703//33 700//33 804//33 809//33 706//33 701//33 +f 702//32 673//32 672//32 701//32 +f 672//33 675//33 703//33 701//33 +f 811//35 686//35 706//35 809//35 +f 708//33 686//33 811//33 813//33 +f 709//32 707//32 686//32 708//32 +f 712//12 713//12 725//12 724//12 +f 719//21 720//21 732//21 731//21 +f 716//16 717//16 729//16 728//16 +f 713//36 714//36 726//36 725//36 +f 720//15 721//15 733//15 732//15 +f 710//20 711//20 723//20 722//20 +f 717//18 718//18 730//18 729//18 +f 714//17 715//17 727//17 726//17 +f 721//11 710//11 722//11 733//11 +f 711//13 712//13 724//13 723//13 +f 718//14 719//14 731//14 730//14 +f 715//19 716//19 728//19 727//19 +f 746//21 747//21 742//21 750//21 +f 758//40 764//40 759//40 +f 759//41 764//41 760//41 +f 760//42 764//42 761//42 +f 761//37 764//37 762//37 +f 758//35 759//35 760//35 761//35 762//35 763//35 +f 762//38 764//38 763//38 +f 763//39 764//39 758//39 +f 772//1 773//1 774//1 771//1 +f 778//62 784//62 765//62 786//62 +f 824//1 823//1 825//1 +f 767//1 770//1 769//1 +f 780//68 779//68 787//68 +f 785//66 787//66 788//66 +f 785//67 780//67 787//67 +f 789//64 785//64 788//64 +f 785//65 789//65 781//65 +f 782//63 781//63 789//63 +f 709//1 813//1 812//1 +f 776//1 770//1 767//1 766//1 +f 781//69 782//69 774//69 773//69 +f 779//24 780//24 772//24 771//24 +f 820//32 818//32 817//32 821//32 1322//32 1318//32 +f 770//23 778//23 777//23 769//23 +f 774//34 799//34 804//34 775//34 +f 788//56 792//56 793//56 789//56 +f 794//55 791//55 787//55 779//55 +f 793//54 790//54 782//54 789//54 +f 787//53 791//53 792//53 788//53 +f 778//101 786//101 777//101 +f 821//35 814//35 822//35 1322//35 +f 802//33 797//33 794//33 779//33 +f 797//32 801//32 777//32 794//32 +f 795//25 799//25 782//25 790//25 +f 808//35 810//35 707//35 783//35 +f 802//35 799//35 795//35 797//35 +f 807//25 806//25 810//25 808//25 800//25 801//25 +f 805//34 807//34 798//34 796//34 +f 803//25 806//25 807//25 805//25 +f 807//35 801//35 797//35 798//35 +f 802//34 800//34 808//34 809//34 804//34 799//34 +f 801//25 800//25 768//25 769//25 +f 768//34 800//34 802//34 771//34 +f 811//35 809//35 808//35 783//35 +f 812//34 813//34 811//34 783//34 +f 709//25 812//25 783//25 707//25 +f 819//35 815//35 1310//35 816//35 +f 820//35 1312//35 815//35 818//35 +f 819//33 816//33 1317//33 1321//33 821//33 817//33 +f 1323//35 814//35 821//35 1321//35 +f 823//33 814//33 1323//33 825//33 +f 824//32 822//32 814//32 823//32 +f 815//34 819//34 831//34 827//34 +f 1317//33 816//33 828//33 1333//33 +f 820//32 1318//32 1334//32 832//32 +f 817//32 818//32 830//32 829//32 +f 1312//33 820//33 832//33 1328//33 +f 819//33 817//33 829//33 831//33 +f 816//32 1310//32 826//32 828//32 +f 818//25 815//25 827//25 830//25 +f 838//1 839//1 840//1 837//1 +f 668//102 667//102 848//102 +f 841//103 842//103 850//103 +f 850//104 842//104 667//104 +f 842//104 848//104 667//104 +f 844//85 843//85 851//85 +f 849//86 851//86 852//86 +f 849//87 844//87 851//87 +f 853//88 849//88 852//88 +f 849//89 853//89 845//89 +f 846//90 845//90 853//90 +f 869//1 973//1 868//1 +f 914//20 911//20 908//20 898//20 +f 910//21 897//21 912//21 902//21 +f 897//15 915//15 896//15 912//15 +f 905//36 899//36 895//36 913//36 +f 911//13 916//13 900//13 908//13 +f 894//19 909//19 904//19 903//19 +f 901//18 906//18 907//18 917//18 +f 899//17 894//17 903//17 895//17 +f 909//16 901//16 917//16 904//16 +f 915//11 914//11 898//11 896//11 +f 916//12 905//12 913//12 900//12 +f 836//1 835//1 671//1 670//1 +f 845//52 846//52 840//52 839//52 +f 843//70 844//70 838//70 837//70 +f 836//69 842//69 841//69 835//69 +f 840//33 861//33 963//33 935//33 +f 852//26 855//26 856//26 853//26 +f 858//27 854//27 851//27 843//27 +f 856//28 950//28 846//28 853//28 +f 851//29 854//29 855//29 852//29 +f 859//99 858//99 841//99 850//99 +f 857//100 859//100 850//100 667//100 +f 864//32 860//32 858//32 843//32 +f 860//25 863//25 841//25 858//25 +f 955//34 861//34 846//34 950//34 +f 867//35 969//35 970//35 847//35 +f 864//35 861//35 955//35 860//35 +f 866//34 965//34 969//34 867//34 862//34 863//34 +f 865//33 866//33 957//33 1341//33 +f 962//34 965//34 866//34 865//34 +f 866//35 863//35 860//35 957//35 +f 864//33 862//33 867//33 968//33 963//33 861//33 +f 863//34 862//34 834//34 835//34 +f 834//33 862//33 864//33 837//33 +f 971//35 968//35 867//35 847//35 +f 868//33 973//33 971//33 847//33 +f 869//34 868//34 847//34 970//34 +f 872//36 884//36 885//36 873//36 +f 879//14 891//14 892//14 880//14 +f 876//11 888//11 889//11 877//11 +f 873//12 885//12 886//12 874//12 +f 880//18 892//18 893//18 881//18 +f 870//19 882//19 883//19 871//19 +f 877//15 889//15 890//15 878//15 +f 874//13 886//13 887//13 875//13 +f 881//16 893//16 882//16 870//16 +f 871//17 883//17 884//17 872//17 +f 878//21 890//21 891//21 879//21 +f 875//20 887//20 888//20 876//20 +f 906//14 910//14 902//14 907//14 +f 918//42 919//42 924//42 +f 919//41 920//41 924//41 +f 920//40 921//40 924//40 +f 921//39 922//39 924//39 +f 918//35 923//35 922//35 921//35 920//35 919//35 +f 922//38 923//38 924//38 +f 923//37 918//37 924//37 +f 932//1 931//1 934//1 933//1 +f 938//43 946//43 925//43 944//43 +f 478//1 479//1 983//1 +f 927//1 929//1 930//1 +f 940//49 947//49 939//49 +f 945//47 948//47 947//47 +f 945//48 947//48 940//48 +f 949//45 948//45 945//45 +f 945//46 941//46 949//46 +f 942//44 949//44 941//44 +f 869//1 972//1 973//1 +f 936//1 926//1 927//1 930//1 +f 941//51 933//51 934//51 942//51 +f 939//50 931//50 932//50 940//50 +f 981//34 470//34 474//34 982//34 977//34 978//34 +f 930//22 929//22 937//22 938//22 +f 934//32 935//32 963//32 958//32 +f 948//56 949//56 953//56 952//56 +f 954//55 939//55 947//55 951//55 +f 953//54 949//54 942//54 950//54 +f 947//53 948//53 952//53 951//53 +f 938//105 937//105 946//105 +f 982//35 474//35 475//35 974//35 +f 961//33 939//33 954//33 956//33 +f 956//34 954//34 937//34 960//34 +f 955//25 950//25 942//25 958//25 +f 967//35 943//35 970//35 969//35 +f 961//35 956//35 955//35 958//35 +f 966//25 960//25 959//25 967//25 969//25 965//25 +f 964//32 1341//32 957//32 966//32 +f 962//25 964//25 966//25 965//25 +f 966//35 957//35 956//35 960//35 +f 961//32 958//32 963//32 968//32 967//32 959//32 +f 960//25 929//25 928//25 959//25 +f 928//32 931//32 961//32 959//32 +f 971//35 943//35 967//35 968//35 +f 972//32 943//32 971//32 973//32 +f 869//25 970//25 943//25 972//25 +f 979//35 976//35 463//35 975//35 +f 981//35 978//35 975//35 465//35 +f 979//33 977//33 982//33 473//33 980//33 976//33 +f 476//35 473//35 982//35 974//35 +f 983//33 479//33 476//33 974//33 +f 478//34 983//34 974//34 475//34 +f 975//32 984//32 988//32 979//32 +f 980//33 989//33 985//33 976//33 +f 981//34 990//34 487//34 470//34 +f 977//34 986//34 987//34 978//34 +f 465//33 482//33 990//33 981//33 +f 979//33 988//33 986//33 977//33 +f 976//34 985//34 480//34 463//34 +f 978//25 987//25 984//25 975//25 +f 1002//1 1001//1 1004//1 1003//1 +f 1005//106 1013//106 991//106 +f 1006//107 1015//107 1007//107 +f 1015//108 991//108 1007//108 +f 1007//108 991//108 1013//108 +f 1009//63 1016//63 1008//63 +f 1014//64 1017//64 1016//64 +f 1014//65 1016//65 1009//65 +f 1018//66 1017//66 1014//66 +f 1014//67 1010//67 1018//67 +f 1011//68 1018//68 1010//68 +f 1138//1 1035//1 1036//1 +f 1005//62 991//62 992//62 993//62 +f 1081//14 1065//14 1075//14 1078//14 +f 1077//11 1069//11 1079//11 1064//11 +f 1064//15 1079//15 1063//15 1082//15 +f 1072//19 1080//19 1062//19 1066//19 +f 1078//18 1075//18 1067//18 1083//18 +f 1061//36 1070//36 1071//36 1076//36 +f 1068//13 1084//13 1074//13 1073//13 +f 1066//17 1062//17 1070//17 1061//17 +f 1076//12 1071//12 1084//12 1068//12 +f 1082//21 1063//21 1065//21 1081//21 +f 1083//16 1067//16 1080//16 1072//16 +f 994//1 995//1 997//1 996//1 +f 1000//1 994//1 996//1 999//1 +f 1010//24 1003//24 1004//24 1011//24 +f 1008//69 1001//69 1002//69 1009//69 +f 1000//70 999//70 1006//70 1007//70 +f 1004//34 1102//34 1129//34 1027//34 +f 1017//53 1018//53 1021//53 1020//53 +f 1023//54 1008//54 1016//54 1019//54 +f 1021//55 1018//55 1011//55 1116//55 +f 1016//56 1017//56 1020//56 1019//56 +f 1024//109 1015//109 1006//109 1023//109 +f 1022//110 991//110 1015//110 1024//110 +f 1030//25 1008//25 1023//25 1026//25 +f 1026//32 1023//32 1006//32 1029//32 +f 1025//33 1116//33 1011//33 1027//33 +f 1033//35 1012//35 1034//35 1135//35 +f 1030//35 1026//35 1025//35 1027//35 +f 1032//33 1029//33 1028//33 1033//33 1135//33 1131//33 +f 1031//34 1121//34 1123//34 1032//34 +f 1128//33 1031//33 1032//33 1131//33 +f 1032//35 1123//35 1026//35 1029//35 +f 1030//34 1027//34 1129//34 1134//34 1033//34 1028//34 +f 1029//33 999//33 998//33 1028//33 +f 998//34 1001//34 1030//34 1028//34 +f 1136//35 1012//35 1033//35 1134//35 +f 1035//34 1012//34 1136//34 1036//34 +f 1138//33 1034//33 1012//33 1035//33 +f 1039//19 1040//19 1052//19 1051//19 +f 1046//20 1047//20 1059//20 1058//20 +f 1043//21 1044//21 1056//21 1055//21 +f 1040//16 1041//16 1053//16 1052//16 +f 1047//13 1048//13 1060//13 1059//13 +f 1037//36 1038//36 1050//36 1049//36 +f 1044//15 1045//15 1057//15 1056//15 +f 1041//18 1042//18 1054//18 1053//18 +f 1048//12 1037//12 1049//12 1060//12 +f 1038//17 1039//17 1051//17 1050//17 +f 1045//11 1046//11 1058//11 1057//11 +f 1042//14 1043//14 1055//14 1054//14 +f 1073//20 1074//20 1069//20 1077//20 +f 1085//81 1091//81 1086//81 +f 1086//82 1091//82 1087//82 +f 1087//83 1091//83 1088//83 +f 1088//78 1091//78 1089//78 +f 1085//35 1086//35 1087//35 1088//35 1089//35 1090//35 +f 1089//79 1091//79 1090//79 +f 1090//80 1091//80 1085//80 +f 1099//1 1100//1 1101//1 1098//1 +f 1105//61 1111//61 1092//61 1337//61 +f 1156//1 1155//1 1157//1 +f 1094//1 1097//1 1096//1 +f 1107//10 1106//10 1113//10 +f 1112//8 1113//8 1114//8 +f 1112//9 1107//9 1113//9 +f 1115//6 1112//6 1114//6 +f 1112//7 1115//7 1108//7 +f 1109//5 1108//5 1115//5 +f 1138//1 1036//1 1137//1 +f 1103//1 1097//1 1094//1 1093//1 +f 1108//23 1109//23 1101//23 1100//23 +f 1106//22 1107//22 1099//22 1098//22 +f 1149//33 1145//33 1144//33 1150//33 1152//33 1148//33 +f 1097//50 1105//50 1104//50 1096//50 +f 1101//25 1124//25 1129//25 1102//25 +f 1114//29 1118//29 1119//29 1115//29 +f 1120//28 1117//28 1113//28 1106//28 +f 1119//27 1116//27 1109//27 1115//27 +f 1113//26 1117//26 1118//26 1114//26 +f 1105//111 1337//111 1104//111 +f 1150//35 1139//35 1153//35 1152//35 +f 1127//34 1122//34 1120//34 1106//34 +f 1122//33 1126//33 1104//33 1120//33 +f 1025//32 1124//32 1109//32 1116//32 +f 1133//35 1135//35 1034//35 1110//35 +f 1127//35 1124//35 1025//35 1122//35 +f 1132//32 1131//32 1135//32 1133//32 1125//32 1126//32 +f 1130//25 1132//25 1123//25 1121//25 +f 1128//32 1131//32 1132//32 1130//32 +f 1132//35 1126//35 1122//35 1123//35 +f 1127//25 1125//25 1133//25 1134//25 1129//25 1124//25 +f 1126//32 1125//32 1095//32 1096//32 +f 1095//25 1125//25 1127//25 1098//25 +f 1136//35 1134//35 1133//35 1110//35 +f 1137//25 1036//25 1136//25 1110//25 +f 1138//32 1137//32 1110//32 1034//32 +f 1146//35 1141//35 1140//35 1143//35 +f 1149//35 1142//35 1141//35 1145//35 +f 1146//34 1143//34 1147//34 1151//34 1150//34 1144//34 +f 1154//35 1139//35 1150//35 1151//35 +f 1155//34 1139//34 1154//34 1157//34 +f 1156//33 1153//33 1139//33 1155//33 +f 1141//25 1146//25 1164//25 1159//25 +f 1147//34 1143//34 1161//34 319//34 +f 1149//33 1148//33 1165//33 1166//33 +f 1144//33 1145//33 1163//33 1162//33 +f 1142//34 1149//34 1166//34 1160//34 +f 1146//34 1144//34 1162//34 1164//34 +f 1143//33 1140//33 1158//33 1161//33 +f 1145//32 1141//32 1159//32 1163//32 +f 1171//1 1172//1 1173//1 1170//1 +f 993//112 992//112 1182//112 +f 1175//113 1176//113 1184//113 +f 1184//114 1176//114 992//114 +f 1176//114 1182//114 992//114 +f 1178//68 1177//68 1185//68 +f 1183//66 1185//66 1186//66 +f 1183//67 1178//67 1185//67 +f 1187//64 1183//64 1186//64 +f 1183//65 1187//65 1179//65 +f 1180//63 1179//63 1187//63 +f 1307//1 1203//1 1202//1 +f 1248//36 1245//36 1242//36 1232//36 +f 1244//20 1231//20 1246//20 1236//20 +f 1231//13 1249//13 1230//13 1246//13 +f 1239//16 1233//16 1229//16 1247//16 +f 1245//17 1250//17 1234//17 1242//17 +f 1228//14 1243//14 1238//14 1237//14 +f 1235//15 1240//15 1241//15 1251//15 +f 1233//18 1228//18 1237//18 1229//18 +f 1243//21 1235//21 1251//21 1238//21 +f 1249//12 1248//12 1232//12 1230//12 +f 1250//19 1239//19 1247//19 1234//19 +f 1326//1 1325//1 287//1 796//1 +f 188//1 25//1 857//1 696//1 +f 1169//1 1168//1 997//1 995//1 +f 1179//69 1180//69 1173//69 1172//69 +f 1177//24 1178//24 1171//24 1170//24 +f 1169//23 1176//23 1175//23 1168//23 +f 1173//34 1195//34 1297//34 1174//34 +f 1186//56 1189//56 1190//56 1187//56 +f 1192//55 1188//55 1185//55 1177//55 +f 1190//54 1283//54 1180//54 1187//54 +f 1185//53 1188//53 1189//53 1186//53 +f 1193//109 1192//109 1175//109 1184//109 +f 1191//110 1193//110 1184//110 992//110 +f 1198//33 1194//33 1192//33 1177//33 +f 1194//32 1197//32 1175//32 1192//32 +f 1288//25 1195//25 1180//25 1283//25 +f 1201//35 1303//35 1304//35 1181//35 +f 1198//35 1195//35 1288//35 1194//35 +f 1200//25 1299//25 1303//25 1201//25 1196//25 1197//25 +f 1199//34 1200//34 1291//34 1289//34 +f 1296//25 1299//25 1200//25 1199//25 +f 1200//35 1197//35 1194//35 1291//35 +f 1198//34 1196//34 1201//34 1302//34 1297//34 1195//34 +f 1197//25 1196//25 1167//25 1168//25 +f 1167//34 1196//34 1198//34 1170//34 +f 1305//35 1302//35 1201//35 1181//35 +f 1202//34 1203//34 1305//34 1181//34 +f 1307//25 1202//25 1181//25 1304//25 +f 1206//16 1218//16 1219//16 1207//16 +f 1213//11 1225//11 1226//11 1214//11 +f 1210//12 1222//12 1223//12 1211//12 +f 1207//19 1219//19 1220//19 1208//19 +f 1214//15 1226//15 1227//15 1215//15 +f 1204//14 1216//14 1217//14 1205//14 +f 1211//13 1223//13 1224//13 1212//13 +f 1208//17 1220//17 1221//17 1209//17 +f 1215//21 1227//21 1216//21 1204//21 +f 1205//18 1217//18 1218//18 1206//18 +f 1212//20 1224//20 1225//20 1213//20 +f 1209//36 1221//36 1222//36 1210//36 +f 1240//11 1244//11 1236//11 1241//11 +f 1252//83 1253//83 1258//83 +f 1253//82 1254//82 1258//82 +f 1254//81 1255//81 1258//81 +f 1255//80 1256//80 1258//80 +f 1252//35 1257//35 1256//35 1255//35 1254//35 1253//35 +f 1256//79 1257//79 1258//79 +f 1257//78 1252//78 1258//78 +f 1266//1 1265//1 1268//1 1267//1 +f 1272//84 1336//84 1259//84 1278//84 +f 824//1 825//1 1324//1 +f 1261//1 1263//1 1264//1 +f 1274//90 1280//90 1273//90 +f 1279//88 1281//88 1280//88 +f 1279//89 1280//89 1274//89 +f 1282//86 1281//86 1279//86 +f 1279//87 1275//87 1282//87 +f 1276//85 1282//85 1275//85 +f 1307//1 1306//1 1203//1 +f 1270//1 1260//1 1261//1 1264//1 +f 1275//70 1267//70 1268//70 1276//70 +f 1273//52 1265//52 1266//52 1274//52 +f 1319//25 1318//25 1322//25 1320//25 1314//25 1315//25 +f 1264//51 1263//51 1271//51 1272//51 +f 1268//33 1174//33 1297//33 1292//33 +f 1281//29 1282//29 1286//29 1285//29 +f 1287//28 1273//28 1280//28 1284//28 +f 1286//27 1282//27 1276//27 1283//27 +f 1280//26 1281//26 1285//26 1284//26 +f 1272//115 1271//115 1336//115 +f 1320//35 1322//35 822//35 1309//35 +f 1295//34 1273//34 1287//34 1290//34 +f 1290//25 1287//25 1271//25 1294//25 +f 1288//32 1283//32 1276//32 1292//32 +f 1301//35 1277//35 1304//35 1303//35 +f 1295//35 1290//35 1288//35 1292//35 +f 1300//32 1294//32 1293//32 1301//32 1303//32 1299//32 +f 1298//33 1289//33 1291//33 1300//33 +f 1296//32 1298//32 1300//32 1299//32 +f 1300//35 1291//35 1290//35 1294//35 +f 1295//33 1292//33 1297//33 1302//33 1301//33 1293//33 +f 1294//32 1263//32 1262//32 1293//32 +f 1262//33 1265//33 1295//33 1293//33 +f 1305//35 1277//35 1301//35 1302//35 +f 1306//33 1277//33 1305//33 1203//33 +f 1307//32 1304//32 1277//32 1306//32 +f 1316//35 1313//35 1310//35 1311//35 +f 1319//35 1315//35 1311//35 1312//35 +f 1316//34 1314//34 1320//34 1321//34 1317//34 1313//34 +f 1323//35 1321//35 1320//35 1309//35 +f 1324//34 825//34 1323//34 1309//34 +f 824//25 1324//25 1309//25 822//25 +f 1311//33 1327//33 1332//33 1316//33 +f 1317//34 1333//34 1329//34 1313//34 +f 1319//25 1335//25 1334//25 1318//25 +f 1314//25 1330//25 1331//25 1315//25 +f 1312//34 1328//34 1335//34 1319//34 +f 1316//34 1332//34 1330//34 1314//34 +f 1313//25 1329//25 826//25 1310//25 +f 1315//32 1331//32 1327//32 1311//32 +f 1269//1 1336//1 1337//1 1308//1 +f 1344//1 1341//1 1342//1 1343//1 +f 1339//1 1340//1 610//1 436//1 +f 1349//1 1350//1 1352//1 1351//1 +f 1346//1 1348//1 1345//1 1347//1 +o 18_48_76 +v -37.499996 69.500000 1.000000 +v -37.499992 77.500000 1.000000 +v -41.499992 81.500000 1.000000 +v -47.499992 81.500000 1.000000 +v -37.499992 77.500000 27.000000 +v -41.499992 81.500000 27.000000 +v -47.499992 81.500000 27.000000 +v -37.499996 73.500000 29.000000 +v -44.499992 81.500000 29.000000 +v -39.499992 81.500000 30.000000 +v -44.499992 81.500000 32.000000 +v -49.499992 81.500000 30.000000 +v -37.499992 75.500000 33.000000 +v -37.499992 81.500000 27.000000 +v -37.499992 79.500000 31.000000 +v -37.499992 81.500000 52.000000 +v -8.500001 61.500000 40.000000 +v -9.571799 65.500000 40.000000 +v -12.500001 68.428207 40.000000 +v -16.500000 69.500000 40.000000 +v -20.500000 68.428200 40.000000 +v -23.428204 65.500000 40.000000 +v -24.500004 61.500000 40.000000 +v -23.428204 57.500000 40.000000 +v -20.500002 54.571796 40.000000 +v -16.500002 53.500000 40.000000 +v -12.500002 54.571796 40.000000 +v -9.571797 57.500000 40.000000 +v -9.571799 65.500000 47.000000 +v -16.500000 69.500000 47.000000 +v -23.428204 57.500000 47.000000 +v -20.500002 54.571796 47.000000 +v -16.500002 53.500000 47.000000 +v -12.500002 54.571796 47.000000 +v -9.571797 57.500000 47.000000 +v -10.245952 61.464966 52.035316 +v -12.130439 58.888638 53.218346 +v -10.051023 57.822205 50.208447 +v -14.349349 59.375927 54.457954 +v -13.963223 57.017033 53.159172 +v -12.702564 55.004971 50.030579 +v -16.510714 55.292244 52.106064 +v -16.503231 53.809322 49.337387 +v -15.781902 60.905144 55.054592 +v -17.055586 58.078835 54.294106 +v -19.613155 56.129280 52.106064 +v -20.348137 54.841293 49.337387 +v -18.832151 58.805080 54.245476 +v -20.982969 58.963223 53.159172 +v -22.984537 57.769596 50.109020 +v -22.707754 61.510712 52.106068 +v -24.190678 61.503227 49.337387 +v -24.500004 61.500000 47.000000 +v -19.953011 62.096161 54.267403 +v -20.938396 64.113976 53.159172 +v -22.948978 65.177795 50.208443 +v -23.428204 65.500000 47.000000 +v -18.379625 64.692284 54.123920 +v -19.806774 67.227501 51.671806 +v -20.423141 68.295082 48.560722 +v -20.500000 68.428200 47.000000 +v -16.528574 65.336418 54.069210 +v -16.464964 67.754044 52.035320 +v -16.496771 69.190674 49.337391 +v -14.670737 64.668381 54.153191 +v -13.193227 67.227501 51.671806 +v -12.576861 68.295082 48.560722 +v -12.500001 68.428207 47.000000 +v -12.488400 63.704109 53.667141 +v -10.015466 65.230408 50.109016 +v -17.226305 62.103706 55.037254 +v -12.663581 61.528572 54.069210 +v -8.809323 61.496773 49.337387 +v -8.500001 61.500000 47.000000 +v -47.499996 67.499992 1.000000 +v -51.499996 71.500000 1.000000 +v -51.499992 77.500008 1.000000 +v -47.499996 51.499996 1.000000 +v -47.499996 67.499992 26.999998 +v -51.499996 71.500000 26.999998 +v -51.499992 77.500008 26.999998 +v -47.499996 51.499996 27.000000 +v -51.499996 74.500000 28.999998 +v -51.499992 81.500008 26.999998 +v -51.499996 69.500000 29.999998 +v -51.499996 74.500000 31.999998 +v -51.499992 79.500008 29.999998 +v -51.499996 67.500000 26.999996 +v -51.499992 81.500008 51.999996 +v -51.499996 67.500000 51.999996 +v -37.499996 67.499992 51.999996 +v -37.499992 51.500004 44.000000 +v -37.499992 51.500004 1.000000 +v -37.500011 69.499992 27.000000 +v 38.499989 69.500008 1.000000 +v 38.499992 77.500008 1.000000 +v 42.499992 81.500008 1.000000 +v 48.499992 81.500008 1.000000 +v 38.499989 69.500008 27.000000 +v 38.499992 77.500008 27.000000 +v 42.499992 81.500008 27.000000 +v 48.499992 81.500008 27.000000 +v 38.499989 73.500008 29.000000 +v 45.499992 81.500008 29.000000 +v 52.499992 81.500000 27.000000 +v 40.499992 81.500008 30.000000 +v 45.499992 81.500008 32.000000 +v 50.499992 81.500008 30.000000 +v 38.499992 75.500008 33.000000 +v 38.499992 81.500008 27.000000 +v 38.499992 79.500008 31.000000 +v 38.499992 81.500008 52.000000 +v 9.500001 61.500000 40.000000 +v 10.571799 65.500000 40.000000 +v 13.499999 68.428207 40.000000 +v 17.500000 69.500000 40.000000 +v 21.500000 68.428200 40.000000 +v 24.428204 65.500000 40.000000 +v 25.500004 61.500004 40.000000 +v 24.428204 57.500004 40.000000 +v 21.500002 54.571800 40.000000 +v 17.500002 53.500004 40.000000 +v 13.500002 54.571800 40.000000 +v 10.571799 57.500000 40.000000 +v 10.571799 65.500000 47.000000 +v 17.500000 69.500000 47.000000 +v 24.428204 57.500004 47.000000 +v 21.500002 54.571800 47.000000 +v 17.500002 53.500004 47.000000 +v 13.500002 54.571800 47.000000 +v 10.571799 57.500000 47.000000 +v 11.245952 61.464966 52.035316 +v 13.130441 58.888638 53.218346 +v 11.051024 57.822205 50.208447 +v 15.349351 59.375931 54.457954 +v 14.963225 57.017036 53.159172 +v 13.702564 55.004974 50.030579 +v 17.510714 55.292248 52.106064 +v 17.503231 53.809326 49.337387 +v 16.781902 60.905148 55.054592 +v 18.055582 58.078838 54.294106 +v 20.613155 56.129284 52.106064 +v 21.348137 54.841297 49.337387 +v 19.832148 58.805084 54.245476 +v 21.982965 58.963226 53.159172 +v 23.984533 57.769600 50.109020 +v 23.707750 61.510715 52.106068 +v 25.190678 61.503231 49.337387 +v 25.500004 61.500004 47.000000 +v 20.953011 62.096165 54.267403 +v 21.938396 64.113976 53.159172 +v 23.948978 65.177795 50.208443 +v 24.428204 65.500000 47.000000 +v 19.379629 64.692284 54.123920 +v 20.806774 67.227501 51.671806 +v 21.423141 68.295082 48.560722 +v 21.500000 68.428200 47.000000 +v 17.528578 65.336418 54.069210 +v 17.464968 67.754044 52.035320 +v 17.496771 69.190674 49.337391 +v 15.670737 64.668381 54.153191 +v 14.193225 67.227501 51.671806 +v 13.576859 68.295082 48.560722 +v 13.499999 68.428207 47.000000 +v 13.488400 63.704109 53.667141 +v 11.015466 65.230408 50.109016 +v 18.226301 62.103710 55.037254 +v 13.663581 61.528576 54.069210 +v 9.809323 61.496773 49.337387 +v 9.500001 61.500000 47.000000 +v 48.499989 67.500000 1.000000 +v 52.499989 71.499992 1.000000 +v 52.499992 77.500000 1.000000 +v 48.499996 51.499996 1.000000 +v 48.499989 67.500000 26.999998 +v 52.499989 71.499992 26.999998 +v 52.499992 77.500000 26.999998 +v 48.499996 51.499996 27.000000 +v 52.499989 74.499992 28.999998 +v 52.499989 69.499992 29.999998 +v 52.499989 74.499992 31.999998 +v 52.499992 79.500000 29.999998 +v 52.499989 67.499992 26.999996 +v 52.499992 81.500000 51.999996 +v 38.499989 67.500000 32.999996 +v 52.499989 67.499992 51.999996 +v 38.499989 67.500000 51.999996 +v 38.499992 51.500004 44.000000 +v 38.499992 51.500004 1.000000 +v -69.500000 37.500000 26.999998 +v -77.500000 -38.499992 1.000000 +v -81.500000 -42.499992 1.000000 +v -81.500000 -48.499992 1.000000 +v -77.500000 -38.499992 26.999998 +v -81.500000 -42.499992 26.999998 +v -81.500000 -48.499992 26.999998 +v -73.500000 -38.499996 28.999998 +v -81.500000 -45.499992 28.999998 +v -81.500008 -52.499992 26.999998 +v -81.500000 -40.499992 29.999998 +v -81.500000 -45.499992 31.999998 +v -81.500000 -50.499992 29.999998 +v -81.500000 -38.499992 26.999998 +v -79.500000 -38.499992 30.999998 +v -81.500000 -38.499992 51.999996 +v -67.500000 -38.499996 51.999996 +v -61.500000 -9.500003 39.999996 +v -65.500000 -10.571803 39.999996 +v -68.428207 -13.500003 39.999996 +v -69.500000 -17.500002 39.999996 +v -68.428200 -21.500002 39.999996 +v -65.500000 -24.428209 39.999996 +v -61.500000 -25.500004 39.999996 +v -57.500000 -24.428204 39.999996 +v -54.571800 -21.500008 39.999996 +v -53.500000 -17.500004 39.999996 +v -54.571800 -13.500008 39.999996 +v -57.500000 -10.571803 39.999996 +v -65.500000 -10.571803 46.999996 +v -69.500000 -17.500002 46.999996 +v -57.500000 -24.428204 46.999996 +v -54.571800 -21.500008 46.999996 +v -53.500000 -17.500004 46.999996 +v -54.571800 -13.500008 46.999996 +v -57.500000 -10.571803 46.999996 +v -61.464966 -11.245952 52.035313 +v -58.888638 -13.130439 53.218342 +v -57.822205 -11.051028 50.208443 +v -59.375927 -15.349349 54.457951 +v -57.017029 -14.963225 53.159168 +v -55.004971 -13.702568 50.030575 +v -55.292244 -17.510715 52.106060 +v -53.809322 -17.503235 49.337383 +v -60.905144 -16.781902 55.054588 +v -58.078835 -18.055592 54.294102 +v -56.129280 -20.613155 52.106060 +v -54.841293 -21.348141 49.337383 +v -58.805077 -19.832153 54.245472 +v -58.963219 -21.982971 53.159168 +v -57.769600 -23.984535 50.109016 +v -61.510712 -23.707760 52.106064 +v -61.503227 -25.190678 49.337383 +v -61.500000 -25.500004 46.999996 +v -62.096161 -20.953014 54.267399 +v -64.113976 -21.938402 53.159168 +v -65.177795 -23.948984 50.208439 +v -65.500000 -24.428209 46.999996 +v -64.692284 -19.379625 54.123917 +v -67.227501 -20.806780 51.671803 +v -68.295082 -21.423143 48.560719 +v -68.428200 -21.500002 46.999996 +v -65.336418 -17.528582 54.069206 +v -67.754044 -17.464968 52.035316 +v -69.190674 -17.496775 49.337387 +v -64.668381 -15.670741 54.153187 +v -67.227501 -14.193233 51.671803 +v -68.295082 -13.576861 48.560719 +v -68.428207 -13.500003 46.999996 +v -63.704109 -13.488406 53.667137 +v -65.230408 -11.015468 50.109013 +v -62.103706 -18.226307 55.037251 +v -61.528572 -13.663585 54.069206 +v -61.496773 -9.809329 49.337383 +v -61.500000 -9.500003 46.999996 +v -67.499992 -48.500004 1.000000 +v -71.500000 -52.500004 1.000000 +v -77.500008 -52.499992 1.000000 +v -51.499992 -48.500004 1.000000 +v -67.499992 -48.500004 26.999996 +v -71.500000 -52.500004 26.999996 +v -77.500008 -52.499992 26.999996 +v -51.499992 -48.500004 26.999998 +v -74.500000 -52.500004 28.999996 +v -69.500000 -52.500004 29.999996 +v -74.500000 -52.500004 31.999996 +v -79.500008 -52.499992 29.999996 +v -67.500000 -52.500004 26.999992 +v -81.500008 -52.499992 51.999992 +v -67.499992 -38.500004 32.999992 +v -67.500000 -52.500004 51.999992 +v -51.500000 -52.499996 43.999996 +v -51.500004 -38.499996 43.999996 +v -37.500004 -38.499996 43.999996 +v -51.500000 -52.499996 1.000000 +v -51.500004 -38.499996 1.000000 +v -37.500004 -38.499996 32.999996 +v -69.499992 -38.500019 26.999998 +v -69.500008 37.499985 1.000000 +v -69.499992 -38.500019 1.000000 +v -77.500008 37.499989 1.000000 +v -81.500008 41.499989 1.000000 +v -81.500015 47.499989 1.000000 +v -77.500008 37.499989 26.999998 +v -81.500008 41.499989 26.999998 +v -81.500015 47.499989 26.999998 +v -73.500008 37.499985 28.999998 +v -81.500008 44.499989 28.999998 +v -81.500008 39.499989 29.999998 +v -81.500008 44.499989 31.999998 +v -81.500015 49.499989 29.999998 +v -75.500008 37.499989 32.999996 +v -81.500008 37.499989 26.999998 +v -79.500008 37.499989 30.999998 +v -81.500008 37.499989 51.999996 +v -61.500004 8.499997 39.999996 +v -65.500000 9.571797 39.999996 +v -68.428207 12.499997 39.999996 +v -69.500000 16.499998 39.999996 +v -68.428200 20.499998 39.999996 +v -65.500000 23.428198 39.999996 +v -61.500000 24.500000 39.999996 +v -57.500008 23.428200 39.999996 +v -54.571800 20.500000 39.999996 +v -53.500000 16.500000 39.999996 +v -54.571800 12.500000 39.999996 +v -57.500000 9.571797 39.999996 +v -65.500000 9.571797 46.999996 +v -69.500000 16.499998 46.999996 +v -57.500008 23.428200 46.999996 +v -54.571800 20.500000 46.999996 +v -53.500000 16.500000 46.999996 +v -54.571800 12.500000 46.999996 +v -57.500000 9.571797 46.999996 +v -61.464966 10.245950 52.035313 +v -58.888638 12.130437 53.218342 +v -57.822205 10.051023 50.208443 +v -59.375935 14.349347 54.457951 +v -57.017036 13.963223 53.159168 +v -55.004974 12.702560 50.030575 +v -55.292244 16.510712 52.106060 +v -53.809326 16.503231 49.337383 +v -60.905144 15.781898 55.054588 +v -58.078835 17.055580 54.294102 +v -56.129280 19.613152 52.106060 +v -54.841297 20.348137 49.337383 +v -58.805084 18.832146 54.245472 +v -58.963226 20.982964 53.159168 +v -57.769600 22.984531 50.109016 +v -61.510712 22.707748 52.106064 +v -61.503235 24.190674 49.337383 +v -61.500000 24.500000 46.999996 +v -62.096165 19.953011 54.267399 +v -64.113976 20.938395 53.159168 +v -65.177795 22.948973 50.208439 +v -65.500000 23.428198 46.999996 +v -64.692284 18.379629 54.123917 +v -67.227501 19.806768 51.671803 +v -68.295082 20.423140 48.560719 +v -68.428200 20.499998 46.999996 +v -65.336418 16.528574 54.069206 +v -67.754044 16.464964 52.035316 +v -69.190674 16.496767 49.337387 +v -64.668381 14.670735 54.153187 +v -67.227501 13.193223 51.671803 +v -68.295074 12.576856 48.560719 +v -68.428207 12.499997 46.999996 +v -63.704109 12.488397 53.667137 +v -65.230408 10.015462 50.109013 +v -62.103714 17.226299 55.037251 +v -61.528580 12.663579 54.069206 +v -61.496773 8.809319 49.337383 +v -61.500004 8.499997 46.999996 +v -67.500000 47.499985 1.000000 +v -71.499992 51.499985 1.000000 +v -77.500008 51.499989 1.000000 +v -51.500004 47.499992 1.000000 +v -67.500000 47.499985 26.999996 +v -71.499992 51.499985 26.999996 +v -77.500008 51.499989 26.999996 +v -51.500004 47.499992 26.999998 +v -74.499992 51.499985 28.999996 +v -81.500008 51.499989 26.999996 +v -69.499992 51.499985 29.999996 +v -74.499992 51.499985 31.999996 +v -79.500008 51.499989 29.999996 +v -67.499992 51.499985 26.999992 +v -81.500008 51.499989 51.999992 +v -67.500000 37.499985 32.999992 +v -67.499992 51.499985 51.999992 +v -67.500000 37.499985 51.999992 +v -51.500008 51.499989 43.999996 +v -51.500008 37.499989 43.999996 +v -37.500008 37.499992 43.999996 +v -51.500008 51.499989 1.000000 +v -51.500008 37.499989 1.000000 +v -37.500008 37.499992 32.999996 +v -37.499996 -70.500000 27.000000 +v 38.500004 -70.500000 1.000000 +v -37.499996 -70.500000 1.000000 +v 38.500000 -78.500000 1.000000 +v 42.500000 -82.500000 1.000000 +v 48.500000 -82.500000 1.000000 +v 38.500004 -70.500000 27.000000 +v 38.500000 -78.500000 27.000000 +v 42.500000 -82.500000 27.000000 +v 48.500000 -82.500000 27.000000 +v 38.500004 -74.500000 29.000000 +v 45.500000 -82.500000 29.000000 +v 40.500000 -82.500000 30.000000 +v 45.500000 -82.500000 32.000000 +v 50.500000 -82.500000 30.000000 +v 38.500000 -76.500000 33.000000 +v 38.500000 -82.500000 27.000000 +v 38.500000 -80.500000 31.000000 +v 38.500000 -82.500000 52.000000 +v 9.500007 -62.500000 40.000000 +v 10.571805 -66.500000 40.000000 +v 13.500007 -69.428207 40.000000 +v 17.500004 -70.500000 40.000000 +v 21.500004 -69.428200 40.000000 +v 24.428207 -66.500000 40.000000 +v 25.500011 -62.500000 40.000000 +v 24.428211 -58.500000 40.000000 +v 21.500006 -55.571796 40.000000 +v 17.500006 -54.500000 40.000000 +v 13.500006 -55.571796 40.000000 +v 10.571801 -58.500000 40.000000 +v 10.571805 -66.500000 47.000000 +v 17.500004 -70.500000 47.000000 +v 24.428211 -58.500000 47.000000 +v 21.500006 -55.571796 47.000000 +v 17.500006 -54.500000 47.000000 +v 13.500006 -55.571796 47.000000 +v 10.571801 -58.500000 47.000000 +v 11.245957 -62.464966 52.035316 +v 13.130443 -59.888638 53.218346 +v 11.051026 -58.822205 50.208447 +v 15.349353 -60.375927 54.457954 +v 14.963227 -58.017033 53.159172 +v 13.702568 -56.004971 50.030579 +v 17.510717 -56.292244 52.106064 +v 17.503235 -54.809322 49.337387 +v 16.781910 -61.905144 55.054592 +v 18.055590 -59.078835 54.294106 +v 20.613163 -57.129280 52.106064 +v 21.348145 -55.841293 49.337387 +v 19.832155 -59.805080 54.245476 +v 21.982973 -59.963223 53.159172 +v 23.984541 -58.769588 50.109020 +v 23.707758 -62.510712 52.106068 +v 25.190685 -62.503227 49.337387 +v 25.500011 -62.500000 47.000000 +v 20.953018 -63.096161 54.267403 +v 21.938400 -65.113976 53.159172 +v 23.948982 -66.177795 50.208443 +v 24.428207 -66.500000 47.000000 +v 19.379633 -65.692284 54.123920 +v 20.806778 -68.227501 51.671806 +v 21.423145 -69.295082 48.560722 +v 21.500004 -69.428200 47.000000 +v 17.528582 -66.336418 54.069210 +v 17.464972 -68.754044 52.035320 +v 17.496778 -70.190674 49.337391 +v 15.670743 -65.668381 54.153191 +v 14.193233 -68.227501 51.671806 +v 13.576867 -69.295082 48.560722 +v 13.500007 -69.428207 47.000000 +v 13.488406 -64.704109 53.667141 +v 11.015471 -66.230408 50.109016 +v 18.226309 -63.103706 55.037254 +v 13.663587 -62.528572 54.069210 +v 9.809329 -62.496773 49.337387 +v 9.500007 -62.500000 47.000000 +v 48.500004 -68.499977 1.000000 +v 52.500004 -72.499985 1.000000 +v 52.500000 -78.500008 1.000000 +v 48.499996 -52.499996 1.000000 +v 48.500004 -68.499977 26.999998 +v 52.500004 -72.499985 26.999998 +v 52.500000 -78.500008 26.999998 +v 48.499996 -52.499996 27.000000 +v 52.500004 -75.499985 28.999998 +v 52.500000 -82.500008 26.999998 +v 52.500004 -70.499985 29.999998 +v 52.500004 -75.499985 31.999998 +v 52.500000 -80.500008 29.999998 +v 52.500004 -68.499985 26.999996 +v 52.500000 -82.500008 51.999996 +v 38.500004 -68.499992 32.999996 +v 52.500004 -68.499985 51.999996 +v 38.500004 -68.499992 51.999996 +v 38.500000 -52.500004 44.000000 +v 52.500000 -52.500004 1.000000 +v 38.500000 -52.500004 1.000000 +v -37.499985 -78.500008 1.000000 +v -41.499985 -82.500008 1.000000 +v -47.499985 -82.500023 1.000000 +v -37.499985 -78.500008 27.000000 +v -41.499985 -82.500008 27.000000 +v -47.499985 -82.500023 27.000000 +v -37.499981 -74.500008 29.000000 +v -44.499985 -82.500023 29.000000 +v -39.499985 -82.500008 30.000000 +v -44.499985 -82.500023 32.000000 +v -49.499985 -82.500023 30.000000 +v -37.499985 -76.500008 33.000000 +v -37.499985 -82.500008 27.000000 +v -37.499985 -80.500008 31.000000 +v -37.499985 -82.500008 52.000000 +v -8.499995 -62.500000 40.000000 +v -9.571794 -66.500000 40.000000 +v -12.499993 -69.428207 40.000000 +v -16.499996 -70.500000 40.000000 +v -20.499996 -69.428200 40.000000 +v -23.428200 -66.500000 40.000000 +v -24.499996 -62.500011 40.000000 +v -23.428196 -58.500011 40.000000 +v -20.499998 -55.571800 40.000000 +v -16.499998 -54.500004 40.000000 +v -12.499998 -55.571800 40.000000 +v -9.571795 -58.500000 40.000000 +v -9.571794 -66.500000 47.000000 +v -16.499996 -70.500000 47.000000 +v -23.428196 -58.500011 47.000000 +v -20.499998 -55.571800 47.000000 +v -16.499998 -54.500004 47.000000 +v -12.499998 -55.571800 47.000000 +v -9.571795 -58.500000 47.000000 +v -10.245946 -62.464966 52.035316 +v -12.130437 -59.888638 53.218346 +v -10.051021 -58.822205 50.208447 +v -14.349347 -60.375931 54.457954 +v -13.963222 -58.017036 53.159172 +v -12.702560 -56.004974 50.030579 +v -16.510710 -56.292248 52.106064 +v -16.503227 -54.809326 49.337387 +v -15.781895 -61.905148 55.054592 +v -17.055578 -59.078838 54.294106 +v -19.613148 -57.129284 52.106064 +v -20.348129 -55.841297 49.337387 +v -18.832144 -59.805084 54.245476 +v -20.982962 -59.963226 53.159172 +v -22.984529 -58.769600 50.109020 +v -22.707747 -62.510723 52.106068 +v -24.190670 -62.503239 49.337387 +v -24.499996 -62.500011 47.000000 +v -19.953003 -63.096165 54.267403 +v -20.938393 -65.113976 53.159172 +v -22.948975 -66.177795 50.208443 +v -23.428200 -66.500000 47.000000 +v -18.379622 -65.692284 54.123920 +v -19.806770 -68.227501 51.671806 +v -20.423138 -69.295082 48.560722 +v -20.499996 -69.428200 47.000000 +v -16.528570 -66.336418 54.069210 +v -16.464960 -68.754044 52.035320 +v -16.496763 -70.190674 49.337391 +v -14.670732 -65.668381 54.153191 +v -13.193219 -68.227501 51.671806 +v -12.576854 -69.295082 48.560722 +v -12.499993 -69.428207 47.000000 +v -12.488395 -64.704109 53.667141 +v -10.015460 -66.230408 50.109016 +v -17.226297 -63.103710 55.037254 +v -12.663575 -62.528576 54.069210 +v -8.809318 -62.496773 49.337387 +v -8.499995 -62.500000 47.000000 +v -47.499981 -68.500000 1.000000 +v -51.499981 -72.499992 1.000000 +v -51.499985 -78.500015 1.000000 +v -47.499996 -52.499996 1.000000 +v -47.499981 -68.500000 26.999998 +v -51.499981 -72.499992 26.999998 +v -51.499985 -78.500015 26.999998 +v -47.499996 -52.499996 27.000000 +v -51.499981 -75.499992 28.999998 +v -51.499985 -82.500015 26.999998 +v -51.499981 -70.499992 29.999998 +v -51.499981 -75.499992 31.999998 +v -51.499985 -80.500015 29.999998 +v -51.499981 -68.499992 26.999996 +v -51.499985 -82.500015 51.999996 +v -51.499981 -68.499992 51.999996 +v -37.499981 -68.500000 51.999996 +v -37.499985 -52.500004 44.000000 +v -37.499985 -52.500004 1.000000 +v 70.500000 -38.499992 26.999998 +v 70.500000 37.500004 1.000000 +v 70.500000 -38.499992 1.000000 +v 78.500000 37.500000 1.000000 +v 82.500000 41.500000 1.000000 +v 82.500000 47.500000 1.000000 +v 70.500000 37.500004 26.999998 +v 78.500000 37.500000 26.999998 +v 82.500000 41.500000 26.999998 +v 82.500000 47.500000 26.999998 +v 74.500000 37.500004 28.999998 +v 82.500000 44.500000 28.999998 +v 82.500000 39.500000 29.999998 +v 82.500000 44.500000 31.999998 +v 82.500000 49.500000 29.999998 +v 76.500000 37.500000 32.999996 +v 82.500000 37.500000 26.999998 +v 80.500000 37.500000 30.999998 +v 82.500008 51.500000 51.999996 +v 82.500000 37.500000 51.999996 +v 62.500000 8.500009 39.999996 +v 66.500000 9.571809 39.999996 +v 69.428207 12.500009 39.999996 +v 70.500000 16.500010 39.999996 +v 69.428200 20.500010 39.999996 +v 66.500000 23.428217 39.999996 +v 62.500000 24.500011 39.999996 +v 58.500000 23.428211 39.999996 +v 55.571800 20.500015 39.999996 +v 54.500000 16.500008 39.999996 +v 55.571800 12.500011 39.999996 +v 58.500000 9.571807 39.999996 +v 66.500000 9.571809 46.999996 +v 70.500000 16.500010 46.999996 +v 58.500000 23.428211 46.999996 +v 55.571800 20.500015 46.999996 +v 54.500000 16.500008 46.999996 +v 55.571800 12.500011 46.999996 +v 58.500000 9.571807 46.999996 +v 62.464966 10.245957 52.035313 +v 59.888638 12.130443 53.218342 +v 58.822205 10.051032 50.208443 +v 60.375927 14.349353 54.457951 +v 58.017029 13.963229 53.159168 +v 56.004971 12.702572 50.030575 +v 56.292244 16.510723 52.106060 +v 54.809322 16.503239 49.337383 +v 61.905144 15.781910 55.054588 +v 59.078835 17.055599 54.294102 +v 57.129280 19.613163 52.106060 +v 55.841293 20.348148 49.337383 +v 59.805077 18.832161 54.245472 +v 59.963219 20.982979 53.159168 +v 58.769600 22.984543 50.109016 +v 62.510712 22.707767 52.106064 +v 62.503227 24.190685 49.337383 +v 62.500000 24.500011 46.999996 +v 63.096161 19.953022 54.267399 +v 65.113976 20.938410 53.159168 +v 66.177795 22.948992 50.208439 +v 66.500000 23.428217 46.999996 +v 65.692284 18.379633 54.123917 +v 68.227501 19.806787 51.671803 +v 69.295082 20.423151 48.560719 +v 69.428200 20.500010 46.999996 +v 66.336418 16.528589 54.069206 +v 68.754044 16.464975 52.035316 +v 70.190674 16.496782 49.337387 +v 65.668381 14.670747 54.153187 +v 68.227501 13.193238 51.671803 +v 69.295082 12.576867 48.560719 +v 69.428207 12.500009 46.999996 +v 64.704109 12.488412 53.667137 +v 66.230408 10.015473 50.109013 +v 63.103706 17.226315 55.037251 +v 62.528572 12.663590 54.069206 +v 62.496773 8.809335 49.337383 +v 62.500000 8.500009 46.999996 +v 68.499977 47.500011 1.000000 +v 72.499985 51.500011 1.000000 +v 78.500008 51.500000 1.000000 +v 52.499985 47.500004 1.000000 +v 68.499977 47.500011 26.999996 +v 72.499985 51.500011 26.999996 +v 78.500008 51.500000 26.999996 +v 52.499985 47.500004 26.999998 +v 75.499985 51.500011 28.999996 +v 82.500008 51.500000 26.999996 +v 70.499985 51.500011 29.999996 +v 75.499985 51.500011 31.999996 +v 80.500008 51.500000 29.999996 +v 68.499985 51.500011 26.999992 +v 68.499992 37.500011 32.999992 +v 68.499985 51.500011 51.999992 +v 68.499992 37.500011 51.999992 +v 52.499992 51.499996 43.999996 +v 52.500004 37.499996 43.999996 +v 38.500004 37.499996 43.999996 +v 52.499992 51.499996 1.000000 +v 52.500004 37.499996 1.000000 +v 38.500004 37.499996 32.999996 +v 78.500008 -38.499981 1.000000 +v 82.500008 -42.499981 1.000000 +v 82.500015 -48.499981 1.000000 +v 78.500008 -38.499981 26.999998 +v 82.500008 -42.499981 26.999998 +v 82.500015 -48.499981 26.999998 +v 74.500008 -38.499977 28.999998 +v 82.500023 -45.499981 28.999998 +v 82.500008 -40.499981 29.999998 +v 82.500023 -45.499981 31.999998 +v 82.500015 -50.499981 29.999998 +v 76.500008 -38.499981 32.999996 +v 82.500008 -38.499981 26.999998 +v 80.500008 -38.499981 30.999998 +v 82.500008 -38.499981 51.999996 +v 62.500004 -9.499991 39.999996 +v 66.500000 -10.571792 39.999996 +v 69.428207 -13.499991 39.999996 +v 70.500000 -17.499990 39.999996 +v 69.428200 -21.499990 39.999996 +v 66.500000 -24.428190 39.999996 +v 62.500000 -25.499992 39.999996 +v 58.500008 -24.428192 39.999996 +v 55.571800 -21.499992 39.999996 +v 54.500000 -17.499996 39.999996 +v 55.571800 -13.499996 39.999996 +v 58.500000 -10.571794 39.999996 +v 66.500000 -10.571792 46.999996 +v 70.500000 -17.499990 46.999996 +v 58.500008 -24.428192 46.999996 +v 55.571800 -21.499992 46.999996 +v 54.500000 -17.499996 46.999996 +v 55.571800 -13.499996 46.999996 +v 58.500000 -10.571794 46.999996 +v 62.464966 -11.245944 52.035313 +v 59.888638 -13.130433 53.218342 +v 58.822205 -11.051019 50.208443 +v 60.375935 -15.349343 54.457951 +v 58.017036 -14.963220 53.159168 +v 56.004974 -13.702557 50.030575 +v 56.292244 -17.510704 52.106060 +v 54.809326 -17.503227 49.337383 +v 61.905144 -16.781891 55.054588 +v 59.078835 -18.055573 54.294102 +v 57.129280 -20.613144 52.106060 +v 55.841297 -21.348129 49.337383 +v 59.805084 -19.832138 54.245472 +v 59.963226 -21.982956 53.159168 +v 58.769600 -23.984524 50.109016 +v 62.510712 -23.707741 52.106064 +v 62.503235 -25.190666 49.337383 +v 62.500000 -25.499992 46.999996 +v 63.096165 -20.953003 54.267399 +v 65.113976 -21.938387 53.159168 +v 66.177795 -23.948965 50.208439 +v 66.500000 -24.428190 46.999996 +v 65.692284 -19.379622 54.123917 +v 68.227501 -20.806761 51.671803 +v 69.295082 -21.423132 48.560719 +v 69.428200 -21.499990 46.999996 +v 66.336418 -17.528566 54.069206 +v 68.754044 -17.464956 52.035316 +v 70.190674 -17.496759 49.337387 +v 65.668381 -15.670730 54.153187 +v 68.227501 -14.193217 51.671803 +v 69.295074 -13.576850 48.560719 +v 69.428207 -13.499991 46.999996 +v 64.704109 -13.488391 53.667137 +v 66.230408 -11.015456 50.109013 +v 63.103714 -18.226292 55.037251 +v 62.528580 -13.663573 54.069206 +v 62.496773 -9.809314 49.337383 +v 62.500004 -9.499991 46.999996 +v 68.500000 -48.499977 1.000000 +v 72.499992 -52.499977 1.000000 +v 78.500008 -52.499981 1.000000 +v 52.500004 -48.499985 1.000000 +v 68.500000 -48.499977 26.999996 +v 72.499992 -52.499977 26.999996 +v 78.500008 -52.499981 26.999996 +v 52.500004 -48.499985 26.999998 +v 75.499992 -52.499977 28.999996 +v 82.500008 -52.499981 26.999996 +v 70.499992 -52.499977 29.999996 +v 75.499992 -52.499977 31.999996 +v 80.500008 -52.499981 29.999996 +v 68.499992 -52.499977 26.999992 +v 82.500008 -52.499981 51.999992 +v 68.500000 -38.499977 32.999992 +v 68.499992 -52.499977 51.999992 +v 68.500000 -38.499977 51.999992 +v 52.500015 -52.499989 43.999996 +v 52.500015 -38.499989 43.999996 +v 38.500015 -38.499985 43.999996 +v 52.500015 -38.499989 1.000000 +v 38.500015 -38.499985 32.999996 +v -75.499992 -38.499977 32.999996 +v -37.499996 -68.499985 32.999996 +v -37.500000 67.500015 32.999996 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn 0.3141 -0.0750 0.9464 +vn 0.4463 -0.1916 0.8741 +vn 0.6376 -0.1167 0.7615 +vn 0.8684 -0.1844 0.4603 +vn 0.3793 -0.3979 0.8354 +vn 0.2672 -0.7579 0.5951 +vn 0.0831 -0.2937 0.9523 +vn 0.1650 -0.4548 0.8752 +vn -0.4218 -0.4879 0.7642 +vn -0.5943 -0.6572 0.4635 +vn -0.2701 -0.0984 0.9578 +vn -0.4544 -0.1606 0.8762 +vn -0.7558 -0.2640 0.5993 +vn -0.8668 0.1830 0.4638 +vn -0.6282 0.1158 0.7694 +vn -0.2660 0.2132 0.9401 +vn -0.3941 0.2871 0.8731 +vn -0.6136 0.5107 0.6022 +vn -0.0767 0.3012 0.9505 +vn 0.0556 0.2754 0.9597 +vn 0.1907 0.8674 0.4596 +vn 0.6426 0.0889 0.7610 +vn 0.7301 0.2753 0.6255 +vn 0.2696 0.1540 0.9506 +vn -0.2588 0.9659 -0.0000 +vn 0.7071 -0.7071 -0.0000 +vn 0.9659 0.2588 -0.0000 +vn -0.7071 -0.7071 -0.0000 +vn -0.7071 0.7071 -0.0000 +vn 0.9659 -0.2588 -0.0000 +vn 0.7071 0.7071 -0.0000 +vn -0.2588 -0.9659 -0.0000 +vn -0.9659 0.2588 -0.0000 +vn 0.2588 0.9659 -0.0000 +vn 0.2588 -0.9659 -0.0000 +vn -0.9659 -0.2588 -0.0000 +vn 0.9511 -0.2696 0.1507 +vn 0.7056 -0.6902 0.1607 +vn 0.7465 -0.2659 0.6099 +vn 0.5659 -0.5713 0.5944 +vn 0.2646 -0.9538 0.1421 +vn 0.0827 -0.6054 0.7916 +vn 0.1877 -0.8656 0.4642 +vn -0.2569 -0.9581 0.1268 +vn -0.2009 -0.6030 0.7721 +vn -0.2307 -0.8577 0.4595 +vn -0.7075 -0.6915 0.1458 +vn -0.6083 -0.5176 0.6017 +vn -0.1307 -0.1854 0.9739 +vn -0.9529 -0.2662 0.1451 +vn -0.9511 0.2696 0.1507 +vn -0.6044 -0.0816 0.7925 +vn -0.8663 -0.1839 0.4645 +vn -0.7499 0.2644 0.6063 +vn -0.7138 0.6844 0.1486 +vn -0.4020 0.5095 0.7608 +vn -0.6217 0.6948 0.3616 +vn -0.2499 0.9615 0.1143 +vn -0.1869 0.8662 0.4634 +vn -0.2746 0.8915 0.3603 +vn -0.1870 0.6307 0.7532 +vn 0.1873 0.6276 0.7557 +vn 0.2500 0.9615 0.1139 +vn 0.2750 0.8913 0.3604 +vn 0.7121 0.6882 0.1387 +vn 0.6171 0.6987 0.3620 +vn 0.2223 0.1645 0.9610 +vn 0.9529 0.2662 0.1451 +vn 0.3958 0.5112 0.7629 +vn 0.6110 0.4791 0.6302 +vn 0.8667 0.1841 0.4637 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.3141 -0.0750 0.9464 +vn -0.4463 -0.1916 0.8741 +vn -0.6376 -0.1167 0.7615 +vn -0.8684 -0.1844 0.4603 +vn -0.3793 -0.3979 0.8354 +vn -0.2672 -0.7579 0.5951 +vn -0.0831 -0.2937 0.9523 +vn -0.1650 -0.4548 0.8752 +vn 0.4218 -0.4879 0.7642 +vn 0.5943 -0.6572 0.4635 +vn 0.2701 -0.0984 0.9578 +vn 0.4544 -0.1606 0.8762 +vn 0.7558 -0.2640 0.5993 +vn 0.8668 0.1830 0.4638 +vn 0.6282 0.1158 0.7694 +vn 0.2660 0.2132 0.9401 +vn 0.3941 0.2871 0.8731 +vn 0.6136 0.5107 0.6022 +vn 0.0767 0.3012 0.9505 +vn -0.0556 0.2754 0.9597 +vn -0.1907 0.8674 0.4596 +vn -0.6426 0.0889 0.7610 +vn -0.7301 0.2753 0.6255 +vn -0.2696 0.1540 0.9506 +vn -0.9511 -0.2696 0.1507 +vn -0.7056 -0.6902 0.1607 +vn -0.7465 -0.2659 0.6099 +vn -0.5659 -0.5713 0.5944 +vn -0.2646 -0.9538 0.1421 +vn -0.0827 -0.6054 0.7916 +vn -0.1877 -0.8656 0.4642 +vn 0.2569 -0.9581 0.1268 +vn 0.2009 -0.6030 0.7721 +vn 0.2307 -0.8577 0.4595 +vn 0.7075 -0.6915 0.1458 +vn 0.6083 -0.5176 0.6017 +vn 0.1307 -0.1854 0.9739 +vn 0.9529 -0.2662 0.1451 +vn 0.9511 0.2696 0.1507 +vn 0.6044 -0.0816 0.7925 +vn 0.8663 -0.1839 0.4645 +vn 0.7499 0.2644 0.6063 +vn 0.7138 0.6844 0.1486 +vn 0.4020 0.5095 0.7608 +vn 0.6217 0.6948 0.3616 +vn 0.2499 0.9615 0.1143 +vn 0.1869 0.8662 0.4634 +vn 0.2746 0.8915 0.3603 +vn 0.1870 0.6307 0.7532 +vn -0.1873 0.6276 0.7557 +vn -0.2500 0.9615 0.1139 +vn -0.2750 0.8913 0.3604 +vn -0.7121 0.6882 0.1387 +vn -0.6171 0.6987 0.3620 +vn -0.2223 0.1645 0.9610 +vn -0.9529 0.2662 0.1451 +vn -0.3958 0.5112 0.7629 +vn -0.6110 0.4791 0.6302 +vn -0.8667 0.1841 0.4637 +vn 0.0750 0.3141 0.9464 +vn 0.1916 0.4463 0.8741 +vn 0.1167 0.6376 0.7615 +vn 0.1844 0.8684 0.4603 +vn 0.3979 0.3793 0.8354 +vn 0.7579 0.2672 0.5951 +vn 0.2937 0.0831 0.9523 +vn 0.4548 0.1650 0.8752 +vn 0.4879 -0.4218 0.7642 +vn 0.6572 -0.5943 0.4635 +vn 0.0984 -0.2701 0.9578 +vn 0.1606 -0.4544 0.8762 +vn 0.2640 -0.7558 0.5993 +vn -0.1830 -0.8668 0.4638 +vn -0.1158 -0.6282 0.7694 +vn -0.2132 -0.2660 0.9401 +vn -0.2871 -0.3941 0.8731 +vn -0.5107 -0.6136 0.6022 +vn -0.3012 -0.0767 0.9505 +vn -0.2754 0.0556 0.9597 +vn -0.8674 0.1907 0.4596 +vn -0.0889 0.6426 0.7610 +vn -0.2753 0.7301 0.6255 +vn -0.1540 0.2696 0.9506 +vn 0.2696 0.9511 0.1507 +vn 0.6902 0.7056 0.1607 +vn 0.2659 0.7465 0.6099 +vn 0.5713 0.5659 0.5944 +vn 0.9538 0.2646 0.1421 +vn 0.6054 0.0827 0.7916 +vn 0.8656 0.1877 0.4642 +vn 0.9581 -0.2569 0.1268 +vn 0.6030 -0.2009 0.7721 +vn 0.8577 -0.2307 0.4595 +vn 0.6915 -0.7075 0.1458 +vn 0.5176 -0.6083 0.6017 +vn 0.1854 -0.1307 0.9739 +vn 0.2662 -0.9529 0.1451 +vn -0.2696 -0.9511 0.1507 +vn 0.0816 -0.6044 0.7925 +vn 0.1839 -0.8663 0.4645 +vn -0.2644 -0.7500 0.6063 +vn -0.6844 -0.7138 0.1486 +vn -0.5095 -0.4020 0.7608 +vn -0.6948 -0.6217 0.3616 +vn -0.9615 -0.2499 0.1143 +vn -0.8662 -0.1869 0.4634 +vn -0.8915 -0.2746 0.3603 +vn -0.6307 -0.1870 0.7532 +vn -0.6276 0.1873 0.7557 +vn -0.9615 0.2500 0.1139 +vn -0.8913 0.2750 0.3604 +vn -0.6882 0.7121 0.1387 +vn -0.6987 0.6171 0.3620 +vn -0.1645 0.2223 0.9610 +vn -0.2662 0.9529 0.1451 +vn -0.5112 0.3958 0.7629 +vn -0.4791 0.6110 0.6302 +vn -0.1841 0.8667 0.4637 +vn 0.0750 -0.3141 0.9464 +vn 0.1916 -0.4463 0.8741 +vn 0.1167 -0.6376 0.7615 +vn 0.1844 -0.8684 0.4603 +vn 0.3979 -0.3793 0.8354 +vn 0.7579 -0.2672 0.5951 +vn 0.2937 -0.0831 0.9523 +vn 0.4548 -0.1650 0.8752 +vn 0.4879 0.4218 0.7642 +vn 0.6572 0.5943 0.4635 +vn 0.0984 0.2701 0.9578 +vn 0.1606 0.4544 0.8762 +vn 0.2640 0.7558 0.5993 +vn -0.1830 0.8668 0.4638 +vn -0.1158 0.6282 0.7694 +vn -0.2132 0.2660 0.9401 +vn -0.2871 0.3941 0.8731 +vn -0.5107 0.6136 0.6022 +vn -0.3012 0.0767 0.9505 +vn -0.2754 -0.0556 0.9597 +vn -0.8674 -0.1907 0.4596 +vn -0.0889 -0.6426 0.7610 +vn -0.2753 -0.7301 0.6255 +vn -0.1540 -0.2696 0.9506 +vn 0.2696 -0.9511 0.1507 +vn 0.6902 -0.7056 0.1607 +vn 0.2659 -0.7465 0.6099 +vn 0.5713 -0.5659 0.5944 +vn 0.9538 -0.2646 0.1421 +vn 0.6054 -0.0827 0.7916 +vn 0.8656 -0.1877 0.4642 +vn 0.9581 0.2569 0.1268 +vn 0.6030 0.2009 0.7721 +vn 0.8577 0.2307 0.4595 +vn 0.6915 0.7075 0.1458 +vn 0.5176 0.6083 0.6017 +vn 0.1854 0.1307 0.9739 +vn 0.2662 0.9529 0.1451 +vn -0.2696 0.9511 0.1507 +vn 0.0816 0.6044 0.7925 +vn 0.1839 0.8663 0.4645 +vn -0.2644 0.7500 0.6063 +vn -0.6844 0.7138 0.1486 +vn -0.5095 0.4020 0.7608 +vn -0.6948 0.6217 0.3616 +vn -0.9615 0.2499 0.1143 +vn -0.8662 0.1869 0.4634 +vn -0.8915 0.2746 0.3603 +vn -0.6307 0.1870 0.7532 +vn -0.6276 -0.1873 0.7557 +vn -0.9615 -0.2500 0.1139 +vn -0.8913 -0.2750 0.3604 +vn -0.6882 -0.7121 0.1387 +vn -0.6987 -0.6171 0.3620 +vn -0.1645 -0.2223 0.9610 +vn -0.2662 -0.9529 0.1451 +vn -0.5112 -0.3958 0.7629 +vn -0.4791 -0.6110 0.6302 +vn -0.1841 -0.8667 0.4637 +vn -0.3141 0.0750 0.9464 +vn -0.4463 0.1916 0.8741 +vn -0.6376 0.1167 0.7615 +vn -0.8684 0.1844 0.4603 +vn -0.3793 0.3979 0.8354 +vn -0.2672 0.7579 0.5951 +vn -0.0831 0.2937 0.9523 +vn -0.1650 0.4548 0.8752 +vn 0.4218 0.4879 0.7642 +vn 0.5943 0.6572 0.4635 +vn 0.2701 0.0984 0.9578 +vn 0.4544 0.1606 0.8762 +vn 0.7558 0.2640 0.5993 +vn 0.8668 -0.1830 0.4638 +vn 0.6282 -0.1158 0.7694 +vn 0.2660 -0.2132 0.9401 +vn 0.3941 -0.2871 0.8731 +vn 0.6136 -0.5107 0.6022 +vn 0.0767 -0.3012 0.9505 +vn -0.0556 -0.2754 0.9597 +vn -0.1907 -0.8674 0.4596 +vn -0.6426 -0.0889 0.7610 +vn -0.7301 -0.2753 0.6255 +vn -0.2696 -0.1540 0.9506 +vn -0.7056 0.6902 0.1607 +vn -0.7465 0.2659 0.6099 +vn -0.5659 0.5713 0.5944 +vn -0.2646 0.9538 0.1421 +vn -0.0827 0.6054 0.7916 +vn -0.1877 0.8656 0.4642 +vn 0.2569 0.9581 0.1268 +vn 0.2009 0.6030 0.7721 +vn 0.2307 0.8577 0.4595 +vn 0.7075 0.6915 0.1458 +vn 0.6083 0.5176 0.6017 +vn 0.1307 0.1854 0.9739 +vn 0.6044 0.0816 0.7925 +vn 0.8663 0.1839 0.4645 +vn 0.7500 -0.2644 0.6063 +vn 0.7138 -0.6844 0.1486 +vn 0.4020 -0.5095 0.7608 +vn 0.6217 -0.6948 0.3616 +vn 0.2499 -0.9615 0.1143 +vn 0.1869 -0.8662 0.4634 +vn 0.2746 -0.8915 0.3603 +vn 0.1870 -0.6307 0.7532 +vn -0.1873 -0.6276 0.7557 +vn -0.2500 -0.9615 0.1139 +vn -0.2750 -0.8913 0.3604 +vn -0.7121 -0.6882 0.1387 +vn -0.6171 -0.6987 0.3620 +vn -0.2223 -0.1645 0.9610 +vn -0.3958 -0.5112 0.7629 +vn -0.6110 -0.4791 0.6302 +vn -0.8667 -0.1841 0.4637 +vn 0.3141 0.0750 0.9464 +vn 0.4463 0.1916 0.8741 +vn 0.6376 0.1167 0.7615 +vn 0.8684 0.1844 0.4603 +vn 0.3793 0.3979 0.8354 +vn 0.2672 0.7579 0.5951 +vn 0.0831 0.2937 0.9523 +vn 0.1650 0.4548 0.8752 +vn -0.4218 0.4879 0.7642 +vn -0.5943 0.6572 0.4635 +vn -0.2701 0.0984 0.9578 +vn -0.4544 0.1606 0.8762 +vn -0.7558 0.2640 0.5993 +vn -0.8668 -0.1830 0.4638 +vn -0.6282 -0.1158 0.7694 +vn -0.2660 -0.2132 0.9401 +vn -0.3941 -0.2871 0.8731 +vn -0.6136 -0.5107 0.6022 +vn -0.0767 -0.3012 0.9505 +vn 0.0556 -0.2754 0.9597 +vn 0.1907 -0.8674 0.4596 +vn 0.6426 -0.0889 0.7610 +vn 0.7301 -0.2753 0.6255 +vn 0.2696 -0.1540 0.9506 +vn 0.7056 0.6902 0.1607 +vn 0.7465 0.2659 0.6099 +vn 0.5659 0.5713 0.5944 +vn 0.2646 0.9538 0.1421 +vn 0.0827 0.6054 0.7916 +vn 0.1877 0.8656 0.4642 +vn -0.2569 0.9581 0.1268 +vn -0.2009 0.6030 0.7721 +vn -0.2307 0.8577 0.4595 +vn -0.7075 0.6915 0.1458 +vn -0.6083 0.5176 0.6017 +vn -0.1307 0.1854 0.9739 +vn -0.6044 0.0816 0.7925 +vn -0.8663 0.1839 0.4645 +vn -0.7499 -0.2644 0.6063 +vn -0.7138 -0.6844 0.1486 +vn -0.4020 -0.5095 0.7608 +vn -0.6217 -0.6948 0.3616 +vn -0.2499 -0.9615 0.1143 +vn -0.1869 -0.8662 0.4634 +vn -0.2746 -0.8915 0.3603 +vn -0.1870 -0.6307 0.7532 +vn 0.1873 -0.6276 0.7557 +vn 0.2500 -0.9615 0.1139 +vn 0.2750 -0.8913 0.3604 +vn 0.7121 -0.6882 0.1387 +vn 0.6171 -0.6987 0.3620 +vn 0.2223 -0.1645 0.9610 +vn 0.3958 -0.5112 0.7629 +vn 0.6110 -0.4791 0.6302 +vn 0.8667 -0.1841 0.4637 +vn -0.0750 -0.3141 0.9464 +vn -0.1916 -0.4463 0.8741 +vn -0.1167 -0.6376 0.7615 +vn -0.1844 -0.8684 0.4603 +vn -0.3979 -0.3793 0.8354 +vn -0.7579 -0.2672 0.5951 +vn -0.2937 -0.0831 0.9523 +vn -0.4548 -0.1650 0.8752 +vn -0.4879 0.4218 0.7642 +vn -0.6572 0.5943 0.4635 +vn -0.0984 0.2701 0.9578 +vn -0.1606 0.4544 0.8762 +vn -0.2640 0.7558 0.5993 +vn 0.1830 0.8668 0.4638 +vn 0.1158 0.6282 0.7694 +vn 0.2132 0.2660 0.9401 +vn 0.2871 0.3941 0.8731 +vn 0.5107 0.6136 0.6022 +vn 0.3012 0.0767 0.9505 +vn 0.2754 -0.0556 0.9597 +vn 0.8674 -0.1907 0.4596 +vn 0.0889 -0.6426 0.7610 +vn 0.2753 -0.7301 0.6255 +vn 0.1540 -0.2696 0.9506 +vn -0.6902 -0.7056 0.1607 +vn -0.2659 -0.7465 0.6099 +vn -0.5713 -0.5659 0.5944 +vn -0.9538 -0.2646 0.1421 +vn -0.6054 -0.0827 0.7916 +vn -0.8656 -0.1877 0.4642 +vn -0.9581 0.2569 0.1268 +vn -0.6030 0.2009 0.7721 +vn -0.8577 0.2307 0.4595 +vn -0.6915 0.7075 0.1458 +vn -0.5176 0.6083 0.6017 +vn -0.1854 0.1307 0.9739 +vn -0.0816 0.6044 0.7925 +vn -0.1839 0.8663 0.4645 +vn 0.2644 0.7500 0.6063 +vn 0.6844 0.7138 0.1486 +vn 0.5095 0.4020 0.7608 +vn 0.6948 0.6217 0.3616 +vn 0.9615 0.2499 0.1143 +vn 0.8662 0.1869 0.4634 +vn 0.8915 0.2746 0.3603 +vn 0.6307 0.1870 0.7532 +vn 0.6276 -0.1873 0.7557 +vn 0.9615 -0.2500 0.1139 +vn 0.8913 -0.2750 0.3604 +vn 0.6882 -0.7121 0.1387 +vn 0.6987 -0.6171 0.3620 +vn 0.1645 -0.2223 0.9610 +vn 0.5112 -0.3958 0.7629 +vn 0.4791 -0.6110 0.6302 +vn 0.1841 -0.8667 0.4637 +vn -0.0750 0.3141 0.9464 +vn -0.1916 0.4463 0.8741 +vn -0.1167 0.6376 0.7615 +vn -0.1844 0.8684 0.4603 +vn -0.3979 0.3793 0.8354 +vn -0.7579 0.2672 0.5951 +vn -0.2937 0.0831 0.9523 +vn -0.4548 0.1650 0.8752 +vn -0.4879 -0.4218 0.7642 +vn -0.6572 -0.5943 0.4635 +vn -0.0984 -0.2701 0.9578 +vn -0.1606 -0.4544 0.8762 +vn -0.2640 -0.7558 0.5993 +vn 0.1830 -0.8668 0.4638 +vn 0.1158 -0.6282 0.7694 +vn 0.2132 -0.2660 0.9401 +vn 0.2871 -0.3941 0.8731 +vn 0.5107 -0.6136 0.6022 +vn 0.3012 -0.0767 0.9505 +vn 0.2754 0.0556 0.9597 +vn 0.8674 0.1907 0.4596 +vn 0.0889 0.6426 0.7610 +vn 0.2753 0.7301 0.6255 +vn 0.1540 0.2696 0.9506 +vn -0.6902 0.7056 0.1607 +vn -0.2659 0.7465 0.6099 +vn -0.5713 0.5659 0.5944 +vn -0.9538 0.2646 0.1421 +vn -0.6054 0.0827 0.7916 +vn -0.8656 0.1877 0.4642 +vn -0.9581 -0.2569 0.1268 +vn -0.6030 -0.2009 0.7721 +vn -0.8577 -0.2307 0.4595 +vn -0.6915 -0.7075 0.1458 +vn -0.5176 -0.6083 0.6017 +vn -0.1854 -0.1307 0.9739 +vn -0.0816 -0.6044 0.7925 +vn -0.1839 -0.8663 0.4645 +vn 0.2644 -0.7500 0.6063 +vn 0.6844 -0.7138 0.1486 +vn 0.5095 -0.4020 0.7608 +vn 0.6948 -0.6217 0.3616 +vn 0.9615 -0.2499 0.1143 +vn 0.8662 -0.1869 0.4634 +vn 0.8915 -0.2746 0.3603 +vn 0.6307 -0.1870 0.7532 +vn 0.6276 0.1873 0.7557 +vn 0.9615 0.2500 0.1139 +vn 0.8913 0.2750 0.3604 +vn 0.6882 0.7121 0.1387 +vn 0.6987 0.6171 0.3620 +vn 0.1645 0.2223 0.9610 +vn 0.5112 0.3958 0.7629 +vn 0.4791 0.6110 0.6302 +vn 0.1841 0.8667 0.4637 +s 0 +f 1367//116 1366//116 1368//116 +f 1365//116 1367//116 1368//116 +f 1368//116 1443//116 1365//116 +f 1368//117 1366//117 1362//117 +f 1443//116 2128//116 1365//116 +f 1436//117 1441//117 1364//117 +f 1364//117 1441//117 1363//117 +f 1368//117 1362//117 1363//117 +f 1441//117 1368//117 1363//117 +f 1396//118 1391//118 1424//118 +f 1424//119 1391//119 1389//119 +f 1424//120 1389//120 1388//120 +f 1388//121 1390//121 1425//121 +f 1389//122 1391//122 1392//122 +f 1392//123 1394//123 1393//123 +f 1396//124 1397//124 1391//124 +f 1391//125 1397//125 1392//125 +f 1400//126 1401//126 1398//126 +f 1398//127 1402//127 1399//127 +f 1423//128 1406//128 1400//128 +f 1400//129 1406//129 1401//129 +f 1401//130 1403//130 1402//130 +f 1403//131 1408//131 1404//131 +f 1406//132 1407//132 1403//132 +f 1423//133 1410//133 1406//133 +f 1406//134 1410//134 1407//134 +f 1407//135 1411//135 1408//135 +f 1423//136 1414//136 1410//136 +f 1423//137 1417//137 1414//137 +f 1415//138 1418//138 1416//138 +f 1421//139 1424//139 1388//139 +f 1421//140 1388//140 1422//140 +f 1396//141 1424//141 1421//141 +f 1446//117 1451//117 1447//117 1353//117 +f 1446//116 1353//116 1354//116 1357//116 1360//116 +f 1356//117 1359//117 1361//117 1358//117 1355//117 +f 1372//142 1373//142 1413//142 1382//142 +f 1379//143 1380//143 1387//143 1386//143 +f 1369//144 1370//144 1381//144 1426//144 +f 1376//145 1377//145 1384//145 1383//145 +f 1373//146 1374//146 1409//146 1413//146 +f 1380//147 1369//147 1426//147 1387//147 +f 1370//148 1371//148 1420//148 1381//148 +f 1377//149 1378//149 1385//149 1384//149 +f 1374//150 1375//150 1405//150 1409//150 +f 1371//151 1372//151 1382//151 1420//151 +f 1378//152 1379//152 1386//152 1385//152 +f 1375//153 1376//153 1383//153 1405//153 +f 1387//154 1426//154 1425//154 1390//154 +f 1393//155 1386//155 1387//155 1390//155 +f 1388//156 1389//156 1390//156 +f 1393//157 1390//157 1389//157 1392//157 +f 1385//158 1386//158 1393//158 1395//158 +f 1392//159 1397//159 1394//159 +f 1393//160 1394//160 1395//160 +f 1384//161 1385//161 1395//161 1399//161 +f 1398//162 1394//162 1397//162 1400//162 +f 1399//163 1395//163 1394//163 1398//163 +f 1383//164 1384//164 1399//164 1402//164 +f 1398//165 1401//165 1402//165 +f 1423//166 1400//166 1397//166 1396//166 +f 1405//167 1383//167 1402//167 1404//167 +f 1409//168 1405//168 1404//168 1408//168 +f 1401//169 1406//169 1403//169 +f 1402//170 1403//170 1404//170 +f 1403//171 1407//171 1408//171 +f 1412//172 1413//172 1409//172 1408//172 +f 1407//173 1410//173 1411//173 +f 1408//174 1411//174 1412//174 +f 1382//175 1413//175 1412//175 1416//175 +f 1411//176 1415//176 1416//176 +f 1412//177 1411//177 1416//177 +f 1414//178 1415//178 1411//178 1410//178 +f 1418//179 1415//179 1414//179 1417//179 +f 1420//180 1382//180 1416//180 1419//180 +f 1416//181 1418//181 1419//181 +f 1381//182 1420//182 1419//182 1422//182 +f 1419//183 1418//183 1422//183 +f 1396//184 1421//184 1417//184 1423//184 +f 1426//185 1381//185 1422//185 1425//185 +f 1418//186 1417//186 1421//186 +f 1418//187 1421//187 1422//187 +f 1422//188 1388//188 1425//188 +f 1431//189 1427//189 1430//189 1434//189 +f 1440//190 2128//190 1443//190 1442//190 +f 1442//189 1437//189 1440//189 +f 1436//189 1439//189 1441//189 +f 1439//189 1438//189 1441//189 +f 1442//189 1438//189 1437//189 +f 1441//189 1438//189 1442//189 +f 1429//189 1428//189 1432//189 1435//189 1433//189 +f 1733//117 1444//117 1445//117 1736//117 +f 1444//116 1735//116 1738//116 1445//116 +f 1463//189 1464//189 1462//189 +f 1461//189 1464//189 1463//189 +f 1464//189 1461//189 1539//189 +f 1464//117 1458//117 1462//117 +f 1539//189 1461//189 1537//189 +f 1457//117 1460//117 1536//117 +f 1460//117 1459//117 1536//117 +f 1464//117 1459//117 1458//117 +f 1536//117 1459//117 1464//117 +f 1492//191 1520//191 1487//191 +f 1520//192 1485//192 1487//192 +f 1520//193 1484//193 1485//193 +f 1484//194 1521//194 1486//194 +f 1485//195 1488//195 1487//195 +f 1488//196 1489//196 1490//196 +f 1492//197 1487//197 1493//197 +f 1487//198 1488//198 1493//198 +f 1496//199 1494//199 1497//199 +f 1494//200 1495//200 1498//200 +f 1519//201 1496//201 1502//201 +f 1496//202 1497//202 1502//202 +f 1497//203 1498//203 1499//203 +f 1499//204 1500//204 1504//204 +f 1502//205 1499//205 1503//205 +f 1519//206 1502//206 1506//206 +f 1502//207 1503//207 1506//207 +f 1503//208 1504//208 1507//208 +f 1519//209 1506//209 1510//209 +f 1519//210 1510//210 1513//210 +f 1511//211 1512//211 1514//211 +f 1517//212 1484//212 1520//212 +f 1517//213 1518//213 1484//213 +f 1492//214 1517//214 1520//214 +f 1451//189 1455//189 1452//189 1448//189 1447//189 +f 1450//117 1449//117 1453//117 1456//117 1454//117 +f 1468//151 1478//151 1509//151 1469//151 +f 1475//145 1482//145 1483//145 1476//145 +f 1465//150 1522//150 1477//150 1466//150 +f 1472//143 1479//143 1480//143 1473//143 +f 1469//148 1509//148 1505//148 1470//148 +f 1476//153 1483//153 1522//153 1465//153 +f 1466//146 1477//146 1516//146 1467//146 +f 1473//152 1480//152 1481//152 1474//152 +f 1470//144 1505//144 1501//144 1471//144 +f 1467//142 1516//142 1478//142 1468//142 +f 1474//149 1481//149 1482//149 1475//149 +f 1471//147 1501//147 1479//147 1472//147 +f 1483//215 1486//215 1521//215 1522//215 +f 1489//216 1486//216 1483//216 1482//216 +f 1484//217 1486//217 1485//217 +f 1489//218 1488//218 1485//218 1486//218 +f 1481//219 1491//219 1489//219 1482//219 +f 1488//220 1490//220 1493//220 +f 1489//221 1491//221 1490//221 +f 1480//222 1495//222 1491//222 1481//222 +f 1494//223 1496//223 1493//223 1490//223 +f 1495//224 1494//224 1490//224 1491//224 +f 1479//225 1498//225 1495//225 1480//225 +f 1494//226 1498//226 1497//226 +f 1519//227 1492//227 1493//227 1496//227 +f 1501//228 1500//228 1498//228 1479//228 +f 1505//229 1504//229 1500//229 1501//229 +f 1497//230 1499//230 1502//230 +f 1498//231 1500//231 1499//231 +f 1499//232 1504//232 1503//232 +f 1508//233 1504//233 1505//233 1509//233 +f 1503//234 1507//234 1506//234 +f 1504//235 1508//235 1507//235 +f 1478//236 1512//236 1508//236 1509//236 +f 1507//237 1512//237 1511//237 +f 1508//238 1512//238 1507//238 +f 1510//239 1506//239 1507//239 1511//239 +f 1514//240 1513//240 1510//240 1511//240 +f 1516//241 1515//241 1512//241 1478//241 +f 1512//242 1515//242 1514//242 +f 1477//243 1518//243 1515//243 1516//243 +f 1515//244 1518//244 1514//244 +f 1492//245 1519//245 1513//245 1517//245 +f 1522//246 1521//246 1518//246 1477//246 +f 1514//247 1517//247 1513//247 +f 1514//248 1518//248 1517//248 +f 1518//249 1521//249 1484//249 +f 1527//116 1530//116 1526//116 1523//116 +f 1558//116 1632//116 1629//116 1631//116 +f 1539//190 1537//190 1535//190 1538//190 +f 1538//116 1535//116 1532//116 +f 1457//116 1536//116 1534//116 +f 1534//116 1536//116 1533//116 +f 1538//116 1532//116 1533//116 +f 1536//116 1538//116 1533//116 +f 1525//116 1529//116 1531//116 1528//116 1524//116 +f 2024//117 2027//117 1541//117 1540//117 +f 1540//189 1541//189 2029//189 2026//189 +f 1556//117 1555//117 1557//117 +f 2126//117 1556//117 1557//117 +f 1557//117 1558//117 2126//117 +f 1557//189 1555//189 1552//189 +f 1558//117 1631//117 2126//117 +f 1551//189 1630//189 1554//189 +f 1554//189 1630//189 1553//189 +f 1557//189 1552//189 1553//189 +f 1630//189 1557//189 1553//189 +f 1586//250 1581//250 1614//250 +f 1614//251 1581//251 1579//251 +f 1614//252 1579//252 1578//252 +f 1578//253 1580//253 1615//253 +f 1579//254 1581//254 1582//254 +f 1582//255 1584//255 1583//255 +f 1586//256 1587//256 1581//256 +f 1581//257 1587//257 1582//257 +f 1590//258 1591//258 1588//258 +f 1588//259 1592//259 1589//259 +f 1613//260 1596//260 1590//260 +f 1590//261 1596//261 1591//261 +f 1591//262 1593//262 1592//262 +f 1593//263 1598//263 1594//263 +f 1596//264 1597//264 1593//264 +f 1613//265 1600//265 1596//265 +f 1596//266 1600//266 1597//266 +f 1597//267 1601//267 1598//267 +f 1613//268 1604//268 1600//268 +f 1613//269 1607//269 1604//269 +f 1605//270 1608//270 1606//270 +f 1611//271 1614//271 1578//271 +f 1611//272 1578//272 1612//272 +f 1586//273 1614//273 1611//273 +f 1639//189 1542//189 1640//189 1641//189 +f 1639//117 1641//117 1543//117 1546//117 1549//117 +f 1545//189 1548//189 1550//189 1547//189 1544//189 +f 1562//153 1563//153 1603//153 1572//153 +f 1569//148 1570//148 1577//148 1576//148 +f 1559//142 1560//142 1571//142 1616//142 +f 1566//143 1567//143 1574//143 1573//143 +f 1563//145 1564//145 1599//145 1603//145 +f 1570//151 1559//151 1616//151 1577//151 +f 1560//146 1561//146 1610//146 1571//146 +f 1567//147 1568//147 1575//147 1574//147 +f 1564//149 1565//149 1595//149 1599//149 +f 1561//150 1562//150 1572//150 1610//150 +f 1568//144 1569//144 1576//144 1575//144 +f 1565//152 1566//152 1573//152 1595//152 +f 1577//274 1616//274 1615//274 1580//274 +f 1583//275 1576//275 1577//275 1580//275 +f 1578//276 1579//276 1580//276 +f 1583//277 1580//277 1579//277 1582//277 +f 1575//278 1576//278 1583//278 1585//278 +f 1582//279 1587//279 1584//279 +f 1583//280 1584//280 1585//280 +f 1574//281 1575//281 1585//281 1589//281 +f 1588//282 1584//282 1587//282 1590//282 +f 1589//283 1585//283 1584//283 1588//283 +f 1573//284 1574//284 1589//284 1592//284 +f 1588//285 1591//285 1592//285 +f 1613//286 1590//286 1587//286 1586//286 +f 1595//287 1573//287 1592//287 1594//287 +f 1599//288 1595//288 1594//288 1598//288 +f 1591//289 1596//289 1593//289 +f 1592//290 1593//290 1594//290 +f 1593//291 1597//291 1598//291 +f 1602//292 1603//292 1599//292 1598//292 +f 1597//293 1600//293 1601//293 +f 1598//294 1601//294 1602//294 +f 1572//295 1603//295 1602//295 1606//295 +f 1601//296 1605//296 1606//296 +f 1602//297 1601//297 1606//297 +f 1604//298 1605//298 1601//298 1600//298 +f 1608//299 1605//299 1604//299 1607//299 +f 1610//300 1572//300 1606//300 1609//300 +f 1606//301 1608//301 1609//301 +f 1571//302 1610//302 1609//302 1612//302 +f 1609//303 1608//303 1612//303 +f 1586//304 1611//304 1607//304 1613//304 +f 1616//305 1571//305 1612//305 1615//305 +f 1608//306 1607//306 1611//306 +f 1608//307 1611//307 1612//307 +f 1612//308 1578//308 1615//308 +f 1621//190 1617//190 1620//190 1624//190 +f 1632//190 1626//190 1629//190 +f 1551//190 1628//190 1630//190 +f 1628//190 1627//190 1630//190 +f 1632//190 1627//190 1626//190 +f 1630//190 1627//190 1632//190 +f 1619//190 1618//190 1622//190 1625//190 1623//190 +f 1633//189 1634//189 1637//189 1636//189 +f 1634//117 1635//117 1638//117 1637//117 +f 1655//190 1656//190 1654//190 +f 1653//190 1656//190 1655//190 +f 1656//190 1653//190 1732//190 +f 1656//189 1650//189 1654//189 +f 1732//190 1653//190 1730//190 +f 1724//189 1652//189 1729//189 +f 1652//189 1651//189 1729//189 +f 1656//189 1651//189 1650//189 +f 1729//189 1651//189 1656//189 +f 1684//309 1712//309 1679//309 +f 1712//310 1677//310 1679//310 +f 1712//311 1676//311 1677//311 +f 1676//312 1713//312 1678//312 +f 1677//313 1680//313 1679//313 +f 1680//314 1681//314 1682//314 +f 1684//315 1679//315 1685//315 +f 1679//316 1680//316 1685//316 +f 1688//317 1686//317 1689//317 +f 1686//318 1687//318 1690//318 +f 1711//319 1688//319 1694//319 +f 1688//320 1689//320 1694//320 +f 1689//321 1690//321 1691//321 +f 1691//322 1692//322 1696//322 +f 1694//323 1691//323 1695//323 +f 1711//324 1694//324 1698//324 +f 1694//325 1695//325 1698//325 +f 1695//326 1696//326 1699//326 +f 1711//327 1698//327 1702//327 +f 1711//328 1702//328 1705//328 +f 1703//329 1704//329 1706//329 +f 1709//330 1676//330 1712//330 +f 1709//331 1710//331 1676//331 +f 1684//332 1709//332 1712//332 +f 1542//190 1648//190 1645//190 1642//190 1640//190 +f 1644//189 1643//189 1646//189 1649//189 1647//189 +f 1660//150 1670//150 1701//150 1661//150 +f 1667//143 1674//143 1675//143 1668//143 +f 1657//149 1714//149 1669//149 1658//149 +f 1664//148 1671//148 1672//148 1665//148 +f 1661//146 1701//146 1697//146 1662//146 +f 1668//152 1675//152 1714//152 1657//152 +f 1658//145 1669//145 1708//145 1659//145 +f 1665//144 1672//144 1673//144 1666//144 +f 1662//142 1697//142 1693//142 1663//142 +f 1659//153 1708//153 1670//153 1660//153 +f 1666//147 1673//147 1674//147 1667//147 +f 1663//151 1693//151 1671//151 1664//151 +f 1675//333 1678//333 1713//333 1714//333 +f 1681//334 1678//334 1675//334 1674//334 +f 1676//335 1678//335 1677//335 +f 1681//336 1680//336 1677//336 1678//336 +f 1673//337 1683//337 1681//337 1674//337 +f 1680//338 1682//338 1685//338 +f 1681//339 1683//339 1682//339 +f 1672//340 1687//340 1683//340 1673//340 +f 1686//341 1688//341 1685//341 1682//341 +f 1687//342 1686//342 1682//342 1683//342 +f 1671//343 1690//343 1687//343 1672//343 +f 1686//344 1690//344 1689//344 +f 1711//345 1684//345 1685//345 1688//345 +f 1693//346 1692//346 1690//346 1671//346 +f 1697//347 1696//347 1692//347 1693//347 +f 1689//348 1691//348 1694//348 +f 1690//349 1692//349 1691//349 +f 1691//350 1696//350 1695//350 +f 1700//351 1696//351 1697//351 1701//351 +f 1695//352 1699//352 1698//352 +f 1696//353 1700//353 1699//353 +f 1670//354 1704//354 1700//354 1701//354 +f 1699//355 1704//355 1703//355 +f 1700//356 1704//356 1699//356 +f 1702//357 1698//357 1699//357 1703//357 +f 1706//358 1705//358 1702//358 1703//358 +f 1708//359 1707//359 1704//359 1670//359 +f 1704//360 1707//360 1706//360 +f 1669//361 1710//361 1707//361 1708//361 +f 1707//362 1710//362 1706//362 +f 1684//363 1711//363 1705//363 1709//363 +f 1714//364 1713//364 1710//364 1669//364 +f 1706//365 1709//365 1705//365 +f 1706//366 1710//366 1709//366 +f 1710//367 1713//367 1676//367 +f 1719//117 1722//117 1718//117 1715//117 +f 1732//116 1730//116 1728//116 1731//116 +f 1731//117 1728//117 1725//117 +f 1724//117 1729//117 1727//117 +f 1727//117 1729//117 1726//117 +f 1731//117 1725//117 1726//117 +f 1729//117 1731//117 1726//117 +f 1717//117 1721//117 1723//117 1720//117 1716//117 +f 1733//189 1736//189 1737//189 1734//189 +f 1734//190 1737//190 1738//190 1735//190 +f 1756//189 1755//189 1757//189 +f 1754//189 1756//189 1757//189 +f 1757//189 1833//189 1754//189 +f 1757//190 1755//190 1751//190 +f 1833//189 1831//189 1754//189 +f 1825//190 1830//190 1753//190 +f 1753//190 1830//190 1752//190 +f 1757//190 1751//190 1752//190 +f 1830//190 1757//190 1752//190 +f 1785//368 1780//368 1813//368 +f 1813//369 1780//369 1778//369 +f 1813//370 1778//370 1777//370 +f 1777//371 1779//371 1814//371 +f 1778//372 1780//372 1781//372 +f 1781//373 1783//373 1782//373 +f 1785//374 1786//374 1780//374 +f 1780//375 1786//375 1781//375 +f 1789//376 1790//376 1787//376 +f 1787//377 1791//377 1788//377 +f 1812//378 1795//378 1789//378 +f 1789//379 1795//379 1790//379 +f 1790//380 1792//380 1791//380 +f 1792//381 1797//381 1793//381 +f 1795//382 1796//382 1792//382 +f 1812//383 1799//383 1795//383 +f 1795//384 1799//384 1796//384 +f 1796//385 1800//385 1797//385 +f 1812//386 1803//386 1799//386 +f 1812//387 1806//387 1803//387 +f 1804//388 1807//388 1805//388 +f 1810//389 1813//389 1777//389 +f 1810//390 1777//390 1811//390 +f 1785//391 1813//391 1810//391 +f 1745//190 1739//190 1741//190 1740//190 +f 1745//189 1740//189 1742//189 1746//189 1749//189 +f 1744//190 1748//190 1750//190 1747//190 1743//190 +f 1761//152 1762//152 1802//152 1771//152 +f 1768//146 1769//146 1776//146 1775//146 +f 1758//153 1759//153 1770//153 1815//153 +f 1765//148 1766//148 1773//148 1772//148 +f 1762//143 1763//143 1798//143 1802//143 +f 1769//150 1758//150 1815//150 1776//150 +f 1759//145 1760//145 1809//145 1770//145 +f 1766//151 1767//151 1774//151 1773//151 +f 1763//147 1764//147 1794//147 1798//147 +f 1760//149 1761//149 1771//149 1809//149 +f 1767//142 1768//142 1775//142 1774//142 +f 1764//144 1765//144 1772//144 1794//144 +f 1776//168 1815//168 1814//168 1779//168 +f 1782//392 1775//392 1776//392 1779//392 +f 1777//393 1778//393 1779//393 +f 1782//394 1779//394 1778//394 1781//394 +f 1774//395 1775//395 1782//395 1784//395 +f 1781//396 1786//396 1783//396 +f 1782//397 1783//397 1784//397 +f 1773//398 1774//398 1784//398 1788//398 +f 1787//399 1783//399 1786//399 1789//399 +f 1788//400 1784//400 1783//400 1787//400 +f 1772//401 1773//401 1788//401 1791//401 +f 1787//402 1790//402 1791//402 +f 1812//403 1789//403 1786//403 1785//403 +f 1794//185 1772//185 1791//185 1793//185 +f 1798//154 1794//154 1793//154 1797//154 +f 1790//404 1795//404 1792//404 +f 1791//405 1792//405 1793//405 +f 1792//406 1796//406 1797//406 +f 1801//407 1802//407 1798//407 1797//407 +f 1796//408 1799//408 1800//408 +f 1797//409 1800//409 1801//409 +f 1771//410 1802//410 1801//410 1805//410 +f 1800//411 1804//411 1805//411 +f 1801//412 1800//412 1805//412 +f 1803//413 1804//413 1800//413 1799//413 +f 1807//414 1804//414 1803//414 1806//414 +f 1809//415 1771//415 1805//415 1808//415 +f 1805//416 1807//416 1808//416 +f 1770//417 1809//417 1808//417 1811//417 +f 1808//418 1807//418 1811//418 +f 1785//419 1810//419 1806//419 1812//419 +f 1815//167 1770//167 1811//167 1814//167 +f 1807//420 1806//420 1810//420 +f 1807//421 1810//421 1811//421 +f 1811//422 1777//422 1814//422 +f 1820//116 1816//116 1819//116 1823//116 +f 1829//117 1831//117 1833//117 1832//117 +f 1832//116 1826//116 1829//116 +f 1825//116 1828//116 1830//116 +f 1828//116 1827//116 1830//116 +f 1832//116 1827//116 1826//116 +f 1830//116 1827//116 1832//116 +f 1818//116 1817//116 1821//116 1824//116 1822//116 +f 2121//190 1834//190 1836//190 1835//190 +f 1834//189 2123//189 2125//189 1836//189 +f 1850//116 1851//116 1849//116 +f 1848//116 1851//116 1850//116 +f 1851//116 1848//116 1926//116 +f 1851//190 1845//190 1849//190 +f 1926//116 1848//116 2127//116 +f 1919//190 1847//190 1924//190 +f 1847//190 1846//190 1924//190 +f 1851//190 1846//190 1845//190 +f 1924//190 1846//190 1851//190 +f 1879//423 1907//423 1874//423 +f 1907//424 1872//424 1874//424 +f 1907//425 1871//425 1872//425 +f 1871//426 1908//426 1873//426 +f 1872//427 1875//427 1874//427 +f 1875//428 1876//428 1877//428 +f 1879//429 1874//429 1880//429 +f 1874//430 1875//430 1880//430 +f 1883//431 1881//431 1884//431 +f 1881//432 1882//432 1885//432 +f 1906//433 1883//433 1889//433 +f 1883//434 1884//434 1889//434 +f 1884//435 1885//435 1886//435 +f 1886//436 1887//436 1891//436 +f 1889//437 1886//437 1890//437 +f 1906//438 1889//438 1893//438 +f 1889//439 1890//439 1893//439 +f 1890//440 1891//440 1894//440 +f 1906//441 1893//441 1897//441 +f 1906//442 1897//442 1900//442 +f 1898//443 1899//443 1901//443 +f 1904//444 1871//444 1907//444 +f 1904//445 1905//445 1871//445 +f 1879//446 1904//446 1907//446 +f 1739//116 1843//116 1840//116 1837//116 1741//116 +f 1839//190 1838//190 1841//190 1844//190 1842//190 +f 1855//149 1865//149 1896//149 1856//149 +f 1862//148 1869//148 1870//148 1863//148 +f 1852//147 1909//147 1864//147 1853//147 +f 1859//146 1866//146 1867//146 1860//146 +f 1856//145 1896//145 1892//145 1857//145 +f 1863//144 1870//144 1909//144 1852//144 +f 1853//143 1864//143 1903//143 1854//143 +f 1860//142 1867//142 1868//142 1861//142 +f 1857//153 1892//153 1888//153 1858//153 +f 1854//152 1903//152 1865//152 1855//152 +f 1861//151 1868//151 1869//151 1862//151 +f 1858//150 1888//150 1866//150 1859//150 +f 1870//229 1873//229 1908//229 1909//229 +f 1876//447 1873//447 1870//447 1869//447 +f 1871//448 1873//448 1872//448 +f 1876//449 1875//449 1872//449 1873//449 +f 1868//450 1878//450 1876//450 1869//450 +f 1875//451 1877//451 1880//451 +f 1876//452 1878//452 1877//452 +f 1867//453 1882//453 1878//453 1868//453 +f 1881//454 1883//454 1880//454 1877//454 +f 1882//455 1881//455 1877//455 1878//455 +f 1866//456 1885//456 1882//456 1867//456 +f 1881//457 1885//457 1884//457 +f 1906//458 1879//458 1880//458 1883//458 +f 1888//246 1887//246 1885//246 1866//246 +f 1892//215 1891//215 1887//215 1888//215 +f 1884//459 1886//459 1889//459 +f 1885//460 1887//460 1886//460 +f 1886//461 1891//461 1890//461 +f 1895//462 1891//462 1892//462 1896//462 +f 1890//463 1894//463 1893//463 +f 1891//464 1895//464 1894//464 +f 1865//465 1899//465 1895//465 1896//465 +f 1894//466 1899//466 1898//466 +f 1895//467 1899//467 1894//467 +f 1897//468 1893//468 1894//468 1898//468 +f 1901//469 1900//469 1897//469 1898//469 +f 1903//470 1902//470 1899//470 1865//470 +f 1899//471 1902//471 1901//471 +f 1864//472 1905//472 1902//472 1903//472 +f 1902//473 1905//473 1901//473 +f 1879//474 1906//474 1900//474 1904//474 +f 1909//228 1908//228 1905//228 1864//228 +f 1901//475 1904//475 1900//475 +f 1901//476 1905//476 1904//476 +f 1905//477 1908//477 1871//477 +f 1914//189 1917//189 1913//189 1910//189 +f 1926//117 2127//117 1923//117 1925//117 +f 1925//189 1923//189 1920//189 +f 1919//189 1924//189 1922//189 +f 1922//189 1924//189 1921//189 +f 1925//189 1920//189 1921//189 +f 1924//189 1925//189 1921//189 +f 1912//189 1916//189 1918//189 1915//189 1911//189 +f 1633//190 1636//190 1928//190 1927//190 +f 1927//116 1928//116 1638//116 1635//116 +f 1946//190 1945//190 1948//190 +f 1944//190 1946//190 1948//190 +f 1948//190 2023//190 1944//190 +f 1948//116 1945//116 1941//116 +f 2023//190 2021//190 1944//190 +f 2016//116 1947//116 1943//116 +f 1943//116 1947//116 1942//116 +f 1948//116 1941//116 1942//116 +f 1947//116 1948//116 1942//116 +f 1976//478 1971//478 2004//478 +f 2004//479 1971//479 1969//479 +f 2004//480 1969//480 1968//480 +f 1968//481 1970//481 2005//481 +f 1969//482 1971//482 1972//482 +f 1972//483 1974//483 1973//483 +f 1976//484 1977//484 1971//484 +f 1971//485 1977//485 1972//485 +f 1980//486 1981//486 1978//486 +f 1978//487 1982//487 1979//487 +f 2003//488 1986//488 1980//488 +f 1980//489 1986//489 1981//489 +f 1981//490 1983//490 1982//490 +f 1983//491 1988//491 1984//491 +f 1986//492 1987//492 1983//492 +f 2003//493 1990//493 1986//493 +f 1986//494 1990//494 1987//494 +f 1987//495 1991//495 1988//495 +f 2003//496 1994//496 1990//496 +f 2003//497 1997//497 1994//497 +f 1995//498 1998//498 1996//498 +f 2001//499 2004//499 1968//499 +f 2001//500 1968//500 2002//500 +f 1976//501 2004//501 2001//501 +f 1935//116 1929//116 1931//116 1930//116 +f 1935//190 1930//190 1932//190 1936//190 1939//190 +f 1934//116 1938//116 1940//116 1937//116 1933//116 +f 1952//144 1953//144 1993//144 1962//144 +f 1959//145 1960//145 1967//145 1966//145 +f 1949//152 1950//152 1961//152 2006//152 +f 1956//146 1957//146 1964//146 1963//146 +f 1953//148 1954//148 1989//148 1993//148 +f 1960//149 1949//149 2006//149 1967//149 +f 1950//143 1951//143 2000//143 1961//143 +f 1957//150 1958//150 1965//150 1964//150 +f 1954//151 1955//151 1985//151 1989//151 +f 1951//147 1952//147 1962//147 2000//147 +f 1958//153 1959//153 1966//153 1965//153 +f 1955//142 1956//142 1963//142 1985//142 +f 1967//288 2006//288 2005//288 1970//288 +f 1973//502 1966//502 1967//502 1970//502 +f 1968//503 1969//503 1970//503 +f 1973//504 1970//504 1969//504 1972//504 +f 1965//505 1966//505 1973//505 1975//505 +f 1972//506 1977//506 1974//506 +f 1973//507 1974//507 1975//507 +f 1964//508 1965//508 1975//508 1979//508 +f 1978//509 1974//509 1977//509 1980//509 +f 1979//510 1975//510 1974//510 1978//510 +f 1963//511 1964//511 1979//511 1982//511 +f 1978//512 1981//512 1982//512 +f 2003//513 1980//513 1977//513 1976//513 +f 1985//305 1963//305 1982//305 1984//305 +f 1989//274 1985//274 1984//274 1988//274 +f 1981//514 1986//514 1983//514 +f 1982//515 1983//515 1984//515 +f 1983//516 1987//516 1988//516 +f 1992//517 1993//517 1989//517 1988//517 +f 1987//518 1990//518 1991//518 +f 1988//519 1991//519 1992//519 +f 1962//520 1993//520 1992//520 1996//520 +f 1991//521 1995//521 1996//521 +f 1992//522 1991//522 1996//522 +f 1994//523 1995//523 1991//523 1990//523 +f 1998//524 1995//524 1994//524 1997//524 +f 2000//525 1962//525 1996//525 1999//525 +f 1996//526 1998//526 1999//526 +f 1961//527 2000//527 1999//527 2002//527 +f 1999//528 1998//528 2002//528 +f 1976//529 2001//529 1997//529 2003//529 +f 2006//287 1961//287 2002//287 2005//287 +f 1998//530 1997//530 2001//530 +f 1998//531 2001//531 2002//531 +f 2002//532 1968//532 2005//532 +f 2011//117 2007//117 2010//117 2014//117 +f 2020//189 2021//189 2023//189 2022//189 +f 2022//117 2017//117 2020//117 +f 2016//117 2019//117 1947//117 +f 2019//117 2018//117 1947//117 +f 2022//117 2018//117 2017//117 +f 1947//117 2018//117 2022//117 +f 2009//117 2008//117 2012//117 2015//117 2013//117 +f 2024//116 2025//116 2028//116 2027//116 +f 2025//190 2026//190 2029//190 2028//190 +f 2043//117 2044//117 2042//117 +f 2041//117 2044//117 2043//117 +f 2044//117 2041//117 2120//117 +f 2044//116 2038//116 2042//116 +f 2120//117 2041//117 2118//117 +f 2112//116 2040//116 2117//116 +f 2040//116 2039//116 2117//116 +f 2044//116 2039//116 2038//116 +f 2117//116 2039//116 2044//116 +f 2072//533 2100//533 2067//533 +f 2100//534 2065//534 2067//534 +f 2100//535 2064//535 2065//535 +f 2064//536 2101//536 2066//536 +f 2065//537 2068//537 2067//537 +f 2068//538 2069//538 2070//538 +f 2072//539 2067//539 2073//539 +f 2067//540 2068//540 2073//540 +f 2076//541 2074//541 2077//541 +f 2074//542 2075//542 2078//542 +f 2099//543 2076//543 2082//543 +f 2076//544 2077//544 2082//544 +f 2077//545 2078//545 2079//545 +f 2079//546 2080//546 2084//546 +f 2082//547 2079//547 2083//547 +f 2099//548 2082//548 2086//548 +f 2082//549 2083//549 2086//549 +f 2083//550 2084//550 2087//550 +f 2099//551 2086//551 2090//551 +f 2099//552 2090//552 2093//552 +f 2091//553 2092//553 2094//553 +f 2097//554 2064//554 2100//554 +f 2097//555 2098//555 2064//555 +f 2072//556 2097//556 2100//556 +f 1929//117 2036//117 2033//117 2030//117 1931//117 +f 2032//116 2031//116 2034//116 2037//116 2035//116 +f 2048//147 2058//147 2089//147 2049//147 +f 2055//146 2062//146 2063//146 2056//146 +f 2045//151 2102//151 2057//151 2046//151 +f 2052//145 2059//145 2060//145 2053//145 +f 2049//143 2089//143 2085//143 2050//143 +f 2056//142 2063//142 2102//142 2045//142 +f 2046//148 2057//148 2096//148 2047//148 +f 2053//153 2060//153 2061//153 2054//153 +f 2050//152 2085//152 2081//152 2051//152 +f 2047//144 2096//144 2058//144 2048//144 +f 2054//150 2061//150 2062//150 2055//150 +f 2051//149 2081//149 2059//149 2052//149 +f 2063//347 2066//347 2101//347 2102//347 +f 2069//557 2066//557 2063//557 2062//557 +f 2064//558 2066//558 2065//558 +f 2069//559 2068//559 2065//559 2066//559 +f 2061//560 2071//560 2069//560 2062//560 +f 2068//561 2070//561 2073//561 +f 2069//562 2071//562 2070//562 +f 2060//563 2075//563 2071//563 2061//563 +f 2074//564 2076//564 2073//564 2070//564 +f 2075//565 2074//565 2070//565 2071//565 +f 2059//566 2078//566 2075//566 2060//566 +f 2074//567 2078//567 2077//567 +f 2099//568 2072//568 2073//568 2076//568 +f 2081//364 2080//364 2078//364 2059//364 +f 2085//333 2084//333 2080//333 2081//333 +f 2077//569 2079//569 2082//569 +f 2078//570 2080//570 2079//570 +f 2079//571 2084//571 2083//571 +f 2088//572 2084//572 2085//572 2089//572 +f 2083//573 2087//573 2086//573 +f 2084//574 2088//574 2087//574 +f 2058//575 2092//575 2088//575 2089//575 +f 2087//576 2092//576 2091//576 +f 2088//577 2092//577 2087//577 +f 2090//578 2086//578 2087//578 2091//578 +f 2094//579 2093//579 2090//579 2091//579 +f 2096//580 2095//580 2092//580 2058//580 +f 2092//581 2095//581 2094//581 +f 2057//582 2098//582 2095//582 2096//582 +f 2095//583 2098//583 2094//583 +f 2072//584 2099//584 2093//584 2097//584 +f 2102//346 2101//346 2098//346 2057//346 +f 2094//585 2097//585 2093//585 +f 2094//586 2098//586 2097//586 +f 2098//587 2101//587 2064//587 +f 2107//190 2110//190 2106//190 2103//190 +f 2120//189 2118//189 2116//189 2119//189 +f 2119//190 2116//190 2113//190 +f 2112//190 2117//190 2115//190 +f 2115//190 2117//190 2114//190 +f 2119//190 2113//190 2114//190 +f 2117//190 2119//190 2114//190 +f 2105//190 2109//190 2111//190 2108//190 2104//190 +f 2121//116 1835//116 2124//116 2122//116 +f 2122//117 2124//117 2125//117 2123//117 diff --git a/assets/voxygen/lod/baobab.obj b/assets/voxygen/lod/baobab.obj new file mode 100644 index 0000000..be86055 --- /dev/null +++ b/assets/voxygen/lod/baobab.obj @@ -0,0 +1,559 @@ +# Blender 4.0.2 +# www.blender.org +o 125_60_6 +v 14.969677 -3.812676 35.290047 +v 4.851188 4.819232 29.566698 +v 13.307379 -3.540274 35.321903 +v 2.369311 -0.436507 32.314625 +v 14.251145 -5.043365 33.838230 +v 4.343082 -4.614432 30.261148 +v 1.418396 -6.619644 29.976076 +v -3.141410 -5.770157 29.952829 +v -6.227444 -1.418683 30.878174 +v -6.493672 1.404912 29.879585 +v -0.894607 9.054344 -10.107412 +v -5.671045 7.046465 -10.003319 +v -4.217145 5.236399 29.390459 +v -8.757381 2.720860 -10.046740 +v -8.649010 -2.665020 -9.998542 +v -2.714164 3.219950 31.645542 +v -5.836690 -7.010048 -10.087782 +v -0.052619 -9.085788 -10.030698 +v 5.135946 -7.563966 -9.982067 +v 6.586511 6.586511 -10.038475 +v 14.396510 -1.692738 35.607113 +v 9.006783 -1.796626 -10.147390 +v 16.397644 -3.751745 33.570240 +v -5.554547 13.689076 35.230385 +v -3.812683 13.833370 34.486759 +v -4.654593 14.754312 32.756943 +v -7.450414 12.462431 33.966053 +v -6.479888 13.837451 31.738539 +v -6.680539 14.350774 33.692436 +v -11.215162 -9.126497 30.527296 +v -12.615099 -7.548803 31.154974 +v -8.535749 -8.645486 31.095343 +v -13.327575 -2.688748 36.336121 +v -14.449604 -4.091674 36.228336 +v -14.375779 -3.049750 35.760384 +v -9.757486 -14.210204 32.689411 +v -7.845728 -13.964842 32.726795 +v -9.032092 -14.093640 34.234932 +v -8.810061 -14.625006 33.180496 +v -14.878858 -10.997612 27.462646 +v -15.481682 -9.314493 26.256168 +v -15.831050 -10.139254 27.118368 +v -10.552114 11.676560 28.914038 +v -9.756495 10.151184 28.781321 +v -10.661306 10.467417 29.411709 +v -4.375865 11.876637 40.274891 +v -3.129308 11.894988 39.869747 +v -4.070377 13.450107 40.304245 +v -2.985772 12.897536 40.384514 +v 14.235251 -2.792139 39.801960 +v 15.123899 -3.794360 39.532478 +v 15.742197 -2.630829 39.901970 +v 15.584294 -9.138297 32.228493 +v 16.666023 -8.913308 31.816135 +v 17.802387 3.457755 33.933819 +v 17.008673 3.482515 34.607224 +v 18.270872 2.685952 34.306480 +v 1.663438 4.946463 31.226290 +v 6.515972 1.240578 29.909634 +v 0.340019 6.971336 27.959902 +v -5.255750 -4.379568 27.457006 +v 5.865710 -3.730732 27.221888 +v 14.486960 -4.639171 31.866383 +v 16.307156 -1.804861 34.173393 +v 16.339594 -1.877840 31.948187 +v 14.584358 -0.303760 33.742115 +v -10.404941 -5.278327 33.154854 +v -11.818557 -7.939838 32.618382 +v -12.282892 -5.775181 30.923122 +v -11.691150 -6.621515 29.053415 +v -6.898353 10.956960 31.873299 +v -3.656815 11.973370 34.763531 +v -5.351717 11.471641 35.199577 +vn 0.4324 0.5664 0.7016 +vn 0.0338 0.0238 0.9991 +vn 0.6863 0.6904 0.2286 +vn 0.8441 0.4938 0.2090 +vn 0.9358 -0.3521 0.0154 +vn 0.5464 -0.7948 0.2640 +vn -0.4423 -0.8816 0.1650 +vn 0.1910 -0.9508 0.2439 +vn 0.3698 -0.8944 0.2517 +vn -0.0833 -0.9761 0.2008 +vn 0.9604 -0.0701 -0.2698 +vn 0.9520 -0.1272 0.2783 +vn -0.9415 0.2467 0.2296 +vn -0.9560 -0.2876 0.0573 +vn -0.9546 0.1254 0.2704 +vn 0.5842 -0.8100 0.0521 +vn 0.6677 -0.7346 -0.1209 +vn -0.3437 -0.0246 0.9388 +vn 0.4305 0.9025 -0.0141 +vn 0.7169 0.6954 0.0502 +vn -0.0625 0.9964 0.0566 +vn -0.0344 -0.9979 0.0550 +vn -0.4567 0.7713 0.4434 +vn -0.6187 0.7839 0.0518 +vn -0.8229 0.2852 0.4914 +vn -0.5697 -0.6078 0.5532 +vn 0.2385 0.9705 -0.0352 +vn 0.6542 0.7558 0.0280 +vn 0.9459 -0.3234 -0.0245 +vn 0.1542 -0.9880 -0.0110 +vn -0.8078 -0.5875 -0.0473 +vn -0.2104 -0.6211 0.7549 +vn 0.0840 -0.9908 -0.1060 +vn -0.8577 -0.5142 0.0040 +vn -0.8086 0.5841 -0.0713 +vn 0.7549 -0.6463 0.1114 +vn 0.9446 0.2891 0.1557 +vn -0.4990 -0.8040 0.3235 +vn 0.3777 -0.9086 0.1785 +vn 0.9240 0.3615 0.1245 +vn -0.8611 0.3395 0.3785 +vn 0.4455 0.8942 -0.0432 +vn -0.5375 0.8424 0.0394 +vn 0.9941 0.1049 0.0275 +vn -0.6193 -0.7832 0.0552 +vn -0.7563 -0.6282 -0.1826 +vn -0.5915 -0.5550 0.5849 +vn 0.0854 0.8379 0.5391 +vn -0.9473 0.3076 0.0896 +vn -0.6057 0.6801 -0.4130 +vn 0.6788 -0.7342 0.0132 +vn -0.6325 0.3586 -0.6865 +vn 0.2520 0.9653 0.0683 +vn -0.8467 0.3483 -0.4023 +vn -0.7551 0.6556 -0.0003 +vn -0.9464 -0.3087 0.0947 +vn -0.6756 -0.5760 0.4602 +vn -0.1695 0.6832 0.7102 +vn -0.6844 -0.6775 -0.2695 +vn -0.7794 0.6079 -0.1519 +vn -0.8716 0.4053 0.2759 +vn -0.0646 -0.9979 -0.0109 +vn -0.7983 -0.5790 -0.1656 +vn 0.8251 -0.5041 0.2552 +vn 0.7128 -0.7011 -0.0221 +vn -0.0700 -0.6989 -0.7118 +vn 0.1098 0.9932 0.0387 +vn -0.6177 0.7841 0.0612 +vn -0.9533 0.2959 0.0604 +vn 0.9865 -0.1560 0.0491 +vn -0.9473 -0.3202 -0.0042 +vn -0.1545 0.9392 0.3066 +vn -0.3140 -0.9494 0.0052 +s 1 +f 58//1 4//2 2//3 +f 2//3 4//2 59//4 +f 23//5 1//6 5//7 +f 4//2 7//8 6//9 +f 4//2 8//10 7//8 +f 23//5 65//11 64//12 +f 10//13 15//14 9//15 +f 7//8 19//16 62//17 +f 16//18 4//2 58//1 +f 60//19 20//20 11//21 +f 59//4 20//20 2//3 +f 8//10 18//22 7//8 +f 24//23 29//24 27//25 +f 73//26 24//23 27//25 +f 26//27 29//24 25//28 +f 37//29 39//30 36//31 +f 38//32 39//30 37//29 +f 36//31 39//30 38//32 +f 44//33 45//34 43//35 +f 47//36 49//37 46//38 +f 51//39 52//40 50//41 +f 55//42 56//43 57//44 +f 60//19 58//1 2//3 +f 17//45 8//10 61//46 +f 6//9 3//47 4//2 +f 4//2 21//48 59//4 +f 16//18 27//25 13//49 +f 26//27 60//19 28//50 +f 58//1 60//19 25//28 +f 32//51 61//46 8//10 +f 61//46 70//52 9//15 +f 33//53 69//54 35//55 +f 34//56 68//57 67//58 +f 37//29 30//59 32//51 +f 38//32 32//51 68//57 +f 30//59 41//60 70//52 +f 31//61 40//62 30//59 +f 45//34 71//63 27//25 +f 43//35 27//25 28//50 +f 25//28 49//37 72//64 +f 47//36 73//26 72//64 +f 52//40 1//6 21//48 +f 1//6 51//39 3//47 +f 50//41 21//48 3//47 +f 5//7 54//65 23//5 +f 54//65 63//66 23//5 +f 64//12 56//43 66//67 +f 57//44 64//12 65//11 +f 5//7 62//17 63//66 +f 58//1 72//64 73//26 +f 21//48 64//12 66//67 +f 23//5 64//12 1//6 +f 62//17 6//9 7//8 +f 63//66 65//11 23//5 +f 9//15 4//2 16//18 +f 9//15 16//18 10//13 +f 10//13 16//18 13//49 +f 13//49 12//68 14//69 +f 10//13 13//49 14//69 +f 10//13 14//69 15//14 +f 60//19 2//3 20//20 +f 59//4 22//70 20//20 +f 8//10 17//45 18//22 +f 7//8 18//22 19//16 +f 29//24 24//23 25//28 +f 28//50 29//24 26//27 +f 68//57 31//61 30//59 +f 67//58 68//57 32//51 +f 33//53 35//55 34//56 +f 40//62 42//71 41//60 +f 46//38 49//37 48//72 +f 13//49 60//19 12//68 +f 60//19 11//21 12//68 +f 59//4 62//17 22//70 +f 19//16 22//70 62//17 +f 15//14 17//45 61//46 +f 61//46 9//15 15//14 +f 66//67 65//11 59//4 +f 6//9 5//7 3//47 +f 62//17 59//4 65//11 +f 62//17 65//11 63//66 +f 21//48 66//67 59//4 +f 27//25 71//63 13//49 +f 60//19 26//27 25//28 +f 73//26 27//25 16//18 +f 32//51 30//59 61//46 +f 67//58 4//2 9//15 +f 9//15 70//52 69//54 +f 67//58 32//51 4//2 +f 30//59 70//52 61//46 +f 21//48 1//6 64//12 +f 3//47 5//7 1//6 +f 28//50 27//25 29//24 +f 69//54 31//61 68//57 +f 31//61 69//54 70//52 +f 33//53 67//58 69//54 +f 33//53 34//56 67//58 +f 34//56 35//55 69//54 +f 69//54 68//57 34//56 +f 38//32 68//57 30//59 +f 30//59 36//31 38//32 +f 38//32 37//29 32//51 +f 30//59 37//29 36//31 +f 42//71 40//62 31//61 +f 31//61 70//52 41//60 +f 30//59 40//62 41//60 +f 41//60 42//71 31//61 +f 28//50 71//63 43//35 +f 71//63 45//34 44//33 +f 71//63 44//33 43//35 +f 43//35 45//34 27//25 +f 49//37 47//36 72//64 +f 25//28 24//23 48//72 +f 46//38 48//72 24//23 +f 48//72 49//37 25//28 +f 73//26 47//36 46//38 +f 46//38 24//23 73//26 +f 50//41 52//40 21//48 +f 3//47 51//39 50//41 +f 1//6 52//40 51//39 +f 5//7 63//66 53//73 +f 5//7 53//73 54//65 +f 54//65 53//73 63//66 +f 65//11 66//67 56//43 +f 56//43 55//42 65//11 +f 57//44 56//43 64//12 +f 65//11 55//42 57//44 +f 21//48 4//2 3//47 +f 5//7 6//9 62//17 +f 58//1 25//28 72//64 +f 16//18 58//1 73//26 +f 28//50 60//19 71//63 +f 60//19 13//49 71//63 +f 8//10 4//2 32//51 +f 9//15 69//54 67//58 +o InstCol +v -1.822065 24.165247 41.356098 +v -10.046906 18.189550 41.356098 +v -6.905296 8.520670 41.356098 +v 3.261166 8.520670 41.356098 +v 6.402774 18.189550 41.356098 +v -12.681044 22.870804 26.783543 +v -4.017302 12.722200 40.426201 +v -1.822065 24.165247 41.356098 +v -10.046906 18.189550 41.356098 +v -6.905296 8.520670 41.356098 +v 3.261166 8.520670 41.356098 +v 6.402774 18.189550 41.356098 +v -4.017302 12.722200 43.768764 +v -21.906059 16.168438 26.783543 +v -18.382416 5.323781 26.783543 +v -6.979671 5.323781 26.783543 +v -3.456029 16.168438 26.783543 +v -10.725409 12.438639 25.740564 +v -12.681044 22.870804 26.783543 +v -21.906059 16.168438 26.783543 +v -18.382416 5.323781 26.783543 +v -6.979671 5.323781 26.783543 +v -3.456029 16.168438 26.783543 +v -9.954520 11.340923 29.489601 +v -14.923248 7.513104 37.120796 +v -24.323956 0.683089 37.120796 +v -20.733206 -10.368113 37.120796 +v -9.113290 -10.368113 37.120796 +v -5.522537 0.683089 37.120796 +v -13.849216 -3.635618 36.057957 +v -14.923248 7.513104 37.120796 +v -24.323956 0.683089 37.120796 +v -20.733206 -10.368113 37.120796 +v -9.113290 -10.368113 37.120796 +v -5.522537 0.683089 37.120796 +v -13.849216 -3.635618 39.878387 +v -11.101955 -8.870878 34.361229 +v -15.633133 -18.021925 34.361229 +v -8.330179 -25.159170 34.361229 +v 0.714473 -20.419176 34.361229 +v -0.998577 -10.352453 34.361229 +v -8.758921 -13.900753 33.427219 +v -11.101955 -8.870878 34.361229 +v -15.633133 -18.021925 34.361229 +v -8.330179 -25.159170 34.361229 +v 0.714473 -20.419176 34.361229 +v -0.998577 -10.352453 34.361229 +v -8.758921 -13.900753 36.784565 +v -19.181351 -18.942009 24.515402 +v -9.807963 -15.776819 24.515402 +v -9.921699 -5.884098 24.515402 +v -19.365379 -2.935252 24.515402 +v -25.088160 -11.005484 24.515402 +v -15.155663 -9.852951 23.610485 +v -19.181351 -18.942009 24.515402 +v -9.807963 -15.776819 24.515402 +v -9.921699 -5.884098 24.515402 +v -19.365379 -2.935252 24.515402 +v -25.088160 -11.005484 24.515402 +v -15.155663 -9.852951 26.863260 +v 8.256123 -4.959330 40.781147 +v 18.034948 -14.256439 40.781147 +v 29.898859 -7.829185 40.781147 +v 27.452328 5.440188 40.781147 +v 14.076378 7.213853 40.781147 +v 15.473427 -3.633137 39.546978 +v 8.256123 -4.959330 40.781147 +v 18.034948 -14.256439 40.781147 +v 29.898859 -7.829185 40.781147 +v 27.452328 5.440188 40.781147 +v 14.076378 7.213853 40.781147 +v 15.473427 -3.633137 43.983257 +v 16.124819 10.702841 34.951317 +v 11.647207 4.687520 34.951317 +v 15.984463 -1.429785 34.951317 +v 23.142647 0.804840 34.951317 +v 23.229395 8.303219 34.951317 +v 17.692635 3.168763 34.265415 +v 16.124819 10.702841 34.951317 +v 11.647207 4.687520 34.951317 +v 15.984463 -1.429785 34.951317 +v 23.142647 0.804840 34.951317 +v 23.229395 8.303219 34.951317 +v 17.692635 3.168763 36.730919 +v 14.923250 -3.632456 30.115189 +v 9.578560 -10.994968 30.115189 +v 14.929129 -18.353218 30.115189 +v 23.580658 -15.538345 30.115189 +v 23.577021 -6.440414 30.115189 +v 16.066191 -8.582632 29.283030 +v 14.923250 -3.632456 30.115189 +v 9.578560 -10.994968 30.115189 +v 14.929129 -18.353218 30.115189 +v 23.580658 -15.538345 30.115189 +v 23.577021 -6.440414 30.115189 +v 16.066191 -8.582632 32.274277 +vn -0.2730 0.1201 0.9545 +vn -0.2494 -0.3476 0.9039 +vn -0.1012 -0.1275 0.9867 +vn 0.0724 -0.1073 -0.9916 +vn -0.0627 -0.0783 -0.9950 +vn 0.0307 -0.0114 -0.9995 +vn 0.1197 0.0441 -0.9918 +vn -0.0044 0.0987 -0.9951 +vn -0.0838 0.0274 -0.9961 +vn -0.1946 0.0668 0.9786 +vn -0.1686 -0.1981 0.9656 +vn 0.1091 -0.0708 0.9915 +vn -0.1093 0.0484 -0.9928 +vn 0.0037 0.0803 -0.9968 +vn -0.0447 -0.0560 -0.9974 +vn 0.0745 0.0276 -0.9968 +vn 0.0772 -0.0862 -0.9933 +vn -0.1046 -0.1458 -0.9838 +vn 0.1926 -0.2161 0.9572 +vn 0.1899 0.0703 0.9793 +vn 0.0093 0.2046 0.9788 +vn 0.2093 -0.3131 0.9264 +vn 0.3015 0.1241 0.9454 +vn -0.0126 0.2257 0.9741 +vn -0.2239 0.0773 0.9715 +vn -0.1719 -0.2178 0.9607 +vn 0.0378 -0.0444 0.9983 +vn -0.0884 0.0306 -0.9956 +vn -0.0022 0.0947 -0.9955 +vn 0.0160 -0.0188 -0.9997 +vn 0.1064 0.0393 -0.9935 +vn 0.0749 -0.1039 -0.9918 +vn -0.0686 -0.0868 -0.9939 +vn 0.1858 -0.2577 0.9482 +vn 0.2666 0.0982 0.9588 +vn -0.0055 0.2396 0.9709 +vn -0.2906 -0.0762 0.9538 +vn -0.0215 -0.2112 0.9772 +vn -0.0755 0.1170 0.9903 +vn -0.1164 -0.0308 -0.9927 +vn -0.0754 0.1480 -0.9861 +vn -0.0330 0.0508 -0.9982 +vn 0.0860 0.0735 -0.9936 +vn 0.0717 -0.0386 -0.9967 +vn -0.0084 -0.0830 -0.9965 +vn 0.1826 -0.0983 0.9783 +vn 0.2150 0.1846 0.9590 +vn -0.1821 0.3567 0.9163 +vn 0.2243 -0.1773 0.9583 +vn 0.2696 0.2015 0.9417 +vn 0.0639 0.0444 0.9970 +vn 0.0895 -0.0709 -0.9935 +vn -0.0295 -0.0861 -0.9959 +vn 0.0272 0.0189 -0.9995 +vn -0.0903 -0.0033 -0.9959 +vn -0.0417 0.1046 -0.9936 +vn 0.1093 0.0817 -0.9906 +vn -0.1041 0.2622 0.9594 +vn -0.2291 -0.0083 0.9734 +vn -0.0747 -0.2182 0.9730 +vn -0.0130 -0.2914 0.9565 +vn 0.1928 -0.0831 0.9777 +vn -0.1355 -0.0252 0.9905 +vn -0.0049 -0.1166 -0.9932 +vn -0.1631 -0.0300 -0.9862 +vn -0.0589 -0.0109 -0.9982 +vn -0.0462 0.1071 -0.9932 +vn 0.0591 0.0575 -0.9966 +vn 0.0758 -0.0326 -0.9966 +vn 0.1505 0.1464 0.9777 +vn -0.1160 0.2675 0.9566 +vn -0.3933 -0.0725 0.9165 +vn -0.2780 0.0187 0.9604 +vn -0.1114 -0.3224 0.9400 +vn -0.0184 -0.0808 0.9966 +vn -0.1108 0.0076 -0.9938 +vn -0.0245 0.0856 -0.9960 +vn -0.0078 -0.0344 -0.9994 +vn 0.0725 0.0549 -0.9959 +vn 0.0971 -0.0642 -0.9932 +vn -0.0453 -0.1309 -0.9904 +vn 0.2426 -0.1608 0.9567 +vn 0.1838 0.1391 0.9731 +vn -0.0623 0.2171 0.9742 +vn -0.3070 -0.0260 0.9514 +vn -0.0570 -0.2091 0.9762 +vn -0.0633 0.1181 0.9910 +vn -0.1233 -0.0107 -0.9923 +vn -0.0469 0.1551 -0.9868 +vn -0.0278 0.0512 -0.9983 +vn 0.0939 0.0568 -0.9940 +vn 0.0644 -0.0497 -0.9967 +vn -0.0224 -0.0823 -0.9964 +vn 0.1641 -0.1264 0.9783 +vn 0.2356 0.1429 0.9613 +vn -0.1137 0.3750 0.9200 +s 1 +f 82//74 83//75 86//76 +f 89//77 88//78 91//79 +f 90//80 89//77 91//79 +f 79//81 90//80 91//79 +f 87//82 79//81 91//79 +f 93//83 94//84 97//85 +f 75//86 74//87 80//88 +f 74//87 78//89 80//88 +f 78//89 77//90 80//88 +f 77//90 76//91 80//88 +f 76//91 75//86 80//88 +f 83//75 84//92 86//76 +f 84//92 85//93 86//76 +f 85//93 81//94 86//76 +f 81//94 82//74 86//76 +f 88//78 87//82 91//79 +f 94//84 95//95 97//85 +f 95//95 96//96 97//85 +f 96//96 92//97 97//85 +f 92//97 93//83 97//85 +f 105//98 106//99 109//100 +f 99//101 98//102 103//103 +f 98//102 102//104 103//103 +f 102//104 101//105 103//103 +f 101//105 100//106 103//103 +f 100//106 99//101 103//103 +f 106//99 107//107 109//100 +f 107//107 108//108 109//100 +f 108//108 104//109 109//100 +f 104//109 105//98 109//100 +f 117//110 118//111 121//112 +f 111//113 110//114 115//115 +f 110//114 114//116 115//115 +f 114//116 113//117 115//115 +f 113//117 112//118 115//115 +f 112//118 111//113 115//115 +f 118//111 119//119 121//112 +f 119//119 120//120 121//112 +f 120//120 116//121 121//112 +f 116//121 117//110 121//112 +f 129//122 130//123 133//124 +f 123//125 122//126 127//127 +f 122//126 126//128 127//127 +f 126//128 125//129 127//127 +f 125//129 124//130 127//127 +f 124//130 123//125 127//127 +f 130//123 131//131 133//124 +f 131//131 132//132 133//124 +f 132//132 128//133 133//124 +f 128//133 129//122 133//124 +f 141//134 142//135 145//136 +f 135//137 134//138 139//139 +f 134//138 138//140 139//139 +f 138//140 137//141 139//139 +f 137//141 136//142 139//139 +f 136//142 135//137 139//139 +f 142//135 143//143 145//136 +f 143//143 144//144 145//136 +f 144//144 140//145 145//136 +f 140//145 141//134 145//136 +f 153//146 154//147 157//148 +f 147//149 146//150 151//151 +f 146//150 150//152 151//151 +f 150//152 149//153 151//151 +f 149//153 148//154 151//151 +f 148//154 147//149 151//151 +f 154//147 155//155 157//148 +f 155//155 156//156 157//148 +f 156//156 152//157 157//148 +f 152//157 153//146 157//148 +f 165//158 166//159 169//160 +f 159//161 158//162 163//163 +f 158//162 162//164 163//163 +f 162//164 161//165 163//163 +f 161//165 160//166 163//163 +f 160//166 159//161 163//163 +f 166//159 167//167 169//160 +f 167//167 168//168 169//160 +f 168//168 164//169 169//160 +f 164//169 165//158 169//160 diff --git a/assets/voxygen/lod/birch.obj b/assets/voxygen/lod/birch.obj new file mode 100644 index 0000000..d38c448 --- /dev/null +++ b/assets/voxygen/lod/birch.obj @@ -0,0 +1,312 @@ +# Blender 4.0.2 +# www.blender.org +o InstCol +v -4.714935 11.921365 36.228462 +v 0.891659 12.050525 34.535561 +v 2.223553 11.550801 41.645493 +v 7.781044 8.407217 39.279728 +v 6.495314 10.050106 35.932091 +v 4.146627 11.786369 37.074802 +v 7.791799 -1.344330 40.426216 +v 3.070741 -11.811743 34.162262 +v 0.015296 -10.840500 30.949678 +v -0.325305 -8.039616 29.828510 +v -1.005507 -1.185756 44.275703 +v 7.698805 6.839438 41.815121 +v -8.507486 0.255182 39.544037 +v -8.579863 2.969791 40.868237 +v 4.225896 -9.996679 36.540649 +v -6.285477 -2.090690 43.034718 +v 0.032331 -8.535565 41.442055 +v -4.041491 -6.788503 41.846622 +v -2.590811 -11.577785 37.767632 +v 6.521661 -0.891705 33.855656 +v 1.040930 -12.723924 35.561531 +v -7.371516 -6.013457 33.237617 +v -4.007478 -11.006802 31.892620 +v -5.915053 -10.559583 37.155159 +v -8.485865 -4.717588 38.901909 +v -1.398976 3.847413 44.991936 +v -2.036720 10.686987 42.150917 +v -2.597713 13.200867 37.117928 +v -6.210377 9.256014 41.506046 +v 4.493489 0.025604 43.751175 +v 4.956504 -6.048013 41.419521 +v 5.557634 -7.484096 32.286621 +v 5.123858 -8.073070 39.904613 +v 9.111002 3.773433 35.301407 +v -9.180380 -2.213704 39.005692 +v 3.765970 10.301556 33.186722 +v -4.103312 9.203198 32.960251 +v 5.551918 4.051157 32.575722 +v 0.052583 -3.722495 30.050556 +v 2.173574 -0.104768 32.679066 +v -8.333878 5.947405 36.150345 +v -3.121292 5.054691 31.483002 +v -3.334915 0.713258 33.581009 +v -7.128629 -2.837661 33.595558 +v -5.903589 0.097978 35.124901 +v 2.421340 4.378236 30.794800 +v 9.469221 3.604490 37.769173 +v 7.908535 -1.263337 35.635811 +v 0.006964 9.767454 31.492104 +v 8.171974 -6.097437 36.356956 +v -3.025934 -6.888184 30.216087 +v 5.147512 5.143885 44.116726 +v -5.930468 1.317938 43.667454 +v 4.062201 7.890867 43.634674 +v -8.057522 9.251374 38.288219 +v -9.000975 3.438783 37.032639 +vn -0.9833 0.1328 0.1242 +vn -0.2030 0.7627 -0.6140 +vn 0.2017 0.9666 -0.1580 +vn -0.6970 0.4297 -0.5740 +vn 0.7467 -0.2200 -0.6277 +vn 0.3917 -0.3005 -0.8696 +vn -0.5858 -0.1819 -0.7898 +vn -0.2125 0.7314 -0.6480 +vn 0.5595 0.7816 0.2757 +vn 0.2042 0.9695 0.1359 +vn 0.5768 0.6863 0.4431 +vn 0.6303 0.7649 0.1333 +vn 0.9063 0.3932 -0.1551 +vn 0.9264 0.3602 -0.1098 +vn 0.7828 -0.0499 -0.6203 +vn 0.6921 -0.6905 0.2101 +vn 0.0567 -0.8720 -0.4862 +vn -0.1955 -0.3849 -0.9020 +vn 0.6411 -0.2320 0.7315 +vn 0.4974 0.3368 0.7995 +vn 0.6742 -0.1380 0.7256 +vn 0.1494 -0.0894 0.9847 +vn 0.1226 -0.1304 0.9839 +vn -0.7747 -0.2938 0.5599 +vn -0.9922 -0.0751 0.0997 +vn -0.3277 -0.6682 0.6680 +vn 0.3844 0.0138 -0.9231 +vn -0.0232 -0.9629 -0.2690 +vn 0.5604 -0.7668 0.3130 +vn 0.5022 -0.5703 -0.6500 +vn -0.6293 -0.4635 0.6238 +vn -0.3030 -0.9526 -0.0289 +vn -0.2630 -0.3093 -0.9139 +vn 0.8609 -0.5079 -0.0305 +vn -0.5472 0.1350 -0.8261 +vn 0.4908 0.5933 0.6380 +vn -0.7821 0.5117 -0.3556 +vn 0.2479 -0.7685 0.5899 +vn -0.2947 -0.9555 0.0112 +vn 0.1047 -0.8015 0.5888 +vn 0.5704 -0.7694 0.2877 +vn -0.1656 -0.3154 0.9344 +vn -0.2169 -0.6702 0.7098 +vn -0.8098 0.0945 0.5790 +vn -0.8467 -0.0105 0.5319 +vn -0.6294 -0.4592 0.6269 +vn 0.1623 -0.3349 0.9282 +vn -0.0652 -0.3670 0.9279 +vn 0.7977 -0.3541 0.4882 +vn 0.8404 0.0061 -0.5419 +vn -0.1162 0.0612 -0.9913 +vn -0.8318 -0.4904 -0.2599 +vn 0.4799 -0.1305 -0.8676 +vn -0.9213 -0.3770 -0.0950 +vn -0.7846 -0.2413 0.5711 +vn -0.2001 -0.1586 0.9669 +vn -0.6613 0.1753 0.7293 +vn 0.0894 0.2063 0.9744 +vn -0.1975 -0.1532 0.9683 +vn -0.3888 0.2293 0.8923 +vn 0.0067 0.4801 0.8772 +vn -0.3511 0.8214 0.4494 +vn -0.5174 0.8030 0.2959 +vn -0.1249 0.8820 0.4545 +vn -0.2590 0.3498 0.9003 +vn -0.5574 0.8160 0.1531 +vn -0.0510 0.3790 0.9240 +vn -0.8361 0.2665 0.4796 +vn 0.9427 0.2693 0.1971 +vn 0.1765 -0.3410 0.9233 +vn 0.7053 -0.1108 0.7002 +vn 0.7637 -0.3451 0.5457 +vn 0.2858 -0.5588 0.7785 +vn 0.9498 -0.3123 0.0179 +vn 0.9980 0.0582 0.0253 +vn 0.8940 -0.0651 0.4432 +vn 0.6013 0.2461 -0.7601 +vn 0.6014 -0.0877 -0.7942 +vn 0.6839 -0.7016 -0.2003 +vn 0.9585 -0.2391 -0.1555 +vn 0.6805 0.3484 -0.6446 +vn 0.3077 0.4346 -0.8464 +vn -0.1136 0.0773 -0.9905 +vn -0.9570 -0.2601 -0.1288 +vn -0.8091 0.3270 -0.4884 +vn -0.6520 0.1126 -0.7498 +vn -0.9649 0.1947 -0.1761 +vn -0.7320 0.4501 -0.5114 +vn -0.7702 -0.4643 -0.4373 +vn -0.1592 -0.3750 -0.9132 +vn 0.3963 0.8147 -0.4233 +vn 0.3867 0.8704 -0.3047 +vn 0.1723 0.7633 -0.6227 +vn -0.4076 -0.3810 -0.8299 +vn -0.2950 0.8035 -0.5170 +vn 0.4930 0.3253 -0.8069 +vn 0.3796 0.1968 -0.9040 +vn -0.3555 0.2377 -0.9039 +vn -0.0409 0.6029 -0.7968 +vn -0.2069 -0.4174 -0.8848 +vn -0.6078 -0.1148 -0.7858 +vn -0.6736 -0.1531 -0.7230 +vn 0.1742 -0.3897 -0.9043 +vn -0.3850 0.3293 -0.8621 +vn -0.9248 0.1117 -0.3636 +vn -0.3685 0.3902 -0.8438 +vn -0.5221 0.5552 -0.6474 +vn 0.4546 0.1428 -0.8792 +s 0 +f 55//1 56//1 14//1 +f 2//2 1//2 28//2 +f 28//3 6//3 2//3 +f 41//4 55//4 1//4 +f 20//5 34//5 48//5 +f 9//6 10//6 32//6 +f 22//7 51//7 23//7 +f 2//8 37//8 1//8 +f 6//9 3//9 4//9 +f 28//10 3//10 6//10 +f 12//11 4//11 3//11 +f 4//12 5//12 6//12 +f 4//13 34//13 5//13 +f 4//14 47//14 34//14 +f 20//15 48//15 50//15 +f 50//16 33//16 15//16 +f 21//17 23//17 8//17 +f 9//18 23//18 10//18 +f 7//19 30//19 31//19 +f 12//20 54//20 52//20 +f 30//21 7//21 52//21 +f 30//22 52//22 26//22 +f 30//23 26//23 11//23 +f 13//24 53//24 14//24 +f 14//25 56//25 13//25 +f 24//26 19//26 18//26 +f 32//27 10//27 39//27 +f 23//28 9//28 8//28 +f 15//29 21//29 8//29 +f 32//30 8//30 9//30 +f 24//31 18//31 25//31 +f 23//32 21//32 24//32 +f 10//33 23//33 51//33 +f 15//34 8//34 32//34 +f 22//35 44//35 51//35 +f 54//36 12//36 3//36 +f 35//37 45//37 44//37 +f 17//38 21//38 33//38 +f 19//39 24//39 21//39 +f 21//40 17//40 19//40 +f 33//41 21//41 15//41 +f 18//42 11//42 16//42 +f 18//43 19//43 17//43 +f 35//44 16//44 13//44 +f 13//45 16//45 53//45 +f 18//46 16//46 25//46 +f 30//47 11//47 17//47 +f 17//48 11//48 18//48 +f 33//49 50//49 7//49 +f 20//50 50//50 32//50 +f 10//51 51//51 39//51 +f 24//52 22//52 23//52 +f 20//53 46//53 38//53 +f 22//54 24//54 25//54 +f 25//55 16//55 35//55 +f 53//56 16//56 11//56 +f 53//57 29//57 14//57 +f 54//58 26//58 52//58 +f 53//59 11//59 26//59 +f 29//60 53//60 26//60 +f 27//61 54//61 3//61 +f 28//62 29//62 27//62 +f 29//63 28//63 55//63 +f 27//64 3//64 28//64 +f 26//65 27//65 29//65 +f 55//66 28//66 1//66 +f 26//67 54//67 27//67 +f 29//68 55//68 14//68 +f 4//69 12//69 47//69 +f 31//70 30//70 17//70 +f 12//71 52//71 7//71 +f 31//72 33//72 7//72 +f 31//73 17//73 33//73 +f 7//74 48//74 47//74 +f 48//75 7//75 50//75 +f 47//76 12//76 7//76 +f 34//77 38//77 36//77 +f 38//78 34//78 20//78 +f 50//79 15//79 32//79 +f 34//80 47//80 48//80 +f 5//81 34//81 36//81 +f 40//82 20//82 39//82 +f 46//83 42//83 49//83 +f 35//84 22//84 25//84 +f 35//85 13//85 45//85 +f 41//86 37//86 42//86 +f 56//87 55//87 41//87 +f 41//88 1//88 37//88 +f 45//89 13//89 56//89 +f 42//90 46//90 40//90 +f 6//91 5//91 2//91 +f 2//92 5//92 36//92 +f 2//93 36//93 49//93 +f 43//94 45//94 42//94 +f 49//95 37//95 2//95 +f 49//96 38//96 46//96 +f 38//97 49//97 36//97 +f 49//98 42//98 37//98 +f 40//99 39//99 43//99 +f 42//100 40//100 43//100 +f 41//101 45//101 56//101 +f 45//102 41//102 42//102 +f 20//103 40//103 46//103 +f 39//104 51//104 44//104 +f 35//105 44//105 22//105 +f 43//106 39//106 44//106 +f 44//107 45//107 43//107 +f 20//108 32//108 39//108 +o 220_170_160 +v -1.210869 -1.407357 -9.980381 +v 0.119476 0.583892 34.351627 +v -1.210865 0.992640 -9.980373 +v -1.577576 2.280950 34.351624 +v 1.189131 -1.407359 -9.980385 +v 1.816532 2.280949 34.351612 +v 1.189132 0.992643 -9.980385 +v 0.119475 3.978004 34.351624 +v 0.108999 0.065173 18.190601 +v -0.173044 -4.489307 35.055431 +v -1.324626 1.396095 18.565334 +v -0.245669 -2.534475 35.430161 +v 1.464934 1.535056 18.163799 +v 1.825112 -4.408733 35.028625 +v 0.031308 2.865980 18.538528 +v 1.752488 -2.453902 35.403358 +vn -0.9236 -0.3826 0.0242 +vn -0.3822 0.9227 -0.0507 +vn 0.9236 0.3826 -0.0242 +vn 0.3822 -0.9227 0.0507 +vn -0.9129 -0.4004 -0.0792 +vn -0.4000 0.8748 0.2731 +vn 0.9129 0.4008 0.0775 +vn 0.4000 -0.8748 -0.2732 +vn -0.1472 0.1179 -0.9820 +s 0 +f 57//109 58//109 60//109 59//109 +f 59//110 60//110 64//110 63//110 +f 63//111 64//111 62//111 61//111 +f 61//112 62//112 58//112 57//112 +f 65//113 66//113 68//113 67//113 +f 67//114 68//114 72//114 71//114 +f 71//115 72//115 70//115 69//115 +f 69//116 70//116 66//116 65//116 +f 67//117 71//117 69//117 65//117 diff --git a/assets/voxygen/lod/coastal_house.obj b/assets/voxygen/lod/coastal_house.obj new file mode 100644 index 0000000..d7de63a --- /dev/null +++ b/assets/voxygen/lod/coastal_house.obj @@ -0,0 +1,605 @@ +# Blender 4.0.2 +# www.blender.org +o 250_243_221 +v -12.500000 12.500000 1.000000 +v -12.500000 12.500000 12.000000 +v 12.500000 12.500000 1.000000 +v 12.500000 12.500000 12.000000 +v -12.500000 -12.500000 1.000000 +v -12.500000 -12.500000 12.000000 +v 12.500000 -12.500000 1.000000 +v 12.500000 -12.500000 12.000000 +v -16.500000 16.500000 12.000000 +v 16.500000 16.500000 12.000000 +v -16.500000 -16.500000 12.000000 +v 16.500000 -16.500000 12.000000 +v 16.500000 16.500000 13.000000 +v 16.500000 -16.500000 13.000000 +v -16.500000 -16.500000 13.000000 +v -16.500000 16.500000 13.000000 +v -21.500000 21.500000 1.000000 +v -21.500000 -21.500000 1.000000 +v 21.500000 21.500000 1.000000 +v 21.500000 -21.500000 1.000000 +v -10.500000 10.500000 13.000000 +v -10.500000 10.500000 24.000000 +v 10.500000 10.500000 13.000000 +v 10.500000 10.500000 24.000000 +v -10.500000 -10.500000 13.000000 +v -10.500000 -10.500000 24.000000 +v 10.500000 -10.500000 13.000000 +v 10.500000 -10.500000 24.000000 +v -14.500000 14.500000 24.000000 +v 14.500000 14.500000 24.000000 +v -14.500000 -14.500000 24.000000 +v 14.500000 -14.500000 24.000000 +v -14.500000 14.500000 25.000000 +v 14.500000 -14.500000 25.000000 +v -14.500000 -14.500000 25.000000 +v 14.500000 14.500000 25.000000 +v 14.000000 0.000000 25.000000 +v 10.296136 4.264800 27.754438 +v 9.899495 -9.899495 25.000000 +v 10.296137 -4.264799 27.754438 +v 0.000000 -14.000000 25.000000 +v 4.264800 -10.296136 27.754438 +v -9.899495 -9.899495 25.000000 +v -4.264799 -10.296137 27.754438 +v -14.000000 0.000000 25.000000 +v -10.296136 -4.264800 27.754438 +v -9.899495 9.899495 25.000000 +v -10.296137 4.264799 27.754438 +v 0.000000 14.000000 25.000000 +v -4.264800 10.296136 27.754438 +v 9.899495 9.899495 25.000000 +v 4.264799 10.296137 27.754438 +v 0.000000 -0.000000 30.000004 +vn -0.0000 1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -0.0000 1.0000 +vn 0.6962 -0.0000 0.7178 +vn 0.5033 -0.2085 0.8386 +vn 0.4923 -0.4923 0.7178 +vn 0.2085 -0.5033 0.8386 +vn -0.0000 -0.6962 0.7178 +vn -0.2085 -0.5033 0.8386 +vn -0.4923 -0.4923 0.7178 +vn -0.5033 -0.2085 0.8386 +vn -0.6962 -0.0000 0.7178 +vn -0.5033 0.2085 0.8386 +vn -0.4923 0.4923 0.7178 +vn -0.2085 0.5033 0.8386 +vn -0.0000 0.6962 0.7178 +vn 0.2085 0.5033 0.8386 +vn 0.4923 0.4923 0.7178 +vn 0.5033 0.2085 0.8386 +s 1 +f 1//1 2//1 4//1 3//1 +f 3//2 4//2 8//2 7//2 +f 7//3 8//3 6//3 5//3 +f 5//4 6//4 2//4 1//4 +f 12//5 11//5 9//5 10//5 +f 11//3 12//3 14//3 15//3 +f 10//1 9//1 16//1 13//1 +f 9//4 11//4 15//4 16//4 +f 12//2 10//2 13//2 14//2 +f 16//6 15//6 14//6 13//6 +f 17//6 18//6 20//6 19//6 +f 21//1 22//1 24//1 23//1 +f 23//2 24//2 28//2 27//2 +f 27//3 28//3 26//3 25//3 +f 25//4 26//4 22//4 21//4 +f 32//5 31//5 29//5 30//5 +f 31//3 32//3 34//3 35//3 +f 30//1 29//1 33//1 36//1 +f 29//4 31//4 35//4 33//4 +f 32//2 30//2 36//2 34//2 +f 33//6 35//6 34//6 36//6 +f 37//7 40//8 39//9 +f 39//9 42//10 41//11 +f 41//11 44//12 43//13 +f 43//13 46//14 45//15 +f 45//15 48//16 47//17 +f 47//17 50//18 49//19 +f 49//19 52//20 51//21 +f 51//21 38//22 37//7 +f 37//7 38//22 40//8 +f 39//9 40//8 42//10 +f 41//11 42//10 44//12 +f 43//13 44//12 46//14 +f 45//15 46//14 48//16 +f 47//17 48//16 50//18 +f 49//19 50//18 52//20 +f 51//21 52//20 38//22 +f 38//22 52//20 53//6 +f 52//20 50//18 53//6 +f 50//18 48//16 53//6 +f 48//16 46//14 53//6 +f 46//14 44//12 53//6 +f 44//12 42//10 53//6 +f 42//10 40//8 53//6 +f 40//8 38//22 53//6 +o 11_146_187 +v -1.500000 -13.500000 1.000000 +v -13.500000 -13.500000 2.000000 +v -2.500000 -13.500000 2.000000 +v -1.500000 -13.500000 4.000000 +v -2.500000 -13.500000 4.000000 +v -1.500000 -13.500000 5.000000 +v 2.500000 -13.500000 4.000000 +v 1.500000 -13.500000 5.000000 +v 1.500000 -13.500000 4.000000 +v 1.500000 -13.500000 1.000000 +v 13.500000 -13.500000 1.000000 +v 13.500000 -3.500001 6.000000 +v 2.500000 -13.500000 2.000000 +v 13.500000 -2.500001 7.000000 +v 13.500000 -6.500001 6.000000 +v -2.500000 -13.500000 10.000000 +v -1.500000 -13.500000 11.000000 +v 1.500000 -13.500000 11.000000 +v -1.500000 -13.500000 10.000000 +v -1.500000 -13.500000 7.000000 +v 2.500000 -13.500000 10.000000 +v 1.500000 -13.500000 10.000000 +v 1.500000 -13.500000 7.000000 +v -2.500000 -13.500000 7.000000 +v -1.500000 -13.500000 6.000000 +v 2.500000 -13.500000 7.000000 +v 1.500000 -13.500000 6.000000 +v 13.500000 -2.500001 2.000000 +v 13.500000 -13.500001 2.000000 +v 13.500000 -1.500001 1.000000 +v 13.500000 -7.500001 7.000000 +v 13.500000 -1.500001 4.000000 +v 13.500000 -2.500001 4.000000 +v 13.500000 -1.500001 5.000000 +v 13.500000 2.499999 4.000000 +v 13.500000 1.499999 5.000000 +v 13.500000 1.499999 4.000000 +v 13.500000 1.499999 1.000000 +v 13.500001 13.500000 1.000000 +v 13.500000 2.499999 2.000000 +v 13.500000 -3.500001 7.000000 +v 13.500000 -3.500001 10.000000 +v 13.500000 2.499999 10.000000 +v 13.500000 3.499999 11.000000 +v 13.500000 6.499999 11.000000 +v 13.500000 3.499999 10.000000 +v 13.500000 3.499999 7.000000 +v 13.500000 7.499999 10.000000 +v 13.500000 6.499999 10.000000 +v 13.500000 6.499999 7.000000 +v 13.500000 2.499999 7.000000 +v 13.500000 3.499999 6.000000 +v 13.500000 7.499999 7.000000 +v 13.500000 6.499999 6.000000 +v 13.500000 -2.500001 10.000000 +v 1.500002 13.500000 1.000000 +v 13.500002 13.499998 2.000000 +v 2.500002 13.500000 2.000000 +v 1.500002 13.500000 4.000000 +v 2.500002 13.500000 4.000000 +v 1.500002 13.500000 5.000000 +v -2.499998 13.500000 4.000000 +v -1.499998 13.500000 5.000000 +v -1.499998 13.500000 4.000000 +v -1.499998 13.500000 1.000000 +v 13.500000 -6.500001 7.000000 +v -2.499998 13.500000 2.000000 +v 13.500000 -6.500001 10.000000 +v 13.500000 -3.500001 11.000000 +v 13.500000 -6.500001 11.000000 +v 2.500002 13.500000 10.000000 +v 1.500002 13.500000 11.000000 +v -1.499998 13.500000 11.000000 +v 1.500002 13.500000 10.000000 +v 1.500002 13.500000 7.000000 +v -2.499998 13.500000 10.000000 +v -1.499998 13.500000 10.000000 +v -1.499998 13.500000 7.000000 +v 2.500002 13.500000 7.000000 +v 1.500002 13.500000 6.000000 +v -2.499998 13.500000 7.000000 +v -1.499998 13.500000 6.000000 +v -13.500000 2.500003 2.000000 +v -13.499998 13.500003 2.000000 +v -13.500000 1.500003 1.000000 +v -13.499998 13.500003 1.000000 +v -13.500000 1.500003 4.000000 +v -13.500000 2.500003 4.000000 +v -13.500000 1.500003 5.000000 +v -13.500000 -2.499997 4.000000 +v -13.500000 -1.499997 5.000000 +v -13.500000 -1.499997 4.000000 +v -13.500000 -1.499997 1.000000 +v -13.500003 -13.499998 1.000000 +v 13.500000 -7.500001 10.000000 +v -13.500000 -2.499997 2.000000 +v -13.500000 7.500003 10.000000 +v -13.500000 6.500003 11.000000 +v -13.500000 3.500003 11.000000 +v -13.500000 6.500003 10.000000 +v -13.500000 6.500003 7.000000 +v -13.500000 2.500003 10.000000 +v -13.500000 3.500003 10.000000 +v -13.500000 3.500003 7.000000 +v -13.500000 7.500003 7.000000 +v -13.500000 6.500003 6.000000 +v -13.500000 2.500003 7.000000 +v -13.500000 3.500003 6.000000 +v -13.500000 -2.499997 10.000000 +v -13.500000 -3.499997 11.000000 +v -13.500000 -6.499997 11.000000 +v -13.500000 -3.499997 10.000000 +v -13.500000 -3.499997 7.000000 +v -13.500000 -7.499997 10.000000 +v -13.500000 -6.499997 10.000000 +v -13.500000 -6.499997 7.000000 +v -13.500000 -2.499997 7.000000 +v -13.500000 -3.499997 6.000000 +v -13.500000 -7.499997 7.000000 +v -13.500000 -6.499997 6.000000 +v -16.500000 16.500000 13.000000 +v 16.500000 16.500000 13.000000 +v -16.500000 -16.500000 13.000000 +v 16.500000 -16.500000 13.000000 +v -16.500000 16.500000 14.000000 +v 16.500000 16.500000 14.000000 +v 16.500000 -16.500000 14.000000 +v -16.500000 -16.500000 14.000000 +v -1.500000 -11.500000 13.000000 +v -11.500000 -11.500000 14.000000 +v -2.500000 -11.500000 14.000000 +v -1.500000 -11.500000 16.000000 +v -2.500000 -11.500000 16.000000 +v -1.500000 -11.500000 17.000000 +v 2.500000 -11.500000 16.000000 +v 1.500000 -11.500000 17.000000 +v 1.500000 -11.500000 16.000000 +v 1.500000 -11.500000 13.000000 +v 11.500000 -11.500000 13.000000 +v 11.500000 -3.500001 18.000000 +v 2.500000 -11.500000 14.000000 +v 11.500000 -2.500001 19.000000 +v 11.500000 -6.500001 18.000000 +v -2.500000 -11.500000 22.000000 +v -1.500000 -11.500000 23.000000 +v 1.500000 -11.500000 23.000000 +v -1.500000 -11.500000 22.000000 +v -1.500000 -11.500000 19.000000 +v 2.500000 -11.500000 22.000000 +v 1.500000 -11.500000 22.000000 +v 1.500000 -11.500000 19.000000 +v -2.500000 -11.500000 19.000000 +v -1.500000 -11.500000 18.000000 +v 2.500000 -11.500000 19.000000 +v 1.500000 -11.500000 18.000000 +v 11.500000 -2.500001 14.000000 +v 11.500000 -11.500001 14.000000 +v 11.500000 -1.500001 13.000000 +v 11.500000 -7.500001 19.000000 +v 11.500000 -1.500001 16.000000 +v 11.500000 -2.500001 16.000000 +v 11.500000 -1.500001 17.000000 +v 11.500000 2.499999 16.000000 +v 11.500000 1.499999 17.000000 +v 11.500000 1.499999 16.000000 +v 11.500000 1.499999 13.000000 +v 11.500001 11.500000 13.000000 +v 11.500000 2.499999 14.000000 +v 11.500000 -3.500001 19.000000 +v 11.500000 -3.500001 22.000000 +v 11.500000 2.499999 22.000000 +v 11.500000 3.499999 23.000000 +v 11.500000 6.499999 23.000000 +v 11.500000 3.499999 22.000000 +v 11.500000 3.499999 19.000000 +v 11.500000 7.499999 22.000000 +v 11.500000 6.499999 22.000000 +v 11.500000 6.499999 19.000000 +v 11.500000 2.499999 19.000000 +v 11.500000 3.499999 18.000000 +v 11.500000 7.499999 19.000000 +v 11.500000 6.499999 18.000000 +v 11.500000 -2.500001 22.000000 +v 1.500002 11.500000 13.000000 +v 11.500002 11.499998 14.000000 +v 2.500002 11.500000 14.000000 +v 1.500002 11.500000 16.000000 +v 2.500002 11.500000 16.000000 +v 1.500002 11.500000 17.000000 +v -2.499998 11.500000 16.000000 +v -1.499998 11.500000 17.000000 +v -1.499998 11.500000 16.000000 +v -1.499998 11.500000 13.000000 +v 11.500000 -6.500001 19.000000 +v -2.499998 11.500000 14.000000 +v 11.500000 -6.500001 22.000000 +v 11.500000 -3.500001 23.000000 +v 11.500000 -6.500001 23.000000 +v 2.500002 11.500000 22.000000 +v 1.500002 11.500000 23.000000 +v -1.499998 11.500000 23.000000 +v 1.500002 11.500000 22.000000 +v 1.500002 11.500000 19.000000 +v -2.499998 11.500000 22.000000 +v -1.499998 11.500000 22.000000 +v -1.499998 11.500000 19.000000 +v 2.500002 11.500000 19.000000 +v 1.500002 11.500000 18.000000 +v -2.499998 11.500000 19.000000 +v -1.499998 11.500000 18.000000 +v -11.500000 2.500003 14.000000 +v -11.499998 11.500003 14.000000 +v -11.500000 1.500003 13.000000 +v -11.499998 11.500003 13.000000 +v -11.500000 1.500003 16.000000 +v -11.500000 2.500003 16.000000 +v -11.500000 1.500003 17.000000 +v -11.500000 -2.499997 16.000000 +v -11.500000 -1.499997 17.000000 +v -11.500000 -1.499997 16.000000 +v -11.500000 -1.499997 13.000000 +v -11.500003 -11.499998 13.000000 +v 11.500000 -7.500001 22.000000 +v -11.500000 -2.499997 14.000000 +v -11.500000 7.500003 23.000000 +v -11.500000 6.500003 24.000000 +v -11.500000 3.500003 24.000000 +v -11.500000 6.500003 22.000000 +v -11.500000 6.500003 19.000000 +v -11.500000 2.500003 23.000000 +v -11.500000 3.500003 23.000000 +v -11.500000 3.500003 20.000000 +v -11.500000 7.500003 19.000000 +v -11.500000 6.500003 18.000000 +v -11.500000 2.500003 20.000000 +v -11.500000 3.500003 18.000000 +v -11.500000 -2.499997 23.000000 +v -11.500000 -3.499997 24.000000 +v -11.500000 -6.499997 24.000000 +v -11.500000 -3.499997 22.000000 +v -11.500000 -3.499997 19.000000 +v -11.500000 -7.499997 23.000000 +v -11.500000 -6.499997 23.000000 +v -11.500000 -6.499997 20.000000 +v -11.500000 -2.499997 19.000000 +v -11.500000 -3.499997 18.000000 +v -11.500000 -7.499997 20.000000 +v -11.500000 -6.499997 18.000000 +v -14.500000 14.500000 25.000000 +v 14.500000 14.500000 25.000000 +v -14.500000 -14.500000 25.000000 +v 14.500000 -14.500000 25.000000 +v -14.500000 14.500000 26.000000 +v 14.500000 14.500000 26.000000 +v 14.500000 -14.500000 26.000000 +v -14.500000 -14.500000 26.000000 +v -21.500000 21.500000 2.000000 +v -21.500000 -21.500000 2.000000 +v 21.500000 21.500000 2.000000 +v 21.500000 -21.500000 2.000000 +v 21.500000 21.500000 -8.000000 +v -21.500000 21.500000 -8.000000 +v -21.500000 -21.500000 -8.000000 +v 21.500000 -21.500000 -8.000000 +vn -0.0000 -1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.7071 -0.7071 -0.0000 +vn 0.7071 -0.7071 -0.0000 +vn 0.7071 0.7071 -0.0000 +vn -0.7071 0.7071 -0.0000 +s 0 +f 54//23 56//23 55//23 147//23 +f 57//23 58//23 56//23 54//23 +f 59//23 58//23 60//23 61//23 +f 63//23 64//23 82//23 66//23 +f 62//23 63//23 66//23 60//23 +f 70//23 69//23 74//23 71//23 +f 72//23 69//23 77//23 73//23 +f 75//23 76//23 79//23 74//23 +f 78//23 80//23 79//23 77//23 +f 83//24 81//24 82//24 64//24 +f 85//24 86//24 81//24 83//24 +f 87//24 86//24 88//24 89//24 +f 91//24 92//24 110//24 93//24 +f 90//24 91//24 93//24 88//24 +f 97//24 96//24 101//24 98//24 +f 99//24 96//24 104//24 100//24 +f 102//24 103//24 106//24 101//24 +f 105//24 107//24 106//24 104//24 +f 109//25 111//25 110//25 92//25 +f 112//25 113//25 111//25 109//25 +f 114//25 113//25 115//25 116//25 +f 118//25 139//25 137//25 120//25 +f 117//25 118//25 120//25 115//25 +f 125//25 124//25 129//25 126//25 +f 127//25 124//25 132//25 128//25 +f 130//25 131//25 134//25 129//25 +f 133//25 135//25 134//25 132//25 +f 138//26 136//26 137//26 139//26 +f 140//26 141//26 136//26 138//26 +f 142//26 141//26 143//26 144//26 +f 146//26 147//26 55//26 149//26 +f 145//26 146//26 149//26 143//26 +f 151//26 150//26 155//26 152//26 +f 153//26 150//26 158//26 154//26 +f 156//26 157//26 160//26 155//26 +f 159//26 161//26 160//26 158//26 +f 123//24 148//24 108//24 122//24 +f 121//24 148//24 84//24 119//24 +f 95//24 94//24 67//24 108//24 +f 68//24 65//24 67//24 84//24 +f 163//26 162//26 167//26 164//26 +f 165//26 162//26 170//26 166//26 +f 168//26 169//26 172//26 167//26 +f 171//26 173//26 172//26 170//26 +f 176//23 177//23 180//23 181//23 +f 175//25 174//25 178//25 179//25 +f 174//26 176//26 181//26 178//26 +f 177//24 175//24 179//24 180//24 +f 182//23 184//23 183//23 275//23 +f 185//23 186//23 184//23 182//23 +f 187//23 186//23 188//23 189//23 +f 191//23 192//23 210//23 194//23 +f 190//23 191//23 194//23 188//23 +f 198//23 197//23 202//23 199//23 +f 200//23 197//23 205//23 201//23 +f 203//23 204//23 207//23 202//23 +f 206//23 208//23 207//23 205//23 +f 211//24 209//24 210//24 192//24 +f 213//24 214//24 209//24 211//24 +f 215//24 214//24 216//24 217//24 +f 219//24 220//24 238//24 221//24 +f 218//24 219//24 221//24 216//24 +f 225//24 224//24 229//24 226//24 +f 227//24 224//24 232//24 228//24 +f 230//24 231//24 234//24 229//24 +f 233//24 235//24 234//24 232//24 +f 237//25 239//25 238//25 220//25 +f 240//25 241//25 239//25 237//25 +f 242//25 241//25 243//25 244//25 +f 246//25 267//25 265//25 248//25 +f 245//25 246//25 248//25 243//25 +f 253//25 252//25 257//25 254//25 +f 255//25 252//25 260//25 256//25 +f 258//25 259//25 262//25 257//25 +f 261//25 263//25 262//25 260//25 +f 266//26 264//26 265//26 267//26 +f 268//26 269//26 264//26 266//26 +f 270//26 269//26 271//26 272//26 +f 274//26 275//26 183//26 277//26 +f 273//26 274//26 277//26 271//26 +f 279//26 278//26 283//26 280//26 +f 281//26 278//26 286//26 282//26 +f 284//26 285//26 288//26 283//26 +f 287//26 289//26 288//26 286//26 +f 251//24 276//24 236//24 250//24 +f 249//24 276//24 212//24 247//24 +f 223//24 222//24 195//24 236//24 +f 196//24 193//24 195//24 212//24 +f 291//26 290//26 295//26 292//26 +f 293//26 290//26 298//26 294//26 +f 296//26 297//26 300//26 295//26 +f 299//26 301//26 300//26 298//26 +f 304//23 305//23 308//23 309//23 +f 303//25 302//25 306//25 307//25 +f 302//26 304//26 309//26 306//26 +f 305//24 303//24 307//24 308//24 +s 1 +f 311//27 316//27 317//28 313//28 +f 312//29 314//29 315//30 310//30 +f 313//28 317//28 314//29 312//29 +f 310//30 315//30 316//27 311//27 +o Glow +v -1.500000 -13.500000 1.000000 +v -1.500000 -13.500000 4.000000 +v 1.500000 -13.500000 4.000000 +v 1.500000 -13.500000 1.000000 +v -1.500000 -13.500000 10.000000 +v -1.500000 -13.500000 7.000000 +v 1.500000 -13.500000 10.000000 +v 1.500000 -13.500000 7.000000 +v 13.500000 -1.500001 1.000000 +v 13.500000 -1.500001 4.000000 +v 13.500000 1.499999 4.000000 +v 13.500000 1.499999 1.000000 +v 13.500000 -3.500001 7.000000 +v 13.500000 -3.500001 10.000000 +v 13.500000 3.499999 10.000000 +v 13.500000 3.499999 7.000000 +v 13.500000 6.499999 10.000000 +v 13.500000 6.499999 7.000000 +v 1.500002 13.500000 1.000000 +v 1.500002 13.500000 4.000000 +v -1.499998 13.500000 4.000000 +v -1.499998 13.500000 1.000000 +v 13.500000 -6.500001 7.000000 +v 13.500000 -6.500001 10.000000 +v 1.500002 13.500000 10.000000 +v 1.500002 13.500000 7.000000 +v -1.499998 13.500000 10.000000 +v -1.499998 13.500000 7.000000 +v -13.500000 1.500003 1.000000 +v -13.500000 1.500003 4.000000 +v -13.500000 -1.499997 4.000000 +v -13.500000 -1.499997 1.000000 +v -13.500000 6.500003 10.000000 +v -13.500000 6.500003 7.000000 +v -13.500000 3.500003 10.000000 +v -13.500000 3.500003 7.000000 +v -13.500000 -3.499997 10.000000 +v -13.500000 -3.499997 7.000000 +v -13.500000 -6.499997 10.000000 +v -13.500000 -6.499997 7.000000 +v -1.500000 -11.500000 13.000000 +v -1.500000 -11.500000 16.000000 +v 1.500000 -11.500000 16.000000 +v 1.500000 -11.500000 13.000000 +v -1.500000 -11.500000 22.000000 +v -1.500000 -11.500000 19.000000 +v 1.500000 -11.500000 22.000000 +v 1.500000 -11.500000 19.000000 +v 11.500000 -1.500001 13.000000 +v 11.500000 -1.500001 16.000000 +v 11.500000 1.499999 16.000000 +v 11.500000 1.499999 13.000000 +v 11.500000 -3.500001 19.000000 +v 11.500000 -3.500001 22.000000 +v 11.500000 3.499999 22.000000 +v 11.500000 3.499999 19.000000 +v 11.500000 6.499999 22.000000 +v 11.500000 6.499999 19.000000 +v 1.500002 11.500000 13.000000 +v 1.500002 11.500000 16.000000 +v -1.499998 11.500000 16.000000 +v -1.499998 11.500000 13.000000 +v 11.500000 -6.500001 19.000000 +v 11.500000 -6.500001 22.000000 +v 1.500002 11.500000 22.000000 +v 1.500002 11.500000 19.000000 +v -1.499998 11.500000 22.000000 +v -1.499998 11.500000 19.000000 +v -11.500000 1.500003 13.000000 +v -11.500000 1.500003 16.000000 +v -11.500000 -1.499997 16.000000 +v -11.500000 -1.499997 13.000000 +v -11.500000 6.500003 22.000000 +v -11.500000 6.500003 19.000000 +v -11.500000 3.500003 22.000000 +v -11.500000 3.500003 19.000000 +v -11.500000 -3.499997 22.000000 +v -11.500000 -3.499997 19.000000 +v -11.500000 -6.499997 22.000000 +v -11.500000 -6.499997 19.000000 +vn -0.0000 -1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +s 0 +f 320//31 319//31 318//31 321//31 +f 322//31 323//31 325//31 324//31 +f 328//32 327//32 326//32 329//32 +f 332//32 333//32 335//32 334//32 +f 338//33 337//33 336//33 339//33 +f 342//33 343//33 345//33 344//33 +f 348//34 347//34 346//34 349//34 +f 350//34 351//34 353//34 352//34 +f 341//32 340//32 330//32 331//32 +f 354//34 355//34 357//34 356//34 +f 360//31 359//31 358//31 361//31 +f 362//31 363//31 365//31 364//31 +f 368//32 367//32 366//32 369//32 +f 372//32 373//32 375//32 374//32 +f 378//33 377//33 376//33 379//33 +f 382//33 383//33 385//33 384//33 +f 388//34 387//34 386//34 389//34 +f 390//34 391//34 393//34 392//34 +f 381//32 380//32 370//32 371//32 +f 394//34 395//34 397//34 396//34 diff --git a/assets/voxygen/lod/coastal_workshop.obj b/assets/voxygen/lod/coastal_workshop.obj new file mode 100644 index 0000000..f938509 --- /dev/null +++ b/assets/voxygen/lod/coastal_workshop.obj @@ -0,0 +1,277 @@ +# Blender 4.0.2 +# www.blender.org +o 250_243_221 +v -12.500000 12.500000 1.000000 +v -12.500000 12.500000 14.000000 +v 12.500000 12.500000 1.000000 +v 12.500000 12.500000 14.000000 +v -12.500000 -12.500000 1.000000 +v -12.500000 -12.500000 14.000000 +v 12.500000 -12.500000 1.000000 +v 12.500000 -12.500000 14.000000 +v -16.500000 16.500000 14.000000 +v 16.500000 16.500000 14.000000 +v -16.500000 -16.500000 14.000000 +v 16.500000 -16.500000 14.000000 +v 16.500000 16.500000 15.000000 +v 16.500000 -16.500000 15.000000 +v -16.500000 -16.500000 15.000000 +v -16.500000 16.500000 15.000000 +v -21.500000 21.500000 1.000000 +v -21.500000 -21.500000 1.000000 +v 21.500000 21.500000 1.000000 +v 21.500000 -21.500000 1.000000 +v 16.292297 0.000000 15.000000 +v 11.981979 4.963099 17.754438 +v 11.520394 -11.520394 15.000000 +v 11.981980 -4.963098 17.754438 +v -0.000000 -16.292297 15.000000 +v 4.963099 -11.981979 17.754438 +v -11.520394 -11.520394 15.000000 +v -4.963098 -11.981980 17.754438 +v -16.292297 0.000000 15.000000 +v -11.981979 -4.963099 17.754438 +v -11.520394 11.520394 15.000000 +v -11.981980 4.963098 17.754438 +v -0.000000 16.292297 15.000000 +v -4.963099 11.981979 17.754438 +v 11.520394 11.520394 15.000000 +v 4.963098 11.981980 17.754438 +v 0.000000 -0.000000 20.000004 +vn -0.0000 1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -0.0000 1.0000 +vn 0.6365 -0.0000 0.7712 +vn 0.4660 -0.1930 0.8635 +vn 0.4501 -0.4501 0.7712 +vn 0.1930 -0.4660 0.8635 +vn -0.0000 -0.6365 0.7712 +vn -0.1930 -0.4660 0.8635 +vn -0.4501 -0.4501 0.7712 +vn -0.4660 -0.1930 0.8635 +vn -0.6365 -0.0000 0.7712 +vn -0.4660 0.1930 0.8635 +vn -0.4501 0.4501 0.7712 +vn -0.1930 0.4660 0.8635 +vn -0.0000 0.6365 0.7712 +vn 0.1930 0.4660 0.8635 +vn 0.4501 0.4501 0.7712 +vn 0.4660 0.1930 0.8635 +s 1 +f 1//1 2//1 4//1 3//1 +f 3//2 4//2 8//2 7//2 +f 7//3 8//3 6//3 5//3 +f 5//4 6//4 2//4 1//4 +f 12//5 11//5 9//5 10//5 +f 11//3 12//3 14//3 15//3 +f 10//1 9//1 16//1 13//1 +f 9//4 11//4 15//4 16//4 +f 12//2 10//2 13//2 14//2 +f 16//6 15//6 14//6 13//6 +f 17//6 18//6 20//6 19//6 +f 21//7 24//8 23//9 +f 23//9 26//10 25//11 +f 25//11 28//12 27//13 +f 27//13 30//14 29//15 +f 29//15 32//16 31//17 +f 31//17 34//18 33//19 +f 33//19 36//20 35//21 +f 35//21 22//22 21//7 +f 21//7 22//22 24//8 +f 23//9 24//8 26//10 +f 25//11 26//10 28//12 +f 27//13 28//12 30//14 +f 29//15 30//14 32//16 +f 31//17 32//16 34//18 +f 33//19 34//18 36//20 +f 35//21 36//20 22//22 +f 22//22 36//20 37//6 +f 36//20 34//18 37//6 +f 34//18 32//16 37//6 +f 32//16 30//14 37//6 +f 30//14 28//12 37//6 +f 28//12 26//10 37//6 +f 26//10 24//8 37//6 +f 24//8 22//22 37//6 +o 11_146_187 +v 7.500000 -13.500000 1.000000 +v 13.500000 -13.500000 1.000000 +v 8.500000 -13.500000 2.000000 +v 13.500000 -13.500001 2.000000 +v 1.500002 13.500000 4.000000 +v -16.500000 16.500000 15.000000 +v 16.500000 16.500000 15.000000 +v -16.500000 -16.500000 15.000000 +v 16.500000 -16.500000 15.000000 +v -16.500000 16.500000 16.000000 +v 16.500000 16.500000 16.000000 +v 16.500000 -16.500000 16.000000 +v -16.500000 -16.500000 16.000000 +v -21.500000 21.500000 2.000000 +v -21.500000 -21.500000 2.000000 +v 21.500000 21.500000 2.000000 +v 21.500000 -21.500000 2.000000 +v 21.500000 21.500000 -8.000000 +v -21.500000 21.500000 -8.000000 +v -21.500000 -21.500000 -8.000000 +v 21.500000 -21.500000 -8.000000 +v 7.500000 -13.500000 6.000000 +v 8.500000 -13.500000 6.000000 +v 4.500000 -13.500000 9.000000 +v 4.500000 -13.500000 10.000000 +v -7.500000 -13.500000 1.000000 +v -8.500000 -13.500000 2.000000 +v -7.500000 -13.500000 6.000000 +v -8.500000 -13.500000 6.000000 +v -4.500000 -13.500000 9.000000 +v -4.500000 -13.500000 10.000000 +v 13.500001 7.500000 1.000000 +v 13.500001 13.500000 1.000000 +v 13.500001 8.500000 2.000000 +v 13.500002 13.499999 2.000000 +v 13.500001 7.500000 6.000000 +v 13.500001 8.500000 6.000000 +v 13.500000 4.500000 9.000000 +v 13.500000 4.500000 10.000000 +v 13.500000 -7.500001 1.000000 +v 13.500000 -8.500001 2.000000 +v 13.500000 -7.500001 6.000000 +v 13.500000 -8.500001 6.000000 +v 13.500000 -4.500001 9.000000 +v 13.500000 -4.500001 10.000000 +v -7.499998 13.500000 1.000000 +v -8.499998 13.500000 2.000000 +v -7.499998 13.500000 6.000000 +v -8.499998 13.500000 6.000000 +v -4.499998 13.500000 9.000000 +v -4.499998 13.500000 10.000000 +v 7.500002 13.500000 1.000000 +v 8.500002 13.500000 2.000000 +v 7.500002 13.500000 6.000000 +v 8.500002 13.500000 6.000000 +v 4.500002 13.500000 9.000000 +v 4.500002 13.500000 10.000000 +v -13.500003 -7.499998 1.000000 +v -13.500003 -13.499998 1.000000 +v -13.500003 -8.499998 2.000000 +v -13.500004 -13.499997 2.000000 +v -13.500003 -7.499998 6.000000 +v -13.500003 -8.499998 6.000000 +v -13.500000 -4.499998 9.000000 +v -13.500000 -4.499998 10.000000 +v -13.500000 7.500003 1.000000 +v -13.499998 13.500003 1.000000 +v -13.500000 8.500003 2.000000 +v -13.499998 13.500003 2.000000 +v -13.500000 7.500003 6.000000 +v -13.500000 8.500003 6.000000 +v -13.500000 4.500003 9.000000 +v -13.500000 4.500003 10.000000 +v 3.233578 2.070523 18.466816 +v 3.233578 2.070523 20.466816 +v 3.233579 -2.070523 18.466816 +v 3.233579 -2.070523 20.466816 +v 2.070523 -3.233578 18.466816 +v 2.070523 -3.233578 20.466816 +v -2.070523 -3.233579 18.466816 +v -2.070523 -3.233579 20.466816 +v -3.233578 -2.070523 18.466816 +v -3.233578 -2.070523 20.466816 +v -3.233579 2.070523 18.466816 +v -3.233579 2.070523 20.466816 +v -2.070523 3.233578 18.466816 +v -2.070523 3.233578 20.466816 +v 2.070523 3.233579 18.466816 +v 2.070523 3.233579 20.466816 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.7071 -0.7071 -0.0000 +vn 0.7071 -0.7071 -0.0000 +vn 0.7071 0.7071 -0.0000 +vn -0.7071 0.7071 -0.0000 +s 0 +f 38//23 39//23 41//23 40//23 +f 45//23 46//23 49//23 50//23 +f 44//24 43//24 47//24 48//24 +f 43//25 45//25 50//25 47//25 +f 46//26 44//26 48//26 49//26 +s 1 +f 52//27 57//27 58//28 54//28 +f 53//29 55//29 56//30 51//30 +f 54//28 58//28 55//29 53//29 +f 51//30 56//30 57//27 52//27 +s 0 +f 38//23 40//23 60//23 59//23 +f 59//23 60//23 62//23 61//23 +f 63//23 64//23 98//23 96//23 +f 63//23 65//23 66//23 64//23 +f 65//23 67//23 68//23 66//23 +f 62//23 68//23 67//23 61//23 +f 69//26 70//26 72//26 71//26 +f 69//26 71//26 74//26 73//26 +f 73//26 74//26 76//26 75//26 +f 77//26 78//26 41//26 39//26 +f 77//26 79//26 80//26 78//26 +f 79//26 81//26 82//26 80//26 +f 76//26 82//26 81//26 75//26 +f 83//24 104//24 106//24 84//24 +f 83//24 84//24 86//24 85//24 +f 85//24 86//24 88//24 87//24 +f 89//24 90//24 72//24 70//24 +f 89//24 91//24 92//24 90//24 +f 91//24 93//24 94//24 92//24 +f 88//24 94//24 93//24 87//24 +f 95//25 96//25 98//25 97//25 +f 95//25 97//25 100//25 99//25 +f 99//25 100//25 102//25 101//25 +f 103//25 105//25 106//25 104//25 +f 103//25 107//25 108//25 105//25 +f 107//25 109//25 110//25 108//25 +f 102//25 110//25 109//25 101//25 +f 111//26 112//26 114//26 113//26 +f 113//28 114//28 116//28 115//28 +f 115//23 116//23 118//23 117//23 +f 117//27 118//27 120//27 119//27 +f 119//25 120//25 122//25 121//25 +f 121//30 122//30 124//30 123//30 +f 123//24 124//24 126//24 125//24 +f 125//29 126//29 112//29 111//29 +o Glow +v 7.500000 -13.500000 1.000000 +v 7.500000 -13.500000 6.000000 +v 4.500000 -13.500000 9.000000 +v -7.500000 -13.500000 1.000000 +v -7.500000 -13.500000 6.000000 +v -4.500000 -13.500000 9.000000 +v 13.500001 7.500000 1.000000 +v 13.500001 7.500000 6.000000 +v 13.500000 4.500000 9.000000 +v 13.500000 -7.500001 1.000000 +v 13.500000 -7.500001 6.000000 +v 13.500000 -4.500001 9.000000 +v -7.500001 13.500000 1.000000 +v -7.500001 13.500000 6.000000 +v -4.500001 13.500000 9.000000 +v 7.499999 13.500000 1.000000 +v 7.499999 13.500000 6.000000 +v 4.499999 13.500000 9.000000 +v -13.499999 -7.500001 1.000000 +v -13.499999 -7.500001 6.000000 +v -13.500000 -4.500001 9.000000 +v -13.500000 7.500000 1.000000 +v -13.500000 7.500000 6.000000 +v -13.500000 4.500000 9.000000 +vn -0.0000 -1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +s 0 +f 128//31 129//31 132//31 131//31 130//31 127//31 +f 134//32 135//32 138//32 137//32 136//32 133//32 +f 140//33 141//33 144//33 143//33 142//33 139//33 +f 146//34 147//34 150//34 149//34 148//34 145//34 diff --git a/assets/voxygen/lod/dead.obj b/assets/voxygen/lod/dead.obj new file mode 100644 index 0000000..f602816 --- /dev/null +++ b/assets/voxygen/lod/dead.obj @@ -0,0 +1,245 @@ +# Blender 4.0.2 +# www.blender.org +o 55_34_32 +v 4.583673 -2.023841 12.075230 +v 2.796775 -1.971031 8.675249 +v 0.130603 3.123461 10.552462 +v 2.777787 1.795150 8.900269 +v -1.254672 -2.464553 12.864667 +v 2.443715 -2.809228 14.327894 +v -2.490352 -2.505429 17.582880 +v 1.312521 -0.462026 18.341013 +v 5.394847 3.467124 16.324224 +v 3.992376 2.068353 13.996899 +v -0.174001 3.739167 -8.281981 +v 3.655940 0.066843 -8.353929 +v 0.183083 -3.703707 -8.340870 +v -3.649561 0.057082 -8.125357 +v -9.769140 4.254962 23.510063 +v -10.107554 0.700385 25.113279 +v -10.873705 1.635792 21.782524 +v -15.701206 7.000618 29.704639 +v -13.359118 4.936497 28.953436 +v -15.712667 4.088346 27.439190 +v -14.070798 6.106727 33.950611 +v -15.586788 5.069827 34.510929 +v 3.546016 4.891064 19.356836 +v 8.079524 4.116474 19.164513 +v 4.313796 2.993076 20.786123 +v 9.469185 12.306007 26.796953 +v 10.969481 13.648197 25.308693 +v 12.703499 11.970101 25.609535 +v 11.279087 10.803842 27.289217 +v 13.370955 13.283663 31.649529 +v 11.504487 16.798622 33.582554 +v 11.586877 15.008470 34.040134 +v 2.443537 -4.227890 18.771429 +v -0.854191 -10.481255 23.698339 +v -0.077217 -5.244345 23.757465 +v 1.929686 -9.121767 23.587290 +v -1.970925 -8.228651 25.678833 +v 0.357521 -7.277802 31.754528 +v 1.671924 -10.501725 31.994251 +v -0.501996 -10.063537 31.288830 +v -2.014196 -11.125816 36.675900 +v 9.430083 2.376263 14.899508 +v 8.651584 -0.591339 13.281208 +v 12.196840 1.155543 21.701775 +v -0.674964 2.234195 18.530603 +v 5.700233 2.203846 14.565385 +v 5.315812 -0.025241 19.151245 +v -1.907048 0.765552 16.618431 +v -4.188406 -1.505145 21.501616 +v -2.535057 -11.524503 37.170887 +vn 0.3178 0.9198 -0.2303 +vn -0.0333 -0.9883 -0.1486 +vn -0.1207 0.8233 -0.5546 +vn -0.0508 0.0055 -0.9987 +vn -0.0117 0.0073 -0.9999 +vn 0.9987 0.0020 0.0506 +vn -0.7005 -0.7136 -0.0058 +vn 0.1918 -0.9789 0.0702 +vn -0.9568 -0.2809 0.0754 +vn -0.7162 0.6973 0.0305 +vn 0.5052 -0.0545 0.8613 +vn 0.6784 0.6359 0.3678 +vn -0.4740 0.5418 -0.6941 +vn -0.8215 0.0915 0.5628 +vn 0.5127 0.3929 -0.7634 +vn -0.7206 0.6848 -0.1088 +vn 0.7564 -0.6190 0.2116 +vn -0.6987 0.7127 -0.0616 +vn 0.8444 0.1688 0.5084 +vn 0.3074 -0.6836 -0.6619 +vn -0.0228 -0.6113 -0.7911 +vn 0.4306 -0.8926 -0.1333 +vn 0.9198 0.3818 0.0909 +vn -0.8691 -0.4900 0.0673 +vn -0.7401 -0.1853 0.6465 +vn 0.7441 -0.1928 0.6396 +vn -0.1137 0.9817 -0.1530 +vn -0.2034 0.0507 0.9778 +vn 0.8203 -0.5449 -0.1739 +vn -0.2377 0.8216 0.5181 +vn -0.9630 0.0976 -0.2513 +vn -0.7629 0.6465 -0.0050 +vn -0.6444 -0.7599 -0.0852 +vn 0.2573 0.6907 0.6758 +vn 0.6086 0.7934 -0.0148 +vn -0.0952 0.8775 -0.4700 +vn -0.4264 -0.9033 -0.0467 +vn -0.7261 0.6868 0.0342 +vn 0.7348 -0.6769 -0.0439 +vn 0.5087 0.3188 0.7997 +vn 0.5078 0.3136 0.8024 +vn 0.3946 -0.9011 0.1798 +vn -0.5043 -0.1603 -0.8486 +vn -0.3483 0.6140 -0.7083 +vn -0.5466 -0.8305 -0.1075 +vn -0.4463 0.6162 -0.6489 +vn -0.1648 -0.7289 0.6645 +vn 0.8332 0.1595 0.5295 +vn 0.6429 0.7610 -0.0867 +vn -0.9998 -0.0111 0.0193 +vn -0.4225 -0.7606 0.4930 +vn -0.4403 0.8295 0.3437 +vn -0.7406 0.1865 0.6455 +vn -0.3885 0.7201 -0.5749 +vn -0.4642 -0.2844 0.8388 +vn 0.6987 0.1608 -0.6971 +vn -0.1980 -0.5169 0.8329 +vn 0.8247 -0.5507 0.1285 +vn 0.7565 0.6036 -0.2518 +vn 0.6870 -0.7222 0.0811 +vn -0.9968 -0.0268 0.0747 +vn 0.7954 0.3743 0.4767 +vn 0.7913 0.3723 0.4850 +vn 0.7936 0.3736 0.4802 +vn -0.9037 0.3901 -0.1767 +vn -0.5404 0.6703 0.5085 +vn -0.9337 -0.3179 -0.1649 +vn 0.8873 0.4563 0.0678 +vn -0.7653 0.6127 0.1974 +vn -0.2170 -0.9741 0.0637 +vn -0.9201 0.2310 0.3165 +vn 0.7171 0.3377 0.6097 +vn 0.6277 0.1389 -0.7660 +vn 0.3803 -0.8998 -0.2138 +vn 0.8081 -0.4464 -0.3844 +vn 0.8060 -0.4430 -0.3926 +vn 0.8060 -0.4429 -0.3927 +vn -0.2518 -0.4409 0.8615 +vn -0.0416 0.9979 -0.0505 +vn -0.0632 0.9775 0.2011 +vn 0.9236 -0.0341 -0.3818 +vn 0.3145 -0.9471 0.0641 +vn 0.2184 -0.9672 -0.1298 +vn 0.0315 -0.9522 -0.3040 +vn -0.3091 -0.9468 -0.0891 +vn -0.1184 -0.5030 0.8561 +vn 0.6949 -0.4619 -0.5512 +vn -0.1018 -0.1443 0.9843 +vn 0.8236 0.3164 0.4707 +vn 0.8221 0.3155 0.4740 +vn 0.8207 0.3148 0.4768 +vn -0.9036 0.3901 -0.1768 +vn -0.9036 0.3901 -0.1767 +vn 0.0007 -0.9811 -0.1933 +vn 0.9209 -0.2161 -0.3242 +vn 0.9209 -0.2161 -0.3243 +s 0 +f 46//1 4//1 3//1 +f 5//2 2//2 6//2 +f 48//3 15//3 45//3 +f 11//4 13//4 14//4 +f 12//5 13//5 11//5 +f 4//6 2//6 12//6 +f 5//7 14//7 13//7 +f 5//8 13//8 2//8 +f 5//9 48//9 14//9 +f 48//10 3//10 14//10 +f 16//11 49//11 8//11 +f 19//12 15//12 18//12 +f 20//13 18//13 15//13 +f 26//14 23//14 25//14 +f 28//15 9//15 27//15 +f 26//16 27//16 23//16 +f 29//17 24//17 28//17 +f 27//18 26//18 32//18 +f 31//19 32//19 30//19 +f 36//20 34//20 33//20 +f 33//21 34//21 7//21 +f 34//22 36//22 39//22 +f 38//23 39//23 36//23 +f 40//24 37//24 34//24 +f 44//25 46//25 1//25 +f 1//26 10//26 6//26 +f 10//27 45//27 23//27 +f 8//28 33//28 47//28 +f 6//29 47//29 33//29 +f 10//30 46//30 3//30 +f 5//31 7//31 48//31 +f 48//32 45//32 3//32 +f 35//33 49//33 7//33 +f 49//34 35//34 8//34 +f 4//35 11//35 3//35 +f 23//36 9//36 10//36 +f 49//37 17//37 7//37 +f 14//38 3//38 11//38 +f 12//39 2//39 13//39 +f 45//40 15//40 8//40 +f 15//41 16//41 8//41 +f 19//42 22//42 20//42 +f 7//43 17//43 48//43 +f 48//44 17//44 15//44 +f 16//45 20//45 17//45 +f 17//46 20//46 15//46 +f 19//47 20//47 16//47 +f 19//48 16//48 15//48 +f 18//49 21//49 19//49 +f 22//50 18//50 20//50 +f 30//51 26//51 29//51 +f 18//52 22//52 21//52 +f 8//53 25//53 23//53 +f 23//54 27//54 9//54 +f 29//55 26//55 25//55 +f 28//56 24//56 9//56 +f 29//57 25//57 47//57 +f 29//58 47//58 24//58 +f 27//59 30//59 28//59 +f 28//60 30//60 29//60 +f 31//61 27//61 32//61 +f 35//62 33//63 8//64 +f 40//65 41//65 38//65 +f 7//66 37//66 35//66 +f 34//67 37//67 7//67 +f 35//68 38//68 36//68 +f 37//69 38//69 35//69 +f 39//70 40//70 34//70 +f 40//71 38//71 37//71 +f 41//72 39//72 38//72 +f 4//73 43//73 2//73 +f 43//74 1//74 2//74 +f 47//75 10//76 9//77 +f 1//78 46//78 10//78 +f 46//79 42//79 4//79 +f 46//80 44//80 42//80 +f 44//81 43//81 42//81 +f 43//82 44//82 1//82 +f 6//83 2//83 1//83 +f 6//84 33//84 5//84 +f 7//85 5//85 33//85 +f 25//86 8//86 47//86 +f 9//87 24//87 47//87 +f 23//88 45//88 8//88 +f 10//27 3//27 45//27 +f 4//35 12//35 11//35 +f 49//37 16//37 17//37 +f 19//42 21//42 22//42 +f 30//51 32//51 26//51 +f 27//59 31//59 30//59 +f 35//89 36//90 33//91 +f 40//92 50//93 41//65 +f 40//94 39//94 41//94 +f 4//73 42//73 43//73 +f 47//95 6//96 10//96 diff --git a/assets/voxygen/lod/desert_houses.obj b/assets/voxygen/lod/desert_houses.obj new file mode 100644 index 0000000..4db1b86 --- /dev/null +++ b/assets/voxygen/lod/desert_houses.obj @@ -0,0 +1,625 @@ +# Blender 4.0.2 +# www.blender.org +o 160_82_42 +v 5.993222 10.515446 15.599376 +v 6.349261 11.777072 15.515311 +v 7.612847 11.402067 15.521106 +v 7.238647 10.158979 15.606589 +v 7.922461 10.307720 29.237497 +v 7.673332 11.154257 1.794079 +v 7.077478 9.291567 29.354969 +v 7.694721 9.256896 1.870743 +v 6.932187 11.150958 29.214931 +v 5.776778 11.135681 1.802227 +v 6.063512 10.167058 29.334517 +v 5.792804 9.238877 1.878883 +v 17.805515 13.712592 16.484823 +v 17.472303 15.050340 16.163088 +v 18.856592 15.345944 16.044123 +v 19.163078 14.016464 16.367260 +v 20.465593 17.161993 30.677265 +v 18.300056 12.468381 1.541090 +v 20.212337 15.810129 31.068274 +v 19.321512 10.730244 1.893278 +v 19.091021 17.437536 30.672064 +v 16.528835 11.487424 1.821465 +v 18.798676 16.104012 31.064013 +v 17.544966 9.747075 2.174325 +vn 0.6301 -0.7733 0.0710 +vn 0.4681 -0.8836 0.0069 +vn -0.8958 -0.4430 0.0351 +vn -0.7725 -0.6311 0.0698 +vn 0.7773 0.6291 -0.0080 +vn 0.8747 0.4847 -0.0017 +vn 0.2511 -0.9663 -0.0560 +vn -0.9455 -0.3255 -0.0043 +vn -0.4597 0.8878 0.0219 +vn -0.2909 0.9552 0.0548 +vn 0.9754 0.2205 -0.0031 +vn -0.6320 0.7749 -0.0094 +vn 0.9299 -0.3566 0.0904 +vn 0.8393 -0.5399 0.0636 +vn -0.5630 -0.7989 0.2118 +vn -0.3620 -0.8967 0.2548 +vn 0.3703 0.9083 -0.1945 +vn 0.5259 0.8309 -0.1818 +vn 0.6873 -0.7252 0.0415 +vn -0.6656 -0.7281 0.1638 +vn -0.8325 0.5527 -0.0370 +vn -0.7166 0.6965 -0.0359 +vn 0.7424 0.6503 -0.1610 +vn -0.9292 0.3683 -0.0299 +s 1 +f 8//1 4//2 1//3 12//4 +f 6//5 3//6 4//2 8//1 +f 4//2 7//7 11//8 1//3 +f 2//9 9//10 5//11 3//6 +f 10//12 2//9 3//6 6//5 +f 12//4 1//3 2//9 10//12 +f 3//6 5//11 7//7 4//2 +f 1//3 11//8 9//10 2//9 +f 20//13 16//14 13//15 24//16 +f 18//17 15//18 16//14 20//13 +f 16//14 19//19 23//20 13//15 +f 14//21 21//22 17//23 15//18 +f 22//24 14//21 15//18 18//17 +f 24//16 13//15 14//21 22//24 +f 15//18 17//23 19//19 16//14 +f 13//15 23//20 21//22 14//21 +o 235_178_99 +v 11.500001 21.499998 2.999998 +v 6.500001 20.160252 2.999999 +v 2.839749 16.499998 2.999999 +v 1.500003 11.499999 2.999999 +v 2.839748 6.500000 3.000000 +v 6.500000 2.839747 3.000000 +v 11.499999 1.500001 3.000000 +v 16.499998 2.839747 3.000000 +v 20.160252 6.499999 3.000000 +v 21.499998 11.499997 2.999999 +v 20.160254 16.499996 2.999999 +v 16.500000 20.160250 2.999999 +vn -0.0000 -0.0000 1.0000 +s 0 +f 33//25 34//25 35//25 36//25 25//25 26//25 27//25 28//25 29//25 30//25 31//25 32//25 +o 247_216_136 +v -29.499994 -29.499994 2.000001 +v 23.499998 -29.499998 2.000001 +v -29.499990 23.499998 1.999999 +v 23.500002 23.499994 1.999999 +v -29.499994 -29.499994 -10.334024 +v 23.499998 -29.499998 -10.334024 +v -29.499990 23.499998 -10.334026 +v 23.500002 23.499994 -10.334026 +v 11.500001 21.499998 2.999998 +v 6.500001 20.160252 2.999999 +v 2.839749 16.499998 2.999999 +v 1.500003 11.499999 2.999999 +v 2.839748 6.500000 3.000000 +v 6.500000 2.839747 3.000000 +v 11.499999 1.500001 3.000000 +v 16.499998 2.839747 3.000000 +v 20.160252 6.499999 3.000000 +v 21.499998 11.499997 2.999999 +v 20.160254 16.499996 2.999999 +v 16.500000 20.160250 2.999999 +v 6.500001 20.160252 0.606671 +v 11.500001 21.499998 0.606671 +v 2.839749 16.499998 0.606672 +v 1.500003 11.499999 0.606672 +v 2.839748 6.500000 0.606672 +v 6.500000 2.839747 0.606672 +v 11.499999 1.500001 0.606672 +v 16.499998 2.839747 0.606672 +v 20.160252 6.499999 0.606672 +v 21.499998 11.499997 0.606672 +v 20.160254 16.499996 0.606672 +v 16.500000 20.160250 0.606671 +v -0.500002 -24.500000 1.999999 +v -0.500002 -24.500002 11.999999 +v -0.500001 -10.500000 2.000000 +v -0.500001 -10.500001 12.000000 +v 17.499998 -26.500002 1.999999 +v 17.499998 -24.500004 11.999999 +v 17.500000 -10.500001 2.000000 +v 17.500000 -10.500002 12.000000 +v 1.499998 -22.500002 11.999999 +v 1.499998 -22.500000 22.000000 +v 1.499999 -12.500001 11.999999 +v 1.499999 -12.500001 21.999998 +v 1.499998 -24.500002 11.999999 +v 15.499998 -22.500002 22.000000 +v 15.499999 -12.500002 11.999999 +v 15.499999 -12.500002 21.999998 +v 3.499999 -20.500000 22.000000 +v 3.499999 -20.500002 32.000000 +v 3.499999 -14.500001 22.000000 +v 3.499999 -14.500001 32.000000 +v 3.499998 -22.500000 22.000000 +v 13.499998 -20.500004 32.000000 +v 13.499999 -14.500002 22.000000 +v -0.500002 -26.500000 1.999999 +v 15.499998 -24.500004 11.999999 +v 15.499998 -26.500004 11.999999 +v 13.499998 -24.500002 21.999998 +v 17.499998 -26.500004 11.999999 +v 13.499998 -22.500002 22.000000 +v 15.499998 -24.500002 21.999998 +v 11.499998 -20.500002 32.000000 +v 11.499998 -22.500002 32.000000 +v 13.499998 -22.500004 32.000000 +v 9.999999 -10.500001 1.999999 +v 6.999999 -10.500001 1.999999 +v 6.999999 -10.500002 12.000000 +v 9.999999 -10.500000 7.000000 +v 6.999999 -10.500000 7.000000 +v 9.999999 -10.500002 12.000000 +v 9.999999 -12.500001 11.999999 +v 6.999999 -12.500001 11.999999 +v 6.999999 -12.500002 22.000000 +v 9.999999 -12.500001 17.000000 +v 6.999999 -12.500001 17.000000 +v 9.999999 -12.500002 22.000000 +v 13.499999 -14.500002 32.000000 +v 9.999999 -14.500001 22.000000 +v 6.999999 -14.500001 22.000000 +v 6.999999 -14.500002 32.000000 +v 9.999999 -14.500001 27.000002 +v 6.999999 -14.500001 27.000002 +v 9.999999 -14.500002 32.000000 +v -25.500002 4.500000 1.999999 +v -25.500002 4.499998 11.999999 +v -25.500000 18.500000 2.000000 +v -25.500000 18.499998 12.000000 +v -7.500002 2.499999 1.999999 +v -7.500002 4.499997 11.999999 +v -7.500001 18.499998 2.000000 +v -7.500001 18.499996 12.000000 +v -25.500002 2.500000 1.999999 +v -9.500002 4.499997 11.999999 +v -9.500002 2.499997 11.999999 +v -7.500002 2.499997 11.999999 +v -15.000001 18.500000 1.999999 +v -18.000000 18.500000 1.999999 +v -18.000000 18.499998 12.000000 +v -15.000001 18.500002 7.000000 +v -18.000000 18.500002 7.000000 +v -15.000001 18.499998 12.000000 +v -20.499998 -10.499998 2.000000 +v -20.499998 -10.499998 8.000000 +v -10.500000 -10.499999 2.000000 +v -10.500000 -10.499999 8.000000 +v -10.500000 -20.500000 8.000000 +v -19.500000 -11.499999 8.000000 +v -19.500000 -11.499999 36.000000 +v -11.500000 -11.500000 8.000000 +v -11.500000 -11.500000 36.000000 +v -19.500000 -19.499998 8.000000 +v -19.500000 -19.499998 36.000000 +v -11.500000 -19.500000 8.000000 +v -11.500000 -19.500000 36.000000 +v -21.499998 -9.499998 36.000000 +v -21.499998 -9.499998 40.000000 +v -9.500000 -9.499999 36.000000 +v -9.500000 -9.499999 40.000000 +v -21.500000 -21.499998 36.000000 +v -21.500000 -21.499998 40.000000 +v -9.500000 -21.500000 36.000000 +v -9.500000 -21.500000 40.000000 +v -14.500000 -10.499999 2.000000 +v -14.500000 -10.499999 6.000000 +v -16.500000 -10.499999 6.000000 +v -16.500000 -10.499999 2.000000 +v -20.500000 -20.499998 2.000000 +v -20.500000 -20.499998 8.000000 +v -10.500000 -20.500000 2.000000 +v -14.500000 -20.499998 2.000000 +v -14.500000 -20.499998 6.000000 +v -16.500002 -20.499998 6.000000 +v -16.500002 -20.499998 2.000000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn -0.8660 0.5000 -0.0000 +vn 0.8660 0.5000 -0.0000 +vn 0.5000 -0.8660 -0.0000 +vn -0.8660 -0.5000 -0.0000 +vn 0.5000 0.8660 -0.0000 +vn -0.5000 0.8660 -0.0000 +vn 0.8660 -0.5000 -0.0000 +vn -0.5000 -0.8660 -0.0000 +vn -0.6402 -0.0000 0.7682 +vn -0.7809 -0.0000 0.6247 +vn -0.5300 -0.0000 0.8480 +s 0 +f 38//26 40//26 39//26 37//26 +f 41//27 42//27 38//27 37//27 +f 42//28 44//28 40//28 38//28 +f 43//29 41//29 37//29 39//29 +f 44//30 43//30 39//30 40//30 +f 63//31 62//31 61//31 60//31 59//31 57//31 58//31 68//31 67//31 66//31 65//31 64//31 +s 1 +f 60//29 48//29 47//32 59//32 +f 67//33 55//33 54//28 66//28 +f 64//34 52//34 51//27 63//27 +f 61//35 49//35 48//29 60//29 +f 68//36 56//36 55//33 67//33 +f 57//37 46//37 45//30 58//30 +f 65//38 53//38 52//34 64//34 +f 62//39 50//39 49//35 61//35 +f 58//30 45//30 56//36 68//36 +f 59//32 47//32 46//37 57//37 +f 66//28 54//28 53//38 65//38 +f 63//27 51//27 50//39 62//39 +s 0 +f 69//29 70//29 72//29 71//29 +f 102//30 107//30 76//30 75//30 +f 75//28 76//28 96//28 73//28 +f 70//27 69//27 93//27 +f 76//26 107//26 104//26 72//26 70//26 74//26 +f 77//29 78//29 80//29 79//29 +f 108//30 113//30 84//30 83//30 +f 97//27 78//27 77//27 +f 81//40 95//40 97//40 77//40 +f 84//26 80//26 78//26 82//26 +f 85//29 86//29 88//29 87//29 +f 89//27 97//27 101//27 100//27 +f 85//41 89//41 100//41 99//41 +f 114//26 88//26 86//26 90//26 +f 92//42 94//42 93//42 69//42 +f 94//26 96//26 74//26 93//26 +f 92//27 73//27 96//27 94//27 +f 95//26 98//26 82//26 97//26 +f 95//27 81//27 93//27 98//27 +f 84//28 98//28 93//28 83//28 +f 100//26 101//26 90//26 99//26 +f 85//27 99//27 86//27 +f 91//28 114//28 101//28 97//28 +f 71//30 72//30 104//30 103//30 +f 106//30 104//30 107//30 105//30 +f 79//30 80//30 110//30 109//30 +f 112//30 110//30 113//30 111//30 +f 115//30 120//30 114//30 91//30 +f 87//30 88//30 117//30 116//30 +f 119//30 117//30 120//30 118//30 +f 121//29 122//29 124//29 123//29 +f 133//30 138//30 128//30 127//30 +f 127//28 128//28 132//28 125//28 +f 122//27 121//27 130//27 +f 128//26 138//26 135//26 124//26 122//26 126//26 +f 129//42 131//42 130//42 121//42 +f 131//26 132//26 126//26 130//26 +f 129//27 125//27 132//27 131//27 +f 123//30 124//30 135//30 134//30 +f 137//30 135//30 138//30 136//30 +f 141//28 142//28 143//28 166//28 +f 166//27 143//27 168//27 167//27 +f 164//29 165//29 140//29 139//29 +f 143//26 142//26 140//26 165//26 +f 144//30 145//30 147//30 146//30 +f 146//28 147//28 151//28 150//28 +f 150//27 151//27 149//27 148//27 +f 148//29 149//29 145//29 144//29 +f 151//26 147//26 145//26 149//26 +f 152//30 153//30 155//30 154//30 +f 154//28 155//28 159//28 158//28 +f 158//27 159//27 157//27 156//27 +f 156//29 157//29 153//29 152//29 +f 154//31 158//31 156//31 152//31 +f 159//26 155//26 153//26 157//26 +f 141//30 160//30 161//30 142//30 +f 163//30 139//30 140//30 162//30 +f 140//30 142//30 161//30 162//30 +f 170//27 169//27 165//27 164//27 +f 165//27 169//27 168//27 143//27 +o 58_130_38 +v 6.433788 7.311078 27.056831 +v 9.412887 4.046611 28.613037 +v 10.072630 7.831944 26.009733 +v 9.592328 4.782991 17.956688 +v 13.248020 9.249918 29.774715 +v 10.201900 12.587851 26.271828 +v 14.834641 9.538544 16.488087 +v 10.737473 15.529825 28.139833 +v 7.273140 13.423954 26.143425 +v 10.493132 16.934341 20.479174 +v 4.611688 14.032773 28.902292 +v 4.577258 12.078886 26.668325 +v 2.654070 15.144486 18.238459 +v 1.497373 11.322687 30.740900 +v 4.071856 9.241083 28.036182 +v 0.507693 10.532912 17.646038 +v 3.216637 7.366973 29.149836 +v 4.393483 4.828828 18.097717 +v 7.155706 10.295927 31.921349 +v 20.781256 13.475782 28.698236 +v 25.316906 12.258583 30.554077 +v 23.829224 16.030193 27.624800 +v 25.446478 12.816441 19.054932 +v 25.761583 19.230310 31.691130 +v 21.194038 20.436232 27.734882 +v 27.525944 20.140451 17.404274 +v 19.915752 23.459455 29.649197 +v 18.052429 19.502508 27.506878 +v 19.164528 24.440899 21.342987 +v 15.179105 18.574850 30.401878 +v 16.356754 16.732473 28.067251 +v 13.148545 18.239597 18.837830 +v 13.841928 14.348069 32.418701 +v 17.483646 13.886909 29.634380 +v 13.877801 12.793073 18.326080 +v 17.745811 11.710732 30.885300 +v 20.685879 9.858114 19.100384 +v 19.537773 16.706268 33.841637 +vn -0.7681 -0.6133 0.1843 +vn -0.7230 -0.6883 -0.0597 +vn -0.7678 -0.6081 0.2019 +vn 0.1826 -0.9602 0.2115 +vn 0.1778 -0.9613 0.2105 +vn -0.0279 -0.9275 0.3728 +vn 0.9766 -0.0223 0.2141 +vn 0.9857 -0.1684 0.0050 +vn 0.9769 -0.0265 0.2120 +vn -0.2268 0.9152 -0.3330 +vn 0.3822 -0.9237 0.0256 +vn 0.9563 -0.2593 0.1352 +vn 0.9537 -0.2646 0.1431 +vn 0.8734 -0.3642 0.3232 +vn 0.5106 0.7993 0.3169 +vn 0.6823 0.7246 0.0972 +vn 0.5135 0.7977 0.3162 +vn -0.8968 0.0486 -0.4398 +vn 0.9880 -0.1432 -0.0578 +vn 0.4425 0.8644 0.2387 +vn 0.4421 0.8660 0.2337 +vn 0.5761 0.7139 0.3982 +vn -0.6085 0.7466 0.2688 +vn -0.5799 0.7978 0.1648 +vn -0.6075 0.7490 0.2644 +vn -0.1965 -0.7795 -0.5948 +vn 0.2719 0.9610 0.0503 +vn -0.0866 0.9886 0.1229 +vn -0.0776 0.9894 0.1230 +vn 0.1179 0.9565 0.2668 +vn -0.9365 -0.2574 0.2382 +vn -0.9727 -0.1671 0.1611 +vn -0.9337 -0.2609 0.2451 +vn 0.3493 -0.8522 -0.3896 +vn -0.2834 0.9583 -0.0364 +vn -0.8738 0.4703 0.1239 +vn -0.8660 0.4790 0.1434 +vn -0.7122 0.5691 0.4108 +vn -0.4088 -0.8689 0.2791 +vn -0.5657 -0.8194 0.0922 +vn -0.4184 -0.8660 0.2737 +vn 0.8824 -0.3224 -0.3428 +vn -0.9308 0.3219 -0.1730 +vn 0.2171 -0.9085 0.3570 +vn 0.1365 -0.9622 0.2355 +vn 0.2188 -0.9059 0.3627 +vn 0.5087 0.7928 -0.3355 +vn -0.7615 -0.4960 0.4173 +vn 0.9091 0.1166 0.4000 +vn -0.2576 0.8401 -0.4773 +vn 0.3141 0.8086 0.4974 +vn -0.8874 0.0494 -0.4584 +vn -0.6274 0.6901 0.3608 +vn -0.2236 -0.8552 -0.4675 +vn -0.8834 -0.3459 0.3162 +vn 0.3292 -0.8332 -0.4444 +vn -0.2475 -0.8673 0.4319 +vn 0.7715 -0.3825 -0.5085 +vn 0.2905 -0.8342 0.4688 +vn 0.3995 0.7537 -0.5218 +vn -0.3263 -0.9258 0.1907 +vn -0.2398 -0.9695 -0.0497 +vn -0.3295 -0.9209 0.2081 +vn 0.6608 -0.7086 0.2475 +vn 0.6574 -0.7121 0.2464 +vn 0.4602 -0.7908 0.4036 +vn 0.8289 0.5086 0.2329 +vn 0.9219 0.3863 0.0291 +vn 0.8315 0.5052 0.2310 +vn -0.6700 0.6447 -0.3682 +vn 0.8161 -0.5744 0.0642 +vn 0.9413 0.2963 0.1618 +vn 0.9417 0.2905 0.1698 +vn 0.9211 0.1668 0.3517 +vn -0.0076 0.9542 0.2990 +vn 0.1847 0.9791 0.0852 +vn -0.0043 0.9544 0.2983 +vn -0.7680 -0.4479 -0.4579 +vn 0.9125 0.4076 -0.0344 +vn -0.0973 0.9712 0.2173 +vn -0.0983 0.9723 0.2123 +vn 0.0906 0.9188 0.3843 +vn -0.9224 0.3091 0.2318 +vn -0.9221 0.3657 0.1266 +vn -0.9226 0.3115 0.2273 +vn 0.2716 -0.7744 -0.5714 +vn -0.2865 0.9578 0.0225 +vn -0.6064 0.7903 0.0875 +vn -0.5992 0.7958 0.0877 +vn -0.4215 0.8755 0.2362 +vn -0.6608 -0.7147 0.2293 +vn -0.7370 -0.6593 0.1485 +vn -0.6568 -0.7160 0.2363 +vn 0.7642 -0.5394 -0.3537 +vn -0.7508 0.6563 -0.0743 +vn -0.9934 -0.0690 0.0914 +vn -0.9922 -0.0572 0.1108 +vn -0.9198 0.1064 0.3778 +vn 0.1104 -0.9473 0.3008 +vn -0.0421 -0.9931 0.1095 +vn 0.1010 -0.9501 0.2952 +vn 0.9290 0.1944 -0.3150 +vn -0.9520 -0.2304 -0.2013 +vn 0.6573 -0.6438 0.3918 +vn 0.6222 -0.7346 0.2707 +vn 0.6571 -0.6405 0.3974 +vn 0.0165 0.9356 -0.3528 +vn -0.3915 -0.8189 0.4197 +vn 0.6913 0.5932 0.4127 +vn -0.6508 0.5621 -0.5104 +vn -0.1846 0.8602 0.4753 +vn -0.7598 -0.4425 -0.4764 +vn -0.9112 0.2529 0.3253 +vn 0.2849 -0.8505 -0.4422 +vn -0.5712 -0.7595 0.3112 +vn 0.7389 -0.5351 -0.4095 +vn 0.2406 -0.8566 0.4565 +vn 0.8732 0.0811 -0.4806 +vn 0.6757 -0.5396 0.5023 +vn -0.0484 0.8405 -0.5396 +s 1 +f 171//43 174//44 172//45 +f 173//46 175//47 189//48 +f 172//49 174//50 173//51 +s 0 +f 173//52 174//52 171//52 +s 1 +f 173//46 177//53 175//47 +f 176//54 178//55 189//56 +f 175//57 177//58 176//59 +s 0 +f 176//60 177//60 173//60 +s 1 +f 176//54 180//61 178//55 +f 179//62 181//63 189//64 +f 178//65 180//66 179//67 +s 0 +f 179//68 180//68 176//68 +s 1 +f 179//62 183//69 181//63 +f 182//70 184//71 189//72 +f 181//73 183//74 182//75 +s 0 +f 182//76 183//76 179//76 +s 1 +f 182//70 186//77 184//71 +f 185//78 187//79 189//80 +f 184//81 186//82 185//83 +s 0 +f 185//84 186//84 182//84 +s 1 +f 185//78 188//85 187//79 +f 187//86 188//87 171//88 +s 0 +f 171//89 188//89 185//89 +s 1 +f 171//43 172//45 189//90 +f 172//49 173//51 189//91 +s 0 +f 173//92 171//92 189//92 +s 1 +f 175//57 176//59 189//93 +s 0 +f 176//94 173//94 189//94 +s 1 +f 178//65 179//67 189//95 +s 0 +f 179//96 176//96 189//96 +s 1 +f 181//73 182//75 189//97 +s 0 +f 182//98 179//98 189//98 +s 1 +f 184//81 185//83 189//99 +s 0 +f 185//100 182//100 189//100 +s 1 +f 187//86 171//88 189//101 +s 0 +f 171//102 185//102 189//102 +s 1 +f 190//103 193//104 191//105 +f 192//106 194//107 208//108 +f 191//109 193//110 192//111 +s 0 +f 192//112 193//112 190//112 +s 1 +f 192//106 196//113 194//107 +f 195//114 197//115 208//116 +f 194//117 196//118 195//119 +s 0 +f 195//120 196//120 192//120 +s 1 +f 195//114 199//121 197//115 +f 198//122 200//123 208//124 +f 197//125 199//126 198//127 +s 0 +f 198//128 199//128 195//128 +s 1 +f 198//122 202//129 200//123 +f 201//130 203//131 208//132 +f 200//133 202//134 201//135 +s 0 +f 201//136 202//136 198//136 +s 1 +f 201//130 205//137 203//131 +f 204//138 206//139 208//140 +f 203//141 205//142 204//143 +s 0 +f 204//144 205//144 201//144 +s 1 +f 204//138 207//145 206//139 +f 206//146 207//147 190//148 +s 0 +f 190//149 207//149 204//149 +s 1 +f 190//103 191//105 208//150 +f 191//109 192//111 208//151 +s 0 +f 192//152 190//152 208//152 +s 1 +f 194//117 195//119 208//153 +s 0 +f 195//154 192//154 208//154 +s 1 +f 197//125 198//127 208//155 +s 0 +f 198//156 195//156 208//156 +s 1 +f 200//133 201//135 208//157 +s 0 +f 201//158 198//158 208//158 +s 1 +f 203//141 204//143 208//159 +s 0 +f 204//160 201//160 208//160 +s 1 +f 206//146 190//148 208//161 +s 0 +f 190//162 204//162 208//162 +o Glow +v 9.999999 -10.500001 1.999999 +v 6.999999 -10.500001 1.999999 +v 9.999999 -10.500000 7.000000 +v 6.999999 -10.500000 7.000000 +v 9.999999 -12.500001 11.999999 +v 6.999999 -12.500001 11.999999 +v 9.999999 -12.500001 17.000000 +v 6.999999 -12.500001 17.000000 +v 9.999999 -14.500001 22.000000 +v 6.999999 -14.500001 22.000000 +v 9.999999 -14.500001 27.000002 +v 6.999999 -14.500001 27.000002 +v -14.500000 -10.499999 2.000000 +v -14.500000 -10.499999 6.000000 +v -16.500000 -10.499999 6.000000 +v -16.500000 -10.499999 2.000000 +v -14.500000 -20.499998 2.000000 +v -14.500000 -20.499998 6.000000 +v -16.500002 -20.499998 6.000000 +v -16.500002 -20.499998 2.000000 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +s 0 +f 209//163 210//163 212//163 211//163 +f 213//163 214//163 216//163 215//163 +f 217//163 218//163 220//163 219//163 +f 221//163 224//163 223//163 222//163 +f 225//164 226//164 227//164 228//164 diff --git a/assets/voxygen/lod/frostpine.obj b/assets/voxygen/lod/frostpine.obj new file mode 100644 index 0000000..65ea092 --- /dev/null +++ b/assets/voxygen/lod/frostpine.obj @@ -0,0 +1,520 @@ +# Blender 4.0.2 +# www.blender.org +o InstCol +v 4.520768 -2.717304 10.137874 +v -4.276705 -2.402697 9.632188 +v -0.447675 -16.819283 13.545241 +v -0.173264 3.005594 5.143929 +v -5.029233 -1.021688 11.615770 +v 1.489127 4.534538 11.123759 +v -10.732910 12.360923 14.931010 +v 2.099661 -2.042437 6.756850 +v 2.936651 4.038338 13.053710 +v 1.911868 -4.231918 12.575001 +v 15.824065 -1.814171 16.279318 +v -2.848711 0.085358 8.326161 +v 0.547251 -4.827281 14.452770 +v -4.152970 1.779585 13.987005 +v -12.545023 -9.098452 17.591162 +v 2.099854 1.811011 9.853044 +v -3.565238 3.103580 15.814004 +v 4.149061 1.452711 15.360833 +v 3.020455 14.772450 18.867544 +v -0.316262 -2.679358 11.338642 +v 4.597568 0.116561 17.138435 +v -2.021916 -3.769096 16.697515 +v 7.541871 -12.583359 20.109417 +v -1.534053 2.130115 12.784074 +v -3.221843 -3.105269 18.427055 +v -1.026569 4.032929 17.998058 +v -13.680909 4.070991 21.317709 +v 2.500544 -0.519992 14.190426 +v 0.270582 4.345303 19.680838 +v 3.387036 -2.218666 19.263439 +v 12.490685 6.070799 22.493336 +v -2.135728 -1.270364 15.558753 +v 2.661718 -3.295294 20.900719 +v -3.888143 -0.634308 20.494604 +v -4.971339 -12.564600 23.637173 +v 0.697318 2.315059 16.890085 +v -4.075366 0.614799 22.087618 +v 2.372589 3.010465 21.692484 +v -4.691200 12.281549 24.750084 +v 1.021234 -2.119194 18.185423 +v 3.327854 2.237363 23.242428 +v 0.276379 -3.719133 22.857975 +v 11.437373 -5.727999 25.832909 +v -2.125464 0.849197 19.445736 +v -0.917064 -3.792311 24.366011 +v -2.642605 2.486584 23.991955 +v -11.970146 -3.407494 26.886452 +v 2.082985 0.787671 20.671974 +v -1.834485 3.323447 25.459217 +v 3.530132 -0.047165 25.095276 +v 6.348266 10.311747 27.911516 +v -0.976730 -1.934093 21.865057 +v 3.500368 -1.178675 26.522869 +v -2.563638 -2.286259 26.168764 +v 2.222695 -11.570231 28.908861 +v -0.570408 2.029515 23.025883 +v -3.285944 -1.454915 27.557758 +v 0.336638 3.325129 27.213230 +v -9.198908 6.840045 29.879236 +v 1.743073 -1.081152 24.155323 +v 1.401224 3.203414 28.564669 +v 1.943839 -2.606802 28.229454 +v 11.095046 1.138499 30.823383 +v -1.961107 -0.369940 25.254225 +v 1.100076 -3.219155 29.544352 +v -3.107842 0.592662 29.218203 +v -7.211704 -8.108756 31.741997 +v 1.163819 1.554300 26.323418 +v -2.904954 1.586527 30.497551 +v 2.619170 1.617363 30.180220 +v -0.155392 10.557211 32.635777 +v 0.186557 -1.879997 27.363701 +v 3.126806 0.770989 31.424976 +v -0.816113 -2.881737 31.116224 +v 7.049953 -7.471957 33.505394 +v -1.369436 1.226161 28.375858 +v -1.736569 -2.608152 32.327328 +v -1.308459 2.603824 32.026924 +v -9.968646 0.727207 34.351494 +v 1.788334 0.020343 29.360649 +v -0.468288 3.012494 33.205280 +v 2.650023 -1.008113 32.912998 +v 7.629758 6.029940 35.174717 +v -1.269649 -1.189935 30.318811 +v 2.315845 -1.853488 34.059494 +v -2.563782 -1.018412 33.775112 +v -1.510810 -9.340555 35.975681 +v 0.128820 1.688146 31.251070 +v -2.879636 -0.192282 34.890614 +v 1.170001 2.415629 34.613922 +v -5.054971 7.694164 36.754993 +v 1.017064 -1.295794 32.158123 +v 1.939560 2.030524 35.699265 +v 0.748207 -2.502006 35.430054 +v 8.683397 -2.197780 37.513237 +v -1.581316 0.261204 33.040649 +v -0.057001 -2.731493 36.486050 +v -2.181185 1.303279 36.224117 +v -7.674204 -4.130202 38.250973 +v 1.306146 0.851888 33.899319 +v -1.754329 1.997126 37.251560 +v 2.421391 0.498520 36.996716 +v 2.791230 8.006834 38.968773 +v -0.377199 -1.469606 34.734768 +v 2.571164 -0.279810 37.996376 +v -1.409557 -1.949056 37.748417 +v 3.259773 -7.578832 39.667156 +v -0.695261 1.302250 35.547630 +v -2.028548 -1.489092 38.721054 +v -0.269723 2.324715 38.479801 +v -7.319691 3.294891 40.346661 +v 1.354664 -0.477331 36.338516 +v 0.476662 2.401540 39.426140 +v 1.721360 -1.490556 39.191406 +v 7.416861 2.446836 41.007793 +v -1.285607 -0.547867 37.108017 +v 1.236370 -2.036216 40.112160 +v -2.214606 -0.061950 39.883774 +v -3.712985 -6.629999 41.651047 +v 0.562250 1.237994 37.856716 +v -2.225281 0.648273 40.779629 +v 1.548102 1.499944 40.557419 +v -1.693611 7.196850 42.276913 +v 0.410253 -1.257702 38.585167 +v 2.022538 0.997423 41.429058 +v -0.124869 -2.093561 41.212856 +v 5.944999 -4.050166 42.885860 +v -1.120937 0.632688 39.293926 +v -0.795515 -2.044849 42.060925 +v -1.286373 1.584057 41.850567 +v -6.927027 -1.001490 43.478333 +v 1.220003 0.282800 39.983521 +v -0.773215 1.989875 42.675705 +v 1.963957 -0.291014 42.471035 +v 4.311452 5.271131 44.054794 +v -0.689419 -1.004708 40.654472 +vn -0.6844 -0.0820 -0.7245 +vn -0.6844 -0.0819 -0.7245 +vn -0.6774 -0.3548 -0.6444 +vn -0.0466 0.2501 0.9671 +vn -0.0206 0.6477 0.7616 +vn 0.6159 -0.3833 -0.6883 +vn 0.6403 -0.1347 -0.7562 +vn 0.4493 0.5228 -0.7245 +vn 0.4493 0.5227 -0.7245 +vn 0.2598 0.7192 -0.6444 +vn 0.2033 -0.1529 0.9671 +vn 0.4527 -0.4637 0.7616 +vn -0.7131 -0.1334 -0.6883 +vn -0.5631 -0.3332 -0.7562 +vn 0.0218 -0.6890 -0.7245 +vn 0.0218 -0.6889 -0.7245 +vn 0.2943 -0.7058 -0.6444 +vn -0.2532 -0.0246 0.9671 +vn -0.6470 0.0361 0.7616 +vn 0.4357 0.5801 -0.6883 +vn 0.1902 0.6261 -0.7562 +vn -0.4815 0.4933 -0.7245 +vn -0.4814 0.4933 -0.7245 +vn -0.6937 0.3217 -0.6444 +vn 0.1701 0.1892 0.9671 +vn 0.5015 0.4104 0.7616 +vn 0.0706 -0.7220 -0.6883 +vn 0.2827 -0.5901 -0.7562 +vn 0.6882 -0.0385 -0.7245 +vn 0.7288 0.2314 -0.6444 +vn 0.0024 -0.2544 0.9671 +vn -0.0925 -0.6414 0.7616 +vn -0.5397 0.4847 -0.6883 +vn -0.6070 0.2442 -0.7562 +vn -0.5398 0.4847 -0.6883 +vn -0.5335 -0.4365 -0.7245 +vn -0.3811 -0.6630 -0.6444 +vn -0.1736 0.1860 0.9671 +vn -0.3650 0.5354 0.7616 +vn 0.7254 0.0072 -0.6883 +vn 0.6126 0.2300 -0.7562 +vn 0.0985 0.6822 -0.7245 +vn -0.1668 0.7462 -0.6444 +vn 0.2536 -0.0199 0.9671 +vn 0.6308 -0.1482 0.7616 +vn -0.5301 -0.4953 -0.6883 +vn -0.2963 -0.5834 -0.7562 +vn 0.3882 -0.5696 -0.7245 +vn 0.6271 -0.4376 -0.6444 +vn -0.2005 -0.1567 0.9671 +vn -0.5653 -0.3168 0.7616 +vn 0.0563 0.7233 -0.6883 +vn -0.1755 0.6303 -0.7562 +vn -0.6710 0.1578 -0.7245 +vn -0.7580 -0.1009 -0.6444 +vn 0.0420 0.2509 0.9671 +vn 0.2028 0.6155 0.7616 +vn 0.4471 -0.5713 -0.6883 +vn 0.5552 -0.3462 -0.7562 +vn 0.6014 0.3369 -0.7245 +vn 0.6013 0.3369 -0.7245 +vn 0.4907 0.5864 -0.6444 +vn 0.1385 -0.2134 0.9671 +vn 0.2662 -0.5908 0.7616 +vn -0.7156 0.1193 -0.6883 +vn -0.6433 -0.1198 -0.7562 +vn -0.2158 -0.6546 -0.7245 +vn -0.2159 -0.6546 -0.7245 +vn 0.0343 -0.7639 -0.6444 +vn -0.2463 0.0638 0.9671 +vn -0.5954 0.2559 0.7616 +vn 0.6082 0.3954 -0.6883 +vn 0.3934 0.5228 -0.7562 +vn -0.2830 0.6285 -0.7245 +vn -0.5413 0.5401 -0.6444 +vn 0.2247 0.1194 0.9671 +vn 0.6118 0.2135 0.7616 +vn -0.1814 -0.7024 -0.6883 +vn 0.0631 -0.6513 -0.7562 +vn 0.6333 -0.2722 -0.7245 +vn 0.6332 -0.2723 -0.7245 +vn 0.7640 -0.0326 -0.6444 +vn -0.0850 -0.2398 0.9671 +vn -0.3069 -0.5707 0.7616 +vn -0.3407 0.6405 -0.6883 +vn -0.4864 0.4376 -0.7562 +vn -0.6508 -0.2270 -0.7245 +vn -0.5854 -0.4920 -0.6444 +vn -0.0993 0.2343 0.9671 +vn -0.1592 0.6282 0.7616 +vn 0.6839 -0.2421 -0.6883 +vn 0.6543 0.0059 -0.7562 +vn 0.3266 0.6070 -0.7245 +vn 0.0993 0.7582 -0.6444 +vn 0.2314 -0.1057 0.9671 +vn 0.5417 -0.3556 0.7616 +vn -0.6678 -0.2834 -0.6883 +vn -0.4785 -0.4463 -0.7562 +vn 0.1692 -0.6682 -0.7245 +vn 0.4389 -0.6261 -0.6444 +vn -0.2420 -0.0784 0.9671 +vn -0.6397 -0.1037 0.7616 +vn 0.3010 0.6601 -0.6883 +vn 0.0513 0.6523 -0.7562 +vn -0.5762 0.3784 -0.7245 +vn -0.5761 0.3784 -0.7245 +vn -0.7466 0.1652 -0.6444 +vn 0.1255 0.2213 0.9671 +vn 0.4016 0.5085 0.7616 +vn 0.2240 -0.6900 -0.6883 +vn 0.4028 -0.5157 -0.7562 +vn 0.6804 0.1102 -0.7245 +vn 0.6621 0.3825 -0.6444 +vn 0.0569 -0.2480 0.9671 +vn 0.0474 -0.6463 0.7616 +vn -0.6312 0.3575 -0.6883 +vn -0.6453 0.1082 -0.7562 +vn -0.4273 -0.5409 -0.7245 +vn -0.4273 -0.5408 -0.7245 +vn -0.2298 -0.7293 -0.6444 +vn -0.2095 0.1444 0.9671 +vn -0.4715 0.4446 0.7616 +vn 0.7070 0.1628 -0.6883 +vn 0.5489 0.3561 -0.7562 +vn -0.0503 0.6875 -0.7245 +vn -0.0502 0.6874 -0.7245 +vn -0.3232 0.6930 -0.6444 +vn 0.2520 0.0350 0.9671 +vn 0.6480 -0.0093 0.7616 +vn -0.4113 -0.5976 -0.6883 +vn -0.1642 -0.6334 -0.7562 +vn 0.5014 -0.4730 -0.7245 +vn 0.7064 -0.2927 -0.6444 +vn -0.1621 -0.1961 0.9671 +vn -0.4841 -0.4308 0.7616 +vn -0.1003 0.7185 -0.6883 +vn -0.3068 0.5779 -0.7562 +vn -0.6892 0.0100 -0.7245 +vn -0.7186 -0.2613 -0.6444 +vn -0.0129 0.2541 0.9671 +vn 0.0659 0.6447 0.7616 +vn 0.5593 -0.4620 -0.6883 +vn 0.6166 -0.2189 -0.7562 +vn 0.5150 0.4582 -0.7245 +vn 0.5150 0.4581 -0.7245 +vn 0.3534 0.6781 -0.6444 +vn 0.1811 -0.1787 0.9671 +vn 0.3868 -0.5199 0.7616 +vn -0.7245 -0.0371 -0.6883 +vn -0.6025 -0.2551 -0.7562 +vn -0.0702 -0.6857 -0.7245 +vn -0.0703 -0.6857 -0.7245 +vn 0.1975 -0.7387 -0.6444 +vn -0.2542 0.0094 0.9671 +vn -0.6364 0.1220 0.7616 +vn 0.5091 0.5168 -0.6883 +vn 0.2720 0.5951 -0.7562 +vn -0.4114 0.5531 -0.7245 +vn -0.6446 0.4113 -0.6444 +vn 0.1938 0.1648 0.9671 +vn 0.5517 0.3399 0.7616 +vn -0.0263 -0.7250 -0.6883 +vn 0.2014 -0.6225 -0.7562 +vn 0.6769 -0.1299 -0.7245 +vn 0.7532 0.1322 -0.6444 +vn -0.0316 -0.2525 0.9671 +vn -0.1772 -0.6233 0.7616 +vn -0.4703 0.5524 -0.6883 +vn -0.5690 0.3230 -0.7562 +vn -0.5869 -0.3615 -0.7245 +vn -0.5869 -0.3614 -0.7245 +vn -0.4661 -0.6062 -0.6444 +vn -0.1472 0.2075 0.9671 +vn -0.2904 0.5793 0.7616 +vn 0.7199 -0.0896 -0.6883 +vn 0.6378 0.1462 -0.7562 +vn 0.1886 0.6630 -0.7245 +vn -0.0658 0.7618 -0.6444 +vn 0.2487 -0.0535 0.9671 +vn 0.6054 -0.2310 0.7616 +vn -0.5914 -0.4202 -0.6883 +vn -0.3715 -0.5386 -0.7562 +vn 0.3088 -0.6163 -0.7245 +vn 0.3087 -0.6163 -0.7245 +vn 0.5631 -0.5173 -0.6444 +vn -0.2196 -0.1285 0.9671 +vn -0.6025 -0.2386 0.7616 +vn 0.1522 0.7093 -0.6883 +vn -0.0899 0.6481 -0.7562 +vn -0.6440 0.2459 -0.7245 +vn -0.6439 0.2459 -0.7245 +vn -0.7647 0.0010 -0.6444 +vn 0.0751 0.2431 0.9671 +vn 0.2831 0.5829 0.7616 +vn 0.3669 -0.6258 -0.6883 +vn 0.5041 -0.4171 -0.7562 +vn 0.6409 0.2537 -0.7245 +vn 0.5645 0.5158 -0.6444 +vn 0.1089 -0.2300 0.9671 +vn 0.1850 -0.6210 0.7616 +vn -0.6933 0.2136 -0.6883 +vn -0.6535 -0.0329 -0.7562 +vn -0.3012 -0.6200 -0.7245 +vn -0.0679 -0.7616 -0.6444 +vn -0.2356 0.0960 0.9671 +vn -0.5559 0.3330 0.7616 +vn 0.6555 0.3108 -0.6883 +vn 0.4596 0.4657 -0.7562 +vn -0.1967 0.6606 -0.7245 +vn -0.4644 0.6075 -0.6444 +vn 0.2386 0.0883 0.9671 +vn 0.6348 0.1300 0.7616 +vn -0.2734 -0.6720 -0.6883 +vn -0.0243 -0.6539 -0.7562 +vn 0.5913 -0.3543 -0.7245 +vn 0.7528 -0.1342 -0.6444 +vn -0.1163 -0.2263 0.9671 +vn -0.3803 -0.5247 0.7616 +vn -0.2523 0.6802 -0.6883 +vn -0.4237 0.4986 -0.7562 +s 0 +f 2//1 4//2 3//3 +f 1//4 2//4 3//4 +f 1//5 4//5 2//5 +f 3//6 4//7 1//6 +f 6//8 8//9 7//10 +f 5//11 6//11 7//11 +f 5//12 8//12 6//12 +f 7//13 8//14 5//13 +f 10//15 12//16 11//17 +f 9//18 10//18 11//18 +f 9//19 12//19 10//19 +f 11//20 12//21 9//20 +f 14//22 16//23 15//24 +f 13//25 14//25 15//25 +f 13//26 16//26 14//26 +f 15//27 16//28 13//27 +f 18//29 20//29 19//30 +f 17//31 18//31 19//31 +f 17//32 20//32 18//32 +f 19//33 20//34 17//35 +f 22//36 24//36 23//37 +f 21//38 22//38 23//38 +f 21//39 24//39 22//39 +f 23//40 24//41 21//40 +f 26//42 28//42 27//43 +f 25//44 26//44 27//44 +f 25//45 28//45 26//45 +f 27//46 28//47 25//46 +f 30//48 32//48 31//49 +f 29//50 30//50 31//50 +f 29//51 32//51 30//51 +f 31//52 32//53 29//52 +f 34//54 36//54 35//55 +f 33//56 34//56 35//56 +f 33//57 36//57 34//57 +f 35//58 36//59 33//58 +f 38//60 40//61 39//62 +f 37//63 38//63 39//63 +f 37//64 40//64 38//64 +f 39//65 40//66 37//65 +f 42//67 44//68 43//69 +f 41//70 42//70 43//70 +f 41//71 44//71 42//71 +f 43//72 44//73 41//72 +f 46//74 48//74 47//75 +f 45//76 46//76 47//76 +f 45//77 48//77 46//77 +f 47//78 48//79 45//78 +f 50//80 52//81 51//82 +f 49//83 50//83 51//83 +f 49//84 52//84 50//84 +f 51//85 52//86 49//85 +f 54//87 56//87 55//88 +f 53//89 54//89 55//89 +f 53//90 56//90 54//90 +f 55//91 56//92 53//91 +f 58//93 60//93 59//94 +f 57//95 58//95 59//95 +f 57//96 60//96 58//96 +f 59//97 60//98 57//97 +f 62//99 64//99 63//100 +f 61//101 62//101 63//101 +f 61//102 64//102 62//102 +f 63//103 64//104 61//103 +f 66//105 68//106 67//107 +f 65//108 66//108 67//108 +f 65//109 68//109 66//109 +f 67//110 68//111 65//110 +f 70//112 72//112 71//113 +f 69//114 70//114 71//114 +f 69//115 72//115 70//115 +f 71//116 72//117 69//116 +f 74//118 76//119 75//120 +f 73//121 74//121 75//121 +f 73//122 76//122 74//122 +f 75//123 76//124 73//123 +f 78//125 80//126 79//127 +f 77//128 78//128 79//128 +f 77//129 80//129 78//129 +f 79//130 80//131 77//130 +f 82//132 84//132 83//133 +f 81//134 82//134 83//134 +f 81//135 84//135 82//135 +f 83//136 84//137 81//136 +f 86//138 88//138 87//139 +f 85//140 86//140 87//140 +f 85//141 88//141 86//141 +f 87//142 88//143 85//142 +f 90//144 92//145 91//146 +f 89//147 90//147 91//147 +f 89//148 92//148 90//148 +f 91//149 92//150 89//149 +f 94//151 96//152 95//153 +f 93//154 94//154 95//154 +f 93//155 96//155 94//155 +f 95//156 96//157 93//156 +f 98//158 100//158 99//159 +f 97//160 98//160 99//160 +f 97//161 100//161 98//161 +f 99//162 100//163 97//162 +f 102//164 104//164 103//165 +f 101//166 102//166 103//166 +f 101//167 104//167 102//167 +f 103//168 104//169 101//168 +f 106//170 108//171 107//172 +f 105//173 106//173 107//173 +f 105//174 108//174 106//174 +f 107//175 108//176 105//175 +f 110//177 112//177 111//178 +f 109//179 110//179 111//179 +f 109//180 112//180 110//180 +f 111//181 112//182 109//181 +f 114//183 116//184 115//185 +f 113//186 114//186 115//186 +f 113//187 116//187 114//187 +f 115//188 116//189 113//188 +f 118//190 120//191 119//192 +f 117//193 118//193 119//193 +f 117//194 120//194 118//194 +f 119//195 120//196 117//195 +f 122//197 124//197 123//198 +f 121//199 122//199 123//199 +f 121//200 124//200 122//200 +f 123//201 124//202 121//201 +f 126//203 128//203 127//204 +f 125//205 126//205 127//205 +f 125//206 128//206 126//206 +f 127//207 128//208 125//207 +f 130//209 132//209 131//210 +f 129//211 130//211 131//211 +f 129//212 132//212 130//212 +f 131//213 132//214 129//213 +f 134//215 136//215 135//216 +f 133//217 134//217 135//217 +f 133//218 136//218 134//218 +f 135//219 136//220 133//219 +o 79_102_105 +v 0.000000 1.777009 -9.856075 +v -0.496272 0.316974 41.222210 +v 1.690037 0.549125 -9.856075 +v 0.148100 0.569936 41.222210 +v 1.044501 -1.437633 -9.856075 +v 0.587803 0.035272 41.222210 +v -1.044501 -1.437633 -9.856075 +v 0.215182 -0.548131 41.222210 +v -1.690037 0.549125 -9.856075 +v -0.454813 -0.374029 41.222210 +vn 0.3853 0.9226 0.0207 +vn 0.9965 -0.0813 0.0207 +vn 0.2306 -0.9728 0.0207 +vn -0.8540 -0.5199 0.0207 +vn -0.7583 0.6515 0.0207 +vn -0.0000 -0.0000 1.0000 +s 0 +f 137//221 138//221 140//221 139//221 +f 139//222 140//222 142//222 141//222 +f 141//223 142//223 144//223 143//223 +f 143//224 144//224 146//224 145//224 +f 145//225 146//225 138//225 137//225 +f 138//226 146//226 144//226 142//226 140//226 diff --git a/assets/voxygen/lod/giant_tree.obj b/assets/voxygen/lod/giant_tree.obj new file mode 100644 index 0000000..cafda28 --- /dev/null +++ b/assets/voxygen/lod/giant_tree.obj @@ -0,0 +1,2678 @@ +# Blender 4.0.2 +# www.blender.org +o InstCol +v 77.392227 132.722168 227.991653 +v 59.839191 153.007050 227.130753 +v 59.366467 135.206818 241.992233 +v 80.330521 139.372696 212.318069 +v 63.647350 157.191605 212.795242 +v 63.396004 156.011337 196.077881 +v 60.692543 145.972672 178.542130 +v 44.298321 154.545883 180.465256 +v 43.737541 165.115845 205.344498 +v 34.746464 135.450150 166.087509 +v 59.036930 118.244507 167.840897 +v 41.384220 108.915848 163.379120 +v 62.589825 93.881248 171.109818 +v 37.845287 72.768135 174.933136 +v 59.507339 68.191811 171.210205 +v 51.999535 52.766472 172.132904 +v 39.003326 24.495556 182.492615 +v -5.878118 30.101974 193.789871 +v 15.661317 14.498524 196.373749 +v 45.483582 -2.248215 203.343750 +v 7.704016 -1.812619 211.655090 +v 47.108913 -20.187428 207.085098 +v 15.700771 -18.721552 213.143570 +v 45.181358 -37.226097 199.767578 +v 25.778255 -47.765747 205.703506 +v 3.849062 -37.437565 209.602798 +v -11.422561 -19.957935 215.733536 +v -19.847292 -3.473521 219.746017 +v -21.629660 12.705457 214.322586 +v -43.804329 16.672167 215.142136 +v -26.673010 41.413857 202.148499 +v -45.264675 61.094723 198.476944 +v -7.556748 55.388393 192.660828 +v -9.133174 83.365875 193.231079 +v 8.519978 73.536812 183.105438 +v -8.758635 101.650574 181.903778 +v -7.355721 117.271385 175.599686 +v -25.283859 96.846962 183.074661 +v -41.155380 98.478859 162.171799 +v -23.361002 116.034729 166.472595 +v -37.952621 136.944260 152.436890 +v -35.964134 157.229416 161.837662 +v -9.055194 140.684662 179.386826 +v -20.523092 153.577789 181.208221 +v -12.906297 149.693985 196.300781 +v -8.977584 145.778976 212.147980 +v -26.377541 152.545181 211.013550 +v 5.643375 153.581146 215.542267 +v 6.785585 153.660889 195.206482 +v -7.032094 131.711212 225.857147 +v 11.362766 134.811234 240.320465 +v -5.583844 91.754845 246.577469 +v 8.215311 97.525742 251.917221 +v -11.870873 58.852139 266.802002 +v 19.468056 66.733818 270.829224 +v 4.116071 42.138805 274.135834 +v -8.977584 32.401623 276.162354 +v -10.215777 16.064659 283.032043 +v 11.727459 8.979540 272.098724 +v 35.760372 16.313398 266.401947 +v 41.243404 -2.575671 272.345032 +v 13.811645 -16.213594 286.431824 +v 42.572094 -20.872530 286.708344 +v 63.439835 -19.119938 272.828888 +v 58.363274 -1.857443 254.381866 +v 60.047398 15.145363 250.628082 +v 65.665108 32.526867 253.346603 +v 70.018372 49.720703 253.041183 +v 30.570700 51.107464 272.326477 +v 73.161629 81.002457 241.727356 +v 93.120949 66.589371 241.645401 +v 86.735306 93.105515 226.689285 +v 91.831886 100.828590 211.346664 +v 92.271255 98.955254 197.554489 +v 80.226280 105.136513 182.513809 +v 94.627022 84.554901 181.796402 +v 77.303642 84.170341 174.540665 +v 76.939407 54.842175 163.211761 +v 71.234322 31.783581 163.094299 +v 67.890236 14.609949 169.071121 +v 76.954880 -2.753074 166.654144 +v 61.404839 -4.838767 179.259567 +v 59.384922 -36.128880 169.430084 +v 77.987679 -44.827217 152.206314 +v 59.141953 -54.781475 170.125076 +v 45.902233 -53.474419 199.629120 +v 59.612728 -72.944855 196.908295 +v 42.760784 -71.263351 212.058716 +v 22.817461 -71.943718 213.199677 +v 26.027899 -89.658066 226.058243 +v 43.083019 -93.333496 250.122238 +v 14.974987 -96.430641 239.001877 +v 55.736912 -88.014503 252.516251 +v 42.432755 -87.052895 271.543671 +v 76.831161 -69.875351 237.498840 +v 63.687878 -74.628159 270.070862 +v 73.301384 -53.311516 269.220978 +v 51.448792 -49.247265 290.606140 +v 72.902092 -37.182129 269.769165 +v 57.297367 -37.244678 285.945343 +v 76.840416 -20.454487 240.854126 +v 70.857254 -1.858992 237.662506 +v 77.439667 13.308213 242.577637 +v 104.575432 29.439314 244.441132 +v 88.456169 -9.467333 233.201889 +v 115.588669 -0.258588 227.168625 +v 110.959229 49.534607 241.621643 +v 129.330902 43.160824 226.924927 +v 128.542816 3.222427 212.982986 +v 135.144440 43.490112 212.518570 +v 134.739761 45.889172 197.098145 +v 131.470123 5.323409 196.642853 +v 128.666412 47.839394 182.676376 +v 127.062889 6.251873 182.476044 +v 124.386597 72.506027 196.610352 +v 124.094315 72.513756 212.580139 +v 115.676453 69.511940 229.969910 +v 115.883354 69.742210 179.545868 +v 111.245979 47.797142 167.131485 +v 97.813141 54.535870 162.536652 +v 111.940994 6.170379 168.902206 +v 94.818237 5.015876 164.909271 +v 131.503250 -18.547762 165.188019 +v 139.092850 -35.153526 162.998535 +v 113.971855 -31.049732 150.382858 +v 112.657600 -61.730335 151.171448 +v 136.250565 -54.124741 160.980820 +v 130.107803 -72.723022 165.487411 +v 103.300735 -87.425858 168.159927 +v 127.570435 -87.817268 189.602203 +v 132.538864 -74.261833 215.061905 +v 104.216362 -89.393166 212.194946 +v 111.949043 -71.196045 227.373749 +v 124.770714 -55.375862 229.505295 +v 129.794327 -35.764755 226.466583 +v 113.703796 -28.493925 231.457260 +v 145.297394 -53.667179 211.044189 +v 145.495956 -35.973751 210.732513 +v 149.480240 -31.381849 197.308701 +v 148.008499 -29.694841 180.376373 +v 147.379517 -61.663284 180.762283 +v 147.859619 -64.130325 196.616608 +v 87.448044 -37.375061 240.699081 +v 87.303398 -53.687229 240.054474 +v 85.537865 -73.337151 228.748337 +v 69.048500 -78.522171 214.141174 +v 77.734116 -87.816345 196.900879 +v 78.362679 -87.291801 181.895233 +v 74.546852 -73.749535 164.447784 +v 95.080215 -64.107010 151.046799 +v 94.220894 -32.066483 149.547272 +v 102.571312 -93.199280 181.732941 +v 102.519676 -94.586861 196.008438 +v 60.810921 -71.128822 182.435181 +v 60.047398 -79.506363 227.315933 +v 42.494781 -69.892502 286.766937 +v 20.917414 -36.724819 293.020630 +v -5.967566 -15.318353 289.229828 +v -8.627528 -36.809021 287.916687 +v 16.566711 -57.229675 291.702332 +v 21.126228 -71.195396 287.410461 +v 3.097755 -85.949318 266.738953 +v 27.928638 -92.249580 266.307068 +v -9.806662 -89.282730 260.763062 +v -10.467980 -112.287071 243.233551 +v 10.798597 -105.975853 230.728119 +v 17.843580 -140.090134 230.909546 +v -26.509518 -105.667755 256.678070 +v -26.064806 -128.272781 243.912949 +v -42.876820 -130.886215 241.098709 +v -38.986900 -159.687576 231.675583 +v -26.372213 -177.768341 220.547394 +v -8.885354 -179.001938 219.375961 +v -8.930770 -152.327652 239.351624 +v -9.911767 -183.640579 189.544846 +v -25.981537 -183.666214 191.780273 +v -17.893240 -172.553040 168.525726 +v -17.556307 -156.897247 158.339203 +v -17.756989 -140.186310 154.673355 +v -17.210749 -122.736549 155.246201 +v -7.707408 -87.600578 181.822830 +v -26.233831 -88.392120 175.051743 +v -8.086372 -68.148064 193.385681 +v 6.964593 -88.259323 198.731339 +v 6.951538 -63.927605 205.988907 +v 21.466475 -105.648354 212.148041 +v 29.420113 -114.209663 195.349197 +v 13.202331 -88.392113 212.148026 +v 14.952053 -102.597488 179.996506 +v 1.497342 -106.490479 165.178101 +v 26.989155 -121.216682 180.599609 +v 28.403872 -121.663727 213.820526 +v 33.137741 -139.647598 203.467651 +v 26.890936 -159.161118 205.851196 +v 28.016180 -140.701004 178.982758 +v 24.831318 -156.631058 182.696579 +v 8.519629 -157.809814 166.464401 +v 13.418345 -133.752792 162.529984 +v 10.579868 -177.255951 204.178482 +v 7.906774 -174.303070 182.229370 +v 10.614786 -159.629288 228.602692 +v -25.451590 -34.560596 192.622787 +v -26.133207 -59.195251 182.631989 +v -55.848804 -0.666366 211.161102 +v -56.808411 14.323586 210.742950 +v -76.629112 -2.150246 196.955414 +v -76.489418 29.426184 186.969238 +v -74.170891 -17.740679 193.596298 +v -55.261429 -46.540600 176.973541 +v -79.310295 -41.383705 183.030853 +v -60.867725 -77.358887 174.983566 +v -81.015137 -76.056076 179.470306 +v -62.005753 -119.523277 181.403290 +v -75.090286 -113.432541 192.298309 +v -78.128563 -122.968422 211.927399 +v -97.119362 -106.270042 210.898651 +v -99.650681 -107.525169 235.560928 +v -69.782860 -123.327965 241.679825 +v -72.354660 -108.621445 261.783234 +v -97.181221 -86.069443 261.562286 +v -77.474213 -45.851650 283.151886 +v -93.278824 -39.541702 272.232117 +v -103.778725 -24.095848 256.151520 +v -111.593819 -70.017105 246.904266 +v -112.584801 -35.425709 238.929047 +v -125.605545 -21.438583 240.710632 +v -121.484764 -35.583221 227.436813 +v -113.298851 8.362531 258.867096 +v -147.556854 -4.715049 243.840317 +v -154.045441 18.765337 243.338348 +v -129.303741 45.465427 253.101807 +v -162.859726 36.431568 226.261292 +v -130.095032 67.642609 243.079620 +v -133.713974 70.315933 226.966583 +v -135.438995 68.045067 215.037918 +v -129.071716 66.132469 198.529068 +v -153.527527 50.565063 196.074417 +v -114.165115 63.619694 188.852448 +v -147.924576 42.861530 179.216156 +v -129.481415 31.265701 167.740311 +v -147.085419 7.831612 168.349884 +v -129.422821 5.830313 164.638016 +v -112.757927 8.396934 164.975937 +v -95.948814 19.468884 172.858887 +v -91.449699 -1.867936 177.880386 +v -110.642387 40.224182 172.765198 +v -91.122742 51.027935 183.542969 +v -95.258804 66.914108 186.830353 +v -111.667458 83.238991 200.059158 +v -94.344330 84.746658 182.348831 +v -114.240440 92.923950 213.989197 +v -112.187881 101.231567 227.277405 +v -115.124237 94.378304 244.205109 +v -113.091789 85.050400 258.414551 +v -96.070152 78.276222 273.041962 +v -116.559250 65.908348 262.030518 +v -95.848503 28.794634 275.925812 +v -97.410660 -3.900813 281.301788 +v -85.113152 -18.789639 294.215790 +v -76.815010 -2.023507 301.782898 +v -81.794731 25.065321 290.157959 +v -61.388535 44.013416 285.291809 +v -52.003792 15.662375 304.527924 +v -52.044544 -2.211805 308.053528 +v -62.381580 -20.779333 304.351227 +v -40.284622 -49.886356 286.647308 +v -60.530235 -49.216202 287.802185 +v -21.415531 -38.797554 287.510681 +v -12.448659 -75.037437 270.748657 +v -45.445934 -98.512527 269.917114 +v -69.348396 -90.421844 273.749847 +v -38.645004 -19.177807 304.587494 +v -27.560093 -1.898208 302.087952 +v -24.631178 20.995258 293.247559 +v -42.298450 34.102962 290.420807 +v -32.721901 52.093555 270.040192 +v -69.297752 84.554726 272.691589 +v -42.606415 84.274170 257.771057 +v -25.805389 79.716202 252.389130 +v -42.503086 105.728638 235.011169 +v -25.279604 97.916885 222.481964 +v -26.154264 135.696228 220.413635 +v -42.386730 148.635788 225.381989 +v -59.312218 151.835846 228.150146 +v -60.370949 112.580978 244.192047 +v -78.771355 123.572311 236.685913 +v -88.435890 101.610092 260.328766 +v -93.703880 114.038651 238.218124 +v -93.846718 129.277313 227.482178 +v -76.549911 152.744278 226.823624 +v -97.715714 155.221176 213.979034 +v -77.773590 170.349792 212.025574 +v -59.480213 171.731842 213.068054 +v -67.837502 179.512039 196.830841 +v -70.501831 179.362823 181.913284 +v -69.372787 172.171921 165.041718 +v -69.966240 153.896194 150.004898 +v -68.058266 135.623810 145.324524 +v -60.736076 108.577667 148.962006 +v -79.738968 110.833061 150.263763 +v -62.271858 73.139778 184.096268 +v -78.970581 75.352379 182.006424 +v -43.573380 84.129898 182.051636 +v -26.692204 87.483391 200.888229 +v -26.233831 66.914108 202.707733 +v -95.466217 101.236816 166.134354 +v -108.959702 98.805313 194.972260 +v -102.994484 118.940559 162.319992 +v -112.555931 136.505554 176.706665 +v -93.692902 135.594589 153.853073 +v -113.566566 119.546539 187.455109 +v -108.251495 120.642914 213.932755 +v -113.077652 137.180222 197.423019 +v -109.570923 153.424316 188.237579 +v -94.170929 169.285599 196.688049 +v -94.189743 169.291168 181.784622 +v -97.399353 156.115662 164.747681 +v -43.186939 118.222237 151.182449 +v -42.163517 172.267456 174.334274 +v -41.876171 172.135574 203.092834 +v -76.011490 54.655094 280.504303 +v -57.035072 45.620762 196.700577 +v -97.550255 -20.581379 184.225647 +v -112.020401 -20.860113 177.533310 +v -95.258804 -36.623383 189.781830 +v -112.547363 -36.643818 195.811981 +v -100.303810 -54.310738 191.269485 +v -113.792221 -55.029274 209.465347 +v -130.306366 -37.471657 206.086090 +v -147.344208 -32.426006 204.334961 +v -150.401169 -22.638321 230.136581 +v -163.963730 -18.587206 203.911545 +v -130.446487 -23.751451 178.071960 +v -147.492920 -19.619160 181.588242 +v -164.574829 5.166832 181.936188 +v -173.028732 8.400923 197.021301 +v -174.120071 5.308954 212.062943 +v -165.642822 -3.569819 228.702240 +v -167.837448 15.195354 229.848145 +v -167.226532 38.969631 211.946274 +v -165.999908 33.113705 190.156937 +v -111.591888 -83.551109 212.118088 +v -116.181137 -62.350937 225.529648 +v -112.073891 -87.402702 235.864975 +v -100.159447 -83.454834 193.328644 +v -61.577103 -134.824783 226.494568 +v -67.600090 -137.835876 202.331818 +v -60.581505 -158.306198 205.051590 +v -60.991051 -149.522644 182.127869 +v -43.102119 -157.030197 166.988312 +v -46.385448 -130.954712 162.606705 +v -44.552120 -175.375305 188.198074 +v -43.227829 -174.354691 211.515533 +v -36.822029 -102.520958 168.644806 +v -41.187710 -83.753914 174.405518 +v -41.757248 -32.732273 185.795288 +v 78.818581 136.600449 190.832031 +v 62.363403 114.791336 244.001144 +v 40.860023 93.771362 254.484512 +v 26.553295 89.746536 258.277893 +v 33.756195 138.529449 246.302048 +v 43.619865 157.127121 230.610504 +v 19.505289 155.220062 229.465317 +v 25.794691 164.677063 204.151642 +v 24.882267 153.836090 181.327332 +v 6.120748 139.710220 177.388733 +v 24.183954 109.242828 164.582962 +vn 0.7584 0.3601 0.5432 +vn 0.4623 0.7259 0.5093 +vn 0.4112 0.3681 0.8339 +vn 0.5368 0.8261 0.1717 +vn 0.5276 0.8030 -0.2770 +vn 0.8554 0.5030 0.1233 +vn 0.8078 0.4166 -0.4170 +vn 0.1373 0.9900 -0.0329 +vn 0.1224 0.7729 -0.6226 +vn 0.4610 0.5350 -0.7079 +vn -0.0265 0.3590 -0.9330 +vn 0.4234 0.1327 -0.8962 +vn 0.2675 -0.0399 -0.9627 +vn 0.0764 -0.0913 -0.9929 +vn -0.1962 -0.1824 -0.9635 +vn -0.2248 -0.1030 -0.9690 +vn -0.1614 0.1128 -0.9804 +vn -0.3654 -0.0325 -0.9303 +vn -0.3882 -0.2094 -0.8975 +vn -0.4085 -0.3392 -0.8474 +vn -0.3781 -0.3350 -0.8630 +vn -0.2516 -0.5744 -0.7790 +vn -0.5233 -0.4106 -0.7467 +vn -0.2322 -0.3404 -0.9111 +vn -0.6082 0.0642 -0.7912 +vn -0.1415 0.0242 -0.9896 +vn -0.1566 -0.0261 -0.9873 +vn 0.1701 0.2955 -0.9401 +vn 0.1196 0.3824 -0.9162 +vn 0.0113 -0.0170 -0.9998 +vn -0.1647 -0.3660 -0.9159 +vn 0.3624 -0.2957 -0.8839 +vn -0.2793 -0.2297 -0.9323 +vn 0.1132 -0.1425 -0.9833 +vn -0.4604 -0.3374 -0.8211 +vn -0.4565 -0.0349 -0.8890 +vn 0.0979 -0.1420 -0.9850 +vn 0.3284 -0.7287 -0.6009 +vn 0.3964 -0.6123 -0.6841 +vn 0.5144 -0.2586 -0.8176 +vn 0.3557 0.5567 -0.7507 +vn 0.4877 0.5253 -0.6973 +vn 0.6812 0.6787 -0.2745 +vn 0.2656 0.9627 -0.0520 +vn -0.2031 0.7913 0.5767 +vn 0.4635 0.6471 0.6054 +vn -0.4778 0.8175 0.3214 +vn -0.4669 0.4405 0.7668 +vn -0.3194 0.7720 0.5496 +vn -0.4530 0.4362 0.7775 +vn 0.0207 0.3301 0.9437 +vn -0.3241 0.3744 0.8688 +vn -0.1112 0.4208 0.9003 +vn 0.0346 0.1524 0.9877 +vn 0.0944 0.4349 0.8955 +vn 0.5196 0.2173 0.8263 +vn 0.2973 0.2383 0.9246 +vn 0.2511 0.4319 0.8663 +vn 0.3767 0.5343 0.7567 +vn 0.0723 0.3762 0.9237 +vn 0.6579 0.4800 0.5803 +vn 0.6274 0.3982 0.6692 +vn 0.3604 -0.1786 0.9156 +vn 0.2680 0.0687 0.9610 +vn 0.3650 0.0881 0.9268 +vn 0.3093 0.3940 0.8655 +vn 0.6366 0.4132 0.6512 +vn 0.4384 0.2853 0.8523 +vn 0.6505 0.2477 -0.7179 +vn 0.7922 0.5461 -0.2725 +vn 0.4682 0.5715 -0.6739 +vn 0.2362 0.2948 -0.9259 +vn -0.1477 0.1804 -0.9725 +vn -0.4006 -0.2119 -0.8914 +vn -0.4139 0.1532 -0.8974 +vn -0.7428 -0.0868 -0.6638 +vn -0.2585 -0.0904 -0.9618 +vn -0.4452 -0.0058 -0.8954 +vn -0.7802 0.1353 -0.6108 +vn -0.6787 -0.2797 -0.6791 +vn -0.7928 -0.2045 -0.5741 +vn -0.1846 -0.6690 -0.7200 +vn 0.5718 -0.7024 -0.4239 +vn 0.2190 -0.3566 -0.9082 +vn 0.5037 -0.8619 0.0588 +vn 0.3046 -0.9500 -0.0694 +vn 0.2601 -0.7940 0.5495 +vn 0.6666 -0.5451 0.5085 +vn 0.5904 -0.6954 0.4096 +vn 0.8194 0.1761 0.5456 +vn 0.3947 -0.0890 0.9145 +vn 0.8137 -0.1916 0.5488 +vn 0.3061 -0.3327 0.8920 +vn 0.6019 -0.0568 0.7965 +vn 0.3906 -0.1803 0.9027 +vn 0.2565 -0.0000 0.9665 +vn 0.3408 0.1175 0.9328 +vn 0.8127 0.0576 0.5799 +vn 0.5283 -0.0644 0.8466 +vn 0.8868 0.0661 0.4574 +vn 0.9758 0.1043 0.1920 +vn 0.9830 0.1802 -0.0363 +vn 0.9727 0.1505 -0.1765 +vn 0.8169 0.2562 -0.5167 +vn 0.8156 0.1594 -0.5563 +vn 0.7824 0.5856 -0.2119 +vn 0.7888 0.5727 0.2230 +vn 0.5654 0.5467 -0.6176 +vn 0.5088 0.1230 -0.8520 +vn 0.2069 0.2373 -0.9491 +vn 0.4318 0.2374 -0.8701 +vn 0.0085 0.1590 -0.9872 +vn 0.5908 0.4359 -0.6789 +vn 0.2421 0.1980 -0.9498 +vn 0.7046 0.1558 -0.6923 +vn 0.5327 -0.5834 -0.6131 +vn 0.5281 -0.8475 -0.0538 +vn 0.0489 -0.8006 -0.5972 +vn 0.5860 -0.5947 0.5505 +vn 0.0852 -0.8659 0.4929 +vn 0.1997 -0.4648 0.8626 +vn 0.8470 -0.1581 0.5076 +vn 0.5575 0.1028 0.8238 +vn 0.4428 -0.1867 0.8770 +vn 0.9281 0.2407 -0.2842 +vn 0.6457 -0.1711 -0.7441 +vn 0.9043 -0.3188 -0.2839 +vn 0.9146 -0.3861 0.1206 +vn 0.8494 0.1524 0.5052 +vn 0.9671 0.2141 0.1371 +vn 0.2854 0.1092 0.9522 +vn 0.6022 -0.3066 0.7371 +vn 0.6086 0.1592 0.7773 +vn 0.1435 -0.7265 0.6720 +vn -0.2253 -0.9681 0.1098 +vn -0.4362 -0.8937 0.1052 +vn -0.4554 -0.8506 -0.2628 +vn -0.5004 -0.5562 -0.6635 +vn -0.1239 -0.3550 -0.9266 +vn -0.1267 0.1885 -0.9739 +vn 0.0198 -0.9671 -0.2538 +vn 0.0100 -0.9930 0.1177 +vn -0.7580 -0.5771 -0.3040 +vn -0.6403 -0.7405 -0.2043 +vn 0.2170 -0.2956 -0.9303 +vn 0.6684 0.3542 0.6541 +vn 0.5596 0.1613 0.8129 +vn 0.2478 -0.4579 0.8538 +vn -0.0259 0.1213 0.9923 +vn 0.3776 -0.8761 0.2999 +vn 0.2121 -0.6515 0.7284 +vn 0.4216 -0.3389 0.8411 +vn 0.7105 -0.2959 0.6385 +vn 0.3197 -0.5534 0.7691 +vn 0.0451 -0.3293 0.9431 +vn -0.1822 -0.8238 0.5367 +vn 0.1280 -0.3488 0.9284 +vn -0.3948 -0.5021 0.7694 +vn 0.1573 -0.8465 0.5086 +vn -0.1937 -0.9714 -0.1376 +vn 0.1427 -0.9699 -0.1974 +vn 0.3408 0.4957 -0.7988 +vn -0.0113 0.2430 -0.9700 +vn -0.2823 0.3316 -0.9002 +vn 0.1494 0.3765 -0.9143 +vn 0.4617 0.5719 -0.6780 +vn 0.4122 0.2774 -0.8678 +vn 0.6061 0.3055 -0.7344 +vn 0.7621 0.4764 -0.4385 +vn 0.9124 0.3989 -0.0916 +vn 0.9279 0.3546 0.1149 +vn 0.7858 0.1227 -0.6062 +vn 0.6379 0.6091 -0.4713 +vn 0.8466 0.2570 -0.4661 +vn 0.9872 -0.0948 0.1279 +vn 0.8957 0.2027 0.3957 +vn 0.6562 -0.1089 0.7467 +vn 0.8532 -0.4825 0.1981 +vn 0.8069 -0.4464 -0.3868 +vn 0.8726 -0.1160 -0.4744 +vn 0.5348 0.0202 -0.8448 +vn 0.5410 -0.8280 0.1471 +vn 0.4927 -0.7631 -0.4182 +vn 0.5143 -0.4940 0.7011 +vn 0.4567 0.0462 -0.8884 +vn 0.4324 0.4889 -0.7576 +vn 0.2569 0.5131 -0.8190 +vn 0.3975 0.2442 -0.8845 +vn 0.5725 -0.0387 -0.8190 +vn 0.6771 0.0190 -0.7357 +vn 0.0250 0.2753 -0.9610 +vn -0.3943 -0.0866 -0.9149 +vn -0.2044 0.1802 -0.9621 +vn -0.7055 -0.6962 -0.1323 +vn -0.7122 -0.6676 0.2169 +vn -0.7241 -0.6140 -0.3141 +vn -0.3709 -0.8026 0.4672 +vn -0.6083 -0.6555 0.4476 +vn -0.2917 -0.6529 0.6990 +vn -0.2080 -0.3938 0.8954 +vn -0.6386 -0.3539 0.6833 +vn -0.4631 -0.3390 0.8189 +vn -0.6554 -0.6080 0.4481 +vn -0.8039 -0.2260 0.5502 +vn -0.3194 -0.5369 0.7808 +vn -0.6043 -0.1473 0.7830 +vn -0.4443 -0.3222 0.8360 +vn -0.5681 0.1144 0.8149 +vn -0.5848 0.0698 0.8082 +vn -0.7870 0.6087 0.1005 +vn -0.7786 0.4314 0.4556 +vn -0.7861 0.4094 0.4631 +vn -0.7069 0.6967 -0.1223 +vn -0.4848 0.7041 -0.5189 +vn -0.6157 0.7275 -0.3029 +vn -0.4405 0.5280 -0.7261 +vn -0.1153 0.3363 -0.9347 +vn -0.4259 -0.0762 -0.9015 +vn -0.0836 -0.1692 -0.9820 +vn 0.4648 0.0773 -0.8820 +vn 0.2186 -0.0996 -0.9707 +vn 0.1558 0.4048 -0.9011 +vn 0.1861 0.1655 -0.9685 +vn -0.3117 0.0933 -0.9456 +vn -0.1833 0.5435 -0.8191 +vn -0.6900 0.3102 -0.6540 +vn -0.9078 0.3699 -0.1975 +vn -0.7066 0.6249 0.3320 +vn -0.8355 0.5306 0.1428 +vn -0.3281 0.3088 0.8927 +vn -0.6367 0.4607 0.6183 +vn -0.6507 0.1380 0.7467 +vn -0.6320 0.1091 0.7672 +vn -0.0028 0.3679 0.9299 +vn 0.0439 0.4566 0.8886 +vn -0.4921 0.3138 0.8120 +vn 0.2152 -0.2880 0.9331 +vn -0.1280 -0.4043 0.9056 +vn 0.1150 -0.4066 0.9063 +vn 0.1949 -0.3667 0.9097 +vn 0.1389 -0.5128 0.8472 +vn -0.0086 -0.4854 0.8742 +vn 0.3384 0.0563 0.9393 +vn -0.0947 -0.1474 0.9845 +vn 0.4355 0.4061 0.8034 +vn 0.2321 0.5011 0.8337 +vn 0.2144 0.6054 0.7665 +vn 0.1363 0.6386 0.7573 +vn 0.5663 0.4541 0.6878 +vn 0.4209 0.5459 0.7245 +vn 0.0281 0.5308 0.8470 +vn 0.3689 0.4025 0.8378 +vn 0.1065 0.4588 0.8822 +vn 0.3063 0.5468 0.7792 +vn -0.2069 0.6773 0.7061 +vn -0.1983 0.5258 0.8272 +vn -0.5621 0.3835 0.7327 +vn -0.5141 0.6388 0.5724 +vn -0.2275 0.4711 0.8522 +vn -0.6457 0.4855 0.5894 +vn -0.2769 0.7702 0.5745 +vn 0.1174 0.7769 0.6186 +vn -0.0476 0.9821 0.1821 +vn -0.0342 0.0788 -0.9963 +vn 0.0788 -0.4169 -0.9055 +vn -0.2874 -0.3736 -0.8820 +vn -0.1118 -0.3931 -0.9127 +vn 0.4922 -0.6796 -0.5439 +vn 0.2217 -0.5281 -0.8197 +vn 0.0844 -0.5774 -0.8121 +vn -0.1238 -0.0311 -0.9918 +vn -0.5841 -0.4050 -0.7034 +vn -0.5886 -0.5245 -0.6152 +vn -0.8675 -0.2524 -0.4286 +vn -0.7421 -0.2099 -0.6366 +vn -0.9801 -0.1334 -0.1469 +vn -0.9288 0.1223 -0.3499 +vn -0.8902 0.2600 0.3742 +vn -0.9575 0.1682 0.2345 +vn -0.8792 0.4764 -0.0099 +vn -0.5725 0.7910 0.2158 +vn -0.5624 0.7956 -0.2252 +vn -0.6171 0.5028 -0.6053 +vn -0.5387 0.1155 -0.8346 +vn 0.4407 0.1357 -0.8874 +vn -0.0771 0.4508 -0.8893 +vn -0.1131 0.9768 -0.1819 +vn 0.4195 0.8410 -0.3416 +vn -0.0888 0.7905 -0.6060 +vn 0.4395 0.8382 0.3230 +vn 0.1774 0.2948 0.9389 +vn -0.4607 0.5250 0.7157 +vn 0.1653 0.4775 0.8629 +vn -0.2014 0.2341 0.9511 +vn 0.4199 0.1025 0.9017 +vn -0.0095 0.0459 0.9989 +vn -0.1956 -0.3234 0.9258 +vn 0.4692 -0.2657 -0.8422 +vn 0.5469 -0.2190 -0.8080 +vn 0.2140 -0.3774 -0.9010 +vn 0.2065 -0.5627 -0.8004 +vn -0.3808 -0.1816 -0.9067 +vn -0.3052 -0.5829 -0.7531 +vn -0.5905 -0.0544 -0.8052 +vn -0.8751 -0.3007 -0.3791 +vn -0.4094 -0.8969 -0.1671 +vn -0.4556 -0.8840 -0.1044 +vn -0.1337 -0.6663 -0.7336 +vn -0.4665 -0.6047 -0.6455 +vn -0.8492 0.0760 0.5225 +vn -0.9860 -0.1245 0.1113 +vn -0.7903 -0.3426 0.5080 +vn -0.8627 0.4978 0.0896 +vn -0.8099 0.3677 -0.4571 +vn -0.7888 -0.6046 -0.1101 +vn -0.9603 -0.0654 -0.2713 +vn -0.7485 -0.1539 -0.6451 +vn -0.9939 -0.1072 0.0277 +vn -0.9052 -0.3083 -0.2925 +vn -0.9129 -0.3624 0.1881 +vn -0.8986 -0.0944 0.4285 +vn -0.6860 -0.2747 -0.6737 +vn -0.8499 -0.1643 0.5007 +vn -0.7627 -0.1756 0.6225 +vn -0.6263 -0.2429 0.7408 +vn -0.8031 -0.0450 0.5941 +vn -0.9250 -0.3723 -0.0762 +vn -0.8404 -0.5171 0.1620 +vn -0.8503 -0.3073 -0.4273 +vn -0.4977 -0.4250 -0.7561 +vn -0.5348 0.0533 -0.8433 +vn -0.5617 -0.7798 -0.2766 +vn -0.5476 -0.7727 0.3212 +vn -0.1756 -0.5494 0.8169 +vn -0.6921 -0.1029 -0.7144 +vn -0.0039 0.1300 -0.9915 +vn -0.1322 -0.0214 -0.9910 +vn -0.6805 -0.4551 -0.5743 +vn 0.3422 0.3447 -0.8741 +vn 0.5531 -0.1354 -0.8220 +vn -0.0164 -0.3717 -0.9282 +vn -0.0210 -0.1087 -0.9939 +vn -0.0345 -0.7218 -0.6912 +vn -0.1668 -0.2291 0.9590 +vn -0.1248 -0.5109 0.8505 +vn 0.2263 -0.9540 -0.1968 +vn -0.7093 0.2023 -0.6752 +vn 0.8423 0.4974 0.2076 +vn 0.4905 0.1312 0.8615 +vn 0.2983 0.2226 0.9282 +vn -0.0316 0.4399 0.8975 +vn 0.0041 0.3911 0.9203 +vn 0.1220 0.8169 0.5637 +vn -0.2034 0.9771 -0.0628 +vn -0.3123 0.8976 -0.3111 +vn -0.2073 0.7593 -0.6168 +vn -0.2384 0.5046 -0.8298 +vn 0.5932 0.5091 0.6237 +vn 0.4790 0.1579 0.8635 +vn 0.4788 -0.0726 0.8749 +vn 0.3637 -0.1760 -0.9148 +vn -0.4755 0.0781 0.8762 +vn -0.5167 -0.6828 0.5165 +vn -0.0225 -0.9013 0.4327 +vn 0.4647 -0.4236 -0.7776 +vn -0.2145 -0.4002 -0.8910 +vn -0.1676 -0.7969 0.5805 +s 1 +f 1//1 2//2 3//3 +f 1//1 5//4 2//2 +f 6//5 4//6 357//7 +f 9//8 6//5 8//9 +f 8//9 7//10 10//11 +f 7//10 11//12 10//11 +f 11//12 13//13 12//14 +f 12//14 14//15 367//16 +f 15//17 16//18 14//15 +f 35//19 17//20 18//21 +f 17//20 19//22 18//21 +f 20//23 19//22 17//20 +f 20//23 21//24 19//22 +f 21//24 22//25 23//26 +f 22//25 25//27 23//26 +f 23//26 25//27 26//28 +f 21//24 23//26 27//29 +f 28//30 21//24 27//29 +f 19//22 21//24 29//31 +f 19//22 29//31 18//21 +f 32//32 31//33 30//34 +f 34//35 35//19 33//36 +f 37//37 38//38 39//39 +f 40//40 37//37 39//39 +f 43//41 42//42 44//43 +f 44//43 45//44 43//41 +f 46//45 45//44 47//46 +f 48//47 45//44 46//45 +f 48//47 46//45 50//48 +f 363//49 50//48 51//50 +f 55//51 53//52 54//53 +f 56//54 57//55 58//56 +f 59//57 56//54 58//56 +f 63//58 61//59 62//60 +f 64//61 65//62 61//59 +f 67//63 69//64 60//65 +f 71//66 72//67 70//68 +f 75//69 74//70 76//71 +f 76//71 77//72 75//69 +f 77//72 15//17 13//13 +f 15//17 78//73 16//18 +f 80//74 81//75 82//76 +f 79//77 80//74 17//20 +f 82//76 84//78 83//79 +f 86//80 83//79 85//81 +f 86//80 88//82 25//27 +f 88//82 90//83 89//84 +f 93//85 91//86 90//83 +f 91//86 93//85 94//87 +f 96//88 93//85 95//89 +f 99//90 98//91 97//92 +f 103//93 102//94 104//95 +f 105//96 104//95 102//94 +f 104//95 67//63 103//93 +f 68//97 67//63 104//95 +f 108//98 106//99 109//100 +f 110//101 112//102 111//103 +f 111//103 114//104 113//105 +f 115//106 111//103 113//105 +f 110//101 115//106 116//107 +f 110//101 116//107 108//98 +f 118//108 119//109 120//110 +f 120//110 121//111 122//112 +f 123//113 125//114 121//111 +f 123//113 124//115 125//114 +f 128//116 130//117 129//118 +f 131//119 132//120 130//117 +f 133//121 132//120 131//119 +f 137//122 135//123 134//124 +f 123//113 140//125 124//115 +f 127//126 124//115 141//127 +f 140//125 142//128 141//127 +f 140//125 141//127 124//115 +f 112//102 140//125 114//104 +f 112//102 138//129 139//130 +f 131//119 142//128 137//122 +f 139//130 137//122 142//128 +f 136//131 144//132 134//124 +f 99//90 144//132 143//133 +f 144//132 97//92 95//89 +f 145//134 144//132 95//89 +f 145//134 146//135 132//120 +f 132//120 146//135 147//136 +f 148//137 149//138 129//118 +f 150//139 149//138 84//78 +f 84//78 151//140 150//139 +f 152//141 148//137 129//118 +f 153//142 148//137 152//141 +f 147//136 154//143 148//137 +f 147//136 153//142 132//120 +f 146//135 87//144 147//136 +f 134//124 145//134 133//121 +f 153//142 130//117 132//120 +f 130//117 153//142 152//141 +f 142//128 130//117 141//127 +f 130//117 152//141 129//118 +f 125//114 127//126 126//145 +f 122//112 125//114 151//140 +f 119//109 114//104 121//111 +f 115//106 118//108 76//71 +f 105//96 102//94 101//146 +f 143//133 105//96 101//146 +f 99//90 143//133 101//146 +f 99//90 64//61 100//147 +f 96//88 98//91 156//148 +f 100//147 63//58 98//91 +f 63//58 157//149 98//91 +f 92//150 164//151 165//152 +f 92//150 165//152 166//153 +f 165//152 168//154 169//155 +f 172//156 174//157 171//158 +f 173//159 176//160 175//161 +f 190//162 180//163 354//164 +f 190//162 182//165 181//166 +f 181//166 182//165 203//167 +f 181//166 203//167 183//168 +f 181//166 183//168 184//169 +f 187//170 184//169 186//171 +f 188//172 186//171 184//169 +f 186//171 90//83 166//153 +f 187//170 189//173 184//169 +f 189//173 187//170 191//174 +f 193//175 192//176 167//177 +f 194//178 193//175 167//177 +f 193//175 196//179 195//180 +f 196//179 198//181 195//180 +f 196//179 199//182 200//183 +f 201//184 194//178 167//177 +f 187//170 195//180 191//174 +f 185//185 188//172 184//169 +f 183//168 203//167 202//186 +f 183//168 202//186 26//28 +f 202//186 27//29 26//28 +f 27//29 356//187 204//188 +f 207//189 204//188 206//190 +f 209//191 212//192 210//193 +f 215//194 217//195 216//196 +f 218//197 217//195 346//198 +f 218//197 219//199 217//195 +f 219//199 271//200 220//201 +f 221//202 220//201 271//200 +f 227//203 225//204 226//205 +f 226//205 228//206 229//207 +f 231//208 230//209 228//206 +f 234//210 232//211 233//212 +f 230//209 233//212 232//211 +f 234//210 235//213 232//211 +f 236//214 237//215 235//213 +f 237//215 236//214 239//216 +f 239//216 240//217 241//218 +f 241//218 240//217 242//219 +f 244//220 243//221 246//222 +f 247//223 244//220 246//222 +f 248//224 247//223 238//225 +f 249//226 248//224 238//225 +f 251//227 236//214 235//213 +f 234//210 253//228 252//229 +f 255//230 254//231 256//232 +f 257//233 256//232 228//206 +f 263//234 262//235 261//236 +f 272//237 267//238 266//239 +f 268//240 270//241 269//242 +f 269//242 270//241 164//151 +f 168//154 164//151 270//241 +f 270//241 271//200 219//199 +f 158//243 268//240 159//244 +f 268//240 272//237 266//239 +f 274//245 276//246 275//247 +f 279//248 280//249 278//250 +f 279//248 281//251 280//249 +f 283//252 280//249 281//251 +f 280//249 284//253 285//254 +f 287//255 285//254 286//256 +f 286//256 289//257 288//258 +f 290//259 291//260 289//257 +f 292//261 290//259 293//262 +f 293//262 294//263 292//261 +f 298//264 299//265 300//266 +f 299//265 302//267 300//266 +f 39//39 303//268 301//269 +f 38//38 304//270 303//268 +f 304//270 305//271 32//32 +f 304//270 32//32 303//268 +f 302//267 250//272 306//273 +f 307//274 306//273 250//272 +f 308//275 311//276 309//277 +f 251//227 311//276 307//274 +f 252//229 312//278 251//227 +f 312//278 313//279 311//276 +f 312//278 291//260 313//279 +f 314//280 309//277 313//279 +f 314//280 315//281 316//282 +f 314//280 291//260 315//281 +f 309//277 311//276 313//279 +f 317//283 310//284 309//277 +f 307//274 308//275 306//273 +f 41//285 299//265 298//264 +f 310//284 297//286 298//264 +f 295//287 319//288 296//289 +f 315//281 295//287 316//282 +f 293//262 320//290 294//263 +f 294//263 315//281 292//261 +f 47//46 320//290 283//252 +f 290//259 289//257 286//256 +f 289//257 252//229 288//258 +f 288//258 253//228 287//255 +f 47//46 283//252 282//291 +f 279//248 52//292 281//251 +f 277//293 285//254 287//255 +f 262//235 321//294 261//236 +f 58//56 273//295 158//243 +f 272//237 264//296 265//297 +f 321//294 257//233 261//236 +f 321//294 277//293 255//230 +f 277//293 287//255 255//230 +f 253//228 233//212 254//231 +f 256//232 254//231 233//212 +f 253//228 234//210 233//212 +f 302//267 248//224 250//272 +f 247//223 322//298 207//189 +f 301//269 247//223 302//267 +f 247//223 207//189 244//220 +f 245//299 323//300 324//301 +f 243//221 245//299 324//301 +f 323//300 325//302 326//303 +f 324//301 323//300 326//303 +f 325//302 327//304 326//303 +f 326//303 327//304 328//305 +f 326//303 328//305 329//306 +f 227//203 330//307 329//306 +f 333//308 330//307 334//309 +f 241//218 333//308 334//309 +f 339//310 337//311 338//312 +f 340//313 237//215 341//314 +f 230//209 338//312 229//207 +f 338//312 337//311 332//315 +f 340//313 336//316 337//311 +f 336//316 341//314 335//317 +f 332//315 336//316 335//317 +f 343//318 328//305 342//319 +f 343//318 342//319 344//320 +f 224//321 343//318 344//320 +f 344//320 217//195 220//201 +f 217//195 342//319 216//196 +f 342//319 345//322 216//196 +f 324//301 326//303 333//308 +f 341//314 241//218 335//317 +f 238//225 246//222 240//217 +f 232//211 235//213 340//313 +f 256//232 231//208 228//206 +f 223//323 228//206 225//204 +f 225//204 343//318 224//321 +f 222//324 259//325 258//326 +f 347//327 346//198 215//194 +f 347//327 348//328 346//198 +f 347//327 349//329 348//328 +f 350//330 349//329 351//331 +f 352//332 349//329 350//330 +f 349//329 352//332 348//328 +f 171//158 348//328 353//333 +f 170//334 219//199 218//197 +f 351//331 213//335 354//164 +f 355//336 213//335 211//337 +f 347//327 213//335 349//329 +f 212//192 214//338 345//322 +f 327//304 212//192 345//322 +f 356//187 203//167 209//191 +f 209//191 203//167 355//336 +f 325//302 210//193 327//304 +f 323//300 210//193 325//302 +f 245//299 208//339 323//300 +f 245//299 207//189 206//190 +f 322//298 205//340 207//189 +f 208//339 206//190 204//188 +f 202//186 356//187 27//29 +f 202//186 203//167 356//187 +f 184//169 189//173 181//166 +f 355//336 182//165 354//164 +f 354//164 180//163 351//331 +f 198//181 178//341 179//342 +f 178//341 350//330 351//331 +f 179//342 178//341 351//331 +f 177//343 350//330 178//341 +f 200//183 175//161 177//343 +f 176//160 352//332 177//343 +f 199//182 175//161 200//183 +f 172//156 353//333 176//160 +f 352//332 176//160 353//333 +f 201//184 174//157 173//159 +f 167//177 174//157 201//184 +f 174//157 169//155 171//158 +f 169//155 168//154 170//334 +f 174//157 165//152 169//155 +f 62//60 159//244 157//149 +f 156//148 160//344 161//345 +f 145//134 95//89 155//346 +f 96//88 95//89 97//92 +f 92//150 166//153 90//83 +f 155//346 88//82 146//135 +f 188//172 89//84 90//83 +f 22//25 83//79 24//347 +f 85//81 154//143 86//80 +f 87//144 86//80 154//143 +f 81//75 151//140 84//78 +f 122//112 81//75 80//74 +f 79//77 122//112 80//74 +f 120//110 79//77 78//73 +f 357//7 74//70 75//69 +f 73//348 74//70 357//7 +f 116//107 74//70 73//348 +f 358//349 72//67 1//1 +f 359//350 361//351 360//352 +f 362//353 364//354 363//49 +f 48//47 364//354 49//355 +f 364//354 365//356 49//355 +f 365//356 10//11 366//357 +f 366//357 10//11 37//37 +f 10//11 12//14 367//16 +f 364//354 48//47 363//49 +f 72//67 71//66 117//358 +f 107//359 71//66 68//97 +f 67//63 66//360 103//93 +f 103//93 66//360 65//62 +f 102//94 103//93 65//62 +f 64//61 102//94 65//62 +f 59//57 61//59 60//65 +f 60//65 56//54 59//57 +f 69//64 56//54 60//65 +f 158//243 59//57 58//56 +f 57//55 276//246 274//245 +f 361//351 53//52 360//352 +f 50//48 281//251 52//292 +f 45//44 49//355 43//41 +f 41//285 40//40 318//361 +f 322//298 30//34 205//340 +f 29//31 21//24 28//30 +f 25//27 185//185 26//28 +f 20//23 17//20 82//76 +f 367//16 14//15 35//19 +f 37//37 367//16 35//19 +f 12//14 13//13 14//15 +f 357//7 11//12 7//10 +f 8//9 10//11 365//356 +f 364//354 8//9 365//356 +f 6//5 357//7 7//10 +f 77//72 120//110 78//73 +f 3//3 2//2 362//353 +f 3//3 362//353 361//351 +f 2//2 5//4 9//8 +f 362//353 2//2 9//8 +f 3//3 361//351 359//350 +f 358//349 3//3 359//350 +f 10//11 11//12 12//14 +f 365//356 366//357 49//355 +f 366//357 37//37 43//41 +f 117//358 107//359 108//98 +f 117//358 108//98 116//107 +f 118//108 115//106 113//105 +f 138//129 109//100 135//123 +f 140//125 123//113 114//104 +f 107//359 117//358 71//66 +f 118//108 120//110 76//71 +f 125//114 150//139 151//140 +f 70//68 359//350 69//64 +f 16//18 79//77 17//20 +f 11//12 75//69 13//13 +f 70//68 69//64 68//97 +f 60//65 61//59 65//62 +f 34//35 305//271 304//270 +f 277//293 262//235 276//246 +f 305//271 33//36 31//33 +f 267//238 265//297 221//202 +f 243//221 242//219 240//217 +f 328//305 227//203 329//306 +f 230//209 232//211 339//310 +f 339//310 340//313 337//311 +f 334//309 332//315 335//317 +f 45//44 320//290 47//46 +f 319//288 45//44 44//43 +f 46//45 282//291 50//48 +f 41//285 297//286 42//42 +f 318//361 40//40 39//39 +f 294//263 319//288 295//287 +f 297//286 296//289 42//42 +f 319//288 42//42 296//289 +f 41//285 298//264 297//286 +f 32//32 301//269 303//268 +f 291//260 292//261 315//281 +f 296//289 297//286 317//283 +f 291//260 312//278 289//257 +f 317//283 297//286 310//284 +f 233//212 230//209 231//208 +f 249//226 307//274 250//272 +f 308//275 300//266 306//273 +f 280//249 285//254 278//250 +f 41//285 37//37 40//40 +f 278//250 276//246 279//248 +f 290//259 286//256 284//253 +f 260//362 259//325 265//297 +f 254//231 287//255 253//228 +f 307//274 249//226 251//227 +f 229//207 338//312 331//363 +f 106//99 135//123 109//100 +f 123//113 121//111 114//104 +f 142//128 131//119 130//117 +f 136//131 105//96 143//133 +f 129//118 150//139 126//145 +f 91//86 163//364 92//150 +f 146//135 88//82 87//144 +f 149//138 154//143 85//81 +f 100//147 64//61 63//58 +f 96//88 156//148 94//87 +f 96//88 94//87 93//85 +f 155//346 93//85 90//83 +f 98//91 157//149 160//344 +f 94//87 161//345 163//364 +f 58//56 57//55 274//245 +f 359//350 360//352 55//51 +f 69//64 359//350 55//51 +f 25//27 89//84 185//185 +f 263//234 264//296 273//295 +f 29//31 204//188 30//34 +f 236//214 249//226 238//225 +f 328//305 345//322 342//319 +f 59//57 158//243 62//60 +f 160//344 159//244 269//242 +f 161//345 160//344 269//242 +f 208//339 356//187 209//191 +f 266//239 271//200 270//241 +f 209//191 355//336 211//337 +f 213//335 351//331 349//329 +f 223//323 222//324 258//326 +f 243//221 333//308 242//219 +f 224//321 220//201 222//324 +f 219//199 220//201 217//195 +f 345//322 214//338 216//196 +f 166//153 192//176 186//171 +f 191//174 190//162 189//173 +f 194//178 201//184 199//182 +f 185//185 183//168 26//28 +f 167//177 165//152 174//157 +f 180//163 198//181 179//342 +f 201//184 173//159 199//182 +f 199//182 173//159 175//161 +f 197//365 200//183 177//343 +f 214//338 347//327 215//194 +f 172//156 171//158 353//333 +f 352//332 350//330 177//343 +f 1//1 4//6 5//4 +f 6//5 5//4 4//6 +f 6//5 7//10 8//9 +f 35//19 14//15 17//20 +f 21//24 20//23 22//25 +f 22//25 24//347 25//27 +f 31//33 29//31 30//34 +f 33//36 18//21 31//33 +f 36//366 35//19 34//35 +f 35//19 36//366 37//37 +f 37//37 36//366 38//38 +f 43//41 41//285 42//42 +f 48//47 49//355 45//44 +f 50//48 363//49 48//47 +f 52//292 51//50 50//48 +f 51//50 52//292 53//52 +f 53//52 52//292 54//53 +f 56//54 55//51 54//53 +f 56//54 54//53 57//55 +f 66//360 60//65 65//62 +f 67//63 60//65 66//360 +f 67//63 68//97 69//64 +f 13//13 75//69 77//72 +f 77//72 78//73 15//17 +f 79//77 16//18 78//73 +f 82//76 17//20 80//74 +f 82//76 81//75 84//78 +f 85//81 83//79 84//78 +f 86//80 24//347 83//79 +f 86//80 87//144 88//82 +f 88//82 89//84 25//27 +f 90//83 91//86 92//150 +f 97//92 98//91 96//88 +f 99//90 100//147 98//91 +f 64//61 99//90 101//146 +f 106//99 108//98 104//95 +f 110//101 108//98 109//100 +f 110//101 109//100 112//102 +f 111//103 112//102 114//104 +f 110//101 111//103 115//106 +f 116//107 72//67 117//358 +f 118//108 113//105 119//109 +f 120//110 119//109 121//111 +f 126//145 127//126 128//116 +f 128//116 129//118 126//145 +f 134//124 135//123 136//131 +f 137//122 138//129 135//123 +f 141//127 128//116 127//126 +f 140//125 139//130 142//128 +f 112//102 139//130 140//125 +f 112//102 109//100 138//129 +f 139//130 138//129 137//122 +f 131//119 137//122 134//124 +f 136//131 106//99 105//96 +f 136//131 143//133 144//132 +f 99//90 97//92 144//132 +f 150//139 129//118 149//138 +f 148//137 154//143 149//138 +f 153//142 147//136 148//137 +f 147//136 87//144 154//143 +f 145//134 155//346 146//135 +f 134//124 144//132 145//134 +f 132//120 133//121 145//134 +f 141//127 130//117 128//116 +f 125//114 124//115 127//126 +f 122//112 121//111 125//114 +f 119//109 113//105 114//104 +f 63//58 62//60 157//149 +f 62//60 158//243 159//244 +f 162//367 163//364 161//345 +f 163//364 162//367 92//150 +f 92//150 162//367 164//151 +f 171//158 169//155 170//334 +f 172//156 173//159 174//157 +f 173//159 172//156 176//160 +f 175//161 176//160 177//343 +f 190//162 354//164 182//165 +f 184//169 183//168 185//185 +f 186//171 188//172 90//83 +f 193//175 194//178 196//179 +f 196//179 197//365 198//181 +f 196//179 194//178 199//182 +f 187//170 193//175 195//180 +f 185//185 89//84 188//172 +f 28//30 27//29 204//188 +f 204//188 205//340 30//34 +f 207//189 205//340 204//188 +f 208//339 209//191 210//193 +f 209//191 211//337 212//192 +f 212//192 213//335 214//338 +f 214//338 215//194 216//196 +f 215//194 346//198 217//195 +f 221//202 222//324 220//201 +f 223//323 224//321 222//324 +f 224//321 223//323 225//204 +f 226//205 225//204 228//206 +f 229//207 228//206 230//209 +f 236//214 238//225 239//216 +f 239//216 238//225 240//217 +f 243//221 244//220 245//299 +f 247//223 246//222 238//225 +f 249//226 250//272 248//224 +f 251//227 249//226 236//214 +f 251//227 234//210 252//229 +f 255//230 287//255 254//231 +f 258//326 228//206 223//323 +f 260//362 258//326 259//325 +f 261//236 257//233 258//326 +f 263//234 260//362 264//296 +f 264//296 260//362 265//297 +f 272//237 265//297 267//238 +f 268//240 266//239 270//241 +f 159//244 268//240 269//242 +f 158//243 272//237 268//240 +f 272//237 273//295 264//296 +f 274//245 263//234 273//295 +f 263//234 274//245 275//247 +f 277//293 276//246 278//250 +f 278//250 285//254 277//293 +f 282//291 283//252 281//251 +f 280//249 283//252 284//253 +f 287//255 286//256 288//258 +f 290//259 292//261 291//260 +f 290//259 284//253 293//262 +f 299//265 301//269 302//267 +f 38//38 303//268 39//39 +f 308//275 309//277 310//284 +f 251//227 312//278 311//276 +f 252//229 289//257 312//278 +f 291//260 314//280 313//279 +f 314//280 316//282 317//283 +f 316//282 296//289 317//283 +f 314//280 317//283 309//277 +f 310//284 300//266 308//275 +f 307//274 311//276 308//275 +f 39//39 301//269 299//265 +f 300//266 302//267 306//273 +f 41//285 318//361 299//265 +f 300//266 310//284 298//264 +f 44//43 42//42 319//288 +f 296//289 316//282 295//287 +f 315//281 294//263 295//287 +f 283//252 320//290 293//262 +f 284//253 283//252 293//262 +f 252//229 253//228 288//258 +f 285//254 284//253 286//256 +f 281//251 50//48 282//291 +f 275//247 276//246 262//235 +f 262//235 277//293 321//294 +f 58//56 274//245 273//295 +f 260//362 263//234 261//236 +f 263//234 275//247 262//235 +f 321//294 255//230 257//233 +f 257//233 255//230 256//232 +f 248//224 302//267 247//223 +f 301//269 32//32 322//298 +f 301//269 322//298 247//223 +f 227//203 331//363 330//307 +f 331//363 332//315 330//307 +f 333//308 329//306 330//307 +f 241//218 242//219 333//308 +f 334//309 335//317 241//218 +f 230//209 339//310 338//312 +f 340//313 341//314 336//316 +f 337//311 336//316 332//315 +f 330//307 332//315 334//309 +f 344//320 220//201 224//321 +f 217//195 344//320 342//319 +f 326//303 329//306 333//308 +f 244//220 207//189 245//299 +f 246//222 243//221 240//217 +f 341//314 239//216 241//218 +f 237//215 340//313 235//213 +f 226//205 229//207 331//363 +f 227//203 226//205 331//363 +f 225//204 227//203 343//318 +f 222//324 221//202 259//325 +f 271//200 267//238 221//202 +f 352//332 353//333 348//328 +f 348//328 171//158 346//198 +f 170//334 270//241 219//199 +f 355//336 354//164 213//335 +f 347//327 214//338 213//335 +f 327//304 210//193 212//192 +f 213//335 212//192 211//337 +f 323//300 208//339 210//193 +f 245//299 206//190 208//339 +f 356//187 208//339 204//188 +f 355//336 203//167 182//165 +f 181//166 189//173 190//162 +f 190//162 198//181 180//163 +f 180//163 179//342 351//331 +f 198//181 197//365 178//341 +f 197//365 177//343 178//341 +f 170//334 346//198 171//158 +f 168//154 270//241 170//334 +f 165//152 164//151 168//154 +f 162//367 269//242 164//151 +f 157//149 159//244 160//344 +f 156//148 98//91 160//344 +f 95//89 93//85 155//346 +f 155//346 90//83 88//82 +f 22//25 82//76 83//79 +f 22//25 20//23 82//76 +f 149//138 85//81 84//78 +f 122//112 151//140 81//75 +f 79//77 120//110 122//112 +f 4//6 73//348 357//7 +f 74//70 115//106 76//71 +f 116//107 115//106 74//70 +f 73//348 1//1 72//67 +f 70//68 358//349 359//350 +f 361//351 362//353 363//49 +f 362//353 9//8 364//354 +f 10//11 367//16 37//37 +f 71//66 70//68 68//97 +f 64//61 101//146 102//94 +f 64//61 61//59 63//58 +f 57//55 54//53 276//246 +f 56//54 69//64 55//51 +f 360//352 53//52 55//51 +f 54//53 52//292 279//248 +f 361//351 51//50 53//52 +f 49//355 366//357 43//41 +f 23//26 26//28 27//29 +f 33//36 35//19 18//21 +f 17//20 14//15 16//18 +f 357//7 75//69 11//12 +f 364//354 9//8 8//9 +f 5//4 6//5 9//8 +f 3//3 358//349 1//1 +f 1//1 73//348 4//6 +f 72//67 358//349 70//68 +f 77//72 76//71 120//110 +f 51//50 361//351 363//49 +f 54//53 279//248 276//246 +f 108//98 107//359 104//95 +f 72//67 116//107 73//348 +f 107//359 68//97 104//95 +f 125//114 126//145 150//139 +f 14//15 13//13 15//17 +f 62//60 61//59 59//57 +f 34//35 33//36 305//271 +f 265//297 259//325 221//202 +f 18//21 29//31 31//33 +f 256//232 233//212 231//208 +f 234//210 251//227 235//213 +f 328//305 343//318 227//203 +f 237//215 239//216 341//314 +f 339//310 232//211 340//313 +f 331//363 338//312 332//315 +f 319//288 320//290 45//44 +f 46//45 47//46 282//291 +f 34//35 304//270 38//38 +f 38//38 36//366 34//35 +f 294//263 320//290 319//288 +f 299//265 318//361 39//39 +f 41//285 43//41 37//37 +f 322//298 32//32 30//34 +f 106//99 136//131 135//123 +f 134//124 133//121 131//119 +f 106//99 104//95 105//96 +f 25//27 24//347 86//80 +f 94//87 156//148 161//345 +f 163//364 91//86 94//87 +f 158//243 273//295 272//237 +f 269//242 162//367 161//345 +f 305//271 31//33 32//32 +f 29//31 28//30 204//188 +f 261//236 258//326 260//362 +f 258//326 257//233 228//206 +f 328//305 327//304 345//322 +f 266//239 267//238 271//200 +f 243//221 324//301 333//308 +f 166//153 167//177 192//176 +f 186//171 192//176 187//170 +f 191//174 198//181 190//162 +f 187//170 192//176 193//175 +f 198//181 191//174 195//180 +f 196//179 200//183 197//365 +f 167//177 166//153 165//152 +f 170//334 218//197 346//198 +o 90_45_15 +v -22.270214 16.441021 -20.204004 +v 0.759259 25.129906 -8.490008 +v -76.936531 74.687881 171.859482 +v -23.559580 -0.210726 112.837364 +v -13.565182 7.959826 86.045937 +v -18.854958 15.974929 130.283539 +v -24.403160 28.465103 145.238586 +v -21.960838 96.991150 174.631149 +v -50.340729 50.817284 166.567307 +v -45.087849 -51.364326 209.394012 +v -39.586510 -50.179592 196.582504 +v -17.966858 -40.380981 158.718353 +v 23.729200 -4.759640 -3.489798 +v 16.388365 12.038861 19.687094 +v 68.974686 -17.833157 185.327667 +v -67.146896 85.033813 175.730331 +v -20.209934 -8.215250 113.933220 +v -44.031162 48.170399 152.544907 +v 21.461569 5.541148 10.543559 +v 16.928158 -4.433425 60.986874 +v -12.947159 1.435487 118.094299 +v -26.489473 48.994694 156.777420 +v 29.749752 -5.674760 133.674026 +v 35.139332 -10.389806 119.903030 +v -31.781736 43.091312 187.269989 +v -55.364365 74.168869 174.776199 +v -52.497337 -90.393349 190.907578 +v -56.062908 66.127426 162.622116 +v -31.085985 -64.021362 166.711624 +v -21.563353 -43.843426 180.509598 +v 16.499920 -14.321268 -19.274590 +v -4.018969 -81.203720 183.572922 +v 52.194878 -25.829363 199.445572 +v -14.262405 -0.146025 69.028748 +v 68.389893 -3.978740 148.861023 +v -27.085802 -67.768463 172.095245 +v -28.463144 59.880959 172.267578 +v -66.577080 77.660645 184.590851 +v 19.633162 -7.135476 -20.511736 +v -78.173088 75.050003 174.400391 +v -66.311028 84.387955 172.330978 +v -10.601799 -20.331373 83.429054 +v -24.515564 30.492729 128.494034 +v 40.106342 -6.609649 145.660538 +v -65.081985 -80.973984 180.266586 +v -54.307884 -81.234406 170.176971 +v -55.074623 47.779701 161.089920 +v 71.139336 -5.472779 180.337036 +v 6.370090 12.495275 46.395428 +v 85.620682 10.827584 201.885208 +v 97.398941 9.136569 189.469894 +v -32.727112 48.361755 198.642319 +v -27.779871 44.698620 190.718140 +v 105.500275 -40.687653 169.865219 +v 0.716656 -12.436666 117.052391 +v 43.822414 5.683759 138.882523 +v -38.160122 -53.386963 174.434296 +v 58.318699 -11.309142 186.667465 +v 84.776840 20.545551 187.546799 +v -27.773863 30.946438 175.296417 +v 82.474083 -14.178498 152.765442 +v 45.099152 -10.184542 167.820267 +v -48.535381 51.675934 157.043182 +v 14.943283 -4.356836 79.518738 +v 9.609039 7.340398 110.204338 +v -21.588278 -43.861641 146.188004 +v -4.743816 -23.169834 130.347305 +v -23.736073 79.338898 161.111221 +v -48.632561 -80.958366 171.813095 +v 73.892181 5.918242 165.447647 +v 81.899002 4.250352 178.708115 +v -35.122826 34.198181 200.275269 +v 36.315666 10.123317 130.686859 +v 50.473423 -2.032973 135.511765 +v -9.535847 94.206413 188.016312 +v 72.635811 -14.232252 173.496628 +v -45.638142 55.430519 163.903748 +v -29.741304 44.021492 200.187698 +v 9.637718 -19.035555 109.787193 +v 64.509872 -28.180607 175.571198 +v -52.516827 -93.587143 180.488129 +v 67.489273 -30.809753 210.000519 +v -57.956608 50.651382 163.266632 +v -31.790648 18.021797 128.524017 +v -50.763599 -68.625816 170.930649 +v 77.823151 -12.211771 149.469162 +v -28.324945 77.674294 170.015701 +v -15.056133 -7.061650 118.584656 +v -30.946711 -57.903355 186.774780 +v 57.216858 -19.523983 200.931473 +v -36.347347 57.577240 167.261215 +v -69.233078 63.394958 175.259308 +v -22.579859 4.733519 4.761971 +v -15.435606 -6.739156 70.650528 +v 24.379745 5.152631 129.565826 +v 15.151026 -6.471791 67.108284 +v -32.067245 29.880802 138.513885 +v -14.695082 -37.437294 124.828682 +v -7.323615 16.699780 114.228226 +v -7.071387 18.500755 100.741646 +v 2.534078 4.964490 113.225410 +v -19.609240 97.971687 189.906586 +v -15.911192 69.651375 170.410934 +v -41.384129 44.256763 170.426117 +v -30.310511 -56.092319 207.284134 +v 0.746727 22.963528 -16.723061 +v -41.708126 29.076897 158.943939 +v 55.099773 -27.211075 175.474808 +v -25.548868 47.605927 198.340256 +v -24.098110 -2.077247 99.040009 +v -24.956959 -22.774105 125.318359 +v -28.685747 75.025925 174.601974 +v 46.726818 -1.691197 169.113190 +v -46.389427 -84.417938 183.109940 +v -31.488806 -41.722622 162.085266 +v 77.816803 14.947991 179.533707 +v -16.932829 -64.669800 177.765350 +v 8.013962 -20.604053 21.674076 +v -21.902298 -52.248718 192.209885 +v -10.292728 -76.324806 167.217880 +v -10.870487 -81.729553 178.566116 +v -4.745530 -91.618919 190.604034 +v 18.982613 17.270615 -19.865843 +v -18.781109 25.849712 124.962601 +v 64.049057 -42.532028 199.228012 +v -26.428762 13.182714 132.948349 +v 28.007351 0.452284 103.301132 +v -0.336029 -21.964497 86.258804 +v -6.622076 -31.392479 108.710625 +v -2.832825 -30.722851 114.013153 +v -7.905581 -33.778221 134.868042 +v -21.172136 67.227295 172.102707 +v -3.149461 -20.215714 -14.343609 +v -11.761538 -63.048920 174.891998 +v 0.428195 -82.760254 170.430466 +v -57.588291 -96.630272 186.538055 +v 65.111931 -12.627995 186.952744 +v 69.039986 -26.908459 164.231400 +v -16.774292 -75.033401 172.632431 +v -19.763763 -64.318848 161.183243 +v -8.969076 20.481236 104.886551 +v -24.042780 33.982517 138.121780 +v -62.226490 -79.198380 185.973267 +v -25.199432 86.118195 187.000519 +v -41.246693 -66.952881 180.747269 +v -38.990158 -56.923107 166.597412 +v -36.623123 -53.279533 183.728699 +v 87.515472 11.465934 179.018967 +v -18.978428 18.260834 -12.089362 +v -3.509313 -102.294701 179.865204 +v -3.486890 -91.962608 169.582230 +v -37.005966 41.268787 147.233673 +v -27.173735 -40.807888 153.183487 +v 75.708855 -27.561733 167.070267 +v -16.474657 -46.725285 156.264664 +v 1.163939 -21.308292 118.057541 +v -45.505016 -64.524429 178.854736 +v -36.247402 -40.349426 188.789597 +v 80.191452 -19.550663 166.854996 +v -17.777729 -46.308071 172.105667 +v -35.315186 39.335579 181.114029 +v -5.807636 -21.131413 76.369583 +v -29.977152 15.803433 131.721741 +v 50.633572 -15.665548 153.424652 +v 82.238876 -32.235931 165.011719 +v 21.317503 -2.886065 128.337296 +v -26.803854 -38.783150 156.669662 +v -66.225456 -91.039948 182.904938 +v -16.897562 -30.450619 149.604538 +v 58.617943 -28.383446 210.403503 +v -7.841122 5.984216 117.767410 +v 92.177467 -27.867737 148.916321 +v -18.396595 -56.467388 180.867371 +v -31.830362 -40.153332 211.058136 +v -48.632900 64.371704 170.421677 +v 54.471527 1.971812 141.428116 +v 33.487167 -1.634455 142.117599 +v -26.084606 40.194180 199.606476 +v -24.770327 -44.621403 150.074554 +v 8.300179 9.470828 73.249779 +v -29.476324 25.884323 148.452850 +v 21.455650 6.637036 97.407280 +v 65.192360 -19.508575 200.642639 +v -6.642650 -22.272839 10.591579 +v -34.054279 -61.890842 163.700089 +v 78.450157 1.655960 182.244080 +v -25.160862 -52.027672 211.075607 +v -28.575293 42.961147 149.823868 +v -23.898993 -41.773182 209.874847 +v -25.227709 20.807850 111.708969 +v 78.218559 12.243279 172.534821 +v 20.934628 17.992161 -17.444395 +v 3.946965 -22.523922 5.191602 +v 61.597923 -38.925758 194.707245 +v -32.577419 21.012192 140.461014 +v -22.551424 -15.577816 108.071579 +v 12.583379 6.964984 84.798325 +v 41.157974 -4.232435 124.878166 +v 64.480209 10.383729 158.102737 +v -20.336946 69.221107 161.513229 +v -65.997444 61.736740 168.956528 +v -64.402916 -90.654297 190.921097 +v -23.456394 45.755329 181.510239 +v 19.359461 -14.885241 -9.336136 +v 33.122097 -6.060882 111.798355 +v -11.567089 -83.911301 171.144852 +v 79.827744 -33.527058 154.766251 +v 50.085499 -15.722606 181.418274 +v -24.414700 -21.047840 110.505539 +v 70.721184 -23.252802 196.436569 +v -19.864470 -23.122108 102.916618 +v 5.829228 -81.842018 180.217529 +v -22.158308 -39.731606 130.325150 +v 36.088367 9.473804 121.407211 +v 40.416191 4.482336 123.188324 +v 24.962908 -6.789281 98.994995 +v -3.617992 -31.023464 130.389694 +v 40.370628 -7.758324 131.607941 +v -54.356834 -80.410866 190.884842 +v 14.785431 10.755803 99.911064 +v -61.359959 55.824287 169.566895 +v -0.261615 10.474809 74.026871 +v -61.215534 63.752876 163.573318 +v -46.080208 35.157227 156.007187 +v -36.159389 25.264645 148.690079 +v -23.158869 2.204362 95.010323 +v -27.587370 23.671753 123.508644 +v -34.318619 54.506424 156.047363 +v -28.567656 34.038097 137.688614 +v -13.871031 21.181461 123.770378 +v -27.225458 68.391281 159.964523 +v -25.899345 94.375900 182.684555 +v -14.571964 85.434509 189.920715 +v -12.275768 94.434784 175.825516 +v -12.096109 97.706940 190.211212 +v -67.271027 73.775795 185.073837 +v -50.414200 60.023399 172.665100 +v -58.337543 54.427856 170.686783 +v -50.079552 64.016960 163.145050 +v -45.871986 37.610348 163.471634 +v -35.046715 31.978371 175.642975 +v -36.375114 56.649345 160.315353 +v -27.411654 47.703568 180.907867 +v -29.448317 30.412838 156.668594 +v -25.747686 54.443474 173.292404 +v -28.016802 31.764309 158.460892 +v -28.190359 33.916012 191.007126 +v -26.350220 45.635891 194.733658 +v -16.261375 -10.140424 38.243881 +v -18.810843 -14.952698 -6.476443 +v -13.236443 -13.476265 70.968925 +v -24.794054 -35.357700 126.524551 +v -10.942198 -15.936203 128.174652 +v -21.260399 -18.029116 125.608932 +v -22.596064 -39.612434 160.574692 +v -21.959181 -56.643696 156.265793 +v -15.015963 -29.524853 105.449524 +v -12.849848 -24.487547 137.780533 +v -16.955891 -47.422981 153.160339 +v -44.028774 -49.918194 210.193649 +v -43.177097 -79.883301 176.623932 +v -37.338070 -40.827194 207.835403 +v -36.863346 -67.092300 174.460022 +v -28.972609 -37.545055 190.435181 +v -10.585533 -64.051247 166.931107 +v -62.723980 -92.403282 176.881454 +v -4.518458 -101.962791 181.684021 +v -22.667730 -9.881704 -19.743509 +v -2.445290 17.819965 98.591522 +v 9.204035 -3.565400 117.347870 +v 32.436691 4.097905 138.295334 +v 40.653770 2.615213 147.430084 +v 59.923939 -6.213825 144.291763 +v 53.986618 9.317315 157.640442 +v 71.636528 -4.510902 156.292114 +v 69.078056 3.713924 182.622559 +v 74.034271 -0.690847 172.432587 +v 69.101173 11.678161 178.357285 +v 85.312881 19.664185 199.776352 +v 74.916214 8.145438 191.188309 +v 85.169464 7.361804 199.418549 +v 96.895889 19.045750 190.319839 +v -2.749878 -21.372368 71.705078 +v 15.401199 -12.601379 58.632568 +v 13.668167 -11.242454 75.281029 +v 16.109739 -13.343771 88.038437 +v 17.611048 -11.922631 116.399330 +v 46.433521 -11.238252 140.371063 +v 64.119026 -16.584263 149.354446 +v 53.832790 -33.725342 196.631088 +v 67.937317 -41.262829 200.326233 +v 55.818867 -32.092979 209.907089 +v 70.781181 -28.730831 159.617340 +v 69.446159 -24.808533 175.541351 +v 6.423729 -90.158455 190.135544 +v 6.498238 -92.544128 178.156891 +v 5.925654 -93.113312 189.299911 +v 94.525391 -24.173283 155.237595 +v 94.573891 -39.404110 150.922882 +v 87.507919 -42.751495 160.121674 +v 105.861389 -41.026592 149.861832 +v 91.592766 -23.388670 161.211960 +v 105.707199 -39.685226 168.261108 +v 105.820503 -30.106686 159.232742 +vn -0.9850 0.1290 0.1146 +vn -0.6557 0.4746 -0.5872 +vn -0.6813 -0.3918 -0.6184 +vn 0.0259 0.9996 0.0074 +vn -0.5958 0.7963 0.1044 +vn -0.9904 0.0934 0.1019 +vn 0.0748 0.8530 -0.5165 +vn -0.7592 0.0642 -0.6477 +vn -0.6363 -0.6977 0.3291 +vn -0.7510 -0.4842 -0.4489 +vn -0.8621 0.5039 -0.0537 +vn -0.9849 -0.1400 -0.1019 +vn -0.2171 0.9695 -0.1139 +vn -0.4861 0.0463 -0.8727 +vn 0.0529 0.5183 -0.8536 +vn -0.2871 0.4856 -0.8257 +vn -0.7577 -0.5846 -0.2899 +vn -0.3918 0.3611 -0.8462 +vn -0.3957 0.3539 -0.8474 +vn -0.5863 -0.8101 -0.0018 +vn -0.3141 0.7319 -0.6047 +vn -0.8412 0.2741 -0.4661 +vn -0.0732 0.5797 -0.8116 +vn -0.5563 -0.8160 0.1569 +vn -0.8401 -0.4736 -0.2645 +vn -0.8511 -0.3670 0.3754 +vn -0.9276 0.1826 -0.3259 +vn -0.9940 -0.0192 -0.1079 +vn -0.9756 -0.1549 -0.1559 +vn -0.6083 0.6786 -0.4118 +vn -0.7526 -0.6341 0.1775 +vn -0.0548 0.8288 -0.5568 +vn -0.6275 0.6409 -0.4420 +vn -0.4372 -0.8226 0.3635 +vn 0.3532 -0.8023 0.4812 +vn -0.1230 -0.7891 0.6018 +vn -0.5368 0.7490 -0.3885 +vn 0.5562 0.8294 -0.0521 +vn 0.1190 -0.3657 0.9231 +vn 0.6972 0.6965 -0.1696 +vn 0.9004 -0.1520 0.4078 +vn 0.7027 -0.2217 0.6761 +vn 0.0520 0.7201 -0.6919 +vn 0.8793 0.1437 -0.4541 +vn -0.4529 0.3380 -0.8250 +vn -0.1630 0.4202 -0.8927 +vn 0.9005 -0.4269 0.0826 +vn 0.6273 -0.7321 0.2657 +vn 0.0498 0.9562 -0.2883 +vn -0.3587 0.4098 0.8387 +vn -0.6416 -0.2211 0.7345 +vn 0.7539 0.5274 0.3916 +vn 0.3671 0.9068 -0.2071 +vn 0.7561 0.4319 0.4916 +vn 0.5006 -0.0660 0.8632 +vn 0.1795 0.9819 -0.0611 +vn 0.2407 0.4626 0.8533 +vn 0.8117 0.5385 0.2263 +vn -0.0524 0.9733 0.2236 +vn -0.9286 0.3273 -0.1749 +vn -0.8704 0.4728 0.1374 +vn -0.3166 0.8185 -0.4794 +vn -0.6919 -0.2225 0.6869 +vn 0.7184 0.5139 -0.4688 +vn -0.3265 0.6778 0.6588 +vn 0.1994 -0.2967 0.9339 +vn 0.3288 -0.4531 0.8286 +vn 0.7046 0.0059 -0.7096 +vn 0.4431 0.6575 0.6093 +vn 0.9460 0.1253 0.2990 +vn 0.9242 -0.3770 0.0603 +vn -0.6464 -0.7322 0.2147 +vn -0.1702 -0.7368 0.6544 +vn 0.0380 0.4678 0.8830 +vn 0.5696 -0.2725 0.7754 +vn -0.1477 -0.1707 0.9742 +vn 0.5188 0.8151 0.2579 +vn 0.5960 0.5758 -0.5597 +vn 0.8974 0.3269 0.2964 +vn 0.1757 -0.3011 0.9373 +vn -0.7623 -0.4772 0.4371 +vn -0.0549 -0.3972 0.9161 +vn -0.6971 0.5313 0.4813 +vn -0.6784 0.1717 0.7143 +vn -0.2755 0.1478 0.9499 +vn -0.8435 -0.0857 0.5303 +vn -0.5154 0.7624 -0.3912 +vn -0.5218 -0.8126 0.2595 +vn -0.9583 -0.0008 0.2859 +vn -0.3949 0.9146 -0.0866 +vn -0.4714 0.8001 0.3710 +vn -0.4857 -0.5585 0.6725 +vn 0.6231 -0.7811 0.0410 +vn -0.1523 0.7889 0.5953 +vn -0.1842 0.9707 -0.1544 +vn 0.6976 0.6539 0.2928 +vn 0.0243 0.1662 0.9858 +vn 0.9519 -0.0027 0.3063 +vn -0.7142 0.5979 0.3640 +vn 0.9478 0.1898 -0.2561 +vn 0.7434 -0.2418 0.6236 +vn 0.6046 -0.7689 0.2079 +vn -0.3497 -0.9334 -0.0802 +vn -0.8777 -0.4766 0.0507 +vn -0.3408 -0.9400 0.0146 +vn -0.0867 -0.8776 -0.4715 +vn 0.1903 -0.9801 -0.0570 +vn -0.6793 -0.7333 -0.0281 +vn -0.9402 0.3291 0.0874 +vn -0.9637 -0.0191 -0.2661 +vn -0.7999 -0.4982 -0.3347 +vn -0.2878 -0.5253 -0.8008 +vn -0.7782 0.3019 -0.5507 +vn -0.7254 -0.4381 -0.5310 +vn -0.8048 -0.4479 -0.3896 +vn -0.9986 0.0400 -0.0338 +vn -0.3469 -0.8336 -0.4298 +vn -0.6050 0.6941 0.3902 +vn -0.5910 0.8030 0.0768 +vn 0.1900 0.9412 0.2793 +vn 0.3257 0.7320 0.5984 +vn 0.0019 -0.5260 -0.8505 +vn -0.0474 -0.5319 -0.8455 +vn -0.8629 -0.5053 -0.0090 +vn -0.4656 -0.8278 -0.3130 +vn 0.1661 -0.9419 -0.2920 +vn 0.2519 -0.9210 -0.2972 +vn 0.7004 0.3509 0.6215 +vn 0.2457 0.7651 0.5952 +vn 0.4097 0.6580 0.6318 +vn 0.7451 -0.5862 -0.3182 +vn 0.8737 -0.3809 0.3025 +vn -0.3553 -0.8455 -0.3986 +vn -0.2171 -0.9066 -0.3620 +vn 0.2465 -0.9464 -0.2086 +vn 0.2026 -0.9793 -0.0008 +vn 0.6282 -0.7529 -0.1962 +vn 0.8575 -0.1639 0.4877 +vn 0.3416 0.1623 0.9257 +vn 0.8377 -0.3921 0.3801 +vn 0.6395 -0.7655 -0.0706 +vn -0.4675 -0.5816 -0.6657 +vn -0.8957 0.3841 -0.2238 +vn -0.2588 -0.2439 -0.9347 +vn -0.6434 0.6037 0.4707 +vn -0.6317 -0.2598 0.7303 +vn -0.6022 0.5964 0.5307 +vn -0.7133 0.5136 -0.4769 +vn 0.3288 -0.1771 0.9276 +vn 0.1154 0.3473 0.9306 +vn -0.8954 0.4409 -0.0625 +vn -0.8087 0.5333 -0.2481 +vn 0.7942 -0.6000 -0.0963 +vn 0.4287 -0.6325 -0.6452 +vn -0.9195 0.2818 -0.2741 +vn -0.7823 -0.5394 0.3114 +vn -0.7292 0.6773 -0.0974 +vn 0.5808 -0.7782 0.2388 +vn -0.5472 0.7839 0.2932 +vn -0.6955 0.1979 0.6907 +vn -0.9028 -0.2379 0.3582 +vn -0.2458 -0.8584 -0.4503 +vn -0.0563 -0.8664 0.4961 +vn -0.2920 -0.9497 0.1130 +vn 0.0972 -0.2784 0.9555 +vn 0.0799 0.9965 0.0258 +vn -0.0439 0.6814 0.7306 +vn 0.5569 -0.4379 0.7058 +vn 0.1250 -0.9218 0.3669 +vn -0.0316 -0.2700 -0.9624 +vn 0.9130 0.3752 0.1601 +vn 0.8839 0.4178 0.2103 +vn 0.7557 0.5110 0.4096 +vn 0.6717 0.4809 0.5636 +vn 0.8736 -0.4405 0.2067 +vn 0.7192 -0.0995 0.6877 +vn 0.9982 -0.0432 -0.0415 +vn 0.7483 0.4520 0.4856 +vn 0.9153 0.2833 -0.2864 +vn -0.5460 -0.3650 0.7541 +vn -0.8346 -0.2212 0.5046 +vn -0.7873 -0.4790 -0.3883 +vn -0.1092 0.5176 0.8486 +vn 0.6379 0.1014 -0.7634 +vn 0.8454 0.5209 0.1176 +vn -0.4769 -0.0902 0.8743 +vn 0.6547 0.1693 0.7367 +vn -0.9219 -0.3809 -0.0700 +vn 0.0438 -0.9686 0.2448 +vn 0.5349 -0.7787 -0.3279 +vn 0.8852 -0.3769 0.2727 +vn 0.0098 -0.4870 -0.8733 +vn -0.0819 -0.9575 -0.2764 +vn 0.3742 0.4504 -0.8106 +vn 0.6248 -0.1738 -0.7612 +vn 0.0065 0.8290 -0.5593 +vn 0.7463 0.6032 -0.2814 +vn 0.9563 0.2619 0.1298 +vn 0.9892 -0.1442 -0.0252 +vn 0.7190 -0.6851 -0.1173 +vn 0.4137 -0.6215 -0.6653 +vn 0.6985 0.6944 0.1728 +vn 0.3454 0.9296 0.1284 +vn 0.9760 0.0931 0.1969 +vn 0.9330 0.2058 -0.2951 +vn 0.9862 0.0438 0.1597 +vn 0.5972 0.8004 -0.0511 +vn 0.8337 0.4398 -0.3338 +vn 0.3114 0.9497 -0.0342 +vn -0.1163 0.8200 0.5603 +vn 0.8479 -0.0980 -0.5210 +vn 0.6663 0.5862 -0.4609 +vn -0.3718 0.1097 0.9218 +vn -0.5904 0.5537 0.5872 +vn 0.0336 -0.8253 0.5637 +vn -0.4851 -0.6665 0.5660 +vn -0.6531 -0.1773 0.7362 +vn 0.1124 0.9760 0.1865 +vn -0.7683 -0.0913 0.6335 +vn -0.5724 0.5503 0.6079 +vn 0.7427 -0.4735 -0.4735 +vn 0.7983 0.1582 -0.5812 +vn 0.8109 0.3558 -0.4646 +vn 0.5608 0.7836 -0.2674 +vn 0.0374 0.9759 0.2151 +vn -0.7421 -0.5992 0.3005 +vn 0.2282 -0.9643 -0.1343 +vn 0.4510 -0.8654 -0.2184 +vn 0.8085 -0.3610 -0.4647 +vn -0.7094 0.5697 0.4149 +vn -0.1289 -0.9179 -0.3752 +vn 0.5708 0.5846 -0.5765 +vn 0.2416 0.8585 -0.4523 +vn -0.3437 0.9391 -0.0003 +vn 0.4932 -0.1644 -0.8542 +vn 0.5837 0.2992 -0.7548 +vn 0.9075 0.3864 -0.1646 +vn 0.3765 0.4511 -0.8092 +vn -0.7802 0.4470 0.4375 +vn -0.9563 -0.2296 0.1808 +vn -0.3595 0.6456 0.6738 +vn -0.9420 0.0758 0.3268 +vn 0.8938 -0.4353 -0.1076 +vn -0.5653 0.7411 0.3622 +vn -0.0738 0.9617 -0.2641 +vn 0.5999 0.5641 -0.5673 +vn -0.7421 -0.2517 0.6212 +vn -0.1196 0.6885 0.7153 +vn 0.6249 -0.6398 -0.4474 +vn 0.9079 -0.3836 -0.1690 +vn 0.2879 -0.9158 0.2801 +vn 0.8221 -0.2008 0.5328 +vn -0.1850 0.9470 -0.2625 +vn 0.0082 -0.1600 0.9871 +vn 0.5615 0.1621 -0.8114 +vn 0.8031 0.5958 -0.0060 +vn 0.8973 -0.4413 -0.0079 +vn -0.0005 -0.7576 0.6527 +vn 0.4323 -0.9004 0.0499 +vn 0.8007 -0.5867 0.1211 +vn 0.8291 -0.5504 -0.0981 +vn 0.5433 -0.7795 0.3119 +vn -0.5252 -0.8216 -0.2218 +vn 0.7106 -0.1584 -0.6856 +vn -0.0448 -0.5028 -0.8632 +vn -0.4937 -0.8677 -0.0581 +vn 0.2791 0.2409 -0.9295 +vn -0.5605 -0.7557 -0.3389 +vn -0.5968 -0.7589 -0.2605 +vn -0.8302 -0.5567 -0.0290 +vn -0.9455 0.1394 0.2942 +vn -0.2584 -0.9645 0.0549 +vn 0.2287 -0.9382 -0.2598 +vn -0.0444 -0.9975 -0.0556 +vn -0.2276 -0.8619 -0.4531 +vn 0.5794 -0.0431 0.8139 +vn -0.2330 0.3916 0.8901 +vn -0.6023 -0.2900 0.7438 +vn 0.7994 -0.5672 0.1982 +vn 0.9064 0.0316 0.4212 +vn -0.3243 0.0638 0.9438 +vn 0.4538 0.5176 0.7254 +vn 0.9582 0.2187 0.1846 +vn 0.9437 0.2666 0.1956 +vn 0.6237 -0.7662 0.1547 +vn -0.2610 -0.4442 0.8571 +vn 0.1130 -0.7240 0.6805 +vn 0.6563 0.3073 0.6891 +vn 0.8701 -0.3442 -0.3527 +vn -0.2174 -0.5929 -0.7754 +vn 0.6139 -0.4518 -0.6473 +vn -0.4438 -0.8881 0.1199 +vn 0.4246 0.6640 0.6155 +vn 0.6647 0.7354 -0.1321 +vn 0.5781 0.7767 -0.2501 +vn 0.7997 0.5984 0.0498 +vn 0.5253 -0.2628 0.8093 +vn 0.8331 0.3557 0.4235 +vn -0.9538 0.1000 -0.2833 +vn 0.5215 -0.3720 0.7679 +vn -0.4839 -0.8428 0.2355 +vn 0.6253 -0.5364 0.5667 +vn -0.3882 0.7338 0.5576 +vn 0.3748 0.7564 0.5361 +s 1 +f 460//368 368//369 635//370 +f 369//371 368//369 516//372 +f 407//373 408//374 370//375 +f 459//376 370//375 568//377 +f 401//378 460//368 461//379 +f 516//372 368//369 460//368 +f 589//380 516//372 401//378 +f 589//380 369//371 516//372 +f 590//381 395//382 430//383 +f 450//384 430//383 385//385 +f 450//384 519//386 592//387 +f 519//386 596//388 464//389 +f 595//390 385//385 430//383 +f 474//391 591//392 592//387 +f 371//393 593//394 477//395 +f 451//396 557//397 593//394 +f 530//398 451//396 593//394 +f 596//388 410//399 594//400 +f 464//389 596//388 594//400 +f 594//400 451//396 464//389 +f 385//385 595//390 519//386 +f 562//401 548//402 592//387 +f 548//402 562//401 493//403 +f 477//395 593//394 461//379 +f 593//394 557//397 372//404 +f 594//400 410//399 491//405 +f 493//403 371//393 388//406 +f 509//407 410//399 596//388 +f 374//408 373//409 491//405 +f 509//407 596//388 555//410 +f 548//402 373//409 374//408 +f 493//403 373//409 548//402 +f 389//411 598//412 435//413 +f 613//414 374//408 509//407 +f 611//415 374//408 613//414 +f 611//415 548//402 374//408 +f 467//416 372//404 557//397 +f 455//417 388//406 384//418 +f 466//419 508//420 597//421 +f 373//409 597//421 491//405 +f 538//422 466//419 597//421 +f 538//422 597//421 373//409 +f 636//423 589//380 372//404 +f 468//424 636//423 466//419 +f 538//422 468//424 466//419 +f 393//425 408//374 383//426 +f 454//427 435//413 598//412 +f 599//428 375//429 454//427 +f 511//430 599//428 454//427 +f 435//413 375//429 601//431 +f 469//432 375//429 599//428 +f 511//430 499//433 600//434 +f 567//435 435//413 601//431 +f 602//436 442//437 601//431 +f 470//438 601//431 442//437 +f 590//381 450//384 568//377 +f 588//439 568//377 450//384 +f 459//376 588//439 605//440 +f 393//425 395//382 408//374 +f 405//441 393//425 383//426 +f 604//442 405//441 603//443 +f 605//440 604//442 603//443 +f 444//444 606//445 542//446 +f 414//447 607//448 376//449 +f 414//447 591//392 607//448 +f 607//448 591//392 474//391 +f 393//425 606//445 395//382 +f 604//442 376//449 444//444 +f 458//450 444//444 471//451 +f 471//451 444//444 376//449 +f 404//452 479//453 458//450 +f 479//453 609//454 458//450 +f 404//452 458//450 471//451 +f 608//455 607//448 474//391 +f 528//456 392//457 471//451 +f 528//456 471//451 607//448 +f 419//458 392//457 528//456 +f 528//456 608//455 439//459 +f 419//458 528//456 439//459 +f 609//454 598//412 595//390 +f 608//455 548//402 611//415 +f 608//455 474//391 548//402 +f 427//460 608//455 611//415 +f 392//457 610//461 471//451 +f 420//462 610//461 392//457 +f 476//463 419//458 445//464 +f 445//464 419//458 439//459 +f 389//411 567//435 470//438 +f 611//415 613//414 427//460 +f 499//433 479//453 404//452 +f 499//433 612//465 470//438 +f 612//465 499//433 404//452 +f 570//466 615//467 612//465 +f 615//467 613//414 612//465 +f 610//461 570//466 404//452 +f 427//460 613//414 615//467 +f 420//462 476//463 615//467 +f 420//462 570//466 610//461 +f 545//468 614//469 427//460 +f 476//463 545//468 615//467 +f 545//468 445//464 439//459 +f 567//435 601//431 470//438 +f 529//470 616//471 551//472 +f 551//472 500//473 560//474 +f 551//472 617//475 500//473 +f 478//476 576//477 619//478 +f 552//479 513//480 546//481 +f 578//482 477//395 461//379 +f 563//483 477//395 578//482 +f 576//477 563//483 578//482 +f 563//483 576//477 478//476 +f 619//478 576//477 578//482 +f 578//482 624//484 619//478 +f 478//476 621//485 563//483 +f 455//417 563//483 621//485 +f 621//485 478//476 534//486 +f 622//487 536//488 534//486 +f 552//479 623//489 507//490 +f 461//379 618//491 409//492 +f 618//491 529//470 409//492 +f 465//493 624//484 496//494 +f 434//495 455//417 620//496 +f 621//485 620//496 455//417 +f 625//497 620//496 621//485 +f 626//498 465//493 498//499 +f 580//500 465//493 626//498 +f 626//498 433//501 580//500 +f 495//502 529//470 650//503 +f 495//502 653//504 496//494 +f 496//494 409//492 495//502 +f 495//502 409//492 529//470 +f 523//505 422//506 434//495 +f 523//505 584//507 497//508 +f 497//508 465//493 496//494 +f 434//495 625//497 498//499 +f 434//495 584//507 523//505 +f 584//507 434//495 498//499 +f 633//509 412//510 413//511 +f 510//512 412//510 569//513 +f 524//514 452//515 510//512 +f 512//516 524//514 586//517 +f 413//511 513//480 552//479 +f 413//511 452//515 513//480 +f 424//518 482//519 513//480 +f 628//520 436//521 552//479 +f 378//522 424//518 514//523 +f 525//524 424//518 378//522 +f 524//514 424//518 452//515 +f 512//516 628//520 630//525 +f 629//526 525//524 627//527 +f 377//528 627//527 378//522 +f 377//528 378//522 514//523 +f 552//479 507//490 396//529 +f 534//486 482//519 525//524 +f 512//516 630//525 456//530 +f 630//525 403//531 484//532 +f 631//533 525//524 629//526 +f 541//534 631//533 629//526 +f 377//528 514//523 456//530 +f 541//534 629//526 627//527 +f 377//528 554//535 627//527 +f 472//536 554//535 377//528 +f 396//529 507//490 487//537 +f 397//538 527//539 379//540 +f 396//529 487//537 403//531 +f 397//538 622//487 556//541 +f 554//535 456//530 486//542 +f 486//542 456//530 540//543 +f 556//541 631//533 541//534 +f 554//535 486//542 556//541 +f 522//544 507//490 626//498 +f 501//545 632//546 527//539 +f 506//547 488//548 484//532 +f 506//547 484//532 403//531 +f 573//549 488//548 506//547 +f 501//545 397//538 540//543 +f 484//532 501//545 540//543 +f 484//532 488//548 399//550 +f 487//537 632//546 502//551 +f 579//552 502//551 632//546 +f 579//552 632//546 501//545 +f 489//553 399//550 488//548 +f 489//553 662//554 399//550 +f 412//510 633//509 535//555 +f 412//510 535//555 569//513 +f 569//513 535//555 503//556 +f 448//557 633//509 436//521 +f 481//558 448//557 436//521 +f 573//549 518//559 517//560 +f 573//549 487//537 518//559 +f 488//548 573//549 517//560 +f 368//369 490//561 406//562 +f 368//369 473//563 490//561 +f 406//562 490//561 559//564 +f 386//565 380//566 559//564 +f 571//567 560//474 398//568 +f 381//569 369//371 416//570 +f 386//565 559//564 381//569 +f 387//571 380//566 386//565 +f 387//571 386//565 381//569 +f 431//572 463//573 547//574 +f 431//572 547//574 564//575 +f 547//574 589//380 636//423 +f 587//576 564//575 547//574 +f 432//577 587//576 636//423 +f 583//578 431//572 549//579 +f 637//580 462//581 432//577 +f 637//580 654//582 390//583 +f 637//580 390//583 533//584 +f 462//581 440//585 432//577 +f 544//586 638//587 390//583 +f 572//588 494//589 582//590 +f 440//585 581//591 587//576 +f 638//587 440//585 462//581 +f 423//592 440//585 638//587 +f 411//593 390//583 585//594 +f 585//594 391//595 565//596 +f 639//597 638//587 544//586 +f 544//586 390//583 411//593 +f 411//593 585//594 655//598 +f 543//599 582//590 440//585 +f 423//592 543//599 440//585 +f 566//600 543//599 641//601 +f 640//602 543//599 402//603 +f 566//600 402//603 543//599 +f 642//604 453//605 402//603 +f 480//606 639//597 429//607 +f 425//608 480//606 575//609 +f 642//604 402//603 437//610 +f 645//611 483//612 641//601 +f 483//612 558//613 566//600 +f 647//614 646//615 645//611 +f 558//613 438//616 437//610 +f 644//617 437//610 438//616 +f 553//618 644//617 438//616 +f 415//619 644//617 553//618 +f 646//615 426//620 483//612 +f 646//615 647//614 417//621 +f 438//616 558//613 515//622 +f 483//612 426//620 515//622 +f 649//623 426//620 646//615 +f 553//618 438//616 418//624 +f 647//614 553//618 648//625 +f 649//623 417//621 418//624 +f 485//626 560//474 571//567 +f 571//567 380//566 651//627 +f 485//626 571//567 651//627 +f 653//504 650//503 652//628 +f 495//502 650//503 653//504 +f 422//506 637//580 468//424 +f 446//629 523//505 497//508 +f 653//504 652//628 583//578 +f 653//504 446//629 496//494 +f 422//506 654//582 637//580 +f 446//629 572//588 654//582 +f 494//589 572//588 583//578 +f 654//582 572//588 391//595 +f 391//595 572//588 565//596 +f 411//593 655//598 429//607 +f 429//607 655//598 531//630 +f 655//598 585//594 640//602 +f 640//602 585//594 441//631 +f 655//598 640//602 656//632 +f 640//602 402//603 656//632 +f 531//630 656//632 660//633 +f 656//632 402//603 453//605 +f 656//632 453//605 539//634 +f 660//633 656//632 574//635 +f 429//607 531//630 475//636 +f 575//609 475//636 657//637 +f 575//609 657//637 400//638 +f 475//636 505//639 447//640 +f 492//641 657//637 561//642 +f 449//643 537//644 659//645 +f 492//641 659//645 657//637 +f 415//619 661//646 443//647 +f 415//619 643//648 504//649 +f 382//650 661//646 415//619 +f 577//651 661//646 382//650 +f 658//652 561//642 661//646 +f 661//646 561//642 447//640 +f 658//652 577//651 449//643 +f 659//645 658//652 449//643 +f 660//633 532//653 521//654 +f 532//653 660//633 574//635 +f 526//655 443//647 661//646 +f 505//639 521//654 661//646 +f 662//554 663//656 579//552 +f 666//657 539//634 668//658 +f 667//659 666//657 668//658 +f 669//660 428//661 526//655 +f 669//660 665//662 428//661 +f 671//663 665//662 669//660 +f 421//664 668//658 670//665 +f 670//665 668//658 671//663 +f 667//659 668//658 421//664 +f 368//369 369//371 473//563 +f 635//370 368//369 406//562 +f 617//475 635//370 500//473 +f 500//473 635//370 398//568 +f 407//373 383//426 408//374 +f 459//376 407//373 370//375 +f 603//443 407//373 459//376 +f 603//443 405//441 407//373 +f 405//441 383//426 407//373 +f 461//379 460//368 616//471 +f 460//368 401//378 516//372 +f 450//384 590//381 430//383 +f 430//383 395//382 606//445 +f 592//387 591//392 450//384 +f 519//386 450//384 385//385 +f 414//447 450//384 591//392 +f 592//387 519//386 464//389 +f 451//396 592//387 464//389 +f 562//401 592//387 451//396 +f 451//396 594//400 557//397 +f 371//393 530//398 593//394 +f 530//398 562//401 451//396 +f 493//403 530//398 371//393 +f 519//386 595//390 555//410 +f 555//410 596//388 519//386 +f 493//403 562//401 530//398 +f 389//411 555//410 595//390 +f 548//402 474//391 592//387 +f 461//379 593//394 401//378 +f 371//393 384//418 388//406 +f 594//400 491//405 557//397 +f 509//407 491//405 410//399 +f 493//403 538//422 373//409 +f 374//408 491//405 509//407 +f 567//435 389//411 435//413 +f 389//411 595//390 598//412 +f 555//410 389//411 509//407 +f 389//411 613//414 509//407 +f 401//378 372//404 589//380 +f 372//404 401//378 593//394 +f 467//416 557//397 508//420 +f 491//405 508//420 557//397 +f 597//421 508//420 491//405 +f 538//422 493//403 388//406 +f 467//416 636//423 372//404 +f 466//419 636//423 467//416 +f 508//420 466//419 467//416 +f 422//506 468//424 455//417 +f 430//383 444//444 609//454 595//390 +f 479//453 511//430 454//427 +f 454//427 375//429 435//413 +f 479//453 454//427 609//454 +f 600//434 469//432 511//430 +f 511//430 469//432 599//428 +f 511//430 479//453 499//433 +f 375//429 602//436 601//431 +f 469//432 602//436 375//429 +f 602//436 600//434 442//437 +f 469//432 600//434 602//436 +f 600//434 470//438 442//437 +f 600//434 499//433 470//438 +f 370//375 408//374 590//381 +f 590//381 568//377 370//375 +f 459//376 605//440 603//443 +f 588//439 459//376 568//377 +f 395//382 590//381 408//374 +f 414//447 588//439 450//384 +f 405//441 604//442 393//425 +f 604//442 605//440 376//449 +f 605//440 414//447 376//449 +f 605//440 588//439 414//447 +f 444//444 430//383 606//445 +f 607//448 471//451 376//449 +f 393//425 542//446 606//445 +f 604//442 542//446 393//425 +f 604//442 444//444 542//446 +f 458//450 609//454 444//444 +f 494//589 549//579 581//591 582//590 +f 528//456 607//448 608//455 +f 609//454 454//427 598//412 +f 471//451 610//461 404//452 +f 439//459 608//455 427//460 +f 392//457 419//458 420//462 +f 476//463 420//462 419//458 +f 614//469 439//459 427//460 +f 545//468 439//459 614//469 +f 612//465 613//414 389//411 +f 470//438 612//465 389//411 +f 570//466 612//465 404//452 +f 420//462 615//467 570//466 +f 545//468 427//460 615//467 +f 545//468 476//463 445//464 +f 617//475 616//471 635//370 +f 616//471 460//368 635//370 +f 618//491 461//379 616//471 +f 551//472 616//471 617//475 +f 529//470 618//491 616//471 +f 560//474 650//503 551//472 +f 650//503 529//470 551//472 +f 546//481 619//478 580//500 +f 520//666 619//478 546//481 +f 534//486 478//476 520//666 +f 520//666 478//476 619//478 +f 520//666 513//480 482//519 +f 520//666 482//519 534//486 +f 546//481 513//480 520//666 +f 578//482 461//379 409//492 +f 371//393 477//395 563//483 +f 384//418 371//393 563//483 +f 455//417 384//418 563//483 +f 580//500 619//478 465//493 +f 536//488 621//485 534//486 +f 433//501 546//481 580//500 +f 626//498 623//489 433//501 +f 623//489 546//481 433//501 +f 552//479 546//481 623//489 +f 624//484 578//482 409//492 +f 465//493 619//478 624//484 +f 455//417 434//495 422//506 +f 620//496 625//497 434//495 +f 536//488 625//497 621//485 +f 625//497 536//488 498//499 +f 498//499 522//544 626//498 +f 536//488 379//540 498//499 +f 388//406 455//417 468//424 538//422 +f 379//540 536//488 622//487 +f 379//540 522//544 498//499 +f 623//489 626//498 507//490 +f 496//494 624//484 409//492 +f 584//507 498//499 497//508 +f 498//499 465//493 497//508 +f 412//510 452//515 413//511 +f 510//512 452//515 412//510 +f 586//517 510//512 569//513 +f 586//517 524//514 510//512 +f 586//517 394//667 481//558 +f 424//518 525//524 482//519 +f 424//518 513//480 452//515 +f 630//525 628//520 552//479 +f 552//479 436//521 413//511 +f 524//514 514//523 424//518 +f 512//516 456//530 514//523 +f 512//516 514//523 524//514 +f 512//516 481//558 628//520 +f 481//558 512//516 586//517 +f 481//558 436//521 628//520 +f 627//527 525//524 378//522 +f 630//525 396//529 403//531 +f 630//525 552//479 396//529 +f 631//533 534//486 525//524 +f 456//530 630//525 484//532 +f 472//536 377//528 456//530 +f 554//535 541//534 627//527 +f 622//487 397//538 379//540 +f 506//547 403//531 573//549 +f 573//549 403//531 487//537 +f 631//533 622//487 534//486 +f 456//530 484//532 540//543 +f 556//541 622//487 631//533 +f 486//542 540//543 397//538 +f 556//541 486//542 397//538 +f 554//535 472//536 456//530 +f 554//535 556//541 541//534 +f 379//540 632//546 522//544 +f 632//546 487//537 522//544 +f 522//544 487//537 507//490 +f 632//546 379//540 527//539 +f 397//538 501//545 527//539 +f 399//550 579//552 501//545 +f 484//532 399//550 501//545 +f 399//550 662//554 579//552 +f 503//556 535//555 633//509 +f 436//521 633//509 413//511 +f 503//556 633//509 448//557 +f 394//667 503//556 448//557 +f 481//558 394//667 448//557 +f 569//513 394//667 586//517 +f 394//667 569//513 503//556 +f 488//548 517//560 634//668 +f 489//553 488//548 634//668 +f 518//559 487//537 502//551 +f 664//669 489//553 634//668 +f 369//371 490//561 473//563 +f 559//564 490//561 369//371 +f 380//566 406//562 559//564 +f 398//568 635//370 406//562 +f 398//568 560//474 500//473 +f 406//562 571//567 398//568 +f 380//566 571//567 406//562 +f 589//380 416//570 369//371 +f 547//574 381//569 416//570 +f 547//574 416//570 589//380 +f 547//574 387//571 381//569 +f 547//574 463//573 387//571 +f 369//371 381//569 559//564 +f 587//576 547//574 636//423 +f 587//576 549//579 564//575 +f 468//424 432//577 636//423 +f 637//580 432//577 468//424 +f 564//575 549//579 431//572 +f 652//628 431//572 583//578 +f 637//580 533//584 462//581 +f 583//578 549//579 494//589 +f 581//591 549//579 587//576 +f 669//660 526//655 521//654 532//653 +f 432//577 440//585 587//576 +f 390//583 638//587 533//584 +f 533//584 638//587 462//581 +f 585//594 390//583 654//582 +f 565//596 572//588 582//590 +f 581//591 440//585 582//590 +f 639//597 423//592 638//587 +f 411//593 639//597 544//586 +f 441//631 565//596 582//590 +f 543//599 441//631 582//590 +f 585//594 565//596 441//631 +f 423//592 641//601 543//599 +f 639//597 641//601 423//592 +f 543//599 640//602 441//631 +f 429//607 639//597 411//593 +f 645//611 641//601 480//606 +f 480//606 641//601 639//597 +f 425//608 645//611 480//606 +f 425//608 643//648 645//611 +f 641//601 483//612 566//600 +f 437//610 402//603 558//613 +f 558//613 402//603 566//600 +f 644//617 642//604 437//610 +f 644//617 443//647 642//604 +f 643//648 647//614 645//611 +f 415//619 443//647 644//617 +f 415//619 553//618 643//648 +f 646//615 483//612 645//611 +f 647//614 643//648 553//618 +f 648//625 417//621 647//614 +f 483//612 515//622 558//613 +f 648//625 553//618 418//624 +f 417//621 648//625 418//624 +f 515//622 649//623 418//624 +f 649//623 515//622 426//620 +f 418//624 438//616 515//622 +f 417//621 649//623 646//615 +f 485//626 650//503 560//474 +f 651//627 650//503 485//626 +f 652//628 463//573 431//572 +f 652//628 651//627 463//573 +f 652//628 650//503 651//627 +f 387//571 651//627 380//566 +f 651//627 387//571 463//573 +f 446//629 497//508 496//494 +f 523//505 446//629 422//506 +f 583//578 572//588 653//504 +f 446//629 654//582 422//506 +f 654//582 391//595 585//594 +f 531//630 655//598 656//632 +f 666//657 656//632 539//634 +f 642//604 428//661 453//605 +f 574//635 656//632 666//657 +f 663//656 502//551 579//552 +f 429//607 575//609 480//606 +f 575//609 429//607 475//636 +f 657//637 475//636 561//642 +f 457//670 575//609 400//638 +f 659//645 400//638 657//637 +f 537//644 400//638 659//645 +f 505//639 475//636 531//630 +f 457//670 425//608 575//609 +f 425//608 457//670 504//649 +f 400//638 537//644 457//670 +f 642//604 443//647 526//655 +f 505//639 531//630 660//633 +f 521//654 505//639 660//633 +f 661//646 447//640 505//639 +f 504//649 382//650 415//619 +f 504//649 643//648 425//608 +f 504//649 577//651 382//650 +f 457//670 550//671 504//649 +f 577//651 658//652 661//646 +f 447//640 561//642 475//636 +f 658//652 492//641 561//642 +f 550//671 577//651 504//649 +f 550//671 449//643 577//651 +f 537//644 449//643 550//671 +f 457//670 537//644 550//671 +f 659//645 492//641 658//652 +f 526//655 428//661 642//604 +f 532//653 574//635 667//659 +f 526//655 661//646 521//654 +f 663//656 518//559 502//551 +f 662//554 664//669 663//656 +f 664//669 517//560 663//656 +f 664//669 634//668 517//560 +f 517//560 518//559 663//656 +f 664//669 662//554 489//553 +f 539//634 453//605 428//661 +f 428//661 665//662 539//634 +f 667//659 574//635 666//657 +f 665//662 671//663 539//634 +f 671//663 668//658 539//634 +f 532//653 670//665 669//660 +f 667//659 421//664 532//653 +f 421//664 670//665 532//653 +f 670//665 671//663 669//660 +f 653//504 572//588 446//629 diff --git a/assets/voxygen/lod/haniwa.obj b/assets/voxygen/lod/haniwa.obj new file mode 100644 index 0000000..70816ce --- /dev/null +++ b/assets/voxygen/lod/haniwa.obj @@ -0,0 +1,1374 @@ +# Blender 4.0.2 +# www.blender.org +o 72_87_22 +v -59.789398 -2.340451 12.738546 +v -81.526321 20.440548 3.423482 +v -66.159561 51.678944 3.423483 +v -43.422466 27.695168 15.198163 +v -43.052269 71.845642 3.423483 +v -25.356474 53.743896 12.911217 +v -22.474270 80.538452 3.423483 +v -19.717052 8.376798 20.498457 +v -0.082463 83.878204 3.423483 +v 25.617733 80.126945 3.423483 +v 44.663960 70.573395 3.423483 +v 9.522777 39.314644 17.688242 +v 58.131039 60.723972 3.423483 +v 68.454666 48.096401 3.423482 +v 78.873718 28.226023 3.423483 +v 49.543495 21.721830 14.400873 +v 83.411819 6.153438 3.423482 +v 24.220684 -11.330012 19.936243 +v 10.745570 13.868341 20.763048 +v 82.440308 -14.327451 3.423483 +v -6.892347 -18.855757 20.863672 +v 76.336685 -33.834332 3.423483 +v 46.097481 -15.125558 16.243425 +v 67.292572 -50.347111 3.423482 +v 54.525604 -63.213654 3.423482 +v 37.606770 -74.712692 3.423482 +v 21.356703 -52.718731 13.688941 +v 18.301121 -81.500977 3.423483 +v -4.133377 -83.682495 3.423483 +v -8.065457 -63.023838 11.669821 +v -32.124092 -77.436104 3.423482 +v -52.017147 -65.681229 3.423483 +v -66.028931 -51.467888 3.423482 +v -39.489788 -32.098270 15.506025 +v -76.362946 -33.834244 3.423483 +v -82.851593 -12.300315 3.423483 +v -81.526321 20.440548 -12.710672 +v -66.159561 51.678944 -12.710672 +v -43.052273 71.845642 -12.710672 +v -22.474272 80.538452 -12.710672 +v -0.082464 83.878204 -12.710673 +v 25.617731 80.126945 -12.710672 +v 44.663956 70.573395 -12.710673 +v 58.131035 60.723972 -12.710672 +v 68.454666 48.096401 -12.710672 +v 78.873718 28.226023 -12.710672 +v 83.411819 6.153439 -12.710673 +v 82.440308 -14.327451 -12.710672 +v 76.336685 -33.834332 -12.710673 +v 67.292572 -50.347111 -12.710673 +v 54.525600 -63.213654 -12.710672 +v 37.606766 -74.712692 -12.710672 +v 18.301119 -81.500977 -12.710672 +v -4.133378 -83.682495 -12.710671 +v -32.124092 -77.436104 -12.710672 +v -52.017151 -65.681229 -12.710672 +v -66.028931 -51.467888 -12.710673 +v -76.362946 -33.834244 -12.710673 +v -82.851593 -12.300315 -12.710672 +v 18.240320 -48.187397 28.145809 +v -18.240328 -48.187397 28.145809 +v -5.403037 97.427963 12.951374 +v 14.553085 -25.823618 24.906900 +v 9.677477 -3.693362 21.667990 +v 7.910874 26.303869 17.277704 +v -11.767353 55.864056 12.951374 +v -7.910856 26.303873 17.277704 +v -9.677470 -3.693354 21.667990 +v 14.721300 90.836990 12.951375 +v 5.403102 97.427963 12.951374 +v -14.553083 -25.823610 24.906900 +v 11.767391 55.864048 12.951374 +v 16.227760 71.661110 12.951374 +v 18.240999 82.192299 12.951373 +v -14.721239 90.837006 12.951375 +v -18.240942 82.192314 12.951373 +v -16.227711 71.661125 12.951374 +vn -0.1010 0.0497 0.9936 +vn -0.2066 0.1359 0.9689 +vn -0.2839 -0.0132 0.9588 +vn -0.3366 0.0882 0.9375 +vn -0.2601 0.2228 0.9395 +vn 0.0484 0.2082 0.9769 +vn 0.0567 0.0688 0.9960 +vn -0.1072 0.2527 0.9616 +vn -0.0063 0.3049 0.9524 +vn -0.0983 0.3415 0.9347 +vn 0.1096 -0.2438 0.9636 +vn 0.1596 -0.3183 0.9345 +vn 0.2105 -0.2570 0.9432 +vn 0.2333 0.1141 0.9657 +vn 0.3287 0.0233 0.9442 +vn 0.3252 0.1170 0.9384 +vn 0.2315 -0.0789 0.9696 +vn 0.1099 -0.0557 0.9924 +vn 0.2481 -0.1994 0.9480 +vn 0.1570 0.2585 0.9532 +vn 0.2029 0.2266 0.9526 +vn 0.3156 -0.1337 0.9394 +vn 0.3332 -0.0603 0.9409 +vn -0.0473 -0.2924 0.9551 +vn 0.0702 -0.3503 0.9340 +vn -0.0253 -0.3748 0.9268 +vn -0.1233 -0.3295 0.9361 +vn -0.0331 -0.1001 0.9944 +vn -0.1888 -0.1570 0.9694 +vn -0.3129 -0.1316 0.9406 +vn -0.2743 -0.2096 0.9385 +vn -0.3582 -0.0426 0.9327 +vn -0.1884 0.3051 0.9335 +vn 0.0602 0.2921 0.9545 +vn 0.2852 0.1868 0.9401 +vn -0.1895 -0.2665 0.9450 +vn -0.9692 0.2462 -0.0000 +vn -0.7929 0.6093 -0.0000 +vn 0.5212 0.8535 -0.0000 +vn 0.6878 0.7259 -0.0000 +vn 0.9970 0.0776 -0.0000 +vn 0.9847 -0.1744 -0.0000 +vn 0.2158 -0.9764 -0.0000 +vn -0.0613 -0.9981 -0.0000 +vn 0.9202 -0.3914 -0.0000 +vn -0.2705 0.9627 -0.0000 +vn -0.0016 1.0000 -0.0000 +vn -0.5300 0.8480 -0.0000 +vn -0.9921 -0.1258 -0.0000 +vn -0.7936 -0.6085 -0.0000 +vn -0.9166 -0.3999 -0.0000 +vn 0.3002 0.9539 -0.0000 +vn -0.6156 -0.7881 -0.0000 +vn 0.8013 -0.5982 -0.0000 +vn 0.6389 -0.7693 -0.0000 +vn 0.4507 -0.8927 -0.0000 +vn -0.3678 -0.9299 -0.0000 +vn 0.8342 0.5515 -0.0000 +vn 0.9418 0.3362 -0.0000 +vn -0.0000 0.1048 0.9945 +vn 0.0005 0.1048 0.9945 +vn -0.0062 0.1065 0.9943 +vn -0.0021 0.1049 0.9945 +vn 0.0021 0.1049 0.9945 +vn 0.0059 0.1065 0.9943 +vn 0.0047 0.1051 0.9945 +vn -0.0047 0.1051 0.9945 +vn -0.0014 0.1036 0.9946 +vn 0.0015 0.1037 0.9946 +vn -0.0005 0.1048 0.9945 +vn -0.0031 0.0987 0.9951 +vn 0.0031 0.0988 0.9951 +s 1 +f 8//1 4//2 1//3 +f 2//4 4//2 3//5 +f 4//2 8//1 12//6 +f 19//7 12//6 8//1 +f 6//8 9//9 7//10 +f 27//11 26//12 25//13 +f 12//6 19//7 16//14 +f 16//14 17//15 15//16 +f 16//14 23//17 17//15 +f 16//14 18//18 23//17 +f 27//11 25//13 24//19 +f 23//17 27//11 24//19 +f 11//20 12//6 13//21 +f 22//22 20//23 23//17 +f 27//11 30//24 28//25 +f 29//26 30//24 31//27 +f 21//28 34//29 30//24 +f 34//29 35//30 33//31 +f 34//29 1//3 35//30 +f 34//29 8//1 1//3 +f 36//32 1//3 2//4 +f 1//3 4//2 2//4 +f 3//5 4//2 6//8 +f 5//33 3//5 6//8 +f 6//8 4//2 12//6 +f 6//8 7//10 5//33 +f 8//1 21//28 19//7 +f 6//8 10//34 9//9 +f 10//34 6//8 12//6 +f 11//20 10//34 12//6 +f 13//21 12//6 16//14 +f 14//35 13//21 16//14 +f 14//35 16//14 15//16 +f 19//7 18//18 16//14 +f 17//15 23//17 20//23 +f 19//7 21//28 18//18 +f 23//17 18//18 27//11 +f 18//18 21//28 27//11 +f 26//12 27//11 28//25 +f 27//11 21//28 30//24 +f 29//26 28//25 30//24 +f 30//24 32//36 31//27 +f 32//36 30//24 34//29 +f 32//36 34//29 33//31 +f 21//28 8//1 34//29 +f 35//30 1//3 36//32 +f 22//22 23//17 24//19 +f 2//37 3//38 38//38 37//37 +f 11//39 13//40 44//40 43//39 +f 17//41 20//42 48//42 47//41 +f 28//43 29//44 54//44 53//43 +f 20//42 22//45 49//45 48//42 +f 7//46 9//47 41//47 40//46 +f 3//38 5//48 39//48 38//38 +f 36//49 2//37 37//37 59//49 +f 33//50 35//51 58//51 57//50 +f 10//52 11//39 43//39 42//52 +f 32//53 33//50 57//50 56//53 +f 24//54 25//55 51//55 50//54 +f 25//55 26//56 52//56 51//55 +f 29//44 31//57 55//57 54//44 +f 13//40 14//58 45//58 44//40 +f 14//58 15//59 46//59 45//58 +f 35//51 36//49 59//49 58//51 +f 5//48 7//46 40//46 39//48 +f 9//47 10//52 42//52 41//47 +f 15//59 17//41 47//41 46//59 +f 26//56 28//43 53//43 52//56 +f 22//45 24//54 50//54 49//45 +f 31//57 32//53 56//53 55//57 +f 69//60 70//60 73//61 +f 71//62 61//63 60//64 +f 60//64 63//65 71//62 +f 63//65 64//66 68//67 +f 63//65 68//67 71//62 +f 64//66 65//68 67//69 +f 67//69 68//67 64//66 +f 76//60 77//70 75//60 +f 77//70 66//71 73//61 +f 66//71 67//69 65//68 +f 72//72 73//61 66//71 +f 73//61 74//60 69//60 +f 66//71 65//68 72//72 +f 77//70 73//61 70//60 +f 75//60 77//70 62//60 +f 70//60 62//60 77//70 +o 52_26_0 +v 7.472719 87.981880 12.241254 +v -7.845233 82.392815 65.857346 +v 7.691223 72.817986 12.241255 +v 2.102161 88.135948 65.857346 +v -7.691169 87.763367 12.241254 +v -2.102105 72.445427 65.857338 +v -7.472665 72.599480 12.241255 +v 7.845287 78.188553 65.857346 +v 2.975771 85.323135 18.332285 +v 0.370245 85.202881 30.213549 +v -1.845311 84.858124 42.094818 +v -4.372112 84.172058 53.976082 +v 3.881403 84.662827 53.976082 +v 4.567471 82.136017 42.094818 +v 4.912231 79.920464 30.213549 +v 5.032484 77.314934 18.332285 +v 4.372168 76.409309 53.976082 +v 1.845366 75.723236 42.094814 +v -0.370191 75.378479 30.213545 +v -2.975718 75.258217 18.332285 +v -3.881348 75.918541 53.976082 +v -4.567415 78.445343 42.094818 +v -4.912177 80.660896 30.213549 +v -5.032431 83.266418 18.332285 +v -5.955678 83.241440 61.427509 +v 2.950787 86.246384 61.427509 +v 5.955732 77.339928 61.427509 +v -2.950732 74.334976 61.427505 +v 0.000027 80.290680 68.879158 +vn -0.3047 0.9401 -0.1525 +vn -0.4096 0.8827 -0.2303 +vn -0.3090 0.9381 -0.1566 +vn 0.9401 0.3047 -0.1525 +vn 0.8827 0.4096 -0.2303 +vn 0.9381 0.3090 -0.1566 +vn 0.3047 -0.9401 -0.1525 +vn 0.4096 -0.8827 -0.2303 +vn 0.3090 -0.9381 -0.1566 +vn -0.9401 -0.3047 -0.1525 +vn -0.8827 -0.4096 -0.2303 +vn -0.9381 -0.3090 -0.1566 +vn -0.0849 0.8647 0.4951 +vn -0.2642 0.9159 0.3021 +vn -0.2724 0.9170 0.2916 +vn -0.6419 0.7662 0.0293 +vn -0.6472 0.7618 0.0287 +vn -0.9226 0.3847 -0.0287 +vn -0.9252 0.3782 -0.0293 +vn -0.9975 -0.0212 -0.0678 +vn -0.9974 -0.0262 -0.0673 +vn -0.8647 -0.0849 0.4951 +vn -0.9159 -0.2642 0.3021 +vn -0.9170 -0.2723 0.2916 +vn -0.7662 -0.6419 0.0293 +vn -0.7618 -0.6472 0.0287 +vn -0.3847 -0.9226 -0.0287 +vn -0.3782 -0.9253 -0.0293 +vn 0.0212 -0.9975 -0.0678 +vn 0.0262 -0.9974 -0.0673 +vn 0.0849 -0.8647 0.4951 +vn 0.2642 -0.9159 0.3021 +vn 0.2723 -0.9170 0.2916 +vn 0.6419 -0.7662 0.0293 +vn 0.6472 -0.7618 0.0287 +vn 0.9226 -0.3847 -0.0287 +vn 0.9252 -0.3782 -0.0293 +vn 0.9975 0.0212 -0.0678 +vn 0.9974 0.0262 -0.0673 +vn 0.8647 0.0849 0.4951 +vn 0.9159 0.2642 0.3021 +vn 0.9170 0.2723 0.2916 +vn 0.7662 0.6419 0.0293 +vn 0.7618 0.6472 0.0287 +vn 0.3847 0.9226 -0.0287 +vn 0.3781 0.9253 -0.0293 +vn -0.0212 0.9975 -0.0678 +vn -0.0262 0.9974 -0.0673 +vn -0.4033 -0.2328 0.8850 +vn 0.2328 -0.4033 0.8850 +vn 0.4033 0.2328 0.8850 +vn -0.2328 0.4033 0.8850 +s 1 +f 102//73 79//74 81//74 103//75 +f 103//76 81//77 85//77 104//78 +f 104//79 85//80 83//80 105//81 +f 105//82 83//83 79//83 102//84 +f 82//85 101//86 86//87 78//85 +f 101//86 100//88 87//89 86//87 +f 100//88 99//90 88//91 87//89 +f 99//90 98//92 89//93 88//91 +f 84//94 97//95 101//96 82//94 +f 97//95 96//97 100//98 101//96 +f 96//97 95//99 99//100 100//98 +f 95//99 94//101 98//102 99//100 +f 80//103 93//104 97//105 84//103 +f 93//104 92//106 96//107 97//105 +f 92//106 91//108 95//109 96//107 +f 91//108 90//110 94//111 95//109 +f 78//112 86//113 93//114 80//112 +f 86//113 87//115 92//116 93//114 +f 87//115 88//117 91//118 92//116 +f 88//117 89//119 90//120 91//118 +f 98//92 105//82 102//84 89//93 +f 94//101 104//79 105//81 98//102 +f 90//110 103//76 104//78 94//111 +f 89//119 102//73 103//75 90//120 +f 79//121 83//121 106//121 +f 83//122 85//122 106//122 +f 85//123 81//123 106//123 +f 81//124 79//124 106//124 +o 96_123_131 +v 18.240320 -48.187397 28.145809 +v -18.240328 -48.187397 28.145809 +v -5.403037 97.427963 12.951374 +v 14.553085 -25.823618 24.906900 +v 9.677477 -3.693362 21.667990 +v 7.910874 26.303869 17.277704 +v -11.766385 55.864056 12.951374 +v -7.910856 26.303873 17.277704 +v -9.677470 -3.693354 21.667990 +v 14.721300 90.836990 12.951375 +v 5.403102 97.427963 12.951374 +v -14.553083 -25.823610 24.906900 +v 11.766423 55.864048 12.951374 +v 16.227760 71.661110 12.951374 +v 18.240999 82.192299 12.951373 +v -14.721239 90.837006 12.951375 +v -18.240942 82.192314 12.951373 +v -16.227711 71.661125 12.951374 +v -18.232185 -48.187401 13.971695 +v 18.232178 -48.187401 13.971695 +v 14.721298 90.836990 -13.787018 +v 5.403099 97.427963 -13.787018 +v -5.403038 97.427963 -13.787018 +v -14.521755 -26.191097 15.938116 +v 14.521758 -26.191105 15.938116 +v 9.677477 -3.961283 16.457006 +v 7.910873 26.170891 16.186934 +v 11.859684 55.864048 9.353474 +v 16.227758 71.661110 -13.787018 +v 18.240995 82.192299 -13.787018 +v -14.721241 90.837006 -13.787018 +v -18.240944 82.192314 -13.787018 +v -16.227713 71.661125 -13.787018 +v -11.859646 55.864056 9.353474 +v -7.910856 26.170895 16.186934 +v -9.677470 -3.961276 16.457006 +v 13.669559 -45.755077 12.782163 +v 12.560048 -45.755077 18.205482 +v 7.487379 -45.755074 22.346306 +v -0.000001 -45.755074 23.889950 +v -7.487379 -45.755066 22.346306 +v -12.560050 -45.755070 18.205492 +v -13.669559 -45.755070 12.782163 +v 13.749916 -87.156898 -11.278835 +v 13.749926 -45.755066 -11.278834 +v -13.749939 -87.156883 -11.278835 +v -13.749930 -45.755058 -11.278834 +v 5.249920 -93.000000 11.918239 +v 4.923147 -93.000000 13.509164 +v 3.775560 -93.000000 14.436235 +v -0.000014 -93.000000 15.212263 +v -3.775578 -93.000008 14.436242 +v -4.923163 -92.999992 13.509170 +v -5.249938 -93.000000 11.918232 +v 13.749920 -87.156898 12.782163 +v 5.249918 -93.000008 -11.278836 +v 12.635980 -87.156898 18.205482 +v -7.510226 -87.156898 22.346317 +v -12.636000 -87.156883 18.205482 +v -5.249940 -93.000000 -11.278836 +v 7.510207 -87.156898 22.346308 +v -13.749938 -87.156883 12.782154 +v -0.000009 -87.156898 23.889950 +v 42.421783 -66.718910 2.845694 +v 43.383099 -65.174461 17.679695 +v 38.385509 -60.954514 2.845695 +v 41.067253 -63.511791 17.778093 +v 48.186153 -62.682644 2.845695 +v 47.585613 -63.837803 17.145576 +v 44.149887 -56.918262 2.845695 +v 43.292751 -58.201138 17.348129 +v 53.362915 -58.338833 2.845695 +v 52.818768 -56.066601 16.806364 +v 48.386986 -53.362900 2.845695 +v 49.803802 -54.346489 18.581013 +v 58.338825 -53.362911 2.845695 +v 56.099617 -53.614712 16.315428 +v 53.362900 -48.386997 2.845695 +v 53.661724 -50.664249 17.528824 +v 62.682644 -48.186157 2.845695 +v 63.190464 -46.980442 18.553007 +v 56.918251 -44.149887 2.845695 +v 59.359982 -43.900372 17.362396 +v 66.718895 -42.421780 2.845695 +v 65.792702 -44.916691 17.272079 +v 60.954510 -38.385513 2.845695 +v 61.965687 -40.734718 17.295664 +v 70.097794 -36.569378 2.845696 +v 70.004318 -34.993797 17.473560 +v 63.720074 -33.595398 2.845696 +v 66.371582 -33.424873 17.527090 +v 73.071747 -30.191685 2.845696 +v 71.545982 -30.438362 17.102276 +v 66.694054 -27.217716 2.845696 +v 68.086060 -30.273380 16.299555 +v 75.383057 -23.841450 2.845696 +v 75.134911 -23.488537 16.715281 +v 68.585800 -22.020138 2.845696 +v 71.623497 -21.552422 17.754032 +v 77.204353 -17.044228 2.845696 +v 75.299431 -17.825462 17.885632 +v 70.407120 -15.222918 2.845696 +v 71.212158 -17.971094 17.695219 +v 78.377838 -10.389121 2.845697 +v 78.362381 -8.272038 17.754074 +v 71.367584 -9.775804 2.845697 +v 72.243736 -8.137317 16.142250 +v 78.991142 -3.378895 2.845697 +v 77.985039 -4.474116 18.096542 +v 71.980911 -2.765582 2.845697 +v 74.354134 -4.449322 16.873844 +v 78.991158 3.378880 2.845697 +v 79.454010 3.236121 17.808142 +v 71.980904 2.765565 2.845697 +v 73.792412 4.175303 17.754223 +v 78.377831 10.389106 2.845698 +v 77.837044 8.943451 17.625164 +v 71.367592 9.775786 2.845698 +v 72.397491 8.042624 18.467819 +v 77.204369 17.044220 2.845698 +v 75.968506 18.086781 18.031776 +v 70.407120 15.222902 2.845698 +v 72.770676 16.689558 17.291269 +v 75.383049 23.841442 2.845698 +v 75.040443 22.278118 17.539801 +v 68.585815 22.020124 2.845698 +v 70.179428 20.306917 17.333746 +v 73.071754 30.191679 2.845698 +v 72.556450 31.386555 16.221575 +v 66.694046 27.217701 2.845698 +v 68.983765 30.304487 18.139240 +v 70.097786 36.569366 2.845699 +v 69.910286 34.723953 16.992498 +v 63.720089 33.595390 2.845699 +v 66.371872 33.818565 17.843885 +v 66.718895 42.421772 2.845699 +v 65.455376 42.941780 17.299801 +v 60.954502 38.385502 2.845699 +v 60.825096 40.505787 17.105967 +v 62.682632 48.186146 2.845699 +v 62.795937 45.943047 17.012775 +v 56.918251 44.149879 2.845699 +v 59.376278 44.191753 17.509411 +v 58.338825 53.362904 2.845700 +v 57.971233 54.982143 18.494505 +v 53.362892 48.386974 2.845699 +v 53.847633 50.778614 17.508938 +v 53.362900 58.338814 2.845700 +v 54.445259 56.094868 16.114853 +v 48.386986 53.362892 2.845700 +v 52.066730 54.742954 17.756588 +v 48.186150 62.682629 2.845700 +v 47.855213 62.102852 18.327820 +v 44.149879 56.918236 2.845700 +v 44.827366 59.223907 18.296749 +v 42.421772 66.718880 2.845700 +v 42.156746 65.903114 17.449772 +v 38.383732 60.954498 2.845700 +v 39.931252 61.400826 18.497990 +v 36.569370 70.097778 2.845700 +v 35.030994 70.050720 17.953381 +v 33.590748 63.720066 2.845700 +v 34.476780 66.040375 18.069672 +v 30.191679 73.071732 2.845701 +v 31.825880 70.817734 17.910759 +v 27.215792 66.694038 2.845700 +v 29.099014 68.364655 18.791069 +v 23.841444 75.383041 2.845701 +v 23.090927 74.161598 16.418793 +v 22.020130 68.585785 2.845700 +v 22.399324 70.773216 17.315956 +v 17.044222 77.204338 2.845701 +v 18.223927 77.889832 17.383947 +v 15.222912 70.407104 2.845700 +v 16.973869 70.796661 18.668602 +v -17.044226 77.204346 2.845701 +v -16.859314 75.541252 17.900238 +v -15.222906 70.407104 2.845700 +v -17.925716 72.693138 17.320522 +v -23.841442 75.383026 2.845701 +v -22.233418 75.401566 17.357265 +v -22.020128 68.585793 2.845700 +v -20.588558 71.912369 17.195911 +v -30.191677 73.071732 2.845701 +v -30.840290 72.510391 18.066694 +v -27.215782 66.694023 2.845700 +v -28.425953 69.075478 17.441988 +v -36.569363 70.097763 2.845700 +v -34.246380 70.795677 16.856430 +v -33.590748 63.720066 2.845700 +v -33.130512 65.089546 16.126459 +v -42.421768 66.718880 2.845700 +v -42.473080 65.699829 17.595308 +v -38.383717 60.954483 2.845700 +v -40.480324 61.126900 17.697905 +v -48.186138 62.682613 2.845700 +v -47.255203 62.681126 18.055433 +v -44.149872 56.918236 2.845700 +v -44.302727 60.830700 17.476357 +v -53.362900 58.338810 2.845700 +v -54.825241 56.912148 17.488161 +v -48.386971 53.362873 2.845700 +v -51.403172 54.538509 18.932474 +v -58.338802 53.362885 2.845700 +v -57.682961 53.152386 17.737148 +v -53.362881 48.386971 2.845699 +v -53.661598 51.587749 17.873446 +v -62.682621 48.186134 2.845699 +v -62.567940 45.272095 16.915956 +v -56.918228 44.149864 2.845699 +v -59.279812 44.147419 17.652100 +v -66.718864 42.421757 2.845699 +v -63.626972 43.906986 17.967655 +v -60.954487 38.385498 2.845699 +v -61.640182 40.781704 17.568010 +v -70.097763 36.569359 2.845699 +v -70.751648 34.407883 16.916311 +v -63.720058 33.595383 2.845699 +v -67.802635 32.376850 17.776976 +v -73.071724 30.191668 2.845698 +v -71.788788 31.740971 16.804588 +v -66.694023 27.217701 2.845698 +v -66.659660 27.829666 17.737499 +v -75.383026 23.841436 2.845698 +v -74.827820 21.866173 17.773022 +v -68.585777 22.020121 2.845698 +v -70.180664 21.839674 17.690838 +v -77.204330 17.044214 2.845698 +v -76.397255 18.026573 17.634985 +v -70.407089 15.222908 2.845698 +v -71.586433 18.775635 17.265593 +v -78.377808 10.389106 2.845698 +v -77.718056 9.285614 17.645559 +v -71.367554 9.775790 2.845698 +v -73.959282 8.601689 17.216021 +v -78.991112 3.378884 2.845697 +v -78.112495 5.219227 17.451147 +v -71.980881 2.765570 2.845697 +v -73.893394 3.749490 17.687757 +v -78.991119 -3.378891 2.845697 +v -78.076286 -6.055704 17.300856 +v -71.980865 -2.765574 2.845697 +v -74.379944 -4.912990 17.308130 +v -78.377792 -10.389112 2.845697 +v -78.145279 -9.487206 18.361311 +v -71.367561 -9.775790 2.845697 +v -73.347389 -8.256898 15.684186 +v -77.204330 -17.044226 2.845696 +v -76.643326 -19.164417 18.193596 +v -70.407089 -15.222906 2.845696 +v -70.969162 -17.886950 18.296316 +v -75.383011 -23.841442 2.845696 +v -75.391869 -22.566113 17.627947 +v -68.585777 -22.020126 2.845696 +v -69.830765 -20.700943 17.173372 +v -73.071724 -30.191679 2.845696 +v -72.323830 -31.087910 17.368652 +v -66.694016 -27.217699 2.845696 +v -67.895515 -28.416115 17.085642 +v -70.097748 -36.569363 2.845696 +v -70.412010 -35.725922 18.562801 +v -63.720058 -33.595387 2.845696 +v -66.207863 -33.236820 17.567249 +v -66.718864 -42.421764 2.845695 +v -65.459412 -43.121552 17.160706 +v -60.954472 -38.385494 2.845695 +v -62.482353 -41.222103 16.760817 +v -62.682598 -48.186131 2.845695 +v -61.746033 -46.965103 17.011665 +v -56.918224 -44.149868 2.845695 +v -58.039986 -43.574623 17.925606 +v -58.338795 -53.362892 2.845695 +v -57.081402 -53.803406 17.643311 +v -53.362869 -48.386963 2.845695 +v -54.409992 -51.508942 16.409063 +v -53.362869 -58.338795 2.845695 +v -53.677341 -57.568275 17.837639 +v -48.386963 -53.362877 2.845695 +v -50.565182 -55.058140 16.856159 +v -48.186123 -62.682613 2.845695 +v -46.438038 -62.769371 17.389235 +v -44.149853 -56.918221 2.845695 +v -44.439388 -59.609543 17.249685 +v -42.421745 -66.718864 2.845694 +v -44.240189 -65.840019 17.628595 +v -38.385490 -60.954479 2.845695 +v -40.587532 -61.922127 17.294315 +v -36.569347 -70.097763 2.845694 +v -35.142204 -69.753906 17.549263 +v -33.595375 -63.720043 2.845694 +v -33.450802 -66.634727 17.114668 +v -30.191658 -73.071716 2.845694 +v -31.124807 -71.870590 17.436192 +v -27.217695 -66.694016 2.845694 +v -29.427046 -67.896996 17.562654 +v -23.841431 -75.383011 2.845694 +v -21.480448 -75.032501 19.070404 +v -22.020115 -68.585762 2.845694 +v -20.880718 -70.930428 18.124090 +v -17.044209 -77.204308 2.845694 +v -17.976196 -76.121208 18.192986 +v -15.222900 -70.407074 2.845694 +v -17.536810 -71.834259 17.981268 +v 17.044222 -77.204315 2.845694 +v 18.440737 -75.755470 17.585777 +v 15.222902 -70.407074 2.845694 +v 17.250906 -71.795692 17.060883 +v 23.841438 -75.382996 2.845694 +v 22.205862 -75.023895 17.384438 +v 22.020123 -68.585770 2.845694 +v 19.870539 -71.428719 17.443624 +v 30.191671 -73.071716 2.845694 +v 30.987932 -71.321068 16.676809 +v 27.217693 -66.694008 2.845694 +v 29.807354 -67.678207 17.310055 +v 36.569355 -70.097740 2.845694 +v 35.142929 -69.931801 17.390932 +v 33.595379 -63.720043 2.845694 +v 33.328125 -66.378105 17.741259 +vn 0.9825 0.1861 -0.0077 +vn 0.9823 0.1870 -0.0078 +vn 0.9902 0.1391 -0.0079 +vn 0.9900 0.1409 -0.0080 +vn -0.9737 -0.2276 0.0015 +vn -0.9776 -0.2103 0.0008 +vn -0.9747 -0.2231 0.0103 +vn -0.9811 -0.1928 0.0136 +vn 0.9864 0.1644 -0.0043 +vn -0.7833 0.6217 -0.0000 +vn -0.9951 0.0987 -0.0000 +vn -0.9825 0.1861 -0.0077 +vn -0.9823 0.1869 -0.0078 +vn -0.9864 0.1644 -0.0043 +vn -0.3030 0.9530 -0.0000 +vn 0.3030 0.9530 -0.0000 +vn 0.9951 0.0987 -0.0000 +vn 0.7833 0.6217 -0.0000 +vn -0.9994 -0.0345 0.0098 +vn -0.9995 -0.0315 0.0096 +vn 0.9994 -0.0342 0.0098 +vn 0.9995 -0.0314 0.0096 +vn -0.9902 0.1391 -0.0079 +vn -0.9900 0.1409 -0.0080 +vn 0.9748 -0.2230 0.0103 +vn 0.9812 -0.1927 0.0136 +vn 0.9776 -0.2103 0.0008 +vn 0.9737 -0.2276 0.0015 +vn -0.0000 -1.0000 -0.0000 +vn 0.9948 0.0014 0.1021 +vn 0.9948 0.0014 0.1018 +vn 0.8382 0.0014 0.5453 +vn 0.8384 0.0014 0.5450 +vn 0.4115 0.0004 0.9114 +vn 0.4116 0.0004 0.9114 +vn -0.0000 0.0001 1.0000 +vn -0.4115 0.0004 0.9114 +vn -0.4116 0.0004 0.9114 +vn -0.8382 0.0014 0.5453 +vn -0.8384 0.0014 0.5450 +vn -0.9948 0.0014 0.1018 +vn -0.9948 0.0014 0.1022 +vn -1.0000 0.0010 0.0017 +vn 1.0000 0.0010 0.0017 +vn 0.5616 -0.8254 0.0571 +vn 0.5665 -0.8241 -0.0000 +vn 0.4432 -0.8438 0.3027 +vn 0.4723 -0.8438 0.2548 +vn -0.4432 -0.8438 0.3027 +vn -0.2203 -0.8334 0.5070 +vn -0.2515 -0.8334 0.4922 +vn -0.4723 -0.8438 0.2548 +vn 0.2203 -0.8333 0.5070 +vn 0.2515 -0.8334 0.4922 +vn -0.5616 -0.8254 0.0574 +vn -0.5616 -0.8254 0.0567 +vn -0.0000 -0.8295 0.5585 +vn -0.5665 -0.8241 -0.0000 +vn -0.7576 -0.6489 0.0706 +vn -0.7506 0.6476 0.1310 +vn 0.8049 0.5864 0.0904 +vn 0.4748 -0.8801 0.0059 +vn -0.0000 -0.0000 -1.0000 +vn 0.0989 0.0485 0.9939 +vn -0.6346 -0.7711 0.0521 +vn -0.6882 0.7162 0.1156 +vn 0.7342 0.6698 0.1108 +vn 0.6678 -0.7343 0.1218 +vn 0.3514 -0.1778 0.9192 +vn -0.6006 -0.7936 0.0968 +vn -0.7943 0.5918 0.1376 +vn 0.6458 0.7533 0.1245 +vn 0.7612 -0.6483 -0.0172 +vn 0.0462 0.2059 0.9775 +vn -0.4112 -0.9071 0.0899 +vn -0.8749 0.4526 0.1722 +vn 0.2935 0.9491 0.1145 +vn 0.9229 -0.3788 0.0692 +vn -0.0485 0.2225 0.9737 +vn -0.3366 -0.9398 0.0594 +vn -0.9814 0.1341 0.1370 +vn 0.1490 0.9814 0.1214 +vn 0.9840 -0.1635 0.0709 +vn 0.0830 -0.1168 0.9897 +vn -0.0727 -0.9883 0.1338 +vn -0.9645 0.2377 0.1151 +vn 0.0491 0.9945 0.0921 +vn 0.9991 -0.0229 0.0346 +vn -0.2795 -0.0726 0.9574 +vn -0.0259 -0.9987 0.0443 +vn -0.9784 -0.1865 0.0891 +vn -0.1130 0.9880 0.1051 +vn 0.9849 0.1729 0.0118 +vn 0.0707 -0.0330 0.9970 +vn 0.3011 -0.9511 0.0691 +vn -0.9137 -0.3876 0.1217 +vn -0.3091 0.9435 0.1192 +vn 0.9680 0.2447 0.0554 +vn -0.1182 0.0039 0.9930 +vn 0.3935 -0.9125 0.1119 +vn -0.8570 -0.4782 0.1921 +vn -0.3570 0.9305 0.0820 +vn 0.8663 0.4984 0.0339 +vn 0.3140 0.1762 0.9329 +vn 0.5244 -0.8452 0.1032 +vn -0.8580 -0.5025 0.1066 +vn -0.5255 0.8435 0.1113 +vn 0.7917 0.6070 0.0684 +vn 0.0353 0.0043 0.9994 +vn 0.7024 -0.7060 0.0907 +vn -0.7814 -0.5957 0.1860 +vn -0.6299 0.7658 0.1299 +vn 0.5816 0.8134 0.0032 +vn -0.1301 0.2652 0.9554 +vn 0.7740 -0.6327 0.0266 +vn -0.4988 -0.8595 0.1117 +vn -0.8510 0.5235 0.0425 +vn 0.5611 0.8263 0.0494 +vn 0.0098 0.1297 0.9915 +vn 0.9460 -0.3212 0.0444 +vn -0.3985 -0.9046 0.1512 +vn -0.8307 0.5469 0.1045 +vn 0.3625 0.9294 0.0697 +vn 0.1126 0.0954 0.9891 +vn 0.9711 -0.2377 0.0210 +vn -0.1384 -0.9859 0.0936 +vn -0.9711 0.2227 0.0859 +vn 0.4303 0.9026 0.0106 +vn 0.2684 0.1484 0.9518 +vn 0.9939 0.0728 0.0832 +vn 0.2577 -0.9462 0.1956 +vn -0.9382 -0.3183 0.1357 +vn -0.1615 0.9848 0.0646 +vn -0.0683 -0.1220 0.9902 +vn 0.8769 0.4801 0.0254 +vn 0.5166 -0.8466 0.1278 +vn -0.9380 -0.3251 0.1203 +vn -0.4342 0.9006 0.0207 +vn -0.1575 -0.2040 0.9662 +vn 0.8609 0.5030 0.0769 +vn 0.4037 -0.9015 0.1557 +vn -0.7284 -0.6767 0.1077 +vn -0.5541 0.8312 0.0446 +vn 0.0433 -0.0407 0.9982 +vn 0.6454 0.7572 0.1003 +vn 0.7162 -0.6765 0.1715 +vn -0.5866 -0.8051 0.0875 +vn -0.7442 0.6678 0.0167 +vn -0.1930 0.0288 0.9808 +vn 0.4837 0.8663 0.1251 +vn 0.8115 -0.5697 0.1299 +vn -0.6669 -0.7301 0.1487 +vn -0.7998 0.5888 0.1167 +vn 0.0629 0.1561 0.9857 +vn 0.4528 0.8741 0.1758 +vn 0.9779 -0.1644 0.1294 +vn -0.5167 -0.8517 0.0874 +vn -0.9139 0.4049 0.0294 +vn -0.2333 -0.0238 0.9721 +vn 0.1595 0.9842 0.0768 +vn 0.9413 -0.3134 0.1254 +vn -0.0861 -0.9847 0.1518 +vn -0.9516 0.3026 0.0537 +vn 0.0554 -0.1049 0.9929 +vn 0.1225 0.9888 0.0853 +vn 0.9876 -0.0395 0.1520 +vn -0.1835 -0.9791 0.0875 +vn -0.9947 0.0896 0.0498 +vn 0.0322 0.0299 0.9990 +vn -0.1600 0.9750 0.1544 +vn 0.9785 0.1304 0.1599 +vn 0.1744 -0.9801 0.0944 +vn -0.9982 -0.0484 0.0353 +vn 0.3086 -0.0352 0.9505 +vn -0.2396 0.9594 0.1490 +vn 0.9556 0.2860 0.0709 +vn 0.2878 -0.9527 0.0973 +vn -0.9573 -0.2889 0.0094 +vn 0.0939 -0.2272 0.9693 +vn -0.4611 0.8855 0.0572 +vn 0.9137 0.3858 0.1276 +vn 0.4631 -0.8829 0.0775 +vn -0.9145 -0.4043 0.0124 +vn 0.0337 0.1868 0.9818 +vn -0.5560 0.8254 0.0981 +vn 0.6781 0.7253 0.1185 +vn 0.6131 -0.7883 0.0523 +vn -0.7758 -0.6269 0.0713 +vn -0.1007 0.0305 0.9945 +vn -0.6776 0.7291 0.0966 +vn 0.6752 0.7092 0.2029 +vn 0.6811 -0.7313 0.0352 +vn -0.7219 -0.6914 0.0305 +vn 0.1626 0.2450 0.9558 +vn -0.8239 0.5587 0.0951 +vn 0.5441 0.8252 0.1516 +vn 0.7805 -0.6162 0.1055 +vn -0.6661 -0.7456 0.0185 +vn 0.0074 0.0609 0.9981 +vn -0.8925 0.4425 0.0877 +vn 0.3668 0.9171 0.1564 +vn 0.9067 -0.4104 0.0972 +vn -0.4387 -0.8970 0.0547 +vn -0.0195 0.0527 0.9984 +vn -0.9667 0.2253 0.1217 +vn 0.2590 0.9572 0.1287 +vn 0.9751 -0.1969 0.1016 +vn -0.2670 -0.9621 0.0558 +vn 0.1784 0.1128 0.9775 +vn -0.9581 -0.2627 0.1139 +vn -0.2295 0.9631 0.1405 +vn 0.9182 0.3664 0.1505 +vn 0.2356 -0.9699 0.0618 +vn -0.0361 0.0447 0.9983 +vn -0.9144 -0.3867 0.1199 +vn -0.3976 0.9062 0.1439 +vn 0.8985 0.4301 0.0881 +vn 0.3777 -0.9232 0.0707 +vn -0.0868 -0.1703 0.9816 +s 1 +f 110//125 131//126 132//127 111//128 +f 124//129 139//130 140//131 113//132 +f 107//133 126//133 131//126 110//125 +f 122//134 137//134 138//135 123//135 +f 118//136 130//137 125//138 108//138 +f 109//139 129//139 137//134 122//134 +f 117//140 128//140 129//139 109//139 +f 121//141 136//141 127//142 116//142 +f 113//132 140//131 141//143 114//144 +f 111//128 132//127 133//145 112//146 +f 114//144 141//143 142//147 115//148 +f 112//146 133//145 134//149 119//150 +f 119//150 134//149 135//151 120//152 +f 108//153 125//153 126//153 107//153 +f 115//148 142//147 130//137 118//136 +f 120//152 135//151 136//141 121//141 +f 123//135 138//135 139//130 124//129 +f 116//142 127//142 128//140 117//140 +f 161//154 143//155 144//156 163//157 +f 163//157 144//156 145//158 167//159 +f 167//159 145//158 146//160 169//160 +f 169//160 146//160 147//161 164//162 +f 164//162 147//161 148//163 165//164 +f 165//164 148//163 149//165 168//166 +f 168//166 149//165 153//167 152//167 +f 143//155 161//154 150//168 151//168 +f 154//169 162//170 150//170 161//169 +f 155//171 154//169 161//169 163//172 +f 159//173 158//174 164//175 165//176 +f 156//177 155//171 163//172 167//178 +f 160//179 159//173 165//176 168//180 +f 157//181 156//177 167//178 169//181 +f 166//182 160//179 168//180 152//182 +f 158//174 157//181 169//181 164//175 +s 0 +f 170//183 171//183 173//183 172//183 +f 172//184 173//184 177//184 176//184 +f 176//185 177//185 175//185 174//185 +f 174//186 175//186 171//186 170//186 +f 172//187 176//187 174//187 170//187 +f 177//188 173//188 171//188 175//188 +f 178//189 179//189 181//189 180//189 +f 180//190 181//190 185//190 184//190 +f 184//191 185//191 183//191 182//191 +f 182//192 183//192 179//192 178//192 +f 180//187 184//187 182//187 178//187 +f 185//193 181//193 179//193 183//193 +f 186//194 187//194 189//194 188//194 +f 188//195 189//195 193//195 192//195 +f 192//196 193//196 191//196 190//196 +f 190//197 191//197 187//197 186//197 +f 188//187 192//187 190//187 186//187 +f 193//198 189//198 187//198 191//198 +f 194//199 195//199 197//199 196//199 +f 196//200 197//200 201//200 200//200 +f 200//201 201//201 199//201 198//201 +f 198//202 199//202 195//202 194//202 +f 196//187 200//187 198//187 194//187 +f 201//203 197//203 195//203 199//203 +f 202//204 203//204 205//204 204//204 +f 204//205 205//205 209//205 208//205 +f 208//206 209//206 207//206 206//206 +f 206//207 207//207 203//207 202//207 +f 204//187 208//187 206//187 202//187 +f 209//208 205//208 203//208 207//208 +f 210//209 211//209 213//209 212//209 +f 212//210 213//210 217//210 216//210 +f 216//211 217//211 215//211 214//211 +f 214//212 215//212 211//212 210//212 +f 212//187 216//187 214//187 210//187 +f 217//213 213//213 211//213 215//213 +f 218//214 219//214 221//214 220//214 +f 220//215 221//215 225//215 224//215 +f 224//216 225//216 223//216 222//216 +f 222//217 223//217 219//217 218//217 +f 220//187 224//187 222//187 218//187 +f 225//218 221//218 219//218 223//218 +f 226//219 227//219 229//219 228//219 +f 228//220 229//220 233//220 232//220 +f 232//221 233//221 231//221 230//221 +f 230//222 231//222 227//222 226//222 +f 228//187 232//187 230//187 226//187 +f 233//223 229//223 227//223 231//223 +f 234//224 235//224 237//224 236//224 +f 236//225 237//225 241//225 240//225 +f 240//226 241//226 239//226 238//226 +f 238//227 239//227 235//227 234//227 +f 236//187 240//187 238//187 234//187 +f 241//228 237//228 235//228 239//228 +f 242//229 243//229 245//229 244//229 +f 244//230 245//230 249//230 248//230 +f 248//231 249//231 247//231 246//231 +f 246//232 247//232 243//232 242//232 +f 244//187 248//187 246//187 242//187 +f 249//233 245//233 243//233 247//233 +f 250//234 251//234 253//234 252//234 +f 252//235 253//235 257//235 256//235 +f 256//236 257//236 255//236 254//236 +f 254//237 255//237 251//237 250//237 +f 252//187 256//187 254//187 250//187 +f 257//238 253//238 251//238 255//238 +f 258//239 259//239 261//239 260//239 +f 260//240 261//240 265//240 264//240 +f 264//241 265//241 263//241 262//241 +f 262//242 263//242 259//242 258//242 +f 260//187 264//187 262//187 258//187 +f 265//243 261//243 259//243 263//243 +f 266//244 267//244 269//244 268//244 +f 268//245 269//245 273//245 272//245 +f 272//246 273//246 271//246 270//246 +f 270//247 271//247 267//247 266//247 +f 268//187 272//187 270//187 266//187 +f 273//248 269//248 267//248 271//248 +f 274//249 275//249 277//249 276//249 +f 276//250 277//250 281//250 280//250 +f 280//251 281//251 279//251 278//251 +f 278//252 279//252 275//252 274//252 +f 276//187 280//187 278//187 274//187 +f 281//253 277//253 275//253 279//253 +f 282//254 283//254 285//254 284//254 +f 284//255 285//255 289//255 288//255 +f 288//256 289//256 287//256 286//256 +f 286//257 287//257 283//257 282//257 +f 284//187 288//187 286//187 282//187 +f 289//258 285//258 283//258 287//258 +f 290//259 291//259 293//259 292//259 +f 292//260 293//260 297//260 296//260 +f 296//261 297//261 295//261 294//261 +f 294//262 295//262 291//262 290//262 +f 292//187 296//187 294//187 290//187 +f 297//263 293//263 291//263 295//263 +f 298//264 299//264 301//264 300//264 +f 300//265 301//265 305//265 304//265 +f 304//266 305//266 303//266 302//266 +f 302//267 303//267 299//267 298//267 +f 300//187 304//187 302//187 298//187 +f 305//268 301//268 299//268 303//268 +f 306//269 307//269 309//269 308//269 +f 308//270 309//270 313//270 312//270 +f 312//271 313//271 311//271 310//271 +f 310//272 311//272 307//272 306//272 +f 308//187 312//187 310//187 306//187 +f 313//273 309//273 307//273 311//273 +f 314//274 315//274 317//274 316//274 +f 316//275 317//275 321//275 320//275 +f 320//276 321//276 319//276 318//276 +f 318//277 319//277 315//277 314//277 +f 316//187 320//187 318//187 314//187 +f 321//278 317//278 315//278 319//278 +f 322//279 323//279 325//279 324//279 +f 324//280 325//280 329//280 328//280 +f 328//281 329//281 327//281 326//281 +f 326//282 327//282 323//282 322//282 +f 324//187 328//187 326//187 322//187 +f 329//283 325//283 323//283 327//283 +f 330//284 331//284 333//284 332//284 +f 332//285 333//285 337//285 336//285 +f 336//286 337//286 335//286 334//286 +f 334//287 335//287 331//287 330//287 +f 332//187 336//187 334//187 330//187 +f 337//288 333//288 331//288 335//288 +f 338//289 339//289 341//289 340//289 +f 340//290 341//290 345//290 344//290 +f 344//291 345//291 343//291 342//291 +f 342//292 343//292 339//292 338//292 +f 340//187 344//187 342//187 338//187 +f 345//293 341//293 339//293 343//293 +f 346//294 347//294 349//294 348//294 +f 348//295 349//295 353//295 352//295 +f 352//296 353//296 351//296 350//296 +f 350//297 351//297 347//297 346//297 +f 348//187 352//187 350//187 346//187 +f 353//298 349//298 347//298 351//298 +f 354//299 355//299 357//299 356//299 +f 356//300 357//300 361//300 360//300 +f 360//301 361//301 359//301 358//301 +f 358//302 359//302 355//302 354//302 +f 356//187 360//187 358//187 354//187 +f 361//303 357//303 355//303 359//303 +f 362//304 363//304 365//304 364//304 +f 364//305 365//305 369//305 368//305 +f 368//306 369//306 367//306 366//306 +f 366//307 367//307 363//307 362//307 +f 364//187 368//187 366//187 362//187 +f 369//308 365//308 363//308 367//308 +f 370//309 371//309 373//309 372//309 +f 372//310 373//310 377//310 376//310 +f 376//311 377//311 375//311 374//311 +f 374//312 375//312 371//312 370//312 +f 372//187 376//187 374//187 370//187 +f 377//313 373//313 371//313 375//313 +f 378//314 379//314 381//314 380//314 +f 380//315 381//315 385//315 384//315 +f 384//316 385//316 383//316 382//316 +f 382//317 383//317 379//317 378//317 +f 380//187 384//187 382//187 378//187 +f 385//318 381//318 379//318 383//318 +f 386//319 387//319 389//319 388//319 +f 388//320 389//320 393//320 392//320 +f 392//321 393//321 391//321 390//321 +f 390//322 391//322 387//322 386//322 +f 388//187 392//187 390//187 386//187 +f 393//323 389//323 387//323 391//323 +f 394//324 395//324 397//324 396//324 +f 396//325 397//325 401//325 400//325 +f 400//326 401//326 399//326 398//326 +f 398//327 399//327 395//327 394//327 +f 396//187 400//187 398//187 394//187 +f 401//328 397//328 395//328 399//328 +f 402//329 403//329 405//329 404//329 +f 404//330 405//330 409//330 408//330 +f 408//331 409//331 407//331 406//331 +f 406//332 407//332 403//332 402//332 +f 404//187 408//187 406//187 402//187 +f 409//333 405//333 403//333 407//333 +f 410//334 411//334 413//334 412//334 +f 412//335 413//335 417//335 416//335 +f 416//336 417//336 415//336 414//336 +f 414//337 415//337 411//337 410//337 +f 412//187 416//187 414//187 410//187 +f 417//338 413//338 411//338 415//338 +f 418//339 419//339 421//339 420//339 +f 420//340 421//340 425//340 424//340 +f 424//341 425//341 423//341 422//341 +f 422//342 423//342 419//342 418//342 +f 420//187 424//187 422//187 418//187 +f 425//343 421//343 419//343 423//343 +o 154_4_22 +v 1.797276 80.752823 39.487202 +v 6.095798 73.497902 39.487206 +v 15.318478 72.540688 39.487206 +v 23.500195 76.726639 39.487202 +v 23.500195 84.778992 39.487202 +v 14.922100 89.341187 39.487202 +v 6.095798 88.007736 39.487202 +v 10.980480 80.752823 42.529533 +v 6.022312 80.752823 36.894913 +v -1.647861 80.752831 52.252693 +v -5.933772 87.570602 52.252693 +v -15.115672 88.996513 52.252701 +v -23.852798 86.019211 52.252701 +v -23.350777 76.726662 52.252701 +v -16.861946 71.132324 52.252697 +v -7.203236 72.924133 52.252697 +v -10.831073 80.752831 55.295036 +v -5.872897 80.752823 49.660408 +v -11.331368 89.200439 68.148148 +v -18.595112 85.362579 68.148148 +v -20.274620 79.058479 68.148148 +v -17.138046 71.625893 68.148148 +v -12.218729 65.562035 68.148148 +v -4.080407 66.684105 68.148148 +v 1.294882 71.100006 68.148148 +v 1.603057 79.309509 68.148148 +v -4.853883 84.595253 68.148148 +v -4.498827 81.829735 65.024170 +v -8.816323 78.341736 70.537971 +v 3.600699 80.012871 68.109802 +v 10.220337 85.479675 68.109802 +v 12.293653 91.727623 68.109802 +v 13.146019 98.223854 68.109802 +v 7.094415 104.540558 68.109802 +v -3.250503 104.595108 68.109802 +v -7.186432 98.046692 68.109802 +v -7.687081 88.912048 68.109802 +v -2.914254 83.447319 68.109802 +v -1.867921 86.970940 65.024185 +v 1.932494 89.868217 70.537971 +v 3.549689 78.729424 68.109802 +v 1.840879 70.316010 68.109802 +v 4.158064 64.154350 68.109802 +v 9.910315 62.733791 68.109802 +v 15.339567 65.481346 68.109795 +v 19.577106 72.771469 68.109802 +v 18.519123 80.338104 68.109802 +v 15.557785 83.901756 68.109802 +v 9.121239 82.318237 68.109802 +v 7.367620 79.252625 65.024185 +v 9.879005 75.185806 70.537971 +vn -0.1764 -0.2773 0.9445 +vn 0.0562 -0.3210 0.9454 +vn -0.0491 -0.0029 0.9988 +vn 0.1935 -0.1334 0.9720 +vn 0.1945 0.1306 0.9722 +vn 0.0494 0.3135 0.9483 +vn -0.1836 0.2725 0.9445 +vn -0.3145 -0.0000 0.9493 +vn 0.1862 0.2858 0.9400 +vn -0.0262 0.3344 0.9421 +vn 0.0626 0.0110 0.9980 +vn -0.2557 -0.3304 -0.9086 +vn -0.4995 -0.2960 -0.8142 +vn -0.2159 -0.0016 -0.9764 +vn -0.4995 0.2960 -0.8142 +vn -0.2638 0.3298 -0.9064 +vn 0.0336 0.2575 -0.9657 +vn 0.1262 0.0889 -0.9880 +vn 0.1257 -0.0910 -0.9879 +vn 0.0401 -0.2600 -0.9648 +vn -0.1727 0.1371 0.9754 +vn -0.2035 -0.1034 0.9736 +vn -0.0610 -0.2663 0.9620 +vn 0.1840 -0.2810 0.9419 +vn 0.3145 -0.0111 0.9492 +vn 0.2661 0.3475 -0.8991 +vn 0.4968 0.3123 -0.8097 +vn 0.2297 0.0013 -0.9733 +vn 0.4903 -0.3479 -0.7991 +vn 0.2607 -0.3465 -0.9011 +vn -0.0382 -0.2198 -0.9748 +vn -0.1310 -0.0681 -0.9890 +vn -0.1137 0.0987 -0.9886 +vn -0.0180 0.2824 -0.9591 +vn 0.2258 -0.1607 -0.9608 +vn 0.2097 -0.2539 -0.9442 +vn -0.0130 -0.0023 -0.9999 +vn -0.1768 0.1551 -0.9720 +vn -0.1431 0.2708 -0.9519 +vn 0.0148 -0.0337 -0.9993 +vn 0.4846 0.6816 -0.5483 +vn 0.5137 0.6711 -0.5344 +vn 0.5203 0.6679 -0.5322 +vn 0.5400 0.6597 -0.5226 +vn 0.4501 -0.0169 -0.8928 +vn 0.2955 -0.1180 -0.9480 +vn 0.0900 -0.1989 -0.9759 +vn -0.0610 -0.1603 -0.9852 +vn -0.1634 -0.0982 -0.9817 +vn -0.1922 -0.0123 -0.9813 +vn -0.1520 0.1223 0.9808 +vn -0.2051 -0.0158 0.9786 +vn 0.0180 0.0333 0.9993 +vn -0.1887 -0.1133 0.9755 +vn -0.0696 -0.1654 0.9838 +vn 0.0747 -0.1710 0.9824 +vn 0.1732 -0.0822 0.9814 +vn 0.2129 0.1086 0.9710 +vn 0.1866 0.2453 0.9513 +vn 0.0303 0.2218 0.9746 +vn -0.3032 -0.5752 -0.7597 +vn -0.4201 -0.5251 -0.7401 +vn -0.4366 -0.5159 -0.7371 +vn -0.5308 -0.4636 -0.7094 +vn -0.4617 0.0253 -0.8867 +vn -0.3460 0.0956 -0.9334 +vn -0.1127 0.1630 -0.9802 +vn 0.0604 0.1426 -0.9879 +vn 0.1675 0.0468 -0.9848 +vn 0.2293 -0.0521 -0.9720 +vn 0.2077 -0.1433 0.9676 +vn 0.2370 -0.0539 0.9700 +vn -0.0126 -0.0594 0.9982 +vn 0.1763 0.0495 0.9831 +vn 0.0619 0.1416 0.9880 +vn -0.0816 0.1342 0.9876 +vn -0.2055 0.0610 0.9767 +vn -0.2359 -0.0864 0.9679 +vn -0.1791 -0.2268 0.9573 +vn 0.0201 -0.2361 0.9715 +vn -0.4778 -0.0134 -0.8784 +vn -0.6340 0.1288 -0.7626 +vn -0.0713 -0.0126 -0.9974 +vn -0.4790 0.7436 -0.4666 +vn -0.3396 0.7620 -0.5514 +vn -0.3824 0.7548 -0.5330 +vn -0.1839 0.7476 -0.6382 +vn 0.2429 0.2018 -0.9488 +vn 0.2546 0.1158 -0.9601 +vn 0.2248 -0.0403 -0.9736 +vn 0.1355 -0.1414 -0.9806 +vn 0.0201 -0.1806 -0.9833 +vn -0.1743 -0.1620 -0.9713 +vn -0.2798 -0.0175 0.9599 +vn -0.1387 -0.1439 0.9798 +vn -0.0340 0.0492 0.9982 +vn 0.0230 -0.1913 0.9813 +vn 0.1522 -0.1586 0.9755 +vn 0.2321 -0.0450 0.9717 +vn 0.2166 0.0947 0.9717 +vn 0.0604 0.2315 0.9710 +vn -0.1327 0.3069 0.9424 +vn -0.2619 0.1821 0.9478 +s 1 +f 427//344 428//345 433//346 +f 428//345 429//347 433//346 +f 429//347 430//348 433//346 +f 430//348 431//349 433//346 +f 431//349 432//350 433//346 +f 432//350 426//351 433//346 +f 426//351 427//344 433//346 +f 436//352 437//353 442//354 +f 427//355 426//356 434//357 +f 426//358 432//359 434//357 +f 432//359 431//360 434//357 +f 431//360 430//361 434//357 +f 430//361 429//362 434//357 +f 429//362 428//363 434//357 +f 428//363 427//355 434//357 +f 437//353 438//364 442//354 +f 438//364 439//365 442//354 +f 439//365 440//366 442//354 +f 440//366 441//367 442//354 +f 441//367 435//368 442//354 +f 435//368 436//352 442//354 +f 436//369 435//370 443//371 +f 435//372 441//373 443//371 +f 441//373 440//374 443//371 +f 440//374 439//375 443//371 +f 439//375 438//376 443//371 +f 438//376 437//377 443//371 +f 437//377 436//369 443//371 +f 456//378 455//379 464//380 +f 445//381 444//382 453//383 +f 444//384 452//385 453//386 +f 452//385 451//387 453//386 +f 451//388 450//389 453//383 +f 450//389 449//390 453//383 +f 449//390 448//391 453//383 +f 448//391 447//392 453//383 +f 447//392 446//393 453//383 +f 446//393 445//381 453//383 +f 445//394 446//395 454//396 +f 446//395 447//397 454//396 +f 447//397 448//398 454//396 +f 448//398 449//399 454//396 +f 449//399 450//400 454//396 +f 450//400 451//401 454//396 +f 451//401 452//402 454//396 +f 452//402 444//403 454//396 +f 444//403 445//394 454//396 +f 455//404 463//405 464//406 +f 463//405 462//407 464//406 +f 462//408 461//409 464//380 +f 461//409 460//410 464//380 +f 460//410 459//411 464//380 +f 459//411 458//412 464//380 +f 458//412 457//413 464//380 +f 457//413 456//378 464//380 +f 456//414 457//415 465//416 +f 457//415 458//417 465//416 +f 458//417 459//418 465//416 +f 459//418 460//419 465//416 +f 460//419 461//420 465//416 +f 461//420 462//421 465//416 +f 462//421 463//422 465//416 +f 463//422 455//423 465//416 +f 455//423 456//414 465//416 +f 467//424 466//425 475//426 +f 466//427 474//428 475//429 +f 474//428 473//430 475//429 +f 473//431 472//432 475//426 +f 472//432 471//433 475//426 +f 471//433 470//434 475//426 +f 470//434 469//435 475//426 +f 469//435 468//436 475//426 +f 468//436 467//424 475//426 +f 467//437 468//438 476//439 +f 468//438 469//440 476//439 +f 469//440 470//441 476//439 +f 470//441 471//442 476//439 +f 471//442 472//443 476//439 +f 472//443 473//444 476//439 +f 473//444 474//445 476//439 +f 474//445 466//446 476//439 +f 466//446 467//437 476//439 +o 0_0_0 +v 5.249920 -93.000000 11.918239 +v 4.923147 -93.000000 13.509164 +v 3.775560 -93.000000 14.436235 +v -0.000014 -93.000000 15.212263 +v -3.775578 -93.000008 14.436242 +v -4.923163 -92.999992 13.509170 +v -5.249938 -93.000000 11.918232 +v 5.249918 -93.000008 -11.278836 +v -5.249940 -93.000000 -11.278836 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -1.0000 -0.0003 +vn 0.0055 -0.9996 -0.0266 +vn 0.0130 -0.9999 -0.0105 +vn -0.0130 -0.9999 -0.0105 +vn -0.0055 -0.9996 -0.0266 +vn -0.0000 -1.0000 -0.0005 +s 1 +f 484//447 477//448 478//449 479//450 480//447 481//451 482//452 483//453 485//447 diff --git a/assets/voxygen/lod/house.obj b/assets/voxygen/lod/house.obj new file mode 100644 index 0000000..f55393e --- /dev/null +++ b/assets/voxygen/lod/house.obj @@ -0,0 +1,134 @@ +# Blender 4.0.2 +# www.blender.org +o Glow +v 7.988998 -7.561201 1.343534 +v 7.988998 -7.561200 10.388029 +v -7.988999 -7.561200 1.343533 +v -7.988998 -7.561199 10.388026 +v 7.988999 7.561200 1.343533 +v 7.988999 7.561201 10.388027 +v -7.988998 7.561201 1.343532 +v -7.988997 7.561202 10.388024 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +s 0 +f 8//1 5//1 7//1 +f 1//2 4//2 3//2 +f 8//1 6//1 5//1 +f 1//2 2//2 4//2 +o 160_140_105 +v -8.499999 8.441432 13.915668 +v -8.500001 -8.441429 13.915670 +v 8.499999 -8.441430 13.915672 +v 8.500001 8.441431 13.915670 +v 8.500001 8.441430 -3.919484 +v 8.500000 -8.441431 -3.919482 +v -8.499999 -8.441430 -3.919483 +v -8.499998 8.441431 -3.919485 +v -7.209749 -8.441429 13.915670 +v -0.366446 -8.441430 13.915671 +v 1.775219 -8.441430 13.915671 +v 5.325659 -8.441430 13.915671 +v 5.325660 -8.441431 -3.919482 +v 1.775219 -8.441431 -3.919482 +v -0.366445 -8.441431 -3.919483 +v -7.209748 -8.441430 -3.919483 +v -5.325661 8.441432 13.915669 +v -1.775220 8.441432 13.915669 +v 1.775220 8.441432 13.915669 +v 7.139946 8.441431 13.915670 +v 7.139947 8.441430 -3.919484 +v 1.775221 8.441431 -3.919484 +v -1.775219 8.441431 -3.919485 +v -5.325660 8.441431 -3.919485 +v -7.209748 -8.441430 4.029367 +v -7.209748 -8.441429 8.464980 +v 5.325660 -8.441430 8.464980 +v 5.325660 -8.441431 4.029367 +v -5.325661 8.441431 4.029366 +v -5.325661 8.441432 8.464978 +v 7.139946 8.441431 8.464979 +v 7.139946 8.441430 4.029366 +v -8.499999 8.968564 12.837136 +v -8.500001 -8.968560 12.837138 +v 8.499999 -8.968562 12.837140 +v 8.500001 8.968562 12.837138 +v -8.499999 0.000003 21.820705 +v 8.500000 0.000001 21.820705 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +s 0 +f 33//3 34//3 10//3 +f 18//3 22//3 19//3 +f 36//3 14//3 11//3 +f 37//4 32//4 16//4 +f 27//4 31//4 26//4 +f 40//4 39//4 12//4 +f 36//3 24//3 21//3 +f 34//3 20//3 17//3 +f 14//5 12//5 11//5 +f 16//6 10//6 9//6 +f 25//4 39//4 38//4 +f 40//4 32//4 37//4 +f 46//5 43//5 44//5 +f 45//6 41//6 42//6 +f 15//3 24//3 33//3 +f 34//3 17//3 10//3 +f 15//3 33//3 10//3 +f 18//3 23//3 22//3 +f 11//3 20//3 35//3 +f 36//3 21//3 14//3 +f 11//3 35//3 36//3 +f 16//4 9//4 37//4 +f 9//4 25//4 38//4 +f 9//4 38//4 37//4 +f 27//4 30//4 31//4 +f 12//4 13//4 40//4 +f 13//4 29//4 40//4 +f 39//4 28//4 12//4 +f 36//3 33//3 24//3 +f 34//3 35//3 20//3 +f 14//5 13//5 12//5 +f 16//6 15//6 10//6 +f 25//4 28//4 39//4 +f 40//4 29//4 32//4 +l 17 18 +l 19 20 +l 21 22 +l 23 24 +l 25 26 +l 27 28 +l 29 30 +l 31 32 +o InstCol +v 9.609986 11.299928 11.653808 +v -9.609986 11.299928 11.653808 +v -9.609986 0.000004 22.997385 +v -9.609986 -11.299924 11.653811 +v 9.609986 -11.299924 11.653811 +v 9.609986 0.000004 22.997385 +v -9.609986 9.025667 11.056778 +v -9.609986 0.000002 20.483929 +v -9.609986 -9.025663 11.056782 +v 9.609986 9.025667 11.056778 +v 9.609986 0.000002 20.483929 +v 9.609986 -9.025663 11.056782 +vn -0.0000 0.7085 0.7057 +vn -1.0000 -0.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.7085 0.7057 +s 0 +f 49//7 47//7 48//7 +f 48//8 53//8 54//8 +f 51//9 58//9 57//9 +f 50//10 52//10 49//10 +f 49//7 52//7 47//7 +f 55//8 50//8 54//8 +f 50//8 49//8 54//8 +f 49//8 48//8 54//8 +f 56//9 47//9 57//9 +f 47//9 52//9 57//9 +f 52//9 51//9 57//9 +f 50//10 51//10 52//10 diff --git a/assets/voxygen/lod/mangrove.obj b/assets/voxygen/lod/mangrove.obj new file mode 100644 index 0000000..6237c2a --- /dev/null +++ b/assets/voxygen/lod/mangrove.obj @@ -0,0 +1,214 @@ +# Blender 4.0.2 +# www.blender.org +o 118_67_42 +v -2.325550 2.478779 -9.530050 +v -0.166533 -0.132467 56.427483 +v 2.585080 2.519644 -9.653699 +v 2.142621 -2.403508 56.345928 +v 2.621907 -2.389968 -9.813725 +v -0.129825 -4.710304 56.240398 +v -2.288722 -2.430832 -9.690076 +v -2.438978 -2.439263 56.321945 +vn -0.4661 0.8833 0.0502 +vn -0.4511 0.8910 0.0506 +vn 0.8914 0.4515 0.0402 +vn 0.8830 0.4676 0.0407 +vn 0.4516 -0.8921 -0.0120 +vn 0.4860 -0.8739 -0.0112 +vn -0.8929 -0.4503 -0.0015 +vn -0.8754 -0.4834 -0.0027 +s 1 +f 1//1 2//2 4//3 3//4 +f 3//4 4//3 6//5 5//6 +f 5//6 6//5 8//7 7//8 +f 7//8 8//7 2//2 1//1 +o InstCol +v 1.017158 -10.187216 24.640535 +v -1.124032 1.808274 24.839994 +v -6.954854 -0.843935 55.302971 +v 19.667633 -6.122302 60.216721 +v -8.008860 -0.469190 63.844242 +v -17.267874 -18.887039 35.410427 +v 7.957957 -4.458205 39.619568 +v 13.570067 21.046759 35.153812 +v -3.995806 1.197015 34.844765 +v 19.972206 -4.563111 39.523548 +v -9.569862 15.754472 53.188499 +v 3.105361 -22.580702 60.162640 +v -1.616163 1.399792 52.073120 +v 10.651608 0.174174 63.793449 +v 6.529486 18.709772 38.038998 +v -13.893209 -1.421674 34.942364 +v 22.443676 9.283042 42.314751 +v 27.939945 11.928193 34.736660 +v 22.925762 -9.206088 34.116596 +v 6.432326 4.735033 29.932398 +v -1.886395 13.075729 32.043568 +v -4.491509 -4.890099 31.538048 +v 7.750920 -7.278979 31.286770 +v 0.960710 -3.863587 30.355696 +v -11.467319 4.597945 30.693682 +v -27.416447 -10.159752 30.763250 +v -17.410614 -23.735605 30.409948 +v -3.120832 -18.702469 32.337166 +v 0.983693 -17.787842 64.286758 +v 5.551691 8.980414 60.379917 +v -9.989305 4.345974 60.141621 +v -13.761072 -11.914617 59.803875 +v -4.164752 -16.243002 56.205780 +v 7.879756 1.728744 55.566441 +v 6.295345 -9.982252 54.288246 +v 3.946213 16.082846 50.887047 +v -11.078859 19.894247 50.047752 +v -14.457259 4.881047 50.460415 +v -6.835548 -2.952802 46.959450 +v -7.194465 3.847015 44.446770 +v 9.337777 8.257424 45.830383 +v -2.863002 16.162176 46.403877 +v 5.780869 -2.874347 46.045570 +v 6.077104 -21.006041 48.467594 +v 1.643902 -1.492384 47.610809 +v -6.069983 -19.017092 46.909370 +v 12.941773 -10.099409 46.162052 +v 7.063521 -5.658304 41.571075 +v 4.953021 3.570252 43.792240 +v 5.728254 -25.875973 45.064201 +v -11.080448 -8.002805 42.751293 +v -4.254837 5.021866 42.639084 +vn 0.1779 -0.9836 -0.0283 +vn 0.9972 -0.0650 0.0369 +vn -0.0527 -0.4430 0.8950 +vn -0.9344 -0.3557 0.0194 +vn 0.6843 -0.2629 -0.6802 +vn -0.9931 0.0791 -0.0865 +vn 0.4606 0.7003 -0.5453 +vn 0.8186 0.2430 0.5204 +vn -0.1803 0.9821 0.0543 +vn -0.1355 0.3950 0.9086 +vn 0.8900 0.3717 -0.2641 +vn 0.1890 0.9639 -0.1877 +vn 0.4151 0.1651 0.8947 +vn -0.4074 0.7189 0.5633 +vn -0.2446 -0.5289 0.8127 +vn 0.3183 -0.4578 0.8301 +vn -0.8419 0.0014 0.5397 +vn 0.5891 -0.7768 -0.2227 +vn -0.7603 0.5445 -0.3543 +vn -0.7555 -0.5887 -0.2875 +vn -0.0691 -0.8158 -0.5742 +vn 0.0307 0.0687 -0.9972 +vn 0.6347 -0.6817 0.3640 +vn -0.2208 -0.3909 0.8936 +vn -0.3083 -0.9233 -0.2290 +vn 0.3485 0.2950 0.8897 +vn -0.3789 0.2076 0.9019 +vn 0.1812 0.9804 0.0773 +vn -0.6817 0.7315 0.0160 +vn 0.2913 0.3939 -0.8718 +vn -0.3587 0.2467 -0.9002 +vn -0.3059 -0.5156 -0.8003 +vn 0.2206 -0.2013 -0.9544 +vn 0.6356 0.6641 0.3936 +vn -0.5398 0.8404 -0.0493 +vn -0.2684 0.2697 0.9248 +vn -0.9389 -0.2802 0.2001 +vn 0.1447 -0.4081 0.9014 +vn 0.0797 0.5912 -0.8026 +vn -0.3226 -0.0797 -0.9432 +vn -0.3845 -0.9061 -0.1766 +vn 0.9569 0.0859 -0.2775 +vn 0.6484 -0.7348 -0.1993 +vn -0.7543 -0.5859 0.2960 +vn 0.2450 -0.9529 -0.1788 +vn 0.2998 -0.3434 0.8900 +vn 0.9848 0.0358 0.1699 +vn -0.0313 0.3150 0.9486 +vn 0.3759 0.0822 -0.9230 +vn 0.5039 0.8604 -0.0759 +vn -0.4951 0.8481 -0.1886 +vn -0.9748 0.0552 -0.2163 +s 1 +f 20//9 12//10 37//11 +f 40//12 20//9 37//11 +f 9//13 34//14 10//15 +f 9//13 10//15 32//16 +f 33//17 34//14 24//18 +f 26//19 16//20 25//21 +f 23//22 15//23 25//21 +f 25//21 15//23 18//24 +f 23//22 17//25 15//23 +f 15//23 27//26 18//24 +f 18//24 27//26 25//21 +f 27//26 26//19 25//21 +f 25//21 16//20 23//22 +f 29//27 17//25 23//22 +f 30//28 15//23 17//25 +f 30//28 27//26 15//23 +f 31//29 27//26 30//28 +f 28//30 16//20 26//19 +f 29//27 30//28 17//25 +f 27//26 28//30 26//19 +f 16//20 29//27 23//22 +f 28//30 29//27 16//20 +f 28//30 30//28 29//27 +f 28//30 31//29 30//28 +f 31//29 28//30 27//26 +f 36//31 32//16 24//18 +f 32//16 33//17 24//18 +f 24//18 34//14 14//32 +f 34//14 35//33 14//32 +f 14//32 36//31 24//18 +f 35//33 36//31 14//32 +f 9//13 32//16 36//31 +f 10//15 33//17 32//16 +f 10//15 34//14 33//17 +f 9//13 36//31 35//33 +f 34//14 9//13 35//33 +f 37//11 22//34 13//35 +f 22//34 38//36 13//35 +f 12//10 38//36 22//34 +f 38//36 39//37 13//35 +f 39//37 40//12 13//35 +f 13//35 40//12 37//11 +f 37//11 12//10 22//34 +f 42//38 38//36 12//10 +f 38//36 11//39 39//37 +f 11//39 40//12 39//37 +f 41//40 20//9 40//12 +f 43//41 12//10 20//9 +f 42//38 11//39 38//36 +f 40//12 11//39 41//40 +f 41//40 43//41 20//9 +f 43//41 42//38 12//10 +f 43//41 11//39 42//38 +f 43//41 41//40 11//39 +f 44//42 45//43 19//44 +f 45//43 46//45 19//44 +f 19//44 46//45 21//46 +f 21//46 44//42 19//44 +f 50//47 45//43 44//42 +f 45//43 48//48 46//45 +f 47//49 21//46 46//45 +f 49//50 44//42 21//46 +f 50//47 48//48 45//43 +f 46//45 48//48 47//49 +f 47//49 51//51 21//46 +f 51//51 49//50 21//46 +f 49//50 50//47 44//42 +f 48//48 51//51 47//49 +f 49//50 48//48 50//47 +f 48//48 49//50 51//51 +f 54//52 58//53 52//54 +f 58//53 55//55 52//54 +f 55//55 53//56 52//54 +f 53//56 54//52 52//54 +f 58//53 56//57 55//55 +f 57//58 53//56 55//55 +f 57//58 60//59 53//56 +f 59//60 54//52 53//56 +f 56//57 57//58 55//55 +f 60//59 59//60 53//56 +f 54//52 59//60 58//53 +f 56//57 60//59 57//58 +f 59//60 56//57 58//53 +f 56//57 59//60 60//59 diff --git a/assets/voxygen/lod/oak.obj b/assets/voxygen/lod/oak.obj new file mode 100644 index 0000000..c76a76e --- /dev/null +++ b/assets/voxygen/lod/oak.obj @@ -0,0 +1,282 @@ +# Blender 4.0.2 +# www.blender.org +o InstCol +v -14.946883 5.025107 29.134197 +v -13.416263 11.597189 30.091965 +v -3.178354 5.301610 26.376389 +v -12.720608 0.215672 26.024258 +v -4.778443 -0.831001 25.285046 +v -5.743745 0.977794 27.825560 +v -5.762538 7.624519 30.529942 +v 1.221470 9.773711 39.821621 +v -11.022116 -3.506863 31.507065 +v -7.548555 -2.798143 39.418751 +v -11.230175 -8.739077 32.424942 +v -1.128780 7.593450 23.726830 +v -5.136277 2.657301 23.484859 +v -6.219831 16.002329 30.295835 +v -1.171530 16.892078 26.857443 +v -2.698816 16.460360 20.784622 +v -8.857503 17.679073 20.536871 +v -9.348872 21.429491 23.763000 +v -11.412892 9.879720 19.642570 +v -2.865390 10.241335 29.567135 +v -12.857251 14.685332 20.801865 +v -17.507149 13.483566 26.348856 +v -12.683455 20.715322 23.382998 +v -15.866823 6.520735 23.122469 +v -3.170569 13.323617 20.460871 +v -10.003321 2.620369 21.728302 +v 16.472797 -8.795074 35.258450 +v 12.729038 12.296570 20.082195 +v 19.583244 6.735448 27.752922 +v 4.461402 14.592947 25.363449 +v 16.176586 8.825227 19.296932 +v 16.593071 16.033840 33.356762 +v 11.883043 18.183830 30.030125 +v 11.804720 10.970479 35.116150 +v 17.760529 17.391186 29.393986 +v -2.406566 -0.971740 24.744991 +v -0.004677 5.297647 30.300703 +v -4.833698 -7.312465 26.884630 +v -4.648818 2.609706 35.617134 +v 5.373076 -7.127168 22.096037 +v 1.352367 -15.845160 30.873034 +v 0.752187 -13.415812 36.673840 +v 14.512228 -13.100904 30.808279 +v 19.411362 -4.043045 25.519499 +v 12.413448 -8.942978 22.592077 +v 16.287468 -0.355153 36.389034 +v 2.263088 14.995235 30.631258 +v -0.817753 4.729714 26.087734 +v 9.931145 -1.882607 39.444244 +v 5.427694 13.678323 35.544941 +v -2.658611 2.024696 39.416271 +v 13.542118 13.244343 25.469532 +v -8.012905 -10.568980 35.891777 +v 0.040908 10.307569 37.432858 +v 10.255438 5.429066 38.423264 +v 18.938217 9.406166 31.590675 +v 16.712551 1.736258 22.495014 +v -0.491218 -4.135262 21.736771 +v -10.865851 18.943226 28.318789 +v -2.657732 18.729965 25.498133 +v -1.565956 -13.779789 28.737513 +v 16.509024 -7.612427 22.977451 +v 5.371693 7.551996 20.922440 +v 9.831676 1.369088 19.835512 +v 19.859589 -7.760416 32.875633 +v 5.952726 1.222703 19.083557 +vn 0.8495 -0.4100 0.3320 +vn 0.3449 -0.5561 0.7562 +vn 0.4896 -0.8506 -0.1915 +vn -0.6413 -0.3743 0.6698 +vn -0.3755 0.1151 0.9197 +vn -0.9596 0.2465 0.1354 +vn 0.2734 -0.2344 0.9329 +vn -0.4597 -0.8858 0.0643 +vn 0.4976 -0.4659 -0.7317 +vn -0.8265 -0.2971 -0.4782 +vn -0.0535 -0.6135 -0.7879 +vn 0.6813 -0.1131 0.7232 +vn -0.7265 0.2997 -0.6184 +vn -0.1310 0.0162 -0.9912 +vn -0.5021 -0.1341 -0.8544 +vn -0.6821 0.7310 -0.0179 +vn -0.7745 0.5897 0.2288 +vn -0.2599 0.4765 0.8399 +vn 0.2286 -0.1049 0.9679 +vn -0.4026 0.2596 0.8778 +vn -0.5692 0.1401 0.8101 +vn 0.3565 0.2603 0.8973 +vn -0.7903 0.6004 -0.1220 +vn -0.8207 0.4498 -0.3523 +vn -0.7701 0.6338 0.0725 +vn -0.0408 -0.6980 0.7149 +vn -0.9057 0.3312 -0.2646 +vn -0.5990 -0.2717 -0.7533 +vn -0.9090 -0.3988 -0.1212 +vn -0.5405 -0.6468 0.5380 +vn -0.3801 -0.7485 -0.5433 +vn 0.8994 -0.3348 -0.2811 +vn 0.5591 0.8219 0.1089 +vn -0.2380 0.6747 0.6987 +vn 0.1827 0.3961 0.8998 +vn 0.8428 0.4114 0.3471 +vn 0.5958 0.3698 -0.7130 +vn 0.0707 0.9870 -0.1445 +vn -0.0383 0.4103 -0.9111 +vn -0.2251 -0.1007 -0.9691 +vn 0.4516 -0.0697 -0.8895 +vn -0.5444 0.7959 -0.2648 +vn -0.5287 0.2079 -0.8229 +vn 0.5975 0.0671 0.7991 +vn -0.0281 0.7670 0.6410 +vn 0.4583 -0.4675 0.7559 +vn 0.5705 0.2439 -0.7842 +vn 0.9649 0.1615 -0.2070 +vn 0.6646 -0.0990 -0.7406 +vn 0.9037 -0.1470 -0.4022 +vn 0.4073 0.7296 -0.5493 +vn 0.1619 0.6698 -0.7247 +vn 0.1474 -0.1061 -0.9834 +vn -0.4327 0.2772 -0.8579 +vn -0.4978 0.6924 -0.5224 +vn 0.3188 0.2678 0.9092 +vn 0.8667 0.1515 0.4752 +vn 0.4653 0.5082 0.7248 +vn 0.6402 0.7317 -0.2339 +vn -0.0759 0.9971 0.0051 +vn -0.0850 -0.9903 -0.1101 +vn 0.1394 -0.5938 -0.7925 +vn 0.4375 -0.8987 0.0319 +vn -0.0951 -0.4719 -0.8765 +vn 0.5473 -0.4589 -0.6999 +vn 0.8796 -0.3701 0.2989 +s 1 +f 3//1 6//2 5//3 +f 1//4 2//5 22//6 +f 1//4 7//7 2//5 +f 5//3 4//8 13//9 +f 3//1 5//3 13//9 +f 4//8 5//3 6//2 +f 4//8 24//10 26//11 +f 1//4 6//2 7//7 +f 6//2 1//4 4//8 +f 7//7 3//1 20//12 +f 3//1 7//7 6//2 +f 13//9 4//8 26//11 +f 36//13 66//14 58//15 +f 47//16 54//17 8//18 +f 49//19 8//18 51//20 +f 51//20 10//21 49//19 +f 8//18 49//19 55//22 +f 37//23 48//24 39//25 +f 54//17 37//23 39//25 +f 49//19 10//21 42//26 +f 9//27 38//28 11//29 +f 10//21 51//20 39//25 +f 38//28 9//27 36//13 +f 36//13 9//27 39//25 +f 42//26 10//21 53//30 +f 9//27 10//21 39//25 +f 10//21 11//29 53//30 +f 38//28 61//31 11//29 +f 10//21 9//27 11//29 +f 12//32 3//1 13//9 +f 12//32 20//12 3//1 +f 60//33 59//34 14//35 +f 2//5 7//7 14//35 +f 14//35 59//34 2//5 +f 14//35 20//12 15//36 +f 7//7 20//12 14//35 +f 15//36 20//12 12//32 +f 60//33 15//36 16//37 +f 18//38 16//37 17//39 +f 19//40 17//39 25//41 +f 16//37 15//36 12//32 +f 25//41 17//39 16//37 +f 60//33 16//37 18//38 +f 23//42 18//38 17//39 +f 22//6 23//42 21//43 +f 23//42 59//34 18//38 +f 15//36 60//33 14//35 +f 23//42 17//39 21//43 +f 21//43 24//10 22//6 +f 60//33 18//38 59//34 +f 2//5 59//34 22//6 +f 59//34 23//42 22//6 +f 24//10 1//4 22//6 +f 24//10 4//8 1//4 +f 25//41 16//37 12//32 +f 19//40 24//10 21//43 +f 17//39 19//40 21//43 +f 19//40 25//41 26//11 +f 26//11 24//10 19//40 +f 26//11 25//41 13//9 +f 13//9 25//41 12//32 +f 49//19 46//44 55//22 +f 8//18 55//22 50//45 +f 49//19 27//46 46//44 +f 31//47 29//48 57//49 +f 29//48 44//50 57//49 +f 52//51 29//48 31//47 +f 28//52 52//51 31//47 +f 31//47 64//53 63//54 +f 30//55 28//52 63//54 +f 28//52 31//47 63//54 +f 31//47 57//49 64//53 +f 34//56 56//57 32//58 +f 56//57 29//48 35//59 +f 52//51 30//55 33//60 +f 35//59 29//48 52//51 +f 50//45 34//56 32//58 +f 33//60 30//55 47//16 +f 35//59 52//51 33//60 +f 56//57 35//59 32//58 +f 27//46 49//19 42//26 +f 41//61 61//31 45//62 +f 41//61 43//63 42//26 +f 40//64 61//31 58//15 +f 42//26 43//63 27//46 +f 38//28 58//15 61//31 +f 38//28 36//13 58//15 +f 39//25 48//24 36//13 +f 51//20 54//17 39//25 +f 8//18 54//17 51//20 +f 11//29 61//31 41//61 +f 57//49 44//50 62//65 +f 65//66 46//44 27//46 +f 64//53 62//65 45//62 +f 65//66 43//63 62//65 +f 65//66 29//48 56//57 +f 64//53 40//64 66//14 +f 62//65 64//53 57//49 +f 65//66 56//57 46//44 +f 65//66 44//50 29//48 +f 41//61 45//62 43//63 +f 65//66 62//65 44//50 +f 45//62 40//64 64//53 +f 40//64 58//15 66//14 +f 62//65 43//63 45//62 +f 65//66 27//46 43//63 +f 46//44 56//57 55//22 +f 50//45 47//16 8//18 +f 54//17 47//16 37//23 +f 35//59 33//60 32//58 +f 47//16 30//55 37//23 +f 55//22 56//57 34//56 +f 33//60 47//16 32//58 +f 50//45 55//22 34//56 +f 30//55 52//51 28//52 +f 47//16 50//45 32//58 +f 64//53 66//14 63//54 +f 63//54 48//24 30//55 +f 53//30 41//61 42//26 +f 36//13 48//24 63//54 +f 61//31 40//64 45//62 +f 11//29 41//61 53//30 +f 63//54 66//14 36//13 +f 37//23 30//55 48//24 +o 90_45_15 +v -0.050272 -3.939482 -10.049061 +v -1.433965 -2.170591 29.739195 +v -3.860821 -0.128934 -10.049061 +v -2.091930 1.254762 29.739195 +v 3.760278 -0.128934 -10.049061 +v 1.991387 -1.512626 29.739195 +v -0.050272 3.681615 -10.049061 +v 1.333422 1.912727 29.739195 +vn -0.2144 -0.9761 0.0352 +vn -0.2532 -0.9668 0.0352 +vn -0.9668 0.2532 0.0352 +vn -0.9761 0.2144 0.0352 +vn 0.2532 0.9668 0.0352 +vn 0.2144 0.9761 0.0352 +vn 0.9668 -0.2532 0.0352 +vn 0.9761 -0.2144 0.0352 +s 1 +f 67//67 68//68 70//69 69//70 +f 69//70 70//69 74//71 73//72 +f 73//72 74//71 72//73 71//74 +f 71//74 72//73 68//68 67//67 diff --git a/assets/voxygen/lod/palm.obj b/assets/voxygen/lod/palm.obj new file mode 100644 index 0000000..00b7fdc --- /dev/null +++ b/assets/voxygen/lod/palm.obj @@ -0,0 +1,200 @@ +# Blender 4.0.2 +# www.blender.org +o 160_82_42 +v -0.919414 1.349854 10.281850 +v -0.489924 2.782932 10.145235 +v 0.948905 2.357320 10.162204 +v 0.525314 0.920656 10.299605 +v 0.889636 0.104263 29.224571 +v 0.624221 -0.356324 -10.116314 +v 0.011736 -1.131075 29.429043 +v 0.621322 -2.459650 -10.016623 +v -0.273341 0.981983 29.150354 +v -1.434110 -0.329435 -10.114676 +v -1.222889 -0.181051 29.365112 +v -1.504573 -2.416622 -10.017043 +v 1.099530 1.670022 19.683743 +v 0.918416 1.402216 0.008311 +v 0.163595 0.448529 19.884789 +v 0.393514 -0.166100 0.072250 +v -0.489489 2.417486 19.647490 +v -0.855076 0.991597 19.830534 +v -1.088647 1.825367 -0.018493 +v -1.086584 -0.122608 0.096726 +vn 0.5974 -0.7908 0.1329 +vn 0.4612 -0.8869 0.0270 +vn -0.8683 -0.4945 0.0394 +vn -0.7627 -0.6312 0.1407 +vn 0.8278 0.5540 -0.0880 +vn 0.8895 0.4567 -0.0160 +vn 0.2567 -0.9613 -0.0996 +vn 0.1224 -0.9810 -0.1504 +vn -0.9342 -0.3504 -0.0678 +vn -0.9425 -0.3325 -0.0343 +vn -0.3690 0.9249 0.0917 +vn -0.3067 0.9419 0.1368 +vn 0.9982 0.0580 0.0176 +vn 0.9536 0.2987 0.0372 +vn -0.6054 0.7911 -0.0870 +vn -0.4850 0.8745 -0.0060 +vn -0.6874 -0.7020 0.1861 +vn -0.7062 0.6997 -0.1085 +vn 0.8081 0.5775 -0.1160 +vn 0.6129 -0.7714 0.1714 +s 1 +f 16//1 4//2 1//3 20//4 +f 14//5 3//6 4//2 16//1 +f 15//7 7//8 11//9 18//10 +f 17//11 9//12 5//13 13//14 +f 19//15 2//16 3//6 14//5 +f 20//4 1//3 2//16 19//15 +f 13//14 5//13 7//8 15//7 +f 18//10 11//9 9//12 17//11 +f 1//3 18//10 17//11 2//16 +f 3//6 13//14 15//7 4//2 +f 12//17 20//4 19//15 10//18 +f 10//18 19//15 14//5 6//19 +f 2//16 17//11 13//14 3//6 +f 4//2 15//7 18//10 1//3 +f 6//19 14//5 16//1 8//20 +f 8//20 16//1 20//4 12//17 +o 58_130_38 +v -0.721918 -2.684080 26.717552 +v 2.257181 -6.110851 27.873299 +v 2.916924 -2.042044 25.740051 +v 2.436623 -4.108751 17.380844 +v 6.092314 -1.083240 29.647280 +v 3.046194 2.648655 26.567511 +v 7.678934 0.788015 16.489918 +v 3.581766 5.346832 28.773069 +v 0.117434 3.494104 26.539745 +v 3.337425 7.655005 21.334608 +v -2.544019 3.769528 29.351534 +v -2.578448 2.096032 26.900473 +v -4.501637 6.145175 18.896412 +v -5.658333 0.859497 30.853785 +v -3.083849 -0.884657 27.920103 +v -6.648013 1.637177 17.758200 +v -3.939069 -2.878215 28.802282 +v -2.762223 -4.080061 17.526333 +v 0.000000 -0.300725 31.903349 +vn -0.7681 -0.6309 0.1098 +vn -0.7230 -0.6762 -0.1414 +vn -0.7678 -0.6278 0.1279 +vn 0.1826 -0.9785 0.0955 +vn 0.1778 -0.9795 0.0943 +vn -0.0279 -0.9653 0.2595 +vn 0.9766 -0.0477 0.2099 +vn 0.9857 -0.1678 -0.0152 +vn 0.9769 -0.0516 0.2073 +vn -0.2268 0.9484 -0.2215 +vn 0.3822 -0.9202 -0.0848 +vn 0.9563 -0.2735 0.1033 +vn 0.9537 -0.2798 0.1105 +vn 0.8734 -0.4002 0.2774 +vn 0.5106 0.7558 0.4100 +vn 0.6823 0.7079 0.1829 +vn 0.5135 0.7543 0.4091 +vn -0.8968 0.1007 -0.4309 +vn 0.9880 -0.1353 -0.0744 +vn 0.4425 0.8298 0.3401 +vn 0.4421 0.8319 0.3353 +vn 0.5761 0.6613 0.4805 +vn -0.6085 0.7092 0.3559 +vn -0.5799 0.7725 0.2588 +vn -0.6075 0.7121 0.3519 +vn -0.1965 -0.7030 -0.6835 +vn 0.2719 0.9481 0.1645 +vn -0.0866 0.9669 0.2399 +vn -0.0776 0.9676 0.2401 +vn 0.1179 0.9179 0.3790 +vn -0.9365 -0.2840 0.2058 +vn -0.9727 -0.1851 0.1401 +vn -0.9337 -0.2883 0.2122 +vn 0.3493 -0.7996 -0.4885 +vn -0.2834 0.9558 0.0782 +vn -0.8738 0.4522 0.1791 +vn -0.8660 0.4585 0.1995 +vn -0.7122 0.5161 0.4758 +vn -0.4088 -0.8960 0.1734 +vn -0.5657 -0.8246 -0.0062 +vn -0.4184 -0.8925 0.1685 +vn 0.8824 -0.2792 -0.3788 +vn -0.9308 0.3403 -0.1334 +vn 0.2171 -0.9446 0.2461 +vn 0.1365 -0.9835 0.1191 +vn 0.2188 -0.9427 0.2520 +vn 0.5087 0.8272 -0.2386 +vn -0.7615 -0.5422 0.3552 +vn 0.9091 0.0681 0.4110 +vn -0.2576 0.8911 -0.3737 +vn 0.3141 0.7435 0.5903 +vn -0.8874 0.1037 -0.4493 +vn -0.6274 0.6421 0.4406 +vn -0.2236 -0.7933 -0.5662 +vn -0.8834 -0.3812 0.2727 +vn 0.3292 -0.7742 -0.5406 +vn -0.2475 -0.9126 0.3254 +vn 0.7715 -0.3191 -0.5505 +vn 0.2905 -0.8842 0.3659 +vn 0.3995 0.8106 -0.4282 +s 1 +f 21//21 24//22 22//23 +f 23//24 25//25 39//26 +f 22//27 24//28 23//29 +s 0 +f 23//30 24//30 21//30 +s 1 +f 23//24 27//31 25//25 +f 26//32 28//33 39//34 +f 25//35 27//36 26//37 +s 0 +f 26//38 27//38 23//38 +s 1 +f 26//32 30//39 28//33 +f 29//40 31//41 39//42 +f 28//43 30//44 29//45 +s 0 +f 29//46 30//46 26//46 +s 1 +f 29//40 33//47 31//41 +f 32//48 34//49 39//50 +f 31//51 33//52 32//53 +s 0 +f 32//54 33//54 29//54 +s 1 +f 32//48 36//55 34//49 +f 35//56 37//57 39//58 +f 34//59 36//60 35//61 +s 0 +f 35//62 36//62 32//62 +s 1 +f 35//56 38//63 37//57 +f 37//64 38//65 21//66 +s 0 +f 21//67 38//67 35//67 +s 1 +f 21//21 22//23 39//68 +f 22//27 23//29 39//69 +s 0 +f 23//70 21//70 39//70 +s 1 +f 25//35 26//37 39//71 +s 0 +f 26//72 23//72 39//72 +s 1 +f 28//43 29//45 39//73 +s 0 +f 29//74 26//74 39//74 +s 1 +f 31//51 32//53 39//75 +s 0 +f 32//76 29//76 39//76 +s 1 +f 34//59 35//61 39//77 +s 0 +f 35//78 32//78 39//78 +s 1 +f 37//64 21//66 39//79 +s 0 +f 21//80 35//80 39//80 diff --git a/assets/voxygen/lod/pine.obj b/assets/voxygen/lod/pine.obj new file mode 100644 index 0000000..f63c40c --- /dev/null +++ b/assets/voxygen/lod/pine.obj @@ -0,0 +1,242 @@ +# Blender 4.0.2 +# www.blender.org +o InstCol +v 10.664930 15.818952 10.534421 +v -1.336727 -19.899519 8.206949 +v -3.675439 1.285523 10.597014 +v -0.152907 -0.043443 16.915745 +v 17.994722 -1.736589 12.314419 +v -17.179281 -7.876914 9.986951 +v -0.589734 3.642251 12.377014 +v -0.105266 0.107738 18.695745 +v 6.683285 -15.773327 14.094419 +v -14.322474 10.750846 11.766951 +v 2.767390 2.136742 14.157015 +v 0.042184 0.136356 20.475744 +v -10.119018 -12.693047 15.874419 +v 2.484242 16.787043 13.546952 +v 3.030078 -1.339754 15.937015 +v 0.132638 0.026466 22.255745 +v -15.144354 2.694113 17.654421 +v 15.105166 5.514910 15.326950 +v 0.252999 -3.129196 17.717014 +v 0.081971 -0.098524 24.035744 +v -4.597950 13.831700 19.434422 +v 11.417980 -10.090331 17.106949 +v -2.492171 -1.624467 19.497013 +v -0.045031 -0.112790 25.815744 +v 9.443863 10.078860 21.214420 +v -3.246275 -14.069324 18.886950 +v -2.479033 1.341948 21.277014 +v -0.114291 -0.013449 27.595745 +v 12.661834 -3.312796 22.994419 +v -13.185709 -3.652344 20.666950 +v -0.002214 2.671193 23.057014 +v -0.062835 0.089123 29.375744 +v 2.961050 -12.043391 24.774418 +v -8.999360 9.332995 22.446949 +v 2.223980 1.208654 24.837013 +v 0.045849 0.092603 31.155743 +v -8.693814 -7.907465 26.554419 +v 3.708154 11.712572 24.226950 +v 2.011520 -1.306417 26.617012 +v 0.097851 0.003647 32.935745 +v -10.514297 3.669050 28.334419 +v 11.431319 2.202869 26.006950 +v -0.179403 -2.265723 28.397015 +v 0.047248 -0.079858 34.715744 +v -1.694075 10.415545 30.114420 +v 6.999411 -8.526525 27.786949 +v -1.968291 -0.874190 30.177013 +v -0.045169 -0.075434 36.495743 +v 7.910300 6.116693 31.894421 +v -3.939950 -9.682352 29.566952 +v -1.617405 1.244546 31.957016 +v -0.083237 0.003544 38.275745 +v 8.668691 -3.825466 33.674423 +v -9.844961 -1.092569 31.346952 +v 0.305928 1.909492 33.737015 +v -0.034651 0.070933 40.055748 +v 0.729970 -8.948908 35.454422 +v -5.357882 7.706781 33.126953 +v 1.728734 0.607860 35.517017 +v 0.043433 0.060909 41.835747 +v -7.124227 -4.651031 37.234421 +v 3.998768 7.944687 34.906952 +v 1.287341 -1.165332 37.297016 +v 0.070360 -0.008659 43.615746 +v -7.092721 3.832870 39.014423 +v 8.424145 0.258520 36.686954 +v -0.389059 -1.598777 39.077019 +v -0.011796 7.639544 40.794426 +v 4.021257 -6.900122 38.466953 +v -1.507475 -0.398238 40.857018 +vn 0.7680 -0.2951 0.5684 +vn -0.8767 -0.1484 0.4575 +vn -0.6242 0.6180 0.4780 +vn -0.1056 0.1000 -0.9894 +vn 0.1086 -0.8296 0.5477 +vn -0.5544 0.7075 0.4383 +vn 0.2485 0.8534 0.4583 +vn 0.0395 0.1481 -0.9882 +vn -0.6881 -0.4987 0.5272 +vn 0.3611 0.8329 0.4194 +vn 0.8781 0.1904 0.4390 +vn 0.1571 0.0378 -0.9869 +vn -0.7775 0.3724 0.5068 +vn 0.9125 0.0804 0.4011 +vn 0.5919 -0.6878 0.4201 +vn 0.1139 -0.1265 -0.9854 +vn -0.0439 0.8725 0.4866 +vn 0.5099 -0.7702 0.3832 +vn -0.3254 -0.8560 0.4018 +vn -0.0599 -0.1690 -0.9838 +vn 0.7552 0.4602 0.4668 +vn -0.4372 -0.8216 0.3659 +vn -0.9151 -0.1231 0.3839 +vn -0.1866 -0.0294 -0.9820 +vn 0.7732 -0.4495 0.4473 +vn -0.9371 -0.0075 0.3491 +vn -0.5487 0.7514 0.3665 +vn -0.1209 0.1580 -0.9800 +vn -0.0267 -0.9032 0.4283 +vn -0.4562 0.8253 0.3329 +vn 0.4017 0.8464 0.3497 +vn 0.0855 0.1912 -0.9778 +vn -0.8144 -0.4110 0.4097 +vn 0.5108 0.7990 0.3172 +vn 0.9414 0.0508 0.3335 +vn 0.2199 0.0168 -0.9754 +vn -0.7561 0.5244 0.3916 +vn 0.9508 -0.0684 0.3021 +vn 0.4963 -0.8079 0.3178 +vn 0.1259 -0.1950 -0.9727 +vn 0.1013 0.9219 0.3740 +vn 0.3950 -0.8725 0.2877 +vn -0.4760 -0.8257 0.3027 +vn -0.1172 -0.2143 -0.9697 +vn 0.8648 0.3531 0.3570 +vn -0.5811 -0.7664 0.2737 +vn -0.9572 0.0248 0.2882 +vn -0.2568 0.0009 -0.9665 +vn 0.7274 -0.5958 0.3405 +vn -0.9544 0.1459 0.2604 +vn -0.4364 0.8569 0.2743 +vn -0.1279 0.2378 -0.9629 +vn -0.1779 -0.9290 0.3246 +vn -0.3279 0.9117 0.2476 +vn 0.5473 0.7952 0.2609 +vn 0.1556 0.2373 -0.9589 +vn -0.9063 -0.2881 0.3092 +vn 0.6471 0.7252 0.2354 +vn 0.9633 -0.1023 0.2481 +vn 0.2971 -0.0248 -0.9545 +vn -0.6887 0.6626 0.2944 +vn 0.9487 -0.2237 0.2237 +vn 0.3705 -0.8984 0.2358 +vn 0.1258 -0.2866 -0.9497 +vn 0.2552 0.9254 0.2803 +vn 0.2563 -0.9430 0.2125 +vn -0.6148 -0.7562 0.2241 +vn -0.2015 -0.2595 -0.9445 +vn 0.9389 0.2178 0.2666 +vn 0.9389 0.2177 0.2666 +vn -0.7083 -0.6765 0.2018 +vn -0.9603 0.1804 0.2129 +vn -0.9603 0.1803 0.2129 +vn -0.3400 0.0560 -0.9388 +s 0 +f 1//1 4//1 2//1 +f 2//2 4//2 3//2 +f 1//3 3//3 4//3 +f 3//4 1//4 2//4 +f 5//5 8//5 6//5 +f 6//6 8//6 7//6 +f 5//7 7//7 8//7 +f 7//8 5//8 6//8 +f 9//9 12//9 10//9 +f 10//10 12//10 11//10 +f 9//11 11//11 12//11 +f 11//12 9//12 10//12 +f 13//13 16//13 14//13 +f 14//14 16//14 15//14 +f 13//15 15//15 16//15 +f 15//16 13//16 14//16 +f 17//17 20//17 18//17 +f 18//18 20//18 19//18 +f 17//19 19//19 20//19 +f 19//20 17//20 18//20 +f 21//21 24//21 22//21 +f 22//22 24//22 23//22 +f 21//23 23//23 24//23 +f 23//24 21//24 22//24 +f 25//25 28//25 26//25 +f 26//26 28//26 27//26 +f 25//27 27//27 28//27 +f 27//28 25//28 26//28 +f 29//29 32//29 30//29 +f 30//30 32//30 31//30 +f 29//31 31//31 32//31 +f 31//32 29//32 30//32 +f 33//33 36//33 34//33 +f 34//34 36//34 35//34 +f 33//35 35//35 36//35 +f 35//36 33//36 34//36 +f 37//37 40//37 38//37 +f 38//38 40//38 39//38 +f 37//39 39//39 40//39 +f 39//40 37//40 38//40 +f 41//41 44//41 42//41 +f 42//42 44//42 43//42 +f 41//43 43//43 44//43 +f 43//44 41//44 42//44 +f 45//45 48//45 46//45 +f 46//46 48//46 47//46 +f 45//47 47//47 48//47 +f 47//48 45//48 46//48 +f 49//49 52//49 50//49 +f 50//50 52//50 51//50 +f 49//51 51//51 52//51 +f 51//52 49//52 50//52 +f 53//53 56//53 54//53 +f 54//54 56//54 55//54 +f 53//55 55//55 56//55 +f 55//56 53//56 54//56 +f 57//57 60//57 58//57 +f 58//58 60//58 59//58 +f 57//59 59//59 60//59 +f 59//60 57//60 58//60 +f 61//61 64//61 62//61 +f 62//62 64//62 63//62 +f 61//63 63//63 64//63 +f 63//64 61//64 62//64 +f 65//65 64//65 66//65 +f 66//66 64//66 67//66 +f 65//67 67//67 64//67 +f 67//68 65//68 66//68 +f 68//69 64//70 69//70 +f 69//71 64//71 70//71 +f 68//72 70//73 64//72 +f 70//74 68//74 69//74 +o 90_35_15 +v 0.000000 1.777011 -9.856076 +v -1.497607 0.956524 11.832071 +v 1.690037 0.549127 -9.856076 +v 0.446923 1.719891 11.832071 +v 1.044501 -1.437631 -9.856076 +v 1.773821 0.106426 11.832071 +v -1.044501 -1.437631 -9.856076 +v 0.649358 -1.654117 11.832071 +v -1.690037 0.549127 -9.856076 +v -1.372495 -1.128726 11.832071 +vn 0.1268 0.9919 -0.0000 +vn 0.9826 0.1860 -0.0000 +vn 0.4805 -0.8770 -0.0000 +vn -0.6856 -0.7280 -0.0000 +vn -0.9042 0.4271 -0.0000 +s 0 +f 71//75 72//75 74//75 73//75 +f 73//76 74//76 76//76 75//76 +f 75//77 76//77 78//77 77//77 +f 77//78 78//78 80//78 79//78 +f 79//79 80//79 72//79 71//79 diff --git a/assets/voxygen/lod/redwood.obj b/assets/voxygen/lod/redwood.obj new file mode 100644 index 0000000..cc8923c --- /dev/null +++ b/assets/voxygen/lod/redwood.obj @@ -0,0 +1,1330 @@ +# Blender 4.0.2 +# www.blender.org +o InstCol +v 4.844267 -3.994949 33.067001 +v -4.808978 -3.132587 34.559914 +v -0.463221 -30.160589 29.552605 +v -0.247122 3.744925 41.883743 +v -3.637889 -24.197659 29.862419 +v 2.984490 -24.197659 29.862419 +v -0.409186 -25.535200 33.566292 +v -6.101033 -0.317675 35.832954 +v 1.391285 5.408010 37.285503 +v -19.490026 21.942627 32.413570 +v 2.638544 -2.524314 44.411316 +v -13.293418 19.751104 32.715012 +v -18.044525 15.398700 32.715008 +v -16.488863 18.588707 36.318741 +v 4.168282 4.237673 38.524124 +v 2.556123 -4.794270 39.937401 +v 28.404047 -2.932984 35.197201 +v -3.552038 0.076905 46.870548 +v 22.518070 -5.433290 35.490486 +v 23.066154 0.811821 35.490486 +v 24.046631 -2.499219 38.996780 +v -0.205362 -5.779749 41.142529 +v -4.984781 1.759613 42.517593 +v -22.305632 -16.563679 37.905552 +v 2.598876 2.279322 49.263290 +v -19.726109 -10.901458 38.190907 +v -16.014868 -15.742120 38.190907 +v -18.894398 -14.011066 41.602398 +v -3.651286 4.281550 43.690144 +v 4.732695 2.013729 45.028030 +v 5.116678 26.543180 40.540680 +v -0.366503 -3.343309 51.591339 +v 6.987409 20.785589 40.818333 +v 1.143432 21.819309 40.818329 +v 4.346993 22.469898 44.137585 +v 5.433486 -0.671999 46.168873 +v -2.071928 -4.555166 47.470589 +v 13.774004 -22.405754 43.104572 +v -1.934388 2.639475 53.856441 +v 8.647836 -19.504566 43.374706 +v 13.519883 -16.405373 43.374706 +v 11.649128 -18.977594 46.604221 +v -4.339830 -3.088917 48.580585 +v -1.507326 4.629752 49.847107 +v -24.607594 7.021974 45.599133 +v 3.122509 -0.622312 56.060307 +v -19.023176 8.309621 45.861965 +v -20.481667 2.884119 45.861965 +v -20.830061 5.959023 49.004158 +v 1.083400 5.068344 50.927097 +v 4.124184 -2.330878 52.159374 +v 22.269299 11.134978 48.026257 +v -2.649208 -1.605728 58.204578 +v 19.109133 6.540951 48.281982 +v 16.589718 11.391942 48.281979 +v 18.860575 9.414879 51.339222 +v 2.553768 -4.348232 53.210159 +v -4.490757 -1.038275 54.409115 +v -8.658527 -22.624573 50.387745 +v 0.845280 2.893133 60.290878 +v -9.410641 -17.251722 50.636555 +v -4.414929 -19.076153 50.636555 +v -7.343495 -19.150211 53.611134 +v -4.689948 1.441159 55.431492 +v 2.539414 3.696339 56.598038 +v -8.657583 21.922220 52.685390 +v 1.294993 -2.631167 62.320770 +v -4.586812 18.561871 52.927479 +v -9.369963 16.587461 52.927479 +v -7.317589 18.565327 55.821629 +v 4.311871 2.048426 57.592773 +v 0.607456 -4.320843 58.727772 +v 20.619081 -10.037716 54.920921 +v -2.658364 1.036582 64.295776 +v 15.490067 -10.302312 55.156460 +v 17.624020 -5.742192 55.156460 +v 17.451485 -8.510050 57.972363 +v -1.747215 -4.303483 59.695614 +v -3.275602 2.700678 60.799923 +v -21.389874 -6.350028 57.095997 +v 2.588444 1.003472 66.217384 +v -17.884050 -2.789272 57.325169 +v -16.417986 -7.463341 57.325165 +v -18.113314 -5.364194 60.064934 +v -1.574876 4.235776 61.741596 +v 4.124961 0.215261 62.816055 +v 11.172361 18.613714 59.212273 +v -1.197548 -2.421116 68.087036 +v 10.997396 13.754993 59.435246 +v 6.873669 16.144783 59.435246 +v 9.469568 15.753005 62.100941 +v 3.913711 -2.003831 63.732269 +v -2.817926 -2.865468 64.777672 +v 4.217997 -20.696856 61.271328 +v -0.732086 2.524050 69.906143 +v 1.150242 -17.096058 61.488274 +v 5.679371 -16.100348 61.488274 +v 3.559500 -17.525368 64.081886 +v -4.124816 -1.134580 65.669106 +v 0.138388 3.907798 66.686249 +v -16.628674 12.076416 63.274708 +v 2.184071 -1.329687 71.676064 +v -12.061228 11.509299 63.485790 +v -14.656166 7.818280 63.485786 +v -14.071861 10.233870 66.009277 +v 2.213578 3.524926 67.553589 +v 2.469002 -2.894531 68.543228 +v 19.866873 2.264798 65.223930 +v -2.440854 -0.481468 73.398132 +v 16.217314 -0.330181 65.429298 +v 15.653169 4.023337 65.429298 +v 16.821560 1.906295 67.884560 +v 0.728560 -3.983717 69.387115 +v -3.673730 0.453938 70.349998 +v -12.764677 -14.681880 67.120438 +v 1.434690 1.949617 75.073639 +v -11.851853 -10.421569 67.320259 +v -8.585869 -13.174154 67.320259 +v -10.815488 -12.423217 69.709137 +v -3.140922 2.379221 71.171074 +v 2.933969 2.088805 72.107918 +v -0.491554 18.922544 68.965675 +v 0.252022 -2.341633 76.703842 +v 1.653547 15.266127 69.160095 +v -2.498648 15.094427 69.160095 +v -0.405512 16.021049 71.484390 +v 3.817063 0.357370 72.906792 +v -0.732130 -3.426857 73.818306 +v 12.789034 -13.252581 70.761032 +v -1.719819 1.514330 78.289970 +v 8.846976 -12.039167 70.950188 +v 11.713049 -9.187052 70.950188 +v 10.820365 -11.227504 73.211639 +v -2.503636 -2.765062 74.595581 +v -1.726993 2.939717 75.482452 +v -17.885242 1.102538 72.507828 +v 2.229085 0.043884 79.833214 +v -14.259595 2.822823 72.691879 +v -14.441322 -1.107039 72.691879 +v -15.141923 0.943545 74.892181 +v -0.021108 3.629205 76.238716 +v 3.171036 -0.974020 77.101608 +v 13.556047 10.963667 74.207413 +v -1.570404 -1.496496 81.334732 +v 12.085506 7.346605 74.386482 +v 9.633074 10.285452 74.386482 +v 11.483404 9.274749 76.527298 +v 2.400328 -2.589834 77.837418 +v -2.915182 -1.385294 78.676979 +v -2.519959 -16.775085 75.861031 +v 0.143094 2.105748 82.795654 +v -3.842175 -13.213609 76.035263 +v -0.151231 -13.710228 76.035263 +v -2.142980 -14.201203 78.118195 +v -3.424208 0.280473 79.392891 +v 1.180967 2.909793 80.209763 +v -9.217161 13.691177 77.469948 +v 1.281266 -1.604775 84.217079 +v -5.927862 12.005054 77.639473 +v -8.902257 9.935558 77.639473 +v -7.795995 11.596830 79.666084 +v 2.640945 2.049263 80.906319 +v 1.065102 -2.863741 81.701096 +v 15.610871 -3.764728 79.035370 +v -1.973951 0.309238 85.600067 +v 12.142858 -4.716864 79.200302 +v 12.916656 -1.277289 79.200302 +v 13.214819 -3.196204 81.172127 +v -0.547897 -3.205905 82.378822 +v -2.646293 1.354529 83.152115 +v -13.674052 -7.558942 80.558456 +v 1.619387 1.075478 86.945671 +v -11.811755 -4.596577 80.718933 +v -10.106322 -7.572801 80.718933 +v -11.581399 -6.392071 82.637444 +v -1.713955 2.660115 83.811516 +v 2.788742 0.767434 84.563896 +v 4.842242 14.409986 82.040367 +v -0.454997 -1.835885 88.254883 +v 5.453115 11.060738 82.196503 +v 2.273529 12.075122 82.196503 +v 4.107803 12.197486 84.063141 +v 2.977918 -0.781994 85.205475 +v -1.496384 -2.383415 85.937515 +v 5.996619 -13.520642 83.482216 +v -0.880193 1.616162 89.528702 +v 3.357143 -11.519262 83.634125 +v 6.304962 -10.157306 83.634125 +v 5.069414 -11.450628 85.450294 +v -2.650431 -1.396137 86.561737 +v -0.492919 2.693405 87.273987 +v -13.188325 5.759010 84.885071 +v 1.693634 -0.580998 90.768082 +v -9.979319 6.057891 85.032875 +v -11.199065 3.143394 85.032875 +v -11.162650 4.883300 86.799942 +v 0.983897 2.743571 87.881332 +v 2.123785 -1.608374 88.574326 +v 13.246678 4.536020 86.250000 +v -1.596946 -0.696272 91.973946 +v 11.140867 2.212549 86.393814 +v 10.100467 5.105155 86.393814 +v 11.217853 3.832956 88.113098 +v 1.097239 -2.614967 89.165253 +v -2.580769 -0.241906 89.839508 +v -6.522432 -11.960357 87.578026 +v 0.688061 1.549086 93.147209 +v -6.538701 -8.909429 87.717949 +v -3.891187 -10.300899 87.717949 +v -5.528960 -10.122559 89.390747 +v -2.505852 1.154930 90.414452 +v 1.692510 1.869704 91.070480 +v -3.181292 12.867467 88.870140 +v 0.524432 -1.563575 94.288750 +v -1.164468 10.689325 89.006279 +v -3.978392 9.947593 89.006279 +v -2.686191 10.896034 90.633850 +v 2.556800 0.818330 91.629883 +v 0.014527 -2.453746 92.268166 +v 10.739175 -7.140706 90.127319 +v -1.403899 0.777091 95.399422 +v 7.860707 -6.903546 90.259781 +v 9.392021 -4.522018 90.259781 +v 9.088294 -6.051730 91.843346 +v -1.296533 -2.267491 92.812447 +v -1.623121 1.750852 93.433479 +v -12.397724 -1.935096 91.350510 +v 1.517896 0.365173 96.480080 +v -10.176752 -0.213436 91.479393 +v -9.710162 -2.928442 91.479393 +v -10.497627 -1.631361 93.020142 +v -0.560112 2.478891 93.963036 +v 2.315155 -0.189357 94.567276 +v 7.622703 9.536420 92.540634 +v -0.849019 -1.259586 97.531502 +v 7.160825 6.841562 92.666023 +v 5.041703 8.482740 92.666023 +v 6.459133 8.069715 94.165123 +v 2.031004 -1.410313 95.082527 +v -1.785450 -1.385728 95.670425 +v 0.798786 -11.851580 93.698570 +v -0.218753 1.461668 98.554504 +v -0.640982 -9.614643 93.820580 +v 1.957971 -9.399334 93.820580 +v 0.669610 -10.034587 95.279137 +v -2.384036 -0.323024 96.171738 +v 0.370169 2.167614 96.743744 +v -8.362282 7.977726 94.825203 +v 1.117554 -0.904875 99.549843 +v -5.859171 7.319128 94.943909 +v -7.582237 5.456558 94.943909 +v -7.075431 6.759055 96.363037 +v 1.498052 1.798602 97.231506 +v 1.159010 -1.798399 97.788048 +v 11.242514 -0.227562 95.921387 +v -1.396512 -0.085297 100.518280 +v 9.013853 -1.400174 96.036880 +v 9.025906 1.068540 96.036880 +v 9.518342 -0.199001 97.417641 +v 0.107305 -2.274933 98.262619 +v -2.013500 0.528500 98.804115 +v -8.215336 -7.225618 96.987915 +v 0.945809 0.979022 101.460533 +v -7.387095 -4.919612 97.100288 +v -5.773237 -6.698669 97.100288 +v -6.959589 -6.112936 98.443718 +v -1.572164 1.561590 99.265862 +v 1.791862 0.944165 99.792709 +v 1.145047 10.583234 98.025620 +v -0.035149 -1.323991 102.377304 +v 2.066408 8.384488 98.134956 +v -0.260670 8.600171 98.134956 +v 0.975416 8.959650 99.442055 +v 2.154207 -0.087064 100.241966 +v -0.665043 -1.855032 100.754570 +v 6.134058 -8.345308 99.035263 +v -0.844980 0.972978 103.269287 +v 4.027968 -7.373400 99.141640 +v 5.839242 -5.998720 99.141640 +v 5.188694 -7.069011 100.413406 +v -1.602752 -1.353337 101.191689 +v -0.742087 1.767946 101.690437 +v -9.885565 1.955731 100.017601 +v 1.245648 -0.142700 104.137154 +v -7.735825 2.642631 100.121109 +v -8.131814 0.465973 100.121109 +v -8.368513 1.661392 101.358482 +v 0.260383 2.024302 102.115723 +v 1.694305 -0.780660 102.600990 +v 8.377551 5.093956 100.973389 +v -0.987489 -0.716293 104.981552 +v 7.286705 3.188285 101.074089 +v 6.140244 5.010145 101.074089 +v 7.095721 4.308077 102.278015 +vn -0.9194 -0.2935 0.2620 +vn -0.5192 -0.5317 0.6691 +vn -0.8239 -0.1124 0.5554 +vn -0.0000 0.0519 -0.9987 +vn -0.0377 0.7401 -0.6715 +vn 0.6984 -0.4208 0.5790 +vn 0.8585 0.0241 0.5123 +vn 0.5180 -0.2348 0.8226 +vn 0.7807 -0.4358 0.4479 +vn 0.5592 -0.5307 0.6369 +vn 0.7874 -0.5120 0.3433 +vn 0.4707 -0.6369 0.6106 +vn -0.0798 0.1888 -0.9788 +vn -0.9253 -0.1500 0.3484 +vn -0.7573 -0.4929 0.4284 +vn -0.5261 -0.1296 0.8405 +vn -0.4312 -0.2549 0.8655 +vn 0.4797 0.8374 0.2620 +vn 0.0237 0.7428 0.6691 +vn 0.5317 0.6394 0.5554 +vn 0.0350 -0.0383 -0.9987 +vn 0.5277 -0.5202 -0.6715 +vn -0.7992 -0.1615 0.5790 +vn -0.6168 -0.5977 0.5123 +vn -0.5405 -0.1767 0.8226 +vn -0.8700 -0.2060 0.4479 +vn -0.7708 0.0137 0.6369 +vn -0.9265 -0.1544 0.3433 +vn -0.7773 0.1516 0.6106 +vn 0.1863 -0.0853 -0.9788 +vn 0.5809 0.7356 0.3484 +vn 0.2254 0.8750 0.4284 +vn 0.3004 0.4509 0.8405 +vn 0.1458 0.4792 0.8655 +vn 0.2120 -0.9415 0.2620 +vn 0.4843 -0.5637 0.6691 +vn 0.0399 -0.8306 0.5554 +vn -0.0517 0.0045 -0.9987 +vn -0.7405 0.0271 -0.6715 +vn 0.4802 0.6589 0.5790 +vn 0.0511 0.8573 0.5123 +vn 0.2792 0.4954 0.8226 +vn 0.5024 0.7396 0.4479 +vn 0.5776 0.5106 0.6369 +vn 0.5789 0.7397 0.3433 +vn 0.6756 0.4132 0.6106 +vn -0.1950 -0.0630 -0.9788 +vn 0.0686 -0.9348 0.3484 +vn 0.4248 -0.7975 0.4284 +vn 0.0831 -0.5354 0.8405 +vn 0.2162 -0.4518 0.8655 +vn -0.7923 0.5511 0.2620 +vn -0.7378 0.0885 0.6691 +vn -0.5905 0.5855 0.5554 +vn 0.0412 0.0316 -0.9987 +vn 0.5644 0.4802 -0.6715 +vn 0.0910 -0.8102 0.5790 +vn 0.5414 -0.6666 0.5123 +vn 0.1288 -0.5539 0.8226 +vn 0.1291 -0.8847 0.4479 +vn -0.0810 -0.7667 0.6369 +vn 0.0728 -0.9364 0.3433 +vn -0.2190 -0.7611 0.6106 +vn 0.1013 0.1782 -0.9788 +vn -0.6820 0.6430 0.3484 +vn -0.8520 0.3011 0.4284 +vn -0.4229 0.3387 0.8405 +vn -0.4646 0.1871 0.8655 +vn 0.9564 0.1288 0.2620 +vn 0.6039 0.4331 0.6691 +vn 0.8309 -0.0329 0.5554 +vn -0.0090 -0.0511 -0.9987 +vn -0.0918 -0.7353 -0.6715 +vn -0.6144 0.5360 0.5790 +vn -0.8496 0.1258 0.5123 +vn -0.4691 0.3214 0.8226 +vn -0.6928 0.5651 0.4479 +vn -0.4582 0.6200 0.6369 +vn -0.6862 0.6413 0.3433 +vn -0.3526 0.7091 0.6106 +vn 0.0457 -0.1998 -0.9788 +vn 0.9373 -0.0134 0.3484 +vn 0.8316 0.3535 0.4284 +vn 0.5406 0.0359 0.8405 +vn 0.4690 0.1759 0.8655 +vn -0.6182 -0.7411 0.2620 +vn -0.1527 -0.7273 0.6691 +vn -0.6349 -0.5370 0.5554 +vn -0.0278 0.0438 -0.9987 +vn -0.4291 0.6042 -0.6715 +vn 0.8151 0.0198 0.5790 +vn 0.7114 0.4811 0.5123 +vn 0.5631 0.0799 0.8226 +vn 0.8926 0.0513 0.4479 +vn 0.7567 -0.1477 0.6369 +vn 0.9392 -0.0094 0.3433 +vn 0.7390 -0.2847 0.6106 +vn -0.1686 0.1164 -0.9788 +vn -0.7002 -0.6232 0.3484 +vn -0.3744 -0.8224 0.4284 +vn -0.3744 -0.3917 0.8405 +vn -0.2270 -0.4465 0.8655 +vn -0.0447 0.9640 0.2620 +vn -0.3787 0.6394 0.6691 +vn 0.1054 0.8249 0.5554 +vn 0.0501 -0.0135 -0.9987 +vn 0.7245 -0.1557 -0.6715 +vn -0.5876 -0.5652 0.5790 +vn -0.1996 -0.8353 0.5123 +vn -0.3612 -0.4392 0.8226 +vn -0.6235 -0.6408 0.4479 +vn -0.6577 -0.4022 0.6369 +vn -0.6989 -0.6275 0.3433 +vn -0.7373 -0.2892 0.6106 +vn 0.2030 0.0280 -0.9788 +vn 0.0953 0.9325 0.3484 +vn -0.2794 0.8593 0.4284 +vn 0.0115 0.5417 0.8405 +vn -0.1342 0.4826 0.8655 +vn 0.6842 -0.6806 0.2620 +vn 0.7111 -0.2157 0.6691 +vn 0.4795 -0.6794 0.5554 +vn -0.0460 -0.0239 -0.9987 +vn -0.6394 -0.3746 -0.6715 +vn 0.0515 0.8137 0.5790 +vn -0.4171 0.7508 0.5123 +vn -0.0304 0.5679 0.8226 +vn 0.0269 0.8937 0.4479 +vn 0.2133 0.7408 0.6369 +vn 0.0914 0.9348 0.3433 +vn 0.3482 0.7113 0.6106 +vn -0.1307 -0.1578 -0.9788 +vn 0.5596 -0.7520 0.3484 +vn 0.7865 -0.4449 0.4284 +vn 0.3575 -0.4072 0.8405 +vn 0.4249 -0.2652 0.8655 +vn -0.9642 0.0397 0.2620 +vn -0.6701 -0.3213 0.6691 +vn -0.8125 0.1771 0.5554 +vn 0.0178 0.0487 -0.9987 +vn 0.2184 0.7081 -0.6715 +vn 0.5117 -0.6348 0.5790 +vn 0.8147 -0.2719 0.5123 +vn 0.4060 -0.3982 0.8226 +vn 0.5838 -0.6772 0.4479 +vn 0.3432 -0.6904 0.6369 +vn 0.5640 -0.7510 0.3433 +vn 0.2237 -0.7597 0.6106 +vn -0.0102 0.2047 -0.9788 +vn -0.9206 0.1765 0.3484 +vn -0.8804 -0.2032 0.4284 +vn -0.5386 0.0588 0.8405 +vn -0.4925 -0.0915 0.8655 +vn 0.7378 0.6220 0.2620 +vn 0.2771 0.6896 0.6691 +vn 0.7187 0.4182 0.5554 +vn 0.0198 -0.0480 -0.9987 +vn 0.3173 -0.6697 -0.6715 +vn -0.8061 0.1225 0.5790 +vn -0.7844 -0.3498 0.5123 +vn -0.5684 0.0194 0.8226 +vn -0.8879 0.1050 0.4479 +vn -0.7194 0.2772 0.6369 +vn -0.9232 0.1728 0.3433 +vn -0.6781 0.4091 0.6106 +vn 0.1458 -0.1440 -0.9788 +vn 0.7980 0.4917 0.3484 +vn 0.5119 0.7446 0.4284 +vn 0.4369 0.3205 0.8405 +vn 0.3013 0.4001 0.8655 +vn -0.1239 -0.9571 0.2620 +vn 0.2615 -0.6956 0.6691 +vn -0.2475 -0.7939 0.5554 +vn -0.0470 0.0220 -0.9987 +vn -0.6863 0.2795 -0.6715 +vn 0.6771 0.4542 0.5790 +vn 0.3421 0.7878 0.5123 +vn 0.4322 0.3696 0.8226 +vn 0.7256 0.5224 0.4479 +vn 0.7177 0.2815 0.6369 +vn 0.7975 0.4962 0.3433 +vn 0.7764 0.1564 0.6106 +vn -0.2048 0.0077 -0.9788 +vn -0.2563 -0.9016 0.3484 +vn 0.1255 -0.8948 0.4284 +vn -0.1056 -0.5314 0.8405 +vn 0.0481 -0.4986 0.8655 +vn -0.5552 0.7894 0.2620 +vn -0.6627 0.3363 0.6691 +vn -0.3538 0.7526 0.5554 +vn 0.0495 0.0155 -0.9987 +vn 0.6949 0.2575 -0.6715 +vn -0.1925 -0.7923 0.5790 +vn 0.2799 -0.8119 0.5123 +vn -0.0690 -0.5645 0.8226 +vn -0.1822 -0.8753 0.4479 +vn -0.3391 -0.6924 0.6369 +vn -0.2529 -0.9046 0.3433 +vn -0.4668 -0.6398 0.6106 +vn 0.1562 0.1326 -0.9788 +vn -0.4201 0.8379 0.3484 +vn -0.6970 0.5751 0.4284 +vn -0.2811 0.4632 0.8405 +vn -0.3723 0.3351 0.8655 +vn 0.9426 -0.2071 0.2620 +vn 0.7158 0.1997 0.6691 +vn 0.7692 -0.3159 0.5554 +vn -0.0260 -0.0449 -0.9987 +vn -0.3384 -0.6592 -0.6715 +vn -0.3933 0.7142 0.5790 +vn -0.7548 0.4096 0.5123 +vn -0.3304 0.4629 0.8226 +vn -0.4569 0.7685 0.4479 +vn -0.2177 0.7396 0.6369 +vn -0.4246 0.8378 0.3433 +vn -0.0879 0.7871 0.6106 +vn -0.0256 -0.2033 -0.9788 +vn 0.8758 -0.3341 0.3484 +vn 0.9024 0.0468 0.4284 +vn 0.5201 -0.1517 0.8405 +vn 0.5009 0.0043 0.8655 +vn -0.8349 -0.4840 0.2620 +vn -0.3929 -0.6308 0.6691 +vn -0.7806 -0.2866 0.5554 +vn -0.0111 0.0507 -0.9987 +vn -0.1958 0.7147 -0.6715 +vn 0.7724 -0.2610 0.5790 +vn 0.8333 0.2079 0.5123 +vn 0.5563 -0.1181 0.8226 +vn 0.8560 -0.2580 0.4479 +vn 0.6601 -0.3983 0.6369 +vn 0.8790 -0.3310 0.3433 +vn 0.5965 -0.5210 0.6106 +vn -0.1184 0.1672 -0.9788 +vn -0.8715 -0.3452 0.3484 +vn -0.6338 -0.6440 0.4284 +vn -0.4860 -0.2395 0.8405 +vn -0.3664 -0.3415 0.8655 +vn 0.2887 0.9209 0.2620 +vn -0.1363 0.7305 0.6691 +vn 0.3820 0.7387 0.5554 +vn 0.0425 -0.0298 -0.9987 +vn 0.6271 -0.3948 -0.6715 +vn -0.7459 -0.3293 0.5790 +vn -0.4740 -0.7161 0.5123 +vn -0.4900 -0.2887 0.8226 +vn -0.8055 -0.3880 0.4479 +vn -0.7558 -0.1522 0.6369 +vn -0.8717 -0.3497 0.3433 +vn -0.7917 -0.0188 0.6106 +vn 0.2003 -0.0433 -0.9788 +vn 0.4094 0.8432 0.3484 +vn 0.0323 0.9030 0.4284 +vn 0.1966 0.5049 0.8405 +vn 0.0395 0.4993 0.8655 +vn 0.4092 -0.8740 0.2620 +vn 0.5940 -0.4466 0.6691 +vn 0.2173 -0.8027 0.5554 +vn -0.0515 -0.0067 -0.9987 +vn -0.7291 -0.1325 -0.6715 +vn 0.3275 0.7467 0.5790 +vn -0.1342 0.8483 0.5123 +vn 0.1663 0.5438 0.8226 +vn 0.3319 0.8302 0.4479 +vn 0.4545 0.6227 0.6369 +vn 0.4066 0.8467 0.3433 +vn 0.5711 0.5487 0.6106 +vn -0.1769 -0.1034 -0.9788 +vn 0.2677 -0.8983 0.3484 +vn 0.5862 -0.6877 0.4284 +vn 0.1961 -0.5051 0.8405 +vn 0.3082 -0.3949 0.8655 +vn -0.8921 0.3681 0.2620 +vn -0.7396 -0.0720 0.6691 +vn -0.7024 0.4451 0.5554 +vn 0.0334 0.0397 -0.9987 +vn 0.4481 0.5902 -0.6715 +vn 0.2629 -0.7718 0.5790 +vn 0.6720 -0.5348 0.5123 +vn 0.2447 -0.5133 0.8226 +vn 0.3161 -0.8363 0.4479 +vn 0.0855 -0.7662 0.6369 +vn 0.2722 -0.8989 0.3433 +vn -0.0505 -0.7904 0.6106 +vn 0.0606 0.1957 -0.9788 +vn -0.8042 0.4816 0.3484 +vn -0.8967 0.1111 0.4284 +vn -0.4858 0.2400 0.8405 +vn -0.4940 0.0830 0.8655 +vn 0.9065 0.3312 0.2620 +vn 0.4968 0.5527 0.6691 +vn 0.8186 0.1463 0.5554 +vn 0.0021 -0.0518 -0.9987 +vn 0.0683 -0.7379 -0.6715 +vn -0.7152 0.3915 0.5790 +vn -0.8568 -0.0595 0.5123 +vn -0.5272 0.2132 0.8226 +vn -0.7980 0.4032 0.4479 +vn -0.5806 0.5072 0.6369 +vn -0.8079 0.4790 0.3433 +vn -0.4966 0.6169 0.6106 +vn 0.0875 -0.1853 -0.9788 +vn 0.9183 0.1881 0.3484 +vn 0.7363 0.5238 0.4284 +vn 0.5203 0.1512 0.8405 +vn 0.4203 0.2725 0.8655 +vn -0.4447 -0.8565 0.2620 +vn 0.0070 -0.7431 0.6691 +vn -0.5048 -0.6608 0.5554 +vn -0.0366 0.0368 -0.9987 +vn -0.5488 0.4980 -0.6715 +vn 0.7918 0.1944 0.5790 +vn 0.5915 0.6226 0.5123 +vn 0.5328 0.1989 0.8226 +vn 0.8608 0.2418 0.4479 +vn 0.7707 0.0182 0.6369 +vn 0.9193 0.1925 0.3433 +vn 0.7829 -0.1194 0.6106 +vn -0.1897 0.0775 -0.9788 +vn -0.5500 -0.7590 0.3484 +vn -0.1891 -0.8836 0.4284 +vn -0.2815 -0.4629 0.8405 +vn -0.1258 -0.4848 0.8655 +vn -0.2507 0.9319 0.2620 +vn -0.5071 0.5432 0.6691 +vn -0.0742 0.8283 0.5554 +vn 0.0518 -0.0024 -0.9987 +vn 0.7410 0.0035 -0.6715 +vn -0.4526 -0.6782 0.5790 +vn -0.0156 -0.8587 0.5123 +vn -0.2585 -0.5066 0.8226 +vn -0.4714 -0.7597 0.4479 +vn -0.5560 -0.5340 0.6369 +vn -0.5478 -0.7629 0.3433 +vn -0.6580 -0.4408 0.6106 +vn 0.1922 0.0710 -0.9788 +vn -0.1071 0.9312 0.3484 +vn -0.4574 0.7793 0.4284 +vn -0.1051 0.5315 0.8405 +vn -0.2347 0.4425 0.8655 +vn 0.8144 -0.5179 0.2620 +vn 0.7409 -0.0580 0.6691 +vn 0.6142 -0.5606 0.5554 +vn -0.0398 -0.0332 -0.9987 +vn -0.5440 -0.5031 -0.6715 +vn -0.1244 0.8058 0.5790 +vn -0.5685 0.6437 0.5123 +vn -0.1516 0.5481 0.8226 +vn -0.1656 0.8786 0.4479 +vn 0.0492 0.7694 0.6369 +vn -0.1114 0.9326 0.3433 +vn 0.1874 0.7695 0.6106 +vn -0.0938 -0.1822 -0.9788 +vn 0.7080 -0.6143 0.3484 +vn 0.8637 -0.2656 0.4284 +vn 0.4365 -0.3209 0.8405 +vn 0.4720 -0.1677 0.8655 +vn -0.9503 -0.1682 0.2620 +vn -0.5855 -0.4577 0.6691 +vn -0.8316 -0.0015 0.5554 +vn 0.0069 0.0514 -0.9987 +vn 0.0613 0.7385 -0.6715 +vn 0.6360 -0.5101 0.5790 +vn 0.8540 -0.0906 0.5123 +vn 0.4820 -0.3018 0.8226 +vn 0.7156 -0.5360 0.4479 +vn 0.4834 -0.6006 0.6369 +vn 0.7121 -0.6124 0.3433 +vn 0.3816 -0.6940 0.6106 +vn -0.0539 0.1977 -0.9788 +vn -0.9370 -0.0253 0.3484 +vn -0.8163 -0.3875 0.4284 +vn -0.5387 -0.0582 0.8405 +vn -0.4613 -0.1951 0.8655 +vn 0.5871 0.7660 0.2620 +vn 0.1225 0.7330 0.6691 +vn 0.6122 0.5628 0.5554 +vn 0.0296 -0.0426 -0.9987 +vn 0.4536 -0.5859 -0.6715 +vn -0.8136 -0.0535 0.5790 +vn -0.6909 -0.5101 0.5123 +vn -0.5593 -0.1031 0.8226 +vn -0.8897 -0.0881 0.4479 +vn -0.7621 0.1163 0.6369 +vn -0.9388 -0.0295 0.3433 +vn -0.7501 0.2539 0.6106 +vn 0.1733 -0.1094 -0.9788 +vn 0.6738 0.6516 0.3484 +vn 0.3401 0.8371 0.4284 +vn 0.3579 0.4068 0.8405 +vn 0.2084 0.4555 0.8655 +vn 0.0845 -0.9614 0.2620 +vn 0.4048 -0.6232 0.6691 +vn -0.0712 -0.8285 0.5554 +vn -0.0506 0.0114 -0.9987 +vn -0.7303 0.1256 -0.6715 +vn 0.5638 0.5890 0.5790 +vn 0.1649 0.8428 0.5123 +vn 0.3428 0.4538 0.8226 +vn 0.5965 0.6660 0.4479 +vn 0.6405 0.4290 0.6369 +vn 0.6723 0.6559 0.3433 +vn 0.7247 0.3195 0.6106 +vn -0.2017 -0.0364 -0.9788 +vn -0.0567 -0.9356 0.3484 +vn 0.3147 -0.8470 0.4284 +vn 0.0109 -0.5417 0.8405 +vn 0.1540 -0.4766 0.8655 +vn -0.7117 0.6518 0.2620 +vn -0.7194 0.1861 0.6691 +vn -0.5071 0.6590 0.5554 +vn 0.0450 0.0258 -0.9987 +vn 0.6234 0.4007 -0.6715 +vn -0.0178 -0.8151 0.5790 +vn 0.4477 -0.7329 0.5123 +vn 0.0538 -0.5661 0.8226 +vn 0.0100 -0.8940 0.4479 +vn -0.1825 -0.7490 0.6369 +vn -0.0527 -0.9378 0.3433 +vn -0.3186 -0.7251 0.6106 +vn 0.1241 0.1631 -0.9788 +vn -0.5902 0.7282 0.3484 +vn -0.8042 0.4120 0.4284 +vn -0.3740 0.3920 0.8405 +vn -0.4355 0.2474 0.8655 +vn 0.9651 0.0001 0.2620 +vn 0.6562 0.3487 0.6691 +vn 0.8191 -0.1434 0.5554 +vn -0.0158 -0.0494 -0.9987 +vn -0.1890 -0.7165 -0.6715 +vn -0.5375 0.6131 0.5790 +vn -0.8252 0.2380 0.5123 +vn -0.4221 0.3811 0.8226 +vn -0.6113 0.6525 0.4479 +vn -0.3714 0.6756 0.6369 +vn -0.5946 0.7271 0.3433 +vn -0.2549 0.7498 0.6106 +vn 0.0186 -0.2041 -0.9788 +vn 0.9271 -0.1383 0.3484 +vn 0.8713 0.2394 0.4284 +vn 0.5406 -0.0365 0.8405 +vn 0.4883 0.1118 0.8655 +vn -0.7115 -0.6520 0.2620 +vn -0.2483 -0.7004 0.6691 +vn -0.7008 -0.4476 0.5554 +vn -0.0218 0.0471 -0.9987 +vn -0.3447 0.6560 -0.6715 +vn 0.8105 -0.0890 0.5790 +vn 0.7692 0.3819 0.5123 +vn 0.5687 0.0041 0.8226 +vn 0.8915 -0.0682 0.4479 +vn 0.7302 -0.2473 0.6369 +vn 0.9296 -0.1345 0.3433 +vn 0.6944 -0.3807 0.6106 +vn -0.1516 0.1379 -0.9788 +vn -0.7770 -0.5243 0.3484 +vn -0.4807 -0.7651 0.4284 +vn -0.4232 -0.3383 0.8405 +vn -0.2845 -0.4122 0.8655 +vn 0.0842 0.9614 0.2620 +vn -0.2900 0.6842 0.6691 +vn 0.2145 0.8034 0.5554 +vn 0.0479 -0.0200 -0.9987 +vn 0.6973 -0.2509 -0.6715 +vn -0.6578 -0.4818 0.5790 +vn -0.3092 -0.8012 0.5123 +vn -0.4166 -0.3872 0.8226 +vn -0.7034 -0.5519 0.4479 +vn -0.7055 -0.3109 0.6369 +vn -0.7763 -0.5287 0.3433 +vn -0.7692 -0.1884 0.6106 +vn 0.2049 0.0007 -0.9788 +vn 0.2188 0.9115 0.3484 +vn -0.1624 0.8889 0.4284 +vn 0.0836 0.5353 0.8405 +vn -0.0687 0.4962 0.8655 +vn 0.5873 -0.7658 0.2620 +vn 0.6760 -0.3086 0.6691 +vn 0.3846 -0.7373 0.5554 +vn -0.0488 -0.0176 -0.9987 +vn -0.6836 -0.2860 -0.6715 +vn 0.1596 0.7996 0.5790 +vn -0.3132 0.7997 0.5123 +vn 0.0456 0.5669 0.8226 +vn 0.1459 0.8821 0.4479 +vn 0.3102 0.7058 0.6369 +vn 0.2153 0.9142 0.3433 +vn 0.4400 0.6585 0.6106 +vn -0.1506 -0.1390 -0.9788 +vn 0.4543 -0.8199 0.3484 +vn 0.7201 -0.5458 0.4284 +vn 0.3000 -0.4512 0.8405 +vn 0.3858 -0.3195 0.8655 +vn -0.9503 0.1680 0.2620 +vn -0.7069 -0.2291 0.6691 +vn -0.7816 0.2839 0.5554 +vn 0.0241 0.0459 -0.9987 +vn 0.3109 0.6727 -0.6715 +vn 0.4224 -0.6974 0.5790 +vn 0.7711 -0.3781 0.5123 +vn 0.3493 -0.4488 0.8226 +vn 0.4883 -0.7490 0.4479 +vn 0.2480 -0.7299 0.6369 +vn 0.4588 -0.8195 0.3433 +vn 0.1204 -0.7828 0.6106 +vn 0.0172 0.2042 -0.9788 +vn -0.8888 0.2976 0.3484 +vn -0.8997 -0.0840 0.4284 +vn -0.5260 0.1301 0.8405 +vn -0.5003 -0.0250 0.8655 +vn 0.8142 0.5181 0.2620 +vn 0.3665 0.6465 0.6691 +vn 0.7681 0.3187 0.5554 +vn 0.0132 -0.0502 -0.9987 +vn 0.2251 -0.7060 -0.6715 +vn -0.7826 0.2288 0.5790 +vn -0.8240 -0.2421 0.5123 +vn -0.5607 0.0950 0.8226 +vn -0.8660 0.2224 0.4479 +vn -0.6760 0.3707 0.6369 +vn -0.8919 0.2944 0.3433 +vn -0.6175 0.4959 0.6106 +vn 0.1253 -0.1622 -0.9788 +vn 0.8565 0.3809 0.3484 +vn 0.6066 0.6697 0.4284 +vn 0.4757 0.2594 0.8405 +vn 0.3520 0.3564 0.8655 +vn -0.2504 -0.9320 0.2620 +vn 0.1664 -0.7243 0.6691 +vn -0.3511 -0.7538 0.5554 +vn -0.0436 0.0281 -0.9987 +vn -0.6429 0.3685 -0.6715 +vn 0.7316 0.3599 0.5790 +vn 0.4441 0.7351 0.5123 +vn 0.4776 0.3087 0.8226 +vn 0.7888 0.4209 0.4479 +vn 0.7488 0.1833 0.6369 +vn 0.8565 0.3854 0.3433 +vn 0.7903 0.0515 0.6106 +vn -0.2019 0.0350 -0.9788 +vn -0.3742 -0.8594 0.3484 +vn 0.0050 -0.9036 0.4284 +vn -0.1756 -0.5126 0.8405 +vn -0.0188 -0.5005 0.8655 +vn -0.4449 0.8564 0.2620 +vn -0.6119 0.4216 0.6691 +vn -0.2503 0.7930 0.5554 +vn 0.0511 0.0088 -0.9987 +vn 0.7230 0.1625 -0.6715 +vn -0.2964 -0.7596 0.5790 +vn 0.1691 -0.8420 0.5123 +vn -0.1437 -0.5502 0.8226 +vn -0.2973 -0.8432 0.4479 +vn -0.4284 -0.6410 0.6369 +vn -0.3712 -0.8628 0.3433 +vn -0.5480 -0.5718 0.6106 +vn 0.1725 0.1106 -0.9788 +vn -0.3046 0.8865 0.3484 +vn -0.6141 0.6629 0.4284 +vn -0.2168 0.4965 0.8405 +vn -0.3242 0.3818 0.8655 +vn 0.9066 -0.3309 0.2620 +vn 0.7360 0.1025 0.6691 +vn 0.7202 -0.4157 0.5554 +vn -0.0318 -0.0410 -0.9987 +vn -0.4233 -0.6082 -0.6715 +vn -0.2945 0.7603 0.5790 +vn -0.6935 0.5066 0.5123 +vn -0.2657 0.5028 0.8226 +vn -0.3504 0.8226 0.4479 +vn -0.1171 0.7620 0.6369 +vn -0.3091 0.8869 0.3433 +vn 0.0178 0.7918 0.6106 +vn -0.0525 -0.1981 -0.9788 +vn 0.8234 -0.4479 0.3484 +vn 0.9006 -0.0740 0.4284 +vn 0.4953 -0.2197 0.8405 +vn 0.4970 -0.0625 0.8655 +vn -0.8920 -0.3684 0.2620 +vn -0.4735 -0.5727 0.6691 +vn -0.8119 -0.1800 0.5554 +vn -0.0043 0.0517 -0.9987 +vn -0.0987 0.7344 -0.6715 +vn 0.7307 -0.3617 0.5790 +vn 0.8536 0.0949 0.5123 +vn 0.5356 -0.1912 0.8226 +vn 0.8140 -0.3699 0.4479 +vn 0.6011 -0.4828 0.6369 +vn 0.8270 -0.4452 0.3433 +vn 0.5217 -0.5958 0.6106 +vn -0.0951 0.1815 -0.9788 +vn -0.9097 -0.2259 0.3484 +vn -0.7140 -0.5538 0.4284 +vn -0.5136 -0.1726 0.8405 +vn -0.4087 -0.2896 0.8655 +vn 0.4089 0.8741 0.2620 +vn -0.0377 0.7422 0.6691 +vn 0.4771 0.6811 0.5554 +vn 0.0381 -0.0352 -0.9987 +vn 0.5689 -0.4749 -0.6715 +vn -0.7831 -0.2269 0.5790 +vn -0.5653 -0.6465 0.5123 +vn -0.5241 -0.2208 0.8226 +vn -0.8501 -0.2771 0.4479 +vn -0.7693 -0.0500 0.6369 +vn -0.9106 -0.2303 0.3433 +vn -0.7872 0.0870 0.6106 +vn 0.1927 -0.0696 -0.9788 +vn 0.5182 0.7811 0.3484 +vn 0.1524 0.8906 0.4284 +vn 0.2622 0.4742 0.8405 +vn 0.1057 0.4896 0.8655 +vn 0.2890 -0.9208 0.2620 +vn 0.5291 -0.5218 0.6691 +vn 0.1083 -0.8245 0.5554 +vn -0.0519 0.0003 -0.9987 +vn -0.7402 -0.0341 -0.6715 +vn 0.4242 0.6963 0.5790 +vn -0.0199 0.8586 0.5123 +vn 0.2373 0.5168 0.8226 +vn 0.4396 0.7785 0.4479 +vn 0.5335 0.5566 0.6369 +vn 0.5158 0.7849 0.3433 +vn 0.6392 0.4676 0.6106 +vn -0.1891 -0.0789 -0.9788 +vn 0.1455 -0.9260 0.3484 +vn 0.4892 -0.7597 0.4284 +vn 0.1270 -0.5267 0.8405 +vn 0.2528 -0.4324 0.8655 +vn -0.8351 0.4838 0.2620 +vn -0.7426 0.0273 0.6691 +vn -0.6368 0.5348 0.5554 +vn 0.0384 0.0349 -0.9987 +vn 0.5228 0.5252 -0.6715 +vn 0.1576 -0.8000 0.5790 +vn 0.5946 -0.6197 0.5123 +vn 0.1741 -0.5414 0.8226 +vn 0.2017 -0.8710 0.4479 +vn -0.0174 -0.7707 0.6369 +vn 0.1498 -0.9272 0.3433 +vn -0.1554 -0.7766 0.6106 +vn 0.0862 0.1859 -0.9788 +vn -0.7328 0.5845 0.3484 +vn -0.8739 0.2297 0.4284 +vn -0.4494 0.3026 0.8405 +vn -0.4785 0.1481 0.8655 +vn 0.9425 0.2074 0.2620 +vn 0.5660 0.4815 0.6691 +vn 0.8308 0.0358 0.5554 +vn -0.0048 -0.0517 -0.9987 +vn -0.0307 -0.7404 -0.6715 +vn -0.6566 0.4834 0.5790 +vn -0.8570 0.0553 0.5123 +vn -0.4941 0.2816 0.8226 +vn -0.7371 0.5060 0.4479 +vn -0.5078 0.5801 0.6369 +vn -0.7368 0.5825 0.3433 +vn -0.4099 0.6776 0.6106 +vn 0.0620 -0.1953 -0.9788 +vn 0.9352 0.0640 0.3484 +vn 0.7995 0.4209 0.4284 +vn 0.5358 0.0805 0.8405 +vn 0.4529 0.2140 0.8655 +vn -0.5549 -0.7896 0.2620 +vn -0.0921 -0.7374 0.6691 +vn -0.5884 -0.5876 0.5554 +vn -0.0314 0.0413 -0.9987 +vn -0.4775 0.5667 -0.6715 +vn 0.8107 0.0871 0.5790 +vn 0.6693 0.5382 0.5123 +vn 0.5545 0.1261 0.8226 +vn 0.8853 0.1248 0.4479 +vn 0.7663 -0.0847 0.6369 +vn 0.9368 0.0682 0.3433 +vn 0.7600 -0.2227 0.6106 +vn -0.1777 0.1021 -0.9788 +vn -0.6463 -0.6789 0.3484 +vn -0.3052 -0.8505 0.4284 +vn -0.3407 -0.4213 0.8405 +vn -0.1894 -0.4637 0.8655 +vn -0.1242 0.9570 0.2620 +vn -0.4302 0.6060 0.6691 +vn 0.0369 0.8307 0.5554 +vn 0.0510 -0.0093 -0.9987 +vn 0.7349 -0.0953 -0.6715 +vn -0.5390 -0.6118 0.5790 +vn -0.1300 -0.8489 0.5123 +vn -0.3237 -0.4676 0.8226 +vn -0.5685 -0.6901 0.4479 +vn -0.6223 -0.4551 0.6369 +vn -0.6447 -0.6831 0.3433 +vn -0.7109 -0.3491 0.6106 +vn 0.2000 0.0447 -0.9788 +vn 0.0180 0.9372 0.3484 +vn -0.3494 0.8333 0.4284 +vn -0.0333 0.5408 0.8405 +vn -0.1736 0.4698 0.8655 +vn 0.7380 -0.6218 0.2620 +vn 0.7265 -0.1563 0.6691 +vn 0.5339 -0.6375 0.5554 +vn -0.0439 -0.0276 -0.9987 +vn -0.6063 -0.4261 -0.6715 +vn -0.0158 0.8152 0.5790 +vn -0.4776 0.7138 0.5123 +vn -0.0771 0.5634 0.8226 +vn -0.0469 0.8928 0.4479 +vn 0.1514 0.7559 0.6369 +vn 0.0139 0.9391 0.3433 +vn 0.2883 0.7376 0.6106 +vn -0.1173 -0.1681 -0.9788 +vn 0.6198 -0.7032 0.3484 +vn 0.8205 -0.3784 0.4284 +vn 0.3898 -0.3763 0.8405 +vn 0.4454 -0.2292 0.8655 +s 0 +f 5//1 3//2 7//3 +f 6//4 3//4 5//4 +f 1//5 2//5 4//5 +f 6//6 1//7 4//8 7//9 +f 3//10 6//11 7//12 +f 1//13 6//13 5//13 2//13 +f 2//14 5//15 7//16 4//17 +f 12//18 10//19 14//20 +f 13//21 10//21 12//21 +f 8//22 9//22 11//22 +f 13//23 8//24 11//25 14//26 +f 10//27 13//28 14//29 +f 8//30 13//30 12//30 9//30 +f 9//31 12//32 14//33 11//34 +f 19//35 17//36 21//37 +f 20//38 17//38 19//38 +f 15//39 16//39 18//39 +f 20//40 15//41 18//42 21//43 +f 17//44 20//45 21//46 +f 15//47 20//47 19//47 16//47 +f 16//48 19//49 21//50 18//51 +f 26//52 24//53 28//54 +f 27//55 24//55 26//55 +f 22//56 23//56 25//56 +f 27//57 22//58 25//59 28//60 +f 24//61 27//62 28//63 +f 22//64 27//64 26//64 23//64 +f 23//65 26//66 28//67 25//68 +f 33//69 31//70 35//71 +f 34//72 31//72 33//72 +f 29//73 30//73 32//73 +f 34//74 29//75 32//76 35//77 +f 31//78 34//79 35//80 +f 29//81 34//81 33//81 30//81 +f 30//82 33//83 35//84 32//85 +f 40//86 38//87 42//88 +f 41//89 38//89 40//89 +f 36//90 37//90 39//90 +f 41//91 36//92 39//93 42//94 +f 38//95 41//96 42//97 +f 36//98 41//98 40//98 37//98 +f 37//99 40//100 42//101 39//102 +f 47//103 45//104 49//105 +f 48//106 45//106 47//106 +f 43//107 44//107 46//107 +f 48//108 43//109 46//110 49//111 +f 45//112 48//113 49//114 +f 43//115 48//115 47//115 44//115 +f 44//116 47//117 49//118 46//119 +f 54//120 52//121 56//122 +f 55//123 52//123 54//123 +f 50//124 51//124 53//124 +f 55//125 50//126 53//127 56//128 +f 52//129 55//130 56//131 +f 50//132 55//132 54//132 51//132 +f 51//133 54//134 56//135 53//136 +f 61//137 59//138 63//139 +f 62//140 59//140 61//140 +f 57//141 58//141 60//141 +f 62//142 57//143 60//144 63//145 +f 59//146 62//147 63//148 +f 57//149 62//149 61//149 58//149 +f 58//150 61//151 63//152 60//153 +f 68//154 66//155 70//156 +f 69//157 66//157 68//157 +f 64//158 65//158 67//158 +f 69//159 64//160 67//161 70//162 +f 66//163 69//164 70//165 +f 64//166 69//166 68//166 65//166 +f 65//167 68//168 70//169 67//170 +f 75//171 73//172 77//173 +f 76//174 73//174 75//174 +f 71//175 72//175 74//175 +f 76//176 71//177 74//178 77//179 +f 73//180 76//181 77//182 +f 71//183 76//183 75//183 72//183 +f 72//184 75//185 77//186 74//187 +f 82//188 80//189 84//190 +f 83//191 80//191 82//191 +f 78//192 79//192 81//192 +f 83//193 78//194 81//195 84//196 +f 80//197 83//198 84//199 +f 78//200 83//200 82//200 79//200 +f 79//201 82//202 84//203 81//204 +f 89//205 87//206 91//207 +f 90//208 87//208 89//208 +f 85//209 86//209 88//209 +f 90//210 85//211 88//212 91//213 +f 87//214 90//215 91//216 +f 85//217 90//217 89//217 86//217 +f 86//218 89//219 91//220 88//221 +f 96//222 94//223 98//224 +f 97//225 94//225 96//225 +f 92//226 93//226 95//226 +f 97//227 92//228 95//229 98//230 +f 94//231 97//232 98//233 +f 92//234 97//234 96//234 93//234 +f 93//235 96//236 98//237 95//238 +f 103//239 101//240 105//241 +f 104//242 101//242 103//242 +f 99//243 100//243 102//243 +f 104//244 99//245 102//246 105//247 +f 101//248 104//249 105//250 +f 99//251 104//251 103//251 100//251 +f 100//252 103//253 105//254 102//255 +f 110//256 108//257 112//258 +f 111//259 108//259 110//259 +f 106//260 107//260 109//260 +f 111//261 106//262 109//263 112//264 +f 108//265 111//266 112//267 +f 106//268 111//268 110//268 107//268 +f 107//269 110//270 112//271 109//272 +f 117//273 115//274 119//275 +f 118//276 115//276 117//276 +f 113//277 114//277 116//277 +f 118//278 113//279 116//280 119//281 +f 115//282 118//283 119//284 +f 113//285 118//285 117//285 114//285 +f 114//286 117//287 119//288 116//289 +f 124//290 122//291 126//292 +f 125//293 122//293 124//293 +f 120//294 121//294 123//294 +f 125//295 120//296 123//297 126//298 +f 122//299 125//300 126//301 +f 120//302 125//302 124//302 121//302 +f 121//303 124//304 126//305 123//306 +f 131//307 129//308 133//309 +f 132//310 129//310 131//310 +f 127//311 128//311 130//311 +f 132//312 127//313 130//314 133//315 +f 129//316 132//317 133//318 +f 127//319 132//319 131//319 128//319 +f 128//320 131//321 133//322 130//323 +f 138//324 136//325 140//326 +f 139//327 136//327 138//327 +f 134//328 135//328 137//328 +f 139//329 134//330 137//331 140//332 +f 136//333 139//334 140//335 +f 134//336 139//336 138//336 135//336 +f 135//337 138//338 140//339 137//340 +f 145//341 143//342 147//343 +f 146//344 143//344 145//344 +f 141//345 142//345 144//345 +f 146//346 141//347 144//348 147//349 +f 143//350 146//351 147//352 +f 141//353 146//353 145//353 142//353 +f 142//354 145//355 147//356 144//357 +f 152//358 150//359 154//360 +f 153//361 150//361 152//361 +f 148//362 149//362 151//362 +f 153//363 148//364 151//365 154//366 +f 150//367 153//368 154//369 +f 148//370 153//370 152//370 149//370 +f 149//371 152//372 154//373 151//374 +f 159//375 157//376 161//377 +f 160//378 157//378 159//378 +f 155//379 156//379 158//379 +f 160//380 155//381 158//382 161//383 +f 157//384 160//385 161//386 +f 155//387 160//387 159//387 156//387 +f 156//388 159//389 161//390 158//391 +f 166//392 164//393 168//394 +f 167//395 164//395 166//395 +f 162//396 163//396 165//396 +f 167//397 162//398 165//399 168//400 +f 164//401 167//402 168//403 +f 162//404 167//404 166//404 163//404 +f 163//405 166//406 168//407 165//408 +f 173//409 171//410 175//411 +f 174//412 171//412 173//412 +f 169//413 170//413 172//413 +f 174//414 169//415 172//416 175//417 +f 171//418 174//419 175//420 +f 169//421 174//421 173//421 170//421 +f 170//422 173//423 175//424 172//425 +f 180//426 178//427 182//428 +f 181//429 178//429 180//429 +f 176//430 177//430 179//430 +f 181//431 176//432 179//433 182//434 +f 178//435 181//436 182//437 +f 176//438 181//438 180//438 177//438 +f 177//439 180//440 182//441 179//442 +f 187//443 185//444 189//445 +f 188//446 185//446 187//446 +f 183//447 184//447 186//447 +f 188//448 183//449 186//450 189//451 +f 185//452 188//453 189//454 +f 183//455 188//455 187//455 184//455 +f 184//456 187//457 189//458 186//459 +f 194//460 192//461 196//462 +f 195//463 192//463 194//463 +f 190//464 191//464 193//464 +f 195//465 190//466 193//467 196//468 +f 192//469 195//470 196//471 +f 190//472 195//472 194//472 191//472 +f 191//473 194//474 196//475 193//476 +f 201//477 199//478 203//479 +f 202//480 199//480 201//480 +f 197//481 198//481 200//481 +f 202//482 197//483 200//484 203//485 +f 199//486 202//487 203//488 +f 197//489 202//489 201//489 198//489 +f 198//490 201//491 203//492 200//493 +f 208//494 206//495 210//496 +f 209//497 206//497 208//497 +f 204//498 205//498 207//498 +f 209//499 204//500 207//501 210//502 +f 206//503 209//504 210//505 +f 204//506 209//506 208//506 205//506 +f 205//507 208//508 210//509 207//510 +f 215//511 213//512 217//513 +f 216//514 213//514 215//514 +f 211//515 212//515 214//515 +f 216//516 211//517 214//518 217//519 +f 213//520 216//521 217//522 +f 211//523 216//523 215//523 212//523 +f 212//524 215//525 217//526 214//527 +f 222//528 220//529 224//530 +f 223//531 220//531 222//531 +f 218//532 219//532 221//532 +f 223//533 218//534 221//535 224//536 +f 220//537 223//538 224//539 +f 218//540 223//540 222//540 219//540 +f 219//541 222//542 224//543 221//544 +f 229//545 227//546 231//547 +f 230//548 227//548 229//548 +f 225//549 226//549 228//549 +f 230//550 225//551 228//552 231//553 +f 227//554 230//555 231//556 +f 225//557 230//557 229//557 226//557 +f 226//558 229//559 231//560 228//561 +f 236//562 234//563 238//564 +f 237//565 234//565 236//565 +f 232//566 233//566 235//566 +f 237//567 232//568 235//569 238//570 +f 234//571 237//572 238//573 +f 232//574 237//574 236//574 233//574 +f 233//575 236//576 238//577 235//578 +f 243//579 241//580 245//581 +f 244//582 241//582 243//582 +f 239//583 240//583 242//583 +f 244//584 239//585 242//586 245//587 +f 241//588 244//589 245//590 +f 239//591 244//591 243//591 240//591 +f 240//592 243//593 245//594 242//595 +f 250//596 248//597 252//598 +f 251//599 248//599 250//599 +f 246//600 247//600 249//600 +f 251//601 246//602 249//603 252//604 +f 248//605 251//606 252//607 +f 246//608 251//608 250//608 247//608 +f 247//609 250//610 252//611 249//612 +f 257//613 255//614 259//615 +f 258//616 255//616 257//616 +f 253//617 254//617 256//617 +f 258//618 253//619 256//620 259//621 +f 255//622 258//623 259//624 +f 253//625 258//625 257//625 254//625 +f 254//626 257//627 259//628 256//629 +f 264//630 262//631 266//632 +f 265//633 262//633 264//633 +f 260//634 261//634 263//634 +f 265//635 260//636 263//637 266//638 +f 262//639 265//640 266//641 +f 260//642 265//642 264//642 261//642 +f 261//643 264//644 266//645 263//646 +f 271//647 269//648 273//649 +f 272//650 269//650 271//650 +f 267//651 268//651 270//651 +f 272//652 267//653 270//654 273//655 +f 269//656 272//657 273//658 +f 267//659 272//659 271//659 268//659 +f 268//660 271//661 273//662 270//663 +f 278//664 276//665 280//666 +f 279//667 276//667 278//667 +f 274//668 275//668 277//668 +f 279//669 274//670 277//671 280//672 +f 276//673 279//674 280//675 +f 274//676 279//676 278//676 275//676 +f 275//677 278//678 280//679 277//680 +f 285//681 283//682 287//683 +f 286//684 283//684 285//684 +f 281//685 282//685 284//685 +f 286//686 281//687 284//688 287//689 +f 283//690 286//691 287//692 +f 281//693 286//693 285//693 282//693 +f 282//694 285//695 287//696 284//697 +f 292//698 290//699 294//700 +f 293//701 290//701 292//701 +f 288//702 289//702 291//702 +f 293//703 288//704 291//705 294//706 +f 290//707 293//708 294//709 +f 288//710 293//710 292//710 289//710 +f 289//711 292//712 294//713 291//714 +o 90_35_15 +v 0.000000 4.442522 -24.640188 +v -1.240680 0.792436 103.055527 +v 4.225091 1.372812 -24.640188 +v 0.370249 1.424840 103.055527 +v 2.611252 -3.594083 -24.640188 +v 1.469507 0.088179 103.055527 +v -2.611252 -3.594083 -24.640188 +v 0.537955 -1.370327 103.055527 +v -4.225091 1.372812 -24.640188 +v -1.137032 -0.935072 103.055527 +vn 0.3853 0.9226 0.0207 +vn 0.9965 -0.0813 0.0207 +vn 0.2306 -0.9728 0.0207 +vn -0.8540 -0.5199 0.0207 +vn -0.7583 0.6515 0.0207 +vn -0.0000 -0.0000 1.0000 +s 0 +f 295//715 296//715 298//715 297//715 +f 297//716 298//716 300//716 299//716 +f 299//717 300//717 302//717 301//717 +f 301//718 302//718 304//718 303//718 +f 303//719 304//719 296//719 295//719 +f 296//720 304//720 302//720 300//720 298//720 diff --git a/assets/voxygen/lod/savannah_airship_dock.obj b/assets/voxygen/lod/savannah_airship_dock.obj new file mode 100644 index 0000000..1b02ddc --- /dev/null +++ b/assets/voxygen/lod/savannah_airship_dock.obj @@ -0,0 +1,1131 @@ +# Blender 4.0.2 +# www.blender.org +o 72_55_46 +v -24.748737 24.748737 29.000000 +v -22.419365 33.442070 23.000000 +v -27.078110 33.442070 23.000000 +v -31.112698 31.112698 23.000000 +v -33.442070 27.078106 23.000000 +v -33.442070 22.419365 23.000000 +v -31.112698 18.384777 23.000000 +v -27.078110 16.055405 23.000000 +v -22.419365 16.055408 23.000000 +v -18.384773 18.384777 23.000000 +v -16.055405 22.419369 23.000000 +v -16.055405 27.078110 23.000000 +v -18.384777 31.112698 23.000000 +v 36.000000 0.000000 11.000000 +v 31.176914 -18.000000 11.000000 +v 18.000000 -31.176914 11.000000 +v 0.000000 -36.000000 11.000000 +v -18.000000 -31.176914 11.000000 +v -31.176914 -18.000000 11.000000 +v -36.000000 0.000000 11.000000 +v -31.176914 18.000000 11.000000 +v -18.000000 31.176914 11.000000 +v 0.000000 36.000000 11.000000 +v 18.000000 31.176914 11.000000 +v 31.176914 18.000000 11.000000 +v 0.000000 0.000000 29.000000 +v 9.000000 34.999996 23.000000 +v 7.794228 30.500000 23.000000 +v 4.500000 27.205772 23.000000 +v 0.000000 26.000000 23.000000 +v -4.500000 27.205772 23.000000 +v -7.794228 30.500000 23.000000 +v -9.000000 34.999996 23.000000 +v -7.794228 39.499996 23.000000 +v -4.500000 42.794231 23.000000 +v 0.000000 43.999996 23.000000 +v 4.500000 42.794231 23.000000 +v 7.794228 39.499996 23.000000 +v 0.000000 34.999996 29.000000 +v -35.000000 0.000000 29.000000 +v -39.500000 7.794231 23.000000 +v -42.794228 4.500000 23.000000 +v -44.000000 0.000000 23.000000 +v -42.794228 -4.500000 23.000000 +v -39.500000 -7.794230 23.000000 +v -35.000000 -9.000000 23.000000 +v -30.500000 -7.794228 23.000000 +v -27.205772 -4.500000 23.000000 +v -26.000000 0.000000 23.000000 +v -27.205772 4.500000 23.000000 +v -30.500000 7.794228 23.000000 +v -35.000000 9.000000 23.000000 +v 24.748737 -24.748737 29.000000 +v 22.419369 -33.442070 23.000000 +v 27.078112 -33.442070 23.000000 +v 31.112698 -31.112698 23.000000 +v 33.442070 -27.078104 23.000000 +v 33.442070 -22.419361 23.000000 +v 31.112698 -18.384777 23.000000 +v 27.078110 -16.055405 23.000000 +v 22.419371 -16.055403 23.000000 +v 18.384779 -18.384771 23.000000 +v 16.055410 -22.419363 23.000000 +v 16.055405 -27.078110 23.000000 +v 18.384777 -31.112698 23.000000 +v -8.999996 -35.000000 23.000000 +v -7.794228 -30.500000 23.000000 +v -4.500000 -27.205772 23.000000 +v 0.000004 -26.000000 23.000000 +v 4.500002 -27.205772 23.000000 +v 7.794231 -30.500000 23.000000 +v 9.000004 -35.000000 23.000000 +v 7.794231 -39.500000 23.000000 +v 4.500004 -42.794228 23.000000 +v 0.000004 -44.000000 23.000000 +v -4.499996 -42.794228 23.000000 +v -7.794224 -39.500000 23.000000 +v 0.000004 -35.000000 29.000000 +v 35.000000 0.000004 29.000000 +v 39.500000 -7.794226 23.000000 +v 42.794228 -4.499996 23.000000 +v 44.000000 0.000004 23.000000 +v 42.794228 4.500004 23.000000 +v 39.500000 7.794231 23.000000 +v 35.000000 9.000004 23.000000 +v 30.500000 7.794231 23.000000 +v 27.205772 4.500004 23.000000 +v 25.999998 0.000002 23.000000 +v 27.205772 -4.499998 23.000000 +v 30.500000 -7.794224 23.000000 +v 35.000000 -8.999996 23.000000 +v 11.000000 -52.000000 19.000000 +v 9.526279 -57.500000 19.000000 +v 5.500000 -61.526279 19.000000 +v 0.000000 -63.000000 19.000000 +v -5.500000 -61.526279 19.000000 +v -9.526279 -57.500000 19.000000 +v -11.000000 -52.000000 19.000000 +v -9.526279 -46.500000 19.000000 +v -5.500000 -42.473721 19.000000 +v 0.000000 -41.000000 19.000000 +v 5.500000 -42.473721 19.000000 +v 9.526279 -46.500000 19.000000 +v 0.000000 -52.000000 28.000000 +v 52.000000 11.000000 18.999998 +v 57.500000 9.526283 18.999998 +v 61.526279 5.500004 18.999998 +v 63.000000 0.000004 18.999998 +v 61.526276 -5.499996 18.999998 +v 57.499996 -9.526276 18.999998 +v 52.000000 -11.000000 18.999998 +v 46.500000 -9.526276 18.999998 +v 42.473721 -5.499996 18.999998 +v 41.000000 0.000000 18.999998 +v 42.473721 5.500004 18.999998 +v 46.500000 9.526283 18.999998 +v 52.000000 0.000004 27.999998 +v -11.000004 52.000000 19.000000 +v -9.526283 57.500000 19.000000 +v -5.500006 61.526279 19.000000 +v -0.000006 63.000000 19.000000 +v 5.499994 61.526279 19.000000 +v 9.526276 57.500000 19.000000 +v 10.999996 52.000000 19.000000 +v 9.526276 46.500000 19.000000 +v 5.499996 42.473721 19.000000 +v -0.000004 41.000000 19.000000 +v -5.500004 42.473721 19.000000 +v -9.526283 46.500000 19.000000 +v -0.000005 52.000000 28.000000 +v -52.000000 -11.000004 18.999998 +v -57.500000 -9.526287 18.999998 +v -61.526279 -5.500010 18.999998 +v -63.000000 -0.000009 18.999998 +v -61.526276 5.499990 18.999998 +v -57.499996 9.526272 18.999998 +v -52.000000 10.999996 18.999998 +v -46.500000 9.526272 18.999998 +v -42.473721 5.499992 18.999998 +v -41.000000 -0.000004 18.999998 +v -42.473721 -5.500008 18.999998 +v -46.500000 -9.526287 18.999998 +v -52.000000 -0.000008 27.999998 +v 53.000000 -42.000000 19.000000 +v 51.526279 -47.500000 19.000000 +v 47.500000 -51.526279 19.000000 +v 42.000000 -53.000000 19.000000 +v 36.500000 -51.526279 19.000000 +v 32.473721 -47.500000 19.000000 +v 31.000000 -42.000000 19.000000 +v 32.473721 -36.500000 19.000000 +v 36.500000 -32.473721 19.000000 +v 42.000000 -31.000000 19.000000 +v 47.500000 -32.473721 19.000000 +v 51.526279 -36.500000 19.000000 +v 42.000000 -42.000000 28.000000 +v -53.000000 42.000000 19.000000 +v -51.526287 47.500000 19.000000 +v -47.500000 51.526272 19.000000 +v -42.000000 53.000000 19.000000 +v -36.500000 51.526272 19.000000 +v -32.473728 47.500000 19.000000 +v -31.000004 42.000000 19.000000 +v -32.473728 36.500000 19.000000 +v -36.500000 32.473713 19.000000 +v -42.000000 30.999996 19.000000 +v -47.500000 32.473713 19.000000 +v -51.526287 36.500000 19.000000 +v -42.000000 42.000000 28.000000 +vn 0.2840 0.4919 0.8230 +vn -0.2840 0.4919 0.8230 +vn -0.4919 0.2840 0.8230 +vn -0.5680 -0.0000 0.8230 +vn -0.4919 -0.2840 0.8230 +vn -0.2840 -0.4919 0.8230 +vn -0.0000 -0.5680 0.8230 +vn 0.2840 -0.4919 0.8230 +vn 0.4919 -0.2840 0.8230 +vn 0.5680 -0.0000 0.8230 +vn 0.4919 0.2840 0.8230 +vn -0.0000 0.5680 0.8230 +vn 0.4440 -0.1190 0.8881 +vn 0.3251 -0.3251 0.8881 +vn 0.1190 -0.4440 0.8881 +vn -0.1190 -0.4440 0.8881 +vn -0.3251 -0.3251 0.8881 +vn -0.4440 -0.1190 0.8881 +vn -0.4440 0.1190 0.8881 +vn -0.3251 0.3251 0.8881 +vn -0.1190 0.4440 0.8881 +vn 0.1190 0.4440 0.8881 +vn 0.3251 0.3251 0.8881 +vn 0.4440 0.1190 0.8881 +vn 0.5487 -0.1470 0.8230 +vn 0.4017 -0.4017 0.8230 +vn 0.1470 -0.5487 0.8230 +vn -0.1470 -0.5487 0.8230 +vn -0.4017 -0.4017 0.8230 +vn -0.5487 -0.1470 0.8230 +vn -0.5487 0.1470 0.8230 +vn -0.4017 0.4017 0.8230 +vn -0.1470 0.5487 0.8230 +vn 0.1470 0.5487 0.8230 +vn 0.4017 0.4017 0.8230 +vn 0.5487 0.1470 0.8230 +vn -0.0000 -0.0000 -1.0000 +vn 0.6243 -0.1673 0.7631 +vn 0.4570 -0.4570 0.7631 +vn 0.1673 -0.6243 0.7631 +vn -0.1673 -0.6243 0.7631 +vn -0.4570 -0.4570 0.7631 +vn -0.6243 -0.1673 0.7631 +vn -0.6243 0.1673 0.7631 +vn -0.4570 0.4570 0.7631 +vn -0.1673 0.6243 0.7631 +vn 0.1673 0.6243 0.7631 +vn 0.4570 0.4570 0.7631 +vn 0.6243 0.1673 0.7631 +s 0 +f 2//1 1//1 13//1 +f 4//2 1//2 3//2 +f 5//3 1//3 4//3 +f 6//4 1//4 5//4 +f 7//5 1//5 6//5 +f 8//6 1//6 7//6 +f 9//7 1//7 8//7 +f 10//8 1//8 9//8 +f 11//9 1//9 10//9 +f 12//10 1//10 11//10 +f 13//11 1//11 12//11 +f 3//12 1//12 2//12 +f 14//13 26//13 15//13 +f 15//14 26//14 16//14 +f 16//15 26//15 17//15 +f 17//16 26//16 18//16 +f 18//17 26//17 19//17 +f 19//18 26//18 20//18 +f 20//19 26//19 21//19 +f 21//20 26//20 22//20 +f 22//21 26//21 23//21 +f 23//22 26//22 24//22 +f 24//23 26//23 25//23 +f 25//24 26//24 14//24 +f 27//25 39//25 28//25 +f 28//26 39//26 29//26 +f 29//27 39//27 30//27 +f 30//28 39//28 31//28 +f 31//29 39//29 32//29 +f 32//30 39//30 33//30 +f 33//31 39//31 34//31 +f 34//32 39//32 35//32 +f 35//33 39//33 36//33 +f 36//34 39//34 37//34 +f 37//35 39//35 38//35 +f 38//36 39//36 27//36 +f 41//33 40//33 52//33 +f 43//31 40//31 42//31 +f 44//30 40//30 43//30 +f 45//29 40//29 44//29 +f 46//28 40//28 45//28 +f 47//27 40//27 46//27 +f 48//26 40//26 47//26 +f 49//25 40//25 48//25 +f 50//36 40//36 49//36 +f 51//35 40//35 50//35 +f 52//34 40//34 51//34 +f 42//32 40//32 41//32 +f 54//6 53//6 65//6 +f 56//8 53//8 55//8 +f 57//9 53//9 56//9 +f 58//10 53//10 57//10 +f 59//11 53//11 58//11 +f 60//1 53//1 59//1 +f 61//12 53//12 60//12 +f 62//2 53//2 61//2 +f 63//3 53//3 62//3 +f 64//4 53//4 63//4 +f 65//5 53//5 64//5 +f 55//7 53//7 54//7 +f 66//31 78//31 67//31 +f 67//32 78//32 68//32 +f 68//33 78//33 69//33 +f 69//34 78//34 70//34 +f 70//35 78//35 71//35 +f 71//36 78//36 72//36 +f 72//25 78//25 73//25 +f 73//26 78//26 74//26 +f 74//27 78//27 75//27 +f 75//28 78//28 76//28 +f 76//29 78//29 77//29 +f 77//30 78//30 66//30 +f 80//27 79//27 91//27 +f 82//25 79//25 81//25 +f 83//36 79//36 82//36 +f 84//35 79//35 83//35 +f 85//34 79//34 84//34 +f 86//33 79//33 85//33 +f 87//32 79//32 86//32 +f 88//31 79//31 87//31 +f 89//30 79//30 88//30 +f 90//29 79//29 89//29 +f 91//28 79//28 90//28 +f 81//26 79//26 80//26 +f 27//37 28//37 29//37 30//37 31//37 32//37 33//37 34//37 35//37 36//37 37//37 38//37 +f 2//37 13//37 12//37 11//37 10//37 9//37 8//37 7//37 6//37 5//37 4//37 3//37 +f 41//37 52//37 51//37 50//37 49//37 48//37 47//37 46//37 45//37 44//37 43//37 42//37 +f 66//37 67//37 68//37 69//37 70//37 71//37 72//37 73//37 74//37 75//37 76//37 77//37 +f 54//37 65//37 64//37 63//37 62//37 61//37 60//37 59//37 58//37 57//37 56//37 55//37 +f 80//37 91//37 90//37 89//37 88//37 87//37 86//37 85//37 84//37 83//37 82//37 81//37 +f 92//38 104//38 93//38 +f 93//39 104//39 94//39 +f 94//40 104//40 95//40 +f 95//41 104//41 96//41 +f 96//42 104//42 97//42 +f 97//43 104//43 98//43 +f 98//44 104//44 99//44 +f 99//45 104//45 100//45 +f 100//46 104//46 101//46 +f 101//47 104//47 102//47 +f 92//37 93//37 94//37 95//37 96//37 97//37 98//37 99//37 100//37 101//37 102//37 103//37 +f 102//48 104//48 103//48 +f 103//49 104//49 92//49 +f 105//47 117//47 106//47 +f 106//48 117//48 107//48 +f 107//49 117//49 108//49 +f 108//38 117//38 109//38 +f 109//39 117//39 110//39 +f 110//40 117//40 111//40 +f 111//41 117//41 112//41 +f 112//42 117//42 113//42 +f 113//43 117//43 114//43 +f 114//44 117//44 115//44 +f 105//37 106//37 107//37 108//37 109//37 110//37 111//37 112//37 113//37 114//37 115//37 116//37 +f 115//45 117//45 116//45 +f 116//46 117//46 105//46 +f 118//44 130//44 119//44 +f 119//45 130//45 120//45 +f 120//46 130//46 121//46 +f 121//47 130//47 122//47 +f 122//48 130//48 123//48 +f 123//49 130//49 124//49 +f 124//38 130//38 125//38 +f 125//39 130//39 126//39 +f 126//40 130//40 127//40 +f 127//41 130//41 128//41 +f 118//37 119//37 120//37 121//37 122//37 123//37 124//37 125//37 126//37 127//37 128//37 129//37 +f 128//42 130//42 129//42 +f 129//43 130//43 118//43 +f 131//41 143//41 132//41 +f 132//42 143//42 133//42 +f 133//43 143//43 134//43 +f 134//44 143//44 135//44 +f 135//45 143//45 136//45 +f 136//46 143//46 137//46 +f 137//47 143//47 138//47 +f 138//48 143//48 139//48 +f 139//49 143//49 140//49 +f 140//38 143//38 141//38 +f 131//37 132//37 133//37 134//37 135//37 136//37 137//37 138//37 139//37 140//37 141//37 142//37 +f 141//39 143//39 142//39 +f 142//40 143//40 131//40 +f 144//38 156//38 145//38 +f 145//39 156//39 146//39 +f 146//40 156//40 147//40 +f 147//41 156//41 148//41 +f 148//42 156//42 149//42 +f 149//43 156//43 150//43 +f 150//44 156//44 151//44 +f 151//45 156//45 152//45 +f 152//46 156//46 153//46 +f 153//47 156//47 154//47 +f 144//37 145//37 146//37 147//37 148//37 149//37 150//37 151//37 152//37 153//37 154//37 155//37 +f 154//48 156//48 155//48 +f 155//49 156//49 144//49 +f 157//44 169//44 158//44 +f 158//45 169//45 159//45 +f 159//46 169//46 160//46 +f 160//47 169//47 161//47 +f 161//48 169//48 162//48 +f 162//49 169//49 163//49 +f 163//38 169//38 164//38 +f 164//39 169//39 165//39 +f 165//40 169//40 166//40 +f 166//41 169//41 167//41 +f 157//37 158//37 159//37 160//37 161//37 162//37 163//37 164//37 165//37 166//37 167//37 168//37 +f 167//42 169//42 168//42 +f 168//43 169//43 157//43 +o 142_67_27 +v -1.000000 36.000000 11.000000 +v -1.414214 35.000000 23.000000 +v 1.000000 36.000000 11.000000 +v 0.000000 36.414215 23.000000 +v -1.000000 34.000000 11.000000 +v 0.000000 33.585785 23.000000 +v 1.000000 34.000000 11.000000 +v 1.414214 35.000000 23.000000 +v -26.162951 24.748735 -2.000000 +v -25.748735 23.748735 23.000000 +v -24.748735 26.162951 -2.000000 +v -25.748735 25.748739 23.000000 +v -24.748737 23.334522 -2.000000 +v -23.748735 23.748735 23.000000 +v -23.334522 24.748737 -2.000000 +v -23.748735 25.748739 23.000000 +v -36.000000 -1.000002 11.000000 +v -35.000000 -1.414215 23.000000 +v -36.000000 1.000002 11.000000 +v -36.414215 0.000001 23.000000 +v -34.000000 -1.000002 11.000000 +v -33.585785 -0.000001 23.000000 +v -34.000000 1.000002 11.000000 +v -35.000000 1.414215 23.000000 +v 1.000003 -36.000000 11.000000 +v 1.414217 -35.000000 23.000000 +v -0.999997 -36.000000 11.000000 +v 0.000003 -36.414215 23.000000 +v 1.000003 -34.000000 11.000000 +v 0.000003 -33.585785 23.000000 +v -0.999997 -34.000000 11.000000 +v -1.414211 -35.000000 23.000000 +v 26.162954 -24.748732 -2.000000 +v 25.748739 -23.748730 23.000000 +v 24.748739 -26.162947 -2.000000 +v 25.748739 -25.748732 23.000000 +v 24.748737 -23.334522 -2.000000 +v 23.748739 -23.748735 23.000000 +v 23.334522 -24.748737 -2.000000 +v 23.748739 -25.748737 23.000000 +v 36.000000 1.000005 11.000000 +v 35.000000 1.414218 23.000000 +v 36.000000 -0.999999 11.000000 +v 36.414215 0.000002 23.000000 +v 34.000000 1.000005 11.000000 +v 33.585785 0.000004 23.000000 +v 34.000000 -0.999999 11.000000 +v 35.000000 -1.414212 23.000000 +v -4.242640 30.000000 -2.000000 +v -3.000000 33.000000 12.000000 +v 0.000000 34.242641 -2.000000 +v 3.000000 33.000000 12.000000 +v 0.000000 25.757359 -2.000000 +v -3.000000 27.000000 12.000000 +v 4.242640 30.000000 -2.000000 +v 3.000000 27.000000 12.000000 +v -30.000000 -4.242641 -2.000000 +v -33.000000 -3.000000 11.999999 +v -34.242641 0.000000 -2.000000 +v -33.000000 2.999998 11.999999 +v -25.757359 -0.000002 -2.000000 +v -27.000000 -3.000002 11.999999 +v -30.000000 4.242640 -2.000000 +v -27.000000 2.999998 11.999999 +v 4.242643 -30.000000 -2.000000 +v 3.000003 -33.000000 12.000000 +v 0.000003 -34.242641 -2.000000 +v -2.999997 -33.000000 12.000000 +v 0.000002 -25.757359 -2.000000 +v 3.000002 -27.000000 12.000000 +v -4.242638 -30.000000 -2.000000 +v -2.999998 -27.000000 12.000000 +v 30.000000 4.242644 -2.000000 +v 33.000000 3.000003 11.999999 +v 34.242641 0.000003 -2.000000 +v 33.000000 -2.999995 11.999999 +v 25.757359 0.000004 -2.000000 +v 27.000000 3.000004 11.999999 +v 30.000000 -4.242637 -2.000000 +v 27.000000 -2.999996 11.999999 +v -24.748734 -26.162954 -2.000000 +v -23.748734 -25.748739 9.999998 +v -26.162949 -24.748739 -2.000000 +v -25.748737 -25.748735 9.999998 +v -23.334520 -24.748737 -2.000000 +v -23.748734 -23.748739 9.999998 +v -24.748735 -23.334522 -2.000000 +v -25.748737 -23.748735 9.999998 +v 24.748730 26.162958 -2.000000 +v 23.748728 25.748741 9.999998 +v 26.162945 24.748743 -2.000000 +v 25.748730 25.748743 9.999998 +v 23.334520 24.748737 -2.000000 +v 23.748734 23.748739 9.999998 +v 24.748735 23.334522 -2.000000 +v 25.748735 23.748741 9.999998 +v 1.000003 -53.000000 8.000000 +v 1.414217 -52.000000 19.000000 +v -0.999997 -53.000000 8.000000 +v 0.000003 -53.414215 19.000000 +v 1.000003 -51.000000 8.000000 +v 0.000003 -50.585785 19.000000 +v -0.999997 -51.000000 8.000000 +v -1.414211 -52.000000 19.000000 +v -23.748734 -42.748741 5.999998 +v -25.748737 -42.748734 5.999998 +v -23.748734 -40.748741 5.999998 +v -25.748737 -40.748734 5.999998 +v 23.748728 8.748741 5.999998 +v 25.748730 8.748743 5.999998 +v 23.748734 6.748739 5.999998 +v 25.748735 6.748741 5.999998 +v 53.000000 1.000004 8.000000 +v 52.000000 1.414219 18.999998 +v 53.000000 -0.999996 8.000000 +v 53.414215 0.000004 18.999998 +v 51.000000 1.000004 8.000000 +v 50.585785 0.000004 18.999998 +v 51.000000 -0.999996 8.000000 +v 52.000000 -1.414207 18.999998 +v -1.000008 53.000000 8.000000 +v -1.414221 52.000000 19.000000 +v 0.999992 53.000000 8.000000 +v -0.000008 53.414215 19.000000 +v -1.000007 51.000000 8.000000 +v -0.000007 50.585785 19.000000 +v 0.999992 51.000000 8.000000 +v 1.414206 52.000000 19.000000 +v -53.000000 -1.000009 8.000000 +v -52.000000 -1.414223 18.999998 +v -53.000000 0.999992 8.000000 +v -53.414215 -0.000008 18.999998 +v -51.000000 -1.000008 8.000000 +v -50.585785 -0.000008 18.999998 +v -51.000000 0.999992 8.000000 +v -52.000000 1.414203 18.999998 +v 43.414215 -41.999996 8.000000 +v 43.000000 -41.000000 19.000000 +v 42.000004 -43.414211 8.000000 +v 43.000004 -43.000000 19.000000 +v 42.000004 -40.585785 8.000000 +v 41.000000 -40.999996 19.000000 +v 40.585789 -41.999996 8.000000 +v 41.000000 -43.000000 19.000000 +v -43.414215 41.999989 8.000000 +v -43.000000 41.000000 19.000000 +v -42.000011 43.414204 8.000000 +v -43.000011 43.000000 19.000000 +v -42.000011 40.585785 8.000000 +v -41.000000 40.999989 19.000000 +v -40.585796 41.999989 8.000000 +v -41.000000 43.000000 19.000000 +vn -0.7065 0.7065 -0.0427 +vn -0.0000 0.9991 0.0427 +vn 0.7065 0.7065 -0.0427 +vn 0.9991 -0.0000 0.0427 +vn 0.7065 -0.7065 -0.0427 +vn -0.0000 -0.9991 0.0427 +vn -0.7065 -0.7065 -0.0427 +vn -0.9991 -0.0000 0.0427 +vn -0.9998 -0.0000 -0.0220 +vn -0.7069 0.7069 0.0220 +vn -0.0000 0.9998 -0.0220 +vn 0.7069 0.7069 0.0220 +vn 0.9998 -0.0000 -0.0220 +vn 0.7069 -0.7069 0.0220 +vn -0.0000 -0.9998 -0.0220 +vn -0.7069 -0.7069 0.0220 +vn -0.7044 -0.7044 0.0868 +vn -0.9962 -0.0000 -0.0868 +vn -0.0000 -0.9962 -0.0868 +vn 0.7044 -0.7044 0.0868 +vn 0.9962 -0.0000 -0.0868 +vn 0.7044 0.7044 0.0868 +vn -0.0000 0.9962 -0.0868 +vn -0.7044 0.7044 0.0868 +vn -0.0000 -0.9991 -0.0427 +vn -0.7065 -0.7065 0.0427 +vn -0.9991 -0.0000 -0.0427 +vn -0.7065 0.7065 0.0427 +vn -0.0000 0.9991 -0.0427 +vn 0.7065 0.7065 0.0427 +vn 0.9991 -0.0000 -0.0427 +vn 0.7065 -0.7065 0.0427 +vn 0.7064 -0.7064 -0.0460 +vn -0.0000 -0.9989 0.0460 +vn -0.7064 -0.7064 -0.0460 +vn -0.9989 -0.0000 0.0460 +vn -0.7064 0.7064 -0.0460 +vn -0.0000 0.9989 0.0460 +vn 0.7064 0.7064 -0.0460 +vn 0.9989 -0.0000 0.0460 +vn 0.9989 -0.0000 -0.0460 +vn 0.7064 -0.7064 0.0460 +vn -0.0000 -0.9989 -0.0460 +vn -0.7064 -0.7064 0.0460 +vn -0.9989 -0.0000 -0.0460 +vn -0.7064 0.7064 0.0460 +vn -0.0000 0.9989 -0.0460 +vn 0.7064 0.7064 0.0460 +s 1 +f 170//50 173//51 172//52 +f 172//52 177//53 176//54 +f 176//54 175//55 174//56 +f 174//56 171//57 170//50 +f 178//58 181//59 180//60 +f 180//60 185//61 184//62 +f 184//62 183//63 182//64 +f 182//64 179//65 178//58 +f 186//56 189//57 188//50 +f 188//50 193//51 192//52 +f 192//52 191//53 190//54 +f 190//54 187//55 186//56 +f 194//54 197//55 196//56 +f 196//56 201//57 200//50 +f 200//50 199//51 198//52 +f 198//52 195//53 194//54 +f 202//62 205//63 204//64 +f 204//64 209//65 208//58 +f 208//58 207//59 206//60 +f 206//60 203//61 202//62 +f 223//66 218//67 222//68 +f 225//69 222//68 224//70 +f 210//52 213//53 212//54 +f 212//54 217//55 216//56 +f 216//56 215//57 214//50 +f 214//50 211//51 210//52 +f 221//71 224//70 220//72 +f 219//73 220//72 218//67 +f 170//50 171//57 173//51 +f 172//52 173//51 177//53 +f 176//54 177//53 175//55 +f 174//56 175//55 171//57 +f 178//58 179//65 181//59 +f 180//60 181//59 185//61 +f 184//62 185//61 183//63 +f 182//64 183//63 179//65 +f 186//56 187//55 189//57 +f 188//50 189//57 193//51 +f 192//52 193//51 191//53 +f 190//54 191//53 187//55 +f 194//54 195//53 197//55 +f 196//56 197//55 201//57 +f 200//50 201//57 199//51 +f 198//52 199//51 195//53 +f 202//62 203//61 205//63 +f 204//64 205//63 209//65 +f 208//58 209//65 207//59 +f 206//60 207//59 203//61 +f 223//66 219//73 218//67 +f 225//69 223//66 222//68 +f 210//52 211//51 213//53 +f 212//54 213//53 217//55 +f 216//56 217//55 215//57 +f 214//50 215//57 211//51 +f 221//71 225//69 224//70 +f 219//73 221//71 220//72 +f 231//69 226//68 230//70 +f 233//71 230//70 232//72 +f 229//73 232//72 228//67 +f 227//66 228//67 226//68 +f 231//69 227//66 226//68 +f 233//71 231//69 230//70 +f 229//73 233//71 232//72 +f 227//66 229//73 228//67 +f 239//71 234//70 238//72 +f 241//73 238//72 240//67 +f 237//66 240//67 236//68 +f 235//69 236//68 234//70 +f 239//71 235//69 234//70 +f 241//73 239//71 238//72 +f 237//66 241//73 240//67 +f 235//69 237//66 236//68 +f 247//73 242//72 246//67 +f 249//66 246//67 248//68 +f 245//69 248//68 244//70 +f 243//71 244//70 242//72 +f 247//73 243//71 242//72 +f 249//66 247//73 246//67 +f 245//69 249//66 248//68 +f 243//71 245//69 244//70 +f 250//74 253//75 252//76 +f 252//76 257//77 256//78 +f 256//78 255//79 254//80 +f 254//80 251//81 250//74 +f 258//78 261//79 260//80 +f 260//80 265//81 264//74 +f 264//74 263//75 262//76 +f 262//76 259//77 258//78 +f 250//74 251//81 253//75 +f 252//76 253//75 257//77 +f 256//78 257//77 255//79 +f 254//80 255//79 251//81 +f 258//78 259//77 261//79 +f 260//80 261//79 265//81 +f 264//74 265//81 263//75 +f 262//76 263//75 259//77 +f 266//82 269//83 268//84 +f 268//84 273//85 272//86 +f 272//86 271//87 270//88 +f 270//88 267//89 266//82 +f 266//82 267//89 269//83 +f 268//84 269//83 273//85 +f 272//86 273//85 271//87 +f 270//88 271//87 267//89 +f 282//88 285//89 284//82 +f 284//82 289//83 288//84 +f 288//84 287//85 286//86 +f 286//86 283//87 282//88 +f 282//88 283//87 285//89 +f 284//82 285//89 289//83 +f 288//84 289//83 287//85 +f 286//86 287//85 283//87 +f 290//86 293//87 292//88 +f 292//88 297//89 296//82 +f 296//82 295//83 294//84 +f 294//84 291//85 290//86 +f 290//86 291//85 293//87 +f 292//88 293//87 297//89 +f 296//82 297//89 295//83 +f 294//84 295//83 291//85 +f 298//84 301//85 300//86 +f 300//86 305//87 304//88 +f 304//88 303//89 302//82 +f 302//82 299//83 298//84 +f 298//84 299//83 301//85 +f 300//86 301//85 305//87 +f 304//88 305//87 303//89 +f 302//82 303//89 299//83 +f 306//90 309//91 308//92 +f 308//92 313//93 312//94 +f 312//94 311//95 310//96 +f 310//96 307//97 306//90 +f 306//90 307//97 309//91 +f 308//92 309//91 313//93 +f 312//94 313//93 311//95 +f 310//96 311//95 307//97 +f 314//94 317//95 316//96 +f 316//96 321//97 320//90 +f 320//90 319//91 318//92 +f 318//92 315//93 314//94 +f 314//94 315//93 317//95 +f 316//96 317//95 321//97 +f 320//90 321//97 319//91 +f 318//92 319//91 315//93 +l 275 274 +l 277 275 +l 276 277 +l 274 276 +l 279 278 +l 281 279 +l 280 281 +l 278 280 +o 179_125_64 +v 56.000000 0.000000 0.000000 +v 45.537678 45.537678 0.000000 +v 0.000000 56.000000 0.000000 +v -45.537678 45.537678 0.000000 +v -56.000000 0.000000 0.000000 +v -45.537678 -45.537678 0.000000 +v 0.000000 -56.000000 0.000000 +v 45.537678 -45.537678 0.000000 +v 42.200245 42.200245 0.000000 +v 51.895786 0.000000 0.000000 +v 0.000000 51.895786 0.000000 +v -42.200245 42.200245 0.000000 +v -51.895786 0.000000 0.000000 +v -42.200245 -42.200245 0.000000 +v 0.000000 -51.895786 0.000000 +v 42.200245 -42.200245 0.000000 +v 41.365887 41.365887 8.000000 +v 50.869736 0.000000 8.000000 +v 0.000000 50.869736 8.000000 +v -41.365887 41.365887 8.000000 +v -50.869736 0.000000 8.000000 +v -41.365887 -41.365887 8.000000 +v 0.000000 -50.869736 8.000000 +v 41.365887 -41.365887 8.000000 +v 46.372036 46.372036 8.000000 +v 57.026054 0.000000 8.000000 +v 0.000000 57.026054 8.000000 +v -46.372036 46.372036 8.000000 +v -57.026054 0.000000 8.000000 +v -46.372036 -46.372036 8.000000 +v 0.000000 -57.026054 8.000000 +v 46.372036 -46.372036 8.000000 +v 8.000000 -35.000000 11.000000 +v 6.928203 -31.000000 11.000000 +v 4.000000 -28.071796 11.000000 +v 0.000000 -27.000000 11.000000 +v -4.000000 -28.071796 11.000000 +v -6.928203 -31.000000 11.000000 +v -8.000000 -35.000000 11.000000 +v -6.928203 -39.000000 11.000000 +v -4.000000 -41.928204 11.000000 +v 0.000000 -43.000000 11.000000 +v 4.000000 -41.928204 11.000000 +v 6.928203 -39.000000 11.000000 +v 8.000000 -35.000000 10.000000 +v 6.928203 -31.000000 10.000000 +v 4.000000 -28.071796 10.000000 +v 0.000000 -27.000000 10.000000 +v -4.000000 -28.071796 10.000000 +v -6.928203 -31.000000 10.000000 +v -8.000000 -35.000000 10.000000 +v -6.928203 -39.000000 10.000000 +v -4.000000 -41.928204 10.000000 +v 0.000000 -43.000000 10.000000 +v 4.000000 -41.928204 10.000000 +v 6.928203 -39.000000 10.000000 +v 30.405592 -19.091883 11.000000 +v 26.819288 -17.021330 11.000000 +v 22.678185 -17.021332 11.000000 +v 19.091883 -19.091883 11.000000 +v 17.021332 -22.678185 11.000000 +v 17.021330 -26.819288 11.000000 +v 19.091883 -30.405592 11.000000 +v 22.678185 -32.476143 11.000000 +v 26.819290 -32.476143 11.000000 +v 30.405592 -30.405592 11.000000 +v 32.476143 -26.819290 11.000000 +v 32.476143 -22.678185 11.000000 +v 30.405592 -19.091883 10.000000 +v 26.819288 -17.021330 10.000000 +v 22.678185 -17.021332 10.000000 +v 19.091883 -19.091883 10.000000 +v 17.021332 -22.678185 10.000000 +v 17.021330 -26.819288 10.000000 +v 19.091883 -30.405592 10.000000 +v 22.678185 -32.476143 10.000000 +v 26.819290 -32.476143 10.000000 +v 30.405592 -30.405592 10.000000 +v 32.476143 -26.819290 10.000000 +v 32.476143 -22.678185 10.000000 +v 35.000000 8.000002 11.000000 +v 30.999996 6.928202 11.000000 +v 28.071796 4.000000 11.000000 +v 26.999998 0.000000 11.000000 +v 28.071796 -4.000000 11.000000 +v 30.999996 -6.928202 11.000000 +v 35.000000 -8.000002 11.000000 +v 39.000000 -6.928202 11.000000 +v 41.928200 -3.999998 11.000000 +v 43.000000 0.000000 11.000000 +v 41.928200 3.999998 11.000000 +v 39.000000 6.928202 11.000000 +v 35.000000 8.000002 10.000000 +v 30.999996 6.928202 10.000000 +v 28.071796 4.000000 10.000000 +v 26.999998 0.000000 10.000000 +v 28.071796 -4.000000 10.000000 +v 30.999996 -6.928202 10.000000 +v 35.000000 -8.000002 10.000000 +v 39.000000 -6.928202 10.000000 +v 41.928200 -3.999998 10.000000 +v 43.000000 0.000000 10.000000 +v 41.928200 3.999998 10.000000 +v 39.000000 6.928202 10.000000 +v -8.000004 35.000000 11.000000 +v -6.928206 31.000000 11.000000 +v -4.000002 28.071796 11.000000 +v -0.000002 27.000000 11.000000 +v 3.999998 28.071796 11.000000 +v 6.928200 31.000000 11.000000 +v 7.999997 35.000000 11.000000 +v 6.928200 39.000000 11.000000 +v 3.999996 41.928204 11.000000 +v -0.000004 43.000000 11.000000 +v -4.000004 41.928204 11.000000 +v -6.928206 39.000000 11.000000 +v -8.000004 35.000000 10.000000 +v -6.928206 31.000000 10.000000 +v -4.000002 28.071796 10.000000 +v -0.000002 27.000000 10.000000 +v 3.999998 28.071796 10.000000 +v 6.928200 31.000000 10.000000 +v 7.999997 35.000000 10.000000 +v 6.928200 39.000000 10.000000 +v 3.999996 41.928204 10.000000 +v -0.000004 43.000000 10.000000 +v -4.000004 41.928204 10.000000 +v -6.928206 39.000000 10.000000 +v -30.405596 19.091879 11.000000 +v -26.819292 17.021326 11.000000 +v -22.678185 17.021332 11.000000 +v -19.091887 19.091879 11.000000 +v -17.021332 22.678185 11.000000 +v -17.021334 26.819284 11.000000 +v -19.091887 30.405588 11.000000 +v -22.678185 32.476143 11.000000 +v -26.819290 32.476143 11.000000 +v -30.405596 30.405588 11.000000 +v -32.476143 26.819290 11.000000 +v -32.476143 22.678185 11.000000 +v -30.405596 19.091879 10.000000 +v -26.819292 17.021326 10.000000 +v -22.678185 17.021332 10.000000 +v -19.091887 19.091879 10.000000 +v -17.021332 22.678185 10.000000 +v -17.021334 26.819284 10.000000 +v -19.091887 30.405588 10.000000 +v -22.678185 32.476143 10.000000 +v -26.819290 32.476143 10.000000 +v -30.405596 30.405588 10.000000 +v -32.476143 26.819290 10.000000 +v -32.476143 22.678185 10.000000 +v -35.000000 -8.000006 11.000000 +v -30.999996 -6.928205 11.000000 +v -28.071796 -4.000002 11.000000 +v -26.999998 -0.000002 11.000000 +v -28.071796 3.999998 11.000000 +v -30.999996 6.928199 11.000000 +v -35.000000 7.999998 11.000000 +v -39.000000 6.928198 11.000000 +v -41.928200 3.999994 11.000000 +v -43.000000 -0.000004 11.000000 +v -41.928200 -4.000002 11.000000 +v -39.000000 -6.928205 11.000000 +v -35.000000 -8.000006 10.000000 +v -30.999996 -6.928205 10.000000 +v -28.071796 -4.000002 10.000000 +v -26.999998 -0.000002 10.000000 +v -28.071796 3.999998 10.000000 +v -30.999996 6.928199 10.000000 +v -35.000000 7.999998 10.000000 +v -39.000000 6.928198 10.000000 +v -41.928200 3.999994 10.000000 +v -43.000000 -0.000004 10.000000 +v -41.928200 -4.000002 10.000000 +v -39.000000 -6.928205 10.000000 +v 19.091881 30.405594 11.000000 +v 17.021328 26.819286 11.000000 +v 17.021332 22.678185 11.000000 +v 19.091881 19.091881 11.000000 +v 22.678185 17.021332 11.000000 +v 26.819286 17.021328 11.000000 +v 30.405594 19.091881 11.000000 +v 32.476143 22.678185 11.000000 +v 32.476139 26.819288 11.000000 +v 30.405592 30.405592 11.000000 +v 26.819288 32.476139 11.000000 +v 22.678185 32.476143 11.000000 +v 19.091881 30.405594 10.000000 +v 17.021328 26.819286 10.000000 +v 17.021332 22.678185 10.000000 +v 19.091881 19.091881 10.000000 +v 22.678185 17.021332 10.000000 +v 26.819286 17.021328 10.000000 +v 30.405594 19.091881 10.000000 +v 32.476143 22.678185 10.000000 +v 32.476139 26.819288 10.000000 +v 30.405592 30.405592 10.000000 +v 26.819288 32.476139 10.000000 +v 22.678185 32.476143 10.000000 +v -19.091879 -30.405596 11.000000 +v -17.021328 -26.819286 11.000000 +v -17.021330 -22.678186 11.000000 +v -19.091879 -19.091883 11.000000 +v -22.678185 -17.021332 11.000000 +v -26.819283 -17.021332 11.000000 +v -30.405590 -19.091885 11.000000 +v -32.476139 -22.678188 11.000000 +v -32.476139 -26.819292 11.000000 +v -30.405590 -30.405594 11.000000 +v -26.819286 -32.476143 11.000000 +v -22.678183 -32.476143 11.000000 +v -19.091879 -30.405596 10.000000 +v -17.021328 -26.819286 10.000000 +v -17.021330 -22.678186 10.000000 +v -19.091879 -19.091883 10.000000 +v -22.678185 -17.021332 10.000000 +v -26.819283 -17.021332 10.000000 +v -30.405590 -19.091885 10.000000 +v -32.476139 -22.678188 10.000000 +v -32.476139 -26.819292 10.000000 +v -30.405590 -30.405594 10.000000 +v -26.819286 -32.476143 10.000000 +v -22.678183 -32.476143 10.000000 +vn -0.2222 0.9671 -0.1240 +vn -0.2222 -0.9671 -0.1240 +vn 0.2222 0.9671 -0.1240 +vn -0.9671 -0.2222 -0.1240 +vn 0.9671 0.2222 -0.1240 +vn -0.9671 0.2222 -0.1240 +vn 0.9671 -0.2222 -0.1240 +vn -0.0000 -0.0000 1.0000 +vn 0.2222 -0.9671 -0.1240 +vn -0.9659 -0.2588 -0.0000 +vn -0.2588 0.9659 -0.0000 +vn 0.7071 -0.7071 -0.0000 +vn 0.9659 0.2588 -0.0000 +vn -0.7071 -0.7071 -0.0000 +vn -0.7071 0.7071 -0.0000 +vn 0.9659 -0.2588 -0.0000 +vn 0.7071 0.7071 -0.0000 +vn -0.2588 -0.9659 -0.0000 +vn -0.9659 0.2588 -0.0000 +vn 0.2588 0.9659 -0.0000 +vn 0.2588 -0.9659 -0.0000 +vn -0.5000 -0.8660 -0.0000 +vn -0.8660 0.5000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn 0.5000 0.8660 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn 0.8660 0.5000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn 0.5000 -0.8660 -0.0000 +vn -0.8660 -0.5000 -0.0000 +vn -0.5000 0.8660 -0.0000 +vn 0.8660 -0.5000 -0.0000 +s 0 +f 337//98 336//98 344//98 345//98 +f 327//99 328//99 352//99 351//99 +f 336//100 335//100 343//100 344//100 +f 326//101 327//101 351//101 350//101 +f 335//102 334//102 342//102 343//102 +f 325//103 326//103 350//103 349//103 +f 334//104 333//104 341//104 342//104 +f 324//98 325//98 349//98 348//98 +f 338//105 339//105 347//105 346//105 +f 340//105 338//105 346//105 348//105 +f 341//105 340//105 348//105 349//105 +f 342//105 341//105 349//105 350//105 +f 343//105 342//105 350//105 351//105 +f 344//105 343//105 351//105 352//105 +f 345//105 344//105 352//105 353//105 +f 339//105 345//105 353//105 347//105 +f 328//106 329//106 353//106 352//106 +f 331//103 337//103 345//103 339//103 +f 330//101 331//101 339//101 338//101 +f 329//104 322//104 347//104 353//104 +f 322//102 323//102 346//102 347//102 +f 332//99 330//99 338//99 340//99 +f 323//100 324//100 348//100 346//100 +f 333//106 332//106 340//106 341//106 +f 360//107 372//107 373//107 361//107 +f 357//108 369//108 370//108 358//108 +f 364//109 376//109 377//109 365//109 +f 354//110 366//110 367//110 355//110 +f 361//111 373//111 374//111 362//111 +f 358//112 370//112 371//112 359//112 +f 365//113 377//113 366//113 354//113 +f 355//114 367//114 368//114 356//114 +f 362//115 374//115 375//115 363//115 +f 359//116 371//116 372//116 360//116 +f 356//117 368//117 369//117 357//117 +f 363//118 375//118 376//118 364//118 +f 355//105 356//105 357//105 358//105 359//105 360//105 361//105 362//105 363//105 364//105 365//105 354//105 +f 384//119 396//119 397//119 385//119 +f 381//120 393//120 394//120 382//120 +f 388//121 400//121 401//121 389//121 +f 378//122 390//122 391//122 379//122 +f 385//123 397//123 398//123 386//123 +f 382//124 394//124 395//124 383//124 +f 389//125 401//125 390//125 378//125 +f 379//126 391//126 392//126 380//126 +f 386//127 398//127 399//127 387//127 +f 383//128 395//128 396//128 384//128 +f 380//129 392//129 393//129 381//129 +f 387//130 399//130 400//130 388//130 +f 379//105 380//105 381//105 382//105 383//105 384//105 385//105 386//105 387//105 388//105 389//105 378//105 +f 408//118 420//118 421//118 409//118 +f 405//107 417//107 418//107 406//107 +f 412//114 424//114 425//114 413//114 +f 402//108 414//108 415//108 403//108 +f 409//109 421//109 422//109 410//109 +f 406//111 418//111 419//111 407//111 +f 413//117 425//117 414//117 402//117 +f 403//112 415//112 416//112 404//112 +f 410//113 422//113 423//113 411//113 +f 407//115 419//115 420//115 408//115 +f 404//116 416//116 417//116 405//116 +f 411//110 423//110 424//110 412//110 +f 403//105 404//105 405//105 406//105 407//105 408//105 409//105 410//105 411//105 412//105 413//105 402//105 +f 432//110 444//110 445//110 433//110 +f 429//118 441//118 442//118 430//118 +f 436//112 448//112 449//112 437//112 +f 426//107 438//107 439//107 427//107 +f 433//114 445//114 446//114 434//114 +f 430//109 442//109 443//109 431//109 +f 437//116 449//116 438//116 426//116 +f 427//111 439//111 440//111 428//111 +f 434//117 446//117 447//117 435//117 +f 431//113 443//113 444//113 432//113 +f 428//115 440//115 441//115 429//115 +f 435//108 447//108 448//108 436//108 +f 427//105 428//105 429//105 430//105 431//105 432//105 433//105 434//105 435//105 436//105 437//105 426//105 +f 456//122 468//122 469//122 457//122 +f 453//130 465//130 466//130 454//130 +f 460//124 472//124 473//124 461//124 +f 450//119 462//119 463//119 451//119 +f 457//126 469//126 470//126 458//126 +f 454//121 466//121 467//121 455//121 +f 461//128 473//128 462//128 450//128 +f 451//123 463//123 464//123 452//123 +f 458//129 470//129 471//129 459//129 +f 455//125 467//125 468//125 456//125 +f 452//127 464//127 465//127 453//127 +f 459//120 471//120 472//120 460//120 +f 451//105 452//105 453//105 454//105 455//105 456//105 457//105 458//105 459//105 460//105 461//105 450//105 +f 480//108 492//108 493//108 481//108 +f 477//110 489//110 490//110 478//110 +f 484//111 496//111 497//111 485//111 +f 474//118 486//118 487//118 475//118 +f 481//112 493//112 494//112 482//112 +f 478//114 490//114 491//114 479//114 +f 485//115 497//115 486//115 474//115 +f 475//109 487//109 488//109 476//109 +f 482//116 494//116 495//116 483//116 +f 479//117 491//117 492//117 480//117 +f 476//113 488//113 489//113 477//113 +f 483//107 495//107 496//107 484//107 +f 475//105 476//105 477//105 478//105 479//105 480//105 481//105 482//105 483//105 484//105 485//105 474//105 +f 504//130 516//130 517//130 505//130 +f 501//119 513//119 514//119 502//119 +f 508//126 520//126 521//126 509//126 +f 498//120 510//120 511//120 499//120 +f 505//121 517//121 518//121 506//121 +f 502//123 514//123 515//123 503//123 +f 509//129 521//129 510//129 498//129 +f 499//124 511//124 512//124 500//124 +f 506//125 518//125 519//125 507//125 +f 503//127 515//127 516//127 504//127 +f 500//128 512//128 513//128 501//128 +f 507//122 519//122 520//122 508//122 +f 499//105 500//105 501//105 502//105 503//105 504//105 505//105 506//105 507//105 508//105 509//105 498//105 +f 528//120 540//120 541//120 529//120 +f 525//122 537//122 538//122 526//122 +f 532//123 544//123 545//123 533//123 +f 522//130 534//130 535//130 523//130 +f 529//124 541//124 542//124 530//124 +f 526//126 538//126 539//126 527//126 +f 533//127 545//127 534//127 522//127 +f 523//121 535//121 536//121 524//121 +f 530//128 542//128 543//128 531//128 +f 527//129 539//129 540//129 528//129 +f 524//125 536//125 537//125 525//125 +f 531//119 543//119 544//119 532//119 +f 523//105 524//105 525//105 526//105 527//105 528//105 529//105 530//105 531//105 532//105 533//105 522//105 diff --git a/assets/voxygen/lod/savannah_hut.obj b/assets/voxygen/lod/savannah_hut.obj new file mode 100644 index 0000000..7f29c65 --- /dev/null +++ b/assets/voxygen/lod/savannah_hut.obj @@ -0,0 +1,127 @@ +# Blender 4.0.2 +# www.blender.org +o 209_124_57 +v 11.591110 3.105829 -5.000000 +v 10.625185 2.847010 15.000000 +v 11.591109 -3.105829 -5.000000 +v 10.625184 -2.847010 15.000000 +v 8.485281 -8.485280 -5.000000 +v 7.778175 -7.778174 15.000000 +v 3.105829 -11.591110 -5.000000 +v 2.847010 -10.625185 15.000000 +v -3.105829 -11.591109 -5.000000 +v -2.847010 -10.625184 15.000000 +v -8.485280 -8.485281 -5.000000 +v -7.778174 -7.778175 15.000000 +v -11.591110 -3.105829 -5.000000 +v -10.625185 -2.847010 15.000000 +v -11.591109 3.105829 -5.000000 +v -10.625184 2.847010 15.000000 +v -8.485281 8.485280 -5.000000 +v -7.778175 7.778174 15.000000 +v -3.105829 11.591110 -5.000000 +v -2.847010 10.625185 15.000000 +v 3.105829 11.591109 -5.000000 +v 2.847010 10.625184 15.000000 +v 8.485280 8.485281 -5.000000 +v 7.778174 7.778175 15.000000 +v 2.976419 11.108147 4.000000 +v -2.976419 11.108147 4.000000 +v -11.108147 2.976419 4.000000 +v -11.108147 -2.976419 4.000000 +v -2.976419 -11.108147 4.000000 +v 2.976419 -11.108147 4.000000 +v 11.108147 -2.976419 4.000000 +v 11.108147 2.976419 4.000000 +vn 0.8670 -0.4959 0.0483 +vn 0.4959 -0.8670 0.0483 +vn 0.9990 -0.0000 0.0439 +vn -0.4959 -0.8670 0.0483 +vn -0.8670 -0.4959 0.0483 +vn -0.0000 -0.9990 0.0439 +vn -0.8670 0.4959 0.0483 +vn -0.4959 0.8670 0.0483 +vn -0.9990 -0.0000 0.0439 +vn 0.4959 0.8670 0.0483 +vn 0.8670 0.4959 0.0483 +vn -0.0000 0.9990 0.0439 +s 0 +f 3//1 31//1 4//1 6//1 5//1 +f 5//2 6//2 8//2 30//2 7//2 +f 32//3 2//3 4//3 31//3 +f 9//4 29//4 10//4 12//4 11//4 +f 11//5 12//5 14//5 28//5 13//5 +f 30//6 8//6 10//6 29//6 +f 15//7 27//7 16//7 18//7 17//7 +f 17//8 18//8 20//8 26//8 19//8 +f 28//9 14//9 16//9 27//9 +f 21//10 25//10 22//10 24//10 23//10 +f 23//11 24//11 2//11 32//11 1//11 +f 26//12 20//12 22//12 25//12 +o Glow +v 11.591110 3.105829 -5.000000 +v 11.591109 -3.105829 -5.000000 +v 3.105829 -11.591110 -5.000000 +v -3.105829 -11.591109 -5.000000 +v -11.591110 -3.105829 -5.000000 +v -11.591109 3.105829 -5.000000 +v -3.105829 11.591110 -5.000000 +v 3.105829 11.591109 -5.000000 +v 2.976419 11.108147 4.000000 +v -2.976419 11.108147 4.000000 +v -11.108147 2.976419 4.000000 +v -11.108147 -2.976419 4.000000 +v -2.976419 -11.108147 4.000000 +v 2.976419 -11.108147 4.000000 +v 11.108147 -2.976419 4.000000 +v 11.108147 2.976419 4.000000 +vn -0.0000 0.9986 0.0536 +vn 0.9986 -0.0000 0.0536 +vn -0.0000 -0.9986 0.0536 +vn -0.9986 -0.0000 0.0536 +s 0 +f 39//13 42//13 41//13 40//13 +f 33//14 48//14 47//14 34//14 +f 35//15 46//15 45//15 36//15 +f 37//16 44//16 43//16 38//16 +o 72_55_46 +v 16.000000 0.000000 14.000000 +v 13.856406 -8.000000 14.000000 +v 8.000000 -13.856406 14.000000 +v 0.000000 -16.000000 14.000000 +v -8.000000 -13.856406 14.000000 +v -13.856406 -8.000000 14.000000 +v -16.000000 0.000000 14.000000 +v -13.856406 8.000000 14.000000 +v -8.000000 13.856406 14.000000 +v 0.000000 16.000000 14.000000 +v 8.000000 13.856406 14.000000 +v 13.856406 8.000000 14.000000 +v 0.000000 0.000000 24.000000 +vn 0.5247 -0.1406 0.8396 +vn 0.3841 -0.3841 0.8396 +vn 0.1406 -0.5247 0.8396 +vn -0.1406 -0.5247 0.8396 +vn -0.3841 -0.3841 0.8396 +vn -0.5247 -0.1406 0.8396 +vn -0.5247 0.1406 0.8396 +vn -0.3841 0.3841 0.8396 +vn -0.1406 0.5247 0.8396 +vn 0.1406 0.5247 0.8396 +vn -0.0000 -0.0000 -1.0000 +vn 0.3841 0.3841 0.8396 +vn 0.5247 0.1406 0.8396 +s 0 +f 49//17 61//17 50//17 +f 50//18 61//18 51//18 +f 51//19 61//19 52//19 +f 52//20 61//20 53//20 +f 53//21 61//21 54//21 +f 54//22 61//22 55//22 +f 55//23 61//23 56//23 +f 56//24 61//24 57//24 +f 57//25 61//25 58//25 +f 58//26 61//26 59//26 +f 49//27 50//27 51//27 52//27 53//27 54//27 55//27 56//27 57//27 58//27 59//27 60//27 +f 59//28 61//28 60//28 +f 60//29 61//29 49//29 diff --git a/assets/voxygen/lod/terracotta_house.obj b/assets/voxygen/lod/terracotta_house.obj new file mode 100644 index 0000000..6ef2c5a --- /dev/null +++ b/assets/voxygen/lod/terracotta_house.obj @@ -0,0 +1,688 @@ +# Blender 4.0.2 +# www.blender.org +o 252_198_80 +v 12.999998 -19.000002 23.000000 +v -13.000002 -18.999998 23.000000 +v 18.000004 17.999998 30.000000 +v 19.000002 12.999998 23.000000 +v -4.999998 20.000000 20.000000 +v -18.999998 13.000006 23.000000 +v -20.000000 5.000000 20.000000 +v -18.000000 -18.000006 30.000000 +v -12.999994 19.000002 23.000000 +v -18.000000 18.000002 30.000000 +v 17.999996 -18.000006 30.000000 +v -12.999995 13.000001 18.000000 +v 0.000002 18.000000 18.000000 +v -20.000000 -4.999997 20.000000 +v -19.000004 -12.999992 23.000000 +v -13.000002 -12.999995 18.000000 +v -18.000000 0.000003 18.000000 +v -0.000003 -18.000000 18.000000 +v -5.000005 -20.000000 20.000000 +v 4.999995 -20.000000 20.000000 +v 18.999998 -13.000010 23.000000 +v 12.999997 -13.000000 18.000000 +v 18.000000 -0.000004 18.000000 +v 20.000000 -5.000006 20.000000 +v 20.000000 4.999994 20.000000 +v 13.000011 18.999994 23.000000 +v 5.000004 20.000000 20.000000 +v 13.000001 12.999996 18.000000 +v -20.759823 8.599007 14.000000 +v -8.419029 20.325352 14.000000 +v -8.599007 -20.759823 14.000000 +v -20.325352 -8.419029 14.000000 +v 8.419029 -20.325352 14.000000 +v 20.759823 -8.599007 14.000000 +v 20.325352 8.419029 14.000000 +v 8.599007 20.759823 14.000000 +v -24.433889 0.000006 8.000000 +v -16.915771 16.915781 8.000000 +v -0.000006 -24.433889 8.000000 +v -16.915781 -16.915771 8.000000 +v 16.915771 -16.915781 8.000000 +v 24.433889 -0.000006 8.000000 +v 16.915781 16.915771 8.000000 +v 0.000006 24.433889 8.000000 +v -22.827257 9.455367 -5.000000 +v -9.257466 22.349518 -5.000000 +v -9.455367 -22.827257 -5.000000 +v -22.349518 -9.257466 -5.000000 +v 9.257466 -22.349518 -5.000000 +v 22.827257 -9.455367 -5.000000 +v 22.349518 9.257466 -5.000000 +v 9.455367 22.827257 -5.000000 +v 8.722185 -12.747811 36.354687 +v -9.264147 -13.539907 36.563133 +v 9.827126 9.827122 39.551414 +v 11.024624 7.543161 35.901215 +v -3.400297 13.601193 34.360119 +v -13.539907 9.264150 36.563133 +v -14.252533 3.563133 34.425255 +v -12.827279 -12.827284 41.551521 +v -9.201399 13.448204 36.539001 +v -12.827226 12.827226 41.551483 +v 11.663702 -11.663708 40.775803 +v -9.248940 9.248943 33.000000 +v 0.000002 11.833577 33.000000 +v -14.252533 -3.563131 34.425255 +v -13.539908 -9.264141 36.563133 +v -9.264148 -9.264143 33.000000 +v -12.827279 0.000002 33.000000 +v -0.000002 -12.654058 33.000000 +v -3.559562 -14.238232 34.423824 +v 3.476659 -13.906650 34.390663 +v 12.126560 -8.297126 36.191200 +v 8.555928 -8.555931 33.000000 +v 11.217425 -0.000003 33.000000 +v 12.444263 -3.111070 34.244427 +v 12.444263 3.111062 34.244427 +v 7.543169 11.024619 35.901215 +v 3.128822 12.515279 34.251526 +v 7.920269 7.920267 33.000000 +vn -0.6556 0.6556 -0.3746 +vn -0.5054 0.6127 -0.6076 +vn -0.6127 0.5054 -0.6076 +vn -0.4693 0.4693 -0.7480 +vn -0.1901 0.5340 -0.8239 +vn -0.5340 0.1901 -0.8239 +vn 0.1901 0.5340 -0.8239 +vn -0.0000 0.6053 -0.7960 +vn -0.6053 -0.0000 -0.7960 +vn -0.5054 -0.6127 -0.6076 +vn -0.6127 -0.5054 -0.6076 +vn -0.4693 -0.4693 -0.7480 +vn -0.5340 -0.1901 -0.8239 +vn -0.1901 -0.5340 -0.8239 +vn -0.0000 -0.6053 -0.7960 +vn 0.6556 -0.6556 -0.3746 +vn 0.5054 -0.6127 -0.6076 +vn 0.6127 -0.5054 -0.6076 +vn 0.4693 -0.4693 -0.7480 +vn 0.1901 -0.5340 -0.8239 +vn 0.5340 -0.1901 -0.8239 +vn 0.6053 -0.0000 -0.7960 +vn 0.5054 0.6127 -0.6076 +vn 0.6127 0.5054 -0.6076 +vn 0.4693 0.4693 -0.7480 +vn 0.5340 0.1901 -0.8239 +vn 0.6556 0.6556 -0.3746 +vn -0.6556 -0.6556 -0.3746 +vn -0.7442 -0.0139 0.6678 +vn -0.8186 0.3454 0.4589 +vn -0.8119 -0.3419 0.4731 +vn 0.5548 0.5342 0.6378 +vn 0.8119 0.3419 0.4731 +vn 0.3454 0.8186 0.4589 +vn 0.0139 -0.7442 0.6678 +vn -0.3454 -0.8186 0.4589 +vn 0.3419 -0.8119 0.4731 +vn -0.5342 0.5548 0.6378 +vn -0.3419 0.8119 0.4731 +vn 0.5342 -0.5548 0.6378 +vn 0.8186 -0.3454 0.4589 +vn 0.7442 0.0139 0.6678 +vn -0.0139 0.7442 0.6678 +vn -0.5548 -0.5342 0.6378 +vn 0.7035 0.6856 0.1872 +vn -0.0125 0.9802 0.1978 +vn 0.0125 -0.9802 0.1978 +vn 0.6856 -0.7035 0.1872 +vn 0.9802 0.0125 0.1978 +vn -0.6856 0.7035 0.1872 +vn -0.9802 -0.0125 0.1978 +vn -0.7035 -0.6856 0.1872 +vn 0.3926 0.9197 -0.0037 +vn 0.3925 -0.9195 -0.0195 +vn 0.9195 0.3925 -0.0195 +vn -0.9197 0.3926 -0.0037 +vn -0.3925 0.9195 -0.0195 +vn 0.9197 -0.3926 -0.0037 +vn -0.9195 -0.3925 -0.0195 +vn -0.3926 -0.9197 -0.0037 +vn -0.6425 0.6640 -0.3825 +vn -0.4813 0.6270 -0.6125 +vn -0.6064 0.5114 -0.6089 +vn -0.4468 0.4806 -0.7545 +vn -0.1360 0.5384 -0.8317 +vn -0.5329 0.1907 -0.8244 +vn 0.2636 0.5612 -0.7845 +vn 0.0864 0.6299 -0.7719 +vn -0.6051 0.0002 -0.7962 +vn -0.5050 -0.6129 -0.6077 +vn -0.4669 -0.4685 -0.7500 +vn -0.1789 -0.5281 -0.8301 +vn 0.0276 -0.5944 -0.8037 +vn 0.7380 -0.5773 -0.3494 +vn 0.5709 -0.5616 -0.5989 +vn 0.6724 -0.4451 -0.5914 +vn 0.5229 -0.4271 -0.7377 +vn 0.2251 -0.5118 -0.8291 +vn 0.5662 -0.1653 -0.8075 +vn 0.6150 0.0101 -0.7884 +vn 0.5658 0.6545 -0.5016 +vn 0.6561 0.5624 -0.5033 +vn 0.5301 0.5224 -0.6679 +vn 0.5388 0.2135 -0.8150 +vn 0.6919 0.6919 -0.2060 +s 1 +f 10//1 9//2 6//3 +f 6//3 9//2 12//4 +f 5//5 12//4 9//2 +f 6//3 12//4 7//6 +f 5//5 27//7 13//8 +f 12//4 5//5 13//8 +f 12//4 17//9 7//6 +f 2//10 15//11 16//12 +f 14//13 16//12 15//11 +f 2//10 16//12 19//14 +f 14//13 7//6 17//9 +f 16//12 14//13 17//9 +f 16//12 18//15 19//14 +f 11//16 1//17 21//18 +f 21//18 1//17 22//19 +f 20//20 22//19 1//17 +f 21//18 22//19 24//21 +f 20//20 19//14 18//15 +f 22//19 20//20 18//15 +f 22//19 23//22 24//21 +f 26//23 4//24 28//25 +f 25//26 28//25 4//24 +f 26//23 28//25 27//7 +f 25//26 24//21 23//22 +f 28//25 25//26 23//22 +f 28//25 13//8 27//7 +f 3//27 4//24 26//23 +f 2//10 8//28 15//11 +f 17//29 29//30 32//31 +f 28//32 35//33 36//34 +f 18//35 31//36 33//37 +f 12//38 30//39 29//30 +f 22//40 33//37 34//41 +f 23//42 34//41 35//33 +f 13//43 36//34 30//39 +f 16//44 32//31 31//36 +f 17//29 12//38 29//30 +f 28//32 23//42 35//33 +f 18//35 16//44 31//36 +f 12//38 13//43 30//39 +f 22//40 18//35 33//37 +f 23//42 22//40 34//41 +f 13//43 28//32 36//34 +f 16//44 17//29 32//31 +f 36//34 43//45 44//46 +f 33//37 39//47 41//48 +f 35//33 42//49 43//45 +f 29//30 38//50 37//51 +f 30//39 44//46 38//50 +f 34//41 41//48 42//49 +f 32//31 37//51 40//52 +f 31//36 40//52 39//47 +f 43//45 52//53 44//46 +f 39//47 49//54 41//48 +f 42//49 51//55 43//45 +f 38//50 45//56 37//51 +f 44//46 46//57 38//50 +f 41//48 50//58 42//49 +f 37//51 48//59 40//52 +f 40//52 47//60 39//47 +f 36//34 35//33 43//45 +f 33//37 31//36 39//47 +f 35//33 34//41 42//49 +f 29//30 30//39 38//50 +f 30//39 36//34 44//46 +f 34//41 33//37 41//48 +f 32//31 29//30 37//51 +f 31//36 32//31 40//52 +f 43//45 51//55 52//53 +f 39//47 47//60 49//54 +f 42//49 50//58 51//55 +f 38//50 46//57 45//56 +f 44//46 52//53 46//57 +f 41//48 49//54 50//58 +f 37//51 45//56 48//59 +f 40//52 48//59 47//60 +f 62//61 61//62 58//63 +f 58//63 61//62 64//64 +f 57//65 64//64 61//62 +f 58//63 64//64 59//66 +f 57//65 79//67 65//68 +f 64//64 57//65 65//68 +f 64//64 69//69 59//66 +f 54//70 67//11 68//71 +f 66//13 68//71 67//11 +f 54//70 68//71 71//72 +f 66//13 59//66 69//69 +f 68//71 66//13 69//69 +f 68//71 70//73 71//72 +f 63//74 53//75 73//76 +f 73//76 53//75 74//77 +f 72//78 74//77 53//75 +f 73//76 74//77 76//79 +f 72//78 71//72 70//73 +f 74//77 72//78 70//73 +f 74//77 75//80 76//79 +f 78//81 56//82 80//83 +f 77//84 80//83 56//82 +f 78//81 80//83 79//67 +f 77//84 76//79 75//80 +f 80//83 77//84 75//80 +f 80//83 65//68 79//67 +f 55//85 56//82 78//81 +f 54//70 60//28 67//11 +o 72_52_42 +v 12.999998 -19.000002 23.000000 +v -13.000002 -18.999998 23.000000 +v 18.000004 17.999998 30.000000 +v 19.000002 12.999998 23.000000 +v -4.999998 20.000000 20.000000 +v -12.000007 -12.999999 29.000000 +v -18.999998 13.000006 23.000000 +v -8.000001 -14.999999 24.000000 +v -4.000001 -11.000000 29.000000 +v -11.000001 -10.999999 34.000000 +v -0.000001 -15.000000 23.000000 +v 12.000005 -13.000001 29.000000 +v 7.999999 -15.000001 24.000000 +v 3.999999 -11.000000 29.000000 +v -0.000000 -6.542548 36.156300 +v -20.000000 5.000000 20.000000 +v -13.000000 12.000005 29.000000 +v -15.000000 8.000001 24.000000 +v -11.000000 4.000000 29.000000 +v -15.000000 0.000000 23.000000 +v -12.999999 -12.000006 29.000000 +v -18.000000 -18.000006 30.000000 +v -15.000001 -8.000000 24.000000 +v -11.000000 -4.000000 29.000000 +v -6.542548 -0.000001 36.156300 +v 0.000003 15.000000 23.000000 +v 12.000009 12.999997 29.000000 +v 8.000003 14.999999 24.000000 +v 4.000003 11.000000 29.000000 +v 11.000003 10.999997 34.000000 +v -12.999994 19.000002 23.000000 +v -12.000003 13.000003 29.000000 +v -18.000000 18.000002 30.000000 +v -7.999997 15.000001 24.000000 +v -3.999997 11.000000 29.000000 +v -10.999997 11.000003 34.000000 +v 0.000001 6.542548 36.156300 +v 15.000000 -0.000002 23.000000 +v 12.999998 -12.000007 29.000000 +v 17.999996 -18.000006 30.000000 +v 14.999998 -8.000003 24.000000 +v 11.000000 -4.000001 29.000000 +v 10.999998 -11.000003 34.000000 +v 13.000001 12.000004 29.000000 +v 15.000001 7.999998 24.000000 +v 11.000000 3.999998 29.000000 +v 6.542548 -0.000000 36.156300 +v -20.000000 -4.999997 20.000000 +v -19.000004 -12.999992 23.000000 +v -5.000005 -20.000000 20.000000 +v 4.999995 -20.000000 20.000000 +v 18.999998 -13.000010 23.000000 +v 20.000000 -5.000006 20.000000 +v 20.000000 4.999994 20.000000 +v 13.000011 18.999994 23.000000 +v 5.000004 20.000000 20.000000 +v 8.722185 -12.747811 36.354687 +v -9.264147 -13.539907 36.563133 +v 9.827126 9.827122 39.551414 +v 11.024624 7.543161 35.901215 +v -3.400297 13.601193 34.360119 +v -8.459526 -9.164480 40.754562 +v -13.539907 9.264150 36.563133 +v -5.612283 -10.523029 37.209213 +v -2.572296 -7.073815 40.073814 +v -7.608469 -7.608468 43.475235 +v -0.000001 -10.003342 36.334450 +v 6.992935 -7.575676 39.410187 +v 5.058408 -9.484516 36.793808 +v 2.330976 -6.410187 39.410187 +v -0.527250 -0.142515 46.444572 +v -14.252533 3.563133 34.425255 +v -8.986246 8.295000 40.603745 +v -10.638721 5.673986 37.255486 +v -7.464543 2.714380 40.464542 +v -10.648098 -0.000000 36.549366 +v -9.186929 -8.480246 40.773556 +v -12.827279 -12.827284 41.551521 +v -10.673720 -5.692650 37.269485 +v -7.464543 -2.714380 40.464542 +v 0.000002 9.106545 36.035515 +v 5.989509 6.488627 38.490379 +v 4.410875 8.270391 36.308155 +v 2.100017 5.775042 38.775040 +v 5.266734 5.266729 40.069073 +v -9.201399 13.448204 36.539001 +v -8.212922 8.897333 40.528511 +v -12.827226 12.827226 41.551483 +v -5.352368 10.035694 37.014278 +v -2.416774 6.646132 39.646133 +v -7.375731 7.375734 43.136711 +v 8.356520 -0.000002 35.785507 +v 7.454310 -6.880907 39.307495 +v 11.663702 -11.663708 40.775803 +v 8.646430 -4.611432 36.458572 +v 5.565266 -2.023733 38.565266 +v 6.043499 -6.043501 41.198921 +v 6.488629 5.989507 38.490379 +v 8.270390 4.410872 36.308155 +v 5.565266 2.023732 38.565266 +v -14.252533 -3.563131 34.425255 +v -13.539908 -9.264141 36.563133 +v -3.559562 -14.238232 34.423824 +v 3.476659 -13.906650 34.390663 +v 12.126560 -8.297126 36.191200 +v 12.444263 -3.111070 34.244427 +v 12.444263 3.111062 34.244427 +v 7.543169 11.024619 35.901215 +v 3.128822 12.515279 34.251526 +vn 0.4613 -0.7941 0.3957 +vn 0.3696 -0.8770 0.3070 +vn 0.6235 -0.6665 0.4087 +vn 0.1330 -0.8612 0.4906 +vn 0.2276 -0.6962 0.6808 +vn 0.4309 -0.6127 0.6625 +vn 0.1129 -0.5448 0.8309 +vn -0.0000 -0.6910 0.7229 +vn -0.4613 -0.7941 0.3957 +vn -0.6235 -0.6665 0.4087 +vn -0.3696 -0.8770 0.3070 +vn -0.1330 -0.8612 0.4906 +vn -0.2276 -0.6962 0.6808 +vn -0.4309 -0.6127 0.6625 +vn -0.1129 -0.5448 0.8309 +vn -0.0000 -0.8917 0.4527 +vn -0.7941 -0.4613 0.3957 +vn -0.8770 -0.3696 0.3070 +vn -0.6665 -0.6235 0.4087 +vn -0.8612 -0.1330 0.4906 +vn -0.6962 -0.2276 0.6808 +vn -0.6127 -0.4309 0.6625 +vn -0.5448 -0.1129 0.8309 +vn -0.6910 -0.0000 0.7229 +vn -0.7941 0.4613 0.3957 +vn -0.6665 0.6235 0.4087 +vn -0.8770 0.3696 0.3070 +vn -0.8612 0.1330 0.4906 +vn -0.6962 0.2276 0.6808 +vn -0.6127 0.4309 0.6625 +vn -0.5448 0.1129 0.8309 +vn -0.8917 -0.0000 0.4527 +vn -0.4613 0.7941 0.3957 +vn -0.3696 0.8770 0.3070 +vn -0.6235 0.6665 0.4087 +vn -0.1330 0.8612 0.4906 +vn -0.2276 0.6962 0.6808 +vn -0.4309 0.6127 0.6625 +vn -0.1129 0.5448 0.8309 +vn -0.0000 0.6910 0.7229 +vn 0.4613 0.7941 0.3957 +vn 0.6235 0.6665 0.4087 +vn 0.3696 0.8770 0.3070 +vn 0.1330 0.8612 0.4906 +vn 0.2276 0.6962 0.6808 +vn 0.4309 0.6127 0.6625 +vn 0.1129 0.5448 0.8309 +vn -0.0000 0.8917 0.4527 +vn 0.7941 0.4613 0.3957 +vn 0.8770 0.3696 0.3070 +vn 0.6665 0.6235 0.4087 +vn 0.8612 0.1330 0.4906 +vn 0.6962 0.2276 0.6808 +vn 0.6127 0.4309 0.6625 +vn 0.5448 0.1129 0.8309 +vn 0.6910 -0.0000 0.7229 +vn 0.7941 -0.4613 0.3957 +vn 0.6665 -0.6235 0.4087 +vn 0.8770 -0.3696 0.3070 +vn 0.8612 -0.1330 0.4906 +vn 0.6962 -0.2276 0.6808 +vn 0.6127 -0.4309 0.6625 +vn 0.5448 -0.1129 0.8309 +vn 0.8917 -0.0000 0.4527 +vn 0.1369 -0.1369 0.9811 +vn -0.1369 -0.1369 0.9811 +vn -0.1369 0.1369 0.9811 +vn 0.1369 0.1369 0.9811 +vn 0.5129 -0.7470 0.4229 +vn 0.4688 -0.7784 0.4175 +vn 0.6229 -0.6472 0.4394 +vn 0.2838 -0.7252 0.6274 +vn 0.2906 -0.6396 0.7117 +vn 0.4445 -0.5970 0.6679 +vn 0.1546 -0.4860 0.8602 +vn 0.0842 -0.5827 0.8083 +vn -0.4780 -0.7093 0.5180 +vn -0.6496 -0.5766 0.4955 +vn -0.3148 -0.7888 0.5279 +vn -0.0202 -0.7334 0.6795 +vn -0.1984 -0.5719 0.7960 +vn -0.4546 -0.5059 0.7331 +vn -0.0833 -0.4339 0.8971 +vn 0.1956 -0.7343 0.6501 +vn -0.7532 -0.4786 0.4512 +vn -0.7909 -0.3871 0.4739 +vn -0.6333 -0.6305 0.4487 +vn -0.7461 -0.1516 0.6483 +vn -0.6621 -0.2308 0.7130 +vn -0.5943 -0.4374 0.6749 +vn -0.5371 -0.1137 0.8358 +vn -0.6541 0.0017 0.7564 +vn -0.7593 0.4868 0.4319 +vn -0.6481 0.6215 0.4401 +vn -0.7905 0.4181 0.4476 +vn -0.7473 0.1720 0.6418 +vn -0.6692 0.2418 0.7026 +vn -0.6074 0.4328 0.6661 +vn -0.5402 0.1148 0.8337 +vn -0.7085 0.0261 0.7053 +vn -0.4348 0.7264 0.5322 +vn -0.2387 0.8160 0.5264 +vn -0.6414 0.5762 0.5066 +vn 0.0690 0.7505 0.6573 +vn -0.1426 0.5708 0.8086 +vn -0.4229 0.4921 0.7609 +vn -0.0263 0.4103 0.9116 +vn 0.1531 0.5729 0.8052 +vn 0.5386 0.7317 0.4177 +vn 0.6364 0.6323 0.4418 +vn 0.4950 0.7726 0.3975 +vn 0.3365 0.7288 0.5963 +vn 0.3432 0.6188 0.7066 +vn 0.4884 0.5730 0.6581 +vn 0.2161 0.4571 0.8628 +vn 0.2747 0.7463 0.6063 +vn 0.6987 0.5544 0.4522 +vn 0.7806 0.4691 0.4130 +vn 0.5893 0.6612 0.4643 +vn 0.7539 0.1989 0.6262 +vn 0.5695 0.3156 0.7590 +vn 0.5185 0.5130 0.6841 +vn 0.4006 0.1585 0.9025 +vn 0.5432 0.0217 0.8393 +vn 0.7155 -0.4582 0.5273 +vn 0.5762 -0.6414 0.5066 +vn 0.8106 -0.2975 0.5044 +vn 0.7558 -0.0903 0.6486 +vn 0.5539 -0.2069 0.8064 +vn 0.4939 -0.4253 0.7584 +vn 0.3834 -0.1027 0.9179 +vn 0.8122 0.1098 0.5729 +s 1 +f 86//86 90//87 102//88 +f 89//89 90//87 86//86 +f 88//90 89//89 86//86 +f 86//86 82//91 88//90 +f 102//88 82//91 86//86 +f 82//91 130//92 88//90 +f 91//93 88//90 130//92 +f 88//90 91//93 89//89 +f 92//94 120//95 123//96 +f 94//97 92//94 123//96 +f 93//98 92//94 94//97 +f 92//94 93//98 81//99 +f 120//95 92//94 81//99 +f 81//99 93//98 131//100 +f 91//93 131//100 93//98 +f 93//98 94//97 91//93 +f 89//89 91//93 94//97 +f 91//93 130//92 131//100 +f 90//87 89//89 95//101 +f 89//89 94//97 95//101 +f 123//96 95//101 94//97 +f 97//102 116//103 113//104 +f 99//105 116//103 97//102 +f 98//106 99//105 97//102 +f 97//102 87//107 98//106 +f 113//104 87//107 97//102 +f 87//107 96//108 98//106 +f 100//109 98//106 96//108 +f 98//106 100//109 99//105 +f 101//110 102//111 90//112 +f 104//113 101//110 90//112 +f 103//114 101//110 104//113 +f 101//110 103//114 129//115 +f 102//111 101//110 129//115 +f 129//115 103//114 128//116 +f 100//109 128//116 103//114 +f 103//114 104//113 100//109 +f 99//105 100//109 104//113 +f 100//109 96//108 128//116 +f 116//103 99//105 105//117 +f 99//105 104//113 105//117 +f 90//112 105//117 104//113 +f 107//118 110//119 83//120 +f 109//121 110//119 107//118 +f 108//122 109//121 107//118 +f 107//118 135//123 108//122 +f 83//120 135//123 107//118 +f 135//123 136//124 108//122 +f 106//125 108//122 136//124 +f 108//122 106//125 109//121 +f 112//126 113//127 116//128 +f 115//129 112//126 116//128 +f 114//130 112//126 115//129 +f 112//126 114//130 111//131 +f 113//127 112//126 111//131 +f 111//131 114//130 85//132 +f 106//125 85//132 114//130 +f 114//130 115//129 106//125 +f 109//121 106//125 115//129 +f 106//125 136//124 85//132 +f 110//119 109//121 117//133 +f 109//121 115//129 117//133 +f 116//128 117//133 115//129 +f 119//134 123//135 120//136 +f 122//137 123//135 119//134 +f 121//138 122//137 119//134 +f 119//134 132//139 121//138 +f 120//136 132//139 119//134 +f 132//139 133//140 121//138 +f 118//141 121//138 133//140 +f 121//138 118//141 122//137 +f 124//142 83//143 110//144 +f 126//145 124//142 110//144 +f 125//146 124//142 126//145 +f 124//142 125//146 84//147 +f 83//143 124//142 84//147 +f 84//147 125//146 134//148 +f 118//141 134//148 125//146 +f 125//146 126//145 118//141 +f 122//137 118//141 126//145 +f 118//141 133//140 134//148 +f 123//135 122//137 127//149 +f 122//137 126//145 127//149 +f 110//144 127//149 126//145 +f 123//150 127//150 95//150 +f 90//151 95//151 105//151 +f 116//152 105//152 117//152 +f 110//153 117//153 127//153 +f 142//154 146//155 158//156 +f 145//157 146//155 142//154 +f 144//158 145//157 142//154 +f 142//154 138//159 144//158 +f 158//156 138//159 142//154 +f 138//159 183//160 144//158 +f 147//161 144//158 183//160 +f 144//158 147//161 145//157 +f 148//162 174//163 177//164 +f 150//165 148//162 177//164 +f 149//166 148//162 150//165 +f 148//162 149//166 137//167 +f 174//163 148//162 137//167 +f 137//167 149//166 184//168 +f 147//161 184//168 149//166 +f 149//166 150//165 147//161 +f 145//157 147//161 150//165 +f 147//161 183//160 184//168 +f 146//155 145//157 151//169 +f 145//157 150//165 151//169 +f 177//164 151//169 150//165 +f 153//170 171//171 168//172 +f 155//173 171//171 153//170 +f 154//174 155//173 153//170 +f 153//170 143//175 154//174 +f 168//172 143//175 153//170 +f 143//175 152//176 154//174 +f 156//177 154//174 152//176 +f 154//174 156//177 155//173 +f 157//178 158//179 146//180 +f 160//181 157//178 146//180 +f 159//182 157//178 160//181 +f 157//178 159//182 182//183 +f 158//179 157//178 182//183 +f 182//183 159//182 181//184 +f 156//177 181//184 159//182 +f 159//182 160//181 156//177 +f 155//173 156//177 160//181 +f 156//177 152//176 181//184 +f 171//171 155//173 151//185 +f 155//173 160//181 151//185 +f 146//180 151//185 160//181 +f 162//186 165//187 139//188 +f 164//189 165//187 162//186 +f 163//190 164//189 162//186 +f 162//186 188//191 163//190 +f 139//188 188//191 162//186 +f 188//191 189//192 163//190 +f 161//193 163//190 189//192 +f 163//190 161//193 164//189 +f 167//194 168//195 171//196 +f 170//197 167//194 171//196 +f 169//198 167//194 170//197 +f 167//194 169//198 166//199 +f 168//195 167//194 166//199 +f 166//199 169//198 141//200 +f 161//193 141//200 169//198 +f 169//198 170//197 161//193 +f 164//189 161//193 170//197 +f 161//193 189//192 141//200 +f 165//187 164//189 151//201 +f 164//189 170//197 151//201 +f 171//196 151//201 170//197 +f 173//202 177//203 174//204 +f 176//205 177//203 173//202 +f 175//206 176//205 173//202 +f 173//202 185//207 175//206 +f 174//204 185//207 173//202 +f 185//207 186//208 175//206 +f 172//209 175//206 186//208 +f 175//206 172//209 176//205 +f 178//210 139//211 165//212 +f 180//213 178//210 165//212 +f 179//214 178//210 180//213 +f 178//210 179//214 140//215 +f 139//211 178//210 140//215 +f 140//215 179//214 187//216 +f 172//209 187//216 179//214 +f 179//214 180//213 172//209 +f 176//205 172//209 180//213 +f 172//209 186//208 187//216 +f 177//203 176//205 151//217 +f 176//205 180//213 151//217 +f 165//212 151//217 180//213 diff --git a/assets/voxygen/lod/terracotta_palace.obj b/assets/voxygen/lod/terracotta_palace.obj new file mode 100644 index 0000000..f8b4298 --- /dev/null +++ b/assets/voxygen/lod/terracotta_palace.obj @@ -0,0 +1,2507 @@ +# Blender 4.0.2 +# www.blender.org +o 72_52_42 +v -7.000000 7.000000 106.000000 +v 7.000000 7.000000 106.000000 +v -7.000000 7.000000 134.000000 +v -7.000000 -7.000000 106.000000 +v 7.000000 7.000000 134.000000 +v 7.000000 -7.000000 134.000000 +v 1.000000 1.000000 143.000000 +v 1.000000 -1.000000 143.000000 +v -1.000000 -1.000000 143.000000 +v 1.000000 -1.000000 153.000015 +v 1.000000 1.000000 153.000015 +v -1.000000 1.000000 153.000015 +v -1.000000 -1.000000 153.000015 +v -1.000000 1.000000 143.000000 +v -7.000000 -7.000000 134.000000 +v 7.000000 -7.000000 106.000000 +v 17.079620 12.871114 61.302666 +v 15.917357 1.094835 61.305752 +v 18.217724 8.438004 49.819496 +v 19.528893 19.551392 54.296768 +v 18.475780 18.480757 61.317318 +v 12.159048 16.888033 61.292877 +v 3.032285 18.112785 48.647839 +v 12.575706 19.025658 49.674797 +v -1.103920 15.917519 61.301960 +v -11.636707 17.362953 54.960758 +v -18.397610 18.271791 61.326866 +v -16.804571 11.614470 61.302197 +v -15.917111 -1.093694 61.310223 +v -17.059063 -12.736662 61.292553 +v -18.217726 -8.438026 49.819496 +v -18.112785 3.032290 48.647839 +v -11.614453 -16.804569 61.302219 +v 1.093728 -15.917789 61.300495 +v 8.438000 -18.217720 49.819496 +v -3.032292 -18.112787 48.647839 +v 12.736373 -17.059225 61.288086 +v 16.888224 -12.161831 61.297729 +v 19.025656 -12.575707 49.674801 +v 18.480703 -18.475714 61.317310 +v 18.112785 -3.032285 48.647839 +v 19.551395 -19.528894 54.296738 +v 16.937635 -21.815672 46.196999 +v 22.427338 -22.425585 49.065861 +v 24.132666 -13.986744 41.556629 +v 25.714466 -25.781706 46.592289 +v 20.103561 -26.770752 41.590336 +v 29.597507 -29.581726 45.892925 +v 10.975017 -23.834692 41.137535 +v 7.846627 -28.735983 36.378456 +v 24.187616 -32.322998 40.399441 +v 18.412874 -35.872597 37.118977 +v 29.251553 -36.906582 42.980209 +v 34.678612 -34.600552 48.586338 +v 36.583721 -30.107798 43.622257 +v 32.210823 -21.748669 39.016266 +v 39.186481 -20.580915 38.360592 +v 40.904587 -10.680614 35.727394 +v 41.644169 2.915259 34.755775 +v 37.655037 -4.733150 34.105137 +v 35.450840 -13.041722 35.344543 +v 28.292940 -10.499584 37.192764 +v 31.899132 0.042285 34.617619 +v 28.735985 7.846618 36.378452 +v 35.258343 8.543037 34.619728 +v 35.853695 18.399097 37.116859 +v 40.108704 16.707043 36.998188 +v 36.979164 28.886824 42.680805 +v -41.481792 -2.198161 34.708862 +v -39.906719 -17.564056 37.184361 +v -3.875652 -41.568039 34.990128 +v -14.282210 -40.430843 36.256241 +v -2.803772 -33.797173 34.010765 +v -15.792262 -34.367607 36.204456 +v -25.333582 -38.005520 40.483440 +v -28.503489 -32.912544 42.918724 +v -35.049786 -34.919117 48.970577 +v -36.628475 -29.880985 43.496151 +v -33.412666 -33.484573 47.657234 +v -29.322851 -29.360298 45.897850 +v -32.323002 -24.187620 40.399441 +v -35.872597 -18.412878 37.118980 +v -28.735985 -7.846611 36.378452 +v -26.770750 -20.103565 41.590336 +v -21.815664 -16.937611 46.196999 +v -23.834682 -10.975035 41.137550 +v -22.425587 -22.427338 49.065868 +v -25.781708 -25.714478 46.592285 +v -21.278999 -29.358961 40.239853 +v -13.986738 -24.132668 41.556629 +v -10.499577 -28.292942 37.192764 +v -0.072014 -23.297163 40.310596 +v -12.575710 -19.025663 49.674789 +v -19.528896 -19.551397 54.296738 +v -18.475800 -18.480968 61.317265 +v -23.297165 0.072005 40.310593 +v -28.292942 10.499587 37.192764 +v -24.132664 13.986738 41.556629 +v -22.427372 22.425631 49.065823 +v -19.025660 12.575690 49.674797 +v -29.587200 23.091753 41.119953 +v -25.714464 25.781704 46.592297 +v -29.597523 29.581739 45.892929 +v -20.103558 26.770746 41.590340 +v -13.166211 20.718016 45.933929 +v -10.975035 23.834684 41.137550 +v -10.397236 31.521667 35.666504 +v -24.187616 32.323006 40.399441 +v -18.380957 35.828777 37.114071 +v -30.528236 36.345680 44.110500 +v -21.582769 38.887337 38.596252 +v -34.796906 34.727264 48.715599 +v -36.162640 31.350163 44.887894 +v -37.921783 25.256363 40.477913 +v -32.210823 21.748661 39.016262 +v -35.496208 13.105736 35.351173 +v -39.258335 20.442446 38.251854 +v -41.205517 10.180814 35.664715 +v -37.698315 4.719771 34.103374 +v -35.258335 -8.543035 34.619728 +v -31.899128 -0.042287 34.617619 +v -12.411277 40.669968 35.996628 +v -3.294847 41.833023 35.045784 +v 4.818691 41.645317 35.079948 +v -5.856139 37.819180 34.257339 +v -0.042286 31.899128 34.617619 +v 6.741293 35.722305 34.252251 +v 11.949274 40.632652 35.791943 +v 19.132719 35.190876 37.448128 +v 11.579324 28.989439 36.987934 +v 13.986738 24.132668 41.556625 +v -2.183427 24.896372 38.518913 +v 25.870018 30.518345 42.052048 +v 34.732391 34.779369 48.705116 +v 25.781700 25.714464 46.592289 +v 30.203529 36.426834 43.716782 +v 29.322863 29.360304 45.897850 +v 26.770746 20.103550 41.590336 +v 32.323009 24.187620 40.399441 +v 22.649666 14.662282 43.431541 +v 22.425537 22.427298 49.065914 +v 23.297163 -0.072013 40.310593 +v 19.911549 39.352589 38.101894 +v -19.551413 19.528908 54.296684 +v 4.230606 -41.311676 34.810753 +v 8.543042 -35.258339 34.619728 +v 14.723398 -40.497097 36.447891 +v 19.144470 -39.517944 37.841091 +v 29.587193 -23.091761 41.119957 +v 9.517340 3.731451 91.318459 +v 10.558553 6.675976 86.796608 +v 9.905395 -6.198037 91.319359 +v 10.241517 -2.293080 85.972473 +v 10.753027 10.751256 91.238731 +v 6.198205 9.905389 91.319847 +v -3.731111 9.517263 91.319092 +v 4.039157 -9.528766 91.322876 +v -9.495965 -0.000001 91.317390 +v -9.495965 -0.000001 91.317390 +v -10.102888 3.387513 86.550484 +v -10.537663 -10.422021 91.316933 +v -10.558555 -6.675972 86.796600 +v -10.906965 -10.916202 91.315292 +v -3.387577 -10.102750 86.550964 +v -1.111957 -15.821933 71.519051 +v 9.041627 -15.944118 73.126808 +v 6.675958 -10.558551 86.796600 +v -12.109865 -12.148798 85.695076 +v -10.595104 -16.496323 72.869926 +v -10.039267 -21.058298 67.480957 +v 0.506645 -19.641090 66.618546 +v -18.319246 -21.827297 71.902267 +v -15.530911 -15.578319 79.096611 +v -16.041586 -6.820338 72.171417 +v -19.320486 -16.047234 72.648621 +v -19.720028 -19.681042 75.937790 +v -23.308556 -23.399616 77.046356 +v -25.969074 -22.040974 74.431999 +v -22.223040 -25.912207 74.757492 +v -24.436852 -15.676831 68.506378 +v -24.987566 -24.992083 79.260780 +v -27.024090 -4.062994 64.239525 +v -21.964081 -9.470351 66.596588 +v -27.531212 -16.727379 69.421654 +v -28.660881 -11.587342 66.853973 +v -29.748503 -1.901833 64.810165 +v -2.724083 -29.697836 64.991180 +v -10.721207 -28.861807 66.553680 +v -17.606052 -27.270912 70.150352 +v -7.479210 -26.856716 64.892883 +v -13.629719 -25.148996 67.428383 +v -0.004575 -23.079807 64.249001 +v 2.419459 -26.825193 63.946075 +v 15.676830 -24.436857 68.506371 +v 9.470366 -21.964079 66.596596 +v 5.457831 -29.432638 65.080078 +v 14.384373 -28.058168 68.130928 +v 29.427637 7.519583 65.730011 +v 29.695101 -3.550756 64.838913 +v 27.988653 -14.694731 68.356384 +v 26.151693 -21.464487 73.581268 +v 23.390459 -23.303270 77.039856 +v 21.827295 -18.319246 71.902267 +v 25.015636 -25.003521 79.350098 +v 23.244511 -14.209654 68.213943 +v 21.105270 -26.272766 73.241516 +v 18.652571 -8.017518 68.913208 +v 25.340691 -9.277129 65.335838 +v 20.638374 -0.292327 65.668915 +v 26.888573 -3.346556 64.103523 +v 27.038132 4.071713 64.241325 +v 23.367197 3.620509 64.627678 +v 21.964079 9.470350 66.596588 +v 19.320482 16.047220 72.648621 +v 15.943844 9.031811 73.123497 +v 24.411751 15.664562 68.509064 +v 26.453114 20.543255 72.590935 +v 23.324389 23.415348 77.061806 +v 28.350222 13.388025 67.732849 +v 14.272744 28.101589 68.131355 +v 5.330357 29.601400 65.194687 +v -2.293442 29.890167 65.048668 +v -11.372042 28.692980 66.734512 +v -4.173825 27.011786 64.257149 +v -15.649902 24.381752 68.512276 +v -2.811614 21.608753 65.117310 +v -9.470348 21.964079 66.596588 +v 3.032225 26.118835 64.100044 +v 11.827579 24.828274 66.344696 +v 4.639370 21.986708 65.284752 +v 1.111961 15.821931 71.519051 +v 8.017516 18.652571 68.913208 +v 11.593083 16.155983 74.257683 +v 18.319252 21.827297 71.902267 +v 19.038658 19.015989 75.990929 +v 21.518532 26.037842 73.656311 +v 25.012590 25.025368 79.341827 +v 13.212482 13.235427 83.196793 +v 2.293082 10.241516 85.972473 +v -6.675951 10.558556 86.796585 +v -6.820339 16.041588 72.171410 +v -15.580191 15.532012 79.093613 +v -16.047176 19.320478 72.648590 +v -12.147303 12.108439 85.698982 +v -10.836675 10.869506 91.314346 +v -16.156763 11.592519 74.255867 +v -15.821931 1.111960 71.519051 +v -18.652575 8.017522 68.913208 +v -21.827301 18.319250 71.902267 +v -23.244514 14.209646 68.213943 +v -26.300615 21.161190 73.296227 +v -19.681032 19.720020 75.937805 +v -23.406923 23.319588 77.055893 +v -20.377632 26.456537 72.379585 +v -25.029287 25.023718 79.378082 +v -28.042244 14.612337 68.261345 +v -29.434830 7.272052 65.667870 +v -25.372623 9.323910 65.342987 +v -20.638378 0.292324 65.668915 +v -26.920675 3.337639 64.101784 +v -23.367199 -3.620507 64.627678 +v -9.638389 3.596112 91.317383 +v -9.495981 0.000404 91.317390 +v 15.821933 -1.111962 71.519051 +v 16.155983 -11.593091 74.257690 +v 19.015980 -19.038645 75.990929 +v 13.237450 -13.213790 83.192177 +v 10.746494 -10.747972 91.266090 +v 16.047232 -19.320498 72.648605 +v 5.703414 2.232495 121.317749 +v 5.840573 1.433328 117.443787 +v 6.350809 -6.384046 121.312241 +v 6.390026 6.365336 121.311516 +v 2.220806 -5.703938 121.317505 +v -2.354679 5.706297 121.319435 +v -5.703611 -2.226147 121.317551 +v -5.960245 -1.953299 117.006554 +v -6.357966 6.434242 121.314148 +v -6.434154 -6.357942 121.312897 +v -7.646861 -7.647277 114.046608 +v -6.501654 -8.448684 108.349373 +v 1.898739 -5.970375 116.938202 +v -0.518832 -9.068180 103.060417 +v 8.037847 -8.134595 112.151199 +v 5.341972 -9.610271 102.926620 +v 5.256822 -12.838491 96.771996 +v -1.066527 -11.775538 96.460815 +v 10.289843 -12.790428 101.112106 +v 11.801387 -11.790106 105.615356 +v 12.856240 -15.680649 103.494247 +v 13.595431 -11.232512 101.805664 +v 11.088149 -6.492315 100.180130 +v 14.900133 -14.933192 108.544212 +v 16.440157 -10.251671 99.768036 +v 8.447590 -16.552713 97.644791 +v 3.581814 -15.146491 94.590897 +v 3.024110 -17.632406 94.955925 +v -3.406385 -17.528185 94.976234 +v -0.916686 -14.761344 93.994576 +v -8.609783 -16.813820 98.118187 +v -6.677318 17.237471 96.634285 +v 0.203818 18.016594 94.874466 +v 6.827881 17.235771 96.796509 +v -2.136455 16.092546 94.129051 +v 3.598804 16.400293 94.632698 +v 6.346455 14.054881 96.408165 +v 0.976455 14.206264 94.279663 +v 9.664300 16.300180 98.881142 +v 13.470639 15.483231 104.938606 +v 11.232512 13.595429 101.805664 +v 16.664869 9.336070 98.681450 +v 15.513356 13.368028 104.644211 +v 12.802249 10.435829 101.282890 +v 14.790818 14.796759 108.563324 +v 11.437508 11.419353 105.981911 +v 8.134594 8.037842 112.151222 +v 6.492316 11.088148 100.180145 +v 9.610271 5.341974 102.926628 +v 12.838490 5.256815 96.771996 +v 10.188568 0.469193 99.226967 +v 13.301792 -1.499778 94.810608 +v 14.525488 -7.349181 96.760025 +v 15.758908 -3.060682 94.248520 +v 15.115500 4.800590 94.979530 +v 17.646669 4.547794 95.739647 +v 17.740707 0.705500 94.645264 +v 17.333288 -5.578482 95.916138 +v 0.518833 9.068179 103.060425 +v 1.066520 11.775536 96.460831 +v -5.341970 9.610271 102.926620 +v -4.855925 13.418035 95.865974 +v -7.806664 15.374844 97.056076 +v -10.437435 12.802464 101.284637 +v -14.802279 14.785024 108.572617 +v -11.419946 11.437998 105.981506 +v -12.571358 15.692177 102.869675 +v -13.595431 11.232515 101.805672 +v -8.448684 6.501665 108.349380 +v -7.647281 7.646863 114.046600 +v -11.088148 6.492306 100.180130 +v -9.068181 0.518836 103.060417 +v -11.775537 1.066523 96.460831 +v -14.534841 6.734340 96.238266 +v -14.770672 -1.700958 94.003288 +v -16.423933 3.666914 94.655029 +v -16.759352 8.901265 98.384705 +v -15.633683 12.992401 103.873634 +v -17.648138 5.043588 95.951820 +v -17.786686 -1.336907 94.724243 +v -16.757149 -7.725291 97.033897 +v -12.790429 -10.289840 101.112099 +v -12.838490 -5.256815 96.771996 +v -16.519409 -10.111743 99.547592 +v -15.562436 -13.321427 104.614799 +v -14.759422 -14.799646 108.551971 +v -12.461245 -15.847666 102.953812 +v -11.232508 -13.595429 101.805664 +v -7.349140 -14.525492 96.759987 +v -6.492306 -11.088151 100.180130 +v -11.791493 -11.803151 105.614044 +v -9.610270 -5.341973 102.926628 +v -1.408287 5.813342 117.595924 +vn -0.0000 1.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 0.8321 0.5547 +vn -0.0000 0.8320 0.5547 +vn 1.0000 -0.0000 -0.0000 +vn 0.8321 -0.0000 0.5547 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.8321 0.5547 +vn -0.8321 -0.0000 0.5547 +vn -0.0000 -0.8320 0.5547 +vn 0.9765 -0.1637 0.1403 +vn 0.9881 -0.0098 0.1534 +vn 0.9368 -0.1172 0.3295 +vn 0.9391 -0.2262 0.2587 +vn 0.9646 -0.2404 0.1080 +vn -0.2445 0.9413 0.2327 +vn -0.1494 0.9771 0.1516 +vn -0.2434 0.9636 0.1104 +vn 0.0058 0.9904 0.1379 +vn -0.0385 0.9274 0.3722 +vn -0.1815 0.9206 0.3458 +vn 0.1457 0.9730 0.1792 +vn 0.2045 0.9758 0.0778 +vn -0.9880 0.0108 0.1540 +vn -0.9358 0.1153 0.3330 +vn -0.9767 0.1625 0.1405 +vn -0.9311 -0.0437 0.3622 +vn -0.9777 -0.1434 0.1537 +vn -0.0108 -0.9880 0.1540 +vn 0.0437 -0.9311 0.3623 +vn -0.1153 -0.9358 0.3331 +vn -0.1625 -0.9766 0.1406 +vn 0.1444 -0.9777 0.1526 +vn 0.9771 0.1494 0.1516 +vn 0.9413 0.2444 0.2327 +vn 0.9206 0.1815 0.3458 +vn 0.9312 0.0440 0.3617 +vn 0.9636 0.2434 0.1104 +vn -0.2319 -0.9418 0.2433 +vn -0.2385 -0.9651 0.1084 +vn -0.2653 -0.8342 0.4834 +vn -0.3306 -0.8206 0.4661 +vn 0.8220 0.3070 0.4797 +vn 0.7294 0.2309 0.6439 +vn 0.6678 0.4056 0.6242 +vn -0.4241 -0.6709 0.6084 +vn -0.3495 -0.5967 0.7224 +vn -0.5743 -0.3742 0.7281 +vn -0.4709 -0.2893 0.8334 +vn -0.1641 -0.7404 0.6518 +vn -0.1385 -0.4690 0.8723 +vn -0.3471 -0.0984 0.9327 +vn -0.5902 -0.2012 0.7818 +vn -0.6285 -0.2609 0.7328 +vn 0.2773 0.6570 0.7010 +vn 0.2252 0.5919 0.7739 +vn 0.3853 0.5746 0.7220 +vn -0.0270 0.4023 0.9151 +vn 0.2574 0.4203 0.8701 +vn 0.0770 0.2422 0.9672 +vn -0.1938 0.1997 0.9605 +vn -0.1320 -0.0625 0.9893 +vn -0.0728 0.0769 0.9944 +vn 0.3066 0.0111 0.9518 +vn 0.4948 0.1652 0.8531 +vn 0.4852 -0.1463 0.8621 +vn 0.0682 -0.1662 0.9837 +vn 0.0824 -0.3528 0.9321 +vn -0.1202 -0.2981 0.9469 +vn 0.1902 -0.5889 0.7855 +vn 0.0504 -0.1721 0.9838 +vn 0.2379 0.0809 0.9679 +vn 0.0789 0.1139 0.9903 +vn 0.2975 -0.1364 0.9449 +vn 0.4910 -0.0555 0.8694 +vn 0.6843 -0.0356 0.7284 +vn 0.5955 -0.2218 0.7721 +vn -0.1676 0.6801 0.7137 +vn -0.1763 0.5979 0.7819 +vn -0.0809 0.7217 0.6875 +vn 0.6921 -0.2033 0.6925 +vn -0.2819 0.4697 0.8366 +vn 0.5594 -0.4787 0.6767 +vn -0.4129 0.5562 0.7212 +vn -0.4722 0.1438 0.8697 +vn -0.0919 0.3551 0.9303 +vn -0.5968 0.3490 0.7225 +vn -0.6744 0.4215 0.6062 +vn -0.8342 0.2653 0.4834 +vn -0.8206 0.3306 0.4661 +vn -0.7404 0.1641 0.6518 +vn 0.3070 -0.8220 0.4797 +vn 0.4061 -0.6628 0.6291 +vn 0.2258 -0.7354 0.6389 +vn 0.3983 -0.4689 0.7884 +vn 0.1820 -0.9205 0.3459 +vn 0.0050 -0.7378 0.6750 +vn 0.1604 -0.5036 0.8489 +vn 0.2432 -0.9419 0.2317 +vn -0.9418 0.2319 0.2433 +vn -0.9651 0.2385 0.1084 +vn 0.2361 -0.9653 0.1118 +vn -0.7378 -0.0050 0.6750 +vn -0.4944 -0.1652 0.8534 +vn -0.7294 -0.2309 0.6439 +vn -0.9205 -0.1820 0.3459 +vn -0.8220 -0.3070 0.4797 +vn -0.6678 -0.4056 0.6242 +vn -0.5025 -0.4414 0.7435 +vn 0.4241 0.6709 0.6084 +vn 0.3211 0.8195 0.4746 +vn 0.3462 0.6064 0.7159 +vn -0.3804 -0.5741 0.7250 +vn 0.5766 0.3702 0.7284 +vn 0.4809 0.2847 0.8293 +vn 0.1936 0.8612 0.4700 +vn 0.1694 0.7060 0.6876 +vn 0.1941 0.3305 0.9236 +vn 0.3315 0.0764 0.9404 +vn 0.4343 -0.0108 0.9007 +vn 0.6080 0.2693 0.7469 +vn 0.6306 0.2828 0.7227 +vn -0.2849 -0.6661 0.6893 +vn -0.2531 -0.6177 0.7446 +vn -0.0889 -0.5030 0.8597 +vn -0.2682 -0.4175 0.8682 +vn 0.0193 -0.3728 0.9277 +vn -0.0762 -0.2415 0.9674 +vn 0.1925 -0.1918 0.9624 +vn 0.1340 0.0580 0.9893 +vn 0.0642 -0.0757 0.9951 +vn -0.3065 -0.0114 0.9518 +vn -0.0613 0.1670 0.9841 +vn 0.1097 0.3224 0.9402 +vn 0.0347 -0.2139 0.9762 +vn 0.2255 -0.1124 0.9677 +vn 0.1049 -0.0629 0.9925 +vn -0.0589 -0.1626 0.9849 +vn 0.0029 0.3025 0.9531 +vn -0.1240 0.0582 0.9906 +vn -0.2217 -0.0858 0.9713 +vn -0.3660 0.1171 0.9232 +vn -0.2041 0.4549 0.8668 +vn -0.4913 0.4023 0.7725 +vn -0.2295 0.7260 0.6483 +vn 0.0264 0.6757 0.7367 +vn -0.6603 0.2945 0.6909 +vn -0.6063 0.2109 0.7667 +vn -0.6053 0.4267 0.6720 +vn -0.3967 0.6718 0.6256 +vn 0.6744 -0.4215 0.6062 +vn 0.5903 -0.3540 0.7254 +vn 0.3873 -0.5725 0.7227 +vn 0.2935 -0.4713 0.8317 +vn 0.2663 -0.6316 0.7281 +vn 0.7861 -0.2229 0.5766 +vn 0.8292 -0.3084 0.4662 +vn -0.3070 0.8220 0.4797 +vn 0.7371 0.0012 0.6758 +vn -0.3941 -0.0702 0.9164 +vn 0.2557 0.9326 0.2547 +vn -0.9416 -0.2423 0.2338 +vn -0.9658 -0.2315 0.1171 +vn -0.0619 0.1041 0.9926 +vn -0.1614 -0.0835 0.9834 +vn -0.2411 0.0926 0.9661 +vn -0.3983 0.1007 0.9117 +vn 0.5025 0.4414 0.7435 +vn 0.9666 0.0564 0.2500 +vn 0.9591 -0.1469 0.2418 +vn 0.9870 -0.0680 0.1457 +vn 0.9594 -0.2275 0.1667 +vn 0.9776 0.1360 0.1608 +vn -0.0000 -0.0000 -1.0000 +vn -0.9690 -0.0679 0.2373 +vn -0.9928 0.0657 0.0999 +vn -0.9762 0.0976 0.1936 +vn -0.9711 0.1168 0.2081 +vn -0.7175 0.5347 0.4464 +vn -0.8699 0.3913 0.3001 +vn 0.5222 -0.3927 0.7570 +vn 0.0649 -0.9746 0.2141 +vn -0.0709 -0.9875 0.1410 +vn 0.0611 -0.9978 0.0249 +vn 0.2686 -0.8206 0.5045 +vn 0.0292 -0.8636 0.5033 +vn -0.2153 -0.8447 0.4900 +vn -0.1429 -0.9586 0.2465 +vn 0.2064 -0.9387 0.2762 +vn 0.2097 -0.9635 0.1664 +vn -0.0147 -0.6843 0.7291 +vn 0.2926 -0.5424 0.7875 +vn 0.5820 -0.4710 0.6629 +vn 0.3364 -0.8483 0.4089 +vn -0.9338 0.2174 0.2842 +vn -0.8420 0.1723 0.5112 +vn -0.8628 0.3049 0.4033 +vn -0.6662 0.4659 0.5824 +vn -0.5819 0.5800 0.5701 +vn 0.5120 -0.6719 0.5351 +vn -0.2412 0.7650 0.5971 +vn 0.7850 -0.2471 0.5681 +vn -0.2276 0.7228 0.6525 +vn -0.0944 0.8408 0.5330 +vn -0.2310 0.5315 0.8149 +vn 0.8329 -0.1302 0.5379 +vn 0.7402 -0.1995 0.6422 +vn -0.4542 0.3017 0.8382 +vn 0.0976 0.1790 0.9790 +vn 0.0304 0.3523 0.9354 +vn 0.0359 0.5943 0.8035 +vn 0.2948 0.0576 0.9538 +vn 0.3866 0.1836 0.9038 +vn 0.4726 -0.1282 0.8719 +vn 0.6192 -0.0898 0.7801 +vn 0.2472 0.0439 0.9680 +vn 0.0936 0.2538 0.9627 +vn 0.0180 -0.3348 0.9421 +vn -0.1068 0.0766 0.9913 +vn -0.2573 0.1161 0.9593 +vn -0.5354 -0.2057 0.8191 +vn -0.2971 -0.4389 0.8480 +vn -0.4319 0.0609 0.8998 +vn 0.1138 0.8367 0.5357 +vn 0.1994 0.7140 0.6712 +vn 0.2494 0.7918 0.5575 +vn 0.4698 0.5806 0.6650 +vn 0.3362 0.4753 0.8131 +vn -0.0370 0.5241 0.8508 +vn -0.8356 -0.0561 0.5465 +vn -0.7707 -0.2212 0.5976 +vn -0.7076 -0.2170 0.6724 +vn 0.0961 0.3148 0.9443 +vn 0.6922 0.2344 0.6826 +vn 0.5698 0.0196 0.8216 +vn -0.0096 0.1096 0.9939 +vn -0.2842 0.1315 0.9497 +vn -0.1283 -0.1567 0.9793 +vn 0.3030 -0.1282 0.9443 +vn 0.4569 -0.2976 0.8382 +vn 0.6684 -0.4705 0.5761 +vn 0.8426 -0.2131 0.4946 +vn 0.1984 -0.5379 0.8194 +vn -0.0497 -0.3983 0.9159 +vn -0.1410 -0.2995 0.9436 +vn 0.2014 -0.6995 0.6857 +vn 0.2044 -0.7709 0.6033 +vn -0.1948 -0.1984 0.9606 +vn 0.0487 -0.2943 0.9545 +vn 0.1640 -0.0886 0.9825 +vn 0.3694 -0.0508 0.9279 +vn 0.5422 0.1882 0.8189 +vn 0.3062 0.4502 0.8388 +vn 0.1041 0.2052 0.9732 +vn -0.0923 -0.0112 0.9957 +vn -0.4105 0.1654 0.8968 +vn -0.1450 0.4763 0.8672 +vn 0.0646 0.7366 0.6732 +vn -0.0259 0.8551 0.5178 +vn -0.2355 0.7071 0.6668 +vn -0.5717 0.4581 0.6806 +vn -0.2914 0.8401 0.4575 +vn -0.5158 0.7004 0.4933 +vn -0.7920 0.2528 0.5557 +vn -0.7117 0.2050 0.6719 +vn -0.8363 0.1191 0.5352 +vn -0.5254 -0.0704 0.8479 +vn 0.0367 -0.8289 0.5582 +vn -0.2360 0.9206 0.3111 +vn 0.6678 -0.5302 0.5224 +vn 0.9092 -0.2637 0.3222 +vn -0.0574 0.9668 0.2490 +vn -0.1944 0.9560 0.2197 +vn 0.1724 0.8420 0.5111 +vn 0.1451 0.9604 0.2377 +vn 0.0729 0.9871 0.1426 +vn -0.1357 0.9777 0.1606 +vn 0.4661 0.6663 0.5821 +vn 0.2170 0.9334 0.2857 +vn 0.3049 0.8627 0.4034 +vn 0.2166 0.9672 0.1329 +vn -0.9381 -0.2065 0.2781 +vn -0.9685 -0.1943 0.1560 +vn -0.8354 -0.2959 0.4632 +vn -0.8459 -0.3487 0.4036 +vn -0.8663 -0.0235 0.4990 +vn -0.6918 -0.2344 0.6830 +vn -0.4822 -0.5782 0.6581 +vn -0.3397 -0.4744 0.8121 +vn -0.1845 -0.7090 0.6806 +vn -0.2199 -0.7926 0.5687 +vn -0.6718 -0.5122 0.5351 +vn 0.8296 0.0300 0.5576 +vn 0.7723 0.1920 0.6056 +vn 0.7056 0.2854 0.6486 +vn -0.0905 -0.8320 0.5473 +vn 0.5804 0.5809 0.5707 +vn 0.5569 -0.2226 0.8002 +vn -0.1284 -0.3136 0.9408 +vn 0.0197 -0.5249 0.8509 +vn 0.2638 -0.2571 0.9297 +vn -0.5654 -0.0242 0.8245 +vn 0.0609 -0.1080 0.9923 +vn -0.3032 0.1279 0.9443 +vn -0.9896 -0.1021 0.1009 +vn -0.9947 -0.0388 0.0957 +vn -0.9948 -0.0385 0.0944 +vn 0.8645 0.0132 0.5025 +vn 0.8401 0.2914 0.4575 +vn 0.9206 0.2361 0.3110 +vn 0.7008 0.5152 0.4935 +vn -0.5298 -0.6685 0.5220 +vn -0.2637 -0.9092 0.3221 +vn -0.2298 -0.9585 0.1686 +vn 0.9560 0.1946 0.2196 +vn -0.4703 -0.6683 0.5763 +vn 0.9970 -0.0606 0.0478 +vn 0.9849 0.1240 0.1207 +vn 0.9903 -0.0324 0.1354 +vn 0.9728 -0.1999 0.1168 +vn -0.9965 0.0546 0.0628 +vn -0.9893 0.0475 0.1377 +vn -0.9742 0.2024 0.0998 +vn -0.9852 -0.1111 0.1308 +vn -0.9527 0.2355 0.1919 +vn 0.1114 -0.9852 0.1304 +vn 0.1707 -0.9704 0.1708 +vn 0.2646 -0.9368 0.2290 +vn -0.0479 -0.9889 0.1404 +vn -0.0493 -0.9967 0.0643 +vn 0.0282 -0.9526 0.3030 +vn -0.2435 -0.9106 0.3339 +vn -0.2009 -0.9731 0.1125 +vn -0.2447 -0.9473 0.2067 +vn 0.0664 -0.7878 0.6123 +vn -0.3833 -0.6406 0.6653 +vn -0.3995 -0.8361 0.3760 +vn -0.4120 -0.8640 0.2894 +vn -0.8176 -0.4303 0.3826 +vn -0.7621 -0.3021 0.5726 +vn -0.8146 -0.3668 0.4493 +vn -0.8110 -0.4339 0.3925 +vn 0.9585 0.1757 0.2247 +vn 0.7080 0.6160 0.3455 +vn 0.8319 0.3434 0.4360 +vn 0.3252 0.8540 0.4061 +vn 0.4171 0.7571 0.5027 +vn 0.0776 0.7822 0.6182 +vn -0.6446 -0.3032 0.7019 +vn -0.2990 -0.5317 0.7923 +vn -0.4687 0.2304 0.8528 +vn -0.2981 0.2038 0.9325 +vn -0.2421 0.2335 0.9417 +vn 0.0971 0.2060 0.9737 +vn 0.3171 0.1130 0.9417 +vn -0.0230 -0.4363 0.8995 +vn -0.3359 -0.2347 0.9122 +vn -0.2767 -0.6825 0.6765 +vn 0.2607 -0.6077 0.7502 +vn 0.2239 -0.1321 0.9656 +vn -0.5076 0.3945 0.7660 +vn -0.0859 0.3779 0.9218 +vn -0.7034 0.1966 0.6831 +vn -0.5704 0.0899 0.8164 +vn -0.8513 0.3233 0.4133 +vn -0.7346 0.4530 0.5050 +vn 0.3628 -0.8272 0.4290 +vn 0.5525 -0.6577 0.5120 +vn 0.2434 -0.7095 0.6613 +vn 0.4871 -0.8015 0.3470 +vn -0.8092 0.4783 0.3411 +vn 0.7438 -0.5907 0.3128 +vn -0.5846 0.7419 0.3283 +vn -0.3517 0.8297 0.4334 +vn 0.9132 -0.2508 0.3212 +vn 0.9500 -0.2353 0.2053 +vn -0.1840 0.9588 0.2164 +vn 0.9046 -0.0127 0.4260 +vn 0.6677 -0.3718 0.6449 +vn 0.5732 0.0811 0.8154 +vn 0.3061 0.5827 0.7528 +vn 0.2225 0.2400 0.9449 +vn 0.1467 -0.3986 0.9053 +vn -0.0819 -0.1331 0.9877 +vn -0.2908 -0.5434 0.7875 +vn -0.2999 -0.4041 0.8641 +vn -0.5435 0.2001 0.8152 +vn -0.1098 0.5641 0.8183 +vn -0.0379 0.9540 0.2974 +vn -0.0590 0.8062 0.5886 +vn 0.3606 0.5585 0.7471 +vn 0.2456 0.9081 0.3391 +vn 0.6606 0.0807 0.7464 +vn 0.6412 0.5841 0.4976 +vn 0.8170 0.3535 0.4555 +vn 0.8039 0.4804 0.3507 +vn 0.5862 0.7501 0.3061 +vn 0.5614 -0.1564 0.8126 +vn 0.7289 -0.3029 0.6139 +vn -0.7411 -0.5905 0.3194 +vn -0.4695 -0.8135 0.3433 +vn -0.4231 -0.7335 0.5320 +vn -0.8231 -0.3528 0.4451 +vn -0.9390 -0.2571 0.2286 +vn -0.9714 -0.1659 0.1700 +vn 0.2236 0.9557 0.1916 +vn -0.9526 -0.0282 0.3029 +vn -0.6250 -0.3585 0.6934 +vn -0.7722 -0.0805 0.6303 +vn -0.6195 -0.0055 0.7850 +vn -0.3827 -0.2266 0.8957 +vn -0.2772 -0.8453 0.4568 +vn 0.1322 -0.6319 0.7637 +vn -0.0608 -0.7329 0.6776 +vn 0.2269 -0.5555 0.8000 +vn 0.2226 -0.5562 0.8007 +vn 0.6272 -0.1603 0.7622 +vn 0.2906 0.1285 0.9482 +vn 0.5501 -0.1384 0.8235 +vn 0.2490 0.1767 0.9523 +vn 0.2579 0.3650 0.8946 +vn -0.2930 0.5483 0.7833 +vn -0.2605 0.5011 0.8253 +vn -0.2966 0.6033 0.7403 +vn -0.2967 0.7643 0.5725 +vn -0.2315 0.7366 0.6355 +vn -0.3576 0.8274 0.4331 +vn -0.4282 0.8186 0.3829 +vn 0.8415 -0.3940 0.3696 +vn 0.8469 -0.2073 0.4896 +vn 0.7295 -0.4470 0.5177 +vn 0.6007 0.0719 0.7962 +vn 0.7060 0.0310 0.7075 +vn 0.4069 -0.6725 0.6182 +vn 0.0510 -0.6317 0.7735 +vn 0.3505 -0.8231 0.4468 +vn 0.6265 -0.7035 0.3355 +vn -0.4503 0.8114 0.3727 +vn -0.9110 0.2455 0.3313 +vn -0.8694 0.4089 0.2774 +vn -0.8361 0.3995 0.3760 +vn -0.8270 0.2258 0.5149 +vn 0.0305 0.9915 0.1265 +vn 0.2019 0.9736 0.1062 +vn 0.0729 0.9962 0.0472 +vn -0.1259 0.9850 0.1180 +s 1 +f 1//1 5//1 2//1 +f 1//1 3//1 5//1 +f 4//2 3//2 1//2 +f 3//3 7//3 5//4 +f 2//5 5//5 6//5 +f 5//6 8//6 6//6 +f 5//6 7//6 8//6 +f 8//5 7//5 11//5 +f 9//7 8//7 10//7 +f 6//8 8//8 9//8 +f 8//5 11//5 10//5 +f 7//1 12//1 11//1 +f 14//2 13//2 12//2 +f 7//1 14//1 12//1 +f 3//3 14//3 7//3 +f 15//9 9//9 14//9 +f 14//2 9//2 13//2 +f 15//9 14//9 3//9 +f 16//7 6//7 15//7 +f 6//8 9//8 15//10 +f 4//2 15//2 3//2 +f 16//7 15//7 4//7 +f 2//5 6//5 16//5 +f 9//7 10//7 13//7 +f 17//11 18//12 19//13 +f 17//11 19//13 20//14 +f 17//11 20//14 21//15 +f 20//16 22//17 21//18 +f 25//19 22//17 23//20 +f 22//17 24//21 23//20 +f 22//17 20//16 24//21 +f 26//22 27//23 25//19 +f 25//19 23//20 26//22 +f 29//24 31//25 30//26 +f 29//24 32//27 31//25 +f 28//28 32//27 29//24 +f 34//29 36//30 35//31 +f 34//29 35//31 37//32 +f 33//33 36//30 34//29 +f 38//34 42//35 39//36 +f 38//34 39//36 41//37 +f 18//12 38//34 41//37 +f 42//35 38//34 40//38 +f 37//32 42//39 40//40 +f 35//31 43//41 42//39 +f 37//32 35//31 42//39 +f 43//41 44//42 42//39 +f 42//35 44//43 39//36 +f 39//36 44//43 45//44 +f 44//43 46//45 45//44 +f 46//46 44//42 47//47 +f 43//41 47//47 44//42 +f 46//46 47//47 48//48 +f 48//48 47//47 51//49 +f 49//50 47//47 43//41 +f 47//47 49//50 50//51 +f 51//49 47//47 50//51 +f 51//49 50//51 52//52 +f 51//49 52//52 53//53 +f 54//54 51//49 53//53 +f 48//48 51//49 54//54 +f 54//55 55//56 48//57 +f 57//58 56//59 55//56 +f 56//59 48//57 55//56 +f 61//60 57//58 58//61 +f 58//61 59//62 60//63 +f 58//61 60//63 61//60 +f 63//64 62//65 61//60 +f 61//60 62//65 56//59 +f 60//63 63//64 61//60 +f 57//58 61//60 56//59 +f 63//64 64//66 62//65 +f 65//67 64//66 63//64 +f 65//67 63//64 60//63 +f 66//68 64//66 65//67 +f 67//69 66//68 65//67 +f 59//62 65//67 60//63 +f 67//69 65//67 59//62 +f 68//70 66//68 67//69 +f 73//71 72//72 71//73 +f 73//71 74//74 72//72 +f 72//72 74//74 75//75 +f 77//76 75//75 76//77 +f 74//74 76//77 75//75 +f 79//78 78//79 77//80 +f 79//81 77//76 76//77 +f 81//82 78//79 79//78 +f 80//83 79//81 76//77 +f 80//84 81//82 79//78 +f 83//85 82//86 81//82 +f 81//82 82//86 78//79 +f 84//87 83//85 81//82 +f 84//87 81//82 80//84 +f 88//88 84//87 80//84 +f 85//89 84//87 87//90 +f 86//91 84//87 85//89 +f 86//91 83//85 84//87 +f 88//88 87//90 84//87 +f 87//92 88//93 90//94 +f 88//93 80//83 89//95 +f 88//93 89//95 90//94 +f 93//96 90//94 36//30 +f 36//30 90//94 92//97 +f 87//92 90//94 93//96 +f 91//98 90//94 89//95 +f 92//97 90//94 91//98 +f 33//33 93//96 36//30 +f 94//99 87//92 93//96 +f 33//33 94//99 93//96 +f 30//26 94//100 95//101 +f 94//99 33//33 95//102 +f 31//25 85//89 94//100 +f 30//26 31//25 94//100 +f 85//89 87//90 94//100 +f 50//51 92//97 91//98 +f 36//30 92//97 35//31 +f 35//31 92//97 49//50 +f 92//97 50//51 49//50 +f 73//71 91//98 74//74 +f 91//98 89//95 74//74 +f 50//51 91//98 73//71 +f 89//95 80//83 76//77 +f 89//95 76//77 74//74 +f 96//103 83//85 86//91 +f 31//25 96//103 86//91 +f 31//25 86//91 85//89 +f 32//27 96//103 31//25 +f 96//103 97//104 83//85 +f 98//105 97//104 96//103 +f 32//27 98//105 96//103 +f 100//106 98//105 32//27 +f 99//107 98//105 100//106 +f 99//107 102//108 98//105 +f 98//105 101//109 97//104 +f 102//108 101//109 98//105 +f 102//110 99//111 104//112 +f 102//108 103//113 101//109 +f 102//110 104//112 103//114 +f 108//115 103//114 104//112 +f 99//111 105//116 104//112 +f 105//116 106//117 104//112 +f 107//118 104//112 106//117 +f 107//118 108//115 104//112 +f 107//118 109//119 108//115 +f 109//119 111//120 108//115 +f 111//120 110//121 108//115 +f 110//121 112//122 108//115 +f 108//115 112//122 103//114 +f 112//123 113//124 103//113 +f 113//124 114//125 115//126 +f 103//113 113//124 115//126 +f 115//126 114//125 117//127 +f 103//113 115//126 101//109 +f 115//126 116//128 97//104 +f 115//126 117//127 116//128 +f 101//109 115//126 97//104 +f 116//128 117//127 118//129 +f 118//129 69//130 119//131 +f 118//129 119//131 116//128 +f 116//128 119//131 121//132 +f 119//131 69//130 120//133 +f 121//132 119//131 120//133 +f 97//104 116//128 121//132 +f 121//132 120//133 83//85 +f 97//104 121//132 83//85 +f 120//133 69//130 70//134 +f 83//85 120//133 82//86 +f 120//133 70//134 82//86 +f 123//135 122//136 125//137 +f 124//138 123//135 125//137 +f 125//137 109//119 107//118 +f 122//136 109//119 125//137 +f 126//139 125//137 107//118 +f 127//140 125//137 126//139 +f 124//138 125//137 127//140 +f 128//141 124//138 127//140 +f 129//142 128//141 127//140 +f 129//142 127//140 130//143 +f 127//140 126//139 130//143 +f 133//144 130//143 131//145 +f 131//145 130//143 132//146 +f 130//143 126//139 132//146 +f 133//144 129//142 130//143 +f 134//147 136//148 133//144 +f 137//149 134//147 133//144 +f 135//150 137//149 133//144 +f 135//150 133//144 131//145 +f 136//148 129//142 133//144 +f 135//151 138//152 137//153 +f 139//154 137//153 138//152 +f 134//155 137//153 139//154 +f 139//154 138//152 64//66 +f 66//68 139//154 64//66 +f 68//70 139//154 66//68 +f 68//70 134//155 139//154 +f 138//152 140//156 64//66 +f 141//157 140//156 138//152 +f 135//151 141//157 138//152 +f 24//21 141//158 131//145 +f 141//158 135//150 131//145 +f 20//16 141//158 24//21 +f 141//157 20//14 140//156 +f 140//156 142//159 64//66 +f 19//13 142//159 140//156 +f 20//14 19//13 140//156 +f 19//13 41//37 142//159 +f 64//66 142//159 62//65 +f 62//65 142//159 45//44 +f 41//37 45//44 142//159 +f 136//148 143//160 129//142 +f 129//142 143//160 128//141 +f 126//139 107//118 132//146 +f 132//146 107//118 106//117 +f 105//116 132//146 106//117 +f 105//116 23//20 132//146 +f 23//20 131//145 132//146 +f 24//21 131//145 23//20 +f 122//136 111//120 109//119 +f 99//111 144//161 105//116 +f 144//161 26//22 105//116 +f 26//22 23//20 105//116 +f 26//22 144//161 27//23 +f 144//162 28//28 27//163 +f 144//162 99//107 100//106 +f 28//28 144//162 100//106 +f 28//28 100//106 32//27 +f 70//134 78//79 82//86 +f 145//164 73//71 71//73 +f 50//51 73//71 146//165 +f 146//165 73//71 145//164 +f 146//165 145//164 147//166 +f 52//52 50//51 146//165 +f 52//52 146//165 147//166 +f 52//52 147//166 148//167 +f 52//52 148//167 53//53 +f 56//59 62//65 149//168 +f 62//65 45//44 149//168 +f 56//59 149//168 48//57 +f 46//45 48//57 149//168 +f 46//45 149//168 45//44 +f 35//31 49//50 43//41 +f 39//36 45//44 41//37 +f 18//12 41//37 19//13 +f 153//169 151//170 150//171 +f 150//171 151//170 154//172 +f 150//171 152//173 153//169 +f 160//174 158//174 159//174 +f 160//175 161//176 158//177 +f 160//175 162//178 161//176 +f 161//179 162//178 163//180 +f 164//181 161//181 163//181 +f 164//182 157//183 161//184 +f 164//182 169//185 165//186 +f 164//182 165//186 166//187 +f 164//182 166//187 167//188 +f 164//182 167//188 157//183 +f 168//189 164//182 163//190 +f 168//189 169//185 164//182 +f 165//186 169//185 171//191 +f 170//192 169//185 172//193 +f 171//191 169//185 170//192 +f 168//189 173//194 169//185 +f 173//194 172//193 169//185 +f 168//195 174//196 173//197 +f 174//196 175//198 173//197 +f 176//199 173//197 175//198 +f 176//200 172//193 173//194 +f 176//199 175//198 177//201 +f 176//200 177//202 172//193 +f 177//201 178//203 181//204 +f 180//205 178//203 177//201 +f 177//202 181//206 179//207 +f 177//202 179//207 172//193 +f 175//198 180//205 177//201 +f 183//208 182//209 180//205 +f 182//209 185//210 180//205 +f 180//205 184//211 178//203 +f 183//208 180//205 175//198 +f 185//210 184//211 180//205 +f 185//210 182//209 186//212 +f 188//213 191//214 189//215 +f 190//216 188//213 187//217 +f 191//214 188//213 190//216 +f 170//192 172//193 191//214 +f 191//214 172//193 189//215 +f 170//192 191//214 190//216 +f 192//218 170//192 190//216 +f 192//218 190//216 193//219 +f 193//219 190//216 187//217 +f 196//220 193//219 187//217 +f 194//221 195//222 193//219 +f 194//221 193//219 196//220 +f 195//222 192//218 193//219 +f 194//221 196//220 197//223 +f 204//224 201//225 202//226 +f 202//226 201//225 203//227 +f 205//228 203//227 201//225 +f 200//229 205//228 201//225 +f 204//230 202//231 206//232 +f 202//231 194//221 206//232 +f 194//221 197//223 206//232 +f 208//233 207//234 205//228 +f 205//228 207//234 203//227 +f 200//229 208//233 205//228 +f 209//235 207//234 208//233 +f 210//236 209//235 208//233 +f 208//233 200//229 199//237 +f 199//237 210//236 208//233 +f 199//237 211//238 210//236 +f 211//238 212//239 210//236 +f 212//239 209//235 210//236 +f 212//239 213//240 209//235 +f 211//238 213//240 212//239 +f 213//240 214//241 215//242 +f 216//243 214//241 213//240 +f 213//240 215//242 209//235 +f 216//243 213//240 211//238 +f 219//244 216//243 198//245 +f 198//245 216//243 211//238 +f 217//246 218//247 216//243 +f 217//246 216//243 219//244 +f 218//247 214//241 216//243 +f 221//248 222//249 224//250 +f 222//249 223//251 224//250 +f 224//250 225//252 227//253 +f 223//251 225//252 224//250 +f 226//254 224//250 227//253 +f 228//255 224//250 226//254 +f 221//248 224//250 228//255 +f 229//256 221//248 228//255 +f 229//256 228//255 230//257 +f 228//255 226//254 230//257 +f 230//257 226//258 231//259 +f 232//260 230//257 231//259 +f 229//256 230//257 232//260 +f 234//261 232//260 233//262 +f 231//259 233//262 232//260 +f 234//261 229//256 232//260 +f 235//263 218//264 234//261 +f 235//263 234//261 233//262 +f 236//265 229//256 234//261 +f 218//264 236//265 234//261 +f 237//266 236//265 218//264 +f 236//265 220//267 229//256 +f 218//247 217//246 237//268 +f 238//269 235//263 233//262 +f 215//242 235//270 238//271 +f 235//270 214//241 218//247 +f 235//270 215//242 214//241 +f 238//271 151//170 215//242 +f 239//272 238//269 233//262 +f 154//273 238//269 239//272 +f 151//170 238//271 154//172 +f 239//272 233//262 231//259 +f 239//272 231//259 241//274 +f 239//272 240//275 156//276 +f 240//275 239//272 241//274 +f 239//272 155//277 154//273 +f 156//276 155//277 239//272 +f 226//258 227//253 241//274 +f 241//274 227//253 243//278 +f 241//274 231//259 226//258 +f 244//279 241//274 242//280 +f 242//280 241//274 243//278 +f 244//279 240//275 241//274 +f 240//275 244//279 245//281 +f 244//282 160//175 245//283 +f 244//282 246//284 160//175 +f 244//282 242//285 246//284 +f 160//175 246//284 247//286 +f 246//284 248//287 247//286 +f 246//284 249//288 248//287 +f 242//285 249//288 246//284 +f 249//288 250//289 248//287 +f 249//288 251//290 250//289 +f 253//291 251//290 249//288 +f 252//292 253//291 249//288 +f 252//292 249//288 242//285 +f 255//293 253//294 254//295 +f 254//295 253//294 225//252 +f 255//296 251//290 253//291 +f 252//297 243//278 253//294 +f 225//252 253//294 243//278 +f 225//252 223//251 254//298 +f 258//299 256//300 257//301 +f 250//289 251//290 256//300 +f 250//289 256//300 258//299 +f 248//287 258//299 259//302 +f 258//299 260//303 259//302 +f 250//289 258//299 248//287 +f 257//301 260//303 258//299 +f 259//302 260//303 261//304 +f 260//303 186//212 182//209 +f 261//304 260//303 182//209 +f 257//301 186//212 260//303 +f 261//304 182//209 183//208 +f 259//302 261//304 183//208 +f 248//287 259//302 247//286 +f 259//302 183//208 174//196 +f 247//286 259//302 174//196 +f 252//297 242//280 243//278 +f 160//175 247//286 174//196 +f 156//276 240//275 245//281 +f 160//175 262//305 245//283 +f 160//175 263//306 262//305 +f 160//175 159//307 263//306 +f 227//253 225//252 243//278 +f 221//248 229//256 220//267 +f 151//170 153//169 215//242 +f 215//242 264//308 209//235 +f 153//169 264//308 215//242 +f 153//169 265//309 264//308 +f 209//235 264//308 207//234 +f 264//308 265//309 207//234 +f 207//234 265//309 203//227 +f 153//169 267//310 265//309 +f 267//310 266//311 265//309 +f 266//311 203//227 265//309 +f 166//187 266//312 267//313 +f 167//188 267//313 268//314 +f 167//188 166//187 267//313 +f 268//315 267//310 153//169 +f 157//183 167//188 268//314 +f 153//169 152//173 268//315 +f 266//311 202//226 203//227 +f 166//187 269//316 266//312 +f 266//312 269//316 202//231 +f 269//316 194//221 202//231 +f 269//316 166//187 195//222 +f 269//316 195//222 194//221 +f 211//238 199//237 198//245 +f 166//187 171//191 195//222 +f 195//222 171//191 192//218 +f 171//191 170//192 192//218 +f 172//193 179//207 189//215 +f 174//196 183//208 175//198 +f 160//175 174//196 162//178 +f 162//178 174//196 168//195 +f 165//186 171//191 166//187 +f 162//178 168//195 163//180 +f 270//317 272//318 271//319 +f 270//317 271//319 273//320 +f 276//321 277//322 279//323 +f 277//322 276//321 278//324 +f 277//322 280//325 279//323 +f 279//326 280//327 281//328 +f 279//326 281//328 282//329 +f 282//329 274//330 279//326 +f 281//328 283//331 282//329 +f 282//329 283//331 285//332 +f 274//330 282//329 272//333 +f 282//329 284//334 272//333 +f 282//329 285//332 284//334 +f 285//332 287//335 286//336 +f 288//337 285//332 286//336 +f 283//331 287//335 285//332 +f 285//332 288//337 289//338 +f 285//332 289//338 284//334 +f 289//339 288//340 290//341 +f 289//339 290//341 293//342 +f 284//343 289//344 292//345 +f 293//346 291//347 289//344 +f 292//345 289//344 291//347 +f 294//348 291//347 293//346 +f 295//349 286//336 296//350 +f 295//351 296//352 297//353 +f 288//340 295//349 290//341 +f 288//340 286//336 295//349 +f 297//353 299//354 298//355 +f 296//352 299//354 297//353 +f 302//356 305//357 303//358 +f 302//356 301//359 304//360 +f 302//356 304//360 305//357 +f 306//361 305//357 307//362 +f 308//363 305//357 306//361 +f 308//363 303//364 305//357 +f 305//357 304//360 307//362 +f 309//365 308//363 310//366 +f 308//363 306//361 310//366 +f 312//367 313//368 311//369 +f 314//370 313//368 312//367 +f 314//371 309//365 310//366 +f 314//370 315//372 313//368 +f 315//373 314//371 310//366 +f 310//366 317//374 315//373 +f 318//375 315//372 316//376 +f 316//377 315//373 317//374 +f 315//372 318//375 313//368 +f 271//319 320//378 318//375 +f 316//376 271//319 318//375 +f 319//379 313//368 318//375 +f 319//379 318//375 320//378 +f 271//319 284//343 320//378 +f 319//379 320//378 321//380 +f 321//380 320//378 292//345 +f 320//378 284//343 292//345 +f 321//380 292//345 322//381 +f 323//382 321//380 322//381 +f 324//383 319//379 321//380 +f 324//383 321//380 323//382 +f 324//383 313//368 319//379 +f 311//369 313//368 324//383 +f 326//384 324//383 323//382 +f 311//385 324//383 325//386 +f 325//386 324//383 326//384 +f 326//387 323//387 327//387 +f 322//381 294//348 327//388 +f 327//388 323//382 322//381 +f 322//381 292//345 291//347 +f 322//381 291//347 294//348 +f 328//389 316//377 317//374 +f 310//366 306//361 317//374 +f 328//389 317//374 329//390 +f 306//361 329//390 317//374 +f 307//362 331//391 329//390 +f 306//361 307//362 329//390 +f 328//389 329//390 330//392 +f 329//390 331//391 330//392 +f 307//362 304//360 331//391 +f 304//360 332//393 331//391 +f 330//392 331//391 333//394 +f 331//391 332//393 333//394 +f 332//393 336//395 333//394 +f 333//394 334//396 335//397 +f 336//395 334//396 333//394 +f 335//397 330//392 333//394 +f 332//393 301//398 336//399 +f 335//400 334//401 337//402 +f 335//400 337//402 340//403 +f 335//400 340//403 338//404 +f 338//404 339//405 335//400 +f 330//392 335//397 339//406 +f 338//404 340//403 341//407 +f 340//403 337//402 343//408 +f 340//403 342//409 341//407 +f 340//403 343//408 342//409 +f 342//409 343//408 344//410 +f 343//408 345//411 344//410 +f 337//402 347//412 343//413 +f 346//414 345//415 343//413 +f 343//413 347//412 346//414 +f 334//401 347//412 337//402 +f 345//415 346//414 348//416 +f 348//417 349//418 345//419 +f 344//420 345//419 349//418 +f 344//420 349//418 350//421 +f 352//422 344//423 350//424 +f 352//422 350//424 351//425 +f 351//425 350//424 353//426 +f 351//425 353//426 354//427 +f 351//425 354//427 355//428 +f 355//429 356//430 357//431 +f 358//432 357//431 356//430 +f 358//432 356//430 300//433 +f 299//354 358//432 298//355 +f 287//335 358//434 299//435 +f 358//434 359//436 357//431 +f 287//335 359//436 358//434 +f 358//432 300//433 298//355 +f 360//437 359//436 281//328 +f 281//328 359//436 283//331 +f 359//436 360//437 357//431 +f 359//436 287//335 283//331 +f 281//328 280//327 360//437 +f 355//429 357//431 360//437 +f 360//438 351//425 355//428 +f 361//439 360//440 280//325 +f 361//439 351//441 360//440 +f 342//409 352//442 361//439 +f 361//439 352//442 351//441 +f 341//407 342//409 361//439 +f 277//322 341//407 361//439 +f 277//322 361//439 280//325 +f 342//409 344//410 352//442 +f 338//404 341//407 277//322 +f 362//443 339//406 278//444 +f 278//324 339//405 338//404 +f 339//406 362//443 330//392 +f 275//445 273//446 362//443 +f 362//443 273//446 316//377 +f 275//445 362//443 278//444 +f 362//443 316//377 328//389 +f 362//443 328//389 330//392 +f 278//324 338//404 277//322 +f 301//398 332//393 304//360 +f 271//319 316//376 273//320 +f 286//336 299//435 296//350 +f 286//336 287//335 299//435 +f 271//319 272//318 284//343 +o 252_198_80 +v 1.000000 -1.000000 153.000015 +v 1.000000 1.000000 153.000015 +v -1.000000 1.000000 153.000015 +v -1.000000 -1.000000 153.000015 +v -0.280877 -40.062721 15.595602 +v 11.542542 -40.943466 4.423900 +v 7.673585 -39.879284 14.034721 +v -42.237881 -5.118206 4.360140 +v -30.209568 -30.171942 3.557945 +v -35.556156 -19.621412 14.034797 +v -33.320061 26.411272 4.593812 +v -29.648436 27.752640 14.034840 +v 31.162701 28.967581 4.360131 +v 14.727613 39.908585 4.423877 +v 12.832834 38.878433 13.373650 +v 19.183693 33.798237 18.599258 +v 39.749336 -13.886535 8.963418 +v 37.179581 -20.686077 4.360118 +v 42.480652 -1.782071 4.593854 +v 40.298725 -5.025133 14.034821 +v -9.656845 -0.236432 43.692093 +v -18.029844 -2.895050 40.456142 +v -19.409197 -12.422485 37.845947 +v 4.890269 -34.323772 26.501751 +v -0.000004 -25.301947 36.210491 +v 5.739935 -16.295029 41.078796 +v 4.181785 -1.358765 44.711529 +v -3.208996 9.111209 43.692074 +v -14.871958 20.469690 36.210567 +v 11.237613 10.615650 41.851498 +v 11.651752 20.925962 37.213402 +v 17.232075 28.412586 28.225409 +v 15.331161 -1.982777 41.851498 +v 28.357994 -6.215381 32.971798 +v 35.386093 -8.673261 23.392710 +v 17.396996 -10.327881 39.692505 +v 15.249308 -20.988867 35.623905 +v 11.073569 -29.529284 30.156292 +v 25.989662 -20.737291 28.582773 +v 18.602928 -31.346498 23.529696 +v 30.641680 -18.316849 24.686003 +v 24.626665 5.525910 36.433735 +v 22.336256 16.060989 34.407658 +v 34.981453 2.901020 25.666546 +v 33.475014 14.425415 23.529758 +v 26.889044 23.481850 24.686031 +v -3.314934 15.327475 41.985538 +v 3.432014 27.405054 34.206646 +v -5.189154 26.469461 34.705177 +v -17.232096 28.412598 28.225376 +v 8.050932 34.165836 25.666452 +v -8.050941 34.165829 25.666466 +v -17.359701 9.211283 39.896473 +v -27.124228 5.204672 34.206703 +v -28.357990 -6.215388 32.971794 +v -23.715193 18.225676 31.928862 +v -26.889029 23.481865 24.686037 +v -33.474995 14.425432 23.529779 +v -34.981461 2.901062 25.666529 +v -35.386089 -8.673254 23.392717 +v -5.525423 -10.179168 43.200668 +v -9.544597 -18.917202 38.923054 +v -25.989660 -20.737280 28.582785 +v -19.375032 -26.769630 28.617664 +v -8.406218 -30.892815 29.772177 +v -30.641672 -18.316849 24.686008 +v 16.310411 -36.737320 15.034561 +v 20.532753 -37.094826 4.673010 +v 26.467722 -30.618513 14.374976 +v 29.025364 -31.098825 4.599476 +v 33.924255 -22.014019 14.640877 +v 39.537151 7.613843 15.260594 +v 41.729843 7.681184 4.535307 +v 38.763607 17.647556 4.321975 +v 34.789028 20.134094 15.034633 +v 29.648453 27.752630 14.034822 +v 0.000013 39.137280 18.199808 +v -0.000006 42.698601 3.647476 +v -8.398077 39.308144 15.034633 +v -14.810691 39.644318 7.452128 +v -19.183691 33.798229 18.599272 +v -34.789024 20.134111 15.034625 +v -38.275017 18.314022 4.535266 +v -39.537144 7.613880 15.260587 +v -41.733387 8.507532 4.321889 +v -40.298721 -5.025121 14.034838 +v -27.511019 -29.399002 15.260582 +v -18.029936 -33.201168 20.808971 +v -18.992512 -37.743111 7.097012 +v -9.656914 -37.149467 19.761656 +v -8.866733 -41.431805 6.954351 +v 24.318745 34.583172 6.654541 +v -22.497089 36.045471 6.233429 +v -38.882885 -16.985895 6.448124 +v 1.508865 -42.393650 4.357093 +v 9.417343 -41.613148 -31.217159 +v -3.978447 -42.485752 -31.217159 +v -38.312298 -19.450630 -31.217146 +v -27.262022 32.826984 -31.217159 +v 16.840561 39.201229 -31.217159 +v 41.350689 -10.533248 -31.217159 +v -16.295586 -39.388138 -31.217216 +v -27.262009 -32.826996 -31.217226 +v -42.866013 0.839950 -31.217159 +v -12.447370 41.027588 -31.217148 +v 3.978477 42.485748 -31.217146 +v 39.377316 16.328129 -31.217178 +v 34.185593 -25.875595 -31.217155 +v 21.753643 -36.710304 -31.217161 +v 42.583355 3.326350 -31.217165 +v 30.880724 29.751776 -31.217155 +v -37.838242 20.175589 -31.217180 +v 29.251553 -36.906582 42.980209 +v 34.678612 -34.600552 48.586338 +v 36.583721 -30.107798 43.622257 +v 27.677567 -32.722691 35.832336 +v 39.186481 -20.580915 38.360592 +v 35.011616 -19.457539 32.712193 +v 36.851307 -9.281703 30.588070 +v 27.019796 -21.445803 27.508007 +v 40.904587 -10.680614 35.727394 +v 41.644169 2.915259 34.755775 +v 40.108704 16.707043 36.998188 +v 36.979164 28.886824 42.680805 +v 28.948149 31.181213 35.342331 +v 31.418987 16.571501 28.106646 +v 20.273046 31.671253 30.265850 +v 20.287165 17.485264 22.524033 +v 20.324162 4.810040 19.571793 +v 33.332344 -0.104109 26.501097 +v 19.551054 -16.545147 21.628008 +v 16.594997 -5.392126 18.450693 +v 0.346742 -10.663462 16.625381 +v 1.903000 6.485836 16.139809 +v -11.724202 0.132160 16.991798 +v 6.092212 24.877293 21.628088 +v -10.256344 14.116594 18.450708 +v 10.256256 14.116619 18.450699 +v -14.562952 20.044220 21.096975 +v -25.542171 1.893231 21.628016 +v -21.002865 -11.111602 20.866299 +v -35.159008 5.060761 28.106647 +v -28.745676 19.070320 27.507994 +v -36.932999 -11.727696 31.270811 +v -34.296867 -25.588909 35.994179 +v -41.481792 -2.198161 34.708862 +v -39.906719 -17.564056 37.184361 +v -27.019781 -21.445862 27.508024 +v -14.048925 -19.336946 21.094692 +v -27.627960 -32.647339 35.729721 +v -13.924868 -31.232241 27.156975 +v -3.875652 -41.568039 34.990128 +v -4.077449 -23.408701 20.866348 +v 4.191505 -29.480785 23.977140 +v -14.282210 -40.430843 36.256241 +v -25.333582 -38.005520 40.483440 +v -35.049786 -34.919117 48.970577 +v -36.628475 -29.880985 43.496151 +v -30.528236 36.345680 44.110500 +v -21.582769 38.887337 38.596252 +v -34.796906 34.727264 48.715599 +v -36.162640 31.350163 44.887894 +v -28.829674 31.339989 35.366058 +v -37.921783 25.256363 40.477913 +v -39.258335 20.442446 38.251854 +v -41.205517 10.180814 35.664715 +v -20.273100 31.671246 30.265863 +v -12.411277 40.669968 35.996628 +v -7.092227 33.452351 27.157030 +v 9.254082 33.231918 27.508072 +v -3.294847 41.833023 35.045784 +v 4.818691 41.645317 35.079948 +v 11.949274 40.632652 35.791943 +v 34.732391 34.779369 48.705116 +v 30.203529 36.426834 43.716782 +v 19.911549 39.352589 38.101894 +v 4.230606 -41.311676 34.810753 +v 14.723398 -40.497097 36.447891 +v 13.924844 -31.232161 27.156916 +v 19.144470 -39.517944 37.841091 +v -3.731111 9.517263 91.319092 +v -9.495965 -0.000001 91.317390 +v -25.969074 -22.040974 74.431999 +v -22.223040 -25.912207 74.757492 +v -24.987566 -24.992083 79.260780 +v -27.531212 -16.727379 69.421654 +v -28.660881 -11.587342 66.853973 +v -29.748503 -1.901833 64.810165 +v -25.169884 -9.866775 60.461861 +v -23.721830 -0.129142 56.413025 +v -19.267155 -13.839094 56.413067 +v -13.505388 -7.388778 50.013485 +v -19.519524 -23.292116 65.458305 +v -9.578716 -20.801105 55.323048 +v -2.724083 -29.697836 64.991180 +v -4.564620 -22.981043 56.054276 +v -4.216560 -14.359910 49.681881 +v -10.721207 -28.861807 66.553680 +v -17.606052 -27.270912 70.150352 +v 5.457831 -29.432638 65.080078 +v 14.384373 -28.058168 68.130928 +v 9.764748 -26.083548 61.373947 +v 15.424319 -16.919544 55.587681 +v 19.583368 -23.357882 65.603889 +v 6.770532 -17.092051 51.699902 +v 0.243058 -7.558866 46.615479 +v 16.281031 -9.937576 52.482563 +v 11.757044 -3.820169 48.408924 +v 11.267584 3.661024 48.350460 +v 1.355121 4.589350 46.136883 +v 19.802376 1.246437 52.900486 +v 14.482285 12.413427 52.482609 +v 22.793119 10.198190 57.791523 +v 26.425673 -2.679076 59.485394 +v 29.427637 7.519583 65.730011 +v 29.695101 -3.550756 64.838913 +v 24.300735 -13.462234 61.380661 +v 27.988653 -14.694731 68.356384 +v 26.151693 -21.464487 73.581268 +v 25.015636 -25.003521 79.350098 +v 21.105270 -26.272766 73.241516 +v 26.453114 20.543255 72.590935 +v 28.350222 13.388025 67.732849 +v 18.599237 20.745077 61.122013 +v 19.790834 23.348469 65.936722 +v 14.272744 28.101589 68.131355 +v 5.330357 29.601400 65.194687 +v 7.453128 22.521036 56.413105 +v 7.266248 10.001179 48.408924 +v 1.254094 19.203514 52.337994 +v -2.293442 29.890167 65.048668 +v -9.632169 25.668549 60.773167 +v -11.372042 28.692980 66.734512 +v 21.518532 26.037842 73.656311 +v 25.012590 25.025368 79.341827 +v -26.300615 21.161190 73.296227 +v -20.377632 26.456537 72.379585 +v -25.029287 25.023718 79.378082 +v -19.713213 19.985350 61.573734 +v -7.378002 20.257658 54.513763 +v -14.482322 12.413415 52.482624 +v -22.793142 10.198184 57.791546 +v -28.042244 14.612337 68.261345 +v -29.434830 7.272052 65.667870 +v -16.658230 3.591237 51.018753 +v -6.503520 11.449301 48.670689 +v -8.313148 0.107344 46.976589 +v -9.495981 0.000404 91.317390 +v 12.856240 -15.680649 103.494247 +v 14.900133 -14.933192 108.544212 +v 16.440157 -10.251671 99.768036 +v 12.889800 -12.964049 95.234436 +v 15.717145 -4.119998 90.311951 +v 5.806038 -15.624091 91.268280 +v 4.972969 -11.593999 83.761063 +v 11.527229 -8.219670 86.284912 +v 8.447590 -16.552713 97.644791 +v 3.024110 -17.632406 94.955925 +v -3.406385 -17.528185 94.976234 +v -4.234484 -15.276496 88.984985 +v -6.810586 -9.291056 82.235229 +v -11.665602 -13.962962 95.338615 +v -8.609783 -16.813820 98.118187 +v -1.695484 -8.989212 79.932587 +v -1.681978 -2.315061 76.185440 +v 1.590927 -4.617716 76.933571 +v 6.724114 -6.532938 80.060623 +v 4.078129 0.303183 76.666534 +v 9.854755 -1.386477 80.627693 +v 9.233297 5.603628 81.442986 +v 4.269738 5.876818 78.304138 +v -0.971866 3.972246 76.666542 +v -8.291026 4.376227 80.060600 +v -4.883312 0.086092 76.933563 +v 1.440715 10.792402 81.657005 +v -4.363874 8.944024 80.627708 +v -11.379461 8.423042 86.284897 +v -1.570657 15.033627 87.991318 +v -7.195032 14.715177 90.551117 +v -13.609261 13.385118 97.633629 +v -6.677318 17.237471 96.634285 +v 0.203818 18.016594 94.874466 +v 5.690962 13.512208 87.041451 +v 6.827881 17.235771 96.796509 +v 9.664300 16.300180 98.881142 +v 13.470639 15.483231 104.938606 +v 11.132524 14.185006 94.829666 +v 12.677320 8.670223 88.478416 +v 16.664869 9.336070 98.681450 +v 15.513356 13.368028 104.644211 +v 14.790818 14.796759 108.563324 +v 17.646669 4.547794 95.739647 +v 17.740707 0.705500 94.645264 +v 14.595604 3.027821 87.647820 +v 17.333288 -5.578482 95.916138 +v -14.802279 14.785024 108.572617 +v -12.571358 15.692177 102.869675 +v -16.759352 8.901265 98.384705 +v -15.633683 12.992401 103.873634 +v -17.648138 5.043588 95.951820 +v -14.507494 1.568916 87.048126 +v -17.786686 -1.336907 94.724243 +v -13.199940 -7.713359 88.018379 +v -16.757149 -7.725291 97.033897 +v -16.519409 -10.111743 99.547592 +v -15.562436 -13.321427 104.614799 +v -14.759422 -14.799646 108.551971 +v -12.461245 -15.847666 102.953812 +v -9.329547 -2.401644 80.179924 +vn -0.0000 -0.0000 1.0000 +vn -0.4558 0.7948 0.4007 +vn -0.6359 0.5647 0.5261 +vn -0.4091 0.6768 0.6120 +vn -0.1328 -0.2517 0.9586 +vn 0.1345 -0.3893 0.9112 +vn 0.1035 -0.0383 0.9939 +vn 0.4260 -0.2525 0.8688 +vn 0.3739 -0.0391 0.9266 +vn 0.0048 -0.6072 0.7945 +vn 0.3656 -0.5160 0.7746 +vn 0.1068 -0.8189 0.5639 +vn 0.2741 -0.6886 0.6713 +vn 0.6040 -0.4983 0.6220 +vn 0.6741 -0.1548 0.7222 +vn 0.4435 -0.7365 0.5107 +vn 0.7492 -0.4246 0.5084 +vn 0.8400 -0.2153 0.4980 +vn 0.2699 0.2547 0.9286 +vn 0.5961 0.1317 0.7920 +vn 0.5423 0.3884 0.7450 +vn 0.2739 0.5075 0.8170 +vn 0.4099 0.6705 0.6184 +vn 0.8253 0.0697 0.5603 +vn 0.7843 0.3351 0.5221 +vn 0.6332 0.5586 0.5356 +vn 0.4643 0.7894 0.4016 +vn -0.0742 0.1921 0.9786 +vn -0.0735 0.3880 0.9187 +vn 0.0848 0.6624 0.7444 +vn -0.1293 0.6410 0.7565 +vn -0.3525 0.4919 0.7961 +vn 0.1795 0.8098 0.5585 +vn -0.1801 0.8087 0.5599 +vn 0.0125 0.9225 0.3857 +vn -0.2322 -0.0041 0.9727 +vn -0.4205 0.2243 0.8791 +vn -0.5780 0.4185 0.7006 +vn -0.4445 -0.0704 0.8930 +vn -0.6503 0.1358 0.7475 +vn -0.6795 -0.1515 0.7178 +vn -0.4618 -0.3130 0.8299 +vn -0.7867 0.3362 0.5178 +vn -0.8303 0.0656 0.5534 +vn -0.8411 -0.2089 0.4990 +vn -0.7457 -0.4232 0.5146 +vn -0.2391 -0.4696 0.8499 +vn -0.6089 -0.4886 0.6250 +vn -0.4480 -0.6342 0.6302 +vn -0.1976 -0.7340 0.6497 +vn -0.4322 -0.7900 0.4348 +vn -0.2248 -0.8775 0.4235 +vn -0.0160 -0.9395 0.3420 +vn 0.1873 -0.9326 0.3086 +vn 0.3852 -0.8634 0.3260 +vn 0.2727 -0.9572 0.0972 +vn 0.4844 -0.8683 0.1068 +vn 0.6217 -0.7150 0.3197 +vn 0.6840 -0.7221 0.1037 +vn 0.7920 -0.5144 0.3289 +vn 0.8620 -0.4999 0.0844 +vn 0.9294 -0.3150 0.1924 +vn 0.9433 -0.1061 0.3146 +vn 0.9294 0.1788 0.3229 +vn 0.9937 -0.0500 0.1003 +vn 0.9775 0.1839 0.1033 +vn 0.8999 0.4227 0.1071 +vn 0.8252 0.4739 0.3073 +vn 0.6954 0.6508 0.3047 +vn 0.7454 0.6597 0.0953 +vn 0.2848 0.9151 0.2855 +vn 0.3354 0.9379 0.0885 +vn 0.0007 0.9949 0.1008 +vn -0.2005 0.9269 0.3174 +vn -0.3237 0.9338 0.1524 +vn -0.6853 0.6616 0.3043 +vn -0.8277 0.4631 0.3169 +vn -0.7705 0.6297 0.0989 +vn -0.9005 0.4200 0.1125 +vn -0.9313 0.1761 0.3189 +vn -0.9759 0.1903 0.1064 +vn -0.9454 -0.1157 0.3048 +vn -0.9887 -0.1140 0.0970 +vn -0.8312 -0.4633 0.3074 +vn -0.6452 -0.6897 0.3286 +vn -0.9073 -0.3998 0.1303 +vn -0.7056 -0.7031 0.0878 +vn -0.4548 -0.8779 0.1496 +vn -0.2116 -0.9663 0.1469 +vn 0.5594 0.8169 0.1407 +vn -0.5454 0.8280 0.1303 +vn 0.0333 -0.9950 0.0937 +vn -0.8974 -0.4410 -0.0100 +vn -0.6418 -0.7668 0.0041 +vn -0.0915 -0.9958 -0.0039 +vn 0.9660 -0.2583 -0.0072 +vn -0.3902 -0.9207 0.0069 +vn 0.5176 -0.8556 -0.0069 +vn 0.7989 -0.6014 -0.0104 +vn -0.6363 0.7714 -0.0098 +vn -0.9997 0.0156 -0.0161 +vn -0.2932 0.9560 -0.0082 +vn 0.7179 0.6961 -0.0043 +vn 0.2207 -0.9753 -0.0045 +vn 0.9198 0.3923 -0.0046 +vn 0.9970 0.0777 -0.0060 +vn -0.8878 0.4599 -0.0138 +vn 0.0847 0.9964 -0.0073 +vn 0.4076 0.9132 -0.0050 +vn 0.6469 -0.5749 -0.5010 +vn 0.6520 -0.6696 -0.3558 +vn 0.5702 -0.6692 -0.4764 +vn 0.5096 -0.5969 -0.6197 +vn 0.6430 -0.3675 -0.6720 +vn 0.6903 -0.4148 -0.5928 +vn 0.7494 -0.1962 -0.6324 +vn 0.6584 -0.1686 -0.7336 +vn 0.4880 -0.3839 -0.7839 +vn 0.7083 0.0722 -0.7022 +vn 0.6578 0.5446 -0.5202 +vn 0.6818 0.3206 -0.6576 +vn 0.5421 0.5656 -0.6214 +vn 0.5711 0.2998 -0.7642 +vn 0.3617 0.5633 -0.7429 +vn 0.3650 0.3318 -0.8699 +vn 0.3627 0.0801 -0.9285 +vn 0.5860 -0.0026 -0.8103 +vn 0.3391 -0.2862 -0.8961 +vn 0.2864 -0.0964 -0.9532 +vn 0.0122 -0.1872 -0.9822 +vn 0.0355 0.1080 -0.9935 +vn 0.1666 0.2422 -0.9558 +vn -0.2017 -0.0063 -0.9794 +vn -0.1618 0.2309 -0.9594 +vn 0.0981 0.4343 -0.8954 +vn -0.2632 0.3587 -0.8956 +vn -0.4503 0.0363 -0.8922 +vn -0.5262 0.3367 -0.7809 +vn -0.3746 -0.1920 -0.9071 +vn -0.6678 -0.2023 -0.7163 +vn -0.6355 0.0952 -0.7663 +vn -0.7300 -0.0464 -0.6819 +vn -0.7100 -0.3342 -0.6198 +vn -0.6477 -0.4639 -0.6044 +vn -0.4857 -0.3827 -0.7859 +vn -0.2489 -0.3296 -0.9107 +vn -0.2473 -0.5733 -0.7811 +vn -0.5037 -0.6096 -0.6121 +vn -0.0711 -0.6706 -0.7384 +vn 0.0701 -0.5280 -0.8463 +vn -0.2677 -0.6813 -0.6812 +vn -0.0637 -0.4061 -0.9116 +vn -0.4902 -0.6864 -0.5372 +vn -0.5958 -0.6664 -0.4483 +vn -0.6410 -0.5984 -0.4807 +vn -0.6443 0.6140 -0.4559 +vn -0.6458 0.6720 -0.3625 +vn -0.5896 0.6633 -0.4609 +vn -0.5428 0.5709 -0.6160 +vn -0.6535 0.4971 -0.5708 +vn -0.6465 0.3698 -0.6673 +vn -0.6808 0.2250 -0.6971 +vn -0.3562 0.5739 -0.7374 +vn -0.4000 0.6887 -0.6047 +vn -0.2413 0.6929 -0.6794 +vn -0.1222 0.5991 -0.7913 +vn 0.1663 0.6066 -0.7775 +vn -0.0505 0.6951 -0.7171 +vn 0.0745 0.6885 -0.7214 +vn 0.5842 0.6630 -0.4682 +vn 0.6594 0.6455 -0.3855 +vn 0.3779 0.6891 -0.6183 +vn 0.2369 0.6929 -0.6810 +vn 0.2675 -0.6707 -0.6918 +vn 0.2607 -0.5663 -0.7819 +vn 0.0754 -0.6809 -0.7285 +vn 0.3793 -0.6661 -0.6422 +vn -0.6469 -0.6811 -0.3429 +vn -0.6786 -0.6800 -0.2776 +vn -0.6754 -0.6426 -0.3617 +vn -0.7826 -0.3428 -0.5197 +vn -0.8200 -0.0536 -0.5699 +vn -0.7387 -0.2919 -0.6075 +vn -0.6992 -0.5172 -0.4936 +vn -0.5790 -0.4164 -0.7009 +vn -0.7124 -0.0175 -0.7015 +vn -0.4353 -0.2420 -0.8672 +vn -0.3221 -0.6228 -0.7130 +vn -0.5617 -0.6518 -0.5096 +vn -0.0817 -0.7989 -0.5959 +vn -0.0956 -0.7256 -0.6814 +vn -0.3171 -0.7662 -0.5590 +vn -0.1473 -0.4513 -0.8802 +vn -0.5093 -0.7476 -0.4263 +vn 0.1243 -0.8121 -0.5701 +vn 0.2682 -0.7560 -0.5971 +vn 0.4212 -0.7811 -0.4610 +vn 0.4733 -0.5218 -0.7097 +vn 0.2028 -0.5346 -0.8204 +vn 0.5703 -0.6536 -0.4976 +vn 0.5162 -0.2988 -0.8026 +vn 0.3586 -0.1399 -0.9230 +vn 0.0172 -0.2339 -0.9721 +vn 0.6129 0.0394 -0.7892 +vn 0.3689 0.1178 -0.9220 +vn 0.0418 0.1446 -0.9886 +vn 0.4507 0.3977 -0.7992 +vn 0.6855 0.3042 -0.6615 +vn 0.7713 -0.0785 -0.6317 +vn 0.7119 -0.3934 -0.5817 +vn 0.7973 0.2124 -0.5650 +vn 0.8442 -0.1209 -0.5223 +vn 0.7521 -0.4539 -0.4778 +vn 0.6837 -0.6197 -0.3855 +vn 0.6195 -0.6982 -0.3589 +vn 0.6708 -0.6837 -0.2873 +vn 0.7361 0.4339 -0.5195 +vn 0.5341 0.5999 -0.5957 +vn 0.6898 0.5999 -0.4054 +vn 0.5788 0.6759 -0.4562 +vn 0.3950 0.7580 -0.5190 +vn 0.2327 0.6895 -0.6859 +vn 0.1789 0.7805 -0.5990 +vn -0.0537 0.7915 -0.6088 +vn 0.2176 0.3505 -0.9109 +vn 0.0412 0.5967 -0.8014 +vn -0.2792 0.7489 -0.6010 +vn -0.3922 0.7691 -0.5047 +vn 0.6278 0.6942 -0.3520 +vn 0.6804 0.6690 -0.2990 +vn -0.6729 0.6271 -0.3924 +vn -0.6614 0.6880 -0.2987 +vn -0.5905 0.6920 -0.4153 +vn -0.5679 0.5894 -0.5745 +vn -0.7368 0.4493 -0.5051 +vn -0.2366 0.6286 -0.7409 +vn -0.4551 0.3993 -0.7959 +vn -0.6860 0.3059 -0.6602 +vn -0.7959 0.2142 -0.5663 +vn -0.5208 0.1059 -0.8471 +vn -0.1986 0.3609 -0.9112 +vn -0.2703 0.0006 -0.9628 +vn 0.6933 -0.6854 -0.2226 +vn 0.6661 -0.6637 -0.3404 +vn 0.7450 -0.6344 -0.2064 +vn 0.7829 -0.5568 -0.2777 +vn 0.8742 -0.2350 -0.4249 +vn 0.6955 -0.5025 -0.5136 +vn 0.4598 -0.8401 -0.2879 +vn 0.3134 -0.8546 -0.4139 +vn 0.2929 -0.7553 -0.5863 +vn 0.1440 -0.9224 -0.3584 +vn -0.1689 -0.9301 -0.3262 +vn -0.2246 -0.8585 -0.4611 +vn -0.4563 -0.8373 -0.3013 +vn -0.1072 -0.6561 -0.7470 +vn -0.4570 -0.6055 -0.6516 +vn -0.6082 -0.7161 -0.3425 +vn 0.1562 -0.4045 -0.9011 +vn -0.1623 -0.2108 -0.9640 +vn 0.3554 0.0244 -0.9344 +vn 0.4764 -0.4661 -0.7455 +vn 0.6993 -0.0911 -0.7090 +vn 0.6255 0.3917 -0.6748 +vn 0.3271 0.4639 -0.8233 +vn -0.0861 0.3455 -0.9344 +vn -0.4142 0.0121 -0.9101 +vn -0.6016 0.3172 -0.7332 +vn -0.3093 0.6338 -0.7090 +vn 0.1082 0.7292 -0.6757 +vn -0.0903 0.8738 -0.4779 +vn -0.6891 0.5133 -0.5115 +vn -0.4076 0.8085 -0.4246 +vn -0.6800 0.6671 -0.3044 +vn -0.3775 0.8685 -0.3212 +vn 0.0172 0.9240 -0.3819 +vn 0.3517 0.7897 -0.5026 +vn 0.3618 0.8675 -0.3415 +vn 0.6739 0.7122 -0.1966 +vn 0.5940 0.7311 -0.3356 +vn 0.5112 0.8238 -0.2448 +vn 0.7776 0.5389 -0.3238 +vn 0.7259 0.5144 -0.4567 +vn 0.7054 0.6754 -0.2149 +vn 0.7050 0.6982 -0.1245 +vn 0.8677 0.3132 -0.3860 +vn 0.9291 0.0192 -0.3692 +vn 0.8595 0.1617 -0.4849 +vn 0.8735 -0.3465 -0.3421 +vn -0.6798 0.7144 -0.1656 +vn -0.6407 0.7413 -0.1996 +vn -0.7006 0.6894 -0.1839 +vn -0.7841 0.4863 -0.3856 +vn -0.8598 0.3262 -0.3928 +vn -0.8614 0.0839 -0.5010 +vn -0.9161 -0.1015 -0.3880 +vn -0.7666 -0.4347 -0.4727 +vn -0.8624 -0.3743 -0.3408 +vn -0.7601 -0.5770 -0.2990 +vn -0.6915 -0.6946 -0.1982 +vn -0.6513 -0.7258 -0.2215 +vn -0.6689 -0.7305 -0.1378 +vn -0.6622 -0.1853 -0.7260 +s 1 +f 363//447 364//447 365//447 +f 363//447 365//447 366//447 +f 443//448 419//449 412//450 +f 423//451 388//452 389//453 +f 388//452 398//454 389//453 +f 389//453 398//454 395//455 +f 387//456 399//457 388//452 +f 388//452 399//457 398//454 +f 386//458 400//459 387//456 +f 387//456 400//459 399//457 +f 399//457 401//460 398//454 +f 398//454 401//460 396//461 +f 400//459 402//462 399//457 +f 402//462 401//460 399//457 +f 401//460 403//463 396//461 +f 403//463 397//464 396//461 +f 386//458 402//462 400//459 +f 395//455 392//465 389//453 +f 395//455 404//466 392//465 +f 398//454 396//461 395//455 +f 396//461 404//466 395//455 +f 404//466 405//467 392//465 +f 392//465 405//467 393//468 +f 405//467 394//469 393//468 +f 397//464 406//470 396//461 +f 396//461 406//470 404//466 +f 406//470 407//471 404//466 +f 404//466 407//471 405//467 +f 407//471 408//472 405//467 +f 405//467 408//472 394//469 +f 408//472 378//473 394//469 +f 392//465 390//474 389//453 +f 392//465 409//475 390//474 +f 392//465 393//468 409//475 +f 393//468 410//476 409//475 +f 410//476 411//477 409//475 +f 411//477 391//478 409//475 +f 394//469 410//476 393//468 +f 411//477 412//450 391//478 +f 394//469 413//479 410//476 +f 413//479 414//480 410//476 +f 410//476 414//480 411//477 +f 411//477 414//480 412//450 +f 378//473 413//479 394//469 +f 413//479 439//481 414//480 +f 414//480 443//448 412//450 +f 390//474 383//482 389//453 +f 409//475 415//483 390//474 +f 391//478 415//483 409//475 +f 412//450 418//484 391//478 +f 390//474 415//483 383//482 +f 415//483 384//485 383//482 +f 415//483 416//486 384//485 +f 416//486 417//487 384//485 +f 384//485 417//487 385//488 +f 391//478 418//484 415//483 +f 418//484 416//486 415//483 +f 412//450 419//449 418//484 +f 419//449 420//489 418//484 +f 418//484 420//489 416//486 +f 420//489 421//490 416//486 +f 416//486 421//490 417//487 +f 421//490 422//491 417//487 +f 384//485 423//451 383//482 +f 422//491 428//492 417//487 +f 383//482 423//451 389//453 +f 384//485 385//488 423//451 +f 385//488 424//493 423//451 +f 423//451 424//493 388//452 +f 424//493 387//456 388//452 +f 417//487 425//494 385//488 +f 425//494 426//495 385//488 +f 385//488 426//495 424//493 +f 426//495 427//496 424//493 +f 424//493 427//496 387//456 +f 427//496 386//458 387//456 +f 417//487 428//492 425//494 +f 426//495 450//497 427//496 +f 450//497 452//498 427//496 +f 427//496 452//498 386//458 +f 452//498 367//499 386//458 +f 369//500 386//458 367//499 +f 369//500 429//501 386//458 +f 429//501 402//462 386//458 +f 368//502 429//501 369//500 +f 368//502 430//503 429//501 +f 430//503 431//504 429//501 +f 429//501 431//504 402//462 +f 431//504 401//460 402//462 +f 430//503 432//505 431//504 +f 431//504 433//506 401//460 +f 433//506 403//463 401//460 +f 432//505 433//506 431//504 +f 432//505 380//507 433//506 +f 433//506 379//508 403//463 +f 379//508 397//464 403//463 +f 382//509 406//470 397//464 +f 382//509 434//510 406//470 +f 381//511 434//510 382//509 +f 434//510 407//471 406//470 +f 381//511 435//512 434//510 +f 435//512 436//513 434//510 +f 436//513 437//514 434//510 +f 434//510 437//514 407//471 +f 437//514 408//472 407//471 +f 436//513 438//515 437//514 +f 437//514 438//515 408//472 +f 436//513 375//516 438//515 +f 438//515 378//473 408//472 +f 378//473 377//517 413//479 +f 377//517 439//481 413//479 +f 376//518 440//519 377//517 +f 440//519 439//481 377//517 +f 440//519 441//520 439//481 +f 439//481 441//520 414//480 +f 440//519 442//521 441//520 +f 442//521 443//448 441//520 +f 441//520 443//448 414//480 +f 374//522 419//449 443//448 +f 374//522 444//523 419//449 +f 444//523 420//489 419//449 +f 373//524 444//523 374//522 +f 373//524 445//525 444//523 +f 445//525 446//526 444//523 +f 444//523 446//526 420//489 +f 446//526 421//490 420//489 +f 445//525 447//527 446//526 +f 447//527 448//528 446//526 +f 446//526 448//528 421//490 +f 448//528 422//491 421//490 +f 447//527 370//529 448//528 +f 372//530 428//492 422//491 +f 372//530 449//531 428//492 +f 449//531 425//494 428//492 +f 456//532 371//533 372//530 +f 371//533 449//531 372//530 +f 449//531 426//495 425//494 +f 449//531 450//497 426//495 +f 371//533 451//534 449//531 +f 449//531 451//534 450//497 +f 451//534 452//498 450//497 +f 451//534 453//535 452//498 +f 453//535 367//499 452//498 +f 379//508 382//509 397//464 +f 433//506 380//507 379//508 +f 379//508 381//511 382//509 +f 438//515 454//536 378//473 +f 454//536 377//517 378//473 +f 438//515 375//516 454//536 +f 454//536 376//518 377//517 +f 442//521 455//537 443//448 +f 443//448 455//537 374//522 +f 455//537 373//524 374//522 +f 448//528 372//530 422//491 +f 448//528 456//532 372//530 +f 448//528 370//529 456//532 +f 453//535 457//538 367//499 +f 367//499 457//538 369//500 +f 457//538 368//502 369//500 +f 371//533 460//539 465//540 +f 453//535 459//541 457//538 +f 379//508 463//542 381//511 +f 451//534 464//543 453//535 +f 430//503 471//544 432//505 +f 432//505 470//545 380//507 +f 455//537 461//546 373//524 +f 456//532 460//539 371//533 +f 447//527 466//547 370//529 +f 442//521 467//548 455//537 +f 375//516 473//549 454//536 +f 458//550 457//538 459//541 +f 469//551 435//512 472//552 +f 473//549 436//513 469//551 +f 471//544 368//502 458//550 +f 463//542 380//507 470//545 +f 453//535 464//543 459//541 +f 460//539 370//529 466//547 +f 381//511 463//542 472//552 +f 445//525 373//524 474//553 +f 464//543 371//533 465//540 +f 468//554 376//518 462//555 +f 432//505 471//544 470//545 +f 462//555 454//536 473//549 +f 447//527 445//525 474//553 +f 455//537 467//548 461//546 +f 447//527 474//553 466//547 +f 373//524 461//546 474//553 +f 442//521 440//519 467//548 +f 435//512 381//511 472//552 +f 440//519 468//554 467//548 +f 458//550 368//502 457//538 +f 469//551 436//513 435//512 +f 473//549 375//516 436//513 +f 471//544 430//503 368//502 +f 463//542 379//508 380//507 +f 460//539 456//532 370//529 +f 464//543 451//534 371//533 +f 468//554 440//519 376//518 +f 462//555 376//518 454//536 +f 477//556 476//557 475//558 +f 478//559 477//556 475//558 +f 477//556 478//559 480//560 +f 479//561 477//556 480//560 +f 480//560 483//562 479//561 +f 480//560 481//563 483//562 +f 480//560 482//564 481//563 +f 480//560 478//559 482//564 +f 484//565 483//562 481//563 +f 486//566 485//567 487//568 +f 485//567 488//569 487//568 +f 485//567 484//565 488//569 +f 487//568 488//569 489//570 +f 488//569 490//571 489//570 +f 488//569 491//572 490//571 +f 488//569 492//573 491//572 +f 484//565 492//573 488//569 +f 481//563 493//574 492//573 +f 484//565 481//563 492//573 +f 492//573 494//575 491//572 +f 492//573 493//574 494//575 +f 494//575 495//576 496//577 +f 494//575 493//574 495//576 +f 491//572 494//575 496//577 +f 491//572 496//577 500//578 +f 496//577 497//579 499//580 +f 496//577 495//576 497//579 +f 500//578 496//577 498//581 +f 498//581 496//577 499//580 +f 490//571 491//572 500//578 +f 490//571 500//578 498//581 +f 498//581 499//580 501//582 +f 499//580 502//583 501//582 +f 499//580 497//579 502//583 +f 501//582 502//583 505//584 +f 497//579 503//585 502//583 +f 502//583 503//585 506//586 +f 502//583 506//586 504//587 +f 505//584 502//583 504//587 +f 508//588 504//587 506//586 +f 509//589 506//586 507//590 +f 510//591 507//590 506//586 +f 508//588 506//586 509//589 +f 503//585 510//591 506//586 +f 503//585 511//592 510//591 +f 511//592 513//593 510//591 +f 510//591 512//594 507//590 +f 513//593 512//594 510//591 +f 514//595 513//593 516//596 +f 517//597 513//593 514//595 +f 515//598 513//593 511//592 +f 515//598 516//596 513//593 +f 517//597 512//594 513//593 +f 518//599 512//594 517//597 +f 518//599 519//600 512//594 +f 519//600 520//601 512//594 +f 524//602 523//603 521//604 +f 524//602 525//605 526//606 +f 521//604 525//605 524//602 +f 527//607 505//584 504//587 +f 528//608 527//607 504//587 +f 526//606 525//605 527//607 +f 527//607 525//605 505//584 +f 528//608 504//587 508//588 +f 529//609 505//584 525//605 +f 525//605 522//610 529//609 +f 525//605 521//604 522//610 +f 529//609 501//582 505//584 +f 522//610 530//611 529//609 +f 529//609 530//611 531//612 +f 531//612 501//582 529//609 +f 532//613 531//612 533//614 +f 532//613 498//581 531//612 +f 498//581 501//582 531//612 +f 530//611 533//614 531//612 +f 534//615 532//613 533//614 +f 537//616 536//617 486//566 +f 538//618 537//616 487//568 +f 537//616 486//566 487//568 +f 538//618 489//570 535//619 +f 538//618 487//568 489//570 +f 535//619 489//570 532//613 +f 534//615 535//619 532//613 +f 489//570 498//581 532//613 +f 520//601 507//590 512//594 +f 507//590 520//601 509//589 +f 540//620 541//621 478//559 +f 539//622 541//621 540//620 +f 540//620 478//559 542//623 +f 475//558 542//623 478//559 +f 482//564 478//559 541//621 +f 539//622 516//596 541//621 +f 493//574 541//621 516//596 +f 482//564 541//621 493//574 +f 514//595 516//596 539//622 +f 493//574 516//596 495//576 +f 516//596 515//598 495//576 +f 495//576 515//598 511//592 +f 495//576 511//592 503//585 +f 497//579 495//576 503//585 +f 489//570 490//571 498//581 +f 481//563 482//564 493//574 +f 546//624 547//625 545//626 +f 549//627 550//628 551//629 +f 549//627 551//629 548//630 +f 553//631 548//630 551//629 +f 552//632 553//631 551//629 +f 552//632 551//629 550//628 +f 554//633 556//634 553//631 +f 554//633 553//631 552//632 +f 556//634 555//635 553//631 +f 553//631 555//635 548//630 +f 557//636 556//634 558//637 +f 560//638 556//634 557//636 +f 560//638 555//635 556//634 +f 559//639 558//637 556//634 +f 559//639 556//634 554//633 +f 555//635 560//638 561//640 +f 562//641 564//642 563//643 +f 557//636 558//637 562//641 +f 562//641 558//637 564//642 +f 565//644 564//642 567//645 +f 566//646 564//642 565//644 +f 563//643 564//642 566//646 +f 564//642 558//637 567//645 +f 569//647 565//644 567//645 +f 567//645 558//637 559//639 +f 570//648 567//645 568//649 +f 567//645 559//639 568//649 +f 569//647 567//645 570//648 +f 573//650 570//648 571//651 +f 571//651 570//648 572//652 +f 570//648 568//649 572//652 +f 573//650 569//647 570//648 +f 573//650 571//651 574//653 +f 575//654 573//650 574//653 +f 576//655 573//650 575//654 +f 576//655 569//647 573//650 +f 576//655 579//656 569//647 +f 577//657 576//655 575//654 +f 577//657 578//658 576//655 +f 579//656 576//655 578//658 +f 579//656 578//658 580//659 +f 580//659 581//660 579//656 +f 579//656 566//646 565//644 +f 581//660 566//646 579//656 +f 579//656 565//644 569//647 +f 583//661 566//646 581//660 +f 581//660 582//662 583//661 +f 566//646 583//661 563//643 +f 577//657 575//654 585//663 +f 585//663 575//654 586//664 +f 584//665 585//663 586//664 +f 586//664 575//654 574//653 +f 584//665 586//664 587//666 +f 588//667 587//666 586//664 +f 586//664 574//653 590//668 +f 588//667 586//664 589//669 +f 589//669 586//664 590//668 +f 589//669 590//668 593//670 +f 590//668 591//671 592//672 +f 574//653 591//671 590//668 +f 590//668 592//672 593//670 +f 593//670 594//673 595//674 +f 593//670 592//672 594//673 +f 588//667 596//675 587//666 +f 596//675 584//665 587//666 +f 596//675 597//676 584//665 +f 598//677 600//678 599//679 +f 599//679 594//673 601//680 +f 599//679 601//680 598//677 +f 599//679 595//674 594//673 +f 598//677 601//680 605//681 +f 602//682 603//683 601//680 +f 594//673 602//682 601//680 +f 603//683 604//684 601//680 +f 605//681 601//680 604//684 +f 606//685 605//681 604//684 +f 606//685 604//684 552//632 +f 606//685 552//632 550//628 +f 603//683 607//686 604//684 +f 607//686 552//632 604//684 +f 608//687 607//686 603//683 +f 607//686 554//633 552//632 +f 609//688 554//633 607//686 +f 608//687 609//688 607//686 +f 609//688 568//649 554//633 +f 572//652 568//649 609//688 +f 572//652 609//688 608//687 +f 602//682 608//687 603//683 +f 592//672 608//687 602//682 +f 592//672 572//652 608//687 +f 592//672 602//682 594//673 +f 591//671 572//652 592//672 +f 574//653 571//651 591//671 +f 571//651 572//652 591//671 +f 568//649 559//639 554//633 +f 555//635 561//640 546//624 +f 545//626 555//635 546//624 +f 545//626 548//630 555//635 +f 611//689 614//690 612//691 +f 612//691 614//690 613//692 +f 613//692 614//690 615//693 +f 615//693 614//690 618//694 +f 619//695 616//696 614//690 +f 614//690 616//696 617//697 +f 618//694 614//690 617//697 +f 614//690 611//689 619//695 +f 620//698 616//696 619//695 +f 621//699 622//700 620//698 +f 620//698 622//700 616//696 +f 622//700 621//699 625//701 +f 626//702 622//700 623//703 +f 623//703 622//700 624//704 +f 624//704 622//700 625//701 +f 616//696 622//700 617//697 +f 617//697 622//700 626//702 +f 628//705 626//702 627//706 +f 627//706 626//702 623//703 +f 617//697 626//702 628//705 +f 630//707 628//705 627//706 +f 629//708 617//697 628//705 +f 629//708 628//705 630//707 +f 631//709 629//708 630//707 +f 632//710 631//709 630//707 +f 632//710 630//707 633//711 +f 633//711 630//707 634//712 +f 630//707 627//706 634//712 +f 634//712 627//706 636//713 +f 634//712 636//713 635//714 +f 638//715 634//712 635//714 +f 633//711 634//712 637//716 +f 637//716 634//712 638//715 +f 637//716 638//715 640//717 +f 638//715 635//714 639//718 +f 638//715 639//718 641//719 +f 640//717 638//715 641//719 +f 641//719 639//718 642//720 +f 642//720 643//721 641//719 +f 644//722 641//719 643//721 +f 641//719 644//722 640//717 +f 644//722 645//723 640//717 +f 644//722 646//724 645//723 +f 648//725 649//726 647//727 +f 649//726 646//724 647//727 +f 651//728 650//729 649//726 +f 649//726 650//729 645//723 +f 652//730 651//728 649//726 +f 648//725 652//730 649//726 +f 646//724 649//726 645//723 +f 648//725 653//731 652//730 +f 654//732 655//733 656//734 +f 655//733 615//693 656//734 +f 655//733 657//735 615//693 +f 613//692 615//693 657//735 +f 656//734 631//709 632//710 +f 656//734 632//710 650//729 +f 615//693 631//709 656//734 +f 651//728 656//734 650//729 +f 654//732 656//734 651//728 +f 642//720 658//736 659//737 +f 659//737 643//721 642//720 +f 661//738 658//736 642//720 +f 642//720 660//739 661//738 +f 642//720 662//740 660//739 +f 662//740 663//741 664//742 +f 639//718 663//741 662//740 +f 662//740 642//720 639//718 +f 663//741 665//743 664//742 +f 666//744 664//742 665//743 +f 666//744 665//743 667//745 +f 665//743 624//704 667//745 +f 668//746 667//745 624//704 +f 668//746 624//704 670//747 +f 670//747 669//748 668//746 +f 625//701 670//747 624//704 +f 671//749 665//743 663//741 +f 671//749 623//703 665//743 +f 623//703 624//704 665//743 +f 635//714 636//713 671//749 +f 636//713 627//706 671//749 +f 635//714 671//749 663//741 +f 627//706 623//703 671//749 +f 639//718 635//714 663//741 +f 650//729 632//710 645//723 +f 645//723 633//711 637//716 +f 632//710 633//711 645//723 +f 645//723 637//716 640//717 +f 615//693 618//694 631//709 +f 618//694 629//708 631//709 +f 618//694 617//697 629//708 +l 543 544 +l 610 543 diff --git a/assets/voxygen/lod/terracotta_yard.obj b/assets/voxygen/lod/terracotta_yard.obj new file mode 100644 index 0000000..9bd6d2e --- /dev/null +++ b/assets/voxygen/lod/terracotta_yard.obj @@ -0,0 +1,526 @@ +# Blender 4.0.2 +# www.blender.org +o 252_198_80 +v -20.382378 8.442660 6.965842 +v -8.265961 19.955797 6.965842 +v -8.442662 -20.382378 6.965842 +v -19.955799 -8.265962 6.965842 +v 8.265961 -19.955797 6.965842 +v 20.382381 -8.442659 6.965842 +v 19.955801 8.265960 6.965842 +v 8.442659 20.382380 6.965842 +v -28.007465 0.000005 4.827856 +v -19.389790 19.389795 4.827856 +v -0.000004 -28.007467 4.827856 +v -19.389795 -19.389790 4.827856 +v 19.389790 -19.389797 4.827856 +v 28.007463 -0.000005 4.827856 +v 19.389793 19.389790 4.827856 +v 0.000005 28.007465 4.827856 +v -27.088766 -11.220530 -1.586102 +v -26.521833 10.985706 -1.586102 +v 11.220531 -27.088768 -1.586102 +v -10.985706 -26.521833 -1.586102 +v 26.521832 -10.985706 -1.586102 +v 27.088768 11.220531 -1.586102 +v 10.985708 26.521833 -1.586102 +v -11.220530 27.088764 -1.586102 +v -1.067500 20.670000 6.950000 +v -1.067500 20.670000 11.780001 +v -0.794500 20.670000 6.950000 +v -0.794500 20.670000 11.780001 +v -1.067500 20.396999 6.950000 +v -1.067500 20.396999 11.780001 +v -0.794500 20.396999 6.950000 +v -0.794500 20.396999 11.780001 +v -1.340500 20.943001 12.410000 +v -0.521500 20.943001 12.410000 +v -0.521500 20.124001 12.410000 +v -1.340500 20.124001 12.410000 +v -0.332500 20.670000 6.950000 +v -0.332500 20.670000 9.680000 +v 1.032500 20.670000 6.950000 +v 1.032500 20.670000 9.680000 +v -0.332500 19.305000 6.950000 +v -0.332500 19.305000 9.680000 +v 1.032500 19.305000 6.950000 +v 1.032500 19.305000 9.680000 +v -15.370733 13.861061 6.950000 +v -15.370733 13.861061 11.780001 +v -15.177694 14.054101 6.950000 +v -15.177694 14.054101 11.780001 +v -15.177692 13.668020 6.950000 +v -15.177692 13.668020 11.780001 +v -14.984653 13.861060 6.950000 +v -14.984653 13.861060 11.780001 +v -15.756815 13.861061 12.410000 +v -15.177694 14.440182 12.410000 +v -14.598574 13.861061 12.410000 +v -15.177694 13.281940 12.410000 +v -14.851010 14.380784 6.950000 +v -14.851010 14.380784 9.680000 +v -13.885811 15.345984 6.950000 +v -13.885811 15.345984 9.680000 +v -13.885810 13.415584 6.950000 +v -13.885810 13.415584 9.680000 +v -12.920610 14.380784 6.950000 +v -12.920610 14.380784 9.680000 +v -20.670000 -1.067501 6.950000 +v -20.670000 -1.067501 11.780001 +v -20.670000 -0.794500 6.950000 +v -20.670000 -0.794500 11.780001 +v -20.396999 -1.067501 6.950000 +v -20.396999 -1.067501 11.780001 +v -20.396999 -0.794500 6.950000 +v -20.396999 -0.794500 11.780001 +v -20.943001 -1.340500 12.410000 +v -20.943001 -0.521502 12.410000 +v -20.124001 -0.521502 12.410000 +v -20.124001 -1.340500 12.410000 +v -20.670000 -0.332500 6.950000 +v -20.670000 -0.332500 9.680000 +v -20.670000 1.032499 6.950000 +v -20.670000 1.032499 9.680000 +v -19.305000 -0.332500 6.950000 +v -19.305000 -0.332500 9.680000 +v -19.305000 1.032499 6.950000 +v -19.305000 1.032499 9.680000 +v -13.861060 -15.370735 6.950000 +v -13.861060 -15.370735 11.780001 +v -14.054100 -15.177695 6.950000 +v -14.054100 -15.177695 11.780001 +v -13.668019 -15.177694 6.950000 +v -13.668019 -15.177694 11.780001 +v -13.861059 -14.984654 6.950000 +v -13.861059 -14.984654 11.780001 +v -13.861060 -15.756817 12.410000 +v -14.440181 -15.177696 12.410000 +v -13.861060 -14.598576 12.410000 +v -13.281940 -15.177696 12.410000 +v -14.380783 -14.851012 6.950000 +v -14.380783 -14.851012 9.680000 +v -15.345984 -13.885812 6.950000 +v -15.345984 -13.885812 9.680000 +v -13.415583 -13.885812 6.950000 +v -13.415583 -13.885812 9.680000 +v -14.380783 -12.920611 6.950000 +v -14.380783 -12.920611 9.680000 +v 1.067503 -20.670000 6.950001 +v 1.067503 -20.670000 11.780001 +v 0.794500 -20.670000 6.950001 +v 0.794500 -20.670000 11.780001 +v 1.067501 -20.396999 6.950001 +v 1.067501 -20.396999 11.780001 +v 0.794500 -20.396999 6.950001 +v 0.794500 -20.396999 11.780001 +v 1.340500 -20.943001 12.410000 +v 0.521502 -20.943001 12.410000 +v 0.521502 -20.124001 12.410000 +v 1.340500 -20.124001 12.410000 +v 0.332500 -20.670000 6.950001 +v 0.332500 -20.670000 9.680000 +v -1.032499 -20.670000 6.950001 +v -1.032499 -20.670000 9.680000 +v 0.332500 -19.305000 6.950001 +v 0.332500 -19.305000 9.680000 +v -1.032499 -19.305000 6.950001 +v -1.032499 -19.305000 9.680000 +v 15.370736 -13.861059 6.950001 +v 15.370736 -13.861059 11.780001 +v 15.177696 -14.054099 6.950001 +v 15.177696 -14.054099 11.780001 +v 15.177695 -13.668018 6.950001 +v 15.177695 -13.668018 11.780001 +v 14.984655 -13.861058 6.950001 +v 14.984655 -13.861058 11.780001 +v 15.756818 -13.861059 12.410000 +v 15.177697 -14.440180 12.410000 +v 14.598577 -13.861059 12.410000 +v 15.177697 -13.281939 12.410000 +v 14.851013 -14.380782 6.950001 +v 14.851013 -14.380782 9.680000 +v 13.885813 -15.345983 6.950001 +v 13.885813 -15.345983 9.680000 +v 13.885813 -13.415582 6.950001 +v 13.885813 -13.415582 9.680000 +v 12.920612 -14.380782 6.950001 +v 12.920612 -14.380782 9.680000 +v 20.670000 1.067503 6.950001 +v 20.670000 1.067503 11.780001 +v 20.670000 0.794500 6.950001 +v 20.670000 0.794500 11.780001 +v 20.396999 1.067501 6.950001 +v 20.396999 1.067501 11.780001 +v 20.396999 0.794500 6.950001 +v 20.396999 0.794500 11.780001 +v 20.943001 1.340500 12.410000 +v 20.943001 0.521502 12.410000 +v 20.124001 0.521502 12.410000 +v 20.124001 1.340500 12.410000 +v 20.670000 0.332500 6.950001 +v 20.670000 0.332500 9.680000 +v 20.670000 -1.032499 6.950001 +v 20.670000 -1.032499 9.680000 +v 19.305000 0.332500 6.950001 +v 19.305000 0.332500 9.680000 +v 19.305000 -1.032499 6.950001 +v 19.305000 -1.032499 9.680000 +v 13.861058 15.370737 6.950001 +v 13.861058 15.370737 11.780001 +v 14.054098 15.177697 6.950001 +v 14.054098 15.177697 11.780001 +v 13.668017 15.177696 6.950001 +v 13.668017 15.177696 11.780001 +v 13.861057 14.984656 6.950001 +v 13.861057 14.984656 11.780001 +v 13.861058 15.756819 12.410000 +v 14.440179 15.177698 12.410000 +v 13.861058 14.598577 12.410000 +v 13.281938 15.177698 12.410000 +v 14.380781 14.851014 6.950001 +v 14.380781 14.851014 9.680000 +v 15.345982 13.885814 6.950001 +v 15.345982 13.885814 9.680000 +v 13.415581 13.885814 6.950001 +v 13.415581 13.885814 9.680000 +v 14.380781 12.920613 6.950001 +v 14.380781 12.920613 9.680000 +vn -0.2228 -0.0976 0.9700 +vn -0.8454 0.0098 0.5340 +vn -0.5784 -0.5915 0.5617 +vn 0.1077 0.2454 0.9634 +vn 0.5784 0.5915 0.5617 +vn 0.0098 0.8454 0.5340 +vn 0.0976 -0.2228 0.9700 +vn -0.0098 -0.8454 0.5340 +vn 0.5915 -0.5784 0.5617 +vn -0.2454 0.1077 0.9634 +vn -0.5915 0.5784 0.5617 +vn 0.2454 -0.1077 0.9634 +vn 0.8454 -0.0098 0.5340 +vn 0.2228 0.0976 0.9700 +vn -0.0976 0.2228 0.9700 +vn -0.1077 -0.2454 0.9634 +vn 0.3855 0.8887 0.2483 +vn -0.3796 0.8757 0.2983 +vn 0.3796 -0.8757 0.2983 +vn 0.8887 -0.3855 0.2483 +vn 0.8757 0.3796 0.2983 +vn -0.8887 0.3855 0.2483 +vn -0.8757 -0.3796 0.2983 +vn -0.3855 -0.8887 0.2483 +vn -0.0000 1.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn 0.9176 -0.0000 -0.3976 +vn -0.0000 -0.9176 -0.3976 +vn -0.0000 0.9176 -0.3976 +vn -0.9176 -0.0000 -0.3976 +vn -0.0000 -0.0000 1.0000 +vn -0.7071 0.7071 -0.0000 +vn 0.7071 0.7071 -0.0000 +vn 0.7071 -0.7071 -0.0000 +vn -0.7071 -0.7071 -0.0000 +vn 0.6488 0.6488 -0.3976 +vn 0.6488 -0.6488 -0.3976 +vn -0.6488 0.6488 -0.3976 +vn -0.6488 -0.6488 -0.3976 +s 1 +f 4//1 9//2 12//3 +f 8//4 15//5 16//6 +f 5//7 11//8 13//9 +f 1//10 10//11 9//2 +f 6//12 13//9 14//13 +f 7//14 14//13 15//5 +f 2//15 16//6 10//11 +f 3//16 12//3 11//8 +f 4//1 1//10 9//2 +f 8//4 7//14 15//5 +f 5//7 3//16 11//8 +f 1//10 2//15 10//11 +f 6//12 5//7 13//9 +f 7//14 6//12 14//13 +f 2//15 8//4 16//6 +f 3//16 4//1 12//3 +f 16//6 23//17 24//18 +f 13//9 19//19 21//20 +f 15//5 22//21 23//17 +f 9//2 18//22 17//23 +f 10//11 24//18 18//22 +f 14//13 21//20 22//21 +f 12//3 17//23 20//24 +f 11//8 20//24 19//19 +f 5//7 7//14 2//15 +f 2//15 4//1 5//7 +f 2//15 1//10 4//1 +f 5//7 6//12 7//14 +f 16//6 15//5 23//17 +f 13//9 11//8 19//19 +f 15//5 14//13 22//21 +f 9//2 10//11 18//22 +f 10//11 16//6 24//18 +f 14//13 13//9 21//20 +f 12//3 9//2 17//23 +f 11//8 12//3 20//24 +f 4//1 3//16 5//7 +f 7//14 8//4 2//15 +s 0 +f 25//25 26//25 28//25 27//25 +f 27//26 28//26 32//26 31//26 +f 31//27 32//27 30//27 29//27 +f 29//28 30//28 26//28 25//28 +f 32//29 28//29 34//29 35//29 +f 30//30 32//30 35//30 36//30 +f 28//31 26//31 33//31 34//31 +f 26//32 30//32 36//32 33//32 +f 37//25 38//25 40//25 39//25 +f 39//26 40//26 44//26 43//26 +f 43//27 44//27 42//27 41//27 +f 41//28 42//28 38//28 37//28 +f 44//33 40//33 38//33 42//33 +f 45//34 46//34 48//34 47//34 +f 47//35 48//35 52//35 51//35 +f 51//36 52//36 50//36 49//36 +f 49//37 50//37 46//37 45//37 +f 52//38 48//38 54//38 55//38 +f 50//39 52//39 55//39 56//39 +f 48//40 46//40 53//40 54//40 +f 46//41 50//41 56//41 53//41 +f 57//34 58//34 60//34 59//34 +f 59//35 60//35 64//35 63//35 +f 63//36 64//36 62//36 61//36 +f 61//37 62//37 58//37 57//37 +f 64//33 60//33 58//33 62//33 +f 65//28 66//28 68//28 67//28 +f 67//25 68//25 72//25 71//25 +f 71//26 72//26 70//26 69//26 +f 69//27 70//27 66//27 65//27 +f 72//31 68//31 74//31 75//31 +f 70//29 72//29 75//29 76//29 +f 68//32 66//32 73//32 74//32 +f 66//30 70//30 76//30 73//30 +f 77//28 78//28 80//28 79//28 +f 79//25 80//25 84//25 83//25 +f 83//26 84//26 82//26 81//26 +f 81//27 82//27 78//27 77//27 +f 84//33 80//33 78//33 82//33 +f 85//37 86//37 88//37 87//37 +f 87//34 88//34 92//34 91//34 +f 91//35 92//35 90//35 89//35 +f 89//36 90//36 86//36 85//36 +f 92//40 88//40 94//40 95//40 +f 90//38 92//38 95//38 96//38 +f 88//41 86//41 93//41 94//41 +f 86//39 90//39 96//39 93//39 +f 97//37 98//37 100//37 99//37 +f 99//34 100//34 104//34 103//34 +f 103//35 104//35 102//35 101//35 +f 101//36 102//36 98//36 97//36 +f 104//33 100//33 98//33 102//33 +f 105//27 106//27 108//27 107//27 +f 107//28 108//28 112//28 111//28 +f 111//25 112//25 110//25 109//25 +f 109//26 110//26 106//26 105//26 +f 112//32 108//32 114//32 115//32 +f 110//31 112//31 115//31 116//31 +f 108//30 106//30 113//30 114//30 +f 106//29 110//29 116//29 113//29 +f 117//27 118//27 120//27 119//27 +f 119//28 120//28 124//28 123//28 +f 123//25 124//25 122//25 121//25 +f 121//26 122//26 118//26 117//26 +f 124//33 120//33 118//33 122//33 +f 125//36 126//36 128//36 127//36 +f 127//37 128//37 132//37 131//37 +f 131//34 132//34 130//34 129//34 +f 129//35 130//35 126//35 125//35 +f 132//41 128//41 134//41 135//41 +f 130//40 132//40 135//40 136//40 +f 128//39 126//39 133//39 134//39 +f 126//38 130//38 136//38 133//38 +f 137//36 138//36 140//36 139//36 +f 139//37 140//37 144//37 143//37 +f 143//34 144//34 142//34 141//34 +f 141//35 142//35 138//35 137//35 +f 144//33 140//33 138//33 142//33 +f 145//26 146//26 148//26 147//26 +f 147//27 148//27 152//27 151//27 +f 151//28 152//28 150//28 149//28 +f 149//25 150//25 146//25 145//25 +f 152//30 148//30 154//30 155//30 +f 150//32 152//32 155//32 156//32 +f 148//29 146//29 153//29 154//29 +f 146//31 150//31 156//31 153//31 +f 157//26 158//26 160//26 159//26 +f 159//27 160//27 164//27 163//27 +f 163//28 164//28 162//28 161//28 +f 161//25 162//25 158//25 157//25 +f 164//33 160//33 158//33 162//33 +f 165//35 166//35 168//35 167//35 +f 167//36 168//36 172//36 171//36 +f 171//37 172//37 170//37 169//37 +f 169//34 170//34 166//34 165//34 +f 172//39 168//39 174//39 175//39 +f 170//41 172//41 175//41 176//41 +f 168//38 166//38 173//38 174//38 +f 166//40 170//40 176//40 173//40 +f 177//35 178//35 180//35 179//35 +f 179//36 180//36 184//36 183//36 +f 183//37 184//37 182//37 181//37 +f 181//34 182//34 178//34 177//34 +f 184//33 180//33 178//33 182//33 +o Glow +v -1.193080 20.795580 12.305000 +v -0.668920 20.795580 12.305000 +v -0.668920 20.271420 12.305000 +v -1.193080 20.271420 12.305000 +v -1.193080 20.795580 13.040000 +v -0.668920 20.795580 13.040000 +v -0.668920 20.271420 13.040000 +v -1.193080 20.271420 13.040000 +v -0.931000 20.533501 13.355000 +v -15.548330 13.861061 12.305000 +v -15.177693 14.231698 12.305000 +v -14.807055 13.861060 12.305000 +v -15.177692 13.490423 12.305000 +v -15.548330 13.861061 13.040000 +v -15.177693 14.231698 13.040000 +v -14.807055 13.861060 13.040000 +v -15.177692 13.490423 13.040000 +v -15.177694 13.861061 13.355000 +v -20.795580 -1.193081 12.305000 +v -20.795580 -0.668921 12.305000 +v -20.271420 -0.668921 12.305000 +v -20.271420 -1.193081 12.305000 +v -20.795580 -1.193081 13.040000 +v -20.795580 -0.668921 13.040000 +v -20.271420 -0.668921 13.040000 +v -20.271420 -1.193081 13.040000 +v -20.533501 -0.931000 13.355000 +v -13.861060 -15.548332 12.305000 +v -14.231697 -15.177696 12.305000 +v -13.861059 -14.807056 12.305000 +v -13.490422 -15.177692 12.305000 +v -13.861060 -15.548332 13.040000 +v -14.231697 -15.177696 13.040000 +v -13.861059 -14.807056 13.040000 +v -13.490422 -15.177692 13.040000 +v -13.861060 -15.177696 13.355000 +v 1.193081 -20.795578 12.305000 +v 0.668921 -20.795578 12.305000 +v 0.668923 -20.271420 12.305000 +v 1.193081 -20.271420 12.305000 +v 1.193081 -20.795578 13.040000 +v 0.668921 -20.795578 13.040000 +v 0.668923 -20.271420 13.040000 +v 1.193081 -20.271420 13.040000 +v 0.931000 -20.533501 13.355000 +v 15.548333 -13.861059 12.305000 +v 15.177696 -14.231697 12.305000 +v 14.807058 -13.861057 12.305000 +v 15.177693 -13.490421 12.305000 +v 15.548333 -13.861059 13.040000 +v 15.177696 -14.231697 13.040000 +v 14.807058 -13.861057 13.040000 +v 15.177693 -13.490421 13.040000 +v 15.177697 -13.861059 13.355000 +v 20.795578 1.193081 12.305000 +v 20.795578 0.668922 12.305000 +v 20.271420 0.668922 12.305000 +v 20.271420 1.193081 12.305000 +v 20.795578 1.193081 13.040000 +v 20.795578 0.668922 13.040000 +v 20.271420 0.668922 13.040000 +v 20.271420 1.193081 13.040000 +v 20.533501 0.931000 13.355000 +v 13.861058 15.548334 12.305000 +v 14.231696 15.177696 12.305000 +v 13.861056 14.807060 12.305000 +v 13.490420 15.177694 12.305000 +v 13.861058 15.548334 13.040000 +v 14.231696 15.177696 13.040000 +v 13.861056 14.807060 13.040000 +v 13.490420 15.177694 13.040000 +v 13.861058 15.177698 13.355000 +vn -0.0000 0.7687 0.6396 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.7687 -0.0000 0.6396 +vn 0.7687 -0.0000 0.6396 +vn -0.0000 -0.7687 0.6396 +vn -0.5436 0.5436 0.6396 +vn 0.7071 -0.7071 -0.0000 +vn -0.7071 0.7071 -0.0000 +vn -0.7071 -0.7071 -0.0000 +vn 0.7071 0.7071 -0.0000 +vn -0.5436 -0.5436 0.6396 +vn 0.5436 0.5436 0.6396 +vn 0.5436 -0.5436 0.6396 +s 0 +f 190//42 189//42 193//42 +f 188//43 187//43 191//43 192//43 +f 186//44 185//44 189//44 190//44 +f 185//45 188//45 192//45 189//45 +f 187//46 186//46 190//46 191//46 +f 189//47 192//47 193//47 +f 191//48 190//48 193//48 +f 192//49 191//49 193//49 +f 199//50 198//50 202//50 +f 197//51 196//51 200//51 201//51 +f 195//52 194//52 198//52 199//52 +f 194//53 197//53 201//53 198//53 +f 196//54 195//54 199//54 200//54 +f 198//55 201//55 202//55 +f 200//56 199//56 202//56 +f 201//57 200//57 202//57 +f 208//47 207//47 211//47 +f 206//46 205//46 209//46 210//46 +f 204//45 203//45 207//45 208//45 +f 203//43 206//43 210//43 207//43 +f 205//44 204//44 208//44 209//44 +f 207//49 210//49 211//49 +f 209//42 208//42 211//42 +f 210//48 209//48 211//48 +f 217//55 216//55 220//55 +f 215//54 214//54 218//54 219//54 +f 213//53 212//53 216//53 217//53 +f 212//51 215//51 219//51 216//51 +f 214//52 213//52 217//52 218//52 +f 216//57 219//57 220//57 +f 218//50 217//50 220//50 +f 219//56 218//56 220//56 +f 226//49 225//49 229//49 +f 224//44 223//44 227//44 228//44 +f 222//43 221//43 225//43 226//43 +f 221//46 224//46 228//46 225//46 +f 223//45 222//45 226//45 227//45 +f 225//48 228//48 229//48 +f 227//47 226//47 229//47 +f 228//42 227//42 229//42 +f 235//57 234//57 238//57 +f 233//52 232//52 236//52 237//52 +f 231//51 230//51 234//51 235//51 +f 230//54 233//54 237//54 234//54 +f 232//53 231//53 235//53 236//53 +f 234//56 237//56 238//56 +f 236//55 235//55 238//55 +f 237//50 236//50 238//50 +f 244//48 243//48 247//48 +f 242//45 241//45 245//45 246//45 +f 240//46 239//46 243//46 244//46 +f 239//44 242//44 246//44 243//44 +f 241//43 240//43 244//43 245//43 +f 243//42 246//42 247//42 +f 245//49 244//49 247//49 +f 246//47 245//47 247//47 +f 253//56 252//56 256//56 +f 251//53 250//53 254//53 255//53 +f 249//54 248//54 252//54 253//54 +f 248//52 251//52 255//52 252//52 +f 250//51 249//51 253//51 254//51 +f 252//50 255//50 256//50 +f 254//57 253//57 256//57 +f 255//55 254//55 256//55 diff --git a/assets/voxygen/logo.ico b/assets/voxygen/logo.ico new file mode 100644 index 0000000..dac8354 Binary files /dev/null and b/assets/voxygen/logo.ico differ diff --git a/assets/voxygen/net.veloren.veloren.metainfo.xml b/assets/voxygen/net.veloren.veloren.metainfo.xml new file mode 100644 index 0000000..5b387f2 --- /dev/null +++ b/assets/voxygen/net.veloren.veloren.metainfo.xml @@ -0,0 +1,100 @@ + + + + net.veloren.veloren.desktop + CC0-1.0 + GPL-3.0-or-later + + Veloren + + veloren-voxygen + + + + intense + mild + mild + mild + + + + Veloren is a multiplayer voxel RPG written in Rust. It is inspired by games + such as Cube World, Legend of Zelda: Breath of the Wild, Dwarf Fortress and + Minecraft. + + + Veloren ist ein in Rust geschriebenes Mehrspieler Voxel RPG. Es wurde von + Spielen wie Cube World, The Legend of Zelda: Breath of the Wild, Dwarf + Fortress und Minecraft inspiriert. + + + +

+ Welcome To Veloren! +

+ Willkommen bei Veloren! +

+ Veloren is a multiplayer voxel RPG written in Rust. Veloren takes + inspiration from games such as Cube World, Minecraft and Dwarf Fortress. + The game is currently under heavy development, but is playable. +

+ Veloren ist ein in Rust geschriebenes Mehrspieler Voxel RPG. Es wurde + von Spielen wie Cube World, Minecraft und Dwarf Fortress inspiriert. + Das Spiel befindet sich mommentan noch in Entwicklung, ist aber bereits + spielbar. +

+ Development +

+ Entwicklung +

+ Currently the communication of contributors happens mainly on our official + Discord server (https://discord.gg/kjwJwjK). You can join it to keep up + with the development, talk to us or contribute something yourself. Anyone + who shows genuine effort to help is welcome in our team. You don't have to + know how to program to contribute! +

+ Aktuell findet die Kommunikation zwischen Beitragenden hauptsächlich auf + unserem offiziellen Discord (https://discord.gg/kjwJwjK) Server statt. + Du kannst beitreten um Neuigkeiten über die Entwicklung zu erhalten, mit + uns zu reden oder selbst etwas beizutragen. Jeder, der sich bemüht zu helfen + ist in unserem Team willkommen. Du musst nicht wissen wie man programmiert, + um etwas beizutragen. +

+
+ + + + + + + + https://media.discordapp.net/attachments/634860358623821835/884138091537907793/screenshot_1630865233900.png + + + https://media.discordapp.net/attachments/634860358623821835/885141629902684180/bg_12.jpg + + + https://media.discordapp.net/attachments/634860358623821835/884297602462539876/screenshot_1630903166427.png + + + https://media.discordapp.net/attachments/634860358623821835/885141632519905330/bg_10.jpg + + + + + pointing + keyboard + gamepad + + + + multiplayer + sandbox + world + + + https://gitlab.com/veloren/veloren/issues + https://gitlab.com/veloren/veloren#faq + https://book.veloren.net/ + https://veloren.net +
diff --git a/assets/voxygen/net.veloren.veloren.png b/assets/voxygen/net.veloren.veloren.png new file mode 100644 index 0000000..f42aeae Binary files /dev/null and b/assets/voxygen/net.veloren.veloren.png differ diff --git a/assets/voxygen/shaders/antialias/bilinear.glsl b/assets/voxygen/shaders/antialias/bilinear.glsl new file mode 100644 index 0000000..ff2ae63 --- /dev/null +++ b/assets/voxygen/shaders/antialias/bilinear.glsl @@ -0,0 +1,8 @@ +vec4 aa_apply( + texture2D tex, sampler smplr, + texture2D depth_tex, sampler depth_smplr, + vec2 fragCoord, + vec2 resolution +) { + return texture(sampler2D(tex, smplr), fragCoord / resolution); +} diff --git a/assets/voxygen/shaders/antialias/fxaa.glsl b/assets/voxygen/shaders/antialias/fxaa.glsl new file mode 100644 index 0000000..8b7f94b --- /dev/null +++ b/assets/voxygen/shaders/antialias/fxaa.glsl @@ -0,0 +1,10 @@ +#include + +vec4 aa_apply( + texture2D tex, sampler smplr, + texture2D depth_tex, sampler depth_smplr, + vec2 fragCoord, + vec2 resolution +) { + return fxaa_apply(tex, smplr, fragCoord, resolution, 1.0); +} diff --git a/assets/voxygen/shaders/antialias/fxupscale.glsl b/assets/voxygen/shaders/antialias/fxupscale.glsl new file mode 100644 index 0000000..39262bf --- /dev/null +++ b/assets/voxygen/shaders/antialias/fxupscale.glsl @@ -0,0 +1,40 @@ +#include + +vec4 aa_apply( + texture2D tex, sampler smplr, + texture2D depth_tex, sampler depth_smplr, + vec2 fragCoord, + vec2 resolution +) { + ivec2 dirs[] = { ivec2(-1, 0), ivec2(1, 0), ivec2(0, -1), ivec2(0, 1) }; + + vec2 sz = textureSize(sampler2D(tex, smplr), 0).xy; + + //float center_d = texelFetch(sampler2D(depth_tex, depth_smplr), ivec2(fragCoord / screen_res.xy * sz), 0).x; + + float min_depth = 1000; + float max_depth = 0; + for (uint i = 0u; i < dirs.length(); i ++) { + float d = texelFetch(sampler2D(depth_tex, depth_smplr), ivec2(fragCoord / screen_res.xy * sz) + dirs[i], 0).x; + min_depth = min(min_depth, d); + max_depth = max(max_depth, d); + } + + vec4 aa_color = fxaa_apply(tex, smplr, fragCoord, resolution, 1.0 + 1.0 / (min_depth * 0 + 0.001 + (max_depth - min_depth) * 500) * 0.001); + vec4 lerped = texture(sampler2D(tex, smplr), fragCoord / screen_res.xy); + //aa_color = lerped; + + vec4 closest = aa_color; + float closest_dist = 1000.0; + for (uint i = 0u; i < dirs.length(); i ++) { + vec4 col_at = texelFetch(sampler2D(tex, smplr), ivec2(fragCoord / screen_res.xy * sz) + dirs[i], 0); + //float depth_at = texelFetch(sampler2D(depth_tex, depth_smplr), ivec2(fragCoord / screen_res.xy * sz) + dirs[i], 0).x; + float dist = dot(pow(aa_color.rgb - col_at.rgb, ivec3(2)), vec3(1)); + if (dist < closest_dist) { + closest = mix(col_at, lerped, min(length(lerped.rgb - col_at.rgb) * 0.25, 1)); + closest_dist = dist; + } + } + //return texelFetch(sampler2D(tex, smplr), ivec2(fragCoord / screen_res.xy * sz), 0); + return closest;//mix(aa_color, closest, clamp(1.0 - sqrt(closest_dist) / length(aa_color.rgb) * 0.75, 0, 1)); +} diff --git a/assets/voxygen/shaders/antialias/hqx.glsl b/assets/voxygen/shaders/antialias/hqx.glsl new file mode 100644 index 0000000..0eb9508 --- /dev/null +++ b/assets/voxygen/shaders/antialias/hqx.glsl @@ -0,0 +1,65 @@ +const float THRESHOLD = 0.05; +const float DEPTH_THRESHOLD = 0.05; + +bool diag( + texture2D tex, sampler smplr, + texture2D depth_tex, sampler depth_smplr, + const float line_thickness, + inout vec4 sum, + vec2 uv, + const vec2 p1, + const vec2 p2, + const float aa_scale, + const uvec2 src_sz +) { + vec4 v1 = texelFetch(sampler2D(tex, smplr), ivec2(uv + p1 * 0.5), 0); + vec4 v2 = texelFetch(sampler2D(tex, smplr), ivec2(uv + p2 * 0.5), 0); + float d1 = 1.0 / texelFetch(sampler2D(depth_tex, depth_smplr), ivec2(uv + vec2(p1.x, p1.y)), 0).x; + float d2 = 1.0 / texelFetch(sampler2D(depth_tex, depth_smplr), ivec2(uv + vec2(p2.x, p2.y)), 0).x; + if (length((normalize(v1) - normalize(v2)).rgb) > THRESHOLD || abs(d1 - d2) > d1 * DEPTH_THRESHOLD + 3.0) { + return false; + } + vec2 dir = p2 - p1; + vec2 lp = uv - (floor(uv + p1) + 0.5); + dir = normalize(vec2(dir.y, -dir.x)); + float l = clamp((line_thickness - dot(lp, dir)) * aa_scale, 0.0, 1.0); + sum = mix(sum, (v1 + v2) * 0.5, l); + return true; +} + +vec4 aa_apply( + texture2D tex, sampler smplr, + texture2D depth_tex, sampler depth_smplr, + vec2 fragCoord, + vec2 resolution +) { + uvec2 src_sz = textureSize(sampler2D(tex, smplr), 0).xy; + + vec2 upscale = resolution / src_sz; + vec2 ip = fragCoord / upscale; + //start with nearest pixel as 'background' + vec4 s = texelFetch(sampler2D(tex, smplr), ivec2(ip), 0); + //vec4 s = texture(sampler2D(tex, smplr), fragCoord / resolution); + + float aa_scale = upscale.x * 0.5; + + //draw anti aliased diagonal lines of surrounding pixels as 'foreground' + if (diag(tex, smplr, depth_tex, depth_smplr, 0.4, s, ip, vec2(-1, 0), vec2(0, 1), aa_scale, src_sz)) { + diag(tex, smplr, depth_tex, depth_smplr, 0.3, s, ip, vec2(-1, 0), vec2(1, 1), aa_scale, src_sz); + diag(tex, smplr, depth_tex, depth_smplr, 0.3, s, ip, vec2(-1, -1), vec2(0, 1), aa_scale, src_sz); + } + if (diag(tex, smplr, depth_tex, depth_smplr, 0.4, s, ip, vec2(0, 1), vec2(1, 0), aa_scale, src_sz)) { + diag(tex, smplr, depth_tex, depth_smplr, 0.3, s, ip, vec2(0, 1), vec2(1, -1), aa_scale, src_sz); + diag(tex, smplr, depth_tex, depth_smplr, 0.3, s, ip, vec2(-1, 1), vec2(1, 0), aa_scale, src_sz); + } + if (diag(tex, smplr, depth_tex, depth_smplr, 0.4, s, ip, vec2(1, 0), vec2(0, -1), aa_scale, src_sz)) { + diag(tex, smplr, depth_tex, depth_smplr, 0.3, s, ip, vec2(1, 0), vec2(-1, -1), aa_scale, src_sz); + diag(tex, smplr, depth_tex, depth_smplr, 0.3, s, ip, vec2(1, 1), vec2(0, -1), aa_scale, src_sz); + } + if (diag(tex, smplr, depth_tex, depth_smplr, 0.4, s, ip, vec2(0, -1), vec2(-1, 0), aa_scale, src_sz)) { + diag(tex, smplr, depth_tex, depth_smplr, 0.3, s, ip, vec2(0, -1), vec2(-1, 1), aa_scale, src_sz); + diag(tex, smplr, depth_tex, depth_smplr, 0.3, s, ip, vec2(1, -1), vec2(-1, 0), aa_scale, src_sz); + } + + return s; +} diff --git a/assets/voxygen/shaders/antialias/msaa-x16.glsl b/assets/voxygen/shaders/antialias/msaa-x16.glsl new file mode 100644 index 0000000..0598c3e --- /dev/null +++ b/assets/voxygen/shaders/antialias/msaa-x16.glsl @@ -0,0 +1,33 @@ +vec4 aa_apply( + texture2D tex, sampler smplr, + texture2D depth_tex, sampler depth_smplr, + vec2 fragCoord, + vec2 resolution +) { + ivec2 texel_coord = ivec2(fragCoord.x, fragCoord.y); + + vec4 sample1 = texelFetch(sampler2DMS(tex, smplr), texel_coord, 0); + vec4 sample2 = texelFetch(sampler2DMS(tex, smplr), texel_coord, 1); + vec4 sample3 = texelFetch(sampler2DMS(tex, smplr), texel_coord, 2); + vec4 sample4 = texelFetch(sampler2DMS(tex, smplr), texel_coord, 3); + vec4 sample5 = texelFetch(sampler2DMS(tex, smplr), texel_coord, 4); + vec4 sample6 = texelFetch(sampler2DMS(tex, smplr), texel_coord, 5); + vec4 sample7 = texelFetch(sampler2DMS(tex, smplr), texel_coord, 6); + vec4 sample8 = texelFetch(sampler2DMS(tex, smplr), texel_coord, 7); + vec4 sample9 = texelFetch(sampler2DMS(tex, smplr), texel_coord, 8); + vec4 sample10 = texelFetch(sampler2DMS(tex, smplr), texel_coord, 9); + vec4 sample11 = texelFetch(sampler2DMS(tex, smplr), texel_coord, 10); + vec4 sample12 = texelFetch(sampler2DMS(tex, smplr), texel_coord, 11); + vec4 sample13 = texelFetch(sampler2DMS(tex, smplr), texel_coord, 12); + vec4 sample14 = texelFetch(sampler2DMS(tex, smplr), texel_coord, 13); + vec4 sample15 = texelFetch(sampler2DMS(tex, smplr), texel_coord, 14); + vec4 sample16 = texelFetch(sampler2DMS(tex, smplr), texel_coord, 15); + + // Average Samples + vec4 msaa_color = ( + sample1 + sample2 + sample3 + sample4 + sample5 + sample6 + sample7 + sample8 + + sample9 + sample10 + sample11 + sample12 + sample13 + sample14 + sample15 + sample16 + ) / 16.0; + + return msaa_color; +} diff --git a/assets/voxygen/shaders/antialias/msaa-x4.glsl b/assets/voxygen/shaders/antialias/msaa-x4.glsl new file mode 100644 index 0000000..6ab01e8 --- /dev/null +++ b/assets/voxygen/shaders/antialias/msaa-x4.glsl @@ -0,0 +1,18 @@ +vec4 aa_apply( + texture2D tex, sampler smplr, + texture2D depth_tex, sampler depth_smplr, + vec2 fragCoord, + vec2 resolution +) { + ivec2 texel_coord = ivec2(fragCoord.x, fragCoord.y); + + vec4 sample1 = texelFetch(sampler2DMS(tex, smplr), texel_coord, 0); + vec4 sample2 = texelFetch(sampler2DMS(tex, smplr), texel_coord, 1); + vec4 sample3 = texelFetch(sampler2DMS(tex, smplr), texel_coord, 2); + vec4 sample4 = texelFetch(sampler2DMS(tex, smplr), texel_coord, 3); + + // Average Samples + vec4 msaa_color = (sample1 + sample2 + sample3 + sample4) / 4.0; + + return msaa_color; +} diff --git a/assets/voxygen/shaders/antialias/msaa-x8.glsl b/assets/voxygen/shaders/antialias/msaa-x8.glsl new file mode 100644 index 0000000..1d15046 --- /dev/null +++ b/assets/voxygen/shaders/antialias/msaa-x8.glsl @@ -0,0 +1,22 @@ +vec4 aa_apply( + texture2D tex, sampler smplr, + texture2D depth_tex, sampler depth_smplr, + vec2 fragCoord, + vec2 resolution +) { + ivec2 texel_coord = ivec2(fragCoord.x, fragCoord.y); + + vec4 sample1 = texelFetch(sampler2DMS(tex, smplr), texel_coord, 0); + vec4 sample2 = texelFetch(sampler2DMS(tex, smplr), texel_coord, 1); + vec4 sample3 = texelFetch(sampler2DMS(tex, smplr), texel_coord, 2); + vec4 sample4 = texelFetch(sampler2DMS(tex, smplr), texel_coord, 3); + vec4 sample5 = texelFetch(sampler2DMS(tex, smplr), texel_coord, 4); + vec4 sample6 = texelFetch(sampler2DMS(tex, smplr), texel_coord, 5); + vec4 sample7 = texelFetch(sampler2DMS(tex, smplr), texel_coord, 6); + vec4 sample8 = texelFetch(sampler2DMS(tex, smplr), texel_coord, 7); + + // Average Samples + vec4 msaa_color = (sample1 + sample2 + sample3 + sample4 + sample5 + sample6 + sample7 + sample8) / 8.0; + + return msaa_color; +} diff --git a/assets/voxygen/shaders/antialias/none.glsl b/assets/voxygen/shaders/antialias/none.glsl new file mode 100644 index 0000000..50c9f74 --- /dev/null +++ b/assets/voxygen/shaders/antialias/none.glsl @@ -0,0 +1,8 @@ +vec4 aa_apply( + texture2D tex, sampler smplr, + texture2D depth_tex, sampler depth_smplr, + vec2 fragCoord, + vec2 resolution +) { + return texelFetch(sampler2D(tex, smplr), ivec2(fragCoord * textureSize(sampler2D(tex, smplr), 0).xy / resolution), 0); +} diff --git a/assets/voxygen/shaders/blit-frag.glsl b/assets/voxygen/shaders/blit-frag.glsl new file mode 100644 index 0000000..529c1d8 --- /dev/null +++ b/assets/voxygen/shaders/blit-frag.glsl @@ -0,0 +1,16 @@ +#version 440 core + +layout(set = 0, binding = 0) +uniform texture2D t_src_color; +layout(set = 0, binding = 1) +uniform sampler s_src_color; + +layout(location = 0) in vec2 uv; + +layout(location = 0) out vec4 tgt_color; + +void main() { + vec4 color = texture(sampler2D(t_src_color, s_src_color), uv); + + tgt_color = vec4(color.rgb, 1); +} diff --git a/assets/voxygen/shaders/blit-vert.glsl b/assets/voxygen/shaders/blit-vert.glsl new file mode 100644 index 0000000..0093cc3 --- /dev/null +++ b/assets/voxygen/shaders/blit-vert.glsl @@ -0,0 +1,15 @@ +#version 440 core + +layout(location = 0) out vec2 uv; + +void main() { + // Generate fullscreen triangle + vec2 v_pos = vec2( + float(gl_VertexIndex / 2) * 4.0 - 1.0, + float(gl_VertexIndex % 2) * 4.0 - 1.0 + ); + + uv = (v_pos * vec2(1.0, -1.0) + 1.0) * 0.5; + + gl_Position = vec4(v_pos, 0.0, 1.0); +} diff --git a/assets/voxygen/shaders/clouds-frag.glsl b/assets/voxygen/shaders/clouds-frag.glsl new file mode 100644 index 0000000..6a3c960 --- /dev/null +++ b/assets/voxygen/shaders/clouds-frag.glsl @@ -0,0 +1,320 @@ +#version 440 core + +#include + +#define LIGHTING_TYPE (LIGHTING_TYPE_TRANSMISSION | LIGHTING_TYPE_REFLECTION) + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_SPECULAR + +#if (FLUID_MODE == FLUID_MODE_LOW) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE +#elif (FLUID_MODE >= FLUID_MODE_MEDIUM) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_RADIANCE +#endif + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +// Must come before includes +#define IS_POSTPROCESS + +#include +// Note: The sampler uniform is declared here because it differs for MSAA +#include +#include +#include +#include +// This *MUST* come after `cloud.glsl`: it contains a function that depends on `cloud.glsl` when clouds are enabled +#include +#include + +layout(set = 2, binding = 0) +uniform texture2D t_src_color; +layout(set = 2, binding = 1) +uniform sampler s_src_color; + +layout(set = 2, binding = 2) +uniform texture2D t_src_depth; +layout(set = 2, binding = 3) +uniform sampler s_src_depth; + +layout (std140, set = 2, binding = 4) +uniform u_locals { + mat4 all_mat_inv; +}; + +layout(location = 0) in vec2 uv; + +layout(set = 2, binding = 5) +uniform utexture2D t_src_mat; + +layout(location = 0) out vec4 tgt_color; + +vec3 wpos_at(vec2 uv) { + uvec2 sz = textureSize(sampler2D(t_src_depth, s_src_depth), 0); + float buf_depth = texelFetch(sampler2D(t_src_depth, s_src_depth), clamp(ivec2(uv * sz), ivec2(0), ivec2(sz) - 1), 0).x; + //float buf_depth = texture(sampler2D(t_src_depth, s_src_depth), uv).x; + vec4 clip_space = vec4((uv * 2.0 - 1.0) * vec2(1, -1), buf_depth, 1.0); + vec4 view_space = all_mat_inv * clip_space; + view_space /= view_space.w; + return view_space.xyz; +} + +float depth_at(vec2 uv) { + uvec2 sz = textureSize(sampler2D(t_src_depth, s_src_depth), 0); + float buf_depth = texelFetch(sampler2D(t_src_depth, s_src_depth), clamp(ivec2(uv * sz), ivec2(0), ivec2(sz) - 1), 0).x; + if (buf_depth == 0.0) { + return 524288.0; + } else { + vec4 clip_space = vec4((uv * 2.0 - 1.0) * vec2(1, -1), buf_depth, 1.0); + vec4 view_space = all_mat_inv * clip_space; + view_space /= view_space.w; + return -(view_mat * view_space).z; + } +} + +void main() { + vec4 color = texture(sampler2D(t_src_color, s_src_color), uv); + + uvec2 mat_sz = textureSize(usampler2D(t_src_mat, s_src_depth), 0); + uvec4 mat = texelFetch(usampler2D(t_src_mat, s_src_depth), clamp(ivec2(uv * mat_sz), ivec2(0), ivec2(mat_sz) - 1), 0); + + #ifdef EXPERIMENTAL_VIEWNORMALS + tgt_color = vec4(vec3(mat.xyz) / 255.0, 1); + return; + #endif + #ifdef EXPERIMENTAL_VIEWMATERIALS + const vec3 mat_colors[5] = vec3[]( + vec3(0, 1, 1), // MAT_SKY + vec3(1, 1, 0), // MAT_BLOCK + vec3(0, 0, 1), // MAT_FLUID + vec3(1, 0, 1), // MAT_FIGURE + vec3(0.5, 1, 0) // MAT_LOD + ); + tgt_color = vec4(mat_colors[mat.a % 5u], 1); + return; + #endif + #ifdef EXPERIMENTAL_VIEWDEPTH + tgt_color = vec4(vec3(pow(clamp(depth_at(uv) / 524288.0, 0, 1), 0.3)), 1); + return; + #endif + + #ifdef EXPERIMENTAL_BAREMINIMUM + tgt_color = vec4(color.rgb, 1); + return; + #endif + + vec3 wpos = wpos_at(uv); + float dist = distance(wpos, cam_pos.xyz); + vec3 cam_dir = (wpos - cam_pos.xyz) / dist; + vec3 dir = cam_dir; + + // Apply clouds + float cloud_blend = 1.0; + if (color.a < 1.0) { + vec2 nz = vec2(0); + uvec2 col_sz = textureSize(sampler2D(t_src_color, s_src_color), 0); + #if (REFLECTION_MODE >= REFLECTION_MODE_MEDIUM) + nz = (vec2( + noise_3d(vec3((wpos.xy + focus_off.xy) * 0.1, tick.x * 0.2 + wpos.x * 0.01)).x, + noise_3d(vec3((wpos.yx + focus_off.yx) * 0.1, tick.x * 0.2 + wpos.y * 0.01)).x + ) - 0.5) * (dir.z < 0.0 ? color.a : 1.0); + + const float n2 = 1.3325; + vec3 refr_dir; + // TODO: Proper refraction + // if (medium.x == MEDIUM_WATER) { + // vec3 surf_norm = normalize(vec3(nz * 0.03 / (1.0 + dist * 0.1), 1)); + // refr_dir = refract(dir, surf_norm * -sign(dir.z), 1.0 / n2); + // } else { + if (mat.a == MAT_FLUID) { + refr_dir = normalize(dir + vec3(nz * 1.5 / dist, 0.0)); + } else { + refr_dir = dir; + } + // } + + vec4 clip = (all_mat * vec4(cam_pos.xyz + refr_dir, 1.0)); + vec2 new_uv = (clip.xy / max(clip.w, 0)) * 0.5 * vec2(1, -1) + 0.5; + + float uv_merge = clamp((1.0 - abs(new_uv.y - 0.5) * 2) * 5.0, 0, 1); + new_uv = mix(uv, new_uv, uv_merge); + + vec4 new_col = texelFetch(sampler2D(t_src_color, s_src_color), clamp(ivec2(new_uv * col_sz), ivec2(0), ivec2(col_sz) - 1), 0); + if (new_col.a < 1.0) { + color = new_col; + dir = refr_dir; + } + #endif + { + cloud_blend = 1.0 - color.a; + + #if (FLUID_MODE >= FLUID_MODE_MEDIUM || REFLECTION_MODE >= REFLECTION_MODE_MEDIUM) + if (mat.a != MAT_SKY) { + vec3 surf_norm = vec3(mat.xyz) / 127.0 - 1.0; + vec3 refl_dir = reflect(dir, surf_norm); + + // Don't reflect back into the surface by snapping the reflection to the *actual* (i.e: not normal-mapped) surface plane + // TODO: Find a good way to know the *actual* surface normal, minus normal mapping + vec3 flat_norm = vec3(0, 0, 1);//round(surf_norm); + if (dot(refl_dir, flat_norm) <= 0.0) { + // TODO: This assumes that the surface is axis-aligned! + refl_dir = normalize(refl_dir.xyz * (1.0 - abs(flat_norm))); + } + + vec4 clip = (all_mat * vec4(cam_pos.xyz + refl_dir, 1.0)); + vec2 new_uv = (clip.xy / max(clip.w, 0)) * 0.5 * vec2(1, -1) + 0.5; + + #if (REFLECTION_MODE >= REFLECTION_MODE_HIGH) + vec3 ray_end = wpos + refl_dir * 5.0 * dist; + // Trace through the screen-space depth buffer to find the ray intersection + const int MAIN_ITERS = 64; + for (int i = 0; i < MAIN_ITERS; i ++) { + float t = float(i) / float(MAIN_ITERS); + // TODO: Trace in screen space, not world space + vec3 swpos = mix(wpos, ray_end, t); + vec3 svpos = (view_mat * vec4(swpos, 1)).xyz; + vec4 clippos = proj_mat * vec4(svpos, 1); + vec2 suv = (clippos.xy / clippos.w) * 0.5 * vec2(1, -1) + 0.5; + float d = -depth_at(suv); + if (d < svpos.z * 0.8 && d > svpos.z * 0.999) { + // Don't cast into water! + if (texelFetch(sampler2D(t_src_color, s_src_color), clamp(ivec2(suv * col_sz), ivec2(0), ivec2(col_sz) - 1), 0).a >= 1.0) { + /* t -= 1.0 / float(MAIN_ITERS); */ + // Do a bit of extra iteration to try to refine the estimate + const int ITERS = 8; + float diff = 1.0 / float(MAIN_ITERS); + for (int i = 0; i < ITERS; i ++) { + vec3 swpos = mix(wpos, ray_end, t); + svpos = (view_mat * vec4(swpos, 1)).xyz; + vec4 clippos = proj_mat * vec4(svpos, 1); + suv = (clippos.xy / clippos.w) * 0.5 * vec2(1, -1) + 0.5; + float d = -depth_at(suv); + t += ((d > svpos.z * 0.999) ? -1.0 : 1.0) * diff; + diff *= 0.5; + } + // Small offset to push us into obscured territory + new_uv = suv - vec2(0, 0.001); + break; + } + } + } + #endif + + #ifdef EXPERIMENTAL_SMEARREFLECTIONS + const float SMEAR_FRAC = 0.2; + vec2 anew_uv = abs(new_uv - 0.5) * 2; + new_uv = mix( + anew_uv, + 1.0 - SMEAR_FRAC + (1.0 - 1.0 / (1.0 + (anew_uv - 1.0 + SMEAR_FRAC))) * SMEAR_FRAC, + lessThan(vec2(1.0 - SMEAR_FRAC), anew_uv) + ) * sign(new_uv - 0.5) * 0.5 + 0.5; + #else + new_uv = clamp(new_uv, vec2(0), vec2(1)); + #endif + + vec3 new_wpos = wpos_at(new_uv); + float new_dist = distance(new_wpos, cam_pos.xyz); + float merge = min( + // Off-screen merge factor + #ifdef EXPERIMENTAL_SMEARREFLECTIONS + 1.0, + #else + clamp((1.0 - max(abs(new_uv.y - 0.5), abs(new_uv.x - 0.5)) * 2) * 6.0, 0, 1), + #endif + // Depth merge factor + clamp((new_dist - dist * 0.5) / (dist * 0.5), 0.0, 1.0) + ); + + vec3 refl_col; + float not_underground = 1.0; + // Make underground water look more correct + #if (REFLECTION_MODE >= REFLECTION_MODE_HIGH) + float f_alt = alt_at(wpos.xy); + not_underground = clamp((wpos.z - f_alt) / 32.0 + 1.0, 0.0, 1.0); + #endif + // Did we hit a surface during reflection? + if (merge > 0.0) { + // Yes: grab the new material from screen space + uvec4 new_mat = texelFetch(usampler2D(t_src_mat, s_src_depth), clamp(ivec2(new_uv * mat_sz), ivec2(0), ivec2(mat_sz) - 1), 0); + // If it's the sky, just go determine the sky color analytically to avoid sampling the incomplete skybox + // Otherwise, pull the color from the screen-space color buffer + vec3 sky_col = min(get_sky_color(refl_dir, wpos, vec3(-100000), 0.125, false, 0.0, true, 0.0), vec3(1)) * not_underground; + if (new_mat.a == MAT_SKY) { + refl_col = sky_col; + } else { + refl_col = mix(sky_col, texelFetch(sampler2D(t_src_color, s_src_color), clamp(ivec2(new_uv * col_sz), ivec2(0), ivec2(col_sz) - 1), 0).rgb, merge); + } + // Apply clouds to reflected colour + refl_col = mix(refl_col, get_cloud_color(refl_col, refl_dir, wpos, distance(new_wpos, wpos.xyz), 1.0), not_underground); + } else { + // No: assume that anything off-screen is the colour of the sky + refl_col = min(get_sky_color(refl_dir, wpos, vec3(-100000), 0.125, true, 1.0, true, 1.0) * not_underground, vec3(1)); + // Apply clouds to reflection + refl_col = mix(refl_col, get_cloud_color(refl_col, refl_dir, wpos, 100000.0, 1.0), not_underground); + } + color.rgb = mix(color.rgb, refl_col, color.a); + cloud_blend = 1; + } else { + #else + { + #endif + cloud_blend = 1; + } + } + } + color.rgb = mix(color.rgb, get_cloud_color(color.rgb, dir, cam_pos.xyz, dist, 1.0), cloud_blend); + + #if (CLOUD_MODE == CLOUD_MODE_NONE) + color.rgb = apply_point_glow(cam_pos.xyz + focus_off.xyz, dir, dist, color.rgb); + #else + if (medium.x == MEDIUM_AIR && rain_density > 0.001) { + vec3 cam_wpos = cam_pos.xyz + focus_off.xyz; + + vec3 adjusted_dir = (vec4(cam_dir, 0) * rain_dir_mat).xyz; + + vec2 dir2d = adjusted_dir.xy; + vec3 rorigin = cam_pos.xyz + focus_off.xyz + 0.5; + vec3 rpos = vec3(0.0); + float t = 0.0; + const float PLANCK = 0.01; + for (int i = 0; i < 14 /* log2(64) * 2 + 2 */; i ++) { + float scale = min(pow(2, ceil(t / 2.0)), 32); + vec2 deltas = (step(vec2(0), dir2d) - fract(rpos.xy / scale + 100.0)) / dir2d; + float jump = max(min(deltas.x, deltas.y) * scale, PLANCK); + t += jump; + + #if (CLOUD_MODE >= CLOUD_MODE_MEDIUM) + if (t >= 64.0) { break; } + #else + if (t >= 16.0) { break; } + #endif + + rpos = rorigin + adjusted_dir * t; + + vec2 diff = abs(round(rpos.xy) - rpos.xy); + vec3 wall_pos = vec3((diff.x > diff.y) ? rpos.xy : rpos.yx, rpos.z + integrated_rain_vel); + wall_pos.xz *= vec2(4, 0.3); + wall_pos.z += hash_two(uvec2(wall_pos.xy + vec2(0, 0.5))); + + float depth_adjust = fract(hash_two(uvec2(wall_pos.xz) + 500u)); + float wpos_dist = t - jump * depth_adjust; + vec3 wpos = cam_pos.xyz + dir * wpos_dist; + + if (wpos_dist > dist) { break; } + vec2 wall_pos_half = fract(wall_pos.xz) - 0.5; + if (dot(wall_pos_half, wall_pos_half) < 0.01 + pow(max(0.0, wpos_dist - (dist - 0.25)) / 0.25, 4.0) * 0.2) { + float density = rain_density * rain_occlusion_at(wpos); + if (fract(hash_two(uvec2(wall_pos.xz) + 1000u)) >= density) { continue; } + + float alpha = 0.5 * clamp((wpos_dist - 1.0) * 0.5, 0.0, 1.0); + float light = dot(color.rgb, vec3(1)) + 0.05 + (get_sun_brightness() + get_moon_brightness()) * 0.2; + color.rgb = mix(color.rgb, vec3(0.3, 0.35, 0.5) * light, alpha); + } + } + } + #endif + + tgt_color = vec4(color.rgb, 1); +} diff --git a/assets/voxygen/shaders/clouds-vert.glsl b/assets/voxygen/shaders/clouds-vert.glsl new file mode 100644 index 0000000..e9b38bf --- /dev/null +++ b/assets/voxygen/shaders/clouds-vert.glsl @@ -0,0 +1,34 @@ +#version 440 core + +#include + +#define LIGHTING_TYPE (LIGHTING_TYPE_TRANSMISSION | LIGHTING_TYPE_REFLECTION) + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_SPECULAR + +#if (FLUID_MODE == FLUID_MODE_LOW) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE +#elif (FLUID_MODE >= FLUID_MODE_MEDIUM) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_RADIANCE +#endif + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +#include + +layout(location = 0) out vec2 uv; + +void main() { + // Generate fullscreen triangle + vec2 v_pos = vec2( + float(gl_VertexIndex / 2) * 4.0 - 1.0, + float(gl_VertexIndex % 2) * 4.0 - 1.0 + ); + + // Flip y and transform into 0.0 to 1.0 range + uv = (v_pos * vec2(1.0, -1.0) + 1.0) * 0.5; + + gl_Position = vec4(v_pos, 0.0, 1.0); +} diff --git a/assets/voxygen/shaders/debug-frag.glsl b/assets/voxygen/shaders/debug-frag.glsl new file mode 100644 index 0000000..6bee75b --- /dev/null +++ b/assets/voxygen/shaders/debug-frag.glsl @@ -0,0 +1,85 @@ +#version 440 core + +#define HAS_SHADOW_MAPS + +#include +#include +#include +#include +#include +#include + +layout (location = 0) +in vec4 f_color; +layout (location = 1) +in vec3 f_pos; +layout (location = 2) +in vec3 f_norm; + +layout (std140, set = 2, binding = 0) +uniform u_locals { + vec4 w_pos; + vec4 w_color; +}; + +layout(set = 2, binding = 0) +uniform texture2D t_col_light; +layout(set = 2, binding = 1) +uniform sampler s_col_light; + +layout(location = 0) out vec4 tgt_color; +layout(location = 1) out uvec4 tgt_mat; + +void main() { + vec3 cam_to_frag = normalize(f_pos - cam_pos.xyz); + vec3 view_dir = -cam_to_frag; + +#if (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_MAP || FLUID_MODE == FLUID_MODE_SHINY) + float f_alt = alt_at(f_pos.xy); +#elif (SHADOW_MODE == SHADOW_MODE_NONE || FLUID_MODE == FLUID_MODE_CHEAP) + float f_alt = f_pos.z; +#endif + +#if (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_MAP) + vec4 f_shadow = textureMaybeBicubic(t_horizon, s_horizon, pos_to_tex(f_pos.xy)); + float sun_shade_frac = horizon_at2(f_shadow, f_alt, f_pos, sun_dir); +#elif (SHADOW_MODE == SHADOW_MODE_NONE) + float sun_shade_frac = 1.0; +#endif + float moon_shade_frac = 1.0; + + DirectionalLight sun_info = get_sun_info(sun_dir, sun_shade_frac, f_pos); + DirectionalLight moon_info = get_moon_info(moon_dir, moon_shade_frac); + + vec3 surf_color = f_color.xyz; + float alpha = 1.0; + const float n2 = 1.5; + const float R_s2s0 = pow((1.0 - n2) / (1.0 + n2), 2); + const float R_s1s0 = pow((1.3325 - n2) / (1.3325 + n2), 2); + const float R_s2s1 = pow((1.0 - 1.3325) / (1.0 + 1.3325), 2); + const float R_s1s2 = pow((1.3325 - 1.0) / (1.3325 + 1.0), 2); + float R_s = (f_pos.z < f_alt) ? mix(R_s2s1 * R_s1s0, R_s1s0, medium.x) : mix(R_s2s0, R_s1s2 * R_s2s0, medium.x); + + vec3 k_a = vec3(1.0); + vec3 k_d = vec3(0.8); + vec3 k_s = vec3(R_s); + float max_light = 0.0; + vec3 cam_attenuation = vec3(1); + float fluid_alt = max(f_pos.z + 1, floor(f_alt + 1)); + vec3 mu = medium.x == MEDIUM_WATER ? MU_WATER : vec3(0.0); + vec3 emitted_light = vec3(1); + vec3 reflected_light = vec3(1); + + max_light += get_sun_diffuse2(sun_info, moon_info, f_norm, view_dir, f_pos, mu, cam_attenuation, fluid_alt, k_a, k_d, k_s, alpha, f_norm, 1.0, emitted_light, reflected_light); + + max_light += lights_at(f_pos, f_norm, view_dir, mu, cam_attenuation, fluid_alt, k_a, k_d, k_s, alpha, f_norm, 1.0, emitted_light, reflected_light); + + float point_shadow = shadow_at(f_pos, f_norm); + reflected_light *= point_shadow; + emitted_light *= point_shadow; + + surf_color = illuminate(max_light, view_dir, surf_color * emitted_light, surf_color * reflected_light * 1.0); + + tgt_color = vec4(surf_color, f_color.a); + tgt_mat = uvec4(uvec3((f_norm + 1.0) * 127.0), MAT_FIGURE); +} diff --git a/assets/voxygen/shaders/debug-vert.glsl b/assets/voxygen/shaders/debug-vert.glsl new file mode 100644 index 0000000..1c2989f --- /dev/null +++ b/assets/voxygen/shaders/debug-vert.glsl @@ -0,0 +1,55 @@ +#version 440 core + +#include + +layout (location = 0) +in vec3 v_pos; +layout (location = 1) +in vec4 v_color; +layout (location = 2) +in vec3 v_norm; + +layout (std140, set = 2, binding = 0) +uniform u_locals { + vec4 w_pos; + vec4 w_color; + vec4 w_ori; +}; + +layout (location = 0) +out vec4 f_color; +layout (location = 1) +out vec3 f_pos; +layout (location = 2) +out vec3 f_norm; + +void main() { + f_color = w_color * v_color; + + // Build rotation matrix + // https://en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles#Rotation_matrices + mat3 rotation_matrix; + float q0 = w_ori[3]; + float q1 = w_ori[0]; + float q2 = w_ori[1]; + float q3 = w_ori[2]; + + float r00 = 1 - 2 * (pow(q2, 2) + pow(q3, 2)); + float r01 = 2 * (q1 * q2 - q0 * q3); + float r02 = 2 * (q0 * q2 + q1 * q3); + rotation_matrix[0] = vec3(r00, r01, r02); + + float r10 = 2 * (q1 * q2 + q0 * q3); + float r11 = 1 - 2 * (pow(q1, 2) + pow(q3, 2)); + float r12 = 2 * (q2 * q3 - q0 * q1); + rotation_matrix[1] = vec3(r10, r11, r12); + + float r20 = 2 * (q1 * q3 - q0 * q2); + float r21 = 2 * (q0 * q1 + q2 * q3); + float r22 = 1 - 2 * (pow(q1, 2) + pow(q2, 2)); + rotation_matrix[2] = vec3(r20, r21, r22); + + f_pos = (v_pos * rotation_matrix + w_pos.xyz) - focus_off.xyz; + f_norm = normalize(v_norm); + gl_Position = all_mat * vec4(f_pos, 1); +} diff --git a/assets/voxygen/shaders/dual-downsample-filtered-frag.glsl b/assets/voxygen/shaders/dual-downsample-filtered-frag.glsl new file mode 100644 index 0000000..679b494 --- /dev/null +++ b/assets/voxygen/shaders/dual-downsample-filtered-frag.glsl @@ -0,0 +1,94 @@ +#version 440 core + +layout(set = 0, binding = 0) +uniform texture2D t_src_color; +layout(set = 0, binding = 1) +uniform sampler s_src_color; +layout(set = 0, binding = 2) + +uniform u_locals { + vec2 halfpixel; +}; + +layout(location = 0) in vec2 uv; + +layout(location = 0) out vec4 tgt_color; + +vec4 simplefetch(ivec2 uv) { + return texelFetch(sampler2D(t_src_color, s_src_color), uv, 0); +} + +// Check whether the texel color is higher than threshold, if so output as brightness color +vec4 filterDim(vec4 color) { + // constants from: https://learnopengl.com/Advanced-Lighting/Bloom + float brightness = dot(color.rgb, vec3(0.2126, 0.7152, 0.0722)); + if(brightness > 1.00) + return vec4(color.rgb, 1.0); + else + return vec4(0.0, 0.0, 0.0, 1.0); +} + +vec4 filteredFetch(ivec2 uv) { + return filterDim(simplefetch(uv)); +} + +// Derived from: https://community.arm.com/cfs-file/__key/communityserver-blogs-components-weblogfiles/00-00-00-20-66/siggraph2015_2D00_mmg_2D00_marius_2D00_notes.pdf +vec4 filteredDownsample(vec2 uv, vec2 halfpixel) { + vec2 tex_res = 0.5 / halfpixel; + // coordinate of the top left texel + // _ _ _ _ + // |x|_|_|_| + // |_|_|_|_| + // |_|_|_|_| + // |_|_|_|_| + // + ivec2 tl_coord = ivec2(uv * tex_res + vec2(-1.5, 1.5)); + + // Fetch inner square + vec4 sum = filteredFetch(tl_coord + ivec2(1, 1)); + sum += filteredFetch(tl_coord + ivec2(2, 1)); + sum += filteredFetch(tl_coord + ivec2(1, 2)); + sum += filteredFetch(tl_coord + ivec2(2, 2)); + // Weight inner square + sum *= 5.0; + // Fetch border + sum += filteredFetch(tl_coord + ivec2(0, 0)); + sum += filteredFetch(tl_coord + ivec2(1, 0)); + sum += filteredFetch(tl_coord + ivec2(2, 0)); + sum += filteredFetch(tl_coord + ivec2(3, 0)); + sum += filteredFetch(tl_coord + ivec2(0, 1)); + sum += filteredFetch(tl_coord + ivec2(3, 1)); + sum += filteredFetch(tl_coord + ivec2(0, 2)); + sum += filteredFetch(tl_coord + ivec2(3, 2)); + sum += filteredFetch(tl_coord + ivec2(0, 3)); + sum += filteredFetch(tl_coord + ivec2(1, 3)); + sum += filteredFetch(tl_coord + ivec2(2, 3)); + sum += filteredFetch(tl_coord + ivec2(3, 3)); + + return sum / 32.0; +} + +vec4 naninf_filter_sample(vec2 uv) { + vec4 color = textureLod(sampler2D(t_src_color, s_src_color), uv, 0); + // TODO: ensure NaNs/Infs are not produced in the first place + bvec4 nan = isnan(color); + bvec4 inf = isinf(color); + return mix(mix(color, vec4(0.0), nan), vec4(100.0), inf); +} + +// From: https://community.arm.com/cfs-file/__key/communityserver-blogs-components-weblogfiles/00-00-00-20-66/siggraph2015_2D00_mmg_2D00_marius_2D00_notes.pdf +vec4 downsample(vec2 uv, vec2 halfpixel) { + vec4 sum = naninf_filter_sample(uv) * 4.0; + sum += naninf_filter_sample(uv - halfpixel.xy); + sum += naninf_filter_sample(uv + halfpixel.xy); + sum += naninf_filter_sample(uv + vec2(halfpixel.x, -halfpixel.y)); + sum += naninf_filter_sample(uv - vec2(halfpixel.x, -halfpixel.y)); + + return sum / 8.0; +} + +void main() { + // Uncomment to experiment with filtering out dim pixels + //tgt_color = filteredDownsample(uv, halfpixel); + tgt_color = downsample(uv, halfpixel); +} diff --git a/assets/voxygen/shaders/dual-downsample-frag.glsl b/assets/voxygen/shaders/dual-downsample-frag.glsl new file mode 100644 index 0000000..d205ba3 --- /dev/null +++ b/assets/voxygen/shaders/dual-downsample-frag.glsl @@ -0,0 +1,34 @@ +#version 440 core + +layout(set = 0, binding = 0) +uniform texture2D t_src_color; +layout(set = 0, binding = 1) +uniform sampler s_src_color; +layout(set = 0, binding = 2) + +uniform u_locals { + vec2 halfpixel; +}; + +layout(location = 0) in vec2 uv; + +layout(location = 0) out vec4 tgt_color; + +vec4 simplesample(vec2 uv) { + return textureLod(sampler2D(t_src_color, s_src_color), uv, 0); +} + +// From: https://community.arm.com/cfs-file/__key/communityserver-blogs-components-weblogfiles/00-00-00-20-66/siggraph2015_2D00_mmg_2D00_marius_2D00_notes.pdf +vec4 downsample(vec2 uv, vec2 halfpixel) { + vec4 sum = simplesample(uv) * 4.0; + sum += simplesample(uv - halfpixel.xy); + sum += simplesample(uv + halfpixel.xy); + sum += simplesample(uv + vec2(halfpixel.x, -halfpixel.y)); + sum += simplesample(uv - vec2(halfpixel.x, -halfpixel.y)); + + return sum / 8.0; +} + +void main() { + tgt_color = downsample(uv, halfpixel); +} diff --git a/assets/voxygen/shaders/dual-upsample-frag.glsl b/assets/voxygen/shaders/dual-upsample-frag.glsl new file mode 100644 index 0000000..ba4dfd9 --- /dev/null +++ b/assets/voxygen/shaders/dual-upsample-frag.glsl @@ -0,0 +1,35 @@ +#version 440 core + +layout(set = 0, binding = 0) +uniform texture2D t_src_color; +layout(set = 0, binding = 1) +uniform sampler s_src_color; +layout(set = 0, binding = 2) +uniform u_locals { + vec2 halfpixel; +}; + +layout(location = 0) in vec2 uv; + +layout(location = 0) out vec4 tgt_color; + +vec4 simplesample(vec2 uv) { + return textureLod(sampler2D(t_src_color, s_src_color), uv, 0); +} + +// From: https://community.arm.com/cfs-file/__key/communityserver-blogs-components-weblogfiles/00-00-00-20-66/siggraph2015_2D00_mmg_2D00_marius_2D00_notes.pdf +vec4 upsample(vec2 uv, vec2 halfpixel) { + vec4 sum = simplesample(uv + vec2(-halfpixel.x * 2.0, 0.0)); + sum += simplesample(uv + vec2(-halfpixel.x, halfpixel.y)) * 2.0; + sum += simplesample(uv + vec2(0.0, halfpixel.y * 2.0)); + sum += simplesample(uv + vec2(halfpixel.x, halfpixel.y)) * 2.0; + sum += simplesample(uv + vec2(halfpixel.x * 2.0, 0.0)); + sum += simplesample(uv + vec2(halfpixel.x, -halfpixel.y)) * 2.0; + sum += simplesample(uv + vec2(0.0, -halfpixel.y * 2.0)); + sum += simplesample(uv + vec2(-halfpixel.x, -halfpixel.y)) * 2.0; + return sum / 12.0; +} + +void main() { + tgt_color = upsample(uv, halfpixel); +} diff --git a/assets/voxygen/shaders/figure-frag.glsl b/assets/voxygen/shaders/figure-frag.glsl new file mode 100644 index 0000000..d7bb36a --- /dev/null +++ b/assets/voxygen/shaders/figure-frag.glsl @@ -0,0 +1,312 @@ +#version 440 core + +#define FIGURE_SHADER + +#include + +#define LIGHTING_TYPE LIGHTING_TYPE_REFLECTION + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_GLOSSY + +#if (FLUID_MODE == FLUID_MODE_LOW) + #define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE +#elif (FLUID_MODE >= FLUID_MODE_MEDIUM) + #define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_RADIANCE +#endif + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +#define HAS_SHADOW_MAPS + +#include +#include +#include +#include + +layout(location = 0) in vec3 f_pos; +// in float dummy; +// in vec3 f_col; +// in float f_ao; +// flat in uint f_pos_norm; +layout(location = 1) flat in vec3 f_norm; +/*centroid */layout(location = 2) in vec2 f_uv_pos; +layout(location = 3) in vec3 m_pos; +layout(location = 4) in float scale; +// in float f_alt; +// in vec4 f_shadow; +// in vec3 light_pos[2]; + +// #if (SHADOW_MODE == SHADOW_MODE_MAP) +// in vec4 sun_pos; +// #elif (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_NONE) +// const vec4 sun_pos = vec4(0.0); +// #endif + +layout(set = 2, binding = 0) +uniform texture2D t_col_light; +layout(set = 2, binding = 1) +uniform sampler s_col_light; + +//struct ShadowLocals { +// mat4 shadowMatrices; +// mat4 texture_mat; +//}; +// +//layout (std140) +//uniform u_light_shadows { +// ShadowLocals shadowMats[/*MAX_LAYER_FACES*/192]; +//}; + +layout (std140, set = 3, binding = 0) +uniform u_locals { + mat4 model_mat; + vec4 highlight_col; + vec4 model_light; + vec4 model_glow; + ivec4 atlas_offs; + vec3 model_pos; + // bit 0 - is player + // bit 1-31 - unused + int flags; +}; + +struct BoneData { + mat4 bone_mat; + mat4 normals_mat; +}; + +layout (std140, set = 3, binding = 1) +uniform u_bones { + BoneData bones[16]; +}; + +layout(location = 0) out vec4 tgt_color; +layout(location = 1) out uvec4 tgt_mat; + +void main() { + // vec2 texSize = textureSize(t_col_light, 0); + // vec4 col_light = texture(t_col_light, (f_uv_pos + 0.5) / texSize); + // vec3 f_col = col_light.rgb; + // float f_ao = col_light.a; + + // vec4 f_col_light = texture(t_col_light, (f_uv_pos + 0.5) / textureSize(t_col_light, 0)); + // vec3 f_col = f_col_light.rgb; + // float f_ao = f_col_light.a; + + float f_ao; + uint material = 0xFFu; + vec3 f_col = greedy_extract_col_light_figure(t_col_light, s_col_light, f_uv_pos, f_ao, material); + + #ifdef EXPERIMENTAL_BAREMINIMUM + tgt_color = vec4(simple_lighting(f_pos.xyz, f_col, f_ao), 1); + return; + #endif + + // float /*f_light*/f_ao = textureProj(t_col_light, vec3(f_uv_pos, texSize)).a;//1.0;//f_col_light.a * 4.0;// f_light = float(v_col_light & 0x3Fu) / 64.0; + + // vec3 my_chunk_pos = (vec3((uvec3(f_pos_norm) >> uvec3(0, 9, 18)) & uvec3(0x1FFu)) - 256.0) / 2.0; + // tgt_color = vec4(hash(floor(vec4(my_chunk_pos.x, 0, 0, 0))), hash(floor(vec4(0, my_chunk_pos.y, 0, 1))), hash(floor(vec4(0, 0, my_chunk_pos.z, 2))), 1.0); + // float f_ao = 0; + // tgt_color = vec4(vec3(f_ao), 1.0); + // tgt_color = vec4(f_col, 1.0); + // return; + + // vec3 du = dFdx(f_pos); + // vec3 dv = dFdy(f_pos); + // vec3 f_norm = normalize(cross(du, dv)); + + // vec4 light_pos[2]; +//#if (SHADOW_MODE == SHADOW_MODE_MAP) +// // for (uint i = 0u; i < light_shadow_count.z; ++i) { +// // light_pos[i] = /*vec3(*/shadowMats[i].texture_mat * vec4(f_pos, 1.0)/*)*/; +// // } +// vec4 sun_pos = /*vec3(*/shadowMats[0].texture_mat * vec4(f_pos, 1.0)/*)*/; +//#elif (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_NONE) +// vec4 sun_pos = vec4(0.0); +//#endif + + vec3 cam_to_frag = normalize(f_pos - cam_pos.xyz); + // vec4 vert_pos4 = view_mat * vec4(f_pos, 1.0); + // vec3 view_dir = normalize(-vec3(vert_pos4)/* / vert_pos4.w*/); + vec3 view_dir = -cam_to_frag; + + /* vec3 sun_dir = get_sun_dir(time_of_day.x); + vec3 moon_dir = get_moon_dir(time_of_day.x); */ + // float sun_light = get_sun_brightness(sun_dir); + // float moon_light = get_moon_brightness(moon_dir); + /* float sun_shade_frac = horizon_at(f_pos, sun_dir); + float moon_shade_frac = horizon_at(f_pos, moon_dir); */ +#if (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_MAP || FLUID_MODE >= FLUID_MODE_MEDIUM) + float f_alt = alt_at(f_pos.xy); +#elif (SHADOW_MODE == SHADOW_MODE_NONE || FLUID_MODE == FLUID_MODE_LOW) + float f_alt = f_pos.z; +#endif + +#if (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_MAP) + vec4 f_shadow = textureMaybeBicubic(t_horizon, s_horizon, pos_to_tex(f_pos.xy)); + float sun_shade_frac = horizon_at2(f_shadow, f_alt, f_pos, sun_dir); +#elif (SHADOW_MODE == SHADOW_MODE_NONE) + float sun_shade_frac = 1.0;//horizon_at2(f_shadow, f_alt, f_pos, sun_dir); +#endif + float moon_shade_frac = 1.0;// horizon_at2(f_shadow, f_alt, f_pos, moon_dir); + // Globbal illumination "estimate" used to light the faces of voxels which are parallel to the sun or moon (which is a very common occurrence). + // Will be attenuated by k_d, which is assumed to carry any additional ambient occlusion information (e.g. about shadowing). + // float ambient_sides = clamp(mix(0.5, 0.0, abs(dot(-f_norm, sun_dir)) * 10000.0), 0.0, 0.5); + // NOTE: current assumption is that moon and sun shouldn't be out at the sae time. + // This assumption is (or can at least easily be) wrong, but if we pretend it's true we avoids having to explicitly pass in a separate shadow + // for the sun and moon (since they have different brightnesses / colors so the shadows shouldn't attenuate equally). + // float shade_frac = /*1.0;*/sun_shade_frac + moon_shade_frac; + + // DirectionalLight sun_info = get_sun_info(sun_dir, sun_shade_frac, light_pos); + DirectionalLight sun_info = get_sun_info(sun_dir, sun_shade_frac, /*sun_pos*/f_pos); + DirectionalLight moon_info = get_moon_info(moon_dir, moon_shade_frac/*, light_pos*/); + + vec3 surf_color; + // If the figure is large enough to be 'terrain-like', we apply a noise effect to it + #ifndef EXPERIMENTAL_NONOISE + if (scale >= 0.5) { + // TODO: Fix this, it isn't cprrect to use `f_norm` here. Would need something like + // `m_norm` which is a normal relative to the figure. + float noise = hash(vec4(floor(m_pos * 3.0 - vec3(0.5, 0, 0) - f_norm * 0.1), 0)); + + const float A = 0.055; + const float W_INV = 1 / (1 + A); + const float W_2 = W_INV * W_INV; + const float NOISE_FACTOR = 0.015; + vec3 noise_delta = (sqrt(f_col) * W_INV + noise * NOISE_FACTOR); + surf_color = noise_delta * noise_delta * W_2; + } else + #endif + { + surf_color = f_col; + } + + float alpha = 1.0; + const float n2 = 1.5; + + + // This is a silly hack. It's not true reflectance (see below for that), but gives the desired + // effect without breaking the entire lighting model until we come up with a better way of doing + // reflectivity that accounts for physical surroundings like the ground + if ((material & (1u << 1u)) > 0u) { + vec3 reflect_ray_dir = reflect(cam_to_frag, f_norm); + surf_color *= dot(vec3(1.0) - abs(fract(reflect_ray_dir * 1.5) * 2.0 - 1.0) * 0.85, vec3(1)); + alpha = 0.1; + } + + const float R_s2s0 = pow((1.0 - n2) / (1.0 + n2), 2); + const float R_s1s0 = pow((1.3325 - n2) / (1.3325 + n2), 2); + const float R_s2s1 = pow((1.0 - 1.3325) / (1.0 + 1.3325), 2); + const float R_s1s2 = pow((1.3325 - 1.0) / (1.3325 + 1.0), 2); + float R_s = (f_pos.z < f_alt) ? mix(R_s2s1 * R_s1s0, R_s1s0, medium.x) : mix(R_s2s0, R_s1s2 * R_s2s0, medium.x); + + vec3 k_a = vec3(1.0); + vec3 k_d = vec3(1.0); + vec3 k_s = vec3(R_s); + + vec3 emitted_light, reflected_light; + + // Make voxel shadows block the sun and moon + sun_info.block *= model_light.x; + moon_info.block *= model_light.x; + + // vec3 light_frac = /*vec3(1.0);*//*vec3(max(dot(f_norm, -sun_dir) * 0.5 + 0.5, 0.0));*/light_reflection_factor(f_norm, view_dir, vec3(0, 0, -1.0), vec3(1.0), vec3(R_s), alpha); + // vec3 point_light = light_at(f_pos, f_norm); + // vec3 light, diffuse_light, ambient_light; + //get_sun_diffuse(f_norm, time_of_day.x, view_dir, k_a * point_shadow * (shade_frac * 0.5 + light_frac * 0.5), k_d * point_shadow * shade_frac, k_s * point_shadow * shade_frac, alpha, emitted_light, reflected_light); + float max_light = 0.0; + // reflected_light *= point_shadow * shade_frac; + // emitted_light *= point_shadow * max(shade_frac, MIN_SHADOW); + // max_light *= point_shadow * shade_frac; + // reflected_light *= point_shadow; + // emitted_light *= point_shadow; + // max_light *= point_shadow; + + vec3 cam_attenuation = vec3(1); + float fluid_alt = max(f_pos.z + 1, floor(f_alt + 1)); + vec3 mu = medium.x == MEDIUM_WATER ? MU_WATER : vec3(0.0); + #if (FLUID_MODE >= FLUID_MODE_MEDIUM) + cam_attenuation = + medium.x == MEDIUM_WATER ? compute_attenuation_point(cam_pos.xyz, view_dir, mu, fluid_alt, /*cam_pos.z <= fluid_alt ? cam_pos.xyz : f_pos*/f_pos) + : compute_attenuation_point(f_pos, -view_dir, mu, fluid_alt, /*cam_pos.z <= fluid_alt ? cam_pos.xyz : f_pos*/cam_pos.xyz); + #endif + + // Prevent the sky affecting light when underground + float not_underground = clamp((f_pos.z - f_alt) / 128.0 + 1.0, 0.0, 1.0); + + max_light += get_sun_diffuse2(sun_info, moon_info, f_norm, view_dir, f_pos, mu, cam_attenuation, fluid_alt, k_a, k_d, k_s, alpha, f_norm, 1.0, emitted_light, reflected_light); + + max_light += lights_at(f_pos, f_norm, view_dir, mu, cam_attenuation, fluid_alt, k_a, k_d, k_s, alpha, f_norm, 1.0, emitted_light, reflected_light); + + // TODO: Hack to add a small amount of underground ambient light to the scene + reflected_light += vec3(0.01, 0.02, 0.03) * (1.0 - not_underground); + + // Apply baked lighting from emissive blocks + float glow_mag = length(model_glow.xyz); + vec3 glow = pow(model_glow.w, 2) * 4 + * glow_light(f_pos) + * (max(dot(f_norm, model_glow.xyz / glow_mag) * 0.5 + 0.5, 0.0) + max(1.0 - glow_mag, 0.0)); + emitted_light += glow * cam_attenuation; + + // Apply baked AO + float ao = f_ao * sqrt(f_ao);//0.25 + f_ao * 0.75; ///*pow(f_ao, 0.5)*/f_ao * 0.85 + 0.15; + reflected_light *= ao; + emitted_light *= ao; + + // Apply point light AO + float point_shadow = shadow_at(f_pos, f_norm); + reflected_light *= point_shadow; + emitted_light *= point_shadow; + + // Apply emissive glow + // For now, just make glowing material light be the same colour as the surface + // TODO: Add a way to control this better outside the shaders + if ((material & (1u << 0u)) > 0u) { + emitted_light += 20 * surf_color; + } + + /* reflected_light *= cloud_shadow(f_pos); */ + /* vec3 point_light = light_at(f_pos, f_norm); + emitted_light += point_light; + reflected_light += point_light; */ + // get_sun_diffuse(f_norm, time_of_day.x, cam_to_frag, surf_color * f_light * point_shadow, 0.5 * surf_color * f_light * point_shadow, 0.5 * surf_color * f_light * point_shadow, 2.0, emitted_light, reflected_light); + + // get_sun_diffuse(f_norm, time_of_day.x, light, diffuse_light, ambient_light, 1.0); + // diffuse_light *= point_shadow; + // ambient_light *= point_shadow; + // vec3 point_light = light_at(f_pos, f_norm); + // light += point_light; + // diffuse_light += point_light; + // reflected_light += point_light; + // vec3 surf_color = illuminate(srgb_to_linear(highlight_col.rgb * f_col), light, diffuse_light, ambient_light); + + float reflectance = 0.0; + // TODO: Do reflectance properly like this later + vec3 reflect_color = vec3(0); + /* + if ((material & (1u << 1u)) > 0u && false) { + vec3 reflect_ray_dir = reflect(cam_to_frag, f_norm); + reflect_color = get_sky_color(reflect_ray_dir, f_pos, vec3(-100000), 0.125, true); + reflect_color = get_cloud_color(reflect_color, reflect_ray_dir, cam_pos.xyz, 100000.0, 0.25); + reflectance = 1.0; + } + */ + + surf_color = illuminate(max_light, view_dir, mix(surf_color * emitted_light, reflect_color, reflectance), mix(surf_color * reflected_light, reflect_color, reflectance)) * highlight_col.rgb; + + // if ((flags & 1) == 1 && int(cam_mode) == 1) { + // float distance = distance(vec3(cam_pos), focus_pos.xyz) - 2; + + // float opacity = clamp(distance / distance_divider, 0, 1); + + // // if(threshold_matrix[int(gl_FragCoord.x) % 4][int(gl_FragCoord.y) % 4] > opacity) { + // // discard; + // // return; + // // } + // } + + tgt_color = vec4(surf_color, 1.0); + tgt_mat = uvec4(uvec3((f_norm + 1.0) * 127.0), MAT_FIGURE); +} diff --git a/assets/voxygen/shaders/figure-vert.glsl b/assets/voxygen/shaders/figure-vert.glsl new file mode 100644 index 0000000..320b482 --- /dev/null +++ b/assets/voxygen/shaders/figure-vert.glsl @@ -0,0 +1,158 @@ +#version 440 core + +#include + +#define FIGURE_SHADER + +#define LIGHTING_TYPE LIGHTING_TYPE_REFLECTION + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_GLOSSY + +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +#include +#include + +layout(location = 0) in uint v_pos_norm; +layout(location = 1) in uint v_atlas_pos; + +// in vec3 v_norm; +/* in uint v_col; +// out vec3 light_pos[2]; +in uint v_ao_bone; */ + +layout (std140, set = 3, binding = 0) +uniform u_locals { + mat4 model_mat; + vec4 highlight_col; + vec4 model_light; + vec4 model_glow; + ivec4 atlas_offs; + vec3 model_pos; + // bit 0 - is player + // bit 1-31 - unused + int flags; +}; + +struct BoneData { + mat4 bone_mat; + // This is actually a matrix, but we explicitly rely on being able to index into it + // in column major order, and some shader compilers seem to transpose the matrix to + // a different format when it's copied out of the array. So we shouldn't put it in + // a local variable (I think explicitly marking it as a vec4[4] works, but I'm not + // sure whether it optimizes the same, and in any case the fact that there's a + // format change suggests an actual wasteful copy is happening). + mat4 normals_mat; +}; + +layout (std140, set = 3, binding = 1) +uniform u_bones { + // Warning: might not actually be 16 elements long. Don't index out of bounds! + BoneData bones[16]; +}; + +//struct ShadowLocals { +// mat4 shadowMatrices; +// mat4 texture_mat; +//}; +// +//layout (std140) +//uniform u_light_shadows { +// ShadowLocals shadowMats[/*MAX_LAYER_FACES*/192]; +//}; + +layout(location = 0) out vec3 f_pos; +// flat out uint f_pos_norm; +layout(location = 1) flat out vec3 f_norm; +// float dummy; +/*centroid */layout(location = 2) out vec2 f_uv_pos; +layout(location = 3) out vec3 m_pos; +layout(location = 4) out float scale; +// out vec3 f_col; +// out float f_ao; +// out float f_alt; +// out vec4 f_shadow; + +// #if (SHADOW_MODE == SHADOW_MODE_MAP) +// out vec4 sun_pos; +// #endif + +void main() { + // Pre-calculate bone matrix + /* uint bone_idx = (v_ao_bone >> 2) & 0x3Fu; */ + uint bone_idx = (v_pos_norm >> 27) & 0xFu; + + // mat4 combined_mat = model_mat * bone_mat; + + vec3 pos = (vec3((uvec3(v_pos_norm) >> uvec3(0, 9, 18)) & uvec3(0x1FFu)) - 256.0) / 2.0; + + // vec4 bone_pos = bones[bone_idx].bone_mat * vec4(pos, 1); + + m_pos = pos; + scale = length(bones[bone_idx].bone_mat[0]); + + f_pos = ( + bones[bone_idx].bone_mat * + vec4(pos, 1.0) + ).xyz + (model_pos - focus_off.xyz); + + #ifdef EXPERIMENTAL_CURVEDWORLD + f_pos.z -= pow(distance(f_pos.xy + focus_off.xy, focus_pos.xy + focus_off.xy) * 0.05, 2); + #endif + + /* f_pos.z -= 25.0 * pow(distance(focus_pos.xy, f_pos.xy) / view_distance.x, 20.0); */ + + f_uv_pos = vec2((uvec2(v_atlas_pos) >> uvec2(2, 17)) & uvec2(0x7FFFu, 0x7FFFu)); + + // f_col = srgb_to_linear(vec3((uvec3(v_col) >> uvec3(0, 8, 16)) & uvec3(0xFFu)) / 255.0); + // f_col = vec3(1.0); + + // f_ao = float(v_ao_bone & 0x3u) / 4.0; + // f_ao = 1.0; + /* for (uint i = 0u; i < light_shadow_count.z; ++i) { + light_pos[i] = vec3(shadowMats[i].texture_mat * vec4(f_pos, 1.0)); + } */ + + // First 3 normals are negative, next 3 are positive + // uint normal_idx = ((v_atlas_pos & 3u) << 1u) | (v_pos_norm >> 31u); + // const vec3 normals[6] = vec3[](vec3(-1,0,0), vec3(1,0,0), vec3(0,-1,0), vec3(0,1,0), vec3(0,0,-1), vec3(0,0,1)); + // vec3 norm = normals[normal_idx]; + uint axis_idx = v_atlas_pos & 3u; + + vec3 norm = bones[bone_idx].normals_mat[axis_idx].xyz; + // norm = normalize(norm); + // vec3 norm = norm_mat * vec4(uvec3(1 << axis_idx) & uvec3(0x1u, 0x3u, 0x7u), 1); + + // // Calculate normal here rather than for each pixel in the fragment shader + // f_norm = normalize(( + // combined_mat * + // vec4(norm, 0) + // ).xyz); + f_norm = mix(-norm, norm, v_pos_norm >> 31u); + +// #if (SHADOW_MODE == SHADOW_MODE_MAP) +// // for (uint i = 0u; i < light_shadow_count.z; ++i) { +// // light_pos[i] = /*vec3(*/shadowMats[i].texture_mat * vec4(f_pos, 1.0)/*)*/; +// // } +// sun_pos = /*vec3(*/shadowMats[0].texture_mat * vec4(f_pos, 1.0)/*)*/; +// // #elif (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_NONE) +// // vec4 sun_pos = vec4(0.0); +// #endif + + // f_pos_norm = v_pos_norm; + + // Also precalculate shadow texture and estimated terrain altitude. + // f_alt = alt_at(f_pos.xy); + // f_shadow = textureMaybeBicubic(t_horizon, pos_to_tex(f_pos.xy)); + + gl_Position = all_mat/*shadowMats[0].shadowMatrices*/ * vec4(f_pos, 1); + // gl_Position.z = -gl_Position.z / 100.0 / gl_Position.w; + // gl_Position.z = -gl_Position.z / 100.0; + // gl_Position.z = gl_Position.z / 100.0; + // gl_Position.z = -gl_Position.z; + // gl_Position.z = -1000.0 / (gl_Position.z + 10000.0); +} diff --git a/assets/voxygen/shaders/fluid-frag/cheap.glsl b/assets/voxygen/shaders/fluid-frag/cheap.glsl new file mode 100644 index 0000000..7037e51 --- /dev/null +++ b/assets/voxygen/shaders/fluid-frag/cheap.glsl @@ -0,0 +1,247 @@ +#version 440 core + +#include + +#define LIGHTING_TYPE (LIGHTING_TYPE_TRANSMISSION | LIGHTING_TYPE_REFLECTION) + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_SPECULAR + +#if (FLUID_MODE == FLUID_MODE_LOW) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE +#elif (FLUID_MODE >= FLUID_MODE_MEDIUM) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_RADIANCE +#endif + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +#define HAS_SHADOW_MAPS + +#include +#include + +layout(location = 0) in vec3 f_pos; +layout(location = 1) flat in uint f_pos_norm; +layout(location = 2) in vec2 f_vel; +// in vec3 f_col; +// in float f_light; +// in vec3 light_pos[2]; + +// struct ShadowLocals { +// mat4 shadowMatrices; +// mat4 texture_mat; +// }; +// +// layout (std140) +// uniform u_light_shadows { +// ShadowLocals shadowMats[/*MAX_LAYER_FACES*/192]; +// }; + +layout(std140, set = 2, binding = 0) +uniform u_locals { + mat4 model_mat; + ivec4 atlas_offs; + float load_time; +}; + +layout(location = 0) out vec4 tgt_color; +layout(location = 1) out uvec4 tgt_mat; + +#include +#include +#include + +vec4 water_col(vec4 posx, vec4 posy) { + posx = (posx + focus_off.x) * 0.1; + posy = (posy + focus_off.y) * 0.1; + return 0.5 + (vec4( + textureLod(sampler2D(t_noise, s_noise), vec2(posx.x, posy.x), 0).x, + textureLod(sampler2D(t_noise, s_noise), vec2(posx.y, posy.y), 0).x, + textureLod(sampler2D(t_noise, s_noise), vec2(posx.z, posy.z), 0).x, + textureLod(sampler2D(t_noise, s_noise), vec2(posx.w, posy.w), 0).x + ) - 0.5) * 1.0; +} + +float water_col_vel(vec2 pos){ + vec4 cols = water_col( + pos.x - tick.z * floor(f_vel.x) - vec2(0.0, tick.z).xyxy, + pos.y - tick.z * floor(f_vel.y) - vec2(0.0, tick.z).xxyy + ); + return mix( + mix(cols.x, cols.y, fract(f_vel.x + 1.0)), + mix(cols.z, cols.w, fract(f_vel.x + 1.0)), + fract(f_vel.y + 1.0) + ); +} + +void main() { + #ifdef EXPERIMENTAL_BAREMINIMUM + tgt_color = vec4(simple_lighting(f_pos.xyz, MU_SCATTER, 1.0), 0.5); + return; + #endif + + // tgt_color = vec4(1.0 - MU_WATER, 1.0); + // return; + // First 3 normals are negative, next 3 are positive + vec3 normals[6] = vec3[](vec3(-1,0,0), vec3(1,0,0), vec3(0,-1,0), vec3(0,1,0), vec3(0,0,-1), vec3(0,0,1)); + + // TODO: last 3 bits in v_pos_norm should be a number between 0 and 5, rather than 0-2 and a direction. + uint norm_axis = (f_pos_norm >> 30) & 0x3u; + // Increase array access by 3 to access positive values + uint norm_dir = ((f_pos_norm >> 29) & 0x1u) * 3u; + // Use an array to avoid conditional branching + vec3 f_norm = normals[norm_axis + norm_dir]; + + // vec4 light_pos[2]; +// #if (SHADOW_MODE == SHADOW_MODE_MAP) +// // for (uint i = 0u; i < light_shadow_count.z; ++i) { +// // light_pos[i] = /*vec3(*/shadowMats[i].texture_mat * vec4(f_pos, 1.0)/*)*/; +// // } +// vec4 sun_pos = /*vec3(*/shadowMats[0].texture_mat * vec4(f_pos, 1.0)/*)*/; +// #elif (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_NONE) +// vec4 sun_pos = vec4(0.0); +// #endif + + vec3 cam_to_frag = normalize(f_pos - cam_pos.xyz); + // vec4 vert_pos4 = view_mat * vec4(f_pos, 1.0); + // vec3 view_dir = normalize(-vec3(vert_pos4)/* / vert_pos4.w*/); + vec3 view_dir = -cam_to_frag; + // vec3 surf_color = /*srgb_to_linear*/(vec3(0.4, 0.7, 2.0)); + + float water_shade = water_col_vel(f_pos.xy); + vec3 water_color = (1.0 - mix(MU_WATER, pow(vec3(0.8, 0.9, 0.08), vec3(0.25)), water_shade)) * MU_SCATTER; + + /* vec3 sun_dir = get_sun_dir(time_of_day.x); + vec3 moon_dir = get_moon_dir(time_of_day.x); */ +#if (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_MAP || FLUID_MODE >= FLUID_MODE_MEDIUM) + float f_alt = alt_at(f_pos.xy); +#elif (SHADOW_MODE == SHADOW_MODE_NONE || FLUID_MODE == FLUID_MODE_LOW) + float f_alt = f_pos.z; +#endif + +#if (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_MAP) + vec4 f_shadow = textureMaybeBicubic(t_horizon, s_horizon, pos_to_tex(f_pos.xy)); + float sun_shade_frac = horizon_at2(f_shadow, f_alt, f_pos, sun_dir); +#elif (SHADOW_MODE == SHADOW_MODE_NONE) + float sun_shade_frac = 1.0;//horizon_at2(f_shadow, f_alt, f_pos, sun_dir); +#endif + float moon_shade_frac = 1.0;//horizon_at2(f_shadow, f_alt, f_pos, moon_dir); + // float sun_shade_frac = horizon_at(/*f_shadow, f_pos.z, */f_pos, sun_dir); + // float moon_shade_frac = horizon_at(/*f_shadow, f_pos.z, */f_pos, moon_dir); + // float shade_frac = /*1.0;*/sun_shade_frac + moon_shade_frac; + + // DirectionalLight sun_info = get_sun_info(sun_dir, sun_shade_frac, light_pos); + DirectionalLight sun_info = get_sun_info(sun_dir, sun_shade_frac, /*sun_pos*/f_pos); + DirectionalLight moon_info = get_moon_info(moon_dir, moon_shade_frac/*, light_pos*/); + + float fluid_alt = f_pos.z;//max(ceil(f_pos.z), floor(f_alt));// f_alt;//max(f_alt - f_pos.z, 0.0); + + const float alpha = 0.255/* / 4.0 / sqrt(2.0)*/; + const float n2 = 1.3325; + const float R_s2s0 = pow((1.0 - n2) / (1.0 + n2), 2); + const float R_s1s0 = pow((1.3325 - n2) / (1.3325 + n2), 2); + const float R_s2s1 = pow((1.0 - 1.3325) / (1.0 + 1.3325), 2); + const float R_s1s2 = pow((1.3325 - 1.0) / (1.3325 + 1.0), 2); + float R_s = (f_pos.z < fluid_alt) ? mix(R_s2s1 * R_s1s0, R_s1s0, medium.x) : mix(R_s2s0, R_s1s2 * R_s2s0, medium.x); + + // Water is transparent so both normals are valid. + vec3 cam_norm = faceforward(f_norm, f_norm, cam_to_frag); + + vec3 mu = MU_WATER; + // NOTE: Default intersection point is camera position, meaning if we fail to intersect we assume the whole camera is in water. + vec3 cam_attenuation = vec3(1.0);//compute_attenuation_point(f_pos, -view_dir, mu, fluid_alt, cam_pos.xyz); + + // NOTE: Assumes normal is vertical. + vec3 sun_view_dir = cam_pos.z <= fluid_alt ? /*refract(view_dir, -f_norm, 1.0 / n2)*//*reflect(view_dir, -f_norm)*/-view_dir : view_dir;//vec3(view_dir.xy, -view_dir.z) : view_dir; + + vec3 k_a = vec3(1.0); + vec3 k_d = vec3(1.0); + vec3 k_s = vec3(R_s); + + vec3 reflect_ray_dir = reflect(cam_to_frag, f_norm); + + vec3 reflect_color = vec3(0.0); + #if (REFLECTION_MODE >= REFLECTION_MODE_MEDIUM) + reflect_color = get_sky_color(reflect_ray_dir, f_pos, vec3(-100000), 0.125, true, 1.0, true, sun_shade_frac); + #endif + + vec3 emitted_light, reflected_light; + + // Prevent the sky affecting light when underground + float not_underground = clamp((f_pos.z - f_alt) / 128.0 + 1.0, 0.0, 1.0); + reflect_color *= not_underground; + + // float point_shadow = shadow_at(f_pos, f_norm); + // vec3 cam_to_frag = normalize(f_pos - cam_pos.xyz); + // vec3 emitted_light, reflected_light; + // vec3 light, diffuse_light, ambient_light; + // Squared to account for prior saturation. + // float f_light = 1.0;// pow(f_light, 1.5); + // float vert_light = f_light; + // vec3 light_frac = /*vec3(1.0);*/light_reflection_factor(f_norm/*vec3(0, 0, 1.0)*/, view_dir, vec3(0, 0, -1.0), vec3(1.0), vec3(R_s), alpha); + + // vec3 surf_color = /*srgb_to_linear*/(vec3(0.4, 0.7, 2.0)); + float max_light = 0.0; + max_light += get_sun_diffuse2(sun_info, moon_info, f_norm, /*time_of_day.x*//*-cam_to_frag*/sun_view_dir/*view_dir*/, f_pos, mu, cam_attenuation, fluid_alt, k_a/* * (shade_frac * 0.5 + light_frac * 0.5)*/, /*vec3(0.0)*/k_d, k_s, alpha, f_norm, 1.0, emitted_light, reflected_light); + + emitted_light *= not_underground; + reflected_light *= not_underground; + + // Global illumination when underground (silly) + emitted_light += (1.0 - not_underground) * 0.05; + + float point_shadow = shadow_at(f_pos, f_norm); + reflected_light *= point_shadow; + emitted_light *= point_shadow; + + // reflected_light *= f_light * point_shadow * shade_frac; + // emitted_light *= f_light * point_shadow * max(shade_frac, MIN_SHADOW); + // max_light *= f_light * point_shadow * shade_frac; + // reflected_light *= f_light * point_shadow; + // emitted_light *= f_light * point_shadow; + // max_light *= f_light * point_shadow; + // get_sun_diffuse(f_norm, time_of_day.x, light, diffuse_light, ambient_light, 0.0); + // diffuse_light *= f_light * point_shadow; + // ambient_light *= f_light, point_shadow; + // vec3 point_light = light_at(f_pos, f_norm); + // light += point_light; + // diffuse_light += point_light; + // reflected_light += point_light; + // vec3 surf_color = srgb_to_linear(vec3(0.4, 0.7, 2.0)) * light * diffuse_light * ambient_light; + + // lights_at(f_pos, f_norm, cam_to_frag, k_a * f_light * point_shadow, k_d * f_light * point_shadow, k_s * f_light * point_shadow, alpha, emitted_light, reflected_light); + /*vec3 point_light = light_at(f_pos, f_norm); + emitted_light += point_light; + reflected_light += point_light; */ + + max_light += lights_at(f_pos, /*f_norm*/cam_norm, view_dir, mu, cam_attenuation, fluid_alt, k_a, k_d, k_s, alpha, f_norm, 1.0, emitted_light, reflected_light); + // vec3 diffuse_light_point = vec3(0.0); + // max_light += lights_at(f_pos, f_norm, view_dir, k_a, vec3(1.0), k_s, alpha, emitted_light, diffuse_light_point); + + // float reflected_light_point = length(reflected_light);///*length*/(diffuse_light_point.r) + f_light * point_shadow; + // float reflected_light_point = dot(reflected_light, reflected_light) * 0.5;///*length*/(diffuse_light_point.r) + f_light * point_shadow; + // vec3 dump_light = vec3(0.0); + // vec3 specular_light_point = vec3(0.0); + // lights_at(f_pos, f_norm, view_dir, vec3(0.0), vec3(0.0), /*vec3(1.0)*/k_s, alpha, dump_light, specular_light_point); + // diffuse_light_point -= specular_light_point; + + // float reflected_light_point = /*length*/(diffuse_light_point.r) + f_light * point_shadow; + // reflected_light += k_d * (diffuse_light_point + f_light * point_shadow * shade_frac) + specular_light_point; + + float passthrough = max(dot(cam_norm, -cam_to_frag), 0); + + float min_refl = 0.0; + float opacity = (1.0 - passthrough) * 1.0 / (1.0 + min_refl); + if (medium.x == MEDIUM_WATER) { + // Hack to make the transparency of the surface fade when underwater to avoid artifacts + opacity = min(sqrt(max(opacity, clamp((f_pos.z - cam_pos.z) * 0.05, 0.0, 1.0))), 0.99); + } + + vec3 surf_color = illuminate(max_light, view_dir, water_color * /* fog_color * */emitted_light, /*surf_color * */reflect_color * water_shade + water_color * reflected_light); + // vec4 color = vec4(surf_color, passthrough * 1.0 / (1.0 + min_refl));// * (1.0 - /*log(1.0 + cam_attenuation)*//*cam_attenuation*/1.0 / (2.0 - log_cam))); + vec4 color = vec4(surf_color, opacity); + + tgt_color = color; + tgt_mat = uvec4(uvec3((f_norm + 1.0) * 127.0), MAT_FLUID); +} diff --git a/assets/voxygen/shaders/fluid-frag/shiny.glsl b/assets/voxygen/shaders/fluid-frag/shiny.glsl new file mode 100644 index 0000000..fac5ccb --- /dev/null +++ b/assets/voxygen/shaders/fluid-frag/shiny.glsl @@ -0,0 +1,436 @@ +#version 440 core + +#include + +#define LIGHTING_TYPE (LIGHTING_TYPE_TRANSMISSION | LIGHTING_TYPE_REFLECTION) + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_SPECULAR + +#if (FLUID_MODE == FLUID_MODE_LOW) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE +#elif (FLUID_MODE >= FLUID_MODE_MEDIUM) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_RADIANCE +#endif + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +#define HAS_SHADOW_MAPS + +// https://www.shadertoy.com/view/XdsyWf + +#include +#include + +layout(location = 0) in vec3 f_pos; +layout(location = 1) flat in uint f_pos_norm; +layout(location = 2) in vec2 f_vel; +// in vec3 f_col; +// in float f_light; +// in vec3 light_pos[2]; + +//struct ShadowLocals { +// mat4 shadowMatrices; +// mat4 texture_mat; +//}; +// +//layout (std140) +//uniform u_light_shadows { +// ShadowLocals shadowMats[/*MAX_LAYER_FACES*/192]; +//}; + +layout(std140, set = 2, binding = 0) +uniform u_locals { + mat4 model_mat; + ivec4 atlas_offs; + float load_time; +}; + +layout(location = 0) out vec4 tgt_color; +layout(location = 1) out uvec4 tgt_mat; + +#include +#include +#include + +void wave_dx(vec4 posx, vec4 posy, vec2 dir, float speed, float frequency, float timeshift, out vec4 wave, out vec4 dx) { + vec4 x = vec4( + dot(dir, vec2(posx.x, posy.x)), + dot(dir, vec2(posx.y, posy.y)), + dot(dir, vec2(posx.z, posy.z)), + dot(dir, vec2(posx.w, posy.w)) + ) * frequency + timeshift * speed; + wave = sin(x) + 0.5; + wave *= wave; + dx = -wave * cos(x); +} + +// Based loosely on https://www.shadertoy.com/view/MdXyzX. +// Modified to allow calculating the wave function 4 times at once using different positions (used for intepolation +// for moving water). The general idea is to sample the wave function at different positions, where those positions +// depend on increments of the velocity, and then interpolate between those velocities to get a smooth water velocity. +vec4 wave_height(vec4 posx, vec4 posy) { + float iter = 0.0; + float phase = 4.0; + float weight = 1.5; + vec4 w = vec4(0.0); + float ws = 0.0; + const float speed_per_iter = 0.1; + #if (FLUID_MODE == FLUID_MODE_HIGH) + float speed = 1.0; + posx *= 0.2; + posy *= 0.2; + const float drag_factor = 0.035; + const int iters = 21; + const float scale = 15.0; + #else + float speed = 2.0; + posx *= 0.3; + posy *= 0.3; + const float drag_factor = 0.04; + const int iters = 11; + const float scale = 3.0; + #endif + const float iter_shift = (3.14159 * 2.0) / 7.3; + + for(int i = 0; i < iters; i ++) { + vec2 p = vec2(sin(iter), cos(iter)); + vec4 wave, dx; + wave_dx(posx, posy, p, speed, phase, tick.z, wave, dx); + posx += p.x * dx * weight * drag_factor; + posy += p.y * dx * weight * drag_factor; + w += wave * weight; + iter += iter_shift * 1.5; + ws += weight; + weight = mix(weight, 0.0, 0.2); + phase *= 1.2; + speed += speed_per_iter; + } + return w / ws * scale; +} + +float wave_height_vel(vec2 pos) { + vec4 heights = wave_height( + pos.x - tick.z * floor(f_vel.x) - vec2(0.0, tick.z).xyxy, + pos.y - tick.z * floor(f_vel.y) - vec2(0.0, tick.z).xxyy + ); + return mix( + mix(heights.x, heights.y, fract(f_vel.x + 1.0)), + mix(heights.z, heights.w, fract(f_vel.x + 1.0)), + fract(f_vel.y + 1.0) + ); +} + +void main() { + #ifdef EXPERIMENTAL_BAREMINIMUM + tgt_color = vec4(simple_lighting(f_pos.xyz, MU_SCATTER, 1.0), 0.5); + return; + #endif + + // First 3 normals are negative, next 3 are positive + vec3 normals[6] = vec3[](vec3(-1,0,0), vec3(1,0,0), vec3(0,-1,0), vec3(0,1,0), vec3(0,0,-1), vec3(0,0,1)); + + // TODO: last 3 bits in v_pos_norm should be a number between 0 and 5, rather than 0-2 and a direction. + uint norm_axis = (f_pos_norm >> 30) & 0x3u; + // Increase array access by 3 to access positive values + uint norm_dir = ((f_pos_norm >> 29) & 0x1u) * 3u; + // Use an array to avoid conditional branching + // Temporarily assume all water faces up (this is incorrect but looks better) + vec3 surf_norm = normals[norm_axis + norm_dir]; + vec3 f_norm = vec3(0, 0, 1);//surf_norm; + vec3 cam_to_frag = normalize(f_pos - cam_pos.xyz); + + // vec4 light_pos[2]; +//#if (SHADOW_MODE == SHADOW_MODE_MAP) +// // for (uint i = 0u; i < light_shadow_count.z; ++i) { +// // light_pos[i] = /*vec3(*/shadowMats[i].texture_mat * vec4(f_pos, 1.0)/*)*/; +// // } +// vec4 sun_pos = /*vec3(*/shadowMats[0].texture_mat * vec4(f_pos, 1.0)/*)*/; +//#elif (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_NONE) +// vec4 sun_pos = vec4(0.0); +//#endif + + // vec4 vert_pos4 = view_mat * vec4(f_pos, 1.0); + // vec3 view_dir = normalize(-vec3(vert_pos4)/* / vert_pos4.w*/); + vec3 view_dir = -cam_to_frag; + float frag_dist = length(f_pos - cam_pos.xyz); + + vec3 b_norm; + if (f_norm.z > 0.0) { + b_norm = vec3(1, 0, 0); + } else if (f_norm.x > 0.0) { + b_norm = vec3(0, 1, 0); + } else { + b_norm = vec3(0, 0, 1); + } + vec3 c_norm = cross(f_norm, b_norm); + + vec3 wave_pos = mod(f_pos + focus_off.xyz, vec3(3000.0)) - (f_pos.z + focus_off.z) * 0.2; + float wave_sample_dist = 0.1; + float wave00 = wave_height_vel(wave_pos.xy); + float wave10 = wave_height_vel(wave_pos.xy + vec2(wave_sample_dist, 0)); + float wave01 = wave_height_vel(wave_pos.xy + vec2(0, wave_sample_dist)); + + // Possibility of div by zero when slope = 0, + // however this only results in no water surface appearing + // and is not likely to occur (could not find any occurrences) + float slope = abs((wave00 - wave10) * (wave00 - wave01)) + 0.001; + + vec3 nmap = vec3( + -(wave10 - wave00) / wave_sample_dist, + -(wave01 - wave00) / wave_sample_dist, + wave_sample_dist / slope + ); + + #if (CLOUD_MODE != CLOUD_MODE_NONE) + if (rain_density > 0 && surf_norm.z > 0.5) { + vec3 drop_density = vec3(2, 2, 2); + vec3 drop_pos = wave_pos + vec3(0, 0, -time_of_day.x * 0.025); + vec2 cell2d = floor(drop_pos.xy * drop_density.xy); + drop_pos.z += noise_2d(cell2d * 13.1) * 10; + drop_pos.z *= 0.5 + hash_fast(uvec3(cell2d, 0)); + vec3 cell = vec3(cell2d, floor(drop_pos.z * drop_density.z)); + + if (fract(hash(fract(vec4(cell, 0) * 0.01))) < rain_density * rain_occlusion_at(f_pos.xyz) * 50.0) { + vec3 off = vec3(hash_fast(uvec3(cell * 13)), hash_fast(uvec3(cell * 5)), 0); + vec3 near_cell = (cell + 0.5 + (off - 0.5) * 0.5) / drop_density; + + float dist = length((drop_pos - near_cell) / vec3(1, 1, 2)); + float drop_rad = 0.125; + nmap.xy += (drop_pos - near_cell).xy + * max(1.0 - abs(dist - drop_rad) * 50, 0) + * 2500 + * sign(dist - drop_rad) + * max(drop_pos.z - near_cell.z, 0); + } + } + #endif + + nmap = mix(f_norm, normalize(nmap), min(1.0 / pow(frag_dist, 0.75), 1)); + + //float suppress_waves = max(dot(), 0); + vec3 norm = normalize(f_norm * nmap.z + b_norm * nmap.x + c_norm * nmap.y); + //norm = f_norm; + + vec3 water_color = (1.0 - MU_WATER) * MU_SCATTER; +#if (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_MAP || FLUID_MODE >= FLUID_MODE_MEDIUM) + float f_alt = alt_at(f_pos.xy); +#elif (SHADOW_MODE == SHADOW_MODE_NONE || FLUID_MODE == FLUID_MODE_LOW) + float f_alt = f_pos.z; +#endif + + float fluid_alt = mix(f_pos.z, f_alt, f_norm.z == 0); + const float alpha = 0.255/*/ / 4.0*//* / 4.0 / sqrt(2.0)*/; + const float n2 = 1.3325; + const float R_s2s0 = pow((1.0 - n2) / (1.0 + n2), 2); + const float R_s1s0 = pow((1.3325 - n2) / (1.3325 + n2), 2); + const float R_s2s1 = pow((1.0 - 1.3325) / (1.0 + 1.3325), 2); + const float R_s1s2 = pow((1.3325 - 1.0) / (1.3325 + 1.0), 2); + float R_s = (f_pos.z < fluid_alt) ? mix(R_s2s1 * R_s1s0, R_s1s0, medium.x) : mix(R_s2s0, R_s1s2 * R_s2s0, medium.x); + + // Water is transparent so both normals are valid. + vec3 cam_norm = faceforward(norm, norm, cam_to_frag); + vec3 reflect_ray_dir = reflect(cam_to_frag/*-view_dir*/, norm); + vec3 refract_ray_dir = refract(cam_to_frag/*-view_dir*/, norm, 1.0 / n2); + vec3 sun_view_dir = view_dir;///*sign(cam_pos.z - fluid_alt) * view_dir;*/cam_pos.z <= fluid_alt ? -view_dir : view_dir; + // vec3 sun_view_dir = cam_pos.z <= fluid_alt ? -view_dir : view_dir; + /* vec4 reflect_ray_dir4 = view_mat * vec4(reflect_ray_dir, 1.0); + reflect_ray_dir = normalize(vec3(reflect_ray_dir4) / reflect_ray_dir4.w); */ + // vec3 cam_to_frag = normalize(f_pos - cam_pos.xyz); + // Squared to account for prior saturation. + float f_light = 1.0;// pow(f_light, 1.5); + vec3 ray_dir; + if (medium.x == MEDIUM_WATER) { + ray_dir = refract(cam_to_frag, -norm, 1.33); + } else { + // Ensure the ray doesn't accidentally point underwater + // TODO: Make this more efficient? + ray_dir = normalize(max(reflect_ray_dir, vec3(-1.0, -1.0, 0.0))); + } + // /*const */vec3 water_color = srgb_to_linear(vec3(0.2, 0.5, 1.0)); + // /*const */vec3 water_color = srgb_to_linear(vec3(0.8, 0.9, 1.0)); + // NOTE: Linear RGB, attenuation coefficients for water at roughly R, G, B wavelengths. + // See https://en.wikipedia.org/wiki/Electromagnetic_absorption_by_water + // /*const */vec3 water_attenuation = MU_WATER;// vec3(0.8, 0.05, 0.01); + // /*const */vec3 water_color = vec3(0.2, 0.95, 0.99); + + /* vec3 sun_dir = get_sun_dir(time_of_day.x); + vec3 moon_dir = get_moon_dir(time_of_day.x); */ +#if (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_MAP) + vec4 f_shadow = textureMaybeBicubic(t_horizon, s_horizon, pos_to_tex(f_pos.xy)); + float sun_shade_frac = horizon_at2(f_shadow, f_alt, f_pos, sun_dir); +#elif (SHADOW_MODE == SHADOW_MODE_NONE) + float sun_shade_frac = 1.0;//horizon_at2(f_shadow, f_alt, f_pos, sun_dir); +#endif + float moon_shade_frac = 1.0;// horizon_at2(f_shadow, f_alt, f_pos, moon_dir); + // float sun_shade_frac = horizon_at(/*f_shadow, f_pos.z, */f_pos, sun_dir); + // float moon_shade_frac = horizon_at(/*f_shadow, f_pos.z, */f_pos, moon_dir); + // float shade_frac = /*1.0;*/sun_shade_frac + moon_shade_frac; + + vec3 reflect_color; + #if (REFLECTION_MODE >= REFLECTION_MODE_MEDIUM) + // This is now done in the post-process cloud shader + /* reflect_color = get_sky_color(ray_dir, time_of_day.x, f_pos, vec3(-100000), 0.125, true, 1.0, true, sun_shade_frac); */ + /* reflect_color = get_cloud_color(reflect_color, ray_dir, f_pos.xyz, time_of_day.x, 100000.0, 0.1); */ + reflect_color = vec3(0); + #else + reflect_color = get_sky_color(ray_dir, f_pos, vec3(-100000), 0.125, true, 1.0, true, sun_shade_frac); + #endif + // Sort of non-physical, but we try to balance the reflection intensity with the direct light from the sun, + // resulting in decent reflection of the ambient environment even after the sun has gone down. + reflect_color *= f_light * (sun_shade_frac * 0.75 + 0.25); + + // Prevent the sky affecting light when underground + float not_underground = clamp((f_pos.z - f_alt) / 32.0 + 1.0, 0.0, 1.0); + reflect_color *= not_underground; + + // DirectionalLight sun_info = get_sun_info(sun_dir, sun_shade_frac, light_pos); + DirectionalLight sun_info = get_sun_info(sun_dir, sun_shade_frac, /*sun_pos*/f_pos); + DirectionalLight moon_info = get_moon_info(moon_dir, moon_shade_frac/*, light_pos*/); + + // Hack to determine water depth: color goes down with distance through water, so + // we assume water color absorption from this point a to some other point b is the distance + // along the the ray from a to b where it intersects with the surface plane; if it doesn't, + // then the whole segment from a to b is considered underwater. + // TODO: Consider doing for point lights. + // vec3 cam_surface_dir = faceforward(vec3(0.0, 0.0, 1.0), cam_to_frag, vec3(0.0, 0.0, 1.0)); + + // vec3 water_intersection_surface_camera = vec3(cam_pos); + // bool _water_intersects_surface_camera = IntersectRayPlane(f_pos, view_dir, vec3(0.0, 0.0, /*f_alt*/f_pos.z + f_light), cam_surface_dir, water_intersection_surface_camera); + // // Should work because we set it up so that if IntersectRayPlane returns false for camera, its default intersection point is cam_pos. + // float water_depth_to_camera = length(water_intersection_surface_camera - f_pos); + + // vec3 water_intersection_surface_light = f_pos; + // bool _light_intersects_surface_water = IntersectRayPlane(f_pos, sun_dir.z <= 0.0 ? sun_dir : moon_dir, vec3(0.0, 0.0, /*f_alt*/f_pos.z + f_light), vec3(0.0, 0.0, 1.0), water_intersection_surface_light); + // // Should work because we set it up so that if IntersectRayPlane returns false for light, its default intersection point is f_pos-- + // // i.e. if a light ray can't hit the water, it shouldn't contribute to coloring at all. + // float water_depth_to_light = length(water_intersection_surface_light - f_pos); + + // // For ambient color, we just take the distance to the surface out of laziness. + // float water_depth_to_vertical = max(/*f_alt - f_pos.z*/f_light, 0.0); + + // // Color goes down with distance... + // // See https://en.wikipedia.org/wiki/Beer%E2%80%93Lambert_law. + // vec3 water_color_direct = exp(-MU_WATER);//exp(-MU_WATER);//vec3(1.0); + // vec3 water_color_direct = exp(-water_attenuation * (water_depth_to_light + water_depth_to_camera)); + // vec3 water_color_ambient = exp(-water_attenuation * (water_depth_to_vertical + water_depth_to_camera)); + vec3 mu = MU_WATER; + // NOTE: Default intersection point is camera position, meaning if we fail to intersect we assume the whole camera is in water. + vec3 cam_attenuation = compute_attenuation_point(f_pos, -view_dir, mu, fluid_alt, cam_pos.xyz); + //reflect_color *= cam_attenuation; + // float water_depth_to_vertical = max(/*f_alt - f_pos.z*/f_light, 0.0); + // For ambient color, we just take the distance to the surface out of laziness. + // See https://en.wikipedia.org/wiki/Beer%E2%80%93Lambert_law. + // float water_depth_to_vertical = max(fluid_alt - cam_pos.z/*f_light*/, 0.0); + // vec3 ambient_attenuation = exp(-mu * water_depth_to_vertical); + + // For ambient reflection, we just take the water + + vec3 k_a = vec3(1.0); + // Oxygen is light blue. + vec3 k_d = vec3(1.0); + vec3 k_s = vec3(0.0);//2.0 * reflect_color; + + vec3 emitted_light, reflected_light; + // vec3 light, diffuse_light, ambient_light; + // vec3 light_frac = /*vec3(1.0);*/light_reflection_factor(f_norm/*vec3(0, 0, 1.0)*/, view_dir, vec3(0, 0, -1.0), vec3(1.0), vec3(R_s), alpha); + // 0 = 100% reflection, 1 = translucent water + float passthrough = max(dot(cam_norm, -cam_to_frag), 0) * 0.75; + + float max_light = 0.0; + max_light += get_sun_diffuse2(sun_info, moon_info, cam_norm, /*time_of_day.x*/sun_view_dir, f_pos, mu, cam_attenuation, fluid_alt, k_a/* * (shade_frac * 0.5 + light_frac * 0.5)*/, vec3(k_d), /*vec3(f_light * point_shadow)*//*reflect_color*/k_s, alpha, f_norm, 1.0, emitted_light, reflected_light); + emitted_light *= not_underground; + reflected_light *= not_underground; + + // Global illumination when underground (silly) + emitted_light += (1.0 - not_underground) * 0.05; + + float point_shadow = shadow_at(f_pos, f_norm); + reflected_light *= point_shadow; + // Apply cloud layer to sky + // reflected_light *= /*water_color_direct * */reflect_color * f_light * point_shadow * shade_frac; + // emitted_light *= /*water_color_direct*//*ambient_attenuation * */f_light * point_shadow * max(shade_frac, MIN_SHADOW); + // max_light *= f_light * point_shadow * shade_frac; + // reflected_light *= /*water_color_direct * */reflect_color * f_light * point_shadow; + // emitted_light *= /*water_color_direct*//*ambient_attenuation * */f_light * point_shadow; + // max_light *= f_light * point_shadow; + + // vec3 diffuse_light_point = vec3(0.0); + // max_light += lights_at(f_pos, cam_norm, view_dir, mu, cam_attenuation, fluid_alt, k_a, vec3(1.0), /*vec3(0.0)*/k_s, alpha, emitted_light, diffuse_light_point); + + // vec3 dump_light = vec3(0.0); + // vec3 specular_light_point = vec3(0.0); + // lights_at(f_pos, cam_norm, view_dir, mu, cam_attenuation, fluid_alt, vec3(0.0), vec3(0.0), /*vec3(1.0)*/k_s, alpha, dump_light, specular_light_point); + // diffuse_light_point -= specular_light_point; + // max_light += lights_at(f_pos, cam_norm, view_dir, mu, cam_attenuation, fluid_alt, k_a, /*k_d*/vec3(0.0), /*vec3(0.0)*/k_s, alpha, emitted_light, /*diffuse_light*/reflected_light); + + max_light += lights_at(f_pos, cam_norm, view_dir, mu, cam_attenuation, fluid_alt, k_a, /*k_d*//*vec3(0.0)*/k_d, /*vec3(0.0)*/k_s, alpha, f_norm, 1.0, emitted_light, /*diffuse_light*/reflected_light); + + //float reflected_light_point = length(reflected_light);///*length*/(diffuse_light_point.r) + f_light * point_shadow; + // TODO: See if we can be smarter about this using point light distances. + // reflected_light += k_d * (diffuse_light_point/* + f_light * point_shadow * shade_frac*/) + /*water_color_ambient*/specular_light_point; + + /* vec3 point_light = light_at(f_pos, norm); + emitted_light += point_light; + reflected_light += point_light; */ + + // get_sun_diffuse(norm, time_of_day.x, light, diffuse_light, ambient_light, 0.0); + // diffuse_light *= f_light * point_shadow; + // ambient_light *= f_light * point_shadow; + // vec3 point_light = light_at(f_pos, norm); + // light += point_light; + // diffuse_light += point_light; + // reflected_light += point_light; + // vec3 surf_color = srgb_to_linear(vec3(0.2, 0.5, 1.0)) * light * diffuse_light * ambient_light; + const float REFLECTANCE = 1.0; + vec3 surf_color = illuminate(max_light, view_dir, water_color * emitted_light/* * log(1.0 - MU_WATER)*/, /*cam_attenuation * *//*water_color * */reflect_color * REFLECTANCE + water_color * reflected_light/* * log(1.0 - MU_WATER)*/); + + // passthrough = pow(passthrough, 1.0 / (1.0 + water_depth_to_camera)); + /* surf_color = cam_attenuation.g < 0.5 ? + vec3(1.0, 0.0, 0.0) : + vec3(0.0, 1.0, 1.0) + ; */ + // passthrough = passthrough * length(cam_attenuation); + + // vec3 reflect_ray_dir = reflect(cam_to_frag, norm); + // Hack to prevent the reflection ray dipping below the horizon and creating weird blue spots in the water + // reflect_ray_dir.z = max(reflect_ray_dir.z, 0.01); + + // vec4 _clouds; + // vec3 reflect_color = get_sky_color(reflect_ray_dir, time_of_day.x, f_pos, vec3(-100000), 0.25, false, _clouds) * f_light; + // Tint + // reflect_color = mix(reflect_color, surf_color, 0.6); + + // vec4 color = mix(vec4(reflect_color * 2.0, 1.0), vec4(surf_color, 1.0 / (1.0 + /*diffuse_light*/(f_light * point_shadow + point_light) * 0.25)), passthrough); + // vec4 color = mix(vec4(reflect_color * 2.0, 1.0), vec4(surf_color, 1.0 / (1.0 + /*diffuse_light*/(/*f_light * point_shadow*/f_light * point_shadow + reflected_light_point/* + point_light*//*reflected_light*/) * 0.25)), passthrough); + // vec4 color = mix(vec4(surf_color, 1.0), vec4(surf_color, 0.0), passthrough); + //vec4 color = vec4(surf_color, 1.0); + // vec4 color = mix(vec4(reflect_color, 1.0), vec4(surf_color, 1.0 / (1.0 + /*diffuse_light*/(/*f_light * point_shadow*/reflected_light_point/* + point_light*//*reflected_light*/))), passthrough); + + // float log_cam = log(min(cam_attenuation.r, min(cam_attenuation.g, cam_attenuation.b))); + float min_refl = 0.0; + float opacity = (1.0 - passthrough) * 0.5 / (1.0 + min_refl); + if (medium.x != MEDIUM_WATER) { + min_refl = min(emitted_light.r, min(emitted_light.g, emitted_light.b)); + } else { + // Hack to make the transparency of the surface fade when underwater to avoid artifacts + if (dot(refract_ray_dir, cam_to_frag) > 0.0) { + opacity = 0.99; + } else { + opacity = min(sqrt(max(opacity, clamp((f_pos.z - cam_pos.z) * 0.05, 0.0, 1.0))), 0.99); + } + } + vec4 color = vec4(surf_color, opacity);// * (1.0 - /*log(1.0 + cam_attenuation)*//*cam_attenuation*/1.0 / (2.0 - log_cam))); + // vec4 color = vec4(surf_color, mix(1.0, 1.0 / (1.0 + /*0.25 * *//*diffuse_light*/(/*f_light * point_shadow*/reflected_light_point)), passthrough)); + // vec4 color = vec4(surf_color, mix(1.0, length(cam_attenuation), passthrough)); + + /* reflect_color = reflect_color * 0.5 * (diffuse_light + ambient_light); + // 0 = 100% reflection, 1 = translucent water + float passthrough = dot(faceforward(f_norm, f_norm, cam_to_frag), -cam_to_frag); + + vec4 color = mix(vec4(reflect_color, 1.0), vec4(vec3(0), 1.0 / (1.0 + diffuse_light * 0.25)), passthrough); */ + + tgt_color = color; + tgt_mat = uvec4(uvec3((norm + 1.0) * 127.0), MAT_FLUID); +} diff --git a/assets/voxygen/shaders/fluid-vert.glsl b/assets/voxygen/shaders/fluid-vert.glsl new file mode 100644 index 0000000..0ae2b6f --- /dev/null +++ b/assets/voxygen/shaders/fluid-vert.glsl @@ -0,0 +1,107 @@ +#version 440 core + +#include + +#define LIGHTING_TYPE (LIGHTING_TYPE_TRANSMISSION | LIGHTING_TYPE_REFLECTION) + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_SPECULAR + +#if (FLUID_MODE == FLUID_MODE_LOW) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE +#elif (FLUID_MODE >= FLUID_MODE_MEDIUM) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_RADIANCE +#endif + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +#include +#include +#include + +layout(location = 0) in uint v_pos_norm; +layout(location = 1) in uint v_vel; +// in uint v_col_light; + +layout(std140, set = 2, binding = 0) +uniform u_locals { + mat4 model_mat; + ivec4 atlas_offs; + float load_time; +}; + +// struct ShadowLocals { +// mat4 shadowMatrices; +// mat4 texture_mat; +// }; +// +// layout (std140) +// uniform u_light_shadows { +// ShadowLocals shadowMats[/*MAX_LAYER_FACES*/192]; +// }; + +layout(location = 0) out vec3 f_pos; +layout(location = 1) flat out uint f_pos_norm; +layout(location = 2) out vec2 f_vel; +// out vec3 f_col; +// out float f_light; +// out vec3 light_pos[2]; + +const float EXTRA_NEG_Z = 65536.0/*65536.1*/; + +void main() { + vec3 rel_pos = vec3(v_pos_norm & 0x3Fu, (v_pos_norm >> 6) & 0x3Fu, float((v_pos_norm >> 12) & 0x1FFFFu) - EXTRA_NEG_Z); + f_pos = (model_mat * vec4(rel_pos, 1.0)).xyz - focus_off.xyz; + + f_vel = vec2( + (float(v_vel & 0xFFFFu) - 32768.0) / 1000.0, + (float((v_vel >> 16u) & 0xFFFFu) - 32768.0) / 1000.0 + ); + + // f_pos.z -= 250.0 * (1.0 - min(1.0001 - 0.02 / pow(tick.x - load_time, 10.0), 1.0)); + // f_pos.z -= min(32.0, 25.0 * pow(distance(focus_pos.xy, f_pos.xy) / view_distance.x, 20.0)); + + // Terrain 'pop-in' effect + #ifndef EXPERIMENTAL_BAREMINIMUM + #ifdef EXPERIMENTAL_TERRAINPOP + f_pos.z -= 250.0 * (1.0 - min(1.0001 - 0.02 / pow(time_since(load_time), 10.0), 1.0)); + // f_pos.z -= min(32.0, 25.0 * pow(distance(focus_pos.xy, f_pos.xy) / view_distance.x, 20.0)); + #endif + #endif + + // float pull_down = pow(distance(focus_pos.xy, f_pos.xy) / (view_distance.x * 0.95), 20.0) * 0.7; + //f_pos.z -= pull_down; + + #ifdef EXPERIMENTAL_CURVEDWORLD + f_pos.z -= pow(distance(f_pos.xy + focus_off.xy, focus_pos.xy + focus_off.xy) * 0.05, 2); + #endif + + // Small waves + // f_pos.xy += 0.01; // Avoid z-fighting + // f_pos.x += 0.1 * sin(tick.x / 60 * hash(vec4(f_pos.xyz, 1.0))); + // f_pos.y += 0.1 * sin(tick.x / 60 * hash(vec4(f_pos.xyz, 2.0))); +#if (FLUID_MODE >= FLUID_MODE_MEDIUM) + // f_pos.z -= 0.1 + 0.1 * (sin(tick.x/* / 60.0*/* 2.0 + f_pos.x * 2.0 + f_pos.y * 2.0) + 1.0) * 0.5; +#endif + + /* f_col = vec3( + float((v_col_light >> 8) & 0xFFu), + float((v_col_light >> 16) & 0xFFu), + float((v_col_light >> 24) & 0xFFu) + ) / 255.0; + + f_light = float(v_col_light & 0xFFu) / 255.0; */ + /* for (uint i = 0u; i < light_shadow_count.z; ++i) { + light_pos[i] = vec3(shadowMats[i].texture_mat * vec4(f_pos, 1.0)); + } */ + + f_pos_norm = v_pos_norm; + + gl_Position = + all_mat * + vec4(f_pos, 1); + // gl_Position.z = -gl_Position.z / gl_Position.w; + // gl_Position.z = -gl_Position.z / 100.0; + // gl_Position.z = -1000.0 / (gl_Position.z + 10000.0); +} diff --git a/assets/voxygen/shaders/include/cloud/none.glsl b/assets/voxygen/shaders/include/cloud/none.glsl new file mode 100644 index 0000000..05348f9 --- /dev/null +++ b/assets/voxygen/shaders/include/cloud/none.glsl @@ -0,0 +1,14 @@ +#include +#include + +vec3 get_cloud_color(vec3 surf_color, vec3 dir, vec3 origin, float max_dist, float quality) { + // Underwater light attenuation + surf_color = water_diffuse(surf_color, dir, max_dist); + + if (max_dist < DIST_CAP) { + vec3 sky_light = get_sky_light(dir, false); + surf_color = mix(sky_light, surf_color, 1.0 / exp(max_dist / 5000.0)); + } + + return surf_color; +} diff --git a/assets/voxygen/shaders/include/cloud/regular.glsl b/assets/voxygen/shaders/include/cloud/regular.glsl new file mode 100644 index 0000000..1e5542e --- /dev/null +++ b/assets/voxygen/shaders/include/cloud/regular.glsl @@ -0,0 +1,316 @@ +#include +#include +#include +#include + +float falloff(float x) { + return pow(max(x > 0.577 ? (0.3849 / x - 0.1) : (0.9 - x * x), 0.0), 4); +} + +float billow_noise_3d(vec3 pos) { + return abs(noise_3d(pos) - 0.5) * 2.0; +} + +float billow_noise_2d(vec2 pos) { + return abs(noise_2d(pos) - 0.5) * 2.0; +} + +// Returns vec4(r, g, b, density) +vec4 cloud_at(vec3 pos, float dist, vec3 dir, out vec3 emission, out float not_underground) { + #ifdef EXPERIMENTAL_CURVEDWORLD + pos.z += pow(distance(pos.xy, focus_pos.xy + focus_off.xy) * 0.05, 2); + #endif + + // Natural attenuation of air (air naturally attenuates light that passes through it) + // Simulate the atmosphere thinning as you get higher. Not physically accurate, but then + // it can't be since Veloren's world is flat, not spherical. + float atmosphere_alt = CLOUD_AVG_ALT + 40000.0; + // Veloren's world is flat. This is, to put it mildly, somewhat non-physical. With the earth as an infinitely-big + // plane, the atmosphere is therefore capable of scattering 100% of any light source at the horizon, no matter how + // bright, because it has to travel through an infinite amount of atmosphere. This doesn't happen in reality + // because the earth has curvature and so there is an upper bound on the amount of atmosphere that a sunset must + // travel through. We 'simulate' this by fading out the atmosphere density with distance. + float flat_earth_hack = max(0.0, 1.0 - dist * 0.00003 * pow(max(0.0, dir.z), 0.2)); + float air = 0.025 * clamp((atmosphere_alt - pos.z) / 20000, 0, 1) * flat_earth_hack; + + float alt = alt_at(pos.xy - focus_off.xy); + + // Mist sits close to the ground in valleys (TODO: use base_alt to put it closer to water) + float mist_min_alt = 0.5; + #if (CLOUD_MODE >= CLOUD_MODE_MEDIUM) + mist_min_alt = (textureLod(sampler2D(t_noise, s_noise), pos.xy / 35000.0, 0).x - 0.5) * 1.5 + 0.5; + #endif + mist_min_alt = view_distance.z * 1.5 * (1.0 + mist_min_alt * 0.5) + alt * 0.5 + 250; + const float MIST_FADE_HEIGHT = 1000; + float mist = 0.01 * pow(clamp(1.0 - (pos.z - mist_min_alt) / MIST_FADE_HEIGHT, 0.0, 1), 10.0) * flat_earth_hack; + + vec3 wind_pos = vec3(pos.xy + wind_offset, pos.z + noise_2d(pos.xy / 20000) * 500); + + // Clouds + float cloud_tendency = cloud_tendency_at(pos.xy); + float cloud = 0; + + if (mist > 0.0) { + mist *= 0.5 + #if (CLOUD_MODE >= CLOUD_MODE_LOW) + + 1.0 * (noise_2d(wind_pos.xy / 5000) - 0.5) + #endif + #if (CLOUD_MODE >= CLOUD_MODE_MEDIUM) + + 0.25 * (noise_3d(wind_pos / 1000) - 0.5) + #endif + ; + } + + float CLOUD_DEPTH = (view_distance.w - view_distance.z) * (0.14 + sqrt(cloud_tendency) * 0.35); + float cloud_alt = alt + CLOUD_DEPTH * 2 + 1500.0; + + //vec2 cloud_attr = get_cloud_heights(wind_pos.xy); + float sun_access = 0.0; + float moon_access = 0.0; + float cloud_sun_access = clamp((pos.z - cloud_alt) / 1500 + 0.5, 0, 1); + float cloud_moon_access = 0.0; + + // This is a silly optimisation but it actually nets us a fair few fps by skipping quite a few expensive calcs + if ((pos.z < CLOUD_AVG_ALT + 8000.0 && cloud_tendency > 0.0)) { + // Turbulence (small variations in clouds/mist) + const float turb_speed = -1.0; // Turbulence goes the opposite way + vec3 turb_offset = vec3(1, 1, 0) * time_of_day.x * turb_speed; + + const float CLOUD_DENSITY = 10000.0; + const float CLOUD_ALT_VARI_WIDTH = 100000.0; + const float CLOUD_ALT_VARI_SCALE = 5000.0; + + float small_nz = 0.0 + #if (CLOUD_MODE >= CLOUD_MODE_MEDIUM) + - (billow_noise_3d((pos + turb_offset * 0.5) / 8000.0) - 0.5) + #else + - (billow_noise_2d((pos.xy + turb_offset.xy * 0.5) / 8000.0) - 0.5) + #endif + #if (CLOUD_MODE >= CLOUD_MODE_CLOUD_MODE_MINIMAL) + - (noise_3d((pos - turb_offset * 0.1) / 750.0) - 0.5) * 0.25 + #endif + #if (CLOUD_MODE >= CLOUD_MODE_CLOUD_MODE_HIGH) + - (billow_noise_3d((pos - turb_offset * 0.1) / 500.0) - 0.5) * 0.1 + #endif + ; + + // Sample twice to allow for self-shadowing + float cloud_p0 = noise_3d((wind_pos + vec3(0, 0, small_nz) * 150 - sun_dir.xyz * 150) * vec3(0.55, 0.55, 1) / (cloud_scale * 20000.0)); + float cloud_p1 = noise_3d((wind_pos + vec3(0, 0, small_nz) * 150 + sun_dir.xyz * 150) * vec3(0.55, 0.55, 1) / (cloud_scale * 20000.0)); + + float cloud_factor = pow(max(((cloud_p0 + cloud_p1) * 0.5 + - 0.5 + - small_nz * 0.1 + + cloud_tendency * 0.3 + ) + , 0.0) * 120.0 * cloud_tendency, 5.0) + * falloff(abs(pos.z - cloud_alt) / CLOUD_DEPTH); + + cloud = cloud_factor * 10; + + // What proportion of sunlight is *not* being blocked by nearby cloud? (approximation) + // Basically, just throw together a few values that roughly approximate this term and come up with an average + cloud_sun_access = clamp( + 0.7 + + pow(abs(cloud_p1 - cloud_p0), 0.5) * sign(cloud_p1 - cloud_p0) * 0.75 + + (pos.z - cloud_alt) / CLOUD_DEPTH * 0.2 + - pow(cloud * 10000000.0, 0.2) * 0.0075 + , + 0.15, + 10.0 + ) + small_nz * 0.2; + // Since we're assuming the sun/moon is always above (not always correct) it's the same for the moon + cloud_moon_access = cloud_sun_access; + } + + float mist_sun_access = max(1.0 - cloud_tendency * 8, 0.25); + float mist_moon_access = mist_sun_access; + sun_access = mix(cloud_sun_access, mist_sun_access, clamp(mist * 20000, 0, 1)); + moon_access = mix(cloud_moon_access, mist_moon_access, clamp(mist * 20000, 0, 1)); + + // Prevent mist (i.e: vapour beneath clouds) being accessible to the sun to avoid visual problems + //float suppress_mist = clamp((pos.z - cloud_attr.x + cloud_attr.y) / 300, 0, 1); + //sun_access *= suppress_mist; + //moon_access *= suppress_mist; + + // Prevent clouds and mist appearing underground (but fade them out gently) + not_underground = clamp(1.0 - (alt - (pos.z - focus_off.z)) / 80.0 + dist * 0.001, 0, 1); + sun_access *= not_underground; + moon_access *= not_underground; + float vapor_density = (mist + cloud) * not_underground; + + if (emission_strength <= 0.0) { + emission = vec3(0); + } else { + float nz = textureLod(sampler2D(t_noise, s_noise), wind_pos.xy * 0.00005 - time_of_day.y * 8.0, 0).x;//noise_3d(vec3(wind_pos.xy * 0.00005 + cloud_tendency * 0.2, time_of_day.x * 0.0002)); + + float emission_alt = alt * 0.5 + 1000 + 1000 * nz; + float emission_height = 1000.0; + float emission_factor = pow(max(0.0, 1.0 - abs((pos.z - emission_alt) / emission_height - 1.0)) + * max(0, 1.0 - abs(0.0 + + textureLod(sampler2D(t_noise, s_noise), wind_pos.xy * 0.0001 + nz * 0.1, 0).x + + textureLod(sampler2D(t_noise, s_noise), wind_pos.xy * 0.0005 + nz * 0.5, 0).x * 0.3 + - 0.5) * 2) + * max(0, 1.0 - abs(textureLod(sampler2D(t_noise, s_noise), wind_pos.xy * 0.00001, 0).x - 0.5) * 4) + , 2) * emission_strength; + float t = clamp((pos.z - emission_alt) / emission_height, 0, 1); + t = pow(t - 0.5, 2) * sign(t - 0.5) + 0.5; + float top = pow(t, 2); + float bot = pow(max(0.8 - t, 0), 2) * 2; + const vec3 cyan = vec3(0, 0.5, 1); + const vec3 red = vec3(1, 0, 0); + const vec3 green = vec3(0, 8, 0); + emission = 10 * emission_factor * nz * (cyan * top * max(0, 1 - emission_br) + red * max(emission_br, 0) + green * bot); + } + + // We track vapor density and air density separately. Why? Because photons will ionize particles in air + // leading to rayleigh scattering, but water vapor will not. Tracking these indepedently allows us to + // get more correct colours. + return vec4(sun_access, moon_access, vapor_density, air); +} + +#if (CLOUD_MODE == CLOUD_MODE_ULTRA) + const uint QUALITY = 200u; +#elif (CLOUD_MODE == CLOUD_MODE_HIGH) + const uint QUALITY = 40u; +#elif (CLOUD_MODE == CLOUD_MODE_MEDIUM) + const uint QUALITY = 18u; +#elif (CLOUD_MODE == CLOUD_MODE_LOW) + const uint QUALITY = 6u; +#elif (CLOUD_MODE == CLOUD_MODE_MINIMAL) + const uint QUALITY = 2u; +#endif + +const float STEP_SCALE = DIST_CAP / (1000.0 * float(QUALITY)); + +float step_to_dist(float step, float quality) { + return pow(step, 4) * STEP_SCALE / quality; +} + +float dist_to_step(float dist, float quality) { + return pow(dist / STEP_SCALE * quality, 0.25); +} + +// This *MUST* go here: when clouds are enabled, it relies on the declaration of `clouds_at` above. Sadly, GLSL doesn't +// consistently support forward declarations (not surprising, it's designed for single-pass compilers). +#include + +vec3 get_cloud_color(vec3 surf_color, vec3 dir, vec3 origin, float max_dist, const float quality) { + // Limit the marching distance to reduce maximum jumps + max_dist = min(max_dist, DIST_CAP); + + origin.xyz += focus_off.xyz; + + // This hack adds a little direction-dependent noise to clouds. It's not correct, but it very cheaply + // improves visual quality for low cloud settings + float splay = 1.0; + #if (CLOUD_MODE == CLOUD_MODE_MINIMAL) + splay += (textureLod(sampler2D(t_noise, s_noise), vec2(atan2(dir.x, dir.y) * 2 / PI, dir.z) * 5.0 - time_of_day.y * 4.0, 0).x - 0.5) * 0.025 / (1.0 + pow(dir.z, 2) * 10); + #endif + + const vec3 RAYLEIGH = vec3(0.025, 0.1, 0.5); + + // Proportion of sunlight that get scattered back into the camera by clouds + float sun_scatter = dot(-dir, sun_dir.xyz) * 0.5 + 0.7; + float moon_scatter = dot(-dir, moon_dir.xyz) * 0.5 + 0.7; + float net_light = get_sun_brightness() + get_moon_brightness(); + vec3 sky_color = RAYLEIGH * net_light; + vec3 sky_light = get_sky_light(dir, false); + vec3 sun_color = get_sun_color(); + vec3 moon_color = get_moon_color(); + + // Clouds aren't visible underwater + float cdist = max_dist; + float ldist = cdist; + // i is an emergency brake + float min_dist = clamp(max_dist / 4, 0.25, 24); + int i; + + #if (CLOUD_MODE >= CLOUD_MODE_MEDIUM) + #ifndef EXPERIMENTAL_NORAINBOWS + // TODO: Make it a double rainbow + float rainbow_t = (0.7 - dot(sun_dir.xyz, dir)) * 8 / 0.05; + int rainbow_c = int(floor(rainbow_t)); + rainbow_t = fract(rainbow_t); + rainbow_t = rainbow_t * rainbow_t; + #endif + #endif + + for (i = 0; cdist > min_dist && i < 250; i ++) { + ldist = cdist; + cdist = step_to_dist(trunc(dist_to_step(cdist - 0.25, quality)), quality); + + vec3 emission; + float not_underground; // Used to prevent sunlight leaking underground + vec3 pos = origin + dir * ldist * splay; + // `sample` is a reserved keyword + vec4 sample_ = cloud_at(origin + dir * ldist * splay, ldist, dir, emission, not_underground); + + // DEBUG + // if (max_dist > ldist && max_dist < ldist * 1.02) { + // surf_color = vec3(1, 0, 0); + // } + + vec2 density_integrals = max(sample_.zw, vec2(0)); + + float sun_access = max(sample_.x, 0); + float moon_access = max(sample_.y, 0); + float cloud_scatter_factor = density_integrals.x; + float global_scatter_factor = density_integrals.y; + + float step = (ldist - cdist) * 0.01; + float cloud_darken = pow(1.0 / (1.0 + cloud_scatter_factor), step); + float global_darken = pow(1.0 / (1.0 + global_scatter_factor), step); + // Proportion of light diffusely scattered instead of absorbed + float cloud_diffuse = 0.5; + + surf_color = + // Attenuate light passing through the clouds + surf_color * cloud_darken * global_darken + + // Add the directed light light scattered into the camera by the clouds and the atmosphere (global illumination) + sun_color * sun_scatter * get_sun_brightness() * (sun_access * (1.0 - cloud_darken) * cloud_diffuse /*+ sky_color * global_scatter_factor*/) + + moon_color * moon_scatter * get_moon_brightness() * (moon_access * (1.0 - cloud_darken) * cloud_diffuse /*+ sky_color * global_scatter_factor*/) + + sky_light * (1.0 - global_darken) * not_underground + + // A small amount fake ambient light underground + (1.0 - not_underground) * vec3(0.2, 0.35, 0.5) * (1.0 - global_darken) / (1.0 + max_dist * 0.003) + + emission * density_integrals.y * step; + + // Rainbow + #if (CLOUD_MODE >= CLOUD_MODE_ULTRA) + #ifndef EXPERIMENTAL_NORAINBOWS + if (rainbow_c >= 0 && rainbow_c < 8) { + vec3 colors[9] = { + surf_color, + vec3(0.9, 0.5, 0.9), + vec3(0.25, 0.0, 0.5), + vec3(0.0, 0.0, 1.0), + vec3(0.0, 0.5, 0.0), + vec3(1.0, 1.0, 0.0), + vec3(1.0, 0.6, 0.0), + vec3(1.0, 0.0, 0.0), + surf_color, + }; + float h = max(0.0, min(pos.z, 900.0 - pos.z) / 450.0); + float rain = rain_density_at(pos.xy) * pow(h, 0.1); + + float sun = sun_access * get_sun_brightness(); + float energy = pow(rain * sun * min(cdist / 500.0, 1.0), 2.0) * 0.4; + + surf_color = mix( + surf_color, + mix(colors[rainbow_c], colors[rainbow_c + 1], rainbow_t), + energy + ); + } + #endif + #endif + } + + // Underwater light attenuation + surf_color = water_diffuse(surf_color, dir, max_dist); + + // Apply point glow + surf_color = apply_point_glow(origin, dir, max_dist, surf_color); + + return surf_color; +} diff --git a/assets/voxygen/shaders/include/constants.glsl b/assets/voxygen/shaders/include/constants.glsl new file mode 100644 index 0000000..9914376 --- /dev/null +++ b/assets/voxygen/shaders/include/constants.glsl @@ -0,0 +1,105 @@ +/* NOTE: When included, this file will contain values for the automatically defined settings specified below. */ + +/* TODO: Add the ability to control the tendency to do stuff in the vertex vs. fragment shader. + * Currently this flag is ignored and always set to prefer fragment, but this tradeoff is not correct on all + * machines in all cases (mine, for instance). */ +#define VOXYGEN_COMPUTATION_PREFERENCE_FRAGMENT 0 +#define VOXYGEN_COMPUTATION_PREFERENCE_VERTEX 1 + +#define FLUID_MODE_LOW 0 +#define FLUID_MODE_MEDIUM 1 +#define FLUID_MODE_HIGH 2 + +#define REFLECTION_MODE_LOW 0 +#define REFLECTION_MODE_MEDIUM 1 +#define REFLECTION_MODE_HIGH 2 + +#define CLOUD_MODE_NONE 0 +#define CLOUD_MODE_MINIMAL 1 +#define CLOUD_MODE_LOW 2 +#define CLOUD_MODE_MEDIUM 3 +#define CLOUD_MODE_HIGH 4 +#define CLOUD_MODE_ULTRA 5 + +#define LIGHTING_ALGORITHM_LAMBERTIAN 0 +#define LIGHTING_ALGORITHM_BLINN_PHONG 1 +#define LIGHTING_ALGORITHM_ASHIKHMIN 2 + +#define SHADOW_MODE_NONE 0 +#define SHADOW_MODE_CHEAP 1 +#define SHADOW_MODE_MAP 2 + +/* Unlike the other flags (for now anyway), these are bitmask values */ +#define LIGHTING_TYPE_REFLECTION 0x01 +#define LIGHTING_TYPE_TRANSMISSION 0x02 + +/* Currently ignored, but ideally shoud be helpful for determining light transport properties. */ +#define LIGHTING_REFLECTION_KIND_DIFFUSE 0 +#define LIGHTING_REFLECTION_KIND_GLOSSY 1 +#define LIGHTING_REFLECTION_KIND_SPECULAR 2 + +#define LIGHTING_TRANSPORT_MODE_IMPORTANCE 0 +/* Radiance mode is currently used as a proxy for "attenuation and medium materials + * matter," but we may make it more granular. */ +#define LIGHTING_TRANSPORT_MODE_RADIANCE 1 + +#define LIGHTING_DISTRIBUTION_SCHEME_MICROFACET 0 +#define LIGHTING_DISTRIBUTION_SCHEME_VOXEL 1 + +#define LIGHTING_DISTRIBUTION_BECKMANN 0 +#define LIGHTING_DISTRIBUTION_TROWBRIDGE 1 + +#define MEDIUM_AIR 0 +#define MEDIUM_WATER 1 + +#define MAT_SKY 0 +#define MAT_BLOCK 1 +#define MAT_FLUID 2 +#define MAT_FIGURE 3 +#define MAT_LOD 4 + +#define BLOCK_SNOW 0x21 +#define BLOCK_ART_SNOW 0x22 +#define BLOCK_ICE 0x43 + +// An arbitrary value that represents a very far distance (at least as far as the player should be able to see) without +// being too far that we end up with precision issues (used in clouds and elsewhere). +#define DIST_CAP 500000 + +/* Constants expected to be defined automatically by configuration: */ + +/* +#define VOXYGEN_COMPUTATION_PREFERENCE +#define FLUID_MODE +#define CLOUD_MODE +#define LIGHTING_ALGORITHM +#define SHADOW_MODE +*/ + +/* Constants possibly defined automatically by configuration: */ + +/* +#define POINT_GLOW_FACTOR <0.0..1.0> +*/ + +/* Constants expected to be defined by any shader that needs to perform lighting calculations + * (but whose values may take automatically defined constants into account): */ + +/* +// At least one of LIGHTING_TYPE_REFLECTION or LIGHTING_TYPE_TRANSMISSION should be set. +#define LIGHTING_TYPE +#define LIGHTING_REFLECTION_KIND +#define LIGHTING_TRANSPORT_MODE +#define LIGHTING_DISTRIBUTION_SCHEME +#define LIGHTING_DISTRIBUTION +*/ + +/* Constants that *may* be defined by any shader. + * (and whose values may take automatically defined constants into account): */ + +/* +// When sets, shadow maps are used to cast shadows. +#define HAS_SHADOW_MAPS +// When set, "full" LOD terrain informatino is available (e.g. terrain colors). +#define HAS_LOD_FULL_INFO +*/ diff --git a/assets/voxygen/shaders/include/fxaa.glsl b/assets/voxygen/shaders/include/fxaa.glsl new file mode 100644 index 0000000..5d206a1 --- /dev/null +++ b/assets/voxygen/shaders/include/fxaa.glsl @@ -0,0 +1,140 @@ +/** +Basic FXAA implementation based on the code on geeks3d.com with the +modification that the texture2DLod stuff was removed since it's +unsupported by WebGL. + +-- + +From: +https://github.com/mitsuhiko/webgl-meincraft + +Copyright (c) 2011 by Armin Ronacher. + +Some rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * The names of the contributors may not be used to endorse or + promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef FXAA_REDUCE_MIN + #define FXAA_REDUCE_MIN (1.0/ 128.0) +#endif +#ifndef FXAA_REDUCE_MUL + #define FXAA_REDUCE_MUL (1.0 / 8.0) +#endif +#ifndef FXAA_SPAN_MAX + #define FXAA_SPAN_MAX 12.0 +#endif + +//optimized version for mobile, where dependent +//texture reads can be a bottleneck +vec4 fxaa(texture2D tex, sampler smplr, vec2 fragCoord, vec2 resolution, + vec2 v_rgbNW, vec2 v_rgbNE, + vec2 v_rgbSW, vec2 v_rgbSE, + vec2 v_rgbM) { + vec4 color; + vec2 inverseVP = vec2(1.0 / resolution.x, 1.0 / resolution.y); + vec3 rgbNW = texture(sampler2D(tex, smplr), v_rgbNW).xyz; + vec3 rgbNE = texture(sampler2D(tex, smplr), v_rgbNE).xyz; + vec3 rgbSW = texture(sampler2D(tex, smplr), v_rgbSW).xyz; + vec3 rgbSE = texture(sampler2D(tex, smplr), v_rgbSE).xyz; + vec4 texColor = texture(sampler2D(tex, smplr), v_rgbM); + vec3 rgbM = texColor.xyz; + vec3 luma = vec3(0.299, 0.587, 0.114); + float lumaNW = dot(rgbNW, luma); + float lumaNE = dot(rgbNE, luma); + float lumaSW = dot(rgbSW, luma); + float lumaSE = dot(rgbSE, luma); + float lumaM = dot(rgbM, luma); + float lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE))); + float lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE))); + + vec2 dir; + dir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE)); + dir.y = ((lumaNW + lumaSW) - (lumaNE + lumaSE)); + + float dirReduce = max((lumaNW + lumaNE + lumaSW + lumaSE) * + (0.25 * FXAA_REDUCE_MUL), FXAA_REDUCE_MIN); + + float rcpDirMin = 1.0 / (min(abs(dir.x), abs(dir.y)) + dirReduce); + dir = min(vec2(FXAA_SPAN_MAX, FXAA_SPAN_MAX), + max(vec2(-FXAA_SPAN_MAX, -FXAA_SPAN_MAX), + dir * rcpDirMin)) * inverseVP * 0.75; + + vec3 rgbA = 0.5 * ( + texture(sampler2D(tex, smplr), fragCoord * inverseVP + dir * (1.0 / 3.0 - 0.5)).xyz + + texture(sampler2D(tex, smplr), fragCoord * inverseVP + dir * (1.7 / 3.0 - 0.5)).xyz); + vec3 rgbB = rgbA * 0.5 + 0.25 * ( + texture(sampler2D(tex, smplr), fragCoord * inverseVP + dir * -0.5).xyz + + texture(sampler2D(tex, smplr), fragCoord * inverseVP + dir * 0.5).xyz); + + float lumaB = dot(rgbB, luma); + if ((lumaB < lumaMin) || (lumaB > lumaMax)) + color = vec4(rgbA, texColor.a); + else + color = vec4(rgbB, texColor.a); + return color; +} + + +void texcoords(vec2 fragCoord, vec2 resolution, + out vec2 v_rgbNW, out vec2 v_rgbNE, + out vec2 v_rgbSW, out vec2 v_rgbSE, + out vec2 v_rgbM) { + vec2 inverseVP = 1.0 / resolution.xy; + const float scale = 0.75; + v_rgbNW = (fragCoord + vec2(-scale, -scale)) * inverseVP; + v_rgbNE = (fragCoord + vec2(scale, -scale)) * inverseVP; + v_rgbSW = (fragCoord + vec2(-scale, scale)) * inverseVP; + v_rgbSE = (fragCoord + vec2(scale, scale)) * inverseVP; + v_rgbM = vec2(fragCoord * inverseVP); +} + +vec4 fxaa_apply( + texture2D tex, sampler smplr, + vec2 fragCoord, + vec2 resolution, + float sampleScale +) { + vec2 v_rgbNW; + vec2 v_rgbNE; + vec2 v_rgbSW; + vec2 v_rgbSE; + vec2 v_rgbM; + + float fxaa_scale = textureSize(sampler2D(tex, smplr), 0).x / resolution.x * sampleScale; + + vec2 scaled_fc = fragCoord * fxaa_scale; + vec2 scaled_res = resolution * fxaa_scale; + + //compute the texture coords + texcoords(scaled_fc, scaled_res, v_rgbNW, v_rgbNE, v_rgbSW, v_rgbSE, v_rgbM); + + //compute FXAA + return fxaa(tex, smplr, scaled_fc, scaled_res, v_rgbNW, v_rgbNE, v_rgbSW, v_rgbSE, v_rgbM); +} diff --git a/assets/voxygen/shaders/include/globals.glsl b/assets/voxygen/shaders/include/globals.glsl new file mode 100644 index 0000000..a61cd00 --- /dev/null +++ b/assets/voxygen/shaders/include/globals.glsl @@ -0,0 +1,76 @@ +#ifndef GLOBALS_GLSL +#define GLOBALS_GLSL + +layout(std140, set = 0, binding = 0) uniform u_globals { + mat4 view_mat; + mat4 proj_mat; + mat4 all_mat; + vec4 cam_pos; + vec4 focus_off; + vec4 focus_pos; + vec4 view_distance; + // .x = time of day, repeats every day. + // .y = a continuous value for what day it is. Repeats every `tick_overflow` for precisions sake. + vec4 time_of_day; + vec4 sun_dir; + vec4 moon_dir; + // .x = The `Time` resource, repeated every `tick_overflow` + // .y = a floored (`Time` / `tick_overflow`) + // .z = Time local to client, not synced between clients. + vec4 tick; + vec4 screen_res; + uvec4 light_shadow_count; + vec4 shadow_proj_factors; + uvec4 medium; + ivec4 select_pos; + vec4 gamma_exposure; + vec4 last_lightning; + vec2 wind_vel; + float ambiance; + // 0 - FirstPerson + // 1 - ThirdPerson + uint cam_mode; + float sprite_render_distance; + float globals_dummy; // Fix alignment. +}; + +// Specifies the pattern used in the player dithering +mat4 threshold_matrix = mat4( + vec4(1.0 / 17.0, 9.0 / 17.0, 3.0 / 17.0, 11.0 / 17.0), + vec4(13.0 / 17.0, 5.0 / 17.0, 15.0 / 17.0, 7.0 / 17.0), + vec4(4.0 / 17.0, 12.0 / 17.0, 2.0 / 17.0, 10.0 / 17.0), + vec4(16.0 / 17.0, 8.0 / 17.0, 14.0 / 17.0, 6.0 / 17.0) +); +float distance_divider = 2; +float shadow_dithering = 0.5; + +float tick_overflow = 300000.0; + +// Get a scaled time with an offset that loops at a period. +float tick_loop(float period, float scale, float offset) { + float loop = tick_overflow * scale; + float rem = mod(loop, period); + float rest = rem * tick.y; + + return mod(rest + tick.x * scale + offset, period); +} + +float tick_loop(float period) { + return tick_loop(period, 1.0, 0.0); +} + + +vec4 tick_loop4(float period, vec4 scale, vec4 offset) { + vec4 loop = tick_overflow * scale; + vec4 rem = mod(loop, period); + vec4 rest = rem * tick.y; + + return mod(rest + tick.x * scale + offset, period); +} + +// Only works if t happened within tick_overflow +float time_since(float t) { + return tick.x < t ? (tick_overflow - t + tick.x) : (tick.x - t); +} + +#endif diff --git a/assets/voxygen/shaders/include/light.glsl b/assets/voxygen/shaders/include/light.glsl new file mode 100644 index 0000000..191e64d --- /dev/null +++ b/assets/voxygen/shaders/include/light.glsl @@ -0,0 +1,258 @@ +#ifndef LIGHT_GLSL +#define LIGHT_GLSL + +#include +#include + +struct Light { + vec4 light_pos; + vec4 light_col; + // mat4 light_proj; +}; + +layout (std140, set = 0, binding = 3) +uniform u_lights { + // TODO: insert light max count constant here when loading the shaders + Light lights[20]; +}; + +struct Shadow { + vec4 shadow_pos_radius; +}; + +layout (std140, set = 0, binding = 4) +uniform u_shadows { + Shadow shadows[24]; +}; + +float attenuation_strength(vec3 rpos) { + // This is not how light attenuation works at all, but it produces visually pleasing and mechanically useful properties + float d2 = rpos.x * rpos.x + rpos.y * rpos.y + rpos.z * rpos.z; + return max(2.0 / pow(d2 + 10, 0.35) - pow(d2 / 50000.0, 0.8), 0.0); +} + +float attenuation_strength_real(vec3 rpos) { + float d2 = rpos.x * rpos.x + rpos.y * rpos.y + rpos.z * rpos.z; + return 1.0 / (0.025 + d2); +} + +// // Compute attenuation due to light passing through a substance that fills an area below a horizontal plane +// // (e.g. in most cases, water below the water surface depth). +// // +// // wpos is the position of the point being hit. +// // ray_dir is the reversed direction of the ray (going "out" of the point being hit). +// // surface_alt is the estimated altitude of the horizontal surface separating the substance from air. +// // defaultpos is the position to use in computing the distance along material at this point if there was a failure. +// // +// // Ideally, defaultpos is set so we can avoid branching on error. +// float compute_attenuation_beam(vec3 wpos, vec3 ray_dir, float surface_alt, vec3 defaultpos, float attenuation_depth) { +// vec3 water_intersection_surface_camera = vec3(cam_pos); +// bool _water_intersects_surface_camera = IntersectRayPlane(f_pos, view_dir, vec3(0.0, 0.0, /*f_alt*/f_pos.z + f_light), cam_surface_dir, water_intersection_surface_camera); +// // Should work because we set it up so that if IntersectRayPlane returns false for camera, its default intersection point is cam_pos. +// float water_depth_to_camera = length(water_intersection_surface_camera - f_pos); +// +// vec3 water_intersection_surface_light = f_pos; +// bool _light_intersects_surface_water = IntersectRayPlane(f_pos, sun_dir.z <= 0.0 ? sun_dir : moon_dir, vec3(0.0, 0.0, /*f_alt*/f_pos.z + f_light), vec3(0.0, 0.0, 1.0), water_intersection_surface_light); +// // Should work because we set it up so that if IntersectRayPlane returns false for light, its default intersection point is f_pos-- +// // i.e. if a light ray can't hit the water, it shouldn't contribute to coloring at all. +// float water_depth_to_light = length(water_intersection_surface_light - f_pos); +// +// // For ambient color, we just take the distance to the surface out of laziness. +// float water_depth_to_vertical = max(/*f_alt - f_pos.z*/f_light, 0.0); +// +// // Color goes down with distance... +// // See https://en.wikipedia.org/wiki/Beer%E2%80%93Lambert_law. +// vec3 water_color_direct = exp(-water_attenuation * (water_depth_to_light + water_depth_to_camera)); +// vec3 water_color_ambient = exp(-water_attenuation * (water_depth_to_vertical + water_depth_to_camera)); +// +// } + +vec3 light_at(vec3 wpos, vec3 wnorm) { + const float LIGHT_AMBIANCE = 0.025; + + vec3 light = vec3(0); + + for (uint i = 0u; i < light_shadow_count.x; i ++) { + + // Only access the array once + Light L = lights[i]; + + vec3 light_pos = L.light_pos.xyz - focus_off.xyz; + + // Pre-calculate difference between light and fragment + vec3 difference = light_pos - wpos; + + float strength = attenuation_strength(difference); + + vec3 color = L.light_col.rgb * strength; + + light += color * (max(0, max(dot(normalize(difference), wnorm), 0.15)) + LIGHT_AMBIANCE); + } + return light; +} + +float shadow_at(vec3 wpos, vec3 wnorm) { + float shadow = 1.0; + +#if (SHADOW_MODE == SHADOW_MODE_CHEAP || (SHADOW_MODE == SHADOW_MODE_MAP && defined(EXPERIMENTAL_POINTSHADOWSWITHSHADOWMAPPING))) + for (uint i = 0u; i < light_shadow_count.y; i ++) { + + // Only access the array once + Shadow S = shadows[i]; + + vec3 shadow_pos = S.shadow_pos_radius.xyz - focus_off.xyz; + float radius = S.shadow_pos_radius.w; + + vec3 diff = shadow_pos - wpos; + #if (SHADOW_MODE == SHADOW_MODE_CHEAP) + if (diff.z >= 0.0) { + diff.z = -sign(diff.z) * diff.z * 0.1; + } + #endif + + float shade = max(pow(diff.x * diff.x + diff.y * diff.y + diff.z * diff.z, 0.3) / pow(radius * radius * 0.5, 0.5), 0.5); + // float shade = max(pow(dot(diff, diff) / (radius * radius * 0.5), 0.25), 0.5); + // float shade = dot(diff, diff) / (radius * radius * 0.5); + + shadow = min(shadow, shade); + } + // NOTE: Squared to compenate for prior saturation. + return min(shadow, 1.0); + // return min(shadow * shadow, 1.0); +#else + return shadow; +#endif +} + +// Returns computed maximum intensity. +// +// mu is the attenuation coefficient for any substance on a horizontal plane. +// cam_attenuation is the total light attenuation due to the substance for beams between the point and the camera. +// surface_alt is the altitude of the attenuating surface. +float lights_at(vec3 wpos, vec3 wnorm, vec3 /*cam_to_frag*/view_dir, vec3 mu, vec3 cam_attenuation, float surface_alt, vec3 k_a, vec3 k_d, vec3 k_s, float alpha, vec3 voxel_norm, float voxel_lighting, inout vec3 emitted_light, inout vec3 reflected_light/*, out float shadow*/) { + // return 0.0; + // shadow = 0.0; + // vec3 ambient_light = vec3(0.0); + vec3 directed_light = vec3(0.0); + vec3 max_light = vec3(0.0); + + const float LIGHT_AMBIANCE = 0.0;//0.015625; + + for (uint i = 0u; i < /*light_shadow_count.x*//*0u*/light_shadow_count.x/*32u*/; i ++) { + + // Only access the array once + Light L = lights[i]; + + vec3 light_pos = L.light_pos.xyz - focus_off.xyz; + + // Pre-calculate difference between light and fragment + vec3 difference = light_pos - wpos; + float distance_2 = dot(difference, difference); + + if (distance_2 > 10000.0) { + continue; + } + + // float strength = attenuation_strength(difference);// pow(attenuation_strength(difference), 0.6); + // NOTE: This normalizes strength to 0.25 at the center of the point source. + float strength = 3.0 / (5 + distance_2); + + // Multiply the vec3 only once + const float PI = 3.1415926535897932384626433832795; + const float PI_2 = 2 * PI; + vec3 color = /*srgb_to_linear*/L.light_col.rgb; + + // // Only access the array once + // Shadow S = shadows[i]; + + // vec3 shadow_pos = S.shadow_pos_radius.xyz; + // float radius = S.shadow_pos_radius.w; + + // vec3 diff = shadow_pos - wpos; + // if (diff.z >= 0.0) { + // diff.z = -sign(diff.z) * diff.z * 0.1; + // } + + // float shade = max(pow(diff.x * diff.x + diff.y * diff.y + diff.z * diff.z, 0.25) / pow(radius * radius * 0.5, 0.25), /*0.5*/0.0); + + // shadow = min(shadow, shade); + + // Compute reflectance. + float light_distance = sqrt(distance_2); + vec3 light_dir = -difference / light_distance; // normalize(-difference); + // light_dir = faceforward(light_dir, wnorm, light_dir); + bool is_direct = dot(difference, wnorm) > 0.0; + // reflected_light += color * (distance_2 == 0.0 ? vec3(1.0) : light_reflection_factor(wnorm, cam_to_frag, light_dir, k_d, k_s, alpha)); + vec3 direct_light_dir = is_direct ? light_dir : -light_dir; + // vec3 direct_norm_dir = is_direct ? wnorm : -wnorm; + // Compute attenuation due to fluid. + // Default is light_pos, so we take the whole segment length for this beam if it never intersects the surface, unlesss the beam itself + // is above the surface, in which case we take zero (wpos). + color *= cam_attenuation * compute_attenuation_point(wpos, -direct_light_dir, mu, surface_alt, light_pos.z < surface_alt ? light_pos : wpos); + +#if (LIGHTING_TYPE & LIGHTING_TYPE_TRANSMISSION) != 0 + is_direct = true; +#endif + vec3 lrf = light_reflection_factor(/*direct_norm_dir*/wnorm, /*cam_to_frag*/view_dir, direct_light_dir, k_d, k_s, alpha, voxel_norm, voxel_lighting); + vec3 direct_light = PI * color * strength * lrf; + /* is_direct = true; */ + float computed_shadow = ShadowCalculationPoint(i, -difference, wnorm, wpos/*, light_distance*/); + // directed_light += is_direct ? max(computed_shadow, /*LIGHT_AMBIANCE*/0.0) * direct_light : vec3(0.0); + float ambiance = 0.0; + #ifndef EXPERIMENTAL_PHOTOREALISTIC + // Non-physically emulate ambient light nearby + ambiance = mix(0.05, 0.5, (dot(wnorm, direct_light_dir) + 1.0) * 0.5) * strength; + #ifdef FIGURE_SHADER + // Non-physical hack. Subtle, but allows lanterns to glow nicely + // TODO: Make lanterns use glowing cells instead + ambiance += 0.1 / distance_2; + #endif + #endif + directed_light += (is_direct ? mix(LIGHT_AMBIANCE, 1.0, computed_shadow) * direct_light : vec3(0.0)) + ambiance * color; + // directed_light += (is_direct ? 1.0 : LIGHT_AMBIANCE) * max(computed_shadow, /*LIGHT_AMBIANCE*/0.0) * direct_light;// : vec3(0.0); + // directed_light += mix(LIGHT_AMBIANCE, 1.0, computed_shadow) * direct_light; + // ambient_light += is_direct ? vec3(0.0) : vec3(0.0); // direct_light * LIGHT_AMBIANCE; + // ambient_light += is_direct ? direct_light * (1.0 - LIGHT_AMBIANCE) : vec3(0.0); + + vec3 cam_light_diff = light_pos - focus_pos.xyz; + float cam_distance_2 = dot(cam_light_diff, cam_light_diff);// + 0.0001; + float cam_strength = 1.0 / (/*4.0 * *//*PI * *//*1.0 + */cam_distance_2); + + // vec3 cam_pos_diff = cam_to_frag.xyz - wpos; + // float pos_distance_2 = dot(cam_pos_diff, cam_pos_diff);// + 0.0001; + + // float cam_distance = sqrt(cam_distance_2); + // float distance = sqrt(distance_2); + float both_strength = cam_distance_2 == 0.0 ? distance_2 == 0.0 ? 0.0 : strength/* * strength*//*1.0*/ : distance_2 == 0.0 ? cam_strength/* * cam_strength*//*1.0*/ : + // 1.0 / (cam_distance * distance); + // sqrt(cam_strength * strength); + cam_strength + strength; + // (cam_strength * strength); + // max(cam_strength, strength); + // mix(cam_strength, strength, distance_2 / (cam_distance_2 + distance_2)); + // mix(cam_strength, strength, cam_distance_2 / (cam_distance_2 + distance_2)); + // max(cam_strength, strength);//mix(cam_strength, strength, clamp(distance_2 / /*pos_distance_2*/cam_distance_2, 0.0, 1.0)); + // float both_strength = mix(cam_strength, strength, cam_distance_2 / sqrt(cam_distance_2 + distance_2)); + max_light += /*max(1.0, cam_strength)*//*min(cam_strength, 1.0)*//*max*//*max(both_strength, 1.0) * *//*cam_strength*/computed_shadow * both_strength * PI * color; + // max_light += /*max(1.0, cam_strength)*//*min(cam_strength, 1.0)*//*max*/max(cam_strength, 1.0/*, strength*//*1.0*/) * PI * color; + // light += color * (max(0, max(dot(normalize(difference), wnorm), 0.15)) + LIGHT_AMBIANCE); + // Compute emiittance. + // float ambient_sides = clamp(mix(0.15, 0.0, abs(dot(wnorm, light_dir)) * 10000.0), 0.0, 0.15); + // float ambient_sides = 0.0;// max(dot(wnorm, light_dir) - 0.15, 0.15); + // // float ambient_sides = 0.0; + // ambient_light += color * (ambient_sides + LIGHT_AMBIANCE); + } + + // shadow = shadow_at(wpos, wnorm); + // float shadow = shadow_at(wpos, wnorm); + reflected_light += directed_light; + // emitted_light += k_a * ambient_light/* * shadow*/;// min(shadow, 1.0); + return /*rel_luminance(ambient_light + directed_light)*/rel_luminance(max_light);//ambient_light; +} + +// Same as lights_at, but with no assumed attenuation due to fluid. +float lights_at(vec3 wpos, vec3 wnorm, vec3 view_dir, vec3 k_a, vec3 k_d, vec3 k_s, float alpha, inout vec3 emitted_light, inout vec3 reflected_light) { + return lights_at(wpos, wnorm, view_dir, vec3(0.0), vec3(1.0), 0.0, k_a, k_d, k_s, alpha, wnorm, 1.0, emitted_light, reflected_light); +} + +#endif diff --git a/assets/voxygen/shaders/include/lod.glsl b/assets/voxygen/shaders/include/lod.glsl new file mode 100644 index 0000000..76d26f9 --- /dev/null +++ b/assets/voxygen/shaders/include/lod.glsl @@ -0,0 +1,415 @@ +#ifndef LOD_GLSL +#define LOD_GLSL + +#include +#include +#include + +layout(set = 0, binding = 7) uniform texture2D t_horizon; +layout(set = 0, binding = 8) uniform sampler s_horizon; + + +const float MIN_SHADOW = 0.33; + +vec2 pos_to_tex(vec2 pos) { + // Want: (pixel + 0.5) + vec2 uv_pos = (focus_off.xy + pos + 16) / 32.0; + return vec2(uv_pos.x, uv_pos.y); +} + +// textureBicubic from https://stackoverflow.com/a/42179924 +vec4 cubic(float v) { + vec4 n = vec4(1.0, 2.0, 3.0, 4.0) - v; + vec4 s = n * n * n; + float x = s.x; + float y = s.y - 4.0 * s.x; + float z = s.z - 4.0 * s.y + 6.0 * s.x; + float w = 6.0 - x - y - z; + return vec4(x, y, z, w) * (1.0/6.0); +} + +// Computes atan(y, x), except with more stability when x is near 0. +float atan2(in float y, in float x) { + bool s = (abs(x) > abs(y)); + return mix(PI/2.0 - atan(x,y), atan(y,x), s); +} + +// NOTE: We assume the sampled coordinates are already in "texture pixels". +vec4 textureBicubic(texture2D tex, sampler sampl, vec2 texCoords) { + // TODO: remove all textureSize calls and replace with constants + vec2 texSize = textureSize(sampler2D(tex, sampl), 0); + vec2 invTexSize = 1.0 / texSize; + /* texCoords.y = texSize.y - texCoords.y; */ + + texCoords = texCoords/* * texSize */ - 0.5; + + + vec2 fxy = fract(texCoords); + texCoords -= fxy; + + vec4 xcubic = cubic(fxy.x); + vec4 ycubic = cubic(fxy.y); + + vec4 c = texCoords.xxyy + vec2 (-0.5, +1.5).xyxy; + // vec4 c = texCoords.xxyy + vec2 (-1, +1).xyxy; + + vec4 s = vec4(xcubic.xz + xcubic.yw, ycubic.xz + ycubic.yw); + vec4 offset = c + vec4 (xcubic.yw, ycubic.yw) / s; + + offset *= invTexSize.xxyy; + /* // Correct for map rotaton. + offset.zw = 1.0 - offset.zw; */ + + vec4 sample0 = texture(sampler2D(tex, sampl), offset.xz); + vec4 sample1 = texture(sampler2D(tex, sampl), offset.yz); + vec4 sample2 = texture(sampler2D(tex, sampl), offset.xw); + vec4 sample3 = texture(sampler2D(tex, sampl), offset.yw); + // vec4 sample0 = texelFetch(sampler, offset.xz, 0); + // vec4 sample1 = texelFetch(sampler, offset.yz, 0); + // vec4 sample2 = texelFetch(sampler, offset.xw, 0); + // vec4 sample3 = texelFetch(sampler, offset.yw, 0); + + float sx = s.x / (s.x + s.y); + float sy = s.z / (s.z + s.w); + + return mix( + mix(sample3, sample2, sx), mix(sample1, sample0, sx) + , sy); +} + +vec4 textureMaybeBicubic(texture2D tex, sampler sampl, vec2 texCoords) { + // TODO: Allow regular `texture` to be used when cause of light leaking issues is found + //#if (CLOUD_MODE >= CLOUD_MODE_HIGH) + return textureBicubic(tex, sampl, texCoords); + //#else + // vec2 offset = (texCoords + vec2(-1.0, 0.5)) / textureSize(sampler2D(tex, sampl), 0); + // return texture(sampler2D(tex, sampl), offset); + //#endif +} + +// 16 bit version (each of the 2 8-bit components are combined after bilinear sampling) +// NOTE: We assume the sampled coordinates are already in "texture pixels". +vec2 textureBicubic16(texture2D tex, sampler sampl, vec2 texCoords) { + vec2 texSize = textureSize(sampler2D(tex, sampl), 0); + vec2 invTexSize = 1.0 / texSize; + /* texCoords.y = texSize.y - texCoords.y; */ + + texCoords = texCoords/* * texSize */ - 0.5; + + + vec2 fxy = fract(texCoords); + texCoords -= fxy; + + vec4 xcubic = cubic(fxy.x); + vec4 ycubic = cubic(fxy.y); + + vec4 c = texCoords.xxyy + vec2 (-0.5, +1.5).xyxy; + // vec4 c = texCoords.xxyy + vec2 (-1, +1).xyxy; + + vec4 s = vec4(xcubic.xz + xcubic.yw, ycubic.xz + ycubic.yw); + vec4 offset = c + vec4 (xcubic.yw, ycubic.yw) / s; + + offset *= invTexSize.xxyy; + /* // Correct for map rotaton. + offset.zw = 1.0 - offset.zw; */ + + vec4 sample0_v4 = textureLod(sampler2D(tex, sampl), offset.xz, 0); + vec4 sample1_v4 = textureLod(sampler2D(tex, sampl), offset.yz, 0); + vec4 sample2_v4 = textureLod(sampler2D(tex, sampl), offset.xw, 0); + vec4 sample3_v4 = textureLod(sampler2D(tex, sampl), offset.yw, 0); + vec2 sample0 = sample0_v4.rb / 256.0 + sample0_v4.ga; + vec2 sample1 = sample1_v4.rb / 256.0 + sample1_v4.ga; + vec2 sample2 = sample2_v4.rb / 256.0 + sample2_v4.ga; + vec2 sample3 = sample3_v4.rb / 256.0 + sample3_v4.ga; + // vec4 sample0 = texelFetch(sampler, offset.xz, 0); + // vec4 sample1 = texelFetch(sampler, offset.yz, 0); + // vec4 sample2 = texelFetch(sampler, offset.xw, 0); + // vec4 sample3 = texelFetch(sampler, offset.yw, 0); + + float sx = s.x / (s.x + s.y); + float sy = s.z / (s.z + s.w); + + return mix( + mix(sample3, sample2, sx), mix(sample1, sample0, sx) + , sy); +} + +// Gets the altitude at a position relative to focus_off. +float alt_at(vec2 pos) { + vec4 alt_sample = textureLod/*textureBicubic16*/(sampler2D(t_alt, s_alt), wpos_to_uv(focus_off.xy + pos), 0); + return (/*round*/((alt_sample.r / 256.0 + alt_sample.g) * (/*1300.0*//*1278.7266845703125*/view_distance.w)) + /*140.0*/view_distance.z - focus_off.z); + //+ (texture(t_noise, pos * 0.002).x - 0.5) * 64.0; + + // return 0.0 + // + pow(texture(t_noise, pos * 0.00005).x * 1.4, 3.0) * 1000.0 + // + texture(t_noise, pos * 0.001).x * 100.0 + // + texture(t_noise, pos * 0.003).x * 30.0; +} + +float alt_at_real(vec2 pos) { + // Basic idea: only really need the real altitude for an accurate water height estimation, so if we are in the cheap shader take a shortcut. +// #if (FLUID_MODE == FLUID_MODE_LOW) +// return alt_at(pos); +// #elif (FLUID_MODE == FLUID_MODE_SHINY) + return (/*round*/(textureBicubic16(t_alt, s_alt, pos_to_tex(pos)).r * (/*1300.0*//*1278.7266845703125*/view_distance.w)) + /*140.0*/view_distance.z - focus_off.z); +// #endif + //+ (texture(t_noise, pos * 0.002).x - 0.5) * 64.0; + + // return 0.0 + // + pow(texture(t_noise, pos * 0.00005).x * 1.4, 3.0) * 1000.0 + // + texture(t_noise, pos * 0.001).x * 100.0 + // + texture(t_noise, pos * 0.003).x * 30.0; +} + + +float horizon_at2(vec4 f_horizons, float alt, vec3 pos, vec4 light_dir) { + const float PI_2 = 3.1415926535897932384626433832795 / 2.0; + const float MIN_LIGHT = 0.0;//0.115/*0.0*/; + + // return 1.0; +/* + + let shade_frac = horizon_map + .and_then(|(angles, heights)| { + chunk_idx + .and_then(|chunk_idx| angles.get(chunk_idx)) + .map(|&e| (e as f64, heights)) + }) + .and_then(|(e, heights)| { + chunk_idx + .and_then(|chunk_idx| heights.get(chunk_idx)) + .map(|&f| (e, f as f64)) + }) + .map(|(angle, height)| { + let w = 0.1; + if angle != 0.0 && light_direction.x != 0.0 { + let deltax = height / angle; + let lighty = (light_direction.y / light_direction.x * deltax).abs(); + let deltay = lighty - height; + let s = (deltay / deltax / w).min(1.0).max(0.0); + // Smoothstep + s * s * (3.0 - 2.0 * s) + } else { + 1.0 + } + }) + .unwrap_or(1.0); +*/ + // vec2 f_horizon; + /* if (light_dir.z >= 0) { + return 0.0; + } */ + /* if (light_dir.x >= 0) { + f_horizon = f_horizons.rg; + // f_horizon = f_horizons.ba; + } else { + f_horizon = f_horizons.ba; + // f_horizon = f_horizons.rg; + } + return 1.0; */ + /* bvec2 f_mode = lessThan(vec2(light_dir.x), vec2(1.0)); + f_horizon = mix(f_horizons.ba, f_horizons.rg, f_mode); */ + // f_horizon = mix(f_horizons.rg, f_horizons.ba, clamp(light_dir.x * 10000.0, 0.0, 1.0)); + vec2 f_horizon = mix(f_horizons.rg, f_horizons.ba, bvec2(light_dir.x < 0.0)); + // vec2 f_horizon = mix(f_horizons.ba, f_horizons.rg, clamp(light_dir.x * 10000.0, 0.0, 1.0)); + // f_horizon = mix(f_horizons.ba, f_horizons.rg, bvec2(lessThan(light_dir.xx, vec2(0.0)))); + /* if (f_horizon.x <= 0) { + return 1.0; + } */ + float angle = tan(f_horizon.x * PI_2); + /* if (angle <= 0.0001) { + return 1.0; + } */ + float height = f_horizon.y * /*1300.0*//*1278.7266845703125*/view_distance.w + view_distance.z; + const float w = 0.1; + float deltah = height - alt - focus_off.z; + //if (deltah < 0.0001/* || angle < 0.0001 || abs(light_dir.x) < 0.0001*/) { + // return 1.0; + /*} else */{ + float lighta = /*max*/(-light_dir.z/*, 0.0*/) / max(abs(light_dir.x), 0.0001); + // NOTE: Ideally, deltah <= 0.0 is a sign we have an oblique horizon angle. + float deltax = deltah / max(angle, 0.0001)/*angle*/; + float lighty = lighta * deltax; + float deltay = lighty - deltah + max(pos.z - alt, 0.0); + // NOTE: the "real" deltah should always be >= 0, so we know we're only handling the 0 case with max. + float s = mix(max(min(max(deltay, 0.0) / max(deltax, 0.0001) / w, 1.0), 0.0), 1.0, deltah <= 0); + return max(/*0.2 + 0.8 * */(s * s * (3.0 - 2.0 * s)), MIN_LIGHT); + /* if (lighta >= angle) { + return 1.0; + } else { + return MIN_LIGHT; + } */ + // float deltah = height - alt; + // float deltah = max(height - alt, 0.0); + // float lighty = abs(sun_dir.z / sun_dir.x * deltax); + // float lighty = abs(sun_dir.z / sun_dir.x * deltax); + // float deltay = lighty - /*pos.z*//*deltah*/(deltah + max(pos.z - alt, 0.0))/*deltah*/; + // float s = max(min(max(deltay, 0.0) / deltax / w, 1.0), 0.0); + // Smoothstep + // return max(/*0.2 + 0.8 * */(s * s * (3.0 - 2.0 * s)), MIN_LIGHT); + } +} + +// float horizon_at(vec3 pos, /*float time_of_day*/vec3 light_dir) { +// vec4 f_horizons = textureMaybeBicubic(t_horizon, pos_to_tex(pos.xy)); +// // f_horizons.xyz = /*linear_to_srgb*/(f_horizons.xyz); +// float alt = alt_at_real(pos.xy); +// return horizon_at2(f_horizons, alt, pos, light_dir); +// } + +vec2 splay(vec2 pos) { + // const float SPLAY_MULT = 1048576.0; + float len_2 = dot(pos, pos); + float len_pow = len_2 * sqrt(len_2); + // float len_pow = pow(len/* * SQRT_2*//* * 0.5*/, 3.0); + // vec2 splayed = pos * pow(len * 0.5, 3.0) * SPLAY_MULT; + const float SQRT_2 = sqrt(2.0) / 2.0; + // /const float CBRT_2 = cbrt(2.0) / 2.0; + // vec2 splayed = pos * (view_distance.x * SQRT_2 + pow(len * 0.5, 3.0) * (SPLAY_MULT - view_distance.x)); + vec2 splayed = pos * (view_distance.x * SQRT_2 + len_pow * (textureSize(sampler2D(t_alt, s_alt), 0) * 32.0/* - view_distance.x*/)); + if (abs(pos.x) > 0.99 || abs(pos.y) > 0.99) { + splayed *= 10.0; + } + return splayed; + + // Radial: pos.x = r - view_distance.x from focus_pos, pos.y = θ from cam_pos to focus_pos on xy plane. + // const float PI_2 = 3.1415926535897932384626433832795; + // float squared = pos.x * pos.x; + // // // vec2 splayed2 = pos * vec2(squared * (SPLAY_MULT - view_distance.x), PI); + // vec2 splayed2 = pos * vec2(squared * (textureSize(t_alt, 0).x * 32.0 - view_distance.x), PI); + // float r = splayed2.x + view_distance.x; + // vec2 theta = vec2(cos(splayed2.y), sin(splayed2.y)); + // return r * theta; + // // mat2 rot_mat = mat2(vec2(theta.x, -theta.y), theta.yx); + // // return r * /*normalize(normalize(focus_pos.xy - cam_pos.xy) + theta);*/rot_mat * normalize(focus_pos.xy - cam_pos.xy); + // return splayed; +} + +vec3 lod_norm(vec2 f_pos/*vec3 pos*/, vec4 square) { + // const float SAMPLE_W = 32; + + // vec2 f_pos = pos.xy; + // float altx0 = alt_at_real(f_pos + vec2(-1.0, 0) * SAMPLE_W); + // float altx1 = alt_at_real(f_pos + vec2(1.0, 0) * SAMPLE_W); + // float alty0 = alt_at_real(f_pos + vec2(0, -1.0) * SAMPLE_W); + // float alty1 = alt_at_real(f_pos + vec2(0, 1.0) * SAMPLE_W); + float altx0 = alt_at(vec2(square.x, f_pos.y)); + float altx1 = alt_at(vec2(square.z, f_pos.y)); + float alty0 = alt_at(vec2(f_pos.x, square.y)); + float alty1 = alt_at(vec2(f_pos.x, square.w)); + float slope = abs(altx1 - altx0) + abs(alty0 - alty1); + + // vec3 norm = normalize(cross( + // vec3(/*2.0 * SAMPLE_W*/square.z - square.x, 0.0, altx1 - altx0), + // vec3(0.0, /*2.0 * SAMPLE_W*/square.w - square.y, alty1 - alty0) + // )); + vec3 norm = normalize(vec3( + (altx0 - altx1) / (square.z - square.x), + (alty0 - alty1) / (square.w - square.y), + 1.0 + //(abs(square.w - square.y) + abs(square.z - square.x)) / (slope + 0.00001) // Avoid NaN + )); + /* vec3 norm = normalize(vec3( + (altx0 - altx1) / (2.0 * SAMPLE_W), + (alty0 - alty1) / (2.0 * SAMPLE_W), + (2.0 * SAMPLE_W) / (slope + 0.00001) // Avoid NaN + )); */ + + return faceforward(norm, vec3(0.0, 0.0, -1.0)/*pos - cam_pos.xyz*/, norm); +} + +vec3 lod_norm(vec2 f_pos/*vec3 pos*/) { + const float SAMPLE_W = 32; + + vec3 norm = lod_norm(f_pos, vec4(f_pos - vec2(SAMPLE_W), f_pos + vec2(SAMPLE_W))); + + #ifdef EXPERIMENTAL_PROCEDURALLODDETAIL + vec2 wpos = f_pos + focus_off.xy; + norm.xy += vec2( + textureLod(sampler2D(t_noise, s_noise), wpos / 250, 0).x - 0.5, + textureLod(sampler2D(t_noise, s_noise), wpos / 250 + 0.5, 0).x - 0.5 + ) * 0.25 / pow(norm.z + 0.1, 3); + norm.xy += vec2( + textureLod(sampler2D(t_noise, s_noise), wpos / 100, 0).x - 0.5, + textureLod(sampler2D(t_noise, s_noise), wpos / 100 + 0.5, 0).x - 0.5 + ) * 0.25 / pow(norm.z + 0.1, 3); + norm = normalize(norm); + #endif + + return norm; +} + + +vec3 lod_pos(vec2 pos, vec2 focus_pos) { + // Remove spiking by "pushing" vertices towards local optima + vec2 delta = splay(pos); + vec2 hpos = focus_pos + delta; + + #ifndef EXPERIMENTAL_BAREMINIMUM + vec2 nhpos = hpos; + // vec2 lod_shift = splay(abs(pos) - 1.0 / view_distance.y); + float shift = 15.0;// min(lod_shift.x, lod_shift.y) * 0.5; + for (int i = 0; i < 3; i ++) { + // vec4 square = focus_pos.xy + vec4(splay(pos - vec2(1.0, 1.0), splay(pos + vec2(1.0, 1.0)))); + nhpos -= lod_norm(hpos).xy * shift; + } + hpos = hpos + normalize(nhpos - hpos + 0.001) * min(length(nhpos - hpos), 32); + #endif + + return vec3(hpos, alt_at_real(hpos)); +} + +#ifdef HAS_LOD_FULL_INFO +layout(set = 0, binding = 10) +uniform texture2D t_map; +layout(set = 0, binding = 11) +uniform sampler s_map; + +vec3 lod_col(vec2 pos) { + #ifdef EXPERIMENTAL_PROCEDURALLODDETAIL + vec2 wpos = pos + focus_off.xy; + vec2 shift = vec2( + textureLod(sampler2D(t_noise, s_noise), wpos / 200, 0).x - 0.5, + textureLod(sampler2D(t_noise, s_noise), wpos / 200 + 0.5, 0).x - 0.5 + ) * 64 + vec2( + textureLod(sampler2D(t_noise, s_noise), wpos / 50, 0).x - 0.5, + textureLod(sampler2D(t_noise, s_noise), wpos / 50 + 0.5, 0).x - 0.5 + ) * 48; + pos += shift; + wpos += shift; + #endif + + vec3 col = textureBicubic(t_map, s_map, pos_to_tex(pos)).rgb; + + /* + #ifdef EXPERIMENTAL_PROCEDURALLODDETAIL + col *= pow(vec3( + textureLod(sampler2D(t_noise, s_noise), wpos / 40, 0).x - 0.5, + textureLod(sampler2D(t_noise, s_noise), wpos / 50 + 0.5, 0).x - 0.5, + textureLod(sampler2D(t_noise, s_noise), wpos / 45 + 0.75, 0).x - 0.5 + ) + 1.0, vec3(0.5)); + #endif + */ + + return col; +} +#endif + +vec3 water_diffuse(vec3 color, vec3 dir, float max_dist) { + if (medium.x == 1) { + float f_alt = alt_at(cam_pos.xy); + float fluid_alt = max(cam_pos.z + 1, floor(f_alt + 1)); + + float water_dist = clamp((fluid_alt - cam_pos.z) / pow(max(dir.z, 0), 2), 0, max_dist); + + float fade = pow(0.95, water_dist); + + return mix(vec3(0.0, 0.2, 0.5) + * (get_sun_brightness() * get_sun_color() + get_moon_brightness() * get_moon_color()) + * pow(0.99, max((fluid_alt - cam_pos.z) * 12.0 - dir.z * 200, 0)), color.rgb * exp(-MU_WATER * water_dist * 0.1), fade); + } else { + return color; + } +} + +#endif diff --git a/assets/voxygen/shaders/include/point_glow.glsl b/assets/voxygen/shaders/include/point_glow.glsl new file mode 100644 index 0000000..08c0b11 --- /dev/null +++ b/assets/voxygen/shaders/include/point_glow.glsl @@ -0,0 +1,70 @@ +#ifndef POINT_GLOW_GLSL +#define POINT_GLOW_GLSL + +#include "sky.glsl" + +void apply_point_glow_light(Light L, vec3 wpos, vec3 dir, float max_dist, inout vec3 color) { + vec3 light_pos = L.light_pos.xyz; + // Project light_pos to dir line + float t = max(dot(light_pos - wpos, dir), 0); + vec3 nearest = wpos + dir * min(t, max_dist); + + vec3 difference = light_pos - nearest; + float distance_2 = dot(difference, difference); + //if (distance_2 > 100000.0) { + // return; + //} + + #if (CLOUD_MODE >= CLOUD_MODE_HIGH) + vec3 _unused; + float unused2; + float spread = 1.0 / (1.0 + sqrt(max(cloud_at(nearest, 0.0, dir, _unused, unused2).z, 0.0)) * 0.01); + #else + const float spread = 1.0; + #endif + + float strength = pow(attenuation_strength_real(difference), spread); + + #ifdef EXPERIMENTAL_LOWGLOWNEARCAMERA + vec3 cam_wpos = cam_pos.xyz + focus_pos.xyz + focus_off.xyz; + vec3 cam_diff = light_pos - cam_wpos; + float cam_dist_2 = dot(cam_diff, cam_diff); + // 3 meters away glow returns to the maximum strength. + strength *= clamp(cam_dist_2 / 9.0, 0.25, 1.0); + #endif + + vec3 light_color = L.light_col.rgb * strength; + + const float LIGHT_AMBIANCE = 0.025; + color += light_color + * 0.002 + #ifdef POINT_GLOW_FACTOR + // Constant, *should* const fold + * POINT_GLOW_FACTOR + #endif + ; +} + +vec3 apply_point_glow(vec3 wpos, vec3 dir, float max_dist, vec3 color) { + #ifndef POINT_GLOW_FACTOR + return color; + #else + for (uint i = 0u; i < light_shadow_count.x; i ++) { + // Only access the array once + Light L = lights[i]; + + apply_point_glow_light(L, wpos, dir, max_dist, color); + } + #endif + + #ifdef FLASHING_LIGHTS_ENABLED + float time_since_lightning = time_since(last_lightning.w); + if (time_since_lightning < MAX_LIGHTNING_PERIOD) { + // Apply lightning + apply_point_glow_light(Light(last_lightning.xyzw + vec4(0, 0, LIGHTNING_HEIGHT, 0), vec4(vec3(0.2, 0.4, 1) * lightning_intensity() * 0.003, 1)), wpos, dir, max_dist, color); + } + #endif + return color; +} + +#endif diff --git a/assets/voxygen/shaders/include/rain_occlusion.glsl b/assets/voxygen/shaders/include/rain_occlusion.glsl new file mode 100644 index 0000000..95cc07c --- /dev/null +++ b/assets/voxygen/shaders/include/rain_occlusion.glsl @@ -0,0 +1,29 @@ + +#ifndef RAIN_OCCLUSION_GLSL +#define RAIN_OCCLUSION_GLSL + +// Use with sampler2DShadow +layout(set = 1, binding = 4) +uniform texture2D t_directed_occlusion_maps; +layout(set = 1, binding = 5) +uniform samplerShadow s_directed_occlusion_maps; + +layout (std140, set = 0, binding = 14) +uniform u_rain_occlusion { + mat4 rain_occlusion_matrices; + mat4 rain_occlusion_texture_mat; + mat4 rain_dir_mat; + float integrated_rain_vel; + float rain_density; + vec2 occlusion_dummy; // Fix alignment. +}; + +float rain_occlusion_at(in vec3 fragPos) +{ + vec4 rain_pos = rain_occlusion_texture_mat * vec4(fragPos, 1.0); + + float visibility = textureProj(sampler2DShadow(t_directed_occlusion_maps, s_directed_occlusion_maps), rain_pos); + + return visibility; +} +#endif diff --git a/assets/voxygen/shaders/include/random.glsl b/assets/voxygen/shaders/include/random.glsl new file mode 100644 index 0000000..26ea792 --- /dev/null +++ b/assets/voxygen/shaders/include/random.glsl @@ -0,0 +1,161 @@ +#ifndef RANDOM_GLSL +#define RANDOM_GLSL + +layout(set = 0, binding = 1) uniform texture2D t_noise; +layout(set = 0, binding = 2) uniform sampler s_noise; + +float hash(vec4 p) { + p = fract(p * 0.3183099 + 0.1) - fract(p + 23.22121); + p *= 17.0; + return (fract(p.x * p.y * (1.0 - p.z) * p.w * (p.x + p.y + p.z + p.w)) - 0.5) * 2.0; +} + +#define M1 2047667443U +#define M2 3883706873U +#define M3 3961281721U + +float hash_one(uint q) { + uint n = ((M3 * q) ^ M2) * M1; + + return float(n) * (1.0 / float(0xffffffffU)); +} + +float hash_two(uvec2 q) { + q *= uvec2(M1, M2); + uint n = q.x ^ q.y; + n = n * (n ^ (n >> 15)); + return float(n) * (1.0 / float(0xffffffffU)); +} + +float hash_three(uvec3 q) { + q *= uvec3(M1, M2, M3); + uint n = q.x ^ q.y ^ q.z; + n = n * (n ^ (n >> 15)); + return float(n) * (1.0 / float(0xffffffffU)); +} + +float hash_fast(uvec3 q) { + q *= uvec3(M1, M2, M3); + + uint n = (q.x ^ q.y ^ q.z) * M1; + + return float(n) * (1.0 / float(0xffffffffU)); +} + +// 2D, but using shifted 2D textures +float noise_2d(vec2 pos) { + return textureLod(sampler2D(t_noise, s_noise), pos, 0).x; +} + +// 3D, but using shifted 2D textures +float noise_3d(vec3 pos) { + pos.z *= 15.0; + uint z = uint(trunc(pos.z)); + vec2 offs0 = vec2(hash_one(z), hash_one(z + 73u)); + vec2 offs1 = vec2(hash_one(z + 1u), hash_one(z + 1u + 73u)); + return mix(textureLod(sampler2D(t_noise, s_noise), pos.xy + offs0, 0).x, textureLod(sampler2D(t_noise, s_noise), pos.xy + offs1, 0).x, fract(pos.z)); +} + +// 3D version of `snoise` +float snoise3(in vec3 x) { + uvec3 p = uvec3(floor(x) + 10000.0); + vec3 f = fract(x); + //f = f * f * (3.0 - 2.0 * f); + return mix( + mix( + mix(hash_fast(p + uvec3(0, 0, 0)), hash_fast(p + uvec3(1, 0, 0)), f.x), + mix(hash_fast(p + uvec3(0, 1, 0)), hash_fast(p + uvec3(1, 1, 0)), f.x), + f.y), + mix( + mix(hash_fast(p + uvec3(0, 0, 1)), hash_fast(p + uvec3(1, 0, 1)), f.x), + mix(hash_fast(p + uvec3(0, 1, 1)), hash_fast(p + uvec3(1, 1, 1)), f.x), + f.y), + f.z); +} + +// 4D noise +float snoise(in vec4 x) { + vec4 p = floor(x); + vec4 f = fract(x); + f = f * f * (3.0 - 2.0 * f); + return mix( + mix( + mix( + mix(hash(p + vec4(0, 0, 0, 0)), hash(p + vec4(1, 0, 0, 0)), f.x), + mix(hash(p + vec4(0, 1, 0, 0)), hash(p + vec4(1, 1, 0, 0)), f.x), + f.y), + mix( + mix(hash(p + vec4(0, 0, 1, 0)), hash(p + vec4(1, 0, 1, 0)), f.x), + mix(hash(p + vec4(0, 1, 1, 0)), hash(p + vec4(1, 1, 1, 0)), f.x), + f.y), + f.z), + mix( + mix( + mix(hash(p + vec4(0, 0, 0, 1)), hash(p + vec4(1, 0, 0, 1)), f.x), + mix(hash(p + vec4(0, 1, 0, 1)), hash(p + vec4(1, 1, 0, 1)), f.x), + f.y), + mix( + mix(hash(p + vec4(0, 0, 1, 1)), hash(p + vec4(1, 0, 1, 1)), f.x), + mix(hash(p + vec4(0, 1, 1, 1)), hash(p + vec4(1, 1, 1, 1)), f.x), + f.y), + f.z), + f.w); +} + +vec3 rand_perm_3(vec3 pos) { + return abs(sin(pos * vec3(1473.7 * pos.z + 472.3, 8891.1 * pos.x + 723.1, 3813.3 * pos.y + 982.5))); +} + +vec4 rand_perm_4(vec4 pos) { + return sin(473.3 * pos * vec4(317.3 * pos.w + 917.7, 1473.7 * pos.z + 472.3, 8891.1 * pos.x + 723.1, 3813.3 * pos.y + 982.5) / pos.yxwz); +} + +vec3 smooth_rand(vec3 pos, float lerp_axis) { + return vec3(snoise(vec4(pos, lerp_axis)), snoise(vec4(pos + 400.0, lerp_axis)), snoise(vec4(pos + 1000.0, lerp_axis))); + vec3 r0 = rand_perm_3(vec3(pos.x, pos.y, pos.z) + floor(lerp_axis)); + vec3 r1 = rand_perm_3(vec3(pos.x, pos.y, pos.z) + floor(lerp_axis + 1.0)); + return r0 + (r1 - r0) * fract(lerp_axis); +} + +// Transform normal distribution to triangle distribution. +float norm2tri(float n) { + // TODO: compare perf with adding two normal noise distributions + bool flip = n > 0.5; + n = flip ? 1.0 - n : n; + n = sqrt(n / 2.0); + n = flip ? 1.0 - n : n; + return n; +} + +// Caustics, ported and modified from https://www.shadertoy.com/view/3tlfR7, originally David Hoskins. +// License Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License: https://creativecommons.org/licenses/by-nc-sa/3.0/legalcode. +// Modifying these three functions mean that you agree to release your changes under the above license, *not* under GPL 3 as with the rest of the project. + +float hashvec2(vec2 p) {return fract(sin(p.x * 1e2 + p.y) * 1e5 + sin(p.y * 1e3) * 1e3 + sin(p.x * 735. + p.y * 11.1) * 1.5e2); } + +float n12(vec2 p) { + vec2 i = floor(p); + vec2 f = fract(p); + f *= f * (3.-2.*f); + return mix( + mix(hashvec2(i+vec2(0.,0.)),hashvec2(i+vec2(1.,0.)),f.x), + mix(hashvec2(i+vec2(0.,1.)),hashvec2(i+vec2(1.,1.)),f.x), + f.y + ); +} + +float caustics(vec2 p, float t) { + vec3 k = vec3(p,t); + float l; + mat3 m = mat3(-2.,-1.,2.,3.,-2.,1.,1.,2.,2.); + float n = n12(p); + k = k*m*.5; + l = length(.5 - fract(k+n)); + k = k*m*.4; + l = min(l, length(.5-fract(k+n))); + k = k*m*.3; + l = min(l, length(.5-fract(k+n))); + return pow(l,3.)*5.5; +} + +#endif diff --git a/assets/voxygen/shaders/include/shadows.glsl b/assets/voxygen/shaders/include/shadows.glsl new file mode 100644 index 0000000..4460c78 --- /dev/null +++ b/assets/voxygen/shaders/include/shadows.glsl @@ -0,0 +1,272 @@ +#ifndef SHADOWS_GLSL +#define SHADOWS_GLSL + +#ifdef HAS_SHADOW_MAPS + +#if (SHADOW_MODE == SHADOW_MODE_MAP) +layout (std140, set = 0, binding = 9) +uniform u_light_shadows { + mat4 shadowMatrices; + mat4 texture_mat; +}; + +// Use with sampler2DShadow +layout(set = 1, binding = 2) +uniform texture2D t_directed_shadow_maps; +layout(set = 1, binding = 3) +uniform samplerShadow s_directed_shadow_maps; +// uniform sampler2DArrayShadow t_directed_shadow_maps; + +// uniform samplerCubeArrayShadow t_shadow_maps; +// uniform samplerCubeArray t_shadow_maps; +// Use with samplerCubeShadow +layout(set = 1, binding = 0) +uniform textureCube t_point_shadow_maps; +layout(set = 1, binding = 1) +uniform samplerShadow s_point_shadow_maps; +// uniform samplerCube t_shadow_maps; + +// uniform sampler2DArray t_directed_shadow_maps; + +float VectorToDepth (vec3 Vec) +{ + // return length(Vec) / screen_res.w; + vec3 AbsVec = abs(Vec); + float LocalZcomp = max(AbsVec.x, max(AbsVec.y, AbsVec.z)); + // float LocalZcomp = length(Vec); + + // Replace f and n with the far and near plane values you used when + // you drew your cube map. + // const float f = 2048.0; + // const float n = 1.0; + + // float NormZComp = (screen_res.w+screen_res.z) / (screen_res.w-screen_res.z) - (2*screen_res.w*screen_res.z)/(screen_res.w-screen_res.z)/LocalZcomp; + // float NormZComp = 1.0 - shadow_proj_factors.y / shadow_proj_factors.x / LocalZcomp; + // -(1 + 2n/(f-n)) - 2(1 + n/(f-n)) * n/z + // -(1 + n/(f-n)) - (1 + n/(f-n)) * n/z + // f/(f-n) - fn/(f-n)/z + float NormZComp = shadow_proj_factors.x - shadow_proj_factors.y / LocalZcomp; + // NormZComp = -1000.0 / (NormZComp + 10000.0); + // return (NormZComp + 1.0) * 0.5; + return NormZComp; + + // float NormZComp = length(LocalZcomp); + // NormZComp = -NormZComp / screen_res.w; + // // return (NormZComp + 1.0) * 0.5; + // return NormZComp; +} + +const vec3 sampleOffsetDirections[20] = vec3[] +( + vec3( 1, 1, 1), vec3( 1, -1, 1), vec3(-1, -1, 1), vec3(-1, 1, 1), + vec3( 1, 1, -1), vec3( 1, -1, -1), vec3(-1, -1, -1), vec3(-1, 1, -1), + vec3( 1, 1, 0), vec3( 1, -1, 0), vec3(-1, -1, 0), vec3(-1, 1, 0), + vec3( 1, 0, 1), vec3(-1, 0, 1), vec3( 1, 0, -1), vec3(-1, 0, -1), + vec3( 0, 1, 1), vec3( 0, -1, 1), vec3( 0, -1, -1), vec3( 0, 1, -1) + // vec3(0, 0, 0) +); + +float ShadowCalculationPoint(uint lightIndex, vec3 fragToLight, vec3 fragNorm, /*float currentDepth*/vec3 fragPos) +{ + if (lightIndex != 0u) { + return 1.0; + }; + + { + float currentDepth = VectorToDepth(fragToLight);// + bias; + + // currentDepth = -currentDepth * 0.5 + 0.5; + + float visibility = textureGrad(samplerCubeShadow(t_point_shadow_maps, s_point_shadow_maps), vec4(fragToLight, currentDepth), vec3(0), vec3(0));// / (screen_res.w/* - screen_res.z*/)/*1.0 -bias*//*-(currentDepth - bias) / screen_res.w*//*-screen_res.w*/); + /* if (visibility == 1.0 || visibility == 0.0) { + return visibility; + } */ + /* if (visibility >= 0.75) { + return 1.0; + } + if (visibility <= 0.25) { + return 0.0; + } */ + /* if (visibility < 1.0) { + return 0.0; + } */ + // return visibility; + /* if (visibility == 1.0) { + return visibility; + } */ + return visibility; + // return visibility == 1.0 ? 1.0 : 0.0; + } + + // float shadow = 0.0; + // float bias = 0.0;//0.003;//-0.003;//-0.005;//0.001;//-1.0;//-0.001;//0.001;//0.003;//-0.05;//-0.1;//0.0;//0.1 + // float viewDistance = length(cam_pos.xyz - fragPos); + // vec3 firstDelta = vec3(0.0);///*min(viewDistance, 5.0) * *//**normalize(cam_pos - fragPos)*/fragNorm * 0.5; + // fragToLight += firstDelta; + // // viewDistance -= length(firstDelta); + // fragPos -= firstDelta; + + // int samples = 20; + // // float lightDistance = length(fragToLight); + // // float diskRadius = 0.00001; + // // float diskRadius = 1.0; + // // float diskRadius = 0.05; + // float diskRadius = 5.0 / screen_res.w;// (1.0 + (/*viewDistance*/viewDistance / screen_res.w)) / 25.0; + // // float diskRadius = lightDistance; + // for(int i = 0; i < samples; ++i) + // { + // float currentDepth = VectorToDepth(fragToLight + sampleOffsetDirections[i] * diskRadius) + bias; + // // float closestDepth = texture(depthMap, fragToLight).r; + // // closestDepth *= far_plane; // Undo mapping [0;1] + // /* if(currentDepth - bias > closestDepth) + // shadow += 1.0;*/ + // float visibility = texture(t_point_shadow_maps, vec4(fragToLight, currentDepth)/*, -2.5*/); + // shadow += visibility; + // // float closestDepth = texture(t_shadow_maps, vec3(fragToLight)/*, -2.5*/).r; + // // shadow += closestDepth > currentDepth ? 1.0 : 0.0; + // } + // shadow /= float(samples); + // // shadow = shadow * shadow * (3.0 - 2.0 * shadow); + + // // use the light to fragment vector to sample from the depth map + // // float bias = 0.0;///*0.05*/0.01;//0.05;// 0.05; + // // float closestDepth = texture(t_shadow_maps, /*vec4*/vec3(fragToLight/*, (lightIndex + 1)*//* * 6*/)/*, 0.0*//*, 0.0*//*, bias*/).r; + // // // // float closestDepth = texture(t_shadow_maps, vec4(fragToLight, lightIndex), bias); + // // // // it is currently in linear range between [0,1]. Re-transform back to original value + // // closestDepth = (closestDepth + 0.0) * screen_res.w; // far plane + // // // // now test for shadows + // // // // float shadow = /*currentDepth*/(screen_res.w - bias) > closestDepth ? 1.0 : 0.0; + // // float shadow = currentDepth - bias < closestDepth ? 1.0 : 0.0; + // // float visibility = textureProj(t_shadow_maps, vec4(fragToLight, lightIndex), bias); + // // float visibility = texture(t_shadow_maps, vec4(fragToLight, lightIndex + 1), -(currentDepth/* + screen_res.z*/) / screen_res.w);// / (screen_res.w/* - screen_res.z*/)/*1.0 -bias*//*-(currentDepth - bias) / screen_res.w*//*-screen_res.w*/); + // // currentDepth += bias; + // // currentDepth = -1000.0 / (currentDepth + 10000.0); + // // currentDepth /= screen_res.w; + // // float currentDepth = VectorToDepth(fragToLight) + bias; + + // // float visibility = texture(t_shadow_maps, vec4(fragToLight, currentDepth));// / (screen_res.w/* - screen_res.z*/)/*1.0 -bias*//*-(currentDepth - bias) / screen_res.w*//*-screen_res.w*/); + // // return visibility == 1.0 ? 1.0 : 0.0; + // return shadow; +} + +float ShadowCalculationDirected(in vec3 fragPos)//in vec4 /*light_pos[2]*/sun_pos, vec3 fragPos) +{ + // Don't try to calculate directed shadows if there are no directed light sources + // Applies, for example, in the char select menu + if (light_shadow_count.z < 1) { return 1.0; } + + float bias = 0.000;//0.0005;//-0.0001;// 0.05 / (2.0 * view_distance.x); + float diskRadius = 0.01; + const vec3 sampleOffsetDirections[20] = vec3[] + ( + vec3( 1, 1, 1), vec3( 1, -1, 1), vec3(-1, -1, 1), vec3(-1, 1, 1), + vec3( 1, 1, -1), vec3( 1, -1, -1), vec3(-1, -1, -1), vec3(-1, 1, -1), + vec3( 1, 1, 0), vec3( 1, -1, 0), vec3(-1, -1, 0), vec3(-1, 1, 0), + vec3( 1, 0, 1), vec3(-1, 0, 1), vec3( 1, 0, -1), vec3(-1, 0, -1), + vec3( 0, 1, 1), vec3( 0, -1, 1), vec3( 0, -1, -1), vec3( 0, 1, -1) + // vec3(0, 0, 0) + ); + /* if (lightIndex >= light_shadow_count.z) { + return 1.0; + } */ + // vec3 fragPos = sun_pos.xyz;// / sun_pos.w;//light_pos[lightIndex].xyz; + // sun_pos.z += sun_pos.w * bias; + vec4 sun_pos = texture_mat/*shadowMatrices*/ * vec4(fragPos, 1.0); + // sun_pos.xy = 0.5 * sun_pos.w + sun_pos.xy * 0.5; + // sun_pos.xy = sun_pos.ww - sun_pos.xy; + // sun_pos.xyz /= abs(sun_pos.w); + // sun_pos.w = sign(sun_pos.w); + // sun_pos.xy = (sun_pos.xy + 1.0) * 0.5; + // vec4 orig_pos = warpViewMat * lightViewMat * vec4(fragPos, 1.0); + // + // vec4 shadow_pos; + // shadow_pos.xyz = (warpProjMat * orig_pos).xyz: + // shadow_pos.w = orig_pos.y; + // + // sun_pos.xy = 0.5 * (shadow_pos.xy + shadow_pos.w) = 0.5 * (shadow_pos.xy + orig_pos.yy); + // sun_pos.z = shadow_pos.z; + // + // sun_pos.w = sign(shadow_pos.w) = sign(orig_pos.y); + // sun_pos.xyz = sun_pos.xyz / shadow_pos.w = vec3(0.5 * shadow_pos.xy / orig_pos.yy + 0.5, shadow_pos.z / orig_pos.y) + // = vec3(0.5 * (2.0 * warp_pos.xy / orig_pos.yy - (max_warp_pos + min_warp_pos).xy) / (max_warp_pos - min_warp_pos).xy + 0.5, + // -(warp_pos.z / orig_pos.y - min_warp_pos.z) / (max_warp_pos - min_warp_pos).z ) + // = vec3((warp_pos.x / orig_pos.y - min_warp_pos.x) / (max_warp_pos - min_warp_pos).x, + // (warp_pos.y / orig_pos.y - min_warp_pos.y) / (max_warp_pos - min_warp_pos).y, + // -(warp_pos.z / orig_pos.y - min_warp_pos.z) / (max_warp_pos - min_warp_pos).z ) + // = vec3((near * orig_pos.x / orig_pos.y - min_warp_pos.x) / (max_warp_pos - min_warp_pos).x, + // (((far+near) - 2.0 * near * far / orig_pos.y)/(far-near) - min_warp_pos.y) / (max_warp_pos - min_warp_pos).y, + // -(near * orig_pos.z / orig_pos.y - min_warp_pos.z) / (max_warp_pos - min_warp_pos).z ) + // = vec3((near * orig_pos.x / orig_pos.y - min_warp_pos.x) / (max_warp_pos - min_warp_pos).x, + // (2.0 * (1.0 - far / orig_pos.y)*near/(far-near) + 1.0 - min_warp_pos.y) / (max_warp_pos - min_warp_pos).y, + // -(near * orig_pos.z / orig_pos.y - min_warp_pos.z) / (max_warp_pos - min_warp_pos).z ) + // = vec3((near * orig_pos.x / orig_pos.y - min_warp_pos.x) / (max_warp_pos - min_warp_pos).x, + // (2.0 * (1.0 - far / orig_pos.y)*near/(far-near) + 1.0 - 0.0) / (1.0 - 0.0), + // -(near * orig_pos.z / orig_pos.y - min_warp_pos.z) / (max_warp_pos - min_warp_pos).z ) + // = vec3((near * orig_pos.x / orig_pos.y - min_warp_pos.x) / (max_warp_pos - min_warp_pos).x, + // 2.0 * (1.0 - far / orig_pos.y)*near/(far-near) + 1.0, + // -(near * orig_pos.z / orig_pos.y - min_warp_pos.z) / (max_warp_pos - min_warp_pos).z ) + // + // orig_pos.y = n: warp_pos.y = 2*(1-f/n)*n/(f-n) + 1 = 2*(n-f)/(f-n) + 1 = 2 * -1 + 1 = -1, sun_pos.y = (-1 - -1) / 2 = 0 + // orig_pos.y = f: warp_pos.y = 2*(1-f/f)*n/(f-n) + 1 = 2*(1-1)*n/(f-n) + 1 = 2 * 0 * n/(f-n) + 1 = 1, sun_pos.y = (1 - -1) / 2 = 1 + // + float visibility = textureProj(sampler2DShadow(t_directed_shadow_maps, s_directed_shadow_maps), sun_pos); + /* float visibilityLeft = textureProj(t_directed_shadow_maps, sun_shadow.texture_mat * vec4(fragPos + vec3(0.0, -diskRadius, 0.0), 1.0)); + float visibilityRight = textureProj(t_directed_shadow_maps, sun_shadow.texture_mat * vec4(fragPos + vec3(0.0, diskRadius, 0.0), 1.0)); */ + // float nearVisibility = textureProj(t_directed_shadow_maps + vec3(0.001, sun_pos)); + // float visibility = textureProj(t_directed_shadow_maps, vec4(fragPos.xy, /*lightIndex, */fragPos.z + bias, sun_pos.w)); + // return visibility; + // return min(visibility, min(visibilityLeft, visibilityRight)); + // return mix(visibility, 0.0, sun_pos.z < -1.0); + // return mix(mix(0.0, 1.0, visibility == 1.0), 1.0, sign(sun_pos.w) * sun_pos.z > /*1.0*/abs(sun_pos.w)); + // return (visibility - 0.5) * (visibility - 0.5) * 2.0 * sign(visibility - 0.5) + 0.5;// visibility > 0.75 ? visibility : 0.0;// visibility > 0.9 ? 1.0 : 0.0; + return visibility; + // return visibility == 1.0 ? 1.0 : 0.0; + // return abs(fragPos.y - round(fragPos.y)) <= 0.1 || abs(fragPos.x - round(fragPos.x)) <= 0.1 ? ( visibility == 1.0 ? 1.0 : 0.0) : visibility; + /* if (visibility == 1.0) { + return 1.0; + } */ + // return visibility; + /* if (fragPos.z > 1.0) { + return 1.0; + } */ + // vec3 snapToZ = abs(fragPos - vec3(ivec3(fragPos))); // fract(abs(fragPos)); + // // snapToZ = min(snapToZ, 1.0 - snapToZ); + // const float EDGE_DIST = 0.01; + // snapToZ = mix(vec3(0.0), vec3(1.0), lessThanEqual(snapToZ, vec3(EDGE_DIST))); + // // float snapToZDist = dot(snapToZ, snapToZ); + // if (visibility <= 0.75 && /*fract(abs(fragPos.xy)), vec2(0.1)))*/ /*snapToZDist <= 0.25*//*all(lessThan(snapToZ, vec3(0.1)))(*/ + // snapToZ.x + snapToZ.y + snapToZ.z >= 2.0) { + // return 0.0; + // } + // int samples = 20; + // float shadow = 0.0; + // // float bias = 0.0001; + // // float viewDistance = length(cam_pos.xyz - fragPos); + // // float diskRadius = 0.2 * (1.0 + (viewDistance / screen_res.w)) / 25.0; + // // float diskRadius = 0.0003;//0.005;// / (2.0 * view_distance.x);//(1.0 + (viewDistance / screen_res.w)) / 25.0; + // fragPos = sun_pos.xyz / sun_pos.w; + // for(int i = 0; i < samples; ++i) + // { + // vec3 currentDepth = fragPos + vec3(sampleOffsetDirections[i].xyz) * diskRadius + bias; + // visibility = texture(t_directed_shadow_maps, currentDepth);//vec4(currentDepth.xy, lightIndex, currentDepth.z)/*, -2.5*/); + // // visibility = texture(t_directed_shadow_maps, vec4(currentDepth.xy, lightIndex, currentDepth.z)/*, -2.5*/); + // shadow += visibility; + // // mix(visibility, 1.0, visibility >= 0.5); + // } + // shadow /= float(samples); + // return shadow; +} + #elif (SHADOW_MODE == SHADOW_MODE_NONE || SHADOW_MODE == SHADOW_MODE_CHEAP) +float ShadowCalculationPoint(uint lightIndex, vec3 fragToLight, vec3 fragNorm, /*float currentDepth*/vec3 fragPos) +{ + return 1.0; +} + #endif +#else +float ShadowCalculationPoint(uint lightIndex, vec3 fragToLight, vec3 fragNorm, /*float currentDepth*/vec3 fragPos) +{ + return 1.0; +} +#endif + +#endif diff --git a/assets/voxygen/shaders/include/sky.glsl b/assets/voxygen/shaders/include/sky.glsl new file mode 100644 index 0000000..b3348c1 --- /dev/null +++ b/assets/voxygen/shaders/include/sky.glsl @@ -0,0 +1,827 @@ +#ifndef SKY_GLSL +#define SKY_GLSL + +#include +#include +#include +#include +#include + +// Information about an approximately directional light, like the sun or moon. +struct DirectionalLight { + // vec3 dir; + float shadow; + // Fully blocks all light, including ambience + float block; + // vec3 color; + // float brightness; +}; + +const float PI = 3.141592653; + +const vec3 SKY_DAWN_TOP = vec3(0.10, 0.1, 0.10); +const vec3 SKY_DAWN_MID = vec3(1.2, 0.3, 0.2); +const vec3 SKY_DAWN_BOT = vec3(0.0, 0.1, 0.23); +const vec3 DAWN_LIGHT = vec3(5.0, 2.0, 1.15); +const vec3 SUN_HALO_DAWN = vec3(8.2, 3.0, 2.1); + +const vec3 SKY_DAY_TOP = vec3(0.1, 0.5, 0.9); +const vec3 SKY_DAY_MID = vec3(0.18, 0.28, 0.6); +const vec3 SKY_DAY_BOT = vec3(0.1, 0.2, 0.3); +const vec3 DAY_LIGHT = vec3(3.8, 3.0, 1.8); +const vec3 SUN_HALO_DAY = vec3(0.25, 0.25, 0.001); + +const vec3 SKY_DUSK_TOP = vec3(1.06, 0.1, 0.20); +const vec3 SKY_DUSK_MID = vec3(2.5, 0.3, 0.1); +const vec3 SKY_DUSK_BOT = vec3(0.0, 0.1, 0.23); +const vec3 DUSK_LIGHT = vec3(8.0, 1.5, 0.15); +const vec3 SUN_HALO_DUSK = vec3(10.2, 3.0, 0.1); + +const vec3 SKY_NIGHT_TOP = vec3(0.001, 0.001, 0.0025); +const vec3 SKY_NIGHT_MID = vec3(0.001, 0.005, 0.02); +const vec3 SKY_NIGHT_BOT = vec3(0.002, 0.004, 0.004); +const vec3 NIGHT_LIGHT = vec3(5.0, 0.75, 0.2); +// const vec3 NIGHT_LIGHT = vec3(0.0, 0.0, 0.0); + +// Linear RGB, scattering coefficients for atmosphere at roughly R, G, B wavelengths. +// +// See https://en.wikipedia.org/wiki/Diffuse_sky_radiation +const vec3 MU_SCATTER = vec3(0.05, 0.10, 0.23); + +const float SUN_COLOR_FACTOR = 5.0;//6.0;// * 1.5;//1.8; +const float MOON_COLOR_FACTOR = 5.0;//6.0;// * 1.5;//1.8; + +const float UNDERWATER_MIST_DIST = 100.0; + +const float PERSISTENT_AMBIANCE = 1.0 / 32.0;// 1.0 / 80; // 1.0 / 512; // 0.00125 // 0.1;// 0.025; // 0.1; + +// Glow from static light sources +// Allowed to be > 1 due to HDR +const vec3 GLOW_COLOR = vec3(0.89, 0.95, 0.52); + +// Calculate glow from static light sources, + some noise for flickering. +// TODO: Optionally disable the flickering for performance? +vec3 glow_light(vec3 pos) { + #if (SHADOW_MODE <= SHADOW_MODE_NONE) + return GLOW_COLOR; + #else + return GLOW_COLOR * (1.0 + (noise_3d(vec3(pos.xy * 0.005, tick.x * 0.5)) - 0.5) * 0.5); + #endif +} + +//vec3 get_sun_dir(float time_of_day) { +// const float TIME_FACTOR = (PI * 2.0) / (3600.0 * 24.0); +// +// float sun_angle_rad = time_of_day * TIME_FACTOR; +// // return vec3(sin(sun_angle_rad), 0.0, cos(sun_angle_rad)); +// return vec3(sin(sun_angle_rad), 0.0, cos(sun_angle_rad)); +//} +// +//vec3 get_moon_dir(float time_of_day) { +// const float TIME_FACTOR = (PI * 2.0) / (3600.0 * 24.0); +// +// float moon_angle_rad = time_of_day * TIME_FACTOR; +// // -cos((60+60*4)/360*2*pi)-0.5 = 0 +// // -cos((60+60*5)/360*2*pi)-0.5 = -0.5 +// // -cos((60+60*6)/360*2*pi)-0.5 = 0 +// // +// // i.e. moon out from (60*5)/360*24 = 20:00 to (60*7/360*24) = 28:00 = 04:00. +// // +// // Then sun out from 04:00 to 20:00. +// return normalize(-vec3(sin(moon_angle_rad), 0.0, cos(moon_angle_rad) - 0.5)); +//} + +float CLOUD_AVG_ALT = view_distance.z + (view_distance.w - view_distance.z) * 1.25; + +const float wind_speed = 0.25; +vec2 wind_offset = vec2(time_of_day.y * wind_speed * (3600.0 * 24.0)); + +float cloud_scale = view_distance.z / 150.0; + +layout(set = 0, binding = 5) uniform texture2D t_alt; +layout(set = 0, binding = 6) uniform sampler s_alt; + +// Transforms coordinate in the range 0..WORLD_SIZE to 0..1 +vec2 wpos_to_uv(vec2 wpos) { + // Want: (pixel + 0.5) / W + vec2 texSize = textureSize(sampler2D(t_alt, s_alt), 0); + vec2 uv_pos = (wpos + 16) / (32.0 * texSize); + return vec2(uv_pos.x, /*1.0 - */uv_pos.y); +} + +// Weather texture +layout(set = 0, binding = 12) uniform texture2D t_weather; +layout(set = 0, binding = 13) uniform sampler s_weather; + +vec4 sample_weather(vec2 wpos) { + return textureLod(sampler2D(t_weather, s_weather), wpos_to_uv(wpos), 0); +} + +float cloud_tendency_at(vec2 wpos) { + return sample_weather(wpos).r; +} + +float rain_density_at(vec2 wpos) { + return sample_weather(wpos).g; +} + +float cloud_shadow(vec3 pos, vec3 light_dir) { + #if (CLOUD_MODE <= CLOUD_MODE_MINIMAL) + return 1.0; + #else + vec2 xy_offset = light_dir.xy * ((CLOUD_AVG_ALT - pos.z) / -light_dir.z); + + // Fade out shadow if the sun angle is too steep (simulates a widening penumbra with distance) + const vec2 FADE_RANGE = vec2(1500, 10000); + float fade = 1.0 - clamp((length(xy_offset) - FADE_RANGE.x) / (FADE_RANGE.y - FADE_RANGE.x), 0, 1); + float cloud = cloud_tendency_at(pos.xy + focus_off.xy - xy_offset); + + return clamp(1 - fade * cloud * 16.0, 0, 1); + #endif +} + +float magnetosphere = sin(time_of_day.y); +#if (CLOUD_MODE <= CLOUD_MODE_LOW) + const vec3 magnetosphere_tint = vec3(1); +#else + float _magnetosphere2 = pow(magnetosphere, 2) * 2 - 1; + float _magnetosphere3 = pow(_magnetosphere2, 2) * 2 - 1; + vec3 _magnetosphere_change = vec3(1.0) + vec3( + (magnetosphere + 1.0) * 2.0, + (-_magnetosphere2 + 1.0) * 2.0, + (-_magnetosphere3 + 1.0) * 1.0 + ) * 0.4; + vec3 magnetosphere_tint = _magnetosphere_change / length(_magnetosphere_change); +#endif +#if (CLOUD_MODE > CLOUD_MODE_NONE) + float emission_strength = clamp((magnetosphere - 0.3) * 1.3, 0, 1) * max(-moon_dir.z, 0); + #if (CLOUD_MODE >= CLOUD_MODE_MEDIUM) + float emission_br = abs(pow(fract(time_of_day.y * 0.5) * 2 - 1, 2)); + #else + float emission_br = 0.5; + #endif +#endif + +float get_sun_brightness(/*vec3 sun_dir*/) { + return max(-sun_dir.z + 0.5, 0.0); +} + +float get_moon_brightness(/*vec3 moon_dir*/) { + return max(-moon_dir.z + 0.6, 0.0) * 0.1; +} + +vec3 get_sun_color(/*vec3 sun_dir*/) { + vec3 light = (sun_dir.x > 0) ? DUSK_LIGHT : DAWN_LIGHT; + + return mix( + mix( + light * magnetosphere_tint, + NIGHT_LIGHT, + max(sun_dir.z, 0) + ), + DAY_LIGHT, + max(-sun_dir.z, 0) + ); +} + +// Average sky colour (i.e: perfectly scattered light from the sky) +vec3 get_sky_color(/*vec3 sun_dir*/) { + return mix( + mix( + (SKY_DUSK_TOP + SKY_DUSK_MID) / 2 * magnetosphere_tint, + (SKY_NIGHT_TOP + SKY_NIGHT_MID) / 2, + max(sun_dir.z, 0) + ), + (SKY_DAY_TOP + SKY_DAY_MID) / 2, + max(-sun_dir.z, 0) + ); +} + +vec3 get_moon_color(/*vec3 moon_dir*/) { + return vec3(0.5, 0.5, 1.6); +} + +DirectionalLight get_sun_info(vec4 _dir, float shade_frac/*, vec4 light_pos[2]*/, /*vec4 sun_pos*/vec3 f_pos) { + float shadow = shade_frac; + float block = 1.0; +#ifdef HAS_SHADOW_MAPS +#if (SHADOW_MODE == SHADOW_MODE_MAP) + if (sun_dir.z < /*0.6*/0.0) { + /* ShadowLocals sun_shadow = shadowMats[0]; + vec4 sun_pos = sun_shadow.texture_mat * vec4(f_pos, 1.0); */ +// #if (SHADOW_MODE == SHADOW_MODE_MAP) +// // for (uint i = 0u; i < light_shadow_count.z; ++i) { +// // light_pos[i] = /*vec3(*/shadowMats[i].texture_mat * vec4(f_pos, 1.0)/*)*/; +// // } +// #elif (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_NONE) +// vec4 sun_pos = vec4(0.0); +// #endif + shadow = min(shadow, ShadowCalculationDirected(/*sun_pos, *//*0u*/f_pos)); + } +#endif +#endif + return DirectionalLight(/*dir, */shadow, block/*, get_sun_color(dir), get_sun_brightness(dir)*/); +} + +DirectionalLight get_moon_info(vec4 _dir, float shade_frac/*, vec4 light_pos[2]*/) { + float shadow = shade_frac; + float block = 1.0; +// #ifdef HAS_SHADOW_MAPS +// shadow = min(shade_frac, ShadowCalculationDirected(light_pos, 1u)); +// #endif + return DirectionalLight(/*dir, */shadow, block/*, get_moon_color(dir), get_moon_brightness(dir)*/); +} + +const float LIGHTNING_HEIGHT = 25.0; +const float MAX_LIGHTNING_PERIOD = 5.0; + +float lightning_intensity() { + float time_since_lightning = time_since(last_lightning.w); + return + // Strength + 1000000 + // Flash + * max(0.0, 1.0 - time_since_lightning * 1.0) + // Reverb + * max(sin(time_of_day.x * 0.4), 0.0); +} + +vec3 lightning_at(vec3 wpos) { + float time_since_lightning = time_since(last_lightning.w); + if (time_since_lightning < MAX_LIGHTNING_PERIOD) { + vec3 diff = wpos + focus_off.xyz - (last_lightning.xyz + vec3(0, 0, LIGHTNING_HEIGHT)); + float dist = length(diff); + return vec3(0.5, 0.8, 1.0) + * lightning_intensity() + // Attenuation + / pow(50.0 + dist, 2); + } else { + return vec3(0.0); + } +} + +// // Calculates extra emission and reflectance (due to sunlight / moonlight). +// // +// // reflectence = k_a * i_a + i_a,persistent +// // emittence = Σ { m ∈ lights } i_m * shadow_m * get_light_reflected(light_m) +// // +// // Note that any shadowing to be done that would block the sun and moon, aside from heightmap shadowing (that will be +// // implemented sooon), should be implicitly provided via k_a, k_d, and k_s. For instance, shadowing via ambient occlusion. +// // +// // Also note that the emitted light calculation is kind of lame... we probabbly need something a bit nicer if we ever want to do +// // anything interesting here. +// // void get_sun_diffuse(vec3 norm, float time_of_day, out vec3 light, out vec3 diffuse_light, out vec3 ambient_light, float diffusion +// void get_sun_diffuse(vec3 norm, float time_of_day, vec3 dir, vec3 k_a, vec3 k_d, vec3 k_s, float alpha, out vec3 emitted_light, out vec3 reflected_light) { +// const float SUN_AMBIANCE = 0.1 / 2.0;// 0.1 / 3.0; +// +// vec3 sun_dir = get_sun_dir(time_of_day); +// vec3 moon_dir = get_moon_dir(time_of_day); +// +// float sun_light = get_sun_brightness(sun_dir); +// float moon_light = get_moon_brightness(moon_dir); +// +// vec3 sun_color = get_sun_color(sun_dir); +// vec3 moon_color = get_moon_color(moon_dir); +// +// vec3 sun_chroma = sun_color * sun_light; +// vec3 moon_chroma = moon_color * moon_light; +// +// /* float NLsun = max(dot(-norm, sun_dir), 0); +// float NLmoon = max(dot(-norm, moon_dir), 0); +// vec3 E = -dir; */ +// +// // Globbal illumination "estimate" used to light the faces of voxels which are parallel to the sun or moon (which is a very common occurrence). +// // Will be attenuated by k_d, which is assumed to carry any additional ambient occlusion information (e.g. about shadowing). +// float ambient_sides = clamp(mix(0.5, 0.0, abs(dot(-norm, sun_dir)) * mix(0.0, 1.0, abs(sun_dir.z) * 10000.0) * 10000.0), 0.0, 0.5); +// // float ambient_sides = 0.5 - 0.5 * abs(dot(-norm, sun_dir)); +// +// emitted_light = k_a * (ambient_sides + vec3(SUN_AMBIANCE * sun_light + moon_light)) + PERSISTENT_AMBIANCE; +// // TODO: Add shadows. +// reflected_light = +// sun_chroma * light_reflection_factor(norm, dir, sun_dir, k_d, k_s, alpha) + +// moon_chroma * 1.0 * /*4.0 * */light_reflection_factor(norm, dir, moon_dir, k_d, k_s, alpha); +// +// /* light = sun_chroma + moon_chroma + PERSISTENT_AMBIANCE; +// diffuse_light = +// sun_chroma * mix(1.0, max(dot(-norm, sun_dir) * 0.5 + 0.5, 0.0), diffusion) + +// moon_chroma * mix(1.0, pow(dot(-norm, moon_dir) * 2.0, 2.0), diffusion) + +// PERSISTENT_AMBIANCE; +// ambient_light = vec3(SUN_AMBIANCE * sun_light + moon_light); */ +// } + +// Returns computed maximum intensity. +// +// wpos is the position of this fragment. +// mu is the attenuation coefficient for any substance on a horizontal plane. +// cam_attenuation is the total light attenuation due to the substance for beams between the point and the camera. +// surface_alt is the altitude of the attenuating surface. +float get_sun_diffuse2(DirectionalLight sun_info, DirectionalLight moon_info, vec3 norm, vec3 dir, vec3 wpos, vec3 mu, vec3 cam_attenuation, float surface_alt, vec3 k_a, vec3 k_d, vec3 k_s, float alpha, vec3 voxel_norm, float voxel_lighting, out vec3 emitted_light, out vec3 reflected_light) { + const vec3 SUN_AMBIANCE = MU_SCATTER; + #ifdef EXPERIMENTAL_PHOTOREALISTIC + const vec3 MOON_AMBIANCE = MU_SCATTER; + #else + // Boost ambiance, because we don't properly compensate for pupil dilation (which should occur *before* HDR, + // not in the end user's eye). Also, real nights are too dark to be fun. + const vec3 MOON_AMBIANCE = vec3(0.15, 0.25, 0.23) * 5; + #endif + + /* vec3 sun_dir = sun_info.dir; + vec3 moon_dir = moon_info.dir; */ + vec3 sun_dir = sun_dir.xyz; + vec3 moon_dir = moon_dir.xyz; + + float sun_light = get_sun_brightness(/*sun_dir*/) * sun_info.block;//sun_info.brightness;; + float moon_light = get_moon_brightness(/*moon_dir*/) * moon_info.block * ambiance;//moon_info.brightness; + + vec3 sun_color = get_sun_color(/*sun_dir*/) * SUN_COLOR_FACTOR;//sun_info.color * SUN_COLOR_FACTOR; + vec3 moon_color = get_moon_color(/*moon_dir*/) * MOON_COLOR_FACTOR;//moon_info.color; + + // If the sun is facing the wrong way, we currently just want zero light, hence default point is wpos. + vec3 sun_attenuation = compute_attenuation(wpos, -sun_dir, mu, surface_alt, wpos); + vec3 moon_attenuation = compute_attenuation(wpos, -moon_dir, mu, surface_alt, wpos); + + vec3 sun_chroma = sun_color * sun_light * cam_attenuation * sun_attenuation; + vec3 moon_chroma = moon_color * moon_light * cam_attenuation * moon_attenuation; + +// #ifdef HAS_SHADOW_MAPS +// float sun_shadow = ShadowCalculationDirected(light_pos, 0u); +// float moon_shadow = ShadowCalculationDirected(light_pos, 1u); +// #else +// float sun_shadow = 1.0; +// float moon_shadow = 1.0; +// #endif + float sun_shadow = sun_info.shadow * cloud_shadow(wpos, sun_dir); + float moon_shadow = moon_info.shadow * cloud_shadow(wpos, moon_dir); + + // https://en.m.wikipedia.org/wiki/Diffuse_sky_radiation + // + // HdRd radiation should come in at angle normal to us. + // const float H_d = 0.23; + // + // Let β be the angle from horizontal + // (for objects exposed to the sky, where positive when sloping towards south and negative when sloping towards north): + // + // sin β = (north ⋅ norm) / |north||norm| + // = dot(vec3(0, 1, 0), norm) + // + // cos β = sqrt(1.0 - dot(vec3(0, 1, 0), norm)) + // + // Let h be the hour angle (180/0.0 at midnight, 90/1.0 at dawn, 0/0.0 at noon, -90/-1.0 at dusk, -180 at midnight/0.0): + // cos h = (midnight ⋅ -light_dir) / |midnight||-light_dir| + // = (noon ⋅ light_dir) / |noon||light_dir| + // = dot(vec3(0, 0, 1), light_dir) + // + // Let φ be the latitude at this point. 0 at equator, -90 at south pole / 90 at north pole. + // + // Let δ be the solar declination (angular distance of the sun's rays north [or south[] + // of the equator), i.e. the angle made by the line joining the centers of the sun and Earth with its projection on the + // equatorial plane. Caused by axial tilt, and 0 at equinoxes. Normally varies between -23.45 and 23.45 degrees. + // + // Let α (the solar altitude / altitud3 angle) be the vertical angle between the projection of the sun's rays on the + // horizontal plane and the direction of the sun's rays (passing through a point). + // + // Let Θ_z be the vertical angle between sun's rays and a line perpendicular to the horizontal plane through a point, + // i.e. + // + // Θ_z = (π/2) - α + // + // i.e. cos Θ_z = sin α and + // cos α = sin Θ_z + // + // Let γ_s be the horizontal angle measured from north to the horizontal projection of the sun's rays (positive when + // measured westwise). + // + // cos Θ_z = cos φ cos h cos δ + sin φ sin δ + // cos γ_s = sec α (cos φ sin δ - cos δ sin φ cos h) + // = (1 / √(1 - cos² Θ_z)) (cos φ sin δ - cos δ sin φ cos h) + // sin γ_s = sec α cos δ sin h + // = (1 / cos α) cos δ sin h + // = (1 / sin Θ_z) cos δ sin h + // = (1 / √(1 - cos² Θ_z)) cos δ sin h + // + // R_b = (sin(δ)sin(φ - β) + cos(δ)cos(h)cos(φ - β))/(sin(δ)sin(φ) + cos(δ)cos(h)cos(φ)) + // + // Assuming we are on the equator (i.e. φ = 0), and there is no axial tilt or we are at an equinox (i.e. δ = 0): + // + // cos Θ_z = 1 * cos h * 1 + 0 * 0 = cos h + // cos γ_s = (1 / √(1 - cos² h)) (1 * 0 - 1 * 0 * cos h) + // = (1 / √(1 - cos² h)) * 0 + // = 0 + // sin γ_s = (1 / √(1 - cos² h)) * sin h + // = sin h / sin h + // = 1 + // + // R_b = (0 * sin(0 - β) + 1 * cos(h) * cos(0 - β))/(0 * 0 + 1 * cos(h) * 1) + // = (cos(h)cos(-β)) / cos(H) + // = cos(-β), the angle from horizontal. + // + // NOTE: cos(-β) = cos(β). + // float cos_sun = dot(norm, /*-sun_dir*/vec3(0, 0, 1)); + // float cos_moon = dot(norm, -moon_dir); + // + // Let ζ = diffuse reflectance of surrounding ground for solar radiation, then we have + // + // R_d = (1 + cos β) / 2 + // R_r = ζ (1 - cos β) / 2 + // + // H_t = H_b R_b + H_d R_d + (H_b + H_d) R_r + float sin_beta = dot(vec3(0, 1, 0), norm); + float R_b = sqrt(max(0.0, 1.0 - sin_beta * sin_beta)); + // Rough estimate of diffuse reflectance of rest of ground. + // NOTE: zeta should be close to 0.7 with snow cover, 0.2 normally? Maybe? + vec3 zeta = max(vec3(0.2), k_d * (1.0 - k_s));//vec3(0.2);// k_d * (1.0 - k_s); + float R_d = (1 + R_b) * 0.5; + vec3 R_r = zeta * (1.0 - R_b) * 0.5; + // + // We can break this down into: + // H_t_b = H_b * (R_b + R_r) = light_intensity * (R_b + R_r) + // H_t_r = H_d * (R_d + R_r) = light_intensity * (R_d + R_r) + vec3 R_t_b = R_b + R_r; + vec3 R_t_r = R_d + R_r; + + // vec3 half_vec = normalize(-norm + dir); + #ifdef EXPERIMENTAL_PHOTOREALISTIC + vec3 lrf = light_reflection_factor(norm, dir, -norm, k_d, vec3(0.0), alpha, voxel_norm, voxel_lighting); + #else + // In practice, for gameplay purposes, we often want extra light at earlier and later times, so we use a + // non-physical LRF to boost light during dawn and dusk. + float lrf = pow(dot(norm, vec3(0, 0, 1)) + 1, 2) * 0.25; + #endif + vec3 light_frac = R_t_b * (sun_chroma * SUN_AMBIANCE + moon_chroma * MOON_AMBIANCE) * lrf; + // vec3 light_frac = /*vec3(1.0)*//*H_d * */ + // SUN_AMBIANCE * /*sun_light*/sun_chroma * light_reflection_factor(norm, dir, /*vec3(0, 0, -1.0)*/-norm, vec3((1.0 + cos_sun) * 0.5), vec3(k_s * (1.0 - cos_sun) * 0.5), alpha) + + // MOON_AMBIANCE * /*sun_light*/moon_chroma * light_reflection_factor(norm, dir, /*vec3(0, 0, -1.0)*/-norm, vec3((1.0 + cos_moon) * 0.5), vec3(k_s * (1.0 - cos_moon) * 0.5), alpha); + /* float NLsun = max(dot(-norm, sun_dir), 0); + float NLmoon = max(dot(-norm, moon_dir), 0); + vec3 E = -dir; */ + + // Globbal illumination "estimate" used to light the faces of voxels which are parallel to the sun or moon (which is a very common occurrence). + // Will be attenuated by k_d, which is assumed to carry any additional ambient occlusion information (e.g. about shadowing). + // float ambient_sides = 0.0; + // float ambient_sides = 0.5 - 0.5 * min(abs(dot(-norm, sun_dir)), abs(dot(-norm, moon_dir))); + // float ambient_sides = clamp(mix(0.5, 0.0, abs(dot(-norm, sun_dir)) * mix(0.0, 1.0, abs(sun_dir.z) * 10000.0) * 10000.0), 0.0, 0.5); + // float ambient_sides = clamp(mix(0.5, 0.0, abs(dot(-norm, sun_dir)) * mix(0.0, 1.0, abs(sun_dir.z) * 10000.0) * 10000.0), 0.0, 0.5); + emitted_light = light_frac;// + k_a * PERSISTENT_AMBIANCE * ambiance * 0.1 * MU_SCATTER; + // emitted_light = k_a * light_frac * (/*ambient_sides + */SUN_AMBIANCE * /*sun_light*/sun_chroma + /*vec3(moon_light)*/MOON_AMBIANCE * moon_chroma) + PERSISTENT_AMBIANCE; + + vec3 emission = vec3(0); + #if (CLOUD_MODE > CLOUD_MODE_NONE) + if (emission_strength > 0.0) { + emission = mix(vec3(0, 0.5, 1), vec3(1, 0, 0), emission_br) * emission_strength * 0.025; + } + #endif + + #ifdef FLASHING_LIGHTS_ENABLED + vec3 lightning = lightning_at(wpos); + #else + vec3 lightning = vec3(0); + #endif + + reflected_light = R_t_r * ( + (1.0 - SUN_AMBIANCE) * sun_chroma * sun_shadow * (light_reflection_factor(norm, dir, sun_dir, k_d, k_s, alpha, voxel_norm, voxel_lighting) /*+ + light_reflection_factor(norm, dir, normalize(sun_dir + vec3(0.0, 0.1, 0.0)), k_d, k_s, alpha) + + light_reflection_factor(norm, dir, normalize(sun_dir - vec3(0.0, 0.1, 0.0)), k_d, k_s, alpha)*/) + + (1.0 - MOON_AMBIANCE) * moon_chroma * moon_shadow * 1.0 * /*4.0 * */light_reflection_factor(norm, dir, moon_dir, k_d, k_s, alpha, voxel_norm, voxel_lighting) + + emission + ) + lightning; + + /* light = sun_chroma + moon_chroma + PERSISTENT_AMBIANCE; + diffuse_light = + sun_chroma * mix(1.0, max(dot(-norm, sun_dir) * 0.5 + 0.5, 0.0), diffusion) + + moon_chroma * mix(1.0, pow(dot(-norm, moon_dir) * 2.0, 2.0), diffusion) + + PERSISTENT_AMBIANCE; + ambient_light = vec3(SUN_AMBIANCE * sun_light + moon_light); */ + return rel_luminance(emitted_light + reflected_light);//rel_luminance(emitted_light + reflected_light);//sun_chroma + moon_chroma + PERSISTENT_AMBIANCE; +} + +// This has been extracted into a function to allow quick exit when detecting a star. +float is_star_at(vec3 dir) { + float star_scale = 80.0; + + // Star positions + vec3 pos = (floor(dir * star_scale) - 0.5) / star_scale; + + // Noisy offsets + pos += (3.0 / star_scale) * (1.0 + hash(pos.yxzz) * 0.85); + + // Find distance to fragment + float dist = length(pos - dir); + + // Star threshold + //if (dist < 0.0015) { + // return 2.5; + //} + + //return 0.0; + + #if (CLOUD_MODE == CLOUD_MODE_NONE) + const float power = 5.0; + #else + const float power = 50.0; + #endif + return power * max(sun_dir.z, 0.1) / (1.0 + pow(dist * 750, 8)); +} + +vec3 get_sky_light(vec3 dir, bool with_stars) { + // Add white dots for stars. Note these flicker and jump due to FXAA + float star = 0.0; + if (with_stars) { + vec3 star_dir = sun_dir.xyz * dir.z + cross(sun_dir.xyz, vec3(0, 1, 0)) * dir.x + vec3(0, 1, 0) * dir.y; + star = is_star_at(star_dir); + } + + vec3 sky_twilight_top = vec3(0.0, 0.0, 0.0); + vec3 sky_twilight_mid = vec3(0.0, 0.0, 0.0); + vec3 sky_twilight_bot = vec3(0.0, 0.0, 0.0); + if (sun_dir.x > 0) { + sky_twilight_top = SKY_DUSK_TOP; + sky_twilight_mid = SKY_DUSK_MID; + sky_twilight_bot = SKY_DUSK_BOT; + } else { + sky_twilight_top = SKY_DAWN_TOP; + sky_twilight_mid = SKY_DAWN_MID; + sky_twilight_bot = SKY_DAWN_BOT; + } + + vec3 sky_top = mix( + mix( + sky_twilight_top * magnetosphere_tint, + SKY_NIGHT_TOP, + pow(max(sun_dir.z, 0.0), 0.2) + ) + star, + SKY_DAY_TOP, + max(-sun_dir.z, 0) + ); + + vec3 sky_mid = mix( + mix( + sky_twilight_mid * magnetosphere_tint, + SKY_NIGHT_MID, + pow(max(sun_dir.z, 0.0), 0.1) + ), + SKY_DAY_MID, + max(-sun_dir.z, 0) + ); + + vec3 sky_bot = mix( + mix( + sky_twilight_bot * magnetosphere_tint, + SKY_NIGHT_BOT, + pow(max(sun_dir.z, 0.0), 0.2) + ), + SKY_DAY_BOT, + max(-sun_dir.z, 0) + ); + + vec3 sky_color = mix( + mix( + sky_mid, + sky_bot, + max(-dir.z, 0) + ), + sky_top, + max(dir.z, 0) + ); + + return sky_color * magnetosphere_tint; +} + +vec3 get_sky_color(vec3 dir, vec3 origin, vec3 f_pos, float quality, bool with_features, float refractionIndex, bool fake_clouds, float sun_shade_frac) { + // Sky color + vec3 sun_dir = sun_dir.xyz; + vec3 moon_dir = moon_dir.xyz; + + + // Sun + const vec3 SUN_SURF_COLOR = vec3(1.5, 0.9, 0.35) * 10.0; + + vec3 sun_halo_color = mix( + (sun_dir.x > 0 ? SUN_HALO_DUSK : SUN_HALO_DAWN)* magnetosphere_tint, + SUN_HALO_DAY, + pow(max(-sun_dir.z, 0.0), 0.5) + ); + + float sun_halo_power = 20.0; + #if (CLOUD_MODE == CLOUD_MODE_NONE) + if (true) { + #else + if (fake_clouds || medium.x == MEDIUM_WATER) { + #endif + sun_halo_power = 30.0; + sun_halo_color *= 0.01; + } + + vec3 sun_halo = sun_halo_color * 25 * pow(max(dot(dir, -sun_dir), 0), sun_halo_power); + vec3 sun_surf = vec3(0); + if (with_features) { + float angle = 0.00035; + sun_surf = clamp((dot(dir, -sun_dir) - (1.0 - angle)) * 4 / angle, 0, 1) + * SUN_SURF_COLOR + * SUN_COLOR_FACTOR + * sun_shade_frac; + } + #if (CLOUD_MODE == CLOUD_MODE_NONE) + if (true) { + #else + if (fake_clouds || medium.x == MEDIUM_WATER) { + #endif + sun_surf *= 0.1; + } + vec3 sun_light = sun_halo + sun_surf; + + // Moon + const vec3 MOON_SURF_COLOR = vec3(0.7, 1.0, 1.5) * 250.0; + const vec3 MOON_HALO_COLOR = vec3(0.015, 0.015, 0.05) * 250; + + vec3 moon_halo_color = MOON_HALO_COLOR; + + float moon_halo_power = 20.0; + + vec3 moon_surf = vec3(0); + if (with_features) { + float angle = 0.00035; + moon_surf = clamp((dot(dir, -moon_dir) - (1.0 - angle)) * 4 / angle, 0, 1) * MOON_SURF_COLOR; + } + #if (CLOUD_MODE == CLOUD_MODE_NONE) + if (true) { + #else + if (fake_clouds || medium.x == MEDIUM_WATER) { + #endif + moon_halo_power = 50.0; + moon_halo_color *= 0.2; + moon_surf *= 0.05; + } + vec3 moon_halo = moon_halo_color * pow(max(dot(dir, -moon_dir), 0), moon_halo_power); + vec3 moon_light = moon_halo + moon_surf; + + // Replaced all clamp(sun_dir, 0, 1) with max(sun_dir, 0) because sun_dir is calculated from sin and cos, which are never > 1 + + vec3 sky_color; + #if (CLOUD_MODE == CLOUD_MODE_NONE) + if (true) { + #else + if (fake_clouds || medium.x == MEDIUM_WATER) { + #endif + sky_color = get_sky_light(dir, !fake_clouds); + } else { + if (medium.x == MEDIUM_WATER) { + sky_color = get_sky_light(dir, true); + } else { + vec3 star_dir = normalize(sun_dir.xyz * dir.z + cross(sun_dir.xyz, vec3(0, 1, 0)) * dir.x + vec3(0, 1, 0) * dir.y); + float star = is_star_at(star_dir); + sky_color = vec3(0) + star; + } + } + + return sky_color + sun_light + moon_light; +} + +vec3 get_sky_color(vec3 dir, vec3 origin, vec3 f_pos, float quality, bool with_features, float refractionIndex) { + return get_sky_color(dir, origin, f_pos, quality, with_features, refractionIndex, false, 1.0); +} + +vec3 get_sky_color(vec3 dir, vec3 origin, vec3 f_pos, float quality, bool with_stars) { + return get_sky_color(dir, origin, f_pos, quality, with_stars, 1.0, false, 1.0); +} + +float fog(vec3 f_pos, vec3 focus_pos, uint medium) { + return max(1.0 - 5000.0 / (1.0 + distance(f_pos.xy, focus_pos.xy)), 0.0); + + // float fog_radius = view_distance.x; + // float mist_radius = 10000000.0; + + // float min_fog = 0.5; + // float max_fog = 1.0; + + // if (medium == MEDIUM_WATER) { + // mist_radius = UNDERWATER_MIST_DIST; + // min_fog = 0.0; + // } + + // float fog = distance(f_pos.xy, focus_pos.xy) / fog_radius; + // float mist = distance(f_pos, focus_pos) / mist_radius; + + // return pow(clamp((max(fog, mist) - min_fog) / (max_fog - min_fog), 0.0, 1.0), 1.7); +} + +/* vec3 illuminate(vec3 color, vec3 light, vec3 diffuse, vec3 ambience) { + float avg_col = (color.r + color.g + color.b) / 3.0; + return ((color - avg_col) * light + (diffuse + ambience) * avg_col) * (diffuse + ambience); +} */ +vec3 illuminate(float max_light, vec3 view_dir, /*vec3 max_light, */vec3 emitted, vec3 reflected) { + return emitted + reflected; + // const float NIGHT_EXPOSURE = 10.0; + // const float DUSK_EXPOSURE = 2.0;//0.8; + // const float DAY_EXPOSURE = 1.0;//0.7; + +// #if (LIGHTING_ALGORITHM == LIGHTING_ALGORITHM_ASHIKHMIN) +// const float DAY_SATURATION = 1.1; +// #else +// const float DAY_SATURATION = 1.0; +// #endif + // const float DUSK_SATURATION = 0.6; + // const float NIGHT_SATURATION = 0.1; + + // const float gamma = /*0.5*//*1.*0*/1.0;//1.0; + /* float light = length(emitted + reflected); + float color = srgb_to_linear(emitted + reflected); + float avg_col = (color.r + color.g + color.b) / 3.0; + return ((color - avg_col) * light + reflected * avg_col) * (emitted + reflected); */ + // float max_intensity = vec3(1.0); + // vec3 color = emitted + reflected; + // float lum = rel_luminance(color); + // float lum_sky = lum - max_light; + + /* vec3 sun_dir = get_sun_dir(time_of_day.x); + vec3 moon_dir = get_moon_dir(time_of_day.x); */ + // float sky_light = rel_luminance( + // get_sun_color(/*sun_dir*/) * get_sun_brightness(/*sun_dir*/) * SUN_COLOR_FACTOR + + // get_moon_color(/*moon_dir*/) * get_moon_brightness(/*moon_dir*/)); + + // Tone mapped value. + // vec3 T = /*color*//*lum*/color;//normalize(color) * lum / (1.0 + lum); + // float alpha = 0.5;//2.0; + // float alpha = mix( + // mix( + // DUSK_EXPOSURE, + // NIGHT_EXPOSURE, + // max(sun_dir.z, 0) + // ), + // DAY_EXPOSURE, + // max(-sun_dir.z, 0) + // ); + // vec3 now_light = moon_dir.z < 0 ? moon_dir.xyz : sun_dir.xyz; + // float cos_view_light = dot(-now_light, view_dir); + // alpha *= exp(1.0 - cos_view_light); + // sky_light *= 1.0 - log(1.0 + view_dir.z); + // float alph = sky_light > 0.0 && max_light > 0.0 ? mix(1.0 / log(/*1.0*//*1.0 + *//*lum_sky + */1.0 + max_light / (0.0 + sky_light)), 1.0, clamp(max_light - sky_light, 0.0, 1.0)) : 1.0; + // alpha = alpha * min(alph, 1.0);//((max_light > 0.0 && max_light > sky_light /* && sky_light > 0.0*/) ? /*1.0*/1.0 / log(/*1.0*//*1.0 + *//*lum_sky + */1.0 + max_light - (0.0 + sky_light)) : 1.0); + // alpha = alpha * min(1.0, (max_light == 0.0 ? 1.0 : (1.0 + abs(lum_sky)) / /*(1.0 + max_light)*/max_light)); + + // vec3 col_adjusted = lum == 0.0 ? vec3(0.0) : color / lum; + + // float L = lum == 0.0 ? 0.0 : log(lum); + + + // // float B = T; + // // float B = L + log(alpha); + // float B = lum; + + // float D = L - B; + + // float o = 0.0;//log(PERSISTENT_AMBIANCE); + // float scale = /*-alpha*/-alpha;//1.0; + + // float B_ = (B - o) * scale; + + // // float T = lum; + // float O = exp(B_ + D); + + // float T = 1.0 - exp(-alpha * lum);//lum / (1.0 + lum); + // float T = lum; + + // Heuristic desaturation + // const float s = 0.8; + // float s = mix( + // mix( + // DUSK_SATURATION, + // NIGHT_SATURATION, + // max(sun_dir.z, 0) + // ), + // DAY_SATURATION, + // max(-sun_dir.z, 0) + // ); + // s = max(s, (max_light) / (1.0 + s)); + // s = max(s, max_light / (1.0 + max_light)); + + // vec3 c = pow(col_adjusted, vec3(s)) * T; + // vec3 c = col_adjusted * T; + // vec3 c = sqrt(col_adjusted) * T; + // vec3 c = /*col_adjusted * */col_adjusted * T; + + // return color; + // return c; + // float sum_col = color.r + color.g + color.b; + // return /*srgb_to_linear*/(/*0.5*//*0.125 * */vec3(pow(color.x, gamma), pow(color.y, gamma), pow(color.z, gamma))); +} + +vec3 simple_lighting(vec3 pos, vec3 col, float shade) { + // Bad fake lantern so we can see in caves + vec3 d = pos.xyz - focus_pos.xyz; + return col * clamp(2.5 / dot(d, d), shade * (get_sun_brightness() + 0.01), 1); +} + +float wind_wave(float off, float scaling, float speed, float strength) { + float aspeed = abs(speed); + + // TODO: Right now, the wind model is pretty simplistic. This means that there is frequently no wind at all, which + // looks bad. For now, we add a lower bound on the wind speed to keep things looking nice. + strength = max(strength, 6.0); + aspeed = max(aspeed, 5.0); + + return (sin(tick_loop(2.0 * PI, 0.35 * scaling * floor(aspeed), off)) * (1.0 - fract(aspeed)) + + sin(tick_loop(2.0 * PI, 0.35 * scaling * ceil(aspeed), off)) * fract(aspeed)) * abs(strength) * 0.25; + //return sin(tick.x * 1.5 * scaling + off) + sin(tick.x * 0.35 * scaling + off); +} + +#endif diff --git a/assets/voxygen/shaders/include/srgb.glsl b/assets/voxygen/shaders/include/srgb.glsl new file mode 100644 index 0000000..bd3dab9 --- /dev/null +++ b/assets/voxygen/shaders/include/srgb.glsl @@ -0,0 +1,673 @@ +#ifndef SRGB_GLSL +#define SRGB_GLSL + +#extension GL_EXT_samplerless_texture_functions : enable + +// Linear RGB, attenuation coefficients for water at roughly R, G, B wavelengths. +// See https://en.wikipedia.org/wiki/Electromagnetic_absorption_by_water +const vec3 MU_WATER = vec3(0.6, 0.04, 0.01); + +// // NOTE: Automatic in v4.0 +// float +// mip_map_level(in vec2 texture_coordinate) +// { +// // The OpenGL Graphics System: A Specification 4.2 +// // - chapter 3.9.11, equation 3.21 +// +// +// vec2 dx_vtc = dFdx(texture_coordinate); +// vec2 dy_vtc = dFdy(texture_coordinate); +// float delta_max_sqr = max(dot(dx_vtc, dx_vtc), dot(dy_vtc, dy_vtc)); +// +// +// //return max(0.0, 0.5 * log2(delta_max_sqr) - 1.0); // == log2(sqrt(delta_max_sqr)); +// return 0.5 * log2(delta_max_sqr); // == log2(sqrt(delta_max_sqr)); +// } + +//https://gamedev.stackexchange.com/questions/92015/optimized-linear-to-srgb-glsl +vec3 srgb_to_linear(vec3 srgb) { + bvec3 cutoff = lessThan(srgb, vec3(0.04045)); + vec3 higher = pow((srgb + vec3(0.055))/vec3(1.055), vec3(2.4)); + vec3 lower = srgb/vec3(12.92); + + return mix(higher, lower, cutoff); +} + +vec3 linear_to_srgb(vec3 col) { + // bvec3 cutoff = lessThan(col, vec3(0.0060)); + // return mix(11.500726 * col, , cutoff); + vec3 s1 = vec3(sqrt(col.r), sqrt(col.g), sqrt(col.b)); + vec3 s2 = vec3(sqrt(s1.r), sqrt(s1.g), sqrt(s1.b)); + vec3 s3 = vec3(sqrt(s2.r), sqrt(s2.g), sqrt(s2.b)); + return vec3( + mix(11.500726 * col.r, (0.585122381 * s1.r + 0.783140355 * s2.r - 0.368262736 * s3.r), clamp((col.r - 0.0060) * 10000.0, 0.0, 1.0)), + mix(11.500726 * col.g, (0.585122381 * s1.g + 0.783140355 * s2.g - 0.368262736 * s3.g), clamp((col.g - 0.0060) * 10000.0, 0.0, 1.0)), + mix(11.500726 * col.b, (0.585122381 * s1.b + 0.783140355 * s2.b - 0.368262736 * s3.b), clamp((col.b - 0.0060) * 10000.0, 0.0, 1.0)) + ); +} + +float pow5(float x) { + float x2 = x * x; + return x2 * x2 * x; +} + +vec4 pow5(vec4 x) { + vec4 x2 = x * x; + return x2 * x2 * x; +} + +// Fresnel angle for perfectly specular dialectric materials. + +// Schlick approximation +vec3 schlick_fresnel(vec3 Rs, float cosTheta) { + // auto pow5 = [](Float v) { return (v * v) * (v * v) * v; }; + // return Rs + pow5(1 - cosTheta) * (Spectrum(1.) - Rs); + return Rs + pow5(1.0 - cosTheta) * (1.0 - Rs); +} + +// Beckmann Distribution +float BeckmannDistribution_D(float NdotH, float alpha) { + const float PI = 3.1415926535897932384626433832795; + float NdotH2 = NdotH * NdotH; + float NdotH2m2 = NdotH2 * alpha * alpha; + float k_spec = exp((NdotH2 - 1) / NdotH2m2) / (PI * NdotH2m2 * NdotH2); + return mix(k_spec, 0.0, NdotH == 0.0); +} + +// Voxel Distribution +float BeckmannDistribution_D_Voxel(vec3 wh, vec3 voxel_norm, float alpha) { + vec3 sides = sign(voxel_norm); + // vec3 cos_sides_i = /*sides * */sides * norm; + // vec3 cos_sides_o = max(sides * view_dir, 0.0); + + vec3 NdotH = wh * sides;//max(wh * sides, 0.0);/*cos_sides_i*///max(sides * wh, 0.0); + + const float PI = 3.1415926535897932384626433832795; + vec3 NdotH2 = NdotH * NdotH; + vec3 NdotH2m2 = NdotH2 * alpha * alpha; + vec3 k_spec = exp((NdotH2 - 1) / NdotH2m2) / (PI * NdotH2m2 * NdotH2); + return dot(mix(k_spec, /*cos_sides_o*/vec3(0.0), equal(NdotH, vec3(0.0))), /*cos_sides_i*/abs(voxel_norm)); + // // const float PI = 3.1415926535897932384626433832795; + // const vec3 normals[6] = vec3[](vec3(1,0,0), vec3(0,1,0), vec3(0,0,1), vec3(-1,0,0), vec3(0,-1,0), vec3(0,0,-1)); + + // float voxel_norm = 0.0; + // for (int i = 0; i < 6; i ++) { + // // Light reflecting off the half-angle can shine on up to three sides. + // // So, the idea here is to figure out the ratio of visibility of each of these + // // three sides such that their sum adds to 1, then computing a Beckmann Distribution for each side times + // // the this ratio. + // // + // // The ratio of these normals in each direction should be the sum of their cosines with the light over π, + // // I think. + // // + // // cos (wh, theta) + // // + // // - one normal + // // + // // The ratio of each of the three exposed sides should just be the slope. + // vec3 side = normals[i]; + // float side_share = max(dot(norm, side), 0.0); + // float NdotH = max(dot(wh, side), 0.0); + // voxel_norm += side_share * BeckmannDistribution_D(NdotH, alpha); + // // voxel_norm += normals[i] * side_visible * max(dot(-cam_dir, normals[i]), 0.0); + // // voxel_norm += normals[i] * side_visible * max(dot(-cam_dir, normals[i]), 0.0); + // } + + // /* float NdotH = dot(wh, norm); + // float NdotH2 = NdotH * NdotH; + // float NdotH2m2 = NdotH2 * alpha * alpha; + + // float k_spec = exp((NdotH2 - 1) / NdotH2m2) / (PI * NdotH2m2 * NdotH2); + // return mix(k_spec, 0.0, NdotH == 0.0); */ + // return voxel_norm; +} + +float TrowbridgeReitzDistribution_D_Voxel(vec3 wh, vec3 voxel_norm, float alpha) { + vec3 sides = sign(voxel_norm); + // vec3 cos_sides_i = /*sides * */sides * norm; + // vec3 cos_sides_o = max(sides * view_dir, 0.0); + + vec3 NdotH = wh * sides;//max(wh * sides, 0.0);/*cos_sides_i*///max(sides * wh, 0.0); + + const float PI = 3.1415926535897932384626433832795; + vec3 NdotH2 = NdotH * NdotH; + // vec3 m2 = alpha * alpha; + // vec3 NdotH2m2 = NdotH2 * m2; + vec3 NdotH2m2 = NdotH2 * alpha * alpha; + // vec3 Tan2Theta = (1 - NdotH2) / NdotH2; + // vec3 e = (NdotH2 / m2 + (1 - NdotH2) / m2) * Tan2Theta; + // vec3 e = 1 / m2 * (1 - NdotH2) / NdotH2; + vec3 e = (1 - NdotH2) / NdotH2m2; + vec3 k_spec = 1.0 / (PI * NdotH2m2 * NdotH2 * (1 + e) * (1 + e)); + // vec3 k_spec = exp((NdotH2 - 1) / NdotH2m2) / (PI * NdotH2m2 * NdotH2); + return dot(mix(k_spec, /*cos_sides_o*/vec3(0.0), equal(NdotH, vec3(0.0))), /*cos_sides_i*/abs(voxel_norm)); +} + +float BeckmannDistribution_Lambda(vec3 norm, vec3 dir, float alpha) { + float CosTheta = /*max(dot(norm, dir), 0.0);*/dot(norm, dir); + /* if (CosTheta == 0.0) { + return 0.0; + } + float SinTheta = sqrt(1.0 - CosTheta * CosTheta); + float TanTheta = SinTheta / CosTheta; + float absTanTheta = abs(TanTheta); */ + // vec3 w = normalize(dir - dot(dir, norm) * (norm)); + // float CosTheta = w.z; + float SinTheta = sqrt(1.0 - CosTheta * CosTheta); + float TanTheta = SinTheta / CosTheta; + float absTanTheta = abs(TanTheta); + /* if (isinf(absTanTheta)) { + return 0.0; + } */ + /* float CosPhi = mix(clamp(projDirNorm.x / sinTheta, -1.0, 1.0), 0.0, sinTheta == 0.0); + float SinPhi = mix(clamp(projDirNorm.y / sinTheta, -1.0, 1.0), 0.0, sinTheta == 0.0); + float alpha = sqrt(CosPhi * CosPhi * alphax * alphax + SinPhi * SinPhi * alphay * alphay); */ + // Float absTanTheta = std::abs(TanTheta(w)); + // if (std::isinf(absTanTheta)) return 0.; + // <> + // Float alpha = std::sqrt(Cos2Phi(w) * alphax * alphax + + // Sin2Phi(w) * alphay * alphay); + float a = 1.0 / (alpha * absTanTheta); + /* if (a >= 1.6) { + return 0.0; + } + + return (1.0 - 1.259 * a + 0.396 * a * a) / (3.535 * a + 2.181 * a * a); */ + + return mix(max(0.0, (1.0 - 1.259 * a + 0.396 * a * a) / (3.535 * a + 2.181 * a * a)), 0.0, isinf(absTanTheta) || a >= 1.6); + // Float a = 1 / (alpha * absTanTheta); + // if (a >= 1.6f) + // return 0; + // return (1 - 1.259f * a + 0.396f * a * a) / + // (3.535f * a + 2.181f * a * a); + // return 1 / (1 + Lambda(wo) + Lambda(wi)); +} + +float BeckmannDistribution_G(vec3 norm, vec3 dir, vec3 light_dir, float alpha) { + // return 1 / (1 + Lambda(wo) + Lambda(wi)); + return 1.0 / (1.0 + BeckmannDistribution_Lambda(norm, dir, alpha) + BeckmannDistribution_Lambda(norm, -light_dir, alpha)); +} + +// Fresnel blending +// +// http://www.pbr-book.org/3ed-2018/Reflection_Models/Microfacet_Models.html#fragment-MicrofacetDistributionPublicMethods-2 +// and +// http://www.pbr-book.org/3ed-2018/Reflection_Models/Fresnel_Incidence_Effects.html +vec3 FresnelBlend_f(vec3 norm, vec3 dir, vec3 light_dir, vec3 R_d, vec3 R_s, float alpha) { + const float PI = 3.1415926535897932384626433832795; + alpha = alpha * sqrt(2.0); + float cos_wi = /*max(*/dot(-light_dir, norm)/*, 0.0)*/; + float cos_wo = /*max(*/dot(dir, norm)/*, 0.0)*/; + + vec3 diffuse = (28.0 / (23.0 * PI)) * R_d * + (1.0 - R_s) * + (1.0 - pow5(1.0 - 0.5 * abs(cos_wi))) * + (1.0 - pow5(1.0 - 0.5 * abs(cos_wo))); + /* Spectrum diffuse = (28.f/(23.f*Pi)) * Rd * + (Spectrum(1.f) - Rs) * + (1 - pow5(1 - .5f * AbsCosTheta(wi))) * + (1 - pow5(1 - .5f * AbsCosTheta(wo))); */ + // Vector3f wh = wi + wo; + vec3 wh = -light_dir + dir; +#if (LIGHTING_TYPE & LIGHTING_TYPE_TRANSMISSION) != 0 + bool is_blocked = cos_wi == 0.0 || cos_wo == 0.0; +#else + bool is_blocked = cos_wi <= 0.0 || cos_wo <= 0.0; +#endif + if (is_blocked) { + return vec3(/*diffuse*/0.0); + } + // if (cos_wo < 0.0) { + // return /*vec3(0.0)*/diffuse; + // } + /* if (cos_wi == 0.0 || cos_wo == 0.0) { + return vec3(0.0); + } */ + /* if (wh.x == 0 && wh.y == 0 && wh.z == 0) { + return vec3(0.0); + // return Spectrum(0); + } */ + wh = normalize(wh);//mix(normalize(wh), vec3(0.0), equal(light_dir, dir)); + float dot_wi_wh = dot(-light_dir, wh); + vec3 specular = dot(norm, dir) > 0.0 ? vec3(0.0) : (BeckmannDistribution_D(dot(wh, norm), alpha) / + (4 * abs(dot_wi_wh) * + max(abs(cos_wi), abs(cos_wo))) * + schlick_fresnel(R_s, dot_wi_wh)); + // Spectrum specular = distribution->D(wh) / + // (4 * AbsDot(wi, wh) * + // std::max(AbsCosTheta(wi), AbsCosTheta(wo))) * + // SchlickFresnel(Dot(wi, wh)); + return mix(/*diffuse*//* + specular*/diffuse + specular, vec3(0.0), bvec3(all(equal(light_dir, dir)))); +} + +// Fresnel blending +// +// http://www.pbr-book.org/3ed-2018/Reflection_Models/Microfacet_Models.html#fragment-MicrofacetDistributionPublicMethods-2 +// and +// http://www.pbr-book.org/3ed-2018/Reflection_Models/Fresnel_Incidence_Effects.html +vec3 FresnelBlend_Voxel_f(vec3 norm, vec3 dir, vec3 light_dir, vec3 R_d, vec3 R_s, float alpha, vec3 voxel_norm, float dist) { + const float PI = 3.1415926535897932384626433832795; + alpha = alpha * sqrt(2.0); + float cos_wi = /*max(*/dot(-light_dir, norm)/*, 0.0)*/; + float cos_wo = /*max(*/dot(dir, norm)/*, 0.0)*/; + +#if (LIGHTING_TYPE & LIGHTING_TYPE_TRANSMISSION) != 0 + vec4 AbsNdotL = abs(vec4(light_dir, cos_wi)); + vec4 AbsNdotV = abs(vec4(dir, cos_wo)); +#else + vec3 sides = sign(voxel_norm); + vec4 AbsNdotL = vec4(max(-light_dir * sides, 0.0), abs(cos_wi)); + vec4 AbsNdotV = vec4(max(dir * sides, 0.0), abs(cos_wo)); +#endif + + // float R_r = 1.0 - R_s; + // float R_r = 1.0 - schlick_fresnel(R_s, cos_wi); + // // Rs + pow5(1.0 - cosTheta) * (1.0 - Rs) + // vec4 R_r = 1.0 - (R_s + (1.0 - R_s) * schlick_fresnel(R_s, cos_wi)); + // mat4 R_r = 1.0 - (vec4(R_s, 0.0) + vec4(1.0 - R_s, 0.0) * pow5(1.0 - AbsNdotL)); + // vec4 AbsNdotL5 = pow5(1.0 - AbsNdotL); + // vec4 R_s4 = vec4(R_s, 0.0); + // mat4 R_r = + // // mat4(1.0 - (R_s.r + (1.0 - R_s.r) * AbsNdotL5), + // // 1.0 - (R_s.g + (1.0 - R_s.g) * AbsNdotL5), + // // 1.0 - (R_s.b + (1.0 - R_s.b) * AbsNdotL5), + // // vec4(0.0) + // // ); + // mat4(1.0 - (R_s4 + (1.0 - R_s4) * AbsNdotL5.x), + // 1.0 - (R_s4 + (1.0 - R_s4) * AbsNdotL5.y), + // 1.0 - (R_s4 + (1.0 - R_s4) * AbsNdotL5.z), + // 1.0 - (R_s4 + (1.0 - R_s4) * AbsNdotL5.w) + // ); + // * ) (R1.0 - R_s.r) 1.0 - (vec4(R_s, 0.0) + vec4(1.0 - R_s, 0.0) * pow5(1.0 - AbsNdotL)); + + vec4 diffuse_factor = + // vec4(abs(vec4(-light_dir * sides, cos_wi))) + (1.0 - pow5(1.0 - 0.5 * AbsNdotL)) * + // (1.0 - pow5(1.0 - 0.5 * abs(vec4(-light_dir * sides, cos_wi)))) * + // (1.0 - pow5(1.0 - 0.5 * abs(vec4(dir * sides, cos_wo)))) + (1.0 - pow5(1.0 - 0.5 * AbsNdotV)) + // vec4(1.0) + ; + /* vec4 diffuse_factor = + (1.0 - pow5(1.0 - 0.5 * max(vec4(-light_dir * sides, abs(cos_wi)), 0.0))) * + (1.0 - pow5(1.0 - 0.5 * max(vec4(dir * sides, abs(cos_wo)), 0.0))); */ + + vec3 diffuse = (28.0 / (23.0 * PI))/*(1.0 / PI)*/ * R_d * + (1.0 - R_s) * + //vec3( + dot(diffuse_factor, /*R_r * */vec4(abs(norm) * (1.0 - dist), dist)) + //) + ; + + vec3 wh = -light_dir + dir; +#if (LIGHTING_TYPE & LIGHTING_TYPE_TRANSMISSION) != 0 + bool is_blocked = cos_wi == 0.0 || cos_wo == 0.0; +#else + bool is_blocked = cos_wi <= 0.0 || cos_wo <= 0.0; +#endif + if (is_blocked) { + return vec3(/*diffuse*/0.0); + } + wh = normalize(wh);//mix(normalize(wh), vec3(0.0), equal(light_dir, dir)); + float dot_wi_wh = dot(-light_dir, wh); + // float distr = TrowbridgeReitzDistribution_D_Voxel(wh, voxel_norm, alpha); + float distr = BeckmannDistribution_D_Voxel(wh, voxel_norm, alpha); + // float distr = BeckmannDistribution_D(dot(wh, norm), alpha); + vec3 specular = distr / + (4 * abs(dot_wi_wh) * + max(abs(cos_wi), abs(cos_wo))) * + schlick_fresnel(R_s, dot_wi_wh); + return mix(/*diffuse*//* + specular*/diffuse + specular, vec3(0.0), bvec3(all(equal(light_dir, dir)))); +} + +// Phong reflection. +// +// Note: norm, dir, light_dir must all be normalizd. +vec3 light_reflection_factor2(vec3 norm, vec3 dir, vec3 light_dir, vec3 k_d, vec3 k_s, float alpha) { + // TODO: These are supposed to be the differential changes in the point location p, in tangent space. + // That is, assuming we can parameterize a 2D surface by some function p : R² → R³, mapping from + // points in a plane to 3D points on the surface, we can define + // ∂p(u,v)/∂u and ∂p(u,v)/∂v representing the changes in the pont location as we move along these + // coordinates. + // + // Then we can define the normal at a point, n(u,v) = ∂p(u,v)/∂u × ∂p(u,v)/∂v. + // + // Additionally, we can define the change in *normals* at each point using the + // Weingarten equations (see http://www.pbr-book.org/3ed-2018/Shapes/Spheres.html): + // + // ∂n/∂u = (fF - eG) / (EG - F²) ∂p/∂u + (eF - fE) / (EG - F²) ∂p/∂v + // ∂n/∂v = (gF - fG) / (EG - F²) ∂p/∂u + (fF - gE) / (EG - F²) ∂p/∂v + // + // where + // + // E = |∂p/∂u ⋅ ∂p/∂u| + // F = ∂p/∂u ⋅ ∂p/∂u + // G = |∂p/∂v ⋅ ∂p/∂v| + // + // and + // + // e = n ⋅ ∂²p/∂u² + // f = n ⋅ ∂²p/(∂u∂v) + // g = n ⋅ ∂²p/∂v² + // + // For planes (see http://www.pbr-book.org/3ed-2018/Shapes/Triangle_Meshes.html) we have + // e = f = g = 0 (since the plane has no curvature of any sort) so we get: + // + // ∂n/∂u = (0, 0, 0) + // ∂n/∂v = (0, 0, 0) + // + // To find ∂p/∂u and ∂p/∂v, we first write p and u parametrically: + // p(u, v) = p0 + u ∂p/∂u + v ∂p/∂v + // + // ( u₀ - u₂ v₀ - v₂ + // u₁ - u₂ v₁ - v₂ ) + // + // Basis: plane norm = norm = (0, 0, 1), x vector = any orthgonal vector on the plane. + // vec3 w_i = + // vec3 w_i = vec3(view_mat * vec4(-light_dir, 1.0)); + // vec3 w_o = vec3(view_mat * vec4(light_dir, 1.0)); + float g = 1.0;// BeckmannDistribution_G(norm, dir, light_dir, alpha); + return FresnelBlend_f(norm, dir, light_dir, k_d/* * max(dot(norm, -light_dir), 0.0)*/, k_s * g, alpha); + // const float PI = 3.141592; + // alpha = alpha * sqrt(2.0); + // float ndotL = /*max*/(dot(norm, -light_dir)/*, 0.0*/); + + // //if (ndotL > 0.0/* && dot(s_norm, -light_dir) > 0.0*/) { + // vec3 H = normalize(-light_dir + dir); + + // float NdotH = dot(norm, H); + // float NdotH2 = NdotH * NdotH; + // float NdotH2m2 = NdotH2 * alpha * alpha; + // float k_spec = exp((NdotH2 - 1) / NdotH2m2) / (PI * NdotH2m2 * NdotH2); + // return mix(k_s * k_spec, vec3(0.0), bvec3(ndotL <= 0.0 || NdotH == 0.0)); + // // + // // (k_d * (L ⋅ N) + k_s * (R ⋅ V)^α) + // // return k_d * ndotL + mix(k_s * pow(max(dot(norm, H), 0.0), alpha * 4.0), vec3(0.0), bvec3(ndotL == 0.0)); + // // } + // // return vec3(0.0); +} + +vec3 light_reflection_factor(vec3 norm, vec3 dir, vec3 light_dir, vec3 k_d, vec3 k_s, float alpha, vec3 voxel_norm, float voxel_lighting) { +#if (LIGHTING_ALGORITHM == LIGHTING_ALGORITHM_LAMBERTIAN) + const float PI = 3.141592; + #if (LIGHTING_DISTRIBUTION_SCHEME == LIGHTING_DISTRIBUTION_SCHEME_VOXEL) + #if (LIGHTING_TYPE & LIGHTING_TYPE_TRANSMISSION) != 0 + vec4 AbsNdotL = abs(vec4(light_dir, dot(norm, light_dir))); + #else + vec3 sides = sign(voxel_norm); + vec4 AbsNdotL = max(vec4(-light_dir * sides, dot(norm, -light_dir)), 0.0); + #endif + float diffuse = dot(AbsNdotL, vec4(abs(voxel_norm) * (1.0 - voxel_lighting), voxel_lighting)); + #elif (LIGHTING_DISTRIBUTION_SCHEME == LIGHTING_DISTRIBUTION_SCHEME_MICROFACET) + #if (LIGHTING_TYPE & LIGHTING_TYPE_TRANSMISSION) != 0 + float diffuse = abs(dot(norm, light_dir)); + #else + float diffuse = max(dot(norm, -light_dir), 0.0); + #endif + #endif + return k_d / PI * diffuse; +#elif (LIGHTING_ALGORITHM == LIGHTING_ALGORITHM_BLINN_PHONG) + const float PI = 3.141592; + alpha = alpha * sqrt(2.0); + #if (LIGHTING_TYPE & LIGHTING_TYPE_TRANSMISSION) != 0 + float ndotL = abs(dot(norm, light_dir)); + #else + float ndotL = max(dot(norm, -light_dir), 0.0); + #endif + + if (ndotL > 0.0) { + #if (LIGHTING_DISTRIBUTION_SCHEME == LIGHTING_DISTRIBUTION_SCHEME_VOXEL) + #if (LIGHTING_TYPE & LIGHTING_TYPE_TRANSMISSION) != 0 + vec4 AbsNdotL = abs(vec4(light_dir, ndotL)); + #else + vec3 sides = sign(voxel_norm); + vec4 AbsNdotL = max(vec4(-light_dir * sides, ndotL), 0.0); + #endif + float diffuse = dot(AbsNdotL, vec4(abs(voxel_norm) * (1.0 - voxel_lighting), voxel_lighting)); + #elif (LIGHTING_DISTRIBUTION_SCHEME == LIGHTING_DISTRIBUTION_SCHEME_MICROFACET) + float diffuse = ndotL; + #endif + vec3 H = normalize(-light_dir + dir); + + #if (LIGHTING_TYPE & LIGHTING_TYPE_TRANSMISSION) != 0 + float NdotH = abs(dot(norm, H)); + #else + float NdotH = max(dot(norm, H), 0.0); + #endif + return (1.0 - k_s) / PI * k_d * diffuse + k_s * pow(NdotH, alpha/* * 4.0*/); + } + + return vec3(0.0); +#elif (LIGHTING_ALGORITHM == LIGHTING_ALGORITHM_ASHIKHMIN) + #if (LIGHTING_DISTRIBUTION_SCHEME == LIGHTING_DISTRIBUTION_SCHEME_VOXEL) + return FresnelBlend_Voxel_f(norm, dir, light_dir, k_d/* * max(dot(norm, -light_dir), 0.0)*/, k_s, alpha, voxel_norm, voxel_lighting); + #elif (LIGHTING_DISTRIBUTION_SCHEME == LIGHTING_DISTRIBUTION_SCHEME_MICROFACET) + //if (voxel_lighting < 1.0) { + return FresnelBlend_f(norm, dir, light_dir, k_d/* * max(dot(norm, -light_dir), 0.0)*/, k_s, alpha); + //} else { + // return FresnelBlend_f(norm, dir, light_dir, k_d/* * max(dot(norm, -light_dir), 0.0)*/, k_s, alpha); + //} + #endif +#endif +} + +float rel_luminance(vec3 rgb) +{ + // https://en.wikipedia.org/wiki/Relative_luminance + const vec3 W = vec3(0.2126, 0.7152, 0.0722); + return dot(rgb, W); +} + +// From https://discourse.vvvv.org/t/infinite-ray-intersects-with-infinite-plane/10537 +// out of laziness. +bool IntersectRayPlane(vec3 rayOrigin, vec3 rayDirection, vec3 posOnPlane, vec3 planeNormal, inout vec3 intersectionPoint) +{ + float rDotn = dot(rayDirection, planeNormal); + + //parallel to plane or pointing away from plane? + if (rDotn < 0.0000001 ) + return false; + + float s = dot(planeNormal, (posOnPlane - rayOrigin)) / rDotn; + + intersectionPoint = rayOrigin + s * rayDirection; + + return true; +} + +// Compute uniform attenuation due to beam passing through a substance that fills an area below a horizontal plane +// (e.g. in most cases, water below the water surface depth) using the simplest form of the Beer-Lambert law +// (https://en.wikipedia.org/wiki/Beer%E2%80%93Lambert_law): +// +// I(z) = I₀ e^(-μz) +// +// We compute this value, except for the initial intensity which may be multiplied out later. +// +// wpos is the position of the point being hit. +// ray_dir is the reversed direction of the ray (going "out" of the point being hit). +// mu is the attenuation coefficient for R, G, and B wavelenghts. +// surface_alt is the estimated altitude of the horizontal surface separating the substance from air. +// defaultpos is the position to use in computing the distance along material at this point if there was a failure. +// +// Ideally, defaultpos is set so we can avoid branching on error. +vec3 compute_attenuation(vec3 wpos, vec3 ray_dir, vec3 mu, float surface_alt, vec3 defaultpos) { +#if (LIGHTING_TRANSPORT_MODE == LIGHTING_TRANSPORT_MODE_IMPORTANCE) + return vec3(1.0); +#elif (LIGHTING_TRANSPORT_MODE == LIGHTING_TRANSPORT_MODE_RADIANCE) + #if (LIGHTING_TYPE & LIGHTING_TYPE_TRANSMISSION) != 0 + return vec3(1.0); + #else + // return vec3(1.0); + /*if (mu == vec3(0.0)) { + return vec3(1.0); + }*//* else { + return vec3(0.0); + }*/ + // return vec3(0.0); + // vec3 surface_dir = /*surface_alt < wpos.z ? vec3(0.0, 0.0, -1.0) : vec3(0.0, 0.0, 1.0)*/vec3(0.0, 0.0, sign(surface_alt - wpos.z)); + ray_dir = faceforward(ray_dir, vec3(0.0, 0.0, -1.0), ray_dir); + vec3 surface_dir = surface_alt < wpos.z ? vec3(0.0, 0.0, -1.0) : vec3(0.0, 0.0, 1.0); + // vec3 surface_dir = faceforward(vec3(0.0, 0.0, 1.0), ray_dir, vec3(0.0, 0.0, 1.0)); + bool _intersects_surface = IntersectRayPlane(wpos, ray_dir, vec3(0.0, 0.0, surface_alt), surface_dir, defaultpos); + float depth = length(defaultpos - wpos); + return exp(-mu * depth); + #endif +#endif +} + +// vec3 compute_attenuation2(vec3 wpos, vec3 ray_dir, vec3 mu, float surface_alt, vec3 defaultpos) { +// #if (LIGHTING_TRANSPORT_MODE == LIGHTING_TRANSPORT_MODE_IMPORTANCE) +// return vec3(1.0); +// #elif (LIGHTING_TRANSPORT_MODE == LIGHTING_TRANSPORT_MODE_RADIANCE) +// // return vec3(1.0); +// /*if (mu == vec3(0.0)) { +// return vec3(1.0); +// }*//* else { +// return vec3(0.0); +// }*/ +// // return vec3(0.0); +// // vec3 surface_dir = /*surface_alt < wpos.z ? vec3(0.0, 0.0, -1.0) : vec3(0.0, 0.0, 1.0)*/vec3(0.0, 0.0, sign(surface_alt - wpos.z)); +// vec3 surface_dir = surface_alt < wpos.z ? vec3(0.0, 0.0, 1.0) : vec3(0.0, 0.0, -1.0); +// // vec3 surface_dir = faceforward(vec3(0.0, 0.0, 1.0), ray_dir, vec3(0.0, 0.0, 1.0)); +// bool _intersects_surface = IntersectRayPlane(wpos, ray_dir, vec3(0.0, 0.0, surface_alt), surface_dir, defaultpos); +// float depth = length(defaultpos - wpos); +// return exp(-mu * depth); +// #endif +// } + +// Same as compute_attenuation but since both point are known, set a maximum to make sure we don't exceed the length +// from the default point. +vec3 compute_attenuation_point(vec3 wpos, vec3 ray_dir, vec3 mu, float surface_alt, vec3 defaultpos) { +#if (LIGHTING_TRANSPORT_MODE == LIGHTING_TRANSPORT_MODE_IMPORTANCE) + return pow(1.0 - mu, vec3(3)); +#elif (LIGHTING_TRANSPORT_MODE == LIGHTING_TRANSPORT_MODE_RADIANCE) + // return vec3(1.0); + /*if (mu == vec3(0.0)) { + return vec3(1.0); + }*//* else { + return vec3(0.0); + }*/ + // return vec3(0.0); + vec3 surface_dir = /*surface_alt < wpos.z ? vec3(0.0, 0.0, -1.0) : vec3(0.0, 0.0, 1.0)*/vec3(0.0, 0.0, sign(wpos.z - surface_alt)); + // vec3 surface_dir = surface_alt < wpos.z ? vec3(0.0, 0.0, 1.0) : vec3(0.0, 0.0, -1.0); + // vec3 surface_dir = faceforward(vec3(0.0, 0.0, 1.0), ray_dir, vec3(0.0, 0.0, 1.0)); + float max_length = dot(defaultpos - wpos, defaultpos - wpos); + bool _intersects_surface = IntersectRayPlane(wpos, ray_dir, vec3(0.0, 0.0, surface_alt), surface_dir, defaultpos); + float depth2 = min(max_length, dot(defaultpos - wpos, defaultpos - wpos)); + return exp(-mu * sqrt(depth2)); +#endif +} + +//#ifdef HAS_SHADOW_MAPS +// #if (SHADOW_MODE == SHADOW_MODE_MAP) +//uniform sampler2DShadow t_directed_shadow_maps; +//// uniform sampler2DArrayShadow t_directed_shadow_maps; +// +//float ShadowCalculationDirected(in vec4 /*light_pos[2]*/sun_pos, uint lightIndex) +//{ +// float bias = 0.0;//-0.0001;// 0.05 / (2.0 * view_distance.x); +// // const vec3 sampleOffsetDirections[20] = vec3[] +// // ( +// // vec3( 1, 1, 1), vec3( 1, -1, 1), vec3(-1, -1, 1), vec3(-1, 1, 1), +// // vec3( 1, 1, -1), vec3( 1, -1, -1), vec3(-1, -1, -1), vec3(-1, 1, -1), +// // vec3( 1, 1, 0), vec3( 1, -1, 0), vec3(-1, -1, 0), vec3(-1, 1, 0), +// // vec3( 1, 0, 1), vec3(-1, 0, 1), vec3( 1, 0, -1), vec3(-1, 0, -1), +// // vec3( 0, 1, 1), vec3( 0, -1, 1), vec3( 0, -1, -1), vec3( 0, 1, -1) +// // // vec3(0, 0, 0) +// // ); +// /* if (lightIndex >= light_shadow_count.z) { +// return 1.0; +// } */ +// // vec3 fragPos = sun_pos.xyz;// / sun_pos.w;//light_pos[lightIndex].xyz; +// float visibility = textureProj(t_directed_shadow_maps, sun_pos); +// // float visibility = textureProj(t_directed_shadow_maps, vec4(fragPos.xy, /*lightIndex, */fragPos.z + bias, sun_pos.w)); +// return visibility; +// // return mix(visibility, 0.0, sun_pos.z < -1.0); +// // return mix(mix(0.0, 1.0, visibility == 1.0), 1.0, sign(sun_pos.w) * sun_pos.z > /*1.0*/abs(sun_pos.w)); +// // return visibility == 1.0 ? 1.0 : 0.0; +// /* if (visibility == 1.0) { +// return 1.0; +// } */ +// // return visibility; +// /* if (fragPos.z > 1.0) { +// return 1.0; +// } */ +// // if (visibility <= 0.75) { +// // return 0.0; +// // } +// // int samples = 20; +// // float shadow = 0.0; +// // // float bias = 0.0001; +// // float viewDistance = length(cam_pos.xyz - fragPos); +// // // float diskRadius = 0.2 * (1.0 + (viewDistance / screen_res.w)) / 25.0; +// // float diskRadius = 0.0008;//0.005;// / (2.0 * view_distance.x);//(1.0 + (viewDistance / screen_res.w)) / 25.0; +// // for(int i = 0; i < samples; ++i) +// // { +// // vec3 currentDepth = fragPos + vec3(sampleOffsetDirections[i].xyz) * diskRadius + bias; +// // visibility = texture(t_directed_shadow_maps, vec4(currentDepth.xy, lightIndex, currentDepth.z)/*, -2.5*/); +// // shadow += mix(visibility, 1.0, visibility >= 0.5); +// // } +// // shadow /= float(samples); +// // return shadow; +//} +// #elif (SHADOW_MODE == SHADOW_MODE_NONE || SHADOW_MODE == SHADOW_MODE_CHEAP) +//float ShadowCalculationDirected(in vec4 light_pos[2], uint lightIndex) +//{ +// return 1.0; +//} +// #endif +//#else +//float ShadowCalculationDirected(in vec4 light_pos[2], uint lightIndex) +//{ +// return 1.0; +//} +//#endif + +vec3 greedy_extract_col_light_attr(texture2D t_col_light, sampler s_col_light, vec2 f_uv_pos, out float f_light, out float f_glow, out float f_ao, out uint f_attr, out float f_sky_exposure) { + // TODO: Figure out how to use `texture` and modulation to avoid needing to do manual filtering + // TODO: Use `texture` instead + //vec2 light = texture(t_col_light, f_uv_pos).xy / 31; + + uvec4 tex_00 = uvec4(texelFetch(sampler2D(t_col_light, s_col_light), ivec2(f_uv_pos) + ivec2(0, 0), 0) * 255); + uvec4 tex_10 = uvec4(texelFetch(sampler2D(t_col_light, s_col_light), ivec2(f_uv_pos) + ivec2(1, 0), 0) * 255); + uvec4 tex_01 = uvec4(texelFetch(sampler2D(t_col_light, s_col_light), ivec2(f_uv_pos) + ivec2(0, 1), 0) * 255); + uvec4 tex_11 = uvec4(texelFetch(sampler2D(t_col_light, s_col_light), ivec2(f_uv_pos) + ivec2(1, 1), 0) * 255); + vec3 light_00 = vec3(tex_00.rg >> 3u, tex_00.a & 1u); + vec3 light_10 = vec3(tex_10.rg >> 3u, tex_10.a & 1u); + vec3 light_01 = vec3(tex_01.rg >> 3u, tex_01.a & 1u); + vec3 light_11 = vec3(tex_11.rg >> 3u, tex_11.a & 1u); + vec3 light_0 = mix(light_00, light_01, fract(f_uv_pos.y)); + vec3 light_1 = mix(light_10, light_11, fract(f_uv_pos.y)); + vec3 light = mix(light_0, light_1, fract(f_uv_pos.x)); + + vec3 f_col = vec3( + float(((tex_00.r & 0x7u) << 1u) | (tex_00.b & 0xF0u)), + float(tex_00.a & 0xFE), + float(((tex_00.g & 0x7u) << 1u) | ((tex_00.b & 0x0Fu) << 4u)) + ) / 255.0; + + f_ao = light.z; + f_light = light.x / 31.0; + f_sky_exposure = light.x / 31.0 + (1.0 - f_ao) * 0.5; + f_glow = light.y / 31.0; + f_attr = tex_00.g >> 3u; + return srgb_to_linear(f_col); +} + +vec3 greedy_extract_col_light_kind_terrain( + texture2D t_col_light, sampler s_col_light, + utexture2D t_kind, + vec2 f_uv_pos, + out float f_light, out float f_glow, out float f_ao, out float f_sky_exposure, out uint f_kind +) { + float _f_attr; + f_kind = uint(texelFetch(t_kind, ivec2(f_uv_pos), 0).r); + return greedy_extract_col_light_attr(t_col_light, s_col_light, f_uv_pos, f_light, f_glow, f_ao, _f_attr, f_sky_exposure); +} + +vec3 greedy_extract_col_light_figure(texture2D t_col_light, sampler s_col_light, vec2 f_uv_pos, out float f_light, out uint f_attr) { + float _f_sky_exposure, _f_light, _f_glow, _f_ao; + return greedy_extract_col_light_attr(t_col_light, s_col_light, f_uv_pos, f_light, _f_glow, _f_ao, f_attr, _f_sky_exposure); +} + +#endif diff --git a/assets/voxygen/shaders/light-shadows-debug-vert.glsl b/assets/voxygen/shaders/light-shadows-debug-vert.glsl new file mode 100644 index 0000000..325c1df --- /dev/null +++ b/assets/voxygen/shaders/light-shadows-debug-vert.glsl @@ -0,0 +1,61 @@ +#version 440 core + +#include + +layout (location = 0) +in vec3 v_pos; +layout (location = 1) +in vec4 v_color; +layout (location = 2) +in vec3 v_norm; + +layout (std140, set = 1, binding = 0) +uniform u_locals { + vec4 w_pos; + vec4 w_color; + vec4 w_ori; +}; + +layout (std140, set = 0, binding = 9) +uniform u_light_shadows { + mat4 shadowMatrices; + mat4 texture_mat; +}; + +layout (location = 0) +out vec4 f_color; +layout (location = 1) +out vec3 f_pos; +layout (location = 2) +out vec3 f_norm; + +void main() { + f_color = w_color * v_color; + + // Build rotation matrix + // https://en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles#Rotation_matrices + mat3 rotation_matrix; + float q0 = w_ori[3]; + float q1 = w_ori[0]; + float q2 = w_ori[1]; + float q3 = w_ori[2]; + + float r00 = 1 - 2 * (pow(q2, 2) + pow(q3, 2)); + float r01 = 2 * (q1 * q2 - q0 * q3); + float r02 = 2 * (q0 * q2 + q1 * q3); + rotation_matrix[0] = vec3(r00, r01, r02); + + float r10 = 2 * (q1 * q2 + q0 * q3); + float r11 = 1 - 2 * (pow(q1, 2) + pow(q3, 2)); + float r12 = 2 * (q2 * q3 - q0 * q1); + rotation_matrix[1] = vec3(r10, r11, r12); + + float r20 = 2 * (q1 * q3 - q0 * q2); + float r21 = 2 * (q0 * q1 + q2 * q3); + float r22 = 1 - 2 * (pow(q1, 2) + pow(q2, 2)); + rotation_matrix[2] = vec3(r20, r21, r22); + + f_pos = (v_pos * rotation_matrix + w_pos.xyz) - focus_off.xyz; + f_norm = normalize(v_norm); + gl_Position = shadowMatrices * vec4(f_pos, 1); +} diff --git a/assets/voxygen/shaders/light-shadows-directed-vert.glsl b/assets/voxygen/shaders/light-shadows-directed-vert.glsl new file mode 100644 index 0000000..b68abe9 --- /dev/null +++ b/assets/voxygen/shaders/light-shadows-directed-vert.glsl @@ -0,0 +1,66 @@ +#version 440 core +// #extension ARB_texture_storage : enable + +#include + +#define LIGHTING_TYPE LIGHTING_TYPE_REFLECTION + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_GLOSSY + +#if (FLUID_MODE == FLUID_MODE_LOW) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE +#elif (FLUID_MODE >= FLUID_MODE_MEDIUM) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_RADIANCE +#endif + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +#define HAS_SHADOW_MAPS + +// Currently, we only need globals for focus_off. +#include +// For shadow locals. +// #include + +layout (std140, set = 0, binding = 9) +uniform u_light_shadows { + mat4 shadowMatrices; + mat4 texture_mat; +}; + +/* Accurate packed shadow maps for many lights at once! + * + * Ideally, we would just write to a bitmask... + * + * */ + +layout(location = 0) in uint v_pos_norm; +// in uint v_col_light; +// in vec4 v_pos; +// layout(location = 1) in uint v_atlas_pos; + +// Light projection matrices. +layout (std140, set = 1, binding = 0) +uniform u_locals { + mat4 model_mat; + ivec4 atlas_offs; + float load_time; +}; + +// out vec4 shadowMapCoord; + +const float EXTRA_NEG_Z = 32768.0; + +void main() { + vec3 f_chunk_pos = vec3(v_pos_norm & 0x3Fu, (v_pos_norm >> 6) & 0x3Fu, float((v_pos_norm >> 12) & 0xFFFFu) - EXTRA_NEG_Z); + vec3 f_pos = (model_mat * vec4(f_chunk_pos, 1.0)).xyz - focus_off.xyz; + // f_pos = v_pos; + + gl_Position = /*all_mat * */shadowMatrices * vec4(f_pos/*, 1.0*/, /*float(((f_pos_norm >> 29) & 0x7u) ^ 0x1)*//*uintBitsToFloat(v_pos_norm)*/1.0); + // gl_Position.z = -gl_Position.z; + // gl_Position.z = clamp(gl_Position.z, -abs(gl_Position.w), abs(gl_Position.w)); + // shadowMapCoord = lights[gl_InstanceID].light_pos * gl_Vertex; + // vec4(v_pos, 0.0, 1.0); +} diff --git a/assets/voxygen/shaders/light-shadows-figure-vert.glsl b/assets/voxygen/shaders/light-shadows-figure-vert.glsl new file mode 100644 index 0000000..823cbf8 --- /dev/null +++ b/assets/voxygen/shaders/light-shadows-figure-vert.glsl @@ -0,0 +1,82 @@ +#version 440 core +// #extension ARB_texture_storage : enable + +#define FIGURE_SHADER + +#include + +#define LIGHTING_TYPE LIGHTING_TYPE_REFLECTION + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_GLOSSY + +#if (FLUID_MODE == FLUID_MODE_LOW) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE +#elif (FLUID_MODE >= FLUID_MODE_MEDIUM) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_RADIANCE +#endif + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +#define HAS_SHADOW_MAPS + +// Currently, we only need globals for focus_off. +#include +// For shadow locals. +// #include + +layout (std140, set = 0, binding = 9) +uniform u_light_shadows { + mat4 shadowMatrices; + mat4 texture_mat; +}; + +/* Accurate packed shadow maps for many lights at once! + * + * Ideally, we would just write to a bitmask... + * + * */ + +layout(location = 0) in uint v_pos_norm; +layout(location = 1) in uint v_atlas_pos; +// in uint v_col_light; +// in vec4 v_pos; + +layout (std140, set = 1, binding = 0) +uniform u_locals { + mat4 model_mat; + vec4 highlight_col; + vec4 model_light; + vec4 model_glow; + ivec4 atlas_offs; + vec3 model_pos; + // bit 0 - is player + // bit 1-31 - unused + int flags; +}; + +struct BoneData { + mat4 bone_mat; + mat4 normals_mat; +}; + +layout (std140, set = 1, binding = 1) +uniform u_bones { + // Warning: might not actually be 16 elements long. Don't index out of bounds! + BoneData bones[16]; +}; + +// out vec4 shadowMapCoord; + +void main() { + uint bone_idx = (v_pos_norm >> 27) & 0xFu; + vec3 pos = (vec3((uvec3(v_pos_norm) >> uvec3(0, 9, 18)) & uvec3(0x1FFu)) - 256.0) / 2.0; + + vec3 f_pos = ( + bones[bone_idx].bone_mat * + vec4(pos, 1.0) + ).xyz + (model_pos - focus_off.xyz/* + vec3(0.0, 0.0, 0.0001)*/); + + gl_Position = shadowMatrices * vec4(f_pos, 1.0); +} diff --git a/assets/voxygen/shaders/light-shadows-frag.glsl b/assets/voxygen/shaders/light-shadows-frag.glsl new file mode 100644 index 0000000..0aa94dd --- /dev/null +++ b/assets/voxygen/shaders/light-shadows-frag.glsl @@ -0,0 +1,49 @@ +// NOTE: We currently do nothing, and just rely on the default shader behavior. +// +// However, in the future we might apply some depth transforms here. + +#version 440 core +// #extension ARB_texture_storage : enable + +#include + +#define LIGHTING_TYPE LIGHTING_TYPE_REFLECTION + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_GLOSSY + +#if (FLUID_MODE == FLUID_MODE_LOW) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE +#elif (FLUID_MODE >= FLUID_MODE_MEDIUM) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_RADIANCE +#endif + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +// Currently, we only need globals for the far plane. +#include +// // Currently, we only need lights for the light position +// #include + +// in vec3 FragPos; // FragPos from GS (output per emitvertex) +// flat in int FragLayer; + +void main() +{ + // Only need to do anything with point lights, since sun and moon should already have nonlinear + // distance. + ///*if (FragLayer > 0) */{ + // // get distance between fragment and light source + // float lightDistance = length(FragPos); + // // float lightDistance = length(FragPos - lights[((/*FragLayer*/1 - 1) & 31)].light_pos.xyz); + + // // // map to [0;1] range by dividing by far_plane + // lightDistance = lightDistance / screen_res.w;//FragPos.w;//screen_res.w; + + // // // write this as modified depth + // // // lightDistance = -1000.0 / (lightDistance + 10000.0); + // // // lightDistance /= screen_res.w; + // gl_FragDepth = lightDistance;// / /*FragPos.w;*/screen_res.w;//-1000.0 / (lightDistance + 1000.0);//lightDistance + //} +} diff --git a/assets/voxygen/shaders/light-shadows-geom.glsl b/assets/voxygen/shaders/light-shadows-geom.glsl new file mode 100644 index 0000000..dbc2529 --- /dev/null +++ b/assets/voxygen/shaders/light-shadows-geom.glsl @@ -0,0 +1,277 @@ +// Adapted from https://learnopengl.com/Advanced-Lighting/Shadows/Point-Shadows + +// NOTE: We only technically need this for cube map arrays and geometry shader +// instancing. +#version 330 core +// #extension ARB_texture_storage : enable + +#include + +#define LIGHTING_TYPE LIGHTING_TYPE_REFLECTION + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_GLOSSY + +#if (FLUID_MODE == FLUID_MODE_LOW) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE +#elif (FLUID_MODE >= FLUID_MODE_MEDIUM) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_RADIANCE +#endif + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +#define HAS_SHADOW_MAPS + +// Currently, we only need globals for the max light count (light_shadow_count.x) +// and the far plane (scene_res.z). +#include +#include +// // Currently, we only need lights for the light position +// #include + +/* struct Light { + vec4 light_pos; + vec4 light_col; + // mat4 light_proj; +}; + +layout (std140) +uniform u_lights { + Light lights[31]; +}; */ + +// Since our output primitive is a triangle strip, we have to render three vertices +// each. +#define VERTICES_PER_FACE 3 + +// Since we render our depth texture to a cube map, we need to render each face +// six times. If we used other shadow mapping methods with fewer outputs, this would +// shrink considerably. +#define FACES_PER_POINT_LIGHT 6 + +// If MAX_VERTEX_UNIFORM_COMPONENTS_ARB = 512 on many platforms, and we want a mat4 +// for each of 6 directions for each light, 20 is close to the maximum allowable +// size. We could add a final matrix for the directional light of the sun or moon +// to bring us to 126 matrices, which is just 2 off. +// +// To improve this limit, we could do many things, such as: +// - choose an implementation that isn't cube maps (e.g. tetrahedrons or curves; +// if there were an easy way to sample from tetrahedrons, we'd be at 32 * 4 = 128 +// exactly, leaving no room for a solar body, though). +// - Do more work in the geometry shader (e.g. just have a single projection +// matrix per light, and derive the different-facing components; or there may be +// other ways of greatly simplifying this). The tradeoff would be losing performance +// here. +// - Use ARB_instanced_arrays and switch lights with indexing, instead of a uniform +// buffer. This would probably work fine (and ARB_instanced_arrays is supported on +// pretty much every platform), but AFAIK it's possible that instanced arrays are +// slower than uniform arraay access on many platforms. +// - Don't try to do everything in one call (break this out into multiple passes). +// +// Actually, according to what I'm reading, MAX_GEOM_UNIFORM_COMPONENTS = 1024, and +// gl_MaxGeometryUniformComponents = 1024. +// +// Also, this only applies to uniforms defined *outside* of uniform blocks, of which +// there can be up to 12 (14 in OpenGL 4.3, which we definitely can't support). +// GL_MAX_UNIFORM_BLOCK_SIZE has a minimum of 16384, which *easily* exceeds our usage +// constraints. So this part might not matter. +// +// Other restrictions are easy to satisfy: +// +// gl_MaxGeometryVaryingComponents has a minimum of 64 and is the maximum number of +// varying components; I think this is the number of out components per vertex, which +// is technically 0, but would be 4 if we wrote FragPos. But it might also +// be the *total* number of varying components, in which case if we wrote FragPos +// it would be 4 * 20 * 6 * 3 = 1440, which would blow it out of the water. However, +// I kind of doubt this interpretation because writing FragPos for each of 18 vertices, +// as the original shader did, already yields 4 * 18 = 72, and it seems unlikely that +// the original example exceeds OpenGL limits. +// +// gl_MaxGeometryOutputComponents has a minimum of 128 and is the maximum number of +// components allowed in out variables; we easily fall under this since we actually +// have 0 of these. However, if we were to write FragPos for each vertex, it *might* +// cause us to exceed this limit, depending on whether it refers to the total output +// component count *including* varying components, or not. See the previous +// discussion; since 72 < 128 it's more plausible that this interpretation might be +// correct, but hopefully it's not. +// +// gl_MaxGeometryInputComponents has a minimum of 64 and we easily fall under that +// limit (I'm actually not sure we even have any user-defined input components?). +// +// gl_MaxGeometryTextureImageUnits = 16 and we have no texture image units (or maybe +// 1, the one we bound?). This might come into play if we were to have attached +// cubemaps instead of a single cubemap array, in which case it would limit us to +// 16 lights *regardless* of any of the fixes mentioned above (i.e., we'd just have +// to split up draw calls, I think). +// +// --- +// +// However, there is another limit to consider: GL_MAX_GEOMETRY_OUTPUT_VERTICES. Its +// minimum is 256, and 20 * 6 * 3 = 360, which exceeds that. This introduces a new +// limit of at most 14 point lights. +// +// Another, related limit is GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS. This counts +// every component output ("component" is usually a 4-byte field of a vector, but maybe +// this would improve with something like half-floats?), and has a minimum (as of +// OpenGL 3.3) of 1024. Since even builtin outputs gl_Layer count against this total, +// this means we issue 5 components per vertex, and 14 * 6 * 3 * 5 = 1260 > 1024. +// +// Ultimately, we find our maximum output limit of 11, ≤ 1024/5/3/6. +// +// If we choose to reserve a slot for a non-point light (and/or other uniforms), it +// is just 10, or half what we got from VERTICES_PER_FACE (we could also round down to +// 8 as a power of 2, if we had to). +// +// Unlike the input limits, whwich we can get around with "clever" solutions, it seems +// likely that the only real way to defeat the vertex limits is to use instancing of +// some sort (be it geometry shader or otherwise). This would restrict us to OpenGL +// 4.0 or above. +// +// A further consideration (were we to switch to OpenGL 4.1-supported features, but +// actually it is often supported on 3.3 hardware with ARB_viewport_array--whereas +// geometry shader instancing is *not* supported on any 3.3 hardware, so would actually +// require us to upgrade) would be setting gl_ViewportIndex. The main reason to consider +// this is that it allows specifying a separate scissor rectangle per viewport. This +// introduces two new constraints. Firstly, it adds an extra component to each vertex +// (lowering our maximum to 9 faces per light ≤ 1024/6/3/6, or 8 if we want to support a +// directional light). +// +// Secondly, a new constant (MAX_VIEWPORTS) is introduced, which would restrict the +// total number of active viewports; the minimum value for this is 16. While this may +// not seem all that relevant since our current hard limit is 11, the difference is that +// this limit would apply *across* instanced calls (since it may be a "global" +// restriction, tied to the OpenGL context; this means it couldn't even be a multiple +// frame buffer thing, as there is usually one per window). This would also tie in +// with gl_MaxGeometryTextureImageUnits, I guess. +// +// -- +// +// I just realized tht using cube map arrays at all bumps our required OpenGL +// version to 4.0, so let's just do instancing... +// +// The instancing limit on MAX_GEOMETRY_SHADER_INVOCATIONS has a minimum of 32, which +// would be sufficient to run through all 32 lights with a different cube map and +// completely removes any imits on ight count. +// +// This should instantly bring us below all relevant limits in all cases considered +// except for the two that would require 16. Unfortunately, 32 is also the *maximum* +// number of point lights, which is much higher than the usual value, and the instance +// count has to be a constant. If we were to instead geometry-shader-instance each +// *face*, we'd get a maximum light count of 56 ≤ 1024/6/3, which is not as elegant +// but is easily higher than 32. So, let's try using that instead. +// +// It is *possible* that using instancing on the *vertex* shader with the (dynamically +// uniform) total number of instances set to the actual number of point lights, would +// improve performance, since it would give us a 1:1 vertex input:output ratio, which +// might be optimized in hardware. +// +// It also seems plausible that constructing a separate geometry shader with values +// from 1 to 32 would be worthwhile, but that seems a little extreme. +// +// --- +// +// Since wgpu doesn't support geometry shaders anyway, it seems likely that we'll have +// to do the multiple draw calls, anyway... I don't think gl_Layer can be set from +// outside a geometry shader. But in wgpu, such a thing is much cheaper, anyway. +#define MAX_POINT_LIGHTS 31 + +// We use geometry shader instancing to construct each face separately. +#define MAX_LAYER_VERTICES_PER_FACE (MAX_POINT_LIGHTS * VERTICES_PER_FACE) + +#define MAX_LAYER_FACES (MAX_POINT_LIGHTS * FACES_PER_POINT_LIGHT) + +layout (triangles/*, invocations = 6*/) in; + +layout (triangle_strip, max_vertices = /*MAX_LAYER_VERTICES_PER_FACE*//*96*/18) out; + +//struct ShadowLocals { +// mat4 shadowMatrices; +// mat4 texture_mat; +//}; +// +//layout (std140) +//uniform u_light_shadows { +// ShadowLocals shadowMats[/*MAX_LAYER_FACES*/192]; +//}; + +// NOTE: We choose not to output FragPos currently to save on space limitations +// (see extensive documentation above). However, as these limitations have been +// relaxed (unless the total of all our varying output components can't exceed +// 128, which would mean FragPos would sum to 4 * 3 * 32 = 384; this could be +// remedied only by setting MAX_POINT_LIGHTS to ), we might enable it again soon. +// +// out vec3 FragPos; // FragPos from GS (output per emitvertex) +// flat out int FragLayer; // Current layer + +// const vec3 normals[6] = vec3[](vec3(-1,0,0), vec3(1,0,0), vec3(0,-1,0), vec3(0,1,0), vec3(0,0,-1), vec3(0,0,1)); + +void main() { + // return; + // NOTE: Assuming that light_shadow_count.x < MAX_POINT_LIGHTS. We could min + // it, but that might make this less optimized, and I'd like to keep this loop as + // optimized as is reasonably possible. + // int face = gl_InvocationID; + + // Part 1: emit directed lights. + /* if (face <= light_shadow_count.z) { + // Directed light. + for(int i = 0; i < VERTICES_PER_FACE; ++i) // for each triangle vertex + { + // NOTE: See above, we don't make FragPos a uniform. + FragPos = gl_in[i].gl_Position; + FragLayer = 0; // 0 is the directed light layer. + // vec4 FragPos = gl_in[i].gl_Position; + gl_Layer = i; // built-in variable that specifies to which face we render. + gl_Position = shadowMats[i].shadowMatrices * FragPos; + EmitVertex(); + } + EndPrimitive(); + } */ + + // Part 2: emit point lights. + /* if (light_shadow_count.x == 1) { + return; + } */ +#if (SHADOW_MODE == SHADOW_MODE_MAP) + for (uint layer = 1u; layer <= min(light_shadow_count.x, 1u); ++layer) + { + int layer_base = int(layer) * FACES_PER_POINT_LIGHT; + // We use instancing here in order to increase the number of emitted vertices. + // int face = gl_InvocationID; + for(int face = 0; face < FACES_PER_POINT_LIGHT; ++face) + { + // int layer_face = layer * FACES_PER_POINT_LIGHT + face; + // int layer_face = layer * FACES_PER_POINT_LIGHT + face; + // for(int i = VERTICES_PER_FACE - 1; i >= 0; --i) // for each triangle vertex + for(int i = 0; i < VERTICES_PER_FACE; ++i) // for each triangle vertex + { + // NOTE: See above, we don't make FragPos a uniform. + vec3 fragPos = gl_in[i].gl_Position.xyz; + // FragPos = fragPos - (lights[((/*FragLayer*/layer - 1u) & 31u)].light_pos.xyz - focus_off.xyz); + // FragLayer = layer; + // float lightDistance = length(FragPos - lights[((layer - 1) & 31)].light_pos.xyz); + // lightDistance /= screen_res.w; + + // vec4 FragPos = gl_in[i].gl_Position; + // NOTE: Our normals map to the same thing as cube map normals, *except* that their normal direction is + // swapped; we can fix this by doing normal ^ 0x1u. However, we also want to cull back faces, not front + // faces, so we only care about the shadow cast by the *back* of the triangle, which means we ^ 0x1u + // again and cancel it out. + // int face = int(((floatBitsToUint(gl_Position.w) >> 29) & 0x7u) ^ 0x1u); + int layer_face = layer_base + face; + gl_Layer = face;//layer_face; // built-in variable that specifies to which face we render. + gl_Position = shadowMats[layer_face].shadowMatrices * vec4(fragPos, 1.0); + // gl_Position.z = -((gl_Position.z + screen_res.z) / (screen_res.w - screen_res.z)) * lightDistance; + // gl_Position.z = gl_Position.z / screen_res.w; + // gl_Position.z = gl_Position.z / gl_Position.w; + // gl_Position.z = -1000.0 / (gl_Position.z + 10000.0); + // lightDistance = -(lightDistance + screen_res.z) / (screen_res.w - screen_res.z); + // gl_Position.z = lightDistance; + EmitVertex(); + } + EndPrimitive(); + } + } +#endif +} diff --git a/assets/voxygen/shaders/light-shadows-vert.glsl b/assets/voxygen/shaders/light-shadows-vert.glsl new file mode 100644 index 0000000..28b349b --- /dev/null +++ b/assets/voxygen/shaders/light-shadows-vert.glsl @@ -0,0 +1,53 @@ +#version 330 core +// #extension ARB_texture_storage : enable + +#include + +#define LIGHTING_TYPE LIGHTING_TYPE_REFLECTION + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_GLOSSY + +#if (FLUID_MODE == FLUID_MODE_LOW) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE +#elif (FLUID_MODE >= FLUID_MODE_MEDIUM) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_RADIANCE +#endif + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +// Currently, we only need globals for focus_off. +#include + +/* Accurate packed shadow maps for many lights at once! + * + * Ideally, we would just write to a bitmask... + * + * */ + +layout(location = 1) in uint v_pos_norm; +// in uint v_col_light; +// in vec4 v_pos; + +// Light projection matrices. +layout (std140, set = 1, binding = 0) +uniform u_locals { + mat4 model_mat; + ivec4 atlas_offs; + float load_time; +}; + +// out vec4 shadowMapCoord; + +const int EXTRA_NEG_Z = 32768; + +void main() { + vec3 f_chunk_pos = vec3(ivec3((uvec3(v_pos_norm) >> uvec3(0, 6, 12)) & uvec3(0x3Fu, 0x3Fu, 0xFFFFu)) - ivec3(0, 0, EXTRA_NEG_Z)); + vec3 f_pos = (model_mat * vec4(f_chunk_pos, 1.0)).xyz - focus_off.xyz; + // f_pos = v_pos; + + gl_Position = /*all_mat * */vec4(f_pos/*, 1.0*/, /*float(((f_pos_norm >> 29) & 0x7u) ^ 0x1)*//*uintBitsToFloat(v_pos_norm)*/1.0); + // shadowMapCoord = lights[gl_InstanceID].light_pos * gl_Vertex; + // vec4(v_pos, 0.0, 1.0); +} diff --git a/assets/voxygen/shaders/lod-object-frag.glsl b/assets/voxygen/shaders/lod-object-frag.glsl new file mode 100644 index 0000000..3e8bf9c --- /dev/null +++ b/assets/voxygen/shaders/lod-object-frag.glsl @@ -0,0 +1,149 @@ +#version 440 core + +#include + +#define LIGHTING_TYPE LIGHTING_TYPE_REFLECTION + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_GLOSSY + +#if (FLUID_MODE == FLUID_MODE_LOW) + #define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE +#elif (FLUID_MODE >= FLUID_MODE_MEDIUM) + #define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_RADIANCE +#endif + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +#include + +layout(location = 0) in vec3 f_pos; +layout(location = 1) in vec3 f_norm; +layout(location = 2) in vec4 f_col; +layout(location = 3) in vec3 model_pos; +layout(location = 4) flat in uint f_flags; + +const uint FLAG_SNOW_COVERED = 1; +const uint FLAG_GLOW = 2; + +layout(location = 0) out vec4 tgt_color; +layout(location = 1) out uvec4 tgt_mat; + +#include +#include +#include + +float lod_voxel_noise(vec3 f_pos) { + #ifdef EXPERIMENTAL_PROCEDURALLODDETAIL + vec3 block_pos = floor(f_pos) + 0.5; + //return (hash_three(uvec3((block_pos + focus_off.xyz) * 0.35)) - 0.5) * 5.0; + return floor((noise_3d((block_pos + focus_off.xyz) * 0.015) - 0.5) * 5.0); + #else + return 0.0; + #endif +} + +void main() { + #ifdef EXPERIMENTAL_BAREMINIMUM + tgt_color = vec4(simple_lighting(f_pos.xyz, f_col.rgb, 1.0), 1); + return; + #endif + + vec3 cam_to_frag = normalize(f_pos - cam_pos.xyz); + vec3 view_dir = -cam_to_frag; + +#if (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_MAP || FLUID_MODE >= FLUID_MODE_MEDIUM) + float f_alt = alt_at(f_pos.xy); +#elif (SHADOW_MODE == SHADOW_MODE_NONE || FLUID_MODE == FLUID_MODE_LOW) + float f_alt = f_pos.z; +#endif + +#if (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_MAP) + vec4 f_shadow = textureMaybeBicubic(t_horizon, s_horizon, pos_to_tex(f_pos.xy)); + float sun_shade_frac = horizon_at2(f_shadow, f_alt, f_pos, sun_dir); +#elif (SHADOW_MODE == SHADOW_MODE_NONE) + float sun_shade_frac = 1.0; +#endif + float moon_shade_frac = 1.0; + + DirectionalLight sun_info = get_sun_info(sun_dir, sun_shade_frac, f_pos); + DirectionalLight moon_info = get_moon_info(moon_dir, moon_shade_frac); + + vec3 surf_color = f_col.rgb; + float alpha = 1.0; + const float n2 = 1.5; + const float R_s2s0 = pow((1.0 - n2) / (1.0 + n2), 2); + const float R_s1s0 = pow((1.3325 - n2) / (1.3325 + n2), 2); + const float R_s2s1 = pow((1.0 - 1.3325) / (1.0 + 1.3325), 2); + const float R_s1s2 = pow((1.3325 - 1.0) / (1.3325 + 1.0), 2); + float R_s = (f_pos.z < f_alt) ? mix(R_s2s1 * R_s1s0, R_s1s0, medium.x) : mix(R_s2s0, R_s1s2 * R_s2s0, medium.x); + + vec3 k_a = vec3(1.0); + vec3 k_d = vec3(1.0); + vec3 k_s = vec3(R_s); + + vec3 voxel_norm = f_norm; + float my_alt = f_pos.z + focus_off.z; + float f_ao = 1.0; + const float VOXELIZE_DIST = 2000; + float voxelize_factor = clamp(1.0 - (distance(cam_pos.xy, f_pos.xy) - view_distance.x) * (1.0 / VOXELIZE_DIST), 0, 1.0); + vec3 cam_dir = cam_to_frag; + #ifdef EXPERIMENTAL_NOLODVOXELS + //vec3 side_norm = normalize(vec3(f_norm.xy, 0)); + //vec3 top_norm = vec3(0, 0, 1); + voxel_norm = f_norm;//normalize(mix(side_norm, top_norm, cam_dir.z)); + #else + float base_surf_depth = lod_voxel_noise(f_pos); + float t = -1.5 + base_surf_depth; + while (t < 1.5 + base_surf_depth) { + vec3 deltas = (step(vec3(0), -cam_dir) - fract(f_pos - cam_dir * t)) / -cam_dir; + float m = min(min(deltas.x, deltas.y), deltas.z); + + t += max(m, 0.01); + + vec3 block_pos = floor(f_pos - cam_dir * t) + 0.5; + float surf_depth = lod_voxel_noise(f_pos); + if (dot(block_pos - f_pos - f_norm * surf_depth, -f_norm) < 0.0) { + vec3 to_center = abs(block_pos - (f_pos - cam_dir * t)); + voxel_norm = step(max(max(to_center.x, to_center.y), to_center.z), to_center) * sign(-cam_dir); + voxel_norm = mix(f_norm, voxel_norm, voxelize_factor); + surf_color *= mix(0.65, 1.0, hash_three(uvec3(block_pos + focus_off.xyz))); + f_ao = mix(1.0, clamp(1.0 + t - surf_depth, 0.1, 1.0), voxelize_factor * max(0.0, -dot(cam_dir, f_norm))); + break; + } + } + #endif + + vec3 emitted_light, reflected_light; + + // To account for prior saturation. + float max_light = 0.0; + + vec3 cam_attenuation = vec3(1); + float fluid_alt = max(f_pos.z + 1, floor(f_alt + 1)); + vec3 mu = medium.x == MEDIUM_WATER ? MU_WATER : vec3(0.0); + + max_light += get_sun_diffuse2(sun_info, moon_info, voxel_norm, view_dir, f_pos, mu, cam_attenuation, fluid_alt, k_a, k_d, k_s, alpha, voxel_norm, 1.0, emitted_light, reflected_light); + + emitted_light *= f_ao; + reflected_light *= f_ao; + + vec3 glow = vec3(0); + if ((f_flags & FLAG_GLOW) > 0u) { + glow += vec3(1, 0.7, 0.3) * 2; + } + + vec3 side_color = surf_color; + vec3 top_color = surf_color; + if ((f_flags & FLAG_SNOW_COVERED) > 0u && f_norm.z > 0.0) { + side_color = mix(side_color, vec3(0.5, 0.6, 1.0), f_norm.z); + top_color = mix(top_color, surf_color * 0.3, 0.5 + f_norm.z * 0.5); + } + surf_color = mix(side_color, top_color, pow(fract(model_pos.z * 0.1), 2.0)); + + surf_color = illuminate(max_light, view_dir, surf_color * emitted_light + glow, surf_color * reflected_light); + + tgt_color = vec4(surf_color, 1.0); + tgt_mat = uvec4(uvec3((f_norm + 1.0) * 127.0), MAT_LOD); +} diff --git a/assets/voxygen/shaders/lod-object-vert.glsl b/assets/voxygen/shaders/lod-object-vert.glsl new file mode 100644 index 0000000..b4d130f --- /dev/null +++ b/assets/voxygen/shaders/lod-object-vert.glsl @@ -0,0 +1,75 @@ +#version 440 core + +#include + +#define LIGHTING_TYPE LIGHTING_TYPE_REFLECTION + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_GLOSSY + +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +#include +#include +#include +#include + +layout(location = 0) in vec3 v_pos; +layout(location = 1) in vec3 v_norm; +layout(location = 2) in vec3 v_col; +layout(location = 3) in uint v_flags; +layout(location = 4) in vec3 inst_pos; +layout(location = 5) in vec3 inst_col; +layout(location = 6) in uint inst_flags; + +const uint FLAG_INST_COLOR = 1; +const uint FLAG_INST_GLOW = 2; + +const uint FLAG_INST_ROTATION = 4 | 8; + +layout(location = 0) out vec3 f_pos; +layout(location = 1) out vec3 f_norm; +layout(location = 2) out vec4 f_col; +layout(location = 3) out vec3 model_pos; +layout(location = 4) flat out uint f_flags; + +void main() { + vec3 obj_pos = inst_pos - focus_off.xyz; + uint rot_bits = (inst_flags & FLAG_INST_ROTATION) >> 2; + + float sign = float(rot_bits >> 1) * 2.0 - 1.0; + float d_y = float(rot_bits & 1); + float d_x = 1.0 - d_y; + mat2 rot = sign * mat2(d_x, -d_y, d_y, d_x); + + vec3 local_pos = vec3(rot * v_pos.xy, v_pos.z); + f_pos = obj_pos + local_pos; + model_pos = v_pos; + + float pull_down = 1.0 / pow(distance(focus_pos.xy, obj_pos.xy) / (view_distance.x * 0.95), 150.0); + #ifdef EXPERIMENTAL_TERRAINPOP + f_pos.z -= pull_down; + #else + f_pos.z -= step(0.1, pull_down) * 10000.0; + #endif + + #ifdef EXPERIMENTAL_CURVEDWORLD + f_pos.z -= pow(distance(f_pos.xy + focus_off.xy, focus_pos.xy + focus_off.xy) * 0.05, 2); + #endif + + f_norm = vec3(rot * v_norm.xy, v_norm.z); + + if ((v_flags & FLAG_INST_COLOR) > 0u) { + f_col = vec4(inst_col, 1.0); + } else { + f_col = vec4(v_col, 1.0); + } + f_flags = inst_flags | (v_flags & FLAG_INST_GLOW); + + gl_Position = + all_mat * + vec4(f_pos, 1); +} diff --git a/assets/voxygen/shaders/lod-terrain-frag.glsl b/assets/voxygen/shaders/lod-terrain-frag.glsl new file mode 100644 index 0000000..05759c7 --- /dev/null +++ b/assets/voxygen/shaders/lod-terrain-frag.glsl @@ -0,0 +1,401 @@ +#version 440 core + +#include + +#define LIGHTING_TYPE LIGHTING_TYPE_REFLECTION + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_GLOSSY + +#if (FLUID_MODE == FLUID_MODE_LOW) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE +#elif (FLUID_MODE >= FLUID_MODE_MEDIUM) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_RADIANCE +#endif + +// #define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_VOXEL +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +#define HAS_LOD_FULL_INFO + +#include +#include +#include + +layout(location = 0) in vec3 f_pos; +layout(location = 1) in vec3 f_norm; +layout(location = 2) in float pull_down; +// in vec2 v_pos_orig; +// in vec4 f_shadow; +// in vec4 f_square; + +layout(location = 0) out vec4 tgt_color; +layout(location = 1) out uvec4 tgt_mat; + +/// const vec4 sun_pos = vec4(0); +// const vec4 light_pos[2] = vec4[](vec4(0), vec4(0)/*, vec3(00), vec3(0), vec3(0), vec3(0)*/); + +#include + +void main() { + // tgt_color = vec4(vec3(1.0), 1.0); + // return; + // vec3 f_pos = lod_pos(f_pos.xy); + // vec3 f_col = lod_col(f_pos.xy); + + // vec4 vert_pos4 = view_mat * vec4(f_pos, 1.0); + // vec3 view_dir = normalize(-vec3(vert_pos4)/* / vert_pos4.w*/); + + #ifdef EXPERIMENTAL_BAREMINIMUM + tgt_color = vec4(simple_lighting(f_pos.xyz, lod_col(f_pos.xy), 1.0), 1); + return; + #endif + + float my_alt = /*f_pos.z;*/alt_at_real(f_pos.xy); + // vec3 f_pos = vec3(f_pos.xy, max(my_alt, f_pos.z)); + /* gl_Position = + proj_mat * + view_mat * + vec4(f_pos, 1); + gl_Position.z = -1000.0 / (gl_Position.z + 10000.0); */ + vec3 my_pos = vec3(f_pos.xy, my_alt); + //vec3 my_norm = lod_norm(f_pos.xy/*, f_square*/); + + //float which_norm = dot(my_norm, normalize(cam_pos.xyz - my_pos)); + // which_norm = 0.5 + which_norm * 0.5; + + // which_norm = pow(max(0.0, which_norm), /*0.03125*/1 / 8.0);// * 0.5; + // smoothstep + //which_norm = which_norm * which_norm * (3 - 2 * abs(which_norm)); + + // which_norm = mix(0.0, 1.0, which_norm > 0.0); + // vec3 normals[6] = vec3[](vec3(-1,0,0), vec3(1,0,0), vec3(0,-1,0), vec3(0,1,0), vec3(0,0,-1), vec3(0,0,1)); + vec3 f_norm = lod_norm(f_pos.xy);//mix(faceforward(f_norm, cam_pos.xyz - f_pos, -f_norm), my_norm, which_norm); + vec3 f_pos = mix(f_pos, my_pos, f_norm); + // vec3 fract_pos = fract(f_pos); + /* if (length(f_pos - cam_pos.xyz) <= view_distance.x + 32.0) { + vec4 new_f_pos; + float depth = 10000000.0; + vec4 old_coord = all_mat * vec4(f_pos.xyz, 1.0); + for (int i = 0; i < 6; i ++) { + // vec4 square = focus_pos.xy + vec4(splay(pos - vec2(1.0, 1.0), splay(pos + vec2(1.0, 1.0)))); + vec3 my_f_norm = normals[i]; + vec3 my_f_tan = normals[(i + 2) % 6]; + vec3 my_f_bitan = normals[(i + 4) % 6]; + mat4 foo = mat4(vec4(my_f_tan, 0), vec4(my_f_bitan, 0), vec4(my_f_norm, 0), vec4(0, 0, 0, 1)); + mat4 invfoo = foo * inverse(foo * all_mat); + vec4 my_f_pos = invfoo * (old_coord);//vec4(f_pos, 1.0); + vec4 my_f_proj = all_mat * my_f_pos; + if (my_f_proj.z <= depth) { + new_f_pos = my_f_pos; + f_norm = my_f_norm; + depth = my_f_proj.z; + } + } + // f_pos = new_f_pos.xyz; + } */ + + // Test for distance to all 6 sides of the enclosing cube. + // if (/*any(lessThan(fract(f_pos.xy), 0.01))*/fract_pos.x <= 0.1) { + // f_norm = faceforward(vec3(-1, 0, 0), f_norm, vec3(1, 0, 0)); + // f_tan = vec3(0, 1, 0); + // } else if (fract_pos.y <= 0.1) { + // f_norm = faceforward(vec3(0, -1, 0), f_norm, vec3(0, 1, 0)); + // f_tan = vec3(0, 0, 1); + // } else { + // f_norm = faceforward(vec3(0, 0, -1), f_norm, vec3(0, 0, 1)); + // f_tan = vec3(1, 0, 0); + // } + // vec3 f_bitan = cross(f_norm, f_tan); + + // mat4 foo = mat4(vec4(f_tan, 0), vec4(f_bitan, 0), vec4(f_norm, 0), vec4(0, 0, 0, 1)); + // mat4 invfoo = foo * inverse(foo * all_mat); + // vec3 old_coord = all_mat * vec4(f_pos.xyz, 1.0); + // vec4 new_f_pos = invfoo * (old_coord);//vec4(f_pos, 1.0); + vec3 f_col_raw = mix(lod_col(f_pos.xy), vec3(0), clamp(pull_down / 30, 0, 1)); + // tgt_color = vec4(f_col, 1.0); + + vec3 cam_to_frag = normalize(f_pos - cam_pos.xyz); + vec3 view_dir = -cam_to_frag; + + float f_ao = 1.0; + vec3 voxel_norm = f_norm; + const float VOXELIZE_DIST = 2000; + float voxelize_factor = clamp(1.0 - (distance(cam_pos.xy, f_pos.xy) - view_distance.x) * (1.0 / VOXELIZE_DIST), 0, 1); + vec3 cam_dir = cam_to_frag; + #ifdef EXPERIMENTAL_NOLODVOXELS + //vec3 side_norm = normalize(vec3(my_norm.xy, 0.01)); + //vec3 top_norm = vec3(0, 0, 1); + voxel_norm = f_norm;//normalize(mix(side_norm, top_norm, max(cam_dir.z, 0.0))); + #else + #ifdef EXPERIMENTAL_PROCEDURALLODDETAIL + float nz_offset = floor((noise_2d((floor(f_pos.xy) + focus_off.xy) * 0.01) - 0.5) * 3.0 / max(f_norm.z, 0.01)); + #else + const float nz_offset = 0.0; + #endif + + float t = -2.0 + nz_offset; + while (t < 2.0 + nz_offset) { + vec3 deltas = (step(vec3(0), -cam_dir) - fract(f_pos - cam_dir * t)) / -cam_dir; + float m = min(min(deltas.x, deltas.y), deltas.z); + + t += max(m, 0.01); + + vec3 block_pos = floor(f_pos - cam_dir * t) + 0.5; + if (dot(block_pos - f_pos - nz_offset * f_norm, -f_norm) < 0.0) { + vec3 to_center = abs(block_pos - (f_pos - cam_dir * t)); + voxel_norm = step(max(max(to_center.x, to_center.y), to_center.z), to_center) * sign(-cam_dir); + voxel_norm = mix(f_norm, voxel_norm, voxelize_factor); + f_ao = mix(1.0, clamp(1.0 + (t - nz_offset) * 0.5, 0.1, 1.0), voxelize_factor * max(0.0, -dot(cam_dir, f_norm))); + break; + } + } + #endif + + /* vec3 sun_dir = get_sun_dir(time_of_day.x); + vec3 moon_dir = get_moon_dir(time_of_day.x); */ + // voxel_norm = vec3(0.0); + +#if (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_MAP || FLUID_MODE >= FLUID_MODE_MEDIUM) + float shadow_alt = /*f_pos.z;*/alt_at(f_pos.xy);//max(alt_at(f_pos.xy), f_pos.z); + // float shadow_alt = f_pos.z; +#elif (SHADOW_MODE == SHADOW_MODE_NONE || FLUID_MODE == FLUID_MODE_LOW) + float shadow_alt = f_pos.z; +#endif + +#if (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_MAP) + vec4 f_shadow = textureMaybeBicubic(t_horizon, s_horizon, pos_to_tex(f_pos.xy)); + float sun_shade_frac = horizon_at2(f_shadow, shadow_alt, f_pos, sun_dir); + // float sun_shade_frac = 1.0; +#elif (SHADOW_MODE == SHADOW_MODE_NONE) + float sun_shade_frac = 1.0;//horizon_at2(f_shadow, shadow_alt, f_pos, sun_dir); +#endif + float moon_shade_frac = 1.0;//horizon_at2(f_shadow, shadow_alt, f_pos, moon_dir); + + // Magic stop-gap code without any physical justification. + //vec3 lerpy_norm; + //if (my_norm.z/*f_norm.z*/ > 0.99999) { + // lerpy_norm = vec3(0, 0, 1); + //} else { + // vec3 side_norm = normalize(vec3(my_norm.xy, 0)); + // // lerpy_norm = f_norm; + // float mix_factor = clamp(abs(dot(f_orig_view_dir, side_norm)), 0, 1); + // lerpy_norm = mix( + // mix(my_norm, side_norm, clamp(dot(side_norm, my_norm) + 0.5, 0, 1)), + // my_norm, + // mix_factor + // ); + //} + //const float DIST = 0.07; + /* voxel_norm = normalize(mix(voxel_norm, lerpy_norm, clamp(my_norm.z * my_norm.z - (1.0 - DIST), 0, 1) / DIST)); */ + + //f_pos.xyz += abs(voxel_norm) * delta_sides; + /* voxel_norm = mix(my_norm, voxel_norm == vec3(0.0) ? f_norm : voxel_norm, voxelize_factor); */ + + //vec3 hash_pos = f_pos + focus_off.xyz; + //const float A = 0.055; + //const float W_INV = 1 / (1 + A); + //const float W_2 = W_INV * W_INV;//pow(W_INV, 2.4); + //const float NOISE_FACTOR = 0.02;//pow(0.02, 1.2); + //float noise = hash(vec4(floor(hash_pos * 3.0 - voxel_norm * 0.5), 0));//0.005/* - 0.01*/; + //vec3 noise_delta = (sqrt(f_col_raw) * W_INV + noise * NOISE_FACTOR); + // noise_delta = noise_delta * noise_delta * W_2 - f_col; + // lum = W ⋅ col + // lum + noise = W ⋅ (col + delta) + // W ⋅ col + noise = W ⋅ col + W ⋅ delta + // noise = W ⋅ delta + // delta = noise / W + // vec3 col = (f_col + noise_delta); + // vec3 col = noise_delta * noise_delta * W_2; + + vec3 f_col = f_col_raw;//noise_delta * noise_delta * W_2; + // f_col = /*srgb_to_linear*/(f_col + hash(vec4(floor(hash_pos * 3.0 - voxel_norm * 0.5), 0)) * 0.01/* - 0.01*/); // Small-scale noise + + // f_ao = 1.0; + // f_ao = dot(f_ao_vec, sqrt(1.0 - delta_sides * delta_sides)); + + //f_ao *= dot(f_ao_vec, abs(voxel_norm)); + // f_ao = sqrt(dot(f_ao_vec * abs(voxel_norm), sqrt(1.0 - delta_sides * delta_sides)) / 3.0); + + // vec3 ao_pos2 = min(fract(f_pos), 1.0 - fract(f_pos)); + // f_ao = sqrt(dot(ao_pos2, ao_pos2)); + // // f_ao = dot(abs(voxel_norm), f_ao_vec); + // // voxel_norm = f_norm; + + // Note: because voxels, we reduce the normal for reflections to just its z component, dpendng on distance to camera. + // Idea: the closer we are to facing top-down, the more the norm should tend towards up-z. + // vec3 l_norm; // = vec3(0.0, 0.0, 1.0); + // vec3 l_norm = normalize(vec3(f_norm.x / max(abs(f_norm.x), 0.001), f_norm.y / max(abs(f_norm.y), 0.001), f_norm.z / max(abs(f_norm.z), 0.001))); + // vec3 l_factor = 1.0 / (1.0 + max(abs(/*f_pos - cam_pos.xyz*//*-vec3(vert_pos4) / vert_pos4.w*/vec3(f_pos.xy, 0.0) - vec3(/*cam_pos*/focus_pos.xy, cam_to_frag)) - vec3(view_distance.x, view_distance.x, 0.0), 0.0) / vec3(32.0 * 2.0, 32.0 * 2.0, 1.0)); + // l_factor.z = + // vec4 focus_pos4 = view_mat * vec4(focus_pos.xyz, 1.0); + // vec3 focus_dir = normalize(-vec3(focus_pos4) / focus_pos4.w); + + // float l_factor = 1.0 - pow(clamp(0.5 + 0.5 * dot(/*-view_dir*/-cam_to_frag, l_norm), 0.0, 1.0), 2.0);//1.0 / (1.0 + 0.5 * pow(max(distance(/*focus_pos.xy*/vec3(focus_pos.xy, /*vert_pos4.z / vert_pos4.w*/f_pos.z), vec3(f_pos.xy, f_pos.z))/* - view_distance.x*/ - 32.0, 0.0) / (32.0 * 1.0), /*0.5*/1.0)); + // l_factor = 1.0; + // l_norm = normalize(mix(l_norm, f_norm, l_factor)); + // l_norm = f_norm; + + /* l_norm = normalize(vec3( + mix(l_norm.x, f_norm.x, clamp(pow(f_norm.x * 0.5, 64), 0, 1)), + mix(-1.0, 1.0, clamp(pow(f_norm.y * 0.5, 64), 0, 1)), + mix(-1.0, 1.0, clamp(pow(f_norm.z * 0.5, 64), 0, 1)) + )); */ + // f_norm = mix(l_norm, f_norm, min(1.0 / max(cam_to_frag, 0.001), 1.0)); + /* vec3 l_norm = normalize(vec3( + mix(-1.0, 1.0, clamp(pow(f_norm.x * 0.5, 64), 0, 1)), + mix(-1.0, 1.0, clamp(pow(f_norm.y * 0.5, 64), 0, 1)), + mix(-1.0, 1.0, clamp(pow(f_norm.z * 0.5, 64), 0, 1)) + )); */ + // vec3 view_dir = normalize(f_pos - cam_pos.xyz); + + + // vec3 sun_dir = get_sun_dir(time_of_day.x); + // vec3 moon_dir = get_moon_dir(time_of_day.x); + // // float sun_light = get_sun_brightness(sun_dir); + // // float moon_light = get_moon_brightness(moon_dir); + // // float my_alt = f_pos.z;//alt_at_real(f_pos.xy); + // // vec3 f_norm = my_norm; + // // vec4 f_shadow = textureMaybeBicubic(t_horizon, pos_to_tex(f_pos.xy)); + // // float shadow_alt = /*f_pos.z;*/alt_at(f_pos.xy);//max(alt_at(f_pos.xy), f_pos.z); + // // float my_alt = alt_at(f_pos.xy); + // float sun_shade_frac = horizon_at2(f_shadow, shadow_alt, f_pos, sun_dir); + // float moon_shade_frac = horizon_at2(f_shadow, shadow_alt, f_pos, moon_dir); + // // float sun_shade_frac = horizon_at(/*f_shadow, f_pos.z, */f_pos, sun_dir); + // // float moon_shade_frac = horizon_at(/*f_shadow, f_pos.z, */f_pos, moon_dir); + // // Globbal illumination "estimate" used to light the faces of voxels which are parallel to the sun or moon (which is a very common occurrence). + // // Will be attenuated by k_d, which is assumed to carry any additional ambient occlusion information (e.g. about shadowing). + // // float ambient_sides = clamp(mix(0.5, 0.0, abs(dot(-f_norm, sun_dir)) * 10000.0), 0.0, 0.5); + // // NOTE: current assumption is that moon and sun shouldn't be out at the sae time. + // // This assumption is (or can at least easily be) wrong, but if we pretend it's true we avoids having to explicitly pass in a separate shadow + // // for the sun and moon (since they have different brightnesses / colors so the shadows shouldn't attenuate equally). + // // float shade_frac = sun_shade_frac + moon_shade_frac; + // // float brightness_denominator = (ambient_sides + vec3(SUN_AMBIANCE * sun_light + moon_light); + + // DirectionalLight sun_info = get_sun_info(sun_dir, sun_shade_frac, light_pos); + DirectionalLight sun_info = get_sun_info(sun_dir, sun_shade_frac, /*sun_pos*/f_pos); + DirectionalLight moon_info = get_moon_info(moon_dir, moon_shade_frac/*, light_pos*/); + + float alpha = 1.0;//0.1;//0.2;///1.0;//sqrt(2.0); + const float n2 = 1.5; + const float R_s2s0 = pow((1.0 - n2) / (1.0 + n2), 2); + const float R_s1s0 = pow((1.3325 - n2) / (1.3325 + n2), 2); + const float R_s2s1 = pow((1.0 - 1.3325) / (1.0 + 1.3325), 2); + const float R_s1s2 = pow((1.3325 - 1.0) / (1.3325 + 1.0), 2); + float cam_alt = alt_at(cam_pos.xy); + float fluid_alt = medium.x == MEDIUM_WATER ? max(cam_alt + 1, floor(shadow_alt)) : view_distance.w; + float R_s = (f_pos.z < my_alt) ? mix(R_s2s1 * R_s1s0, R_s1s0, medium.x) : mix(R_s2s0, R_s1s2 * R_s2s0, medium.x); + + vec3 emitted_light, reflected_light; + + vec3 mu = medium.x == MEDIUM_WATER ? MU_WATER : vec3(0.0); + // NOTE: Default intersection point is camera position, meaning if we fail to intersect we assume the whole camera is in water. + vec3 cam_attenuation = compute_attenuation_point(f_pos, view_dir, mu, fluid_alt, /*cam_pos.z <= fluid_alt ? cam_pos.xyz : f_pos*/cam_pos.xyz); + // Use f_norm here for better shadows. + // vec3 light_frac = light_reflection_factor(f_norm/*l_norm*/, view_dir, vec3(0, 0, -1.0), vec3(1.0), vec3(/*1.0*/R_s), alpha); + + // vec3 light, diffuse_light, ambient_light; + // get_sun_diffuse(f_norm, time_of_day.x, cam_to_frag, (0.25 * shade_frac + 0.25 * light_frac) * f_col, 0.5 * shade_frac * f_col, 0.5 * shade_frac * /*vec3(1.0)*/f_col, 2.0, emitted_light, reflected_light); + float max_light = 0.0; + vec3 k_a = vec3(1.0); + vec3 k_d = vec3(1.0); + max_light += get_sun_diffuse2(sun_info, moon_info, voxel_norm/*l_norm*/, view_dir, f_pos, vec3(0.0), cam_attenuation, fluid_alt, k_a/* * (0.5 * light_frac + vec3(0.5 * shade_frac))*/, k_d, /*0.5 * shade_frac * *//*vec3(1.0)*//*f_col*/vec3(R_s), alpha, voxel_norm, 0.0/*max(distance(focus_pos.xy, f_pos.xyz) - view_distance.x, 0.0) / 1000 < 1.0*/, emitted_light, reflected_light); + // emitted_light = vec3(1.0); + // emitted_light *= max(shade_frac, MIN_SHADOW); + // reflected_light *= shade_frac; + // max_light *= shade_frac; + // reflected_light = vec3(0.0); + + // dot(diffuse_factor, /*R_r * */vec4(abs(norm) * (1.0 - dist), dist)) + + // corner_xy = mix(all(lessThan(corner_xy, 1.0)) ? vec2(0.0) : 0.4 * (), 1.0 + // + // TODO: Handle similar logic for z. + + // So we repeat this for all three sides to find the "next" position on each side. + // vec3 delta_sides = 1.0 + sides * fract(-sides * f_pos); + // Now, we + // Now, all we have to do is find out whether (again, assuming f_pos is positive) next_sides represents a new integer. + // We currently just treat this as "new floor != old floor". + + // So to find the position at the nearest voxel, we just subtract voxel_norm * fract(sides * ) from f_pos.z. + // Then to find out whether we meet a new "block" in 1 voxel, we just + // on the "other" side can be found (according to my temporary theory) as the cross product + // vec3 norm = normalize(cross( + // vec3(/*2.0 * SAMPLE_W*/square.z - square.x, 0.0, altx1 - altx0), + // vec3(0.0, /*2.0 * SAMPLE_W*/square.w - square.y, alty1 - alty0) + // )); + // vec3 norm = normalize(vec3( + // (altx0 - altx1) / (square.z - square.x), + // (alty0 - alty1) / (square.w - square.y), + // 1.0 + // //(abs(square.w - square.y) + abs(square.z - square.x)) / (slope + 0.00001) // Avoid NaN + // )); + // + // If a side coordinate is 0, then it counts as no AO; + // otherwise, it counts as fractional AO. So what we need is to know whether the fractional AO to the next block in that direction pushes us to a new integer. + // + // vec3 ao_pos_z = floor(f_pos + f_norm); + // vec3 ao_pos_z = corner_distance; + // vec3 ao_pos = 0.5 - clamp(min(fract(abs(f_pos)), 1.0 - fract(abs(f_pos))), 0.0, 0.5); + // + // f_ao = /*sqrt*/1.0 - 2.0 * sqrt(dot(ao_pos, ao_pos) / 2.0); + // f_ao = /*sqrt*/1.0 - (dot(ao_pos, ao_pos)/* / 2.0*/); + // f_ao = /*sqrt*/1.0 - 2.0 * (dot(ao_pos, ao_pos)/* / 2.0*/); + // f_ao = /*sqrt*/1.0 - 2.0 * sqrt(dot(ao_pos, ao_pos) / 2.0); + float ao = f_ao;// /*pow(f_ao, 0.5)*/f_ao * 0.9 + 0.1; + emitted_light *= ao; + reflected_light *= ao; + + // emitted_light += 0.5 * vec3(SUN_AMBIANCE * sun_shade_frac * sun_light + moon_shade_frac * moon_light) * f_col * (ambient_sides + 1.0); + + // Ambient lighting attempt: vertical light. + // reflected_light += /*0.0125*/0.15 * 0.25 * _col * light_reflection_factor(f_norm, cam_to_frag, vec3(0, 0, -1.0), 0.5 * f_col, 0.5 * f_col, 2.0); + // emitted_light += /*0.0125*/0.25 * f_col * ; + // vec3 light, diffuse_light, ambient_light; + // get_sun_diffuse(f_norm, time_of_day.x, light, diffuse_light, ambient_light, 1.0); + // vec3 surf_color = illuminate(f_col, light, diffuse_light, ambient_light); + // f_col = f_col + (hash(vec4(floor(vec3(focus_pos.xy + splay(v_pos_orig), f_pos.z)) * 3.0 - round(f_norm) * 0.5, 0)) - 0.5) * 0.05; // Small-scale noise + vec3 surf_color; + float surf_alpha = 1.0; + uint mat; + // NOTE: On nvidea vulkan drivers a `pow` with negative base results in NaN even if the + // exponent is an integer. + vec3 water_col_diff = f_col_raw - vec3(0.02, 0.06, 0.22); + if (dot(water_col_diff * water_col_diff, vec3(1)) < 0.01 && dot(vec3(0, 0, 1), f_norm) > 0.9) { + mat = MAT_FLUID; + vec3 reflect_ray = cam_to_frag * vec3(1, 1, -1); + #if (FLUID_MODE >= FLUID_MODE_MEDIUM) + vec3 water_color = (1.0 - MU_WATER) * MU_SCATTER; + + float passthrough = dot(faceforward(f_norm, f_norm, cam_to_frag), -cam_to_frag); + + vec3 reflect_color; + #if (FLUID_MODE == FLUID_MODE_HIGH) + reflect_color = get_sky_color(reflect_ray, f_pos, vec3(-100000), 0.125, false, 1.0, true, sun_shade_frac); + reflect_color = get_cloud_color(reflect_color, reflect_ray, cam_pos.xyz, 100000.0, 0.1); + #else + reflect_color = get_sky_color(reflect_ray, f_pos, vec3(-100000), 0.125, false, 1.0, true, sun_shade_frac); + #endif + reflect_color *= sun_shade_frac * 0.75 + 0.25; + + const float REFLECTANCE = 1.0; + surf_color = illuminate(max_light, view_dir, f_col * emitted_light, reflect_color * REFLECTANCE + water_color * reflected_light); + + const vec3 underwater_col = vec3(0.0); + float min_refl = min(emitted_light.r, min(emitted_light.g, emitted_light.b)); + surf_color = mix(underwater_col, surf_color, (1.0 - passthrough) * 1.0 / (1.0 + min_refl)); + surf_alpha = 1.0 - passthrough; + #else + surf_alpha = 0.9; + surf_color = get_sky_color(reflect_ray, f_pos, vec3(-100000), 0.125, true, 1.0, true, sun_shade_frac); + #endif + } else { + mat = MAT_LOD; + surf_color = illuminate(max_light, view_dir, f_col * emitted_light, f_col * reflected_light); + } + + tgt_color = vec4(surf_color, surf_alpha); + tgt_mat = uvec4(uvec3((f_norm + 1.0) * 127.0), mat); +} diff --git a/assets/voxygen/shaders/lod-terrain-vert.glsl b/assets/voxygen/shaders/lod-terrain-vert.glsl new file mode 100644 index 0000000..ae2810d --- /dev/null +++ b/assets/voxygen/shaders/lod-terrain-vert.glsl @@ -0,0 +1,115 @@ +#version 440 core + +#include + +#define LIGHTING_TYPE LIGHTING_TYPE_REFLECTION + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_GLOSSY + +#if (FLUID_MODE == FLUID_MODE_LOW) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE +#elif (FLUID_MODE >= FLUID_MODE_MEDIUM) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_RADIANCE +#endif + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_VOXEL + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +#include +#include +#include + +layout(location = 0) in vec2 v_pos; + +layout(location = 0) out vec3 f_pos; +layout(location = 1) out vec3 f_norm; +layout(location = 2) out float pull_down; +// out vec2 v_pos_orig; +// out vec4 f_square; +// out vec4 f_shadow; +// out float f_light; + +void main() { + // Find distances between vertices. Pull down a tiny bit more to reduce z fighting near the ocean. + f_pos = lod_pos(v_pos, focus_pos.xy) - vec3(0, 0, 0.1); + #ifndef EXPERIMENTAL_BAREMINIMUM + vec2 dims = vec2(1.0 / view_distance.y); + vec4 f_square = focus_pos.xyxy + vec4(splay(v_pos - dims), splay(v_pos + dims)); + f_norm = lod_norm(f_pos.xy, f_square); + #endif + // v_pos_orig = v_pos; + + // f_pos = lod_pos(focus_pos.xy + splay(v_pos) * /*1000000.0*/(1 << 20), square); + + // f_norm = lod_norm(f_pos.xy); + + // f_shadow = textureMaybeBicubic(t_horizon, pos_to_tex(f_pos.xy)); + + // TODO: disabled because it isn't designed to work with reverse depth + //float dist = distance(focus_pos.xy, f_pos.xy); + //pull_down = 0.2 / pow(dist / (view_distance.x * 0.9), 20.0); + + pull_down = 1.0 / pow(distance(focus_pos.xy, f_pos.xy) / (view_distance.x * 0.95), 20.0); + f_pos.z -= pull_down; + + #ifdef EXPERIMENTAL_CURVEDWORLD + f_pos.z -= pow(distance(f_pos.xy + focus_off.xy, focus_pos.xy + focus_off.xy) * 0.05, 2); + #endif + + // f_pos.z -= 100.0 * pow(1.0 + 0.01 / view_distance.x, -pow(distance(focus_pos.xy, f_pos.xy), 2.0)); + // f_pos.z = mix(-f_pos.z, f_pos.z, view_distance.x <= distance(focus_pos.xy, f_pos.xy) + 32.0); + + // bool faces_fluid = false;// bool((f_pos_norm >> 28) & 0x1u); + // // TODO: Measure real water surface altitude here. + // float surfaceAlt = mix(view_distance.z, /*floor*/(min(f_pos.z, floor(alt_at_real(cam_pos.xy)))), medium.x); + // // float surfaceAlt = mix(view_distance.z, floor(max(cam_pos.z, alt_at_real(cam_pos.xy))), medium.x); + // // float surfaceAlt = min(floor(f_pos.z), floor(alt_at_real(cam_pos.xy))); // faces_fluid ? max(ceil(f_pos.z), floor(f_alt)) : floor(f_alt); + + // f_pos.z -= max(sign(view_distance.x - distance(focus_pos.xy, f_pos.xy)), 0.0) * (32.0 * view_distance.z / 255 + 32.0 * max(0.0, f_pos.z - cam_pos.z)); + // f_pos.z -= 0.1 + max(view_distance.x - distance(focus_pos.xy, f_pos.xy), 0.0) * (1.0 + max(1.0, ceil(f_pos.z - focus_pos.z))); + + // vec3 wRayinitial = f_pos; // cam_pos.z < f_pos.z ? f_pos : cam_pos.xyz; + // vec3 wRayfinal = cam_pos.xyz; // cam_pos.z < f_pos.z ? cam_pos.xyz : f_pos; + // wRayfinal = dot(wRayfinal - wRayinitial, focus_pos.xyz - cam_pos.xyz) < 0.0 ? wRayfinal : wRayinitial; + // vec3 wRayNormal = /*surfaceAlt < wRayinitial.z ? vec3(0.0, 0.0, -1.0) : */vec3(0.0, 0.0, 1.0); + // float n_camera = mix(1.0, 1.3325, medium.x); + // float n_vertex = faces_fluid ? 1.3325 : 1.0; + // float n1 = n_vertex; // cam_pos.z < f_pos.z ? n_vertex : n_camera; + // float n2 = n_camera; // cam_pos.z < f_pos.z ? n_camera : n_vertex; + + // float wRayLength0 = length(wRayfinal - wRayinitial); + // vec3 wRayDir = (wRayfinal - wRayinitial) / wRayLength0; + // vec3 wPoint = wRayfinal; + // bool wIntersectsSurface = IntersectRayPlane(wRayinitial, wRayDir, vec3(0.0, 0.0, surfaceAlt), -wRayNormal, wPoint); + // float wRayLength = length(wPoint - wRayinitial); + // wPoint = wRayLength < wRayLength0 ? wPoint : wRayfinal; + // wRayLength = min(wRayLength, wRayLength0); // min(max_length, dot(wRayfinal - wpos, defaultpos - wpos)); + + // // vec3 wRayDir2 = (wRayfinal - wRayinitial) / wRayLength; + + // vec3 wRayDir3 = (dot(wRayDir, wRayNormal) < 0.0 && surfaceAlt < wRayinitial.z && wIntersectsSurface/* && medium.x == 1u*/) ? refract(wRayDir, wRayNormal, n2 / n1) : wRayDir; + // // wPoint -= wRayDir3 * wRayLength * n2 / n1; + + // vec3 newRay = (dot(wRayDir3, focus_pos.xyz - cam_pos.xyz) < 0.0 && /*dot(wRayDir, wRayNormal) > 0.0 && *//*surfaceAlt < wRayinitial.z && */wIntersectsSurface && medium.x == 1u) ? wPoint - wRayDir3 * wRayLength * n2 / n1/*wPoint - wRayDir3 * wRayLength * n2 / n1*/ : f_pos;// - (wRayfinal - wPoint) * n2 / n1; // wPoint + n2 * (wRayfinal - wPoint) - n2 / n1 * wRayLength * wRayDir3; + + // newRay.z -= max(view_distance.x - distance(focus_pos.xy, f_pos.xy), 0.0) * (1.0 + max(0.0, f_pos.z - focus_pos.z)); + + + // f_light = 1.0; + + gl_Position = + /* proj_mat * + view_mat * */ + all_mat * + vec4(f_pos/*newRay*/, 1); + // Pull up the depth to avoid drawing over voxels (biased according to VD) + // TODO: disabled because it isn't designed to work with reverse depth + //gl_Position.z += 0.1 * clamp((view_distance.x * 1.0 - dist) * 0.01, 0, 1); + + // gl_Position.z = -gl_Position.z / gl_Position.w; + // gl_Position.z = -gl_Position.z / gl_Position.w; + // gl_Position.z = -gl_Position.z * gl_Position.w; + // gl_Position.z = -gl_Position.z / 100.0; + // gl_Position.z = -1000.0 / (gl_Position.z + 10000.0); +} diff --git a/assets/voxygen/shaders/particle-frag.glsl b/assets/voxygen/shaders/particle-frag.glsl new file mode 100644 index 0000000..292240c --- /dev/null +++ b/assets/voxygen/shaders/particle-frag.glsl @@ -0,0 +1,126 @@ +#version 440 core + +#include + +#define LIGHTING_TYPE LIGHTING_TYPE_REFLECTION + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_GLOSSY + +#if (FLUID_MODE == FLUID_MODE_LOW) + #define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE +#elif (FLUID_MODE >= FLUID_MODE_MEDIUM) + #define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_RADIANCE +#endif + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +#define HAS_SHADOW_MAPS + +#include + +layout(location = 0) in vec3 f_pos; +layout(location = 1) flat in vec3 f_norm; +layout(location = 2) in vec4 f_col; +layout(location = 3) in float f_reflect; +layout(location = 4) flat in int f_mode; + +layout(location = 0) out vec4 tgt_color; +layout(location = 1) out uvec4 tgt_mat; + +#include +#include +#include + +const float FADE_DIST = 32.0; + +void main() { + #ifdef EXPERIMENTAL_BAREMINIMUM + tgt_color = vec4(simple_lighting(f_pos.xyz, f_col.rgb, 1.0), 1); + return; + #endif + + vec3 cam_to_frag = normalize(f_pos - cam_pos.xyz); + vec3 view_dir = -cam_to_frag; + +#if (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_MAP || FLUID_MODE >= FLUID_MODE_MEDIUM) + float f_alt = alt_at(f_pos.xy); +#elif (SHADOW_MODE == SHADOW_MODE_NONE || FLUID_MODE == FLUID_MODE_LOW) + float f_alt = f_pos.z; +#endif + +#if (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_MAP) + vec4 f_shadow = textureMaybeBicubic(t_horizon, s_horizon, pos_to_tex(f_pos.xy)); + float sun_shade_frac = horizon_at2(f_shadow, f_alt, f_pos, sun_dir); +#elif (SHADOW_MODE == SHADOW_MODE_NONE) + float sun_shade_frac = 1.0; +#endif + float moon_shade_frac = 1.0; + + DirectionalLight sun_info = get_sun_info(sun_dir, sun_shade_frac, f_pos); + DirectionalLight moon_info = get_moon_info(moon_dir, moon_shade_frac); + + vec3 surf_color = f_col.rgb; + float alpha = 1.0; + const float n2 = 1.5; + const float R_s2s0 = pow((1.0 - n2) / (1.0 + n2), 2); + const float R_s1s0 = pow((1.3325 - n2) / (1.3325 + n2), 2); + const float R_s2s1 = pow((1.0 - 1.3325) / (1.0 + 1.3325), 2); + const float R_s1s2 = pow((1.3325 - 1.0) / (1.3325 + 1.0), 2); + float R_s = (f_pos.z < f_alt) ? mix(R_s2s1 * R_s1s0, R_s1s0, medium.x) : mix(R_s2s0, R_s1s2 * R_s2s0, medium.x); + + vec3 k_a = vec3(1.0) * f_reflect; + vec3 k_d = vec3(1.0) * f_reflect; + vec3 k_s = vec3(R_s) * f_reflect; + + vec3 emitted_light, reflected_light; + + // This is a bit of a hack. Because we can't find the volumetric lighting of each particle (they don't talk to the + // CPU) we need to some how find an approximation of how much the sun is blocked. We do this by fading out the sun + // as the particle moves underground. This isn't perfect, but it does at least mean that particles don't look like + // they're exposed to the sun when in dungeons + const float LIGHT_FADEOUT_OFFSET = 50.0; + const float LIGHT_FADEOUT_DIST = 20.0; + sun_info.block *= clamp((f_pos.z - f_alt + LIGHT_FADEOUT_OFFSET) / LIGHT_FADEOUT_DIST + 1, 0, 1); + moon_info.block *= clamp((f_pos.z - f_alt + LIGHT_FADEOUT_OFFSET) / LIGHT_FADEOUT_DIST + 1, 0, 1); + + // To account for prior saturation. + float max_light = 0.0; + + vec3 cam_attenuation = vec3(1); + float fluid_alt = max(f_pos.z + 1, floor(f_alt + 1)); + vec3 mu = medium.x == MEDIUM_WATER ? MU_WATER : vec3(0.0); + #if (FLUID_MODE >= FLUID_MODE_MEDIUM) + cam_attenuation = + medium.x == MEDIUM_WATER ? compute_attenuation_point(cam_pos.xyz, view_dir, MU_WATER, fluid_alt, /*cam_pos.z <= fluid_alt ? cam_pos.xyz : f_pos*/f_pos) + : compute_attenuation_point(f_pos, -view_dir, vec3(0), fluid_alt, /*cam_pos.z <= fluid_alt ? cam_pos.xyz : f_pos*/cam_pos.xyz); + #endif + + max_light += get_sun_diffuse2(sun_info, moon_info, f_norm, view_dir, f_pos, mu, cam_attenuation, fluid_alt, k_a, k_d, k_s, alpha, f_norm, 1.0, emitted_light, reflected_light); + + max_light += lights_at(f_pos, f_norm, view_dir, mu, cam_attenuation, fluid_alt, k_a, k_d, k_s, alpha, f_norm, 1.0, emitted_light, reflected_light); + + float point_shadow = shadow_at(f_pos, f_norm); + reflected_light *= point_shadow; + emitted_light *= point_shadow; + + // Allow particles to glow at night + // TODO: Not this + emitted_light += max(f_col.rgb - 1.0, vec3(0)); + + surf_color = illuminate(max_light, view_dir, surf_color * emitted_light, surf_color * reflected_light * f_reflect); + + // Temporarily disable particle transparency to avoid artifacts + tgt_color = vec4(surf_color, 1.0 /*f_col.a*/); + + uint material = MAT_BLOCK; + + const int WATER_FOAM = 64; + + if (f_mode == WATER_FOAM) { + material = MAT_FLUID; + } + + tgt_mat = uvec4(uvec3((f_norm + 1.0) * 127.0), material); +} diff --git a/assets/voxygen/shaders/particle-vert.glsl b/assets/voxygen/shaders/particle-vert.glsl new file mode 100644 index 0000000..a551f7b --- /dev/null +++ b/assets/voxygen/shaders/particle-vert.glsl @@ -0,0 +1,1116 @@ +#version 440 core + +#include + +#define LIGHTING_TYPE LIGHTING_TYPE_REFLECTION + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_GLOSSY + +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +#include +#include +#include +#include + +layout(location = 0) in vec3 v_pos; +// in uint v_col; +layout(location = 1) in uint v_norm_ao; +layout(location = 2) in float inst_time; +layout(location = 3) in float inst_lifespan; +layout(location = 4) in float inst_entropy; +layout(location = 5) in int inst_mode; +layout(location = 6) in vec3 inst_dir; +layout(location = 7) in vec3 inst_pos; + +layout(location = 0) out vec3 f_pos; +layout(location = 1) flat out vec3 f_norm; +layout(location = 2) out vec4 f_col; +//layout(location = x) out float f_ao; +//layout(location = x) out float f_light; +layout(location = 3) out float f_reflect; +layout(location = 4) flat out int f_mode; + +const float SCALE = 1.0 / 11.0; + +// Modes +const int SMOKE = 0; +const int FIRE = 1; +const int GUN_POWDER_SPARK = 2; +const int SHRAPNEL = 3; +const int FIREWORK_BLUE = 4; +const int FIREWORK_GREEN = 5; +const int FIREWORK_PURPLE = 6; +const int FIREWORK_RED = 7; +const int FIREWORK_WHITE = 8; +const int FIREWORK_YELLOW = 9; +const int LEAF = 10; +const int FIREFLY = 11; +const int BEE = 12; +const int GROUND_SHOCKWAVE = 13; +const int ENERGY_HEALING = 14; +const int ENERGY_NATURE = 15; +const int FLAMETHROWER = 16; +const int FIRE_SHOCKWAVE = 17; +const int FIRE_BOWL = 18; +const int SNOW = 19; +const int EXPLOSION = 20; +const int ICE = 21; +const int LIFESTEAL_BEAM = 22; +const int CULTIST_FLAME = 23; +const int STATIC_SMOKE = 24; +const int BLOOD = 25; +const int ENRAGED = 26; +const int BIG_SHRAPNEL = 27; +const int LASER = 28; +const int BUBBLES = 29; +const int WATER = 30; +const int ICE_SPIKES = 31; +const int DRIP = 32; +const int TORNADO = 33; +const int DEATH = 34; +const int ENERGY_BUFFING = 35; +const int WEB_STRAND = 36; +const int BLACK_SMOKE = 37; +const int LIGHTNING = 38; +const int STEAM = 39; +const int BARRELORGAN = 40; +const int POTION_SICKNESS = 41; +const int GIGA_SNOW = 42; +const int CYCLOPS_CHARGE = 43; +const int PORTAL_FIZZ = 45; +const int INK = 46; +const int WHIRLWIND = 47; +const int FIERY_BURST = 48; +const int FIERY_BURST_VORTEX = 49; +const int FIERY_BURST_SPARKS = 50; +const int FIERY_BURST_ASH = 51; +const int FIERY_TORNADO = 52; +const int PHOENIX_CLOUD = 53; +const int FIERY_DROPLET_TRACE = 54; +const int ENERGY_PHOENIX = 55; +const int PHOENIX_BEAM = 56; +const int PHOENIX_BUILD_UP_AIM = 57; +const int CLAY_SHRAPNEL = 58; +const int AIRFLOW = 59; +const int SPORE = 60; +const int SURPRISE_EGG = 61; +const int FLAME_TORNADO = 62; +const int POISON = 63; +const int WATER_FOAM = 64; + +// meters per second squared (acceleration) +const float earth_gravity = 9.807; + +struct Attr { + vec3 offs; + vec3 scale; + vec4 col; + mat4 rot; +}; + +float lifetime = time_since(inst_time); + +// Retrieves inst_time, repeating over a period. This will be consistent +// over a time overflow. +float loop_inst_time(float period, float scale) { + if (tick.x < inst_time) { + return mod(mod(tick_overflow * scale, period) + inst_time * scale, period); + } else { + return mod(inst_time * scale, period); + } +} + +vec3 linear_motion(vec3 init_offs, vec3 vel) { + return init_offs + vel * lifetime; +} + +vec3 quadratic_bezier_motion(vec3 start, vec3 ctrl0, vec3 end) { + float t = lifetime; + float u = 1 - lifetime; + return u*u*start + t*u*ctrl0 + t*t*end; +} + +vec3 grav_vel(float grav) { + return vec3(0, 0, -grav * lifetime); +} + +float exp_scale(float factor) { + return 1 / (1 - lifetime * factor); +} + +float linear_scale(float factor) { + return lifetime * factor; +} + +float percent() { + return lifetime / inst_lifespan; +} + +float slow_end(float factor) { + return (1 + factor) * percent() / (percent() + factor); +} + +float slow_start(float factor) { + return 1-(1 + factor) * (1-percent()) / ((1-percent()) + factor); +} + +float start_end(float from, float to) { + return mix(from, to, lifetime / inst_lifespan); +} + +mat4 spin_in_axis(vec3 axis, float angle) +{ + axis = normalize(axis); + float s = sin(angle); + float c = cos(angle); + float oc = 1.0 - c; + + return mat4( + oc * axis.x * axis.x + c, + oc * axis.x * axis.y - axis.z * s, + oc * axis.z * axis.x + axis.y * s, + 0, + + oc * axis.x * axis.y + axis.z * s, + oc * axis.y * axis.y + c, + oc * axis.y * axis.z - axis.x * s, + 0, + + oc * axis.z * axis.x - axis.y * s, + oc * axis.y * axis.z + axis.x * s, + oc * axis.z * axis.z + c, + 0, + + 0, 0, 0, 1 + ); +} + +mat4 identity() { + return mat4( + 1, 0, 0, 0, + 0, 1, 0, 0, + 0, 0, 1, 0, + 0, 0, 0, 1 + ); +} + +vec3 perp_axis1(vec3 axis) { + return normalize(vec3(axis.y + axis.z, -axis.x + axis.z, -axis.x - axis.y)); +} + +vec3 perp_axis2(vec3 axis1, vec3 axis2) { + return normalize(vec3(axis1.y * axis2.z - axis1.z * axis2.y, axis1.z * axis2.x - axis1.x * axis2.z, axis1.x * axis2.y - axis1.y * axis2.x)); +} + +// Line is the axis of the spiral, it goes from the start position to the end position +// Radius is the distance from the axis the particle is +// Time function is some value that ideally goes from 0 to 1. When it is 0, it is as +// the point (0, 0, 0), when it is 1, it is at the point provided by the coordinates of line +// Frequency increases the frequency of rotation +// Offset is an offset to the angle of the rotation +vec3 spiral_motion(vec3 line, float radius, float time_function, float frequency, float offset) { + vec3 axis2 = perp_axis1(line); + vec3 axis3 = perp_axis2(line, axis2); + + return line * time_function + vec3( + radius * cos(frequency * time_function - offset) * axis2.x + radius * sin(frequency * time_function - offset) * axis3.x, + radius * cos(frequency * time_function - offset) * axis2.y + radius * sin(frequency * time_function - offset) * axis3.y, + radius * cos(frequency * time_function - offset) * axis2.z + radius * sin(frequency * time_function - offset) * axis3.z); +} + +void main() { + float rand0 = hash(vec4(inst_entropy + 0)); + float rand1 = hash(vec4(inst_entropy + 1)); + float rand2 = hash(vec4(inst_entropy + 2)); + float rand3 = hash(vec4(inst_entropy + 3)); + float rand4 = hash(vec4(inst_entropy + 4)); + float rand5 = hash(vec4(inst_entropy + 5)); + float rand6 = hash(vec4(inst_entropy + 6)); + float rand7 = hash(vec4(inst_entropy + 7)); + float rand8 = hash(vec4(inst_entropy + 8)); + float rand9 = hash(vec4(inst_entropy + 9)); + + vec3 start_pos = inst_pos - focus_off.xyz; + + Attr attr; + f_reflect = 1.0; + + switch(inst_mode) { + case SMOKE: + attr = Attr( + linear_motion( + vec3(0), + vec3(rand2 * 0.02, rand3 * 0.02, 1.0 + rand4 * 0.1) + ), + vec3(linear_scale(0.5)), + vec4(vec3(0.8, 0.8, 1) * 0.125 * (3.8 + rand0), start_end(1.0, 0.0)), + spin_in_axis(vec3(rand6, rand7, rand8), rand9 * 3 + lifetime * 0.5) + ); + break; + case BLACK_SMOKE: + attr = Attr( + linear_motion( + vec3(0), + vec3(rand2 * 0.02, rand3 * 0.02, 1.0 + rand4 * 0.1) + ), + vec3(linear_scale(0.5)), + vec4(vec3(0.8, 0.8, 1) * 0.125 * (1.8 + rand0), start_end(1.0, 0.0)), + spin_in_axis(vec3(rand6, rand7, rand8), rand9 * 3 + lifetime * 0.5) + ); + break; + case FIRE: + f_reflect = 0.0; // Fire doesn't reflect light, it emits it + attr = Attr( + linear_motion( + vec3(0.0), + vec3(rand2 * 0.1, rand3 * 0.1, 2.0 + rand4 * 1.0) + ), + vec3(1.0), + vec4(6, 3 + rand5 * 0.3 - 0.8 * percent(), 0.4, 1), + spin_in_axis(vec3(rand6, rand7, rand8), rand9 * 3) + ); + break; + case FIRE_BOWL: + f_reflect = 0.0; // Fire doesn't reflect light, it emits it + attr = Attr( + linear_motion( + vec3(normalize(vec2(rand0, rand1)) * 0.1, 0.6), + vec3(rand2 * 0.2, rand3 * 0.5, 0.8 + rand4 * 0.5) + ), + vec3(0.2), // Size + vec4(2, 1.5 + rand5 * 0.5, 0, start_end(1.0, 0.0)), // Colour + spin_in_axis(vec3(rand6, rand7, rand8), rand9 * 3) + ); + break; + case GUN_POWDER_SPARK: + attr = Attr( + linear_motion( + normalize(vec3(rand0, rand1, rand3)) * 0.3, + normalize(vec3(rand4, rand5, rand6)) * 4.0 + grav_vel(earth_gravity) + ), + vec3(1.0), + vec4(3.5, 3 + rand7, 0, 1), + spin_in_axis(vec3(1,0,0),0) + ); + break; + case SHRAPNEL: + attr = Attr( + linear_motion( + vec3(0), + normalize(vec3(rand4, rand5, rand6)) * 20.0 + grav_vel(earth_gravity) + ), + vec3(1), + vec4(vec3(0.25), 1), + spin_in_axis(vec3(1,0,0),0) + ); + break; + case BIG_SHRAPNEL: + float brown_color = 0.05 + 0.1 * rand1; + attr = Attr( + linear_motion( + vec3(0), + normalize(vec3(rand4, rand5, rand6)) * 15.0 + grav_vel(earth_gravity) + ), + vec3(5 * (1 - percent())), + vec4(vec3(brown_color, brown_color / 2, 0), 1), + spin_in_axis(vec3(1,0,0),0) + ); + break; + case FIREWORK_BLUE: + f_reflect = 0.0; // Fire doesn't reflect light, it emits it + attr = Attr( + linear_motion( + vec3(0), + normalize(vec3(rand1, rand2, rand3)) * 40.0 + grav_vel(earth_gravity) + ), + vec3(3.0 + rand0), + vec4(vec3(0, 0, 2), 1), + identity() + ); + break; + case FIREWORK_GREEN: + f_reflect = 0.0; // Fire doesn't reflect light, it emits it + attr = Attr( + linear_motion( + vec3(0), + normalize(vec3(rand1, rand2, rand3)) * 40.0 + grav_vel(earth_gravity) + ), + vec3(3.0 + rand0), + vec4(vec3(0, 2, 0), 1), + identity() + ); + break; + case FIREWORK_PURPLE: + f_reflect = 0.0; // Fire doesn't reflect light, it emits it + attr = Attr( + linear_motion( + vec3(0), + normalize(vec3(rand1, rand2, rand3)) * 40.0 + grav_vel(earth_gravity) + ), + vec3(3.0 + rand0), + vec4(vec3(2, 0, 2), 1), + identity() + ); + break; + case FIREWORK_RED: + f_reflect = 0.0; // Fire doesn't reflect light, it emits it + attr = Attr( + linear_motion( + vec3(0), + normalize(vec3(rand1, rand2, rand3)) * 40.0 + grav_vel(earth_gravity) + ), + vec3(3.0 + rand0), + vec4(vec3(2, 0, 0), 1), + identity() + ); + break; + case FIREWORK_WHITE: + f_reflect = 0.0; // Fire doesn't reflect light, it emits it + attr = Attr( + linear_motion( + vec3(0), + normalize(vec3(rand1, rand2, rand3)) * 40.0 + grav_vel(earth_gravity) + ), + vec3(3.0 + rand0), + vec4(vec3(2, 2, 2), 1), + identity() + ); + break; + case FIREWORK_YELLOW: + f_reflect = 0.0; // Fire doesn't reflect light, it emits it + attr = Attr( + linear_motion( + vec3(0), + normalize(vec3(rand1, rand2, rand3)) * 40.0 + grav_vel(earth_gravity) + ), + vec3(3.0 + rand0), + vec4(vec3(2, 2, 0), 1), + identity() + ); + break; + case LEAF: + attr = Attr( + linear_motion( + vec3(0), + vec3(0, 0, -2) + ) + vec3(sin(lifetime), sin(lifetime + 0.7), sin(lifetime * 0.5)) * 2.0, + vec3(4), + vec4(vec3(0.2 + rand7 * 0.2, 0.2 + (0.25 + rand6 * 0.5) * 0.3, 0) * (0.75 + rand1 * 0.5), 1), + spin_in_axis(vec3(rand6, rand7, rand8), rand9 * 3 + lifetime * 5) + ); + break; + case SNOW: + float height = mix(-4, 60, pow(start_end(1, 0), 3)); + float wind_speed = (inst_pos.z - 2000) * 0.025; + vec3 offset = linear_motion(vec3(0), vec3(1, 1, 0) * wind_speed); + float end_alt = alt_at(start_pos.xy + offset.xy); + attr = Attr( + offset + vec3(0, 0, end_alt - start_pos.z + height) + vec3(sin(lifetime), sin(lifetime + 0.7), sin(lifetime * 0.5)) * 3, + vec3(mix(4, 0, pow(start_end(1, 0), 4))), + vec4(1), + spin_in_axis(vec3(rand6, rand7, rand8), rand9 * 3 + lifetime * 5) + ); + break; + case FIREFLY: + float raise = pow(sin(3.1416 * lifetime / inst_lifespan), 0.2); + attr = Attr( + vec3(0, 0, raise * 5.0) + vec3( + sin(lifetime * 1.0 + rand0) + sin(lifetime * 7.0 + rand3) * 0.3, + sin(lifetime * 3.0 + rand1) + sin(lifetime * 8.0 + rand4) * 0.3, + sin(lifetime * 2.0 + rand2) + sin(lifetime * 9.0 + rand5) * 0.3 + ), + vec3(raise), + vec4(vec3(10.3, 9, 1.5), 1), + spin_in_axis(vec3(rand6, rand7, rand8), rand9 * 3 + lifetime * 5) + ); + break; + case BEE: + float lower = pow(sin(3.1416 * lifetime / inst_lifespan), 0.2); + attr = Attr( + vec3(0, 0, lower * -0.5) + vec3( + sin(lifetime * 2.0 + rand0) + sin(lifetime * 9.0 + rand3) * 0.3, + sin(lifetime * 3.0 + rand1) + sin(lifetime * 10.0 + rand4) * 0.3, + sin(lifetime * 4.0 + rand2) + sin(lifetime * 11.0 + rand5) * 0.3 + ) * 0.5, + vec3(lower), + vec4(vec3(1, 0.7, 0), 1), + spin_in_axis(vec3(rand6, rand7, rand8), rand9 * 3 + lifetime * 5) + ); + break; + case GROUND_SHOCKWAVE: + attr = Attr( + vec3(0.0), + vec3(11.0, 11.0, (33.0 * rand0 * sin(2.0 * lifetime * 3.14 * 2.0))) / 3, + vec4(vec3(0.32 + (rand0 * 0.04), 0.22 + (rand1 * 0.03), 0.05 + (rand2 * 0.01)), 1), + spin_in_axis(vec3(1,0,0),0) + ); + break; + case ENERGY_HEALING: + f_reflect = 0.0; + float spiral_radius = start_end(1 - pow(abs(rand5), 5), 1) * length(inst_dir); + attr = Attr( + spiral_motion(vec3(0, 0, rand3 + 1), spiral_radius, lifetime, abs(rand0), rand1 * 2 * PI) + vec3(0, 0, rand2), + vec3(6 * abs(rand4) * (1 - slow_start(2)) * pow(spiral_radius / length(inst_dir), 0.5)), + vec4(vec3(0, 1.7, 0.7) * 3, 1), + spin_in_axis(vec3(rand6, rand7, rand8), rand9 * 3) + ); + break; + case LIFESTEAL_BEAM: + f_reflect = 0.0; + float green_col = 0.8 + 0.8 * sin(tick_loop(2 * PI, 5, lifetime * 5)); + float purple_col = 0.6 + 0.5 * sin(loop_inst_time(2 * PI, 4)) - min(max(green_col - 1, 0), 0.3); + float red_col = 1.15 + 0.1 * sin(loop_inst_time(2 * PI, 3)) - min(max(green_col - 1, 0), 0.3) - max(purple_col - 0.5, 0); + attr = Attr( + spiral_motion(inst_dir, 0.3 * (floor(2 * rand0 + 0.5) - 0.5) * min(linear_scale(10), 1), lifetime / inst_lifespan, 10.0, loop_inst_time(2.0 * PI, 1.0)), + vec3((1.7 - 0.7 * abs(floor(2 * rand0 - 0.5) + 0.5)) * (1.5 + 0.5 * sin(tick_loop(2 * PI, 10, -lifetime * 4)))), + vec4(vec3(red_col + purple_col * 0.6, green_col + purple_col * 0.35, purple_col), 1), + spin_in_axis(inst_dir, tick_loop(2 * PI)) + ); + break; + case ENERGY_NATURE: + f_reflect = 0.0; + spiral_radius = start_end(1 - pow(abs(rand5), 5), 1) * length(inst_dir); + attr = Attr( + spiral_motion(vec3(0, 0, rand3 + 1), spiral_radius, lifetime, abs(rand0), rand1 * 2 * PI) + vec3(0, 0, rand2), + vec3(6 * abs(rand4) * (1 - slow_start(2)) * pow(spiral_radius / length(inst_dir), 0.5)), + vec4(vec3(0, 1.7, 1.3), 1), + spin_in_axis(vec3(rand6, rand7, rand8), rand9 * 3) + ); + break; + case FLAMETHROWER: + f_reflect = 0.0; // Fire doesn't reflect light, it emits it + attr = Attr( + (inst_dir * slow_end(1.5)) + vec3(rand0, rand1, rand2) * (percent() + 2) * 0.1, + vec3((2.5 * (1 - slow_start(0.2)))), + vec4(6, 3 + rand5 * 0.6 - 0.8 * percent(), 0.4, 1), + spin_in_axis(vec3(rand6, rand7, rand8), percent() * 10 + 3 * rand9) + ); + break; + case EXPLOSION: + f_reflect = 0.0; // Fire doesn't reflect light, it emits it + attr = Attr( + inst_dir * ((rand0+1.0)/2 + 0.4) * slow_end(0.25) + 0.3 * grav_vel(earth_gravity), + vec3((3 * (1 - slow_start(0.1)))), + vec4(6, 3 + rand5 * 0.3 - 0.8 * percent(), 0.4, 1), + spin_in_axis(vec3(rand6, rand7, rand8), percent() * 10 + 3 * rand9) + ); + break; + case ICE: + f_reflect = 0.0; // Ice doesn't reflect to look like magic + float ice_color = 1.9 + rand5 * 0.3; + attr = Attr( + inst_dir * ((rand0+1.0)/2 + 0.4) * slow_end(2.0) + 0.3 * grav_vel(earth_gravity), + vec3((5 * (1 - slow_start(.1)))), + vec4(0.8 * ice_color, 0.9 * ice_color, ice_color, 1), + spin_in_axis(vec3(rand6, rand7, rand8), percent() * 10 + 3 * rand9) + ); + break; + case FIRE_SHOCKWAVE: + f_reflect = 0.0; // Fire doesn't reflect light, it emits it + attr = Attr( + vec3(rand0, rand1, lifetime * 10 + rand2), + vec3((5 * (1 - slow_start(0.5)))), + vec4(6, 3 + rand5 * 0.6 - 0.8 * percent(), 0.4, 1), + spin_in_axis(vec3(rand3, rand4, rand5), rand6) + ); + break; + case CULTIST_FLAME: + f_reflect = 0.0; // Fire doesn't reflect light, it emits it + float purp_color = 0.9 + 0.3 * rand3; + attr = Attr( + (inst_dir * slow_end(1.5)) + vec3(rand0, rand1, rand2) * (percent() + 2) * 0.1, + vec3((3.5 * (1 - slow_start(0.2)))), + vec4(purp_color, 0.0, purp_color, 1), + spin_in_axis(vec3(rand6, rand7, rand8), percent() * 10 + 3 * rand9) + ); + break; + case STATIC_SMOKE: + attr = Attr( + vec3(0), + vec3((0.5 * (1 - slow_start(0.8)))), + vec4(1.0), + spin_in_axis(vec3(rand6, rand7, rand8), rand9) + ); + break; + case BLOOD: + attr = Attr( + linear_motion( + vec3(0), + normalize(vec3(rand4, rand5, rand6)) * 5.0 + grav_vel(earth_gravity) + ), + vec3((2.0 * (1 - slow_start(0.8)))), + vec4(1, 0, 0, 1), + spin_in_axis(vec3(1,0,0),0) + ); + break; + case ENRAGED: + f_reflect = 0.0; + float red_color = 1.2 + 0.3 * rand3; + attr = Attr( + (inst_dir * slow_end(1.5)) + vec3(rand0, rand1, rand2) * (percent() + 2) * 0.1, + vec3((3.5 * (1 - slow_start(0.2)))), + vec4(red_color, 0.0, 0.0, 1), + spin_in_axis(vec3(rand6, rand7, rand8), percent() * 10 + 3 * rand9) + ); + break; + case LASER: + f_reflect = 0.0; + vec3 perp_axis = normalize(cross(inst_dir, vec3(0.0, 0.0, 1.0))); + attr = Attr( + inst_dir * percent(), + vec3(1.0, 1.0, 50.0), + vec4(vec3(2.0, 0.0, 0.0), 1), + spin_in_axis(perp_axis, asin(inst_dir.z / length(inst_dir)) + PI / 2.0) + ); + break; + case BUBBLES: + f_reflect = 0.0; // Magic water doesn't reflect light, it emits it + float blue_color = 1.5 + 0.2 * rand3 + 1.5 * max(floor(rand4 + 0.3), 0.0); + float size = 8.0 * (1 - slow_start(0.1)) * slow_end(0.15); + attr = Attr( + (inst_dir * slow_end(1.5)) + vec3(rand0, rand1, rand2) * (percent() + 2) * 0.1, + vec3(size), + vec4(0.5 * blue_color, 0.75 * blue_color, blue_color, 1), + spin_in_axis(vec3(rand6, rand7, rand8), percent() * 10 + 3 * rand9) + ); + break; + case WATER: + f_reflect = 0.0; // Magic water doesn't reflect light, it emits it + blue_color = 1.25 + 0.2 * rand3 + 1.75 * max(floor(rand4 + 0.15), 0.0); + size = 8.0 * (1 - slow_start(0.1)) * slow_end(0.15); + attr = Attr( + (inst_dir * slow_end(0.2)) + vec3(rand0, rand1, rand2) * 0.5, + vec3(size), + vec4(0.5 * blue_color, 0.9 * blue_color, blue_color, 1), + spin_in_axis(vec3(rand6, rand7, rand8), percent() * 5 + 3 * rand9) + ); + break; + case ICE_SPIKES: + f_reflect = 0.0; // Ice doesn't reflect to look like magic + ice_color = 1.7 + rand5 * 0.2; + attr = Attr( + vec3(0.0), + vec3(11.0, 11.0, 11.0 * length(inst_dir) * 2.0 * (0.5 - abs(0.5 - slow_end(0.5)))) / 3, + vec4(0.8 * ice_color, 0.9 * ice_color, ice_color, 1), + spin_in_axis(vec3(1,0,0),0) + ); + break; + case DRIP: + attr = Attr( + linear_motion( + vec3(0), + normalize(vec3(rand4, rand5, rand6)) + grav_vel(earth_gravity) + ), + vec3((2.0 * (1 - slow_start(0.2)))), + vec4(1, 1, 0, 1), + spin_in_axis(vec3(1,0,0),0) + ); + break; + case TORNADO: + f_reflect = 0.0; + attr = Attr( + spiral_motion(vec3(0, 0, 5), abs(rand0) + abs(rand1) * percent() * 3.0, percent(), 15.0 * abs(rand2), rand3), + vec3((2.5 * (1 - slow_start(0.05)))), + vec4(vec3(1.2 + 0.5 * percent()), 1), + spin_in_axis(vec3(rand6, rand7, rand8), percent() * 10 + 3 * rand9) + ); + break; + case DEATH: + f_reflect = 0.0; + attr = Attr( + linear_motion( + vec3(0), + vec3(rand2 * 0.02, rand3 * 0.02, 2.0 + rand4 * 0.6) + ), + vec3((1.2 * (1 - slow_start(.1)))), + vec4(vec3(1.2 + 0.5 * percent()), 1), + spin_in_axis(vec3(rand6, rand7, rand8), percent() * 10 + 3 * rand9) + ); + break; + case ENERGY_BUFFING: + f_reflect = 0.0; + spiral_radius = start_end(1 - pow(abs(rand5), 5), 1) * length(inst_dir); + attr = Attr( + spiral_motion(vec3(0, 0, rand3 + 1), spiral_radius, lifetime, abs(rand0), rand1 * 2 * PI) + vec3(0, 0, rand2), + vec3(6 * abs(rand4) * (1 - slow_start(2)) * pow(spiral_radius / length(inst_dir), 0.5)), + vec4(vec3(1.4), 1), + spin_in_axis(vec3(rand6, rand7, rand8), rand9 * 3) + ); + break; + case WEB_STRAND: + f_reflect = 0.0; + perp_axis = normalize(cross(inst_dir, vec3(0.0, 0.0, 1.0))); + attr = Attr( + inst_dir * percent(), + vec3(1.0, 1.0, 50.0), + vec4(vec3(2.0), 1), + spin_in_axis(perp_axis, asin(inst_dir.z / length(inst_dir)) + PI / 2.0) + ); + break; + case LIGHTNING: + f_reflect = 0.0; + perp_axis = normalize(cross(inst_dir, vec3(0.0, 0.0, 1.0))); + float z = inst_dir.z * (percent() - 1.0); + vec3 start_off = vec3(abs(fract(vec3(vec2(z) * vec2(0.015, 0.01), 0)) - 0.5) * z * 0.4); + attr = Attr( + inst_dir * percent() + start_off, + vec3(max(3.0, 0.05 * length(start_pos + inst_dir * percent()))), + vec4(10.0, 20.0, 50.0, 1.0),// * (1.0 - length(inst_dir) * 0.1), + identity()//spin_in_axis(perp_axis, asin(inst_dir.z / length(inst_dir)) + PI / 2.0) + ); + break; + case STEAM: + f_reflect = 0.0; // Magic steam doesn't reflect light, it emits it + float steam_size = 8.0 * (1 - slow_start(0.1)) * slow_end(0.15); + attr = Attr( + (inst_dir * slow_end(1.5)) + vec3(rand0, rand1, rand2) * (percent() + 2) * 0.1, + vec3(steam_size), + vec4(vec3(0.7, 2.7, 1.3), 1), + spin_in_axis(vec3(rand6, rand7, rand8), percent() * 10 + 3 * rand9) + ); + break; + case BARRELORGAN: + attr = Attr( + linear_motion( + vec3(rand0 * 0.25, rand1 * 0.25, 1.7 + rand5), + vec3(rand2 * 0.1, rand3 * 0.1, 1.0 + rand4 * 0.5) + ), + vec3(exp_scale(-0.2)) * rand0, + vec4(vec3(0.7, 2.7, 1.3), 1), + spin_in_axis(vec3(1,0,0),0) + ); + break; + case POTION_SICKNESS: + attr = Attr( + quadratic_bezier_motion( + vec3(0.0), + vec3(inst_dir.xy, 0.0), + inst_dir + ), + vec3((2.0 * (1 - slow_start(0.8)))), + vec4(0.075, 0.625, 0, 1), + spin_in_axis(vec3(1,0,0),0) + ); + break; + case GIGA_SNOW: + f_reflect = 0.0; + attr = Attr( + (inst_dir * slow_end(1.5)) + vec3(rand0, rand1, rand2) * (percent() + 2) * 0.1, + vec3((3.5 * (1 - slow_start(0.2)))), + vec4(vec3(2, 2, 2), 1), + spin_in_axis(vec3(rand6, rand7, rand8), percent() * 10 + 3 * rand9) + ); + break; + case CYCLOPS_CHARGE: + f_reflect = 0.0; + float burn_size = 8.0 * (1 - slow_start(0.1)) * slow_end(0.15); + attr = Attr( + (inst_dir * slow_end(1.5)) + vec3(rand0, rand1, rand2) * (percent() + 2) * 0.1, + vec3(burn_size), + vec4(vec3(6.9, 0.0, 0.0), 1), + spin_in_axis(vec3(rand6, rand7, rand8), percent() * 10 + 3 * rand9) + ); + break; + case PORTAL_FIZZ: + attr = Attr( + inst_dir * (0.7 + pow(percent(), 5)) + vec3( + sin(lifetime * 1.25 + rand0 * 10) + sin(lifetime * 1.3 + rand3 * 10), + sin(lifetime * 1.2 + rand1 * 10) + sin(lifetime * 1.4 + rand4 * 10), + sin(lifetime * 5 + rand2) + ) * 0.03, + vec3(pow(1.0 - abs(percent() - 0.5) * 2.0, 0.2)), + mix( + vec4(mix(vec3(0.4, 0.8, 0.2), vec3(5, 10, 2), pow(percent(), 2)), 1), + vec4(mix(vec3(0.6, 0.2, 0.8), vec3(9, 2, 10), pow(percent(), 2)), 1), + clamp((dot(normalize(focus_pos.xyz - start_pos), inst_dir) - 0.25) * 3.0, 0.0, 1.0) + ), + /* vec4(vec3(1.8 - percent() * 2, 0.4 + percent() * 2, 5.0 + rand6), 1), */ + spin_in_axis(vec3(rand6, rand7, rand8), rand9 * 3 + lifetime * 5) + ); + break; + case INK: + f_reflect = 0.0; // Magic water doesn't reflect light, it emits it + float black_color = 0.3 + 0.2 * rand3 + 0.3 * max(floor(rand4 + 0.3), 0.0); + float ink_size = 8.0 * (1 - slow_start(0.1)) * slow_end(0.15); + attr = Attr( + (inst_dir * slow_end(1.5)) + vec3(rand0, rand1, rand2) * (percent() + 2) * 0.1, + vec3(ink_size), + vec4(0.5 * black_color, 0.75 * black_color, black_color, 1), + spin_in_axis(vec3(rand6, rand7, rand8), percent() * 10 + 3 * rand9) + ); + break; + case WHIRLWIND: + f_reflect = 0.0; + attr = Attr( + spiral_motion(vec3(0, 0, 3), abs(rand0) * 3 + percent() * 20.5, percent(), -8.0 + (rand0 * 3), rand1 * 360.), + vec3((-2.5 * (1 - slow_start(0.05)))), + vec4(vec3(1.3, 1.8, 2), 1), + spin_in_axis(vec3(rand6, rand7, rand8), percent() * 10 + 3 * rand9) + ); + break; + case FIERY_BURST: + f_reflect = 0.0; + float fiery_radius = start_end(1.0 - pow(abs(rand5), 5.0), 1.0) * length(inst_dir); + float fiery_color1 = (7.0 + 1.0 * percent()) * min(1.0, percent() * 4.0) * 1.5; + float fiery_color2 = (4.0 - 2.0 * percent() + 1.3 * rand5 * slow_end(0.0)) * min(1.0, percent() * 4.0) * 1.3; + float fiery_color3 = 1.0 + 0.3 * percent(); + attr = Attr( + spiral_motion( + vec3( + 0.0, + 0.0, + (rand3 + 1.0) + * max( + ((percent() * 8.0) * (1.0 - step(0.2, percent()))), + ((2.0 * (1.0 - percent())) * (step(0.2, percent()))) + ) + ), + fiery_radius, + lifetime, + max(0.1, step(0.6, percent())) * 3.0 * abs(rand0), + rand1 * 2.0 * PI) + vec3(0.0, 0.0, rand2), + vec3(6.0 * abs(rand4) * (1.0 - slow_start(2.0)) * pow(fiery_radius / length(inst_dir), 0.5)), + vec4(fiery_color1, fiery_color2, fiery_color3, slow_end(0.4)), + spin_in_axis(vec3(rand6, rand7, rand8), rand9 * 3.0) + ); + break; + case FIERY_BURST_VORTEX: + f_reflect = 0.0; + float fiery_vortex_color1 = (min(1, percent() * 2) * (5 + 1 * percent() + 1 * slow_end(0)) * 1.5); + float fiery_vortex_color2 = (min(1, percent() * 2) * (4 - 2.4 * percent() + 1.3 * rand5 * slow_end(0)) * 1.3); + float fiery_vortex_color3 = 0; + attr = Attr( + spiral_motion( + vec3( + 0, + 0, + (0 + 0.5 * rand4 ) + 4.0 + * max( + ((percent() * 8) * (1 - step(0.2, percent()))), // first 20% of lifetime particle moves up, then goes down + ((2 * (1 - percent())) * (step(0.2, percent())))// to avoid tearing multi should have same proportion as edge(here: 8 before, 2 after) + ) + ), + abs(rand0) + 0.5 * 10 * percent(), + percent(), + 10.0 * abs(rand2), + rand3), + vec3((2.5 * (1 - slow_start(0.05)))), + vec4(fiery_vortex_color1, fiery_vortex_color2, fiery_vortex_color3, start_end(0.5, 1.5) * abs(rand2)), + spin_in_axis(vec3(rand6, rand7, rand8), percent() * 10 + 3 * rand9) + ); + break; + case FIERY_BURST_SPARKS: + f_reflect = 0.0; + // sparks should flicker, so it stops glowing for 18% of time 4 times per second, same thing used in 4th float of RGBA vector + float fiery_sparks_color1 = 2 + 1 * rand2 + 2 * step(0.18, fract(tick.x*4)); + float fiery_sparks_color2 = 4 + 1 * rand2 + 4 * step(0.18, fract(tick.x*4)); + float fiery_sparks_color3 = 4 + 6 * step(0.18, fract(tick.x*4)); + attr = Attr( + spiral_motion(vec3(0, 0, 5), abs(rand0) + abs(rand1) * percent() * 4.0, percent(), 8.0 * abs(rand2), rand3), + vec3((2.5 * (1 - slow_start(0.05)))), + vec4(fiery_sparks_color1, fiery_sparks_color2, fiery_sparks_color3, 0.5 + 0.5 * step(0.18, fract(tick.x*4))), + spin_in_axis(vec3(rand6, rand7, rand8), percent() * 10 + 3 * rand9) + ); + break; + case FIERY_BURST_ASH: + f_reflect = 0.0; + /// inst_dir holds info about: + /// .x: radius of random spawn + float fiery_ash_rand_rad = inst_dir.x; + /// .y: + /// in fract: relative time of "setting on fire" + /// in int: radius of curve + float fiery_ash_radius = floor(inst_dir.y); + float fiery_ash_edge = inst_dir.y - fiery_ash_radius; + /// .z: height of the flight + float fiery_ash_height = inst_dir.z; + // {FOR PHOENIX "from the ashes"}sets ash on fire at 0.4 of lifetime, then makes it lose glow, representing losing heat + float fiery_ash_color1 = (2 + 1 * percent() * slow_end(0)) + * (max( + 1, + 8 * step(fiery_ash_edge, percent()) * (1.4 - percent())) + ); + float fiery_ash_color2 = (2 - 1 * percent() + 0.3 * abs(rand5) * slow_end(0.5)) + * (max( + 1, + 6.5 * step(fiery_ash_edge, percent()) * (1.4 - percent())) + ); + float fiery_ash_color3 = 1.5; + attr = Attr( + spiral_motion( + vec3( + 0.0, + 0.0, + fiery_ash_height// {FOR PHOENIX "from the ashes"} 8.58 + ), + abs(rand0 / 2.0 + 1.0) + * max(1.0, ((percent() * fiery_ash_radius * 0.8) * (1.0 - step(0.2, percent())))) // part of lifetime particle moves to periphery + * max(1.0, (fiery_ash_radius * 0.2 * (1.0 - percent()) * (step(0.2, percent())))),// then back to center + percent(), + 6.0 * abs(rand2), + rand3 * 5.0 + ) + + vec3((rand6 + rand5) * fiery_ash_rand_rad, (rand8 + rand3) * fiery_ash_rand_rad, abs(rand0)),//makes it apear randomly above base animation (Fiery Burst) + vec3((2.5 * (1 - slow_start(0.0)))), + vec4(fiery_ash_color1, fiery_ash_color2, fiery_ash_color3, abs(rand2) * slow_end(0.3)), + spin_in_axis(vec3(rand6, rand7, rand8), percent() * 10 + 3 * rand9) + ); + break; + case FIERY_TORNADO: + f_reflect = 0.0; + float fiery_tornado_color1 = (2.6 + 0.5 * percent()) + * 4.0 * max(0.5, percent() * 1.2); + float fiery_tornado_color2 = (1.7 - 0.6 * pow(1.0 - percent(), 2.0) + 0.3 * abs(rand5)) + * 2.0 * max(0.45, percent() * 1.2); + float fiery_tornado_color3 = 1.5 * max(0.6, percent()); + attr = Attr( + spiral_motion(vec3(0, 0, 6.0 + rand3 * 1.5), abs(rand0) + abs(rand1) * percent() * 3.0, percent(), 15.0 * abs(rand2), -inst_time), + vec3((2.5 * (1 - slow_start(0.05)))), + vec4(fiery_tornado_color1, fiery_tornado_color2, fiery_tornado_color3, 0.5), + spin_in_axis(vec3(rand6, rand7, rand8), percent() * 10 + 3 * rand9) + ); + break; + case PHOENIX_CLOUD: + float PC_spin = floor(inst_dir.x); + float refl = floor(inst_dir.y); + float PC_size = floor(inst_dir.z); + //best is 0.4 - reflects some light but only part as + f_reflect = refl * 0.1; + // modifies by + 5% to -15%, if color is less than 0.5 it will get from +10% to +25% to it's value + float PC_rand_color_factor = rand0 * 0.05; + float PC_R = inst_dir.x - PC_spin; + PC_R += PC_R * PC_rand_color_factor * step(0.05, PC_R) * -abs(PC_rand_color_factor * 2.0) + + PC_R * (1.0 - step(0.05, PC_R)) * max(abs(PC_rand_color_factor), 0.02) * 5.0; + float PC_G = inst_dir.y - refl; + PC_G += PC_G * PC_rand_color_factor * step(0.05, PC_G) * -abs(PC_rand_color_factor * 2.0) + + PC_G * (1.0 - step(0.05, PC_G)) * max(abs(PC_rand_color_factor), 0.02) * 5.0; + float PC_B = inst_dir.z - PC_size; + PC_B += PC_B * PC_rand_color_factor * step(0.05, PC_B) * -abs(PC_rand_color_factor * 2.0) + + PC_B * (1.0 - step(0.05, PC_B)) * max(abs(PC_rand_color_factor), 0.02) * 5.0; + attr = Attr( + linear_motion( + vec3(0.0, 0.0, 0.0), + vec3(rand4, rand5, rand6 * 2.5) + ), + vec3(8.0 * min(percent() * 3.0, 1.0) * min((1.0 - percent()) * 2.0, 1.0)), + vec4( + PC_R, + PC_G, + PC_B, + PC_size * 1.2) * 10.0, + spin_in_axis(vec3(rand6 + rand5, rand7 + rand9, rand8 + rand2), percent() * PC_spin) + ); + break; + case FIERY_DROPLET_TRACE: + float m_r = 4.0; + f_reflect = 0.0; // Fire doesn't reflect light, it emits it + float prcnt = percent(); //idk if compiler would optimize it or not but as we have a lot of those particles... i'll just try + float droplet_color1 = 1 * (5 + 1 * prcnt + 1 * slow_end(0)) * 1.5; + float droplet_color2 = 1 * (4 - 2.4 * prcnt + 1.3 * rand5 * slow_end(0)) * 1.3; + float droplet_color3 = 0; + attr = Attr( + quadratic_bezier_motion( + vec3(0.0), + vec3(m_r * rand0, m_r * rand1, 0.0), + vec3(m_r * rand0, m_r * rand1, 4.0) + ), + vec3(1), + vec4(droplet_color1, + droplet_color2, + droplet_color3, + 1 * prcnt * (1 - step(0.5, prcnt)) + (1 - prcnt) * (step(0.5, prcnt))), + spin_in_axis(vec3(1,0,0),0) + ); + break; + case ENERGY_PHOENIX: + f_reflect = 0.0; + float fiery_r = (2 + 1 * percent() * slow_end(0)) + * 6 * (1.4 - percent()); + float fiery_g = (2 - 1 * percent() + 0.3 * abs(rand5) * slow_end(0.5)) + * 4.5 * (1.4 - percent()); + float fiery_b = 1.5; + spiral_radius = length(inst_dir); + attr = Attr( + spiral_motion(vec3(0.0, 0.0, 0.01), spiral_radius + abs(rand1), lifetime / 0.5, abs(rand0), rand1 * 2.0 * PI) + vec3(0.0, 0.0, rand2), + vec3(6.0 * abs(rand4) * (1 - slow_start(2.0))), + vec4(vec3(fiery_r, fiery_g, fiery_b), 1.0), + spin_in_axis(vec3(rand6, rand7, rand8), rand9 * 3.0) + ); + break; + case PHOENIX_BEAM: + f_reflect = 0.0; // Fire doesn't reflect light, it emits it + float beam_r = 6.0 - (4.0 * percent()) + 15.0 * fract(percent() * 4 + rand0 * rand0) * (1 - percent()); + float beam_g = 2.0 + 6.6 * fract(percent() * 4 + rand0 * rand0) * (1 - percent()); + float beam_b = 1.4; + + vec3 factor_rand = vec3((rand0 * 0.2) * (rand5 * 0.1) + rand6 * 0.9, (rand1 * 0.2) * (rand4 * 0.1) + rand7 * 0.9, (rand2 * 0.2) * (rand3 * 0.1) + rand8 * 0.9); + start_pos += factor_rand + normalize(inst_dir) * 0.6; + attr = Attr( + spiral_motion(inst_dir - factor_rand * 0.4, 0.3 * ((rand2 + 0.5) * 5.5) * (1.0 - min(linear_scale(1.5), 1.0)), lifetime / inst_lifespan, 24.0, -inst_time * 8.0), + vec3((2.5 * (1 - slow_start(0.2)))), + vec4(beam_r, beam_g, beam_b, 1.0), + spin_in_axis(vec3(rand6, rand7, rand8), percent() * 10.0 + 3.0 * rand9) + ); + break; + case PHOENIX_BUILD_UP_AIM: + + f_reflect = 0.0; // Fire doesn't reflect light, it emits it + + float perc_t = percent(); // in case compiler wont optimize, idk + + float aim_r = rand0 * 0.25 + 3.0 + 4.5 * perc_t * (1 - step(0.79, perc_t)) + 8.0 * step(0.81, perc_t) * perc_t; + float aim_g = rand0 * 0.25 + 2.0 - 1.0 * perc_t * (1 - step(0.79, perc_t)) + 2.0 * step(0.81, perc_t) * perc_t; + float aim_b = 1.4 * ((1 - perc_t) + step(0.74, perc_t)); + + + vec3 dir_aim = inst_dir * 1.0; + vec3 rand_pos_aim = (cross( + (1.0 - 2.0 * step(0.0, rand2)) * normalize(inst_dir), + vec3(0.0, 0.0, 1.0))); + + vec3 rand_fact = vec3(rand1 * 1, rand0 * 1, rand2 * 1); + start_pos += vec3(0.0, 0.0, 5.0) + rand_fact; + attr = Attr( + spiral_motion( + inst_dir + vec3(0.0, 0.0, -(6.0 - 3.0 * pow(perc_t, 2.5))) - rand_fact, + 1.2 * rand9 * max(1.0 - perc_t, 0.0), + perc_t, + 6.0, + inst_time * 8.0), + vec3((1.9 * (1 - slow_start(0.2)))), + vec4(aim_r, aim_g, aim_b, 1.0), + spin_in_axis(vec3(rand6, rand7, rand8), perc_t * 10.0 + 3.0 * rand9) + ); + break; + case CLAY_SHRAPNEL: + float clay_color = 0.025 + 0.02 * rand1; + attr = Attr( + linear_motion( + vec3(0), + normalize(vec3(rand4, rand5, rand6)) * 15.0 + grav_vel(earth_gravity) + ), + vec3(5 * (1 - percent())), + vec4(vec3(clay_color * 3, clay_color * 2, clay_color), 1), + spin_in_axis(vec3(1,0,0),0) + ); + break; + case AIRFLOW: + perp_axis = normalize(cross(inst_dir, vec3(1.0, 0.0, 0.0))); + attr = Attr( + // offsets + inst_dir * 0.2 * length(inst_dir) * percent() + inst_dir * percent() * 0.08, + // scale + vec3( + 0.3 * length(inst_dir), + 0.3 * length(inst_dir), + 3.0 * length(inst_dir) * percent() * (1 - percent()) + ), + // color + vec4(1.1, 1.1, 1.1, 0.3), + // rotation + spin_in_axis(perp_axis, asin(inst_dir.z / length(inst_dir)) + PI / 2.0) + ); + break; + case SPORE: + f_reflect = 0.0; + attr = Attr( + linear_motion( + vec3(0), + vec3(0, 0, -1.1) + ) + vec3(sin((lifetime + rand9 * 0.1) * 0.5) * 3.0, sin((lifetime+ rand8 * 0.1) * 0.5) * 3.0, sin(lifetime * 0.5) * 1.5), + vec3(0.4 + 0.4 * abs(sin(lifetime))), + vec4(vec3(0.8, 6.0 + rand6 * 1.75, 7.5 + (1.75 + rand5 * 0.5)), 1), + spin_in_axis(vec3(rand1, rand2, rand3), rand4 * 1.5 + lifetime) + ); + break; + case SURPRISE_EGG: + f_reflect = 0.0; + // sparks should flicker, so it stops glowing for 18% of time 4 times per second, same thing used in 4th float of RGBA vector + float egg_color1 = 2 + 1 * rand2 + 2 * step(0.18, fract(tick.x*4)); + float egg_color2 = 0 + 1 * rand2 + 4 * step(0.18, fract(tick.x*4)); + float egg_color3 = 2 + 6 * step(0.18, fract(tick.x*4)); + attr = Attr( + spiral_motion(vec3(0, 0, 5), abs(rand0) + abs(rand1) * percent() * 4.0, percent(), 8.0 * abs(rand2), rand3), + vec3((2.5 * (1 - slow_start(0.05)))), + vec4(egg_color1, egg_color2, egg_color3, 0.5 + 0.5 * step(0.18, fract(tick.x*4))), + spin_in_axis(vec3(rand6, rand7, rand8), percent() * 10 + 3 * rand9) + ); + break; + case FLAME_TORNADO: + f_reflect = 0.0; + attr = Attr( + spiral_motion(vec3(0, 0, 3), abs(rand0) * 3 + percent() * 70.0, percent(), -8.0 + (rand0 * 3), rand1 * 360.), + vec3((-2.5 * (1 - slow_start(0.05)))), + vec4(6, 3 + rand5 * 0.3 - 0.8 * percent(), 0.4, 1), + spin_in_axis(vec3(rand6, rand7, rand8), percent() * 10 + 3 * rand9) + ); + break; + case POISON: + f_reflect = 0.0; // Poison doesn't reflect to look like magic + float poison_color = 1.9 + rand5 * 0.3; + attr = Attr( + (inst_dir * slow_end(1.5)) + vec3(rand0, rand1, rand2) * (percent() + 2) * 0.1, + vec3((3.5 * (1 - slow_start(0.2)))), + vec4(0.3 * poison_color , 0.7 * poison_color , 0.37 * poison_color , 1), + spin_in_axis(vec3(rand6, rand7, rand8), percent() * 10 + 3 * rand9) + ); + break; + case WATER_FOAM: + f_reflect = 0.1; + attr = Attr( + inst_dir * pow(percent(), 0.5) * 0.5 + percent() * percent() * vec3(0, 0, -50), + vec3((1.5 * (1 - slow_start(0.2)))), + vec4(1.0, 1.0, 1.0, 1), + spin_in_axis(vec3(rand6, rand7, rand8), percent() * 10 + 3 * rand9) + ); + break; + default: + attr = Attr( + linear_motion( + vec3(rand0 * 0.25, rand1 * 0.25, 1.7 + rand5), + vec3(rand2 * 0.1, rand3 * 0.1, 1.0 + rand4 * 0.5) + ), + vec3(exp_scale(-0.2)) * rand0, + vec4(1), + spin_in_axis(vec3(1,0,0),0) + ); + break; + } + + // Temporary: use shrinking particles as a substitute for fading ones + attr.scale *= pow(attr.col.a, 0.25); + + f_pos = start_pos + (v_pos * attr.scale * SCALE * mat3(attr.rot) + attr.offs); + + #ifdef EXPERIMENTAL_CURVEDWORLD + f_pos.z -= pow(distance(f_pos.xy + focus_off.xy, focus_pos.xy + focus_off.xy) * 0.05, 2); + #endif + + // First 3 normals are negative, next 3 are positive + // TODO: Make particle normals match orientation + vec4 normals[6] = vec4[]( + vec4(-1,0,0,0), + vec4(1,0,0,0), + vec4(0,-1,0,0), + vec4(0,1,0,0), + vec4(0,0,-1,0), + vec4(0,0,1,0) + ); + f_norm = + // inst_pos * + normalize(((normals[(v_norm_ao >> 0) & 0x7u]) * attr.rot).xyz); + + //vec3 col = vec3((uvec3(v_col) >> uvec3(0, 8, 16)) & uvec3(0xFFu)) / 255.0; + f_col = vec4(attr.col.rgb, attr.col.a); + + f_mode = inst_mode; + + gl_Position = + all_mat * + vec4(f_pos, 1); +} diff --git a/assets/voxygen/shaders/player-shadow-frag.glsl b/assets/voxygen/shaders/player-shadow-frag.glsl new file mode 100644 index 0000000..d64be8f --- /dev/null +++ b/assets/voxygen/shaders/player-shadow-frag.glsl @@ -0,0 +1,67 @@ +#version 330 core + +#define FIGURE_SHADER + +#include + +#define LIGHTING_TYPE LIGHTING_TYPE_REFLECTION + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_GLOSSY + +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +#include + +in vec3 f_pos; +in vec3 f_col; +flat in vec3 f_norm; +in float f_ao; +// in float f_alt; +// in vec4 f_shadow; + +layout (std140) +uniform u_locals { + mat4 model_mat; + vec4 highlight_col; + vec4 model_light; + vec4 model_glow; + ivec4 atlas_offs; + vec3 model_pos; + int flags; +}; + +struct BoneData { + mat4 bone_mat; + mat4 normals_mat; +}; + +layout (std140) +uniform u_bones { + BoneData bones[16]; +}; + +#include +#include +#include + +out vec4 tgt_color; + +void main() { + // float distance = distance(vec3(cam_pos), focus_pos.xyz) - 2; + + // float opacity = clamp(distance / distance_divider, 0, 1); + + // if(threshold_matrix[int(gl_FragCoord.x) % 4][int(gl_FragCoord.y) % 4] > opacity) { + // discard; + // } + + // if(threshold_matrix[int(gl_FragCoord.x) % 4][int(gl_FragCoord.y) % 4] > shadow_dithering) { + // discard; + // } + + tgt_color = vec4(0.0,0.0,0.0, 1.0); +} diff --git a/assets/voxygen/shaders/point-light-shadows-vert.glsl b/assets/voxygen/shaders/point-light-shadows-vert.glsl new file mode 100644 index 0000000..92bd3db --- /dev/null +++ b/assets/voxygen/shaders/point-light-shadows-vert.glsl @@ -0,0 +1,59 @@ +#version 440 core +// #extension ARB_texture_storage : enable + +#include + +#define LIGHTING_TYPE LIGHTING_TYPE_REFLECTION + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_GLOSSY + +#if (FLUID_MODE == FLUID_MODE_LOW) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE +#elif (FLUID_MODE >= FLUID_MODE_MEDIUM) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_RADIANCE +#endif + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +// Currently, we only need globals for focus_off. +#include + +/* Accurate packed shadow maps for many lights at once! + * + * Ideally, we would just write to a bitmask... + * + * */ + +layout(location = 0) in uint v_pos_norm; +// layout(location = 1) in uint v_atlas_pos; +// in uint v_col_light; +// in vec4 v_pos; + +// Light projection matrices. +layout (std140, set = 1, binding = 0) +uniform u_locals { + mat4 model_mat; + ivec4 atlas_offs; + float load_time; +}; + +// out vec4 shadowMapCoord; + +const float EXTRA_NEG_Z = 32768.0; + +layout( push_constant ) uniform PointLightMatrix { + mat4 lightShadowMatrix; +}; + +void main() { + vec3 f_chunk_pos = vec3(v_pos_norm & 0x3Fu, (v_pos_norm >> 6) & 0x3Fu, float((v_pos_norm >> 12) & 0xFFFFu) - EXTRA_NEG_Z); + vec3 f_pos = (model_mat * vec4(f_chunk_pos, 1.0)).xyz - focus_off.xyz; + // f_pos = v_pos; + + // gl_Position = /*all_mat * */vec4(f_pos/*, 1.0*/, /*float(((f_pos_norm >> 29) & 0x7u) ^ 0x1)*//*uintBitsToFloat(v_pos_norm)*/1.0); + // shadowMapCoord = lights[gl_InstanceID].light_pos * gl_Vertex; + // vec4(v_pos, 0.0, 1.0); + gl_Position = lightShadowMatrix * vec4(f_pos, 1.0); +} diff --git a/assets/voxygen/shaders/postprocess-frag.glsl b/assets/voxygen/shaders/postprocess-frag.glsl new file mode 100644 index 0000000..8ce1548 --- /dev/null +++ b/assets/voxygen/shaders/postprocess-frag.glsl @@ -0,0 +1,387 @@ +#version 440 core + +#include + +#define LIGHTING_TYPE (LIGHTING_TYPE_TRANSMISSION | LIGHTING_TYPE_REFLECTION) + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_SPECULAR + +#if (FLUID_MODE == FLUID_MODE_LOW) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE +#elif (FLUID_MODE >= FLUID_MODE_MEDIUM) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_RADIANCE +#endif + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +#include +// Note: The sampler uniform is declared here because it differs for MSAA +#include +#include +#include +#include +#include + +layout(set = 1, binding = 0) +uniform texture2D t_src_color; +layout(set = 1, binding = 1) +uniform sampler s_src_color; + +layout(set = 1, binding = 2) +uniform texture2D t_src_depth; +layout(set = 1, binding = 3) +uniform sampler s_src_depth; + +layout(location = 0) in vec2 uv; + +layout (std140, set = 1, binding = 4) +uniform u_locals { + mat4 proj_mat_inv; + mat4 view_mat_inv; +}; + +#ifdef BLOOM_FACTOR +layout(set = 1, binding = 5) +uniform texture2D t_src_bloom; +#ifdef EXPERIMENTAL_GRADIENTSOBEL +layout(set = 1, binding = 6) +uniform utexture2D t_src_mat; +#endif +#else +#ifdef EXPERIMENTAL_GRADIENTSOBEL +layout(set = 1, binding = 5) +uniform utexture2D t_src_mat; +#endif +#endif + +layout(location = 0) out vec4 tgt_color; + +vec3 rgb2hsv(vec3 c) { + vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); + vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g)); + vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r)); + + float d = q.x - min(q.w, q.y); + float e = 1.0e-10; + return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x); +} + +vec3 hsv2rgb(vec3 c) { + vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); + vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www); + return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y); +} + +vec3 _illuminate(float max_light, vec3 view_dir, /*vec3 max_light, */vec3 emitted, vec3 reflected) { + const float NIGHT_EXPOSURE = 10.0; + const float DUSK_EXPOSURE = 2.0;//0.8; + const float DAY_EXPOSURE = 1.0;//0.7; + + const float DAY_SATURATION = 1.0; + const float DUSK_SATURATION = 0.6; + const float NIGHT_SATURATION = 0.1; + + const float gamma = /*0.5*//*1.*0*/1.0;//1.0; + /* float light = length(emitted + reflected); + float color = srgb_to_linear(emitted + reflected); + float avg_col = (color.r + color.g + color.b) / 3.0; + return ((color - avg_col) * light + reflected * avg_col) * (emitted + reflected); */ + // float max_intensity = vec3(1.0); + vec3 color = emitted + reflected; + float lum = rel_luminance(color); + // float lum_sky = lum - max_light; + + // vec3 sun_dir = get_sun_dir(time_of_day.x); + // vec3 moon_dir = get_moon_dir(time_of_day.x); + // float sky_light = rel_luminance( + // get_sun_color(sun_dir) * get_sun_brightness(sun_dir) * SUN_COLOR_FACTOR + + // get_moon_color(moon_dir) * get_moon_brightness(moon_dir)); + float sky_light = lum; + + // Tone mapped value. + // vec3 T = /*color*//*lum*/color;//normalize(color) * lum / (1.0 + lum); + // float alpha = 0.5;//2.0; + // float alpha = mix( + // mix( + // DUSK_EXPOSURE, + // NIGHT_EXPOSURE, + // max(sun_dir.z, 0) + // ), + // DAY_EXPOSURE, + // max(-sun_dir.z, 0) + // ); + float alpha = 1.0;//log(1.0 - lum) / lum; + // vec3 now_light = moon_dir.z < 0 ? moon_dir : sun_dir; + // float cos_view_light = dot(-now_light, view_dir); + // alpha *= exp(1.0 - cos_view_light); + // sky_light *= 1.0 - log(1.0 + view_dir.z); + float alph = sky_light > 0.0 && max_light > 0.0 ? mix(1.0 / log(/*1.0*//*1.0 + *//*lum_sky + */1.0 + max_light / (0.0 + sky_light)), 1.0, clamp(max_light - sky_light, 0.0, 1.0)) : 1.0; + alpha = alpha * alph;// min(alph, 1.0);//((max_light > 0.0 && max_light > sky_light /* && sky_light > 0.0*/) ? /*1.0*/1.0 / log(/*1.0*//*1.0 + *//*lum_sky + */1.0 + max_light - (0.0 + sky_light)) : 1.0); + // alpha = alpha * min(1.0, (max_light == 0.0 ? 1.0 : (1.0 + abs(lum_sky)) / /*(1.0 + max_light)*/max_light)); + + vec3 col_adjusted = lum == 0.0 ? vec3(0.0) : color / lum; + + // float L = lum == 0.0 ? 0.0 : log(lum); + + + // // float B = T; + // // float B = L + log(alpha); + // float B = lum; + + // float D = L - B; + + // float o = 0.0;//log(PERSISTENT_AMBIANCE); + // float scale = /*-alpha*/-alpha;//1.0; + + // float B_ = (B - o) * scale; + + // // float T = lum; + // float O = exp(B_ + D); + + float T = 1.0 - exp(-alpha * lum);//lum / (1.0 + lum); + // float T = lum; + + // Heuristic desaturation + // const float s = 0.8; + float s = 1.0; + // float s = mix( + // mix( + // DUSK_SATURATION, + // NIGHT_SATURATION, + // max(sun_dir.z, 0) + // ), + // DAY_SATURATION, + // max(-sun_dir.z, 0) + // ); + // s = max(s, (max_light) / (1.0 + s)); + // s = max(s, max_light / (1.0 + max_light)); + // s = max_light / (1.0 + max_light); + + vec3 c = pow(col_adjusted, vec3(s)) * T; + // vec3 c = col_adjusted * T; + // vec3 c = sqrt(col_adjusted) * T; + // vec3 c = /*col_adjusted * */col_adjusted * T; + + return c; + // float sum_col = color.r + color.g + color.b; + // return /*srgb_to_linear*/(/*0.5*//*0.125 * */vec3(pow(color.x, gamma), pow(color.y, gamma), pow(color.z, gamma))); +} + +#ifdef EXPERIMENTAL_SOBEL +vec3 aa_sample(vec2 uv, vec2 off) { + return aa_apply(t_src_color, s_src_color, t_src_depth, s_src_depth, uv * screen_res.xy + off, screen_res.xy).rgb; +} +#endif +#ifdef EXPERIMENTAL_GRADIENTSOBEL +vec3 aa_sample_grad(vec2 uv, vec2 off) { + uvec2 mat_sz = textureSize(usampler2D(t_src_mat, s_src_depth), 0); + uvec4 mat = texelFetch(usampler2D(t_src_mat, s_src_depth), clamp(ivec2(uv * mat_sz + off), ivec2(0), ivec2(mat_sz) - 1), 0); + return vec3(mat.xyz) / 255.0; +} +#endif + +#ifdef EXPERIMENTAL_COLORDITHERING + float dither(ivec2 p, float level) { + // Bayer dithering + int dither[8][8] = { + { 0, 32, 8, 40, 2, 34, 10, 42}, /* 8x8 Bayer ordered dithering */ + {48, 16, 56, 24, 50, 18, 58, 26}, /* pattern. Each input pixel */ + {12, 44, 4, 36, 14, 46, 6, 38}, /* is scaled to the 0..63 range */ + {60, 28, 52, 20, 62, 30, 54, 22}, /* before looking in this table */ + { 3, 35, 11, 43, 1, 33, 9, 41}, /* to determine the action. */ + {51, 19, 59, 27, 49, 17, 57, 25}, + {15, 47, 7, 39, 13, 45, 5, 37}, + {63, 31, 55, 23, 61, 29, 53, 21} + }; + return step((dither[p.x % 8][p.y % 8]+1) * 0.016, level); + } +#endif + +void main() { + #ifdef EXPERIMENTAL_BAREMINIMUM + tgt_color = vec4(texture(sampler2D(t_src_color, s_src_color), uv).rgb, 1); + return; + #endif + + /* if (medium.x == 1u) { + uv = clamp(uv + vec2(sin(uv.y * 16.0 + tick.x), sin(uv.x * 24.0 + tick.x)) * 0.005, 0, 1); + } */ + + vec2 c_uv = vec2(0.5);//uv;//vec2(0.5);//uv; + vec2 delta = /*sqrt*//*sqrt(2.0) / 2.0*//*sqrt(2.0) / 2.0*//*0.5 - */min(uv, 1.0 - uv);//min(uv * (1.0 - uv), 0.25) * 2.0; + // delta = /*sqrt(2.0) / 2.0 - */sqrt(vec2(dot(delta, delta))); + // delta = 0.5 - vec2(min(delta.x, delta.y)); + delta = vec2(0.25);//vec2(dot(/*0.5 - */delta, /*0.5 - */delta));//vec2(min(delta.x, delta.y));//sqrt(2.0) * (0.5 - vec2(min(delta.x, delta.y))); + // delta = vec2(sqrt(dot(delta, delta))); + // vec2 delta = /*sqrt*//*sqrt(2.0) / 2.0*//*sqrt(2.0) / 2.0*/1.0 - vec2(sqrt(dot(uv, 1.0 - uv)));//min(uv * (1.0 - uv), 0.25) * 2.0; + // float delta = /*sqrt*//*sqrt(2.0) / 2.0*//*sqrt(2.0) / 2.0*/1.0 - (dot(uv - 0.5, uv - 0.5));//0.01;//25; + // vec2 delta = /*sqrt*//*sqrt(2.0) / 2.0*//*sqrt(2.0) / 2.0*/sqrt(uv * (1.0 - uv));//min(uv * (1.0 - uv), 0.25) * 2.0; + + // float bright_color0 = rel_luminance(texelFetch/*texture*/(src_color, ivec2(clamp(c_uv + vec2(0.0, 0.0), 0.0, 1.0) * screen_res.xy/* / 50*/)/* * 50*/, 0).rgb); + // float bright_color1 = rel_luminance(texelFetch/*texture*/(src_color, ivec2(clamp(c_uv + vec2(delta.x, delta.y), 0.0, 1.0) * screen_res.xy/* / 50*/)/* * 50*/, 0).rgb); + // float bright_color2 = rel_luminance(texelFetch/*texture*/(src_color, ivec2(clamp(c_uv + vec2(delta.x, -delta.y), 0.0, 1.0) * screen_res.xy/* / 50*/)/* * 50*/, 0).rgb); + // float bright_color3 = rel_luminance(texelFetch/*texture*/(src_color, ivec2(clamp(c_uv + vec2(-delta.x, delta.y), 0.0, 1.0) * screen_res.xy/* / 50*/)/* * 50*/, 0).rgb); + // float bright_color4 = rel_luminance(texelFetch/*texture*/(src_color, ivec2(clamp(c_uv + vec2(-delta.x, -delta.y), 0.0, 1.0) * screen_res.xy/* / 50*/)/* * 50*/, 0).rgb); + + // float bright_color0 = rel_luminance(texture(src_color, /*ivec2*/(clamp(c_uv + vec2(0.0, 0.0), 0.0, 1.0)/* * screen_res.xy*//* / 50*/)/* * 50*/, 0).rgb); + // float bright_color1 = rel_luminance(texture(src_color, /*ivec2*/(clamp(c_uv + vec2(delta, delta), 0.0, 1.0)/* * screen_res.xy*//* / 50*/)/* * 50*/, 0).rgb); + // float bright_color2 = rel_luminance(texture(src_color, /*ivec2*/(clamp(c_uv + vec2(delta, -delta), 0.0, 1.0)/* * screen_res.xy*//* / 50*/)/* * 50*/, 0).rgb); + // float bright_color3 = rel_luminance(texture(src_color, /*ivec2*/(clamp(c_uv + vec2(-delta, delta), 0.0, 1.0)/* * screen_res.xy*//* / 50*/)/* * 50*/, 0).rgb); + // float bright_color4 = rel_luminance(texture(src_color, /*ivec2*/(clamp(c_uv + vec2(-delta, -delta), 0.0, 1.0)/* * screen_res.xy*//* / 50*/)/* * 50*/, 0).rgb); + + // float bright_color = max(bright_color0, max(bright_color1, max(bright_color2, max(bright_color3, bright_color4))));// / 2.0;// / 5.0; + + // float bright_color = (bright_color0 + bright_color1 + bright_color2 + bright_color3 + bright_color4) / 5.0; + + // TODO: this causes flickering when the camera is moving into and out of solid blocks, resolve before uncommenting + // if (medium.x == 2u) { + // tgt_color = vec4(0, 0.005, 0.01, 1) * (1 + hash_fast(uvec3(vec3(uv * screen_res.xy / 32.0, 0)))); + // return; + // } + + vec2 sample_uv = uv; + #ifdef EXPERIMENTAL_UNDERWARPER + if (medium.x == MEDIUM_WATER) { + float x = tick_loop(2.0 * PI, 3.0, uv.y * 60); + float y = tick_loop(2.0 * PI, 3.0, uv.x * 60); + sample_uv += sin(vec2(x, y)) * 0.003; + } + #endif + + vec4 aa_color = aa_apply(t_src_color, s_src_color, t_src_depth, s_src_depth, sample_uv * screen_res.xy, screen_res.xy); + + #ifdef EXPERIMENTAL_SOBEL + vec3 s[8]; + s[0] = aa_sample(uv, vec2(-1, 1)); + s[1] = aa_sample(uv, vec2( 0, 1)); + s[2] = aa_sample(uv, vec2( 1, 1)); + s[3] = aa_sample(uv, vec2(-1, 0)); + s[4] = aa_sample(uv, vec2( 1, 0)); + s[5] = aa_sample(uv, vec2(-1, -1)); + s[6] = aa_sample(uv, vec2( 0, -1)); + s[7] = aa_sample(uv, vec2( 1, -1)); + vec3 gx = s[0] + s[3] * 2.0 + s[5] - s[2] - s[4] * 2 - s[7]; + vec3 gy = s[0] + s[1] * 2.0 + s[2] - s[5] - s[6] * 2 - s[7]; + float mag = length(gx) + length(gy); + aa_color.rgb = mix(vec3(0.9), aa_color.rgb * 0.8, clamp(1.0 - mag * 0.3, 0.0, 1.0)); + #endif + #ifdef EXPERIMENTAL_GRADIENTSOBEL + vec3 s2[8]; + s2[0] = aa_sample_grad(uv, vec2(-1, 1)); + s2[1] = aa_sample_grad(uv, vec2( 0, 1)); + s2[2] = aa_sample_grad(uv, vec2( 1, 1)); + s2[3] = aa_sample_grad(uv, vec2(-1, 0)); + s2[4] = aa_sample_grad(uv, vec2( 1, 0)); + s2[5] = aa_sample_grad(uv, vec2(-1, -1)); + s2[6] = aa_sample_grad(uv, vec2( 0, -1)); + s2[7] = aa_sample_grad(uv, vec2( 1, -1)); + vec3 gx2 = s2[0] + s2[3] * 2.0 + s2[5] - s2[2] - s2[4] * 2 - s2[7]; + vec3 gy2 = s2[0] + s2[1] * 2.0 + s2[2] - s2[5] - s2[6] * 2 - s2[7]; + float mag2 = length(gx2) + length(gy2); + aa_color.rgb = mix(vec3(0.0), aa_color.rgb * 0.8, clamp(1.0 - mag2 * 0.3, 0.0, 1.0)); + #endif + + // Bloom + #ifdef BLOOM_FACTOR + vec4 bloom = textureLod(sampler2D(t_src_bloom, s_src_color), sample_uv, 0); + #if (BLOOM_UNIFORM_BLUR == false) + // divide by 4.0 to account for adding blurred layers together + bloom /= 4.0; + #endif + aa_color = mix(aa_color, bloom, BLOOM_FACTOR); + #endif + + // Tonemapping + float exposure_offset = 1.0; + // Adding an in-code offset to gamma and exposure let us have more precise control over the game's look + #ifdef EXPERIMENTAL_CINEMATIC + float gamma_offset = 0.5; + #else + float gamma_offset = 0.3; + #endif + aa_color.rgb = vec3(1.0) - exp(-aa_color.rgb * (gamma_exposure.y + exposure_offset)); + // gamma correction + aa_color.rgb = pow(aa_color.rgb, vec3(gamma_exposure.x + gamma_offset)); + + /* + // Apply clouds to `aa_color` + #if (CLOUD_MODE != CLOUD_MODE_NONE) + vec3 wpos = wpos_at(uv); + float dist = distance(wpos, cam_pos.xyz); + vec3 dir = (wpos - cam_pos.xyz) / dist; + + aa_color.rgb = get_cloud_color(aa_color.rgb, dir, cam_pos.xyz, dist, 1.0); + #endif + */ + + // aa_color.rgb = (wpos + focus_off.xyz) / vec3(32768, 32768, /*view_distance.w*/2048); + // aa_color.rgb = mod((wpos + focus_off.xyz), vec3(32768, 32768, view_distance.w)) / vec3(32768, 32768, view_distance.w);// / vec3(32768, 32768, view_distance.w); + // aa_color.rgb = mod((wpos + focus_off.xyz), vec3(32, 32, 16)) / vec3(32, 32, 16);// / vec3(32768, 32768, view_distance.w); + // aa_color.rgb = focus_off.xyz / vec3(32768, 32768, view_distance.w); + + /* aa_color.rgb = wpos / 10000.0; */ + + /* aa_color.rgb = vec3((texture(src_depth, uv).x - 0.99) * 100.0); */ + + /* aa_color.rgb = vec3((dist - 100000) / 300000.0, 1, 1); */ + + /* vec3 scatter_color = get_sun_color() * get_sun_brightness() + get_moon_color() * get_moon_brightness(); */ + + /* aa_color.rgb += cloud_color.rgb * scatter_color;//mix(aa_color, vec4(cloud_color.rgb * scatter_color, 1), cloud_color.a); */ + + // aa_color.rgb = illuminate(1.0 - 1.0 / (1.0 + bright_color), normalize(cam_pos.xyz - focus_pos.xyz), /*vec3 max_light, */vec3(0.0), aa_color.rgb); + + //vec4 hsva_color = vec4(rgb2hsv(fxaa_color.rgb), fxaa_color.a); + //hsva_color.y *= 1.45; + //hsva_color.z *= 0.85; + //hsva_color.z = 1.0 - 1.0 / (1.0 * hsva_color.z + 1.0); + //vec4 final_color = vec4(hsv2rgb(hsva_color.rgb), hsva_color.a); + + vec4 final_color = aa_color; + +#if (FLUID_MODE == FLUID_MODE_LOW) + if (medium.x == MEDIUM_WATER) { + final_color *= vec4(0.2, 0.2, 0.8, 1.0); + } +#endif + +#ifndef EXPERIMENTAL_NODITHER + // Add a small amount of very cheap dithering noise to remove banding from gradients + // TODO: Consider dithering each color channel independently. + // TODO: Consider varying dither over time. + // TODO: Instead of 255, detect the colour resolution of the color attachment + float noise = hash_two(uvec2(uv * screen_res.xy)); + #ifndef EXPERIMENTAL_NONSRGBDITHER + #ifndef EXPERIMENTAL_TRIANGLENOISEDITHER + noise = noise - 0.5; + #else + // TODO: there is something special we have to do to remove bias + // on the bounds when using triangle distribution + noise = 2.0 * norm2tri(noise) - 1.0; + #endif + final_color.rgb = srgb_to_linear(linear_to_srgb(final_color.rgb) + noise / 255.0); + #else + // NOTE: GPU will clamp value + final_color.rgb = final_color.rgb - noise / 255.0; + #endif +#endif + + #ifdef EXPERIMENTAL_NEWSPAPER + float nz = hash_three(uvec3(uvec2(uv * screen_res.xy), tick.x * dot(fract(uv * 10) + 5, vec2(1)) * 0.2)); + nz = (nz > 0.5) ? (pow(nz * 2 - 1, 1.5) * 0.5 + 0.5) : (pow(nz * 2, 1/1.5) * 0.5); + final_color.rgb = vec3(step(nz, length(final_color.rgb))) * vec3(1, 0.5, 0.3); + #else + #ifdef EXPERIMENTAL_COLORDITHERING + float d = dither(ivec2(uv * screen_res.xy), sqrt(length(final_color.rgb) * 0.25)); + final_color.rgb = vec3(d) * sqrt(normalize(final_color.rgb)); + #endif + #endif + + #ifdef EXPERIMENTAL_CINEMATIC + final_color.rgb = hsv2rgb(rgb2hsv(final_color.rgb) * vec3(1, 1, 1.3) + vec3(-0.01, 0.05, 0)); + #endif + + tgt_color = vec4(final_color.rgb, 1); +} diff --git a/assets/voxygen/shaders/postprocess-vert.glsl b/assets/voxygen/shaders/postprocess-vert.glsl new file mode 100644 index 0000000..a3004c8 --- /dev/null +++ b/assets/voxygen/shaders/postprocess-vert.glsl @@ -0,0 +1,33 @@ +#version 440 core + +#include + +#define LIGHTING_TYPE (LIGHTING_TYPE_TRANSMISSION | LIGHTING_TYPE_REFLECTION) + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_SPECULAR + +#if (FLUID_MODE == FLUID_MODE_LOW) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE +#elif (FLUID_MODE >= FLUID_MODE_MEDIUM) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_RADIANCE +#endif + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +#include + +layout(location = 0) out vec2 uv; + +void main() { + // Generate fullscreen triangle + vec2 v_pos = vec2( + float(gl_VertexIndex / 2) * 4.0 - 1.0, + float(gl_VertexIndex % 2) * 4.0 - 1.0 + ); + + uv = (v_pos * vec2(1.0, -1.0) + 1.0) * 0.5; + + gl_Position = vec4(v_pos, 0.0, 1.0); +} diff --git a/assets/voxygen/shaders/premultiply-alpha-frag.glsl b/assets/voxygen/shaders/premultiply-alpha-frag.glsl new file mode 100644 index 0000000..f2997c3 --- /dev/null +++ b/assets/voxygen/shaders/premultiply-alpha-frag.glsl @@ -0,0 +1,17 @@ +#version 440 core +#extension GL_EXT_samplerless_texture_functions : enable + +layout(set = 0, binding = 0) +uniform texture2D source_texture; + +layout(location = 0) in vec2 source_coords; + +layout(location = 0) out vec4 target_color; + +void main() { + // We get free nonlinear -> linear conversion when sampling from srgb texture; + vec4 linear = texelFetch(source_texture, ivec2(source_coords), 0); + vec4 premultiplied_linear = vec4(linear.rgb * linear.a, linear.a); + // We get free linear -> nonlinear conversion rendering to srgb texture. + target_color = premultiplied_linear; +} diff --git a/assets/voxygen/shaders/premultiply-alpha-vert.glsl b/assets/voxygen/shaders/premultiply-alpha-vert.glsl new file mode 100644 index 0000000..18f8f57 --- /dev/null +++ b/assets/voxygen/shaders/premultiply-alpha-vert.glsl @@ -0,0 +1,45 @@ +#version 440 core + +layout(push_constant) uniform Params { + // Size of the source image. + uint source_size_xy; + // Offset to place the image at in the target texture. + // + // Origin is the top-left. + uint target_offset_xy; + // Size of the target texture. + uint target_size_xy; +}; + +layout(location = 0) out vec2 source_coords; + +vec2 unpack(uint xy) { + return vec2(xy & 0xFFFF, (xy >> 16) & 0xFFFF); +} + +void main() { + vec2 source_size = unpack(source_size_xy); + vec2 target_offset = unpack(target_offset_xy); + vec2 target_size = unpack(target_size_xy); + + // Generate rectangle (counter clockwise triangles) + // + // 0 0 1 1 1 0 + float x_select = float(((uint(gl_VertexIndex) + 1u) / 3u) % 2u); + // 1 0 0 0 1 1 + float y_select = float(((uint(gl_VertexIndex) + 5u) / 3u) % 2u); + + source_coords = vec2( + // left -> right (on screen) + mix(0.0, 1.0, x_select), + // bottom -> top (on screen) + mix(1.0, 0.0, y_select) + ) * source_size; + + vec2 target_coords_normalized = (target_offset + source_coords) / target_size; + + // Flip y and transform [0.0, 1.0] -> [-1.0, 1.0] to get NDC coordinates. + vec2 v_pos = ((target_coords_normalized * 2.0) - vec2(1.0)) * vec2(1.0, -1.0); + + gl_Position = vec4(v_pos, 0.0, 1.0); +} diff --git a/assets/voxygen/shaders/rain-occlusion-directed-vert.glsl b/assets/voxygen/shaders/rain-occlusion-directed-vert.glsl new file mode 100644 index 0000000..1f6098c --- /dev/null +++ b/assets/voxygen/shaders/rain-occlusion-directed-vert.glsl @@ -0,0 +1,65 @@ +#version 440 core +// #extension ARB_texture_storage : enable + +#include + +#define LIGHTING_TYPE LIGHTING_TYPE_REFLECTION + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_GLOSSY + +#if (FLUID_MODE == FLUID_MODE_LOW) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE +#elif (FLUID_MODE >= FLUID_MODE_MEDIUM) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_RADIANCE +#endif + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +#define HAS_SHADOW_MAPS + +// Currently, we only need globals for focus_off. +#include +// For shadow locals. +// #include + +layout (std140, set = 0, binding = 14) +uniform u_rain_occlusion { + mat4 rain_occlusion_matrices; + mat4 rain_occlusion_texture_mat; + mat4 rain_dir_mat; + float integrated_rain_vel; + float rain_density; + vec2 occlusion_dummy; // Fix alignment. +}; + +/* Accurate packed shadow maps for many lights at once! + * + * Ideally, we would just write to a bitmask... + * + * */ + +layout(location = 0) in uint v_pos_norm; +// in uint v_col_light; +// in vec4 v_pos; +// layout(location = 1) in uint v_atlas_pos; + +// Light projection matrices. +layout (std140, set = 1, binding = 0) +uniform u_locals { + mat4 model_mat; + ivec4 atlas_offs; + float load_time; +}; + +// out vec4 shadowMapCoord; + +const float EXTRA_NEG_Z = 32768.0; + +void main() { + vec3 f_chunk_pos = vec3(v_pos_norm & 0x3Fu, (v_pos_norm >> 6) & 0x3Fu, float((v_pos_norm >> 12) & 0xFFFFu) - EXTRA_NEG_Z); + vec3 f_pos = (model_mat * vec4(f_chunk_pos, 1.0)).xyz - focus_off.xyz; + + gl_Position = rain_occlusion_matrices * vec4(f_pos, 1.0); +} diff --git a/assets/voxygen/shaders/rain-occlusion-figure-vert.glsl b/assets/voxygen/shaders/rain-occlusion-figure-vert.glsl new file mode 100644 index 0000000..7deec6a --- /dev/null +++ b/assets/voxygen/shaders/rain-occlusion-figure-vert.glsl @@ -0,0 +1,86 @@ +#version 440 core +// #extension ARB_texture_storage : enable + +#define FIGURE_SHADER + +#include + +#define LIGHTING_TYPE LIGHTING_TYPE_REFLECTION + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_GLOSSY + +#if (FLUID_MODE == FLUID_MODE_LOW) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE +#elif (FLUID_MODE >= FLUID_MODE_MEDIUM) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_RADIANCE +#endif + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +#define HAS_SHADOW_MAPS + +// Currently, we only need globals for focus_off. +#include +// For shadow locals. +// #include + +layout (std140, set = 0, binding = 14) +uniform u_rain_occlusion { + mat4 rainOcclusionMatrices; + mat4 texture_mat; + mat4 rain_dir_mat; + float integrated_rain_vel; + float rain_density; + vec2 occlusion_dummy; // Fix alignment. +}; + +/* Accurate packed shadow maps for many lights at once! + * + * Ideally, we would just write to a bitmask... + * + * */ + +layout(location = 0) in uint v_pos_norm; +layout(location = 1) in uint v_atlas_pos; +// in uint v_col_light; +// in vec4 v_pos; + +layout (std140, set = 1, binding = 0) +uniform u_locals { + mat4 model_mat; + vec4 highlight_col; + vec4 model_light; + vec4 model_glow; + ivec4 atlas_offs; + vec3 model_pos; + // bit 0 - is player + // bit 1-31 - unused + int flags; +}; + +struct BoneData { + mat4 bone_mat; + mat4 normals_mat; +}; + +layout (std140, set = 1, binding = 1) +uniform u_bones { + // Warning: might not actually be 16 elements long. Don't index out of bounds! + BoneData bones[16]; +}; + +// out vec4 shadowMapCoord; + +void main() { + uint bone_idx = (v_pos_norm >> 27) & 0xFu; + vec3 pos = (vec3((uvec3(v_pos_norm) >> uvec3(0, 9, 18)) & uvec3(0x1FFu)) - 256.0) / 2.0; + + vec3 f_pos = ( + bones[bone_idx].bone_mat * + vec4(pos, 1.0) + ).xyz + (model_pos - focus_off.xyz/* + vec3(0.0, 0.0, 0.0001)*/); + + gl_Position = rainOcclusionMatrices * vec4(f_pos, 1.0); +} diff --git a/assets/voxygen/shaders/rope-frag.glsl b/assets/voxygen/shaders/rope-frag.glsl new file mode 100644 index 0000000..70acd99 --- /dev/null +++ b/assets/voxygen/shaders/rope-frag.glsl @@ -0,0 +1,238 @@ +#version 440 core + +#define FIGURE_SHADER + +#include + +#define LIGHTING_TYPE LIGHTING_TYPE_REFLECTION + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_GLOSSY + +#if (FLUID_MODE == FLUID_MODE_LOW) + #define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE +#elif (FLUID_MODE >= FLUID_MODE_MEDIUM) + #define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_RADIANCE +#endif + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +#define HAS_SHADOW_MAPS + +#include +#include +#include +#include + +layout(location = 0) in vec3 f_pos; +// in float dummy; +// in vec3 f_col; +// in float f_ao; +// flat in uint f_pos_norm; +layout(location = 1) in vec3 f_norm; +layout(location = 2) in vec3 m_pos; +// in float f_alt; +// in vec4 f_shadow; +// in vec3 light_pos[2]; + +// #if (SHADOW_MODE == SHADOW_MODE_MAP) +// in vec4 sun_pos; +// #elif (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_NONE) +// const vec4 sun_pos = vec4(0.0); +// #endif + +//struct ShadowLocals { +// mat4 shadowMatrices; +// mat4 texture_mat; +//}; +// +//layout (std140) +//uniform u_light_shadows { +// ShadowLocals shadowMats[/*MAX_LAYER_FACES*/192]; +//}; + +layout (std140, set = 2, binding = 0) +uniform u_locals { + vec4 pos_a; + vec4 pos_b; + float rope_length; +}; + +layout(location = 0) out vec4 tgt_color; +layout(location = 1) out uvec4 tgt_mat; + +void main() { + // vec2 texSize = textureSize(t_col_light, 0); + // vec4 col_light = texture(t_col_light, (f_uv_pos + 0.5) / texSize); + // vec3 f_col = col_light.rgb; + // float f_ao = col_light.a; + + // vec4 f_col_light = texture(t_col_light, (f_uv_pos + 0.5) / textureSize(t_col_light, 0)); + // vec3 f_col = f_col_light.rgb; + // float f_ao = f_col_light.a; + + float f_ao = 1.0; + vec3 f_col = mix( + vec3(0.05, 0.03, 0.01), + vec3(0.1, 0.07, 0.05), + floor(abs(fract(m_pos.z * 10.0 + atan(m_pos.x, m_pos.y) * 0.159) - 0.5) * 6.0) / 3.0 + ); + + #ifdef EXPERIMENTAL_BAREMINIMUM + tgt_color = vec4(simple_lighting(f_pos.xyz, f_col, f_ao), 1); + return; + #endif + + // float /*f_light*/f_ao = textureProj(t_col_light, vec3(f_uv_pos, texSize)).a;//1.0;//f_col_light.a * 4.0;// f_light = float(v_col_light & 0x3Fu) / 64.0; + + // vec3 my_chunk_pos = (vec3((uvec3(f_pos_norm) >> uvec3(0, 9, 18)) & uvec3(0x1FFu)) - 256.0) / 2.0; + // tgt_color = vec4(hash(floor(vec4(my_chunk_pos.x, 0, 0, 0))), hash(floor(vec4(0, my_chunk_pos.y, 0, 1))), hash(floor(vec4(0, 0, my_chunk_pos.z, 2))), 1.0); + // float f_ao = 0; + // tgt_color = vec4(vec3(f_ao), 1.0); + // tgt_color = vec4(f_col, 1.0); + // return; + + // vec3 du = dFdx(f_pos); + // vec3 dv = dFdy(f_pos); + // vec3 f_norm = normalize(cross(du, dv)); + + // vec4 light_pos[2]; +//#if (SHADOW_MODE == SHADOW_MODE_MAP) +// // for (uint i = 0u; i < light_shadow_count.z; ++i) { +// // light_pos[i] = /*vec3(*/shadowMats[i].texture_mat * vec4(f_pos, 1.0)/*)*/; +// // } +// vec4 sun_pos = /*vec3(*/shadowMats[0].texture_mat * vec4(f_pos, 1.0)/*)*/; +//#elif (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_NONE) +// vec4 sun_pos = vec4(0.0); +//#endif + + vec3 cam_to_frag = normalize(f_pos - cam_pos.xyz); + // vec4 vert_pos4 = view_mat * vec4(f_pos, 1.0); + // vec3 view_dir = normalize(-vec3(vert_pos4)/* / vert_pos4.w*/); + vec3 view_dir = -cam_to_frag; + + /* vec3 sun_dir = get_sun_dir(time_of_day.x); + vec3 moon_dir = get_moon_dir(time_of_day.x); */ + // float sun_light = get_sun_brightness(sun_dir); + // float moon_light = get_moon_brightness(moon_dir); + /* float sun_shade_frac = horizon_at(f_pos, sun_dir); + float moon_shade_frac = horizon_at(f_pos, moon_dir); */ +#if (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_MAP || FLUID_MODE >= FLUID_MODE_MEDIUM) + float f_alt = alt_at(f_pos.xy); +#elif (SHADOW_MODE == SHADOW_MODE_NONE || FLUID_MODE == FLUID_MODE_LOW) + float f_alt = f_pos.z; +#endif + +#if (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_MAP) + vec4 f_shadow = textureBicubic(t_horizon, s_horizon, pos_to_tex(f_pos.xy)); + float sun_shade_frac = horizon_at2(f_shadow, f_alt, f_pos, sun_dir); +#elif (SHADOW_MODE == SHADOW_MODE_NONE) + float sun_shade_frac = 1.0;//horizon_at2(f_shadow, f_alt, f_pos, sun_dir); +#endif + float moon_shade_frac = 1.0;// horizon_at2(f_shadow, f_alt, f_pos, moon_dir); + // Globbal illumination "estimate" used to light the faces of voxels which are parallel to the sun or moon (which is a very common occurrence). + // Will be attenuated by k_d, which is assumed to carry any additional ambient occlusion information (e.g. about shadowing). + // float ambient_sides = clamp(mix(0.5, 0.0, abs(dot(-f_norm, sun_dir)) * 10000.0), 0.0, 0.5); + // NOTE: current assumption is that moon and sun shouldn't be out at the sae time. + // This assumption is (or can at least easily be) wrong, but if we pretend it's true we avoids having to explicitly pass in a separate shadow + // for the sun and moon (since they have different brightnesses / colors so the shadows shouldn't attenuate equally). + // float shade_frac = /*1.0;*/sun_shade_frac + moon_shade_frac; + + // DirectionalLight sun_info = get_sun_info(sun_dir, sun_shade_frac, light_pos); + DirectionalLight sun_info = get_sun_info(sun_dir, sun_shade_frac, /*sun_pos*/f_pos); + DirectionalLight moon_info = get_moon_info(moon_dir, moon_shade_frac/*, light_pos*/); + + vec3 surf_color = f_col; + + float alpha = 1.0; + const float n2 = 1.5; + + const float R_s2s0 = pow((1.0 - n2) / (1.0 + n2), 2); + const float R_s1s0 = pow((1.3325 - n2) / (1.3325 + n2), 2); + const float R_s2s1 = pow((1.0 - 1.3325) / (1.0 + 1.3325), 2); + const float R_s1s2 = pow((1.3325 - 1.0) / (1.3325 + 1.0), 2); + float R_s = (f_pos.z < f_alt) ? mix(R_s2s1 * R_s1s0, R_s1s0, medium.x) : mix(R_s2s0, R_s1s2 * R_s2s0, medium.x); + + vec3 k_a = vec3(1.0); + vec3 k_d = vec3(1.0); + vec3 k_s = vec3(R_s); + + vec3 emitted_light, reflected_light; + + // vec3 light_frac = /*vec3(1.0);*//*vec3(max(dot(f_norm, -sun_dir) * 0.5 + 0.5, 0.0));*/light_reflection_factor(f_norm, view_dir, vec3(0, 0, -1.0), vec3(1.0), vec3(R_s), alpha); + // vec3 point_light = light_at(f_pos, f_norm); + // vec3 light, diffuse_light, ambient_light; + //get_sun_diffuse(f_norm, time_of_day.x, view_dir, k_a * point_shadow * (shade_frac * 0.5 + light_frac * 0.5), k_d * point_shadow * shade_frac, k_s * point_shadow * shade_frac, alpha, emitted_light, reflected_light); + float max_light = 0.0; + // reflected_light *= point_shadow * shade_frac; + // emitted_light *= point_shadow * max(shade_frac, MIN_SHADOW); + // max_light *= point_shadow * shade_frac; + // reflected_light *= point_shadow; + // emitted_light *= point_shadow; + // max_light *= point_shadow; + + vec3 cam_attenuation = vec3(1); + float fluid_alt = max(f_pos.z + 1, floor(f_alt + 1)); + vec3 mu = medium.x == MEDIUM_WATER ? MU_WATER : vec3(0.0); + #if (FLUID_MODE >= FLUID_MODE_MEDIUM) + cam_attenuation = + medium.x == MEDIUM_WATER ? compute_attenuation_point(cam_pos.xyz, view_dir, mu, fluid_alt, /*cam_pos.z <= fluid_alt ? cam_pos.xyz : f_pos*/f_pos) + : compute_attenuation_point(f_pos, -view_dir, mu, fluid_alt, /*cam_pos.z <= fluid_alt ? cam_pos.xyz : f_pos*/cam_pos.xyz); + #endif + + // Prevent the sky affecting light when underground + float not_underground = clamp((f_pos.z - f_alt) / 128.0 + 1.0, 0.0, 1.0); + + max_light += get_sun_diffuse2(sun_info, moon_info, f_norm, view_dir, f_pos, mu, cam_attenuation, fluid_alt, k_a, k_d, k_s, alpha, f_norm, 1.0, emitted_light, reflected_light); + + max_light += lights_at(f_pos, f_norm, view_dir, mu, cam_attenuation, fluid_alt, k_a, k_d, k_s, alpha, f_norm, 1.0, emitted_light, reflected_light); + + // TODO: Hack to add a small amount of underground ambient light to the scene + reflected_light += vec3(0.01, 0.02, 0.03) * (1.0 - not_underground); + + // Apply baked AO + float ao = f_ao * sqrt(f_ao);//0.25 + f_ao * 0.75; ///*pow(f_ao, 0.5)*/f_ao * 0.85 + 0.15; + reflected_light *= ao; + emitted_light *= ao; + + // Apply point light AO + float point_shadow = shadow_at(f_pos, f_norm); + reflected_light *= point_shadow; + emitted_light *= point_shadow; + + /* reflected_light *= cloud_shadow(f_pos); */ + /* vec3 point_light = light_at(f_pos, f_norm); + emitted_light += point_light; + reflected_light += point_light; */ + // get_sun_diffuse(f_norm, time_of_day.x, cam_to_frag, surf_color * f_light * point_shadow, 0.5 * surf_color * f_light * point_shadow, 0.5 * surf_color * f_light * point_shadow, 2.0, emitted_light, reflected_light); + + // get_sun_diffuse(f_norm, time_of_day.x, light, diffuse_light, ambient_light, 1.0); + // diffuse_light *= point_shadow; + // ambient_light *= point_shadow; + // vec3 point_light = light_at(f_pos, f_norm); + // light += point_light; + // diffuse_light += point_light; + // reflected_light += point_light; + // vec3 surf_color = illuminate(srgb_to_linear(highlight_col.rgb * f_col), light, diffuse_light, ambient_light); + + float reflectance = 0.0; + // TODO: Do reflectance properly like this later + vec3 reflect_color = vec3(0); + + surf_color = illuminate(max_light, view_dir, mix(surf_color * emitted_light, reflect_color, reflectance), mix(surf_color * reflected_light, reflect_color, reflectance)); + + // if ((flags & 1) == 1 && int(cam_mode) == 1) { + // float distance = distance(vec3(cam_pos), focus_pos.xyz) - 2; + + // float opacity = clamp(distance / distance_divider, 0, 1); + + // // if(threshold_matrix[int(gl_FragCoord.x) % 4][int(gl_FragCoord.y) % 4] > opacity) { + // // discard; + // // return; + // // } + // } + + tgt_color = vec4(surf_color, 1.0); + tgt_mat = uvec4(uvec3((f_norm + 1.0) * 127.0), MAT_FIGURE); +} diff --git a/assets/voxygen/shaders/rope-vert.glsl b/assets/voxygen/shaders/rope-vert.glsl new file mode 100644 index 0000000..dd22570 --- /dev/null +++ b/assets/voxygen/shaders/rope-vert.glsl @@ -0,0 +1,58 @@ +#version 440 core + +#include + +#define FIGURE_SHADER + +#define LIGHTING_TYPE LIGHTING_TYPE_REFLECTION + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_GLOSSY + +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +#include +#include + +layout(location = 0) in vec3 v_pos; +layout(location = 1) in vec3 v_norm; + +layout (std140, set = 2, binding = 0) +uniform u_locals { + vec4 pos_a; + vec4 pos_b; + float rope_length; +}; + +layout(location = 0) out vec3 f_pos; +layout(location = 1) out vec3 f_norm; +layout(location = 2) out vec3 m_pos; + +void main() { + m_pos = v_pos; + + vec3 rz = normalize(pos_b.xyz - pos_a.xyz); + vec3 rx = normalize(cross(vec3(0, 0, 1), rz)); + vec3 ry = normalize(cross(rz, rx)); + float dist = distance(pos_a.xyz, pos_b.xyz); + vec3 pos = pos_a.xyz + (rx * v_pos.x + ry * v_pos.y) * 0.1 + rz * v_pos.z * dist; + vec2 ideal_wind_sway = wind_vel * vec2( + wind_wave(pos.y * 1.5, 1.9, wind_vel.x, wind_vel.y), + wind_wave(pos.x * 1.5, 2.1, wind_vel.y, wind_vel.x) + ); + float dip = (1 - pow(abs(v_pos.z - 0.5) * 2.0, 2)) * max(rope_length - dist, 0.0); + pos += vec3(ideal_wind_sway * min(pow(dip, 2), 0.005), -0.5 * dip); + + f_pos = pos + focus_pos.xyz; + + #ifdef EXPERIMENTAL_CURVEDWORLD + f_pos.z -= pow(distance(f_pos.xy + focus_off.xy, focus_pos.xy + focus_off.xy) * 0.05, 2); + #endif + + f_norm = rx * v_norm.x + ry * v_norm.y + rz * v_norm.z; + + gl_Position = all_mat * vec4(f_pos, 1); +} diff --git a/assets/voxygen/shaders/skybox-frag.glsl b/assets/voxygen/shaders/skybox-frag.glsl new file mode 100644 index 0000000..5b5f0fc --- /dev/null +++ b/assets/voxygen/shaders/skybox-frag.glsl @@ -0,0 +1,61 @@ +#version 440 core + +#include + +#define LIGHTING_TYPE LIGHTING_TYPE_TRANSMISSION + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_SPECULAR + +#if (FLUID_MODE == FLUID_MODE_LOW) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE +#elif (FLUID_MODE >= FLUID_MODE_MEDIUM) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_RADIANCE +#endif + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +#include +#include +#include + +layout(location = 0) in vec3 f_pos; + +layout(location = 0) out vec4 tgt_color; +layout(location = 1) out uvec4 tgt_mat; + +void main() { + #ifdef EXPERIMENTAL_BAREMINIMUM + tgt_color = vec4(get_sky_color(), 1); + return; + #endif + + vec3 cam_dir = normalize(f_pos - cam_pos.xyz); + + float cam_alt = alt_at(cam_pos.xy); + // float f_alt = alt_at(f_pos.xy); + float fluid_alt = medium.x == MEDIUM_WATER ? floor(cam_alt + 1) : view_distance.w; + // float fluid_alt = max(f_pos.z + 1, floor(f_alt)); + vec3 mu = medium.x == MEDIUM_WATER /* && f_pos.z <= fluid_alt*/ ? MU_WATER : vec3(0.0); + // vec3 sun_attenuation = compute_attenuation(wpos, -sun_dir, mu, surface_alt, wpos); + vec3 cam_attenuation = compute_attenuation(cam_pos.xyz, -cam_dir, mu, fluid_alt, /*cam_pos.z <= fluid_alt ? cam_pos.xyz : f_pos*//*f_pos*//*vec3(f_pos.xy, fluid_alt)*/cam_pos.xyz); + // vec3 cam_attenuation = compute_attenuation_point(f_pos, -view_dir, mu, fluid_alt, cam_pos.xyz); + // vec3 cam_attenuation = vec3(1.0); + + + /* vec3 world_pos = cam_pos.xyz + cam_dir * 500000.0; + tgt_color = vec4(get_sky_color(normalize(f_pos), time_of_day.x, cam_pos.xyz, world_pos, 1.0, true, _clouds), 1.0); */ + float fog_level = fog(f_pos.xyz, focus_pos.xyz, medium.x); + + float dist = 100000.0; + + float refractionIndex = medium.x == MEDIUM_WATER ? 1.0 / 1.3325 : 1.0; + /* if (medium.x == 1u) { + dist = UNDERWATER_MIST_DIST; + } */ + vec3 wpos = cam_pos.xyz + /*normalize(f_pos)*/cam_dir * dist; + + tgt_color = vec4(cam_attenuation * get_sky_color(normalize(f_pos), cam_pos.xyz, wpos, 1.0, true, refractionIndex, false, 1.0), 1.0); + tgt_mat = uvec4(uvec3(0), MAT_SKY); +} diff --git a/assets/voxygen/shaders/skybox-vert.glsl b/assets/voxygen/shaders/skybox-vert.glsl new file mode 100644 index 0000000..bd4bf66 --- /dev/null +++ b/assets/voxygen/shaders/skybox-vert.glsl @@ -0,0 +1,46 @@ +#version 440 core + +#include + +#define LIGHTING_TYPE LIGHTING_TYPE_TRANSMISSION + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_SPECULAR + +#if (FLUID_MODE == FLUID_MODE_LOW) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE +#elif (FLUID_MODE >= FLUID_MODE_MEDIUM) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_RADIANCE +#endif + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +#include + +layout(location = 0) in vec3 v_pos; + +layout(location = 0) out vec3 f_pos; + +void main() { + f_pos = v_pos; + + // TODO: Make this position-independent to avoid rounding error jittering + // NOTE: we may or may not want to use an infinite projection here + // + // Essentially: using any finite projection is likely wrong here if we want + // to project out to infinity, but since we want to perturb the skybox as we + // move and we have stars now, the "right" answer is heavily dependent on + // how we compute cloud position and stuff. + // + // Infinite projections of cubemaps are nice because they can be oriented + // but still extend infinitely far. + gl_Position = + all_mat * + vec4(v_pos + cam_pos.xyz, 1); + // gl_Position = vec4(gl_Position.xy, sign(gl_Position.z) * gl_Position.w, gl_Position.w); + gl_Position.z = 0; + // gl_Position.z = gl_Position.w - 0.000001;//0.0; + // gl_Position.z = 1.0; + // gl_Position.z = -1.0; +} diff --git a/assets/voxygen/shaders/sprite-frag.glsl b/assets/voxygen/shaders/sprite-frag.glsl new file mode 100644 index 0000000..1ceef03 --- /dev/null +++ b/assets/voxygen/shaders/sprite-frag.glsl @@ -0,0 +1,142 @@ +#version 440 core + +#include + +#define LIGHTING_TYPE LIGHTING_TYPE_REFLECTION + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_GLOSSY + +#if (FLUID_MODE == FLUID_MODE_LOW) + #define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE +#elif (FLUID_MODE >= FLUID_MODE_MEDIUM) + #define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_RADIANCE +#endif + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +#define HAS_SHADOW_MAPS + +#include + +layout(location = 0) in vec3 f_pos; +layout(location = 1) flat in vec3 f_norm; +layout(location = 2) flat in float f_select; +layout(location = 3) in vec2 f_uv_pos; +layout(location = 4) in vec2 f_inst_light; + +layout(set = 2, binding = 0) +uniform texture2D t_col_light; +layout(set = 2, binding = 1) +uniform sampler s_col_light; + +layout(location = 0) out vec4 tgt_color; +layout(location = 1) out uvec4 tgt_mat; + +#include +#include +#include + +const float FADE_DIST = 32.0; + +void main() { + float f_ao; + uint material = 0xFFu; + vec3 f_col = greedy_extract_col_light_figure(t_col_light, s_col_light, f_uv_pos, f_ao, material); + + #ifdef EXPERIMENTAL_BAREMINIMUM + tgt_color = vec4(simple_lighting(f_pos.xyz, f_col, f_ao), 1); + return; + #endif + + vec3 cam_to_frag = normalize(f_pos - cam_pos.xyz); + vec3 view_dir = -cam_to_frag; + +#if (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_MAP || FLUID_MODE >= FLUID_MODE_MEDIUM) + float f_alt = alt_at(f_pos.xy); +#elif (SHADOW_MODE == SHADOW_MODE_NONE || FLUID_MODE == FLUID_MODE_LOW) + float f_alt = f_pos.z; +#endif + +#if (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_MAP) + vec4 f_shadow = textureMaybeBicubic(t_horizon, s_horizon, pos_to_tex(f_pos.xy)); + float sun_shade_frac = horizon_at2(f_shadow, f_alt, f_pos, sun_dir); +#elif (SHADOW_MODE == SHADOW_MODE_NONE) + float sun_shade_frac = 1.0; +#endif + float moon_shade_frac = 1.0; + + DirectionalLight sun_info = get_sun_info(sun_dir, sun_shade_frac, f_pos); + DirectionalLight moon_info = get_moon_info(moon_dir, moon_shade_frac); + + vec3 surf_color = f_col; + float alpha = 1.0; + const float n2 = 1.5; + const float R_s2s0 = pow((1.0 - n2) / (1.0 + n2), 2); + const float R_s1s0 = pow((1.3325 - n2) / (1.3325 + n2), 2); + const float R_s2s1 = pow((1.0 - 1.3325) / (1.0 + 1.3325), 2); + const float R_s1s2 = pow((1.3325 - 1.0) / (1.3325 + 1.0), 2); + float R_s = (f_pos.z < f_alt) ? mix(R_s2s1 * R_s1s0, R_s1s0, medium.x) : mix(R_s2s0, R_s1s2 * R_s2s0, medium.x); + + vec3 k_a = vec3(1.0); + vec3 k_d = vec3(1.0); + vec3 k_s = vec3(R_s); + + vec3 emitted_light = vec3(1); + vec3 reflected_light = vec3(1); + + // Make voxel shadows block the sun and moon + sun_info.block = f_inst_light.x; + moon_info.block = f_inst_light.x; + + float max_light = 0.0; + + vec3 cam_attenuation = vec3(1); + float fluid_alt = max(f_pos.z + 1, floor(f_alt + 1)); + vec3 mu = medium.x == MEDIUM_WATER ? MU_WATER : vec3(0.0); + #if (FLUID_MODE >= FLUID_MODE_MEDIUM) + cam_attenuation = + medium.x == MEDIUM_WATER ? compute_attenuation_point(cam_pos.xyz, view_dir, mu, fluid_alt, /*cam_pos.z <= fluid_alt ? cam_pos.xyz : f_pos*/f_pos) + : compute_attenuation_point(f_pos, -view_dir, mu, fluid_alt, /*cam_pos.z <= fluid_alt ? cam_pos.xyz : f_pos*/cam_pos.xyz); + #endif + + // Prevent the sky affecting light when underground + float not_underground = clamp((f_pos.z - f_alt) / 128.0 + 1.0, 0.0, 1.0); + + max_light += get_sun_diffuse2(sun_info, moon_info, f_norm, view_dir, f_pos, mu, cam_attenuation, fluid_alt, k_a, k_d, k_s, alpha, f_norm, 1.0, emitted_light, reflected_light); + + emitted_light *= sun_info.block; + reflected_light *= sun_info.block; + + max_light += lights_at(f_pos, f_norm, view_dir, mu, cam_attenuation, fluid_alt, k_a, k_d, k_s, alpha, f_norm, 1.0, emitted_light, reflected_light); + + // TODO: Hack to add a small amount of underground ambient light to the scene + reflected_light += vec3(0.01, 0.02, 0.03) * (1.0 - not_underground); + + vec3 glow = pow(f_inst_light.y, 3) * 4 * glow_light(f_pos); + emitted_light += glow * cam_attenuation; + + float ao = f_ao; + reflected_light *= ao; + emitted_light *= ao; + + float point_shadow = shadow_at(f_pos, f_norm); + reflected_light *= point_shadow; + emitted_light *= point_shadow; + + // Apply emissive glow + // For now, just make glowing material light be the same colour as the surface + // TODO: Add a way to control this better outside the shaders + if ((material & (1u << 0u)) > 0u) { + emitted_light += 20 * surf_color; + } + + surf_color = illuminate(max_light, view_dir, surf_color * emitted_light, surf_color * reflected_light); + + surf_color += f_select * (surf_color + 0.1) * vec3(0.15, 0.15, 0.15); + + tgt_color = vec4(surf_color, 1.0 - clamp((distance(focus_pos.xy, f_pos.xy) - (sprite_render_distance - FADE_DIST)) / FADE_DIST, 0, 1)); + tgt_mat = uvec4(uvec3((f_norm + 1.0) * 127.0), MAT_FIGURE); + //tgt_color = vec4(-f_norm, 1.0); +} diff --git a/assets/voxygen/shaders/sprite-vert.glsl b/assets/voxygen/shaders/sprite-vert.glsl new file mode 100644 index 0000000..abd4201 --- /dev/null +++ b/assets/voxygen/shaders/sprite-vert.glsl @@ -0,0 +1,205 @@ +#version 440 core + +#include + +#define LIGHTING_TYPE LIGHTING_TYPE_REFLECTION + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_GLOSSY + +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +#include +#include +#include +#include + +layout(location = 0) in vec4 inst_mat0; +layout(location = 1) in vec4 inst_mat1; +layout(location = 2) in vec4 inst_mat2; +layout(location = 3) in vec4 inst_mat3; +// TODO: is there a better way to pack the various vertex attributes? +// TODO: ori is unused +layout(location = 4) in uint inst_pos_ori_door; +layout(location = 5) in uint inst_vert_page; // NOTE: this could fit in less bits +// TODO: do we need this many bits for light and glow? +layout(location = 6) in float inst_light; +layout(location = 7) in float inst_glow; +layout(location = 8) in float model_wind_sway; // NOTE: this only varies per model +layout(location = 9) in float model_z_scale; // NOTE: this only varies per model + +layout(set = 0, binding = 15) restrict readonly buffer sprite_verts { + uvec2 verts[]; +}; + +layout (std140, set = 3, binding = 0) +uniform u_terrain_locals { + mat4 model_mat; + ivec4 atlas_offs; + float load_time; +}; + +// TODO: consider grouping into vec4's +layout(location = 0) out vec3 f_pos; +layout(location = 1) flat out vec3 f_norm; +layout(location = 2) flat out float f_select; +layout(location = 3) out vec2 f_uv_pos; +layout(location = 4) out vec2 f_inst_light; + +const float SCALE = 1.0 / 11.0; +const float SCALE_FACTOR = pow(SCALE, 1.3) * 0.2; + +const float EXTRA_NEG_Z = 32768.0; +const float VERT_EXTRA_NEG_XY = 128.0; +const float VERT_EXTRA_NEG_Z = 128.0; +const uint VERT_PAGE_SIZE = 256; +const uint VERT_PAGE_SIZE_BITS = VERT_PAGE_SIZE - 1; + +// vec4(vec3(position), distance) +vec4 nearest_entity(in vec3 sprite_pos, const float entity_radius_factor) { + vec4 closest = vec4(vec3(0), 65536); + + for (uint i = 0u; i < light_shadow_count.y; i ++) { + // Only access the array once + Shadow S = shadows[i]; + vec3 shadow_pos = S.shadow_pos_radius.xyz - focus_off.xyz; + float dist_sq = dot(sprite_pos - shadow_pos, sprite_pos - shadow_pos) + - S.shadow_pos_radius.w * S.shadow_pos_radius.w * entity_radius_factor; + if (dist_sq < closest.w) { + closest = vec4(shadow_pos, dist_sq); + } + } + closest.w = sqrt(max(closest.w, 0)); + return closest; +} + +void main() { + // Matrix to transform this sprite instance from model space to chunk space + mat4 inst_mat; + inst_mat[0] = inst_mat0; + inst_mat[1] = inst_mat1; + inst_mat[2] = inst_mat2; + inst_mat[3] = inst_mat3;// + vec4(-14.5, -16.5, 0.0, 0.0); + + inst_mat = model_mat * inst_mat; + + // Worldpos of the chunk that this sprite is in + vec3 chunk_offs = -focus_off.xyz; + + f_inst_light = vec2(inst_light, inst_glow); + + // Index of the vertex data in the 1D vertex texture + int vertex_index = int((uint(gl_VertexIndex) & VERT_PAGE_SIZE_BITS) + inst_vert_page * VERT_PAGE_SIZE); + uvec2 pos_atlas_pos_norm_ao = verts[vertex_index]; + uint v_pos_norm = pos_atlas_pos_norm_ao.x; + uint v_atlas_pos = pos_atlas_pos_norm_ao.y; + + // Expand the model vertex position bits into float values + // TODO: Use this instead, see [https://gitlab.com/veloren/veloren/-/merge_requests/3091] + //vec3 v_pos = vec3(ivec3((uvec3(v_pos_norm) >> uvec3(0, 8, 16)) & uvec3(0xFFu, 0xFFu, 0x0FFFu)) - ivec3(VERT_EXTRA_NEG_XY, VERT_EXTRA_NEG_XY, VERT_EXTRA_NEG_Z)); + vec3 v_pos = vec3( + float(v_pos_norm & 0xFFu) - VERT_EXTRA_NEG_XY, + float((v_pos_norm >> 8) & 0xFFu) - VERT_EXTRA_NEG_XY, + float((v_pos_norm >> 16) & 0x0FFFu) - VERT_EXTRA_NEG_Z + ); + + // Position of the sprite block in the chunk + // Used for highlighting the selected sprite, and for opening doors + vec3 sprite_pos = inst_mat[3].xyz + chunk_offs; + + #ifndef EXPERIMENTAL_BAREMINIMUM + if((inst_pos_ori_door & (1 << 28)) != 0) { + const float MIN_OPEN_DIST = 0.2; + const float MAX_OPEN_DIST = 1.5; + float min_entity_dist = nearest_entity(sprite_pos, 1.0).w; + + if (min_entity_dist < MAX_OPEN_DIST) { + float sprite_ori = (inst_pos_ori_door >> 29) & 0x7u; + float flip = sprite_ori <= 3 ? 1.0 : -1.0; + float theta = mix(PI/2.0, 0, pow(max(0.0, min_entity_dist - MIN_OPEN_DIST) / (MAX_OPEN_DIST - MIN_OPEN_DIST), 1.0)); + float costheta = cos(flip * theta); + float sintheta = sin(flip * theta); + mat3 rot_z = mat3( + vec3(costheta, -sintheta, 0), + vec3(sintheta, costheta, 0), + vec3(0, 0, 1) + ); + + vec3 delta = vec3(5.5, 0, 0); + v_pos = (rot_z * (v_pos + delta)) - delta; + } + } + #endif + + // Transform into chunk space and scale + f_pos = (inst_mat * vec4(v_pos, 1.0)).xyz; + // Transform info world space + f_pos += chunk_offs; + + #ifndef EXPERIMENTAL_BAREMINIMUM + #ifdef EXPERIMENTAL_TERRAINPOP + // Terrain 'pop-in' effect + f_pos.z -= 250.0 * (1.0 - min(1.0001 - 0.02 / pow(time_since(load_time), 10.0), 1.0)); + #endif + #endif + + #ifdef EXPERIMENTAL_CURVEDWORLD + f_pos.z -= pow(distance(f_pos.xy + focus_off.xy, focus_pos.xy + focus_off.xy) * 0.05, 2); + #endif + + #ifndef EXPERIMENTAL_BAREMINIMUM + // Wind sway effect + f_pos.xy += (wind_vel * 0.35 + vec2( + wind_wave(f_pos.y * 0.1, 0.9, wind_vel.x, wind_vel.y), + wind_wave(f_pos.x * 0.1, 1.1, wind_vel.y, wind_vel.x) + )) + * model_wind_sway + //* mix(10.0, abs(v_pos.z), 1.0 / (1.0 + abs(v_pos.z) * 0.1)) + * abs(v_pos.z) + * model_z_scale + * SCALE_FACTOR; + + if (model_wind_sway > 0.0) { + vec2 center = sprite_pos.xy; + vec4 min_entity = nearest_entity(vec3(center, sprite_pos.z), 0.0); + + const float PUSH_FACTOR = 5; + + float push_dist = max(1.0 - min_entity.w, 0.0); + + f_pos.xy += normalize(center - min_entity.xy) * v_pos.z * model_z_scale * SCALE_FACTOR * PUSH_FACTOR * push_dist; + } + #endif + + // Determine normal + // TODO: do changes here effect perf on vulkan + // TODO: dx12 doesn't like dynamic index + // TODO: use mix? + // Shader@0x000001AABD89BEE0(112,43-53): error X4576: Input array signature parameter cannot be indexed dynamically. + //vec3 norm = (inst_mat[(v_pos_norm >> 30u) & 3u].xyz); + uint index = v_pos_norm >> 30u & 3u; + vec3 norm; + if (index == 0) { + norm = (inst_mat[0].xyz); + } else if (index == 1) { + norm = (inst_mat[1].xyz); + } else { + norm = (inst_mat[2].xyz); + } + + f_norm = normalize(mix(-norm, norm, v_pos_norm >> 29u & 1u)); + + // Expand atlas tex coords to floats + // NOTE: Could defer to fragment shader if we are vert heavy + f_uv_pos = vec2((uvec2(v_atlas_pos) >> uvec2(0, 16)) & uvec2(0xFFFFu, 0xFFFFu));; + + // Select glowing + f_select = (select_pos.w > 0 && select_pos.xyz == sprite_pos) ? 1.0 : 0.0; + + gl_Position = + all_mat * + vec4(f_pos, 1); +} diff --git a/assets/voxygen/shaders/terrain-frag.glsl b/assets/voxygen/shaders/terrain-frag.glsl new file mode 100644 index 0000000..f226656 --- /dev/null +++ b/assets/voxygen/shaders/terrain-frag.glsl @@ -0,0 +1,574 @@ +#version 440 core +// #extension GL_ARB_texture_storage : require + +#include + +#define LIGHTING_TYPE LIGHTING_TYPE_REFLECTION + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_GLOSSY + +#if (FLUID_MODE == FLUID_MODE_LOW) + #define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE +#elif (FLUID_MODE >= FLUID_MODE_MEDIUM) + #define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_RADIANCE +#endif + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +#define HAS_SHADOW_MAPS + +#include +#include + +layout(location = 0) in vec3 f_pos; +// in float f_ao; +// in vec3 f_chunk_pos; +// #ifdef FLUID_MODE_SHINY +layout(location = 1) flat in uint f_pos_norm; +// #else +// const uint f_pos_norm = 0u; +// #endif +// in float f_alt; +// in vec4 f_shadow; +// in vec3 f_col; +// in float f_light; +/*centroid */layout(location = 3) in vec2 f_uv_pos; +// in vec3 light_pos[2]; +// const vec3 light_pos[6] = vec3[](vec3(0), vec3(0), vec3(00), vec3(0), vec3(0), vec3(0)); + +/* #if (SHADOW_MODE == SHADOW_MODE_MAP) +in vec4 sun_pos; +#elif (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_NONE) +const vec4 sun_pos = vec4(0.0); +#endif */ + +layout(set = 2, binding = 0) +uniform texture2D t_col_light; +layout(set = 2, binding = 1) +uniform sampler s_col_light; +layout(set = 2, binding = 2) +uniform utexture2D t_kind; +layout(set = 2, binding = 3) +uniform sampler s_kind; + +layout (std140, set = 3, binding = 0) +uniform u_locals { + mat4 model_mat; + ivec4 atlas_offs; + float load_time; +}; + +layout(location = 0) out vec4 tgt_color; +layout(location = 1) out uvec4 tgt_mat; + +#include +#include +#include + +void main() { + /* + float nz = abs(hash(vec4(floor((f_pos + focus_off.xyz) * 5.0), 0))); + if (nz > (tick.x - load_time) / 0.5 || distance(focus_pos.xy, f_pos.xy) / view_distance.x + nz * 0.1 > 1.0) { + discard; + } + */ + + // discard; + // vec4 f_col_light = textureGrad(t_col_light, f_uv_pos / texSize, 0.25, 0.25); + // vec4 f_col_light = texture(t_col_light, (f_uv_pos) / texSize); + + // First 3 normals are negative, next 3 are positive + const vec3 normals[8] = vec3[](vec3(-1,0,0), vec3(1,0,0), vec3(0,-1,0), vec3(0,1,0), vec3(0,0,-1), vec3(0,0,1), vec3(0,0,0), vec3(0,0,0)); + + // uint norm_index = (f_pos_norm >> 29) & 0x7u; + // vec2 uv_delta = (norm_index & 0u) == 0u ? vec2(-1.0) : vec2(0); + + vec2 f_uv_pos = f_uv_pos + atlas_offs.xy; + // vec4 f_col_light = textureProj(t_col_light, vec3(f_uv_pos + 0.5, textureSize(t_col_light, 0)));//(f_uv_pos/* + 0.5*/) / texSize); + // float f_light = textureProj(t_col_light, vec3(f_uv_pos + 0.5, textureSize(t_col_light, 0))).a;//1.0;//f_col_light.a * 4.0;// f_light = float(v_col_light & 0x3Fu) / 64.0; + float f_light, f_glow, f_ao, f_sky_exposure; + uint f_kind; + vec3 f_col = greedy_extract_col_light_kind_terrain(t_col_light, s_col_light, t_kind, f_uv_pos, f_light, f_glow, f_ao, f_sky_exposure, f_kind); + + uint f_mat = MAT_BLOCK; + + #ifdef EXPERIMENTAL_BAREMINIMUM + tgt_color = vec4(simple_lighting(f_pos.xyz, f_col, f_light), 1); + return; + #endif + + //float f_light = (uint(texture(t_col_light, (f_uv_pos + 0.5) / textureSize(t_col_light, 0)).r * 255.0) & 0x1Fu) / 31.0; + // vec2 texSize = textureSize(t_col_light, 0); + // float f_light = texture(t_col_light, f_uv_pos/* + vec2(atlas_offs.xy)*/).a;//1.0;//f_col_light.a * 4.0;// f_light = float(v_col_light & 0x3Fu) / 64.0; + // float f_light = textureProj(t_col_light, vec3(f_uv_pos/* + vec2(atlas_offs.xy)*/, texSize.x)).a;//1.0;//f_col_light.a * 4.0;// f_light = float(v_col_light & 0x3Fu) / 64.0; + // float f_light = textureProjLod(t_col_light, vec3(f_uv_pos/* + vec2(atlas_offs.xy)*/, texSize.x), 0).a;//1.0;//f_col_light.a * 4.0;// f_light = float(v_col_light & 0x3Fu) / 64.0; + // float f_light = textureGrad(t_col_light, (f_uv_pos + 0.5) / texSize, vec2(0.1, 0.0), vec2(0.0, 0.1)).a;//1.0;//f_col_light.a * 4.0;// f_light = float(v_col_light & 0x3Fu) / 64.0; + // f_light = sqrt(f_light); + // f_light = sqrt(f_light); + // f_col = vec3((uvec3(v_col_light) >> uvec3(8, 16, 24)) & uvec3(0xFFu)) / 255.0; + // vec3 f_col = light_col.rgb;//vec4(1.0, 0.0, 0.0, 1.0); + + // float f_ao = 1.0; + + // vec3 my_chunk_pos = vec3(ivec3((uvec3(f_pos_norm) >> uvec3(0, 6, 12)) & uvec3(0x3Fu, 0x3Fu, 0xFFFFu))); + // tgt_color = vec4(hash(floor(vec4(my_chunk_pos.x, 0, 0, 0))), hash(floor(vec4(0, my_chunk_pos.y, 0, 1))), hash(floor(vec4(0, 0, my_chunk_pos.z, 2))), 1.0); + // tgt_color.rgb *= f_light; + // tgt_color = vec4(vec3(f_light), 1.0); + // tgt_color = vec4(f_col, 1.0); + // return; + // vec4 light_pos[2]; + // vec4 light_col = vec4( + // hash(floor(vec4(f_pos.x, 0, 0, 0))), + // hash(floor(vec4(0, f_pos.y, 0, 1))), + // hash(floor(vec4(0, 0, f_pos.z, 2))), + // 1.0 + // ); + // vec3 f_col = light_col.rgb;//vec4(1.0, 0.0, 0.0, 1.0); + // tgt_color = vec4(f_col, 1.0); + // tgt_color = vec4(light_shadow_count.x <= 31u ? f_col : vec3(0.0), 1.0); + // tgt_color = vec4(0.0, 0.0, 0.0, 1.0); + // float sum = 0.0; + // for (uint i = 0u; i < /* 6 * */light_shadow_count.x; i ++) { + // // uint i = 1u; + // Light L = lights[i/* / 6*/]; + + // /* vec4 light_col = vec4( + // hash(vec4(1.0, 0.0, 0.0, i)), + // hash(vec4(1.0, 1.0, 0.0, i)), + // hash(vec4(1.0, 0.0, 1.0, i)), + // 1.0 + // ); */ + // vec3 light_col = vec3(1.0);//L.light_col.rgb; + // float light_strength = L.light_col.a / 255.0; + // // float light_strength = 1.0 / light_shadow_count.x; + + // vec3 light_pos = L.light_pos.xyz; + + // // Pre-calculate difference between light and fragment + // vec3 fragToLight = f_pos - light_pos; + + // // vec3 f_norm = normals[(f_pos_norm >> 29) & 0x7u]; + + // // use the light to fragment vector to sample from the depth map + // float bias = 0.0;//0.05;//0.05; + // // float closestDepth = texture(t_shadow_maps, vec4(fragToLight, i)/*, 0.0*//*, bias*/).r; + // // float closestDepth = texture(t_shadow_maps, vec4(fragToLight, lightIndex), bias); + // // float closestDepth = texture(t_shadow_maps, vec4(fragToLight, i + 1)/*, bias*/).r; + // float currentDepth = VectorToDepth(fragToLight) + bias; + // float closestDepth = texture(t_shadow_maps, vec3(fragToLight)/*, -2.5*/).r; + // + // // float visibility = texture(t_shadow_maps, vec4(fragToLight, i + 1), -(length(fragToLight) - bias)/* / screen_res.w*/); + // // it is currently in linear range between [0,1]. Re-transform back to original value + // // closestDepth *= screen_res.w; // far plane + // // now test for shadows + // // float shadow = /*currentDepth*/(screen_res.w - bias) > closestDepth ? 1.0 : 0.0; + // // float shadow = currentDepth - bias > closestDepth ? 1.0 : 0.0; + + // // tgt_color += light_col * vec4(vec3(/*closestDepth*/visibility/* + bias*//* / screen_res.w */) * 1.0 / light_shadow_count.x, 0.0); + // // tgt_color.rgb += light_col * vec3(closestDepth + 0.05 / screen_res.w) * 1.0 /*/ light_shadow_count.x*/ * light_strength; + // tgt_color.rgb += light_col * vec3(closestDepth) * 1.0 / screen_res.w /*/ light_shadow_count.x*/ * light_strength; + // sum += light_strength; + // } + + // TODO: last 3 bits in v_pos_norm should be a number between 0 and 5, rather than 0-2 and a direction. + // uint norm_axis = (f_pos_norm >> 30) & 0x3u; + // // Increase array access by 3 to access positive values + // uint norm_dir = ((f_pos_norm >> 29) & 0x1u) * 3u; + // Use an array to avoid conditional branching + // uint norm_index = (f_pos_norm >> 29) & 0x7u; + // vec3 f_norm = normals[norm_index]; + vec3 face_norm = normals[(f_pos_norm >> 29) & 0x7u]; + vec3 f_norm = face_norm; + + #ifdef EXPERIMENTAL_BRICKLOREN + vec3 pos = f_pos + focus_off.xyz; + const vec3 bk_sz = vec3(2, 2, 2); + vec3 sz = vec3(1.0 + mod(floor(pos.z * bk_sz.z + floor(pos.x) + floor(pos.y) - 0.01), 2.0) * (bk_sz.x - 1), 1.0 + mod(floor(pos.z * bk_sz.z + floor(pos.x) + floor(pos.y) + 0.99), 2.0) * (bk_sz.y - 1), bk_sz.z); + vec3 fp = pos * sz; + vec3 clamped = min(floor(fp.xyz) + 1.0 - 0.07 * sz, max(floor(fp.xyz) - 0.07 * sz, fp.xyz)); + f_norm.xyz += (fp.xyz - clamped) * 5.0 * sign(1.0 - f_norm) * max(1.0 - length(f_pos - cam_pos.xyz) / 64.0, 0); + f_norm = normalize(f_norm); + f_col /= 1.0 + length((fp - clamped) * sign(1.0 - f_norm)) * 2; + #endif + + // vec3 du = dFdx(f_pos); + // vec3 dv = dFdy(f_pos); + // vec3 f_norm = normalize(cross(du, dv)); + + // /* if (light_shadow_count.x == 1) { + // tgt_color.rgb = vec3(0.0); + // } */ + // if (sum > 0.0) { + // tgt_color.rgb /= sum; + // } + // return; + // Whether this face is facing fluid or not. + bool faces_fluid = bool((f_pos_norm >> 28) & 0x1u); + + vec3 cam_to_frag = normalize(f_pos - cam_pos.xyz); + // vec4 vert_pos4 = view_mat * vec4(f_pos, 1.0); + // vec3 view_dir = normalize(-vec3(vert_pos4)/* / vert_pos4.w*/); + vec3 view_dir = -cam_to_frag; + // vec3 view_dir = normalize(f_pos - cam_pos.xyz); + + /* vec3 sun_dir = get_sun_dir(time_of_day.x); + vec3 moon_dir = get_moon_dir(time_of_day.x); */ + +#if (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_MAP || FLUID_MODE >= FLUID_MODE_MEDIUM) + float f_alt = alt_at(f_pos.xy); +#elif (SHADOW_MODE == SHADOW_MODE_NONE || FLUID_MODE == FLUID_MODE_LOW) + float f_alt = f_pos.z; +#endif + + float alpha = 1.0;//0.0001;//1.0; + // TODO: Possibly angle with water surface into account? Since we can basically assume it's horizontal. + const float n2 = 1.5;//1.01; + const float R_s2s0 = pow((1.0 - n2) / (1.0 + n2), 2); + const float R_s1s0 = pow((1.3325 - n2) / (1.3325 + n2), 2); + const float R_s2s1 = pow((1.0 - 1.3325) / (1.0 + 1.3325), 2); + const float R_s1s2 = pow((1.3325 - 1.0) / (1.3325 + 1.0), 2); + // float faces_fluid = faces_fluid && f_pos.z <= floor(f_alt); + float fluid_alt = max(f_pos.z + 1, floor(f_alt + 1)); + float R_s = /*(f_pos.z < f_alt)*/faces_fluid /*&& f_pos.z <= fluid_alt*/ ? mix(R_s2s1 * R_s1s0, R_s1s0, medium.x) : mix(R_s2s0, R_s1s2 * R_s2s0, medium.x); + + // vec3 surf_color = /*srgb_to_linear*/(f_col); + vec3 k_a = vec3(1.0); + vec3 k_d = vec3(1.0); + vec3 k_s = vec3(R_s); + + // Toggle to see rain_occlusion + // tgt_color = vec4(rain_occlusion_at(f_pos.xyz), 0.0, 0.0, 1.0); + // return; + #if (REFLECTION_MODE >= REFLECTION_MODE_HIGH) + float f_alpha = 1.0; + #else + const float f_alpha = 1.0; + #endif + #if (CLOUD_MODE != CLOUD_MODE_NONE && REFLECTION_MODE >= REFLECTION_MODE_MEDIUM) + if (rain_density > 0 && !faces_fluid && f_norm.z > 0.5) { + vec3 pos = f_pos + focus_off.xyz; + vec3 drop_density = vec3(2, 2, 2); + vec3 drop_pos = pos + vec3(pos.zz, 0) + vec3(0, 0, -tick.x * 1.0); + drop_pos.z += noise_2d(floor(drop_pos.xy * drop_density.xy) * 13.1) * 10; + vec2 cell2d = floor(drop_pos.xy * drop_density.xy); + drop_pos.z *= 0.5 + hash_fast(uvec3(cell2d, 0)); + vec3 cell = vec3(cell2d, floor(drop_pos.z * drop_density.z)); + + #if (REFLECTION_MODE >= REFLECTION_MODE_HIGH) + float puddle = clamp((noise_2d((f_pos.xy + focus_off.xy + vec2(0.1, 0)) * 0.02) - 0.5) * 20.0, 0.0, 1.0) + * min(rain_density * 10.0, 1.0) + * clamp((f_sky_exposure - 0.95) * 50.0, 0.0, 1.0); + #else + const float puddle = 1.0; + #endif + + #if (REFLECTION_MODE >= REFLECTION_MODE_HIGH) + if (puddle > 0.0) { + f_alpha = puddle * 0.2 * max(1.0 + cam_to_frag.z, 0.3); + #ifdef EXPERIMENTAL_PUDDLEDETAILS + float t0 = sin(tick_loop(2.0 * PI, 8.0, f_pos.x * 3)); + float t1 = sin(tick_loop(2.0 * PI, 3.5, -f_pos.x * 6)); + float h = (noise_2d((f_pos.xy + focus_off.xy) * 0.3) - 0.5) * t0 + + (noise_2d((f_pos.xy + focus_off.xy) * 0.6) - 0.5) * t1; + float hx = (noise_2d((f_pos.xy + focus_off.xy + vec2(0.1, 0)) * 0.3) - 0.5) * t0 + + (noise_2d((f_pos.xy + focus_off.xy + vec2(0.1, 0)) * 0.6) - 0.5) * t1; + float hy = (noise_2d((f_pos.xy + focus_off.xy + vec2(0, 0.1)) * 0.3) - 0.5) * t0 + + (noise_2d((f_pos.xy + focus_off.xy + vec2(0, 0.1)) * 0.6) - 0.5) * t1; + f_norm.xy += mix(vec2(0), vec2(h - hx, h - hy) / 0.1 * 0.03, puddle); + #endif + alpha = mix(1.0, 0.2, puddle); + f_col.rgb *= mix(1.0, 0.7, puddle); + k_s = mix(k_s, vec3(0.7, 0.7, 1.0), puddle); + f_mat = MAT_FLUID; + } + #endif + + if (rain_occlusion_at(f_pos.xyz + vec3(0, 0, 0.25)) > 0.5) { + if (fract(hash(fract(vec4(cell, 0) * 0.01))) < rain_density * 2.0) { + vec3 off = vec3(hash_fast(uvec3(cell * 13)), hash_fast(uvec3(cell * 5)), 0); + vec3 near_cell = (cell + 0.5 + (off - 0.5) * 0.5) / drop_density; + + float dist = length((drop_pos - near_cell) * vec3(1, 1, 0.5)); + float drop_rad = 0.075 + puddle * 0.05; + float distort = max(1.0 - abs(dist - drop_rad) * 100, 0) * 1.5 * max(drop_pos.z - near_cell.z, 0); + k_a += distort; + k_d += distort; + k_s += distort; + + f_norm.xy += (drop_pos - near_cell).xy + * max(1.0 - abs(dist - drop_rad) * 30, 0) + * 500.0 + * max(drop_pos.z - near_cell.z, 0) + * sign(dist - drop_rad) + * max(drop_pos.z - near_cell.z, 0); + } + } + } + #endif + + #if (REFLECTION_MODE >= REFLECTION_MODE_HIGH) + // Reflections on ice + if (f_kind == BLOCK_ICE && f_norm.z == 1.0) { + f_alpha = min(f_alpha, 0.3); + k_s = mix(k_s, vec3(0.7, 0.7, 1.0), 0.5); + } + #endif + + // float sun_light = get_sun_brightness(sun_dir); + // float moon_light = get_moon_brightness(moon_dir); + /* float sun_shade_frac = horizon_at(f_pos, sun_dir); + float moon_shade_frac = horizon_at(f_pos, moon_dir); */ + // float f_alt = alt_at(f_pos.xy); + // vec4 f_shadow = textureMaybeBicubic(t_horizon, pos_to_tex(f_pos.xy)); +#if (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_MAP) + vec4 f_shadow = textureMaybeBicubic(t_horizon, s_horizon, pos_to_tex(f_pos.xy)); + float sun_shade_frac = horizon_at2(f_shadow, f_alt, f_pos, sun_dir); +#elif (SHADOW_MODE == SHADOW_MODE_NONE) + float sun_shade_frac = 1.0;//horizon_at2(f_shadow, f_alt, f_pos, sun_dir); +#endif + float moon_shade_frac = 1.0;//horizon_at2(f_shadow, f_alt, f_pos, moon_dir); + // Globbal illumination "estimate" used to light the faces of voxels which are parallel to the sun or moon (which is a very common occurrence). + // Will be attenuated by k_d, which is assumed to carry any additional ambient occlusion information (e.g. about shadowing). + // float ambient_sides = clamp(mix(0.5, 0.0, abs(dot(-f_norm, sun_dir)) * 10000.0), 0.0, 0.5); + // NOTE: current assumption is that moon and sun shouldn't be out at the sae time. + // This assumption is (or can at least easily be) wrong, but if we pretend it's true we avoids having to explicitly pass in a separate shadow + // for the sun and moon (since they have different brightnesses / colors so the shadows shouldn't attenuate equally). + // float shade_frac = /*1.0;*/sun_shade_frac + moon_shade_frac; + + // DirectionalLight sun_info = get_sun_info(sun_dir, sun_shade_frac, light_pos); + DirectionalLight sun_info = get_sun_info(sun_dir, sun_shade_frac, /*sun_pos*/f_pos); + DirectionalLight moon_info = get_moon_info(moon_dir, moon_shade_frac/*, light_pos*/); + + #ifdef EXPERIMENTAL_DIRECTIONALSHADOWMAPTEXELGRID + float offset_scale = 0.5; + vec3 offset_one = dFdx(f_pos) * offset_scale; + vec3 offset_two = dFdy(f_pos) * offset_scale; + vec3 one_up = f_pos + offset_one; + vec3 one_down = f_pos - offset_one; + vec3 two_up = f_pos + offset_two; + vec3 two_down = f_pos - offset_two; + + // Adjust this to change the size of the grid cells relative to the + // number of shadow texels + float grid_cell_to_texel_ratio = 32.0; + + vec2 shadowTexSize = textureSize(sampler2D(t_directed_shadow_maps, s_directed_shadow_maps), 0) / grid_cell_to_texel_ratio; + + vec4 one_up_shadow_tex = texture_mat * vec4(one_up, 1.0); + vec2 oust_snap = floor(one_up_shadow_tex.xy * shadowTexSize / one_up_shadow_tex.w); + vec4 one_down_shadow_tex = texture_mat * vec4(one_down, 1.0); + vec2 odst_snap = floor(one_down_shadow_tex.xy * shadowTexSize / one_down_shadow_tex.w); + vec4 two_up_shadow_tex = texture_mat * vec4(two_up, 1.0); + vec2 tust_snap = floor(two_up_shadow_tex.xy * shadowTexSize / two_up_shadow_tex.w); + vec4 two_down_shadow_tex = texture_mat * vec4(two_down, 1.0); + vec2 tdst_snap = floor(two_down_shadow_tex.xy * shadowTexSize / two_down_shadow_tex.w); + float border = length(max(abs(oust_snap - odst_snap), abs(tust_snap - tdst_snap))); + + if (border != 0.0) { + tgt_color = vec4(vec3(0.0, 0.7, 0.2), 1.0); + return; + } + #endif + + float max_light = 0.0; + + // After shadows are computed, we use a refracted sun and moon direction. + // sun_dir = faces_fluid && sun_shade_frac > 0.0 ? refract(sun_dir/*-view_dir*/, vec3(0.0, 0.0, 1.0), 1.0 / 1.3325) : sun_dir; + // moon_dir = faces_fluid && moon_shade_frac > 0.0 ? refract(moon_dir/*-view_dir*/, vec3(0.0, 0.0, 1.0), 1.0 / 1.3325) : moon_dir; + + // Compute attenuation due to water from the camera. + vec3 mu = faces_fluid/* && f_pos.z <= fluid_alt*/ ? MU_WATER : vec3(0.0); + // NOTE: Default intersection point is camera position, meaning if we fail to intersect we assume the whole camera is in water. + // Computing light attenuation from water. + vec3 cam_attenuation = + false/*medium.x == MEDIUM_WATER*/ ? compute_attenuation_point(cam_pos.xyz, view_dir, MU_WATER, fluid_alt, /*cam_pos.z <= fluid_alt ? cam_pos.xyz : f_pos*/f_pos) + : compute_attenuation_point(f_pos, -view_dir, mu, fluid_alt, /*cam_pos.z <= fluid_alt ? cam_pos.xyz : f_pos*/cam_pos.xyz); + + // Prevent the sky affecting light when underground + float not_underground = clamp((f_pos.z - f_alt) / 128.0 + 1.0, 0.0, 1.0); + + // To account for prior saturation + #if (FLUID_MODE == FLUID_MODE_LOW) + f_light = f_light * sqrt(f_light); + #else + f_light = faces_fluid ? not_underground : f_light * sqrt(f_light); + #endif + + vec3 emitted_light = vec3(1.0); + vec3 reflected_light = vec3(1.0); + + float sun_diffuse = get_sun_diffuse2(sun_info, moon_info, f_norm, view_dir, f_pos, mu, cam_attenuation, fluid_alt, k_a/* * (shade_frac * 0.5 + light_frac * 0.5)*/, k_d, k_s, alpha, f_norm, 1.0, emitted_light, reflected_light); + max_light += sun_diffuse; + + // emitted_light *= f_light * point_shadow * max(shade_frac, MIN_SHADOW); + // reflected_light *= f_light * point_shadow * shade_frac; + // max_light *= f_light * point_shadow * shade_frac; + emitted_light *= f_light; + reflected_light *= f_light; + max_light *= f_light; + + // TODO: Hack to add a small amount of underground ambient light to the scene + reflected_light += vec3(0.01, 0.02, 0.03) * (1.0 - not_underground); + + // TODO: Apply AO after this + vec3 glow = glow_light(f_pos) * (pow(f_glow, 3) * 5 + pow(f_glow, 2.0) * 2) * pow(max(dot(face_norm, f_norm), 0), 2); + reflected_light += glow * cam_attenuation; + + max_light += lights_at(f_pos, f_norm, view_dir, mu, cam_attenuation, fluid_alt, k_a, k_d, k_s, alpha, f_norm, 1.0, emitted_light, reflected_light); + + emitted_light *= mix(1.0, f_ao, 0.5); + reflected_light *= mix(1.0, f_ao, 0.5); + + float point_shadow = shadow_at(f_pos, f_norm); + reflected_light *= point_shadow; + emitted_light *= point_shadow; + + #ifndef EXPERIMENTAL_NOCAUSTICS + #if (FLUID_MODE >= FLUID_MODE_MEDIUM) + if (faces_fluid) { + vec3 wpos = f_pos + vec3(focus_off.xy, 0); + vec3 spos = (wpos + (fluid_alt - wpos.z) * vec3(sun_dir.xy, 0)) * 0.25; + reflected_light += caustics(spos.xy * 1.0, tick.x * 0.5) + * 3 + / (1.0 + pow(abs(fluid_alt - wpos.z) * 0.075, 2)) + * cam_attenuation + * max(dot(f_norm, -sun_dir.xyz), 0) + * sun_diffuse + * sun_info.shadow + * f_light; + } + #endif + #endif + + // float f_ao = 1.0; + + // float ao = /*pow(f_ao, 0.5)*/f_ao * 0.9 + 0.1; + // emitted_light *= ao; + // reflected_light *= ao; + /* vec3 point_light = light_at(f_pos, f_norm); + emitted_light += point_light; + reflected_light += point_light; */ + + // float point_shadow = shadow_at(f_pos, f_norm); + // vec3 point_light = light_at(f_pos, f_norm); + // vec3 light, diffuse_light, ambient_light; + + // get_sun_diffuse(f_norm, time_of_day.x, cam_to_frag, k_a * f_light, k_d * f_light, k_s * f_light, alpha, emitted_light, reflected_light); + // get_sun_diffuse(f_norm, time_of_day.x, light, diffuse_light, ambient_light, 1.0); + // float point_shadow = shadow_at(f_pos, f_norm); + // diffuse_light *= f_light * point_shadow; + // ambient_light *= f_light * point_shadow; + // vec3 point_light = light_at(f_pos, f_norm); + // light += point_light; + // diffuse_light += point_light; + // reflected_light += point_light; + // reflected_light += light_reflection_factor(norm, cam_to_frag, , vec3 k_d, vec3 k_s, float alpha) { + + // light_reflection_factorplight_reflection_factor + + // vec3 surf_color = illuminate(srgb_to_linear(f_col), light, diffuse_light, ambient_light); + + vec3 f_chunk_pos = f_pos - (model_mat[3].xyz - focus_off.xyz); + #ifdef EXPERIMENTAL_NONOISE + float noise = 0.0; + #else + #ifdef EXPERIMENTAL_BRICKLOREN + float noise = hash(vec4(floor(clamped), 0)) * 2 + hash(vec4(floor(clamped * 27 / sz), 0)) * 0.5; + #else + float noise = hash(vec4(floor(f_chunk_pos * 3.0 - f_norm * 0.5), 0));//0.005/* - 0.01*/; + #endif + #endif + +//vec3 srgb_to_linear(vec3 srgb) { +// bvec3 cutoff = lessThan(srgb, vec3(0.04045)); +// vec3 higher = pow((srgb + vec3(0.055))/vec3(1.055), vec3(2.4)); +// vec3 lower = srgb/vec3(12.92); +// +// return mix(higher, lower, cutoff); +//} +// +//vec3 linear_to_srgb(vec3 col) { +// // bvec3 cutoff = lessThan(col, vec3(0.0060)); +// // return mix(11.500726 * col, , cutoff); +// vec3 s1 = vec3(sqrt(col.r), sqrt(col.g), sqrt(col.b)); +// vec3 s2 = vec3(sqrt(s1.r), sqrt(s1.g), sqrt(s1.b)); +// vec3 s3 = vec3(sqrt(s2.r), sqrt(s2.g), sqrt(s2.b)); +// return vec3( +// mix(11.500726 * col.r, (0.585122381 * s1.r + 0.783140355 * s2.r - 0.368262736 * s3.r), clamp((col.r - 0.0060) * 10000.0, 0.0, 1.0)), +// mix(11.500726 * col.g, (0.585122381 * s1.g + 0.783140355 * s2.g - 0.368262736 * s3.g), clamp((col.g - 0.0060) * 10000.0, 0.0, 1.0)), +// mix(11.500726 * col.b, (0.585122381 * s1.b + 0.783140355 * s2.b - 0.368262736 * s3.b), clamp((col.b - 0.0060) * 10000.0, 0.0, 1.0)) +// ); +// +// 11.500726 +//} + // vec3 noise_delta = vec3(noise * 0.005); + // vec3 noise_delta = noise * 0.02 * (1.0 - vec3(0.2126, 0.7152, 0.0722)); + // vec3 noise_delta = noise * 0.002 / vec3(0.2126, 0.7152, 0.0722); + // vec3 noise_delta = sqrt(f_col) + noise; + /* vec3 noise_delta = f_col + noise * 0.02; + noise_delta *= noise_delta; + noise_delta -= f_col; */ + // vec3 noise_delta = (1.0 - f_col) * 0.02 * noise * noise; + // + // a = 0.055 + // + // 1 / (1 + a) = 1 / (1 + 0.055) ~ 0.947867299 + // + // l2s = x^(1/2.4) * (1 / (1 + a)) - a + c + // s2l = (l + a)^2.4 * (1 / (1 + a))^2.4 + // = ((x^(1/2.4) * (1 / (1 + a)) - a + c) + a)^2.4 * (1 / (1 + a))^2.4 + // = (x^(1/2.4) * (1 / (1 + a)) + c)^2.4 * (1 / (1 + a))^2.4 + // + // ~ (x^(1/2) * 1 / (1 + a) + c)^2 * (1 / (1 + a))^2 + // + // = ((x + a)^2.4 * (1 / (1 + a))^2.4 + c)^(1/2.4) * (1 / (1 + a))^(1/2.4) + // = (((x + a)^2.4 + c * (1 + a)^2.4) * (1 / (1 + a))^2.4)^(1/2.4) * (1 / (1 + a))^(1/2.4) + // = ((x + a)^2.4 + c * (1 + a)^2.4)^(1/2.4) * ((1 / (1 + a))^2.4)^(1/2.4) * (1 / (1 + a))^(1/2.4) + // = ((x + a)^2.4 + c * (1 + a)^2.4)^(1/2.4) * (1 / (1 + a))^(1/2.4) + // + // = ((x + a)^2 + c * (1 + a)^2)^(1/2) * (1 / (1 + a))^(1/2) + // = (x^2 + a^2 + 2xa + c + ca^2 + 2ac)^(1/2) * (1 / (1 + a))^(1/2) + // + const float A = 0.055; + const float W_INV = 1 / (1 + A); + const float W_2 = W_INV * W_INV;//pow(W_INV, 2.4); + const float NOISE_FACTOR = 0.015;//pow(0.02, 1.2); + vec3 noise_delta = (sqrt(f_col) * W_INV + noise * NOISE_FACTOR); + // noise_delta = noise_delta * noise_delta * W_2 - f_col; + // lum = W ⋅ col + // lum + noise = W ⋅ (col + delta) + // W ⋅ col + noise = W ⋅ col + W ⋅ delta + // noise = W ⋅ delta + // delta = noise / W + // vec3 col = (f_col + noise_delta); + vec3 col = noise_delta * noise_delta * W_2; + // vec3 col = srgb_to_linear(linear_to_srgb(f_col) + noise * 0.02); + // vec3 col = /*srgb_to_linear*/(f_col + noise); // Small-scale noise + // vec3 col = /*srgb_to_linear*/(f_col + hash(vec4(floor(f_pos * 3.0 - f_norm * 0.5), 0)) * 0.01); // Small-scale noise + vec3 surf_color = illuminate(max_light, view_dir, col * emitted_light, col * reflected_light); + #ifdef EXPERIMENTAL_SNOWGLITTER + if (f_kind == BLOCK_SNOW || f_kind == BLOCK_ART_SNOW) { + float cam_distance = distance(cam_pos.xyz, f_pos); + vec3 pos = f_pos + focus_off.xyz; + + float map = max(noise_3d(pos), 0.0); + + vec4 lpos = vec4(floor(pos * 35.0), 0.0); + + vec3 n = normalize(vec3(hash(lpos + 128), hash(lpos - 435), hash(lpos + 982))); + + float s = pow(abs(dot(n, view_dir)), 4.0); + + surf_color += pow(map * s, 10.0) * 5.0 / max(1.0, cam_distance * 0.5); + } + #endif + + float f_select = (select_pos.w > 0 && select_pos.xyz == floor(f_pos - f_norm * 0.5)) ? 1.0 : 0.0; + surf_color += f_select * (surf_color + 0.1) * vec3(0.5, 0.5, 0.5); + + tgt_color = vec4(surf_color, f_alpha); + tgt_mat = uvec4(uvec3((f_norm + 1.0) * 127.0), f_mat); + //tgt_color = vec4(f_norm, f_alpha); +} diff --git a/assets/voxygen/shaders/terrain-vert.glsl b/assets/voxygen/shaders/terrain-vert.glsl new file mode 100644 index 0000000..bd5c131 --- /dev/null +++ b/assets/voxygen/shaders/terrain-vert.glsl @@ -0,0 +1,185 @@ +#version 440 core + +#include + +#define LIGHTING_TYPE LIGHTING_TYPE_REFLECTION + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_GLOSSY + +#if (FLUID_MODE == FLUID_MODE_LOW) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE +#elif (FLUID_MODE >= FLUID_MODE_MEDIUM) +#define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_RADIANCE +#endif + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +// #define HAS_SHADOW_MAPS + +#include +#include +#include +#include + + +layout(location = 0) in uint v_pos_norm; +// in uint v_col_light; +layout(location = 1) in uint v_atlas_pos; + +layout (std140, set = 3, binding = 0) +uniform u_locals { + mat4 model_mat; + // TODO: consider whether these need to be signed + ivec4 atlas_offs; + float load_time; +}; + +//struct ShadowLocals { +// mat4 shadowMatrices; +// mat4 texture_mat; +//}; +// +//layout (std140) +//uniform u_light_shadows { +// ShadowLocals shadowMats[/*MAX_LAYER_FACES*/192]; +//}; + +layout(location = 0) out vec3 f_pos; +// #ifdef FLUID_MODE_SHINY +layout(location = 1) flat out uint f_pos_norm; + +// #if (SHADOW_MODE == SHADOW_MODE_MAP) +// out vec4 sun_pos; +// #endif + +// #endif +// out float f_alt; +// out vec4 f_shadow; +// out vec3 f_col; +// out vec3 f_chunk_pos; +// out float f_ao; +/*centroid */layout(location = 3) out vec2 f_uv_pos; +// out vec3 light_pos[2]; +// out float f_light; + +// uniform sampler2DRect t_col_light; + +const float EXTRA_NEG_Z = 32768.0; + +void main() { + // over it (if this vertex to see if it intersects. + // TODO: Use the following, see [https://gitlab.com/veloren/veloren/-/merge_requests/3091] + //vec3 f_chunk_pos = vec3(ivec3((uvec3(v_pos_norm) >> uvec3(0, 6, 12)) & uvec3(0x3Fu, 0x3Fu, 0xFFFFu)) - ivec3(0, 0, EXTRA_NEG_Z)); + vec3 f_chunk_pos = vec3(v_pos_norm & 0x3Fu, (v_pos_norm >> 6) & 0x3Fu, float((v_pos_norm >> 12) & 0xFFFFu) - EXTRA_NEG_Z); + + f_pos = (model_mat * vec4(f_chunk_pos, 1.0)).xyz - focus_off.xyz; + + vec3 v_pos = f_pos; + + // Terrain 'pop-in' effect + #ifndef EXPERIMENTAL_BAREMINIMUM + #ifdef EXPERIMENTAL_TERRAINPOP + v_pos.z -= 250.0 * (1.0 - min(1.0001 - 0.02 / pow(time_since(load_time), 10.0), 1.0)); + // f_pos.z -= min(32.0, 25.0 * pow(distance(focus_pos.xy, f_pos.xy) / view_distance.x, 20.0)); + #endif + #endif + + #ifdef EXPERIMENTAL_CURVEDWORLD + v_pos.z -= pow(distance(v_pos.xy + focus_off.xy, focus_pos.xy + focus_off.xy) * 0.05, 2); + #endif + + // vec3 light_col = vec3( + // hash(floor(vec4(f_chunk_pos.x, 0, 0, 0))), + // hash(floor(vec4(0, f_chunk_pos.y, 0, 1))), + // hash(floor(vec4(0, 0, f_chunk_pos.z, 2))) + // ); + + // f_col = light_col;// f_col = vec3((uvec3(v_col_light) >> uvec3(8, 16, 24)) & uvec3(0xFFu)) / 255.0; + // f_light = 1.0;//float(v_col_light & 0x3Fu) / 64.0; + // f_ao = 1.0;//float((v_col_light >> 6u) & 3u) / 4.0; + // f_col = f_col = vec3((uvec3(v_col_light) >> uvec3(8, 16, 24)) & uvec3(0xFFu)) / 255.0; + // f_light = float(v_col_light & 0x3Fu) / 64.0; + // f_ao = float((v_col_light >> 6u) & 3u) / 4.0; + + // for (uint i = 0u; i < 1u/*light_shadow_count.z*/; ++i) { + // light_pos[i] = vec3(shadowMats[i].texture_mat * vec4(f_pos, 1.0)); + // } + // vec2 texSize = textureSize(t_col_light, 0); + f_uv_pos = vec2((uvec2(v_atlas_pos) >> uvec2(0, 16)) & uvec2(0xFFFFu, 0xFFFFu)); + +// #if (SHADOW_MODE == SHADOW_MODE_MAP) +// // for (uint i = 0u; i < light_shadow_count.z; ++i) { +// // light_pos[i] = /*vec3(*/shadowMats[i].texture_mat * vec4(f_pos, 1.0)/*)*/; +// // } +// sun_pos = /*vec3(*/shadowMats[0].texture_mat * vec4(f_pos, 1.0)/*)*/; +// // #elif (SHADOW_MODE == SHADOW_MODE_CHEAP || SHADOW_MODE == SHADOW_MODE_NONE) +// // vec4 sun_pos = vec4(0.0); +// #endif + +// #ifdef FLUID_MODE_SHINY + f_pos_norm = v_pos_norm; +// #endif + + // Also precalculate shadow texture and estimated terrain altitude. + // f_alt = alt_at(f_pos.xy); + // f_shadow = textureMaybeBicubic(t_horizon, pos_to_tex(f_pos.xy)); + + // IDEA: Cast a ray from the vertex to the camera (if this vertex is above the camera) or from the camera to the vertex (if this + // vertex is below the camera) to see where it intersects the plane of water. All of this only applies if either the terrain + // vertex is in water, or the camera is in water. + // + // If an intersection is found, refract the ray across the barrier using the correct ratio of indices of refraction (1 / N_WATER + // if the vertex is above the camera [ray is going from air to water], N_WATER if the camera is above the vertex + // [ray is going from water to air]). + // + // In order to make sure that terrain and other objects below such an interface are properly renered, we then "un-refract" by + // reversing the refracted vector, and multiplying that by the distance from the object from which we cast the ray to the + // intersectng point, in order to make the object appear to the viewer where it should after refraction. + // bool faces_fluid = bool((f_pos_norm >> 28) & 0x1u); + // // TODO: Measure real water surface altitude here. + // float surfaceAlt = faces_fluid ? max(ceil(f_pos.z), floor(f_alt)) : /*floor(f_alt);*/mix(view_distance.z, min(f_alt, floor(alt_at_real(cam_pos.xy))), medium.x); + + // vec3 wRayinitial = f_pos; // cam_pos.z < f_pos.z ? f_pos : cam_pos.xyz; + // vec3 wRayfinal = cam_pos.xyz; // cam_pos.z < f_pos.z ? cam_pos.xyz : f_pos; + // vec3 wRayNormal = surfaceAlt < wRayinitial.z ? vec3(0.0, 0.0, 1.0) : vec3(0.0, 0.0, -1.0); + // float n_camera = mix(1.0, 1.3325, medium.x); + // float n_vertex = faces_fluid ? 1.3325 : 1.0; + // float n1 = n_vertex; // cam_pos.z < f_pos.z ? n_vertex : n_camera; + // float n2 = n_camera; // cam_pos.z < f_pos.z ? n_camera : n_vertex; + + // float wRayLength0 = length(wRayfinal - wRayinitial); + // vec3 wRayDir = (wRayfinal - wRayinitial) / wRayLength0; + // vec3 wPoint = wRayfinal; + // bool wIntersectsSurface = IntersectRayPlane(wRayinitial, wRayDir, vec3(0.0, 0.0, surfaceAlt), -wRayNormal, wPoint); + // float wRayLength = length(wPoint - wRayinitial); + // wPoint = wRayLength < wRayLength0 ? wPoint : wRayfinal; + // wRayLength = min(wRayLength, wRayLength0); // min(max_length, dot(wRayfinal - wpos, defaultpos - wpos)); + + // // vec3 wRayDir2 = (wRayfinal - wRayinitial) / wRayLength; + + // vec3 wRayDir3 = (dot(wRayDir, wRayNormal) < 0.0 && wIntersectsSurface) ? refract(wRayDir, wRayNormal, n2 / n1) : wRayDir; + // // wPoint -= wRayDir3 * wRayLength * n2 / n1; + // vec3 newRay = dot(wRayDir, wRayNormal) < 0.0 && wIntersectsSurface ? wPoint - wRayDir3 * wRayLength * n2 / n1 : f_pos;// - (wRayfinal - wPoint) * n2 / n1; // wPoint + n2 * (wRayfinal - wPoint) - n2 / n1 * wRayLength * wRayDir3; + +#ifdef HAS_SHADOW_MAPS + gl_Position = + /*all_mat*/shadowMatrices/*texture_mat*/ * + vec4(v_pos/*newRay*/, 1); + gl_Position.z = clamp(gl_Position.z, -abs(gl_Position.w), abs(gl_Position.w)); +#else + gl_Position = all_mat * vec4(v_pos/*newRay*/, 1); +#endif + // gl_Position.y /= gl_Position.w; + // gl_Position.w = 1.0; + // gl_Position.z = -gl_Position.z; + // gl_Position.z = -gl_Position.z / gl_Position.w; + // gl_Position.z = -gl_Position.z / gl_Position.w; + // gl_Position.z = -gl_Position.z *gl_Position.w; + // gl_Position.z = gl_Position.z / 100.0; + // gl_Position.z = gl_Position.z / 10000.0; + // gl_Position.z = -gl_Position.z / 100.0; + // gl_Position.z = -1000.0 / (gl_Position.z + 10000.0); + // gl_Position.z = -1000.0 / (gl_Position.z + 10000.0); +} diff --git a/assets/voxygen/shaders/test/shader.frag b/assets/voxygen/shaders/test/shader.frag new file mode 100644 index 0000000..c1ceb77 --- /dev/null +++ b/assets/voxygen/shaders/test/shader.frag @@ -0,0 +1,11 @@ +#version 450 +#extension GL_ARB_separate_shader_objects : enable + +layout(early_fragment_tests) in; + +layout(location = 0) in vec4 frag_color; +layout(location = 0) out vec4 color; + +void main() { + color = frag_color; +} diff --git a/assets/voxygen/shaders/test/shader.vert b/assets/voxygen/shaders/test/shader.vert new file mode 100644 index 0000000..1562324 --- /dev/null +++ b/assets/voxygen/shaders/test/shader.vert @@ -0,0 +1,11 @@ +#version 450 +#extension GL_ARB_separate_shader_objects : enable + +layout(location = 0) in vec3 pos; +layout(location = 1) in vec4 color; +layout(location = 0) out vec4 frag_color; + +void main() { + frag_color = color; + gl_Position = vec4(pos, 1.0); +} diff --git a/assets/voxygen/shaders/trail-frag.glsl b/assets/voxygen/shaders/trail-frag.glsl new file mode 100644 index 0000000..7cbfcaf --- /dev/null +++ b/assets/voxygen/shaders/trail-frag.glsl @@ -0,0 +1,42 @@ +#version 440 core + +#include + +#define LIGHTING_TYPE LIGHTING_TYPE_REFLECTION + +#define LIGHTING_REFLECTION_KIND LIGHTING_REFLECTION_KIND_GLOSSY + +#if (FLUID_MODE == FLUID_MODE_LOW) + #define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_IMPORTANCE +#elif (FLUID_MODE >= FLUID_MODE_MEDIUM) + #define LIGHTING_TRANSPORT_MODE LIGHTING_TRANSPORT_MODE_RADIANCE +#endif + +#define LIGHTING_DISTRIBUTION_SCHEME LIGHTING_DISTRIBUTION_SCHEME_MICROFACET + +#define LIGHTING_DISTRIBUTION LIGHTING_DISTRIBUTION_BECKMANN + +#define HAS_SHADOW_MAPS + +#include + +layout(location = 0) out vec4 tgt_color; + +#include +#include +#include + +const float FADE_DIST = 32.0; + +void main() { + vec3 trail_color = vec3(.55, .92, 1.0); + float trail_alpha = 0.05; + // Controls how much light affects alpha variation. TODO: Maybe a better name? + float light_variable = 0.075; + + // Make less faint at day (relative to night) by adding light to alpha. Probably hacky but looks fine. + // TODO: Trails should also eventually account for shadows, nearby lights, attenuation of sunlight in water, and block based lighting. Note: many of these will require alternative methods that don't require a normal. + trail_alpha += get_sun_brightness() * light_variable; + + tgt_color = vec4(trail_color, trail_alpha); +} diff --git a/assets/voxygen/shaders/trail-vert.glsl b/assets/voxygen/shaders/trail-vert.glsl new file mode 100644 index 0000000..59aebae --- /dev/null +++ b/assets/voxygen/shaders/trail-vert.glsl @@ -0,0 +1,9 @@ +#version 440 core + +#include + +layout(location = 0) in vec3 v_pos; + +void main() { + gl_Position = all_mat * vec4(v_pos - focus_off.xyz, 1); +} diff --git a/assets/voxygen/shaders/ui-frag.glsl b/assets/voxygen/shaders/ui-frag.glsl new file mode 100644 index 0000000..f4623ee --- /dev/null +++ b/assets/voxygen/shaders/ui-frag.glsl @@ -0,0 +1,215 @@ +#version 440 core + +#include +#include + +layout(location = 0) in vec2 f_uv; +layout(location = 1) in vec4 f_color; +layout(location = 2) flat in vec2 f_scale; +layout(location = 3) flat in uint f_mode; + +layout (std140, set = 1, binding = 0) +uniform u_locals { + vec4 w_pos; +}; + +layout(set = 2, binding = 0) +uniform texture2D t_tex; +layout(set = 2, binding = 1) +uniform sampler s_tex; +layout (std140, set = 2, binding = 2) +uniform tex_locals { + uvec2 texture_size; +}; + +layout(location = 0) out vec4 tgt_color; + +// Adjusts the provided uv value to account for coverage of pixels from the +// sampled texture by the current fragment when upscaling. +// +// * `pos` - Position in the sampled texture in pixel coordinates. This is +// where the center of the current fragment lies on the sampled texture. +// * `scale` - Scaling of pixels from the sampled texture to the render target. +// This is the amount of fragments that each pixel from the sampled texture +// covers. +float upscale_adjust(float pos, float scale) { + // To retain crisp borders of upscaled pixel art, images are upscaled + // following the algorithm outlined here: + // + // https://csantosbh.wordpress.com/2014/01/25/manual-texture-filtering-for-pixelated-games-in-webgl/ + // + // `min(x * scale, 0.5) + max((x - 1.0) * scale, 0.0)` + // + float frac = fract(pos); + // Right of nearest pixel in the sampled texture. + float base = floor(pos); + // This will be 0.5 when the current fragment lies entirely inside a pixel + // in the sampled texture. + float adjustment = min(frac * scale, 0.5) + max((frac - 1.0) * scale + 0.5, 0.0); + return base + adjustment; +} + +// Computes info needed for downscaling using two samples in a single +// dimension. This info includes the two position to sample at (called +// `offsets` even though they aren't actually offsets from the supplied +// position) and the `weights` to multiply each of those samples by before +// combining them. +// +// See `upscale_adjust` for semantics of `pos` and `scale` parameters. +// +// Ouput via `weights` and `offsets` parameters. +void downscale_params(float pos, float scale, out vec2 weights, out vec2 offsets) { + // For `scale` 0.33333..1.0 we round to the nearest pixel edge and split + // there. We compute the length of each side. Then the sampling point is + // computed as this distance from the split point via this formula where + // `l` is the length of that side of split: + // + // `1.5 - (1.0 / max(l, 1.0))` + // + // For `scale` ..0.3333 the current fragment can potentially span more than + // 4 pixels (within a single dimension) in the sampled texture. So we can't + // perfectly compute the contribution of each covered pixel in the sampled + // texture with only 2 samples (along each dimension). Thus, we fallback to + // an imperfect technique of just sampling 1 pixel length from the center + // on each side of the nearest pixel edge. An alternative might be to + // pre-compute mipmap levels that could be sampled from, although this + // could interact poorly with the atlas. + if (scale > (1.0 / 3.0)) { + // Width of the fragment in terms of pixels in the sampled texture. + float width = 1.0 / scale; + // Right side of the fragment in the sampled texture. + float right = pos - width / 2.0; + float split = round(pos); + float right_len = split - right; + float left_len = width - right_len; + float right_sample_offset = 1.5 - (1.0 / max(right_len, 1.0)); + float left_sample_offset = 1.5 - (1.0 / max(left_len, 1.0)); + offsets = vec2(split) + vec2(-right_sample_offset, left_sample_offset); + weights = vec2(right_len, left_len) / width; + } else { + offsets = round(pos) + vec2(-1.0, 1.0); + // We split in the middle so weights for both sides are the same. + weights = vec2(0.5); + } +} + +// 1 sample +vec4 upscale_xy(vec2 uv_pixel, vec2 scale) { + // When slowly panning something (e.g. the map), a very small amount of + // wobbling is still observable (not as much as nearest sampling). It + // is possible to eliminate this by making the edges slightly blurry by + // lowering the scale a bit here. However, this does make edges little + // less crisp and can cause bleeding in from other images packed into + // the atlas in the current setup. + vec2 adjusted = vec2(upscale_adjust(uv_pixel.x, scale.x), upscale_adjust(uv_pixel.y, scale.y)); + // Convert back to 0.0..1.0 by dividing by texture size. + vec2 uv = adjusted / texture_size; + return textureLod(sampler2D(t_tex, s_tex), uv, 0); +} + +// 2 samples +vec4 upscale_x_downscale_y(vec2 uv_pixel, vec2 scale) { + float x_adjusted = upscale_adjust(uv_pixel.x, scale.x); + vec2 weights, offsets; + downscale_params(uv_pixel.y, scale.y, weights, offsets); + vec2 uv0 = vec2(x_adjusted, offsets[0]) / texture_size; + vec2 uv1 = vec2(x_adjusted, offsets[1]) / texture_size; + vec4 s0 = textureLod(sampler2D(t_tex, s_tex), uv0, 0); + vec4 s1 = textureLod(sampler2D(t_tex, s_tex), uv1, 0); + return s0 * weights[0] + s1 * weights[1]; +} + +// 2 samples +vec4 downscale_x_upscale_y(vec2 uv_pixel, vec2 scale) { + float y_adjusted = upscale_adjust(uv_pixel.y, scale.y); + vec2 weights, offsets; + downscale_params(uv_pixel.x, scale.x, weights, offsets); + vec2 uv0 = vec2(offsets[0], y_adjusted) / texture_size; + vec2 uv1 = vec2(offsets[1], y_adjusted) / texture_size; + vec4 s0 = textureLod(sampler2D(t_tex, s_tex), uv0, 0); + vec4 s1 = textureLod(sampler2D(t_tex, s_tex), uv1, 0); + return s0 * weights[0] + s1 * weights[1]; +} + +// 4 samples +vec4 downscale_xy(vec2 uv_pixel, vec2 scale) { + vec2 weights_x, offsets_x, weights_y, offsets_y; + downscale_params(uv_pixel.x, scale.x, weights_x, offsets_x); + downscale_params(uv_pixel.y, scale.y, weights_y, offsets_y); + vec2 uv0 = vec2(offsets_x[0], offsets_y[0]) / texture_size; + vec2 uv1 = vec2(offsets_x[1], offsets_y[0]) / texture_size; + vec2 uv2 = vec2(offsets_x[0], offsets_y[1]) / texture_size; + vec2 uv3 = vec2(offsets_x[1], offsets_y[1]) / texture_size; + vec4 s0 = textureLod(sampler2D(t_tex, s_tex), uv0, 0); + vec4 s1 = textureLod(sampler2D(t_tex, s_tex), uv1, 0); + vec4 s2 = textureLod(sampler2D(t_tex, s_tex), uv2, 0); + vec4 s3 = textureLod(sampler2D(t_tex, s_tex), uv3, 0); + vec4 s01 = s0 * weights_x[0] + s1 * weights_x[1]; + vec4 s23 = s2 * weights_x[0] + s3 * weights_x[1]; + // Useful to visualize things below the limit where downscaling is supposed + // to be perfectly accurate. + /*if (scale.x < (1.0 / 3.0)) { + return vec4(1, 0, 0, 1); + }*/ + return s01 * weights_y[0] + s23 * weights_y[1]; +} + +void main() { + // Text + if (f_mode == uint(0)) { + // NOTE: This now uses linear filter since all `Texture::new_dynamic` + // was changed to this by default. Glyphs are usually rasterized to be + // pretty close to the target size (so the filter change may have no + // effect), but there are thresholds within which the same rasterized + // glyph will be re-used. I wasn't able to observe any differences. + vec2 uv = f_uv; + #ifdef EXPERIMENTAL_UINEARESTSCALING + uv = (floor(uv * texture_size) + 0.5) / texture_size; + #endif + tgt_color = f_color * vec4(1.0, 1.0, 1.0, textureLod(sampler2D(t_tex, s_tex), uv, 0).a); + // Image + // HACK: bit 0 is set for both ordinary and north-facing images. + } else if ((f_mode & uint(1)) == uint(1)) { + // NOTE: We don't have to account for bleeding over the border of an image + // due to how the ui currently handles rendering images. Currently, any + // edges of an image being rendered that don't line up with a pixel are + // snapped to a pixel, so we will never render any pixels containing an + // image that lie partly outside that image (and thus the sampling here + // will never try to sample outside an image). So we don't have to + // worry about bleeding in the atlas and/or what the border behavior + // should be. + + // Convert to sampled pixel coordinates. + vec2 uv_pixel = f_uv * texture_size; + vec4 image_color; + #ifdef EXPERIMENTAL_UINEARESTSCALING + vec2 uv = (floor(uv_pixel) + 0.5) / texture_size; + image_color = textureLod(sampler2D(t_tex, s_tex), uv, 0); + #else + if (f_scale.x >= 1.0) { + if (f_scale.y >= 1.0) { + image_color = upscale_xy(uv_pixel, f_scale); + } else { + image_color = upscale_x_downscale_y(uv_pixel, f_scale); + } + } else { + if (f_scale.y >= 1.0) { + image_color = downscale_x_upscale_y(uv_pixel, f_scale); + } else { + image_color = downscale_xy(uv_pixel, f_scale); + } + } + #endif + + // un-premultiply alpha (linear filtering above requires alpha to be + // pre-multiplied) + if (image_color.a > 0.001) { + image_color.rgb /= image_color.a; + } + + tgt_color = f_color * image_color; + // 2D Geometry + } else if (f_mode == uint(2)) { + tgt_color = f_color; + } +} diff --git a/assets/voxygen/shaders/ui-vert.glsl b/assets/voxygen/shaders/ui-vert.glsl new file mode 100644 index 0000000..61a866f --- /dev/null +++ b/assets/voxygen/shaders/ui-vert.glsl @@ -0,0 +1,75 @@ +#version 440 core + +#include + +layout(location = 0) in vec2 v_pos; +layout(location = 1) in vec2 v_uv; +layout(location = 2) in vec4 v_color; +layout(location = 3) in vec2 v_center; +layout(location = 4) in vec2 v_scale; +layout(location = 5) in uint v_mode; + +layout (std140, set = 1, binding = 0) +uniform u_locals { + vec4 w_pos; +}; + +layout(set = 2, binding = 0) +uniform texture2D t_tex; +layout(set = 2, binding = 1) +uniform sampler s_tex; +layout (std140, set = 2, binding = 2) +uniform tex_locals { + uvec2 texture_size; +}; + +layout(location = 0) out vec2 f_uv; +layout(location = 1) out vec4 f_color; +layout(location = 2) flat out vec2 f_scale; +layout(location = 3) flat out uint f_mode; + +void main() { + f_color = v_color; + + // vec2 v_pos = vec2(-1.0,1.0) * v_pos; + /* f_uv = vec2(1.0,1.0) * v_uv; */ + // vec2 v_uv = vec2(1.0,-1.0) * v_uv; + + if (w_pos.w == 1.0) { + f_uv = v_uv; + // Fixed scale In-game element + vec4 projected_pos = all_mat * vec4(w_pos.xyz - focus_off.xyz, 1.0); + // Note, if screen_res is odd this won't actually be snapped to a + // pixel, but we are using it as an offset so we just need to ensure + // that it is a multiple of a whole pixel. + vec2 snapped_pos = round((projected_pos.xy / projected_pos.w) * screen_res.xy / 2.0) * 2.0 / screen_res.xy; + gl_Position = vec4(snapped_pos + v_pos, 0.5, 1.0); + } else if (v_mode == uint(3)) { + // HACK: North facing source rectangle. + gl_Position = vec4(v_pos, 0.5, 1.0); + vec2 look_at_dir = normalize(vec2(-view_mat[0][2], -view_mat[1][2])); + // TODO: Consider cleaning up matrix to something more efficient (e.g. a mat3). + vec2 aspect_ratio = texture_size.yx; + mat2 look_at = mat2(look_at_dir.y, look_at_dir.x, -look_at_dir.x, look_at_dir.y); + vec2 v_centered = (v_uv - v_center) / aspect_ratio; + vec2 v_rotated = look_at * v_centered; + f_uv = aspect_ratio * v_rotated + v_center; + } else if (v_mode == uint(5)) { + // HACK: North facing target rectangle. + f_uv = v_uv; + vec2 look_at_dir = normalize(vec2(-view_mat[0][2], -view_mat[1][2])); + // TODO: Consider cleaning up matrix to something more efficient (e.g. a mat3). + vec2 aspect_ratio = screen_res.yx; + mat2 look_at = mat2(look_at_dir.y, -look_at_dir.x, look_at_dir.x, look_at_dir.y); + vec2 v_centered = (v_pos - v_center) / aspect_ratio; + vec2 v_rotated = look_at * v_centered; + gl_Position = vec4(aspect_ratio * v_rotated + v_center, 0.5, 1.0); + } else { + // Interface element + f_uv = v_uv; + gl_Position = vec4(v_pos, 0.5, 1.0); + } + + f_scale = v_scale; + f_mode = v_mode; +} diff --git a/assets/voxygen/texture/noise.png b/assets/voxygen/texture/noise.png new file mode 100644 index 0000000..791eee9 Binary files /dev/null and b/assets/voxygen/texture/noise.png differ diff --git a/assets/voxygen/voxel/armor/alchemist.vox b/assets/voxygen/voxel/armor/alchemist.vox new file mode 100644 index 0000000..4492304 Binary files /dev/null and b/assets/voxygen/voxel/armor/alchemist.vox differ diff --git a/assets/voxygen/voxel/armor/assassin/belt.vox b/assets/voxygen/voxel/armor/assassin/belt.vox new file mode 100644 index 0000000..0d9b538 Binary files /dev/null and b/assets/voxygen/voxel/armor/assassin/belt.vox differ diff --git a/assets/voxygen/voxel/armor/assassin/chest.vox b/assets/voxygen/voxel/armor/assassin/chest.vox new file mode 100644 index 0000000..d861ea3 Binary files /dev/null and b/assets/voxygen/voxel/armor/assassin/chest.vox differ diff --git a/assets/voxygen/voxel/armor/assassin/foot.vox b/assets/voxygen/voxel/armor/assassin/foot.vox new file mode 100644 index 0000000..ca9599c Binary files /dev/null and b/assets/voxygen/voxel/armor/assassin/foot.vox differ diff --git a/assets/voxygen/voxel/armor/assassin/hand.vox b/assets/voxygen/voxel/armor/assassin/hand.vox new file mode 100644 index 0000000..4e34d0c Binary files /dev/null and b/assets/voxygen/voxel/armor/assassin/hand.vox differ diff --git a/assets/voxygen/voxel/armor/assassin/pants.vox b/assets/voxygen/voxel/armor/assassin/pants.vox new file mode 100644 index 0000000..99a132e Binary files /dev/null and b/assets/voxygen/voxel/armor/assassin/pants.vox differ diff --git a/assets/voxygen/voxel/armor/assassin/shoulder.vox b/assets/voxygen/voxel/armor/assassin/shoulder.vox new file mode 100644 index 0000000..ab99966 Binary files /dev/null and b/assets/voxygen/voxel/armor/assassin/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/blacksmith/belt.vox b/assets/voxygen/voxel/armor/blacksmith/belt.vox new file mode 100644 index 0000000..ede87eb Binary files /dev/null and b/assets/voxygen/voxel/armor/blacksmith/belt.vox differ diff --git a/assets/voxygen/voxel/armor/blacksmith/chest.vox b/assets/voxygen/voxel/armor/blacksmith/chest.vox new file mode 100644 index 0000000..9927f58 Binary files /dev/null and b/assets/voxygen/voxel/armor/blacksmith/chest.vox differ diff --git a/assets/voxygen/voxel/armor/blacksmith/hand.vox b/assets/voxygen/voxel/armor/blacksmith/hand.vox new file mode 100644 index 0000000..55f64b8 Binary files /dev/null and b/assets/voxygen/voxel/armor/blacksmith/hand.vox differ diff --git a/assets/voxygen/voxel/armor/blacksmith/hat.vox b/assets/voxygen/voxel/armor/blacksmith/hat.vox new file mode 100644 index 0000000..e07e6a7 Binary files /dev/null and b/assets/voxygen/voxel/armor/blacksmith/hat.vox differ diff --git a/assets/voxygen/voxel/armor/blacksmith/pants.vox b/assets/voxygen/voxel/armor/blacksmith/pants.vox new file mode 100644 index 0000000..15c79cc Binary files /dev/null and b/assets/voxygen/voxel/armor/blacksmith/pants.vox differ diff --git a/assets/voxygen/voxel/armor/bonerattler/belt.vox b/assets/voxygen/voxel/armor/bonerattler/belt.vox new file mode 100644 index 0000000..c86015e Binary files /dev/null and b/assets/voxygen/voxel/armor/bonerattler/belt.vox differ diff --git a/assets/voxygen/voxel/armor/bonerattler/chest.vox b/assets/voxygen/voxel/armor/bonerattler/chest.vox new file mode 100644 index 0000000..5415f9a Binary files /dev/null and b/assets/voxygen/voxel/armor/bonerattler/chest.vox differ diff --git a/assets/voxygen/voxel/armor/bonerattler/foot.vox b/assets/voxygen/voxel/armor/bonerattler/foot.vox new file mode 100644 index 0000000..3eb7358 Binary files /dev/null and b/assets/voxygen/voxel/armor/bonerattler/foot.vox differ diff --git a/assets/voxygen/voxel/armor/bonerattler/hand.vox b/assets/voxygen/voxel/armor/bonerattler/hand.vox new file mode 100644 index 0000000..bbee5cf Binary files /dev/null and b/assets/voxygen/voxel/armor/bonerattler/hand.vox differ diff --git a/assets/voxygen/voxel/armor/bonerattler/pants.vox b/assets/voxygen/voxel/armor/bonerattler/pants.vox new file mode 100644 index 0000000..613dc20 Binary files /dev/null and b/assets/voxygen/voxel/armor/bonerattler/pants.vox differ diff --git a/assets/voxygen/voxel/armor/bonerattler/shoulder.vox b/assets/voxygen/voxel/armor/bonerattler/shoulder.vox new file mode 100644 index 0000000..f849419 Binary files /dev/null and b/assets/voxygen/voxel/armor/bonerattler/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/boreal/back.vox b/assets/voxygen/voxel/armor/boreal/back.vox new file mode 100644 index 0000000..5022d0e Binary files /dev/null and b/assets/voxygen/voxel/armor/boreal/back.vox differ diff --git a/assets/voxygen/voxel/armor/boreal/belt.vox b/assets/voxygen/voxel/armor/boreal/belt.vox new file mode 100644 index 0000000..0d0a2da Binary files /dev/null and b/assets/voxygen/voxel/armor/boreal/belt.vox differ diff --git a/assets/voxygen/voxel/armor/boreal/chest.vox b/assets/voxygen/voxel/armor/boreal/chest.vox new file mode 100644 index 0000000..3f57c87 Binary files /dev/null and b/assets/voxygen/voxel/armor/boreal/chest.vox differ diff --git a/assets/voxygen/voxel/armor/boreal/foot.vox b/assets/voxygen/voxel/armor/boreal/foot.vox new file mode 100644 index 0000000..9bf62d9 Binary files /dev/null and b/assets/voxygen/voxel/armor/boreal/foot.vox differ diff --git a/assets/voxygen/voxel/armor/boreal/hand.vox b/assets/voxygen/voxel/armor/boreal/hand.vox new file mode 100644 index 0000000..b402bf0 Binary files /dev/null and b/assets/voxygen/voxel/armor/boreal/hand.vox differ diff --git a/assets/voxygen/voxel/armor/boreal/hat.vox b/assets/voxygen/voxel/armor/boreal/hat.vox new file mode 100644 index 0000000..4f83aa4 Binary files /dev/null and b/assets/voxygen/voxel/armor/boreal/hat.vox differ diff --git a/assets/voxygen/voxel/armor/boreal/pants.vox b/assets/voxygen/voxel/armor/boreal/pants.vox new file mode 100644 index 0000000..0d863eb Binary files /dev/null and b/assets/voxygen/voxel/armor/boreal/pants.vox differ diff --git a/assets/voxygen/voxel/armor/boreal/shoulder.vox b/assets/voxygen/voxel/armor/boreal/shoulder.vox new file mode 100644 index 0000000..cd8497b Binary files /dev/null and b/assets/voxygen/voxel/armor/boreal/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/brinestone/back.vox b/assets/voxygen/voxel/armor/brinestone/back.vox new file mode 100644 index 0000000..d19b095 Binary files /dev/null and b/assets/voxygen/voxel/armor/brinestone/back.vox differ diff --git a/assets/voxygen/voxel/armor/brinestone/belt.vox b/assets/voxygen/voxel/armor/brinestone/belt.vox new file mode 100644 index 0000000..566008e Binary files /dev/null and b/assets/voxygen/voxel/armor/brinestone/belt.vox differ diff --git a/assets/voxygen/voxel/armor/brinestone/chest.vox b/assets/voxygen/voxel/armor/brinestone/chest.vox new file mode 100644 index 0000000..a109779 Binary files /dev/null and b/assets/voxygen/voxel/armor/brinestone/chest.vox differ diff --git a/assets/voxygen/voxel/armor/brinestone/crown.vox b/assets/voxygen/voxel/armor/brinestone/crown.vox new file mode 100644 index 0000000..3839ebf Binary files /dev/null and b/assets/voxygen/voxel/armor/brinestone/crown.vox differ diff --git a/assets/voxygen/voxel/armor/brinestone/foot.vox b/assets/voxygen/voxel/armor/brinestone/foot.vox new file mode 100644 index 0000000..f800ffb Binary files /dev/null and b/assets/voxygen/voxel/armor/brinestone/foot.vox differ diff --git a/assets/voxygen/voxel/armor/brinestone/hand.vox b/assets/voxygen/voxel/armor/brinestone/hand.vox new file mode 100644 index 0000000..91d9a3a Binary files /dev/null and b/assets/voxygen/voxel/armor/brinestone/hand.vox differ diff --git a/assets/voxygen/voxel/armor/brinestone/pants.vox b/assets/voxygen/voxel/armor/brinestone/pants.vox new file mode 100644 index 0000000..da5fac9 Binary files /dev/null and b/assets/voxygen/voxel/armor/brinestone/pants.vox differ diff --git a/assets/voxygen/voxel/armor/brinestone/shoulder.vox b/assets/voxygen/voxel/armor/brinestone/shoulder.vox new file mode 100644 index 0000000..eda16b6 Binary files /dev/null and b/assets/voxygen/voxel/armor/brinestone/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/cardinal/belt.vox b/assets/voxygen/voxel/armor/cardinal/belt.vox new file mode 100644 index 0000000..d2c237f Binary files /dev/null and b/assets/voxygen/voxel/armor/cardinal/belt.vox differ diff --git a/assets/voxygen/voxel/armor/cardinal/chest.vox b/assets/voxygen/voxel/armor/cardinal/chest.vox new file mode 100644 index 0000000..24c00bd Binary files /dev/null and b/assets/voxygen/voxel/armor/cardinal/chest.vox differ diff --git a/assets/voxygen/voxel/armor/cardinal/foot.vox b/assets/voxygen/voxel/armor/cardinal/foot.vox new file mode 100644 index 0000000..fb0dcd5 Binary files /dev/null and b/assets/voxygen/voxel/armor/cardinal/foot.vox differ diff --git a/assets/voxygen/voxel/armor/cardinal/hand.vox b/assets/voxygen/voxel/armor/cardinal/hand.vox new file mode 100644 index 0000000..00e53c2 Binary files /dev/null and b/assets/voxygen/voxel/armor/cardinal/hand.vox differ diff --git a/assets/voxygen/voxel/armor/cardinal/mitre.vox b/assets/voxygen/voxel/armor/cardinal/mitre.vox new file mode 100644 index 0000000..851725f Binary files /dev/null and b/assets/voxygen/voxel/armor/cardinal/mitre.vox differ diff --git a/assets/voxygen/voxel/armor/cardinal/pants.vox b/assets/voxygen/voxel/armor/cardinal/pants.vox new file mode 100644 index 0000000..9850e87 Binary files /dev/null and b/assets/voxygen/voxel/armor/cardinal/pants.vox differ diff --git a/assets/voxygen/voxel/armor/cardinal/shoulder.vox b/assets/voxygen/voxel/armor/cardinal/shoulder.vox new file mode 100644 index 0000000..1c03ad3 Binary files /dev/null and b/assets/voxygen/voxel/armor/cardinal/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/chef/belt.vox b/assets/voxygen/voxel/armor/chef/belt.vox new file mode 100644 index 0000000..ef44592 Binary files /dev/null and b/assets/voxygen/voxel/armor/chef/belt.vox differ diff --git a/assets/voxygen/voxel/armor/chef/chest.vox b/assets/voxygen/voxel/armor/chef/chest.vox new file mode 100644 index 0000000..c0a9c0b Binary files /dev/null and b/assets/voxygen/voxel/armor/chef/chest.vox differ diff --git a/assets/voxygen/voxel/armor/chef/hat.vox b/assets/voxygen/voxel/armor/chef/hat.vox new file mode 100644 index 0000000..e0d2a81 Binary files /dev/null and b/assets/voxygen/voxel/armor/chef/hat.vox differ diff --git a/assets/voxygen/voxel/armor/chef/pants.vox b/assets/voxygen/voxel/armor/chef/pants.vox new file mode 100644 index 0000000..3dcb9cb Binary files /dev/null and b/assets/voxygen/voxel/armor/chef/pants.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/druid/back.vox b/assets/voxygen/voxel/armor/cloth/druid/back.vox new file mode 100644 index 0000000..d900a3b Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/druid/back.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/druid/belt.vox b/assets/voxygen/voxel/armor/cloth/druid/belt.vox new file mode 100644 index 0000000..077df2d Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/druid/belt.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/druid/chest.vox b/assets/voxygen/voxel/armor/cloth/druid/chest.vox new file mode 100644 index 0000000..cb4c19e Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/druid/chest.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/druid/foot.vox b/assets/voxygen/voxel/armor/cloth/druid/foot.vox new file mode 100644 index 0000000..314f513 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/druid/foot.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/druid/hand.vox b/assets/voxygen/voxel/armor/cloth/druid/hand.vox new file mode 100644 index 0000000..ad6bf63 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/druid/hand.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/druid/pants.vox b/assets/voxygen/voxel/armor/cloth/druid/pants.vox new file mode 100644 index 0000000..d2d34d8 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/druid/pants.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/druid/shoulder.vox b/assets/voxygen/voxel/armor/cloth/druid/shoulder.vox new file mode 100644 index 0000000..6977e9b Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/druid/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/linen/back.vox b/assets/voxygen/voxel/armor/cloth/linen/back.vox new file mode 100644 index 0000000..522e27f Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/linen/back.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/linen/belt.vox b/assets/voxygen/voxel/armor/cloth/linen/belt.vox new file mode 100644 index 0000000..99c71ea Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/linen/belt.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/linen/chest.vox b/assets/voxygen/voxel/armor/cloth/linen/chest.vox new file mode 100644 index 0000000..1be352e Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/linen/chest.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/linen/foot.vox b/assets/voxygen/voxel/armor/cloth/linen/foot.vox new file mode 100644 index 0000000..9682928 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/linen/foot.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/linen/hand.vox b/assets/voxygen/voxel/armor/cloth/linen/hand.vox new file mode 100644 index 0000000..81f5a71 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/linen/hand.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/linen/pants.vox b/assets/voxygen/voxel/armor/cloth/linen/pants.vox new file mode 100644 index 0000000..b1998df Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/linen/pants.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/linen/shoulder.vox b/assets/voxygen/voxel/armor/cloth/linen/shoulder.vox new file mode 100644 index 0000000..f530338 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/linen/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/moonweave/back.vox b/assets/voxygen/voxel/armor/cloth/moonweave/back.vox new file mode 100644 index 0000000..c4bccef Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/moonweave/back.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/moonweave/belt.vox b/assets/voxygen/voxel/armor/cloth/moonweave/belt.vox new file mode 100644 index 0000000..9499740 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/moonweave/belt.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/moonweave/chest.vox b/assets/voxygen/voxel/armor/cloth/moonweave/chest.vox new file mode 100644 index 0000000..ce4dd82 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/moonweave/chest.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/moonweave/foot.vox b/assets/voxygen/voxel/armor/cloth/moonweave/foot.vox new file mode 100644 index 0000000..2e0d757 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/moonweave/foot.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/moonweave/hand.vox b/assets/voxygen/voxel/armor/cloth/moonweave/hand.vox new file mode 100644 index 0000000..614533c Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/moonweave/hand.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/moonweave/pants.vox b/assets/voxygen/voxel/armor/cloth/moonweave/pants.vox new file mode 100644 index 0000000..0b5e836 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/moonweave/pants.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/moonweave/shoulder.vox b/assets/voxygen/voxel/armor/cloth/moonweave/shoulder.vox new file mode 100644 index 0000000..7a7bb6f Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/moonweave/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/silken/back.vox b/assets/voxygen/voxel/armor/cloth/silken/back.vox new file mode 100644 index 0000000..4b474fd Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/silken/back.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/silken/belt.vox b/assets/voxygen/voxel/armor/cloth/silken/belt.vox new file mode 100644 index 0000000..3453796 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/silken/belt.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/silken/chest.vox b/assets/voxygen/voxel/armor/cloth/silken/chest.vox new file mode 100644 index 0000000..ba78808 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/silken/chest.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/silken/foot.vox b/assets/voxygen/voxel/armor/cloth/silken/foot.vox new file mode 100644 index 0000000..f76bb9f Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/silken/foot.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/silken/hand.vox b/assets/voxygen/voxel/armor/cloth/silken/hand.vox new file mode 100644 index 0000000..19660eb Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/silken/hand.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/silken/pants.vox b/assets/voxygen/voxel/armor/cloth/silken/pants.vox new file mode 100644 index 0000000..c9ec073 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/silken/pants.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/silken/shoulder.vox b/assets/voxygen/voxel/armor/cloth/silken/shoulder.vox new file mode 100644 index 0000000..10a22c6 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/silken/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/sunsilk/back.vox b/assets/voxygen/voxel/armor/cloth/sunsilk/back.vox new file mode 100644 index 0000000..cb509e3 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/sunsilk/back.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/sunsilk/belt.vox b/assets/voxygen/voxel/armor/cloth/sunsilk/belt.vox new file mode 100644 index 0000000..7a77db1 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/sunsilk/belt.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/sunsilk/chest.vox b/assets/voxygen/voxel/armor/cloth/sunsilk/chest.vox new file mode 100644 index 0000000..dee5a32 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/sunsilk/chest.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/sunsilk/foot.vox b/assets/voxygen/voxel/armor/cloth/sunsilk/foot.vox new file mode 100644 index 0000000..7309b8c Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/sunsilk/foot.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/sunsilk/hand.vox b/assets/voxygen/voxel/armor/cloth/sunsilk/hand.vox new file mode 100644 index 0000000..c2be4d5 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/sunsilk/hand.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/sunsilk/pants.vox b/assets/voxygen/voxel/armor/cloth/sunsilk/pants.vox new file mode 100644 index 0000000..381c632 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/sunsilk/pants.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/sunsilk/shoulder.vox b/assets/voxygen/voxel/armor/cloth/sunsilk/shoulder.vox new file mode 100644 index 0000000..91119b8 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/sunsilk/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/woolen/back.vox b/assets/voxygen/voxel/armor/cloth/woolen/back.vox new file mode 100644 index 0000000..2f2dc87 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/woolen/back.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/woolen/belt.vox b/assets/voxygen/voxel/armor/cloth/woolen/belt.vox new file mode 100644 index 0000000..7ea3ee5 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/woolen/belt.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/woolen/chest.vox b/assets/voxygen/voxel/armor/cloth/woolen/chest.vox new file mode 100644 index 0000000..528d268 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/woolen/chest.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/woolen/foot.vox b/assets/voxygen/voxel/armor/cloth/woolen/foot.vox new file mode 100644 index 0000000..23619b7 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/woolen/foot.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/woolen/hand.vox b/assets/voxygen/voxel/armor/cloth/woolen/hand.vox new file mode 100644 index 0000000..f7dff55 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/woolen/hand.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/woolen/pants.vox b/assets/voxygen/voxel/armor/cloth/woolen/pants.vox new file mode 100644 index 0000000..75048bb Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/woolen/pants.vox differ diff --git a/assets/voxygen/voxel/armor/cloth/woolen/shoulder.vox b/assets/voxygen/voxel/armor/cloth/woolen/shoulder.vox new file mode 100644 index 0000000..f7685d7 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth/woolen/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/cloth_blue/belt.vox b/assets/voxygen/voxel/armor/cloth_blue/belt.vox new file mode 100644 index 0000000..99262e5 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth_blue/belt.vox differ diff --git a/assets/voxygen/voxel/armor/cloth_blue/chest.vox b/assets/voxygen/voxel/armor/cloth_blue/chest.vox new file mode 100644 index 0000000..da3ee9f Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth_blue/chest.vox differ diff --git a/assets/voxygen/voxel/armor/cloth_blue/foot.vox b/assets/voxygen/voxel/armor/cloth_blue/foot.vox new file mode 100644 index 0000000..2f2461f Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth_blue/foot.vox differ diff --git a/assets/voxygen/voxel/armor/cloth_blue/hand.vox b/assets/voxygen/voxel/armor/cloth_blue/hand.vox new file mode 100644 index 0000000..314f5f4 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth_blue/hand.vox differ diff --git a/assets/voxygen/voxel/armor/cloth_blue/pants.vox b/assets/voxygen/voxel/armor/cloth_blue/pants.vox new file mode 100644 index 0000000..728f565 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth_blue/pants.vox differ diff --git a/assets/voxygen/voxel/armor/cloth_blue/shoulder_0.vox b/assets/voxygen/voxel/armor/cloth_blue/shoulder_0.vox new file mode 100644 index 0000000..3af71b8 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth_blue/shoulder_0.vox differ diff --git a/assets/voxygen/voxel/armor/cloth_blue/shoulder_1.vox b/assets/voxygen/voxel/armor/cloth_blue/shoulder_1.vox new file mode 100644 index 0000000..8e73144 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth_blue/shoulder_1.vox differ diff --git a/assets/voxygen/voxel/armor/cloth_green/belt.vox b/assets/voxygen/voxel/armor/cloth_green/belt.vox new file mode 100644 index 0000000..4156470 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth_green/belt.vox differ diff --git a/assets/voxygen/voxel/armor/cloth_green/chest.vox b/assets/voxygen/voxel/armor/cloth_green/chest.vox new file mode 100644 index 0000000..595bdea Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth_green/chest.vox differ diff --git a/assets/voxygen/voxel/armor/cloth_green/foot.vox b/assets/voxygen/voxel/armor/cloth_green/foot.vox new file mode 100644 index 0000000..aba1f61 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth_green/foot.vox differ diff --git a/assets/voxygen/voxel/armor/cloth_green/hand.vox b/assets/voxygen/voxel/armor/cloth_green/hand.vox new file mode 100644 index 0000000..c64ea45 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth_green/hand.vox differ diff --git a/assets/voxygen/voxel/armor/cloth_green/pants.vox b/assets/voxygen/voxel/armor/cloth_green/pants.vox new file mode 100644 index 0000000..f2736a4 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth_green/pants.vox differ diff --git a/assets/voxygen/voxel/armor/cloth_green/shoulder.vox b/assets/voxygen/voxel/armor/cloth_green/shoulder.vox new file mode 100644 index 0000000..a323d41 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth_green/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/cloth_purple/belt.vox b/assets/voxygen/voxel/armor/cloth_purple/belt.vox new file mode 100644 index 0000000..97a63db Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth_purple/belt.vox differ diff --git a/assets/voxygen/voxel/armor/cloth_purple/chest.vox b/assets/voxygen/voxel/armor/cloth_purple/chest.vox new file mode 100644 index 0000000..1611f5b Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth_purple/chest.vox differ diff --git a/assets/voxygen/voxel/armor/cloth_purple/foot.vox b/assets/voxygen/voxel/armor/cloth_purple/foot.vox new file mode 100644 index 0000000..ddf811c Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth_purple/foot.vox differ diff --git a/assets/voxygen/voxel/armor/cloth_purple/hand.vox b/assets/voxygen/voxel/armor/cloth_purple/hand.vox new file mode 100644 index 0000000..012a320 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth_purple/hand.vox differ diff --git a/assets/voxygen/voxel/armor/cloth_purple/pants.vox b/assets/voxygen/voxel/armor/cloth_purple/pants.vox new file mode 100644 index 0000000..878e04a Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth_purple/pants.vox differ diff --git a/assets/voxygen/voxel/armor/cloth_purple/shoulder.vox b/assets/voxygen/voxel/armor/cloth_purple/shoulder.vox new file mode 100644 index 0000000..5e56c07 Binary files /dev/null and b/assets/voxygen/voxel/armor/cloth_purple/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/cultist/bandana.vox b/assets/voxygen/voxel/armor/cultist/bandana.vox new file mode 100644 index 0000000..4b844f4 Binary files /dev/null and b/assets/voxygen/voxel/armor/cultist/bandana.vox differ diff --git a/assets/voxygen/voxel/armor/cultist/belt.vox b/assets/voxygen/voxel/armor/cultist/belt.vox new file mode 100644 index 0000000..a1374d9 Binary files /dev/null and b/assets/voxygen/voxel/armor/cultist/belt.vox differ diff --git a/assets/voxygen/voxel/armor/cultist/chest.vox b/assets/voxygen/voxel/armor/cultist/chest.vox new file mode 100644 index 0000000..9fb8ead Binary files /dev/null and b/assets/voxygen/voxel/armor/cultist/chest.vox differ diff --git a/assets/voxygen/voxel/armor/cultist/foot.vox b/assets/voxygen/voxel/armor/cultist/foot.vox new file mode 100644 index 0000000..3953bee Binary files /dev/null and b/assets/voxygen/voxel/armor/cultist/foot.vox differ diff --git a/assets/voxygen/voxel/armor/cultist/hand.vox b/assets/voxygen/voxel/armor/cultist/hand.vox new file mode 100644 index 0000000..6c9c2d0 Binary files /dev/null and b/assets/voxygen/voxel/armor/cultist/hand.vox differ diff --git a/assets/voxygen/voxel/armor/cultist/necklace.vox b/assets/voxygen/voxel/armor/cultist/necklace.vox new file mode 100644 index 0000000..43eac30 Binary files /dev/null and b/assets/voxygen/voxel/armor/cultist/necklace.vox differ diff --git a/assets/voxygen/voxel/armor/cultist/pants.vox b/assets/voxygen/voxel/armor/cultist/pants.vox new file mode 100644 index 0000000..d08b660 Binary files /dev/null and b/assets/voxygen/voxel/armor/cultist/pants.vox differ diff --git a/assets/voxygen/voxel/armor/cultist/ring.vox b/assets/voxygen/voxel/armor/cultist/ring.vox new file mode 100644 index 0000000..3b87293 Binary files /dev/null and b/assets/voxygen/voxel/armor/cultist/ring.vox differ diff --git a/assets/voxygen/voxel/armor/cultist/shoulder.vox b/assets/voxygen/voxel/armor/cultist/shoulder.vox new file mode 100644 index 0000000..76eb745 Binary files /dev/null and b/assets/voxygen/voxel/armor/cultist/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/empty.vox b/assets/voxygen/voxel/armor/empty.vox new file mode 100644 index 0000000..611eb13 Binary files /dev/null and b/assets/voxygen/voxel/armor/empty.vox differ diff --git a/assets/voxygen/voxel/armor/ferocious/back.vox b/assets/voxygen/voxel/armor/ferocious/back.vox new file mode 100644 index 0000000..a8b97bf Binary files /dev/null and b/assets/voxygen/voxel/armor/ferocious/back.vox differ diff --git a/assets/voxygen/voxel/armor/ferocious/belt.vox b/assets/voxygen/voxel/armor/ferocious/belt.vox new file mode 100644 index 0000000..56d0fec Binary files /dev/null and b/assets/voxygen/voxel/armor/ferocious/belt.vox differ diff --git a/assets/voxygen/voxel/armor/ferocious/chest.vox b/assets/voxygen/voxel/armor/ferocious/chest.vox new file mode 100644 index 0000000..c40e340 Binary files /dev/null and b/assets/voxygen/voxel/armor/ferocious/chest.vox differ diff --git a/assets/voxygen/voxel/armor/ferocious/foot.vox b/assets/voxygen/voxel/armor/ferocious/foot.vox new file mode 100644 index 0000000..66f182c Binary files /dev/null and b/assets/voxygen/voxel/armor/ferocious/foot.vox differ diff --git a/assets/voxygen/voxel/armor/ferocious/hand.vox b/assets/voxygen/voxel/armor/ferocious/hand.vox new file mode 100644 index 0000000..e4d0e0f Binary files /dev/null and b/assets/voxygen/voxel/armor/ferocious/hand.vox differ diff --git a/assets/voxygen/voxel/armor/ferocious/pants.vox b/assets/voxygen/voxel/armor/ferocious/pants.vox new file mode 100644 index 0000000..1fc85d6 Binary files /dev/null and b/assets/voxygen/voxel/armor/ferocious/pants.vox differ diff --git a/assets/voxygen/voxel/armor/ferocious/shoulder.vox b/assets/voxygen/voxel/armor/ferocious/shoulder.vox new file mode 100644 index 0000000..3fb7ce5 Binary files /dev/null and b/assets/voxygen/voxel/armor/ferocious/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/golemite/golemite.vox b/assets/voxygen/voxel/armor/golemite/golemite.vox new file mode 100644 index 0000000..7272451 Binary files /dev/null and b/assets/voxygen/voxel/armor/golemite/golemite.vox differ diff --git a/assets/voxygen/voxel/armor/hide/carapace/back.vox b/assets/voxygen/voxel/armor/hide/carapace/back.vox new file mode 100644 index 0000000..1066243 Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/carapace/back.vox differ diff --git a/assets/voxygen/voxel/armor/hide/carapace/belt.vox b/assets/voxygen/voxel/armor/hide/carapace/belt.vox new file mode 100644 index 0000000..2786538 Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/carapace/belt.vox differ diff --git a/assets/voxygen/voxel/armor/hide/carapace/chest.vox b/assets/voxygen/voxel/armor/hide/carapace/chest.vox new file mode 100644 index 0000000..ad9fb0b Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/carapace/chest.vox differ diff --git a/assets/voxygen/voxel/armor/hide/carapace/foot.vox b/assets/voxygen/voxel/armor/hide/carapace/foot.vox new file mode 100644 index 0000000..79e8838 Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/carapace/foot.vox differ diff --git a/assets/voxygen/voxel/armor/hide/carapace/hand.vox b/assets/voxygen/voxel/armor/hide/carapace/hand.vox new file mode 100644 index 0000000..41ad4c4 Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/carapace/hand.vox differ diff --git a/assets/voxygen/voxel/armor/hide/carapace/pants.vox b/assets/voxygen/voxel/armor/hide/carapace/pants.vox new file mode 100644 index 0000000..6e288aa Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/carapace/pants.vox differ diff --git a/assets/voxygen/voxel/armor/hide/carapace/shoulder.vox b/assets/voxygen/voxel/armor/hide/carapace/shoulder.vox new file mode 100644 index 0000000..ce6af04 Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/carapace/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/hide/dragonscale/back.vox b/assets/voxygen/voxel/armor/hide/dragonscale/back.vox new file mode 100644 index 0000000..2a7bcbe Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/dragonscale/back.vox differ diff --git a/assets/voxygen/voxel/armor/hide/dragonscale/belt.vox b/assets/voxygen/voxel/armor/hide/dragonscale/belt.vox new file mode 100644 index 0000000..3ecb3c4 Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/dragonscale/belt.vox differ diff --git a/assets/voxygen/voxel/armor/hide/dragonscale/chest.vox b/assets/voxygen/voxel/armor/hide/dragonscale/chest.vox new file mode 100644 index 0000000..7d8c573 Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/dragonscale/chest.vox differ diff --git a/assets/voxygen/voxel/armor/hide/dragonscale/foot.vox b/assets/voxygen/voxel/armor/hide/dragonscale/foot.vox new file mode 100644 index 0000000..7352e69 Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/dragonscale/foot.vox differ diff --git a/assets/voxygen/voxel/armor/hide/dragonscale/hand.vox b/assets/voxygen/voxel/armor/hide/dragonscale/hand.vox new file mode 100644 index 0000000..c725be6 Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/dragonscale/hand.vox differ diff --git a/assets/voxygen/voxel/armor/hide/dragonscale/pants.vox b/assets/voxygen/voxel/armor/hide/dragonscale/pants.vox new file mode 100644 index 0000000..60fd05f Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/dragonscale/pants.vox differ diff --git a/assets/voxygen/voxel/armor/hide/dragonscale/shoulder.vox b/assets/voxygen/voxel/armor/hide/dragonscale/shoulder.vox new file mode 100644 index 0000000..dd5e609 Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/dragonscale/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/hide/leather/back.vox b/assets/voxygen/voxel/armor/hide/leather/back.vox new file mode 100644 index 0000000..b04ade0 Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/leather/back.vox differ diff --git a/assets/voxygen/voxel/armor/hide/leather/belt.vox b/assets/voxygen/voxel/armor/hide/leather/belt.vox new file mode 100644 index 0000000..ffbf92b Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/leather/belt.vox differ diff --git a/assets/voxygen/voxel/armor/hide/leather/chest.vox b/assets/voxygen/voxel/armor/hide/leather/chest.vox new file mode 100644 index 0000000..ab1f713 Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/leather/chest.vox differ diff --git a/assets/voxygen/voxel/armor/hide/leather/foot.vox b/assets/voxygen/voxel/armor/hide/leather/foot.vox new file mode 100644 index 0000000..a8f033f Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/leather/foot.vox differ diff --git a/assets/voxygen/voxel/armor/hide/leather/hand.vox b/assets/voxygen/voxel/armor/hide/leather/hand.vox new file mode 100644 index 0000000..10f2b0d Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/leather/hand.vox differ diff --git a/assets/voxygen/voxel/armor/hide/leather/pants.vox b/assets/voxygen/voxel/armor/hide/leather/pants.vox new file mode 100644 index 0000000..b1f1ca1 Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/leather/pants.vox differ diff --git a/assets/voxygen/voxel/armor/hide/leather/shoulder.vox b/assets/voxygen/voxel/armor/hide/leather/shoulder.vox new file mode 100644 index 0000000..ac86b23 Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/leather/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/hide/primal/back.vox b/assets/voxygen/voxel/armor/hide/primal/back.vox new file mode 100644 index 0000000..d1b3869 Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/primal/back.vox differ diff --git a/assets/voxygen/voxel/armor/hide/primal/belt.vox b/assets/voxygen/voxel/armor/hide/primal/belt.vox new file mode 100644 index 0000000..9b9befa Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/primal/belt.vox differ diff --git a/assets/voxygen/voxel/armor/hide/primal/chest.vox b/assets/voxygen/voxel/armor/hide/primal/chest.vox new file mode 100644 index 0000000..c66aa99 Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/primal/chest.vox differ diff --git a/assets/voxygen/voxel/armor/hide/primal/foot.vox b/assets/voxygen/voxel/armor/hide/primal/foot.vox new file mode 100644 index 0000000..ecd5679 Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/primal/foot.vox differ diff --git a/assets/voxygen/voxel/armor/hide/primal/hand.vox b/assets/voxygen/voxel/armor/hide/primal/hand.vox new file mode 100644 index 0000000..f1b9a57 Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/primal/hand.vox differ diff --git a/assets/voxygen/voxel/armor/hide/primal/pants.vox b/assets/voxygen/voxel/armor/hide/primal/pants.vox new file mode 100644 index 0000000..ca42554 Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/primal/pants.vox differ diff --git a/assets/voxygen/voxel/armor/hide/primal/shoulder.vox b/assets/voxygen/voxel/armor/hide/primal/shoulder.vox new file mode 100644 index 0000000..c095263 Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/primal/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/hide/rawhide/back.vox b/assets/voxygen/voxel/armor/hide/rawhide/back.vox new file mode 100644 index 0000000..2e939ec Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/rawhide/back.vox differ diff --git a/assets/voxygen/voxel/armor/hide/rawhide/belt.vox b/assets/voxygen/voxel/armor/hide/rawhide/belt.vox new file mode 100644 index 0000000..f23b51f Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/rawhide/belt.vox differ diff --git a/assets/voxygen/voxel/armor/hide/rawhide/chest.vox b/assets/voxygen/voxel/armor/hide/rawhide/chest.vox new file mode 100644 index 0000000..ac9882b Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/rawhide/chest.vox differ diff --git a/assets/voxygen/voxel/armor/hide/rawhide/foot.vox b/assets/voxygen/voxel/armor/hide/rawhide/foot.vox new file mode 100644 index 0000000..1d932ef Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/rawhide/foot.vox differ diff --git a/assets/voxygen/voxel/armor/hide/rawhide/hand.vox b/assets/voxygen/voxel/armor/hide/rawhide/hand.vox new file mode 100644 index 0000000..c380321 Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/rawhide/hand.vox differ diff --git a/assets/voxygen/voxel/armor/hide/rawhide/pants.vox b/assets/voxygen/voxel/armor/hide/rawhide/pants.vox new file mode 100644 index 0000000..63ab5eb Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/rawhide/pants.vox differ diff --git a/assets/voxygen/voxel/armor/hide/rawhide/shoulder.vox b/assets/voxygen/voxel/armor/hide/rawhide/shoulder.vox new file mode 100644 index 0000000..8d641b7 Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/rawhide/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/hide/scale/back.vox b/assets/voxygen/voxel/armor/hide/scale/back.vox new file mode 100644 index 0000000..e849dd0 Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/scale/back.vox differ diff --git a/assets/voxygen/voxel/armor/hide/scale/belt.vox b/assets/voxygen/voxel/armor/hide/scale/belt.vox new file mode 100644 index 0000000..2037c34 Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/scale/belt.vox differ diff --git a/assets/voxygen/voxel/armor/hide/scale/chest.vox b/assets/voxygen/voxel/armor/hide/scale/chest.vox new file mode 100644 index 0000000..dab4551 Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/scale/chest.vox differ diff --git a/assets/voxygen/voxel/armor/hide/scale/foot.vox b/assets/voxygen/voxel/armor/hide/scale/foot.vox new file mode 100644 index 0000000..752ea35 Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/scale/foot.vox differ diff --git a/assets/voxygen/voxel/armor/hide/scale/hand.vox b/assets/voxygen/voxel/armor/hide/scale/hand.vox new file mode 100644 index 0000000..faac5be Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/scale/hand.vox differ diff --git a/assets/voxygen/voxel/armor/hide/scale/pants.vox b/assets/voxygen/voxel/armor/hide/scale/pants.vox new file mode 100644 index 0000000..f62edc3 Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/scale/pants.vox differ diff --git a/assets/voxygen/voxel/armor/hide/scale/shoulder.vox b/assets/voxygen/voxel/armor/hide/scale/shoulder.vox new file mode 100644 index 0000000..48af06c Binary files /dev/null and b/assets/voxygen/voxel/armor/hide/scale/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/leather_blue/back.vox b/assets/voxygen/voxel/armor/leather_blue/back.vox new file mode 100644 index 0000000..638b73f Binary files /dev/null and b/assets/voxygen/voxel/armor/leather_blue/back.vox differ diff --git a/assets/voxygen/voxel/armor/leather_blue/chest.vox b/assets/voxygen/voxel/armor/leather_blue/chest.vox new file mode 100644 index 0000000..9750cb1 Binary files /dev/null and b/assets/voxygen/voxel/armor/leather_blue/chest.vox differ diff --git a/assets/voxygen/voxel/armor/leather_blue/pants.vox b/assets/voxygen/voxel/armor/leather_blue/pants.vox new file mode 100644 index 0000000..c5b1a13 Binary files /dev/null and b/assets/voxygen/voxel/armor/leather_blue/pants.vox differ diff --git a/assets/voxygen/voxel/armor/leather_plate/belt.vox b/assets/voxygen/voxel/armor/leather_plate/belt.vox new file mode 100644 index 0000000..d8161dc Binary files /dev/null and b/assets/voxygen/voxel/armor/leather_plate/belt.vox differ diff --git a/assets/voxygen/voxel/armor/leather_plate/chest.vox b/assets/voxygen/voxel/armor/leather_plate/chest.vox new file mode 100644 index 0000000..0da2fbb Binary files /dev/null and b/assets/voxygen/voxel/armor/leather_plate/chest.vox differ diff --git a/assets/voxygen/voxel/armor/leather_plate/foot.vox b/assets/voxygen/voxel/armor/leather_plate/foot.vox new file mode 100644 index 0000000..f4bfea2 Binary files /dev/null and b/assets/voxygen/voxel/armor/leather_plate/foot.vox differ diff --git a/assets/voxygen/voxel/armor/leather_plate/hand.vox b/assets/voxygen/voxel/armor/leather_plate/hand.vox new file mode 100644 index 0000000..e097aa7 Binary files /dev/null and b/assets/voxygen/voxel/armor/leather_plate/hand.vox differ diff --git a/assets/voxygen/voxel/armor/leather_plate/helmet_orc_m.vox b/assets/voxygen/voxel/armor/leather_plate/helmet_orc_m.vox new file mode 100644 index 0000000..70965cd Binary files /dev/null and b/assets/voxygen/voxel/armor/leather_plate/helmet_orc_m.vox differ diff --git a/assets/voxygen/voxel/armor/leather_plate/helmet_undead_m.vox b/assets/voxygen/voxel/armor/leather_plate/helmet_undead_m.vox new file mode 100644 index 0000000..1bd5684 Binary files /dev/null and b/assets/voxygen/voxel/armor/leather_plate/helmet_undead_m.vox differ diff --git a/assets/voxygen/voxel/armor/leather_plate/pants.vox b/assets/voxygen/voxel/armor/leather_plate/pants.vox new file mode 100644 index 0000000..ec0305f Binary files /dev/null and b/assets/voxygen/voxel/armor/leather_plate/pants.vox differ diff --git a/assets/voxygen/voxel/armor/leather_plate/shoulder.vox b/assets/voxygen/voxel/armor/leather_plate/shoulder.vox new file mode 100644 index 0000000..3f612c2 Binary files /dev/null and b/assets/voxygen/voxel/armor/leather_plate/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/mail/bloodsteel/back.vox b/assets/voxygen/voxel/armor/mail/bloodsteel/back.vox new file mode 100644 index 0000000..6ad59af Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/bloodsteel/back.vox differ diff --git a/assets/voxygen/voxel/armor/mail/bloodsteel/belt.vox b/assets/voxygen/voxel/armor/mail/bloodsteel/belt.vox new file mode 100644 index 0000000..409465b Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/bloodsteel/belt.vox differ diff --git a/assets/voxygen/voxel/armor/mail/bloodsteel/chest.vox b/assets/voxygen/voxel/armor/mail/bloodsteel/chest.vox new file mode 100644 index 0000000..4c3e065 Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/bloodsteel/chest.vox differ diff --git a/assets/voxygen/voxel/armor/mail/bloodsteel/foot.vox b/assets/voxygen/voxel/armor/mail/bloodsteel/foot.vox new file mode 100644 index 0000000..98d0d30 Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/bloodsteel/foot.vox differ diff --git a/assets/voxygen/voxel/armor/mail/bloodsteel/hand.vox b/assets/voxygen/voxel/armor/mail/bloodsteel/hand.vox new file mode 100644 index 0000000..45cbbcc Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/bloodsteel/hand.vox differ diff --git a/assets/voxygen/voxel/armor/mail/bloodsteel/pants.vox b/assets/voxygen/voxel/armor/mail/bloodsteel/pants.vox new file mode 100644 index 0000000..e38f17d Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/bloodsteel/pants.vox differ diff --git a/assets/voxygen/voxel/armor/mail/bloodsteel/shoulder.vox b/assets/voxygen/voxel/armor/mail/bloodsteel/shoulder.vox new file mode 100644 index 0000000..8525247 Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/bloodsteel/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/mail/bronze/back.vox b/assets/voxygen/voxel/armor/mail/bronze/back.vox new file mode 100644 index 0000000..a8872dd Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/bronze/back.vox differ diff --git a/assets/voxygen/voxel/armor/mail/bronze/belt.vox b/assets/voxygen/voxel/armor/mail/bronze/belt.vox new file mode 100644 index 0000000..7835aae Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/bronze/belt.vox differ diff --git a/assets/voxygen/voxel/armor/mail/bronze/chest.vox b/assets/voxygen/voxel/armor/mail/bronze/chest.vox new file mode 100644 index 0000000..b04b078 Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/bronze/chest.vox differ diff --git a/assets/voxygen/voxel/armor/mail/bronze/foot.vox b/assets/voxygen/voxel/armor/mail/bronze/foot.vox new file mode 100644 index 0000000..92d85fe Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/bronze/foot.vox differ diff --git a/assets/voxygen/voxel/armor/mail/bronze/hand.vox b/assets/voxygen/voxel/armor/mail/bronze/hand.vox new file mode 100644 index 0000000..0a5c5d7 Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/bronze/hand.vox differ diff --git a/assets/voxygen/voxel/armor/mail/bronze/pants.vox b/assets/voxygen/voxel/armor/mail/bronze/pants.vox new file mode 100644 index 0000000..7e802aa Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/bronze/pants.vox differ diff --git a/assets/voxygen/voxel/armor/mail/bronze/shoulder.vox b/assets/voxygen/voxel/armor/mail/bronze/shoulder.vox new file mode 100644 index 0000000..e1efdce Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/bronze/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/mail/cobalt/back.vox b/assets/voxygen/voxel/armor/mail/cobalt/back.vox new file mode 100644 index 0000000..f5044a2 Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/cobalt/back.vox differ diff --git a/assets/voxygen/voxel/armor/mail/cobalt/belt.vox b/assets/voxygen/voxel/armor/mail/cobalt/belt.vox new file mode 100644 index 0000000..fb52dc1 Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/cobalt/belt.vox differ diff --git a/assets/voxygen/voxel/armor/mail/cobalt/chest.vox b/assets/voxygen/voxel/armor/mail/cobalt/chest.vox new file mode 100644 index 0000000..52a5c39 Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/cobalt/chest.vox differ diff --git a/assets/voxygen/voxel/armor/mail/cobalt/foot.vox b/assets/voxygen/voxel/armor/mail/cobalt/foot.vox new file mode 100644 index 0000000..41b530f Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/cobalt/foot.vox differ diff --git a/assets/voxygen/voxel/armor/mail/cobalt/hand.vox b/assets/voxygen/voxel/armor/mail/cobalt/hand.vox new file mode 100644 index 0000000..db5e570 Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/cobalt/hand.vox differ diff --git a/assets/voxygen/voxel/armor/mail/cobalt/pants.vox b/assets/voxygen/voxel/armor/mail/cobalt/pants.vox new file mode 100644 index 0000000..d868a8b Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/cobalt/pants.vox differ diff --git a/assets/voxygen/voxel/armor/mail/cobalt/shoulder.vox b/assets/voxygen/voxel/armor/mail/cobalt/shoulder.vox new file mode 100644 index 0000000..9176445 Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/cobalt/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/mail/iron/back.vox b/assets/voxygen/voxel/armor/mail/iron/back.vox new file mode 100644 index 0000000..2e85835 Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/iron/back.vox differ diff --git a/assets/voxygen/voxel/armor/mail/iron/belt.vox b/assets/voxygen/voxel/armor/mail/iron/belt.vox new file mode 100644 index 0000000..9e0073f Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/iron/belt.vox differ diff --git a/assets/voxygen/voxel/armor/mail/iron/chest.vox b/assets/voxygen/voxel/armor/mail/iron/chest.vox new file mode 100644 index 0000000..2e30238 Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/iron/chest.vox differ diff --git a/assets/voxygen/voxel/armor/mail/iron/foot.vox b/assets/voxygen/voxel/armor/mail/iron/foot.vox new file mode 100644 index 0000000..1e5d504 Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/iron/foot.vox differ diff --git a/assets/voxygen/voxel/armor/mail/iron/hand.vox b/assets/voxygen/voxel/armor/mail/iron/hand.vox new file mode 100644 index 0000000..5f630f7 Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/iron/hand.vox differ diff --git a/assets/voxygen/voxel/armor/mail/iron/pants.vox b/assets/voxygen/voxel/armor/mail/iron/pants.vox new file mode 100644 index 0000000..55e0dfb Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/iron/pants.vox differ diff --git a/assets/voxygen/voxel/armor/mail/iron/shoulder.vox b/assets/voxygen/voxel/armor/mail/iron/shoulder.vox new file mode 100644 index 0000000..4decbaf Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/iron/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/mail/orichalcum.vox b/assets/voxygen/voxel/armor/mail/orichalcum.vox new file mode 100644 index 0000000..56be70d Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/orichalcum.vox differ diff --git a/assets/voxygen/voxel/armor/mail/steel/back.vox b/assets/voxygen/voxel/armor/mail/steel/back.vox new file mode 100644 index 0000000..c1fe07a Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/steel/back.vox differ diff --git a/assets/voxygen/voxel/armor/mail/steel/belt.vox b/assets/voxygen/voxel/armor/mail/steel/belt.vox new file mode 100644 index 0000000..aef6b1c Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/steel/belt.vox differ diff --git a/assets/voxygen/voxel/armor/mail/steel/chest.vox b/assets/voxygen/voxel/armor/mail/steel/chest.vox new file mode 100644 index 0000000..81cf4eb Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/steel/chest.vox differ diff --git a/assets/voxygen/voxel/armor/mail/steel/foot.vox b/assets/voxygen/voxel/armor/mail/steel/foot.vox new file mode 100644 index 0000000..3a34a55 Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/steel/foot.vox differ diff --git a/assets/voxygen/voxel/armor/mail/steel/hand.vox b/assets/voxygen/voxel/armor/mail/steel/hand.vox new file mode 100644 index 0000000..1ee7faf Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/steel/hand.vox differ diff --git a/assets/voxygen/voxel/armor/mail/steel/pants.vox b/assets/voxygen/voxel/armor/mail/steel/pants.vox new file mode 100644 index 0000000..2e0e349 Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/steel/pants.vox differ diff --git a/assets/voxygen/voxel/armor/mail/steel/shoulder.vox b/assets/voxygen/voxel/armor/mail/steel/shoulder.vox new file mode 100644 index 0000000..5578b50 Binary files /dev/null and b/assets/voxygen/voxel/armor/mail/steel/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/merchant/back.vox b/assets/voxygen/voxel/armor/merchant/back.vox new file mode 100644 index 0000000..f231fbd Binary files /dev/null and b/assets/voxygen/voxel/armor/merchant/back.vox differ diff --git a/assets/voxygen/voxel/armor/merchant/belt.vox b/assets/voxygen/voxel/armor/merchant/belt.vox new file mode 100644 index 0000000..d636bca Binary files /dev/null and b/assets/voxygen/voxel/armor/merchant/belt.vox differ diff --git a/assets/voxygen/voxel/armor/merchant/chest.vox b/assets/voxygen/voxel/armor/merchant/chest.vox new file mode 100644 index 0000000..b95be43 Binary files /dev/null and b/assets/voxygen/voxel/armor/merchant/chest.vox differ diff --git a/assets/voxygen/voxel/armor/merchant/foot.vox b/assets/voxygen/voxel/armor/merchant/foot.vox new file mode 100644 index 0000000..6ff9cfb Binary files /dev/null and b/assets/voxygen/voxel/armor/merchant/foot.vox differ diff --git a/assets/voxygen/voxel/armor/merchant/hand.vox b/assets/voxygen/voxel/armor/merchant/hand.vox new file mode 100644 index 0000000..6cb1e88 Binary files /dev/null and b/assets/voxygen/voxel/armor/merchant/hand.vox differ diff --git a/assets/voxygen/voxel/armor/merchant/pants.vox b/assets/voxygen/voxel/armor/merchant/pants.vox new file mode 100644 index 0000000..dc9cc1d Binary files /dev/null and b/assets/voxygen/voxel/armor/merchant/pants.vox differ diff --git a/assets/voxygen/voxel/armor/merchant/shoulder_l.vox b/assets/voxygen/voxel/armor/merchant/shoulder_l.vox new file mode 100644 index 0000000..d2df1be Binary files /dev/null and b/assets/voxygen/voxel/armor/merchant/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/armor/merchant/turban.vox b/assets/voxygen/voxel/armor/merchant/turban.vox new file mode 100644 index 0000000..415715d Binary files /dev/null and b/assets/voxygen/voxel/armor/merchant/turban.vox differ diff --git a/assets/voxygen/voxel/armor/miner/chest.vox b/assets/voxygen/voxel/armor/miner/chest.vox new file mode 100644 index 0000000..cf1b3ba Binary files /dev/null and b/assets/voxygen/voxel/armor/miner/chest.vox differ diff --git a/assets/voxygen/voxel/armor/miner/helmet.vox b/assets/voxygen/voxel/armor/miner/helmet.vox new file mode 100644 index 0000000..27b2809 Binary files /dev/null and b/assets/voxygen/voxel/armor/miner/helmet.vox differ diff --git a/assets/voxygen/voxel/armor/miner/pants.vox b/assets/voxygen/voxel/armor/miner/pants.vox new file mode 100644 index 0000000..8f08d9c Binary files /dev/null and b/assets/voxygen/voxel/armor/miner/pants.vox differ diff --git a/assets/voxygen/voxel/armor/miner/shoulder_captain.vox b/assets/voxygen/voxel/armor/miner/shoulder_captain.vox new file mode 100644 index 0000000..31415aa Binary files /dev/null and b/assets/voxygen/voxel/armor/miner/shoulder_captain.vox differ diff --git a/assets/voxygen/voxel/armor/miner/shoulder_flame.vox b/assets/voxygen/voxel/armor/miner/shoulder_flame.vox new file mode 100644 index 0000000..6e3f67e Binary files /dev/null and b/assets/voxygen/voxel/armor/miner/shoulder_flame.vox differ diff --git a/assets/voxygen/voxel/armor/miner/shoulder_overseer.vox b/assets/voxygen/voxel/armor/miner/shoulder_overseer.vox new file mode 100644 index 0000000..a13abf1 Binary files /dev/null and b/assets/voxygen/voxel/armor/miner/shoulder_overseer.vox differ diff --git a/assets/voxygen/voxel/armor/misc/back/admin.vox b/assets/voxygen/voxel/armor/misc/back/admin.vox new file mode 100644 index 0000000..bc33678 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/back/admin.vox differ diff --git a/assets/voxygen/voxel/armor/misc/back/backpack-grey.vox b/assets/voxygen/voxel/armor/misc/back/backpack-grey.vox new file mode 100644 index 0000000..60e4568 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/back/backpack-grey.vox differ diff --git a/assets/voxygen/voxel/armor/misc/back/backpack.vox b/assets/voxygen/voxel/armor/misc/back/backpack.vox new file mode 100644 index 0000000..32e7785 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/back/backpack.vox differ diff --git a/assets/voxygen/voxel/armor/misc/back/dungeon_purple.vox b/assets/voxygen/voxel/armor/misc/back/dungeon_purple.vox new file mode 100644 index 0000000..539e48b Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/back/dungeon_purple.vox differ diff --git a/assets/voxygen/voxel/armor/misc/back/short-0.vox b/assets/voxygen/voxel/armor/misc/back/short-0.vox new file mode 100644 index 0000000..cb79363 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/back/short-0.vox differ diff --git a/assets/voxygen/voxel/armor/misc/back/short-1.vox b/assets/voxygen/voxel/armor/misc/back/short-1.vox new file mode 100644 index 0000000..3a9258b Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/back/short-1.vox differ diff --git a/assets/voxygen/voxel/armor/misc/bag/admin_black_hole.vox b/assets/voxygen/voxel/armor/misc/bag/admin_black_hole.vox new file mode 100644 index 0000000..3e13e3e Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/bag/admin_black_hole.vox differ diff --git a/assets/voxygen/voxel/armor/misc/bag/heavy_seabag.vox b/assets/voxygen/voxel/armor/misc/bag/heavy_seabag.vox new file mode 100644 index 0000000..7872ac4 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/bag/heavy_seabag.vox differ diff --git a/assets/voxygen/voxel/armor/misc/bag/knitted_red_pouch.vox b/assets/voxygen/voxel/armor/misc/bag/knitted_red_pouch.vox new file mode 100644 index 0000000..a73a516 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/bag/knitted_red_pouch.vox differ diff --git a/assets/voxygen/voxel/armor/misc/bag/liana_kit.vox b/assets/voxygen/voxel/armor/misc/bag/liana_kit.vox new file mode 100644 index 0000000..962caab Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/bag/liana_kit.vox differ diff --git a/assets/voxygen/voxel/armor/misc/bag/mindflayer_spellbag.vox b/assets/voxygen/voxel/armor/misc/bag/mindflayer_spellbag.vox new file mode 100644 index 0000000..09fa583 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/bag/mindflayer_spellbag.vox differ diff --git a/assets/voxygen/voxel/armor/misc/bag/reliable_backpack.vox b/assets/voxygen/voxel/armor/misc/bag/reliable_backpack.vox new file mode 100644 index 0000000..077648a Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/bag/reliable_backpack.vox differ diff --git a/assets/voxygen/voxel/armor/misc/bag/reliable_leather_pack.vox b/assets/voxygen/voxel/armor/misc/bag/reliable_leather_pack.vox new file mode 100644 index 0000000..077648a Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/bag/reliable_leather_pack.vox differ diff --git a/assets/voxygen/voxel/armor/misc/bag/soulkeeper_cursed.vox b/assets/voxygen/voxel/armor/misc/bag/soulkeeper_cursed.vox new file mode 100644 index 0000000..431bece Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/bag/soulkeeper_cursed.vox differ diff --git a/assets/voxygen/voxel/armor/misc/bag/soulkeeper_pure.vox b/assets/voxygen/voxel/armor/misc/bag/soulkeeper_pure.vox new file mode 100644 index 0000000..63c5ac4 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/bag/soulkeeper_pure.vox differ diff --git a/assets/voxygen/voxel/armor/misc/bag/sturdy_red_backpack.vox b/assets/voxygen/voxel/armor/misc/bag/sturdy_red_backpack.vox new file mode 100644 index 0000000..0af1946 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/bag/sturdy_red_backpack.vox differ diff --git a/assets/voxygen/voxel/armor/misc/bag/tiny_leather_pouch.vox b/assets/voxygen/voxel/armor/misc/bag/tiny_leather_pouch.vox new file mode 100644 index 0000000..5fe049e Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/bag/tiny_leather_pouch.vox differ diff --git a/assets/voxygen/voxel/armor/misc/bag/tiny_red_pouch.vox b/assets/voxygen/voxel/armor/misc/bag/tiny_red_pouch.vox new file mode 100644 index 0000000..aed84d1 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/bag/tiny_red_pouch.vox differ diff --git a/assets/voxygen/voxel/armor/misc/bag/troll_hide_pack.vox b/assets/voxygen/voxel/armor/misc/bag/troll_hide_pack.vox new file mode 100644 index 0000000..76e07ea Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/bag/troll_hide_pack.vox differ diff --git a/assets/voxygen/voxel/armor/misc/bag/woven_red_bag.vox b/assets/voxygen/voxel/armor/misc/bag/woven_red_bag.vox new file mode 100644 index 0000000..6252eee Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/bag/woven_red_bag.vox differ diff --git a/assets/voxygen/voxel/armor/misc/belt/cloth_black.vox b/assets/voxygen/voxel/armor/misc/belt/cloth_black.vox new file mode 100644 index 0000000..3cd87df Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/belt/cloth_black.vox differ diff --git a/assets/voxygen/voxel/armor/misc/belt/cloth_blood.vox b/assets/voxygen/voxel/armor/misc/belt/cloth_blood.vox new file mode 100644 index 0000000..1c0221b Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/belt/cloth_blood.vox differ diff --git a/assets/voxygen/voxel/armor/misc/belt/cloth_grey.vox b/assets/voxygen/voxel/armor/misc/belt/cloth_grey.vox new file mode 100644 index 0000000..d2a2a00 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/belt/cloth_grey.vox differ diff --git a/assets/voxygen/voxel/armor/misc/belt/cloth_turq.vox b/assets/voxygen/voxel/armor/misc/belt/cloth_turq.vox new file mode 100644 index 0000000..6c8df8e Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/belt/cloth_turq.vox differ diff --git a/assets/voxygen/voxel/armor/misc/belt/dark.vox b/assets/voxygen/voxel/armor/misc/belt/dark.vox new file mode 100644 index 0000000..2a19853 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/belt/dark.vox differ diff --git a/assets/voxygen/voxel/armor/misc/belt/none.vox b/assets/voxygen/voxel/armor/misc/belt/none.vox new file mode 100644 index 0000000..718588d Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/belt/none.vox differ diff --git a/assets/voxygen/voxel/armor/misc/chest/cloth_red_kimono.vox b/assets/voxygen/voxel/armor/misc/chest/cloth_red_kimono.vox new file mode 100644 index 0000000..1a864e2 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/chest/cloth_red_kimono.vox differ diff --git a/assets/voxygen/voxel/armor/misc/chest/grayscale.vox b/assets/voxygen/voxel/armor/misc/chest/grayscale.vox new file mode 100644 index 0000000..00c0669 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/chest/grayscale.vox differ diff --git a/assets/voxygen/voxel/armor/misc/chest/none.vox b/assets/voxygen/voxel/armor/misc/chest/none.vox new file mode 100644 index 0000000..487ae46 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/chest/none.vox differ diff --git a/assets/voxygen/voxel/armor/misc/chest/plate_grey.vox b/assets/voxygen/voxel/armor/misc/chest/plate_grey.vox new file mode 100644 index 0000000..99c9efa Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/chest/plate_grey.vox differ diff --git a/assets/voxygen/voxel/armor/misc/chest/shirt_white.vox b/assets/voxygen/voxel/armor/misc/chest/shirt_white.vox new file mode 100644 index 0000000..2eff740 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/chest/shirt_white.vox differ diff --git a/assets/voxygen/voxel/armor/misc/chest/worker_green.vox b/assets/voxygen/voxel/armor/misc/chest/worker_green.vox new file mode 100644 index 0000000..3cee348 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/chest/worker_green.vox differ diff --git a/assets/voxygen/voxel/armor/misc/chest/worker_purp_brown.vox b/assets/voxygen/voxel/armor/misc/chest/worker_purp_brown.vox new file mode 100644 index 0000000..bd5a6af Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/chest/worker_purp_brown.vox differ diff --git a/assets/voxygen/voxel/armor/misc/chest/worker_red.vox b/assets/voxygen/voxel/armor/misc/chest/worker_red.vox new file mode 100644 index 0000000..1e95b1f Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/chest/worker_red.vox differ diff --git a/assets/voxygen/voxel/armor/misc/chest/worker_white.vox b/assets/voxygen/voxel/armor/misc/chest/worker_white.vox new file mode 100644 index 0000000..78c7a95 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/chest/worker_white.vox differ diff --git a/assets/voxygen/voxel/armor/misc/foot/cloth_sandal.vox b/assets/voxygen/voxel/armor/misc/foot/cloth_sandal.vox new file mode 100644 index 0000000..1dbf11d Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/foot/cloth_sandal.vox differ diff --git a/assets/voxygen/voxel/armor/misc/foot/dark.vox b/assets/voxygen/voxel/armor/misc/foot/dark.vox new file mode 100644 index 0000000..cf8bff4 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/foot/dark.vox differ diff --git a/assets/voxygen/voxel/armor/misc/foot/dark_jester_elf.vox b/assets/voxygen/voxel/armor/misc/foot/dark_jester_elf.vox new file mode 100644 index 0000000..e6b78c1 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/foot/dark_jester_elf.vox differ diff --git a/assets/voxygen/voxel/armor/misc/foot/iceskate.vox b/assets/voxygen/voxel/armor/misc/foot/iceskate.vox new file mode 100644 index 0000000..6355a0d Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/foot/iceskate.vox differ diff --git a/assets/voxygen/voxel/armor/misc/foot/jackalope.vox b/assets/voxygen/voxel/armor/misc/foot/jackalope.vox new file mode 100644 index 0000000..e9a0399 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/foot/jackalope.vox differ diff --git a/assets/voxygen/voxel/armor/misc/foot/none.vox b/assets/voxygen/voxel/armor/misc/foot/none.vox new file mode 100644 index 0000000..8f7aabd Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/foot/none.vox differ diff --git a/assets/voxygen/voxel/armor/misc/foot/ski.vox b/assets/voxygen/voxel/armor/misc/foot/ski.vox new file mode 100644 index 0000000..bd71a67 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/foot/ski.vox differ diff --git a/assets/voxygen/voxel/armor/misc/hand/bare.vox b/assets/voxygen/voxel/armor/misc/hand/bare.vox new file mode 100644 index 0000000..bab8663 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/hand/bare.vox differ diff --git a/assets/voxygen/voxel/armor/misc/hand/cloth_basic.vox b/assets/voxygen/voxel/armor/misc/hand/cloth_basic.vox new file mode 100644 index 0000000..a8755ff Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/hand/cloth_basic.vox differ diff --git a/assets/voxygen/voxel/armor/misc/hand/none.vox b/assets/voxygen/voxel/armor/misc/hand/none.vox new file mode 100644 index 0000000..e38acb4 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/hand/none.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/assa_mask-0.vox b/assets/voxygen/voxel/armor/misc/head/assa_mask-0.vox new file mode 100644 index 0000000..b033a0c Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/assa_mask-0.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/bamboo_twig.vox b/assets/voxygen/voxel/armor/misc/head/bamboo_twig.vox new file mode 100644 index 0000000..9b9a0e1 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/bamboo_twig.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/bandana/red.vox b/assets/voxygen/voxel/armor/misc/head/bandana/red.vox new file mode 100644 index 0000000..6247ab0 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/bandana/red.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/bandana/thief.vox b/assets/voxygen/voxel/armor/misc/head/bandana/thief.vox new file mode 100644 index 0000000..1cdfe57 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/bandana/thief.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/bear_bonnet.vox b/assets/voxygen/voxel/armor/misc/head/bear_bonnet.vox new file mode 100644 index 0000000..05d324d Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/bear_bonnet.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/boreal_warhelm.vox b/assets/voxygen/voxel/armor/misc/head/boreal_warhelm.vox new file mode 100755 index 0000000..1e68a7c Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/boreal_warhelm.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/cat_capuche.vox b/assets/voxygen/voxel/armor/misc/head/cat_capuche.vox new file mode 100644 index 0000000..862f259 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/cat_capuche.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/crown.vox b/assets/voxygen/voxel/armor/misc/head/crown.vox new file mode 100644 index 0000000..78c0b0a Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/crown.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/exclamation.vox b/assets/voxygen/voxel/armor/misc/head/exclamation.vox new file mode 100644 index 0000000..6e666e0 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/exclamation.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/facegourd.vox b/assets/voxygen/voxel/armor/misc/head/facegourd.vox new file mode 100644 index 0000000..9c548d8 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/facegourd.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/gnarling_mask.vox b/assets/voxygen/voxel/armor/misc/head/gnarling_mask.vox new file mode 100644 index 0000000..4c4ee7c Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/gnarling_mask.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/gnarling_mask_drop.vox b/assets/voxygen/voxel/armor/misc/head/gnarling_mask_drop.vox new file mode 100644 index 0000000..4b55619 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/gnarling_mask_drop.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/hare_hat.vox b/assets/voxygen/voxel/armor/misc/head/hare_hat.vox new file mode 100644 index 0000000..ab099f4 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/hare_hat.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/headband/danari_f.vox b/assets/voxygen/voxel/armor/misc/head/headband/danari_f.vox new file mode 100644 index 0000000..9586c7f Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/headband/danari_f.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/headband/danari_m.vox b/assets/voxygen/voxel/armor/misc/head/headband/danari_m.vox new file mode 100644 index 0000000..28c453a Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/headband/danari_m.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/headband/dwarf_f.vox b/assets/voxygen/voxel/armor/misc/head/headband/dwarf_f.vox new file mode 100644 index 0000000..a4ab558 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/headband/dwarf_f.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/headband/dwarf_m.vox b/assets/voxygen/voxel/armor/misc/head/headband/dwarf_m.vox new file mode 100644 index 0000000..3aeea80 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/headband/dwarf_m.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/headband/elf_f.vox b/assets/voxygen/voxel/armor/misc/head/headband/elf_f.vox new file mode 100644 index 0000000..4792f15 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/headband/elf_f.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/headband/elf_m.vox b/assets/voxygen/voxel/armor/misc/head/headband/elf_m.vox new file mode 100644 index 0000000..8542ccf Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/headband/elf_m.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/headband/human_f.vox b/assets/voxygen/voxel/armor/misc/head/headband/human_f.vox new file mode 100644 index 0000000..05d9c16 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/headband/human_f.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/headband/human_m.vox b/assets/voxygen/voxel/armor/misc/head/headband/human_m.vox new file mode 100644 index 0000000..a82a84c Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/headband/human_m.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/headband/orc_f.vox b/assets/voxygen/voxel/armor/misc/head/headband/orc_f.vox new file mode 100644 index 0000000..620fe21 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/headband/orc_f.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/headband/orc_m.vox b/assets/voxygen/voxel/armor/misc/head/headband/orc_m.vox new file mode 100644 index 0000000..1b7730e Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/headband/orc_m.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/headband/undead_f.vox b/assets/voxygen/voxel/armor/misc/head/headband/undead_f.vox new file mode 100644 index 0000000..5c1971a Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/headband/undead_f.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/headband/undead_m.vox b/assets/voxygen/voxel/armor/misc/head/headband/undead_m.vox new file mode 100644 index 0000000..8f91d7c Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/headband/undead_m.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/helmet.vox b/assets/voxygen/voxel/armor/misc/head/helmet.vox new file mode 100644 index 0000000..ff001bf Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/helmet.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/helmet_orc_m.vox b/assets/voxygen/voxel/armor/misc/head/helmet_orc_m.vox new file mode 100644 index 0000000..69543be Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/helmet_orc_m.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/hog_hood.vox b/assets/voxygen/voxel/armor/misc/head/hog_hood.vox new file mode 100644 index 0000000..5493147 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/hog_hood.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/hood.vox b/assets/voxygen/voxel/armor/misc/head/hood.vox new file mode 100644 index 0000000..f8e5833 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/hood.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/hood_dark.vox b/assets/voxygen/voxel/armor/misc/head/hood_dark.vox new file mode 100755 index 0000000..2ab95ea Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/hood_dark.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/howl_cowl.vox b/assets/voxygen/voxel/armor/misc/head/howl_cowl.vox new file mode 100644 index 0000000..94361e9 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/howl_cowl.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/leather-0.vox b/assets/voxygen/voxel/armor/misc/head/leather-0.vox new file mode 100644 index 0000000..2b2bf51 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/leather-0.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/mitre.vox b/assets/voxygen/voxel/armor/misc/head/mitre.vox new file mode 100644 index 0000000..fdff75b Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/mitre.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/scarlet_spectacles/draugr.vox b/assets/voxygen/voxel/armor/misc/head/scarlet_spectacles/draugr.vox new file mode 100644 index 0000000..408b75f Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/scarlet_spectacles/draugr.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/scarlet_spectacles/general.vox b/assets/voxygen/voxel/armor/misc/head/scarlet_spectacles/general.vox new file mode 100644 index 0000000..81b2fcd Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/scarlet_spectacles/general.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/scarlet_spectacles/orc.vox b/assets/voxygen/voxel/armor/misc/head/scarlet_spectacles/orc.vox new file mode 100644 index 0000000..7073d5c Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/scarlet_spectacles/orc.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/scarlet_spectacles/scarlet_spectacles.vox b/assets/voxygen/voxel/armor/misc/head/scarlet_spectacles/scarlet_spectacles.vox new file mode 100644 index 0000000..11851ed Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/scarlet_spectacles/scarlet_spectacles.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/spikeguard.vox b/assets/voxygen/voxel/armor/misc/head/spikeguard.vox new file mode 100644 index 0000000..b0b8512 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/spikeguard.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/straw.vox b/assets/voxygen/voxel/armor/misc/head/straw.vox new file mode 100644 index 0000000..5603ddd Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/straw.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/wanderers_hat.vox b/assets/voxygen/voxel/armor/misc/head/wanderers_hat.vox new file mode 100644 index 0000000..724b0ff Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/wanderers_hat.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/warlock.vox b/assets/voxygen/voxel/armor/misc/head/warlock.vox new file mode 100644 index 0000000..c161f86 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/warlock.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/warlord.vox b/assets/voxygen/voxel/armor/misc/head/warlord.vox new file mode 100644 index 0000000..375cafd Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/warlord.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/winged_coronet.vox b/assets/voxygen/voxel/armor/misc/head/winged_coronet.vox new file mode 100755 index 0000000..4fbcc4a Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/winged_coronet.vox differ diff --git a/assets/voxygen/voxel/armor/misc/head/woolly_wintercap.vox b/assets/voxygen/voxel/armor/misc/head/woolly_wintercap.vox new file mode 100755 index 0000000..0adad9a Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/head/woolly_wintercap.vox differ diff --git a/assets/voxygen/voxel/armor/misc/neck/abyssal_gorget.vox b/assets/voxygen/voxel/armor/misc/neck/abyssal_gorget.vox new file mode 100644 index 0000000..a8d312d Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/neck/abyssal_gorget.vox differ diff --git a/assets/voxygen/voxel/armor/misc/neck/amethyst.vox b/assets/voxygen/voxel/armor/misc/neck/amethyst.vox new file mode 100644 index 0000000..ab545f2 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/neck/amethyst.vox differ diff --git a/assets/voxygen/voxel/armor/misc/neck/ankh_of_life.vox b/assets/voxygen/voxel/armor/misc/neck/ankh_of_life.vox new file mode 100644 index 0000000..13cc747 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/neck/ankh_of_life.vox differ diff --git a/assets/voxygen/voxel/armor/misc/neck/carcanet_of_wrath.vox b/assets/voxygen/voxel/armor/misc/neck/carcanet_of_wrath.vox new file mode 100644 index 0000000..42382fc Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/neck/carcanet_of_wrath.vox differ diff --git a/assets/voxygen/voxel/armor/misc/neck/diamond.vox b/assets/voxygen/voxel/armor/misc/neck/diamond.vox new file mode 100644 index 0000000..6933606 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/neck/diamond.vox differ diff --git a/assets/voxygen/voxel/armor/misc/neck/emerald.vox b/assets/voxygen/voxel/armor/misc/neck/emerald.vox new file mode 100644 index 0000000..4f3c59b Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/neck/emerald.vox differ diff --git a/assets/voxygen/voxel/armor/misc/neck/fang.vox b/assets/voxygen/voxel/armor/misc/neck/fang.vox new file mode 100644 index 0000000..37bc571 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/neck/fang.vox differ diff --git a/assets/voxygen/voxel/armor/misc/neck/gold.vox b/assets/voxygen/voxel/armor/misc/neck/gold.vox new file mode 100644 index 0000000..af8f79b Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/neck/gold.vox differ diff --git a/assets/voxygen/voxel/armor/misc/neck/haniwa_talisman.vox b/assets/voxygen/voxel/armor/misc/neck/haniwa_talisman.vox new file mode 100644 index 0000000..dd699f8 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/neck/haniwa_talisman.vox differ diff --git a/assets/voxygen/voxel/armor/misc/neck/honeycomb_pendant.vox b/assets/voxygen/voxel/armor/misc/neck/honeycomb_pendant.vox new file mode 100644 index 0000000..e167731 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/neck/honeycomb_pendant.vox differ diff --git a/assets/voxygen/voxel/armor/misc/neck/pendant_of_protection.vox b/assets/voxygen/voxel/armor/misc/neck/pendant_of_protection.vox new file mode 100644 index 0000000..af1a057 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/neck/pendant_of_protection.vox differ diff --git a/assets/voxygen/voxel/armor/misc/neck/resilience_gem.vox b/assets/voxygen/voxel/armor/misc/neck/resilience_gem.vox new file mode 100644 index 0000000..1d1e25e Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/neck/resilience_gem.vox differ diff --git a/assets/voxygen/voxel/armor/misc/neck/ruby.vox b/assets/voxygen/voxel/armor/misc/neck/ruby.vox new file mode 100644 index 0000000..f495ea1 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/neck/ruby.vox differ diff --git a/assets/voxygen/voxel/armor/misc/neck/sapphire.vox b/assets/voxygen/voxel/armor/misc/neck/sapphire.vox new file mode 100644 index 0000000..267d174 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/neck/sapphire.vox differ diff --git a/assets/voxygen/voxel/armor/misc/neck/scratched.vox b/assets/voxygen/voxel/armor/misc/neck/scratched.vox new file mode 100644 index 0000000..97cf910 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/neck/scratched.vox differ diff --git a/assets/voxygen/voxel/armor/misc/neck/shell.vox b/assets/voxygen/voxel/armor/misc/neck/shell.vox new file mode 100644 index 0000000..16db6d8 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/neck/shell.vox differ diff --git a/assets/voxygen/voxel/armor/misc/neck/topaz.vox b/assets/voxygen/voxel/armor/misc/neck/topaz.vox new file mode 100644 index 0000000..e6bd92d Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/neck/topaz.vox differ diff --git a/assets/voxygen/voxel/armor/misc/pants/cloth_red_kimono.vox b/assets/voxygen/voxel/armor/misc/pants/cloth_red_kimono.vox new file mode 100644 index 0000000..07a6ea9 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/pants/cloth_red_kimono.vox differ diff --git a/assets/voxygen/voxel/armor/misc/pants/grayscale.vox b/assets/voxygen/voxel/armor/misc/pants/grayscale.vox new file mode 100644 index 0000000..5e6417f Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/pants/grayscale.vox differ diff --git a/assets/voxygen/voxel/armor/misc/pants/none.vox b/assets/voxygen/voxel/armor/misc/pants/none.vox new file mode 100644 index 0000000..f2c8d41 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/pants/none.vox differ diff --git a/assets/voxygen/voxel/armor/misc/pants/plate_grey.vox b/assets/voxygen/voxel/armor/misc/pants/plate_grey.vox new file mode 100644 index 0000000..8a671a4 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/pants/plate_grey.vox differ diff --git a/assets/voxygen/voxel/armor/misc/pants/worker_blue.vox b/assets/voxygen/voxel/armor/misc/pants/worker_blue.vox new file mode 100644 index 0000000..c936903 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/pants/worker_blue.vox differ diff --git a/assets/voxygen/voxel/armor/misc/pants/worker_brown.vox b/assets/voxygen/voxel/armor/misc/pants/worker_brown.vox new file mode 100644 index 0000000..dae51df Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/pants/worker_brown.vox differ diff --git a/assets/voxygen/voxel/armor/misc/ring/abyssal_ring.vox b/assets/voxygen/voxel/armor/misc/ring/abyssal_ring.vox new file mode 100644 index 0000000..84dd4f3 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/ring/abyssal_ring.vox differ diff --git a/assets/voxygen/voxel/armor/misc/ring/amethyst.vox b/assets/voxygen/voxel/armor/misc/ring/amethyst.vox new file mode 100644 index 0000000..e333103 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/ring/amethyst.vox differ diff --git a/assets/voxygen/voxel/armor/misc/ring/diamond.vox b/assets/voxygen/voxel/armor/misc/ring/diamond.vox new file mode 100644 index 0000000..d2922bb Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/ring/diamond.vox differ diff --git a/assets/voxygen/voxel/armor/misc/ring/emerald.vox b/assets/voxygen/voxel/armor/misc/ring/emerald.vox new file mode 100644 index 0000000..b95aac3 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/ring/emerald.vox differ diff --git a/assets/voxygen/voxel/armor/misc/ring/gold.vox b/assets/voxygen/voxel/armor/misc/ring/gold.vox new file mode 100644 index 0000000..4f693e9 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/ring/gold.vox differ diff --git a/assets/voxygen/voxel/armor/misc/ring/ruby.vox b/assets/voxygen/voxel/armor/misc/ring/ruby.vox new file mode 100644 index 0000000..7ab6ea0 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/ring/ruby.vox differ diff --git a/assets/voxygen/voxel/armor/misc/ring/sapphire.vox b/assets/voxygen/voxel/armor/misc/ring/sapphire.vox new file mode 100644 index 0000000..9dcb959 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/ring/sapphire.vox differ diff --git a/assets/voxygen/voxel/armor/misc/ring/scratched.vox b/assets/voxygen/voxel/armor/misc/ring/scratched.vox new file mode 100644 index 0000000..9b1e03c Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/ring/scratched.vox differ diff --git a/assets/voxygen/voxel/armor/misc/ring/topaz.vox b/assets/voxygen/voxel/armor/misc/ring/topaz.vox new file mode 100644 index 0000000..2741f7b Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/ring/topaz.vox differ diff --git a/assets/voxygen/voxel/armor/misc/shoulder/chain.vox b/assets/voxygen/voxel/armor/misc/shoulder/chain.vox new file mode 100644 index 0000000..1ba380e Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/shoulder/chain.vox differ diff --git a/assets/voxygen/voxel/armor/misc/shoulder/iron_spikes.vox b/assets/voxygen/voxel/armor/misc/shoulder/iron_spikes.vox new file mode 100644 index 0000000..cca6ba6 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/shoulder/iron_spikes.vox differ diff --git a/assets/voxygen/voxel/armor/misc/shoulder/leather_iron_0.vox b/assets/voxygen/voxel/armor/misc/shoulder/leather_iron_0.vox new file mode 100644 index 0000000..80123ef Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/shoulder/leather_iron_0.vox differ diff --git a/assets/voxygen/voxel/armor/misc/shoulder/leather_iron_1.vox b/assets/voxygen/voxel/armor/misc/shoulder/leather_iron_1.vox new file mode 100644 index 0000000..ea897cd Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/shoulder/leather_iron_1.vox differ diff --git a/assets/voxygen/voxel/armor/misc/shoulder/leather_iron_2.vox b/assets/voxygen/voxel/armor/misc/shoulder/leather_iron_2.vox new file mode 100644 index 0000000..cd6b536 Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/shoulder/leather_iron_2.vox differ diff --git a/assets/voxygen/voxel/armor/misc/shoulder/leather_iron_3.vox b/assets/voxygen/voxel/armor/misc/shoulder/leather_iron_3.vox new file mode 100644 index 0000000..33ddedf Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/shoulder/leather_iron_3.vox differ diff --git a/assets/voxygen/voxel/armor/misc/shoulder/leather_strip.vox b/assets/voxygen/voxel/armor/misc/shoulder/leather_strip.vox new file mode 100644 index 0000000..66aad3d Binary files /dev/null and b/assets/voxygen/voxel/armor/misc/shoulder/leather_strip.vox differ diff --git a/assets/voxygen/voxel/armor/pirate/belt.vox b/assets/voxygen/voxel/armor/pirate/belt.vox new file mode 100644 index 0000000..cce8856 Binary files /dev/null and b/assets/voxygen/voxel/armor/pirate/belt.vox differ diff --git a/assets/voxygen/voxel/armor/pirate/chest.vox b/assets/voxygen/voxel/armor/pirate/chest.vox new file mode 100644 index 0000000..bf018d9 Binary files /dev/null and b/assets/voxygen/voxel/armor/pirate/chest.vox differ diff --git a/assets/voxygen/voxel/armor/pirate/foot.vox b/assets/voxygen/voxel/armor/pirate/foot.vox new file mode 100644 index 0000000..54c2fe6 Binary files /dev/null and b/assets/voxygen/voxel/armor/pirate/foot.vox differ diff --git a/assets/voxygen/voxel/armor/pirate/hand.vox b/assets/voxygen/voxel/armor/pirate/hand.vox new file mode 100644 index 0000000..58d4479 Binary files /dev/null and b/assets/voxygen/voxel/armor/pirate/hand.vox differ diff --git a/assets/voxygen/voxel/armor/pirate/hat.vox b/assets/voxygen/voxel/armor/pirate/hat.vox new file mode 100644 index 0000000..dd19905 Binary files /dev/null and b/assets/voxygen/voxel/armor/pirate/hat.vox differ diff --git a/assets/voxygen/voxel/armor/pirate/pants.vox b/assets/voxygen/voxel/armor/pirate/pants.vox new file mode 100644 index 0000000..45fa5c5 Binary files /dev/null and b/assets/voxygen/voxel/armor/pirate/pants.vox differ diff --git a/assets/voxygen/voxel/armor/pirate/shoulder.vox b/assets/voxygen/voxel/armor/pirate/shoulder.vox new file mode 100644 index 0000000..9350536 Binary files /dev/null and b/assets/voxygen/voxel/armor/pirate/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/rugged/chest.vox b/assets/voxygen/voxel/armor/rugged/chest.vox new file mode 100644 index 0000000..98b0267 Binary files /dev/null and b/assets/voxygen/voxel/armor/rugged/chest.vox differ diff --git a/assets/voxygen/voxel/armor/rugged/pants.vox b/assets/voxygen/voxel/armor/rugged/pants.vox new file mode 100644 index 0000000..a5d26a1 Binary files /dev/null and b/assets/voxygen/voxel/armor/rugged/pants.vox differ diff --git a/assets/voxygen/voxel/armor/savage/back.vox b/assets/voxygen/voxel/armor/savage/back.vox new file mode 100644 index 0000000..c8ed83c Binary files /dev/null and b/assets/voxygen/voxel/armor/savage/back.vox differ diff --git a/assets/voxygen/voxel/armor/savage/belt.vox b/assets/voxygen/voxel/armor/savage/belt.vox new file mode 100644 index 0000000..6f26b6a Binary files /dev/null and b/assets/voxygen/voxel/armor/savage/belt.vox differ diff --git a/assets/voxygen/voxel/armor/savage/chest.vox b/assets/voxygen/voxel/armor/savage/chest.vox new file mode 100644 index 0000000..5987d9a Binary files /dev/null and b/assets/voxygen/voxel/armor/savage/chest.vox differ diff --git a/assets/voxygen/voxel/armor/savage/foot.vox b/assets/voxygen/voxel/armor/savage/foot.vox new file mode 100644 index 0000000..1ef779f Binary files /dev/null and b/assets/voxygen/voxel/armor/savage/foot.vox differ diff --git a/assets/voxygen/voxel/armor/savage/hand.vox b/assets/voxygen/voxel/armor/savage/hand.vox new file mode 100644 index 0000000..ea7fa83 Binary files /dev/null and b/assets/voxygen/voxel/armor/savage/hand.vox differ diff --git a/assets/voxygen/voxel/armor/savage/pants.vox b/assets/voxygen/voxel/armor/savage/pants.vox new file mode 100644 index 0000000..91ba609 Binary files /dev/null and b/assets/voxygen/voxel/armor/savage/pants.vox differ diff --git a/assets/voxygen/voxel/armor/savage/shoulder.vox b/assets/voxygen/voxel/armor/savage/shoulder.vox new file mode 100644 index 0000000..34546b7 Binary files /dev/null and b/assets/voxygen/voxel/armor/savage/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/tabard_admin.vox b/assets/voxygen/voxel/armor/tabard_admin.vox new file mode 100644 index 0000000..84320f1 Binary files /dev/null and b/assets/voxygen/voxel/armor/tabard_admin.vox differ diff --git a/assets/voxygen/voxel/armor/tarasque/belt.vox b/assets/voxygen/voxel/armor/tarasque/belt.vox new file mode 100644 index 0000000..8ce6f53 Binary files /dev/null and b/assets/voxygen/voxel/armor/tarasque/belt.vox differ diff --git a/assets/voxygen/voxel/armor/tarasque/chest.vox b/assets/voxygen/voxel/armor/tarasque/chest.vox new file mode 100644 index 0000000..e7ea44a Binary files /dev/null and b/assets/voxygen/voxel/armor/tarasque/chest.vox differ diff --git a/assets/voxygen/voxel/armor/tarasque/foot.vox b/assets/voxygen/voxel/armor/tarasque/foot.vox new file mode 100644 index 0000000..2e376c1 Binary files /dev/null and b/assets/voxygen/voxel/armor/tarasque/foot.vox differ diff --git a/assets/voxygen/voxel/armor/tarasque/hand.vox b/assets/voxygen/voxel/armor/tarasque/hand.vox new file mode 100644 index 0000000..cdcae93 Binary files /dev/null and b/assets/voxygen/voxel/armor/tarasque/hand.vox differ diff --git a/assets/voxygen/voxel/armor/tarasque/pants.vox b/assets/voxygen/voxel/armor/tarasque/pants.vox new file mode 100644 index 0000000..60272e7 Binary files /dev/null and b/assets/voxygen/voxel/armor/tarasque/pants.vox differ diff --git a/assets/voxygen/voxel/armor/tarasque/shoulder.vox b/assets/voxygen/voxel/armor/tarasque/shoulder.vox new file mode 100644 index 0000000..c84958a Binary files /dev/null and b/assets/voxygen/voxel/armor/tarasque/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/twigs/belt.vox b/assets/voxygen/voxel/armor/twigs/belt.vox new file mode 100644 index 0000000..0788ae5 Binary files /dev/null and b/assets/voxygen/voxel/armor/twigs/belt.vox differ diff --git a/assets/voxygen/voxel/armor/twigs/chest.vox b/assets/voxygen/voxel/armor/twigs/chest.vox new file mode 100644 index 0000000..979b175 Binary files /dev/null and b/assets/voxygen/voxel/armor/twigs/chest.vox differ diff --git a/assets/voxygen/voxel/armor/twigs/foot.vox b/assets/voxygen/voxel/armor/twigs/foot.vox new file mode 100644 index 0000000..933ac0b Binary files /dev/null and b/assets/voxygen/voxel/armor/twigs/foot.vox differ diff --git a/assets/voxygen/voxel/armor/twigs/hand.vox b/assets/voxygen/voxel/armor/twigs/hand.vox new file mode 100644 index 0000000..98e764d Binary files /dev/null and b/assets/voxygen/voxel/armor/twigs/hand.vox differ diff --git a/assets/voxygen/voxel/armor/twigs/pants.vox b/assets/voxygen/voxel/armor/twigs/pants.vox new file mode 100644 index 0000000..bd8a7f0 Binary files /dev/null and b/assets/voxygen/voxel/armor/twigs/pants.vox differ diff --git a/assets/voxygen/voxel/armor/twigs/shoulder.vox b/assets/voxygen/voxel/armor/twigs/shoulder.vox new file mode 100644 index 0000000..75caca5 Binary files /dev/null and b/assets/voxygen/voxel/armor/twigs/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/twigsflowers/belt.vox b/assets/voxygen/voxel/armor/twigsflowers/belt.vox new file mode 100644 index 0000000..65f9fa1 Binary files /dev/null and b/assets/voxygen/voxel/armor/twigsflowers/belt.vox differ diff --git a/assets/voxygen/voxel/armor/twigsflowers/chest.vox b/assets/voxygen/voxel/armor/twigsflowers/chest.vox new file mode 100644 index 0000000..53292fa Binary files /dev/null and b/assets/voxygen/voxel/armor/twigsflowers/chest.vox differ diff --git a/assets/voxygen/voxel/armor/twigsflowers/foot.vox b/assets/voxygen/voxel/armor/twigsflowers/foot.vox new file mode 100644 index 0000000..26a07e6 Binary files /dev/null and b/assets/voxygen/voxel/armor/twigsflowers/foot.vox differ diff --git a/assets/voxygen/voxel/armor/twigsflowers/hand.vox b/assets/voxygen/voxel/armor/twigsflowers/hand.vox new file mode 100644 index 0000000..6f409f6 Binary files /dev/null and b/assets/voxygen/voxel/armor/twigsflowers/hand.vox differ diff --git a/assets/voxygen/voxel/armor/twigsflowers/pants.vox b/assets/voxygen/voxel/armor/twigsflowers/pants.vox new file mode 100644 index 0000000..05d97e2 Binary files /dev/null and b/assets/voxygen/voxel/armor/twigsflowers/pants.vox differ diff --git a/assets/voxygen/voxel/armor/twigsflowers/shoulder.vox b/assets/voxygen/voxel/armor/twigsflowers/shoulder.vox new file mode 100644 index 0000000..dbca675 Binary files /dev/null and b/assets/voxygen/voxel/armor/twigsflowers/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/twigsleaves/belt.vox b/assets/voxygen/voxel/armor/twigsleaves/belt.vox new file mode 100644 index 0000000..0bc0976 Binary files /dev/null and b/assets/voxygen/voxel/armor/twigsleaves/belt.vox differ diff --git a/assets/voxygen/voxel/armor/twigsleaves/chest.vox b/assets/voxygen/voxel/armor/twigsleaves/chest.vox new file mode 100644 index 0000000..7c74ad5 Binary files /dev/null and b/assets/voxygen/voxel/armor/twigsleaves/chest.vox differ diff --git a/assets/voxygen/voxel/armor/twigsleaves/foot.vox b/assets/voxygen/voxel/armor/twigsleaves/foot.vox new file mode 100644 index 0000000..a560749 Binary files /dev/null and b/assets/voxygen/voxel/armor/twigsleaves/foot.vox differ diff --git a/assets/voxygen/voxel/armor/twigsleaves/hand.vox b/assets/voxygen/voxel/armor/twigsleaves/hand.vox new file mode 100644 index 0000000..bda45de Binary files /dev/null and b/assets/voxygen/voxel/armor/twigsleaves/hand.vox differ diff --git a/assets/voxygen/voxel/armor/twigsleaves/pants.vox b/assets/voxygen/voxel/armor/twigsleaves/pants.vox new file mode 100644 index 0000000..270aa4c Binary files /dev/null and b/assets/voxygen/voxel/armor/twigsleaves/pants.vox differ diff --git a/assets/voxygen/voxel/armor/twigsleaves/shoulder.vox b/assets/voxygen/voxel/armor/twigsleaves/shoulder.vox new file mode 100644 index 0000000..b7a5b2c Binary files /dev/null and b/assets/voxygen/voxel/armor/twigsleaves/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/velorite_battlemage/back.vox b/assets/voxygen/voxel/armor/velorite_battlemage/back.vox new file mode 100644 index 0000000..28719e6 Binary files /dev/null and b/assets/voxygen/voxel/armor/velorite_battlemage/back.vox differ diff --git a/assets/voxygen/voxel/armor/velorite_battlemage/belt.vox b/assets/voxygen/voxel/armor/velorite_battlemage/belt.vox new file mode 100644 index 0000000..673684f Binary files /dev/null and b/assets/voxygen/voxel/armor/velorite_battlemage/belt.vox differ diff --git a/assets/voxygen/voxel/armor/velorite_battlemage/chest-0.vox b/assets/voxygen/voxel/armor/velorite_battlemage/chest-0.vox new file mode 100644 index 0000000..862b310 Binary files /dev/null and b/assets/voxygen/voxel/armor/velorite_battlemage/chest-0.vox differ diff --git a/assets/voxygen/voxel/armor/velorite_battlemage/chest.vox b/assets/voxygen/voxel/armor/velorite_battlemage/chest.vox new file mode 100644 index 0000000..ab67c0a Binary files /dev/null and b/assets/voxygen/voxel/armor/velorite_battlemage/chest.vox differ diff --git a/assets/voxygen/voxel/armor/velorite_battlemage/foot.vox b/assets/voxygen/voxel/armor/velorite_battlemage/foot.vox new file mode 100644 index 0000000..b96e32b Binary files /dev/null and b/assets/voxygen/voxel/armor/velorite_battlemage/foot.vox differ diff --git a/assets/voxygen/voxel/armor/velorite_battlemage/hand-0.vox b/assets/voxygen/voxel/armor/velorite_battlemage/hand-0.vox new file mode 100644 index 0000000..bcbd592 Binary files /dev/null and b/assets/voxygen/voxel/armor/velorite_battlemage/hand-0.vox differ diff --git a/assets/voxygen/voxel/armor/velorite_battlemage/hand.vox b/assets/voxygen/voxel/armor/velorite_battlemage/hand.vox new file mode 100644 index 0000000..f877782 Binary files /dev/null and b/assets/voxygen/voxel/armor/velorite_battlemage/hand.vox differ diff --git a/assets/voxygen/voxel/armor/velorite_battlemage/hat.vox b/assets/voxygen/voxel/armor/velorite_battlemage/hat.vox new file mode 100644 index 0000000..86ec122 Binary files /dev/null and b/assets/voxygen/voxel/armor/velorite_battlemage/hat.vox differ diff --git a/assets/voxygen/voxel/armor/velorite_battlemage/pants-0.vox b/assets/voxygen/voxel/armor/velorite_battlemage/pants-0.vox new file mode 100644 index 0000000..acf9658 Binary files /dev/null and b/assets/voxygen/voxel/armor/velorite_battlemage/pants-0.vox differ diff --git a/assets/voxygen/voxel/armor/velorite_battlemage/pants.vox b/assets/voxygen/voxel/armor/velorite_battlemage/pants.vox new file mode 100644 index 0000000..1d7ffc7 Binary files /dev/null and b/assets/voxygen/voxel/armor/velorite_battlemage/pants.vox differ diff --git a/assets/voxygen/voxel/armor/velorite_battlemage/shoulder-0.vox b/assets/voxygen/voxel/armor/velorite_battlemage/shoulder-0.vox new file mode 100644 index 0000000..edef02f Binary files /dev/null and b/assets/voxygen/voxel/armor/velorite_battlemage/shoulder-0.vox differ diff --git a/assets/voxygen/voxel/armor/velorite_battlemage/shoulder.vox b/assets/voxygen/voxel/armor/velorite_battlemage/shoulder.vox new file mode 100644 index 0000000..75e589a Binary files /dev/null and b/assets/voxygen/voxel/armor/velorite_battlemage/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/warlock/back.vox b/assets/voxygen/voxel/armor/warlock/back.vox new file mode 100644 index 0000000..31b47f2 Binary files /dev/null and b/assets/voxygen/voxel/armor/warlock/back.vox differ diff --git a/assets/voxygen/voxel/armor/warlock/belt.vox b/assets/voxygen/voxel/armor/warlock/belt.vox new file mode 100644 index 0000000..f8ef2b3 Binary files /dev/null and b/assets/voxygen/voxel/armor/warlock/belt.vox differ diff --git a/assets/voxygen/voxel/armor/warlock/chest.vox b/assets/voxygen/voxel/armor/warlock/chest.vox new file mode 100644 index 0000000..97d68c4 Binary files /dev/null and b/assets/voxygen/voxel/armor/warlock/chest.vox differ diff --git a/assets/voxygen/voxel/armor/warlock/foot.vox b/assets/voxygen/voxel/armor/warlock/foot.vox new file mode 100644 index 0000000..827d145 Binary files /dev/null and b/assets/voxygen/voxel/armor/warlock/foot.vox differ diff --git a/assets/voxygen/voxel/armor/warlock/hand.vox b/assets/voxygen/voxel/armor/warlock/hand.vox new file mode 100644 index 0000000..6ea6aa7 Binary files /dev/null and b/assets/voxygen/voxel/armor/warlock/hand.vox differ diff --git a/assets/voxygen/voxel/armor/warlock/pants.vox b/assets/voxygen/voxel/armor/warlock/pants.vox new file mode 100644 index 0000000..1e700f4 Binary files /dev/null and b/assets/voxygen/voxel/armor/warlock/pants.vox differ diff --git a/assets/voxygen/voxel/armor/warlock/spellbinder-set.vox b/assets/voxygen/voxel/armor/warlock/spellbinder-set.vox new file mode 100644 index 0000000..183f7a3 Binary files /dev/null and b/assets/voxygen/voxel/armor/warlock/spellbinder-set.vox differ diff --git a/assets/voxygen/voxel/armor/warlord/back.vox b/assets/voxygen/voxel/armor/warlord/back.vox new file mode 100644 index 0000000..31b47f2 Binary files /dev/null and b/assets/voxygen/voxel/armor/warlord/back.vox differ diff --git a/assets/voxygen/voxel/armor/warlord/belt.vox b/assets/voxygen/voxel/armor/warlord/belt.vox new file mode 100644 index 0000000..d89885a Binary files /dev/null and b/assets/voxygen/voxel/armor/warlord/belt.vox differ diff --git a/assets/voxygen/voxel/armor/warlord/chest.vox b/assets/voxygen/voxel/armor/warlord/chest.vox new file mode 100644 index 0000000..c9d9df5 Binary files /dev/null and b/assets/voxygen/voxel/armor/warlord/chest.vox differ diff --git a/assets/voxygen/voxel/armor/warlord/foot.vox b/assets/voxygen/voxel/armor/warlord/foot.vox new file mode 100644 index 0000000..827d145 Binary files /dev/null and b/assets/voxygen/voxel/armor/warlord/foot.vox differ diff --git a/assets/voxygen/voxel/armor/warlord/hand.vox b/assets/voxygen/voxel/armor/warlord/hand.vox new file mode 100644 index 0000000..d0b10e6 Binary files /dev/null and b/assets/voxygen/voxel/armor/warlord/hand.vox differ diff --git a/assets/voxygen/voxel/armor/warlord/pants.vox b/assets/voxygen/voxel/armor/warlord/pants.vox new file mode 100644 index 0000000..ad4e6c6 Binary files /dev/null and b/assets/voxygen/voxel/armor/warlord/pants.vox differ diff --git a/assets/voxygen/voxel/armor/warlord/shoulder.vox b/assets/voxygen/voxel/armor/warlord/shoulder.vox new file mode 100644 index 0000000..add60e1 Binary files /dev/null and b/assets/voxygen/voxel/armor/warlord/shoulder.vox differ diff --git a/assets/voxygen/voxel/armor/witch/back.vox b/assets/voxygen/voxel/armor/witch/back.vox new file mode 100644 index 0000000..7f1d426 Binary files /dev/null and b/assets/voxygen/voxel/armor/witch/back.vox differ diff --git a/assets/voxygen/voxel/armor/witch/belt.vox b/assets/voxygen/voxel/armor/witch/belt.vox new file mode 100644 index 0000000..323982f Binary files /dev/null and b/assets/voxygen/voxel/armor/witch/belt.vox differ diff --git a/assets/voxygen/voxel/armor/witch/chest.vox b/assets/voxygen/voxel/armor/witch/chest.vox new file mode 100644 index 0000000..0c60e0b Binary files /dev/null and b/assets/voxygen/voxel/armor/witch/chest.vox differ diff --git a/assets/voxygen/voxel/armor/witch/foot.vox b/assets/voxygen/voxel/armor/witch/foot.vox new file mode 100644 index 0000000..41e5674 Binary files /dev/null and b/assets/voxygen/voxel/armor/witch/foot.vox differ diff --git a/assets/voxygen/voxel/armor/witch/hand.vox b/assets/voxygen/voxel/armor/witch/hand.vox new file mode 100644 index 0000000..fa00688 Binary files /dev/null and b/assets/voxygen/voxel/armor/witch/hand.vox differ diff --git a/assets/voxygen/voxel/armor/witch/hat.vox b/assets/voxygen/voxel/armor/witch/hat.vox new file mode 100644 index 0000000..4491a21 Binary files /dev/null and b/assets/voxygen/voxel/armor/witch/hat.vox differ diff --git a/assets/voxygen/voxel/armor/witch/pants.vox b/assets/voxygen/voxel/armor/witch/pants.vox new file mode 100644 index 0000000..b23c4d4 Binary files /dev/null and b/assets/voxygen/voxel/armor/witch/pants.vox differ diff --git a/assets/voxygen/voxel/armor/witch/shoulder.vox b/assets/voxygen/voxel/armor/witch/shoulder.vox new file mode 100644 index 0000000..5efd301 Binary files /dev/null and b/assets/voxygen/voxel/armor/witch/shoulder.vox differ diff --git a/assets/voxygen/voxel/arthropod_central_manifest.ron b/assets/voxygen/voxel/arthropod_central_manifest.ron new file mode 100644 index 0000000..d1f5f70 --- /dev/null +++ b/assets/voxygen/voxel/arthropod_central_manifest.ron @@ -0,0 +1,262 @@ +({ + (Tarantula, Male): ( + head: ( + offset: (-4.5, 0.0, -2.5), + central: ("npc.tarantula.male.head"), + ), + chest: ( + offset: (-5.5, -7.0, -4.0), + central: ("npc.tarantula.male.chest"), + ), + ), + (Tarantula, Female): ( + head: ( + offset: (-4.5, 0.0, -2.5), + central: ("npc.tarantula.male.head"), + ), + chest: ( + offset: (-5.5, -7.0, -4.0), + central: ("npc.tarantula.male.chest"), + ), + ), + (Blackwidow, Male): ( + head: ( + offset: (-4.5, 0.0, -3.0), + central: ("npc.black_widow.male.head"), + ), + chest: ( + offset: (-4.5, -7.5, -6.0), + central: ("npc.black_widow.male.chest"), + ), + ), + (Blackwidow, Female): ( + head: ( + offset: (-4.5, 0.0, -3.0), + central: ("npc.black_widow.male.head"), + ), + chest: ( + offset: (-4.5, -7.5, -6.0), + central: ("npc.black_widow.male.chest"), + ), + ), + (Antlion, Male): ( + head: ( + offset: (-6.5, 0.0, -5.5), + central: ("npc.antlion.male.head"), + ), + chest: ( + offset: (-5.5, -7.5, -5.5), + central: ("npc.antlion.male.chest"), + ), + ), + (Antlion, Female): ( + head: ( + offset: (-6.5, 0.0, -5.5), + central: ("npc.antlion.male.head"), + ), + chest: ( + offset: (-5.5, -7.5, -5.5), + central: ("npc.antlion.male.chest"), + ), + ), + (Hornbeetle, Male): ( + head: ( + offset: (-5.5, 0.0, -7.5), + central: ("npc.horn_beetle.male.head"), + ), + chest: ( + offset: (-4.5, -6.0, -3.5), + central: ("npc.horn_beetle.male.chest"), + ), + ), + (Hornbeetle, Female): ( + head: ( + offset: (-5.5, 0.0, -7.5), + central: ("npc.horn_beetle.male.head"), + ), + chest: ( + offset: (-4.5, -6.0, -3.5), + central: ("npc.horn_beetle.male.chest"), + ), + ), + (Leafbeetle, Male): ( + head: ( + offset: (-5.5, 0.0, -3.0), + central: ("npc.leaf_beetle.male.head"), + ), + chest: ( + offset: (-4.5, -5.0, -3.0), + central: ("npc.leaf_beetle.male.chest"), + ), + ), + (Leafbeetle, Female): ( + head: ( + offset: (-5.5, 0.0, -3.0), + central: ("npc.leaf_beetle.male.head"), + ), + chest: ( + offset: (-4.5, -5.0, -3.0), + central: ("npc.leaf_beetle.male.chest"), + ), + ), + (Stagbeetle, Male): ( + head: ( + offset: (-8.5, 0.0, -4.5), + central: ("npc.stag_beetle.male.head"), + ), + chest: ( + offset: (-4.5, -6.0, -3.5), + central: ("npc.stag_beetle.male.chest"), + ), + ), + (Stagbeetle, Female): ( + head: ( + offset: (-8.5, 0.0, -4.5), + central: ("npc.stag_beetle.male.head"), + ), + chest: ( + offset: (-4.5, -6.0, -3.5), + central: ("npc.stag_beetle.male.chest"), + ), + ), + (Weevil, Male): ( + head: ( + offset: (-4.5, 0.0, -3.0), + central: ("npc.weevil.male.head"), + ), + chest: ( + offset: (-4.5, -5.0, -3.0), + central: ("npc.weevil.male.chest"), + ), + ), + (Weevil, Female): ( + head: ( + offset: (-4.5, 0.0, -3.0), + central: ("npc.weevil.male.head"), + ), + chest: ( + offset: (-4.5, -5.0, -3.0), + central: ("npc.weevil.male.chest"), + ), + ), + (Cavespider, Male): ( + head: ( + offset: (-4.5, 0.0, -2.5), + central: ("npc.cave_spider.male.head"), + ), + chest: ( + offset: (-5.5, -7.0, -4.0), + central: ("npc.cave_spider.male.chest"), + ), + ), + (Cavespider, Female): ( + head: ( + offset: (-4.5, 0.0, -2.5), + central: ("npc.cave_spider.male.head"), + ), + chest: ( + offset: (-5.5, -7.0, -4.0), + central: ("npc.cave_spider.male.chest"), + ), + ), + (Moltencrawler, Male): ( + head: ( + offset: (-7.5, 0.0, -4.0), + central: ("npc.crawler_molten.male.head"), + ), + chest: ( + offset: (-4.5, -5.0, -5.0), + central: ("npc.crawler_molten.male.chest"), + ), + ), + (Moltencrawler, Female): ( + head: ( + offset: (-7.5, 0.0, -4.0), + central: ("npc.crawler_molten.male.head"), + ), + chest: ( + offset: (-4.5, -5.0, -5.0), + central: ("npc.crawler_molten.male.chest"), + ), + ), + (Mosscrawler, Male): ( + head: ( + offset: (-5.5, 0.0, -4.0), + central: ("npc.crawler_moss.male.head"), + ), + chest: ( + offset: (-3.5, -5.0, -5.5), + central: ("npc.crawler_moss.male.chest"), + ), + ), + (Mosscrawler, Female): ( + head: ( + offset: (-5.5, 0.0, -4.0), + central: ("npc.crawler_moss.male.head"), + ), + chest: ( + offset: (-3.5, -5.0, -5.5), + central: ("npc.crawler_moss.male.chest"), + ), + ), + (Sandcrawler, Male): ( + head: ( + offset: (-5.5, 0.0, -4.0), + central: ("npc.crawler_sand.male.head"), + ), + chest: ( + offset: (-3.5, -5.0, -5.0), + central: ("npc.crawler_sand.male.chest"), + ), + ), + (Sandcrawler, Female): ( + head: ( + offset: (-5.5, 0.0, -4.0), + central: ("npc.crawler_sand.male.head"), + ), + chest: ( + offset: (-3.5, -5.0, -5.0), + central: ("npc.crawler_sand.male.chest"), + ), + ), + (Dagonite, Male): ( + head: ( + offset: (-5.5, 0.0, -5.0), + central: ("npc.dagonite.male.head"), + ), + chest: ( + offset: (-4.5, -4.0, -5.5), + central: ("npc.dagonite.male.chest"), + ), + ), + (Dagonite, Female): ( + head: ( + offset: (-5.5, 0.0, -5.0), + central: ("npc.dagonite.male.head"), + ), + chest: ( + offset: (-4.5, -4.0, -5.5), + central: ("npc.dagonite.male.chest"), + ), + ), + (Emberfly, Male): ( + head: ( + offset: (-3.5, 5.5, -3.0), + central: ("npc.emberfly.male.head"), + ), + chest: ( + offset: (-2.5, -5.0, -3.5), + central: ("npc.emberfly.male.chest"), + ), + ), + (Emberfly, Female): ( + head: ( + offset: (-3.5, 5.5, -3.0), + central: ("npc.emberfly.male.head"), + ), + chest: ( + offset: (-2.5, -5.0, -3.5), + central: ("npc.emberfly.male.chest"), + ), + ), +}) diff --git a/assets/voxygen/voxel/arthropod_lateral_manifest.ron b/assets/voxygen/voxel/arthropod_lateral_manifest.ron new file mode 100644 index 0000000..81465a6 --- /dev/null +++ b/assets/voxygen/voxel/arthropod_lateral_manifest.ron @@ -0,0 +1,1510 @@ +({ + (Tarantula, Male): ( + mandible_l: ( + offset: (-1.0, 0.0, -4.0), + lateral: ("npc.tarantula.male.mandible_r"), + ), + mandible_r: ( + offset: (-1.0, 0.0, -4.0), + lateral: ("npc.tarantula.male.mandible_r"), + ), + wing_fl: ( + offset: (-6.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_fr: ( + offset: (0.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_bl: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + wing_br: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + leg_fl: ( + offset: (-1.5, 0.0, -4.5), + lateral: ("npc.tarantula.male.leg_fr"), + ), + leg_fr: ( + offset: (-1.5, 0.0, -4.5), + lateral: ("npc.tarantula.male.leg_fr"), + ), + leg_fcl: ( + offset: (-12.0, -1.5, -4.5), + lateral: ("npc.tarantula.male.leg_fcr"), + ), + leg_fcr: ( + offset: (0.0, -1.5, -4.5), + lateral: ("npc.tarantula.male.leg_fcr"), + ), + leg_bcl: ( + offset: (-13.0, -1.5, -4.5), + lateral: ("npc.tarantula.male.leg_bcr"), + ), + leg_bcr: ( + offset: (0.0, -1.5, -4.5), + lateral: ("npc.tarantula.male.leg_bcr"), + ), + leg_bl: ( + offset: (-12.0, -1.5, -4.5), + lateral: ("npc.tarantula.male.leg_br"), + ), + leg_br: ( + offset: (0.0, -1.5, -4.5), + lateral: ("npc.tarantula.male.leg_br"), + ), + ), + (Tarantula, Female): ( + mandible_l: ( + offset: (-1.0, 0.0, -4.0), + lateral: ("npc.tarantula.male.mandible_r"), + ), + mandible_r: ( + offset: (-1.0, 0.0, -4.0), + lateral: ("npc.tarantula.male.mandible_r"), + ), + wing_fl: ( + offset: (-6.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_fr: ( + offset: (0.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_bl: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + wing_br: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + leg_fl: ( + offset: (-1.5, 0.0, -4.5), + lateral: ("npc.tarantula.male.leg_fr"), + ), + leg_fr: ( + offset: (-1.5, 0.0, -4.5), + lateral: ("npc.tarantula.male.leg_fr"), + ), + leg_fcl: ( + offset: (-12.0, -1.5, -4.5), + lateral: ("npc.tarantula.male.leg_fcr"), + ), + leg_fcr: ( + offset: (0.0, -1.5, -4.5), + lateral: ("npc.tarantula.male.leg_fcr"), + ), + leg_bcl: ( + offset: (-13.0, -1.5, -4.5), + lateral: ("npc.tarantula.male.leg_bcr"), + ), + leg_bcr: ( + offset: (0.0, -1.5, -4.5), + lateral: ("npc.tarantula.male.leg_bcr"), + ), + leg_bl: ( + offset: (-12.0, -1.5, -4.5), + lateral: ("npc.tarantula.male.leg_br"), + ), + leg_br: ( + offset: (0.0, -1.5, -4.5), + lateral: ("npc.tarantula.male.leg_br"), + ), + ), + (Blackwidow, Male): ( + mandible_l: ( + offset: (0.0, 0.0, -3.0), + lateral: ("npc.black_widow.male.mandible_r"), + ), + mandible_r: ( + offset: (-2.0, 0.0, -3.0), + lateral: ("npc.black_widow.male.mandible_r"), + ), + wing_fl: ( + offset: (-6.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_fr: ( + offset: (0.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_bl: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + wing_br: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + leg_fl: ( + offset: (-0.5, -0.0, -4.0), + lateral: ("npc.black_widow.male.leg_fr"), + ), + leg_fr: ( + offset: (-0.5, -0.0, -4.0), + lateral: ("npc.black_widow.male.leg_fr"), + ), + leg_fcl: ( + offset: (-12.0, -0.5, -4.5), + lateral: ("npc.black_widow.male.leg_fcr"), + ), + leg_fcr: ( + offset: (0.0, -0.5, -4.5), + lateral: ("npc.black_widow.male.leg_fcr"), + ), + leg_bcl: ( + offset: (-15.0, -0.5, -4.5), + lateral: ("npc.black_widow.male.leg_bcr"), + ), + leg_bcr: ( + offset: (0.0, -0.5, -4.5), + lateral: ("npc.black_widow.male.leg_bcr"), + ), + leg_bl: ( + offset: (-12.0, -0.5, -4.5), + lateral: ("npc.black_widow.male.leg_br"), + ), + leg_br: ( + offset: (0.0, -0.5, -4.5), + lateral: ("npc.black_widow.male.leg_br"), + ), + ), + (Blackwidow, Female): ( + mandible_l: ( + offset: (0.0, 0.0, -3.0), + lateral: ("npc.black_widow.male.mandible_r"), + ), + mandible_r: ( + offset: (-2.0, 0.0, -3.0), + lateral: ("npc.black_widow.male.mandible_r"), + ), + wing_fl: ( + offset: (-6.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_fr: ( + offset: (0.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_bl: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + wing_br: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + leg_fl: ( + offset: (-0.5, -0.0, -4.0), + lateral: ("npc.black_widow.male.leg_fr"), + ), + leg_fr: ( + offset: (-0.5, -0.0, -4.0), + lateral: ("npc.black_widow.male.leg_fr"), + ), + leg_fcl: ( + offset: (-12.0, -0.5, -4.5), + lateral: ("npc.black_widow.male.leg_fcr"), + ), + leg_fcr: ( + offset: (0.0, -0.5, -4.5), + lateral: ("npc.black_widow.male.leg_fcr"), + ), + leg_bcl: ( + offset: (-15.0, -0.5, -4.5), + lateral: ("npc.black_widow.male.leg_bcr"), + ), + leg_bcr: ( + offset: (0.0, -0.5, -4.5), + lateral: ("npc.black_widow.male.leg_bcr"), + ), + leg_bl: ( + offset: (-12.0, -0.5, -4.5), + lateral: ("npc.black_widow.male.leg_br"), + ), + leg_br: ( + offset: (0.0, -0.5, -4.5), + lateral: ("npc.black_widow.male.leg_br"), + ), + ), + (Antlion, Male): ( + mandible_l: ( + offset: (0.0, 0.0, -1.0), + lateral: ("npc.antlion.male.mandible_r"), + ), + mandible_r: ( + offset: (-7.0, 0.0, -1.0), + lateral: ("npc.antlion.male.mandible_r"), + ), + wing_fl: ( + offset: (-6.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_fr: ( + offset: (0.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_bl: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + wing_br: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + leg_fl: ( + offset: (-0.5, 0.0, -4.5), + lateral: ("npc.antlion.male.leg_fr"), + ), + leg_fr: ( + offset: (-0.5, 0.0, -4.5), + lateral: ("npc.antlion.male.leg_fr"), + ), + leg_fcl: ( + offset: (-17.0, -0.5, -4.5), + lateral: ("npc.antlion.male.leg_fcr"), + ), + leg_fcr: ( + offset: (0.0, -0.5, -4.5), + lateral: ("npc.antlion.male.leg_fcr"), + ), + leg_bcl: ( + offset: (-0.5, -18.0, -4.5), + lateral: ("npc.antlion.male.leg_bcr"), + ), + leg_bcr: ( + offset: (-0.5, -18.0, -4.5), + lateral: ("npc.antlion.male.leg_bcr"), + ), + leg_bl: ( + offset: (-12.0, -1.5, -4.5), + lateral: ("armor.empty"), + ), + leg_br: ( + offset: (0.0, -1.5, -4.5), + lateral: ("armor.empty"), + ), + ), + (Antlion, Female): ( + mandible_l: ( + offset: (0.0, 0.0, -1.0), + lateral: ("npc.antlion.male.mandible_r"), + ), + mandible_r: ( + offset: (-7.0, 0.0, -1.0), + lateral: ("npc.antlion.male.mandible_r"), + ), + wing_fl: ( + offset: (-6.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_fr: ( + offset: (0.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_bl: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + wing_br: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + leg_fl: ( + offset: (-0.5, 0.0, -4.5), + lateral: ("npc.antlion.male.leg_fr"), + ), + leg_fr: ( + offset: (-0.5, 0.0, -4.5), + lateral: ("npc.antlion.male.leg_fr"), + ), + leg_fcl: ( + offset: (-17.0, -0.5, -4.5), + lateral: ("npc.antlion.male.leg_fcr"), + ), + leg_fcr: ( + offset: (0.0, -0.5, -4.5), + lateral: ("npc.antlion.male.leg_fcr"), + ), + leg_bcl: ( + offset: (-0.5, -18.0, -4.5), + lateral: ("npc.antlion.male.leg_bcr"), + ), + leg_bcr: ( + offset: (-0.5, -18.0, -4.5), + lateral: ("npc.antlion.male.leg_bcr"), + ), + leg_bl: ( + offset: (-12.0, -1.5, -4.5), + lateral: ("armor.empty"), + ), + leg_br: ( + offset: (0.0, -1.5, -4.5), + lateral: ("armor.empty"), + ), + ), + (Hornbeetle, Male): ( + mandible_l: ( + offset: (-1.0, 0.0, -4.0), + lateral: ("armor.empty"), + ), + mandible_r: ( + offset: (-1.0, 0.0, -4.0), + lateral: ("armor.empty"), + ), + wing_fl: ( + offset: (-0.0, -12.0, -3.5), + lateral: ("npc.horn_beetle.male.wing_fr"), + ), + wing_fr: ( + offset: (-5.0, -12.0, -3.5), + lateral: ("npc.horn_beetle.male.wing_fr"), + ), + wing_bl: ( + offset: (-0.0, -12.0, -0.5), + lateral: ("npc.horn_beetle.male.wing_br"), + ), + wing_br: ( + offset: (-4.0, -12.0, -0.5), + lateral: ("npc.horn_beetle.male.wing_br"), + ), + leg_fl: ( + offset: (-1.5, 0.0, -4.5), + lateral: ("npc.horn_beetle.male.leg_fr"), + ), + leg_fr: ( + offset: (-1.5, 0.0, -4.5), + lateral: ("npc.horn_beetle.male.leg_fr"), + ), + leg_fcl: ( + offset: (-12.0, -1.5, -4.5), + lateral: ("npc.horn_beetle.male.leg_fcr"), + ), + leg_fcr: ( + offset: (0.0, -1.5, -4.5), + lateral: ("npc.horn_beetle.male.leg_fcr"), + ), + leg_bcl: ( + offset: (-1.5, -14.0, -4.5), + lateral: ("npc.horn_beetle.male.leg_bcr"), + ), + leg_bcr: ( + offset: (-1.5, -14.0, -4.5), + lateral: ("npc.horn_beetle.male.leg_bcr"), + ), + leg_bl: ( + offset: (-12.0, -1.5, -4.5), + lateral: ("armor.empty"), + ), + leg_br: ( + offset: (0.0, -1.5, -4.5), + lateral: ("armor.empty"), + ), + ), + (Hornbeetle, Female): ( + mandible_l: ( + offset: (-1.0, 0.0, -4.0), + lateral: ("armor.empty"), + ), + mandible_r: ( + offset: (-1.0, 0.0, -4.0), + lateral: ("armor.empty"), + ), + wing_fl: ( + offset: (-0.0, -12.0, -3.5), + lateral: ("npc.horn_beetle.male.wing_fr"), + ), + wing_fr: ( + offset: (-5.0, -12.0, -3.5), + lateral: ("npc.horn_beetle.male.wing_fr"), + ), + wing_bl: ( + offset: (-0.0, -12.0, -0.5), + lateral: ("npc.horn_beetle.male.wing_br"), + ), + wing_br: ( + offset: (-4.0, -12.0, -0.5), + lateral: ("npc.horn_beetle.male.wing_br"), + ), + leg_fl: ( + offset: (-1.5, 0.0, -4.5), + lateral: ("npc.horn_beetle.male.leg_fr"), + ), + leg_fr: ( + offset: (-1.5, 0.0, -4.5), + lateral: ("npc.horn_beetle.male.leg_fr"), + ), + leg_fcl: ( + offset: (-12.0, -1.5, -4.5), + lateral: ("npc.horn_beetle.male.leg_fcr"), + ), + leg_fcr: ( + offset: (0.0, -1.5, -4.5), + lateral: ("npc.horn_beetle.male.leg_fcr"), + ), + leg_bcl: ( + offset: (-1.5, -14.0, -4.5), + lateral: ("npc.horn_beetle.male.leg_bcr"), + ), + leg_bcr: ( + offset: (-1.5, -14.0, -4.5), + lateral: ("npc.horn_beetle.male.leg_bcr"), + ), + leg_bl: ( + offset: (-12.0, -1.5, -4.5), + lateral: ("armor.empty"), + ), + leg_br: ( + offset: (0.0, -1.5, -4.5), + lateral: ("armor.empty"), + ), + ), + (Leafbeetle, Male): ( + mandible_l: ( + offset: (-1.0, 0.0, -4.0), + lateral: ("armor.empty"), + ), + mandible_r: ( + offset: (-1.0, 0.0, -4.0), + lateral: ("armor.empty"), + ), + wing_fl: ( + offset: (-7.0, -14.0, -4.0), + lateral: ("npc.leaf_beetle.male.wing_fr"), + ), + wing_fr: ( + offset: (-0.0, -14.0, -4.0), + lateral: ("npc.leaf_beetle.male.wing_fr"), + ), + wing_bl: ( + offset: (-4.0, -8.0, -0.5), + lateral: ("npc.leaf_beetle.male.wing_br"), + ), + wing_br: ( + offset: (-0.0, -8.0, -0.5), + lateral: ("npc.leaf_beetle.male.wing_br"), + ), + leg_fl: ( + offset: (-1.5, 0.0, -5.0), + lateral: ("npc.leaf_beetle.male.leg_fr"), + ), + leg_fr: ( + offset: (-1.5, 0.0, -5.0), + lateral: ("npc.leaf_beetle.male.leg_fr"), + ), + leg_fcl: ( + offset: (-9.0, -1.5, -4.5), + lateral: ("npc.leaf_beetle.male.leg_fcr"), + ), + leg_fcr: ( + offset: (-0.0, -1.5, -4.5), + lateral: ("npc.leaf_beetle.male.leg_fcr"), + ), + leg_bcl: ( + offset: (-1.5, -11.0, -3.5), + lateral: ("npc.leaf_beetle.male.leg_bcr"), + ), + leg_bcr: ( + offset: (-1.5, -11.0, -3.5), + lateral: ("npc.leaf_beetle.male.leg_bcr"), + ), + leg_bl: ( + offset: (-12.0, -1.5, -4.5), + lateral: ("armor.empty"), + ), + leg_br: ( + offset: (0.0, -1.5, -4.5), + lateral: ("armor.empty"), + ), + ), + (Leafbeetle, Female): ( + mandible_l: ( + offset: (-1.0, 0.0, -4.0), + lateral: ("armor.empty"), + ), + mandible_r: ( + offset: (-1.0, 0.0, -4.0), + lateral: ("armor.empty"), + ), + wing_fl: ( + offset: (-7.0, -14.0, -4.0), + lateral: ("npc.leaf_beetle.male.wing_fr"), + ), + wing_fr: ( + offset: (-0.0, -14.0, -4.0), + lateral: ("npc.leaf_beetle.male.wing_fr"), + ), + wing_bl: ( + offset: (-4.0, -8.0, -0.5), + lateral: ("npc.leaf_beetle.male.wing_br"), + ), + wing_br: ( + offset: (-0.0, -8.0, -0.5), + lateral: ("npc.leaf_beetle.male.wing_br"), + ), + leg_fl: ( + offset: (-1.5, 0.0, -5.0), + lateral: ("npc.leaf_beetle.male.leg_fr"), + ), + leg_fr: ( + offset: (-1.5, 0.0, -5.0), + lateral: ("npc.leaf_beetle.male.leg_fr"), + ), + leg_fcl: ( + offset: (-9.0, -1.5, -4.5), + lateral: ("npc.leaf_beetle.male.leg_fcr"), + ), + leg_fcr: ( + offset: (-0.0, -1.5, -4.5), + lateral: ("npc.leaf_beetle.male.leg_fcr"), + ), + leg_bcl: ( + offset: (-1.5, -11.0, -3.5), + lateral: ("npc.leaf_beetle.male.leg_bcr"), + ), + leg_bcr: ( + offset: (-1.5, -11.0, -3.5), + lateral: ("npc.leaf_beetle.male.leg_bcr"), + ), + leg_bl: ( + offset: (-12.0, -1.5, -4.5), + lateral: ("armor.empty"), + ), + leg_br: ( + offset: (0.0, -1.5, -4.5), + lateral: ("armor.empty"), + ), + ), + (Stagbeetle, Male): ( + mandible_l: ( + offset: (-7.0, -0.0, -1.5), + lateral: ("npc.stag_beetle.male.mandible_r"), + ), + mandible_r: ( + offset: (-0.0, -0.0, -1.5), + lateral: ("npc.stag_beetle.male.mandible_r"), + ), + wing_fl: ( + offset: (-5.0, -13.0, -4.0), + lateral: ("npc.stag_beetle.male.wing_fr"), + ), + wing_fr: ( + offset: (-0.0, -13.0, -4.0), + lateral: ("npc.stag_beetle.male.wing_fr"), + ), + wing_bl: ( + offset: (-4.0, -12.0, -0.5), + lateral: ("npc.stag_beetle.male.wing_br"), + ), + wing_br: ( + offset: (-0.0, -12.0, -0.5), + lateral: ("npc.stag_beetle.male.wing_br"), + ), + leg_fl: ( + offset: (-1.5, 0.0, -4.5), + lateral: ("npc.stag_beetle.male.leg_fr"), + ), + leg_fr: ( + offset: (-1.5, 0.0, -4.5), + lateral: ("npc.stag_beetle.male.leg_fr"), + ), + leg_fcl: ( + offset: (-12.0, -1.5, -4.5), + lateral: ("npc.stag_beetle.male.leg_fcr"), + ), + leg_fcr: ( + offset: (-0.0, -1.5, -4.5), + lateral: ("npc.stag_beetle.male.leg_fcr"), + ), + leg_bcl: ( + offset: (-1.5, -14.0, -4.5), + lateral: ("npc.stag_beetle.male.leg_bcr"), + ), + leg_bcr: ( + offset: (-1.5, -14.0, -4.5), + lateral: ("npc.stag_beetle.male.leg_bcr"), + ), + leg_bl: ( + offset: (-12.0, -1.5, -4.5), + lateral: ("armor.empty"), + ), + leg_br: ( + offset: (0.0, -1.5, -4.5), + lateral: ("armor.empty"), + ), + ), + (Stagbeetle, Female): ( + mandible_l: ( + offset: (-7.0, -0.0, -1.5), + lateral: ("npc.stag_beetle.male.mandible_r"), + ), + mandible_r: ( + offset: (-0.0, -0.0, -1.5), + lateral: ("npc.stag_beetle.male.mandible_r"), + ), + wing_fl: ( + offset: (-5.0, -13.0, -4.0), + lateral: ("npc.stag_beetle.male.wing_fr"), + ), + wing_fr: ( + offset: (-0.0, -13.0, -4.0), + lateral: ("npc.stag_beetle.male.wing_fr"), + ), + wing_bl: ( + offset: (-4.0, -12.0, -0.5), + lateral: ("npc.stag_beetle.male.wing_br"), + ), + wing_br: ( + offset: (-0.0, -12.0, -0.5), + lateral: ("npc.stag_beetle.male.wing_br"), + ), + leg_fl: ( + offset: (-1.5, 0.0, -4.5), + lateral: ("npc.stag_beetle.male.leg_fr"), + ), + leg_fr: ( + offset: (-1.5, 0.0, -4.5), + lateral: ("npc.stag_beetle.male.leg_fr"), + ), + leg_fcl: ( + offset: (-12.0, -1.5, -4.5), + lateral: ("npc.stag_beetle.male.leg_fcr"), + ), + leg_fcr: ( + offset: (-0.0, -1.5, -4.5), + lateral: ("npc.stag_beetle.male.leg_fcr"), + ), + leg_bcl: ( + offset: (-1.5, -14.0, -4.5), + lateral: ("npc.stag_beetle.male.leg_bcr"), + ), + leg_bcr: ( + offset: (-1.5, -14.0, -4.5), + lateral: ("npc.stag_beetle.male.leg_bcr"), + ), + leg_bl: ( + offset: (-12.0, -1.5, -4.5), + lateral: ("armor.empty"), + ), + leg_br: ( + offset: (0.0, -1.5, -4.5), + lateral: ("armor.empty"), + ), + ), + (Weevil, Male): ( + mandible_l: ( + offset: (-1.0, 0.0, -4.0), + lateral: ("armor.empty"), + ), + mandible_r: ( + offset: (-1.0, 0.0, -4.0), + lateral: ("armor.empty"), + ), + wing_fl: ( + offset: (-5.0, -11.0, -4.0), + lateral: ("npc.weevil.male.wing_fr"), + ), + wing_fr: ( + offset: (-0.0, -11.0, -4.0), + lateral: ("npc.weevil.male.wing_fr"), + ), + wing_bl: ( + offset: (-4.0, -8.0, -0.5), + lateral: ("npc.weevil.male.wing_br"), + ), + wing_br: ( + offset: (-0.0, -8.0, -0.5), + lateral: ("npc.weevil.male.wing_br"), + ), + leg_fl: ( + offset: (-1.5, 0.0, -4.0), + lateral: ("npc.weevil.male.leg_fr"), + ), + leg_fr: ( + offset: (-1.5, 0.0, -4.0), + lateral: ("npc.weevil.male.leg_fr"), + ), + leg_fcl: ( + offset: (-9.0, -1.5, -4.0), + lateral: ("npc.weevil.male.leg_fcr"), + ), + leg_fcr: ( + offset: (0.0, -1.5, -4.0), + lateral: ("npc.weevil.male.leg_fcr"), + ), + leg_bcl: ( + offset: (-1.5, -11.0, -3.5), + lateral: ("npc.weevil.male.leg_bcr"), + ), + leg_bcr: ( + offset: (-1.5, -11.0, -3.5), + lateral: ("npc.weevil.male.leg_bcr"), + ), + leg_bl: ( + offset: (-12.0, -1.5, -4.5), + lateral: ("armor.empty"), + ), + leg_br: ( + offset: (0.0, -1.5, -4.5), + lateral: ("armor.empty"), + ), + ), + (Weevil, Female): ( + mandible_l: ( + offset: (-1.0, 0.0, -4.0), + lateral: ("armor.empty"), + ), + mandible_r: ( + offset: (-1.0, 0.0, -4.0), + lateral: ("armor.empty"), + ), + wing_fl: ( + offset: (-5.0, -11.0, -4.0), + lateral: ("npc.weevil.male.wing_fr"), + ), + wing_fr: ( + offset: (-0.0, -11.0, -4.0), + lateral: ("npc.weevil.male.wing_fr"), + ), + wing_bl: ( + offset: (-4.0, -8.0, -0.5), + lateral: ("npc.weevil.male.wing_br"), + ), + wing_br: ( + offset: (-0.0, -8.0, -0.5), + lateral: ("npc.weevil.male.wing_br"), + ), + leg_fl: ( + offset: (-1.5, 0.0, -4.0), + lateral: ("npc.weevil.male.leg_fr"), + ), + leg_fr: ( + offset: (-1.5, 0.0, -4.0), + lateral: ("npc.weevil.male.leg_fr"), + ), + leg_fcl: ( + offset: (-9.0, -1.5, -4.0), + lateral: ("npc.weevil.male.leg_fcr"), + ), + leg_fcr: ( + offset: (0.0, -1.5, -4.0), + lateral: ("npc.weevil.male.leg_fcr"), + ), + leg_bcl: ( + offset: (-1.5, -11.0, -3.5), + lateral: ("npc.weevil.male.leg_bcr"), + ), + leg_bcr: ( + offset: (-1.5, -11.0, -3.5), + lateral: ("npc.weevil.male.leg_bcr"), + ), + leg_bl: ( + offset: (-12.0, -1.5, -4.5), + lateral: ("armor.empty"), + ), + leg_br: ( + offset: (0.0, -1.5, -4.5), + lateral: ("armor.empty"), + ), + ), + (Cavespider, Male): ( + mandible_l: ( + offset: (0.0, 0.0, -3.0), + lateral: ("npc.cave_spider.male.mandible_r"), + ), + mandible_r: ( + offset: (-2.0, 0.0, -3.0), + lateral: ("npc.cave_spider.male.mandible_r"), + ), + wing_fl: ( + offset: (-6.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_fr: ( + offset: (0.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_bl: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + wing_br: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + leg_fl: ( + offset: (-0.5, -0.0, -4.0), + lateral: ("npc.cave_spider.male.leg_fr"), + ), + leg_fr: ( + offset: (-0.5, -0.0, -4.5), + lateral: ("npc.cave_spider.male.leg_fr"), + ), + leg_fcl: ( + offset: (-11.0, -0.5, -4.5), + lateral: ("npc.cave_spider.male.leg_fcr"), + ), + leg_fcr: ( + offset: (0.0, -0.5, -4.5), + lateral: ("npc.cave_spider.male.leg_fcr"), + ), + leg_bcl: ( + offset: (-14.0, -0.5, -4.5), + lateral: ("npc.cave_spider.male.leg_bcr"), + ), + leg_bcr: ( + offset: (0.0, -0.5, -4.5), + lateral: ("npc.cave_spider.male.leg_bcr"), + ), + leg_bl: ( + offset: (-11.0, -0.5, -4.5), + lateral: ("npc.cave_spider.male.leg_br"), + ), + leg_br: ( + offset: (0.0, -0.5, -4.5), + lateral: ("npc.cave_spider.male.leg_br"), + ), + ), + (Cavespider, Female): ( + mandible_l: ( + offset: (0.0, 0.0, -3.0), + lateral: ("npc.cave_spider.male.mandible_r"), + ), + mandible_r: ( + offset: (-2.0, 0.0, -3.0), + lateral: ("npc.cave_spider.male.mandible_r"), + ), + wing_fl: ( + offset: (-6.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_fr: ( + offset: (0.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_bl: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + wing_br: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + leg_fl: ( + offset: (-0.5, -0.0, -4.0), + lateral: ("npc.cave_spider.male.leg_fr"), + ), + leg_fr: ( + offset: (-0.5, -0.0, -4.5), + lateral: ("npc.cave_spider.male.leg_fr"), + ), + leg_fcl: ( + offset: (-11.0, -0.5, -4.5), + lateral: ("npc.cave_spider.male.leg_fcr"), + ), + leg_fcr: ( + offset: (0.0, -0.5, -4.5), + lateral: ("npc.cave_spider.male.leg_fcr"), + ), + leg_bcl: ( + offset: (-14.0, -0.5, -4.5), + lateral: ("npc.cave_spider.male.leg_bcr"), + ), + leg_bcr: ( + offset: (0.0, -0.5, -4.5), + lateral: ("npc.cave_spider.male.leg_bcr"), + ), + leg_bl: ( + offset: (-11.0, -0.5, -4.5), + lateral: ("npc.cave_spider.male.leg_br"), + ), + leg_br: ( + offset: (0.0, -0.5, -4.5), + lateral: ("npc.cave_spider.male.leg_br"), + ), + ), + (Moltencrawler, Male): ( + mandible_l: ( + offset: (0.0, 0.0, -3.0), + lateral: ("armor.empty"), + ), + mandible_r: ( + offset: (-2.0, 0.0, -3.0), + lateral: ("armor.empty"), + ), + wing_fl: ( + offset: (-6.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_fr: ( + offset: (0.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_bl: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + wing_br: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + leg_fl: ( + offset: (-3.0, -1.0, -3.0), + lateral: ("npc.crawler_molten.male.leg_fr"), + ), + leg_fr: ( + offset: (-0.0, -1.0, -3.0), + lateral: ("npc.crawler_molten.male.leg_fr"), + ), + leg_fcl: ( + offset: (-3.0, -1.0, -3.0), + lateral: ("npc.crawler_molten.male.leg_fcr"), + ), + leg_fcr: ( + offset: (-0.0, -1.0, -3.0), + lateral: ("npc.crawler_molten.male.leg_fcr"), + ), + leg_bcl: ( + offset: (-3.0, -1.0, -3.0), + lateral: ("npc.crawler_molten.male.leg_bcr"), + ), + leg_bcr: ( + offset: (-0.0, -1.0, -3.0), + lateral: ("npc.crawler_molten.male.leg_bcr"), + ), + leg_bl: ( + offset: (-11.0, -0.5, -4.5), + lateral: ("armor.empty"), + ), + leg_br: ( + offset: (0.0, -0.5, -4.5), + lateral: ("armor.empty"), + ), + ), + (Moltencrawler, Female): ( + mandible_l: ( + offset: (0.0, 0.0, -3.0), + lateral: ("armor.empty"), + ), + mandible_r: ( + offset: (-2.0, 0.0, -3.0), + lateral: ("armor.empty"), + ), + wing_fl: ( + offset: (-6.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_fr: ( + offset: (0.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_bl: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + wing_br: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + leg_fl: ( + offset: (-3.0, -1.0, -3.0), + lateral: ("npc.crawler_molten.male.leg_fr"), + ), + leg_fr: ( + offset: (-0.0, -1.0, -3.0), + lateral: ("npc.crawler_molten.male.leg_fr"), + ), + leg_fcl: ( + offset: (-3.0, -1.0, -3.0), + lateral: ("npc.crawler_molten.male.leg_fcr"), + ), + leg_fcr: ( + offset: (-0.0, -1.0, -3.0), + lateral: ("npc.crawler_molten.male.leg_fcr"), + ), + leg_bcl: ( + offset: (-3.0, -1.0, -3.0), + lateral: ("npc.crawler_molten.male.leg_bcr"), + ), + leg_bcr: ( + offset: (-0.0, -1.0, -3.0), + lateral: ("npc.crawler_molten.male.leg_bcr"), + ), + leg_bl: ( + offset: (-11.0, -0.5, -4.5), + lateral: ("armor.empty"), + ), + leg_br: ( + offset: (0.0, -0.5, -4.5), + lateral: ("armor.empty"), + ), + ), + (Mosscrawler, Male): ( + mandible_l: ( + offset: (0.0, 0.0, -3.0), + lateral: ("armor.empty"), + ), + mandible_r: ( + offset: (-2.0, 0.0, -3.0), + lateral: ("armor.empty"), + ), + wing_fl: ( + offset: (-6.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_fr: ( + offset: (0.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_bl: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + wing_br: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + leg_fl: ( + offset: (-3.0, -1.0, -3.0), + lateral: ("npc.crawler_moss.male.leg_fr"), + ), + leg_fr: ( + offset: (-0.0, -1.0, -3.0), + lateral: ("npc.crawler_moss.male.leg_fr"), + ), + leg_fcl: ( + offset: (-3.0, -1.0, -3.0), + lateral: ("npc.crawler_moss.male.leg_fcr"), + ), + leg_fcr: ( + offset: (-0.0, -1.0, -3.0), + lateral: ("npc.crawler_moss.male.leg_fcr"), + ), + leg_bcl: ( + offset: (-3.0, -1.0, -3.0), + lateral: ("npc.crawler_moss.male.leg_bcr"), + ), + leg_bcr: ( + offset: (-0.0, -1.0, -3.0), + lateral: ("npc.crawler_moss.male.leg_bcr"), + ), + leg_bl: ( + offset: (-11.0, -0.5, -4.5), + lateral: ("armor.empty"), + ), + leg_br: ( + offset: (0.0, -0.5, -4.5), + lateral: ("armor.empty"), + ), + ), + (Mosscrawler, Female): ( + mandible_l: ( + offset: (0.0, 0.0, -3.0), + lateral: ("armor.empty"), + ), + mandible_r: ( + offset: (-2.0, 0.0, -3.0), + lateral: ("armor.empty"), + ), + wing_fl: ( + offset: (-6.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_fr: ( + offset: (0.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_bl: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + wing_br: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + leg_fl: ( + offset: (-3.0, -1.0, -3.0), + lateral: ("npc.crawler_moss.male.leg_fr"), + ), + leg_fr: ( + offset: (-0.0, -1.0, -3.0), + lateral: ("npc.crawler_moss.male.leg_fr"), + ), + leg_fcl: ( + offset: (-3.0, -1.0, -3.0), + lateral: ("npc.crawler_moss.male.leg_fcr"), + ), + leg_fcr: ( + offset: (-0.0, -1.0, -3.0), + lateral: ("npc.crawler_moss.male.leg_fcr"), + ), + leg_bcl: ( + offset: (-3.0, -1.0, -3.0), + lateral: ("npc.crawler_moss.male.leg_bcr"), + ), + leg_bcr: ( + offset: (-0.0, -1.0, -3.0), + lateral: ("npc.crawler_moss.male.leg_bcr"), + ), + leg_bl: ( + offset: (-11.0, -0.5, -4.5), + lateral: ("armor.empty"), + ), + leg_br: ( + offset: (0.0, -0.5, -4.5), + lateral: ("armor.empty"), + ), + ), + (Sandcrawler, Male): ( + mandible_l: ( + offset: (0.0, 0.0, -3.0), + lateral: ("armor.empty"), + ), + mandible_r: ( + offset: (-2.0, 0.0, -3.0), + lateral: ("armor.empty"), + ), + wing_fl: ( + offset: (-6.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_fr: ( + offset: (0.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_bl: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + wing_br: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + leg_fl: ( + offset: (-3.0, -1.0, -3.0), + lateral: ("npc.crawler_sand.male.leg_fr"), + ), + leg_fr: ( + offset: (-0.0, -1.0, -3.0), + lateral: ("npc.crawler_sand.male.leg_fr"), + ), + leg_fcl: ( + offset: (-3.0, -1.0, -3.0), + lateral: ("npc.crawler_sand.male.leg_fcr"), + ), + leg_fcr: ( + offset: (-0.0, -1.0, -3.0), + lateral: ("npc.crawler_sand.male.leg_fcr"), + ), + leg_bcl: ( + offset: (-3.0, -1.0, -3.0), + lateral: ("npc.crawler_sand.male.leg_bcr"), + ), + leg_bcr: ( + offset: (-0.0, -1.0, -3.0), + lateral: ("npc.crawler_sand.male.leg_bcr"), + ), + leg_bl: ( + offset: (-11.0, -0.5, -4.5), + lateral: ("armor.empty"), + ), + leg_br: ( + offset: (0.0, -0.5, -4.5), + lateral: ("armor.empty"), + ), + ), + (Sandcrawler, Female): ( + mandible_l: ( + offset: (0.0, 0.0, -3.0), + lateral: ("armor.empty"), + ), + mandible_r: ( + offset: (-2.0, 0.0, -3.0), + lateral: ("armor.empty"), + ), + wing_fl: ( + offset: (-6.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_fr: ( + offset: (0.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_bl: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + wing_br: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + leg_fl: ( + offset: (-3.0, -1.0, -3.0), + lateral: ("npc.crawler_sand.male.leg_fr"), + ), + leg_fr: ( + offset: (-0.0, -1.0, -3.0), + lateral: ("npc.crawler_sand.male.leg_fr"), + ), + leg_fcl: ( + offset: (-3.0, -1.0, -3.0), + lateral: ("npc.crawler_sand.male.leg_fcr"), + ), + leg_fcr: ( + offset: (-0.0, -1.0, -3.0), + lateral: ("npc.crawler_sand.male.leg_fcr"), + ), + leg_bcl: ( + offset: (-3.0, -1.0, -3.0), + lateral: ("npc.crawler_sand.male.leg_bcr"), + ), + leg_bcr: ( + offset: (-0.0, -1.0, -3.0), + lateral: ("npc.crawler_sand.male.leg_bcr"), + ), + leg_bl: ( + offset: (-11.0, -0.5, -4.5), + lateral: ("armor.empty"), + ), + leg_br: ( + offset: (0.0, -0.5, -4.5), + lateral: ("armor.empty"), + ), + ), + (Dagonite, Male): ( + mandible_l: ( + offset: (0.0, 0.0, -3.0), + lateral: ("armor.empty"), + ), + mandible_r: ( + offset: (-2.0, 0.0, -3.0), + lateral: ("armor.empty"), + ), + wing_fl: ( + offset: (-6.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_fr: ( + offset: (0.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_bl: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + wing_br: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + leg_fl: ( + offset: (-6.0, -0.5, -5.0), + lateral: ("npc.dagonite.male.leg_fr"), + ), + leg_fr: ( + offset: (-0.0, -0.5, -5.0), + lateral: ("npc.dagonite.male.leg_fr"), + ), + leg_fcl: ( + offset: (-6.0, -0.5, -5.0), + lateral: ("npc.dagonite.male.leg_fcr"), + ), + leg_fcr: ( + offset: (-0.0, -0.5, -5.0), + lateral: ("npc.dagonite.male.leg_fcr"), + ), + leg_bcl: ( + offset: (-6.0, -0.5, -5.0), + lateral: ("npc.dagonite.male.leg_bcr"), + ), + leg_bcr: ( + offset: (-0.0, -0.5, -5.0), + lateral: ("npc.dagonite.male.leg_bcr"), + ), + leg_bl: ( + offset: (-11.0, -0.5, -4.5), + lateral: ("armor.empty"), + ), + leg_br: ( + offset: (0.0, -0.5, -4.5), + lateral: ("armor.empty"), + ), + ), + (Dagonite, Female): ( + mandible_l: ( + offset: (0.0, 0.0, -3.0), + lateral: ("armor.empty"), + ), + mandible_r: ( + offset: (-2.0, 0.0, -3.0), + lateral: ("armor.empty"), + ), + wing_fl: ( + offset: (-6.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_fr: ( + offset: (0.0, -4.5, -8.0), + lateral: ("armor.empty"), + ), + wing_bl: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + wing_br: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("armor.empty"), + ), + leg_fl: ( + offset: (-6.0, -0.5, -5.0), + lateral: ("npc.dagonite.male.leg_fr"), + ), + leg_fr: ( + offset: (-0.0, -0.5, -5.0), + lateral: ("npc.dagonite.male.leg_fr"), + ), + leg_fcl: ( + offset: (-6.0, -0.5, -5.0), + lateral: ("npc.dagonite.male.leg_fcr"), + ), + leg_fcr: ( + offset: (-0.0, -0.5, -5.0), + lateral: ("npc.dagonite.male.leg_fcr"), + ), + leg_bcl: ( + offset: (-6.0, -0.5, -5.0), + lateral: ("npc.dagonite.male.leg_bcr"), + ), + leg_bcr: ( + offset: (-0.0, -0.5, -5.0), + lateral: ("npc.dagonite.male.leg_bcr"), + ), + leg_bl: ( + offset: (-11.0, -0.5, -4.5), + lateral: ("armor.empty"), + ), + leg_br: ( + offset: (0.0, -0.5, -4.5), + lateral: ("armor.empty"), + ), + ), + (Emberfly, Male): ( + mandible_l: ( + offset: (-1.0, 0.0, -4.0), + lateral: ("armor.empty"), + ), + mandible_r: ( + offset: (-1.0, 0.0, -4.0), + lateral: ("armor.empty"), + ), + wing_fl: ( + offset: (-0.0, -12.0, -0.5), + lateral: ("npc.emberfly.male.wing_fr"), + ), + wing_fr: ( + offset: (-5.0, -12.0, -0.5), + lateral: ("npc.emberfly.male.wing_fr"), + ), + wing_bl: ( + offset: (-0.0, -12.0, -0.5), + lateral: ("armor.empty"), + ), + wing_br: ( + offset: (-4.0, -12.0, -0.5), + lateral: ("armor.empty"), + ), + leg_fl: ( + offset: (-7.0, -0.5, -3.0), + lateral: ("npc.emberfly.male.leg_fr"), + ), + leg_fr: ( + offset: (0.0, -0.5, -3.0), + lateral: ("npc.emberfly.male.leg_fr"), + ), + leg_fcl: ( + offset: (-7.0, -0.5, -3.0), + lateral: ("npc.emberfly.male.leg_fcr"), + ), + leg_fcr: ( + offset: (0.0, -0.5, -3.0), + lateral: ("npc.emberfly.male.leg_fcr"), + ), + leg_bcl: ( + offset: (-7.0, -0.5, -3.0), + lateral: ("npc.emberfly.male.leg_bcr"), + ), + leg_bcr: ( + offset: (0.0, -0.5, -3.0), + lateral: ("npc.emberfly.male.leg_bcr"), + ), + leg_bl: ( + offset: (-12.0, -1.5, -4.5), + lateral: ("armor.empty"), + ), + leg_br: ( + offset: (0.0, -1.5, -4.5), + lateral: ("armor.empty"), + ), + ), + (Emberfly, Female): ( + mandible_l: ( + offset: (-1.0, 0.0, -4.0), + lateral: ("armor.empty"), + ), + mandible_r: ( + offset: (-1.0, 0.0, -4.0), + lateral: ("armor.empty"), + ), + wing_fl: ( + offset: (-0.0, -12.0, -0.5), + lateral: ("npc.emberfly.male.wing_fr"), + ), + wing_fr: ( + offset: (-5.0, -12.0, -0.5), + lateral: ("npc.emberfly.male.wing_fr"), + ), + wing_bl: ( + offset: (-0.0, -12.0, -0.5), + lateral: ("armor.empty"), + ), + wing_br: ( + offset: (-4.0, -12.0, -0.5), + lateral: ("armor.empty"), + ), + leg_fl: ( + offset: (-7.0, -0.5, -3.0), + lateral: ("npc.emberfly.male.leg_fr"), + ), + leg_fr: ( + offset: (0.0, -0.5, -3.0), + lateral: ("npc.emberfly.male.leg_fr"), + ), + leg_fcl: ( + offset: (-7.0, -0.5, -3.0), + lateral: ("npc.emberfly.male.leg_fcr"), + ), + leg_fcr: ( + offset: (0.0, -0.5, -3.0), + lateral: ("npc.emberfly.male.leg_fcr"), + ), + leg_bcl: ( + offset: (-7.0, -0.5, -3.0), + lateral: ("npc.emberfly.male.leg_bcr"), + ), + leg_bcr: ( + offset: (0.0, -0.5, -3.0), + lateral: ("npc.emberfly.male.leg_bcr"), + ), + leg_bl: ( + offset: (-12.0, -1.5, -4.5), + lateral: ("armor.empty"), + ), + leg_br: ( + offset: (0.0, -1.5, -4.5), + lateral: ("armor.empty"), + ), + ), +}) diff --git a/assets/voxygen/voxel/biped_large_central_manifest.ron b/assets/voxygen/voxel/biped_large_central_manifest.ron new file mode 100644 index 0000000..c947791 --- /dev/null +++ b/assets/voxygen/voxel/biped_large_central_manifest.ron @@ -0,0 +1,1807 @@ +({ + (Ogre, Male): ( + head: ( + offset: (-8.0, -6.0, -6.5), + central: ("npc.ogre.male.head"), + ), + torso_upper: ( + offset: (-8.0, -6.0, -8.0), + central: ("npc.ogre.male.torso_upper"), + ), + torso_lower: ( + offset: (-6.0, -5.5, -10.0), + central: ("npc.ogre.male.torso_lower"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + + ), + (Ogre, Female): ( + head: ( + offset: (-9.0, -5.5, -6.0), + central: ("npc.ogre.female.head"), + ), + torso_upper: ( + offset: (-6.0, -5.0, -6.0), + central: ("npc.ogre.female.torso_upper"), + ), + torso_lower: ( + offset: (-5.0, -4.5, -6.0), + central: ("npc.ogre.female.torso_lower"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Cyclops, Male): ( + head: ( + offset: (-7.0, -7.5, -7.0), + central: ("npc.cyclops.male.head"), + ), + torso_upper: ( + offset: (-9.0, -10.0, -10.5), + central: ("npc.cyclops.male.torso_upper"), + ), + torso_lower: ( + offset: (-8.0, -6.0, -10.0), + central: ("npc.cyclops.male.torso_lower"), + ), + jaw: ( + offset: (-4.0, 0.0, -2.0), + central: ("npc.cyclops.male.jaw"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Cyclops, Female): ( + head: ( + offset: (-7.0, -7.5, -7.0), + central: ("npc.cyclops.male.head"), + ), + torso_upper: ( + offset: (-9.0, -10.0, -10.5), + central: ("npc.cyclops.male.torso_upper"), + ), + torso_lower: ( + offset: (-8.0, -6.0, -10.0), + central: ("npc.cyclops.male.torso_lower"), + ), + jaw: ( + offset: (-4.0, 0.0, -2.0), + central: ("npc.cyclops.male.jaw"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Wendigo, Male): ( + head: ( + offset: (-15.0, -4.5, -3.5), + central: ("npc.wendigo.male.head"), + ), + torso_upper: ( + offset: (-6.0, -5.5, -6.5), + central: ("npc.wendigo.male.torso_upper"), + ), + torso_lower: ( + offset: (-4.0, -2.0, -4.0), + central: ("npc.wendigo.male.torso_lower"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Wendigo, Female): ( + head: ( + offset: (-15.0, -4.5, -3.5), + central: ("npc.wendigo.male.head"), + ), + torso_upper: ( + offset: (-6.0, -5.5, -6.5), + central: ("npc.wendigo.male.torso_upper"), + ), + torso_lower: ( + offset: (-4.0, -2.0, -4.0), + central: ("npc.wendigo.male.torso_lower"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Cavetroll, Male): ( + head: ( + offset: (-8.0, -8.0, -8.5), + central: ("npc.troll_cave.male.head"), + ), + torso_upper: ( + offset: (-8.0, -9.5, -11.0), + central: ("npc.troll_cave.male.torso_upper"), + ), + torso_lower: ( + offset: (-7.0, -5.5, -7.0), + central: ("npc.troll_cave.male.torso_lower"), + ), + jaw: ( + offset: (-5.0, 0.0, -4.5), + central: ("npc.troll_cave.male.jaw"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Cavetroll, Female): ( + head: ( + offset: (-8.0, -8.0, -8.5), + central: ("npc.troll_cave.male.head"), + ), + torso_upper: ( + offset: (-8.0, -9.5, -11.0), + central: ("npc.troll_cave.male.torso_upper"), + ), + torso_lower: ( + offset: (-7.0, -5.5, -7.0), + central: ("npc.troll_cave.male.torso_lower"), + ), + jaw: ( + offset: (-5.0, 0.0, -4.5), + central: ("npc.troll_cave.male.jaw"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Mountaintroll, Male): ( + head: ( + offset: (-9.0, -8.5, -10.0), + central: ("npc.troll_mountain.male.head"), + ), + torso_upper: ( + offset: (-9.0, -10.0, -14.5), + central: ("npc.troll_mountain.male.torso_upper"), + ), + torso_lower: ( + offset: (-7.0, -5.5, -7.0), + central: ("npc.troll_mountain.male.torso_lower"), + ), + jaw: ( + offset: (-4.0, 0.0, -4.5), + central: ("npc.troll_mountain.male.jaw"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Mountaintroll, Female): ( + head: ( + offset: (-9.0, -8.5, -10.0), + central: ("npc.troll_mountain.male.head"), + ), + torso_upper: ( + offset: (-9.0, -10.0, -14.5), + central: ("npc.troll_mountain.male.torso_upper"), + ), + torso_lower: ( + offset: (-7.0, -5.5, -7.0), + central: ("npc.troll_mountain.male.torso_lower"), + ), + jaw: ( + offset: (-4.0, 0.0, -4.5), + central: ("npc.troll_mountain.male.jaw"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Swamptroll, Male): ( + head: ( + offset: (-10.0, -6.5, -6.0), + central: ("npc.troll_swamp.male.head"), + ), + torso_upper: ( + offset: (-9.0, -9.0, -12.5), + central: ("npc.troll_swamp.male.torso_upper"), + ), + torso_lower: ( + offset: (-8.0, -6.5, -10.0), + central: ("npc.troll_swamp.male.torso_lower"), + ), + jaw: ( + offset: (-6.0, 0.0, -4.0), + central: ("npc.troll_swamp.male.jaw"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Swamptroll, Female): ( + head: ( + offset: (-10.0, -6.5, -6.0), + central: ("npc.troll_swamp.male.head"), + ), + torso_upper: ( + offset: (-9.0, -9.0, -12.5), + central: ("npc.troll_swamp.male.torso_upper"), + ), + torso_lower: ( + offset: (-8.0, -6.5, -10.0), + central: ("npc.troll_swamp.male.torso_lower"), + ), + jaw: ( + offset: (-6.0, 0.0, -4.0), + central: ("npc.troll_swamp.male.jaw"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Dullahan, Male): ( + head: ( + offset: (-8.0, -5.0, -6.0), + central: ("armor.empty"), + ), + torso_upper: ( + offset: (-9.0, -7.5, -7.0), + central: ("npc.dullahan.male.torso_upper"), + ), + torso_lower: ( + offset: (-8.0, -6.0, -9.0), + central: ("npc.dullahan.male.torso_lower"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Dullahan, Female): ( + head: ( + offset: (-8.0, -5.0, -6.0), + central: ("armor.empty"), + ), + torso_upper: ( + offset: (-9.0, -7.5, -7.0), + central: ("npc.dullahan.male.torso_upper"), + ), + torso_lower: ( + offset: (-8.0, -6.0, -9.0), + central: ("npc.dullahan.male.torso_lower"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Werewolf, Male): ( + head: ( + offset: (-5.0, 0.0, -6.5), + central: ("npc.werewolf.male.head"), + ), + torso_upper: ( + offset: (-8.0, -12.5, -10.5), + central: ("npc.werewolf.male.torso_upper"), + ), + torso_lower: ( + offset: (-6.0, -5.5, -8.0), + central: ("npc.werewolf.male.torso_lower"), + ), + jaw: ( + offset: (-2.0, 0.0, -2.0), + central: ("npc.werewolf.male.jaw"), + ), + tail: ( + offset: (-4.0, -27.0, -6.0), + central: ("npc.werewolf.male.tail"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Werewolf, Female): ( + head: ( + offset: (-5.0, 0.0, -6.5), + central: ("npc.werewolf.male.head"), + ), + torso_upper: ( + offset: (-8.0, -12.5, -10.5), + central: ("npc.werewolf.male.torso_upper"), + ), + torso_lower: ( + offset: (-6.0, -5.5, -8.0), + central: ("npc.werewolf.male.torso_lower"), + ), + jaw: ( + offset: (-2.0, 0.0, -2.0), + central: ("npc.werewolf.male.jaw"), + ), + tail: ( + offset: (-4.0, -27.0, -6.0), + central: ("npc.werewolf.male.tail"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Occultsaurok, Male): ( + head: ( + offset: (-3.0, 0.0, -4.5), + central: ("npc.saurok_occult.male.head"), + ), + torso_upper: ( + offset: (-5.0, -6.5, -7.0), + central: ("npc.saurok_occult.male.torso_upper"), + ), + torso_lower: ( + offset: (-6.0, -5.5, -8.0), + central: ("npc.saurok_occult.male.torso_lower"), + ), + jaw: ( + offset: (-2.0, 0.0, -2.0), + central: ("npc.saurok_occult.male.jaw"), + ), + tail: ( + offset: (-2.0, -16.0, -1.0), + central: ("npc.saurok_occult.male.tail"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Occultsaurok, Female): ( + head: ( + offset: (-3.0, 0.0, -4.5), + central: ("npc.saurok_occult.female.head"), + ), + torso_upper: ( + offset: (-5.0, -6.5, -7.0), + central: ("npc.saurok_occult.female.torso_upper"), + ), + torso_lower: ( + offset: (-6.0, -5.5, -8.0), + central: ("npc.saurok_occult.female.torso_lower"), + ), + jaw: ( + offset: (-2.0, 0.0, -2.0), + central: ("npc.saurok_occult.female.jaw"), + ), + tail: ( + offset: (-2.0, -16.0, -1.0), + central: ("npc.saurok_occult.female.tail"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Mightysaurok, Male): ( + head: ( + offset: (-3.0, 0.0, -4.5), + central: ("npc.saurok_mighty.male.head"), + ), + torso_upper: ( + offset: (-5.0, -6.5, -7.0), + central: ("npc.saurok_mighty.male.torso_upper"), + ), + torso_lower: ( + offset: (-6.0, -5.5, -8.0), + central: ("npc.saurok_mighty.male.torso_lower"), + ), + jaw: ( + offset: (-2.0, 0.0, -2.0), + central: ("npc.saurok_mighty.male.jaw"), + ), + tail: ( + offset: (-2.0, -16.0, -1.0), + central: ("npc.saurok_mighty.male.tail"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Mightysaurok, Female): ( + head: ( + offset: (-3.0, 0.0, -4.5), + central: ("npc.saurok_mighty.female.head"), + ), + torso_upper: ( + offset: (-5.0, -6.5, -7.0), + central: ("npc.saurok_mighty.female.torso_upper"), + ), + torso_lower: ( + offset: (-6.0, -5.5, -8.0), + central: ("npc.saurok_mighty.female.torso_lower"), + ), + jaw: ( + offset: (-2.0, 0.0, -2.0), + central: ("npc.saurok_mighty.female.jaw"), + ), + tail: ( + offset: (-2.0, -16.0, -1.0), + central: ("npc.saurok_mighty.female.tail"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Slysaurok, Male): ( + head: ( + offset: (-3.0, 0.0, -4.5), + central: ("npc.saurok_sly.male.head"), + ), + torso_upper: ( + offset: (-5.0, -6.5, -7.0), + central: ("npc.saurok_sly.male.torso_upper"), + ), + torso_lower: ( + offset: (-6.0, -5.5, -8.0), + central: ("npc.saurok_sly.male.torso_lower"), + ), + jaw: ( + offset: (-2.0, 0.0, -2.0), + central: ("npc.saurok_sly.male.jaw"), + ), + tail: ( + offset: (-2.0, -16.0, -1.0), + central: ("npc.saurok_sly.male.tail"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Slysaurok, Female): ( + head: ( + offset: (-3.0, 0.0, -4.5), + central: ("npc.saurok_sly.female.head"), + ), + torso_upper: ( + offset: (-5.0, -6.5, -7.0), + central: ("npc.saurok_sly.female.torso_upper"), + ), + torso_lower: ( + offset: (-6.0, -5.5, -8.0), + central: ("npc.saurok_sly.female.torso_lower"), + ), + jaw: ( + offset: (-2.0, 0.0, -2.0), + central: ("npc.saurok_sly.female.jaw"), + ), + tail: ( + offset: (-2.0, -16.0, -1.0), + central: ("npc.saurok_sly.female.tail"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Mindflayer, Male): ( + head: ( + offset: (-8.5, -8.0, -10.5), + central: ("npc.mindflayer.male.head"), + ), + torso_upper: ( + offset: (-10.5, -8.5, -11.0), + central: ("npc.mindflayer.male.torso_upper"), + ), + torso_lower: ( + offset: (-12.5, -10.0, -18.0), + central: ("npc.mindflayer.male.torso_lower"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Mindflayer, Female): ( + head: ( + offset: (-8.5, -8.0, -10.5), + central: ("npc.mindflayer.male.head"), + ), + torso_upper: ( + offset: (-10.5, -8.5, -11.0), + central: ("npc.mindflayer.male.torso_upper"), + ), + torso_lower: ( + offset: (-12.5, -10.0, -18.0), + central: ("npc.mindflayer.male.torso_lower"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Minotaur, Male): ( + head: ( + offset: (-6.5, 0.0, -8.0), + central: ("npc.minotaur.male.head"), + ), + torso_upper: ( + offset: (-8.5, -8.0, -10.0), + central: ("npc.minotaur.male.torso_upper"), + ), + torso_lower: ( + offset: (-5.5, -5.5, -14.0), + central: ("npc.minotaur.male.torso_lower"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-1.5, -17.0, -8.0), + central: ("npc.minotaur.male.tail"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Minotaur, Female): ( + head: ( + offset: (-6.5, 0.0, -8.0), + central: ("npc.minotaur.male.head"), + ), + torso_upper: ( + offset: (-8.5, -8.0, -10.0), + central: ("npc.minotaur.male.torso_upper"), + ), + torso_lower: ( + offset: (-5.5, -5.5, -14.0), + central: ("npc.minotaur.male.torso_lower"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-1.5, -17.0, -8.0), + central: ("npc.minotaur.male.tail"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Tidalwarrior, Male): ( + head: ( + offset: (-6.5, -6.5, -6.0), + central: ("npc.tidalwarrior.male.head"), + ), + torso_upper: ( + offset: (-9.0, -8.0, -10.5), + central: ("npc.tidalwarrior.male.torso_upper"), + ), + torso_lower: ( + offset: (-8.0, -7.0, -8.0), + central: ("npc.tidalwarrior.male.torso_lower"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Tidalwarrior, Female): ( + head: ( + offset: (-6.5, -6.5, -6.0), + central: ("npc.tidalwarrior.male.head"), + ), + torso_upper: ( + offset: (-9.0, -8.0, -10.5), + central: ("npc.tidalwarrior.male.torso_upper"), + ), + torso_lower: ( + offset: (-8.0, -7.0, -8.0), + central: ("npc.tidalwarrior.male.torso_lower"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Yeti, Male): ( + head: ( + offset: (-5.5, -4.0, -4.0), + central: ("npc.yeti.male.head"), + ), + torso_upper: ( + offset: (-8.5, -7.5, -8.5), + central: ("npc.yeti.male.torso_upper"), + ), + torso_lower: ( + offset: (-6.5, -5.0, -6.0), + central: ("npc.yeti.male.torso_lower"), + ), + jaw: ( + offset: (-6.5, 0.0, -4.5), + central: ("npc.yeti.male.jaw"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Yeti, Female): ( + head: ( + offset: (-5.5, -4.0, -4.0), + central: ("npc.yeti.male.head"), + ), + torso_upper: ( + offset: (-8.5, -7.5, -8.5), + central: ("npc.yeti.male.torso_upper"), + ), + torso_lower: ( + offset: (-6.5, -5.0, -6.0), + central: ("npc.yeti.male.torso_lower"), + ), + jaw: ( + offset: (-6.5, 0.0, -4.5), + central: ("npc.yeti.male.jaw"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Harvester, Male): ( + head: ( + offset: (-11.0, -10.0, -9.0), + central: ("npc.harvester.male.head"), + ), + torso_upper: ( + offset: (-6.0, -7.0, -5.5), + central: ("npc.harvester.male.torso_upper"), + ), + torso_lower: ( + offset: (-3.0, -4.0, -9.0), + central: ("npc.harvester.male.torso_lower"), + ), + jaw: ( + offset: (-4.0, 0.0, -2.0), + central: ("npc.harvester.male.jaw"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Harvester, Female): ( + head: ( + offset: (-11.0, -10.0, -9.0), + central: ("npc.harvester.male.head"), + ), + torso_upper: ( + offset: (-6.0, -7.0, -5.5), + central: ("npc.harvester.male.torso_upper"), + ), + torso_lower: ( + offset: (-3.0, -4.0, -9.0), + central: ("npc.harvester.male.torso_lower"), + ), + jaw: ( + offset: (-4.0, 0.0, -2.0), + central: ("npc.harvester.male.jaw"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Blueoni, Male): ( + head: ( + offset: (-7.5, -1.0, -9.0), + central: ("npc.oni_blue.male.head"), + ), + torso_upper: ( + offset: (-8.5, -12.0, -10.0), + central: ("npc.oni_blue.male.torso_upper"), + ), + torso_lower: ( + offset: (-6.5, -5.5, -13.0), + central: ("npc.oni_blue.male.torso_lower"), + ), + jaw: ( + offset: (-5.5, 0.0, -8.0), + central: ("npc.oni_blue.male.jaw"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Blueoni, Female): ( + head: ( + offset: (-7.5, -1.0, -9.0), + central: ("npc.oni_blue.male.head"), + ), + torso_upper: ( + offset: (-8.5, -12.0, -10.0), + central: ("npc.oni_blue.male.torso_upper"), + ), + torso_lower: ( + offset: (-6.5, -5.5, -13.0), + central: ("npc.oni_blue.male.torso_lower"), + ), + jaw: ( + offset: (-5.5, 0.0, -8.0), + central: ("npc.oni_blue.male.jaw"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Redoni, Male): ( + head: ( + offset: (-7.5, -1.0, -9.0), + central: ("npc.oni_red.male.head"), + ), + torso_upper: ( + offset: (-8.5, -12.0, -10.0), + central: ("npc.oni_red.male.torso_upper"), + ), + torso_lower: ( + offset: (-6.5, -5.5, -13.0), + central: ("npc.oni_red.male.torso_lower"), + ), + jaw: ( + offset: (-5.5, 0.0, -8.0), + central: ("npc.oni_red.male.jaw"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Redoni, Female): ( + head: ( + offset: (-7.5, -1.0, -9.0), + central: ("npc.oni_red.male.head"), + ), + torso_upper: ( + offset: (-8.5, -12.0, -10.0), + central: ("npc.oni_red.male.torso_upper"), + ), + torso_lower: ( + offset: (-6.5, -5.5, -13.0), + central: ("npc.oni_red.male.torso_lower"), + ), + jaw: ( + offset: (-5.5, 0.0, -8.0), + central: ("npc.oni_red.male.jaw"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Cultistwarlord, Male): ( + head: ( + offset: (-10.0, -6.0, -9.0), + central: ("npc.cultist_warlord.male.head"), + ), + torso_upper: ( + offset: (-8.0, -6.0, -6.0), + central: ("npc.cultist_warlord.male.torso_upper"), + ), + torso_lower: ( + offset: (-7.0, -5.0, -9.0), + central: ("npc.cultist_warlord.male.torso_lower"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Cultistwarlord, Female): ( + head: ( + offset: (-10.0, -6.0, -9.0), + central: ("npc.cultist_warlord.male.head"), + ), + torso_upper: ( + offset: (-8.0, -6.0, -6.0), + central: ("npc.cultist_warlord.male.torso_upper"), + ), + torso_lower: ( + offset: (-7.0, -5.0, -9.0), + central: ("npc.cultist_warlord.male.torso_lower"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Cultistwarlock, Male): ( + head: ( + offset: (-6.0, -5.5, -6.5), + central: ("npc.cultist_warlock.male.head"), + ), + torso_upper: ( + offset: (-7.0, -5.5, -5.5), + central: ("npc.cultist_warlock.male.torso_upper"), + ), + torso_lower: ( + offset: (-6.0, -4.5, -10.0), + central: ("npc.cultist_warlock.male.torso_lower"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Cultistwarlock, Female): ( + head: ( + offset: (-6.0, -5.5, -6.5), + central: ("npc.cultist_warlock.male.head"), + ), + torso_upper: ( + offset: (-7.0, -5.5, -5.5), + central: ("npc.cultist_warlock.male.torso_upper"), + ), + torso_lower: ( + offset: (-6.0, -4.5, -10.0), + central: ("npc.cultist_warlock.male.torso_lower"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Huskbrute, Male): ( + head: ( + offset: (-6.0, -6.0, -6.5), + central: ("npc.husk_brute.male.head"), + ), + torso_upper: ( + offset: (-8.0, -8.0, -8.0), + central: ("npc.husk_brute.male.torso_upper"), + ), + torso_lower: ( + offset: (-7.0, -6.5, -9.0), + central: ("npc.husk_brute.male.torso_lower"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Huskbrute, Female): ( + head: ( + offset: (-6.0, -6.0, -6.5), + central: ("npc.husk_brute.male.head"), + ), + torso_upper: ( + offset: (-8.0, -8.0, -8.0), + central: ("npc.husk_brute.male.torso_upper"), + ), + torso_lower: ( + offset: (-7.0, -6.5, -9.0), + central: ("npc.husk_brute.male.torso_lower"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Tursus, Male): ( + head: ( + offset: (-6.5, 0.0, -6.5), + central: ("npc.tursus.male.head"), + ), + torso_upper: ( + offset: (-8.0, -12.5, -10.5), + central: ("npc.tursus.male.torso_upper"), + ), + torso_lower: ( + offset: (-7.5, -7.0, -10.0), + central: ("npc.tursus.male.torso_lower"), + ), + jaw: ( + offset: (-4.5, 0.0, -4.0), + central: ("npc.tursus.male.jaw"), + ), + tail: ( + offset: (-4.0, -27.0, -6.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Tursus, Female): ( + head: ( + offset: (-6.5, 0.0, -6.5), + central: ("npc.tursus.male.head"), + ), + torso_upper: ( + offset: (-8.0, -12.5, -10.5), + central: ("npc.tursus.male.torso_upper"), + ), + torso_lower: ( + offset: (-7.5, -7.0, -10.0), + central: ("npc.tursus.male.torso_lower"), + ), + jaw: ( + offset: (-4.5, 0.0, -4.0), + central: ("npc.tursus.male.jaw"), + ), + tail: ( + offset: (-4.0, -27.0, -6.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Gigasfrost, Male): ( + head: ( + offset: (-13.0, -7.0, 0.0), + central: ("npc.gigas_frost.male.head"), + ), + torso_upper: ( + offset: (-11.0, -15.5, -10.0), + central: ("npc.gigas_frost.male.torso_upper"), + ), + torso_lower: ( + offset: (-15.0, -12.5, -17.0), + central: ("npc.gigas_frost.male.torso_lower"), + ), + jaw: ( + offset: (-3.0, 0.0, -3.5), + central: ("npc.gigas_frost.male.jaw"), + ), + tail: ( + offset: (-1.5, -17.0, -8.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Gigasfrost, Female): ( + head: ( + offset: (-13.0, -7.0, 0.0), + central: ("npc.gigas_frost.male.head"), + ), + torso_upper: ( + offset: (-11.0, -15.5, -10.0), + central: ("npc.gigas_frost.male.torso_upper"), + ), + torso_lower: ( + offset: (-15.0, -12.5, -17.0), + central: ("npc.gigas_frost.male.torso_lower"), + ), + jaw: ( + offset: (-3.0, 0.0, -3.5), + central: ("npc.gigas_frost.male.jaw"), + ), + tail: ( + offset: (-1.5, -17.0, -8.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (AdletElder, Male): ( + head: ( + offset: (-9.0, 0.0, -8.0), + central: ("npc.adlet.elder.male.head"), + ), + torso_upper: ( + offset: (-7.0, -7.0, -6.5), + central: ("npc.adlet.elder.male.torso_upper"), + ), + torso_lower: ( + offset: (-6.0, -6.0, -5.0), + central: ("npc.adlet.elder.male.torso_lower"), + ), + jaw: ( + offset: (-5.0, 0.0, -3.5), + central: ("npc.adlet.elder.male.jaw"), + ), + tail: ( + offset: (-2.0, -17.0, -1.0), + central: ("npc.adlet.elder.male.tail"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (AdletElder, Female): ( + head: ( + offset: (-9.0, 0.0, -8.0), + central: ("npc.adlet.elder.male.head"), + ), + torso_upper: ( + offset: (-7.0, -7.0, -6.5), + central: ("npc.adlet.elder.male.torso_upper"), + ), + torso_lower: ( + offset: (-6.0, -6.0, -5.0), + central: ("npc.adlet.elder.male.torso_lower"), + ), + jaw: ( + offset: (-5.0, 0.0, -3.5), + central: ("npc.adlet.elder.male.jaw"), + ), + tail: ( + offset: (-2.0, -17.0, -1.0), + central: ("npc.adlet.elder.male.tail"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (SeaBishop, Male): ( + head: ( + offset: (-7.0, -4.5, -8.5), + central: ("npc.sea_bishop.male.head"), + ), + torso_upper: ( + offset: (-4.0, -5.0, -5.0), + central: ("npc.sea_bishop.male.torso_upper"), + ), + torso_lower: ( + offset: (-6.0, -4.5, -11.0), + central: ("npc.sea_bishop.male.torso_lower"), + ), + jaw: ( + offset: (-2.0, 0.0, -2.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-4.0, -27.0, -6.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (SeaBishop, Female): ( + head: ( + offset: (-7.0, -4.5, -8.5), + central: ("npc.sea_bishop.male.head"), + ), + torso_upper: ( + offset: (-4.0, -5.0, -5.0), + central: ("npc.sea_bishop.male.torso_upper"), + ), + torso_lower: ( + offset: (-6.0, -4.5, -11.0), + central: ("npc.sea_bishop.male.torso_lower"), + ), + jaw: ( + offset: (-2.0, 0.0, -2.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-4.0, -27.0, -6.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (HaniwaGeneral, Male): ( + head: ( + offset: (-7.5, -6.5, -6.5), + central: ("npc.haniwa.general.haniwa_general"), + ), + torso_upper: ( + offset: (-6.5, -4.0, -4.5), + central: ("npc.haniwa.general.haniwa_general"), + model_index: 1, + ), + torso_lower: ( + offset: (-7.5, -6.0, -5.0), + central: ("npc.haniwa.general.haniwa_general"), + model_index: 2, + ), + jaw: ( + offset: (-5.0, 0.0, -3.5), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.0, -17.0, -1.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (HaniwaGeneral, Female): ( + head: ( + offset: (-7.5, -6.5, -6.5), + central: ("npc.haniwa.general.haniwa_general"), + ), + torso_upper: ( + offset: (-6.5, -4.0, -4.5), + central: ("npc.haniwa.general.haniwa_general"), + model_index: 1, + ), + torso_lower: ( + offset: (-7.5, -6.0, -5.0), + central: ("npc.haniwa.general.haniwa_general"), + model_index: 2, + ), + jaw: ( + offset: (-5.0, 0.0, -3.5), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.0, -17.0, -1.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (TerracottaBesieger, Male): ( + head: ( + offset: (-7.5, -8.5, -10.5), + central: ("npc.terracotta.terracotta_besieger"), + ), + torso_upper: ( + offset: (-9.5, -6.0, -6.0), + central: ("npc.terracotta.terracotta_besieger"), + model_index: 1, + ), + torso_lower: ( + offset: (-9.5, -6.0, -8.0), + central: ("npc.terracotta.terracotta_besieger"), + model_index: 2, + ), + jaw: ( + offset: (-5.0, 0.0, -3.5), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.0, -17.0, -1.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (TerracottaBesieger, Female): ( + head: ( + offset: (-7.5, -8.5, -10.5), + central: ("npc.terracotta.terracotta_besieger"), + ), + torso_upper: ( + offset: (-9.5, -6.0, -6.0), + central: ("npc.terracotta.terracotta_besieger"), + model_index: 1, + ), + torso_lower: ( + offset: (-9.5, -6.0, -8.0), + central: ("npc.terracotta.terracotta_besieger"), + model_index: 2, + ), + jaw: ( + offset: (-5.0, 0.0, -3.5), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.0, -17.0, -1.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (TerracottaDemolisher, Male): ( + head: ( + offset: (-6.5, -5.5, -7.5), + central: ("npc.terracotta.terracotta_demolisher"), + ), + torso_upper: ( + offset: (-6.5, -4.5, -5.0), + central: ("npc.terracotta.terracotta_demolisher"), + model_index: 1, + ), + torso_lower: ( + offset: (-7.5, -5.5, -6.0), + central: ("npc.terracotta.terracotta_demolisher"), + model_index: 2, + ), + jaw: ( + offset: (-5.0, 0.0, -3.5), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.0, -17.0, -1.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (TerracottaDemolisher, Female): ( + head: ( + offset: (-6.5, -5.5, -7.5), + central: ("npc.terracotta.terracotta_demolisher"), + ), + torso_upper: ( + offset: (-6.5, -4.5, -5.0), + central: ("npc.terracotta.terracotta_demolisher"), + model_index: 1, + ), + torso_lower: ( + offset: (-7.5, -5.5, -6.0), + central: ("npc.terracotta.terracotta_demolisher"), + model_index: 2, + ), + jaw: ( + offset: (-5.0, 0.0, -3.5), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.0, -17.0, -1.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (TerracottaPunisher, Male): ( + head: ( + offset: (-5.5, -5.5, -5.5), + central: ("npc.terracotta.terracotta_punisher"), + ), + torso_upper: ( + offset: (-6.5, -4.5, -5.0), + central: ("npc.terracotta.terracotta_punisher"), + model_index: 1, + ), + torso_lower: ( + offset: (-7.5, -6.0, -6.0), + central: ("npc.terracotta.terracotta_punisher"), + model_index: 2, + ), + jaw: ( + offset: (-5.0, 0.0, -3.5), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.0, -17.0, -1.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (TerracottaPunisher, Female): ( + head: ( + offset: (-5.5, -5.5, -5.5), + central: ("npc.terracotta.terracotta_punisher"), + ), + torso_upper: ( + offset: (-6.5, -4.5, -5.0), + central: ("npc.terracotta.terracotta_punisher"), + model_index: 1, + ), + torso_lower: ( + offset: (-7.5, -6.0, -6.0), + central: ("npc.terracotta.terracotta_punisher"), + model_index: 2, + ), + jaw: ( + offset: (-5.0, 0.0, -3.5), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.0, -17.0, -1.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (TerracottaPursuer, Male): ( + head: ( + offset: (-5.5, -8.5, -9.0), + central: ("npc.terracotta.terracotta_pursuer"), + ), + torso_upper: ( + offset: (-6.5, -4.5, -5.0), + central: ("npc.terracotta.terracotta_pursuer"), + model_index: 1, + ), + torso_lower: ( + offset: (-7.5, -6.0, -6.0), + central: ("npc.terracotta.terracotta_pursuer"), + model_index: 2, + ), + jaw: ( + offset: (-5.0, 0.0, -3.5), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.0, -17.0, -1.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (TerracottaPursuer, Female): ( + head: ( + offset: (-5.5, -8.5, -9.0), + central: ("npc.terracotta.terracotta_pursuer"), + ), + torso_upper: ( + offset: (-6.5, -4.5, -5.0), + central: ("npc.terracotta.terracotta_pursuer"), + model_index: 1, + ), + torso_lower: ( + offset: (-7.5, -6.0, -6.0), + central: ("npc.terracotta.terracotta_pursuer"), + model_index: 2, + ), + jaw: ( + offset: (-5.0, 0.0, -3.5), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.0, -17.0, -1.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Cursekeeper, Male): ( + head: ( + offset: (-11.0, -11.0, -8.0), + central: ("npc.terracotta.cursekeeper"), + ), + torso_upper: ( + offset: (-7.0, -6.5, -5.5), + central: ("npc.terracotta.cursekeeper"), + model_index: 1, + ), + torso_lower: ( + offset: (-7.0, -7.0, -18.0), + central: ("npc.terracotta.cursekeeper"), + model_index: 2, + ), + jaw: ( + offset: (-5.0, 0.0, -3.5), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.0, -17.0, -1.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Cursekeeper, Female): ( + head: ( + offset: (-11.0, -11.0, -8.0), + central: ("npc.terracotta.cursekeeper"), + ), + torso_upper: ( + offset: (-7.0, -6.5, -5.5), + central: ("npc.terracotta.cursekeeper"), + model_index: 1, + ), + torso_lower: ( + offset: (-7.0, -7.0, -18.0), + central: ("npc.terracotta.cursekeeper"), + model_index: 2, + ), + jaw: ( + offset: (-5.0, 0.0, -3.5), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.0, -17.0, -1.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Forgemaster, Male): ( + head: ( + offset: (-8.0, -6.5, 0.0), + central: ("npc.forgemaster.male.head"), + ), + torso_upper: ( + offset: (-21.0, -22.0, -12.0), + central: ("npc.forgemaster.male.torso_upper"), + ), + torso_lower: ( + offset: (-8.0, -7.0, -10.0), + central: ("npc.forgemaster.male.torso_lower"), + ), + jaw: ( + offset: (-3.0, 0.0, -3.5), + central: ("armor.empty"), + ), + tail: ( + offset: (-1.5, -17.0, -8.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Forgemaster, Female): ( + head: ( + offset: (-8.0, -6.5, 0.0), + central: ("npc.forgemaster.male.head"), + ), + torso_upper: ( + offset: (-21.0, -22.0, -12.0), + central: ("npc.forgemaster.male.torso_upper"), + ), + torso_lower: ( + offset: (-8.0, -7.0, -10.0), + central: ("npc.forgemaster.male.torso_lower"), + ), + jaw: ( + offset: (-3.0, 0.0, -3.5), + central: ("armor.empty"), + ), + tail: ( + offset: (-1.5, -17.0, -8.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Strigoi, Male): ( + head: ( + offset: (-9.5, -5.5, -6.0), + central: ("npc.strigoi.strigoi"), + ), + torso_upper: ( + offset: (-8.5, -9.5, -10.0), + central: ("npc.strigoi.strigoi"), + model_index: 1, + ), + torso_lower: ( + offset: (-5.5, -4.5, -6.0), + central: ("npc.strigoi.strigoi"), + model_index: 2, + ), + jaw: ( + offset: (-3.5, 0.0, -2.5), + central: ("npc.strigoi.strigoi"), + model_index: 3, + ), + tail: ( + offset: (-2.5, -22.0, -1.0), + central: ("npc.strigoi.strigoi"), + model_index: 4, + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Strigoi, Female): ( + head: ( + offset: (-9.5, -5.5, -6.0), + central: ("npc.strigoi.strigoi"), + ), + torso_upper: ( + offset: (-8.5, -9.5, -10.0), + central: ("npc.strigoi.strigoi"), + model_index: 1, + ), + torso_lower: ( + offset: (-5.5, -4.5, -6.0), + central: ("npc.strigoi.strigoi"), + model_index: 2, + ), + jaw: ( + offset: (-3.5, 0.0, -2.5), + central: ("npc.strigoi.strigoi"), + model_index: 3, + ), + tail: ( + offset: (-2.5, -22.0, -1.0), + central: ("npc.strigoi.strigoi"), + model_index: 4, + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Executioner, Male): ( + head: ( + offset: (-4.0, -6.0, -7.0), + central: ("npc.executioner.executioner"), + ), + torso_upper: ( + offset: (-7.0, -7.0, -6.0), + central: ("npc.executioner.executioner"), + model_index: 1, + ), + torso_lower: ( + offset: (-7.0, -7.5, -15.0), + central: ("npc.executioner.executioner"), + model_index: 2, + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Executioner, Female): ( + head: ( + offset: (-4.0, -6.0, -7.0), + central: ("npc.executioner.executioner"), + ), + torso_upper: ( + offset: (-7.0, -7.0, -6.0), + central: ("npc.executioner.executioner"), + model_index: 1, + ), + torso_lower: ( + offset: (-7.0, -7.5, -15.0), + central: ("npc.executioner.executioner"), + model_index: 2, + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), +}) diff --git a/assets/voxygen/voxel/biped_large_lateral_manifest.ron b/assets/voxygen/voxel/biped_large_lateral_manifest.ron new file mode 100644 index 0000000..53d4364 --- /dev/null +++ b/assets/voxygen/voxel/biped_large_lateral_manifest.ron @@ -0,0 +1,2434 @@ +({ + (Ogre, Male): ( + shoulder_l: ( + offset: (-6.0, -3.5, -6.5), + lateral: ("npc.ogre.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-6.0, -4.5, -6.5), + lateral: ("npc.ogre.male.shoulder_r"), + ), + hand_l: ( + offset: (-5.5, -3.5, -13.0), + lateral: ("npc.ogre.male.hand_l"), + ), + hand_r: ( + offset: (-5.5, -3.5, -13.0), + lateral: ("npc.ogre.male.hand_r"), + ), + leg_l: ( + offset: (-6.0, -3.5, -8.0), + lateral: ("npc.ogre.male.leg_l"), + ), + leg_r: ( + offset: (0.0, -3.5, -8.0), + lateral: ("npc.ogre.male.leg_r"), + ), + foot_l: ( + offset: (-3.0, -5.0, -8.0), + lateral: ("npc.ogre.male.foot_l"), + ), + foot_r: ( + offset: (-3.0, -5.5, -8.0), + lateral: ("npc.ogre.male.foot_r"), + ), + ), + (Ogre, Female): ( + shoulder_l: ( + offset: (-3.0, -3.0, -5.5), + lateral: ("npc.ogre.female.shoulder_l"), + ), + shoulder_r: ( + offset: (-3.0, -3.0, -5.5), + lateral: ("npc.ogre.female.shoulder_r"), + ), + hand_l: ( + offset: (-3.0, -3.0, -8.0), + lateral: ("npc.ogre.female.hand_l"), + ), + hand_r: ( + offset: (-3.0, -3.0, -8.0), + lateral: ("npc.ogre.female.hand_r"), + ), + leg_l: ( + offset: (-7.0, -3.5, -11.0), + lateral: ("npc.ogre.female.leg_l"), + ), + leg_r: ( + offset: (0.0, -3.5, -11.0), + lateral: ("npc.ogre.female.leg_r"), + ), + foot_l: ( + offset: (-3.0, -5.0, -8.0), + lateral: ("npc.ogre.female.foot_l"), + ), + foot_r: ( + offset: (-3.0, -5.0, -8.0), + lateral: ("npc.ogre.female.foot_r"), + ), + ), + (Cyclops, Male): ( + shoulder_l: ( + offset: (-6.5, -7.5, -7.0), + lateral: ("npc.cyclops.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-6.5, -7.5, -7.0), + lateral: ("npc.cyclops.male.shoulder_r"), + ), + hand_l: ( + offset: (-10.5, -5.5, -15.0), + lateral: ("npc.cyclops.male.hand_l"), + ), + hand_r: ( + offset: (-3.5, -5.5, -15.0), + lateral: ("npc.cyclops.male.hand_r"), + ), + leg_l: ( + offset: (-3.0, -3.5, -3.5), + lateral: ("npc.cyclops.male.leg_l"), + ), + leg_r: ( + offset: (-3.0, -3.5, -3.5), + lateral: ("npc.cyclops.male.leg_r"), + ), + foot_l: ( + offset: (-3.0, -5.5, -6.0), + lateral: ("npc.cyclops.male.foot_l"), + ), + foot_r: ( + offset: (-3.0, -5.5, -6.0), + lateral: ("npc.cyclops.male.foot_r"), + ), + ), + (Cyclops, Female): ( + shoulder_l: ( + offset: (-6.5, -7.5, -7.0), + lateral: ("npc.cyclops.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-6.5, -7.5, -7.0), + lateral: ("npc.cyclops.male.shoulder_r"), + ), + hand_l: ( + offset: (-10.5, -5.5, -15.0), + lateral: ("npc.cyclops.male.hand_l"), + ), + hand_r: ( + offset: (-3.5, -5.5, -15.0), + lateral: ("npc.cyclops.male.hand_r"), + ), + leg_l: ( + offset: (-3.0, -3.5, -3.5), + lateral: ("npc.cyclops.male.leg_l"), + ), + leg_r: ( + offset: (-3.0, -3.5, -3.5), + lateral: ("npc.cyclops.male.leg_r"), + ), + foot_l: ( + offset: (-3.0, -5.5, -6.0), + lateral: ("npc.cyclops.male.foot_l"), + ), + foot_r: ( + offset: (-3.0, -5.5, -6.0), + lateral: ("npc.cyclops.male.foot_r"), + ), + ), + (Wendigo, Male): ( + shoulder_l: ( + offset: (-3.0, -4.0, -8.5), + lateral: ("npc.wendigo.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-3.0, -4.0, -8.5), + lateral: ("npc.wendigo.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.0, -3.5, -15.0), + lateral: ("npc.wendigo.male.hand_l"), + ), + hand_r: ( + offset: (-4.0, -3.5, -15.0), + lateral: ("npc.wendigo.male.hand_r"), + ), + leg_l: ( + offset: (-4.0, -2.5, -9.0), + lateral: ("npc.wendigo.male.leg_l"), + ), + leg_r: ( + offset: (0.0, -2.5, -9.0), + lateral: ("npc.wendigo.male.leg_r"), + ), + foot_l: ( + offset: (-4.0, -5.0, -5.5), + lateral: ("npc.wendigo.male.foot_l"), + ), + foot_r: ( + offset: (-4.0, -5.0, -5.5), + lateral: ("npc.wendigo.male.foot_r"), + ), + ), + (Wendigo, Female): ( + shoulder_l: ( + offset: (-3.0, -4.0, -8.5), + lateral: ("npc.wendigo.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-3.0, -4.0, -8.5), + lateral: ("npc.wendigo.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.0, -3.5, -15.0), + lateral: ("npc.wendigo.male.hand_l"), + ), + hand_r: ( + offset: (-4.0, -3.5, -15.0), + lateral: ("npc.wendigo.male.hand_r"), + ), + leg_l: ( + offset: (-4.0, -2.5, -9.0), + lateral: ("npc.wendigo.male.leg_l"), + ), + leg_r: ( + offset: (0.0, -2.5, -9.0), + lateral: ("npc.wendigo.male.leg_r"), + ), + foot_l: ( + offset: (-4.0, -5.0, -5.5), + lateral: ("npc.wendigo.male.foot_l"), + ), + foot_r: ( + offset: (-4.0, -5.0, -5.5), + lateral: ("npc.wendigo.male.foot_r"), + ), + ), + (Cavetroll, Male): ( + shoulder_l: ( + offset: (-5.5, -4.0, -8.0), + lateral: ("npc.troll_cave.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-5.5, -4.0, -8.0), + lateral: ("npc.troll_cave.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.5, -4.0, -14.0), + lateral: ("npc.troll_cave.male.hand_l"), + ), + hand_r: ( + offset: (-4.5, -4.0, -14.0), + lateral: ("npc.troll_cave.male.hand_r"), + ), + leg_l: ( + offset: (-3.0, -3.0, -4.0), + lateral: ("npc.troll_cave.male.leg_l"), + ), + leg_r: ( + offset: (-3.0, -3.0, -4.0), + lateral: ("npc.troll_cave.male.leg_r"), + ), + foot_l: ( + offset: (-3.0, -5.0, -2.5), + lateral: ("npc.troll_cave.male.foot_l"), + ), + foot_r: ( + offset: (-3.0, -5.0, -2.5), + lateral: ("npc.troll_cave.male.foot_r"), + ), + ), + (Cavetroll, Female): ( + shoulder_l: ( + offset: (-5.5, -4.0, -8.0), + lateral: ("npc.troll_cave.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-5.5, -4.0, -8.0), + lateral: ("npc.troll_cave.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.5, -4.0, -14.0), + lateral: ("npc.troll_cave.male.hand_l"), + ), + hand_r: ( + offset: (-4.5, -4.0, -14.0), + lateral: ("npc.troll_cave.male.hand_r"), + ), + leg_l: ( + offset: (-3.0, -3.0, -4.0), + lateral: ("npc.troll_cave.male.leg_l"), + ), + leg_r: ( + offset: (-3.0, -3.0, -4.0), + lateral: ("npc.troll_cave.male.leg_r"), + ), + foot_l: ( + offset: (-3.0, -5.0, -2.5), + lateral: ("npc.troll_cave.male.foot_l"), + ), + foot_r: ( + offset: (-3.0, -5.0, -2.5), + lateral: ("npc.troll_cave.male.foot_r"), + ), + ), + (Mountaintroll, Male): ( + shoulder_l: ( + offset: (-6.5, -5.0, -8.5), + lateral: ("npc.troll_mountain.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-6.5, -5.0, -8.5), + lateral: ("npc.troll_mountain.male.shoulder_r"), + ), + hand_l: ( + offset: (-5.0, -4.5, -14.0), + lateral: ("npc.troll_mountain.male.hand_l"), + ), + hand_r: ( + offset: (-5.0, -4.5, -14.0), + lateral: ("npc.troll_mountain.male.hand_r"), + ), + leg_l: ( + offset: (-3.0, -3.0, -4.0), + lateral: ("npc.troll_mountain.male.leg_l"), + ), + leg_r: ( + offset: (-3.0, -3.0, -4.0), + lateral: ("npc.troll_mountain.male.leg_r"), + ), + foot_l: ( + offset: (-3.0, -5.0, -2.5), + lateral: ("npc.troll_mountain.male.foot_l"), + ), + foot_r: ( + offset: (-3.0, -5.0, -2.5), + lateral: ("npc.troll_mountain.male.foot_r"), + ), + ), + (Mountaintroll, Female): ( + shoulder_l: ( + offset: (-6.5, -5.0, -8.5), + lateral: ("npc.troll_mountain.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-6.5, -5.0, -8.5), + lateral: ("npc.troll_mountain.male.shoulder_r"), + ), + hand_l: ( + offset: (-5.0, -4.5, -14.0), + lateral: ("npc.troll_mountain.male.hand_l"), + ), + hand_r: ( + offset: (-5.0, -4.5, -14.0), + lateral: ("npc.troll_mountain.male.hand_r"), + ), + leg_l: ( + offset: (-3.0, -3.0, -4.0), + lateral: ("npc.troll_mountain.male.leg_l"), + ), + leg_r: ( + offset: (-3.0, -3.0, -4.0), + lateral: ("npc.troll_mountain.male.leg_r"), + ), + foot_l: ( + offset: (-3.0, -5.0, -2.5), + lateral: ("npc.troll_mountain.male.foot_l"), + ), + foot_r: ( + offset: (-3.0, -5.0, -2.5), + lateral: ("npc.troll_mountain.male.foot_r"), + ), + ), + (Swamptroll, Male): ( + shoulder_l: ( + offset: (-5.5, -5.0, -8.5), + lateral: ("npc.troll_swamp.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-5.5, -5.0, -8.5), + lateral: ("npc.troll_swamp.male.shoulder_r"), + ), + hand_l: ( + offset: (-5.0, -4.0, -16.0), + lateral: ("npc.troll_swamp.male.hand_l"), + ), + hand_r: ( + offset: (-5.0, -4.0, -16.0), + lateral: ("npc.troll_swamp.male.hand_r"), + ), + leg_l: ( + offset: (-3.0, -3.0, -4.0), + lateral: ("npc.troll_swamp.male.leg_l"), + ), + leg_r: ( + offset: (-3.0, -3.0, -4.0), + lateral: ("npc.troll_swamp.male.leg_r"), + ), + foot_l: ( + offset: (-3.0, -5.0, -2.5), + lateral: ("npc.troll_swamp.male.foot_l"), + ), + foot_r: ( + offset: (-3.0, -5.0, -2.5), + lateral: ("npc.troll_swamp.male.foot_r"), + ), + ), + (Swamptroll, Female): ( + shoulder_l: ( + offset: (-5.5, -5.0, -8.5), + lateral: ("npc.troll_swamp.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-5.5, -5.0, -8.5), + lateral: ("npc.troll_swamp.male.shoulder_r"), + ), + hand_l: ( + offset: (-5.0, -4.0, -16.0), + lateral: ("npc.troll_swamp.male.hand_l"), + ), + hand_r: ( + offset: (-5.0, -4.0, -16.0), + lateral: ("npc.troll_swamp.male.hand_r"), + ), + leg_l: ( + offset: (-3.0, -3.0, -4.0), + lateral: ("npc.troll_swamp.male.leg_l"), + ), + leg_r: ( + offset: (-3.0, -3.0, -4.0), + lateral: ("npc.troll_swamp.male.leg_r"), + ), + foot_l: ( + offset: (-3.0, -5.0, -2.5), + lateral: ("npc.troll_swamp.male.foot_l"), + ), + foot_r: ( + offset: (-3.0, -5.0, -2.5), + lateral: ("npc.troll_swamp.male.foot_r"), + ), + ), + (Dullahan, Male): ( + shoulder_l: ( + offset: (-7.5, -5.5, -6.0), + lateral: ("npc.dullahan.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-7.5, -5.5, -6.0), + lateral: ("npc.dullahan.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.5, -4.5, -15.0), + lateral: ("npc.dullahan.male.hand_l"), + ), + hand_r: ( + offset: (-4.5, -4.5, -15.0), + lateral: ("npc.dullahan.male.hand_r"), + ), + leg_l: ( + offset: (-6.0, -3.0, -7.0), + lateral: ("npc.dullahan.male.leg_l"), + ), + leg_r: ( + offset: (0.0, -3.0, -7.0), + lateral: ("npc.dullahan.male.leg_r"), + ), + foot_l: ( + offset: (-3.0, -5.0, -8.0), + lateral: ("npc.dullahan.male.foot_l"), + ), + foot_r: ( + offset: (-3.0, -5.0, -8.0), + lateral: ("npc.dullahan.male.foot_r"), + ), + ), + (Dullahan, Female): ( + shoulder_l: ( + offset: (-7.5, -5.5, -6.0), + lateral: ("npc.dullahan.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-7.5, -5.5, -6.0), + lateral: ("npc.dullahan.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.5, -4.5, -15.0), + lateral: ("npc.dullahan.male.hand_l"), + ), + hand_r: ( + offset: (-4.5, -4.5, -15.0), + lateral: ("npc.dullahan.male.hand_r"), + ), + leg_l: ( + offset: (-6.0, -3.0, -7.0), + lateral: ("npc.dullahan.male.leg_l"), + ), + leg_r: ( + offset: (0.0, -3.0, -7.0), + lateral: ("npc.dullahan.male.leg_r"), + ), + foot_l: ( + offset: (-3.0, -5.0, -8.0), + lateral: ("npc.dullahan.male.foot_l"), + ), + foot_r: ( + offset: (-3.0, -5.0, -8.0), + lateral: ("npc.dullahan.male.foot_r"), + ), + ), + (Werewolf, Male): ( + shoulder_l: ( + offset: (-4.0, -6.0, -8.0), + lateral: ("npc.werewolf.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-4.0, -6.0, -8.0), + lateral: ("npc.werewolf.male.shoulder_r"), + ), + hand_l: ( + offset: (-3.0, -3.0, -13.0), + lateral: ("npc.werewolf.male.hand_l"), + ), + hand_r: ( + offset: (-3.0, -3.0, -13.0), + lateral: ("npc.werewolf.male.hand_r"), + ), + leg_l: ( + offset: (-2.5, -4.0, -4.5), + lateral: ("npc.werewolf.male.leg_l"), + ), + leg_r: ( + offset: (-2.5, -4.0, -4.5), + lateral: ("npc.werewolf.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -6.0, -9.0), + lateral: ("npc.werewolf.male.foot_l"), + ), + foot_r: ( + offset: (-3.5, -6.0, -9.0), + lateral: ("npc.werewolf.male.foot_r"), + ), + ), + (Werewolf, Female): ( + shoulder_l: ( + offset: (-4.0, -6.0, -8.0), + lateral: ("npc.werewolf.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-4.0, -6.0, -8.0), + lateral: ("npc.werewolf.male.shoulder_r"), + ), + hand_l: ( + offset: (-3.0, -3.0, -13.0), + lateral: ("npc.werewolf.male.hand_l"), + ), + hand_r: ( + offset: (-3.0, -3.0, -13.0), + lateral: ("npc.werewolf.male.hand_r"), + ), + leg_l: ( + offset: (-2.5, -4.0, -4.5), + lateral: ("npc.werewolf.male.leg_l"), + ), + leg_r: ( + offset: (-2.5, -4.0, -4.5), + lateral: ("npc.werewolf.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -6.0, -9.0), + lateral: ("npc.werewolf.male.foot_l"), + ), + foot_r: ( + offset: (-3.5, -6.0, -9.0), + lateral: ("npc.werewolf.male.foot_r"), + ), + ), + (Occultsaurok, Male): ( + shoulder_l: ( + offset: (-3.5, -3.5, -6.5), + lateral: ("npc.saurok_occult.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-3.5, -3.5, -6.5), + lateral: ("npc.saurok_occult.male.shoulder_r"), + ), + hand_l: ( + offset: (-2.0, -2.0, -10.0), + lateral: ("npc.saurok_occult.male.hand_l"), + ), + hand_r: ( + offset: (-2.0, -2.0, -10.0), + lateral: ("npc.saurok_occult.male.hand_r"), + ), + leg_l: ( + offset: (-2.0, -1.5, -6.5), + lateral: ("npc.saurok_occult.male.leg_l"), + ), + leg_r: ( + offset: (-2.0, -1.5, -6.5), + lateral: ("npc.saurok_occult.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -5.5, -9.0), + lateral: ("npc.saurok_occult.male.foot_l"), + ), + foot_r: ( + offset: (-2.5, -5.5, -9.0), + lateral: ("npc.saurok_occult.male.foot_r"), + ), + ), + (Occultsaurok, Female): ( + shoulder_l: ( + offset: (-3.5, -3.5, -6.5), + lateral: ("npc.saurok_occult.female.shoulder_l"), + ), + shoulder_r: ( + offset: (-3.5, -3.5, -6.5), + lateral: ("npc.saurok_occult.female.shoulder_r"), + ), + hand_l: ( + offset: (-2.0, -2.0, -10.0), + lateral: ("npc.saurok_occult.female.hand_l"), + ), + hand_r: ( + offset: (-2.0, -2.0, -10.0), + lateral: ("npc.saurok_occult.female.hand_r"), + ), + leg_l: ( + offset: (-2.0, -1.5, -6.5), + lateral: ("npc.saurok_occult.female.leg_l"), + ), + leg_r: ( + offset: (-2.0, -1.5, -6.5), + lateral: ("npc.saurok_occult.female.leg_r"), + ), + foot_l: ( + offset: (-2.5, -5.5, -9.0), + lateral: ("npc.saurok_occult.female.foot_l"), + ), + foot_r: ( + offset: (-2.5, -5.5, -9.0), + lateral: ("npc.saurok_occult.female.foot_r"), + ), + ), + (Mightysaurok, Male): ( + shoulder_l: ( + offset: (-3.5, -3.5, -6.5), + lateral: ("npc.saurok_mighty.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-3.5, -3.5, -6.5), + lateral: ("npc.saurok_mighty.male.shoulder_r"), + ), + hand_l: ( + offset: (-2.0, -2.0, -10.0), + lateral: ("npc.saurok_mighty.male.hand_l"), + ), + hand_r: ( + offset: (-2.0, -2.0, -10.0), + lateral: ("npc.saurok_mighty.male.hand_r"), + ), + leg_l: ( + offset: (-2.0, -1.5, -6.5), + lateral: ("npc.saurok_mighty.male.leg_l"), + ), + leg_r: ( + offset: (-2.0, -1.5, -6.5), + lateral: ("npc.saurok_mighty.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -5.5, -9.0), + lateral: ("npc.saurok_mighty.male.foot_l"), + ), + foot_r: ( + offset: (-2.5, -5.5, -9.0), + lateral: ("npc.saurok_mighty.male.foot_r"), + ), + ), + (Mightysaurok, Female): ( + shoulder_l: ( + offset: (-3.5, -3.5, -6.5), + lateral: ("npc.saurok_mighty.female.shoulder_l"), + ), + shoulder_r: ( + offset: (-3.5, -3.5, -6.5), + lateral: ("npc.saurok_mighty.female.shoulder_r"), + ), + hand_l: ( + offset: (-2.0, -2.0, -10.0), + lateral: ("npc.saurok_mighty.female.hand_l"), + ), + hand_r: ( + offset: (-2.0, -2.0, -10.0), + lateral: ("npc.saurok_mighty.female.hand_r"), + ), + leg_l: ( + offset: (-2.0, -1.5, -6.5), + lateral: ("npc.saurok_mighty.female.leg_l"), + ), + leg_r: ( + offset: (-2.0, -1.5, -6.5), + lateral: ("npc.saurok_mighty.female.leg_r"), + ), + foot_l: ( + offset: (-2.5, -5.5, -9.0), + lateral: ("npc.saurok_mighty.female.foot_l"), + ), + foot_r: ( + offset: (-2.5, -5.5, -9.0), + lateral: ("npc.saurok_mighty.female.foot_r"), + ), + ), + (Slysaurok, Male): ( + shoulder_l: ( + offset: (-3.5, -3.5, -6.5), + lateral: ("npc.saurok_sly.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-3.5, -3.5, -6.5), + lateral: ("npc.saurok_sly.male.shoulder_r"), + ), + hand_l: ( + offset: (-2.0, -2.0, -10.0), + lateral: ("npc.saurok_sly.male.hand_l"), + ), + hand_r: ( + offset: (-2.0, -2.0, -10.0), + lateral: ("npc.saurok_sly.male.hand_r"), + ), + leg_l: ( + offset: (-2.0, -1.5, -6.5), + lateral: ("npc.saurok_sly.male.leg_l"), + ), + leg_r: ( + offset: (-2.0, -1.5, -6.5), + lateral: ("npc.saurok_sly.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -5.5, -9.0), + lateral: ("npc.saurok_sly.male.foot_l"), + ), + foot_r: ( + offset: (-2.5, -5.5, -9.0), + lateral: ("npc.saurok_sly.male.foot_r"), + ), + ), + (Slysaurok, Female): ( + shoulder_l: ( + offset: (-3.5, -3.5, -6.5), + lateral: ("npc.saurok_sly.female.shoulder_l"), + ), + shoulder_r: ( + offset: (-3.5, -3.5, -6.5), + lateral: ("npc.saurok_sly.female.shoulder_r"), + ), + hand_l: ( + offset: (-2.0, -2.0, -10.0), + lateral: ("npc.saurok_sly.female.hand_l"), + ), + hand_r: ( + offset: (-2.0, -2.0, -10.0), + lateral: ("npc.saurok_sly.female.hand_r"), + ), + leg_l: ( + offset: (-2.0, -1.5, -6.5), + lateral: ("npc.saurok_sly.female.leg_l"), + ), + leg_r: ( + offset: (-2.0, -1.5, -6.5), + lateral: ("npc.saurok_sly.female.leg_r"), + ), + foot_l: ( + offset: (-2.5, -5.5, -9.0), + lateral: ("npc.saurok_sly.female.foot_l"), + ), + foot_r: ( + offset: (-2.5, -5.5, -9.0), + lateral: ("npc.saurok_sly.female.foot_r"), + ), + ), + (Mindflayer, Male): ( + shoulder_l: ( + offset: (-4.5, -3.0, -4.0), + lateral: ("npc.mindflayer.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-4.5, -3.0, -4.0), + lateral: ("npc.mindflayer.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.5, -4.0, -12.0), + lateral: ("npc.mindflayer.male.hand_l"), + ), + hand_r: ( + offset: (-4.5, -4.0, -12.0), + lateral: ("npc.mindflayer.male.hand_r"), + ), + leg_l: ( + offset: (-6.5, -10.0, -16.0), + lateral: ("armor.empty"), + ), + leg_r: ( + offset: (-6.5, -10.0, -16.0), + lateral: ("armor.empty"), + ), + foot_l: ( + offset: (-2.0, -4.5, -4.0), + lateral: ("npc.mindflayer.male.foot_l"), + ), + foot_r: ( + offset: (-2.0, -4.5, -4.0), + lateral: ("npc.mindflayer.male.foot_r"), + ) + ), + (Mindflayer, Female): ( + shoulder_l: ( + offset: (-4.5, -3.0, -4.0), + lateral: ("npc.mindflayer.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-4.5, -3.0, -4.0), + lateral: ("npc.mindflayer.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.5, -4.0, -12.0), + lateral: ("npc.mindflayer.male.hand_l"), + ), + hand_r: ( + offset: (-4.5, -4.0, -12.0), + lateral: ("npc.mindflayer.male.hand_r"), + ), + leg_l: ( + offset: (-6.5, -10.0, -16.0), + lateral: ("armor.empty"), + ), + leg_r: ( + offset: (-6.5, -10.0, -16.0), + lateral: ("armor.empty"), + ), + foot_l: ( + offset: (-2.0, -4.5, -4.0), + lateral: ("npc.mindflayer.male.foot_l"), + ), + foot_r: ( + offset: (-2.0, -4.5, -4.0), + lateral: ("npc.mindflayer.male.foot_r"), + ) + ), + (Minotaur, Male): ( + shoulder_l: ( + offset: (-3.5, -3.5, -7.5), + lateral: ("npc.minotaur.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-3.5, -3.5, -7.5), + lateral: ("npc.minotaur.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.0, -4.5, -14.0), + lateral: ("npc.minotaur.male.hand_l"), + ), + hand_r: ( + offset: (-4.0, -4.5, -14.0), + lateral: ("npc.minotaur.male.hand_r"), + ), + leg_l: ( + offset: (-2.5, -4.0, -3.5), + lateral: ("npc.minotaur.male.leg_l"), + ), + leg_r: ( + offset: (-2.5, -4.0, -3.5), + lateral: ("npc.minotaur.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -9.0, -5.0), + lateral: ("npc.minotaur.male.foot_l"), + ), + foot_r: ( + offset: (-3.5, -9.0, -5.0), + lateral: ("npc.minotaur.male.foot_r"), + ) + ), + (Minotaur, Female): ( + shoulder_l: ( + offset: (-3.5, -3.5, -7.5), + lateral: ("npc.minotaur.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-3.5, -3.5, -7.5), + lateral: ("npc.minotaur.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.0, -4.5, -14.0), + lateral: ("npc.minotaur.male.hand_l"), + ), + hand_r: ( + offset: (-4.0, -4.5, -14.0), + lateral: ("npc.minotaur.male.hand_r"), + ), + leg_l: ( + offset: (-2.5, -4.0, -3.5), + lateral: ("npc.minotaur.male.leg_l"), + ), + leg_r: ( + offset: (-2.5, -4.0, -3.5), + lateral: ("npc.minotaur.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -9.0, -5.0), + lateral: ("npc.minotaur.male.foot_l"), + ), + foot_r: ( + offset: (-3.5, -9.0, -5.0), + lateral: ("npc.minotaur.male.foot_r"), + ) + ), + (Tidalwarrior, Male): ( + shoulder_l: ( + offset: (-5.5, -5.5, -6.5), + lateral: ("npc.tidalwarrior.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-5.5, -5.5, -6.5), + lateral: ("npc.tidalwarrior.male.shoulder_r"), + ), + hand_l: ( + offset: (-6.0, -3.5, -18.0), + lateral: ("npc.tidalwarrior.male.hand_l"), + ), + hand_r: ( + offset: (-6.0, -3.5, -18.0), + lateral: ("npc.tidalwarrior.male.hand_r"), + ), + leg_l: ( + offset: (-2.5, -3.0, -3.5), + lateral: ("npc.tidalwarrior.male.leg_l"), + ), + leg_r: ( + offset: (-2.5, -3.0, -3.5), + lateral: ("npc.tidalwarrior.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -4.5, -4.5), + lateral: ("npc.tidalwarrior.male.foot_l"), + ), + foot_r: ( + offset: (-2.5, -4.5, -4.5), + lateral: ("npc.tidalwarrior.male.foot_r"), + ) + ), + (Tidalwarrior, Female): ( + shoulder_l: ( + offset: (-5.5, -5.5, -6.5), + lateral: ("npc.tidalwarrior.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-5.5, -5.5, -6.5), + lateral: ("npc.tidalwarrior.male.shoulder_r"), + ), + hand_l: ( + offset: (-6.0, -3.5, -18.0), + lateral: ("npc.tidalwarrior.male.hand_l"), + ), + hand_r: ( + offset: (-6.0, -3.5, -18.0), + lateral: ("npc.tidalwarrior.male.hand_r"), + ), + leg_l: ( + offset: (-2.5, -3.0, -3.5), + lateral: ("npc.tidalwarrior.male.leg_l"), + ), + leg_r: ( + offset: (-2.5, -3.0, -3.5), + lateral: ("npc.tidalwarrior.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -4.5, -4.5), + lateral: ("npc.tidalwarrior.male.foot_l"), + ), + foot_r: ( + offset: (-2.5, -4.5, -4.5), + lateral: ("npc.tidalwarrior.male.foot_r"), + ) + ), + (Yeti, Male): ( + shoulder_l: ( + offset: (-3.5, -3.5, -4.5), + lateral: ("npc.yeti.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-3.5, -3.5, -4.5), + lateral: ("npc.yeti.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.0, -4.0, -12.0), + lateral: ("npc.yeti.male.hand_l"), + ), + hand_r: ( + offset: (-4.0, -4.0, -12.0), + lateral: ("npc.yeti.male.hand_r"), + ), + leg_l: ( + offset: (-2.5, -4.0, -3.5), + lateral: ("npc.yeti.male.leg_l"), + ), + leg_r: ( + offset: (-2.5, -4.0, -3.5), + lateral: ("npc.yeti.male.leg_r"), + ), + foot_l: ( + offset: (-3.0, -4.5, -4.0), + lateral: ("npc.yeti.male.foot_l"), + ), + foot_r: ( + offset: (-3.0, -4.5, -4.0), + lateral: ("npc.yeti.male.foot_r"), + ) + ), + (Yeti, Female): ( + shoulder_l: ( + offset: (-3.5, -3.5, -4.5), + lateral: ("npc.yeti.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-3.5, -3.5, -4.5), + lateral: ("npc.yeti.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.0, -4.0, -12.0), + lateral: ("npc.yeti.male.hand_l"), + ), + hand_r: ( + offset: (-4.0, -4.0, -12.0), + lateral: ("npc.yeti.male.hand_r"), + ), + leg_l: ( + offset: (-2.5, -4.0, -3.5), + lateral: ("npc.yeti.male.leg_l"), + ), + leg_r: ( + offset: (-2.5, -4.0, -3.5), + lateral: ("npc.yeti.male.leg_r"), + ), + foot_l: ( + offset: (-3.0, -4.5, -4.0), + lateral: ("npc.yeti.male.foot_l"), + ), + foot_r: ( + offset: (-3.0, -4.5, -4.0), + lateral: ("npc.yeti.male.foot_r"), + ) + ), + (Harvester, Male): ( + shoulder_l: ( + offset: (-3.0, -2.5, -4.0), + lateral: ("npc.harvester.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-3.0, -2.5, -4.0), + lateral: ("npc.harvester.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.0, -2.0, -10.0), + lateral: ("npc.harvester.male.hand_l"), + ), + hand_r: ( + offset: (-4.0, -2.0, -10.0), + lateral: ("npc.harvester.male.hand_r"), + ), + leg_l: ( + offset: (-2.5, -3.0, -3.0), + lateral: ("npc.harvester.male.leg_l"), + ), + leg_r: ( + offset: (-2.5, -3.0, -3.0), + lateral: ("npc.harvester.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -4.0, -4.0), + lateral: ("npc.harvester.male.foot_l"), + ), + foot_r: ( + offset: (-3.5, -4.0, -4.0), + lateral: ("npc.harvester.male.foot_r"), + ) + ), + (Harvester, Female): ( + shoulder_l: ( + offset: (-3.0, -2.5, -4.0), + lateral: ("npc.harvester.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-3.0, -2.5, -4.0), + lateral: ("npc.harvester.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.0, -2.0, -10.0), + lateral: ("npc.harvester.male.hand_l"), + ), + hand_r: ( + offset: (-4.0, -2.0, -10.0), + lateral: ("npc.harvester.male.hand_r"), + ), + leg_l: ( + offset: (-2.5, -3.0, -3.0), + lateral: ("npc.harvester.male.leg_l"), + ), + leg_r: ( + offset: (-2.5, -3.0, -3.0), + lateral: ("npc.harvester.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -4.0, -4.0), + lateral: ("npc.harvester.male.foot_l"), + ), + foot_r: ( + offset: (-3.5, -4.0, -4.0), + lateral: ("npc.harvester.male.foot_r"), + ) + ), + (Blueoni, Male): ( + shoulder_l: ( + offset: (-4.0, -4.5, -5.0), + lateral: ("npc.oni_blue.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-4.0, -4.5, -5.0), + lateral: ("npc.oni_blue.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.5, -4.0, -12.0), + lateral: ("npc.oni_blue.male.hand_l"), + ), + hand_r: ( + offset: (-4.5, -4.0, -12.0), + lateral: ("npc.oni_blue.male.hand_r"), + ), + leg_l: ( + offset: (-2.5, -4.0, -3.5), + lateral: ("npc.oni_blue.male.leg_l"), + ), + leg_r: ( + offset: (-2.5, -4.0, -3.5), + lateral: ("npc.oni_blue.male.leg_r"), + ), + foot_l: ( + offset: (-3.0, -5.0, -4.5), + lateral: ("npc.oni_blue.male.foot_l"), + ), + foot_r: ( + offset: (-3.0, -5.0, -4.5), + lateral: ("npc.oni_blue.male.foot_r"), + ) + ), + (Blueoni, Female): ( + shoulder_l: ( + offset: (-4.0, -4.5, -5.0), + lateral: ("npc.oni_blue.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-4.0, -4.5, -5.0), + lateral: ("npc.oni_blue.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.5, -4.0, -12.0), + lateral: ("npc.oni_blue.male.hand_l"), + ), + hand_r: ( + offset: (-4.5, -4.0, -12.0), + lateral: ("npc.oni_blue.male.hand_r"), + ), + leg_l: ( + offset: (-2.5, -4.0, -3.5), + lateral: ("npc.oni_blue.male.leg_l"), + ), + leg_r: ( + offset: (-2.5, -4.0, -3.5), + lateral: ("npc.oni_blue.male.leg_r"), + ), + foot_l: ( + offset: (-3.0, -5.0, -4.5), + lateral: ("npc.oni_blue.male.foot_l"), + ), + foot_r: ( + offset: (-3.0, -5.0, -4.5), + lateral: ("npc.oni_blue.male.foot_r"), + ) + ), + (Redoni, Male): ( + shoulder_l: ( + offset: (-4.0, -4.5, -5.0), + lateral: ("npc.oni_red.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-4.0, -4.5, -5.0), + lateral: ("npc.oni_red.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.5, -4.0, -12.0), + lateral: ("npc.oni_red.male.hand_l"), + ), + hand_r: ( + offset: (-4.5, -4.0, -12.0), + lateral: ("npc.oni_red.male.hand_r"), + ), + leg_l: ( + offset: (-2.5, -4.0, -3.5), + lateral: ("npc.oni_red.male.leg_l"), + ), + leg_r: ( + offset: (-2.5, -4.0, -3.5), + lateral: ("npc.oni_red.male.leg_r"), + ), + foot_l: ( + offset: (-3.0, -5.0, -4.5), + lateral: ("npc.oni_red.male.foot_l"), + ), + foot_r: ( + offset: (-3.0, -5.0, -4.5), + lateral: ("npc.oni_red.male.foot_r"), + ) + ), + (Redoni, Female): ( + shoulder_l: ( + offset: (-4.0, -4.5, -5.0), + lateral: ("npc.oni_red.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-4.0, -4.5, -5.0), + lateral: ("npc.oni_red.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.5, -4.0, -12.0), + lateral: ("npc.oni_red.male.hand_l"), + ), + hand_r: ( + offset: (-4.5, -4.0, -12.0), + lateral: ("npc.oni_red.male.hand_r"), + ), + leg_l: ( + offset: (-2.5, -4.0, -3.5), + lateral: ("npc.oni_red.male.leg_l"), + ), + leg_r: ( + offset: (-2.5, -4.0, -3.5), + lateral: ("npc.oni_red.male.leg_r"), + ), + foot_l: ( + offset: (-3.0, -5.0, -4.5), + lateral: ("npc.oni_red.male.foot_l"), + ), + foot_r: ( + offset: (-3.0, -5.0, -4.5), + lateral: ("npc.oni_red.male.foot_r"), + ) + ), + (Cultistwarlord, Male): ( + shoulder_l: ( + offset: (-6.0, -5.5, -6.0), + lateral: ("npc.cultist_warlord.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-6.0, -5.5, -6.0), + lateral: ("npc.cultist_warlord.male.shoulder_r"), + ), + hand_l: ( + offset: (-3.5, -3.5, -10.0), + lateral: ("npc.cultist_warlord.male.hand_l"), + ), + hand_r: ( + offset: (-3.5, -3.5, -10.0), + lateral: ("npc.cultist_warlord.male.hand_r"), + ), + leg_l: ( + offset: (-1.5, -2.0, -2.5), + lateral: ("npc.cultist_warlord.male.leg_l"), + ), + leg_r: ( + offset: (-1.5, -2.0, -2.5), + lateral: ("npc.cultist_warlord.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -4.0, -4.0), + lateral: ("npc.cultist_warlord.male.foot_l"), + ), + foot_r: ( + offset: (-2.5, -4.0, -4.0), + lateral: ("npc.cultist_warlord.male.foot_r"), + ) + ), + (Cultistwarlord, Female): ( + shoulder_l: ( + offset: (-6.0, -5.5, -6.0), + lateral: ("npc.cultist_warlord.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-6.0, -5.5, -6.0), + lateral: ("npc.cultist_warlord.male.shoulder_r"), + ), + hand_l: ( + offset: (-3.5, -3.5, -10.0), + lateral: ("npc.cultist_warlord.male.hand_l"), + ), + hand_r: ( + offset: (-3.5, -3.5, -10.0), + lateral: ("npc.cultist_warlord.male.hand_r"), + ), + leg_l: ( + offset: (-1.5, -2.0, -2.5), + lateral: ("npc.cultist_warlord.male.leg_l"), + ), + leg_r: ( + offset: (-1.5, -2.0, -2.5), + lateral: ("npc.cultist_warlord.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -4.0, -4.0), + lateral: ("npc.cultist_warlord.male.foot_l"), + ), + foot_r: ( + offset: (-2.5, -4.0, -4.0), + lateral: ("npc.cultist_warlord.male.foot_r"), + ) + ), + (Cultistwarlock, Male): ( + shoulder_l: ( + offset: (-3.5, -3.5, -3.0), + lateral: ("npc.cultist_warlock.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-3.5, -3.5, -3.0), + lateral: ("npc.cultist_warlock.male.shoulder_r"), + ), + hand_l: ( + offset: (-3.5, -3.5, -10.0), + lateral: ("npc.cultist_warlock.male.hand_l"), + ), + hand_r: ( + offset: (-3.5, -3.5, -10.0), + lateral: ("npc.cultist_warlock.male.hand_r"), + ), + leg_l: ( + offset: (-1.5, -2.0, -2.5), + lateral: ("npc.cultist_warlock.male.leg_l"), + ), + leg_r: ( + offset: (-1.5, -2.0, -2.5), + lateral: ("npc.cultist_warlock.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -4.0, -4.0), + lateral: ("npc.cultist_warlock.male.foot_l"), + ), + foot_r: ( + offset: (-2.5, -4.0, -4.0), + lateral: ("npc.cultist_warlock.male.foot_r"), + ) + ), + (Cultistwarlock, Female): ( + shoulder_l: ( + offset: (-3.5, -3.5, -3.0), + lateral: ("npc.cultist_warlock.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-3.5, -3.5, -3.0), + lateral: ("npc.cultist_warlock.male.shoulder_r"), + ), + hand_l: ( + offset: (-3.5, -3.5, -10.0), + lateral: ("npc.cultist_warlock.male.hand_l"), + ), + hand_r: ( + offset: (-3.5, -3.5, -10.0), + lateral: ("npc.cultist_warlock.male.hand_r"), + ), + leg_l: ( + offset: (-1.5, -2.0, -2.5), + lateral: ("npc.cultist_warlock.male.leg_l"), + ), + leg_r: ( + offset: (-1.5, -2.0, -2.5), + lateral: ("npc.cultist_warlock.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -4.0, -4.0), + lateral: ("npc.cultist_warlock.male.foot_l"), + ), + foot_r: ( + offset: (-2.5, -4.0, -4.0), + lateral: ("npc.cultist_warlock.male.foot_r"), + ) + ), + (Huskbrute, Male): ( + shoulder_l: ( + offset: (-4.0, -4.5, -4.0), + lateral: ("npc.husk_brute.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-4.0, -4.5, -4.0), + lateral: ("npc.husk_brute.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.0, -3.5, -17.0), + lateral: ("npc.husk_brute.male.hand_l"), + ), + hand_r: ( + offset: (-4.0, -3.5, -17.0), + lateral: ("npc.husk_brute.male.hand_r"), + ), + leg_l: ( + offset: (-2.0, -2.5, -3.5), + lateral: ("npc.husk_brute.male.leg_l"), + ), + leg_r: ( + offset: (-2.0, -2.5, -3.5), + lateral: ("npc.husk_brute.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -3.5, -3.5), + lateral: ("npc.husk_brute.male.foot_l"), + ), + foot_r: ( + offset: (-2.5, -3.5, -3.5), + lateral: ("npc.husk_brute.male.foot_r"), + ) + ), + (Huskbrute, Female): ( + shoulder_l: ( + offset: (-4.0, -4.5, -4.0), + lateral: ("npc.husk_brute.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-4.0, -4.5, -4.0), + lateral: ("npc.husk_brute.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.0, -3.5, -17.0), + lateral: ("npc.husk_brute.male.hand_l"), + ), + hand_r: ( + offset: (-4.0, -3.5, -17.0), + lateral: ("npc.husk_brute.male.hand_r"), + ), + leg_l: ( + offset: (-2.0, -2.5, -3.5), + lateral: ("npc.husk_brute.male.leg_l"), + ), + leg_r: ( + offset: (-2.0, -2.5, -3.5), + lateral: ("npc.husk_brute.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -3.5, -3.5), + lateral: ("npc.husk_brute.male.foot_l"), + ), + foot_r: ( + offset: (-2.5, -3.5, -3.5), + lateral: ("npc.husk_brute.male.foot_r"), + ) + ), + (Tursus, Male): ( + shoulder_l: ( + offset: (-5.0, -3.5, -5.0), + lateral: ("npc.tursus.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-5.0, -3.5, -5.0), + lateral: ("npc.tursus.male.shoulder_r"), + ), + hand_l: ( + offset: (-6.0, -3.5, -16.0), + lateral: ("npc.tursus.male.hand_l"), + ), + hand_r: ( + offset: (-6.0, -3.5, -16.0), + lateral: ("npc.tursus.male.hand_r"), + ), + leg_l: ( + offset: (-3.5, -4.0, -4.0), + lateral: ("npc.tursus.male.leg_l"), + ), + leg_r: ( + offset: (-3.5, -4.0, -4.0), + lateral: ("npc.tursus.male.leg_r"), + ), + foot_l: ( + offset: (-3.0, -5.0, -2.0), + lateral: ("npc.tursus.male.foot_l"), + ), + foot_r: ( + offset: (-3.0, -5.0, -2.0), + lateral: ("npc.tursus.male.foot_r"), + ), + ), + (Tursus, Female): ( + shoulder_l: ( + offset: (-5.0, -3.5, -5.0), + lateral: ("npc.tursus.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-5.0, -3.5, -5.0), + lateral: ("npc.tursus.male.shoulder_r"), + ), + hand_l: ( + offset: (-6.0, -3.5, -16.0), + lateral: ("npc.tursus.male.hand_l"), + ), + hand_r: ( + offset: (-6.0, -3.5, -16.0), + lateral: ("npc.tursus.male.hand_r"), + ), + leg_l: ( + offset: (-3.5, -4.0, -4.0), + lateral: ("npc.tursus.male.leg_l"), + ), + leg_r: ( + offset: (-3.5, -4.0, -4.0), + lateral: ("npc.tursus.male.leg_r"), + ), + foot_l: ( + offset: (-3.0, -5.0, -2.0), + lateral: ("npc.tursus.male.foot_l"), + ), + foot_r: ( + offset: (-3.0, -5.0, -2.0), + lateral: ("npc.tursus.male.foot_r"), + ), + ), + (Gigasfrost, Male): ( + shoulder_l: ( + offset: (-5.5, -4.5, -5.5), + lateral: ("npc.gigas_frost.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-5.5, -4.5, -5.5), + lateral: ("npc.gigas_frost.male.shoulder_r"), + ), + hand_l: ( + offset: (-7.5, -5.5, -16.0), + lateral: ("npc.gigas_frost.male.hand_l"), + ), + hand_r: ( + offset: (-7.5, -5.5, -16.0), + lateral: ("npc.gigas_frost.male.hand_r"), + ), + leg_l: ( + offset: (-4.0, -4.0, -6.0), + lateral: ("npc.gigas_frost.male.leg_l"), + ), + leg_r: ( + offset: (-4.0, -4.0, -6.0), + lateral: ("npc.gigas_frost.male.leg_r"), + ), + foot_l: ( + offset: (-4.5, -6.5, -4.5), + lateral: ("npc.gigas_frost.male.foot_l"), + ), + foot_r: ( + offset: (-4.5, -6.5, -4.5), + lateral: ("npc.gigas_frost.male.foot_r"), + ) + ), + (Gigasfrost, Female): ( + shoulder_l: ( + offset: (-5.5, -4.5, -5.5), + lateral: ("npc.gigas_frost.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-5.5, -4.5, -5.5), + lateral: ("npc.gigas_frost.male.shoulder_r"), + ), + hand_l: ( + offset: (-7.5, -5.5, -16.0), + lateral: ("npc.gigas_frost.male.hand_l"), + ), + hand_r: ( + offset: (-7.5, -5.5, -16.0), + lateral: ("npc.gigas_frost.male.hand_r"), + ), + leg_l: ( + offset: (-4.0, -4.0, -6.0), + lateral: ("npc.gigas_frost.male.leg_l"), + ), + leg_r: ( + offset: (-4.0, -4.0, -6.0), + lateral: ("npc.gigas_frost.male.leg_r"), + ), + foot_l: ( + offset: (-4.5, -6.5, -4.5), + lateral: ("npc.gigas_frost.male.foot_l"), + ), + foot_r: ( + offset: (-4.5, -6.5, -4.5), + lateral: ("npc.gigas_frost.male.foot_r"), + ) + ), + (AdletElder, Male): ( + shoulder_l: ( + offset: (-3.5, -5.0, -6.0), + lateral: ("npc.adlet.elder.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-3.5, -5.0, -6.0), + lateral: ("npc.adlet.elder.male.shoulder_r"), + ), + hand_l: ( + offset: (-2.5, -2.5, -12.0), + lateral: ("npc.adlet.elder.male.hand_l"), + ), + hand_r: ( + offset: (-2.5, -2.5, -12.0), + lateral: ("npc.adlet.elder.male.hand_r"), + ), + leg_l: ( + offset: (-2.0, -1.5, -6.5), + lateral: ("npc.adlet.elder.male.leg_l"), + ), + leg_r: ( + offset: (-2.0, -1.5, -6.5), + lateral: ("npc.adlet.elder.male.leg_r"), + ), + foot_l: ( + offset: (-2.0, -5.0, -5.0), + lateral: ("npc.adlet.elder.male.foot_l"), + ), + foot_r: ( + offset: (-2.0, -5.0, -5.0), + lateral: ("npc.adlet.elder.male.foot_r"), + ), + ), + (AdletElder, Female): ( + shoulder_l: ( + offset: (-3.5, -5.0, -6.0), + lateral: ("npc.adlet.elder.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-3.5, -5.0, -6.0), + lateral: ("npc.adlet.elder.male.shoulder_r"), + ), + hand_l: ( + offset: (-2.5, -2.5, -12.0), + lateral: ("npc.adlet.elder.male.hand_l"), + ), + hand_r: ( + offset: (-2.5, -2.5, -12.0), + lateral: ("npc.adlet.elder.male.hand_r"), + ), + leg_l: ( + offset: (-2.0, -1.5, -6.5), + lateral: ("npc.adlet.elder.male.leg_l"), + ), + leg_r: ( + offset: (-2.0, -1.5, -6.5), + lateral: ("npc.adlet.elder.male.leg_r"), + ), + foot_l: ( + offset: (-2.0, -5.0, -5.0), + lateral: ("npc.adlet.elder.male.foot_l"), + ), + foot_r: ( + offset: (-2.0, -5.0, -5.0), + lateral: ("npc.adlet.elder.male.foot_r"), + ), + ), + (SeaBishop, Male): ( + shoulder_l: ( + offset: (-3.5, -2.0, -4.0), + lateral: ("npc.sea_bishop.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-3.5, -2.0, -4.0), + lateral: ("npc.sea_bishop.male.shoulder_r"), + ), + hand_l: ( + offset: (-3.0, -2.0, -9.0), + lateral: ("npc.sea_bishop.male.hand_l"), + ), + hand_r: ( + offset: (-3.0, -2.0, -9.0), + lateral: ("npc.sea_bishop.male.hand_r"), + ), + leg_l: ( + offset: (-2.0, -3.5, 0.0), + lateral: ("npc.sea_bishop.male.leg_l"), + ), + leg_r: ( + offset: (-2.0, -3.5, 0.0), + lateral: ("npc.sea_bishop.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -6.0, -9.0), + lateral: ("armor.empty"), + ), + foot_r: ( + offset: (-3.5, -6.0, -9.0), + lateral: ("armor.empty"), + ), + ), + (SeaBishop, Female): ( + shoulder_l: ( + offset: (-3.5, -2.0, -4.0), + lateral: ("npc.sea_bishop.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-3.5, -2.0, -4.0), + lateral: ("npc.sea_bishop.male.shoulder_r"), + ), + hand_l: ( + offset: (-3.0, -2.0, -9.0), + lateral: ("npc.sea_bishop.male.hand_l"), + ), + hand_r: ( + offset: (-3.0, -2.0, -9.0), + lateral: ("npc.sea_bishop.male.hand_r"), + ), + leg_l: ( + offset: (-2.0, -3.5, 0.0), + lateral: ("npc.sea_bishop.male.leg_l"), + ), + leg_r: ( + offset: (-2.0, -3.5, 0.0), + lateral: ("npc.sea_bishop.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -6.0, -9.0), + lateral: ("armor.empty"), + ), + foot_r: ( + offset: (-3.5, -6.0, -9.0), + lateral: ("armor.empty"), + ), + ), + (HaniwaGeneral, Male): ( + shoulder_l: ( + offset: (-3.5, -3.0, -7.0), + lateral: ("npc.haniwa.general.haniwa_general"), + model_index: 3, + ), + shoulder_r: ( + offset: (-3.5, -3.0, -7.0), + lateral: ("npc.haniwa.general.haniwa_general"), + model_index: 4, + ), + hand_l: ( + offset: (-2.5, -2.0, -8.0), + lateral: ("npc.haniwa.general.haniwa_general"), + model_index: 5, + ), + hand_r: ( + offset: (-2.5, -2.0, -8.0), + lateral: ("npc.haniwa.general.haniwa_general"), + model_index: 6, + ), + leg_l: ( + offset: (-2.5, -3.0, -3.0), + lateral: ("npc.haniwa.general.haniwa_general"), + model_index: 7, + ), + leg_r: ( + offset: (-2.5, -3.0, -3.0), + lateral: ("npc.haniwa.general.haniwa_general"), + model_index: 8, + ), + foot_l: ( + offset: (-1.5, -3.0, -2.5), + lateral: ("npc.haniwa.general.haniwa_general"), + model_index: 9, + ), + foot_r: ( + offset: (-1.5, -3.0, -2.5), + lateral: ("npc.haniwa.general.haniwa_general"), + model_index: 10, + ), + ), + (HaniwaGeneral, Female): ( + shoulder_l: ( + offset: (-3.5, -3.0, -7.0), + lateral: ("npc.haniwa.general.haniwa_general"), + model_index: 3, + ), + shoulder_r: ( + offset: (-3.5, -3.0, -7.0), + lateral: ("npc.haniwa.general.haniwa_general"), + model_index: 4, + ), + hand_l: ( + offset: (-2.5, -2.0, -8.0), + lateral: ("npc.haniwa.general.haniwa_general"), + model_index: 5, + ), + hand_r: ( + offset: (-2.5, -2.0, -8.0), + lateral: ("npc.haniwa.general.haniwa_general"), + model_index: 6, + ), + leg_l: ( + offset: (-2.5, -3.0, -3.0), + lateral: ("npc.haniwa.general.haniwa_general"), + model_index: 7, + ), + leg_r: ( + offset: (-2.5, -3.0, -3.0), + lateral: ("npc.haniwa.general.haniwa_general"), + model_index: 8, + ), + foot_l: ( + offset: (-1.5, -3.0, -2.5), + lateral: ("npc.haniwa.general.haniwa_general"), + model_index: 9, + ), + foot_r: ( + offset: (-1.5, -3.0, -2.5), + lateral: ("npc.haniwa.general.haniwa_general"), + model_index: 10, + ), + ), + (TerracottaBesieger, Male): ( + shoulder_l: ( + offset: (-4.0, -5.0, -7.0), + lateral: ("npc.terracotta.terracotta_besieger"), + model_index: 3, + ), + shoulder_r: ( + offset: (-4.0, -5.0, -7.0), + lateral: ("npc.terracotta.terracotta_besieger"), + model_index: 4, + ), + hand_l: ( + offset: (-3.5, -4.0, -11.0), + lateral: ("npc.terracotta.terracotta_besieger"), + model_index: 5, + ), + hand_r: ( + offset: (-3.5, -4.0, -11.0), + lateral: ("npc.terracotta.terracotta_besieger"), + model_index: 6, + ), + leg_l: ( + offset: (-4.0, -3.5, -4.5), + lateral: ("npc.terracotta.terracotta_besieger"), + model_index: 7, + ), + leg_r: ( + offset: (-4.0, -3.5, -4.5), + lateral: ("npc.terracotta.terracotta_besieger"), + model_index: 8, + ), + foot_l: ( + offset: (-2.5, -4.5, -4.0), + lateral: ("npc.terracotta.terracotta_besieger"), + model_index: 9, + ), + foot_r: ( + offset: (-2.5, -4.5, -4.0), + lateral: ("npc.terracotta.terracotta_besieger"), + model_index: 10, + ), + ), + (TerracottaBesieger, Female): ( + shoulder_l: ( + offset: (-4.0, -5.0, -7.0), + lateral: ("npc.terracotta.terracotta_besieger"), + model_index: 3, + ), + shoulder_r: ( + offset: (-4.0, -5.0, -7.0), + lateral: ("npc.terracotta.terracotta_besieger"), + model_index: 4, + ), + hand_l: ( + offset: (-3.5, -4.0, -11.0), + lateral: ("npc.terracotta.terracotta_besieger"), + model_index: 5, + ), + hand_r: ( + offset: (-3.5, -4.0, -11.0), + lateral: ("npc.terracotta.terracotta_besieger"), + model_index: 6, + ), + leg_l: ( + offset: (-4.0, -3.5, -4.5), + lateral: ("npc.terracotta.terracotta_besieger"), + model_index: 7, + ), + leg_r: ( + offset: (-4.0, -3.5, -4.5), + lateral: ("npc.terracotta.terracotta_besieger"), + model_index: 8, + ), + foot_l: ( + offset: (-2.5, -4.5, -4.0), + lateral: ("npc.terracotta.terracotta_besieger"), + model_index: 9, + ), + foot_r: ( + offset: (-2.5, -4.5, -4.0), + lateral: ("npc.terracotta.terracotta_besieger"), + model_index: 10, + ), + ), + (TerracottaDemolisher, Male): ( + shoulder_l: ( + offset: (-3.0, -4.0, -7.0), + lateral: ("npc.terracotta.terracotta_demolisher"), + model_index: 3, + ), + shoulder_r: ( + offset: (-3.0, -4.0, -7.0), + lateral: ("npc.terracotta.terracotta_demolisher"), + model_index: 4, + ), + hand_l: ( + offset: (-3.0, -2.0, -9.0), + lateral: ("npc.terracotta.terracotta_demolisher"), + model_index: 5, + ), + hand_r: ( + offset: (-3.0, -2.0, -9.0), + lateral: ("npc.terracotta.terracotta_demolisher"), + model_index: 6, + ), + leg_l: ( + offset: (-3.0, -3.0, -3.5), + lateral: ("npc.terracotta.terracotta_demolisher"), + model_index: 7, + ), + leg_r: ( + offset: (-3.0, -3.0, -3.5), + lateral: ("npc.terracotta.terracotta_demolisher"), + model_index: 8, + ), + foot_l: ( + offset: (-2.0, -3.5, -2.5), + lateral: ("npc.terracotta.terracotta_demolisher"), + model_index: 9, + ), + foot_r: ( + offset: (-2.0, -3.5, -2.5), + lateral: ("npc.terracotta.terracotta_demolisher"), + model_index: 10, + ), + ), + (TerracottaDemolisher, Female): ( + shoulder_l: ( + offset: (-3.0, -4.0, -7.0), + lateral: ("npc.terracotta.terracotta_demolisher"), + model_index: 3, + ), + shoulder_r: ( + offset: (-3.0, -4.0, -7.0), + lateral: ("npc.terracotta.terracotta_demolisher"), + model_index: 4, + ), + hand_l: ( + offset: (-3.0, -2.0, -9.0), + lateral: ("npc.terracotta.terracotta_demolisher"), + model_index: 5, + ), + hand_r: ( + offset: (-3.0, -2.0, -9.0), + lateral: ("npc.terracotta.terracotta_demolisher"), + model_index: 6, + ), + leg_l: ( + offset: (-3.0, -3.0, -3.5), + lateral: ("npc.terracotta.terracotta_demolisher"), + model_index: 7, + ), + leg_r: ( + offset: (-3.0, -3.0, -3.5), + lateral: ("npc.terracotta.terracotta_demolisher"), + model_index: 8, + ), + foot_l: ( + offset: (-2.0, -3.5, -2.5), + lateral: ("npc.terracotta.terracotta_demolisher"), + model_index: 9, + ), + foot_r: ( + offset: (-2.0, -3.5, -2.5), + lateral: ("npc.terracotta.terracotta_demolisher"), + model_index: 10, + ), + ), + (TerracottaPunisher, Male): ( + shoulder_l: ( + offset: (-3.0, -4.0, -7.0), + lateral: ("npc.terracotta.terracotta_punisher"), + model_index: 3, + ), + shoulder_r: ( + offset: (-3.0, -4.0, -7.0), + lateral: ("npc.terracotta.terracotta_punisher"), + model_index: 4, + ), + hand_l: ( + offset: (-3.0, -2.0, -9.0), + lateral: ("npc.terracotta.terracotta_punisher"), + model_index: 5, + ), + hand_r: ( + offset: (-3.0, -2.0, -9.0), + lateral: ("npc.terracotta.terracotta_punisher"), + model_index: 6, + ), + leg_l: ( + offset: (-3.0, -3.0, -3.5), + lateral: ("npc.terracotta.terracotta_punisher"), + model_index: 7, + ), + leg_r: ( + offset: (-3.0, -3.0, -3.5), + lateral: ("npc.terracotta.terracotta_punisher"), + model_index: 8, + ), + foot_l: ( + offset: (-2.0, -3.5, -2.5), + lateral: ("npc.terracotta.terracotta_punisher"), + model_index: 9, + ), + foot_r: ( + offset: (-2.0, -3.5, -2.5), + lateral: ("npc.terracotta.terracotta_punisher"), + model_index: 10, + ), + ), + (TerracottaPunisher, Female): ( + shoulder_l: ( + offset: (-3.0, -4.0, -7.0), + lateral: ("npc.terracotta.terracotta_punisher"), + model_index: 3, + ), + shoulder_r: ( + offset: (-3.0, -4.0, -7.0), + lateral: ("npc.terracotta.terracotta_punisher"), + model_index: 4, + ), + hand_l: ( + offset: (-3.0, -2.0, -9.0), + lateral: ("npc.terracotta.terracotta_punisher"), + model_index: 5, + ), + hand_r: ( + offset: (-3.0, -2.0, -9.0), + lateral: ("npc.terracotta.terracotta_punisher"), + model_index: 6, + ), + leg_l: ( + offset: (-3.0, -3.0, -3.5), + lateral: ("npc.terracotta.terracotta_punisher"), + model_index: 7, + ), + leg_r: ( + offset: (-3.0, -3.0, -3.5), + lateral: ("npc.terracotta.terracotta_punisher"), + model_index: 8, + ), + foot_l: ( + offset: (-2.0, -3.5, -2.5), + lateral: ("npc.terracotta.terracotta_punisher"), + model_index: 9, + ), + foot_r: ( + offset: (-2.0, -3.5, -2.5), + lateral: ("npc.terracotta.terracotta_punisher"), + model_index: 10, + ), + ), + (TerracottaPursuer, Male): ( + shoulder_l: ( + offset: (-3.0, -4.0, -7.0), + lateral: ("npc.terracotta.terracotta_pursuer"), + model_index: 3, + ), + shoulder_r: ( + offset: (-3.0, -4.0, -7.0), + lateral: ("npc.terracotta.terracotta_pursuer"), + model_index: 4, + ), + hand_l: ( + offset: (-3.0, -2.0, -9.0), + lateral: ("npc.terracotta.terracotta_pursuer"), + model_index: 5, + ), + hand_r: ( + offset: (-3.0, -2.0, -9.0), + lateral: ("npc.terracotta.terracotta_pursuer"), + model_index: 6, + ), + leg_l: ( + offset: (-3.0, -3.0, -3.5), + lateral: ("npc.terracotta.terracotta_pursuer"), + model_index: 7, + ), + leg_r: ( + offset: (-3.0, -3.0, -3.5), + lateral: ("npc.terracotta.terracotta_pursuer"), + model_index: 8, + ), + foot_l: ( + offset: (-2.0, -3.5, -2.5), + lateral: ("npc.terracotta.terracotta_pursuer"), + model_index: 9, + ), + foot_r: ( + offset: (-2.0, -3.5, -2.5), + lateral: ("npc.terracotta.terracotta_pursuer"), + model_index: 10, + ), + ), + (TerracottaPursuer, Female): ( + shoulder_l: ( + offset: (-3.0, -4.0, -7.0), + lateral: ("npc.terracotta.terracotta_pursuer"), + model_index: 3, + ), + shoulder_r: ( + offset: (-3.0, -4.0, -7.0), + lateral: ("npc.terracotta.terracotta_pursuer"), + model_index: 4, + ), + hand_l: ( + offset: (-3.0, -2.0, -9.0), + lateral: ("npc.terracotta.terracotta_pursuer"), + model_index: 5, + ), + hand_r: ( + offset: (-3.0, -2.0, -9.0), + lateral: ("npc.terracotta.terracotta_pursuer"), + model_index: 6, + ), + leg_l: ( + offset: (-3.0, -3.0, -3.5), + lateral: ("npc.terracotta.terracotta_pursuer"), + model_index: 7, + ), + leg_r: ( + offset: (-3.0, -3.0, -3.5), + lateral: ("npc.terracotta.terracotta_pursuer"), + model_index: 8, + ), + foot_l: ( + offset: (-2.0, -3.5, -2.5), + lateral: ("npc.terracotta.terracotta_pursuer"), + model_index: 9, + ), + foot_r: ( + offset: (-2.0, -3.5, -2.5), + lateral: ("npc.terracotta.terracotta_pursuer"), + model_index: 10, + ), + ), + (Cursekeeper, Male): ( + shoulder_l: ( + offset: (-3.0, -2.0, -7.0), + lateral: ("npc.terracotta.cursekeeper"), + model_index: 3, + ), + shoulder_r: ( + offset: (-3.0, -2.0, -7.0), + lateral: ("npc.terracotta.cursekeeper"), + model_index: 4, + ), + hand_l: ( + offset: (-3.5, -3.5, -14.0), + lateral: ("npc.terracotta.cursekeeper"), + model_index: 5, + ), + hand_r: ( + offset: (-3.5, -3.5, -14.0), + lateral: ("npc.terracotta.cursekeeper"), + model_index: 6, + ), + leg_l: ( + offset: (-4.0, -3.5, -4.5), + lateral: ("armor.empty"), + ), + leg_r: ( + offset: (-4.0, -3.5, -4.5), + lateral: ("armor.empty"), + ), + foot_l: ( + offset: (-2.5, -4.5, -4.0), + lateral: ("armor.empty"), + ), + foot_r: ( + offset: (-2.5, -4.5, -4.0), + lateral: ("armor.empty"), + ), + ), + (Cursekeeper, Female): ( + shoulder_l: ( + offset: (-3.0, -2.0, -7.0), + lateral: ("npc.terracotta.cursekeeper"), + model_index: 3, + ), + shoulder_r: ( + offset: (-3.0, -2.0, -7.0), + lateral: ("npc.terracotta.cursekeeper"), + model_index: 4, + ), + hand_l: ( + offset: (-3.5, -3.5, -14.0), + lateral: ("npc.terracotta.cursekeeper"), + model_index: 5, + ), + hand_r: ( + offset: (-3.5, -3.5, -14.0), + lateral: ("npc.terracotta.cursekeeper"), + model_index: 6, + ), + leg_l: ( + offset: (-4.0, -3.5, -4.5), + lateral: ("armor.empty"), + ), + leg_r: ( + offset: (-4.0, -3.5, -4.5), + lateral: ("armor.empty"), + ), + foot_l: ( + offset: (-2.5, -4.5, -4.0), + lateral: ("armor.empty"), + ), + foot_r: ( + offset: (-2.5, -4.5, -4.0), + lateral: ("armor.empty"), + ), + ), + (Forgemaster, Male): ( + shoulder_l: ( + offset: (-7.0, -8.5, -8.0), + lateral: ("npc.forgemaster.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-7.0, -8.5, -8.0), + lateral: ("npc.forgemaster.male.shoulder_r"), + ), + hand_l: ( + offset: (-8.0, -6.5, -18.0), + lateral: ("npc.forgemaster.male.hand_l"), + ), + hand_r: ( + offset: (-8.0, -6.5, -18.0), + lateral: ("npc.forgemaster.male.hand_r"), + ), + leg_l: ( + offset: (-3.5, -4.0, -6.0), + lateral: ("npc.forgemaster.male.leg_l"), + ), + leg_r: ( + offset: (-3.5, -4.0, -6.0), + lateral: ("npc.forgemaster.male.leg_r"), + ), + foot_l: ( + offset: (-7.0, -7.0, -7.0), + lateral: ("npc.forgemaster.male.foot_l"), + ), + foot_r: ( + offset: (-7.0, -7.0, -7.0), + lateral: ("npc.forgemaster.male.foot_r"), + ) + ), + (Forgemaster, Female): ( + shoulder_l: ( + offset: (-7.0, -8.5, -8.0), + lateral: ("npc.forgemaster.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-7.0, -8.5, -8.0), + lateral: ("npc.forgemaster.male.shoulder_r"), + ), + hand_l: ( + offset: (-8.0, -6.5, -18.0), + lateral: ("npc.forgemaster.male.hand_l"), + ), + hand_r: ( + offset: (-8.0, -6.5, -18.0), + lateral: ("npc.forgemaster.male.hand_r"), + ), + leg_l: ( + offset: (-3.5, -4.0, -6.0), + lateral: ("npc.forgemaster.male.leg_l"), + ), + leg_r: ( + offset: (-3.5, -4.0, -6.0), + lateral: ("npc.forgemaster.male.leg_r"), + ), + foot_l: ( + offset: (-7.0, -7.0, -7.0), + lateral: ("npc.forgemaster.male.foot_l"), + ), + foot_r: ( + offset: (-7.0, -7.0, -7.0), + lateral: ("npc.forgemaster.male.foot_r"), + ) + ), + (Strigoi, Male): ( + shoulder_l: ( + offset: (-5.5, -4.5, -8.0), + lateral: ("npc.strigoi.strigoi"), + model_index: 5, + ), + shoulder_r: ( + offset: (-5.5, -4.5, -8.0), + lateral: ("npc.strigoi.strigoi"), + model_index: 6, + ), + hand_l: ( + offset: (-5.0, -4.0, -20.0), + lateral: ("npc.strigoi.strigoi"), + model_index: 7, + ), + hand_r: ( + offset: (-5.0, -4.0, -20.0), + lateral: ("npc.strigoi.strigoi"), + model_index: 8, + ), + leg_l: ( + offset: (-3.5, -3.5, -5.5), + lateral: ("npc.strigoi.strigoi"), + model_index: 9, + ), + leg_r: ( + offset: (-3.5, -3.5, -5.5), + lateral: ("npc.strigoi.strigoi"), + model_index: 10, + ), + foot_l: ( + offset: (-3.5, -7.0, -4.0), + lateral: ("npc.strigoi.strigoi"), + model_index: 11, + ), + foot_r: ( + offset: (-3.5, -7.0, -4.0), + lateral: ("npc.strigoi.strigoi"), + model_index: 12, + ), + ), + (Strigoi, Female): ( + shoulder_l: ( + offset: (-5.5, -4.5, -8.0), + lateral: ("npc.strigoi.strigoi"), + model_index: 5, + ), + shoulder_r: ( + offset: (-5.5, -4.5, -8.0), + lateral: ("npc.strigoi.strigoi"), + model_index: 6, + ), + hand_l: ( + offset: (-5.0, -4.0, -20.0), + lateral: ("npc.strigoi.strigoi"), + model_index: 7, + ), + hand_r: ( + offset: (-5.0, -4.0, -20.0), + lateral: ("npc.strigoi.strigoi"), + model_index: 8, + ), + leg_l: ( + offset: (-3.5, -3.5, -5.5), + lateral: ("npc.strigoi.strigoi"), + model_index: 9, + ), + leg_r: ( + offset: (-3.5, -3.5, -5.5), + lateral: ("npc.strigoi.strigoi"), + model_index: 10, + ), + foot_l: ( + offset: (-3.5, -7.0, -4.0), + lateral: ("npc.strigoi.strigoi"), + model_index: 11, + ), + foot_r: ( + offset: (-3.5, -7.0, -4.0), + lateral: ("npc.strigoi.strigoi"), + model_index: 12, + ), + ), + (Executioner, Male): ( + shoulder_l: ( + offset: (-2.5, -4.0, -8.0), + lateral: ("npc.executioner.executioner"), + model_index: 3, + ), + shoulder_r: ( + offset: (-2.5, -4.0, -8.0), + lateral: ("npc.executioner.executioner"), + model_index: 4, + ), + hand_l: ( + offset: (-3.0, -2.5, -11.0), + lateral: ("npc.executioner.executioner"), + model_index: 5, + ), + hand_r: ( + offset: (-3.0, -2.5, -11.0), + lateral: ("npc.executioner.executioner"), + model_index: 6, + ), + leg_l: ( + offset: (-2.0, -2.5, -4.5), + lateral: ("npc.executioner.executioner"), + model_index: 7, + ), + leg_r: ( + offset: (-2.0, -2.5, -4.5), + lateral: ("npc.executioner.executioner"), + model_index: 8, + ), + foot_l: ( + offset: (-2.0, -8.0, -5.5), + lateral: ("npc.executioner.executioner"), + model_index: 9, + ), + foot_r: ( + offset: (-2.0, -8.0, -5.5), + lateral: ("npc.executioner.executioner"), + model_index: 10, + ), + ), + (Executioner, Female): ( + shoulder_l: ( + offset: (-2.5, -4.0, -8.0), + lateral: ("npc.executioner.executioner"), + model_index: 3, + ), + shoulder_r: ( + offset: (-2.5, -4.0, -8.0), + lateral: ("npc.executioner.executioner"), + model_index: 4, + ), + hand_l: ( + offset: (-3.0, -2.5, -11.0), + lateral: ("npc.executioner.executioner"), + model_index: 5, + ), + hand_r: ( + offset: (-3.0, -2.5, -11.0), + lateral: ("npc.executioner.executioner"), + model_index: 6, + ), + leg_l: ( + offset: (-2.0, -2.5, -4.5), + lateral: ("npc.executioner.executioner"), + model_index: 7, + ), + leg_r: ( + offset: (-2.0, -2.5, -4.5), + lateral: ("npc.executioner.executioner"), + model_index: 8, + ), + foot_l: ( + offset: (-2.0, -8.0, -5.5), + lateral: ("npc.executioner.executioner"), + model_index: 9, + ), + foot_r: ( + offset: (-2.0, -8.0, -5.5), + lateral: ("npc.executioner.executioner"), + model_index: 10, + ), + ), +}) \ No newline at end of file diff --git a/assets/voxygen/voxel/biped_small_armor_chest_manifest.ron b/assets/voxygen/voxel/biped_small_armor_chest_manifest.ron new file mode 100644 index 0000000..59cf3f4 --- /dev/null +++ b/assets/voxygen/voxel/biped_small_armor_chest_manifest.ron @@ -0,0 +1,133 @@ +(( + default: ( + vox_spec: ("armor_none", (-5.0, -3.5, 1.0)), + ), + map: { + "common.items.npc_armor.biped_small.gnome.chest.gnome": ( + vox_spec: ("npc.gnome.male.chest", (-5.0, -3.0, -2.5)), + ), + "common.items.npc_armor.biped_small.sahagin.chest.spearman": ( + vox_spec: ("npc.sahagin.spearman.chest", (-4.5, -8.0, -8.0)), + ), + "common.items.npc_armor.biped_small.sahagin.chest.sorcerer": ( + vox_spec: ("npc.sahagin.sorcerer.chest", (-4.5, -8.0, -8.0)), + ), + "common.items.npc_armor.biped_small.sahagin.chest.sniper": ( + vox_spec: ("npc.sahagin.sniper.chest", (-4.5, -8.0, -8.0)), + ), + "common.items.npc_armor.biped_small.adlet.chest.hunter": ( + vox_spec: ("npc.adlet.hunter.chest", (-5.0, -3.5, -2.0)), + ), + "common.items.npc_armor.biped_small.adlet.chest.icepicker": ( + vox_spec: ("npc.adlet.icepicker.chest", (-5.0, -3.5, -2.0)), + ), + "common.items.npc_armor.biped_small.adlet.chest.tracker": ( + vox_spec: ("npc.adlet.tracker.chest", (-5.0, -3.5, -2.0)), + ), + "common.items.npc_armor.biped_small.gnarling.chest.mugger": ( + vox_spec: ("npc.gnarling.mugger.chest", (-4.5, -3.5, -2.5)), + ), + "common.items.npc_armor.biped_small.gnarling.chest.stalker": ( + vox_spec: ("npc.gnarling.stalker.chest", (-4.5, -3.5, -2.5)), + ), + "common.items.npc_armor.biped_small.gnarling.chest.logger": ( + vox_spec: ("npc.gnarling.logger.chest", (-4.5, -3.5, -2.5)), + ), + "common.items.npc_armor.biped_small.gnarling.chest.chieftain": ( + vox_spec: ("npc.gnarling.chieftain.chest", (-4.5, -3.5, -1.0)), + ), + "common.items.npc_armor.biped_small.mandragora.chest.mandragora": ( + vox_spec: ("npc.mandragora.male.chest", (-11.0, -11.0, 0.0)), + ), + "common.items.npc_armor.biped_small.kappa.chest.kappa": ( + vox_spec: ("npc.kappa.male.chest", (-6.5, -8.0, -7.0)), + ), + "common.items.npc_armor.biped_small.cactid.chest.cactid": ( + vox_spec: ("npc.cactid.male.chest", (-3.0, -3.0, -2.5)), + ), + "common.items.npc_armor.biped_small.gnoll.chest.shaman": ( + vox_spec: ("npc.gnoll.shaman.chest", (-5.0, -4.5, -6.0)), + ), + "common.items.npc_armor.biped_small.gnoll.chest.rogue": ( + vox_spec: ("npc.gnoll.rogue.chest", (-5.0, -4.5, -6.0)), + ), + "common.items.npc_armor.biped_small.gnoll.chest.trapper": ( + vox_spec: ("npc.gnoll.trapper.chest", (-5.0, -4.5, -6.0)), + ), + "common.items.npc_armor.biped_small.haniwa.chest.guard": ( + vox_spec: ("npc.haniwa.guard.chest", (-6.5, -4.0, -3.0)), + ), + "common.items.npc_armor.biped_small.haniwa.chest.archer": ( + vox_spec: ("npc.haniwa.archer.chest", (-6.5, -4.0, -3.0)), + ), + "common.items.npc_armor.biped_small.haniwa.chest.soldier": ( + vox_spec: ("npc.haniwa.soldier.chest", (-6.5, -4.0, -3.0)), + ), + "common.items.npc_armor.biped_small.myrmidon.chest.hoplite": ( + vox_spec: ("npc.myrmidon.hoplite.chest", (-5.5, -4.0, -3.0)), + ), + "common.items.npc_armor.biped_small.myrmidon.chest.strategian": ( + vox_spec: ("npc.myrmidon.strategian.chest", (-5.5, -4.0, -3.0)), + ), + "common.items.npc_armor.biped_small.myrmidon.chest.marksman": ( + vox_spec: ("npc.myrmidon.marksman.chest", (-5.5, -4.0, -3.0)), + ), + "common.items.npc_armor.biped_small.husk.chest.husk": ( + vox_spec: ("npc.husk.male.chest", (-6.0, -4.5, -4.0)), + ), + "common.items.npc_armor.biped_small.boreal.chest.warrior": ( + vox_spec: ("npc.boreal.warrior.chest", (-9.0, -6.0, -8.5)), + ), + "common.items.npc_armor.biped_small.bushly.chest.bushly": ( + vox_spec: ("npc.bushly.male.chest", (-7.0, -7.0, 0.0)), + ), + "common.items.npc_armor.biped_small.irrwurz.chest.irrwurz": ( + vox_spec: ("npc.irrwurz.male.chest", (-7.5, -7.5, 0.0)), + ), + "common.items.npc_armor.biped_small.iron_dwarf.chest.iron_dwarf": ( + vox_spec: ("npc.iron_dwarf.chest", (-5.0, -6.0, -6.0)), + ), + "common.items.npc_armor.biped_small.flamekeeper.chest.flamekeeper": ( + vox_spec: ("npc.flamekeeper.chest", (-6.0, -11.0, -5.5)), + ), + "common.items.npc_armor.biped_small.shamanic_spirit.chest.shamanic_spirit": ( + vox_spec: ("npc.shamanic_spirit.chest", (-7.0, -4.0, -4.0)), + ), + "common.items.npc_armor.biped_small.jiangshi.chest.jiangshi": ( + vox_spec: ("npc.jiangshi.chest", (-7.0, -4.0, -4.0)), + ), + "common.items.npc_armor.biped_small.treasure_egg.chest.treasure_egg": ( + vox_spec: ("npc.treasure_egg.male.chest", (-4.0, -4.0, 0.0)), + ), + "common.items.npc_armor.biped_small.bloodmoon_heiress.chest.bloodmoon_heiress": ( + vox_spec: ("npc.bloodmoon_heiress.chest", (-4.5, -4.5, 0.0)), + ), + "common.items.npc_armor.biped_small.bloodservant.chest.bloodservant": ( + vox_spec: ("npc.bloodservant.chest", (-6.0, -4.0, -3.5)), + ), + "common.items.npc_armor.biped_small.harlequin.chest.harlequin": ( + vox_spec: ("npc.harlequin.chest", (-5.0, -3.5, -3.5)), + ), + "common.items.npc_armor.biped_small.goblin_thug.chest.goblin_thug": ( + vox_spec: ("npc.goblin_thug.chest", (-4.5, -3.5, -3.0)), + ), + "common.items.npc_armor.biped_small.goblin_chucker.chest.goblin_chucker": ( + vox_spec: ("npc.goblin_chucker.chest", (-4.5, -9.0, -5.0)), + ), + "common.items.npc_armor.biped_small.goblin_ruffian.chest.goblin_ruffian": ( + vox_spec: ("npc.goblin_ruffian.chest", (-4.5, -3.5, -3.0)), ), + + "common.items.npc_armor.biped_small.green_legoom.chest.green_legoom": ( + vox_spec: ("npc.green_legoom.chest", (-3.0, -4.0, -2.5)), + ), + "common.items.npc_armor.biped_small.ochre_legoom.chest.ochre_legoom": ( + vox_spec: ("npc.ochre_legoom.chest", (-3.0, -4.0, -2.5)), + ), + "common.items.npc_armor.biped_small.purple_legoom.chest.purple_legoom": ( + vox_spec: ("npc.purple_legoom.chest", (-4.0, -4.5, -3.0)), + ), + "common.items.npc_armor.biped_small.red_legoom.chest.red_legoom": ( + vox_spec: ("npc.red_legoom.chest", (-3.0, -4.0, -2.5)), + ), + }, +)) diff --git a/assets/voxygen/voxel/biped_small_armor_foot_manifest.ron b/assets/voxygen/voxel/biped_small_armor_foot_manifest.ron new file mode 100644 index 0000000..bccf31e --- /dev/null +++ b/assets/voxygen/voxel/biped_small_armor_foot_manifest.ron @@ -0,0 +1,340 @@ +(( + default: ( + left: ( + vox_spec: ("armor.empty", (0.0, 0.0, 0.0)), + ), + right: ( + vox_spec: ("armor.empty", (0.0, 0.0, 0.0)), + ) + ), + map: { + "common.items.npc_armor.biped_small.gnome.foot.gnome": ( + left: ( + vox_spec: ("npc.gnome.male.foot_r", (-1.5, -2.0, -4.0)), + ), + right: ( + vox_spec: ("npc.gnome.male.foot_r", (-1.5, -2.0, -4.0)), + ) + ), + "common.items.npc_armor.biped_small.sahagin.foot.spearman": ( + left: ( + vox_spec: ("npc.sahagin.spearman.foot_r", (-2.5, -2.0, -8.0)), + ), + right: ( + vox_spec: ("npc.sahagin.spearman.foot_r", (-2.5, -2.0, -8.0)), + ) + ), + "common.items.npc_armor.biped_small.sahagin.foot.sorcerer": ( + left: ( + vox_spec: ("npc.sahagin.sorcerer.foot_r", (-2.5, -2.0, -8.0)), + ), + right: ( + vox_spec: ("npc.sahagin.sorcerer.foot_r", (-2.5, -2.0, -8.0)), + ) + ), + "common.items.npc_armor.biped_small.sahagin.foot.sniper": ( + left: ( + vox_spec: ("npc.sahagin.sniper.foot_r", (-2.5, -2.0, -8.0)), + ), + right: ( + vox_spec: ("npc.sahagin.sniper.foot_r", (-2.5, -2.0, -8.0)), + ) + ), + "common.items.npc_armor.biped_small.adlet.foot.hunter": ( + left: ( + vox_spec: ("npc.adlet.hunter.foot_r", (-1.5, -3.0, -7.0)), + ), + right: ( + vox_spec: ("npc.adlet.hunter.foot_r", (-1.5, -3.0, -7.0)), + ) + ), + "common.items.npc_armor.biped_small.adlet.foot.tracker": ( + left: ( + vox_spec: ("npc.adlet.tracker.foot_r", (-1.5, -3.0, -7.0)), + ), + right: ( + vox_spec: ("npc.adlet.tracker.foot_r", (-1.5, -3.0, -7.0)), + ) + ), + "common.items.npc_armor.biped_small.adlet.foot.icepicker": ( + left: ( + vox_spec: ("npc.adlet.icepicker.foot_r", (-1.5, -3.0, -7.0)), + ), + right: ( + vox_spec: ("npc.adlet.icepicker.foot_r", (-1.5, -3.0, -7.0)), + ) + ), + "common.items.npc_armor.biped_small.gnarling.foot.mugger": ( + left: ( + vox_spec: ("npc.gnarling.mugger.foot_r", (-1.0, -2.0, -5.0)), + ), + right: ( + vox_spec: ("npc.gnarling.mugger.foot_r", (-1.0, -2.0, -5.0)), + ) + ), + "common.items.npc_armor.biped_small.gnarling.foot.stalker": ( + left: ( + vox_spec: ("npc.gnarling.stalker.foot_r", (-1.0, -2.0, -5.0)), + ), + right: ( + vox_spec: ("npc.gnarling.stalker.foot_r", (-1.0, -2.0, -5.0)), + ) + ), + "common.items.npc_armor.biped_small.gnarling.foot.logger": ( + left: ( + vox_spec: ("npc.gnarling.logger.foot_r", (-1.0, -2.0, -5.0)), + ), + right: ( + vox_spec: ("npc.gnarling.logger.foot_r", (-1.0, -2.0, -5.0)), + ) + ), + "common.items.npc_armor.biped_small.gnarling.foot.chieftain": ( + left: ( + vox_spec: ("npc.gnarling.chieftain.foot_r", (-1.0, -2.0, -5.0)), + ), + right: ( + vox_spec: ("npc.gnarling.chieftain.foot_r", (-1.0, -2.0, -5.0)), + ) + ), + "common.items.npc_armor.biped_small.mandragora.foot.mandragora": ( + left: ( + vox_spec: ("npc.mandragora.male.foot_r", (-1.0, -1.5, -4.0)), + ), + right: ( + vox_spec: ("npc.mandragora.male.foot_r", (-1.0, -1.5, -4.0)), + ) + ), + "common.items.npc_armor.biped_small.kappa.foot.kappa": ( + left: ( + vox_spec: ("npc.kappa.male.foot_r", (-2.5, -3.0, -9.0)), + ), + right: ( + vox_spec: ("npc.kappa.male.foot_r", (-2.5, -3.0, -9.0)), + ) + ), + "common.items.npc_armor.biped_small.cactid.foot.cactid": ( + left: ( + vox_spec: ("npc.cactid.male.foot_r", (-1.5, -2.0, -5.0)), + ), + right: ( + vox_spec: ("npc.cactid.male.foot_r", (-1.5, -2.0, -5.0)), + ) + ), + "common.items.npc_armor.biped_small.gnoll.foot.rogue": ( + left: ( + vox_spec: ("npc.gnoll.rogue.foot_r", (-1.5, -3.0, -7.0)), + ), + right: ( + vox_spec: ("npc.gnoll.rogue.foot_r", (-1.5, -3.0, -7.0)), + ) + ), + "common.items.npc_armor.biped_small.gnoll.foot.trapper": ( + left: ( + vox_spec: ("npc.gnoll.trapper.foot_r", (-1.5, -3.0, -7.0)), + ), + right: ( + vox_spec: ("npc.gnoll.trapper.foot_r", (-1.5, -3.0, -7.0)), + ) + ), + "common.items.npc_armor.biped_small.gnoll.foot.shaman": ( + left: ( + vox_spec: ("npc.gnoll.shaman.foot_r", (-1.5, -3.0, -7.0)), + ), + right: ( + vox_spec: ("npc.gnoll.shaman.foot_r", (-1.5, -3.0, -7.0)), + ) + ), + "common.items.npc_armor.biped_small.haniwa.foot.guard": ( + left: ( + vox_spec: ("npc.haniwa.guard.foot_r", (-2.0, -2.5, -8.0)), + ), + right: ( + vox_spec: ("npc.haniwa.guard.foot_r", (-2.0, -2.5, -8.0)), + ) + ), + "common.items.npc_armor.biped_small.haniwa.foot.archer": ( + left: ( + vox_spec: ("npc.haniwa.archer.foot_r", (-2.0, -2.5, -8.0)), + ), + right: ( + vox_spec: ("npc.haniwa.archer.foot_r", (-2.0, -2.5, -8.0)), + ) + ), + "common.items.npc_armor.biped_small.haniwa.foot.soldier": ( + left: ( + vox_spec: ("npc.haniwa.soldier.foot_r", (-2.0, -2.5, -8.0)), + ), + right: ( + vox_spec: ("npc.haniwa.soldier.foot_r", (-2.0, -2.5, -8.0)), + ) + ), + "common.items.npc_armor.biped_small.myrmidon.foot.hoplite": ( + left: ( + vox_spec: ("npc.myrmidon.hoplite.foot_r", (-1.5, -2.5, -7.0)), + ), + right: ( + vox_spec: ("npc.myrmidon.hoplite.foot_r", (-1.5, -2.5, -7.0)), + ) + ), + "common.items.npc_armor.biped_small.myrmidon.foot.marksman": ( + left: ( + vox_spec: ("npc.myrmidon.marksman.foot_r", (-1.5, -2.5, -7.0)), + ), + right: ( + vox_spec: ("npc.myrmidon.marksman.foot_r", (-1.5, -2.5, -7.0)), + ) + ), + "common.items.npc_armor.biped_small.myrmidon.foot.strategian": ( + left: ( + vox_spec: ("npc.myrmidon.strategian.foot_r", (-1.5, -2.5, -7.0)), + ), + right: ( + vox_spec: ("npc.myrmidon.strategian.foot_r", (-1.5, -2.5, -7.0)), + ) + ), + "common.items.npc_armor.biped_small.husk.foot.husk": ( + left: ( + vox_spec: ("npc.husk.male.foot_r", (-2.0, -3.5, -7.0)), + ), + right: ( + vox_spec: ("npc.husk.male.foot_r", (-2.0, -3.5, -7.0)), + ) + ), + "common.items.npc_armor.biped_small.boreal.foot.warrior": ( + left: ( + vox_spec: ("npc.boreal.warrior.foot_r", (-2.5, -3.5, -9.0)), + ), + right: ( + vox_spec: ("npc.boreal.warrior.foot_r", (-2.5, -3.5, -9.0)), + ) + ), + "common.items.npc_armor.biped_small.bushly.foot.bushly": ( + left: ( + vox_spec: ("npc.bushly.male.foot_r", (-1.5, -2.0, -7.0)), + ), + right: ( + vox_spec: ("npc.bushly.male.foot_r", (-1.5, -2.0, -7.0)), + ) + ), + "common.items.npc_armor.biped_small.irrwurz.foot.irrwurz": ( + left: ( + vox_spec: ("npc.irrwurz.male.foot_r", (-1.5, -2.5, -6.0)), + ), + right: ( + vox_spec: ("npc.irrwurz.male.foot_r", (-1.5, -2.5, -6.0)), + ) + ), + "common.items.npc_armor.biped_small.iron_dwarf.foot.iron_dwarf": ( + left: ( + vox_spec: ("npc.iron_dwarf.foot_r", (-2.5, -3.5, -7.0)), + ), + right: ( + vox_spec: ("npc.iron_dwarf.foot_r", (-2.5, -3.5, -7.0)), + ) + ), + "common.items.npc_armor.biped_small.flamekeeper.foot.flamekeeper": ( + left: ( + vox_spec: ("npc.flamekeeper.foot_r", (-2.5, -4.5, -7.0)), + ), + right: ( + vox_spec: ("npc.flamekeeper.foot_r", (-2.5, -4.5, -7.0)), + ) + ), + "common.items.npc_armor.biped_small.jiangshi.foot.jiangshi": ( + left: ( + vox_spec: ("npc.jiangshi.foot_r", (-2.0, -3.0, -8.0)), + ), + right: ( + vox_spec: ("npc.jiangshi.foot_r", (-2.0, -3.0, -8.0)), + ) + ), + "common.items.npc_armor.biped_small.treasure_egg.foot.treasure_egg": ( + left: ( + vox_spec: ("npc.treasure_egg.male.foot_r", (-1.0, -1.5, -4.0)), + ), + right: ( + vox_spec: ("npc.treasure_egg.male.foot_r", (-1.0, -1.5, -4.0)), + ) + ), + "common.items.npc_armor.biped_small.bloodmoon_heiress.foot.bloodmoon_heiress": ( + left: ( + vox_spec: ("npc.bloodmoon_heiress.wing", (-11.5, -7.0, -13.0)), + ), + right: ( + vox_spec: ("npc.bloodmoon_heiress.wing", (-11.5, -7.0, -13.0)), + ) + ), + "common.items.npc_armor.biped_small.bloodservant.foot.bloodservant": ( + left: ( + vox_spec: ("npc.bloodservant.foot_r", (-1.5, -3.0, -7.0)), + ), + right: ( + vox_spec: ("npc.bloodservant.foot_r", (-1.5, -3.0, -7.0)), + ) + ), + "common.items.npc_armor.biped_small.harlequin.foot.harlequin": ( + left: ( + vox_spec: ("npc.harlequin.foot_r", (-2.5, -4.0, -10.0)), + ), + right: ( + vox_spec: ("npc.harlequin.foot_r", (-2.5, -4.0, -10.0)), + ) + ), + "common.items.npc_armor.biped_small.goblin_thug.foot.goblin_thug": ( + left: ( + vox_spec: ("npc.goblin_thug.foot_r", (-1.5, -2.0, -5.0)), + ), + right: ( + vox_spec: ("npc.goblin_thug.foot_r", (-1.5, -2.0, -5.0)), + ) + ), + "common.items.npc_armor.biped_small.goblin_chucker.foot.goblin_chucker": ( + left: ( + vox_spec: ("npc.goblin_chucker.foot_r", (-1.5, -2.0, -5.0)), + ), + right: ( + vox_spec: ("npc.goblin_chucker.foot_r", (-1.5, -2.0, -5.0)), + ) + ), + "common.items.npc_armor.biped_small.goblin_ruffian.foot.goblin_ruffian": ( + left: ( + vox_spec: ("npc.goblin_ruffian.foot_r", (-1.5, -2.0, -5.0)), + ), + right: ( + vox_spec: ("npc.goblin_ruffian.foot_r", (-1.5, -2.0, -5.0)), + ) + ), + "common.items.npc_armor.biped_small.green_legoom.foot.green_legoom": ( + left: ( + vox_spec: ("npc.green_legoom.foot_r", (-1.0, -1.5, -4.0)), + ), + right: ( + vox_spec: ("npc.green_legoom.foot_r", (-1.0, -1.5, -4.0)), + ) + ), + "common.items.npc_armor.biped_small.ochre_legoom.foot.ochre_legoom": ( + left: ( + vox_spec: ("npc.ochre_legoom.foot_r", (-1.0, -1.5, -4.0)), + ), + right: ( + vox_spec: ("npc.ochre_legoom.foot_r", (-1.0, -1.5, -4.0)), + ) + ), + "common.items.npc_armor.biped_small.purple_legoom.foot.purple_legoom": ( + left: ( + vox_spec: ("npc.purple_legoom.foot_r", (-1.0, -2.0, -4.0)), + ), + right: ( + vox_spec: ("npc.purple_legoom.foot_r", (-1.0, -2.0, -4.0)), + ) + ), + "common.items.npc_armor.biped_small.red_legoom.foot.red_legoom": ( + left: ( + vox_spec: ("npc.red_legoom.foot_r", (-1.0, -1.5, -4.0)), + ), + right: ( + vox_spec: ("npc.red_legoom.foot_r", (-1.0, -1.5, -4.0)), + ) + ), + }, +)) diff --git a/assets/voxygen/voxel/biped_small_armor_hand_manifest.ron b/assets/voxygen/voxel/biped_small_armor_hand_manifest.ron new file mode 100644 index 0000000..874d005 --- /dev/null +++ b/assets/voxygen/voxel/biped_small_armor_hand_manifest.ron @@ -0,0 +1,340 @@ +(( + default: ( + left: ( + vox_spec: ("armor.empty", (0.0, 0.0, 0.0)), + ), + right: ( + vox_spec: ("armor.empty", (0.0, 0.0, 0.0)), + ) + ), + map: { + "common.items.npc_armor.biped_small.gnome.hand.gnome": ( + left: ( + vox_spec: ("npc.gnome.male.hand_r", (-4.0, -2.0, -5.0)), + ), + right: ( + vox_spec: ("npc.gnome.male.hand_r", (0.0, -2.0, -5.0)), + ) + ), + "common.items.npc_armor.biped_small.sahagin.hand.spearman": ( + left: ( + vox_spec: ("npc.sahagin.spearman.hand_r", (-7.0, -4.0, -13.0)), + ), + right: ( + vox_spec: ("npc.sahagin.spearman.hand_r", (0.0, -4.0, -13.0)), + ) + ), + "common.items.npc_armor.biped_small.sahagin.hand.sorcerer": ( + left: ( + vox_spec: ("npc.sahagin.sorcerer.hand_r", (-7.0, -4.0, -13.0)), + ), + right: ( + vox_spec: ("npc.sahagin.sorcerer.hand_r", (0.0, -4.0, -13.0)), + ) + ), + "common.items.npc_armor.biped_small.sahagin.hand.sniper": ( + left: ( + vox_spec: ("npc.sahagin.sniper.hand_r", (-7.0, -4.0, -13.0)), + ), + right: ( + vox_spec: ("npc.sahagin.sniper.hand_r", (0.0, -4.0, -13.0)), + ) + ), + "common.items.npc_armor.biped_small.adlet.hand.tracker": ( + left: ( + vox_spec: ("npc.adlet.tracker.hand_r", (-4.0, -2.0, -7.0)), + ), + right: ( + vox_spec: ("npc.adlet.tracker.hand_r", (0.0, -2.0, -7.0)), + ) + ), + "common.items.npc_armor.biped_small.adlet.hand.hunter": ( + left: ( + vox_spec: ("npc.adlet.hunter.hand_r", (-4.0, -2.0, -7.0)), + ), + right: ( + vox_spec: ("npc.adlet.hunter.hand_r", (0.0, -2.0, -7.0)), + ) + ), + "common.items.npc_armor.biped_small.adlet.hand.icepicker": ( + left: ( + vox_spec: ("npc.adlet.icepicker.hand_r", (-4.0, -2.0, -7.0)), + ), + right: ( + vox_spec: ("npc.adlet.icepicker.hand_r", (0.0, -2.0, -7.0)), + ) + ), + "common.items.npc_armor.biped_small.gnarling.hand.mugger": ( + left: ( + vox_spec: ("npc.gnarling.mugger.hand_r", (-3.0, -1.5, -7.0)), + ), + right: ( + vox_spec: ("npc.gnarling.mugger.hand_r", (0.0, -1.5, -7.0)), + ) + ), + "common.items.npc_armor.biped_small.gnarling.hand.stalker": ( + left: ( + vox_spec: ("npc.gnarling.stalker.hand_r", (-3.0, -1.5, -7.0)), + ), + right: ( + vox_spec: ("npc.gnarling.stalker.hand_r", (0.0, -1.5, -7.0)), + ) + ), + "common.items.npc_armor.biped_small.gnarling.hand.logger": ( + left: ( + vox_spec: ("npc.gnarling.logger.hand_r", (-3.0, -1.5, -7.0)), + ), + right: ( + vox_spec: ("npc.gnarling.logger.hand_r", (0.0, -1.5, -7.0)), + ) + ), + "common.items.npc_armor.biped_small.gnarling.hand.chieftain": ( + left: ( + vox_spec: ("npc.gnarling.chieftain.hand_r", (-3.5, -0.5, -8.0)), + ), + right: ( + vox_spec: ("npc.gnarling.chieftain.hand_r", (-0.5, -0.5, -8.0)), + ) + ), + "common.items.npc_armor.biped_small.mandragora.hand.mandragora": ( + left: ( + vox_spec: ("npc.mandragora.male.hand_r", (-4.0, -1.5, -7.0)), + ), + right: ( + vox_spec: ("npc.mandragora.male.hand_r", (0.0, -1.5, -7.0)), + ) + ), + "common.items.npc_armor.biped_small.kappa.hand.kappa": ( + left: ( + vox_spec: ("npc.kappa.male.hand_r", (-6.0, -4.0, -12.0)), + ), + right: ( + vox_spec: ("npc.kappa.male.hand_r", (0.0, -4.0, -12.0)), + ) + ), + "common.items.npc_armor.biped_small.cactid.hand.cactid": ( + left: ( + vox_spec: ("npc.cactid.male.hand_r", (-5.0, -1.5, -8.0)), + ), + right: ( + vox_spec: ("npc.cactid.male.hand_r", (0.0, -1.5, -8.0)), + ) + ), + "common.items.npc_armor.biped_small.gnoll.hand.rogue": ( + left: ( + vox_spec: ("npc.gnoll.rogue.hand_r", (-6.0, -2.0, -9.0)), + ), + right: ( + vox_spec: ("npc.gnoll.rogue.hand_r", (0.0, -2.0, -9.0)), + ) + ), + "common.items.npc_armor.biped_small.gnoll.hand.trapper": ( + left: ( + vox_spec: ("npc.gnoll.trapper.hand_r", (-6.0, -2.0, -9.0)), + ), + right: ( + vox_spec: ("npc.gnoll.trapper.hand_r", (0.0, -2.0, -9.0)), + ) + ), + "common.items.npc_armor.biped_small.gnoll.hand.shaman": ( + left: ( + vox_spec: ("npc.gnoll.shaman.hand_r", (-6.0, -2.0, -9.0)), + ), + right: ( + vox_spec: ("npc.gnoll.shaman.hand_r", (0.0, -2.0, -9.0)), + ) + ), + "common.items.npc_armor.biped_small.haniwa.hand.guard": ( + left: ( + vox_spec: ("npc.haniwa.guard.hand_r", (-4.0, -2.0, -8.0)), + ), + right: ( + vox_spec: ("npc.haniwa.guard.hand_r", (0.0, -2.0, -8.0)), + ) + ), + "common.items.npc_armor.biped_small.haniwa.hand.archer": ( + left: ( + vox_spec: ("npc.haniwa.archer.hand_r", (-4.0, -2.0, -8.0)), + ), + right: ( + vox_spec: ("npc.haniwa.archer.hand_r", (0.0, -2.0, -8.0)), + ) + ), + "common.items.npc_armor.biped_small.haniwa.hand.soldier": ( + left: ( + vox_spec: ("npc.haniwa.soldier.hand_r", (-4.0, -2.0, -8.0)), + ), + right: ( + vox_spec: ("npc.haniwa.soldier.hand_r", (0.0, -2.0, -8.0)), + ) + ), + "common.items.npc_armor.biped_small.myrmidon.hand.hoplite": ( + left: ( + vox_spec: ("npc.myrmidon.hoplite.hand_r", (-5.0, -2.0, -9.0)), + ), + right: ( + vox_spec: ("npc.myrmidon.hoplite.hand_r", (0.0, -2.0, -9.0)), + ) + ), + "common.items.npc_armor.biped_small.myrmidon.hand.marksman": ( + left: ( + vox_spec: ("npc.myrmidon.marksman.hand_r", (-5.0, -2.0, -9.0)), + ), + right: ( + vox_spec: ("npc.myrmidon.marksman.hand_r", (0.0, -2.0, -9.0)), + ) + ), + "common.items.npc_armor.biped_small.myrmidon.hand.strategian": ( + left: ( + vox_spec: ("npc.myrmidon.strategian.hand_r", (-5.0, -2.0, -9.0)), + ), + right: ( + vox_spec: ("npc.myrmidon.strategian.hand_r", (0.0, -2.0, -9.0)), + ) + ), + "common.items.npc_armor.biped_small.husk.hand.husk": ( + left: ( + vox_spec: ("npc.husk.male.hand_r", (-7.0, -2.5, -10.0)), + ), + right: ( + vox_spec: ("npc.husk.male.hand_r", (0.0, -2.5, -10.0)), + ) + ), + "common.items.npc_armor.biped_small.boreal.hand.warrior": ( + left: ( + vox_spec: ("npc.boreal.warrior.hand_r", (-6.0, -2.5, -10.0)), + ), + right: ( + vox_spec: ("npc.boreal.warrior.hand_r", (0.0, -2.5, -10.0)), + ) + ), + "common.items.npc_armor.biped_small.bushly.hand.bushly": ( + left: ( + vox_spec: ("npc.bushly.male.hand_r", (-4.0, -3.0, -8.0)), + ), + right: ( + vox_spec: ("npc.bushly.male.hand_r", (0.0, -3.0, -8.0)), + ) + ), + "common.items.npc_armor.biped_small.irrwurz.hand.irrwurz": ( + left: ( + vox_spec: ("npc.irrwurz.male.hand_r", (-6.0, -3.5, -7.0)), + ), + right: ( + vox_spec: ("npc.irrwurz.male.hand_r", (0.0, -3.5, -7.0)), + ) + ), + "common.items.npc_armor.biped_small.iron_dwarf.hand.iron_dwarf": ( + left: ( + vox_spec: ("npc.iron_dwarf.hand_r", (-6.0, -3.5, -8.5)), + ), + right: ( + vox_spec: ("npc.iron_dwarf.hand_r", (0.0, -3.5, -8.5)), + ) + ), + "common.items.npc_armor.biped_small.flamekeeper.hand.flamekeeper": ( + left: ( + vox_spec: ("npc.flamekeeper.hand_r", (-5.0, -2.5, -6.5)), + ), + right: ( + vox_spec: ("npc.flamekeeper.hand_r", (0.0, -2.5, -6.5)), + ) + ), + "common.items.npc_armor.biped_small.shamanic_spirit.hand.shamanic_spirit": ( + left: ( + vox_spec: ("npc.shamanic_spirit.hand_r", (-4.0, -2.0, -9.0)), + ), + right: ( + vox_spec: ("npc.shamanic_spirit.hand_r", (0.0, -2.0, -9.0)), + ) + ), + "common.items.npc_armor.biped_small.jiangshi.hand.jiangshi": ( + left: ( + vox_spec: ("npc.jiangshi.hand_r", (-5.0, -2.0, -11.0)), + ), + right: ( + vox_spec: ("npc.jiangshi.hand_r", (0.0, -2.0, -11.0)), + ) + ), + "common.items.npc_armor.biped_small.bloodmoon_heiress.hand.bloodmoon_heiress": ( + left: ( + vox_spec: ("npc.bloodmoon_heiress.hand", (-7.0, -4.0, -10.0)), + ), + right: ( + vox_spec: ("npc.bloodmoon_heiress.hand", (0.0, -4.0, -10.0)), + ) + ), + "common.items.npc_armor.biped_small.bloodservant.hand.bloodservant": ( + left: ( + vox_spec: ("npc.bloodservant.hand_r", (-3.0, -1.5, -9.0)), + ), + right: ( + vox_spec: ("npc.bloodservant.hand_r", (0.0, -1.5, -9.0)), + ) + ), + "common.items.npc_armor.biped_small.harlequin.hand.harlequin": ( + left: ( + vox_spec: ("npc.harlequin.hand_r", (-4.0, -2.5, -10.0)), + ), + right: ( + vox_spec: ("npc.harlequin.hand_r", (0.0, -2.5, -10.0)), + ) + ), + "common.items.npc_armor.biped_small.goblin_thug.hand.goblin_thug": ( + left: ( + vox_spec: ("npc.goblin_thug.hand_r", (-3.0, -1.5, -9.0)), + ), + right: ( + vox_spec: ("npc.goblin_thug.hand_r", (0.0, -1.5, -9.0)), + ) + ), + "common.items.npc_armor.biped_small.goblin_chucker.hand.goblin_chucker": ( + left: ( + vox_spec: ("npc.goblin_chucker.hand_r", (-3.0, -1.5, -9.0)), + ), + right: ( + vox_spec: ("npc.goblin_chucker.hand_r", (0.0, -1.5, -9.0)), + ) + ), + "common.items.npc_armor.biped_small.goblin_ruffian.hand.goblin_ruffian": ( + left: ( + vox_spec: ("npc.goblin_ruffian.hand_r", (-3.0, -1.5, -9.0)), + ), + right: ( + vox_spec: ("npc.goblin_ruffian.hand_r", (0.0, -1.5, -9.0)), + ) + ), + "common.items.npc_armor.biped_small.green_legoom.hand.green_legoom": ( + left: ( + vox_spec: ("npc.green_legoom.hand_r", (-3.0, -2.0, -6.0)), + ), + right: ( + vox_spec: ("npc.green_legoom.hand_r", (0.0, -2.0, -6.0)), + ) + ), + "common.items.npc_armor.biped_small.ochre_legoom.hand.ochre_legoom": ( + left: ( + vox_spec: ("npc.ochre_legoom.hand_r", (-3.0, -2.0, -6.0)), + ), + right: ( + vox_spec: ("npc.ochre_legoom.hand_r", (0.0, -2.0, -6.0)), + ) + ), + "common.items.npc_armor.biped_small.purple_legoom.hand.purple_legoom": ( + left: ( + vox_spec: ("npc.purple_legoom.hand_r", (-3.0, -2.0, -7.0)), + ), + right: ( + vox_spec: ("npc.purple_legoom.hand_r", (0.0, -2.0, -7.0)), + ) + ), + "common.items.npc_armor.biped_small.red_legoom.hand.red_legoom": ( + left: ( + vox_spec: ("npc.red_legoom.hand_r", (-3.0, -2.0, -6.0)), + ), + right: ( + vox_spec: ("npc.red_legoom.hand_r", (0.0, -2.0, -6.0)), + ) + ), + } +)) diff --git a/assets/voxygen/voxel/biped_small_armor_head_manifest.ron b/assets/voxygen/voxel/biped_small_armor_head_manifest.ron new file mode 100644 index 0000000..6f2b429 --- /dev/null +++ b/assets/voxygen/voxel/biped_small_armor_head_manifest.ron @@ -0,0 +1,125 @@ + (( + // (, , ) + default: ( + vox_spec: ("armor.empty", (0.0, 0.0, 0.0)), + ), + map: { + "common.items.npc_armor.biped_small.gnome.head.gnome": ( + vox_spec: ("npc.gnome.male.head", (-8.0, -6.5, -12.0)), + ), + "common.items.npc_armor.biped_small.sahagin.head.spearman": ( + vox_spec: ("npc.sahagin.spearman.head", (-2.5, 0.0, -4.5)), + ), + "common.items.npc_armor.biped_small.sahagin.head.sorcerer": ( + vox_spec: ("npc.sahagin.sorcerer.head", (-2.5, 0.0, -4.5)), + ), + "common.items.npc_armor.biped_small.sahagin.head.sniper": ( + vox_spec: ("npc.sahagin.sniper.head", (-2.5, 0.0, -4.5)), + ), + "common.items.npc_armor.biped_small.adlet.head.hunter": ( + vox_spec: ("npc.adlet.hunter.head", (-7.0, -4.5, -6.0)), + ), + "common.items.npc_armor.biped_small.adlet.head.tracker": ( + vox_spec: ("npc.adlet.tracker.head", (-7.0, -4.5, -6.0)), + ), + "common.items.npc_armor.biped_small.adlet.head.icepicker": ( + vox_spec: ("npc.adlet.icepicker.head", (-7.0, -4.5, -6.0)), + ), + "common.items.npc_armor.biped_small.gnarling.head.mugger": ( + vox_spec: ("npc.gnarling.mugger.head", (-6.5, -5.5, -4.5)), + ), + "common.items.npc_armor.biped_small.gnarling.head.stalker": ( + vox_spec: ("npc.gnarling.stalker.head", (-6.5, -5.5, -4.5)), + ), + "common.items.npc_armor.biped_small.gnarling.head.logger": ( + vox_spec: ("npc.gnarling.logger.head", (-6.5, -5.5, -4.5)), + ), + "common.items.npc_armor.biped_small.gnarling.head.chieftain": ( + vox_spec: ("npc.gnarling.chieftain.head", (-6.5, -5.5, -4.5)), + ), + "common.items.npc_armor.biped_small.mandragora.head.mandragora": ( + vox_spec: ("npc.mandragora.male.head", (0.0, 0.0, 0.0)), + ), + "common.items.npc_armor.biped_small.kappa.head.kappa": ( + vox_spec: ("npc.kappa.male.chest", (-4.5, -5.0, -4.5)), + ), + "common.items.npc_armor.biped_small.cactid.head.cactid": ( + vox_spec: ("npc.cactid.male.head", (-8.0, -4.0, -7.5)), + ), + "common.items.npc_armor.biped_small.gnoll.head.rogue": ( + vox_spec: ("npc.gnoll.rogue.head", (-4.0, -1.5, -3.0)), + ), + "common.items.npc_armor.biped_small.gnoll.head.shaman": ( + vox_spec: ("npc.gnoll.shaman.head", (-4.0, -1.5, -3.0)), + ), + "common.items.npc_armor.biped_small.gnoll.head.trapper": ( + vox_spec: ("npc.gnoll.trapper.head", (-4.0, -1.5, -3.0)), + ), + "common.items.npc_armor.biped_small.haniwa.head.guard": ( + vox_spec: ("npc.haniwa.guard.head", (-5.5, -5.5, -5.5)), + ), + "common.items.npc_armor.biped_small.haniwa.head.archer": ( + vox_spec: ("npc.haniwa.archer.head", (-5.5, -5.5, -5.5)), + ), + "common.items.npc_armor.biped_small.haniwa.head.soldier": ( + vox_spec: ("npc.haniwa.soldier.head", (-5.5, -5.5, -5.5)), + ), + "common.items.npc_armor.biped_small.myrmidon.head.hoplite": ( + vox_spec: ("npc.myrmidon.hoplite.head", (-4.5, -7.0, -6.5)), + ), + "common.items.npc_armor.biped_small.myrmidon.head.marksman": ( + vox_spec: ("npc.myrmidon.marksman.head", (-4.5, -7.0, -6.5)), + ), + "common.items.npc_armor.biped_small.myrmidon.head.strategian": ( + vox_spec: ("npc.myrmidon.strategian.head", (-4.5, -7.0, -6.5)), + ), + "common.items.npc_armor.biped_small.husk.head.husk": ( + vox_spec: ("npc.husk.male.head", (-6.0, -6.0, -5.5)), + ), + "common.items.npc_armor.biped_small.boreal.head.warrior": ( + vox_spec: ("npc.boreal.warrior.head", (-8.0, -6.0, -8.0)), + ), + "common.items.npc_armor.biped_small.iron_dwarf.head.iron_dwarf": ( + vox_spec: ("npc.iron_dwarf.head", (-6.0, -5.0, -8.5)), + ), + "common.items.npc_armor.biped_small.flamekeeper.head.flamekeeper": ( + vox_spec: ("npc.flamekeeper.head", (-8.0, -7.0, -10.0)), + ), + "common.items.npc_armor.biped_small.shamanic_spirit.head.shamanic_spirit": ( + vox_spec: ("npc.shamanic_spirit.head", (-8.0, -6.5, -8.5)), + ), + "common.items.npc_armor.biped_small.jiangshi.head.jiangshi": ( + vox_spec: ("npc.jiangshi.head", (-8.0, -9.0, -8.5)), + ), + "common.items.npc_armor.biped_small.bloodmoon_heiress.head.bloodmoon_heiress": ( + vox_spec: ("npc.bloodmoon_heiress.head", (-8.5, -11.5, 0.0)), + ), + "common.items.npc_armor.biped_small.bloodservant.head.bloodservant": ( + vox_spec: ("npc.bloodservant.head", (-8.0, -7.0, -6.5)), + ), + "common.items.npc_armor.biped_small.harlequin.head.harlequin": ( + vox_spec: ("npc.harlequin.head", (-10.0, -4.5, -5.5)), + ), + "common.items.npc_armor.biped_small.goblin_thug.head.goblin_thug": ( + vox_spec: ("npc.goblin_thug.head", (-10.5, -7.0, -1.5)), + ), + "common.items.npc_armor.biped_small.goblin_chucker.head.goblin_chucker": ( + vox_spec: ("npc.goblin_chucker.head", (-10.5, -6.5, -1.5)), + ), + "common.items.npc_armor.biped_small.goblin_ruffian.head.goblin_ruffian": ( + vox_spec: ("npc.goblin_ruffian.head", (-10.5, -5.0, -2.5)), + ), + "common.items.npc_armor.biped_small.green_legoom.head.green_legoom": ( + vox_spec: ("npc.green_legoom.head", (-5.0, -5.0, -2.0)), + ), + "common.items.npc_armor.biped_small.ochre_legoom.head.ochre_legoom": ( + vox_spec: ("npc.ochre_legoom.head", (-5.0, -5.0, -2.0)), + ), + "common.items.npc_armor.biped_small.purple_legoom.head.purple_legoom": ( + vox_spec: ("npc.purple_legoom.head", (-5.0, -5.0, -1.5)), + ), + "common.items.npc_armor.biped_small.red_legoom.head.red_legoom": ( + vox_spec: ("npc.red_legoom.head", (-7.0, -5.0, -2.0)), + ), + }, +)) diff --git a/assets/voxygen/voxel/biped_small_armor_pants_manifest.ron b/assets/voxygen/voxel/biped_small_armor_pants_manifest.ron new file mode 100644 index 0000000..5d2e1e7 --- /dev/null +++ b/assets/voxygen/voxel/biped_small_armor_pants_manifest.ron @@ -0,0 +1,130 @@ +(( + default: ( + vox_spec: ("armor.empty", (0.0, 0.0, 0.0)), + ), + map: { + "common.items.npc_armor.biped_small.gnome.pants.gnome": ( + vox_spec: ("npc.gnome.male.pants", (-4.0, -3.5, -2.5)), + ), + "common.items.npc_armor.biped_small.sahagin.pants.spearman": ( + vox_spec: ("npc.sahagin.spearman.pants", (-2.5, -3.5, -2.0)), + ), + "common.items.npc_armor.biped_small.sahagin.pants.sorcerer": ( + vox_spec: ("npc.sahagin.sorcerer.pants", (-2.5, -3.5, -2.0)), + ), + "common.items.npc_armor.biped_small.sahagin.pants.sniper": ( + vox_spec: ("npc.sahagin.sniper.pants", (-2.5, -3.5, -2.0)), + ), + "common.items.npc_armor.biped_small.adlet.pants.hunter": ( + vox_spec: ("npc.adlet.hunter.pants", (-5.0, -4.5, -3.0)), + ), + "common.items.npc_armor.biped_small.adlet.pants.tracker": ( + vox_spec: ("npc.adlet.tracker.pants", (-5.0, -4.5, -3.0)), + ), + "common.items.npc_armor.biped_small.adlet.pants.icepicker": ( + vox_spec: ("npc.adlet.icepicker.pants", (-5.0, -4.5, -3.0)), + ), + "common.items.npc_armor.biped_small.gnarling.pants.mugger": ( + vox_spec: ("npc.gnarling.mugger.pants", (-3.5, -3.0, -2.5)), + ), + "common.items.npc_armor.biped_small.gnarling.pants.stalker": ( + vox_spec: ("npc.gnarling.stalker.pants", (-3.5, -3.0, -2.5)), + ), + "common.items.npc_armor.biped_small.gnarling.pants.logger": ( + vox_spec: ("npc.gnarling.logger.pants", (-3.5, -3.0, -2.5)), + ), + "common.items.npc_armor.biped_small.gnarling.pants.chieftain": ( + vox_spec: ("npc.gnarling.chieftain.pants", (-3.5, -3.0, -3.5)), + ), + "common.items.npc_armor.biped_small.mandragora.pants.mandragora": ( + vox_spec: ("npc.mandragora.male.pants", (-3.0, -3.0, -1.0)), + ), + "common.items.npc_armor.biped_small.kappa.pants.kappa": ( + vox_spec: ("npc.kappa.male.pants", (-3.5, -4.0, -1.5)), + ), + "common.items.npc_armor.biped_small.cactid.pants.cactid": ( + vox_spec: ("npc.cactid.male.pants", (-3.0, -2.0, -1.0)), + ), + "common.items.npc_armor.biped_small.gnoll.pants.rogue": ( + vox_spec: ("npc.gnoll.rogue.pants", (-5.0, -4.0, -3.0)), + ), + "common.items.npc_armor.biped_small.gnoll.pants.shaman": ( + vox_spec: ("npc.gnoll.shaman.pants", (-5.0, -4.0, -3.0)), + ), + "common.items.npc_armor.biped_small.gnoll.pants.trapper": ( + vox_spec: ("npc.gnoll.trapper.pants", (-5.0, -4.0, -3.0)), + ), + "common.items.npc_armor.biped_small.haniwa.pants.guard": ( + vox_spec: ("npc.haniwa.guard.pants", (-4.5, -4.5, -1.5)), + ), + "common.items.npc_armor.biped_small.haniwa.pants.archer": ( + vox_spec: ("npc.haniwa.archer.pants", (-4.5, -4.5, -1.5)), + ), + "common.items.npc_armor.biped_small.haniwa.pants.soldier": ( + vox_spec: ("npc.haniwa.soldier.pants", (-4.5, -4.5, -1.5)), + ), + "common.items.npc_armor.biped_small.myrmidon.pants.hoplite": ( + vox_spec: ("npc.myrmidon.hoplite.pants", (-2.5, -4.5, -1.5)), + ), + "common.items.npc_armor.biped_small.myrmidon.pants.marksman": ( + vox_spec: ("npc.myrmidon.marksman.pants", (-2.5, -4.5, -1.5)), + ), + "common.items.npc_armor.biped_small.myrmidon.pants.strategian": ( + vox_spec: ("npc.myrmidon.strategian.pants", (-2.5, -4.5, -1.5)), + ), + "common.items.npc_armor.biped_small.husk.pants.husk": ( + vox_spec: ("npc.husk.male.pants", (-5.0, -4.5, -6.0)), + ), + "common.items.npc_armor.biped_small.boreal.pants.warrior": ( + vox_spec: ("npc.boreal.warrior.pants", (-7.0, -5.0, -3.5)), + ), + "common.items.npc_armor.biped_small.bushly.pants.bushly": ( + vox_spec: ("npc.bushly.male.pants", (-3.0, -2.0, -1.0)), + ), + "common.items.npc_armor.biped_small.irrwurz.pants.irrwurz": ( + vox_spec: ("npc.irrwurz.male.pants", (-3.5, -4.0, -3.5)), + ), + "common.items.npc_armor.biped_small.iron_dwarf.pants.iron_dwarf": ( + vox_spec: ("npc.iron_dwarf.pants", (-5.0, -1.5, -2.0)), + ), + "common.items.npc_armor.biped_small.flamekeeper.pants.flamekeeper": ( + vox_spec: ("npc.flamekeeper.pants", (-6.0, -2.5, 0.0)), + ), + "common.items.npc_armor.biped_small.shamanic_spirit.pants.shamanic_spirit": ( + vox_spec: ("npc.shamanic_spirit.pants", (-5.0, -4.0, -5.5)), + ), + "common.items.npc_armor.biped_small.jiangshi.pants.jiangshi": ( + vox_spec: ("npc.jiangshi.pants", (-5.0, -4.5, -3.5)), + ), + "common.items.npc_armor.biped_small.bloodmoon_heiress.pants.bloodmoon_heiress": ( + vox_spec: ("npc.bloodmoon_heiress.pants", (-9.5, -8.5, -9.0)), + ), + "common.items.npc_armor.biped_small.bloodservant.pants.bloodservant": ( + vox_spec: ("npc.bloodservant.pants", (-6.0, -5.0, -3.5)), + ), + "common.items.npc_armor.biped_small.harlequin.pants.harlequin": ( + vox_spec: ("npc.harlequin.pants", (-6.0, -4.5, -2.0)), + ), + "common.items.npc_armor.biped_small.goblin_thug.pants.goblin_thug": ( + vox_spec: ("npc.goblin_thug.pants", (-3.5, -3.5, -2.5)), + ), + "common.items.npc_armor.biped_small.goblin_chucker.pants.goblin_chucker": ( + vox_spec: ("npc.goblin_chucker.pants", (-3.5, -3.5, -2.5)), + ), + "common.items.npc_armor.biped_small.goblin_ruffian.pants.goblin_ruffian": ( + vox_spec: ("npc.goblin_ruffian.pants", (-3.5, -3.5, -2.5)), + ), + "common.items.npc_armor.biped_small.green_legoom.pants.green_legoom": ( + vox_spec: ("npc.green_legoom.pants", (-3.0, -3.0, -1.0)), + ), + "common.items.npc_armor.biped_small.ochre_legoom.pants.ochre_legoom": ( + vox_spec: ("npc.ochre_legoom.pants", (-3.0, -3.0, -1.0)), + ), + "common.items.npc_armor.biped_small.purple_legoom.pants.purple_legoom": ( + vox_spec: ("npc.purple_legoom.pants", (-4.0, -3.5, -1.0)), + ), + "common.items.npc_armor.biped_small.red_legoom.pants.red_legoom": ( + vox_spec: ("npc.red_legoom.pants", (-3.0, -3.0, -1.0)), + ), + }, +)) diff --git a/assets/voxygen/voxel/biped_small_armor_tail_manifest.ron b/assets/voxygen/voxel/biped_small_armor_tail_manifest.ron new file mode 100644 index 0000000..49963b0 --- /dev/null +++ b/assets/voxygen/voxel/biped_small_armor_tail_manifest.ron @@ -0,0 +1,58 @@ +(( + default: ( + vox_spec: ("armor.empty", (0.0, 0.0, 0.0)), + ), + map: { + "common.items.npc_armor.biped_small.sahagin.tail.spearman": ( + vox_spec: ("npc.sahagin.spearman.tail", (-1.5, -13.0, -5.0)), + ), + "common.items.npc_armor.biped_small.sahagin.tail.sorcerer": ( + vox_spec: ("npc.sahagin.sorcerer.tail", (-1.5, -13.0, -5.0)), + ), + "common.items.npc_armor.biped_small.sahagin.tail.sniper": ( + vox_spec: ("npc.sahagin.sniper.tail", (-1.5, -13.0, -5.0)), + ), + "common.items.npc_armor.biped_small.adlet.tail.hunter": ( + vox_spec: ("npc.adlet.hunter.tail", (-1.0, -5.0, -1.0)), + ), + "common.items.npc_armor.biped_small.adlet.tail.tracker": ( + vox_spec: ("npc.adlet.tracker.tail", (-1.0, -5.0, -1.0)), + ), + "common.items.npc_armor.biped_small.adlet.tail.icepicker": ( + vox_spec: ("npc.adlet.icepicker.tail", (-1.0, -5.0, -1.0)), + ), + "common.items.npc_armor.biped_small.gnarling.tail.mugger": ( + vox_spec: ("npc.gnarling.mugger.tail", (-1.5, -13.0, -3.0)), + ), + "common.items.npc_armor.biped_small.gnarling.tail.stalker": ( + vox_spec: ("npc.gnarling.stalker.tail", (-1.5, -13.0, -3.0)), + ), + "common.items.npc_armor.biped_small.gnarling.tail.logger": ( + vox_spec: ("npc.gnarling.logger.tail", (-1.5, -13.0, -3.0)), + ), + "common.items.npc_armor.biped_small.gnarling.tail.chieftain": ( + vox_spec: ("npc.gnarling.chieftain.tail", (-1.5, -14.0, -3.0)), + ), + "common.items.npc_armor.biped_small.kappa.tail.kappa": ( + vox_spec: ("npc.kappa.male.tail", (-2.5, -10.0, -5.0)), + ), + "common.items.npc_armor.biped_small.gnoll.tail.rogue": ( + vox_spec: ("npc.gnoll.rogue.tail", (-1.0, -11.0, -1.0)), + ), + "common.items.npc_armor.biped_small.gnoll.tail.shaman": ( + vox_spec: ("npc.gnoll.shaman.tail", (-1.0, -11.0, -1.0)), + ), + "common.items.npc_armor.biped_small.gnoll.tail.trapper": ( + vox_spec: ("npc.gnoll.trapper.tail", (-1.0, -11.0, -1.0)), + ), + "common.items.npc_armor.biped_small.myrmidon.tail.hoplite": ( + vox_spec: ("npc.myrmidon.hoplite.tail", (-2.5, -7.0, -2.5)), + ), + "common.items.npc_armor.biped_small.myrmidon.tail.marksman": ( + vox_spec: ("npc.myrmidon.marksman.tail", (-2.5, -7.0, -2.5)), + ), + "common.items.npc_armor.biped_small.myrmidon.tail.strategian": ( + vox_spec: ("npc.myrmidon.strategian.tail", (-2.5, -7.0, -2.5)), + ), + }, +)) diff --git a/assets/voxygen/voxel/biped_weapon_manifest.ron b/assets/voxygen/voxel/biped_weapon_manifest.ron new file mode 100644 index 0000000..745158d --- /dev/null +++ b/assets/voxygen/voxel/biped_weapon_manifest.ron @@ -0,0 +1,1919 @@ +({ //Swords + Modular(("common.items.modular.weapon.primary.sword.greatsword", "common.items.mineral.ingot.bronze", Two)): ( + vox_spec: ("weapon.sword.greatsword.bronze-2h", (-1.5, -4.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.katana", "common.items.mineral.ingot.bronze", Two)): ( + vox_spec: ("weapon.sword.katana.bronze-2h", (-1.5, -2.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.longsword", "common.items.mineral.ingot.bronze", Two)): ( + vox_spec: ("weapon.sword.longsword.bronze-2h", (-1.5, -3.5, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.ornate", "common.items.mineral.ingot.bronze", Two)): ( + vox_spec: ("weapon.sword.ornate.bronze-2h", (-1.5, -3.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.sabre", "common.items.mineral.ingot.bronze", Two)): ( + vox_spec: ("weapon.sword.sabre.bronze-2h", (-1.5, -3.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.sawblade", "common.items.mineral.ingot.bronze", Two)): ( + vox_spec: ("weapon.sword.sawblade.bronze-2h", (-1.5, -3.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.zweihander", "common.items.mineral.ingot.bronze", Two)): ( + vox_spec: ("weapon.sword.zweihander.bronze-2h", (-1.5, -3.5, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.greatsword", "common.items.mineral.ingot.iron", Two)): ( + vox_spec: ("weapon.sword.greatsword.iron-2h", (-1.5, -4.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.katana", "common.items.mineral.ingot.iron", Two)): ( + vox_spec: ("weapon.sword.katana.iron-2h", (-1.5, -3.5, -4.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.longsword", "common.items.mineral.ingot.iron", Two)): ( + vox_spec: ("weapon.sword.longsword.iron-2h", (-1.5, -4.5, -4.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.ornate", "common.items.mineral.ingot.iron", Two)): ( + vox_spec: ("weapon.sword.ornate.iron-2h", (-2.5, -5.5, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.sabre", "common.items.mineral.ingot.iron", Two)): ( + vox_spec: ("weapon.sword.sabre.iron-2h", (-1.5, -4.5, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.sawblade", "common.items.mineral.ingot.iron", Two)): ( + vox_spec: ("weapon.sword.sawblade.iron-2h", (-1.5, -4.5, -4.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.zweihander", "common.items.mineral.ingot.iron", Two)): ( + vox_spec: ("weapon.sword.zweihander.iron-2h", (-1.5, -5.5, -6.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.greatsword", "common.items.mineral.ingot.steel", Two)): ( + vox_spec: ("weapon.sword.greatsword.steel-2h", (-1.5, -5.5, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.katana", "common.items.mineral.ingot.steel", Two)): ( + vox_spec: ("weapon.sword.katana.steel-2h", (-1.5, -3.5, -6.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.longsword", "common.items.mineral.ingot.steel", Two)): ( + vox_spec: ("weapon.sword.longsword.steel-2h", (-1.5, -5.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.ornate", "common.items.mineral.ingot.steel", Two)): ( + vox_spec: ("weapon.sword.ornate.steel-2h", (-1.5, -5.5, -4.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.sabre", "common.items.mineral.ingot.steel", Two)): ( + vox_spec: ("weapon.sword.sabre.steel-2h", (-1.5, -4.5, -6.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.sawblade", "common.items.mineral.ingot.steel", Two)): ( + vox_spec: ("weapon.sword.sawblade.steel-2h", (-1.5, -3.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.zweihander", "common.items.mineral.ingot.steel", Two)): ( + vox_spec: ("weapon.sword.zweihander.steel-2h", (-1.5, -5.5, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.greatsword", "common.items.mineral.ingot.cobalt", Two)): ( + vox_spec: ("weapon.sword.greatsword.cobalt-2h", (-1.5, -4.5, -4.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.katana", "common.items.mineral.ingot.cobalt", Two)): ( + vox_spec: ("weapon.sword.katana.cobalt-2h", (-2.5, -3.5, -4.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.longsword", "common.items.mineral.ingot.cobalt", Two)): ( + vox_spec: ("weapon.sword.longsword.cobalt-2h", (-1.5, -5.5, -4.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.ornate", "common.items.mineral.ingot.cobalt", Two)): ( + vox_spec: ("weapon.sword.ornate.cobalt-2h", (-1.5, -5.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.sabre", "common.items.mineral.ingot.cobalt", Two)): ( + vox_spec: ("weapon.sword.sabre.cobalt-2h", (-1.5, -4.5, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.sawblade", "common.items.mineral.ingot.cobalt", Two)): ( + vox_spec: ("weapon.sword.sawblade.cobalt-2h", (-1.5, -3.5, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.zweihander", "common.items.mineral.ingot.cobalt", Two)): ( + vox_spec: ("weapon.sword.zweihander.cobalt-2h", (-1.5, -5.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.greatsword", "common.items.mineral.ingot.bloodsteel", Two)): ( + vox_spec: ("weapon.sword.greatsword.bloodsteel-2h", (-1.5, -5.5, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.katana", "common.items.mineral.ingot.bloodsteel", Two)): ( + vox_spec: ("weapon.sword.katana.bloodsteel-2h", (-2.5, -3.0, -6.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.longsword", "common.items.mineral.ingot.bloodsteel", Two)): ( + vox_spec: ("weapon.sword.longsword.bloodsteel-2h", (-1.5, -4.5, -3.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.ornate", "common.items.mineral.ingot.bloodsteel", Two)): ( + vox_spec: ("weapon.sword.ornate.bloodsteel-2h", (-1.5, -4.5, -4.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.sabre", "common.items.mineral.ingot.bloodsteel", Two)): ( + vox_spec: ("weapon.sword.sabre.bloodsteel-2h", (-1.5, -4.5, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.sawblade", "common.items.mineral.ingot.bloodsteel", Two)): ( + vox_spec: ("weapon.sword.sawblade.bloodsteel-2h", (-1.5, -2.5, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.zweihander", "common.items.mineral.ingot.bloodsteel", Two)): ( + vox_spec: ("weapon.sword.zweihander.bloodsteel-2h", (-1.5, -5.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.greatsword", "common.items.mineral.ingot.orichalcum", Two)): ( + vox_spec: ("weapon.sword.greatsword.orichalcum-2h", (-1.5, -6.5, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.katana", "common.items.mineral.ingot.orichalcum", Two)): ( + vox_spec: ("weapon.sword.katana.orichalcum-2h", (-2.5, -4.5, -7.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.longsword", "common.items.mineral.ingot.orichalcum", Two)): ( + vox_spec: ("weapon.sword.longsword.orichalcum-2h", (-1.5, -4.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.ornate", "common.items.mineral.ingot.orichalcum", Two)): ( + vox_spec: ("weapon.sword.ornate.orichalcum-2h", (-1.5, -5.5, -3.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.sabre", "common.items.mineral.ingot.orichalcum", Two)): ( + vox_spec: ("weapon.sword.sabre.orichalcum-2h", (-1.5, -3.5, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.sawblade", "common.items.mineral.ingot.orichalcum", Two)): ( + vox_spec: ("weapon.sword.sawblade.orichalcum-2h", (-1.5, -3.5, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.zweihander", "common.items.mineral.ingot.orichalcum", Two)): ( + vox_spec: ("weapon.sword.zweihander.orichalcum-2h", (-1.5, -5.5, -4.0)), + color: None + ), + Tool("common.items.weapons.sword.caladbolg"): ( + vox_spec: ("weapon.sword.caladbolg", (-2.5, -5.5, -4.0)), + color: None + ), + Tool("common.items.weapons.sword.cultist"): ( + vox_spec: ("weapon.sword.cultist", (-2.5, -4.0, -6.0)), + color: None + ), + Tool("common.items.weapons.sword.frost-0"): ( + vox_spec: ("weapon.sword.frost-0", (-2.5, -5.5, -5.0)), + color: None + ), + Tool("common.items.weapons.sword.frost-1"): ( + vox_spec: ("weapon.sword.frost-1", (-2.5, -5.5, -5.0)), + color: None + ), + Tool("common.items.weapons.sword.starter"): ( + vox_spec: ("weapon.sword.starter", (-2.5, -4.0, -4.0)), + color: None + ), + // 1h Swords + Modular(("common.items.modular.weapon.primary.sword.katana", "common.items.mineral.ingot.bronze", One)): ( + vox_spec: ("weapon.sword.katana.bronze-1h", (-2.0, -2.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.longsword", "common.items.mineral.ingot.bronze", One)): ( + vox_spec: ("weapon.sword.longsword.bronze-1h", (-2.0, -3.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.ornate", "common.items.mineral.ingot.bronze", One)): ( + vox_spec: ("weapon.sword.ornate.bronze-1h", (-0.5, -3.0, -3.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.sabre", "common.items.mineral.ingot.bronze", One)): ( + vox_spec: ("weapon.sword.sabre.bronze-1h", (-2.0, -2.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.sawblade", "common.items.mineral.ingot.bronze", One)): ( + vox_spec: ("weapon.sword.sawblade.bronze-1h", (-2.0, -3.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.katana", "common.items.mineral.ingot.iron", One)): ( + vox_spec: ("weapon.sword.katana.iron-1h", (-2.0, -3.0, -3.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.longsword", "common.items.mineral.ingot.iron", One)): ( + vox_spec: ("weapon.sword.longsword.iron-1h", (-2.0, -3.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.ornate", "common.items.mineral.ingot.iron", One)): ( + vox_spec: ("weapon.sword.ornate.iron-1h", (-1.5, -3.0, -3.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.sabre", "common.items.mineral.ingot.iron", One)): ( + vox_spec: ("weapon.sword.sabre.iron-1h", (-2.0, -3.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.sawblade", "common.items.mineral.ingot.iron", One)): ( + vox_spec: ("weapon.sword.sawblade.iron-1h", (-2.0, -3.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.katana", "common.items.mineral.ingot.steel", One)): ( + vox_spec: ("weapon.sword.katana.steel-1h", (-2.0, -3.0, -3.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.longsword", "common.items.mineral.ingot.steel", One)): ( + vox_spec: ("weapon.sword.longsword.steel-1h", (-2.0, -3.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.ornate", "common.items.mineral.ingot.steel", One)): ( + vox_spec: ("weapon.sword.ornate.steel-1h", (-2.5, -4.0, -3.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.sabre", "common.items.mineral.ingot.steel", One)): ( + vox_spec: ("weapon.sword.sabre.steel-1h", (-1.5, -3.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.sawblade", "common.items.mineral.ingot.steel", One)): ( + vox_spec: ("weapon.sword.sawblade.steel-1h", (-2.0, -3.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.katana", "common.items.mineral.ingot.cobalt", One)): ( + vox_spec: ("weapon.sword.katana.cobalt-1h", (-2.0, -3.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.longsword", "common.items.mineral.ingot.cobalt", One)): ( + vox_spec: ("weapon.sword.longsword.cobalt-1h", (-2.0, -3.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.ornate", "common.items.mineral.ingot.cobalt", One)): ( + vox_spec: ("weapon.sword.ornate.cobalt-1h", (-2.5, -4.0, -3.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.sabre", "common.items.mineral.ingot.cobalt", One)): ( + vox_spec: ("weapon.sword.sabre.cobalt-1h", (-2.0, -4.0, -4.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.sawblade", "common.items.mineral.ingot.cobalt", One)): ( + vox_spec: ("weapon.sword.sawblade.cobalt-1h", (-2.0, -4.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.katana", "common.items.mineral.ingot.bloodsteel", One)): ( + vox_spec: ("weapon.sword.katana.bloodsteel-1h", (-2.0, -3.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.longsword", "common.items.mineral.ingot.bloodsteel", One)): ( + vox_spec: ("weapon.sword.longsword.bloodsteel-1h", (-2.0, -3.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.ornate", "common.items.mineral.ingot.bloodsteel", One)): ( + vox_spec: ("weapon.sword.ornate.bloodsteel-1h", (-3.0, -3.0, -3.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.sabre", "common.items.mineral.ingot.bloodsteel", One)): ( + vox_spec: ("weapon.sword.sabre.bloodsteel-1h", (-2.0, -3.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.sawblade", "common.items.mineral.ingot.bloodsteel", One)): ( + vox_spec: ("weapon.sword.sawblade.bloodsteel-1h", (-2.0, -3.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.katana", "common.items.mineral.ingot.orichalcum", One)): ( + vox_spec: ("weapon.sword.katana.orichalcum-1h", (-2.0, -3.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.longsword", "common.items.mineral.ingot.orichalcum", One)): ( + vox_spec: ("weapon.sword.longsword.orichalcum-1h", (-2.0, -4.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.ornate", "common.items.mineral.ingot.orichalcum", One)): ( + vox_spec: ("weapon.sword.ornate.orichalcum-1h", (-2.5, -4.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.sabre", "common.items.mineral.ingot.orichalcum", One)): ( + vox_spec: ("weapon.sword.sabre.orichalcum-1h", (-2.0, -3.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sword.sawblade", "common.items.mineral.ingot.orichalcum", One)): ( + vox_spec: ("weapon.sword.sawblade.orichalcum-1h", (-2.0, -4.0, -3.5)), + color: None + ), + Tool("common.items.weapons.sword_1h.starter"): ( + vox_spec: ("weapon.sword.starter_1h", (-2.0, -4.5, -3.0)), + color: None + ), + // Axes + Modular(("common.items.modular.weapon.primary.axe.axe", "common.items.mineral.ingot.bronze", Two)): ( + vox_spec: ("weapon.axe.axe.bronze-2h", (-2.0, -8.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.battleaxe", "common.items.mineral.ingot.bronze", Two)): ( + vox_spec: ("weapon.axe.battleaxe.bronze-2h", (-2.0, -8.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.greataxe", "common.items.mineral.ingot.bronze", Two)): ( + vox_spec: ("weapon.axe.greataxe.bronze-2h", (-2.0, -9.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.jagged", "common.items.mineral.ingot.bronze", Two)): ( + vox_spec: ("weapon.axe.jagged.bronze-2h", (-2.0, -8.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.labrys", "common.items.mineral.ingot.bronze", Two)): ( + vox_spec: ("weapon.axe.labrys.bronze-2h", (-2.0, -8.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.ornate", "common.items.mineral.ingot.bronze", Two)): ( + vox_spec: ("weapon.axe.ornate.bronze-2h", (-2.0, -7.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.poleaxe", "common.items.mineral.ingot.bronze", Two)): ( + vox_spec: ("weapon.axe.poleaxe.bronze-2h", (-2.0, -8.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.axe", "common.items.mineral.ingot.iron", Two)): ( + vox_spec: ("weapon.axe.axe.iron-2h", (-2.0, -9.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.battleaxe", "common.items.mineral.ingot.iron", Two)): ( + vox_spec: ("weapon.axe.battleaxe.iron-2h", (-2.0, -9.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.greataxe", "common.items.mineral.ingot.iron", Two)): ( + vox_spec: ("weapon.axe.greataxe.iron-2h", (-2.0, -9.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.jagged", "common.items.mineral.ingot.iron", Two)): ( + vox_spec: ("weapon.axe.jagged.iron-2h", (-2.0, -9.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.labrys", "common.items.mineral.ingot.iron", Two)): ( + vox_spec: ("weapon.axe.labrys.iron-2h", (-2.0, -9.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.ornate", "common.items.mineral.ingot.iron", Two)): ( + vox_spec: ("weapon.axe.ornate.iron-2h", (-2.0, -9.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.poleaxe", "common.items.mineral.ingot.iron", Two)): ( + vox_spec: ("weapon.axe.poleaxe.iron-2h", (-2.0, -7.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.axe", "common.items.mineral.ingot.steel", Two)): ( + vox_spec: ("weapon.axe.axe.steel-2h", (-2.0, -8.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.battleaxe", "common.items.mineral.ingot.steel", Two)): ( + vox_spec: ("weapon.axe.battleaxe.steel-2h", (-2.0, -9.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.greataxe", "common.items.mineral.ingot.steel", Two)): ( + vox_spec: ("weapon.axe.greataxe.steel-2h", (-2.0, -11.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.jagged", "common.items.mineral.ingot.steel", Two)): ( + vox_spec: ("weapon.axe.jagged.steel-2h", (-2.0, -12.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.labrys", "common.items.mineral.ingot.steel", Two)): ( + vox_spec: ("weapon.axe.labrys.steel-2h", (-2.0, -10.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.ornate", "common.items.mineral.ingot.steel", Two)): ( + vox_spec: ("weapon.axe.ornate.steel-2h", (-2.0, -8.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.poleaxe", "common.items.mineral.ingot.steel", Two)): ( + vox_spec: ("weapon.axe.poleaxe.steel-2h", (-2.0, -8.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.axe", "common.items.mineral.ingot.cobalt", Two)): ( + vox_spec: ("weapon.axe.axe.cobalt-2h", (-2.0, -8.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.battleaxe", "common.items.mineral.ingot.cobalt", Two)): ( + vox_spec: ("weapon.axe.battleaxe.cobalt-2h", (-2.0, -9.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.greataxe", "common.items.mineral.ingot.cobalt", Two)): ( + vox_spec: ("weapon.axe.greataxe.cobalt-2h", (-2.0, -9.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.jagged", "common.items.mineral.ingot.cobalt", Two)): ( + vox_spec: ("weapon.axe.jagged.cobalt-2h", (-2.0, -9.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.labrys", "common.items.mineral.ingot.cobalt", Two)): ( + vox_spec: ("weapon.axe.labrys.cobalt-2h", (-2.0, -9.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.ornate", "common.items.mineral.ingot.cobalt", Two)): ( + vox_spec: ("weapon.axe.ornate.cobalt-2h", (-2.0, -9.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.poleaxe", "common.items.mineral.ingot.cobalt", Two)): ( + vox_spec: ("weapon.axe.poleaxe.cobalt-2h", (-2.0, -8.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.axe", "common.items.mineral.ingot.bloodsteel", Two)): ( + vox_spec: ("weapon.axe.axe.bloodsteel-2h", (-2.0, -9.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.battleaxe", "common.items.mineral.ingot.bloodsteel", Two)): ( + vox_spec: ("weapon.axe.battleaxe.bloodsteel-2h", (-2.0, -10.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.greataxe", "common.items.mineral.ingot.bloodsteel", Two)): ( + vox_spec: ("weapon.axe.greataxe.bloodsteel-2h", (-2.0, -10.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.jagged", "common.items.mineral.ingot.bloodsteel", Two)): ( + vox_spec: ("weapon.axe.jagged.bloodsteel-2h", (-2.0, -9.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.labrys", "common.items.mineral.ingot.bloodsteel", Two)): ( + vox_spec: ("weapon.axe.labrys.bloodsteel-2h", (-2.0, -9.0, -3.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.ornate", "common.items.mineral.ingot.bloodsteel", Two)): ( + vox_spec: ("weapon.axe.ornate.bloodsteel-2h", (-2.0, -10.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.poleaxe", "common.items.mineral.ingot.bloodsteel", Two)): ( + vox_spec: ("weapon.axe.poleaxe.bloodsteel-2h", (-2.0, -8.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.axe", "common.items.mineral.ingot.orichalcum", Two)): ( + vox_spec: ("weapon.axe.axe.orichalcum-2h", (-2.0, -10.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.battleaxe", "common.items.mineral.ingot.orichalcum", Two)): ( + vox_spec: ("weapon.axe.battleaxe.orichalcum-2h", (-2.0, -9.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.greataxe", "common.items.mineral.ingot.orichalcum", Two)): ( + vox_spec: ("weapon.axe.greataxe.orichalcum-2h", (-2.0, -10.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.jagged", "common.items.mineral.ingot.orichalcum", Two)): ( + vox_spec: ("weapon.axe.jagged.orichalcum-2h", (-2.0, -10.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.labrys", "common.items.mineral.ingot.orichalcum", Two)): ( + vox_spec: ("weapon.axe.labrys.orichalcum-2h", (-2.0, -9.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.ornate", "common.items.mineral.ingot.orichalcum", Two)): ( + vox_spec: ("weapon.axe.ornate.orichalcum-2h", (-2.0, -8.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.poleaxe", "common.items.mineral.ingot.orichalcum", Two)): ( + vox_spec: ("weapon.axe.poleaxe.orichalcum-2h", (-2.0, -8.0, -3.0)), + color: None + ), + Tool("common.items.weapons.axe.starter_axe"): ( + vox_spec: ("weapon.axe.2haxe_rusty", (-2.5, -7.0, -4.0)), + color: None + ), + Tool("common.items.weapons.axe.malachite_axe-0"): ( + vox_spec: ("weapon.axe.2haxe_malachite-0", (-2.5, -7.0, -5.0)), + color: None + ), + Tool("common.items.weapons.axe.parashu"): ( + vox_spec: ("weapon.axe.parashu", (-2.5, -12.0, -6.0)), + color: None + ), + // 1h Axes + Modular(("common.items.modular.weapon.primary.axe.axe", "common.items.mineral.ingot.bronze", One)): ( + vox_spec: ("weapon.axe.axe.bronze-1h", (-1.5, -2.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.battleaxe", "common.items.mineral.ingot.bronze", One)): ( + vox_spec: ("weapon.axe.battleaxe.bronze-1h", (-1.5, -2.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.jagged", "common.items.mineral.ingot.bronze", One)): ( + vox_spec: ("weapon.axe.jagged.bronze-1h", (-1.5, -2.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.ornate", "common.items.mineral.ingot.bronze", One)): ( + vox_spec: ("weapon.axe.ornate.bronze-1h", (-1.5, -2.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.axe", "common.items.mineral.ingot.iron", One)): ( + vox_spec: ("weapon.axe.axe.iron-1h", (-1.5, -4.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.battleaxe", "common.items.mineral.ingot.iron", One)): ( + vox_spec: ("weapon.axe.battleaxe.iron-1h", (-1.5, -2.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.jagged", "common.items.mineral.ingot.iron", One)): ( + vox_spec: ("weapon.axe.jagged.iron-1h", (-1.5, -2.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.ornate", "common.items.mineral.ingot.iron", One)): ( + vox_spec: ("weapon.axe.ornate.iron-1h", (-1.5, -2.0, -3.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.axe", "common.items.mineral.ingot.steel", One)): ( + vox_spec: ("weapon.axe.axe.steel-1h", (-1.5, -5.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.battleaxe", "common.items.mineral.ingot.steel", One)): ( + vox_spec: ("weapon.axe.battleaxe.steel-1h", (-1.5, -2.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.jagged", "common.items.mineral.ingot.steel", One)): ( + vox_spec: ("weapon.axe.jagged.steel-1h", (-1.5, -2.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.ornate", "common.items.mineral.ingot.steel", One)): ( + vox_spec: ("weapon.axe.ornate.steel-1h", (-1.5, -2.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.axe", "common.items.mineral.ingot.cobalt", One)): ( + vox_spec: ("weapon.axe.axe.cobalt-1h", (-1.5, -4.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.battleaxe", "common.items.mineral.ingot.cobalt", One)): ( + vox_spec: ("weapon.axe.battleaxe.cobalt-1h", (-1.5, -4.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.jagged", "common.items.mineral.ingot.cobalt", One)): ( + vox_spec: ("weapon.axe.jagged.cobalt-1h", (-1.5, -4.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.ornate", "common.items.mineral.ingot.cobalt", One)): ( + vox_spec: ("weapon.axe.ornate.cobalt-1h", (-1.5, -2.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.axe", "common.items.mineral.ingot.bloodsteel", One)): ( + vox_spec: ("weapon.axe.axe.bloodsteel-1h", (-1.5, -6.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.battleaxe", "common.items.mineral.ingot.bloodsteel", One)): ( + vox_spec: ("weapon.axe.battleaxe.bloodsteel-1h", (-1.5, -4.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.jagged", "common.items.mineral.ingot.bloodsteel", One)): ( + vox_spec: ("weapon.axe.jagged.bloodsteel-1h", (-1.5, -4.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.ornate", "common.items.mineral.ingot.bloodsteel", One)): ( + vox_spec: ("weapon.axe.ornate.bloodsteel-1h", (-1.5, -2.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.axe", "common.items.mineral.ingot.orichalcum", One)): ( + vox_spec: ("weapon.axe.axe.orichalcum-1h", (-1.5, -5.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.battleaxe", "common.items.mineral.ingot.orichalcum", One)): ( + vox_spec: ("weapon.axe.battleaxe.orichalcum-1h", (-1.5, -4.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.jagged", "common.items.mineral.ingot.orichalcum", One)): ( + vox_spec: ("weapon.axe.jagged.orichalcum-1h", (-1.5, -4.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.axe.ornate", "common.items.mineral.ingot.orichalcum", One)): ( + vox_spec: ("weapon.axe.ornate.orichalcum-1h", (-1.5, -3.0, -2.5)), + color: None + ), + // Hammers + Modular(("common.items.modular.weapon.primary.hammer.greathammer", "common.items.mineral.ingot.bronze", Two)): ( + vox_spec: ("weapon.hammer.greathammer.bronze-2h", (-2.5, -6.0, -3.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.greatmace", "common.items.mineral.ingot.bronze", Two)): ( + vox_spec: ("weapon.hammer.greatmace.bronze-2h", (-3.5, -4.0, -3.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.hammer", "common.items.mineral.ingot.bronze", Two)): ( + vox_spec: ("weapon.hammer.hammer.bronze-2h", (-2.5, -6.0, -5.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.maul", "common.items.mineral.ingot.bronze", Two)): ( + vox_spec: ("weapon.hammer.maul.bronze-2h", (-2.5, -5.0, -5.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.ornate", "common.items.mineral.ingot.bronze", Two)): ( + vox_spec: ("weapon.hammer.ornate.bronze-2h", (-2.5, -5.0, -4.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.spikedmace", "common.items.mineral.ingot.bronze", Two)): ( + vox_spec: ("weapon.hammer.spikedmace.bronze-2h", (-3.5, -4.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.warhammer", "common.items.mineral.ingot.bronze", Two)): ( + vox_spec: ("weapon.hammer.warhammer.bronze-2h", (-2.5, -6.0, -6.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.greathammer", "common.items.mineral.ingot.iron", Two)): ( + vox_spec: ("weapon.hammer.greathammer.iron-2h", (-3.5, -7.0, -5.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.greatmace", "common.items.mineral.ingot.iron", Two)): ( + vox_spec: ("weapon.hammer.greatmace.iron-2h", (-3.5, -4.0, -5.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.hammer", "common.items.mineral.ingot.iron", Two)): ( + vox_spec: ("weapon.hammer.hammer.iron-2h", (-2.5, -5.0, -5.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.maul", "common.items.mineral.ingot.iron", Two)): ( + vox_spec: ("weapon.hammer.maul.iron-2h", (-2.5, -7.0, -5.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.ornate", "common.items.mineral.ingot.iron", Two)): ( + vox_spec: ("weapon.hammer.ornate.iron-2h", (-3.5, -5.0, -4.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.spikedmace", "common.items.mineral.ingot.iron", Two)): ( + vox_spec: ("weapon.hammer.spikedmace.iron-2h", (-3.5, -4.0, -3.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.warhammer", "common.items.mineral.ingot.iron", Two)): ( + vox_spec: ("weapon.hammer.warhammer.iron-2h", (-2.5, -5.0, -3.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.greathammer", "common.items.mineral.ingot.steel", Two)): ( + vox_spec: ("weapon.hammer.greathammer.steel-2h", (-3.5, -8.0, -4.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.greatmace", "common.items.mineral.ingot.steel", Two)): ( + vox_spec: ("weapon.hammer.greatmace.steel-2h", (-3.5, -4.0, -4.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.hammer", "common.items.mineral.ingot.steel", Two)): ( + vox_spec: ("weapon.hammer.hammer.steel-2h", (-2.5, -6.0, -4.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.maul", "common.items.mineral.ingot.steel", Two)): ( + vox_spec: ("weapon.hammer.maul.steel-2h", (-2.5, -8.0, -5.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.ornate", "common.items.mineral.ingot.steel", Two)): ( + vox_spec: ("weapon.hammer.ornate.steel-2h", (-2.5, -6.0, -5.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.spikedmace", "common.items.mineral.ingot.steel", Two)): ( + vox_spec: ("weapon.hammer.spikedmace.steel-2h", (-5.5, -6.0, -5.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.warhammer", "common.items.mineral.ingot.steel", Two)): ( + vox_spec: ("weapon.hammer.warhammer.steel-2h", (-2.5, -6.0, -5.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.greathammer", "common.items.mineral.ingot.cobalt", Two)): ( + vox_spec: ("weapon.hammer.greathammer.cobalt-2h", (-3.5, -7.0, -5.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.greatmace", "common.items.mineral.ingot.cobalt", Two)): ( + vox_spec: ("weapon.hammer.greatmace.cobalt-2h", (-4.5, -5.0, -5.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.hammer", "common.items.mineral.ingot.cobalt", Two)): ( + vox_spec: ("weapon.hammer.hammer.cobalt-2h", (-2.5, -6.0, -5.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.maul", "common.items.mineral.ingot.cobalt", Two)): ( + vox_spec: ("weapon.hammer.maul.cobalt-2h", (-1.5, -6.0, -5.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.ornate", "common.items.mineral.ingot.cobalt", Two)): ( + vox_spec: ("weapon.hammer.ornate.cobalt-2h", (-2.5, -5.0, -5.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.spikedmace", "common.items.mineral.ingot.cobalt", Two)): ( + vox_spec: ("weapon.hammer.spikedmace.cobalt-2h", (-5.5, -6.0, -5.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.warhammer", "common.items.mineral.ingot.cobalt", Two)): ( + vox_spec: ("weapon.hammer.warhammer.cobalt-2h", (-2.5, -6.0, -4.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.greathammer", "common.items.mineral.ingot.bloodsteel", Two)): ( + vox_spec: ("weapon.hammer.greathammer.bloodsteel-2h", (-4.0, -8.0, -6.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.greatmace", "common.items.mineral.ingot.bloodsteel", Two)): ( + vox_spec: ("weapon.hammer.greatmace.bloodsteel-2h", (-4.5, -6.0, -6.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.hammer", "common.items.mineral.ingot.bloodsteel", Two)): ( + vox_spec: ("weapon.hammer.hammer.bloodsteel-2h", (-2.5, -6.0, -6.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.maul", "common.items.mineral.ingot.bloodsteel", Two)): ( + vox_spec: ("weapon.hammer.maul.bloodsteel-2h", (-1.5, -8.0, -6.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.ornate", "common.items.mineral.ingot.bloodsteel", Two)): ( + vox_spec: ("weapon.hammer.ornate.bloodsteel-2h", (-1.5, -6.0, -6.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.spikedmace", "common.items.mineral.ingot.bloodsteel", Two)): ( + vox_spec: ("weapon.hammer.spikedmace.bloodsteel-2h", (-4.5, -6.0, -3.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.warhammer", "common.items.mineral.ingot.bloodsteel", Two)): ( + vox_spec: ("weapon.hammer.warhammer.bloodsteel-2h", (-2.5, -7.0, -3.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.greathammer", "common.items.mineral.ingot.orichalcum", Two)): ( + vox_spec: ("weapon.hammer.greathammer.orichalcum-2h", (-2.5, -6.0, -3.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.greatmace", "common.items.mineral.ingot.orichalcum", Two)): ( + vox_spec: ("weapon.hammer.greatmace.orichalcum-2h", (-4.5, -5.0, -3.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.hammer", "common.items.mineral.ingot.orichalcum", Two)): ( + vox_spec: ("weapon.hammer.hammer.orichalcum-2h", (-2.5, -5.0, -4.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.maul", "common.items.mineral.ingot.orichalcum", Two)): ( + vox_spec: ("weapon.hammer.maul.orichalcum-2h", (-1.5, -6.0, -4.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.ornate", "common.items.mineral.ingot.orichalcum", Two)): ( + vox_spec: ("weapon.hammer.ornate.orichalcum-2h", (-2.5, -5.0, -4.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.spikedmace", "common.items.mineral.ingot.orichalcum", Two)): ( + vox_spec: ("weapon.hammer.spikedmace.orichalcum-2h", (-4.5, -5.0, -3.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.warhammer", "common.items.mineral.ingot.orichalcum", Two)): ( + vox_spec: ("weapon.hammer.warhammer.orichalcum-2h", (-2.5, -6.0, -3.5)), + color: None + ), + Tool("common.items.tool.craftsman_hammer"): ( + vox_spec: ("weapon.hammer.craftsman", (-2.5, -4.5, -4.5)), + color: None + ), + Tool("common.items.weapons.hammer.hammer_1"): ( + vox_spec: ("weapon.hammer.2hhammer_rusty", (-2.5, -5.5, -4.5)), + color: None + ), + Tool("common.items.weapons.hammer.starter_hammer"): ( + vox_spec: ("weapon.hammer.2hhammer_rusty", (-2.5, -5.5, -4.5)), + color: None + ), + Tool("common.items.weapons.hammer.flimsy_hammer"): ( + vox_spec: ("weapon.hammer.2hhammer_flimsy", (-2.5, -5.5, -4.0)), + color: None + ), + Tool("common.items.weapons.hammer.mjolnir"): ( + vox_spec: ("weapon.hammer.2hhammer_mjolnir", (-2.5, -8.5, -4.0)), + color: None + ), + Tool("common.items.weapons.hammer.cultist_purp_2h-0"): ( + vox_spec: ("weapon.hammer.cult_purp-0", (-3.5, -4.5, -5.0)), + color: None + ), + Tool("common.items.weapons.hammer.burnt_drumstick"): ( + vox_spec: ("weapon.hammer.burnt_drumstick", (-3.0, -6.0, -5.0)), + color: None + ), + // 1h Hammers + Modular(("common.items.modular.weapon.primary.hammer.hammer", "common.items.mineral.ingot.bronze", One)): ( + vox_spec: ("weapon.hammer.hammer.bronze-1h", (-2.5, -2.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.ornate", "common.items.mineral.ingot.bronze", One)): ( + vox_spec: ("weapon.hammer.ornate.bronze-1h", (-2.5, -3.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.spikedmace", "common.items.mineral.ingot.bronze", One)): ( + vox_spec: ("weapon.hammer.spikedmace.bronze-1h", (-2.5, -3.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.warhammer", "common.items.mineral.ingot.bronze", One)): ( + vox_spec: ("weapon.hammer.warhammer.bronze-1h", (-1.5, -4.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.hammer", "common.items.mineral.ingot.iron", One)): ( + vox_spec: ("weapon.hammer.hammer.iron-1h", (-2.5, -2.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.ornate", "common.items.mineral.ingot.iron", One)): ( + vox_spec: ("weapon.hammer.ornate.iron-1h", (-2.5, -3.0, -3.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.spikedmace", "common.items.mineral.ingot.iron", One)): ( + vox_spec: ("weapon.hammer.spikedmace.iron-1h", (-2.5, -4.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.warhammer", "common.items.mineral.ingot.iron", One)): ( + vox_spec: ("weapon.hammer.warhammer.bronze-1h", (-1.5, -4.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.hammer", "common.items.mineral.ingot.steel", One)): ( + vox_spec: ("weapon.hammer.hammer.steel-1h", (-2.5, -3.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.ornate", "common.items.mineral.ingot.steel", One)): ( + vox_spec: ("weapon.hammer.ornate.steel-1h", (-2.5, -3.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.spikedmace", "common.items.mineral.ingot.steel", One)): ( + vox_spec: ("weapon.hammer.spikedmace.steel-1h", (-2.5, -3.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.warhammer", "common.items.mineral.ingot.steel", One)): ( + vox_spec: ("weapon.hammer.warhammer.steel-1h", (-1.5, -4.0, -3.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.hammer", "common.items.mineral.ingot.cobalt", One)): ( + vox_spec: ("weapon.hammer.hammer.cobalt-1h", (-2.5, -3.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.ornate", "common.items.mineral.ingot.cobalt", One)): ( + vox_spec: ("weapon.hammer.ornate.cobalt-1h", (-2.5, -4.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.spikedmace", "common.items.mineral.ingot.cobalt", One)): ( + vox_spec: ("weapon.hammer.spikedmace.cobalt-1h", (-3.5, -4.0, -3.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.warhammer", "common.items.mineral.ingot.cobalt", One)): ( + vox_spec: ("weapon.hammer.warhammer.cobalt-1h", (-2.5, -4.0, -3.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.hammer", "common.items.mineral.ingot.bloodsteel", One)): ( + vox_spec: ("weapon.hammer.hammer.bloodsteel-1h", (-2.5, -3.0, -4.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.ornate", "common.items.mineral.ingot.bloodsteel", One)): ( + vox_spec: ("weapon.hammer.ornate.bloodsteel-1h", (-1.5, -4.0, -4.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.spikedmace", "common.items.mineral.ingot.bloodsteel", One)): ( + vox_spec: ("weapon.hammer.spikedmace.bloodsteel-1h", (-2.5, -4.0, -4.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.warhammer", "common.items.mineral.ingot.bloodsteel", One)): ( + vox_spec: ("weapon.hammer.warhammer.bloodsteel-1h", (-2.5, -5.0, -3.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.hammer", "common.items.mineral.ingot.orichalcum", One)): ( + vox_spec: ("weapon.hammer.hammer.orichalcum-1h", (-2.5, -4.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.ornate", "common.items.mineral.ingot.orichalcum", One)): ( + vox_spec: ("weapon.hammer.ornate.orichalcum-1h", (-1.5, -4.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.spikedmace", "common.items.mineral.ingot.orichalcum", One)): ( + vox_spec: ("weapon.hammer.spikedmace.orichalcum-1h", (-3.5, -5.0, -2.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.hammer.warhammer", "common.items.mineral.ingot.orichalcum", One)): ( + vox_spec: ("weapon.hammer.warhammer.orichalcum-1h", (-2.5, -5.0, -3.5)), + color: None + ), + // Daggers + Tool("common.items.weapons.dagger.starter_dagger"): ( + vox_spec: ("weapon.dagger.dagger_rusty", (-2.5, -3.0, -3.0)), + color: None + ), + Tool("common.items.weapons.dagger.basic_0"): ( + vox_spec: ("weapon.dagger.dagger_basic-0", (-2.5, -3.0, -3.0)), + color: None + ), + Tool("common.items.weapons.dagger.cultist_0"): ( + vox_spec: ("weapon.dagger.dagger_cult-0", (-2.5, -3.0, -3.0)), + color: None + ), + // Shields + Tool("common.items.weapons.shield.shield_1"): ( + vox_spec: ("weapon.shield.wood-0", (-2.5, -7.5, -5.5)), + color: None + ), + Tool("common.items.weapons.shield.starter_shield"): ( + vox_spec: ("weapon.shield.wood-1", (-3.5, -7.5, -5.5)), + color: None + ), + // Bows + Modular(("common.items.modular.weapon.primary.bow.bow", "common.items.log.wood", Two)): ( + vox_spec: ("weapon.bow.bow.wood", (-1.0, -4.5, -10.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.composite", "common.items.log.wood", Two)): ( + vox_spec: ("weapon.bow.composite.wood", (-1.0, -3.5, -10.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.greatbow", "common.items.log.wood", Two)): ( + vox_spec: ("weapon.bow.greatbow.wood", (-1.0, -4.5, -12.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.longbow", "common.items.log.wood", Two)): ( + vox_spec: ("weapon.bow.longbow.wood", (-1.0, -4.5, -12.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.ornate", "common.items.log.wood", Two)): ( + vox_spec: ("weapon.bow.ornate.wood", (-1.0, -4.5, -10.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.shortbow", "common.items.log.wood", Two)): ( + vox_spec: ("weapon.bow.shortbow.wood", (-1.0, -4.5, -9.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.warbow", "common.items.log.wood", Two)): ( + vox_spec: ("weapon.bow.warbow.wood", (-1.0, -4.5, -11.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.bow", "common.items.log.bamboo", Two)): ( + vox_spec: ("weapon.bow.bow.bamboo", (-1.0, -4.5, -10.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.composite", "common.items.log.bamboo", Two)): ( + vox_spec: ("weapon.bow.composite.bamboo", (-1.0, -3.5, -12.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.greatbow", "common.items.log.bamboo", Two)): ( + vox_spec: ("weapon.bow.greatbow.bamboo", (-1.0, -4.5, -12.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.longbow", "common.items.log.bamboo", Two)): ( + vox_spec: ("weapon.bow.longbow.bamboo", (-1.0, -3.5, -12.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.ornate", "common.items.log.bamboo", Two)): ( + vox_spec: ("weapon.bow.ornate.bamboo", (-1.0, -5.5, -11.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.shortbow", "common.items.log.bamboo", Two)): ( + vox_spec: ("weapon.bow.shortbow.bamboo", (-1.0, -4.5, -9.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.warbow", "common.items.log.bamboo", Two)): ( + vox_spec: ("weapon.bow.warbow.bamboo", (-1.0, -4.5, -10.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.bow", "common.items.log.hardwood", Two)): ( + vox_spec: ("weapon.bow.bow.hardwood", (-1.0, -3.5, -10.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.composite", "common.items.log.hardwood", Two)): ( + vox_spec: ("weapon.bow.composite.hardwood", (-2.0, -4.5, -10.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.greatbow", "common.items.log.hardwood", Two)): ( + vox_spec: ("weapon.bow.greatbow.hardwood", (-1.5, -2.5, -12.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.longbow", "common.items.log.hardwood", Two)): ( + vox_spec: ("weapon.bow.longbow.hardwood", (-1.0, -2.5, -11.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.ornate", "common.items.log.hardwood", Two)): ( + vox_spec: ("weapon.bow.ornate.hardwood", (-1.0, -4.5, -11.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.shortbow", "common.items.log.hardwood", Two)): ( + vox_spec: ("weapon.bow.shortbow.hardwood", (-1.0, -4.5, -9.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.warbow", "common.items.log.hardwood", Two)): ( + vox_spec: ("weapon.bow.warbow.hardwood", (-1.0, -3.5, -11.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.bow", "common.items.log.ironwood", Two)): ( + vox_spec: ("weapon.bow.bow.ironwood", (-2.0, -4.5, -11.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.composite", "common.items.log.ironwood", Two)): ( + vox_spec: ("weapon.bow.composite.ironwood", (-2.0, -3.5, -10.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.greatbow", "common.items.log.ironwood", Two)): ( + vox_spec: ("weapon.bow.greatbow.ironwood", (-2.0, -3.5, -11.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.longbow", "common.items.log.ironwood", Two)): ( + vox_spec: ("weapon.bow.longbow.ironwood", (-2.0, -4.5, -12.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.ornate", "common.items.log.ironwood", Two)): ( + vox_spec: ("weapon.bow.ornate.ironwood", (-0.5, -4.5, -10.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.shortbow", "common.items.log.ironwood", Two)): ( + vox_spec: ("weapon.bow.shortbow.ironwood", (-2.0, -4.5, -9.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.warbow", "common.items.log.ironwood", Two)): ( + vox_spec: ("weapon.bow.warbow.ironwood", (-2.0, -4.5, -10.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.bow", "common.items.log.frostwood", Two)): ( + vox_spec: ("weapon.bow.bow.frostwood", (-2.0, -4.5, -10.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.composite", "common.items.log.frostwood", Two)): ( + vox_spec: ("weapon.bow.composite.frostwood", (-2.0, -4.5, -10.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.greatbow", "common.items.log.frostwood", Two)): ( + vox_spec: ("weapon.bow.greatbow.frostwood", (-2.0, -5.5, -12.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.longbow", "common.items.log.frostwood", Two)): ( + vox_spec: ("weapon.bow.longbow.frostwood", (-1.0, -4.5, -11.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.ornate", "common.items.log.frostwood", Two)): ( + vox_spec: ("weapon.bow.ornate.frostwood", (-1.0, -4.5, -10.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.shortbow", "common.items.log.frostwood", Two)): ( + vox_spec: ("weapon.bow.shortbow.frostwood", (-2.0, -4.5, -10.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.warbow", "common.items.log.frostwood", Two)): ( + vox_spec: ("weapon.bow.warbow.frostwood", (-2.0, -4.5, -10.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.bow", "common.items.log.eldwood", Two)): ( + vox_spec: ("weapon.bow.bow.eldwood", (-2.0, -4.5, -10.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.composite", "common.items.log.eldwood", Two)): ( + vox_spec: ("weapon.bow.composite.eldwood", (-2.0, -4.5, -10.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.greatbow", "common.items.log.eldwood", Two)): ( + vox_spec: ("weapon.bow.greatbow.eldwood", (-2.0, -4.5, -11.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.longbow", "common.items.log.eldwood", Two)): ( + vox_spec: ("weapon.bow.longbow.eldwood", (-2.0, -4.5, -12.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.ornate", "common.items.log.eldwood", Two)): ( + vox_spec: ("weapon.bow.ornate.eldwood", (-2.0, -4.5, -10.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.shortbow", "common.items.log.eldwood", Two)): ( + vox_spec: ("weapon.bow.shortbow.eldwood", (-1.0, -4.5, -10.5)), + color: None + ), + Modular(("common.items.modular.weapon.primary.bow.warbow", "common.items.log.eldwood", Two)): ( + vox_spec: ("weapon.bow.warbow.eldwood", (-2.0, -4.5, -10.5)), + color: None + ), + Tool("common.items.weapons.bow.sagitta"): ( + vox_spec: ("weapon.bow.sagitta", (-2.5, -7.0, -12.5)), + color: None + ), + Tool("common.items.weapons.bow.starter"): ( + vox_spec: ("weapon.bow.starter", (-0.5, -3.0, -8.5)), + color: None + ), + Tool("common.items.weapons.bow.velorite"): ( + vox_spec: ("weapon.bow.velorite", (-2.5, -4.0, -15.0)), + color: None + ), + Tool("common.items.debug.velorite_bow_debug"): ( + vox_spec: ("weapon.bow.velorite", (-2.5, -4.0, -15.0)), + color: Some((73, 63, 59)) + ), + // Farming Equipment + Tool("common.items.weapons.tool.broom"): ( + vox_spec: ("weapon.tool.broom-0", (-2.5, -4.0, -4.0)), + color: None + ), + Tool("common.items.weapons.tool.hoe"): ( + vox_spec: ("weapon.tool.hoe_green", (-2.5, -4.5, -4.0)), + color: None + ), + Tool("common.items.weapons.tool.pitchfork"): ( + vox_spec: ("weapon.tool.pitchfork-0", (-1.0, -3.5, -4.0)), + color: None + ), + Tool("common.items.weapons.tool.fishing_rod"): ( + vox_spec: ("weapon.tool.fishing_rod_blue-0", (-2.5, -4.5, -4.0)), + color: None + ), + Tool("common.items.weapons.tool.rake"): ( + vox_spec: ("weapon.tool.rake-0", (-1.0, -5.5, -4.0)), + color: None + ), + Tool("common.items.weapons.tool.pickaxe"): ( + vox_spec: ("weapon.tool.pickaxe_green-0", (-2.5, -7.5, -4.0)), + color: None + ), + Tool("common.items.weapons.tool.shovel-0"): ( + vox_spec: ("weapon.tool.shovel_green", (-1.0, -2.5, -4.0)), + color: None + ), + Tool("common.items.weapons.tool.shovel-1"): ( + vox_spec: ("weapon.tool.shovel_gold", (-1.0, -2.5, -4.0)), + color: None + ), + Tool("common.items.tool.instruments.lyre"): ( + vox_spec: ("weapon.tool.wooden_lyre", (-3.5, -7.0, 6.0)), + color: None + ), + Tool("common.items.tool.instruments.wildskin_drum"): ( + vox_spec: ("weapon.tool.wildskin_drum", (-4.5, -8.0, 8.0)), + color: None + ), + Tool("common.items.tool.instruments.icy_talharpa"): ( + vox_spec: ("weapon.tool.icy_talharpa", (-3.5, -7.0, 6.0)), + color: None + ), + Tool("common.items.tool.instruments.flute"): ( + vox_spec: ("weapon.tool.wooden_flute", (-4.5, -4.5, 8.0)), + color: None + ), + Tool("common.items.tool.instruments.glass_flute"): ( + vox_spec: ("weapon.tool.glass_flute", (-4.5, -4.5, 8.0)), + color: None + ), + Tool("common.items.tool.instruments.double_bass"): ( + vox_spec: ("weapon.tool.wooden_bass", (-3.5, -6.0, 0.0)), + color: None + ), + Tool("common.items.tool.instruments.washboard"): ( + vox_spec: ("weapon.tool.washboard", (-3.0, -6.0, 9.0)), + color: None + ), + Tool("common.items.tool.instruments.kalimba"): ( + vox_spec: ("weapon.tool.wooden_kalimba", (-3.5, -7.0, 6.0)), + color: None + ), + Tool("common.items.tool.instruments.melodica"): ( + vox_spec: ("weapon.tool.melodica", (-3.5, -4.5, 8.0)), + color: None + ), + Tool("common.items.tool.instruments.lute"): ( + vox_spec: ("weapon.tool.wooden_lute", (-2.5, -6.0, 4.0)), + color: None + ), + Tool("common.items.tool.instruments.steeltonguedrum"): ( + vox_spec: ("weapon.tool.steeltonguedrum", (-4.5, -8.0, 8.0)), + color: None + ), + Tool("common.items.tool.instruments.shamisen"): ( + vox_spec: ("weapon.tool.shamisen", (-2.5, -6.0, 0.0)), + color: None + ), + Tool("common.items.tool.instruments.guitar"): ( + vox_spec: ("weapon.tool.wooden_guitar", (-4.5, -6.0, 0.0)), + color: None + ), + Tool("common.items.tool.instruments.guitar_dark"): ( + vox_spec: ("weapon.tool.black_velvet_guitar", (-4.5, -6.0, 0.0)), + color: None + ), + Tool("common.items.tool.instruments.sitar"): ( + vox_spec: ("weapon.tool.wooden_sitar", (-4.0, -6.0, 5.0)), + color: None + ), + Tool("common.items.tool.instruments.kora"): ( + vox_spec: ("weapon.tool.kora", (-5.0, -6.0, 0.0)), + color: None + ), + Tool("common.items.tool.instruments.banjo"): ( + vox_spec: ("weapon.tool.banjo", (-4.0, -6.0, -2.0)), + color: None + ), + // Staves + Modular(("common.items.modular.weapon.primary.staff.brand", "common.items.log.wood", Two)): ( + vox_spec: ("weapon.staff.brand.wood", (-1.0, -2.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.grandstaff", "common.items.log.wood", Two)): ( + vox_spec: ("weapon.staff.grandstaff.wood", (-1.5, -2.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.longpole", "common.items.log.wood", Two)): ( + vox_spec: ("weapon.staff.longpole.wood", (-1.5, -2.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.ornate", "common.items.log.wood", Two)): ( + vox_spec: ("weapon.staff.ornate.wood", (-1.5, -2.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.pole", "common.items.log.wood", Two)): ( + vox_spec: ("weapon.staff.pole.wood", (-1.5, -2.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.rod", "common.items.log.wood", Two)): ( + vox_spec: ("weapon.staff.rod.wood", (-1.5, -2.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.staff", "common.items.log.wood", Two)): ( + vox_spec: ("weapon.staff.staff.wood", (-0.5, -2.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.brand", "common.items.log.bamboo", Two)): ( + vox_spec: ("weapon.staff.brand.bamboo", (-0.5, -3.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.grandstaff", "common.items.log.bamboo", Two)): ( + vox_spec: ("weapon.staff.grandstaff.bamboo", (-1.5, -5.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.longpole", "common.items.log.bamboo", Two)): ( + vox_spec: ("weapon.staff.longpole.bamboo", (-1.5, -3.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.ornate", "common.items.log.bamboo", Two)): ( + vox_spec: ("weapon.staff.ornate.bamboo", (-1.5, -2.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.pole", "common.items.log.bamboo", Two)): ( + vox_spec: ("weapon.staff.pole.bamboo", (-1.5, -3.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.rod", "common.items.log.bamboo", Two)): ( + vox_spec: ("weapon.staff.rod.bamboo", (-1.5, -4.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.staff", "common.items.log.bamboo", Two)): ( + vox_spec: ("weapon.staff.staff.bamboo", (-1.5, -3.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.brand", "common.items.log.hardwood", Two)): ( + vox_spec: ("weapon.staff.brand.hardwood", (-1.5, -2.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.grandstaff", "common.items.log.hardwood", Two)): ( + vox_spec: ("weapon.staff.grandstaff.hardwood", (-1.5, -6.5, -6.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.longpole", "common.items.log.hardwood", Two)): ( + vox_spec: ("weapon.staff.longpole.hardwood", (-1.5, -5.5, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.ornate", "common.items.log.hardwood", Two)): ( + vox_spec: ("weapon.staff.ornate.hardwood", (-1.5, -6.5, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.pole", "common.items.log.hardwood", Two)): ( + vox_spec: ("weapon.staff.pole.hardwood", (-1.5, -5.5, -6.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.rod", "common.items.log.hardwood", Two)): ( + vox_spec: ("weapon.staff.rod.hardwood", (-2.5, -4.5, -7.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.staff", "common.items.log.hardwood", Two)): ( + vox_spec: ("weapon.staff.staff.hardwood", (-1.5, -4.5, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.brand", "common.items.log.ironwood", Two)): ( + vox_spec: ("weapon.staff.brand.ironwood", (-1.5, -4.5, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.grandstaff", "common.items.log.ironwood", Two)): ( + vox_spec: ("weapon.staff.grandstaff.ironwood", (-2.5, -6.5, -6.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.longpole", "common.items.log.ironwood", Two)): ( + vox_spec: ("weapon.staff.longpole.ironwood", (-2.5, -5.5, -6.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.ornate", "common.items.log.ironwood", Two)): ( + vox_spec: ("weapon.staff.ornate.ironwood", (-2.5, -2.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.pole", "common.items.log.ironwood", Two)): ( + vox_spec: ("weapon.staff.pole.ironwood", (-2.5, -2.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.rod", "common.items.log.ironwood", Two)): ( + vox_spec: ("weapon.staff.rod.ironwood", (-3.5, -4.5, -6.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.staff", "common.items.log.ironwood", Two)): ( + vox_spec: ("weapon.staff.staff.ironwood", (-2.5, -2.5, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.brand", "common.items.log.frostwood", Two)): ( + vox_spec: ("weapon.staff.brand.frostwood", (-1.5, -3.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.grandstaff", "common.items.log.frostwood", Two)): ( + vox_spec: ("weapon.staff.grandstaff.frostwood", (-1.5, -6.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.longpole", "common.items.log.frostwood", Two)): ( + vox_spec: ("weapon.staff.longpole.frostwood", (-1.5, -4.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.ornate", "common.items.log.frostwood", Two)): ( + vox_spec: ("weapon.staff.ornate.frostwood", (-1.5, -4.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.pole", "common.items.log.frostwood", Two)): ( + vox_spec: ("weapon.staff.pole.frostwood", (-3.5, -3.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.rod", "common.items.log.frostwood", Two)): ( + vox_spec: ("weapon.staff.rod.frostwood", (-1.5, -6.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.staff", "common.items.log.frostwood", Two)): ( + vox_spec: ("weapon.staff.staff.frostwood", (-2.5, -2.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.brand", "common.items.log.eldwood", Two)): ( + vox_spec: ("weapon.staff.brand.eldwood", (-1.5, -4.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.grandstaff", "common.items.log.eldwood", Two)): ( + vox_spec: ("weapon.staff.grandstaff.eldwood", (-1.5, -5.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.longpole", "common.items.log.eldwood", Two)): ( + vox_spec: ("weapon.staff.longpole.eldwood", (-1.5, -5.5, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.ornate", "common.items.log.eldwood", Two)): ( + vox_spec: ("weapon.staff.ornate.eldwood", (-1.5, -2.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.pole", "common.items.log.eldwood", Two)): ( + vox_spec: ("weapon.staff.pole.eldwood", (-0.5, -3.5, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.rod", "common.items.log.eldwood", Two)): ( + vox_spec: ("weapon.staff.rod.eldwood", (-2.5, -6.5, -6.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.staff.staff", "common.items.log.eldwood", Two)): ( + vox_spec: ("weapon.staff.staff.eldwood", (-2.5, -3.5, -4.0)), + color: None + ), + Tool("common.items.weapons.staff.staff_1"): ( + vox_spec: ("weapon.staff.firestaff_starter", (-2.5, -3.0, -3.0)), + color: None + ), + Tool("common.items.weapons.staff.starter_staff"): ( + vox_spec: ("weapon.staff.firestaff_starter", (-2.5, -3.0, -3.0)), + color: None + ), + Tool("common.items.weapons.staff.cultist_staff"): ( + vox_spec: ("weapon.staff.firestaff_cultist", (-2.5, -2.5, -4.0)), + color: None + ), + Tool("common.items.weapons.staff.laevateinn"): ( + vox_spec: ("weapon.staff.laevateinn", (-2.5, -4.5, -6.0)), + color: None + ), + // Sceptres + Modular(("common.items.modular.weapon.primary.sceptre.arbor", "common.items.log.wood", Two)): ( + vox_spec: ("weapon.sceptre.arbor.wood", (-1.5, -5.0, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.cane", "common.items.log.wood", Two)): ( + vox_spec: ("weapon.sceptre.cane.wood", (-1.5, -3.0, -6.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.crook", "common.items.log.wood", Two)): ( + vox_spec: ("weapon.sceptre.crook.wood", (-0.5, -4.0, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.crozier", "common.items.log.wood", Two)): ( + vox_spec: ("weapon.sceptre.crozier.wood", (-1.5, -5.0, -6.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.grandsceptre", "common.items.log.wood", Two)): ( + vox_spec: ("weapon.sceptre.grandsceptre.wood", (-0.5, -5.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.ornate", "common.items.log.wood", Two)): ( + vox_spec: ("weapon.sceptre.ornate.wood", (-1.5, -3.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.sceptre", "common.items.log.wood", Two)): ( + vox_spec: ("weapon.sceptre.sceptre.wood", (-0.5, -5.0, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.arbor", "common.items.log.bamboo", Two)): ( + vox_spec: ("weapon.sceptre.arbor.bamboo", (-2.5, -3.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.cane", "common.items.log.bamboo", Two)): ( + vox_spec: ("weapon.sceptre.cane.bamboo", (-1.5, -3.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.crook", "common.items.log.bamboo", Two)): ( + vox_spec: ("weapon.sceptre.crook.bamboo", (-1.5, -3.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.crozier", "common.items.log.bamboo", Two)): ( + vox_spec: ("weapon.sceptre.crozier.bamboo", (-1.5, -3.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.grandsceptre", "common.items.log.bamboo", Two)): ( + vox_spec: ("weapon.sceptre.grandsceptre.bamboo", (-2.5, -3.0, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.ornate", "common.items.log.bamboo", Two)): ( + vox_spec: ("weapon.sceptre.ornate.bamboo", (-0.5, -3.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.sceptre", "common.items.log.bamboo", Two)): ( + vox_spec: ("weapon.sceptre.sceptre.bamboo", (-2.5, -3.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.arbor", "common.items.log.hardwood", Two)): ( + vox_spec: ("weapon.sceptre.arbor.hardwood", (-1.5, -5.0, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.cane", "common.items.log.hardwood", Two)): ( + vox_spec: ("weapon.sceptre.cane.hardwood", (-1.5, -5.0, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.crook", "common.items.log.hardwood", Two)): ( + vox_spec: ("weapon.sceptre.crook.hardwood", (-2.5, -3.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.crozier", "common.items.log.hardwood", Two)): ( + vox_spec: ("weapon.sceptre.crozier.hardwood", (-6.5, -3.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.grandsceptre", "common.items.log.hardwood", Two)): ( + vox_spec: ("weapon.sceptre.grandsceptre.hardwood", (-4.5, -6.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.ornate", "common.items.log.hardwood", Two)): ( + vox_spec: ("weapon.sceptre.ornate.hardwood", (-2.5, -3.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.sceptre", "common.items.log.hardwood", Two)): ( + vox_spec: ("weapon.sceptre.sceptre.hardwood", (-1.5, -6.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.arbor", "common.items.log.ironwood", Two)): ( + vox_spec: ("weapon.sceptre.arbor.ironwood", (-1.5, -6.0, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.cane", "common.items.log.ironwood", Two)): ( + vox_spec: ("weapon.sceptre.cane.ironwood", (-1.5, -3.0, -6.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.crook", "common.items.log.ironwood", Two)): ( + vox_spec: ("weapon.sceptre.crook.ironwood", (-0.5, -5.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.crozier", "common.items.log.ironwood", Two)): ( + vox_spec: ("weapon.sceptre.crozier.ironwood", (-4.5, -3.0, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.grandsceptre", "common.items.log.ironwood", Two)): ( + vox_spec: ("weapon.sceptre.grandsceptre.ironwood", (-1.5, -7.0, -6.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.ornate", "common.items.log.ironwood", Two)): ( + vox_spec: ("weapon.sceptre.ornate.ironwood", (-4.5, -3.0, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.sceptre", "common.items.log.ironwood", Two)): ( + vox_spec: ("weapon.sceptre.sceptre.ironwood", (-5.5, -6.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.arbor", "common.items.log.frostwood", Two)): ( + vox_spec: ("weapon.sceptre.arbor.frostwood", (-1.5, -6.0, -6.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.cane", "common.items.log.frostwood", Two)): ( + vox_spec: ("weapon.sceptre.cane.frostwood", (-3.5, -3.0, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.crook", "common.items.log.frostwood", Two)): ( + vox_spec: ("weapon.sceptre.crook.frostwood", (-1.5, -3.0, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.crozier", "common.items.log.frostwood", Two)): ( + vox_spec: ("weapon.sceptre.crozier.frostwood", (-4.5, -2.0, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.grandsceptre", "common.items.log.frostwood", Two)): ( + vox_spec: ("weapon.sceptre.grandsceptre.frostwood", (-4.5, -7.0, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.ornate", "common.items.log.frostwood", Two)): ( + vox_spec: ("weapon.sceptre.ornate.frostwood", (-3.5, -3.0, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.sceptre", "common.items.log.frostwood", Two)): ( + vox_spec: ("weapon.sceptre.sceptre.frostwood", (-1.5, -6.0, -4.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.arbor", "common.items.log.eldwood", Two)): ( + vox_spec: ("weapon.sceptre.arbor.eldwood", (-3.5, -6.0, -6.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.cane", "common.items.log.eldwood", Two)): ( + vox_spec: ("weapon.sceptre.cane.eldwood", (-4.5, -3.0, -3.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.crook", "common.items.log.eldwood", Two)): ( + vox_spec: ("weapon.sceptre.crook.eldwood", (-1.5, -4.0, -6.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.crozier", "common.items.log.eldwood", Two)): ( + vox_spec: ("weapon.sceptre.crozier.eldwood", (-2.5, -8.0, -5.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.grandsceptre", "common.items.log.eldwood", Two)): ( + vox_spec: ("weapon.sceptre.grandsceptre.eldwood", (-2.5, -8.0, -6.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.ornate", "common.items.log.eldwood", Two)): ( + vox_spec: ("weapon.sceptre.ornate.eldwood", (-5.5, -4.0, -7.0)), + color: None + ), + Modular(("common.items.modular.weapon.primary.sceptre.sceptre", "common.items.log.eldwood", Two)): ( + vox_spec: ("weapon.sceptre.sceptre.eldwood", (-4.5, -3.0, -3.0)), + color: None + ), + Tool("common.items.weapons.sceptre.starter_sceptre"): ( + vox_spec: ("weapon.sceptre.wood-simple", (-2.5, -2.5, -6.0)), + color: None + ), + Tool("common.items.weapons.sceptre.root_evil"): ( + vox_spec: ("weapon.sceptre.root_evil", (-2.5, -2.5, -6.0)), + color: None + ), + Tool("common.items.weapons.sceptre.belzeshrub"): ( + vox_spec: ("weapon.tool.broom_belzeshrub_purple", (-3.0, -4.0, -4.0)), + color: None + ), + Tool("common.items.weapons.sceptre.sceptre_velorite_0"): ( + vox_spec: ("weapon.sceptre.ore-nature", (-2.0, -6.0, -5.0)), + color: None + ), + Tool("common.items.weapons.sceptre.caduceus"): ( + vox_spec: ("weapon.sceptre.caduceus", (-2.5, -4.5, -6.0)), + color: None + ), + Tool("common.items.weapons.sceptre.amethyst"): ( + vox_spec: ("weapon.sceptre.amethyst", (-2.5, -4.5, -9.5)), + color: None + ), + // Picks + Tool("common.items.tool.pickaxe_stone"): ( + vox_spec: ("weapon.tool.pickaxe_stone", (-2.5, -7.5, -4.0)), + color: None + ), + Tool("common.items.tool.pickaxe_steel"): ( + vox_spec: ("weapon.tool.pickaxe_green-1", (-2.5, -9.5, -4.0)), + color: None + ), + // Misc + Tool("common.items.debug.admin_stick"): ( + vox_spec: ("weapon.tool.broom_belzeshrub_purple", (-3.0, -4.0, -4.0)), + color: None + ), + Tool("common.items.debug.admin_sword"): ( + vox_spec: ("weapon.sword.frost-1", (-2.0, -4.5, -7.5)), + color: None + ), + Tool("common.items.weapons.tool.golf_club"): ( + vox_spec: ("weapon.tool.golf_club", (-5.5, -4.0, -4.0)), + color: None + ), + Tool("common.items.tool.pickaxe_velorite"): ( + vox_spec: ("weapon.tool.pickaxe_velorite", (-2.5, -7.5, -4.0)), + color: None + ), + // NPC hostile dwarves + Tool("common.items.npc_weapons.sword.pickaxe_velorite_sword"): ( + vox_spec: ("weapon.tool.pickaxe_velorite", (-2.5, -7.5, -4.0)), + color: None + ), + // Misc + Tool("common.items.weapons.empty.empty"): ( + vox_spec: ("armor.empty", (-3.0, -3.5, 1.0)), + color: None + ), + Tool("common.items.npc_weapons.unique.husk"): ( + vox_spec: ("armor.empty", (-3.0, -3.5, 1.0)), + color: None + ), + Tool("common.items.npc_weapons.unique.bushly"): ( + vox_spec: ("armor.empty", (-3.0, -3.5, 1.0)), + color: None + ), + Tool("common.items.npc_weapons.unique.cactid"): ( + vox_spec: ("armor.empty", (-3.0, -3.5, 1.0)), + color: None + ), + Tool("common.items.npc_weapons.unique.irrwurz"): ( + vox_spec: ("armor.empty", (-3.0, -3.5, 1.0)), + color: None + ), + Tool("common.items.npc_weapons.unique.cardinal"): ( + vox_spec: ("weapon.sceptre.caduceus", (-2.5, -4.5, -6.0)), + color: None + ), + Tool("common.items.npc_weapons.unique.flamekeeper_staff"): ( + vox_spec: ("weapon.biped_small.staff.flamekeeper_staff", (-2.5, -4.5, -6.0)), + color: None + ), + Tool("common.items.npc_weapons.hammer.forgemaster_hammer"): ( + vox_spec: ("weapon.hammer.forgemaster_hammer", (-8.0, -13.0, -6.0)), + color: None + ), + Tool("common.items.npc_weapons.unique.iron_dwarf"): ( + vox_spec: ("armor.empty", (-3.0, -3.5, 1.0)), + color: None + ), + Tool("common.items.npc_weapons.unique.shamanic_spirit"): ( + vox_spec: ("weapon.biped_small.misc.magic_shamanic_spirit", (-2.5, -4.5, -6.0)), + color: None + ), + Tool("common.items.npc_weapons.unique.jiangshi"): ( + vox_spec: ("armor.empty", (-3.0, -3.5, 1.0)), + color: None + ), +//BIPEDLARGE + Tool("common.items.npc_weapons.hammer.ogre_hammer"): ( + vox_spec: ("weapon.hammer.2hhammer_ogre", (-5.0, -5.5, -7.0)), + color: None + ), + Tool("common.items.npc_weapons.staff.ogre_staff"): ( + vox_spec: ("weapon.staff.firestaff_ogre", (-2.5, -5.5, -6.0)), + color: None + ), + Tool("common.items.npc_weapons.hammer.cyclops_hammer"): ( + vox_spec: ("weapon.hammer.2hhammer_cyclops-0", (-5.0, -6.5, -10.0)), + color: None + ), + Tool("common.items.npc_weapons.hammer.troll_hammer"): ( + vox_spec: ("weapon.hammer.2hhammer_troll", (-4.0, -6.0, -7.0)), + color: None + ), + Tool("common.items.npc_weapons.sword.dullahan_sword"): ( + vox_spec: ("weapon.sword.greatsword_2h_dullahan", (-2.5, -9.0, -10.0)), + color: None + ), + Tool("common.items.npc_weapons.staff.saurok_staff"): ( + vox_spec: ("weapon.staff.firestaff_saurok", (-3.0, -3.0, -6.0)), + color: None + ), + Tool("common.items.npc_weapons.sword.saurok_sword"): ( + vox_spec: ("weapon.sword.long_2h_saurok", (-2.5, -4.0, -5.0)), + color: None + ), + Tool("common.items.npc_weapons.sword.adlet_elder_sword"): ( + vox_spec: ("weapon.sword.adlet_elder_sword", (-2.5, -5.0, -5.0)), + color: None + ), + Tool("common.items.npc_weapons.sword.haniwa_general_sword"): ( + vox_spec: ("weapon.sword.haniwa_general_sword", (-2.5, -5.0, -5.0)), + color: None + ), + Tool("common.items.npc_weapons.bow.saurok_bow"): ( + vox_spec: ("weapon.bow.longbow_saurok", (-2.5, -4.0, -16.5)), + color: None + ), + Tool("common.items.npc_weapons.staff.mindflayer_staff"): ( + vox_spec: ("weapon.staff.firestaff_mindflayer", (-5.5, -3.5, -8.0)), + color: None + ), + Tool("common.items.npc_weapons.unique.beast_claws"): ( + vox_spec: ("armor.empty", (0.0, 0.0, 0.0)), + color: None + ), + Tool("common.items.npc_weapons.unique.strigoi_claws"): ( + vox_spec: ("armor.empty", (0.0, 0.0, 0.0)), + color: None + ), + Tool("common.items.npc_weapons.unique.tursus_claws"): ( + vox_spec: ("armor.empty", (0.0, 0.0, 0.0)), + color: None + ), + Tool("common.items.npc_weapons.unique.wendigo_magic"): ( + vox_spec: ("armor.empty", (0.0, 0.0, 0.0)), + color: None + ), + Tool("common.items.npc_weapons.unique.tidal_claws"): ( + vox_spec: ("armor.empty", (0.0, 0.0, 0.0)), + color: None + ), + Tool("common.items.npc_weapons.unique.husk_brute"): ( + vox_spec: ("armor.empty", (0.0, 0.0, 0.0)), + color: None + ), + Tool("common.items.npc_weapons.axe.minotaur_axe"): ( + vox_spec: ("weapon.axe.2haxe_minotaur", (-2.5, -9.0, -8.0)), + color: None + ), + Tool("common.items.npc_weapons.hammer.yeti_hammer"): ( + vox_spec: ("weapon.hammer.2hhammer_yeti", (-7.5, -7.0, -7.0)), + color: None + ), + Tool("common.items.npc_weapons.hammer.harvester_scythe"): ( + vox_spec: ("weapon.hammer.2hhammer_harvester", (-2.5, -7.5, -6.0)), + color: None + ), + Tool("common.items.npc_weapons.axe.oni_blue_axe"): ( + vox_spec: ("weapon.axe.2haxe_oni_blue", (-2.5, -2.0, -12.0)), + color: None + ), + Tool("common.items.npc_weapons.hammer.oni_red_hammer"): ( + vox_spec: ("weapon.hammer.2hhammer_oni_red", (-3.0, -4.5, -12.0)), + color: None + ), + Tool("common.items.npc_weapons.sword.bipedlarge-cultist"): ( + vox_spec: ("weapon.sword.cultist", (-2.5, -4.0, -6.0)), + color: None + ), + Tool("common.items.npc_weapons.hammer.bipedlarge-cultist"): ( + vox_spec: ("weapon.hammer.cult_purp-0", (-3.5, -4.5, -5.0)), + color: None + ), + Tool("common.items.npc_weapons.bow.bipedlarge-velorite"): ( + vox_spec: ("weapon.bow.velorite", (-2.5, -4.0, -15.0)), + color: None + ), + Tool("common.items.npc_weapons.staff.bipedlarge-cultist"): ( + vox_spec: ("weapon.staff.firestaff_cultist", (-2.5, -2.5, -4.0)), + color: None + ), + //BIPEDSMALL + Tool("common.items.npc_weapons.biped_small.gnarling.chieftain"): ( + vox_spec: ("weapon.biped_small.staff.chieftain", (-1.5, -4.5, -4.0)), + color: None + ), + Tool("common.items.npc_weapons.biped_small.gnarling.stalker"): ( + vox_spec: ("weapon.biped_small.blowgun.stalker", (-2.5, -2.5, -1.5)), + color: None + ), + Tool("common.items.npc_weapons.biped_small.gnarling.logger"): ( + vox_spec: ("weapon.biped_small.axe.logger", (-0.5, -3.0, -4.0)), + color: None + ), + Tool("common.items.npc_weapons.biped_small.gnarling.mugger"): ( + vox_spec: ("weapon.biped_small.dagger.mugger", (-0.5, -4.5, -1.0)), + color: None + ), + Tool("common.items.npc_weapons.biped_small.adlet.hunter"): ( + vox_spec: ("weapon.biped_small.spear.hunter", (-0.5, -2.0, -5.0)), + color: None + ), + Tool("common.items.npc_weapons.biped_small.adlet.icepicker"): ( + vox_spec: ("weapon.biped_small.axe.icepicker", (-1.5, -6.5, -4.0)), + color: None + ), + Tool("common.items.npc_weapons.biped_small.adlet.tracker"): ( + vox_spec: ("weapon.biped_small.bow.tracker", (-0.5, -5.5, -9.5)), + color: None + ), + Tool("common.items.npc_weapons.biped_small.gnoll.rogue"): ( + vox_spec: ("weapon.biped_small.dagger.rogue", (-0.5, -3.0, -1.0)), + color: None + ), + Tool("common.items.npc_weapons.biped_small.gnoll.trapper"): ( + vox_spec: ("weapon.biped_small.blowgun.trapper", (-1.5, -1.5, -1.5)), + color: None + ), + Tool("common.items.npc_weapons.biped_small.gnoll.shaman"): ( + vox_spec: ("weapon.biped_small.staff.shaman", (-2.5, -3.0, -4.0)), + color: None + ), + Tool("common.items.npc_weapons.biped_small.sahagin.sniper"): ( + vox_spec: ("weapon.biped_small.bow.sniper", (-0.5, -5.5, -9.5)), + color: None + ), + Tool("common.items.npc_weapons.biped_small.sahagin.sorcerer"): ( + vox_spec: ("weapon.biped_small.staff.sorcerer", (-0.5, -4.0, -4.0)), + color: None + ), + Tool("common.items.npc_weapons.biped_small.sahagin.spearman"): ( + vox_spec: ("weapon.biped_small.spear.spearman", (-0.5, -3.0, -5.0)), + color: None + ), + Tool("common.items.npc_weapons.biped_small.haniwa.guard"): ( + vox_spec: ("weapon.biped_small.spear.guard", (-0.5, -3.0, -5.0)), + color: None + ), + Tool("common.items.npc_weapons.biped_small.haniwa.soldier"): ( + vox_spec: ("weapon.biped_small.dagger.soldier", (-0.5, -3.0, -2.0)), + color: None + ), + Tool("common.items.npc_weapons.biped_small.haniwa.archer"): ( + vox_spec: ("weapon.biped_small.bow.archer", (-0.5, -4.5, -10.5)), + color: None + ), + Tool("common.items.npc_weapons.biped_small.myrmidon.hoplite"): ( + vox_spec: ("weapon.biped_small.spear.hoplite", (-0.5, -2.0, -5.0)), + color: None + ), + Tool("common.items.npc_weapons.biped_small.myrmidon.marksman"): ( + vox_spec: ("weapon.biped_small.bow.marksman", (-0.5, -5.0, -10.5)), + color: None + ), + Tool("common.items.npc_weapons.biped_small.myrmidon.strategian"): ( + vox_spec: ("weapon.biped_small.axe.strategian", (-0.5, -6.0, -4.0)), + color: None + ), + Tool("common.items.npc_weapons.biped_small.vampire.harlequin_dagger"): ( + vox_spec: ("weapon.biped_small.dagger.harlequin_dagger", (-1.0, 0.0, 0.0)), + color: None + ), + Tool("common.items.npc_weapons.biped_small.vampire.bloodmoon_heiress_sword"): ( + vox_spec: ("weapon.sword.bloodmoon_heiress_sword", (-5.0, -2.0, -2.0)), + color: None + ), + Tool("common.items.npc_weapons.biped_small.vampire.bloodservant_axe"): ( + vox_spec: ("weapon.biped_small.axe.bloodservant_axe", (0.0, 0.0, 0.0)), + color: None + ), + Tool("common.items.npc_weapons.biped_small.mandragora"): ( + vox_spec: ("armor.empty", (0.0, 0.0, 0.0)), + color: None + ), + Tool("common.items.npc_weapons.axe.gigas_frost_axe"): ( + vox_spec: ("weapon.axe.2haxe_gigas_frost", (-3.0, -15.5, -14.0)), + color: None + ), + Tool("common.items.npc_weapons.axe.executioner_axe"): ( + vox_spec: ("weapon.axe.executioner_axe", (-1.0, -2.0, -8.0)), + color: None + ), + Tool("common.items.npc_weapons.biped_small.boreal.bow"): ( + vox_spec: ("weapon.biped_small.bow.boreal_bow", (-2.5, -6.0, -12.0)), + color: None + ), + Tool("common.items.npc_weapons.biped_small.boreal.hammer"): ( + vox_spec: ("weapon.biped_small.hammer.boreal_hammer", (-2.5, -6.0, -4.0)), + color: None + ), + Tool("common.items.npc_weapons.unique.sea_bishop_sceptre"): ( + vox_spec: ("weapon.sceptre.sceptre_sea_bishop", (-3.5, -4.0, 3.0)), + color: None + ), + Tool("common.items.npc_weapons.bow.terracotta_besieger_bow"): ( + vox_spec: ("weapon.bow.terracotta_besieger_bow", (-8.0, -13.5, -12.5)), + color: None + ), + Tool("common.items.npc_weapons.unique.terracotta_demolisher_fist"): ( + vox_spec: ("armor.empty", (-3.0, -3.5, 1.0)), + color: None + ), + Tool("common.items.npc_weapons.hammer.terracotta_punisher_club"): ( + vox_spec: ("weapon.hammer.terracotta_punisher_club", (-5.0, -6.5, -10.0)), + color: None + ), + Tool("common.items.npc_weapons.sword.terracotta_pursuer_sword"): ( + vox_spec: ("weapon.sword.terracotta_pursuer_sword", (-2.5, -5.0, -10.0)), + color: None + ), + Tool("common.items.npc_weapons.unique.cursekeeper_sceptre"): ( + vox_spec: ("weapon.sceptre.sceptre_cursekeeper", (-5.5, -4.5, -3.0)), + color: None + ), + Tool("common.items.npc_weapons.unique.cursekeeper_sceptre_fake"): ( + vox_spec: ("weapon.sceptre.sceptre_cursekeeper", (-5.5, -4.5, -3.0)), + color: None + ), + Tool("common.items.npc_weapons.unique.goblin_thug_club"): ( + vox_spec: ("weapon.biped_small.misc.goblin_thug_club", (-1.5, -2.5, 1.0)), + color: None + ), + Tool("common.items.npc_weapons.unique.goblin_chucker"): ( + vox_spec: ("armor.empty", (-3.0, -3.5, 1.0)), + color: None + ), + Tool("common.items.npc_weapons.unique.goblin_ruffian_knife"): ( + vox_spec: ("weapon.biped_small.misc.goblin_ruffian_knife", (-0.5, -2.5, -0.5)), + color: None + ), + Tool("common.items.npc_weapons.unique.green_legoom_rake"): ( + vox_spec: ("weapon.biped_small.misc.green_legoom_rake", (-2.0, -5.0, 1.0)), + color: None + ), + Tool("common.items.npc_weapons.unique.ochre_legoom_spade"): ( + vox_spec: ("weapon.biped_small.misc.ochre_legoom_spade", (1.0, -5.0, -1.0)), + color: None + ), + Tool("common.items.npc_weapons.unique.purple_legoom_pitchfork"): ( + vox_spec: ("weapon.biped_small.misc.purple_legoom_pitchfork", (-0.5, -3.5, -5.0)), + color: None + ), + Tool("common.items.npc_weapons.unique.red_legoom_hoe"): ( + vox_spec: ("weapon.biped_small.misc.red_legoom_hoe", (0.0, -5.0, 1.0)), + color: None + ), +}) diff --git a/assets/voxygen/voxel/bird_large_central_manifest.ron b/assets/voxygen/voxel/bird_large_central_manifest.ron new file mode 100644 index 0000000..b030b6b --- /dev/null +++ b/assets/voxygen/voxel/bird_large_central_manifest.ron @@ -0,0 +1,418 @@ +({ + (Phoenix, Male): ( + head: ( + offset: (-4.0, -4.0, 0.0), + central: ("npc.phoenix.male.head"), + ), + beak: ( + offset: (-2.0, 0.0, -3.0), + central: ("npc.phoenix.male.beak"), + ), + neck: ( + offset: (-4.0, 0.0, 0.0), + central: ("npc.phoenix.male.neck"), + ), + chest: ( + offset: (-6.0, -9.5, -7.5), + central: ("npc.phoenix.male.chest"), + ), + tail_front: ( + offset: (-10.0, -14.0, -3.0), + central: ("npc.phoenix.male.tail_front"), + ), + tail_rear: ( + offset: (-9.0, -30.0, -2.0), + central: ("npc.phoenix.male.tail_rear"), + ) + ), + (Phoenix, Female): ( + head: ( + offset: (-4.0, -4.0, 0.0), + central: ("npc.phoenix.male.head"), + ), + beak: ( + offset: (-2.0, 0.0, -3.0), + central: ("npc.phoenix.male.beak"), + ), + neck: ( + offset: (-4.0, 0.0, 0.0), + central: ("npc.phoenix.male.neck"), + ), + chest: ( + offset: (-6.0, -9.5, -7.5), + central: ("npc.phoenix.male.chest"), + ), + tail_front: ( + offset: (-10.0, -14.0, -3.0), + central: ("npc.phoenix.male.tail_front"), + ), + tail_rear: ( + offset: (-9.0, -30.0, -2.0), + central: ("npc.phoenix.male.tail_rear"), + ) + ), + (Cockatrice, Male): ( + head: ( + offset: (-4.5, -6.0, -3.5), + central: ("npc.cockatrice.male.head"), + ), + beak: ( + offset: (-1.5, 0.0, -1.5), + central: ("npc.cockatrice.male.beak"), + ), + neck: ( + offset: (-3.5, 0.0, -6.0), + central: ("npc.cockatrice.male.neck"), + ), + chest: ( + offset: (-5.5, -10.0, -9.5), + central: ("npc.cockatrice.male.chest"), + ), + tail_front: ( + offset: (-2.5, -9.0, -6.0), + central: ("npc.cockatrice.male.tail_front"), + ), + tail_rear: ( + offset: (-2.5, -13.0, -3.0), + central: ("npc.cockatrice.male.tail_rear"), + ) + ), + (Cockatrice, Female): ( + head: ( + offset: (-4.5, -6.0, -3.5), + central: ("npc.cockatrice.male.head"), + ), + beak: ( + offset: (-1.5, 0.0, -1.5), + central: ("npc.cockatrice.male.beak"), + ), + neck: ( + offset: (-3.5, 0.0, -6.0), + central: ("npc.cockatrice.male.neck"), + ), + chest: ( + offset: (-5.5, -10.0, -9.5), + central: ("npc.cockatrice.male.chest"), + ), + tail_front: ( + offset: (-2.5, -9.0, -6.0), + central: ("npc.cockatrice.male.tail_front"), + ), + tail_rear: ( + offset: (-2.5, -13.0, -3.0), + central: ("npc.cockatrice.male.tail_rear"), + ) + ), + (Roc, Male): ( + head: ( + offset: (-4.5, -4.0, -6.0), + central: ("npc.roc.male.head"), + ), + beak: ( + offset: (-3.5, 0.0, -8.0), + central: ("npc.roc.male.beak"), + ), + neck: ( + offset: (-5.5, 0.0, -10.5), + central: ("npc.roc.male.neck"), + ), + chest: ( + offset: (-8.5, -12.5, -13.5), + central: ("npc.roc.male.chest"), + ), + tail_front: ( + offset: (-4.5, -9.0, -8.0), + central: ("npc.roc.male.tail_front"), + ), + tail_rear: ( + offset: (-9.5, -28.0, -6.0), + central: ("npc.roc.male.tail_rear"), + ) + ), + (Roc, Female): ( + head: ( + offset: (-4.5, -4.0, -6.0), + central: ("npc.roc.male.head"), + ), + beak: ( + offset: (-3.5, 0.0, -8.0), + central: ("npc.roc.male.beak"), + ), + neck: ( + offset: (-5.5, 0.0, -10.5), + central: ("npc.roc.male.neck"), + ), + chest: ( + offset: (-8.5, -12.5, -13.5), + central: ("npc.roc.male.chest"), + ), + tail_front: ( + offset: (-4.5, -9.0, -8.0), + central: ("npc.roc.male.tail_front"), + ), + tail_rear: ( + offset: (-9.5, -28.0, -6.0), + central: ("npc.roc.male.tail_rear"), + ) + ), + (FlameWyvern, Male): ( + head: ( + offset: (-7.5, -5.0, 0.0), + central: ("npc.wyvern_flame.male.head"), + ), + beak: ( + offset: (-6.5, 0.0, -7.0), + central: ("npc.wyvern_flame.male.beak"), + ), + neck: ( + offset: (-3.5, 0.0, -5.0), + central: ("npc.wyvern_flame.male.neck"), + ), + chest: ( + offset: (-8.5, -12.0, -10.0), + central: ("npc.wyvern_flame.male.chest"), + ), + tail_front: ( + offset: (-3.5, -12.0, -8.5), + central: ("npc.wyvern_flame.male.tail_front"), + ), + tail_rear: ( + offset: (-5.5, -27.0, -8.0), + central: ("npc.wyvern_flame.male.tail_rear"), + ) + ), + (FlameWyvern, Female): ( + head: ( + offset: (-7.5, -5.0, 0.0), + central: ("npc.wyvern_flame.male.head"), + ), + beak: ( + offset: (-6.5, 0.0, -7.0), + central: ("npc.wyvern_flame.male.beak"), + ), + neck: ( + offset: (-3.5, 0.0, -5.0), + central: ("npc.wyvern_flame.male.neck"), + ), + chest: ( + offset: (-8.5, -12.0, -10.0), + central: ("npc.wyvern_flame.male.chest"), + ), + tail_front: ( + offset: (-3.5, -12.0, -8.5), + central: ("npc.wyvern_flame.male.tail_front"), + ), + tail_rear: ( + offset: (-5.5, -27.0, -8.0), + central: ("npc.wyvern_flame.male.tail_rear"), + ) + ), + (CloudWyvern, Male): ( + head: ( + offset: (-3.5, -5.0, 0.0), + central: ("npc.wyvern_cloud.male.head"), + ), + beak: ( + offset: (-2.5, 0.0, -6.0), + central: ("npc.wyvern_cloud.male.beak"), + ), + neck: ( + offset: (-2.5, 0.0, -5.0), + central: ("npc.wyvern_cloud.male.neck"), + ), + chest: ( + offset: (-6.5, -12.0, -10.0), + central: ("npc.wyvern_cloud.male.chest"), + ), + tail_front: ( + offset: (-10.5, -14.0, -7.5), + central: ("npc.wyvern_cloud.male.tail_front"), + ), + tail_rear: ( + offset: (-11.5, -29.0, -7.0), + central: ("npc.wyvern_cloud.male.tail_rear"), + ) + ), + (CloudWyvern, Female): ( + head: ( + offset: (-3.5, -5.0, 0.0), + central: ("npc.wyvern_cloud.male.head"), + ), + beak: ( + offset: (-2.5, 0.0, -6.0), + central: ("npc.wyvern_cloud.male.beak"), + ), + neck: ( + offset: (-2.5, 0.0, -5.0), + central: ("npc.wyvern_cloud.male.neck"), + ), + chest: ( + offset: (-6.5, -12.0, -10.0), + central: ("npc.wyvern_cloud.male.chest"), + ), + tail_front: ( + offset: (-10.5, -14.0, -7.5), + central: ("npc.wyvern_cloud.male.tail_front"), + ), + tail_rear: ( + offset: (-11.5, -29.0, -7.0), + central: ("npc.wyvern_cloud.male.tail_rear"), + ) + ), + (FrostWyvern, Male): ( + head: ( + offset: (-15.5, -5.0, 0.0), + central: ("npc.wyvern_frost.male.head"), + ), + beak: ( + offset: (-2.5, 1.0, -5.0), + central: ("npc.wyvern_frost.male.beak"), + ), + neck: ( + offset: (-3.5, 0.0, -5.0), + central: ("npc.wyvern_frost.male.neck"), + ), + chest: ( + offset: (-6.5, -12.0, -10.0), + central: ("npc.wyvern_frost.male.chest"), + ), + tail_front: ( + offset: (-3.5, -12.0, -7.5), + central: ("npc.wyvern_frost.male.tail_front"), + ), + tail_rear: ( + offset: (-8.5, -26.0, -7.0), + central: ("npc.wyvern_frost.male.tail_rear"), + ) + ), + (FrostWyvern, Female): ( + head: ( + offset: (-15.5, -5.0, 0.0), + central: ("npc.wyvern_frost.male.head"), + ), + beak: ( + offset: (-2.5, 1.0, -5.0), + central: ("npc.wyvern_frost.male.beak"), + ), + neck: ( + offset: (-3.5, 0.0, -5.0), + central: ("npc.wyvern_frost.male.neck"), + ), + chest: ( + offset: (-6.5, -12.0, -10.0), + central: ("npc.wyvern_frost.male.chest"), + ), + tail_front: ( + offset: (-3.5, -12.0, -7.5), + central: ("npc.wyvern_frost.male.tail_front"), + ), + tail_rear: ( + offset: (-8.5, -26.0, -7.0), + central: ("npc.wyvern_frost.male.tail_rear"), + ) + ), + (SeaWyvern, Male): ( + head: ( + offset: (-3.5, -1.0, -1.0), + central: ("npc.wyvern_sea.male.head"), + ), + beak: ( + offset: (-3.5, 2.0, -6.0), + central: ("npc.wyvern_sea.male.beak"), + ), + neck: ( + offset: (-3.5, -2.0, -6.0), + central: ("npc.wyvern_sea.male.neck"), + ), + chest: ( + offset: (-6.5, -12.0, -10.0), + central: ("npc.wyvern_sea.male.chest"), + ), + tail_front: ( + offset: (-2.5, -13.0, -4.5), + central: ("npc.wyvern_sea.male.tail_front"), + ), + tail_rear: ( + offset: (-10.5, -39.0, -4.0), + central: ("npc.wyvern_sea.male.tail_rear"), + ) + ), + (SeaWyvern, Female): ( + head: ( + offset: (-3.5, -1.0, -1.0), + central: ("npc.wyvern_sea.male.head"), + ), + beak: ( + offset: (-3.5, 2.0, -6.0), + central: ("npc.wyvern_sea.male.beak"), + ), + neck: ( + offset: (-3.5, -2.0, -6.0), + central: ("npc.wyvern_sea.male.neck"), + ), + chest: ( + offset: (-6.5, -12.0, -10.0), + central: ("npc.wyvern_sea.male.chest"), + ), + tail_front: ( + offset: (-2.5, -13.0, -4.5), + central: ("npc.wyvern_sea.male.tail_front"), + ), + tail_rear: ( + offset: (-10.5, -39.0, -4.0), + central: ("npc.wyvern_sea.male.tail_rear"), + ) + ), + (WealdWyvern, Male): ( + head: ( + offset: (-4.5, -7.0, 0.0), + central: ("npc.wyvern_weald.male.head"), + ), + beak: ( + offset: (-2.5, 1.0, -9.0), + central: ("npc.wyvern_weald.male.beak"), + ), + neck: ( + offset: (-2.5, 0.0, -2.0), + central: ("npc.wyvern_weald.male.neck"), + ), + chest: ( + offset: (-6.5, -12.0, -10.0), + central: ("npc.wyvern_weald.male.chest"), + ), + tail_front: ( + offset: (-2.5, -12.0, -6.5), + central: ("npc.wyvern_weald.male.tail_front"), + ), + tail_rear: ( + offset: (-10.5, -34.0, -6.0), + central: ("npc.wyvern_weald.male.tail_rear"), + ) + ), + (WealdWyvern, Female): ( + head: ( + offset: (-4.5, -7.0, 0.0), + central: ("npc.wyvern_weald.male.head"), + ), + beak: ( + offset: (-2.5, 1.0, -9.0), + central: ("npc.wyvern_weald.male.beak"), + ), + neck: ( + offset: (-2.5, 0.0, -2.0), + central: ("npc.wyvern_weald.male.neck"), + ), + chest: ( + offset: (-6.5, -12.0, -10.0), + central: ("npc.wyvern_weald.male.chest"), + ), + tail_front: ( + offset: (-2.5, -12.0, -6.5), + central: ("npc.wyvern_weald.male.tail_front"), + ), + tail_rear: ( + offset: (-10.5, -34.0, -6.0), + central: ("npc.wyvern_weald.male.tail_rear"), + ) + ), +}) \ No newline at end of file diff --git a/assets/voxygen/voxel/bird_large_lateral_manifest.ron b/assets/voxygen/voxel/bird_large_lateral_manifest.ron new file mode 100644 index 0000000..acc3773 --- /dev/null +++ b/assets/voxygen/voxel/bird_large_lateral_manifest.ron @@ -0,0 +1,674 @@ +({ + (Phoenix, Male): ( + wing_in_l: ( + offset: (-10.0, -12.0, -1.5), + lateral: ("npc.phoenix.male.wing_in_r"), + ), + wing_in_r: ( + offset: (0.0, -12.0, -1.5), + lateral: ("npc.phoenix.male.wing_in_r"), + ), + wing_mid_l: ( + offset: (-7.0, -15.0, -0.5), + lateral: ("npc.phoenix.male.wing_mid_r"), + ), + wing_mid_r: ( + offset: (0.0, -15.0, -0.5), + lateral: ("npc.phoenix.male.wing_mid_r"), + ), + wing_out_l: ( + offset: (-18.0, -18.0, -2.0), + lateral: ("npc.phoenix.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -18.0, -2.0), + lateral: ("npc.phoenix.male.wing_out_r"), + ), + leg_l: ( + offset: (-4.0, -5.0, -4.5), + lateral: ("npc.phoenix.male.leg_r"), + ), + leg_r: ( + offset: (-4.0, -5.0, -4.5), + lateral: ("npc.phoenix.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -4.5, -9.0), + lateral: ("npc.phoenix.male.foot_r"), + ), + foot_r: ( + offset: (-3.5, -4.5, -9.0), + lateral: ("npc.phoenix.male.foot_r"), + ) + ), + (Phoenix, Female): ( + wing_in_l: ( + offset: (-10.0, -12.0, -1.5), + lateral: ("npc.phoenix.male.wing_in_r"), + ), + wing_in_r: ( + offset: (0.0, -12.0, -1.5), + lateral: ("npc.phoenix.male.wing_in_r"), + ), + wing_mid_l: ( + offset: (-7.0, -15.0, -0.5), + lateral: ("npc.phoenix.male.wing_mid_r"), + ), + wing_mid_r: ( + offset: (0.0, -15.0, -0.5), + lateral: ("npc.phoenix.male.wing_mid_r"), + ), + wing_out_l: ( + offset: (-18.0, -18.0, -2.0), + lateral: ("npc.phoenix.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -18.0, -2.0), + lateral: ("npc.phoenix.male.wing_out_r"), + ), + leg_l: ( + offset: (-4.0, -5.0, -4.5), + lateral: ("npc.phoenix.male.leg_r"), + ), + leg_r: ( + offset: (-4.0, -5.0, -4.5), + lateral: ("npc.phoenix.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -4.5, -9.0), + lateral: ("npc.phoenix.male.foot_r"), + ), + foot_r: ( + offset: (-3.5, -4.5, -9.0), + lateral: ("npc.phoenix.male.foot_r"), + ) + ), + (Cockatrice, Male): ( + wing_in_l: ( + offset: (-7.0, -8.0, -2.0), + lateral: ("npc.cockatrice.male.wing_in_r"), + ), + wing_in_r: ( + offset: (0.0, -8.0, -2.0), + lateral: ("npc.cockatrice.male.wing_in_r"), + ), + wing_mid_l: ( + offset: (-5.0, -9.0, -2.0), + lateral: ("npc.cockatrice.male.wing_mid_r"), + ), + wing_mid_r: ( + offset: (0.0, -9.0, -2.0), + lateral: ("npc.cockatrice.male.wing_mid_r"), + ), + wing_out_l: ( + offset: (-10.0, -11.0, -2.0), + lateral: ("npc.cockatrice.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -11.0, -2.0), + lateral: ("npc.cockatrice.male.wing_out_r"), + ), + leg_l: ( + offset: (-3.0, -4.5, -4.0), + lateral: ("npc.cockatrice.male.leg_r"), + ), + leg_r: ( + offset: (-3.0, -4.5, -4.0), + lateral: ("npc.cockatrice.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -5.5, -10.0), + lateral: ("npc.cockatrice.male.foot_r"), + ), + foot_r: ( + offset: (-3.5, -5.5, -10.0), + lateral: ("npc.cockatrice.male.foot_r"), + ) + ), + (Cockatrice, Female): ( + wing_in_l: ( + offset: (-7.0, -8.0, -2.0), + lateral: ("npc.cockatrice.male.wing_in_r"), + ), + wing_in_r: ( + offset: (0.0, -8.0, -2.0), + lateral: ("npc.cockatrice.male.wing_in_r"), + ), + wing_mid_l: ( + offset: (-5.0, -9.0, -2.0), + lateral: ("npc.cockatrice.male.wing_mid_r"), + ), + wing_mid_r: ( + offset: (0.0, -9.0, -2.0), + lateral: ("npc.cockatrice.male.wing_mid_r"), + ), + wing_out_l: ( + offset: (-10.0, -11.0, -2.0), + lateral: ("npc.cockatrice.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -11.0, -2.0), + lateral: ("npc.cockatrice.male.wing_out_r"), + ), + leg_l: ( + offset: (-3.0, -4.5, -4.0), + lateral: ("npc.cockatrice.male.leg_r"), + ), + leg_r: ( + offset: (-3.0, -4.5, -4.0), + lateral: ("npc.cockatrice.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -5.5, -10.0), + lateral: ("npc.cockatrice.male.foot_r"), + ), + foot_r: ( + offset: (-3.5, -5.5, -10.0), + lateral: ("npc.cockatrice.male.foot_r"), + ) + ), + (Roc, Male): ( + wing_in_l: ( + offset: (-13.0, -14.0, -2.5), + lateral: ("npc.roc.male.wing_in_r"), + ), + wing_in_r: ( + offset: (0.0, -14.0, -2.5), + lateral: ("npc.roc.male.wing_in_r"), + ), + wing_mid_l: ( + offset: (-11.0, -18.0, -2.0), + lateral: ("npc.roc.male.wing_mid_r"), + ), + wing_mid_r: ( + offset: (0.0, -18.0, -2.0), + lateral: ("npc.roc.male.wing_mid_r"), + ), + wing_out_l: ( + offset: (-20.0, -18.0, -2.0), + lateral: ("npc.roc.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -18.0, -2.0), + lateral: ("npc.roc.male.wing_out_r"), + ), + leg_l: ( + offset: (-4.0, -5.5, -7.5), + lateral: ("npc.roc.male.leg_r"), + ), + leg_r: ( + offset: (-4.0, -5.5, -7.5), + lateral: ("npc.roc.male.leg_r"), + ), + foot_l: ( + offset: (-5.5, -3.0, -12.0), + lateral: ("npc.roc.male.foot_r"), + ), + foot_r: ( + offset: (-5.5, -3.0, -12.0), + lateral: ("npc.roc.male.foot_r"), + ) + ), + (Roc, Female): ( + wing_in_l: ( + offset: (-13.0, -14.0, -2.5), + lateral: ("npc.roc.male.wing_in_r"), + ), + wing_in_r: ( + offset: (0.0, -14.0, -2.5), + lateral: ("npc.roc.male.wing_in_r"), + ), + wing_mid_l: ( + offset: (-11.0, -18.0, -2.0), + lateral: ("npc.roc.male.wing_mid_r"), + ), + wing_mid_r: ( + offset: (0.0, -18.0, -2.0), + lateral: ("npc.roc.male.wing_mid_r"), + ), + wing_out_l: ( + offset: (-20.0, -18.0, -2.0), + lateral: ("npc.roc.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -18.0, -2.0), + lateral: ("npc.roc.male.wing_out_r"), + ), + leg_l: ( + offset: (-4.0, -5.5, -7.5), + lateral: ("npc.roc.male.leg_r"), + ), + leg_r: ( + offset: (-4.0, -5.5, -7.5), + lateral: ("npc.roc.male.leg_r"), + ), + foot_l: ( + offset: (-5.5, -3.0, -12.0), + lateral: ("npc.roc.male.foot_r"), + ), + foot_r: ( + offset: (-5.5, -3.0, -12.0), + lateral: ("npc.roc.male.foot_r"), + ) + ), + (FlameWyvern, Male): ( + wing_in_l: ( + offset: (-24.0, -15.5, -4.5), + lateral: ("npc.wyvern_flame.male.wing_in_r"), + ), + wing_in_r: ( + offset: (0.0, -15.5, -4.5), + lateral: ("npc.wyvern_flame.male.wing_in_r"), + ), + wing_mid_l: ( + offset: (-17.0, -30.0, -4.0), + lateral: ("npc.wyvern_flame.male.wing_mid_r"), + ), + wing_mid_r: ( + offset: (0.0, -30.0, -4.0), + lateral: ("npc.wyvern_flame.male.wing_mid_r"), + ), + wing_out_l: ( + offset: (-22.0, -32.0, -4.0), + lateral: ("npc.wyvern_flame.male.wing_out_r"), + ), + wing_out_r: ( + offset: (-3.0, -32.0, -4.0), + lateral: ("npc.wyvern_flame.male.wing_out_r"), + ), + leg_l: ( + offset: (-3.0, -4.5, -8.0), + lateral: ("npc.wyvern_flame.male.leg_r"), + ), + leg_r: ( + offset: (-3.0, -4.5, -8.0), + lateral: ("npc.wyvern_flame.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -6.5, -13.0), + lateral: ("npc.wyvern_flame.male.foot_r"), + ), + foot_r: ( + offset: (-3.5, -6.5, -13.0), + lateral: ("npc.wyvern_flame.male.foot_r"), + ) + ), + (FlameWyvern, Female): ( + wing_in_l: ( + offset: (-24.0, -15.5, -4.5), + lateral: ("npc.wyvern_flame.male.wing_in_r"), + ), + wing_in_r: ( + offset: (0.0, -15.5, -4.5), + lateral: ("npc.wyvern_flame.male.wing_in_r"), + ), + wing_mid_l: ( + offset: (-16.0, -30.0, -4.0), + lateral: ("npc.wyvern_flame.male.wing_mid_r"), + ), + wing_mid_r: ( + offset: (0.0, -30.0, -4.0), + lateral: ("npc.wyvern_flame.male.wing_mid_r"), + ), + wing_out_l: ( + offset: (-22.0, -32.0, -4.0), + lateral: ("npc.wyvern_flame.male.wing_out_r"), + ), + wing_out_r: ( + offset: (-3.0, -32.0, -4.0), + lateral: ("npc.wyvern_flame.male.wing_out_r"), + ), + leg_l: ( + offset: (-3.0, -4.5, -8.0), + lateral: ("npc.wyvern_flame.male.leg_r"), + ), + leg_r: ( + offset: (-3.0, -4.5, -8.0), + lateral: ("npc.wyvern_flame.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -6.5, -13.0), + lateral: ("npc.wyvern_flame.male.foot_r"), + ), + foot_r: ( + offset: (-3.5, -6.5, -13.0), + lateral: ("npc.wyvern_flame.male.foot_r"), + ) + ), + (CloudWyvern, Male): ( + wing_in_l: ( + offset: (-24.0, -15.5, -4.5), + lateral: ("npc.wyvern_cloud.male.wing_in_r"), + ), + wing_in_r: ( + offset: (0.0, -15.5, -4.5), + lateral: ("npc.wyvern_cloud.male.wing_in_r"), + ), + wing_mid_l: ( + offset: (-17.0, -29.0, -4.0), + lateral: ("npc.wyvern_cloud.male.wing_mid_r"), + ), + wing_mid_r: ( + offset: (0.0, -29.0, -4.0), + lateral: ("npc.wyvern_cloud.male.wing_mid_r"), + ), + wing_out_l: ( + offset: (-23.0, -31.0, -3.0), + lateral: ("npc.wyvern_cloud.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -31.0, -3.0), + lateral: ("npc.wyvern_cloud.male.wing_out_r"), + ), + leg_l: ( + offset: (-3.5, -5.0, -8.0), + lateral: ("npc.wyvern_cloud.male.leg_r"), + ), + leg_r: ( + offset: (-3.5, -5.0, -8.0), + lateral: ("npc.wyvern_cloud.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -6.5, -13.0), + lateral: ("npc.wyvern_cloud.male.foot_r"), + ), + foot_r: ( + offset: (-3.5, -6.5, -13.0), + lateral: ("npc.wyvern_cloud.male.foot_r"), + ) + ), + (CloudWyvern, Female): ( + wing_in_l: ( + offset: (-24.0, -15.5, -4.5), + lateral: ("npc.wyvern_cloud.male.wing_in_r"), + ), + wing_in_r: ( + offset: (0.0, -15.5, -4.5), + lateral: ("npc.wyvern_cloud.male.wing_in_r"), + ), + wing_mid_l: ( + offset: (-17.0, -29.0, -4.0), + lateral: ("npc.wyvern_cloud.male.wing_mid_r"), + ), + wing_mid_r: ( + offset: (0.0, -29.0, -4.0), + lateral: ("npc.wyvern_cloud.male.wing_mid_r"), + ), + wing_out_l: ( + offset: (-23.0, -31.0, -3.0), + lateral: ("npc.wyvern_cloud.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -31.0, -3.0), + lateral: ("npc.wyvern_cloud.male.wing_out_r"), + ), + leg_l: ( + offset: (-3.5, -5.0, -8.0), + lateral: ("npc.wyvern_cloud.male.leg_r"), + ), + leg_r: ( + offset: (-3.5, -5.0, -8.0), + lateral: ("npc.wyvern_cloud.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -6.5, -13.0), + lateral: ("npc.wyvern_cloud.male.foot_r"), + ), + foot_r: ( + offset: (-3.5, -6.5, -13.0), + lateral: ("npc.wyvern_cloud.male.foot_r"), + ) + ), + (FrostWyvern, Male): ( + wing_in_l: ( + offset: (-24.0, -15.5, -4.5), + lateral: ("npc.wyvern_frost.male.wing_in_r"), + ), + wing_in_r: ( + offset: (0.0, -15.5, -4.5), + lateral: ("npc.wyvern_frost.male.wing_in_r"), + ), + wing_mid_l: ( + offset: (-17.0, -30.0, -4.0), + lateral: ("npc.wyvern_frost.male.wing_mid_r"), + ), + wing_mid_r: ( + offset: (0.0, -30.0, -4.0), + lateral: ("npc.wyvern_frost.male.wing_mid_r"), + ), + wing_out_l: ( + offset: (-24.0, -32.0, -4.0), + lateral: ("npc.wyvern_frost.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -32.0, -4.0), + lateral: ("npc.wyvern_frost.male.wing_out_r"), + ), + leg_l: ( + offset: (-3.5, -5.0, -8.0), + lateral: ("npc.wyvern_frost.male.leg_r"), + ), + leg_r: ( + offset: (-3.5, -5.0, -8.0), + lateral: ("npc.wyvern_frost.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -6.5, -13.0), + lateral: ("npc.wyvern_frost.male.foot_r"), + ), + foot_r: ( + offset: (-3.5, -6.5, -13.0), + lateral: ("npc.wyvern_frost.male.foot_r"), + ) + ), + (FrostWyvern, Female): ( + wing_in_l: ( + offset: (-24.0, -15.5, -4.5), + lateral: ("npc.wyvern_frost.male.wing_in_r"), + ), + wing_in_r: ( + offset: (0.0, -15.5, -4.5), + lateral: ("npc.wyvern_frost.male.wing_in_r"), + ), + wing_mid_l: ( + offset: (-17.0, -30.0, -4.0), + lateral: ("npc.wyvern_frost.male.wing_mid_r"), + ), + wing_mid_r: ( + offset: (0.0, -30.0, -4.0), + lateral: ("npc.wyvern_frost.male.wing_mid_r"), + ), + wing_out_l: ( + offset: (-24.0, -32.0, -4.0), + lateral: ("npc.wyvern_frost.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -32.0, -4.0), + lateral: ("npc.wyvern_frost.male.wing_out_r"), + ), + leg_l: ( + offset: (-3.5, -5.0, -8.0), + lateral: ("npc.wyvern_frost.male.leg_r"), + ), + leg_r: ( + offset: (-3.5, -5.0, -8.0), + lateral: ("npc.wyvern_frost.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -6.5, -13.0), + lateral: ("npc.wyvern_frost.male.foot_r"), + ), + foot_r: ( + offset: (-3.5, -6.5, -13.0), + lateral: ("npc.wyvern_frost.male.foot_r"), + ) + ), + (SeaWyvern, Male): ( + wing_in_l: ( + offset: (-24.0, -15.5, -4.5), + lateral: ("npc.wyvern_sea.male.wing_in_r"), + ), + wing_in_r: ( + offset: (0.0, -15.5, -4.5), + lateral: ("npc.wyvern_sea.male.wing_in_r"), + ), + wing_mid_l: ( + offset: (-17.0, -30.0, -4.0), + lateral: ("npc.wyvern_sea.male.wing_mid_r"), + ), + wing_mid_r: ( + offset: (0.0, -30.0, -4.0), + lateral: ("npc.wyvern_sea.male.wing_mid_r"), + ), + wing_out_l: ( + offset: (-21.0, -31.0, -4.0), + lateral: ("npc.wyvern_sea.male.wing_out_r"), + ), + wing_out_r: ( + offset: (-3.0, -31.0, -4.0), + lateral: ("npc.wyvern_sea.male.wing_out_r"), + ), + leg_l: ( + offset: (-3.0, -4.5, -8.0), + lateral: ("npc.wyvern_sea.male.leg_r"), + ), + leg_r: ( + offset: (-3.0, -4.5, -8.0), + lateral: ("npc.wyvern_sea.male.leg_r"), + ), + foot_l: ( + offset: (-5.5, -6.5, -13.0), + lateral: ("npc.wyvern_sea.male.foot_r"), + ), + foot_r: ( + offset: (-3.5, -6.5, -13.0), + lateral: ("npc.wyvern_sea.male.foot_r"), + ) + ), + (SeaWyvern, Female): ( + wing_in_l: ( + offset: (-24.0, -15.5, -4.5), + lateral: ("npc.wyvern_sea.male.wing_in_r"), + ), + wing_in_r: ( + offset: (0.0, -15.5, -4.5), + lateral: ("npc.wyvern_sea.male.wing_in_r"), + ), + wing_mid_l: ( + offset: (-17.0, -30.0, -4.0), + lateral: ("npc.wyvern_sea.male.wing_mid_r"), + ), + wing_mid_r: ( + offset: (0.0, -30.0, -4.0), + lateral: ("npc.wyvern_sea.male.wing_mid_r"), + ), + wing_out_l: ( + offset: (-21.0, -31.0, -4.0), + lateral: ("npc.wyvern_sea.male.wing_out_r"), + ), + wing_out_r: ( + offset: (-3.0, -31.0, -4.0), + lateral: ("npc.wyvern_sea.male.wing_out_r"), + ), + leg_l: ( + offset: (-3.0, -4.5, -8.0), + lateral: ("npc.wyvern_sea.male.leg_r"), + ), + leg_r: ( + offset: (-3.0, -4.5, -8.0), + lateral: ("npc.wyvern_sea.male.leg_r"), + ), + foot_l: ( + offset: (-5.5, -6.5, -13.0), + lateral: ("npc.wyvern_sea.male.foot_r"), + ), + foot_r: ( + offset: (-3.5, -6.5, -13.0), + lateral: ("npc.wyvern_sea.male.foot_r"), + ) + ), + (WealdWyvern, Male): ( + wing_in_l: ( + offset: (-24.0, -15.5, -4.5), + lateral: ("npc.wyvern_weald.male.wing_in_r"), + ), + wing_in_r: ( + offset: (0.0, -15.5, -4.5), + lateral: ("npc.wyvern_weald.male.wing_in_r"), + ), + wing_mid_l: ( + offset: (-17.0, -34.0, -4.0), + lateral: ("npc.wyvern_weald.male.wing_mid_r"), + ), + wing_mid_r: ( + offset: (0.0, -34.0, -4.0), + lateral: ("npc.wyvern_weald.male.wing_mid_r"), + ), + wing_out_l: ( + offset: (-18.0, -29.0, -3.0), + lateral: ("npc.wyvern_weald.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -29.0, -3.0), + lateral: ("npc.wyvern_weald.male.wing_out_r"), + ), + leg_l: ( + offset: (-3.0, -4.5, -8.0), + lateral: ("npc.wyvern_weald.male.leg_r"), + ), + leg_r: ( + offset: (-3.0, -4.5, -8.0), + lateral: ("npc.wyvern_weald.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -6.5, -13.0), + lateral: ("npc.wyvern_weald.male.foot_r"), + ), + foot_r: ( + offset: (-3.5, -6.5, -13.0), + lateral: ("npc.wyvern_weald.male.foot_r"), + ) + ), + (WealdWyvern, Female): ( + wing_in_l: ( + offset: (-24.0, -15.5, -4.5), + lateral: ("npc.wyvern_weald.male.wing_in_r"), + ), + wing_in_r: ( + offset: (0.0, -15.5, -4.5), + lateral: ("npc.wyvern_weald.male.wing_in_r"), + ), + wing_mid_l: ( + offset: (-17.0, -34.0, -4.0), + lateral: ("npc.wyvern_weald.male.wing_mid_r"), + ), + wing_mid_r: ( + offset: (0.0, -34.0, -4.0), + lateral: ("npc.wyvern_weald.male.wing_mid_r"), + ), + wing_out_l: ( + offset: (-18.0, -29.0, -3.0), + lateral: ("npc.wyvern_weald.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -29.0, -3.0), + lateral: ("npc.wyvern_weald.male.wing_out_r"), + ), + leg_l: ( + offset: (-3.0, -4.5, -8.0), + lateral: ("npc.wyvern_weald.male.leg_r"), + ), + leg_r: ( + offset: (-3.0, -4.5, -8.0), + lateral: ("npc.wyvern_weald.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -6.5, -13.0), + lateral: ("npc.wyvern_weald.male.foot_r"), + ), + foot_r: ( + offset: (-3.5, -6.5, -13.0), + lateral: ("npc.wyvern_weald.male.foot_r"), + ) + ), +}) \ No newline at end of file diff --git a/assets/voxygen/voxel/bird_medium_central_manifest.ron b/assets/voxygen/voxel/bird_medium_central_manifest.ron new file mode 100644 index 0000000..bc2d988 --- /dev/null +++ b/assets/voxygen/voxel/bird_medium_central_manifest.ron @@ -0,0 +1,506 @@ +({ + (SnowyOwl, Male): ( + head: ( + offset: (-3.5, -4.0, -3.5), + central: ("npc.snowy_owl.male.head"), + ), + chest: ( + offset: (-3.5, -5.5, -4.0), + central: ("npc.snowy_owl.male.chest"), + ), + tail: ( + offset: (-2.5, -3.0, -1.5), + central: ("npc.snowy_owl.male.tail"), + ), + ), + (SnowyOwl, Female): ( + head: ( + offset: (-3.5, -4.0, -3.5), + central: ("npc.snowy_owl.male.head"), + ), + chest: ( + offset: (-3.5, -5.5, -4.0), + central: ("npc.snowy_owl.male.chest"), + ), + tail: ( + offset: (-2.5, -3.0, -1.5), + central: ("npc.snowy_owl.male.tail"), + ), + ), + (HornedOwl, Male): ( + head: ( + offset: (-4.5, -4.0, -4.5), + central: ("npc.horned_owl.male.head"), + ), + chest: ( + offset: (-3.5, -5.5, -4.0), + central: ("npc.horned_owl.male.chest"), + ), + tail: ( + offset: (-2.5, -3.0, -2.5), + central: ("npc.horned_owl.male.tail"), + ), + ), + (HornedOwl, Female): ( + head: ( + offset: (-4.5, -4.0, -4.5), + central: ("npc.horned_owl.male.head"), + ), + chest: ( + offset: (-3.5, -5.5, -4.0), + central: ("npc.horned_owl.male.chest"), + ), + tail: ( + offset: (-2.5, -3.0, -2.5), + central: ("npc.horned_owl.male.tail"), + ), + ), + (Duck, Male): ( + head: ( + offset: (-2.0, -1.5, -2.5), + central: ("npc.duck.male.head"), + ), + chest: ( + offset: (-3.0, -4.5, -3.0), + central: ("npc.duck.male.chest"), + ), + tail: ( + offset: (-2.0, -1.5, -3.0), + central: ("npc.duck.male.tail"), + ) + ), + (Duck, Female): ( + head: ( + offset: (-2.0, -1.5, -2.5), + central: ("npc.duck.female.head"), + ), + chest: ( + offset: (-3.0, -4.5, -3.0), + central: ("npc.duck.female.chest"), + ), + tail: ( + offset: (-2.0, -1.5, -3.0), + central: ("npc.duck.female.tail"), + ) + ), + (Cockatiel, Male): ( + head: ( + offset: (-1.5, -3.0, -3.5), + central: ("npc.cockatiel.male.head"), + ), + chest: ( + offset: (-1.5, -3.0, -2.5), + central: ("npc.cockatiel.male.chest"), + ), + tail: ( + offset: (-1.5, -8.0, -1.0), + central: ("npc.cockatiel.male.tail"), + ), + ), + (Cockatiel, Female): ( + head: ( + offset: (-1.5, -3.0, -3.5), + central: ("npc.cockatiel.male.head"), + ), + chest: ( + offset: (-1.5, -3.0, -2.5), + central: ("npc.cockatiel.male.chest"), + ), + tail: ( + offset: (-1.5, -8.0, -1.0), + central: ("npc.cockatiel.male.tail"), + ), + ), + (Chicken, Male): ( + head: ( + offset: (-1.5, -3.0, -3.0), + central: ("npc.chicken.male.head"), + ), + chest: ( + offset: (-2.5, -4.5, -3.5), + central: ("npc.chicken.male.chest"), + ), + tail: ( + offset: (-1.5, -3.0, -4.0), + central: ("npc.chicken.male.tail"), + ) + ), + (Chicken, Female): ( + head: ( + offset: (-1.5, -3.0, -4.0), + central: ("npc.chicken.female.head"), + ), + chest: ( + offset: (-2.5, -5.0, -3.5), + central: ("npc.chicken.female.chest"), + ), + tail: ( + offset: (-1.5, -3.5, -3.5), + central: ("npc.chicken.female.tail"), + ) + ), + (Bat, Male): ( + head: ( + offset: (-4.5, 2.0, -11.0), + central: ("npc.bat.male.head"), + ), + chest: ( + offset: (-3.5, -5.0, -6.5), + central: ("npc.bat.male.chest"), + ), + tail: ( + offset: (-2.5, -1.5, -1.5), + central: ("npc.bat.male.tail"), + ) + ), + (Bat, Female): ( + head: ( + offset: (-4.5, 2.0, -11.0), + central: ("npc.bat.male.head"), + ), + chest: ( + offset: (-3.5, -5.0, -6.5), + central: ("npc.bat.male.chest"), + ), + tail: ( + offset: (-2.5, -1.5, -1.5), + central: ("npc.bat.male.tail"), + ) + ), + (Penguin, Male): ( + head: ( + offset: (-1.5, -2.0, -2.0), + central: ("npc.penguin.male.head"), + ), + chest: ( + offset: (-3.5, -4.0, -5.5), + central: ("npc.penguin.male.chest"), + ), + tail: ( + offset: (-2.5, -4.5, -1.5), + central: ("npc.penguin.male.tail"), + ), + ), + (Penguin, Female): ( + head: ( + offset: (-1.5, -2.0, -2.0), + central: ("npc.penguin.male.head"), + ), + chest: ( + offset: (-3.5, -4.0, -5.5), + central: ("npc.penguin.male.chest"), + ), + tail: ( + offset: (-2.5, -4.5, -1.5), + central: ("npc.penguin.male.tail"), + ), + ), + (Goose, Male): ( + head: ( + offset: (-2.0, -4.5, -6.0), + central: ("npc.goose.male.head"), + ), + chest: ( + offset: (-4.0, -5.5, -3.0), + central: ("npc.goose.male.chest"), + ), + tail: ( + offset: (-2.0, -3.0, -2.5), + central: ("npc.goose.male.tail"), + ), + ), + (Goose, Female): ( + head: ( + offset: (-2.0, -4.5, -6.0), + central: ("npc.goose.male.head"), + ), + chest: ( + offset: (-4.0, -5.5, -3.0), + central: ("npc.goose.male.chest"), + ), + tail: ( + offset: (-2.0, -3.0, -2.5), + central: ("npc.goose.male.tail"), + ), + ), + (Peacock, Male): ( + head: ( + offset: (-1.5, -4.5, -7.0), + central: ("npc.peacock.male.head"), + ), + chest: ( + offset: (-2.5, -5.5, -3.5), + central: ("npc.peacock.male.chest"), + ), + tail: ( + offset: (-10.5, -14.0, -2.5), + central: ("npc.peacock.male.tail"), + ), + ), + (Peacock, Female): ( + head: ( + offset: (-1.5, -4.5, -7.0), + central: ("npc.peacock.female.head"), + ), + chest: ( + offset: (-2.5, -5.5, -3.5), + central: ("npc.peacock.female.chest"), + ), + tail: ( + offset: (-2.5, -7.0, -4.5), + central: ("npc.peacock.female.tail"), + ), + ), + (Eagle, Male): ( + head: ( + offset: (-2.0, -5.0, -3.5), + central: ("npc.eagle.male.head"), + ), + chest: ( + offset: (-3.0, -6.0, -4.0), + central: ("npc.eagle.male.chest"), + ), + tail: ( + offset: (-4.0, -3.5, -1.5), + central: ("npc.eagle.male.tail"), + ), + ), + (Eagle, Female): ( + head: ( + offset: (-2.0, -4.5, -3.5), + central: ("npc.eagle.female.head"), + ), + chest: ( + offset: (-3.0, -6.0, -4.0), + central: ("npc.eagle.female.chest"), + ), + tail: ( + offset: (-4.0, -3.5, -1.5), + central: ("npc.eagle.female.tail"), + ), + ), + (Parrot, Male): ( + head: ( + offset: (-1.5, -4.0, -3.0), + central: ("npc.parrot.male.head"), + ), + chest: ( + offset: (-2.5, -4.5, -3.5), + central: ("npc.parrot.male.chest"), + ), + tail: ( + offset: (-1.5, -10.0, -3.5), + central: ("npc.parrot.male.tail"), + ), + ), + (Parrot, Female): ( + head: ( + offset: (-1.5, -5.5, -4.0), + central: ("npc.parrot.female.head"), + ), + chest: ( + offset: (-2.5, -4.5, -3.5), + central: ("npc.parrot.female.chest"), + ), + tail: ( + offset: (-1.5, -10.0, -3.5), + central: ("npc.parrot.female.tail"), + ), + ), + (Crow, Male): ( + head: ( + offset: (-1.5, -4.5, -2.5), + central: ("npc.crow.male.head"), + ), + chest: ( + offset: (-2.5, -4.0, -3.0), + central: ("npc.crow.male.chest"), + ), + tail: ( + offset: (-3.5, -3.5, -1.5), + central: ("npc.crow.male.tail"), + ), + ), + (Crow, Female): ( + head: ( + offset: (-1.5, -4.5, -2.5), + central: ("npc.crow.male.head"), + ), + chest: ( + offset: (-2.5, -4.0, -3.0), + central: ("npc.crow.male.chest"), + ), + tail: ( + offset: (-3.5, -3.5, -1.5), + central: ("npc.crow.male.tail"), + ), + ), + (Dodo, Male): ( + head: ( + offset: (-2.5, -6.0, -6.0), + central: ("npc.dodo.male.head"), + ), + chest: ( + offset: (-4.5, -5.5, -4.0), + central: ("npc.dodo.male.chest"), + ), + tail: ( + offset: (-2.5, -4.0, -3.5), + central: ("npc.dodo.male.tail"), + ), + ), + (Dodo, Female): ( + head: ( + offset: (-2.5, -6.0, -6.0), + central: ("npc.dodo.male.head"), + ), + chest: ( + offset: (-4.5, -5.5, -4.0), + central: ("npc.dodo.male.chest"), + ), + tail: ( + offset: (-2.5, -4.0, -3.5), + central: ("npc.dodo.male.tail"), + ), + ), + (Parakeet, Male): ( + head: ( + offset: (-1.5, -3.0, -2.0), + central: ("npc.parakeet.male.head"), + ), + chest: ( + offset: (-1.5, -3.0, -2.5), + central: ("npc.parakeet.male.chest"), + ), + tail: ( + offset: (-1.5, -4.0, -2.0), + central: ("npc.parakeet.male.tail"), + ), + ), + (Parakeet, Female): ( + head: ( + offset: (-1.5, -3.0, -2.0), + central: ("npc.parakeet.male.head"), + ), + chest: ( + offset: (-1.5, -3.0, -2.5), + central: ("npc.parakeet.male.chest"), + ), + tail: ( + offset: (-1.5, -4.0, -2.0), + central: ("npc.parakeet.male.tail"), + ), + ), + (Puffin, Male): ( + head: ( + offset: (-2.5, -5.0, -3.5), + central: ("npc.puffin.male.head"), + ), + chest: ( + offset: (-2.5, -5.0, -4.0), + central: ("npc.puffin.male.chest"), + ), + tail: ( + offset: (-2.5, -3.5, -2.0), + central: ("npc.puffin.male.tail"), + ), + ), + (Puffin, Female): ( + head: ( + offset: (-2.5, -5.0, -3.5), + central: ("npc.puffin.male.head"), + ), + chest: ( + offset: (-2.5, -5.0, -4.0), + central: ("npc.puffin.male.chest"), + ), + tail: ( + offset: (-2.5, -3.5, -2.0), + central: ("npc.puffin.male.tail"), + ), + ), + (Toucan, Male): ( + head: ( + offset: (-1.5, -2.0, -3.0), + central: ("npc.toucan.male.head"), + ), + chest: ( + offset: (-2.5, -4.5, -3.5), + central: ("npc.toucan.male.chest"), + ), + tail: ( + offset: (-3.5, -5.0, -4.0), + central: ("npc.toucan.male.tail"), + ), + ), + (Toucan, Female): ( + head: ( + offset: (-1.5, -2.0, -3.0), + central: ("npc.toucan.female.head"), + ), + chest: ( + offset: (-2.5, -4.5, -3.5), + central: ("npc.toucan.female.chest"), + ), + tail: ( + offset: (-3.5, -5.0, -4.0), + central: ("npc.toucan.female.tail"), + ), + ), + (BloodmoonBat, Male): ( + head: ( + offset: (-5.5, 1.0, -7.0), + central: ("npc.bloodmoon_bat.male.head"), + ), + chest: ( + offset: (-4.5, -7.0, -2.5), + central: ("npc.bloodmoon_bat.male.chest"), + ), + tail: ( + offset: (-2.5, -19.0, -2.5), + central: ("npc.bloodmoon_bat.male.tail"), + ) + ), + (BloodmoonBat, Female): ( + head: ( + offset: (-5.5, 1.0, -7.0), + central: ("npc.bloodmoon_bat.male.head"), + ), + chest: ( + offset: (-4.5, -7.0, -2.5), + central: ("npc.bloodmoon_bat.male.chest"), + ), + tail: ( + offset: (-2.5, -19.0, -2.5), + central: ("npc.bloodmoon_bat.male.tail"), + ) + ), + (VampireBat, Male): ( + head: ( + offset: (-4.5, 2.0, -13.0), + central: ("npc.vampire_bat.male.head"), + ), + chest: ( + offset: (-3.5, -5.0, -7.5), + central: ("npc.vampire_bat.male.chest"), + ), + tail: ( + offset: (-2.5, -7.0, -2.5), + central: ("npc.vampire_bat.male.tail"), + ) + ), + (VampireBat, Female): ( + head: ( + offset: (-4.5, 2.0, -13.0), + central: ("npc.vampire_bat.male.head"), + ), + chest: ( + offset: (-3.5, -5.0, -7.5), + central: ("npc.vampire_bat.male.chest"), + ), + tail: ( + offset: (-2.5, -7.0, -2.5), + central: ("npc.vampire_bat.male.tail"), + ) + ), +}) \ No newline at end of file diff --git a/assets/voxygen/voxel/bird_medium_lateral_manifest.ron b/assets/voxygen/voxel/bird_medium_lateral_manifest.ron new file mode 100644 index 0000000..5f052a5 --- /dev/null +++ b/assets/voxygen/voxel/bird_medium_lateral_manifest.ron @@ -0,0 +1,938 @@ +({ + (SnowyOwl, Male): ( + wing_in_l: ( + offset: (-5.0, -4.0, -0.5), + lateral: ("npc.snowy_owl.male.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -4.0, -0.5), + lateral: ("npc.snowy_owl.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-10.0, -7.0, -1.0), + lateral: ("npc.snowy_owl.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -7.0, -1.0), + lateral: ("npc.snowy_owl.male.wing_out_r"), + ), + leg_l: ( + offset: (-1.5, 0.0, -6.5), + lateral: ("npc.snowy_owl.male.leg_r"), + ), + leg_r: ( + offset: (-1.5, 0.0, -6.5), + lateral: ("npc.snowy_owl.male.leg_r"), + ), + ), + (SnowyOwl, Female): ( + wing_in_l: ( + offset: (-5.0, -4.0, -0.5), + lateral: ("npc.snowy_owl.male.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -4.0, -0.5), + lateral: ("npc.snowy_owl.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-10.0, -7.0, -1.0), + lateral: ("npc.snowy_owl.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -7.0, -1.0), + lateral: ("npc.snowy_owl.male.wing_out_r"), + ), + leg_l: ( + offset: (-1.5, 0.0, -6.5), + lateral: ("npc.snowy_owl.male.leg_r"), + ), + leg_r: ( + offset: (-1.5, 0.0, -6.5), + lateral: ("npc.snowy_owl.male.leg_r"), + ), + ), + (HornedOwl, Male): ( + wing_in_l: ( + offset: (-5.0, -4.0, -0.5), + lateral: ("npc.horned_owl.male.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -4.0, -0.5), + lateral: ("npc.horned_owl.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-10.0, -7.0, -1.0), + lateral: ("npc.horned_owl.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -7.0, -1.0), + lateral: ("npc.horned_owl.male.wing_out_r"), + ), + leg_l: ( + offset: (-1.0, 0.0, -6.5), + lateral: ("npc.horned_owl.male.leg_r"), + ), + leg_r: ( + offset: (-1.0, 0.0, -6.5), + lateral: ("npc.horned_owl.male.leg_r"), + ), + ), + (HornedOwl, Female): ( + wing_in_l: ( + offset: (-5.0, -4.0, -0.5), + lateral: ("npc.horned_owl.male.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -4.0, -0.5), + lateral: ("npc.horned_owl.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-10.0, -7.0, -1.0), + lateral: ("npc.horned_owl.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -7.0, -1.0), + lateral: ("npc.horned_owl.male.wing_out_r"), + ), + leg_l: ( + offset: (-1.0, 0.0, -6.5), + lateral: ("npc.horned_owl.male.leg_r"), + ), + leg_r: ( + offset: (-1.0, 0.0, -6.5), + lateral: ("npc.horned_owl.male.leg_r"), + ), + ), + (Duck, Male): ( + wing_in_l: ( + offset: (-3.0, -2.0, -0.5), + lateral: ("npc.duck.male.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -2.0, -0.5), + lateral: ("npc.duck.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-4.0, -4.0, -1.0), + lateral: ("npc.duck.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -4.0, -1.0), + lateral: ("npc.duck.male.wing_out_r"), + ), + leg_l: ( + offset: (-1.5, -1.5, -4.0), + lateral: ("npc.duck.male.leg_r"), + ), + leg_r: ( + offset: (-1.5, -1.5, -4.0), + lateral: ("npc.duck.male.leg_r"), + ) + ), + (Duck, Female): ( + wing_in_l: ( + offset: (-3.0, -2.0, -0.5), + lateral: ("npc.duck.female.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -2.0, -0.5), + lateral: ("npc.duck.female.wing_in_r"), + ), + wing_out_l: ( + offset: (-4.0, -4.0, -1.0), + lateral: ("npc.duck.female.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -4.0, -1.0), + lateral: ("npc.duck.female.wing_out_r"), + ), + leg_l: ( + offset: (-1.5, -1.5, -4.0), + lateral: ("npc.duck.female.leg_r"), + ), + leg_r: ( + offset: (-1.5, -1.5, -4.0), + lateral: ("npc.duck.female.leg_r"), + ) + ), + (Cockatiel, Male): ( + wing_in_l: ( + offset: (-3.0, -2.0, -0.5), + lateral: ("npc.cockatiel.male.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -2.0, -0.5), + lateral: ("npc.cockatiel.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-5.0, -4.0, -1.0), + lateral: ("npc.cockatiel.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -4.0, -1.0), + lateral: ("npc.cockatiel.male.wing_out_r"), + ), + leg_l: ( + offset: (-1.0, -1.0, -4.0), + lateral: ("npc.cockatiel.male.leg_r"), + ), + leg_r: ( + offset: (-1.0, -1.0, -4.0), + lateral: ("npc.cockatiel.male.leg_r"), + ) + ), + (Cockatiel, Female): ( + wing_in_l: ( + offset: (-3.0, -2.0, -0.5), + lateral: ("npc.cockatiel.male.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -2.0, -0.5), + lateral: ("npc.cockatiel.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-5.0, -4.0, -1.0), + lateral: ("npc.cockatiel.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -4.0, -1.0), + lateral: ("npc.cockatiel.male.wing_out_r"), + ), + leg_l: ( + offset: (-1.0, -1.0, -4.0), + lateral: ("npc.cockatiel.male.leg_r"), + ), + leg_r: ( + offset: (-1.0, -1.0, -4.0), + lateral: ("npc.cockatiel.male.leg_r"), + ) + ), + (Chicken, Male): ( + wing_in_l: ( + offset: (-3.0, -2.0, -0.5), + lateral: ("npc.chicken.male.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -2.0, -0.5), + lateral: ("npc.chicken.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-3.0, -4.0, -1.0), + lateral: ("npc.chicken.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -4.0, -1.0), + lateral: ("npc.chicken.male.wing_out_r"), + ), + leg_l: ( + offset: (-1.5, -2.5, -6.0), + lateral: ("npc.chicken.male.leg_r"), + ), + leg_r: ( + offset: (-1.5, -2.5, -6.0), + lateral: ("npc.chicken.male.leg_r"), + ) + ), + (Chicken, Female): ( + wing_in_l: ( + offset: (-3.0, -2.0, -0.5), + lateral: ("npc.chicken.female.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -2.0, -0.5), + lateral: ("npc.chicken.female.wing_in_r"), + ), + wing_out_l: ( + offset: (-3.0, -4.0, -1.0), + lateral: ("npc.chicken.female.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -4.0, -1.0), + lateral: ("npc.chicken.female.wing_out_r"), + ), + leg_l: ( + offset: (-1.5, -2.5, -6.0), + lateral: ("npc.chicken.female.leg_r"), + ), + leg_r: ( + offset: (-1.5, -2.5, -6.0), + lateral: ("npc.chicken.female.leg_r"), + ) + ), + (Bat, Male): ( + wing_in_l: ( + offset: (-5.0, -6.0, -1.0), + lateral: ("npc.bat.male.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -6.0, -1.0), + lateral: ("npc.bat.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-9.0, -10.0, -1.0), + lateral: ("npc.bat.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -10.0, -1.0), + lateral: ("npc.bat.male.wing_out_r"), + ), + leg_l: ( + offset: (-2.0, 2.0, -8.5), + lateral: ("npc.bat.male.leg_r"), + ), + leg_r: ( + offset: (-2.0, 2.0, -8.5), + lateral: ("npc.bat.male.leg_r"), + ) + ), + (Bat, Female): ( + wing_in_l: ( + offset: (-5.0, -6.0, -1.0), + lateral: ("npc.bat.male.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -6.0, -1.0), + lateral: ("npc.bat.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-9.0, -10.0, -1.0), + lateral: ("npc.bat.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -10.0, -1.0), + lateral: ("npc.bat.male.wing_out_r"), + ), + leg_l: ( + offset: (-2.0, 2.0, -8.5), + lateral: ("npc.bat.male.leg_r"), + ), + leg_r: ( + offset: (-2.0, 2.0, -8.5), + lateral: ("npc.bat.male.leg_r"), + ) + ), + (Penguin, Male): ( + wing_in_l: ( + offset: (-3.0, -1.5, -0.5), + lateral: ("npc.penguin.male.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -1.5, -0.5), + lateral: ("npc.penguin.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-6.0, -3.0, -1.0), + lateral: ("npc.penguin.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -3.0, -1.0), + lateral: ("npc.penguin.male.wing_out_r"), + ), + leg_l: ( + offset: (-2.5, 0.0, -6.0), + lateral: ("npc.penguin.male.leg_r"), + ), + leg_r: ( + offset: (-2.5, 0.0, -6.0), + lateral: ("npc.penguin.male.leg_r"), + ), + ), + (Penguin, Female): ( + wing_in_l: ( + offset: (-3.0, -1.5, -0.5), + lateral: ("npc.penguin.male.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -1.5, -0.5), + lateral: ("npc.penguin.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-6.0, -3.0, -1.0), + lateral: ("npc.penguin.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -3.0, -1.0), + lateral: ("npc.penguin.male.wing_out_r"), + ), + leg_l: ( + offset: (-2.5, 0.0, -6.0), + lateral: ("npc.penguin.male.leg_r"), + ), + leg_r: ( + offset: (-2.5, 0.0, -6.0), + lateral: ("npc.penguin.male.leg_r"), + ), + ), + (Goose, Male): ( + wing_in_l: ( + offset: (-4.0, -3.0, -0.5), + lateral: ("npc.goose.male.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -3.0, -0.5), + lateral: ("npc.goose.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-10.0, -6.0, -1.0), + lateral: ("npc.goose.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -6.0, -1.0), + lateral: ("npc.goose.male.wing_out_r"), + ), + leg_l: ( + offset: (-2.5, 0.0, -6.0), + lateral: ("npc.goose.male.leg_r"), + ), + leg_r: ( + offset: (-2.5, 0.0, -6.0), + lateral: ("npc.goose.male.leg_r"), + ), + ), + (Goose, Female): ( + wing_in_l: ( + offset: (-4.0, -3.0, -0.5), + lateral: ("npc.goose.male.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -3.0, -0.5), + lateral: ("npc.goose.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-10.0, -6.0, -1.0), + lateral: ("npc.goose.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -6.0, -1.0), + lateral: ("npc.goose.male.wing_out_r"), + ), + leg_l: ( + offset: (-2.5, 0.0, -6.0), + lateral: ("npc.goose.male.leg_r"), + ), + leg_r: ( + offset: (-2.5, 0.0, -6.0), + lateral: ("npc.goose.male.leg_r"), + ), + ), + (Peacock, Male): ( + wing_in_l: ( + offset: (-5.0, -4.0, -0.5), + lateral: ("npc.peacock.male.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -4.0, -0.5), + lateral: ("npc.peacock.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-7.0, -8.0, -1.0), + lateral: ("npc.peacock.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -8.0, -1.0), + lateral: ("npc.peacock.male.wing_out_r"), + ), + leg_l: ( + offset: (-1.5, 0.0, -9.5), + lateral: ("npc.peacock.male.leg_r"), + ), + leg_r: ( + offset: (-1.5, 0.0, -9.5), + lateral: ("npc.peacock.male.leg_r"), + ), + ), + (Peacock, Female): ( + wing_in_l: ( + offset: (-5.0, -4.0, -0.5), + lateral: ("npc.peacock.female.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -4.0, -0.5), + lateral: ("npc.peacock.female.wing_in_r"), + ), + wing_out_l: ( + offset: (-7.0, -8.0, -1.0), + lateral: ("npc.peacock.female.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -8.0, -1.0), + lateral: ("npc.peacock.female.wing_out_r"), + ), + leg_l: ( + offset: (-1.5, 0.0, -9.5), + lateral: ("npc.peacock.female.leg_r"), + ), + leg_r: ( + offset: (-1.5, 0.0, -9.5), + lateral: ("npc.peacock.female.leg_r"), + ), + ), + (Eagle, Male): ( + wing_in_l: ( + offset: (-8.0, -4.5, -0.5), + lateral: ("npc.eagle.male.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -4.5, -0.5), + lateral: ("npc.eagle.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-12.0, -8.0, -1.0), + lateral: ("npc.eagle.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -8.0, -1.0), + lateral: ("npc.eagle.male.wing_out_r"), + ), + leg_l: ( + offset: (-2.0, 0.0, -6.0), + lateral: ("npc.eagle.male.leg_r"), + ), + leg_r: ( + offset: (-2.0, 0.0, -6.0), + lateral: ("npc.eagle.male.leg_r"), + ), + ), + (Eagle, Female): ( + wing_in_l: ( + offset: (-8.0, -4.5, -0.5), + lateral: ("npc.eagle.female.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -4.5, -0.5), + lateral: ("npc.eagle.female.wing_in_r"), + ), + wing_out_l: ( + offset: (-12.0, -8.0, -1.0), + lateral: ("npc.eagle.female.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -8.0, -1.0), + lateral: ("npc.eagle.female.wing_out_r"), + ), + leg_l: ( + offset: (-2.0, 0.0, -6.0), + lateral: ("npc.eagle.female.leg_r"), + ), + leg_r: ( + offset: (-2.0, 0.0, -6.0), + lateral: ("npc.eagle.female.leg_r"), + ), + ), + (Parrot, Male): ( + wing_in_l: ( + offset: (-5.0, -3.0, -0.5), + lateral: ("npc.parrot.male.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -3.0, -0.5), + lateral: ("npc.parrot.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-10.0, -6.0, -1.0), + lateral: ("npc.parrot.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -6.0, -1.0), + lateral: ("npc.parrot.male.wing_out_r"), + ), + leg_l: ( + offset: (-1.5, 0.0, -3.0), + lateral: ("npc.parrot.male.leg_r"), + ), + leg_r: ( + offset: (-1.5, 0.0, -3.0), + lateral: ("npc.parrot.male.leg_r"), + ), + ), + (Parrot, Female): ( + wing_in_l: ( + offset: (-5.0, -3.0, -0.5), + lateral: ("npc.parrot.female.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -3.0, -0.5), + lateral: ("npc.parrot.female.wing_in_r"), + ), + wing_out_l: ( + offset: (-10.0, -6.0, -1.0), + lateral: ("npc.parrot.female.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -6.0, -1.0), + lateral: ("npc.parrot.female.wing_out_r"), + ), + leg_l: ( + offset: (-1.5, 0.0, -3.0), + lateral: ("npc.parrot.female.leg_r"), + ), + leg_r: ( + offset: (-1.5, 0.0, -3.0), + lateral: ("npc.parrot.female.leg_r"), + ), + ), + (Crow, Male): ( + wing_in_l: ( + offset: (-5.0, -3.0, -0.5), + lateral: ("npc.crow.male.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -3.0, -0.5), + lateral: ("npc.crow.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-9.0, -6.0, -1.0), + lateral: ("npc.crow.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -6.0, -1.0), + lateral: ("npc.crow.male.wing_out_r"), + ), + leg_l: ( + offset: (-1.5, 0.0, -3.0), + lateral: ("npc.crow.male.leg_r"), + ), + leg_r: ( + offset: (-1.5, 0.0, -3.0), + lateral: ("npc.crow.male.leg_r"), + ), + ), + (Crow, Female): ( + wing_in_l: ( + offset: (-5.0, -3.0, -0.5), + lateral: ("npc.crow.male.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -3.0, -0.5), + lateral: ("npc.crow.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-9.0, -6.0, -1.0), + lateral: ("npc.crow.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -6.0, -1.0), + lateral: ("npc.crow.male.wing_out_r"), + ), + leg_l: ( + offset: (-1.5, 0.0, -3.0), + lateral: ("npc.crow.male.leg_r"), + ), + leg_r: ( + offset: (-1.5, 0.0, -3.0), + lateral: ("npc.crow.male.leg_r"), + ), + ), + (Dodo, Male): ( + wing_in_l: ( + offset: (-3.0, -3.0, -0.5), + lateral: ("npc.dodo.male.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -3.0, -0.5), + lateral: ("npc.dodo.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-4.0, -6.0, -1.0), + lateral: ("npc.dodo.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -6.0, -1.0), + lateral: ("npc.dodo.male.wing_out_r"), + ), + leg_l: ( + offset: (-2.0, 0.0, -4.0), + lateral: ("npc.dodo.male.leg_r"), + ), + leg_r: ( + offset: (-2.0, 0.0, -4.0), + lateral: ("npc.dodo.male.leg_r"), + ), + ), + (Dodo, Female): ( + wing_in_l: ( + offset: (-3.0, -3.0, -0.5), + lateral: ("npc.dodo.male.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -3.0, -0.5), + lateral: ("npc.dodo.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-4.0, -6.0, -1.0), + lateral: ("npc.dodo.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -6.0, -1.0), + lateral: ("npc.dodo.male.wing_out_r"), + ), + leg_l: ( + offset: (-2.0, 0.0, -4.0), + lateral: ("npc.dodo.male.leg_r"), + ), + leg_r: ( + offset: (-2.0, 0.0, -4.0), + lateral: ("npc.dodo.male.leg_r"), + ), + ), + (Parakeet, Male): ( + wing_in_l: ( + offset: (-3.0, -2.0, -0.5), + lateral: ("npc.parakeet.male.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -2.0, -0.5), + lateral: ("npc.parakeet.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-5.0, -2.0, -1.0), + lateral: ("npc.parakeet.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -2.0, -1.0), + lateral: ("npc.parakeet.male.wing_out_r"), + ), + leg_l: ( + offset: (-1.0, 0.0, -2.0), + lateral: ("npc.parakeet.male.leg_r"), + ), + leg_r: ( + offset: (-1.0, 0.0, -2.0), + lateral: ("npc.parakeet.male.leg_r"), + ), + ), + (Parakeet, Female): ( + wing_in_l: ( + offset: (-3.0, -2.0, -0.5), + lateral: ("npc.parakeet.male.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -2.0, -0.5), + lateral: ("npc.parakeet.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-5.0, -2.0, -1.0), + lateral: ("npc.parakeet.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -2.0, -1.0), + lateral: ("npc.parakeet.male.wing_out_r"), + ), + leg_l: ( + offset: (-1.0, 0.0, -2.0), + lateral: ("npc.parakeet.male.leg_r"), + ), + leg_r: ( + offset: (-1.0, 0.0, -2.0), + lateral: ("npc.parakeet.male.leg_r"), + ), + ), + (Puffin, Male): ( + wing_in_l: ( + offset: (-5.0, -3.0, -0.5), + lateral: ("npc.puffin.male.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -3.0, -0.5), + lateral: ("npc.puffin.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-10.0, -6.0, -1.0), + lateral: ("npc.puffin.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -6.0, -1.0), + lateral: ("npc.puffin.male.wing_out_r"), + ), + leg_l: ( + offset: (-2.5, 0.0, -3.5), + lateral: ("npc.puffin.male.leg_r"), + ), + leg_r: ( + offset: (-2.5, 0.0, -3.5), + lateral: ("npc.puffin.male.leg_r"), + ), + ), + (Puffin, Female): ( + wing_in_l: ( + offset: (-5.0, -3.0, -0.5), + lateral: ("npc.puffin.male.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -3.0, -0.5), + lateral: ("npc.puffin.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-10.0, -6.0, -1.0), + lateral: ("npc.puffin.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -6.0, -1.0), + lateral: ("npc.puffin.male.wing_out_r"), + ), + leg_l: ( + offset: (-2.5, 0.0, -3.5), + lateral: ("npc.puffin.male.leg_r"), + ), + leg_r: ( + offset: (-2.5, 0.0, -3.5), + lateral: ("npc.puffin.male.leg_r"), + ), + ), + (Toucan, Male): ( + wing_in_l: ( + offset: (-5.0, -3.0, -0.5), + lateral: ("npc.toucan.male.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -3.0, -0.5), + lateral: ("npc.toucan.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-10.0, -6.0, -1.0), + lateral: ("npc.toucan.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -6.0, -1.0), + lateral: ("npc.toucan.male.wing_out_r"), + ), + leg_l: ( + offset: (-1.5, 0.0, -3.0), + lateral: ("npc.toucan.male.leg_r"), + ), + leg_r: ( + offset: (-1.5, 0.0, -3.0), + lateral: ("npc.toucan.male.leg_r"), + ), + ), + (Toucan, Female): ( + wing_in_l: ( + offset: (-5.0, -3.0, -0.5), + lateral: ("npc.toucan.female.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -3.0, -0.5), + lateral: ("npc.toucan.female.wing_in_r"), + ), + wing_out_l: ( + offset: (-10.0, -6.0, -1.0), + lateral: ("npc.toucan.female.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -6.0, -1.0), + lateral: ("npc.toucan.female.wing_out_r"), + ), + leg_l: ( + offset: (-1.5, 0.0, -3.0), + lateral: ("npc.toucan.female.leg_r"), + ), + leg_r: ( + offset: (-1.5, 0.0, -3.0), + lateral: ("npc.toucan.female.leg_r"), + ), + ), + (BloodmoonBat, Male): ( + wing_in_l: ( + offset: (-11.0, -9.0, -1.5), + lateral: ("npc.bloodmoon_bat.male.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -9.0, -1.5), + lateral: ("npc.bloodmoon_bat.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-14.0, -17.0, -0.5), + lateral: ("npc.bloodmoon_bat.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -17.0, -0.5), + lateral: ("npc.bloodmoon_bat.male.wing_out_r"), + ), + leg_l: ( + offset: (-6.0, -1.5, -6.0), + lateral: ("npc.bloodmoon_bat.male.leg_r"), + ), + leg_r: ( + offset: (-0.0, -1.5, -6.0), + lateral: ("npc.bloodmoon_bat.male.leg_r"), + ) + ), + (BloodmoonBat, Female): ( + wing_in_l: ( + offset: (-11.0, -9.0, -1.5), + lateral: ("npc.bloodmoon_bat.male.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -9.0, -1.5), + lateral: ("npc.bloodmoon_bat.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-14.0, -17.0, -0.5), + lateral: ("npc.bloodmoon_bat.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -17.0, -0.5), + lateral: ("npc.bloodmoon_bat.male.wing_out_r"), + ), + leg_l: ( + offset: (-6.0, -1.5, -6.0), + lateral: ("npc.bloodmoon_bat.male.leg_r"), + ), + leg_r: ( + offset: (-0.0, -1.5, -6.0), + lateral: ("npc.bloodmoon_bat.male.leg_r"), + ) + ), + (VampireBat, Male): ( + wing_in_l: ( + offset: (-5.0, -6.0, -1.0), + lateral: ("npc.vampire_bat.male.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -6.0, -1.0), + lateral: ("npc.vampire_bat.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-11.0, -10.0, -1.0), + lateral: ("npc.vampire_bat.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -10.0, -1.0), + lateral: ("npc.vampire_bat.male.wing_out_r"), + ), + leg_l: ( + offset: (-2.0, 2.0, -8.5), + lateral: ("npc.vampire_bat.male.leg_r"), + ), + leg_r: ( + offset: (-2.0, 2.0, -8.5), + lateral: ("npc.vampire_bat.male.leg_r"), + ) + ), + (VampireBat, Female): ( + wing_in_l: ( + offset: (-5.0, -6.0, -1.0), + lateral: ("npc.vampire_bat.male.wing_in_r"), + ), + wing_in_r: ( + offset: (-0.0, -6.0, -1.0), + lateral: ("npc.vampire_bat.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-11.0, -10.0, -1.0), + lateral: ("npc.vampire_bat.male.wing_out_r"), + ), + wing_out_r: ( + offset: (0.0, -10.0, -1.0), + lateral: ("npc.vampire_bat.male.wing_out_r"), + ), + leg_l: ( + offset: (-2.0, 2.0, -8.5), + lateral: ("npc.vampire_bat.male.leg_r"), + ), + leg_r: ( + offset: (-2.0, 2.0, -8.5), + lateral: ("npc.vampire_bat.male.leg_r"), + ) + ), +}) \ No newline at end of file diff --git a/assets/voxygen/voxel/char_template.vox b/assets/voxygen/voxel/char_template.vox new file mode 100644 index 0000000..f8e08e1 Binary files /dev/null and b/assets/voxygen/voxel/char_template.vox differ diff --git a/assets/voxygen/voxel/crustacean_central_manifest.ron b/assets/voxygen/voxel/crustacean_central_manifest.ron new file mode 100644 index 0000000..f8088e5 --- /dev/null +++ b/assets/voxygen/voxel/crustacean_central_manifest.ron @@ -0,0 +1,38 @@ +({ + (Crab, Male): ( + chest: ( + offset: (-5.0, -4.5, 2.0), + central: ("npc.crab.crab"), + ), + ), + (Crab, Female): ( + chest: ( + offset: (-5.0, -4.5, 2.0), + central: ("npc.crab.crab"), + ), + ), + (SoldierCrab, Male): ( + chest: ( + offset: (-6.0, -4.5, 1.0), + central: ("npc.soldier_crab.soldier_crab"), + ), + ), + (SoldierCrab, Female): ( + chest: ( + offset: (-6.0, -4.5, 1.0), + central: ("npc.soldier_crab.soldier_crab"), + ), + ), + (Karkatha, Male): ( + chest: ( + offset: (-9.0, -11.5, 7.0), + central: ("npc.karkatha.karkatha"), + ), + ), + (Karkatha, Female): ( + chest: ( + offset: (-9.0, -11.5, 7.0), + central: ("npc.karkatha.karkatha"), + ), + ), +}) diff --git a/assets/voxygen/voxel/crustacean_lateral_manifest.ron b/assets/voxygen/voxel/crustacean_lateral_manifest.ron new file mode 100644 index 0000000..a3af4f0 --- /dev/null +++ b/assets/voxygen/voxel/crustacean_lateral_manifest.ron @@ -0,0 +1,375 @@ + +({ + (Crab, Male): ( + arm_l: ( + offset: (-6.0, 0.5, 2.0), + lateral: ("npc.crab.crab", true), + model_index: 1, + ), + pincer_l0: ( + offset: (-9.0, 2.5, 1.0), + lateral: ("npc.crab.crab", true), + model_index: 5, + ), + pincer_l1: ( + offset: (-5.0, 4.5, 2.0), + lateral: ("npc.crab.crab", true), + model_index: 6, + ), + arm_r: ( + offset: (3.0, 0.5, 2.0), + lateral: ("npc.crab.crab", false), + model_index: 1, + ), + pincer_r0: ( + offset: (2.0, 2.5, 1.0), + lateral: ("npc.crab.crab", false), + model_index: 5, + ), + pincer_r1: ( + offset: (2.0, 4.5, 2.0), + lateral: ("npc.crab.crab", false), + model_index: 6, + ), + leg_fl: ( + offset: (-8.5, -2.5, 0.0), + lateral: ("npc.crab.crab", true), + model_index: 4, + ), + leg_cl: ( + offset: (-8.5, -2.5, 0.0), + lateral: ("npc.crab.crab", true), + model_index: 3, + ), + leg_bl: ( + offset: (-7.5, -3.0, 0.0), + lateral: ("npc.crab.crab", true), + model_index: 2, + ), + leg_fr: ( + offset: (3.5, -2.5, 0.0), + lateral: ("npc.crab.crab", false), + model_index: 4, + ), + leg_cr: ( + offset: (3.5, -2.5, 0.0), + lateral: ("npc.crab.crab", false), + model_index: 3, + ), + leg_br: ( + offset: (2.5, -3.0, 0.0), + lateral: ("npc.crab.crab", false), + model_index: 2, + ), + ), + (Crab, Female): ( + arm_l: ( + offset: (-6.0, 0.5, 2.0), + lateral: ("npc.crab.crab", true), + model_index: 1, + ), + pincer_l0: ( + offset: (-9.0, 2.5, 1.0), + lateral: ("npc.crab.crab", true), + model_index: 5, + ), + pincer_l1: ( + offset: (-5.0, 4.5, 2.0), + lateral: ("npc.crab.crab", true), + model_index: 6, + ), + arm_r: ( + offset: (3.0, 0.5, 2.0), + lateral: ("npc.crab.crab", false), + model_index: 1, + ), + pincer_r0: ( + offset: (2.0, 2.5, 1.0), + lateral: ("npc.crab.crab", false), + model_index: 5, + ), + pincer_r1: ( + offset: (2.0, 4.5, 2.0), + lateral: ("npc.crab.crab", false), + model_index: 6, + ), + leg_fl: ( + offset: (-8.5, -2.5, 0.0), + lateral: ("npc.crab.crab", true), + model_index: 4, + ), + leg_cl: ( + offset: (-8.5, -2.5, 0.0), + lateral: ("npc.crab.crab", true), + model_index: 3, + ), + leg_bl: ( + offset: (-7.5, -3.0, 0.0), + lateral: ("npc.crab.crab", true), + model_index: 2, + ), + leg_fr: ( + offset: (3.5, -2.5, 0.0), + lateral: ("npc.crab.crab", false), + model_index: 4, + ), + leg_cr: ( + offset: (3.5, -2.5, 0.0), + lateral: ("npc.crab.crab", false), + model_index: 3, + ), + leg_br: ( + offset: (2.5, -3.0, 0.0), + lateral: ("npc.crab.crab", false), + model_index: 2, + ), + ), + (SoldierCrab, Male): ( + arm_l: ( + offset: (-6.0, 2.5, 1.0), + lateral: ("npc.soldier_crab.soldier_crab", true), + model_index: 1, + ), + pincer_l0: ( + offset: (-9.0, 4.5, 1.0), + lateral: ("npc.soldier_crab.soldier_crab", true), + model_index: 5, + ), + pincer_l1: ( + offset: (-5.0, 6.5, 2.0), + lateral: ("npc.soldier_crab.soldier_crab", true), + model_index: 6, + ), + arm_r: ( + offset: (3.0, 2.5, 1.0), + lateral: ("npc.soldier_crab.soldier_crab", false), + model_index: 1, + ), + pincer_r0: ( + offset: (2.0, 4.5, 1.0), + lateral: ("npc.soldier_crab.soldier_crab", false), + model_index: 5, + ), + pincer_r1: ( + offset: (2.0, 6.5, 2.0), + lateral: ("npc.soldier_crab.soldier_crab", false), + model_index: 6, + ), + leg_fl: ( + offset: (-8.5, -2.5, 0.0), + lateral: ("npc.soldier_crab.soldier_crab", true), + model_index: 4, + ), + leg_cl: ( + offset: (-8.5, -2.5, 0.0), + lateral: ("npc.soldier_crab.soldier_crab", true), + model_index: 3, + ), + leg_bl: ( + offset: (-7.5, -3.0, 0.0), + lateral: ("npc.soldier_crab.soldier_crab", true), + model_index: 2, + ), + leg_fr: ( + offset: (3.5, -2.5, 0.0), + lateral: ("npc.soldier_crab.soldier_crab", false), + model_index: 4, + ), + leg_cr: ( + offset: (3.5, -2.5, 0.0), + lateral: ("npc.soldier_crab.soldier_crab", false), + model_index: 3, + ), + leg_br: ( + offset: (2.5, -3.0, 0.0), + lateral: ("npc.soldier_crab.soldier_crab", false), + model_index: 2, + ), + ), + (SoldierCrab, Female): ( + arm_l: ( + offset: (-6.0, 2.5, 1.0), + lateral: ("npc.soldier_crab.soldier_crab", true), + model_index: 1, + ), + pincer_l0: ( + offset: (-9.0, 4.5, 1.0), + lateral: ("npc.soldier_crab.soldier_crab", true), + model_index: 5, + ), + pincer_l1: ( + offset: (-5.0, 6.5, 2.0), + lateral: ("npc.soldier_crab.soldier_crab", true), + model_index: 6, + ), + arm_r: ( + offset: (3.0, 2.5, 1.0), + lateral: ("npc.soldier_crab.soldier_crab", false), + model_index: 1, + ), + pincer_r0: ( + offset: (2.0, 4.5, 1.0), + lateral: ("npc.soldier_crab.soldier_crab", false), + model_index: 5, + ), + pincer_r1: ( + offset: (2.0, 6.5, 2.0), + lateral: ("npc.soldier_crab.soldier_crab", false), + model_index: 6, + ), + leg_fl: ( + offset: (-8.5, -2.5, 0.0), + lateral: ("npc.soldier_crab.soldier_crab", true), + model_index: 4, + ), + leg_cl: ( + offset: (-8.5, -2.5, 0.0), + lateral: ("npc.soldier_crab.soldier_crab", true), + model_index: 3, + ), + leg_bl: ( + offset: (-7.5, -3.0, 0.0), + lateral: ("npc.soldier_crab.soldier_crab", true), + model_index: 2, + ), + leg_fr: ( + offset: (3.5, -2.5, 0.0), + lateral: ("npc.soldier_crab.soldier_crab", false), + model_index: 4, + ), + leg_cr: ( + offset: (3.5, -2.5, 0.0), + lateral: ("npc.soldier_crab.soldier_crab", false), + model_index: 3, + ), + leg_br: ( + offset: (2.5, -3.0, 0.0), + lateral: ("npc.soldier_crab.soldier_crab", false), + model_index: 2, + ), + ), + (Karkatha, Male): ( + arm_l: ( + offset: (6.0, -10.0, 12.0), + lateral: ("npc.karkatha.karkatha", true), + model_index: 1, + ), + pincer_l0: ( + offset: (14.0, -2.0, 11.0), + lateral: ("npc.karkatha.karkatha", true), + model_index: 2, + ), + pincer_l1: ( + offset: (16.0, 3.0, 7.0), + lateral: ("npc.karkatha.karkatha", true), + model_index: 3, + ), + arm_r: ( + offset: (-20.0, -10.0, 12.0), + lateral: ("npc.karkatha.karkatha", false), + model_index: 1, + ), + pincer_r0: ( + offset: (-21.0, -2.0, 10.0), + lateral: ("npc.karkatha.karkatha", false), + model_index: 4, + ), + pincer_r1: ( + offset: (-19.0, 4.0, 6.0), + lateral: ("npc.karkatha.karkatha", false), + model_index: 5, + ), + leg_fl: ( + offset: (2.0, 2.5, 0.0), + lateral: ("npc.karkatha.karkatha", true), + model_index: 6, + ), + leg_cl: ( + offset: (3.0, -4.0, 0.0), + lateral: ("npc.karkatha.karkatha", true), + model_index: 7, + ), + leg_bl: ( + offset: (-2.0, -14.0, 0.0), + lateral: ("npc.karkatha.karkatha", true), + model_index: 8, + ), + leg_fr: ( + offset: (-12.0, 1.0, 0.0), + lateral: ("npc.karkatha.karkatha", false), + model_index: 6, + ), + leg_cr: ( + offset: (-15.0, -4.0, 0.0), + lateral: ("npc.karkatha.karkatha", false), + model_index: 7, + ), + leg_br: ( + offset: (-8.0, -14.0, 0.0), + lateral: ("npc.karkatha.karkatha", false), + model_index: 8, + ), + ), + (Karkatha, Female): ( + arm_l: ( + offset: (6.0, -10.0, 12.0), + lateral: ("npc.karkatha.karkatha", true), + model_index: 1, + ), + pincer_l0: ( + offset: (14.0, -2.0, 11.0), + lateral: ("npc.karkatha.karkatha", true), + model_index: 2, + ), + pincer_l1: ( + offset: (16.0, 3.0, 7.0), + lateral: ("npc.karkatha.karkatha", true), + model_index: 3, + ), + arm_r: ( + offset: (-20.0, -10.0, 12.0), + lateral: ("npc.karkatha.karkatha", false), + model_index: 1, + ), + pincer_r0: ( + offset: (-21.0, -2.0, 10.0), + lateral: ("npc.karkatha.karkatha", false), + model_index: 4, + ), + pincer_r1: ( + offset: (-19.0, 4.0, 6.0), + lateral: ("npc.karkatha.karkatha", false), + model_index: 5, + ), + leg_fl: ( + offset: (2.0, 2.5, 0.0), + lateral: ("npc.karkatha.karkatha", true), + model_index: 6, + ), + leg_cl: ( + offset: (3.0, -4.0, 0.0), + lateral: ("npc.karkatha.karkatha", true), + model_index: 7, + ), + leg_bl: ( + offset: (-2.0, -14.0, 0.0), + lateral: ("npc.karkatha.karkatha", true), + model_index: 8, + ), + leg_fr: ( + offset: (-12.0, 1.0, 0.0), + lateral: ("npc.karkatha.karkatha", false), + model_index: 6, + ), + leg_cr: ( + offset: (-15.0, -4.0, 0.0), + lateral: ("npc.karkatha.karkatha", false), + model_index: 7, + ), + leg_br: ( + offset: (-8.0, -14.0, 0.0), + lateral: ("npc.karkatha.karkatha", false), + model_index: 8, + ), + ), +}) diff --git a/assets/voxygen/voxel/dragon_central_manifest.ron b/assets/voxygen/voxel/dragon_central_manifest.ron new file mode 100644 index 0000000..e19af6f --- /dev/null +++ b/assets/voxygen/voxel/dragon_central_manifest.ron @@ -0,0 +1,62 @@ +({ + (Reddragon, Male): ( + upper: ( + offset: (-6.5, -2.0, -6.0), + central: ("npc.reddragon.male.head_upper"), + ), + lower: ( + offset: (-2.5, -2.0, -5.0), + central: ("npc.reddragon.male.head_lower"), + ), + jaw: ( + offset: (-3.5, -2.0, -1.5), + central: ("npc.reddragon.male.jaw"), + ), + chest_front: ( + offset: (-6.5, -6.0, -7.5), + central: ("npc.reddragon.male.chest_front"), + ), + chest_rear: ( + offset: (-6.5, -13.0, -7.0), + central: ("npc.reddragon.male.chest_rear"), + ), + tail_front: ( + offset: (-2.5, -12.0, -3.5), + central: ("npc.reddragon.male.tail_front"), + ), + tail_rear: ( + offset: (-3.5, -16.0, -3.0), + central: ("npc.reddragon.male.tail_rear"), + ) + ), + (Reddragon, Female): ( + upper: ( + offset: (-6.5, -2.0, -6.0), + central: ("npc.reddragon.male.head_upper"), + ), + lower: ( + offset: (-2.5, -2.0, -5.0), + central: ("npc.reddragon.male.head_lower"), + ), + jaw: ( + offset: (-3.5, -2.0, -1.5), + central: ("npc.reddragon.male.jaw"), + ), + chest_front: ( + offset: (-6.5, -6.0, -7.5), + central: ("npc.reddragon.male.chest_front"), + ), + chest_rear: ( + offset: (-6.5, -13.0, -7.0), + central: ("npc.reddragon.male.chest_rear"), + ), + tail_front: ( + offset: (-2.5, -12.0, -3.5), + central: ("npc.reddragon.male.tail_front"), + ), + tail_rear: ( + offset: (-3.5, -16.0, -3.0), + central: ("npc.reddragon.male.tail_rear"), + ) + ), +}) diff --git a/assets/voxygen/voxel/dragon_lateral_manifest.ron b/assets/voxygen/voxel/dragon_lateral_manifest.ron new file mode 100644 index 0000000..d7d7319 --- /dev/null +++ b/assets/voxygen/voxel/dragon_lateral_manifest.ron @@ -0,0 +1,70 @@ +({ + (Reddragon, Male): ( + wing_in_l: ( + offset: (-24.0, -3.0, 0.0), + lateral: ("npc.reddragon.male.wing_in_l"), + ), + wing_in_r: ( + offset: (0.0, -3.0, 0.0), + lateral: ("npc.reddragon.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-29.0, -3.0, -4.0), + lateral: ("npc.reddragon.male.wing_out_l"), + ), + wing_out_r: ( + offset: (0.0, -3.0, -4.0), + lateral: ("npc.reddragon.male.wing_out_r"), + ), + foot_fl: ( + offset: (-5.5, -4.0, -1.5), + lateral: ("npc.reddragon.male.foot_fl"), + ), + foot_fr: ( + offset: (-5.5, -4.0, -1.5), + lateral: ("npc.reddragon.male.foot_fr"), + ), + foot_bl: ( + offset: (-5.5, -4.0, -3.0), + lateral: ("npc.reddragon.male.foot_bl"), + ), + foot_br: ( + offset: (-5.5, -4.0, -3.0), + lateral: ("npc.reddragon.male.foot_br"), + ) + ), + (Reddragon, Female): ( + wing_in_l: ( + offset: (-24.0, -3.0, 0.0), + lateral: ("npc.reddragon.male.wing_in_l"), + ), + wing_in_r: ( + offset: (0.0, -3.0, 0.0), + lateral: ("npc.reddragon.male.wing_in_r"), + ), + wing_out_l: ( + offset: (-29.0, -3.0, -4.0), + lateral: ("npc.reddragon.male.wing_out_l"), + ), + wing_out_r: ( + offset: (0.0, -3.0, -4.0), + lateral: ("npc.reddragon.male.wing_out_r"), + ), + foot_fl: ( + offset: (-5.5, -4.0, -1.5), + lateral: ("npc.reddragon.male.foot_fl"), + ), + foot_fr: ( + offset: (-5.5, -4.0, -1.5), + lateral: ("npc.reddragon.male.foot_fr"), + ), + foot_bl: ( + offset: (-5.5, -4.0, -3.0), + lateral: ("npc.reddragon.male.foot_bl"), + ), + foot_br: ( + offset: (-5.5, -4.0, -3.0), + lateral: ("npc.reddragon.male.foot_br"), + ) + ), +}) \ No newline at end of file diff --git a/assets/voxygen/voxel/figure/accessory/danari/horns-0.vox b/assets/voxygen/voxel/figure/accessory/danari/horns-0.vox new file mode 100755 index 0000000..e78a877 Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/danari/horns-0.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/danari/horns-1.vox b/assets/voxygen/voxel/figure/accessory/danari/horns-1.vox new file mode 100755 index 0000000..20ac7ff Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/danari/horns-1.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/danari/horns-2.vox b/assets/voxygen/voxel/figure/accessory/danari/horns-2.vox new file mode 100755 index 0000000..1b52409 Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/danari/horns-2.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/danari/horns-3.vox b/assets/voxygen/voxel/figure/accessory/danari/horns-3.vox new file mode 100755 index 0000000..9299cbc Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/danari/horns-3.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/danari/horns-4.vox b/assets/voxygen/voxel/figure/accessory/danari/horns-4.vox new file mode 100755 index 0000000..526943a Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/danari/horns-4.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/danari/horns-5.vox b/assets/voxygen/voxel/figure/accessory/danari/horns-5.vox new file mode 100755 index 0000000..35bddcb Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/danari/horns-5.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/danari/horns-6.vox b/assets/voxygen/voxel/figure/accessory/danari/horns-6.vox new file mode 100755 index 0000000..d09e07a Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/danari/horns-6.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/draugr/female_eyepatch.vox b/assets/voxygen/voxel/figure/accessory/draugr/female_eyepatch.vox new file mode 100755 index 0000000..d76cb6d Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/draugr/female_eyepatch.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/draugr/male_eyepatch.vox b/assets/voxygen/voxel/figure/accessory/draugr/male_eyepatch.vox new file mode 100755 index 0000000..bfaee2d Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/draugr/male_eyepatch.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/dwarf/earring-0.vox b/assets/voxygen/voxel/figure/accessory/dwarf/earring-0.vox new file mode 100644 index 0000000..2e7bbf2 Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/dwarf/earring-0.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/dwarf/earring-1.vox b/assets/voxygen/voxel/figure/accessory/dwarf/earring-1.vox new file mode 100644 index 0000000..114aa5b Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/dwarf/earring-1.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/dwarf/earrings-0.vox b/assets/voxygen/voxel/figure/accessory/dwarf/earrings-0.vox new file mode 100644 index 0000000..62a022b Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/dwarf/earrings-0.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/dwarf/earrings-1.vox b/assets/voxygen/voxel/figure/accessory/dwarf/earrings-1.vox new file mode 100644 index 0000000..c914ffb Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/dwarf/earrings-1.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/dwarf/earrings-2.vox b/assets/voxygen/voxel/figure/accessory/dwarf/earrings-2.vox new file mode 100644 index 0000000..bac7f5d Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/dwarf/earrings-2.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/dwarf/earrings-3.vox b/assets/voxygen/voxel/figure/accessory/dwarf/earrings-3.vox new file mode 100644 index 0000000..aba6ec7 Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/dwarf/earrings-3.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/dwarf/warpaint-0.vox b/assets/voxygen/voxel/figure/accessory/dwarf/warpaint-0.vox new file mode 100644 index 0000000..ea56726 Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/dwarf/warpaint-0.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/elf/earrings-0.vox b/assets/voxygen/voxel/figure/accessory/elf/earrings-0.vox new file mode 100755 index 0000000..04491e5 Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/elf/earrings-0.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/elf/earrings-1.vox b/assets/voxygen/voxel/figure/accessory/elf/earrings-1.vox new file mode 100755 index 0000000..b985cff Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/elf/earrings-1.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/elf/earrings-2.vox b/assets/voxygen/voxel/figure/accessory/elf/earrings-2.vox new file mode 100755 index 0000000..fccae21 Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/elf/earrings-2.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/elf/earrings-3.vox b/assets/voxygen/voxel/figure/accessory/elf/earrings-3.vox new file mode 100755 index 0000000..de73f22 Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/elf/earrings-3.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/elf/headband-0.vox b/assets/voxygen/voxel/figure/accessory/elf/headband-0.vox new file mode 100644 index 0000000..03a97d6 Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/elf/headband-0.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/orc/earring-female-0.vox b/assets/voxygen/voxel/figure/accessory/orc/earring-female-0.vox new file mode 100755 index 0000000..568dfbb Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/orc/earring-female-0.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/orc/earring-female-1.vox b/assets/voxygen/voxel/figure/accessory/orc/earring-female-1.vox new file mode 100755 index 0000000..515bd81 Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/orc/earring-female-1.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/orc/earring-female-2.vox b/assets/voxygen/voxel/figure/accessory/orc/earring-female-2.vox new file mode 100755 index 0000000..0448e5e Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/orc/earring-female-2.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/orc/earring-female-3.vox b/assets/voxygen/voxel/figure/accessory/orc/earring-female-3.vox new file mode 100755 index 0000000..4d9707a Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/orc/earring-female-3.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/orc/earring-male-0.vox b/assets/voxygen/voxel/figure/accessory/orc/earring-male-0.vox new file mode 100644 index 0000000..62c2938 Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/orc/earring-male-0.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/orc/earring-male-1.vox b/assets/voxygen/voxel/figure/accessory/orc/earring-male-1.vox new file mode 100755 index 0000000..e6bafd8 Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/orc/earring-male-1.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/orc/earring-male-2.vox b/assets/voxygen/voxel/figure/accessory/orc/earring-male-2.vox new file mode 100755 index 0000000..bc321f2 Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/orc/earring-male-2.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/orc/male_eyepatch.vox b/assets/voxygen/voxel/figure/accessory/orc/male_eyepatch.vox new file mode 100644 index 0000000..d3abcfe Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/orc/male_eyepatch.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/orc/teeth-0.vox b/assets/voxygen/voxel/figure/accessory/orc/teeth-0.vox new file mode 100644 index 0000000..accca10 Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/orc/teeth-0.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/orc/teeth-1.vox b/assets/voxygen/voxel/figure/accessory/orc/teeth-1.vox new file mode 100644 index 0000000..c70e3f5 Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/orc/teeth-1.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/orc/teeth-2.vox b/assets/voxygen/voxel/figure/accessory/orc/teeth-2.vox new file mode 100644 index 0000000..cb08b76 Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/orc/teeth-2.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/orc/teeth-3.vox b/assets/voxygen/voxel/figure/accessory/orc/teeth-3.vox new file mode 100755 index 0000000..f2abc94 Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/orc/teeth-3.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/orc/warpaint-female-0.vox b/assets/voxygen/voxel/figure/accessory/orc/warpaint-female-0.vox new file mode 100755 index 0000000..c6e296a Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/orc/warpaint-female-0.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/orc/warpaint-female-1.vox b/assets/voxygen/voxel/figure/accessory/orc/warpaint-female-1.vox new file mode 100755 index 0000000..c755c70 Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/orc/warpaint-female-1.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/orc/warpaint-female-2.vox b/assets/voxygen/voxel/figure/accessory/orc/warpaint-female-2.vox new file mode 100644 index 0000000..dfd41e4 Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/orc/warpaint-female-2.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/orc/warpaint-female-3.vox b/assets/voxygen/voxel/figure/accessory/orc/warpaint-female-3.vox new file mode 100755 index 0000000..e4a4503 Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/orc/warpaint-female-3.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/orc/warpaint-male-0.vox b/assets/voxygen/voxel/figure/accessory/orc/warpaint-male-0.vox new file mode 100755 index 0000000..074fd8e Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/orc/warpaint-male-0.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/orc/warpaint-male-1.vox b/assets/voxygen/voxel/figure/accessory/orc/warpaint-male-1.vox new file mode 100755 index 0000000..1ec7b77 Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/orc/warpaint-male-1.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/orc/warpaint-male-2.vox b/assets/voxygen/voxel/figure/accessory/orc/warpaint-male-2.vox new file mode 100755 index 0000000..9ccc958 Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/orc/warpaint-male-2.vox differ diff --git a/assets/voxygen/voxel/figure/accessory/orc/warpaint-male-3.vox b/assets/voxygen/voxel/figure/accessory/orc/warpaint-male-3.vox new file mode 100755 index 0000000..08f3504 Binary files /dev/null and b/assets/voxygen/voxel/figure/accessory/orc/warpaint-male-3.vox differ diff --git a/assets/voxygen/voxel/figure/beard/danari/danari-0.vox b/assets/voxygen/voxel/figure/beard/danari/danari-0.vox new file mode 100755 index 0000000..38fbd47 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/danari/danari-0.vox differ diff --git a/assets/voxygen/voxel/figure/beard/danari/danari-1.vox b/assets/voxygen/voxel/figure/beard/danari/danari-1.vox new file mode 100755 index 0000000..8ac4cf6 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/danari/danari-1.vox differ diff --git a/assets/voxygen/voxel/figure/beard/danari/danari-10.vox b/assets/voxygen/voxel/figure/beard/danari/danari-10.vox new file mode 100755 index 0000000..5af4e69 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/danari/danari-10.vox differ diff --git a/assets/voxygen/voxel/figure/beard/danari/danari-11.vox b/assets/voxygen/voxel/figure/beard/danari/danari-11.vox new file mode 100755 index 0000000..6edb235 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/danari/danari-11.vox differ diff --git a/assets/voxygen/voxel/figure/beard/danari/danari-12.vox b/assets/voxygen/voxel/figure/beard/danari/danari-12.vox new file mode 100755 index 0000000..aadaf2a Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/danari/danari-12.vox differ diff --git a/assets/voxygen/voxel/figure/beard/danari/danari-13.vox b/assets/voxygen/voxel/figure/beard/danari/danari-13.vox new file mode 100755 index 0000000..286911b Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/danari/danari-13.vox differ diff --git a/assets/voxygen/voxel/figure/beard/danari/danari-14.vox b/assets/voxygen/voxel/figure/beard/danari/danari-14.vox new file mode 100755 index 0000000..9f716dc Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/danari/danari-14.vox differ diff --git a/assets/voxygen/voxel/figure/beard/danari/danari-2.vox b/assets/voxygen/voxel/figure/beard/danari/danari-2.vox new file mode 100755 index 0000000..7a730ad Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/danari/danari-2.vox differ diff --git a/assets/voxygen/voxel/figure/beard/danari/danari-3.vox b/assets/voxygen/voxel/figure/beard/danari/danari-3.vox new file mode 100755 index 0000000..f81de9f Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/danari/danari-3.vox differ diff --git a/assets/voxygen/voxel/figure/beard/danari/danari-4.vox b/assets/voxygen/voxel/figure/beard/danari/danari-4.vox new file mode 100755 index 0000000..1836149 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/danari/danari-4.vox differ diff --git a/assets/voxygen/voxel/figure/beard/danari/danari-5.vox b/assets/voxygen/voxel/figure/beard/danari/danari-5.vox new file mode 100755 index 0000000..526da9b Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/danari/danari-5.vox differ diff --git a/assets/voxygen/voxel/figure/beard/danari/danari-6.vox b/assets/voxygen/voxel/figure/beard/danari/danari-6.vox new file mode 100755 index 0000000..d1eb3e0 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/danari/danari-6.vox differ diff --git a/assets/voxygen/voxel/figure/beard/danari/danari-7.vox b/assets/voxygen/voxel/figure/beard/danari/danari-7.vox new file mode 100755 index 0000000..3030078 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/danari/danari-7.vox differ diff --git a/assets/voxygen/voxel/figure/beard/danari/danari-8.vox b/assets/voxygen/voxel/figure/beard/danari/danari-8.vox new file mode 100755 index 0000000..9ccb47c Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/danari/danari-8.vox differ diff --git a/assets/voxygen/voxel/figure/beard/danari/danari-9.vox b/assets/voxygen/voxel/figure/beard/danari/danari-9.vox new file mode 100755 index 0000000..7d5092c Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/danari/danari-9.vox differ diff --git a/assets/voxygen/voxel/figure/beard/draugr/male-0.vox b/assets/voxygen/voxel/figure/beard/draugr/male-0.vox new file mode 100755 index 0000000..60964ad Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/draugr/male-0.vox differ diff --git a/assets/voxygen/voxel/figure/beard/draugr/male-1.vox b/assets/voxygen/voxel/figure/beard/draugr/male-1.vox new file mode 100755 index 0000000..830caa8 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/draugr/male-1.vox differ diff --git a/assets/voxygen/voxel/figure/beard/draugr/male-2.vox b/assets/voxygen/voxel/figure/beard/draugr/male-2.vox new file mode 100755 index 0000000..dbf86d1 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/draugr/male-2.vox differ diff --git a/assets/voxygen/voxel/figure/beard/draugr/male-3.vox b/assets/voxygen/voxel/figure/beard/draugr/male-3.vox new file mode 100755 index 0000000..f5eb19e Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/draugr/male-3.vox differ diff --git a/assets/voxygen/voxel/figure/beard/draugr/male-4.vox b/assets/voxygen/voxel/figure/beard/draugr/male-4.vox new file mode 100755 index 0000000..68d0417 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/draugr/male-4.vox differ diff --git a/assets/voxygen/voxel/figure/beard/dwarf/danari-11.vox b/assets/voxygen/voxel/figure/beard/dwarf/danari-11.vox new file mode 100644 index 0000000..ca01594 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/dwarf/danari-11.vox differ diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-0.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-0.vox new file mode 100755 index 0000000..c200c3a Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-0.vox differ diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-1.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-1.vox new file mode 100755 index 0000000..452c6d4 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-1.vox differ diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-10.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-10.vox new file mode 100755 index 0000000..246f14c Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-10.vox differ diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-11.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-11.vox new file mode 100755 index 0000000..7aacd08 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-11.vox differ diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-12.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-12.vox new file mode 100755 index 0000000..27d6e4a Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-12.vox differ diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-13.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-13.vox new file mode 100755 index 0000000..bd9c745 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-13.vox differ diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-14.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-14.vox new file mode 100755 index 0000000..44da7d9 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-14.vox differ diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-15.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-15.vox new file mode 100755 index 0000000..a2780ba Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-15.vox differ diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-16.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-16.vox new file mode 100755 index 0000000..78f8738 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-16.vox differ diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-17.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-17.vox new file mode 100755 index 0000000..bd528f2 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-17.vox differ diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-18.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-18.vox new file mode 100755 index 0000000..609d546 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-18.vox differ diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-19.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-19.vox new file mode 100755 index 0000000..25e33b2 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-19.vox differ diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-2.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-2.vox new file mode 100755 index 0000000..6d61ac4 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-2.vox differ diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-20.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-20.vox new file mode 100755 index 0000000..6121f60 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-20.vox differ diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-21.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-21.vox new file mode 100755 index 0000000..975f51a Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-21.vox differ diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-22.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-22.vox new file mode 100755 index 0000000..fda98ee Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-22.vox differ diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-3.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-3.vox new file mode 100755 index 0000000..5d8e659 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-3.vox differ diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-4.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-4.vox new file mode 100755 index 0000000..3af9f81 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-4.vox differ diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-5.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-5.vox new file mode 100755 index 0000000..3796760 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-5.vox differ diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-6.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-6.vox new file mode 100755 index 0000000..3cdd39d Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-6.vox differ diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-7.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-7.vox new file mode 100755 index 0000000..65a51be Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-7.vox differ diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-8.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-8.vox new file mode 100755 index 0000000..748d497 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-8.vox differ diff --git a/assets/voxygen/voxel/figure/beard/dwarf/dwarf-9.vox b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-9.vox new file mode 100755 index 0000000..20588cf Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/dwarf/dwarf-9.vox differ diff --git a/assets/voxygen/voxel/figure/beard/elf/elf-0.vox b/assets/voxygen/voxel/figure/beard/elf/elf-0.vox new file mode 100755 index 0000000..ce1e5c9 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/elf/elf-0.vox differ diff --git a/assets/voxygen/voxel/figure/beard/elf/elf-1.vox b/assets/voxygen/voxel/figure/beard/elf/elf-1.vox new file mode 100755 index 0000000..76e9b9e Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/elf/elf-1.vox differ diff --git a/assets/voxygen/voxel/figure/beard/elf/elf-2.vox b/assets/voxygen/voxel/figure/beard/elf/elf-2.vox new file mode 100755 index 0000000..4fcee20 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/elf/elf-2.vox differ diff --git a/assets/voxygen/voxel/figure/beard/elf/elf-3.vox b/assets/voxygen/voxel/figure/beard/elf/elf-3.vox new file mode 100755 index 0000000..c3a5435 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/elf/elf-3.vox differ diff --git a/assets/voxygen/voxel/figure/beard/elf/elf-4.vox b/assets/voxygen/voxel/figure/beard/elf/elf-4.vox new file mode 100755 index 0000000..602c0fa Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/elf/elf-4.vox differ diff --git a/assets/voxygen/voxel/figure/beard/elf/elf-5.vox b/assets/voxygen/voxel/figure/beard/elf/elf-5.vox new file mode 100755 index 0000000..ffe73ac Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/elf/elf-5.vox differ diff --git a/assets/voxygen/voxel/figure/beard/elf/elf-6.vox b/assets/voxygen/voxel/figure/beard/elf/elf-6.vox new file mode 100755 index 0000000..c6cc429 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/elf/elf-6.vox differ diff --git a/assets/voxygen/voxel/figure/beard/human/human-0.vox b/assets/voxygen/voxel/figure/beard/human/human-0.vox new file mode 100755 index 0000000..6e3deee Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/human/human-0.vox differ diff --git a/assets/voxygen/voxel/figure/beard/human/human-1.vox b/assets/voxygen/voxel/figure/beard/human/human-1.vox new file mode 100755 index 0000000..ee046e4 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/human/human-1.vox differ diff --git a/assets/voxygen/voxel/figure/beard/human/human-2.vox b/assets/voxygen/voxel/figure/beard/human/human-2.vox new file mode 100755 index 0000000..1e25448 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/human/human-2.vox differ diff --git a/assets/voxygen/voxel/figure/beard/human/human-3.vox b/assets/voxygen/voxel/figure/beard/human/human-3.vox new file mode 100644 index 0000000..13b7987 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/human/human-3.vox differ diff --git a/assets/voxygen/voxel/figure/beard/human/human-4.vox b/assets/voxygen/voxel/figure/beard/human/human-4.vox new file mode 100755 index 0000000..fdf5d74 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/human/human-4.vox differ diff --git a/assets/voxygen/voxel/figure/beard/human/human-5.vox b/assets/voxygen/voxel/figure/beard/human/human-5.vox new file mode 100644 index 0000000..ea39748 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/human/human-5.vox differ diff --git a/assets/voxygen/voxel/figure/beard/human/human-6.vox b/assets/voxygen/voxel/figure/beard/human/human-6.vox new file mode 100755 index 0000000..b56416a Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/human/human-6.vox differ diff --git a/assets/voxygen/voxel/figure/beard/human/human-7.vox b/assets/voxygen/voxel/figure/beard/human/human-7.vox new file mode 100644 index 0000000..b55c9c5 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/human/human-7.vox differ diff --git a/assets/voxygen/voxel/figure/beard/human/human-8.vox b/assets/voxygen/voxel/figure/beard/human/human-8.vox new file mode 100755 index 0000000..49e2a6f Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/human/human-8.vox differ diff --git a/assets/voxygen/voxel/figure/beard/orc/orc-0.vox b/assets/voxygen/voxel/figure/beard/orc/orc-0.vox new file mode 100755 index 0000000..918110c Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/orc/orc-0.vox differ diff --git a/assets/voxygen/voxel/figure/beard/orc/orc-1.vox b/assets/voxygen/voxel/figure/beard/orc/orc-1.vox new file mode 100644 index 0000000..c9f19e1 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/orc/orc-1.vox differ diff --git a/assets/voxygen/voxel/figure/beard/orc/orc-2.vox b/assets/voxygen/voxel/figure/beard/orc/orc-2.vox new file mode 100755 index 0000000..12a76cf Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/orc/orc-2.vox differ diff --git a/assets/voxygen/voxel/figure/beard/orc/orc-3.vox b/assets/voxygen/voxel/figure/beard/orc/orc-3.vox new file mode 100644 index 0000000..4be6035 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/orc/orc-3.vox differ diff --git a/assets/voxygen/voxel/figure/beard/orc/orc-4.vox b/assets/voxygen/voxel/figure/beard/orc/orc-4.vox new file mode 100755 index 0000000..049489a Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/orc/orc-4.vox differ diff --git a/assets/voxygen/voxel/figure/beard/orc/orc-5.vox b/assets/voxygen/voxel/figure/beard/orc/orc-5.vox new file mode 100755 index 0000000..d57edf7 Binary files /dev/null and b/assets/voxygen/voxel/figure/beard/orc/orc-5.vox differ diff --git a/assets/voxygen/voxel/figure/body/belt_female.vox b/assets/voxygen/voxel/figure/body/belt_female.vox new file mode 100644 index 0000000..acc11b6 Binary files /dev/null and b/assets/voxygen/voxel/figure/body/belt_female.vox differ diff --git a/assets/voxygen/voxel/figure/body/belt_male.vox b/assets/voxygen/voxel/figure/body/belt_male.vox new file mode 100644 index 0000000..ebb1390 Binary files /dev/null and b/assets/voxygen/voxel/figure/body/belt_male.vox differ diff --git a/assets/voxygen/voxel/figure/body/chest.vox b/assets/voxygen/voxel/figure/body/chest.vox new file mode 100644 index 0000000..383d86f Binary files /dev/null and b/assets/voxygen/voxel/figure/body/chest.vox differ diff --git a/assets/voxygen/voxel/figure/body/chest_female.vox b/assets/voxygen/voxel/figure/body/chest_female.vox new file mode 100644 index 0000000..a8d9cf0 Binary files /dev/null and b/assets/voxygen/voxel/figure/body/chest_female.vox differ diff --git a/assets/voxygen/voxel/figure/body/chest_male.vox b/assets/voxygen/voxel/figure/body/chest_male.vox new file mode 100644 index 0000000..5f2f3cf Binary files /dev/null and b/assets/voxygen/voxel/figure/body/chest_male.vox differ diff --git a/assets/voxygen/voxel/figure/body/foot.vox b/assets/voxygen/voxel/figure/body/foot.vox new file mode 100644 index 0000000..e3eb1a2 Binary files /dev/null and b/assets/voxygen/voxel/figure/body/foot.vox differ diff --git a/assets/voxygen/voxel/figure/body/hand.vox b/assets/voxygen/voxel/figure/body/hand.vox new file mode 100644 index 0000000..22c7597 Binary files /dev/null and b/assets/voxygen/voxel/figure/body/hand.vox differ diff --git a/assets/voxygen/voxel/figure/body/new.vox b/assets/voxygen/voxel/figure/body/new.vox new file mode 100644 index 0000000..c0d87e4 Binary files /dev/null and b/assets/voxygen/voxel/figure/body/new.vox differ diff --git a/assets/voxygen/voxel/figure/body/pants_female.vox b/assets/voxygen/voxel/figure/body/pants_female.vox new file mode 100644 index 0000000..03b7463 Binary files /dev/null and b/assets/voxygen/voxel/figure/body/pants_female.vox differ diff --git a/assets/voxygen/voxel/figure/body/pants_male.vox b/assets/voxygen/voxel/figure/body/pants_male.vox new file mode 100644 index 0000000..29728fb Binary files /dev/null and b/assets/voxygen/voxel/figure/body/pants_male.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/draugr/female-0.vox b/assets/voxygen/voxel/figure/eyes/draugr/female-0.vox new file mode 100644 index 0000000..df7f99a Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/draugr/female-0.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/draugr/female-1.vox b/assets/voxygen/voxel/figure/eyes/draugr/female-1.vox new file mode 100644 index 0000000..5e7d56c Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/draugr/female-1.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/draugr/female-2.vox b/assets/voxygen/voxel/figure/eyes/draugr/female-2.vox new file mode 100644 index 0000000..d208777 Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/draugr/female-2.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/draugr/male-0.vox b/assets/voxygen/voxel/figure/eyes/draugr/male-0.vox new file mode 100755 index 0000000..5968a48 Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/draugr/male-0.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/draugr/male-1.vox b/assets/voxygen/voxel/figure/eyes/draugr/male-1.vox new file mode 100755 index 0000000..32145ce Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/draugr/male-1.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/draugr/male-2.vox b/assets/voxygen/voxel/figure/eyes/draugr/male-2.vox new file mode 100755 index 0000000..c367b24 Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/draugr/male-2.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/draugr/male-3.vox b/assets/voxygen/voxel/figure/eyes/draugr/male-3.vox new file mode 100755 index 0000000..14d10c5 Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/draugr/male-3.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/draugr/male-4.vox b/assets/voxygen/voxel/figure/eyes/draugr/male-4.vox new file mode 100755 index 0000000..eb1854d Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/draugr/male-4.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/draugr/male-5.vox b/assets/voxygen/voxel/figure/eyes/draugr/male-5.vox new file mode 100755 index 0000000..652731f Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/draugr/male-5.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/draugr/male-6.vox b/assets/voxygen/voxel/figure/eyes/draugr/male-6.vox new file mode 100755 index 0000000..dd5eeee Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/draugr/male-6.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/draugr/male-7.vox b/assets/voxygen/voxel/figure/eyes/draugr/male-7.vox new file mode 100755 index 0000000..30aa0e5 Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/draugr/male-7.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/elf/male-0.vox b/assets/voxygen/voxel/figure/eyes/elf/male-0.vox new file mode 100644 index 0000000..950a93b Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/elf/male-0.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/general/female_as_hair-0.vox b/assets/voxygen/voxel/figure/eyes/general/female_as_hair-0.vox new file mode 100644 index 0000000..0b808e3 Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/general/female_as_hair-0.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/general/female_blind-0.vox b/assets/voxygen/voxel/figure/eyes/general/female_blind-0.vox new file mode 100644 index 0000000..0d8ad99 Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/general/female_blind-0.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/general/female_default-0.vox b/assets/voxygen/voxel/figure/eyes/general/female_default-0.vox new file mode 100644 index 0000000..9e66726 Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/general/female_default-0.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/general/female_heterochromia-0.vox b/assets/voxygen/voxel/figure/eyes/general/female_heterochromia-0.vox new file mode 100644 index 0000000..e3d7a58 Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/general/female_heterochromia-0.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/general/female_scar-0.vox b/assets/voxygen/voxel/figure/eyes/general/female_scar-0.vox new file mode 100644 index 0000000..0c3a904 Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/general/female_scar-0.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/general/female_styled-0.vox b/assets/voxygen/voxel/figure/eyes/general/female_styled-0.vox new file mode 100644 index 0000000..8676104 Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/general/female_styled-0.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/general/male_as_hair-0.vox b/assets/voxygen/voxel/figure/eyes/general/male_as_hair-0.vox new file mode 100644 index 0000000..09a0784 Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/general/male_as_hair-0.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/general/male_blind-0.vox b/assets/voxygen/voxel/figure/eyes/general/male_blind-0.vox new file mode 100644 index 0000000..e1da09f Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/general/male_blind-0.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/general/male_brow_col-0.vox b/assets/voxygen/voxel/figure/eyes/general/male_brow_col-0.vox new file mode 100644 index 0000000..b6c0794 Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/general/male_brow_col-0.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/general/male_bushy-0.vox b/assets/voxygen/voxel/figure/eyes/general/male_bushy-0.vox new file mode 100644 index 0000000..a57f587 Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/general/male_bushy-0.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/general/male_bushy-1.vox b/assets/voxygen/voxel/figure/eyes/general/male_bushy-1.vox new file mode 100755 index 0000000..44ead71 Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/general/male_bushy-1.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/general/male_default-0.vox b/assets/voxygen/voxel/figure/eyes/general/male_default-0.vox new file mode 100644 index 0000000..4ee582c Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/general/male_default-0.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/general/male_heterochromia-0.vox b/assets/voxygen/voxel/figure/eyes/general/male_heterochromia-0.vox new file mode 100644 index 0000000..19e9f90 Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/general/male_heterochromia-0.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/general/male_old.vox b/assets/voxygen/voxel/figure/eyes/general/male_old.vox new file mode 100644 index 0000000..3adfe40 Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/general/male_old.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/general/male_old_blind.vox b/assets/voxygen/voxel/figure/eyes/general/male_old_blind.vox new file mode 100644 index 0000000..bf73c7a Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/general/male_old_blind.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/general/male_scar-0.vox b/assets/voxygen/voxel/figure/eyes/general/male_scar-0.vox new file mode 100644 index 0000000..928ff5a Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/general/male_scar-0.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/human/female-0.vox b/assets/voxygen/voxel/figure/eyes/human/female-0.vox new file mode 100644 index 0000000..9e66726 Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/human/female-0.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/human/male-0.vox b/assets/voxygen/voxel/figure/eyes/human/male-0.vox new file mode 100644 index 0000000..b6c0794 Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/human/male-0.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/human/male-1.vox b/assets/voxygen/voxel/figure/eyes/human/male-1.vox new file mode 100644 index 0000000..27d0623 Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/human/male-1.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/orc/male-0.vox b/assets/voxygen/voxel/figure/eyes/orc/male-0.vox new file mode 100644 index 0000000..597553b Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/orc/male-0.vox differ diff --git a/assets/voxygen/voxel/figure/eyes/orc/male-1.vox b/assets/voxygen/voxel/figure/eyes/orc/male-1.vox new file mode 100644 index 0000000..efb6488 Binary files /dev/null and b/assets/voxygen/voxel/figure/eyes/orc/male-1.vox differ diff --git a/assets/voxygen/voxel/figure/hair/danari/bald.vox b/assets/voxygen/voxel/figure/hair/danari/bald.vox new file mode 100755 index 0000000..ce9f9a9 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/bald.vox differ diff --git a/assets/voxygen/voxel/figure/hair/danari/female-0.vox b/assets/voxygen/voxel/figure/hair/danari/female-0.vox new file mode 100755 index 0000000..f57dec6 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/female-0.vox differ diff --git a/assets/voxygen/voxel/figure/hair/danari/female-1.vox b/assets/voxygen/voxel/figure/hair/danari/female-1.vox new file mode 100755 index 0000000..3e8f3dd Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/female-1.vox differ diff --git a/assets/voxygen/voxel/figure/hair/danari/female-10.vox b/assets/voxygen/voxel/figure/hair/danari/female-10.vox new file mode 100755 index 0000000..0aa393f Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/female-10.vox differ diff --git a/assets/voxygen/voxel/figure/hair/danari/female-11.vox b/assets/voxygen/voxel/figure/hair/danari/female-11.vox new file mode 100755 index 0000000..230275a Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/female-11.vox differ diff --git a/assets/voxygen/voxel/figure/hair/danari/female-12.vox b/assets/voxygen/voxel/figure/hair/danari/female-12.vox new file mode 100755 index 0000000..96bb562 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/female-12.vox differ diff --git a/assets/voxygen/voxel/figure/hair/danari/female-13.vox b/assets/voxygen/voxel/figure/hair/danari/female-13.vox new file mode 100755 index 0000000..4da72cc Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/female-13.vox differ diff --git a/assets/voxygen/voxel/figure/hair/danari/female-14.vox b/assets/voxygen/voxel/figure/hair/danari/female-14.vox new file mode 100755 index 0000000..003a49c Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/female-14.vox differ diff --git a/assets/voxygen/voxel/figure/hair/danari/female-2.vox b/assets/voxygen/voxel/figure/hair/danari/female-2.vox new file mode 100755 index 0000000..696dcb6 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/female-2.vox differ diff --git a/assets/voxygen/voxel/figure/hair/danari/female-3.vox b/assets/voxygen/voxel/figure/hair/danari/female-3.vox new file mode 100755 index 0000000..46b795c Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/female-3.vox differ diff --git a/assets/voxygen/voxel/figure/hair/danari/female-4.vox b/assets/voxygen/voxel/figure/hair/danari/female-4.vox new file mode 100755 index 0000000..fac91ec Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/female-4.vox differ diff --git a/assets/voxygen/voxel/figure/hair/danari/female-5.vox b/assets/voxygen/voxel/figure/hair/danari/female-5.vox new file mode 100644 index 0000000..ac0fe57 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/female-5.vox differ diff --git a/assets/voxygen/voxel/figure/hair/danari/female-6.vox b/assets/voxygen/voxel/figure/hair/danari/female-6.vox new file mode 100755 index 0000000..3fffe9e Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/female-6.vox differ diff --git a/assets/voxygen/voxel/figure/hair/danari/female-7.vox b/assets/voxygen/voxel/figure/hair/danari/female-7.vox new file mode 100644 index 0000000..d761235 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/female-7.vox differ diff --git a/assets/voxygen/voxel/figure/hair/danari/female-8.vox b/assets/voxygen/voxel/figure/hair/danari/female-8.vox new file mode 100755 index 0000000..06c388d Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/female-8.vox differ diff --git a/assets/voxygen/voxel/figure/hair/danari/female-9.vox b/assets/voxygen/voxel/figure/hair/danari/female-9.vox new file mode 100755 index 0000000..4ef9147 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/female-9.vox differ diff --git a/assets/voxygen/voxel/figure/hair/danari/male-0.vox b/assets/voxygen/voxel/figure/hair/danari/male-0.vox new file mode 100755 index 0000000..87bd5f3 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/male-0.vox differ diff --git a/assets/voxygen/voxel/figure/hair/danari/male-1.vox b/assets/voxygen/voxel/figure/hair/danari/male-1.vox new file mode 100644 index 0000000..ef760a5 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/male-1.vox differ diff --git a/assets/voxygen/voxel/figure/hair/danari/male-10.vox b/assets/voxygen/voxel/figure/hair/danari/male-10.vox new file mode 100755 index 0000000..4043c83 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/male-10.vox differ diff --git a/assets/voxygen/voxel/figure/hair/danari/male-11.vox b/assets/voxygen/voxel/figure/hair/danari/male-11.vox new file mode 100755 index 0000000..c5a6e61 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/male-11.vox differ diff --git a/assets/voxygen/voxel/figure/hair/danari/male-12.vox b/assets/voxygen/voxel/figure/hair/danari/male-12.vox new file mode 100755 index 0000000..9b40770 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/male-12.vox differ diff --git a/assets/voxygen/voxel/figure/hair/danari/male-13.vox b/assets/voxygen/voxel/figure/hair/danari/male-13.vox new file mode 100755 index 0000000..a84fd9f Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/male-13.vox differ diff --git a/assets/voxygen/voxel/figure/hair/danari/male-2.vox b/assets/voxygen/voxel/figure/hair/danari/male-2.vox new file mode 100755 index 0000000..670015b Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/male-2.vox differ diff --git a/assets/voxygen/voxel/figure/hair/danari/male-3.vox b/assets/voxygen/voxel/figure/hair/danari/male-3.vox new file mode 100755 index 0000000..002fd04 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/male-3.vox differ diff --git a/assets/voxygen/voxel/figure/hair/danari/male-4.vox b/assets/voxygen/voxel/figure/hair/danari/male-4.vox new file mode 100755 index 0000000..2adba5e Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/male-4.vox differ diff --git a/assets/voxygen/voxel/figure/hair/danari/male-5.vox b/assets/voxygen/voxel/figure/hair/danari/male-5.vox new file mode 100755 index 0000000..aca7097 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/male-5.vox differ diff --git a/assets/voxygen/voxel/figure/hair/danari/male-6.vox b/assets/voxygen/voxel/figure/hair/danari/male-6.vox new file mode 100755 index 0000000..535ec23 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/male-6.vox differ diff --git a/assets/voxygen/voxel/figure/hair/danari/male-7.vox b/assets/voxygen/voxel/figure/hair/danari/male-7.vox new file mode 100755 index 0000000..9b6eb07 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/male-7.vox differ diff --git a/assets/voxygen/voxel/figure/hair/danari/male-8.vox b/assets/voxygen/voxel/figure/hair/danari/male-8.vox new file mode 100755 index 0000000..0ad6bd7 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/male-8.vox differ diff --git a/assets/voxygen/voxel/figure/hair/danari/male-9.vox b/assets/voxygen/voxel/figure/hair/danari/male-9.vox new file mode 100755 index 0000000..4e3571e Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/danari/male-9.vox differ diff --git a/assets/voxygen/voxel/figure/hair/draugr/bald.vox b/assets/voxygen/voxel/figure/hair/draugr/bald.vox new file mode 100755 index 0000000..37be828 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/draugr/bald.vox differ diff --git a/assets/voxygen/voxel/figure/hair/draugr/female-0.vox b/assets/voxygen/voxel/figure/hair/draugr/female-0.vox new file mode 100755 index 0000000..55308a4 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/draugr/female-0.vox differ diff --git a/assets/voxygen/voxel/figure/hair/draugr/female-1.vox b/assets/voxygen/voxel/figure/hair/draugr/female-1.vox new file mode 100755 index 0000000..b9ee2b6 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/draugr/female-1.vox differ diff --git a/assets/voxygen/voxel/figure/hair/draugr/female-10.vox b/assets/voxygen/voxel/figure/hair/draugr/female-10.vox new file mode 100755 index 0000000..89204de Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/draugr/female-10.vox differ diff --git a/assets/voxygen/voxel/figure/hair/draugr/female-11.vox b/assets/voxygen/voxel/figure/hair/draugr/female-11.vox new file mode 100755 index 0000000..eb11b44 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/draugr/female-11.vox differ diff --git a/assets/voxygen/voxel/figure/hair/draugr/female-12.vox b/assets/voxygen/voxel/figure/hair/draugr/female-12.vox new file mode 100755 index 0000000..34b0972 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/draugr/female-12.vox differ diff --git a/assets/voxygen/voxel/figure/hair/draugr/female-13.vox b/assets/voxygen/voxel/figure/hair/draugr/female-13.vox new file mode 100755 index 0000000..4a69baf Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/draugr/female-13.vox differ diff --git a/assets/voxygen/voxel/figure/hair/draugr/female-2.vox b/assets/voxygen/voxel/figure/hair/draugr/female-2.vox new file mode 100755 index 0000000..9a78e37 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/draugr/female-2.vox differ diff --git a/assets/voxygen/voxel/figure/hair/draugr/female-3.vox b/assets/voxygen/voxel/figure/hair/draugr/female-3.vox new file mode 100755 index 0000000..f06f3b1 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/draugr/female-3.vox differ diff --git a/assets/voxygen/voxel/figure/hair/draugr/female-4.vox b/assets/voxygen/voxel/figure/hair/draugr/female-4.vox new file mode 100755 index 0000000..c6a9d8d Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/draugr/female-4.vox differ diff --git a/assets/voxygen/voxel/figure/hair/draugr/female-5.vox b/assets/voxygen/voxel/figure/hair/draugr/female-5.vox new file mode 100755 index 0000000..77c642f Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/draugr/female-5.vox differ diff --git a/assets/voxygen/voxel/figure/hair/draugr/female-6.vox b/assets/voxygen/voxel/figure/hair/draugr/female-6.vox new file mode 100755 index 0000000..f0ab258 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/draugr/female-6.vox differ diff --git a/assets/voxygen/voxel/figure/hair/draugr/female-7.vox b/assets/voxygen/voxel/figure/hair/draugr/female-7.vox new file mode 100755 index 0000000..9e7a95f Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/draugr/female-7.vox differ diff --git a/assets/voxygen/voxel/figure/hair/draugr/female-8.vox b/assets/voxygen/voxel/figure/hair/draugr/female-8.vox new file mode 100755 index 0000000..c2384ec Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/draugr/female-8.vox differ diff --git a/assets/voxygen/voxel/figure/hair/draugr/female-9.vox b/assets/voxygen/voxel/figure/hair/draugr/female-9.vox new file mode 100755 index 0000000..96fee90 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/draugr/female-9.vox differ diff --git a/assets/voxygen/voxel/figure/hair/draugr/male-0.vox b/assets/voxygen/voxel/figure/hair/draugr/male-0.vox new file mode 100755 index 0000000..ebb5dd0 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/draugr/male-0.vox differ diff --git a/assets/voxygen/voxel/figure/hair/draugr/male-1.vox b/assets/voxygen/voxel/figure/hair/draugr/male-1.vox new file mode 100755 index 0000000..b269bf4 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/draugr/male-1.vox differ diff --git a/assets/voxygen/voxel/figure/hair/draugr/male-10.vox b/assets/voxygen/voxel/figure/hair/draugr/male-10.vox new file mode 100755 index 0000000..6b1a51b Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/draugr/male-10.vox differ diff --git a/assets/voxygen/voxel/figure/hair/draugr/male-11.vox b/assets/voxygen/voxel/figure/hair/draugr/male-11.vox new file mode 100755 index 0000000..b6d1d22 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/draugr/male-11.vox differ diff --git a/assets/voxygen/voxel/figure/hair/draugr/male-12.vox b/assets/voxygen/voxel/figure/hair/draugr/male-12.vox new file mode 100755 index 0000000..20f5077 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/draugr/male-12.vox differ diff --git a/assets/voxygen/voxel/figure/hair/draugr/male-13.vox b/assets/voxygen/voxel/figure/hair/draugr/male-13.vox new file mode 100755 index 0000000..76bbf3c Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/draugr/male-13.vox differ diff --git a/assets/voxygen/voxel/figure/hair/draugr/male-2.vox b/assets/voxygen/voxel/figure/hair/draugr/male-2.vox new file mode 100755 index 0000000..3cd9d0a Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/draugr/male-2.vox differ diff --git a/assets/voxygen/voxel/figure/hair/draugr/male-3.vox b/assets/voxygen/voxel/figure/hair/draugr/male-3.vox new file mode 100755 index 0000000..0c7689b Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/draugr/male-3.vox differ diff --git a/assets/voxygen/voxel/figure/hair/draugr/male-4.vox b/assets/voxygen/voxel/figure/hair/draugr/male-4.vox new file mode 100755 index 0000000..ac890b3 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/draugr/male-4.vox differ diff --git a/assets/voxygen/voxel/figure/hair/draugr/male-5.vox b/assets/voxygen/voxel/figure/hair/draugr/male-5.vox new file mode 100755 index 0000000..f40a361 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/draugr/male-5.vox differ diff --git a/assets/voxygen/voxel/figure/hair/draugr/male-6.vox b/assets/voxygen/voxel/figure/hair/draugr/male-6.vox new file mode 100755 index 0000000..9ce8bfc Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/draugr/male-6.vox differ diff --git a/assets/voxygen/voxel/figure/hair/draugr/male-7.vox b/assets/voxygen/voxel/figure/hair/draugr/male-7.vox new file mode 100755 index 0000000..c1b2169 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/draugr/male-7.vox differ diff --git a/assets/voxygen/voxel/figure/hair/draugr/male-8.vox b/assets/voxygen/voxel/figure/hair/draugr/male-8.vox new file mode 100755 index 0000000..5e21720 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/draugr/male-8.vox differ diff --git a/assets/voxygen/voxel/figure/hair/draugr/male-9.vox b/assets/voxygen/voxel/figure/hair/draugr/male-9.vox new file mode 100755 index 0000000..3c6af5c Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/draugr/male-9.vox differ diff --git a/assets/voxygen/voxel/figure/hair/dwarf/bald.vox b/assets/voxygen/voxel/figure/hair/dwarf/bald.vox new file mode 100755 index 0000000..2a9bb1e Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/bald.vox differ diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-0.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-0.vox new file mode 100755 index 0000000..23632c4 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/female-0.vox differ diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-1.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-1.vox new file mode 100755 index 0000000..9a4c294 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/female-1.vox differ diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-10.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-10.vox new file mode 100755 index 0000000..bce79d1 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/female-10.vox differ diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-11.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-11.vox new file mode 100755 index 0000000..ec49646 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/female-11.vox differ diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-12.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-12.vox new file mode 100755 index 0000000..32f18ae Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/female-12.vox differ diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-13.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-13.vox new file mode 100755 index 0000000..c76e060 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/female-13.vox differ diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-14.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-14.vox new file mode 100755 index 0000000..2453134 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/female-14.vox differ diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-2.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-2.vox new file mode 100755 index 0000000..70f5491 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/female-2.vox differ diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-3.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-3.vox new file mode 100755 index 0000000..b74f484 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/female-3.vox differ diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-4.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-4.vox new file mode 100755 index 0000000..6e0e722 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/female-4.vox differ diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-5.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-5.vox new file mode 100755 index 0000000..0545d4d Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/female-5.vox differ diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-6.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-6.vox new file mode 100644 index 0000000..7388513 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/female-6.vox differ diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-7.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-7.vox new file mode 100644 index 0000000..4465612 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/female-7.vox differ diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-8.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-8.vox new file mode 100755 index 0000000..bf189ad Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/female-8.vox differ diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-9.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-9.vox new file mode 100755 index 0000000..69cec06 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/female-9.vox differ diff --git a/assets/voxygen/voxel/figure/hair/dwarf/male-0.vox b/assets/voxygen/voxel/figure/hair/dwarf/male-0.vox new file mode 100755 index 0000000..72ab127 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/male-0.vox differ diff --git a/assets/voxygen/voxel/figure/hair/dwarf/male-1.vox b/assets/voxygen/voxel/figure/hair/dwarf/male-1.vox new file mode 100755 index 0000000..f544a80 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/male-1.vox differ diff --git a/assets/voxygen/voxel/figure/hair/dwarf/male-10.vox b/assets/voxygen/voxel/figure/hair/dwarf/male-10.vox new file mode 100755 index 0000000..242c1ac Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/male-10.vox differ diff --git a/assets/voxygen/voxel/figure/hair/dwarf/male-11.vox b/assets/voxygen/voxel/figure/hair/dwarf/male-11.vox new file mode 100755 index 0000000..b1835e3 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/male-11.vox differ diff --git a/assets/voxygen/voxel/figure/hair/dwarf/male-12.vox b/assets/voxygen/voxel/figure/hair/dwarf/male-12.vox new file mode 100755 index 0000000..0c64169 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/male-12.vox differ diff --git a/assets/voxygen/voxel/figure/hair/dwarf/male-13.vox b/assets/voxygen/voxel/figure/hair/dwarf/male-13.vox new file mode 100755 index 0000000..749fcc9 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/male-13.vox differ diff --git a/assets/voxygen/voxel/figure/hair/dwarf/male-2.vox b/assets/voxygen/voxel/figure/hair/dwarf/male-2.vox new file mode 100755 index 0000000..410f592 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/male-2.vox differ diff --git a/assets/voxygen/voxel/figure/hair/dwarf/male-3.vox b/assets/voxygen/voxel/figure/hair/dwarf/male-3.vox new file mode 100755 index 0000000..b4a6799 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/male-3.vox differ diff --git a/assets/voxygen/voxel/figure/hair/dwarf/male-4.vox b/assets/voxygen/voxel/figure/hair/dwarf/male-4.vox new file mode 100755 index 0000000..1b4ed78 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/male-4.vox differ diff --git a/assets/voxygen/voxel/figure/hair/dwarf/male-5.vox b/assets/voxygen/voxel/figure/hair/dwarf/male-5.vox new file mode 100755 index 0000000..0a1a486 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/male-5.vox differ diff --git a/assets/voxygen/voxel/figure/hair/dwarf/male-6.vox b/assets/voxygen/voxel/figure/hair/dwarf/male-6.vox new file mode 100755 index 0000000..714e610 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/male-6.vox differ diff --git a/assets/voxygen/voxel/figure/hair/dwarf/male-7.vox b/assets/voxygen/voxel/figure/hair/dwarf/male-7.vox new file mode 100755 index 0000000..ed2b40a Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/male-7.vox differ diff --git a/assets/voxygen/voxel/figure/hair/dwarf/male-8.vox b/assets/voxygen/voxel/figure/hair/dwarf/male-8.vox new file mode 100755 index 0000000..ce68717 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/male-8.vox differ diff --git a/assets/voxygen/voxel/figure/hair/dwarf/male-9.vox b/assets/voxygen/voxel/figure/hair/dwarf/male-9.vox new file mode 100755 index 0000000..52de49f Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/dwarf/male-9.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/female-0.vox b/assets/voxygen/voxel/figure/hair/elf/female-0.vox new file mode 100755 index 0000000..b6c194c Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/female-0.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/female-1.vox b/assets/voxygen/voxel/figure/hair/elf/female-1.vox new file mode 100755 index 0000000..0e0e23c Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/female-1.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/female-10.vox b/assets/voxygen/voxel/figure/hair/elf/female-10.vox new file mode 100755 index 0000000..13f14b4 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/female-10.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/female-11.vox b/assets/voxygen/voxel/figure/hair/elf/female-11.vox new file mode 100755 index 0000000..5e31fd9 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/female-11.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/female-12.vox b/assets/voxygen/voxel/figure/hair/elf/female-12.vox new file mode 100755 index 0000000..9651b64 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/female-12.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/female-13.vox b/assets/voxygen/voxel/figure/hair/elf/female-13.vox new file mode 100755 index 0000000..069340c Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/female-13.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/female-14.vox b/assets/voxygen/voxel/figure/hair/elf/female-14.vox new file mode 100644 index 0000000..2023809 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/female-14.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/female-15.vox b/assets/voxygen/voxel/figure/hair/elf/female-15.vox new file mode 100644 index 0000000..cdc64e7 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/female-15.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/female-16.vox b/assets/voxygen/voxel/figure/hair/elf/female-16.vox new file mode 100755 index 0000000..92141f6 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/female-16.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/female-17.vox b/assets/voxygen/voxel/figure/hair/elf/female-17.vox new file mode 100755 index 0000000..de77d58 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/female-17.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/female-18.vox b/assets/voxygen/voxel/figure/hair/elf/female-18.vox new file mode 100755 index 0000000..46508d3 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/female-18.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/female-19.vox b/assets/voxygen/voxel/figure/hair/elf/female-19.vox new file mode 100755 index 0000000..2952722 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/female-19.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/female-2.vox b/assets/voxygen/voxel/figure/hair/elf/female-2.vox new file mode 100755 index 0000000..e68bb98 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/female-2.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/female-20.vox b/assets/voxygen/voxel/figure/hair/elf/female-20.vox new file mode 100755 index 0000000..d2a277a Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/female-20.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/female-21.vox b/assets/voxygen/voxel/figure/hair/elf/female-21.vox new file mode 100755 index 0000000..97bdbe4 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/female-21.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/female-3.vox b/assets/voxygen/voxel/figure/hair/elf/female-3.vox new file mode 100755 index 0000000..45f70cc Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/female-3.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/female-4.vox b/assets/voxygen/voxel/figure/hair/elf/female-4.vox new file mode 100644 index 0000000..fde7482 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/female-4.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/female-5.vox b/assets/voxygen/voxel/figure/hair/elf/female-5.vox new file mode 100644 index 0000000..e3f2bf0 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/female-5.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/female-6.vox b/assets/voxygen/voxel/figure/hair/elf/female-6.vox new file mode 100755 index 0000000..ea70766 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/female-6.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/female-7.vox b/assets/voxygen/voxel/figure/hair/elf/female-7.vox new file mode 100755 index 0000000..b4a705e Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/female-7.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/female-8.vox b/assets/voxygen/voxel/figure/hair/elf/female-8.vox new file mode 100644 index 0000000..f648a9c Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/female-8.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/female-9.vox b/assets/voxygen/voxel/figure/hair/elf/female-9.vox new file mode 100755 index 0000000..826b6d5 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/female-9.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/male-0.vox b/assets/voxygen/voxel/figure/hair/elf/male-0.vox new file mode 100755 index 0000000..bc76ccb Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/male-0.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/male-1.vox b/assets/voxygen/voxel/figure/hair/elf/male-1.vox new file mode 100755 index 0000000..4eb5a70 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/male-1.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/male-10.vox b/assets/voxygen/voxel/figure/hair/elf/male-10.vox new file mode 100755 index 0000000..9dd294c Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/male-10.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/male-11.vox b/assets/voxygen/voxel/figure/hair/elf/male-11.vox new file mode 100755 index 0000000..163602e Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/male-11.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/male-12.vox b/assets/voxygen/voxel/figure/hair/elf/male-12.vox new file mode 100755 index 0000000..d19e813 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/male-12.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/male-13.vox b/assets/voxygen/voxel/figure/hair/elf/male-13.vox new file mode 100755 index 0000000..f327d3f Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/male-13.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/male-14.vox b/assets/voxygen/voxel/figure/hair/elf/male-14.vox new file mode 100755 index 0000000..9ba76bd Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/male-14.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/male-2.vox b/assets/voxygen/voxel/figure/hair/elf/male-2.vox new file mode 100755 index 0000000..98e5bcd Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/male-2.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/male-3.vox b/assets/voxygen/voxel/figure/hair/elf/male-3.vox new file mode 100755 index 0000000..d98719d Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/male-3.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/male-4.vox b/assets/voxygen/voxel/figure/hair/elf/male-4.vox new file mode 100755 index 0000000..7538341 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/male-4.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/male-5.vox b/assets/voxygen/voxel/figure/hair/elf/male-5.vox new file mode 100644 index 0000000..791dead Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/male-5.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/male-6.vox b/assets/voxygen/voxel/figure/hair/elf/male-6.vox new file mode 100755 index 0000000..a718117 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/male-6.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/male-7.vox b/assets/voxygen/voxel/figure/hair/elf/male-7.vox new file mode 100755 index 0000000..890a27e Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/male-7.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/male-8.vox b/assets/voxygen/voxel/figure/hair/elf/male-8.vox new file mode 100755 index 0000000..a57fbec Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/male-8.vox differ diff --git a/assets/voxygen/voxel/figure/hair/elf/male-9.vox b/assets/voxygen/voxel/figure/hair/elf/male-9.vox new file mode 100755 index 0000000..ffe68da Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/elf/male-9.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/female-0.vox b/assets/voxygen/voxel/figure/hair/human/female-0.vox new file mode 100755 index 0000000..98c85bf Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/female-0.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/female-1.vox b/assets/voxygen/voxel/figure/hair/human/female-1.vox new file mode 100755 index 0000000..612f767 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/female-1.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/female-10.vox b/assets/voxygen/voxel/figure/hair/human/female-10.vox new file mode 100755 index 0000000..d8b6b8d Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/female-10.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/female-11.vox b/assets/voxygen/voxel/figure/hair/human/female-11.vox new file mode 100755 index 0000000..71523b3 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/female-11.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/female-12.vox b/assets/voxygen/voxel/figure/hair/human/female-12.vox new file mode 100755 index 0000000..f4c6e5b Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/female-12.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/female-13.vox b/assets/voxygen/voxel/figure/hair/human/female-13.vox new file mode 100755 index 0000000..a83fa94 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/female-13.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/female-14.vox b/assets/voxygen/voxel/figure/hair/human/female-14.vox new file mode 100755 index 0000000..da70a14 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/female-14.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/female-15.vox b/assets/voxygen/voxel/figure/hair/human/female-15.vox new file mode 100755 index 0000000..825b262 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/female-15.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/female-16.vox b/assets/voxygen/voxel/figure/hair/human/female-16.vox new file mode 100755 index 0000000..dd7bf14 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/female-16.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/female-17.vox b/assets/voxygen/voxel/figure/hair/human/female-17.vox new file mode 100755 index 0000000..d7ea25a Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/female-17.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/female-18.vox b/assets/voxygen/voxel/figure/hair/human/female-18.vox new file mode 100755 index 0000000..5046032 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/female-18.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/female-19.vox b/assets/voxygen/voxel/figure/hair/human/female-19.vox new file mode 100755 index 0000000..ad7afd3 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/female-19.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/female-2.vox b/assets/voxygen/voxel/figure/hair/human/female-2.vox new file mode 100755 index 0000000..e21bbc6 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/female-2.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/female-3.vox b/assets/voxygen/voxel/figure/hair/human/female-3.vox new file mode 100755 index 0000000..41e7e51 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/female-3.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/female-4.vox b/assets/voxygen/voxel/figure/hair/human/female-4.vox new file mode 100755 index 0000000..9f1581b Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/female-4.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/female-5.vox b/assets/voxygen/voxel/figure/hair/human/female-5.vox new file mode 100755 index 0000000..9769bb3 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/female-5.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/female-6.vox b/assets/voxygen/voxel/figure/hair/human/female-6.vox new file mode 100755 index 0000000..fd83753 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/female-6.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/female-7.vox b/assets/voxygen/voxel/figure/hair/human/female-7.vox new file mode 100755 index 0000000..2145cc5 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/female-7.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/female-8.vox b/assets/voxygen/voxel/figure/hair/human/female-8.vox new file mode 100755 index 0000000..8911b38 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/female-8.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/female-9.vox b/assets/voxygen/voxel/figure/hair/human/female-9.vox new file mode 100644 index 0000000..3de7652 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/female-9.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/male-0.vox b/assets/voxygen/voxel/figure/hair/human/male-0.vox new file mode 100755 index 0000000..678049a Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/male-0.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/male-1.vox b/assets/voxygen/voxel/figure/hair/human/male-1.vox new file mode 100644 index 0000000..36c8db2 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/male-1.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/male-10.vox b/assets/voxygen/voxel/figure/hair/human/male-10.vox new file mode 100755 index 0000000..7e3dce6 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/male-10.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/male-11.vox b/assets/voxygen/voxel/figure/hair/human/male-11.vox new file mode 100755 index 0000000..2a64feb Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/male-11.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/male-12.vox b/assets/voxygen/voxel/figure/hair/human/male-12.vox new file mode 100644 index 0000000..2159c42 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/male-12.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/male-13.vox b/assets/voxygen/voxel/figure/hair/human/male-13.vox new file mode 100644 index 0000000..d01457f Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/male-13.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/male-14.vox b/assets/voxygen/voxel/figure/hair/human/male-14.vox new file mode 100644 index 0000000..7d13bdd Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/male-14.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/male-15.vox b/assets/voxygen/voxel/figure/hair/human/male-15.vox new file mode 100644 index 0000000..733020c Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/male-15.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/male-16.vox b/assets/voxygen/voxel/figure/hair/human/male-16.vox new file mode 100644 index 0000000..352565f Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/male-16.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/male-17.vox b/assets/voxygen/voxel/figure/hair/human/male-17.vox new file mode 100755 index 0000000..d9ebb7e Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/male-17.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/male-18.vox b/assets/voxygen/voxel/figure/hair/human/male-18.vox new file mode 100755 index 0000000..be97eb8 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/male-18.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/male-19.vox b/assets/voxygen/voxel/figure/hair/human/male-19.vox new file mode 100644 index 0000000..82bdf94 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/male-19.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/male-2.vox b/assets/voxygen/voxel/figure/hair/human/male-2.vox new file mode 100755 index 0000000..e837a61 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/male-2.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/male-20.vox b/assets/voxygen/voxel/figure/hair/human/male-20.vox new file mode 100755 index 0000000..4fb785c Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/male-20.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/male-3.vox b/assets/voxygen/voxel/figure/hair/human/male-3.vox new file mode 100755 index 0000000..591f0ca Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/male-3.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/male-4.vox b/assets/voxygen/voxel/figure/hair/human/male-4.vox new file mode 100755 index 0000000..34837c8 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/male-4.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/male-5.vox b/assets/voxygen/voxel/figure/hair/human/male-5.vox new file mode 100755 index 0000000..904a88a Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/male-5.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/male-6.vox b/assets/voxygen/voxel/figure/hair/human/male-6.vox new file mode 100644 index 0000000..241ee06 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/male-6.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/male-7.vox b/assets/voxygen/voxel/figure/hair/human/male-7.vox new file mode 100755 index 0000000..00d0fd0 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/male-7.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/male-8.vox b/assets/voxygen/voxel/figure/hair/human/male-8.vox new file mode 100755 index 0000000..facf4a3 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/male-8.vox differ diff --git a/assets/voxygen/voxel/figure/hair/human/male-9.vox b/assets/voxygen/voxel/figure/hair/human/male-9.vox new file mode 100755 index 0000000..6d54829 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/human/male-9.vox differ diff --git a/assets/voxygen/voxel/figure/hair/orc/bald.vox b/assets/voxygen/voxel/figure/hair/orc/bald.vox new file mode 100755 index 0000000..beae4fc Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/orc/bald.vox differ diff --git a/assets/voxygen/voxel/figure/hair/orc/female-0.vox b/assets/voxygen/voxel/figure/hair/orc/female-0.vox new file mode 100755 index 0000000..e050429 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/orc/female-0.vox differ diff --git a/assets/voxygen/voxel/figure/hair/orc/female-1.vox b/assets/voxygen/voxel/figure/hair/orc/female-1.vox new file mode 100755 index 0000000..c94fdc0 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/orc/female-1.vox differ diff --git a/assets/voxygen/voxel/figure/hair/orc/female-10.vox b/assets/voxygen/voxel/figure/hair/orc/female-10.vox new file mode 100755 index 0000000..edba7e0 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/orc/female-10.vox differ diff --git a/assets/voxygen/voxel/figure/hair/orc/female-11.vox b/assets/voxygen/voxel/figure/hair/orc/female-11.vox new file mode 100755 index 0000000..6a27539 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/orc/female-11.vox differ diff --git a/assets/voxygen/voxel/figure/hair/orc/female-12.vox b/assets/voxygen/voxel/figure/hair/orc/female-12.vox new file mode 100644 index 0000000..0af2a8c Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/orc/female-12.vox differ diff --git a/assets/voxygen/voxel/figure/hair/orc/female-13.vox b/assets/voxygen/voxel/figure/hair/orc/female-13.vox new file mode 100755 index 0000000..b43e037 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/orc/female-13.vox differ diff --git a/assets/voxygen/voxel/figure/hair/orc/female-14.vox b/assets/voxygen/voxel/figure/hair/orc/female-14.vox new file mode 100755 index 0000000..ba9a0bf Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/orc/female-14.vox differ diff --git a/assets/voxygen/voxel/figure/hair/orc/female-2.vox b/assets/voxygen/voxel/figure/hair/orc/female-2.vox new file mode 100755 index 0000000..e0fec65 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/orc/female-2.vox differ diff --git a/assets/voxygen/voxel/figure/hair/orc/female-3.vox b/assets/voxygen/voxel/figure/hair/orc/female-3.vox new file mode 100755 index 0000000..1346f75 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/orc/female-3.vox differ diff --git a/assets/voxygen/voxel/figure/hair/orc/female-4.vox b/assets/voxygen/voxel/figure/hair/orc/female-4.vox new file mode 100755 index 0000000..f856538 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/orc/female-4.vox differ diff --git a/assets/voxygen/voxel/figure/hair/orc/female-5.vox b/assets/voxygen/voxel/figure/hair/orc/female-5.vox new file mode 100755 index 0000000..0959956 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/orc/female-5.vox differ diff --git a/assets/voxygen/voxel/figure/hair/orc/female-6.vox b/assets/voxygen/voxel/figure/hair/orc/female-6.vox new file mode 100755 index 0000000..54948b2 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/orc/female-6.vox differ diff --git a/assets/voxygen/voxel/figure/hair/orc/female-7.vox b/assets/voxygen/voxel/figure/hair/orc/female-7.vox new file mode 100755 index 0000000..0dcac15 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/orc/female-7.vox differ diff --git a/assets/voxygen/voxel/figure/hair/orc/female-8.vox b/assets/voxygen/voxel/figure/hair/orc/female-8.vox new file mode 100755 index 0000000..cbde5d0 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/orc/female-8.vox differ diff --git a/assets/voxygen/voxel/figure/hair/orc/female-9.vox b/assets/voxygen/voxel/figure/hair/orc/female-9.vox new file mode 100755 index 0000000..d6c2e2a Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/orc/female-9.vox differ diff --git a/assets/voxygen/voxel/figure/hair/orc/male-0.vox b/assets/voxygen/voxel/figure/hair/orc/male-0.vox new file mode 100644 index 0000000..822674e Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/orc/male-0.vox differ diff --git a/assets/voxygen/voxel/figure/hair/orc/male-1.vox b/assets/voxygen/voxel/figure/hair/orc/male-1.vox new file mode 100755 index 0000000..7e6fc64 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/orc/male-1.vox differ diff --git a/assets/voxygen/voxel/figure/hair/orc/male-10.vox b/assets/voxygen/voxel/figure/hair/orc/male-10.vox new file mode 100755 index 0000000..081ca49 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/orc/male-10.vox differ diff --git a/assets/voxygen/voxel/figure/hair/orc/male-11.vox b/assets/voxygen/voxel/figure/hair/orc/male-11.vox new file mode 100644 index 0000000..c52956d Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/orc/male-11.vox differ diff --git a/assets/voxygen/voxel/figure/hair/orc/male-12.vox b/assets/voxygen/voxel/figure/hair/orc/male-12.vox new file mode 100755 index 0000000..be3d51c Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/orc/male-12.vox differ diff --git a/assets/voxygen/voxel/figure/hair/orc/male-13.vox b/assets/voxygen/voxel/figure/hair/orc/male-13.vox new file mode 100755 index 0000000..ede7cab Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/orc/male-13.vox differ diff --git a/assets/voxygen/voxel/figure/hair/orc/male-2.vox b/assets/voxygen/voxel/figure/hair/orc/male-2.vox new file mode 100755 index 0000000..bf42c57 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/orc/male-2.vox differ diff --git a/assets/voxygen/voxel/figure/hair/orc/male-3.vox b/assets/voxygen/voxel/figure/hair/orc/male-3.vox new file mode 100755 index 0000000..827980e Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/orc/male-3.vox differ diff --git a/assets/voxygen/voxel/figure/hair/orc/male-4.vox b/assets/voxygen/voxel/figure/hair/orc/male-4.vox new file mode 100755 index 0000000..51115ff Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/orc/male-4.vox differ diff --git a/assets/voxygen/voxel/figure/hair/orc/male-5.vox b/assets/voxygen/voxel/figure/hair/orc/male-5.vox new file mode 100755 index 0000000..14e9f7a Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/orc/male-5.vox differ diff --git a/assets/voxygen/voxel/figure/hair/orc/male-6.vox b/assets/voxygen/voxel/figure/hair/orc/male-6.vox new file mode 100755 index 0000000..3588017 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/orc/male-6.vox differ diff --git a/assets/voxygen/voxel/figure/hair/orc/male-7.vox b/assets/voxygen/voxel/figure/hair/orc/male-7.vox new file mode 100755 index 0000000..58b1e82 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/orc/male-7.vox differ diff --git a/assets/voxygen/voxel/figure/hair/orc/male-8.vox b/assets/voxygen/voxel/figure/hair/orc/male-8.vox new file mode 100755 index 0000000..7f7ac24 Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/orc/male-8.vox differ diff --git a/assets/voxygen/voxel/figure/hair/orc/male-9.vox b/assets/voxygen/voxel/figure/hair/orc/male-9.vox new file mode 100755 index 0000000..7a3855a Binary files /dev/null and b/assets/voxygen/voxel/figure/hair/orc/male-9.vox differ diff --git a/assets/voxygen/voxel/figure/head/danari/female.vox b/assets/voxygen/voxel/figure/head/danari/female.vox new file mode 100755 index 0000000..fbecea7 Binary files /dev/null and b/assets/voxygen/voxel/figure/head/danari/female.vox differ diff --git a/assets/voxygen/voxel/figure/head/danari/male.vox b/assets/voxygen/voxel/figure/head/danari/male.vox new file mode 100755 index 0000000..8ede24a Binary files /dev/null and b/assets/voxygen/voxel/figure/head/danari/male.vox differ diff --git a/assets/voxygen/voxel/figure/head/draugr/female.vox b/assets/voxygen/voxel/figure/head/draugr/female.vox new file mode 100755 index 0000000..7d75cea Binary files /dev/null and b/assets/voxygen/voxel/figure/head/draugr/female.vox differ diff --git a/assets/voxygen/voxel/figure/head/draugr/male.vox b/assets/voxygen/voxel/figure/head/draugr/male.vox new file mode 100644 index 0000000..a5654ac Binary files /dev/null and b/assets/voxygen/voxel/figure/head/draugr/male.vox differ diff --git a/assets/voxygen/voxel/figure/head/dwarf/female.vox b/assets/voxygen/voxel/figure/head/dwarf/female.vox new file mode 100644 index 0000000..628ddcb Binary files /dev/null and b/assets/voxygen/voxel/figure/head/dwarf/female.vox differ diff --git a/assets/voxygen/voxel/figure/head/dwarf/male.vox b/assets/voxygen/voxel/figure/head/dwarf/male.vox new file mode 100644 index 0000000..ee023bc Binary files /dev/null and b/assets/voxygen/voxel/figure/head/dwarf/male.vox differ diff --git a/assets/voxygen/voxel/figure/head/elf/female.vox b/assets/voxygen/voxel/figure/head/elf/female.vox new file mode 100644 index 0000000..a437adb Binary files /dev/null and b/assets/voxygen/voxel/figure/head/elf/female.vox differ diff --git a/assets/voxygen/voxel/figure/head/elf/male.vox b/assets/voxygen/voxel/figure/head/elf/male.vox new file mode 100644 index 0000000..a16deab Binary files /dev/null and b/assets/voxygen/voxel/figure/head/elf/male.vox differ diff --git a/assets/voxygen/voxel/figure/head/human/female.vox b/assets/voxygen/voxel/figure/head/human/female.vox new file mode 100644 index 0000000..6578011 Binary files /dev/null and b/assets/voxygen/voxel/figure/head/human/female.vox differ diff --git a/assets/voxygen/voxel/figure/head/human/male.vox b/assets/voxygen/voxel/figure/head/human/male.vox new file mode 100644 index 0000000..d1e395a Binary files /dev/null and b/assets/voxygen/voxel/figure/head/human/male.vox differ diff --git a/assets/voxygen/voxel/figure/head/orc/female.vox b/assets/voxygen/voxel/figure/head/orc/female.vox new file mode 100644 index 0000000..0ca82fd Binary files /dev/null and b/assets/voxygen/voxel/figure/head/orc/female.vox differ diff --git a/assets/voxygen/voxel/figure/head/orc/male.vox b/assets/voxygen/voxel/figure/head/orc/male.vox new file mode 100644 index 0000000..72f500d Binary files /dev/null and b/assets/voxygen/voxel/figure/head/orc/male.vox differ diff --git a/assets/voxygen/voxel/figure/head_test2.vox b/assets/voxygen/voxel/figure/head_test2.vox new file mode 100644 index 0000000..4055900 Binary files /dev/null and b/assets/voxygen/voxel/figure/head_test2.vox differ diff --git a/assets/voxygen/voxel/fish_medium_central_manifest.ron b/assets/voxygen/voxel/fish_medium_central_manifest.ron new file mode 100644 index 0000000..cbdc61e --- /dev/null +++ b/assets/voxygen/voxel/fish_medium_central_manifest.ron @@ -0,0 +1,90 @@ +({ + (Marlin, Male): ( + head: ( + offset: (-2.5, 0.0, -3.0), + central: ("npc.marlin.male.head"), + ), + jaw: ( + offset: (-4.0, 0.0, -1.5), + central: ("armor.empty"), + ), + chest_front: ( + offset: (-2.5, -5.0, -2.5), + central: ("npc.marlin.male.chest_front"), + ), + chest_back: ( + offset: (-2.5, -7.0, -3.5), + central: ("npc.marlin.male.chest_back"), + ), + tail: ( + offset: (-0.5, -11.0, -4.5), + central: ("npc.marlin.male.tail"), + ), + ), + (Marlin, Female): ( + head: ( + offset: (-2.5, 0.0, -3.0), + central: ("npc.marlin.male.head"), + ), + jaw: ( + offset: (-4.0, 0.0, -1.5), + central: ("armor.empty"), + ), + chest_front: ( + offset: (-2.5, -5.0, -2.5), + central: ("npc.marlin.male.chest_front"), + ), + chest_back: ( + offset: (-2.5, -7.0, -3.5), + central: ("npc.marlin.male.chest_back"), + ), + tail: ( + offset: (-0.5, -11.0, -4.5), + central: ("npc.marlin.male.tail"), + ), + ), + (Icepike, Male): ( + head: ( + offset: (-2.5, 0.0, -6.0), + central: ("npc.icepike.male.head"), + ), + jaw: ( + offset: (-1.5, 0.0, -4.0), + central: ("npc.icepike.male.jaw"), + ), + chest_front: ( + offset: (-2.5, -4.0, -7.0), + central: ("npc.icepike.male.chest_front"), + ), + chest_back: ( + offset: (-1.5, -1.5, -3.0), + central: ("npc.icepike.male.chest_back"), + ), + tail: ( + offset: (-0.5, -10.0, -4.5), + central: ("npc.icepike.male.tail"), + ), + ), + (Icepike, Female): ( + head: ( + offset: (-2.5, 0.0, -6.0), + central: ("npc.icepike.male.head"), + ), + jaw: ( + offset: (-1.5, 0.0, -4.0), + central: ("npc.icepike.male.jaw"), + ), + chest_front: ( + offset: (-2.5, -4.0, -7.0), + central: ("npc.icepike.male.chest_front"), + ), + chest_back: ( + offset: (-1.5, -1.5, -3.0), + central: ("npc.icepike.male.chest_back"), + ), + tail: ( + offset: (-0.5, -10.0, -4.5), + central: ("npc.icepike.male.tail"), + ), + ), +}) diff --git a/assets/voxygen/voxel/fish_medium_lateral_manifest.ron b/assets/voxygen/voxel/fish_medium_lateral_manifest.ron new file mode 100644 index 0000000..d53de2e --- /dev/null +++ b/assets/voxygen/voxel/fish_medium_lateral_manifest.ron @@ -0,0 +1,42 @@ +({ + (Marlin, Male): ( + fin_l: ( + offset: (-3.0, -5.0, -4.0), + lateral: ("npc.marlin.male.fin_r"), + ), + fin_r: ( + offset: (0.0, -5.0, -4.0), + lateral: ("npc.marlin.male.fin_r"), + ), + ), + (Marlin, Female): ( + fin_l: ( + offset: (-3.0, -5.0, -4.0), + lateral: ("npc.marlin.male.fin_r"), + ), + fin_r: ( + offset: (0.0, -5.0, -4.0), + lateral: ("npc.marlin.male.fin_r"), + ), + ), + (Icepike, Male): ( + fin_l: ( + offset: (-1.0, -7.0, -3.0), + lateral: ("npc.icepike.male.fin_r"), + ), + fin_r: ( + offset: (-1.0, -7.0, -3.0), + lateral: ("npc.icepike.male.fin_r"), + ), + ), + (Icepike, Female): ( + fin_l: ( + offset: (-1.0, -7.0, -3.0), + lateral: ("npc.icepike.male.fin_r"), + ), + fin_r: ( + offset: (-1.0, -7.0, -3.0), + lateral: ("npc.icepike.male.fin_r"), + ), + ), +}) diff --git a/assets/voxygen/voxel/fish_small_central_manifest.ron b/assets/voxygen/voxel/fish_small_central_manifest.ron new file mode 100644 index 0000000..eee61b0 --- /dev/null +++ b/assets/voxygen/voxel/fish_small_central_manifest.ron @@ -0,0 +1,42 @@ +({ + (Clownfish, Male): ( + chest: ( + offset: (-1.5, -7.5, -5.0), + central: ("npc.clownfish.male.chest"), + ), + tail: ( + offset: (-0.5, -5.0, -2.5), + central: ("npc.clownfish.male.tail"), + ), + ), + (Clownfish, Female): ( + chest: ( + offset: (-1.5, -7.5, -5.0), + central: ("npc.clownfish.male.chest"), + ), + tail: ( + offset: (-0.5, -5.0, -2.5), + central: ("npc.clownfish.male.tail"), + ), + ), + (Piranha, Male): ( + chest: ( + offset: (-1.5, -5.5, -5.5), + central: ("npc.piranha.male.chest"), + ), + tail: ( + offset: (-0.5, -5.0, -3.5), + central: ("npc.piranha.male.tail"), + ), + ), + (Piranha, Female): ( + chest: ( + offset: (-1.5, -5.5, -5.5), + central: ("npc.piranha.male.chest"), + ), + tail: ( + offset: (-0.5, -5.0, -3.5), + central: ("npc.piranha.male.tail"), + ), + ), +}) diff --git a/assets/voxygen/voxel/fish_small_lateral_manifest.ron b/assets/voxygen/voxel/fish_small_lateral_manifest.ron new file mode 100644 index 0000000..05149d8 --- /dev/null +++ b/assets/voxygen/voxel/fish_small_lateral_manifest.ron @@ -0,0 +1,42 @@ +({ + (Clownfish, Male): ( + fin_l: ( + offset: (-0.5, -3.0, -4.0), + lateral: ("npc.clownfish.male.fin"), + ), + fin_r: ( + offset: (-0.5, -3.0, -4.0), + lateral: ("npc.clownfish.male.fin"), + ), + ), + (Clownfish, Female): ( + fin_l: ( + offset: (-0.5, -3.0, -4.0), + lateral: ("npc.clownfish.male.fin"), + ), + fin_r: ( + offset: (-0.5, -3.0, -4.0), + lateral: ("npc.clownfish.male.fin"), + ), + ), + (Piranha, Male): ( + fin_l: ( + offset: (-0.5, -4.0, -3.0), + lateral: ("npc.piranha.male.fin"), + ), + fin_r: ( + offset: (-0.5, -4.0, -3.0), + lateral: ("npc.piranha.male.fin"), + ), + ), + (Piranha, Female): ( + fin_l: ( + offset: (-0.5, -4.0, -3.0), + lateral: ("npc.piranha.male.fin"), + ), + fin_r: ( + offset: (-0.5, -4.0, -3.0), + lateral: ("npc.piranha.male.fin"), + ), + ), +}) diff --git a/assets/voxygen/voxel/glider/basic_red.vox b/assets/voxygen/voxel/glider/basic_red.vox new file mode 100644 index 0000000..b74c00d Binary files /dev/null and b/assets/voxygen/voxel/glider/basic_red.vox differ diff --git a/assets/voxygen/voxel/glider/basic_white.vox b/assets/voxygen/voxel/glider/basic_white.vox new file mode 100644 index 0000000..6dcb62d Binary files /dev/null and b/assets/voxygen/voxel/glider/basic_white.vox differ diff --git a/assets/voxygen/voxel/glider/blue.vox b/assets/voxygen/voxel/glider/blue.vox new file mode 100644 index 0000000..39f2f1c Binary files /dev/null and b/assets/voxygen/voxel/glider/blue.vox differ diff --git a/assets/voxygen/voxel/glider/butterfly1.vox b/assets/voxygen/voxel/glider/butterfly1.vox new file mode 100644 index 0000000..f759444 Binary files /dev/null and b/assets/voxygen/voxel/glider/butterfly1.vox differ diff --git a/assets/voxygen/voxel/glider/butterfly2.vox b/assets/voxygen/voxel/glider/butterfly2.vox new file mode 100644 index 0000000..dbc4aaa Binary files /dev/null and b/assets/voxygen/voxel/glider/butterfly2.vox differ diff --git a/assets/voxygen/voxel/glider/butterfly3.vox b/assets/voxygen/voxel/glider/butterfly3.vox new file mode 100644 index 0000000..677f170 Binary files /dev/null and b/assets/voxygen/voxel/glider/butterfly3.vox differ diff --git a/assets/voxygen/voxel/glider/cloverleaf.vox b/assets/voxygen/voxel/glider/cloverleaf.vox new file mode 100644 index 0000000..c7fd44b Binary files /dev/null and b/assets/voxygen/voxel/glider/cloverleaf.vox differ diff --git a/assets/voxygen/voxel/glider/cultists.vox b/assets/voxygen/voxel/glider/cultists.vox new file mode 100644 index 0000000..997223e Binary files /dev/null and b/assets/voxygen/voxel/glider/cultists.vox differ diff --git a/assets/voxygen/voxel/glider/leaves.vox b/assets/voxygen/voxel/glider/leaves.vox new file mode 100644 index 0000000..a8e25ee Binary files /dev/null and b/assets/voxygen/voxel/glider/leaves.vox differ diff --git a/assets/voxygen/voxel/glider/moonrise.vox b/assets/voxygen/voxel/glider/moonrise.vox new file mode 100644 index 0000000..dee70f0 Binary files /dev/null and b/assets/voxygen/voxel/glider/moonrise.vox differ diff --git a/assets/voxygen/voxel/glider/moth.vox b/assets/voxygen/voxel/glider/moth.vox new file mode 100644 index 0000000..c09e838 Binary files /dev/null and b/assets/voxygen/voxel/glider/moth.vox differ diff --git a/assets/voxygen/voxel/glider/sandraptor.vox b/assets/voxygen/voxel/glider/sandraptor.vox new file mode 100644 index 0000000..f485c6b Binary files /dev/null and b/assets/voxygen/voxel/glider/sandraptor.vox differ diff --git a/assets/voxygen/voxel/glider/snowraptor.vox b/assets/voxygen/voxel/glider/snowraptor.vox new file mode 100644 index 0000000..effbb50 Binary files /dev/null and b/assets/voxygen/voxel/glider/snowraptor.vox differ diff --git a/assets/voxygen/voxel/glider/sunset.vox b/assets/voxygen/voxel/glider/sunset.vox new file mode 100644 index 0000000..c58de6a Binary files /dev/null and b/assets/voxygen/voxel/glider/sunset.vox differ diff --git a/assets/voxygen/voxel/glider/vroom.vox b/assets/voxygen/voxel/glider/vroom.vox new file mode 100644 index 0000000..9de7d65 Binary files /dev/null and b/assets/voxygen/voxel/glider/vroom.vox differ diff --git a/assets/voxygen/voxel/glider/winter_wings.vox b/assets/voxygen/voxel/glider/winter_wings.vox new file mode 100644 index 0000000..961623b Binary files /dev/null and b/assets/voxygen/voxel/glider/winter_wings.vox differ diff --git a/assets/voxygen/voxel/glider/woodraptor.vox b/assets/voxygen/voxel/glider/woodraptor.vox new file mode 100644 index 0000000..b4fead3 Binary files /dev/null and b/assets/voxygen/voxel/glider/woodraptor.vox differ diff --git a/assets/voxygen/voxel/golem_central_manifest.ron b/assets/voxygen/voxel/golem_central_manifest.ron new file mode 100644 index 0000000..5b30ffe --- /dev/null +++ b/assets/voxygen/voxel/golem_central_manifest.ron @@ -0,0 +1,344 @@ +({ + (StoneGolem, Male): ( + head: ( + offset: (-3.5, -4.0, -0.0), + central: ("npc.stonegolem.male.head"), + ), + jaw: ( + offset: (-3.5, -4.0, -0.0), + central: ("armor.empty"), + ), + torso_upper: ( + offset: (-10.5, -10.5, -10.5), + central: ("npc.stonegolem.male.chest_upper"), + ), + torso_lower: ( + offset: (-4.5, -4.5, -7.0), + central: ("npc.stonegolem.male.chest_lower"), + ), + ), + (StoneGolem, Female): ( + head: ( + offset: (-3.5, -4.0, -0.0), + central: ("npc.stonegolem.male.head"), + ), + jaw: ( + offset: (-3.5, -4.0, -0.0), + central: ("armor.empty"), + ), + torso_upper: ( + offset: (-10.5, -10.5, -10.5), + central: ("npc.stonegolem.male.chest_upper"), + ), + torso_lower: ( + offset: (-4.5, -4.5, -7.0), + central: ("npc.stonegolem.male.chest_lower"), + ), + ), + (Treant, Male): ( + head: ( + offset: (-6.0, -6.5, 5.0), + central: ("npc.treant.male.head"), + ), + jaw: ( + offset: (-7.0, 0.0, -3.0), + central: ("npc.treant.male.jaw"), + ), + torso_upper: ( + offset: (-18.0, -16.0, -15.5), + central: ("npc.treant.male.chest_upper"), + ), + torso_lower: ( + offset: (-8.0, -15.0, -10.0), + central: ("npc.treant.male.chest_lower"), + ), + ), + (Treant, Female): ( + head: ( + offset: (-6.0, -6.5, 5.0), + central: ("npc.treant.male.head"), + ), + jaw: ( + offset: (-7.0, 0.0, -3.0), + central: ("npc.treant.male.jaw"), + ), + torso_upper: ( + offset: (-18.0, -16.0, -15.5), + central: ("npc.treant.male.chest_upper"), + ), + torso_lower: ( + offset: (-8.0, -15.0, -10.0), + central: ("npc.treant.male.chest_lower"), + ), + ), + (Gravewarden, Male): ( + head: ( + offset: (-10.5, -3.0, -3.0), + central: ("npc.gravewarden.male.head"), + ), + jaw: ( + offset: (-9.5, 0.0, -3.0), + central: ("armor.empty"), + ), + torso_upper: ( + offset: (-9.5, -7.0, -6.5), + central: ("npc.gravewarden.male.chest_upper"), + ), + torso_lower: ( + offset: (-9.5, -7.0, -8.0), + central: ("npc.gravewarden.male.chest_lower"), + ), + ), + (Gravewarden, Female): ( + head: ( + offset: (-10.5, -3.0, -3.0), + central: ("npc.gravewarden.male.head"), + ), + jaw: ( + offset: (-9.5, 0.0, -3.0), + central: ("armor.empty"), + ), + torso_upper: ( + offset: (-9.5, -7.0, -6.5), + central: ("npc.gravewarden.male.chest_upper"), + ), + torso_lower: ( + offset: (-9.5, -7.0, -8.0), + central: ("npc.gravewarden.male.chest_lower"), + ), + ), + (ClayGolem, Male): ( + head: ( + offset: (-7.5, -3.5, -3.0), + central: ("npc.claygolem.male.claygolem"), + model_index: 0, + ), + jaw: ( + offset: (-9.5, 0.0, -3.0), + central: ("armor.empty"), + ), + torso_upper: ( + offset: (-13.5, -7.5, -8.0), + central: ("npc.claygolem.male.claygolem"), + model_index: 1, + ), + torso_lower: ( + offset: (-8.5, -7.0, -7.0), + central: ("npc.claygolem.male.claygolem"), + model_index: 2, + ), + ), + (ClayGolem, Female): ( + head: ( + offset: (-7.5, -3.5, -3.0), + central: ("npc.claygolem.male.claygolem"), + model_index: 0, + ), + jaw: ( + offset: (-9.5, 0.0, -3.0), + central: ("armor.empty"), + ), + torso_upper: ( + offset: (-13.5, -7.5, -8.0), + central: ("npc.claygolem.male.claygolem"), + model_index: 1, + ), + torso_lower: ( + offset: (-8.5, -7.0, -7.0), + central: ("npc.claygolem.male.claygolem"), + model_index: 2, + ), + ), + (AncientEffigy, Male): ( + head: ( + offset: (-7.5, -3.0, -5.0), + central: ("npc.ancienteffigy.male.ancienteffigy"), + model_index: 0, + ), + jaw: ( + offset: (-9.5, 0.0, -3.0), + central: ("armor.empty"), + ), + torso_upper: ( + offset: (-11.5, -5.0, -5.5), + central: ("npc.ancienteffigy.male.ancienteffigy"), + model_index: 1, + ), + torso_lower: ( + offset: (-7.5, -5.5, -5.5), + central: ("npc.ancienteffigy.male.ancienteffigy"), + model_index: 2, + ), + ), + (AncientEffigy, Female): ( + head: ( + offset: (-7.5, -3.0, -5.0), + central: ("npc.ancienteffigy.male.ancienteffigy"), + model_index: 0, + ), + jaw: ( + offset: (-9.5, 0.0, -3.0), + central: ("armor.empty"), + ), + torso_upper: ( + offset: (-11.5, -5.0, -5.5), + central: ("npc.ancienteffigy.male.ancienteffigy"), + model_index: 1, + ), + torso_lower: ( + offset: (-7.5, -5.5, -5.5), + central: ("npc.ancienteffigy.male.ancienteffigy"), + model_index: 2, + ), + ), + (WoodGolem, Male): ( + head: ( + offset: (-6.5, -4.5, -3.0), + central: ("npc.woodgolem.male.head"), + ), + jaw: ( + offset: (-9.5, 0.0, -3.0), + central: ("armor.empty"), + ), + torso_upper: ( + offset: (-6.5, -7.0, -4.5), + central: ("npc.woodgolem.male.chest_upper"), + ), + torso_lower: ( + offset: (-2.5, -3.5, -7.0), + central: ("npc.woodgolem.male.chest_lower"), + ), + ), + (WoodGolem, Female): ( + head: ( + offset: (-6.5, -4.5, -3.0), + central: ("npc.woodgolem.male.head"), + ), + jaw: ( + offset: (-9.5, 0.0, -3.0), + central: ("armor.empty"), + ), + torso_upper: ( + offset: (-6.5, -7.0, -4.5), + central: ("npc.woodgolem.male.chest_upper"), + ), + torso_lower: ( + offset: (-2.5, -3.5, -7.0), + central: ("npc.woodgolem.male.chest_lower"), + ), + ), + (CoralGolem, Male): ( + head: ( + offset: (-8.5, -2.5, -7.0), + central: ("npc.coralgolem.male.head"), + ), + jaw: ( + offset: (-9.5, 0.0, -3.0), + central: ("armor.empty"), + ), + torso_upper: ( + offset: (-11.5, -16.0, -11.5), + central: ("npc.coralgolem.male.chest_upper"), + ), + torso_lower: ( + offset: (-4.5, -4.0, -8.0), + central: ("npc.coralgolem.male.chest_lower"), + ), + ), + (CoralGolem, Female): ( + head: ( + offset: (-8.5, -2.5, -7.0), + central: ("npc.coralgolem.male.head"), + ), + jaw: ( + offset: (-9.5, 0.0, -3.0), + central: ("armor.empty"), + ), + torso_upper: ( + offset: (-11.5, -16.0, -11.5), + central: ("npc.coralgolem.male.chest_upper"), + ), + torso_lower: ( + offset: (-4.5, -4.0, -8.0), + central: ("npc.coralgolem.male.chest_lower"), + ), + ), + (Mogwai, Male): ( + head: ( + offset: (-14.0, -9.5, -10.5), + central: ("npc.mogwai.male.mogwai"), + model_index: 0, + ), + jaw: ( + offset: (-8.0, 8.0, -3.5), + central: ("npc.mogwai.male.mogwai"), + model_index: 1, + ), + torso_upper: ( + offset: (-11.5, -5.0, -5.5), + central: ("armor.empty"), + + ), + torso_lower: ( + offset: (-7.5, -5.5, -5.5), + central: ("armor.empty"), + ), + ), + (Mogwai, Female): ( + head: ( + offset: (-14.0, -9.5, -10.5), + central: ("npc.mogwai.male.mogwai"), + model_index: 0, + ), + jaw: ( + offset: (-8.0, 8.0, -3.5), + central: ("npc.mogwai.male.mogwai"), + model_index: 1, + ), + torso_upper: ( + offset: (-11.5, -5.0, -5.5), + central: ("armor.empty"), + + ), + torso_lower: ( + offset: (-7.5, -5.5, -5.5), + central: ("armor.empty"), + ), + ), + (IronGolem, Male): ( + head: ( + offset: (-6.5, -7.0, -0.0), + central: ("npc.irongolem.male.head"), + ), + jaw: ( + offset: (-3.5, -4.0, -0.0), + central: ("armor.empty"), + ), + torso_upper: ( + offset: (-10.5, -11.5, -10.5), + central: ("npc.irongolem.male.chest_upper"), + ), + torso_lower: ( + offset: (-10.5, -8.0, -10.0), + central: ("npc.irongolem.male.chest_lower"), + ), + ), + (IronGolem, Female): ( + head: ( + offset: (-6.5, -7.0, -0.0), + central: ("npc.irongolem.male.head"), + ), + jaw: ( + offset: (-3.5, -4.0, -0.0), + central: ("armor.empty"), + ), + torso_upper: ( + offset: (-10.5, -11.5, -10.5), + central: ("npc.irongolem.male.chest_upper"), + ), + torso_lower: ( + offset: (-10.5, -8.0, -10.0), + central: ("npc.irongolem.male.chest_lower"), + ), + ), +}) diff --git a/assets/voxygen/voxel/golem_lateral_manifest.ron b/assets/voxygen/voxel/golem_lateral_manifest.ron new file mode 100644 index 0000000..6a54de4 --- /dev/null +++ b/assets/voxygen/voxel/golem_lateral_manifest.ron @@ -0,0 +1,634 @@ +({ + (StoneGolem, Male): ( + shoulder_l: ( + offset: (-18.0, -7.5, -7.0), + lateral: ("npc.stonegolem.male.shoulder_l"), + ), + shoulder_r: ( + offset: (0.0, -7.5, -7.0), + lateral: ("npc.stonegolem.male.shoulder_r"), + ), + hand_l: ( + offset: (-9.0, -11.5, -26.0), + lateral: ("npc.stonegolem.male.hand_l"), + ), + hand_r: ( + offset: (-9.0, -11.5, -26.0), + lateral: ("npc.stonegolem.male.hand_r"), + ), + leg_l: ( + offset: (-7.0, -3.5, -9.0), + lateral: ("npc.stonegolem.male.leg_l"), + ), + leg_r: ( + offset: (0.0, -3.5, -9.0), + lateral: ("npc.stonegolem.male.leg_r"), + ), + foot_l: ( + offset: (-4.5, -4.5, -11.0), + lateral: ("npc.stonegolem.male.foot_l"), + ), + foot_r: ( + offset: (-4.5, -4.5, -11.0), + lateral: ("npc.stonegolem.male.foot_r"), + ) + ), + (StoneGolem, Female): ( + shoulder_l: ( + offset: (-18.0, -7.5, -7.0), + lateral: ("npc.stonegolem.male.shoulder_l"), + ), + shoulder_r: ( + offset: (0.0, -7.5, -7.0), + lateral: ("npc.stonegolem.male.shoulder_r"), + ), + hand_l: ( + offset: (-9.0, -11.5, -26.0), + lateral: ("npc.stonegolem.male.hand_l"), + ), + hand_r: ( + offset: (-9.0, -11.5, -26.0), + lateral: ("npc.stonegolem.male.hand_r"), + ), + leg_l: ( + offset: (-7.0, -3.5, -9.0), + lateral: ("npc.stonegolem.male.leg_l"), + ), + leg_r: ( + offset: (0.0, -3.5, -9.0), + lateral: ("npc.stonegolem.male.leg_r"), + ), + foot_l: ( + offset: (-4.5, -4.5, -11.0), + lateral: ("npc.stonegolem.male.foot_l"), + ), + foot_r: ( + offset: (-4.5, -4.5, -11.0), + lateral: ("npc.stonegolem.male.foot_r"), + ) + ), + (Treant, Male): ( + shoulder_l: ( + offset: (-16.0, -7.0, -8.5), + lateral: ("npc.treant.male.shoulder_l"), + ), + shoulder_r: ( + offset: (0.0, -7.0, -8.5), + lateral: ("npc.treant.male.shoulder_r"), + ), + hand_l: ( + offset: (-5.5, -5.5, -17.0), + lateral: ("npc.treant.male.hand_l"), + ), + hand_r: ( + offset: (-5.5, -5.5, -17.0), + lateral: ("npc.treant.male.hand_r"), + ), + leg_l: ( + offset: (-6.0, -9.5, -9.0), + lateral: ("npc.treant.male.leg_l"), + ), + leg_r: ( + offset: (0.0, -9.5, -9.0), + lateral: ("npc.treant.male.leg_r"), + ), + foot_l: ( + offset: (-4.5, -4.5, -8.0), + lateral: ("npc.treant.male.foot_l"), + ), + foot_r: ( + offset: (-4.5, -4.5, -8.0), + lateral: ("npc.treant.male.foot_r"), + ) + ), + (Treant, Female): ( + shoulder_l: ( + offset: (-16.0, -7.0, -8.5), + lateral: ("npc.treant.male.shoulder_l"), + ), + shoulder_r: ( + offset: (0.0, -7.0, -8.5), + lateral: ("npc.treant.male.shoulder_r"), + ), + hand_l: ( + offset: (-5.5, -5.5, -17.0), + lateral: ("npc.treant.male.hand_l"), + ), + hand_r: ( + offset: (-5.5, -5.5, -17.0), + lateral: ("npc.treant.male.hand_r"), + ), + leg_l: ( + offset: (-6.0, -9.5, -9.0), + lateral: ("npc.treant.male.leg_l"), + ), + leg_r: ( + offset: (0.0, -9.5, -9.0), + lateral: ("npc.treant.male.leg_r"), + ), + foot_l: ( + offset: (-4.5, -4.5, -8.0), + lateral: ("npc.treant.male.foot_l"), + ), + foot_r: ( + offset: (-4.5, -4.5, -8.0), + lateral: ("npc.treant.male.foot_r"), + ) + ), + (Gravewarden, Male): ( + shoulder_l: ( + offset: (-13.0, -3.5, -6.5), + lateral: ("npc.gravewarden.male.shoulder_l"), + ), + shoulder_r: ( + offset: (0.0, -3.5, -6.5), + lateral: ("npc.gravewarden.male.shoulder_r"), + ), + hand_l: ( + offset: (-7.5, -6.5, -17.0), + lateral: ("npc.gravewarden.male.hand_l"), + ), + hand_r: ( + offset: (-7.5, -6.5, -17.0), + lateral: ("npc.gravewarden.male.hand_r"), + ), + leg_l: ( + offset: (-8.0, -4.0, -10.0), + lateral: ("npc.gravewarden.male.leg_l"), + ), + leg_r: ( + offset: (0.0, -4.0, -10.0), + lateral: ("npc.gravewarden.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -3.0, -7.0), + lateral: ("npc.gravewarden.male.foot_l"), + ), + foot_r: ( + offset: (-2.5, -3.0, -7.0), + lateral: ("npc.gravewarden.male.foot_r"), + ) + ), + (Gravewarden, Female): ( + shoulder_l: ( + offset: (-13.0, -3.5, -6.5), + lateral: ("npc.gravewarden.male.shoulder_l"), + ), + shoulder_r: ( + offset: (0.0, -3.5, -6.5), + lateral: ("npc.gravewarden.male.shoulder_r"), + ), + hand_l: ( + offset: (-7.5, -6.5, -17.0), + lateral: ("npc.gravewarden.male.hand_l"), + ), + hand_r: ( + offset: (-7.5, -6.5, -17.0), + lateral: ("npc.gravewarden.male.hand_r"), + ), + leg_l: ( + offset: (-8.0, -4.0, -10.0), + lateral: ("npc.gravewarden.male.leg_l"), + ), + leg_r: ( + offset: (0.0, -4.0, -10.0), + lateral: ("npc.gravewarden.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -3.0, -7.0), + lateral: ("npc.gravewarden.male.foot_l"), + ), + foot_r: ( + offset: (-2.5, -3.0, -7.0), + lateral: ("npc.gravewarden.male.foot_r"), + ) + ), + (ClayGolem, Male): ( + shoulder_l: ( + offset: (-9.0, -2.5, -4.0), + lateral: ("npc.claygolem.male.claygolem"), + model_index: 3, + ), + shoulder_r: ( + offset: (0.0, -2.5, -4.0), + lateral: ("npc.claygolem.male.claygolem"), + model_index: 4, + ), + hand_l: ( + offset: (-5.5, -5.0, -18.0), + lateral: ("npc.claygolem.male.claygolem"), + model_index: 5, + ), + hand_r: ( + offset: (-5.5, -5.0, -18.0), + lateral: ("npc.claygolem.male.claygolem"), + model_index: 6, + ), + leg_l: ( + offset: (-7.0, -4.0, -7.0), + lateral: ("npc.claygolem.male.claygolem"), + model_index: 7, + ), + leg_r: ( + offset: (0.0, -4.0, -7.0), + lateral: ("npc.claygolem.male.claygolem"), + model_index: 8, + ), + foot_l: ( + offset: (-4.0, -5.0, -7.0), + lateral: ("npc.claygolem.male.claygolem"), + model_index: 9, + ), + foot_r: ( + offset: (-4.0, -5.0, -7.0), + lateral: ("npc.claygolem.male.claygolem"), + model_index: 10, + ), + ), + (ClayGolem, Female): ( + shoulder_l: ( + offset: (-9.0, -2.5, -4.0), + lateral: ("npc.claygolem.male.claygolem"), + model_index: 3, + ), + shoulder_r: ( + offset: (0.0, -2.5, -4.0), + lateral: ("npc.claygolem.male.claygolem"), + model_index: 4, + ), + hand_l: ( + offset: (-5.5, -5.0, -18.0), + lateral: ("npc.claygolem.male.claygolem"), + model_index: 5, + ), + hand_r: ( + offset: (-5.5, -5.0, -18.0), + lateral: ("npc.claygolem.male.claygolem"), + model_index: 6, + ), + leg_l: ( + offset: (-7.0, -4.0, -7.0), + lateral: ("npc.claygolem.male.claygolem"), + model_index: 7, + ), + leg_r: ( + offset: (0.0, -4.0, -7.0), + lateral: ("npc.claygolem.male.claygolem"), + model_index: 8, + ), + foot_l: ( + offset: (-4.0, -5.0, -7.0), + lateral: ("npc.claygolem.male.claygolem"), + model_index: 9, + ), + foot_r: ( + offset: (-4.0, -5.0, -7.0), + lateral: ("npc.claygolem.male.claygolem"), + model_index: 10, + ), + ), + (AncientEffigy, Male): ( + shoulder_l: ( + offset: (-9.0, -2.5, -4.0), + lateral: ("armor.empty"), + + ), + shoulder_r: ( + offset: (0.0, -2.5, -4.0), + lateral: ("armor.empty"), + ), + hand_l: ( + offset: (-5.5, -5.0, -18.0), + lateral: ("armor.empty"), + ), + hand_r: ( + offset: (-5.5, -5.0, -18.0), + lateral: ("armor.empty"), + ), + leg_l: ( + offset: (-7.0, -4.0, -7.0), + lateral: ("armor.empty"), + ), + leg_r: ( + offset: (0.0, -4.0, -7.0), + lateral: ("armor.empty"), + ), + foot_l: ( + offset: (-4.0, -5.0, -7.0), + lateral: ("armor.empty"), + ), + foot_r: ( + offset: (-4.0, -5.0, -7.0), + lateral: ("armor.empty"), + ), + ), + (AncientEffigy, Female): ( + shoulder_l: ( + offset: (-9.0, -2.5, -4.0), + lateral: ("armor.empty"), + + ), + shoulder_r: ( + offset: (0.0, -2.5, -4.0), + lateral: ("armor.empty"), + ), + hand_l: ( + offset: (-5.5, -5.0, -18.0), + lateral: ("armor.empty"), + ), + hand_r: ( + offset: (-5.5, -5.0, -18.0), + lateral: ("armor.empty"), + ), + leg_l: ( + offset: (-7.0, -4.0, -7.0), + lateral: ("armor.empty"), + ), + leg_r: ( + offset: (0.0, -4.0, -7.0), + lateral: ("armor.empty"), + ), + foot_l: ( + offset: (-4.0, -5.0, -7.0), + lateral: ("armor.empty"), + ), + foot_r: ( + offset: (-4.0, -5.0, -7.0), + lateral: ("armor.empty"), + ), + ), + (WoodGolem, Male): ( + shoulder_l: ( + offset: (-9.0, -5.5, -5.5), + lateral: ("npc.woodgolem.male.shoulder_l"), + ), + shoulder_r: ( + offset: (0.0, -5.5, -5.5), + lateral: ("npc.woodgolem.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.0, -6.5, -14.0), + lateral: ("npc.woodgolem.male.hand_l"), + ), + hand_r: ( + offset: (-4.0, -6.5, -14.0), + lateral: ("npc.woodgolem.male.hand_r"), + ), + leg_l: ( + offset: (-4.0, -3.5, -4.5), + lateral: ("npc.woodgolem.male.leg_l"), + ), + leg_r: ( + offset: (0.0, -3.5, -4.5), + lateral: ("npc.woodgolem.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -4.0, -8.0), + lateral: ("npc.woodgolem.male.foot_l"), + ), + foot_r: ( + offset: (-3.5, -4.0, -8.0), + lateral: ("npc.woodgolem.male.foot_r"), + ) + ), + (WoodGolem, Female): ( + shoulder_l: ( + offset: (-9.0, -5.5, -5.5), + lateral: ("npc.woodgolem.male.shoulder_l"), + ), + shoulder_r: ( + offset: (0.0, -5.5, -5.5), + lateral: ("npc.woodgolem.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.0, -6.5, -14.0), + lateral: ("npc.woodgolem.male.hand_l"), + ), + hand_r: ( + offset: (-4.0, -6.5, -14.0), + lateral: ("npc.woodgolem.male.hand_r"), + ), + leg_l: ( + offset: (-4.0, -3.5, -4.5), + lateral: ("npc.woodgolem.male.leg_l"), + ), + leg_r: ( + offset: (0.0, -3.5, -4.5), + lateral: ("npc.woodgolem.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -4.0, -8.0), + lateral: ("npc.woodgolem.male.foot_l"), + ), + foot_r: ( + offset: (-3.5, -4.0, -8.0), + lateral: ("npc.woodgolem.male.foot_r"), + ) + ), + (CoralGolem, Male): ( + shoulder_l: ( + offset: (-7.5, -6.5, -6.5), + lateral: ("npc.coralgolem.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-7.5, -6.5, -6.5), + lateral: ("npc.coralgolem.male.shoulder_r"), + ), + hand_l: ( + offset: (-7.0, -6.0, -15.0), + lateral: ("npc.coralgolem.male.hand_l"), + ), + hand_r: ( + offset: (-7.0, -6.0, -15.0), + lateral: ("npc.coralgolem.male.hand_r"), + ), + leg_l: ( + offset: (-5.0, -3.5, -4.0), + lateral: ("npc.coralgolem.male.leg_l"), + ), + leg_r: ( + offset: (0.0, -3.5, -4.0), + lateral: ("npc.coralgolem.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -4.5, -9.0), + lateral: ("npc.coralgolem.male.foot_l"), + ), + foot_r: ( + offset: (-3.5, -4.5, -9.0), + lateral: ("npc.coralgolem.male.foot_r"), + ) + ), + (CoralGolem, Female): ( + shoulder_l: ( + offset: (-7.5, -6.5, -6.5), + lateral: ("npc.coralgolem.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-7.5, -6.5, -6.5), + lateral: ("npc.coralgolem.male.shoulder_r"), + ), + hand_l: ( + offset: (-7.0, -6.0, -15.0), + lateral: ("npc.coralgolem.male.hand_l"), + ), + hand_r: ( + offset: (-7.0, -6.0, -15.0), + lateral: ("npc.coralgolem.male.hand_r"), + ), + leg_l: ( + offset: (-5.0, -3.5, -4.0), + lateral: ("npc.coralgolem.male.leg_l"), + ), + leg_r: ( + offset: (0.0, -3.5, -4.0), + lateral: ("npc.coralgolem.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -4.5, -9.0), + lateral: ("npc.coralgolem.male.foot_l"), + ), + foot_r: ( + offset: (-3.5, -4.5, -9.0), + lateral: ("npc.coralgolem.male.foot_r"), + ) + ), + (Mogwai, Male): ( + shoulder_l: ( + offset: (-9.0, -2.5, -4.0), + lateral: ("armor.empty"), + + ), + shoulder_r: ( + offset: (0.0, -2.5, -4.0), + lateral: ("armor.empty"), + ), + hand_l: ( + offset: (-5.5, -5.0, -18.0), + lateral: ("armor.empty"), + ), + hand_r: ( + offset: (-5.5, -5.0, -18.0), + lateral: ("armor.empty"), + ), + leg_l: ( + offset: (-7.0, -4.0, -7.0), + lateral: ("armor.empty"), + ), + leg_r: ( + offset: (0.0, -4.0, -7.0), + lateral: ("armor.empty"), + ), + foot_l: ( + offset: (-4.0, -5.0, -7.0), + lateral: ("armor.empty"), + ), + foot_r: ( + offset: (-4.0, -5.0, -7.0), + lateral: ("armor.empty"), + ), + ), + (Mogwai, Female): ( + shoulder_l: ( + offset: (-9.0, -2.5, -4.0), + lateral: ("armor.empty"), + + ), + shoulder_r: ( + offset: (0.0, -2.5, -4.0), + lateral: ("armor.empty"), + ), + hand_l: ( + offset: (-5.5, -5.0, -18.0), + lateral: ("armor.empty"), + ), + hand_r: ( + offset: (-5.5, -5.0, -18.0), + lateral: ("armor.empty"), + ), + leg_l: ( + offset: (-7.0, -4.0, -7.0), + lateral: ("armor.empty"), + ), + leg_r: ( + offset: (0.0, -4.0, -7.0), + lateral: ("armor.empty"), + ), + foot_l: ( + offset: (-4.0, -5.0, -7.0), + lateral: ("armor.empty"), + ), + foot_r: ( + offset: (-4.0, -5.0, -7.0), + lateral: ("armor.empty"), + ), + ), + (IronGolem, Male): ( + shoulder_l: ( + offset: (-20.0, -8.5, -8.0), + lateral: ("npc.irongolem.male.shoulder_l"), + ), + shoulder_r: ( + offset: (0.0, -7.5, -8.0), + lateral: ("npc.irongolem.male.shoulder_r"), + ), + hand_l: ( + offset: (-8.0, -7.5, -22.0), + lateral: ("npc.irongolem.male.hand_l"), + ), + hand_r: ( + offset: (-8.0, -7.5, -22.0), + lateral: ("npc.irongolem.male.hand_r"), + ), + leg_l: ( + offset: (-6.0, -3.5, -10.0), + lateral: ("npc.irongolem.male.leg_l"), + ), + leg_r: ( + offset: (0.0, -3.5, -10.0), + lateral: ("npc.irongolem.male.leg_r"), + ), + foot_l: ( + offset: (-4.5, -5.0, -10.5), + lateral: ("npc.irongolem.male.foot_l"), + ), + foot_r: ( + offset: (-4.5, -5.0, -10.5), + lateral: ("npc.irongolem.male.foot_r"), + ) + ), + (IronGolem, Female): ( + shoulder_l: ( + offset: (-20.0, -8.5, -8.0), + lateral: ("npc.irongolem.male.shoulder_l"), + ), + shoulder_r: ( + offset: (0.0, -7.5, -8.0), + lateral: ("npc.irongolem.male.shoulder_r"), + ), + hand_l: ( + offset: (-8.0, -7.5, -22.0), + lateral: ("npc.irongolem.male.hand_l"), + ), + hand_r: ( + offset: (-8.0, -7.5, -22.0), + lateral: ("npc.irongolem.male.hand_r"), + ), + leg_l: ( + offset: (-6.0, -3.5, -10.0), + lateral: ("npc.irongolem.male.leg_l"), + ), + leg_r: ( + offset: (0.0, -3.5, -10.0), + lateral: ("npc.irongolem.male.leg_r"), + ), + foot_l: ( + offset: (-4.5, -5.0, -10.5), + lateral: ("npc.irongolem.male.foot_l"), + ), + foot_r: ( + offset: (-4.5, -5.0, -10.5), + lateral: ("npc.irongolem.male.foot_r"), + ) + ), +}) diff --git a/assets/voxygen/voxel/humanoid_armor_back_manifest.ron b/assets/voxygen/voxel/humanoid_armor_back_manifest.ron new file mode 100644 index 0000000..24e9c81 --- /dev/null +++ b/assets/voxygen/voxel/humanoid_armor_back_manifest.ron @@ -0,0 +1,160 @@ +(( + default: ( + vox_spec: ("armor.empty", (0.0, 0.0, 0.0)), + color: None + ), + map: { + "common.items.armor.misc.back.short_0": ( + vox_spec: ("armor.misc.back.short-0", (-5.0, -1.5, -11.0)), + color: None + ), + "common.items.armor.misc.back.admin": ( + vox_spec: ("armor.misc.back.admin", (-5.0, -1.5, -11.0)), + color: None + ), + "common.items.debug.admin_back": ( + vox_spec: ("armor.misc.back.admin", (-5.0, -1.5, -11.0)), + color: None + ), + "common.items.armor.misc.back.dungeon_purple": ( + vox_spec: ("armor.misc.back.dungeon_purple", (-5.0, -1.5, -14.0)), + color: None + ), + "common.items.armor.misc.back.short_1": ( + vox_spec: ("armor.misc.back.short-1", (-5.0, -1.5, -11.0)), + color: None + ), + "common.items.armor.ferocious.back": ( + vox_spec: ("armor.ferocious.back", (-5.0, -1.5, -14.0)), + color: None + ), + "common.items.armor.boreal.back": ( + vox_spec: ("armor.boreal.back", (-5.0, -2.5, -13.0)), + color: None + ), + "common.items.armor.brinestone.back": ( + vox_spec: ("armor.brinestone.back", (-5.0, -2.5, -12.0)), + color: None + ), + "common.items.armor.misc.back.backpack": ( + vox_spec: ("armor.misc.back.backpack", (-7.0, -5.5, -10.0)), + color: None + ), + "common.items.npc_armor.back.backpack_blue": ( + vox_spec: ("armor.misc.back.backpack-grey", (-7.0, -5.5, -10.0)), + color: Some((76, 72, 178)) + ), + "common.items.armor.velorite_mage.back": ( + vox_spec: ("armor.velorite_battlemage.back", (-5.0, -1.5, -14.0)), + color: None + ), + "common.items.debug.admin_back": ( + vox_spec: ("armor.velorite_battlemage.back", (-5.0, -1.5, -14.0)), + color: None + ), + "common.items.debug.admin_back": ( + vox_spec: ("armor.velorite_battlemage.back", (-5.0, -1.5, -14.0)), + color: None + ), + "common.items.debug.dungeon_purple": ( + vox_spec: ("armor.velorite_battlemage.back", (-5.0, -1.5, -14.0)), + color: None + ), + "common.items.npc_armor.back.leather_blue": ( + vox_spec: ("armor.leather_blue.back", (-5.0, -1.5, -10.0)), + color: None + ), + "common.items.armor.hide.rawhide.back": ( + vox_spec: ("armor.hide.rawhide.back", (-4.0, -1.5, -7.0)), + color: None + ), + "common.items.armor.hide.leather.back": ( + vox_spec: ("armor.hide.leather.back", (-5.0, -1.5, -11.0)), + color: None + ), + "common.items.armor.miner.back": ( + vox_spec: ("armor.hide.leather.back", (-5.0, -1.5, -11.0)), + color: None + ), + "common.items.armor.hide.scale.back": ( + vox_spec: ("armor.hide.scale.back", (-5.0, -1.5, -10.0)), + color: None + ), + "common.items.armor.hide.carapace.back": ( + vox_spec: ("armor.hide.carapace.back", (-5.0, -1.5, -10.0)), + color: None + ), + "common.items.armor.hide.primal.back": ( + vox_spec: ("armor.hide.primal.back", (-5.0, -3.5, -10.0)), + color: None + ), + "common.items.armor.hide.dragonscale.back": ( + vox_spec: ("armor.hide.dragonscale.back", (-7.0, -2.5, -12.0)), + color: None + ), + "common.items.armor.savage.back": ( + vox_spec: ("armor.savage.back", (-5.0, -2.5, -11.0)), + color: None + ), + "common.items.armor.cloth.linen.back": ( + vox_spec: ("armor.cloth.linen.back", (-4.0, -1.5, -8.0)), + color: None + ), + "common.items.armor.cloth.woolen.back": ( + vox_spec: ("armor.cloth.woolen.back", (-5.0, -1.5, -8.0)), + color: None + ), + "common.items.armor.cloth.silken.back": ( + vox_spec: ("armor.cloth.silken.back", (-4.0, -1.5, -11.0)), + color: None + ), + "common.items.armor.witch.back": ( + vox_spec: ("armor.witch.back", (-4.0, -1.5, -11.0)), + color: None + ), + "common.items.armor.cloth.druid.back": ( + vox_spec: ("armor.cloth.druid.back", (-5.0, -2.5, -11.0)), + color: None + ), + "common.items.armor.cloth.moonweave.back": ( + vox_spec: ("armor.cloth.moonweave.back", (-4.0, -1.5, -12.0)), + color: None + ), + "common.items.armor.cloth.sunsilk.back": ( + vox_spec: ("armor.cloth.sunsilk.back", (-5.0, -1.5, -13.0)), + color: None + ), + "common.items.armor.mail.bronze.back": ( + vox_spec: ("armor.mail.bronze.back", (-4.0, -1.5, -7.0)), + color: None + ), + "common.items.armor.mail.iron.back": ( + vox_spec: ("armor.mail.iron.back", (-4.0, -1.5, -10.0)), + color: None + ), + "common.items.armor.mail.steel.back": ( + vox_spec: ("armor.mail.steel.back", (-4.0, -1.5, -10.0)), + color: None + ), + "common.items.armor.mail.cobalt.back": ( + vox_spec: ("armor.mail.cobalt.back", (-4.0, -1.5, -11.0)), + color: None + ), + "common.items.armor.mail.bloodsteel.back": ( + vox_spec: ("armor.mail.bloodsteel.back", (-4.0, -2.5, -12.0)), + color: None + ), + "common.items.armor.mail.orichalcum.back": ( + vox_spec: ("armor.mail.orichalcum", (-5.0, -4.5, -13.0), 0), + color: None + ), + "common.items.armor.golemite.back": ( + vox_spec: ("armor.golemite.golemite", (-4.0, -1.5, -12.0), 2), + color: None + ), + "common.items.armor.merchant.back": ( + vox_spec: ("armor.merchant.back", (-8.0, -8.5, -11.0)), + color: None + ), + }, +)) diff --git a/assets/voxygen/voxel/humanoid_armor_belt_manifest.ron b/assets/voxygen/voxel/humanoid_armor_belt_manifest.ron new file mode 100644 index 0000000..ad346e7 --- /dev/null +++ b/assets/voxygen/voxel/humanoid_armor_belt_manifest.ron @@ -0,0 +1,200 @@ +(( + default: ( + vox_spec: ("armor.misc.belt.none", (-5.0, -3.5, 2.0)), + color: None + ), + map: { + "Dark": ( + vox_spec: ("armor.misc.belt.dark", (-4.0, -3.5, 2.0)), + color: None + ), + "TurqCloth": ( + vox_spec: ("armor.misc.belt.cloth_turq", (-4.0, -3.5, -6.0)), + color: None + ), + "BloodCloth": ( + vox_spec: ("armor.misc.belt.cloth_blood", (-4.0, -3.5, -6.0)), + color: Some((29, 26, 33)) + ), + "BlackCloth": ( + vox_spec: ("armor.misc.belt.cloth_black", (-4.0, -3.5, -6.0)), + color: Some((29, 26, 33)) + ), + "common.items.armor.assassin.belt": ( + vox_spec: ("armor.assassin.belt", (-5.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.ferocious.belt": ( + vox_spec: ("armor.ferocious.belt", (-4.0, -3.5, -1.0)), + color: None + ), + "common.items.armor.boreal.belt": ( + vox_spec: ("armor.boreal.belt", (-4.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.brinestone.belt": ( + vox_spec: ("armor.brinestone.belt", (-4.0, -3.5, 1.0)), + color: None + ), + "common.items.armor.cloth_purple.belt": ( + vox_spec: ("armor.cloth_purple.belt", (-5.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.cloth_blue.belt": ( + vox_spec: ("armor.cloth_blue.belt", (-5.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.cloth_green.belt": ( + vox_spec: ("armor.cloth_green.belt", (-5.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.cultist.belt": ( + vox_spec: ("armor.cultist.belt", (-5.0, -3.5, 1.0)), + color: None + ), + "common.items.armor.leather_plate.belt": ( + vox_spec: ("armor.leather_plate.belt", (-4.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.twigs.belt": ( + vox_spec: ("armor.twigs.belt", (-4.0, -3.5, -1.0)), + color: None + ), + "common.items.armor.twigsleaves.belt": ( + vox_spec: ("armor.twigsleaves.belt", (-4.0, -3.5, -1.0)), + color: None + ), + "common.items.armor.twigsflowers.belt": ( + vox_spec: ("armor.twigsflowers.belt", (-4.0, -3.5, -1.0)), + color: None + ), + "common.items.armor.tarasque.belt":( + vox_spec: ("armor.tarasque.belt", (-5.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.bonerattler.belt":( + vox_spec: ("armor.bonerattler.belt", (-5.0, -4.5, 2.0)), + color: None + ), + "common.items.armor.velorite_mage.belt": ( + vox_spec: ("armor.velorite_battlemage.belt", (-5.0, -3.5, 2.0)), + color: None + ), + "common.items.debug.cultist_belt": ( + vox_spec: ("armor.velorite_battlemage.belt", (-5.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.hide.rawhide.belt": ( + vox_spec: ("armor.hide.rawhide.belt", (-4.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.hide.leather.belt": ( + vox_spec: ("armor.hide.leather.belt", (-5.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.miner.belt": ( + vox_spec: ("armor.hide.leather.belt", (-5.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.hide.scale.belt":( + vox_spec: ("armor.hide.scale.belt", (-4.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.hide.carapace.belt":( + vox_spec: ("armor.hide.carapace.belt", (-4.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.hide.primal.belt":( + vox_spec: ("armor.hide.primal.belt", (-4.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.hide.dragonscale.belt":( + vox_spec: ("armor.hide.dragonscale.belt", (-4.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.savage.belt":( + vox_spec: ("armor.savage.belt", (-4.0, -4.5, 2.0)), + color: None + ), + "common.items.armor.witch.belt":( + vox_spec: ("armor.witch.belt", (-4.0, -3.5, -2.0)), + color: None + ), + "common.items.armor.pirate.belt":( + vox_spec: ("armor.pirate.belt", (-4.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.alchemist.belt":( + vox_spec: ("armor.alchemist", (-4.0, -3.5, 2.0), 2), + color: None + ), + "common.items.armor.blacksmith.belt":( + vox_spec: ("armor.blacksmith.belt", (-4.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.chef.belt":( + vox_spec: ("armor.chef.belt", (-4.0, -4.5, 2.0)), + color: None + ), + "common.items.armor.cloth.linen.belt":( + vox_spec: ("armor.cloth.linen.belt", (-4.0, -3.5, 0.0)), + color: None + ), + "common.items.armor.cloth.woolen.belt":( + vox_spec: ("armor.cloth.woolen.belt", (-4.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.cloth.silken.belt":( + vox_spec: ("armor.cloth.silken.belt", (-4.0, -3.5, -2.0)), + color: None + ), + "common.items.armor.cloth.druid.belt":( + vox_spec: ("armor.cloth.druid.belt", (-4.0, -3.5, -1.0)), + color: None + ), + "common.items.armor.cloth.moonweave.belt":( + vox_spec: ("armor.cloth.moonweave.belt", (-4.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.cloth.sunsilk.belt":( + vox_spec: ("armor.cloth.sunsilk.belt", (-4.0, -3.5, -2.0)), + color: None + ), + "common.items.armor.mail.bronze.belt":( + vox_spec: ("armor.mail.bronze.belt", (-4.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.mail.iron.belt":( + vox_spec: ("armor.mail.iron.belt", (-4.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.mail.steel.belt":( + vox_spec: ("armor.mail.steel.belt", (-5.0, -4.5, 2.0)), + color: None + ), + "common.items.armor.mail.cobalt.belt":( + vox_spec: ("armor.mail.cobalt.belt", (-5.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.mail.bloodsteel.belt":( + vox_spec: ("armor.mail.bloodsteel.belt", (-5.0, -3.5, 1.0)), + color: None + ), + "common.items.armor.mail.orichalcum.belt":( + vox_spec: ("armor.mail.orichalcum", (-4.0, -3.5, 1.0), 1), + color: None + ), + "common.items.armor.golemite.belt":( + vox_spec: ("armor.golemite.golemite", (-4.0, -3.5, 1.0), 6), + color: None + ), + "common.items.armor.cardinal.belt": ( + vox_spec: ("armor.cardinal.belt", (-4.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.merchant.belt": ( + vox_spec: ("armor.merchant.belt", (-5.0, -3.5, 2.0)), + color: None + ), + }, +)) diff --git a/assets/voxygen/voxel/humanoid_armor_chest_manifest.ron b/assets/voxygen/voxel/humanoid_armor_chest_manifest.ron new file mode 100644 index 0000000..712c438 --- /dev/null +++ b/assets/voxygen/voxel/humanoid_armor_chest_manifest.ron @@ -0,0 +1,270 @@ +(( + default: ( + vox_spec: ("armor.misc.chest.none", (-7.0, -3.5, 2.0)), + color: None + ), + map: { + "Blue": ( + vox_spec: ("armor.misc.chest.grayscale", (-7.0, -3.5, 2.0)), + color: Some((44, 74, 109)) + ), + "Brown": ( + vox_spec: ("armor.misc.chest.grayscale", (-7.0, -3.5, 2.0)), + color: Some((90, 49, 43)) + ), + "Dark": ( + vox_spec: ("armor.misc.chest.grayscale", (-7.0, -3.5, 2.0)), + color: Some((73, 63, 59)) + ), + "Green": ( + vox_spec: ("armor.misc.chest.grayscale", (-7.0, -3.5, 2.0)), + color: Some((59, 95, 67)) + ), + "Orange": ( + vox_spec: ("armor.misc.chest.grayscale", (-7.0, -3.5, 2.0)), + color: Some((109, 58, 58)) + ), + "Midnight": ( + vox_spec: ("armor.misc.chest.grayscale", (-7.0, -3.5, 2.0)), + color: Some((29, 26, 33)) + ), + "common.items.armor.ferocious.chest": ( + vox_spec: ("armor.ferocious.chest", (-7.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.boreal.chest": ( + vox_spec: ("armor.boreal.chest", (-7.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.brinestone.chest": ( + vox_spec: ("armor.brinestone.chest", (-7.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.assassin.chest": ( + vox_spec: ("armor.assassin.chest", (-7.0, -3.5, 2.0)), + color: None + ), + "Kimono": ( + vox_spec: ("armor.misc.chest.cloth_red_kimono", (-7.0, -3.5, 2.0)), + color: None + ), + "common.items.npc_armor.chest.plate_red": ( + vox_spec: ("armor.misc.chest.plate_grey", (-7.0, -3.5, 2.0)), + color: Some((124, 38, 46)) + ), + "common.items.npc_armor.chest.leather_blue": ( + vox_spec: ("armor.leather_blue.chest", (-7.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.cloth_purple.chest": ( + vox_spec: ("armor.cloth_purple.chest", (-7.0, -3.5, 1.0)), + color: None + ), + "common.items.armor.cloth_blue.chest": ( + vox_spec: ("armor.cloth_blue.chest", (-7.0, -3.5, 1.0)), + color: None + ), + "common.items.armor.cloth_green.chest": ( + vox_spec: ("armor.cloth_green.chest", (-7.0, -3.5, 1.0)), + color: None + ), + "common.items.armor.rugged.chest": ( + vox_spec: ("armor.rugged.chest", (-7.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.misc.chest.worker_purple_brown": ( + vox_spec: ("armor.misc.chest.worker_purp_brown", (-7.0, -3.5, 2.0)), + color: None + ), + // Villagers + "common.items.armor.misc.chest.worker_green_0": ( + vox_spec: ("armor.misc.chest.worker_white", (-7.0, -3.5, 2.0)), + color: Some((88, 108, 65)) + ), + "common.items.armor.misc.chest.worker_green_1": ( + vox_spec: ("armor.misc.chest.shirt_white", (-7.0, -3.5, 2.0)), + color: Some((88, 108, 65)) + ), + "common.items.armor.misc.chest.worker_red_0": ( + vox_spec: ("armor.misc.chest.worker_white", (-7.0, -3.5, 2.0)), + color: Some((124, 38, 46)) + ), + "common.items.armor.misc.chest.worker_red_1": ( + vox_spec: ("armor.misc.chest.shirt_white", (-7.0, -3.5, 2.0)), + color: Some((124, 38, 46)) + ), + "common.items.armor.misc.chest.worker_purple_0": ( + vox_spec: ("armor.misc.chest.worker_white", (-7.0, -3.5, 2.0)), + color: Some((64, 47, 56)) + ), + "common.items.armor.misc.chest.worker_purple_1": ( + vox_spec: ("armor.misc.chest.shirt_white", (-7.0, -3.5, 2.0)), + color: Some((64, 47, 56)) + ), + "common.items.armor.misc.chest.worker_yellow_0": ( + vox_spec: ("armor.misc.chest.worker_white", (-7.0, -3.5, 2.0)), + color: Some((184, 132, 40)) + ), + "common.items.armor.misc.chest.worker_yellow_1": ( + vox_spec: ("armor.misc.chest.shirt_white", (-7.0, -3.5, 2.0)), + color: Some((184, 132, 40)) + ), + "common.items.armor.misc.chest.worker_orange_0": ( + vox_spec: ("armor.misc.chest.worker_white", (-7.0, -3.5, 2.0)), + color: Some((135, 82, 67)) + ), + "common.items.armor.misc.chest.worker_orange_1": ( + vox_spec: ("armor.misc.chest.shirt_white", (-7.0, -3.5, 2.0)), + color: Some((135, 82, 67)) + ), + "common.items.armor.twigs.chest": ( + vox_spec: ("armor.twigs.chest", (-7.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.twigsleaves.chest": ( + vox_spec: ("armor.twigsleaves.chest", (-7.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.twigsflowers.chest": ( + vox_spec: ("armor.twigsflowers.chest", (-7.0, -3.5, 2.0)), + color: None + ), + // Cultists + "common.items.armor.cultist.chest": ( + vox_spec: ("armor.cultist.chest", (-7.0, -3.5, 2.0)), + color: Some((30, 0, 64)) + ), + "common.items.armor.leather_plate.chest": ( + vox_spec: ("armor.leather_plate.chest", (-8.0, -4.5, 2.0)), + color: None + ), + "common.items.armor.tarasque.chest":( + vox_spec: ("armor.tarasque.chest", (-8.0, -4.5, 2.0)), + color: None + ), + "common.items.armor.bonerattler.chest":( + vox_spec: ("armor.bonerattler.chest", (-7.0, -4.5, 2.0)), + color: None + ), + "common.items.armor.velorite_mage.chest": ( + vox_spec: ("armor.velorite_battlemage.chest", (-7.0, -3.5, 1.0)), + color: None + ), + "common.items.debug.cultist_chest_blue": ( + vox_spec: ("armor.velorite_battlemage.chest", (-7.0, -3.5, 1.0)), + color: None + ), + "common.items.armor.hide.rawhide.chest": ( + vox_spec: ("armor.hide.rawhide.chest", (-7.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.hide.leather.chest": ( + vox_spec: ("armor.hide.leather.chest", (-7.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.miner.chest": ( + vox_spec: ("armor.miner.chest", (-7.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.hide.scale.chest": ( + vox_spec: ("armor.hide.scale.chest", (-7.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.hide.carapace.chest": ( + vox_spec: ("armor.hide.carapace.chest", (-7.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.hide.primal.chest": ( + vox_spec: ("armor.hide.primal.chest", (-7.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.hide.dragonscale.chest": ( + vox_spec: ("armor.hide.dragonscale.chest", (-7.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.savage.chest": ( + vox_spec: ("armor.hide.savage.chest", (-7.0, -4.0, 1.0)), + color: None + ), + "common.items.armor.witch.chest": ( + vox_spec: ("armor.witch.chest", (-7.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.pirate.chest": ( + vox_spec: ("armor.pirate.chest", (-7.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.alchemist.chest": ( + vox_spec: ("armor.alchemist", (-7.0, -3.5, 2.0), 1), + color: None + ), + "common.items.armor.blacksmith.chest": ( + vox_spec: ("armor.blacksmith.chest", (-7.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.chef.chest": ( + vox_spec: ("armor.chef.chest", (-7.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.cloth.linen.chest": ( + vox_spec: ("armor.cloth.linen.chest", (-7.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.cloth.woolen.chest": ( + vox_spec: ("armor.cloth.woolen.chest", (-7.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.cloth.silken.chest": ( + vox_spec: ("armor.cloth.silken.chest", (-7.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.cloth.druid.chest": ( + vox_spec: ("armor.cloth.druid.chest", (-7.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.cloth.moonweave.chest": ( + vox_spec: ("armor.cloth.moonweave.chest", (-7.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.cloth.sunsilk.chest": ( + vox_spec: ("armor.cloth.sunsilk.chest", (-7.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.mail.bronze.chest": ( + vox_spec: ("armor.mail.bronze.chest", (-7.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.mail.iron.chest": ( + vox_spec: ("armor.mail.iron.chest", (-7.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.mail.steel.chest": ( + vox_spec: ("armor.mail.steel.chest", (-8.0, -4.5, 2.0)), + color: None + ), + "common.items.armor.mail.cobalt.chest": ( + vox_spec: ("armor.mail.cobalt.chest", (-8.0, -4.5, 2.0)), + color: None + ), + "common.items.armor.mail.bloodsteel.chest": ( + vox_spec: ("armor.mail.bloodsteel.chest", (-8.0, -4.5, 2.0)), + color: None + ), + "common.items.armor.mail.orichalcum.chest": ( + vox_spec: ("armor.mail.orichalcum", (-7.0, -3.5, 2.0), 2), + color: None + ), + "common.items.armor.golemite.chest": ( + vox_spec: ("armor.golemite.golemite", (-7.0, -3.5, 2.0), 1), + color: None + ), + "common.items.armor.cardinal.chest": ( + vox_spec: ("armor.cardinal.chest", (-7.0, -3.5, 2.0)), + color: None + ), + "common.items.armor.merchant.chest": ( + vox_spec: ("armor.merchant.chest", (-7.0, -3.5, 1.0)), + color: None + ), + }, +)) diff --git a/assets/voxygen/voxel/humanoid_armor_foot_manifest.ron b/assets/voxygen/voxel/humanoid_armor_foot_manifest.ron new file mode 100644 index 0000000..322e480 --- /dev/null +++ b/assets/voxygen/voxel/humanoid_armor_foot_manifest.ron @@ -0,0 +1,196 @@ +(( + default: ( + vox_spec: ("armor.misc.foot.none", (-2.5, -3.5, -2.0)), + color: None + ), + map: { + "Dark": ( + vox_spec: ("armor.misc.foot.dark", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.assassin.foot": ( + vox_spec: ("armor.assassin.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "Jester": ( + vox_spec: ("armor.misc.foot.dark_jester_elf", (-2.5, -3.0, -2.0)), + color: None + ), + "common.items.armor.cloth_purple.foot": ( + vox_spec: ("armor.cloth_purple.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.ferocious.foot": ( + vox_spec: ("armor.ferocious.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.boreal.foot": ( + vox_spec: ("armor.boreal.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.brinestone.foot": ( + vox_spec: ("armor.brinestone.foot", (-2.5, -4.5, -2.0)), + color: None + ), + "common.items.armor.cloth_blue.foot": ( + vox_spec: ("armor.cloth_blue.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.cloth_green.foot": ( + vox_spec: ("armor.cloth_green.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.misc.foot.sandals": ( + vox_spec: ("armor.misc.foot.cloth_sandal", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.cultist.foot": ( + vox_spec: ("armor.cultist.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.leather_plate.foot": ( + vox_spec: ("armor.leather_plate.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.misc.foot.jackalope_slippers": ( + vox_spec: ("armor.misc.foot.jackalope", (-2.5, -4.5, -2.0)), + color: None + ), + "common.items.armor.twigs.foot": ( + vox_spec: ("armor.twigs.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.twigsleaves.foot": ( + vox_spec: ("armor.twigsleaves.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.twigsflowers.foot": ( + vox_spec: ("armor.twigsflowers.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.tarasque.foot":( + vox_spec: ("armor.tarasque.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.bonerattler.foot":( + vox_spec: ("armor.bonerattler.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.velorite_mage.foot": ( + vox_spec: ("armor.velorite_battlemage.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.debug.cultist_boots": ( + vox_spec: ("armor.velorite_battlemage.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.hide.rawhide.foot": ( + vox_spec: ("armor.hide.rawhide.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.hide.leather.foot": ( + vox_spec: ("armor.hide.leather.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.miner.foot": ( + vox_spec: ("armor.hide.leather.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.hide.scale.foot": ( + vox_spec: ("armor.hide.scale.foot", (-2.5, -4.5, -2.0)), + color: None + ), + "common.items.armor.hide.carapace.foot": ( + vox_spec: ("armor.hide.carapace.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.hide.primal.foot": ( + vox_spec: ("armor.hide.primal.foot", (-2.5, -4.5, -2.0)), + color: None + ), + "common.items.armor.hide.dragonscale.foot": ( + vox_spec: ("armor.hide.dragonscale.foot", (-2.5, -5.5, -2.0)), + color: None + ), + "common.items.armor.savage.foot": ( + vox_spec: ("armor.savage.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.witch.foot": ( + vox_spec: ("armor.witch.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.pirate.foot": ( + vox_spec: ("armor.pirate.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.cloth.linen.foot": ( + vox_spec: ("armor.cloth.linen.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.cloth.woolen.foot": ( + vox_spec: ("armor.cloth.woolen.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.cloth.silken.foot": ( + vox_spec: ("armor.cloth.silken.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.cloth.druid.foot": ( + vox_spec: ("armor.cloth.druid.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.cloth.moonweave.foot": ( + vox_spec: ("armor.cloth.moonweave.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.cloth.sunsilk.foot": ( + vox_spec: ("armor.cloth.sunsilk.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.mail.bronze.foot": ( + vox_spec: ("armor.mail.bronze.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.mail.iron.foot": ( + vox_spec: ("armor.mail.iron.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.mail.steel.foot": ( + vox_spec: ("armor.mail.steel.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.mail.cobalt.foot": ( + vox_spec: ("armor.mail.cobalt.foot", (-2.5, -4.5, -2.0)), + color: None + ), + "common.items.armor.mail.bloodsteel.foot": ( + vox_spec: ("armor.mail.bloodsteel.foot", (-2.5, -4.5, -2.0)), + color: None + ), + "common.items.armor.mail.orichalcum.foot": ( + vox_spec: ("armor.mail.orichalcum", (-2.5, -4.5, -2.0), 3), + color: None + ), + "common.items.armor.golemite.foot": ( + vox_spec: ("armor.golemite.golemite", (-2.5, -4.5, -2.0), 3), + color: None + ), + "common.items.armor.cardinal.foot": ( + vox_spec: ("armor.cardinal.foot",(-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.merchant.foot": ( + vox_spec: ("armor.merchant.foot", (-2.5, -3.5, -2.0)), + color: None + ), + "common.items.armor.misc.foot.ski": ( + vox_spec: ("armor.misc.foot.ski", (-2.5, -15.5, -2.0)), + color: None + ), + "common.items.armor.misc.foot.iceskate": ( + vox_spec: ("armor.misc.foot.iceskate", (-2.5, -4.5, -2.0)), + color: None + ), + }, +)) diff --git a/assets/voxygen/voxel/humanoid_armor_hand_manifest.ron b/assets/voxygen/voxel/humanoid_armor_hand_manifest.ron new file mode 100644 index 0000000..e9c18a7 --- /dev/null +++ b/assets/voxygen/voxel/humanoid_armor_hand_manifest.ron @@ -0,0 +1,444 @@ +(( + default: ( + left: ( + vox_spec: ("armor.misc.hand.none", (-1.5, -1.5, -2.5)), + color: None + ), + right: ( + vox_spec: ("armor.misc.hand.none", (-1.5, -1.5, -2.5)), + color: None + ) + ), + map: { + "common.items.armor.assassin.hand": ( + left: ( + vox_spec: ("armor.assassin.hand", (-1.5, -1.5, -2.5)), + color: None + ), + right: ( + vox_spec: ("armor.assassin.hand", (-1.5, -1.5, -2.5)), + color: None + ) + ), + "Cloth": ( + left: ( + vox_spec: ("armor.misc.hand.cloth_basic", (-1.5, -1.5, -2.5)), + color: None + ), + right: ( + vox_spec: ("armor.misc.hand.cloth_basic", (-1.5, -1.5, -2.5)), + color: None + ) + ), + "common.items.armor.ferocious.hand": ( + left: ( + vox_spec: ("armor.ferocious.hand", (-1.5, -1.5, -2.5)), + color: None + ), + right: ( + vox_spec: ("armor.ferocious.hand", (-1.5, -1.5, -2.5)), + color: None + ) + ), + "common.items.armor.boreal.hand": ( + left: ( + vox_spec: ("armor.boreal.hand", (-2.5, -1.5, -2.5)), + color: None + ), + right: ( + vox_spec: ("armor.boreal.hand", (-1.5, -1.5, -2.5)), + color: None + ) + ), + "common.items.armor.brinestone.hand": ( + left: ( + vox_spec: ("armor.brinestone.hand", (-3.5, -1.5, -3.5)), + color: None + ), + right: ( + vox_spec: ("armor.brinestone.hand", (-1.5, -1.5, -3.5)), + color: None + ) + ), + "common.items.armor.cloth_purple.hand": ( + left: ( + vox_spec: ("armor.cloth_purple.hand", (-1.5, -1.5, -2.5)), + color: None + ), + right: ( + vox_spec: ("armor.cloth_purple.hand", (-1.5, -1.5, -2.5)), + color: None + ) + ), + "common.items.armor.cloth_blue.hand": ( + left: ( + vox_spec: ("armor.cloth_blue.hand", (-1.5, -1.5, -2.5)), + color: None + ), + right: ( + vox_spec: ("armor.cloth_blue.hand", (-1.5, -1.5, -2.5)), + color: None + ) + ), + "common.items.armor.cloth_green.hand": ( + left: ( + vox_spec: ("armor.cloth_green.hand", (-1.5, -1.5, -2.5)), + color: None + ), + right: ( + vox_spec: ("armor.cloth_green.hand", (-1.5, -1.5, -2.5)), + color: None + ) + ), + "common.items.armor.cultist.hand": ( + left: ( + vox_spec: ("armor.cultist.hand", (-2.5, -2.5, -2.5)), + color: Some((30, 0, 64)) + ), + right: ( + vox_spec: ("armor.cultist.hand", (-2.2, -2.5, -2.5)), + color: Some((30, 0, 64)) + ) + ), + "common.items.armor.leather_plate.hand": ( + left: ( + vox_spec: ("armor.leather_plate.hand", (-1.5, -1.5, -2.5)), + color: None + ), + right: ( + vox_spec: ("armor.leather_plate.hand", (-1.5, -1.5, -2.5)), + color: None + ) + ), + "common.items.armor.twigs.hand": ( + left: ( + vox_spec: ("armor.twigs.hand", (-1.5, -1.5, -2.5)), + color: None + ), + right: ( + vox_spec: ("armor.twigs.hand", (-1.5, -1.5, -2.5)), + color: None + ) + ), + "common.items.armor.twigsleaves.hand": ( + left: ( + vox_spec: ("armor.twigsleaves.hand", (-2.5, -1.5, -2.5)), + color: None + ), + right: ( + vox_spec: ("armor.twigsleaves.hand", (-1.5, -1.5, -2.5)), + color: None + ) + ), + "common.items.armor.twigsflowers.hand": ( + left: ( + vox_spec: ("armor.twigsflowers.hand", (-2.5, -1.5, -2.5)), + color: None + ), + right: ( + vox_spec: ("armor.twigsflowers.hand", (-1.5, -1.5, -2.5)), + color: None + ) + ), + "common.items.armor.tarasque.hand": ( + left: ( + vox_spec: ("armor.tarasque.hand", (-2.5, -2.5, -2.5)), + color: None + ), + right: ( + vox_spec: ("armor.tarasque.hand", (-2.5, -2.5, -2.5)), + color: None + ) + ), + "common.items.armor.bonerattler.hand": ( + left: ( + vox_spec: ("armor.bonerattler.hand", (-1.5, -1.5, -2.5)), + color: None + ), + right: ( + vox_spec: ("armor.bonerattler.hand", (-1.5, -1.5, -2.5)), + color: None + ) + ), + "common.items.armor.velorite_mage.hand": ( + left: ( + vox_spec: ("armor.velorite_battlemage.hand", (-2.5, -2.5, -2.5)), + color: None + ), + right: ( + vox_spec: ("armor.velorite_battlemage.hand", (-2.5, -2.5, -2.5)), + color: None + ) + ), + "common.items.debug.cultist_hands_blue": ( + left: ( + vox_spec: ("armor.velorite_battlemage.hand", (-2.5, -2.5, -2.5)), + color: None + ), + right: ( + vox_spec: ("armor.velorite_battlemage.hand", (-2.5, -2.5, -2.5)), + color: None + ) + ), + "common.items.armor.hide.rawhide.hand": ( + left: ( + vox_spec: ("armor.hide.rawhide.hand", (-1.5, -1.5, -2.5)), + color: None + ), + right: ( + vox_spec: ("armor.hide.rawhide.hand", (-1.5, -1.5, -2.5)), + color: None + ) + ), + "common.items.armor.hide.leather.hand": ( + left: ( + vox_spec: ("armor.hide.leather.hand", (-1.5, -1.5, -2.5)), + color: None + ), + right: ( + vox_spec: ("armor.hide.leather.hand", (-1.5, -1.5, -2.5)), + color: None + ) + ), + "common.items.armor.miner.hand": ( + left: ( + vox_spec: ("armor.mail.bronze.hand", (-1.5, -1.5, -2.5)), + color: None + ), + right: ( + vox_spec: ("armor.mail.bronze.hand", (-1.5, -1.5, -2.5)), + color: None + ) + ), + "common.items.armor.hide.scale.hand": ( + left: ( + vox_spec: ("armor.hide.scale.hand", (-3.5, -1.5, -2.5)), + color: None + ), + right: ( + vox_spec: ("armor.hide.scale.hand", (-1.5, -1.5, -2.5)), + color: None + ) + ), + "common.items.armor.hide.carapace.hand": ( + left: ( + vox_spec: ("armor.hide.carapace.hand", (-3.5, -2.5, -3.5)), + color: None + ), + right: ( + vox_spec: ("armor.hide.carapace.hand", (-1.5, -2.5, -3.5)), + color: None + ) + ), + "common.items.armor.hide.primal.hand": ( + left: ( + vox_spec: ("armor.hide.primal.hand", (-3.5, -2.5, -3.5)), + color: None + ), + right: ( + vox_spec: ("armor.hide.primal.hand", (-1.5, -2.5, -3.5)), + color: None + ) + ), + "common.items.armor.hide.dragonscale.hand": ( + left: ( + vox_spec: ("armor.hide.dragonscale.hand", (-5.5, -1.5, -3.5)), + color: None + ), + right: ( + vox_spec: ("armor.hide.dragonscale.hand", (-1.5, -1.5, -3.5)), + color: None + ) + ), + "common.items.armor.savage.hand": ( + left: ( + vox_spec: ("armor.savage.hand", (-2.5, -2.5, -3.5)), + color: None + ), + right: ( + vox_spec: ("armor.savage.hand", (-1.5, -2.5, -3.5)), + color: None + ) + ), + "common.items.armor.witch.hand": ( + left: ( + vox_spec: ("armor.witch.hand", (-2.5, -2.5, -3.5)), + color: None + ), + right: ( + vox_spec: ("armor.witch.hand", (-1.5, -2.5, -3.5)), + color: None + ) + ), + "common.items.armor.pirate.hand": ( + left: ( + vox_spec: ("armor.pirate.hand", (-2.5, -2.5, -3.5)), + color: None + ), + right: ( + vox_spec: ("armor.pirate.hand", (-1.5, -2.5, -3.5)), + color: None + ) + ), + "common.items.armor.blacksmith.hand": ( + left: ( + vox_spec: ("armor.blacksmith.hand", (-1.5, -1.5, -2.5)), + color: None + ), + right: ( + vox_spec: ("armor.blacksmith.hand", (-1.5, -1.5, -2.5)), + color: None + ) + ), + "common.items.armor.cloth.linen.hand": ( + left: ( + vox_spec: ("armor.cloth.linen.hand", (-1.5, -1.5, -2.5)), + color: None + ), + right: ( + vox_spec: ("armor.cloth.linen.hand", (-1.5, -1.5, -2.5)), + color: None + ) + ), + "common.items.armor.cloth.woolen.hand": ( + left: ( + vox_spec: ("armor.cloth.woolen.hand", (-2.5, -2.5, -2.5)), + color: None + ), + right: ( + vox_spec: ("armor.cloth.woolen.hand", (-2.5, -2.5, -2.5)), + color: None + ) + ), + "common.items.armor.cloth.silken.hand": ( + left: ( + vox_spec: ("armor.cloth.silken.hand", (-2.5, -2.5, -3.5)), + color: None + ), + right: ( + vox_spec: ("armor.cloth.silken.hand", (-1.5, -2.5, -3.5)), + color: None + ) + ), + "common.items.armor.cloth.druid.hand": ( + left: ( + vox_spec: ("armor.cloth.druid.hand", (-1.5, -1.5, -2.5)), + color: None + ), + right: ( + vox_spec: ("armor.cloth.druid.hand", (-1.5, -1.5, -2.5)), + color: None + ) + ), + "common.items.armor.cloth.moonweave.hand": ( + left: ( + vox_spec: ("armor.cloth.moonweave.hand", (-1.5, -1.5, -2.5)), + color: None + ), + right: ( + vox_spec: ("armor.cloth.moonweave.hand", (-1.5, -1.5, -2.5)), + color: None + ) + ), + "common.items.armor.cloth.sunsilk.hand": ( + left: ( + vox_spec: ("armor.cloth.sunsilk.hand", (-2.5, -2.5, -3.5)), + color: None + ), + right: ( + vox_spec: ("armor.cloth.sunsilk.hand", (-1.5, -2.5, -3.5)), + color: None + ) + ), + "common.items.armor.mail.bronze.hand": ( + left: ( + vox_spec: ("armor.mail.bronze.hand", (-1.5, -1.5, -2.5)), + color: None + ), + right: ( + vox_spec: ("armor.mail.bronze.hand", (-1.5, -1.5, -2.5)), + color: None + ) + ), + "common.items.armor.mail.iron.hand": ( + left: ( + vox_spec: ("armor.mail.iron.hand", (-1.5, -1.5, -2.5)), + color: None + ), + right: ( + vox_spec: ("armor.mail.iron.hand", (-1.5, -1.5, -2.5)), + color: None + ) + ), + "common.items.armor.mail.steel.hand": ( + left: ( + vox_spec: ("armor.mail.steel.hand", (-1.5, -1.5, -2.5)), + color: None + ), + right: ( + vox_spec: ("armor.mail.steel.hand", (-1.5, -1.5, -2.5)), + color: None + ) + ), + "common.items.armor.mail.cobalt.hand": ( + left: ( + vox_spec: ("armor.mail.cobalt.hand", (-3.5, -2.5, -2.5)), + color: None + ), + right: ( + vox_spec: ("armor.mail.cobalt.hand", (-1.5, -2.5, -2.5)), + color: None + ) + ), + "common.items.armor.mail.bloodsteel.hand": ( + left: ( + vox_spec: ("armor.mail.bloodsteel.hand", (-4.5, -2.5, -2.5)), + color: None + ), + right: ( + vox_spec: ("armor.mail.bloodsteel.hand", (-1.5, -2.5, -2.5)), + color: None + ) + ), + "common.items.armor.mail.orichalcum.hand": ( + left: ( + vox_spec: ("armor.mail.orichalcum", (-3.5, -2.5, -3.5), 4), + color: None + ), + right: ( + vox_spec: ("armor.mail.orichalcum", (-1.5, -2.5, -3.5), 4), + color: None + ) + ), + "common.items.armor.golemite.hand": ( + left: ( + vox_spec: ("armor.golemite.golemite", (-3.5, -2.5, -3.5), 4), + color: None + ), + right: ( + vox_spec: ("armor.golemite.golemite", (-1.5, -2.5, -3.5), 4), + color: None + ) + ), + "common.items.armor.cardinal.hand": ( + left: ( + vox_spec: ("armor.cardinal.hand", (-2.5, -2.5, -3.5)), + color: None + ), + right: ( + vox_spec: ("armor.cardinal.hand", (-1.5, -2.5, -3.5)), + color: None + ) + ), + "common.items.armor.merchant.hand": ( + left: ( + vox_spec: ("armor.merchant.hand", (-1.5, -1.5, -2.5)), + color: None + ), + right:( + vox_spec: ("armor.merchant.hand", (-1.5, -1.5, -2.5)), + color: None + ) + ), + }, +)) diff --git a/assets/voxygen/voxel/humanoid_armor_head_manifest.ron b/assets/voxygen/voxel/humanoid_armor_head_manifest.ron new file mode 100644 index 0000000..dc94d46 --- /dev/null +++ b/assets/voxygen/voxel/humanoid_armor_head_manifest.ron @@ -0,0 +1,1748 @@ +(( + default: ( + vox_spec: ("armor.empty", (0.0, 0.0, 0.0)), + color: None + ), + map: { + (Danari, Male, "common.items.armor.misc.head.exclamation"): ( + vox_spec: ("armor.misc.head.exclamation", (-10.0, -10.0, 20.0)), + color: None + ), + (Dwarf, Male, "common.items.armor.misc.head.exclamation"): ( + vox_spec: ("armor.misc.head.exclamation", (-13.0, -10.0, 18.0)), + color: None + ), + (Human, Male, "common.items.armor.misc.head.exclamation"): ( + vox_spec: ("armor.misc.head.exclamation", (-12.0, -11.0, 18.0)), + color: None + ), + (Orc, Male, "common.items.armor.misc.head.exclamation"): ( + vox_spec: ("armor.misc.head.exclamation", (-11.0, -12.0, 18.0)), + color: None + ), + (Draugr, Male, "common.items.armor.misc.head.exclamation"): ( + vox_spec: ("armor.misc.head.exclamation", (-14.0, -11.0, 18.0)), + color: None + ),//fix + (Elf, Male, "common.items.armor.misc.head.exclamation"): ( + vox_spec: ("armor.misc.head.exclamation", (-11.0, -11.0, 18.0)), + color: None + ), + // + (Human, Male, "common.items.armor.witch.hat"): ( + vox_spec: ("armor.witch.hat", (-4.0, -5.0, 5.0)), + color: None + ), + (Human, Female, "common.items.armor.witch.hat"): ( + vox_spec: ("armor.witch.hat", (-4.0, -5.0, 5.0)), + color: None + ), + (Elf, Male, "common.items.armor.witch.hat"): ( + vox_spec: ("armor.witch.hat", (-3.0, -5.0, 5.0)), + color: None + ), + (Elf, Female, "common.items.armor.witch.hat"): ( + vox_spec: ("armor.witch.hat", (-3.0, -6.0, 5.0)), + color: None + ), + (Dwarf, Male, "common.items.armor.witch.hat"): ( + vox_spec: ("armor.witch.hat", (-5.0, -4.0, 5.0)), + color: None + ), + (Dwarf, Female, "common.items.armor.witch.hat"): ( + vox_spec: ("armor.witch.hat", (-5.0, -4.0, 5.0)), + color: None + ), + (Danari, Male, "common.items.armor.witch.hat"): ( + vox_spec: ("armor.witch.hat", (-2.0, -5.0, 7.0)), + color: None + ), + (Danari, Female, "common.items.armor.witch.hat"): ( + vox_spec: ("armor.witch.hat", (-2.0, -5.0, 7.0)), + color: None + ), + (Draugr, Male, "common.items.armor.witch.hat"): ( + vox_spec: ("armor.witch.hat", (-6.0, -5.0, 7.0)), + color: None + ), + (Draugr, Female, "common.items.armor.witch.hat"): ( + vox_spec: ("armor.witch.hat", (-6.0, -5.0, 6.0)), + color: None + ), + (Orc, Male, "common.items.armor.witch.hat"): ( + vox_spec: ("armor.witch.hat", (-3.0, -3.0, 8.0)), + color: None + ), + (Orc, Female, "common.items.armor.witch.hat"): ( + vox_spec: ("armor.witch.hat", (-3.0, -6.0, 5.0)), + color: None + ), +// + (Human, Male, "common.items.armor.misc.head.hog_hood"): ( + vox_spec: ("armor.misc.head.hog_hood", (-4.0, -5, -8.0)), + color: None + ), + (Human, Female, "common.items.armor.misc.head.hog_hood"): ( + vox_spec: ("armor.misc.head.hog_hood", (-4.0, -4, -8.0)), + color: None + ), + (Elf, Male, "common.items.armor.misc.head.hog_hood"): ( + vox_spec: ("armor.misc.head.hog_hood", (-3.0, -5.0, -8.0)), + color: None + ), + (Elf, Female, "common.items.armor.misc.head.hog_hood"): ( + vox_spec: ("armor.misc.head.hog_hood", (-3.0, -5.0, -8.0)), + color: None + ), + (Dwarf, Male, "common.items.armor.misc.head.hog_hood"): ( + vox_spec: ("armor.misc.head.hog_hood", (-5.0, -4.0, -8)), + color: None + ), + (Dwarf, Female, "common.items.armor.misc.head.hog_hood"): ( + vox_spec: ("armor.misc.head.hog_hood", (-5.0, -4.0, -8.0)), + color: None + ), + (Danari, Male, "common.items.armor.misc.head.hog_hood"): ( + vox_spec: ("armor.misc.head.hog_hood", (-2.0, -5, -6)), + color: None + ), + (Danari, Female, "common.items.armor.misc.head.hog_hood"): ( + vox_spec: ("armor.misc.head.hog_hood", (-2.0, -5, -6)), + color: None + ), + (Draugr, Male, "common.items.armor.misc.head.hog_hood"): ( + vox_spec: ("armor.misc.head.hog_hood", (-6.0, -5.0, -7.0)), + color: None + ), + (Draugr, Female, "common.items.armor.misc.head.hog_hood"): ( + vox_spec: ("armor.misc.head.hog_hood", (-6.0, -5.0, -8.0)), + color: None + ), + (Orc, Male, "common.items.armor.misc.head.hog_hood"): ( + vox_spec: ("armor.misc.head.hog_hood", (-3.0, -4.0, -6.0)), + color: None + ), + (Orc, Female, "common.items.armor.misc.head.hog_hood"): ( + vox_spec: ("armor.misc.head.hog_hood", (-3.0, -6.0, -8.0)), + color: None + ), +// + (Human, Male, "common.items.armor.misc.head.howl_cowl"): ( + vox_spec: ("armor.misc.head.howl_cowl", (-4.0, -5, -8.0)), + color: None + ), + (Human, Female, "common.items.armor.misc.head.howl_cowl"): ( + vox_spec: ("armor.misc.head.howl_cowl", (-4.0, -4, -8.0)), + color: None + ), + (Elf, Male, "common.items.armor.misc.head.howl_cowl"): ( + vox_spec: ("armor.misc.head.howl_cowl", (-3.0, -5.0, -8.0)), + color: None + ), + (Elf, Female, "common.items.armor.misc.head.howl_cowl"): ( + vox_spec: ("armor.misc.head.howl_cowl", (-3.0, -5.0, -8.0)), + color: None + ), + (Dwarf, Male, "common.items.armor.misc.head.howl_cowl"): ( + vox_spec: ("armor.misc.head.howl_cowl", (-5.0, -4.0, -8)), + color: None + ), + (Dwarf, Female, "common.items.armor.misc.head.howl_cowl"): ( + vox_spec: ("armor.misc.head.howl_cowl", (-5.0, -4.0, -8.0)), + color: None + ), + (Danari, Male, "common.items.armor.misc.head.howl_cowl"): ( + vox_spec: ("armor.misc.head.howl_cowl", (-2.0, -5, -6)), + color: None + ), + (Danari, Female, "common.items.armor.misc.head.howl_cowl"): ( + vox_spec: ("armor.misc.head.howl_cowl", (-2.0, -5, -6)), + color: None + ), + (Draugr, Male, "common.items.armor.misc.head.howl_cowl"): ( + vox_spec: ("armor.misc.head.howl_cowl", (-6.0, -5.0, -7.0)), + color: None + ), + (Draugr, Female, "common.items.armor.misc.head.howl_cowl"): ( + vox_spec: ("armor.misc.head.howl_cowl", (-6.0, -5.0, -8.0)), + color: None + ), + (Orc, Male, "common.items.armor.misc.head.howl_cowl"): ( + vox_spec: ("armor.misc.head.howl_cowl", (-3.0, -4.0, -6.0)), + color: None + ), + (Orc, Female, "common.items.armor.misc.head.howl_cowl"): ( + vox_spec: ("armor.misc.head.howl_cowl", (-3.0, -6.0, -8.0)), + color: None + ), +// + (Human, Male, "common.items.armor.misc.head.bear_bonnet"): ( + vox_spec: ("armor.misc.head.bear_bonnet", (-4.0, -5, -8.0)), + color: None + ), + (Human, Female, "common.items.armor.misc.head.bear_bonnet"): ( + vox_spec: ("armor.misc.head.bear_bonnet", (-4.0, -4, -8.0)), + color: None + ), + (Elf, Male, "common.items.armor.misc.head.bear_bonnet"): ( + vox_spec: ("armor.misc.head.bear_bonnet", (-3.0, -5.0, -8.0)), + color: None + ), + (Elf, Female, "common.items.armor.misc.head.bear_bonnet"): ( + vox_spec: ("armor.misc.head.bear_bonnet", (-3.0, -5.0, -8.0)), + color: None + ), + (Dwarf, Male, "common.items.armor.misc.head.bear_bonnet"): ( + vox_spec: ("armor.misc.head.bear_bonnet", (-5.0, -4.0, -8)), + color: None + ), + (Dwarf, Female, "common.items.armor.misc.head.bear_bonnet"): ( + vox_spec: ("armor.misc.head.bear_bonnet", (-5.0, -4.0, -8.0)), + color: None + ), + (Danari, Male, "common.items.armor.misc.head.bear_bonnet"): ( + vox_spec: ("armor.misc.head.bear_bonnet", (-2.0, -5, -6)), + color: None + ), + (Danari, Female, "common.items.armor.misc.head.bear_bonnet"): ( + vox_spec: ("armor.misc.head.bear_bonnet", (-2.0, -5, -6)), + color: None + ), + (Draugr, Male, "common.items.armor.misc.head.bear_bonnet"): ( + vox_spec: ("armor.misc.head.bear_bonnet", (-6.0, -5.0, -7.0)), + color: None + ), + (Draugr, Female, "common.items.armor.misc.head.bear_bonnet"): ( + vox_spec: ("armor.misc.head.bear_bonnet", (-6.0, -5.0, -8.0)), + color: None + ), + (Orc, Male, "common.items.armor.misc.head.bear_bonnet"): ( + vox_spec: ("armor.misc.head.bear_bonnet", (-3.0, -4.0, -6.0)), + color: None + ), + (Orc, Female, "common.items.armor.misc.head.bear_bonnet"): ( + vox_spec: ("armor.misc.head.bear_bonnet", (-3.0, -6.0, -8.0)), + color: None + ), + // + (Danari, Male, "common.items.armor.misc.head.bamboo_twig"): ( + vox_spec: ("armor.misc.head.bamboo_twig", (1.0, 2.0, -2.0)), + color: None + ), + (Danari, Female, "common.items.armor.misc.head.bamboo_twig"): ( + vox_spec: ("armor.misc.head.bamboo_twig", (1.0, 2.0, -2.0)), + color: None + ), + (Dwarf, Male, "common.items.armor.misc.head.bamboo_twig"): ( + vox_spec: ("armor.misc.head.bamboo_twig", (-2.0, 3.0, -5.0)), + color: None + ), + (Dwarf, Female, "common.items.armor.misc.head.bamboo_twig"): ( + vox_spec: ("armor.misc.head.bamboo_twig", (-2.0, 3.0, -4.0)), + color: None + ), + (Human, Male, "common.items.armor.misc.head.bamboo_twig"): ( + vox_spec: ("armor.misc.head.bamboo_twig", (-1.0, 2.0, -4.0)), + color: None + ), + (Human, Female, "common.items.armor.misc.head.bamboo_twig"): ( + vox_spec: ("armor.misc.head.bamboo_twig", (-1.0, 3.0, -4.0)), + color: None + ), + (Draugr, Male, "common.items.armor.misc.head.bamboo_twig"): ( + vox_spec: ("armor.misc.head.bamboo_twig", (-3.0, 1.0, -2.0)), + color: None + ), + (Draugr, Female, "common.items.armor.misc.head.bamboo_twig"): ( + vox_spec: ("armor.misc.head.bamboo_twig", (-3.0, 1.0, -3.0)), + color: None + ), + (Elf, Male, "common.items.armor.misc.head.bamboo_twig"): ( + vox_spec: ("armor.misc.head.bamboo_twig", (-0.0, 2.0, -4.0)), + color: None + ), + (Elf, Female, "common.items.armor.misc.head.bamboo_twig"): ( + vox_spec: ("armor.misc.head.bamboo_twig", (-0.0, 2.0, -4.0)), + color: None + ), + (Orc, Male, "common.items.armor.misc.head.bamboo_twig"): ( + vox_spec: ("armor.misc.head.bamboo_twig", (1.0, 3.0, -1.0)), + color: None + ), + (Orc, Female, "common.items.armor.misc.head.bamboo_twig"): ( + vox_spec: ("armor.misc.head.bamboo_twig", (0.0, 0.0, -3.0)), + color: None + ), +// + (Human, Male, "common.items.armor.misc.head.wanderers_hat"): ( + vox_spec: ("armor.misc.head.wanderers_hat", (-4, -6.0, 4.0)), + color: None + ), + (Human, Female, "common.items.armor.misc.head.wanderers_hat"): ( + vox_spec: ("armor.misc.head.wanderers_hat", (-4, -5.0, 4.0)), + color: None + ), + (Elf, Male, "common.items.armor.misc.head.wanderers_hat"): ( + vox_spec: ("armor.misc.head.wanderers_hat", (-3, -6.0, 4.0)), + color: None + ), + (Elf, Female, "common.items.armor.misc.head.wanderers_hat"): ( + vox_spec: ("armor.misc.head.wanderers_hat", (-3, -6.0, 4.0)), + color: None + ), + (Dwarf, Male, "common.items.armor.misc.head.wanderers_hat"): ( + vox_spec: ("armor.misc.head.wanderers_hat", (-5, -5.0, 3.0)), + color: None + ), + (Dwarf, Female, "common.items.armor.misc.head.wanderers_hat"): ( + vox_spec: ("armor.misc.head.wanderers_hat", (-5, -5.0, 4.0)), + color: None + ), + (Danari, Male, "common.items.armor.misc.head.wanderers_hat"): ( + vox_spec: ("armor.misc.head.wanderers_hat", (-2, -6.0, 6.0)), + color: None + ), + (Danari, Female, "common.items.armor.misc.head.wanderers_hat"): ( + vox_spec: ("armor.misc.head.wanderers_hat", (-2, -6.0, 6.0)), + color: None + ), + (Draugr, Male, "common.items.armor.misc.head.wanderers_hat"): ( + vox_spec: ("armor.misc.head.wanderers_hat", (-6, -6.0, 5.0)), + color: None + ), + (Draugr, Female, "common.items.armor.misc.head.wanderers_hat"): ( + vox_spec: ("armor.misc.head.wanderers_hat", (-6, -6.0, 5.0)), + color: None + ), + (Orc, Male, "common.items.armor.misc.head.wanderers_hat"): ( + vox_spec: ("armor.misc.head.wanderers_hat", (-3.0, -4.0, 5.0)), + color: None + ), + (Orc, Female, "common.items.armor.misc.head.wanderers_hat"): ( + vox_spec: ("armor.misc.head.wanderers_hat", (-3.0, -7.0, 4.0)), + color: None + ), + + // + (Human, Male, "common.items.armor.pirate.hat"): ( + vox_spec: ("armor.pirate.hat", (-4.0, -4.0, 5.0)), + color: None + ), + (Human, Female, "common.items.armor.pirate.hat"): ( + vox_spec: ("armor.pirate.hat", (-4.0, -4.0, 5.0)), + color: None + ), + (Elf, Male, "common.items.armor.pirate.hat"): ( + vox_spec: ("armor.pirate.hat", (-3.0, -4.0, 5.0)), + color: None + ), + (Elf, Female, "common.items.armor.pirate.hat"): ( + vox_spec: ("armor.pirate.hat", (-3.0, -5.0, 5.0)), + color: None + ), + (Dwarf, Male, "common.items.armor.pirate.hat"): ( + vox_spec: ("armor.pirate.hat", (-5.0, -3.0, 5.0)), + color: None + ), + (Dwarf, Female, "common.items.armor.pirate.hat"): ( + vox_spec: ("armor.pirate.hat", (-5.0, -3.0, 5.0)), + color: None + ), + (Danari, Male, "common.items.armor.pirate.hat"): ( + vox_spec: ("armor.pirate.hat", (-2.0, -4.0, 7.0)), + color: None + ), + (Danari, Female, "common.items.armor.pirate.hat"): ( + vox_spec: ("armor.pirate.hat", (-2.0, -4.0, 7.0)), + color: None + ), + (Draugr, Male, "common.items.armor.pirate.hat"): ( + vox_spec: ("armor.pirate.hat", (-6.0, -4.0, 7.0)), + color: None + ), + (Draugr, Female, "common.items.armor.pirate.hat"): ( + vox_spec: ("armor.pirate.hat", (-6.0, -4.0, 6.0)), + color: None + ), + (Orc, Male, "common.items.armor.pirate.hat"): ( + vox_spec: ("armor.pirate.hat", (-3.0, -2.0, 8.0)), + color: None + ), + (Orc, Female, "common.items.armor.pirate.hat"): ( + vox_spec: ("armor.pirate.hat", (-3.0, -5.0, 5.0)), + color: None + ), + // + (Human, Male, "common.items.armor.blacksmith.hat"): ( + vox_spec: ("armor.blacksmith.hat", (-4.0, 0.0, -3.0)), + color: None + ), + (Human, Female, "common.items.armor.blacksmith.hat"): ( + vox_spec: ("armor.blacksmith.hat", (-4.0, 1.0, -3.0)), + color: None + ), + (Elf, Male, "common.items.armor.blacksmith.hat"): ( + vox_spec: ("armor.blacksmith.hat", (-3.0, 0.0, -3.0)), + color: None + ), + (Elf, Female, "common.items.armor.blacksmith.hat"): ( + vox_spec: ("armor.blacksmith.hat", (-3.0, -1.0, -3.0)), + color: None + ), + (Dwarf, Male, "common.items.armor.blacksmith.hat"): ( + vox_spec: ("armor.blacksmith.hat", (-5.0, 1.0, -3.0)), + color: None + ), + (Dwarf, Female, "common.items.armor.blacksmith.hat"): ( + vox_spec: ("armor.blacksmith.hat", (-5.0, 1.0, -3.0)), + color: None + ), + (Danari, Male, "common.items.armor.blacksmith.hat"): ( + vox_spec: ("armor.blacksmith.hat", (-2.0, 0.0, -1.0)), + color: None + ), + (Danari, Female, "common.items.armor.blacksmith.hat"): ( + vox_spec: ("armor.blacksmith.hat", (-2.0, 1.0, -1.0)), + color: None + ), + (Draugr, Male, "common.items.armor.blacksmith.hat"): ( + vox_spec: ("armor.blacksmith.hat", (-6.0, 0.0, -1.0)), + color: None + ), + (Draugr, Female, "common.items.armor.blacksmith.hat"): ( + vox_spec: ("armor.blacksmith.hat", (-6.0, 0.0, -2.0)), + color: None + ), + (Orc, Male, "common.items.armor.blacksmith.hat"): ( + vox_spec: ("armor.blacksmith.hat", (-3.0, 2.0, 0.0)), + color: None + ), + (Orc, Female, "common.items.armor.blacksmith.hat"): ( + vox_spec: ("armor.blacksmith.hat", (-3.0, -1.0, -3.0)), + color: None + ), + // Alchemist Goggles + (Human, Male, "common.items.armor.alchemist.hat"): ( + vox_spec: ("armor.alchemist", (2.0, 9.0, 1.0), 0), + color: None + ), + (Human, Female, "common.items.armor.alchemist.hat"): ( + vox_spec: ("armor.alchemist", (2.0, 10.0, 1.0), 0), + color: None + ), + (Elf, Male, "common.items.armor.alchemist.hat"): ( + vox_spec: ("armor.alchemist", (3.0, 9.0, 1.0), 0), + color: None + ), + (Elf, Female, "common.items.armor.alchemist.hat"): ( + vox_spec: ("armor.alchemist", (3.0, 8.0, 1.0), 0), + color: None + ), + (Dwarf, Male, "common.items.armor.alchemist.hat"): ( + vox_spec: ("armor.alchemist", (1.0, 10.0, 1.0), 0), + color: None + ), + (Dwarf, Female, "common.items.armor.alchemist.hat"): ( + vox_spec: ("armor.alchemist", (1.0, 10.0, 1.0), 0), + color: None + ), + (Danari, Male, "common.items.armor.alchemist.hat"): ( + vox_spec: ("armor.alchemist", (4.0, 9.0, 3.0), 0), + color: None + ), + (Danari, Female, "common.items.armor.alchemist.hat"): ( + vox_spec: ("armor.alchemist", (4.0, 10.0, 3.0), 0), + color: None + ), + (Draugr, Male, "common.items.armor.alchemist.hat"): ( + vox_spec: ("armor.alchemist", (0.0, 9.0, 3.0), 0), + color: None + ), + (Draugr, Female, "common.items.armor.alchemist.hat"): ( + vox_spec: ("armor.alchemist", (0.0, 9.0, 2.0), 0), + color: None + ), + (Orc, Male, "common.items.armor.alchemist.hat"): ( + vox_spec: ("armor.alchemist", (3.0, 11.0, 4.0), 0), + color: None + ), + (Orc, Female, "common.items.armor.alchemist.hat"): ( + vox_spec: ("armor.alchemist", (3.0, 8.0, 1.0), 0), + color: None + ), + // Chef hat + (Human, Male, "common.items.armor.chef.hat"): ( + vox_spec: ("armor.chef.hat", (-4.0, -5.0, 5.0)), + color: None + ), + (Human, Female, "common.items.armor.chef.hat"): ( + vox_spec: ("armor.chef.hat", (-4.0, -5.0, 5.0)), + color: None + ), + (Elf, Male, "common.items.armor.chef.hat"): ( + vox_spec: ("armor.chef.hat", (-3.0, -5.0, 5.0)), + color: None + ), + (Elf, Female, "common.items.armor.chef.hat"): ( + vox_spec: ("armor.chef.hat", (-3.0, -6.0, 5.0)), + color: None + ), + (Dwarf, Male, "common.items.armor.chef.hat"): ( + vox_spec: ("armor.chef.hat", (-5.0, -4.0, 5.0)), + color: None + ), + (Dwarf, Female, "common.items.armor.chef.hat"): ( + vox_spec: ("armor.chef.hat", (-5.0, -4.0, 5.0)), + color: None + ), + (Danari, Male, "common.items.armor.chef.hat"): ( + vox_spec: ("armor.chef.hat", (-2.0, -5.0, 7.0)), + color: None + ), + (Danari, Female, "common.items.armor.chef.hat"): ( + vox_spec: ("armor.chef.hat", (-2.0, -5.0, 7.0)), + color: None + ), + (Draugr, Male, "common.items.armor.chef.hat"): ( + vox_spec: ("armor.chef.hat", (-6.0, -5.0, 7.0)), + color: None + ), + (Draugr, Female, "common.items.armor.chef.hat"): ( + vox_spec: ("armor.chef.hat", (-6.0, -5.0, 6.0)), + color: None + ), + (Orc, Male, "common.items.armor.chef.hat"): ( + vox_spec: ("armor.chef.hat", (-3.0, -3.0, 8.0)), + color: None + ), + (Orc, Female, "common.items.armor.chef.hat"): ( + vox_spec: ("armor.chef.hat", (-3.0, -6.0, 5.0)), + color: None + ), + // Straw hat + (Human, Male, "common.items.armor.misc.head.straw"): ( + vox_spec: ("armor.misc.head.straw", (-4.0, -5.0, 5.0)), + color: None + ), + (Human, Female, "common.items.armor.misc.head.straw"): ( + vox_spec: ("armor.misc.head.straw", (-4.0, -5.0, 5.0)), + color: None + ), + (Elf, Male, "common.items.armor.misc.head.straw"): ( + vox_spec: ("armor.misc.head.straw", (-3.0, -5.0, 5.0)), + color: None + ), + (Elf, Female, "common.items.armor.misc.head.straw"): ( + vox_spec: ("armor.misc.head.straw", (-3.0, -6.0, 5.0)), + color: None + ), + (Dwarf, Male, "common.items.armor.misc.head.straw"): ( + vox_spec: ("armor.misc.head.straw", (-5.0, -4.0, 5.0)), + color: None + ), + (Dwarf, Female, "common.items.armor.misc.head.straw"): ( + vox_spec: ("armor.misc.head.straw", (-5.0, -4.0, 5.0)), + color: None + ), + (Danari, Male, "common.items.armor.misc.head.straw"): ( + vox_spec: ("armor.misc.head.straw", (-2.0, -4.0, 7.0)), + color: None + ), + (Danari, Female, "common.items.armor.misc.head.straw"): ( + vox_spec: ("armor.misc.head.straw", (-2.0, -6.0, 7.0)), + color: None + ), + (Draugr, Male, "common.items.armor.misc.head.straw"): ( + vox_spec: ("armor.misc.head.straw", (-6.0, -5.0, 7.0)), + color: None + ), + (Draugr, Female, "common.items.armor.misc.head.straw"): ( + vox_spec: ("armor.misc.head.straw", (-6.0, -5.0, 6.0)), + color: None + ), + (Orc, Male, "common.items.armor.misc.head.straw"): ( + vox_spec: ("armor.misc.head.straw", (-3.0, -4.0, 7.0)), + color: None + ), + (Orc, Female, "common.items.armor.misc.head.straw"): ( + vox_spec: ("armor.misc.head.straw", (-3.0, -6.0, 5.0)), + color: None + ), + // + (Human, Male, "common.items.armor.misc.head.crown"): ( + vox_spec: ("armor.misc.head.crown", (-4.0, -5.0, 5.0)), + color: None + ), + (Human, Female, "common.items.armor.misc.head.crown"): ( + vox_spec: ("armor.misc.head.crown", (-4.0, -5.0, 5.0)), + color: None + ), + (Elf, Male, "common.items.armor.misc.head.crown"): ( + vox_spec: ("armor.misc.head.crown", (-3.0, -5.0, 5.0)), + color: None + ), + (Elf, Female, "common.items.armor.misc.head.crown"): ( + vox_spec: ("armor.misc.head.crown", (-3.0, -6.0, 5.0)), + color: None + ), + (Dwarf, Male, "common.items.armor.misc.head.crown"): ( + vox_spec: ("armor.misc.head.crown", (-5.0, -4.0, 5.0)), + color: None + ), + (Dwarf, Female, "common.items.armor.misc.head.crown"): ( + vox_spec: ("armor.misc.head.crown", (-5.0, -4.0, 5.0)), + color: None + ), + (Danari, Male, "common.items.armor.misc.head.crown"): ( + vox_spec: ("armor.misc.head.crown", (-2.0, -5.0, 7.0)), + color: None + ), + (Danari, Female, "common.items.armor.misc.head.crown"): ( + vox_spec: ("armor.misc.head.crown", (-2.0, -5.0, 7.0)), + color: None + ), + (Draugr, Male, "common.items.armor.misc.head.crown"): ( + vox_spec: ("armor.misc.head.crown", (-6.0, -5.0, 7.0)), + color: None + ), + (Draugr, Female, "common.items.armor.misc.head.crown"): ( + vox_spec: ("armor.misc.head.crown", (-6.0, -5.0, 6.0)), + color: None + ), + (Orc, Male, "common.items.armor.misc.head.crown"): ( + vox_spec: ("armor.misc.head.crown", (-3.0, -3.0, 8.0)), + color: None + ), + (Orc, Female, "common.items.armor.misc.head.crown"): ( + vox_spec: ("armor.misc.head.crown", (-3.0, -6.0, 5.0)), + color: None + ), + // + (Human, Male, "common.items.armor.misc.head.mitre"): ( + vox_spec: ("armor.misc.head.mitre", (-4.0, -5.0, 5.0)), + color: None + ), + (Human, Female, "common.items.armor.misc.head.mitre"): ( + vox_spec: ("armor.misc.head.mitre", (-4.0, -5.0, 5.0)), + color: None + ), + (Elf, Male, "common.items.armor.misc.head.mitre"): ( + vox_spec: ("armor.misc.head.mitre", (-3.0, -5.0, 7.0)), + color: None + ), + (Elf, Female, "common.items.armor.misc.head.mitre"): ( + vox_spec: ("armor.misc.head.mitre", (-3.0, -6.0, 5.0)), + color: None + ), + (Dwarf, Male, "common.items.armor.misc.head.mitre"): ( + vox_spec: ("armor.misc.head.mitre", (-5.0, -4.0, 5.0)), + color: None + ), + (Dwarf, Female, "common.items.armor.misc.head.mitre"): ( + vox_spec: ("armor.misc.head.mitre", (-5.0, -4.0, 5.0)), + color: None + ), + (Danari, Male, "common.items.armor.misc.head.mitre"): ( + vox_spec: ("armor.misc.head.mitre", (-2.0, -5.0, 7.0)), + color: None + ), + (Danari, Female, "common.items.armor.misc.head.mitre"): ( + vox_spec: ("armor.misc.head.mitre", (-2.0, -4.0, 7.0)), + color: None + ), + (Draugr, Male, "common.items.armor.misc.head.mitre"): ( + vox_spec: ("armor.misc.head.mitre", (-6.0, -5.0, 7.0)), + color: None + ), + (Draugr, Female, "common.items.armor.misc.head.mitre"): ( + vox_spec: ("armor.misc.head.mitre", (-6.0, -5.0, 6.0)), + color: None + ), + (Orc, Male, "common.items.armor.misc.head.mitre"): ( + vox_spec: ("armor.misc.head.mitre", (-3.0, -3.0, 8.0)), + color: None + ), + (Orc, Female, "common.items.armor.misc.head.mitre"): ( + vox_spec: ("armor.misc.head.mitre", (-3.0, -6.0, 5.0)), + color: None + ), + // + (Danari, Male, "common.items.armor.misc.head.headband"): ( + vox_spec: ("armor.misc.head.headband.danari_m", (4.0, 2.0, 7.0)), + color: None + ), + (Danari, Female, "common.items.armor.misc.head.headband"): ( + vox_spec: ("armor.misc.head.headband.danari_f", (4.0, 2.0, 7.0)), + color: None + ), + (Dwarf, Male, "common.items.armor.misc.head.headband"): ( + vox_spec: ("armor.misc.head.headband.dwarf_m", (2.0, 3.0, 6.0)), + color: None + ), + (Dwarf, Female, "common.items.armor.misc.head.headband"): ( + vox_spec: ("armor.misc.head.headband.dwarf_f", (2.0, 3.0, 5.0)), + color: None + ), + (Human, Male, "common.items.armor.misc.head.headband"): ( + vox_spec: ("armor.misc.head.headband.human_m", (2.0, 2.0, 5.0)), + color: None + ), + (Human, Female, "common.items.armor.misc.head.headband"): ( + vox_spec: ("armor.misc.head.headband.human_f", (2.0, 3.0, 5.0)), + color: None + ), + (Orc, Male, "common.items.armor.misc.head.headband"): ( + vox_spec: ("armor.misc.head.headband.orc_m", (4.0, 3.0, 7.0)), + color: None + ), + (Orc, Female, "common.items.armor.misc.head.headband"): ( + vox_spec: ("armor.misc.head.headband.orc_f", (3.0, 1.0, 5.0)), + color: None + ), + (Draugr, Male, "common.items.armor.misc.head.headband"): ( + vox_spec: ("armor.misc.head.headband.draugr_m", (0.0, 2.0, 7.0)), + color: Some((44, 74, 109)) + ), + (Draugr, Female, "common.items.armor.misc.head.headband"): ( + vox_spec: ("armor.misc.head.headband.draugr_f", (0.0, 2.0, 6.0)), + color: None + ), + (Elf, Male, "common.items.armor.misc.head.headband"): ( + vox_spec: ("armor.misc.head.headband.elf_m", (3.0, 2.0, 5.0)), + color: None + ), + (Elf, Female, "common.items.armor.misc.head.headband"): ( + vox_spec: ("armor.misc.head.headband.elf_f", (3.0, 2.0, 5.0)), + color: None + ), + // + (Human, Female, "common.items.armor.misc.head.helmet"): ( + vox_spec: ("armor.misc.head.helmet", (-4.0, -5.0, -1.0)), + color: None + ), + (Human, Male, "common.items.armor.misc.head.helmet"): ( + vox_spec: ("armor.misc.head.helmet", (-4.0, -5.0, -1.0)), + color: None + ), + (Elf, Female, "common.items.armor.misc.head.helmet"): ( + vox_spec: ("armor.misc.head.helmet", (-3.0, -5.0, -1.0)), + color: None + ), + (Elf, Male, "common.items.armor.misc.head.helmet"): ( + vox_spec: ("armor.misc.head.helmet", (-3.0, -5.0, -1.0)), + color: None + ), + (Orc, Female, "common.items.armor.misc.head.helmet"): ( + vox_spec: ("armor.misc.head.helmet", (-3.0, -7.0, -1.0)), + color: None + ), + (Orc, Male, "common.items.armor.misc.head.helmet"): ( + vox_spec: ("armor.misc.head.helmet_orc_m", (-3.0, -4.0, 0.0)), + color: None + ), + (Dwarf, Female, "common.items.armor.misc.head.helmet"): ( + vox_spec: ("armor.misc.head.helmet", (-5.0, -5.0, -1.0)), + color: None + ), + (Dwarf, Male, "common.items.armor.misc.head.helmet"): ( + vox_spec: ("armor.misc.head.helmet", (-5.0, -5.0, -1.0)), + color: None + ), + (Draugr, Female, "common.items.armor.misc.head.helmet"): ( + vox_spec: ("armor.misc.head.helmet", (-6.0, -5.0, -1.0)), + color: None + ), + (Draugr, Male, "common.items.armor.misc.head.helmet"): ( + vox_spec: ("armor.misc.head.helmet", (-6.0, -5.0, 1.0)), + color: None + ), + (Danari, Female, "common.items.armor.misc.head.helmet"): ( + vox_spec: ("armor.misc.head.helmet", (-2.0, -6.0, 1.0)), + color: None + ), + (Danari, Male, "common.items.armor.misc.head.helmet"): ( + vox_spec: ("armor.misc.head.helmet", (-2.0, -6.0, 1.0)), + color: None + ), + // + (Danari, Male, "common.items.armor.misc.head.bandana.red"): ( + vox_spec: ("armor.misc.head.bandana.red", (-2.0, -2.0, -8.0)), + color: None + ), + (Danari, Female, "common.items.armor.misc.head.bandana.red"): ( + vox_spec: ("armor.misc.head.bandana.red", (-2.0, -2.0, -8.0)), + color: None + ), + (Dwarf, Male, "common.items.armor.misc.head.bandana.red"): ( + vox_spec: ("armor.misc.head.bandana.red", (-5.0, -1.0, -10.0)), + color: None + ), + (Dwarf, Female, "common.items.armor.misc.head.bandana.red"): ( + vox_spec: ("armor.misc.head.bandana.red", (-5.0, -1.0, -10.0)), + color: None + ), + (Human, Male, "common.items.armor.misc.head.bandana.red"): ( + vox_spec: ("armor.misc.head.bandana.red", (-4.0, -2.0, -10.0)), + color: None + ), + (Human, Female, "common.items.armor.misc.head.bandana.red"): ( + vox_spec: ("armor.misc.head.bandana.red", (-4.0, -1.0, -10.0)), + color: None + ), + (Draugr, Male, "common.items.armor.misc.head.bandana.red"): ( + vox_spec: ("armor.misc.head.bandana.red", (-6.0, -2.0, -8.0)), + color: None + ), + (Draugr, Female, "common.items.armor.misc.head.bandana.red"): ( + vox_spec: ("armor.misc.head.bandana.red", (-6.0, -2.0, -9.0)), + color: None + ), + (Elf, Male, "common.items.armor.misc.head.bandana.red"): ( + vox_spec: ("armor.misc.head.bandana.red", (-3.0, -2.0, -10.0)), + color: None + ), + (Elf, Female, "common.items.armor.misc.head.bandana.red"): ( + vox_spec: ("armor.misc.head.bandana.red", (-3.0, -2.0, -10.0)), + color: None + ), + (Orc, Male, "common.items.armor.misc.head.bandana.red"): ( + vox_spec: ("armor.misc.head.bandana.red", (-3.0, 0.0, -7.0)), + color: None + ), + (Orc, Female, "common.items.armor.misc.head.bandana.red"): ( + vox_spec: ("armor.misc.head.bandana.red", (-3.0, -3.0, -10.0)), + color: None + ), + // + (Danari, Male, "common.items.armor.misc.head.bandana.thief"): ( + vox_spec: ("armor.misc.head.bandana.thief", (-2.0, -2.0, -8.0)), + color: None + ), + (Danari, Female, "common.items.armor.misc.head.bandana.thief"): ( + vox_spec: ("armor.misc.head.bandana.thief", (-2.0, -2.0, -8.0)), + color: None + ), + (Dwarf, Male, "common.items.armor.misc.head.bandana.thief"): ( + vox_spec: ("armor.misc.head.bandana.thief", (-5.0, -1.0, -10.0)), + color: None + ), + (Dwarf, Female, "common.items.armor.misc.head.bandana.thief"): ( + vox_spec: ("armor.misc.head.bandana.thief", (-5.0, -1.0, -10.0)), + color: None + ), + (Human, Male, "common.items.armor.misc.head.bandana.thief"): ( + vox_spec: ("armor.misc.head.bandana.thief", (-4.0, -2.0, -10.0)), + color: None + ), + (Human, Female, "common.items.armor.misc.head.bandana.thief"): ( + vox_spec: ("armor.misc.head.bandana.thief", (-4.0, -1.0, -10.0)), + color: None + ), + (Draugr, Male, "common.items.armor.misc.head.bandana.thief"): ( + vox_spec: ("armor.misc.head.bandana.thief", (-6.0, -2.0, -8.0)), + color: None + ), + (Draugr, Female, "common.items.armor.misc.head.bandana.thief"): ( + vox_spec: ("armor.misc.head.bandana.thief", (-6.0, -2.0, -9.0)), + color: None + ), + (Elf, Male, "common.items.armor.misc.head.bandana.thief"): ( + vox_spec: ("armor.misc.head.bandana.thief", (-3.0, -2.0, -10.0)), + color: None + ), + (Elf, Female, "common.items.armor.misc.head.bandana.thief"): ( + vox_spec: ("armor.misc.head.bandana.thief", (-3.0, -2.0, -10.0)), + color: None + ), + (Orc, Male, "common.items.armor.misc.head.bandana.thief"): ( + vox_spec: ("armor.misc.head.bandana.thief", (-3.0, 0.0, -7.0)), + color: None + ), + (Orc, Female, "common.items.armor.misc.head.bandana.thief"): ( + vox_spec: ("armor.misc.head.bandana.thief", (-3.0, -3.0, -10.0)), + color: None + ), +// + (Danari, Male, "common.items.armor.cultist.bandana"): ( + vox_spec: ("armor.cultist.bandana", (-2.0, -2.0, -8.0)), + color: None + ), + (Danari, Female, "common.items.armor.cultist.bandana"): ( + vox_spec: ("armor.cultist.bandana", (-2.0, -2.0, -8.0)), + color: None + ), + (Dwarf, Male, "common.items.armor.cultist.bandana"): ( + vox_spec: ("armor.cultist.bandana", (-5.0, -1.0, -10.0)), + color: None + ), + (Dwarf, Female, "common.items.armor.cultist.bandana"): ( + vox_spec: ("armor.cultist.bandana", (-5.0, -1.0, -10.0)), + color: None + ), + (Human, Male, "common.items.armor.cultist.bandana"): ( + vox_spec: ("armor.cultist.bandana", (-4.0, -2.0, -10.0)), + color: None + ), + (Human, Female, "common.items.armor.cultist.bandana"): ( + vox_spec: ("armor.cultist.bandana", (-4.0, -1.0, -10.0)), + color: None + ), + (Draugr, Male, "common.items.armor.cultist.bandana"): ( + vox_spec: ("armor.cultist.bandana", (-6.0, -2.0, -8.0)), + color: None + ), + (Draugr, Female, "common.items.armor.cultist.bandana"): ( + vox_spec: ("armor.cultist.bandana", (-6.0, -2.0, -9.0)), + color: None + ), + (Elf, Male, "common.items.armor.cultist.bandana"): ( + vox_spec: ("armor.cultist.bandana", (-3.0, -2.0, -10.0)), + color: None + ), + (Elf, Female, "common.items.armor.cultist.bandana"): ( + vox_spec: ("armor.cultist.bandana", (-3.0, -2.0, -10.0)), + color: None + ), + (Orc, Male, "common.items.armor.cultist.bandana"): ( + vox_spec: ("armor.cultist.bandana", (-3.0, 0.0, -7.0)), + color: None + ), + (Orc, Female, "common.items.armor.cultist.bandana"): ( + vox_spec: ("armor.cultist.bandana", (-3.0, -3.0, -10.0)), + color: None + ), + // + (Human, Male, "common.items.armor.misc.head.hood"): ( + vox_spec: ("armor.misc.head.hood", (-4.0, -6.0, -4.0)), + color: None + ), + (Human, Female, "common.items.armor.misc.head.hood"): ( + vox_spec: ("armor.misc.head.hood", (-4.0, -6.0, -4.0)), + color: None + ), + (Elf, Male, "common.items.armor.misc.head.hood"): ( + vox_spec: ("armor.misc.head.hood", (-3.0, -6.0, -4.0)), + color: None + ), + (Elf, Female, "common.items.armor.misc.head.hood"): ( + vox_spec: ("armor.misc.head.hood", (-3.0, -7.0, -4.0)), + color: None + ), + (Dwarf, Male, "common.items.armor.misc.head.hood"): ( + vox_spec: ("armor.misc.head.hood", (-5.0, -5.0, -4.0)), + color: None + ), + (Dwarf, Female, "common.items.armor.misc.head.hood"): ( + vox_spec: ("armor.misc.head.hood", (-5.0, -5.0, -4.0)), + color: None + ), + (Danari, Male, "common.items.armor.misc.head.hood"): ( + vox_spec: ("armor.misc.head.hood", (-2.0, -6.0, -2.0)), + color: None + ), + (Danari, Female, "common.items.armor.misc.head.hood"): ( + vox_spec: ("armor.misc.head.hood", (-2.0, -5.0, -2.0)), + color: None + ), + (Draugr, Male, "common.items.armor.misc.head.hood"): ( + vox_spec: ("armor.misc.head.hood", (-6.0, -6.0, -2.0)), + color: None + ), + (Draugr, Female, "common.items.armor.misc.head.hood"): ( + vox_spec: ("armor.misc.head.hood", (-6.0, -6.0, -3.0)), + color: None + ), + (Orc, Male, "common.items.armor.misc.head.hood"): ( + vox_spec: ("armor.misc.head.hood", (-3.0, -5.0, -2.0)), + color: None + ), + (Orc, Female, "common.items.armor.misc.head.hood"): ( + vox_spec: ("armor.misc.head.hood", (-3.0, -7.0, -4.0)), + color: None + ), + // + (Human, Male, "common.items.armor.misc.head.hood_dark"): ( + vox_spec: ("armor.misc.head.hood_dark", (-4.0, -6.0, -5.0)), + color: None + ), + (Human, Female, "common.items.armor.misc.head.hood_dark"): ( + vox_spec: ("armor.misc.head.hood_dark", (-4.0, -6.0, -5.0)), + color: None + ), + (Elf, Male, "common.items.armor.misc.head.hood_dark"): ( + vox_spec: ("armor.misc.head.hood_dark", (-3.0, -7.0, -5.0)), + color: None + ), + (Elf, Female, "common.items.armor.misc.head.hood_dark"): ( + vox_spec: ("armor.misc.head.hood_dark", (-3.0, -7.0, -5.0)), + color: None + ), + (Dwarf, Male, "common.items.armor.misc.head.hood_dark"): ( + vox_spec: ("armor.misc.head.hood_dark", (-5.0, -6.0, -5.0)), + color: None + ), + (Dwarf, Female, "common.items.armor.misc.head.hood_dark"): ( + vox_spec: ("armor.misc.head.hood_dark", (-5.0, -6.0, -5.0)), + color: None + ), + (Danari, Male, "common.items.armor.misc.head.hood_dark"): ( + vox_spec: ("armor.misc.head.hood_dark", (-2.0, -7.0, -3.0)), + color: None + ), + (Danari, Female, "common.items.armor.misc.head.hood_dark"): ( + vox_spec: ("armor.misc.head.hood_dark", (-2.0, -6.0, -3.0)), + color: None + ), + (Draugr, Male, "common.items.armor.misc.head.hood_dark"): ( + vox_spec: ("armor.misc.head.hood_dark", (-6.0, -7.0, -3.0)), + color: None + ), + (Draugr, Female, "common.items.armor.misc.head.hood_dark"): ( + vox_spec: ("armor.misc.head.hood_dark", (-6.0, -7.0, -4.0)), + color: None + ), + (Orc, Male, "common.items.armor.misc.head.hood_dark"): ( + vox_spec: ("armor.misc.head.hood_dark", (-3.0, -5.0, -4.0)), + color: None + ), + (Orc, Female, "common.items.armor.misc.head.hood_dark"): ( + vox_spec: ("armor.misc.head.hood_dark", (-3.0, -8.0, -5.0)), + color: None + ), + // + (Human, Male, "common.items.armor.misc.head.spikeguard"): ( + vox_spec: ("armor.misc.head.spikeguard", (-4.0, -5.0, 6.0)), + color: None + ), + (Human, Female, "common.items.armor.misc.head.spikeguard"): ( + vox_spec: ("armor.misc.head.spikeguard", (-4.0, -5.0, 8.0)), + color: None + ), + (Elf, Male, "common.items.armor.misc.head.spikeguard"): ( + vox_spec: ("armor.misc.head.spikeguard", (-3.0, -4.0, 7.0)), + color: None + ), + (Elf, Female, "common.items.armor.misc.head.spikeguard"): ( + vox_spec: ("armor.misc.head.spikeguard", (-3.0, -5.0, 8.0)), + color: None + ), + (Dwarf, Male, "common.items.armor.misc.head.spikeguard"): ( + vox_spec: ("armor.misc.head.spikeguard", (-5.0, -3.0, 7.0)), + color: None + ), + (Dwarf, Female, "common.items.armor.misc.head.spikeguard"): ( + vox_spec: ("armor.misc.head.spikeguard", (-5.0, -3.0, 7.0)), + color: None + ), + (Danari, Male, "common.items.armor.misc.head.spikeguard"): ( + vox_spec: ("armor.misc.head.spikeguard", (-2.0, -5.0, 8.5)), + color: None + ), + (Danari, Female, "common.items.armor.misc.head.spikeguard"): ( + vox_spec: ("armor.misc.head.spikeguard", (-2.0, -5.0, 9.0)), + color: None + ), + (Draugr, Male, "common.items.armor.misc.head.spikeguard"): ( + vox_spec: ("armor.misc.head.spikeguard", (-6.0, -4.0, 8.0)), + color: None + ), + (Draugr, Female, "common.items.armor.misc.head.spikeguard"): ( + vox_spec: ("armor.misc.head.spikeguard", (-6.0, -4.0, 7.0)), + color: None + ), + (Orc, Male, "common.items.armor.misc.head.spikeguard"): ( + vox_spec: ("armor.misc.head.spikeguard", (-3.0, -3.0, 8.0)), + color: None + ), + (Orc, Female, "common.items.armor.misc.head.spikeguard"): ( + vox_spec: ("armor.misc.head.spikeguard", (-3.0, -5.0, 7.0)), + color: None + ), + // + (Human, Female, "common.items.armor.misc.head.facegourd"): ( + vox_spec: ("armor.misc.head.facegourd", (-4.0, -5.0, -1.0)), + color: None + ), + (Human, Male, "common.items.armor.misc.head.facegourd"): ( + vox_spec: ("armor.misc.head.facegourd", (-4.0, -5.0, -1.0)), + color: None + ), + (Elf, Female, "common.items.armor.misc.head.facegourd"): ( + vox_spec: ("armor.misc.head.facegourd", (-3.0, -6.0, -1.0)), + color: None + ), + (Elf, Male, "common.items.armor.misc.head.facegourd"): ( + vox_spec: ("armor.misc.head.facegourd", (-3.0, -6.0, -1.0)), + color: None + ), + (Orc, Female, "common.items.armor.misc.head.facegourd"): ( + vox_spec: ("armor.misc.head.facegourd", (-3.0, -6.0, -1.0)), + color: None + ), + (Orc, Male, "common.items.armor.misc.head.facegourd"): ( + vox_spec: ("armor.misc.head.facegourd", (-3.0, -6.0, 2.0)), + color: None + ), + (Dwarf, Female, "common.items.armor.misc.head.facegourd"): ( + vox_spec: ("armor.misc.head.facegourd", (-5.0, -5.0, -1.0)), + color: None + ), + (Dwarf, Male, "common.items.armor.misc.head.facegourd"): ( + vox_spec: ("armor.misc.head.facegourd", (-5.0, -5.0, -1.0)), + color: None + ), + (Draugr, Female, "common.items.armor.misc.head.facegourd"): ( + vox_spec: ("armor.misc.head.facegourd", (-6.0, -5.0, -1.0)), + color: None + ), + (Draugr, Male, "common.items.armor.misc.head.facegourd"): ( + vox_spec: ("armor.misc.head.facegourd", (-6.0, -5.0, 1.0)), + color: None + ), + (Danari, Female, "common.items.armor.misc.head.facegourd"): ( + vox_spec: ("armor.misc.head.facegourd", (-2.0, -6.0, 1.0)), + color: None + ), + (Danari, Male, "common.items.armor.misc.head.facegourd"): ( + vox_spec: ("armor.misc.head.facegourd", (-2.0, -6.0, 1.0)), + color: None + ), + // Cardinal Mitre + (Human, Male, "common.items.armor.cardinal.mitre"): ( + vox_spec: ("armor.cardinal.mitre", (-4.0, -5.0, 5.0)), + color: None + ), + (Human, Female, "common.items.armor.cardinal.mitre"): ( + vox_spec: ("armor.cardinal.mitre", (-4.0, -5.0, 5.0)), + color: None + ), + (Elf, Male, "common.items.armor.cardinal.mitre"): ( + vox_spec: ("armor.cardinal.mitre", (-3.0, -5.0, 7.0)), + color: None + ), + (Elf, Female, "common.items.armor.cardinal.mitre"): ( + vox_spec: ("armor.cardinal.mitre", (-3.0, -6.0, 5.0)), + color: None + ), + (Dwarf, Male, "common.items.armor.cardinal.mitre"): ( + vox_spec: ("armor.cardinal.mitre", (-5.0, -4.0, 5.0)), + color: None + ), + (Dwarf, Female, "common.items.armor.cardinal.mitre"): ( + vox_spec: ("armor.cardinal.mitre", (-5.0, -4.0, 5.0)), + color: None + ), + (Danari, Male, "common.items.armor.cardinal.mitre"): ( + vox_spec: ("armor.cardinal.mitre", (-2.0, -5.0, 7.0)), + color: None + ), + (Danari, Female, "common.items.armor.cardinal.mitre"): ( + vox_spec: ("armor.cardinal.mitre", (-2.0, -4.0, 7.0)), + color: None + ), + (Draugr, Male, "common.items.armor.cardinal.mitre"): ( + vox_spec: ("armor.cardinal.mitre", (-6.0, -5.0, 7.0)), + color: None + ), + (Draugr, Female, "common.items.armor.cardinal.mitre"): ( + vox_spec: ("armor.cardinal.mitre", (-6.0, -5.0, 6.0)), + color: None + ), + (Orc, Male, "common.items.armor.cardinal.mitre"): ( + vox_spec: ("armor.cardinal.mitre", (-3.0, -3.0, 8.0)), + color: None + ), + (Orc, Female, "common.items.armor.cardinal.mitre"): ( + vox_spec: ("armor.cardinal.mitre", (-3.0, -6.0, 5.0)), + color: None + ), + // Merchant Turban + (Human, Male, "common.items.armor.merchant.turban"): ( + vox_spec: ("armor.merchant.turban", (-4.0, -7.0, -6.0)), + color: None + ), + (Human, Female, "common.items.armor.merchant.turban"): ( + vox_spec: ("armor.merchant.turban", (-4.0, -6.0, -6.0)), + color: None + ), + (Elf, Male, "common.items.armor.merchant.turban"): ( + vox_spec: ("armor.merchant.turban", (-3.0, -7.0, -6.0)), + color: None + ), + (Elf, Female, "common.items.armor.merchant.turban"): ( + vox_spec: ("armor.merchant.turban", (-3.0, -7.0, -6.0)), + color: None + ), + (Dwarf, Male, "common.items.armor.merchant.turban"): ( + vox_spec: ("armor.merchant.turban", (-5.0, -6.0, -6.0)), + color: None + ), + (Dwarf, Female, "common.items.armor.merchant.turban"): ( + vox_spec: ("armor.merchant.turban", (-5.0, -6.0, -6.0)), + color: None + ), + (Danari, Male, "common.items.armor.merchant.turban"): ( + vox_spec: ("armor.merchant.turban", (-2.0, -7.0, -4.0)), + color: None + ), + (Danari, Female, "common.items.armor.merchant.turban"): ( + vox_spec: ("armor.merchant.turban", (-2.0, -7.0, -4.0)), + color: None + ), + (Draugr, Male, "common.items.armor.merchant.turban"): ( + vox_spec: ("armor.merchant.turban", (-6.0, -7.0, -4.0)), + color: None + ), + (Draugr, Female, "common.items.armor.merchant.turban"): ( + vox_spec: ("armor.merchant.turban", (-6.0, -7.0, -5.0)), + color: None + ), + (Orc, Male, "common.items.armor.merchant.turban"): ( + vox_spec: ("armor.merchant.turban", (-3.0, -5.0, -4.0)), + color: None + ), + (Orc, Female, "common.items.armor.merchant.turban"): ( + vox_spec: ("armor.merchant.turban", (-3.0, -8.0, -6.0)), + color: None + ), + //Winged Coronet -1, 5 + (Human, Male, "common.items.armor.misc.head.winged_coronet"): ( + vox_spec: ("armor.misc.head.winged_coronet", (-4.0, -4.0, -1.0)), + color: None + ), + (Human, Female, "common.items.armor.misc.head.winged_coronet"): ( + vox_spec: ("armor.misc.head.winged_coronet", (-4.0, -3.0, -1.0)), + color: None + ), + (Elf, Male, "common.items.armor.misc.head.winged_coronet"): ( + vox_spec: ("armor.misc.head.winged_coronet", (-3.0, -4.0, -1.0)), + color: None + ), + (Elf, Female, "common.items.armor.misc.head.winged_coronet"): ( + vox_spec: ("armor.misc.head.winged_coronet", (-3.0, -4.0, -1.0)), + color: None + ), + (Dwarf, Male, "common.items.armor.misc.head.winged_coronet"): ( + vox_spec: ("armor.misc.head.winged_coronet", (-5.0, -3.0, -2.5)), + color: None + ), + (Dwarf, Female, "common.items.armor.misc.head.winged_coronet"): ( + vox_spec: ("armor.misc.head.winged_coronet", (-5.0, -3.0, -2.5)), + color: None + ), + (Danari, Male, "common.items.armor.misc.head.winged_coronet"): ( + vox_spec: ("armor.misc.head.winged_coronet", (-2.0, -4.0, 0.0)), + color: None + ), + (Danari, Female, "common.items.armor.misc.head.winged_coronet"): ( + vox_spec: ("armor.misc.head.winged_coronet", (-2.0, -4.0, 0.0)), + color: None + ), + (Draugr, Male, "common.items.armor.misc.head.winged_coronet"): ( + vox_spec: ("armor.misc.head.winged_coronet", (-6.0, -5.0, 0.0)), + color: None + ), + (Draugr, Female, "common.items.armor.misc.head.winged_coronet"): ( + vox_spec: ("armor.misc.head.winged_coronet", (-6.0, -5.0, -1.0)), + color: None + ), + (Orc, Male, "common.items.armor.misc.head.winged_coronet"): ( + vox_spec: ("armor.misc.head.winged_coronet", (-3.0, -2.0, 1.0)), + color: None + ), + (Orc, Female, "common.items.armor.misc.head.winged_coronet"): ( + vox_spec: ("armor.misc.head.winged_coronet", (-3.0, -5.0, -1.0)), + color: None + ), + // Boreal Warhelmet + (Human, Male, "common.items.armor.misc.head.boreal_warhelm"): ( + vox_spec: ("armor.misc.head.boreal_warhelm", (-4.0, -5.0, -4.0)), + color: None + ), + (Human, Female, "common.items.armor.misc.head.boreal_warhelm"): ( + vox_spec: ("armor.misc.head.boreal_warhelm", (-4.0, -5.0, -4.0)), + color: None + ), + (Elf, Male, "common.items.armor.misc.head.boreal_warhelm"): ( + vox_spec: ("armor.misc.head.boreal_warhelm", (-3.0, -6.0, -4.0)), + color: None + ), + (Elf, Female, "common.items.armor.misc.head.boreal_warhelm"): ( + vox_spec: ("armor.misc.head.boreal_warhelm", (-3.0, -6.0, -4.0)), + color: None + ), + (Dwarf, Male, "common.items.armor.misc.head.boreal_warhelm"): ( + vox_spec: ("armor.misc.head.boreal_warhelm", (-5.0, -5.0, -4.0)), + color: None + ), + (Dwarf, Female, "common.items.armor.misc.head.boreal_warhelm"): ( + vox_spec: ("armor.misc.head.boreal_warhelm", (-5.0, -5.0, -4.0)), + color: None + ), + (Danari, Male, "common.items.armor.misc.head.boreal_warhelm"): ( + vox_spec: ("armor.misc.head.boreal_warhelm", (-2.0, -6.0, -2.0)), + color: None + ), + (Danari, Female, "common.items.armor.misc.head.boreal_warhelm"): ( + vox_spec: ("armor.misc.head.boreal_warhelm", (-2.0, -6.0, -2.0)), + color: None + ), + (Draugr, Male, "common.items.armor.misc.head.boreal_warhelm"): ( + vox_spec: ("armor.misc.head.boreal_warhelm", (-6.0, -6.0, -3.0)), + color: None + ), + (Draugr, Female, "common.items.armor.misc.head.boreal_warhelm"): ( + vox_spec: ("armor.misc.head.boreal_warhelm", (-6.0, -6.0, -3.0)), + color: None + ), + (Orc, Male, "common.items.armor.misc.head.boreal_warhelm"): ( + vox_spec: ("armor.misc.head.boreal_warhelm", (-3.0, -4.0, -2.0)), + color: None + ), + (Orc, Female, "common.items.armor.misc.head.boreal_warhelm"): ( + vox_spec: ("armor.misc.head.boreal_warhelm", (-3.0, -7.0, -4.0)), + color: None + ), + // Golemite Helmet + (Human, Male, "common.items.armor.golemite.helmet"): ( + vox_spec: ("armor.golemite.golemite", (-4.0, -6.0, -2.0), 0), + color: None + ), + (Human, Female, "common.items.armor.golemite.helmet"): ( + vox_spec: ("armor.golemite.golemite", (-4.0, -6.0, -2.0), 0), + color: None + ), + (Elf, Male, "common.items.armor.golemite.helmet"): ( + vox_spec: ("armor.golemite.golemite", (-3.0, -6.0, -2.0), 0), + color: None + ), + (Elf, Female, "common.items.armor.golemite.helmet"): ( + vox_spec: ("armor.golemite.golemite", (-3.0, -6.0, -2.0), 0), + color: None + ), + (Dwarf, Male, "common.items.armor.golemite.helmet"): ( + vox_spec: ("armor.golemite.golemite", (-5.0, -5.0, -2.0), 0), + color: None + ), + (Dwarf, Female, "common.items.armor.golemite.helmet"): ( + vox_spec: ("armor.golemite.golemite", (-5.0, -5.0, -2.0), 0), + color: None + ), + (Danari, Male, "common.items.armor.golemite.helmet"): ( + vox_spec: ("armor.golemite.golemite", (-2.0, -6.0, 0.0), 0), + color: None + ), + (Danari, Female, "common.items.armor.golemite.helmet"): ( + vox_spec: ("armor.golemite.golemite", (-2.0, -6.0, 0.0), 0), + color: None + ), + (Draugr, Male, "common.items.armor.golemite.helmet"): ( + vox_spec: ("armor.golemite.golemite", (-6.0, -6.0, -0.5), 0), + color: None + ), + (Draugr, Female, "common.items.armor.golemite.helmet"): ( + vox_spec: ("armor.golemite.golemite", (-6.0, -6.0, -1.0), 0), + color: None + ), + (Orc, Male, "common.items.armor.golemite.helmet"): ( + vox_spec: ("armor.golemite.golemite", (-3.0, -4.0, 0.0), 0), + color: None + ), + (Orc, Female, "common.items.armor.golemite.helmet"): ( + vox_spec: ("armor.golemite.golemite", (-3.0, -7.0, -2.0), 0), + color: None + ), + // Brinestone Crown + (Human, Male, "common.items.armor.brinestone.crown"): ( + vox_spec: ("armor.brinestone.crown", (-4.0, -4.0, -1.0)), + color: None + ), + (Human, Female, "common.items.armor.brinestone.crown"): ( + vox_spec: ("armor.brinestone.crown", (-4.0, -4.0, -1.0)), + color: None + ), + (Elf, Male, "common.items.armor.brinestone.crown"): ( + vox_spec: ("armor.brinestone.crown", (-3.0, -4.0, -0.0)), + color: None + ), + (Elf, Female, "common.items.armor.brinestone.crown"): ( + vox_spec: ("armor.brinestone.crown", (-3.0, -4.0, -0.0)), + color: None + ), + (Dwarf, Male, "common.items.armor.brinestone.crown"): ( + vox_spec: ("armor.brinestone.crown", (-5.0, -3.0, -1.0)), + color: None + ), + (Dwarf, Female, "common.items.armor.brinestone.crown"): ( + vox_spec: ("armor.brinestone.crown", (-5.0, -3.0, -1.0)), + color: None + ), + (Danari, Male, "common.items.armor.brinestone.crown"): ( + vox_spec: ("armor.brinestone.crown", (-2.0, -4.0, 1.0)), + color: None + ), + (Danari, Female, "common.items.armor.brinestone.crown"): ( + vox_spec: ("armor.brinestone.crown", (-2.0, -4.0, 2.0)), + color: None + ), + (Draugr, Male, "common.items.armor.brinestone.crown"): ( + vox_spec: ("armor.brinestone.crown", (-6.0, -4.0, 0.0)), + color: None + ), + (Draugr, Female, "common.items.armor.brinestone.crown"): ( + vox_spec: ("armor.brinestone.crown", (-6.0, -4.0, -1.0)), + color: None + ), + (Orc, Male, "common.items.armor.brinestone.crown"): ( + vox_spec: ("armor.brinestone.crown", (-3.0, -2.0, 1.0)), + color: None + ), + (Orc, Female, "common.items.armor.brinestone.crown"): ( + vox_spec: ("armor.brinestone.crown", (-3.0, -5.0, -1.0)), + color: None + ), + // Woolly Wintercap (Christmas hat+event) + (Human, Male, "common.items.calendar.christmas.armor.misc.head.woolly_wintercap"): ( + vox_spec: ("armor.misc.head.woolly_wintercap", (-4.0, -7.0, -3.0)), + color: None + ), + (Human, Female, "common.items.calendar.christmas.armor.misc.head.woolly_wintercap"): ( + vox_spec: ("armor.misc.head.woolly_wintercap", (-4.0, -7.0, -3.0)), + color: None + ), + (Elf, Male, "common.items.calendar.christmas.armor.misc.head.woolly_wintercap"): ( + vox_spec: ("armor.misc.head.woolly_wintercap", (-3.0, -7.0, -4.0)), + color: None + ), + (Elf, Female, "common.items.calendar.christmas.armor.misc.head.woolly_wintercap"): ( + vox_spec: ("armor.misc.head.woolly_wintercap", (-3.0, -8.0, -4.0)), + color: None + ), + (Dwarf, Male, "common.items.calendar.christmas.armor.misc.head.woolly_wintercap"): ( + vox_spec: ("armor.misc.head.woolly_wintercap", (-5.0, -6.0, -3.0)), + color: None + ), + (Dwarf, Female, "common.items.calendar.christmas.armor.misc.head.woolly_wintercap"): ( + vox_spec: ("armor.misc.head.woolly_wintercap", (-5.0, -6.0, -3.0)), + color: None + ), + (Danari, Male, "common.items.calendar.christmas.armor.misc.head.woolly_wintercap"): ( + vox_spec: ("armor.misc.head.woolly_wintercap", (-2.0, -7.0, -2.0)), + color: None + ), + (Danari, Female, "common.items.calendar.christmas.armor.misc.head.woolly_wintercap"): ( + vox_spec: ("armor.misc.head.woolly_wintercap", (-2.0, -7.0, -2.0)), + color: None + ), + (Draugr, Male, "common.items.calendar.christmas.armor.misc.head.woolly_wintercap"): ( + vox_spec: ("armor.misc.head.woolly_wintercap", (-6.0, -7.0, -3.0)), + color: None + ), + (Draugr, Female, "common.items.calendar.christmas.armor.misc.head.woolly_wintercap"): ( + vox_spec: ("armor.misc.head.woolly_wintercap", (-6.0, -7.0, -4.0)), + color: None + ), + (Orc, Male, "common.items.calendar.christmas.armor.misc.head.woolly_wintercap"): ( + vox_spec: ("armor.misc.head.woolly_wintercap", (-3.0, -5.0, -2.0)), + color: None + ), + (Orc, Female, "common.items.calendar.christmas.armor.misc.head.woolly_wintercap"): ( + vox_spec: ("armor.misc.head.woolly_wintercap", (-3.0, -8.0, -4.0)), + color: None + ), + // Hare Hat (Easter hat+event) + (Human, Male, "common.items.armor.misc.head.hare_hat"): ( + vox_spec: ("armor.misc.head.hare_hat", (-4.0, -6.0, -4.0)), + color: None + ), + (Human, Female, "common.items.armor.misc.head.hare_hat"): ( + vox_spec: ("armor.misc.head.hare_hat", (-4.0, -5.0, -4.0)), + color: None + ), + (Elf, Male, "common.items.armor.misc.head.hare_hat"): ( + vox_spec: ("armor.misc.head.hare_hat", (-3.0, -6.0, -5.0)), + color: None + ), + (Elf, Female, "common.items.armor.misc.head.hare_hat"): ( + vox_spec: ("armor.misc.head.hare_hat", (-3.0, -6.0, -5.0)), + color: None + ), + (Dwarf, Male, "common.items.armor.misc.head.hare_hat"): ( + vox_spec: ("armor.misc.head.hare_hat", (-5.0, -5.0, -5.0)), + color: None + ), + (Dwarf, Female, "common.items.armor.misc.head.hare_hat"): ( + vox_spec: ("armor.misc.head.hare_hat", (-5.0, -5.0, -5.0)), + color: None + ), + (Danari, Male, "common.items.armor.misc.head.hare_hat"): ( + vox_spec: ("armor.misc.head.hare_hat", (-2.0, -6.0, -2.0)), + color: None + ), + (Danari, Female, "common.items.armor.misc.head.hare_hat"): ( + vox_spec: ("armor.misc.head.hare_hat", (-2.0, -6.0, -2.0)), + color: None + ), + (Draugr, Male, "common.items.armor.misc.head.hare_hat"): ( + vox_spec: ("armor.misc.head.hare_hat", (-6.0, -6.0, -3.0)), + color: None + ), + (Draugr, Female, "common.items.armor.misc.head.hare_hat"): ( + vox_spec: ("armor.misc.head.hare_hat", (-6.0, -6.0, -4.0)), + color: None + ), + (Orc, Male, "common.items.armor.misc.head.hare_hat"): ( + vox_spec: ("armor.misc.head.hare_hat", (-3.0, -5.0, -3.0)), + color: None + ), + (Orc, Female, "common.items.armor.misc.head.hare_hat"): ( + vox_spec: ("armor.misc.head.hare_hat", (-3.0, -7.0, -5.0)), + color: None + ), + // Cat Capuche (April Fools hat+event) + (Human, Male, "common.items.armor.misc.head.cat_capuche"): ( + vox_spec: ("armor.misc.head.cat_capuche", (-4.0, -6.0, -4.0)), + color: None + ), + (Human, Female, "common.items.armor.misc.head.cat_capuche"): ( + vox_spec: ("armor.misc.head.cat_capuche", (-4.0, -5.0, -4.0)), + color: None + ), + (Elf, Male, "common.items.armor.misc.head.cat_capuche"): ( + vox_spec: ("armor.misc.head.cat_capuche", (-3.0, -6.0, -5.0)), + color: None + ), + (Elf, Female, "common.items.armor.misc.head.cat_capuche"): ( + vox_spec: ("armor.misc.head.cat_capuche", (-3.0, -6.0, -5.0)), + color: None + ), + (Dwarf, Male, "common.items.armor.misc.head.cat_capuche"): ( + vox_spec: ("armor.misc.head.cat_capuche", (-5.0, -5.0, -5.0)), + color: None + ), + (Dwarf, Female, "common.items.armor.misc.head.cat_capuche"): ( + vox_spec: ("armor.misc.head.cat_capuche", (-5.0, -5.0, -5.0)), + color: None + ), + (Danari, Male, "common.items.armor.misc.head.cat_capuche"): ( + vox_spec: ("armor.misc.head.cat_capuche", (-2.0, -6.0, -2.0)), + color: None + ), + (Danari, Female, "common.items.armor.misc.head.cat_capuche"): ( + vox_spec: ("armor.misc.head.cat_capuche", (-2.0, -6.0, -2.0)), + color: None + ), + (Draugr, Male, "common.items.armor.misc.head.cat_capuche"): ( + vox_spec: ("armor.misc.head.cat_capuche", (-6.0, -6.0, -3.0)), + color: None + ), + (Draugr, Female, "common.items.armor.misc.head.cat_capuche"): ( + vox_spec: ("armor.misc.head.cat_capuche", (-6.0, -6.0, -4.0)), + color: None + ), + (Orc, Male, "common.items.armor.misc.head.cat_capuche"): ( + vox_spec: ("armor.misc.head.cat_capuche", (-3.0, -5.0, -3.0)), + color: None + ), + (Orc, Female, "common.items.armor.misc.head.cat_capuche"): ( + vox_spec: ("armor.misc.head.cat_capuche", (-3.0, -7.0, -5.0)), + color: None + ), + // Gnarling Chieftain Mask + (Human, Male, "common.items.armor.misc.head.gnarling_mask"): ( + vox_spec: ("armor.misc.head.gnarling_mask", (-4.0, 1.0, -2.0)), + color: None + ), + (Human, Female, "common.items.armor.misc.head.gnarling_mask"): ( + vox_spec: ("armor.misc.head.gnarling_mask", (-4.0, 1.0, -1.0)), + color: None + ), + (Elf, Male, "common.items.armor.misc.head.gnarling_mask"): ( + vox_spec: ("armor.misc.head.gnarling_mask", (-3.0, 1.0, -2.0)), + color: None + ), + (Elf, Female, "common.items.armor.misc.head.gnarling_mask"): ( + vox_spec: ("armor.misc.head.gnarling_mask", (-3.0, 1.0, -2.0)), + color: None + ), + (Dwarf, Male, "common.items.armor.misc.head.gnarling_mask"): ( + vox_spec: ("armor.misc.head.gnarling_mask", (-5.0, 2.0, -2.0)), + color: None + ), + (Dwarf, Female, "common.items.armor.misc.head.gnarling_mask"): ( + vox_spec: ("armor.misc.head.gnarling_mask", (-5.0, 2.0, -1.0)), + color: None + ), + (Danari, Male, "common.items.armor.misc.head.gnarling_mask"): ( + vox_spec: ("armor.misc.head.gnarling_mask", (-2.0, 0.0, 2.0)), + color: None + ), + (Danari, Female, "common.items.armor.misc.head.gnarling_mask"): ( + vox_spec: ("armor.misc.head.gnarling_mask", (-2.0, 1.0, 2.0)), + color: None + ), + (Draugr, Male, "common.items.armor.misc.head.gnarling_mask"): ( + vox_spec: ("armor.misc.head.gnarling_mask", (-6.0, 1.0, 0.0)), + color: None + ), + (Draugr, Female, "common.items.armor.misc.head.gnarling_mask"): ( + vox_spec: ("armor.misc.head.gnarling_mask", (-6.0, 1.0, 0.0)), + color: None + ), + (Orc, Male, "common.items.armor.misc.head.gnarling_mask"): ( + vox_spec: ("armor.misc.head.gnarling_mask", (-3.0, 1.0, 0.0)), + color: None + ), + (Orc, Female, "common.items.armor.misc.head.gnarling_mask"): ( + vox_spec: ("armor.misc.head.gnarling_mask", (-3.0, 0.0, -1.0)), + color: None + ), + // Miner + (Human, Male, "common.items.armor.miner.helmet"): ( + vox_spec: ("armor.miner.helmet", (-4.0, -6.0, -1.0)), + color: Some((146, 32, 32)), + ), + (Human, Female, "common.items.armor.miner.helmet"): ( + vox_spec: ("armor.miner.helmet", (-4.0, -6.0, -1.0)), + color: Some((146, 32, 32)), + ), + (Elf, Male, "common.items.armor.miner.helmet"): ( + vox_spec: ("armor.miner.helmet", (-3.0, -6.0, -1.0)), + color: Some((146, 32, 32)), + ), + (Elf, Female, "common.items.armor.miner.helmet"): ( + vox_spec: ("armor.miner.helmet", (-3.0, -6.0, -1.0)), + color: Some((146, 32, 32)), + ), + (Dwarf, Male, "common.items.armor.miner.helmet"): ( + vox_spec: ("armor.miner.helmet", (-5.0, -5.0, -1.0)), + color: Some((146, 32, 32)), + ), + (Dwarf, Female, "common.items.armor.miner.helmet"): ( + vox_spec: ("armor.miner.helmet", (-5.0, -5.0, -1.0)), + color: Some((146, 32, 32)), + ), + (Danari, Male, "common.items.armor.miner.helmet"): ( + vox_spec: ("armor.miner.helmet", (-2.0, -6.0, 1.0)), + color: Some((146, 32, 32)), + ), + (Danari, Female, "common.items.armor.miner.helmet"): ( + vox_spec: ("armor.miner.helmet", (-2.0, -6.0, 1.0)), + color: Some((146, 32, 32)), + ), + (Draugr, Male, "common.items.armor.miner.helmet"): ( + vox_spec: ("armor.miner.helmet", (-6.0, -6.0, 0.0)), + color: Some((146, 32, 32)), + ), + (Draugr, Female, "common.items.armor.miner.helmet"): ( + vox_spec: ("armor.miner.helmet", (-6.0, -6.0, -1.0)), + color: Some((146, 32, 32)), + ), + (Orc, Male, "common.items.armor.miner.helmet"): ( + vox_spec: ("armor.miner.helmet", (-3.0, -5.0, 1.0)), + color: Some((146, 32, 32)), + ), + (Orc, Female, "common.items.armor.miner.helmet"): ( + vox_spec: ("armor.miner.helmet", (-3.0, -7.0, -1.0)), + color: Some((146, 32, 32)), + ), + // Orichalcum Helmet + (Human, Male, "common.items.armor.mail.orichalcum.head"): ( + vox_spec: ("armor.mail.orichalcum", (-4.0, -6.0, -2.0), 5), + color: None + ), + (Human, Female, "common.items.armor.mail.orichalcum.head"): ( + vox_spec: ("armor.mail.orichalcum", (-4.0, -5.0, -2.0), 5), + color: None + ), + (Elf, Male, "common.items.armor.mail.orichalcum.head"): ( + vox_spec: ("armor.mail.orichalcum", (-3.0, -6.0, -2.0), 5), + color: None + ), + (Elf, Female, "common.items.armor.mail.orichalcum.head"): ( + vox_spec: ("armor.mail.orichalcum", (-3.0, -6.0, -2.0), 5), + color: None + ), + (Dwarf, Male, "common.items.armor.mail.orichalcum.head"): ( + vox_spec: ("armor.mail.orichalcum", (-5.0, -5.0, -2.0), 5), + color: None + ), + (Dwarf, Female, "common.items.armor.mail.orichalcum.head"): ( + vox_spec: ("armor.mail.orichalcum", (-5.0, -5.0, -2.0), 5), + color: None + ), + (Danari, Male, "common.items.armor.mail.orichalcum.head"): ( + vox_spec: ("armor.mail.orichalcum", (-2.0, -6.0, 0.0), 5), + color: None + ), + (Danari, Female, "common.items.armor.mail.orichalcum.head"): ( + vox_spec: ("armor.mail.orichalcum", (-2.0, -6.0, 0.0), 5), + color: None + ), + (Draugr, Male, "common.items.armor.mail.orichalcum.head"): ( + vox_spec: ("armor.mail.orichalcum", (-6.0, -6.0, 0.0), 5), + color: None + ), + (Draugr, Female, "common.items.armor.mail.orichalcum.head"): ( + vox_spec: ("armor.mail.orichalcum", (-6.0, -6.0, -1.0), 5), + color: None + ), + (Orc, Male, "common.items.armor.mail.orichalcum.head"): ( + vox_spec: ("armor.mail.orichalcum", (-3.0, -4.5, 1.0), 5), + color: None + ), + (Orc, Female, "common.items.armor.mail.orichalcum.head"): ( + vox_spec: ("armor.mail.orichalcum", (-3.0, -7.0, -2.0), 5), + color: None + ), + // Red Glasses (halloween event) + (Dwarf, Male, "common.items.armor.misc.head.scarlet_spectacles"): ( + vox_spec: ("armor.misc.head.scarlet_spectacles.general", (2.0, 10.0, 2.0)), + color: None, + ), + (Dwarf, Female, "common.items.armor.misc.head.scarlet_spectacles"): ( + vox_spec: ("armor.misc.head.scarlet_spectacles.general", (2.0, 10.0, 2.0)), + color: None, + ), + (Danari, Male, "common.items.armor.misc.head.scarlet_spectacles"): ( + vox_spec: ("armor.misc.head.scarlet_spectacles.general", (5.0, 9.0, 4.0)), + color: None, + ), + (Danari, Female, "common.items.armor.misc.head.scarlet_spectacles"): ( + vox_spec: ("armor.misc.head.scarlet_spectacles.general", (5.0, 9.0, 4.0)), + color: None, + ), + (Human, Male, "common.items.armor.misc.head.scarlet_spectacles"): ( + vox_spec: ("armor.misc.head.scarlet_spectacles.general", (3.0, 9.0, 2.0)), + color: None, + ), + (Human, Female, "common.items.armor.misc.head.scarlet_spectacles"): ( + vox_spec: ("armor.misc.head.scarlet_spectacles.general", (3.0, 10.0, 2.0)), + color: None, + ), + (Elf, Male, "common.items.armor.misc.head.scarlet_spectacles"): ( + vox_spec: ("armor.misc.head.scarlet_spectacles.general", (4.0, 9.0, 2.0)), + color: None, + ), + (Elf, Female, "common.items.armor.misc.head.scarlet_spectacles"): ( + vox_spec: ("armor.misc.head.scarlet_spectacles.general", (4.0, 9.0, 2.0)), + color: None, + ), + (Orc, Male, "common.items.armor.misc.head.scarlet_spectacles"): ( + vox_spec: ("armor.misc.head.scarlet_spectacles.orc", (5.0, 10.0, 6.0)), + color: None, + ), + (Orc, Female, "common.items.armor.misc.head.scarlet_spectacles"): ( + vox_spec: ("armor.misc.head.scarlet_spectacles.general", (4.0, 8.0, 2.0)), + color: None, + ), + (Draugr, Male, "common.items.armor.misc.head.scarlet_spectacles"): ( + vox_spec: ("armor.misc.head.scarlet_spectacles.draugr", (2.0, 8.0, 3.0)), + color: None, + ), + (Draugr, Female, "common.items.armor.misc.head.scarlet_spectacles"): ( + vox_spec: ("armor.misc.head.scarlet_spectacles.draugr", (2.0, 8.0, 2.0)), + color: None, + ), + } +)) diff --git a/assets/voxygen/voxel/humanoid_armor_pants_manifest.ron b/assets/voxygen/voxel/humanoid_armor_pants_manifest.ron new file mode 100644 index 0000000..deabc73 --- /dev/null +++ b/assets/voxygen/voxel/humanoid_armor_pants_manifest.ron @@ -0,0 +1,228 @@ +(( + default: ( + vox_spec: ("armor.misc.pants.none", (-5.0, -3.5, 1.0)), + color: Some((28, 66, 109)) + ), + map: { + "Blue": ( + vox_spec: ("armor.misc.pants.grayscale", (-5.0, -3.5, 1.0)), + color: Some((28, 66, 109)) + ), + "Brown": ( + vox_spec: ("armor.misc.pants.grayscale", (-5.0, -3.5, 1.0)), + color: Some((54, 30, 26)) + ), + "Dark": ( + vox_spec: ("armor.misc.pants.grayscale", (-5.0, -3.5, 1.0)), + color: Some((24, 19, 17)) + ), + "common.items.armor.misc.pants.hunting": ( + vox_spec: ("armor.misc.pants.grayscale", (-5.0, -3.5, 1.0)), + color: Some((49, 95, 59)) + ), + "Orange": ( + vox_spec: ("armor.misc.pants.grayscale", (-5.0, -3.5, 1.0)), + color: Some((148, 52, 33)) + ), + "common.items.armor.assassin.pants": ( + vox_spec: ("armor.assassin.pants", (-5.0, -3.5, 1.0)), + color: None + ), + "Kimono": ( + vox_spec: ("armor.misc.pants.cloth_red_kimono", (-5.0, -3.5, 0.0)), + color: None + ), + "common.items.armor.ferocious.pants": ( + vox_spec: ("armor.ferocious.pants", (-5.0, -3.5, 1.0)), + color: None + ), + "common.items.armor.boreal.pants": ( + vox_spec: ("armor.boreal.pants", (-5.0, -3.5, 0.0)), + color: None + ), + "common.items.armor.golemite.pants": ( + vox_spec: ("armor.golemite.golemite", (-6.0, -3.5, 0.0), 7), + color: None + ), + "common.items.armor.brinestone.pants": ( + vox_spec: ("armor.brinestone.pants", (-7.0, -3.5, -1.0)), + color: None + ), + "common.items.npc_armor.pants.plate_red": ( + vox_spec: ("armor.misc.pants.plate_grey", (-5.0, -3.5, 1.0)), + color: Some((124, 38, 46)) + ), + "common.items.armor.cloth_purple.pants": ( + vox_spec: ("armor.cloth_purple.pants", (-5.0, -3.5, 0.0)), + color: None + ), + "common.items.armor.cloth_blue.pants": ( + vox_spec: ("armor.cloth_blue.pants", (-5.0, -3.5, 0.0)), + color: None + ), + "common.items.armor.cloth_green.pants": ( + vox_spec: ("armor.cloth_green.pants", (-5.0, -3.5, 0.0)), + color: None + ), + "common.items.armor.rugged.pants": ( + vox_spec: ("armor.rugged.pants", (-5.0, -3.5, 1.0)), + color: None + ), + "common.items.armor.misc.pants.worker_blue": ( + vox_spec: ("armor.misc.pants.worker_blue", (-5.0, -3.5, 1.0)), + color: None + ), + "common.items.armor.misc.pants.worker_brown": ( + vox_spec: ("armor.misc.pants.worker_brown", (-5.0, -3.5, 1.0)), + color: None + ), + "common.items.armor.cultist.pants": ( + vox_spec: ("armor.cultist.pants", (-5.0, -3.5, 1.0)), + color: Some((30, 0, 64)) + ), + "common.items.armor.leather_plate.pants": ( + vox_spec: ("armor.leather_plate.pants", (-5.0, -3.5, 1.0)), + color: None + ), + "common.items.armor.twigs.pants": ( + vox_spec: ("armor.twigs.pants", (-5.0, -3.5, 0.0)), + color: None + ), + "common.items.armor.twigsleaves.pants": ( + vox_spec: ("armor.twigsleaves.pants", (-5.0, -3.5, 0.0)), + color: None + ), + "common.items.armor.twigsflowers.pants": ( + vox_spec: ("armor.twigsflowers.pants", (-6.0, -3.5, 0.0)), + color: None + ), + "common.items.armor.tarasque.pants":( + vox_spec: ("armor.tarasque.pants", (-6.0, -4.5, 1.0)), + color: None + ), + "common.items.armor.bonerattler.pants":( + vox_spec: ("armor.bonerattler.pants", (-5.0, -3.5, 1.0)), + color: None + ), + "common.items.armor.velorite_mage.pants": ( + vox_spec: ("armor.velorite_battlemage.pants", (-6.0, -3.5, -2.0)), + color: None + ), + "common.items.debug.cultist_legs_blue": ( + vox_spec: ("armor.velorite_battlemage.pants", (-6.0, -3.5, -2.0)), + color: None + ), + "common.items.npc_armor.pants.leather_blue": ( + vox_spec: ("armor.leather_blue.pants", (-5.0, -3.5, 1.0)), + color: None + ), + "common.items.armor.hide.rawhide.pants": ( + vox_spec: ("armor.hide.rawhide.pants", (-5.0, -3.5, 1.0)), + color: None + ), + "common.items.armor.hide.leather.pants": ( + vox_spec: ("armor.hide.leather.pants", (-5.0, -3.5, 1.0)), + color: None + ), + "common.items.armor.miner.pants": ( + vox_spec: ("armor.miner.pants", (-5.0, -3.5, 1.0)), + color: None + ), + "common.items.armor.hide.scale.pants": ( + vox_spec: ("armor.hide.scale.pants", (-5.0, -3.5, 0.0)), + color: None + ), + "common.items.armor.hide.carapace.pants": ( + vox_spec: ("armor.hide.carapace.pants", (-6.0, -3.5, 1.0)), + color: None + ), + "common.items.armor.hide.primal.pants": ( + vox_spec: ("armor.hide.primal.pants", (-6.0, -3.5, 1.0)), + color: None + ), + "common.items.armor.hide.dragonscale.pants": ( + vox_spec: ("armor.hide.dragonscale.pants", (-5.0, -3.5, -1.0)), + color: None + ), + "common.items.armor.savage.pants": ( + vox_spec: ("armor.savage.pants", (-5.0, -3.5, 1.0)), + color: None + ), + "common.items.armor.witch.pants": ( + vox_spec: ("armor.witch.pants", (-5.0, -3.5, 0.0)), + color: None + ), + "common.items.armor.pirate.pants": ( + vox_spec: ("armor.pirate.pants", (-5.0, -3.5, 0.0)), + color: None + ), + "common.items.armor.alchemist.pants": ( + vox_spec: ("armor.alchemist", (-5.0, -3.5, 0.0), 3), + color: None + ), + "common.items.armor.blacksmith.pants": ( + vox_spec: ("armor.blacksmith.pants", (-5.0, -3.5, 0.0)), + color: None + ), + "common.items.armor.chef.pants": ( + vox_spec: ("armor.chef.pants", (-5.0, -4.0, 0.0)), + color: None + ), + "common.items.armor.cloth.linen.pants": ( + vox_spec: ("armor.cloth.linen.pants", (-5.0, -3.5, 0.0)), + color: None + ), + "common.items.armor.cloth.woolen.pants": ( + vox_spec: ("armor.cloth.woolen.pants", (-6.0, -4.5, 1.0)), + color: None + ), + "common.items.armor.cloth.silken.pants": ( + vox_spec: ("armor.cloth.silken.pants", (-5.0, -3.5, 0.0)), + color: None + ), + "common.items.armor.cloth.druid.pants": ( + vox_spec: ("armor.cloth.druid.pants", (-5.0, -3.5, -1.0)), + color: None + ), + "common.items.armor.cloth.moonweave.pants": ( + vox_spec: ("armor.cloth.moonweave.pants", (-6.0, -4.5, 0.0)), + color: None + ), + "common.items.armor.cloth.sunsilk.pants": ( + vox_spec: ("armor.cloth.sunsilk.pants", (-6.0, -4.5, 0.0)), + color: None + ), + "common.items.armor.mail.bronze.pants": ( + vox_spec: ("armor.mail.bronze.pants", (-5.0, -3.5, 1.0)), + color: None + ), + "common.items.armor.mail.iron.pants": ( + vox_spec: ("armor.mail.iron.pants", (-5.0, -3.5, 1.0)), + color: None + ), + "common.items.armor.mail.steel.pants": ( + vox_spec: ("armor.mail.steel.pants", (-6.0, -3.5, 1.0)), + color: None + ), + "common.items.armor.mail.cobalt.pants": ( + vox_spec: ("armor.mail.cobalt.pants", (-6.0, -4.5, 1.0)), + color: None + ), + "common.items.armor.mail.bloodsteel.pants": ( + vox_spec: ("armor.mail.bloodsteel.pants", (-7.0, -4.5, 0.0)), + color: None + ), + "common.items.armor.mail.orichalcum.pants": ( + vox_spec: ("armor.mail.orichalcum", (-6.0, -3.5, 0.0), 6), + color: None + ), + "common.items.armor.cardinal.pants": ( + vox_spec: ("armor.cardinal.pants", (-5.0, -3.5, 0.0)), + color: None + ), + "common.items.armor.merchant.pants": ( + vox_spec: ("armor.merchant.pants", (-5.0, -3.5, 0.0)), + color: None + ), + }, +)) diff --git a/assets/voxygen/voxel/humanoid_armor_shoulder_manifest.ron b/assets/voxygen/voxel/humanoid_armor_shoulder_manifest.ron new file mode 100644 index 0000000..73812e5 --- /dev/null +++ b/assets/voxygen/voxel/humanoid_armor_shoulder_manifest.ron @@ -0,0 +1,515 @@ +(( + //This shouldn't be the none option, but what is? + default: ( + left: ( + vox_spec: ("armor.empty", (-3.0, -3.5, 1.0)), + color: None + ), + right: ( + vox_spec: ("armor.empty", (-2.0, -3.5, 1.0)), + color: None + ) + ), + map: { + "Brown1": ( + left: ( + vox_spec: ("armor.shoulder.brown_right", (-3.0, -3.5, 1.0)), + color: None + ), + right: ( + vox_spec: ("armor.shoulder.brown_right", (-2.0, -3.5, 1.0)), + color: None + ) + ), + "common.items.armor.assassin.shoulder": ( + left: ( + vox_spec: ("armor.assassin.shoulder", (-5.0, -3.5, 0.0)), + color: None + ), + right: ( + vox_spec: ("armor.assassin.shoulder", (-1.0, -3.5, 0.0)), + color: None + ) + ), + "Chain": ( + left: ( + vox_spec: ("armor.shoulder.chain", (-4.0, -3.5, 1.0)), + color: None + ), + right: ( + vox_spec: ("armor.misc.shoulder.chain", (-2.0, -3.5, 1.0)), + color: None + ) + ), + "common.items.armor.ferocious.shoulder": ( + left: ( + vox_spec: ("armor.ferocious.shoulder", (-6.0, -2.5, -1.0)), + color: None + ), + right: ( + vox_spec: ("armor.ferocious.shoulder", (-3.0, -2.5, -1.0)), + color: None + ) + ), + "common.items.armor.boreal.shoulder": ( + left: ( + vox_spec: ("armor.boreal.shoulder", (-4.0, -3.5, -1.0)), + color: None + ), + right: ( + vox_spec: ("armor.boreal.shoulder", (-1.0, -3.5, -1.0)), + color: None + ) + ), + "common.items.armor.brinestone.shoulder": ( + left: ( + vox_spec: ("armor.brinestone.shoulder", (-6.0, -3.5, -1.0)), + color: None + ), + right: ( + vox_spec: ("armor.brinestone.shoulder", (-2.0, -3.5, -1.0)), + color: None + ) + ), + "common.items.armor.cloth_purple.shoulder": ( + left: ( + vox_spec: ("armor.cloth_purple.shoulder", (-4.0, -3.5, 0.0)), + color: None + ), + right: ( + vox_spec: ("armor.cloth_purple.shoulder", (-1.0, -3.5, 0.0)), + color: None + ) + ), + "common.items.armor.cloth_blue.shoulder_0": ( + left: ( + vox_spec: ("armor.cloth_blue.shoulder_0", (-4.0, -3.5, 0.0)), + color: None + ), + right: ( + vox_spec: ("armor.cloth_blue.shoulder_0", (-1.0, -3.5, 0.0)), + color: None + ) + ), + "common.items.armor.cloth_green.shoulder": ( + left: ( + vox_spec: ("armor.cloth_green.shoulder", (-4.0, -3.5, 0.0)), + color: None + ), + right: ( + vox_spec: ("armor.cloth_green.shoulder", (-1.0, -3.5, 0.0)), + color: None + ) + ), + "common.items.armor.cultist.shoulder": ( + left: ( + vox_spec: ("armor.cultist.shoulder", (-3.0, -3.5, -1.0)), + color: Some((30, 0, 64)) + ), + right: ( + vox_spec: ("armor.cultist.shoulder", (-2.0, -3.5, -1.0)), + color: Some((30, 0, 64)) + ) + ), + "common.items.armor.leather_plate.shoulder": ( + left: ( + vox_spec: ("armor.leather_plate.shoulder", (-4.0, -3.5 , 0.0)), + color: None + ), + right: ( + vox_spec: ("armor.leather_plate.shoulder", (-0.9, -3.5, 0.0)), + color: None + ) + ), + "common.items.armor.twigs.shoulder": ( + left: ( + vox_spec: ("armor.twigs.shoulder", (-5.0, -4.0 , -1.0)), + color: None + ), + right: ( + vox_spec: ("armor.twigs.shoulder", (-1.0, -4.0, -1.0)), + color: None + ) + ), + "common.items.armor.twigsleaves.shoulder": ( + left: ( + vox_spec: ("armor.twigsleaves.shoulder", (-6.0, -5.0 , -1.0)), + color: None + ), + right: ( + vox_spec: ("armor.twigsleaves.shoulder", (-1.0, -5.0, -1.0)), + color: None + ) + ), + "common.items.armor.twigsflowers.shoulder": ( + left: ( + vox_spec: ("armor.twigsflowers.shoulder", (-6.0, -4.0 , -2.0)), + color: None + ), + right: ( + vox_spec: ("armor.twigsflowers.shoulder", (-1.0, -4.0, -2.0)), + color: None + ), + ), + "common.items.armor.cloth_blue.shoulder_1": ( + left: ( + vox_spec: ("armor.cloth_blue.shoulder_1", (-4.0, -2.5, 0.0)), + color: None + ), + right: ( + vox_spec: ("armor.cloth_blue.shoulder_1", (-1.0, -2.5, 0.0)), + color: None + ) + ), + "common.items.armor.misc.shoulder.iron_spikes": ( + left: ( + vox_spec: ("armor.misc.shoulder.iron_spikes", (-6.0, -3.5, -2.0)), + color: None + ), + right: ( + vox_spec: ("armor.misc.shoulder.iron_spikes", (-1.0, -3.5, -2.0)), + color: None + ) + ), + "common.items.armor.misc.shoulder.leather_iron_3": ( + left: ( + vox_spec: ("armor.misc.shoulder.leather_iron_3", (-4.0, -2.5, -1.0)), + color: None + ), + right: ( + vox_spec: ("armor.misc.shoulder.leather_iron_3", (-2.0, -2.5, -1.0)), + color: None + ) + ), + "common.items.armor.misc.shoulder.leather_iron_2": ( + left: ( + vox_spec: ("armor.misc.shoulder.leather_iron_2", (-5.0, -2.5, 0.0)), + color: None + ), + right: ( + vox_spec: ("armor.misc.shoulder.leather_iron_2", (-2.0, -2.5, 0.0)), + color: None + ) + ), + "common.items.armor.misc.shoulder.leather_iron_1": ( + left: ( + vox_spec: ("armor.misc.shoulder.leather_iron_1", (-5.0, -2.5, 0.0)), + color: None + ), + right: ( + vox_spec: ("armor.misc.shoulder.leather_iron_1", (-2.0, -2.5, 0.0)), + color: None + ) + ), + "common.items.armor.misc.shoulder.leather_iron_0": ( + left: ( + vox_spec: ("armor.misc.shoulder.leather_iron_0", (-6.0, -2.5, 0.0)), + color: None + ), + right: ( + vox_spec: ("armor.misc.shoulder.leather_iron_0", (-2.0, -2.5, 0.0)), + color: None + ) + ), + "common.items.armor.misc.shoulder.leather_strip": ( + left: ( + vox_spec: ("armor.misc.shoulder.leather_strip", (-3.0, -2.5, -2.0)), + color: None + ), + right: ( + vox_spec: ("armor.misc.shoulder.leather_strip", (-2.0, -2.5, -2.0)), + color: None + ) + ), + "common.items.armor.tarasque.shoulder": ( + left: ( + vox_spec: ("armor.tarasque.shoulder", (-4.0, -3.5 , -1.0)), + color: None + ), + right: ( + vox_spec: ("armor.tarasque.shoulder", (-1.0, -3.5, -1.0)), + color: None + ) + ), + "common.items.armor.bonerattler.shoulder": ( + left: ( + vox_spec: ("armor.bonerattler.shoulder", (-4.0, -3.5 , 0.0)), + color: None + ), + right: ( + vox_spec: ("armor.bonerattler.shoulder", (-1.0, -3.5, 0.0)), + color: None + ) + ), + "common.items.armor.velorite_mage.shoulder": ( + left: ( + vox_spec: ("armor.velorite_battlemage.shoulder", (-6.0, -4.0 , 0.0)), + color: None + ), + right: ( + vox_spec: ("armor.velorite_battlemage.shoulder", (-1.0, -4.0, 0.0)), + color: None + ) + ), + "common.items.debug.cultist_shoulder_blue": ( + left: ( + vox_spec: ("armor.velorite_battlemage.shoulder", (-6.0, -4.0 , 0.0)), + color: None + ), + right: ( + vox_spec: ("armor.velorite_battlemage.shoulder", (-1.0, -4.0, 0.0)), + color: None + ) + ), + "common.items.armor.hide.rawhide.shoulder": ( + left: ( + vox_spec: ("armor.hide.rawhide.shoulder", (-4.0, -3.5, 0.0)), + color: None + ), + right: ( + vox_spec: ("armor.hide.rawhide.shoulder", (-1.0, -3.5, 0.0)), + color: None + ) + ), + "common.items.armor.hide.leather.shoulder": ( + left: ( + vox_spec: ("armor.hide.leather.shoulder", (-5.0, -3.5, -2.0)), + color: None + ), + right: ( + vox_spec: ("armor.hide.leather.shoulder", (-1.0, -3.5, -2.0)), + color: None + ) + ), + "common.items.armor.miner.shoulder": ( + left: ( + vox_spec: ("armor.hide.leather.shoulder", (-5.0, -3.5, -2.0)), + color: None + ), + right: ( + vox_spec: ("armor.hide.leather.shoulder", (-1.0, -3.5, -2.0)), + color: None + ) + ), + "common.items.armor.hide.scale.shoulder": ( + left: ( + vox_spec: ("armor.hide.scale.shoulder", (-5.0, -3.5, -1.0)), + color: None + ), + right: ( + vox_spec: ("armor.hide.scale.shoulder", (-1.0, -3.5, -1.0)), + color: None + ) + ), + "common.items.armor.hide.carapace.shoulder": ( + left: ( + vox_spec: ("armor.hide.carapace.shoulder", (-6.0, -3.5, -3.0)), + color: None + ), + right: ( + vox_spec: ("armor.hide.carapace.shoulder", (-1.0, -3.5, -3.0)), + color: None + ) + ), + "common.items.armor.hide.primal.shoulder": ( + left: ( + vox_spec: ("armor.hide.primal.shoulder", (-6.0, -3.5, -3.0)), + color: None + ), + right: ( + vox_spec: ("armor.hide.primal.shoulder", (-1.0, -3.5, -3.0)), + color: None + ) + ), + "common.items.armor.hide.dragonscale.shoulder": ( + left: ( + vox_spec: ("armor.hide.dragonscale.shoulder", (-8.0, -3.5 , -2.0)), + color: None + ), + right: ( + vox_spec: ("armor.hide.dragonscale.shoulder", (-1.0, -3.5, -2.0)), + color: None + ) + ), + "common.items.armor.savage.shoulder": ( + left: ( + vox_spec: ("armor.savage.shoulder", (-5.0, -3.5 , -2.0)), + color: None + ), + right: ( + vox_spec: ("armor.savage.shoulder", (-1.0, -3.5, -2.0)), + color: None + ) + ), + "common.items.armor.witch.shoulder": ( + left: ( + vox_spec: ("armor.witch.shoulder", (-5.0, -3.5, -1.0)), + color: None + ), + right: ( + vox_spec: ("armor.witch.shoulder", (-1.0, -3.5, -1.0)), + color: None + ) + ), + "common.items.armor.pirate.shoulder": ( + left: ( + vox_spec: ("armor.pirate.shoulder", (-5.0, -3.5 , -1.0)), + color: None + ), + right: ( + vox_spec: ("armor.empty", (-3.0, -3.5, 1.0)), + color: None + ) + ), + "common.items.armor.cloth.linen.shoulder": ( + left: ( + vox_spec: ("armor.cloth.linen.shoulder", (-3.0, -3.5 , 0.0)), + color: None + ), + right: ( + vox_spec: ("armor.cloth.linen.shoulder", (-1.0, -3.5, 0.0)), + color: None + ) + ), + "common.items.armor.cloth.woolen.shoulder": ( + left: ( + vox_spec: ("armor.cloth.woolen.shoulder", (-5.0, -3.5, -2.0)), + color: None + ), + right: ( + vox_spec: ("armor.cloth.woolen.shoulder", (-1.0, -3.5, -2.0)), + color: None + ) + ), + "common.items.armor.cloth.silken.shoulder": ( + left: ( + vox_spec: ("armor.cloth.silken.shoulder", (-5.0, -3.5 , -1.0)), + color: None + ), + right: ( + vox_spec: ("armor.cloth.silken.shoulder", (-1.0, -3.5, -1.0)), + color: None + ) + ), + "common.items.armor.cloth.druid.shoulder": ( + left: ( + vox_spec: ("armor.cloth.druid.shoulder", (-5.0, -4.5 , -4.0)), + color: None + ), + right: ( + vox_spec: ("armor.cloth.druid.shoulder", (-1.0, -4.5, -4.0)), + color: None + ) + ), + "common.items.armor.cloth.moonweave.shoulder": ( + left: ( + vox_spec: ("armor.cloth.moonweave.shoulder", (-5.0, -3.5 , -3.0)), + color: None + ), + right: ( + vox_spec: ("armor.cloth.moonweave.shoulder", (-1.0, -3.5, -3.0)), + color: None + ) + ), + "common.items.armor.cloth.sunsilk.shoulder": ( + left: ( + vox_spec: ("armor.cloth.sunsilk.shoulder", (-6.0, -3.5 , -1.0)), + color: None + ), + right: ( + vox_spec: ("armor.cloth.sunsilk.shoulder", (-1.0, -3.5, -1.0)), + color: None + ) + ), + "common.items.armor.mail.bronze.shoulder": ( + left: ( + vox_spec: ("armor.mail.bronze.shoulder", (-5.0, -3.5 , 0.0)), + color: None + ), + right: ( + vox_spec: ("armor.mail.bronze.shoulder", (-1.0, -3.5, 0.0)), + color: None + ) + ), + "common.items.armor.mail.iron.shoulder": ( + left: ( + vox_spec: ("armor.mail.iron.shoulder", (-5.0, -3.5, -1.0)), + color: None + ), + right: ( + vox_spec: ("armor.mail.iron.shoulder", (-1.0, -3.5, -1.0)), + color: None + ) + ), + "common.items.armor.mail.steel.shoulder": ( + left: ( + vox_spec: ("armor.mail.steel.shoulder", (-6.0, -3.5 , -1.0)), + color: None + ), + right: ( + vox_spec: ("armor.mail.steel.shoulder", (-1.0, -3.5, -1.0)), + color: None + ) + ), + "common.items.armor.mail.cobalt.shoulder": ( + left: ( + vox_spec: ("armor.mail.cobalt.shoulder", (-6.0, -4.5 , -1.0)), + color: None + ), + right: ( + vox_spec: ("armor.mail.cobalt.shoulder", (-1.0, -4.5, -1.0)), + color: None + ) + ), + "common.items.armor.mail.bloodsteel.shoulder": ( + left: ( + vox_spec: ("armor.mail.bloodsteel.shoulder", (-8.0, -5.5, -3.0)), + color: None + ), + right: ( + vox_spec: ("armor.mail.bloodsteel.shoulder", (-1.0, -5.5, -3.0)), + color: None + ) + ), + "common.items.armor.mail.orichalcum.shoulder": ( + left: ( + vox_spec: ("armor.mail.orichalcum", (-6.0, -3.5, -2.0), 7), + color: None + ), + right: ( + vox_spec: ("armor.mail.orichalcum", (-1.0, -3.5, -2.0), 7), + color: None + ) + ), + "common.items.armor.golemite.shoulder": ( + left: ( + vox_spec: ("armor.golemite.golemite", (-5.5, -3.5, -1.0), 5), + color: None + ), + right: ( + vox_spec: ("armor.golemite.golemite", (-1.5, -3.5, -1.0), 5), + color: None + ) + ), + "common.items.armor.cardinal.shoulder": ( + left: ( + vox_spec: ("armor.cardinal.shoulder", (-5.0, -2.5, -1.0)), + color: None + ), + right: ( + vox_spec: ("armor.empty", (-0.5, -4.0, -2.0)), + color: None + ) + ), + "common.items.armor.merchant.shoulder": ( + left: ( + vox_spec: ("armor.merchant.shoulder_l", (-3.0, -4.0 , -8.0)), + color: None + ), + right: ( + vox_spec: ("armor.empty", (0.0, 0.0 , 0.0)), + color: None + ), + ), + }, +)) diff --git a/assets/voxygen/voxel/humanoid_color_manifest.ron b/assets/voxygen/voxel/humanoid_color_manifest.ron new file mode 100644 index 0000000..79d0351 --- /dev/null +++ b/assets/voxygen/voxel/humanoid_color_manifest.ron @@ -0,0 +1,440 @@ +#![enable(unwrap_newtypes)] + +( + // NOTE: You can't change the legnths of these arrays without updating num_hair_colors() in + // common/src/comp/body/humanoid.rs. That's because this is a hack; we should really use enum + // variants for hair colors like we do all the other stuff. Once we fix that, this will no + // longer be something you need to worry about. + hair_colors: ( + Danari: [ + (166, 168, 138), // Philosopher's Grey + (211, 226, 171), // Fresh Blonde + (34, 69, 27), // Dark Green + (53, 119, 40), // Seaweed Green + (14, 69, 47), // Sea Green + (19, 53, 52), // Deepsea Blue + (20, 38, 61), // Deep Blue + (21, 22, 53), // Midnight Blue + (143, 122, 185), // Lilac + (56, 51, 78), // Magic Purple + (101, 83, 95), // Matte Purple + (101, 57, 90), // Witch Purple + (107, 32, 60), // Grape Purple + (146, 32, 45), // Autumn Red + (88, 26, 29), // Wine Red + (147, 195, 234), // Icy Blue + (20, 19, 17), // Black + ], + Dwarf: [ + (226, 213, 208), // White + (160, 150, 147), // Light silver + (94, 88, 86), // Silver + (152, 96, 47), // Light brown + (102, 50, 27), // Rust brown + (107, 76, 51), // Oak + (185, 144, 98), // Birch + (64, 32, 18), // Skin7 + (86, 71, 78), // Soot + (57, 56, 61), // Raven Black + (101, 83, 95), // Matte Purple + (44, 38, 45), // Deep Purple + (135, 38, 39), // Dark Red + (88, 26, 29), // Wine Red + (191, 228, 254), // Ice NobleBlue + (176, 81, 55), // Bright Red + (152, 59, 36), // Autumn Red + (146, 166, 172), // Matte Green + (77, 94, 74), // Moss Green + (48, 61, 52), // Dark Green + (20, 19, 17), // Black + ], + Elf: [ + (66, 83, 113), // Mysterious Blue + (13, 76, 41), // Rainforest Green + (245, 232, 175), // Cream Blonde + (245, 240, 209), // Silver Blonde + (228, 223, 141), // Platinum Blonde + (176, 81, 55), // Light Red + (152, 59, 36), // Autumn Red + (201, 196, 178), // Silver + (250, 243, 238), // White + (86, 71, 78), // Ash + (57, 56, 61), // Raven Black + (111, 87, 108), // Dark Purple + (101, 57, 90), // Witch Purple + (135, 38, 39), // Dark Red + (88, 26, 29), // Wine Red + (103, 191, 254), // Ice Blue + (92, 80, 144), // Kingfisher Blue + (146, 198, 238), // Lagoon Blue + (80, 156, 211), // Candy Pink + (216, 146, 114), // Matte Pink + (146, 166, 172), // Matte Green + (84, 139, 107), // Grass Green + (48, 61, 52), // Dark Green + (20, 19, 17), // Black + ], + Human: [ + (210, 204, 130), // Platinum Blonde + (220, 199, 119), // Cream Blonde + (212, 156, 73), // Gold Blonde + (176, 106, 41), // Summer Blonde + (216, 146, 114), // Matte Pink + (203, 200, 98), // Light + (107, 76, 51), // Oak + (97, 46, 19), // Light Brown + (64, 32, 18), // Dark Brown + (57, 56, 61), // Raven Black + (47, 36, 30), // Deep Brown + (89, 55, 49), // Matte Red + (135, 38, 39), // Dark Red + (88, 26, 29), // Wine Red + (138, 50, 9), // Orange + (154, 70, 10), // Bright Orange + (239, 242, 245), // White + (204, 201, 199), // Gray 1 + (146, 141, 136), // Gray 2 + (97, 92, 88), // Gray 3 + (56, 55, 54), // Gray 4 + (20, 19, 17), // Black + ], + Orc: [ + (66, 66, 59), // Wise Grey + (119, 119, 109), // Silver + (242, 233, 215), // White + (64, 32, 18), // Skin7 + (54, 30, 26), // Dark Skin7 + (86, 72, 71), // Ash + (57, 56, 61), // Raven Black + (37, 45, 37), // Dark Green + (44, 38, 45), // Deep Purple + (135, 38, 39), // Dark Red + (88, 26, 29), // Wine Red + (36, 42, 53), // Dark Blue + (20, 19, 17), // Black + ], + Draugr: [ + (245, 232, 175), // Cream Blonde + (193, 182, 152), // Dead Blonde + (135, 131, 83), // Rotten Blonde + (50, 40, 32), // Grey Brown + (147, 160, 157), // Grey + (223, 242, 241), // White + (110, 111, 94), // Acid Grey + (86, 72, 71), // Ash + (57, 56, 61), // Raven Black + (101, 83, 95), // Matte Purple + (78, 59, 73), // Darker Purple + (81, 43, 86), // Punky Purple + (111, 37, 37), // Blood Red + (53, 24, 25), // Hellish Red + (84, 146, 193), // Ghostly Blue + (92, 80, 144), // Sea Green + (146, 198, 238), // Lagoon Blue + (66, 66, 59), // Decayed Grey + (30, 47, 61), // Deep Blue + (40, 75, 91), // Night Blue + (40, 131, 123), // Rotten Green + (125, 172, 161), // Matte Green + (70, 94, 57), // Swamp Green + (48, 61, 52), // Dark Green + (20, 19, 17), // Black + ], + ), + // Alphabetical Order + eye_colors_light: ( + AmberOrange: (137, 46, 1), + AmberYellow: (226, 168, 54), + BrightBrown: (73, 41, 13), + CornflowerBlue: (18, 66, 90), + CuriousGreen: (110, 167, 113), + EmeraldGreen: (67, 160, 48), + ExoticPurple: (95, 32, 111), + FrozenBlue: (53, 214, 255), + GhastlyYellow: (228, 234, 56), + LoyalBrown: (73, 42, 36), + MagicPurple: (137, 4, 177), + NobleBlue: (89, 185, 226), + PineGreen: (0, 78, 56), + PumpkinOrange: (242, 136, 43), + RubyRed: (143, 21, 21), + RegalPurple: (108, 49, 160), + RustBrown: (102, 42, 18), + SapphireBlue: (17, 49, 90), + SulfurYellow: (235, 198, 94), + ToxicGreen: (82, 223, 1), + ViciousRed: (169, 0,47), + VigorousBlack: (71, 59, 49), + ), + eye_colors_dark: ( + AmberOrange: (112, 40, 1), + AmberYellow: (193, 135, 21), + BrightBrown: (54, 31, 11), + CornflowerBlue: (13, 47, 64), + CuriousGreen: (81, 124, 84), + EmeraldGreen: (50, 119, 36), + ExoticPurple: (69, 23, 80), + FrozenBlue: (0, 196, 250), + GhastlyYellow: (205, 212, 29), + LoyalBrown: (54, 30, 26), + MagicPurple: (110, 3, 143), + NobleBlue: (65, 154, 193), + PineGreen: (0, 54, 38), + PumpkinOrange: (226, 108, 11), + RubyRed: (94, 19, 19), + RegalPurple: (80, 36, 119), + RustBrown: (78, 33, 15), + SapphireBlue: (13, 35, 64), + SulfurYellow: (152, 132, 7), + ToxicGreen: (68, 185, 1), + ViciousRed: (135, 0, 35), + VigorousBlack: (32, 32, 32), + ), + eye_white: (255, 255, 255), + skin_colors_plain: ( + // Human Skin colors + HumanOne: (228, 173, 146), + HumanTwo: (223, 168, 143), + HumanThree: (215, 161, 138), + HumanFour: (207, 154, 133), + HumanFive: (198, 142, 120), + HumanSix: (190, 135, 115), + HumanSeven: (182, 125, 104), + HumanEight: (174, 119, 99), + HumanNine: (165, 109, 89), + HumanTen: (157, 102, 84), + HumanEleven: (149, 96, 80), + HumanTwelve: (132, 81, 67), + HumanThirteen: (124, 75, 63), + HumanFourteen: (116, 69, 59), + HumanFifteen: (108, 61, 52), + HumanSixteen: (91, 50, 43), + HumanSeventeen: (75, 40, 35), + HumanEighteen: (58, 30, 27), + // Dwarf skin colors + DwarfOne: (228, 183, 160), + DwarfTwo: (217, 173, 152), + DwarfThree: (209, 170, 152), + DwarfFour: (198, 160, 144), + DwarfFive: (190, 159, 146), + DwarfSix: (176, 146, 135), + DwarfSeven: (168, 142, 133), + DwarfEight: (160, 138, 131), + DwarfNine: (152, 130, 124), + DwarfTen: (143, 122, 117), + DwarfEleven: (135, 119, 115), + DwarfTwelve: (127, 113, 108), + DwarfThirteen: (119, 108, 101), + DwarfFourteen: (111, 103, 98), + // Elf skin colors + ElfOne: (250, 205, 205), + ElfTwo: (242, 191, 192), + ElfThree: (234, 178, 178), + ElfFour: (226, 171, 178), + ElfFive: (217, 164, 180), + ElfSix: (209, 158, 183), + ElfSeven: (201, 146, 184), + ElfEight: (193, 140, 187), + ElfNine: (171, 127, 176), + ElfTen: (146, 111, 160), + ElfEleven: (159, 161, 209), + ElfTwelve: (146, 148, 201), + ElfThirteen: (133, 135, 193), + ElfFourteen: (122, 124, 185), + ElfFifteen: (111, 112, 168), + ElfSixteen: (132, 119, 110), + ElfSeventeen: (116, 106, 100), + ElfEighteen: (100, 93, 89), + // Orc skin colors + OrcOne: (61, 130, 42), + OrcTwo: (82, 117, 36), + OrcThree: (71, 94, 42), + OrcFour: (48, 130, 47), + OrcFive: (59, 102, 51), + OrcSix: (97, 54, 29), + OrcSeven: (97, 65, 29), + OrcEight: (105, 48, 31), + // Danari skin colors + DanariOne: (43, 166, 224), + DanariTwo: (61, 158, 215), + DanariThree: (65, 150, 207), + DanariFour: (64, 123, 182), + DanariFive: (34, 132, 181), + DanariSix: (79, 168, 207), + DanariSeven: (101, 186, 198), + // Draugr skin colors + DraugrOne: (153, 163, 157), + DraugrTwo: (119, 149, 135), + DraugrThree: (145, 182, 165), + DraugrFour: (99, 124, 116), + DraugrFive: (186, 210, 215), + DraugrSix: (215, 211, 207), + DraugrSeven: (132, 129, 127), + DraugrEight: (163, 149, 146), + DraugrNine: (131, 159, 163), + ), + skin_colors_light: ( + // Human Skin colors + HumanOne: (239, 182, 153), + HumanTwo: (231, 176, 148), + HumanThree: (223, 169, 143), + HumanFour: (215, 162, 138), + HumanFive: (207, 148, 125), + HumanSix: (198, 140, 119), + HumanSeven: (190, 133, 114), + HumanEight: (182, 127, 109), + HumanNine: (174, 117, 100), + HumanTen: (165, 110, 95), + HumanEleven: (157, 98, 84), + HumanTwelve: (141, 83, 72), + HumanThirteen: (132, 77, 67), + HumanFourteen: (124, 72, 63), + HumanFifteen: (116, 66, 59), + HumanSixteen: (100, 54, 49), + HumanSeventeen: (83, 44, 40), + HumanEighteen: (67, 35, 32), + // Dwarf skin colors + DwarfOne: (233, 190, 166), + DwarfTwo: (226, 179, 156), + DwarfThree: (217, 176, 158), + DwarfFour: (207, 167, 150), + DwarfFive: (198, 165, 152), + DwarfSix: (185, 153, 142), + DwarfSeven: (176, 148, 139), + DwarfEight: (165, 142, 135), + DwarfNine: (160, 138, 131), + DwarfTen: (152, 130, 124), + DwarfEleven: (143, 126, 122), + DwarfTwelve: (135, 120, 115), + DwarfThirteen: (127, 116, 108), + DwarfFourteen: (119, 111, 105), + // Elf skin colors + ElfOne: (255, 210, 210), + ElfTwo: (250, 198, 198), + ElfThree: (242, 184, 184), + ElfFour: (234, 178, 184), + ElfFive: (226, 171, 189), + ElfSix: (217, 164, 190), + ElfSeven: (209, 152, 192), + ElfEight: (201, 146, 195), + ElfNine: (180, 134, 185), + ElfTen: (160, 122, 176), + ElfEleven: (164, 165, 217), + ElfTwelve: (152, 153, 209), + ElfThirteen: (139, 140, 201), + ElfFourteen: (127, 127, 193), + ElfFifteen: (115, 115, 176), + ElfSixteen: (141, 127, 117), + ElfSeventeen: (124, 114, 107), + ElfEighteen: (108, 101, 96), + // Orc skin colors + OrcOne: (83, 165, 56), + OrcTwo: (92, 132, 46), + OrcThree: (84, 110, 54), + OrcFour: (61, 152, 62), + OrcFive: (68, 119, 59), + OrcSix: (113, 63, 34), + OrcSeven: (113, 76, 34), + OrcEight: (122, 54, 36), + // Danari skin colors + DanariOne: (45, 177, 239), + DanariTwo: (66, 170, 231), + DanariThree: (68, 153, 215), + DanariFour: (67, 128, 190), + DanariFive: (35, 136, 188), + DanariSix: (89, 175, 215), + DanariSeven: (106, 195, 207), + // Draugr skin colors + DraugrOne: (168, 179, 172), + DraugrTwo: (126, 157, 141), + DraugrThree: (159, 198, 176), + DraugrFour: (117, 141, 134), + DraugrFive: (200, 219, 223), + DraugrSix: (223, 219, 215), + DraugrSeven: (141, 138, 136), + DraugrEight: (179, 163, 160), + DraugrNine: (139, 169, 174), + ), + skin_colors_dark: ( + // Human Skin colors + HumanOne: (222, 166, 142), + HumanTwo: (215, 161, 138), + HumanThree: (207, 154, 133), + HumanFour: (198, 147, 127), + HumanFive: (190, 134, 115), + HumanSix: (182, 128, 110), + HumanSeven: (174, 117, 100), + HumanEight: (165, 114, 99), + HumanNine: (157, 104, 90), + HumanTen: (149, 98, 85), + HumanEleven: (141, 88, 76), + HumanTwelve: (124, 74, 63), + HumanThirteen: (116, 68, 59), + HumanFourteen: (108, 63, 55), + HumanFifteen: (100, 58, 50), + HumanSixteen: (83, 47, 41), + HumanSeventeen: (67, 37, 33), + HumanEighteen: (50, 27, 24), + // Dwarf skin colors + DwarfOne: (222, 176, 154), + DwarfTwo: (209, 164, 145), + DwarfThree: (201, 159, 141), + DwarfFour: (190, 152, 138), + DwarfFive: (182, 151, 140), + DwarfSix: (168, 138, 129), + DwarfSeven: (160, 133, 126), + DwarfEight: (160, 133, 126), + DwarfNine: (143, 122, 117), + DwarfTen: (135, 115, 110), + DwarfEleven: (127, 112, 108), + DwarfTwelve: (119, 106, 101), + DwarfThirteen: (111, 101, 94), + DwarfFourteen:(102, 95, 90), + // Elf skin colors + ElfOne: (242, 199, 200), + ElfTwo: (234, 185, 186), + ElfThree: (226, 171, 171), + ElfFour: (217, 164, 170), + ElfFive: (209, 158, 174), + ElfSix: (201, 152, 176), + ElfSeven: (193, 140, 177), + ElfEight: (185, 134, 179), + ElfNine: (164, 121, 168), + ElfTen: (138, 105, 152), + ElfEleven: (152, 154, 201), + ElfTwelve: (140, 142, 193), + ElfThirteen: (128, 130, 185), + ElfFourteen: (116, 118, 176), + ElfFifteen: (106, 107, 160), + ElfSixteen: (124, 111, 103), + ElfSeventeen: (108, 99, 93), + ElfEighteen: (91, 85, 81), + // Orc skin colors + OrcOne: (55, 114, 36), + OrcTwo: (70, 104, 29), + OrcThree: (60, 83, 32), + OrcFour: (42, 114, 42), + OrcFive: (50, 89, 44), + OrcSix: (84, 47, 25), + OrcSeven: (84, 56, 25), + OrcEight: (97, 43, 28), + // Danari skin colors + DanariOne: (41, 157, 215), + DanariTwo: (59, 155, 207), + DanariThree: (62, 141, 198), + DanariFour: (61, 117, 174), + DanariFive: (34, 132, 181), + DanariSix: (69, 157, 198), + DanariSeven: (84, 177, 190), + // Draugr skin colors + DraugrOne: (137, 146, 140), + DraugrTwo: (105, 132, 119), + DraugrThree: (131, 165, 148), + DraugrFour: (85, 108, 102), + DraugrFive: (171, 193, 198), + DraugrSix: (198, 195, 191), + DraugrSeven: (124, 121, 119), + DraugrEight: (174, 168, 162), + DraugrNine: (119, 145, 149), + ), +) diff --git a/assets/voxygen/voxel/humanoid_glider_manifest.ron b/assets/voxygen/voxel/humanoid_glider_manifest.ron new file mode 100644 index 0000000..efd52b5 --- /dev/null +++ b/assets/voxygen/voxel/humanoid_glider_manifest.ron @@ -0,0 +1,76 @@ +(( + default: ( + vox_spec: ("armor.empty", (0.0, 0.0, 0.0)), + color: None + ), + map: { + "common.items.glider.cloverleaf": ( + vox_spec: ("glider.cloverleaf", (-19.0, -5.0, 0.0)), + color: None + ), + "common.items.glider.basic_white": ( + vox_spec: ("glider.basic_white", (-25.0, -20.0, 0.0)), + color: None + ), + "common.items.glider.basic_red": ( + vox_spec: ("glider.basic_red", (-25.0, -20.0, 0.0)), + color: None + ), + "common.items.glider.blue": ( + vox_spec: ("glider.blue", (-26.0, -26.0, 0.0)), + color: None + ), + "common.items.glider.morpho": ( + vox_spec: ("glider.butterfly1", (-26.0, -13.0, 0.0)), + color: None + ), + "common.items.glider.monarch": ( + vox_spec: ("glider.butterfly2", (-26.0, -13.0, 0.0)), + color: None + ), + "common.items.glider.butterfly3": ( + vox_spec: ("glider.butterfly3", (-26.0, -13.0, 0.0)), + color: None + ), + "common.items.glider.moth": ( + vox_spec: ("glider.moth", (-26.0, -22.0, 0.0)), + color: None + ), + "common.items.glider.sandraptor": ( + vox_spec: ("glider.sandraptor", (-26.0, -25.0, 0.0)), + color: None + ), + "common.items.glider.snowraptor": ( + vox_spec: ("glider.snowraptor", (-26.0, -25.0, 0.0)), + color: None + ), + "common.items.glider.woodraptor": ( + vox_spec: ("glider.woodraptor", (-26.0, -25.0, 0.0)), + color: None + ), + "common.items.glider.sunset": ( + vox_spec: ("glider.sunset", (-26.0, -26.0, 0.0)), + color: None + ), + "common.items.glider.moonrise": ( + vox_spec: ("glider.moonrise", (-26.0, -26.0, 0.0)), + color: None + ), + "common.items.glider.skullgrin": ( + vox_spec: ("glider.cultists", (-26.0, -26.0, 0.0)), + color: None + ), + "common.items.glider.leaves": ( + vox_spec: ("glider.leaves", (-26.0, -26.0, 0.0)), + color: None + ), + "common.items.glider.winter_wings": ( + vox_spec: ("glider.winter_wings", (-26.0, -26.0, 0.0)), + color: None + ), + "common.items.debug.glider": ( + vox_spec: ("glider.vroom", (-13.5, -16.0, 2.0)), + color: None + ), + }, +)) diff --git a/assets/voxygen/voxel/humanoid_head_manifest.ron b/assets/voxygen/voxel/humanoid_head_manifest.ron new file mode 100644 index 0000000..4eafc7e --- /dev/null +++ b/assets/voxygen/voxel/humanoid_head_manifest.ron @@ -0,0 +1,548 @@ +({ + (Human, Male): ( + offset: (-7.0, -2.5, -2.0), + head: ("figure.head.human.male", (0, 2, 0)), + eyes: [ + Some(("figure.eyes.general.male_default-0", (3, 9, 2))), + Some(("figure.eyes.general.male_brow_col-0", (3, 9, 2))), + Some(("figure.eyes.general.male_bushy-0", (3, 9, 2))), + Some(("figure.eyes.general.male_as_hair-0", (3, 9, 2))), + Some(("figure.eyes.general.male_heterochromia-0", (3, 9, 2))), + Some(("figure.eyes.general.male_scar-0", (3, 9, 2))), + Some(("figure.eyes.general.male_blind-0", (3, 9, 2))), + Some(("figure.eyes.general.male_old", (3, 9, 2))), + ], + hair: [ + None, + Some(("figure.hair.human.male-0", (1, 1, 1))), + Some(("figure.hair.human.male-1", (2, 1, 0))), + Some(("figure.hair.human.male-2", (0, -1, 0))), + Some(("figure.hair.human.male-3", (0, -1, 0))), + Some(("figure.hair.human.male-4", (2, 2, 0))), + Some(("figure.hair.human.male-5", (1, 1, 0))), + Some(("figure.hair.human.male-6", (0, 0, 0))), + Some(("figure.hair.human.male-7", (1, -2, 1))), + Some(("figure.hair.human.male-8", (1, 1, 0))), + Some(("figure.hair.human.male-9", (1, 1, 0))), + Some(("figure.hair.human.male-10", (1, 1, 0))), + Some(("figure.hair.human.male-11", (1, 1, 0))), + Some(("figure.hair.human.male-12", (2, 1, 2))), + Some(("figure.hair.human.male-13", (1, 1, 0))), + Some(("figure.hair.human.male-14", (2, -3, 0))), + Some(("figure.hair.human.male-15", (1, 0, -2))), + Some(("figure.hair.human.male-16", (0, -1, 0))), + Some(("figure.hair.human.male-17", (2, -3, -1))), + Some(("figure.hair.human.male-18", (1, -2, 0))), + Some(("figure.hair.human.male-19", (1, 0, -2))), + Some(("figure.hair.human.male-20", (0, 1, -3))), + ], + beard: [ + None, + Some(("figure.beard.human.human-0", (4, 6, -2))), + Some(("figure.beard.human.human-1", (5, 10, -2))), + Some(("figure.beard.human.human-2", (3, 7, -3))), + Some(("figure.beard.human.human-3", (2, 7, -1))), + Some(("figure.beard.human.human-4", (3, 10, 0))), + Some(("figure.beard.human.human-5", (2, 7, -3))), + Some(("figure.beard.human.human-6", (4, 10, -1))), + Some(("figure.beard.human.human-7", (2, 7, -1))), + Some(("figure.beard.human.human-8", (5, 7, -1))), + ], + accessory: [None], + ), + (Human, Female): ( + offset: (-7.0, -4.0, -2.0), + head: ("figure.head.human.female", (0, 3, 0)), + eyes: [ + Some(("figure.eyes.general.female_default-0", (2, 10, 2))), + Some(("figure.eyes.general.female_styled-0", (2, 10, 2))), + Some(("figure.eyes.general.female_as_hair-0", (2, 10, 2))), + Some(("figure.eyes.general.female_heterochromia-0", (2, 10, 2))), + Some(("figure.eyes.general.female_scar-0", (2, 10, 2))), + Some(("figure.eyes.general.female_blind-0", (2, 10, 2))), + ], + hair: [ + Some(("figure.hair.human.female-0", (-1, -1, 0))), + Some(("figure.hair.human.female-1", (1, 1, -1))), + Some(("figure.hair.human.female-2", (1, 0, 0))), + Some(("figure.hair.human.female-3", (1, -1, -5))), + Some(("figure.hair.human.female-4", (2, 1, 0))), + Some(("figure.hair.human.female-5", (-2, 1, -2))), + Some(("figure.hair.human.female-6", (1, 0, -6))), + Some(("figure.hair.human.female-7", (-1, -1, 0))), + Some(("figure.hair.human.female-8", (1, 1, 0))), + Some(("figure.hair.human.female-9", (1, 1, -4))), + Some(("figure.hair.human.female-10", (0, -1, 0))), + Some(("figure.hair.human.female-11", (0, 0, -4))), + Some(("figure.hair.human.female-12", (1, -1, 0))), + Some(("figure.hair.human.female-13", (1, 1, -1))), + Some(("figure.hair.human.female-14", (0, 0, -1))), + Some(("figure.hair.human.female-15", (0, -2, -1))), + Some(("figure.hair.human.female-16", (1, -3, -2))), + Some(("figure.hair.human.female-17", (1, -4, -1))), + Some(("figure.hair.human.female-18", (-1, -3, -1))), + Some(("figure.hair.human.female-19", (-4, 0, -1))), + ], + beard: [None], + accessory: [None], + ), + (Orc, Male): ( + offset: (-8.0, -5.0, -2.0), + head: ("figure.head.orc.male", (0, 3, 0)), + eyes: [ + Some(("figure.eyes.orc.male-0", (5, 10, 6))), + Some(("figure.eyes.orc.male-1", (5, 10, 5))), + ], + hair: [ + Some(("figure.hair.dwarf.bald", (0, 3, -1))), + Some(("figure.hair.orc.male-0", (4, 2, -1))), + Some(("figure.hair.orc.male-1", (0, 2, 1))), + Some(("figure.hair.orc.male-2", (3, 2, 1))), + Some(("figure.hair.orc.male-3", (3, 2, 1))), + Some(("figure.hair.orc.male-4", (3, -2, 1))), + Some(("figure.hair.orc.male-5", (4, 0, 5))), + Some(("figure.hair.orc.male-6", (3, 2, 0))), + Some(("figure.hair.orc.male-7", (4, -2, 2))), + Some(("figure.hair.orc.male-8", (6, 0, 3))), + Some(("figure.hair.orc.male-9", (5, 0, -1))), + Some(("figure.hair.orc.male-10", (3, -1, 0))), + Some(("figure.hair.orc.male-11", (4, -3, 2))), + Some(("figure.hair.orc.male-12", (3, -1, 3))), + Some(("figure.hair.orc.male-13", (4, 3, 4))), + ], + beard: [ + None, + Some(("figure.beard.orc.orc-0", (7, 11, 0))), + Some(("figure.beard.orc.orc-1", (3, 8, -2))), + Some(("figure.beard.orc.orc-2", (7, 11, -1))), + Some(("figure.beard.orc.orc-3", (4, 10, -1))), + Some(("figure.beard.orc.orc-4", (3, 8, -1))), + Some(("figure.beard.orc.orc-5", (4, 8, -2))), + ], + accessory: [ + Some(("figure.accessory.orc.teeth-0", (5, 11, 3))), + Some(("figure.accessory.orc.teeth-1", (5, 11, 3))), + Some(("figure.accessory.orc.teeth-2", (5, 11, 3))), + Some(("figure.accessory.orc.teeth-3", (5, 11, 3))), + Some(("figure.accessory.orc.earring-male-0", (2, 7, 3))), + Some(("figure.accessory.orc.earring-male-1", (2, 7, 3))), + Some(("figure.accessory.orc.earring-male-2", (2, 6, 1))), + Some(("figure.accessory.orc.warpaint-male-0", (0, 7, 3))), + Some(("figure.accessory.orc.warpaint-male-1", (5, 7, 0))), + Some(("figure.accessory.orc.warpaint-male-2", (4, 8, 3))), + Some(("figure.accessory.orc.warpaint-male-3", (4, 6, 0))), + Some(("figure.accessory.orc.male_eyepatch", (0, 3, 0))), + ], + ), + (Orc, Female): ( + offset: (-8.0, -2.5, -2.0), + head: ("figure.head.orc.female", (0, 0, 0)), + eyes: [ + Some(("figure.eyes.general.female_default-0", (3, 8, 2))), + Some(("figure.eyes.general.female_styled-0", (3, 8, 2))), + Some(("figure.eyes.general.female_as_hair-0", (3, 8, 2))), + Some(("figure.eyes.general.female_heterochromia-0", (3, 8, 2))), + Some(("figure.eyes.general.female_scar-0", (3, 8, 2))), + Some(("figure.eyes.general.female_blind-0", (3, 8, 2))), + ], + hair: [ + Some(("figure.hair.orc.female-0", (2, 0, 0))), + Some(("figure.hair.orc.female-1", (3, -5, 0))), + Some(("figure.hair.orc.female-2", (2, -1, 0))), + Some(("figure.hair.orc.female-3", (2, -7, 0))), + Some(("figure.hair.orc.female-4", (0, -1, -1))), + Some(("figure.hair.orc.female-5", (2, 0, -2))), + Some(("figure.hair.orc.female-6", (2, -3, 0))), + Some(("figure.hair.orc.female-7", (2, 0, 0))), + Some(("figure.hair.orc.female-8", (-1, -4, 0))), + Some(("figure.hair.orc.female-9", (3, -2, 0))), + Some(("figure.hair.orc.female-10", (2, 0, -1))), + Some(("figure.hair.orc.female-11", (2, -3, 0))), + Some(("figure.hair.orc.female-12", (0, 0, -2))), + Some(("figure.hair.orc.female-13", (2, -3, 0))), + Some(("figure.hair.orc.female-14", (3, -4, 0))), + ], + beard: [None], + accessory: [ + None, + Some(("figure.accessory.orc.earring-female-0", (2, 4, 1))), + Some(("figure.accessory.orc.earring-female-1", (1, 4, 2))), + Some(("figure.accessory.orc.earring-female-2", (1, 4, 0))), + Some(("figure.accessory.orc.earring-female-3", (1, 3, 1))), + Some(("figure.accessory.orc.warpaint-female-0", (3, 4, 1))), + Some(("figure.accessory.orc.warpaint-female-1", (0, 4, 3))), + Some(("figure.accessory.orc.warpaint-female-2", (3, 6, 0))), + Some(("figure.accessory.orc.warpaint-female-3", (3, 7, 0))), + ], + ), + (Elf, Male): ( + offset: (-8.0, -2.5, -2.0), + head: ("figure.head.elf.male", (0, 2, 0)), + eyes: [ + Some(("figure.eyes.general.male_default-0", (4, 9, 2))), + Some(("figure.eyes.general.male_brow_col-0", (4, 9, 2))), + Some(("figure.eyes.general.male_bushy-0", (4, 9, 2))), + Some(("figure.eyes.general.male_bushy-1", (3, 9, 2))), + Some(("figure.eyes.general.male_as_hair-0", (4, 9, 2))), + Some(("figure.eyes.general.male_heterochromia-0", (4, 9, 2))), + Some(("figure.eyes.general.male_scar-0", (4, 9, 2))), + Some(("figure.eyes.general.male_blind-0", (4, 9, 2))), + ], + hair: [ + Some(("figure.hair.elf.male-0", (2, 0, -2))), + Some(("figure.hair.elf.male-1", (2, 0, -2))), + Some(("figure.hair.elf.male-2", (2, 0, -2))), + Some(("figure.hair.elf.male-3", (2, -3, 0))), + Some(("figure.hair.elf.male-4", (2, -4, -1))), + Some(("figure.hair.elf.male-5", (1, -1, -2))), + Some(("figure.hair.elf.male-6", (2, -1, -6))), + Some(("figure.hair.elf.male-7", (2, -3, 0))), + Some(("figure.hair.elf.male-8", (2, -1, 0))), + Some(("figure.hair.elf.male-9", (2, 0, -1))), + Some(("figure.hair.elf.male-10", (1, -3, -1))), + Some(("figure.hair.elf.male-11", (2, -4, -2))), + Some(("figure.hair.elf.male-12", (0, -3, -1))), + Some(("figure.hair.elf.male-13", (2, -4, -1))), + Some(("figure.hair.elf.male-14", (1, -2, -2))), + ], + beard: [ + None, + Some(("figure.beard.elf.elf-0", (5, 10, -1))), + Some(("figure.beard.elf.elf-1", (5, 10, -4))), + Some(("figure.beard.elf.elf-2", (5, 10, -3))), + Some(("figure.beard.elf.elf-3", (7, 9, -3))), + Some(("figure.beard.elf.elf-4", (3, 7, -3))), + Some(("figure.beard.elf.elf-5", (3, 7, -5))), + Some(("figure.beard.elf.elf-6", (5, 8, -4))), + ], + accessory: [ + None, + Some(("figure.accessory.elf.earrings-0", (1, 5, 1))), + Some(("figure.accessory.elf.earrings-1", (1, 5, 1))), + Some(("figure.accessory.elf.earrings-2", (1, 5, 1))), + Some(("figure.accessory.elf.earrings-3", (1, 5, 0))), + ], + ), + (Elf, Female): ( + offset: (-8.0, -5.0, -2.0), + head: ("figure.head.elf.female", (0, 2, 0)), + eyes: [ + Some(("figure.eyes.general.female_styled-0", (3, 9, 2))), + Some(("figure.eyes.general.female_default-0", (3, 9, 2))), + Some(("figure.eyes.general.female_as_hair-0", (3, 9, 2))), + Some(("figure.eyes.general.female_heterochromia-0", (3, 9, 2))), + Some(("figure.eyes.general.female_scar-0", (3, 9, 2))), + Some(("figure.eyes.general.female_blind-0", (3, 9, 2))), + ], + hair: [ + Some(("figure.hair.elf.female-0", (2, -2, 0))), + Some(("figure.hair.elf.female-1", (2, -1, 0))), + Some(("figure.hair.elf.female-2", (1, 0, 0))), + Some(("figure.hair.elf.female-3", (2, 0, -6))), + Some(("figure.hair.elf.female-4", (2, 0, -2))), + Some(("figure.hair.elf.female-5", (1, 1, -3))), + Some(("figure.hair.elf.female-6", (2, 0, -2))), + Some(("figure.hair.elf.female-7", (2, 0, -1))), + Some(("figure.hair.elf.female-8", (2, 0, -1))), + Some(("figure.hair.elf.female-9", (1, -2, -1))), + Some(("figure.hair.elf.female-10", (0, -2, 0))), + Some(("figure.hair.elf.female-11", (2, -1, -2))), + Some(("figure.hair.elf.female-12", (2, -3, -1))), + Some(("figure.hair.elf.female-13", (2, -3, -1))), + Some(("figure.hair.elf.female-14", (1, -1, 0))), + Some(("figure.hair.elf.female-15", (1, -1, -1))), + Some(("figure.hair.elf.female-16", (1, -1, -1))), + Some(("figure.hair.elf.female-17", (1, -1, -1))), + Some(("figure.hair.elf.female-18", (2, -1, -1))), + Some(("figure.hair.elf.female-19", (2, 0, -1))), + Some(("figure.hair.elf.female-20", (1, -1, -1))), + Some(("figure.hair.elf.female-21", (2, -3, -2))), + ], + beard: [None], + accessory: [ + None, + Some(("figure.accessory.elf.headband-0", (6, 9, 4))), + Some(("figure.accessory.elf.earrings-0", (1, 5, 1))), + Some(("figure.accessory.elf.earrings-1", (1, 5, 1))), + Some(("figure.accessory.elf.earrings-2", (1, 5, 1))), + Some(("figure.accessory.elf.earrings-3", (1, 5, 0))), + ], + ), + (Dwarf, Male): ( + offset: (-6.0, -4.5, -2.0), + head: ("figure.head.dwarf.male", (0, 3, 0)), + eyes: [ + Some(("figure.eyes.general.male_bushy-0", (2, 10, 2))), + Some(("figure.eyes.general.male_default-0", (2, 10, 2))), + Some(("figure.eyes.general.male_brow_col-0", (2, 10, 2))), + Some(("figure.eyes.general.male_as_hair-0", (2, 10, 2))), + Some(("figure.eyes.general.male_heterochromia-0", (2, 10, 2))), + Some(("figure.eyes.general.male_scar-0", (2, 10, 2))), + Some(("figure.eyes.general.male_blind-0", (2, 10, 2))), + Some(("figure.eyes.general.male_old", (1, 10, 1))), + Some(("figure.eyes.general.male_old_blind", (1, 10, 1))), + ], + hair: [ + Some(("figure.hair.dwarf.bald", (0, 3, 1))), + Some(("figure.hair.dwarf.male-0", (1, 1, -2))), + Some(("figure.hair.dwarf.male-1", (4, 0, 1))), + Some(("figure.hair.dwarf.male-2", (0, 2, -1))), + Some(("figure.hair.dwarf.male-3", (1, -1, -4))), + Some(("figure.hair.dwarf.male-4", (1, -4, -1))), + Some(("figure.hair.dwarf.male-5", (1, -3, -1))), + Some(("figure.hair.dwarf.male-6", (1, -5, 0))), + Some(("figure.hair.dwarf.male-7", (1, -2, -1))), + Some(("figure.hair.dwarf.male-8", (1, 0, -2))), + Some(("figure.hair.dwarf.male-9", (1, 1, 0))), + Some(("figure.hair.dwarf.male-10", (1, -3, 0))), + Some(("figure.hair.dwarf.male-11", (0, -1, -1))), + Some(("figure.hair.dwarf.male-12", (1, -2, -1))), + Some(("figure.hair.dwarf.male-13", (1, 0, -1))), + ], + beard: [ + Some(("figure.beard.dwarf.dwarf-0", (4, 9, -2))), + Some(("figure.beard.dwarf.dwarf-1", (1, 7, -8))), + Some(("figure.beard.dwarf.dwarf-2", (1, 7, -4))), + Some(("figure.beard.dwarf.dwarf-3", (0, 8, -2))), + Some(("figure.beard.dwarf.dwarf-4", (4, 9, -4))), + Some(("figure.beard.dwarf.dwarf-5", (0, 7, -5))), + Some(("figure.beard.dwarf.dwarf-6", (0, 6, -5))), + Some(("figure.beard.dwarf.dwarf-7", (1, 7, -2))), + Some(("figure.beard.dwarf.dwarf-8", (1, 7, -6))), + Some(("figure.beard.dwarf.dwarf-9", (1, 7, -2))), + Some(("figure.beard.dwarf.dwarf-10", (1, 8, -3))), + Some(("figure.beard.dwarf.dwarf-11", (1, 7, -4))), + Some(("figure.beard.dwarf.dwarf-12", (1, 7, -2))), + Some(("figure.beard.dwarf.dwarf-13", (1, 7, -5))), + Some(("figure.beard.dwarf.dwarf-14", (1, 7, -5))), + Some(("figure.beard.dwarf.dwarf-15", (1, 7, -8))), + Some(("figure.beard.dwarf.dwarf-16", (1, 7, -10))), + Some(("figure.beard.dwarf.dwarf-17", (1, 7, -5))), + Some(("figure.beard.dwarf.dwarf-18", (1, 7, -5))), + Some(("figure.beard.dwarf.dwarf-19", (1, 7, -8))), + Some(("figure.beard.dwarf.dwarf-20", (0, 7,-7))), + Some(("figure.beard.dwarf.dwarf-21", (1, 7, -7))), + Some(("figure.beard.dwarf.dwarf-22", (1, 7, -6))), + ], + accessory: [ + None, + Some(("figure.accessory.dwarf.earring-0", (0, 3, 0))), + Some(("figure.accessory.dwarf.earring-1", (0, 3, 0))), + Some(("figure.accessory.dwarf.earrings-0", (0, 3, 0))), + Some(("figure.accessory.dwarf.earrings-1", (0, 3, 0))), + Some(("figure.accessory.dwarf.earrings-2", (0, 3, 0))), + Some(("figure.accessory.dwarf.earrings-3", (0, 3, 0))), + ], + ), + (Dwarf, Female): ( + offset: (-6.0, -4.5, -2.0), + head: ("figure.head.dwarf.female", (0, 3, 0)), + eyes: [ + Some(("figure.eyes.general.female_default-0", (1, 10, 2))), + Some(("figure.eyes.general.female_styled-0", (1, 10, 2))), + Some(("figure.eyes.general.female_as_hair-0", (1, 10, 2))), + Some(("figure.eyes.general.female_heterochromia-0", (1, 10, 2))), + Some(("figure.eyes.general.female_scar-0", (1, 10, 2))), + Some(("figure.eyes.general.female_blind-0", (1, 10, 2))), + ], + hair: [ + Some(("figure.hair.dwarf.female-0", (1, 0, -5))), + Some(("figure.hair.dwarf.female-1", (0, 0, 0))), + Some(("figure.hair.dwarf.female-2", (0, 2, -1))), + Some(("figure.hair.dwarf.female-3", (1, 1, -2))), + Some(("figure.hair.dwarf.female-4", (-1, -1, -3))), + Some(("figure.hair.dwarf.female-5", (1, -1, -2))), + Some(("figure.hair.dwarf.female-6", (0, -1, 0))), + Some(("figure.hair.dwarf.female-7", (0, 1, -2))), + Some(("figure.hair.dwarf.female-8", (1, 1, -3))), + Some(("figure.hair.dwarf.female-9", (1, 1, -1))), + Some(("figure.hair.dwarf.female-10", (1, 0, -6))), + Some(("figure.hair.dwarf.female-11", (1, -2, -1))), + Some(("figure.hair.dwarf.female-12", (0, 0, -3))), + Some(("figure.hair.dwarf.female-13", (1, -3, 0))), + Some(("figure.hair.dwarf.female-14", (1, -1, -1))), + ], + beard: [None], + accessory: [ + None, + Some(("figure.accessory.dwarf.earring-0", (0, 3, 0))), + Some(("figure.accessory.dwarf.earring-1", (0, 3, 0))), + Some(("figure.accessory.dwarf.earrings-0", (0, 3, 0))), + Some(("figure.accessory.dwarf.earrings-1", (0, 3, 0))), + Some(("figure.accessory.dwarf.earrings-2", (0, 3, 0))), + Some(("figure.accessory.dwarf.earrings-3", (0, 3, 0))), + ], + ), + (Draugr, Male): ( + offset: (-5.0, -4.0, -1.5), + head: ("figure.head.draugr.male", (0, 2, 0)), + eyes: [ + Some(("figure.eyes.draugr.male-0", (2, 8, 3))), + Some(("figure.eyes.draugr.male-1", (2, 8, 3))), + Some(("figure.eyes.draugr.male-2", (2, 8, 3))), + Some(("figure.eyes.draugr.male-3", (2, 8, 3))), + Some(("figure.eyes.draugr.male-4", (2, 8, 4))), + Some(("figure.eyes.draugr.male-5", (2, 8, 4))), + Some(("figure.eyes.draugr.male-6", (2, 8, 4))), + Some(("figure.eyes.draugr.male-7", (2, 8, 4))), + ], + hair: [ + Some(("figure.hair.dwarf.bald", (-1, 1, 1))), + Some(("figure.hair.draugr.male-0", (-1, 1, 1))), + Some(("figure.hair.draugr.male-1", (3, -2, 3))), + Some(("figure.hair.draugr.male-2", (2, 1, 3))), + Some(("figure.hair.draugr.male-3", (-1, 1, 2))), + Some(("figure.hair.draugr.male-4", (-2, 0, -1))), + Some(("figure.hair.draugr.male-5", (-1, 1, -1))), + Some(("figure.hair.draugr.male-6", (0, 1, 0))), + Some(("figure.hair.draugr.male-7", (-1, 1, 0))), + Some(("figure.hair.draugr.male-8", (1, -3, 1))), + Some(("figure.hair.draugr.male-9", (0, -1, 0))), + Some(("figure.hair.draugr.male-10", (-1, 1, -1))), + Some(("figure.hair.draugr.male-11", (1, -2, 3))), + Some(("figure.hair.draugr.male-12", (0, -2, 2))), + Some(("figure.hair.draugr.male-13", (3, 1, 4))), + ], + beard: [ + None, + Some(("figure.beard.draugr.male-0", (2, 9, -3))), + Some(("figure.beard.draugr.male-1", (0, 7, -3))), + Some(("figure.beard.draugr.male-2", (4, 9, -2))), + Some(("figure.beard.draugr.male-3", (0, 7, -3))), + Some(("figure.beard.draugr.male-4", (1, 8, -2))), + ], + accessory: [ + None, + Some(("figure.accessory.draugr.male_eyepatch", (3, 2, 4))), + ], + ), + (Draugr, Female): ( + offset: (-5.0, -4.0, -2.0), + head: ("figure.head.draugr.female", (0, 2, 0)), + eyes: [ + Some(("figure.eyes.draugr.female-0", (2, 8, 3))), + Some(("figure.eyes.draugr.female-1", (2, 8, 3))), + Some(("figure.eyes.draugr.female-2", (2, 8, 3))), + ], + hair: [ + None, + Some(("figure.hair.draugr.female-0", (1, 1, 0))), + Some(("figure.hair.draugr.female-1", (-2, 0, -1))), + Some(("figure.hair.draugr.female-2", (3, 1, -1))), + Some(("figure.hair.draugr.female-3", (0, -3, -0))), + Some(("figure.hair.draugr.female-4", (-1, 1, 1))), + Some(("figure.hair.draugr.female-5", (-1, 1, 0))), + Some(("figure.hair.draugr.female-6", (-1, 1, -2))), + Some(("figure.hair.draugr.female-7", (-1, -4, 1))), + Some(("figure.hair.draugr.female-8", (-1, 1, -1))), + Some(("figure.hair.draugr.female-9", (3, -2, 1))), + Some(("figure.hair.draugr.female-10", (-1, -4, 0))), + Some(("figure.hair.draugr.female-11", (-1, -4, 1))), + Some(("figure.hair.draugr.female-12", (-1, -1, 0))), + Some(("figure.hair.draugr.female-13", (-1, 0, -2))), + ], + beard: [None], + accessory: [ + None, + Some(("figure.accessory.draugr.female_eyepatch", (3, 2, 3))), + ], + ), + (Danari, Male): ( + offset: (-9.0, -4.0, -2.0), + head: ("figure.head.danari.male", (0, 2, 2)), + eyes: [ + Some(("figure.eyes.general.male_bushy-0", (5, 9, 4))), + Some(("figure.eyes.general.male_default-0", (5, 9, 4))), + Some(("figure.eyes.general.male_brow_col-0", (5, 9, 4))), + Some(("figure.eyes.general.male_as_hair-0", (5, 9, 4))), + Some(("figure.eyes.general.male_heterochromia-0", (5, 9, 4))), + Some(("figure.eyes.general.male_scar-0", (5, 9, 4))), + Some(("figure.eyes.general.male_blind-0", (5, 9, 4))), + Some(("figure.eyes.general.male_old", (4, 9, 3))), + ], + hair: [ + None, + Some(("figure.hair.danari.male-0", (3, 1, 2))), + Some(("figure.hair.danari.male-1", (3, 1, 2))), + Some(("figure.hair.danari.male-2", (3, -2, 3))), + Some(("figure.hair.danari.male-3", (4, -2, 3))), + Some(("figure.hair.danari.male-4", (3, 0, 3))), + Some(("figure.hair.danari.male-5", (3, -4, 3))), + Some(("figure.hair.danari.male-6", (4, 1, 2))), + Some(("figure.hair.danari.male-7", (2, 0, 0))), + Some(("figure.hair.danari.male-8", (4, -2, 2))), + Some(("figure.hair.danari.male-9", (2, 0, 2))), + Some(("figure.hair.danari.male-10", (2, 0, 2))), + Some(("figure.hair.danari.male-11", (3, 1, 2))), + Some(("figure.hair.danari.male-12", (3, -2, 4))), + Some(("figure.hair.danari.male-13", (3, 0, 2))), + ], + beard: [ + None, + Some(("figure.beard.danari.danari-0", (4, 6, -1))), + Some(("figure.beard.danari.danari-1", (4, 6, -1))), + Some(("figure.beard.danari.danari-2", (6, 8, -1))), + Some(("figure.beard.danari.danari-3", (4, 6, -1))), + Some(("figure.beard.danari.danari-4", (3, 6, -2))), + Some(("figure.beard.danari.danari-5", (3, 6, 1))), + Some(("figure.beard.danari.danari-6", (4, 6, 1))), + Some(("figure.beard.danari.danari-7", (4, 6, -2))), + Some(("figure.beard.danari.danari-8", (4, 6, -4))), + Some(("figure.beard.danari.danari-9", (4, 6, -4))), + Some(("figure.beard.danari.danari-10", (4, 6, -1))), + Some(("figure.beard.danari.danari-11", (4, 6, -2))), + Some(("figure.beard.danari.danari-12", (6, 6, 0))), + Some(("figure.beard.danari.danari-13", (6, 10, -2))), + Some(("figure.beard.danari.danari-14", (6, 10, 2))), + ], + accessory: [ + Some(("figure.accessory.danari.horns-0", (4, 8, 8))), + Some(("figure.accessory.danari.horns-1", (4, 4, 8))), + Some(("figure.accessory.danari.horns-2", (4, 1, 8))), + Some(("figure.accessory.danari.horns-3", (5, 8, 8))), + Some(("figure.accessory.danari.horns-4", (3, 7, 8))), + Some(("figure.accessory.danari.horns-5", (2, 5, 8))), + Some(("figure.accessory.danari.horns-6", (3, 6, 8))), + ], + ), + (Danari, Female): ( + offset: (-9.0, -4.0, -2.0), + head: ("figure.head.danari.female", (1, 2, 2)), + eyes: [ + Some(("figure.eyes.general.female_default-0", (4, 9, 4))), + Some(("figure.eyes.general.female_styled-0", (4, 9, 4))), + Some(("figure.eyes.general.female_as_hair-0", (4, 9, 4))), + Some(("figure.eyes.general.female_heterochromia-0", (4, 9, 4))), + Some(("figure.eyes.general.female_scar-0", (4, 9, 4))), + Some(("figure.eyes.general.female_blind-0", (4, 9, 4))), + ], + hair: [ + Some(("figure.hair.danari.female-0", (3, -4, 1))), + Some(("figure.hair.danari.female-1", (2, -1, 2))), + Some(("figure.hair.danari.female-2", (3, 1, 1))), + Some(("figure.hair.danari.female-3", (2, 0, 0))), + Some(("figure.hair.danari.female-4", (3, -3, 2))), + Some(("figure.hair.danari.female-5", (2, -1, 3))), + Some(("figure.hair.danari.female-6", (3, 0, 0))), + Some(("figure.hair.danari.female-7", (3, -2, 2))), + Some(("figure.hair.danari.female-8", (3, 0, 0))), + Some(("figure.hair.danari.female-9", (3, 1, 1))), + Some(("figure.hair.danari.female-10", (3, 0, 2))), + Some(("figure.hair.danari.female-11", (3, 0, 2))), + Some(("figure.hair.danari.female-12", (2, 0, 1))), + Some(("figure.hair.danari.female-13", (3, 0, 2))), + Some(("figure.hair.danari.female-14", (3, -3, 3))), + ], + beard: [None], + accessory: [ + Some(("figure.accessory.danari.horns-0", (4, 8, 8))), + Some(("figure.accessory.danari.horns-1", (4, 4, 8))), + Some(("figure.accessory.danari.horns-2", (4, 1, 8))), + Some(("figure.accessory.danari.horns-3", (5, 8, 8))), + Some(("figure.accessory.danari.horns-4", (3, 7, 8))), + Some(("figure.accessory.danari.horns-5", (2, 5, 8))), + Some(("figure.accessory.danari.horns-6", (3, 6, 8))), + ], + ), + // More here +}) diff --git a/assets/voxygen/voxel/humanoid_lantern_manifest.ron b/assets/voxygen/voxel/humanoid_lantern_manifest.ron new file mode 100644 index 0000000..b1fe2ac --- /dev/null +++ b/assets/voxygen/voxel/humanoid_lantern_manifest.ron @@ -0,0 +1,44 @@ +(( + default: ( + vox_spec: ("armor.empty", (0.0, 0.0, 0.0)), + color: None + ), + map: { + "common.items.lantern.green_0": ( + vox_spec: ("lantern.green-0", (-2.5, -2.0, -9.0)), + color: None + ), + "common.items.boss_drops.lantern": ( + vox_spec: ("lantern.magic_lantern", (-2.0, -2.0, -7.0)), + color: None + ), + "common.items.lantern.black_0": ( + vox_spec: ("lantern.black-0", (-2.5, -2.0, -8.5)), + color: None + ), + "common.items.lantern.red_0": ( + vox_spec: ("lantern.red-0", (-2.0, -2.0, -7.0)), + color: None + ), + "common.items.lantern.blue_0": ( + vox_spec: ("lantern.blue-0", (-2.5, -2.0, -8.0)), + color: None + ), + "common.items.lantern.geode_purp": ( + vox_spec: ("lantern.geode_purp", (-2.5, -2.5, -9.5)), + color: None + ), + "common.items.lantern.pumpkin": ( + vox_spec: ("lantern.pumpkin", (-4.0, -4.0, -8.5)), + color: None + ), + "common.items.lantern.polaris": ( + vox_spec: ("lantern.polaris", (-3.5, -4.0, -8.5)), + color: None + ), + "common.items.lantern.delvers_lamp": ( + vox_spec: ("lantern.delvers_lamp", (-3.5, -4.0, -8.5)), + color: None + ), + }, +)) diff --git a/assets/voxygen/voxel/item_drop_manifest.ron b/assets/voxygen/voxel/item_drop_manifest.ron new file mode 100644 index 0000000..ef2d0f8 --- /dev/null +++ b/assets/voxygen/voxel/item_drop_manifest.ron @@ -0,0 +1,1341 @@ +// specifier +({ + // Bows + ModularWeapon(("common.items.modular.weapon.primary.bow.bow", "common.items.log.wood", Two)): "voxel.weapon.bow.bow.wood", + ModularWeapon(("common.items.modular.weapon.primary.bow.composite", "common.items.log.wood", Two)): "voxel.weapon.bow.composite.wood", + ModularWeapon(("common.items.modular.weapon.primary.bow.greatbow", "common.items.log.wood", Two)): "voxel.weapon.bow.greatbow.wood", + ModularWeapon(("common.items.modular.weapon.primary.bow.longbow", "common.items.log.wood", Two)): "voxel.weapon.bow.longbow.wood", + ModularWeapon(("common.items.modular.weapon.primary.bow.ornate", "common.items.log.wood", Two)): "voxel.weapon.bow.ornate.wood", + ModularWeapon(("common.items.modular.weapon.primary.bow.shortbow", "common.items.log.wood", Two)): "voxel.weapon.bow.shortbow.wood", + ModularWeapon(("common.items.modular.weapon.primary.bow.warbow", "common.items.log.wood", Two)): "voxel.weapon.bow.warbow.wood", + ModularWeapon(("common.items.modular.weapon.primary.bow.bow", "common.items.log.bamboo", Two)): "voxel.weapon.bow.bow.bamboo", + ModularWeapon(("common.items.modular.weapon.primary.bow.composite", "common.items.log.bamboo", Two)): "voxel.weapon.bow.composite.bamboo", + ModularWeapon(("common.items.modular.weapon.primary.bow.greatbow", "common.items.log.bamboo", Two)): "voxel.weapon.bow.greatbow.bamboo", + ModularWeapon(("common.items.modular.weapon.primary.bow.longbow", "common.items.log.bamboo", Two)): "voxel.weapon.bow.longbow.bamboo", + ModularWeapon(("common.items.modular.weapon.primary.bow.ornate", "common.items.log.bamboo", Two)): "voxel.weapon.bow.ornate.bamboo", + ModularWeapon(("common.items.modular.weapon.primary.bow.shortbow", "common.items.log.bamboo", Two)): "voxel.weapon.bow.shortbow.bamboo", + ModularWeapon(("common.items.modular.weapon.primary.bow.warbow", "common.items.log.bamboo", Two)): "voxel.weapon.bow.warbow.bamboo", + ModularWeapon(("common.items.modular.weapon.primary.bow.bow", "common.items.log.hardwood", Two)): "voxel.weapon.bow.bow.hardwood", + ModularWeapon(("common.items.modular.weapon.primary.bow.composite", "common.items.log.hardwood", Two)): "voxel.weapon.bow.composite.hardwood", + ModularWeapon(("common.items.modular.weapon.primary.bow.greatbow", "common.items.log.hardwood", Two)): "voxel.weapon.bow.greatbow.hardwood", + ModularWeapon(("common.items.modular.weapon.primary.bow.longbow", "common.items.log.hardwood", Two)): "voxel.weapon.bow.longbow.hardwood", + ModularWeapon(("common.items.modular.weapon.primary.bow.ornate", "common.items.log.hardwood", Two)): "voxel.weapon.bow.ornate.hardwood", + ModularWeapon(("common.items.modular.weapon.primary.bow.shortbow", "common.items.log.hardwood", Two)): "voxel.weapon.bow.shortbow.hardwood", + ModularWeapon(("common.items.modular.weapon.primary.bow.warbow", "common.items.log.hardwood", Two)): "voxel.weapon.bow.warbow.hardwood", + ModularWeapon(("common.items.modular.weapon.primary.bow.bow", "common.items.log.ironwood", Two)): "voxel.weapon.bow.bow.ironwood", + ModularWeapon(("common.items.modular.weapon.primary.bow.composite", "common.items.log.ironwood", Two)): "voxel.weapon.bow.composite.ironwood", + ModularWeapon(("common.items.modular.weapon.primary.bow.greatbow", "common.items.log.ironwood", Two)): "voxel.weapon.bow.greatbow.ironwood", + ModularWeapon(("common.items.modular.weapon.primary.bow.longbow", "common.items.log.ironwood", Two)): "voxel.weapon.bow.longbow.ironwood", + ModularWeapon(("common.items.modular.weapon.primary.bow.ornate", "common.items.log.ironwood", Two)): "voxel.weapon.bow.ornate.ironwood", + ModularWeapon(("common.items.modular.weapon.primary.bow.shortbow", "common.items.log.ironwood", Two)): "voxel.weapon.bow.shortbow.ironwood", + ModularWeapon(("common.items.modular.weapon.primary.bow.warbow", "common.items.log.ironwood", Two)): "voxel.weapon.bow.warbow.ironwood", + ModularWeapon(("common.items.modular.weapon.primary.bow.bow", "common.items.log.frostwood", Two)): "voxel.weapon.bow.bow.frostwood", + ModularWeapon(("common.items.modular.weapon.primary.bow.composite", "common.items.log.frostwood", Two)): "voxel.weapon.bow.composite.frostwood", + ModularWeapon(("common.items.modular.weapon.primary.bow.greatbow", "common.items.log.frostwood", Two)): "voxel.weapon.bow.greatbow.frostwood", + ModularWeapon(("common.items.modular.weapon.primary.bow.longbow", "common.items.log.frostwood", Two)): "voxel.weapon.bow.longbow.frostwood", + ModularWeapon(("common.items.modular.weapon.primary.bow.ornate", "common.items.log.frostwood", Two)): "voxel.weapon.bow.ornate.frostwood", + ModularWeapon(("common.items.modular.weapon.primary.bow.shortbow", "common.items.log.frostwood", Two)): "voxel.weapon.bow.shortbow.frostwood", + ModularWeapon(("common.items.modular.weapon.primary.bow.warbow", "common.items.log.frostwood", Two)): "voxel.weapon.bow.warbow.frostwood", + ModularWeapon(("common.items.modular.weapon.primary.bow.bow", "common.items.log.eldwood", Two)): "voxel.weapon.bow.bow.eldwood", + ModularWeapon(("common.items.modular.weapon.primary.bow.composite", "common.items.log.eldwood", Two)): "voxel.weapon.bow.composite.eldwood", + ModularWeapon(("common.items.modular.weapon.primary.bow.greatbow", "common.items.log.eldwood", Two)): "voxel.weapon.bow.greatbow.eldwood", + ModularWeapon(("common.items.modular.weapon.primary.bow.longbow", "common.items.log.eldwood", Two)): "voxel.weapon.bow.longbow.eldwood", + ModularWeapon(("common.items.modular.weapon.primary.bow.ornate", "common.items.log.eldwood", Two)): "voxel.weapon.bow.ornate.eldwood", + ModularWeapon(("common.items.modular.weapon.primary.bow.shortbow", "common.items.log.eldwood", Two)): "voxel.weapon.bow.shortbow.eldwood", + ModularWeapon(("common.items.modular.weapon.primary.bow.warbow", "common.items.log.eldwood", Two)): "voxel.weapon.bow.warbow.eldwood", + Simple("common.items.weapons.bow.sagitta"): "voxel.weapon.bow.sagitta", + Simple("common.items.weapons.bow.starter"): "voxel.weapon.bow.starter", + Simple("common.items.weapons.bow.velorite"): "voxel.weapon.bow.velorite", + Simple("common.items.debug.velorite_bow_debug"): "voxel.weapon.bow.velorite", + //staffs + ModularWeapon(("common.items.modular.weapon.primary.staff.brand", "common.items.log.wood", Two)): "voxel.weapon.staff.brand.wood", + ModularWeapon(("common.items.modular.weapon.primary.staff.grandstaff", "common.items.log.wood", Two)): "voxel.weapon.staff.grandstaff.wood", + ModularWeapon(("common.items.modular.weapon.primary.staff.longpole", "common.items.log.wood", Two)): "voxel.weapon.staff.longpole.wood", + ModularWeapon(("common.items.modular.weapon.primary.staff.pole", "common.items.log.wood", Two)): "voxel.weapon.staff.pole.wood", + ModularWeapon(("common.items.modular.weapon.primary.staff.ornate", "common.items.log.wood", Two)): "voxel.weapon.staff.ornate.wood", + ModularWeapon(("common.items.modular.weapon.primary.staff.rod", "common.items.log.wood", Two)): "voxel.weapon.staff.rod.wood", + ModularWeapon(("common.items.modular.weapon.primary.staff.staff", "common.items.log.wood", Two)): "voxel.weapon.staff.staff.wood", + ModularWeapon(("common.items.modular.weapon.primary.staff.brand", "common.items.log.bamboo", Two)): "voxel.weapon.staff.brand.bamboo", + ModularWeapon(("common.items.modular.weapon.primary.staff.grandstaff", "common.items.log.bamboo", Two)): "voxel.weapon.staff.grandstaff.bamboo", + ModularWeapon(("common.items.modular.weapon.primary.staff.longpole", "common.items.log.bamboo", Two)): "voxel.weapon.staff.longpole.bamboo", + ModularWeapon(("common.items.modular.weapon.primary.staff.pole", "common.items.log.bamboo", Two)): "voxel.weapon.staff.pole.bamboo", + ModularWeapon(("common.items.modular.weapon.primary.staff.ornate", "common.items.log.bamboo", Two)): "voxel.weapon.staff.ornate.bamboo", + ModularWeapon(("common.items.modular.weapon.primary.staff.rod", "common.items.log.bamboo", Two)): "voxel.weapon.staff.rod.bamboo", + ModularWeapon(("common.items.modular.weapon.primary.staff.staff", "common.items.log.bamboo", Two)): "voxel.weapon.staff.staff.bamboo", + ModularWeapon(("common.items.modular.weapon.primary.staff.brand", "common.items.log.hardwood", Two)): "voxel.weapon.staff.brand.hardwood", + ModularWeapon(("common.items.modular.weapon.primary.staff.grandstaff", "common.items.log.hardwood", Two)): "voxel.weapon.staff.grandstaff.hardwood", + ModularWeapon(("common.items.modular.weapon.primary.staff.longpole", "common.items.log.hardwood", Two)): "voxel.weapon.staff.longpole.hardwood", + ModularWeapon(("common.items.modular.weapon.primary.staff.pole", "common.items.log.hardwood", Two)): "voxel.weapon.staff.pole.hardwood", + ModularWeapon(("common.items.modular.weapon.primary.staff.ornate", "common.items.log.hardwood", Two)): "voxel.weapon.staff.ornate.hardwood", + ModularWeapon(("common.items.modular.weapon.primary.staff.rod", "common.items.log.hardwood", Two)): "voxel.weapon.staff.rod.hardwood", + ModularWeapon(("common.items.modular.weapon.primary.staff.staff", "common.items.log.hardwood", Two)): "voxel.weapon.staff.staff.hardwood", + ModularWeapon(("common.items.modular.weapon.primary.staff.brand", "common.items.log.ironwood", Two)): "voxel.weapon.staff.brand.ironwood", + ModularWeapon(("common.items.modular.weapon.primary.staff.grandstaff", "common.items.log.ironwood", Two)): "voxel.weapon.staff.grandstaff.ironwood", + ModularWeapon(("common.items.modular.weapon.primary.staff.longpole", "common.items.log.ironwood", Two)): "voxel.weapon.staff.longpole.ironwood", + ModularWeapon(("common.items.modular.weapon.primary.staff.pole", "common.items.log.ironwood", Two)): "voxel.weapon.staff.pole.ironwood", + ModularWeapon(("common.items.modular.weapon.primary.staff.ornate", "common.items.log.ironwood", Two)): "voxel.weapon.staff.ornate.ironwood", + ModularWeapon(("common.items.modular.weapon.primary.staff.rod", "common.items.log.ironwood", Two)): "voxel.weapon.staff.rod.ironwood", + ModularWeapon(("common.items.modular.weapon.primary.staff.staff", "common.items.log.ironwood", Two)): "voxel.weapon.staff.staff.ironwood", + ModularWeapon(("common.items.modular.weapon.primary.staff.brand", "common.items.log.frostwood", Two)): "voxel.weapon.staff.brand.frostwood", + ModularWeapon(("common.items.modular.weapon.primary.staff.grandstaff", "common.items.log.frostwood", Two)): "voxel.weapon.staff.grandstaff.frostwood", + ModularWeapon(("common.items.modular.weapon.primary.staff.longpole", "common.items.log.frostwood", Two)): "voxel.weapon.staff.longpole.frostwood", + ModularWeapon(("common.items.modular.weapon.primary.staff.pole", "common.items.log.frostwood", Two)): "voxel.weapon.staff.pole.frostwood", + ModularWeapon(("common.items.modular.weapon.primary.staff.ornate", "common.items.log.frostwood", Two)): "voxel.weapon.staff.ornate.frostwood", + ModularWeapon(("common.items.modular.weapon.primary.staff.rod", "common.items.log.frostwood", Two)): "voxel.weapon.staff.rod.frostwood", + ModularWeapon(("common.items.modular.weapon.primary.staff.staff", "common.items.log.frostwood", Two)): "voxel.weapon.staff.staff.frostwood", + ModularWeapon(("common.items.modular.weapon.primary.staff.brand", "common.items.log.eldwood", Two)): "voxel.weapon.staff.brand.eldwood", + ModularWeapon(("common.items.modular.weapon.primary.staff.grandstaff", "common.items.log.eldwood", Two)): "voxel.weapon.staff.grandstaff.eldwood", + ModularWeapon(("common.items.modular.weapon.primary.staff.longpole", "common.items.log.eldwood", Two)): "voxel.weapon.staff.longpole.eldwood", + ModularWeapon(("common.items.modular.weapon.primary.staff.pole", "common.items.log.eldwood", Two)): "voxel.weapon.staff.pole.eldwood", + ModularWeapon(("common.items.modular.weapon.primary.staff.ornate", "common.items.log.eldwood", Two)): "voxel.weapon.staff.ornate.eldwood", + ModularWeapon(("common.items.modular.weapon.primary.staff.rod", "common.items.log.eldwood", Two)): "voxel.weapon.staff.rod.eldwood", + ModularWeapon(("common.items.modular.weapon.primary.staff.staff", "common.items.log.eldwood", Two)): "voxel.weapon.staff.staff.eldwood", + Simple("common.items.weapons.staff.staff_1"): "voxel.weapon.staff.firestaff_starter", + Simple("common.items.weapons.staff.starter_staff"): "voxel.weapon.staff.firestaff_starter", + Simple("common.items.weapons.staff.cultist_staff"): "voxel.weapon.staff.firestaff_cultist", + Simple("common.items.weapons.staff.laevateinn"): "voxel.weapon.staff.laevateinn", + // Swords + ModularWeapon(("common.items.modular.weapon.primary.sword.greatsword", "common.items.mineral.ingot.bronze", Two)):"voxel.weapon.sword.greatsword.bronze-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.katana", "common.items.mineral.ingot.bronze", Two)):"voxel.weapon.sword.katana.bronze-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.longsword", "common.items.mineral.ingot.bronze", Two)):"voxel.weapon.sword.longsword.bronze-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.ornate", "common.items.mineral.ingot.bronze", Two)):"voxel.weapon.sword.ornate.bronze-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.sabre", "common.items.mineral.ingot.bronze", Two)):"voxel.weapon.sword.sabre.bronze-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.sawblade", "common.items.mineral.ingot.bronze", Two)):"voxel.weapon.sword.sawblade.bronze-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.zweihander", "common.items.mineral.ingot.bronze", Two)):"voxel.weapon.sword.zweihander.bronze-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.greatsword", "common.items.mineral.ingot.iron", Two)):"voxel.weapon.sword.greatsword.iron-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.katana", "common.items.mineral.ingot.iron", Two)):"voxel.weapon.sword.katana.iron-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.longsword", "common.items.mineral.ingot.iron", Two)):"voxel.weapon.sword.longsword.iron-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.ornate", "common.items.mineral.ingot.iron", Two)):"voxel.weapon.sword.ornate.iron-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.sabre", "common.items.mineral.ingot.iron", Two)):"voxel.weapon.sword.sabre.iron-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.sawblade", "common.items.mineral.ingot.iron", Two)):"voxel.weapon.sword.sawblade.iron-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.zweihander", "common.items.mineral.ingot.iron", Two)):"voxel.weapon.sword.zweihander.iron-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.greatsword", "common.items.mineral.ingot.steel", Two)):"voxel.weapon.sword.greatsword.steel-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.katana", "common.items.mineral.ingot.steel", Two)):"voxel.weapon.sword.katana.steel-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.longsword", "common.items.mineral.ingot.steel", Two)):"voxel.weapon.sword.longsword.steel-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.ornate", "common.items.mineral.ingot.steel", Two)):"voxel.weapon.sword.ornate.steel-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.sabre", "common.items.mineral.ingot.steel", Two)):"voxel.weapon.sword.sabre.steel-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.sawblade", "common.items.mineral.ingot.steel", Two)):"voxel.weapon.sword.sawblade.steel-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.zweihander", "common.items.mineral.ingot.steel", Two)):"voxel.weapon.sword.zweihander.steel-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.greatsword", "common.items.mineral.ingot.cobalt", Two)):"voxel.weapon.sword.greatsword.cobalt-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.katana", "common.items.mineral.ingot.cobalt", Two)):"voxel.weapon.sword.katana.cobalt-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.longsword", "common.items.mineral.ingot.cobalt", Two)):"voxel.weapon.sword.longsword.cobalt-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.ornate", "common.items.mineral.ingot.cobalt", Two)):"voxel.weapon.sword.ornate.cobalt-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.sabre", "common.items.mineral.ingot.cobalt", Two)):"voxel.weapon.sword.sabre.cobalt-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.sawblade", "common.items.mineral.ingot.cobalt", Two)):"voxel.weapon.sword.sawblade.cobalt-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.zweihander", "common.items.mineral.ingot.cobalt", Two)): "voxel.weapon.sword.zweihander.cobalt-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.greatsword", "common.items.mineral.ingot.bloodsteel", Two)): "voxel.weapon.sword.greatsword.bloodsteel-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.katana", "common.items.mineral.ingot.bloodsteel", Two)): "voxel.weapon.sword.katana.bloodsteel-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.longsword", "common.items.mineral.ingot.bloodsteel", Two)): "voxel.weapon.sword.longsword.bloodsteel-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.ornate", "common.items.mineral.ingot.bloodsteel", Two)): "voxel.weapon.sword.ornate.bloodsteel-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.sabre", "common.items.mineral.ingot.bloodsteel", Two)): "voxel.weapon.sword.sabre.bloodsteel-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.sawblade", "common.items.mineral.ingot.bloodsteel", Two)): "voxel.weapon.sword.sawblade.bloodsteel-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.zweihander", "common.items.mineral.ingot.bloodsteel", Two)): "voxel.weapon.sword.zweihander.bloodsteel-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.greatsword", "common.items.mineral.ingot.orichalcum", Two)): "voxel.weapon.sword.greatsword.orichalcum-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.katana", "common.items.mineral.ingot.orichalcum", Two)): "voxel.weapon.sword.katana.orichalcum-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.longsword", "common.items.mineral.ingot.orichalcum", Two)): "voxel.weapon.sword.longsword.orichalcum-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.ornate", "common.items.mineral.ingot.orichalcum", Two)): "voxel.weapon.sword.ornate.orichalcum-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.sabre", "common.items.mineral.ingot.orichalcum", Two)): "voxel.weapon.sword.sabre.orichalcum-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.sawblade", "common.items.mineral.ingot.orichalcum", Two)):"voxel.weapon.sword.sawblade.orichalcum-2h", + ModularWeapon(("common.items.modular.weapon.primary.sword.zweihander", "common.items.mineral.ingot.orichalcum", Two)):"voxel.weapon.sword.zweihander.orichalcum-2h", + Simple("common.items.weapons.sword.caladbolg"): "voxel.weapon.sword.caladbolg", + Simple("common.items.weapons.sword.cultist"): "voxel.weapon.sword.cultist", + Simple("common.items.weapons.sword.frost-0"): "voxel.weapon.sword.frost-0", + Simple("common.items.weapons.sword.frost-1"): "voxel.weapon.sword.frost-1", + Simple("common.items.weapons.sword.starter"): "voxel.weapon.sword.starter", + Simple("common.items.debug.admin_sword"): "voxel.weapon.sword.frost-1", + // 1h Swords + ModularWeapon(("common.items.modular.weapon.primary.sword.katana", "common.items.mineral.ingot.bronze", One)): "voxel.weapon.sword.katana.bronze-1h", + ModularWeapon(("common.items.modular.weapon.primary.sword.longsword", "common.items.mineral.ingot.bronze", One)): "voxel.weapon.sword.longsword.bronze-1h", + ModularWeapon(("common.items.modular.weapon.primary.sword.ornate", "common.items.mineral.ingot.bronze", One)): "voxel.weapon.sword.ornate.bronze-1h", + ModularWeapon(("common.items.modular.weapon.primary.sword.sabre", "common.items.mineral.ingot.bronze", One)): "voxel.weapon.sword.sabre.bronze-1h", + ModularWeapon(("common.items.modular.weapon.primary.sword.sawblade", "common.items.mineral.ingot.bronze", One)): "voxel.weapon.sword.sawblade.bronze-1h", + ModularWeapon(("common.items.modular.weapon.primary.sword.katana", "common.items.mineral.ingot.iron", One)): "voxel.weapon.sword.katana.iron-1h", + ModularWeapon(("common.items.modular.weapon.primary.sword.longsword", "common.items.mineral.ingot.iron", One)): "voxel.weapon.sword.longsword.iron-1h", + ModularWeapon(("common.items.modular.weapon.primary.sword.ornate", "common.items.mineral.ingot.iron", One)): "voxel.weapon.sword.ornate.iron-1h", + ModularWeapon(("common.items.modular.weapon.primary.sword.sabre", "common.items.mineral.ingot.iron", One)): "voxel.weapon.sword.sabre.iron-1h", + ModularWeapon(("common.items.modular.weapon.primary.sword.sawblade", "common.items.mineral.ingot.iron", One)): "voxel.weapon.sword.sawblade.iron-1h", + ModularWeapon(("common.items.modular.weapon.primary.sword.katana", "common.items.mineral.ingot.steel", One)): "voxel.weapon.sword.katana.steel-1h", + ModularWeapon(("common.items.modular.weapon.primary.sword.longsword", "common.items.mineral.ingot.steel", One)): "voxel.weapon.sword.longsword.steel-1h", + ModularWeapon(("common.items.modular.weapon.primary.sword.ornate", "common.items.mineral.ingot.steel", One)): "voxel.weapon.sword.ornate.steel-1h", + ModularWeapon(("common.items.modular.weapon.primary.sword.sabre", "common.items.mineral.ingot.steel", One)): "voxel.weapon.sword.sabre.steel-1h", + ModularWeapon(("common.items.modular.weapon.primary.sword.sawblade", "common.items.mineral.ingot.steel", One)): "voxel.weapon.sword.sawblade.steel-1h", + ModularWeapon(("common.items.modular.weapon.primary.sword.katana", "common.items.mineral.ingot.cobalt", One)): "voxel.weapon.sword.katana.cobalt-1h", + ModularWeapon(("common.items.modular.weapon.primary.sword.longsword", "common.items.mineral.ingot.cobalt", One)): "voxel.weapon.sword.longsword.cobalt-1h", + ModularWeapon(("common.items.modular.weapon.primary.sword.ornate", "common.items.mineral.ingot.cobalt", One)): "voxel.weapon.sword.ornate.cobalt-1h", + ModularWeapon(("common.items.modular.weapon.primary.sword.sabre", "common.items.mineral.ingot.cobalt", One)): "voxel.weapon.sword.sabre.cobalt-1h", + ModularWeapon(("common.items.modular.weapon.primary.sword.sawblade", "common.items.mineral.ingot.cobalt", One)): "voxel.weapon.sword.sawblade.cobalt-1h", + ModularWeapon(("common.items.modular.weapon.primary.sword.katana", "common.items.mineral.ingot.bloodsteel", One)): "voxel.weapon.sword.katana.bloodsteel-1h", + ModularWeapon(("common.items.modular.weapon.primary.sword.longsword", "common.items.mineral.ingot.bloodsteel", One)): "voxel.weapon.sword.longsword.bloodsteel-1h", + ModularWeapon(("common.items.modular.weapon.primary.sword.ornate", "common.items.mineral.ingot.bloodsteel", One)): "voxel.weapon.sword.ornate.bloodsteel-1h", + ModularWeapon(("common.items.modular.weapon.primary.sword.sabre", "common.items.mineral.ingot.bloodsteel", One)): "voxel.weapon.sword.sabre.bloodsteel-1h", + ModularWeapon(("common.items.modular.weapon.primary.sword.sawblade", "common.items.mineral.ingot.bloodsteel", One)): "voxel.weapon.sword.sawblade.bloodsteel-1h", + ModularWeapon(("common.items.modular.weapon.primary.sword.katana", "common.items.mineral.ingot.orichalcum", One)): "voxel.weapon.sword.katana.orichalcum-1h", + ModularWeapon(("common.items.modular.weapon.primary.sword.longsword", "common.items.mineral.ingot.orichalcum", One)): "voxel.weapon.sword.longsword.orichalcum-1h", + ModularWeapon(("common.items.modular.weapon.primary.sword.ornate", "common.items.mineral.ingot.orichalcum", One)): "voxel.weapon.sword.ornate.orichalcum-1h", + ModularWeapon(("common.items.modular.weapon.primary.sword.sabre", "common.items.mineral.ingot.orichalcum", One)): "voxel.weapon.sword.sabre.orichalcum-1h", + ModularWeapon(("common.items.modular.weapon.primary.sword.sawblade", "common.items.mineral.ingot.orichalcum", One)): "voxel.weapon.sword.sawblade.orichalcum-1h", + Simple("common.items.weapons.sword_1h.starter"): "voxel.weapon.sword.starter_1h", + // Axes + ModularWeapon(("common.items.modular.weapon.primary.axe.axe", "common.items.mineral.ingot.bronze", Two)): "voxel.weapon.axe.axe.bronze-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.battleaxe", "common.items.mineral.ingot.bronze", Two)): "voxel.weapon.axe.battleaxe.bronze-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.greataxe", "common.items.mineral.ingot.bronze", Two)): "voxel.weapon.axe.greataxe.bronze-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.jagged", "common.items.mineral.ingot.bronze", Two)): "voxel.weapon.axe.jagged.bronze-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.labrys", "common.items.mineral.ingot.bronze", Two)): "voxel.weapon.axe.labrys.bronze-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.ornate", "common.items.mineral.ingot.bronze", Two)): "voxel.weapon.axe.ornate.bronze-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.poleaxe", "common.items.mineral.ingot.bronze", Two)): "voxel.weapon.axe.poleaxe.bronze-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.axe", "common.items.mineral.ingot.iron", Two)): "voxel.weapon.axe.axe.iron-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.battleaxe", "common.items.mineral.ingot.iron", Two)): "voxel.weapon.axe.battleaxe.iron-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.greataxe", "common.items.mineral.ingot.iron", Two)): "voxel.weapon.axe.greataxe.iron-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.jagged", "common.items.mineral.ingot.iron", Two)): "voxel.weapon.axe.jagged.iron-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.labrys", "common.items.mineral.ingot.iron", Two)): "voxel.weapon.axe.labrys.iron-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.ornate", "common.items.mineral.ingot.iron", Two)): "voxel.weapon.axe.ornate.iron-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.poleaxe", "common.items.mineral.ingot.iron", Two)): "voxel.weapon.axe.poleaxe.iron-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.axe", "common.items.mineral.ingot.steel", Two)): "voxel.weapon.axe.axe.steel-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.battleaxe", "common.items.mineral.ingot.steel", Two)): "voxel.weapon.axe.battleaxe.steel-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.greataxe", "common.items.mineral.ingot.steel", Two)): "voxel.weapon.axe.greataxe.steel-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.jagged", "common.items.mineral.ingot.steel", Two)): "voxel.weapon.axe.jagged.steel-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.labrys", "common.items.mineral.ingot.steel", Two)): "voxel.weapon.axe.labrys.steel-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.ornate", "common.items.mineral.ingot.steel", Two)): "voxel.weapon.axe.ornate.steel-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.poleaxe", "common.items.mineral.ingot.steel", Two)): "voxel.weapon.axe.poleaxe.steel-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.axe", "common.items.mineral.ingot.cobalt", Two)): "voxel.weapon.axe.axe.cobalt-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.battleaxe", "common.items.mineral.ingot.cobalt", Two)):"voxel.weapon.axe.battleaxe.cobalt-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.greataxe", "common.items.mineral.ingot.cobalt", Two)): "voxel.weapon.axe.greataxe.cobalt-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.jagged", "common.items.mineral.ingot.cobalt", Two)): "voxel.weapon.axe.jagged.cobalt-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.labrys", "common.items.mineral.ingot.cobalt", Two)): "voxel.weapon.axe.labrys.cobalt-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.ornate", "common.items.mineral.ingot.cobalt", Two)): "voxel.weapon.axe.ornate.cobalt-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.poleaxe", "common.items.mineral.ingot.cobalt", Two)): "voxel.weapon.axe.poleaxe.cobalt-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.axe", "common.items.mineral.ingot.bloodsteel", Two)): "voxel.weapon.axe.axe.bloodsteel-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.battleaxe", "common.items.mineral.ingot.bloodsteel", Two)): "voxel.weapon.axe.battleaxe.bloodsteel-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.greataxe", "common.items.mineral.ingot.bloodsteel", Two)): "voxel.weapon.axe.greataxe.bloodsteel-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.jagged", "common.items.mineral.ingot.bloodsteel", Two)): "voxel.weapon.axe.jagged.bloodsteel-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.labrys", "common.items.mineral.ingot.bloodsteel", Two)): "voxel.weapon.axe.labrys.bloodsteel-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.ornate", "common.items.mineral.ingot.bloodsteel", Two)): "voxel.weapon.axe.ornate.bloodsteel-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.poleaxe", "common.items.mineral.ingot.bloodsteel", Two)): "voxel.weapon.axe.poleaxe.bloodsteel-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.axe", "common.items.mineral.ingot.orichalcum", Two)): "voxel.weapon.axe.axe.orichalcum-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.battleaxe", "common.items.mineral.ingot.orichalcum", Two)): "voxel.weapon.axe.battleaxe.orichalcum-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.greataxe", "common.items.mineral.ingot.orichalcum", Two)): "voxel.weapon.axe.greataxe.orichalcum-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.jagged", "common.items.mineral.ingot.orichalcum", Two)): "voxel.weapon.axe.jagged.orichalcum-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.labrys", "common.items.mineral.ingot.orichalcum", Two)): "voxel.weapon.axe.labrys.orichalcum-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.ornate", "common.items.mineral.ingot.orichalcum", Two)): "voxel.weapon.axe.ornate.orichalcum-2h", + ModularWeapon(("common.items.modular.weapon.primary.axe.poleaxe", "common.items.mineral.ingot.orichalcum", Two)): "voxel.weapon.axe.poleaxe.orichalcum-2h", + Simple("common.items.weapons.axe.starter_axe"): "voxel.weapon.axe.2haxe_rusty", + Simple("common.items.weapons.axe.malachite_axe-0"): "voxel.weapon.axe.2haxe_malachite-0", + Simple("common.items.weapons.axe.parashu"): "voxel.weapon.axe.parashu", + // 1h Axes + ModularWeapon(("common.items.modular.weapon.primary.axe.axe", "common.items.mineral.ingot.bronze", One)): "voxel.weapon.axe.axe.bronze-1h", + ModularWeapon(("common.items.modular.weapon.primary.axe.battleaxe", "common.items.mineral.ingot.bronze", One)): "voxel.weapon.axe.battleaxe.bronze-1h", + ModularWeapon(("common.items.modular.weapon.primary.axe.jagged", "common.items.mineral.ingot.bronze", One)): "voxel.weapon.axe.jagged.bronze-1h", + ModularWeapon(("common.items.modular.weapon.primary.axe.ornate", "common.items.mineral.ingot.bronze", One)): "voxel.weapon.axe.ornate.bronze-1h", + ModularWeapon(("common.items.modular.weapon.primary.axe.axe", "common.items.mineral.ingot.iron", One)): "voxel.weapon.axe.axe.iron-1h", + ModularWeapon(("common.items.modular.weapon.primary.axe.battleaxe", "common.items.mineral.ingot.iron", One)): "voxel.weapon.axe.battleaxe.iron-1h", + ModularWeapon(("common.items.modular.weapon.primary.axe.jagged", "common.items.mineral.ingot.iron", One)): "voxel.weapon.axe.jagged.iron-1h", + ModularWeapon(("common.items.modular.weapon.primary.axe.ornate", "common.items.mineral.ingot.iron", One)): "voxel.weapon.axe.ornate.iron-1h", + ModularWeapon(("common.items.modular.weapon.primary.axe.axe", "common.items.mineral.ingot.steel", One)): "voxel.weapon.axe.axe.steel-1h", + ModularWeapon(("common.items.modular.weapon.primary.axe.battleaxe", "common.items.mineral.ingot.steel", One)): "voxel.weapon.axe.battleaxe.steel-1h", + ModularWeapon(("common.items.modular.weapon.primary.axe.jagged", "common.items.mineral.ingot.steel", One)): "voxel.weapon.axe.jagged.steel-1h", + ModularWeapon(("common.items.modular.weapon.primary.axe.ornate", "common.items.mineral.ingot.steel", One)): "voxel.weapon.axe.ornate.steel-1h", + ModularWeapon(("common.items.modular.weapon.primary.axe.axe", "common.items.mineral.ingot.cobalt", One)): "voxel.weapon.axe.axe.cobalt-1h", + ModularWeapon(("common.items.modular.weapon.primary.axe.battleaxe", "common.items.mineral.ingot.cobalt", One)): "voxel.weapon.axe.battleaxe.cobalt-1h", + ModularWeapon(("common.items.modular.weapon.primary.axe.jagged", "common.items.mineral.ingot.cobalt", One)): "voxel.weapon.axe.jagged.cobalt-1h", + ModularWeapon(("common.items.modular.weapon.primary.axe.ornate", "common.items.mineral.ingot.cobalt", One)): "voxel.weapon.axe.ornate.cobalt-1h", + ModularWeapon(("common.items.modular.weapon.primary.axe.axe", "common.items.mineral.ingot.bloodsteel", One)): "voxel.weapon.axe.axe.bloodsteel-1h", + ModularWeapon(("common.items.modular.weapon.primary.axe.battleaxe", "common.items.mineral.ingot.bloodsteel", One)): "voxel.weapon.axe.battleaxe.bloodsteel-1h", + ModularWeapon(("common.items.modular.weapon.primary.axe.jagged", "common.items.mineral.ingot.bloodsteel", One)): "voxel.weapon.axe.jagged.bloodsteel-1h", + ModularWeapon(("common.items.modular.weapon.primary.axe.ornate", "common.items.mineral.ingot.bloodsteel", One)): "voxel.weapon.axe.ornate.bloodsteel-1h", + ModularWeapon(("common.items.modular.weapon.primary.axe.axe", "common.items.mineral.ingot.orichalcum", One)): "voxel.weapon.axe.axe.orichalcum-1h", + ModularWeapon(("common.items.modular.weapon.primary.axe.battleaxe", "common.items.mineral.ingot.orichalcum", One)): "voxel.weapon.axe.battleaxe.orichalcum-1h", + ModularWeapon(("common.items.modular.weapon.primary.axe.jagged", "common.items.mineral.ingot.orichalcum", One)): "voxel.weapon.axe.jagged.orichalcum-1h", + ModularWeapon(("common.items.modular.weapon.primary.axe.ornate", "common.items.mineral.ingot.orichalcum", One)):"voxel.weapon.axe.ornate.orichalcum-1h", + // Hammers + ModularWeapon(("common.items.modular.weapon.primary.hammer.greathammer", "common.items.mineral.ingot.bronze", Two)):"voxel.weapon.hammer.greathammer.bronze-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.greatmace", "common.items.mineral.ingot.bronze", Two)):"voxel.weapon.hammer.greatmace.bronze-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.hammer", "common.items.mineral.ingot.bronze", Two)):"voxel.weapon.hammer.hammer.bronze-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.maul", "common.items.mineral.ingot.bronze", Two)):"voxel.weapon.hammer.maul.bronze-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.ornate", "common.items.mineral.ingot.bronze", Two)):"voxel.weapon.hammer.ornate.bronze-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.spikedmace", "common.items.mineral.ingot.bronze", Two)):"voxel.weapon.hammer.spikedmace.bronze-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.warhammer", "common.items.mineral.ingot.bronze", Two)):"voxel.weapon.hammer.warhammer.bronze-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.greathammer", "common.items.mineral.ingot.iron", Two)):"voxel.weapon.hammer.greathammer.iron-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.greatmace", "common.items.mineral.ingot.iron", Two)):"voxel.weapon.hammer.greatmace.iron-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.hammer", "common.items.mineral.ingot.iron", Two)):"voxel.weapon.hammer.hammer.iron-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.maul", "common.items.mineral.ingot.iron", Two)):"voxel.weapon.hammer.maul.iron-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.ornate", "common.items.mineral.ingot.iron", Two)):"voxel.weapon.hammer.ornate.iron-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.spikedmace", "common.items.mineral.ingot.iron", Two)):"voxel.weapon.hammer.spikedmace.iron-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.warhammer", "common.items.mineral.ingot.iron", Two)):"voxel.weapon.hammer.warhammer.iron-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.greathammer", "common.items.mineral.ingot.steel", Two)):"voxel.weapon.hammer.greathammer.steel-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.greatmace", "common.items.mineral.ingot.steel", Two)):"voxel.weapon.hammer.greatmace.steel-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.hammer", "common.items.mineral.ingot.steel", Two)):"voxel.weapon.hammer.hammer.steel-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.maul", "common.items.mineral.ingot.steel", Two)):"voxel.weapon.hammer.maul.steel-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.ornate", "common.items.mineral.ingot.steel", Two)):"voxel.weapon.hammer.ornate.steel-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.spikedmace", "common.items.mineral.ingot.steel", Two)):"voxel.weapon.hammer.spikedmace.steel-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.warhammer", "common.items.mineral.ingot.steel", Two)):"voxel.weapon.hammer.warhammer.steel-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.greathammer", "common.items.mineral.ingot.cobalt", Two)):"voxel.weapon.hammer.greathammer.cobalt-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.greatmace", "common.items.mineral.ingot.cobalt", Two)):"voxel.weapon.hammer.greatmace.cobalt-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.hammer", "common.items.mineral.ingot.cobalt", Two)):"voxel.weapon.hammer.hammer.cobalt-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.maul", "common.items.mineral.ingot.cobalt", Two)):"voxel.weapon.hammer.maul.cobalt-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.ornate", "common.items.mineral.ingot.cobalt", Two)):"voxel.weapon.hammer.ornate.cobalt-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.spikedmace", "common.items.mineral.ingot.cobalt", Two)):"voxel.weapon.hammer.spikedmace.cobalt-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.warhammer", "common.items.mineral.ingot.cobalt", Two)):"voxel.weapon.hammer.warhammer.cobalt-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.greathammer", "common.items.mineral.ingot.bloodsteel", Two)):"voxel.weapon.hammer.greathammer.bloodsteel-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.greatmace", "common.items.mineral.ingot.bloodsteel", Two)):"voxel.weapon.hammer.greatmace.bloodsteel-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.hammer", "common.items.mineral.ingot.bloodsteel", Two)):"voxel.weapon.hammer.hammer.bloodsteel-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.maul", "common.items.mineral.ingot.bloodsteel", Two)):"voxel.weapon.hammer.maul.bloodsteel-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.ornate", "common.items.mineral.ingot.bloodsteel", Two)):"voxel.weapon.hammer.ornate.bloodsteel-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.spikedmace", "common.items.mineral.ingot.bloodsteel", Two)):"voxel.weapon.hammer.spikedmace.bloodsteel-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.warhammer", "common.items.mineral.ingot.bloodsteel", Two)):"voxel.weapon.hammer.warhammer.bloodsteel-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.greathammer", "common.items.mineral.ingot.orichalcum", Two)):"voxel.weapon.hammer.greathammer.orichalcum-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.greatmace", "common.items.mineral.ingot.orichalcum", Two)):"voxel.weapon.hammer.greatmace.orichalcum-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.hammer", "common.items.mineral.ingot.orichalcum", Two)):"voxel.weapon.hammer.hammer.orichalcum-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.maul", "common.items.mineral.ingot.orichalcum", Two)):"voxel.weapon.hammer.maul.orichalcum-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.ornate", "common.items.mineral.ingot.orichalcum", Two)):"voxel.weapon.hammer.ornate.orichalcum-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.spikedmace", "common.items.mineral.ingot.orichalcum", Two)):"voxel.weapon.hammer.spikedmace.orichalcum-2h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.warhammer", "common.items.mineral.ingot.orichalcum", Two)):"voxel.weapon.hammer.warhammer.orichalcum-2h", + Simple("common.items.weapons.hammer.hammer_1"): "voxel.weapon.hammer.2hhammer_rusty", + Simple("common.items.weapons.hammer.starter_hammer"): "voxel.weapon.hammer.2hhammer_rusty", + Simple("common.items.weapons.hammer.flimsy_hammer"): "voxel.weapon.hammer.2hhammer_flimsy", + Simple("common.items.weapons.hammer.mjolnir"): "voxel.weapon.hammer.2hhammer_mjolnir", + Simple("common.items.weapons.hammer.cultist_purp_2h-0"): "voxel.weapon.hammer.cult_purp-0", + Simple("common.items.weapons.hammer.burnt_drumstick"): "voxel.weapon.hammer.burnt_drumstick", + // 1h Hammers + ModularWeapon(("common.items.modular.weapon.primary.hammer.hammer", "common.items.mineral.ingot.bronze", One)): "voxel.weapon.hammer.hammer.bronze-1h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.ornate", "common.items.mineral.ingot.bronze", One)): "voxel.weapon.hammer.ornate.bronze-1h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.spikedmace", "common.items.mineral.ingot.bronze", One)): "voxel.weapon.hammer.spikedmace.bronze-1h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.warhammer", "common.items.mineral.ingot.bronze", One)): "voxel.weapon.hammer.warhammer.bronze-1h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.hammer", "common.items.mineral.ingot.iron", One)): "voxel.weapon.hammer.hammer.iron-1h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.ornate", "common.items.mineral.ingot.iron", One)): "voxel.weapon.hammer.ornate.iron-1h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.spikedmace", "common.items.mineral.ingot.iron", One)): "voxel.weapon.hammer.spikedmace.iron-1h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.warhammer", "common.items.mineral.ingot.iron", One)): "voxel.weapon.hammer.warhammer.iron-1h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.hammer", "common.items.mineral.ingot.steel", One)): "voxel.weapon.hammer.hammer.steel-1h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.ornate", "common.items.mineral.ingot.steel", One)): "voxel.weapon.hammer.ornate.steel-1h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.spikedmace", "common.items.mineral.ingot.steel", One)): "voxel.weapon.hammer.spikedmace.steel-1h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.warhammer", "common.items.mineral.ingot.steel", One)): "voxel.weapon.hammer.warhammer.steel-1h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.hammer", "common.items.mineral.ingot.cobalt", One)): "voxel.weapon.hammer.hammer.cobalt-1h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.ornate", "common.items.mineral.ingot.cobalt", One)): "voxel.weapon.hammer.ornate.cobalt-1h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.spikedmace", "common.items.mineral.ingot.cobalt", One)): "voxel.weapon.hammer.spikedmace.cobalt-1h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.warhammer", "common.items.mineral.ingot.cobalt", One)): "voxel.weapon.hammer.warhammer.cobalt-1h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.hammer", "common.items.mineral.ingot.bloodsteel", One)): "voxel.weapon.hammer.hammer.bloodsteel-1h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.ornate", "common.items.mineral.ingot.bloodsteel", One)): "voxel.weapon.hammer.ornate.bloodsteel-1h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.spikedmace", "common.items.mineral.ingot.bloodsteel", One)): "voxel.weapon.hammer.spikedmace.bloodsteel-1h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.warhammer", "common.items.mineral.ingot.bloodsteel", One)): "voxel.weapon.hammer.warhammer.bloodsteel-1h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.hammer", "common.items.mineral.ingot.orichalcum", One)): "voxel.weapon.hammer.hammer.orichalcum-1h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.ornate", "common.items.mineral.ingot.orichalcum", One)): "voxel.weapon.hammer.ornate.orichalcum-1h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.spikedmace", "common.items.mineral.ingot.orichalcum", One)): "voxel.weapon.hammer.spikedmace.orichalcum-1h", + ModularWeapon(("common.items.modular.weapon.primary.hammer.warhammer", "common.items.mineral.ingot.orichalcum", One)): "voxel.weapon.hammer.warhammer.orichalcum-1h", + + // Sceptres + ModularWeapon(("common.items.modular.weapon.primary.sceptre.arbor", "common.items.log.wood", Two)): "voxel.weapon.sceptre.arbor.wood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.cane", "common.items.log.wood", Two)): "voxel.weapon.sceptre.cane.wood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.crook", "common.items.log.wood", Two)): "voxel.weapon.sceptre.crook.wood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.crozier", "common.items.log.wood", Two)): "voxel.weapon.sceptre.crozier.wood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.ornate", "common.items.log.wood", Two)): "voxel.weapon.sceptre.ornate.wood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.grandsceptre", "common.items.log.wood", Two)): "voxel.weapon.sceptre.grandsceptre.wood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.sceptre", "common.items.log.wood", Two)): "voxel.weapon.sceptre.sceptre.wood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.arbor", "common.items.log.bamboo", Two)): "voxel.weapon.sceptre.arbor.bamboo", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.cane", "common.items.log.bamboo", Two)): "voxel.weapon.sceptre.cane.bamboo", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.crook", "common.items.log.bamboo", Two)): "voxel.weapon.sceptre.crook.bamboo", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.crozier", "common.items.log.bamboo", Two)): "voxel.weapon.sceptre.crozier.bamboo", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.ornate", "common.items.log.bamboo", Two)): "voxel.weapon.sceptre.ornate.bamboo", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.grandsceptre", "common.items.log.bamboo", Two)): "voxel.weapon.sceptre.grandsceptre.bamboo", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.sceptre", "common.items.log.bamboo", Two)): "voxel.weapon.sceptre.sceptre.bamboo", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.arbor", "common.items.log.hardwood", Two)): "voxel.weapon.sceptre.arbor.hardwood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.cane", "common.items.log.hardwood", Two)): "voxel.weapon.sceptre.cane.hardwood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.crook", "common.items.log.hardwood", Two)): "voxel.weapon.sceptre.crook.hardwood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.crozier", "common.items.log.hardwood", Two)): "voxel.weapon.sceptre.crozier.hardwood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.ornate", "common.items.log.hardwood", Two)): "voxel.weapon.sceptre.ornate.hardwood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.grandsceptre", "common.items.log.hardwood", Two)): "voxel.weapon.sceptre.grandsceptre.hardwood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.sceptre", "common.items.log.hardwood", Two)): "voxel.weapon.sceptre.sceptre.hardwood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.arbor", "common.items.log.ironwood", Two)): "voxel.weapon.sceptre.arbor.ironwood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.cane", "common.items.log.ironwood", Two)): "voxel.weapon.sceptre.cane.ironwood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.crook", "common.items.log.ironwood", Two)): "voxel.weapon.sceptre.crook.ironwood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.crozier", "common.items.log.ironwood", Two)): "voxel.weapon.sceptre.crozier.ironwood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.ornate", "common.items.log.ironwood", Two)): "voxel.weapon.sceptre.ornate.ironwood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.grandsceptre", "common.items.log.ironwood", Two)): "voxel.weapon.sceptre.grandsceptre.ironwood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.sceptre", "common.items.log.ironwood", Two)): "voxel.weapon.sceptre.sceptre.ironwood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.arbor", "common.items.log.frostwood", Two)): "voxel.weapon.sceptre.arbor.frostwood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.cane", "common.items.log.frostwood", Two)): "voxel.weapon.sceptre.cane.frostwood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.crook", "common.items.log.frostwood", Two)): "voxel.weapon.sceptre.crook.frostwood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.crozier", "common.items.log.frostwood", Two)): "voxel.weapon.sceptre.crozier.frostwood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.ornate", "common.items.log.frostwood", Two)): "voxel.weapon.sceptre.ornate.frostwood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.grandsceptre", "common.items.log.frostwood", Two)): "voxel.weapon.sceptre.grandsceptre.frostwood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.sceptre", "common.items.log.frostwood", Two)): "voxel.weapon.sceptre.sceptre.frostwood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.arbor", "common.items.log.eldwood", Two)): "voxel.weapon.sceptre.arbor.eldwood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.cane", "common.items.log.eldwood", Two)): "voxel.weapon.sceptre.cane.eldwood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.crook", "common.items.log.eldwood", Two)): "voxel.weapon.sceptre.crook.eldwood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.crozier", "common.items.log.eldwood", Two)): "voxel.weapon.sceptre.crozier.eldwood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.ornate", "common.items.log.eldwood", Two)): "voxel.weapon.sceptre.ornate.eldwood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.grandsceptre", "common.items.log.eldwood", Two)): "voxel.weapon.sceptre.grandsceptre.eldwood", + ModularWeapon(("common.items.modular.weapon.primary.sceptre.sceptre", "common.items.log.eldwood", Two)): "voxel.weapon.sceptre.sceptre.eldwood", + Simple("common.items.weapons.sceptre.starter_sceptre"): "voxel.weapon.sceptre.wood-simple", + Simple("common.items.weapons.sceptre.root_evil"): "voxel.weapon.sceptre.root_evil", + Simple("common.items.weapons.sceptre.sceptre_velorite_0"): "voxel.weapon.sceptre.ore-nature", + Simple("common.items.weapons.sceptre.caduceus"): "voxel.weapon.sceptre.caduceus", + Simple("common.items.weapons.sceptre.amethyst"): "voxel.weapon.sceptre.amethyst", + + // Daggers + Simple("common.items.weapons.dagger.starter_dagger"): "voxel.weapon.dagger.dagger_rusty", + Simple("common.items.weapons.dagger.basic_0"): "voxel.weapon.dagger.dagger_basic-0", + Simple("common.items.weapons.dagger.cultist_0"): "voxel.weapon.dagger.dagger_cult-0", + // Shields + Simple("common.items.weapons.shield.shield_1"): "voxel.weapon.shield.wood-0", + Simple("common.items.weapons.shield.starter_shield"): "voxel.weapon.shield.wood-1", + // Lanterns + Simple("common.items.lantern.black_0"): "voxel.lantern.black-0", + Simple("common.items.lantern.green_0"): "voxel.lantern.green-0", + Simple("common.items.boss_drops.lantern"): "voxel.lantern.magic_lantern", + Simple("common.items.lantern.blue_0"): "voxel.lantern.blue-0", + Simple("common.items.lantern.red_0"): "voxel.lantern.red-0", + Simple("common.items.lantern.geode_purp"): "voxel.lantern.geode_purp", + Simple("common.items.lantern.pumpkin"): "voxel.lantern.pumpkin", + Simple("common.items.lantern.polaris"): "voxel.lantern.polaris", + Simple("common.items.lantern.delvers_lamp"): "voxel.lantern.delvers_lamp", + // Farming Equipment + Simple("common.items.weapons.tool.broom"): "voxel.weapon.tool.broom-0", + Simple("common.items.weapons.tool.hoe"): "voxel.weapon.tool.hoe_green", + Simple("common.items.weapons.tool.pitchfork"): "voxel.weapon.tool.pitchfork-0", + Simple("common.items.weapons.tool.rake"): "voxel.weapon.tool.rake-0", + Simple("common.items.weapons.tool.fishing_rod"): "voxel.weapon.tool.fishing_rod_blue-0", + Simple("common.items.weapons.tool.pickaxe"): "voxel.weapon.tool.pickaxe_green-0", + Simple("common.items.weapons.tool.shovel-0"): "voxel.weapon.tool.shovel_green", + Simple("common.items.weapons.tool.shovel-1"): "voxel.weapon.tool.shovel_gold", + // Picks + Simple("common.items.tool.pickaxe_stone"): "voxel.weapon.tool.pickaxe_stone", + Simple("common.items.tool.pickaxe_steel"): "voxel.weapon.tool.pickaxe_green-1", + // Instruments + Simple("common.items.tool.instruments.double_bass"): "voxel.weapon.tool.wooden_bass", + Simple("common.items.tool.instruments.flute"): "voxel.weapon.tool.wooden_flute", + Simple("common.items.tool.instruments.glass_flute"): "voxel.weapon.tool.glass_flute", + Simple("common.items.tool.instruments.lyre"): "voxel.weapon.tool.wooden_lyre", + Simple("common.items.tool.instruments.wildskin_drum"): "voxel.weapon.tool.wildskin_drum", + Simple("common.items.tool.instruments.icy_talharpa"): "voxel.weapon.tool.icy_talharpa", + Simple("common.items.tool.instruments.washboard"): "voxel.weapon.tool.washboard", + Simple("common.items.tool.instruments.kalimba"): "voxel.weapon.tool.wooden_kalimba", + Simple("common.items.tool.instruments.melodica"): "voxel.weapon.tool.melodica", + Simple("common.items.tool.instruments.lute"): "voxel.weapon.tool.wooden_lute", + Simple("common.items.tool.instruments.steeltonguedrum"): "voxel.weapon.tool.steeltonguedrum", + Simple("common.items.tool.instruments.shamisen"): "voxel.weapon.tool.shamisen", + Simple("common.items.tool.instruments.sitar"): "voxel.weapon.tool.wooden_sitar", + Simple("common.items.tool.instruments.guitar"): "voxel.weapon.tool.wooden_guitar", + Simple("common.items.tool.instruments.guitar_dark"): "voxel.weapon.tool.black_velvet_guitar", + Simple("common.items.tool.instruments.kora"): "voxel.weapon.tool.kora", + Simple("common.items.tool.instruments.banjo"): "voxel.weapon.tool.banjo", + // Other + Simple("common.items.utility.coins"): "voxel.object.v-coin", + Simple("common.items.utility.collar"): "voxel.object.collar", + Simple("common.items.recipes.potions"): "voxel.object.recipe_alchemy", + Simple("common.items.recipes.explosives"): "voxel.object.recipe_alchemy", + Simple("common.items.recipes.charms"): "voxel.object.recipe_alchemy", + Simple("common.items.recipes.armor.iron"): "voxel.object.recipe_blacksmithing", + Simple("common.items.recipes.armor.steel"): "voxel.object.recipe_blacksmithing", + Simple("common.items.recipes.armor.cobalt"): "voxel.object.recipe_blacksmithing", + Simple("common.items.recipes.armor.bloodsteel"): "voxel.object.recipe_blacksmithing", + Simple("common.items.recipes.armor.orichalcum"): "voxel.object.recipe_blacksmithing", + Simple("common.items.recipes.armor.golemite"): "voxel.object.recipe_blacksmithing", + Simple("common.items.recipes.unique.polaris"): "voxel.object.recipe_blacksmithing", + Simple("common.items.recipes.unique.delvers_lamp"): "voxel.object.recipe_lapidary", + Simple("common.items.recipes.weapons.iron"): "voxel.object.recipe_blacksmithing", + Simple("common.items.recipes.weapons.steel"): "voxel.object.recipe_blacksmithing", + Simple("common.items.recipes.weapons.cobalt"): "voxel.object.recipe_blacksmithing", + Simple("common.items.recipes.weapons.bloodsteel"): "voxel.object.recipe_blacksmithing", + Simple("common.items.recipes.weapons.orichalcum"): "voxel.object.recipe_blacksmithing", + Simple("common.items.recipes.gliders"): "voxel.object.recipe_carpentry", + Simple("common.items.recipes.instruments"): "voxel.object.recipe_carpentry", + Simple("common.items.recipes.weapons.bamboo"): "voxel.object.recipe_carpentry", + Simple("common.items.recipes.weapons.hardwood"): "voxel.object.recipe_carpentry", + Simple("common.items.recipes.weapons.ironwood"): "voxel.object.recipe_carpentry", + Simple("common.items.recipes.weapons.frostwood"): "voxel.object.recipe_carpentry", + Simple("common.items.recipes.weapons.eldwood"): "voxel.object.recipe_carpentry", + Simple("common.items.recipes.food"): "voxel.object.recipe_cooking", + Simple("common.items.recipes.armor.brinestone"): "voxel.object.recipe_lapidary", + Simple("common.items.recipes.unique.abyssal_gorget"): "voxel.object.recipe_lapidary", + Simple("common.items.recipes.unique.abyssal_ring"): "voxel.object.recipe_lapidary", + Simple("common.items.recipes.unique.seashell_necklace"): "voxel.object.recipe_lapidary", + Simple("common.items.recipes.armor.leather"): "voxel.object.recipe_leatherworking", + Simple("common.items.recipes.armor.scale"): "voxel.object.recipe_leatherworking", + Simple("common.items.recipes.armor.carapace"): "voxel.object.recipe_leatherworking", + Simple("common.items.recipes.armor.primal"): "voxel.object.recipe_leatherworking", + Simple("common.items.recipes.armor.dragonscale"): "voxel.object.recipe_leatherworking", + Simple("common.items.recipes.unique.mindflayer_spellbag"): "voxel.object.recipe_leatherworking", + Simple("common.items.recipes.unique.troll_hide_pack"): "voxel.object.recipe_leatherworking", + Simple("common.items.recipes.unique.winged_coronet"): "voxel.object.recipe_leatherworking", + Simple("common.items.recipes.armor.woolen"): "voxel.object.recipe_weaving", + Simple("common.items.recipes.armor.silken"): "voxel.object.recipe_weaving", + Simple("common.items.recipes.armor.druid"): "voxel.object.recipe_weaving", + Simple("common.items.recipes.armor.moonweave"): "voxel.object.recipe_weaving", + Simple("common.items.recipes.armor.sunsilk"): "voxel.object.recipe_weaving", + Simple("common.items.recipes.utility"): "voxel.object.scroll", + Simple("common.items.recipes.equipment.basic"): "voxel.object.scroll", + Simple("common.items.recipes.equipment.moderate"): "voxel.object.scroll", + Simple("common.items.recipes.equipment.advanced"): "voxel.object.scroll", + // Armor + // Starter Parts + Simple("common.items.armor.misc.foot.sandals"): "voxel.armor.misc.foot.cloth_sandal", + Simple("common.items.armor.rugged.pants"): "voxel.armor.rugged.pants", + Simple("common.items.armor.rugged.chest"): "voxel.armor.rugged.chest", + Simple("common.items.armor.misc.chest.worker_purple_brown"): "voxel.armor.misc.chest.worker_purp_brown", + Simple("common.items.armor.misc.pants.worker_brown"): "voxel.armor.misc.pants.worker_brown", + // Cultist Clothing + Simple("common.items.armor.cultist.chest"): "voxel.armor.cultist.chest", + Simple("common.items.armor.cultist.pants"): "voxel.armor.cultist.pants", + Simple("common.items.armor.cultist.belt"): "voxel.armor.cultist.belt", + Simple("common.items.armor.cultist.foot"): "voxel.armor.cultist.foot", + Simple("common.items.armor.cultist.hand"): "voxel.armor.cultist.hand", + Simple("common.items.armor.cultist.shoulder"): "voxel.armor.cultist.shoulder", + Simple("common.items.armor.cultist.bandana"): "voxel.armor.cultist.bandana", + // Villager Clothing + Simple("common.items.armor.misc.pants.worker_blue"): "voxel.armor.misc.pants.worker_blue", + Simple("common.items.armor.misc.chest.worker_green_0"): "voxel.armor.misc.chest.worker_green", + Simple("common.items.armor.misc.chest.worker_green_1"): "voxel.armor.misc.chest.shirt_white", + Simple("common.items.armor.misc.chest.worker_red_0"): "voxel.armor.misc.chest.worker_green", + Simple("common.items.armor.misc.chest.worker_red_1"): "voxel.armor.misc.chest.shirt_white", + Simple("common.items.armor.misc.chest.worker_purple_0"): "voxel.armor.misc.chest.worker_green", + Simple("common.items.armor.misc.chest.worker_purple_1"): "voxel.armor.misc.chest.shirt_white", + Simple("common.items.armor.misc.chest.worker_yellow_0"): "voxel.armor.misc.chest.worker_green", + Simple("common.items.armor.misc.chest.worker_yellow_1"): "voxel.armor.misc.chest.shirt_white", + Simple("common.items.armor.misc.chest.worker_orange_0"): "voxel.armor.misc.chest.worker_green", + Simple("common.items.armor.misc.chest.worker_orange_1"): "voxel.armor.misc.chest.shirt_white", + // Merchant + Simple("common.items.armor.merchant.chest"): "voxel.armor.merchant.chest", + Simple("common.items.armor.merchant.pants"): "voxel.armor.merchant.pants", + Simple("common.items.armor.merchant.belt"): "voxel.armor.merchant.belt", + Simple("common.items.armor.merchant.foot"): "voxel.armor.merchant.foot", + Simple("common.items.armor.merchant.hand"): "voxel.armor.merchant.hand", + Simple("common.items.armor.merchant.shoulder"): "voxel.armor.merchant.shoulder_l", + Simple("common.items.armor.merchant.turban"): "voxel.armor.merchant.turban", + Simple("common.items.armor.merchant.back"): "voxel.armor.merchant.back", + // Velorite Battlemage Set + Simple("common.items.armor.velorite_mage.chest"): "voxel.armor.velorite_battlemage.chest", + Simple("common.items.armor.velorite_mage.pants"): "voxel.armor.velorite_battlemage.pants", + Simple("common.items.armor.velorite_mage.belt"): "voxel.armor.velorite_battlemage.belt", + Simple("common.items.armor.velorite_mage.foot"): "voxel.armor.velorite_battlemage.foot", + Simple("common.items.armor.velorite_mage.hand"): "voxel.armor.velorite_battlemage.hand", + Simple("common.items.armor.velorite_mage.shoulder"): "voxel.armor.velorite_battlemage.shoulder", + Simple("common.items.armor.velorite_mage.back"): "voxel.armor.velorite_battlemage.back", + // Assassin Set + Simple("common.items.armor.assassin.chest"): "voxel.armor.assassin.chest", + Simple("common.items.armor.assassin.pants"): "voxel.armor.assassin.pants", + Simple("common.items.armor.assassin.belt"): "voxel.armor.assassin.belt", + Simple("common.items.armor.assassin.foot"): "voxel.armor.assassin.foot", + Simple("common.items.armor.assassin.hand"): "voxel.armor.assassin.hand", + Simple("common.items.armor.assassin.shoulder"): "voxel.armor.assassin.shoulder", + //PlateLeather Armor + Simple("common.items.armor.leather_plate.chest"): "voxel.armor.leather_plate.chest", + Simple("common.items.armor.leather_plate.pants"): "voxel.armor.leather_plate.pants", + Simple("common.items.armor.leather_plate.belt"): "voxel.armor.leather_plate.belt", + Simple("common.items.armor.leather_plate.foot"): "voxel.armor.leather_plate.foot", + Simple("common.items.armor.leather_plate.hand"): "voxel.armor.leather_plate.hand", + Simple("common.items.armor.leather_plate.shoulder"): "voxel.armor.leather_plate.shoulder", + //Ferocious Armor + Simple("common.items.armor.ferocious.chest"): "voxel.armor.ferocious.chest", + Simple("common.items.armor.ferocious.pants"): "voxel.armor.ferocious.pants", + Simple("common.items.armor.ferocious.belt"): "voxel.armor.ferocious.belt", + Simple("common.items.armor.ferocious.foot"): "voxel.armor.ferocious.foot", + Simple("common.items.armor.ferocious.hand"): "voxel.armor.ferocious.hand", + Simple("common.items.armor.ferocious.shoulder"): "voxel.armor.ferocious.shoulder", + Simple("common.items.armor.ferocious.back"): "voxel.armor.ferocious.back", + //Boreal Armor + Simple("common.items.armor.boreal.chest"): "voxel.armor.boreal.chest", + Simple("common.items.armor.boreal.pants"): "voxel.armor.boreal.pants", + Simple("common.items.armor.boreal.belt"): "voxel.armor.boreal.belt", + Simple("common.items.armor.boreal.foot"): "voxel.armor.boreal.foot", + Simple("common.items.armor.boreal.hand"): "voxel.armor.boreal.hand", + Simple("common.items.armor.boreal.shoulder"): "voxel.armor.boreal.shoulder", + Simple("common.items.armor.boreal.back"): "voxel.armor.boreal.back", + //Brinestone Armor + Simple("common.items.armor.brinestone.chest"): "voxel.armor.brinestone.chest", + Simple("common.items.armor.brinestone.pants"): "voxel.armor.brinestone.pants", + Simple("common.items.armor.brinestone.belt"): "voxel.armor.brinestone.belt", + Simple("common.items.armor.brinestone.foot"): "voxel.armor.brinestone.foot", + Simple("common.items.armor.brinestone.hand"): "voxel.armor.brinestone.hand", + Simple("common.items.armor.brinestone.shoulder"): "voxel.armor.brinestone.shoulder", + Simple("common.items.armor.brinestone.back"): "voxel.armor.brinestone.back", + Simple("common.items.armor.brinestone.crown"): "voxel.armor.brinestone.crown", + //Blue Leather Armor + Simple("common.items.npc_armor.chest.leather_blue"): "voxel.armor.leather_blue.chest", + Simple("common.items.npc_armor.pants.leather_blue"): "voxel.armor.leather_blue.pants", + //Linen Cloth + Simple("common.items.armor.cloth_blue.chest"): "voxel.armor.cloth_blue.chest", + Simple("common.items.armor.cloth_blue.pants"): "voxel.armor.cloth_blue.pants", + Simple("common.items.armor.cloth_blue.belt"): "voxel.armor.cloth_blue.belt", + Simple("common.items.armor.cloth_blue.foot"): "voxel.armor.cloth_blue.foot", + Simple("common.items.armor.cloth_blue.hand"): "voxel.armor.cloth_blue.hand", + Simple("common.items.armor.cloth_blue.shoulder_0"): "voxel.armor.cloth_blue.shoulder_0", + Simple("common.items.armor.cloth_blue.shoulder_1"): "voxel.armor.cloth_blue.shoulder_1", + ////////////// + Simple("common.items.armor.cloth_green.chest"): "voxel.armor.cloth_green.chest", + Simple("common.items.armor.cloth_green.pants"): "voxel.armor.cloth_green.pants", + Simple("common.items.armor.cloth_green.belt"): "voxel.armor.cloth_green.belt", + Simple("common.items.armor.cloth_green.foot"): "voxel.armor.cloth_green.foot", + Simple("common.items.armor.cloth_green.hand"): "voxel.armor.cloth_green.hand", + Simple("common.items.armor.cloth_green.shoulder"): "voxel.armor.cloth_green.shoulder", + ////// + Simple("common.items.armor.cloth_purple.chest"): "voxel.armor.cloth_purple.chest", + Simple("common.items.armor.cloth_purple.pants"): "voxel.armor.cloth_purple.pants", + Simple("common.items.armor.cloth_purple.belt"): "voxel.armor.cloth_purple.belt", + Simple("common.items.armor.cloth_purple.foot"): "voxel.armor.cloth_purple.foot", + Simple("common.items.armor.cloth_purple.hand"): "voxel.armor.cloth_purple.hand", + Simple("common.items.armor.cloth_purple.shoulder"): "voxel.armor.cloth_purple.shoulder", + Simple("common.items.armor.misc.shoulder.iron_spikes"): "voxel.armor.misc.shoulder.iron_spikes", + Simple("common.items.armor.misc.shoulder.leather_iron_3"): "voxel.armor.misc.shoulder.leather_iron_3", + Simple("common.items.armor.misc.shoulder.leather_iron_2"): "voxel.armor.misc.shoulder.leather_iron_2", + Simple("common.items.armor.misc.shoulder.leather_iron_1"): "voxel.armor.misc.shoulder.leather_iron_1", + Simple("common.items.armor.misc.shoulder.leather_iron_0"): "voxel.armor.misc.shoulder.leather_iron_0", + Simple("common.items.armor.misc.shoulder.leather_strip"): "voxel.armor.misc.shoulder.leather_strip", + Simple("common.items.armor.misc.foot.jackalope_slippers"): "voxel.armor.misc.foot.jackalope", + //Twig Set + Simple("common.items.armor.twigs.chest"): "voxel.armor.twigs.chest", + Simple("common.items.armor.twigs.pants"): "voxel.armor.twigs.pants", + Simple("common.items.armor.twigs.belt"): "voxel.armor.twigs.belt", + Simple("common.items.armor.twigs.foot"): "voxel.armor.twigs.foot", + Simple("common.items.armor.twigs.hand"): "voxel.armor.twigs.hand", + Simple("common.items.armor.twigs.shoulder"): "voxel.armor.twigs.shoulder", + //TwigsLeaves Set + Simple("common.items.armor.twigsleaves.chest"): "voxel.armor.twigsleaves.chest", + Simple("common.items.armor.twigsleaves.pants"): "voxel.armor.twigsleaves.pants", + Simple("common.items.armor.twigsleaves.belt"): "voxel.armor.twigsleaves.belt", + Simple("common.items.armor.twigsleaves.foot"): "voxel.armor.twigsleaves.foot", + Simple("common.items.armor.twigsleaves.hand"): "voxel.armor.twigsleaves.hand", + Simple("common.items.armor.twigsleaves.shoulder"): "voxel.armor.twigsleaves.shoulder", + //TwigsFlowers Set + Simple("common.items.armor.twigsflowers.chest"): "voxel.armor.twigsflowers.chest", + Simple("common.items.armor.twigsflowers.pants"): "voxel.armor.twigsflowers.pants", + Simple("common.items.armor.twigsflowers.belt"): "voxel.armor.twigsflowers.belt", + Simple("common.items.armor.twigsflowers.foot"): "voxel.armor.twigsflowers.foot", + Simple("common.items.armor.twigsflowers.hand"): "voxel.armor.twigsflowers.hand", + Simple("common.items.armor.twigsflowers.shoulder"): "voxel.armor.twigsflowers.shoulder", + //Tarasque Set + Simple("common.items.armor.tarasque.chest"): "voxel.armor.tarasque.chest", + Simple("common.items.armor.tarasque.pants"): "voxel.armor.tarasque.pants", + Simple("common.items.armor.tarasque.belt"): "voxel.armor.tarasque.belt", + Simple("common.items.armor.tarasque.foot"): "voxel.armor.tarasque.foot", + Simple("common.items.armor.tarasque.hand"): "voxel.armor.tarasque.hand", + Simple("common.items.armor.tarasque.shoulder"): "voxel.armor.tarasque.shoulder", + //Bonerattler Set + Simple("common.items.armor.bonerattler.chest"): "voxel.armor.bonerattler.chest", + Simple("common.items.armor.bonerattler.pants"): "voxel.armor.bonerattler.pants", + Simple("common.items.armor.bonerattler.belt"): "voxel.armor.bonerattler.belt", + Simple("common.items.armor.bonerattler.foot"): "voxel.armor.bonerattler.foot", + Simple("common.items.armor.bonerattler.hand"): "voxel.armor.bonerattler.hand", + Simple("common.items.armor.bonerattler.shoulder"): "voxel.armor.bonerattler.shoulder", + //Rawhide Set + Simple("common.items.armor.hide.rawhide.chest"): "voxel.armor.hide.rawhide.chest", + Simple("common.items.armor.hide.rawhide.pants"): "voxel.armor.hide.rawhide.pants", + Simple("common.items.armor.hide.rawhide.belt"): "voxel.armor.hide.rawhide.belt", + Simple("common.items.armor.hide.rawhide.foot"): "voxel.armor.hide.rawhide.foot", + Simple("common.items.armor.hide.rawhide.hand"): "voxel.armor.hide.rawhide.hand", + Simple("common.items.armor.hide.rawhide.shoulder"): "voxel.armor.hide.rawhide.shoulder", + Simple("common.items.armor.hide.rawhide.back"): "voxel.armor.hide.rawhide.back", + //Leather set + Simple("common.items.armor.hide.leather.chest"): "voxel.armor.hide.leather.chest", + Simple("common.items.armor.hide.leather.pants"): "voxel.armor.hide.leather.pants", + Simple("common.items.armor.hide.leather.belt"): "voxel.armor.hide.leather.belt", + Simple("common.items.armor.hide.leather.foot"): "voxel.armor.hide.leather.foot", + Simple("common.items.armor.hide.leather.hand"): "voxel.armor.hide.leather.hand", + Simple("common.items.armor.hide.leather.shoulder"): "voxel.armor.hide.leather.shoulder", + Simple("common.items.armor.hide.leather.back"): "voxel.armor.hide.leather.back", + //Scale Set + Simple("common.items.armor.hide.scale.chest"): "voxel.armor.hide.scale.chest", + Simple("common.items.armor.hide.scale.pants"): "voxel.armor.hide.scale.pants", + Simple("common.items.armor.hide.scale.belt"): "voxel.armor.hide.scale.belt", + Simple("common.items.armor.hide.scale.foot"): "voxel.armor.hide.scale.foot", + Simple("common.items.armor.hide.scale.hand"): "voxel.armor.hide.scale.hand", + Simple("common.items.armor.hide.scale.shoulder"): "voxel.armor.hide.scale.shoulder", + Simple("common.items.armor.hide.scale.back"): "voxel.armor.hide.scale.back", + //Carapace Set + Simple("common.items.armor.hide.carapace.chest"): "voxel.armor.hide.carapace.chest", + Simple("common.items.armor.hide.carapace.pants"): "voxel.armor.hide.carapace.pants", + Simple("common.items.armor.hide.carapace.belt"): "voxel.armor.hide.carapace.belt", + Simple("common.items.armor.hide.carapace.foot"): "voxel.armor.hide.carapace.foot", + Simple("common.items.armor.hide.carapace.hand"): "voxel.armor.hide.carapace.hand", + Simple("common.items.armor.hide.carapace.shoulder"): "voxel.armor.hide.carapace.shoulder", + Simple("common.items.armor.hide.carapace.back"): "voxel.armor.hide.carapace.back", + //Primal Set + Simple("common.items.armor.hide.primal.chest"): "voxel.armor.hide.primal.chest", + Simple("common.items.armor.hide.primal.pants"): "voxel.armor.hide.primal.pants", + Simple("common.items.armor.hide.primal.belt"): "voxel.armor.hide.primal.belt", + Simple("common.items.armor.hide.primal.foot"): "voxel.armor.hide.primal.foot", + Simple("common.items.armor.hide.primal.hand"): "voxel.armor.hide.primal.hand", + Simple("common.items.armor.hide.primal.shoulder"): "voxel.armor.hide.primal.shoulder", + Simple("common.items.armor.hide.primal.back"): "voxel.armor.hide.primal.back", + //Dragonscale Set + Simple("common.items.armor.hide.dragonscale.chest"): "voxel.armor.hide.dragonscale.chest", + Simple("common.items.armor.hide.dragonscale.pants"): "voxel.armor.hide.dragonscale.pants", + Simple("common.items.armor.hide.dragonscale.belt"): "voxel.armor.hide.dragonscale.belt", + Simple("common.items.armor.hide.dragonscale.foot"): "voxel.armor.hide.dragonscale.foot", + Simple("common.items.armor.hide.dragonscale.hand"): "voxel.armor.hide.dragonscale.hand", + Simple("common.items.armor.hide.dragonscale.shoulder"): "voxel.armor.hide.dragonscale.shoulder", + Simple("common.items.armor.hide.dragonscale.back"): "voxel.armor.hide.dragonscale.back", + //Savage Set + Simple("common.items.armor.savage.chest"): "voxel.armor.savage.chest", + Simple("common.items.armor.savage.pants"): "voxel.armor.savage.pants", + Simple("common.items.armor.savage.belt"): "voxel.armor.savage.belt", + Simple("common.items.armor.savage.foot"): "voxel.armor.savage.foot", + Simple("common.items.armor.savage.hand"): "voxel.armor.savage.hand", + Simple("common.items.armor.savage.shoulder"): "voxel.armor.savage.shoulder", + Simple("common.items.armor.savage.back"): "voxel.armor.savage.back", + //Linen Set + Simple("common.items.armor.cloth.linen.chest"): "voxel.armor.cloth.linen.chest", + Simple("common.items.armor.cloth.linen.pants"): "voxel.armor.cloth.linen.pants", + Simple("common.items.armor.cloth.linen.belt"): "voxel.armor.cloth.linen.belt", + Simple("common.items.armor.cloth.linen.foot"): "voxel.armor.cloth.linen.foot", + Simple("common.items.armor.cloth.linen.hand"): "voxel.armor.cloth.linen.hand", + Simple("common.items.armor.cloth.linen.shoulder"): "voxel.armor.cloth.linen.shoulder", + Simple("common.items.armor.cloth.linen.back"): "voxel.armor.cloth.linen.back", + //Woolen Set + Simple("common.items.armor.cloth.woolen.chest"): "voxel.armor.cloth.woolen.chest", + Simple("common.items.armor.cloth.woolen.pants"): "voxel.armor.cloth.woolen.pants", + Simple("common.items.armor.cloth.woolen.belt"): "voxel.armor.cloth.woolen.belt", + Simple("common.items.armor.cloth.woolen.foot"): "voxel.armor.cloth.woolen.foot", + Simple("common.items.armor.cloth.woolen.hand"): "voxel.armor.cloth.woolen.hand", + Simple("common.items.armor.cloth.woolen.shoulder"): "voxel.armor.cloth.woolen.shoulder", + Simple("common.items.armor.cloth.woolen.back"): "voxel.armor.cloth.woolen.back", + //Silken Set + Simple("common.items.armor.cloth.silken.chest"): "voxel.armor.cloth.silken.chest", + Simple("common.items.armor.cloth.silken.pants"): "voxel.armor.cloth.silken.pants", + Simple("common.items.armor.cloth.silken.belt"): "voxel.armor.cloth.silken.belt", + Simple("common.items.armor.cloth.silken.foot"): "voxel.armor.cloth.silken.foot", + Simple("common.items.armor.cloth.silken.hand"): "voxel.armor.cloth.silken.hand", + Simple("common.items.armor.cloth.silken.shoulder"): "voxel.armor.cloth.silken.shoulder", + Simple("common.items.armor.cloth.silken.back"): "voxel.armor.cloth.silken.back", + //Druid Set + Simple("common.items.armor.cloth.druid.chest"): "voxel.armor.cloth.druid.chest", + Simple("common.items.armor.cloth.druid.pants"): "voxel.armor.cloth.druid.pants", + Simple("common.items.armor.cloth.druid.belt"): "voxel.armor.cloth.druid.belt", + Simple("common.items.armor.cloth.druid.foot"): "voxel.armor.cloth.druid.foot", + Simple("common.items.armor.cloth.druid.hand"): "voxel.armor.cloth.druid.hand", + Simple("common.items.armor.cloth.druid.shoulder"): "voxel.armor.cloth.druid.shoulder", + Simple("common.items.armor.cloth.druid.back"): "voxel.armor.cloth.druid.back", + //Moonweave Set + Simple("common.items.armor.cloth.moonweave.chest"): "voxel.armor.cloth.moonweave.chest", + Simple("common.items.armor.cloth.moonweave.pants"): "voxel.armor.cloth.moonweave.pants", + Simple("common.items.armor.cloth.moonweave.belt"): "voxel.armor.cloth.moonweave.belt", + Simple("common.items.armor.cloth.moonweave.foot"): "voxel.armor.cloth.moonweave.foot", + Simple("common.items.armor.cloth.moonweave.hand"): "voxel.armor.cloth.moonweave.hand", + Simple("common.items.armor.cloth.moonweave.shoulder"): "voxel.armor.cloth.moonweave.shoulder", + Simple("common.items.armor.cloth.moonweave.back"): "voxel.armor.cloth.moonweave.back", + //Sunsilk Set + Simple("common.items.armor.cloth.sunsilk.chest"): "voxel.armor.cloth.sunsilk.chest", + Simple("common.items.armor.cloth.sunsilk.pants"): "voxel.armor.cloth.sunsilk.pants", + Simple("common.items.armor.cloth.sunsilk.belt"): "voxel.armor.cloth.sunsilk.belt", + Simple("common.items.armor.cloth.sunsilk.foot"): "voxel.armor.cloth.sunsilk.foot", + Simple("common.items.armor.cloth.sunsilk.hand"): "voxel.armor.cloth.sunsilk.hand", + Simple("common.items.armor.cloth.sunsilk.shoulder"): "voxel.armor.cloth.sunsilk.shoulder", + Simple("common.items.armor.cloth.sunsilk.back"): "voxel.armor.cloth.sunsilk.back", + //Bronze Set + Simple("common.items.armor.mail.bronze.chest"): "voxel.armor.mail.bronze.chest", + Simple("common.items.armor.mail.bronze.pants"): "voxel.armor.mail.bronze.pants", + Simple("common.items.armor.mail.bronze.belt"): "voxel.armor.mail.bronze.belt", + Simple("common.items.armor.mail.bronze.foot"): "voxel.armor.mail.bronze.foot", + Simple("common.items.armor.mail.bronze.hand"): "voxel.armor.mail.bronze.hand", + Simple("common.items.armor.mail.bronze.shoulder"): "voxel.armor.mail.bronze.shoulder", + Simple("common.items.armor.mail.bronze.back"): "voxel.armor.mail.bronze.back", + //Iron Set + Simple("common.items.armor.mail.iron.chest"): "voxel.armor.mail.iron.chest", + Simple("common.items.armor.mail.iron.pants"): "voxel.armor.mail.iron.pants", + Simple("common.items.armor.mail.iron.belt"): "voxel.armor.mail.iron.belt", + Simple("common.items.armor.mail.iron.foot"): "voxel.armor.mail.iron.foot", + Simple("common.items.armor.mail.iron.hand"): "voxel.armor.mail.iron.hand", + Simple("common.items.armor.mail.iron.shoulder"): "voxel.armor.mail.iron.shoulder", + Simple("common.items.armor.mail.iron.back"): "voxel.armor.mail.iron.back", + //Steel Set + Simple("common.items.armor.mail.steel.chest"): "voxel.armor.mail.steel.chest", + Simple("common.items.armor.mail.steel.pants"): "voxel.armor.mail.steel.pants", + Simple("common.items.armor.mail.steel.belt"): "voxel.armor.mail.steel.belt", + Simple("common.items.armor.mail.steel.foot"): "voxel.armor.mail.steel.foot", + Simple("common.items.armor.mail.steel.hand"): "voxel.armor.mail.steel.hand", + Simple("common.items.armor.mail.steel.shoulder"): "voxel.armor.mail.steel.shoulder", + Simple("common.items.armor.mail.steel.back"): "voxel.armor.mail.steel.back", + //Cobalt Set + Simple("common.items.armor.mail.cobalt.chest"): "voxel.armor.mail.cobalt.chest", + Simple("common.items.armor.mail.cobalt.pants"): "voxel.armor.mail.cobalt.pants", + Simple("common.items.armor.mail.cobalt.belt"): "voxel.armor.mail.cobalt.belt", + Simple("common.items.armor.mail.cobalt.foot"): "voxel.armor.mail.cobalt.foot", + Simple("common.items.armor.mail.cobalt.hand"): "voxel.armor.mail.cobalt.hand", + Simple("common.items.armor.mail.cobalt.shoulder"): "voxel.armor.mail.cobalt.shoulder", + Simple("common.items.armor.mail.cobalt.back"): "voxel.armor.mail.cobalt.back", + //Bloodsteel Set + Simple("common.items.armor.mail.bloodsteel.chest"): "voxel.armor.mail.bloodsteel.chest", + Simple("common.items.armor.mail.bloodsteel.pants"): "voxel.armor.mail.bloodsteel.pants", + Simple("common.items.armor.mail.bloodsteel.belt"): "voxel.armor.mail.bloodsteel.belt", + Simple("common.items.armor.mail.bloodsteel.foot"): "voxel.armor.mail.bloodsteel.foot", + Simple("common.items.armor.mail.bloodsteel.hand"): "voxel.armor.mail.bloodsteel.hand", + Simple("common.items.armor.mail.bloodsteel.shoulder"): "voxel.armor.mail.bloodsteel.shoulder", + Simple("common.items.armor.mail.bloodsteel.back"): "voxel.armor.mail.bloodsteel.back", + //Orichalcum Set + Simple("common.items.armor.mail.orichalcum.chest"): ("voxel.armor.mail.orichalcum", 2), + Simple("common.items.armor.mail.orichalcum.pants"): ("voxel.armor.mail.orichalcum", 6), + Simple("common.items.armor.mail.orichalcum.belt"): ("voxel.armor.mail.orichalcum", 1), + Simple("common.items.armor.mail.orichalcum.foot"): ("voxel.armor.mail.orichalcum", 3), + Simple("common.items.armor.mail.orichalcum.hand"): ("voxel.armor.mail.orichalcum", 4), + Simple("common.items.armor.mail.orichalcum.shoulder"): ("voxel.armor.mail.orichalcum", 7), + Simple("common.items.armor.mail.orichalcum.back"): ("voxel.armor.mail.orichalcum", 0), + Simple("common.items.armor.mail.orichalcum.head"): ("voxel.armor.mail.orichalcum", 5), + //Golemite Set + Simple("common.items.armor.golemite.chest"): ("voxel.armor.golemite.golemite", 1), + Simple("common.items.armor.golemite.pants"): ("voxel.armor.golemite.golemite", 7), + Simple("common.items.armor.golemite.belt"): ("voxel.armor.golemite.golemite", 6), + Simple("common.items.armor.golemite.foot"): ("voxel.armor.golemite.golemite", 3), + Simple("common.items.armor.golemite.hand"): ("voxel.armor.golemite.golemite", 4), + Simple("common.items.armor.golemite.shoulder"): ("voxel.armor.golemite.golemite", 5), + Simple("common.items.armor.golemite.back"): ("voxel.armor.golemite.golemite", 2), + Simple("common.items.armor.golemite.helmet"): ("voxel.armor.golemite.golemite", 0), + //misc + Simple("common.items.armor.misc.pants.hunting"): "voxel.armor.misc.pants.grayscale", + // Backs + Simple("common.items.armor.misc.back.short_0"): "voxel.armor.misc.back.short-0", + Simple("common.items.armor.misc.back.short_1"): "voxel.armor.misc.back.short-1", + Simple("common.items.armor.misc.back.admin"): "voxel.armor.misc.back.admin", + Simple("common.items.debug.admin_back"): "voxel.armor.misc.back.admin", + Simple("common.items.armor.misc.back.dungeon_purple"): "voxel.armor.misc.back.dungeon_purple", + Simple("common.items.npc_armor.back.leather_blue"): "voxel.armor.leather_blue.back", + Simple("common.items.armor.misc.back.backpack"): "voxel.armor.misc.back.backpack", + Simple("common.items.npc_armor.back.backpack_blue"): "voxel.armor.misc.back.backpack", + //Hats + Simple("common.items.armor.witch.hat"): "voxel.armor.witch.hat", + Simple("common.items.armor.misc.head.hog_hood"): "voxel.armor.misc.head.hog_hood", + Simple("common.items.armor.misc.head.howl_cowl"): "voxel.armor.misc.head.howl_cowl", + Simple("common.items.armor.misc.head.bear_bonnet"): "voxel.armor.misc.head.bear_bonnet", + Simple("common.items.armor.misc.head.bamboo_twig"): "voxel.armor.misc.head.bamboo_twig", + Simple("common.items.armor.pirate.hat"): "voxel.armor.pirate.hat", + Simple("common.items.armor.misc.head.bandana.thief"): "voxel.armor.misc.head.bandana.thief", + Simple("common.items.armor.misc.head.wanderers_hat"): "voxel.armor.misc.head.wanderers_hat", + Simple("common.items.armor.misc.head.bandana.red"): "voxel.armor.misc.head.bandana.red", + Simple("common.items.armor.misc.head.straw"): "voxel.armor.misc.head.straw", + Simple("common.items.armor.misc.head.hood"): "voxel.armor.misc.head.hood", + Simple("common.items.armor.misc.head.hood_dark"): "voxel.armor.misc.head.hood_dark", + Simple("common.items.armor.misc.head.crown"): "voxel.armor.misc.head.crown", + Simple("common.items.armor.misc.head.mitre"): "voxel.armor.misc.head.mitre", + Simple("common.items.armor.misc.head.spikeguard"): "voxel.armor.misc.head.spikeguard", + Simple("common.items.armor.misc.head.facegourd"): "voxel.armor.misc.head.facegourd", + Simple("common.items.armor.misc.head.winged_coronet"): "voxel.armor.misc.head.winged_coronet", + Simple("common.items.armor.misc.head.boreal_warhelm"): "voxel.armor.misc.head.boreal_warhelm", + Simple("common.items.calendar.christmas.armor.misc.head.woolly_wintercap"): "voxel.armor.misc.head.woolly_wintercap", + Simple("common.items.armor.misc.head.helmet"): "voxel.armor.misc.head.helmet", + Simple("common.items.armor.misc.head.gnarling_mask"): "voxel.armor.misc.head.gnarling_mask_drop", + Simple("common.items.armor.miner.helmet"): "voxel.armor.miner.helmet", + Simple("common.items.armor.misc.head.hare_hat"): "voxel.armor.misc.head.hare_hat", + Simple("common.items.armor.misc.head.cat_capuche"): "voxel.armor.misc.head.cat_capuche", + Simple("common.items.armor.misc.head.scarlet_spectacles"): "voxel.armor.misc.head.scarlet_spectacles.scarlet_spectacles", + // Rings + Simple("common.items.armor.misc.ring.scratched"): "voxel.armor.misc.ring.scratched", + Simple("common.items.armor.misc.ring.gold"): "voxel.armor.misc.ring.gold", + Simple("common.items.armor.misc.ring.topaz"): "voxel.armor.misc.ring.topaz", + Simple("common.items.armor.misc.ring.amethyst"): "voxel.armor.misc.ring.amethyst", + Simple("common.items.armor.misc.ring.sapphire"): "voxel.armor.misc.ring.sapphire", + Simple("common.items.armor.misc.ring.emerald"): "voxel.armor.misc.ring.emerald", + Simple("common.items.armor.misc.ring.ruby"): "voxel.armor.misc.ring.ruby", + Simple("common.items.armor.misc.ring.diamond"): "voxel.armor.misc.ring.diamond", + Simple("common.items.armor.cultist.ring"): "voxel.armor.cultist.ring", + Simple("common.items.armor.misc.ring.abyssal_ring"): "voxel.armor.misc.ring.abyssal_ring", + // Necks + Simple("common.items.armor.misc.neck.ankh_of_life"): "voxel.armor.misc.neck.ankh_of_life", + Simple("common.items.armor.misc.neck.carcanet_of_wrath"): "voxel.armor.misc.neck.carcanet_of_wrath", + Simple("common.items.armor.misc.neck.fang"): "voxel.armor.misc.neck.fang", + Simple("common.items.armor.misc.neck.honeycomb_pendant"): "voxel.armor.misc.neck.honeycomb_pendant", + Simple("common.items.armor.misc.neck.haniwa_talisman"): "voxel.armor.misc.neck.haniwa_talisman", + Simple("common.items.armor.misc.neck.pendant_of_protection"): "voxel.armor.misc.neck.pendant_of_protection", + Simple("common.items.armor.misc.neck.gem_of_resilience"): "voxel.armor.misc.neck.resilience_gem", + Simple("common.items.armor.misc.neck.shell"): "voxel.armor.misc.neck.shell", + Simple("common.items.armor.misc.neck.amethyst"): "voxel.armor.misc.neck.amethyst", + Simple("common.items.armor.misc.neck.abyssal_gorget"): "voxel.armor.misc.neck.abyssal_gorget", + Simple("common.items.armor.misc.neck.diamond"): "voxel.armor.misc.neck.diamond", + Simple("common.items.armor.cultist.necklace"): "voxel.armor.cultist.necklace", + Simple("common.items.armor.misc.neck.ruby"): "voxel.armor.misc.neck.ruby", + Simple("common.items.armor.misc.neck.topaz"): "voxel.armor.misc.neck.topaz", + Simple("common.items.armor.misc.neck.emerald"): "voxel.armor.misc.neck.emerald", + Simple("common.items.armor.misc.neck.gold"): "voxel.armor.misc.neck.gold", + Simple("common.items.armor.misc.neck.sapphire"): "voxel.armor.misc.neck.sapphire", + Simple("common.items.armor.misc.neck.scratched"): "voxel.armor.misc.neck.scratched", + // Tabards + Simple("common.items.armor.misc.tabard.admin"): "voxel.armor.tabard_admin", + Simple("common.items.debug.admin"): "voxel.armor.tabard_admin", + // Heads + Simple("common.items.armor.hide.leather.head"): "voxel.armor.misc.head.leather-0", + Simple("common.items.armor.assassin.head"): "voxel.armor.misc.head.assa_mask-0", + Simple("common.items.armor.misc.head.exclamation"): "voxel.armor.misc.head.exclamation", + // Bags + Simple("common.items.armor.misc.bag.soulkeeper_cursed"): "voxel.armor.misc.bag.soulkeeper_cursed", + Simple("common.items.debug.admin_black_hole"): "voxel.armor.misc.bag.admin_black_hole", + Simple("common.items.armor.misc.bag.soulkeeper_pure"): "voxel.armor.misc.bag.soulkeeper_pure", + Simple("common.items.armor.misc.bag.mindflayer_spellbag"): "voxel.armor.misc.bag.mindflayer_spellbag", + Simple("common.items.armor.misc.bag.troll_hide_pack"): "voxel.armor.misc.bag.troll_hide_pack", + Simple("common.items.armor.misc.bag.reliable_backpack"): "voxel.armor.misc.bag.reliable_backpack", + Simple("common.items.armor.misc.bag.reliable_leather_pack"): "voxel.armor.misc.bag.reliable_leather_pack", + Simple("common.items.armor.misc.bag.liana_kit"): "voxel.armor.misc.bag.liana_kit", + Simple("common.items.armor.misc.bag.tiny_leather_pouch"): "voxel.armor.misc.bag.tiny_leather_pouch", + Simple("common.items.armor.misc.bag.sturdy_red_backpack"): "voxel.armor.misc.bag.sturdy_red_backpack", + Simple("common.items.armor.misc.bag.woven_red_bag"): "voxel.armor.misc.bag.woven_red_bag", + Simple("common.items.armor.misc.bag.knitted_red_pouch"): "voxel.armor.misc.bag.knitted_red_pouch", + Simple("common.items.armor.misc.bag.tiny_red_pouch"): "voxel.armor.misc.bag.tiny_red_pouch", + Simple("common.items.armor.misc.bag.heavy_seabag"): "voxel.armor.misc.bag.heavy_seabag", + // Consumables + Simple("common.items.food.apple"): "voxel.object.apple_half", + Simple("common.items.food.coconut"): "voxel.object.coconut_half", + Simple("common.items.food.cactus_colada"): "voxel.object.cactus_drink", + Simple("common.items.consumable.potion_med"): "voxel.object.potion_red", + Simple("common.items.consumable.potion_minor"): "voxel.object.potion_red", + Simple("common.items.consumable.potion_big"): "voxel.object.potion_red", + Simple("common.items.consumable.potion_curious"): "voxel.object.potion_curious", + Simple("common.items.consumable.potion_combustion"): "voxel.object.potion_combustion", + Simple("common.items.consumable.potion_freezing"): "voxel.object.potion_blue_1", + Simple("common.items.consumable.potion_agility"): "voxel.object.potion_agility", + Simple("common.items.charms.burning_charm"): "voxel.object.burning_charm", + Simple("common.items.charms.frozen_charm"): "voxel.object.frozen_charm", + Simple("common.items.charms.lifesteal_charm"): "voxel.object.lifesteal_charm", + Simple("common.items.boss_drops.potions"): "voxel.object.potion_red", + Simple("common.items.food.cheese"): "voxel.object.cheese", + Simple("common.items.food.blue_cheese"): "voxel.object.blue_cheese", + Simple("common.items.food.mushroom"): "voxel.sprite.mushrooms.mushroom-10", + Simple("common.items.mineral.ore.velorite"): "voxel.sprite.velorite.velorite_ore", + Simple("common.items.mineral.ore.veloritefrag"): "voxel.sprite.velorite.velorite", + Simple("common.items.food.apple_mushroom_curry"): "voxel.object.mushroom_curry", + Simple("common.items.food.spore_corruption"): "voxel.sprite.spore.corruption_spore", + Simple("common.items.food.apple_stick"): "voxel.object.apple_stick", + Simple("common.items.food.mushroom_stick"): "voxel.object.mushroom_stick", + Simple("common.items.food.sunflower_icetea"): "voxel.object.sunflower_ice_tea", + Simple("common.items.food.pumpkin_spice_brew"): "voxel.object.pumpkin_spice_brew", + Simple("common.items.food.honeycorn"): "voxel.object.honeycorn", + Simple("common.items.food.carrot"): "voxel.sprite.carrot.carrot", + Simple("common.items.food.tomato"): "voxel.sprite.tomato.tomato", + Simple("common.items.food.lettuce"): "voxel.sprite.cabbage.cabbage", + Simple("common.items.food.meat.fish_raw"): "voxel.sprite.food.meat.fish_raw", + Simple("common.items.food.meat.fish_cooked"): "voxel.sprite.food.meat.fish_cooked", + Simple("common.items.food.meat.bird_raw"): "voxel.sprite.food.meat.bird_raw", + Simple("common.items.food.meat.bird_cooked"): "voxel.sprite.food.meat.bird_cooked", + Simple("common.items.food.meat.bird_large_raw"): "voxel.sprite.food.meat.bird_large_raw", + Simple("common.items.food.meat.bird_large_cooked"): "voxel.sprite.food.meat.bird_large_cooked", + Simple("common.items.food.meat.beast_small_raw"): "voxel.sprite.food.meat.beast_small_raw", + Simple("common.items.food.meat.beast_small_cooked"): "voxel.sprite.food.meat.beast_small_cooked", + Simple("common.items.food.meat.tough_raw"): "voxel.sprite.food.meat.tough_raw", + Simple("common.items.food.meat.tough_cooked"): "voxel.sprite.food.meat.tough_cooked", + Simple("common.items.food.meat.beast_large_raw"): "voxel.sprite.food.meat.beast_large_raw", + Simple("common.items.food.meat.beast_large_cooked"): "voxel.sprite.food.meat.beast_large_cooked", + Simple("common.items.food.plainsalad"): "voxel.sprite.food.salad_plain", + Simple("common.items.food.tomatosalad"): "voxel.sprite.food.salad_tomato", + // Throwables + Simple("common.items.utility.bomb"): "voxel.object.bomb", + Simple("common.items.utility.surprise_egg"): "voxel.object.surprise_egg", + Simple("common.items.utility.firework_blue"): "voxel.weapon.projectile.fireworks_blue-0", + Simple("common.items.utility.firework_green"): "voxel.weapon.projectile.fireworks_green-0", + Simple("common.items.utility.firework_purple"): "voxel.weapon.projectile.fireworks_purple-0", + Simple("common.items.utility.firework_red"): "voxel.weapon.projectile.fireworks_red-0", + Simple("common.items.utility.firework_white"): "voxel.weapon.projectile.fireworks_white-0", + Simple("common.items.utility.firework_yellow"): "voxel.weapon.projectile.fireworks_yellow-0", + Simple("common.items.utility.training_dummy"): "voxel.object.training_dummy", + // Ingredients + Simple("common.items.tool.craftsman_hammer"): "voxel.weapon.hammer.craftsman", + Simple("common.items.crafting_tools.sewing_set"): "voxel.object.sewing_set", + Simple("common.items.flowers.sunflower"): "voxel.sprite.flowers.sunflower_1", + Simple("common.items.flowers.red"): "voxel.sprite.flowers.flower_red-4", + Simple("common.items.grasses.long"): "voxel.sprite.grass.grass_long_5", + Simple("common.items.crafting_ing.stones"): "voxel.sprite.rocks.rock-0", + Simple("common.items.crafting_ing.cactus"): "voxel.sprite.cacti.flat_cactus_med", + Simple("common.items.crafting_ing.seashells"): "voxel.sprite.seashells.shell-0", + Simple("common.items.crafting_ing.animal_misc.icy_fang"): "voxel.object.ice_shard", + Simple("common.items.crafting_ing.mindflayer_bag_damaged"): "voxel.object.glowing_remains", + Simple("common.items.crafting_ing.animal_misc.raptor_feather"): "voxel.object.raptor_feather", + Simple("common.items.crafting_ing.twigs"): "voxel.sprite.twigs.twigs-0", + Simple("common.items.crafting_ing.hide.animal_hide"): "voxel.sprite.crafting_ing.hide.animal_hide", + Simple("common.items.crafting_ing.hide.tough_hide"): "voxel.sprite.crafting_ing.hide.tough_hide", + Simple("common.items.crafting_ing.hide.rugged_hide"): "voxel.sprite.crafting_ing.hide.rugged_hide", + Simple("common.items.crafting_ing.leather.simple_leather"): "voxel.sprite.crafting_ing.leather.simple_leather", + Simple("common.items.crafting_ing.leather.thick_leather"): "voxel.sprite.crafting_ing.leather.thick_leather", + Simple("common.items.crafting_ing.leather.rigid_leather"): "voxel.sprite.crafting_ing.leather.rigid_leather", + Simple("common.items.crafting_ing.hide.leather_troll"): "voxel.sprite.crafting_ing.hide.troll_hide", + Simple("common.items.crafting_ing.leather.leather_strips"): "voxel.sprite.crafting_ing.leather.leather_strips", + Simple("common.items.crafting_ing.hide.plate"): "voxel.sprite.crafting_ing.hide.plate", + Simple("common.items.crafting_ing.hide.carapace"): "voxel.sprite.crafting_ing.hide.carapace", + Simple("common.items.crafting_ing.hide.scales"): "voxel.sprite.crafting_ing.hide.scale", + Simple("common.items.crafting_ing.hide.dragon_scale"): "voxel.sprite.crafting_ing.hide.dragon_scale", + Simple("common.items.crafting_ing.animal_misc.claw"): "voxel.sprite.crafting_ing.animal_misc.claw", + Simple("common.items.crafting_ing.animal_misc.elegant_crest"): "voxel.object.elegant_crest", + Simple("common.items.crafting_ing.animal_misc.venom_sac"): "voxel.sprite.crafting_ing.animal_misc.venom_sac", + Simple("common.items.crafting_ing.animal_misc.lively_vine"): "voxel.sprite.crafting_ing.animal_misc.lively_vine", + Simple("common.items.crafting_ing.animal_misc.sharp_fang"): "voxel.sprite.crafting_ing.animal_misc.sharp_fang", + Simple("common.items.crafting_ing.animal_misc.strong_pincer"): "voxel.object.strong_pincer", + Simple("common.items.crafting_ing.animal_misc.fur"): "voxel.sprite.crafting_ing.animal_misc.fur", + Simple("common.items.crafting_ing.animal_misc.large_horn"): "voxel.sprite.crafting_ing.animal_misc.large_horn", + Simple("common.items.crafting_ing.animal_misc.long_tusk"): "voxel.object.long_tusk", + Simple("common.items.crafting_ing.animal_misc.grim_eyeball"): "voxel.sprite.crafting_ing.animal_misc.grim_eyeball", + Simple("common.items.crafting_ing.cursed_bead"): "voxel.sprite.crafting_ing.cursed_bead", + Simple("common.items.crafting_ing.golem_core"): "voxel.sprite.crafting_ing.golem_core", + Simple("common.items.crafting_ing.golemite_slab"): "voxel.sprite.crafting_ing.golemite_slab", + Simple("common.items.crafting_ing.earthern_shard"): "voxel.sprite.crafting_ing.earthern_shard", + Simple("common.items.flowers.plant_fiber"): "voxel.sprite.crafting_ing.plant_fiber", + Simple("common.items.flowers.moonbell"): "voxel.sprite.flowers.moonbell", + Simple("common.items.crafting_ing.abyssal_heart"): "voxel.sprite.crafting_ing.abyssal_heart", + Simple("common.items.crafting_ing.brinestone"): "voxel.sprite.crafting_ing.brinestone", + Simple("common.items.crafting_ing.pearl"): "voxel.sprite.crafting_ing.pearl", + Simple("common.items.crafting_ing.coral_branch"): "voxel.sprite.crafting_ing.coral_branch", + Simple("common.items.flowers.pyrebloom"): "voxel.sprite.flowers.pyrebloom", + Simple("common.items.flowers.wild_flax"): "voxel.sprite.flowers.flax", + Simple("common.items.crafting_ing.cotton_boll"): "voxel.sprite.crafting_ing.cotton_boll", + Simple("common.items.crafting_ing.cloth.cotton"): "voxel.sprite.crafting_ing.cloth.cotton", + Simple("common.items.crafting_ing.cloth.linen"): "voxel.sprite.crafting_ing.cloth.linen", + Simple("common.items.crafting_ing.cloth.cloth_strips"): "voxel.sprite.crafting_ing.cloth.cloth_strips", + Simple("common.items.crafting_ing.cloth.wool"): "voxel.sprite.crafting_ing.cloth.wool", + Simple("common.items.crafting_ing.cloth.silk"): "voxel.sprite.crafting_ing.cloth.silk", + Simple("common.items.crafting_ing.cloth.lifecloth"): "voxel.sprite.crafting_ing.cloth.lifecloth", + Simple("common.items.crafting_ing.cloth.moonweave"): "voxel.sprite.crafting_ing.cloth.moonweave", + Simple("common.items.crafting_ing.cloth.sunsilk"): "voxel.sprite.crafting_ing.cloth.sunsilk", + Simple("common.items.crafting_ing.cloth.linen_red"): "voxel.sprite.crafting_ing.cloth.linen_red", + Simple("common.items.crafting_ing.sticky_thread"): "voxel.sprite.crafting_ing.sticky_thread", + Simple("common.items.crafting_ing.living_embers"): "voxel.sprite.crafting_ing.living_embers", + Simple("common.items.crafting_ing.sentient_seed"): "voxel.sprite.crafting_ing.sentient_seed", + Simple("common.items.crafting_ing.resin"): "voxel.sprite.crafting_ing.resin", + Simple("common.items.crafting_ing.glacial_crystal"): "voxel.object.glacial_crystal", + Simple("common.items.crafting_ing.alkahest"): "voxel.sprite.crafting_ing.alkahest", + Simple("common.items.crafting_ing.dwarven_battery"): "voxel.sprite.crafting_ing.dwarven_battery", + Simple("common.items.mineral.ingot.silver"): "voxel.sprite.mineral.ingot.silver", + Simple("common.items.mineral.ingot.gold"): "voxel.sprite.mineral.ingot.gold", + Simple("common.items.mineral.ingot.orichalcum"): "voxel.sprite.mineral.ingot.orichalcum", + Simple("common.items.mineral.ingot.bloodsteel"): "voxel.sprite.mineral.ingot.bloodsteel", + Simple("common.items.mineral.ingot.bronze"): "voxel.sprite.mineral.ingot.bronze", + Simple("common.items.mineral.ingot.cobalt"): "voxel.sprite.mineral.ingot.cobalt", + Simple("common.items.mineral.ingot.copper"): "voxel.sprite.mineral.ingot.copper", + Simple("common.items.mineral.ingot.iron"): "voxel.sprite.mineral.ingot.iron", + Simple("common.items.mineral.ingot.steel"): "voxel.sprite.mineral.ingot.steel", + Simple("common.items.mineral.ingot.tin"): "voxel.sprite.mineral.ingot.tin", + Simple("common.items.mineral.ore.gold"): "voxel.sprite.mineral.ore.gold", + Simple("common.items.mineral.ore.silver"): "voxel.sprite.mineral.ore.silver", + Simple("common.items.mineral.ore.bloodstone"): "voxel.sprite.mineral.ore.bloodstone", + Simple("common.items.mineral.ore.cobalt"): "voxel.sprite.mineral.ore.cobalt", + Simple("common.items.mineral.ore.copper"): "voxel.sprite.mineral.ore.copper", + Simple("common.items.mineral.ore.iron"): "voxel.sprite.mineral.ore.iron", + Simple("common.items.mineral.ore.tin"): "voxel.sprite.mineral.ore.tin", + Simple("common.items.mineral.stone.coal"): "voxel.sprite.mineral.ore.coal", + Simple("common.items.mineral.ore.coal"): "voxel.sprite.mineral.ore.coal", + Simple("common.items.mineral.ore.ancient_gold"): "voxel.sprite.mineral.ore.ancient_gold", + Simple("common.items.crafting_ing.honey"): "voxel.object.honey", + Simple("common.items.crafting_tools.mortar_pestle"): "voxel.object.mortar_pestle", + Simple("common.items.crafting_ing.empty_vial"): "voxel.object.potion_empty", + Simple("common.items.crafting_ing.bowl"): "voxel.sprite.crafting_ing.bowl", + Simple("common.items.crafting_ing.oil"): "voxel.sprite.crafting_ing.oil", + Simple("common.items.crafting_ing.animal_misc.viscous_ooze"): "voxel.sprite.crafting_ing.animal_misc.viscous_ooze", + Simple("common.items.crafting_ing.animal_misc.phoenix_feather"): "voxel.sprite.crafting_ing.animal_misc.phoenix_feather", + Simple("common.items.log.bamboo"): "voxel.sprite.wood.item.bamboo", + Simple("common.items.log.eldwood"): "voxel.sprite.wood.item.eldwood", + Simple("common.items.log.frostwood"): "voxel.sprite.wood.item.frostwood", + Simple("common.items.log.hardwood"): "voxel.sprite.wood.item.hardwood", + Simple("common.items.log.ironwood"): "voxel.sprite.wood.item.ironwood", + Simple("common.items.log.wood"): "voxel.sprite.wood.item.wood", + // Keys and Lockpicks + Simple("common.items.keys.rusty_tower_key"): "voxel.object.key_rusty-0", + Simple("common.items.keys.bone_key"): "voxel.object.key_bone", + Simple("common.items.keys.haniwa_key"): "voxel.object.key_haniwa", + Simple("common.items.keys.sahagin_key"): "voxel.object.key_sahagin", + Simple("common.items.keys.glass_key"): "voxel.object.key_glass", + Simple("common.items.utility.lockpick_0"): "voxel.object.lockpick", + Simple("common.items.keys.quarry_keys.forge_key"): "voxel.object.key_rusty-0", + Simple("common.items.keys.quarry_keys.miner_key"): "voxel.object.key_rusty-0", + Simple("common.items.keys.terracotta_key_chest"): "voxel.object.key_terracotta_chest", + Simple("common.items.keys.terracotta_key_door"): "voxel.object.key_terracotta_door", + Simple("common.items.keys.vampire_key"): "voxel.object.key_vampire", + Simple("common.items.keys.myrmidon_key"): "voxel.object.key_myrmidon", + Simple("common.items.keys.minotaur_key"): "voxel.object.key_myrmidon", + // Gliders + Simple("common.items.glider.cloverleaf"): "voxel.glider.cloverleaf", + Simple("common.items.glider.basic_white"): "voxel.glider.basic_white", + Simple("common.items.glider.basic_red"): "voxel.glider.basic_red", + Simple("common.items.glider.blue"): "voxel.glider.blue", + Simple("common.items.glider.morpho"): "voxel.glider.butterfly1", + Simple("common.items.glider.monarch"): "voxel.glider.butterfly2", + Simple("common.items.glider.butterfly3"): "voxel.glider.butterfly3", + Simple("common.items.glider.moth"): "voxel.glider.moth", + Simple("common.items.glider.sandraptor"): "voxel.glider.sandraptor", + Simple("common.items.glider.snowraptor"): "voxel.glider.snowraptor", + Simple("common.items.glider.woodraptor"): "voxel.glider.woodraptor", + Simple("common.items.glider.sunset"): "voxel.glider.sunset", + Simple("common.items.glider.moonrise"): "voxel.glider.moonrise", + Simple("common.items.glider.skullgrin"): "voxel.glider.cultists", + Simple("common.items.glider.leaves"): "voxel.glider.leaves", + Simple("common.items.glider.winter_wings"): "voxel.glider.winter_wings", + Simple("common.items.debug.glider"): "voxel.glider.vroom", + // Debug Items + Simple("common.items.debug.admin_stick"): "voxel.weapon.tool.broom_belzeshrub_purple", + // Misc + Simple("common.items.weapons.tool.golf_club"): "voxel.weapon.tool.golf_club", + // Gems + Simple("common.items.mineral.gem.amethyst"): "voxel.sprite.mineral.gem.amethystgem", + Simple("common.items.mineral.gem.topaz"): "voxel.sprite.mineral.gem.topazgem", + Simple("common.items.mineral.gem.sapphire"): "voxel.sprite.mineral.gem.sapphiregem", + Simple("common.items.mineral.gem.emerald"): "voxel.sprite.mineral.gem.emeraldgem", + Simple("common.items.mineral.gem.ruby"): "voxel.sprite.mineral.gem.rubygem", + Simple("common.items.mineral.gem.diamond"): "voxel.sprite.mineral.gem.diamondgem", + Empty: "voxel.armor.empty", + // Modular component pieces + // Swords + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.greatsword", "common.items.mineral.ingot.bronze")): "voxel.weapon.component.sword.greatsword.bronze", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.katana", "common.items.mineral.ingot.bronze")): "voxel.weapon.component.sword.katana.bronze", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.longsword", "common.items.mineral.ingot.bronze")): "voxel.weapon.component.sword.longsword.bronze", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.ornate", "common.items.mineral.ingot.bronze")): "voxel.weapon.component.sword.ornate.bronze", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.sabre", "common.items.mineral.ingot.bronze")): "voxel.weapon.component.sword.sabre.bronze", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.sawblade", "common.items.mineral.ingot.bronze")): "voxel.weapon.component.sword.sawblade.bronze", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.zweihander", "common.items.mineral.ingot.bronze")): "voxel.weapon.component.sword.zweihander.bronze", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.greatsword", "common.items.mineral.ingot.iron")): "voxel.weapon.component.sword.greatsword.iron", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.katana", "common.items.mineral.ingot.iron")): "voxel.weapon.component.sword.katana.iron", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.longsword", "common.items.mineral.ingot.iron")): "voxel.weapon.component.sword.longsword.iron", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.ornate", "common.items.mineral.ingot.iron")): "voxel.weapon.component.sword.ornate.iron", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.sabre", "common.items.mineral.ingot.iron")): "voxel.weapon.component.sword.sabre.iron", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.sawblade", "common.items.mineral.ingot.iron")): "voxel.weapon.component.sword.sawblade.iron", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.zweihander", "common.items.mineral.ingot.iron")): "voxel.weapon.component.sword.zweihander.iron", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.greatsword", "common.items.mineral.ingot.steel")): "voxel.weapon.component.sword.greatsword.steel", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.katana", "common.items.mineral.ingot.steel")): "voxel.weapon.component.sword.katana.steel", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.longsword", "common.items.mineral.ingot.steel")): "voxel.weapon.component.sword.longsword.steel", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.ornate", "common.items.mineral.ingot.steel")): "voxel.weapon.component.sword.ornate.steel", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.sabre", "common.items.mineral.ingot.steel")): "voxel.weapon.component.sword.sabre.steel", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.sawblade", "common.items.mineral.ingot.steel")): "voxel.weapon.component.sword.sawblade.steel", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.zweihander", "common.items.mineral.ingot.steel")): "voxel.weapon.component.sword.zweihander.steel", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.greatsword", "common.items.mineral.ingot.cobalt")): "voxel.weapon.component.sword.greatsword.cobalt", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.katana", "common.items.mineral.ingot.cobalt")): "voxel.weapon.component.sword.katana.cobalt", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.longsword", "common.items.mineral.ingot.cobalt")): "voxel.weapon.component.sword.longsword.cobalt", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.ornate", "common.items.mineral.ingot.cobalt")): "voxel.weapon.component.sword.ornate.cobalt", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.sabre", "common.items.mineral.ingot.cobalt")): "voxel.weapon.component.sword.sabre.cobalt", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.sawblade", "common.items.mineral.ingot.cobalt")): "voxel.weapon.component.sword.sawblade.cobalt", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.zweihander", "common.items.mineral.ingot.cobalt")): "voxel.weapon.component.sword.zweihander.cobalt", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.greatsword", "common.items.mineral.ingot.bloodsteel")): "voxel.weapon.component.sword.greatsword.bloodsteel", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.katana", "common.items.mineral.ingot.bloodsteel")): "voxel.weapon.component.sword.katana.bloodsteel", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.longsword", "common.items.mineral.ingot.bloodsteel")): "voxel.weapon.component.sword.longsword.bloodsteel", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.ornate", "common.items.mineral.ingot.bloodsteel")): "voxel.weapon.component.sword.ornate.bloodsteel", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.sabre", "common.items.mineral.ingot.bloodsteel")): "voxel.weapon.component.sword.sabre.bloodsteel", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.sawblade", "common.items.mineral.ingot.bloodsteel")): "voxel.weapon.component.sword.sawblade.bloodsteel", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.zweihander", "common.items.mineral.ingot.bloodsteel")): "voxel.weapon.component.sword.zweihander.bloodsteel", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.greatsword", "common.items.mineral.ingot.orichalcum")): "voxel.weapon.component.sword.greatsword.orichalcum", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.katana", "common.items.mineral.ingot.orichalcum")): "voxel.weapon.component.sword.katana.orichalcum", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.longsword", "common.items.mineral.ingot.orichalcum")): "voxel.weapon.component.sword.longsword.orichalcum", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.ornate", "common.items.mineral.ingot.orichalcum")): "voxel.weapon.component.sword.ornate.orichalcum", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.sabre", "common.items.mineral.ingot.orichalcum")): "voxel.weapon.component.sword.sabre.orichalcum", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.sawblade", "common.items.mineral.ingot.orichalcum")): "voxel.weapon.component.sword.sawblade.orichalcum", + ModularWeaponComponent(("common.items.modular.weapon.primary.sword.zweihander", "common.items.mineral.ingot.orichalcum")): "voxel.weapon.component.sword.zweihander.orichalcum", + Simple("common.items.modular.weapon.secondary.sword.long"): "voxel.weapon.component.sword.hilt.long", + Simple("common.items.modular.weapon.secondary.sword.medium"): "voxel.weapon.component.sword.hilt.medium", + Simple("common.items.modular.weapon.secondary.sword.short"): "voxel.weapon.component.sword.hilt.short", + // Axes + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.axe", "common.items.mineral.ingot.bronze")): "voxel.weapon.component.axe.axe.bronze", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.battleaxe", "common.items.mineral.ingot.bronze")): "voxel.weapon.component.axe.battleaxe.bronze", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.greataxe", "common.items.mineral.ingot.bronze")): "voxel.weapon.component.axe.greataxe.bronze", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.jagged", "common.items.mineral.ingot.bronze")): "voxel.weapon.component.axe.jagged.bronze", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.labrys", "common.items.mineral.ingot.bronze")): "voxel.weapon.component.axe.labrys.bronze", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.ornate", "common.items.mineral.ingot.bronze")): "voxel.weapon.component.axe.ornate.bronze", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.poleaxe", "common.items.mineral.ingot.bronze")): "voxel.weapon.component.axe.poleaxe.bronze", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.axe", "common.items.mineral.ingot.iron")): "voxel.weapon.component.axe.axe.iron", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.battleaxe", "common.items.mineral.ingot.iron")): "voxel.weapon.component.axe.battleaxe.iron", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.greataxe", "common.items.mineral.ingot.iron")): "voxel.weapon.component.axe.greataxe.iron", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.jagged", "common.items.mineral.ingot.iron")): "voxel.weapon.component.axe.jagged.iron", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.labrys", "common.items.mineral.ingot.iron")): "voxel.weapon.component.axe.labrys.iron", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.ornate", "common.items.mineral.ingot.iron")): "voxel.weapon.component.axe.ornate.iron", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.poleaxe", "common.items.mineral.ingot.iron")): "voxel.weapon.component.axe.poleaxe.iron", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.axe", "common.items.mineral.ingot.steel")): "voxel.weapon.component.axe.axe.steel", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.battleaxe", "common.items.mineral.ingot.steel")): "voxel.weapon.component.axe.battleaxe.steel", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.greataxe", "common.items.mineral.ingot.steel")): "voxel.weapon.component.axe.greataxe.steel", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.jagged", "common.items.mineral.ingot.steel")): "voxel.weapon.component.axe.jagged.steel", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.labrys", "common.items.mineral.ingot.steel")): "voxel.weapon.component.axe.labrys.steel", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.ornate", "common.items.mineral.ingot.steel")): "voxel.weapon.component.axe.ornate.steel", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.poleaxe", "common.items.mineral.ingot.steel")): "voxel.weapon.component.axe.poleaxe.steel", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.axe", "common.items.mineral.ingot.cobalt")): "voxel.weapon.component.axe.axe.cobalt", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.battleaxe", "common.items.mineral.ingot.cobalt")): "voxel.weapon.component.axe.battleaxe.cobalt", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.greataxe", "common.items.mineral.ingot.cobalt")): "voxel.weapon.component.axe.greataxe.cobalt", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.jagged", "common.items.mineral.ingot.cobalt")): "voxel.weapon.component.axe.jagged.cobalt", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.labrys", "common.items.mineral.ingot.cobalt")): "voxel.weapon.component.axe.labrys.cobalt", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.ornate", "common.items.mineral.ingot.cobalt")): "voxel.weapon.component.axe.ornate.cobalt", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.poleaxe", "common.items.mineral.ingot.cobalt")): "voxel.weapon.component.axe.poleaxe.cobalt", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.axe", "common.items.mineral.ingot.bloodsteel")): "voxel.weapon.component.axe.axe.bloodsteel", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.battleaxe", "common.items.mineral.ingot.bloodsteel")): "voxel.weapon.component.axe.battleaxe.bloodsteel", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.greataxe", "common.items.mineral.ingot.bloodsteel")): "voxel.weapon.component.axe.greataxe.bloodsteel", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.jagged", "common.items.mineral.ingot.bloodsteel")): "voxel.weapon.component.axe.jagged.bloodsteel", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.labrys", "common.items.mineral.ingot.bloodsteel")): "voxel.weapon.component.axe.labrys.bloodsteel", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.ornate", "common.items.mineral.ingot.bloodsteel")): "voxel.weapon.component.axe.ornate.bloodsteel", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.poleaxe", "common.items.mineral.ingot.bloodsteel")): "voxel.weapon.component.axe.poleaxe.bloodsteel", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.axe", "common.items.mineral.ingot.orichalcum")): "voxel.weapon.component.axe.axe.orichalcum", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.battleaxe", "common.items.mineral.ingot.orichalcum")): "voxel.weapon.component.axe.battleaxe.orichalcum", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.greataxe", "common.items.mineral.ingot.orichalcum")): "voxel.weapon.component.axe.greataxe.orichalcum", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.jagged", "common.items.mineral.ingot.orichalcum")): "voxel.weapon.component.axe.jagged.orichalcum", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.labrys", "common.items.mineral.ingot.orichalcum")): "voxel.weapon.component.axe.labrys.orichalcum", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.ornate", "common.items.mineral.ingot.orichalcum")): "voxel.weapon.component.axe.ornate.orichalcum", + ModularWeaponComponent(("common.items.modular.weapon.primary.axe.poleaxe", "common.items.mineral.ingot.orichalcum")): "voxel.weapon.component.axe.poleaxe.orichalcum", + Simple("common.items.modular.weapon.secondary.axe.long"): "voxel.weapon.component.axe.haft.long", + Simple("common.items.modular.weapon.secondary.axe.medium"): "voxel.weapon.component.axe.haft.medium", + Simple("common.items.modular.weapon.secondary.axe.short"): "voxel.weapon.component.axe.haft.short", + // Hammers + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.greathammer", "common.items.mineral.ingot.bronze")): "voxel.weapon.component.hammer.greathammer.bronze", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.greatmace", "common.items.mineral.ingot.bronze")): "voxel.weapon.component.hammer.greatmace.bronze", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.hammer", "common.items.mineral.ingot.bronze")): "voxel.weapon.component.hammer.hammer.bronze", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.maul", "common.items.mineral.ingot.bronze")): "voxel.weapon.component.hammer.maul.bronze", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.ornate", "common.items.mineral.ingot.bronze")): "voxel.weapon.component.hammer.ornate.bronze", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.spikedmace", "common.items.mineral.ingot.bronze")): "voxel.weapon.component.hammer.spikedmace.bronze", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.warhammer", "common.items.mineral.ingot.bronze")): "voxel.weapon.component.hammer.warhammer.bronze", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.greathammer", "common.items.mineral.ingot.iron")): "voxel.weapon.component.hammer.greathammer.iron", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.greatmace", "common.items.mineral.ingot.iron")): "voxel.weapon.component.hammer.greatmace.iron", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.hammer", "common.items.mineral.ingot.iron")): "voxel.weapon.component.hammer.hammer.iron", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.maul", "common.items.mineral.ingot.iron")): "voxel.weapon.component.hammer.maul.iron", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.ornate", "common.items.mineral.ingot.iron")): "voxel.weapon.component.hammer.ornate.iron", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.spikedmace", "common.items.mineral.ingot.iron")): "voxel.weapon.component.hammer.spikedmace.iron", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.warhammer", "common.items.mineral.ingot.iron")): "voxel.weapon.component.hammer.warhammer.iron", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.greathammer", "common.items.mineral.ingot.steel")): "voxel.weapon.component.hammer.greathammer.steel", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.greatmace", "common.items.mineral.ingot.steel")): "voxel.weapon.component.hammer.greatmace.steel", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.hammer", "common.items.mineral.ingot.steel")): "voxel.weapon.component.hammer.hammer.steel", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.maul", "common.items.mineral.ingot.steel")): "voxel.weapon.component.hammer.maul.steel", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.ornate", "common.items.mineral.ingot.steel")): "voxel.weapon.component.hammer.ornate.steel", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.spikedmace", "common.items.mineral.ingot.steel")): "voxel.weapon.component.hammer.spikedmace.steel", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.warhammer", "common.items.mineral.ingot.steel")): "voxel.weapon.component.hammer.warhammer.steel", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.greathammer", "common.items.mineral.ingot.cobalt")): "voxel.weapon.component.hammer.greathammer.cobalt", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.greatmace", "common.items.mineral.ingot.cobalt")): "voxel.weapon.component.hammer.greatmace.cobalt", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.hammer", "common.items.mineral.ingot.cobalt")): "voxel.weapon.component.hammer.hammer.cobalt", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.maul", "common.items.mineral.ingot.cobalt")): "voxel.weapon.component.hammer.maul.cobalt", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.ornate", "common.items.mineral.ingot.cobalt")): "voxel.weapon.component.hammer.ornate.cobalt", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.spikedmace", "common.items.mineral.ingot.cobalt")): "voxel.weapon.component.hammer.spikedmace.cobalt", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.warhammer", "common.items.mineral.ingot.cobalt")): "voxel.weapon.component.hammer.warhammer.cobalt", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.greathammer", "common.items.mineral.ingot.bloodsteel")): "voxel.weapon.component.hammer.greathammer.bloodsteel", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.greatmace", "common.items.mineral.ingot.bloodsteel")): "voxel.weapon.component.hammer.greatmace.bloodsteel", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.hammer", "common.items.mineral.ingot.bloodsteel")): "voxel.weapon.component.hammer.hammer.bloodsteel", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.maul", "common.items.mineral.ingot.bloodsteel")): "voxel.weapon.component.hammer.maul.bloodsteel", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.ornate", "common.items.mineral.ingot.bloodsteel")): "voxel.weapon.component.hammer.ornate.bloodsteel", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.spikedmace", "common.items.mineral.ingot.bloodsteel")): "voxel.weapon.component.hammer.spikedmace.bloodsteel", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.warhammer", "common.items.mineral.ingot.bloodsteel")): "voxel.weapon.component.hammer.warhammer.bloodsteel", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.greathammer", "common.items.mineral.ingot.orichalcum")): "voxel.weapon.component.hammer.greathammer.orichalcum", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.greatmace", "common.items.mineral.ingot.orichalcum")): "voxel.weapon.component.hammer.greatmace.orichalcum", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.hammer", "common.items.mineral.ingot.orichalcum")): "voxel.weapon.component.hammer.hammer.orichalcum", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.maul", "common.items.mineral.ingot.orichalcum")): "voxel.weapon.component.hammer.maul.orichalcum", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.ornate", "common.items.mineral.ingot.orichalcum")): "voxel.weapon.component.hammer.ornate.orichalcum", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.spikedmace", "common.items.mineral.ingot.orichalcum")): "voxel.weapon.component.hammer.spikedmace.orichalcum", + ModularWeaponComponent(("common.items.modular.weapon.primary.hammer.warhammer", "common.items.mineral.ingot.orichalcum")): "voxel.weapon.component.hammer.warhammer.orichalcum", + Simple("common.items.modular.weapon.secondary.hammer.long"): "voxel.weapon.component.hammer.shaft.long", + Simple("common.items.modular.weapon.secondary.hammer.medium"): "voxel.weapon.component.hammer.shaft.medium", + Simple("common.items.modular.weapon.secondary.hammer.short"): "voxel.weapon.component.hammer.shaft.short", + // Bows + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.bow", "common.items.log.wood")): "voxel.weapon.component.bow.bow.wood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.composite", "common.items.log.wood")): "voxel.weapon.component.bow.composite.wood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.greatbow", "common.items.log.wood")): "voxel.weapon.component.bow.greatbow.wood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.longbow", "common.items.log.wood")): "voxel.weapon.component.bow.longbow.wood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.ornate", "common.items.log.wood")): "voxel.weapon.component.bow.ornate.wood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.shortbow", "common.items.log.wood")): "voxel.weapon.component.bow.shortbow.wood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.warbow", "common.items.log.wood")): "voxel.weapon.component.bow.warbow.wood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.bow", "common.items.log.bamboo")): "voxel.weapon.component.bow.bow.bamboo", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.composite", "common.items.log.bamboo")): "voxel.weapon.component.bow.composite.bamboo", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.greatbow", "common.items.log.bamboo")): "voxel.weapon.component.bow.greatbow.bamboo", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.longbow", "common.items.log.bamboo")): "voxel.weapon.component.bow.longbow.bamboo", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.ornate", "common.items.log.bamboo")): "voxel.weapon.component.bow.ornate.bamboo", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.shortbow", "common.items.log.bamboo")): "voxel.weapon.component.bow.shortbow.bamboo", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.warbow", "common.items.log.bamboo")): "voxel.weapon.component.bow.warbow.bamboo", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.bow", "common.items.log.hardwood")): "voxel.weapon.component.bow.bow.hardwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.composite", "common.items.log.hardwood")): "voxel.weapon.component.bow.composite.hardwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.greatbow", "common.items.log.hardwood")): "voxel.weapon.component.bow.greatbow.hardwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.longbow", "common.items.log.hardwood")): "voxel.weapon.component.bow.longbow.hardwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.ornate", "common.items.log.hardwood")): "voxel.weapon.component.bow.ornate.hardwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.shortbow", "common.items.log.hardwood")): "voxel.weapon.component.bow.shortbow.hardwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.warbow", "common.items.log.hardwood")): "voxel.weapon.component.bow.warbow.hardwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.bow", "common.items.log.ironwood")): "voxel.weapon.component.bow.bow.ironwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.composite", "common.items.log.ironwood")): "voxel.weapon.component.bow.composite.ironwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.greatbow", "common.items.log.ironwood")): "voxel.weapon.component.bow.greatbow.ironwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.longbow", "common.items.log.ironwood")): "voxel.weapon.component.bow.longbow.ironwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.ornate", "common.items.log.ironwood")): "voxel.weapon.component.bow.ornate.ironwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.shortbow", "common.items.log.ironwood")): "voxel.weapon.component.bow.shortbow.ironwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.warbow", "common.items.log.ironwood")): "voxel.weapon.component.bow.warbow.ironwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.bow", "common.items.log.frostwood")): "voxel.weapon.component.bow.bow.frostwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.composite", "common.items.log.frostwood")): "voxel.weapon.component.bow.composite.frostwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.greatbow", "common.items.log.frostwood")): "voxel.weapon.component.bow.greatbow.frostwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.longbow", "common.items.log.frostwood")): "voxel.weapon.component.bow.longbow.frostwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.ornate", "common.items.log.frostwood")): "voxel.weapon.component.bow.ornate.frostwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.shortbow", "common.items.log.frostwood")): "voxel.weapon.component.bow.shortbow.frostwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.warbow", "common.items.log.frostwood")): "voxel.weapon.component.bow.warbow.frostwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.bow", "common.items.log.eldwood")): "voxel.weapon.component.bow.bow.eldwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.composite", "common.items.log.eldwood")): "voxel.weapon.component.bow.composite.eldwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.greatbow", "common.items.log.eldwood")): "voxel.weapon.component.bow.greatbow.eldwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.longbow", "common.items.log.eldwood")): "voxel.weapon.component.bow.longbow.eldwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.ornate", "common.items.log.eldwood")): "voxel.weapon.component.bow.ornate.eldwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.shortbow", "common.items.log.eldwood")): "voxel.weapon.component.bow.shortbow.eldwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.bow.warbow", "common.items.log.eldwood")): "voxel.weapon.component.bow.warbow.eldwood", + Simple("common.items.modular.weapon.secondary.bow.long"): "voxel.weapon.component.bow.grip.long", + Simple("common.items.modular.weapon.secondary.bow.medium"): "voxel.weapon.component.bow.grip.medium", + Simple("common.items.modular.weapon.secondary.bow.short"): "voxel.weapon.component.bow.grip.short", + // Staffs + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.brand", "common.items.log.wood")): "voxel.weapon.component.staff.brand.wood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.grandstaff", "common.items.log.wood")): "voxel.weapon.component.staff.grandstaff.wood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.longpole", "common.items.log.wood")): "voxel.weapon.component.staff.longpole.wood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.ornate", "common.items.log.wood")): "voxel.weapon.component.staff.ornate.wood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.pole", "common.items.log.wood")): "voxel.weapon.component.staff.pole.wood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.rod", "common.items.log.wood")): "voxel.weapon.component.staff.rod.wood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.staff", "common.items.log.wood")): "voxel.weapon.component.staff.staff.wood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.brand", "common.items.log.bamboo")): "voxel.weapon.component.staff.brand.bamboo", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.grandstaff", "common.items.log.bamboo")): "voxel.weapon.component.staff.grandstaff.bamboo", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.longpole", "common.items.log.bamboo")): "voxel.weapon.component.staff.longpole.bamboo", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.ornate", "common.items.log.bamboo")): "voxel.weapon.component.staff.ornate.bamboo", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.pole", "common.items.log.bamboo")): "voxel.weapon.component.staff.pole.bamboo", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.rod", "common.items.log.bamboo")): "voxel.weapon.component.staff.rod.bamboo", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.staff", "common.items.log.bamboo")): "voxel.weapon.component.staff.staff.bamboo", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.brand", "common.items.log.hardwood")): "voxel.weapon.component.staff.brand.hardwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.grandstaff", "common.items.log.hardwood")): "voxel.weapon.component.staff.grandstaff.hardwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.longpole", "common.items.log.hardwood")): "voxel.weapon.component.staff.longpole.hardwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.ornate", "common.items.log.hardwood")): "voxel.weapon.component.staff.ornate.hardwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.pole", "common.items.log.hardwood")): "voxel.weapon.component.staff.pole.hardwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.rod", "common.items.log.hardwood")): "voxel.weapon.component.staff.rod.hardwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.staff", "common.items.log.hardwood")): "voxel.weapon.component.staff.staff.hardwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.brand", "common.items.log.ironwood")): "voxel.weapon.component.staff.brand.ironwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.grandstaff", "common.items.log.ironwood")): "voxel.weapon.component.staff.grandstaff.ironwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.longpole", "common.items.log.ironwood")): "voxel.weapon.component.staff.longpole.ironwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.ornate", "common.items.log.ironwood")): "voxel.weapon.component.staff.ornate.ironwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.pole", "common.items.log.ironwood")): "voxel.weapon.component.staff.pole.ironwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.rod", "common.items.log.ironwood")): "voxel.weapon.component.staff.rod.ironwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.staff", "common.items.log.ironwood")): "voxel.weapon.component.staff.staff.ironwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.brand", "common.items.log.frostwood")): "voxel.weapon.component.staff.brand.frostwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.grandstaff", "common.items.log.frostwood")): "voxel.weapon.component.staff.grandstaff.frostwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.longpole", "common.items.log.frostwood")): "voxel.weapon.component.staff.longpole.frostwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.ornate", "common.items.log.frostwood")): "voxel.weapon.component.staff.ornate.frostwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.pole", "common.items.log.frostwood")): "voxel.weapon.component.staff.pole.frostwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.rod", "common.items.log.frostwood")): "voxel.weapon.component.staff.rod.frostwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.staff", "common.items.log.frostwood")): "voxel.weapon.component.staff.staff.frostwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.brand", "common.items.log.eldwood")): "voxel.weapon.component.staff.brand.eldwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.grandstaff", "common.items.log.eldwood")): "voxel.weapon.component.staff.grandstaff.eldwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.longpole", "common.items.log.eldwood")): "voxel.weapon.component.staff.longpole.eldwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.ornate", "common.items.log.eldwood")): "voxel.weapon.component.staff.ornate.eldwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.pole", "common.items.log.eldwood")): "voxel.weapon.component.staff.pole.eldwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.rod", "common.items.log.eldwood")): "voxel.weapon.component.staff.rod.eldwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.staff.staff", "common.items.log.eldwood")): "voxel.weapon.component.staff.staff.eldwood", + Simple("common.items.modular.weapon.secondary.staff.heavy"): "voxel.weapon.component.staff.core.heavy", + Simple("common.items.modular.weapon.secondary.staff.medium"): "voxel.weapon.component.staff.core.medium", + Simple("common.items.modular.weapon.secondary.staff.light"): "voxel.weapon.component.staff.core.light", + // Sceptres + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.arbor", "common.items.log.wood")): "voxel.weapon.component.sceptre.arbor.wood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.cane", "common.items.log.wood")): "voxel.weapon.component.sceptre.cane.wood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.crook", "common.items.log.wood")): "voxel.weapon.component.sceptre.crook.wood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.crozier", "common.items.log.wood")): "voxel.weapon.component.sceptre.crozier.wood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.grandsceptre", "common.items.log.wood")): "voxel.weapon.component.sceptre.grandsceptre.wood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.ornate", "common.items.log.wood")): "voxel.weapon.component.sceptre.ornate.wood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.sceptre", "common.items.log.wood")): "voxel.weapon.component.sceptre.sceptre.wood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.arbor", "common.items.log.bamboo")): "voxel.weapon.component.sceptre.arbor.bamboo", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.cane", "common.items.log.bamboo")): "voxel.weapon.component.sceptre.cane.bamboo", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.crook", "common.items.log.bamboo")): "voxel.weapon.component.sceptre.crook.bamboo", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.crozier", "common.items.log.bamboo")): "voxel.weapon.component.sceptre.crozier.bamboo", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.grandsceptre", "common.items.log.bamboo")): "voxel.weapon.component.sceptre.grandsceptre.bamboo", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.ornate", "common.items.log.bamboo")): "voxel.weapon.component.sceptre.ornate.bamboo", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.sceptre", "common.items.log.bamboo")): "voxel.weapon.component.sceptre.sceptre.bamboo", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.arbor", "common.items.log.hardwood")): "voxel.weapon.component.sceptre.arbor.hardwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.cane", "common.items.log.hardwood")): "voxel.weapon.component.sceptre.cane.hardwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.crook", "common.items.log.hardwood")): "voxel.weapon.component.sceptre.crook.hardwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.crozier", "common.items.log.hardwood")): "voxel.weapon.component.sceptre.crozier.hardwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.grandsceptre", "common.items.log.hardwood")): "voxel.weapon.component.sceptre.grandsceptre.hardwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.ornate", "common.items.log.hardwood")): "voxel.weapon.component.sceptre.ornate.hardwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.sceptre", "common.items.log.hardwood")): "voxel.weapon.component.sceptre.sceptre.hardwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.arbor", "common.items.log.ironwood")): "voxel.weapon.component.sceptre.arbor.ironwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.cane", "common.items.log.ironwood")): "voxel.weapon.component.sceptre.cane.ironwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.crook", "common.items.log.ironwood")): "voxel.weapon.component.sceptre.crook.ironwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.crozier", "common.items.log.ironwood")): "voxel.weapon.component.sceptre.crozier.ironwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.grandsceptre", "common.items.log.ironwood")): "voxel.weapon.component.sceptre.grandsceptre.ironwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.ornate", "common.items.log.ironwood")): "voxel.weapon.component.sceptre.ornate.ironwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.sceptre", "common.items.log.ironwood")): "voxel.weapon.component.sceptre.sceptre.ironwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.arbor", "common.items.log.frostwood")): "voxel.weapon.component.sceptre.arbor.frostwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.cane", "common.items.log.frostwood")): "voxel.weapon.component.sceptre.cane.frostwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.crook", "common.items.log.frostwood")): "voxel.weapon.component.sceptre.crook.frostwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.crozier", "common.items.log.frostwood")): "voxel.weapon.component.sceptre.crozier.frostwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.grandsceptre", "common.items.log.frostwood")): "voxel.weapon.component.sceptre.grandsceptre.frostwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.ornate", "common.items.log.frostwood")): "voxel.weapon.component.sceptre.ornate.frostwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.sceptre", "common.items.log.frostwood")): "voxel.weapon.component.sceptre.sceptre.frostwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.arbor", "common.items.log.eldwood")): "voxel.weapon.component.sceptre.arbor.eldwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.cane", "common.items.log.eldwood")): "voxel.weapon.component.sceptre.cane.eldwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.crook", "common.items.log.eldwood")): "voxel.weapon.component.sceptre.crook.eldwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.crozier", "common.items.log.eldwood")): "voxel.weapon.component.sceptre.crozier.eldwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.grandsceptre", "common.items.log.eldwood")): "voxel.weapon.component.sceptre.grandsceptre.eldwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.ornate", "common.items.log.eldwood")): "voxel.weapon.component.sceptre.ornate.eldwood", + ModularWeaponComponent(("common.items.modular.weapon.primary.sceptre.sceptre", "common.items.log.eldwood")): "voxel.weapon.component.sceptre.sceptre.eldwood", + Simple("common.items.modular.weapon.secondary.sceptre.heavy"): "voxel.weapon.component.sceptre.core.heavy", + Simple("common.items.modular.weapon.secondary.sceptre.medium"): "voxel.weapon.component.sceptre.core.medium", + Simple("common.items.modular.weapon.secondary.sceptre.light"): "voxel.weapon.component.sceptre.core.light", +}) diff --git a/assets/voxygen/voxel/lantern/black-0.vox b/assets/voxygen/voxel/lantern/black-0.vox new file mode 100644 index 0000000..1f2f8dd Binary files /dev/null and b/assets/voxygen/voxel/lantern/black-0.vox differ diff --git a/assets/voxygen/voxel/lantern/blue-0.vox b/assets/voxygen/voxel/lantern/blue-0.vox new file mode 100644 index 0000000..d7057c1 Binary files /dev/null and b/assets/voxygen/voxel/lantern/blue-0.vox differ diff --git a/assets/voxygen/voxel/lantern/delvers_lamp.vox b/assets/voxygen/voxel/lantern/delvers_lamp.vox new file mode 100644 index 0000000..e08b58c Binary files /dev/null and b/assets/voxygen/voxel/lantern/delvers_lamp.vox differ diff --git a/assets/voxygen/voxel/lantern/geode_purp.vox b/assets/voxygen/voxel/lantern/geode_purp.vox new file mode 100644 index 0000000..b8a6405 Binary files /dev/null and b/assets/voxygen/voxel/lantern/geode_purp.vox differ diff --git a/assets/voxygen/voxel/lantern/green-0.vox b/assets/voxygen/voxel/lantern/green-0.vox new file mode 100644 index 0000000..0dcd409 Binary files /dev/null and b/assets/voxygen/voxel/lantern/green-0.vox differ diff --git a/assets/voxygen/voxel/lantern/magic_lantern.vox b/assets/voxygen/voxel/lantern/magic_lantern.vox new file mode 100644 index 0000000..718e074 Binary files /dev/null and b/assets/voxygen/voxel/lantern/magic_lantern.vox differ diff --git a/assets/voxygen/voxel/lantern/polaris.vox b/assets/voxygen/voxel/lantern/polaris.vox new file mode 100644 index 0000000..4869bbd Binary files /dev/null and b/assets/voxygen/voxel/lantern/polaris.vox differ diff --git a/assets/voxygen/voxel/lantern/pumpkin.vox b/assets/voxygen/voxel/lantern/pumpkin.vox new file mode 100644 index 0000000..879488b Binary files /dev/null and b/assets/voxygen/voxel/lantern/pumpkin.vox differ diff --git a/assets/voxygen/voxel/lantern/red-0.vox b/assets/voxygen/voxel/lantern/red-0.vox new file mode 100644 index 0000000..c5021af Binary files /dev/null and b/assets/voxygen/voxel/lantern/red-0.vox differ diff --git a/assets/voxygen/voxel/not_found.vox b/assets/voxygen/voxel/not_found.vox new file mode 100644 index 0000000..1b5a049 Binary files /dev/null and b/assets/voxygen/voxel/not_found.vox differ diff --git a/assets/voxygen/voxel/npc/adlet/elder/male/foot_l.vox b/assets/voxygen/voxel/npc/adlet/elder/male/foot_l.vox new file mode 100644 index 0000000..e7c0526 Binary files /dev/null and b/assets/voxygen/voxel/npc/adlet/elder/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/adlet/elder/male/foot_r.vox b/assets/voxygen/voxel/npc/adlet/elder/male/foot_r.vox new file mode 100644 index 0000000..1590c26 Binary files /dev/null and b/assets/voxygen/voxel/npc/adlet/elder/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/adlet/elder/male/hand_l.vox b/assets/voxygen/voxel/npc/adlet/elder/male/hand_l.vox new file mode 100644 index 0000000..fa3d134 Binary files /dev/null and b/assets/voxygen/voxel/npc/adlet/elder/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/adlet/elder/male/hand_r.vox b/assets/voxygen/voxel/npc/adlet/elder/male/hand_r.vox new file mode 100644 index 0000000..fa15965 Binary files /dev/null and b/assets/voxygen/voxel/npc/adlet/elder/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/adlet/elder/male/head.vox b/assets/voxygen/voxel/npc/adlet/elder/male/head.vox new file mode 100644 index 0000000..f00a6fc Binary files /dev/null and b/assets/voxygen/voxel/npc/adlet/elder/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/adlet/elder/male/jaw.vox b/assets/voxygen/voxel/npc/adlet/elder/male/jaw.vox new file mode 100644 index 0000000..e699b5a Binary files /dev/null and b/assets/voxygen/voxel/npc/adlet/elder/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/adlet/elder/male/leg_l.vox b/assets/voxygen/voxel/npc/adlet/elder/male/leg_l.vox new file mode 100644 index 0000000..e8d9e3b Binary files /dev/null and b/assets/voxygen/voxel/npc/adlet/elder/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/adlet/elder/male/leg_r.vox b/assets/voxygen/voxel/npc/adlet/elder/male/leg_r.vox new file mode 100644 index 0000000..ef69d34 Binary files /dev/null and b/assets/voxygen/voxel/npc/adlet/elder/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/adlet/elder/male/shoulder_l.vox b/assets/voxygen/voxel/npc/adlet/elder/male/shoulder_l.vox new file mode 100644 index 0000000..083d90e Binary files /dev/null and b/assets/voxygen/voxel/npc/adlet/elder/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/adlet/elder/male/shoulder_r.vox b/assets/voxygen/voxel/npc/adlet/elder/male/shoulder_r.vox new file mode 100644 index 0000000..33d35e2 Binary files /dev/null and b/assets/voxygen/voxel/npc/adlet/elder/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/adlet/elder/male/tail.vox b/assets/voxygen/voxel/npc/adlet/elder/male/tail.vox new file mode 100644 index 0000000..8665455 Binary files /dev/null and b/assets/voxygen/voxel/npc/adlet/elder/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/adlet/elder/male/torso_lower.vox b/assets/voxygen/voxel/npc/adlet/elder/male/torso_lower.vox new file mode 100644 index 0000000..c560974 Binary files /dev/null and b/assets/voxygen/voxel/npc/adlet/elder/male/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/adlet/elder/male/torso_upper.vox b/assets/voxygen/voxel/npc/adlet/elder/male/torso_upper.vox new file mode 100644 index 0000000..3685996 Binary files /dev/null and b/assets/voxygen/voxel/npc/adlet/elder/male/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/adlet/hunter/chest.vox b/assets/voxygen/voxel/npc/adlet/hunter/chest.vox new file mode 100644 index 0000000..a7839a2 Binary files /dev/null and b/assets/voxygen/voxel/npc/adlet/hunter/chest.vox differ diff --git a/assets/voxygen/voxel/npc/adlet/hunter/foot_r.vox b/assets/voxygen/voxel/npc/adlet/hunter/foot_r.vox new file mode 100644 index 0000000..b4b19c8 Binary files /dev/null and b/assets/voxygen/voxel/npc/adlet/hunter/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/adlet/hunter/hand_r.vox b/assets/voxygen/voxel/npc/adlet/hunter/hand_r.vox new file mode 100644 index 0000000..6aa4a62 Binary files /dev/null and b/assets/voxygen/voxel/npc/adlet/hunter/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/adlet/hunter/head.vox b/assets/voxygen/voxel/npc/adlet/hunter/head.vox new file mode 100644 index 0000000..cb71425 Binary files /dev/null and b/assets/voxygen/voxel/npc/adlet/hunter/head.vox differ diff --git a/assets/voxygen/voxel/npc/adlet/hunter/pants.vox b/assets/voxygen/voxel/npc/adlet/hunter/pants.vox new file mode 100644 index 0000000..8328ef9 Binary files /dev/null and b/assets/voxygen/voxel/npc/adlet/hunter/pants.vox differ diff --git a/assets/voxygen/voxel/npc/adlet/hunter/tail.vox b/assets/voxygen/voxel/npc/adlet/hunter/tail.vox new file mode 100644 index 0000000..1234af4 Binary files /dev/null and b/assets/voxygen/voxel/npc/adlet/hunter/tail.vox differ diff --git a/assets/voxygen/voxel/npc/adlet/icepicker/chest.vox b/assets/voxygen/voxel/npc/adlet/icepicker/chest.vox new file mode 100644 index 0000000..ad3feac Binary files /dev/null and b/assets/voxygen/voxel/npc/adlet/icepicker/chest.vox differ diff --git a/assets/voxygen/voxel/npc/adlet/icepicker/foot_r.vox b/assets/voxygen/voxel/npc/adlet/icepicker/foot_r.vox new file mode 100644 index 0000000..0991554 Binary files /dev/null and b/assets/voxygen/voxel/npc/adlet/icepicker/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/adlet/icepicker/hand_r.vox b/assets/voxygen/voxel/npc/adlet/icepicker/hand_r.vox new file mode 100644 index 0000000..627dc1a Binary files /dev/null and b/assets/voxygen/voxel/npc/adlet/icepicker/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/adlet/icepicker/head.vox b/assets/voxygen/voxel/npc/adlet/icepicker/head.vox new file mode 100644 index 0000000..562ae31 Binary files /dev/null and b/assets/voxygen/voxel/npc/adlet/icepicker/head.vox differ diff --git a/assets/voxygen/voxel/npc/adlet/icepicker/pants.vox b/assets/voxygen/voxel/npc/adlet/icepicker/pants.vox new file mode 100644 index 0000000..92898b9 Binary files /dev/null and b/assets/voxygen/voxel/npc/adlet/icepicker/pants.vox differ diff --git a/assets/voxygen/voxel/npc/adlet/icepicker/tail.vox b/assets/voxygen/voxel/npc/adlet/icepicker/tail.vox new file mode 100644 index 0000000..4b1a718 Binary files /dev/null and b/assets/voxygen/voxel/npc/adlet/icepicker/tail.vox differ diff --git a/assets/voxygen/voxel/npc/adlet/tracker/chest.vox b/assets/voxygen/voxel/npc/adlet/tracker/chest.vox new file mode 100644 index 0000000..574c20f Binary files /dev/null and b/assets/voxygen/voxel/npc/adlet/tracker/chest.vox differ diff --git a/assets/voxygen/voxel/npc/adlet/tracker/foot_r.vox b/assets/voxygen/voxel/npc/adlet/tracker/foot_r.vox new file mode 100644 index 0000000..a12bdbd Binary files /dev/null and b/assets/voxygen/voxel/npc/adlet/tracker/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/adlet/tracker/hand_r.vox b/assets/voxygen/voxel/npc/adlet/tracker/hand_r.vox new file mode 100644 index 0000000..6a8ef2f Binary files /dev/null and b/assets/voxygen/voxel/npc/adlet/tracker/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/adlet/tracker/head.vox b/assets/voxygen/voxel/npc/adlet/tracker/head.vox new file mode 100644 index 0000000..235bcda Binary files /dev/null and b/assets/voxygen/voxel/npc/adlet/tracker/head.vox differ diff --git a/assets/voxygen/voxel/npc/adlet/tracker/pants.vox b/assets/voxygen/voxel/npc/adlet/tracker/pants.vox new file mode 100644 index 0000000..03d4436 Binary files /dev/null and b/assets/voxygen/voxel/npc/adlet/tracker/pants.vox differ diff --git a/assets/voxygen/voxel/npc/adlet/tracker/tail.vox b/assets/voxygen/voxel/npc/adlet/tracker/tail.vox new file mode 100644 index 0000000..a507fb9 Binary files /dev/null and b/assets/voxygen/voxel/npc/adlet/tracker/tail.vox differ diff --git a/assets/voxygen/voxel/npc/akhlut/male/foot_br.vox b/assets/voxygen/voxel/npc/akhlut/male/foot_br.vox new file mode 100644 index 0000000..5f54e54 Binary files /dev/null and b/assets/voxygen/voxel/npc/akhlut/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/akhlut/male/foot_fr.vox b/assets/voxygen/voxel/npc/akhlut/male/foot_fr.vox new file mode 100644 index 0000000..4d2b5fa Binary files /dev/null and b/assets/voxygen/voxel/npc/akhlut/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/akhlut/male/head.vox b/assets/voxygen/voxel/npc/akhlut/male/head.vox new file mode 100644 index 0000000..1e20e2e Binary files /dev/null and b/assets/voxygen/voxel/npc/akhlut/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/akhlut/male/jaw.vox b/assets/voxygen/voxel/npc/akhlut/male/jaw.vox new file mode 100644 index 0000000..eb94208 Binary files /dev/null and b/assets/voxygen/voxel/npc/akhlut/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/akhlut/male/leg_br.vox b/assets/voxygen/voxel/npc/akhlut/male/leg_br.vox new file mode 100644 index 0000000..bb59c82 Binary files /dev/null and b/assets/voxygen/voxel/npc/akhlut/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/akhlut/male/leg_fr.vox b/assets/voxygen/voxel/npc/akhlut/male/leg_fr.vox new file mode 100644 index 0000000..66305b6 Binary files /dev/null and b/assets/voxygen/voxel/npc/akhlut/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/akhlut/male/neck.vox b/assets/voxygen/voxel/npc/akhlut/male/neck.vox new file mode 100644 index 0000000..4f9bdd9 Binary files /dev/null and b/assets/voxygen/voxel/npc/akhlut/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/akhlut/male/tail.vox b/assets/voxygen/voxel/npc/akhlut/male/tail.vox new file mode 100644 index 0000000..809f279 Binary files /dev/null and b/assets/voxygen/voxel/npc/akhlut/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/akhlut/male/torso_back.vox b/assets/voxygen/voxel/npc/akhlut/male/torso_back.vox new file mode 100644 index 0000000..467fb2c Binary files /dev/null and b/assets/voxygen/voxel/npc/akhlut/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/akhlut/male/torso_front.vox b/assets/voxygen/voxel/npc/akhlut/male/torso_front.vox new file mode 100644 index 0000000..d7fddff Binary files /dev/null and b/assets/voxygen/voxel/npc/akhlut/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/alligator/male/chest.vox b/assets/voxygen/voxel/npc/alligator/male/chest.vox new file mode 100644 index 0000000..98149f4 Binary files /dev/null and b/assets/voxygen/voxel/npc/alligator/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/alligator/male/foot_br.vox b/assets/voxygen/voxel/npc/alligator/male/foot_br.vox new file mode 100644 index 0000000..8a154a3 Binary files /dev/null and b/assets/voxygen/voxel/npc/alligator/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/alligator/male/foot_fr.vox b/assets/voxygen/voxel/npc/alligator/male/foot_fr.vox new file mode 100644 index 0000000..2b83989 Binary files /dev/null and b/assets/voxygen/voxel/npc/alligator/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/alligator/male/head_lower.vox b/assets/voxygen/voxel/npc/alligator/male/head_lower.vox new file mode 100644 index 0000000..968d538 Binary files /dev/null and b/assets/voxygen/voxel/npc/alligator/male/head_lower.vox differ diff --git a/assets/voxygen/voxel/npc/alligator/male/head_upper.vox b/assets/voxygen/voxel/npc/alligator/male/head_upper.vox new file mode 100644 index 0000000..6362ebc Binary files /dev/null and b/assets/voxygen/voxel/npc/alligator/male/head_upper.vox differ diff --git a/assets/voxygen/voxel/npc/alligator/male/jaw.vox b/assets/voxygen/voxel/npc/alligator/male/jaw.vox new file mode 100644 index 0000000..1c87c49 Binary files /dev/null and b/assets/voxygen/voxel/npc/alligator/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/alligator/male/tail_front.vox b/assets/voxygen/voxel/npc/alligator/male/tail_front.vox new file mode 100644 index 0000000..38226f9 Binary files /dev/null and b/assets/voxygen/voxel/npc/alligator/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/alligator/male/tail_rear.vox b/assets/voxygen/voxel/npc/alligator/male/tail_rear.vox new file mode 100644 index 0000000..66a171e Binary files /dev/null and b/assets/voxygen/voxel/npc/alligator/male/tail_rear.vox differ diff --git a/assets/voxygen/voxel/npc/alpaca/male/ears.vox b/assets/voxygen/voxel/npc/alpaca/male/ears.vox new file mode 100644 index 0000000..1c60383 Binary files /dev/null and b/assets/voxygen/voxel/npc/alpaca/male/ears.vox differ diff --git a/assets/voxygen/voxel/npc/alpaca/male/foot_br.vox b/assets/voxygen/voxel/npc/alpaca/male/foot_br.vox new file mode 100644 index 0000000..31d5efd Binary files /dev/null and b/assets/voxygen/voxel/npc/alpaca/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/alpaca/male/foot_fr.vox b/assets/voxygen/voxel/npc/alpaca/male/foot_fr.vox new file mode 100644 index 0000000..2bde925 Binary files /dev/null and b/assets/voxygen/voxel/npc/alpaca/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/alpaca/male/head.vox b/assets/voxygen/voxel/npc/alpaca/male/head.vox new file mode 100644 index 0000000..e1ca48e Binary files /dev/null and b/assets/voxygen/voxel/npc/alpaca/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/alpaca/male/jaw.vox b/assets/voxygen/voxel/npc/alpaca/male/jaw.vox new file mode 100644 index 0000000..208e99b Binary files /dev/null and b/assets/voxygen/voxel/npc/alpaca/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/alpaca/male/leg_br.vox b/assets/voxygen/voxel/npc/alpaca/male/leg_br.vox new file mode 100644 index 0000000..abf878f Binary files /dev/null and b/assets/voxygen/voxel/npc/alpaca/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/alpaca/male/leg_fr.vox b/assets/voxygen/voxel/npc/alpaca/male/leg_fr.vox new file mode 100644 index 0000000..c522a33 Binary files /dev/null and b/assets/voxygen/voxel/npc/alpaca/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/alpaca/male/neck.vox b/assets/voxygen/voxel/npc/alpaca/male/neck.vox new file mode 100644 index 0000000..d0f5b03 Binary files /dev/null and b/assets/voxygen/voxel/npc/alpaca/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/alpaca/male/tail.vox b/assets/voxygen/voxel/npc/alpaca/male/tail.vox new file mode 100644 index 0000000..a3f11a8 Binary files /dev/null and b/assets/voxygen/voxel/npc/alpaca/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/alpaca/male/torso_back.vox b/assets/voxygen/voxel/npc/alpaca/male/torso_back.vox new file mode 100644 index 0000000..c24885d Binary files /dev/null and b/assets/voxygen/voxel/npc/alpaca/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/alpaca/male/torso_front.vox b/assets/voxygen/voxel/npc/alpaca/male/torso_front.vox new file mode 100644 index 0000000..b567931 Binary files /dev/null and b/assets/voxygen/voxel/npc/alpaca/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/ancienteffigy/male/ancienteffigy.vox b/assets/voxygen/voxel/npc/ancienteffigy/male/ancienteffigy.vox new file mode 100644 index 0000000..7675bbc Binary files /dev/null and b/assets/voxygen/voxel/npc/ancienteffigy/male/ancienteffigy.vox differ diff --git a/assets/voxygen/voxel/npc/antelope/male/foot_br.vox b/assets/voxygen/voxel/npc/antelope/male/foot_br.vox new file mode 100644 index 0000000..9733932 Binary files /dev/null and b/assets/voxygen/voxel/npc/antelope/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/antelope/male/foot_fr.vox b/assets/voxygen/voxel/npc/antelope/male/foot_fr.vox new file mode 100644 index 0000000..56142c1 Binary files /dev/null and b/assets/voxygen/voxel/npc/antelope/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/antelope/male/head.vox b/assets/voxygen/voxel/npc/antelope/male/head.vox new file mode 100644 index 0000000..19083c0 Binary files /dev/null and b/assets/voxygen/voxel/npc/antelope/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/antelope/male/jaw.vox b/assets/voxygen/voxel/npc/antelope/male/jaw.vox new file mode 100644 index 0000000..bf0b1eb Binary files /dev/null and b/assets/voxygen/voxel/npc/antelope/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/antelope/male/leg_br.vox b/assets/voxygen/voxel/npc/antelope/male/leg_br.vox new file mode 100644 index 0000000..95d1f32 Binary files /dev/null and b/assets/voxygen/voxel/npc/antelope/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/antelope/male/leg_fr.vox b/assets/voxygen/voxel/npc/antelope/male/leg_fr.vox new file mode 100644 index 0000000..f0e9613 Binary files /dev/null and b/assets/voxygen/voxel/npc/antelope/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/antelope/male/neck.vox b/assets/voxygen/voxel/npc/antelope/male/neck.vox new file mode 100644 index 0000000..40780d2 Binary files /dev/null and b/assets/voxygen/voxel/npc/antelope/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/antelope/male/tail.vox b/assets/voxygen/voxel/npc/antelope/male/tail.vox new file mode 100644 index 0000000..9d6221d Binary files /dev/null and b/assets/voxygen/voxel/npc/antelope/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/antelope/male/torso_back.vox b/assets/voxygen/voxel/npc/antelope/male/torso_back.vox new file mode 100644 index 0000000..71a6ce3 Binary files /dev/null and b/assets/voxygen/voxel/npc/antelope/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/antelope/male/torso_front.vox b/assets/voxygen/voxel/npc/antelope/male/torso_front.vox new file mode 100644 index 0000000..9bdf5de Binary files /dev/null and b/assets/voxygen/voxel/npc/antelope/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/antlion/male/chest.vox b/assets/voxygen/voxel/npc/antlion/male/chest.vox new file mode 100644 index 0000000..3902557 Binary files /dev/null and b/assets/voxygen/voxel/npc/antlion/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/antlion/male/head.vox b/assets/voxygen/voxel/npc/antlion/male/head.vox new file mode 100644 index 0000000..b39dab9 Binary files /dev/null and b/assets/voxygen/voxel/npc/antlion/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/antlion/male/leg_bcr.vox b/assets/voxygen/voxel/npc/antlion/male/leg_bcr.vox new file mode 100644 index 0000000..8ce2302 Binary files /dev/null and b/assets/voxygen/voxel/npc/antlion/male/leg_bcr.vox differ diff --git a/assets/voxygen/voxel/npc/antlion/male/leg_fcr.vox b/assets/voxygen/voxel/npc/antlion/male/leg_fcr.vox new file mode 100644 index 0000000..66d34a8 Binary files /dev/null and b/assets/voxygen/voxel/npc/antlion/male/leg_fcr.vox differ diff --git a/assets/voxygen/voxel/npc/antlion/male/leg_fr.vox b/assets/voxygen/voxel/npc/antlion/male/leg_fr.vox new file mode 100644 index 0000000..a01368b Binary files /dev/null and b/assets/voxygen/voxel/npc/antlion/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/antlion/male/mandible_r.vox b/assets/voxygen/voxel/npc/antlion/male/mandible_r.vox new file mode 100644 index 0000000..a5a8bdf Binary files /dev/null and b/assets/voxygen/voxel/npc/antlion/male/mandible_r.vox differ diff --git a/assets/voxygen/voxel/npc/archaeos/male/chest_back.vox b/assets/voxygen/voxel/npc/archaeos/male/chest_back.vox new file mode 100644 index 0000000..e11d51a Binary files /dev/null and b/assets/voxygen/voxel/npc/archaeos/male/chest_back.vox differ diff --git a/assets/voxygen/voxel/npc/archaeos/male/chest_front.vox b/assets/voxygen/voxel/npc/archaeos/male/chest_front.vox new file mode 100644 index 0000000..233c141 Binary files /dev/null and b/assets/voxygen/voxel/npc/archaeos/male/chest_front.vox differ diff --git a/assets/voxygen/voxel/npc/archaeos/male/foot_r.vox b/assets/voxygen/voxel/npc/archaeos/male/foot_r.vox new file mode 100644 index 0000000..ced71cc Binary files /dev/null and b/assets/voxygen/voxel/npc/archaeos/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/archaeos/male/hand_r.vox b/assets/voxygen/voxel/npc/archaeos/male/hand_r.vox new file mode 100644 index 0000000..f453374 Binary files /dev/null and b/assets/voxygen/voxel/npc/archaeos/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/archaeos/male/head.vox b/assets/voxygen/voxel/npc/archaeos/male/head.vox new file mode 100644 index 0000000..94ce3f4 Binary files /dev/null and b/assets/voxygen/voxel/npc/archaeos/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/archaeos/male/jaw.vox b/assets/voxygen/voxel/npc/archaeos/male/jaw.vox new file mode 100644 index 0000000..47461bd Binary files /dev/null and b/assets/voxygen/voxel/npc/archaeos/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/archaeos/male/leg_r.vox b/assets/voxygen/voxel/npc/archaeos/male/leg_r.vox new file mode 100644 index 0000000..7f205f0 Binary files /dev/null and b/assets/voxygen/voxel/npc/archaeos/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/archaeos/male/neck.vox b/assets/voxygen/voxel/npc/archaeos/male/neck.vox new file mode 100644 index 0000000..29f2c00 Binary files /dev/null and b/assets/voxygen/voxel/npc/archaeos/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/archaeos/male/tail_back.vox b/assets/voxygen/voxel/npc/archaeos/male/tail_back.vox new file mode 100644 index 0000000..cfc6561 Binary files /dev/null and b/assets/voxygen/voxel/npc/archaeos/male/tail_back.vox differ diff --git a/assets/voxygen/voxel/npc/archaeos/male/tail_front.vox b/assets/voxygen/voxel/npc/archaeos/male/tail_front.vox new file mode 100644 index 0000000..086929c Binary files /dev/null and b/assets/voxygen/voxel/npc/archaeos/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/asp/male/chest.vox b/assets/voxygen/voxel/npc/asp/male/chest.vox new file mode 100644 index 0000000..6ed1375 Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/asp/male/foot_br.vox b/assets/voxygen/voxel/npc/asp/male/foot_br.vox new file mode 100644 index 0000000..82b0dac Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/asp/male/foot_fr.vox b/assets/voxygen/voxel/npc/asp/male/foot_fr.vox new file mode 100644 index 0000000..33cf92d Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/asp/male/head_lower.vox b/assets/voxygen/voxel/npc/asp/male/head_lower.vox new file mode 100644 index 0000000..9d035e3 Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/male/head_lower.vox differ diff --git a/assets/voxygen/voxel/npc/asp/male/head_upper.vox b/assets/voxygen/voxel/npc/asp/male/head_upper.vox new file mode 100644 index 0000000..7a53888 Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/male/head_upper.vox differ diff --git a/assets/voxygen/voxel/npc/asp/male/jaw.vox b/assets/voxygen/voxel/npc/asp/male/jaw.vox new file mode 100644 index 0000000..74a71d6 Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/asp/male/tail_front.vox b/assets/voxygen/voxel/npc/asp/male/tail_front.vox new file mode 100644 index 0000000..ce1a025 Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/asp/male/tail_rear.vox b/assets/voxygen/voxel/npc/asp/male/tail_rear.vox new file mode 100644 index 0000000..ad2381b Binary files /dev/null and b/assets/voxygen/voxel/npc/asp/male/tail_rear.vox differ diff --git a/assets/voxygen/voxel/npc/axebeak/male/chest_back.vox b/assets/voxygen/voxel/npc/axebeak/male/chest_back.vox new file mode 100644 index 0000000..8718ccf Binary files /dev/null and b/assets/voxygen/voxel/npc/axebeak/male/chest_back.vox differ diff --git a/assets/voxygen/voxel/npc/axebeak/male/chest_front.vox b/assets/voxygen/voxel/npc/axebeak/male/chest_front.vox new file mode 100644 index 0000000..ab955f4 Binary files /dev/null and b/assets/voxygen/voxel/npc/axebeak/male/chest_front.vox differ diff --git a/assets/voxygen/voxel/npc/axebeak/male/foot_r.vox b/assets/voxygen/voxel/npc/axebeak/male/foot_r.vox new file mode 100644 index 0000000..4904315 Binary files /dev/null and b/assets/voxygen/voxel/npc/axebeak/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/axebeak/male/hand_r.vox b/assets/voxygen/voxel/npc/axebeak/male/hand_r.vox new file mode 100644 index 0000000..dad06db Binary files /dev/null and b/assets/voxygen/voxel/npc/axebeak/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/axebeak/male/head.vox b/assets/voxygen/voxel/npc/axebeak/male/head.vox new file mode 100644 index 0000000..97c16b5 Binary files /dev/null and b/assets/voxygen/voxel/npc/axebeak/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/axebeak/male/jaw.vox b/assets/voxygen/voxel/npc/axebeak/male/jaw.vox new file mode 100644 index 0000000..5634785 Binary files /dev/null and b/assets/voxygen/voxel/npc/axebeak/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/axebeak/male/leg_r.vox b/assets/voxygen/voxel/npc/axebeak/male/leg_r.vox new file mode 100644 index 0000000..d906aed Binary files /dev/null and b/assets/voxygen/voxel/npc/axebeak/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/axebeak/male/neck.vox b/assets/voxygen/voxel/npc/axebeak/male/neck.vox new file mode 100644 index 0000000..c2ac7af Binary files /dev/null and b/assets/voxygen/voxel/npc/axebeak/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/axebeak/male/tail_front.vox b/assets/voxygen/voxel/npc/axebeak/male/tail_front.vox new file mode 100644 index 0000000..37448ee Binary files /dev/null and b/assets/voxygen/voxel/npc/axebeak/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/axolotl/male/chest.vox b/assets/voxygen/voxel/npc/axolotl/male/chest.vox new file mode 100644 index 0000000..34487f9 Binary files /dev/null and b/assets/voxygen/voxel/npc/axolotl/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/axolotl/male/foot_br.vox b/assets/voxygen/voxel/npc/axolotl/male/foot_br.vox new file mode 100644 index 0000000..77072f6 Binary files /dev/null and b/assets/voxygen/voxel/npc/axolotl/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/axolotl/male/foot_fr.vox b/assets/voxygen/voxel/npc/axolotl/male/foot_fr.vox new file mode 100644 index 0000000..73ab252 Binary files /dev/null and b/assets/voxygen/voxel/npc/axolotl/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/axolotl/male/head.vox b/assets/voxygen/voxel/npc/axolotl/male/head.vox new file mode 100644 index 0000000..d153f8a Binary files /dev/null and b/assets/voxygen/voxel/npc/axolotl/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/axolotl/male/tail.vox b/assets/voxygen/voxel/npc/axolotl/male/tail.vox new file mode 100644 index 0000000..f21b32f Binary files /dev/null and b/assets/voxygen/voxel/npc/axolotl/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/barghest/male/foot_br.vox b/assets/voxygen/voxel/npc/barghest/male/foot_br.vox new file mode 100644 index 0000000..89ecade Binary files /dev/null and b/assets/voxygen/voxel/npc/barghest/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/barghest/male/foot_fr.vox b/assets/voxygen/voxel/npc/barghest/male/foot_fr.vox new file mode 100644 index 0000000..c95d6af Binary files /dev/null and b/assets/voxygen/voxel/npc/barghest/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/barghest/male/head.vox b/assets/voxygen/voxel/npc/barghest/male/head.vox new file mode 100644 index 0000000..fa9586a Binary files /dev/null and b/assets/voxygen/voxel/npc/barghest/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/barghest/male/jaw.vox b/assets/voxygen/voxel/npc/barghest/male/jaw.vox new file mode 100644 index 0000000..eab3e46 Binary files /dev/null and b/assets/voxygen/voxel/npc/barghest/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/barghest/male/leg_br.vox b/assets/voxygen/voxel/npc/barghest/male/leg_br.vox new file mode 100644 index 0000000..9df1bd0 Binary files /dev/null and b/assets/voxygen/voxel/npc/barghest/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/barghest/male/leg_fr.vox b/assets/voxygen/voxel/npc/barghest/male/leg_fr.vox new file mode 100644 index 0000000..fad246c Binary files /dev/null and b/assets/voxygen/voxel/npc/barghest/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/barghest/male/neck.vox b/assets/voxygen/voxel/npc/barghest/male/neck.vox new file mode 100644 index 0000000..0834c46 Binary files /dev/null and b/assets/voxygen/voxel/npc/barghest/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/barghest/male/tail.vox b/assets/voxygen/voxel/npc/barghest/male/tail.vox new file mode 100644 index 0000000..2090fa2 Binary files /dev/null and b/assets/voxygen/voxel/npc/barghest/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/barghest/male/torso_back.vox b/assets/voxygen/voxel/npc/barghest/male/torso_back.vox new file mode 100644 index 0000000..d01a6ea Binary files /dev/null and b/assets/voxygen/voxel/npc/barghest/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/barghest/male/torso_front.vox b/assets/voxygen/voxel/npc/barghest/male/torso_front.vox new file mode 100644 index 0000000..f79f45c Binary files /dev/null and b/assets/voxygen/voxel/npc/barghest/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/basilisk/male/chest.vox b/assets/voxygen/voxel/npc/basilisk/male/chest.vox new file mode 100644 index 0000000..dedc0ba Binary files /dev/null and b/assets/voxygen/voxel/npc/basilisk/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/basilisk/male/foot_br.vox b/assets/voxygen/voxel/npc/basilisk/male/foot_br.vox new file mode 100644 index 0000000..bcb8f55 Binary files /dev/null and b/assets/voxygen/voxel/npc/basilisk/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/basilisk/male/foot_fr.vox b/assets/voxygen/voxel/npc/basilisk/male/foot_fr.vox new file mode 100644 index 0000000..79afcec Binary files /dev/null and b/assets/voxygen/voxel/npc/basilisk/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/basilisk/male/head_lower.vox b/assets/voxygen/voxel/npc/basilisk/male/head_lower.vox new file mode 100644 index 0000000..38cd4df Binary files /dev/null and b/assets/voxygen/voxel/npc/basilisk/male/head_lower.vox differ diff --git a/assets/voxygen/voxel/npc/basilisk/male/head_upper.vox b/assets/voxygen/voxel/npc/basilisk/male/head_upper.vox new file mode 100644 index 0000000..e985dc9 Binary files /dev/null and b/assets/voxygen/voxel/npc/basilisk/male/head_upper.vox differ diff --git a/assets/voxygen/voxel/npc/basilisk/male/jaw.vox b/assets/voxygen/voxel/npc/basilisk/male/jaw.vox new file mode 100644 index 0000000..3be030e Binary files /dev/null and b/assets/voxygen/voxel/npc/basilisk/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/basilisk/male/tail_front.vox b/assets/voxygen/voxel/npc/basilisk/male/tail_front.vox new file mode 100644 index 0000000..25a0137 Binary files /dev/null and b/assets/voxygen/voxel/npc/basilisk/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/basilisk/male/tail_rear.vox b/assets/voxygen/voxel/npc/basilisk/male/tail_rear.vox new file mode 100644 index 0000000..cfcece4 Binary files /dev/null and b/assets/voxygen/voxel/npc/basilisk/male/tail_rear.vox differ diff --git a/assets/voxygen/voxel/npc/bat/male/chest.vox b/assets/voxygen/voxel/npc/bat/male/chest.vox new file mode 100644 index 0000000..4cf4d34 Binary files /dev/null and b/assets/voxygen/voxel/npc/bat/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/bat/male/head.vox b/assets/voxygen/voxel/npc/bat/male/head.vox new file mode 100644 index 0000000..2ea0075 Binary files /dev/null and b/assets/voxygen/voxel/npc/bat/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/bat/male/leg_r.vox b/assets/voxygen/voxel/npc/bat/male/leg_r.vox new file mode 100644 index 0000000..af19f89 Binary files /dev/null and b/assets/voxygen/voxel/npc/bat/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/bat/male/tail.vox b/assets/voxygen/voxel/npc/bat/male/tail.vox new file mode 100644 index 0000000..47b9ef9 Binary files /dev/null and b/assets/voxygen/voxel/npc/bat/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/bat/male/wing_in_r.vox b/assets/voxygen/voxel/npc/bat/male/wing_in_r.vox new file mode 100644 index 0000000..71d1f7d Binary files /dev/null and b/assets/voxygen/voxel/npc/bat/male/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/bat/male/wing_out_r.vox b/assets/voxygen/voxel/npc/bat/male/wing_out_r.vox new file mode 100644 index 0000000..2ccc8e6 Binary files /dev/null and b/assets/voxygen/voxel/npc/bat/male/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/batfox/male/chest.vox b/assets/voxygen/voxel/npc/batfox/male/chest.vox new file mode 100644 index 0000000..5264d38 Binary files /dev/null and b/assets/voxygen/voxel/npc/batfox/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/batfox/male/foot_br.vox b/assets/voxygen/voxel/npc/batfox/male/foot_br.vox new file mode 100644 index 0000000..d25e04f Binary files /dev/null and b/assets/voxygen/voxel/npc/batfox/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/batfox/male/foot_fr.vox b/assets/voxygen/voxel/npc/batfox/male/foot_fr.vox new file mode 100644 index 0000000..a211012 Binary files /dev/null and b/assets/voxygen/voxel/npc/batfox/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/batfox/male/head.vox b/assets/voxygen/voxel/npc/batfox/male/head.vox new file mode 100644 index 0000000..cacd070 Binary files /dev/null and b/assets/voxygen/voxel/npc/batfox/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/bear/male/ears.vox b/assets/voxygen/voxel/npc/bear/male/ears.vox new file mode 100644 index 0000000..1708758 Binary files /dev/null and b/assets/voxygen/voxel/npc/bear/male/ears.vox differ diff --git a/assets/voxygen/voxel/npc/bear/male/foot_br.vox b/assets/voxygen/voxel/npc/bear/male/foot_br.vox new file mode 100644 index 0000000..0e1c972 Binary files /dev/null and b/assets/voxygen/voxel/npc/bear/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/bear/male/foot_fr.vox b/assets/voxygen/voxel/npc/bear/male/foot_fr.vox new file mode 100644 index 0000000..70aa173 Binary files /dev/null and b/assets/voxygen/voxel/npc/bear/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/bear/male/head.vox b/assets/voxygen/voxel/npc/bear/male/head.vox new file mode 100644 index 0000000..1c9dddd Binary files /dev/null and b/assets/voxygen/voxel/npc/bear/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/bear/male/jaw.vox b/assets/voxygen/voxel/npc/bear/male/jaw.vox new file mode 100644 index 0000000..2becc8c Binary files /dev/null and b/assets/voxygen/voxel/npc/bear/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/bear/male/leg_br.vox b/assets/voxygen/voxel/npc/bear/male/leg_br.vox new file mode 100644 index 0000000..ee581d5 Binary files /dev/null and b/assets/voxygen/voxel/npc/bear/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/bear/male/leg_fr.vox b/assets/voxygen/voxel/npc/bear/male/leg_fr.vox new file mode 100644 index 0000000..47e2efd Binary files /dev/null and b/assets/voxygen/voxel/npc/bear/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/bear/male/neck.vox b/assets/voxygen/voxel/npc/bear/male/neck.vox new file mode 100644 index 0000000..d20858f Binary files /dev/null and b/assets/voxygen/voxel/npc/bear/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/bear/male/tail.vox b/assets/voxygen/voxel/npc/bear/male/tail.vox new file mode 100644 index 0000000..eaa0ddd Binary files /dev/null and b/assets/voxygen/voxel/npc/bear/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/bear/male/torso_back.vox b/assets/voxygen/voxel/npc/bear/male/torso_back.vox new file mode 100644 index 0000000..3831122 Binary files /dev/null and b/assets/voxygen/voxel/npc/bear/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/bear/male/torso_front.vox b/assets/voxygen/voxel/npc/bear/male/torso_front.vox new file mode 100644 index 0000000..771aaa3 Binary files /dev/null and b/assets/voxygen/voxel/npc/bear/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/beaver/male/chest.vox b/assets/voxygen/voxel/npc/beaver/male/chest.vox new file mode 100644 index 0000000..66da082 Binary files /dev/null and b/assets/voxygen/voxel/npc/beaver/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/beaver/male/foot_br.vox b/assets/voxygen/voxel/npc/beaver/male/foot_br.vox new file mode 100644 index 0000000..13aa499 Binary files /dev/null and b/assets/voxygen/voxel/npc/beaver/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/beaver/male/foot_fr.vox b/assets/voxygen/voxel/npc/beaver/male/foot_fr.vox new file mode 100644 index 0000000..2594d92 Binary files /dev/null and b/assets/voxygen/voxel/npc/beaver/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/beaver/male/head.vox b/assets/voxygen/voxel/npc/beaver/male/head.vox new file mode 100644 index 0000000..7d77f51 Binary files /dev/null and b/assets/voxygen/voxel/npc/beaver/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/beaver/male/tail.vox b/assets/voxygen/voxel/npc/beaver/male/tail.vox new file mode 100644 index 0000000..78f17bb Binary files /dev/null and b/assets/voxygen/voxel/npc/beaver/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/black_widow/male/chest.vox b/assets/voxygen/voxel/npc/black_widow/male/chest.vox new file mode 100644 index 0000000..60d195c Binary files /dev/null and b/assets/voxygen/voxel/npc/black_widow/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/black_widow/male/head.vox b/assets/voxygen/voxel/npc/black_widow/male/head.vox new file mode 100644 index 0000000..fc18055 Binary files /dev/null and b/assets/voxygen/voxel/npc/black_widow/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/black_widow/male/leg_bcr.vox b/assets/voxygen/voxel/npc/black_widow/male/leg_bcr.vox new file mode 100644 index 0000000..e61d81c Binary files /dev/null and b/assets/voxygen/voxel/npc/black_widow/male/leg_bcr.vox differ diff --git a/assets/voxygen/voxel/npc/black_widow/male/leg_br.vox b/assets/voxygen/voxel/npc/black_widow/male/leg_br.vox new file mode 100644 index 0000000..cced3c9 Binary files /dev/null and b/assets/voxygen/voxel/npc/black_widow/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/black_widow/male/leg_fcr.vox b/assets/voxygen/voxel/npc/black_widow/male/leg_fcr.vox new file mode 100644 index 0000000..cced3c9 Binary files /dev/null and b/assets/voxygen/voxel/npc/black_widow/male/leg_fcr.vox differ diff --git a/assets/voxygen/voxel/npc/black_widow/male/leg_fr.vox b/assets/voxygen/voxel/npc/black_widow/male/leg_fr.vox new file mode 100644 index 0000000..6ddd8d3 Binary files /dev/null and b/assets/voxygen/voxel/npc/black_widow/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/black_widow/male/mandible_r.vox b/assets/voxygen/voxel/npc/black_widow/male/mandible_r.vox new file mode 100644 index 0000000..3fe21b5 Binary files /dev/null and b/assets/voxygen/voxel/npc/black_widow/male/mandible_r.vox differ diff --git a/assets/voxygen/voxel/npc/bloodmoon_bat/male/chest.vox b/assets/voxygen/voxel/npc/bloodmoon_bat/male/chest.vox new file mode 100644 index 0000000..2458ed0 Binary files /dev/null and b/assets/voxygen/voxel/npc/bloodmoon_bat/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/bloodmoon_bat/male/head.vox b/assets/voxygen/voxel/npc/bloodmoon_bat/male/head.vox new file mode 100644 index 0000000..de3fe22 Binary files /dev/null and b/assets/voxygen/voxel/npc/bloodmoon_bat/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/bloodmoon_bat/male/leg_r.vox b/assets/voxygen/voxel/npc/bloodmoon_bat/male/leg_r.vox new file mode 100644 index 0000000..84b5ee3 Binary files /dev/null and b/assets/voxygen/voxel/npc/bloodmoon_bat/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/bloodmoon_bat/male/tail.vox b/assets/voxygen/voxel/npc/bloodmoon_bat/male/tail.vox new file mode 100644 index 0000000..7b6ec0b Binary files /dev/null and b/assets/voxygen/voxel/npc/bloodmoon_bat/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/bloodmoon_bat/male/wing_in_r.vox b/assets/voxygen/voxel/npc/bloodmoon_bat/male/wing_in_r.vox new file mode 100644 index 0000000..c7c42b4 Binary files /dev/null and b/assets/voxygen/voxel/npc/bloodmoon_bat/male/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/bloodmoon_bat/male/wing_out_r.vox b/assets/voxygen/voxel/npc/bloodmoon_bat/male/wing_out_r.vox new file mode 100644 index 0000000..fa05d49 Binary files /dev/null and b/assets/voxygen/voxel/npc/bloodmoon_bat/male/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/bloodmoon_heiress/chest.vox b/assets/voxygen/voxel/npc/bloodmoon_heiress/chest.vox new file mode 100644 index 0000000..66949fa Binary files /dev/null and b/assets/voxygen/voxel/npc/bloodmoon_heiress/chest.vox differ diff --git a/assets/voxygen/voxel/npc/bloodmoon_heiress/hand.vox b/assets/voxygen/voxel/npc/bloodmoon_heiress/hand.vox new file mode 100644 index 0000000..958daf6 Binary files /dev/null and b/assets/voxygen/voxel/npc/bloodmoon_heiress/hand.vox differ diff --git a/assets/voxygen/voxel/npc/bloodmoon_heiress/head.vox b/assets/voxygen/voxel/npc/bloodmoon_heiress/head.vox new file mode 100644 index 0000000..67815c5 Binary files /dev/null and b/assets/voxygen/voxel/npc/bloodmoon_heiress/head.vox differ diff --git a/assets/voxygen/voxel/npc/bloodmoon_heiress/pants.vox b/assets/voxygen/voxel/npc/bloodmoon_heiress/pants.vox new file mode 100644 index 0000000..4bba834 Binary files /dev/null and b/assets/voxygen/voxel/npc/bloodmoon_heiress/pants.vox differ diff --git a/assets/voxygen/voxel/npc/bloodmoon_heiress/wing.vox b/assets/voxygen/voxel/npc/bloodmoon_heiress/wing.vox new file mode 100644 index 0000000..e752efc Binary files /dev/null and b/assets/voxygen/voxel/npc/bloodmoon_heiress/wing.vox differ diff --git a/assets/voxygen/voxel/npc/bloodservant/chest.vox b/assets/voxygen/voxel/npc/bloodservant/chest.vox new file mode 100644 index 0000000..3885475 Binary files /dev/null and b/assets/voxygen/voxel/npc/bloodservant/chest.vox differ diff --git a/assets/voxygen/voxel/npc/bloodservant/foot_r.vox b/assets/voxygen/voxel/npc/bloodservant/foot_r.vox new file mode 100644 index 0000000..0af1563 Binary files /dev/null and b/assets/voxygen/voxel/npc/bloodservant/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/bloodservant/hand_r.vox b/assets/voxygen/voxel/npc/bloodservant/hand_r.vox new file mode 100644 index 0000000..b3baa85 Binary files /dev/null and b/assets/voxygen/voxel/npc/bloodservant/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/bloodservant/head.vox b/assets/voxygen/voxel/npc/bloodservant/head.vox new file mode 100644 index 0000000..f760e4d Binary files /dev/null and b/assets/voxygen/voxel/npc/bloodservant/head.vox differ diff --git a/assets/voxygen/voxel/npc/bloodservant/pants.vox b/assets/voxygen/voxel/npc/bloodservant/pants.vox new file mode 100644 index 0000000..c6410d4 Binary files /dev/null and b/assets/voxygen/voxel/npc/bloodservant/pants.vox differ diff --git a/assets/voxygen/voxel/npc/boar/female/chest.vox b/assets/voxygen/voxel/npc/boar/female/chest.vox new file mode 100644 index 0000000..791e716 Binary files /dev/null and b/assets/voxygen/voxel/npc/boar/female/chest.vox differ diff --git a/assets/voxygen/voxel/npc/boar/female/foot_br.vox b/assets/voxygen/voxel/npc/boar/female/foot_br.vox new file mode 100644 index 0000000..3650937 Binary files /dev/null and b/assets/voxygen/voxel/npc/boar/female/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/boar/female/foot_fr.vox b/assets/voxygen/voxel/npc/boar/female/foot_fr.vox new file mode 100644 index 0000000..c2b5b2e Binary files /dev/null and b/assets/voxygen/voxel/npc/boar/female/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/boar/female/head.vox b/assets/voxygen/voxel/npc/boar/female/head.vox new file mode 100644 index 0000000..c5b90d9 Binary files /dev/null and b/assets/voxygen/voxel/npc/boar/female/head.vox differ diff --git a/assets/voxygen/voxel/npc/boar/female/tail.vox b/assets/voxygen/voxel/npc/boar/female/tail.vox new file mode 100644 index 0000000..46c1eb7 Binary files /dev/null and b/assets/voxygen/voxel/npc/boar/female/tail.vox differ diff --git a/assets/voxygen/voxel/npc/boar/male/chest.vox b/assets/voxygen/voxel/npc/boar/male/chest.vox new file mode 100644 index 0000000..f197a95 Binary files /dev/null and b/assets/voxygen/voxel/npc/boar/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/boar/male/foot_br.vox b/assets/voxygen/voxel/npc/boar/male/foot_br.vox new file mode 100644 index 0000000..ea50f22 Binary files /dev/null and b/assets/voxygen/voxel/npc/boar/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/boar/male/foot_fr.vox b/assets/voxygen/voxel/npc/boar/male/foot_fr.vox new file mode 100644 index 0000000..fcab120 Binary files /dev/null and b/assets/voxygen/voxel/npc/boar/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/boar/male/head.vox b/assets/voxygen/voxel/npc/boar/male/head.vox new file mode 100644 index 0000000..67ed6e6 Binary files /dev/null and b/assets/voxygen/voxel/npc/boar/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/boar/male/tail.vox b/assets/voxygen/voxel/npc/boar/male/tail.vox new file mode 100644 index 0000000..7ce1ce9 Binary files /dev/null and b/assets/voxygen/voxel/npc/boar/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/bonerattler/male/foot_br.vox b/assets/voxygen/voxel/npc/bonerattler/male/foot_br.vox new file mode 100644 index 0000000..3a14831 Binary files /dev/null and b/assets/voxygen/voxel/npc/bonerattler/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/bonerattler/male/foot_fr.vox b/assets/voxygen/voxel/npc/bonerattler/male/foot_fr.vox new file mode 100644 index 0000000..b79810a Binary files /dev/null and b/assets/voxygen/voxel/npc/bonerattler/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/bonerattler/male/head.vox b/assets/voxygen/voxel/npc/bonerattler/male/head.vox new file mode 100644 index 0000000..4b2c954 Binary files /dev/null and b/assets/voxygen/voxel/npc/bonerattler/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/bonerattler/male/jaw.vox b/assets/voxygen/voxel/npc/bonerattler/male/jaw.vox new file mode 100644 index 0000000..8975f18 Binary files /dev/null and b/assets/voxygen/voxel/npc/bonerattler/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/bonerattler/male/leg_br.vox b/assets/voxygen/voxel/npc/bonerattler/male/leg_br.vox new file mode 100644 index 0000000..cf8a24a Binary files /dev/null and b/assets/voxygen/voxel/npc/bonerattler/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/bonerattler/male/leg_fr.vox b/assets/voxygen/voxel/npc/bonerattler/male/leg_fr.vox new file mode 100644 index 0000000..82c57b3 Binary files /dev/null and b/assets/voxygen/voxel/npc/bonerattler/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/bonerattler/male/neck.vox b/assets/voxygen/voxel/npc/bonerattler/male/neck.vox new file mode 100644 index 0000000..d54b11c Binary files /dev/null and b/assets/voxygen/voxel/npc/bonerattler/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/bonerattler/male/tail.vox b/assets/voxygen/voxel/npc/bonerattler/male/tail.vox new file mode 100644 index 0000000..57f74cd Binary files /dev/null and b/assets/voxygen/voxel/npc/bonerattler/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/bonerattler/male/torso_back.vox b/assets/voxygen/voxel/npc/bonerattler/male/torso_back.vox new file mode 100644 index 0000000..a855abb Binary files /dev/null and b/assets/voxygen/voxel/npc/bonerattler/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/bonerattler/male/torso_front.vox b/assets/voxygen/voxel/npc/bonerattler/male/torso_front.vox new file mode 100644 index 0000000..2eae1da Binary files /dev/null and b/assets/voxygen/voxel/npc/bonerattler/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/boreal/warrior/chest.vox b/assets/voxygen/voxel/npc/boreal/warrior/chest.vox new file mode 100644 index 0000000..ece1d46 Binary files /dev/null and b/assets/voxygen/voxel/npc/boreal/warrior/chest.vox differ diff --git a/assets/voxygen/voxel/npc/boreal/warrior/foot_r.vox b/assets/voxygen/voxel/npc/boreal/warrior/foot_r.vox new file mode 100644 index 0000000..e625381 Binary files /dev/null and b/assets/voxygen/voxel/npc/boreal/warrior/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/boreal/warrior/hand_r.vox b/assets/voxygen/voxel/npc/boreal/warrior/hand_r.vox new file mode 100644 index 0000000..c2b0f76 Binary files /dev/null and b/assets/voxygen/voxel/npc/boreal/warrior/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/boreal/warrior/head.vox b/assets/voxygen/voxel/npc/boreal/warrior/head.vox new file mode 100644 index 0000000..bb3b15d Binary files /dev/null and b/assets/voxygen/voxel/npc/boreal/warrior/head.vox differ diff --git a/assets/voxygen/voxel/npc/boreal/warrior/pants.vox b/assets/voxygen/voxel/npc/boreal/warrior/pants.vox new file mode 100644 index 0000000..4cca817 Binary files /dev/null and b/assets/voxygen/voxel/npc/boreal/warrior/pants.vox differ diff --git a/assets/voxygen/voxel/npc/bristleback/male/foot_br.vox b/assets/voxygen/voxel/npc/bristleback/male/foot_br.vox new file mode 100644 index 0000000..9162f7c Binary files /dev/null and b/assets/voxygen/voxel/npc/bristleback/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/bristleback/male/foot_fr.vox b/assets/voxygen/voxel/npc/bristleback/male/foot_fr.vox new file mode 100644 index 0000000..e53d567 Binary files /dev/null and b/assets/voxygen/voxel/npc/bristleback/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/bristleback/male/head.vox b/assets/voxygen/voxel/npc/bristleback/male/head.vox new file mode 100644 index 0000000..174439e Binary files /dev/null and b/assets/voxygen/voxel/npc/bristleback/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/bristleback/male/jaw.vox b/assets/voxygen/voxel/npc/bristleback/male/jaw.vox new file mode 100644 index 0000000..f26c6b3 Binary files /dev/null and b/assets/voxygen/voxel/npc/bristleback/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/bristleback/male/leg_br.vox b/assets/voxygen/voxel/npc/bristleback/male/leg_br.vox new file mode 100644 index 0000000..5ac8382 Binary files /dev/null and b/assets/voxygen/voxel/npc/bristleback/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/bristleback/male/leg_fr.vox b/assets/voxygen/voxel/npc/bristleback/male/leg_fr.vox new file mode 100644 index 0000000..4519631 Binary files /dev/null and b/assets/voxygen/voxel/npc/bristleback/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/bristleback/male/neck.vox b/assets/voxygen/voxel/npc/bristleback/male/neck.vox new file mode 100644 index 0000000..fc54a4a Binary files /dev/null and b/assets/voxygen/voxel/npc/bristleback/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/bristleback/male/tail.vox b/assets/voxygen/voxel/npc/bristleback/male/tail.vox new file mode 100644 index 0000000..57f3a4b Binary files /dev/null and b/assets/voxygen/voxel/npc/bristleback/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/bristleback/male/torso_back.vox b/assets/voxygen/voxel/npc/bristleback/male/torso_back.vox new file mode 100644 index 0000000..a1da03d Binary files /dev/null and b/assets/voxygen/voxel/npc/bristleback/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/bristleback/male/torso_front.vox b/assets/voxygen/voxel/npc/bristleback/male/torso_front.vox new file mode 100644 index 0000000..f34b5f1 Binary files /dev/null and b/assets/voxygen/voxel/npc/bristleback/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/bushly/male/chest.vox b/assets/voxygen/voxel/npc/bushly/male/chest.vox new file mode 100644 index 0000000..d81b52d Binary files /dev/null and b/assets/voxygen/voxel/npc/bushly/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/bushly/male/foot_r.vox b/assets/voxygen/voxel/npc/bushly/male/foot_r.vox new file mode 100644 index 0000000..09c6558 Binary files /dev/null and b/assets/voxygen/voxel/npc/bushly/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/bushly/male/hand_r.vox b/assets/voxygen/voxel/npc/bushly/male/hand_r.vox new file mode 100644 index 0000000..25e5859 Binary files /dev/null and b/assets/voxygen/voxel/npc/bushly/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/bushly/male/pants.vox b/assets/voxygen/voxel/npc/bushly/male/pants.vox new file mode 100644 index 0000000..c99b703 Binary files /dev/null and b/assets/voxygen/voxel/npc/bushly/male/pants.vox differ diff --git a/assets/voxygen/voxel/npc/cactid/male/chest.vox b/assets/voxygen/voxel/npc/cactid/male/chest.vox new file mode 100644 index 0000000..b398b3a Binary files /dev/null and b/assets/voxygen/voxel/npc/cactid/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/cactid/male/foot_r.vox b/assets/voxygen/voxel/npc/cactid/male/foot_r.vox new file mode 100644 index 0000000..a1268d9 Binary files /dev/null and b/assets/voxygen/voxel/npc/cactid/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/cactid/male/hand_r.vox b/assets/voxygen/voxel/npc/cactid/male/hand_r.vox new file mode 100644 index 0000000..b8eb6a0 Binary files /dev/null and b/assets/voxygen/voxel/npc/cactid/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/cactid/male/head.vox b/assets/voxygen/voxel/npc/cactid/male/head.vox new file mode 100644 index 0000000..331ad7a Binary files /dev/null and b/assets/voxygen/voxel/npc/cactid/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/cactid/male/pants.vox b/assets/voxygen/voxel/npc/cactid/male/pants.vox new file mode 100644 index 0000000..90424c1 Binary files /dev/null and b/assets/voxygen/voxel/npc/cactid/male/pants.vox differ diff --git a/assets/voxygen/voxel/npc/camel/male/foot_br.vox b/assets/voxygen/voxel/npc/camel/male/foot_br.vox new file mode 100644 index 0000000..1d39186 Binary files /dev/null and b/assets/voxygen/voxel/npc/camel/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/camel/male/foot_fr.vox b/assets/voxygen/voxel/npc/camel/male/foot_fr.vox new file mode 100644 index 0000000..426aedc Binary files /dev/null and b/assets/voxygen/voxel/npc/camel/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/camel/male/head.vox b/assets/voxygen/voxel/npc/camel/male/head.vox new file mode 100644 index 0000000..9942e25 Binary files /dev/null and b/assets/voxygen/voxel/npc/camel/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/camel/male/jaw.vox b/assets/voxygen/voxel/npc/camel/male/jaw.vox new file mode 100644 index 0000000..e7d8b08 Binary files /dev/null and b/assets/voxygen/voxel/npc/camel/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/camel/male/leg_br.vox b/assets/voxygen/voxel/npc/camel/male/leg_br.vox new file mode 100644 index 0000000..3ff4485 Binary files /dev/null and b/assets/voxygen/voxel/npc/camel/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/camel/male/leg_fr.vox b/assets/voxygen/voxel/npc/camel/male/leg_fr.vox new file mode 100644 index 0000000..5020f65 Binary files /dev/null and b/assets/voxygen/voxel/npc/camel/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/camel/male/neck.vox b/assets/voxygen/voxel/npc/camel/male/neck.vox new file mode 100644 index 0000000..6eab9c8 Binary files /dev/null and b/assets/voxygen/voxel/npc/camel/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/camel/male/tail.vox b/assets/voxygen/voxel/npc/camel/male/tail.vox new file mode 100644 index 0000000..de31017 Binary files /dev/null and b/assets/voxygen/voxel/npc/camel/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/camel/male/torso_back.vox b/assets/voxygen/voxel/npc/camel/male/torso_back.vox new file mode 100644 index 0000000..7fc8321 Binary files /dev/null and b/assets/voxygen/voxel/npc/camel/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/camel/male/torso_front.vox b/assets/voxygen/voxel/npc/camel/male/torso_front.vox new file mode 100644 index 0000000..f8dffa6 Binary files /dev/null and b/assets/voxygen/voxel/npc/camel/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/cardinalfish/tail.vox b/assets/voxygen/voxel/npc/cardinalfish/tail.vox new file mode 100644 index 0000000..75d5885 Binary files /dev/null and b/assets/voxygen/voxel/npc/cardinalfish/tail.vox differ diff --git a/assets/voxygen/voxel/npc/cardinalfish/torso.vox b/assets/voxygen/voxel/npc/cardinalfish/torso.vox new file mode 100644 index 0000000..54075bb Binary files /dev/null and b/assets/voxygen/voxel/npc/cardinalfish/torso.vox differ diff --git a/assets/voxygen/voxel/npc/cat/female/chest.vox b/assets/voxygen/voxel/npc/cat/female/chest.vox new file mode 100644 index 0000000..bfcaadb Binary files /dev/null and b/assets/voxygen/voxel/npc/cat/female/chest.vox differ diff --git a/assets/voxygen/voxel/npc/cat/female/foot_br.vox b/assets/voxygen/voxel/npc/cat/female/foot_br.vox new file mode 100644 index 0000000..7090dbe Binary files /dev/null and b/assets/voxygen/voxel/npc/cat/female/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/cat/female/foot_fr.vox b/assets/voxygen/voxel/npc/cat/female/foot_fr.vox new file mode 100644 index 0000000..a0d2f92 Binary files /dev/null and b/assets/voxygen/voxel/npc/cat/female/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/cat/female/head.vox b/assets/voxygen/voxel/npc/cat/female/head.vox new file mode 100644 index 0000000..3f23bed Binary files /dev/null and b/assets/voxygen/voxel/npc/cat/female/head.vox differ diff --git a/assets/voxygen/voxel/npc/cat/female/tail.vox b/assets/voxygen/voxel/npc/cat/female/tail.vox new file mode 100644 index 0000000..c759685 Binary files /dev/null and b/assets/voxygen/voxel/npc/cat/female/tail.vox differ diff --git a/assets/voxygen/voxel/npc/cat/male/chest.vox b/assets/voxygen/voxel/npc/cat/male/chest.vox new file mode 100644 index 0000000..c3da780 Binary files /dev/null and b/assets/voxygen/voxel/npc/cat/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/cat/male/foot_br.vox b/assets/voxygen/voxel/npc/cat/male/foot_br.vox new file mode 100644 index 0000000..7b3c7e0 Binary files /dev/null and b/assets/voxygen/voxel/npc/cat/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/cat/male/foot_fr.vox b/assets/voxygen/voxel/npc/cat/male/foot_fr.vox new file mode 100644 index 0000000..73ad602 Binary files /dev/null and b/assets/voxygen/voxel/npc/cat/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/cat/male/head.vox b/assets/voxygen/voxel/npc/cat/male/head.vox new file mode 100644 index 0000000..5e54e07 Binary files /dev/null and b/assets/voxygen/voxel/npc/cat/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/cat/male/tail.vox b/assets/voxygen/voxel/npc/cat/male/tail.vox new file mode 100644 index 0000000..aea2aae Binary files /dev/null and b/assets/voxygen/voxel/npc/cat/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/catoblepas/male/foot_br.vox b/assets/voxygen/voxel/npc/catoblepas/male/foot_br.vox new file mode 100644 index 0000000..c83b3ae Binary files /dev/null and b/assets/voxygen/voxel/npc/catoblepas/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/catoblepas/male/foot_fr.vox b/assets/voxygen/voxel/npc/catoblepas/male/foot_fr.vox new file mode 100644 index 0000000..286d477 Binary files /dev/null and b/assets/voxygen/voxel/npc/catoblepas/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/catoblepas/male/head.vox b/assets/voxygen/voxel/npc/catoblepas/male/head.vox new file mode 100644 index 0000000..2ea6f78 Binary files /dev/null and b/assets/voxygen/voxel/npc/catoblepas/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/catoblepas/male/jaw.vox b/assets/voxygen/voxel/npc/catoblepas/male/jaw.vox new file mode 100644 index 0000000..a96f99f Binary files /dev/null and b/assets/voxygen/voxel/npc/catoblepas/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/catoblepas/male/leg_br.vox b/assets/voxygen/voxel/npc/catoblepas/male/leg_br.vox new file mode 100644 index 0000000..90490e1 Binary files /dev/null and b/assets/voxygen/voxel/npc/catoblepas/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/catoblepas/male/leg_fr.vox b/assets/voxygen/voxel/npc/catoblepas/male/leg_fr.vox new file mode 100644 index 0000000..b1f90e5 Binary files /dev/null and b/assets/voxygen/voxel/npc/catoblepas/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/catoblepas/male/neck.vox b/assets/voxygen/voxel/npc/catoblepas/male/neck.vox new file mode 100644 index 0000000..2d4513a Binary files /dev/null and b/assets/voxygen/voxel/npc/catoblepas/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/catoblepas/male/tail.vox b/assets/voxygen/voxel/npc/catoblepas/male/tail.vox new file mode 100644 index 0000000..d7d610c Binary files /dev/null and b/assets/voxygen/voxel/npc/catoblepas/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/catoblepas/male/torso_back.vox b/assets/voxygen/voxel/npc/catoblepas/male/torso_back.vox new file mode 100644 index 0000000..93c65ab Binary files /dev/null and b/assets/voxygen/voxel/npc/catoblepas/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/catoblepas/male/torso_front.vox b/assets/voxygen/voxel/npc/catoblepas/male/torso_front.vox new file mode 100644 index 0000000..bf9b3a4 Binary files /dev/null and b/assets/voxygen/voxel/npc/catoblepas/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/cattle/female/ears.vox b/assets/voxygen/voxel/npc/cattle/female/ears.vox new file mode 100644 index 0000000..5956b71 Binary files /dev/null and b/assets/voxygen/voxel/npc/cattle/female/ears.vox differ diff --git a/assets/voxygen/voxel/npc/cattle/female/foot_br.vox b/assets/voxygen/voxel/npc/cattle/female/foot_br.vox new file mode 100644 index 0000000..17fd3ea Binary files /dev/null and b/assets/voxygen/voxel/npc/cattle/female/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/cattle/female/foot_fr.vox b/assets/voxygen/voxel/npc/cattle/female/foot_fr.vox new file mode 100644 index 0000000..f33fe09 Binary files /dev/null and b/assets/voxygen/voxel/npc/cattle/female/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/cattle/female/head.vox b/assets/voxygen/voxel/npc/cattle/female/head.vox new file mode 100644 index 0000000..3d10478 Binary files /dev/null and b/assets/voxygen/voxel/npc/cattle/female/head.vox differ diff --git a/assets/voxygen/voxel/npc/cattle/female/jaw.vox b/assets/voxygen/voxel/npc/cattle/female/jaw.vox new file mode 100644 index 0000000..3036bfe Binary files /dev/null and b/assets/voxygen/voxel/npc/cattle/female/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/cattle/female/leg_br.vox b/assets/voxygen/voxel/npc/cattle/female/leg_br.vox new file mode 100644 index 0000000..a9ddd73 Binary files /dev/null and b/assets/voxygen/voxel/npc/cattle/female/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/cattle/female/leg_fr.vox b/assets/voxygen/voxel/npc/cattle/female/leg_fr.vox new file mode 100644 index 0000000..261044c Binary files /dev/null and b/assets/voxygen/voxel/npc/cattle/female/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/cattle/female/neck.vox b/assets/voxygen/voxel/npc/cattle/female/neck.vox new file mode 100644 index 0000000..306ce7b Binary files /dev/null and b/assets/voxygen/voxel/npc/cattle/female/neck.vox differ diff --git a/assets/voxygen/voxel/npc/cattle/female/tail.vox b/assets/voxygen/voxel/npc/cattle/female/tail.vox new file mode 100644 index 0000000..5b6bbce Binary files /dev/null and b/assets/voxygen/voxel/npc/cattle/female/tail.vox differ diff --git a/assets/voxygen/voxel/npc/cattle/female/torso_back.vox b/assets/voxygen/voxel/npc/cattle/female/torso_back.vox new file mode 100644 index 0000000..87d84ae Binary files /dev/null and b/assets/voxygen/voxel/npc/cattle/female/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/cattle/female/torso_front.vox b/assets/voxygen/voxel/npc/cattle/female/torso_front.vox new file mode 100644 index 0000000..57d4b72 Binary files /dev/null and b/assets/voxygen/voxel/npc/cattle/female/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/cattle/male/ears.vox b/assets/voxygen/voxel/npc/cattle/male/ears.vox new file mode 100644 index 0000000..fa43ed5 Binary files /dev/null and b/assets/voxygen/voxel/npc/cattle/male/ears.vox differ diff --git a/assets/voxygen/voxel/npc/cattle/male/foot_br.vox b/assets/voxygen/voxel/npc/cattle/male/foot_br.vox new file mode 100644 index 0000000..111b416 Binary files /dev/null and b/assets/voxygen/voxel/npc/cattle/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/cattle/male/foot_fr.vox b/assets/voxygen/voxel/npc/cattle/male/foot_fr.vox new file mode 100644 index 0000000..df777cd Binary files /dev/null and b/assets/voxygen/voxel/npc/cattle/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/cattle/male/head.vox b/assets/voxygen/voxel/npc/cattle/male/head.vox new file mode 100644 index 0000000..1fdf552 Binary files /dev/null and b/assets/voxygen/voxel/npc/cattle/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/cattle/male/jaw.vox b/assets/voxygen/voxel/npc/cattle/male/jaw.vox new file mode 100644 index 0000000..272ccde Binary files /dev/null and b/assets/voxygen/voxel/npc/cattle/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/cattle/male/leg_br.vox b/assets/voxygen/voxel/npc/cattle/male/leg_br.vox new file mode 100644 index 0000000..fa08da0 Binary files /dev/null and b/assets/voxygen/voxel/npc/cattle/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/cattle/male/leg_fr.vox b/assets/voxygen/voxel/npc/cattle/male/leg_fr.vox new file mode 100644 index 0000000..a66d57e Binary files /dev/null and b/assets/voxygen/voxel/npc/cattle/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/cattle/male/neck.vox b/assets/voxygen/voxel/npc/cattle/male/neck.vox new file mode 100644 index 0000000..d0dc314 Binary files /dev/null and b/assets/voxygen/voxel/npc/cattle/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/cattle/male/tail.vox b/assets/voxygen/voxel/npc/cattle/male/tail.vox new file mode 100644 index 0000000..70cc1d3 Binary files /dev/null and b/assets/voxygen/voxel/npc/cattle/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/cattle/male/torso_back.vox b/assets/voxygen/voxel/npc/cattle/male/torso_back.vox new file mode 100644 index 0000000..f35a606 Binary files /dev/null and b/assets/voxygen/voxel/npc/cattle/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/cattle/male/torso_front.vox b/assets/voxygen/voxel/npc/cattle/male/torso_front.vox new file mode 100644 index 0000000..98375bf Binary files /dev/null and b/assets/voxygen/voxel/npc/cattle/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/cave_spider/male/chest.vox b/assets/voxygen/voxel/npc/cave_spider/male/chest.vox new file mode 100644 index 0000000..9f9b0b2 Binary files /dev/null and b/assets/voxygen/voxel/npc/cave_spider/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/cave_spider/male/head.vox b/assets/voxygen/voxel/npc/cave_spider/male/head.vox new file mode 100644 index 0000000..202434f Binary files /dev/null and b/assets/voxygen/voxel/npc/cave_spider/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/cave_spider/male/leg_bcr.vox b/assets/voxygen/voxel/npc/cave_spider/male/leg_bcr.vox new file mode 100644 index 0000000..aba3c54 Binary files /dev/null and b/assets/voxygen/voxel/npc/cave_spider/male/leg_bcr.vox differ diff --git a/assets/voxygen/voxel/npc/cave_spider/male/leg_br.vox b/assets/voxygen/voxel/npc/cave_spider/male/leg_br.vox new file mode 100644 index 0000000..bc0e777 Binary files /dev/null and b/assets/voxygen/voxel/npc/cave_spider/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/cave_spider/male/leg_fcr.vox b/assets/voxygen/voxel/npc/cave_spider/male/leg_fcr.vox new file mode 100644 index 0000000..bc0e777 Binary files /dev/null and b/assets/voxygen/voxel/npc/cave_spider/male/leg_fcr.vox differ diff --git a/assets/voxygen/voxel/npc/cave_spider/male/leg_fr.vox b/assets/voxygen/voxel/npc/cave_spider/male/leg_fr.vox new file mode 100644 index 0000000..7b2401b Binary files /dev/null and b/assets/voxygen/voxel/npc/cave_spider/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/cave_spider/male/mandible_r.vox b/assets/voxygen/voxel/npc/cave_spider/male/mandible_r.vox new file mode 100644 index 0000000..3d53edb Binary files /dev/null and b/assets/voxygen/voxel/npc/cave_spider/male/mandible_r.vox differ diff --git a/assets/voxygen/voxel/npc/chicken/female/chest.vox b/assets/voxygen/voxel/npc/chicken/female/chest.vox new file mode 100644 index 0000000..b236c12 Binary files /dev/null and b/assets/voxygen/voxel/npc/chicken/female/chest.vox differ diff --git a/assets/voxygen/voxel/npc/chicken/female/head.vox b/assets/voxygen/voxel/npc/chicken/female/head.vox new file mode 100644 index 0000000..5b47bc3 Binary files /dev/null and b/assets/voxygen/voxel/npc/chicken/female/head.vox differ diff --git a/assets/voxygen/voxel/npc/chicken/female/leg_r.vox b/assets/voxygen/voxel/npc/chicken/female/leg_r.vox new file mode 100644 index 0000000..ee95d33 Binary files /dev/null and b/assets/voxygen/voxel/npc/chicken/female/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/chicken/female/tail.vox b/assets/voxygen/voxel/npc/chicken/female/tail.vox new file mode 100644 index 0000000..ffec4dd Binary files /dev/null and b/assets/voxygen/voxel/npc/chicken/female/tail.vox differ diff --git a/assets/voxygen/voxel/npc/chicken/female/wing_in_r.vox b/assets/voxygen/voxel/npc/chicken/female/wing_in_r.vox new file mode 100644 index 0000000..75c676d Binary files /dev/null and b/assets/voxygen/voxel/npc/chicken/female/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/chicken/female/wing_out_r.vox b/assets/voxygen/voxel/npc/chicken/female/wing_out_r.vox new file mode 100644 index 0000000..47c4fe8 Binary files /dev/null and b/assets/voxygen/voxel/npc/chicken/female/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/chicken/male/chest.vox b/assets/voxygen/voxel/npc/chicken/male/chest.vox new file mode 100644 index 0000000..67da8a9 Binary files /dev/null and b/assets/voxygen/voxel/npc/chicken/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/chicken/male/head.vox b/assets/voxygen/voxel/npc/chicken/male/head.vox new file mode 100644 index 0000000..2484890 Binary files /dev/null and b/assets/voxygen/voxel/npc/chicken/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/chicken/male/leg_r.vox b/assets/voxygen/voxel/npc/chicken/male/leg_r.vox new file mode 100644 index 0000000..3284b90 Binary files /dev/null and b/assets/voxygen/voxel/npc/chicken/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/chicken/male/tail.vox b/assets/voxygen/voxel/npc/chicken/male/tail.vox new file mode 100644 index 0000000..9be87d6 Binary files /dev/null and b/assets/voxygen/voxel/npc/chicken/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/chicken/male/wing_in_r.vox b/assets/voxygen/voxel/npc/chicken/male/wing_in_r.vox new file mode 100644 index 0000000..8b72df6 Binary files /dev/null and b/assets/voxygen/voxel/npc/chicken/male/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/chicken/male/wing_out_r.vox b/assets/voxygen/voxel/npc/chicken/male/wing_out_r.vox new file mode 100644 index 0000000..e9875ba Binary files /dev/null and b/assets/voxygen/voxel/npc/chicken/male/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/claygolem/male/claygolem.vox b/assets/voxygen/voxel/npc/claygolem/male/claygolem.vox new file mode 100644 index 0000000..5073f4f Binary files /dev/null and b/assets/voxygen/voxel/npc/claygolem/male/claygolem.vox differ diff --git a/assets/voxygen/voxel/npc/claysteed/male/claysteed.vox b/assets/voxygen/voxel/npc/claysteed/male/claysteed.vox new file mode 100644 index 0000000..b0aad97 Binary files /dev/null and b/assets/voxygen/voxel/npc/claysteed/male/claysteed.vox differ diff --git a/assets/voxygen/voxel/npc/clownfish/male/chest.vox b/assets/voxygen/voxel/npc/clownfish/male/chest.vox new file mode 100644 index 0000000..eeae4a1 Binary files /dev/null and b/assets/voxygen/voxel/npc/clownfish/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/clownfish/male/fin.vox b/assets/voxygen/voxel/npc/clownfish/male/fin.vox new file mode 100644 index 0000000..148f279 Binary files /dev/null and b/assets/voxygen/voxel/npc/clownfish/male/fin.vox differ diff --git a/assets/voxygen/voxel/npc/clownfish/male/tail.vox b/assets/voxygen/voxel/npc/clownfish/male/tail.vox new file mode 100644 index 0000000..bbcfa2c Binary files /dev/null and b/assets/voxygen/voxel/npc/clownfish/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/cockatiel/male/chest.vox b/assets/voxygen/voxel/npc/cockatiel/male/chest.vox new file mode 100644 index 0000000..25fe110 Binary files /dev/null and b/assets/voxygen/voxel/npc/cockatiel/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/cockatiel/male/head.vox b/assets/voxygen/voxel/npc/cockatiel/male/head.vox new file mode 100644 index 0000000..000686b Binary files /dev/null and b/assets/voxygen/voxel/npc/cockatiel/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/cockatiel/male/leg_r.vox b/assets/voxygen/voxel/npc/cockatiel/male/leg_r.vox new file mode 100644 index 0000000..bf56d03 Binary files /dev/null and b/assets/voxygen/voxel/npc/cockatiel/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/cockatiel/male/tail.vox b/assets/voxygen/voxel/npc/cockatiel/male/tail.vox new file mode 100644 index 0000000..3793f85 Binary files /dev/null and b/assets/voxygen/voxel/npc/cockatiel/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/cockatiel/male/wing_in_r.vox b/assets/voxygen/voxel/npc/cockatiel/male/wing_in_r.vox new file mode 100644 index 0000000..50dbd36 Binary files /dev/null and b/assets/voxygen/voxel/npc/cockatiel/male/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/cockatiel/male/wing_out_r.vox b/assets/voxygen/voxel/npc/cockatiel/male/wing_out_r.vox new file mode 100644 index 0000000..0deb39c Binary files /dev/null and b/assets/voxygen/voxel/npc/cockatiel/male/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/cockatrice/male/beak.vox b/assets/voxygen/voxel/npc/cockatrice/male/beak.vox new file mode 100644 index 0000000..33b8eac Binary files /dev/null and b/assets/voxygen/voxel/npc/cockatrice/male/beak.vox differ diff --git a/assets/voxygen/voxel/npc/cockatrice/male/chest.vox b/assets/voxygen/voxel/npc/cockatrice/male/chest.vox new file mode 100644 index 0000000..b1cdff2 Binary files /dev/null and b/assets/voxygen/voxel/npc/cockatrice/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/cockatrice/male/foot_r.vox b/assets/voxygen/voxel/npc/cockatrice/male/foot_r.vox new file mode 100644 index 0000000..bfe29b9 Binary files /dev/null and b/assets/voxygen/voxel/npc/cockatrice/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/cockatrice/male/head.vox b/assets/voxygen/voxel/npc/cockatrice/male/head.vox new file mode 100644 index 0000000..721b81b Binary files /dev/null and b/assets/voxygen/voxel/npc/cockatrice/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/cockatrice/male/leg_r.vox b/assets/voxygen/voxel/npc/cockatrice/male/leg_r.vox new file mode 100644 index 0000000..f494e9e Binary files /dev/null and b/assets/voxygen/voxel/npc/cockatrice/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/cockatrice/male/neck.vox b/assets/voxygen/voxel/npc/cockatrice/male/neck.vox new file mode 100644 index 0000000..dcf9e36 Binary files /dev/null and b/assets/voxygen/voxel/npc/cockatrice/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/cockatrice/male/tail_front.vox b/assets/voxygen/voxel/npc/cockatrice/male/tail_front.vox new file mode 100644 index 0000000..52bced9 Binary files /dev/null and b/assets/voxygen/voxel/npc/cockatrice/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/cockatrice/male/tail_rear.vox b/assets/voxygen/voxel/npc/cockatrice/male/tail_rear.vox new file mode 100644 index 0000000..99edb51 Binary files /dev/null and b/assets/voxygen/voxel/npc/cockatrice/male/tail_rear.vox differ diff --git a/assets/voxygen/voxel/npc/cockatrice/male/wing_in_r.vox b/assets/voxygen/voxel/npc/cockatrice/male/wing_in_r.vox new file mode 100644 index 0000000..b16c46d Binary files /dev/null and b/assets/voxygen/voxel/npc/cockatrice/male/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/cockatrice/male/wing_mid_r.vox b/assets/voxygen/voxel/npc/cockatrice/male/wing_mid_r.vox new file mode 100644 index 0000000..1cc432a Binary files /dev/null and b/assets/voxygen/voxel/npc/cockatrice/male/wing_mid_r.vox differ diff --git a/assets/voxygen/voxel/npc/cockatrice/male/wing_out_r.vox b/assets/voxygen/voxel/npc/cockatrice/male/wing_out_r.vox new file mode 100644 index 0000000..fa531a0 Binary files /dev/null and b/assets/voxygen/voxel/npc/cockatrice/male/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/coralgolem/male/chest_lower.vox b/assets/voxygen/voxel/npc/coralgolem/male/chest_lower.vox new file mode 100644 index 0000000..0771ae4 Binary files /dev/null and b/assets/voxygen/voxel/npc/coralgolem/male/chest_lower.vox differ diff --git a/assets/voxygen/voxel/npc/coralgolem/male/chest_upper.vox b/assets/voxygen/voxel/npc/coralgolem/male/chest_upper.vox new file mode 100644 index 0000000..03cd271 Binary files /dev/null and b/assets/voxygen/voxel/npc/coralgolem/male/chest_upper.vox differ diff --git a/assets/voxygen/voxel/npc/coralgolem/male/foot_l.vox b/assets/voxygen/voxel/npc/coralgolem/male/foot_l.vox new file mode 100644 index 0000000..e57275d Binary files /dev/null and b/assets/voxygen/voxel/npc/coralgolem/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/coralgolem/male/foot_r.vox b/assets/voxygen/voxel/npc/coralgolem/male/foot_r.vox new file mode 100644 index 0000000..d6851b5 Binary files /dev/null and b/assets/voxygen/voxel/npc/coralgolem/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/coralgolem/male/hand_l.vox b/assets/voxygen/voxel/npc/coralgolem/male/hand_l.vox new file mode 100644 index 0000000..49f540e Binary files /dev/null and b/assets/voxygen/voxel/npc/coralgolem/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/coralgolem/male/hand_r.vox b/assets/voxygen/voxel/npc/coralgolem/male/hand_r.vox new file mode 100644 index 0000000..50e3d79 Binary files /dev/null and b/assets/voxygen/voxel/npc/coralgolem/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/coralgolem/male/head.vox b/assets/voxygen/voxel/npc/coralgolem/male/head.vox new file mode 100644 index 0000000..0f96198 Binary files /dev/null and b/assets/voxygen/voxel/npc/coralgolem/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/coralgolem/male/leg_l.vox b/assets/voxygen/voxel/npc/coralgolem/male/leg_l.vox new file mode 100644 index 0000000..6dd3570 Binary files /dev/null and b/assets/voxygen/voxel/npc/coralgolem/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/coralgolem/male/leg_r.vox b/assets/voxygen/voxel/npc/coralgolem/male/leg_r.vox new file mode 100644 index 0000000..6a011e1 Binary files /dev/null and b/assets/voxygen/voxel/npc/coralgolem/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/coralgolem/male/shoulder_l.vox b/assets/voxygen/voxel/npc/coralgolem/male/shoulder_l.vox new file mode 100644 index 0000000..86000df Binary files /dev/null and b/assets/voxygen/voxel/npc/coralgolem/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/coralgolem/male/shoulder_r.vox b/assets/voxygen/voxel/npc/coralgolem/male/shoulder_r.vox new file mode 100644 index 0000000..7f12b99 Binary files /dev/null and b/assets/voxygen/voxel/npc/coralgolem/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/crab/crab.vox b/assets/voxygen/voxel/npc/crab/crab.vox new file mode 100644 index 0000000..d2e119d Binary files /dev/null and b/assets/voxygen/voxel/npc/crab/crab.vox differ diff --git a/assets/voxygen/voxel/npc/crawler_molten/male/chest.vox b/assets/voxygen/voxel/npc/crawler_molten/male/chest.vox new file mode 100644 index 0000000..69c8fda Binary files /dev/null and b/assets/voxygen/voxel/npc/crawler_molten/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/crawler_molten/male/head.vox b/assets/voxygen/voxel/npc/crawler_molten/male/head.vox new file mode 100644 index 0000000..83a58c9 Binary files /dev/null and b/assets/voxygen/voxel/npc/crawler_molten/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/crawler_molten/male/leg_bcr.vox b/assets/voxygen/voxel/npc/crawler_molten/male/leg_bcr.vox new file mode 100644 index 0000000..cb4b78b Binary files /dev/null and b/assets/voxygen/voxel/npc/crawler_molten/male/leg_bcr.vox differ diff --git a/assets/voxygen/voxel/npc/crawler_molten/male/leg_fcr.vox b/assets/voxygen/voxel/npc/crawler_molten/male/leg_fcr.vox new file mode 100644 index 0000000..e9a60b1 Binary files /dev/null and b/assets/voxygen/voxel/npc/crawler_molten/male/leg_fcr.vox differ diff --git a/assets/voxygen/voxel/npc/crawler_molten/male/leg_fr.vox b/assets/voxygen/voxel/npc/crawler_molten/male/leg_fr.vox new file mode 100644 index 0000000..f0e12fb Binary files /dev/null and b/assets/voxygen/voxel/npc/crawler_molten/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/crawler_moss/male/chest.vox b/assets/voxygen/voxel/npc/crawler_moss/male/chest.vox new file mode 100644 index 0000000..5b61caa Binary files /dev/null and b/assets/voxygen/voxel/npc/crawler_moss/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/crawler_moss/male/head.vox b/assets/voxygen/voxel/npc/crawler_moss/male/head.vox new file mode 100644 index 0000000..0131d78 Binary files /dev/null and b/assets/voxygen/voxel/npc/crawler_moss/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/crawler_moss/male/leg_bcr.vox b/assets/voxygen/voxel/npc/crawler_moss/male/leg_bcr.vox new file mode 100644 index 0000000..c70d70f Binary files /dev/null and b/assets/voxygen/voxel/npc/crawler_moss/male/leg_bcr.vox differ diff --git a/assets/voxygen/voxel/npc/crawler_moss/male/leg_fcr.vox b/assets/voxygen/voxel/npc/crawler_moss/male/leg_fcr.vox new file mode 100644 index 0000000..c70d70f Binary files /dev/null and b/assets/voxygen/voxel/npc/crawler_moss/male/leg_fcr.vox differ diff --git a/assets/voxygen/voxel/npc/crawler_moss/male/leg_fr.vox b/assets/voxygen/voxel/npc/crawler_moss/male/leg_fr.vox new file mode 100644 index 0000000..c70d70f Binary files /dev/null and b/assets/voxygen/voxel/npc/crawler_moss/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/crawler_sand/male/chest.vox b/assets/voxygen/voxel/npc/crawler_sand/male/chest.vox new file mode 100644 index 0000000..118e33f Binary files /dev/null and b/assets/voxygen/voxel/npc/crawler_sand/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/crawler_sand/male/head.vox b/assets/voxygen/voxel/npc/crawler_sand/male/head.vox new file mode 100644 index 0000000..f42d8ab Binary files /dev/null and b/assets/voxygen/voxel/npc/crawler_sand/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/crawler_sand/male/leg_bcr.vox b/assets/voxygen/voxel/npc/crawler_sand/male/leg_bcr.vox new file mode 100644 index 0000000..6bc0ecb Binary files /dev/null and b/assets/voxygen/voxel/npc/crawler_sand/male/leg_bcr.vox differ diff --git a/assets/voxygen/voxel/npc/crawler_sand/male/leg_fcr.vox b/assets/voxygen/voxel/npc/crawler_sand/male/leg_fcr.vox new file mode 100644 index 0000000..6bc0ecb Binary files /dev/null and b/assets/voxygen/voxel/npc/crawler_sand/male/leg_fcr.vox differ diff --git a/assets/voxygen/voxel/npc/crawler_sand/male/leg_fr.vox b/assets/voxygen/voxel/npc/crawler_sand/male/leg_fr.vox new file mode 100644 index 0000000..6bc0ecb Binary files /dev/null and b/assets/voxygen/voxel/npc/crawler_sand/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/crocodile/male/chest.vox b/assets/voxygen/voxel/npc/crocodile/male/chest.vox new file mode 100644 index 0000000..43d12dd Binary files /dev/null and b/assets/voxygen/voxel/npc/crocodile/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/crocodile/male/foot_br.vox b/assets/voxygen/voxel/npc/crocodile/male/foot_br.vox new file mode 100644 index 0000000..54608b9 Binary files /dev/null and b/assets/voxygen/voxel/npc/crocodile/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/crocodile/male/foot_fr.vox b/assets/voxygen/voxel/npc/crocodile/male/foot_fr.vox new file mode 100644 index 0000000..1cc6ed8 Binary files /dev/null and b/assets/voxygen/voxel/npc/crocodile/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/crocodile/male/head_lower.vox b/assets/voxygen/voxel/npc/crocodile/male/head_lower.vox new file mode 100644 index 0000000..b20c51b Binary files /dev/null and b/assets/voxygen/voxel/npc/crocodile/male/head_lower.vox differ diff --git a/assets/voxygen/voxel/npc/crocodile/male/head_upper.vox b/assets/voxygen/voxel/npc/crocodile/male/head_upper.vox new file mode 100644 index 0000000..723c170 Binary files /dev/null and b/assets/voxygen/voxel/npc/crocodile/male/head_upper.vox differ diff --git a/assets/voxygen/voxel/npc/crocodile/male/jaw.vox b/assets/voxygen/voxel/npc/crocodile/male/jaw.vox new file mode 100644 index 0000000..61c4076 Binary files /dev/null and b/assets/voxygen/voxel/npc/crocodile/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/crocodile/male/tail_front.vox b/assets/voxygen/voxel/npc/crocodile/male/tail_front.vox new file mode 100644 index 0000000..5afafad Binary files /dev/null and b/assets/voxygen/voxel/npc/crocodile/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/crocodile/male/tail_rear.vox b/assets/voxygen/voxel/npc/crocodile/male/tail_rear.vox new file mode 100644 index 0000000..c6b1827 Binary files /dev/null and b/assets/voxygen/voxel/npc/crocodile/male/tail_rear.vox differ diff --git a/assets/voxygen/voxel/npc/crow/head.vox b/assets/voxygen/voxel/npc/crow/head.vox new file mode 100644 index 0000000..7c4a13b Binary files /dev/null and b/assets/voxygen/voxel/npc/crow/head.vox differ diff --git a/assets/voxygen/voxel/npc/crow/male/chest.vox b/assets/voxygen/voxel/npc/crow/male/chest.vox new file mode 100644 index 0000000..2f4c933 Binary files /dev/null and b/assets/voxygen/voxel/npc/crow/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/crow/male/head.vox b/assets/voxygen/voxel/npc/crow/male/head.vox new file mode 100644 index 0000000..d3b5c4e Binary files /dev/null and b/assets/voxygen/voxel/npc/crow/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/crow/male/leg_r.vox b/assets/voxygen/voxel/npc/crow/male/leg_r.vox new file mode 100644 index 0000000..f6f688d Binary files /dev/null and b/assets/voxygen/voxel/npc/crow/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/crow/male/tail.vox b/assets/voxygen/voxel/npc/crow/male/tail.vox new file mode 100644 index 0000000..16dcd36 Binary files /dev/null and b/assets/voxygen/voxel/npc/crow/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/crow/male/wing_in_r.vox b/assets/voxygen/voxel/npc/crow/male/wing_in_r.vox new file mode 100644 index 0000000..916000b Binary files /dev/null and b/assets/voxygen/voxel/npc/crow/male/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/crow/male/wing_out_r.vox b/assets/voxygen/voxel/npc/crow/male/wing_out_r.vox new file mode 100644 index 0000000..e62737d Binary files /dev/null and b/assets/voxygen/voxel/npc/crow/male/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/crow/torso.vox b/assets/voxygen/voxel/npc/crow/torso.vox new file mode 100644 index 0000000..4fc774b Binary files /dev/null and b/assets/voxygen/voxel/npc/crow/torso.vox differ diff --git a/assets/voxygen/voxel/npc/crow/wing_r.vox b/assets/voxygen/voxel/npc/crow/wing_r.vox new file mode 100644 index 0000000..4a95c80 Binary files /dev/null and b/assets/voxygen/voxel/npc/crow/wing_r.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlock/male/foot_l.vox b/assets/voxygen/voxel/npc/cultist_warlock/male/foot_l.vox new file mode 100644 index 0000000..42edfc7 Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlock/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlock/male/foot_r.vox b/assets/voxygen/voxel/npc/cultist_warlock/male/foot_r.vox new file mode 100644 index 0000000..42edfc7 Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlock/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlock/male/hand_l.vox b/assets/voxygen/voxel/npc/cultist_warlock/male/hand_l.vox new file mode 100644 index 0000000..14344bc Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlock/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlock/male/hand_r.vox b/assets/voxygen/voxel/npc/cultist_warlock/male/hand_r.vox new file mode 100644 index 0000000..23b2c54 Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlock/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlock/male/head.vox b/assets/voxygen/voxel/npc/cultist_warlock/male/head.vox new file mode 100644 index 0000000..93b41e8 Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlock/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlock/male/leg_l.vox b/assets/voxygen/voxel/npc/cultist_warlock/male/leg_l.vox new file mode 100644 index 0000000..b2703db Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlock/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlock/male/leg_r.vox b/assets/voxygen/voxel/npc/cultist_warlock/male/leg_r.vox new file mode 100644 index 0000000..b2703db Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlock/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlock/male/shoulder_l.vox b/assets/voxygen/voxel/npc/cultist_warlock/male/shoulder_l.vox new file mode 100644 index 0000000..dafd45a Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlock/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlock/male/shoulder_r.vox b/assets/voxygen/voxel/npc/cultist_warlock/male/shoulder_r.vox new file mode 100644 index 0000000..0782325 Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlock/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlock/male/torso_lower.vox b/assets/voxygen/voxel/npc/cultist_warlock/male/torso_lower.vox new file mode 100644 index 0000000..06feb9e Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlock/male/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlock/male/torso_upper.vox b/assets/voxygen/voxel/npc/cultist_warlock/male/torso_upper.vox new file mode 100644 index 0000000..68cfdd9 Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlock/male/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlord/male/foot_l.vox b/assets/voxygen/voxel/npc/cultist_warlord/male/foot_l.vox new file mode 100644 index 0000000..bff6416 Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlord/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlord/male/foot_r.vox b/assets/voxygen/voxel/npc/cultist_warlord/male/foot_r.vox new file mode 100644 index 0000000..bff6416 Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlord/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlord/male/hand_l.vox b/assets/voxygen/voxel/npc/cultist_warlord/male/hand_l.vox new file mode 100644 index 0000000..d0aaa28 Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlord/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlord/male/hand_r.vox b/assets/voxygen/voxel/npc/cultist_warlord/male/hand_r.vox new file mode 100644 index 0000000..498cd9d Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlord/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlord/male/head.vox b/assets/voxygen/voxel/npc/cultist_warlord/male/head.vox new file mode 100644 index 0000000..1b9512b Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlord/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlord/male/leg_l.vox b/assets/voxygen/voxel/npc/cultist_warlord/male/leg_l.vox new file mode 100644 index 0000000..33f465f Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlord/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlord/male/leg_r.vox b/assets/voxygen/voxel/npc/cultist_warlord/male/leg_r.vox new file mode 100644 index 0000000..33f465f Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlord/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlord/male/shoulder_l.vox b/assets/voxygen/voxel/npc/cultist_warlord/male/shoulder_l.vox new file mode 100644 index 0000000..e755867 Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlord/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlord/male/shoulder_r.vox b/assets/voxygen/voxel/npc/cultist_warlord/male/shoulder_r.vox new file mode 100644 index 0000000..67b4db5 Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlord/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlord/male/torso_lower.vox b/assets/voxygen/voxel/npc/cultist_warlord/male/torso_lower.vox new file mode 100644 index 0000000..9445063 Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlord/male/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/cultist_warlord/male/torso_upper.vox b/assets/voxygen/voxel/npc/cultist_warlord/male/torso_upper.vox new file mode 100644 index 0000000..5c210b0 Binary files /dev/null and b/assets/voxygen/voxel/npc/cultist_warlord/male/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/cyclops/male/foot_l.vox b/assets/voxygen/voxel/npc/cyclops/male/foot_l.vox new file mode 100644 index 0000000..9d077f9 Binary files /dev/null and b/assets/voxygen/voxel/npc/cyclops/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/cyclops/male/foot_r.vox b/assets/voxygen/voxel/npc/cyclops/male/foot_r.vox new file mode 100644 index 0000000..77f5953 Binary files /dev/null and b/assets/voxygen/voxel/npc/cyclops/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/cyclops/male/hand_l.vox b/assets/voxygen/voxel/npc/cyclops/male/hand_l.vox new file mode 100644 index 0000000..2a6f8b5 Binary files /dev/null and b/assets/voxygen/voxel/npc/cyclops/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/cyclops/male/hand_r.vox b/assets/voxygen/voxel/npc/cyclops/male/hand_r.vox new file mode 100644 index 0000000..e85a6bf Binary files /dev/null and b/assets/voxygen/voxel/npc/cyclops/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/cyclops/male/head.vox b/assets/voxygen/voxel/npc/cyclops/male/head.vox new file mode 100644 index 0000000..ed440cf Binary files /dev/null and b/assets/voxygen/voxel/npc/cyclops/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/cyclops/male/jaw.vox b/assets/voxygen/voxel/npc/cyclops/male/jaw.vox new file mode 100644 index 0000000..11d4ed2 Binary files /dev/null and b/assets/voxygen/voxel/npc/cyclops/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/cyclops/male/leg_l.vox b/assets/voxygen/voxel/npc/cyclops/male/leg_l.vox new file mode 100644 index 0000000..ea704a2 Binary files /dev/null and b/assets/voxygen/voxel/npc/cyclops/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/cyclops/male/leg_r.vox b/assets/voxygen/voxel/npc/cyclops/male/leg_r.vox new file mode 100644 index 0000000..4d706a0 Binary files /dev/null and b/assets/voxygen/voxel/npc/cyclops/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/cyclops/male/shoulder_l.vox b/assets/voxygen/voxel/npc/cyclops/male/shoulder_l.vox new file mode 100644 index 0000000..1dc1eb4 Binary files /dev/null and b/assets/voxygen/voxel/npc/cyclops/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/cyclops/male/shoulder_r.vox b/assets/voxygen/voxel/npc/cyclops/male/shoulder_r.vox new file mode 100644 index 0000000..5fb4bdd Binary files /dev/null and b/assets/voxygen/voxel/npc/cyclops/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/cyclops/male/torso_lower.vox b/assets/voxygen/voxel/npc/cyclops/male/torso_lower.vox new file mode 100644 index 0000000..f118a24 Binary files /dev/null and b/assets/voxygen/voxel/npc/cyclops/male/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/cyclops/male/torso_upper.vox b/assets/voxygen/voxel/npc/cyclops/male/torso_upper.vox new file mode 100644 index 0000000..9c492a6 Binary files /dev/null and b/assets/voxygen/voxel/npc/cyclops/male/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/dagon/male/chest.vox b/assets/voxygen/voxel/npc/dagon/male/chest.vox new file mode 100644 index 0000000..d872184 Binary files /dev/null and b/assets/voxygen/voxel/npc/dagon/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/dagon/male/foot_br.vox b/assets/voxygen/voxel/npc/dagon/male/foot_br.vox new file mode 100644 index 0000000..f9ff775 Binary files /dev/null and b/assets/voxygen/voxel/npc/dagon/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/dagon/male/foot_fr.vox b/assets/voxygen/voxel/npc/dagon/male/foot_fr.vox new file mode 100644 index 0000000..42c433e Binary files /dev/null and b/assets/voxygen/voxel/npc/dagon/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/dagon/male/head_lower.vox b/assets/voxygen/voxel/npc/dagon/male/head_lower.vox new file mode 100644 index 0000000..052aee8 Binary files /dev/null and b/assets/voxygen/voxel/npc/dagon/male/head_lower.vox differ diff --git a/assets/voxygen/voxel/npc/dagon/male/head_upper.vox b/assets/voxygen/voxel/npc/dagon/male/head_upper.vox new file mode 100644 index 0000000..3034074 Binary files /dev/null and b/assets/voxygen/voxel/npc/dagon/male/head_upper.vox differ diff --git a/assets/voxygen/voxel/npc/dagon/male/jaw.vox b/assets/voxygen/voxel/npc/dagon/male/jaw.vox new file mode 100644 index 0000000..810832a Binary files /dev/null and b/assets/voxygen/voxel/npc/dagon/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/dagon/male/tail_front.vox b/assets/voxygen/voxel/npc/dagon/male/tail_front.vox new file mode 100644 index 0000000..fee3249 Binary files /dev/null and b/assets/voxygen/voxel/npc/dagon/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/dagon/male/tail_rear.vox b/assets/voxygen/voxel/npc/dagon/male/tail_rear.vox new file mode 100644 index 0000000..7ad1fdf Binary files /dev/null and b/assets/voxygen/voxel/npc/dagon/male/tail_rear.vox differ diff --git a/assets/voxygen/voxel/npc/dagonite/male/chest.vox b/assets/voxygen/voxel/npc/dagonite/male/chest.vox new file mode 100644 index 0000000..b331f99 Binary files /dev/null and b/assets/voxygen/voxel/npc/dagonite/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/dagonite/male/head.vox b/assets/voxygen/voxel/npc/dagonite/male/head.vox new file mode 100644 index 0000000..6ff6592 Binary files /dev/null and b/assets/voxygen/voxel/npc/dagonite/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/dagonite/male/leg_bcr.vox b/assets/voxygen/voxel/npc/dagonite/male/leg_bcr.vox new file mode 100644 index 0000000..ebb9360 Binary files /dev/null and b/assets/voxygen/voxel/npc/dagonite/male/leg_bcr.vox differ diff --git a/assets/voxygen/voxel/npc/dagonite/male/leg_fcr.vox b/assets/voxygen/voxel/npc/dagonite/male/leg_fcr.vox new file mode 100644 index 0000000..ebb9360 Binary files /dev/null and b/assets/voxygen/voxel/npc/dagonite/male/leg_fcr.vox differ diff --git a/assets/voxygen/voxel/npc/dagonite/male/leg_fr.vox b/assets/voxygen/voxel/npc/dagonite/male/leg_fr.vox new file mode 100644 index 0000000..ebb9360 Binary files /dev/null and b/assets/voxygen/voxel/npc/dagonite/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/darkhound/male/ears.vox b/assets/voxygen/voxel/npc/darkhound/male/ears.vox new file mode 100644 index 0000000..0b17327 Binary files /dev/null and b/assets/voxygen/voxel/npc/darkhound/male/ears.vox differ diff --git a/assets/voxygen/voxel/npc/darkhound/male/foot_br.vox b/assets/voxygen/voxel/npc/darkhound/male/foot_br.vox new file mode 100644 index 0000000..a140cf3 Binary files /dev/null and b/assets/voxygen/voxel/npc/darkhound/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/darkhound/male/foot_fr.vox b/assets/voxygen/voxel/npc/darkhound/male/foot_fr.vox new file mode 100644 index 0000000..8b253bc Binary files /dev/null and b/assets/voxygen/voxel/npc/darkhound/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/darkhound/male/head.vox b/assets/voxygen/voxel/npc/darkhound/male/head.vox new file mode 100644 index 0000000..6dcd73a Binary files /dev/null and b/assets/voxygen/voxel/npc/darkhound/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/darkhound/male/jaw.vox b/assets/voxygen/voxel/npc/darkhound/male/jaw.vox new file mode 100644 index 0000000..99e23cc Binary files /dev/null and b/assets/voxygen/voxel/npc/darkhound/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/darkhound/male/leg_br.vox b/assets/voxygen/voxel/npc/darkhound/male/leg_br.vox new file mode 100644 index 0000000..44ed539 Binary files /dev/null and b/assets/voxygen/voxel/npc/darkhound/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/darkhound/male/leg_fr.vox b/assets/voxygen/voxel/npc/darkhound/male/leg_fr.vox new file mode 100644 index 0000000..7850dd4 Binary files /dev/null and b/assets/voxygen/voxel/npc/darkhound/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/darkhound/male/neck.vox b/assets/voxygen/voxel/npc/darkhound/male/neck.vox new file mode 100644 index 0000000..fb68e59 Binary files /dev/null and b/assets/voxygen/voxel/npc/darkhound/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/darkhound/male/tail.vox b/assets/voxygen/voxel/npc/darkhound/male/tail.vox new file mode 100644 index 0000000..b2554e8 Binary files /dev/null and b/assets/voxygen/voxel/npc/darkhound/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/darkhound/male/torso_back.vox b/assets/voxygen/voxel/npc/darkhound/male/torso_back.vox new file mode 100644 index 0000000..14f546e Binary files /dev/null and b/assets/voxygen/voxel/npc/darkhound/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/darkhound/male/torso_front.vox b/assets/voxygen/voxel/npc/darkhound/male/torso_front.vox new file mode 100644 index 0000000..25c6c7e Binary files /dev/null and b/assets/voxygen/voxel/npc/darkhound/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/deadwood/male/chest.vox b/assets/voxygen/voxel/npc/deadwood/male/chest.vox new file mode 100644 index 0000000..6a0b9dc Binary files /dev/null and b/assets/voxygen/voxel/npc/deadwood/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/deadwood/male/foot_br.vox b/assets/voxygen/voxel/npc/deadwood/male/foot_br.vox new file mode 100644 index 0000000..d113a46 Binary files /dev/null and b/assets/voxygen/voxel/npc/deadwood/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/deadwood/male/foot_fr.vox b/assets/voxygen/voxel/npc/deadwood/male/foot_fr.vox new file mode 100644 index 0000000..e1dffe7 Binary files /dev/null and b/assets/voxygen/voxel/npc/deadwood/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/deadwood/male/head_upper.vox b/assets/voxygen/voxel/npc/deadwood/male/head_upper.vox new file mode 100644 index 0000000..740fa0b Binary files /dev/null and b/assets/voxygen/voxel/npc/deadwood/male/head_upper.vox differ diff --git a/assets/voxygen/voxel/npc/deer/female/foot_br.vox b/assets/voxygen/voxel/npc/deer/female/foot_br.vox new file mode 100644 index 0000000..21567d0 Binary files /dev/null and b/assets/voxygen/voxel/npc/deer/female/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/deer/female/foot_fr.vox b/assets/voxygen/voxel/npc/deer/female/foot_fr.vox new file mode 100644 index 0000000..b701aef Binary files /dev/null and b/assets/voxygen/voxel/npc/deer/female/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/deer/female/head.vox b/assets/voxygen/voxel/npc/deer/female/head.vox new file mode 100644 index 0000000..8c6cfff Binary files /dev/null and b/assets/voxygen/voxel/npc/deer/female/head.vox differ diff --git a/assets/voxygen/voxel/npc/deer/female/jaw.vox b/assets/voxygen/voxel/npc/deer/female/jaw.vox new file mode 100644 index 0000000..651de8f Binary files /dev/null and b/assets/voxygen/voxel/npc/deer/female/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/deer/female/leg_br.vox b/assets/voxygen/voxel/npc/deer/female/leg_br.vox new file mode 100644 index 0000000..54eba4d Binary files /dev/null and b/assets/voxygen/voxel/npc/deer/female/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/deer/female/leg_fr.vox b/assets/voxygen/voxel/npc/deer/female/leg_fr.vox new file mode 100644 index 0000000..89cbb71 Binary files /dev/null and b/assets/voxygen/voxel/npc/deer/female/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/deer/female/neck.vox b/assets/voxygen/voxel/npc/deer/female/neck.vox new file mode 100644 index 0000000..6360c63 Binary files /dev/null and b/assets/voxygen/voxel/npc/deer/female/neck.vox differ diff --git a/assets/voxygen/voxel/npc/deer/female/tail.vox b/assets/voxygen/voxel/npc/deer/female/tail.vox new file mode 100644 index 0000000..9084e32 Binary files /dev/null and b/assets/voxygen/voxel/npc/deer/female/tail.vox differ diff --git a/assets/voxygen/voxel/npc/deer/female/torso_back.vox b/assets/voxygen/voxel/npc/deer/female/torso_back.vox new file mode 100644 index 0000000..e5ca8b7 Binary files /dev/null and b/assets/voxygen/voxel/npc/deer/female/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/deer/female/torso_front.vox b/assets/voxygen/voxel/npc/deer/female/torso_front.vox new file mode 100644 index 0000000..61413ff Binary files /dev/null and b/assets/voxygen/voxel/npc/deer/female/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/deer/male/foot_br.vox b/assets/voxygen/voxel/npc/deer/male/foot_br.vox new file mode 100644 index 0000000..4273ee8 Binary files /dev/null and b/assets/voxygen/voxel/npc/deer/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/deer/male/foot_fr.vox b/assets/voxygen/voxel/npc/deer/male/foot_fr.vox new file mode 100644 index 0000000..513cc46 Binary files /dev/null and b/assets/voxygen/voxel/npc/deer/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/deer/male/head.vox b/assets/voxygen/voxel/npc/deer/male/head.vox new file mode 100644 index 0000000..5056973 Binary files /dev/null and b/assets/voxygen/voxel/npc/deer/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/deer/male/jaw.vox b/assets/voxygen/voxel/npc/deer/male/jaw.vox new file mode 100644 index 0000000..973db28 Binary files /dev/null and b/assets/voxygen/voxel/npc/deer/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/deer/male/leg_br.vox b/assets/voxygen/voxel/npc/deer/male/leg_br.vox new file mode 100644 index 0000000..e149604 Binary files /dev/null and b/assets/voxygen/voxel/npc/deer/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/deer/male/leg_fr.vox b/assets/voxygen/voxel/npc/deer/male/leg_fr.vox new file mode 100644 index 0000000..20346f8 Binary files /dev/null and b/assets/voxygen/voxel/npc/deer/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/deer/male/neck.vox b/assets/voxygen/voxel/npc/deer/male/neck.vox new file mode 100644 index 0000000..4417cd0 Binary files /dev/null and b/assets/voxygen/voxel/npc/deer/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/deer/male/tail.vox b/assets/voxygen/voxel/npc/deer/male/tail.vox new file mode 100644 index 0000000..c976305 Binary files /dev/null and b/assets/voxygen/voxel/npc/deer/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/deer/male/torso_back.vox b/assets/voxygen/voxel/npc/deer/male/torso_back.vox new file mode 100644 index 0000000..0935852 Binary files /dev/null and b/assets/voxygen/voxel/npc/deer/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/deer/male/torso_front.vox b/assets/voxygen/voxel/npc/deer/male/torso_front.vox new file mode 100644 index 0000000..dffa7c4 Binary files /dev/null and b/assets/voxygen/voxel/npc/deer/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/dodarock/male/chest_back.vox b/assets/voxygen/voxel/npc/dodarock/male/chest_back.vox new file mode 100644 index 0000000..bc76b75 Binary files /dev/null and b/assets/voxygen/voxel/npc/dodarock/male/chest_back.vox differ diff --git a/assets/voxygen/voxel/npc/dodarock/male/chest_front.vox b/assets/voxygen/voxel/npc/dodarock/male/chest_front.vox new file mode 100644 index 0000000..720dca0 Binary files /dev/null and b/assets/voxygen/voxel/npc/dodarock/male/chest_front.vox differ diff --git a/assets/voxygen/voxel/npc/dodarock/male/foot_r.vox b/assets/voxygen/voxel/npc/dodarock/male/foot_r.vox new file mode 100644 index 0000000..3fa1769 Binary files /dev/null and b/assets/voxygen/voxel/npc/dodarock/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/dodarock/male/hand_r.vox b/assets/voxygen/voxel/npc/dodarock/male/hand_r.vox new file mode 100644 index 0000000..df0202f Binary files /dev/null and b/assets/voxygen/voxel/npc/dodarock/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/dodarock/male/head.vox b/assets/voxygen/voxel/npc/dodarock/male/head.vox new file mode 100644 index 0000000..b0e8179 Binary files /dev/null and b/assets/voxygen/voxel/npc/dodarock/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/dodarock/male/head_lower.vox b/assets/voxygen/voxel/npc/dodarock/male/head_lower.vox new file mode 100644 index 0000000..83fd206 Binary files /dev/null and b/assets/voxygen/voxel/npc/dodarock/male/head_lower.vox differ diff --git a/assets/voxygen/voxel/npc/dodarock/male/jaw.vox b/assets/voxygen/voxel/npc/dodarock/male/jaw.vox new file mode 100644 index 0000000..077ccb8 Binary files /dev/null and b/assets/voxygen/voxel/npc/dodarock/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/dodarock/male/leg_r.vox b/assets/voxygen/voxel/npc/dodarock/male/leg_r.vox new file mode 100644 index 0000000..5f6c7c5 Binary files /dev/null and b/assets/voxygen/voxel/npc/dodarock/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/dodarock/male/neck.vox b/assets/voxygen/voxel/npc/dodarock/male/neck.vox new file mode 100644 index 0000000..83fd206 Binary files /dev/null and b/assets/voxygen/voxel/npc/dodarock/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/dodarock/male/tail_back.vox b/assets/voxygen/voxel/npc/dodarock/male/tail_back.vox new file mode 100644 index 0000000..e6b3249 Binary files /dev/null and b/assets/voxygen/voxel/npc/dodarock/male/tail_back.vox differ diff --git a/assets/voxygen/voxel/npc/dodarock/male/tail_front.vox b/assets/voxygen/voxel/npc/dodarock/male/tail_front.vox new file mode 100644 index 0000000..361392d Binary files /dev/null and b/assets/voxygen/voxel/npc/dodarock/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/dodo/male/chest.vox b/assets/voxygen/voxel/npc/dodo/male/chest.vox new file mode 100644 index 0000000..aa027d9 Binary files /dev/null and b/assets/voxygen/voxel/npc/dodo/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/dodo/male/head.vox b/assets/voxygen/voxel/npc/dodo/male/head.vox new file mode 100644 index 0000000..a4cdc8d Binary files /dev/null and b/assets/voxygen/voxel/npc/dodo/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/dodo/male/leg_r.vox b/assets/voxygen/voxel/npc/dodo/male/leg_r.vox new file mode 100644 index 0000000..f19887f Binary files /dev/null and b/assets/voxygen/voxel/npc/dodo/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/dodo/male/tail.vox b/assets/voxygen/voxel/npc/dodo/male/tail.vox new file mode 100644 index 0000000..b9b04fd Binary files /dev/null and b/assets/voxygen/voxel/npc/dodo/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/dodo/male/wing_in_r.vox b/assets/voxygen/voxel/npc/dodo/male/wing_in_r.vox new file mode 100644 index 0000000..5b12db6 Binary files /dev/null and b/assets/voxygen/voxel/npc/dodo/male/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/dodo/male/wing_out_r.vox b/assets/voxygen/voxel/npc/dodo/male/wing_out_r.vox new file mode 100644 index 0000000..51a2526 Binary files /dev/null and b/assets/voxygen/voxel/npc/dodo/male/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/dog/female/chest.vox b/assets/voxygen/voxel/npc/dog/female/chest.vox new file mode 100644 index 0000000..e5158f2 Binary files /dev/null and b/assets/voxygen/voxel/npc/dog/female/chest.vox differ diff --git a/assets/voxygen/voxel/npc/dog/female/foot_br.vox b/assets/voxygen/voxel/npc/dog/female/foot_br.vox new file mode 100644 index 0000000..6187a4f Binary files /dev/null and b/assets/voxygen/voxel/npc/dog/female/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/dog/female/foot_fr.vox b/assets/voxygen/voxel/npc/dog/female/foot_fr.vox new file mode 100644 index 0000000..dacbb8e Binary files /dev/null and b/assets/voxygen/voxel/npc/dog/female/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/dog/female/head.vox b/assets/voxygen/voxel/npc/dog/female/head.vox new file mode 100644 index 0000000..38f393b Binary files /dev/null and b/assets/voxygen/voxel/npc/dog/female/head.vox differ diff --git a/assets/voxygen/voxel/npc/dog/female/tail.vox b/assets/voxygen/voxel/npc/dog/female/tail.vox new file mode 100644 index 0000000..d710fc3 Binary files /dev/null and b/assets/voxygen/voxel/npc/dog/female/tail.vox differ diff --git a/assets/voxygen/voxel/npc/dog/male/chest.vox b/assets/voxygen/voxel/npc/dog/male/chest.vox new file mode 100644 index 0000000..f802e05 Binary files /dev/null and b/assets/voxygen/voxel/npc/dog/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/dog/male/foot_br.vox b/assets/voxygen/voxel/npc/dog/male/foot_br.vox new file mode 100644 index 0000000..25a1f3d Binary files /dev/null and b/assets/voxygen/voxel/npc/dog/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/dog/male/foot_fr.vox b/assets/voxygen/voxel/npc/dog/male/foot_fr.vox new file mode 100644 index 0000000..160c49e Binary files /dev/null and b/assets/voxygen/voxel/npc/dog/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/dog/male/head.vox b/assets/voxygen/voxel/npc/dog/male/head.vox new file mode 100644 index 0000000..2fef901 Binary files /dev/null and b/assets/voxygen/voxel/npc/dog/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/dog/male/tail.vox b/assets/voxygen/voxel/npc/dog/male/tail.vox new file mode 100644 index 0000000..72360c4 Binary files /dev/null and b/assets/voxygen/voxel/npc/dog/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/donkey/male/ears.vox b/assets/voxygen/voxel/npc/donkey/male/ears.vox new file mode 100644 index 0000000..cd6e1df Binary files /dev/null and b/assets/voxygen/voxel/npc/donkey/male/ears.vox differ diff --git a/assets/voxygen/voxel/npc/donkey/male/foot_br.vox b/assets/voxygen/voxel/npc/donkey/male/foot_br.vox new file mode 100644 index 0000000..cd927fb Binary files /dev/null and b/assets/voxygen/voxel/npc/donkey/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/donkey/male/foot_fr.vox b/assets/voxygen/voxel/npc/donkey/male/foot_fr.vox new file mode 100644 index 0000000..980c63c Binary files /dev/null and b/assets/voxygen/voxel/npc/donkey/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/donkey/male/head.vox b/assets/voxygen/voxel/npc/donkey/male/head.vox new file mode 100644 index 0000000..20eb6bf Binary files /dev/null and b/assets/voxygen/voxel/npc/donkey/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/donkey/male/jaw.vox b/assets/voxygen/voxel/npc/donkey/male/jaw.vox new file mode 100644 index 0000000..0afd3e5 Binary files /dev/null and b/assets/voxygen/voxel/npc/donkey/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/donkey/male/leg_br.vox b/assets/voxygen/voxel/npc/donkey/male/leg_br.vox new file mode 100644 index 0000000..1e9b00f Binary files /dev/null and b/assets/voxygen/voxel/npc/donkey/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/donkey/male/leg_fr.vox b/assets/voxygen/voxel/npc/donkey/male/leg_fr.vox new file mode 100644 index 0000000..7a1d8a4 Binary files /dev/null and b/assets/voxygen/voxel/npc/donkey/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/donkey/male/neck.vox b/assets/voxygen/voxel/npc/donkey/male/neck.vox new file mode 100644 index 0000000..58bfa36 Binary files /dev/null and b/assets/voxygen/voxel/npc/donkey/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/donkey/male/tail.vox b/assets/voxygen/voxel/npc/donkey/male/tail.vox new file mode 100644 index 0000000..a20b1e3 Binary files /dev/null and b/assets/voxygen/voxel/npc/donkey/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/donkey/male/torso_back.vox b/assets/voxygen/voxel/npc/donkey/male/torso_back.vox new file mode 100644 index 0000000..dc478c6 Binary files /dev/null and b/assets/voxygen/voxel/npc/donkey/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/donkey/male/torso_front.vox b/assets/voxygen/voxel/npc/donkey/male/torso_front.vox new file mode 100644 index 0000000..9376976 Binary files /dev/null and b/assets/voxygen/voxel/npc/donkey/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/dreadhorn/male/foot_br.vox b/assets/voxygen/voxel/npc/dreadhorn/male/foot_br.vox new file mode 100644 index 0000000..aa0db78 Binary files /dev/null and b/assets/voxygen/voxel/npc/dreadhorn/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/dreadhorn/male/foot_fr.vox b/assets/voxygen/voxel/npc/dreadhorn/male/foot_fr.vox new file mode 100644 index 0000000..771d3ff Binary files /dev/null and b/assets/voxygen/voxel/npc/dreadhorn/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/dreadhorn/male/head.vox b/assets/voxygen/voxel/npc/dreadhorn/male/head.vox new file mode 100644 index 0000000..2cad17d Binary files /dev/null and b/assets/voxygen/voxel/npc/dreadhorn/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/dreadhorn/male/jaw.vox b/assets/voxygen/voxel/npc/dreadhorn/male/jaw.vox new file mode 100644 index 0000000..b1f2f61 Binary files /dev/null and b/assets/voxygen/voxel/npc/dreadhorn/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/dreadhorn/male/leg_br.vox b/assets/voxygen/voxel/npc/dreadhorn/male/leg_br.vox new file mode 100644 index 0000000..cafa9b3 Binary files /dev/null and b/assets/voxygen/voxel/npc/dreadhorn/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/dreadhorn/male/leg_fr.vox b/assets/voxygen/voxel/npc/dreadhorn/male/leg_fr.vox new file mode 100644 index 0000000..bd75a1c Binary files /dev/null and b/assets/voxygen/voxel/npc/dreadhorn/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/dreadhorn/male/neck.vox b/assets/voxygen/voxel/npc/dreadhorn/male/neck.vox new file mode 100644 index 0000000..05b7e11 Binary files /dev/null and b/assets/voxygen/voxel/npc/dreadhorn/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/dreadhorn/male/tail.vox b/assets/voxygen/voxel/npc/dreadhorn/male/tail.vox new file mode 100644 index 0000000..0f9803a Binary files /dev/null and b/assets/voxygen/voxel/npc/dreadhorn/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/dreadhorn/male/torso_back.vox b/assets/voxygen/voxel/npc/dreadhorn/male/torso_back.vox new file mode 100644 index 0000000..dc42d4f Binary files /dev/null and b/assets/voxygen/voxel/npc/dreadhorn/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/dreadhorn/male/torso_front.vox b/assets/voxygen/voxel/npc/dreadhorn/male/torso_front.vox new file mode 100644 index 0000000..4e801b3 Binary files /dev/null and b/assets/voxygen/voxel/npc/dreadhorn/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/driggle/male/chest.vox b/assets/voxygen/voxel/npc/driggle/male/chest.vox new file mode 100644 index 0000000..b303c2d Binary files /dev/null and b/assets/voxygen/voxel/npc/driggle/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/driggle/male/foot_br.vox b/assets/voxygen/voxel/npc/driggle/male/foot_br.vox new file mode 100644 index 0000000..928cecd Binary files /dev/null and b/assets/voxygen/voxel/npc/driggle/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/driggle/male/foot_fr.vox b/assets/voxygen/voxel/npc/driggle/male/foot_fr.vox new file mode 100644 index 0000000..d74fee4 Binary files /dev/null and b/assets/voxygen/voxel/npc/driggle/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/driggle/male/head_lower.vox b/assets/voxygen/voxel/npc/driggle/male/head_lower.vox new file mode 100644 index 0000000..cee3adb Binary files /dev/null and b/assets/voxygen/voxel/npc/driggle/male/head_lower.vox differ diff --git a/assets/voxygen/voxel/npc/driggle/male/head_upper.vox b/assets/voxygen/voxel/npc/driggle/male/head_upper.vox new file mode 100644 index 0000000..ccaa889 Binary files /dev/null and b/assets/voxygen/voxel/npc/driggle/male/head_upper.vox differ diff --git a/assets/voxygen/voxel/npc/driggle/male/jaw.vox b/assets/voxygen/voxel/npc/driggle/male/jaw.vox new file mode 100644 index 0000000..ae11cb3 Binary files /dev/null and b/assets/voxygen/voxel/npc/driggle/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/driggle/male/tail_front.vox b/assets/voxygen/voxel/npc/driggle/male/tail_front.vox new file mode 100644 index 0000000..4b2dbdf Binary files /dev/null and b/assets/voxygen/voxel/npc/driggle/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/driggle/male/tail_rear.vox b/assets/voxygen/voxel/npc/driggle/male/tail_rear.vox new file mode 100644 index 0000000..ed5355c Binary files /dev/null and b/assets/voxygen/voxel/npc/driggle/male/tail_rear.vox differ diff --git a/assets/voxygen/voxel/npc/duck/female/chest.vox b/assets/voxygen/voxel/npc/duck/female/chest.vox new file mode 100644 index 0000000..b3101e0 Binary files /dev/null and b/assets/voxygen/voxel/npc/duck/female/chest.vox differ diff --git a/assets/voxygen/voxel/npc/duck/female/head.vox b/assets/voxygen/voxel/npc/duck/female/head.vox new file mode 100644 index 0000000..8d0bc5a Binary files /dev/null and b/assets/voxygen/voxel/npc/duck/female/head.vox differ diff --git a/assets/voxygen/voxel/npc/duck/female/leg_r.vox b/assets/voxygen/voxel/npc/duck/female/leg_r.vox new file mode 100644 index 0000000..b73d753 Binary files /dev/null and b/assets/voxygen/voxel/npc/duck/female/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/duck/female/tail.vox b/assets/voxygen/voxel/npc/duck/female/tail.vox new file mode 100644 index 0000000..dc574e3 Binary files /dev/null and b/assets/voxygen/voxel/npc/duck/female/tail.vox differ diff --git a/assets/voxygen/voxel/npc/duck/female/wing_in_r.vox b/assets/voxygen/voxel/npc/duck/female/wing_in_r.vox new file mode 100644 index 0000000..0712d16 Binary files /dev/null and b/assets/voxygen/voxel/npc/duck/female/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/duck/female/wing_out_r.vox b/assets/voxygen/voxel/npc/duck/female/wing_out_r.vox new file mode 100644 index 0000000..be9cf98 Binary files /dev/null and b/assets/voxygen/voxel/npc/duck/female/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/duck/male/chest.vox b/assets/voxygen/voxel/npc/duck/male/chest.vox new file mode 100644 index 0000000..2e40ba4 Binary files /dev/null and b/assets/voxygen/voxel/npc/duck/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/duck/male/head.vox b/assets/voxygen/voxel/npc/duck/male/head.vox new file mode 100644 index 0000000..db25d2d Binary files /dev/null and b/assets/voxygen/voxel/npc/duck/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/duck/male/leg_r.vox b/assets/voxygen/voxel/npc/duck/male/leg_r.vox new file mode 100644 index 0000000..3a7c764 Binary files /dev/null and b/assets/voxygen/voxel/npc/duck/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/duck/male/tail.vox b/assets/voxygen/voxel/npc/duck/male/tail.vox new file mode 100644 index 0000000..f362de2 Binary files /dev/null and b/assets/voxygen/voxel/npc/duck/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/duck/male/wing_in_r.vox b/assets/voxygen/voxel/npc/duck/male/wing_in_r.vox new file mode 100644 index 0000000..1f36427 Binary files /dev/null and b/assets/voxygen/voxel/npc/duck/male/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/duck/male/wing_out_r.vox b/assets/voxygen/voxel/npc/duck/male/wing_out_r.vox new file mode 100644 index 0000000..8311da0 Binary files /dev/null and b/assets/voxygen/voxel/npc/duck/male/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/dullahan/male/foot_l.vox b/assets/voxygen/voxel/npc/dullahan/male/foot_l.vox new file mode 100644 index 0000000..fba51d0 Binary files /dev/null and b/assets/voxygen/voxel/npc/dullahan/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/dullahan/male/foot_r.vox b/assets/voxygen/voxel/npc/dullahan/male/foot_r.vox new file mode 100644 index 0000000..fba51d0 Binary files /dev/null and b/assets/voxygen/voxel/npc/dullahan/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/dullahan/male/hand_l.vox b/assets/voxygen/voxel/npc/dullahan/male/hand_l.vox new file mode 100644 index 0000000..05cdb57 Binary files /dev/null and b/assets/voxygen/voxel/npc/dullahan/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/dullahan/male/hand_r.vox b/assets/voxygen/voxel/npc/dullahan/male/hand_r.vox new file mode 100644 index 0000000..76b93b9 Binary files /dev/null and b/assets/voxygen/voxel/npc/dullahan/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/dullahan/male/leg_l.vox b/assets/voxygen/voxel/npc/dullahan/male/leg_l.vox new file mode 100644 index 0000000..2d41c17 Binary files /dev/null and b/assets/voxygen/voxel/npc/dullahan/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/dullahan/male/leg_r.vox b/assets/voxygen/voxel/npc/dullahan/male/leg_r.vox new file mode 100644 index 0000000..f364827 Binary files /dev/null and b/assets/voxygen/voxel/npc/dullahan/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/dullahan/male/shoulder_l.vox b/assets/voxygen/voxel/npc/dullahan/male/shoulder_l.vox new file mode 100644 index 0000000..6613316 Binary files /dev/null and b/assets/voxygen/voxel/npc/dullahan/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/dullahan/male/shoulder_r.vox b/assets/voxygen/voxel/npc/dullahan/male/shoulder_r.vox new file mode 100644 index 0000000..b389bb9 Binary files /dev/null and b/assets/voxygen/voxel/npc/dullahan/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/dullahan/male/torso_lower.vox b/assets/voxygen/voxel/npc/dullahan/male/torso_lower.vox new file mode 100644 index 0000000..b028985 Binary files /dev/null and b/assets/voxygen/voxel/npc/dullahan/male/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/dullahan/male/torso_upper.vox b/assets/voxygen/voxel/npc/dullahan/male/torso_upper.vox new file mode 100644 index 0000000..177257e Binary files /dev/null and b/assets/voxygen/voxel/npc/dullahan/male/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/dwarf_infected/Clockwork_Dwarf.vox b/assets/voxygen/voxel/npc/dwarf_infected/Clockwork_Dwarf.vox new file mode 100644 index 0000000..9c37f35 Binary files /dev/null and b/assets/voxygen/voxel/npc/dwarf_infected/Clockwork_Dwarf.vox differ diff --git a/assets/voxygen/voxel/npc/eagle/female/chest.vox b/assets/voxygen/voxel/npc/eagle/female/chest.vox new file mode 100644 index 0000000..e5fee5d Binary files /dev/null and b/assets/voxygen/voxel/npc/eagle/female/chest.vox differ diff --git a/assets/voxygen/voxel/npc/eagle/female/head.vox b/assets/voxygen/voxel/npc/eagle/female/head.vox new file mode 100644 index 0000000..6ee2d35 Binary files /dev/null and b/assets/voxygen/voxel/npc/eagle/female/head.vox differ diff --git a/assets/voxygen/voxel/npc/eagle/female/leg_r.vox b/assets/voxygen/voxel/npc/eagle/female/leg_r.vox new file mode 100644 index 0000000..6574f1c Binary files /dev/null and b/assets/voxygen/voxel/npc/eagle/female/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/eagle/female/tail.vox b/assets/voxygen/voxel/npc/eagle/female/tail.vox new file mode 100644 index 0000000..88968e8 Binary files /dev/null and b/assets/voxygen/voxel/npc/eagle/female/tail.vox differ diff --git a/assets/voxygen/voxel/npc/eagle/female/wing_in_r.vox b/assets/voxygen/voxel/npc/eagle/female/wing_in_r.vox new file mode 100644 index 0000000..66547ba Binary files /dev/null and b/assets/voxygen/voxel/npc/eagle/female/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/eagle/female/wing_out_r.vox b/assets/voxygen/voxel/npc/eagle/female/wing_out_r.vox new file mode 100644 index 0000000..0ea9ca3 Binary files /dev/null and b/assets/voxygen/voxel/npc/eagle/female/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/eagle/male/chest.vox b/assets/voxygen/voxel/npc/eagle/male/chest.vox new file mode 100644 index 0000000..aaebd20 Binary files /dev/null and b/assets/voxygen/voxel/npc/eagle/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/eagle/male/head.vox b/assets/voxygen/voxel/npc/eagle/male/head.vox new file mode 100644 index 0000000..b5bfef2 Binary files /dev/null and b/assets/voxygen/voxel/npc/eagle/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/eagle/male/leg_r.vox b/assets/voxygen/voxel/npc/eagle/male/leg_r.vox new file mode 100644 index 0000000..4bcbf07 Binary files /dev/null and b/assets/voxygen/voxel/npc/eagle/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/eagle/male/tail.vox b/assets/voxygen/voxel/npc/eagle/male/tail.vox new file mode 100644 index 0000000..5bd082f Binary files /dev/null and b/assets/voxygen/voxel/npc/eagle/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/eagle/male/wing_in_r.vox b/assets/voxygen/voxel/npc/eagle/male/wing_in_r.vox new file mode 100644 index 0000000..edbcfd1 Binary files /dev/null and b/assets/voxygen/voxel/npc/eagle/male/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/eagle/male/wing_out_r.vox b/assets/voxygen/voxel/npc/eagle/male/wing_out_r.vox new file mode 100644 index 0000000..171691e Binary files /dev/null and b/assets/voxygen/voxel/npc/eagle/male/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/elbst/male/chest.vox b/assets/voxygen/voxel/npc/elbst/male/chest.vox new file mode 100644 index 0000000..e1c81d1 Binary files /dev/null and b/assets/voxygen/voxel/npc/elbst/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/elbst/male/foot_br.vox b/assets/voxygen/voxel/npc/elbst/male/foot_br.vox new file mode 100644 index 0000000..8f3939c Binary files /dev/null and b/assets/voxygen/voxel/npc/elbst/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/elbst/male/foot_fr.vox b/assets/voxygen/voxel/npc/elbst/male/foot_fr.vox new file mode 100644 index 0000000..ea64a58 Binary files /dev/null and b/assets/voxygen/voxel/npc/elbst/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/elbst/male/head_lower.vox b/assets/voxygen/voxel/npc/elbst/male/head_lower.vox new file mode 100644 index 0000000..7a8246f Binary files /dev/null and b/assets/voxygen/voxel/npc/elbst/male/head_lower.vox differ diff --git a/assets/voxygen/voxel/npc/elbst/male/head_upper.vox b/assets/voxygen/voxel/npc/elbst/male/head_upper.vox new file mode 100644 index 0000000..212f805 Binary files /dev/null and b/assets/voxygen/voxel/npc/elbst/male/head_upper.vox differ diff --git a/assets/voxygen/voxel/npc/elbst/male/jaw.vox b/assets/voxygen/voxel/npc/elbst/male/jaw.vox new file mode 100644 index 0000000..4ce426b Binary files /dev/null and b/assets/voxygen/voxel/npc/elbst/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/elbst/male/tail_front.vox b/assets/voxygen/voxel/npc/elbst/male/tail_front.vox new file mode 100644 index 0000000..9347254 Binary files /dev/null and b/assets/voxygen/voxel/npc/elbst/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/elbst/male/tail_rear.vox b/assets/voxygen/voxel/npc/elbst/male/tail_rear.vox new file mode 100644 index 0000000..36c8dba Binary files /dev/null and b/assets/voxygen/voxel/npc/elbst/male/tail_rear.vox differ diff --git a/assets/voxygen/voxel/npc/emberfly/male/chest.vox b/assets/voxygen/voxel/npc/emberfly/male/chest.vox new file mode 100644 index 0000000..3bb3733 Binary files /dev/null and b/assets/voxygen/voxel/npc/emberfly/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/emberfly/male/head.vox b/assets/voxygen/voxel/npc/emberfly/male/head.vox new file mode 100644 index 0000000..39f89fc Binary files /dev/null and b/assets/voxygen/voxel/npc/emberfly/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/emberfly/male/leg_bcr.vox b/assets/voxygen/voxel/npc/emberfly/male/leg_bcr.vox new file mode 100644 index 0000000..ec80565 Binary files /dev/null and b/assets/voxygen/voxel/npc/emberfly/male/leg_bcr.vox differ diff --git a/assets/voxygen/voxel/npc/emberfly/male/leg_fcr.vox b/assets/voxygen/voxel/npc/emberfly/male/leg_fcr.vox new file mode 100644 index 0000000..ec80565 Binary files /dev/null and b/assets/voxygen/voxel/npc/emberfly/male/leg_fcr.vox differ diff --git a/assets/voxygen/voxel/npc/emberfly/male/leg_fr.vox b/assets/voxygen/voxel/npc/emberfly/male/leg_fr.vox new file mode 100644 index 0000000..ec80565 Binary files /dev/null and b/assets/voxygen/voxel/npc/emberfly/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/emberfly/male/wing_fr.vox b/assets/voxygen/voxel/npc/emberfly/male/wing_fr.vox new file mode 100644 index 0000000..06dae93 Binary files /dev/null and b/assets/voxygen/voxel/npc/emberfly/male/wing_fr.vox differ diff --git a/assets/voxygen/voxel/npc/executioner/executioner.vox b/assets/voxygen/voxel/npc/executioner/executioner.vox new file mode 100644 index 0000000..8508969 Binary files /dev/null and b/assets/voxygen/voxel/npc/executioner/executioner.vox differ diff --git a/assets/voxygen/voxel/npc/flamekeeper/chest.vox b/assets/voxygen/voxel/npc/flamekeeper/chest.vox new file mode 100644 index 0000000..41740fc Binary files /dev/null and b/assets/voxygen/voxel/npc/flamekeeper/chest.vox differ diff --git a/assets/voxygen/voxel/npc/flamekeeper/foot_r.vox b/assets/voxygen/voxel/npc/flamekeeper/foot_r.vox new file mode 100644 index 0000000..bb8427d Binary files /dev/null and b/assets/voxygen/voxel/npc/flamekeeper/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/flamekeeper/hand_r.vox b/assets/voxygen/voxel/npc/flamekeeper/hand_r.vox new file mode 100644 index 0000000..c326dca Binary files /dev/null and b/assets/voxygen/voxel/npc/flamekeeper/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/flamekeeper/head.vox b/assets/voxygen/voxel/npc/flamekeeper/head.vox new file mode 100644 index 0000000..cd254fa Binary files /dev/null and b/assets/voxygen/voxel/npc/flamekeeper/head.vox differ diff --git a/assets/voxygen/voxel/npc/flamekeeper/pants.vox b/assets/voxygen/voxel/npc/flamekeeper/pants.vox new file mode 100644 index 0000000..252bba2 Binary files /dev/null and b/assets/voxygen/voxel/npc/flamekeeper/pants.vox differ diff --git a/assets/voxygen/voxel/npc/forgemaster/male/foot_l.vox b/assets/voxygen/voxel/npc/forgemaster/male/foot_l.vox new file mode 100644 index 0000000..f797b21 Binary files /dev/null and b/assets/voxygen/voxel/npc/forgemaster/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/forgemaster/male/foot_r.vox b/assets/voxygen/voxel/npc/forgemaster/male/foot_r.vox new file mode 100644 index 0000000..7f63ea2 Binary files /dev/null and b/assets/voxygen/voxel/npc/forgemaster/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/forgemaster/male/hand_l.vox b/assets/voxygen/voxel/npc/forgemaster/male/hand_l.vox new file mode 100644 index 0000000..46e33df Binary files /dev/null and b/assets/voxygen/voxel/npc/forgemaster/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/forgemaster/male/hand_r.vox b/assets/voxygen/voxel/npc/forgemaster/male/hand_r.vox new file mode 100644 index 0000000..f142b28 Binary files /dev/null and b/assets/voxygen/voxel/npc/forgemaster/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/forgemaster/male/head.vox b/assets/voxygen/voxel/npc/forgemaster/male/head.vox new file mode 100644 index 0000000..ff72b5e Binary files /dev/null and b/assets/voxygen/voxel/npc/forgemaster/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/forgemaster/male/leg_l.vox b/assets/voxygen/voxel/npc/forgemaster/male/leg_l.vox new file mode 100644 index 0000000..de0eb05 Binary files /dev/null and b/assets/voxygen/voxel/npc/forgemaster/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/forgemaster/male/leg_r.vox b/assets/voxygen/voxel/npc/forgemaster/male/leg_r.vox new file mode 100644 index 0000000..1399ebd Binary files /dev/null and b/assets/voxygen/voxel/npc/forgemaster/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/forgemaster/male/shoulder_l.vox b/assets/voxygen/voxel/npc/forgemaster/male/shoulder_l.vox new file mode 100644 index 0000000..81b8d2d Binary files /dev/null and b/assets/voxygen/voxel/npc/forgemaster/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/forgemaster/male/shoulder_r.vox b/assets/voxygen/voxel/npc/forgemaster/male/shoulder_r.vox new file mode 100644 index 0000000..330bc32 Binary files /dev/null and b/assets/voxygen/voxel/npc/forgemaster/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/forgemaster/male/torso_lower.vox b/assets/voxygen/voxel/npc/forgemaster/male/torso_lower.vox new file mode 100644 index 0000000..c1a84fa Binary files /dev/null and b/assets/voxygen/voxel/npc/forgemaster/male/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/forgemaster/male/torso_upper.vox b/assets/voxygen/voxel/npc/forgemaster/male/torso_upper.vox new file mode 100644 index 0000000..50479b8 Binary files /dev/null and b/assets/voxygen/voxel/npc/forgemaster/male/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/fox/female/chest.vox b/assets/voxygen/voxel/npc/fox/female/chest.vox new file mode 100644 index 0000000..00fafb5 Binary files /dev/null and b/assets/voxygen/voxel/npc/fox/female/chest.vox differ diff --git a/assets/voxygen/voxel/npc/fox/female/foot_br.vox b/assets/voxygen/voxel/npc/fox/female/foot_br.vox new file mode 100644 index 0000000..9f37e46 Binary files /dev/null and b/assets/voxygen/voxel/npc/fox/female/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/fox/female/foot_fr.vox b/assets/voxygen/voxel/npc/fox/female/foot_fr.vox new file mode 100644 index 0000000..8aa38d4 Binary files /dev/null and b/assets/voxygen/voxel/npc/fox/female/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/fox/female/head.vox b/assets/voxygen/voxel/npc/fox/female/head.vox new file mode 100644 index 0000000..50992f5 Binary files /dev/null and b/assets/voxygen/voxel/npc/fox/female/head.vox differ diff --git a/assets/voxygen/voxel/npc/fox/female/tail.vox b/assets/voxygen/voxel/npc/fox/female/tail.vox new file mode 100644 index 0000000..c728971 Binary files /dev/null and b/assets/voxygen/voxel/npc/fox/female/tail.vox differ diff --git a/assets/voxygen/voxel/npc/fox/male/chest.vox b/assets/voxygen/voxel/npc/fox/male/chest.vox new file mode 100644 index 0000000..82bc2ac Binary files /dev/null and b/assets/voxygen/voxel/npc/fox/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/fox/male/foot_br.vox b/assets/voxygen/voxel/npc/fox/male/foot_br.vox new file mode 100644 index 0000000..2a5e061 Binary files /dev/null and b/assets/voxygen/voxel/npc/fox/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/fox/male/foot_fr.vox b/assets/voxygen/voxel/npc/fox/male/foot_fr.vox new file mode 100644 index 0000000..73068aa Binary files /dev/null and b/assets/voxygen/voxel/npc/fox/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/fox/male/head.vox b/assets/voxygen/voxel/npc/fox/male/head.vox new file mode 100644 index 0000000..049f51c Binary files /dev/null and b/assets/voxygen/voxel/npc/fox/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/fox/male/tail.vox b/assets/voxygen/voxel/npc/fox/male/tail.vox new file mode 100644 index 0000000..a469354 Binary files /dev/null and b/assets/voxygen/voxel/npc/fox/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/frog/male/chest.vox b/assets/voxygen/voxel/npc/frog/male/chest.vox new file mode 100644 index 0000000..00b9a89 Binary files /dev/null and b/assets/voxygen/voxel/npc/frog/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/frog/male/foot_br.vox b/assets/voxygen/voxel/npc/frog/male/foot_br.vox new file mode 100644 index 0000000..2b77838 Binary files /dev/null and b/assets/voxygen/voxel/npc/frog/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/frog/male/foot_fr.vox b/assets/voxygen/voxel/npc/frog/male/foot_fr.vox new file mode 100644 index 0000000..362de03 Binary files /dev/null and b/assets/voxygen/voxel/npc/frog/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/frog/male/head.vox b/assets/voxygen/voxel/npc/frog/male/head.vox new file mode 100644 index 0000000..4670f5f Binary files /dev/null and b/assets/voxygen/voxel/npc/frog/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/frostfang/male/ears.vox b/assets/voxygen/voxel/npc/frostfang/male/ears.vox new file mode 100644 index 0000000..f70d4c7 Binary files /dev/null and b/assets/voxygen/voxel/npc/frostfang/male/ears.vox differ diff --git a/assets/voxygen/voxel/npc/frostfang/male/foot_br.vox b/assets/voxygen/voxel/npc/frostfang/male/foot_br.vox new file mode 100644 index 0000000..d4c8799 Binary files /dev/null and b/assets/voxygen/voxel/npc/frostfang/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/frostfang/male/foot_fr.vox b/assets/voxygen/voxel/npc/frostfang/male/foot_fr.vox new file mode 100644 index 0000000..0f30f5c Binary files /dev/null and b/assets/voxygen/voxel/npc/frostfang/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/frostfang/male/head.vox b/assets/voxygen/voxel/npc/frostfang/male/head.vox new file mode 100644 index 0000000..2796295 Binary files /dev/null and b/assets/voxygen/voxel/npc/frostfang/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/frostfang/male/jaw.vox b/assets/voxygen/voxel/npc/frostfang/male/jaw.vox new file mode 100644 index 0000000..61a5018 Binary files /dev/null and b/assets/voxygen/voxel/npc/frostfang/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/frostfang/male/leg_br.vox b/assets/voxygen/voxel/npc/frostfang/male/leg_br.vox new file mode 100644 index 0000000..1d5acb7 Binary files /dev/null and b/assets/voxygen/voxel/npc/frostfang/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/frostfang/male/leg_fr.vox b/assets/voxygen/voxel/npc/frostfang/male/leg_fr.vox new file mode 100644 index 0000000..0908066 Binary files /dev/null and b/assets/voxygen/voxel/npc/frostfang/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/frostfang/male/neck.vox b/assets/voxygen/voxel/npc/frostfang/male/neck.vox new file mode 100644 index 0000000..59f9402 Binary files /dev/null and b/assets/voxygen/voxel/npc/frostfang/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/frostfang/male/tail.vox b/assets/voxygen/voxel/npc/frostfang/male/tail.vox new file mode 100644 index 0000000..815bb1c Binary files /dev/null and b/assets/voxygen/voxel/npc/frostfang/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/frostfang/male/torso_back.vox b/assets/voxygen/voxel/npc/frostfang/male/torso_back.vox new file mode 100644 index 0000000..eb0a830 Binary files /dev/null and b/assets/voxygen/voxel/npc/frostfang/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/frostfang/male/torso_front.vox b/assets/voxygen/voxel/npc/frostfang/male/torso_front.vox new file mode 100644 index 0000000..80537e8 Binary files /dev/null and b/assets/voxygen/voxel/npc/frostfang/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/fungome/male/chest.vox b/assets/voxygen/voxel/npc/fungome/male/chest.vox new file mode 100644 index 0000000..944afcd Binary files /dev/null and b/assets/voxygen/voxel/npc/fungome/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/fungome/male/foot_br.vox b/assets/voxygen/voxel/npc/fungome/male/foot_br.vox new file mode 100644 index 0000000..f287318 Binary files /dev/null and b/assets/voxygen/voxel/npc/fungome/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/fungome/male/foot_fr.vox b/assets/voxygen/voxel/npc/fungome/male/foot_fr.vox new file mode 100644 index 0000000..59746c2 Binary files /dev/null and b/assets/voxygen/voxel/npc/fungome/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/fungome/male/head.vox b/assets/voxygen/voxel/npc/fungome/male/head.vox new file mode 100644 index 0000000..aca86ac Binary files /dev/null and b/assets/voxygen/voxel/npc/fungome/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/fungome/male/tail.vox b/assets/voxygen/voxel/npc/fungome/male/tail.vox new file mode 100644 index 0000000..6e76e93 Binary files /dev/null and b/assets/voxygen/voxel/npc/fungome/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/gecko/male/chest.vox b/assets/voxygen/voxel/npc/gecko/male/chest.vox new file mode 100644 index 0000000..dd21848 Binary files /dev/null and b/assets/voxygen/voxel/npc/gecko/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/gecko/male/foot_br.vox b/assets/voxygen/voxel/npc/gecko/male/foot_br.vox new file mode 100644 index 0000000..a601074 Binary files /dev/null and b/assets/voxygen/voxel/npc/gecko/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/gecko/male/foot_fr.vox b/assets/voxygen/voxel/npc/gecko/male/foot_fr.vox new file mode 100644 index 0000000..55bb172 Binary files /dev/null and b/assets/voxygen/voxel/npc/gecko/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/gecko/male/head.vox b/assets/voxygen/voxel/npc/gecko/male/head.vox new file mode 100644 index 0000000..ec2c857 Binary files /dev/null and b/assets/voxygen/voxel/npc/gecko/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/gecko/male/tail.vox b/assets/voxygen/voxel/npc/gecko/male/tail.vox new file mode 100644 index 0000000..eca32d0 Binary files /dev/null and b/assets/voxygen/voxel/npc/gecko/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/gigas_frost/male/foot_l.vox b/assets/voxygen/voxel/npc/gigas_frost/male/foot_l.vox new file mode 100644 index 0000000..0218711 Binary files /dev/null and b/assets/voxygen/voxel/npc/gigas_frost/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/gigas_frost/male/foot_r.vox b/assets/voxygen/voxel/npc/gigas_frost/male/foot_r.vox new file mode 100644 index 0000000..0218711 Binary files /dev/null and b/assets/voxygen/voxel/npc/gigas_frost/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/gigas_frost/male/hand_l.vox b/assets/voxygen/voxel/npc/gigas_frost/male/hand_l.vox new file mode 100644 index 0000000..a3810b0 Binary files /dev/null and b/assets/voxygen/voxel/npc/gigas_frost/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/gigas_frost/male/hand_r.vox b/assets/voxygen/voxel/npc/gigas_frost/male/hand_r.vox new file mode 100644 index 0000000..0bc455c Binary files /dev/null and b/assets/voxygen/voxel/npc/gigas_frost/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/gigas_frost/male/head.vox b/assets/voxygen/voxel/npc/gigas_frost/male/head.vox new file mode 100644 index 0000000..817f676 Binary files /dev/null and b/assets/voxygen/voxel/npc/gigas_frost/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/gigas_frost/male/jaw.vox b/assets/voxygen/voxel/npc/gigas_frost/male/jaw.vox new file mode 100644 index 0000000..e0a5f19 Binary files /dev/null and b/assets/voxygen/voxel/npc/gigas_frost/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/gigas_frost/male/leg_l.vox b/assets/voxygen/voxel/npc/gigas_frost/male/leg_l.vox new file mode 100644 index 0000000..3ed142b Binary files /dev/null and b/assets/voxygen/voxel/npc/gigas_frost/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/gigas_frost/male/leg_r.vox b/assets/voxygen/voxel/npc/gigas_frost/male/leg_r.vox new file mode 100644 index 0000000..48d6e7a Binary files /dev/null and b/assets/voxygen/voxel/npc/gigas_frost/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/gigas_frost/male/shoulder_l.vox b/assets/voxygen/voxel/npc/gigas_frost/male/shoulder_l.vox new file mode 100644 index 0000000..869b155 Binary files /dev/null and b/assets/voxygen/voxel/npc/gigas_frost/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/gigas_frost/male/shoulder_r.vox b/assets/voxygen/voxel/npc/gigas_frost/male/shoulder_r.vox new file mode 100644 index 0000000..44eba90 Binary files /dev/null and b/assets/voxygen/voxel/npc/gigas_frost/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/gigas_frost/male/torso_lower.vox b/assets/voxygen/voxel/npc/gigas_frost/male/torso_lower.vox new file mode 100644 index 0000000..9789236 Binary files /dev/null and b/assets/voxygen/voxel/npc/gigas_frost/male/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/gigas_frost/male/torso_upper.vox b/assets/voxygen/voxel/npc/gigas_frost/male/torso_upper.vox new file mode 100644 index 0000000..9212c2c Binary files /dev/null and b/assets/voxygen/voxel/npc/gigas_frost/male/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/gnarling/chieftain/chest.vox b/assets/voxygen/voxel/npc/gnarling/chieftain/chest.vox new file mode 100644 index 0000000..45990d8 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnarling/chieftain/chest.vox differ diff --git a/assets/voxygen/voxel/npc/gnarling/chieftain/foot_r.vox b/assets/voxygen/voxel/npc/gnarling/chieftain/foot_r.vox new file mode 100644 index 0000000..b3ced0f Binary files /dev/null and b/assets/voxygen/voxel/npc/gnarling/chieftain/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/gnarling/chieftain/hand_r.vox b/assets/voxygen/voxel/npc/gnarling/chieftain/hand_r.vox new file mode 100644 index 0000000..0df069f Binary files /dev/null and b/assets/voxygen/voxel/npc/gnarling/chieftain/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/gnarling/chieftain/head.vox b/assets/voxygen/voxel/npc/gnarling/chieftain/head.vox new file mode 100644 index 0000000..67e890d Binary files /dev/null and b/assets/voxygen/voxel/npc/gnarling/chieftain/head.vox differ diff --git a/assets/voxygen/voxel/npc/gnarling/chieftain/pants.vox b/assets/voxygen/voxel/npc/gnarling/chieftain/pants.vox new file mode 100644 index 0000000..d5a5e6a Binary files /dev/null and b/assets/voxygen/voxel/npc/gnarling/chieftain/pants.vox differ diff --git a/assets/voxygen/voxel/npc/gnarling/chieftain/tail.vox b/assets/voxygen/voxel/npc/gnarling/chieftain/tail.vox new file mode 100644 index 0000000..c259a8b Binary files /dev/null and b/assets/voxygen/voxel/npc/gnarling/chieftain/tail.vox differ diff --git a/assets/voxygen/voxel/npc/gnarling/logger/chest.vox b/assets/voxygen/voxel/npc/gnarling/logger/chest.vox new file mode 100644 index 0000000..e058816 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnarling/logger/chest.vox differ diff --git a/assets/voxygen/voxel/npc/gnarling/logger/foot_r.vox b/assets/voxygen/voxel/npc/gnarling/logger/foot_r.vox new file mode 100644 index 0000000..eac87b8 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnarling/logger/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/gnarling/logger/hand_r.vox b/assets/voxygen/voxel/npc/gnarling/logger/hand_r.vox new file mode 100644 index 0000000..27f3417 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnarling/logger/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/gnarling/logger/head.vox b/assets/voxygen/voxel/npc/gnarling/logger/head.vox new file mode 100644 index 0000000..2e26c92 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnarling/logger/head.vox differ diff --git a/assets/voxygen/voxel/npc/gnarling/logger/pants.vox b/assets/voxygen/voxel/npc/gnarling/logger/pants.vox new file mode 100644 index 0000000..2ad2826 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnarling/logger/pants.vox differ diff --git a/assets/voxygen/voxel/npc/gnarling/logger/tail.vox b/assets/voxygen/voxel/npc/gnarling/logger/tail.vox new file mode 100644 index 0000000..3aae47c Binary files /dev/null and b/assets/voxygen/voxel/npc/gnarling/logger/tail.vox differ diff --git a/assets/voxygen/voxel/npc/gnarling/mugger/chest.vox b/assets/voxygen/voxel/npc/gnarling/mugger/chest.vox new file mode 100644 index 0000000..6113ae2 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnarling/mugger/chest.vox differ diff --git a/assets/voxygen/voxel/npc/gnarling/mugger/foot_r.vox b/assets/voxygen/voxel/npc/gnarling/mugger/foot_r.vox new file mode 100644 index 0000000..8263e05 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnarling/mugger/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/gnarling/mugger/hand_r.vox b/assets/voxygen/voxel/npc/gnarling/mugger/hand_r.vox new file mode 100644 index 0000000..396daaa Binary files /dev/null and b/assets/voxygen/voxel/npc/gnarling/mugger/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/gnarling/mugger/head.vox b/assets/voxygen/voxel/npc/gnarling/mugger/head.vox new file mode 100644 index 0000000..bc4fd05 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnarling/mugger/head.vox differ diff --git a/assets/voxygen/voxel/npc/gnarling/mugger/main_hand.vox b/assets/voxygen/voxel/npc/gnarling/mugger/main_hand.vox new file mode 100644 index 0000000..a6849ac Binary files /dev/null and b/assets/voxygen/voxel/npc/gnarling/mugger/main_hand.vox differ diff --git a/assets/voxygen/voxel/npc/gnarling/mugger/pants.vox b/assets/voxygen/voxel/npc/gnarling/mugger/pants.vox new file mode 100644 index 0000000..1f3ebe4 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnarling/mugger/pants.vox differ diff --git a/assets/voxygen/voxel/npc/gnarling/mugger/tail.vox b/assets/voxygen/voxel/npc/gnarling/mugger/tail.vox new file mode 100644 index 0000000..8955730 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnarling/mugger/tail.vox differ diff --git a/assets/voxygen/voxel/npc/gnarling/stalker/chest.vox b/assets/voxygen/voxel/npc/gnarling/stalker/chest.vox new file mode 100644 index 0000000..fa7c8c7 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnarling/stalker/chest.vox differ diff --git a/assets/voxygen/voxel/npc/gnarling/stalker/foot_r.vox b/assets/voxygen/voxel/npc/gnarling/stalker/foot_r.vox new file mode 100644 index 0000000..2e454f4 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnarling/stalker/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/gnarling/stalker/hand_r.vox b/assets/voxygen/voxel/npc/gnarling/stalker/hand_r.vox new file mode 100644 index 0000000..5385b62 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnarling/stalker/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/gnarling/stalker/head.vox b/assets/voxygen/voxel/npc/gnarling/stalker/head.vox new file mode 100644 index 0000000..b9e6636 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnarling/stalker/head.vox differ diff --git a/assets/voxygen/voxel/npc/gnarling/stalker/pants.vox b/assets/voxygen/voxel/npc/gnarling/stalker/pants.vox new file mode 100644 index 0000000..5baa98e Binary files /dev/null and b/assets/voxygen/voxel/npc/gnarling/stalker/pants.vox differ diff --git a/assets/voxygen/voxel/npc/gnarling/stalker/tail.vox b/assets/voxygen/voxel/npc/gnarling/stalker/tail.vox new file mode 100644 index 0000000..6d2b8e9 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnarling/stalker/tail.vox differ diff --git a/assets/voxygen/voxel/npc/gnoll/male/chest.vox b/assets/voxygen/voxel/npc/gnoll/male/chest.vox new file mode 100644 index 0000000..fb7479a Binary files /dev/null and b/assets/voxygen/voxel/npc/gnoll/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/gnoll/male/foot_r.vox b/assets/voxygen/voxel/npc/gnoll/male/foot_r.vox new file mode 100644 index 0000000..52b63b3 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnoll/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/gnoll/male/hand_r.vox b/assets/voxygen/voxel/npc/gnoll/male/hand_r.vox new file mode 100644 index 0000000..22c8123 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnoll/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/gnoll/male/head.vox b/assets/voxygen/voxel/npc/gnoll/male/head.vox new file mode 100644 index 0000000..3e8815c Binary files /dev/null and b/assets/voxygen/voxel/npc/gnoll/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/gnoll/male/pants.vox b/assets/voxygen/voxel/npc/gnoll/male/pants.vox new file mode 100644 index 0000000..00d12fd Binary files /dev/null and b/assets/voxygen/voxel/npc/gnoll/male/pants.vox differ diff --git a/assets/voxygen/voxel/npc/gnoll/male/tail.vox b/assets/voxygen/voxel/npc/gnoll/male/tail.vox new file mode 100644 index 0000000..0a0c4a8 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnoll/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/gnoll/rogue/chest.vox b/assets/voxygen/voxel/npc/gnoll/rogue/chest.vox new file mode 100644 index 0000000..ad8f558 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnoll/rogue/chest.vox differ diff --git a/assets/voxygen/voxel/npc/gnoll/rogue/foot_r.vox b/assets/voxygen/voxel/npc/gnoll/rogue/foot_r.vox new file mode 100644 index 0000000..50e0f8f Binary files /dev/null and b/assets/voxygen/voxel/npc/gnoll/rogue/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/gnoll/rogue/hand_r.vox b/assets/voxygen/voxel/npc/gnoll/rogue/hand_r.vox new file mode 100644 index 0000000..7f334e1 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnoll/rogue/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/gnoll/rogue/head.vox b/assets/voxygen/voxel/npc/gnoll/rogue/head.vox new file mode 100644 index 0000000..8f944a0 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnoll/rogue/head.vox differ diff --git a/assets/voxygen/voxel/npc/gnoll/rogue/pants.vox b/assets/voxygen/voxel/npc/gnoll/rogue/pants.vox new file mode 100644 index 0000000..f9f66b7 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnoll/rogue/pants.vox differ diff --git a/assets/voxygen/voxel/npc/gnoll/rogue/tail.vox b/assets/voxygen/voxel/npc/gnoll/rogue/tail.vox new file mode 100644 index 0000000..842c1cf Binary files /dev/null and b/assets/voxygen/voxel/npc/gnoll/rogue/tail.vox differ diff --git a/assets/voxygen/voxel/npc/gnoll/shaman/chest.vox b/assets/voxygen/voxel/npc/gnoll/shaman/chest.vox new file mode 100644 index 0000000..fb7479a Binary files /dev/null and b/assets/voxygen/voxel/npc/gnoll/shaman/chest.vox differ diff --git a/assets/voxygen/voxel/npc/gnoll/shaman/foot_r.vox b/assets/voxygen/voxel/npc/gnoll/shaman/foot_r.vox new file mode 100644 index 0000000..38bb9c2 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnoll/shaman/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/gnoll/shaman/hand_r.vox b/assets/voxygen/voxel/npc/gnoll/shaman/hand_r.vox new file mode 100644 index 0000000..22c8123 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnoll/shaman/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/gnoll/shaman/head.vox b/assets/voxygen/voxel/npc/gnoll/shaman/head.vox new file mode 100644 index 0000000..3e8815c Binary files /dev/null and b/assets/voxygen/voxel/npc/gnoll/shaman/head.vox differ diff --git a/assets/voxygen/voxel/npc/gnoll/shaman/pants.vox b/assets/voxygen/voxel/npc/gnoll/shaman/pants.vox new file mode 100644 index 0000000..00d12fd Binary files /dev/null and b/assets/voxygen/voxel/npc/gnoll/shaman/pants.vox differ diff --git a/assets/voxygen/voxel/npc/gnoll/shaman/tail.vox b/assets/voxygen/voxel/npc/gnoll/shaman/tail.vox new file mode 100644 index 0000000..0a0c4a8 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnoll/shaman/tail.vox differ diff --git a/assets/voxygen/voxel/npc/gnoll/trapper/chest.vox b/assets/voxygen/voxel/npc/gnoll/trapper/chest.vox new file mode 100644 index 0000000..2996ed2 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnoll/trapper/chest.vox differ diff --git a/assets/voxygen/voxel/npc/gnoll/trapper/foot_r.vox b/assets/voxygen/voxel/npc/gnoll/trapper/foot_r.vox new file mode 100644 index 0000000..11a26ac Binary files /dev/null and b/assets/voxygen/voxel/npc/gnoll/trapper/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/gnoll/trapper/hand_r.vox b/assets/voxygen/voxel/npc/gnoll/trapper/hand_r.vox new file mode 100644 index 0000000..1b2bddb Binary files /dev/null and b/assets/voxygen/voxel/npc/gnoll/trapper/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/gnoll/trapper/head.vox b/assets/voxygen/voxel/npc/gnoll/trapper/head.vox new file mode 100644 index 0000000..676335b Binary files /dev/null and b/assets/voxygen/voxel/npc/gnoll/trapper/head.vox differ diff --git a/assets/voxygen/voxel/npc/gnoll/trapper/pants.vox b/assets/voxygen/voxel/npc/gnoll/trapper/pants.vox new file mode 100644 index 0000000..2fbe549 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnoll/trapper/pants.vox differ diff --git a/assets/voxygen/voxel/npc/gnoll/trapper/tail.vox b/assets/voxygen/voxel/npc/gnoll/trapper/tail.vox new file mode 100644 index 0000000..fe904e9 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnoll/trapper/tail.vox differ diff --git a/assets/voxygen/voxel/npc/gnome/male/chest.vox b/assets/voxygen/voxel/npc/gnome/male/chest.vox new file mode 100644 index 0000000..fc2e051 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnome/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/gnome/male/foot_r.vox b/assets/voxygen/voxel/npc/gnome/male/foot_r.vox new file mode 100644 index 0000000..950d405 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnome/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/gnome/male/hand_r.vox b/assets/voxygen/voxel/npc/gnome/male/hand_r.vox new file mode 100644 index 0000000..d91055c Binary files /dev/null and b/assets/voxygen/voxel/npc/gnome/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/gnome/male/head.vox b/assets/voxygen/voxel/npc/gnome/male/head.vox new file mode 100644 index 0000000..d4823f4 Binary files /dev/null and b/assets/voxygen/voxel/npc/gnome/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/gnome/male/pants.vox b/assets/voxygen/voxel/npc/gnome/male/pants.vox new file mode 100644 index 0000000..b38bd8e Binary files /dev/null and b/assets/voxygen/voxel/npc/gnome/male/pants.vox differ diff --git a/assets/voxygen/voxel/npc/goat/male/chest.vox b/assets/voxygen/voxel/npc/goat/male/chest.vox new file mode 100644 index 0000000..3f16dbc Binary files /dev/null and b/assets/voxygen/voxel/npc/goat/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/goat/male/foot_br.vox b/assets/voxygen/voxel/npc/goat/male/foot_br.vox new file mode 100644 index 0000000..7dffcd9 Binary files /dev/null and b/assets/voxygen/voxel/npc/goat/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/goat/male/foot_fr.vox b/assets/voxygen/voxel/npc/goat/male/foot_fr.vox new file mode 100644 index 0000000..4bf934d Binary files /dev/null and b/assets/voxygen/voxel/npc/goat/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/goat/male/head.vox b/assets/voxygen/voxel/npc/goat/male/head.vox new file mode 100644 index 0000000..7607be3 Binary files /dev/null and b/assets/voxygen/voxel/npc/goat/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/goat/male/tail.vox b/assets/voxygen/voxel/npc/goat/male/tail.vox new file mode 100644 index 0000000..933882b Binary files /dev/null and b/assets/voxygen/voxel/npc/goat/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/goblin_chucker/chest.vox b/assets/voxygen/voxel/npc/goblin_chucker/chest.vox new file mode 100644 index 0000000..aac61d6 Binary files /dev/null and b/assets/voxygen/voxel/npc/goblin_chucker/chest.vox differ diff --git a/assets/voxygen/voxel/npc/goblin_chucker/foot_r.vox b/assets/voxygen/voxel/npc/goblin_chucker/foot_r.vox new file mode 100644 index 0000000..dacb336 Binary files /dev/null and b/assets/voxygen/voxel/npc/goblin_chucker/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/goblin_chucker/hand_r.vox b/assets/voxygen/voxel/npc/goblin_chucker/hand_r.vox new file mode 100644 index 0000000..0ea09d0 Binary files /dev/null and b/assets/voxygen/voxel/npc/goblin_chucker/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/goblin_chucker/head.vox b/assets/voxygen/voxel/npc/goblin_chucker/head.vox new file mode 100644 index 0000000..3922f7c Binary files /dev/null and b/assets/voxygen/voxel/npc/goblin_chucker/head.vox differ diff --git a/assets/voxygen/voxel/npc/goblin_chucker/pants.vox b/assets/voxygen/voxel/npc/goblin_chucker/pants.vox new file mode 100644 index 0000000..2f1b68e Binary files /dev/null and b/assets/voxygen/voxel/npc/goblin_chucker/pants.vox differ diff --git a/assets/voxygen/voxel/npc/goblin_ruffian/chest.vox b/assets/voxygen/voxel/npc/goblin_ruffian/chest.vox new file mode 100644 index 0000000..f9e7928 Binary files /dev/null and b/assets/voxygen/voxel/npc/goblin_ruffian/chest.vox differ diff --git a/assets/voxygen/voxel/npc/goblin_ruffian/foot_r.vox b/assets/voxygen/voxel/npc/goblin_ruffian/foot_r.vox new file mode 100644 index 0000000..3fd3764 Binary files /dev/null and b/assets/voxygen/voxel/npc/goblin_ruffian/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/goblin_ruffian/hand_r.vox b/assets/voxygen/voxel/npc/goblin_ruffian/hand_r.vox new file mode 100644 index 0000000..eaf1853 Binary files /dev/null and b/assets/voxygen/voxel/npc/goblin_ruffian/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/goblin_ruffian/head.vox b/assets/voxygen/voxel/npc/goblin_ruffian/head.vox new file mode 100644 index 0000000..3ff43a8 Binary files /dev/null and b/assets/voxygen/voxel/npc/goblin_ruffian/head.vox differ diff --git a/assets/voxygen/voxel/npc/goblin_ruffian/pants.vox b/assets/voxygen/voxel/npc/goblin_ruffian/pants.vox new file mode 100644 index 0000000..b8a31c3 Binary files /dev/null and b/assets/voxygen/voxel/npc/goblin_ruffian/pants.vox differ diff --git a/assets/voxygen/voxel/npc/goblin_thug/chest.vox b/assets/voxygen/voxel/npc/goblin_thug/chest.vox new file mode 100644 index 0000000..995037d Binary files /dev/null and b/assets/voxygen/voxel/npc/goblin_thug/chest.vox differ diff --git a/assets/voxygen/voxel/npc/goblin_thug/foot_r.vox b/assets/voxygen/voxel/npc/goblin_thug/foot_r.vox new file mode 100644 index 0000000..2d4f8f0 Binary files /dev/null and b/assets/voxygen/voxel/npc/goblin_thug/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/goblin_thug/hand_r.vox b/assets/voxygen/voxel/npc/goblin_thug/hand_r.vox new file mode 100644 index 0000000..a205276 Binary files /dev/null and b/assets/voxygen/voxel/npc/goblin_thug/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/goblin_thug/head.vox b/assets/voxygen/voxel/npc/goblin_thug/head.vox new file mode 100644 index 0000000..7984c5b Binary files /dev/null and b/assets/voxygen/voxel/npc/goblin_thug/head.vox differ diff --git a/assets/voxygen/voxel/npc/goblin_thug/pants.vox b/assets/voxygen/voxel/npc/goblin_thug/pants.vox new file mode 100644 index 0000000..6729638 Binary files /dev/null and b/assets/voxygen/voxel/npc/goblin_thug/pants.vox differ diff --git a/assets/voxygen/voxel/npc/goose/male/chest.vox b/assets/voxygen/voxel/npc/goose/male/chest.vox new file mode 100644 index 0000000..681d409 Binary files /dev/null and b/assets/voxygen/voxel/npc/goose/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/goose/male/head.vox b/assets/voxygen/voxel/npc/goose/male/head.vox new file mode 100644 index 0000000..2687989 Binary files /dev/null and b/assets/voxygen/voxel/npc/goose/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/goose/male/leg_r.vox b/assets/voxygen/voxel/npc/goose/male/leg_r.vox new file mode 100644 index 0000000..d9f6322 Binary files /dev/null and b/assets/voxygen/voxel/npc/goose/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/goose/male/tail.vox b/assets/voxygen/voxel/npc/goose/male/tail.vox new file mode 100644 index 0000000..31185c6 Binary files /dev/null and b/assets/voxygen/voxel/npc/goose/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/goose/male/wing_in_r.vox b/assets/voxygen/voxel/npc/goose/male/wing_in_r.vox new file mode 100644 index 0000000..34a89e0 Binary files /dev/null and b/assets/voxygen/voxel/npc/goose/male/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/goose/male/wing_out_r.vox b/assets/voxygen/voxel/npc/goose/male/wing_out_r.vox new file mode 100644 index 0000000..3c34a2e Binary files /dev/null and b/assets/voxygen/voxel/npc/goose/male/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/gravewarden/male/chest_lower.vox b/assets/voxygen/voxel/npc/gravewarden/male/chest_lower.vox new file mode 100644 index 0000000..cdad12c Binary files /dev/null and b/assets/voxygen/voxel/npc/gravewarden/male/chest_lower.vox differ diff --git a/assets/voxygen/voxel/npc/gravewarden/male/chest_upper.vox b/assets/voxygen/voxel/npc/gravewarden/male/chest_upper.vox new file mode 100644 index 0000000..ec92794 Binary files /dev/null and b/assets/voxygen/voxel/npc/gravewarden/male/chest_upper.vox differ diff --git a/assets/voxygen/voxel/npc/gravewarden/male/foot_l.vox b/assets/voxygen/voxel/npc/gravewarden/male/foot_l.vox new file mode 100644 index 0000000..e3fced3 Binary files /dev/null and b/assets/voxygen/voxel/npc/gravewarden/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/gravewarden/male/foot_r.vox b/assets/voxygen/voxel/npc/gravewarden/male/foot_r.vox new file mode 100644 index 0000000..4812eec Binary files /dev/null and b/assets/voxygen/voxel/npc/gravewarden/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/gravewarden/male/hand_l.vox b/assets/voxygen/voxel/npc/gravewarden/male/hand_l.vox new file mode 100644 index 0000000..e2631cb Binary files /dev/null and b/assets/voxygen/voxel/npc/gravewarden/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/gravewarden/male/hand_r.vox b/assets/voxygen/voxel/npc/gravewarden/male/hand_r.vox new file mode 100644 index 0000000..304f632 Binary files /dev/null and b/assets/voxygen/voxel/npc/gravewarden/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/gravewarden/male/head.vox b/assets/voxygen/voxel/npc/gravewarden/male/head.vox new file mode 100644 index 0000000..6988381 Binary files /dev/null and b/assets/voxygen/voxel/npc/gravewarden/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/gravewarden/male/leg_l.vox b/assets/voxygen/voxel/npc/gravewarden/male/leg_l.vox new file mode 100644 index 0000000..653c42b Binary files /dev/null and b/assets/voxygen/voxel/npc/gravewarden/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/gravewarden/male/leg_r.vox b/assets/voxygen/voxel/npc/gravewarden/male/leg_r.vox new file mode 100644 index 0000000..3776c27 Binary files /dev/null and b/assets/voxygen/voxel/npc/gravewarden/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/gravewarden/male/shoulder_l.vox b/assets/voxygen/voxel/npc/gravewarden/male/shoulder_l.vox new file mode 100644 index 0000000..3455118 Binary files /dev/null and b/assets/voxygen/voxel/npc/gravewarden/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/gravewarden/male/shoulder_r.vox b/assets/voxygen/voxel/npc/gravewarden/male/shoulder_r.vox new file mode 100644 index 0000000..7cb1408 Binary files /dev/null and b/assets/voxygen/voxel/npc/gravewarden/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/green_legoom/chest.vox b/assets/voxygen/voxel/npc/green_legoom/chest.vox new file mode 100644 index 0000000..53cfb30 Binary files /dev/null and b/assets/voxygen/voxel/npc/green_legoom/chest.vox differ diff --git a/assets/voxygen/voxel/npc/green_legoom/foot_r.vox b/assets/voxygen/voxel/npc/green_legoom/foot_r.vox new file mode 100644 index 0000000..d984897 Binary files /dev/null and b/assets/voxygen/voxel/npc/green_legoom/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/green_legoom/hand_r.vox b/assets/voxygen/voxel/npc/green_legoom/hand_r.vox new file mode 100644 index 0000000..135d997 Binary files /dev/null and b/assets/voxygen/voxel/npc/green_legoom/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/green_legoom/head.vox b/assets/voxygen/voxel/npc/green_legoom/head.vox new file mode 100644 index 0000000..08a6943 Binary files /dev/null and b/assets/voxygen/voxel/npc/green_legoom/head.vox differ diff --git a/assets/voxygen/voxel/npc/green_legoom/pants.vox b/assets/voxygen/voxel/npc/green_legoom/pants.vox new file mode 100644 index 0000000..9ad4a3e Binary files /dev/null and b/assets/voxygen/voxel/npc/green_legoom/pants.vox differ diff --git a/assets/voxygen/voxel/npc/grolgar/male/ears.vox b/assets/voxygen/voxel/npc/grolgar/male/ears.vox new file mode 100644 index 0000000..1261db6 Binary files /dev/null and b/assets/voxygen/voxel/npc/grolgar/male/ears.vox differ diff --git a/assets/voxygen/voxel/npc/grolgar/male/foot_br.vox b/assets/voxygen/voxel/npc/grolgar/male/foot_br.vox new file mode 100644 index 0000000..cab4c28 Binary files /dev/null and b/assets/voxygen/voxel/npc/grolgar/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/grolgar/male/foot_fr.vox b/assets/voxygen/voxel/npc/grolgar/male/foot_fr.vox new file mode 100644 index 0000000..9716331 Binary files /dev/null and b/assets/voxygen/voxel/npc/grolgar/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/grolgar/male/head.vox b/assets/voxygen/voxel/npc/grolgar/male/head.vox new file mode 100644 index 0000000..257215a Binary files /dev/null and b/assets/voxygen/voxel/npc/grolgar/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/grolgar/male/jaw.vox b/assets/voxygen/voxel/npc/grolgar/male/jaw.vox new file mode 100644 index 0000000..a4145df Binary files /dev/null and b/assets/voxygen/voxel/npc/grolgar/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/grolgar/male/leg_br.vox b/assets/voxygen/voxel/npc/grolgar/male/leg_br.vox new file mode 100644 index 0000000..9303ac8 Binary files /dev/null and b/assets/voxygen/voxel/npc/grolgar/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/grolgar/male/leg_fr.vox b/assets/voxygen/voxel/npc/grolgar/male/leg_fr.vox new file mode 100644 index 0000000..2bd00c5 Binary files /dev/null and b/assets/voxygen/voxel/npc/grolgar/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/grolgar/male/neck.vox b/assets/voxygen/voxel/npc/grolgar/male/neck.vox new file mode 100644 index 0000000..983084c Binary files /dev/null and b/assets/voxygen/voxel/npc/grolgar/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/grolgar/male/tail.vox b/assets/voxygen/voxel/npc/grolgar/male/tail.vox new file mode 100644 index 0000000..bd94288 Binary files /dev/null and b/assets/voxygen/voxel/npc/grolgar/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/grolgar/male/torso_back.vox b/assets/voxygen/voxel/npc/grolgar/male/torso_back.vox new file mode 100644 index 0000000..1f3672a Binary files /dev/null and b/assets/voxygen/voxel/npc/grolgar/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/grolgar/male/torso_front.vox b/assets/voxygen/voxel/npc/grolgar/male/torso_front.vox new file mode 100644 index 0000000..3c5ba4e Binary files /dev/null and b/assets/voxygen/voxel/npc/grolgar/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/hakulaq/male/chest.vox b/assets/voxygen/voxel/npc/hakulaq/male/chest.vox new file mode 100644 index 0000000..db85ecb Binary files /dev/null and b/assets/voxygen/voxel/npc/hakulaq/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/hakulaq/male/foot_br.vox b/assets/voxygen/voxel/npc/hakulaq/male/foot_br.vox new file mode 100644 index 0000000..9dbe5c6 Binary files /dev/null and b/assets/voxygen/voxel/npc/hakulaq/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/hakulaq/male/foot_fr.vox b/assets/voxygen/voxel/npc/hakulaq/male/foot_fr.vox new file mode 100644 index 0000000..74a5806 Binary files /dev/null and b/assets/voxygen/voxel/npc/hakulaq/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/hakulaq/male/head_lower.vox b/assets/voxygen/voxel/npc/hakulaq/male/head_lower.vox new file mode 100644 index 0000000..fc456f0 Binary files /dev/null and b/assets/voxygen/voxel/npc/hakulaq/male/head_lower.vox differ diff --git a/assets/voxygen/voxel/npc/hakulaq/male/head_upper.vox b/assets/voxygen/voxel/npc/hakulaq/male/head_upper.vox new file mode 100644 index 0000000..da1d818 Binary files /dev/null and b/assets/voxygen/voxel/npc/hakulaq/male/head_upper.vox differ diff --git a/assets/voxygen/voxel/npc/hakulaq/male/jaw.vox b/assets/voxygen/voxel/npc/hakulaq/male/jaw.vox new file mode 100644 index 0000000..2b56927 Binary files /dev/null and b/assets/voxygen/voxel/npc/hakulaq/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/hakulaq/male/tail_front.vox b/assets/voxygen/voxel/npc/hakulaq/male/tail_front.vox new file mode 100644 index 0000000..7210534 Binary files /dev/null and b/assets/voxygen/voxel/npc/hakulaq/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/hakulaq/male/tail_rear.vox b/assets/voxygen/voxel/npc/hakulaq/male/tail_rear.vox new file mode 100644 index 0000000..4278ad0 Binary files /dev/null and b/assets/voxygen/voxel/npc/hakulaq/male/tail_rear.vox differ diff --git a/assets/voxygen/voxel/npc/haniwa/archer/chest.vox b/assets/voxygen/voxel/npc/haniwa/archer/chest.vox new file mode 100644 index 0000000..59c5f7a Binary files /dev/null and b/assets/voxygen/voxel/npc/haniwa/archer/chest.vox differ diff --git a/assets/voxygen/voxel/npc/haniwa/archer/foot_r.vox b/assets/voxygen/voxel/npc/haniwa/archer/foot_r.vox new file mode 100644 index 0000000..da0e29f Binary files /dev/null and b/assets/voxygen/voxel/npc/haniwa/archer/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/haniwa/archer/hand_r.vox b/assets/voxygen/voxel/npc/haniwa/archer/hand_r.vox new file mode 100644 index 0000000..78c4f07 Binary files /dev/null and b/assets/voxygen/voxel/npc/haniwa/archer/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/haniwa/archer/head.vox b/assets/voxygen/voxel/npc/haniwa/archer/head.vox new file mode 100644 index 0000000..45a3170 Binary files /dev/null and b/assets/voxygen/voxel/npc/haniwa/archer/head.vox differ diff --git a/assets/voxygen/voxel/npc/haniwa/archer/pants.vox b/assets/voxygen/voxel/npc/haniwa/archer/pants.vox new file mode 100644 index 0000000..8dc3dd7 Binary files /dev/null and b/assets/voxygen/voxel/npc/haniwa/archer/pants.vox differ diff --git a/assets/voxygen/voxel/npc/haniwa/general/haniwa_general.vox b/assets/voxygen/voxel/npc/haniwa/general/haniwa_general.vox new file mode 100644 index 0000000..529cbaa Binary files /dev/null and b/assets/voxygen/voxel/npc/haniwa/general/haniwa_general.vox differ diff --git a/assets/voxygen/voxel/npc/haniwa/guard/chest.vox b/assets/voxygen/voxel/npc/haniwa/guard/chest.vox new file mode 100644 index 0000000..8b952b3 Binary files /dev/null and b/assets/voxygen/voxel/npc/haniwa/guard/chest.vox differ diff --git a/assets/voxygen/voxel/npc/haniwa/guard/foot_r.vox b/assets/voxygen/voxel/npc/haniwa/guard/foot_r.vox new file mode 100644 index 0000000..bda1dc5 Binary files /dev/null and b/assets/voxygen/voxel/npc/haniwa/guard/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/haniwa/guard/hand_r.vox b/assets/voxygen/voxel/npc/haniwa/guard/hand_r.vox new file mode 100644 index 0000000..7dddef9 Binary files /dev/null and b/assets/voxygen/voxel/npc/haniwa/guard/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/haniwa/guard/head.vox b/assets/voxygen/voxel/npc/haniwa/guard/head.vox new file mode 100644 index 0000000..70458b3 Binary files /dev/null and b/assets/voxygen/voxel/npc/haniwa/guard/head.vox differ diff --git a/assets/voxygen/voxel/npc/haniwa/guard/pants.vox b/assets/voxygen/voxel/npc/haniwa/guard/pants.vox new file mode 100644 index 0000000..be067d5 Binary files /dev/null and b/assets/voxygen/voxel/npc/haniwa/guard/pants.vox differ diff --git a/assets/voxygen/voxel/npc/haniwa/soldier/chest.vox b/assets/voxygen/voxel/npc/haniwa/soldier/chest.vox new file mode 100644 index 0000000..86e60e6 Binary files /dev/null and b/assets/voxygen/voxel/npc/haniwa/soldier/chest.vox differ diff --git a/assets/voxygen/voxel/npc/haniwa/soldier/foot_r.vox b/assets/voxygen/voxel/npc/haniwa/soldier/foot_r.vox new file mode 100644 index 0000000..da0e29f Binary files /dev/null and b/assets/voxygen/voxel/npc/haniwa/soldier/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/haniwa/soldier/hand_r.vox b/assets/voxygen/voxel/npc/haniwa/soldier/hand_r.vox new file mode 100644 index 0000000..71f9f27 Binary files /dev/null and b/assets/voxygen/voxel/npc/haniwa/soldier/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/haniwa/soldier/head.vox b/assets/voxygen/voxel/npc/haniwa/soldier/head.vox new file mode 100644 index 0000000..7773082 Binary files /dev/null and b/assets/voxygen/voxel/npc/haniwa/soldier/head.vox differ diff --git a/assets/voxygen/voxel/npc/haniwa/soldier/pants.vox b/assets/voxygen/voxel/npc/haniwa/soldier/pants.vox new file mode 100644 index 0000000..e3ae5c3 Binary files /dev/null and b/assets/voxygen/voxel/npc/haniwa/soldier/pants.vox differ diff --git a/assets/voxygen/voxel/npc/hare/female/chest.vox b/assets/voxygen/voxel/npc/hare/female/chest.vox new file mode 100644 index 0000000..5b9154d Binary files /dev/null and b/assets/voxygen/voxel/npc/hare/female/chest.vox differ diff --git a/assets/voxygen/voxel/npc/hare/female/foot_br.vox b/assets/voxygen/voxel/npc/hare/female/foot_br.vox new file mode 100644 index 0000000..52474ae Binary files /dev/null and b/assets/voxygen/voxel/npc/hare/female/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/hare/female/foot_fr.vox b/assets/voxygen/voxel/npc/hare/female/foot_fr.vox new file mode 100644 index 0000000..a9686f0 Binary files /dev/null and b/assets/voxygen/voxel/npc/hare/female/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/hare/female/head.vox b/assets/voxygen/voxel/npc/hare/female/head.vox new file mode 100644 index 0000000..d96e625 Binary files /dev/null and b/assets/voxygen/voxel/npc/hare/female/head.vox differ diff --git a/assets/voxygen/voxel/npc/hare/female/tail.vox b/assets/voxygen/voxel/npc/hare/female/tail.vox new file mode 100644 index 0000000..8f07b71 Binary files /dev/null and b/assets/voxygen/voxel/npc/hare/female/tail.vox differ diff --git a/assets/voxygen/voxel/npc/hare/male/chest.vox b/assets/voxygen/voxel/npc/hare/male/chest.vox new file mode 100644 index 0000000..28fce40 Binary files /dev/null and b/assets/voxygen/voxel/npc/hare/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/hare/male/foot_br.vox b/assets/voxygen/voxel/npc/hare/male/foot_br.vox new file mode 100644 index 0000000..7ca0933 Binary files /dev/null and b/assets/voxygen/voxel/npc/hare/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/hare/male/foot_fr.vox b/assets/voxygen/voxel/npc/hare/male/foot_fr.vox new file mode 100644 index 0000000..095ae74 Binary files /dev/null and b/assets/voxygen/voxel/npc/hare/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/hare/male/head.vox b/assets/voxygen/voxel/npc/hare/male/head.vox new file mode 100644 index 0000000..9beea64 Binary files /dev/null and b/assets/voxygen/voxel/npc/hare/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/hare/male/tail.vox b/assets/voxygen/voxel/npc/hare/male/tail.vox new file mode 100644 index 0000000..03c3b10 Binary files /dev/null and b/assets/voxygen/voxel/npc/hare/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/harlequin/chest.vox b/assets/voxygen/voxel/npc/harlequin/chest.vox new file mode 100644 index 0000000..65acf3b Binary files /dev/null and b/assets/voxygen/voxel/npc/harlequin/chest.vox differ diff --git a/assets/voxygen/voxel/npc/harlequin/foot_r.vox b/assets/voxygen/voxel/npc/harlequin/foot_r.vox new file mode 100644 index 0000000..1b26a20 Binary files /dev/null and b/assets/voxygen/voxel/npc/harlequin/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/harlequin/hand_r.vox b/assets/voxygen/voxel/npc/harlequin/hand_r.vox new file mode 100644 index 0000000..4777592 Binary files /dev/null and b/assets/voxygen/voxel/npc/harlequin/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/harlequin/head.vox b/assets/voxygen/voxel/npc/harlequin/head.vox new file mode 100644 index 0000000..dc2b83c Binary files /dev/null and b/assets/voxygen/voxel/npc/harlequin/head.vox differ diff --git a/assets/voxygen/voxel/npc/harlequin/pants.vox b/assets/voxygen/voxel/npc/harlequin/pants.vox new file mode 100644 index 0000000..4243f49 Binary files /dev/null and b/assets/voxygen/voxel/npc/harlequin/pants.vox differ diff --git a/assets/voxygen/voxel/npc/harvester/male/foot_l.vox b/assets/voxygen/voxel/npc/harvester/male/foot_l.vox new file mode 100644 index 0000000..e812c88 Binary files /dev/null and b/assets/voxygen/voxel/npc/harvester/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/harvester/male/foot_r.vox b/assets/voxygen/voxel/npc/harvester/male/foot_r.vox new file mode 100644 index 0000000..d7d43f9 Binary files /dev/null and b/assets/voxygen/voxel/npc/harvester/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/harvester/male/hand_l.vox b/assets/voxygen/voxel/npc/harvester/male/hand_l.vox new file mode 100644 index 0000000..36f2f34 Binary files /dev/null and b/assets/voxygen/voxel/npc/harvester/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/harvester/male/hand_r.vox b/assets/voxygen/voxel/npc/harvester/male/hand_r.vox new file mode 100644 index 0000000..4587d51 Binary files /dev/null and b/assets/voxygen/voxel/npc/harvester/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/harvester/male/head.vox b/assets/voxygen/voxel/npc/harvester/male/head.vox new file mode 100644 index 0000000..80aa82b Binary files /dev/null and b/assets/voxygen/voxel/npc/harvester/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/harvester/male/jaw.vox b/assets/voxygen/voxel/npc/harvester/male/jaw.vox new file mode 100644 index 0000000..4fbec2f Binary files /dev/null and b/assets/voxygen/voxel/npc/harvester/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/harvester/male/leg_l.vox b/assets/voxygen/voxel/npc/harvester/male/leg_l.vox new file mode 100644 index 0000000..191eddd Binary files /dev/null and b/assets/voxygen/voxel/npc/harvester/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/harvester/male/leg_r.vox b/assets/voxygen/voxel/npc/harvester/male/leg_r.vox new file mode 100644 index 0000000..658e3ca Binary files /dev/null and b/assets/voxygen/voxel/npc/harvester/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/harvester/male/shoulder_l.vox b/assets/voxygen/voxel/npc/harvester/male/shoulder_l.vox new file mode 100644 index 0000000..cdc4a9d Binary files /dev/null and b/assets/voxygen/voxel/npc/harvester/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/harvester/male/shoulder_r.vox b/assets/voxygen/voxel/npc/harvester/male/shoulder_r.vox new file mode 100644 index 0000000..eb377c3 Binary files /dev/null and b/assets/voxygen/voxel/npc/harvester/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/harvester/male/torso_lower.vox b/assets/voxygen/voxel/npc/harvester/male/torso_lower.vox new file mode 100644 index 0000000..801c08a Binary files /dev/null and b/assets/voxygen/voxel/npc/harvester/male/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/harvester/male/torso_upper.vox b/assets/voxygen/voxel/npc/harvester/male/torso_upper.vox new file mode 100644 index 0000000..f12e903 Binary files /dev/null and b/assets/voxygen/voxel/npc/harvester/male/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/highland/male/ears.vox b/assets/voxygen/voxel/npc/highland/male/ears.vox new file mode 100644 index 0000000..8bc354a Binary files /dev/null and b/assets/voxygen/voxel/npc/highland/male/ears.vox differ diff --git a/assets/voxygen/voxel/npc/highland/male/foot_br.vox b/assets/voxygen/voxel/npc/highland/male/foot_br.vox new file mode 100644 index 0000000..4fb05e3 Binary files /dev/null and b/assets/voxygen/voxel/npc/highland/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/highland/male/foot_fr.vox b/assets/voxygen/voxel/npc/highland/male/foot_fr.vox new file mode 100644 index 0000000..0641268 Binary files /dev/null and b/assets/voxygen/voxel/npc/highland/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/highland/male/head.vox b/assets/voxygen/voxel/npc/highland/male/head.vox new file mode 100644 index 0000000..243dd71 Binary files /dev/null and b/assets/voxygen/voxel/npc/highland/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/highland/male/jaw.vox b/assets/voxygen/voxel/npc/highland/male/jaw.vox new file mode 100644 index 0000000..82da5ac Binary files /dev/null and b/assets/voxygen/voxel/npc/highland/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/highland/male/leg_br.vox b/assets/voxygen/voxel/npc/highland/male/leg_br.vox new file mode 100644 index 0000000..287c9ab Binary files /dev/null and b/assets/voxygen/voxel/npc/highland/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/highland/male/leg_fr.vox b/assets/voxygen/voxel/npc/highland/male/leg_fr.vox new file mode 100644 index 0000000..a781dd6 Binary files /dev/null and b/assets/voxygen/voxel/npc/highland/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/highland/male/neck.vox b/assets/voxygen/voxel/npc/highland/male/neck.vox new file mode 100644 index 0000000..b5450d3 Binary files /dev/null and b/assets/voxygen/voxel/npc/highland/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/highland/male/tail.vox b/assets/voxygen/voxel/npc/highland/male/tail.vox new file mode 100644 index 0000000..b9ffc8d Binary files /dev/null and b/assets/voxygen/voxel/npc/highland/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/highland/male/torso_back.vox b/assets/voxygen/voxel/npc/highland/male/torso_back.vox new file mode 100644 index 0000000..e853991 Binary files /dev/null and b/assets/voxygen/voxel/npc/highland/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/highland/male/torso_front.vox b/assets/voxygen/voxel/npc/highland/male/torso_front.vox new file mode 100644 index 0000000..cb12fa9 Binary files /dev/null and b/assets/voxygen/voxel/npc/highland/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/hirdrasil/male/foot_br.vox b/assets/voxygen/voxel/npc/hirdrasil/male/foot_br.vox new file mode 100644 index 0000000..53f2b47 Binary files /dev/null and b/assets/voxygen/voxel/npc/hirdrasil/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/hirdrasil/male/foot_fr.vox b/assets/voxygen/voxel/npc/hirdrasil/male/foot_fr.vox new file mode 100644 index 0000000..c089e50 Binary files /dev/null and b/assets/voxygen/voxel/npc/hirdrasil/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/hirdrasil/male/head.vox b/assets/voxygen/voxel/npc/hirdrasil/male/head.vox new file mode 100644 index 0000000..d5daeef Binary files /dev/null and b/assets/voxygen/voxel/npc/hirdrasil/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/hirdrasil/male/jaw.vox b/assets/voxygen/voxel/npc/hirdrasil/male/jaw.vox new file mode 100644 index 0000000..85ce97c Binary files /dev/null and b/assets/voxygen/voxel/npc/hirdrasil/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/hirdrasil/male/leg_br.vox b/assets/voxygen/voxel/npc/hirdrasil/male/leg_br.vox new file mode 100644 index 0000000..de35e4c Binary files /dev/null and b/assets/voxygen/voxel/npc/hirdrasil/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/hirdrasil/male/leg_fr.vox b/assets/voxygen/voxel/npc/hirdrasil/male/leg_fr.vox new file mode 100644 index 0000000..7b58563 Binary files /dev/null and b/assets/voxygen/voxel/npc/hirdrasil/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/hirdrasil/male/neck.vox b/assets/voxygen/voxel/npc/hirdrasil/male/neck.vox new file mode 100644 index 0000000..86d4a21 Binary files /dev/null and b/assets/voxygen/voxel/npc/hirdrasil/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/hirdrasil/male/tail.vox b/assets/voxygen/voxel/npc/hirdrasil/male/tail.vox new file mode 100644 index 0000000..4dcadb0 Binary files /dev/null and b/assets/voxygen/voxel/npc/hirdrasil/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/hirdrasil/male/torso_back.vox b/assets/voxygen/voxel/npc/hirdrasil/male/torso_back.vox new file mode 100644 index 0000000..f358250 Binary files /dev/null and b/assets/voxygen/voxel/npc/hirdrasil/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/hirdrasil/male/torso_front.vox b/assets/voxygen/voxel/npc/hirdrasil/male/torso_front.vox new file mode 100644 index 0000000..93746f4 Binary files /dev/null and b/assets/voxygen/voxel/npc/hirdrasil/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/holladon/male/chest.vox b/assets/voxygen/voxel/npc/holladon/male/chest.vox new file mode 100644 index 0000000..e9bb325 Binary files /dev/null and b/assets/voxygen/voxel/npc/holladon/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/holladon/male/foot_br.vox b/assets/voxygen/voxel/npc/holladon/male/foot_br.vox new file mode 100644 index 0000000..004b27c Binary files /dev/null and b/assets/voxygen/voxel/npc/holladon/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/holladon/male/foot_fr.vox b/assets/voxygen/voxel/npc/holladon/male/foot_fr.vox new file mode 100644 index 0000000..ae43f8e Binary files /dev/null and b/assets/voxygen/voxel/npc/holladon/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/holladon/male/head.vox b/assets/voxygen/voxel/npc/holladon/male/head.vox new file mode 100644 index 0000000..cbb10ef Binary files /dev/null and b/assets/voxygen/voxel/npc/holladon/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/horn_beetle/male/chest.vox b/assets/voxygen/voxel/npc/horn_beetle/male/chest.vox new file mode 100644 index 0000000..2f923fe Binary files /dev/null and b/assets/voxygen/voxel/npc/horn_beetle/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/horn_beetle/male/head.vox b/assets/voxygen/voxel/npc/horn_beetle/male/head.vox new file mode 100644 index 0000000..3659b24 Binary files /dev/null and b/assets/voxygen/voxel/npc/horn_beetle/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/horn_beetle/male/leg_bcr.vox b/assets/voxygen/voxel/npc/horn_beetle/male/leg_bcr.vox new file mode 100644 index 0000000..197faf0 Binary files /dev/null and b/assets/voxygen/voxel/npc/horn_beetle/male/leg_bcr.vox differ diff --git a/assets/voxygen/voxel/npc/horn_beetle/male/leg_fcr.vox b/assets/voxygen/voxel/npc/horn_beetle/male/leg_fcr.vox new file mode 100644 index 0000000..8bccb8a Binary files /dev/null and b/assets/voxygen/voxel/npc/horn_beetle/male/leg_fcr.vox differ diff --git a/assets/voxygen/voxel/npc/horn_beetle/male/leg_fr.vox b/assets/voxygen/voxel/npc/horn_beetle/male/leg_fr.vox new file mode 100644 index 0000000..0136f4c Binary files /dev/null and b/assets/voxygen/voxel/npc/horn_beetle/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/horn_beetle/male/wing_br.vox b/assets/voxygen/voxel/npc/horn_beetle/male/wing_br.vox new file mode 100644 index 0000000..a8a2fb5 Binary files /dev/null and b/assets/voxygen/voxel/npc/horn_beetle/male/wing_br.vox differ diff --git a/assets/voxygen/voxel/npc/horn_beetle/male/wing_fr.vox b/assets/voxygen/voxel/npc/horn_beetle/male/wing_fr.vox new file mode 100644 index 0000000..de9aea5 Binary files /dev/null and b/assets/voxygen/voxel/npc/horn_beetle/male/wing_fr.vox differ diff --git a/assets/voxygen/voxel/npc/horned_owl/male/chest.vox b/assets/voxygen/voxel/npc/horned_owl/male/chest.vox new file mode 100644 index 0000000..5672ef6 Binary files /dev/null and b/assets/voxygen/voxel/npc/horned_owl/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/horned_owl/male/head.vox b/assets/voxygen/voxel/npc/horned_owl/male/head.vox new file mode 100644 index 0000000..2dd16d1 Binary files /dev/null and b/assets/voxygen/voxel/npc/horned_owl/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/horned_owl/male/leg_l.vox b/assets/voxygen/voxel/npc/horned_owl/male/leg_l.vox new file mode 100644 index 0000000..9fb49ec Binary files /dev/null and b/assets/voxygen/voxel/npc/horned_owl/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/horned_owl/male/leg_r.vox b/assets/voxygen/voxel/npc/horned_owl/male/leg_r.vox new file mode 100644 index 0000000..f5cc027 Binary files /dev/null and b/assets/voxygen/voxel/npc/horned_owl/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/horned_owl/male/tail.vox b/assets/voxygen/voxel/npc/horned_owl/male/tail.vox new file mode 100644 index 0000000..4157aea Binary files /dev/null and b/assets/voxygen/voxel/npc/horned_owl/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/horned_owl/male/wing_in_r.vox b/assets/voxygen/voxel/npc/horned_owl/male/wing_in_r.vox new file mode 100644 index 0000000..acbaf3f Binary files /dev/null and b/assets/voxygen/voxel/npc/horned_owl/male/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/horned_owl/male/wing_out_r.vox b/assets/voxygen/voxel/npc/horned_owl/male/wing_out_r.vox new file mode 100644 index 0000000..92d01c0 Binary files /dev/null and b/assets/voxygen/voxel/npc/horned_owl/male/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/horse/male/ears.vox b/assets/voxygen/voxel/npc/horse/male/ears.vox new file mode 100644 index 0000000..3d5a331 Binary files /dev/null and b/assets/voxygen/voxel/npc/horse/male/ears.vox differ diff --git a/assets/voxygen/voxel/npc/horse/male/foot_br.vox b/assets/voxygen/voxel/npc/horse/male/foot_br.vox new file mode 100644 index 0000000..8c3a0f3 Binary files /dev/null and b/assets/voxygen/voxel/npc/horse/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/horse/male/foot_fr.vox b/assets/voxygen/voxel/npc/horse/male/foot_fr.vox new file mode 100644 index 0000000..1174b1a Binary files /dev/null and b/assets/voxygen/voxel/npc/horse/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/horse/male/head.vox b/assets/voxygen/voxel/npc/horse/male/head.vox new file mode 100644 index 0000000..0104a56 Binary files /dev/null and b/assets/voxygen/voxel/npc/horse/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/horse/male/jaw.vox b/assets/voxygen/voxel/npc/horse/male/jaw.vox new file mode 100644 index 0000000..ebc3b53 Binary files /dev/null and b/assets/voxygen/voxel/npc/horse/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/horse/male/leg_br.vox b/assets/voxygen/voxel/npc/horse/male/leg_br.vox new file mode 100644 index 0000000..3396d16 Binary files /dev/null and b/assets/voxygen/voxel/npc/horse/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/horse/male/leg_fr.vox b/assets/voxygen/voxel/npc/horse/male/leg_fr.vox new file mode 100644 index 0000000..ed9f6a6 Binary files /dev/null and b/assets/voxygen/voxel/npc/horse/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/horse/male/neck.vox b/assets/voxygen/voxel/npc/horse/male/neck.vox new file mode 100644 index 0000000..7c83d27 Binary files /dev/null and b/assets/voxygen/voxel/npc/horse/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/horse/male/tail.vox b/assets/voxygen/voxel/npc/horse/male/tail.vox new file mode 100644 index 0000000..4fbdd5f Binary files /dev/null and b/assets/voxygen/voxel/npc/horse/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/horse/male/torso_back.vox b/assets/voxygen/voxel/npc/horse/male/torso_back.vox new file mode 100644 index 0000000..667beb7 Binary files /dev/null and b/assets/voxygen/voxel/npc/horse/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/horse/male/torso_front.vox b/assets/voxygen/voxel/npc/horse/male/torso_front.vox new file mode 100644 index 0000000..2824c66 Binary files /dev/null and b/assets/voxygen/voxel/npc/horse/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/husk/male/chest.vox b/assets/voxygen/voxel/npc/husk/male/chest.vox new file mode 100644 index 0000000..9578b1c Binary files /dev/null and b/assets/voxygen/voxel/npc/husk/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/husk/male/foot_r.vox b/assets/voxygen/voxel/npc/husk/male/foot_r.vox new file mode 100644 index 0000000..da33428 Binary files /dev/null and b/assets/voxygen/voxel/npc/husk/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/husk/male/hand_r.vox b/assets/voxygen/voxel/npc/husk/male/hand_r.vox new file mode 100644 index 0000000..9f35691 Binary files /dev/null and b/assets/voxygen/voxel/npc/husk/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/husk/male/head.vox b/assets/voxygen/voxel/npc/husk/male/head.vox new file mode 100644 index 0000000..03802a7 Binary files /dev/null and b/assets/voxygen/voxel/npc/husk/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/husk/male/pants.vox b/assets/voxygen/voxel/npc/husk/male/pants.vox new file mode 100644 index 0000000..ed4810f Binary files /dev/null and b/assets/voxygen/voxel/npc/husk/male/pants.vox differ diff --git a/assets/voxygen/voxel/npc/husk_brute/male/foot_l.vox b/assets/voxygen/voxel/npc/husk_brute/male/foot_l.vox new file mode 100644 index 0000000..8e09ba5 Binary files /dev/null and b/assets/voxygen/voxel/npc/husk_brute/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/husk_brute/male/foot_r.vox b/assets/voxygen/voxel/npc/husk_brute/male/foot_r.vox new file mode 100644 index 0000000..8eca748 Binary files /dev/null and b/assets/voxygen/voxel/npc/husk_brute/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/husk_brute/male/hand_l.vox b/assets/voxygen/voxel/npc/husk_brute/male/hand_l.vox new file mode 100644 index 0000000..f4d8d5d Binary files /dev/null and b/assets/voxygen/voxel/npc/husk_brute/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/husk_brute/male/hand_r.vox b/assets/voxygen/voxel/npc/husk_brute/male/hand_r.vox new file mode 100644 index 0000000..09a0652 Binary files /dev/null and b/assets/voxygen/voxel/npc/husk_brute/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/husk_brute/male/head.vox b/assets/voxygen/voxel/npc/husk_brute/male/head.vox new file mode 100644 index 0000000..b79caa6 Binary files /dev/null and b/assets/voxygen/voxel/npc/husk_brute/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/husk_brute/male/leg_l.vox b/assets/voxygen/voxel/npc/husk_brute/male/leg_l.vox new file mode 100644 index 0000000..c0d38b4 Binary files /dev/null and b/assets/voxygen/voxel/npc/husk_brute/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/husk_brute/male/leg_r.vox b/assets/voxygen/voxel/npc/husk_brute/male/leg_r.vox new file mode 100644 index 0000000..c0d38b4 Binary files /dev/null and b/assets/voxygen/voxel/npc/husk_brute/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/husk_brute/male/shoulder_l.vox b/assets/voxygen/voxel/npc/husk_brute/male/shoulder_l.vox new file mode 100644 index 0000000..f5b43cf Binary files /dev/null and b/assets/voxygen/voxel/npc/husk_brute/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/husk_brute/male/shoulder_r.vox b/assets/voxygen/voxel/npc/husk_brute/male/shoulder_r.vox new file mode 100644 index 0000000..ccb9e99 Binary files /dev/null and b/assets/voxygen/voxel/npc/husk_brute/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/husk_brute/male/torso_lower.vox b/assets/voxygen/voxel/npc/husk_brute/male/torso_lower.vox new file mode 100644 index 0000000..fed7775 Binary files /dev/null and b/assets/voxygen/voxel/npc/husk_brute/male/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/husk_brute/male/torso_upper.vox b/assets/voxygen/voxel/npc/husk_brute/male/torso_upper.vox new file mode 100644 index 0000000..3997bfe Binary files /dev/null and b/assets/voxygen/voxel/npc/husk_brute/male/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/hydra/hydra.vox b/assets/voxygen/voxel/npc/hydra/hydra.vox new file mode 100644 index 0000000..30b3423 Binary files /dev/null and b/assets/voxygen/voxel/npc/hydra/hydra.vox differ diff --git a/assets/voxygen/voxel/npc/hyena/male/chest.vox b/assets/voxygen/voxel/npc/hyena/male/chest.vox new file mode 100644 index 0000000..4f23ed5 Binary files /dev/null and b/assets/voxygen/voxel/npc/hyena/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/hyena/male/foot_br.vox b/assets/voxygen/voxel/npc/hyena/male/foot_br.vox new file mode 100644 index 0000000..b9e65c5 Binary files /dev/null and b/assets/voxygen/voxel/npc/hyena/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/hyena/male/foot_fr.vox b/assets/voxygen/voxel/npc/hyena/male/foot_fr.vox new file mode 100644 index 0000000..464a7f1 Binary files /dev/null and b/assets/voxygen/voxel/npc/hyena/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/hyena/male/head.vox b/assets/voxygen/voxel/npc/hyena/male/head.vox new file mode 100644 index 0000000..d7abaeb Binary files /dev/null and b/assets/voxygen/voxel/npc/hyena/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/hyena/male/tail.vox b/assets/voxygen/voxel/npc/hyena/male/tail.vox new file mode 100644 index 0000000..6c2ae0a Binary files /dev/null and b/assets/voxygen/voxel/npc/hyena/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/icedrake/male/chest.vox b/assets/voxygen/voxel/npc/icedrake/male/chest.vox new file mode 100644 index 0000000..dae37ef Binary files /dev/null and b/assets/voxygen/voxel/npc/icedrake/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/icedrake/male/foot_br.vox b/assets/voxygen/voxel/npc/icedrake/male/foot_br.vox new file mode 100644 index 0000000..acb0ddb Binary files /dev/null and b/assets/voxygen/voxel/npc/icedrake/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/icedrake/male/foot_fr.vox b/assets/voxygen/voxel/npc/icedrake/male/foot_fr.vox new file mode 100644 index 0000000..3a97505 Binary files /dev/null and b/assets/voxygen/voxel/npc/icedrake/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/icedrake/male/head_lower.vox b/assets/voxygen/voxel/npc/icedrake/male/head_lower.vox new file mode 100644 index 0000000..d543f51 Binary files /dev/null and b/assets/voxygen/voxel/npc/icedrake/male/head_lower.vox differ diff --git a/assets/voxygen/voxel/npc/icedrake/male/head_upper.vox b/assets/voxygen/voxel/npc/icedrake/male/head_upper.vox new file mode 100644 index 0000000..e2a68a3 Binary files /dev/null and b/assets/voxygen/voxel/npc/icedrake/male/head_upper.vox differ diff --git a/assets/voxygen/voxel/npc/icedrake/male/jaw.vox b/assets/voxygen/voxel/npc/icedrake/male/jaw.vox new file mode 100644 index 0000000..3153dd7 Binary files /dev/null and b/assets/voxygen/voxel/npc/icedrake/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/icedrake/male/tail_front.vox b/assets/voxygen/voxel/npc/icedrake/male/tail_front.vox new file mode 100644 index 0000000..4ba322c Binary files /dev/null and b/assets/voxygen/voxel/npc/icedrake/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/icedrake/male/tail_rear.vox b/assets/voxygen/voxel/npc/icedrake/male/tail_rear.vox new file mode 100644 index 0000000..4e55d41 Binary files /dev/null and b/assets/voxygen/voxel/npc/icedrake/male/tail_rear.vox differ diff --git a/assets/voxygen/voxel/npc/icepike/male/chest_back.vox b/assets/voxygen/voxel/npc/icepike/male/chest_back.vox new file mode 100644 index 0000000..a2514df Binary files /dev/null and b/assets/voxygen/voxel/npc/icepike/male/chest_back.vox differ diff --git a/assets/voxygen/voxel/npc/icepike/male/chest_front.vox b/assets/voxygen/voxel/npc/icepike/male/chest_front.vox new file mode 100644 index 0000000..029f355 Binary files /dev/null and b/assets/voxygen/voxel/npc/icepike/male/chest_front.vox differ diff --git a/assets/voxygen/voxel/npc/icepike/male/fin_r.vox b/assets/voxygen/voxel/npc/icepike/male/fin_r.vox new file mode 100644 index 0000000..93854ef Binary files /dev/null and b/assets/voxygen/voxel/npc/icepike/male/fin_r.vox differ diff --git a/assets/voxygen/voxel/npc/icepike/male/head.vox b/assets/voxygen/voxel/npc/icepike/male/head.vox new file mode 100644 index 0000000..2a248cb Binary files /dev/null and b/assets/voxygen/voxel/npc/icepike/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/icepike/male/jaw.vox b/assets/voxygen/voxel/npc/icepike/male/jaw.vox new file mode 100644 index 0000000..41bf05a Binary files /dev/null and b/assets/voxygen/voxel/npc/icepike/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/icepike/male/tail.vox b/assets/voxygen/voxel/npc/icepike/male/tail.vox new file mode 100644 index 0000000..fef131f Binary files /dev/null and b/assets/voxygen/voxel/npc/icepike/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/iron_dwarf/chest.vox b/assets/voxygen/voxel/npc/iron_dwarf/chest.vox new file mode 100644 index 0000000..456db4e Binary files /dev/null and b/assets/voxygen/voxel/npc/iron_dwarf/chest.vox differ diff --git a/assets/voxygen/voxel/npc/iron_dwarf/foot_r.vox b/assets/voxygen/voxel/npc/iron_dwarf/foot_r.vox new file mode 100644 index 0000000..6d6243d Binary files /dev/null and b/assets/voxygen/voxel/npc/iron_dwarf/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/iron_dwarf/hand_r.vox b/assets/voxygen/voxel/npc/iron_dwarf/hand_r.vox new file mode 100644 index 0000000..932e636 Binary files /dev/null and b/assets/voxygen/voxel/npc/iron_dwarf/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/iron_dwarf/head.vox b/assets/voxygen/voxel/npc/iron_dwarf/head.vox new file mode 100644 index 0000000..76251b2 Binary files /dev/null and b/assets/voxygen/voxel/npc/iron_dwarf/head.vox differ diff --git a/assets/voxygen/voxel/npc/iron_dwarf/pants.vox b/assets/voxygen/voxel/npc/iron_dwarf/pants.vox new file mode 100644 index 0000000..fbf99fe Binary files /dev/null and b/assets/voxygen/voxel/npc/iron_dwarf/pants.vox differ diff --git a/assets/voxygen/voxel/npc/irongolem/male/chest_lower.vox b/assets/voxygen/voxel/npc/irongolem/male/chest_lower.vox new file mode 100644 index 0000000..a63b8db Binary files /dev/null and b/assets/voxygen/voxel/npc/irongolem/male/chest_lower.vox differ diff --git a/assets/voxygen/voxel/npc/irongolem/male/chest_upper.vox b/assets/voxygen/voxel/npc/irongolem/male/chest_upper.vox new file mode 100644 index 0000000..bd51735 Binary files /dev/null and b/assets/voxygen/voxel/npc/irongolem/male/chest_upper.vox differ diff --git a/assets/voxygen/voxel/npc/irongolem/male/foot_l.vox b/assets/voxygen/voxel/npc/irongolem/male/foot_l.vox new file mode 100644 index 0000000..e44089e Binary files /dev/null and b/assets/voxygen/voxel/npc/irongolem/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/irongolem/male/foot_r.vox b/assets/voxygen/voxel/npc/irongolem/male/foot_r.vox new file mode 100644 index 0000000..e44089e Binary files /dev/null and b/assets/voxygen/voxel/npc/irongolem/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/irongolem/male/hand_l.vox b/assets/voxygen/voxel/npc/irongolem/male/hand_l.vox new file mode 100644 index 0000000..46633a3 Binary files /dev/null and b/assets/voxygen/voxel/npc/irongolem/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/irongolem/male/hand_r.vox b/assets/voxygen/voxel/npc/irongolem/male/hand_r.vox new file mode 100644 index 0000000..1210c5d Binary files /dev/null and b/assets/voxygen/voxel/npc/irongolem/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/irongolem/male/head.vox b/assets/voxygen/voxel/npc/irongolem/male/head.vox new file mode 100644 index 0000000..5378e91 Binary files /dev/null and b/assets/voxygen/voxel/npc/irongolem/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/irongolem/male/leg_l.vox b/assets/voxygen/voxel/npc/irongolem/male/leg_l.vox new file mode 100644 index 0000000..7502c37 Binary files /dev/null and b/assets/voxygen/voxel/npc/irongolem/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/irongolem/male/leg_r.vox b/assets/voxygen/voxel/npc/irongolem/male/leg_r.vox new file mode 100644 index 0000000..6a96f35 Binary files /dev/null and b/assets/voxygen/voxel/npc/irongolem/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/irongolem/male/shoulder_l.vox b/assets/voxygen/voxel/npc/irongolem/male/shoulder_l.vox new file mode 100644 index 0000000..7e28ef4 Binary files /dev/null and b/assets/voxygen/voxel/npc/irongolem/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/irongolem/male/shoulder_r.vox b/assets/voxygen/voxel/npc/irongolem/male/shoulder_r.vox new file mode 100644 index 0000000..bd025cf Binary files /dev/null and b/assets/voxygen/voxel/npc/irongolem/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/irrwurz/male/chest.vox b/assets/voxygen/voxel/npc/irrwurz/male/chest.vox new file mode 100644 index 0000000..a8035b6 Binary files /dev/null and b/assets/voxygen/voxel/npc/irrwurz/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/irrwurz/male/foot_r.vox b/assets/voxygen/voxel/npc/irrwurz/male/foot_r.vox new file mode 100644 index 0000000..2b6054c Binary files /dev/null and b/assets/voxygen/voxel/npc/irrwurz/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/irrwurz/male/hand_r.vox b/assets/voxygen/voxel/npc/irrwurz/male/hand_r.vox new file mode 100644 index 0000000..9ef926a Binary files /dev/null and b/assets/voxygen/voxel/npc/irrwurz/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/irrwurz/male/pants.vox b/assets/voxygen/voxel/npc/irrwurz/male/pants.vox new file mode 100644 index 0000000..12ccd0a Binary files /dev/null and b/assets/voxygen/voxel/npc/irrwurz/male/pants.vox differ diff --git a/assets/voxygen/voxel/npc/jackalope/male/chest.vox b/assets/voxygen/voxel/npc/jackalope/male/chest.vox new file mode 100644 index 0000000..f89cf3e Binary files /dev/null and b/assets/voxygen/voxel/npc/jackalope/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/jackalope/male/foot_br.vox b/assets/voxygen/voxel/npc/jackalope/male/foot_br.vox new file mode 100644 index 0000000..7fb0580 Binary files /dev/null and b/assets/voxygen/voxel/npc/jackalope/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/jackalope/male/foot_fr.vox b/assets/voxygen/voxel/npc/jackalope/male/foot_fr.vox new file mode 100644 index 0000000..d6f9437 Binary files /dev/null and b/assets/voxygen/voxel/npc/jackalope/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/jackalope/male/head.vox b/assets/voxygen/voxel/npc/jackalope/male/head.vox new file mode 100644 index 0000000..ac7b265 Binary files /dev/null and b/assets/voxygen/voxel/npc/jackalope/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/jackalope/male/tail.vox b/assets/voxygen/voxel/npc/jackalope/male/tail.vox new file mode 100644 index 0000000..0182982 Binary files /dev/null and b/assets/voxygen/voxel/npc/jackalope/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/jiangshi/chest.vox b/assets/voxygen/voxel/npc/jiangshi/chest.vox new file mode 100644 index 0000000..9c874c6 Binary files /dev/null and b/assets/voxygen/voxel/npc/jiangshi/chest.vox differ diff --git a/assets/voxygen/voxel/npc/jiangshi/foot_r.vox b/assets/voxygen/voxel/npc/jiangshi/foot_r.vox new file mode 100644 index 0000000..efd5216 Binary files /dev/null and b/assets/voxygen/voxel/npc/jiangshi/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/jiangshi/hand_r.vox b/assets/voxygen/voxel/npc/jiangshi/hand_r.vox new file mode 100644 index 0000000..d626f56 Binary files /dev/null and b/assets/voxygen/voxel/npc/jiangshi/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/jiangshi/head.vox b/assets/voxygen/voxel/npc/jiangshi/head.vox new file mode 100644 index 0000000..6c02b07 Binary files /dev/null and b/assets/voxygen/voxel/npc/jiangshi/head.vox differ diff --git a/assets/voxygen/voxel/npc/jiangshi/pants.vox b/assets/voxygen/voxel/npc/jiangshi/pants.vox new file mode 100644 index 0000000..ffc2da9 Binary files /dev/null and b/assets/voxygen/voxel/npc/jiangshi/pants.vox differ diff --git a/assets/voxygen/voxel/npc/kappa/male/chest.vox b/assets/voxygen/voxel/npc/kappa/male/chest.vox new file mode 100644 index 0000000..890cfbf Binary files /dev/null and b/assets/voxygen/voxel/npc/kappa/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/kappa/male/foot_r.vox b/assets/voxygen/voxel/npc/kappa/male/foot_r.vox new file mode 100644 index 0000000..fe4ee13 Binary files /dev/null and b/assets/voxygen/voxel/npc/kappa/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/kappa/male/hand_r.vox b/assets/voxygen/voxel/npc/kappa/male/hand_r.vox new file mode 100644 index 0000000..07ccd4b Binary files /dev/null and b/assets/voxygen/voxel/npc/kappa/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/kappa/male/head.vox b/assets/voxygen/voxel/npc/kappa/male/head.vox new file mode 100644 index 0000000..8653d10 Binary files /dev/null and b/assets/voxygen/voxel/npc/kappa/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/kappa/male/pants.vox b/assets/voxygen/voxel/npc/kappa/male/pants.vox new file mode 100644 index 0000000..5a701b6 Binary files /dev/null and b/assets/voxygen/voxel/npc/kappa/male/pants.vox differ diff --git a/assets/voxygen/voxel/npc/kappa/male/tail.vox b/assets/voxygen/voxel/npc/kappa/male/tail.vox new file mode 100644 index 0000000..7324cb4 Binary files /dev/null and b/assets/voxygen/voxel/npc/kappa/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/karkatha/karkatha.vox b/assets/voxygen/voxel/npc/karkatha/karkatha.vox new file mode 100644 index 0000000..4ab11ee Binary files /dev/null and b/assets/voxygen/voxel/npc/karkatha/karkatha.vox differ diff --git a/assets/voxygen/voxel/npc/kelpie/male/ears.vox b/assets/voxygen/voxel/npc/kelpie/male/ears.vox new file mode 100644 index 0000000..86199fa Binary files /dev/null and b/assets/voxygen/voxel/npc/kelpie/male/ears.vox differ diff --git a/assets/voxygen/voxel/npc/kelpie/male/foot_br.vox b/assets/voxygen/voxel/npc/kelpie/male/foot_br.vox new file mode 100644 index 0000000..cbcfffb Binary files /dev/null and b/assets/voxygen/voxel/npc/kelpie/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/kelpie/male/foot_fr.vox b/assets/voxygen/voxel/npc/kelpie/male/foot_fr.vox new file mode 100644 index 0000000..60546d0 Binary files /dev/null and b/assets/voxygen/voxel/npc/kelpie/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/kelpie/male/head.vox b/assets/voxygen/voxel/npc/kelpie/male/head.vox new file mode 100644 index 0000000..edf7d3e Binary files /dev/null and b/assets/voxygen/voxel/npc/kelpie/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/kelpie/male/jaw.vox b/assets/voxygen/voxel/npc/kelpie/male/jaw.vox new file mode 100644 index 0000000..c9fd39e Binary files /dev/null and b/assets/voxygen/voxel/npc/kelpie/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/kelpie/male/leg_br.vox b/assets/voxygen/voxel/npc/kelpie/male/leg_br.vox new file mode 100644 index 0000000..8b08baf Binary files /dev/null and b/assets/voxygen/voxel/npc/kelpie/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/kelpie/male/leg_fr.vox b/assets/voxygen/voxel/npc/kelpie/male/leg_fr.vox new file mode 100644 index 0000000..56a6248 Binary files /dev/null and b/assets/voxygen/voxel/npc/kelpie/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/kelpie/male/neck.vox b/assets/voxygen/voxel/npc/kelpie/male/neck.vox new file mode 100644 index 0000000..188cb3d Binary files /dev/null and b/assets/voxygen/voxel/npc/kelpie/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/kelpie/male/tail.vox b/assets/voxygen/voxel/npc/kelpie/male/tail.vox new file mode 100644 index 0000000..db17322 Binary files /dev/null and b/assets/voxygen/voxel/npc/kelpie/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/kelpie/male/torso_back.vox b/assets/voxygen/voxel/npc/kelpie/male/torso_back.vox new file mode 100644 index 0000000..43a2f24 Binary files /dev/null and b/assets/voxygen/voxel/npc/kelpie/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/kelpie/male/torso_front.vox b/assets/voxygen/voxel/npc/kelpie/male/torso_front.vox new file mode 100644 index 0000000..13bb34c Binary files /dev/null and b/assets/voxygen/voxel/npc/kelpie/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/lavadrake/male/chest.vox b/assets/voxygen/voxel/npc/lavadrake/male/chest.vox new file mode 100644 index 0000000..8ea6871 Binary files /dev/null and b/assets/voxygen/voxel/npc/lavadrake/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/lavadrake/male/foot_br.vox b/assets/voxygen/voxel/npc/lavadrake/male/foot_br.vox new file mode 100644 index 0000000..9493c0e Binary files /dev/null and b/assets/voxygen/voxel/npc/lavadrake/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/lavadrake/male/foot_fr.vox b/assets/voxygen/voxel/npc/lavadrake/male/foot_fr.vox new file mode 100644 index 0000000..0979a5a Binary files /dev/null and b/assets/voxygen/voxel/npc/lavadrake/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/lavadrake/male/head_lower.vox b/assets/voxygen/voxel/npc/lavadrake/male/head_lower.vox new file mode 100644 index 0000000..f170185 Binary files /dev/null and b/assets/voxygen/voxel/npc/lavadrake/male/head_lower.vox differ diff --git a/assets/voxygen/voxel/npc/lavadrake/male/head_upper.vox b/assets/voxygen/voxel/npc/lavadrake/male/head_upper.vox new file mode 100644 index 0000000..6b49002 Binary files /dev/null and b/assets/voxygen/voxel/npc/lavadrake/male/head_upper.vox differ diff --git a/assets/voxygen/voxel/npc/lavadrake/male/jaw.vox b/assets/voxygen/voxel/npc/lavadrake/male/jaw.vox new file mode 100644 index 0000000..80f4650 Binary files /dev/null and b/assets/voxygen/voxel/npc/lavadrake/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/lavadrake/male/tail_front.vox b/assets/voxygen/voxel/npc/lavadrake/male/tail_front.vox new file mode 100644 index 0000000..da1f36d Binary files /dev/null and b/assets/voxygen/voxel/npc/lavadrake/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/lavadrake/male/tail_rear.vox b/assets/voxygen/voxel/npc/lavadrake/male/tail_rear.vox new file mode 100644 index 0000000..c1f6194 Binary files /dev/null and b/assets/voxygen/voxel/npc/lavadrake/male/tail_rear.vox differ diff --git a/assets/voxygen/voxel/npc/leaf_beetle/male/chest.vox b/assets/voxygen/voxel/npc/leaf_beetle/male/chest.vox new file mode 100644 index 0000000..554522e Binary files /dev/null and b/assets/voxygen/voxel/npc/leaf_beetle/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/leaf_beetle/male/head.vox b/assets/voxygen/voxel/npc/leaf_beetle/male/head.vox new file mode 100644 index 0000000..b22ac72 Binary files /dev/null and b/assets/voxygen/voxel/npc/leaf_beetle/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/leaf_beetle/male/leg_bcr.vox b/assets/voxygen/voxel/npc/leaf_beetle/male/leg_bcr.vox new file mode 100644 index 0000000..e5a4c68 Binary files /dev/null and b/assets/voxygen/voxel/npc/leaf_beetle/male/leg_bcr.vox differ diff --git a/assets/voxygen/voxel/npc/leaf_beetle/male/leg_fcr.vox b/assets/voxygen/voxel/npc/leaf_beetle/male/leg_fcr.vox new file mode 100644 index 0000000..f2fb2f6 Binary files /dev/null and b/assets/voxygen/voxel/npc/leaf_beetle/male/leg_fcr.vox differ diff --git a/assets/voxygen/voxel/npc/leaf_beetle/male/leg_fr.vox b/assets/voxygen/voxel/npc/leaf_beetle/male/leg_fr.vox new file mode 100644 index 0000000..499c54f Binary files /dev/null and b/assets/voxygen/voxel/npc/leaf_beetle/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/leaf_beetle/male/wing_br.vox b/assets/voxygen/voxel/npc/leaf_beetle/male/wing_br.vox new file mode 100644 index 0000000..f4842a9 Binary files /dev/null and b/assets/voxygen/voxel/npc/leaf_beetle/male/wing_br.vox differ diff --git a/assets/voxygen/voxel/npc/leaf_beetle/male/wing_fr.vox b/assets/voxygen/voxel/npc/leaf_beetle/male/wing_fr.vox new file mode 100644 index 0000000..5aac920 Binary files /dev/null and b/assets/voxygen/voxel/npc/leaf_beetle/male/wing_fr.vox differ diff --git a/assets/voxygen/voxel/npc/lion/female/ears.vox b/assets/voxygen/voxel/npc/lion/female/ears.vox new file mode 100644 index 0000000..ae40678 Binary files /dev/null and b/assets/voxygen/voxel/npc/lion/female/ears.vox differ diff --git a/assets/voxygen/voxel/npc/lion/female/foot_bl.vox b/assets/voxygen/voxel/npc/lion/female/foot_bl.vox new file mode 100644 index 0000000..2b47339 Binary files /dev/null and b/assets/voxygen/voxel/npc/lion/female/foot_bl.vox differ diff --git a/assets/voxygen/voxel/npc/lion/female/foot_br.vox b/assets/voxygen/voxel/npc/lion/female/foot_br.vox new file mode 100644 index 0000000..9118ecf Binary files /dev/null and b/assets/voxygen/voxel/npc/lion/female/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/lion/female/foot_fl.vox b/assets/voxygen/voxel/npc/lion/female/foot_fl.vox new file mode 100644 index 0000000..d22e04d Binary files /dev/null and b/assets/voxygen/voxel/npc/lion/female/foot_fl.vox differ diff --git a/assets/voxygen/voxel/npc/lion/female/foot_fr.vox b/assets/voxygen/voxel/npc/lion/female/foot_fr.vox new file mode 100644 index 0000000..9025778 Binary files /dev/null and b/assets/voxygen/voxel/npc/lion/female/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/lion/female/head.vox b/assets/voxygen/voxel/npc/lion/female/head.vox new file mode 100644 index 0000000..be00e3a Binary files /dev/null and b/assets/voxygen/voxel/npc/lion/female/head.vox differ diff --git a/assets/voxygen/voxel/npc/lion/female/jaw.vox b/assets/voxygen/voxel/npc/lion/female/jaw.vox new file mode 100644 index 0000000..f8bd8f8 Binary files /dev/null and b/assets/voxygen/voxel/npc/lion/female/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/lion/female/leg_bl.vox b/assets/voxygen/voxel/npc/lion/female/leg_bl.vox new file mode 100644 index 0000000..6d763db Binary files /dev/null and b/assets/voxygen/voxel/npc/lion/female/leg_bl.vox differ diff --git a/assets/voxygen/voxel/npc/lion/female/leg_br.vox b/assets/voxygen/voxel/npc/lion/female/leg_br.vox new file mode 100644 index 0000000..1d02b36 Binary files /dev/null and b/assets/voxygen/voxel/npc/lion/female/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/lion/female/leg_fl.vox b/assets/voxygen/voxel/npc/lion/female/leg_fl.vox new file mode 100644 index 0000000..16c082e Binary files /dev/null and b/assets/voxygen/voxel/npc/lion/female/leg_fl.vox differ diff --git a/assets/voxygen/voxel/npc/lion/female/leg_fr.vox b/assets/voxygen/voxel/npc/lion/female/leg_fr.vox new file mode 100644 index 0000000..09f17e3 Binary files /dev/null and b/assets/voxygen/voxel/npc/lion/female/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/lion/female/neck.vox b/assets/voxygen/voxel/npc/lion/female/neck.vox new file mode 100644 index 0000000..4277851 Binary files /dev/null and b/assets/voxygen/voxel/npc/lion/female/neck.vox differ diff --git a/assets/voxygen/voxel/npc/lion/female/tail.vox b/assets/voxygen/voxel/npc/lion/female/tail.vox new file mode 100644 index 0000000..5acc519 Binary files /dev/null and b/assets/voxygen/voxel/npc/lion/female/tail.vox differ diff --git a/assets/voxygen/voxel/npc/lion/female/torso_back.vox b/assets/voxygen/voxel/npc/lion/female/torso_back.vox new file mode 100644 index 0000000..dc3283a Binary files /dev/null and b/assets/voxygen/voxel/npc/lion/female/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/lion/female/torso_front.vox b/assets/voxygen/voxel/npc/lion/female/torso_front.vox new file mode 100644 index 0000000..a116f37 Binary files /dev/null and b/assets/voxygen/voxel/npc/lion/female/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/lion/male/ears.vox b/assets/voxygen/voxel/npc/lion/male/ears.vox new file mode 100644 index 0000000..ef0bbc7 Binary files /dev/null and b/assets/voxygen/voxel/npc/lion/male/ears.vox differ diff --git a/assets/voxygen/voxel/npc/lion/male/foot_br.vox b/assets/voxygen/voxel/npc/lion/male/foot_br.vox new file mode 100644 index 0000000..9bf9d7d Binary files /dev/null and b/assets/voxygen/voxel/npc/lion/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/lion/male/foot_fr.vox b/assets/voxygen/voxel/npc/lion/male/foot_fr.vox new file mode 100644 index 0000000..fee64f1 Binary files /dev/null and b/assets/voxygen/voxel/npc/lion/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/lion/male/head.vox b/assets/voxygen/voxel/npc/lion/male/head.vox new file mode 100644 index 0000000..d845411 Binary files /dev/null and b/assets/voxygen/voxel/npc/lion/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/lion/male/jaw.vox b/assets/voxygen/voxel/npc/lion/male/jaw.vox new file mode 100644 index 0000000..8c4041c Binary files /dev/null and b/assets/voxygen/voxel/npc/lion/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/lion/male/leg_br.vox b/assets/voxygen/voxel/npc/lion/male/leg_br.vox new file mode 100644 index 0000000..f1d6bc4 Binary files /dev/null and b/assets/voxygen/voxel/npc/lion/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/lion/male/leg_fr.vox b/assets/voxygen/voxel/npc/lion/male/leg_fr.vox new file mode 100644 index 0000000..5e8312e Binary files /dev/null and b/assets/voxygen/voxel/npc/lion/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/lion/male/neck.vox b/assets/voxygen/voxel/npc/lion/male/neck.vox new file mode 100644 index 0000000..c8e412d Binary files /dev/null and b/assets/voxygen/voxel/npc/lion/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/lion/male/tail.vox b/assets/voxygen/voxel/npc/lion/male/tail.vox new file mode 100644 index 0000000..3f2fd02 Binary files /dev/null and b/assets/voxygen/voxel/npc/lion/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/lion/male/torso_back.vox b/assets/voxygen/voxel/npc/lion/male/torso_back.vox new file mode 100644 index 0000000..6479605 Binary files /dev/null and b/assets/voxygen/voxel/npc/lion/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/lion/male/torso_front.vox b/assets/voxygen/voxel/npc/lion/male/torso_front.vox new file mode 100644 index 0000000..3a8021c Binary files /dev/null and b/assets/voxygen/voxel/npc/lion/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/llama/male/llama.vox b/assets/voxygen/voxel/npc/llama/male/llama.vox new file mode 100644 index 0000000..baff696 Binary files /dev/null and b/assets/voxygen/voxel/npc/llama/male/llama.vox differ diff --git a/assets/voxygen/voxel/npc/mammoth/male/foot_br.vox b/assets/voxygen/voxel/npc/mammoth/male/foot_br.vox new file mode 100644 index 0000000..157f0ff Binary files /dev/null and b/assets/voxygen/voxel/npc/mammoth/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/mammoth/male/foot_fr.vox b/assets/voxygen/voxel/npc/mammoth/male/foot_fr.vox new file mode 100644 index 0000000..70c6dc5 Binary files /dev/null and b/assets/voxygen/voxel/npc/mammoth/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/mammoth/male/head.vox b/assets/voxygen/voxel/npc/mammoth/male/head.vox new file mode 100644 index 0000000..8fa9293 Binary files /dev/null and b/assets/voxygen/voxel/npc/mammoth/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/mammoth/male/jaw.vox b/assets/voxygen/voxel/npc/mammoth/male/jaw.vox new file mode 100644 index 0000000..7100b76 Binary files /dev/null and b/assets/voxygen/voxel/npc/mammoth/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/mammoth/male/leg_br.vox b/assets/voxygen/voxel/npc/mammoth/male/leg_br.vox new file mode 100644 index 0000000..95c2f1f Binary files /dev/null and b/assets/voxygen/voxel/npc/mammoth/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/mammoth/male/leg_fr.vox b/assets/voxygen/voxel/npc/mammoth/male/leg_fr.vox new file mode 100644 index 0000000..6084d12 Binary files /dev/null and b/assets/voxygen/voxel/npc/mammoth/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/mammoth/male/neck.vox b/assets/voxygen/voxel/npc/mammoth/male/neck.vox new file mode 100644 index 0000000..726bf90 Binary files /dev/null and b/assets/voxygen/voxel/npc/mammoth/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/mammoth/male/tail.vox b/assets/voxygen/voxel/npc/mammoth/male/tail.vox new file mode 100644 index 0000000..840e5bf Binary files /dev/null and b/assets/voxygen/voxel/npc/mammoth/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/mammoth/male/torso_back.vox b/assets/voxygen/voxel/npc/mammoth/male/torso_back.vox new file mode 100644 index 0000000..562f1d3 Binary files /dev/null and b/assets/voxygen/voxel/npc/mammoth/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/mammoth/male/torso_front.vox b/assets/voxygen/voxel/npc/mammoth/male/torso_front.vox new file mode 100644 index 0000000..e344c7a Binary files /dev/null and b/assets/voxygen/voxel/npc/mammoth/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/mandragora/male/chest.vox b/assets/voxygen/voxel/npc/mandragora/male/chest.vox new file mode 100644 index 0000000..b0177d3 Binary files /dev/null and b/assets/voxygen/voxel/npc/mandragora/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/mandragora/male/foot_r.vox b/assets/voxygen/voxel/npc/mandragora/male/foot_r.vox new file mode 100644 index 0000000..a93f167 Binary files /dev/null and b/assets/voxygen/voxel/npc/mandragora/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/mandragora/male/hand_r.vox b/assets/voxygen/voxel/npc/mandragora/male/hand_r.vox new file mode 100644 index 0000000..b7c0a26 Binary files /dev/null and b/assets/voxygen/voxel/npc/mandragora/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/mandragora/male/pants.vox b/assets/voxygen/voxel/npc/mandragora/male/pants.vox new file mode 100644 index 0000000..d16276f Binary files /dev/null and b/assets/voxygen/voxel/npc/mandragora/male/pants.vox differ diff --git a/assets/voxygen/voxel/npc/maneater/male/chest.vox b/assets/voxygen/voxel/npc/maneater/male/chest.vox new file mode 100644 index 0000000..38da2b8 Binary files /dev/null and b/assets/voxygen/voxel/npc/maneater/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/maneater/male/foot_br.vox b/assets/voxygen/voxel/npc/maneater/male/foot_br.vox new file mode 100644 index 0000000..c772e91 Binary files /dev/null and b/assets/voxygen/voxel/npc/maneater/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/maneater/male/foot_fr.vox b/assets/voxygen/voxel/npc/maneater/male/foot_fr.vox new file mode 100644 index 0000000..b1fb06e Binary files /dev/null and b/assets/voxygen/voxel/npc/maneater/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/maneater/male/head_lower.vox b/assets/voxygen/voxel/npc/maneater/male/head_lower.vox new file mode 100644 index 0000000..6d33c7a Binary files /dev/null and b/assets/voxygen/voxel/npc/maneater/male/head_lower.vox differ diff --git a/assets/voxygen/voxel/npc/maneater/male/head_upper.vox b/assets/voxygen/voxel/npc/maneater/male/head_upper.vox new file mode 100644 index 0000000..74588b4 Binary files /dev/null and b/assets/voxygen/voxel/npc/maneater/male/head_upper.vox differ diff --git a/assets/voxygen/voxel/npc/maneater/male/jaw.vox b/assets/voxygen/voxel/npc/maneater/male/jaw.vox new file mode 100644 index 0000000..ae1b97a Binary files /dev/null and b/assets/voxygen/voxel/npc/maneater/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/maneater/male/tail_front.vox b/assets/voxygen/voxel/npc/maneater/male/tail_front.vox new file mode 100644 index 0000000..b92ea81 Binary files /dev/null and b/assets/voxygen/voxel/npc/maneater/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/maneater/male/tail_rear.vox b/assets/voxygen/voxel/npc/maneater/male/tail_rear.vox new file mode 100644 index 0000000..6b78219 Binary files /dev/null and b/assets/voxygen/voxel/npc/maneater/male/tail_rear.vox differ diff --git a/assets/voxygen/voxel/npc/marlin/male/chest_back.vox b/assets/voxygen/voxel/npc/marlin/male/chest_back.vox new file mode 100644 index 0000000..ec135bb Binary files /dev/null and b/assets/voxygen/voxel/npc/marlin/male/chest_back.vox differ diff --git a/assets/voxygen/voxel/npc/marlin/male/chest_front.vox b/assets/voxygen/voxel/npc/marlin/male/chest_front.vox new file mode 100644 index 0000000..07425a0 Binary files /dev/null and b/assets/voxygen/voxel/npc/marlin/male/chest_front.vox differ diff --git a/assets/voxygen/voxel/npc/marlin/male/fin_r.vox b/assets/voxygen/voxel/npc/marlin/male/fin_r.vox new file mode 100644 index 0000000..d9eb6d3 Binary files /dev/null and b/assets/voxygen/voxel/npc/marlin/male/fin_r.vox differ diff --git a/assets/voxygen/voxel/npc/marlin/male/head.vox b/assets/voxygen/voxel/npc/marlin/male/head.vox new file mode 100644 index 0000000..b0e3201 Binary files /dev/null and b/assets/voxygen/voxel/npc/marlin/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/marlin/male/tail.vox b/assets/voxygen/voxel/npc/marlin/male/tail.vox new file mode 100644 index 0000000..23b1e1b Binary files /dev/null and b/assets/voxygen/voxel/npc/marlin/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/mindflayer/male/foot_l.vox b/assets/voxygen/voxel/npc/mindflayer/male/foot_l.vox new file mode 100644 index 0000000..2c0b4d5 Binary files /dev/null and b/assets/voxygen/voxel/npc/mindflayer/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/mindflayer/male/foot_r.vox b/assets/voxygen/voxel/npc/mindflayer/male/foot_r.vox new file mode 100644 index 0000000..cf61812 Binary files /dev/null and b/assets/voxygen/voxel/npc/mindflayer/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/mindflayer/male/hand_l.vox b/assets/voxygen/voxel/npc/mindflayer/male/hand_l.vox new file mode 100644 index 0000000..d8abfe0 Binary files /dev/null and b/assets/voxygen/voxel/npc/mindflayer/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/mindflayer/male/hand_r.vox b/assets/voxygen/voxel/npc/mindflayer/male/hand_r.vox new file mode 100644 index 0000000..6624374 Binary files /dev/null and b/assets/voxygen/voxel/npc/mindflayer/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/mindflayer/male/head.vox b/assets/voxygen/voxel/npc/mindflayer/male/head.vox new file mode 100644 index 0000000..c1cc7f2 Binary files /dev/null and b/assets/voxygen/voxel/npc/mindflayer/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/mindflayer/male/shoulder_l.vox b/assets/voxygen/voxel/npc/mindflayer/male/shoulder_l.vox new file mode 100644 index 0000000..4a5fa84 Binary files /dev/null and b/assets/voxygen/voxel/npc/mindflayer/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/mindflayer/male/shoulder_r.vox b/assets/voxygen/voxel/npc/mindflayer/male/shoulder_r.vox new file mode 100644 index 0000000..c13b8b0 Binary files /dev/null and b/assets/voxygen/voxel/npc/mindflayer/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/mindflayer/male/torso_lower.vox b/assets/voxygen/voxel/npc/mindflayer/male/torso_lower.vox new file mode 100644 index 0000000..3e0fd48 Binary files /dev/null and b/assets/voxygen/voxel/npc/mindflayer/male/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/mindflayer/male/torso_upper.vox b/assets/voxygen/voxel/npc/mindflayer/male/torso_upper.vox new file mode 100644 index 0000000..3f06c96 Binary files /dev/null and b/assets/voxygen/voxel/npc/mindflayer/male/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/minotaur/male/foot_l.vox b/assets/voxygen/voxel/npc/minotaur/male/foot_l.vox new file mode 100644 index 0000000..e9bde0b Binary files /dev/null and b/assets/voxygen/voxel/npc/minotaur/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/minotaur/male/foot_r.vox b/assets/voxygen/voxel/npc/minotaur/male/foot_r.vox new file mode 100644 index 0000000..4b8cdd1 Binary files /dev/null and b/assets/voxygen/voxel/npc/minotaur/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/minotaur/male/hand_l.vox b/assets/voxygen/voxel/npc/minotaur/male/hand_l.vox new file mode 100644 index 0000000..328941c Binary files /dev/null and b/assets/voxygen/voxel/npc/minotaur/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/minotaur/male/hand_r.vox b/assets/voxygen/voxel/npc/minotaur/male/hand_r.vox new file mode 100644 index 0000000..8364c7a Binary files /dev/null and b/assets/voxygen/voxel/npc/minotaur/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/minotaur/male/head.vox b/assets/voxygen/voxel/npc/minotaur/male/head.vox new file mode 100644 index 0000000..e73d9e9 Binary files /dev/null and b/assets/voxygen/voxel/npc/minotaur/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/minotaur/male/leg_l.vox b/assets/voxygen/voxel/npc/minotaur/male/leg_l.vox new file mode 100644 index 0000000..54b88b0 Binary files /dev/null and b/assets/voxygen/voxel/npc/minotaur/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/minotaur/male/leg_r.vox b/assets/voxygen/voxel/npc/minotaur/male/leg_r.vox new file mode 100644 index 0000000..f1d8b65 Binary files /dev/null and b/assets/voxygen/voxel/npc/minotaur/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/minotaur/male/shoulder_l.vox b/assets/voxygen/voxel/npc/minotaur/male/shoulder_l.vox new file mode 100644 index 0000000..2a2ba07 Binary files /dev/null and b/assets/voxygen/voxel/npc/minotaur/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/minotaur/male/shoulder_r.vox b/assets/voxygen/voxel/npc/minotaur/male/shoulder_r.vox new file mode 100644 index 0000000..a239d96 Binary files /dev/null and b/assets/voxygen/voxel/npc/minotaur/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/minotaur/male/tail.vox b/assets/voxygen/voxel/npc/minotaur/male/tail.vox new file mode 100644 index 0000000..1dae8ca Binary files /dev/null and b/assets/voxygen/voxel/npc/minotaur/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/minotaur/male/torso_lower.vox b/assets/voxygen/voxel/npc/minotaur/male/torso_lower.vox new file mode 100644 index 0000000..cc0a16b Binary files /dev/null and b/assets/voxygen/voxel/npc/minotaur/male/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/minotaur/male/torso_upper.vox b/assets/voxygen/voxel/npc/minotaur/male/torso_upper.vox new file mode 100644 index 0000000..5677c8f Binary files /dev/null and b/assets/voxygen/voxel/npc/minotaur/male/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/mogwai/male/mogwai.vox b/assets/voxygen/voxel/npc/mogwai/male/mogwai.vox new file mode 100644 index 0000000..96ac934 Binary files /dev/null and b/assets/voxygen/voxel/npc/mogwai/male/mogwai.vox differ diff --git a/assets/voxygen/voxel/npc/monitor/male/chest.vox b/assets/voxygen/voxel/npc/monitor/male/chest.vox new file mode 100644 index 0000000..b5e2ca8 Binary files /dev/null and b/assets/voxygen/voxel/npc/monitor/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/monitor/male/foot_br.vox b/assets/voxygen/voxel/npc/monitor/male/foot_br.vox new file mode 100644 index 0000000..270cee5 Binary files /dev/null and b/assets/voxygen/voxel/npc/monitor/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/monitor/male/foot_fr.vox b/assets/voxygen/voxel/npc/monitor/male/foot_fr.vox new file mode 100644 index 0000000..39b89c8 Binary files /dev/null and b/assets/voxygen/voxel/npc/monitor/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/monitor/male/head_lower.vox b/assets/voxygen/voxel/npc/monitor/male/head_lower.vox new file mode 100644 index 0000000..2645662 Binary files /dev/null and b/assets/voxygen/voxel/npc/monitor/male/head_lower.vox differ diff --git a/assets/voxygen/voxel/npc/monitor/male/head_upper.vox b/assets/voxygen/voxel/npc/monitor/male/head_upper.vox new file mode 100644 index 0000000..403cce5 Binary files /dev/null and b/assets/voxygen/voxel/npc/monitor/male/head_upper.vox differ diff --git a/assets/voxygen/voxel/npc/monitor/male/jaw.vox b/assets/voxygen/voxel/npc/monitor/male/jaw.vox new file mode 100644 index 0000000..fb51485 Binary files /dev/null and b/assets/voxygen/voxel/npc/monitor/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/monitor/male/tail_front.vox b/assets/voxygen/voxel/npc/monitor/male/tail_front.vox new file mode 100644 index 0000000..989985b Binary files /dev/null and b/assets/voxygen/voxel/npc/monitor/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/monitor/male/tail_rear.vox b/assets/voxygen/voxel/npc/monitor/male/tail_rear.vox new file mode 100644 index 0000000..f6b94ba Binary files /dev/null and b/assets/voxygen/voxel/npc/monitor/male/tail_rear.vox differ diff --git a/assets/voxygen/voxel/npc/moose/female/ears.vox b/assets/voxygen/voxel/npc/moose/female/ears.vox new file mode 100644 index 0000000..1209182 Binary files /dev/null and b/assets/voxygen/voxel/npc/moose/female/ears.vox differ diff --git a/assets/voxygen/voxel/npc/moose/female/foot_br.vox b/assets/voxygen/voxel/npc/moose/female/foot_br.vox new file mode 100644 index 0000000..0b5a860 Binary files /dev/null and b/assets/voxygen/voxel/npc/moose/female/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/moose/female/foot_fr.vox b/assets/voxygen/voxel/npc/moose/female/foot_fr.vox new file mode 100644 index 0000000..090201d Binary files /dev/null and b/assets/voxygen/voxel/npc/moose/female/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/moose/female/head.vox b/assets/voxygen/voxel/npc/moose/female/head.vox new file mode 100644 index 0000000..4384dc1 Binary files /dev/null and b/assets/voxygen/voxel/npc/moose/female/head.vox differ diff --git a/assets/voxygen/voxel/npc/moose/female/jaw.vox b/assets/voxygen/voxel/npc/moose/female/jaw.vox new file mode 100644 index 0000000..6b5fc6c Binary files /dev/null and b/assets/voxygen/voxel/npc/moose/female/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/moose/female/leg_br.vox b/assets/voxygen/voxel/npc/moose/female/leg_br.vox new file mode 100644 index 0000000..8cec2e1 Binary files /dev/null and b/assets/voxygen/voxel/npc/moose/female/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/moose/female/leg_fr.vox b/assets/voxygen/voxel/npc/moose/female/leg_fr.vox new file mode 100644 index 0000000..fd8e526 Binary files /dev/null and b/assets/voxygen/voxel/npc/moose/female/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/moose/female/neck.vox b/assets/voxygen/voxel/npc/moose/female/neck.vox new file mode 100644 index 0000000..c73b955 Binary files /dev/null and b/assets/voxygen/voxel/npc/moose/female/neck.vox differ diff --git a/assets/voxygen/voxel/npc/moose/female/tail.vox b/assets/voxygen/voxel/npc/moose/female/tail.vox new file mode 100644 index 0000000..86a236d Binary files /dev/null and b/assets/voxygen/voxel/npc/moose/female/tail.vox differ diff --git a/assets/voxygen/voxel/npc/moose/female/torso_back.vox b/assets/voxygen/voxel/npc/moose/female/torso_back.vox new file mode 100644 index 0000000..f269d54 Binary files /dev/null and b/assets/voxygen/voxel/npc/moose/female/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/moose/female/torso_front.vox b/assets/voxygen/voxel/npc/moose/female/torso_front.vox new file mode 100644 index 0000000..3a2dd4e Binary files /dev/null and b/assets/voxygen/voxel/npc/moose/female/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/moose/male/ears.vox b/assets/voxygen/voxel/npc/moose/male/ears.vox new file mode 100644 index 0000000..6c31ef5 Binary files /dev/null and b/assets/voxygen/voxel/npc/moose/male/ears.vox differ diff --git a/assets/voxygen/voxel/npc/moose/male/foot_br.vox b/assets/voxygen/voxel/npc/moose/male/foot_br.vox new file mode 100644 index 0000000..9b16323 Binary files /dev/null and b/assets/voxygen/voxel/npc/moose/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/moose/male/foot_fr.vox b/assets/voxygen/voxel/npc/moose/male/foot_fr.vox new file mode 100644 index 0000000..16c3e90 Binary files /dev/null and b/assets/voxygen/voxel/npc/moose/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/moose/male/head.vox b/assets/voxygen/voxel/npc/moose/male/head.vox new file mode 100644 index 0000000..1bfd788 Binary files /dev/null and b/assets/voxygen/voxel/npc/moose/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/moose/male/jaw.vox b/assets/voxygen/voxel/npc/moose/male/jaw.vox new file mode 100644 index 0000000..062f9d9 Binary files /dev/null and b/assets/voxygen/voxel/npc/moose/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/moose/male/leg_br.vox b/assets/voxygen/voxel/npc/moose/male/leg_br.vox new file mode 100644 index 0000000..85a794f Binary files /dev/null and b/assets/voxygen/voxel/npc/moose/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/moose/male/leg_fr.vox b/assets/voxygen/voxel/npc/moose/male/leg_fr.vox new file mode 100644 index 0000000..c9a6c6c Binary files /dev/null and b/assets/voxygen/voxel/npc/moose/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/moose/male/neck.vox b/assets/voxygen/voxel/npc/moose/male/neck.vox new file mode 100644 index 0000000..787846a Binary files /dev/null and b/assets/voxygen/voxel/npc/moose/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/moose/male/tail.vox b/assets/voxygen/voxel/npc/moose/male/tail.vox new file mode 100644 index 0000000..aa52cb7 Binary files /dev/null and b/assets/voxygen/voxel/npc/moose/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/moose/male/torso_back.vox b/assets/voxygen/voxel/npc/moose/male/torso_back.vox new file mode 100644 index 0000000..cdf6fbc Binary files /dev/null and b/assets/voxygen/voxel/npc/moose/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/moose/male/torso_front.vox b/assets/voxygen/voxel/npc/moose/male/torso_front.vox new file mode 100644 index 0000000..51f6e64 Binary files /dev/null and b/assets/voxygen/voxel/npc/moose/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/mossdrake/male/chest.vox b/assets/voxygen/voxel/npc/mossdrake/male/chest.vox new file mode 100644 index 0000000..1c18368 Binary files /dev/null and b/assets/voxygen/voxel/npc/mossdrake/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/mossdrake/male/foot_br.vox b/assets/voxygen/voxel/npc/mossdrake/male/foot_br.vox new file mode 100644 index 0000000..b73645a Binary files /dev/null and b/assets/voxygen/voxel/npc/mossdrake/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/mossdrake/male/foot_fr.vox b/assets/voxygen/voxel/npc/mossdrake/male/foot_fr.vox new file mode 100644 index 0000000..ca58234 Binary files /dev/null and b/assets/voxygen/voxel/npc/mossdrake/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/mossdrake/male/head_lower.vox b/assets/voxygen/voxel/npc/mossdrake/male/head_lower.vox new file mode 100644 index 0000000..96c3e13 Binary files /dev/null and b/assets/voxygen/voxel/npc/mossdrake/male/head_lower.vox differ diff --git a/assets/voxygen/voxel/npc/mossdrake/male/head_upper.vox b/assets/voxygen/voxel/npc/mossdrake/male/head_upper.vox new file mode 100644 index 0000000..1d5e502 Binary files /dev/null and b/assets/voxygen/voxel/npc/mossdrake/male/head_upper.vox differ diff --git a/assets/voxygen/voxel/npc/mossdrake/male/jaw.vox b/assets/voxygen/voxel/npc/mossdrake/male/jaw.vox new file mode 100644 index 0000000..bb1040c Binary files /dev/null and b/assets/voxygen/voxel/npc/mossdrake/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/mossdrake/male/tail_front.vox b/assets/voxygen/voxel/npc/mossdrake/male/tail_front.vox new file mode 100644 index 0000000..b96898d Binary files /dev/null and b/assets/voxygen/voxel/npc/mossdrake/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/mossdrake/male/tail_rear.vox b/assets/voxygen/voxel/npc/mossdrake/male/tail_rear.vox new file mode 100644 index 0000000..39a7491 Binary files /dev/null and b/assets/voxygen/voxel/npc/mossdrake/male/tail_rear.vox differ diff --git a/assets/voxygen/voxel/npc/mossy_snail/male/chest.vox b/assets/voxygen/voxel/npc/mossy_snail/male/chest.vox new file mode 100644 index 0000000..95f943b Binary files /dev/null and b/assets/voxygen/voxel/npc/mossy_snail/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/mossy_snail/male/head.vox b/assets/voxygen/voxel/npc/mossy_snail/male/head.vox new file mode 100644 index 0000000..09f0e9e Binary files /dev/null and b/assets/voxygen/voxel/npc/mossy_snail/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/mouflon/male/foot_br.vox b/assets/voxygen/voxel/npc/mouflon/male/foot_br.vox new file mode 100644 index 0000000..d45bddd Binary files /dev/null and b/assets/voxygen/voxel/npc/mouflon/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/mouflon/male/foot_fr.vox b/assets/voxygen/voxel/npc/mouflon/male/foot_fr.vox new file mode 100644 index 0000000..82bb02c Binary files /dev/null and b/assets/voxygen/voxel/npc/mouflon/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/mouflon/male/head.vox b/assets/voxygen/voxel/npc/mouflon/male/head.vox new file mode 100644 index 0000000..5387f5d Binary files /dev/null and b/assets/voxygen/voxel/npc/mouflon/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/mouflon/male/jaw.vox b/assets/voxygen/voxel/npc/mouflon/male/jaw.vox new file mode 100644 index 0000000..3b31ca5 Binary files /dev/null and b/assets/voxygen/voxel/npc/mouflon/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/mouflon/male/leg_br.vox b/assets/voxygen/voxel/npc/mouflon/male/leg_br.vox new file mode 100644 index 0000000..510abe3 Binary files /dev/null and b/assets/voxygen/voxel/npc/mouflon/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/mouflon/male/leg_fr.vox b/assets/voxygen/voxel/npc/mouflon/male/leg_fr.vox new file mode 100644 index 0000000..e4998e2 Binary files /dev/null and b/assets/voxygen/voxel/npc/mouflon/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/mouflon/male/neck.vox b/assets/voxygen/voxel/npc/mouflon/male/neck.vox new file mode 100644 index 0000000..c6e44c2 Binary files /dev/null and b/assets/voxygen/voxel/npc/mouflon/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/mouflon/male/tail.vox b/assets/voxygen/voxel/npc/mouflon/male/tail.vox new file mode 100644 index 0000000..fabd112 Binary files /dev/null and b/assets/voxygen/voxel/npc/mouflon/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/mouflon/male/torso_back.vox b/assets/voxygen/voxel/npc/mouflon/male/torso_back.vox new file mode 100644 index 0000000..177647d Binary files /dev/null and b/assets/voxygen/voxel/npc/mouflon/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/mouflon/male/torso_front.vox b/assets/voxygen/voxel/npc/mouflon/male/torso_front.vox new file mode 100644 index 0000000..4d853f0 Binary files /dev/null and b/assets/voxygen/voxel/npc/mouflon/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/myrmidon/hoplite/chest.vox b/assets/voxygen/voxel/npc/myrmidon/hoplite/chest.vox new file mode 100644 index 0000000..26664d6 Binary files /dev/null and b/assets/voxygen/voxel/npc/myrmidon/hoplite/chest.vox differ diff --git a/assets/voxygen/voxel/npc/myrmidon/hoplite/foot_r.vox b/assets/voxygen/voxel/npc/myrmidon/hoplite/foot_r.vox new file mode 100644 index 0000000..92c5bb9 Binary files /dev/null and b/assets/voxygen/voxel/npc/myrmidon/hoplite/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/myrmidon/hoplite/hand_r.vox b/assets/voxygen/voxel/npc/myrmidon/hoplite/hand_r.vox new file mode 100644 index 0000000..d3e8b10 Binary files /dev/null and b/assets/voxygen/voxel/npc/myrmidon/hoplite/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/myrmidon/hoplite/head.vox b/assets/voxygen/voxel/npc/myrmidon/hoplite/head.vox new file mode 100644 index 0000000..9ec9e61 Binary files /dev/null and b/assets/voxygen/voxel/npc/myrmidon/hoplite/head.vox differ diff --git a/assets/voxygen/voxel/npc/myrmidon/hoplite/pants.vox b/assets/voxygen/voxel/npc/myrmidon/hoplite/pants.vox new file mode 100644 index 0000000..7f541fe Binary files /dev/null and b/assets/voxygen/voxel/npc/myrmidon/hoplite/pants.vox differ diff --git a/assets/voxygen/voxel/npc/myrmidon/hoplite/tail.vox b/assets/voxygen/voxel/npc/myrmidon/hoplite/tail.vox new file mode 100644 index 0000000..4fe05ae Binary files /dev/null and b/assets/voxygen/voxel/npc/myrmidon/hoplite/tail.vox differ diff --git a/assets/voxygen/voxel/npc/myrmidon/marksman/chest.vox b/assets/voxygen/voxel/npc/myrmidon/marksman/chest.vox new file mode 100644 index 0000000..69245f8 Binary files /dev/null and b/assets/voxygen/voxel/npc/myrmidon/marksman/chest.vox differ diff --git a/assets/voxygen/voxel/npc/myrmidon/marksman/foot_r.vox b/assets/voxygen/voxel/npc/myrmidon/marksman/foot_r.vox new file mode 100644 index 0000000..73ccf73 Binary files /dev/null and b/assets/voxygen/voxel/npc/myrmidon/marksman/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/myrmidon/marksman/hand_r.vox b/assets/voxygen/voxel/npc/myrmidon/marksman/hand_r.vox new file mode 100644 index 0000000..0ca23a7 Binary files /dev/null and b/assets/voxygen/voxel/npc/myrmidon/marksman/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/myrmidon/marksman/head.vox b/assets/voxygen/voxel/npc/myrmidon/marksman/head.vox new file mode 100644 index 0000000..334e225 Binary files /dev/null and b/assets/voxygen/voxel/npc/myrmidon/marksman/head.vox differ diff --git a/assets/voxygen/voxel/npc/myrmidon/marksman/pants.vox b/assets/voxygen/voxel/npc/myrmidon/marksman/pants.vox new file mode 100644 index 0000000..ae82f1c Binary files /dev/null and b/assets/voxygen/voxel/npc/myrmidon/marksman/pants.vox differ diff --git a/assets/voxygen/voxel/npc/myrmidon/marksman/tail.vox b/assets/voxygen/voxel/npc/myrmidon/marksman/tail.vox new file mode 100644 index 0000000..372c373 Binary files /dev/null and b/assets/voxygen/voxel/npc/myrmidon/marksman/tail.vox differ diff --git a/assets/voxygen/voxel/npc/myrmidon/strategian/chest.vox b/assets/voxygen/voxel/npc/myrmidon/strategian/chest.vox new file mode 100644 index 0000000..c3ef6e7 Binary files /dev/null and b/assets/voxygen/voxel/npc/myrmidon/strategian/chest.vox differ diff --git a/assets/voxygen/voxel/npc/myrmidon/strategian/foot_r.vox b/assets/voxygen/voxel/npc/myrmidon/strategian/foot_r.vox new file mode 100644 index 0000000..087b5ef Binary files /dev/null and b/assets/voxygen/voxel/npc/myrmidon/strategian/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/myrmidon/strategian/hand_r.vox b/assets/voxygen/voxel/npc/myrmidon/strategian/hand_r.vox new file mode 100644 index 0000000..8976643 Binary files /dev/null and b/assets/voxygen/voxel/npc/myrmidon/strategian/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/myrmidon/strategian/head.vox b/assets/voxygen/voxel/npc/myrmidon/strategian/head.vox new file mode 100644 index 0000000..dee1910 Binary files /dev/null and b/assets/voxygen/voxel/npc/myrmidon/strategian/head.vox differ diff --git a/assets/voxygen/voxel/npc/myrmidon/strategian/pants.vox b/assets/voxygen/voxel/npc/myrmidon/strategian/pants.vox new file mode 100644 index 0000000..5e75a92 Binary files /dev/null and b/assets/voxygen/voxel/npc/myrmidon/strategian/pants.vox differ diff --git a/assets/voxygen/voxel/npc/myrmidon/strategian/tail.vox b/assets/voxygen/voxel/npc/myrmidon/strategian/tail.vox new file mode 100644 index 0000000..9d3f06a Binary files /dev/null and b/assets/voxygen/voxel/npc/myrmidon/strategian/tail.vox differ diff --git a/assets/voxygen/voxel/npc/ngoubou/male/foot_br.vox b/assets/voxygen/voxel/npc/ngoubou/male/foot_br.vox new file mode 100644 index 0000000..5590503 Binary files /dev/null and b/assets/voxygen/voxel/npc/ngoubou/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/ngoubou/male/foot_fr.vox b/assets/voxygen/voxel/npc/ngoubou/male/foot_fr.vox new file mode 100644 index 0000000..f9604f7 Binary files /dev/null and b/assets/voxygen/voxel/npc/ngoubou/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/ngoubou/male/head.vox b/assets/voxygen/voxel/npc/ngoubou/male/head.vox new file mode 100644 index 0000000..aad64a1 Binary files /dev/null and b/assets/voxygen/voxel/npc/ngoubou/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/ngoubou/male/jaw.vox b/assets/voxygen/voxel/npc/ngoubou/male/jaw.vox new file mode 100644 index 0000000..6f067dc Binary files /dev/null and b/assets/voxygen/voxel/npc/ngoubou/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/ngoubou/male/leg_br.vox b/assets/voxygen/voxel/npc/ngoubou/male/leg_br.vox new file mode 100644 index 0000000..da48a6d Binary files /dev/null and b/assets/voxygen/voxel/npc/ngoubou/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/ngoubou/male/leg_fr.vox b/assets/voxygen/voxel/npc/ngoubou/male/leg_fr.vox new file mode 100644 index 0000000..ff41150 Binary files /dev/null and b/assets/voxygen/voxel/npc/ngoubou/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/ngoubou/male/neck.vox b/assets/voxygen/voxel/npc/ngoubou/male/neck.vox new file mode 100644 index 0000000..507f39c Binary files /dev/null and b/assets/voxygen/voxel/npc/ngoubou/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/ngoubou/male/tail.vox b/assets/voxygen/voxel/npc/ngoubou/male/tail.vox new file mode 100644 index 0000000..931a069 Binary files /dev/null and b/assets/voxygen/voxel/npc/ngoubou/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/ngoubou/male/torso_back.vox b/assets/voxygen/voxel/npc/ngoubou/male/torso_back.vox new file mode 100644 index 0000000..6434fec Binary files /dev/null and b/assets/voxygen/voxel/npc/ngoubou/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/ngoubou/male/torso_front.vox b/assets/voxygen/voxel/npc/ngoubou/male/torso_front.vox new file mode 100644 index 0000000..752a5fb Binary files /dev/null and b/assets/voxygen/voxel/npc/ngoubou/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/ntouka/male/chest_back.vox b/assets/voxygen/voxel/npc/ntouka/male/chest_back.vox new file mode 100644 index 0000000..1022df2 Binary files /dev/null and b/assets/voxygen/voxel/npc/ntouka/male/chest_back.vox differ diff --git a/assets/voxygen/voxel/npc/ntouka/male/chest_front.vox b/assets/voxygen/voxel/npc/ntouka/male/chest_front.vox new file mode 100644 index 0000000..84b1d1f Binary files /dev/null and b/assets/voxygen/voxel/npc/ntouka/male/chest_front.vox differ diff --git a/assets/voxygen/voxel/npc/ntouka/male/foot_r.vox b/assets/voxygen/voxel/npc/ntouka/male/foot_r.vox new file mode 100644 index 0000000..992af9c Binary files /dev/null and b/assets/voxygen/voxel/npc/ntouka/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/ntouka/male/hand_r.vox b/assets/voxygen/voxel/npc/ntouka/male/hand_r.vox new file mode 100644 index 0000000..d2f8a7a Binary files /dev/null and b/assets/voxygen/voxel/npc/ntouka/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/ntouka/male/head.vox b/assets/voxygen/voxel/npc/ntouka/male/head.vox new file mode 100644 index 0000000..79adb6e Binary files /dev/null and b/assets/voxygen/voxel/npc/ntouka/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/ntouka/male/jaw.vox b/assets/voxygen/voxel/npc/ntouka/male/jaw.vox new file mode 100644 index 0000000..2026b00 Binary files /dev/null and b/assets/voxygen/voxel/npc/ntouka/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/ntouka/male/leg_r.vox b/assets/voxygen/voxel/npc/ntouka/male/leg_r.vox new file mode 100644 index 0000000..dc8d12d Binary files /dev/null and b/assets/voxygen/voxel/npc/ntouka/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/ntouka/male/neck.vox b/assets/voxygen/voxel/npc/ntouka/male/neck.vox new file mode 100644 index 0000000..46ee698 Binary files /dev/null and b/assets/voxygen/voxel/npc/ntouka/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/ntouka/male/tail_back.vox b/assets/voxygen/voxel/npc/ntouka/male/tail_back.vox new file mode 100644 index 0000000..0b9e6da Binary files /dev/null and b/assets/voxygen/voxel/npc/ntouka/male/tail_back.vox differ diff --git a/assets/voxygen/voxel/npc/ntouka/male/tail_front.vox b/assets/voxygen/voxel/npc/ntouka/male/tail_front.vox new file mode 100644 index 0000000..9936737 Binary files /dev/null and b/assets/voxygen/voxel/npc/ntouka/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/ochre_legoom/chest.vox b/assets/voxygen/voxel/npc/ochre_legoom/chest.vox new file mode 100644 index 0000000..402a186 Binary files /dev/null and b/assets/voxygen/voxel/npc/ochre_legoom/chest.vox differ diff --git a/assets/voxygen/voxel/npc/ochre_legoom/foot_r.vox b/assets/voxygen/voxel/npc/ochre_legoom/foot_r.vox new file mode 100644 index 0000000..4bf6b07 Binary files /dev/null and b/assets/voxygen/voxel/npc/ochre_legoom/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/ochre_legoom/hand_r.vox b/assets/voxygen/voxel/npc/ochre_legoom/hand_r.vox new file mode 100644 index 0000000..757b908 Binary files /dev/null and b/assets/voxygen/voxel/npc/ochre_legoom/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/ochre_legoom/head.vox b/assets/voxygen/voxel/npc/ochre_legoom/head.vox new file mode 100644 index 0000000..4bcef29 Binary files /dev/null and b/assets/voxygen/voxel/npc/ochre_legoom/head.vox differ diff --git a/assets/voxygen/voxel/npc/ochre_legoom/pants.vox b/assets/voxygen/voxel/npc/ochre_legoom/pants.vox new file mode 100644 index 0000000..6bea94d Binary files /dev/null and b/assets/voxygen/voxel/npc/ochre_legoom/pants.vox differ diff --git a/assets/voxygen/voxel/npc/odonto/male/chest_back.vox b/assets/voxygen/voxel/npc/odonto/male/chest_back.vox new file mode 100644 index 0000000..9a3066a Binary files /dev/null and b/assets/voxygen/voxel/npc/odonto/male/chest_back.vox differ diff --git a/assets/voxygen/voxel/npc/odonto/male/chest_front.vox b/assets/voxygen/voxel/npc/odonto/male/chest_front.vox new file mode 100644 index 0000000..3cc0a51 Binary files /dev/null and b/assets/voxygen/voxel/npc/odonto/male/chest_front.vox differ diff --git a/assets/voxygen/voxel/npc/odonto/male/foot_r.vox b/assets/voxygen/voxel/npc/odonto/male/foot_r.vox new file mode 100644 index 0000000..d141945 Binary files /dev/null and b/assets/voxygen/voxel/npc/odonto/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/odonto/male/hand_r.vox b/assets/voxygen/voxel/npc/odonto/male/hand_r.vox new file mode 100644 index 0000000..218a918 Binary files /dev/null and b/assets/voxygen/voxel/npc/odonto/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/odonto/male/head.vox b/assets/voxygen/voxel/npc/odonto/male/head.vox new file mode 100644 index 0000000..1f1170c Binary files /dev/null and b/assets/voxygen/voxel/npc/odonto/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/odonto/male/jaw.vox b/assets/voxygen/voxel/npc/odonto/male/jaw.vox new file mode 100644 index 0000000..332b62c Binary files /dev/null and b/assets/voxygen/voxel/npc/odonto/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/odonto/male/leg_r.vox b/assets/voxygen/voxel/npc/odonto/male/leg_r.vox new file mode 100644 index 0000000..245295d Binary files /dev/null and b/assets/voxygen/voxel/npc/odonto/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/odonto/male/neck.vox b/assets/voxygen/voxel/npc/odonto/male/neck.vox new file mode 100644 index 0000000..b97b094 Binary files /dev/null and b/assets/voxygen/voxel/npc/odonto/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/odonto/male/tail_back.vox b/assets/voxygen/voxel/npc/odonto/male/tail_back.vox new file mode 100644 index 0000000..32366fd Binary files /dev/null and b/assets/voxygen/voxel/npc/odonto/male/tail_back.vox differ diff --git a/assets/voxygen/voxel/npc/odonto/male/tail_front.vox b/assets/voxygen/voxel/npc/odonto/male/tail_front.vox new file mode 100644 index 0000000..7043015 Binary files /dev/null and b/assets/voxygen/voxel/npc/odonto/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/ogre/female/foot_l.vox b/assets/voxygen/voxel/npc/ogre/female/foot_l.vox new file mode 100644 index 0000000..53d6182 Binary files /dev/null and b/assets/voxygen/voxel/npc/ogre/female/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/ogre/female/foot_r.vox b/assets/voxygen/voxel/npc/ogre/female/foot_r.vox new file mode 100644 index 0000000..53d6182 Binary files /dev/null and b/assets/voxygen/voxel/npc/ogre/female/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/ogre/female/hand_l.vox b/assets/voxygen/voxel/npc/ogre/female/hand_l.vox new file mode 100644 index 0000000..7204997 Binary files /dev/null and b/assets/voxygen/voxel/npc/ogre/female/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/ogre/female/hand_r.vox b/assets/voxygen/voxel/npc/ogre/female/hand_r.vox new file mode 100644 index 0000000..a29b5ac Binary files /dev/null and b/assets/voxygen/voxel/npc/ogre/female/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/ogre/female/head.vox b/assets/voxygen/voxel/npc/ogre/female/head.vox new file mode 100644 index 0000000..0110039 Binary files /dev/null and b/assets/voxygen/voxel/npc/ogre/female/head.vox differ diff --git a/assets/voxygen/voxel/npc/ogre/female/leg_l.vox b/assets/voxygen/voxel/npc/ogre/female/leg_l.vox new file mode 100644 index 0000000..930e7ec Binary files /dev/null and b/assets/voxygen/voxel/npc/ogre/female/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/ogre/female/leg_r.vox b/assets/voxygen/voxel/npc/ogre/female/leg_r.vox new file mode 100644 index 0000000..f60e28f Binary files /dev/null and b/assets/voxygen/voxel/npc/ogre/female/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/ogre/female/shoulder_l.vox b/assets/voxygen/voxel/npc/ogre/female/shoulder_l.vox new file mode 100644 index 0000000..253a96a Binary files /dev/null and b/assets/voxygen/voxel/npc/ogre/female/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/ogre/female/shoulder_r.vox b/assets/voxygen/voxel/npc/ogre/female/shoulder_r.vox new file mode 100644 index 0000000..67e3de6 Binary files /dev/null and b/assets/voxygen/voxel/npc/ogre/female/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/ogre/female/torso_lower.vox b/assets/voxygen/voxel/npc/ogre/female/torso_lower.vox new file mode 100644 index 0000000..940b089 Binary files /dev/null and b/assets/voxygen/voxel/npc/ogre/female/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/ogre/female/torso_upper.vox b/assets/voxygen/voxel/npc/ogre/female/torso_upper.vox new file mode 100644 index 0000000..9014afd Binary files /dev/null and b/assets/voxygen/voxel/npc/ogre/female/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/ogre/male/foot_l.vox b/assets/voxygen/voxel/npc/ogre/male/foot_l.vox new file mode 100644 index 0000000..26659e3 Binary files /dev/null and b/assets/voxygen/voxel/npc/ogre/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/ogre/male/foot_r.vox b/assets/voxygen/voxel/npc/ogre/male/foot_r.vox new file mode 100644 index 0000000..26659e3 Binary files /dev/null and b/assets/voxygen/voxel/npc/ogre/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/ogre/male/hammer.vox b/assets/voxygen/voxel/npc/ogre/male/hammer.vox new file mode 100644 index 0000000..2b4c680 Binary files /dev/null and b/assets/voxygen/voxel/npc/ogre/male/hammer.vox differ diff --git a/assets/voxygen/voxel/npc/ogre/male/hand_l.vox b/assets/voxygen/voxel/npc/ogre/male/hand_l.vox new file mode 100644 index 0000000..5d857b9 Binary files /dev/null and b/assets/voxygen/voxel/npc/ogre/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/ogre/male/hand_r.vox b/assets/voxygen/voxel/npc/ogre/male/hand_r.vox new file mode 100644 index 0000000..e57b188 Binary files /dev/null and b/assets/voxygen/voxel/npc/ogre/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/ogre/male/head.vox b/assets/voxygen/voxel/npc/ogre/male/head.vox new file mode 100644 index 0000000..66143a3 Binary files /dev/null and b/assets/voxygen/voxel/npc/ogre/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/ogre/male/leg_l.vox b/assets/voxygen/voxel/npc/ogre/male/leg_l.vox new file mode 100644 index 0000000..6c50db9 Binary files /dev/null and b/assets/voxygen/voxel/npc/ogre/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/ogre/male/leg_r.vox b/assets/voxygen/voxel/npc/ogre/male/leg_r.vox new file mode 100644 index 0000000..b95589e Binary files /dev/null and b/assets/voxygen/voxel/npc/ogre/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/ogre/male/shoulder_l.vox b/assets/voxygen/voxel/npc/ogre/male/shoulder_l.vox new file mode 100644 index 0000000..c86d0bd Binary files /dev/null and b/assets/voxygen/voxel/npc/ogre/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/ogre/male/shoulder_r.vox b/assets/voxygen/voxel/npc/ogre/male/shoulder_r.vox new file mode 100644 index 0000000..2e1e199 Binary files /dev/null and b/assets/voxygen/voxel/npc/ogre/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/ogre/male/torso_lower.vox b/assets/voxygen/voxel/npc/ogre/male/torso_lower.vox new file mode 100644 index 0000000..44450ba Binary files /dev/null and b/assets/voxygen/voxel/npc/ogre/male/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/ogre/male/torso_upper.vox b/assets/voxygen/voxel/npc/ogre/male/torso_upper.vox new file mode 100644 index 0000000..dac47b4 Binary files /dev/null and b/assets/voxygen/voxel/npc/ogre/male/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/oni_blue/male/foot_l.vox b/assets/voxygen/voxel/npc/oni_blue/male/foot_l.vox new file mode 100644 index 0000000..33c70aa Binary files /dev/null and b/assets/voxygen/voxel/npc/oni_blue/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/oni_blue/male/foot_r.vox b/assets/voxygen/voxel/npc/oni_blue/male/foot_r.vox new file mode 100644 index 0000000..45046a5 Binary files /dev/null and b/assets/voxygen/voxel/npc/oni_blue/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/oni_blue/male/hand_l.vox b/assets/voxygen/voxel/npc/oni_blue/male/hand_l.vox new file mode 100644 index 0000000..b1fab75 Binary files /dev/null and b/assets/voxygen/voxel/npc/oni_blue/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/oni_blue/male/hand_r.vox b/assets/voxygen/voxel/npc/oni_blue/male/hand_r.vox new file mode 100644 index 0000000..2fcf2bd Binary files /dev/null and b/assets/voxygen/voxel/npc/oni_blue/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/oni_blue/male/head.vox b/assets/voxygen/voxel/npc/oni_blue/male/head.vox new file mode 100644 index 0000000..5e20a5c Binary files /dev/null and b/assets/voxygen/voxel/npc/oni_blue/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/oni_blue/male/jaw.vox b/assets/voxygen/voxel/npc/oni_blue/male/jaw.vox new file mode 100644 index 0000000..2c0c0e5 Binary files /dev/null and b/assets/voxygen/voxel/npc/oni_blue/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/oni_blue/male/leg_l.vox b/assets/voxygen/voxel/npc/oni_blue/male/leg_l.vox new file mode 100644 index 0000000..bd2c297 Binary files /dev/null and b/assets/voxygen/voxel/npc/oni_blue/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/oni_blue/male/leg_r.vox b/assets/voxygen/voxel/npc/oni_blue/male/leg_r.vox new file mode 100644 index 0000000..1407fa7 Binary files /dev/null and b/assets/voxygen/voxel/npc/oni_blue/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/oni_blue/male/main_hand.vox b/assets/voxygen/voxel/npc/oni_blue/male/main_hand.vox new file mode 100644 index 0000000..499aee2 Binary files /dev/null and b/assets/voxygen/voxel/npc/oni_blue/male/main_hand.vox differ diff --git a/assets/voxygen/voxel/npc/oni_blue/male/shoulder_l.vox b/assets/voxygen/voxel/npc/oni_blue/male/shoulder_l.vox new file mode 100644 index 0000000..a973859 Binary files /dev/null and b/assets/voxygen/voxel/npc/oni_blue/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/oni_blue/male/shoulder_r.vox b/assets/voxygen/voxel/npc/oni_blue/male/shoulder_r.vox new file mode 100644 index 0000000..4ba5fba Binary files /dev/null and b/assets/voxygen/voxel/npc/oni_blue/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/oni_blue/male/torso_lower.vox b/assets/voxygen/voxel/npc/oni_blue/male/torso_lower.vox new file mode 100644 index 0000000..6c7dbb5 Binary files /dev/null and b/assets/voxygen/voxel/npc/oni_blue/male/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/oni_blue/male/torso_upper.vox b/assets/voxygen/voxel/npc/oni_blue/male/torso_upper.vox new file mode 100644 index 0000000..a171387 Binary files /dev/null and b/assets/voxygen/voxel/npc/oni_blue/male/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/oni_red/male/foot_l.vox b/assets/voxygen/voxel/npc/oni_red/male/foot_l.vox new file mode 100644 index 0000000..4e62f15 Binary files /dev/null and b/assets/voxygen/voxel/npc/oni_red/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/oni_red/male/foot_r.vox b/assets/voxygen/voxel/npc/oni_red/male/foot_r.vox new file mode 100644 index 0000000..98aa5c5 Binary files /dev/null and b/assets/voxygen/voxel/npc/oni_red/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/oni_red/male/hand_l.vox b/assets/voxygen/voxel/npc/oni_red/male/hand_l.vox new file mode 100644 index 0000000..e740348 Binary files /dev/null and b/assets/voxygen/voxel/npc/oni_red/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/oni_red/male/hand_r.vox b/assets/voxygen/voxel/npc/oni_red/male/hand_r.vox new file mode 100644 index 0000000..29a7c10 Binary files /dev/null and b/assets/voxygen/voxel/npc/oni_red/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/oni_red/male/head.vox b/assets/voxygen/voxel/npc/oni_red/male/head.vox new file mode 100644 index 0000000..148ee46 Binary files /dev/null and b/assets/voxygen/voxel/npc/oni_red/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/oni_red/male/jaw.vox b/assets/voxygen/voxel/npc/oni_red/male/jaw.vox new file mode 100644 index 0000000..cc8809b Binary files /dev/null and b/assets/voxygen/voxel/npc/oni_red/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/oni_red/male/leg_l.vox b/assets/voxygen/voxel/npc/oni_red/male/leg_l.vox new file mode 100644 index 0000000..c1af3af Binary files /dev/null and b/assets/voxygen/voxel/npc/oni_red/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/oni_red/male/leg_r.vox b/assets/voxygen/voxel/npc/oni_red/male/leg_r.vox new file mode 100644 index 0000000..c8d1ff1 Binary files /dev/null and b/assets/voxygen/voxel/npc/oni_red/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/oni_red/male/main_hand.vox b/assets/voxygen/voxel/npc/oni_red/male/main_hand.vox new file mode 100644 index 0000000..0fa6e47 Binary files /dev/null and b/assets/voxygen/voxel/npc/oni_red/male/main_hand.vox differ diff --git a/assets/voxygen/voxel/npc/oni_red/male/shoulder_l.vox b/assets/voxygen/voxel/npc/oni_red/male/shoulder_l.vox new file mode 100644 index 0000000..e7659fc Binary files /dev/null and b/assets/voxygen/voxel/npc/oni_red/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/oni_red/male/shoulder_r.vox b/assets/voxygen/voxel/npc/oni_red/male/shoulder_r.vox new file mode 100644 index 0000000..ffa062a Binary files /dev/null and b/assets/voxygen/voxel/npc/oni_red/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/oni_red/male/torso_lower.vox b/assets/voxygen/voxel/npc/oni_red/male/torso_lower.vox new file mode 100644 index 0000000..60d5714 Binary files /dev/null and b/assets/voxygen/voxel/npc/oni_red/male/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/oni_red/male/torso_upper.vox b/assets/voxygen/voxel/npc/oni_red/male/torso_upper.vox new file mode 100644 index 0000000..10954a8 Binary files /dev/null and b/assets/voxygen/voxel/npc/oni_red/male/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/panda/male/ears.vox b/assets/voxygen/voxel/npc/panda/male/ears.vox new file mode 100644 index 0000000..603fa20 Binary files /dev/null and b/assets/voxygen/voxel/npc/panda/male/ears.vox differ diff --git a/assets/voxygen/voxel/npc/panda/male/foot_br.vox b/assets/voxygen/voxel/npc/panda/male/foot_br.vox new file mode 100644 index 0000000..ccb554f Binary files /dev/null and b/assets/voxygen/voxel/npc/panda/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/panda/male/foot_fr.vox b/assets/voxygen/voxel/npc/panda/male/foot_fr.vox new file mode 100644 index 0000000..7574b06 Binary files /dev/null and b/assets/voxygen/voxel/npc/panda/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/panda/male/head.vox b/assets/voxygen/voxel/npc/panda/male/head.vox new file mode 100644 index 0000000..c7129c4 Binary files /dev/null and b/assets/voxygen/voxel/npc/panda/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/panda/male/jaw.vox b/assets/voxygen/voxel/npc/panda/male/jaw.vox new file mode 100644 index 0000000..1906ba9 Binary files /dev/null and b/assets/voxygen/voxel/npc/panda/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/panda/male/leg_br.vox b/assets/voxygen/voxel/npc/panda/male/leg_br.vox new file mode 100644 index 0000000..71354df Binary files /dev/null and b/assets/voxygen/voxel/npc/panda/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/panda/male/leg_fr.vox b/assets/voxygen/voxel/npc/panda/male/leg_fr.vox new file mode 100644 index 0000000..0088df6 Binary files /dev/null and b/assets/voxygen/voxel/npc/panda/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/panda/male/neck.vox b/assets/voxygen/voxel/npc/panda/male/neck.vox new file mode 100644 index 0000000..87a16ea Binary files /dev/null and b/assets/voxygen/voxel/npc/panda/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/panda/male/tail.vox b/assets/voxygen/voxel/npc/panda/male/tail.vox new file mode 100644 index 0000000..4849622 Binary files /dev/null and b/assets/voxygen/voxel/npc/panda/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/panda/male/torso_back.vox b/assets/voxygen/voxel/npc/panda/male/torso_back.vox new file mode 100644 index 0000000..3e137f3 Binary files /dev/null and b/assets/voxygen/voxel/npc/panda/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/panda/male/torso_front.vox b/assets/voxygen/voxel/npc/panda/male/torso_front.vox new file mode 100644 index 0000000..80cafae Binary files /dev/null and b/assets/voxygen/voxel/npc/panda/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/pangolin/male/chest.vox b/assets/voxygen/voxel/npc/pangolin/male/chest.vox new file mode 100644 index 0000000..87776d1 Binary files /dev/null and b/assets/voxygen/voxel/npc/pangolin/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/pangolin/male/foot_br.vox b/assets/voxygen/voxel/npc/pangolin/male/foot_br.vox new file mode 100644 index 0000000..3c55b61 Binary files /dev/null and b/assets/voxygen/voxel/npc/pangolin/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/pangolin/male/foot_fr.vox b/assets/voxygen/voxel/npc/pangolin/male/foot_fr.vox new file mode 100644 index 0000000..4b44a01 Binary files /dev/null and b/assets/voxygen/voxel/npc/pangolin/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/pangolin/male/head_upper.vox b/assets/voxygen/voxel/npc/pangolin/male/head_upper.vox new file mode 100644 index 0000000..b267753 Binary files /dev/null and b/assets/voxygen/voxel/npc/pangolin/male/head_upper.vox differ diff --git a/assets/voxygen/voxel/npc/pangolin/male/tail_front.vox b/assets/voxygen/voxel/npc/pangolin/male/tail_front.vox new file mode 100644 index 0000000..b0bde66 Binary files /dev/null and b/assets/voxygen/voxel/npc/pangolin/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/pangolin/male/tail_rear.vox b/assets/voxygen/voxel/npc/pangolin/male/tail_rear.vox new file mode 100644 index 0000000..bd583c1 Binary files /dev/null and b/assets/voxygen/voxel/npc/pangolin/male/tail_rear.vox differ diff --git a/assets/voxygen/voxel/npc/parakeet/male/chest.vox b/assets/voxygen/voxel/npc/parakeet/male/chest.vox new file mode 100644 index 0000000..daabb27 Binary files /dev/null and b/assets/voxygen/voxel/npc/parakeet/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/parakeet/male/head.vox b/assets/voxygen/voxel/npc/parakeet/male/head.vox new file mode 100644 index 0000000..98d6e09 Binary files /dev/null and b/assets/voxygen/voxel/npc/parakeet/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/parakeet/male/leg_r.vox b/assets/voxygen/voxel/npc/parakeet/male/leg_r.vox new file mode 100644 index 0000000..47673fe Binary files /dev/null and b/assets/voxygen/voxel/npc/parakeet/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/parakeet/male/tail.vox b/assets/voxygen/voxel/npc/parakeet/male/tail.vox new file mode 100644 index 0000000..df9942f Binary files /dev/null and b/assets/voxygen/voxel/npc/parakeet/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/parakeet/male/wing_in_r.vox b/assets/voxygen/voxel/npc/parakeet/male/wing_in_r.vox new file mode 100644 index 0000000..cafb609 Binary files /dev/null and b/assets/voxygen/voxel/npc/parakeet/male/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/parakeet/male/wing_out_r.vox b/assets/voxygen/voxel/npc/parakeet/male/wing_out_r.vox new file mode 100644 index 0000000..917c9a1 Binary files /dev/null and b/assets/voxygen/voxel/npc/parakeet/male/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/parrot/female/chest.vox b/assets/voxygen/voxel/npc/parrot/female/chest.vox new file mode 100644 index 0000000..fa3e1b2 Binary files /dev/null and b/assets/voxygen/voxel/npc/parrot/female/chest.vox differ diff --git a/assets/voxygen/voxel/npc/parrot/female/head.vox b/assets/voxygen/voxel/npc/parrot/female/head.vox new file mode 100644 index 0000000..bae1479 Binary files /dev/null and b/assets/voxygen/voxel/npc/parrot/female/head.vox differ diff --git a/assets/voxygen/voxel/npc/parrot/female/leg_r.vox b/assets/voxygen/voxel/npc/parrot/female/leg_r.vox new file mode 100644 index 0000000..d5d3a18 Binary files /dev/null and b/assets/voxygen/voxel/npc/parrot/female/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/parrot/female/tail.vox b/assets/voxygen/voxel/npc/parrot/female/tail.vox new file mode 100644 index 0000000..110bf96 Binary files /dev/null and b/assets/voxygen/voxel/npc/parrot/female/tail.vox differ diff --git a/assets/voxygen/voxel/npc/parrot/female/wing_in_r.vox b/assets/voxygen/voxel/npc/parrot/female/wing_in_r.vox new file mode 100644 index 0000000..e91bfee Binary files /dev/null and b/assets/voxygen/voxel/npc/parrot/female/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/parrot/female/wing_out_r.vox b/assets/voxygen/voxel/npc/parrot/female/wing_out_r.vox new file mode 100644 index 0000000..bee586d Binary files /dev/null and b/assets/voxygen/voxel/npc/parrot/female/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/parrot/male/chest.vox b/assets/voxygen/voxel/npc/parrot/male/chest.vox new file mode 100644 index 0000000..c99a855 Binary files /dev/null and b/assets/voxygen/voxel/npc/parrot/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/parrot/male/head.vox b/assets/voxygen/voxel/npc/parrot/male/head.vox new file mode 100644 index 0000000..79672de Binary files /dev/null and b/assets/voxygen/voxel/npc/parrot/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/parrot/male/leg_r.vox b/assets/voxygen/voxel/npc/parrot/male/leg_r.vox new file mode 100644 index 0000000..28dbd11 Binary files /dev/null and b/assets/voxygen/voxel/npc/parrot/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/parrot/male/tail.vox b/assets/voxygen/voxel/npc/parrot/male/tail.vox new file mode 100644 index 0000000..1921c60 Binary files /dev/null and b/assets/voxygen/voxel/npc/parrot/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/parrot/male/wing_in_r.vox b/assets/voxygen/voxel/npc/parrot/male/wing_in_r.vox new file mode 100644 index 0000000..4f5543b Binary files /dev/null and b/assets/voxygen/voxel/npc/parrot/male/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/parrot/male/wing_out_r.vox b/assets/voxygen/voxel/npc/parrot/male/wing_out_r.vox new file mode 100644 index 0000000..288fc27 Binary files /dev/null and b/assets/voxygen/voxel/npc/parrot/male/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/peacock/female/chest.vox b/assets/voxygen/voxel/npc/peacock/female/chest.vox new file mode 100644 index 0000000..77ff27d Binary files /dev/null and b/assets/voxygen/voxel/npc/peacock/female/chest.vox differ diff --git a/assets/voxygen/voxel/npc/peacock/female/head.vox b/assets/voxygen/voxel/npc/peacock/female/head.vox new file mode 100644 index 0000000..a910fad Binary files /dev/null and b/assets/voxygen/voxel/npc/peacock/female/head.vox differ diff --git a/assets/voxygen/voxel/npc/peacock/female/leg_r.vox b/assets/voxygen/voxel/npc/peacock/female/leg_r.vox new file mode 100644 index 0000000..135293d Binary files /dev/null and b/assets/voxygen/voxel/npc/peacock/female/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/peacock/female/tail.vox b/assets/voxygen/voxel/npc/peacock/female/tail.vox new file mode 100644 index 0000000..123b63d Binary files /dev/null and b/assets/voxygen/voxel/npc/peacock/female/tail.vox differ diff --git a/assets/voxygen/voxel/npc/peacock/female/wing_in_r.vox b/assets/voxygen/voxel/npc/peacock/female/wing_in_r.vox new file mode 100644 index 0000000..4b5cd14 Binary files /dev/null and b/assets/voxygen/voxel/npc/peacock/female/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/peacock/female/wing_out_r.vox b/assets/voxygen/voxel/npc/peacock/female/wing_out_r.vox new file mode 100644 index 0000000..cb1a1cf Binary files /dev/null and b/assets/voxygen/voxel/npc/peacock/female/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/peacock/male/chest.vox b/assets/voxygen/voxel/npc/peacock/male/chest.vox new file mode 100644 index 0000000..a4ce3d9 Binary files /dev/null and b/assets/voxygen/voxel/npc/peacock/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/peacock/male/head.vox b/assets/voxygen/voxel/npc/peacock/male/head.vox new file mode 100644 index 0000000..82de950 Binary files /dev/null and b/assets/voxygen/voxel/npc/peacock/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/peacock/male/leg_r.vox b/assets/voxygen/voxel/npc/peacock/male/leg_r.vox new file mode 100644 index 0000000..b879f93 Binary files /dev/null and b/assets/voxygen/voxel/npc/peacock/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/peacock/male/tail.vox b/assets/voxygen/voxel/npc/peacock/male/tail.vox new file mode 100644 index 0000000..32316db Binary files /dev/null and b/assets/voxygen/voxel/npc/peacock/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/peacock/male/wing_in_r.vox b/assets/voxygen/voxel/npc/peacock/male/wing_in_r.vox new file mode 100644 index 0000000..d1dda1e Binary files /dev/null and b/assets/voxygen/voxel/npc/peacock/male/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/peacock/male/wing_out_r.vox b/assets/voxygen/voxel/npc/peacock/male/wing_out_r.vox new file mode 100644 index 0000000..b310fee Binary files /dev/null and b/assets/voxygen/voxel/npc/peacock/male/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/penguin/male/chest.vox b/assets/voxygen/voxel/npc/penguin/male/chest.vox new file mode 100644 index 0000000..fc43610 Binary files /dev/null and b/assets/voxygen/voxel/npc/penguin/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/penguin/male/head.vox b/assets/voxygen/voxel/npc/penguin/male/head.vox new file mode 100644 index 0000000..44d478b Binary files /dev/null and b/assets/voxygen/voxel/npc/penguin/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/penguin/male/leg_r.vox b/assets/voxygen/voxel/npc/penguin/male/leg_r.vox new file mode 100644 index 0000000..2bcc57f Binary files /dev/null and b/assets/voxygen/voxel/npc/penguin/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/penguin/male/tail.vox b/assets/voxygen/voxel/npc/penguin/male/tail.vox new file mode 100644 index 0000000..8f44d07 Binary files /dev/null and b/assets/voxygen/voxel/npc/penguin/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/penguin/male/wing_in_r.vox b/assets/voxygen/voxel/npc/penguin/male/wing_in_r.vox new file mode 100644 index 0000000..f41acd9 Binary files /dev/null and b/assets/voxygen/voxel/npc/penguin/male/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/penguin/male/wing_out_r.vox b/assets/voxygen/voxel/npc/penguin/male/wing_out_r.vox new file mode 100644 index 0000000..4ae2cff Binary files /dev/null and b/assets/voxygen/voxel/npc/penguin/male/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/phoenix/male/beak.vox b/assets/voxygen/voxel/npc/phoenix/male/beak.vox new file mode 100644 index 0000000..bd6b55a Binary files /dev/null and b/assets/voxygen/voxel/npc/phoenix/male/beak.vox differ diff --git a/assets/voxygen/voxel/npc/phoenix/male/chest.vox b/assets/voxygen/voxel/npc/phoenix/male/chest.vox new file mode 100644 index 0000000..0dc30cb Binary files /dev/null and b/assets/voxygen/voxel/npc/phoenix/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/phoenix/male/foot_r.vox b/assets/voxygen/voxel/npc/phoenix/male/foot_r.vox new file mode 100644 index 0000000..eaf4ab2 Binary files /dev/null and b/assets/voxygen/voxel/npc/phoenix/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/phoenix/male/head.vox b/assets/voxygen/voxel/npc/phoenix/male/head.vox new file mode 100644 index 0000000..8e5640a Binary files /dev/null and b/assets/voxygen/voxel/npc/phoenix/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/phoenix/male/leg_r.vox b/assets/voxygen/voxel/npc/phoenix/male/leg_r.vox new file mode 100644 index 0000000..7e732b8 Binary files /dev/null and b/assets/voxygen/voxel/npc/phoenix/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/phoenix/male/neck.vox b/assets/voxygen/voxel/npc/phoenix/male/neck.vox new file mode 100644 index 0000000..7c991dd Binary files /dev/null and b/assets/voxygen/voxel/npc/phoenix/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/phoenix/male/tail_front.vox b/assets/voxygen/voxel/npc/phoenix/male/tail_front.vox new file mode 100644 index 0000000..3f95689 Binary files /dev/null and b/assets/voxygen/voxel/npc/phoenix/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/phoenix/male/tail_rear.vox b/assets/voxygen/voxel/npc/phoenix/male/tail_rear.vox new file mode 100644 index 0000000..306cba6 Binary files /dev/null and b/assets/voxygen/voxel/npc/phoenix/male/tail_rear.vox differ diff --git a/assets/voxygen/voxel/npc/phoenix/male/wing_in_r.vox b/assets/voxygen/voxel/npc/phoenix/male/wing_in_r.vox new file mode 100644 index 0000000..c1c6ff6 Binary files /dev/null and b/assets/voxygen/voxel/npc/phoenix/male/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/phoenix/male/wing_mid_r.vox b/assets/voxygen/voxel/npc/phoenix/male/wing_mid_r.vox new file mode 100644 index 0000000..6917189 Binary files /dev/null and b/assets/voxygen/voxel/npc/phoenix/male/wing_mid_r.vox differ diff --git a/assets/voxygen/voxel/npc/phoenix/male/wing_out_r.vox b/assets/voxygen/voxel/npc/phoenix/male/wing_out_r.vox new file mode 100644 index 0000000..62b8ab2 Binary files /dev/null and b/assets/voxygen/voxel/npc/phoenix/male/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/pig/male/chest.vox b/assets/voxygen/voxel/npc/pig/male/chest.vox new file mode 100644 index 0000000..93ef19d Binary files /dev/null and b/assets/voxygen/voxel/npc/pig/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/pig/male/foot_br.vox b/assets/voxygen/voxel/npc/pig/male/foot_br.vox new file mode 100644 index 0000000..add1488 Binary files /dev/null and b/assets/voxygen/voxel/npc/pig/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/pig/male/foot_fr.vox b/assets/voxygen/voxel/npc/pig/male/foot_fr.vox new file mode 100644 index 0000000..479eff6 Binary files /dev/null and b/assets/voxygen/voxel/npc/pig/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/pig/male/head.vox b/assets/voxygen/voxel/npc/pig/male/head.vox new file mode 100644 index 0000000..3b31117 Binary files /dev/null and b/assets/voxygen/voxel/npc/pig/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/pig/male/tail.vox b/assets/voxygen/voxel/npc/pig/male/tail.vox new file mode 100644 index 0000000..44b0475 Binary files /dev/null and b/assets/voxygen/voxel/npc/pig/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/piranha/male/chest.vox b/assets/voxygen/voxel/npc/piranha/male/chest.vox new file mode 100644 index 0000000..d852381 Binary files /dev/null and b/assets/voxygen/voxel/npc/piranha/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/piranha/male/fin.vox b/assets/voxygen/voxel/npc/piranha/male/fin.vox new file mode 100644 index 0000000..66e84be Binary files /dev/null and b/assets/voxygen/voxel/npc/piranha/male/fin.vox differ diff --git a/assets/voxygen/voxel/npc/piranha/male/tail.vox b/assets/voxygen/voxel/npc/piranha/male/tail.vox new file mode 100644 index 0000000..c2f3210 Binary files /dev/null and b/assets/voxygen/voxel/npc/piranha/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/porcupine/male/chest.vox b/assets/voxygen/voxel/npc/porcupine/male/chest.vox new file mode 100644 index 0000000..58d8623 Binary files /dev/null and b/assets/voxygen/voxel/npc/porcupine/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/porcupine/male/foot_br.vox b/assets/voxygen/voxel/npc/porcupine/male/foot_br.vox new file mode 100644 index 0000000..8fdd54a Binary files /dev/null and b/assets/voxygen/voxel/npc/porcupine/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/porcupine/male/foot_fr.vox b/assets/voxygen/voxel/npc/porcupine/male/foot_fr.vox new file mode 100644 index 0000000..b692d32 Binary files /dev/null and b/assets/voxygen/voxel/npc/porcupine/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/porcupine/male/head.vox b/assets/voxygen/voxel/npc/porcupine/male/head.vox new file mode 100644 index 0000000..33a36c0 Binary files /dev/null and b/assets/voxygen/voxel/npc/porcupine/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/puffin/male/chest.vox b/assets/voxygen/voxel/npc/puffin/male/chest.vox new file mode 100644 index 0000000..5e06e3e Binary files /dev/null and b/assets/voxygen/voxel/npc/puffin/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/puffin/male/head.vox b/assets/voxygen/voxel/npc/puffin/male/head.vox new file mode 100644 index 0000000..78f7d0d Binary files /dev/null and b/assets/voxygen/voxel/npc/puffin/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/puffin/male/leg_r.vox b/assets/voxygen/voxel/npc/puffin/male/leg_r.vox new file mode 100644 index 0000000..169e6f0 Binary files /dev/null and b/assets/voxygen/voxel/npc/puffin/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/puffin/male/tail.vox b/assets/voxygen/voxel/npc/puffin/male/tail.vox new file mode 100644 index 0000000..3b3009c Binary files /dev/null and b/assets/voxygen/voxel/npc/puffin/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/puffin/male/wing_in_r.vox b/assets/voxygen/voxel/npc/puffin/male/wing_in_r.vox new file mode 100644 index 0000000..a509685 Binary files /dev/null and b/assets/voxygen/voxel/npc/puffin/male/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/puffin/male/wing_out_r.vox b/assets/voxygen/voxel/npc/puffin/male/wing_out_r.vox new file mode 100644 index 0000000..2ad91a5 Binary files /dev/null and b/assets/voxygen/voxel/npc/puffin/male/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/purple_legoom/chest.vox b/assets/voxygen/voxel/npc/purple_legoom/chest.vox new file mode 100644 index 0000000..488ff2f Binary files /dev/null and b/assets/voxygen/voxel/npc/purple_legoom/chest.vox differ diff --git a/assets/voxygen/voxel/npc/purple_legoom/foot_r.vox b/assets/voxygen/voxel/npc/purple_legoom/foot_r.vox new file mode 100644 index 0000000..65f144b Binary files /dev/null and b/assets/voxygen/voxel/npc/purple_legoom/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/purple_legoom/hand_r.vox b/assets/voxygen/voxel/npc/purple_legoom/hand_r.vox new file mode 100644 index 0000000..89535b0 Binary files /dev/null and b/assets/voxygen/voxel/npc/purple_legoom/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/purple_legoom/head.vox b/assets/voxygen/voxel/npc/purple_legoom/head.vox new file mode 100644 index 0000000..7e4c93c Binary files /dev/null and b/assets/voxygen/voxel/npc/purple_legoom/head.vox differ diff --git a/assets/voxygen/voxel/npc/purple_legoom/pants.vox b/assets/voxygen/voxel/npc/purple_legoom/pants.vox new file mode 100644 index 0000000..b089b9b Binary files /dev/null and b/assets/voxygen/voxel/npc/purple_legoom/pants.vox differ diff --git a/assets/voxygen/voxel/npc/quokka/male/chest.vox b/assets/voxygen/voxel/npc/quokka/male/chest.vox new file mode 100644 index 0000000..e261b68 Binary files /dev/null and b/assets/voxygen/voxel/npc/quokka/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/quokka/male/foot_br.vox b/assets/voxygen/voxel/npc/quokka/male/foot_br.vox new file mode 100644 index 0000000..cd625bf Binary files /dev/null and b/assets/voxygen/voxel/npc/quokka/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/quokka/male/foot_fr.vox b/assets/voxygen/voxel/npc/quokka/male/foot_fr.vox new file mode 100644 index 0000000..d1afc05 Binary files /dev/null and b/assets/voxygen/voxel/npc/quokka/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/quokka/male/head.vox b/assets/voxygen/voxel/npc/quokka/male/head.vox new file mode 100644 index 0000000..c177727 Binary files /dev/null and b/assets/voxygen/voxel/npc/quokka/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/quokka/male/tail.vox b/assets/voxygen/voxel/npc/quokka/male/tail.vox new file mode 100644 index 0000000..0c04165 Binary files /dev/null and b/assets/voxygen/voxel/npc/quokka/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/rabbit/male/chest.vox b/assets/voxygen/voxel/npc/rabbit/male/chest.vox new file mode 100644 index 0000000..0397cf1 Binary files /dev/null and b/assets/voxygen/voxel/npc/rabbit/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/rabbit/male/foot_br.vox b/assets/voxygen/voxel/npc/rabbit/male/foot_br.vox new file mode 100644 index 0000000..0748227 Binary files /dev/null and b/assets/voxygen/voxel/npc/rabbit/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/rabbit/male/foot_fr.vox b/assets/voxygen/voxel/npc/rabbit/male/foot_fr.vox new file mode 100644 index 0000000..e0a456c Binary files /dev/null and b/assets/voxygen/voxel/npc/rabbit/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/rabbit/male/head.vox b/assets/voxygen/voxel/npc/rabbit/male/head.vox new file mode 100644 index 0000000..627fc69 Binary files /dev/null and b/assets/voxygen/voxel/npc/rabbit/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/rabbit/male/tail.vox b/assets/voxygen/voxel/npc/rabbit/male/tail.vox new file mode 100644 index 0000000..ec607ce Binary files /dev/null and b/assets/voxygen/voxel/npc/rabbit/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/raccoon/male/chest.vox b/assets/voxygen/voxel/npc/raccoon/male/chest.vox new file mode 100644 index 0000000..ee30dfc Binary files /dev/null and b/assets/voxygen/voxel/npc/raccoon/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/raccoon/male/foot_br.vox b/assets/voxygen/voxel/npc/raccoon/male/foot_br.vox new file mode 100644 index 0000000..c2c76f2 Binary files /dev/null and b/assets/voxygen/voxel/npc/raccoon/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/raccoon/male/foot_fr.vox b/assets/voxygen/voxel/npc/raccoon/male/foot_fr.vox new file mode 100644 index 0000000..f5137e6 Binary files /dev/null and b/assets/voxygen/voxel/npc/raccoon/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/raccoon/male/head.vox b/assets/voxygen/voxel/npc/raccoon/male/head.vox new file mode 100644 index 0000000..5cef48d Binary files /dev/null and b/assets/voxygen/voxel/npc/raccoon/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/raccoon/male/tail.vox b/assets/voxygen/voxel/npc/raccoon/male/tail.vox new file mode 100644 index 0000000..4fd0f3e Binary files /dev/null and b/assets/voxygen/voxel/npc/raccoon/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/raptor_sand/male/chest_back.vox b/assets/voxygen/voxel/npc/raptor_sand/male/chest_back.vox new file mode 100644 index 0000000..e371654 Binary files /dev/null and b/assets/voxygen/voxel/npc/raptor_sand/male/chest_back.vox differ diff --git a/assets/voxygen/voxel/npc/raptor_sand/male/chest_front.vox b/assets/voxygen/voxel/npc/raptor_sand/male/chest_front.vox new file mode 100644 index 0000000..2163f90 Binary files /dev/null and b/assets/voxygen/voxel/npc/raptor_sand/male/chest_front.vox differ diff --git a/assets/voxygen/voxel/npc/raptor_sand/male/foot_r.vox b/assets/voxygen/voxel/npc/raptor_sand/male/foot_r.vox new file mode 100644 index 0000000..fd46205 Binary files /dev/null and b/assets/voxygen/voxel/npc/raptor_sand/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/raptor_sand/male/hand_r.vox b/assets/voxygen/voxel/npc/raptor_sand/male/hand_r.vox new file mode 100644 index 0000000..a1b95a9 Binary files /dev/null and b/assets/voxygen/voxel/npc/raptor_sand/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/raptor_sand/male/head.vox b/assets/voxygen/voxel/npc/raptor_sand/male/head.vox new file mode 100644 index 0000000..b42e896 Binary files /dev/null and b/assets/voxygen/voxel/npc/raptor_sand/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/raptor_sand/male/jaw.vox b/assets/voxygen/voxel/npc/raptor_sand/male/jaw.vox new file mode 100644 index 0000000..f98971a Binary files /dev/null and b/assets/voxygen/voxel/npc/raptor_sand/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/raptor_sand/male/leg_r.vox b/assets/voxygen/voxel/npc/raptor_sand/male/leg_r.vox new file mode 100644 index 0000000..d0ebb75 Binary files /dev/null and b/assets/voxygen/voxel/npc/raptor_sand/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/raptor_sand/male/neck.vox b/assets/voxygen/voxel/npc/raptor_sand/male/neck.vox new file mode 100644 index 0000000..3985b79 Binary files /dev/null and b/assets/voxygen/voxel/npc/raptor_sand/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/raptor_sand/male/tail_back.vox b/assets/voxygen/voxel/npc/raptor_sand/male/tail_back.vox new file mode 100644 index 0000000..ba7dc07 Binary files /dev/null and b/assets/voxygen/voxel/npc/raptor_sand/male/tail_back.vox differ diff --git a/assets/voxygen/voxel/npc/raptor_sand/male/tail_front.vox b/assets/voxygen/voxel/npc/raptor_sand/male/tail_front.vox new file mode 100644 index 0000000..038605d Binary files /dev/null and b/assets/voxygen/voxel/npc/raptor_sand/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/raptor_snow/male/chest_back.vox b/assets/voxygen/voxel/npc/raptor_snow/male/chest_back.vox new file mode 100644 index 0000000..1b5b249 Binary files /dev/null and b/assets/voxygen/voxel/npc/raptor_snow/male/chest_back.vox differ diff --git a/assets/voxygen/voxel/npc/raptor_snow/male/chest_front.vox b/assets/voxygen/voxel/npc/raptor_snow/male/chest_front.vox new file mode 100644 index 0000000..469d1e0 Binary files /dev/null and b/assets/voxygen/voxel/npc/raptor_snow/male/chest_front.vox differ diff --git a/assets/voxygen/voxel/npc/raptor_snow/male/foot_r.vox b/assets/voxygen/voxel/npc/raptor_snow/male/foot_r.vox new file mode 100644 index 0000000..82805c7 Binary files /dev/null and b/assets/voxygen/voxel/npc/raptor_snow/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/raptor_snow/male/hand_r.vox b/assets/voxygen/voxel/npc/raptor_snow/male/hand_r.vox new file mode 100644 index 0000000..62ee6df Binary files /dev/null and b/assets/voxygen/voxel/npc/raptor_snow/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/raptor_snow/male/head.vox b/assets/voxygen/voxel/npc/raptor_snow/male/head.vox new file mode 100644 index 0000000..8a6dbc4 Binary files /dev/null and b/assets/voxygen/voxel/npc/raptor_snow/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/raptor_snow/male/jaw.vox b/assets/voxygen/voxel/npc/raptor_snow/male/jaw.vox new file mode 100644 index 0000000..0bdbbe0 Binary files /dev/null and b/assets/voxygen/voxel/npc/raptor_snow/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/raptor_snow/male/leg_r.vox b/assets/voxygen/voxel/npc/raptor_snow/male/leg_r.vox new file mode 100644 index 0000000..26f9371 Binary files /dev/null and b/assets/voxygen/voxel/npc/raptor_snow/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/raptor_snow/male/neck.vox b/assets/voxygen/voxel/npc/raptor_snow/male/neck.vox new file mode 100644 index 0000000..c701a17 Binary files /dev/null and b/assets/voxygen/voxel/npc/raptor_snow/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/raptor_snow/male/tail_back.vox b/assets/voxygen/voxel/npc/raptor_snow/male/tail_back.vox new file mode 100644 index 0000000..9175402 Binary files /dev/null and b/assets/voxygen/voxel/npc/raptor_snow/male/tail_back.vox differ diff --git a/assets/voxygen/voxel/npc/raptor_snow/male/tail_front.vox b/assets/voxygen/voxel/npc/raptor_snow/male/tail_front.vox new file mode 100644 index 0000000..e8b0c59 Binary files /dev/null and b/assets/voxygen/voxel/npc/raptor_snow/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/raptor_wood/male/chest_back.vox b/assets/voxygen/voxel/npc/raptor_wood/male/chest_back.vox new file mode 100644 index 0000000..44af58f Binary files /dev/null and b/assets/voxygen/voxel/npc/raptor_wood/male/chest_back.vox differ diff --git a/assets/voxygen/voxel/npc/raptor_wood/male/chest_front.vox b/assets/voxygen/voxel/npc/raptor_wood/male/chest_front.vox new file mode 100644 index 0000000..c7d26c6 Binary files /dev/null and b/assets/voxygen/voxel/npc/raptor_wood/male/chest_front.vox differ diff --git a/assets/voxygen/voxel/npc/raptor_wood/male/foot_r.vox b/assets/voxygen/voxel/npc/raptor_wood/male/foot_r.vox new file mode 100644 index 0000000..eee700a Binary files /dev/null and b/assets/voxygen/voxel/npc/raptor_wood/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/raptor_wood/male/hand_r.vox b/assets/voxygen/voxel/npc/raptor_wood/male/hand_r.vox new file mode 100644 index 0000000..eb52d40 Binary files /dev/null and b/assets/voxygen/voxel/npc/raptor_wood/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/raptor_wood/male/head.vox b/assets/voxygen/voxel/npc/raptor_wood/male/head.vox new file mode 100644 index 0000000..8f72d3e Binary files /dev/null and b/assets/voxygen/voxel/npc/raptor_wood/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/raptor_wood/male/jaw.vox b/assets/voxygen/voxel/npc/raptor_wood/male/jaw.vox new file mode 100644 index 0000000..4d6587d Binary files /dev/null and b/assets/voxygen/voxel/npc/raptor_wood/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/raptor_wood/male/leg_r.vox b/assets/voxygen/voxel/npc/raptor_wood/male/leg_r.vox new file mode 100644 index 0000000..6440d82 Binary files /dev/null and b/assets/voxygen/voxel/npc/raptor_wood/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/raptor_wood/male/neck.vox b/assets/voxygen/voxel/npc/raptor_wood/male/neck.vox new file mode 100644 index 0000000..c49009f Binary files /dev/null and b/assets/voxygen/voxel/npc/raptor_wood/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/raptor_wood/male/tail_back.vox b/assets/voxygen/voxel/npc/raptor_wood/male/tail_back.vox new file mode 100644 index 0000000..4a3f894 Binary files /dev/null and b/assets/voxygen/voxel/npc/raptor_wood/male/tail_back.vox differ diff --git a/assets/voxygen/voxel/npc/raptor_wood/male/tail_front.vox b/assets/voxygen/voxel/npc/raptor_wood/male/tail_front.vox new file mode 100644 index 0000000..c11dd84 Binary files /dev/null and b/assets/voxygen/voxel/npc/raptor_wood/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/rat/male/chest.vox b/assets/voxygen/voxel/npc/rat/male/chest.vox new file mode 100644 index 0000000..3f8b4ea Binary files /dev/null and b/assets/voxygen/voxel/npc/rat/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/rat/male/foot_br.vox b/assets/voxygen/voxel/npc/rat/male/foot_br.vox new file mode 100644 index 0000000..2b5ded4 Binary files /dev/null and b/assets/voxygen/voxel/npc/rat/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/rat/male/foot_fr.vox b/assets/voxygen/voxel/npc/rat/male/foot_fr.vox new file mode 100644 index 0000000..9796d86 Binary files /dev/null and b/assets/voxygen/voxel/npc/rat/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/rat/male/head.vox b/assets/voxygen/voxel/npc/rat/male/head.vox new file mode 100644 index 0000000..69031c8 Binary files /dev/null and b/assets/voxygen/voxel/npc/rat/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/rat/male/tail.vox b/assets/voxygen/voxel/npc/rat/male/tail.vox new file mode 100644 index 0000000..faafe67 Binary files /dev/null and b/assets/voxygen/voxel/npc/rat/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/red_legoom/chest.vox b/assets/voxygen/voxel/npc/red_legoom/chest.vox new file mode 100644 index 0000000..9bf85da Binary files /dev/null and b/assets/voxygen/voxel/npc/red_legoom/chest.vox differ diff --git a/assets/voxygen/voxel/npc/red_legoom/foot_r.vox b/assets/voxygen/voxel/npc/red_legoom/foot_r.vox new file mode 100644 index 0000000..98b5627 Binary files /dev/null and b/assets/voxygen/voxel/npc/red_legoom/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/red_legoom/hand_r.vox b/assets/voxygen/voxel/npc/red_legoom/hand_r.vox new file mode 100644 index 0000000..f872499 Binary files /dev/null and b/assets/voxygen/voxel/npc/red_legoom/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/red_legoom/head.vox b/assets/voxygen/voxel/npc/red_legoom/head.vox new file mode 100644 index 0000000..72bd43b Binary files /dev/null and b/assets/voxygen/voxel/npc/red_legoom/head.vox differ diff --git a/assets/voxygen/voxel/npc/red_legoom/pants.vox b/assets/voxygen/voxel/npc/red_legoom/pants.vox new file mode 100644 index 0000000..e9d3206 Binary files /dev/null and b/assets/voxygen/voxel/npc/red_legoom/pants.vox differ diff --git a/assets/voxygen/voxel/npc/reddragon/male/chest_front.vox b/assets/voxygen/voxel/npc/reddragon/male/chest_front.vox new file mode 100644 index 0000000..1adaa0b Binary files /dev/null and b/assets/voxygen/voxel/npc/reddragon/male/chest_front.vox differ diff --git a/assets/voxygen/voxel/npc/reddragon/male/chest_rear.vox b/assets/voxygen/voxel/npc/reddragon/male/chest_rear.vox new file mode 100644 index 0000000..cc013a9 Binary files /dev/null and b/assets/voxygen/voxel/npc/reddragon/male/chest_rear.vox differ diff --git a/assets/voxygen/voxel/npc/reddragon/male/foot_bl.vox b/assets/voxygen/voxel/npc/reddragon/male/foot_bl.vox new file mode 100644 index 0000000..019dc0e Binary files /dev/null and b/assets/voxygen/voxel/npc/reddragon/male/foot_bl.vox differ diff --git a/assets/voxygen/voxel/npc/reddragon/male/foot_br.vox b/assets/voxygen/voxel/npc/reddragon/male/foot_br.vox new file mode 100644 index 0000000..86be0d6 Binary files /dev/null and b/assets/voxygen/voxel/npc/reddragon/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/reddragon/male/foot_fl.vox b/assets/voxygen/voxel/npc/reddragon/male/foot_fl.vox new file mode 100644 index 0000000..5b4d8fd Binary files /dev/null and b/assets/voxygen/voxel/npc/reddragon/male/foot_fl.vox differ diff --git a/assets/voxygen/voxel/npc/reddragon/male/foot_fr.vox b/assets/voxygen/voxel/npc/reddragon/male/foot_fr.vox new file mode 100644 index 0000000..f108563 Binary files /dev/null and b/assets/voxygen/voxel/npc/reddragon/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/reddragon/male/head_lower.vox b/assets/voxygen/voxel/npc/reddragon/male/head_lower.vox new file mode 100644 index 0000000..1eeec85 Binary files /dev/null and b/assets/voxygen/voxel/npc/reddragon/male/head_lower.vox differ diff --git a/assets/voxygen/voxel/npc/reddragon/male/head_upper.vox b/assets/voxygen/voxel/npc/reddragon/male/head_upper.vox new file mode 100644 index 0000000..c317ef3 Binary files /dev/null and b/assets/voxygen/voxel/npc/reddragon/male/head_upper.vox differ diff --git a/assets/voxygen/voxel/npc/reddragon/male/jaw.vox b/assets/voxygen/voxel/npc/reddragon/male/jaw.vox new file mode 100644 index 0000000..e0c7da0 Binary files /dev/null and b/assets/voxygen/voxel/npc/reddragon/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/reddragon/male/tail_front.vox b/assets/voxygen/voxel/npc/reddragon/male/tail_front.vox new file mode 100644 index 0000000..873f65d Binary files /dev/null and b/assets/voxygen/voxel/npc/reddragon/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/reddragon/male/tail_rear.vox b/assets/voxygen/voxel/npc/reddragon/male/tail_rear.vox new file mode 100644 index 0000000..9c1972d Binary files /dev/null and b/assets/voxygen/voxel/npc/reddragon/male/tail_rear.vox differ diff --git a/assets/voxygen/voxel/npc/reddragon/male/wing_in_l.vox b/assets/voxygen/voxel/npc/reddragon/male/wing_in_l.vox new file mode 100644 index 0000000..1263cc9 Binary files /dev/null and b/assets/voxygen/voxel/npc/reddragon/male/wing_in_l.vox differ diff --git a/assets/voxygen/voxel/npc/reddragon/male/wing_in_r.vox b/assets/voxygen/voxel/npc/reddragon/male/wing_in_r.vox new file mode 100644 index 0000000..30c4c14 Binary files /dev/null and b/assets/voxygen/voxel/npc/reddragon/male/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/reddragon/male/wing_out_l.vox b/assets/voxygen/voxel/npc/reddragon/male/wing_out_l.vox new file mode 100644 index 0000000..dcca02b Binary files /dev/null and b/assets/voxygen/voxel/npc/reddragon/male/wing_out_l.vox differ diff --git a/assets/voxygen/voxel/npc/reddragon/male/wing_out_r.vox b/assets/voxygen/voxel/npc/reddragon/male/wing_out_r.vox new file mode 100644 index 0000000..00e1574 Binary files /dev/null and b/assets/voxygen/voxel/npc/reddragon/male/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/reefsnapper/male/chest.vox b/assets/voxygen/voxel/npc/reefsnapper/male/chest.vox new file mode 100644 index 0000000..b3d71ad Binary files /dev/null and b/assets/voxygen/voxel/npc/reefsnapper/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/reefsnapper/male/foot_br.vox b/assets/voxygen/voxel/npc/reefsnapper/male/foot_br.vox new file mode 100644 index 0000000..03971f9 Binary files /dev/null and b/assets/voxygen/voxel/npc/reefsnapper/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/reefsnapper/male/foot_fr.vox b/assets/voxygen/voxel/npc/reefsnapper/male/foot_fr.vox new file mode 100644 index 0000000..ada71c2 Binary files /dev/null and b/assets/voxygen/voxel/npc/reefsnapper/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/reefsnapper/male/head_lower.vox b/assets/voxygen/voxel/npc/reefsnapper/male/head_lower.vox new file mode 100644 index 0000000..ee2776c Binary files /dev/null and b/assets/voxygen/voxel/npc/reefsnapper/male/head_lower.vox differ diff --git a/assets/voxygen/voxel/npc/reefsnapper/male/head_upper.vox b/assets/voxygen/voxel/npc/reefsnapper/male/head_upper.vox new file mode 100644 index 0000000..dfbf735 Binary files /dev/null and b/assets/voxygen/voxel/npc/reefsnapper/male/head_upper.vox differ diff --git a/assets/voxygen/voxel/npc/reefsnapper/male/jaw.vox b/assets/voxygen/voxel/npc/reefsnapper/male/jaw.vox new file mode 100644 index 0000000..18b6bde Binary files /dev/null and b/assets/voxygen/voxel/npc/reefsnapper/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/reefsnapper/male/tail_front.vox b/assets/voxygen/voxel/npc/reefsnapper/male/tail_front.vox new file mode 100644 index 0000000..80879a5 Binary files /dev/null and b/assets/voxygen/voxel/npc/reefsnapper/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/reefsnapper/male/tail_rear.vox b/assets/voxygen/voxel/npc/reefsnapper/male/tail_rear.vox new file mode 100644 index 0000000..88041cc Binary files /dev/null and b/assets/voxygen/voxel/npc/reefsnapper/male/tail_rear.vox differ diff --git a/assets/voxygen/voxel/npc/roc/male/beak.vox b/assets/voxygen/voxel/npc/roc/male/beak.vox new file mode 100644 index 0000000..ed60fe6 Binary files /dev/null and b/assets/voxygen/voxel/npc/roc/male/beak.vox differ diff --git a/assets/voxygen/voxel/npc/roc/male/chest.vox b/assets/voxygen/voxel/npc/roc/male/chest.vox new file mode 100644 index 0000000..ce1884a Binary files /dev/null and b/assets/voxygen/voxel/npc/roc/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/roc/male/foot_r.vox b/assets/voxygen/voxel/npc/roc/male/foot_r.vox new file mode 100644 index 0000000..d67a50a Binary files /dev/null and b/assets/voxygen/voxel/npc/roc/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/roc/male/head.vox b/assets/voxygen/voxel/npc/roc/male/head.vox new file mode 100644 index 0000000..73d74d9 Binary files /dev/null and b/assets/voxygen/voxel/npc/roc/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/roc/male/leg_r.vox b/assets/voxygen/voxel/npc/roc/male/leg_r.vox new file mode 100644 index 0000000..205b838 Binary files /dev/null and b/assets/voxygen/voxel/npc/roc/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/roc/male/neck.vox b/assets/voxygen/voxel/npc/roc/male/neck.vox new file mode 100644 index 0000000..a8244bd Binary files /dev/null and b/assets/voxygen/voxel/npc/roc/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/roc/male/tail_front.vox b/assets/voxygen/voxel/npc/roc/male/tail_front.vox new file mode 100644 index 0000000..2172253 Binary files /dev/null and b/assets/voxygen/voxel/npc/roc/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/roc/male/tail_rear.vox b/assets/voxygen/voxel/npc/roc/male/tail_rear.vox new file mode 100644 index 0000000..f48db57 Binary files /dev/null and b/assets/voxygen/voxel/npc/roc/male/tail_rear.vox differ diff --git a/assets/voxygen/voxel/npc/roc/male/wing_in_r.vox b/assets/voxygen/voxel/npc/roc/male/wing_in_r.vox new file mode 100644 index 0000000..26d51f7 Binary files /dev/null and b/assets/voxygen/voxel/npc/roc/male/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/roc/male/wing_mid_r.vox b/assets/voxygen/voxel/npc/roc/male/wing_mid_r.vox new file mode 100644 index 0000000..40026dc Binary files /dev/null and b/assets/voxygen/voxel/npc/roc/male/wing_mid_r.vox differ diff --git a/assets/voxygen/voxel/npc/roc/male/wing_out_r.vox b/assets/voxygen/voxel/npc/roc/male/wing_out_r.vox new file mode 100644 index 0000000..53b99d5 Binary files /dev/null and b/assets/voxygen/voxel/npc/roc/male/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/rocksnapper/male/chest.vox b/assets/voxygen/voxel/npc/rocksnapper/male/chest.vox new file mode 100644 index 0000000..4527c0d Binary files /dev/null and b/assets/voxygen/voxel/npc/rocksnapper/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/rocksnapper/male/foot_br.vox b/assets/voxygen/voxel/npc/rocksnapper/male/foot_br.vox new file mode 100644 index 0000000..0d307e9 Binary files /dev/null and b/assets/voxygen/voxel/npc/rocksnapper/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/rocksnapper/male/foot_fr.vox b/assets/voxygen/voxel/npc/rocksnapper/male/foot_fr.vox new file mode 100644 index 0000000..6f6c230 Binary files /dev/null and b/assets/voxygen/voxel/npc/rocksnapper/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/rocksnapper/male/head_lower.vox b/assets/voxygen/voxel/npc/rocksnapper/male/head_lower.vox new file mode 100644 index 0000000..90971df Binary files /dev/null and b/assets/voxygen/voxel/npc/rocksnapper/male/head_lower.vox differ diff --git a/assets/voxygen/voxel/npc/rocksnapper/male/head_upper.vox b/assets/voxygen/voxel/npc/rocksnapper/male/head_upper.vox new file mode 100644 index 0000000..4dce04a Binary files /dev/null and b/assets/voxygen/voxel/npc/rocksnapper/male/head_upper.vox differ diff --git a/assets/voxygen/voxel/npc/rocksnapper/male/jaw.vox b/assets/voxygen/voxel/npc/rocksnapper/male/jaw.vox new file mode 100644 index 0000000..45012a2 Binary files /dev/null and b/assets/voxygen/voxel/npc/rocksnapper/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/rocksnapper/male/tail_front.vox b/assets/voxygen/voxel/npc/rocksnapper/male/tail_front.vox new file mode 100644 index 0000000..6579ed7 Binary files /dev/null and b/assets/voxygen/voxel/npc/rocksnapper/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/rocksnapper/male/tail_rear.vox b/assets/voxygen/voxel/npc/rocksnapper/male/tail_rear.vox new file mode 100644 index 0000000..00daca5 Binary files /dev/null and b/assets/voxygen/voxel/npc/rocksnapper/male/tail_rear.vox differ diff --git a/assets/voxygen/voxel/npc/rootsnapper/male/chest.vox b/assets/voxygen/voxel/npc/rootsnapper/male/chest.vox new file mode 100644 index 0000000..b56a17d Binary files /dev/null and b/assets/voxygen/voxel/npc/rootsnapper/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/rootsnapper/male/foot_br.vox b/assets/voxygen/voxel/npc/rootsnapper/male/foot_br.vox new file mode 100644 index 0000000..a45be48 Binary files /dev/null and b/assets/voxygen/voxel/npc/rootsnapper/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/rootsnapper/male/foot_fr.vox b/assets/voxygen/voxel/npc/rootsnapper/male/foot_fr.vox new file mode 100644 index 0000000..b390ec2 Binary files /dev/null and b/assets/voxygen/voxel/npc/rootsnapper/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/rootsnapper/male/head_lower.vox b/assets/voxygen/voxel/npc/rootsnapper/male/head_lower.vox new file mode 100644 index 0000000..3f01f65 Binary files /dev/null and b/assets/voxygen/voxel/npc/rootsnapper/male/head_lower.vox differ diff --git a/assets/voxygen/voxel/npc/rootsnapper/male/head_upper.vox b/assets/voxygen/voxel/npc/rootsnapper/male/head_upper.vox new file mode 100644 index 0000000..a4cbee7 Binary files /dev/null and b/assets/voxygen/voxel/npc/rootsnapper/male/head_upper.vox differ diff --git a/assets/voxygen/voxel/npc/rootsnapper/male/jaw.vox b/assets/voxygen/voxel/npc/rootsnapper/male/jaw.vox new file mode 100644 index 0000000..e2a4c2f Binary files /dev/null and b/assets/voxygen/voxel/npc/rootsnapper/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/rootsnapper/male/tail_front.vox b/assets/voxygen/voxel/npc/rootsnapper/male/tail_front.vox new file mode 100644 index 0000000..c90d04b Binary files /dev/null and b/assets/voxygen/voxel/npc/rootsnapper/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/rootsnapper/male/tail_rear.vox b/assets/voxygen/voxel/npc/rootsnapper/male/tail_rear.vox new file mode 100644 index 0000000..3ebde06 Binary files /dev/null and b/assets/voxygen/voxel/npc/rootsnapper/male/tail_rear.vox differ diff --git a/assets/voxygen/voxel/npc/roshwalr/female/head.vox b/assets/voxygen/voxel/npc/roshwalr/female/head.vox new file mode 100644 index 0000000..515aa55 Binary files /dev/null and b/assets/voxygen/voxel/npc/roshwalr/female/head.vox differ diff --git a/assets/voxygen/voxel/npc/roshwalr/male/foot_br.vox b/assets/voxygen/voxel/npc/roshwalr/male/foot_br.vox new file mode 100644 index 0000000..c536dbe Binary files /dev/null and b/assets/voxygen/voxel/npc/roshwalr/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/roshwalr/male/foot_fr.vox b/assets/voxygen/voxel/npc/roshwalr/male/foot_fr.vox new file mode 100644 index 0000000..f2fc50a Binary files /dev/null and b/assets/voxygen/voxel/npc/roshwalr/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/roshwalr/male/head.vox b/assets/voxygen/voxel/npc/roshwalr/male/head.vox new file mode 100644 index 0000000..93cb38b Binary files /dev/null and b/assets/voxygen/voxel/npc/roshwalr/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/roshwalr/male/jaw.vox b/assets/voxygen/voxel/npc/roshwalr/male/jaw.vox new file mode 100644 index 0000000..5e22ed5 Binary files /dev/null and b/assets/voxygen/voxel/npc/roshwalr/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/roshwalr/male/leg_br.vox b/assets/voxygen/voxel/npc/roshwalr/male/leg_br.vox new file mode 100644 index 0000000..7a6f6af Binary files /dev/null and b/assets/voxygen/voxel/npc/roshwalr/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/roshwalr/male/leg_fr.vox b/assets/voxygen/voxel/npc/roshwalr/male/leg_fr.vox new file mode 100644 index 0000000..01be49f Binary files /dev/null and b/assets/voxygen/voxel/npc/roshwalr/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/roshwalr/male/neck.vox b/assets/voxygen/voxel/npc/roshwalr/male/neck.vox new file mode 100644 index 0000000..d843ed4 Binary files /dev/null and b/assets/voxygen/voxel/npc/roshwalr/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/roshwalr/male/tail.vox b/assets/voxygen/voxel/npc/roshwalr/male/tail.vox new file mode 100644 index 0000000..b1e9309 Binary files /dev/null and b/assets/voxygen/voxel/npc/roshwalr/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/roshwalr/male/torso_back.vox b/assets/voxygen/voxel/npc/roshwalr/male/torso_back.vox new file mode 100644 index 0000000..e573d6e Binary files /dev/null and b/assets/voxygen/voxel/npc/roshwalr/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/roshwalr/male/torso_front.vox b/assets/voxygen/voxel/npc/roshwalr/male/torso_front.vox new file mode 100644 index 0000000..de12233 Binary files /dev/null and b/assets/voxygen/voxel/npc/roshwalr/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/roshwalr/male/vacation.vox b/assets/voxygen/voxel/npc/roshwalr/male/vacation.vox new file mode 100644 index 0000000..515aa55 Binary files /dev/null and b/assets/voxygen/voxel/npc/roshwalr/male/vacation.vox differ diff --git a/assets/voxygen/voxel/npc/saber/male/ears.vox b/assets/voxygen/voxel/npc/saber/male/ears.vox new file mode 100644 index 0000000..3910750 Binary files /dev/null and b/assets/voxygen/voxel/npc/saber/male/ears.vox differ diff --git a/assets/voxygen/voxel/npc/saber/male/foot_br.vox b/assets/voxygen/voxel/npc/saber/male/foot_br.vox new file mode 100644 index 0000000..e228a61 Binary files /dev/null and b/assets/voxygen/voxel/npc/saber/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/saber/male/foot_fr.vox b/assets/voxygen/voxel/npc/saber/male/foot_fr.vox new file mode 100644 index 0000000..d546527 Binary files /dev/null and b/assets/voxygen/voxel/npc/saber/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/saber/male/head.vox b/assets/voxygen/voxel/npc/saber/male/head.vox new file mode 100644 index 0000000..0cfecd9 Binary files /dev/null and b/assets/voxygen/voxel/npc/saber/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/saber/male/jaw.vox b/assets/voxygen/voxel/npc/saber/male/jaw.vox new file mode 100644 index 0000000..719e2f3 Binary files /dev/null and b/assets/voxygen/voxel/npc/saber/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/saber/male/leg_br.vox b/assets/voxygen/voxel/npc/saber/male/leg_br.vox new file mode 100644 index 0000000..ef9c33e Binary files /dev/null and b/assets/voxygen/voxel/npc/saber/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/saber/male/leg_fr.vox b/assets/voxygen/voxel/npc/saber/male/leg_fr.vox new file mode 100644 index 0000000..40afbcb Binary files /dev/null and b/assets/voxygen/voxel/npc/saber/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/saber/male/neck.vox b/assets/voxygen/voxel/npc/saber/male/neck.vox new file mode 100644 index 0000000..d8d1ca0 Binary files /dev/null and b/assets/voxygen/voxel/npc/saber/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/saber/male/tail.vox b/assets/voxygen/voxel/npc/saber/male/tail.vox new file mode 100644 index 0000000..9783457 Binary files /dev/null and b/assets/voxygen/voxel/npc/saber/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/saber/male/torso_back.vox b/assets/voxygen/voxel/npc/saber/male/torso_back.vox new file mode 100644 index 0000000..130e581 Binary files /dev/null and b/assets/voxygen/voxel/npc/saber/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/saber/male/torso_front.vox b/assets/voxygen/voxel/npc/saber/male/torso_front.vox new file mode 100644 index 0000000..713ea77 Binary files /dev/null and b/assets/voxygen/voxel/npc/saber/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/sahagin/sniper/chest.vox b/assets/voxygen/voxel/npc/sahagin/sniper/chest.vox new file mode 100644 index 0000000..7a68135 Binary files /dev/null and b/assets/voxygen/voxel/npc/sahagin/sniper/chest.vox differ diff --git a/assets/voxygen/voxel/npc/sahagin/sniper/foot_r.vox b/assets/voxygen/voxel/npc/sahagin/sniper/foot_r.vox new file mode 100644 index 0000000..e5bd098 Binary files /dev/null and b/assets/voxygen/voxel/npc/sahagin/sniper/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/sahagin/sniper/hand_r.vox b/assets/voxygen/voxel/npc/sahagin/sniper/hand_r.vox new file mode 100644 index 0000000..1264267 Binary files /dev/null and b/assets/voxygen/voxel/npc/sahagin/sniper/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/sahagin/sniper/head.vox b/assets/voxygen/voxel/npc/sahagin/sniper/head.vox new file mode 100644 index 0000000..ff7ed03 Binary files /dev/null and b/assets/voxygen/voxel/npc/sahagin/sniper/head.vox differ diff --git a/assets/voxygen/voxel/npc/sahagin/sniper/pants.vox b/assets/voxygen/voxel/npc/sahagin/sniper/pants.vox new file mode 100644 index 0000000..9533e57 Binary files /dev/null and b/assets/voxygen/voxel/npc/sahagin/sniper/pants.vox differ diff --git a/assets/voxygen/voxel/npc/sahagin/sniper/tail.vox b/assets/voxygen/voxel/npc/sahagin/sniper/tail.vox new file mode 100644 index 0000000..891e5e8 Binary files /dev/null and b/assets/voxygen/voxel/npc/sahagin/sniper/tail.vox differ diff --git a/assets/voxygen/voxel/npc/sahagin/sorcerer/chest.vox b/assets/voxygen/voxel/npc/sahagin/sorcerer/chest.vox new file mode 100644 index 0000000..d80bf20 Binary files /dev/null and b/assets/voxygen/voxel/npc/sahagin/sorcerer/chest.vox differ diff --git a/assets/voxygen/voxel/npc/sahagin/sorcerer/foot_r.vox b/assets/voxygen/voxel/npc/sahagin/sorcerer/foot_r.vox new file mode 100644 index 0000000..1406d9b Binary files /dev/null and b/assets/voxygen/voxel/npc/sahagin/sorcerer/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/sahagin/sorcerer/hand_r.vox b/assets/voxygen/voxel/npc/sahagin/sorcerer/hand_r.vox new file mode 100644 index 0000000..fe35694 Binary files /dev/null and b/assets/voxygen/voxel/npc/sahagin/sorcerer/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/sahagin/sorcerer/head.vox b/assets/voxygen/voxel/npc/sahagin/sorcerer/head.vox new file mode 100644 index 0000000..9ae0476 Binary files /dev/null and b/assets/voxygen/voxel/npc/sahagin/sorcerer/head.vox differ diff --git a/assets/voxygen/voxel/npc/sahagin/sorcerer/pants.vox b/assets/voxygen/voxel/npc/sahagin/sorcerer/pants.vox new file mode 100644 index 0000000..198e0a5 Binary files /dev/null and b/assets/voxygen/voxel/npc/sahagin/sorcerer/pants.vox differ diff --git a/assets/voxygen/voxel/npc/sahagin/sorcerer/tail.vox b/assets/voxygen/voxel/npc/sahagin/sorcerer/tail.vox new file mode 100644 index 0000000..a68e31f Binary files /dev/null and b/assets/voxygen/voxel/npc/sahagin/sorcerer/tail.vox differ diff --git a/assets/voxygen/voxel/npc/sahagin/spearman/chest.vox b/assets/voxygen/voxel/npc/sahagin/spearman/chest.vox new file mode 100644 index 0000000..b2efcf9 Binary files /dev/null and b/assets/voxygen/voxel/npc/sahagin/spearman/chest.vox differ diff --git a/assets/voxygen/voxel/npc/sahagin/spearman/foot_r.vox b/assets/voxygen/voxel/npc/sahagin/spearman/foot_r.vox new file mode 100644 index 0000000..818c871 Binary files /dev/null and b/assets/voxygen/voxel/npc/sahagin/spearman/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/sahagin/spearman/hand_r.vox b/assets/voxygen/voxel/npc/sahagin/spearman/hand_r.vox new file mode 100644 index 0000000..0a8da42 Binary files /dev/null and b/assets/voxygen/voxel/npc/sahagin/spearman/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/sahagin/spearman/head.vox b/assets/voxygen/voxel/npc/sahagin/spearman/head.vox new file mode 100644 index 0000000..4212784 Binary files /dev/null and b/assets/voxygen/voxel/npc/sahagin/spearman/head.vox differ diff --git a/assets/voxygen/voxel/npc/sahagin/spearman/pants.vox b/assets/voxygen/voxel/npc/sahagin/spearman/pants.vox new file mode 100644 index 0000000..cc7827c Binary files /dev/null and b/assets/voxygen/voxel/npc/sahagin/spearman/pants.vox differ diff --git a/assets/voxygen/voxel/npc/sahagin/spearman/tail.vox b/assets/voxygen/voxel/npc/sahagin/spearman/tail.vox new file mode 100644 index 0000000..a0a902b Binary files /dev/null and b/assets/voxygen/voxel/npc/sahagin/spearman/tail.vox differ diff --git a/assets/voxygen/voxel/npc/salamander/male/chest.vox b/assets/voxygen/voxel/npc/salamander/male/chest.vox new file mode 100644 index 0000000..cc7cbec Binary files /dev/null and b/assets/voxygen/voxel/npc/salamander/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/salamander/male/foot_br.vox b/assets/voxygen/voxel/npc/salamander/male/foot_br.vox new file mode 100644 index 0000000..e07189e Binary files /dev/null and b/assets/voxygen/voxel/npc/salamander/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/salamander/male/foot_fr.vox b/assets/voxygen/voxel/npc/salamander/male/foot_fr.vox new file mode 100644 index 0000000..689c1b7 Binary files /dev/null and b/assets/voxygen/voxel/npc/salamander/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/salamander/male/head_lower.vox b/assets/voxygen/voxel/npc/salamander/male/head_lower.vox new file mode 100644 index 0000000..41a46df Binary files /dev/null and b/assets/voxygen/voxel/npc/salamander/male/head_lower.vox differ diff --git a/assets/voxygen/voxel/npc/salamander/male/head_upper.vox b/assets/voxygen/voxel/npc/salamander/male/head_upper.vox new file mode 100644 index 0000000..e20a7de Binary files /dev/null and b/assets/voxygen/voxel/npc/salamander/male/head_upper.vox differ diff --git a/assets/voxygen/voxel/npc/salamander/male/jaw.vox b/assets/voxygen/voxel/npc/salamander/male/jaw.vox new file mode 100644 index 0000000..a35ce72 Binary files /dev/null and b/assets/voxygen/voxel/npc/salamander/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/salamander/male/tail_front.vox b/assets/voxygen/voxel/npc/salamander/male/tail_front.vox new file mode 100644 index 0000000..8d4f4a5 Binary files /dev/null and b/assets/voxygen/voxel/npc/salamander/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/salamander/male/tail_rear.vox b/assets/voxygen/voxel/npc/salamander/male/tail_rear.vox new file mode 100644 index 0000000..1cd8d8e Binary files /dev/null and b/assets/voxygen/voxel/npc/salamander/male/tail_rear.vox differ diff --git a/assets/voxygen/voxel/npc/sandshark/male/chest.vox b/assets/voxygen/voxel/npc/sandshark/male/chest.vox new file mode 100644 index 0000000..b864dd9 Binary files /dev/null and b/assets/voxygen/voxel/npc/sandshark/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/sandshark/male/foot_br.vox b/assets/voxygen/voxel/npc/sandshark/male/foot_br.vox new file mode 100644 index 0000000..bc7128a Binary files /dev/null and b/assets/voxygen/voxel/npc/sandshark/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/sandshark/male/foot_fr.vox b/assets/voxygen/voxel/npc/sandshark/male/foot_fr.vox new file mode 100644 index 0000000..06600d2 Binary files /dev/null and b/assets/voxygen/voxel/npc/sandshark/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/sandshark/male/head_lower.vox b/assets/voxygen/voxel/npc/sandshark/male/head_lower.vox new file mode 100644 index 0000000..d064434 Binary files /dev/null and b/assets/voxygen/voxel/npc/sandshark/male/head_lower.vox differ diff --git a/assets/voxygen/voxel/npc/sandshark/male/head_upper.vox b/assets/voxygen/voxel/npc/sandshark/male/head_upper.vox new file mode 100644 index 0000000..cec1379 Binary files /dev/null and b/assets/voxygen/voxel/npc/sandshark/male/head_upper.vox differ diff --git a/assets/voxygen/voxel/npc/sandshark/male/jaw.vox b/assets/voxygen/voxel/npc/sandshark/male/jaw.vox new file mode 100644 index 0000000..528a116 Binary files /dev/null and b/assets/voxygen/voxel/npc/sandshark/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/sandshark/male/tail_front.vox b/assets/voxygen/voxel/npc/sandshark/male/tail_front.vox new file mode 100644 index 0000000..f940814 Binary files /dev/null and b/assets/voxygen/voxel/npc/sandshark/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/sandshark/male/tail_rear.vox b/assets/voxygen/voxel/npc/sandshark/male/tail_rear.vox new file mode 100644 index 0000000..f8812b8 Binary files /dev/null and b/assets/voxygen/voxel/npc/sandshark/male/tail_rear.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_mighty/female/foot_l.vox b/assets/voxygen/voxel/npc/saurok_mighty/female/foot_l.vox new file mode 100644 index 0000000..bb97448 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_mighty/female/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_mighty/female/foot_r.vox b/assets/voxygen/voxel/npc/saurok_mighty/female/foot_r.vox new file mode 100644 index 0000000..88d6593 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_mighty/female/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_mighty/female/hand_l.vox b/assets/voxygen/voxel/npc/saurok_mighty/female/hand_l.vox new file mode 100644 index 0000000..5d261fe Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_mighty/female/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_mighty/female/hand_r.vox b/assets/voxygen/voxel/npc/saurok_mighty/female/hand_r.vox new file mode 100644 index 0000000..dd8460e Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_mighty/female/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_mighty/female/head.vox b/assets/voxygen/voxel/npc/saurok_mighty/female/head.vox new file mode 100644 index 0000000..c093916 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_mighty/female/head.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_mighty/female/jaw.vox b/assets/voxygen/voxel/npc/saurok_mighty/female/jaw.vox new file mode 100644 index 0000000..03f2c5f Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_mighty/female/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_mighty/female/leg_l.vox b/assets/voxygen/voxel/npc/saurok_mighty/female/leg_l.vox new file mode 100644 index 0000000..943f38b Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_mighty/female/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_mighty/female/leg_r.vox b/assets/voxygen/voxel/npc/saurok_mighty/female/leg_r.vox new file mode 100644 index 0000000..1e15d90 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_mighty/female/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_mighty/female/shoulder_l.vox b/assets/voxygen/voxel/npc/saurok_mighty/female/shoulder_l.vox new file mode 100644 index 0000000..e555803 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_mighty/female/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_mighty/female/shoulder_r.vox b/assets/voxygen/voxel/npc/saurok_mighty/female/shoulder_r.vox new file mode 100644 index 0000000..4af13f7 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_mighty/female/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_mighty/female/tail.vox b/assets/voxygen/voxel/npc/saurok_mighty/female/tail.vox new file mode 100644 index 0000000..1582961 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_mighty/female/tail.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_mighty/female/torso_lower.vox b/assets/voxygen/voxel/npc/saurok_mighty/female/torso_lower.vox new file mode 100644 index 0000000..88c533a Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_mighty/female/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_mighty/female/torso_upper.vox b/assets/voxygen/voxel/npc/saurok_mighty/female/torso_upper.vox new file mode 100644 index 0000000..8d3d5d3 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_mighty/female/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_mighty/male/foot_l.vox b/assets/voxygen/voxel/npc/saurok_mighty/male/foot_l.vox new file mode 100644 index 0000000..2104ab0 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_mighty/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_mighty/male/foot_r.vox b/assets/voxygen/voxel/npc/saurok_mighty/male/foot_r.vox new file mode 100644 index 0000000..2d3eec9 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_mighty/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_mighty/male/hand_l.vox b/assets/voxygen/voxel/npc/saurok_mighty/male/hand_l.vox new file mode 100644 index 0000000..1532519 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_mighty/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_mighty/male/hand_r.vox b/assets/voxygen/voxel/npc/saurok_mighty/male/hand_r.vox new file mode 100644 index 0000000..ec4396a Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_mighty/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_mighty/male/head.vox b/assets/voxygen/voxel/npc/saurok_mighty/male/head.vox new file mode 100644 index 0000000..ed355be Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_mighty/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_mighty/male/jaw.vox b/assets/voxygen/voxel/npc/saurok_mighty/male/jaw.vox new file mode 100644 index 0000000..bc9af81 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_mighty/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_mighty/male/leg_l.vox b/assets/voxygen/voxel/npc/saurok_mighty/male/leg_l.vox new file mode 100644 index 0000000..2ad4f2d Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_mighty/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_mighty/male/leg_r.vox b/assets/voxygen/voxel/npc/saurok_mighty/male/leg_r.vox new file mode 100644 index 0000000..097f0a8 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_mighty/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_mighty/male/shoulder_l.vox b/assets/voxygen/voxel/npc/saurok_mighty/male/shoulder_l.vox new file mode 100644 index 0000000..7848b3e Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_mighty/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_mighty/male/shoulder_r.vox b/assets/voxygen/voxel/npc/saurok_mighty/male/shoulder_r.vox new file mode 100644 index 0000000..5404a6c Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_mighty/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_mighty/male/tail.vox b/assets/voxygen/voxel/npc/saurok_mighty/male/tail.vox new file mode 100644 index 0000000..0a2d935 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_mighty/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_mighty/male/torso_lower.vox b/assets/voxygen/voxel/npc/saurok_mighty/male/torso_lower.vox new file mode 100644 index 0000000..4c370b8 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_mighty/male/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_mighty/male/torso_upper.vox b/assets/voxygen/voxel/npc/saurok_mighty/male/torso_upper.vox new file mode 100644 index 0000000..d3c9910 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_mighty/male/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_occult/female/foot_l.vox b/assets/voxygen/voxel/npc/saurok_occult/female/foot_l.vox new file mode 100644 index 0000000..54edfcc Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_occult/female/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_occult/female/foot_r.vox b/assets/voxygen/voxel/npc/saurok_occult/female/foot_r.vox new file mode 100644 index 0000000..168c090 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_occult/female/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_occult/female/hand_l.vox b/assets/voxygen/voxel/npc/saurok_occult/female/hand_l.vox new file mode 100644 index 0000000..0c27b9c Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_occult/female/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_occult/female/hand_r.vox b/assets/voxygen/voxel/npc/saurok_occult/female/hand_r.vox new file mode 100644 index 0000000..4d89d83 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_occult/female/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_occult/female/head.vox b/assets/voxygen/voxel/npc/saurok_occult/female/head.vox new file mode 100644 index 0000000..06cc71a Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_occult/female/head.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_occult/female/jaw.vox b/assets/voxygen/voxel/npc/saurok_occult/female/jaw.vox new file mode 100644 index 0000000..2f22a4c Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_occult/female/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_occult/female/leg_l.vox b/assets/voxygen/voxel/npc/saurok_occult/female/leg_l.vox new file mode 100644 index 0000000..8635d37 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_occult/female/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_occult/female/leg_r.vox b/assets/voxygen/voxel/npc/saurok_occult/female/leg_r.vox new file mode 100644 index 0000000..d78a02e Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_occult/female/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_occult/female/shoulder_l.vox b/assets/voxygen/voxel/npc/saurok_occult/female/shoulder_l.vox new file mode 100644 index 0000000..c200e96 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_occult/female/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_occult/female/shoulder_r.vox b/assets/voxygen/voxel/npc/saurok_occult/female/shoulder_r.vox new file mode 100644 index 0000000..f32e174 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_occult/female/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_occult/female/tail.vox b/assets/voxygen/voxel/npc/saurok_occult/female/tail.vox new file mode 100644 index 0000000..956f5de Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_occult/female/tail.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_occult/female/torso_lower.vox b/assets/voxygen/voxel/npc/saurok_occult/female/torso_lower.vox new file mode 100644 index 0000000..00fbc8d Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_occult/female/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_occult/female/torso_upper.vox b/assets/voxygen/voxel/npc/saurok_occult/female/torso_upper.vox new file mode 100644 index 0000000..4c127b7 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_occult/female/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_occult/male/foot_l.vox b/assets/voxygen/voxel/npc/saurok_occult/male/foot_l.vox new file mode 100644 index 0000000..f67bb36 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_occult/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_occult/male/foot_r.vox b/assets/voxygen/voxel/npc/saurok_occult/male/foot_r.vox new file mode 100644 index 0000000..9de0670 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_occult/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_occult/male/hand_l.vox b/assets/voxygen/voxel/npc/saurok_occult/male/hand_l.vox new file mode 100644 index 0000000..7ae2ca3 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_occult/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_occult/male/hand_r.vox b/assets/voxygen/voxel/npc/saurok_occult/male/hand_r.vox new file mode 100644 index 0000000..5689066 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_occult/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_occult/male/head.vox b/assets/voxygen/voxel/npc/saurok_occult/male/head.vox new file mode 100644 index 0000000..ef7e0fb Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_occult/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_occult/male/jaw.vox b/assets/voxygen/voxel/npc/saurok_occult/male/jaw.vox new file mode 100644 index 0000000..e1b3ea5 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_occult/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_occult/male/leg_l.vox b/assets/voxygen/voxel/npc/saurok_occult/male/leg_l.vox new file mode 100644 index 0000000..2361104 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_occult/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_occult/male/leg_r.vox b/assets/voxygen/voxel/npc/saurok_occult/male/leg_r.vox new file mode 100644 index 0000000..c7c9af5 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_occult/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_occult/male/shoulder_l.vox b/assets/voxygen/voxel/npc/saurok_occult/male/shoulder_l.vox new file mode 100644 index 0000000..ead1055 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_occult/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_occult/male/shoulder_r.vox b/assets/voxygen/voxel/npc/saurok_occult/male/shoulder_r.vox new file mode 100644 index 0000000..7331e90 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_occult/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_occult/male/tail.vox b/assets/voxygen/voxel/npc/saurok_occult/male/tail.vox new file mode 100644 index 0000000..dc9980c Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_occult/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_occult/male/torso_lower.vox b/assets/voxygen/voxel/npc/saurok_occult/male/torso_lower.vox new file mode 100644 index 0000000..cb000c9 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_occult/male/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_occult/male/torso_upper.vox b/assets/voxygen/voxel/npc/saurok_occult/male/torso_upper.vox new file mode 100644 index 0000000..108c70c Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_occult/male/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_occult/male/weapon.vox b/assets/voxygen/voxel/npc/saurok_occult/male/weapon.vox new file mode 100644 index 0000000..322870f Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_occult/male/weapon.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_sly/female/foot_l.vox b/assets/voxygen/voxel/npc/saurok_sly/female/foot_l.vox new file mode 100644 index 0000000..96af59c Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_sly/female/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_sly/female/foot_r.vox b/assets/voxygen/voxel/npc/saurok_sly/female/foot_r.vox new file mode 100644 index 0000000..1f0cae5 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_sly/female/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_sly/female/hand_l.vox b/assets/voxygen/voxel/npc/saurok_sly/female/hand_l.vox new file mode 100644 index 0000000..e3d9616 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_sly/female/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_sly/female/hand_r.vox b/assets/voxygen/voxel/npc/saurok_sly/female/hand_r.vox new file mode 100644 index 0000000..abca6bb Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_sly/female/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_sly/female/head.vox b/assets/voxygen/voxel/npc/saurok_sly/female/head.vox new file mode 100644 index 0000000..9709118 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_sly/female/head.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_sly/female/jaw.vox b/assets/voxygen/voxel/npc/saurok_sly/female/jaw.vox new file mode 100644 index 0000000..2a7b507 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_sly/female/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_sly/female/leg_l.vox b/assets/voxygen/voxel/npc/saurok_sly/female/leg_l.vox new file mode 100644 index 0000000..f911764 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_sly/female/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_sly/female/leg_r.vox b/assets/voxygen/voxel/npc/saurok_sly/female/leg_r.vox new file mode 100644 index 0000000..15e2d07 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_sly/female/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_sly/female/shoulder_l.vox b/assets/voxygen/voxel/npc/saurok_sly/female/shoulder_l.vox new file mode 100644 index 0000000..0351b74 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_sly/female/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_sly/female/shoulder_r.vox b/assets/voxygen/voxel/npc/saurok_sly/female/shoulder_r.vox new file mode 100644 index 0000000..a9fec07 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_sly/female/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_sly/female/tail.vox b/assets/voxygen/voxel/npc/saurok_sly/female/tail.vox new file mode 100644 index 0000000..bdea516 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_sly/female/tail.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_sly/female/torso_lower.vox b/assets/voxygen/voxel/npc/saurok_sly/female/torso_lower.vox new file mode 100644 index 0000000..7381635 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_sly/female/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_sly/female/torso_upper.vox b/assets/voxygen/voxel/npc/saurok_sly/female/torso_upper.vox new file mode 100644 index 0000000..c6954a5 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_sly/female/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_sly/male/foot_l.vox b/assets/voxygen/voxel/npc/saurok_sly/male/foot_l.vox new file mode 100644 index 0000000..578be80 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_sly/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_sly/male/foot_r.vox b/assets/voxygen/voxel/npc/saurok_sly/male/foot_r.vox new file mode 100644 index 0000000..74bce0d Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_sly/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_sly/male/hand_l.vox b/assets/voxygen/voxel/npc/saurok_sly/male/hand_l.vox new file mode 100644 index 0000000..ca648f9 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_sly/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_sly/male/hand_r.vox b/assets/voxygen/voxel/npc/saurok_sly/male/hand_r.vox new file mode 100644 index 0000000..d1b54ba Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_sly/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_sly/male/head.vox b/assets/voxygen/voxel/npc/saurok_sly/male/head.vox new file mode 100644 index 0000000..d7656e8 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_sly/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_sly/male/jaw.vox b/assets/voxygen/voxel/npc/saurok_sly/male/jaw.vox new file mode 100644 index 0000000..ef51d49 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_sly/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_sly/male/leg_l.vox b/assets/voxygen/voxel/npc/saurok_sly/male/leg_l.vox new file mode 100644 index 0000000..8b19e4e Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_sly/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_sly/male/leg_r.vox b/assets/voxygen/voxel/npc/saurok_sly/male/leg_r.vox new file mode 100644 index 0000000..50f77e4 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_sly/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_sly/male/shoulder_l.vox b/assets/voxygen/voxel/npc/saurok_sly/male/shoulder_l.vox new file mode 100644 index 0000000..a8e3186 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_sly/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_sly/male/shoulder_r.vox b/assets/voxygen/voxel/npc/saurok_sly/male/shoulder_r.vox new file mode 100644 index 0000000..e01801a Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_sly/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_sly/male/tail.vox b/assets/voxygen/voxel/npc/saurok_sly/male/tail.vox new file mode 100644 index 0000000..4f77db7 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_sly/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_sly/male/torso_lower.vox b/assets/voxygen/voxel/npc/saurok_sly/male/torso_lower.vox new file mode 100644 index 0000000..3eb6e0f Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_sly/male/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/saurok_sly/male/torso_upper.vox b/assets/voxygen/voxel/npc/saurok_sly/male/torso_upper.vox new file mode 100644 index 0000000..9c2f627 Binary files /dev/null and b/assets/voxygen/voxel/npc/saurok_sly/male/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/sea_bishop/male/hand_l.vox b/assets/voxygen/voxel/npc/sea_bishop/male/hand_l.vox new file mode 100644 index 0000000..3bacfd4 Binary files /dev/null and b/assets/voxygen/voxel/npc/sea_bishop/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/sea_bishop/male/hand_r.vox b/assets/voxygen/voxel/npc/sea_bishop/male/hand_r.vox new file mode 100644 index 0000000..5fae796 Binary files /dev/null and b/assets/voxygen/voxel/npc/sea_bishop/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/sea_bishop/male/head.vox b/assets/voxygen/voxel/npc/sea_bishop/male/head.vox new file mode 100644 index 0000000..4934213 Binary files /dev/null and b/assets/voxygen/voxel/npc/sea_bishop/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/sea_bishop/male/leg_l.vox b/assets/voxygen/voxel/npc/sea_bishop/male/leg_l.vox new file mode 100644 index 0000000..43937ad Binary files /dev/null and b/assets/voxygen/voxel/npc/sea_bishop/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/sea_bishop/male/leg_r.vox b/assets/voxygen/voxel/npc/sea_bishop/male/leg_r.vox new file mode 100644 index 0000000..43937ad Binary files /dev/null and b/assets/voxygen/voxel/npc/sea_bishop/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/sea_bishop/male/shoulder_l.vox b/assets/voxygen/voxel/npc/sea_bishop/male/shoulder_l.vox new file mode 100644 index 0000000..3ccf966 Binary files /dev/null and b/assets/voxygen/voxel/npc/sea_bishop/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/sea_bishop/male/shoulder_r.vox b/assets/voxygen/voxel/npc/sea_bishop/male/shoulder_r.vox new file mode 100644 index 0000000..3aad827 Binary files /dev/null and b/assets/voxygen/voxel/npc/sea_bishop/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/sea_bishop/male/torso_lower.vox b/assets/voxygen/voxel/npc/sea_bishop/male/torso_lower.vox new file mode 100644 index 0000000..3a3be21 Binary files /dev/null and b/assets/voxygen/voxel/npc/sea_bishop/male/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/sea_bishop/male/torso_upper.vox b/assets/voxygen/voxel/npc/sea_bishop/male/torso_upper.vox new file mode 100644 index 0000000..23a4619 Binary files /dev/null and b/assets/voxygen/voxel/npc/sea_bishop/male/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/sea_crocodile/male/chest.vox b/assets/voxygen/voxel/npc/sea_crocodile/male/chest.vox new file mode 100644 index 0000000..8bcb199 Binary files /dev/null and b/assets/voxygen/voxel/npc/sea_crocodile/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/sea_crocodile/male/foot_br.vox b/assets/voxygen/voxel/npc/sea_crocodile/male/foot_br.vox new file mode 100644 index 0000000..9b19286 Binary files /dev/null and b/assets/voxygen/voxel/npc/sea_crocodile/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/sea_crocodile/male/foot_fr.vox b/assets/voxygen/voxel/npc/sea_crocodile/male/foot_fr.vox new file mode 100644 index 0000000..6be255a Binary files /dev/null and b/assets/voxygen/voxel/npc/sea_crocodile/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/sea_crocodile/male/head_lower.vox b/assets/voxygen/voxel/npc/sea_crocodile/male/head_lower.vox new file mode 100644 index 0000000..61967a0 Binary files /dev/null and b/assets/voxygen/voxel/npc/sea_crocodile/male/head_lower.vox differ diff --git a/assets/voxygen/voxel/npc/sea_crocodile/male/head_upper.vox b/assets/voxygen/voxel/npc/sea_crocodile/male/head_upper.vox new file mode 100644 index 0000000..b6a9552 Binary files /dev/null and b/assets/voxygen/voxel/npc/sea_crocodile/male/head_upper.vox differ diff --git a/assets/voxygen/voxel/npc/sea_crocodile/male/jaw.vox b/assets/voxygen/voxel/npc/sea_crocodile/male/jaw.vox new file mode 100644 index 0000000..69ee269 Binary files /dev/null and b/assets/voxygen/voxel/npc/sea_crocodile/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/sea_crocodile/male/tail_front.vox b/assets/voxygen/voxel/npc/sea_crocodile/male/tail_front.vox new file mode 100644 index 0000000..95804e7 Binary files /dev/null and b/assets/voxygen/voxel/npc/sea_crocodile/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/sea_crocodile/male/tail_rear.vox b/assets/voxygen/voxel/npc/sea_crocodile/male/tail_rear.vox new file mode 100644 index 0000000..3699b6f Binary files /dev/null and b/assets/voxygen/voxel/npc/sea_crocodile/male/tail_rear.vox differ diff --git a/assets/voxygen/voxel/npc/seal/male/chest.vox b/assets/voxygen/voxel/npc/seal/male/chest.vox new file mode 100644 index 0000000..b76ba34 Binary files /dev/null and b/assets/voxygen/voxel/npc/seal/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/seal/male/foot_br.vox b/assets/voxygen/voxel/npc/seal/male/foot_br.vox new file mode 100644 index 0000000..19712fd Binary files /dev/null and b/assets/voxygen/voxel/npc/seal/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/seal/male/foot_fr.vox b/assets/voxygen/voxel/npc/seal/male/foot_fr.vox new file mode 100644 index 0000000..ec93aaa Binary files /dev/null and b/assets/voxygen/voxel/npc/seal/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/seal/male/head.vox b/assets/voxygen/voxel/npc/seal/male/head.vox new file mode 100644 index 0000000..e31caef Binary files /dev/null and b/assets/voxygen/voxel/npc/seal/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/shamanic_spirit/chest.vox b/assets/voxygen/voxel/npc/shamanic_spirit/chest.vox new file mode 100644 index 0000000..188541a Binary files /dev/null and b/assets/voxygen/voxel/npc/shamanic_spirit/chest.vox differ diff --git a/assets/voxygen/voxel/npc/shamanic_spirit/hand_r.vox b/assets/voxygen/voxel/npc/shamanic_spirit/hand_r.vox new file mode 100644 index 0000000..c60b78f Binary files /dev/null and b/assets/voxygen/voxel/npc/shamanic_spirit/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/shamanic_spirit/head.vox b/assets/voxygen/voxel/npc/shamanic_spirit/head.vox new file mode 100644 index 0000000..b2278f8 Binary files /dev/null and b/assets/voxygen/voxel/npc/shamanic_spirit/head.vox differ diff --git a/assets/voxygen/voxel/npc/shamanic_spirit/pants.vox b/assets/voxygen/voxel/npc/shamanic_spirit/pants.vox new file mode 100644 index 0000000..80dd357 Binary files /dev/null and b/assets/voxygen/voxel/npc/shamanic_spirit/pants.vox differ diff --git a/assets/voxygen/voxel/npc/sheep/female/chest.vox b/assets/voxygen/voxel/npc/sheep/female/chest.vox new file mode 100644 index 0000000..65d7169 Binary files /dev/null and b/assets/voxygen/voxel/npc/sheep/female/chest.vox differ diff --git a/assets/voxygen/voxel/npc/sheep/female/foot_br.vox b/assets/voxygen/voxel/npc/sheep/female/foot_br.vox new file mode 100644 index 0000000..fab36a9 Binary files /dev/null and b/assets/voxygen/voxel/npc/sheep/female/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/sheep/female/foot_fr.vox b/assets/voxygen/voxel/npc/sheep/female/foot_fr.vox new file mode 100644 index 0000000..d43de9f Binary files /dev/null and b/assets/voxygen/voxel/npc/sheep/female/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/sheep/female/head.vox b/assets/voxygen/voxel/npc/sheep/female/head.vox new file mode 100644 index 0000000..22196b8 Binary files /dev/null and b/assets/voxygen/voxel/npc/sheep/female/head.vox differ diff --git a/assets/voxygen/voxel/npc/sheep/female/tail.vox b/assets/voxygen/voxel/npc/sheep/female/tail.vox new file mode 100644 index 0000000..5159d78 Binary files /dev/null and b/assets/voxygen/voxel/npc/sheep/female/tail.vox differ diff --git a/assets/voxygen/voxel/npc/sheep/male/chest.vox b/assets/voxygen/voxel/npc/sheep/male/chest.vox new file mode 100644 index 0000000..65d7169 Binary files /dev/null and b/assets/voxygen/voxel/npc/sheep/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/sheep/male/foot_br.vox b/assets/voxygen/voxel/npc/sheep/male/foot_br.vox new file mode 100644 index 0000000..fab36a9 Binary files /dev/null and b/assets/voxygen/voxel/npc/sheep/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/sheep/male/foot_fr.vox b/assets/voxygen/voxel/npc/sheep/male/foot_fr.vox new file mode 100644 index 0000000..73030d4 Binary files /dev/null and b/assets/voxygen/voxel/npc/sheep/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/sheep/male/head.vox b/assets/voxygen/voxel/npc/sheep/male/head.vox new file mode 100644 index 0000000..622de56 Binary files /dev/null and b/assets/voxygen/voxel/npc/sheep/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/sheep/male/tail.vox b/assets/voxygen/voxel/npc/sheep/male/tail.vox new file mode 100644 index 0000000..5159d78 Binary files /dev/null and b/assets/voxygen/voxel/npc/sheep/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/skunk/male/chest.vox b/assets/voxygen/voxel/npc/skunk/male/chest.vox new file mode 100644 index 0000000..38d05de Binary files /dev/null and b/assets/voxygen/voxel/npc/skunk/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/skunk/male/foot_br.vox b/assets/voxygen/voxel/npc/skunk/male/foot_br.vox new file mode 100644 index 0000000..d607ea8 Binary files /dev/null and b/assets/voxygen/voxel/npc/skunk/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/skunk/male/foot_fr.vox b/assets/voxygen/voxel/npc/skunk/male/foot_fr.vox new file mode 100644 index 0000000..c620816 Binary files /dev/null and b/assets/voxygen/voxel/npc/skunk/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/skunk/male/head.vox b/assets/voxygen/voxel/npc/skunk/male/head.vox new file mode 100644 index 0000000..503d7be Binary files /dev/null and b/assets/voxygen/voxel/npc/skunk/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/skunk/male/tail.vox b/assets/voxygen/voxel/npc/skunk/male/tail.vox new file mode 100644 index 0000000..367e577 Binary files /dev/null and b/assets/voxygen/voxel/npc/skunk/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/snaretongue/male/snaretongue.vox b/assets/voxygen/voxel/npc/snaretongue/male/snaretongue.vox new file mode 100644 index 0000000..7d9c109 Binary files /dev/null and b/assets/voxygen/voxel/npc/snaretongue/male/snaretongue.vox differ diff --git a/assets/voxygen/voxel/npc/snowleopard/male/ears.vox b/assets/voxygen/voxel/npc/snowleopard/male/ears.vox new file mode 100644 index 0000000..dc5f912 Binary files /dev/null and b/assets/voxygen/voxel/npc/snowleopard/male/ears.vox differ diff --git a/assets/voxygen/voxel/npc/snowleopard/male/foot_br.vox b/assets/voxygen/voxel/npc/snowleopard/male/foot_br.vox new file mode 100644 index 0000000..31aef01 Binary files /dev/null and b/assets/voxygen/voxel/npc/snowleopard/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/snowleopard/male/foot_fr.vox b/assets/voxygen/voxel/npc/snowleopard/male/foot_fr.vox new file mode 100644 index 0000000..454f843 Binary files /dev/null and b/assets/voxygen/voxel/npc/snowleopard/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/snowleopard/male/head.vox b/assets/voxygen/voxel/npc/snowleopard/male/head.vox new file mode 100644 index 0000000..f11ee32 Binary files /dev/null and b/assets/voxygen/voxel/npc/snowleopard/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/snowleopard/male/jaw.vox b/assets/voxygen/voxel/npc/snowleopard/male/jaw.vox new file mode 100644 index 0000000..9d4bb41 Binary files /dev/null and b/assets/voxygen/voxel/npc/snowleopard/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/snowleopard/male/leg_br.vox b/assets/voxygen/voxel/npc/snowleopard/male/leg_br.vox new file mode 100644 index 0000000..a79e0b9 Binary files /dev/null and b/assets/voxygen/voxel/npc/snowleopard/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/snowleopard/male/leg_fr.vox b/assets/voxygen/voxel/npc/snowleopard/male/leg_fr.vox new file mode 100644 index 0000000..4421a58 Binary files /dev/null and b/assets/voxygen/voxel/npc/snowleopard/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/snowleopard/male/neck.vox b/assets/voxygen/voxel/npc/snowleopard/male/neck.vox new file mode 100644 index 0000000..e72dacb Binary files /dev/null and b/assets/voxygen/voxel/npc/snowleopard/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/snowleopard/male/tail.vox b/assets/voxygen/voxel/npc/snowleopard/male/tail.vox new file mode 100644 index 0000000..4e15d21 Binary files /dev/null and b/assets/voxygen/voxel/npc/snowleopard/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/snowleopard/male/torso_back.vox b/assets/voxygen/voxel/npc/snowleopard/male/torso_back.vox new file mode 100644 index 0000000..f150fcd Binary files /dev/null and b/assets/voxygen/voxel/npc/snowleopard/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/snowleopard/male/torso_front.vox b/assets/voxygen/voxel/npc/snowleopard/male/torso_front.vox new file mode 100644 index 0000000..f767c03 Binary files /dev/null and b/assets/voxygen/voxel/npc/snowleopard/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/snowy_owl/male/chest.vox b/assets/voxygen/voxel/npc/snowy_owl/male/chest.vox new file mode 100644 index 0000000..bf9887a Binary files /dev/null and b/assets/voxygen/voxel/npc/snowy_owl/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/snowy_owl/male/head.vox b/assets/voxygen/voxel/npc/snowy_owl/male/head.vox new file mode 100644 index 0000000..5647be5 Binary files /dev/null and b/assets/voxygen/voxel/npc/snowy_owl/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/snowy_owl/male/leg_r.vox b/assets/voxygen/voxel/npc/snowy_owl/male/leg_r.vox new file mode 100644 index 0000000..edc58ff Binary files /dev/null and b/assets/voxygen/voxel/npc/snowy_owl/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/snowy_owl/male/tail.vox b/assets/voxygen/voxel/npc/snowy_owl/male/tail.vox new file mode 100644 index 0000000..30f3c52 Binary files /dev/null and b/assets/voxygen/voxel/npc/snowy_owl/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/snowy_owl/male/wing_in_r.vox b/assets/voxygen/voxel/npc/snowy_owl/male/wing_in_r.vox new file mode 100644 index 0000000..512321d Binary files /dev/null and b/assets/voxygen/voxel/npc/snowy_owl/male/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/snowy_owl/male/wing_out_r.vox b/assets/voxygen/voxel/npc/snowy_owl/male/wing_out_r.vox new file mode 100644 index 0000000..d2d5624 Binary files /dev/null and b/assets/voxygen/voxel/npc/snowy_owl/male/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/soldier_crab/soldier_crab.vox b/assets/voxygen/voxel/npc/soldier_crab/soldier_crab.vox new file mode 100644 index 0000000..9afadd3 Binary files /dev/null and b/assets/voxygen/voxel/npc/soldier_crab/soldier_crab.vox differ diff --git a/assets/voxygen/voxel/npc/squirrel/male/chest.vox b/assets/voxygen/voxel/npc/squirrel/male/chest.vox new file mode 100644 index 0000000..14b93b2 Binary files /dev/null and b/assets/voxygen/voxel/npc/squirrel/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/squirrel/male/foot_br.vox b/assets/voxygen/voxel/npc/squirrel/male/foot_br.vox new file mode 100644 index 0000000..726b4a8 Binary files /dev/null and b/assets/voxygen/voxel/npc/squirrel/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/squirrel/male/foot_fr.vox b/assets/voxygen/voxel/npc/squirrel/male/foot_fr.vox new file mode 100644 index 0000000..b7d4708 Binary files /dev/null and b/assets/voxygen/voxel/npc/squirrel/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/squirrel/male/head.vox b/assets/voxygen/voxel/npc/squirrel/male/head.vox new file mode 100644 index 0000000..1948ec1 Binary files /dev/null and b/assets/voxygen/voxel/npc/squirrel/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/squirrel/male/tail.vox b/assets/voxygen/voxel/npc/squirrel/male/tail.vox new file mode 100644 index 0000000..720bebe Binary files /dev/null and b/assets/voxygen/voxel/npc/squirrel/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/stag_beetle/male/chest.vox b/assets/voxygen/voxel/npc/stag_beetle/male/chest.vox new file mode 100644 index 0000000..5b6a24f Binary files /dev/null and b/assets/voxygen/voxel/npc/stag_beetle/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/stag_beetle/male/head.vox b/assets/voxygen/voxel/npc/stag_beetle/male/head.vox new file mode 100644 index 0000000..d98fc86 Binary files /dev/null and b/assets/voxygen/voxel/npc/stag_beetle/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/stag_beetle/male/leg_bcr.vox b/assets/voxygen/voxel/npc/stag_beetle/male/leg_bcr.vox new file mode 100644 index 0000000..afff5ef Binary files /dev/null and b/assets/voxygen/voxel/npc/stag_beetle/male/leg_bcr.vox differ diff --git a/assets/voxygen/voxel/npc/stag_beetle/male/leg_fcr.vox b/assets/voxygen/voxel/npc/stag_beetle/male/leg_fcr.vox new file mode 100644 index 0000000..5c17808 Binary files /dev/null and b/assets/voxygen/voxel/npc/stag_beetle/male/leg_fcr.vox differ diff --git a/assets/voxygen/voxel/npc/stag_beetle/male/leg_fr.vox b/assets/voxygen/voxel/npc/stag_beetle/male/leg_fr.vox new file mode 100644 index 0000000..b5436db Binary files /dev/null and b/assets/voxygen/voxel/npc/stag_beetle/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/stag_beetle/male/mandible_r.vox b/assets/voxygen/voxel/npc/stag_beetle/male/mandible_r.vox new file mode 100644 index 0000000..be52e49 Binary files /dev/null and b/assets/voxygen/voxel/npc/stag_beetle/male/mandible_r.vox differ diff --git a/assets/voxygen/voxel/npc/stag_beetle/male/wing_br.vox b/assets/voxygen/voxel/npc/stag_beetle/male/wing_br.vox new file mode 100644 index 0000000..ed77be4 Binary files /dev/null and b/assets/voxygen/voxel/npc/stag_beetle/male/wing_br.vox differ diff --git a/assets/voxygen/voxel/npc/stag_beetle/male/wing_fr.vox b/assets/voxygen/voxel/npc/stag_beetle/male/wing_fr.vox new file mode 100644 index 0000000..9919b3f Binary files /dev/null and b/assets/voxygen/voxel/npc/stag_beetle/male/wing_fr.vox differ diff --git a/assets/voxygen/voxel/npc/stonegolem/male/chest_lower.vox b/assets/voxygen/voxel/npc/stonegolem/male/chest_lower.vox new file mode 100644 index 0000000..43ce68d Binary files /dev/null and b/assets/voxygen/voxel/npc/stonegolem/male/chest_lower.vox differ diff --git a/assets/voxygen/voxel/npc/stonegolem/male/chest_upper.vox b/assets/voxygen/voxel/npc/stonegolem/male/chest_upper.vox new file mode 100644 index 0000000..2be13ff Binary files /dev/null and b/assets/voxygen/voxel/npc/stonegolem/male/chest_upper.vox differ diff --git a/assets/voxygen/voxel/npc/stonegolem/male/foot_l.vox b/assets/voxygen/voxel/npc/stonegolem/male/foot_l.vox new file mode 100644 index 0000000..817d422 Binary files /dev/null and b/assets/voxygen/voxel/npc/stonegolem/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/stonegolem/male/foot_r.vox b/assets/voxygen/voxel/npc/stonegolem/male/foot_r.vox new file mode 100644 index 0000000..baa3ee6 Binary files /dev/null and b/assets/voxygen/voxel/npc/stonegolem/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/stonegolem/male/hand_l.vox b/assets/voxygen/voxel/npc/stonegolem/male/hand_l.vox new file mode 100644 index 0000000..ae6c379 Binary files /dev/null and b/assets/voxygen/voxel/npc/stonegolem/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/stonegolem/male/hand_r.vox b/assets/voxygen/voxel/npc/stonegolem/male/hand_r.vox new file mode 100644 index 0000000..09c719a Binary files /dev/null and b/assets/voxygen/voxel/npc/stonegolem/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/stonegolem/male/head.vox b/assets/voxygen/voxel/npc/stonegolem/male/head.vox new file mode 100644 index 0000000..da281a7 Binary files /dev/null and b/assets/voxygen/voxel/npc/stonegolem/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/stonegolem/male/leg_l.vox b/assets/voxygen/voxel/npc/stonegolem/male/leg_l.vox new file mode 100644 index 0000000..034ddb7 Binary files /dev/null and b/assets/voxygen/voxel/npc/stonegolem/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/stonegolem/male/leg_r.vox b/assets/voxygen/voxel/npc/stonegolem/male/leg_r.vox new file mode 100644 index 0000000..4445bab Binary files /dev/null and b/assets/voxygen/voxel/npc/stonegolem/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/stonegolem/male/shoulder_l.vox b/assets/voxygen/voxel/npc/stonegolem/male/shoulder_l.vox new file mode 100644 index 0000000..dbde82f Binary files /dev/null and b/assets/voxygen/voxel/npc/stonegolem/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/stonegolem/male/shoulder_r.vox b/assets/voxygen/voxel/npc/stonegolem/male/shoulder_r.vox new file mode 100644 index 0000000..160ee4a Binary files /dev/null and b/assets/voxygen/voxel/npc/stonegolem/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/strigoi/strigoi.vox b/assets/voxygen/voxel/npc/strigoi/strigoi.vox new file mode 100644 index 0000000..80a4284 Binary files /dev/null and b/assets/voxygen/voxel/npc/strigoi/strigoi.vox differ diff --git a/assets/voxygen/voxel/npc/sunlizard/male/chest_back.vox b/assets/voxygen/voxel/npc/sunlizard/male/chest_back.vox new file mode 100644 index 0000000..6f51b76 Binary files /dev/null and b/assets/voxygen/voxel/npc/sunlizard/male/chest_back.vox differ diff --git a/assets/voxygen/voxel/npc/sunlizard/male/chest_front.vox b/assets/voxygen/voxel/npc/sunlizard/male/chest_front.vox new file mode 100644 index 0000000..d0fdc68 Binary files /dev/null and b/assets/voxygen/voxel/npc/sunlizard/male/chest_front.vox differ diff --git a/assets/voxygen/voxel/npc/sunlizard/male/foot_r.vox b/assets/voxygen/voxel/npc/sunlizard/male/foot_r.vox new file mode 100644 index 0000000..a0dafce Binary files /dev/null and b/assets/voxygen/voxel/npc/sunlizard/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/sunlizard/male/hand_r.vox b/assets/voxygen/voxel/npc/sunlizard/male/hand_r.vox new file mode 100644 index 0000000..dfb459d Binary files /dev/null and b/assets/voxygen/voxel/npc/sunlizard/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/sunlizard/male/head.vox b/assets/voxygen/voxel/npc/sunlizard/male/head.vox new file mode 100644 index 0000000..ce3520c Binary files /dev/null and b/assets/voxygen/voxel/npc/sunlizard/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/sunlizard/male/jaw.vox b/assets/voxygen/voxel/npc/sunlizard/male/jaw.vox new file mode 100644 index 0000000..bd6672f Binary files /dev/null and b/assets/voxygen/voxel/npc/sunlizard/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/sunlizard/male/leg_r.vox b/assets/voxygen/voxel/npc/sunlizard/male/leg_r.vox new file mode 100644 index 0000000..400186b Binary files /dev/null and b/assets/voxygen/voxel/npc/sunlizard/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/sunlizard/male/neck.vox b/assets/voxygen/voxel/npc/sunlizard/male/neck.vox new file mode 100644 index 0000000..24ad532 Binary files /dev/null and b/assets/voxygen/voxel/npc/sunlizard/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/sunlizard/male/tail_back.vox b/assets/voxygen/voxel/npc/sunlizard/male/tail_back.vox new file mode 100644 index 0000000..17dad5e Binary files /dev/null and b/assets/voxygen/voxel/npc/sunlizard/male/tail_back.vox differ diff --git a/assets/voxygen/voxel/npc/sunlizard/male/tail_front.vox b/assets/voxygen/voxel/npc/sunlizard/male/tail_front.vox new file mode 100644 index 0000000..b391d3b Binary files /dev/null and b/assets/voxygen/voxel/npc/sunlizard/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/tarantula/male/chest.vox b/assets/voxygen/voxel/npc/tarantula/male/chest.vox new file mode 100644 index 0000000..c9edadf Binary files /dev/null and b/assets/voxygen/voxel/npc/tarantula/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/tarantula/male/head.vox b/assets/voxygen/voxel/npc/tarantula/male/head.vox new file mode 100644 index 0000000..a26621f Binary files /dev/null and b/assets/voxygen/voxel/npc/tarantula/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/tarantula/male/leg_bcr.vox b/assets/voxygen/voxel/npc/tarantula/male/leg_bcr.vox new file mode 100644 index 0000000..be2d435 Binary files /dev/null and b/assets/voxygen/voxel/npc/tarantula/male/leg_bcr.vox differ diff --git a/assets/voxygen/voxel/npc/tarantula/male/leg_br.vox b/assets/voxygen/voxel/npc/tarantula/male/leg_br.vox new file mode 100644 index 0000000..067427b Binary files /dev/null and b/assets/voxygen/voxel/npc/tarantula/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/tarantula/male/leg_fcr.vox b/assets/voxygen/voxel/npc/tarantula/male/leg_fcr.vox new file mode 100644 index 0000000..067427b Binary files /dev/null and b/assets/voxygen/voxel/npc/tarantula/male/leg_fcr.vox differ diff --git a/assets/voxygen/voxel/npc/tarantula/male/leg_fr.vox b/assets/voxygen/voxel/npc/tarantula/male/leg_fr.vox new file mode 100644 index 0000000..3cf2496 Binary files /dev/null and b/assets/voxygen/voxel/npc/tarantula/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/tarantula/male/mandible_r.vox b/assets/voxygen/voxel/npc/tarantula/male/mandible_r.vox new file mode 100644 index 0000000..0608e42 Binary files /dev/null and b/assets/voxygen/voxel/npc/tarantula/male/mandible_r.vox differ diff --git a/assets/voxygen/voxel/npc/tarasque/male/ears.vox b/assets/voxygen/voxel/npc/tarasque/male/ears.vox new file mode 100644 index 0000000..951618a Binary files /dev/null and b/assets/voxygen/voxel/npc/tarasque/male/ears.vox differ diff --git a/assets/voxygen/voxel/npc/tarasque/male/foot_br.vox b/assets/voxygen/voxel/npc/tarasque/male/foot_br.vox new file mode 100644 index 0000000..85ebfc0 Binary files /dev/null and b/assets/voxygen/voxel/npc/tarasque/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/tarasque/male/foot_fr.vox b/assets/voxygen/voxel/npc/tarasque/male/foot_fr.vox new file mode 100644 index 0000000..150b7bb Binary files /dev/null and b/assets/voxygen/voxel/npc/tarasque/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/tarasque/male/head.vox b/assets/voxygen/voxel/npc/tarasque/male/head.vox new file mode 100644 index 0000000..0bbe6fe Binary files /dev/null and b/assets/voxygen/voxel/npc/tarasque/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/tarasque/male/jaw.vox b/assets/voxygen/voxel/npc/tarasque/male/jaw.vox new file mode 100644 index 0000000..a208531 Binary files /dev/null and b/assets/voxygen/voxel/npc/tarasque/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/tarasque/male/leg_br.vox b/assets/voxygen/voxel/npc/tarasque/male/leg_br.vox new file mode 100644 index 0000000..881feae Binary files /dev/null and b/assets/voxygen/voxel/npc/tarasque/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/tarasque/male/leg_fr.vox b/assets/voxygen/voxel/npc/tarasque/male/leg_fr.vox new file mode 100644 index 0000000..9704d4d Binary files /dev/null and b/assets/voxygen/voxel/npc/tarasque/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/tarasque/male/neck.vox b/assets/voxygen/voxel/npc/tarasque/male/neck.vox new file mode 100644 index 0000000..55062ab Binary files /dev/null and b/assets/voxygen/voxel/npc/tarasque/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/tarasque/male/tail.vox b/assets/voxygen/voxel/npc/tarasque/male/tail.vox new file mode 100644 index 0000000..07295e5 Binary files /dev/null and b/assets/voxygen/voxel/npc/tarasque/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/tarasque/male/torso_back.vox b/assets/voxygen/voxel/npc/tarasque/male/torso_back.vox new file mode 100644 index 0000000..62d86e6 Binary files /dev/null and b/assets/voxygen/voxel/npc/tarasque/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/tarasque/male/torso_front.vox b/assets/voxygen/voxel/npc/tarasque/male/torso_front.vox new file mode 100644 index 0000000..b62a9f0 Binary files /dev/null and b/assets/voxygen/voxel/npc/tarasque/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/terracotta/cursekeeper.vox b/assets/voxygen/voxel/npc/terracotta/cursekeeper.vox new file mode 100644 index 0000000..0dd9144 Binary files /dev/null and b/assets/voxygen/voxel/npc/terracotta/cursekeeper.vox differ diff --git a/assets/voxygen/voxel/npc/terracotta/terracotta_besieger.vox b/assets/voxygen/voxel/npc/terracotta/terracotta_besieger.vox new file mode 100644 index 0000000..0250740 Binary files /dev/null and b/assets/voxygen/voxel/npc/terracotta/terracotta_besieger.vox differ diff --git a/assets/voxygen/voxel/npc/terracotta/terracotta_demolisher.vox b/assets/voxygen/voxel/npc/terracotta/terracotta_demolisher.vox new file mode 100644 index 0000000..608acd1 Binary files /dev/null and b/assets/voxygen/voxel/npc/terracotta/terracotta_demolisher.vox differ diff --git a/assets/voxygen/voxel/npc/terracotta/terracotta_punisher.vox b/assets/voxygen/voxel/npc/terracotta/terracotta_punisher.vox new file mode 100644 index 0000000..35725cf Binary files /dev/null and b/assets/voxygen/voxel/npc/terracotta/terracotta_punisher.vox differ diff --git a/assets/voxygen/voxel/npc/terracotta/terracotta_pursuer.vox b/assets/voxygen/voxel/npc/terracotta/terracotta_pursuer.vox new file mode 100644 index 0000000..667ebc0 Binary files /dev/null and b/assets/voxygen/voxel/npc/terracotta/terracotta_pursuer.vox differ diff --git a/assets/voxygen/voxel/npc/tidalwarrior/male/foot_l.vox b/assets/voxygen/voxel/npc/tidalwarrior/male/foot_l.vox new file mode 100644 index 0000000..fb768e5 Binary files /dev/null and b/assets/voxygen/voxel/npc/tidalwarrior/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/tidalwarrior/male/foot_r.vox b/assets/voxygen/voxel/npc/tidalwarrior/male/foot_r.vox new file mode 100644 index 0000000..bb934ba Binary files /dev/null and b/assets/voxygen/voxel/npc/tidalwarrior/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/tidalwarrior/male/hand_l.vox b/assets/voxygen/voxel/npc/tidalwarrior/male/hand_l.vox new file mode 100644 index 0000000..acbddc7 Binary files /dev/null and b/assets/voxygen/voxel/npc/tidalwarrior/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/tidalwarrior/male/hand_r.vox b/assets/voxygen/voxel/npc/tidalwarrior/male/hand_r.vox new file mode 100644 index 0000000..3ea5aa4 Binary files /dev/null and b/assets/voxygen/voxel/npc/tidalwarrior/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/tidalwarrior/male/head.vox b/assets/voxygen/voxel/npc/tidalwarrior/male/head.vox new file mode 100644 index 0000000..899f2ba Binary files /dev/null and b/assets/voxygen/voxel/npc/tidalwarrior/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/tidalwarrior/male/leg_l.vox b/assets/voxygen/voxel/npc/tidalwarrior/male/leg_l.vox new file mode 100644 index 0000000..c5755e3 Binary files /dev/null and b/assets/voxygen/voxel/npc/tidalwarrior/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/tidalwarrior/male/leg_r.vox b/assets/voxygen/voxel/npc/tidalwarrior/male/leg_r.vox new file mode 100644 index 0000000..e63a0a1 Binary files /dev/null and b/assets/voxygen/voxel/npc/tidalwarrior/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/tidalwarrior/male/shoulder_l.vox b/assets/voxygen/voxel/npc/tidalwarrior/male/shoulder_l.vox new file mode 100644 index 0000000..e1056e7 Binary files /dev/null and b/assets/voxygen/voxel/npc/tidalwarrior/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/tidalwarrior/male/shoulder_r.vox b/assets/voxygen/voxel/npc/tidalwarrior/male/shoulder_r.vox new file mode 100644 index 0000000..191aee9 Binary files /dev/null and b/assets/voxygen/voxel/npc/tidalwarrior/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/tidalwarrior/male/torso_lower.vox b/assets/voxygen/voxel/npc/tidalwarrior/male/torso_lower.vox new file mode 100644 index 0000000..8cf2628 Binary files /dev/null and b/assets/voxygen/voxel/npc/tidalwarrior/male/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/tidalwarrior/male/torso_upper.vox b/assets/voxygen/voxel/npc/tidalwarrior/male/torso_upper.vox new file mode 100644 index 0000000..05b0b87 Binary files /dev/null and b/assets/voxygen/voxel/npc/tidalwarrior/male/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/tiger/male/ears.vox b/assets/voxygen/voxel/npc/tiger/male/ears.vox new file mode 100644 index 0000000..f311011 Binary files /dev/null and b/assets/voxygen/voxel/npc/tiger/male/ears.vox differ diff --git a/assets/voxygen/voxel/npc/tiger/male/foot_br.vox b/assets/voxygen/voxel/npc/tiger/male/foot_br.vox new file mode 100644 index 0000000..0648c82 Binary files /dev/null and b/assets/voxygen/voxel/npc/tiger/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/tiger/male/foot_fr.vox b/assets/voxygen/voxel/npc/tiger/male/foot_fr.vox new file mode 100644 index 0000000..bb81a11 Binary files /dev/null and b/assets/voxygen/voxel/npc/tiger/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/tiger/male/head.vox b/assets/voxygen/voxel/npc/tiger/male/head.vox new file mode 100644 index 0000000..7322619 Binary files /dev/null and b/assets/voxygen/voxel/npc/tiger/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/tiger/male/jaw.vox b/assets/voxygen/voxel/npc/tiger/male/jaw.vox new file mode 100644 index 0000000..71a464b Binary files /dev/null and b/assets/voxygen/voxel/npc/tiger/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/tiger/male/leg_br.vox b/assets/voxygen/voxel/npc/tiger/male/leg_br.vox new file mode 100644 index 0000000..88c6f0d Binary files /dev/null and b/assets/voxygen/voxel/npc/tiger/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/tiger/male/leg_fr.vox b/assets/voxygen/voxel/npc/tiger/male/leg_fr.vox new file mode 100644 index 0000000..31acc72 Binary files /dev/null and b/assets/voxygen/voxel/npc/tiger/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/tiger/male/neck.vox b/assets/voxygen/voxel/npc/tiger/male/neck.vox new file mode 100644 index 0000000..65f16c3 Binary files /dev/null and b/assets/voxygen/voxel/npc/tiger/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/tiger/male/tail.vox b/assets/voxygen/voxel/npc/tiger/male/tail.vox new file mode 100644 index 0000000..ce9088c Binary files /dev/null and b/assets/voxygen/voxel/npc/tiger/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/tiger/male/torso_back.vox b/assets/voxygen/voxel/npc/tiger/male/torso_back.vox new file mode 100644 index 0000000..fa6d9ad Binary files /dev/null and b/assets/voxygen/voxel/npc/tiger/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/tiger/male/torso_front.vox b/assets/voxygen/voxel/npc/tiger/male/torso_front.vox new file mode 100644 index 0000000..b4b74fd Binary files /dev/null and b/assets/voxygen/voxel/npc/tiger/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/tortoise/male/chest.vox b/assets/voxygen/voxel/npc/tortoise/male/chest.vox new file mode 100644 index 0000000..6c5f10c Binary files /dev/null and b/assets/voxygen/voxel/npc/tortoise/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/tortoise/male/foot_br.vox b/assets/voxygen/voxel/npc/tortoise/male/foot_br.vox new file mode 100644 index 0000000..ee24327 Binary files /dev/null and b/assets/voxygen/voxel/npc/tortoise/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/tortoise/male/foot_fr.vox b/assets/voxygen/voxel/npc/tortoise/male/foot_fr.vox new file mode 100644 index 0000000..78675fb Binary files /dev/null and b/assets/voxygen/voxel/npc/tortoise/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/tortoise/male/head_lower.vox b/assets/voxygen/voxel/npc/tortoise/male/head_lower.vox new file mode 100644 index 0000000..5f8d9da Binary files /dev/null and b/assets/voxygen/voxel/npc/tortoise/male/head_lower.vox differ diff --git a/assets/voxygen/voxel/npc/tortoise/male/head_upper.vox b/assets/voxygen/voxel/npc/tortoise/male/head_upper.vox new file mode 100644 index 0000000..1f7b9a9 Binary files /dev/null and b/assets/voxygen/voxel/npc/tortoise/male/head_upper.vox differ diff --git a/assets/voxygen/voxel/npc/tortoise/male/jaw.vox b/assets/voxygen/voxel/npc/tortoise/male/jaw.vox new file mode 100644 index 0000000..4dfd85e Binary files /dev/null and b/assets/voxygen/voxel/npc/tortoise/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/tortoise/male/tail_front.vox b/assets/voxygen/voxel/npc/tortoise/male/tail_front.vox new file mode 100644 index 0000000..b6845d2 Binary files /dev/null and b/assets/voxygen/voxel/npc/tortoise/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/toucan/female/chest.vox b/assets/voxygen/voxel/npc/toucan/female/chest.vox new file mode 100644 index 0000000..5c3834d Binary files /dev/null and b/assets/voxygen/voxel/npc/toucan/female/chest.vox differ diff --git a/assets/voxygen/voxel/npc/toucan/female/head.vox b/assets/voxygen/voxel/npc/toucan/female/head.vox new file mode 100644 index 0000000..455cd59 Binary files /dev/null and b/assets/voxygen/voxel/npc/toucan/female/head.vox differ diff --git a/assets/voxygen/voxel/npc/toucan/female/leg_r.vox b/assets/voxygen/voxel/npc/toucan/female/leg_r.vox new file mode 100644 index 0000000..3067455 Binary files /dev/null and b/assets/voxygen/voxel/npc/toucan/female/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/toucan/female/tail.vox b/assets/voxygen/voxel/npc/toucan/female/tail.vox new file mode 100644 index 0000000..dd88fd3 Binary files /dev/null and b/assets/voxygen/voxel/npc/toucan/female/tail.vox differ diff --git a/assets/voxygen/voxel/npc/toucan/female/wing_in_r.vox b/assets/voxygen/voxel/npc/toucan/female/wing_in_r.vox new file mode 100644 index 0000000..4da96cf Binary files /dev/null and b/assets/voxygen/voxel/npc/toucan/female/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/toucan/female/wing_out_r.vox b/assets/voxygen/voxel/npc/toucan/female/wing_out_r.vox new file mode 100644 index 0000000..a1313d4 Binary files /dev/null and b/assets/voxygen/voxel/npc/toucan/female/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/toucan/male/chest.vox b/assets/voxygen/voxel/npc/toucan/male/chest.vox new file mode 100644 index 0000000..59e06a0 Binary files /dev/null and b/assets/voxygen/voxel/npc/toucan/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/toucan/male/head.vox b/assets/voxygen/voxel/npc/toucan/male/head.vox new file mode 100644 index 0000000..07ad5b9 Binary files /dev/null and b/assets/voxygen/voxel/npc/toucan/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/toucan/male/leg_r.vox b/assets/voxygen/voxel/npc/toucan/male/leg_r.vox new file mode 100644 index 0000000..3418af6 Binary files /dev/null and b/assets/voxygen/voxel/npc/toucan/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/toucan/male/tail.vox b/assets/voxygen/voxel/npc/toucan/male/tail.vox new file mode 100644 index 0000000..289a794 Binary files /dev/null and b/assets/voxygen/voxel/npc/toucan/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/toucan/male/wing_in_r.vox b/assets/voxygen/voxel/npc/toucan/male/wing_in_r.vox new file mode 100644 index 0000000..810ddea Binary files /dev/null and b/assets/voxygen/voxel/npc/toucan/male/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/toucan/male/wing_out_r.vox b/assets/voxygen/voxel/npc/toucan/male/wing_out_r.vox new file mode 100644 index 0000000..b3dee35 Binary files /dev/null and b/assets/voxygen/voxel/npc/toucan/male/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/treant/male/chest_lower.vox b/assets/voxygen/voxel/npc/treant/male/chest_lower.vox new file mode 100644 index 0000000..a721069 Binary files /dev/null and b/assets/voxygen/voxel/npc/treant/male/chest_lower.vox differ diff --git a/assets/voxygen/voxel/npc/treant/male/chest_upper.vox b/assets/voxygen/voxel/npc/treant/male/chest_upper.vox new file mode 100644 index 0000000..9a9263a Binary files /dev/null and b/assets/voxygen/voxel/npc/treant/male/chest_upper.vox differ diff --git a/assets/voxygen/voxel/npc/treant/male/foot_l.vox b/assets/voxygen/voxel/npc/treant/male/foot_l.vox new file mode 100644 index 0000000..6e3f334 Binary files /dev/null and b/assets/voxygen/voxel/npc/treant/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/treant/male/foot_r.vox b/assets/voxygen/voxel/npc/treant/male/foot_r.vox new file mode 100644 index 0000000..9755150 Binary files /dev/null and b/assets/voxygen/voxel/npc/treant/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/treant/male/hand_l.vox b/assets/voxygen/voxel/npc/treant/male/hand_l.vox new file mode 100644 index 0000000..06a6568 Binary files /dev/null and b/assets/voxygen/voxel/npc/treant/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/treant/male/hand_r.vox b/assets/voxygen/voxel/npc/treant/male/hand_r.vox new file mode 100644 index 0000000..bbfc7f4 Binary files /dev/null and b/assets/voxygen/voxel/npc/treant/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/treant/male/head.vox b/assets/voxygen/voxel/npc/treant/male/head.vox new file mode 100644 index 0000000..805355c Binary files /dev/null and b/assets/voxygen/voxel/npc/treant/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/treant/male/jaw.vox b/assets/voxygen/voxel/npc/treant/male/jaw.vox new file mode 100644 index 0000000..f57dbc1 Binary files /dev/null and b/assets/voxygen/voxel/npc/treant/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/treant/male/leg_l.vox b/assets/voxygen/voxel/npc/treant/male/leg_l.vox new file mode 100644 index 0000000..8c29f42 Binary files /dev/null and b/assets/voxygen/voxel/npc/treant/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/treant/male/leg_r.vox b/assets/voxygen/voxel/npc/treant/male/leg_r.vox new file mode 100644 index 0000000..e8b11ff Binary files /dev/null and b/assets/voxygen/voxel/npc/treant/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/treant/male/shoulder_l.vox b/assets/voxygen/voxel/npc/treant/male/shoulder_l.vox new file mode 100644 index 0000000..4fe84a5 Binary files /dev/null and b/assets/voxygen/voxel/npc/treant/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/treant/male/shoulder_r.vox b/assets/voxygen/voxel/npc/treant/male/shoulder_r.vox new file mode 100644 index 0000000..8db9622 Binary files /dev/null and b/assets/voxygen/voxel/npc/treant/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/treant_sapling/male/chest.vox b/assets/voxygen/voxel/npc/treant_sapling/male/chest.vox new file mode 100644 index 0000000..00fff26 Binary files /dev/null and b/assets/voxygen/voxel/npc/treant_sapling/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/treant_sapling/male/foot_br.vox b/assets/voxygen/voxel/npc/treant_sapling/male/foot_br.vox new file mode 100644 index 0000000..5a2a9ea Binary files /dev/null and b/assets/voxygen/voxel/npc/treant_sapling/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/treant_sapling/male/foot_fr.vox b/assets/voxygen/voxel/npc/treant_sapling/male/foot_fr.vox new file mode 100644 index 0000000..5a2a9ea Binary files /dev/null and b/assets/voxygen/voxel/npc/treant_sapling/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/treasure_egg/male/chest.vox b/assets/voxygen/voxel/npc/treasure_egg/male/chest.vox new file mode 100644 index 0000000..1c898b0 Binary files /dev/null and b/assets/voxygen/voxel/npc/treasure_egg/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/treasure_egg/male/foot_r.vox b/assets/voxygen/voxel/npc/treasure_egg/male/foot_r.vox new file mode 100644 index 0000000..9d1e4ea Binary files /dev/null and b/assets/voxygen/voxel/npc/treasure_egg/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/troll_cave/male/foot_l.vox b/assets/voxygen/voxel/npc/troll_cave/male/foot_l.vox new file mode 100644 index 0000000..c83584b Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_cave/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/troll_cave/male/foot_r.vox b/assets/voxygen/voxel/npc/troll_cave/male/foot_r.vox new file mode 100644 index 0000000..83d1dd4 Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_cave/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/troll_cave/male/hand_l.vox b/assets/voxygen/voxel/npc/troll_cave/male/hand_l.vox new file mode 100644 index 0000000..dbc0db6 Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_cave/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/troll_cave/male/hand_r.vox b/assets/voxygen/voxel/npc/troll_cave/male/hand_r.vox new file mode 100644 index 0000000..fbe06ab Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_cave/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/troll_cave/male/head.vox b/assets/voxygen/voxel/npc/troll_cave/male/head.vox new file mode 100644 index 0000000..4037341 Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_cave/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/troll_cave/male/jaw.vox b/assets/voxygen/voxel/npc/troll_cave/male/jaw.vox new file mode 100644 index 0000000..c80bc59 Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_cave/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/troll_cave/male/leg_l.vox b/assets/voxygen/voxel/npc/troll_cave/male/leg_l.vox new file mode 100644 index 0000000..dd12fb7 Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_cave/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/troll_cave/male/leg_r.vox b/assets/voxygen/voxel/npc/troll_cave/male/leg_r.vox new file mode 100644 index 0000000..9eca9c9 Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_cave/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/troll_cave/male/shoulder_l.vox b/assets/voxygen/voxel/npc/troll_cave/male/shoulder_l.vox new file mode 100644 index 0000000..7a57c5e Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_cave/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/troll_cave/male/shoulder_r.vox b/assets/voxygen/voxel/npc/troll_cave/male/shoulder_r.vox new file mode 100644 index 0000000..3ee81b8 Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_cave/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/troll_cave/male/torso_lower.vox b/assets/voxygen/voxel/npc/troll_cave/male/torso_lower.vox new file mode 100644 index 0000000..20b4bd8 Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_cave/male/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/troll_cave/male/torso_upper.vox b/assets/voxygen/voxel/npc/troll_cave/male/torso_upper.vox new file mode 100644 index 0000000..96575af Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_cave/male/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/troll_mountain/male/foot_l.vox b/assets/voxygen/voxel/npc/troll_mountain/male/foot_l.vox new file mode 100644 index 0000000..3bf6bd9 Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_mountain/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/troll_mountain/male/foot_r.vox b/assets/voxygen/voxel/npc/troll_mountain/male/foot_r.vox new file mode 100644 index 0000000..6f731fe Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_mountain/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/troll_mountain/male/hand_l.vox b/assets/voxygen/voxel/npc/troll_mountain/male/hand_l.vox new file mode 100644 index 0000000..a3c1d9d Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_mountain/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/troll_mountain/male/hand_r.vox b/assets/voxygen/voxel/npc/troll_mountain/male/hand_r.vox new file mode 100644 index 0000000..d82a6f9 Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_mountain/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/troll_mountain/male/head.vox b/assets/voxygen/voxel/npc/troll_mountain/male/head.vox new file mode 100644 index 0000000..f1e6099 Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_mountain/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/troll_mountain/male/jaw.vox b/assets/voxygen/voxel/npc/troll_mountain/male/jaw.vox new file mode 100644 index 0000000..fb22b2e Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_mountain/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/troll_mountain/male/leg_l.vox b/assets/voxygen/voxel/npc/troll_mountain/male/leg_l.vox new file mode 100644 index 0000000..123f2b6 Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_mountain/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/troll_mountain/male/leg_r.vox b/assets/voxygen/voxel/npc/troll_mountain/male/leg_r.vox new file mode 100644 index 0000000..f71fec1 Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_mountain/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/troll_mountain/male/shoulder_l.vox b/assets/voxygen/voxel/npc/troll_mountain/male/shoulder_l.vox new file mode 100644 index 0000000..ba50e76 Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_mountain/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/troll_mountain/male/shoulder_r.vox b/assets/voxygen/voxel/npc/troll_mountain/male/shoulder_r.vox new file mode 100644 index 0000000..717897b Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_mountain/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/troll_mountain/male/torso_lower.vox b/assets/voxygen/voxel/npc/troll_mountain/male/torso_lower.vox new file mode 100644 index 0000000..a23a1aa Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_mountain/male/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/troll_mountain/male/torso_upper.vox b/assets/voxygen/voxel/npc/troll_mountain/male/torso_upper.vox new file mode 100644 index 0000000..816696f Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_mountain/male/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/troll_swamp/male/foot_l.vox b/assets/voxygen/voxel/npc/troll_swamp/male/foot_l.vox new file mode 100644 index 0000000..2908d79 Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_swamp/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/troll_swamp/male/foot_r.vox b/assets/voxygen/voxel/npc/troll_swamp/male/foot_r.vox new file mode 100644 index 0000000..542528f Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_swamp/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/troll_swamp/male/hand_l.vox b/assets/voxygen/voxel/npc/troll_swamp/male/hand_l.vox new file mode 100644 index 0000000..11e8677 Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_swamp/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/troll_swamp/male/hand_r.vox b/assets/voxygen/voxel/npc/troll_swamp/male/hand_r.vox new file mode 100644 index 0000000..3165bc0 Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_swamp/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/troll_swamp/male/head.vox b/assets/voxygen/voxel/npc/troll_swamp/male/head.vox new file mode 100644 index 0000000..50be8ac Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_swamp/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/troll_swamp/male/jaw.vox b/assets/voxygen/voxel/npc/troll_swamp/male/jaw.vox new file mode 100644 index 0000000..5247a57 Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_swamp/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/troll_swamp/male/leg_l.vox b/assets/voxygen/voxel/npc/troll_swamp/male/leg_l.vox new file mode 100644 index 0000000..b6789c0 Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_swamp/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/troll_swamp/male/leg_r.vox b/assets/voxygen/voxel/npc/troll_swamp/male/leg_r.vox new file mode 100644 index 0000000..abfed7c Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_swamp/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/troll_swamp/male/shoulder_l.vox b/assets/voxygen/voxel/npc/troll_swamp/male/shoulder_l.vox new file mode 100644 index 0000000..3bb9d80 Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_swamp/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/troll_swamp/male/shoulder_r.vox b/assets/voxygen/voxel/npc/troll_swamp/male/shoulder_r.vox new file mode 100644 index 0000000..bc9bc8a Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_swamp/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/troll_swamp/male/torso_lower.vox b/assets/voxygen/voxel/npc/troll_swamp/male/torso_lower.vox new file mode 100644 index 0000000..c0e32d1 Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_swamp/male/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/troll_swamp/male/torso_upper.vox b/assets/voxygen/voxel/npc/troll_swamp/male/torso_upper.vox new file mode 100644 index 0000000..fb8af3a Binary files /dev/null and b/assets/voxygen/voxel/npc/troll_swamp/male/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/truffler/male/chest.vox b/assets/voxygen/voxel/npc/truffler/male/chest.vox new file mode 100644 index 0000000..f979ed0 Binary files /dev/null and b/assets/voxygen/voxel/npc/truffler/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/truffler/male/foot_br.vox b/assets/voxygen/voxel/npc/truffler/male/foot_br.vox new file mode 100644 index 0000000..8b1e894 Binary files /dev/null and b/assets/voxygen/voxel/npc/truffler/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/truffler/male/foot_fr.vox b/assets/voxygen/voxel/npc/truffler/male/foot_fr.vox new file mode 100644 index 0000000..8b1e894 Binary files /dev/null and b/assets/voxygen/voxel/npc/truffler/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/truffler/male/head.vox b/assets/voxygen/voxel/npc/truffler/male/head.vox new file mode 100644 index 0000000..ccaf7bd Binary files /dev/null and b/assets/voxygen/voxel/npc/truffler/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/tursus/male/foot_l.vox b/assets/voxygen/voxel/npc/tursus/male/foot_l.vox new file mode 100644 index 0000000..abb1460 Binary files /dev/null and b/assets/voxygen/voxel/npc/tursus/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/tursus/male/foot_r.vox b/assets/voxygen/voxel/npc/tursus/male/foot_r.vox new file mode 100644 index 0000000..1d26cb1 Binary files /dev/null and b/assets/voxygen/voxel/npc/tursus/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/tursus/male/hand_l.vox b/assets/voxygen/voxel/npc/tursus/male/hand_l.vox new file mode 100644 index 0000000..4b1cfdf Binary files /dev/null and b/assets/voxygen/voxel/npc/tursus/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/tursus/male/hand_r.vox b/assets/voxygen/voxel/npc/tursus/male/hand_r.vox new file mode 100644 index 0000000..f13374f Binary files /dev/null and b/assets/voxygen/voxel/npc/tursus/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/tursus/male/head.vox b/assets/voxygen/voxel/npc/tursus/male/head.vox new file mode 100644 index 0000000..b2ad868 Binary files /dev/null and b/assets/voxygen/voxel/npc/tursus/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/tursus/male/jaw.vox b/assets/voxygen/voxel/npc/tursus/male/jaw.vox new file mode 100644 index 0000000..18c23e1 Binary files /dev/null and b/assets/voxygen/voxel/npc/tursus/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/tursus/male/leg_l.vox b/assets/voxygen/voxel/npc/tursus/male/leg_l.vox new file mode 100644 index 0000000..369413b Binary files /dev/null and b/assets/voxygen/voxel/npc/tursus/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/tursus/male/leg_r.vox b/assets/voxygen/voxel/npc/tursus/male/leg_r.vox new file mode 100644 index 0000000..844d58b Binary files /dev/null and b/assets/voxygen/voxel/npc/tursus/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/tursus/male/shoulder_l.vox b/assets/voxygen/voxel/npc/tursus/male/shoulder_l.vox new file mode 100644 index 0000000..eaf4886 Binary files /dev/null and b/assets/voxygen/voxel/npc/tursus/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/tursus/male/shoulder_r.vox b/assets/voxygen/voxel/npc/tursus/male/shoulder_r.vox new file mode 100644 index 0000000..08ee799 Binary files /dev/null and b/assets/voxygen/voxel/npc/tursus/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/tursus/male/torso_lower.vox b/assets/voxygen/voxel/npc/tursus/male/torso_lower.vox new file mode 100644 index 0000000..8bb23e1 Binary files /dev/null and b/assets/voxygen/voxel/npc/tursus/male/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/tursus/male/torso_upper.vox b/assets/voxygen/voxel/npc/tursus/male/torso_upper.vox new file mode 100644 index 0000000..569f3f6 Binary files /dev/null and b/assets/voxygen/voxel/npc/tursus/male/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/turtle/male/chest.vox b/assets/voxygen/voxel/npc/turtle/male/chest.vox new file mode 100644 index 0000000..2a3005a Binary files /dev/null and b/assets/voxygen/voxel/npc/turtle/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/turtle/male/foot_br.vox b/assets/voxygen/voxel/npc/turtle/male/foot_br.vox new file mode 100644 index 0000000..9daf18d Binary files /dev/null and b/assets/voxygen/voxel/npc/turtle/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/turtle/male/foot_fr.vox b/assets/voxygen/voxel/npc/turtle/male/foot_fr.vox new file mode 100644 index 0000000..f9ccb36 Binary files /dev/null and b/assets/voxygen/voxel/npc/turtle/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/turtle/male/head.vox b/assets/voxygen/voxel/npc/turtle/male/head.vox new file mode 100644 index 0000000..0340fff Binary files /dev/null and b/assets/voxygen/voxel/npc/turtle/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/turtle/male/tail.vox b/assets/voxygen/voxel/npc/turtle/male/tail.vox new file mode 100644 index 0000000..c233712 Binary files /dev/null and b/assets/voxygen/voxel/npc/turtle/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/tuskram/male/foot_br.vox b/assets/voxygen/voxel/npc/tuskram/male/foot_br.vox new file mode 100644 index 0000000..25afd14 Binary files /dev/null and b/assets/voxygen/voxel/npc/tuskram/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/tuskram/male/foot_fr.vox b/assets/voxygen/voxel/npc/tuskram/male/foot_fr.vox new file mode 100644 index 0000000..fe98e88 Binary files /dev/null and b/assets/voxygen/voxel/npc/tuskram/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/tuskram/male/head.vox b/assets/voxygen/voxel/npc/tuskram/male/head.vox new file mode 100644 index 0000000..28c86ed Binary files /dev/null and b/assets/voxygen/voxel/npc/tuskram/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/tuskram/male/jaw.vox b/assets/voxygen/voxel/npc/tuskram/male/jaw.vox new file mode 100644 index 0000000..0588cc9 Binary files /dev/null and b/assets/voxygen/voxel/npc/tuskram/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/tuskram/male/leg_br.vox b/assets/voxygen/voxel/npc/tuskram/male/leg_br.vox new file mode 100644 index 0000000..552fb79 Binary files /dev/null and b/assets/voxygen/voxel/npc/tuskram/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/tuskram/male/leg_fr.vox b/assets/voxygen/voxel/npc/tuskram/male/leg_fr.vox new file mode 100644 index 0000000..6a4b605 Binary files /dev/null and b/assets/voxygen/voxel/npc/tuskram/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/tuskram/male/neck.vox b/assets/voxygen/voxel/npc/tuskram/male/neck.vox new file mode 100644 index 0000000..8087dbf Binary files /dev/null and b/assets/voxygen/voxel/npc/tuskram/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/tuskram/male/tail.vox b/assets/voxygen/voxel/npc/tuskram/male/tail.vox new file mode 100644 index 0000000..3f65718 Binary files /dev/null and b/assets/voxygen/voxel/npc/tuskram/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/tuskram/male/torso_back.vox b/assets/voxygen/voxel/npc/tuskram/male/torso_back.vox new file mode 100644 index 0000000..e16ceba Binary files /dev/null and b/assets/voxygen/voxel/npc/tuskram/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/tuskram/male/torso_front.vox b/assets/voxygen/voxel/npc/tuskram/male/torso_front.vox new file mode 100644 index 0000000..a03ff82 Binary files /dev/null and b/assets/voxygen/voxel/npc/tuskram/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/vampire_bat/male/chest.vox b/assets/voxygen/voxel/npc/vampire_bat/male/chest.vox new file mode 100644 index 0000000..5160caa Binary files /dev/null and b/assets/voxygen/voxel/npc/vampire_bat/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/vampire_bat/male/head.vox b/assets/voxygen/voxel/npc/vampire_bat/male/head.vox new file mode 100644 index 0000000..27dc1cf Binary files /dev/null and b/assets/voxygen/voxel/npc/vampire_bat/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/vampire_bat/male/leg_r.vox b/assets/voxygen/voxel/npc/vampire_bat/male/leg_r.vox new file mode 100644 index 0000000..7c6b5f0 Binary files /dev/null and b/assets/voxygen/voxel/npc/vampire_bat/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/vampire_bat/male/tail.vox b/assets/voxygen/voxel/npc/vampire_bat/male/tail.vox new file mode 100644 index 0000000..0dba190 Binary files /dev/null and b/assets/voxygen/voxel/npc/vampire_bat/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/vampire_bat/male/wing_in_r.vox b/assets/voxygen/voxel/npc/vampire_bat/male/wing_in_r.vox new file mode 100644 index 0000000..1baa018 Binary files /dev/null and b/assets/voxygen/voxel/npc/vampire_bat/male/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/vampire_bat/male/wing_out_r.vox b/assets/voxygen/voxel/npc/vampire_bat/male/wing_out_r.vox new file mode 100644 index 0000000..13bc78a Binary files /dev/null and b/assets/voxygen/voxel/npc/vampire_bat/male/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/weevil/male/chest.vox b/assets/voxygen/voxel/npc/weevil/male/chest.vox new file mode 100644 index 0000000..d0bddb8 Binary files /dev/null and b/assets/voxygen/voxel/npc/weevil/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/weevil/male/head.vox b/assets/voxygen/voxel/npc/weevil/male/head.vox new file mode 100644 index 0000000..8f2f18a Binary files /dev/null and b/assets/voxygen/voxel/npc/weevil/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/weevil/male/leg_bcr.vox b/assets/voxygen/voxel/npc/weevil/male/leg_bcr.vox new file mode 100644 index 0000000..b71baec Binary files /dev/null and b/assets/voxygen/voxel/npc/weevil/male/leg_bcr.vox differ diff --git a/assets/voxygen/voxel/npc/weevil/male/leg_fcr.vox b/assets/voxygen/voxel/npc/weevil/male/leg_fcr.vox new file mode 100644 index 0000000..5691cca Binary files /dev/null and b/assets/voxygen/voxel/npc/weevil/male/leg_fcr.vox differ diff --git a/assets/voxygen/voxel/npc/weevil/male/leg_fr.vox b/assets/voxygen/voxel/npc/weevil/male/leg_fr.vox new file mode 100644 index 0000000..2559ff1 Binary files /dev/null and b/assets/voxygen/voxel/npc/weevil/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/weevil/male/wing_br.vox b/assets/voxygen/voxel/npc/weevil/male/wing_br.vox new file mode 100644 index 0000000..c1b0ecf Binary files /dev/null and b/assets/voxygen/voxel/npc/weevil/male/wing_br.vox differ diff --git a/assets/voxygen/voxel/npc/weevil/male/wing_fr.vox b/assets/voxygen/voxel/npc/weevil/male/wing_fr.vox new file mode 100644 index 0000000..e9efb6d Binary files /dev/null and b/assets/voxygen/voxel/npc/weevil/male/wing_fr.vox differ diff --git a/assets/voxygen/voxel/npc/wendigo/male/foot_l.vox b/assets/voxygen/voxel/npc/wendigo/male/foot_l.vox new file mode 100644 index 0000000..309f580 Binary files /dev/null and b/assets/voxygen/voxel/npc/wendigo/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/wendigo/male/foot_r.vox b/assets/voxygen/voxel/npc/wendigo/male/foot_r.vox new file mode 100644 index 0000000..a6758dc Binary files /dev/null and b/assets/voxygen/voxel/npc/wendigo/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/wendigo/male/hand_l.vox b/assets/voxygen/voxel/npc/wendigo/male/hand_l.vox new file mode 100644 index 0000000..a059bc4 Binary files /dev/null and b/assets/voxygen/voxel/npc/wendigo/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/wendigo/male/hand_r.vox b/assets/voxygen/voxel/npc/wendigo/male/hand_r.vox new file mode 100644 index 0000000..8c252ed Binary files /dev/null and b/assets/voxygen/voxel/npc/wendigo/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/wendigo/male/head.vox b/assets/voxygen/voxel/npc/wendigo/male/head.vox new file mode 100644 index 0000000..a282ff4 Binary files /dev/null and b/assets/voxygen/voxel/npc/wendigo/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/wendigo/male/leg_l.vox b/assets/voxygen/voxel/npc/wendigo/male/leg_l.vox new file mode 100644 index 0000000..3567514 Binary files /dev/null and b/assets/voxygen/voxel/npc/wendigo/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/wendigo/male/leg_r.vox b/assets/voxygen/voxel/npc/wendigo/male/leg_r.vox new file mode 100644 index 0000000..92a20e6 Binary files /dev/null and b/assets/voxygen/voxel/npc/wendigo/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/wendigo/male/shoulder_l.vox b/assets/voxygen/voxel/npc/wendigo/male/shoulder_l.vox new file mode 100644 index 0000000..8f3e5e0 Binary files /dev/null and b/assets/voxygen/voxel/npc/wendigo/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/wendigo/male/shoulder_r.vox b/assets/voxygen/voxel/npc/wendigo/male/shoulder_r.vox new file mode 100644 index 0000000..5e827ba Binary files /dev/null and b/assets/voxygen/voxel/npc/wendigo/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/wendigo/male/torso_lower.vox b/assets/voxygen/voxel/npc/wendigo/male/torso_lower.vox new file mode 100644 index 0000000..aa8aa32 Binary files /dev/null and b/assets/voxygen/voxel/npc/wendigo/male/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/wendigo/male/torso_upper.vox b/assets/voxygen/voxel/npc/wendigo/male/torso_upper.vox new file mode 100644 index 0000000..48cf526 Binary files /dev/null and b/assets/voxygen/voxel/npc/wendigo/male/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/werewolf/male/foot_l.vox b/assets/voxygen/voxel/npc/werewolf/male/foot_l.vox new file mode 100644 index 0000000..6c2e27a Binary files /dev/null and b/assets/voxygen/voxel/npc/werewolf/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/werewolf/male/foot_r.vox b/assets/voxygen/voxel/npc/werewolf/male/foot_r.vox new file mode 100644 index 0000000..3bffbd1 Binary files /dev/null and b/assets/voxygen/voxel/npc/werewolf/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/werewolf/male/hand_l.vox b/assets/voxygen/voxel/npc/werewolf/male/hand_l.vox new file mode 100644 index 0000000..1ad3a1b Binary files /dev/null and b/assets/voxygen/voxel/npc/werewolf/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/werewolf/male/hand_r.vox b/assets/voxygen/voxel/npc/werewolf/male/hand_r.vox new file mode 100644 index 0000000..ab79a11 Binary files /dev/null and b/assets/voxygen/voxel/npc/werewolf/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/werewolf/male/head.vox b/assets/voxygen/voxel/npc/werewolf/male/head.vox new file mode 100644 index 0000000..872dbca Binary files /dev/null and b/assets/voxygen/voxel/npc/werewolf/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/werewolf/male/jaw.vox b/assets/voxygen/voxel/npc/werewolf/male/jaw.vox new file mode 100644 index 0000000..a64982d Binary files /dev/null and b/assets/voxygen/voxel/npc/werewolf/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/werewolf/male/leg_l.vox b/assets/voxygen/voxel/npc/werewolf/male/leg_l.vox new file mode 100644 index 0000000..a1a27fb Binary files /dev/null and b/assets/voxygen/voxel/npc/werewolf/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/werewolf/male/leg_r.vox b/assets/voxygen/voxel/npc/werewolf/male/leg_r.vox new file mode 100644 index 0000000..5c86600 Binary files /dev/null and b/assets/voxygen/voxel/npc/werewolf/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/werewolf/male/shoulder_l.vox b/assets/voxygen/voxel/npc/werewolf/male/shoulder_l.vox new file mode 100644 index 0000000..359b1b4 Binary files /dev/null and b/assets/voxygen/voxel/npc/werewolf/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/werewolf/male/shoulder_r.vox b/assets/voxygen/voxel/npc/werewolf/male/shoulder_r.vox new file mode 100644 index 0000000..c0c2b59 Binary files /dev/null and b/assets/voxygen/voxel/npc/werewolf/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/werewolf/male/tail.vox b/assets/voxygen/voxel/npc/werewolf/male/tail.vox new file mode 100644 index 0000000..2026620 Binary files /dev/null and b/assets/voxygen/voxel/npc/werewolf/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/werewolf/male/torso_lower.vox b/assets/voxygen/voxel/npc/werewolf/male/torso_lower.vox new file mode 100644 index 0000000..ff3ab32 Binary files /dev/null and b/assets/voxygen/voxel/npc/werewolf/male/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/werewolf/male/torso_upper.vox b/assets/voxygen/voxel/npc/werewolf/male/torso_upper.vox new file mode 100644 index 0000000..6dcd311 Binary files /dev/null and b/assets/voxygen/voxel/npc/werewolf/male/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/wolf/male/ears.vox b/assets/voxygen/voxel/npc/wolf/male/ears.vox new file mode 100644 index 0000000..f75ce27 Binary files /dev/null and b/assets/voxygen/voxel/npc/wolf/male/ears.vox differ diff --git a/assets/voxygen/voxel/npc/wolf/male/foot_br.vox b/assets/voxygen/voxel/npc/wolf/male/foot_br.vox new file mode 100644 index 0000000..9d006d3 Binary files /dev/null and b/assets/voxygen/voxel/npc/wolf/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/wolf/male/foot_fr.vox b/assets/voxygen/voxel/npc/wolf/male/foot_fr.vox new file mode 100644 index 0000000..0229442 Binary files /dev/null and b/assets/voxygen/voxel/npc/wolf/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/wolf/male/head.vox b/assets/voxygen/voxel/npc/wolf/male/head.vox new file mode 100644 index 0000000..8086682 Binary files /dev/null and b/assets/voxygen/voxel/npc/wolf/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/wolf/male/jaw.vox b/assets/voxygen/voxel/npc/wolf/male/jaw.vox new file mode 100644 index 0000000..003d657 Binary files /dev/null and b/assets/voxygen/voxel/npc/wolf/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/wolf/male/leg_br.vox b/assets/voxygen/voxel/npc/wolf/male/leg_br.vox new file mode 100644 index 0000000..fc5af2b Binary files /dev/null and b/assets/voxygen/voxel/npc/wolf/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/wolf/male/leg_fr.vox b/assets/voxygen/voxel/npc/wolf/male/leg_fr.vox new file mode 100644 index 0000000..609d9e7 Binary files /dev/null and b/assets/voxygen/voxel/npc/wolf/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/wolf/male/neck.vox b/assets/voxygen/voxel/npc/wolf/male/neck.vox new file mode 100644 index 0000000..0745d1e Binary files /dev/null and b/assets/voxygen/voxel/npc/wolf/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/wolf/male/tail.vox b/assets/voxygen/voxel/npc/wolf/male/tail.vox new file mode 100644 index 0000000..3d91af7 Binary files /dev/null and b/assets/voxygen/voxel/npc/wolf/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/wolf/male/torso_back.vox b/assets/voxygen/voxel/npc/wolf/male/torso_back.vox new file mode 100644 index 0000000..18748ca Binary files /dev/null and b/assets/voxygen/voxel/npc/wolf/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/wolf/male/torso_front.vox b/assets/voxygen/voxel/npc/wolf/male/torso_front.vox new file mode 100644 index 0000000..08ebfd6 Binary files /dev/null and b/assets/voxygen/voxel/npc/wolf/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/woodgolem/male/chest_lower.vox b/assets/voxygen/voxel/npc/woodgolem/male/chest_lower.vox new file mode 100644 index 0000000..c18170c Binary files /dev/null and b/assets/voxygen/voxel/npc/woodgolem/male/chest_lower.vox differ diff --git a/assets/voxygen/voxel/npc/woodgolem/male/chest_upper.vox b/assets/voxygen/voxel/npc/woodgolem/male/chest_upper.vox new file mode 100644 index 0000000..c6ed711 Binary files /dev/null and b/assets/voxygen/voxel/npc/woodgolem/male/chest_upper.vox differ diff --git a/assets/voxygen/voxel/npc/woodgolem/male/foot_l.vox b/assets/voxygen/voxel/npc/woodgolem/male/foot_l.vox new file mode 100644 index 0000000..5af1345 Binary files /dev/null and b/assets/voxygen/voxel/npc/woodgolem/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/woodgolem/male/foot_r.vox b/assets/voxygen/voxel/npc/woodgolem/male/foot_r.vox new file mode 100644 index 0000000..833ca72 Binary files /dev/null and b/assets/voxygen/voxel/npc/woodgolem/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/woodgolem/male/hand_l.vox b/assets/voxygen/voxel/npc/woodgolem/male/hand_l.vox new file mode 100644 index 0000000..ee6cdd2 Binary files /dev/null and b/assets/voxygen/voxel/npc/woodgolem/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/woodgolem/male/hand_r.vox b/assets/voxygen/voxel/npc/woodgolem/male/hand_r.vox new file mode 100644 index 0000000..13cdf1f Binary files /dev/null and b/assets/voxygen/voxel/npc/woodgolem/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/woodgolem/male/head.vox b/assets/voxygen/voxel/npc/woodgolem/male/head.vox new file mode 100644 index 0000000..3cb917c Binary files /dev/null and b/assets/voxygen/voxel/npc/woodgolem/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/woodgolem/male/leg_l.vox b/assets/voxygen/voxel/npc/woodgolem/male/leg_l.vox new file mode 100644 index 0000000..89c56c5 Binary files /dev/null and b/assets/voxygen/voxel/npc/woodgolem/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/woodgolem/male/leg_r.vox b/assets/voxygen/voxel/npc/woodgolem/male/leg_r.vox new file mode 100644 index 0000000..3c9ea5d Binary files /dev/null and b/assets/voxygen/voxel/npc/woodgolem/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/woodgolem/male/shoulder_l.vox b/assets/voxygen/voxel/npc/woodgolem/male/shoulder_l.vox new file mode 100644 index 0000000..2443222 Binary files /dev/null and b/assets/voxygen/voxel/npc/woodgolem/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/woodgolem/male/shoulder_r.vox b/assets/voxygen/voxel/npc/woodgolem/male/shoulder_r.vox new file mode 100644 index 0000000..06aef20 Binary files /dev/null and b/assets/voxygen/voxel/npc/woodgolem/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_cloud/male/beak.vox b/assets/voxygen/voxel/npc/wyvern_cloud/male/beak.vox new file mode 100644 index 0000000..61abbd9 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_cloud/male/beak.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_cloud/male/chest.vox b/assets/voxygen/voxel/npc/wyvern_cloud/male/chest.vox new file mode 100644 index 0000000..244b4b7 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_cloud/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_cloud/male/foot_r.vox b/assets/voxygen/voxel/npc/wyvern_cloud/male/foot_r.vox new file mode 100644 index 0000000..3784564 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_cloud/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_cloud/male/head.vox b/assets/voxygen/voxel/npc/wyvern_cloud/male/head.vox new file mode 100644 index 0000000..1d084f1 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_cloud/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_cloud/male/jaw.vox b/assets/voxygen/voxel/npc/wyvern_cloud/male/jaw.vox new file mode 100644 index 0000000..61abbd9 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_cloud/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_cloud/male/leg_r.vox b/assets/voxygen/voxel/npc/wyvern_cloud/male/leg_r.vox new file mode 100644 index 0000000..5fa044e Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_cloud/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_cloud/male/neck.vox b/assets/voxygen/voxel/npc/wyvern_cloud/male/neck.vox new file mode 100644 index 0000000..2ca23b9 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_cloud/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_cloud/male/tail_front.vox b/assets/voxygen/voxel/npc/wyvern_cloud/male/tail_front.vox new file mode 100644 index 0000000..39d1bb8 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_cloud/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_cloud/male/tail_rear.vox b/assets/voxygen/voxel/npc/wyvern_cloud/male/tail_rear.vox new file mode 100644 index 0000000..ccbc579 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_cloud/male/tail_rear.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_cloud/male/wing_in_r.vox b/assets/voxygen/voxel/npc/wyvern_cloud/male/wing_in_r.vox new file mode 100644 index 0000000..11e998f Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_cloud/male/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_cloud/male/wing_mid_r.vox b/assets/voxygen/voxel/npc/wyvern_cloud/male/wing_mid_r.vox new file mode 100644 index 0000000..e6e7c69 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_cloud/male/wing_mid_r.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_cloud/male/wing_out_r.vox b/assets/voxygen/voxel/npc/wyvern_cloud/male/wing_out_r.vox new file mode 100644 index 0000000..1e325a2 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_cloud/male/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_flame/male/beak.vox b/assets/voxygen/voxel/npc/wyvern_flame/male/beak.vox new file mode 100644 index 0000000..b3e72e1 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_flame/male/beak.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_flame/male/chest.vox b/assets/voxygen/voxel/npc/wyvern_flame/male/chest.vox new file mode 100644 index 0000000..e75c5b4 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_flame/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_flame/male/foot_r.vox b/assets/voxygen/voxel/npc/wyvern_flame/male/foot_r.vox new file mode 100644 index 0000000..c0d92b1 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_flame/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_flame/male/head.vox b/assets/voxygen/voxel/npc/wyvern_flame/male/head.vox new file mode 100644 index 0000000..d835eb5 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_flame/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_flame/male/leg_r.vox b/assets/voxygen/voxel/npc/wyvern_flame/male/leg_r.vox new file mode 100644 index 0000000..5438398 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_flame/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_flame/male/neck.vox b/assets/voxygen/voxel/npc/wyvern_flame/male/neck.vox new file mode 100644 index 0000000..2b24799 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_flame/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_flame/male/tail_front.vox b/assets/voxygen/voxel/npc/wyvern_flame/male/tail_front.vox new file mode 100644 index 0000000..91823af Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_flame/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_flame/male/tail_rear.vox b/assets/voxygen/voxel/npc/wyvern_flame/male/tail_rear.vox new file mode 100644 index 0000000..c1b8536 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_flame/male/tail_rear.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_flame/male/wing_in_r.vox b/assets/voxygen/voxel/npc/wyvern_flame/male/wing_in_r.vox new file mode 100644 index 0000000..8acfe7a Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_flame/male/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_flame/male/wing_mid_r.vox b/assets/voxygen/voxel/npc/wyvern_flame/male/wing_mid_r.vox new file mode 100644 index 0000000..b3ba76d Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_flame/male/wing_mid_r.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_flame/male/wing_out_r.vox b/assets/voxygen/voxel/npc/wyvern_flame/male/wing_out_r.vox new file mode 100644 index 0000000..e0a5c0a Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_flame/male/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_frost/male/beak.vox b/assets/voxygen/voxel/npc/wyvern_frost/male/beak.vox new file mode 100644 index 0000000..52ea5ba Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_frost/male/beak.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_frost/male/chest.vox b/assets/voxygen/voxel/npc/wyvern_frost/male/chest.vox new file mode 100644 index 0000000..afddb11 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_frost/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_frost/male/foot_r.vox b/assets/voxygen/voxel/npc/wyvern_frost/male/foot_r.vox new file mode 100644 index 0000000..38b27fb Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_frost/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_frost/male/head.vox b/assets/voxygen/voxel/npc/wyvern_frost/male/head.vox new file mode 100644 index 0000000..8b62082 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_frost/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_frost/male/leg_r.vox b/assets/voxygen/voxel/npc/wyvern_frost/male/leg_r.vox new file mode 100644 index 0000000..cc4b34a Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_frost/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_frost/male/neck.vox b/assets/voxygen/voxel/npc/wyvern_frost/male/neck.vox new file mode 100644 index 0000000..796f1b8 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_frost/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_frost/male/tail_front.vox b/assets/voxygen/voxel/npc/wyvern_frost/male/tail_front.vox new file mode 100644 index 0000000..187c022 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_frost/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_frost/male/tail_rear.vox b/assets/voxygen/voxel/npc/wyvern_frost/male/tail_rear.vox new file mode 100644 index 0000000..9a6cec1 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_frost/male/tail_rear.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_frost/male/wing_in_r.vox b/assets/voxygen/voxel/npc/wyvern_frost/male/wing_in_r.vox new file mode 100644 index 0000000..1d30ca0 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_frost/male/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_frost/male/wing_mid_r.vox b/assets/voxygen/voxel/npc/wyvern_frost/male/wing_mid_r.vox new file mode 100644 index 0000000..b96ba10 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_frost/male/wing_mid_r.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_frost/male/wing_out_r.vox b/assets/voxygen/voxel/npc/wyvern_frost/male/wing_out_r.vox new file mode 100644 index 0000000..6b33b87 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_frost/male/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_sea/male/beak.vox b/assets/voxygen/voxel/npc/wyvern_sea/male/beak.vox new file mode 100644 index 0000000..956bd01 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_sea/male/beak.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_sea/male/chest.vox b/assets/voxygen/voxel/npc/wyvern_sea/male/chest.vox new file mode 100644 index 0000000..8b66811 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_sea/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_sea/male/foot_r.vox b/assets/voxygen/voxel/npc/wyvern_sea/male/foot_r.vox new file mode 100644 index 0000000..2c926b1 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_sea/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_sea/male/head.vox b/assets/voxygen/voxel/npc/wyvern_sea/male/head.vox new file mode 100644 index 0000000..d9f0e90 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_sea/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_sea/male/leg_r.vox b/assets/voxygen/voxel/npc/wyvern_sea/male/leg_r.vox new file mode 100644 index 0000000..21078e1 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_sea/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_sea/male/neck.vox b/assets/voxygen/voxel/npc/wyvern_sea/male/neck.vox new file mode 100644 index 0000000..b135864 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_sea/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_sea/male/tail_front.vox b/assets/voxygen/voxel/npc/wyvern_sea/male/tail_front.vox new file mode 100644 index 0000000..f968cb4 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_sea/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_sea/male/tail_rear.vox b/assets/voxygen/voxel/npc/wyvern_sea/male/tail_rear.vox new file mode 100644 index 0000000..1ce8273 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_sea/male/tail_rear.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_sea/male/wing_in_r.vox b/assets/voxygen/voxel/npc/wyvern_sea/male/wing_in_r.vox new file mode 100644 index 0000000..302770f Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_sea/male/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_sea/male/wing_mid_r.vox b/assets/voxygen/voxel/npc/wyvern_sea/male/wing_mid_r.vox new file mode 100644 index 0000000..7ec087b Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_sea/male/wing_mid_r.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_sea/male/wing_out_r.vox b/assets/voxygen/voxel/npc/wyvern_sea/male/wing_out_r.vox new file mode 100644 index 0000000..b860bff Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_sea/male/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_weald/male/beak.vox b/assets/voxygen/voxel/npc/wyvern_weald/male/beak.vox new file mode 100644 index 0000000..c3d5db8 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_weald/male/beak.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_weald/male/chest.vox b/assets/voxygen/voxel/npc/wyvern_weald/male/chest.vox new file mode 100644 index 0000000..24628f5 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_weald/male/chest.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_weald/male/foot_r.vox b/assets/voxygen/voxel/npc/wyvern_weald/male/foot_r.vox new file mode 100644 index 0000000..e634a3d Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_weald/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_weald/male/head.vox b/assets/voxygen/voxel/npc/wyvern_weald/male/head.vox new file mode 100644 index 0000000..d9cb808 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_weald/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_weald/male/leg_r.vox b/assets/voxygen/voxel/npc/wyvern_weald/male/leg_r.vox new file mode 100644 index 0000000..077c15b Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_weald/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_weald/male/neck.vox b/assets/voxygen/voxel/npc/wyvern_weald/male/neck.vox new file mode 100644 index 0000000..99c4259 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_weald/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_weald/male/tail_front.vox b/assets/voxygen/voxel/npc/wyvern_weald/male/tail_front.vox new file mode 100644 index 0000000..8e4d2e4 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_weald/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_weald/male/tail_rear.vox b/assets/voxygen/voxel/npc/wyvern_weald/male/tail_rear.vox new file mode 100644 index 0000000..85330a7 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_weald/male/tail_rear.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_weald/male/wing_in_r.vox b/assets/voxygen/voxel/npc/wyvern_weald/male/wing_in_r.vox new file mode 100644 index 0000000..feed830 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_weald/male/wing_in_r.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_weald/male/wing_mid_r.vox b/assets/voxygen/voxel/npc/wyvern_weald/male/wing_mid_r.vox new file mode 100644 index 0000000..f508703 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_weald/male/wing_mid_r.vox differ diff --git a/assets/voxygen/voxel/npc/wyvern_weald/male/wing_out_r.vox b/assets/voxygen/voxel/npc/wyvern_weald/male/wing_out_r.vox new file mode 100644 index 0000000..5df1d39 Binary files /dev/null and b/assets/voxygen/voxel/npc/wyvern_weald/male/wing_out_r.vox differ diff --git a/assets/voxygen/voxel/npc/yak/male/ears.vox b/assets/voxygen/voxel/npc/yak/male/ears.vox new file mode 100644 index 0000000..90d47fc Binary files /dev/null and b/assets/voxygen/voxel/npc/yak/male/ears.vox differ diff --git a/assets/voxygen/voxel/npc/yak/male/foot_br.vox b/assets/voxygen/voxel/npc/yak/male/foot_br.vox new file mode 100644 index 0000000..31d8865 Binary files /dev/null and b/assets/voxygen/voxel/npc/yak/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/yak/male/foot_fr.vox b/assets/voxygen/voxel/npc/yak/male/foot_fr.vox new file mode 100644 index 0000000..ee37b45 Binary files /dev/null and b/assets/voxygen/voxel/npc/yak/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/yak/male/head.vox b/assets/voxygen/voxel/npc/yak/male/head.vox new file mode 100644 index 0000000..3af1ee7 Binary files /dev/null and b/assets/voxygen/voxel/npc/yak/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/yak/male/jaw.vox b/assets/voxygen/voxel/npc/yak/male/jaw.vox new file mode 100644 index 0000000..38c533c Binary files /dev/null and b/assets/voxygen/voxel/npc/yak/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/yak/male/leg_br.vox b/assets/voxygen/voxel/npc/yak/male/leg_br.vox new file mode 100644 index 0000000..ce80c44 Binary files /dev/null and b/assets/voxygen/voxel/npc/yak/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/yak/male/leg_fr.vox b/assets/voxygen/voxel/npc/yak/male/leg_fr.vox new file mode 100644 index 0000000..99ab8bf Binary files /dev/null and b/assets/voxygen/voxel/npc/yak/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/yak/male/neck.vox b/assets/voxygen/voxel/npc/yak/male/neck.vox new file mode 100644 index 0000000..936cec8 Binary files /dev/null and b/assets/voxygen/voxel/npc/yak/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/yak/male/tail.vox b/assets/voxygen/voxel/npc/yak/male/tail.vox new file mode 100644 index 0000000..168ebc4 Binary files /dev/null and b/assets/voxygen/voxel/npc/yak/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/yak/male/torso_back.vox b/assets/voxygen/voxel/npc/yak/male/torso_back.vox new file mode 100644 index 0000000..9a39d40 Binary files /dev/null and b/assets/voxygen/voxel/npc/yak/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/yak/male/torso_front.vox b/assets/voxygen/voxel/npc/yak/male/torso_front.vox new file mode 100644 index 0000000..39879f3 Binary files /dev/null and b/assets/voxygen/voxel/npc/yak/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/npc/yale/male/chest_back.vox b/assets/voxygen/voxel/npc/yale/male/chest_back.vox new file mode 100644 index 0000000..38ae9ba Binary files /dev/null and b/assets/voxygen/voxel/npc/yale/male/chest_back.vox differ diff --git a/assets/voxygen/voxel/npc/yale/male/chest_front.vox b/assets/voxygen/voxel/npc/yale/male/chest_front.vox new file mode 100644 index 0000000..7cc6901 Binary files /dev/null and b/assets/voxygen/voxel/npc/yale/male/chest_front.vox differ diff --git a/assets/voxygen/voxel/npc/yale/male/foot_r.vox b/assets/voxygen/voxel/npc/yale/male/foot_r.vox new file mode 100644 index 0000000..96d4576 Binary files /dev/null and b/assets/voxygen/voxel/npc/yale/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/yale/male/hand_r.vox b/assets/voxygen/voxel/npc/yale/male/hand_r.vox new file mode 100644 index 0000000..46e88bf Binary files /dev/null and b/assets/voxygen/voxel/npc/yale/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/yale/male/head.vox b/assets/voxygen/voxel/npc/yale/male/head.vox new file mode 100644 index 0000000..751465a Binary files /dev/null and b/assets/voxygen/voxel/npc/yale/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/yale/male/jaw.vox b/assets/voxygen/voxel/npc/yale/male/jaw.vox new file mode 100644 index 0000000..2579e3b Binary files /dev/null and b/assets/voxygen/voxel/npc/yale/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/yale/male/leg_r.vox b/assets/voxygen/voxel/npc/yale/male/leg_r.vox new file mode 100644 index 0000000..1ac9fbe Binary files /dev/null and b/assets/voxygen/voxel/npc/yale/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/yale/male/neck.vox b/assets/voxygen/voxel/npc/yale/male/neck.vox new file mode 100644 index 0000000..063fbbf Binary files /dev/null and b/assets/voxygen/voxel/npc/yale/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/yale/male/tail_back.vox b/assets/voxygen/voxel/npc/yale/male/tail_back.vox new file mode 100644 index 0000000..53ec4f7 Binary files /dev/null and b/assets/voxygen/voxel/npc/yale/male/tail_back.vox differ diff --git a/assets/voxygen/voxel/npc/yale/male/tail_front.vox b/assets/voxygen/voxel/npc/yale/male/tail_front.vox new file mode 100644 index 0000000..85f1cc3 Binary files /dev/null and b/assets/voxygen/voxel/npc/yale/male/tail_front.vox differ diff --git a/assets/voxygen/voxel/npc/yeti/male/foot_l.vox b/assets/voxygen/voxel/npc/yeti/male/foot_l.vox new file mode 100644 index 0000000..0a4140d Binary files /dev/null and b/assets/voxygen/voxel/npc/yeti/male/foot_l.vox differ diff --git a/assets/voxygen/voxel/npc/yeti/male/foot_r.vox b/assets/voxygen/voxel/npc/yeti/male/foot_r.vox new file mode 100644 index 0000000..104426a Binary files /dev/null and b/assets/voxygen/voxel/npc/yeti/male/foot_r.vox differ diff --git a/assets/voxygen/voxel/npc/yeti/male/hand_l.vox b/assets/voxygen/voxel/npc/yeti/male/hand_l.vox new file mode 100644 index 0000000..0aaccbf Binary files /dev/null and b/assets/voxygen/voxel/npc/yeti/male/hand_l.vox differ diff --git a/assets/voxygen/voxel/npc/yeti/male/hand_r.vox b/assets/voxygen/voxel/npc/yeti/male/hand_r.vox new file mode 100644 index 0000000..ca9a131 Binary files /dev/null and b/assets/voxygen/voxel/npc/yeti/male/hand_r.vox differ diff --git a/assets/voxygen/voxel/npc/yeti/male/head.vox b/assets/voxygen/voxel/npc/yeti/male/head.vox new file mode 100644 index 0000000..e38559f Binary files /dev/null and b/assets/voxygen/voxel/npc/yeti/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/yeti/male/jaw.vox b/assets/voxygen/voxel/npc/yeti/male/jaw.vox new file mode 100644 index 0000000..19f414a Binary files /dev/null and b/assets/voxygen/voxel/npc/yeti/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/yeti/male/leg_l.vox b/assets/voxygen/voxel/npc/yeti/male/leg_l.vox new file mode 100644 index 0000000..f7624e4 Binary files /dev/null and b/assets/voxygen/voxel/npc/yeti/male/leg_l.vox differ diff --git a/assets/voxygen/voxel/npc/yeti/male/leg_r.vox b/assets/voxygen/voxel/npc/yeti/male/leg_r.vox new file mode 100644 index 0000000..8e7184e Binary files /dev/null and b/assets/voxygen/voxel/npc/yeti/male/leg_r.vox differ diff --git a/assets/voxygen/voxel/npc/yeti/male/shoulder_l.vox b/assets/voxygen/voxel/npc/yeti/male/shoulder_l.vox new file mode 100644 index 0000000..12723c7 Binary files /dev/null and b/assets/voxygen/voxel/npc/yeti/male/shoulder_l.vox differ diff --git a/assets/voxygen/voxel/npc/yeti/male/shoulder_r.vox b/assets/voxygen/voxel/npc/yeti/male/shoulder_r.vox new file mode 100644 index 0000000..90d6616 Binary files /dev/null and b/assets/voxygen/voxel/npc/yeti/male/shoulder_r.vox differ diff --git a/assets/voxygen/voxel/npc/yeti/male/torso_lower.vox b/assets/voxygen/voxel/npc/yeti/male/torso_lower.vox new file mode 100644 index 0000000..5fc7327 Binary files /dev/null and b/assets/voxygen/voxel/npc/yeti/male/torso_lower.vox differ diff --git a/assets/voxygen/voxel/npc/yeti/male/torso_upper.vox b/assets/voxygen/voxel/npc/yeti/male/torso_upper.vox new file mode 100644 index 0000000..0b72cd5 Binary files /dev/null and b/assets/voxygen/voxel/npc/yeti/male/torso_upper.vox differ diff --git a/assets/voxygen/voxel/npc/zebra/male/ears.vox b/assets/voxygen/voxel/npc/zebra/male/ears.vox new file mode 100644 index 0000000..da674c1 Binary files /dev/null and b/assets/voxygen/voxel/npc/zebra/male/ears.vox differ diff --git a/assets/voxygen/voxel/npc/zebra/male/foot_br.vox b/assets/voxygen/voxel/npc/zebra/male/foot_br.vox new file mode 100644 index 0000000..b9cbbf1 Binary files /dev/null and b/assets/voxygen/voxel/npc/zebra/male/foot_br.vox differ diff --git a/assets/voxygen/voxel/npc/zebra/male/foot_fr.vox b/assets/voxygen/voxel/npc/zebra/male/foot_fr.vox new file mode 100644 index 0000000..418c9fa Binary files /dev/null and b/assets/voxygen/voxel/npc/zebra/male/foot_fr.vox differ diff --git a/assets/voxygen/voxel/npc/zebra/male/head.vox b/assets/voxygen/voxel/npc/zebra/male/head.vox new file mode 100644 index 0000000..b1eb0bd Binary files /dev/null and b/assets/voxygen/voxel/npc/zebra/male/head.vox differ diff --git a/assets/voxygen/voxel/npc/zebra/male/jaw.vox b/assets/voxygen/voxel/npc/zebra/male/jaw.vox new file mode 100644 index 0000000..79e90c1 Binary files /dev/null and b/assets/voxygen/voxel/npc/zebra/male/jaw.vox differ diff --git a/assets/voxygen/voxel/npc/zebra/male/leg_br.vox b/assets/voxygen/voxel/npc/zebra/male/leg_br.vox new file mode 100644 index 0000000..94da9d2 Binary files /dev/null and b/assets/voxygen/voxel/npc/zebra/male/leg_br.vox differ diff --git a/assets/voxygen/voxel/npc/zebra/male/leg_fr.vox b/assets/voxygen/voxel/npc/zebra/male/leg_fr.vox new file mode 100644 index 0000000..cf13cd3 Binary files /dev/null and b/assets/voxygen/voxel/npc/zebra/male/leg_fr.vox differ diff --git a/assets/voxygen/voxel/npc/zebra/male/neck.vox b/assets/voxygen/voxel/npc/zebra/male/neck.vox new file mode 100644 index 0000000..e3717fe Binary files /dev/null and b/assets/voxygen/voxel/npc/zebra/male/neck.vox differ diff --git a/assets/voxygen/voxel/npc/zebra/male/tail.vox b/assets/voxygen/voxel/npc/zebra/male/tail.vox new file mode 100644 index 0000000..9647bee Binary files /dev/null and b/assets/voxygen/voxel/npc/zebra/male/tail.vox differ diff --git a/assets/voxygen/voxel/npc/zebra/male/torso_back.vox b/assets/voxygen/voxel/npc/zebra/male/torso_back.vox new file mode 100644 index 0000000..48444c5 Binary files /dev/null and b/assets/voxygen/voxel/npc/zebra/male/torso_back.vox differ diff --git a/assets/voxygen/voxel/npc/zebra/male/torso_front.vox b/assets/voxygen/voxel/npc/zebra/male/torso_front.vox new file mode 100644 index 0000000..267c942 Binary files /dev/null and b/assets/voxygen/voxel/npc/zebra/male/torso_front.vox differ diff --git a/assets/voxygen/voxel/object/anvil.vox b/assets/voxygen/voxel/object/anvil.vox new file mode 100644 index 0000000..96e2d6a Binary files /dev/null and b/assets/voxygen/voxel/object/anvil.vox differ diff --git a/assets/voxygen/voxel/object/apple.vox b/assets/voxygen/voxel/object/apple.vox new file mode 100644 index 0000000..f006cf3 Binary files /dev/null and b/assets/voxygen/voxel/object/apple.vox differ diff --git a/assets/voxygen/voxel/object/apple_half.vox b/assets/voxygen/voxel/object/apple_half.vox new file mode 100644 index 0000000..233fd09 Binary files /dev/null and b/assets/voxygen/voxel/object/apple_half.vox differ diff --git a/assets/voxygen/voxel/object/apple_stick.vox b/assets/voxygen/voxel/object/apple_stick.vox new file mode 100644 index 0000000..ebc0799 Binary files /dev/null and b/assets/voxygen/voxel/object/apple_stick.vox differ diff --git a/assets/voxygen/voxel/object/bed_human_blue.vox b/assets/voxygen/voxel/object/bed_human_blue.vox new file mode 100644 index 0000000..59bd58b Binary files /dev/null and b/assets/voxygen/voxel/object/bed_human_blue.vox differ diff --git a/assets/voxygen/voxel/object/bedroll.vox b/assets/voxygen/voxel/object/bedroll.vox new file mode 100644 index 0000000..13a19ed Binary files /dev/null and b/assets/voxygen/voxel/object/bedroll.vox differ diff --git a/assets/voxygen/voxel/object/bench.vox b/assets/voxygen/voxel/object/bench.vox new file mode 100644 index 0000000..fddd82d Binary files /dev/null and b/assets/voxygen/voxel/object/bench.vox differ diff --git a/assets/voxygen/voxel/object/blood_bomb.vox b/assets/voxygen/voxel/object/blood_bomb.vox new file mode 100644 index 0000000..57a3dcb Binary files /dev/null and b/assets/voxygen/voxel/object/blood_bomb.vox differ diff --git a/assets/voxygen/voxel/object/blue_cheese.vox b/assets/voxygen/voxel/object/blue_cheese.vox new file mode 100644 index 0000000..7c13ff5 Binary files /dev/null and b/assets/voxygen/voxel/object/blue_cheese.vox differ diff --git a/assets/voxygen/voxel/object/bomb.vox b/assets/voxygen/voxel/object/bomb.vox new file mode 100644 index 0000000..c884f8c Binary files /dev/null and b/assets/voxygen/voxel/object/bomb.vox differ diff --git a/assets/voxygen/voxel/object/burning_charm.vox b/assets/voxygen/voxel/object/burning_charm.vox new file mode 100644 index 0000000..be19832 Binary files /dev/null and b/assets/voxygen/voxel/object/burning_charm.vox differ diff --git a/assets/voxygen/voxel/object/cactus_drink.vox b/assets/voxygen/voxel/object/cactus_drink.vox new file mode 100644 index 0000000..a414dc5 Binary files /dev/null and b/assets/voxygen/voxel/object/cactus_drink.vox differ diff --git a/assets/voxygen/voxel/object/campfire.vox b/assets/voxygen/voxel/object/campfire.vox new file mode 100644 index 0000000..ab2ea76 Binary files /dev/null and b/assets/voxygen/voxel/object/campfire.vox differ diff --git a/assets/voxygen/voxel/object/campfire_lit.vox b/assets/voxygen/voxel/object/campfire_lit.vox new file mode 100644 index 0000000..6691a9c Binary files /dev/null and b/assets/voxygen/voxel/object/campfire_lit.vox differ diff --git a/assets/voxygen/voxel/object/carpet.vox b/assets/voxygen/voxel/object/carpet.vox new file mode 100644 index 0000000..2cebad6 Binary files /dev/null and b/assets/voxygen/voxel/object/carpet.vox differ diff --git a/assets/voxygen/voxel/object/carpet_human_round.vox b/assets/voxygen/voxel/object/carpet_human_round.vox new file mode 100644 index 0000000..ef5b08c Binary files /dev/null and b/assets/voxygen/voxel/object/carpet_human_round.vox differ diff --git a/assets/voxygen/voxel/object/carpet_human_square.vox b/assets/voxygen/voxel/object/carpet_human_square.vox new file mode 100644 index 0000000..04bdd03 Binary files /dev/null and b/assets/voxygen/voxel/object/carpet_human_square.vox differ diff --git a/assets/voxygen/voxel/object/carpet_human_square_2.vox b/assets/voxygen/voxel/object/carpet_human_square_2.vox new file mode 100644 index 0000000..d5968d1 Binary files /dev/null and b/assets/voxygen/voxel/object/carpet_human_square_2.vox differ diff --git a/assets/voxygen/voxel/object/carpet_human_squircle.vox b/assets/voxygen/voxel/object/carpet_human_squircle.vox new file mode 100644 index 0000000..b67fdb6 Binary files /dev/null and b/assets/voxygen/voxel/object/carpet_human_squircle.vox differ diff --git a/assets/voxygen/voxel/object/cauldron.vox b/assets/voxygen/voxel/object/cauldron.vox new file mode 100644 index 0000000..67a335e Binary files /dev/null and b/assets/voxygen/voxel/object/cauldron.vox differ diff --git a/assets/voxygen/voxel/object/chair.vox b/assets/voxygen/voxel/object/chair.vox new file mode 100644 index 0000000..0d4aa2a Binary files /dev/null and b/assets/voxygen/voxel/object/chair.vox differ diff --git a/assets/voxygen/voxel/object/chair_2.vox b/assets/voxygen/voxel/object/chair_2.vox new file mode 100644 index 0000000..efc8694 Binary files /dev/null and b/assets/voxygen/voxel/object/chair_2.vox differ diff --git a/assets/voxygen/voxel/object/chair_3.vox b/assets/voxygen/voxel/object/chair_3.vox new file mode 100644 index 0000000..6179f7e Binary files /dev/null and b/assets/voxygen/voxel/object/chair_3.vox differ diff --git a/assets/voxygen/voxel/object/cheese-0.vox b/assets/voxygen/voxel/object/cheese-0.vox new file mode 100644 index 0000000..f3b3ff5 Binary files /dev/null and b/assets/voxygen/voxel/object/cheese-0.vox differ diff --git a/assets/voxygen/voxel/object/cheese-1.vox b/assets/voxygen/voxel/object/cheese-1.vox new file mode 100644 index 0000000..7ac9a65 Binary files /dev/null and b/assets/voxygen/voxel/object/cheese-1.vox differ diff --git a/assets/voxygen/voxel/object/cheese.vox b/assets/voxygen/voxel/object/cheese.vox new file mode 100644 index 0000000..d141f61 Binary files /dev/null and b/assets/voxygen/voxel/object/cheese.vox differ diff --git a/assets/voxygen/voxel/object/chest.vox b/assets/voxygen/voxel/object/chest.vox new file mode 100644 index 0000000..08f1aaa Binary files /dev/null and b/assets/voxygen/voxel/object/chest.vox differ diff --git a/assets/voxygen/voxel/object/chest_dark.vox b/assets/voxygen/voxel/object/chest_dark.vox new file mode 100644 index 0000000..20b16fa Binary files /dev/null and b/assets/voxygen/voxel/object/chest_dark.vox differ diff --git a/assets/voxygen/voxel/object/chest_demon.vox b/assets/voxygen/voxel/object/chest_demon.vox new file mode 100644 index 0000000..fd41935 Binary files /dev/null and b/assets/voxygen/voxel/object/chest_demon.vox differ diff --git a/assets/voxygen/voxel/object/chest_gold.vox b/assets/voxygen/voxel/object/chest_gold.vox new file mode 100644 index 0000000..8d83669 Binary files /dev/null and b/assets/voxygen/voxel/object/chest_gold.vox differ diff --git a/assets/voxygen/voxel/object/chest_light.vox b/assets/voxygen/voxel/object/chest_light.vox new file mode 100644 index 0000000..b5449a0 Binary files /dev/null and b/assets/voxygen/voxel/object/chest_light.vox differ diff --git a/assets/voxygen/voxel/object/chest_open.vox b/assets/voxygen/voxel/object/chest_open.vox new file mode 100644 index 0000000..657fae7 Binary files /dev/null and b/assets/voxygen/voxel/object/chest_open.vox differ diff --git a/assets/voxygen/voxel/object/chest_skull.vox b/assets/voxygen/voxel/object/chest_skull.vox new file mode 100644 index 0000000..112442f Binary files /dev/null and b/assets/voxygen/voxel/object/chest_skull.vox differ diff --git a/assets/voxygen/voxel/object/chest_vines.vox b/assets/voxygen/voxel/object/chest_vines.vox new file mode 100644 index 0000000..5b76654 Binary files /dev/null and b/assets/voxygen/voxel/object/chest_vines.vox differ diff --git a/assets/voxygen/voxel/object/coconut.vox b/assets/voxygen/voxel/object/coconut.vox new file mode 100644 index 0000000..3ea1206 Binary files /dev/null and b/assets/voxygen/voxel/object/coconut.vox differ diff --git a/assets/voxygen/voxel/object/coconut_half.vox b/assets/voxygen/voxel/object/coconut_half.vox new file mode 100644 index 0000000..bcf8fc2 Binary files /dev/null and b/assets/voxygen/voxel/object/coconut_half.vox differ diff --git a/assets/voxygen/voxel/object/coins.vox b/assets/voxygen/voxel/object/coins.vox new file mode 100644 index 0000000..fc6c1ae Binary files /dev/null and b/assets/voxygen/voxel/object/coins.vox differ diff --git a/assets/voxygen/voxel/object/collar.vox b/assets/voxygen/voxel/object/collar.vox new file mode 100644 index 0000000..c7e5b47 Binary files /dev/null and b/assets/voxygen/voxel/object/collar.vox differ diff --git a/assets/voxygen/voxel/object/crafting_bench.vox b/assets/voxygen/voxel/object/crafting_bench.vox new file mode 100644 index 0000000..4229cbb Binary files /dev/null and b/assets/voxygen/voxel/object/crafting_bench.vox differ diff --git a/assets/voxygen/voxel/object/crate.vox b/assets/voxygen/voxel/object/crate.vox new file mode 100644 index 0000000..f3c049d Binary files /dev/null and b/assets/voxygen/voxel/object/crate.vox differ diff --git a/assets/voxygen/voxel/object/crossbow/bone0.vox b/assets/voxygen/voxel/object/crossbow/bone0.vox new file mode 100644 index 0000000..f8ffe1f Binary files /dev/null and b/assets/voxygen/voxel/object/crossbow/bone0.vox differ diff --git a/assets/voxygen/voxel/object/crossbow/bone1.vox b/assets/voxygen/voxel/object/crossbow/bone1.vox new file mode 100644 index 0000000..d6fcd1b Binary files /dev/null and b/assets/voxygen/voxel/object/crossbow/bone1.vox differ diff --git a/assets/voxygen/voxel/object/dagon_bomb.vox b/assets/voxygen/voxel/object/dagon_bomb.vox new file mode 100644 index 0000000..475c0c4 Binary files /dev/null and b/assets/voxygen/voxel/object/dagon_bomb.vox differ diff --git a/assets/voxygen/voxel/object/door_spooky.vox b/assets/voxygen/voxel/object/door_spooky.vox new file mode 100644 index 0000000..1a41f22 Binary files /dev/null and b/assets/voxygen/voxel/object/door_spooky.vox differ diff --git a/assets/voxygen/voxel/object/drawer.vox b/assets/voxygen/voxel/object/drawer.vox new file mode 100644 index 0000000..1b3292a Binary files /dev/null and b/assets/voxygen/voxel/object/drawer.vox differ diff --git a/assets/voxygen/voxel/object/dungeon_door_metal-0.vox b/assets/voxygen/voxel/object/dungeon_door_metal-0.vox new file mode 100644 index 0000000..616ea94 Binary files /dev/null and b/assets/voxygen/voxel/object/dungeon_door_metal-0.vox differ diff --git a/assets/voxygen/voxel/object/elegant_crest.vox b/assets/voxygen/voxel/object/elegant_crest.vox new file mode 100644 index 0000000..9b98fe0 Binary files /dev/null and b/assets/voxygen/voxel/object/elegant_crest.vox differ diff --git a/assets/voxygen/voxel/object/flamethrower/bone0.vox b/assets/voxygen/voxel/object/flamethrower/bone0.vox new file mode 100644 index 0000000..79e4dd3 Binary files /dev/null and b/assets/voxygen/voxel/object/flamethrower/bone0.vox differ diff --git a/assets/voxygen/voxel/object/flamethrower/bone1.vox b/assets/voxygen/voxel/object/flamethrower/bone1.vox new file mode 100644 index 0000000..8311517 Binary files /dev/null and b/assets/voxygen/voxel/object/flamethrower/bone1.vox differ diff --git a/assets/voxygen/voxel/object/forge.vox b/assets/voxygen/voxel/object/forge.vox new file mode 100644 index 0000000..981b674 Binary files /dev/null and b/assets/voxygen/voxel/object/forge.vox differ diff --git a/assets/voxygen/voxel/object/frozen_charm.vox b/assets/voxygen/voxel/object/frozen_charm.vox new file mode 100644 index 0000000..064aeb4 Binary files /dev/null and b/assets/voxygen/voxel/object/frozen_charm.vox differ diff --git a/assets/voxygen/voxel/object/glacial_crystal.vox b/assets/voxygen/voxel/object/glacial_crystal.vox new file mode 100644 index 0000000..f23b028 Binary files /dev/null and b/assets/voxygen/voxel/object/glacial_crystal.vox differ diff --git a/assets/voxygen/voxel/object/glider.vox b/assets/voxygen/voxel/object/glider.vox new file mode 100644 index 0000000..39f2f1c Binary files /dev/null and b/assets/voxygen/voxel/object/glider.vox differ diff --git a/assets/voxygen/voxel/object/glowing_remains.vox b/assets/voxygen/voxel/object/glowing_remains.vox new file mode 100644 index 0000000..f0029b5 Binary files /dev/null and b/assets/voxygen/voxel/object/glowing_remains.vox differ diff --git a/assets/voxygen/voxel/object/gnarling_totem_green.vox b/assets/voxygen/voxel/object/gnarling_totem_green.vox new file mode 100644 index 0000000..84ec4a3 Binary files /dev/null and b/assets/voxygen/voxel/object/gnarling_totem_green.vox differ diff --git a/assets/voxygen/voxel/object/gnarling_totem_red.vox b/assets/voxygen/voxel/object/gnarling_totem_red.vox new file mode 100644 index 0000000..a4631e7 Binary files /dev/null and b/assets/voxygen/voxel/object/gnarling_totem_red.vox differ diff --git a/assets/voxygen/voxel/object/gnarling_totem_white.vox b/assets/voxygen/voxel/object/gnarling_totem_white.vox new file mode 100644 index 0000000..94bd3ba Binary files /dev/null and b/assets/voxygen/voxel/object/gnarling_totem_white.vox differ diff --git a/assets/voxygen/voxel/object/gold_ore.vox b/assets/voxygen/voxel/object/gold_ore.vox new file mode 100644 index 0000000..9e3a353 Binary files /dev/null and b/assets/voxygen/voxel/object/gold_ore.vox differ diff --git a/assets/voxygen/voxel/object/gravestone.vox b/assets/voxygen/voxel/object/gravestone.vox new file mode 100644 index 0000000..3d2eab8 Binary files /dev/null and b/assets/voxygen/voxel/object/gravestone.vox differ diff --git a/assets/voxygen/voxel/object/gravestone_2.vox b/assets/voxygen/voxel/object/gravestone_2.vox new file mode 100644 index 0000000..1e85d95 Binary files /dev/null and b/assets/voxygen/voxel/object/gravestone_2.vox differ diff --git a/assets/voxygen/voxel/object/haniwa_sentry/bone.vox b/assets/voxygen/voxel/object/haniwa_sentry/bone.vox new file mode 100644 index 0000000..de331e1 Binary files /dev/null and b/assets/voxygen/voxel/object/haniwa_sentry/bone.vox differ diff --git a/assets/voxygen/voxel/object/honey.vox b/assets/voxygen/voxel/object/honey.vox new file mode 100644 index 0000000..d482f25 Binary files /dev/null and b/assets/voxygen/voxel/object/honey.vox differ diff --git a/assets/voxygen/voxel/object/honeycorn.vox b/assets/voxygen/voxel/object/honeycorn.vox new file mode 100644 index 0000000..ac454cd Binary files /dev/null and b/assets/voxygen/voxel/object/honeycorn.vox differ diff --git a/assets/voxygen/voxel/object/ice_shard.vox b/assets/voxygen/voxel/object/ice_shard.vox new file mode 100644 index 0000000..cfc4348 Binary files /dev/null and b/assets/voxygen/voxel/object/ice_shard.vox differ diff --git a/assets/voxygen/voxel/object/iron_spike.vox b/assets/voxygen/voxel/object/iron_spike.vox new file mode 100644 index 0000000..e9fc23d Binary files /dev/null and b/assets/voxygen/voxel/object/iron_spike.vox differ diff --git a/assets/voxygen/voxel/object/item_cheese.vox b/assets/voxygen/voxel/object/item_cheese.vox new file mode 100644 index 0000000..b2ae280 Binary files /dev/null and b/assets/voxygen/voxel/object/item_cheese.vox differ diff --git a/assets/voxygen/voxel/object/key.vox b/assets/voxygen/voxel/object/key.vox new file mode 100644 index 0000000..7580202 Binary files /dev/null and b/assets/voxygen/voxel/object/key.vox differ diff --git a/assets/voxygen/voxel/object/key_bone.vox b/assets/voxygen/voxel/object/key_bone.vox new file mode 100644 index 0000000..c9e1c75 Binary files /dev/null and b/assets/voxygen/voxel/object/key_bone.vox differ diff --git a/assets/voxygen/voxel/object/key_glass.vox b/assets/voxygen/voxel/object/key_glass.vox new file mode 100644 index 0000000..6f22c4f Binary files /dev/null and b/assets/voxygen/voxel/object/key_glass.vox differ diff --git a/assets/voxygen/voxel/object/key_gold.vox b/assets/voxygen/voxel/object/key_gold.vox new file mode 100644 index 0000000..a788533 Binary files /dev/null and b/assets/voxygen/voxel/object/key_gold.vox differ diff --git a/assets/voxygen/voxel/object/key_haniwa.vox b/assets/voxygen/voxel/object/key_haniwa.vox new file mode 100644 index 0000000..8ef0b2e Binary files /dev/null and b/assets/voxygen/voxel/object/key_haniwa.vox differ diff --git a/assets/voxygen/voxel/object/key_myrmidon.vox b/assets/voxygen/voxel/object/key_myrmidon.vox new file mode 100644 index 0000000..45fb8ce Binary files /dev/null and b/assets/voxygen/voxel/object/key_myrmidon.vox differ diff --git a/assets/voxygen/voxel/object/key_rusty-0.vox b/assets/voxygen/voxel/object/key_rusty-0.vox new file mode 100644 index 0000000..894160c Binary files /dev/null and b/assets/voxygen/voxel/object/key_rusty-0.vox differ diff --git a/assets/voxygen/voxel/object/key_sahagin.vox b/assets/voxygen/voxel/object/key_sahagin.vox new file mode 100644 index 0000000..f0cc96a Binary files /dev/null and b/assets/voxygen/voxel/object/key_sahagin.vox differ diff --git a/assets/voxygen/voxel/object/key_terracotta_chest.vox b/assets/voxygen/voxel/object/key_terracotta_chest.vox new file mode 100644 index 0000000..a54f2af Binary files /dev/null and b/assets/voxygen/voxel/object/key_terracotta_chest.vox differ diff --git a/assets/voxygen/voxel/object/key_terracotta_door.vox b/assets/voxygen/voxel/object/key_terracotta_door.vox new file mode 100644 index 0000000..b9ea6cb Binary files /dev/null and b/assets/voxygen/voxel/object/key_terracotta_door.vox differ diff --git a/assets/voxygen/voxel/object/key_vampire.vox b/assets/voxygen/voxel/object/key_vampire.vox new file mode 100644 index 0000000..2cd07d4 Binary files /dev/null and b/assets/voxygen/voxel/object/key_vampire.vox differ diff --git a/assets/voxygen/voxel/object/lantern0.vox b/assets/voxygen/voxel/object/lantern0.vox new file mode 100644 index 0000000..0f9eb69 Binary files /dev/null and b/assets/voxygen/voxel/object/lantern0.vox differ diff --git a/assets/voxygen/voxel/object/lantern_ground.vox b/assets/voxygen/voxel/object/lantern_ground.vox new file mode 100644 index 0000000..381ae76 Binary files /dev/null and b/assets/voxygen/voxel/object/lantern_ground.vox differ diff --git a/assets/voxygen/voxel/object/lantern_ground_open.vox b/assets/voxygen/voxel/object/lantern_ground_open.vox new file mode 100644 index 0000000..5e4b8a4 Binary files /dev/null and b/assets/voxygen/voxel/object/lantern_ground_open.vox differ diff --git a/assets/voxygen/voxel/object/lantern_standing.vox b/assets/voxygen/voxel/object/lantern_standing.vox new file mode 100644 index 0000000..22228da Binary files /dev/null and b/assets/voxygen/voxel/object/lantern_standing.vox differ diff --git a/assets/voxygen/voxel/object/lantern_standing_2.vox b/assets/voxygen/voxel/object/lantern_standing_2.vox new file mode 100644 index 0000000..f84b0be Binary files /dev/null and b/assets/voxygen/voxel/object/lantern_standing_2.vox differ diff --git a/assets/voxygen/voxel/object/lavathrower/bone0.vox b/assets/voxygen/voxel/object/lavathrower/bone0.vox new file mode 100644 index 0000000..4498ecb Binary files /dev/null and b/assets/voxygen/voxel/object/lavathrower/bone0.vox differ diff --git a/assets/voxygen/voxel/object/lavathrower/bone1.vox b/assets/voxygen/voxel/object/lavathrower/bone1.vox new file mode 100644 index 0000000..ad410a2 Binary files /dev/null and b/assets/voxygen/voxel/object/lavathrower/bone1.vox differ diff --git a/assets/voxygen/voxel/object/lifesteal_charm.vox b/assets/voxygen/voxel/object/lifesteal_charm.vox new file mode 100644 index 0000000..65037c1 Binary files /dev/null and b/assets/voxygen/voxel/object/lifesteal_charm.vox differ diff --git a/assets/voxygen/voxel/object/lockpick.vox b/assets/voxygen/voxel/object/lockpick.vox new file mode 100644 index 0000000..8de14e2 Binary files /dev/null and b/assets/voxygen/voxel/object/lockpick.vox differ diff --git a/assets/voxygen/voxel/object/long_tusk.vox b/assets/voxygen/voxel/object/long_tusk.vox new file mode 100644 index 0000000..fbabbe3 Binary files /dev/null and b/assets/voxygen/voxel/object/long_tusk.vox differ diff --git a/assets/voxygen/voxel/object/loom.vox b/assets/voxygen/voxel/object/loom.vox new file mode 100644 index 0000000..8ddfe8e Binary files /dev/null and b/assets/voxygen/voxel/object/loom.vox differ diff --git a/assets/voxygen/voxel/object/mortar_pestle.vox b/assets/voxygen/voxel/object/mortar_pestle.vox new file mode 100644 index 0000000..86fcb63 Binary files /dev/null and b/assets/voxygen/voxel/object/mortar_pestle.vox differ diff --git a/assets/voxygen/voxel/object/mushroom_curry.vox b/assets/voxygen/voxel/object/mushroom_curry.vox new file mode 100644 index 0000000..09fa2bd Binary files /dev/null and b/assets/voxygen/voxel/object/mushroom_curry.vox differ diff --git a/assets/voxygen/voxel/object/mushroom_stick.vox b/assets/voxygen/voxel/object/mushroom_stick.vox new file mode 100644 index 0000000..f1bdce0 Binary files /dev/null and b/assets/voxygen/voxel/object/mushroom_stick.vox differ diff --git a/assets/voxygen/voxel/object/portal.vox b/assets/voxygen/voxel/object/portal.vox new file mode 100644 index 0000000..d368a8c Binary files /dev/null and b/assets/voxygen/voxel/object/portal.vox differ diff --git a/assets/voxygen/voxel/object/portal_active.vox b/assets/voxygen/voxel/object/portal_active.vox new file mode 100644 index 0000000..e04b93e Binary files /dev/null and b/assets/voxygen/voxel/object/portal_active.vox differ diff --git a/assets/voxygen/voxel/object/potion_agility.vox b/assets/voxygen/voxel/object/potion_agility.vox new file mode 100644 index 0000000..d47fcfc Binary files /dev/null and b/assets/voxygen/voxel/object/potion_agility.vox differ diff --git a/assets/voxygen/voxel/object/potion_blue.vox b/assets/voxygen/voxel/object/potion_blue.vox new file mode 100644 index 0000000..9dd64ef Binary files /dev/null and b/assets/voxygen/voxel/object/potion_blue.vox differ diff --git a/assets/voxygen/voxel/object/potion_blue_1.vox b/assets/voxygen/voxel/object/potion_blue_1.vox new file mode 100644 index 0000000..a8b375c Binary files /dev/null and b/assets/voxygen/voxel/object/potion_blue_1.vox differ diff --git a/assets/voxygen/voxel/object/potion_combustion.vox b/assets/voxygen/voxel/object/potion_combustion.vox new file mode 100644 index 0000000..421cc13 Binary files /dev/null and b/assets/voxygen/voxel/object/potion_combustion.vox differ diff --git a/assets/voxygen/voxel/object/potion_curious.vox b/assets/voxygen/voxel/object/potion_curious.vox new file mode 100644 index 0000000..1853f51 Binary files /dev/null and b/assets/voxygen/voxel/object/potion_curious.vox differ diff --git a/assets/voxygen/voxel/object/potion_empty.vox b/assets/voxygen/voxel/object/potion_empty.vox new file mode 100644 index 0000000..af5ff2d Binary files /dev/null and b/assets/voxygen/voxel/object/potion_empty.vox differ diff --git a/assets/voxygen/voxel/object/potion_green.vox b/assets/voxygen/voxel/object/potion_green.vox new file mode 100644 index 0000000..5f25d96 Binary files /dev/null and b/assets/voxygen/voxel/object/potion_green.vox differ diff --git a/assets/voxygen/voxel/object/potion_purp.vox b/assets/voxygen/voxel/object/potion_purp.vox new file mode 100644 index 0000000..e956e48 Binary files /dev/null and b/assets/voxygen/voxel/object/potion_purp.vox differ diff --git a/assets/voxygen/voxel/object/potion_red.vox b/assets/voxygen/voxel/object/potion_red.vox new file mode 100644 index 0000000..bd0aa36 Binary files /dev/null and b/assets/voxygen/voxel/object/potion_red.vox differ diff --git a/assets/voxygen/voxel/object/potion_turq.vox b/assets/voxygen/voxel/object/potion_turq.vox new file mode 100644 index 0000000..f61ee77 Binary files /dev/null and b/assets/voxygen/voxel/object/potion_turq.vox differ diff --git a/assets/voxygen/voxel/object/pouch.vox b/assets/voxygen/voxel/object/pouch.vox new file mode 100644 index 0000000..f2310bc Binary files /dev/null and b/assets/voxygen/voxel/object/pouch.vox differ diff --git a/assets/voxygen/voxel/object/pumpkin.vox b/assets/voxygen/voxel/object/pumpkin.vox new file mode 100644 index 0000000..cb3b621 Binary files /dev/null and b/assets/voxygen/voxel/object/pumpkin.vox differ diff --git a/assets/voxygen/voxel/object/pumpkin_2.vox b/assets/voxygen/voxel/object/pumpkin_2.vox new file mode 100644 index 0000000..f2d375e Binary files /dev/null and b/assets/voxygen/voxel/object/pumpkin_2.vox differ diff --git a/assets/voxygen/voxel/object/pumpkin_3.vox b/assets/voxygen/voxel/object/pumpkin_3.vox new file mode 100644 index 0000000..ce2fc61 Binary files /dev/null and b/assets/voxygen/voxel/object/pumpkin_3.vox differ diff --git a/assets/voxygen/voxel/object/pumpkin_4.vox b/assets/voxygen/voxel/object/pumpkin_4.vox new file mode 100644 index 0000000..ecb823f Binary files /dev/null and b/assets/voxygen/voxel/object/pumpkin_4.vox differ diff --git a/assets/voxygen/voxel/object/pumpkin_5.vox b/assets/voxygen/voxel/object/pumpkin_5.vox new file mode 100644 index 0000000..618cb24 Binary files /dev/null and b/assets/voxygen/voxel/object/pumpkin_5.vox differ diff --git a/assets/voxygen/voxel/object/pumpkin_spice_brew.vox b/assets/voxygen/voxel/object/pumpkin_spice_brew.vox new file mode 100644 index 0000000..51d8515 Binary files /dev/null and b/assets/voxygen/voxel/object/pumpkin_spice_brew.vox differ diff --git a/assets/voxygen/voxel/object/raptor_feather.vox b/assets/voxygen/voxel/object/raptor_feather.vox new file mode 100644 index 0000000..a050792 Binary files /dev/null and b/assets/voxygen/voxel/object/raptor_feather.vox differ diff --git a/assets/voxygen/voxel/object/recipe_alchemy.vox b/assets/voxygen/voxel/object/recipe_alchemy.vox new file mode 100644 index 0000000..0afc3fe Binary files /dev/null and b/assets/voxygen/voxel/object/recipe_alchemy.vox differ diff --git a/assets/voxygen/voxel/object/recipe_blacksmithing.vox b/assets/voxygen/voxel/object/recipe_blacksmithing.vox new file mode 100644 index 0000000..eca301d Binary files /dev/null and b/assets/voxygen/voxel/object/recipe_blacksmithing.vox differ diff --git a/assets/voxygen/voxel/object/recipe_carpentry.vox b/assets/voxygen/voxel/object/recipe_carpentry.vox new file mode 100644 index 0000000..c3396d0 Binary files /dev/null and b/assets/voxygen/voxel/object/recipe_carpentry.vox differ diff --git a/assets/voxygen/voxel/object/recipe_cooking.vox b/assets/voxygen/voxel/object/recipe_cooking.vox new file mode 100644 index 0000000..4035411 Binary files /dev/null and b/assets/voxygen/voxel/object/recipe_cooking.vox differ diff --git a/assets/voxygen/voxel/object/recipe_lapidary.vox b/assets/voxygen/voxel/object/recipe_lapidary.vox new file mode 100644 index 0000000..6c8596b Binary files /dev/null and b/assets/voxygen/voxel/object/recipe_lapidary.vox differ diff --git a/assets/voxygen/voxel/object/recipe_leatherworking.vox b/assets/voxygen/voxel/object/recipe_leatherworking.vox new file mode 100644 index 0000000..a35cd66 Binary files /dev/null and b/assets/voxygen/voxel/object/recipe_leatherworking.vox differ diff --git a/assets/voxygen/voxel/object/recipe_weaving.vox b/assets/voxygen/voxel/object/recipe_weaving.vox new file mode 100644 index 0000000..c95f62c Binary files /dev/null and b/assets/voxygen/voxel/object/recipe_weaving.vox differ diff --git a/assets/voxygen/voxel/object/scarecrow.vox b/assets/voxygen/voxel/object/scarecrow.vox new file mode 100644 index 0000000..22888c6 Binary files /dev/null and b/assets/voxygen/voxel/object/scarecrow.vox differ diff --git a/assets/voxygen/voxel/object/scroll.vox b/assets/voxygen/voxel/object/scroll.vox new file mode 100644 index 0000000..1749fa0 Binary files /dev/null and b/assets/voxygen/voxel/object/scroll.vox differ diff --git a/assets/voxygen/voxel/object/sea_lantern.vox b/assets/voxygen/voxel/object/sea_lantern.vox new file mode 100644 index 0000000..6769570 Binary files /dev/null and b/assets/voxygen/voxel/object/sea_lantern.vox differ diff --git a/assets/voxygen/voxel/object/sea_urchin.vox b/assets/voxygen/voxel/object/sea_urchin.vox new file mode 100644 index 0000000..23a059b Binary files /dev/null and b/assets/voxygen/voxel/object/sea_urchin.vox differ diff --git a/assets/voxygen/voxel/object/seashell_lantern.vox b/assets/voxygen/voxel/object/seashell_lantern.vox new file mode 100644 index 0000000..91a8f8b Binary files /dev/null and b/assets/voxygen/voxel/object/seashell_lantern.vox differ diff --git a/assets/voxygen/voxel/object/sewing_set.vox b/assets/voxygen/voxel/object/sewing_set.vox new file mode 100644 index 0000000..ef4e076 Binary files /dev/null and b/assets/voxygen/voxel/object/sewing_set.vox differ diff --git a/assets/voxygen/voxel/object/silver_ore.vox b/assets/voxygen/voxel/object/silver_ore.vox new file mode 100644 index 0000000..89fa659 Binary files /dev/null and b/assets/voxygen/voxel/object/silver_ore.vox differ diff --git a/assets/voxygen/voxel/object/spinning_wheel.vox b/assets/voxygen/voxel/object/spinning_wheel.vox new file mode 100644 index 0000000..54dc8cd Binary files /dev/null and b/assets/voxygen/voxel/object/spinning_wheel.vox differ diff --git a/assets/voxygen/voxel/object/strong_pincer.vox b/assets/voxygen/voxel/object/strong_pincer.vox new file mode 100644 index 0000000..24d7f36 Binary files /dev/null and b/assets/voxygen/voxel/object/strong_pincer.vox differ diff --git a/assets/voxygen/voxel/object/sunflower_ice_tea.vox b/assets/voxygen/voxel/object/sunflower_ice_tea.vox new file mode 100644 index 0000000..a90f0c2 Binary files /dev/null and b/assets/voxygen/voxel/object/sunflower_ice_tea.vox differ diff --git a/assets/voxygen/voxel/object/surprise_egg.vox b/assets/voxygen/voxel/object/surprise_egg.vox new file mode 100644 index 0000000..87413a8 Binary files /dev/null and b/assets/voxygen/voxel/object/surprise_egg.vox differ diff --git a/assets/voxygen/voxel/object/table.vox b/assets/voxygen/voxel/object/table.vox new file mode 100644 index 0000000..8862254 Binary files /dev/null and b/assets/voxygen/voxel/object/table.vox differ diff --git a/assets/voxygen/voxel/object/table_2.vox b/assets/voxygen/voxel/object/table_2.vox new file mode 100644 index 0000000..4dae018 Binary files /dev/null and b/assets/voxygen/voxel/object/table_2.vox differ diff --git a/assets/voxygen/voxel/object/table_3.vox b/assets/voxygen/voxel/object/table_3.vox new file mode 100644 index 0000000..b3f6b0f Binary files /dev/null and b/assets/voxygen/voxel/object/table_3.vox differ diff --git a/assets/voxygen/voxel/object/tanning_rack.vox b/assets/voxygen/voxel/object/tanning_rack.vox new file mode 100644 index 0000000..e4e535f Binary files /dev/null and b/assets/voxygen/voxel/object/tanning_rack.vox differ diff --git a/assets/voxygen/voxel/object/tent.vox b/assets/voxygen/voxel/object/tent.vox new file mode 100644 index 0000000..4bdbfa5 Binary files /dev/null and b/assets/voxygen/voxel/object/tent.vox differ diff --git a/assets/voxygen/voxel/object/terracotta_demolisher_bomb.vox b/assets/voxygen/voxel/object/terracotta_demolisher_bomb.vox new file mode 100644 index 0000000..79cdba6 Binary files /dev/null and b/assets/voxygen/voxel/object/terracotta_demolisher_bomb.vox differ diff --git a/assets/voxygen/voxel/object/training_dummy.vox b/assets/voxygen/voxel/object/training_dummy.vox new file mode 100644 index 0000000..47c0969 Binary files /dev/null and b/assets/voxygen/voxel/object/training_dummy.vox differ diff --git a/assets/voxygen/voxel/object/v-coin.vox b/assets/voxygen/voxel/object/v-coin.vox new file mode 100644 index 0000000..2294d0a Binary files /dev/null and b/assets/voxygen/voxel/object/v-coin.vox differ diff --git a/assets/voxygen/voxel/object/window_spooky.vox b/assets/voxygen/voxel/object/window_spooky.vox new file mode 100644 index 0000000..38c7bc8 Binary files /dev/null and b/assets/voxygen/voxel/object/window_spooky.vox differ diff --git a/assets/voxygen/voxel/object_manifest.ron b/assets/voxygen/voxel/object_manifest.ron new file mode 100644 index 0000000..0c69731 --- /dev/null +++ b/assets/voxygen/voxel/object_manifest.ron @@ -0,0 +1,1204 @@ +({ + Arrow: ( + bone0: ( + offset: (-0.5, -6.0, -1.5), + central: ("weapon.projectile.simple-arrow"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Bomb: ( + bone0: ( + offset: (-5.5, -5.5, 0.0), + central: ("object.bomb"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Mine: ( + bone0: ( + offset: (-5.5, -5.5, 0.0), + central: ("sprite.misc.mine"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + DagonBomb: ( + bone0: ( + offset: (-5.5, -5.5, 0.0), + central: ("object.dagon_bomb"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + TerracottaDemolisherBomb: ( + bone0: ( + offset: (-5.5, -5.5, 0.0), + central: ("object.terracotta_demolisher_bomb"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + BloodBomb: ( + bone0: ( + offset: (-5.5, -5.5, 0.0), + central: ("object.blood_bomb"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + FireworkBlue: ( + bone0: ( + offset: (0.0, 0.0, 0.0), + central: ("weapon.projectile.fireworks_blue-0"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + FireworkGreen: ( + bone0: ( + offset: (0.0, 0.0, 0.0), + central: ("weapon.projectile.fireworks_green-0"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + FireworkPurple: ( + bone0: ( + offset: (0.0, 0.0, 0.0), + central: ("weapon.projectile.fireworks_purple-0"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + FireworkRed: ( + bone0: ( + offset: (0.0, 0.0, 0.0), + central: ("weapon.projectile.fireworks_red-0"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + FireworkWhite: ( + bone0: ( + offset: (0.0, 0.0, 0.0), + central: ("weapon.projectile.fireworks_white-0"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + FireworkYellow: ( + bone0: ( + offset: (0.0, 0.0, 0.0), + central: ("weapon.projectile.fireworks_yellow-0"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Scarecrow: ( + bone0: ( + offset: (-9.5, -4.0, 0.0), + central: ("object.scarecrow"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Cauldron: ( + bone0: ( + offset: (-10.0, -10.0, 0.0), + central: ("object.cauldron"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + ChestVines: ( + bone0: ( + offset: (-8.5, -7.0, 0.0), + central: ("object.chest_vines"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Chest: ( + bone0: ( + offset: (-7.5, -6.0, 0.0), + central: ("object.chest"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + ChestDark: ( + bone0: ( + offset: (-7.5, -6.0, 0.0), + central: ("object.chest_dark"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + ChestDemon: ( + bone0: ( + offset: (-7.5, -6.0, 0.0), + central: ("object.chest_demon"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + ChestGold: ( + bone0: ( + offset: (-7.5, -6.0, 0.0), + central: ("object.chest_gold"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + ChestLight: ( + bone0: ( + offset: (-7.5, -6.0, 0.0), + central: ("object.chest_light"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + ChestOpen: ( + bone0: ( + offset: (-7.5, -6.0, 0.0), + central: ("object.chest_open"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + ChestSkull: ( + bone0: ( + offset: (-7.5, -6.0, 0.0), + central: ("object.chest_skull"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Pumpkin: ( + bone0: ( + offset: (-5.5, -4.0, 0.0), + central: ("object.pumpkin"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Pumpkin2: ( + bone0: ( + offset: (-5.0, -4.0, 0.0), + central: ("object.pumpkin_2"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Pumpkin3: ( + bone0: ( + offset: (-5.0, -4.0, 0.0), + central: ("object.pumpkin_3"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Pumpkin4: ( + bone0: ( + offset: (-5.0, -4.0, 0.0), + central: ("object.pumpkin_4"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Pumpkin5: ( + bone0: ( + offset: (-4.0, -5.0, 0.0), + central: ("object.pumpkin_5"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + StrigoiHead: ( + bone0: ( + offset: (-9.5, -5.5, 0.0), + central: ("weapon.projectile.strigoi_head"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Campfire: ( + bone0: ( + offset: (-9.0, -10.0, 0.0), + central: ("object.campfire"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + CampfireLit: ( + bone0: ( + offset: (-9.0, -10.0, 0.0), + central: ("object.campfire_lit"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + BarrelOrgan: ( + bone0: ( + offset: (-9.0, -10.0, 0.0), + central: ("sprite.misc.barrel_organ"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + MinotaurAxe: ( + bone0: ( + offset: (-9.0, -10.0, 0.0), + central: ("weapon.axe.2haxe_minotaur"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + LanternGround: ( + bone0: ( + offset: (-3.5, -3.5, 0.0), + central: ("object.lantern_ground"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + LanternGroundOpen: ( + bone0: ( + offset: (-3.5, -3.5, 0.0), + central: ("object.lantern_ground_open"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + LanternStanding: ( + bone0: ( + offset: (-7.5, -3.5, 0.0), + central: ("object.lantern_standing"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + LanternStanding2: ( + bone0: ( + offset: (-11.5, -3.5, 0.0), + central: ("object.lantern_standing_2"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + PotionRed: ( + bone0: ( + offset: (-2.0, -2.0, 0.0), + central: ("object.potion_red"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + PotionBlue: ( + bone0: ( + offset: (-2.0, -2.0, 0.0), + central: ("object.potion_blue"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + PotionGreen: ( + bone0: ( + offset: (-2.0, -2.0, 0.0), + central: ("object.potion_green"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Crate: ( + bone0: ( + offset: (-7.0, -7.0, 0.0), + central: ("object.crate"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Tent: ( + bone0: ( + offset: (-18.5, -19.5, 0.0), + central: ("object.tent"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + WindowSpooky: ( + bone0: ( + offset: (-15.0, -1.5, -1.0), + central: ("object.window_spooky"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + DoorSpooky: ( + bone0: ( + offset: (-15.0, -4.5, 0.0), + central: ("object.door_spooky"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Table: ( + bone0: ( + offset: (-12.0, -8.0, 0.0), + central: ("object.table"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Table2: ( + bone0: ( + offset: (-8.0, -8.0, 0.0), + central: ("object.table_2"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Table3: ( + bone0: ( + offset: (-10.0, -10.0, 0.0), + central: ("object.table_3"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Drawer: ( + bone0: ( + offset: (-11.0, -7.5, 0.0), + central: ("object.drawer"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + BedBlue: ( + bone0: ( + offset: (-11.0, -15.0, 0.0), + central: ("object.bed_human_blue"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Anvil: ( + bone0: ( + offset: (-3.0, -7.0, 0.0), + central: ("object.anvil"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Gravestone: ( + bone0: ( + offset: (-5.0, -2.0, 0.0), + central: ("object.gravestone"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Gravestone2: ( + bone0: ( + offset: (-8.5, -3.0, 0.0), + central: ("object.gravestone_2"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Chair: ( + bone0: ( + offset: (-5.0, -4.5, 0.0), + central: ("object.chair"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Chair2: ( + bone0: ( + offset: (-5.0, -4.5, 0.0), + central: ("object.chair_2"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Chair3: ( + bone0: ( + offset: (-5.0, -4.5, 0.0), + central: ("object.chair_3"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Bench: ( + bone0: ( + offset: (-8.8, -5.0, 0.0), + central: ("object.bench"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Carpet: ( + bone0: ( + offset: (-14.0, -14.0, -0.5), + central: ("object.carpet"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Bedroll: ( + bone0: ( + offset: (-11.0, -19.5, -0.5), + central: ("object.bedroll"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + CarpetHumanRound: ( + bone0: ( + offset: (-14.0, -14.0, -0.5), + central: ("object.carpet_human_round"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + CarpetHumanSquare: ( + bone0: ( + offset: (-13.5, -14.0, -0.5), + central: ("object.carpet_human_square"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + CarpetHumanSquare2: ( + bone0: ( + offset: (-13.5, -14.0, -0.5), + central: ("object.carpet_human_square_2"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + CarpetHumanSquircle: ( + bone0: ( + offset: (-21.0, -21.0, -0.5), + central: ("object.carpet_human_squircle"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Pouch: ( + bone0: ( + offset: (-5.5, -4.5, 0.0), + central: ("object.pouch"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Coins: ( + bone0: ( + offset: (0.0, 0.0, 0.0), + central: ("object.coins"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + CraftingBench: ( + bone0: ( + offset: (-9.5, -7.0, 0.0), + central: ("object.crafting_bench"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + ArrowSnake: ( + bone0: ( + offset: (-1.5, -6.5, 0.0), + central: ("weapon.projectile.snake-arrow"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + BoltFire: ( + bone0: ( + offset: (-3.0, -5.5, -3.0), + central: ("weapon.projectile.fire-bolt-0"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + BoltFireBig: ( + bone0: ( + offset: (-6.0, -6.0, -6.0), + central: ("weapon.projectile.fire-bolt-1"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + FireRainDrop: ( + bone0: ( + offset: (-2.0, -10.0, -2.0), + central: ("weapon.projectile.firerain_droplet1"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + TrainingDummy: ( + bone0: ( + offset: (-7.0, -5.0, 0.0), + central: ("object.training_dummy"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + MultiArrow: ( + bone0: ( + offset: (-4.0, -9.5, -5.0), + central: ("weapon.projectile.multi-arrow"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + BoltNature: ( + bone0: ( + offset: (-6.0, -6.0, -6.0), + central: ("weapon.projectile.nature-bolt"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + ToughMeat: ( + bone0: ( + offset: (-4.5, -4.0, 0.0), + central: ("sprite.food.meat.tough_raw"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + BeastMeat: ( + bone0: ( + offset: (-6.5, -4.5, 0.0), + central: ("sprite.food.meat.beast_large_raw"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Crossbow: ( + bone0: ( + offset: (-18.0, -15.5, -8.0), + central: ("object.crossbow.bone0"), + ), + bone1: ( + offset: (-9.0, -7.0, -5.0), + central: ("object.crossbow.bone1"), + ) + ), + Flamethrower: ( + bone0: ( + offset: (-6.0, -16.5, -8.0), + central: ("object.flamethrower.bone0"), + ), + bone1: ( + offset: (-9.0, -7.0, -8.0), + central: ("object.flamethrower.bone1"), + ) + ), + Lavathrower: ( + bone0: ( + offset: (-6.0, -16.5, 4.0), + central: ("object.lavathrower.bone0"), + ), + bone1: ( + offset: (-9.0, -7.0, 0.0), + central: ("object.lavathrower.bone1"), + ) + ), + ArrowTurret: ( + bone0: ( + offset: (-1.5, -6.5, -1.5), + central: ("weapon.projectile.turret-arrow"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + ArrowClay: ( + bone0: ( + offset: (-1.5, -6.0, -1.5), + central: ("weapon.projectile.clay-arrow"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + BoltBesieger: ( + bone0: ( + offset: (-2.5, -10.0, -2.5), + central: ("weapon.projectile.besieger_bolt"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + SilverOre: ( + bone0: ( + offset: (-4.5, -5.0, 0.0), + central: ("object.silver_ore"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + GoldOre: ( + bone0: ( + offset: (-4.5, -5.0, 0.0), + central: ("object.gold_ore"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + ClayRocket: ( + bone0: ( + offset: (-0.5, -6.0, -1.5), + central: ("weapon.projectile.clay-missile"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + GrenadeClay: ( + bone0: ( + offset: (-0.5, -6.0, -1.5), + central: ("weapon.projectile.clay-missile"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + HaniwaSentry: ( + bone0: ( + offset: (-5.5, -4.5, -5.5), + central: ("object.haniwa_sentry.bone"), + model_index: 0, + ), + bone1: ( + offset: (-5.5, -5.5, -3.0), + central: ("object.haniwa_sentry.bone"), + model_index: 1, + ) + ), + SeaLantern: ( + bone0: ( + offset: (-4.5, -4.5, 0.0), + central: ("object.sea_lantern"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + BirdMeat: ( + bone0: ( + offset: (-5.5, -3.0, 0.0), + central: ("sprite.food.meat.bird_raw"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + FishMeat: ( + bone0: ( + offset: (-5.5, -5.5, 0.0), + central: ("sprite.food.meat.fish_raw"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + SmallMeat: ( + bone0: ( + offset: (-6.5, -3.5, 0.0), + central: ("sprite.food.meat.beast_small_raw"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Snowball: ( + bone0: ( + offset: (-12.5, -12.5, 0.0), + central: ("weapon.projectile.snowball"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Tornado: ( + bone0: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + FieryTornado: ( + bone0: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Apple: ( + bone0: ( + offset: (-3.5, -3.5, 0.0), + central: ("sprite.fruit.apple"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Hive: ( + bone0: ( + offset: (-5.5, -5.5, 0.0), + central: ("sprite.beehive.beehive"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Coconut: ( + bone0: ( + offset: (-4.5, -4.5, 0.0), + central: ("sprite.fruit.coconut"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + BoltIcicle: ( + bone0: ( + offset: (-2.5, -6.0, -2.5), + central: ("weapon.projectile.icicle-bolt"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + SpitPoison: ( + bone0: ( + offset: (-3.0, -5.0, -3.0), + central: ("weapon.projectile.poison-spit"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Dart: ( + bone0: ( + offset: (-0.5, -5.5, -1.5), + central: ("weapon.projectile.dart"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + GnarlingTotemRed: ( + bone0: ( + offset: (-6.0, -5.0, 0.0), + central: ("object.gnarling_totem_red"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + GnarlingTotemGreen: ( + bone0: ( + offset: (-9.0, -5.0, 0.0), + central: ("object.gnarling_totem_green"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + GnarlingTotemWhite: ( + bone0: ( + offset: (-8.0, -5.0, 0.0), + central: ("object.gnarling_totem_white"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + IceBomb: ( + bone0: ( + offset: (-12.5, -12.5, 0.0), + central: ("weapon.projectile.ice_bomb"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + SpectralSwordSmall: ( + bone0: ( + offset: (-0.5, -25.0, -8.5), + central: ("weapon.projectile.spectral_sword_small"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + SpectralSwordLarge: ( + bone0: ( + offset: (-0.5, -30.0, -8.5), + central: ("weapon.projectile.spectral_sword_large"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + LaserBeam: ( + bone0: ( + offset: (-6.0, -60.0, -17.0), + central: ("weapon.projectile.laser_beam"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + LaserBeamSmall: ( + bone0: ( + offset: (-1.0, -9.0, -3.0), + central: ("weapon.projectile.laser_beam_small"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + LightningBolt: ( + bone0: ( + offset: (-4.5, -80.0, -3.0), + central: ("weapon.projectile.lightning_bolt"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + SpearIcicle: ( + bone0: ( + offset: (-2.5, -30.0, -2.5), + central: ("weapon.projectile.icicle-spear"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + AdletSpear: ( + bone0: ( + offset: (5.0, -22.0, -2.0), + central: ("weapon.projectile.adlet-spear"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + AdletTrap: ( + bone0: ( + offset: (-4.5, -2.5, 0.0), + central: ("weapon.projectile.adlet-trap"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + TerracottaStatue: ( + bone0: ( + offset: (-21.0, -19.0, -0.0), + central: ("sprite.furniture.terracotta_statue_4"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Portal: ( + bone0: ( + offset: (-33.0, -33.0, 0.0), + central: ("object.portal"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + PortalActive: ( + bone0: ( + offset: (-33.0, -33.0, 0.0), + central: ("object.portal_active"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Pebble: ( + bone0: ( + offset: (0.0, 0.0, 0.0), + central: ("weapon.projectile.pebble"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + SurpriseEgg: ( + bone0: ( + offset: (-5.5, -5.5, 0.0), + central: ("object.surprise_egg"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + BubbleBomb: ( + bone0: ( + offset: (-3.5, -3.5, -3.5), + central: ("weapon.projectile.bubble_bomb"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + IronPikeBomb: ( + bone0: ( + offset: (-3.5, -8.0, -3.5), + central: ("weapon.projectile.iron_pike_bomb"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + Scroll: ( + bone0: ( + offset: (0.0, 0.0, 0.0), + central: ("object.recipe"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + HarlequinDagger: ( + bone0: ( + offset: (-0.5, -7.0, -1.0), + central: ("weapon.projectile.harlequin-dagger"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + BorealTrap: ( + bone0: ( + offset: (-4.5, -2.5, 0.0), + central: ("weapon.projectile.boreal-trap"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + PoisonBall: ( + bone0: ( + offset: (0.0, 0.0, 0.0), + central: ("weapon.projectile.poison_ball"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), +}) diff --git a/assets/voxygen/voxel/particle.vox b/assets/voxygen/voxel/particle.vox new file mode 100644 index 0000000..ad5f88e Binary files /dev/null and b/assets/voxygen/voxel/particle.vox differ diff --git a/assets/voxygen/voxel/plugin_body_manifest.ron b/assets/voxygen/voxel/plugin_body_manifest.ron new file mode 100644 index 0000000..9369726 --- /dev/null +++ b/assets/voxygen/voxel/plugin_body_manifest.ron @@ -0,0 +1,3 @@ +({ + // this data structure contains bone to voxel file mapping in plugins +}) \ No newline at end of file diff --git a/assets/voxygen/voxel/quadruped_low_central_manifest.ron b/assets/voxygen/voxel/quadruped_low_central_manifest.ron new file mode 100644 index 0000000..14029e4 --- /dev/null +++ b/assets/voxygen/voxel/quadruped_low_central_manifest.ron @@ -0,0 +1,1276 @@ +({ + (Crocodile, Male): ( + upper: ( + offset: (-4.0, 0.0, -3.0), + central: ("npc.crocodile.male.head_upper"), + ), + lower: ( + offset: (-4.0, -4.0, -3.0), + central: ("npc.crocodile.male.head_lower"), + ), + jaw: ( + offset: (-4.0, 0.0, -1.5), + central: ("npc.crocodile.male.jaw"), + ), + chest: ( + offset: (-5.0, -7.5, -3.0), + central: ("npc.crocodile.male.chest"), + ), + tail_rear: ( + offset: (-1.0, -9.0, -1.5),//full length of y dimension + central: ("npc.crocodile.male.tail_rear"), + ), + tail_front: ( + offset: (-3.0, -13.0, -2.5),//full length of y dimension + central: ("npc.crocodile.male.tail_front"), + ), + ), + (Crocodile, Female): ( + upper: ( + offset: (-4.0, 0.0, -3.0), + central: ("npc.crocodile.male.head_upper"), + ), + lower: ( + offset: (-4.0, -4.0, -3.0), + central: ("npc.crocodile.male.head_lower"), + ), + jaw: ( + offset: (-4.0, 0.0, -1.5), + central: ("npc.crocodile.male.jaw"), + ), + chest: ( + offset: (-5.0, -7.5, -3.0), + central: ("npc.crocodile.male.chest"), + ), + tail_rear: ( + offset: (-1.0, -9.0, -1.5), + central: ("npc.crocodile.male.tail_rear"), + ), + tail_front: ( + offset: (-3.0, -13.0, -2.5), + central: ("npc.crocodile.male.tail_front"), + ), + ), + (SeaCrocodile, Male): ( + upper: ( + offset: (-3.0, 5.0, -1.0), + central: ("npc.sea_crocodile.male.head_upper"), + ), + lower: ( + offset: (-4.0, 1.5, -3.0), + central: ("npc.sea_crocodile.male.head_lower"), + ), + jaw: ( + offset: (-4.0, 2.5, -1.5), + central: ("npc.sea_crocodile.male.jaw"), + ), + chest: ( + offset: (-6.0, -7.5, -3.0), + central: ("npc.sea_crocodile.male.chest"), + ), + tail_rear: ( + offset: (-1.0, -14.0, -1.0), + central: ("npc.sea_crocodile.male.tail_rear"), + ), + tail_front: ( + offset: (-2.0, -11.0, -3.0), + central: ("npc.sea_crocodile.male.tail_front"), + ), + ), + (SeaCrocodile, Female): ( + upper: ( + offset: (-3.0, 5.0, -1.0), + central: ("npc.sea_crocodile.male.head_upper"), + ), + lower: ( + offset: (-4.0, 1.5, -3.0), + central: ("npc.sea_crocodile.male.head_lower"), + ), + jaw: ( + offset: (-4.0, 2.5, -1.5), + central: ("npc.sea_crocodile.male.jaw"), + ), + chest: ( + offset: (-6.0, -7.5, -3.0), + central: ("npc.sea_crocodile.male.chest"), + ), + tail_rear: ( + offset: (-1.0, -14.0, -1.0),//full length of y dimension + central: ("npc.sea_crocodile.male.tail_rear"), + ), + tail_front: ( + offset: (-2.0, -11.0, -3.0),//full length of y dimension + central: ("npc.sea_crocodile.male.tail_front"), + ), + ), + (Alligator, Male): ( + upper: ( + offset: (-4.0, -0.0, -2.5), + central: ("npc.alligator.male.head_upper"), + ), + lower: ( + offset: (-4.0, -4.0, -3.5), + central: ("npc.alligator.male.head_lower"), + ), + jaw: ( + offset: (-4.0, 0.0, -2.5), + central: ("npc.alligator.male.jaw"), + ), + chest: ( + offset: (-6.0, -7.5, -3.5), + central: ("npc.alligator.male.chest"), + ), + tail_rear: ( + offset: (-2.0, -9.0, -1.5), + central: ("npc.alligator.male.tail_rear"), + ), + tail_front: ( + offset: (-4.0, -13.0, -2.5), + central: ("npc.alligator.male.tail_front"), + ), + ), + (Alligator, Female): ( + upper: ( + offset: (-4.0, -0.0, -2.5), + central: ("npc.alligator.male.head_upper"), + ), + lower: ( + offset: (-4.0, -4.0, -3.5), + central: ("npc.alligator.male.head_lower"), + ), + jaw: ( + offset: (-4.0, 0.0, -2.5), + central: ("npc.alligator.male.jaw"), + ), + chest: ( + offset: (-6.0, -7.5, -3.5), + central: ("npc.alligator.male.chest"), + ), + tail_rear: ( + offset: (-2.0, -9.0, -1.5), + central: ("npc.alligator.male.tail_rear"), + ), + tail_front: ( + offset: (-4.0, -13.0, -2.5), + central: ("npc.alligator.male.tail_front"), + ), + ), + (Snaretongue, Male): ( + upper: ( + offset: (-8.5, -6.0, -7.5), + central: ("npc.snaretongue.male.snaretongue"), + model_index: 0, + ), + lower: ( + offset: (-6.5, -2.0, -8.0), + central: ("npc.snaretongue.male.snaretongue"), + model_index: 1, + ), + jaw: ( + offset: (-8.5, 0.0, -6.0), + central: ("npc.snaretongue.male.snaretongue"), + model_index: 2, + ), + chest: ( + offset: (-7.5, -7.5, -8.0), + central: ("npc.snaretongue.male.snaretongue"), + model_index: 3, + ), + tail_rear: ( + offset: (-4.5, -10.5, -4.5), + central: ("npc.snaretongue.male.snaretongue"), + model_index: 4, + ), + tail_front: ( + offset: (-2.5, -10.5, -2.5), + central: ("npc.snaretongue.male.snaretongue"), + model_index: 5, + ), + ), + (Snaretongue, Female): ( + upper: ( + offset: (-8.5, -6.0, -7.5), + central: ("npc.snaretongue.male.snaretongue"), + model_index: 0, + ), + lower: ( + offset: (-6.5, -2.0, -8.0), + central: ("npc.snaretongue.male.snaretongue"), + model_index: 1, + ), + + jaw: ( + offset: (-8.5, 0.0, -6.0), + central: ("npc.snaretongue.male.snaretongue"), + model_index: 2, + ), + chest: ( + offset: (-7.5, -7.5, -8.0), + central: ("npc.snaretongue.male.snaretongue"), + model_index: 3, + ), + tail_rear: ( + offset: (-4.5, -10.5, -4.5), + central: ("npc.snaretongue.male.snaretongue"), + model_index: 4, + ), + tail_front: ( + offset: (-2.5, -10.5, -2.5), + central: ("npc.snaretongue.male.snaretongue"), + model_index: 5, + ), + ), + (Salamander, Male): ( + upper: ( + offset: (-6.5, 0.0, -2.0), + central: ("npc.salamander.male.head_upper"), + ), + lower: ( + offset: (-4.5, -1.5, -3.0), + central: ("npc.salamander.male.head_lower"), + ), + jaw: ( + offset: (-6.5, 0.0, -3.0), + central: ("npc.salamander.male.jaw"), + ), + chest: ( + offset: (-6.5, -8.5, -3.0), + central: ("npc.salamander.male.chest"), + ), + tail_rear: ( + offset: (-3.5, -13.0, -3.0), + central: ("npc.salamander.male.tail_rear"), + ), + tail_front: ( + offset: (-5.5, -9.0, -3.0), + central: ("npc.salamander.male.tail_front"), + ), + ), + (Salamander, Female): ( + upper: ( + offset: (-6.5, 0.0, -2.0), + central: ("npc.salamander.male.head_upper"), + ), + lower: ( + offset: (-4.5, -1.5, -3.0), + central: ("npc.salamander.male.head_lower"), + ), + jaw: ( + offset: (-6.5, 0.0, -3.0), + central: ("npc.salamander.male.jaw"), + ), + chest: ( + offset: (-6.5, -8.5, -3.0), + central: ("npc.salamander.male.chest"), + ), + tail_rear: ( + offset: (-3.5, -13.0, -3.0), + central: ("npc.salamander.male.tail_rear"), + ), + tail_front: ( + offset: (-5.5, -9.0, -3.0), + central: ("npc.salamander.male.tail_front"), + ), + ), + (Elbst, Male): ( + upper: ( + offset: (-9.5, 0.0, -2.0), + central: ("npc.elbst.male.head_upper"), + ), + lower: ( + offset: (-4.5, -1.5, -3.0), + central: ("npc.elbst.male.head_lower"), + ), + jaw: ( + offset: (-6.5, 0.0, -2.0), + central: ("npc.elbst.male.jaw"), + ), + chest: ( + offset: (-8.5, -8.5, -3.0), + central: ("npc.elbst.male.chest"), + ), + tail_rear: ( + offset: (-6.5, -13.0, -2.5), + central: ("npc.elbst.male.tail_rear"), + ), + tail_front: ( + offset: (-5.5, -8.0, -3.0), + central: ("npc.elbst.male.tail_front"), + ), + ), + (Elbst, Female): ( + upper: ( + offset: (-9.5, 0.0, -2.0), + central: ("npc.elbst.male.head_upper"), + ), + lower: ( + offset: (-4.5, -1.5, -3.0), + central: ("npc.elbst.male.head_lower"), + ), + jaw: ( + offset: (-6.5, 0.0, -2.0), + central: ("npc.elbst.male.jaw"), + ), + chest: ( + offset: (-8.5, -8.5, -3.0), + central: ("npc.elbst.male.chest"), + ), + tail_rear: ( + offset: (-6.5, -13.0, -2.5), + central: ("npc.elbst.male.tail_rear"), + ), + tail_front: ( + offset: (-5.5, -8.0, -3.0), + central: ("npc.elbst.male.tail_front"), + ), + ), + (Monitor, Male): ( + upper: ( + offset: (-3.0, 0.0, -3.0), + central: ("npc.monitor.male.head_upper"), + ), + lower: ( + offset: (-3.0, 0.0, -2.0), + central: ("npc.monitor.male.head_lower"), + ), + jaw: ( + offset: (-3.0, 0.0, -1.0), + central: ("npc.monitor.male.jaw"), + ), + chest: ( + offset: (-4.0, -7.0, -3.0), + central: ("npc.monitor.male.chest"), + ), + tail_rear: ( + offset: (-1.0, -11.0, -2.0), + central: ("npc.monitor.male.tail_rear"), + ), + + tail_front: ( + offset: (-2.0, -13.0, -2.0), + central: ("npc.monitor.male.tail_front"), + ), + ), + (Monitor, Female): ( + upper: ( + offset: (-3.0, 0.0, -3.0), + central: ("npc.monitor.male.head_upper"), + ), + lower: ( + offset: (-3.0, 0.0, -2.0), + central: ("npc.monitor.male.head_lower"), + ), + jaw: ( + offset: (-3.0, 0.0, -1.0), + central: ("npc.monitor.male.jaw"), + ), + chest: ( + offset: (-4.0, -7.0, -3.0), + central: ("npc.monitor.male.chest"), + ), + tail_rear: ( + offset: (-1.0, -11.0, -2.0), + central: ("npc.monitor.male.tail_rear"), + ), + tail_front: ( + offset: (-2.0, -13.0, -2.0), + central: ("npc.monitor.male.tail_front"), + ), + ), + (Asp, Male): ( + upper: ( + offset: (-5.0, 0.0, -5.0), + central: ("npc.asp.male.head_upper"), + ), + lower: ( + offset: (-6.0, -0.0, -2.0), + central: ("npc.asp.male.head_lower"), + ), + jaw: ( + offset: (-2.0, 0.0, -1.0), + central: ("npc.asp.male.jaw"), + ), + chest: ( + offset: (-5.0, -7.5, -5.0), + central: ("npc.asp.male.chest"), + ), + tail_rear: ( + offset: (-1.0, -14.0, -2.0), + central: ("npc.asp.male.tail_rear"), + ), + tail_front: ( + offset: (-3.0, -14.0, -4.0), + central: ("npc.asp.male.tail_front"), + ), + ), + (Asp, Female): ( + upper: ( + offset: (-5.0, 0.0, -5.0), + central: ("npc.asp.male.head_upper"), + ), + lower: ( + offset: (-6.0, -0.0, -2.0), + central: ("npc.asp.male.head_lower"), + ), + jaw: ( + offset: (-2.0, 0.0, -1.0), + central: ("npc.asp.male.jaw"), + ), + chest: ( + offset: (-5.0, -7.5, -5.0), + central: ("npc.asp.male.chest"), + ), + tail_rear: ( + offset: (-1.0, -14.0, -2.0), + central: ("npc.asp.male.tail_rear"), + ), + tail_front: ( + offset: (-3.0, -14.0, -4.0), + central: ("npc.asp.male.tail_front"), + ), + ), + (Tortoise, Male): ( + upper: ( + offset: (-2.5, -4.0, -3.0), + central: ("npc.tortoise.male.head_upper"), + ), + lower: ( + offset: (-2.5, -3.5, -2.0), + central: ("npc.tortoise.male.head_lower"), + ), + jaw: ( + offset: (-1.5, 0.0, -1.0), + central: ("npc.tortoise.male.jaw"), + ), + chest: ( + offset: (-10.5, -12.5, -7.0), + central: ("npc.tortoise.male.chest"), + ), + tail_rear: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail_front: ( + offset: (-1.5, -3.5, -1.5), + central: ("npc.tortoise.male.tail_front"), + ), + ), + (Tortoise, Female): ( + upper: ( + offset: (-2.5, -4.0, -3.0), + central: ("npc.tortoise.male.head_upper"), + ), + lower: ( + offset: (-2.5, -3.5, -2.0), + central: ("npc.tortoise.male.head_lower"), + ), + jaw: ( + offset: (-1.5, 0.0, -1.0), + central: ("npc.tortoise.male.jaw"), + ), + chest: ( + offset: (-10.5, -12.5, -7.0), + central: ("npc.tortoise.male.chest"), + ), + tail_rear: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail_front: ( + offset: (-1.5, -3.5, -1.5), + central: ("npc.tortoise.male.tail_front"), + ), + ), + (Rocksnapper, Male): ( + upper: ( + offset: (-3.5, -4.5, -3.0), + central: ("npc.rocksnapper.male.head_upper"), + ), + lower: ( + offset: (-3.5, -5.0, -3.5), + central: ("npc.rocksnapper.male.head_lower"), + ), + jaw: ( + offset: (-6.5, 0.0, -2.5), + central: ("npc.rocksnapper.male.jaw"), + ), + chest: ( + offset: (-15.5, -18.5, -13.5), + central: ("npc.rocksnapper.male.chest"), + ), + tail_rear: ( + offset: (-1.5, -11.0, -2.5), + central: ("npc.rocksnapper.male.tail_rear"), + ), + tail_front: ( + offset: (-2.5, -15.0, -4.5), + central: ("npc.rocksnapper.male.tail_front"), + ), + ), + (Rocksnapper, Female): ( + upper: ( + offset: (-3.5, -4.5, -3.0), + central: ("npc.rocksnapper.male.head_upper"), + ), + lower: ( + offset: (-3.5, -5.0, -3.5), + central: ("npc.rocksnapper.male.head_lower"), + ), + jaw: ( + offset: (-6.5, 0.0, -2.5), + central: ("npc.rocksnapper.male.jaw"), + ), + chest: ( + offset: (-15.5, -18.5, -13.5), + central: ("npc.rocksnapper.male.chest"), + ), + tail_rear: ( + offset: (-1.5, -11.0, -2.5), + central: ("npc.rocksnapper.male.tail_rear"), + ), + tail_front: ( + offset: (-2.5, -15.0, -4.5), + central: ("npc.rocksnapper.male.tail_front"), + ), + ), + (Rootsnapper, Male): ( + upper: ( + offset: (-3.5, -3.5, 3.0), + central: ("npc.rootsnapper.male.head_upper"), + ), + lower: ( + offset: (-3.5, -4.0, 0.5), + central: ("npc.rootsnapper.male.head_lower"), + ), + jaw: ( + offset: (-3.5, 3.0, 5.0), + central: ("npc.rootsnapper.male.jaw"), + ), + chest: ( + offset: (-12.5, -17.0, -17.5), + central: ("npc.rootsnapper.male.chest"), + ), + tail_rear: ( + offset: (-1.5, -5.0, -2.5), + central: ("npc.rootsnapper.male.tail_rear"), + ), + tail_front: ( + offset: (-2.5, -12.0, -5.5), + central: ("npc.rootsnapper.male.tail_front"), + ), + ), + (Rootsnapper, Female): ( + upper: ( + offset: (-3.5, -3.5, 3.0), + central: ("npc.rootsnapper.male.head_upper"), + ), + lower: ( + offset: (-3.5, -4.0, 0.5), + central: ("npc.rootsnapper.male.head_lower"), + ), + jaw: ( + offset: (-3.5, 3.0, 5.0), + central: ("npc.rootsnapper.male.jaw"), + ), + chest: ( + offset: (-12.5, -17.0, -17.5), + central: ("npc.rootsnapper.male.chest"), + ), + tail_rear: ( + offset: (-1.5, -5.0, -2.5), + central: ("npc.rootsnapper.male.tail_rear"), + ), + tail_front: ( + offset: (-2.5, -12.0, -5.5), + central: ("npc.rootsnapper.male.tail_front"), + ), + ), + (Reefsnapper, Male): ( + upper: ( + offset: (-3.5, -2.5, -6.0), + central: ("npc.reefsnapper.male.head_upper"), + ), + lower: ( + offset: (-3.5, -3.0, -6.0), + central: ("npc.reefsnapper.male.head_lower"), + ), + jaw: ( + offset: (-4.5, 4.0, -4.0), + central: ("npc.reefsnapper.male.jaw"), + ), + chest: ( + offset: (-13.5, -15.0, -15.5), + central: ("npc.reefsnapper.male.chest"), + ), + tail_rear: ( + offset: (-3.5, -8.0, -5.5), + central: ("npc.reefsnapper.male.tail_rear"), + ), + tail_front: ( + offset: (-4.5, -15.0, -7.5), + central: ("npc.reefsnapper.male.tail_front"), + ), + ), + (Reefsnapper, Female): ( + upper: ( + offset: (-3.5, -2.5, -6.0), + central: ("npc.reefsnapper.male.head_upper"), + ), + lower: ( + offset: (-3.5, -3.0, -6.0), + central: ("npc.reefsnapper.male.head_lower"), + ), + jaw: ( + offset: (-4.5, 4.0, -4.0), + central: ("npc.reefsnapper.male.jaw"), + ), + chest: ( + offset: (-13.5, -15.0, -15.5), + central: ("npc.reefsnapper.male.chest"), + ), + tail_rear: ( + offset: (-3.5, -8.0, -5.5), + central: ("npc.reefsnapper.male.tail_rear"), + ), + tail_front: ( + offset: (-4.5, -15.0, -7.5), + central: ("npc.reefsnapper.male.tail_front"), + ), + ), + (Pangolin, Male): ( + upper: ( + offset: (-2.5, 0.0, -3.0), + central: ("npc.pangolin.male.head_upper"), + ), + lower: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + chest: ( + offset: (-6.5, -8.0, -4.5), + central: ("npc.pangolin.male.chest"), + ), + tail_rear: ( + offset: (-3.5, -16.0, -1.5), + central: ("npc.pangolin.male.tail_rear"), + ), + tail_front: ( + offset: (-4.5, -8.0, -4.0), + central: ("npc.pangolin.male.tail_front"), + ), + ), + (Pangolin, Female): ( + upper: ( + offset: (-2.5, 0.0, -3.0), + central: ("npc.pangolin.male.head_upper"), + ), + lower: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + chest: ( + offset: (-6.5, -8.0, -4.5), + central: ("npc.pangolin.male.chest"), + ), + tail_rear: ( + offset: (-3.5, -16.0, -1.5), + central: ("npc.pangolin.male.tail_rear"), + ), + tail_front: ( + offset: (-4.5, -8.0, -4.0), + central: ("npc.pangolin.male.tail_front"), + ), + ), + (Maneater, Male): ( + upper: ( + offset: (-5.5, 0.0, 0.0), + central: ("npc.maneater.male.head_upper"), + ), + lower: ( + offset: (-14.5, -5.5, -0.0), + central: ("npc.maneater.male.head_lower"), + ), + jaw: ( + offset: (-7.5, 0.0, -19.0), + central: ("npc.maneater.male.jaw"), + ), + chest: ( + offset: (-6.5, -6.5, -6.0), + central: ("npc.maneater.male.chest"), + ), + tail_rear: ( + offset: (-0.5, -14.0, -6.5), + central: ("npc.maneater.male.tail_rear"), + ), + tail_front: ( + offset: (-4.5, -15.0, -0.0), + central: ("npc.maneater.male.tail_front"), + ), + ), + (Maneater, Female): ( + upper: ( + offset: (-5.5, 0.0, 0.0), + central: ("npc.maneater.male.head_upper"), + ), + lower: ( + offset: (-14.5, -5.5, -0.0), + central: ("npc.maneater.male.head_lower"), + ), + jaw: ( + offset: (-7.5, 0.0, -19.0), + central: ("npc.maneater.male.jaw"), + ), + chest: ( + offset: (-6.5, -6.5, -6.0), + central: ("npc.maneater.male.chest"), + ), + tail_rear: ( + offset: (-0.5, -14.0, -6.5), + central: ("npc.maneater.male.tail_rear"), + ), + tail_front: ( + offset: (-4.5, -15.0, -0.0), + central: ("npc.maneater.male.tail_front"), + ), + ), + (Hakulaq, Male): ( + upper: ( + offset: (-2.5, -8.5, -5.0), + central: ("npc.hakulaq.male.head_upper"), + ), + lower: ( + offset: (-2.5, -3.5, -8.5), + central: ("npc.hakulaq.male.head_lower"), + ), + jaw: ( + offset: (-2.5, 0.0, -2.0), + central: ("npc.hakulaq.male.jaw"), + ), + chest: ( + offset: (-4.5, -8.0, -8.5), + central: ("npc.hakulaq.male.chest"), + ), + tail_rear: ( + offset: (-1.5, -18.0, -2.0), + central: ("npc.hakulaq.male.tail_rear"), + ), + tail_front: ( + offset: (-2.5, -10.0, -4.0), + central: ("npc.hakulaq.male.tail_front"), + ), + ), + (Hakulaq, Female): ( + upper: ( + offset: (-2.5, -8.5, -5.0), + central: ("npc.hakulaq.male.head_upper"), + ), + lower: ( + offset: (-2.5, -3.5, -8.5), + central: ("npc.hakulaq.male.head_lower"), + ), + jaw: ( + offset: (-2.5, 0.0, -2.0), + central: ("npc.hakulaq.male.jaw"), + ), + chest: ( + offset: (-4.5, -8.0, -8.5), + central: ("npc.hakulaq.male.chest"), + ), + tail_rear: ( + offset: (-1.5, -18.0, -2.0), + central: ("npc.hakulaq.male.tail_rear"), + ), + tail_front: ( + offset: (-2.5, -10.0, -4.0), + central: ("npc.hakulaq.male.tail_front"), + ), + ), + (Dagon, Male): ( + upper: ( + offset: (-3.5, 2.5, -8.0), + central: ("npc.dagon.male.head_upper"), + ), + lower: ( + offset: (-4.5, -10.0, -3.5), + central: ("npc.dagon.male.head_lower"), + ), + jaw: ( + offset: (-2.5, 2.5, -10.0), + central: ("npc.dagon.male.jaw"), + ), + chest: ( + offset: (-4.5, -8.0, -10.5), + central: ("npc.dagon.male.chest"), + ), + tail_rear: ( + offset: (-0.5, -31.0, -8.0), + central: ("npc.dagon.male.tail_rear"), + ), + tail_front: ( + offset: (-1.5, -12.0, -10.0), + central: ("npc.dagon.male.tail_front"), + ), + ), + (Dagon, Female): ( + upper: ( + offset: (-3.5, 2.5, -8.0), + central: ("npc.dagon.male.head_upper"), + ), + lower: ( + offset: (-4.5, -10.0, -3.5), + central: ("npc.dagon.male.head_lower"), + ), + jaw: ( + offset: (-2.5, 2.5, -10.0), + central: ("npc.dagon.male.jaw"), + ), + chest: ( + offset: (-4.5, -8.0, -10.5), + central: ("npc.dagon.male.chest"), + ), + tail_rear: ( + offset: (-0.5, -31.0, -8.0), + central: ("npc.dagon.male.tail_rear"), + ), + tail_front: ( + offset: (-1.5, -12.0, -10.0), + central: ("npc.dagon.male.tail_front"), + ), + ), + (Sandshark, Male): ( + upper: ( + offset: (-5.5, -8.0, -5.0), + central: ("npc.sandshark.male.head_upper"), + ), + lower: ( + offset: (-4.5, -2.5, -6.5), + central: ("npc.sandshark.male.head_lower"), + ), + jaw: ( + offset: (-5.5, 0.0, -2.5), + central: ("npc.sandshark.male.jaw"), + ), + chest: ( + offset: (-9.5, -15.0, -17.0), + central: ("npc.sandshark.male.chest"), + ), + tail_rear: ( + offset: (-1.5, -19.0, -4.5), + central: ("npc.sandshark.male.tail_rear"), + ), + tail_front: ( + offset: (-3.5, -11.0, -4.0), + central: ("npc.sandshark.male.tail_front"), + ), + ), + (Sandshark, Female): ( + upper: ( + offset: (-5.5, -8.0, -5.0), + central: ("npc.sandshark.male.head_upper"), + ), + lower: ( + offset: (-4.5, -2.5, -6.5), + central: ("npc.sandshark.male.head_lower"), + ), + jaw: ( + offset: (-5.5, 0.0, -2.5), + central: ("npc.sandshark.male.jaw"), + ), + chest: ( + offset: (-9.5, -15.0, -17.0), + central: ("npc.sandshark.male.chest"), + ), + tail_rear: ( + offset: (-1.5, -19.0, -4.5), + central: ("npc.sandshark.male.tail_rear"), + ), + tail_front: ( + offset: (-3.5, -11.0, -4.0), + central: ("npc.sandshark.male.tail_front"), + ), + ), + (Lavadrake, Male): ( + upper: ( + offset: (-6.5, -2.0, -6.0), + central: ("npc.lavadrake.male.head_upper"), + ), + lower: ( + offset: (-6.5, -1.0, -3.0), + central: ("npc.lavadrake.male.head_lower"), + ), + jaw: ( + offset: (-3.5, 0.0, -5.0), + central: ("npc.lavadrake.male.jaw"), + ), + chest: ( + offset: (-9.5, -11.5, -11.5), + central: ("npc.lavadrake.male.chest"), + ), + tail_rear: ( + offset: (-6.5, -24.0, -3.5), + central: ("npc.lavadrake.male.tail_rear"), + ), + tail_front: ( + offset: (-5.5, -12.0, -6.5), + central: ("npc.lavadrake.male.tail_front"), + ), + ), + (Lavadrake, Female): ( + upper: ( + offset: (-6.5, -2.0, -6.0), + central: ("npc.lavadrake.male.head_upper"), + ), + lower: ( + offset: (-6.5, -1.0, -3.0), + central: ("npc.lavadrake.male.head_lower"), + ), + jaw: ( + offset: (-3.5, 0.0, -5.0), + central: ("npc.lavadrake.male.jaw"), + ), + chest: ( + offset: (-9.5, -11.5, -11.5), + central: ("npc.lavadrake.male.chest"), + ), + tail_rear: ( + offset: (-6.5, -24.0, -3.5), + central: ("npc.lavadrake.male.tail_rear"), + ), + tail_front: ( + offset: (-5.5, -12.0, -6.5), + central: ("npc.lavadrake.male.tail_front"), + ), + ), + (Icedrake, Male): ( + upper: ( + offset: (-3.5, -2.0, -6.0), + central: ("npc.icedrake.male.head_upper"), + ), + lower: ( + offset: (-3.5, -1.0, -5.0), + central: ("npc.icedrake.male.head_lower"), + ), + jaw: ( + offset: (-4.5, 0.0, -5.0), + central: ("npc.icedrake.male.jaw"), + ), + chest: ( + offset: (-7.5, -11.0, -14.0), + central: ("npc.icedrake.male.chest"), + ), + tail_rear: ( + offset: (-2.5, -20.0, -7.5), + central: ("npc.icedrake.male.tail_rear"), + ), + tail_front: ( + offset: (-3.5, -12.0, -6.5), + central: ("npc.icedrake.male.tail_front"), + ), + ), + (Icedrake, Female): ( + upper: ( + offset: (-3.5, -2.0, -6.0), + central: ("npc.icedrake.male.head_upper"), + ), + lower: ( + offset: (-3.5, -1.0, -5.0), + central: ("npc.icedrake.male.head_lower"), + ), + jaw: ( + offset: (-4.5, 0.0, -5.0), + central: ("npc.icedrake.male.jaw"), + ), + chest: ( + offset: (-7.5, -11.0, -14.0), + central: ("npc.icedrake.male.chest"), + ), + tail_rear: ( + offset: (-2.5, -20.0, -7.5), + central: ("npc.icedrake.male.tail_rear"), + ), + tail_front: ( + offset: (-3.5, -12.0, -6.5), + central: ("npc.icedrake.male.tail_front"), + ), + ), + (Basilisk, Male): ( + upper: ( + offset: (-5.5, 0.0, -5.0), + central: ("npc.basilisk.male.head_upper"), + ), + lower: ( + offset: (-12.5, -6.5, -6.0), + central: ("npc.basilisk.male.head_lower"), + ), + jaw: ( + offset: (-5.5, 0.0, -3.0), + central: ("npc.basilisk.male.jaw"), + ), + chest: ( + offset: (-12.5, -11.0, -12.0), + central: ("npc.basilisk.male.chest"), + ), + tail_rear: ( + offset: (-3.5, -19.0, -5.0), + central: ("npc.basilisk.male.tail_rear"), + ), + tail_front: ( + offset: (-5.5, -12.0, -7.5), + central: ("npc.basilisk.male.tail_front"), + ), + ), + (Basilisk, Female): ( + upper: ( + offset: (-5.5, 0.0, -5.0), + central: ("npc.basilisk.male.head_upper"), + ), + lower: ( + offset: (-12.5, -6.5, -6.0), + central: ("npc.basilisk.male.head_lower"), + ), + jaw: ( + offset: (-5.5, 0.0, -3.0), + central: ("npc.basilisk.male.jaw"), + ), + chest: ( + offset: (-12.5, -11.0, -12.0), + central: ("npc.basilisk.male.chest"), + ), + tail_rear: ( + offset: (-3.5, -19.0, -5.0), + central: ("npc.basilisk.male.tail_rear"), + ), + tail_front: ( + offset: (-5.5, -12.0, -7.5), + central: ("npc.basilisk.male.tail_front"), + ), + ), + (Deadwood, Male): ( + upper: ( + offset: (-3.5, -3.5, -4.0), + central: ("npc.deadwood.male.head_upper"), + ), + lower: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + chest: ( + offset: (-12.5, -11.0, -9.0), + central: ("npc.deadwood.male.chest"), + ), + tail_rear: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail_front: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + ), + (Deadwood, Female): ( + upper: ( + offset: (-3.5, -3.5, -4.0), + central: ("npc.deadwood.male.head_upper"), + ), + lower: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + chest: ( + offset: (-12.5, -11.0, -9.0), + central: ("npc.deadwood.male.chest"), + ), + tail_rear: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail_front: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + ), + (Mossdrake, Male): ( + upper: ( + offset: (-6.5, -2.0, -5.5), + central: ("npc.mossdrake.male.head_upper"), + ), + lower: ( + offset: (-6.5, -1.0, -3.0), + central: ("npc.mossdrake.male.head_lower"), + ), + jaw: ( + offset: (-3.5, -2.0, -5.0), + central: ("npc.mossdrake.male.jaw"), + ), + chest: ( + offset: (-13.5, -11.5, -12.5), + central: ("npc.mossdrake.male.chest"), + ), + tail_rear: ( + offset: (-6.5, -24.0, -3.5), + central: ("npc.mossdrake.male.tail_rear"), + ), + tail_front: ( + offset: (-5.5, -12.0, -6.5), + central: ("npc.mossdrake.male.tail_front"), + ), + ), + (Mossdrake, Female): ( + upper: ( + offset: (-6.5, -2.0, -5.5), + central: ("npc.mossdrake.male.head_upper"), + ), + lower: ( + offset: (-6.5, -1.0, -3.0), + central: ("npc.mossdrake.male.head_lower"), + ), + jaw: ( + offset: (-3.5, -2.0, -5.0), + central: ("npc.mossdrake.male.jaw"), + ), + chest: ( + offset: (-13.5, -11.5, -12.5), + central: ("npc.mossdrake.male.chest"), + ), + tail_rear: ( + offset: (-6.5, -24.0, -3.5), + central: ("npc.mossdrake.male.tail_rear"), + ), + tail_front: ( + offset: (-5.5, -12.0, -6.5), + central: ("npc.mossdrake.male.tail_front"), + ), + ), + (Driggle, Male): ( + upper: ( + offset: (-9.5, -5.0, -5.5), + central: ("npc.driggle.male.head_upper"), + ), + lower: ( + offset: (-4.5, -1.0, -4.0), + central: ("npc.driggle.male.head_lower"), + ), + jaw: ( + offset: (-4.5, 0.0, -3.0), + central: ("npc.driggle.male.jaw"), + ), + chest: ( + offset: (-5.5, -6.5, -8.0), + central: ("npc.driggle.male.chest"), + ), + tail_rear: ( + offset: (-2.5, -3.5, -3.5), + central: ("npc.driggle.male.tail_rear"), + ), + tail_front: ( + offset: (-2.5, -1.5, -4.0), + central: ("npc.driggle.male.tail_front"), + ), + ), + (Driggle, Female): ( + upper: ( + offset: (-9.5, -5.0, -5.5), + central: ("npc.driggle.male.head_upper"), + ), + lower: ( + offset: (-4.5, -1.0, -4.0), + central: ("npc.driggle.male.head_lower"), + ), + jaw: ( + offset: (-4.5, 0.0, -3.0), + central: ("npc.driggle.male.jaw"), + ), + chest: ( + offset: (-5.5, -6.5, -8.0), + central: ("npc.driggle.male.chest"), + ), + tail_rear: ( + offset: (-2.5, -3.5, -3.5), + central: ("npc.driggle.male.tail_rear"), + ), + tail_front: ( + offset: (-2.5, -1.5, -4.0), + central: ("npc.driggle.male.tail_front"), + ), + ), + (Hydra, Male): ( + upper: ( + offset: (-4.5, -3.0, -6.0), + central: ("npc.hydra.hydra"), + model_index: 1, + ), + lower: ( + offset: (-3.5, -1.0, -3.5), + central: ("npc.hydra.hydra"), + model_index: 8, + ), + jaw: ( + offset: (-2.5, 0.0, -3.0), + central: ("npc.hydra.hydra"), + model_index: 7, + ), + chest: ( + offset: (-11.5, -14.5, -12.0), + central: ("npc.hydra.hydra"), + model_index: 10, + ), + tail_rear: ( + offset: (-3.5, -14.0, -3.0), + central: ("npc.hydra.hydra"), + model_index: 3, + ), + tail_front: ( + offset: (-3.5, -17.0, -4.0), + central: ("npc.hydra.hydra"), + model_index: 9, + ), + ), + (Hydra, Female): ( + upper: ( + offset: (-4.5, -3.0, -6.0), + central: ("npc.hydra.hydra"), + model_index: 1, + ), + lower: ( + offset: (-3.5, -1.0, -3.5), + central: ("npc.hydra.hydra"), + model_index: 8, + ), + jaw: ( + offset: (-2.5, 0.0, -3.0), + central: ("npc.hydra.hydra"), + model_index: 7, + ), + chest: ( + offset: (-11.5, -14.5, -12.0), + central: ("npc.hydra.hydra"), + model_index: 10, + ), + tail_rear: ( + offset: (-3.5, -14.0, -3.0), + central: ("npc.hydra.hydra"), + model_index: 3, + ), + tail_front: ( + offset: (-3.5, -17.0, -4.0), + central: ("npc.hydra.hydra"), + model_index: 9, + ), + ), +}) diff --git a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron new file mode 100644 index 0000000..1775156 --- /dev/null +++ b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron @@ -0,0 +1,943 @@ +({ + (Crocodile, Male): ( + front_left: ( + offset: (-7.0, -0.0, -4.0),//full x dimension, 0 y dimension, full z dimension + lateral: ("npc.crocodile.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, -0.0, -4.0),//0 x dimension, 0 y dimension, full z dimension + lateral: ("npc.crocodile.male.foot_fr", false), + ), + back_left: ( + offset: (-8.0, -0.0, -4.0),//full x dimension, 0 y dimension, full z dimension + lateral: ("npc.crocodile.male.foot_br", false), + ), + back_right: ( + offset: (0.0, -0.0, -4.0),//0 x dimension, 0 y dimension, full z dimension + lateral: ("npc.crocodile.male.foot_br", false), + ), + ), + (Crocodile, Female): ( + front_left: ( + offset: (-7.0, -0.0, -4.0), + lateral: ("npc.crocodile.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, -0.0, -4.0), + lateral: ("npc.crocodile.male.foot_fr", false), + ), + back_left: ( + offset: (-8.0, -0.0, -4.0), + lateral: ("npc.crocodile.male.foot_br", false), + ), + back_right: ( + offset: (0.0, -0.0, -4.0), + lateral: ("npc.crocodile.male.foot_br", false), + ), + ), + (SeaCrocodile, Male): ( + front_left: ( + offset: (-7.0, -0.0, -4.0),//full x dimension, 0 y dimension, full z dimension + lateral: ("npc.sea_crocodile.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, -0.0, -4.0),//0 x dimension, 0 y dimension, full z dimension + lateral: ("npc.sea_crocodile.male.foot_fr", false), + ), + back_left: ( + offset: (-8.0, -0.0, -4.0),//full x dimension, 0 y dimension, full z dimension + lateral: ("npc.sea_crocodile.male.foot_br", false), + ), + back_right: ( + offset: (0.0, -0.0, -4.0),//0 x dimension, 0 y dimension, full z dimension + lateral: ("npc.sea_crocodile.male.foot_br", false), + ), + ), + (SeaCrocodile, Female): ( + front_left: ( + offset: (-7.0, -0.0, -4.0), + lateral: ("npc.sea_crocodile.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, -0.0, -4.0), + lateral: ("npc.sea_crocodile.male.foot_fr", false), + ), + back_left: ( + offset: (-8.0, -0.0, -4.0), + lateral: ("npc.sea_crocodile.male.foot_br", false), + ), + back_right: ( + offset: (0.0, -0.0, -4.0), + lateral: ("npc.sea_crocodile.male.foot_br", false), + ), + ), + (Alligator, Male): ( + front_left: ( + offset: (-7.0, 0.0, -4.0), + lateral: ("npc.alligator.male.foot_fr", false), + ), + front_right: ( + offset: (-0.0, 0.0, -4.0), + lateral: ("npc.alligator.male.foot_fr", false), + ), + back_left: ( + offset: (-8.0, 0.0, -4.0), + lateral: ("npc.alligator.male.foot_br", false), + ), + back_right: ( + offset: (-0.0, 0.0, -4.0), + lateral: ("npc.alligator.male.foot_br", false), + ), + ), + (Alligator, Female): ( + front_left: ( + offset: (-7.0, 0.0, -4.0), + lateral: ("npc.alligator.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, 0.0, -4.0), + lateral: ("npc.alligator.male.foot_fr", false), + ), + back_left: ( + offset: (-8.0, 0.0, -4.0), + lateral: ("npc.alligator.male.foot_br", false), + ), + back_right: ( + offset: (0.0, 0.0, -4.0), + lateral: ("npc.alligator.male.foot_br", false), + ), + ), + (Snaretongue, Male): ( + front_left: ( + offset: (-8.0, 0.0, -10.0), + lateral: ("npc.snaretongue.male.snaretongue", false), + model_index: 6, + ), + front_right: ( + offset: (-0.0, 0.0, -10.0), + lateral: ("npc.snaretongue.male.snaretongue", false), + model_index: 6, + ), + back_left: ( + offset: (-15.0, -8.0, -11.0), + lateral: ("npc.snaretongue.male.snaretongue", false), + model_index: 8, + ), + back_right: ( + offset: (-0.0, -8.0, -11.0), + lateral: ("npc.snaretongue.male.snaretongue", false), + model_index: 8, + ), + ), + (Snaretongue, Female): ( + front_left: ( + offset: (-8.0, 0.0, -10.0), + lateral: ("npc.snaretongue.male.snaretongue", false), + model_index: 6, + ), + front_right: ( + offset: (-0.0, 0.0, -10.0), + lateral: ("npc.snaretongue.male.snaretongue", false), + model_index: 6, + ), + back_left: ( + offset: (-15.0, -8.0, -11.0), + lateral: ("npc.snaretongue.male.snaretongue", false), + model_index: 8, + ), + back_right: ( + offset: (-0.0, -8.0, -11.0), + lateral: ("npc.snaretongue.male.snaretongue", false), + model_index: 8, + ), + ), + (Salamander, Male): ( + front_left: ( + offset: (-6.0, 0.0, -3.0), + lateral: ("npc.salamander.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, 0.0, -3.0), + lateral: ("npc.salamander.male.foot_fr", false), + ), + back_left: ( + offset: (-7.0, 0.0, -3.0), + lateral: ("npc.salamander.male.foot_br", false), + ), + back_right: ( + offset: (-0.0, 0.0, -3.0), + lateral: ("npc.salamander.male.foot_br", false), + ), + ), + (Salamander, Female): ( + front_left: ( + offset: (-6.0, 0.0, -3.0), + lateral: ("npc.salamander.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, 0.0, -3.0), + lateral: ("npc.salamander.male.foot_fr", false), + ), + back_left: ( + offset: (-7.0, 0.0, -3.0), + lateral: ("npc.salamander.male.foot_br", false), + ), + back_right: ( + offset: (-0.0, 0.0, -3.0), + lateral: ("npc.salamander.male.foot_br", false), + ), + ), + (Elbst, Male): ( + front_left: ( + offset: (-6.0, 0.0, -3.0), + lateral: ("npc.elbst.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, 0.0, -3.0), + lateral: ("npc.elbst.male.foot_fr", false), + ), + back_left: ( + offset: (-8.0, 0.0, -3.0), + lateral: ("npc.elbst.male.foot_br", false), + ), + back_right: ( + offset: (0.0, 0.0, -3.0), + lateral: ("npc.elbst.male.foot_br", false), + ), + ), + (Elbst, Female): ( + front_left: ( + offset: (-6.0, 0.0, -3.0), + lateral: ("npc.elbst.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, 0.0, -3.0), + lateral: ("npc.elbst.male.foot_fr", false), + ), + back_left: ( + offset: (-8.0, 0.0, -3.0), + lateral: ("npc.elbst.male.foot_br", false), + ), + back_right: ( + offset: (0.0, 0.0, -3.0), + lateral: ("npc.elbst.male.foot_br", false), + ), + ), + (Monitor, Male): ( + front_left: ( + offset: (-8.0, 0.0, -5.0), + lateral: ("npc.monitor.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, 0.0, -5.0), + lateral: ("npc.monitor.male.foot_fr", false), + ), + back_left: ( + offset: (-7.0, 0.0, -5.0), + lateral: ("npc.monitor.male.foot_br", false), + ), + back_right: ( + offset: (0.0, 0.0, -5.0), + lateral: ("npc.monitor.male.foot_br", false), + ), + ), + (Monitor, Female): ( + front_left: ( + offset: (-8.0, 0.0, -5.0), + lateral: ("npc.monitor.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, 0.0, -5.0), + lateral: ("npc.monitor.male.foot_fr", false), + ), + back_left: ( + offset: (-7.0, 0.0, -5.0), + lateral: ("npc.monitor.male.foot_br", false), + ), + back_right: ( + offset: (0.0, 0.0, -5.0), + lateral: ("npc.monitor.male.foot_br", false), + ), + ), + (Asp, Male): ( + front_left: ( + offset: (-10.0, 0.0, -6.5), + lateral: ("npc.asp.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, 0.0, -6.5), + lateral: ("npc.asp.male.foot_fr", false), + ), + back_left: ( + offset: (-7.5, 0.0, -6.5), + lateral: ("npc.asp.male.foot_br", false), + ), + back_right: ( + offset: (0.0, 0.0, -6.5), + lateral: ("npc.asp.male.foot_br", false), + ), + ), + (Asp, Female): ( + front_left: ( + offset: (-10.0, 0.0, -6.5), + lateral: ("npc.asp.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, 0.0, -6.5), + lateral: ("npc.asp.male.foot_fr", false), + ), + back_left: ( + offset: (-7.5, 0.0, -6.5), + lateral: ("npc.asp.male.foot_br", false), + ), + back_right: ( + offset: (0.0, 0.0, -6.5), + lateral: ("npc.asp.male.foot_br", false), + ), + ), + (Tortoise, Male): ( + front_left: ( + offset: (-7.0, 0.0, -8.0), + lateral: ("npc.tortoise.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, 0.0, -8.0), + lateral: ("npc.tortoise.male.foot_fr", false), + ), + back_left: ( + offset: (-7.0, 0.0, -8.0), + lateral: ("npc.tortoise.male.foot_br", false), + ), + back_right: ( + offset: (0.0, 0.0, -8.0), + lateral: ("npc.tortoise.male.foot_br", false), + ), + ), + (Tortoise, Female): ( + front_left: ( + offset: (-7.0, 0.0, -8.0), + lateral: ("npc.tortoise.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, 0.0, -8.0), + lateral: ("npc.tortoise.male.foot_fr", false), + ), + back_left: ( + offset: (-7.0, 0.0, -8.0), + lateral: ("npc.tortoise.male.foot_br", false), + ), + back_right: ( + offset: (0.0, 0.0, -8.0), + lateral: ("npc.tortoise.male.foot_br", false), + ), + ), + (Rocksnapper, Male): ( + front_left: ( + offset: (-12.0, 0.0, -10.0), + lateral: ("npc.rocksnapper.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, 0.0, -10.0), + lateral: ("npc.rocksnapper.male.foot_fr", false), + ), + back_left: ( + offset: (-11.0, -6.0, -9.0), + lateral: ("npc.rocksnapper.male.foot_br", false), + ), + back_right: ( + offset: (0.0, -6.0, -9.0), + lateral: ("npc.rocksnapper.male.foot_br", false), + ), + ), + (Rocksnapper, Female): ( + front_left: ( + offset: (-12.0, 0.0, -10.0), + lateral: ("npc.rocksnapper.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, 0.0, -10.0), + lateral: ("npc.rocksnapper.male.foot_fr", false), + ), + back_left: ( + offset: (-11.0, -6.0, -9.0),//special case + lateral: ("npc.rocksnapper.male.foot_br", false), + ), + back_right: ( + offset: (0.0, -6.0, -9.0), + lateral: ("npc.rocksnapper.male.foot_br", false), + ), + ), + (Rootsnapper, Male): ( + front_left: ( + offset: (-12.0, -1.0, -10.0), + lateral: ("npc.rootsnapper.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, -1.0, -10.0), + lateral: ("npc.rootsnapper.male.foot_fr", false), + ), + back_left: ( + offset: (-11.0, -5.0, -9.0), + lateral: ("npc.rootsnapper.male.foot_br", false), + ), + back_right: ( + offset: (0.0, -5.0, -9.0), + lateral: ("npc.rootsnapper.male.foot_br", false), + ), + ), + (Rootsnapper, Female): ( + front_left: ( + offset: (-12.0, -1.0, -10.0), + lateral: ("npc.rootsnapper.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, -1.0, -10.0), + lateral: ("npc.rootsnapper.male.foot_fr", false), + ), + back_left: ( + offset: (-11.0, -5.0, -9.0), + lateral: ("npc.rootsnapper.male.foot_br", false), + ), + back_right: ( + offset: (0.0, -5.0, -9.0), + lateral: ("npc.rootsnapper.male.foot_br", false), + ), + ), + (Reefsnapper, Male): ( + front_left: ( + offset: (-12.0, -9.0, -10.0), + lateral: ("npc.reefsnapper.male.foot_fr", false), + ), + front_right: ( + offset: (-3.0, -9.0, -10.0), + lateral: ("npc.reefsnapper.male.foot_fr", false), + ), + back_left: ( + offset: (-11.0, -7.0, -9.0), + lateral: ("npc.reefsnapper.male.foot_br", false), + ), + back_right: ( + offset: (0.0, -7.0, -9.0), + lateral: ("npc.reefsnapper.male.foot_br", false), + ), + ), + (Reefsnapper, Female): ( + front_left: ( + offset: (-12.0, -9.0, -10.0), + lateral: ("npc.reefsnapper.male.foot_fr", false), + ), + front_right: ( + offset: (-3.0, -9.0, -10.0), + lateral: ("npc.reefsnapper.male.foot_fr", false), + ), + back_left: ( + offset: (-11.0, -7.0, -9.0), + lateral: ("npc.reefsnapper.male.foot_br", false), + ), + back_right: ( + offset: (0.0, -7.0, -9.0), + lateral: ("npc.reefsnapper.male.foot_br", false), + ), + ), + (Pangolin, Male): ( + front_left: ( + offset: (-1.5, 0.0, -6.0),//unique + lateral: ("npc.pangolin.male.foot_fr", false), + ), + front_right: ( + offset: (-1.5, 0.0, -6.0), + lateral: ("npc.pangolin.male.foot_fr", false), + ), + back_left: ( + offset: (-1.5, 0.0, -6.0), + lateral: ("npc.pangolin.male.foot_br", false), + ), + back_right: ( + offset: (-1.5, 0.0, -6.0), + lateral: ("npc.pangolin.male.foot_br", false), + ), + ), + (Pangolin, Female): ( + front_left: ( + offset: (-1.5, 0.0, -6.0), + lateral: ("npc.pangolin.male.foot_fr", false), + ), + front_right: ( + offset: (-1.5, 0.0, -6.0), + lateral: ("npc.pangolin.male.foot_fr", false), + ), + back_left: ( + offset: (-1.5, 0.0, -6.0),//special case + lateral: ("npc.pangolin.male.foot_br", false), + ), + back_right: ( + offset: (-1.5, 0.0, -6.0), + lateral: ("npc.pangolin.male.foot_br", false), + ), + ), + (Maneater, Male): ( + front_left: ( + offset: (-6.0, 0.0, -6.5), + lateral: ("npc.maneater.male.foot_fr", false), + ), + front_right: ( + offset: (-2.0, 0.0, -6.5), + lateral: ("npc.maneater.male.foot_fr", false), + ), + back_left: ( + offset: (-6.0, -8.0, -9.0), + lateral: ("npc.maneater.male.foot_br", false), + ), + back_right: ( + offset: (-2.0, -8.0, -9.0), + lateral: ("npc.maneater.male.foot_br", false), + ), + ), + (Maneater, Female): ( + front_left: ( + offset: (-6.0, 0.0, -6.5), + lateral: ("npc.maneater.male.foot_fr", false), + ), + front_right: ( + offset: (-2.0, 0.0, -6.5), + lateral: ("npc.maneater.male.foot_fr", false), + ), + back_left: ( + offset: (-6.0, -8.0, -9.0), + lateral: ("npc.maneater.male.foot_br", false), + ), + back_right: ( + offset: (-2.0, -8.0, -9.0), + lateral: ("npc.maneater.male.foot_br", false), + ), + ), + (Hakulaq, Male): ( + front_left: ( + offset: (-10.0, 0.0, -9.0), + lateral: ("npc.hakulaq.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, 0.0, -9.0), + lateral: ("npc.hakulaq.male.foot_fr", false), + ), + back_left: ( + offset: (-10.0, 0.0, -9.0), + lateral: ("npc.hakulaq.male.foot_br", false), + ), + back_right: ( + offset: (0.0, 0.0, -9.0), + lateral: ("npc.hakulaq.male.foot_br", false), + ), + ), + (Hakulaq, Female): ( + front_left: ( + offset: (-10.0, 0.0, -9.0), + lateral: ("npc.hakulaq.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, 0.0, -9.0), + lateral: ("npc.hakulaq.male.foot_fr", false), + ), + back_left: ( + offset: (-10.0, 0.0, -9.0), + lateral: ("npc.hakulaq.male.foot_br", false), + ), + back_right: ( + offset: (0.0, 0.0, -9.0), + lateral: ("npc.hakulaq.male.foot_br", false), + ), + ), + (Dagon, Male): ( + front_left: ( + offset: (-9.0, 5.0, -9.0), + lateral: ("npc.dagon.male.foot_fr", false), + ), + front_right: ( + offset: (-2.0, 5.0, -9.0), + lateral: ("npc.dagon.male.foot_fr", false), + ), + back_left: ( + offset: (-11.0, 3.0, -9.0), + lateral: ("npc.dagon.male.foot_br", false), + ), + back_right: ( + offset: (0.0, 3.0, -9.0), + lateral: ("npc.dagon.male.foot_br", false), + ), + ), + (Dagon, Female): ( + front_left: ( + offset: (-9.0, 5.0, -9.0), + lateral: ("npc.dagon.male.foot_fr", false), + ), + front_right: ( + offset: (-2.0, 5.0, -9.0), + lateral: ("npc.dagon.male.foot_fr", false), + ), + back_left: ( + offset: (-11.0, 3.0, -9.0), + lateral: ("npc.dagon.male.foot_br", false), + ), + back_right: ( + offset: (0.0, 3.0, -9.0), + lateral: ("npc.dagon.male.foot_br", false), + ), + ), + (Sandshark, Male): ( + front_left: ( + offset: (-17.0, 0.0, -12.0), + lateral: ("npc.sandshark.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, 0.0, -12.0), + lateral: ("npc.sandshark.male.foot_fr", false), + ), + back_left: ( + offset: (-9.0, 0.0, -6.0), + lateral: ("npc.sandshark.male.foot_br", false), + ), + back_right: ( + offset: (-2.0, 0.0, -6.0), + lateral: ("npc.sandshark.male.foot_br", false), + ), + ), + (Sandshark, Female): ( + front_left: ( + offset: (-17.0, 0.0, -12.0), + lateral: ("npc.sandshark.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, 0.0, -12.0), + lateral: ("npc.sandshark.male.foot_fr", false), + ), + back_left: ( + offset: (-9.0, 0.0, -6.0), + lateral: ("npc.sandshark.male.foot_br", false), + ), + back_right: ( + offset: (-2.0, 0.0, -6.0), + lateral: ("npc.sandshark.male.foot_br", false), + ), + ), + (Lavadrake, Male): ( + front_left: ( + offset: (-14.0, -4.0, -10.0), + lateral: ("npc.lavadrake.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, -4.0, -10.0), + lateral: ("npc.lavadrake.male.foot_fr", false), + ), + back_left: ( + offset: (-14.0, -7.5, -10.0), + lateral: ("npc.lavadrake.male.foot_br", false), + ), + back_right: ( + offset: (0.0, -7.5, -10.0), + lateral: ("npc.lavadrake.male.foot_br", false), + ), + ), + (Lavadrake, Female): ( + front_left: ( + offset: (-14.0, -4.0, -10.0), + lateral: ("npc.lavadrake.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, -4.0, -10.0), + lateral: ("npc.lavadrake.male.foot_fr", false), + ), + back_left: ( + offset: (-14.0, -7.5, -10.0), + lateral: ("npc.lavadrake.male.foot_br", false), + ), + back_right: ( + offset: (0.0, -7.5, -10.0), + lateral: ("npc.lavadrake.male.foot_br", false), + ), + ), + (Icedrake, Male): ( + front_left: ( + offset: (-14.0, -4.0, -10.0), + lateral: ("npc.icedrake.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, -4.0, -10.0), + lateral: ("npc.icedrake.male.foot_fr", false), + ), + back_left: ( + offset: (-14.0, -7.5, -10.0), + lateral: ("npc.icedrake.male.foot_br", false), + ), + back_right: ( + offset: (0.0, -7.5, -10.0), + lateral: ("npc.icedrake.male.foot_br", false), + ), + ), + (Icedrake, Female): ( + front_left: ( + offset: (-14.0, -4.0, -10.0), + lateral: ("npc.icedrake.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, -4.0, -10.0), + lateral: ("npc.icedrake.male.foot_fr", false), + ), + back_left: ( + offset: (-14.0, -7.5, -10.0), + lateral: ("npc.icedrake.male.foot_br", false), + ), + back_right: ( + offset: (0.0, -7.5, -10.0), + lateral: ("npc.icedrake.male.foot_br", false), + ), + ), + (Basilisk, Male): ( + front_left: ( + offset: (-13.0, 0.0, -13.0), + lateral: ("npc.basilisk.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, 0.0, -13.0), + lateral: ("npc.basilisk.male.foot_fr", false), + ), + back_left: ( + offset: (-11.0, -6.5, -13.0), + lateral: ("npc.basilisk.male.foot_br", false), + ), + back_right: ( + offset: (0.0, -6.5, -13.0), + lateral: ("npc.basilisk.male.foot_br", false), + ), + ), + (Basilisk, Female): ( + front_left: ( + offset: (-13.0, 0.0, -13.0), + lateral: ("npc.basilisk.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, 0.0, -13.0), + lateral: ("npc.basilisk.male.foot_fr", false), + ), + back_left: ( + offset: (-12.0, -6.5, -13.0), + lateral: ("npc.basilisk.male.foot_br", false), + ), + back_right: ( + offset: (0.0, -6.5, -13.0), + lateral: ("npc.basilisk.male.foot_br", false), + ), + ), + (Deadwood, Male): ( + front_left: ( + offset: (-5.0, -2.0, -7.0), + lateral: ("npc.deadwood.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, -2.0, -7.0), + lateral: ("npc.deadwood.male.foot_fr", false), + ), + back_left: ( + offset: (-5.0, -1.0, -7.0), + lateral: ("npc.deadwood.male.foot_br", false), + ), + back_right: ( + offset: (0.0, -1.0, -7.0), + lateral: ("npc.deadwood.male.foot_br", false), + ), + ), + (Deadwood, Female): ( + front_left: ( + offset: (-5.0, -2.0, -7.0), + lateral: ("npc.deadwood.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, -2.0, -7.0), + lateral: ("npc.deadwood.male.foot_fr", false), + ), + back_left: ( + offset: (-5.0, -1.0, -7.0), + lateral: ("npc.deadwood.male.foot_br", false), + ), + back_right: ( + offset: (0.0, -1.0, -7.0), + lateral: ("npc.deadwood.male.foot_br", false), + ), + ), + (Mossdrake, Male): ( + front_left: ( + offset: (-14.0, -1.0, -10.0), + lateral: ("npc.mossdrake.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, -1.0, -10.0), + lateral: ("npc.mossdrake.male.foot_fr", false), + ), + back_left: ( + offset: (-14.0, -7.5, -10.0), + lateral: ("npc.mossdrake.male.foot_br", false), + ), + back_right: ( + offset: (0.0, -7.5, -10.0), + lateral: ("npc.mossdrake.male.foot_br", false), + ), + ), + (Mossdrake, Female): ( + front_left: ( + offset: (-14.0, -1.0, -10.0), + lateral: ("npc.mossdrake.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, -1.0, -10.0), + lateral: ("npc.mossdrake.male.foot_fr", false), + ), + back_left: ( + offset: (-14.0, -7.5, -10.0), + lateral: ("npc.mossdrake.male.foot_br", false), + ), + back_right: ( + offset: (0.0, -7.5, -10.0), + lateral: ("npc.mossdrake.male.foot_br", false), + ), + ), + (Driggle, Male): ( + front_left: ( + offset: (-6.0, 0.0, -4.0), + lateral: ("npc.driggle.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, 0.0, -4.0), + lateral: ("npc.driggle.male.foot_fr", false), + ), + back_left: ( + offset: (-6.0, 0.0, -3.0), + lateral: ("npc.driggle.male.foot_br", false), + ), + back_right: ( + offset: (0.0, 0.0, -3.0), + lateral: ("npc.driggle.male.foot_br", false), + ), + ), + (Driggle, Female): ( + front_left: ( + offset: (-6.0, 0.0, -4.0), + lateral: ("npc.driggle.male.foot_fr", false), + ), + front_right: ( + offset: (0.0, 0.0, -4.0), + lateral: ("npc.driggle.male.foot_fr", false), + ), + back_left: ( + offset: (-6.0, 0.0, -3.0), + lateral: ("npc.driggle.male.foot_br", false), + ), + back_right: ( + offset: (0.0, 0.0, -3.0), + lateral: ("npc.driggle.male.foot_br", false), + ), + ), + (Hydra, Male): ( + left_upper: ( + offset: (-4.5, -3.0, -6.0), + lateral: ("npc.hydra.hydra", true), + model_index: 2, + ), + left_lower: ( + offset: (-4.5, -6.0, -3.0), + lateral: ("npc.hydra.hydra", true), + model_index: 6, + ), + left_jaw: ( + offset: (-2.5, 0.0, -3.0), + lateral: ("npc.hydra.hydra", false), + model_index: 5, + ), + right_upper: ( + offset: (-4.5, -3.0, -6.0), + lateral: ("npc.hydra.hydra", false), + model_index: 2, + ), + right_lower: ( + offset: (-4.5, -6.0, -3.0), + lateral: ("npc.hydra.hydra", false), + model_index: 6, + ), + right_jaw: ( + offset: (-2.5, 0.0, -3.0), + lateral: ("npc.hydra.hydra", false), + model_index: 5, + ), + front_left: ( + offset: (-3.0, -5.0, -13.0), + lateral: ("npc.hydra.hydra", true), + model_index: 4, + ), + front_right: ( + offset: (-6.0, -5.0, -13.0), + lateral: ("npc.hydra.hydra", true), + model_index: 4, + ), + back_left: ( + offset: (-14.0, -10.0, -11.0), + lateral: ("npc.hydra.hydra", true), + model_index: 0, + ), + back_right: ( + offset: (0.0, -10.0, -11.0), + lateral: ("npc.hydra.hydra", true), + model_index: 0, + ), + ), + (Hydra, Female): ( + left_upper: ( + offset: (-4.5, -3.0, -6.0), + lateral: ("npc.hydra.hydra", true), + model_index: 2, + ), + left_lower: ( + offset: (-4.5, -6.0, -3.0), + lateral: ("npc.hydra.hydra", true), + model_index: 6, + ), + left_jaw: ( + offset: (-2.5, 0.0, -3.0), + lateral: ("npc.hydra.hydra", false), + model_index: 5, + ), + right_upper: ( + offset: (-4.5, -3.0, -6.0), + lateral: ("npc.hydra.hydra", false), + model_index: 2, + ), + right_lower: ( + offset: (-4.5, -6.0, -3.0), + lateral: ("npc.hydra.hydra", false), + model_index: 6, + ), + right_jaw: ( + offset: (-2.5, 0.0, -3.0), + lateral: ("npc.hydra.hydra", false), + model_index: 5, + ), + front_left: ( + offset: (-3.0, -5.0, -13.0), + lateral: ("npc.hydra.hydra", true), + model_index: 4, + ), + front_right: ( + offset: (-6.0, -5.0, -13.0), + lateral: ("npc.hydra.hydra", true), + model_index: 4, + ), + back_left: ( + offset: (-14.0, -10.0, -11.0), + lateral: ("npc.hydra.hydra", true), + model_index: 0, + ), + back_right: ( + offset: (0.0, -10.0, -11.0), + lateral: ("npc.hydra.hydra", true), + model_index: 0, + ), + + ), +}) diff --git a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron new file mode 100644 index 0000000..be9d37f --- /dev/null +++ b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron @@ -0,0 +1,2244 @@ +({ + (Grolgar, Male): ( + head: ( + offset: (-7.0, 0.0, -9.0), + central: ("npc.grolgar.male.head"), + ), + neck: ( + offset: (-6.0, -2.0, -8.0), + central: ("npc.grolgar.male.neck"), + ), + jaw: ( + offset: (-2.0, 0.0, -1.5), + central: ("npc.grolgar.male.jaw"), + ), + torso_front: ( + offset: (-7.0, -11.0, -8.0),//value in y dimension is full length of model + central: ("npc.grolgar.male.torso_front"), + ), + torso_back: ( + offset: (-5.0, -12.0, -5.5),//value in y dimension is full length of model + central: ("npc.grolgar.male.torso_back"), + ), + ears: ( + offset: (-4.0, -1.0, 0.0), + central: ("npc.grolgar.male.ears"), + ), + tail: ( + offset: (-2.0, -11.0, -10.0), + central: ("npc.grolgar.male.tail"), + ), + ), + (Grolgar, Female): ( + head: ( + offset: (-7.0, 0.0, -9.0), + central: ("npc.grolgar.male.head"), + ), + neck: ( + offset: (-6.0, -2.0, -8.0), + central: ("npc.grolgar.male.neck"), + ), + jaw: ( + offset: (-2.0, 0.0, -1.5), + central: ("npc.grolgar.male.jaw"), + ), + torso_front: ( + offset: (-7.0, -11.0, -8.0), + central: ("npc.grolgar.male.torso_front"), + ), + torso_back: ( + offset: (-5.0, -12.0, -5.5), + central: ("npc.grolgar.male.torso_back"), + ), + ears: ( + offset: (-4.0, -1.0, 0.0), + central: ("npc.grolgar.male.ears"), + ), + tail: ( + offset: (-2.0, -11.0, -10.0), + central: ("npc.grolgar.male.tail"), + ), + ), + (Saber, Male): ( + head: ( + offset: (-6.5, 0.5, -6.5), + central: ("npc.saber.male.head"), + ), + neck: ( + offset: (-4.0, 1.0, -3.0), + central: ("npc.saber.male.neck"), + ), + jaw: ( + offset: (-2.5, 2.0, -1.5), + central: ("npc.saber.male.jaw"), + ), + torso_front: ( + offset: (-6.0, -14.0, -6.0), + central: ("npc.saber.male.torso_front"), + ), + torso_back: ( + offset: (-5.0, -11.5, -8.0), + central: ("npc.saber.male.torso_back"), + ), + ears: ( + offset: (-5.0, -2.0, 0.0), + central: ("npc.saber.male.ears"), + ), + tail: ( + offset: (-2.0, -7.0, -6.0), + central: ("npc.saber.male.tail"), + ), + ), + (Saber, Female): ( + head: ( + offset: (-6.5, 0.5, -6.5), + central: ("npc.saber.male.head"), + ), + neck: ( + offset: (-4.0, 1.0, -3.0), + central: ("npc.saber.male.neck"), + ), + jaw: ( + offset: (-2.5, 2.0, -1.5), + central: ("npc.saber.male.jaw"), + ), + torso_front: ( + offset: (-6.0, -14.0, -6.0), + central: ("npc.saber.male.torso_front"), + ), + torso_back: ( + offset: (-5.0, -11.5, -8.0), + central: ("npc.saber.male.torso_back"), + ), + ears: ( + offset: (-5.0, -2.0, 0.0), + central: ("npc.saber.male.ears"), + ), + tail: ( + offset: (-2.0, -7.0, -6.0), + central: ("npc.saber.male.tail"), + ), + ), + (Tuskram, Male): ( + head: ( + offset: (-15.0, -2.0, -10.0), + central: ("npc.tuskram.male.head"), + ), + neck: ( + offset: (-4.0, -3.0, -6.0), + central: ("npc.tuskram.male.neck"), + ), + jaw: ( + offset: (-5.0, 0.0, -8.0), + central: ("npc.tuskram.male.jaw"), + ), + torso_front: ( + offset: (-7.0, -14.0, -8.0), + central: ("npc.tuskram.male.torso_front"), + ), + torso_back: ( + offset: (-5.0, -10.0, -5.5), + central: ("npc.tuskram.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-3.0, -6.0, -8.0), + central: ("npc.tuskram.male.tail"), + ), + ), + (Tuskram, Female): ( + head: ( + offset: (-15.0, -2.0, -10.0), + central: ("npc.tuskram.male.head"), + ), + neck: ( + offset: (-4.0, -3.0, -6.0), + central: ("npc.tuskram.male.neck"), + ), + jaw: ( + offset: (-5.0, 0.0, -8.0), + central: ("npc.tuskram.male.jaw"), + ), + torso_front: ( + offset: (-7.0, -14.0, -8.0), + central: ("npc.tuskram.male.torso_front"), + ), + torso_back: ( + offset: (-5.0, -10.0, -5.5), + central: ("npc.tuskram.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-3.0, -6.0, -8.0), + central: ("npc.tuskram.male.tail"), + ), + ), + (Lion, Male): ( + head: ( + offset: (-4.5, 0.0, -4.5), + central: ("npc.lion.male.head"), + ), + neck: ( + offset: (-7.5, -3.0, -8.5), + central: ("npc.lion.male.neck"), + ), + jaw: ( + offset: (-2.5, 0.0, -1.0), + central: ("npc.lion.male.jaw"), + ), + torso_front: ( + offset: (-5.5, -13.0, -6.0), + central: ("npc.lion.male.torso_front"), + ), + torso_back: ( + offset: (-5.5, -12.0, -5.0), + central: ("npc.lion.male.torso_back"), + ), + ears: ( + offset: (-4.5, -1.0, 0.0), + central: ("npc.lion.male.ears"), + ), + tail: ( + offset: (-1.5, -15.0, -10.0), + central: ("npc.lion.male.tail"), + ), + ), + (Lion, Female): ( + head: ( + offset: (-5.5, 0.5, -7.5), + central: ("npc.lion.female.head"), + ), + neck: ( + offset: (-3.5, -3.0, -11.5), + central: ("npc.lion.female.neck"), + ), + jaw: ( + offset: (-2.5, 1.0, -3.5), + central: ("npc.lion.female.jaw"), + ), + torso_front: ( + offset: (-5.5, -13.0, -6.0), + central: ("npc.lion.female.torso_front"), + ), + torso_back: ( + offset: (-5.5, -13.0, -5.5), + central: ("npc.lion.female.torso_back"), + ), + ears: ( + offset: (-4.5, -0.5, -1.5), + central: ("npc.lion.female.ears"), + ), + tail: ( + offset: (-1.5, -16.0, -10.0), + central: ("npc.lion.female.tail"), + ), + ), + (Tarasque, Male): ( + head: ( + offset: (-10.0, 0.0, -10.0), + central: ("npc.tarasque.male.head"), + ), + neck: ( + offset: (-5.0, -2.0, -4.5), + central: ("npc.tarasque.male.neck"), + ), + jaw: ( + offset: (-5.0, 0.0, -0.0), + central: ("npc.tarasque.male.jaw"), + ), + torso_front: ( + offset: (-10.0, -17.0, -9.0), + central: ("npc.tarasque.male.torso_front"), + ), + torso_back: ( + offset: (-6.0, -13.0, -6.0), + central: ("npc.tarasque.male.torso_back"), + ), + ears: ( + offset: (-6.0, -1.0, 0.0), + central: ("npc.tarasque.male.ears"), + ), + tail: ( + offset: (-5.0, -19.0, -10.0), + central: ("npc.tarasque.male.tail"), + ), + ), + (Tarasque, Female): ( + head: ( + offset: (-10.0, 0.0, -10.0), + central: ("npc.tarasque.male.head"), + ), + neck: ( + offset: (-5.0, -2.0, -4.5), + central: ("npc.tarasque.male.neck"), + ), + jaw: ( + offset: (-5.0, 0.0, -0.0), + central: ("npc.tarasque.male.jaw"), + ), + torso_front: ( + offset: (-10.0, -17.0, -9.0), + central: ("npc.tarasque.male.torso_front"), + ), + torso_back: ( + offset: (-6.0, -13.0, -6.0), + central: ("npc.tarasque.male.torso_back"), + ), + ears: ( + offset: (-6.0, -1.0, 0.0), + central: ("npc.tarasque.male.ears"), + ), + tail: ( + offset: (-5.0, -19.0, -10.0), + central: ("npc.tarasque.male.tail"), + ), + ), + (Tiger, Male): ( + head: ( + offset: (-5.5, -1.0, -5.0), + central: ("npc.tiger.male.head"), + ), + neck: ( + offset: (-4.5, -2.0, -5.0), + central: ("npc.tiger.male.neck"), + ), + jaw: ( + offset: (-2.5, 0.0, -1.0), + central: ("npc.tiger.male.jaw"), + ), + torso_front: ( + offset: (-5.5, -13.0, -6.5), + central: ("npc.tiger.male.torso_front"), + ), + torso_back: ( + offset: (-5.5, -13.0, -5.0), + central: ("npc.tiger.male.torso_back"), + ), + ears: ( + offset: (-4.5, -1.0, 0.0), + central: ("npc.tiger.male.ears"), + ), + tail: ( + offset: (-1.5, -12.0, -10.0), + central: ("npc.tiger.male.tail"), + ), + ), + (Tiger, Female): ( + head: ( + offset: (-5.5, -1.0, -5.0), + central: ("npc.tiger.male.head"), + ), + neck: ( + offset: (-4.5, -2.0, -5.0), + central: ("npc.tiger.male.neck"), + ), + jaw: ( + offset: (-2.5, 0.0, -1.0), + central: ("npc.tiger.male.jaw"), + ), + torso_front: ( + offset: (-5.5, -13.0, -6.5), + central: ("npc.tiger.male.torso_front"), + ), + torso_back: ( + offset: (-5.5, -13.0, -5.0), + central: ("npc.tiger.male.torso_back"), + ), + ears: ( + offset: (-4.5, -1.0, 0.0), + central: ("npc.tiger.male.ears"), + ), + tail: ( + offset: (-1.5, -12.0, -10.0), + central: ("npc.tiger.male.tail"), + ), + ), + (Wolf, Male): ( + head: ( + offset: (-5.0, 0.0, -3.5), + central: ("npc.wolf.male.head"), + ), + neck: ( + offset: (-5.0, -2.0, -5.0), + central: ("npc.wolf.male.neck"), + ), + jaw: ( + offset: (-2.0, 0.0, -1.0), + central: ("npc.wolf.male.jaw"), + ), + torso_front: ( + offset: (-5.0, -13.0, -5.0), + central: ("npc.wolf.male.torso_front"), + ), + torso_back: ( + offset: (-4.0, -11.0, -5.0), + central: ("npc.wolf.male.torso_back"), + ), + ears: ( + offset: (-5.0, -1.0, 0.0), + central: ("npc.wolf.male.ears"), + ), + tail: ( + offset: (-2.0, -13.0, -3.5), + central: ("npc.wolf.male.tail"), + ), + ), + (Wolf, Female): ( + head: ( + offset: (-5.0, 0.0, -3.5), + central: ("npc.wolf.male.head"), + ), + neck: ( + offset: (-5.0, -2.0, -5.0), + central: ("npc.wolf.male.neck"), + ), + jaw: ( + offset: (-2.0, 0.0, -1.0), + central: ("npc.wolf.male.jaw"), + ), + torso_front: ( + offset: (-5.0, -13.0, -5.0), + central: ("npc.wolf.male.torso_front"), + ), + torso_back: ( + offset: (-4.0, -11.0, -5.0), + central: ("npc.wolf.male.torso_back"), + ), + ears: ( + offset: (-5.0, -1.0, 0.0), + central: ("npc.wolf.male.ears"), + ), + tail: ( + offset: (-2.0, -13.0, -3.5), + central: ("npc.wolf.male.tail"), + ), + ), + (Frostfang, Male): ( + head: ( + offset: (-4.0, 0.0, -4.5), + central: ("npc.frostfang.male.head"), + ), + neck: ( + offset: (-3.0, -1.0, -4.0), + central: ("npc.frostfang.male.neck"), + ), + jaw: ( + offset: (-2.0, 0.0, -3.5), + central: ("npc.frostfang.male.jaw"), + ), + torso_front: ( + offset: (-5.0, -11.0, -8.5), + central: ("npc.frostfang.male.torso_front"), + ), + torso_back: ( + offset: (-3.0, -8.0, -4.5), + central: ("npc.frostfang.male.torso_back"), + ), + ears: ( + offset: (-4.0, -1.0, 0.0), + central: ("npc.frostfang.male.ears"), + ), + tail: ( + offset: (-2.0, -13.0, -5.0), + central: ("npc.frostfang.male.tail"), + ), + ), + (Frostfang, Female): ( + head: ( + offset: (-4.0, 0.0, -4.5), + central: ("npc.frostfang.male.head"), + ), + neck: ( + offset: (-3.0, -1.0, -4.0), + central: ("npc.frostfang.male.neck"), + ), + jaw: ( + offset: (-2.0, 0.0, -3.5), + central: ("npc.frostfang.male.jaw"), + ), + torso_front: ( + offset: (-5.0, -11.0, -8.5), + central: ("npc.frostfang.male.torso_front"), + ), + torso_back: ( + offset: (-3.0, -8.0, -4.5), + central: ("npc.frostfang.male.torso_back"), + ), + ears: ( + offset: (-4.0, -1.0, 0.0), + central: ("npc.frostfang.male.ears"), + ), + tail: ( + offset: (-2.0, -13.0, -5.0), + central: ("npc.frostfang.male.tail"), + ), + ), + (Mouflon, Male): ( + head: ( + offset: (-7.0, -5.0, 0.0), + central: ("npc.mouflon.male.head"), + ), + neck: ( + offset: (-4.0, -2.0, -4.5), + central: ("npc.mouflon.male.neck"), + ), + jaw: ( + offset: (-2.0, 0.0, -1.0), + central: ("npc.mouflon.male.jaw"), + ), + torso_front: ( + offset: (-4.0, -9.0, -4.5), + central: ("npc.mouflon.male.torso_front"), + ), + torso_back: ( + offset: (-4.0, -11.0, -5.0), + central: ("npc.mouflon.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.0, -1.5, -7.0), + central: ("npc.mouflon.male.tail"), + ), + ), + (Mouflon, Female): ( + head: ( + offset: (-7.0, -5.0, 0.0), + central: ("npc.mouflon.male.head"), + ), + neck: ( + offset: (-4.0, -2.0, -4.5), + central: ("npc.mouflon.male.neck"), + ), + jaw: ( + offset: (-2.0, 0.0, -1.0), + central: ("npc.mouflon.male.jaw"), + ), + torso_front: ( + offset: (-4.0, -9.0, -4.5), + central: ("npc.mouflon.male.torso_front"), + ), + torso_back: ( + offset: (-4.0, -11.0, -5.0), + central: ("npc.mouflon.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.0, -1.5, -7.0), + central: ("npc.mouflon.male.tail"), + ), + ), + (Catoblepas, Male): ( + head: ( + offset: (-13.0, 0.0, -4.5), + central: ("npc.catoblepas.male.head"), + ), + neck: ( + offset: (-4.0, -10.0, -12.0), + central: ("npc.catoblepas.male.neck"), + ), + jaw: ( + offset: (-4.0, 0.0, -3.0), + central: ("npc.catoblepas.male.jaw"), + ), + torso_front: ( + offset: (-7.0, -10.0, -11.5), + central: ("npc.catoblepas.male.torso_front"), + ), + torso_back: ( + offset: (-5.0, -9.0, -6.5), + central: ("npc.catoblepas.male.torso_back"), + ), + ears: ( + offset: (-2.0, -12.0, -10.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.0, -12.0, -10.0), + central: ("npc.catoblepas.male.tail"), + ), + ), + (Catoblepas, Female): ( + head: ( + offset: (-13.0, 0.0, -4.5), + central: ("npc.catoblepas.male.head"), + ), + neck: ( + offset: (-4.0, -10.0, -12.0), + central: ("npc.catoblepas.male.neck"), + ), + jaw: ( + offset: (-4.0, 0.0, -3.0), + central: ("npc.catoblepas.male.jaw"), + ), + torso_front: ( + offset: (-7.0, -10.0, -11.5), + central: ("npc.catoblepas.male.torso_front"), + ), + torso_back: ( + offset: (-5.0, -9.0, -6.5), + central: ("npc.catoblepas.male.torso_back"), + ), + ears: ( + offset: (-2.0, -12.0, -10.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.0, -12.0, -10.0), + central: ("npc.catoblepas.male.tail"), + ), + ), + (Bonerattler, Male): ( + head: ( + offset: (-4.5, 0.0, -4.5), + central: ("npc.bonerattler.male.head"), + ), + neck: ( + offset: (-4.5, -1.0, -5.0), + central: ("npc.bonerattler.male.neck"), + ), + jaw: ( + offset: (-3.5, 0.0, -2.0), + central: ("npc.bonerattler.male.jaw"), + ), + torso_front: ( + offset: (-5.5, -7.0, -6.5), + central: ("npc.bonerattler.male.torso_front"), + ), + torso_back: ( + offset: (-5.5, -11.0, -6.5), + central: ("npc.bonerattler.male.torso_back"), + ), + ears: ( + offset: (-4.0, -1.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-3.5, -14.0, -10.0), + central: ("npc.bonerattler.male.tail"), + ), + ), + (Bonerattler, Female): ( + head: ( + offset: (-4.5, 0.0, -4.5), + central: ("npc.bonerattler.male.head"), + ), + neck: ( + offset: (-4.5, -1.0, -5.0), + central: ("npc.bonerattler.male.neck"), + ), + jaw: ( + offset: (-3.5, 0.0, -2.0), + central: ("npc.bonerattler.male.jaw"), + ), + torso_front: ( + offset: (-5.5, -7.0, -6.5), + central: ("npc.bonerattler.male.torso_front"), + ), + torso_back: ( + offset: (-5.5, -11.0, -6.5), + central: ("npc.bonerattler.male.torso_back"), + ), + ears: ( + offset: (-4.0, -1.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-3.5, -14.0, -10.0), + central: ("npc.bonerattler.male.tail"), + ), + ), + (Deer, Male): ( + head: ( + offset: (-6.0, -5.0, 0.0), + central: ("npc.deer.male.head"), + ), + neck: ( + offset: (-3.0, -2.0, -4.0), + central: ("npc.deer.male.neck"), + ), + jaw: ( + offset: (-1.0, 0.0, -0.5), + central: ("npc.deer.male.jaw"), + ), + torso_front: ( + offset: (-4.0, -9.0, -4.0), + central: ("npc.deer.male.torso_front"), + ), + torso_back: ( + offset: (-4.0, -10.0, -3.5), + central: ("npc.deer.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.0, -2.0, 0.0), + central: ("npc.deer.male.tail"), + ), + ), + (Deer, Female): ( + head: ( + offset: (-6.0, -3.0, 0.0), + central: ("npc.deer.female.head"), + ), + neck: ( + offset: (-3.0, -2.0, -4.0), + central: ("npc.deer.female.neck"), + ), + jaw: ( + offset: (-1.0, 0.0, -0.5), + central: ("npc.deer.female.jaw"), + ), + torso_front: ( + offset: (-4.0, -9.0, -4.0), + central: ("npc.deer.female.torso_front"), + ), + torso_back: ( + offset: (-4.0, -10.0, -3.5), + central: ("npc.deer.female.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.0, -2.0, 0.0), + central: ("npc.deer.male.tail"), + ), + ), + (Hirdrasil, Male): ( + head: ( + offset: (-9.0, -12.0, 0.0), + central: ("npc.hirdrasil.male.head"), + ), + neck: ( + offset: (-4.0, -2.0, -6.0), + central: ("npc.hirdrasil.male.neck"), + ), + jaw: ( + offset: (-1.0, 0.0, -7.0), + central: ("npc.hirdrasil.male.jaw"), + ), + torso_front: ( + offset: (-4.0, -10.0, -5.5), + central: ("npc.hirdrasil.male.torso_front"), + ), + torso_back: ( + offset: (-4.0, -11.0, -4.0), + central: ("npc.hirdrasil.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.0, -2.0, 0.0), + central: ("npc.hirdrasil.male.tail"), + ), + ), + (Hirdrasil, Female): ( + head: ( + offset: (-9.0, -12.0, 0.0), + central: ("npc.hirdrasil.male.head"), + ), + neck: ( + offset: (-4.0, -2.0, -6.0), + central: ("npc.hirdrasil.male.neck"), + ), + jaw: ( + offset: (-1.0, 0.0, -7.0), + central: ("npc.hirdrasil.male.jaw"), + ), + torso_front: ( + offset: (-4.0, -10.0, -5.5), + central: ("npc.hirdrasil.male.torso_front"), + ), + torso_back: ( + offset: (-4.0, -11.0, -4.0), + central: ("npc.hirdrasil.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.0, -2.0, 0.0), + central: ("npc.hirdrasil.male.tail"), + ), + ), + (Roshwalr, Male): ( + head: ( + offset: (-13.0, 0.0, -12.0), + central: ("npc.roshwalr.male.head"), + ), + neck: ( + offset: (-7.0, -2.0, -11.5), + central: ("npc.roshwalr.male.neck"), + ), + jaw: ( + offset: (-5.0, 0.0, -3.0), + central: ("npc.roshwalr.male.jaw"), + ), + torso_front: ( + offset: (-8.0, -12.0, -10.5), + central: ("npc.roshwalr.male.torso_front"), + ), + torso_back: ( + offset: (-6.0, -12.0, -7.0), + central: ("npc.roshwalr.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-4.0, -13.0, -8.0), + central: ("npc.roshwalr.male.tail"), + ), + ), + (Roshwalr, Female): ( + head: ( + offset: (-13.0, 0.0, -12.0), + central: ("npc.roshwalr.female.head"), + ), + neck: ( + offset: (-7.0, -2.0, -11.5), + central: ("npc.roshwalr.male.neck"), + ), + jaw: ( + offset: (-5.0, 0.0, -3.0), + central: ("npc.roshwalr.male.jaw"), + ), + torso_front: ( + offset: (-8.0, -12.0, -10.5), + central: ("npc.roshwalr.male.torso_front"), + ), + torso_back: ( + offset: (-6.0, -12.0, -7.0), + central: ("npc.roshwalr.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-4.0, -13.0, -8.0), + central: ("npc.roshwalr.male.tail"), + ), + ), + (Donkey, Male): ( + head: ( + offset: (-4.0, -3.0, 0.0), + central: ("npc.donkey.male.head"), + ), + neck: ( + offset: (-3.0, -4.0, -6.5), + central: ("npc.donkey.male.neck"), + ), + jaw: ( + offset: (-2.0, 0.0, -1.0), + central: ("npc.donkey.male.jaw"), + ), + torso_front: ( + offset: (-5.0, -8.0, -6.5), + central: ("npc.donkey.male.torso_front"), + ), + torso_back: ( + offset: (-5.0, -13.0, -5.5), + central: ("npc.donkey.male.torso_back"), + ), + ears: ( + offset: (-5.0, -1.0, 0.0), + central: ("npc.donkey.male.ears"), + ), + tail: ( + offset: (-1.0, -5.0, -12.0), + central: ("npc.donkey.male.tail"), + ), + ), + (Donkey, Female): ( + head: ( + offset: (-4.0, -3.0, 0.0), + central: ("npc.donkey.male.head"), + ), + neck: ( + offset: (-3.0, -4.0, -7.0), + central: ("npc.donkey.male.neck"), + ), + jaw: ( + offset: (-2.0, 0.0, -1.0), + central: ("npc.donkey.male.jaw"), + ), + torso_front: ( + offset: (-5.0, -8.0, -6.5), + central: ("npc.donkey.male.torso_front"), + ), + torso_back: ( + offset: (-5.0, -13.0, -5.5), + central: ("npc.donkey.male.torso_back"), + ), + ears: ( + offset: (-5.0, -1.0, 0.0), + central: ("npc.donkey.male.ears"), + ), + tail: ( + offset: (-1.0, -5.0, -12.0), + central: ("npc.donkey.male.tail"), + ), + ), + (Camel, Male): ( + head: ( + offset: (-3.5, -4.0, 0.0), + central: ("npc.camel.male.head"), + ), + neck: ( + offset: (-3.5, -5.5, -8.0), + central: ("npc.camel.male.neck"), + ), + jaw: ( + offset: (-1.5, 0.0, -1.5), + central: ("npc.camel.male.jaw"), + ), + torso_front: ( + offset: (-5.5, -14.0, -9.5), + central: ("npc.camel.male.torso_front"), + ), + torso_back: ( + offset: (-5.5, -15.0, -9.0), + central: ("npc.camel.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-1.5, -3.0, -14.0), + central: ("npc.camel.male.tail"), + ), + ), + (Camel, Female): ( + head: ( + offset: (-3.5, -4.0, 0.0), + central: ("npc.camel.male.head"), + ), + neck: ( + offset: (-3.5, -5.5, -8.0), + central: ("npc.camel.male.neck"), + ), + jaw: ( + offset: (-1.5, 0.0, -1.5), + central: ("npc.camel.male.jaw"), + ), + torso_front: ( + offset: (-5.5, -14.0, -9.5), + central: ("npc.camel.male.torso_front"), + ), + torso_back: ( + offset: (-5.5, -15.0, -9.0), + central: ("npc.camel.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-1.5, -3.0, -14.0), + central: ("npc.camel.male.tail"), + ), + ), + (Zebra, Male): ( + head: ( + offset: (-3.0, -3.0, 0.0), + central: ("npc.zebra.male.head"), + ), + neck: ( + offset: (-3.0, -4.5, -7.0), + central: ("npc.zebra.male.neck"), + ), + jaw: ( + offset: (-2.0, 0.0, -1.0), + central: ("npc.zebra.male.jaw"), + ), + torso_front: ( + offset: (-5.0, -10.0, -6.5), + central: ("npc.zebra.male.torso_front"), + ), + torso_back: ( + offset: (-4.0, -11.0, -4.5), + central: ("npc.zebra.male.torso_back"), + ), + ears: ( + offset: (-4.0, -1.0, 0.0), + central: ("npc.zebra.male.ears"), + ), + tail: ( + offset: (-1.0, -4.0, -12.0), + central: ("npc.zebra.male.tail"), + ), + ), + (Zebra, Female): ( + head: ( + offset: (-3.0, -3.0, 0.0), + central: ("npc.zebra.male.head"), + ), + neck: ( + offset: (-3.0, -4.5, -7.0), + central: ("npc.zebra.male.neck"), + ), + jaw: ( + offset: (-2.0, 0.0, -1.0), + central: ("npc.zebra.male.jaw"), + ), + torso_front: ( + offset: (-5.0, -10.0, -6.5), + central: ("npc.zebra.male.torso_front"), + ), + torso_back: ( + offset: (-4.0, -11.0, -4.5), + central: ("npc.zebra.male.torso_back"), + ), + ears: ( + offset: (-4.0, -1.0, 0.0), + central: ("npc.zebra.male.ears"), + ), + tail: ( + offset: (-1.0, -4.0, -12.0), + central: ("npc.zebra.male.tail"), + ), + ), + (Antelope, Male): ( + head: ( + offset: (-6.0, -7.0, 0.0), + central: ("npc.antelope.male.head"), + ), + neck: ( + offset: (-3.0, -3.5, -5.0), + central: ("npc.antelope.male.neck"), + ), + jaw: ( + offset: (-1.0, 0.0, -0.5), + central: ("npc.antelope.male.jaw"), + ), + torso_front: ( + offset: (-4.0, -8.0, -3.5), + central: ("npc.antelope.male.torso_front"), + ), + torso_back: ( + offset: (-4.0, -11.0, -3.5), + central: ("npc.antelope.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-1.0, -3.0, -6.0), + central: ("npc.antelope.male.tail"), + ), + ), + (Antelope, Female): ( + head: ( + offset: (-6.0, -7.0, 0.0), + central: ("npc.antelope.male.head"), + ), + neck: ( + offset: (-3.0, -3.5, -5.0), + central: ("npc.antelope.male.neck"), + ), + jaw: ( + offset: (-1.0, 0.0, -0.5), + central: ("npc.antelope.male.jaw"), + ), + torso_front: ( + offset: (-4.0, -8.0, -3.5), + central: ("npc.antelope.male.torso_front"), + ), + torso_back: ( + offset: (-4.0, -11.0, -3.5), + central: ("npc.antelope.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-1.0, -3.0, -6.0), + central: ("npc.antelope.male.tail"), + ), + ), + (Kelpie, Male): ( + head: ( + offset: (-4.0, -4.0, -8.5), + central: ("npc.kelpie.male.head"), + ), + neck: ( + offset: (-4.0, -4.5, -7.5), + central: ("npc.kelpie.male.neck"), + ), + jaw: ( + offset: (-2.0, 0.0, -1.5), + central: ("npc.kelpie.male.jaw"), + ), + torso_front: ( + offset: (-5.0, -10.0, -6.5), + central: ("npc.kelpie.male.torso_front"), + ), + torso_back: ( + offset: (-4.0, -10.0, -4.0), + central: ("npc.kelpie.male.torso_back"), + ), + ears: ( + offset: (-3.0, -1.0, 0.0), + central: ("npc.kelpie.male.ears"), + ), + tail: ( + offset: (-1.0, -6.0, -18.0), + central: ("npc.kelpie.male.tail"), + ), + ), + (Kelpie, Female): ( + head: ( + offset: (-4.0, -4.0, -8.5), + central: ("npc.kelpie.male.head"), + ), + neck: ( + offset: (-4.0, -4.5, -7.5), + central: ("npc.kelpie.male.neck"), + ), + jaw: ( + offset: (-2.0, 0.0, -1.5), + central: ("npc.kelpie.male.jaw"), + ), + torso_front: ( + offset: (-5.0, -10.0, -6.5), + central: ("npc.kelpie.male.torso_front"), + ), + torso_back: ( + offset: (-4.0, -10.0, -4.0), + central: ("npc.kelpie.male.torso_back"), + ), + ears: ( + offset: (-3.0, -1.0, 0.0), + central: ("npc.kelpie.male.ears"), + ), + tail: ( + offset: (-1.0, -6.0, -18.0), + central: ("npc.kelpie.male.tail"), + ), + ), + (Horse, Male): ( + head: ( + offset: (-3.0, -6.0, 0.0), + central: ("npc.horse.male.head"), + ), + neck: ( + offset: (-3.0, -1.5, -5.5), + central: ("npc.horse.male.neck"), + ), + jaw: ( + offset: (-2.0, 0.0, -2.0), + central: ("npc.horse.male.jaw"), + ), + torso_front: ( + offset: (-5.0, -9.0, -7.0), + central: ("npc.horse.male.torso_front"), + ), + torso_back: ( + offset: (-4.0, -10.0, -4.5), + central: ("npc.horse.male.torso_back"), + ), + ears: ( + offset: (-3.0, -1.0, 0.0), + central: ("npc.horse.male.ears"), + ), + tail: ( + offset: (-2.0, -10.0, -13.0), + central: ("npc.horse.male.tail"), + ), + ), + (Horse, Female): ( + head: ( + offset: (-3.0, -6.0, 0.0), + central: ("npc.horse.male.head"), + ), + neck: ( + offset: (-3.0, -1.5, -5.5), + central: ("npc.horse.male.neck"), + ), + jaw: ( + offset: (-2.0, 0.0, -2.0), + central: ("npc.horse.male.jaw"), + ), + torso_front: ( + offset: (-5.0, -9.0, -7.0), + central: ("npc.horse.male.torso_front"), + ), + torso_back: ( + offset: (-4.0, -10.0, -4.5), + central: ("npc.horse.male.torso_back"), + ), + ears: ( + offset: (-3.0, -1.0, 0.0), + central: ("npc.horse.male.ears"), + ), + tail: ( + offset: (-2.0, -10.0, -13.0), + central: ("npc.horse.male.tail"), + ), + ), + (Barghest, Male): ( + head: ( + offset: (-7.0, 0.0, -8.0), + central: ("npc.barghest.male.head"), + ), + neck: ( + offset: (-7.0, -1.5, -10.0), + central: ("npc.barghest.male.neck"), + ), + jaw: ( + offset: (-10.0, 0.0, -5.0), + central: ("npc.barghest.male.jaw"), + ), + torso_front: ( + offset: (-8.0, -12.0, -10.5), + central: ("npc.barghest.male.torso_front"), + ), + torso_back: ( + offset: (-6.0, -10.0, -7.0), + central: ("npc.barghest.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-3.0, -15.0, -5.0), + central: ("npc.barghest.male.tail"), + ), + ), + (Barghest, Female): ( + head: ( + offset: (-7.0, 0.0, -8.0), + central: ("npc.barghest.male.head"), + ), + neck: ( + offset: (-7.0, -1.5, -10.0), + central: ("npc.barghest.male.neck"), + ), + jaw: ( + offset: (-10.0, 0.0, -5.0), + central: ("npc.barghest.male.jaw"), + ), + torso_front: ( + offset: (-8.0, -12.0, -10.5), + central: ("npc.barghest.male.torso_front"), + ), + torso_back: ( + offset: (-6.0, -10.0, -7.0), + central: ("npc.barghest.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-3.0, -15.0, -5.0), + central: ("npc.barghest.male.tail"), + ), + ), + (Cattle, Male): ( + head: ( + offset: (-5.0, 0.0, -6.5), + central: ("npc.cattle.male.head"), + ), + neck: ( + offset: (-4.0, -2.0, -7.0), + central: ("npc.cattle.male.neck"), + ), + jaw: ( + offset: (-2.0, 0.0, -1.0), + central: ("npc.cattle.male.jaw"), + ), + torso_front: ( + offset: (-6.0, -9.0, -8.0), + central: ("npc.cattle.male.torso_front"), + ), + torso_back: ( + offset: (-6.0, -10.0, -6.5), + central: ("npc.cattle.male.torso_back"), + ), + ears: ( + offset: (-6.0, -1.0, 0.0), + central: ("npc.cattle.male.ears"), + ), + tail: ( + offset: (-1.0, -8.0, -13.0), + central: ("npc.cattle.male.tail"), + ), + ), + (Cattle, Female): ( + head: ( + offset: (-5.0, 0.0, -5.0), + central: ("npc.cattle.female.head"), + ), + neck: ( + offset: (-4.0, -2.0, -6.0), + central: ("npc.cattle.female.neck"), + ), + jaw: ( + offset: (-2.0, 0.0, -1.0), + central: ("npc.cattle.female.jaw"), + ), + torso_front: ( + offset: (-6.0, -9.0, -6.5), + central: ("npc.cattle.female.torso_front"), + ), + torso_back: ( + offset: (-6.0, -8.0, -7.5), + central: ("npc.cattle.female.torso_back"), + ), + ears: ( + offset: (-6.0, -1.0, 0.0), + central: ("npc.cattle.female.ears"), + ), + tail: ( + offset: (-1.0, -8.0, -13.0), + central: ("npc.cattle.female.tail"), + ), + ), + (Darkhound, Male): ( + head: ( + offset: (-2.5, 0.0, -3.5), + central: ("npc.darkhound.male.head"), + ), + neck: ( + offset: (-2.5, -2.0, -3.5), + central: ("npc.darkhound.male.neck"), + ), + jaw: ( + offset: (-1.5, 0.0, -1.5), + central: ("npc.darkhound.male.jaw"), + ), + torso_front: ( + offset: (-3.5, -13.0, -6.0), + central: ("npc.darkhound.male.torso_front"), + ), + torso_back: ( + offset: (-3.5, -12.0, -4.5), + central: ("npc.darkhound.male.torso_back"), + ), + ears: ( + offset: (-2.5, -1.0, 0.0), + central: ("npc.darkhound.male.ears"), + ), + tail: ( + offset: (-1.5, -16.0, -5.0), + central: ("npc.darkhound.male.tail"), + ), + ), + (Darkhound, Female): ( + head: ( + offset: (-2.5, 0.0, -3.5), + central: ("npc.darkhound.male.head"), + ), + neck: ( + offset: (-2.5, -2.0, -3.5), + central: ("npc.darkhound.male.neck"), + ), + jaw: ( + offset: (-1.5, 0.0, -1.5), + central: ("npc.darkhound.male.jaw"), + ), + torso_front: ( + offset: (-3.5, -13.0, -6.0), + central: ("npc.darkhound.male.torso_front"), + ), + torso_back: ( + offset: (-3.5, -12.0, -4.5), + central: ("npc.darkhound.male.torso_back"), + ), + ears: ( + offset: (-2.5, -1.0, 0.0), + central: ("npc.darkhound.male.ears"), + ), + tail: ( + offset: (-1.5, -16.0, -5.0), + central: ("npc.darkhound.male.tail"), + ), + ), + (Highland, Male): ( + head: ( + offset: (-12.0, 0.0, -6.0), + central: ("npc.highland.male.head"), + ), + neck: ( + offset: (-5.0, -2.0, -7.0), + central: ("npc.highland.male.neck"), + ), + jaw: ( + offset: (-2.0, 0.0, -1.0), + central: ("npc.highland.male.jaw"), + ), + torso_front: ( + offset: (-6.0, -9.0, -8.5), + central: ("npc.highland.male.torso_front"), + ), + torso_back: ( + offset: (-6.0, -10.0, -7.5), + central: ("npc.highland.male.torso_back"), + ), + ears: ( + offset: (-6.0, -1.0, 0.0), + central: ("npc.highland.male.ears"), + ), + tail: ( + offset: (-1.0, -6.0, -13.0), + central: ("npc.highland.male.tail"), + ), + ), + (Highland, Female): ( + head: ( + offset: (-12.0, 0.0, -6.0), + central: ("npc.highland.male.head"), + ), + neck: ( + offset: (-5.0, -2.0, -7.0), + central: ("npc.highland.male.neck"), + ), + jaw: ( + offset: (-2.0, 0.0, -1.0), + central: ("npc.highland.male.jaw"), + ), + torso_front: ( + offset: (-6.0, -9.0, -8.5), + central: ("npc.highland.male.torso_front"), + ), + torso_back: ( + offset: (-6.0, -10.0, -7.5), + central: ("npc.highland.male.torso_back"), + ), + ears: ( + offset: (-6.0, -1.0, 0.0), + central: ("npc.highland.male.ears"), + ), + tail: ( + offset: (-1.0, -6.0, -13.0), + central: ("npc.highland.male.tail"), + ), + ), + (Yak, Male): ( + head: ( + offset: (-7.0, 0.0, -8.0), + central: ("npc.yak.male.head"), + ), + neck: ( + offset: (-5.0, -2.0, -8.0), + central: ("npc.yak.male.neck"), + ), + jaw: ( + offset: (-2.0, 0.0, -1.0), + central: ("npc.yak.male.jaw"), + ), + torso_front: ( + offset: (-7.0, -9.0, -11.0), + central: ("npc.yak.male.torso_front"), + ), + torso_back: ( + offset: (-6.0, -10.0, -9.5), + central: ("npc.yak.male.torso_back"), + ), + ears: ( + offset: (-6.0, -1.0, 0.0), + central: ("npc.yak.male.ears"), + ), + tail: ( + offset: (-2.0, -5.0, -15.0), + central: ("npc.yak.male.tail"), + ), + ), + (Yak, Female): ( + head: ( + offset: (-7.0, 0.0, -8.0), + central: ("npc.yak.male.head"), + ), + neck: ( + offset: (-5.0, -2.0, -8.0), + central: ("npc.yak.male.neck"), + ), + jaw: ( + offset: (-2.0, 0.0, -1.0), + central: ("npc.yak.male.jaw"), + ), + torso_front: ( + offset: (-7.0, -9.0, -11.0), + central: ("npc.yak.male.torso_front"), + ), + torso_back: ( + offset: (-6.0, -10.0, -9.5), + central: ("npc.yak.male.torso_back"), + ), + ears: ( + offset: (-6.0, -1.0, 0.0), + central: ("npc.yak.male.ears"), + ), + tail: ( + offset: (-2.0, -5.0, -15.0), + central: ("npc.yak.male.tail"), + ), + ), + (Panda, Male): ( + head: ( + offset: (-5.5, 0.0, -5.0), + central: ("npc.panda.male.head"), + ), + neck: ( + offset: (-4.5, -1.5, -5.5), + central: ("npc.panda.male.neck"), + ), + jaw: ( + offset: (-2.5, 0.0, -1.0), + central: ("npc.panda.male.jaw"), + ), + torso_front: ( + offset: (-6.5, -12.0, -7.5), + central: ("npc.panda.male.torso_front"), + ), + torso_back: ( + offset: (-6.5, -12.0, -7.0), + central: ("npc.panda.male.torso_back"), + ), + ears: ( + offset: (-5.5, -1.0, 0.0), + central: ("npc.panda.male.ears"), + ), + tail: ( + offset: (-2.5, -5.0, -3.5), + central: ("npc.panda.male.tail"), + ), + ), + (Panda, Female): ( + head: ( + offset: (-5.5, 0.0, -5.0), + central: ("npc.panda.male.head"), + ), + neck: ( + offset: (-4.5, -1.5, -5.5), + central: ("npc.panda.male.neck"), + ), + jaw: ( + offset: (-2.5, 0.0, -1.0), + central: ("npc.panda.male.jaw"), + ), + torso_front: ( + offset: (-6.5, -12.0, -7.5), + central: ("npc.panda.male.torso_front"), + ), + torso_back: ( + offset: (-6.5, -12.0, -7.0), + central: ("npc.panda.male.torso_back"), + ), + ears: ( + offset: (-5.5, -1.0, 0.0), + central: ("npc.panda.male.ears"), + ), + tail: ( + offset: (-2.5, -5.0, -3.5), + central: ("npc.panda.male.tail"), + ), + ), + (Bear, Male): ( + head: ( + offset: (-5.5, 0.0, -5.0), + central: ("npc.bear.male.head"), + ), + neck: ( + offset: (-4.5, -1.5, -5.5), + central: ("npc.bear.male.neck"), + ), + jaw: ( + offset: (-2.5, 0.0, -1.0), + central: ("npc.bear.male.jaw"), + ), + torso_front: ( + offset: (-6.5, -12.0, -7.5), + central: ("npc.bear.male.torso_front"), + ), + torso_back: ( + offset: (-5.5, -12.0, -7.0), + central: ("npc.bear.male.torso_back"), + ), + ears: ( + offset: (-4.5, -1.0, 0.0), + central: ("npc.bear.male.ears"), + ), + tail: ( + offset: (-2.5, -5.0, -3.5), + central: ("npc.bear.male.tail"), + ), + ), + (Bear, Female): ( + head: ( + offset: (-5.5, 0.0, -5.0), + central: ("npc.bear.male.head"), + ), + neck: ( + offset: (-4.5, -1.5, -5.5), + central: ("npc.bear.male.neck"), + ), + jaw: ( + offset: (-2.5, 0.0, -1.0), + central: ("npc.bear.male.jaw"), + ), + torso_front: ( + offset: (-6.5, -12.0, -7.5), + central: ("npc.bear.male.torso_front"), + ), + torso_back: ( + offset: (-5.5, -12.0, -7.0), + central: ("npc.bear.male.torso_back"), + ), + ears: ( + offset: (-4.5, -1.0, 0.0), + central: ("npc.bear.male.ears"), + ), + tail: ( + offset: (-2.5, -5.0, -3.5), + central: ("npc.bear.male.tail"), + ), + ), + (Dreadhorn, Male): ( + head: ( + offset: (-15.0, 0.0, -14.0), + central: ("npc.dreadhorn.male.head"), + ), + neck: ( + offset: (-6.0, -3.5, -9.5), + central: ("npc.dreadhorn.male.neck"), + ), + jaw: ( + offset: (-3.0, 0.0, -8.0), + central: ("npc.dreadhorn.male.jaw"), + ), + torso_front: ( + offset: (-9.0, -14.0, -13.5), + central: ("npc.dreadhorn.male.torso_front"), + ), + torso_back: ( + offset: (-9.0, -7.0, -10.5), + central: ("npc.dreadhorn.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.5, -9.0, -13.0), + central: ("npc.dreadhorn.male.tail"), + ), + ), + (Dreadhorn, Female): ( + head: ( + offset: (-15.0, 0.0, -14.0), + central: ("npc.dreadhorn.male.head"), + ), + neck: ( + offset: (-6.0, -3.5, -9.5), + central: ("npc.dreadhorn.male.neck"), + ), + jaw: ( + offset: (-3.0, 0.0, -8.0), + central: ("npc.dreadhorn.male.jaw"), + ), + torso_front: ( + offset: (-9.0, -14.0, -13.5), + central: ("npc.dreadhorn.male.torso_front"), + ), + torso_back: ( + offset: (-9.0, -7.0, -10.5), + central: ("npc.dreadhorn.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.5, -9.0, -13.0), + central: ("npc.dreadhorn.male.tail"), + ), + ), + (Moose, Male): ( + head: ( + offset: (-14.0, 0.0, -11.0), + central: ("npc.moose.male.head"), + ), + neck: ( + offset: (-6.0, -5.5, -7.0), + central: ("npc.moose.male.neck"), + ), + jaw: ( + offset: (-2.0, 0.0, -2.0), + central: ("npc.moose.male.jaw"), + ), + torso_front: ( + offset: (-6.0, -11.0, -8.5), + central: ("npc.moose.male.torso_front"), + ), + torso_back: ( + offset: (-6.0, -14.0, -7.5), + central: ("npc.moose.male.torso_back"), + ), + ears: ( + offset: (-7.0, -1.0, 0.0), + central: ("npc.moose.male.ears"), + ), + tail: ( + offset: (-2.0, -4.0, -6.0), + central: ("npc.moose.male.tail"), + ), + ), + (Moose, Female): ( + head: ( + offset: (-5.0, 0.0, -6.5), + central: ("npc.moose.female.head"), + ), + neck: ( + offset: (-6.0, -5.5, -7.0), + central: ("npc.moose.female.neck"), + ), + jaw: ( + offset: (-2.0, 0.0, -2.0), + central: ("npc.moose.female.jaw"), + ), + torso_front: ( + offset: (-6.0, -11.0, -8.5), + central: ("npc.moose.female.torso_front"), + ), + torso_back: ( + offset: (-6.0, -14.0, -7.5), + central: ("npc.moose.female.torso_back"), + ), + ears: ( + offset: (-7.0, -1.0, 0.0), + central: ("npc.moose.female.ears"), + ), + tail: ( + offset: (-2.0, -4.0, -6.0), + central: ("npc.moose.female.tail"), + ), + ), + (Snowleopard, Male): ( + head: ( + offset: (-4.5, -1.0, -4.0), + central: ("npc.snowleopard.male.head"), + ), + neck: ( + offset: (-4.5, -2.0, -4.5), + central: ("npc.snowleopard.male.neck"), + ), + jaw: ( + offset: (-2.5, 0.0, -1.0), + central: ("npc.snowleopard.male.jaw"), + ), + torso_front: ( + offset: (-5.5, -12.0, -6.0), + central: ("npc.snowleopard.male.torso_front"), + ), + torso_back: ( + offset: (-5.5, -11.0, -5.0), + central: ("npc.snowleopard.male.torso_back"), + ), + ears: ( + offset: (-4.5, -1.0, 0.0), + central: ("npc.snowleopard.male.ears"), + ), + tail: ( + offset: (-2.5, -20.0, -9.0), + central: ("npc.snowleopard.male.tail"), + ), + ), + (Snowleopard, Female): ( + head: ( + offset: (-4.5, -1.0, -4.0), + central: ("npc.snowleopard.male.head"), + ), + neck: ( + offset: (-4.5, -2.0, -4.5), + central: ("npc.snowleopard.male.neck"), + ), + jaw: ( + offset: (-2.5, 0.0, -1.0), + central: ("npc.snowleopard.male.jaw"), + ), + torso_front: ( + offset: (-5.5, -12.0, -6.0), + central: ("npc.snowleopard.male.torso_front"), + ), + torso_back: ( + offset: (-5.5, -11.0, -5.0), + central: ("npc.snowleopard.male.torso_back"), + ), + ears: ( + offset: (-4.5, -1.0, 0.0), + central: ("npc.snowleopard.male.ears"), + ), + tail: ( + offset: (-2.5, -20.0, -9.0), + central: ("npc.snowleopard.male.tail"), + ), + ), + (Mammoth, Male): ( + head: ( + offset: (-13.0, 0.0, -11.0), + central: ("npc.mammoth.male.head"), + ), + neck: ( + offset: (-6.0, -3.5, -11.5), + central: ("npc.mammoth.male.neck"), + ), + jaw: ( + offset: (-3.0, -5.0, -13.0), + central: ("npc.mammoth.male.jaw"), + ), + torso_front: ( + offset: (-9.0, -14.0, -15.0), + central: ("npc.mammoth.male.torso_front"), + ), + torso_back: ( + offset: (-8.0, -14.0, -12.5), + central: ("npc.mammoth.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.0, -6.0, -15.0), + central: ("npc.mammoth.male.tail"), + ), + ), + (Mammoth, Female): ( + head: ( + offset: (-13.0, 0.0, -11.0), + central: ("npc.mammoth.male.head"), + ), + neck: ( + offset: (-6.0, -3.5, -11.5), + central: ("npc.mammoth.male.neck"), + ), + jaw: ( + offset: (-3.0, -5.0, -13.0), + central: ("npc.mammoth.male.jaw"), + ), + torso_front: ( + offset: (-9.0, -14.0, -15.0), + central: ("npc.mammoth.male.torso_front"), + ), + torso_back: ( + offset: (-8.0, -14.0, -12.5), + central: ("npc.mammoth.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.0, -6.0, -15.0), + central: ("npc.mammoth.male.tail"), + ), + ), + (Ngoubou, Male): ( + head: ( + offset: (-9.5, 0.0, -9.0), + central: ("npc.ngoubou.male.head"), + ), + neck: ( + offset: (-4.5, -3.0, -7.5), + central: ("npc.ngoubou.male.neck"), + ), + jaw: ( + offset: (-2.5, 0.0, -3.0), + central: ("npc.ngoubou.male.jaw"), + ), + torso_front: ( + offset: (-5.5, -9.0, -9.5), + central: ("npc.ngoubou.male.torso_front"), + ), + torso_back: ( + offset: (-5.5, -13.0, -7.5), + central: ("npc.ngoubou.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-1.5, -8.0, -14.0), + central: ("npc.ngoubou.male.tail"), + ), + ), + (Ngoubou, Female): ( + head: ( + offset: (-9.5, 0.0, -9.0), + central: ("npc.ngoubou.male.head"), + ), + neck: ( + offset: (-4.5, -3.0, -7.5), + central: ("npc.ngoubou.male.neck"), + ), + jaw: ( + offset: (-2.5, 0.0, -3.0), + central: ("npc.ngoubou.male.jaw"), + ), + torso_front: ( + offset: (-5.5, -9.0, -9.5), + central: ("npc.ngoubou.male.torso_front"), + ), + torso_back: ( + offset: (-5.5, -13.0, -7.5), + central: ("npc.ngoubou.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-1.5, -8.0, -14.0), + central: ("npc.ngoubou.male.tail"), + ), + ), + (Llama, Male): ( + head: ( + offset: (-3.0, -2.0, -3.5), + central: ("npc.llama.male.llama"), + ), + neck: ( + offset: (-3.0, -4.5, -9.5), + central: ("npc.llama.male.llama"), + model_index: 1, + ), + jaw: ( + offset: (-2.0, 0.0, -2.0), + central: ("npc.llama.male.llama"), + model_index: 2, + ), + torso_front: ( + offset: (-6.0, -9.0, -6.0), + central: ("npc.llama.male.llama"), + model_index: 3, + ), + torso_back: ( + offset: (-5.0, -12.0, -5.0), + central: ("npc.llama.male.llama"), + model_index: 4, + ), + ears: ( + offset: (-4.0, -1.0, 0.0), + central: ("npc.llama.male.llama"), + model_index: 5, + ), + tail: ( + offset: (-2.0, -5.0, -7.0), + central: ("npc.llama.male.llama"), + model_index: 6, + ), + ), + (Llama, Female): ( + head: ( + offset: (-3.0, -2.0, -3.5), + central: ("npc.llama.male.llama"), + ), + neck: ( + offset: (-3.0, -4.5, -9.5), + central: ("npc.llama.male.llama"), + model_index: 1, + ), + jaw: ( + offset: (-2.0, 0.0, -2.0), + central: ("npc.llama.male.llama"), + model_index: 2, + ), + torso_front: ( + offset: (-6.0, -9.0, -6.0), + central: ("npc.llama.male.llama"), + model_index: 3, + ), + torso_back: ( + offset: (-5.0, -12.0, -5.0), + central: ("npc.llama.male.llama"), + model_index: 4, + ), + ears: ( + offset: (-4.0, -1.0, 0.0), + central: ("npc.llama.male.llama"), + model_index: 5, + ), + tail: ( + offset: (-2.0, -5.0, -7.0), + central: ("npc.llama.male.llama"), + model_index: 6, + ), + ), + (Alpaca, Male): ( + head: ( + offset: (-4.0, -3.0, -4.0), + central: ("npc.alpaca.male.head"), + ), + neck: ( + offset: (-3.0, -3.5, -6.5), + central: ("npc.alpaca.male.neck"), + ), + jaw: ( + offset: (-1.0, 0.0, -0.5), + central: ("npc.alpaca.male.jaw"), + ), + torso_front: ( + offset: (-5.0, -8.0, -4.5), + central: ("npc.alpaca.male.torso_front"), + ), + torso_back: ( + offset: (-5.0, -10.0, -4.5), + central: ("npc.alpaca.male.torso_back"), + ), + ears: ( + offset: (-4.0, -1.0, 0.0), + central: ("npc.alpaca.male.ears"), + ), + tail: ( + offset: (-3.0, -5.0, -8.0), + central: ("npc.alpaca.male.tail"), + ), + ), + (Alpaca, Female): ( + head: ( + offset: (-4.0, -3.0, -4.0), + central: ("npc.alpaca.male.head"), + ), + neck: ( + offset: (-3.0, -3.5, -6.5), + central: ("npc.alpaca.male.neck"), + ), + jaw: ( + offset: (-1.0, 0.0, -0.5), + central: ("npc.alpaca.male.jaw"), + ), + torso_front: ( + offset: (-5.0, -8.0, -4.5), + central: ("npc.alpaca.male.torso_front"), + ), + torso_back: ( + offset: (-5.0, -10.0, -4.5), + central: ("npc.alpaca.male.torso_back"), + ), + ears: ( + offset: (-4.0, -1.0, 0.0), + central: ("npc.alpaca.male.ears"), + ), + tail: ( + offset: (-3.0, -5.0, -8.0), + central: ("npc.alpaca.male.tail"), + ), + ), + (Akhlut, Male): ( + head: ( + offset: (-5.0, 0.0, -4.5), + central: ("npc.akhlut.male.head"), + ), + neck: ( + offset: (-6.0, -3.5, -10.5), + central: ("npc.akhlut.male.neck"), + ), + jaw: ( + offset: (-5.0, 0.0, -8.0), + central: ("npc.akhlut.male.jaw"), + ), + torso_front: ( + offset: (-7.0, -7.0, -10.0), + central: ("npc.akhlut.male.torso_front"), + ), + torso_back: ( + offset: (-6.0, -17.0, -7.5), + central: ("npc.akhlut.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-8.0, -27.0, -8.0), + central: ("npc.akhlut.male.tail"), + ), + ), + (Akhlut, Female): ( + head: ( + offset: (-5.0, 0.0, -4.5), + central: ("npc.akhlut.male.head"), + ), + neck: ( + offset: (-6.0, -3.5, -10.5), + central: ("npc.akhlut.male.neck"), + ), + jaw: ( + offset: (-5.0, 0.0, -8.0), + central: ("npc.akhlut.male.jaw"), + ), + torso_front: ( + offset: (-7.0, -7.0, -10.0), + central: ("npc.akhlut.male.torso_front"), + ), + torso_back: ( + offset: (-6.0, -17.0, -7.5), + central: ("npc.akhlut.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-8.0, -27.0, -8.0), + central: ("npc.akhlut.male.tail"), + ), + ), + (Bristleback, Male): ( + head: ( + offset: (-7.5, 0.0, -8.5), + central: ("npc.bristleback.male.head"), + ), + neck: ( + offset: (-3.5, -2.0, -6.5), + central: ("npc.bristleback.male.neck"), + ), + jaw: ( + offset: (-3.5, -3.5, -0.5), + central: ("npc.bristleback.male.jaw"), + ), + torso_front: ( + offset: (-6.5, -5.0, -6.0), + central: ("npc.bristleback.male.torso_front"), + ), + torso_back: ( + offset: (-3.5, -8.0, -6.0), + central: ("npc.bristleback.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-1.5, -6.0, -4.5), + central: ("npc.bristleback.male.tail"), + ), + ), + (Bristleback, Female): ( + head: ( + offset: (-7.5, 0.0, -8.5), + central: ("npc.bristleback.male.head"), + ), + neck: ( + offset: (-3.5, -2.0, -6.5), + central: ("npc.bristleback.male.neck"), + ), + jaw: ( + offset: (-3.5, -3.5, -0.5), + central: ("npc.bristleback.male.jaw"), + ), + torso_front: ( + offset: (-6.5, -5.0, -6.0), + central: ("npc.bristleback.male.torso_front"), + ), + torso_back: ( + offset: (-3.5, -8.0, -6.0), + central: ("npc.bristleback.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-1.5, -6.0, -4.5), + central: ("npc.bristleback.male.tail"), + ), + ), + (ClaySteed, Male): ( + head: ( + offset: (-4.0, -2.0, -6.0), + central: ("npc.claysteed.male.claysteed"), + model_index: 8, + ), + neck: ( + offset: (-4.0, -3.5, -7.0), + central: ("npc.claysteed.male.claysteed"), + model_index: 7, + ), + jaw: ( + offset: (-2.0, 0.0, -2.0), + central: ("armor.empty"), + ), + torso_front: ( + offset: (-5.0, -9.0, -7.0), + central: ("npc.claysteed.male.claysteed"), + model_index: 6, + ), + torso_back: ( + offset: (-5.0, -12.0, -6.0), + central: ("npc.claysteed.male.claysteed"), + model_index: 5, + ), + ears: ( + offset: (-4.0, -1.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.0, -11.0, -7.0), + central: ("npc.claysteed.male.claysteed"), + model_index: 4, + ), + ), + (ClaySteed, Female): ( + head: ( + offset: (-4.0, -2.0, -6.0), + central: ("npc.claysteed.male.claysteed"), + model_index: 8, + ), + neck: ( + offset: (-4.0, -3.5, -7.0), + central: ("npc.claysteed.male.claysteed"), + model_index: 7, + ), + jaw: ( + offset: (-2.0, 0.0, -2.0), + central: ("armor.empty"), + ), + torso_front: ( + offset: (-5.0, -9.0, -7.0), + central: ("npc.claysteed.male.claysteed"), + model_index: 6, + ), + torso_back: ( + offset: (-5.0, -12.0, -6.0), + central: ("npc.claysteed.male.claysteed"), + model_index: 5, + ), + ears: ( + offset: (-4.0, -1.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.0, -11.0, -7.0), + central: ("npc.claysteed.male.claysteed"), + model_index: 4, + ), + ), +}) diff --git a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron new file mode 100644 index 0000000..42e9f0d --- /dev/null +++ b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron @@ -0,0 +1,2550 @@ +({ + (Grolgar, Male): ( + leg_fl: ( + offset: (-2.5, -4.5, -4.0),//these are done very case by case + lateral: ("npc.grolgar.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.5, -4.5, -4.0), + lateral: ("npc.grolgar.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.5, -3.5, -3.5), + lateral: ("npc.grolgar.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.5, -3.5), + lateral: ("npc.grolgar.male.leg_br"), + ), + foot_fl: ( + offset: (-2.5, -4.5, -8.0),//y pivot should be -1/4 of the y dimension of the model + lateral: ("npc.grolgar.male.foot_fr"), + ), + foot_fr: ( + offset: (-2.5, -4.5, -8.0),//y pivot should be -1/4 of the y dimension of the model + lateral: ("npc.grolgar.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -2.0, -8.0),//y pivot should be -1/4 of the y dimension of the model + lateral: ("npc.grolgar.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -2.0, -8.0),//y pivot should be -1/4 of the y dimension of the model + lateral: ("npc.grolgar.male.foot_br"), + ), + ), + (Grolgar, Female): ( + leg_fl: ( + offset: (-2.5, -4.5, -4.0),//these are done very case by case + lateral: ("npc.grolgar.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.5, -4.5, -4.0), + lateral: ("npc.grolgar.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.5, -3.5, -3.5), + lateral: ("npc.grolgar.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.5, -3.5), + lateral: ("npc.grolgar.male.leg_br"), + ), + foot_fl: ( + offset: (-2.5, -4.5, -8.0),//y pivot should be -1/4 of the y dimension of the model + lateral: ("npc.grolgar.male.foot_fr"), + ), + foot_fr: ( + offset: (-2.5, -4.5, -8.0),//y pivot should be -1/4 of the y dimension of the model + lateral: ("npc.grolgar.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -2.0, -8.0),//y pivot should be -1/4 of the y dimension of the model + lateral: ("npc.grolgar.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -2.0, -8.0),//y pivot should be -1/4 of the y dimension of the model + lateral: ("npc.grolgar.male.foot_br"), + ), + ), + (Saber, Male): ( + leg_fl: ( + offset: (-2.0, -10.0, -4.5), + lateral: ("npc.saber.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.0, -10.0, -4.5), + lateral: ("npc.saber.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -5.0, -4.0), + lateral: ("npc.saber.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -5.0, -4.0), + lateral: ("npc.saber.male.leg_br"), + ), + foot_fl: ( + offset: (-2.5, -2.5, -8.0), + lateral: ("npc.saber.male.foot_fr"), + ), + foot_fr: ( + offset: (-2.5, -2.5, -8.0), + lateral: ("npc.saber.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -2.0, -9.0), + lateral: ("npc.saber.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -2.0, -9.0), + lateral: ("npc.saber.male.foot_br"), + ), + ), + (Saber, Female): ( + leg_fl: ( + offset: (-2.0, -10.0, -4.5), + lateral: ("npc.saber.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.0, -10.0, -4.5), + lateral: ("npc.saber.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -5.0, -4.0), + lateral: ("npc.saber.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -5.0, -4.0), + lateral: ("npc.saber.male.leg_br"), + ), + foot_fl: ( + offset: (-2.5, -2.5, -8.0), + lateral: ("npc.saber.male.foot_fr"), + ), + foot_fr: ( + offset: (-2.5, -2.5, -8.0), + lateral: ("npc.saber.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -2.0, -9.0), + lateral: ("npc.saber.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -2.0, -9.0), + lateral: ("npc.saber.male.foot_br"), + ), + ), + (Tuskram, Male): ( + leg_fl: ( + offset: (-2.5, -4.5, -5.0), + lateral: ("npc.tuskram.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.5, -4.5, -5.0), + lateral: ("npc.tuskram.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -2.5, -3.0), + lateral: ("npc.tuskram.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -2.5, -3.0), + lateral: ("npc.tuskram.male.leg_br"), + ), + foot_fl: ( + offset: (-2.5, -2.0, -8.0), + lateral: ("npc.tuskram.male.foot_fr"), + ), + foot_fr: ( + offset: (-2.5, -2.0, -8.0), + lateral: ("npc.tuskram.male.foot_fr"), + ), + foot_bl: ( + offset: (-1.5, -1.5, -8.0), + lateral: ("npc.tuskram.male.foot_br"), + ), + foot_br: ( + offset: (-1.5, -1.5, -8.0), + lateral: ("npc.tuskram.male.foot_br"), + ), + ), + (Tuskram, Female): ( + leg_fl: ( + offset: (-2.5, -4.5, -5.0), + lateral: ("npc.tuskram.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.5, -4.5, -5.0), + lateral: ("npc.tuskram.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -2.5, -3.0), + lateral: ("npc.tuskram.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -2.5, -3.0), + lateral: ("npc.tuskram.male.leg_br"), + ), + foot_fl: ( + offset: (-2.5, -2.0, -8.0), + lateral: ("npc.tuskram.male.foot_fr"), + ), + foot_fr: ( + offset: (-2.5, -2.0, -8.0), + lateral: ("npc.tuskram.male.foot_fr"), + ), + foot_bl: ( + offset: (-1.5, -1.5, -8.0), + lateral: ("npc.tuskram.male.foot_br"), + ), + foot_br: ( + offset: (-1.5, -1.5, -8.0), + lateral: ("npc.tuskram.male.foot_br"), + ), + ), + (Lion, Male): ( + leg_fl: ( + offset: (-2.0, -2.5, -3.5), + lateral: ("npc.lion.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.0, -2.5, -3.5), + lateral: ("npc.lion.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.0, -3.5), + lateral: ("npc.lion.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.0, -3.5), + lateral: ("npc.lion.male.leg_br"), + ), + foot_fl: ( + offset: (-2.5, -2.0, -8.0), + lateral: ("npc.lion.male.foot_fr"), + ), + foot_fr: ( + offset: (-2.5, -2.0, -8.0), + lateral: ("npc.lion.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -2.0, -8.0), + lateral: ("npc.lion.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -2.0, -8.0), + lateral: ("npc.lion.male.foot_br"), + ), + ), + (Lion, Female): ( + leg_fl: ( + offset: (-1.0, -3.5, -3.5), + lateral: ("npc.lion.female.leg_fr"), + ), + leg_fr: ( + offset: (-3.0, -3.5, -3.5), + lateral: ("npc.lion.female.leg_fr"), + ), + leg_bl: ( + offset: (-1.5, -5.5, -4.0), + lateral: ("npc.lion.female.leg_br"), + ), + leg_br: ( + offset: (-2.5, -5.5, -4.0), + lateral: ("npc.lion.female.leg_br"), + ), + foot_fl: ( + offset: (-1.5, -4.0, -8.5), + lateral: ("npc.lion.female.foot_fr"), + ), + foot_fr: ( + offset: (-3.5, -4.0, -8.5), + lateral: ("npc.lion.female.foot_fr"), + ), + foot_bl: ( + offset: (-2.0, -4.5, -8.5), + lateral: ("npc.lion.female.foot_br"), + ), + foot_br: ( + offset: (-3.0, -4.5, -8.5), + lateral: ("npc.lion.female.foot_br"), + ), + ), + (Tarasque, Male): ( + leg_fl: ( + offset: (-3.0, -5.0, -4.0), + lateral: ("npc.tarasque.male.leg_fr"), + ), + leg_fr: ( + offset: (-3.0, -5.0, -4.0), + lateral: ("npc.tarasque.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.5, -3.5), + lateral: ("npc.tarasque.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.5, -3.5), + lateral: ("npc.tarasque.male.leg_br"), + ), + foot_fl: ( + offset: (-4.0, -3.0, -9.0), + lateral: ("npc.tarasque.male.foot_fr"), + ), + foot_fr: ( + offset: (-4.0, -3.0, -9.0), + lateral: ("npc.tarasque.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -2.0, -8.0), + lateral: ("npc.tarasque.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -2.0, -8.0), + lateral: ("npc.tarasque.male.foot_br"), + ), + ), + (Tarasque, Female): ( + leg_fl: ( + offset: (-3.0, -5.0, -4.0), + lateral: ("npc.tarasque.male.leg_fr"), + ), + leg_fr: ( + offset: (-3.0, -5.0, -4.0), + lateral: ("npc.tarasque.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.5, -3.5), + lateral: ("npc.tarasque.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.5, -3.5), + lateral: ("npc.tarasque.male.leg_br"), + ), + foot_fl: ( + offset: (-4.0, -3.0, -9.0), //(1/4) Y dimension, (1/1) Z dimension + lateral: ("npc.tarasque.male.foot_fr"), + ), + foot_fr: ( + offset: (-4.0, -3.0, -9.0), //(1/4) Y dimension, (1/1) Z dimension + lateral: ("npc.tarasque.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -2.0, -8.0), + lateral: ("npc.tarasque.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -2.0, -8.0), + lateral: ("npc.tarasque.male.foot_br"), + ), + ), + (Tiger, Male): ( + leg_fl: ( + offset: (-2.0, -3.0, -4.0), + lateral: ("npc.tiger.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.0, -3.0, -4.0), + lateral: ("npc.tiger.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.0, -3.0), + lateral: ("npc.tiger.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.0, -3.0), + lateral: ("npc.tiger.male.leg_br"), + ), + foot_fl: ( + offset: (-2.5, -2.0, -7.0), + lateral: ("npc.tiger.male.foot_fr"), + ), + foot_fr: ( + offset: (-2.5, -2.0, -7.0), + lateral: ("npc.tiger.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -2.0, -8.0), + lateral: ("npc.tiger.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -2.0, -8.0), + lateral: ("npc.tiger.male.foot_br"), + ), + ), + (Tiger, Female): ( + leg_fl: ( + offset: (-2.0, -3.0, -4.0), + lateral: ("npc.tiger.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.0, -3.0, -4.0), + lateral: ("npc.tiger.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.0, -3.0), + lateral: ("npc.tiger.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.0, -3.0), + lateral: ("npc.tiger.male.leg_br"), + ), + foot_fl: ( + offset: (-2.5, -2.0, -7.0), + lateral: ("npc.tiger.male.foot_fr"), + ), + foot_fr: ( + offset: (-2.5, -2.0, -7.0), + lateral: ("npc.tiger.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -2.0, -8.0), + lateral: ("npc.tiger.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -2.0, -8.0), + lateral: ("npc.tiger.male.foot_br"), + ), + ), + (Wolf, Male): ( + leg_fl: ( + offset: (-2.0, -3.5, -4.0), + lateral: ("npc.wolf.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.0, -3.5, -4.0), + lateral: ("npc.wolf.male.leg_fr"), + ), + leg_bl: ( + offset: (-1.5, -3.5, -3.5), + lateral: ("npc.wolf.male.leg_br"), + ), + leg_br: ( + offset: (-1.5, -3.5, -3.5), + lateral: ("npc.wolf.male.leg_br"), + ), + foot_fl: ( + offset: (-1.5, -2.5, -10.0), + lateral: ("npc.wolf.male.foot_fr"), + ), + foot_fr: ( + offset: (-1.5, -2.5, -10.0), + lateral: ("npc.wolf.male.foot_fr"), + ), + foot_bl: ( + offset: (-1.5, -2.5, -10.0), + lateral: ("npc.wolf.male.foot_br"), + ), + foot_br: ( + offset: (-1.5, -2.5, -10.0), + lateral: ("npc.wolf.male.foot_br"), + ), + ), + (Wolf, Female): ( + leg_fl: ( + offset: (-2.0, -3.5, -4.0), + lateral: ("npc.wolf.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.0, -3.5, -4.0), + lateral: ("npc.wolf.male.leg_fr"), + ), + leg_bl: ( + offset: (-1.5, -3.5, -3.5), + lateral: ("npc.wolf.male.leg_br"), + ), + leg_br: ( + offset: (-1.5, -3.5, -3.5), + lateral: ("npc.wolf.male.leg_br"), + ), + foot_fl: ( + offset: (-1.5, -2.5, -10.0), + lateral: ("npc.wolf.male.foot_fr"), + ), + foot_fr: ( + offset: (-1.5, -2.5, -10.0), + lateral: ("npc.wolf.male.foot_fr"), + ), + foot_bl: ( + offset: (-1.5, -2.5, -10.0), + lateral: ("npc.wolf.male.foot_br"), + ), + foot_br: ( + offset: (-1.5, -2.5, -10.0), + lateral: ("npc.wolf.male.foot_br"), + ), + ), + (Frostfang, Male): ( + leg_fl: ( + offset: (-1.5, -3.5, -3.5), + lateral: ("npc.frostfang.male.leg_fr"), + ), + leg_fr: ( + offset: (-1.5, -3.5, -3.5), + lateral: ("npc.frostfang.male.leg_fr"), + ), + leg_bl: ( + offset: (-1.5, -3.5, -3.5), + lateral: ("npc.frostfang.male.leg_br"), + ), + leg_br: ( + offset: (-1.5, -3.5, -3.5), + lateral: ("npc.frostfang.male.leg_br"), + ), + foot_fl: ( + offset: (-2.5, -1.5, -6.0), + lateral: ("npc.frostfang.male.foot_fr"), + ), + foot_fr: ( + offset: (-2.5, -1.5, -6.0), + lateral: ("npc.frostfang.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -1.5, -6.0), + lateral: ("npc.frostfang.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -1.5, -6.0), + lateral: ("npc.frostfang.male.foot_br"), + ), + ), + (Frostfang, Female): ( + leg_fl: ( + offset: (-1.5, -3.5, -3.5), + lateral: ("npc.frostfang.male.leg_fr"), + ), + leg_fr: ( + offset: (-1.5, -3.5, -3.5), + lateral: ("npc.frostfang.male.leg_fr"), + ), + leg_bl: ( + offset: (-1.5, -3.5, -3.5), + lateral: ("npc.frostfang.male.leg_br"), + ), + leg_br: ( + offset: (-1.5, -3.5, -3.5), + lateral: ("npc.frostfang.male.leg_br"), + ), + foot_fl: ( + offset: (-2.5, -1.5, -6.0), + lateral: ("npc.frostfang.male.foot_fr"), + ), + foot_fr: ( + offset: (-2.5, -1.5, -6.0), + lateral: ("npc.frostfang.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -1.5, -6.0), + lateral: ("npc.frostfang.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -1.5, -6.0), + lateral: ("npc.frostfang.male.foot_br"), + ), + ), + (Mouflon, Male): ( + leg_fl: ( + offset: (-1.5, -2.5, -4.0), + lateral: ("npc.mouflon.male.leg_fr"), + ), + leg_fr: ( + offset: (-1.5, -2.5, -4.0), + lateral: ("npc.mouflon.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -1.0, -2.5), + lateral: ("npc.mouflon.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -1.0, -2.5), + lateral: ("npc.mouflon.male.leg_br"), + ), + foot_fl: ( + offset: (-1.0, -1.0, -7.0), + lateral: ("npc.mouflon.male.foot_fr"), + ), + foot_fr: ( + offset: (-1.0, -1.0, -7.0), + lateral: ("npc.mouflon.male.foot_fr"), + ), + foot_bl: ( + offset: (-1.0, -2.0, -10.0), + lateral: ("npc.mouflon.male.foot_br"), + ), + foot_br: ( + offset: (-1.0, -2.0, -10.0), + lateral: ("npc.mouflon.male.foot_br"), + ), + ), + (Mouflon, Female): ( + leg_fl: ( + offset: (-1.5, -2.5, -4.0), + lateral: ("npc.mouflon.male.leg_fr"), + ), + leg_fr: ( + offset: (-1.5, -2.5, -4.0), + lateral: ("npc.mouflon.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -2.5, -4.0), + lateral: ("npc.mouflon.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -2.5, -4.0), + lateral: ("npc.mouflon.male.leg_br"), + ), + foot_fl: ( + offset: (-1.0, -1.0, -7.0), + lateral: ("npc.mouflon.male.foot_fr"), + ), + foot_fr: ( + offset: (-1.0, -1.0, -7.0), + lateral: ("npc.mouflon.male.foot_fr"), + ), + foot_bl: ( + offset: (-1.0, -2.0, -10.0), + lateral: ("npc.mouflon.male.foot_br"), + ), + foot_br: ( + offset: (-1.0, -2.0, -10.0), + lateral: ("npc.mouflon.male.foot_br"), + ), + ), + (Catoblepas, Male): ( + leg_fl: ( + offset: (-2.5, -4.0, -5.0), + lateral: ("npc.catoblepas.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.5, -4.0, -5.0), + lateral: ("npc.catoblepas.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.0 , -4.0), + lateral: ("npc.catoblepas.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.0, -4.0), + lateral: ("npc.catoblepas.male.leg_br"), + ), + foot_fl: ( + offset: (-3.0, -3.0, -9.0), + lateral: ("npc.catoblepas.male.foot_fr"), + ), + foot_fr: ( + offset: (-3.0, -3.0, -9.0), + lateral: ("npc.catoblepas.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -3.5, -9.0), + lateral: ("npc.catoblepas.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -3.5, -9.0), + lateral: ("npc.catoblepas.male.foot_br"), + ), + ), + (Catoblepas, Female): ( + leg_fl: ( + offset: (-2.5, -4.0, -5.0), + lateral: ("npc.catoblepas.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.5, -4.0, -5.0), + lateral: ("npc.catoblepas.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.0 , -4.0), + lateral: ("npc.catoblepas.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.0, -4.0), + lateral: ("npc.catoblepas.male.leg_br"), + ), + foot_fl: ( + offset: (-3.0, -3.0, -9.0), + lateral: ("npc.catoblepas.male.foot_fr"), + ), + foot_fr: ( + offset: (-3.0, -3.0, -9.0), + lateral: ("npc.catoblepas.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -3.5, -9.0), + lateral: ("npc.catoblepas.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -3.5, -9.0), + lateral: ("npc.catoblepas.male.foot_br"), + ), + ), + (Bonerattler, Male): ( + leg_fl: ( + offset: (-1.5, -6.0, -3.0), + lateral: ("npc.bonerattler.male.leg_fr"), + ), + leg_fr: ( + offset: (-1.5, -6.0, -3.0), + lateral: ("npc.bonerattler.male.leg_fr"), + ), + leg_bl: ( + offset: (-1.5, -1.0, -3.0), + lateral: ("npc.bonerattler.male.leg_br"), + ), + leg_br: ( + offset: (-1.5, -1.0, -3.0), + lateral: ("npc.bonerattler.male.leg_br"), + ), + foot_fl: ( + offset: (-2.5, -3.0, -6.0), + lateral: ("npc.bonerattler.male.foot_fr"), + ), + foot_fr: ( + offset: (-2.5, -3.0, -6.0), + lateral: ("npc.bonerattler.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -4.0, -6.0), + lateral: ("npc.bonerattler.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -4.0, -6.0), + lateral: ("npc.bonerattler.male.foot_br"), + ), + ), + (Bonerattler, Female): ( + leg_fl: ( + offset: (-1.5, -6.0, -3.0), + lateral: ("npc.bonerattler.male.leg_fr"), + ), + leg_fr: ( + offset: (-1.5, -6.0, -3.0), + lateral: ("npc.bonerattler.male.leg_fr"), + ), + leg_bl: ( + offset: (-1.5, -1.0, -3.0), + lateral: ("npc.bonerattler.male.leg_br"), + ), + leg_br: ( + offset: (-1.5, -1.0, -3.0), + lateral: ("npc.bonerattler.male.leg_br"), + ), + foot_fl: ( + offset: (-2.5, -3.0, -6.0), + lateral: ("npc.bonerattler.male.foot_fr"), + ), + foot_fr: ( + offset: (-2.5, -3.0, -6.0), + lateral: ("npc.bonerattler.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -4.0, -6.0), + lateral: ("npc.bonerattler.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -4.0, -6.0), + lateral: ("npc.bonerattler.male.foot_br"), + ), + ), + (Deer, Male): ( + leg_fl: ( + offset: (-1.5, -2.5, -3.5), + lateral: ("npc.deer.male.leg_fr"), + ), + leg_fr: ( + offset: (-1.5, -2.5, -3.5), + lateral: ("npc.deer.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -2.5, -4.0), + lateral: ("npc.deer.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -2.5, -4.0), + lateral: ("npc.deer.male.leg_br"), + ), + foot_fl: ( + offset: (-1.0, -1.0, -8.0), + lateral: ("npc.deer.male.foot_fr"), + ), + foot_fr: ( + offset: (-1.0, -1.0, -8.0), + lateral: ("npc.deer.male.foot_fr"), + ), + foot_bl: ( + offset: (-1.0, -2.0, -9.0), + lateral: ("npc.deer.male.foot_br"), + ), + foot_br: ( + offset: (-1.0, -2.0, -9.0), + lateral: ("npc.deer.male.foot_br"), + ), + ), + (Deer, Female): ( + leg_fl: ( + offset: (-1.5, -2.5, -3.5), + lateral: ("npc.deer.female.leg_fr"), + ), + leg_fr: ( + offset: (-1.5, -2.5, -3.5), + lateral: ("npc.deer.female.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -2.5, -4.0), + lateral: ("npc.deer.female.leg_br"), + ), + leg_br: ( + offset: (-2.0, -2.5, -4.0), + lateral: ("npc.deer.female.leg_br"), + ), + foot_fl: ( + offset: (-1.0, -1.0, -8.0), + lateral: ("npc.deer.female.foot_fr"), + ), + foot_fr: ( + offset: (-1.0, -1.0, -8.0), + lateral: ("npc.deer.female.foot_fr"), + ), + foot_bl: ( + offset: (-1.0, -2.0, -9.0), + lateral: ("npc.deer.female.foot_br"), + ), + foot_br: ( + offset: (-1.0, -2.0, -9.0), + lateral: ("npc.deer.female.foot_br"), + ), + ), + (Hirdrasil, Male): ( + leg_fl: ( + offset: (-1.5, -3.0, -4.0), + lateral: ("npc.hirdrasil.male.leg_fr"), + ), + leg_fr: ( + offset: (-1.5, -3.0, -4.0), + lateral: ("npc.hirdrasil.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -2.5, -5.0), + lateral: ("npc.hirdrasil.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -2.5, -5.0), + lateral: ("npc.hirdrasil.male.leg_br"), + ), + foot_fl: ( + offset: (-2.0, -1.0, -9.0), + lateral: ("npc.hirdrasil.male.foot_fr"), + ), + foot_fr: ( + offset: (-2.0, -1.0, -9.0), + lateral: ("npc.hirdrasil.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.0, -2.5, -7.0), + lateral: ("npc.hirdrasil.male.foot_br"), + ), + foot_br: ( + offset: (-2.0, -2.5, -7.0), + lateral: ("npc.hirdrasil.male.foot_br"), + ), + ), + (Hirdrasil, Female): ( + leg_fl: ( + offset: (-1.5, -3.0, -4.0), + lateral: ("npc.hirdrasil.male.leg_fr"), + ), + leg_fr: ( + offset: (-1.5, -3.0, -4.0), + lateral: ("npc.hirdrasil.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -2.5, -5.0), + lateral: ("npc.hirdrasil.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -2.5, -5.0), + lateral: ("npc.hirdrasil.male.leg_br"), + ), + foot_fl: ( + offset: (-2.0, -1.0, -9.0), + lateral: ("npc.hirdrasil.male.foot_fr"), + ), + foot_fr: ( + offset: (-2.0, -1.0, -9.0), + lateral: ("npc.hirdrasil.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.0, -2.5, -7.0), + lateral: ("npc.hirdrasil.male.foot_br"), + ), + foot_br: ( + offset: (-2.0, -2.5, -7.0), + lateral: ("npc.hirdrasil.male.foot_br"), + ), + ), + (Roshwalr, Male): ( + leg_fl: ( + offset: (-4.0, -2.5, -4.0), + lateral: ("npc.roshwalr.male.leg_fr"), + ), + leg_fr: ( + offset: (-4.0, -2.5, -4.0), + lateral: ("npc.roshwalr.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -4.0, -2.5), + lateral: ("npc.roshwalr.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -4.0, -2.5), + lateral: ("npc.roshwalr.male.leg_br"), + ), + foot_fl: ( + offset: (-4.5, -1.0, -7.0), + lateral: ("npc.roshwalr.male.foot_fr"), + ), + foot_fr: ( + offset: (-4.5, -1.0, -7.0), + lateral: ("npc.roshwalr.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -2.0, -3.0), + lateral: ("npc.roshwalr.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -2.0, -3.0), + lateral: ("npc.roshwalr.male.foot_br"), + ), + ), + (Roshwalr, Female): ( + leg_fl: ( + offset: (-4.0, -2.5, -4.0), + lateral: ("npc.roshwalr.male.leg_fr"), + ), + leg_fr: ( + offset: (-4.0, -2.5, -4.0), + lateral: ("npc.roshwalr.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -4.0, -2.5), + lateral: ("npc.roshwalr.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -4.0, -2.5), + lateral: ("npc.roshwalr.male.leg_br"), + ), + foot_fl: ( + offset: (-4.5, -1.0, -7.0), + lateral: ("npc.roshwalr.male.foot_fr"), + ), + foot_fr: ( + offset: (-4.5, -1.0, -7.0), + lateral: ("npc.roshwalr.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -2.0, -3.0), + lateral: ("npc.roshwalr.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -2.0, -3.0), + lateral: ("npc.roshwalr.male.foot_br"), + ), + ), + (Donkey, Male): ( + leg_fl: ( + offset: (-2.5, -2.5, -4.5), + lateral: ("npc.donkey.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.5, -2.5, -4.5), + lateral: ("npc.donkey.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.5, -3.0, -4.5), + lateral: ("npc.donkey.male.leg_br"), + ), + leg_br: ( + offset: (-2.5, -3.0, -4.5), + lateral: ("npc.donkey.male.leg_br"), + ), + foot_fl: ( + offset: (-2.0, -2.5, -8.0), + lateral: ("npc.donkey.male.foot_fr"), + ), + foot_fr: ( + offset: (-2.0, -2.5, -8.0), + lateral: ("npc.donkey.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.0, -3.0, -8.0), + lateral: ("npc.donkey.male.foot_br"), + ), + foot_br: ( + offset: (-2.0, -3.0, -8.0), + lateral: ("npc.donkey.male.foot_br"), + ), + ), + (Donkey, Female): ( + leg_fl: ( + offset: (-2.5, -2.5, -4.5), + lateral: ("npc.donkey.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.5, -2.5, -4.5), + lateral: ("npc.donkey.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.5, -3.0, -4.5), + lateral: ("npc.donkey.male.leg_br"), + ), + leg_br: ( + offset: (-2.5, -3.0, -4.5), + lateral: ("npc.donkey.male.leg_br"), + ), + foot_fl: ( + offset: (-2.0, -2.5, -8.0), + lateral: ("npc.donkey.male.foot_fr"), + ), + foot_fr: ( + offset: (-2.0, -2.5, -8.0), + lateral: ("npc.donkey.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.0, -3.0, -8.0), + lateral: ("npc.donkey.male.foot_br"), + ), + foot_br: ( + offset: (-2.0, -3.0, -8.0), + lateral: ("npc.donkey.male.foot_br"), + ), + ), + (Camel, Male): ( + leg_fl: ( + offset: (-2.5, -3.5, -7.0), + lateral: ("npc.camel.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.5, -3.5, -7.0), + lateral: ("npc.camel.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.5, -3.5, -8.0), + lateral: ("npc.camel.male.leg_br"), + ), + leg_br: ( + offset: (-2.5, -3.5, -8.0), + lateral: ("npc.camel.male.leg_br"), + ), + foot_fl: ( + offset: (-2.5, -2.5, -9.0), + lateral: ("npc.camel.male.foot_fr"), + ), + foot_fr: ( + offset: (-2.5, -2.5, -9.0), + lateral: ("npc.camel.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -3.0, -8.0), + lateral: ("npc.camel.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -3.0, -8.0), + lateral: ("npc.camel.male.foot_br"), + ), + ), + (Camel, Female): ( + leg_fl: ( + offset: (-2.5, -3.5, -7.0), + lateral: ("npc.camel.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.5, -3.5, -7.0), + lateral: ("npc.camel.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.5, -3.5, -8.0), + lateral: ("npc.camel.male.leg_br"), + ), + leg_br: ( + offset: (-2.5, -3.5, -8.0), + lateral: ("npc.camel.male.leg_br"), + ), + foot_fl: ( + offset: (-2.5, -2.5, -9.0), + lateral: ("npc.camel.male.foot_fr"), + ), + foot_fr: ( + offset: (-2.5, -2.5, -9.0), + lateral: ("npc.camel.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -3.0, -8.0), + lateral: ("npc.camel.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -3.0, -8.0), + lateral: ("npc.camel.male.foot_br"), + ), + ), + (Zebra, Male): ( + leg_fl: ( + offset: (-2.0, -2.5, -4.0), + lateral: ("npc.zebra.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.0, -2.5, -4.0), + lateral: ("npc.zebra.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.0, -4.0), + lateral: ("npc.zebra.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.0, -4.0), + lateral: ("npc.zebra.male.leg_br"), + ), + foot_fl: ( + offset: (-1.5, -2.0, -8.0), + lateral: ("npc.zebra.male.foot_fr"), + ), + foot_fr: ( + offset: (-1.5, -2.0, -8.0), + lateral: ("npc.zebra.male.foot_fr"), + ), + foot_bl: ( + offset: (-1.5, -2.5, -9.0), + lateral: ("npc.zebra.male.foot_br"), + ), + foot_br: ( + offset: (-1.5, -2.5, -9.0), + lateral: ("npc.zebra.male.foot_br"), + ), + ), + (Zebra, Female): ( + leg_fl: ( + offset: (-2.0, -2.5, -4.0), + lateral: ("npc.zebra.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.0, -2.5, -4.0), + lateral: ("npc.zebra.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.0, -4.0), + lateral: ("npc.zebra.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.0, -4.0), + lateral: ("npc.zebra.male.leg_br"), + ), + foot_fl: ( + offset: (-1.5, -2.0, -8.0), + lateral: ("npc.zebra.male.foot_fr"), + ), + foot_fr: ( + offset: (-1.5, -2.0, -8.0), + lateral: ("npc.zebra.male.foot_fr"), + ), + foot_bl: ( + offset: (-1.5, -2.5, -9.0), + lateral: ("npc.zebra.male.foot_br"), + ), + foot_br: ( + offset: (-1.5, -2.5, -9.0), + lateral: ("npc.zebra.male.foot_br"), + ), + ), + (Antelope, Male): ( + leg_fl: ( + offset: (-1.5, -2.5, -4.0), + lateral: ("npc.antelope.male.leg_fr"), + ), + leg_fr: ( + offset: (-1.5, -2.5, -4.0), + lateral: ("npc.antelope.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -2.5, -5.0), + lateral: ("npc.antelope.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -2.5, -5.0), + lateral: ("npc.antelope.male.leg_br"), + ), + foot_fl: ( + offset: (-1.0, -1.5, -8.0), + lateral: ("npc.antelope.male.foot_fr"), + ), + foot_fr: ( + offset: (-1.0, -1.5, -8.0), + lateral: ("npc.antelope.male.foot_fr"), + ), + foot_bl: ( + offset: (-1.0, -1.0, -7.0), + lateral: ("npc.antelope.male.foot_br"), + ), + foot_br: ( + offset: (-1.0, -1.0, -7.0), + lateral: ("npc.antelope.male.foot_br"), + ), + ), + (Antelope, Female): ( + leg_fl: ( + offset: (-1.5, -2.5, -4.0), + lateral: ("npc.antelope.male.leg_fr"), + ), + leg_fr: ( + offset: (-1.5, -2.5, -4.0), + lateral: ("npc.antelope.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -2.5, -5.0), + lateral: ("npc.antelope.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -2.5, -5.0), + lateral: ("npc.antelope.male.leg_br"), + ), + foot_fl: ( + offset: (-1.0, -1.5, -8.0), + lateral: ("npc.antelope.male.foot_fr"), + ), + foot_fr: ( + offset: (-1.0, -1.5, -8.0), + lateral: ("npc.antelope.male.foot_fr"), + ), + foot_bl: ( + offset: (-1.0, -1.0, -7.0), + lateral: ("npc.antelope.male.foot_br"), + ), + foot_br: ( + offset: (-1.0, -1.0, -7.0), + lateral: ("npc.antelope.male.foot_br"), + ), + ), + (Kelpie, Male): ( + leg_fl: ( + offset: (-2.0, -2.5, -5.0), + lateral: ("npc.kelpie.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.0, -2.5, -5.0), + lateral: ("npc.kelpie.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.0, -4.5), + lateral: ("npc.kelpie.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.0, -4.5), + lateral: ("npc.kelpie.male.leg_br"), + ), + foot_fl: ( + offset: (-1.5, -2.0, -8.0), + lateral: ("npc.kelpie.male.foot_fr"), + ), + foot_fr: ( + offset: (-1.5, -2.0, -8.0), + lateral: ("npc.kelpie.male.foot_fr"), + ), + foot_bl: ( + offset: (-1.5, -2.5, -9.0), + lateral: ("npc.kelpie.male.foot_br"), + ), + foot_br: ( + offset: (-1.5, -2.5, -9.0), + lateral: ("npc.kelpie.male.foot_br"), + ), + ), + (Kelpie, Female): ( + leg_fl: ( + offset: (-2.0, -2.5, -5.0), + lateral: ("npc.kelpie.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.0, -2.5, -5.0), + lateral: ("npc.kelpie.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.0, -4.5), + lateral: ("npc.kelpie.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.0, -4.5), + lateral: ("npc.kelpie.male.leg_br"), + ), + foot_fl: ( + offset: (-1.5, -2.0, -8.0), + lateral: ("npc.kelpie.male.foot_fr"), + ), + foot_fr: ( + offset: (-1.5, -2.0, -8.0), + lateral: ("npc.kelpie.male.foot_fr"), + ), + foot_bl: ( + offset: (-1.5, -2.5, -9.0), + lateral: ("npc.kelpie.male.foot_br"), + ), + foot_br: ( + offset: (-1.5, -2.5, -9.0), + lateral: ("npc.kelpie.male.foot_br"), + ), + ), + (Horse, Male): ( + leg_fl: ( + offset: (-2.0, -2.5, -6.0), + lateral: ("npc.horse.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.0, -2.5, -6.0), + lateral: ("npc.horse.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.0, -4.5), + lateral: ("npc.horse.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.0, -4.5), + lateral: ("npc.horse.male.leg_br"), + ), + foot_fl: ( + offset: (-1.5, -2.0, -8.0), + lateral: ("npc.horse.male.foot_fr"), + ), + foot_fr: ( + offset: (-1.5, -2.0, -8.0), + lateral: ("npc.horse.male.foot_fr"), + ), + foot_bl: ( + offset: (-1.5, -1.5, -9.0), + lateral: ("npc.horse.male.foot_br"), + ), + foot_br: ( + offset: (-1.5, -1.5, -9.0), + lateral: ("npc.horse.male.foot_br"), + ), + ), + (Horse, Female): ( + leg_fl: ( + offset: (-2.0, -2.5, -6.0), + lateral: ("npc.horse.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.0, -2.5, -6.0), + lateral: ("npc.horse.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.0, -4.5), + lateral: ("npc.horse.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.0, -4.5), + lateral: ("npc.horse.male.leg_br"), + ), + foot_fl: ( + offset: (-1.5, -2.0, -8.0), + lateral: ("npc.horse.male.foot_fr"), + ), + foot_fr: ( + offset: (-1.5, -2.0, -8.0), + lateral: ("npc.horse.male.foot_fr"), + ), + foot_bl: ( + offset: (-1.5, -1.5, -9.0), + lateral: ("npc.horse.male.foot_br"), + ), + foot_br: ( + offset: (-1.5, -1.5, -9.0), + lateral: ("npc.horse.male.foot_br"), + ), + ), + (Barghest, Male): ( + leg_fl: ( + offset: (-3.5, -4.0, -5.0), + lateral: ("npc.barghest.male.leg_fr"), + ), + leg_fr: ( + offset: (-3.5, -4.0, -5.0), + lateral: ("npc.barghest.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.5, -3.5), + lateral: ("npc.barghest.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.5, -3.5), + lateral: ("npc.barghest.male.leg_br"), + ), + foot_fl: ( + offset: (-4.5, -5.5, -7.0), + lateral: ("npc.barghest.male.foot_fr"), + ), + foot_fr: ( + offset: (-4.5, -5.5, -7.0), + lateral: ("npc.barghest.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -3.5, -4.0), + lateral: ("npc.barghest.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -3.5, -4.0), + lateral: ("npc.barghest.male.foot_br"), + ), + ), + (Barghest, Female): ( + leg_fl: ( + offset: (-3.5, -4.0, -5.0), + lateral: ("npc.barghest.male.leg_fr"), + ), + leg_fr: ( + offset: (-3.5, -4.0, -5.0), + lateral: ("npc.barghest.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.5, -3.5), + lateral: ("npc.barghest.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.5, -3.5), + lateral: ("npc.barghest.male.leg_br"), + ), + foot_fl: ( + offset: (-4.5, -5.5, -7.0), + lateral: ("npc.barghest.male.foot_fr"), + ), + foot_fr: ( + offset: (-4.5, -5.5, -7.0), + lateral: ("npc.barghest.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -3.5, -4.0), + lateral: ("npc.barghest.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -3.5, -4.0), + lateral: ("npc.barghest.male.foot_br"), + ), + ), + (Cattle, Male): ( + leg_fl: ( + offset: (-2.5, -3.0, -6.5), + lateral: ("npc.cattle.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.5, -3.0, -6.5), + lateral: ("npc.cattle.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.0, -5.0), + lateral: ("npc.cattle.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.0, -5.0), + lateral: ("npc.cattle.male.leg_br"), + ), + foot_fl: ( + offset: (-1.5, -2.0, -8.0), + lateral: ("npc.cattle.male.foot_fr"), + ), + foot_fr: ( + offset: (-1.5, -2.0, -8.0), + lateral: ("npc.cattle.male.foot_fr"), + ), + foot_bl: ( + offset: (-1.5, -2.5, -9.0), + lateral: ("npc.cattle.male.foot_br"), + ), + foot_br: ( + offset: (-1.5, -2.5, -9.0), + lateral: ("npc.cattle.male.foot_br"), + ), + ), + (Cattle, Female): ( + leg_fl: ( + offset: (-2.0, -2.5, -5.5), + lateral: ("npc.cattle.female.leg_fr"), + ), + leg_fr: ( + offset: (-2.0, -2.5, -5.5), + lateral: ("npc.cattle.female.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.0, -4.5), + lateral: ("npc.cattle.female.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.5, -4.5), + lateral: ("npc.cattle.female.leg_br"), + ), + foot_fl: ( + offset: (-1.5, -2.0, -8.0), + lateral: ("npc.cattle.female.foot_fr"), + ), + foot_fr: ( + offset: (-1.5, -2.0, -8.0), + lateral: ("npc.cattle.female.foot_fr"), + ), + foot_bl: ( + offset: (-1.5, -2.5, -9.0), + lateral: ("npc.cattle.female.foot_br"), + ), + foot_br: ( + offset: (-1.5, -2.5, -9.0), + lateral: ("npc.cattle.female.foot_br"), + ), + ), + (Darkhound, Male): ( + leg_fl: ( + offset: (-1.5, -3.5, -4.0), + lateral: ("npc.darkhound.male.leg_fr"), + ), + leg_fr: ( + offset: (-1.5, -3.5, -4.0), + lateral: ("npc.darkhound.male.leg_fr"), + ), + leg_bl: ( + offset: (-1.5, -3.5, -3.5), + lateral: ("npc.darkhound.male.leg_br"), + ), + leg_br: ( + offset: (-1.5, -3.5, -3.5), + lateral: ("npc.darkhound.male.leg_br"), + ), + foot_fl: ( + offset: (-1.5, -4.0, -8.0), + lateral: ("npc.darkhound.male.foot_fr"), + ), + foot_fr: ( + offset: (-1.5, -4.0, -8.0), + lateral: ("npc.darkhound.male.foot_fr"), + ), + foot_bl: ( + offset: (-1.5, -3.5, -8.0), + lateral: ("npc.darkhound.male.foot_br"), + ), + foot_br: ( + offset: (-1.5, -3.5, -8.0), + lateral: ("npc.darkhound.male.foot_br"), + ), + ), + (Darkhound, Female): ( + leg_fl: ( + offset: (-1.5, -3.5, -4.0), + lateral: ("npc.darkhound.male.leg_fr"), + ), + leg_fr: ( + offset: (-1.5, -3.5, -4.0), + lateral: ("npc.darkhound.male.leg_fr"), + ), + leg_bl: ( + offset: (-1.5, -3.5, -3.5), + lateral: ("npc.darkhound.male.leg_br"), + ), + leg_br: ( + offset: (-1.5, -3.5, -3.5), + lateral: ("npc.darkhound.male.leg_br"), + ), + foot_fl: ( + offset: (-1.5, -4.0, -8.0), + lateral: ("npc.darkhound.male.foot_fr"), + ), + foot_fr: ( + offset: (-1.5, -4.0, -8.0), + lateral: ("npc.darkhound.male.foot_fr"), + ), + foot_bl: ( + offset: (-1.5, -3.5, -8.0), + lateral: ("npc.darkhound.male.foot_br"), + ), + foot_br: ( + offset: (-1.5, -3.5, -8.0), + lateral: ("npc.darkhound.male.foot_br"), + ), + ), + (Highland, Male): ( + leg_fl: ( + offset: (-2.0, -2.5, -4.5), + lateral: ("npc.highland.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.0, -2.5, -4.5), + lateral: ("npc.highland.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.0, -4.5), + lateral: ("npc.highland.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.0, -4.5), + lateral: ("npc.highland.male.leg_br"), + ), + foot_fl: ( + offset: (-1.5, -2.0, -8.0), + lateral: ("npc.highland.male.foot_fr"), + ), + foot_fr: ( + offset: (-1.5, -2.0, -8.0), + lateral: ("npc.highland.male.foot_fr"), + ), + foot_bl: ( + offset: (-1.5, -2.5, -9.0), + lateral: ("npc.highland.male.foot_br"), + ), + foot_br: ( + offset: (-1.5, -2.5, -9.0), + lateral: ("npc.highland.male.foot_br"), + ), + ), + (Highland, Female): ( + leg_fl: ( + offset: (-2.0, -2.5, -4.5), + lateral: ("npc.highland.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.0, -2.5, -4.5), + lateral: ("npc.highland.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.0, -4.5), + lateral: ("npc.highland.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.0, -4.5), + lateral: ("npc.highland.male.leg_br"), + ), + foot_fl: ( + offset: (-1.5, -2.0, -8.0), + lateral: ("npc.highland.male.foot_fr"), + ), + foot_fr: ( + offset: (-1.5, -2.0, -8.0), + lateral: ("npc.highland.male.foot_fr"), + ), + foot_bl: ( + offset: (-1.5, -2.5, -9.0), + lateral: ("npc.highland.male.foot_br"), + ), + foot_br: ( + offset: (-1.5, -2.5, -9.0), + lateral: ("npc.highland.male.foot_br"), + ), + ), + (Yak, Male): ( + leg_fl: ( + offset: (-2.0, -3.0, -10.5), + lateral: ("npc.yak.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.0, -3.0, -10.5), + lateral: ("npc.yak.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.0, -10.5), + lateral: ("npc.yak.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.0, -10.5), + lateral: ("npc.yak.male.leg_br"), + ), + foot_fl: ( + offset: (-1.5, -2.0, -9.0), + lateral: ("npc.yak.male.foot_fr"), + ), + foot_fr: ( + offset: (-1.5, -2.0, -9.0), + lateral: ("npc.yak.male.foot_fr"), + ), + foot_bl: ( + offset: (-1.5, -2.5, -9.0), + lateral: ("npc.yak.male.foot_br"), + ), + foot_br: ( + offset: (-1.5, -2.5, -9.0), + lateral: ("npc.yak.male.foot_br"), + ), + ), + (Yak, Female): ( + leg_fl: ( + offset: (-2.0, -3.0, -10.5), + lateral: ("npc.yak.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.0, -3.0, -10.5), + lateral: ("npc.yak.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.0, -10.5), + lateral: ("npc.yak.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.0, -10.5), + lateral: ("npc.yak.male.leg_br"), + ), + foot_fl: ( + offset: (-1.5, -2.0, -9.0), + lateral: ("npc.yak.male.foot_fr"), + ), + foot_fr: ( + offset: (-1.5, -2.0, -9.0), + lateral: ("npc.yak.male.foot_fr"), + ), + foot_bl: ( + offset: (-1.5, -2.5, -9.0), + lateral: ("npc.yak.male.foot_br"), + ), + foot_br: ( + offset: (-1.5, -2.5, -9.0), + lateral: ("npc.yak.male.foot_br"), + ), + ), + (Bear, Male): ( + leg_fl: ( + offset: (-2.0, -3.5, -4.5), + lateral: ("npc.bear.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.0, -3.5, -4.5), + lateral: ("npc.bear.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.5, -5.0), + lateral: ("npc.bear.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.5, -5.0), + lateral: ("npc.bear.male.leg_br"), + ), + foot_fl: ( + offset: (-3.0, -4.5, -7.0), + lateral: ("npc.bear.male.foot_fr"), + ), + foot_fr: ( + offset: (-3.0, -4.5, -7.0), + lateral: ("npc.bear.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -4.0, -6.0), + lateral: ("npc.bear.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -4.0, -6.0), + lateral: ("npc.bear.male.foot_br"), + ), + ), + (Panda, Female): ( + leg_fl: ( + offset: (-2.0, -3.5, -4.5), + lateral: ("npc.panda.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.0, -3.5, -4.5), + lateral: ("npc.panda.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.5, -5.0), + lateral: ("npc.panda.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.5, -5.0), + lateral: ("npc.panda.male.leg_br"), + ), + foot_fl: ( + offset: (-3.0, -4.5, -7.0), + lateral: ("npc.panda.male.foot_fr"), + ), + foot_fr: ( + offset: (-3.0, -4.5, -7.0), + lateral: ("npc.panda.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -4.0, -6.0), + lateral: ("npc.panda.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -4.0, -6.0), + lateral: ("npc.panda.male.foot_br"), + ), + ), + (Panda, Male): ( + leg_fl: ( + offset: (-2.0, -3.5, -4.5), + lateral: ("npc.panda.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.0, -3.5, -4.5), + lateral: ("npc.panda.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.5, -5.0), + lateral: ("npc.panda.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.5, -5.0), + lateral: ("npc.panda.male.leg_br"), + ), + foot_fl: ( + offset: (-3.0, -4.5, -7.0), + lateral: ("npc.panda.male.foot_fr"), + ), + foot_fr: ( + offset: (-3.0, -4.5, -7.0), + lateral: ("npc.panda.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -4.0, -6.0), + lateral: ("npc.panda.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -4.0, -6.0), + lateral: ("npc.panda.male.foot_br"), + ), + ), + (Bear, Female): ( + leg_fl: ( + offset: (-2.0, -3.5, -4.5), + lateral: ("npc.bear.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.0, -3.5, -4.5), + lateral: ("npc.bear.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.5, -5.0), + lateral: ("npc.bear.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.5, -5.0), + lateral: ("npc.bear.male.leg_br"), + ), + foot_fl: ( + offset: (-3.0, -4.5, -7.0), + lateral: ("npc.bear.male.foot_fr"), + ), + foot_fr: ( + offset: (-3.0, -4.5, -7.0), + lateral: ("npc.bear.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -4.0, -6.0), + lateral: ("npc.bear.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -4.0, -6.0), + lateral: ("npc.bear.male.foot_br"), + ), + ), + (Dreadhorn, Male): ( + leg_fl: ( + offset: (-3.5, -5.0, -6.0), + lateral: ("npc.dreadhorn.male.leg_fr"), + ), + leg_fr: ( + offset: (-3.5, -5.0, -6.0), + lateral: ("npc.dreadhorn.male.leg_fr"), + ), + leg_bl: ( + offset: (-3.0, -5.0, -4.5), + lateral: ("npc.dreadhorn.male.leg_br"), + ), + leg_br: ( + offset: (-3.0, -5.0, -4.5), + lateral: ("npc.dreadhorn.male.leg_br"), + ), + foot_fl: ( + offset: (-3.0, -5.5, -10.0), + lateral: ("npc.dreadhorn.male.foot_fr"), + ), + foot_fr: ( + offset: (-3.0, -5.5, -10.0), + lateral: ("npc.dreadhorn.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -4.5, -8.0), + lateral: ("npc.dreadhorn.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -4.5, -8.0), + lateral: ("npc.dreadhorn.male.foot_br"), + ), + ), + (Dreadhorn, Female): ( + leg_fl: ( + offset: (-3.5, -5.0, -6.0), + lateral: ("npc.dreadhorn.male.leg_fr"), + ), + leg_fr: ( + offset: (-3.5, -5.0, -6.0), + lateral: ("npc.dreadhorn.male.leg_fr"), + ), + leg_bl: ( + offset: (-3.0, -5.0, -4.5), + lateral: ("npc.dreadhorn.male.leg_br"), + ), + leg_br: ( + offset: (-3.0, -5.0, -4.5), + lateral: ("npc.dreadhorn.male.leg_br"), + ), + foot_fl: ( + offset: (-3.0, -5.5, -10.0), + lateral: ("npc.dreadhorn.male.foot_fr"), + ), + foot_fr: ( + offset: (-3.0, -5.5, -10.0), + lateral: ("npc.dreadhorn.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -4.5, -8.0), + lateral: ("npc.dreadhorn.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -4.5, -8.0), + lateral: ("npc.dreadhorn.male.foot_br"), + ), + ), + (Moose, Male): ( + leg_fl: ( + offset: (-2.5, -4.0, -9.0), + lateral: ("npc.moose.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.5, -4.0, -9.0), + lateral: ("npc.moose.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.5, -4.0, -6.5), + lateral: ("npc.moose.male.leg_br"), + ), + leg_br: ( + offset: (-2.5, -4.0, -6.5), + lateral: ("npc.moose.male.leg_br"), + ), + foot_fl: ( + offset: (-1.5, -3.5, -11.0), + lateral: ("npc.moose.male.foot_fr"), + ), + foot_fr: ( + offset: (-1.5, -3.5, -11.0), + lateral: ("npc.moose.male.foot_fr"), + ), + foot_bl: ( + offset: (-1.5, -3.0, -10.0), + lateral: ("npc.moose.male.foot_br"), + ), + foot_br: ( + offset: (-1.5, -3.0, -10.0), + lateral: ("npc.moose.male.foot_br"), + ), + ), + (Moose, Female): ( + leg_fl: ( + offset: (-2.5, -4.0, -9.0), + lateral: ("npc.moose.female.leg_fr"), + ), + leg_fr: ( + offset: (-2.5, -4.0, -9.0), + lateral: ("npc.moose.female.leg_fr"), + ), + leg_bl: ( + offset: (-2.5, -4.0, -6.5), + lateral: ("npc.moose.female.leg_br"), + ), + leg_br: ( + offset: (-2.5, -4.0, -6.5), + lateral: ("npc.moose.female.leg_br"), + ), + foot_fl: ( + offset: (-1.5, -3.5, -11.0), + lateral: ("npc.moose.female.foot_fr"), + ), + foot_fr: ( + offset: (-1.5, -3.5, -11.0), + lateral: ("npc.moose.female.foot_fr"), + ), + foot_bl: ( + offset: (-1.5, -3.0, -10.0), + lateral: ("npc.moose.female.foot_br"), + ), + foot_br: ( + offset: (-1.5, -3.0, -10.0), + lateral: ("npc.moose.female.foot_br"), + ), + ), + (Snowleopard, Male): ( + leg_fl: ( + offset: (-2.0, -3.0, -4.5), + lateral: ("npc.snowleopard.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.0, -3.0, -4.5), + lateral: ("npc.snowleopard.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.0, -4.5), + lateral: ("npc.snowleopard.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.0, -4.5), + lateral: ("npc.snowleopard.male.leg_br"), + ), + foot_fl: ( + offset: (-2.5, -3.5, -6.0), + lateral: ("npc.snowleopard.male.foot_fr"), + ), + foot_fr: ( + offset: (-2.5, -3.5, -6.0), + lateral: ("npc.snowleopard.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -3.5, -6.0), + lateral: ("npc.snowleopard.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -3.5, -6.0), + lateral: ("npc.snowleopard.male.foot_br"), + ), + ), + (Snowleopard, Female): ( + leg_fl: ( + offset: (-2.0, -3.0, -4.5), + lateral: ("npc.snowleopard.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.0, -3.0, -4.5), + lateral: ("npc.snowleopard.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.0, -4.5), + lateral: ("npc.snowleopard.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.0, -4.5), + lateral: ("npc.snowleopard.male.leg_br"), + ), + foot_fl: ( + offset: (-2.5, -3.5, -6.0), + lateral: ("npc.snowleopard.male.foot_fr"), + ), + foot_fr: ( + offset: (-2.5, -3.5, -6.0), + lateral: ("npc.snowleopard.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -3.5, -6.0), + lateral: ("npc.snowleopard.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -3.5, -6.0), + lateral: ("npc.snowleopard.male.foot_br"), + ), + ), + (Mammoth, Male): ( + leg_fl: ( + offset: (-4.0, -5.0, -6.0), + lateral: ("npc.mammoth.male.leg_fr"), + ), + leg_fr: ( + offset: (-4.0, -5.0, -6.0), + lateral: ("npc.mammoth.male.leg_fr"), + ), + leg_bl: ( + offset: (-3.5, -5.0, -5.5), + lateral: ("npc.mammoth.male.leg_br"), + ), + leg_br: ( + offset: (-3.5, -5.0, -5.5), + lateral: ("npc.mammoth.male.leg_br"), + ), + foot_fl: ( + offset: (-3.5, -4.5, -10.0), + lateral: ("npc.mammoth.male.foot_fr"), + ), + foot_fr: ( + offset: (-3.5, -4.5, -10.0), + lateral: ("npc.mammoth.male.foot_fr"), + ), + foot_bl: ( + offset: (-3.0, -4.5, -9.0), + lateral: ("npc.mammoth.male.foot_br"), + ), + foot_br: ( + offset: (-3.0, -4.5, -9.0), + lateral: ("npc.mammoth.male.foot_br"), + ), + ), + (Mammoth, Female): ( + leg_fl: ( + offset: (-4.0, -5.0, -6.0), + lateral: ("npc.mammoth.male.leg_fr"), + ), + leg_fr: ( + offset: (-4.0, -5.0, -6.0), + lateral: ("npc.mammoth.male.leg_fr"), + ), + leg_bl: ( + offset: (-3.5, -5.0, -5.5), + lateral: ("npc.mammoth.male.leg_br"), + ), + leg_br: ( + offset: (-3.5, -5.0, -5.5), + lateral: ("npc.mammoth.male.leg_br"), + ), + foot_fl: ( + offset: (-3.5, -4.5, -10.0), + lateral: ("npc.mammoth.male.foot_fr"), + ), + foot_fr: ( + offset: (-3.5, -4.5, -10.0), + lateral: ("npc.mammoth.male.foot_fr"), + ), + foot_bl: ( + offset: (-3.0, -4.5, -9.0), + lateral: ("npc.mammoth.male.foot_br"), + ), + foot_br: ( + offset: (-3.0, -4.5, -9.0), + lateral: ("npc.mammoth.male.foot_br"), + ), + ), + (Ngoubou, Male): ( + leg_fl: ( + offset: (-2.5, -4.0, -7.0), + lateral: ("npc.ngoubou.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.5, -4.0, -7.0), + lateral: ("npc.ngoubou.male.leg_fr"), + ), + leg_bl: ( + offset: (-3.0, -4.5, -5.5), + lateral: ("npc.ngoubou.male.leg_br"), + ), + leg_br: ( + offset: (-3.0, -4.5, -5.5), + lateral: ("npc.ngoubou.male.leg_br"), + ), + foot_fl: ( + offset: (-2.5, -3.5, -9.0), + lateral: ("npc.ngoubou.male.foot_fr"), + ), + foot_fr: ( + offset: (-2.5, -3.5, -9.0), + lateral: ("npc.ngoubou.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -3.5, -9.0), + lateral: ("npc.ngoubou.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -3.5, -9.0), + lateral: ("npc.ngoubou.male.foot_br"), + ), + ), + (Ngoubou, Female): ( + leg_fl: ( + offset: (-2.5, -4.0, -7.0), + lateral: ("npc.ngoubou.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.5, -4.0, -7.0), + lateral: ("npc.ngoubou.male.leg_fr"), + ), + leg_bl: ( + offset: (-3.0, -4.5, -5.5), + lateral: ("npc.ngoubou.male.leg_br"), + ), + leg_br: ( + offset: (-3.0, -4.5, -5.5), + lateral: ("npc.ngoubou.male.leg_br"), + ), + foot_fl: ( + offset: (-2.5, -3.5, -9.0), + lateral: ("npc.ngoubou.male.foot_fr"), + ), + foot_fr: ( + offset: (-2.5, -3.5, -9.0), + lateral: ("npc.ngoubou.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -3.5, -9.0), + lateral: ("npc.ngoubou.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -3.5, -9.0), + lateral: ("npc.ngoubou.male.foot_br"), + ), + ), + (Llama, Male): ( + leg_fl: ( + offset: (-2.0, -2.5, -6.0), + lateral: ("npc.llama.male.llama"), + model_index: 7, + ), + leg_fr: ( + offset: (-2.0, -2.5, -6.0), + lateral: ("npc.llama.male.llama"), + model_index: 7, + ), + leg_bl: ( + offset: (-2.0, -3.0, -5.0), + lateral: ("npc.llama.male.llama"), + model_index: 8, + ), + leg_br: ( + offset: (-2.0, -3.0, -5.0), + lateral: ("npc.llama.male.llama"), + model_index: 8, + ), + foot_fl: ( + offset: (-1.5, -2.0, -8.0), + lateral: ("npc.llama.male.llama"), + model_index: 9, + ), + foot_fr: ( + offset: (-1.5, -2.0, -8.0), + lateral: ("npc.llama.male.llama"), + model_index: 9, + ), + foot_bl: ( + offset: (-1.5, -2.5, -9.0), + lateral: ("npc.llama.male.llama"), + model_index: 10, + ), + foot_br: ( + offset: (-1.5, -2.5, -9.0), + lateral: ("npc.llama.male.llama"), + model_index: 10, + ), + ), + (Llama, Female): ( + leg_fl: ( + offset: (-2.0, -2.5, -6.0), + lateral: ("npc.llama.male.llama"), + model_index: 7, + ), + leg_fr: ( + offset: (-2.0, -2.5, -6.0), + lateral: ("npc.llama.male.llama"), + model_index: 7, + ), + leg_bl: ( + offset: (-2.0, -3.0, -5.0), + lateral: ("npc.llama.male.llama"), + model_index: 8, + ), + leg_br: ( + offset: (-2.0, -3.0, -5.0), + lateral: ("npc.llama.male.llama"), + model_index: 8, + ), + foot_fl: ( + offset: (-1.5, -2.0, -8.0), + lateral: ("npc.llama.male.llama"), + model_index: 9, + ), + foot_fr: ( + offset: (-1.5, -2.0, -8.0), + lateral: ("npc.llama.male.llama"), + model_index: 9, + ), + foot_bl: ( + offset: (-1.5, -2.5, -9.0), + lateral: ("npc.llama.male.llama"), + model_index: 10, + ), + foot_br: ( + offset: (-1.5, -2.5, -9.0), + lateral: ("npc.llama.male.llama"), + model_index: 10, + ), + ), + (Alpaca, Male): ( + leg_fl: ( + offset: (-1.5, -2.5, -4.0), + lateral: ("npc.alpaca.male.leg_fr"), + ), + leg_fr: ( + offset: (-1.5, -2.5, -4.0), + lateral: ("npc.alpaca.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.5, -2.5, -4.5), + lateral: ("npc.alpaca.male.leg_br"), + ), + leg_br: ( + offset: (-2.5, -2.5, -4.5), + lateral: ("npc.alpaca.male.leg_br"), + ), + foot_fl: ( + offset: (-1.5, -2.0, -6.0), + lateral: ("npc.alpaca.male.foot_fr"), + ), + foot_fr: ( + offset: (-1.5, -2.0, -6.0), + lateral: ("npc.alpaca.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.0, -2.0, -6.0), + lateral: ("npc.alpaca.male.foot_br"), + ), + foot_br: ( + offset: (-2.0, -2.0, -6.0), + lateral: ("npc.alpaca.male.foot_br"), + ), + ), + (Alpaca, Female): ( + leg_fl: ( + offset: (-1.5, -2.5, -4.0), + lateral: ("npc.alpaca.male.leg_fr"), + ), + leg_fr: ( + offset: (-1.5, -2.5, -4.0), + lateral: ("npc.alpaca.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.5, -2.5, -4.5), + lateral: ("npc.alpaca.male.leg_br"), + ), + leg_br: ( + offset: (-2.5, -2.5, -4.5), + lateral: ("npc.alpaca.male.leg_br"), + ), + foot_fl: ( + offset: (-1.5, -2.0, -6.0), + lateral: ("npc.alpaca.male.foot_fr"), + ), + foot_fr: ( + offset: (-1.5, -2.0, -6.0), + lateral: ("npc.alpaca.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.0, -2.0, -6.0), + lateral: ("npc.alpaca.male.foot_br"), + ), + foot_br: ( + offset: (-2.0, -2.0, -6.0), + lateral: ("npc.alpaca.male.foot_br"), + ), + ), + (Akhlut, Male): ( + leg_fl: ( + offset: (-3.5, -4.5, -8.0), + lateral: ("npc.akhlut.male.leg_fr"), + ), + leg_fr: ( + offset: (-3.5, -4.5, -8.0), + lateral: ("npc.akhlut.male.leg_fr"), + ), + leg_bl: ( + offset: (-3.0, -6.0, -7.0), + lateral: ("npc.akhlut.male.leg_br"), + ), + leg_br: ( + offset: (-3.0, -6.0, -7.0), + lateral: ("npc.akhlut.male.leg_br"), + ), + foot_fl: ( + offset: (-4.0, -4.0, -10.0), + lateral: ("npc.akhlut.male.foot_fr"), + ), + foot_fr: ( + offset: (-4.0, -4.0, -10.0), + lateral: ("npc.akhlut.male.foot_fr"), + ), + foot_bl: ( + offset: (-3.5, -5.0, -9.0), + lateral: ("npc.akhlut.male.foot_br"), + ), + foot_br: ( + offset: (-3.5, -5.0, -9.0), + lateral: ("npc.akhlut.male.foot_br"), + ), + ), + (Akhlut, Female): ( + leg_fl: ( + offset: (-3.5, -4.5, -8.0), + lateral: ("npc.akhlut.male.leg_fr"), + ), + leg_fr: ( + offset: (-3.5, -4.5, -8.0), + lateral: ("npc.akhlut.male.leg_fr"), + ), + leg_bl: ( + offset: (-3.0, -6.0, -7.0), + lateral: ("npc.akhlut.male.leg_br"), + ), + leg_br: ( + offset: (-3.0, -6.0, -7.0), + lateral: ("npc.akhlut.male.leg_br"), + ), + foot_fl: ( + offset: (-4.0, -4.0, -10.0), + lateral: ("npc.akhlut.male.foot_fr"), + ), + foot_fr: ( + offset: (-4.0, -4.0, -10.0), + lateral: ("npc.akhlut.male.foot_fr"), + ), + foot_bl: ( + offset: (-3.5, -5.0, -9.0), + lateral: ("npc.akhlut.male.foot_br"), + ), + foot_br: ( + offset: (-3.5, -5.0, -9.0), + lateral: ("npc.akhlut.male.foot_br"), + ), + ), + (Bristleback, Male): ( + leg_fl: ( + offset: (-1.5, -2.0, -2.0), + lateral: ("npc.bristleback.male.leg_fr"), + ), + leg_fr: ( + offset: (-1.5, -2.0, -2.0), + lateral: ("npc.bristleback.male.leg_fr"), + ), + leg_bl: ( + offset: (-1.5, -2.0, -4.0), + lateral: ("npc.bristleback.male.leg_br"), + ), + leg_br: ( + offset: (-1.5, -2.0, -4.0), + lateral: ("npc.bristleback.male.leg_br"), + ), + foot_fl: ( + offset: (-1.5, -1.5, -5.0), + lateral: ("npc.bristleback.male.foot_fr"), + ), + foot_fr: ( + offset: (-1.5, -1.5, -5.0), + lateral: ("npc.bristleback.male.foot_fr"), + ), + foot_bl: ( + offset: (-1.0, -2.0, -5.0), + lateral: ("npc.bristleback.male.foot_br"), + ), + foot_br: ( + offset: (-1.0, -2.0, -5.0), + lateral: ("npc.bristleback.male.foot_br"), + ), + ), + (Bristleback, Female): ( + leg_fl: ( + offset: (-1.5, -2.0, -2.0), + lateral: ("npc.bristleback.male.leg_fr"), + ), + leg_fr: ( + offset: (-1.5, -2.0, -2.0), + lateral: ("npc.bristleback.male.leg_fr"), + ), + leg_bl: ( + offset: (-1.5, -2.0, -4.0), + lateral: ("npc.bristleback.male.leg_br"), + ), + leg_br: ( + offset: (-1.5, -2.0, -4.0), + lateral: ("npc.bristleback.male.leg_br"), + ), + foot_fl: ( + offset: (-1.5, -1.5, -5.0), + lateral: ("npc.bristleback.male.foot_fr"), + ), + foot_fr: ( + offset: (-1.5, -1.5, -5.0), + lateral: ("npc.bristleback.male.foot_fr"), + ), + foot_bl: ( + offset: (-1.0, -2.0, -5.0), + lateral: ("npc.bristleback.male.foot_br"), + ), + foot_br: ( + offset: (-1.0, -2.0, -5.0), + lateral: ("npc.bristleback.male.foot_br"), + ), + ), + (ClaySteed, Male): ( + leg_fl: ( + offset: (-2.0, -2.5, -6.0), + lateral: ("npc.claysteed.male.claysteed"), + model_index: 3, + ), + leg_fr: ( + offset: (-2.0, -2.5, -6.0), + lateral: ("npc.claysteed.male.claysteed"), + model_index: 3, + ), + leg_bl: ( + offset: (-2.5, -3.0, -5.0), + lateral: ("npc.claysteed.male.claysteed"), + model_index: 2, + ), + leg_br: ( + offset: (-2.5, -3.0, -5.0), + lateral: ("npc.claysteed.male.claysteed"), + model_index: 2, + ), + foot_fl: ( + offset: (-2.5, -2.5, -7.0), + lateral: ("npc.claysteed.male.claysteed"), + model_index: 1, + ), + foot_fr: ( + offset: (-2.5, -2.5, -7.0), + lateral: ("npc.claysteed.male.claysteed"), + model_index: 1, + ), + foot_bl: ( + offset: (-2.5, -2.5, -8.0), + lateral: ("npc.claysteed.male.claysteed"), + model_index: 0, + ), + foot_br: ( + offset: (-2.5, -2.5, -8.0), + lateral: ("npc.claysteed.male.claysteed"), + model_index: 0, + ), + ), + (ClaySteed, Female): ( + leg_fl: ( + offset: (-2.0, -2.5, -6.0), + lateral: ("npc.claysteed.male.claysteed"), + model_index: 3, + ), + leg_fr: ( + offset: (-2.0, -2.5, -6.0), + lateral: ("npc.claysteed.male.claysteed"), + model_index: 3, + ), + leg_bl: ( + offset: (-2.5, -3.0, -5.0), + lateral: ("npc.claysteed.male.claysteed"), + model_index: 2, + ), + leg_br: ( + offset: (-2.5, -3.0, -5.0), + lateral: ("npc.claysteed.male.claysteed"), + model_index: 2, + ), + foot_fl: ( + offset: (-2.5, -2.5, -7.0), + lateral: ("npc.claysteed.male.claysteed"), + model_index: 1, + ), + foot_fr: ( + offset: (-2.5, -2.5, -7.0), + lateral: ("npc.claysteed.male.claysteed"), + model_index: 1, + ), + foot_bl: ( + offset: (-2.5, -2.5, -8.0), + lateral: ("npc.claysteed.male.claysteed"), + model_index: 0, + ), + foot_br: ( + offset: (-2.5, -2.5, -8.0), + lateral: ("npc.claysteed.male.claysteed"), + model_index: 0, + ), + ), +}) diff --git a/assets/voxygen/voxel/quadruped_small_central_manifest.ron b/assets/voxygen/voxel/quadruped_small_central_manifest.ron new file mode 100644 index 0000000..8871f99 --- /dev/null +++ b/assets/voxygen/voxel/quadruped_small_central_manifest.ron @@ -0,0 +1,814 @@ +({ + (Pig, Male): ( + head: ( + offset: (-5.0, 0.0, -4.0), + central: ("npc.pig.male.head"), + ), + chest: ( + offset: (-5.0, -5.0, -3.5), + central: ("npc.pig.male.chest"), + ), + tail: ( + offset: (-2.0, -3.0, -0.0), + central: ("npc.pig.male.tail"), + ), + ), + (Pig, Female):( + head: ( + offset: (-5.0, 0.0, -4.0), + central: ("npc.pig.male.head"), + ), + chest: ( + offset: (-5.0, -5.0, -3.5), + central: ("npc.pig.male.chest"), + ), + tail: ( + offset: (-2.0, -3.0, -0.0), + central: ("npc.pig.male.tail"), + ), + ), + (Fox, Male):( + head: ( + offset: (-4.5, 0.0, -3.5), + central: ("npc.fox.male.head"), + ), + chest: ( + offset: (-2.5, -5.5, -2.5), + central: ("npc.fox.male.chest"), + ), + tail: ( + offset: (-1.5, -11.0, -6.0), + central: ("npc.fox.male.tail"), + ), + ), + (Fox, Female):( + head: ( + offset: (-4.5, 0.0, -3.5), + central: ("npc.fox.female.head"), + ), + chest: ( + offset: (-2.5, -5.5, -3.0), + central: ("npc.fox.female.chest"), + ), + tail: ( + offset: (-1.5, -11.0, -6.0), + central: ("npc.fox.female.tail"), + ), + ), + (Sheep, Male):( + head: ( + offset: (-5.0, 0.0, -5.0), + central: ("npc.sheep.male.head"), + ), + chest: ( + offset: (-5.0, -5.5, -3.5), + central: ("npc.sheep.male.chest"), + ), + tail: ( + offset: (-2.0, -2.0, -1.5), + central: ("npc.sheep.male.tail"), + ), + ), + (Sheep, Female):( + head: ( + offset: (-5.0, 0.0, -3.5), + central: ("npc.sheep.female.head"), + ), + chest: ( + offset: (-5.0, -5.5, -3.5), + central: ("npc.sheep.female.chest"), + ), + tail: ( + offset: (-2.0, -2.0, -1.5), + central: ("npc.sheep.female.tail"), + ), + ), + (Boar, Male):( + head: ( + offset: (-4.5, 0.0, -5.0), + central: ("npc.boar.male.head"), + ), + chest: ( + offset: (-4.5, -7.5, -5.5), + central: ("npc.boar.male.chest"), + ), + tail: ( + offset: (-1.5, -5.0, -7.0), + central: ("npc.boar.male.tail"), + ), + ), + (Boar, Female):( + head: ( + offset: (-4.5, 0.0, -4.5), + central: ("npc.boar.female.head"), + ), + chest: ( + offset: (-4.5, -7.5, -5.0), + central: ("npc.boar.female.chest"), + ), + tail: ( + offset: (-1.5, -5.0, -7.0), + central: ("npc.boar.female.tail"), + ), + ), + (Jackalope, Male):( + head: ( + offset: (-3.5, 0.0, -4.0), + central: ("npc.jackalope.male.head"), + ), + chest: ( + offset: (-2.5, -5.0, -3.5), + central: ("npc.jackalope.male.chest"), + ), + tail: ( + offset: (-1.5, -2.0, -3.0), + central: ("npc.jackalope.male.tail"), + ), + ), + (Jackalope, Female):( + head: ( + offset: (-3.5, 0.0, -4.0), + central: ("npc.jackalope.male.head"), + ), + chest: ( + offset: (-2.5, -5.0, -3.5), + central: ("npc.jackalope.male.chest"), + ), + tail: ( + offset: (-1.5, -2.0, -3.0), + central: ("npc.jackalope.male.tail"), + ), + ), + (Skunk, Male):( + head: ( + offset: (-3.0,0.0, -2.5), + central: ("npc.skunk.male.head"), + ), + chest: ( + offset: (-4.0, -5.5, -3.0), + central: ("npc.skunk.male.chest"), + ), + tail: ( + offset: (-5.0, -11.0, -4.0), + central: ("npc.skunk.male.tail"), + ), + ), + (Skunk, Female):( + head: ( + offset: (-3.0, 0.0, -2.5), + central: ("npc.skunk.male.head"), + ), + chest: ( + offset: (-4.0, -5.5, -3.0), + central: ("npc.skunk.male.chest"), + ), + tail: ( + offset: (-5.0, -11.0, -4.0), + central: ("npc.skunk.male.tail"), + ), + ), + (Cat, Male):( + head: ( + offset: (-4.5, 0.0, -3.5), + central: ("npc.cat.male.head"), + ), + chest: ( + offset: (-2.5, -4.5, -2.0), + central: ("npc.cat.male.chest"), + ), + tail: ( + offset: (-0.5, -7.0, -5.0), + central: ("npc.cat.male.tail"), + ), + ), + (Cat, Female):( + head: ( + offset: (-4.5, 0.0, -3.5), + central: ("npc.cat.female.head"), + ), + chest: ( + offset: (-2.5, -4.5, -2.0), + central: ("npc.cat.female.chest"), + ), + tail: ( + offset: (-0.5, -7.0, -5.0), + central: ("npc.cat.female.tail"), + ), + ), + (Batfox, Male):( + head: ( + offset: (-7.5, 0.0, -3.0), + central: ("npc.batfox.male.head"), + ), + chest: ( + offset: (-2.5, -7.0, -3.0), + central: ("npc.batfox.male.chest"), + ), + tail: ( + offset: (-1.5, -7.5, -2.5), + central: ("armor.empty"), + ), + ), + (Batfox, Female):( + head: ( + offset: (-7.5, 0.0, -3.0), + central: ("npc.batfox.male.head"), + ), + chest: ( + offset: (-2.5, -7.0, -3.0), + central: ("npc.batfox.male.chest"), + ), + tail: ( + offset: (-1.5, -7.5, -2.5), + central: ("armor.empty"), + ), + ), + (Raccoon, Male):( + head: ( + offset: (-5.0, 0.0, -4.0), + central: ("npc.raccoon.male.head"), + ), + chest: ( + offset: (-4.0, -6.0, -3.5), + central: ("npc.raccoon.male.chest"), + ), + tail: ( + offset: (-2.0, -11.0, -2.5), + central: ("npc.raccoon.male.tail"), + ), + ), + (Raccoon, Female):( + head: ( + offset: (-5.0, 0.0, -4.0), + central: ("npc.raccoon.male.head"), + ), + chest: ( + offset: (-4.0, -6.0, -3.5), + central: ("npc.raccoon.male.chest"), + ), + tail: ( + offset: (-2.0, -11.0, -2.5), + central: ("npc.raccoon.male.tail"), + ), + ), + (Quokka, Male):( + head: ( + offset: (-4.5, 0.0, -3.5), + central: ("npc.quokka.male.head"), + ), + chest: ( + offset: (-3.5, -6.5, -4.0), + central: ("npc.quokka.male.chest"), + ), + tail: ( + offset: (-1.5, -8.0, -3.5), + central: ("npc.quokka.male.tail"), + ), + ), + (Quokka, Female):( + head: ( + offset: (-4.5, 0.0, -3.5), + central: ("npc.quokka.male.head"), + ), + chest: ( + offset: (-3.5, -6.5, -4.0), + central: ("npc.quokka.male.chest"), + ), + tail: ( + offset: (-1.5, -8.0, -3.5), + central: ("npc.quokka.male.tail"), + ), + ), + (Holladon, Male):( + head: ( + offset: (-3.5, 0.0, -4.0), + central: ("npc.holladon.male.head"), + ), + chest: ( + offset: (-4.5, -8.0, -5.0), + central: ("npc.holladon.male.chest"), + ), + tail: ( + offset: (-1.5, -7.5, -2.5), + central: ("armor.empty"), + ), + ), + (Holladon, Female):( + head: ( + offset: (-3.5, 0.0, -4.0), + central: ("npc.holladon.male.head"), + ), + chest: ( + offset: (-4.5, -8.0, -5.0), + central: ("npc.holladon.male.chest"), + ), + tail: ( + offset: (-1.5, -7.5, -2.5), + central: ("armor.empty"), + ), + ), + (Hyena, Male):( + head: ( + offset: (-4.0, 0.0, -4.0), + central: ("npc.hyena.male.head"), + ), + chest: ( + offset: (-3.0, -8.0, -4.5), + central: ("npc.hyena.male.chest"), + ), + tail: ( + offset: (-1.0, -4.0, -6.0), + central: ("npc.hyena.male.tail"), + ), + ), + (Hyena, Female):( + head: ( + offset: (-4.0, 0.0, -4.0), + central: ("npc.hyena.male.head"), + ), + chest: ( + offset: (-3.0, -8.0, -4.5), + central: ("npc.hyena.male.chest"), + ), + tail: ( + offset: (-1.0, -4.0, -6.0), + central: ("npc.hyena.male.tail"), + ), + ), + (Rabbit, Male):( + head: ( + offset: (-3.5, 0.0, -3.0), + central: ("npc.rabbit.male.head"), + ), + chest: ( + offset: (-2.5, -5.5, -3.0), + central: ("npc.rabbit.male.chest"), + ), + tail: ( + offset: (-1.5, -2.0, -1.0), + central: ("npc.rabbit.male.tail"), + ), + ), + (Rabbit, Female):( + head: ( + offset: (-3.5, 0.0, -3.0), + central: ("npc.rabbit.male.head"), + ), + chest: ( + offset: (-2.5, -5.5, -3.0), + central: ("npc.rabbit.male.chest"), + ), + tail: ( + offset: (-1.5, -2.0, -1.0), + central: ("npc.rabbit.male.tail"), + ), + ), + (Truffler, Male):( + head: ( + offset: (-8.5, 0.0, -4.5), + central: ("npc.truffler.male.head"), + ), + chest: ( + offset: (-10.5, -11.0, -15.0), + central: ("npc.truffler.male.chest"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + ), + (Truffler, Female):( + head: ( + offset: (-8.5, 0.0, -4.5), + central: ("npc.truffler.male.head"), + ), + chest: ( + offset: (-10.5, -11.0, -15.0), + central: ("npc.truffler.male.chest"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + ), + (Frog, Male):( + head: ( + offset: (-3.5, 0.0, -3.0), + central: ("npc.frog.male.head"), + ), + chest: ( + offset: (-3.5, -5.0, -3.0), + central: ("npc.frog.male.chest"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + ), + (Frog, Female):( + head: ( + offset: (-3.5, 0.0, -3.0), + central: ("npc.frog.male.head"), + ), + chest: ( + offset: (-3.5, -5.0, -3.0), + central: ("npc.frog.male.chest"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + ), + (Rat, Male):( + head: ( + offset: (-4.5, 0.0, -3.0), + central: ("npc.rat.male.head"), + ), + chest: ( + offset: (-3.5, -5.5, -3.5), + central: ("npc.rat.male.chest"), + ), + tail: ( + offset: (-0.5, -12.0, -3.0), + central: ("npc.rat.male.tail"), + ), + ), + (Rat, Female):( + head: ( + offset: (-4.5, 0.0, -3.0), + central: ("npc.rat.male.head"), + ), + chest: ( + offset: (-3.5, -5.5, -3.5), + central: ("npc.rat.male.chest"), + ), + tail: ( + offset: (-0.5, -12.0, -3.0), + central: ("npc.rat.male.tail"), + ), + ), + (Axolotl, Male):( + head: ( + offset: (-5.5, 0.0, -3.0), + central: ("npc.axolotl.male.head"), + ), + chest: ( + offset: (-2.5, -5.0, -2.5), + central: ("npc.axolotl.male.chest"), + ), + tail: ( + offset: (-1.5, -10.0, -2.5), + central: ("npc.axolotl.male.tail"), + ), + ), + (Axolotl, Female):( + head: ( + offset: (-5.5, 0.0, -3.0), + central: ("npc.axolotl.male.head"), + ), + chest: ( + offset: (-2.5, -5.0, -3.5), + central: ("npc.axolotl.male.chest"), + ), + tail: ( + offset: (-1.5, -10.0, -2.5), + central: ("npc.axolotl.male.tail"), + ), + ), + (Gecko, Male):( + head: ( + offset: (-2.5, 0.0, -2.0), + central: ("npc.gecko.male.head"), + ), + chest: ( + offset: (-2.5, -5.0, -1.5), + central: ("npc.gecko.male.chest"), + ), + tail: ( + offset: (-1.5, -12.0, -1.5), + central: ("npc.gecko.male.tail"), + ), + ), + (Gecko, Female):( + head: ( + offset: (-2.5, 0.0, -2.0), + central: ("npc.gecko.male.head"), + ), + chest: ( + offset: (-2.5, -5.0, -1.5), + central: ("npc.gecko.male.chest"), + ), + tail: ( + offset: (-1.5, -12.0, -1.5), + central: ("npc.gecko.male.tail"), + ), + ), + (Turtle, Male):( + head: ( + offset: (-2.5, 0.0, -1.5), + central: ("npc.turtle.male.head"), + ), + chest: ( + offset: (-6.5, -7.0, -4.0), + central: ("npc.turtle.male.chest"), + ), + tail: ( + offset: (-1.5, -6.0, -1.0), + central: ("npc.turtle.male.tail"), + ), + ), + (Turtle, Female):( + head: ( + offset: (-2.5, 0.0, -1.5), + central: ("npc.turtle.male.head"), + ), + chest: ( + offset: (-6.5, -7.0, -4.0), + central: ("npc.turtle.male.chest"), + ), + tail: ( + offset: (-1.5, -6.0, -1.0), + central: ("npc.turtle.male.tail"), + ), + ), + (Squirrel, Male):( + head: ( + offset: (-2.5, 0.0, -2.5), + central: ("npc.squirrel.male.head"), + ), + chest: ( + offset: (-2.5, -4.0, -2.5), + central: ("npc.squirrel.male.chest"), + ), + tail: ( + offset: (-2.5, -8.0, -2.0), + central: ("npc.squirrel.male.tail"), + ), + ), + (Squirrel, Female):( + head: ( + offset: (-2.5, 0.0, -2.5), + central: ("npc.squirrel.male.head"), + ), + chest: ( + offset: (-2.5, -4.0, -2.5), + central: ("npc.squirrel.male.chest"), + ), + tail: ( + offset: (-2.5, -8.0, -2.0), + central: ("npc.squirrel.male.tail"), + ), + ), + (Fungome, Male):( + head: ( + offset: (-3.0, 0.0, -2.0), + central: ("npc.fungome.male.head"), + ), + chest: ( + offset: (-7.0, -7.0, -4.0), + central: ("npc.fungome.male.chest"), + ), + tail: ( + offset: (-1.0, -5.0, -1.0), + central: ("npc.fungome.male.tail"), + ), + ), + (Fungome, Female):( + head: ( + offset: (-3.0, 0.0, -2.0), + central: ("npc.fungome.male.head"), + ), + chest: ( + offset: (-7.0, -7.0, -4.0), + central: ("npc.fungome.male.chest"), + ), + tail: ( + offset: (-1.0, -5.0, -1.0), + central: ("npc.fungome.male.tail"), + ), + ), + (Porcupine, Male):( + head: ( + offset: (-2.5, 0.0, -7.0), + central: ("npc.porcupine.male.head"), + ), + chest: ( + offset: (-7.5, -10.0, -8.0), + central: ("npc.porcupine.male.chest"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + ), + (Porcupine, Female):( + head: ( + offset: (-2.5, 0.0, -7.0), + central: ("npc.porcupine.male.head"), + ), + chest: ( + offset: (-7.5, -10.0, -8.0), + central: ("npc.porcupine.male.chest"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + ), + (Beaver, Male):( + head: ( + offset: (-4.0, 0.0, -3.0), + central: ("npc.beaver.male.head"), + ), + chest: ( + offset: (-4.0, -6.0, -4.0), + central: ("npc.beaver.male.chest"), + ), + tail: ( + offset: (-3.0, -9.0, -2.0), + central: ("npc.beaver.male.tail"), + ), + ), + (Beaver, Female):( + head: ( + offset: (-4.0, 0.0, -3.0), + central: ("npc.beaver.male.head"), + ), + chest: ( + offset: (-4.0, -6.0, -4.0), + central: ("npc.beaver.male.chest"), + ), + tail: ( + offset: (-3.0, -9.0, -2.0), + central: ("npc.beaver.male.tail"), + ), + ), + (Hare, Male):( + head: ( + offset: (-3.5, 0.0, -3.0), + central: ("npc.hare.male.head"), + ), + chest: ( + offset: (-2.5, -5.0, -3.0), + central: ("npc.hare.male.chest"), + ), + tail: ( + offset: (-1.5, -11.0, -2.0), + central: ("npc.hare.male.tail"), + ), + ), + (Hare, Female):( + head: ( + offset: (-3.5, 0.0, -3.0), + central: ("npc.hare.female.head"), + ), + chest: ( + offset: (-3.5, -6.5, -4.0), + central: ("npc.hare.female.chest"), + ), + tail: ( + offset: (-2.5, -5.0, -3.0), + central: ("npc.hare.female.tail"), + ), + ), + (Dog, Male):( + head: ( + offset: (-3.5, 0.0, -4.0), + central: ("npc.dog.male.head"), + ), + chest: ( + offset: (-2.5, -5.5, -3.5), + central: ("npc.dog.male.chest"), + ), + tail: ( + offset: (-1.5, -7.0, -1.0), + central: ("npc.dog.male.tail"), + ), + ), + (Dog, Female):( + head: ( + offset: (-3.5, 0.0, -4.0), + central: ("npc.dog.female.head"), + ), + chest: ( + offset: (-2.5, -5.5, -3.5), + central: ("npc.dog.female.chest"), + ), + tail: ( + offset: (-1.5, -7.0, -1.0), + central: ("npc.dog.female.tail"), + ), + ), + (Goat, Male):( + head: ( + offset: (-6.0, 0.0, -5.5), + central: ("npc.goat.male.head"), + ), + chest: ( + offset: (-4.0, -5.5, -3.5), + central: ("npc.goat.male.chest"), + ), + tail: ( + offset: (-1.0, -2.0, -1.5), + central: ("npc.goat.male.tail"), + ), + ), + (Goat, Female):( + head: ( + offset: (-6.0, 0.0, -5.5), + central: ("npc.goat.male.head"), + ), + chest: ( + offset: (-4.0, -5.5, -3.5), + central: ("npc.goat.male.chest"), + ), + tail: ( + offset: (-1.0, -2.0, -1.5), + central: ("npc.goat.male.tail"), + ), + ), + (Seal, Male):( + head: ( + offset: (-3.0, 0.0, -3.5), + central: ("npc.seal.male.head"), + ), + chest: ( + offset: (-4.0, -8.0, -4.0), + central: ("npc.seal.male.chest"), + ), + tail: ( + offset: (-1.5, -7.5, -2.5), + central: ("armor.empty"), + ), + ), + (Seal, Female):( + head: ( + offset: (-3.0, 0.0, -3.5), + central: ("npc.seal.male.head"), + ), + chest: ( + offset: (-4.0, -8.0, -4.0), + central: ("npc.seal.male.chest"), + ), + tail: ( + offset: (-1.5, -7.5, -2.5), + central: ("armor.empty"), + ), + ), + (TreantSapling, Male):( + head: ( + offset: (-2.5, 0.0, -1.5), + central: ("armor.empty"), + ), + chest: ( + offset: (-8.5, -6.0, -11.5), + central: ("npc.treant_sapling.male.chest"), + ), + tail: ( + offset: (-1.5, -6.0, -1.0), + central: ("armor.empty"), + ), + ), + (TreantSapling, Female):( + head: ( + offset: (-2.5, 0.0, -1.5), + central: ("armor.empty"), + ), + chest: ( + offset: (-8.5, -6.0, -11.5), + central: ("npc.treant_sapling.male.chest"), + ), + tail: ( + offset: (-1.5, -6.0, -1.0), + central: ("armor.empty"), + ), + ), + (MossySnail, Male):( + head: ( + offset: (-3.0, 0.0, -7.0), + central: ("npc.mossy_snail.male.head"), + ), + chest: ( + offset: (-5.0, -6.5, -4.5), + central: ("npc.mossy_snail.male.chest"), + ), + tail: ( + offset: (-1.5, -6.0, -1.0), + central: ("armor.empty"), + ), + ), + (MossySnail, Female):( + head: ( + offset: (-3.0, 0.0, -7.0), + central: ("npc.mossy_snail.male.head"), + ), + chest: ( + offset: (-5.0, -6.5, -4.5), + central: ("npc.mossy_snail.male.chest"), + ), + tail: ( + offset: (-1.5, -6.0, -1.0), + central: ("armor.empty"), + ), + ), +}) \ No newline at end of file diff --git a/assets/voxygen/voxel/quadruped_small_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_small_lateral_manifest.ron new file mode 100644 index 0000000..3888f34 --- /dev/null +++ b/assets/voxygen/voxel/quadruped_small_lateral_manifest.ron @@ -0,0 +1,1048 @@ +({ + (Pig, Male): ( + left_front: ( + offset: (-1.0, -1.5, -5.0), + lateral: ("npc.pig.male.foot_fr"), + ), + right_front: ( + offset: (-1.0, -1.5, -5.0), + lateral: ("npc.pig.male.foot_fr"), + ), + left_back: ( + offset: (-1.0, -2.0, -6.0), + lateral: ("npc.pig.male.foot_br"), + ), + right_back: ( + offset: (-1.0, -2.0, -6.0), + lateral: ("npc.pig.male.foot_br"), + ), + ), + (Pig, Female): ( + left_front: ( + offset: (-1.0, -1.5, -5.0), + lateral: ("npc.pig.male.foot_fr"), + ), + right_front: ( + offset: (-1.0, -1.5, -5.0), + lateral: ("npc.pig.male.foot_fr"), + ), + left_back: ( + offset: (-1.0, -2.0, -6.0), + lateral: ("npc.pig.male.foot_br"), + ), + right_back: ( + offset: (-1.0, -2.0, -6.0), + lateral: ("npc.pig.male.foot_br"), + ), + ), + (Fox, Male): ( + left_front: ( + offset: (-1.0, -2.0, -2.5), + lateral: ("npc.fox.male.foot_fr"), + ), + right_front: ( + offset: (-1.0, -2.0, -2.5), + lateral: ("npc.fox.male.foot_fr"), + ), + left_back: ( + offset: (-1.0, -2.0, -5.0), + lateral: ("npc.fox.male.foot_br"), + ), + right_back: ( + offset: (-1.0, -2.0, -5.0), + lateral: ("npc.fox.male.foot_br"), + ), + ), + (Fox, Female): ( + left_front: ( + offset: (-1.0, -2.0, -2.5), + lateral: ("npc.fox.female.foot_fr"), + ), + right_front: ( + offset: (-1.0, -2.0, -2.5), + lateral: ("npc.fox.female.foot_fr"), + ), + left_back: ( + offset: (-1.0, -2.0, -5.0), + lateral: ("npc.fox.female.foot_br"), + ), + right_back: ( + offset: (-1.0, -2.0, -5.0), + lateral: ("npc.fox.female.foot_br"), + ), + ), + (Sheep, Male): ( + left_front: ( + offset: (-1.0, -1.5, -5.0), + lateral: ("npc.sheep.male.foot_fr"), + ), + right_front: ( + offset: (-1.0, -1.5, -5.0), + lateral: ("npc.sheep.male.foot_fr"), + ), + left_back: ( + offset: (-1.0, -1.5, -5.5), + lateral: ("npc.sheep.male.foot_br"), + ), + right_back: ( + offset: (-1.0, -1.5, -5.5), + lateral: ("npc.sheep.male.foot_br"), + ), + ), + (Sheep, Female): ( + left_front: ( + offset: (-1.0, -1.5, -5.0), + lateral: ("npc.sheep.female.foot_fr"), + ), + right_front: ( + offset: (-1.0, -1.5, -5.0), + lateral: ("npc.sheep.female.foot_fr"), + ), + left_back: ( + offset: (-1.0, -1.5, -5.5), + lateral: ("npc.sheep.female.foot_br"), + ), + right_back: ( + offset: (-1.0, -1.5, -5.5), + lateral: ("npc.sheep.female.foot_br"), + ), + ), + (Boar, Male): ( + left_front: ( + offset: (-1.5, -2.5, -4.0), + lateral: ("npc.boar.male.foot_fr"), + ), + right_front: ( + offset: (-1.5, -2.5, -4.0), + lateral: ("npc.boar.male.foot_fr"), + ), + left_back: ( + offset: (-1.5, -2.0, -7.0), + lateral: ("npc.boar.male.foot_br"), + ), + right_back: ( + offset: (-1.5, -2.0, -7.0), + lateral: ("npc.boar.male.foot_br"), + ), + ), + (Boar, Female): ( + left_front: ( + offset: (-1.5, -2.5, -4.0), + lateral: ("npc.boar.female.foot_fr"), + ), + right_front: ( + offset: (-1.5, -2.5, -4.0), + lateral: ("npc.boar.female.foot_fr"), + ), + left_back: ( + offset: (-1.5, -2.0, -7.0), + lateral: ("npc.boar.female.foot_br"), + ), + right_back: ( + offset: (-1.5, -2.0, -7.0), + lateral: ("npc.boar.female.foot_br"), + ), + ), + (Jackalope, Male): ( + left_front: ( + offset: (-1.0, -2.0, -4.0), + lateral: ("npc.jackalope.male.foot_fr"), + ), + right_front: ( + offset: (-1.0, -2.0, -4.0), + lateral: ("npc.jackalope.male.foot_fr"), + ), + left_back: ( + offset: (-1.5, -2.5, -6.0), + lateral: ("npc.jackalope.male.foot_br"), + ), + right_back: ( + offset: (-1.5, -2.5, -6.0), + lateral: ("npc.jackalope.male.foot_br"), + ), + ), + (Jackalope, Female): ( + left_front: ( + offset: (-1.0, -2.0, -4.0), + lateral: ("npc.jackalope.male.foot_fr"), + ), + right_front: ( + offset: (-1.0, -2.0, -4.0), + lateral: ("npc.jackalope.male.foot_fr"), + ), + left_back: ( + offset: (-1.5, -2.5, -6.0), + lateral: ("npc.jackalope.male.foot_br"), + ), + right_back: ( + offset: (-1.5, -2.5, -6.0), + lateral: ("npc.jackalope.male.foot_br"), + ), + ), + (Skunk, Male): ( + left_front: ( + offset: (-1.5, -2.0, -4.5), + lateral: ("npc.skunk.male.foot_fr"), + ), + right_front: ( + offset: (-1.5, -2.0, -4.5), + lateral: ("npc.skunk.male.foot_fr"), + ), + left_back: ( + offset: (-1.0, -1.0, -3.5), + lateral: ("npc.skunk.male.foot_br"), + ), + right_back: ( + offset: (-1.0, -1.0, -3.5), + lateral: ("npc.skunk.male.foot_br"), + ), + ), + (Skunk, Female): ( + left_front: ( + offset: (-1.5, -2.0, -4.5), + lateral: ("npc.skunk.male.foot_fr"), + ), + right_front: ( + offset: (-1.5, -2.0, -4.5), + lateral: ("npc.skunk.male.foot_fr"), + ), + left_back: ( + offset: (-1.5, -2.0, -4.5), + lateral: ("npc.skunk.male.foot_br"), + ), + right_back: ( + offset: (-1.5, -2.0, -4.5), + lateral: ("npc.skunk.male.foot_br"), + ), + + ), + (Cat, Male): ( + left_front: ( + offset: (-1.0, -1.5, -5.0), + lateral: ("npc.cat.male.foot_fr"), + ), + right_front: ( + offset: (-1.0, -1.5, -5.0), + lateral: ("npc.cat.male.foot_fr"), + ), + left_back: ( + offset: (-1.0, -1.5, -5.0), + lateral: ("npc.cat.male.foot_br"), + ), + right_back: ( + offset: (-1.0, -1.5, -5.0), + lateral: ("npc.cat.male.foot_br"), + ), + ), + (Cat, Female): ( + left_front: ( + offset: (-1.0, -1.5, -5.0), + lateral: ("npc.cat.female.foot_fr"), + ), + right_front: ( + offset: (-1.0, -1.5, -5.0), + lateral: ("npc.cat.female.foot_fr"), + ), + left_back: ( + offset: (-1.0, -1.5, -5.0), + lateral: ("npc.cat.female.foot_br"), + ), + right_back: ( + offset: (-1.0, -1.5, -5.0), + lateral: ("npc.cat.female.foot_br"), + ), + + ), + (Batfox, Male): ( + left_front: ( + offset: (-2.0, -2.5, -5.0), + lateral: ("npc.batfox.male.foot_fr"), + ), + right_front: ( + offset: (-2.0, -2.5, -5.0), + lateral: ("npc.batfox.male.foot_fr"), + ), + left_back: ( + offset: (-1.5, -2.0, -5.0), + lateral: ("npc.batfox.male.foot_br"), + ), + right_back: ( + offset: (-1.5, -2.0, -5.0), + lateral: ("npc.batfox.male.foot_br"), + ), + ), + (Batfox, Female): ( + left_front: ( + offset: (-2.0, -2.5, -5.0), + lateral: ("npc.batfox.male.foot_fr"), + ), + right_front: ( + offset: (-2.0, -2.5, -5.0), + lateral: ("npc.batfox.male.foot_fr"), + ), + left_back: ( + offset: (-1.5, -2.0, -5.0), + lateral: ("npc.batfox.male.foot_br"), + ), + right_back: ( + offset: (-1.5, -2.0, -5.0), + lateral: ("npc.batfox.male.foot_br"), + ), + ), + (Raccoon, Male): ( + left_front: ( + offset: (-1.5, -2.0, -5.5), + lateral: ("npc.raccoon.male.foot_fr"), + ), + right_front: ( + offset: (-1.5, -2.0, -5.5), + lateral: ("npc.raccoon.male.foot_fr"), + ), + left_back: ( + offset: (-2.0, -2.5, -6.0), + lateral: ("npc.raccoon.male.foot_br"), + ), + right_back: ( + offset: (-2.0, -2.5, -6.0), + lateral: ("npc.raccoon.male.foot_br"), + ), + ), + (Raccoon, Female): ( + left_front: ( + offset: (-1.5, -2.0, -5.5), + lateral: ("npc.raccoon.male.foot_fr"), + ), + right_front: ( + offset: (-1.5, -2.0, -5.5), + lateral: ("npc.raccoon.male.foot_fr"), + ), + left_back: ( + offset: (-2.0, -2.5, -6.0), + lateral: ("npc.raccoon.male.foot_br"), + ), + right_back: ( + offset: (-2.0, -2.5, -6.0), + lateral: ("npc.raccoon.male.foot_br"), + ), + ), + (Quokka, Male): ( + left_front: ( + offset: (-1.0, -1.5, -5.5), + lateral: ("npc.quokka.male.foot_fr"), + ), + right_front: ( + offset: (-1.0, -1.5, -5.5), + lateral: ("npc.quokka.male.foot_fr"), + ), + left_back: ( + offset: (-1.0, -2.5, -5.5), + lateral: ("npc.quokka.male.foot_br"), + ), + right_back: ( + offset: (-1.0, -2.5, -5.5), + lateral: ("npc.quokka.male.foot_br"), + ), + ), + (Quokka, Female): ( + left_front: ( + offset: (-1.0, -1.5, -5.5), + lateral: ("npc.quokka.male.foot_fr"), + ), + right_front: ( + offset: (-1.0, -1.5, -5.5), + lateral: ("npc.quokka.male.foot_fr"), + ), + left_back: ( + offset: (-1.0, -2.5, -5.5), + lateral: ("npc.quokka.male.foot_br"), + ), + right_back: ( + offset: (-1.0, -2.5, -5.5), + lateral: ("npc.quokka.male.foot_br"), + ), + ), + (Holladon, Male): ( + left_front: ( + offset: (-1.0, -2.5, -6.0), + lateral: ("npc.holladon.male.foot_fr"), + ), + right_front: ( + offset: (-1.0, -2.5, -6.0), + lateral: ("npc.holladon.male.foot_fr"), + ), + left_back: ( + offset: (-1.0, -2.0, -5.5), + lateral: ("npc.holladon.male.foot_br"), + ), + right_back: ( + offset: (-1.0, -2.0, -5.5), + lateral: ("npc.holladon.male.foot_br"), + ), + ), + (Holladon, Female): ( + left_front: ( + offset: (-1.0, -2.5, -6.0), + lateral: ("npc.holladon.male.foot_fr"), + ), + right_front: ( + offset: (-1.0, -2.5, -6.0), + lateral: ("npc.holladon.male.foot_fr"), + ), + left_back: ( + offset: (-1.0, -2.0, -5.5), + lateral: ("npc.holladon.male.foot_br"), + ), + right_back: ( + offset: (-1.0, -2.0, -5.5), + lateral: ("npc.holladon.male.foot_br"), + ), + ), + (Hyena, Male): ( + left_front: ( + offset: (-1.5, -2.0, -5.0), + lateral: ("npc.hyena.male.foot_fr"), + ), + right_front: ( + offset: (-1.5, -2.0, -5.0), + lateral: ("npc.hyena.male.foot_fr"), + ), + left_back: ( + offset: (-1.5, -2.0, -6.5), + lateral: ("npc.hyena.male.foot_br"), + ), + right_back: ( + offset: (-1.5, -2.0, -6.5), + lateral: ("npc.hyena.male.foot_br"), + ), + ), + (Hyena, Female): ( + left_front: ( + offset: (-1.5, -2.0, -5.0), + lateral: ("npc.hyena.male.foot_fr"), + ), + right_front: ( + offset: (-1.5, -2.0, -5.0), + lateral: ("npc.hyena.male.foot_fr"), + ), + left_back: ( + offset: (-1.5, -2.0, -6.5), + lateral: ("npc.hyena.male.foot_br"), + ), + right_back: ( + offset: (-1.5, -2.0, -6.5), + lateral: ("npc.hyena.male.foot_br"), + ), + ), + (Rabbit, Male): ( + left_front: ( + offset: (-1.5, -0.0, -2.0), + lateral: ("npc.rabbit.male.foot_fr"), + ), + right_front: ( + offset: (-1.5, -0.0, -2.0), + lateral: ("npc.rabbit.male.foot_fr"), + ), + left_back: ( + offset: (-1.5, -3.0, -4.0), + lateral: ("npc.rabbit.male.foot_br"), + ), + right_back: ( + offset: (-1.5, -3.0, -4.0), + lateral: ("npc.rabbit.male.foot_br"), + ), + ), + (Rabbit, Female): ( + left_front: ( + offset: (-1.5, -0.0, -2.0), + lateral: ("npc.rabbit.male.foot_fr"), + ), + right_front: ( + offset: (-1.5, -0.0, -2.0), + lateral: ("npc.rabbit.male.foot_fr"), + ), + left_back: ( + offset: (-1.5, -3.0, -4.0), + lateral: ("npc.rabbit.male.foot_br"), + ), + right_back: ( + offset: (-1.5, -3.0, -4.0), + lateral: ("npc.rabbit.male.foot_br"), + ), + ), + (Truffler, Male): ( + left_front: ( + offset: (-2.5, -3.0, -6.5), + lateral: ("npc.truffler.male.foot_fr"), + ), + right_front: ( + offset: (-2.5, -3.0, -6.5), + lateral: ("npc.truffler.male.foot_fr"), + ), + left_back: ( + offset: (-2.5, -3.0, -6.5), + lateral: ("npc.truffler.male.foot_br"), + ), + right_back: ( + offset: (-2.5, -3.0, -6.5), + lateral: ("npc.truffler.male.foot_br"), + ), + ), + (Truffler, Female): ( + left_front: ( + offset: (-2.5, -3.0, -6.5), + lateral: ("npc.truffler.male.foot_fr"), + ), + right_front: ( + offset: (-2.5, -3.0, -6.5), + lateral: ("npc.truffler.male.foot_fr"), + ), + left_back: ( + offset: (-2.5, -3.0, -6.5), + lateral: ("npc.truffler.male.foot_br"), + ), + right_back: ( + offset: (-2.5, -3.0, -6.5), + lateral: ("npc.truffler.male.foot_br"), + ), + ), + (Frog, Male): ( + left_front: ( + offset: (-2.5, -2.5, -4.0), + lateral: ("npc.frog.male.foot_fr"), + ), + right_front: ( + offset: (-2.5, -2.5, -4.0), + lateral: ("npc.frog.male.foot_fr"), + ), + left_back: ( + offset: (-2.5, -3.5, -4.0), + lateral: ("npc.frog.male.foot_br"), + ), + right_back: ( + offset: (-2.5, -3.5, -4.0), + lateral: ("npc.frog.male.foot_br"), + ), + ), + (Frog, Female): ( + left_front: ( + offset: (-2.5, -2.5, -4.0), + lateral: ("npc.frog.male.foot_fr"), + ), + right_front: ( + offset: (-2.5, -2.5, -4.0), + lateral: ("npc.frog.male.foot_fr"), + ), + left_back: ( + offset: (-2.5, -3.5, -4.0), + lateral: ("npc.frog.male.foot_br"), + ), + right_back: ( + offset: (-2.5, -3.5, -4.0), + lateral: ("npc.frog.male.foot_br"), + ), + ), + (Rat, Male): ( + left_front: ( + offset: (-1.5, -2.0, -4.0), + lateral: ("npc.rat.male.foot_fr"), + ), + right_front: ( + offset: (-1.5, -2.0, -4.0), + lateral: ("npc.rat.male.foot_fr"), + ), + left_back: ( + offset: (-1.5, -2.5, -6.0), + lateral: ("npc.rat.male.foot_br"), + ), + right_back: ( + offset: (-1.5, -2.5, -6.0), + lateral: ("npc.rat.male.foot_br"), + ), + ), + (Rat, Female): ( + left_front: ( + offset: (-1.5, -2.0, -4.0), + lateral: ("npc.rat.male.foot_fr"), + ), + right_front: ( + offset: (-1.5, -2.0, -4.0), + lateral: ("npc.rat.male.foot_fr"), + ), + left_back: ( + offset: (-1.5, -2.5, -6.0), + lateral: ("npc.rat.male.foot_br"), + ), + right_back: ( + offset: (-1.5, -2.5, -6.0), + lateral: ("npc.rat.male.foot_br"), + ), + ), + (Axolotl, Male): ( + left_front: ( + offset: (-5.5, -0.5, -3.0), + lateral: ("npc.axolotl.male.foot_fr"), + ), + right_front: ( + offset: (-0.5, -0.5, -3.0), + lateral: ("npc.axolotl.male.foot_fr"), + ), + left_back: ( + offset: (-5.5, -3.5, -3.0), + lateral: ("npc.axolotl.male.foot_br"), + ), + right_back: ( + offset: (-0.5, -3.5, -3.0), + lateral: ("npc.axolotl.male.foot_br"), + ), + ), + (Axolotl, Female): ( + left_front: ( + offset: (-5.5, -0.5, -3.0), + lateral: ("npc.axolotl.male.foot_fr"), + ), + right_front: ( + offset: (-0.5, -0.5, -3.0), + lateral: ("npc.axolotl.male.foot_fr"), + ), + left_back: ( + offset: (-5.5, -3.5, -3.0), + lateral: ("npc.axolotl.male.foot_br"), + ), + right_back: ( + offset: (-0.5, -3.5, -3.0), + lateral: ("npc.axolotl.male.foot_br"), + ), + ), + (Gecko, Male): ( + left_front: ( + offset: (-5.5, -1.0, -3.5), + lateral: ("npc.gecko.male.foot_fr"), + ), + right_front: ( + offset: (-0.5, -1.0, -3.5), + lateral: ("npc.gecko.male.foot_fr"), + ), + left_back: ( + offset: (-5.5, -4.0, -3.5), + lateral: ("npc.gecko.male.foot_br"), + ), + right_back: ( + offset: (-0.5, -4.0, -3.5), + lateral: ("npc.gecko.male.foot_br"), + ), + ), + (Gecko, Female): ( + left_front: ( + offset: (-5.5, -1.0, -3.5), + lateral: ("npc.gecko.male.foot_fr"), + ), + right_front: ( + offset: (-0.5, -1.0, -3.5), + lateral: ("npc.gecko.male.foot_fr"), + ), + left_back: ( + offset: (-5.5, -4.0, -3.5), + lateral: ("npc.gecko.male.foot_br"), + ), + right_back: ( + offset: (-0.5, -4.0, -3.5), + lateral: ("npc.gecko.male.foot_br"), + ), + ), + (Turtle, Male): ( + left_front: ( + offset: (-1.5, -0.5, -4.0), + lateral: ("npc.turtle.male.foot_fr"), + ), + right_front: ( + offset: (-1.5, -0.5, -4.0), + lateral: ("npc.turtle.male.foot_fr"), + ), + left_back: ( + offset: (-2.0, -2.5, -4.0), + lateral: ("npc.turtle.male.foot_br"), + ), + right_back: ( + offset: (-2.0, -2.5, -4.0), + lateral: ("npc.turtle.male.foot_br"), + ), + ), + (Turtle, Female): ( + left_front: ( + offset: (-1.5, -0.5, -4.0), + lateral: ("npc.turtle.male.foot_fr"), + ), + right_front: ( + offset: (-1.5, -0.5, -4.0), + lateral: ("npc.turtle.male.foot_fr"), + ), + left_back: ( + offset: (-2.0, -2.5, -4.0), + lateral: ("npc.turtle.male.foot_br"), + ), + right_back: ( + offset: (-2.0, -2.5, -4.0), + lateral: ("npc.turtle.male.foot_br"), + ), + ), + (Squirrel, Male): ( + left_front: ( + offset: (-1.5, -1.5, -4.0), + lateral: ("npc.squirrel.male.foot_fr"), + ), + right_front: ( + offset: (-1.5, -1.5, -4.0), + lateral: ("npc.squirrel.male.foot_fr"), + ), + left_back: ( + offset: (-1.5, -2.0, -5.0), + lateral: ("npc.squirrel.male.foot_br"), + ), + right_back: ( + offset: (-1.5, -2.0, -5.0), + lateral: ("npc.squirrel.male.foot_br"), + ), + ), + (Squirrel, Female): ( + left_front: ( + offset: (-1.5, -1.5, -4.0), + lateral: ("npc.squirrel.male.foot_fr"), + ), + right_front: ( + offset: (-1.5, -1.5, -4.0), + lateral: ("npc.squirrel.male.foot_fr"), + ), + left_back: ( + offset: (-1.5, -2.0, -5.0), + lateral: ("npc.squirrel.male.foot_br"), + ), + right_back: ( + offset: (-1.5, -2.0, -5.0), + lateral: ("npc.squirrel.male.foot_br"), + ), + ), + (Fungome, Male): ( + left_front: ( + offset: (-2.5, -0.5, -3.0), + lateral: ("npc.fungome.male.foot_fr"), + ), + right_front: ( + offset: (-0.5, -0.5, -3.0), + lateral: ("npc.fungome.male.foot_fr"), + ), + left_back: ( + offset: (-2.5, -1.0, -3.0), + lateral: ("npc.fungome.male.foot_br"), + ), + right_back: ( + offset: (-0.5, -1.0, -3.0), + lateral: ("npc.fungome.male.foot_br"), + ), + ), + (Fungome, Female): ( + left_front: ( + offset: (-2.5, -0.5, -3.0), + lateral: ("npc.fungome.male.foot_fr"), + ), + right_front: ( + offset: (-0.5, -0.5, -3.0), + lateral: ("npc.fungome.male.foot_fr"), + ), + left_back: ( + offset: (-2.5, -1.0, -3.0), + lateral: ("npc.fungome.male.foot_br"), + ), + right_back: ( + offset: (-0.5, -1.0, -3.0), + lateral: ("npc.fungome.male.foot_br"), + ), + ), + (Porcupine, Male): ( + left_front: ( + offset: (-1.5, -2.5, -2.0), + lateral: ("npc.porcupine.male.foot_fr"), + ), + right_front: ( + offset: (-1.5, -2.5, -2.0), + lateral: ("npc.porcupine.male.foot_fr"), + ), + left_back: ( + offset: (-2.0, -3.0, -3.0), + lateral: ("npc.porcupine.male.foot_br"), + ), + right_back: ( + offset: (-2.0, -3.0, -3.0), + lateral: ("npc.porcupine.male.foot_br"), + ), + ), + (Porcupine, Female): ( + left_front: ( + offset: (-1.5, -2.5, -2.0), + lateral: ("npc.porcupine.male.foot_fr"), + ), + right_front: ( + offset: (-1.5, -2.5, -2.0), + lateral: ("npc.porcupine.male.foot_fr"), + ), + left_back: ( + offset: (-2.0, -3.0, -3.0), + lateral: ("npc.porcupine.male.foot_br"), + ), + right_back: ( + offset: (-2.0, -3.0, -3.0), + lateral: ("npc.porcupine.male.foot_br"), + ), + ), + (Beaver, Male): ( + left_front: ( + offset: (-1.5, -2.0, -2.0), + lateral: ("npc.beaver.male.foot_fr"), + ), + right_front: ( + offset: (-1.5, -2.5, -2.0), + lateral: ("npc.beaver.male.foot_fr"), + ), + left_back: ( + offset: (-2.0, -2.5, -3.0), + lateral: ("npc.beaver.male.foot_br"), + ), + right_back: ( + offset: (-2.0, -2.5, -3.0), + lateral: ("npc.beaver.male.foot_br"), + ), + ), + (Beaver, Female): ( + left_front: ( + offset: (-1.5, -2.0, -2.0), + lateral: ("npc.beaver.male.foot_fr"), + ), + right_front: ( + offset: (-1.5, -2.5, -2.0), + lateral: ("npc.beaver.male.foot_fr"), + ), + left_back: ( + offset: (-2.0, -2.5, -3.0), + lateral: ("npc.beaver.male.foot_br"), + ), + right_back: ( + offset: (-2.0, -2.5, -3.0), + lateral: ("npc.beaver.male.foot_br"), + ), + ), + (Hare, Male): ( + left_front: ( + offset: (-0.5, -0.0, -2.0), + lateral: ("npc.hare.male.foot_fr"), + ), + right_front: ( + offset: (-0.5, -0.0, -2.0), + lateral: ("npc.hare.male.foot_fr"), + ), + left_back: ( + offset: (-1.0, -4.0, -5.0), + lateral: ("npc.hare.male.foot_br"), + ), + right_back: ( + offset: (-1.0, -4.0, -5.0), + lateral: ("npc.hare.male.foot_br"), + ), + ), + (Hare, Female): ( + left_front: ( + offset: (-1.0, -0.0, -2.0), + lateral: ("npc.hare.female.foot_fr"), + ), + right_front: ( + offset: (-1.0, -0.0, -2.0), + lateral: ("npc.hare.female.foot_fr"), + ), + left_back: ( + offset: (-1.0, -2.5, -4.0), + lateral: ("npc.hare.female.foot_br"), + ), + right_back: ( + offset: (-1.0, -2.5, -4.0), + lateral: ("npc.hare.female.foot_br"), + ), + ), + (Dog, Male): ( + left_front: ( + offset: (-1.0, -1.5, -6.0), + lateral: ("npc.dog.male.foot_fr"), + ), + right_front: ( + offset: (-1.0, -1.5, -6.0), + lateral: ("npc.dog.male.foot_fr"), + ), + left_back: ( + offset: (-1.5, -2.0, -6.0), + lateral: ("npc.dog.male.foot_br"), + ), + right_back: ( + offset: (-1.5, -2.0, -6.0), + lateral: ("npc.dog.male.foot_br"), + ), + ), + (Dog, Female): ( + left_front: ( + offset: (-1.0, -1.5, -6.0), + lateral: ("npc.dog.female.foot_fr"), + ), + right_front: ( + offset: (-1.0, -1.5, -6.0), + lateral: ("npc.dog.female.foot_fr"), + ), + left_back: ( + offset: (-1.5, -2.0, -6.0), + lateral: ("npc.dog.female.foot_br"), + ), + right_back: ( + offset: (-1.5, -2.0, -6.0), + lateral: ("npc.dog.female.foot_br"), + ), + ), + (Goat, Male): ( + left_front: ( + offset: (-1.0, -2.0, -4.0), + lateral: ("npc.goat.male.foot_fr"), + ), + right_front: ( + offset: (-1.0, -2.0, -4.0), + lateral: ("npc.goat.male.foot_fr"), + ), + left_back: ( + offset: (-1.0, -1.5, -5.5), + lateral: ("npc.goat.male.foot_br"), + ), + right_back: ( + offset: (-1.0, -1.5, -5.5), + lateral: ("npc.goat.male.foot_br"), + ), + ), + (Goat, Female): ( + left_front: ( + offset: (-1.0, -2.0, -4.0), + lateral: ("npc.goat.male.foot_fr"), + ), + right_front: ( + offset: (-1.0, -2.0, -4.0), + lateral: ("npc.goat.male.foot_fr"), + ), + left_back: ( + offset: (-1.0, -1.5, -5.5), + lateral: ("npc.goat.male.foot_br"), + ), + right_back: ( + offset: (-1.0, -1.5, -5.5), + lateral: ("npc.goat.male.foot_br"), + ), + ), + (Seal, Male): ( + left_front: ( + offset: (-3.5, -2.0, -2.0), + lateral: ("npc.seal.male.foot_fr"), + ), + right_front: ( + offset: (-3.5, -2.0, -2.0), + lateral: ("npc.seal.male.foot_fr"), + ), + left_back: ( + offset: (-3.5, -2.0, -3.5), + lateral: ("npc.seal.male.foot_br"), + ), + right_back: ( + offset: (-3.5, -2.0, -3.5), + lateral: ("npc.seal.male.foot_br"), + ), + ), + (Seal, Female): ( + left_front: ( + offset: (-3.5, -2.0, -2.0), + lateral: ("npc.seal.male.foot_fr"), + ), + right_front: ( + offset: (-3.5, -2.0, -2.0), + lateral: ("npc.seal.male.foot_fr"), + ), + left_back: ( + offset: (-3.5, -2.0, -3.5), + lateral: ("npc.seal.male.foot_br"), + ), + right_back: ( + offset: (-3.5, -2.0, -3.5), + lateral: ("npc.seal.male.foot_br"), + ), + ), + (TreantSapling, Male): ( + left_front: ( + offset: (-2.0, -2.0, -3.0), + lateral: ("npc.treant_sapling.male.foot_fr"), + ), + right_front: ( + offset: (-2.0, -2.0, -3.0), + lateral: ("npc.treant_sapling.male.foot_fr"), + ), + left_back: ( + offset: (-2.0, -2.0, -3.0), + lateral: ("npc.treant_sapling.male.foot_br"), + ), + right_back: ( + offset: (-2.0, -2.0, -3.0), + lateral: ("npc.treant_sapling.male.foot_br"), + ), + ), + (TreantSapling, Female): ( + left_front: ( + offset: (-2.0, -2.0, -3.0), + lateral: ("npc.treant_sapling.male.foot_fr"), + ), + right_front: ( + offset: (-2.0, -2.0, -3.0), + lateral: ("npc.treant_sapling.male.foot_fr"), + ), + left_back: ( + offset: (-2.0, -2.0, -3.0), + lateral: ("npc.treant_sapling.male.foot_br"), + ), + right_back: ( + offset: (-2.0, -2.0, -3.0), + lateral: ("npc.treant_sapling.male.foot_br"), + ), + ), + (MossySnail, Male): ( + left_front: ( + offset: (-2.5, -2.5, -4.0), + lateral: ("armor.empty"), + ), + right_front: ( + offset: (-2.5, -2.5, -4.0), + lateral: ("armor.empty"), + ), + left_back: ( + offset: (-2.5, -3.5, -4.0), + lateral: ("armor.empty"), + ), + right_back: ( + offset: (-2.5, -3.5, -4.0), + lateral: ("armor.empty"), + ), + ), + (MossySnail, Female): ( + left_front: ( + offset: (-2.5, -2.5, -4.0), + lateral: ("armor.empty"), + ), + right_front: ( + offset: (-2.5, -2.5, -4.0), + lateral: ("armor.empty"), + ), + left_back: ( + offset: (-2.5, -3.5, -4.0), + lateral: ("armor.empty"), + ), + right_back: ( + offset: (-2.5, -3.5, -4.0), + lateral: ("armor.empty"), + ), + ), +}) \ No newline at end of file diff --git a/assets/voxygen/voxel/sprite/algae/acetabularia-0.vox b/assets/voxygen/voxel/sprite/algae/acetabularia-0.vox new file mode 100644 index 0000000..67a7a02 Binary files /dev/null and b/assets/voxygen/voxel/sprite/algae/acetabularia-0.vox differ diff --git a/assets/voxygen/voxel/sprite/algae/acetabularia-1.vox b/assets/voxygen/voxel/sprite/algae/acetabularia-1.vox new file mode 100644 index 0000000..bfbaf85 Binary files /dev/null and b/assets/voxygen/voxel/sprite/algae/acetabularia-1.vox differ diff --git a/assets/voxygen/voxel/sprite/algae/acetabularia-2.vox b/assets/voxygen/voxel/sprite/algae/acetabularia-2.vox new file mode 100644 index 0000000..3c29a7c Binary files /dev/null and b/assets/voxygen/voxel/sprite/algae/acetabularia-2.vox differ diff --git a/assets/voxygen/voxel/sprite/algae/caulerpa_lentillifera-0.vox b/assets/voxygen/voxel/sprite/algae/caulerpa_lentillifera-0.vox new file mode 100644 index 0000000..e4ea91c Binary files /dev/null and b/assets/voxygen/voxel/sprite/algae/caulerpa_lentillifera-0.vox differ diff --git a/assets/voxygen/voxel/sprite/algae/caulerpa_lentillifera-1.vox b/assets/voxygen/voxel/sprite/algae/caulerpa_lentillifera-1.vox new file mode 100644 index 0000000..34decb2 Binary files /dev/null and b/assets/voxygen/voxel/sprite/algae/caulerpa_lentillifera-1.vox differ diff --git a/assets/voxygen/voxel/sprite/algae/caulerpa_lentillifera-2.vox b/assets/voxygen/voxel/sprite/algae/caulerpa_lentillifera-2.vox new file mode 100644 index 0000000..1787983 Binary files /dev/null and b/assets/voxygen/voxel/sprite/algae/caulerpa_lentillifera-2.vox differ diff --git a/assets/voxygen/voxel/sprite/algae/caulerpa_lentillifera-3.vox b/assets/voxygen/voxel/sprite/algae/caulerpa_lentillifera-3.vox new file mode 100644 index 0000000..98d812f Binary files /dev/null and b/assets/voxygen/voxel/sprite/algae/caulerpa_lentillifera-3.vox differ diff --git a/assets/voxygen/voxel/sprite/algae/caulerpa_prolifera-0.vox b/assets/voxygen/voxel/sprite/algae/caulerpa_prolifera-0.vox new file mode 100644 index 0000000..e4393db Binary files /dev/null and b/assets/voxygen/voxel/sprite/algae/caulerpa_prolifera-0.vox differ diff --git a/assets/voxygen/voxel/sprite/algae/caulerpa_prolifera-1.vox b/assets/voxygen/voxel/sprite/algae/caulerpa_prolifera-1.vox new file mode 100644 index 0000000..8a0eb4f Binary files /dev/null and b/assets/voxygen/voxel/sprite/algae/caulerpa_prolifera-1.vox differ diff --git a/assets/voxygen/voxel/sprite/algae/caulerpa_prolifera-2.vox b/assets/voxygen/voxel/sprite/algae/caulerpa_prolifera-2.vox new file mode 100644 index 0000000..4b3967d Binary files /dev/null and b/assets/voxygen/voxel/sprite/algae/caulerpa_prolifera-2.vox differ diff --git a/assets/voxygen/voxel/sprite/algae/caulerpa_prolifera-3.vox b/assets/voxygen/voxel/sprite/algae/caulerpa_prolifera-3.vox new file mode 100644 index 0000000..ebaa0e8 Binary files /dev/null and b/assets/voxygen/voxel/sprite/algae/caulerpa_prolifera-3.vox differ diff --git a/assets/voxygen/voxel/sprite/algae/kelp_sprig-0.vox b/assets/voxygen/voxel/sprite/algae/kelp_sprig-0.vox new file mode 100644 index 0000000..3cd6dd4 Binary files /dev/null and b/assets/voxygen/voxel/sprite/algae/kelp_sprig-0.vox differ diff --git a/assets/voxygen/voxel/sprite/algae/kelp_sprig-1.vox b/assets/voxygen/voxel/sprite/algae/kelp_sprig-1.vox new file mode 100644 index 0000000..64a3649 Binary files /dev/null and b/assets/voxygen/voxel/sprite/algae/kelp_sprig-1.vox differ diff --git a/assets/voxygen/voxel/sprite/algae/macrocystis_kelp-0.vox b/assets/voxygen/voxel/sprite/algae/macrocystis_kelp-0.vox new file mode 100644 index 0000000..3c59ca8 Binary files /dev/null and b/assets/voxygen/voxel/sprite/algae/macrocystis_kelp-0.vox differ diff --git a/assets/voxygen/voxel/sprite/algae/macrocystis_kelp-1.vox b/assets/voxygen/voxel/sprite/algae/macrocystis_kelp-1.vox new file mode 100644 index 0000000..ddd9e3f Binary files /dev/null and b/assets/voxygen/voxel/sprite/algae/macrocystis_kelp-1.vox differ diff --git a/assets/voxygen/voxel/sprite/algae/macrocystis_kelp-2.vox b/assets/voxygen/voxel/sprite/algae/macrocystis_kelp-2.vox new file mode 100644 index 0000000..fefc3a1 Binary files /dev/null and b/assets/voxygen/voxel/sprite/algae/macrocystis_kelp-2.vox differ diff --git a/assets/voxygen/voxel/sprite/algae/macrocystis_kelp-3.vox b/assets/voxygen/voxel/sprite/algae/macrocystis_kelp-3.vox new file mode 100644 index 0000000..282289c Binary files /dev/null and b/assets/voxygen/voxel/sprite/algae/macrocystis_kelp-3.vox differ diff --git a/assets/voxygen/voxel/sprite/algae/nereocystis_kelp-0.vox b/assets/voxygen/voxel/sprite/algae/nereocystis_kelp-0.vox new file mode 100644 index 0000000..7bc8001 Binary files /dev/null and b/assets/voxygen/voxel/sprite/algae/nereocystis_kelp-0.vox differ diff --git a/assets/voxygen/voxel/sprite/algae/nereocystis_kelp-1.vox b/assets/voxygen/voxel/sprite/algae/nereocystis_kelp-1.vox new file mode 100644 index 0000000..2926714 Binary files /dev/null and b/assets/voxygen/voxel/sprite/algae/nereocystis_kelp-1.vox differ diff --git a/assets/voxygen/voxel/sprite/algae/nereocystis_kelp-2.vox b/assets/voxygen/voxel/sprite/algae/nereocystis_kelp-2.vox new file mode 100644 index 0000000..199c6be Binary files /dev/null and b/assets/voxygen/voxel/sprite/algae/nereocystis_kelp-2.vox differ diff --git a/assets/voxygen/voxel/sprite/algae/nereocystis_kelp-3.vox b/assets/voxygen/voxel/sprite/algae/nereocystis_kelp-3.vox new file mode 100644 index 0000000..154076a Binary files /dev/null and b/assets/voxygen/voxel/sprite/algae/nereocystis_kelp-3.vox differ diff --git a/assets/voxygen/voxel/sprite/algae/nereocystis_kelp-4.vox b/assets/voxygen/voxel/sprite/algae/nereocystis_kelp-4.vox new file mode 100644 index 0000000..83257e6 Binary files /dev/null and b/assets/voxygen/voxel/sprite/algae/nereocystis_kelp-4.vox differ diff --git a/assets/voxygen/voxel/sprite/algae/nereocystis_kelp-5.vox b/assets/voxygen/voxel/sprite/algae/nereocystis_kelp-5.vox new file mode 100644 index 0000000..519e7dd Binary files /dev/null and b/assets/voxygen/voxel/sprite/algae/nereocystis_kelp-5.vox differ diff --git a/assets/voxygen/voxel/sprite/algae/nereocystis_kelp-6.vox b/assets/voxygen/voxel/sprite/algae/nereocystis_kelp-6.vox new file mode 100644 index 0000000..0c29eea Binary files /dev/null and b/assets/voxygen/voxel/sprite/algae/nereocystis_kelp-6.vox differ diff --git a/assets/voxygen/voxel/sprite/algae/nereocystis_kelp-7.vox b/assets/voxygen/voxel/sprite/algae/nereocystis_kelp-7.vox new file mode 100644 index 0000000..d8f9bd4 Binary files /dev/null and b/assets/voxygen/voxel/sprite/algae/nereocystis_kelp-7.vox differ diff --git a/assets/voxygen/voxel/sprite/algae/nereocystis_kelp-8.vox b/assets/voxygen/voxel/sprite/algae/nereocystis_kelp-8.vox new file mode 100644 index 0000000..b68c2fb Binary files /dev/null and b/assets/voxygen/voxel/sprite/algae/nereocystis_kelp-8.vox differ diff --git a/assets/voxygen/voxel/sprite/algae/udotea-0.vox b/assets/voxygen/voxel/sprite/algae/udotea-0.vox new file mode 100644 index 0000000..1dff4df Binary files /dev/null and b/assets/voxygen/voxel/sprite/algae/udotea-0.vox differ diff --git a/assets/voxygen/voxel/sprite/algae/udotea-1.vox b/assets/voxygen/voxel/sprite/algae/udotea-1.vox new file mode 100644 index 0000000..2ee2f96 Binary files /dev/null and b/assets/voxygen/voxel/sprite/algae/udotea-1.vox differ diff --git a/assets/voxygen/voxel/sprite/algae/udotea-2.vox b/assets/voxygen/voxel/sprite/algae/udotea-2.vox new file mode 100644 index 0000000..b97d901 Binary files /dev/null and b/assets/voxygen/voxel/sprite/algae/udotea-2.vox differ diff --git a/assets/voxygen/voxel/sprite/anvil/anvil-0.vox b/assets/voxygen/voxel/sprite/anvil/anvil-0.vox new file mode 100644 index 0000000..54ac6fd Binary files /dev/null and b/assets/voxygen/voxel/sprite/anvil/anvil-0.vox differ diff --git a/assets/voxygen/voxel/sprite/barricades_wood/barricades-0.vox b/assets/voxygen/voxel/sprite/barricades_wood/barricades-0.vox new file mode 100644 index 0000000..ee6b1fc Binary files /dev/null and b/assets/voxygen/voxel/sprite/barricades_wood/barricades-0.vox differ diff --git a/assets/voxygen/voxel/sprite/barricades_wood/barricades-1.vox b/assets/voxygen/voxel/sprite/barricades_wood/barricades-1.vox new file mode 100644 index 0000000..a56e339 Binary files /dev/null and b/assets/voxygen/voxel/sprite/barricades_wood/barricades-1.vox differ diff --git a/assets/voxygen/voxel/sprite/barricades_wood/barricades-2.vox b/assets/voxygen/voxel/sprite/barricades_wood/barricades-2.vox new file mode 100644 index 0000000..e614a5c Binary files /dev/null and b/assets/voxygen/voxel/sprite/barricades_wood/barricades-2.vox differ diff --git a/assets/voxygen/voxel/sprite/barricades_wood/barricades-3.vox b/assets/voxygen/voxel/sprite/barricades_wood/barricades-3.vox new file mode 100644 index 0000000..5802e7d Binary files /dev/null and b/assets/voxygen/voxel/sprite/barricades_wood/barricades-3.vox differ diff --git a/assets/voxygen/voxel/sprite/bars/0.vox b/assets/voxygen/voxel/sprite/bars/0.vox new file mode 100644 index 0000000..437eeb0 Binary files /dev/null and b/assets/voxygen/voxel/sprite/bars/0.vox differ diff --git a/assets/voxygen/voxel/sprite/bars/keyhole.vox b/assets/voxygen/voxel/sprite/bars/keyhole.vox new file mode 100644 index 0000000..74f9b1c Binary files /dev/null and b/assets/voxygen/voxel/sprite/bars/keyhole.vox differ diff --git a/assets/voxygen/voxel/sprite/beehive/beehive.vox b/assets/voxygen/voxel/sprite/beehive/beehive.vox new file mode 100644 index 0000000..519f84d Binary files /dev/null and b/assets/voxygen/voxel/sprite/beehive/beehive.vox differ diff --git a/assets/voxygen/voxel/sprite/blueberry/1.vox b/assets/voxygen/voxel/sprite/blueberry/1.vox new file mode 100644 index 0000000..302540b Binary files /dev/null and b/assets/voxygen/voxel/sprite/blueberry/1.vox differ diff --git a/assets/voxygen/voxel/sprite/blueberry/2.vox b/assets/voxygen/voxel/sprite/blueberry/2.vox new file mode 100644 index 0000000..7569a75 Binary files /dev/null and b/assets/voxygen/voxel/sprite/blueberry/2.vox differ diff --git a/assets/voxygen/voxel/sprite/blueberry/3.vox b/assets/voxygen/voxel/sprite/blueberry/3.vox new file mode 100644 index 0000000..71afbe6 Binary files /dev/null and b/assets/voxygen/voxel/sprite/blueberry/3.vox differ diff --git a/assets/voxygen/voxel/sprite/blueberry/4.vox b/assets/voxygen/voxel/sprite/blueberry/4.vox new file mode 100644 index 0000000..e665a20 Binary files /dev/null and b/assets/voxygen/voxel/sprite/blueberry/4.vox differ diff --git a/assets/voxygen/voxel/sprite/blueberry/5.vox b/assets/voxygen/voxel/sprite/blueberry/5.vox new file mode 100644 index 0000000..a91f990 Binary files /dev/null and b/assets/voxygen/voxel/sprite/blueberry/5.vox differ diff --git a/assets/voxygen/voxel/sprite/blueberry/6.vox b/assets/voxygen/voxel/sprite/blueberry/6.vox new file mode 100644 index 0000000..72b30f5 Binary files /dev/null and b/assets/voxygen/voxel/sprite/blueberry/6.vox differ diff --git a/assets/voxygen/voxel/sprite/blueberry/7.vox b/assets/voxygen/voxel/sprite/blueberry/7.vox new file mode 100644 index 0000000..023d09c Binary files /dev/null and b/assets/voxygen/voxel/sprite/blueberry/7.vox differ diff --git a/assets/voxygen/voxel/sprite/blueberry/8.vox b/assets/voxygen/voxel/sprite/blueberry/8.vox new file mode 100644 index 0000000..c74e598 Binary files /dev/null and b/assets/voxygen/voxel/sprite/blueberry/8.vox differ diff --git a/assets/voxygen/voxel/sprite/blueberry/9.vox b/assets/voxygen/voxel/sprite/blueberry/9.vox new file mode 100644 index 0000000..3d93f87 Binary files /dev/null and b/assets/voxygen/voxel/sprite/blueberry/9.vox differ diff --git a/assets/voxygen/voxel/sprite/bone/bone-1.vox b/assets/voxygen/voxel/sprite/bone/bone-1.vox new file mode 100644 index 0000000..8f336bb Binary files /dev/null and b/assets/voxygen/voxel/sprite/bone/bone-1.vox differ diff --git a/assets/voxygen/voxel/sprite/bone/bone-2.vox b/assets/voxygen/voxel/sprite/bone/bone-2.vox new file mode 100644 index 0000000..ad3ba7b Binary files /dev/null and b/assets/voxygen/voxel/sprite/bone/bone-2.vox differ diff --git a/assets/voxygen/voxel/sprite/bone/bone-3.vox b/assets/voxygen/voxel/sprite/bone/bone-3.vox new file mode 100644 index 0000000..9419226 Binary files /dev/null and b/assets/voxygen/voxel/sprite/bone/bone-3.vox differ diff --git a/assets/voxygen/voxel/sprite/bone/bone-4.vox b/assets/voxygen/voxel/sprite/bone/bone-4.vox new file mode 100644 index 0000000..5f35a92 Binary files /dev/null and b/assets/voxygen/voxel/sprite/bone/bone-4.vox differ diff --git a/assets/voxygen/voxel/sprite/bone/bone-5.vox b/assets/voxygen/voxel/sprite/bone/bone-5.vox new file mode 100644 index 0000000..e9e25b3 Binary files /dev/null and b/assets/voxygen/voxel/sprite/bone/bone-5.vox differ diff --git a/assets/voxygen/voxel/sprite/cabbage/cabbage-0.vox b/assets/voxygen/voxel/sprite/cabbage/cabbage-0.vox new file mode 100644 index 0000000..fbdf6e0 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cabbage/cabbage-0.vox differ diff --git a/assets/voxygen/voxel/sprite/cabbage/cabbage-1.vox b/assets/voxygen/voxel/sprite/cabbage/cabbage-1.vox new file mode 100644 index 0000000..367cd5f Binary files /dev/null and b/assets/voxygen/voxel/sprite/cabbage/cabbage-1.vox differ diff --git a/assets/voxygen/voxel/sprite/cabbage/cabbage-2.vox b/assets/voxygen/voxel/sprite/cabbage/cabbage-2.vox new file mode 100644 index 0000000..130d1b5 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cabbage/cabbage-2.vox differ diff --git a/assets/voxygen/voxel/sprite/cabbage/cabbage.vox b/assets/voxygen/voxel/sprite/cabbage/cabbage.vox new file mode 100644 index 0000000..aac5275 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cabbage/cabbage.vox differ diff --git a/assets/voxygen/voxel/sprite/cacti/barrel_cactus.vox b/assets/voxygen/voxel/sprite/cacti/barrel_cactus.vox new file mode 100644 index 0000000..6833d4a Binary files /dev/null and b/assets/voxygen/voxel/sprite/cacti/barrel_cactus.vox differ diff --git a/assets/voxygen/voxel/sprite/cacti/cactus_barrel_flower.vox b/assets/voxygen/voxel/sprite/cacti/cactus_barrel_flower.vox new file mode 100644 index 0000000..be53bf4 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cacti/cactus_barrel_flower.vox differ diff --git a/assets/voxygen/voxel/sprite/cacti/cactus_branch_large_1.vox b/assets/voxygen/voxel/sprite/cacti/cactus_branch_large_1.vox new file mode 100644 index 0000000..4f3b145 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cacti/cactus_branch_large_1.vox differ diff --git a/assets/voxygen/voxel/sprite/cacti/cactus_branch_large_1_flower.vox b/assets/voxygen/voxel/sprite/cacti/cactus_branch_large_1_flower.vox new file mode 100644 index 0000000..a853097 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cacti/cactus_branch_large_1_flower.vox differ diff --git a/assets/voxygen/voxel/sprite/cacti/cactus_branch_large_2.vox b/assets/voxygen/voxel/sprite/cacti/cactus_branch_large_2.vox new file mode 100644 index 0000000..f51d8a3 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cacti/cactus_branch_large_2.vox differ diff --git a/assets/voxygen/voxel/sprite/cacti/cactus_branch_large_2_flower.vox b/assets/voxygen/voxel/sprite/cacti/cactus_branch_large_2_flower.vox new file mode 100644 index 0000000..3b33702 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cacti/cactus_branch_large_2_flower.vox differ diff --git a/assets/voxygen/voxel/sprite/cacti/cactus_round.vox b/assets/voxygen/voxel/sprite/cacti/cactus_round.vox new file mode 100644 index 0000000..f723aef Binary files /dev/null and b/assets/voxygen/voxel/sprite/cacti/cactus_round.vox differ diff --git a/assets/voxygen/voxel/sprite/cacti/cactus_short.vox b/assets/voxygen/voxel/sprite/cacti/cactus_short.vox new file mode 100644 index 0000000..d367320 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cacti/cactus_short.vox differ diff --git a/assets/voxygen/voxel/sprite/cacti/flat_cactus_med.vox b/assets/voxygen/voxel/sprite/cacti/flat_cactus_med.vox new file mode 100644 index 0000000..da6ce2a Binary files /dev/null and b/assets/voxygen/voxel/sprite/cacti/flat_cactus_med.vox differ diff --git a/assets/voxygen/voxel/sprite/cacti/flat_cactus_short.vox b/assets/voxygen/voxel/sprite/cacti/flat_cactus_short.vox new file mode 100644 index 0000000..c06c8b9 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cacti/flat_cactus_short.vox differ diff --git a/assets/voxygen/voxel/sprite/cacti/large_cactus.vox b/assets/voxygen/voxel/sprite/cacti/large_cactus.vox new file mode 100644 index 0000000..93dd1c0 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cacti/large_cactus.vox differ diff --git a/assets/voxygen/voxel/sprite/cacti/tall.vox b/assets/voxygen/voxel/sprite/cacti/tall.vox new file mode 100644 index 0000000..284564b Binary files /dev/null and b/assets/voxygen/voxel/sprite/cacti/tall.vox differ diff --git a/assets/voxygen/voxel/sprite/cacti/tall2.vox b/assets/voxygen/voxel/sprite/cacti/tall2.vox new file mode 100644 index 0000000..253dc61 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cacti/tall2.vox differ diff --git a/assets/voxygen/voxel/sprite/camp/camp.vox b/assets/voxygen/voxel/sprite/camp/camp.vox new file mode 100644 index 0000000..0ccdfb9 Binary files /dev/null and b/assets/voxygen/voxel/sprite/camp/camp.vox differ diff --git a/assets/voxygen/voxel/sprite/camp/camp_pirate.vox b/assets/voxygen/voxel/sprite/camp/camp_pirate.vox new file mode 100644 index 0000000..a21454c Binary files /dev/null and b/assets/voxygen/voxel/sprite/camp/camp_pirate.vox differ diff --git a/assets/voxygen/voxel/sprite/camp/camp_snow.vox b/assets/voxygen/voxel/sprite/camp/camp_snow.vox new file mode 100644 index 0000000..cefc61f Binary files /dev/null and b/assets/voxygen/voxel/sprite/camp/camp_snow.vox differ diff --git a/assets/voxygen/voxel/sprite/carrot/0.vox b/assets/voxygen/voxel/sprite/carrot/0.vox new file mode 100644 index 0000000..814c7ca Binary files /dev/null and b/assets/voxygen/voxel/sprite/carrot/0.vox differ diff --git a/assets/voxygen/voxel/sprite/carrot/1.vox b/assets/voxygen/voxel/sprite/carrot/1.vox new file mode 100644 index 0000000..016b78a Binary files /dev/null and b/assets/voxygen/voxel/sprite/carrot/1.vox differ diff --git a/assets/voxygen/voxel/sprite/carrot/2.vox b/assets/voxygen/voxel/sprite/carrot/2.vox new file mode 100644 index 0000000..a0542bc Binary files /dev/null and b/assets/voxygen/voxel/sprite/carrot/2.vox differ diff --git a/assets/voxygen/voxel/sprite/carrot/3.vox b/assets/voxygen/voxel/sprite/carrot/3.vox new file mode 100644 index 0000000..e57b255 Binary files /dev/null and b/assets/voxygen/voxel/sprite/carrot/3.vox differ diff --git a/assets/voxygen/voxel/sprite/carrot/4.vox b/assets/voxygen/voxel/sprite/carrot/4.vox new file mode 100644 index 0000000..d518021 Binary files /dev/null and b/assets/voxygen/voxel/sprite/carrot/4.vox differ diff --git a/assets/voxygen/voxel/sprite/carrot/5.vox b/assets/voxygen/voxel/sprite/carrot/5.vox new file mode 100644 index 0000000..451e148 Binary files /dev/null and b/assets/voxygen/voxel/sprite/carrot/5.vox differ diff --git a/assets/voxygen/voxel/sprite/carrot/carrot.vox b/assets/voxygen/voxel/sprite/carrot/carrot.vox new file mode 100644 index 0000000..3b7bee5 Binary files /dev/null and b/assets/voxygen/voxel/sprite/carrot/carrot.vox differ diff --git a/assets/voxygen/voxel/sprite/castle/drop_gate_bars-0.vox b/assets/voxygen/voxel/sprite/castle/drop_gate_bars-0.vox new file mode 100644 index 0000000..5789ac2 Binary files /dev/null and b/assets/voxygen/voxel/sprite/castle/drop_gate_bars-0.vox differ diff --git a/assets/voxygen/voxel/sprite/castle/drop_gate_bottom-0.vox b/assets/voxygen/voxel/sprite/castle/drop_gate_bottom-0.vox new file mode 100644 index 0000000..fbc98f5 Binary files /dev/null and b/assets/voxygen/voxel/sprite/castle/drop_gate_bottom-0.vox differ diff --git a/assets/voxygen/voxel/sprite/cauldron/cauldron-0.vox b/assets/voxygen/voxel/sprite/cauldron/cauldron-0.vox new file mode 100644 index 0000000..b3b10cf Binary files /dev/null and b/assets/voxygen/voxel/sprite/cauldron/cauldron-0.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/cave_flower-0.vox b/assets/voxygen/voxel/sprite/cave/cave_flower-0.vox new file mode 100644 index 0000000..736df34 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/cave_flower-0.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/cave_flower-1.vox b/assets/voxygen/voxel/sprite/cave/cave_flower-1.vox new file mode 100644 index 0000000..38dd8e1 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/cave_flower-1.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/cave_flower-2.vox b/assets/voxygen/voxel/sprite/cave/cave_flower-2.vox new file mode 100644 index 0000000..38d01c0 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/cave_flower-2.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/cave_flower-3.vox b/assets/voxygen/voxel/sprite/cave/cave_flower-3.vox new file mode 100644 index 0000000..28420e9 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/cave_flower-3.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/cave_lantern_flower-0.vox b/assets/voxygen/voxel/sprite/cave/cave_lantern_flower-0.vox new file mode 100644 index 0000000..9493b8e Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/cave_lantern_flower-0.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/cave_lantern_flower-1.vox b/assets/voxygen/voxel/sprite/cave/cave_lantern_flower-1.vox new file mode 100644 index 0000000..a49ea4b Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/cave_lantern_flower-1.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/cave_lantern_flower-2.vox b/assets/voxygen/voxel/sprite/cave/cave_lantern_flower-2.vox new file mode 100644 index 0000000..448d003 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/cave_lantern_flower-2.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/cave_lantern_plant-0.vox b/assets/voxygen/voxel/sprite/cave/cave_lantern_plant-0.vox new file mode 100644 index 0000000..9bdc6cc Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/cave_lantern_plant-0.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/cave_lantern_plant-1.vox b/assets/voxygen/voxel/sprite/cave/cave_lantern_plant-1.vox new file mode 100644 index 0000000..2b1dc73 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/cave_lantern_plant-1.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/cave_lantern_plant-2.vox b/assets/voxygen/voxel/sprite/cave/cave_lantern_plant-2.vox new file mode 100644 index 0000000..21cc061 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/cave_lantern_plant-2.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/ceiling/cave_lantern_flower-0.vox b/assets/voxygen/voxel/sprite/cave/ceiling/cave_lantern_flower-0.vox new file mode 100644 index 0000000..0917f06 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/ceiling/cave_lantern_flower-0.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/ceiling/cave_lantern_flower-1.vox b/assets/voxygen/voxel/sprite/cave/ceiling/cave_lantern_flower-1.vox new file mode 100644 index 0000000..8900075 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/ceiling/cave_lantern_flower-1.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/ceiling/cave_lantern_flower-2.vox b/assets/voxygen/voxel/sprite/cave/ceiling/cave_lantern_flower-2.vox new file mode 100644 index 0000000..a1b7b24 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/ceiling/cave_lantern_flower-2.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/ceiling/cave_lantern_plant-0.vox b/assets/voxygen/voxel/sprite/cave/ceiling/cave_lantern_plant-0.vox new file mode 100644 index 0000000..e031fa1 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/ceiling/cave_lantern_plant-0.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/ceiling/cave_lantern_plant-1.vox b/assets/voxygen/voxel/sprite/cave/ceiling/cave_lantern_plant-1.vox new file mode 100644 index 0000000..9ec36f3 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/ceiling/cave_lantern_plant-1.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/ceiling/mold-0.vox b/assets/voxygen/voxel/sprite/cave/ceiling/mold-0.vox new file mode 100644 index 0000000..485e28b Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/ceiling/mold-0.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/ceiling/mold-1.vox b/assets/voxygen/voxel/sprite/cave/ceiling/mold-1.vox new file mode 100644 index 0000000..480521d Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/ceiling/mold-1.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/ceiling/mold-2.vox b/assets/voxygen/voxel/sprite/cave/ceiling/mold-2.vox new file mode 100644 index 0000000..191b621 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/ceiling/mold-2.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/ceiling/mold-3.vox b/assets/voxygen/voxel/sprite/cave/ceiling/mold-3.vox new file mode 100644 index 0000000..fd82da7 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/ceiling/mold-3.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/ceiling/mold-4.vox b/assets/voxygen/voxel/sprite/cave/ceiling/mold-4.vox new file mode 100644 index 0000000..a57f7ca Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/ceiling/mold-4.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/ceiling/mold-5.vox b/assets/voxygen/voxel/sprite/cave/ceiling/mold-5.vox new file mode 100644 index 0000000..fddde67 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/ceiling/mold-5.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/ceiling/mold-6.vox b/assets/voxygen/voxel/sprite/cave/ceiling/mold-6.vox new file mode 100644 index 0000000..a591a93 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/ceiling/mold-6.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/ceiling/mushroom-0.vox b/assets/voxygen/voxel/sprite/cave/ceiling/mushroom-0.vox new file mode 100644 index 0000000..18b9459 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/ceiling/mushroom-0.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/ceiling/mushroom-1.vox b/assets/voxygen/voxel/sprite/cave/ceiling/mushroom-1.vox new file mode 100644 index 0000000..4d8b25c Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/ceiling/mushroom-1.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/ceiling/mushroom-2.vox b/assets/voxygen/voxel/sprite/cave/ceiling/mushroom-2.vox new file mode 100644 index 0000000..4539e2d Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/ceiling/mushroom-2.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/ceiling/mushroom-3.vox b/assets/voxygen/voxel/sprite/cave/ceiling/mushroom-3.vox new file mode 100644 index 0000000..98aa67c Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/ceiling/mushroom-3.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/ceiling/mycel-0.vox b/assets/voxygen/voxel/sprite/cave/ceiling/mycel-0.vox new file mode 100644 index 0000000..776ef7e Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/ceiling/mycel-0.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/ceiling/mycel-1.vox b/assets/voxygen/voxel/sprite/cave/ceiling/mycel-1.vox new file mode 100644 index 0000000..fe533b0 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/ceiling/mycel-1.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/ceiling/mycel-2.vox b/assets/voxygen/voxel/sprite/cave/ceiling/mycel-2.vox new file mode 100644 index 0000000..7d3c27e Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/ceiling/mycel-2.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/ceiling/mycel-3.vox b/assets/voxygen/voxel/sprite/cave/ceiling/mycel-3.vox new file mode 100644 index 0000000..2a42013 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/ceiling/mycel-3.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/ceiling/orb-0.vox b/assets/voxygen/voxel/sprite/cave/ceiling/orb-0.vox new file mode 100644 index 0000000..19b823e Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/ceiling/orb-0.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/ceiling/orb-1.vox b/assets/voxygen/voxel/sprite/cave/ceiling/orb-1.vox new file mode 100644 index 0000000..c8cf1fe Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/ceiling/orb-1.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/ceiling/orb-2.vox b/assets/voxygen/voxel/sprite/cave/ceiling/orb-2.vox new file mode 100644 index 0000000..23c2053 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/ceiling/orb-2.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/ceiling/orb-3.vox b/assets/voxygen/voxel/sprite/cave/ceiling/orb-3.vox new file mode 100644 index 0000000..2168cce Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/ceiling/orb-3.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/ceiling/root-0.vox b/assets/voxygen/voxel/sprite/cave/ceiling/root-0.vox new file mode 100644 index 0000000..1b11190 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/ceiling/root-0.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/ceiling/root-1.vox b/assets/voxygen/voxel/sprite/cave/ceiling/root-1.vox new file mode 100644 index 0000000..f761f91 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/ceiling/root-1.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/ceiling/root-2.vox b/assets/voxygen/voxel/sprite/cave/ceiling/root-2.vox new file mode 100644 index 0000000..6af097b Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/ceiling/root-2.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/ceiling/root-3.vox b/assets/voxygen/voxel/sprite/cave/ceiling/root-3.vox new file mode 100644 index 0000000..8cc1ebc Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/ceiling/root-3.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/ceiling/root-4.vox b/assets/voxygen/voxel/sprite/cave/ceiling/root-4.vox new file mode 100644 index 0000000..e2348c4 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/ceiling/root-4.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/ceiling/root-5.vox b/assets/voxygen/voxel/sprite/cave/ceiling/root-5.vox new file mode 100644 index 0000000..4d8ff21 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/ceiling/root-5.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/ceiling/root-6.vox b/assets/voxygen/voxel/sprite/cave/ceiling/root-6.vox new file mode 100644 index 0000000..1497492 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/ceiling/root-6.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/grass_blue_long-0.vox b/assets/voxygen/voxel/sprite/cave/grass_blue_long-0.vox new file mode 100644 index 0000000..ea98bbe Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/grass_blue_long-0.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/grass_blue_long-1.vox b/assets/voxygen/voxel/sprite/cave/grass_blue_long-1.vox new file mode 100644 index 0000000..e892e1c Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/grass_blue_long-1.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/grass_blue_long-2.vox b/assets/voxygen/voxel/sprite/cave/grass_blue_long-2.vox new file mode 100644 index 0000000..848a76f Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/grass_blue_long-2.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/grass_blue_long-3.vox b/assets/voxygen/voxel/sprite/cave/grass_blue_long-3.vox new file mode 100644 index 0000000..0cd667e Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/grass_blue_long-3.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/grass_blue_long-4.vox b/assets/voxygen/voxel/sprite/cave/grass_blue_long-4.vox new file mode 100644 index 0000000..1ca585e Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/grass_blue_long-4.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/grass_blue_long-5.vox b/assets/voxygen/voxel/sprite/cave/grass_blue_long-5.vox new file mode 100644 index 0000000..4a71486 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/grass_blue_long-5.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/grass_blue_long-6.vox b/assets/voxygen/voxel/sprite/cave/grass_blue_long-6.vox new file mode 100644 index 0000000..52c1703 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/grass_blue_long-6.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/grass_blue_long-7.vox b/assets/voxygen/voxel/sprite/cave/grass_blue_long-7.vox new file mode 100644 index 0000000..406696d Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/grass_blue_long-7.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/grass_blue_med-0.vox b/assets/voxygen/voxel/sprite/cave/grass_blue_med-0.vox new file mode 100644 index 0000000..8e28165 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/grass_blue_med-0.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/grass_blue_med-1.vox b/assets/voxygen/voxel/sprite/cave/grass_blue_med-1.vox new file mode 100644 index 0000000..1773fa0 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/grass_blue_med-1.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/grass_blue_med-2.vox b/assets/voxygen/voxel/sprite/cave/grass_blue_med-2.vox new file mode 100644 index 0000000..e66edf0 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/grass_blue_med-2.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/grass_blue_med-3.vox b/assets/voxygen/voxel/sprite/cave/grass_blue_med-3.vox new file mode 100644 index 0000000..9fadbda Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/grass_blue_med-3.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/grass_blue_short-0.vox b/assets/voxygen/voxel/sprite/cave/grass_blue_short-0.vox new file mode 100644 index 0000000..4db9257 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/grass_blue_short-0.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/grass_blue_short-1.vox b/assets/voxygen/voxel/sprite/cave/grass_blue_short-1.vox new file mode 100644 index 0000000..9599de1 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/grass_blue_short-1.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/grass_blue_short-2.vox b/assets/voxygen/voxel/sprite/cave/grass_blue_short-2.vox new file mode 100644 index 0000000..25c2961 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/grass_blue_short-2.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/grass_blue_short-3.vox b/assets/voxygen/voxel/sprite/cave/grass_blue_short-3.vox new file mode 100644 index 0000000..69817b7 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/grass_blue_short-3.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/grass_blue_short-4.vox b/assets/voxygen/voxel/sprite/cave/grass_blue_short-4.vox new file mode 100644 index 0000000..c53327e Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/grass_blue_short-4.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/mushroom-0.vox b/assets/voxygen/voxel/sprite/cave/mushroom-0.vox new file mode 100644 index 0000000..bd0964f Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/mushroom-0.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/mushroom-1.vox b/assets/voxygen/voxel/sprite/cave/mushroom-1.vox new file mode 100644 index 0000000..b824175 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/mushroom-1.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/mushroom-10.vox b/assets/voxygen/voxel/sprite/cave/mushroom-10.vox new file mode 100644 index 0000000..7d3a657 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/mushroom-10.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/mushroom-11.vox b/assets/voxygen/voxel/sprite/cave/mushroom-11.vox new file mode 100644 index 0000000..2b01225 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/mushroom-11.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/mushroom-2.vox b/assets/voxygen/voxel/sprite/cave/mushroom-2.vox new file mode 100644 index 0000000..87d69de Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/mushroom-2.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/mushroom-3.vox b/assets/voxygen/voxel/sprite/cave/mushroom-3.vox new file mode 100644 index 0000000..7952c45 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/mushroom-3.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/mushroom-4.vox b/assets/voxygen/voxel/sprite/cave/mushroom-4.vox new file mode 100644 index 0000000..a13bfd9 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/mushroom-4.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/mushroom-5.vox b/assets/voxygen/voxel/sprite/cave/mushroom-5.vox new file mode 100644 index 0000000..c770439 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/mushroom-5.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/mushroom-6.vox b/assets/voxygen/voxel/sprite/cave/mushroom-6.vox new file mode 100644 index 0000000..e105e73 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/mushroom-6.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/mushroom-7.vox b/assets/voxygen/voxel/sprite/cave/mushroom-7.vox new file mode 100644 index 0000000..2097fa6 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/mushroom-7.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/mushroom-8.vox b/assets/voxygen/voxel/sprite/cave/mushroom-8.vox new file mode 100644 index 0000000..082c6e7 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/mushroom-8.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/mushroom-9.vox b/assets/voxygen/voxel/sprite/cave/mushroom-9.vox new file mode 100644 index 0000000..073f515 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/mushroom-9.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/spore_reed-0.vox b/assets/voxygen/voxel/sprite/cave/spore_reed-0.vox new file mode 100644 index 0000000..95a82a5 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/spore_reed-0.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/spore_reed-1.vox b/assets/voxygen/voxel/sprite/cave/spore_reed-1.vox new file mode 100644 index 0000000..1e29faf Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/spore_reed-1.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/spore_reed-2.vox b/assets/voxygen/voxel/sprite/cave/spore_reed-2.vox new file mode 100644 index 0000000..375ae76 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/spore_reed-2.vox differ diff --git a/assets/voxygen/voxel/sprite/cave/spore_reed-3.vox b/assets/voxygen/voxel/sprite/cave/spore_reed-3.vox new file mode 100644 index 0000000..b2657d9 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cave/spore_reed-3.vox differ diff --git a/assets/voxygen/voxel/sprite/cavern/lillypad-0.vox b/assets/voxygen/voxel/sprite/cavern/lillypad-0.vox new file mode 100644 index 0000000..cfbe8bf Binary files /dev/null and b/assets/voxygen/voxel/sprite/cavern/lillypad-0.vox differ diff --git a/assets/voxygen/voxel/sprite/cavern/lillypad-1.vox b/assets/voxygen/voxel/sprite/cavern/lillypad-1.vox new file mode 100644 index 0000000..41d654a Binary files /dev/null and b/assets/voxygen/voxel/sprite/cavern/lillypad-1.vox differ diff --git a/assets/voxygen/voxel/sprite/cavern/lillypad-2.vox b/assets/voxygen/voxel/sprite/cavern/lillypad-2.vox new file mode 100644 index 0000000..55bd1a2 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cavern/lillypad-2.vox differ diff --git a/assets/voxygen/voxel/sprite/cavern/lillypad-3.vox b/assets/voxygen/voxel/sprite/cavern/lillypad-3.vox new file mode 100644 index 0000000..66cc3d1 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cavern/lillypad-3.vox differ diff --git a/assets/voxygen/voxel/sprite/cavern/lillypad-4.vox b/assets/voxygen/voxel/sprite/cavern/lillypad-4.vox new file mode 100644 index 0000000..4734a99 Binary files /dev/null and b/assets/voxygen/voxel/sprite/cavern/lillypad-4.vox differ diff --git a/assets/voxygen/voxel/sprite/chests/chest.vox b/assets/voxygen/voxel/sprite/chests/chest.vox new file mode 100644 index 0000000..08f1aaa Binary files /dev/null and b/assets/voxygen/voxel/sprite/chests/chest.vox differ diff --git a/assets/voxygen/voxel/sprite/chests/chest_coral.vox b/assets/voxygen/voxel/sprite/chests/chest_coral.vox new file mode 100644 index 0000000..1c6c369 Binary files /dev/null and b/assets/voxygen/voxel/sprite/chests/chest_coral.vox differ diff --git a/assets/voxygen/voxel/sprite/chests/chest_dark.vox b/assets/voxygen/voxel/sprite/chests/chest_dark.vox new file mode 100644 index 0000000..20b16fa Binary files /dev/null and b/assets/voxygen/voxel/sprite/chests/chest_dark.vox differ diff --git a/assets/voxygen/voxel/sprite/chests/chest_demon.vox b/assets/voxygen/voxel/sprite/chests/chest_demon.vox new file mode 100644 index 0000000..fd41935 Binary files /dev/null and b/assets/voxygen/voxel/sprite/chests/chest_demon.vox differ diff --git a/assets/voxygen/voxel/sprite/chests/chest_gold.vox b/assets/voxygen/voxel/sprite/chests/chest_gold.vox new file mode 100644 index 0000000..8d83669 Binary files /dev/null and b/assets/voxygen/voxel/sprite/chests/chest_gold.vox differ diff --git a/assets/voxygen/voxel/sprite/chests/chest_haniwa_urn.vox b/assets/voxygen/voxel/sprite/chests/chest_haniwa_urn.vox new file mode 100644 index 0000000..cc88ec6 Binary files /dev/null and b/assets/voxygen/voxel/sprite/chests/chest_haniwa_urn.vox differ diff --git a/assets/voxygen/voxel/sprite/chests/chest_light.vox b/assets/voxygen/voxel/sprite/chests/chest_light.vox new file mode 100644 index 0000000..b5449a0 Binary files /dev/null and b/assets/voxygen/voxel/sprite/chests/chest_light.vox differ diff --git a/assets/voxygen/voxel/sprite/chests/chest_sahagin.vox b/assets/voxygen/voxel/sprite/chests/chest_sahagin.vox new file mode 100644 index 0000000..2a192c4 Binary files /dev/null and b/assets/voxygen/voxel/sprite/chests/chest_sahagin.vox differ diff --git a/assets/voxygen/voxel/sprite/chests/chest_skull.vox b/assets/voxygen/voxel/sprite/chests/chest_skull.vox new file mode 100644 index 0000000..112442f Binary files /dev/null and b/assets/voxygen/voxel/sprite/chests/chest_skull.vox differ diff --git a/assets/voxygen/voxel/sprite/chests/chest_terracotta.vox b/assets/voxygen/voxel/sprite/chests/chest_terracotta.vox new file mode 100644 index 0000000..2ef080a Binary files /dev/null and b/assets/voxygen/voxel/sprite/chests/chest_terracotta.vox differ diff --git a/assets/voxygen/voxel/sprite/chests/chest_vines.vox b/assets/voxygen/voxel/sprite/chests/chest_vines.vox new file mode 100644 index 0000000..5b76654 Binary files /dev/null and b/assets/voxygen/voxel/sprite/chests/chest_vines.vox differ diff --git a/assets/voxygen/voxel/sprite/cooking_pot/pot-0.vox b/assets/voxygen/voxel/sprite/cooking_pot/pot-0.vox new file mode 100644 index 0000000..f50108f Binary files /dev/null and b/assets/voxygen/voxel/sprite/cooking_pot/pot-0.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/blue_ricordea-1.vox b/assets/voxygen/voxel/sprite/coral/blue_ricordea-1.vox new file mode 100644 index 0000000..0e07555 Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/blue_ricordea-1.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/blue_ricordea-2.vox b/assets/voxygen/voxel/sprite/coral/blue_ricordea-2.vox new file mode 100644 index 0000000..8c4dd0a Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/blue_ricordea-2.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/blue_ricordea-3.vox b/assets/voxygen/voxel/sprite/coral/blue_ricordea-3.vox new file mode 100644 index 0000000..9362387 Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/blue_ricordea-3.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/green_brain_coral-0.vox b/assets/voxygen/voxel/sprite/coral/green_brain_coral-0.vox new file mode 100644 index 0000000..5f34fc2 Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/green_brain_coral-0.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/green_brain_coral-1.vox b/assets/voxygen/voxel/sprite/coral/green_brain_coral-1.vox new file mode 100644 index 0000000..7cd9dbc Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/green_brain_coral-1.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/green_brain_coral-2.vox b/assets/voxygen/voxel/sprite/coral/green_brain_coral-2.vox new file mode 100644 index 0000000..a154d7a Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/green_brain_coral-2.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/green_ricordea-1.vox b/assets/voxygen/voxel/sprite/coral/green_ricordea-1.vox new file mode 100644 index 0000000..8071335 Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/green_ricordea-1.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/green_ricordea-2.vox b/assets/voxygen/voxel/sprite/coral/green_ricordea-2.vox new file mode 100644 index 0000000..bcba68c Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/green_ricordea-2.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/green_ricordea-3.vox b/assets/voxygen/voxel/sprite/coral/green_ricordea-3.vox new file mode 100644 index 0000000..79dde34 Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/green_ricordea-3.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/green_ricordea-4.vox b/assets/voxygen/voxel/sprite/coral/green_ricordea-4.vox new file mode 100644 index 0000000..55d85d3 Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/green_ricordea-4.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/pink_birdsnest_coral-0.vox b/assets/voxygen/voxel/sprite/coral/pink_birdsnest_coral-0.vox new file mode 100644 index 0000000..c0ca882 Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/pink_birdsnest_coral-0.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/pink_birdsnest_coral-1.vox b/assets/voxygen/voxel/sprite/coral/pink_birdsnest_coral-1.vox new file mode 100644 index 0000000..ac5042d Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/pink_birdsnest_coral-1.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/pink_birdsnest_coral-2.vox b/assets/voxygen/voxel/sprite/coral/pink_birdsnest_coral-2.vox new file mode 100644 index 0000000..da83b02 Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/pink_birdsnest_coral-2.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/pink_birdsnest_coral-3.vox b/assets/voxygen/voxel/sprite/coral/pink_birdsnest_coral-3.vox new file mode 100644 index 0000000..8d82597 Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/pink_birdsnest_coral-3.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/pink_brain_coral-0.vox b/assets/voxygen/voxel/sprite/coral/pink_brain_coral-0.vox new file mode 100644 index 0000000..27b229d Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/pink_brain_coral-0.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/pink_brain_coral-1.vox b/assets/voxygen/voxel/sprite/coral/pink_brain_coral-1.vox new file mode 100644 index 0000000..382ce5d Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/pink_brain_coral-1.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/plating_acropora-0.vox b/assets/voxygen/voxel/sprite/coral/plating_acropora-0.vox new file mode 100644 index 0000000..ace7717 Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/plating_acropora-0.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/plating_acropora-1.vox b/assets/voxygen/voxel/sprite/coral/plating_acropora-1.vox new file mode 100644 index 0000000..c014b41 Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/plating_acropora-1.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/plating_acropora-2.vox b/assets/voxygen/voxel/sprite/coral/plating_acropora-2.vox new file mode 100644 index 0000000..39aa314 Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/plating_acropora-2.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/plating_acropora-3.vox b/assets/voxygen/voxel/sprite/coral/plating_acropora-3.vox new file mode 100644 index 0000000..5be9a06 Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/plating_acropora-3.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/plating_acropora-4.vox b/assets/voxygen/voxel/sprite/coral/plating_acropora-4.vox new file mode 100644 index 0000000..d043ce5 Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/plating_acropora-4.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/plating_acropora-5.vox b/assets/voxygen/voxel/sprite/coral/plating_acropora-5.vox new file mode 100644 index 0000000..3b9a8c2 Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/plating_acropora-5.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/plating_acropora-6.vox b/assets/voxygen/voxel/sprite/coral/plating_acropora-6.vox new file mode 100644 index 0000000..8830ac0 Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/plating_acropora-6.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/plating_acropora-7.vox b/assets/voxygen/voxel/sprite/coral/plating_acropora-7.vox new file mode 100644 index 0000000..af621c0 Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/plating_acropora-7.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/purp-0.vox b/assets/voxygen/voxel/sprite/coral/purp-0.vox new file mode 100644 index 0000000..bf5d707 Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/purp-0.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/purp-1.vox b/assets/voxygen/voxel/sprite/coral/purp-1.vox new file mode 100644 index 0000000..21e1464 Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/purp-1.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/purple_finger_soft_coral-0.vox b/assets/voxygen/voxel/sprite/coral/purple_finger_soft_coral-0.vox new file mode 100644 index 0000000..2df7407 Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/purple_finger_soft_coral-0.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/purple_finger_soft_coral-1.vox b/assets/voxygen/voxel/sprite/coral/purple_finger_soft_coral-1.vox new file mode 100644 index 0000000..e8f3e7c Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/purple_finger_soft_coral-1.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/red_fire_coral-0.vox b/assets/voxygen/voxel/sprite/coral/red_fire_coral-0.vox new file mode 100644 index 0000000..4d81974 Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/red_fire_coral-0.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/red_fire_coral-1.vox b/assets/voxygen/voxel/sprite/coral/red_fire_coral-1.vox new file mode 100644 index 0000000..fdd6324 Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/red_fire_coral-1.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/red_fire_coral-2.vox b/assets/voxygen/voxel/sprite/coral/red_fire_coral-2.vox new file mode 100644 index 0000000..12cf9b7 Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/red_fire_coral-2.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/red_sea_fan-1.vox b/assets/voxygen/voxel/sprite/coral/red_sea_fan-1.vox new file mode 100644 index 0000000..ab7b10a Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/red_sea_fan-1.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/red_sea_fan-2.vox b/assets/voxygen/voxel/sprite/coral/red_sea_fan-2.vox new file mode 100644 index 0000000..cd09987 Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/red_sea_fan-2.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/red_sea_fan-3.vox b/assets/voxygen/voxel/sprite/coral/red_sea_fan-3.vox new file mode 100644 index 0000000..11169e0 Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/red_sea_fan-3.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/red_sea_fan-4.vox b/assets/voxygen/voxel/sprite/coral/red_sea_fan-4.vox new file mode 100644 index 0000000..f3a5cee Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/red_sea_fan-4.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/sea_anemone-1.vox b/assets/voxygen/voxel/sprite/coral/sea_anemone-1.vox new file mode 100644 index 0000000..ab9afa9 Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/sea_anemone-1.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/yellow_fire_coral-0.vox b/assets/voxygen/voxel/sprite/coral/yellow_fire_coral-0.vox new file mode 100644 index 0000000..3a20707 Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/yellow_fire_coral-0.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/yellow_gorgonian-0.vox b/assets/voxygen/voxel/sprite/coral/yellow_gorgonian-0.vox new file mode 100644 index 0000000..5c5943f Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/yellow_gorgonian-0.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/yellow_gorgonian-1.vox b/assets/voxygen/voxel/sprite/coral/yellow_gorgonian-1.vox new file mode 100644 index 0000000..cdec31e Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/yellow_gorgonian-1.vox differ diff --git a/assets/voxygen/voxel/sprite/coral/yellow_gorgonian-2.vox b/assets/voxygen/voxel/sprite/coral/yellow_gorgonian-2.vox new file mode 100644 index 0000000..baa784d Binary files /dev/null and b/assets/voxygen/voxel/sprite/coral/yellow_gorgonian-2.vox differ diff --git a/assets/voxygen/voxel/sprite/corn/corn-0.vox b/assets/voxygen/voxel/sprite/corn/corn-0.vox new file mode 100644 index 0000000..f29a013 Binary files /dev/null and b/assets/voxygen/voxel/sprite/corn/corn-0.vox differ diff --git a/assets/voxygen/voxel/sprite/corn/corn-1.vox b/assets/voxygen/voxel/sprite/corn/corn-1.vox new file mode 100644 index 0000000..8fee555 Binary files /dev/null and b/assets/voxygen/voxel/sprite/corn/corn-1.vox differ diff --git a/assets/voxygen/voxel/sprite/corn/corn-2.vox b/assets/voxygen/voxel/sprite/corn/corn-2.vox new file mode 100644 index 0000000..9cb07fe Binary files /dev/null and b/assets/voxygen/voxel/sprite/corn/corn-2.vox differ diff --git a/assets/voxygen/voxel/sprite/corn/corn-3.vox b/assets/voxygen/voxel/sprite/corn/corn-3.vox new file mode 100644 index 0000000..0b1b874 Binary files /dev/null and b/assets/voxygen/voxel/sprite/corn/corn-3.vox differ diff --git a/assets/voxygen/voxel/sprite/corn/corn-4.vox b/assets/voxygen/voxel/sprite/corn/corn-4.vox new file mode 100644 index 0000000..8addb37 Binary files /dev/null and b/assets/voxygen/voxel/sprite/corn/corn-4.vox differ diff --git a/assets/voxygen/voxel/sprite/corn/corn-5.vox b/assets/voxygen/voxel/sprite/corn/corn-5.vox new file mode 100644 index 0000000..7d443c9 Binary files /dev/null and b/assets/voxygen/voxel/sprite/corn/corn-5.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_bench/crafting_bench-0.vox b/assets/voxygen/voxel/sprite/crafting_bench/crafting_bench-0.vox new file mode 100644 index 0000000..6d66083 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_bench/crafting_bench-0.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/abyssal_heart.vox b/assets/voxygen/voxel/sprite/crafting_ing/abyssal_heart.vox new file mode 100644 index 0000000..acc8c71 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/abyssal_heart.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/alkahest.vox b/assets/voxygen/voxel/sprite/crafting_ing/alkahest.vox new file mode 100644 index 0000000..926ecc7 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/alkahest.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/animal_misc/claw.vox b/assets/voxygen/voxel/sprite/crafting_ing/animal_misc/claw.vox new file mode 100644 index 0000000..8a412ca Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/animal_misc/claw.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/animal_misc/fur.vox b/assets/voxygen/voxel/sprite/crafting_ing/animal_misc/fur.vox new file mode 100644 index 0000000..bf4c6ba Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/animal_misc/fur.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/animal_misc/grim_eyeball.vox b/assets/voxygen/voxel/sprite/crafting_ing/animal_misc/grim_eyeball.vox new file mode 100644 index 0000000..ad29af5 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/animal_misc/grim_eyeball.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/animal_misc/large_horn.vox b/assets/voxygen/voxel/sprite/crafting_ing/animal_misc/large_horn.vox new file mode 100644 index 0000000..e586173 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/animal_misc/large_horn.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/animal_misc/lively_vine.vox b/assets/voxygen/voxel/sprite/crafting_ing/animal_misc/lively_vine.vox new file mode 100644 index 0000000..5ec8636 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/animal_misc/lively_vine.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/animal_misc/phoenix_feather.vox b/assets/voxygen/voxel/sprite/crafting_ing/animal_misc/phoenix_feather.vox new file mode 100644 index 0000000..33efca8 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/animal_misc/phoenix_feather.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/animal_misc/sharp_fang.vox b/assets/voxygen/voxel/sprite/crafting_ing/animal_misc/sharp_fang.vox new file mode 100644 index 0000000..be9a7f4 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/animal_misc/sharp_fang.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/animal_misc/venom_sac.vox b/assets/voxygen/voxel/sprite/crafting_ing/animal_misc/venom_sac.vox new file mode 100644 index 0000000..1944cb3 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/animal_misc/venom_sac.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/animal_misc/viscous_ooze.vox b/assets/voxygen/voxel/sprite/crafting_ing/animal_misc/viscous_ooze.vox new file mode 100644 index 0000000..9d7efb5 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/animal_misc/viscous_ooze.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/bowl.vox b/assets/voxygen/voxel/sprite/crafting_ing/bowl.vox new file mode 100644 index 0000000..cbb5a9a Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/bowl.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/brinestone.vox b/assets/voxygen/voxel/sprite/crafting_ing/brinestone.vox new file mode 100644 index 0000000..3368218 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/brinestone.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/cloth/cloth_strips.vox b/assets/voxygen/voxel/sprite/crafting_ing/cloth/cloth_strips.vox new file mode 100644 index 0000000..6622452 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/cloth/cloth_strips.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/cloth/cotton.vox b/assets/voxygen/voxel/sprite/crafting_ing/cloth/cotton.vox new file mode 100644 index 0000000..1aed748 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/cloth/cotton.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/cloth/lifecloth.vox b/assets/voxygen/voxel/sprite/crafting_ing/cloth/lifecloth.vox new file mode 100644 index 0000000..95cdc63 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/cloth/lifecloth.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/cloth/linen.vox b/assets/voxygen/voxel/sprite/crafting_ing/cloth/linen.vox new file mode 100644 index 0000000..435a6d4 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/cloth/linen.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/cloth/linen_red.vox b/assets/voxygen/voxel/sprite/crafting_ing/cloth/linen_red.vox new file mode 100644 index 0000000..e44fde5 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/cloth/linen_red.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/cloth/moonweave.vox b/assets/voxygen/voxel/sprite/crafting_ing/cloth/moonweave.vox new file mode 100644 index 0000000..ba4e587 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/cloth/moonweave.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/cloth/silk.vox b/assets/voxygen/voxel/sprite/crafting_ing/cloth/silk.vox new file mode 100644 index 0000000..64d4b0b Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/cloth/silk.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/cloth/sunsilk.vox b/assets/voxygen/voxel/sprite/crafting_ing/cloth/sunsilk.vox new file mode 100644 index 0000000..7c53233 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/cloth/sunsilk.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/cloth/wool.vox b/assets/voxygen/voxel/sprite/crafting_ing/cloth/wool.vox new file mode 100644 index 0000000..055eaf9 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/cloth/wool.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/coral_branch.vox b/assets/voxygen/voxel/sprite/crafting_ing/coral_branch.vox new file mode 100644 index 0000000..14d96e8 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/coral_branch.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/cotton_boll.vox b/assets/voxygen/voxel/sprite/crafting_ing/cotton_boll.vox new file mode 100644 index 0000000..d6fa8f0 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/cotton_boll.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/cursed_bead.vox b/assets/voxygen/voxel/sprite/crafting_ing/cursed_bead.vox new file mode 100644 index 0000000..d2f0942 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/cursed_bead.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/dwarven_battery.vox b/assets/voxygen/voxel/sprite/crafting_ing/dwarven_battery.vox new file mode 100644 index 0000000..419ac15 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/dwarven_battery.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/earthern_shard.vox b/assets/voxygen/voxel/sprite/crafting_ing/earthern_shard.vox new file mode 100644 index 0000000..246cfc1 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/earthern_shard.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/golem_core.vox b/assets/voxygen/voxel/sprite/crafting_ing/golem_core.vox new file mode 100644 index 0000000..fa95960 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/golem_core.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/golemite_slab.vox b/assets/voxygen/voxel/sprite/crafting_ing/golemite_slab.vox new file mode 100644 index 0000000..4b42292 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/golemite_slab.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/hide/animal_hide.vox b/assets/voxygen/voxel/sprite/crafting_ing/hide/animal_hide.vox new file mode 100644 index 0000000..51b628a Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/hide/animal_hide.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/hide/carapace.vox b/assets/voxygen/voxel/sprite/crafting_ing/hide/carapace.vox new file mode 100644 index 0000000..dd0df13 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/hide/carapace.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/hide/dragon_scale.vox b/assets/voxygen/voxel/sprite/crafting_ing/hide/dragon_scale.vox new file mode 100644 index 0000000..f1805fb Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/hide/dragon_scale.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/hide/plate.vox b/assets/voxygen/voxel/sprite/crafting_ing/hide/plate.vox new file mode 100644 index 0000000..90c7f83 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/hide/plate.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/hide/rugged.vox b/assets/voxygen/voxel/sprite/crafting_ing/hide/rugged.vox new file mode 100644 index 0000000..165a1f5 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/hide/rugged.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/hide/rugged_hide.vox b/assets/voxygen/voxel/sprite/crafting_ing/hide/rugged_hide.vox new file mode 100644 index 0000000..473af5d Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/hide/rugged_hide.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/hide/scale.vox b/assets/voxygen/voxel/sprite/crafting_ing/hide/scale.vox new file mode 100644 index 0000000..46f1d06 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/hide/scale.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/hide/tough_hide.vox b/assets/voxygen/voxel/sprite/crafting_ing/hide/tough_hide.vox new file mode 100644 index 0000000..30a2cdf Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/hide/tough_hide.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/hide/troll_hide.vox b/assets/voxygen/voxel/sprite/crafting_ing/hide/troll_hide.vox new file mode 100644 index 0000000..7f7074a Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/hide/troll_hide.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/leather.vox b/assets/voxygen/voxel/sprite/crafting_ing/leather.vox new file mode 100644 index 0000000..1d28e6b Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/leather.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/leather/leather_strips.vox b/assets/voxygen/voxel/sprite/crafting_ing/leather/leather_strips.vox new file mode 100644 index 0000000..2f9aea3 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/leather/leather_strips.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/leather/rigid.vox b/assets/voxygen/voxel/sprite/crafting_ing/leather/rigid.vox new file mode 100644 index 0000000..c0a3215 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/leather/rigid.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/leather/rigid_leather.vox b/assets/voxygen/voxel/sprite/crafting_ing/leather/rigid_leather.vox new file mode 100644 index 0000000..c5e1a1b Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/leather/rigid_leather.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/leather/simple_leather.vox b/assets/voxygen/voxel/sprite/crafting_ing/leather/simple_leather.vox new file mode 100644 index 0000000..b8dd92f Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/leather/simple_leather.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/leather/thick_leather.vox b/assets/voxygen/voxel/sprite/crafting_ing/leather/thick_leather.vox new file mode 100644 index 0000000..88eb762 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/leather/thick_leather.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/living_embers.vox b/assets/voxygen/voxel/sprite/crafting_ing/living_embers.vox new file mode 100644 index 0000000..231e171 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/living_embers.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/oil.vox b/assets/voxygen/voxel/sprite/crafting_ing/oil.vox new file mode 100644 index 0000000..d809ef4 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/oil.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/pearl.vox b/assets/voxygen/voxel/sprite/crafting_ing/pearl.vox new file mode 100644 index 0000000..ce460d4 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/pearl.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/plant_fiber.vox b/assets/voxygen/voxel/sprite/crafting_ing/plant_fiber.vox new file mode 100644 index 0000000..798837e Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/plant_fiber.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/resin.vox b/assets/voxygen/voxel/sprite/crafting_ing/resin.vox new file mode 100644 index 0000000..85b0a5d Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/resin.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/sentient_seed.vox b/assets/voxygen/voxel/sprite/crafting_ing/sentient_seed.vox new file mode 100644 index 0000000..126ec3e Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/sentient_seed.vox differ diff --git a/assets/voxygen/voxel/sprite/crafting_ing/sticky_thread.vox b/assets/voxygen/voxel/sprite/crafting_ing/sticky_thread.vox new file mode 100644 index 0000000..8ac10c9 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crafting_ing/sticky_thread.vox differ diff --git a/assets/voxygen/voxel/sprite/crystal/glow_ice_crystal_0.vox b/assets/voxygen/voxel/sprite/crystal/glow_ice_crystal_0.vox new file mode 100644 index 0000000..33496d7 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crystal/glow_ice_crystal_0.vox differ diff --git a/assets/voxygen/voxel/sprite/crystal/glow_ice_crystal_1.vox b/assets/voxygen/voxel/sprite/crystal/glow_ice_crystal_1.vox new file mode 100644 index 0000000..6f0fb78 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crystal/glow_ice_crystal_1.vox differ diff --git a/assets/voxygen/voxel/sprite/crystal/glow_ice_crystal_2.vox b/assets/voxygen/voxel/sprite/crystal/glow_ice_crystal_2.vox new file mode 100644 index 0000000..d02b079 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crystal/glow_ice_crystal_2.vox differ diff --git a/assets/voxygen/voxel/sprite/crystal/glow_ice_crystal_3.vox b/assets/voxygen/voxel/sprite/crystal/glow_ice_crystal_3.vox new file mode 100644 index 0000000..33496d7 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crystal/glow_ice_crystal_3.vox differ diff --git a/assets/voxygen/voxel/sprite/crystal/glow_ice_crystal_4.vox b/assets/voxygen/voxel/sprite/crystal/glow_ice_crystal_4.vox new file mode 100644 index 0000000..6f0fb78 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crystal/glow_ice_crystal_4.vox differ diff --git a/assets/voxygen/voxel/sprite/crystal/glow_ice_crystal_5.vox b/assets/voxygen/voxel/sprite/crystal/glow_ice_crystal_5.vox new file mode 100644 index 0000000..d02b079 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crystal/glow_ice_crystal_5.vox differ diff --git a/assets/voxygen/voxel/sprite/crystal/ice_crystal_0.vox b/assets/voxygen/voxel/sprite/crystal/ice_crystal_0.vox new file mode 100644 index 0000000..a534e05 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crystal/ice_crystal_0.vox differ diff --git a/assets/voxygen/voxel/sprite/crystal/ice_crystal_1.vox b/assets/voxygen/voxel/sprite/crystal/ice_crystal_1.vox new file mode 100644 index 0000000..621a33b Binary files /dev/null and b/assets/voxygen/voxel/sprite/crystal/ice_crystal_1.vox differ diff --git a/assets/voxygen/voxel/sprite/crystal/ice_crystal_10.vox b/assets/voxygen/voxel/sprite/crystal/ice_crystal_10.vox new file mode 100644 index 0000000..2c857fd Binary files /dev/null and b/assets/voxygen/voxel/sprite/crystal/ice_crystal_10.vox differ diff --git a/assets/voxygen/voxel/sprite/crystal/ice_crystal_11.vox b/assets/voxygen/voxel/sprite/crystal/ice_crystal_11.vox new file mode 100644 index 0000000..d9a1742 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crystal/ice_crystal_11.vox differ diff --git a/assets/voxygen/voxel/sprite/crystal/ice_crystal_2.vox b/assets/voxygen/voxel/sprite/crystal/ice_crystal_2.vox new file mode 100644 index 0000000..2e7c0e9 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crystal/ice_crystal_2.vox differ diff --git a/assets/voxygen/voxel/sprite/crystal/ice_crystal_3.vox b/assets/voxygen/voxel/sprite/crystal/ice_crystal_3.vox new file mode 100644 index 0000000..7c4a0e8 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crystal/ice_crystal_3.vox differ diff --git a/assets/voxygen/voxel/sprite/crystal/ice_crystal_4.vox b/assets/voxygen/voxel/sprite/crystal/ice_crystal_4.vox new file mode 100644 index 0000000..2e7c0e9 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crystal/ice_crystal_4.vox differ diff --git a/assets/voxygen/voxel/sprite/crystal/ice_crystal_5.vox b/assets/voxygen/voxel/sprite/crystal/ice_crystal_5.vox new file mode 100644 index 0000000..7c4a0e8 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crystal/ice_crystal_5.vox differ diff --git a/assets/voxygen/voxel/sprite/crystal/ice_crystal_6.vox b/assets/voxygen/voxel/sprite/crystal/ice_crystal_6.vox new file mode 100644 index 0000000..5b2671e Binary files /dev/null and b/assets/voxygen/voxel/sprite/crystal/ice_crystal_6.vox differ diff --git a/assets/voxygen/voxel/sprite/crystal/ice_crystal_7.vox b/assets/voxygen/voxel/sprite/crystal/ice_crystal_7.vox new file mode 100644 index 0000000..9017c43 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crystal/ice_crystal_7.vox differ diff --git a/assets/voxygen/voxel/sprite/crystal/ice_crystal_8.vox b/assets/voxygen/voxel/sprite/crystal/ice_crystal_8.vox new file mode 100644 index 0000000..47b2b18 Binary files /dev/null and b/assets/voxygen/voxel/sprite/crystal/ice_crystal_8.vox differ diff --git a/assets/voxygen/voxel/sprite/crystal/ice_crystal_9.vox b/assets/voxygen/voxel/sprite/crystal/ice_crystal_9.vox new file mode 100644 index 0000000..161706b Binary files /dev/null and b/assets/voxygen/voxel/sprite/crystal/ice_crystal_9.vox differ diff --git a/assets/voxygen/voxel/sprite/dead_bush/1.vox b/assets/voxygen/voxel/sprite/dead_bush/1.vox new file mode 100644 index 0000000..74e57d2 Binary files /dev/null and b/assets/voxygen/voxel/sprite/dead_bush/1.vox differ diff --git a/assets/voxygen/voxel/sprite/dead_bush/2.vox b/assets/voxygen/voxel/sprite/dead_bush/2.vox new file mode 100644 index 0000000..bba64f4 Binary files /dev/null and b/assets/voxygen/voxel/sprite/dead_bush/2.vox differ diff --git a/assets/voxygen/voxel/sprite/dead_bush/3.vox b/assets/voxygen/voxel/sprite/dead_bush/3.vox new file mode 100644 index 0000000..7c6874d Binary files /dev/null and b/assets/voxygen/voxel/sprite/dead_bush/3.vox differ diff --git a/assets/voxygen/voxel/sprite/dead_bush/4.vox b/assets/voxygen/voxel/sprite/dead_bush/4.vox new file mode 100644 index 0000000..2d85d34 Binary files /dev/null and b/assets/voxygen/voxel/sprite/dead_bush/4.vox differ diff --git a/assets/voxygen/voxel/sprite/dead_plant/dead_plant-0.vox b/assets/voxygen/voxel/sprite/dead_plant/dead_plant-0.vox new file mode 100644 index 0000000..99743be Binary files /dev/null and b/assets/voxygen/voxel/sprite/dead_plant/dead_plant-0.vox differ diff --git a/assets/voxygen/voxel/sprite/dead_plant/dead_plant-1.vox b/assets/voxygen/voxel/sprite/dead_plant/dead_plant-1.vox new file mode 100644 index 0000000..92e7dd4 Binary files /dev/null and b/assets/voxygen/voxel/sprite/dead_plant/dead_plant-1.vox differ diff --git a/assets/voxygen/voxel/sprite/dead_plant/dead_plant-2.vox b/assets/voxygen/voxel/sprite/dead_plant/dead_plant-2.vox new file mode 100644 index 0000000..cded2b6 Binary files /dev/null and b/assets/voxygen/voxel/sprite/dead_plant/dead_plant-2.vox differ diff --git a/assets/voxygen/voxel/sprite/dead_plant/dead_plant-3.vox b/assets/voxygen/voxel/sprite/dead_plant/dead_plant-3.vox new file mode 100644 index 0000000..9a4e722 Binary files /dev/null and b/assets/voxygen/voxel/sprite/dead_plant/dead_plant-3.vox differ diff --git a/assets/voxygen/voxel/sprite/door/door-0.vox b/assets/voxygen/voxel/sprite/door/door-0.vox new file mode 100644 index 0000000..aa92b1b Binary files /dev/null and b/assets/voxygen/voxel/sprite/door/door-0.vox differ diff --git a/assets/voxygen/voxel/sprite/door/door-wide.vox b/assets/voxygen/voxel/sprite/door/door-wide.vox new file mode 100644 index 0000000..249f472 Binary files /dev/null and b/assets/voxygen/voxel/sprite/door/door-wide.vox differ diff --git a/assets/voxygen/voxel/sprite/door/door_dark-0.vox b/assets/voxygen/voxel/sprite/door/door_dark-0.vox new file mode 100644 index 0000000..7fb660f Binary files /dev/null and b/assets/voxygen/voxel/sprite/door/door_dark-0.vox differ diff --git a/assets/voxygen/voxel/sprite/ember/1.vox b/assets/voxygen/voxel/sprite/ember/1.vox new file mode 100644 index 0000000..37b3fff Binary files /dev/null and b/assets/voxygen/voxel/sprite/ember/1.vox differ diff --git a/assets/voxygen/voxel/sprite/ember/dummy.vox b/assets/voxygen/voxel/sprite/ember/dummy.vox new file mode 100644 index 0000000..8c0e6ba Binary files /dev/null and b/assets/voxygen/voxel/sprite/ember/dummy.vox differ diff --git a/assets/voxygen/voxel/sprite/farms/fence_0.vox b/assets/voxygen/voxel/sprite/farms/fence_0.vox new file mode 100644 index 0000000..8d5b3d3 Binary files /dev/null and b/assets/voxygen/voxel/sprite/farms/fence_0.vox differ diff --git a/assets/voxygen/voxel/sprite/farms/fence_1.vox b/assets/voxygen/voxel/sprite/farms/fence_1.vox new file mode 100644 index 0000000..52b6259 Binary files /dev/null and b/assets/voxygen/voxel/sprite/farms/fence_1.vox differ diff --git a/assets/voxygen/voxel/sprite/farms/fence_2.vox b/assets/voxygen/voxel/sprite/farms/fence_2.vox new file mode 100644 index 0000000..277236f Binary files /dev/null and b/assets/voxygen/voxel/sprite/farms/fence_2.vox differ diff --git a/assets/voxygen/voxel/sprite/farms/fence_3.vox b/assets/voxygen/voxel/sprite/farms/fence_3.vox new file mode 100644 index 0000000..a57d120 Binary files /dev/null and b/assets/voxygen/voxel/sprite/farms/fence_3.vox differ diff --git a/assets/voxygen/voxel/sprite/farms/fence_4.vox b/assets/voxygen/voxel/sprite/farms/fence_4.vox new file mode 100644 index 0000000..c07bce2 Binary files /dev/null and b/assets/voxygen/voxel/sprite/farms/fence_4.vox differ diff --git a/assets/voxygen/voxel/sprite/ferns/1.vox b/assets/voxygen/voxel/sprite/ferns/1.vox new file mode 100644 index 0000000..3d9c557 Binary files /dev/null and b/assets/voxygen/voxel/sprite/ferns/1.vox differ diff --git a/assets/voxygen/voxel/sprite/ferns/10.vox b/assets/voxygen/voxel/sprite/ferns/10.vox new file mode 100644 index 0000000..772df6b Binary files /dev/null and b/assets/voxygen/voxel/sprite/ferns/10.vox differ diff --git a/assets/voxygen/voxel/sprite/ferns/11.vox b/assets/voxygen/voxel/sprite/ferns/11.vox new file mode 100644 index 0000000..fd74d62 Binary files /dev/null and b/assets/voxygen/voxel/sprite/ferns/11.vox differ diff --git a/assets/voxygen/voxel/sprite/ferns/12.vox b/assets/voxygen/voxel/sprite/ferns/12.vox new file mode 100644 index 0000000..7a6cc4c Binary files /dev/null and b/assets/voxygen/voxel/sprite/ferns/12.vox differ diff --git a/assets/voxygen/voxel/sprite/ferns/2.vox b/assets/voxygen/voxel/sprite/ferns/2.vox new file mode 100644 index 0000000..5f639db Binary files /dev/null and b/assets/voxygen/voxel/sprite/ferns/2.vox differ diff --git a/assets/voxygen/voxel/sprite/ferns/3.vox b/assets/voxygen/voxel/sprite/ferns/3.vox new file mode 100644 index 0000000..5f0dab8 Binary files /dev/null and b/assets/voxygen/voxel/sprite/ferns/3.vox differ diff --git a/assets/voxygen/voxel/sprite/ferns/4.vox b/assets/voxygen/voxel/sprite/ferns/4.vox new file mode 100644 index 0000000..6346f00 Binary files /dev/null and b/assets/voxygen/voxel/sprite/ferns/4.vox differ diff --git a/assets/voxygen/voxel/sprite/ferns/5.vox b/assets/voxygen/voxel/sprite/ferns/5.vox new file mode 100644 index 0000000..3d94f97 Binary files /dev/null and b/assets/voxygen/voxel/sprite/ferns/5.vox differ diff --git a/assets/voxygen/voxel/sprite/ferns/6.vox b/assets/voxygen/voxel/sprite/ferns/6.vox new file mode 100644 index 0000000..f35637b Binary files /dev/null and b/assets/voxygen/voxel/sprite/ferns/6.vox differ diff --git a/assets/voxygen/voxel/sprite/ferns/7.vox b/assets/voxygen/voxel/sprite/ferns/7.vox new file mode 100644 index 0000000..e7b377f Binary files /dev/null and b/assets/voxygen/voxel/sprite/ferns/7.vox differ diff --git a/assets/voxygen/voxel/sprite/ferns/8.vox b/assets/voxygen/voxel/sprite/ferns/8.vox new file mode 100644 index 0000000..04dad8a Binary files /dev/null and b/assets/voxygen/voxel/sprite/ferns/8.vox differ diff --git a/assets/voxygen/voxel/sprite/ferns/9.vox b/assets/voxygen/voxel/sprite/ferns/9.vox new file mode 100644 index 0000000..b1f56b4 Binary files /dev/null and b/assets/voxygen/voxel/sprite/ferns/9.vox differ diff --git a/assets/voxygen/voxel/sprite/ferns/fern-0.vox b/assets/voxygen/voxel/sprite/ferns/fern-0.vox new file mode 100644 index 0000000..ff5517f Binary files /dev/null and b/assets/voxygen/voxel/sprite/ferns/fern-0.vox differ diff --git a/assets/voxygen/voxel/sprite/flax/flax-0.vox b/assets/voxygen/voxel/sprite/flax/flax-0.vox new file mode 100644 index 0000000..b3a8112 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flax/flax-0.vox differ diff --git a/assets/voxygen/voxel/sprite/flax/flax-1.vox b/assets/voxygen/voxel/sprite/flax/flax-1.vox new file mode 100644 index 0000000..edcbf39 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flax/flax-1.vox differ diff --git a/assets/voxygen/voxel/sprite/flax/flax-2.vox b/assets/voxygen/voxel/sprite/flax/flax-2.vox new file mode 100644 index 0000000..fb7a8bc Binary files /dev/null and b/assets/voxygen/voxel/sprite/flax/flax-2.vox differ diff --git a/assets/voxygen/voxel/sprite/flax/flax-3.vox b/assets/voxygen/voxel/sprite/flax/flax-3.vox new file mode 100644 index 0000000..b123b37 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flax/flax-3.vox differ diff --git a/assets/voxygen/voxel/sprite/flax/flax-4.vox b/assets/voxygen/voxel/sprite/flax/flax-4.vox new file mode 100644 index 0000000..5191f8e Binary files /dev/null and b/assets/voxygen/voxel/sprite/flax/flax-4.vox differ diff --git a/assets/voxygen/voxel/sprite/flax/flax-5.vox b/assets/voxygen/voxel/sprite/flax/flax-5.vox new file mode 100644 index 0000000..8a02195 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flax/flax-5.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/cotton.vox b/assets/voxygen/voxel/sprite/flowers/cotton.vox new file mode 100644 index 0000000..b0743ba Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/cotton.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flax.vox b/assets/voxygen/voxel/sprite/flowers/flax.vox new file mode 100644 index 0000000..f625a57 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flax.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_blue-10.vox b/assets/voxygen/voxel/sprite/flowers/flower_blue-10.vox new file mode 100644 index 0000000..d4e92c2 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_blue-10.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_blue-8.vox b/assets/voxygen/voxel/sprite/flowers/flower_blue-8.vox new file mode 100644 index 0000000..3badf1e Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_blue-8.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_blue-9.vox b/assets/voxygen/voxel/sprite/flowers/flower_blue-9.vox new file mode 100644 index 0000000..a32db53 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_blue-9.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_blue_1.vox b/assets/voxygen/voxel/sprite/flowers/flower_blue_1.vox new file mode 100644 index 0000000..e9a03e0 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_blue_1.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_blue_2.vox b/assets/voxygen/voxel/sprite/flowers/flower_blue_2.vox new file mode 100644 index 0000000..556fea6 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_blue_2.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_blue_3.vox b/assets/voxygen/voxel/sprite/flowers/flower_blue_3.vox new file mode 100644 index 0000000..b9ee5ec Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_blue_3.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_blue_4.vox b/assets/voxygen/voxel/sprite/flowers/flower_blue_4.vox new file mode 100644 index 0000000..6c13bd8 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_blue_4.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_blue_5.vox b/assets/voxygen/voxel/sprite/flowers/flower_blue_5.vox new file mode 100644 index 0000000..56f1a41 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_blue_5.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_blue_6.vox b/assets/voxygen/voxel/sprite/flowers/flower_blue_6.vox new file mode 100644 index 0000000..645159d Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_blue_6.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_blue_7.vox b/assets/voxygen/voxel/sprite/flowers/flower_blue_7.vox new file mode 100644 index 0000000..118944a Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_blue_7.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_pink_1.vox b/assets/voxygen/voxel/sprite/flowers/flower_pink_1.vox new file mode 100644 index 0000000..486dfb6 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_pink_1.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_pink_2.vox b/assets/voxygen/voxel/sprite/flowers/flower_pink_2.vox new file mode 100644 index 0000000..01d8e2d Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_pink_2.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_pink_3.vox b/assets/voxygen/voxel/sprite/flowers/flower_pink_3.vox new file mode 100644 index 0000000..a799848 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_pink_3.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_pink_4.vox b/assets/voxygen/voxel/sprite/flowers/flower_pink_4.vox new file mode 100644 index 0000000..91b4264 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_pink_4.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_purple-2.vox b/assets/voxygen/voxel/sprite/flowers/flower_purple-2.vox new file mode 100644 index 0000000..e1f1be3 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_purple-2.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_purple-3.vox b/assets/voxygen/voxel/sprite/flowers/flower_purple-3.vox new file mode 100644 index 0000000..f0df7d2 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_purple-3.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_purple-4.vox b/assets/voxygen/voxel/sprite/flowers/flower_purple-4.vox new file mode 100644 index 0000000..503a640 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_purple-4.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_purple-5.vox b/assets/voxygen/voxel/sprite/flowers/flower_purple-5.vox new file mode 100644 index 0000000..ef6786d Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_purple-5.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_purple-6.vox b/assets/voxygen/voxel/sprite/flowers/flower_purple-6.vox new file mode 100644 index 0000000..7a957d7 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_purple-6.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_purple-7.vox b/assets/voxygen/voxel/sprite/flowers/flower_purple-7.vox new file mode 100644 index 0000000..1b2d067 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_purple-7.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_purple-8.vox b/assets/voxygen/voxel/sprite/flowers/flower_purple-8.vox new file mode 100644 index 0000000..7474437 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_purple-8.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_purple_1.vox b/assets/voxygen/voxel/sprite/flowers/flower_purple_1.vox new file mode 100644 index 0000000..0345c8b Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_purple_1.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_red-4.vox b/assets/voxygen/voxel/sprite/flowers/flower_red-4.vox new file mode 100644 index 0000000..d9c921d Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_red-4.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_red-5.vox b/assets/voxygen/voxel/sprite/flowers/flower_red-5.vox new file mode 100644 index 0000000..fa6c49b Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_red-5.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_red_1.vox b/assets/voxygen/voxel/sprite/flowers/flower_red_1.vox new file mode 100644 index 0000000..0870edd Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_red_1.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_red_2.vox b/assets/voxygen/voxel/sprite/flowers/flower_red_2.vox new file mode 100644 index 0000000..3a923c8 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_red_2.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_red_3.vox b/assets/voxygen/voxel/sprite/flowers/flower_red_3.vox new file mode 100644 index 0000000..4c4e034 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_red_3.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_white-3.vox b/assets/voxygen/voxel/sprite/flowers/flower_white-3.vox new file mode 100644 index 0000000..f76f8a3 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_white-3.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_white-4.vox b/assets/voxygen/voxel/sprite/flowers/flower_white-4.vox new file mode 100644 index 0000000..73f2aab Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_white-4.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_white-5.vox b/assets/voxygen/voxel/sprite/flowers/flower_white-5.vox new file mode 100644 index 0000000..c9400cc Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_white-5.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_white_1.vox b/assets/voxygen/voxel/sprite/flowers/flower_white_1.vox new file mode 100644 index 0000000..3a98053 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_white_1.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_white_2.vox b/assets/voxygen/voxel/sprite/flowers/flower_white_2.vox new file mode 100644 index 0000000..3a220fc Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_white_2.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_yellow-0.vox b/assets/voxygen/voxel/sprite/flowers/flower_yellow-0.vox new file mode 100644 index 0000000..6c67ba5 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_yellow-0.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/flower_yellow-1.vox b/assets/voxygen/voxel/sprite/flowers/flower_yellow-1.vox new file mode 100644 index 0000000..40a3c16 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/flower_yellow-1.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/jungle_flower_red-0.vox b/assets/voxygen/voxel/sprite/flowers/jungle_flower_red-0.vox new file mode 100644 index 0000000..b3d0d32 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/jungle_flower_red-0.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/jungle_flower_red-1.vox b/assets/voxygen/voxel/sprite/flowers/jungle_flower_red-1.vox new file mode 100644 index 0000000..dba6643 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/jungle_flower_red-1.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/moonbell.vox b/assets/voxygen/voxel/sprite/flowers/moonbell.vox new file mode 100644 index 0000000..194448c Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/moonbell.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/pyrebloom.vox b/assets/voxygen/voxel/sprite/flowers/pyrebloom.vox new file mode 100644 index 0000000..b9d6cd6 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/pyrebloom.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/snow_crocus-0.vox b/assets/voxygen/voxel/sprite/flowers/snow_crocus-0.vox new file mode 100644 index 0000000..d09883a Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/snow_crocus-0.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/snow_crocus-1.vox b/assets/voxygen/voxel/sprite/flowers/snow_crocus-1.vox new file mode 100644 index 0000000..824b163 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/snow_crocus-1.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/snow_crocus-2.vox b/assets/voxygen/voxel/sprite/flowers/snow_crocus-2.vox new file mode 100644 index 0000000..322c814 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/snow_crocus-2.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/snow_crocus-3.vox b/assets/voxygen/voxel/sprite/flowers/snow_crocus-3.vox new file mode 100644 index 0000000..d12ecd5 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/snow_crocus-3.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/snow_crocus-4.vox b/assets/voxygen/voxel/sprite/flowers/snow_crocus-4.vox new file mode 100644 index 0000000..1e5a2ef Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/snow_crocus-4.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/snow_crocus-5.vox b/assets/voxygen/voxel/sprite/flowers/snow_crocus-5.vox new file mode 100644 index 0000000..b17d9fb Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/snow_crocus-5.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/snow_forsythia-0.vox b/assets/voxygen/voxel/sprite/flowers/snow_forsythia-0.vox new file mode 100644 index 0000000..4d0040c Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/snow_forsythia-0.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/snow_forsythia-1.vox b/assets/voxygen/voxel/sprite/flowers/snow_forsythia-1.vox new file mode 100644 index 0000000..e330667 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/snow_forsythia-1.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/snow_forsythia-2.vox b/assets/voxygen/voxel/sprite/flowers/snow_forsythia-2.vox new file mode 100644 index 0000000..423fcf5 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/snow_forsythia-2.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/snow_forsythia-3.vox b/assets/voxygen/voxel/sprite/flowers/snow_forsythia-3.vox new file mode 100644 index 0000000..6653f3e Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/snow_forsythia-3.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/snow_forsythia-4.vox b/assets/voxygen/voxel/sprite/flowers/snow_forsythia-4.vox new file mode 100644 index 0000000..b8a075f Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/snow_forsythia-4.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/snow_forsythia-5.vox b/assets/voxygen/voxel/sprite/flowers/snow_forsythia-5.vox new file mode 100644 index 0000000..7667f83 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/snow_forsythia-5.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/snow_forsythia-6.vox b/assets/voxygen/voxel/sprite/flowers/snow_forsythia-6.vox new file mode 100644 index 0000000..c125659 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/snow_forsythia-6.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/snow_forsythia-7.vox b/assets/voxygen/voxel/sprite/flowers/snow_forsythia-7.vox new file mode 100644 index 0000000..fdcc3dc Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/snow_forsythia-7.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/snow_forsythia-8.vox b/assets/voxygen/voxel/sprite/flowers/snow_forsythia-8.vox new file mode 100644 index 0000000..de63c93 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/snow_forsythia-8.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/snow_rose-0.vox b/assets/voxygen/voxel/sprite/flowers/snow_rose-0.vox new file mode 100644 index 0000000..4df2287 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/snow_rose-0.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/snow_rose-1.vox b/assets/voxygen/voxel/sprite/flowers/snow_rose-1.vox new file mode 100644 index 0000000..416f5d1 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/snow_rose-1.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/snow_rose-10.vox b/assets/voxygen/voxel/sprite/flowers/snow_rose-10.vox new file mode 100644 index 0000000..4b5028e Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/snow_rose-10.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/snow_rose-11.vox b/assets/voxygen/voxel/sprite/flowers/snow_rose-11.vox new file mode 100644 index 0000000..9d7145b Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/snow_rose-11.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/snow_rose-2.vox b/assets/voxygen/voxel/sprite/flowers/snow_rose-2.vox new file mode 100644 index 0000000..2dcf1f3 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/snow_rose-2.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/snow_rose-3.vox b/assets/voxygen/voxel/sprite/flowers/snow_rose-3.vox new file mode 100644 index 0000000..3359678 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/snow_rose-3.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/snow_rose-4.vox b/assets/voxygen/voxel/sprite/flowers/snow_rose-4.vox new file mode 100644 index 0000000..4e0ddba Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/snow_rose-4.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/snow_rose-5.vox b/assets/voxygen/voxel/sprite/flowers/snow_rose-5.vox new file mode 100644 index 0000000..7570ed9 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/snow_rose-5.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/snow_rose-6.vox b/assets/voxygen/voxel/sprite/flowers/snow_rose-6.vox new file mode 100644 index 0000000..56fb233 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/snow_rose-6.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/snow_rose-7.vox b/assets/voxygen/voxel/sprite/flowers/snow_rose-7.vox new file mode 100644 index 0000000..51920f9 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/snow_rose-7.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/snow_rose-8.vox b/assets/voxygen/voxel/sprite/flowers/snow_rose-8.vox new file mode 100644 index 0000000..2e5815f Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/snow_rose-8.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/snow_rose-9.vox b/assets/voxygen/voxel/sprite/flowers/snow_rose-9.vox new file mode 100644 index 0000000..7e80ace Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/snow_rose-9.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/sunflower_1.vox b/assets/voxygen/voxel/sprite/flowers/sunflower_1.vox new file mode 100644 index 0000000..0c3c069 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/sunflower_1.vox differ diff --git a/assets/voxygen/voxel/sprite/flowers/sunflower_2.vox b/assets/voxygen/voxel/sprite/flowers/sunflower_2.vox new file mode 100644 index 0000000..3737c55 Binary files /dev/null and b/assets/voxygen/voxel/sprite/flowers/sunflower_2.vox differ diff --git a/assets/voxygen/voxel/sprite/food/meat/beast_large_cooked.vox b/assets/voxygen/voxel/sprite/food/meat/beast_large_cooked.vox new file mode 100644 index 0000000..71e8a5b Binary files /dev/null and b/assets/voxygen/voxel/sprite/food/meat/beast_large_cooked.vox differ diff --git a/assets/voxygen/voxel/sprite/food/meat/beast_large_raw.vox b/assets/voxygen/voxel/sprite/food/meat/beast_large_raw.vox new file mode 100644 index 0000000..2649293 Binary files /dev/null and b/assets/voxygen/voxel/sprite/food/meat/beast_large_raw.vox differ diff --git a/assets/voxygen/voxel/sprite/food/meat/beast_small_cooked.vox b/assets/voxygen/voxel/sprite/food/meat/beast_small_cooked.vox new file mode 100644 index 0000000..fd4f55a Binary files /dev/null and b/assets/voxygen/voxel/sprite/food/meat/beast_small_cooked.vox differ diff --git a/assets/voxygen/voxel/sprite/food/meat/beast_small_raw.vox b/assets/voxygen/voxel/sprite/food/meat/beast_small_raw.vox new file mode 100644 index 0000000..f2d7021 Binary files /dev/null and b/assets/voxygen/voxel/sprite/food/meat/beast_small_raw.vox differ diff --git a/assets/voxygen/voxel/sprite/food/meat/bird_cooked.vox b/assets/voxygen/voxel/sprite/food/meat/bird_cooked.vox new file mode 100644 index 0000000..dceca80 Binary files /dev/null and b/assets/voxygen/voxel/sprite/food/meat/bird_cooked.vox differ diff --git a/assets/voxygen/voxel/sprite/food/meat/bird_large_cooked.vox b/assets/voxygen/voxel/sprite/food/meat/bird_large_cooked.vox new file mode 100644 index 0000000..c2084ab Binary files /dev/null and b/assets/voxygen/voxel/sprite/food/meat/bird_large_cooked.vox differ diff --git a/assets/voxygen/voxel/sprite/food/meat/bird_large_raw.vox b/assets/voxygen/voxel/sprite/food/meat/bird_large_raw.vox new file mode 100644 index 0000000..770c4ff Binary files /dev/null and b/assets/voxygen/voxel/sprite/food/meat/bird_large_raw.vox differ diff --git a/assets/voxygen/voxel/sprite/food/meat/bird_raw.vox b/assets/voxygen/voxel/sprite/food/meat/bird_raw.vox new file mode 100644 index 0000000..a0dc01f Binary files /dev/null and b/assets/voxygen/voxel/sprite/food/meat/bird_raw.vox differ diff --git a/assets/voxygen/voxel/sprite/food/meat/fish_cooked.vox b/assets/voxygen/voxel/sprite/food/meat/fish_cooked.vox new file mode 100644 index 0000000..f536d49 Binary files /dev/null and b/assets/voxygen/voxel/sprite/food/meat/fish_cooked.vox differ diff --git a/assets/voxygen/voxel/sprite/food/meat/fish_raw.vox b/assets/voxygen/voxel/sprite/food/meat/fish_raw.vox new file mode 100644 index 0000000..2efafc7 Binary files /dev/null and b/assets/voxygen/voxel/sprite/food/meat/fish_raw.vox differ diff --git a/assets/voxygen/voxel/sprite/food/meat/tough_cooked.vox b/assets/voxygen/voxel/sprite/food/meat/tough_cooked.vox new file mode 100644 index 0000000..9a1783d Binary files /dev/null and b/assets/voxygen/voxel/sprite/food/meat/tough_cooked.vox differ diff --git a/assets/voxygen/voxel/sprite/food/meat/tough_raw.vox b/assets/voxygen/voxel/sprite/food/meat/tough_raw.vox new file mode 100644 index 0000000..d5ca5e5 Binary files /dev/null and b/assets/voxygen/voxel/sprite/food/meat/tough_raw.vox differ diff --git a/assets/voxygen/voxel/sprite/food/roastpig.vox b/assets/voxygen/voxel/sprite/food/roastpig.vox new file mode 100644 index 0000000..dc1f592 Binary files /dev/null and b/assets/voxygen/voxel/sprite/food/roastpig.vox differ diff --git a/assets/voxygen/voxel/sprite/food/salad_plain.vox b/assets/voxygen/voxel/sprite/food/salad_plain.vox new file mode 100644 index 0000000..701f011 Binary files /dev/null and b/assets/voxygen/voxel/sprite/food/salad_plain.vox differ diff --git a/assets/voxygen/voxel/sprite/food/salad_tomato.vox b/assets/voxygen/voxel/sprite/food/salad_tomato.vox new file mode 100644 index 0000000..3b534ae Binary files /dev/null and b/assets/voxygen/voxel/sprite/food/salad_tomato.vox differ diff --git a/assets/voxygen/voxel/sprite/forge/forge-0.vox b/assets/voxygen/voxel/sprite/forge/forge-0.vox new file mode 100644 index 0000000..8db89f6 Binary files /dev/null and b/assets/voxygen/voxel/sprite/forge/forge-0.vox differ diff --git a/assets/voxygen/voxel/sprite/fruit/apple.vox b/assets/voxygen/voxel/sprite/fruit/apple.vox new file mode 100644 index 0000000..f006cf3 Binary files /dev/null and b/assets/voxygen/voxel/sprite/fruit/apple.vox differ diff --git a/assets/voxygen/voxel/sprite/fruit/apple_half.vox b/assets/voxygen/voxel/sprite/fruit/apple_half.vox new file mode 100644 index 0000000..233fd09 Binary files /dev/null and b/assets/voxygen/voxel/sprite/fruit/apple_half.vox differ diff --git a/assets/voxygen/voxel/sprite/fruit/coconut.vox b/assets/voxygen/voxel/sprite/fruit/coconut.vox new file mode 100644 index 0000000..3ea1206 Binary files /dev/null and b/assets/voxygen/voxel/sprite/fruit/coconut.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/barrel.vox b/assets/voxygen/voxel/sprite/furniture/barrel.vox new file mode 100644 index 0000000..be945c6 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/barrel.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/bed-0.vox b/assets/voxygen/voxel/sprite/furniture/bed-0.vox new file mode 100644 index 0000000..ac0b221 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/bed-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/bed_mesa.vox b/assets/voxygen/voxel/sprite/furniture/bed_mesa.vox new file mode 100644 index 0000000..966d310 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/bed_mesa.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/bench-0.vox b/assets/voxygen/voxel/sprite/furniture/bench-0.vox new file mode 100644 index 0000000..c054d82 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/bench-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/bench_coastal-0.vox b/assets/voxygen/voxel/sprite/furniture/bench_coastal-0.vox new file mode 100644 index 0000000..2f84d5e Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/bench_coastal-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/bench_coastal-1.vox b/assets/voxygen/voxel/sprite/furniture/bench_coastal-1.vox new file mode 100644 index 0000000..6b95851 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/bench_coastal-1.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/bench_coastal-2.vox b/assets/voxygen/voxel/sprite/furniture/bench_coastal-2.vox new file mode 100644 index 0000000..253fe5e Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/bench_coastal-2.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/bone_door_block.vox b/assets/voxygen/voxel/sprite/furniture/bone_door_block.vox new file mode 100644 index 0000000..ef56f65 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/bone_door_block.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/bone_keyhole_block.vox b/assets/voxygen/voxel/sprite/furniture/bone_keyhole_block.vox new file mode 100644 index 0000000..605baf0 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/bone_keyhole_block.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/books_arabic.vox b/assets/voxygen/voxel/sprite/furniture/books_arabic.vox new file mode 100644 index 0000000..ea80681 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/books_arabic.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/bookshelf_arabic.vox b/assets/voxygen/voxel/sprite/furniture/bookshelf_arabic.vox new file mode 100644 index 0000000..f4c0f1d Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/bookshelf_arabic.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/canape_arabic.vox b/assets/voxygen/voxel/sprite/furniture/canape_arabic.vox new file mode 100644 index 0000000..7b4025a Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/canape_arabic.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/chair_double-0.vox b/assets/voxygen/voxel/sprite/furniture/chair_double-0.vox new file mode 100644 index 0000000..05c6431 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/chair_double-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/chair_double-1.vox b/assets/voxygen/voxel/sprite/furniture/chair_double-1.vox new file mode 100644 index 0000000..25c8e4c Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/chair_double-1.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/chair_single-0.vox b/assets/voxygen/voxel/sprite/furniture/chair_single-0.vox new file mode 100644 index 0000000..6778573 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/chair_single-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/chair_single-1.vox b/assets/voxygen/voxel/sprite/furniture/chair_single-1.vox new file mode 100644 index 0000000..4e7e8e4 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/chair_single-1.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-0.vox b/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-0.vox new file mode 100644 index 0000000..e4ba92e Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-1.vox b/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-1.vox new file mode 100644 index 0000000..ea73d72 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-1.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-10.vox b/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-10.vox new file mode 100644 index 0000000..35fe6b4 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-10.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-11.vox b/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-11.vox new file mode 100644 index 0000000..428dcf7 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-11.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-2.vox b/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-2.vox new file mode 100644 index 0000000..ca276a0 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-2.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-3.vox b/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-3.vox new file mode 100644 index 0000000..d20178b Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-3.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-4.vox b/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-4.vox new file mode 100644 index 0000000..0ca5e94 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-4.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-5.vox b/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-5.vox new file mode 100644 index 0000000..1164edc Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-5.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-6.vox b/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-6.vox new file mode 100644 index 0000000..a24ac98 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-6.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-7.vox b/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-7.vox new file mode 100644 index 0000000..f8185b5 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-7.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-8.vox b/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-8.vox new file mode 100644 index 0000000..eecafe7 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-8.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-9.vox b/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-9.vox new file mode 100644 index 0000000..f7ef1d9 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/cliff_decor_block-9.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/cliff_decor_block_.vox b/assets/voxygen/voxel/sprite/furniture/cliff_decor_block_.vox new file mode 100644 index 0000000..e211d13 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/cliff_decor_block_.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/coatrack-0.vox b/assets/voxygen/voxel/sprite/furniture/coatrack-0.vox new file mode 100644 index 0000000..5bfb34b Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/coatrack-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/coatrack-1.vox b/assets/voxygen/voxel/sprite/furniture/coatrack-1.vox new file mode 100644 index 0000000..18e9b57 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/coatrack-1.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/crate-0.vox b/assets/voxygen/voxel/sprite/furniture/crate-0.vox new file mode 100644 index 0000000..83efc11 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/crate-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/crate-1.vox b/assets/voxygen/voxel/sprite/furniture/crate-1.vox new file mode 100644 index 0000000..83efc11 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/crate-1.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/crate-2.vox b/assets/voxygen/voxel/sprite/furniture/crate-2.vox new file mode 100644 index 0000000..f2f992c Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/crate-2.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/crate-3.vox b/assets/voxygen/voxel/sprite/furniture/crate-3.vox new file mode 100644 index 0000000..590db58 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/crate-3.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/crate-4.vox b/assets/voxygen/voxel/sprite/furniture/crate-4.vox new file mode 100644 index 0000000..d567236 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/crate-4.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/crate-5.vox b/assets/voxygen/voxel/sprite/furniture/crate-5.vox new file mode 100644 index 0000000..3f5a54c Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/crate-5.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/crate-6.vox b/assets/voxygen/voxel/sprite/furniture/crate-6.vox new file mode 100644 index 0000000..921a59f Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/crate-6.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/crate_block.vox b/assets/voxygen/voxel/sprite/furniture/crate_block.vox new file mode 100644 index 0000000..7fda661 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/crate_block.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/cupboard_arabic.vox b/assets/voxygen/voxel/sprite/furniture/cupboard_arabic.vox new file mode 100644 index 0000000..87915ca Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/cupboard_arabic.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/cupboard_mesa.vox b/assets/voxygen/voxel/sprite/furniture/cupboard_mesa.vox new file mode 100644 index 0000000..9fcf0a1 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/cupboard_mesa.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/cushion_arabic.vox b/assets/voxygen/voxel/sprite/furniture/cushion_arabic.vox new file mode 100644 index 0000000..5986ba0 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/cushion_arabic.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/decor_set_arabic-0.vox b/assets/voxygen/voxel/sprite/furniture/decor_set_arabic-0.vox new file mode 100644 index 0000000..4d3569e Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/decor_set_arabic-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/door_block.vox b/assets/voxygen/voxel/sprite/furniture/door_block.vox new file mode 100644 index 0000000..87016cf Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/door_block.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/drawer_large-0.vox b/assets/voxygen/voxel/sprite/furniture/drawer_large-0.vox new file mode 100644 index 0000000..86c841f Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/drawer_large-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/drawer_large-1.vox b/assets/voxygen/voxel/sprite/furniture/drawer_large-1.vox new file mode 100644 index 0000000..d3ce9d6 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/drawer_large-1.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/drawer_medium-0.vox b/assets/voxygen/voxel/sprite/furniture/drawer_medium-0.vox new file mode 100644 index 0000000..73133cc Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/drawer_medium-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/drawer_medium-1.vox b/assets/voxygen/voxel/sprite/furniture/drawer_medium-1.vox new file mode 100644 index 0000000..ddad206 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/drawer_medium-1.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/drawer_small-0.vox b/assets/voxygen/voxel/sprite/furniture/drawer_small-0.vox new file mode 100644 index 0000000..01e9996 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/drawer_small-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/drawer_small-1.vox b/assets/voxygen/voxel/sprite/furniture/drawer_small-1.vox new file mode 100644 index 0000000..71bc341 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/drawer_small-1.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/dungeon_wall-0.vox b/assets/voxygen/voxel/sprite/furniture/dungeon_wall-0.vox new file mode 100644 index 0000000..04bb1be Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/dungeon_wall-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/dungeon_wall-1.vox b/assets/voxygen/voxel/sprite/furniture/dungeon_wall-1.vox new file mode 100644 index 0000000..2f02fc7 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/dungeon_wall-1.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/dungeon_wall-2.vox b/assets/voxygen/voxel/sprite/furniture/dungeon_wall-2.vox new file mode 100644 index 0000000..aee0e1e Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/dungeon_wall-2.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/dungeon_wall-3.vox b/assets/voxygen/voxel/sprite/furniture/dungeon_wall-3.vox new file mode 100644 index 0000000..309aa04 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/dungeon_wall-3.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/dungeon_wall-4.vox b/assets/voxygen/voxel/sprite/furniture/dungeon_wall-4.vox new file mode 100644 index 0000000..d2ac8e9 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/dungeon_wall-4.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/dungeon_wall-5.vox b/assets/voxygen/voxel/sprite/furniture/dungeon_wall-5.vox new file mode 100644 index 0000000..cbbddba Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/dungeon_wall-5.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/dungeon_wall-6.vox b/assets/voxygen/voxel/sprite/furniture/dungeon_wall-6.vox new file mode 100644 index 0000000..32e2df6 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/dungeon_wall-6.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/dungeon_wall-7.vox b/assets/voxygen/voxel/sprite/furniture/dungeon_wall-7.vox new file mode 100644 index 0000000..82d5f16 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/dungeon_wall-7.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/dungeon_wall-8.vox b/assets/voxygen/voxel/sprite/furniture/dungeon_wall-8.vox new file mode 100644 index 0000000..4bb032e Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/dungeon_wall-8.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/dungeon_wall-9.vox b/assets/voxygen/voxel/sprite/furniture/dungeon_wall-9.vox new file mode 100644 index 0000000..38a6b23 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/dungeon_wall-9.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/forge-0.vox b/assets/voxygen/voxel/sprite/furniture/forge-0.vox new file mode 100644 index 0000000..a49da23 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/forge-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/forge_tools.vox b/assets/voxygen/voxel/sprite/furniture/forge_tools.vox new file mode 100644 index 0000000..f6c8c6e Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/forge_tools.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/fountain_arabic.vox b/assets/voxygen/voxel/sprite/furniture/fountain_arabic.vox new file mode 100644 index 0000000..eaaa735 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/fountain_arabic.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/gear_wheel-0.vox b/assets/voxygen/voxel/sprite/furniture/gear_wheel-0.vox new file mode 100644 index 0000000..7aefd79 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/gear_wheel-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/glass_barrier_block.vox b/assets/voxygen/voxel/sprite/furniture/glass_barrier_block.vox new file mode 100644 index 0000000..faaa9fd Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/glass_barrier_block.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/glass_keyhole_block.vox b/assets/voxygen/voxel/sprite/furniture/glass_keyhole_block.vox new file mode 100644 index 0000000..890e76b Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/glass_keyhole_block.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/hanging_basket-0.vox b/assets/voxygen/voxel/sprite/furniture/hanging_basket-0.vox new file mode 100644 index 0000000..d78785c Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/hanging_basket-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/hanging_basket-1.vox b/assets/voxygen/voxel/sprite/furniture/hanging_basket-1.vox new file mode 100644 index 0000000..5f53bcf Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/hanging_basket-1.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/hanging_sign-0.vox b/assets/voxygen/voxel/sprite/furniture/hanging_sign-0.vox new file mode 100644 index 0000000..d5e31fd Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/hanging_sign-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/haniwa_door_block.vox b/assets/voxygen/voxel/sprite/furniture/haniwa_door_block.vox new file mode 100644 index 0000000..c6a02dd Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/haniwa_door_block.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/haniwa_keyhole_block.vox b/assets/voxygen/voxel/sprite/furniture/haniwa_keyhole_block.vox new file mode 100644 index 0000000..9b11fcf Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/haniwa_keyhole_block.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/haniwa_trap_triggered-0.vox b/assets/voxygen/voxel/sprite/furniture/haniwa_trap_triggered-0.vox new file mode 100644 index 0000000..44af349 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/haniwa_trap_triggered-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/haniwa_trap_triggered-1.vox b/assets/voxygen/voxel/sprite/furniture/haniwa_trap_triggered-1.vox new file mode 100644 index 0000000..b4438e1 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/haniwa_trap_triggered-1.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/hearth.vox b/assets/voxygen/voxel/sprite/furniture/hearth.vox new file mode 100644 index 0000000..3aaf212 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/hearth.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/helm.vox b/assets/voxygen/voxel/sprite/furniture/helm.vox new file mode 100644 index 0000000..fff4f58 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/helm.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/hirdrasil-antler-1.vox b/assets/voxygen/voxel/sprite/furniture/hirdrasil-antler-1.vox new file mode 100644 index 0000000..a774608 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/hirdrasil-antler-1.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/hirdrasil-antler.vox b/assets/voxygen/voxel/sprite/furniture/hirdrasil-antler.vox new file mode 100644 index 0000000..77898f4 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/hirdrasil-antler.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/jug_and_bowl_arabic.vox b/assets/voxygen/voxel/sprite/furniture/jug_and_bowl_arabic.vox new file mode 100644 index 0000000..6769d71 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/jug_and_bowl_arabic.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/jug_and_cups_coastal.vox b/assets/voxygen/voxel/sprite/furniture/jug_and_cups_coastal.vox new file mode 100644 index 0000000..a95269b Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/jug_and_cups_coastal.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/jug_arabic.vox b/assets/voxygen/voxel/sprite/furniture/jug_arabic.vox new file mode 100644 index 0000000..377c7f5 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/jug_arabic.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/keyhole_block.vox b/assets/voxygen/voxel/sprite/furniture/keyhole_block.vox new file mode 100644 index 0000000..da6c8c4 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/keyhole_block.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/lamp_wall-0.vox b/assets/voxygen/voxel/sprite/furniture/lamp_wall-0.vox new file mode 100644 index 0000000..9dec807 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/lamp_wall-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/lamp_wall-1.vox b/assets/voxygen/voxel/sprite/furniture/lamp_wall-1.vox new file mode 100644 index 0000000..3555e8c Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/lamp_wall-1.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/lamp_wall-2.vox b/assets/voxygen/voxel/sprite/furniture/lamp_wall-2.vox new file mode 100644 index 0000000..9dec807 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/lamp_wall-2.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/melon.vox b/assets/voxygen/voxel/sprite/furniture/melon.vox new file mode 100644 index 0000000..fa43172 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/melon.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/melon_cut.vox b/assets/voxygen/voxel/sprite/furniture/melon_cut.vox new file mode 100644 index 0000000..5e8ce79 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/melon_cut.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/mirror_mesa.vox b/assets/voxygen/voxel/sprite/furniture/mirror_mesa.vox new file mode 100644 index 0000000..e1d4430 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/mirror_mesa.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/moravian-star-orange.vox b/assets/voxygen/voxel/sprite/furniture/moravian-star-orange.vox new file mode 100644 index 0000000..67ba224 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/moravian-star-orange.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/myrmidon_door_block.vox b/assets/voxygen/voxel/sprite/furniture/myrmidon_door_block.vox new file mode 100644 index 0000000..d2b3d01 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/myrmidon_door_block.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/myrmidon_keyhole_block.vox b/assets/voxygen/voxel/sprite/furniture/myrmidon_keyhole_block.vox new file mode 100644 index 0000000..aaebb18 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/myrmidon_keyhole_block.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/oven_arabic.vox b/assets/voxygen/voxel/sprite/furniture/oven_arabic.vox new file mode 100644 index 0000000..97d9d62 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/oven_arabic.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/planter-0.vox b/assets/voxygen/voxel/sprite/furniture/planter-0.vox new file mode 100644 index 0000000..fa8927a Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/planter-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/planter-1.vox b/assets/voxygen/voxel/sprite/furniture/planter-1.vox new file mode 100644 index 0000000..e63755c Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/planter-1.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/planter-2.vox b/assets/voxygen/voxel/sprite/furniture/planter-2.vox new file mode 100644 index 0000000..9bb62b6 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/planter-2.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/planter-3.vox b/assets/voxygen/voxel/sprite/furniture/planter-3.vox new file mode 100644 index 0000000..2bd8d29 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/planter-3.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/planter-4.vox b/assets/voxygen/voxel/sprite/furniture/planter-4.vox new file mode 100644 index 0000000..09dfd57 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/planter-4.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/planter-5.vox b/assets/voxygen/voxel/sprite/furniture/planter-5.vox new file mode 100644 index 0000000..7be5f99 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/planter-5.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/planter-6.vox b/assets/voxygen/voxel/sprite/furniture/planter-6.vox new file mode 100644 index 0000000..ed6279c Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/planter-6.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/pot-0.vox b/assets/voxygen/voxel/sprite/furniture/pot-0.vox new file mode 100644 index 0000000..e3522fb Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/pot-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/pot-1.vox b/assets/voxygen/voxel/sprite/furniture/pot-1.vox new file mode 100644 index 0000000..d709950 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/pot-1.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/quench-0.vox b/assets/voxygen/voxel/sprite/furniture/quench-0.vox new file mode 100644 index 0000000..19b1483 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/quench-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/sahagin_keydoor.vox b/assets/voxygen/voxel/sprite/furniture/sahagin_keydoor.vox new file mode 100644 index 0000000..965e335 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/sahagin_keydoor.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/sahagin_keyhole.vox b/assets/voxygen/voxel/sprite/furniture/sahagin_keyhole.vox new file mode 100644 index 0000000..8406c1d Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/sahagin_keyhole.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/sconce_wall-0.vox b/assets/voxygen/voxel/sprite/furniture/sconce_wall-0.vox new file mode 100644 index 0000000..341a350 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/sconce_wall-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/separe_arabic.vox b/assets/voxygen/voxel/sprite/furniture/separe_arabic.vox new file mode 100644 index 0000000..57145ad Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/separe_arabic.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/shelf-0.vox b/assets/voxygen/voxel/sprite/furniture/shelf-0.vox new file mode 100644 index 0000000..f704100 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/shelf-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/shelf-1.vox b/assets/voxygen/voxel/sprite/furniture/shelf-1.vox new file mode 100644 index 0000000..42ab293 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/shelf-1.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/smith_table-0.vox b/assets/voxygen/voxel/sprite/furniture/smith_table-0.vox new file mode 100644 index 0000000..b3d3c4b Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/smith_table-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/snowflake_light.vox b/assets/voxygen/voxel/sprite/furniture/snowflake_light.vox new file mode 100644 index 0000000..c002c1c Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/snowflake_light.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/street_lamp-0.vox b/assets/voxygen/voxel/sprite/furniture/street_lamp-0.vox new file mode 100644 index 0000000..cbd5bfe Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/street_lamp-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/table_arabic_large.vox b/assets/voxygen/voxel/sprite/furniture/table_arabic_large.vox new file mode 100644 index 0000000..5003afc Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/table_arabic_large.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/table_arabic_small.vox b/assets/voxygen/voxel/sprite/furniture/table_arabic_small.vox new file mode 100644 index 0000000..f145b38 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/table_arabic_small.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/table_coastal_large.vox b/assets/voxygen/voxel/sprite/furniture/table_coastal_large.vox new file mode 100644 index 0000000..3373b83 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/table_coastal_large.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/table_dining-0.vox b/assets/voxygen/voxel/sprite/furniture/table_dining-0.vox new file mode 100644 index 0000000..2e50867 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/table_dining-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/table_dining-1.vox b/assets/voxygen/voxel/sprite/furniture/table_dining-1.vox new file mode 100644 index 0000000..224bd9b Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/table_dining-1.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/table_double-0.vox b/assets/voxygen/voxel/sprite/furniture/table_double-0.vox new file mode 100644 index 0000000..f29bc0b Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/table_double-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/table_side-0.vox b/assets/voxygen/voxel/sprite/furniture/table_side-0.vox new file mode 100644 index 0000000..9f27bf9 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/table_side-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/table_side-1.vox b/assets/voxygen/voxel/sprite/furniture/table_side-1.vox new file mode 100644 index 0000000..1d5b49e Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/table_side-1.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/terracotta_keydoor.vox b/assets/voxygen/voxel/sprite/furniture/terracotta_keydoor.vox new file mode 100644 index 0000000..c11ee83 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/terracotta_keydoor.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/terracotta_keyhole.vox b/assets/voxygen/voxel/sprite/furniture/terracotta_keyhole.vox new file mode 100644 index 0000000..7b4fec8 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/terracotta_keyhole.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/terracotta_statue_0.vox b/assets/voxygen/voxel/sprite/furniture/terracotta_statue_0.vox new file mode 100644 index 0000000..6e43b9e Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/terracotta_statue_0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/terracotta_statue_1.vox b/assets/voxygen/voxel/sprite/furniture/terracotta_statue_1.vox new file mode 100644 index 0000000..20b8b90 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/terracotta_statue_1.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/terracotta_statue_2.vox b/assets/voxygen/voxel/sprite/furniture/terracotta_statue_2.vox new file mode 100644 index 0000000..02e2257 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/terracotta_statue_2.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/terracotta_statue_3.vox b/assets/voxygen/voxel/sprite/furniture/terracotta_statue_3.vox new file mode 100644 index 0000000..fa1ed46 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/terracotta_statue_3.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/terracotta_statue_4.vox b/assets/voxygen/voxel/sprite/furniture/terracotta_statue_4.vox new file mode 100644 index 0000000..36303a1 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/terracotta_statue_4.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/vampire_keydoor.vox b/assets/voxygen/voxel/sprite/furniture/vampire_keydoor.vox new file mode 100644 index 0000000..93c2a16 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/vampire_keydoor.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/vampire_keyhole.vox b/assets/voxygen/voxel/sprite/furniture/vampire_keyhole.vox new file mode 100644 index 0000000..490f984 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/vampire_keyhole.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/wall_lamp_mesa.vox b/assets/voxygen/voxel/sprite/furniture/wall_lamp_mesa.vox new file mode 100644 index 0000000..ef5a25b Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/wall_lamp_mesa.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/wall_table_arabic.vox b/assets/voxygen/voxel/sprite/furniture/wall_table_arabic.vox new file mode 100644 index 0000000..97d9dd5 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/wall_table_arabic.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/wall_table_mesa.vox b/assets/voxygen/voxel/sprite/furniture/wall_table_mesa.vox new file mode 100644 index 0000000..0df4410 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/wall_table_mesa.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/wardrobe_double-0.vox b/assets/voxygen/voxel/sprite/furniture/wardrobe_double-0.vox new file mode 100644 index 0000000..32c8bbc Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/wardrobe_double-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/wardrobe_double-1.vox b/assets/voxygen/voxel/sprite/furniture/wardrobe_double-1.vox new file mode 100644 index 0000000..d4a6034 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/wardrobe_double-1.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/wardrobe_double_mesa-0.vox b/assets/voxygen/voxel/sprite/furniture/wardrobe_double_mesa-0.vox new file mode 100644 index 0000000..f6c2e62 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/wardrobe_double_mesa-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/wardrobe_double_mesa-1.vox b/assets/voxygen/voxel/sprite/furniture/wardrobe_double_mesa-1.vox new file mode 100644 index 0000000..21b4130 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/wardrobe_double_mesa-1.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/wardrobe_double_mesa-2.vox b/assets/voxygen/voxel/sprite/furniture/wardrobe_double_mesa-2.vox new file mode 100644 index 0000000..23180d0 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/wardrobe_double_mesa-2.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/wardrobe_single-0.vox b/assets/voxygen/voxel/sprite/furniture/wardrobe_single-0.vox new file mode 100644 index 0000000..3aac35a Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/wardrobe_single-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/wardrobe_single-1.vox b/assets/voxygen/voxel/sprite/furniture/wardrobe_single-1.vox new file mode 100644 index 0000000..1bdd937 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/wardrobe_single-1.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/wardrobe_single_mesa-0.vox b/assets/voxygen/voxel/sprite/furniture/wardrobe_single_mesa-0.vox new file mode 100644 index 0000000..84c90ec Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/wardrobe_single_mesa-0.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/wardrobe_single_mesa-1.vox b/assets/voxygen/voxel/sprite/furniture/wardrobe_single_mesa-1.vox new file mode 100644 index 0000000..fc5574f Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/wardrobe_single_mesa-1.vox differ diff --git a/assets/voxygen/voxel/sprite/furniture/wreath-0.vox b/assets/voxygen/voxel/sprite/furniture/wreath-0.vox new file mode 100644 index 0000000..3185f94 Binary files /dev/null and b/assets/voxygen/voxel/sprite/furniture/wreath-0.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_large-0.vox b/assets/voxygen/voxel/sprite/grass/grass_large-0.vox new file mode 100644 index 0000000..c896ada Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_large-0.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_large-1.vox b/assets/voxygen/voxel/sprite/grass/grass_large-1.vox new file mode 100644 index 0000000..dd6e0a0 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_large-1.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_large-2.vox b/assets/voxygen/voxel/sprite/grass/grass_large-2.vox new file mode 100644 index 0000000..07f2393 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_large-2.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_long_1.vox b/assets/voxygen/voxel/sprite/grass/grass_long_1.vox new file mode 100644 index 0000000..23ce365 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_long_1.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_long_2.vox b/assets/voxygen/voxel/sprite/grass/grass_long_2.vox new file mode 100644 index 0000000..a5f8e4f Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_long_2.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_long_3.vox b/assets/voxygen/voxel/sprite/grass/grass_long_3.vox new file mode 100644 index 0000000..4c74d24 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_long_3.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_long_4.vox b/assets/voxygen/voxel/sprite/grass/grass_long_4.vox new file mode 100644 index 0000000..d46b24c Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_long_4.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_long_5.vox b/assets/voxygen/voxel/sprite/grass/grass_long_5.vox new file mode 100644 index 0000000..59338b0 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_long_5.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_long_6.vox b/assets/voxygen/voxel/sprite/grass/grass_long_6.vox new file mode 100644 index 0000000..c248163 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_long_6.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_long_7.vox b/assets/voxygen/voxel/sprite/grass/grass_long_7.vox new file mode 100644 index 0000000..6c1528c Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_long_7.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_med_1.vox b/assets/voxygen/voxel/sprite/grass/grass_med_1.vox new file mode 100644 index 0000000..f711f8b Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_med_1.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_med_2.vox b/assets/voxygen/voxel/sprite/grass/grass_med_2.vox new file mode 100644 index 0000000..58284b4 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_med_2.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_med_3.vox b/assets/voxygen/voxel/sprite/grass/grass_med_3.vox new file mode 100644 index 0000000..3405525 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_med_3.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_med_4.vox b/assets/voxygen/voxel/sprite/grass/grass_med_4.vox new file mode 100644 index 0000000..f61e166 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_med_4.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_med_5.vox b/assets/voxygen/voxel/sprite/grass/grass_med_5.vox new file mode 100644 index 0000000..a14ea5f Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_med_5.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_savanna-0.vox b/assets/voxygen/voxel/sprite/grass/grass_savanna-0.vox new file mode 100644 index 0000000..6cbac66 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_savanna-0.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_savanna-1.vox b/assets/voxygen/voxel/sprite/grass/grass_savanna-1.vox new file mode 100644 index 0000000..298b93c Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_savanna-1.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_savanna-2.vox b/assets/voxygen/voxel/sprite/grass/grass_savanna-2.vox new file mode 100644 index 0000000..425a4cb Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_savanna-2.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_savanna-3.vox b/assets/voxygen/voxel/sprite/grass/grass_savanna-3.vox new file mode 100644 index 0000000..94f7488 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_savanna-3.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_savanna-4.vox b/assets/voxygen/voxel/sprite/grass/grass_savanna-4.vox new file mode 100644 index 0000000..4369912 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_savanna-4.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_savanna-5.vox b/assets/voxygen/voxel/sprite/grass/grass_savanna-5.vox new file mode 100644 index 0000000..7f84169 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_savanna-5.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_savanna-6.vox b/assets/voxygen/voxel/sprite/grass/grass_savanna-6.vox new file mode 100644 index 0000000..7deadc1 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_savanna-6.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_savanna_red-0.vox b/assets/voxygen/voxel/sprite/grass/grass_savanna_red-0.vox new file mode 100644 index 0000000..224af33 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_savanna_red-0.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_savanna_red-1.vox b/assets/voxygen/voxel/sprite/grass/grass_savanna_red-1.vox new file mode 100644 index 0000000..5ecdb14 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_savanna_red-1.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_savanna_red-2.vox b/assets/voxygen/voxel/sprite/grass/grass_savanna_red-2.vox new file mode 100644 index 0000000..dfba929 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_savanna_red-2.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_savanna_red-3.vox b/assets/voxygen/voxel/sprite/grass/grass_savanna_red-3.vox new file mode 100644 index 0000000..a695a6f Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_savanna_red-3.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_savanna_tall-0.vox b/assets/voxygen/voxel/sprite/grass/grass_savanna_tall-0.vox new file mode 100644 index 0000000..49f4407 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_savanna_tall-0.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_savanna_tall-1.vox b/assets/voxygen/voxel/sprite/grass/grass_savanna_tall-1.vox new file mode 100644 index 0000000..b7ae788 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_savanna_tall-1.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_savanna_tall-2.vox b/assets/voxygen/voxel/sprite/grass/grass_savanna_tall-2.vox new file mode 100644 index 0000000..7c411c8 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_savanna_tall-2.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_savanna_tall-3.vox b/assets/voxygen/voxel/sprite/grass/grass_savanna_tall-3.vox new file mode 100644 index 0000000..a464dba Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_savanna_tall-3.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_savanna_tall-4.vox b/assets/voxygen/voxel/sprite/grass/grass_savanna_tall-4.vox new file mode 100644 index 0000000..7da83b8 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_savanna_tall-4.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_savanna_tall-5.vox b/assets/voxygen/voxel/sprite/grass/grass_savanna_tall-5.vox new file mode 100644 index 0000000..6c3a2c0 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_savanna_tall-5.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_savanna_tall-6.vox b/assets/voxygen/voxel/sprite/grass/grass_savanna_tall-6.vox new file mode 100644 index 0000000..e8e85fe Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_savanna_tall-6.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_short_1.vox b/assets/voxygen/voxel/sprite/grass/grass_short_1.vox new file mode 100644 index 0000000..072404e Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_short_1.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_short_2.vox b/assets/voxygen/voxel/sprite/grass/grass_short_2.vox new file mode 100644 index 0000000..1ec70b2 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_short_2.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_short_3.vox b/assets/voxygen/voxel/sprite/grass/grass_short_3.vox new file mode 100644 index 0000000..9477e95 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_short_3.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_short_4.vox b/assets/voxygen/voxel/sprite/grass/grass_short_4.vox new file mode 100644 index 0000000..ead7c22 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_short_4.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_short_5.vox b/assets/voxygen/voxel/sprite/grass/grass_short_5.vox new file mode 100644 index 0000000..9343483 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_short_5.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_snow_0.vox b/assets/voxygen/voxel/sprite/grass/grass_snow_0.vox new file mode 100644 index 0000000..061a576 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_snow_0.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_snow_1.vox b/assets/voxygen/voxel/sprite/grass/grass_snow_1.vox new file mode 100644 index 0000000..5bd41e9 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_snow_1.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_snow_10.vox b/assets/voxygen/voxel/sprite/grass/grass_snow_10.vox new file mode 100644 index 0000000..52428b8 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_snow_10.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_snow_11.vox b/assets/voxygen/voxel/sprite/grass/grass_snow_11.vox new file mode 100644 index 0000000..b469c68 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_snow_11.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_snow_2.vox b/assets/voxygen/voxel/sprite/grass/grass_snow_2.vox new file mode 100644 index 0000000..a38cdd7 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_snow_2.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_snow_3.vox b/assets/voxygen/voxel/sprite/grass/grass_snow_3.vox new file mode 100644 index 0000000..44fa5a0 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_snow_3.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_snow_4.vox b/assets/voxygen/voxel/sprite/grass/grass_snow_4.vox new file mode 100644 index 0000000..18fddbc Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_snow_4.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_snow_5.vox b/assets/voxygen/voxel/sprite/grass/grass_snow_5.vox new file mode 100644 index 0000000..5ff00b6 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_snow_5.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_snow_6.vox b/assets/voxygen/voxel/sprite/grass/grass_snow_6.vox new file mode 100644 index 0000000..d1af3c6 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_snow_6.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_snow_7.vox b/assets/voxygen/voxel/sprite/grass/grass_snow_7.vox new file mode 100644 index 0000000..cd798de Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_snow_7.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_snow_8.vox b/assets/voxygen/voxel/sprite/grass/grass_snow_8.vox new file mode 100644 index 0000000..7dfaf10 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_snow_8.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_snow_9.vox b/assets/voxygen/voxel/sprite/grass/grass_snow_9.vox new file mode 100644 index 0000000..18478ec Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_snow_9.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_snow_tall_0.vox b/assets/voxygen/voxel/sprite/grass/grass_snow_tall_0.vox new file mode 100644 index 0000000..b163054 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_snow_tall_0.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_snow_tall_1.vox b/assets/voxygen/voxel/sprite/grass/grass_snow_tall_1.vox new file mode 100644 index 0000000..86f6d90 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_snow_tall_1.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_snow_tall_10.vox b/assets/voxygen/voxel/sprite/grass/grass_snow_tall_10.vox new file mode 100644 index 0000000..0fb736e Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_snow_tall_10.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_snow_tall_2.vox b/assets/voxygen/voxel/sprite/grass/grass_snow_tall_2.vox new file mode 100644 index 0000000..739299c Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_snow_tall_2.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_snow_tall_3.vox b/assets/voxygen/voxel/sprite/grass/grass_snow_tall_3.vox new file mode 100644 index 0000000..0c23c51 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_snow_tall_3.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_snow_tall_4.vox b/assets/voxygen/voxel/sprite/grass/grass_snow_tall_4.vox new file mode 100644 index 0000000..550f928 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_snow_tall_4.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_snow_tall_5.vox b/assets/voxygen/voxel/sprite/grass/grass_snow_tall_5.vox new file mode 100644 index 0000000..226fa40 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_snow_tall_5.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_snow_tall_6.vox b/assets/voxygen/voxel/sprite/grass/grass_snow_tall_6.vox new file mode 100644 index 0000000..e7adacd Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_snow_tall_6.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_snow_tall_7.vox b/assets/voxygen/voxel/sprite/grass/grass_snow_tall_7.vox new file mode 100644 index 0000000..4c9c820 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_snow_tall_7.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_snow_tall_8.vox b/assets/voxygen/voxel/sprite/grass/grass_snow_tall_8.vox new file mode 100644 index 0000000..e44f253 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_snow_tall_8.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_snow_tall_9.vox b/assets/voxygen/voxel/sprite/grass/grass_snow_tall_9.vox new file mode 100644 index 0000000..11f9ed6 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_snow_tall_9.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_taiga_0.vox b/assets/voxygen/voxel/sprite/grass/grass_taiga_0.vox new file mode 100644 index 0000000..8b38be6 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_taiga_0.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_taiga_1.vox b/assets/voxygen/voxel/sprite/grass/grass_taiga_1.vox new file mode 100644 index 0000000..75403d9 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_taiga_1.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_taiga_2.vox b/assets/voxygen/voxel/sprite/grass/grass_taiga_2.vox new file mode 100644 index 0000000..33fa19e Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_taiga_2.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_taiga_3.vox b/assets/voxygen/voxel/sprite/grass/grass_taiga_3.vox new file mode 100644 index 0000000..5c74f6f Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_taiga_3.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_taiga_4.vox b/assets/voxygen/voxel/sprite/grass/grass_taiga_4.vox new file mode 100644 index 0000000..3179fd1 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_taiga_4.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_taiga_5.vox b/assets/voxygen/voxel/sprite/grass/grass_taiga_5.vox new file mode 100644 index 0000000..f375db3 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_taiga_5.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_taiga_6.vox b/assets/voxygen/voxel/sprite/grass/grass_taiga_6.vox new file mode 100644 index 0000000..6806bd1 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_taiga_6.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_taiga_7.vox b/assets/voxygen/voxel/sprite/grass/grass_taiga_7.vox new file mode 100644 index 0000000..39618b5 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_taiga_7.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_taiga_8.vox b/assets/voxygen/voxel/sprite/grass/grass_taiga_8.vox new file mode 100644 index 0000000..bdcfc73 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_taiga_8.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/grass_taiga_9.vox b/assets/voxygen/voxel/sprite/grass/grass_taiga_9.vox new file mode 100644 index 0000000..a042764 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/grass_taiga_9.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/seagrass-0.vox b/assets/voxygen/voxel/sprite/grass/seagrass-0.vox new file mode 100644 index 0000000..a955226 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/seagrass-0.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/seagrass-1.vox b/assets/voxygen/voxel/sprite/grass/seagrass-1.vox new file mode 100644 index 0000000..85edc94 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/seagrass-1.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/seagrass-2.vox b/assets/voxygen/voxel/sprite/grass/seagrass-2.vox new file mode 100644 index 0000000..f3de5aa Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/seagrass-2.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/seagrass-3.vox b/assets/voxygen/voxel/sprite/grass/seagrass-3.vox new file mode 100644 index 0000000..8a3fd9a Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/seagrass-3.vox differ diff --git a/assets/voxygen/voxel/sprite/grass/seagrass-4.vox b/assets/voxygen/voxel/sprite/grass/seagrass-4.vox new file mode 100644 index 0000000..45b20df Binary files /dev/null and b/assets/voxygen/voxel/sprite/grass/seagrass-4.vox differ diff --git a/assets/voxygen/voxel/sprite/grave/grave_0.vox b/assets/voxygen/voxel/sprite/grave/grave_0.vox new file mode 100644 index 0000000..f46c6d8 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grave/grave_0.vox differ diff --git a/assets/voxygen/voxel/sprite/grave/grave_1.vox b/assets/voxygen/voxel/sprite/grave/grave_1.vox new file mode 100644 index 0000000..423904c Binary files /dev/null and b/assets/voxygen/voxel/sprite/grave/grave_1.vox differ diff --git a/assets/voxygen/voxel/sprite/grave/grave_2.vox b/assets/voxygen/voxel/sprite/grave/grave_2.vox new file mode 100644 index 0000000..7b1c2b2 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grave/grave_2.vox differ diff --git a/assets/voxygen/voxel/sprite/grave/grave_3.vox b/assets/voxygen/voxel/sprite/grave/grave_3.vox new file mode 100644 index 0000000..e12d5a5 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grave/grave_3.vox differ diff --git a/assets/voxygen/voxel/sprite/grave/grave_4.vox b/assets/voxygen/voxel/sprite/grave/grave_4.vox new file mode 100644 index 0000000..73bb92c Binary files /dev/null and b/assets/voxygen/voxel/sprite/grave/grave_4.vox differ diff --git a/assets/voxygen/voxel/sprite/grave/grave_5.vox b/assets/voxygen/voxel/sprite/grave/grave_5.vox new file mode 100644 index 0000000..52f8e45 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grave/grave_5.vox differ diff --git a/assets/voxygen/voxel/sprite/grave/grave_6.vox b/assets/voxygen/voxel/sprite/grave/grave_6.vox new file mode 100644 index 0000000..1e5e4ee Binary files /dev/null and b/assets/voxygen/voxel/sprite/grave/grave_6.vox differ diff --git a/assets/voxygen/voxel/sprite/grave/mud.vox b/assets/voxygen/voxel/sprite/grave/mud.vox new file mode 100644 index 0000000..8e043b7 Binary files /dev/null and b/assets/voxygen/voxel/sprite/grave/mud.vox differ diff --git a/assets/voxygen/voxel/sprite/junglefern/1.vox b/assets/voxygen/voxel/sprite/junglefern/1.vox new file mode 100644 index 0000000..cab7f5f Binary files /dev/null and b/assets/voxygen/voxel/sprite/junglefern/1.vox differ diff --git a/assets/voxygen/voxel/sprite/junglefern/2.vox b/assets/voxygen/voxel/sprite/junglefern/2.vox new file mode 100644 index 0000000..3e642ba Binary files /dev/null and b/assets/voxygen/voxel/sprite/junglefern/2.vox differ diff --git a/assets/voxygen/voxel/sprite/junglefern/3.vox b/assets/voxygen/voxel/sprite/junglefern/3.vox new file mode 100644 index 0000000..9ce0422 Binary files /dev/null and b/assets/voxygen/voxel/sprite/junglefern/3.vox differ diff --git a/assets/voxygen/voxel/sprite/junglefern/4.vox b/assets/voxygen/voxel/sprite/junglefern/4.vox new file mode 100644 index 0000000..25d9bf4 Binary files /dev/null and b/assets/voxygen/voxel/sprite/junglefern/4.vox differ diff --git a/assets/voxygen/voxel/sprite/jungleredgrass/jungle_grass_red-0.vox b/assets/voxygen/voxel/sprite/jungleredgrass/jungle_grass_red-0.vox new file mode 100644 index 0000000..fc1c128 Binary files /dev/null and b/assets/voxygen/voxel/sprite/jungleredgrass/jungle_grass_red-0.vox differ diff --git a/assets/voxygen/voxel/sprite/jungleredgrass/jungle_grass_red-1.vox b/assets/voxygen/voxel/sprite/jungleredgrass/jungle_grass_red-1.vox new file mode 100644 index 0000000..224a880 Binary files /dev/null and b/assets/voxygen/voxel/sprite/jungleredgrass/jungle_grass_red-1.vox differ diff --git a/assets/voxygen/voxel/sprite/jungleredgrass/jungle_grass_red-2.vox b/assets/voxygen/voxel/sprite/jungleredgrass/jungle_grass_red-2.vox new file mode 100644 index 0000000..be43047 Binary files /dev/null and b/assets/voxygen/voxel/sprite/jungleredgrass/jungle_grass_red-2.vox differ diff --git a/assets/voxygen/voxel/sprite/jungleredgrass/jungle_grass_red-3.vox b/assets/voxygen/voxel/sprite/jungleredgrass/jungle_grass_red-3.vox new file mode 100644 index 0000000..b501b8d Binary files /dev/null and b/assets/voxygen/voxel/sprite/jungleredgrass/jungle_grass_red-3.vox differ diff --git a/assets/voxygen/voxel/sprite/jungleredgrass/jungle_grass_red-4.vox b/assets/voxygen/voxel/sprite/jungleredgrass/jungle_grass_red-4.vox new file mode 100644 index 0000000..ca2a891 Binary files /dev/null and b/assets/voxygen/voxel/sprite/jungleredgrass/jungle_grass_red-4.vox differ diff --git a/assets/voxygen/voxel/sprite/jungleredgrass/jungle_grass_red-5.vox b/assets/voxygen/voxel/sprite/jungleredgrass/jungle_grass_red-5.vox new file mode 100644 index 0000000..c8eb59f Binary files /dev/null and b/assets/voxygen/voxel/sprite/jungleredgrass/jungle_grass_red-5.vox differ diff --git a/assets/voxygen/voxel/sprite/lantern/lantern_mesa.vox b/assets/voxygen/voxel/sprite/lantern/lantern_mesa.vox new file mode 100644 index 0000000..ba69bcc Binary files /dev/null and b/assets/voxygen/voxel/sprite/lantern/lantern_mesa.vox differ diff --git a/assets/voxygen/voxel/sprite/lantern/mine_lamp.vox b/assets/voxygen/voxel/sprite/lantern/mine_lamp.vox new file mode 100644 index 0000000..ca90272 Binary files /dev/null and b/assets/voxygen/voxel/sprite/lantern/mine_lamp.vox differ diff --git a/assets/voxygen/voxel/sprite/leafy_plant/1.vox b/assets/voxygen/voxel/sprite/leafy_plant/1.vox new file mode 100644 index 0000000..d8cae6b Binary files /dev/null and b/assets/voxygen/voxel/sprite/leafy_plant/1.vox differ diff --git a/assets/voxygen/voxel/sprite/leafy_plant/10.vox b/assets/voxygen/voxel/sprite/leafy_plant/10.vox new file mode 100644 index 0000000..7a1e162 Binary files /dev/null and b/assets/voxygen/voxel/sprite/leafy_plant/10.vox differ diff --git a/assets/voxygen/voxel/sprite/leafy_plant/2.vox b/assets/voxygen/voxel/sprite/leafy_plant/2.vox new file mode 100644 index 0000000..0ef66ed Binary files /dev/null and b/assets/voxygen/voxel/sprite/leafy_plant/2.vox differ diff --git a/assets/voxygen/voxel/sprite/leafy_plant/3.vox b/assets/voxygen/voxel/sprite/leafy_plant/3.vox new file mode 100644 index 0000000..53029d6 Binary files /dev/null and b/assets/voxygen/voxel/sprite/leafy_plant/3.vox differ diff --git a/assets/voxygen/voxel/sprite/leafy_plant/4.vox b/assets/voxygen/voxel/sprite/leafy_plant/4.vox new file mode 100644 index 0000000..c9680f9 Binary files /dev/null and b/assets/voxygen/voxel/sprite/leafy_plant/4.vox differ diff --git a/assets/voxygen/voxel/sprite/leafy_plant/5.vox b/assets/voxygen/voxel/sprite/leafy_plant/5.vox new file mode 100644 index 0000000..a165dae Binary files /dev/null and b/assets/voxygen/voxel/sprite/leafy_plant/5.vox differ diff --git a/assets/voxygen/voxel/sprite/leafy_plant/6.vox b/assets/voxygen/voxel/sprite/leafy_plant/6.vox new file mode 100644 index 0000000..a9bb456 Binary files /dev/null and b/assets/voxygen/voxel/sprite/leafy_plant/6.vox differ diff --git a/assets/voxygen/voxel/sprite/leafy_plant/7.vox b/assets/voxygen/voxel/sprite/leafy_plant/7.vox new file mode 100644 index 0000000..df8b479 Binary files /dev/null and b/assets/voxygen/voxel/sprite/leafy_plant/7.vox differ diff --git a/assets/voxygen/voxel/sprite/leafy_plant/8.vox b/assets/voxygen/voxel/sprite/leafy_plant/8.vox new file mode 100644 index 0000000..9518b8b Binary files /dev/null and b/assets/voxygen/voxel/sprite/leafy_plant/8.vox differ diff --git a/assets/voxygen/voxel/sprite/leafy_plant/9.vox b/assets/voxygen/voxel/sprite/leafy_plant/9.vox new file mode 100644 index 0000000..d74be9f Binary files /dev/null and b/assets/voxygen/voxel/sprite/leafy_plant/9.vox differ diff --git a/assets/voxygen/voxel/sprite/leafy_plant/jungle_plant-0.vox b/assets/voxygen/voxel/sprite/leafy_plant/jungle_plant-0.vox new file mode 100644 index 0000000..f80e7ba Binary files /dev/null and b/assets/voxygen/voxel/sprite/leafy_plant/jungle_plant-0.vox differ diff --git a/assets/voxygen/voxel/sprite/leafy_plant/jungle_plant-1.vox b/assets/voxygen/voxel/sprite/leafy_plant/jungle_plant-1.vox new file mode 100644 index 0000000..e339970 Binary files /dev/null and b/assets/voxygen/voxel/sprite/leafy_plant/jungle_plant-1.vox differ diff --git a/assets/voxygen/voxel/sprite/leafy_plant/jungle_plant-2.vox b/assets/voxygen/voxel/sprite/leafy_plant/jungle_plant-2.vox new file mode 100644 index 0000000..667faaf Binary files /dev/null and b/assets/voxygen/voxel/sprite/leafy_plant/jungle_plant-2.vox differ diff --git a/assets/voxygen/voxel/sprite/leafy_plant/jungle_plant-3.vox b/assets/voxygen/voxel/sprite/leafy_plant/jungle_plant-3.vox new file mode 100644 index 0000000..0fc89b6 Binary files /dev/null and b/assets/voxygen/voxel/sprite/leafy_plant/jungle_plant-3.vox differ diff --git a/assets/voxygen/voxel/sprite/leafy_plant/jungle_plant-4.vox b/assets/voxygen/voxel/sprite/leafy_plant/jungle_plant-4.vox new file mode 100644 index 0000000..5a81c12 Binary files /dev/null and b/assets/voxygen/voxel/sprite/leafy_plant/jungle_plant-4.vox differ diff --git a/assets/voxygen/voxel/sprite/leafy_plant/jungle_plant_ceiling-0.vox b/assets/voxygen/voxel/sprite/leafy_plant/jungle_plant_ceiling-0.vox new file mode 100644 index 0000000..5c2ebe5 Binary files /dev/null and b/assets/voxygen/voxel/sprite/leafy_plant/jungle_plant_ceiling-0.vox differ diff --git a/assets/voxygen/voxel/sprite/leafy_plant/jungle_plant_ceiling-1.vox b/assets/voxygen/voxel/sprite/leafy_plant/jungle_plant_ceiling-1.vox new file mode 100644 index 0000000..6446c62 Binary files /dev/null and b/assets/voxygen/voxel/sprite/leafy_plant/jungle_plant_ceiling-1.vox differ diff --git a/assets/voxygen/voxel/sprite/leafy_plant/jungle_plant_ceiling-2.vox b/assets/voxygen/voxel/sprite/leafy_plant/jungle_plant_ceiling-2.vox new file mode 100644 index 0000000..e3a3535 Binary files /dev/null and b/assets/voxygen/voxel/sprite/leafy_plant/jungle_plant_ceiling-2.vox differ diff --git a/assets/voxygen/voxel/sprite/leafy_plant/jungle_plant_ceiling-3.vox b/assets/voxygen/voxel/sprite/leafy_plant/jungle_plant_ceiling-3.vox new file mode 100644 index 0000000..dfdb157 Binary files /dev/null and b/assets/voxygen/voxel/sprite/leafy_plant/jungle_plant_ceiling-3.vox differ diff --git a/assets/voxygen/voxel/sprite/leafy_plant/jungle_plant_ceiling-4.vox b/assets/voxygen/voxel/sprite/leafy_plant/jungle_plant_ceiling-4.vox new file mode 100644 index 0000000..90fe789 Binary files /dev/null and b/assets/voxygen/voxel/sprite/leafy_plant/jungle_plant_ceiling-4.vox differ diff --git a/assets/voxygen/voxel/sprite/lianas/liana-0.vox b/assets/voxygen/voxel/sprite/lianas/liana-0.vox new file mode 100644 index 0000000..95fe31f Binary files /dev/null and b/assets/voxygen/voxel/sprite/lianas/liana-0.vox differ diff --git a/assets/voxygen/voxel/sprite/lianas/liana-1.vox b/assets/voxygen/voxel/sprite/lianas/liana-1.vox new file mode 100644 index 0000000..03f125f Binary files /dev/null and b/assets/voxygen/voxel/sprite/lianas/liana-1.vox differ diff --git a/assets/voxygen/voxel/sprite/lillypads/temperate-lilypad-1.vox b/assets/voxygen/voxel/sprite/lillypads/temperate-lilypad-1.vox new file mode 100644 index 0000000..0c28299 Binary files /dev/null and b/assets/voxygen/voxel/sprite/lillypads/temperate-lilypad-1.vox differ diff --git a/assets/voxygen/voxel/sprite/lillypads/temperate-lilypad-2.vox b/assets/voxygen/voxel/sprite/lillypads/temperate-lilypad-2.vox new file mode 100644 index 0000000..c1e95b1 Binary files /dev/null and b/assets/voxygen/voxel/sprite/lillypads/temperate-lilypad-2.vox differ diff --git a/assets/voxygen/voxel/sprite/lillypads/temperate-lilypad-3.vox b/assets/voxygen/voxel/sprite/lillypads/temperate-lilypad-3.vox new file mode 100644 index 0000000..43dfbae Binary files /dev/null and b/assets/voxygen/voxel/sprite/lillypads/temperate-lilypad-3.vox differ diff --git a/assets/voxygen/voxel/sprite/lillypads/temperate-lilypad-4.vox b/assets/voxygen/voxel/sprite/lillypads/temperate-lilypad-4.vox new file mode 100644 index 0000000..03f9c2f Binary files /dev/null and b/assets/voxygen/voxel/sprite/lillypads/temperate-lilypad-4.vox differ diff --git a/assets/voxygen/voxel/sprite/lillypads/temperate-lilypad-5.vox b/assets/voxygen/voxel/sprite/lillypads/temperate-lilypad-5.vox new file mode 100644 index 0000000..96ccbb1 Binary files /dev/null and b/assets/voxygen/voxel/sprite/lillypads/temperate-lilypad-5.vox differ diff --git a/assets/voxygen/voxel/sprite/lillypads/temperate-lilypad-6.vox b/assets/voxygen/voxel/sprite/lillypads/temperate-lilypad-6.vox new file mode 100644 index 0000000..bfef7b6 Binary files /dev/null and b/assets/voxygen/voxel/sprite/lillypads/temperate-lilypad-6.vox differ diff --git a/assets/voxygen/voxel/sprite/lillypads/temperate-lilypad-7.vox b/assets/voxygen/voxel/sprite/lillypads/temperate-lilypad-7.vox new file mode 100644 index 0000000..0989e9c Binary files /dev/null and b/assets/voxygen/voxel/sprite/lillypads/temperate-lilypad-7.vox differ diff --git a/assets/voxygen/voxel/sprite/lillypads/temperate-lilypad-8.vox b/assets/voxygen/voxel/sprite/lillypads/temperate-lilypad-8.vox new file mode 100644 index 0000000..7fc5862 Binary files /dev/null and b/assets/voxygen/voxel/sprite/lillypads/temperate-lilypad-8.vox differ diff --git a/assets/voxygen/voxel/sprite/lillypads/temperate-lilypad-9.vox b/assets/voxygen/voxel/sprite/lillypads/temperate-lilypad-9.vox new file mode 100644 index 0000000..810b953 Binary files /dev/null and b/assets/voxygen/voxel/sprite/lillypads/temperate-lilypad-9.vox differ diff --git a/assets/voxygen/voxel/sprite/lillypads/temperate-reeds-1.vox b/assets/voxygen/voxel/sprite/lillypads/temperate-reeds-1.vox new file mode 100644 index 0000000..0193d2f Binary files /dev/null and b/assets/voxygen/voxel/sprite/lillypads/temperate-reeds-1.vox differ diff --git a/assets/voxygen/voxel/sprite/lillypads/temperate-reeds-2.vox b/assets/voxygen/voxel/sprite/lillypads/temperate-reeds-2.vox new file mode 100644 index 0000000..89688d1 Binary files /dev/null and b/assets/voxygen/voxel/sprite/lillypads/temperate-reeds-2.vox differ diff --git a/assets/voxygen/voxel/sprite/lillypads/temperate-reeds-3.vox b/assets/voxygen/voxel/sprite/lillypads/temperate-reeds-3.vox new file mode 100644 index 0000000..dc37d66 Binary files /dev/null and b/assets/voxygen/voxel/sprite/lillypads/temperate-reeds-3.vox differ diff --git a/assets/voxygen/voxel/sprite/lillypads/temperate-reeds-4.vox b/assets/voxygen/voxel/sprite/lillypads/temperate-reeds-4.vox new file mode 100644 index 0000000..534acc1 Binary files /dev/null and b/assets/voxygen/voxel/sprite/lillypads/temperate-reeds-4.vox differ diff --git a/assets/voxygen/voxel/sprite/lillypads/temperate-reeds-5.vox b/assets/voxygen/voxel/sprite/lillypads/temperate-reeds-5.vox new file mode 100644 index 0000000..3a08099 Binary files /dev/null and b/assets/voxygen/voxel/sprite/lillypads/temperate-reeds-5.vox differ diff --git a/assets/voxygen/voxel/sprite/lingonberry/1.vox b/assets/voxygen/voxel/sprite/lingonberry/1.vox new file mode 100644 index 0000000..c71dfa3 Binary files /dev/null and b/assets/voxygen/voxel/sprite/lingonberry/1.vox differ diff --git a/assets/voxygen/voxel/sprite/lingonberry/2.vox b/assets/voxygen/voxel/sprite/lingonberry/2.vox new file mode 100644 index 0000000..a7a2b4a Binary files /dev/null and b/assets/voxygen/voxel/sprite/lingonberry/2.vox differ diff --git a/assets/voxygen/voxel/sprite/lingonberry/3.vox b/assets/voxygen/voxel/sprite/lingonberry/3.vox new file mode 100644 index 0000000..2b86971 Binary files /dev/null and b/assets/voxygen/voxel/sprite/lingonberry/3.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/bloodstone_1.vox b/assets/voxygen/voxel/sprite/mineral/deposit/bloodstone_1.vox new file mode 100644 index 0000000..a0bc7cc Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/bloodstone_1.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/bloodstone_2.vox b/assets/voxygen/voxel/sprite/mineral/deposit/bloodstone_2.vox new file mode 100644 index 0000000..bb055fc Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/bloodstone_2.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/bloodstone_3.vox b/assets/voxygen/voxel/sprite/mineral/deposit/bloodstone_3.vox new file mode 100644 index 0000000..49e4cd5 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/bloodstone_3.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/coal_1.vox b/assets/voxygen/voxel/sprite/mineral/deposit/coal_1.vox new file mode 100644 index 0000000..888ca75 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/coal_1.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/coal_2.vox b/assets/voxygen/voxel/sprite/mineral/deposit/coal_2.vox new file mode 100644 index 0000000..ed29cc0 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/coal_2.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/coal_3.vox b/assets/voxygen/voxel/sprite/mineral/deposit/coal_3.vox new file mode 100644 index 0000000..ed783bb Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/coal_3.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/cobalt_1.vox b/assets/voxygen/voxel/sprite/mineral/deposit/cobalt_1.vox new file mode 100644 index 0000000..c83fcd5 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/cobalt_1.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/cobalt_2.vox b/assets/voxygen/voxel/sprite/mineral/deposit/cobalt_2.vox new file mode 100644 index 0000000..9014f44 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/cobalt_2.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/cobalt_3.vox b/assets/voxygen/voxel/sprite/mineral/deposit/cobalt_3.vox new file mode 100644 index 0000000..815e8f8 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/cobalt_3.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/copper_1.vox b/assets/voxygen/voxel/sprite/mineral/deposit/copper_1.vox new file mode 100644 index 0000000..f2e198f Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/copper_1.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/copper_2.vox b/assets/voxygen/voxel/sprite/mineral/deposit/copper_2.vox new file mode 100644 index 0000000..761a002 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/copper_2.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/copper_3.vox b/assets/voxygen/voxel/sprite/mineral/deposit/copper_3.vox new file mode 100644 index 0000000..bd3dc8a Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/copper_3.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/crystal/ceiling/blue-0.vox b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/ceiling/blue-0.vox new file mode 100644 index 0000000..e2285cf Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/ceiling/blue-0.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/crystal/ceiling/blue-1.vox b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/ceiling/blue-1.vox new file mode 100644 index 0000000..381dfd5 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/ceiling/blue-1.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/crystal/ceiling/blue-2.vox b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/ceiling/blue-2.vox new file mode 100644 index 0000000..9d7779b Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/ceiling/blue-2.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/crystal/ceiling/green-0.vox b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/ceiling/green-0.vox new file mode 100644 index 0000000..bdbeb5f Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/ceiling/green-0.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/crystal/ceiling/green-1.vox b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/ceiling/green-1.vox new file mode 100644 index 0000000..11719bc Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/ceiling/green-1.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/crystal/ceiling/green-2.vox b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/ceiling/green-2.vox new file mode 100644 index 0000000..d1426e7 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/ceiling/green-2.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/crystal/ceiling/purple-0.vox b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/ceiling/purple-0.vox new file mode 100644 index 0000000..12aee99 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/ceiling/purple-0.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/crystal/ceiling/purple-1.vox b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/ceiling/purple-1.vox new file mode 100644 index 0000000..6a6790b Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/ceiling/purple-1.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/crystal/ceiling/purple-2.vox b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/ceiling/purple-2.vox new file mode 100644 index 0000000..9e54b16 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/ceiling/purple-2.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/crystal/ceiling/purple-3.vox b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/ceiling/purple-3.vox new file mode 100644 index 0000000..f911e5a Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/ceiling/purple-3.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/crystal/floor/blue-0.vox b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/floor/blue-0.vox new file mode 100644 index 0000000..fd68b9f Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/floor/blue-0.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/crystal/floor/blue-1.vox b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/floor/blue-1.vox new file mode 100644 index 0000000..8bc6c82 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/floor/blue-1.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/crystal/floor/blue-2.vox b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/floor/blue-2.vox new file mode 100644 index 0000000..b4344ae Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/floor/blue-2.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/crystal/floor/green-0.vox b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/floor/green-0.vox new file mode 100644 index 0000000..7355c9f Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/floor/green-0.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/crystal/floor/green-1.vox b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/floor/green-1.vox new file mode 100644 index 0000000..4a45548 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/floor/green-1.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/crystal/floor/green-2.vox b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/floor/green-2.vox new file mode 100644 index 0000000..3652ade Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/floor/green-2.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/crystal/floor/purple-0.vox b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/floor/purple-0.vox new file mode 100644 index 0000000..f3619b0 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/floor/purple-0.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/crystal/floor/purple-1.vox b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/floor/purple-1.vox new file mode 100644 index 0000000..92332fb Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/floor/purple-1.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/crystal/floor/purple-2.vox b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/floor/purple-2.vox new file mode 100644 index 0000000..60e18f2 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/crystal/floor/purple-2.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/gold_1.vox b/assets/voxygen/voxel/sprite/mineral/deposit/gold_1.vox new file mode 100644 index 0000000..a37ec6e Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/gold_1.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/gold_2.vox b/assets/voxygen/voxel/sprite/mineral/deposit/gold_2.vox new file mode 100644 index 0000000..57f0fdf Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/gold_2.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/gold_3.vox b/assets/voxygen/voxel/sprite/mineral/deposit/gold_3.vox new file mode 100644 index 0000000..461c835 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/gold_3.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/iron_1.vox b/assets/voxygen/voxel/sprite/mineral/deposit/iron_1.vox new file mode 100644 index 0000000..e4e3d16 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/iron_1.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/iron_2.vox b/assets/voxygen/voxel/sprite/mineral/deposit/iron_2.vox new file mode 100644 index 0000000..d06fd95 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/iron_2.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/iron_3.vox b/assets/voxygen/voxel/sprite/mineral/deposit/iron_3.vox new file mode 100644 index 0000000..1c40051 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/iron_3.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/silver_1.vox b/assets/voxygen/voxel/sprite/mineral/deposit/silver_1.vox new file mode 100644 index 0000000..55de5db Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/silver_1.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/silver_2.vox b/assets/voxygen/voxel/sprite/mineral/deposit/silver_2.vox new file mode 100644 index 0000000..574e31e Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/silver_2.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/silver_3.vox b/assets/voxygen/voxel/sprite/mineral/deposit/silver_3.vox new file mode 100644 index 0000000..0e0e9da Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/silver_3.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/tin_1.vox b/assets/voxygen/voxel/sprite/mineral/deposit/tin_1.vox new file mode 100644 index 0000000..3e26e3d Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/tin_1.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/tin_2.vox b/assets/voxygen/voxel/sprite/mineral/deposit/tin_2.vox new file mode 100644 index 0000000..f2241de Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/tin_2.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/deposit/tin_3.vox b/assets/voxygen/voxel/sprite/mineral/deposit/tin_3.vox new file mode 100644 index 0000000..f272c8f Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/deposit/tin_3.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/amethyst_1.vox b/assets/voxygen/voxel/sprite/mineral/gem/amethyst_1.vox new file mode 100644 index 0000000..52987cb Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/amethyst_1.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/amethyst_2.vox b/assets/voxygen/voxel/sprite/mineral/gem/amethyst_2.vox new file mode 100644 index 0000000..cf5b000 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/amethyst_2.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/amethyst_3.vox b/assets/voxygen/voxel/sprite/mineral/gem/amethyst_3.vox new file mode 100644 index 0000000..1d1ce73 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/amethyst_3.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/amethystgem.vox b/assets/voxygen/voxel/sprite/mineral/gem/amethystgem.vox new file mode 100644 index 0000000..1ff6330 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/amethystgem.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/diamond_1.vox b/assets/voxygen/voxel/sprite/mineral/gem/diamond_1.vox new file mode 100644 index 0000000..b5e835d Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/diamond_1.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/diamond_2.vox b/assets/voxygen/voxel/sprite/mineral/gem/diamond_2.vox new file mode 100644 index 0000000..8fe4a6e Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/diamond_2.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/diamond_3.vox b/assets/voxygen/voxel/sprite/mineral/gem/diamond_3.vox new file mode 100644 index 0000000..c0a0596 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/diamond_3.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/diamondgem.vox b/assets/voxygen/voxel/sprite/mineral/gem/diamondgem.vox new file mode 100644 index 0000000..48a91c4 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/diamondgem.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/emerald_1.vox b/assets/voxygen/voxel/sprite/mineral/gem/emerald_1.vox new file mode 100644 index 0000000..9cde88a Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/emerald_1.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/emerald_2.vox b/assets/voxygen/voxel/sprite/mineral/gem/emerald_2.vox new file mode 100644 index 0000000..1f8fe45 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/emerald_2.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/emerald_3.vox b/assets/voxygen/voxel/sprite/mineral/gem/emerald_3.vox new file mode 100644 index 0000000..437e7a9 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/emerald_3.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/emeraldgem.vox b/assets/voxygen/voxel/sprite/mineral/gem/emeraldgem.vox new file mode 100644 index 0000000..ba28cfe Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/emeraldgem.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/gem_blue.vox b/assets/voxygen/voxel/sprite/mineral/gem/gem_blue.vox new file mode 100644 index 0000000..7c9fd10 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/gem_blue.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/gem_green.vox b/assets/voxygen/voxel/sprite/mineral/gem/gem_green.vox new file mode 100644 index 0000000..bf7e41a Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/gem_green.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/gem_red.vox b/assets/voxygen/voxel/sprite/mineral/gem/gem_red.vox new file mode 100644 index 0000000..dd95a3c Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/gem_red.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/ruby_1.vox b/assets/voxygen/voxel/sprite/mineral/gem/ruby_1.vox new file mode 100644 index 0000000..2a03062 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/ruby_1.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/ruby_2.vox b/assets/voxygen/voxel/sprite/mineral/gem/ruby_2.vox new file mode 100644 index 0000000..14f17ba Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/ruby_2.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/ruby_3.vox b/assets/voxygen/voxel/sprite/mineral/gem/ruby_3.vox new file mode 100644 index 0000000..5f1c7cb Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/ruby_3.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/rubygem.vox b/assets/voxygen/voxel/sprite/mineral/gem/rubygem.vox new file mode 100644 index 0000000..b38b5ed Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/rubygem.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/sapphire_1.vox b/assets/voxygen/voxel/sprite/mineral/gem/sapphire_1.vox new file mode 100644 index 0000000..a42f2ea Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/sapphire_1.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/sapphire_2.vox b/assets/voxygen/voxel/sprite/mineral/gem/sapphire_2.vox new file mode 100644 index 0000000..d40b987 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/sapphire_2.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/sapphire_3.vox b/assets/voxygen/voxel/sprite/mineral/gem/sapphire_3.vox new file mode 100644 index 0000000..3f7e29e Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/sapphire_3.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/sapphiregem.vox b/assets/voxygen/voxel/sprite/mineral/gem/sapphiregem.vox new file mode 100644 index 0000000..ad46109 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/sapphiregem.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/topaz_1.vox b/assets/voxygen/voxel/sprite/mineral/gem/topaz_1.vox new file mode 100644 index 0000000..e5b7504 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/topaz_1.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/topaz_2.vox b/assets/voxygen/voxel/sprite/mineral/gem/topaz_2.vox new file mode 100644 index 0000000..a6622c3 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/topaz_2.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/topaz_3.vox b/assets/voxygen/voxel/sprite/mineral/gem/topaz_3.vox new file mode 100644 index 0000000..c1f4ed0 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/topaz_3.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/topazgem.vox b/assets/voxygen/voxel/sprite/mineral/gem/topazgem.vox new file mode 100644 index 0000000..c936296 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/topazgem.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/velorite_1.vox b/assets/voxygen/voxel/sprite/mineral/gem/velorite_1.vox new file mode 100644 index 0000000..8da29bc Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/velorite_1.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/velorite_2.vox b/assets/voxygen/voxel/sprite/mineral/gem/velorite_2.vox new file mode 100644 index 0000000..e75e126 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/velorite_2.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/velorite_3.vox b/assets/voxygen/voxel/sprite/mineral/gem/velorite_3.vox new file mode 100644 index 0000000..af2d7ee Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/velorite_3.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/velorite_frag_1.vox b/assets/voxygen/voxel/sprite/mineral/gem/velorite_frag_1.vox new file mode 100644 index 0000000..3ae44a1 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/velorite_frag_1.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/gem/velorite_frag_2.vox b/assets/voxygen/voxel/sprite/mineral/gem/velorite_frag_2.vox new file mode 100644 index 0000000..fb69e72 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/gem/velorite_frag_2.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/ingot/bloodsteel.vox b/assets/voxygen/voxel/sprite/mineral/ingot/bloodsteel.vox new file mode 100644 index 0000000..166caba Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/ingot/bloodsteel.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/ingot/bronze.vox b/assets/voxygen/voxel/sprite/mineral/ingot/bronze.vox new file mode 100644 index 0000000..95b90a0 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/ingot/bronze.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/ingot/cobalt.vox b/assets/voxygen/voxel/sprite/mineral/ingot/cobalt.vox new file mode 100644 index 0000000..9dd89f7 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/ingot/cobalt.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/ingot/copper.vox b/assets/voxygen/voxel/sprite/mineral/ingot/copper.vox new file mode 100644 index 0000000..e6fc42c Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/ingot/copper.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/ingot/gold.vox b/assets/voxygen/voxel/sprite/mineral/ingot/gold.vox new file mode 100644 index 0000000..ee6f994 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/ingot/gold.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/ingot/iron.vox b/assets/voxygen/voxel/sprite/mineral/ingot/iron.vox new file mode 100644 index 0000000..b929114 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/ingot/iron.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/ingot/orichalcum.vox b/assets/voxygen/voxel/sprite/mineral/ingot/orichalcum.vox new file mode 100644 index 0000000..e998abe Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/ingot/orichalcum.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/ingot/silver.vox b/assets/voxygen/voxel/sprite/mineral/ingot/silver.vox new file mode 100644 index 0000000..a08b412 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/ingot/silver.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/ingot/steel.vox b/assets/voxygen/voxel/sprite/mineral/ingot/steel.vox new file mode 100644 index 0000000..2d1585e Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/ingot/steel.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/ingot/tin.vox b/assets/voxygen/voxel/sprite/mineral/ingot/tin.vox new file mode 100644 index 0000000..84674c9 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/ingot/tin.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/ore/ancient_gold.vox b/assets/voxygen/voxel/sprite/mineral/ore/ancient_gold.vox new file mode 100644 index 0000000..0b2dcfc Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/ore/ancient_gold.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/ore/bloodstone.vox b/assets/voxygen/voxel/sprite/mineral/ore/bloodstone.vox new file mode 100644 index 0000000..baa156d Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/ore/bloodstone.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/ore/coal.vox b/assets/voxygen/voxel/sprite/mineral/ore/coal.vox new file mode 100644 index 0000000..a39d9f5 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/ore/coal.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/ore/cobalt.vox b/assets/voxygen/voxel/sprite/mineral/ore/cobalt.vox new file mode 100644 index 0000000..6a881c5 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/ore/cobalt.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/ore/copper.vox b/assets/voxygen/voxel/sprite/mineral/ore/copper.vox new file mode 100644 index 0000000..7d862f3 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/ore/copper.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/ore/gold.vox b/assets/voxygen/voxel/sprite/mineral/ore/gold.vox new file mode 100644 index 0000000..7664379 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/ore/gold.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/ore/iron.vox b/assets/voxygen/voxel/sprite/mineral/ore/iron.vox new file mode 100644 index 0000000..1d6d4fd Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/ore/iron.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/ore/silver.vox b/assets/voxygen/voxel/sprite/mineral/ore/silver.vox new file mode 100644 index 0000000..21a2ed5 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/ore/silver.vox differ diff --git a/assets/voxygen/voxel/sprite/mineral/ore/tin.vox b/assets/voxygen/voxel/sprite/mineral/ore/tin.vox new file mode 100644 index 0000000..1d49845 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mineral/ore/tin.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/barrel_organ.vox b/assets/voxygen/voxel/sprite/misc/barrel_organ.vox new file mode 100644 index 0000000..e00364f Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/barrel_organ.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/crate.vox b/assets/voxygen/voxel/sprite/misc/crate.vox new file mode 100644 index 0000000..f3c049d Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/crate.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/ensnaring_vines.vox b/assets/voxygen/voxel/sprite/misc/ensnaring_vines.vox new file mode 100644 index 0000000..f111c2d Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/ensnaring_vines.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/ensnaring_web.vox b/assets/voxygen/voxel/sprite/misc/ensnaring_web.vox new file mode 100644 index 0000000..042968d Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/ensnaring_web.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/fireblock.vox b/assets/voxygen/voxel/sprite/misc/fireblock.vox new file mode 100644 index 0000000..4546df2 Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/fireblock.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/floating_diamond.vox b/assets/voxygen/voxel/sprite/misc/floating_diamond.vox new file mode 100644 index 0000000..23cc243 Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/floating_diamond.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/icespike.vox b/assets/voxygen/voxel/sprite/misc/icespike.vox new file mode 100644 index 0000000..9328ebf Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/icespike.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/key_gold.vox b/assets/voxygen/voxel/sprite/misc/key_gold.vox new file mode 100644 index 0000000..304f64d Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/key_gold.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/lantern_ground_open.vox b/assets/voxygen/voxel/sprite/misc/lantern_ground_open.vox new file mode 100644 index 0000000..b175f3e Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/lantern_ground_open.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/metal_chain.vox b/assets/voxygen/voxel/sprite/misc/metal_chain.vox new file mode 100644 index 0000000..f75b082 Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/metal_chain.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/mine.vox b/assets/voxygen/voxel/sprite/misc/mine.vox new file mode 100644 index 0000000..212a921 Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/mine.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/rope.vox b/assets/voxygen/voxel/sprite/misc/rope.vox new file mode 100644 index 0000000..c8238a2 Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/rope.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/scarecrow.vox b/assets/voxygen/voxel/sprite/misc/scarecrow.vox new file mode 100644 index 0000000..aba21f3 Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/scarecrow.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/sea_decor_block.vox b/assets/voxygen/voxel/sprite/misc/sea_decor_block.vox new file mode 100644 index 0000000..1b2aac9 Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/sea_decor_block.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/sea_decor_chain.vox b/assets/voxygen/voxel/sprite/misc/sea_decor_chain.vox new file mode 100644 index 0000000..da07253 Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/sea_decor_chain.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/sea_decor_emblem.vox b/assets/voxygen/voxel/sprite/misc/sea_decor_emblem.vox new file mode 100644 index 0000000..21b74f2 Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/sea_decor_emblem.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/sea_decor_pillar-0.vox b/assets/voxygen/voxel/sprite/misc/sea_decor_pillar-0.vox new file mode 100644 index 0000000..3a43e1f Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/sea_decor_pillar-0.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/sea_decor_pillar-1.vox b/assets/voxygen/voxel/sprite/misc/sea_decor_pillar-1.vox new file mode 100644 index 0000000..1913455 Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/sea_decor_pillar-1.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/sea_decor_pillar-2.vox b/assets/voxygen/voxel/sprite/misc/sea_decor_pillar-2.vox new file mode 100644 index 0000000..21553b4 Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/sea_decor_pillar-2.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/sea_decor_pillar-3.vox b/assets/voxygen/voxel/sprite/misc/sea_decor_pillar-3.vox new file mode 100644 index 0000000..f5c239b Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/sea_decor_pillar-3.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/sea_decor_pillar-4.vox b/assets/voxygen/voxel/sprite/misc/sea_decor_pillar-4.vox new file mode 100644 index 0000000..e7082f5 Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/sea_decor_pillar-4.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/sea_decor_pillar-5.vox b/assets/voxygen/voxel/sprite/misc/sea_decor_pillar-5.vox new file mode 100644 index 0000000..b96f79d Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/sea_decor_pillar-5.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/sea_decor_pillar-6.vox b/assets/voxygen/voxel/sprite/misc/sea_decor_pillar-6.vox new file mode 100644 index 0000000..ae11e5b Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/sea_decor_pillar-6.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/sea_decor_pillar-7.vox b/assets/voxygen/voxel/sprite/misc/sea_decor_pillar-7.vox new file mode 100644 index 0000000..6db8d62 Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/sea_decor_pillar-7.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/sea_decor_window_hor.vox b/assets/voxygen/voxel/sprite/misc/sea_decor_window_hor.vox new file mode 100644 index 0000000..9591c33 Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/sea_decor_window_hor.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/sea_decor_window_ver.vox b/assets/voxygen/voxel/sprite/misc/sea_decor_window_ver.vox new file mode 100644 index 0000000..d6f59e3 Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/sea_decor_window_ver.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/street_lamp.vox b/assets/voxygen/voxel/sprite/misc/street_lamp.vox new file mode 100644 index 0000000..1675663 Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/street_lamp.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/terracotta_block-0.vox b/assets/voxygen/voxel/sprite/misc/terracotta_block-0.vox new file mode 100644 index 0000000..7c16d3c Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/terracotta_block-0.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/terracotta_block-1.vox b/assets/voxygen/voxel/sprite/misc/terracotta_block-1.vox new file mode 100644 index 0000000..95066f3 Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/terracotta_block-1.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/terracotta_block-2.vox b/assets/voxygen/voxel/sprite/misc/terracotta_block-2.vox new file mode 100644 index 0000000..336cb0b Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/terracotta_block-2.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/terracotta_block-3.vox b/assets/voxygen/voxel/sprite/misc/terracotta_block-3.vox new file mode 100644 index 0000000..e2c6464 Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/terracotta_block-3.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/terracotta_block-4.vox b/assets/voxygen/voxel/sprite/misc/terracotta_block-4.vox new file mode 100644 index 0000000..7a939c4 Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/terracotta_block-4.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/terracotta_block-5.vox b/assets/voxygen/voxel/sprite/misc/terracotta_block-5.vox new file mode 100644 index 0000000..5126d6e Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/terracotta_block-5.vox differ diff --git a/assets/voxygen/voxel/sprite/misc/terracotta_block-6.vox b/assets/voxygen/voxel/sprite/misc/terracotta_block-6.vox new file mode 100644 index 0000000..5126d6e Binary files /dev/null and b/assets/voxygen/voxel/sprite/misc/terracotta_block-6.vox differ diff --git a/assets/voxygen/voxel/sprite/mushrooms/mushroom-0.vox b/assets/voxygen/voxel/sprite/mushrooms/mushroom-0.vox new file mode 100644 index 0000000..284f2cd Binary files /dev/null and b/assets/voxygen/voxel/sprite/mushrooms/mushroom-0.vox differ diff --git a/assets/voxygen/voxel/sprite/mushrooms/mushroom-1.vox b/assets/voxygen/voxel/sprite/mushrooms/mushroom-1.vox new file mode 100644 index 0000000..90aaa38 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mushrooms/mushroom-1.vox differ diff --git a/assets/voxygen/voxel/sprite/mushrooms/mushroom-10.vox b/assets/voxygen/voxel/sprite/mushrooms/mushroom-10.vox new file mode 100644 index 0000000..0d8545b Binary files /dev/null and b/assets/voxygen/voxel/sprite/mushrooms/mushroom-10.vox differ diff --git a/assets/voxygen/voxel/sprite/mushrooms/mushroom-2.vox b/assets/voxygen/voxel/sprite/mushrooms/mushroom-2.vox new file mode 100644 index 0000000..01d40c8 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mushrooms/mushroom-2.vox differ diff --git a/assets/voxygen/voxel/sprite/mushrooms/mushroom-3.vox b/assets/voxygen/voxel/sprite/mushrooms/mushroom-3.vox new file mode 100644 index 0000000..727068f Binary files /dev/null and b/assets/voxygen/voxel/sprite/mushrooms/mushroom-3.vox differ diff --git a/assets/voxygen/voxel/sprite/mushrooms/mushroom-4.vox b/assets/voxygen/voxel/sprite/mushrooms/mushroom-4.vox new file mode 100644 index 0000000..b1153ed Binary files /dev/null and b/assets/voxygen/voxel/sprite/mushrooms/mushroom-4.vox differ diff --git a/assets/voxygen/voxel/sprite/mushrooms/mushroom-5.vox b/assets/voxygen/voxel/sprite/mushrooms/mushroom-5.vox new file mode 100644 index 0000000..f5396de Binary files /dev/null and b/assets/voxygen/voxel/sprite/mushrooms/mushroom-5.vox differ diff --git a/assets/voxygen/voxel/sprite/mushrooms/mushroom-6.vox b/assets/voxygen/voxel/sprite/mushrooms/mushroom-6.vox new file mode 100644 index 0000000..25e45bf Binary files /dev/null and b/assets/voxygen/voxel/sprite/mushrooms/mushroom-6.vox differ diff --git a/assets/voxygen/voxel/sprite/mushrooms/mushroom-7.vox b/assets/voxygen/voxel/sprite/mushrooms/mushroom-7.vox new file mode 100644 index 0000000..aaad6c4 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mushrooms/mushroom-7.vox differ diff --git a/assets/voxygen/voxel/sprite/mushrooms/mushroom-8.vox b/assets/voxygen/voxel/sprite/mushrooms/mushroom-8.vox new file mode 100644 index 0000000..a7a044b Binary files /dev/null and b/assets/voxygen/voxel/sprite/mushrooms/mushroom-8.vox differ diff --git a/assets/voxygen/voxel/sprite/mushrooms/mushroom-9.vox b/assets/voxygen/voxel/sprite/mushrooms/mushroom-9.vox new file mode 100644 index 0000000..8ca2f40 Binary files /dev/null and b/assets/voxygen/voxel/sprite/mushrooms/mushroom-9.vox differ diff --git a/assets/voxygen/voxel/sprite/pumpkin/1.vox b/assets/voxygen/voxel/sprite/pumpkin/1.vox new file mode 100644 index 0000000..0800057 Binary files /dev/null and b/assets/voxygen/voxel/sprite/pumpkin/1.vox differ diff --git a/assets/voxygen/voxel/sprite/pumpkin/2.vox b/assets/voxygen/voxel/sprite/pumpkin/2.vox new file mode 100644 index 0000000..36886d8 Binary files /dev/null and b/assets/voxygen/voxel/sprite/pumpkin/2.vox differ diff --git a/assets/voxygen/voxel/sprite/pumpkin/3.vox b/assets/voxygen/voxel/sprite/pumpkin/3.vox new file mode 100644 index 0000000..f1dc832 Binary files /dev/null and b/assets/voxygen/voxel/sprite/pumpkin/3.vox differ diff --git a/assets/voxygen/voxel/sprite/pumpkin/4.vox b/assets/voxygen/voxel/sprite/pumpkin/4.vox new file mode 100644 index 0000000..95faac2 Binary files /dev/null and b/assets/voxygen/voxel/sprite/pumpkin/4.vox differ diff --git a/assets/voxygen/voxel/sprite/pumpkin/5.vox b/assets/voxygen/voxel/sprite/pumpkin/5.vox new file mode 100644 index 0000000..aa12f85 Binary files /dev/null and b/assets/voxygen/voxel/sprite/pumpkin/5.vox differ diff --git a/assets/voxygen/voxel/sprite/pumpkin/6.vox b/assets/voxygen/voxel/sprite/pumpkin/6.vox new file mode 100644 index 0000000..df03f00 Binary files /dev/null and b/assets/voxygen/voxel/sprite/pumpkin/6.vox differ diff --git a/assets/voxygen/voxel/sprite/pumpkin/7.vox b/assets/voxygen/voxel/sprite/pumpkin/7.vox new file mode 100644 index 0000000..5eeb072 Binary files /dev/null and b/assets/voxygen/voxel/sprite/pumpkin/7.vox differ diff --git a/assets/voxygen/voxel/sprite/radish/0.vox b/assets/voxygen/voxel/sprite/radish/0.vox new file mode 100644 index 0000000..94fb17b Binary files /dev/null and b/assets/voxygen/voxel/sprite/radish/0.vox differ diff --git a/assets/voxygen/voxel/sprite/radish/1.vox b/assets/voxygen/voxel/sprite/radish/1.vox new file mode 100644 index 0000000..7995540 Binary files /dev/null and b/assets/voxygen/voxel/sprite/radish/1.vox differ diff --git a/assets/voxygen/voxel/sprite/radish/2.vox b/assets/voxygen/voxel/sprite/radish/2.vox new file mode 100644 index 0000000..b279bf9 Binary files /dev/null and b/assets/voxygen/voxel/sprite/radish/2.vox differ diff --git a/assets/voxygen/voxel/sprite/radish/3.vox b/assets/voxygen/voxel/sprite/radish/3.vox new file mode 100644 index 0000000..0c2721b Binary files /dev/null and b/assets/voxygen/voxel/sprite/radish/3.vox differ diff --git a/assets/voxygen/voxel/sprite/radish/4.vox b/assets/voxygen/voxel/sprite/radish/4.vox new file mode 100644 index 0000000..0ba0f95 Binary files /dev/null and b/assets/voxygen/voxel/sprite/radish/4.vox differ diff --git a/assets/voxygen/voxel/sprite/reed/reed-0.vox b/assets/voxygen/voxel/sprite/reed/reed-0.vox new file mode 100644 index 0000000..024f6ad Binary files /dev/null and b/assets/voxygen/voxel/sprite/reed/reed-0.vox differ diff --git a/assets/voxygen/voxel/sprite/reed/reed-1.vox b/assets/voxygen/voxel/sprite/reed/reed-1.vox new file mode 100644 index 0000000..954c661 Binary files /dev/null and b/assets/voxygen/voxel/sprite/reed/reed-1.vox differ diff --git a/assets/voxygen/voxel/sprite/reed/reed-2.vox b/assets/voxygen/voxel/sprite/reed/reed-2.vox new file mode 100644 index 0000000..56e84de Binary files /dev/null and b/assets/voxygen/voxel/sprite/reed/reed-2.vox differ diff --git a/assets/voxygen/voxel/sprite/reed/reed-3.vox b/assets/voxygen/voxel/sprite/reed/reed-3.vox new file mode 100644 index 0000000..5a29d74 Binary files /dev/null and b/assets/voxygen/voxel/sprite/reed/reed-3.vox differ diff --git a/assets/voxygen/voxel/sprite/reed/reed-4.vox b/assets/voxygen/voxel/sprite/reed/reed-4.vox new file mode 100644 index 0000000..50c7086 Binary files /dev/null and b/assets/voxygen/voxel/sprite/reed/reed-4.vox differ diff --git a/assets/voxygen/voxel/sprite/repair_bench/repair_bench-0.vox b/assets/voxygen/voxel/sprite/repair_bench/repair_bench-0.vox new file mode 100644 index 0000000..6780496 Binary files /dev/null and b/assets/voxygen/voxel/sprite/repair_bench/repair_bench-0.vox differ diff --git a/assets/voxygen/voxel/sprite/rocks/rock-0.vox b/assets/voxygen/voxel/sprite/rocks/rock-0.vox new file mode 100644 index 0000000..f2fc6df Binary files /dev/null and b/assets/voxygen/voxel/sprite/rocks/rock-0.vox differ diff --git a/assets/voxygen/voxel/sprite/rocks/rock-1.vox b/assets/voxygen/voxel/sprite/rocks/rock-1.vox new file mode 100644 index 0000000..0ae7676 Binary files /dev/null and b/assets/voxygen/voxel/sprite/rocks/rock-1.vox differ diff --git a/assets/voxygen/voxel/sprite/rocks/rock-2.vox b/assets/voxygen/voxel/sprite/rocks/rock-2.vox new file mode 100644 index 0000000..37d22d7 Binary files /dev/null and b/assets/voxygen/voxel/sprite/rocks/rock-2.vox differ diff --git a/assets/voxygen/voxel/sprite/salvaging_station/salvaging_station-0.vox b/assets/voxygen/voxel/sprite/salvaging_station/salvaging_station-0.vox new file mode 100644 index 0000000..f572a73 Binary files /dev/null and b/assets/voxygen/voxel/sprite/salvaging_station/salvaging_station-0.vox differ diff --git a/assets/voxygen/voxel/sprite/savanna_bush/1.vox b/assets/voxygen/voxel/sprite/savanna_bush/1.vox new file mode 100644 index 0000000..4ea58fe Binary files /dev/null and b/assets/voxygen/voxel/sprite/savanna_bush/1.vox differ diff --git a/assets/voxygen/voxel/sprite/savanna_bush/2.vox b/assets/voxygen/voxel/sprite/savanna_bush/2.vox new file mode 100644 index 0000000..03af1b0 Binary files /dev/null and b/assets/voxygen/voxel/sprite/savanna_bush/2.vox differ diff --git a/assets/voxygen/voxel/sprite/savanna_bush/3.vox b/assets/voxygen/voxel/sprite/savanna_bush/3.vox new file mode 100644 index 0000000..e5f305a Binary files /dev/null and b/assets/voxygen/voxel/sprite/savanna_bush/3.vox differ diff --git a/assets/voxygen/voxel/sprite/savanna_bush/4.vox b/assets/voxygen/voxel/sprite/savanna_bush/4.vox new file mode 100644 index 0000000..1d0d114 Binary files /dev/null and b/assets/voxygen/voxel/sprite/savanna_bush/4.vox differ diff --git a/assets/voxygen/voxel/sprite/savanna_bush/5.vox b/assets/voxygen/voxel/sprite/savanna_bush/5.vox new file mode 100644 index 0000000..e8a45c7 Binary files /dev/null and b/assets/voxygen/voxel/sprite/savanna_bush/5.vox differ diff --git a/assets/voxygen/voxel/sprite/savanna_bush/6.vox b/assets/voxygen/voxel/sprite/savanna_bush/6.vox new file mode 100644 index 0000000..b6b82d1 Binary files /dev/null and b/assets/voxygen/voxel/sprite/savanna_bush/6.vox differ diff --git a/assets/voxygen/voxel/sprite/seashells/shell-0.vox b/assets/voxygen/voxel/sprite/seashells/shell-0.vox new file mode 100644 index 0000000..40c7eb8 Binary files /dev/null and b/assets/voxygen/voxel/sprite/seashells/shell-0.vox differ diff --git a/assets/voxygen/voxel/sprite/seashells/shell-1.vox b/assets/voxygen/voxel/sprite/seashells/shell-1.vox new file mode 100644 index 0000000..3b1564e Binary files /dev/null and b/assets/voxygen/voxel/sprite/seashells/shell-1.vox differ diff --git a/assets/voxygen/voxel/sprite/sign/basic.vox b/assets/voxygen/voxel/sprite/sign/basic.vox new file mode 100644 index 0000000..f0216fa Binary files /dev/null and b/assets/voxygen/voxel/sprite/sign/basic.vox differ diff --git a/assets/voxygen/voxel/sprite/snow_bush/snow_bush-0.vox b/assets/voxygen/voxel/sprite/snow_bush/snow_bush-0.vox new file mode 100644 index 0000000..39e9262 Binary files /dev/null and b/assets/voxygen/voxel/sprite/snow_bush/snow_bush-0.vox differ diff --git a/assets/voxygen/voxel/sprite/snow_bush/snow_bush-1.vox b/assets/voxygen/voxel/sprite/snow_bush/snow_bush-1.vox new file mode 100644 index 0000000..3183023 Binary files /dev/null and b/assets/voxygen/voxel/sprite/snow_bush/snow_bush-1.vox differ diff --git a/assets/voxygen/voxel/sprite/snow_bush/snow_bush-10.vox b/assets/voxygen/voxel/sprite/snow_bush/snow_bush-10.vox new file mode 100644 index 0000000..b2bd1d8 Binary files /dev/null and b/assets/voxygen/voxel/sprite/snow_bush/snow_bush-10.vox differ diff --git a/assets/voxygen/voxel/sprite/snow_bush/snow_bush-11.vox b/assets/voxygen/voxel/sprite/snow_bush/snow_bush-11.vox new file mode 100644 index 0000000..0124fa8 Binary files /dev/null and b/assets/voxygen/voxel/sprite/snow_bush/snow_bush-11.vox differ diff --git a/assets/voxygen/voxel/sprite/snow_bush/snow_bush-2.vox b/assets/voxygen/voxel/sprite/snow_bush/snow_bush-2.vox new file mode 100644 index 0000000..a6cf126 Binary files /dev/null and b/assets/voxygen/voxel/sprite/snow_bush/snow_bush-2.vox differ diff --git a/assets/voxygen/voxel/sprite/snow_bush/snow_bush-3.vox b/assets/voxygen/voxel/sprite/snow_bush/snow_bush-3.vox new file mode 100644 index 0000000..cb9ba94 Binary files /dev/null and b/assets/voxygen/voxel/sprite/snow_bush/snow_bush-3.vox differ diff --git a/assets/voxygen/voxel/sprite/snow_bush/snow_bush-4.vox b/assets/voxygen/voxel/sprite/snow_bush/snow_bush-4.vox new file mode 100644 index 0000000..029de37 Binary files /dev/null and b/assets/voxygen/voxel/sprite/snow_bush/snow_bush-4.vox differ diff --git a/assets/voxygen/voxel/sprite/snow_bush/snow_bush-5.vox b/assets/voxygen/voxel/sprite/snow_bush/snow_bush-5.vox new file mode 100644 index 0000000..70d5ebe Binary files /dev/null and b/assets/voxygen/voxel/sprite/snow_bush/snow_bush-5.vox differ diff --git a/assets/voxygen/voxel/sprite/snow_bush/snow_bush-6.vox b/assets/voxygen/voxel/sprite/snow_bush/snow_bush-6.vox new file mode 100644 index 0000000..8796560 Binary files /dev/null and b/assets/voxygen/voxel/sprite/snow_bush/snow_bush-6.vox differ diff --git a/assets/voxygen/voxel/sprite/snow_bush/snow_bush-7.vox b/assets/voxygen/voxel/sprite/snow_bush/snow_bush-7.vox new file mode 100644 index 0000000..7cae590 Binary files /dev/null and b/assets/voxygen/voxel/sprite/snow_bush/snow_bush-7.vox differ diff --git a/assets/voxygen/voxel/sprite/snow_bush/snow_bush-8.vox b/assets/voxygen/voxel/sprite/snow_bush/snow_bush-8.vox new file mode 100644 index 0000000..0293384 Binary files /dev/null and b/assets/voxygen/voxel/sprite/snow_bush/snow_bush-8.vox differ diff --git a/assets/voxygen/voxel/sprite/snow_bush/snow_bush-9.vox b/assets/voxygen/voxel/sprite/snow_bush/snow_bush-9.vox new file mode 100644 index 0000000..5351348 Binary files /dev/null and b/assets/voxygen/voxel/sprite/snow_bush/snow_bush-9.vox differ diff --git a/assets/voxygen/voxel/sprite/snow_pebbles/snow_pebbles-0.vox b/assets/voxygen/voxel/sprite/snow_pebbles/snow_pebbles-0.vox new file mode 100644 index 0000000..c19669b Binary files /dev/null and b/assets/voxygen/voxel/sprite/snow_pebbles/snow_pebbles-0.vox differ diff --git a/assets/voxygen/voxel/sprite/snow_pebbles/snow_pebbles-1.vox b/assets/voxygen/voxel/sprite/snow_pebbles/snow_pebbles-1.vox new file mode 100644 index 0000000..f666396 Binary files /dev/null and b/assets/voxygen/voxel/sprite/snow_pebbles/snow_pebbles-1.vox differ diff --git a/assets/voxygen/voxel/sprite/snow_pebbles/snow_pebbles-2.vox b/assets/voxygen/voxel/sprite/snow_pebbles/snow_pebbles-2.vox new file mode 100644 index 0000000..ac7f4d6 Binary files /dev/null and b/assets/voxygen/voxel/sprite/snow_pebbles/snow_pebbles-2.vox differ diff --git a/assets/voxygen/voxel/sprite/snow_pebbles/snow_pebbles-3.vox b/assets/voxygen/voxel/sprite/snow_pebbles/snow_pebbles-3.vox new file mode 100644 index 0000000..3ce39d0 Binary files /dev/null and b/assets/voxygen/voxel/sprite/snow_pebbles/snow_pebbles-3.vox differ diff --git a/assets/voxygen/voxel/sprite/snow_pebbles/snow_pebbles-4.vox b/assets/voxygen/voxel/sprite/snow_pebbles/snow_pebbles-4.vox new file mode 100644 index 0000000..8e48220 Binary files /dev/null and b/assets/voxygen/voxel/sprite/snow_pebbles/snow_pebbles-4.vox differ diff --git a/assets/voxygen/voxel/sprite/snow_pebbles/snow_pebbles-5.vox b/assets/voxygen/voxel/sprite/snow_pebbles/snow_pebbles-5.vox new file mode 100644 index 0000000..208917b Binary files /dev/null and b/assets/voxygen/voxel/sprite/snow_pebbles/snow_pebbles-5.vox differ diff --git a/assets/voxygen/voxel/sprite/spore/corruption_spore.vox b/assets/voxygen/voxel/sprite/spore/corruption_spore.vox new file mode 100644 index 0000000..5a7b8c8 Binary files /dev/null and b/assets/voxygen/voxel/sprite/spore/corruption_spore.vox differ diff --git a/assets/voxygen/voxel/sprite/tomato/0.vox b/assets/voxygen/voxel/sprite/tomato/0.vox new file mode 100644 index 0000000..c2a0f65 Binary files /dev/null and b/assets/voxygen/voxel/sprite/tomato/0.vox differ diff --git a/assets/voxygen/voxel/sprite/tomato/1.vox b/assets/voxygen/voxel/sprite/tomato/1.vox new file mode 100644 index 0000000..54a2cbe Binary files /dev/null and b/assets/voxygen/voxel/sprite/tomato/1.vox differ diff --git a/assets/voxygen/voxel/sprite/tomato/2.vox b/assets/voxygen/voxel/sprite/tomato/2.vox new file mode 100644 index 0000000..e96308c Binary files /dev/null and b/assets/voxygen/voxel/sprite/tomato/2.vox differ diff --git a/assets/voxygen/voxel/sprite/tomato/3.vox b/assets/voxygen/voxel/sprite/tomato/3.vox new file mode 100644 index 0000000..55adb75 Binary files /dev/null and b/assets/voxygen/voxel/sprite/tomato/3.vox differ diff --git a/assets/voxygen/voxel/sprite/tomato/4.vox b/assets/voxygen/voxel/sprite/tomato/4.vox new file mode 100644 index 0000000..839dc35 Binary files /dev/null and b/assets/voxygen/voxel/sprite/tomato/4.vox differ diff --git a/assets/voxygen/voxel/sprite/tomato/tomato.vox b/assets/voxygen/voxel/sprite/tomato/tomato.vox new file mode 100644 index 0000000..d1dfaa9 Binary files /dev/null and b/assets/voxygen/voxel/sprite/tomato/tomato.vox differ diff --git a/assets/voxygen/voxel/sprite/turnip/turnip-0.vox b/assets/voxygen/voxel/sprite/turnip/turnip-0.vox new file mode 100644 index 0000000..e837b29 Binary files /dev/null and b/assets/voxygen/voxel/sprite/turnip/turnip-0.vox differ diff --git a/assets/voxygen/voxel/sprite/turnip/turnip-1.vox b/assets/voxygen/voxel/sprite/turnip/turnip-1.vox new file mode 100644 index 0000000..23e5081 Binary files /dev/null and b/assets/voxygen/voxel/sprite/turnip/turnip-1.vox differ diff --git a/assets/voxygen/voxel/sprite/turnip/turnip-2.vox b/assets/voxygen/voxel/sprite/turnip/turnip-2.vox new file mode 100644 index 0000000..69c95b4 Binary files /dev/null and b/assets/voxygen/voxel/sprite/turnip/turnip-2.vox differ diff --git a/assets/voxygen/voxel/sprite/turnip/turnip-3.vox b/assets/voxygen/voxel/sprite/turnip/turnip-3.vox new file mode 100644 index 0000000..0d07e89 Binary files /dev/null and b/assets/voxygen/voxel/sprite/turnip/turnip-3.vox differ diff --git a/assets/voxygen/voxel/sprite/turnip/turnip-4.vox b/assets/voxygen/voxel/sprite/turnip/turnip-4.vox new file mode 100644 index 0000000..d1e1b53 Binary files /dev/null and b/assets/voxygen/voxel/sprite/turnip/turnip-4.vox differ diff --git a/assets/voxygen/voxel/sprite/turnip/turnip-5.vox b/assets/voxygen/voxel/sprite/turnip/turnip-5.vox new file mode 100644 index 0000000..7ff275e Binary files /dev/null and b/assets/voxygen/voxel/sprite/turnip/turnip-5.vox differ diff --git a/assets/voxygen/voxel/sprite/twigs/twigs-0.vox b/assets/voxygen/voxel/sprite/twigs/twigs-0.vox new file mode 100644 index 0000000..98b636e Binary files /dev/null and b/assets/voxygen/voxel/sprite/twigs/twigs-0.vox differ diff --git a/assets/voxygen/voxel/sprite/twigs/twigs-1.vox b/assets/voxygen/voxel/sprite/twigs/twigs-1.vox new file mode 100644 index 0000000..55ea0ec Binary files /dev/null and b/assets/voxygen/voxel/sprite/twigs/twigs-1.vox differ diff --git a/assets/voxygen/voxel/sprite/twigs/twigs-2.vox b/assets/voxygen/voxel/sprite/twigs/twigs-2.vox new file mode 100644 index 0000000..fda722d Binary files /dev/null and b/assets/voxygen/voxel/sprite/twigs/twigs-2.vox differ diff --git a/assets/voxygen/voxel/sprite/underwater_chests/chest_skull.vox b/assets/voxygen/voxel/sprite/underwater_chests/chest_skull.vox new file mode 100644 index 0000000..40a85c4 Binary files /dev/null and b/assets/voxygen/voxel/sprite/underwater_chests/chest_skull.vox differ diff --git a/assets/voxygen/voxel/sprite/underwater_chests/chest_vines.vox b/assets/voxygen/voxel/sprite/underwater_chests/chest_vines.vox new file mode 100644 index 0000000..82968d7 Binary files /dev/null and b/assets/voxygen/voxel/sprite/underwater_chests/chest_vines.vox differ diff --git a/assets/voxygen/voxel/sprite/underwater_grass/blue-0.vox b/assets/voxygen/voxel/sprite/underwater_grass/blue-0.vox new file mode 100644 index 0000000..fe95f41 Binary files /dev/null and b/assets/voxygen/voxel/sprite/underwater_grass/blue-0.vox differ diff --git a/assets/voxygen/voxel/sprite/underwater_grass/blue-1.vox b/assets/voxygen/voxel/sprite/underwater_grass/blue-1.vox new file mode 100644 index 0000000..a1e76d1 Binary files /dev/null and b/assets/voxygen/voxel/sprite/underwater_grass/blue-1.vox differ diff --git a/assets/voxygen/voxel/sprite/underwater_mud/mud-0.vox b/assets/voxygen/voxel/sprite/underwater_mud/mud-0.vox new file mode 100644 index 0000000..a01a668 Binary files /dev/null and b/assets/voxygen/voxel/sprite/underwater_mud/mud-0.vox differ diff --git a/assets/voxygen/voxel/sprite/underwater_mud/mud-1.vox b/assets/voxygen/voxel/sprite/underwater_mud/mud-1.vox new file mode 100644 index 0000000..23a4935 Binary files /dev/null and b/assets/voxygen/voxel/sprite/underwater_mud/mud-1.vox differ diff --git a/assets/voxygen/voxel/sprite/velorite/velorite.vox b/assets/voxygen/voxel/sprite/velorite/velorite.vox new file mode 100644 index 0000000..f77942a Binary files /dev/null and b/assets/voxygen/voxel/sprite/velorite/velorite.vox differ diff --git a/assets/voxygen/voxel/sprite/velorite/velorite_ore.vox b/assets/voxygen/voxel/sprite/velorite/velorite_ore.vox new file mode 100644 index 0000000..79f6221 Binary files /dev/null and b/assets/voxygen/voxel/sprite/velorite/velorite_ore.vox differ diff --git a/assets/voxygen/voxel/sprite/welwitch/1.vox b/assets/voxygen/voxel/sprite/welwitch/1.vox new file mode 100644 index 0000000..bbc2cda Binary files /dev/null and b/assets/voxygen/voxel/sprite/welwitch/1.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_green/wheat-0.vox b/assets/voxygen/voxel/sprite/wheat_green/wheat-0.vox new file mode 100644 index 0000000..08dcd69 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_green/wheat-0.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_green/wheat-1.vox b/assets/voxygen/voxel/sprite/wheat_green/wheat-1.vox new file mode 100644 index 0000000..9284680 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_green/wheat-1.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_green/wheat-2.vox b/assets/voxygen/voxel/sprite/wheat_green/wheat-2.vox new file mode 100644 index 0000000..9156796 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_green/wheat-2.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_green/wheat-3.vox b/assets/voxygen/voxel/sprite/wheat_green/wheat-3.vox new file mode 100644 index 0000000..99a9856 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_green/wheat-3.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_green/wheat-4.vox b/assets/voxygen/voxel/sprite/wheat_green/wheat-4.vox new file mode 100644 index 0000000..6f88758 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_green/wheat-4.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_green/wheat-5.vox b/assets/voxygen/voxel/sprite/wheat_green/wheat-5.vox new file mode 100644 index 0000000..66d7afb Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_green/wheat-5.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_green/wheat-6.vox b/assets/voxygen/voxel/sprite/wheat_green/wheat-6.vox new file mode 100644 index 0000000..df1b709 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_green/wheat-6.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_green/wheat-7.vox b/assets/voxygen/voxel/sprite/wheat_green/wheat-7.vox new file mode 100644 index 0000000..d16dad9 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_green/wheat-7.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_green/wheat-8.vox b/assets/voxygen/voxel/sprite/wheat_green/wheat-8.vox new file mode 100644 index 0000000..71f4293 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_green/wheat-8.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_green/wheat-9.vox b/assets/voxygen/voxel/sprite/wheat_green/wheat-9.vox new file mode 100644 index 0000000..c50f499 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_green/wheat-9.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_yellow/wheat-0.vox b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-0.vox new file mode 100644 index 0000000..38c6be1 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-0.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_yellow/wheat-1.vox b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-1.vox new file mode 100644 index 0000000..a0e5f16 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-1.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_yellow/wheat-2.vox b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-2.vox new file mode 100644 index 0000000..fdf31d0 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-2.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_yellow/wheat-3.vox b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-3.vox new file mode 100644 index 0000000..823c539 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-3.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_yellow/wheat-4.vox b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-4.vox new file mode 100644 index 0000000..9c6ec09 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-4.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_yellow/wheat-5.vox b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-5.vox new file mode 100644 index 0000000..02be0d7 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-5.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_yellow/wheat-6.vox b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-6.vox new file mode 100644 index 0000000..45b2c8a Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-6.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_yellow/wheat-7.vox b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-7.vox new file mode 100644 index 0000000..f6803bb Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-7.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_yellow/wheat-8.vox b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-8.vox new file mode 100644 index 0000000..0de0c56 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-8.vox differ diff --git a/assets/voxygen/voxel/sprite/wheat_yellow/wheat-9.vox b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-9.vox new file mode 100644 index 0000000..38a79fc Binary files /dev/null and b/assets/voxygen/voxel/sprite/wheat_yellow/wheat-9.vox differ diff --git a/assets/voxygen/voxel/sprite/window/window-0.vox b/assets/voxygen/voxel/sprite/window/window-0.vox new file mode 100644 index 0000000..58ddca2 Binary files /dev/null and b/assets/voxygen/voxel/sprite/window/window-0.vox differ diff --git a/assets/voxygen/voxel/sprite/window/window-1.vox b/assets/voxygen/voxel/sprite/window/window-1.vox new file mode 100644 index 0000000..6f03476 Binary files /dev/null and b/assets/voxygen/voxel/sprite/window/window-1.vox differ diff --git a/assets/voxygen/voxel/sprite/window/window-2.vox b/assets/voxygen/voxel/sprite/window/window-2.vox new file mode 100644 index 0000000..3e80f52 Binary files /dev/null and b/assets/voxygen/voxel/sprite/window/window-2.vox differ diff --git a/assets/voxygen/voxel/sprite/window/window-3.vox b/assets/voxygen/voxel/sprite/window/window-3.vox new file mode 100644 index 0000000..7d00e3c Binary files /dev/null and b/assets/voxygen/voxel/sprite/window/window-3.vox differ diff --git a/assets/voxygen/voxel/sprite/window/window_arabic.vox b/assets/voxygen/voxel/sprite/window/window_arabic.vox new file mode 100644 index 0000000..3dca479 Binary files /dev/null and b/assets/voxygen/voxel/sprite/window/window_arabic.vox differ diff --git a/assets/voxygen/voxel/sprite/window/witch_purple.vox b/assets/voxygen/voxel/sprite/window/witch_purple.vox new file mode 100644 index 0000000..cedfd6d Binary files /dev/null and b/assets/voxygen/voxel/sprite/window/witch_purple.vox differ diff --git a/assets/voxygen/voxel/sprite/wizard/candle.vox b/assets/voxygen/voxel/sprite/wizard/candle.vox new file mode 100644 index 0000000..7aa7b42 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wizard/candle.vox differ diff --git a/assets/voxygen/voxel/sprite/wizard/magical_barrier.vox b/assets/voxygen/voxel/sprite/wizard/magical_barrier.vox new file mode 100644 index 0000000..c3edd0e Binary files /dev/null and b/assets/voxygen/voxel/sprite/wizard/magical_barrier.vox differ diff --git a/assets/voxygen/voxel/sprite/wizard/magical_seal.vox b/assets/voxygen/voxel/sprite/wizard/magical_seal.vox new file mode 100644 index 0000000..5ea14e3 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wizard/magical_seal.vox differ diff --git a/assets/voxygen/voxel/sprite/wood/item/bamboo.vox b/assets/voxygen/voxel/sprite/wood/item/bamboo.vox new file mode 100644 index 0000000..ed47118 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wood/item/bamboo.vox differ diff --git a/assets/voxygen/voxel/sprite/wood/item/eldwood.vox b/assets/voxygen/voxel/sprite/wood/item/eldwood.vox new file mode 100644 index 0000000..76fbe39 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wood/item/eldwood.vox differ diff --git a/assets/voxygen/voxel/sprite/wood/item/frostwood.vox b/assets/voxygen/voxel/sprite/wood/item/frostwood.vox new file mode 100644 index 0000000..36d31fc Binary files /dev/null and b/assets/voxygen/voxel/sprite/wood/item/frostwood.vox differ diff --git a/assets/voxygen/voxel/sprite/wood/item/hardwood.vox b/assets/voxygen/voxel/sprite/wood/item/hardwood.vox new file mode 100644 index 0000000..f680569 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wood/item/hardwood.vox differ diff --git a/assets/voxygen/voxel/sprite/wood/item/ironwood.vox b/assets/voxygen/voxel/sprite/wood/item/ironwood.vox new file mode 100644 index 0000000..61bd6c9 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wood/item/ironwood.vox differ diff --git a/assets/voxygen/voxel/sprite/wood/item/wood.vox b/assets/voxygen/voxel/sprite/wood/item/wood.vox new file mode 100644 index 0000000..e15f480 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wood/item/wood.vox differ diff --git a/assets/voxygen/voxel/sprite/wood/log/bamboo.vox b/assets/voxygen/voxel/sprite/wood/log/bamboo.vox new file mode 100644 index 0000000..f18f7f1 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wood/log/bamboo.vox differ diff --git a/assets/voxygen/voxel/sprite/wood/log/eldwood.vox b/assets/voxygen/voxel/sprite/wood/log/eldwood.vox new file mode 100644 index 0000000..cb36c4e Binary files /dev/null and b/assets/voxygen/voxel/sprite/wood/log/eldwood.vox differ diff --git a/assets/voxygen/voxel/sprite/wood/log/frostwood.vox b/assets/voxygen/voxel/sprite/wood/log/frostwood.vox new file mode 100644 index 0000000..5035498 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wood/log/frostwood.vox differ diff --git a/assets/voxygen/voxel/sprite/wood/log/hardwood.vox b/assets/voxygen/voxel/sprite/wood/log/hardwood.vox new file mode 100644 index 0000000..57a04f1 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wood/log/hardwood.vox differ diff --git a/assets/voxygen/voxel/sprite/wood/log/ironwood.vox b/assets/voxygen/voxel/sprite/wood/log/ironwood.vox new file mode 100644 index 0000000..9da1ffc Binary files /dev/null and b/assets/voxygen/voxel/sprite/wood/log/ironwood.vox differ diff --git a/assets/voxygen/voxel/sprite/wood/log/wood.vox b/assets/voxygen/voxel/sprite/wood/log/wood.vox new file mode 100644 index 0000000..3d44d21 Binary files /dev/null and b/assets/voxygen/voxel/sprite/wood/log/wood.vox differ diff --git a/assets/voxygen/voxel/sprite_manifest.ron b/assets/voxygen/voxel/sprite_manifest.ron new file mode 100644 index 0000000..6c63537 --- /dev/null +++ b/assets/voxygen/voxel/sprite_manifest.ron @@ -0,0 +1,6255 @@ +#![enable(unwrap_newtypes, implicit_some)] +{ +// Represents the lack of a sprite. +Empty: [()], +// Windows +Window1: [( + variations: [ + ( + model: "voxygen.voxel.sprite.window.window-0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +Window2: [( + variations: [ + ( + model: "voxygen.voxel.sprite.window.window-1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +Window3: [( + variations: [ + ( + model: "voxygen.voxel.sprite.window.window-2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +Window4: [( + variations: [ + ( + model: "voxygen.voxel.sprite.window.window-3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Cacti +BarrelCactus: [( + variations: [ + ( + model: "voxygen.voxel.sprite.cacti.barrel_cactus", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cacti.cactus_barrel_flower", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +LargeCactus: [( + variations: [ + ( + model: "voxygen.voxel.sprite.cacti.large_cactus", + offset: (-13.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cacti.cactus_branch_large_1", + offset: (-2.5, -3.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cacti.cactus_branch_large_2", + offset: (-11.5, -3.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + + ), + ( + model: "voxygen.voxel.sprite.cacti.cactus_branch_large_1_flower", + offset: (-2.5, -3.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cacti.cactus_branch_large_2_flower", + offset: (-11.5, -3.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +TallCactus: [( + variations: [ + ( + model: "voxygen.voxel.sprite.cacti.tall", + offset: (-7.5, -6.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cacti.tall2", + offset: (-7.5, -7.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +RoundCactus: [( + variations: [ + ( + model: "voxygen.voxel.sprite.cacti.cactus_round", + offset: (-4.5, -4.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +ShortCactus: [( + variations: [ + ( + model: "voxygen.voxel.sprite.cacti.cactus_short", + offset: (-14.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +MedFlatCactus: [( + variations: [ + ( + model: "voxygen.voxel.sprite.cacti.flat_cactus_med", + offset: (-6.5, -2.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +ShortFlatCactus: [( + variations: [ + ( + model: "voxygen.voxel.sprite.cacti.flat_cactus_short", + offset: (-5.5, -2.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Flowers +BlueFlower: [( + variations: [ + ( + model: "voxygen.voxel.sprite.flowers.flower_blue_1", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.flower_blue_2", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.flower_blue_3", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.flower_blue_4", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.flower_blue_5", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.flower_blue_6", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.flower_blue_7", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.flower_blue-8", + offset: (-5.5, -4.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.flower_blue-9", + offset: (-4.0, -3.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.flower_blue-10", + offset: (-1.5, -1.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.1, +)], +PinkFlower: [( + variations: [ + ( + model: "voxygen.voxel.sprite.flowers.flower_pink_1", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.flower_pink_2", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.flower_pink_3", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.flower_pink_4", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.1, +)], +PurpleFlower: [ + ( + variations: [ + ( + model: "voxygen.voxel.sprite.flowers.flower_purple_1", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.flower_purple-2", + offset: (-5.0, -2.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.flower_purple-3", + offset: (-3.5, -2.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.flower_purple-4", + offset: (-5.0, -4.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.flower_purple-5", + offset: (-2.5, -2.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.flower_purple-6", + offset: (-4.5, -4.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.flower_purple-7", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.flower_purple-8", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.1, + filter: (snow_covered: false), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.flowers.snow_crocus-0", + offset: (-4.0, -4.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.snow_crocus-1", + offset: (-1.5, -3.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.snow_crocus-2", + offset: (-5.5, -5.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.snow_crocus-3", + offset: (-1.5, -1.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.snow_crocus-4", + offset: (-2.5, -2.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.snow_crocus-5", + offset: (-1.5, -2.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.1, + filter: (snow_covered: true), + ), +], +RedFlower: [ + ( + variations: [ + ( + model: "voxygen.voxel.sprite.flowers.flower_red_1", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.flower_red_2", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.flower_red_3", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.flower_red-4", + offset: (-6.5, -6.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.flower_red-5", + offset: (-3.5, -3.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.jungle_flower_red-0", + offset: (-7.5, -7.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.jungle_flower_red-1", + offset: (-7.5, -7.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.1, + filter: (snow_covered: false), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.flowers.snow_rose-0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.snow_rose-1", + offset: (-11.0, -10.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.snow_rose-2", + offset: (-8.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.snow_rose-3", + offset: (-10.5, -4.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.snow_rose-4", + offset: (-6.0, -10.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.snow_rose-5", + offset: (-1.5, -3.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.snow_rose-6", + offset: (-5.0, -1.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.snow_rose-7", + offset: (-10.0, -4.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.snow_rose-8", + offset: (-4.0, -8.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.snow_rose-9", + offset: (-2.0, -4.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.snow_rose-10", + offset: (-9.0, -9.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.snow_rose-11", + offset: (-1.5, -4.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.1, + filter: (snow_covered: true), + ), +], +WhiteFlower: [( + variations: [ + ( + model: "voxygen.voxel.sprite.flowers.flower_white_1", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.flower_white_2", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.flower_white-3", + offset: (-1.5, -1.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.flower_white-4", + offset: (-5.0, -4.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.flower_white-5", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.1, +)], +YellowFlower: [ + ( + variations: [ + ( + model: "voxygen.voxel.sprite.flowers.flower_yellow-1", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.flower_yellow-0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.1, + filter: (snow_covered: false), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.flowers.snow_forsythia-0", + offset: (-5.5, -5.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.snow_forsythia-1", + offset: (-5.0, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.snow_forsythia-2", + offset: (-7.5, -8.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.snow_forsythia-3", + offset: (-1.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.snow_forsythia-4", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.snow_forsythia-5", + offset: (-5.0, -5.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.snow_forsythia-6", + offset: (-3.0, -3.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.snow_forsythia-7", + offset: (-3.5, -2.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.snow_forsythia-8", + offset: (-0.5, -4.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.1, + filter: (snow_covered: true), + ), +], +Sunflower: [( + variations: [ + ( + model: "voxygen.voxel.sprite.flowers.sunflower_1", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.flowers.sunflower_2", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.1, +)], +// Grass +LongGrass: [ + ( + variations: [ + ( + model: "voxygen.voxel.sprite.grass.grass_long_1", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_long_2", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_long_3", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_long_4", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_long_5", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_long_6", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_long_7", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.8, + filter: (snow_covered: false), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.grass.grass_snow_tall_0", + offset: (-3.5, -3.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_snow_tall_1", + offset: (-5.0, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_snow_tall_2", + offset: (-5.5, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_snow_tall_3", + offset: (-4.0, -5.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_snow_tall_4", + offset: (-5.0, -5.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_snow_tall_5", + offset: (-6.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_snow_tall_6", + offset: (-8.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_snow_tall_7", + offset: (-5.0, -1.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_snow_tall_8", + offset: (-10.0, -4.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_snow_tall_9", + offset: (-4.0, -8.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_snow_tall_10", + offset: (-2.0, -4.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.2, + filter: (snow_covered: true), + ), +], +MediumGrass: [ + ( + variations: [ + ( + model: "voxygen.voxel.sprite.grass.grass_med_1", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_med_2", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_med_3", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_med_4", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_med_5", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.5, + ), + ( + ), +], +ShortGrass: [ + ( + variations: [ + ( + model: "voxygen.voxel.sprite.grass.grass_short_1", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_short_2", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_short_3", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_short_4", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_short_5", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.1, + filter: (snow_covered: false), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.grass.grass_snow_0", + offset: (-3.5, -4.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_snow_1", + offset: (-4.5, -4.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_snow_2", + offset: (-4.0, -4.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_snow_3", + offset: (-4.5, -4.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_snow_4", + offset: (-4.5, -4.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_snow_5", + offset: (-4.0, -4.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_snow_6", + offset: (-4.5, -4.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_snow_7", + offset: (-4.5, -4.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_snow_8", + offset: (-4.0, -3.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_snow_9", + offset: (-4.0, -4.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_snow_10", + offset: (-4.5, -4.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_snow_11", + offset: (-4.5, -3.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.2, + filter: (snow_covered: true), + ), +], +LargeGrass: [( + variations: [ + ( + model: "voxygen.voxel.sprite.grass.grass_large-0", + offset: (-2.0, -2.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_large-1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_large-2", + offset: (-5.5, -5.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.5, +)], +JungleRedGrass: [( + variations: [ + ( + model: "voxygen.voxel.sprite.jungleredgrass.jungle_grass_red-0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.jungleredgrass.jungle_grass_red-1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.jungleredgrass.jungle_grass_red-2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.jungleredgrass.jungle_grass_red-3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.jungleredgrass.jungle_grass_red-4", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.jungleredgrass.jungle_grass_red-5", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.1, +)], +// Fruit +Apple: [( + variations: [ + ( + model: "voxygen.voxel.sprite.fruit.apple", + offset: (-3.5, -3.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Mushrooms +Mushroom: [( + variations: [ + ( + model: "voxygen.voxel.sprite.mushrooms.mushroom-0", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mushrooms.mushroom-1", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mushrooms.mushroom-2", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mushrooms.mushroom-3", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mushrooms.mushroom-4", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mushrooms.mushroom-5", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mushrooms.mushroom-6", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mushrooms.mushroom-7", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mushrooms.mushroom-8", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mushrooms.mushroom-9", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mushrooms.mushroom-10", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.1, +)], +// Sewer Mushrooms +SewerMushroom: [( + variations: [ + ( + model: "voxygen.voxel.sprite.cave.mushroom-0", + offset: (-8.0, -8.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Lush cave biome mushrooms +LushMushroom: [( + variations: [ + ( + model: "voxygen.voxel.sprite.mushrooms.mushroom-0", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mushrooms.mushroom-1", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mushrooms.mushroom-2", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mushrooms.mushroom-4", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mushrooms.mushroom-5", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mushrooms.mushroom-6", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mushrooms.mushroom-9", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.mushroom-1", + offset: (-5.0, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Rocky cave biome mushrooms +RockyMushroom: [( + variations: [ + ( + model: "voxygen.voxel.sprite.cave.mushroom-0", + offset: (-8.0, -8.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.mushroom-2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.mushroom-9", + offset: (-8.0, -8.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.mushroom-10", + offset: (-8.0, -8.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.mushroom-11", + offset: (-8.0, -8.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Mushroom cave biome mushrooms +GlowMushroom: [( + variations: [ + ( + model: "voxygen.voxel.sprite.cave.mushroom-3", + offset: (-2.5, -2.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.mushroom-4", + offset: (-1.5, -1.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.mushroom-5", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.mushroom-6", + offset: (-8.5, -8.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.mushroom-7", + offset: (-11.5, -11.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.mushroom-8", + offset: (-12.5, -15.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mushrooms.mushroom-3", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mushrooms.mushroom-7", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mushrooms.mushroom-8", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mushrooms.mushroom-10", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Cave Mushrooms +CaveMushroom: [( + variations: [ + ( + model: "voxygen.voxel.sprite.cave.mushroom-0", + offset: (-8.0, -8.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.mushroom-1", + offset: (-5.0, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.mushroom-2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.mushroom-3", + offset: (-2.5, -2.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.mushroom-4", + offset: (-1.5, -1.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.mushroom-5", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.mushroom-6", + offset: (-8.5, -8.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.mushroom-7", + offset: (-11.5, -11.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.mushroom-8", + offset: (-12.5, -15.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Ceiling Mushrooms +CeilingMushroom: [( + variations: [ + ( + model: "voxygen.voxel.sprite.cave.ceiling.mushroom-0", + offset: (-8.0, -8.0, -22.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.ceiling.mushroom-1", + offset: (-8.5, -8.5, -9.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.ceiling.mushroom-2", + offset: (-11.5, -11.5, -17.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +Mold: [( + variations: [ + ( + model: "voxygen.voxel.sprite.cave.ceiling.mold-0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.ceiling.mold-1", + offset: (-5.5, -5.5, -7.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.ceiling.mold-2", + offset: (-5.5, -5.5, -7.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.ceiling.mold-3", + offset: (-5.5, -5.5, -2.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.ceiling.mold-4", + offset: (-5.5, -5.5, -13.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.ceiling.mold-5", + offset: (-5.5, -5.5, -19.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.ceiling.mold-6", + offset: (-5.5, -5.5, -24.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +Root: [( + variations: [ + ( + model: "voxygen.voxel.sprite.cave.ceiling.root-0", + offset: (-3.0, -2.5, -22.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.ceiling.root-1", + offset: (-2.5, -2.5, -34.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.ceiling.root-2", + offset: (-2.5, -2.5, -31.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.ceiling.root-3", + offset: (-2.5, -2.5, -24.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.ceiling.root-4", + offset: (-2.5, -2.5, -16.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.ceiling.root-5", + offset: (-2.5, -2.5, -16.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.ceiling.root-6", + offset: (-2.5, -2.5, -33.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +CeilingLanternPlant: [( + variations: [ + ( + model: "voxygen.voxel.sprite.cave.ceiling.cave_lantern_plant-0", + offset: (-7.5, -5.5, -23.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.ceiling.cave_lantern_plant-1", + offset: (-7.5, -5.5, -16.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +CeilingLanternFlower: [( + variations: [ + ( + model: "voxygen.voxel.sprite.cave.ceiling.cave_lantern_flower-0", + offset: (-7.5, -7.5, 3.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.ceiling.cave_lantern_flower-1", + offset: (-6.5, -6.5, 1.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.ceiling.cave_lantern_flower-2", + offset: (-7.5, -7.5, 4.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +CeilingJungleLeafyPlant: [( + variations: [ + ( + model: "voxygen.voxel.sprite.leafy_plant.jungle_plant_ceiling-0", + offset: (-5.5, -1.5, -1.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.leafy_plant.jungle_plant_ceiling-1", + offset: (-6.5, -2.5, -3.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.leafy_plant.jungle_plant_ceiling-2", + offset: (-6.5, -2.5, -5.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.leafy_plant.jungle_plant_ceiling-3", + offset: (-7.5, -2.5, -5.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.leafy_plant.jungle_plant_ceiling-4", + offset: (-7.5, -5.5, -11.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.4, +)], +LushFlower: [( + variations: [ + ( + model: "voxygen.voxel.sprite.cave.cave_flower-0", + offset: (-5.0, -5.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.cave_flower-1", + offset: (-5.5, -5.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.cave_flower-2", + offset: (-4.5, -4.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.cave_flower-3", + offset: (-5.5, -3.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +LanternFlower: [( + variations: [ + ( + model: "voxygen.voxel.sprite.cave.cave_lantern_flower-0", + offset: (-7.5, -7.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.cave_lantern_flower-1", + offset: (-11.5, -11.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.cave_lantern_flower-2", + offset: (-7.5, -7.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +LanternPlant: [( + variations: [ + ( + model: "voxygen.voxel.sprite.cave.cave_lantern_plant-0", + offset: (-7.5, -7.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.cave_lantern_plant-1", + offset: (-11.5, -11.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.cave_lantern_plant-2", + offset: (-7.5, -7.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +SporeReed: [( + variations: [ + ( + model: "voxygen.voxel.sprite.cave.spore_reed-0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.spore_reed-1", + offset: (-4.0, -5.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.spore_reed-2", + offset: (-4.5, -5.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.spore_reed-3", + offset: (-3.0, -2.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +Orb: [( + variations: [ + ( + model: "voxygen.voxel.sprite.cave.ceiling.orb-0", + offset: (-8.0, -8.0, -79.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.ceiling.orb-1", + offset: (-8.0, -8.0, -20.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.ceiling.orb-2", + offset: (-8.0, -8.0, -65.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.ceiling.orb-3", + offset: (-8.0, -8.0, -44.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Lianas, +Liana: [( + variations: [ + ( + model: "voxygen.voxel.sprite.lianas.liana-0", + offset: (-4.0, -4.0, -115.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.lianas.liana-1", + offset: (-4.0, -4.0, -72.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ], + wind_sway: 0.5, +)], +// Velorite +Velorite: [ + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.gem.velorite_1", + offset: (-5.0, -5.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 0, end: 1)), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.gem.velorite_2", + offset: (-5.0, -5.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 1, end: 2)), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.gem.velorite_3", + offset: (-5.0, -5.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 2, end: 3)), + ), +], +VeloriteFrag: [ + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.gem.velorite_frag_1", + offset: (-4.0, -5.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 0, end: 1)), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.gem.velorite_frag_2", + offset: (-4.0, -5.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 1, end: 2)), + ), +], +// Chests +Chest: [( + variations: [ + ( + model: "voxygen.voxel.sprite.chests.chest", + offset: (-7.5, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.chests.chest_dark", + offset: (-7.5, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.chests.chest_vines", + offset: (-8.5, -7.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +CommonLockedChest: [( + variations: [ + ( + model: "voxygen.voxel.sprite.chests.chest_gold", + offset: (-7.5, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + + ], + wind_sway: 0.0, +)], +// Dungeon Chests +DungeonChest0: [( + variations: [ + ( + model: "voxygen.voxel.sprite.chests.chest_vines", + offset: (-8.5, -7.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +DungeonChest1: [( + variations: [ + ( + model: "voxygen.voxel.sprite.chests.chest_skull", + offset: (-7.5, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +DungeonChest2: [( + variations: [ + ( + model: "voxygen.voxel.sprite.chests.chest_light", + offset: (-7.5, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +DungeonChest3: [( + variations: [ + ( + model: "voxygen.voxel.sprite.chests.chest_gold", + offset: (-7.5, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +DungeonChest4: [( + variations: [ + ( + model: "voxygen.voxel.sprite.chests.chest_gold", + offset: (-7.5, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +DungeonChest5: [( + variations: [ + ( + model: "voxygen.voxel.sprite.chests.chest_demon", + offset: (-7.5, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Rope +Rope: [( + variations: [ + ( + model: "voxygen.voxel.sprite.misc.rope", + offset: (-5.5, -5.5, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Coral Chest +CoralChest: [( + variations: [ + ( + model: "voxygen.voxel.sprite.chests.chest_coral", + offset: (-7.5, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Sea DecorChain +SeaDecorChain: [( + variations: [ + ( + model: "voxygen.voxel.sprite.misc.sea_decor_chain", + offset: (-5.5, -5.5, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Sea DecorBlock +SeaDecorBlock: [( + variations: [ + ( + model: "voxygen.voxel.sprite.misc.sea_decor_block", + offset: (-5.5, -5.5, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Sea DecorWindow Horizontal +SeaDecorWindowHor: [( + variations: [ + ( + model: "voxygen.voxel.sprite.misc.sea_decor_window_hor", + offset: (-5.5, -5.5, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Sea DecorWindow Vertical +SeaDecorWindowVer: [( + variations: [ + ( + model: "voxygen.voxel.sprite.misc.sea_decor_window_ver", + offset: (-5.5, -5.5, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Sea Decor Emblem +SeaDecorEmblem: [( + variations: [ + ( + model: "voxygen.voxel.sprite.misc.sea_decor_emblem", + offset: (-16.0, -16.0, -4.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Sea Decor Pillar +SeaDecorPillar: [( + variations: [ + ( + model: "voxygen.voxel.sprite.misc.sea_decor_pillar-0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.misc.sea_decor_pillar-1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.misc.sea_decor_pillar-2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.misc.sea_decor_pillar-3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.misc.sea_decor_pillar-4", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.misc.sea_decor_pillar-5", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.misc.sea_decor_pillar-6", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.misc.sea_decor_pillar-7", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// SeashellLantern +SeashellLantern: [( + variations: [ + ( + model: "voxygen.voxel.object.seashell_lantern", + offset: (-4.5, -4.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +// GlassBarrier +GlassBarrier: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.glass_barrier_block", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +GlassKeyhole: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.glass_keyhole_block", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.5, 0.5, 0.5), + ), + ], + wind_sway: 0.0, +)], +VampireKeyDoor: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.vampire_keydoor", + offset: (-5.5, -5.5, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +VampireKeyhole: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.vampire_keyhole", + offset: (-5.5, -5.5, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +HaniwaKeyDoor: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.haniwa_door_block", + offset: (-5.5, -5.5, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +HaniwaKeyhole: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.haniwa_keyhole_block", + offset: (-5.5, -5.5, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +HaniwaUrn: [( + variations: [ + ( + model: "voxygen.voxel.sprite.chests.chest_haniwa_urn", + offset: (-7.5, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + + ], + wind_sway: 0.0, +)], +// Haniwa Trap +HaniwaTrap: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.haniwa_door_block", + offset: (-5.5, -5.5, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +HaniwaTrapTriggered: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.haniwa_trap_triggered-0", + offset: (-5.5, -5.5, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.haniwa_trap_triggered-1", + offset: (-5.5, -5.5, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Sahagin Door, Keyhole, Chest, Statue +SahaginKeyDoor: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.sahagin_keydoor", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +SahaginKeyhole: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.sahagin_keyhole", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +SahaginChest: [( + variations: [ + ( + model: "voxygen.voxel.sprite.chests.chest_sahagin", + offset: (-7.0, -5.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Terracotta Door, Keyhole, Chest, Statue +TerracottaKeyDoor: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.terracotta_keydoor", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +TerracottaKeyhole: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.terracotta_keyhole", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +TerracottaChest: [( + variations: [ + ( + model: "voxygen.voxel.sprite.chests.chest_terracotta", + offset: (-7.0, -5.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +TerracottaStatue: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.terracotta_statue_0", + offset: (-22.0, -18.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.terracotta_statue_1", + offset: (-22.0, -18.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.terracotta_statue_2", + offset: (-22.0, -18.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +TerracottaBlock: [( + variations: [ + ( + model: "voxygen.voxel.sprite.misc.terracotta_block-0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.misc.terracotta_block-1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.misc.terracotta_block-2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.misc.terracotta_block-3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.misc.terracotta_block-5", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.misc.terracotta_block-6", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +// Fences +Fence: [ + ( + variations: [ + ( + model: "voxygen.voxel.sprite.farms.fence_0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, + filter: (adjacent_type: I), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.farms.fence_1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, + filter: (adjacent_type: L), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.farms.fence_2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, + filter: (adjacent_type: T), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.farms.fence_3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, + filter: (adjacent_type: X), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.farms.fence_4", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, + filter: (adjacent_type: End), + ), +], +MyrmidonKeyDoor: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.myrmidon_door_block", + offset: (-5.5, -5.5, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +MyrmidonKeyhole: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.myrmidon_keyhole_block", + offset: (-5.5, -5.5, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +MinotaurKeyhole: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.myrmidon_keyhole_block", + offset: (-5.5, -5.5, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Welwitch +Welwitch: [( + variations: [ + ( + model: "voxygen.voxel.sprite.welwitch.1", + offset: (-15.0, -17.0, -0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ], + wind_sway: 0.1, +)], +// MetalChain +MetalChain: [( + variations: [ + ( + model: "voxygen.voxel.sprite.misc.metal_chain", + offset: (-5.5, -5.5, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Pumpkins +Pumpkin: [( + variations: [ + ( + model: "voxygen.voxel.sprite.pumpkin.1", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.pumpkin.2", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.pumpkin.3", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.pumpkin.4", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.pumpkin.5", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.pumpkin.6", + offset: (-7.0, -6.5, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.pumpkin.7", + offset: (-7.0, -9.5, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Lingonberries +LingonBerry: [( + variations: [ + ( + model: "voxygen.voxel.sprite.lingonberry.1", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.lingonberry.2", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.lingonberry.3", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Leafy Plants +LeafyPlant: [( + variations: [ + ( + model: "voxygen.voxel.sprite.leafy_plant.1", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.leafy_plant.2", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.leafy_plant.3", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.leafy_plant.4", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.leafy_plant.5", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.leafy_plant.6", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.leafy_plant.7", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.leafy_plant.8", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.leafy_plant.9", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.leafy_plant.10", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.4, +)], +JungleLeafyPlant: [( + variations: [ + ( + model: "voxygen.voxel.sprite.leafy_plant.jungle_plant-0", + offset: (-5.5, -1.5, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.leafy_plant.jungle_plant-1", + offset: (-6.5, -2.5, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.leafy_plant.jungle_plant-2", + offset: (-6.5, -2.5, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.leafy_plant.jungle_plant-3", + offset: (-7.5, -2.5, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.leafy_plant.jungle_plant-4", + offset: (-7.5, -5.5, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.4, +)], +// Ferns +Fern: [( + variations: [ + ( + model: "voxygen.voxel.sprite.ferns.1", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.ferns.2", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.ferns.3", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.ferns.4", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.ferns.5", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.ferns.6", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.ferns.7", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.ferns.8", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.ferns.9", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.ferns.10", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.ferns.11", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.ferns.12", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.ferns.fern-0", + offset: (-6.5, -11.5, 0.0), + lod_axes: (0.0, 0.0, 1.0), + ), + ], + wind_sway: 0.4, +)], +JungleFern: [( + variations: [ + ( + model: "voxygen.voxel.sprite.junglefern.1", + offset: (-9.5, -9.5, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.junglefern.2", + offset: (-7.5, -3.5, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.junglefern.3", + offset: (-8.0, -8.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.junglefern.4", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.4, +)], +// Savanna Flora +SavannaGrass: [( + variations: [ + ( + model: "voxygen.voxel.sprite.grass.grass_savanna-0", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_savanna-1", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_savanna-2", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_savanna-3", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_savanna-4", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_savanna-5", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_savanna-6", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.5, +)], +TallSavannaGrass: [( + variations: [ + ( + model: "voxygen.voxel.sprite.grass.grass_savanna_tall-0", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_savanna_tall-1", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_savanna_tall-2", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_savanna_tall-3", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_savanna_tall-4", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_savanna_tall-5", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_savanna_tall-6", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.8, +)], +RedSavannaGrass: [( + variations: [ + ( + model: "voxygen.voxel.sprite.grass.grass_savanna_red-0", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_savanna_red-1", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_savanna_red-2", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_savanna_red-3", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.8, +)], +SavannaBush: [( + variations: [ + ( + model: "voxygen.voxel.sprite.savanna_bush.1", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.savanna_bush.2", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.savanna_bush.3", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.savanna_bush.4", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.savanna_bush.5", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.savanna_bush.6", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.2, +)], +// Dead Bush +DeadBush: [ + ( + variations: [ + ( + model: "voxygen.voxel.sprite.dead_bush.1", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.dead_bush.2", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.dead_bush.3", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.dead_bush.4", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.2, + filter: (snow_covered: false), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.snow_bush.snow_bush-0", + offset: (-10.0, -9.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.snow_bush.snow_bush-1", + offset: (-9.5, -9.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.snow_bush.snow_bush-2", + offset: (-9.5, -9.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.snow_bush.snow_bush-3", + offset: (-9.5, -8.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.snow_bush.snow_bush-4", + offset: (-8.5, -8.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.snow_bush.snow_bush-5", + offset: (-8.0, -8.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.snow_bush.snow_bush-6", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.snow_bush.snow_bush-7", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.snow_bush.snow_bush-8", + offset: (-9.5, -6.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.snow_bush.snow_bush-9", + offset: (-8.0, -8.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.snow_bush.snow_bush-10", + offset: (-10.0, -9.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.snow_bush.snow_bush-11", + offset: (-7.0, -7.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.1, + filter: (snow_covered: true), + ), +], +// Dead Plant +DeadPlant: [( + variations: [ + ( + model: "voxygen.voxel.sprite.dead_plant.dead_plant-0", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.dead_plant.dead_plant-1", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.dead_plant.dead_plant-2", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.dead_plant.dead_plant-3", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.2, +)], +// Blueberries +// NOTE: Why are these commented out? +Blueberry: [()]/* [( + variations: [ + ( + model: "voxygen.voxel.sprite.blueberry.1", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.blueberry.2", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.blueberry.3", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.blueberry.4", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.blueberry.5", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.blueberry.6", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.blueberry.7", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.blueberry.8", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.blueberry.9", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)] +*/, +// Ember +Ember: [( + variations: [ + ( + model: "voxygen.voxel.sprite.ember.1", + offset: (-5.5, -5.5, -2.9), + lod_axes: (1.0, 1.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +// FireBlock +FireBlock: [( + variations: [ + ( + model: "voxygen.voxel.sprite.misc.fireblock", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +// Smoke dummy +SmokeDummy: [( + variations: [ + ( + model: "voxygen.voxel.sprite.ember.dummy", + offset: (-5.5, -5.5, -5.5), + lod_axes: (1.0, 1.0, 0.0), + ), + ], + wind_sway: 0.8, +)], +// Corn +Corn: [( + variations: [ + ( + model: "voxygen.voxel.sprite.corn.corn-0", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.corn.corn-1", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.corn.corn-2", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.corn.corn-3", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.corn.corn-4", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.corn.corn-5", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ], + wind_sway: 0.4, +)], +// Yellow Wheat +WheatYellow: [( + variations: [ + ( + model: "voxygen.voxel.sprite.wheat_yellow.wheat-0", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.wheat_yellow.wheat-1", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.wheat_yellow.wheat-2", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.wheat_yellow.wheat-3", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.wheat_yellow.wheat-4", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.wheat_yellow.wheat-5", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.wheat_yellow.wheat-6", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.wheat_yellow.wheat-7", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.wheat_yellow.wheat-8", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.wheat_yellow.wheat-9", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ], + wind_sway: 0.4, +)], +// Green Wheat +WheatGreen: [( + variations: [ + ( + model: "voxygen.voxel.sprite.wheat_green.wheat-0", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.wheat_green.wheat-1", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.wheat_green.wheat-2", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.wheat_green.wheat-3", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.wheat_green.wheat-4", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.wheat_green.wheat-5", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.wheat_green.wheat-6", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.wheat_green.wheat-7", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.wheat_green.wheat-8", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.wheat_green.wheat-9", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ], + wind_sway: 0.4, +)], +// Cabbage +Cabbage: [( + variations: [ + ( + model: "voxygen.voxel.sprite.cabbage.cabbage-0", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cabbage.cabbage-1", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cabbage.cabbage-2", + offset: (-6.0, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Flax +Flax: [( + variations: [ + ( + model: "voxygen.voxel.sprite.flax.flax-0", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.flax.flax-1", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.flax.flax-2", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.flax.flax-3", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.flax.flax-4", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.flax.flax-5", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ], + wind_sway: 0.4, +)], +// Carrot +Carrot: [( + variations: [ + ( + model: "voxygen.voxel.sprite.carrot.0", + offset: (-5.5, -5.5, -0.25), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.carrot.1", + offset: (-5.5, -5.5, -0.25), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.carrot.2", + offset: (-5.5, -5.5, -0.25), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.carrot.3", + offset: (-5.5, -5.5, -0.25), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.carrot.4", + offset: (-5.5, -5.5, -0.25), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.carrot.5", + offset: (-5.5, -5.5, -0.25), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.1, +)], +// Tomato +Tomato: [( + variations: [ + ( + model: "voxygen.voxel.sprite.tomato.0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.tomato.1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.tomato.2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.tomato.3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.tomato.4", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Radish +Radish: [( + variations: [ + ( + model: "voxygen.voxel.sprite.radish.0", + offset: (-5.5, -5.5, -0.25), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.radish.1", + offset: (-5.5, -5.5, -0.25), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.radish.2", + offset: (-5.5, -5.5, -0.25), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.radish.3", + offset: (-5.5, -5.5, -0.25), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.radish.4", + offset: (-5.5, -5.5, -0.25), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.1, +)], +// Turnip +Turnip: [( + variations: [ + ( + model: "voxygen.voxel.sprite.turnip.turnip-0", + offset: (-5.5, -5.5, -0.25), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.turnip.turnip-1", + offset: (-5.5, -5.5, -0.25), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.turnip.turnip-2", + offset: (-5.5, -5.5, -0.25), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.turnip.turnip-3", + offset: (-5.5, -5.5, -0.25), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.turnip.turnip-4", + offset: (-5.5, -5.5, -0.25), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.turnip.turnip-5", + offset: (-5.5, -5.5, -0.25), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.1, +)], +// Coconut +Coconut: [( + variations: [ + ( + model: "voxygen.voxel.sprite.fruit.coconut", + offset: (-3.5, -3.5, 2.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Scarecrow +Scarecrow: [( + variations: [ + ( + model: "voxygen.voxel.sprite.misc.scarecrow", + offset: (-9.5, -3.0, -0.25), + lod_axes: (0.0, 0.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Street Light +StreetLamp: [( + variations: [ + ( + model: "voxygen.voxel.sprite.misc.street_lamp", + offset: (-4.5, -4.5, 0.0), + lod_axes: (0.0, 0.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +StreetLampTall: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.street_lamp-0", + offset: (-10.5, -10.5, 0.0), + lod_axes: (0.0, 0.0, 1.0), + ), + + ], + wind_sway: 0.0, +)], +// Door +// To make doors swing add them in voxygen\src\scene\terrain L. 333 +Door: [( + variations: [ + ( + model: "voxygen.voxel.sprite.door.door-0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +DoorDark: [( + variations: [ + ( + model: "voxygen.voxel.sprite.door.door_dark-0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +DoorWide: [( + variations: [ + ( + model: "voxygen.voxel.sprite.door.door-wide", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Bed +Bed: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.bed-0", + offset: (-9.0, -13.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Bench +Bench: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.bench-0", + offset: (-14.0, -4.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Chair +ChairSingle: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.chair_single-0", + offset: (-5.5, -4.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.chair_single-1", + offset: (-5.5, -4.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +ChairDouble: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.chair_double-0", + offset: (-9.5, -4.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.chair_double-1", + offset: (-9.5, -4.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Helm +Helm: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.helm", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// CoatRack +CoatRack: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.coatrack-0", + offset: (-6.5, -6.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.coatrack-1", + offset: (-6.5, -6.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Crate +Crate: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.crate-0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.crate-1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.crate-2", + offset: (-3.0, -3.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.crate-3", + offset: (-6.0, -3.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.crate-4", + offset: (-6.0, -3.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.crate-5", + offset: (-5.5, -3.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.crate-6", + offset: (-4.5, -3.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// DrawerLarge +DrawerLarge: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.drawer_large-0", + offset: (-11.5, -5.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.drawer_large-1", + offset: (-11.5, -5.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// DrawerMedium +DrawerMedium: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.drawer_medium-0", + offset: (-11.0, -5.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.drawer_medium-1", + offset: (-11.0, -5.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// DrawerSmall +DrawerSmall: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.drawer_small-0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.drawer_small-1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// DungeonWallDecor +DungeonWallDecor: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.dungeon_wall-0", + offset: (-5.5, -1.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.dungeon_wall-1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.dungeon_wall-2", + offset: (-5.5, -3.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.dungeon_wall-3", + offset: (-1.5, -3.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.dungeon_wall-4", + offset: (-5.5, -4.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.dungeon_wall-5", + offset: (-5.5, -0.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.dungeon_wall-6", + offset: (-5.5, -1.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.dungeon_wall-7", + offset: (-5.5, -1.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.dungeon_wall-8", + offset: (-5.5, -1.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.dungeon_wall-9", + offset: (-1.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// HangingBasket +HangingBasket: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.hanging_basket-0", + offset: (-6.5, -4.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.hanging_basket-1", + offset: (-9.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// HangingSign +HangingSign: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.hanging_sign-0", + offset: (-3.5, -16.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// WallLamp +WallLamp: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.lamp_wall-1", + offset: (-10.5, -12.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// WallLampSmall +WallLampSmall: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.lamp_wall-0", + offset: (-5.5, 0.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +WallLampWizard: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.lamp_wall-2", + offset: (-5.5, 0.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +ChristmasOrnament: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.snowflake_light", + offset: (-5.5, 0.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.hirdrasil-antler", + offset: (-10.5, -2.5, -3.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.hirdrasil-antler-1", + offset: (-6.5, -2.5, -3.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.moravian-star-orange", + offset: (-5.5, -7.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.2, +)], +ChristmasWreath: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.wreath-0", + offset: (-6.5, 0.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// WallSconce +WallSconce: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.sconce_wall-0", + offset: (-2.5, -1.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Planter +Planter: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.planter-0", + offset: (-6.0, -3.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.planter-1", + offset: (-13.0, -3.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.planter-2", + offset: (-6.0, -3.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.planter-3", + offset: (-6.0, -3.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.planter-4", + offset: (-6.0, -3.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.planter-5", + offset: (-6.0, -3.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.planter-6", + offset: (-7.5, -3.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Shelf +Shelf: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.shelf-0", + offset: (-14.5, -3.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.shelf-1", + offset: (-13.5, -3.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// TableSide +TableSide: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.table_side-0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.table_side-1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// TableDining +TableDining: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.table_dining-0", + offset: (-8.5, -8.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.table_dining-1", + offset: (-8.5, -8.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// TableDouble +TableDouble: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.table_double-0", + offset: (-18.5, -11.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + + ], + wind_sway: 0.0, +)], +// WardrobeDouble +WardrobeDouble: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.wardrobe_double-0", + offset: (-10.5, -6.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.wardrobe_double-1", + offset: (-10.5, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// WardrobeSingle +WardrobeSingle: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.wardrobe_single-0", + offset: (-5.5, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.wardrobe_single-1", + offset: (-5.5, -6.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Pot +Pot: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.pot-0", + offset: (-3.5, -3.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.pot-1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Stones +Stones: [ + ( + variations: [ + ( + model: "voxygen.voxel.sprite.rocks.rock-0", + offset: (-3.0, -3.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.rocks.rock-1", + offset: (-4.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.rocks.rock-2", + offset: (-4.5, -4.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, + filter: (snow_covered: false), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.snow_pebbles.snow_pebbles-0", + offset: (-3.5, -3.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.snow_pebbles.snow_pebbles-1", + offset: (-3.5, -3.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.snow_pebbles.snow_pebbles-2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.snow_pebbles.snow_pebbles-3", + offset: (-4.0, -4.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.snow_pebbles.snow_pebbles-4", + offset: (-5.0, -5.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.snow_pebbles.snow_pebbles-5", + offset: (-5.0, -5.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, + filter: (snow_covered: true), + ), +], +Stones2: [( + variations: [ + ( + model: "voxygen.voxel.sprite.rocks.rock-0", + offset: (-3.0, -3.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.rocks.rock-2", + offset: (-4.5, -4.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Twigs +Twigs: [( + variations: [ + ( + model: "voxygen.voxel.sprite.twigs.twigs-0", + offset: (-3.5, -3.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.twigs.twigs-1", + offset: (-2.0, -1.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.twigs.twigs-2", + offset: (-4.0, -4.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Drop Gate Parts +DropGate: [( + variations: [ + ( + model: "voxygen.voxel.sprite.castle.drop_gate_bars-0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +DropGateBottom: [( + variations: [ + ( + model: "voxygen.voxel.sprite.castle.drop_gate_bottom-0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +TaigaGrass: [( + variations: [ + ( + model: "voxygen.voxel.sprite.grass.grass_taiga_0", + offset: (-2.5, -2.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_taiga_1", + offset: (-2.5, -2.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_taiga_2", + offset: (-2.5, -2.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_taiga_3", + offset: (-2.5, -2.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_taiga_4", + offset: (-2.5, -2.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_taiga_5", + offset: (-2.5, -2.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_taiga_6", + offset: (-2.5, -2.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_taiga_7", + offset: (-2.5, -2.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_taiga_8", + offset: (-2.5, -2.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_taiga_9", + offset: (-2.5, -2.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.2, +)], +// Reed +Reed: [( + variations: [ + ( + model: "voxygen.voxel.sprite.reed.reed-0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.reed.reed-1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.reed.reed-2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.reed.reed-3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.reed.reed-4", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.lillypads.temperate-reeds-1", + offset: (-4.5, -4.0, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.lillypads.temperate-reeds-2", + offset: (-4.5, -4.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.lillypads.temperate-reeds-3", + offset: (-4.5, -4.0, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.lillypads.temperate-reeds-4", + offset: (-4.5, -4.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.lillypads.temperate-reeds-5", + offset: (-4.0, -4.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ], + wind_sway: 0.3, +)], +// Beehive +Beehive: [( + variations: [ + ( + model: "voxygen.voxel.sprite.beehive.beehive", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.1, +)], +// Empty Flask +VialEmpty: [( + variations: [ + ( + model: "voxygen.voxel.object.potion_empty", + offset: (-5.0, -5.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Bowls +Bowl: [( + variations: [ + ( + model: "voxygen.voxel.sprite.crafting_ing.bowl", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Minor Potion +PotionMinor: [( + variations: [ + ( + model: "voxygen.voxel.object.potion_red", + offset: (-5.0, -5.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), +], + wind_sway: 0.0, +)], +PotionDummy: [( + variations: [ + ( + model: "voxygen.voxel.object.potion_green", + offset: (-5.0, -5.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), +], + wind_sway: 0.0, +)], +// Ground Fire Bowls +FireBowlGround: [( + variations: [ + ( + model: "voxygen.voxel.sprite.misc.lantern_ground_open", + offset: (-3.5, -3.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), +], + wind_sway: 0.0, +)], +// Underwater Grass +GrassBlue: [( + variations: [ + ( + model: "voxygen.voxel.sprite.underwater_grass.blue-0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.underwater_grass.blue-1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ], + wind_sway: 1.0, +)], +// Underwater Chests +ChestBuried: [( + variations: [ + ( + model: "voxygen.voxel.sprite.underwater_chests.chest_skull", + offset: (-10.0, -8.0, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.underwater_chests.chest_vines", + offset: (-10.0, -8.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ], + wind_sway: 0.0, +)], +// Stony Coral +StonyCoral: [( + variations: [ + ( + model: "voxygen.voxel.sprite.coral.yellow_fire_coral-0", + offset: (-7.0, -6.5, -0.1), + lod_axes: (0.5, 0.5, 0.5), + ), + ( + model: "voxygen.voxel.sprite.coral.red_fire_coral-0", + offset: (-6.5, -2.0, -0.1), + lod_axes: (0.5, 0.5, 0.5), + ), + ( + model: "voxygen.voxel.sprite.coral.red_fire_coral-1", + offset: (-7.5, -4.5, -0.1), + lod_axes: (0.5, 0.5, 0.5), + ), + ( + model: "voxygen.voxel.sprite.coral.red_fire_coral-2", + offset: (-7.0, -4, -0.1), + lod_axes: (0.5, 0.5, 0.5), + ), + ( + model: "voxygen.voxel.sprite.coral.green_brain_coral-0", + offset: (-9.5, -10.5, -5.1), + lod_axes: (0.5, 0.5, 0.5), + ), + ( + model: "voxygen.voxel.sprite.coral.green_brain_coral-1", + offset: (-9.5, -10.5, -3.1), + lod_axes: (0.5, 0.5, 0.5), + ), + ( + model: "voxygen.voxel.sprite.coral.green_brain_coral-2", + offset: (-6.5, -6.5, -0.1), + lod_axes: (0.5, 0.5, 0.5), + ), + ( + model: "voxygen.voxel.sprite.coral.pink_brain_coral-0", + offset: (-10.0, -9.5, -5.1), + lod_axes: (0.5, 0.5, 0.5), + ), + ( + model: "voxygen.voxel.sprite.coral.pink_brain_coral-1", + offset: (-6.0, -5.5, -0.0), + lod_axes: (0.5, 0.5, 0.5), + ), + ( + model: "voxygen.voxel.sprite.coral.pink_birdsnest_coral-0", + offset: (-5.5, -5.5, -0.1), + lod_axes: (0.5, 0.5, 0.5), + ), + ( + model: "voxygen.voxel.sprite.coral.pink_birdsnest_coral-1", + offset: (-5.5, -5.5, -0.1), + lod_axes: (0.5, 0.5, 0.5), + ), + ( + model: "voxygen.voxel.sprite.coral.pink_birdsnest_coral-2", + offset: (-5.5, -5.5, -0.1), + lod_axes: (0.5, 0.5, 0.5), + ), + ( + model: "voxygen.voxel.sprite.coral.pink_birdsnest_coral-3", + offset: (-5.5, -5.5, -0.1), + lod_axes: (0.5, 0.5, 0.5), + ), + ( + model: "voxygen.voxel.sprite.coral.plating_acropora-0", + offset: (-9.5, -9.0, -0.1), + lod_axes: (0.5, 0.5, 0.0), + ), + ( + model: "voxygen.voxel.sprite.coral.plating_acropora-1", + offset: (-9.5, -9.0, -0.1), + lod_axes: (0.5, 0.5, 0.0), + ), + ( + model: "voxygen.voxel.sprite.coral.plating_acropora-2", + offset: (-11.0, -10.5, -0.1), + lod_axes: (0.5, 0.5, 0.0), + ), + ( + model: "voxygen.voxel.sprite.coral.plating_acropora-3", + offset: (-11.0, -11.0, -0.1), + lod_axes: (0.5, 0.5, 0.0), + ), + ( + model: "voxygen.voxel.sprite.coral.plating_acropora-4", + offset: (-9.0, -9.0, -0.1), + lod_axes: (0.5, 0.5, 0.0), + ), + ( + model: "voxygen.voxel.sprite.coral.plating_acropora-5", + offset: (-8.0, -9.0, -0.1), + lod_axes: (0.5, 0.5, 0.0), + ), + ( + model: "voxygen.voxel.sprite.coral.plating_acropora-6", + offset: (-9.0, -8.5, -0.1), + lod_axes: (0.5, 0.5, 0.0), + ), + ( + model: "voxygen.voxel.sprite.coral.plating_acropora-7", + offset: (-7, -9.0, -0.1), + lod_axes: (0.5, 0.5, 0.0), + ), + ], + wind_sway: 0.0, +)], +// Soft Coral +SoftCoral: [( + variations: [ + ( + model: "voxygen.voxel.sprite.coral.yellow_gorgonian-0", + offset: (-3.0, -10.0, 0.0), + lod_axes: (0.0, 0.5, 0.5), + ), + ( + model: "voxygen.voxel.sprite.coral.yellow_gorgonian-1", + offset: (-3.0, -13.0, 0.0), + lod_axes: (0.0, 0.5, 0.5), + ), + ( + model: "voxygen.voxel.sprite.coral.yellow_gorgonian-2", + offset: (-3.0, -17.5, 0.0), + lod_axes: (0.0, 0.5, 0.5), + ), + ( + model: "voxygen.voxel.sprite.coral.purp-0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.5, 0.5), + ), + ( + model: "voxygen.voxel.sprite.coral.purp-1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.5, 0.5), + ), + ( + model: "voxygen.voxel.sprite.coral.red_sea_fan-1", + offset: (-2.5, -15.5, 0.0), + lod_axes: (0.0, 0.5, 0.5), + ), + ( + model: "voxygen.voxel.sprite.coral.red_sea_fan-2", + offset: (-2.5, -22.5, 0.0), + lod_axes: (0.0, 0.5, 0.5), + ), + ( + model: "voxygen.voxel.sprite.coral.red_sea_fan-3", + offset: (-3.0, -15.5, 0.0), + lod_axes: (0.0, 0.5, 0.5), + ), + ( + model: "voxygen.voxel.sprite.coral.purple_finger_soft_coral-0", + offset: (-9.5, -8.5, -0.1), + lod_axes: (0.0, 0.5, 0.5), + ), + ( + model: "voxygen.voxel.sprite.coral.purple_finger_soft_coral-1", + offset: (-10.0, -19.5, -0.1), + lod_axes: (0.0, 0.5, 0.5), + ), + ( + model: "voxygen.voxel.sprite.coral.green_ricordea-1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.coral.green_ricordea-2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.coral.green_ricordea-3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.coral.green_ricordea-4", + offset: (-6.5, -6.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.coral.blue_ricordea-1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.coral.blue_ricordea-2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.coral.blue_ricordea-3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.coral.sea_anemone-1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ], + wind_sway: 1.0, +)], +// Sea Anemones +SeaAnemone: [( + variations: [ + ( + model: "voxygen.voxel.sprite.coral.sea_anemone-1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ], + wind_sway: 1.0, +)], +//Bull kelp +BullKelp: [( + variations: [ + ( + model: "voxygen.voxel.sprite.algae.nereocystis_kelp-0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.algae.nereocystis_kelp-1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.algae.nereocystis_kelp-2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.algae.nereocystis_kelp-3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.algae.nereocystis_kelp-4", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.algae.nereocystis_kelp-5", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.algae.nereocystis_kelp-6", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.algae.nereocystis_kelp-7", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.algae.nereocystis_kelp-8", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ], + wind_sway: 0.5, +)], +//scattered temperate type Seaweed +SeaweedTemperate: [( + variations: [ + ( + model: "voxygen.voxel.sprite.algae.kelp_sprig-0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.algae.kelp_sprig-1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_short_1", + offset: (-5.5, -6.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_short_2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ], + wind_sway: 0.5, +)], +//scattered tropical type seaweed +SeaweedTropical: [( + variations: [ + ( + model: "voxygen.voxel.sprite.grass.grass_short_1", + offset: (-5.5, -6.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.grass.grass_short_2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.algae.acetabularia-0", + offset: (-5.5, -6.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.algae.acetabularia-1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.algae.acetabularia-2", + offset: (-5.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.algae.udotea-0", + offset: (-8.0, -1.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.algae.udotea-1", + offset: (-8.0, -1.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.algae.udotea-2", + offset: (-10.0, -2.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ], + wind_sway: 0.7, +)], +//Mermaids fan algae patch +MermaidsFan: [( + variations: [ + ( + model: "voxygen.voxel.sprite.algae.udotea-0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.algae.udotea-1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.algae.udotea-2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ], + wind_sway: 0.7, +)], +//Caulerpa prolifera patch +WavyAlgae: [( + variations: [ + ( + model: "voxygen.voxel.sprite.algae.caulerpa_prolifera-0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.algae.caulerpa_prolifera-1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.algae.caulerpa_prolifera-2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.algae.caulerpa_prolifera-3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ], + wind_sway: 0.7, +)], +//Caulerpa lentillifera patch +SeaGrapes: [( + variations: [ + ( + model: "voxygen.voxel.sprite.algae.caulerpa_lentillifera-0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.algae.caulerpa_lentillifera-1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.algae.caulerpa_lentillifera-2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.algae.caulerpa_lentillifera-3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ], + wind_sway: 0.7, +)], +//Giant Kelp +GiantKelp: [( + variations: [ + ( + model: "voxygen.voxel.sprite.algae.macrocystis_kelp-0", + offset: (-15.5, -15.5, 0.0), + lod_axes: (0.5, 0.5, 0.0), + ), + ( + model: "voxygen.voxel.sprite.algae.macrocystis_kelp-1", + offset: (-15.5, -15.5, 0.0), + lod_axes: (0.5, 0.5, 0.0), + ), + ( + model: "voxygen.voxel.sprite.algae.macrocystis_kelp-2", + offset: (-15.5, -15.5, 0.0), + lod_axes: (0.5, 0.5, 0.0), + ), + ( + model: "voxygen.voxel.sprite.algae.macrocystis_kelp-3", + offset: (-15.5, -15.5, 0.0), + lod_axes: (0.5, 0.5, 0.0), + ), + ], + wind_sway: 0.2, +)], +// Red Algae +RedAlgae: [()], +// Underwater Vent +UnderwaterVent: [()], +// Seagrass +Seagrass: [( + variations: [ + ( + model: "voxygen.voxel.sprite.grass.seagrass-0", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.seagrass-1", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.seagrass-2", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.seagrass-3", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.grass.seagrass-4", + offset: (-6.0, -6.0, -0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.7, +)], +// Seashells +Seashells: [( + variations: [ + ( + model: "voxygen.voxel.sprite.seashells.shell-0", + offset: (-4.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.seashells.shell-1", + offset: (-4.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Underwater Mud Piles +Mud: [( + variations: [ + ( + model: "voxygen.voxel.sprite.underwater_mud.mud-0", + offset: (-9.5, -7.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ( + model: "voxygen.voxel.sprite.underwater_mud.mud-1", + offset: (-8.5, -7.5, 0.0), + lod_axes: (0.0, 0.0, 0.5), + ), + ], + wind_sway: 0.0, +)], +// Amethyst Ore +Amethyst: [ + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.gem.amethyst_1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 0, end: 1)), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.gem.amethyst_2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 1, end: 2)), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.gem.amethyst_3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 2, end: 3)), + ), +], +// Ruby Ore +Ruby: [ + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.gem.ruby_1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 0, end: 2)), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.gem.ruby_2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 2, end: 4)), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.gem.ruby_3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 4, end: 6)), + ), +], +// Diamond Ore +Diamond: [ + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.gem.diamond_1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 0, end: 2)), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.gem.diamond_2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 2, end: 4)), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.gem.diamond_3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 4, end: 6)), + ), +], +// Sapphire Ore +Sapphire: [ + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.gem.sapphire_1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 0, end: 1)), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.gem.sapphire_2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 1, end: 2)), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.gem.sapphire_3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 2, end: 3)), + ), +], +// Emerald Ore +Emerald: [ + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.gem.emerald_1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 0, end: 1)), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.gem.emerald_2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 1, end: 2)), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.gem.emerald_3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 2, end: 3)), + ), +], +// Topaz Ore +Topaz: [ + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.gem.topaz_1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 0, end: 1)), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.gem.topaz_2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 1, end: 2)), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.gem.topaz_3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 2, end: 3)), + ), +], +Bloodstone: [ + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.deposit.bloodstone_1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 0, end: 2)), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.deposit.bloodstone_2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 2, end: 4)), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.deposit.bloodstone_3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 4, end: 6)), + ), +], +Coal: [ + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.deposit.coal_1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 0, end: 2)), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.deposit.coal_2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 2, end: 4)), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.deposit.coal_3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 4, end: 6)), + ), +], +Cobalt: [ + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.deposit.cobalt_1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 0, end: 2)), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.deposit.cobalt_2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 2, end: 4)), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.deposit.cobalt_3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 4, end: 6)), + ), +], +Copper: [ + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.deposit.copper_1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 0, end: 1)), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.deposit.copper_2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 1, end: 2)), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.deposit.copper_3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 2, end: 3)), + ), +], +Iron: [ + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.deposit.iron_1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 0, end: 2)), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.deposit.iron_2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 2, end: 4)), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.deposit.iron_3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 4, end: 6)), + ), +], +Tin: [ + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.deposit.tin_1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 0, end: 1)), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.deposit.tin_2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 1, end: 2)), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.deposit.tin_3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 2, end: 3)), + ) +], +Silver: [ + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.deposit.silver_1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 0, end: 2)), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.deposit.silver_2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 2, end: 4)), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.deposit.silver_3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 4, end: 6)), + ), +], +Gold: [ + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.deposit.gold_1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 0, end: 2)), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.deposit.gold_2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 2, end: 4)), + ), + ( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.deposit.gold_3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, + filter: (damage: (start: 4, end: 6)), + ), +], +CrystalHigh: [( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.deposit.crystal.ceiling.green-0", + offset: (-8.5, -9.0, -7.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mineral.deposit.crystal.ceiling.green-1", + offset: (-8.0, -8.0, -10.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mineral.deposit.crystal.ceiling.green-2", + offset: (-11.5, -12.5, -9.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mineral.deposit.crystal.ceiling.blue-0", + offset: (-8.5, -9.0, -7.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mineral.deposit.crystal.ceiling.blue-1", + offset: (-8.0, -8.0, -10.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mineral.deposit.crystal.ceiling.blue-2", + offset: (-11.5, -12.5, -9.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mineral.deposit.crystal.ceiling.purple-0", + offset: (-8.5, -9.0, -7.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mineral.deposit.crystal.ceiling.purple-1", + offset: (-8.0, -8.0, -10.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mineral.deposit.crystal.ceiling.purple-2", + offset: (-11.5, -12.5, -9.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mineral.deposit.crystal.ceiling.purple-3", + offset: (-11.0, -12.5, -49.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +CrystalLow: [( + variations: [ + ( + model: "voxygen.voxel.sprite.mineral.deposit.crystal.floor.blue-0", + offset: (-8.5, -9.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mineral.deposit.crystal.floor.blue-1", + offset: (-8.0, -8.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mineral.deposit.crystal.floor.blue-2", + offset: (-11.5, -12.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mineral.deposit.crystal.floor.purple-0", + offset: (-8.5, -9.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mineral.deposit.crystal.floor.purple-1", + offset: (-8.0, -8.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mineral.deposit.crystal.floor.purple-2", + offset: (-11.5, -12.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mineral.deposit.crystal.floor.green-0", + offset: (-8.5, -9.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mineral.deposit.crystal.floor.green-1", + offset: (-8.0, -8.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.mineral.deposit.crystal.floor.green-2", + offset: (-11.5, -12.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ) + ], + wind_sway: 0.0, +)], +Cotton: [( + variations: [ + ( + model: "voxygen.voxel.sprite.flowers.cotton", + offset: (-4.5, -4.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.4, +)], +Moonbell: [( + variations: [ + ( + model: "voxygen.voxel.sprite.flowers.moonbell", + offset: (-3.5, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +Pyrebloom: [( + variations: [ + ( + model: "voxygen.voxel.sprite.flowers.pyrebloom", + offset: (-5.5, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +WildFlax: [( + variations: [ + ( + model: "voxygen.voxel.sprite.flax.flax-0", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.flax.flax-1", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.flax.flax-2", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.flax.flax-3", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.flax.flax-4", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ( + model: "voxygen.voxel.sprite.flax.flax-5", + offset: (-6.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.7), + ), + ], + wind_sway: 0.4, +)], +// Lantern +Lantern: [( + variations: [ + ( + model: "voxygen.voxel.sprite.lantern.mine_lamp", + offset: (-3.5, -3.5, 0.0), + lod_axes: (0.5, 0.5, 0.2), + ), + ], + wind_sway: 0.0, +)], +// CliffTown & DesertCity Decor +WindowArabic: [( + variations: [ + ( + model: "voxygen.voxel.sprite.window.window_arabic", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +BookshelfArabic: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.bookshelf_arabic", + offset: (-24.5, -5.5, -6.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +DecorSetArabic: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.decor_set_arabic-0", + offset: (-10.5, -10.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +SepareArabic: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.separe_arabic", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +CushionArabic: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.cushion_arabic", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +JugArabic: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.jug_arabic", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +TableArabicSmall: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.table_arabic_small", + offset: (-7.5, -7.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +TableArabicLarge: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.table_arabic_large", + offset: (-21.0, -13.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +CanapeArabic: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.canape_arabic", + offset: (-12.5, -14.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +CupboardArabic: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.cupboard_arabic", + offset: (-9.5, -5.5, 4.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +WallTableArabic: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.wall_table_arabic", + offset: (-15.0, -5.5, 2.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +JugAndBowlArabic: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.jug_and_bowl_arabic", + offset: (-15.0, -7.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +Melon: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.melon_cut", + offset: (-4.5, -4.5, -0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.melon", + offset: (-5.5, -4.5, -0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +FountainArabic: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.fountain_arabic", + offset: (-15.5, -15.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +OvenArabic: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.oven_arabic", + offset: (-6.5, -8.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +Hearth: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.hearth", + offset: (-19.0, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +ForgeTools: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.forge_tools", + offset: (-19.0, -5.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +// CoastalTown Sprites +TableCoastalLarge: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.table_coastal_large", + offset: (-10.5, -16.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +BenchCoastal: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.bench_coastal-0", + offset: (-5.5, -3.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.bench_coastal-1", + offset: (-5.5, -3.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.bench_coastal-2", + offset: (-5.5, -3.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +JugAndCupsCoastal: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.jug_and_cups_coastal", + offset: (-6.0, -7.0, 3.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +// CliffTown Sprites +CliffDecorBlock: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.cliff_decor_block-0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.cliff_decor_block-1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.cliff_decor_block-2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.cliff_decor_block-3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.cliff_decor_block-4", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.cliff_decor_block-5", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.cliff_decor_block-6", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.cliff_decor_block-7", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.cliff_decor_block-8", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.cliff_decor_block-9", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.cliff_decor_block-10", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.cliff_decor_block-11", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +BedMesa: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.bed_mesa", + offset: (-9.0, -16.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +CupboardMesa: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.cupboard_mesa", + offset: (-8.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +WallLampMesa: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.wall_lamp_mesa", + offset: (-4.5, 0.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +MesaLantern: [( + variations: [ + ( + model: "voxygen.voxel.sprite.lantern.lantern_mesa", + offset: (-3.5, -3.5, 0.0), + lod_axes: (0.5, 0.5, 0.2), + ), + ], + wind_sway: 0.0, +)], +MirrorMesa: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.mirror_mesa", + offset: (-10.5, -2.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +WallTableMesa: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.wall_table_mesa", + offset: (-7.5, -5.5, 3.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +WardrobeDoubleMesa: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.wardrobe_double_mesa-0", + offset: (-17.0, -6.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.wardrobe_double_mesa-1", + offset: (-12.5, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.wardrobe_double_mesa-2", + offset: (-10.5, -6.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +WardrobeSingleMesa: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.wardrobe_single-0", + offset: (-7.0, -6.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.furniture.wardrobe_single-1", + offset: (-7.0, -6.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Anvil +Anvil: [( + variations: [ + ( + model: "voxygen.voxel.sprite.anvil.anvil-0", + offset: (-5.5, -7.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +// Cauldron +Cauldron: [( + variations: [ + ( + model: "voxygen.voxel.sprite.cauldron.cauldron-0", + offset: (-10.0, -10.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +// Forge +Forge: [( + variations: [ + ( + model: "voxygen.voxel.object.forge", + offset: (-6.5, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +Loom: [( + variations: [ + ( + model: "voxygen.voxel.object.loom", + offset: (-6.0, -4.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +// DismantlingBench +DismantlingBench: [( + variations: [ + ( + model: "voxygen.voxel.sprite.salvaging_station.salvaging_station-0", + offset: (-7.0, -8.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +SpinningWheel: [( + variations: [ + ( + model: "voxygen.voxel.object.spinning_wheel", + offset: (-7.5, -5.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +TanningRack: [( + variations: [ + ( + model: "voxygen.voxel.object.tanning_rack", + offset: (-7.5, -4.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +// Crafting Bench +CraftingBench: [( + variations: [ + ( + model: "voxygen.voxel.sprite.crafting_bench.crafting_bench-0", + offset: (-9.5, -7.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +// Cooking Pot +CookingPot: [( + variations: [ + ( + model: "voxygen.voxel.sprite.cooking_pot.pot-0", + offset: (-7.0, -8.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +// Repair Bench +RepairBench: [( + variations: [ + ( + model: "voxygen.voxel.sprite.repair_bench.repair_bench-0", + offset: (-7.0, -8.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +// Ensnaring Vines +EnsnaringVines: [( + variations: [ + ( + model: "voxygen.voxel.sprite.misc.ensnaring_vines", + offset: (-5.0, -6.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +// Sea Urchin +SeaUrchin: [( + variations: [ + ( + model: "voxygen.voxel.object.sea_urchin", + offset: (-5.0, -6.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +// Iron Spike +IronSpike: [( + variations: [ + ( + model: "voxygen.voxel.object.iron_spike", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +// WitchWindow +WitchWindow: [( + variations: [ + ( + model: "voxygen.voxel.sprite.window.witch_purple", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.5, 0.5, 0.5), + ), + ], + wind_sway: 0.0, +)], +Keyhole: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.keyhole_block", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.5, 0.5, 0.5), + ), + ], + wind_sway: 0.0, +)], +KeyDoor: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.door_block", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.5, 0.5, 0.5), + ), + ], + wind_sway: 0.0, +)], +BoneKeyhole: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.bone_keyhole_block", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.5, 0.5, 0.5), + ), + ], + wind_sway: 0.0, +)], +BoneKeyDoor: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.bone_door_block", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.5, 0.5, 0.5), + ), + ], + wind_sway: 0.0, +)], +// Bones +Bones: [( + variations: [ + ( + model: "voxygen.voxel.sprite.bone.bone-1", + offset: (-3.0, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.bone.bone-2", + offset: (-1.0, -5.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.bone.bone-3", + offset: (-1.5, -4.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.bone.bone-4", + offset: (-3.5, -5.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.bone.bone-5", + offset: (-4.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +// Short Grass Blue +GrassBlueShort: [( + variations: [ + ( + model: "voxygen.voxel.sprite.cave.grass_blue_short-0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.grass_blue_short-1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.grass_blue_short-2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.grass_blue_short-3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.grass_blue_short-4", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Medium Grass Blue +GrassBlueMedium: [( + variations: [ + ( + model: "voxygen.voxel.sprite.cave.grass_blue_med-0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.grass_blue_med-1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.grass_blue_med-2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.grass_blue_med-3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Long Grass Blue +GrassBlueLong: [( + variations: [ + ( + model: "voxygen.voxel.sprite.cave.grass_blue_long-0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.grass_blue_long-1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.grass_blue_long-2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.grass_blue_long-3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.grass_blue_long-4", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.grass_blue_long-5", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.grass_blue_long-6", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.grass_blue_long-7", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +// Cavern Lillypads Blue +CavernLillypadBlue: [( + variations: [ + ( + model: "voxygen.voxel.sprite.cavern.lillypad-0", + offset: (-5.5, -5.5, -1.0), + lod_axes: (0.5, 0.5, 0.0), + ), + ( + model: "voxygen.voxel.sprite.cavern.lillypad-1", + offset: (-5.5, -5.5, -1.0), + lod_axes: (0.5, 0.5, 0.0), + ), + ( + model: "voxygen.voxel.sprite.cavern.lillypad-2", + offset: (-5.5, -5.5, -1.0), + lod_axes: (0.5, 0.5, 0.0), + ), + ( + model: "voxygen.voxel.sprite.cavern.lillypad-3", + offset: (-5.5, -5.5, -1.0), + lod_axes: (0.5, 0.5, 0.0), + ), + ( + model: "voxygen.voxel.sprite.cavern.lillypad-4", + offset: (-5.5, -5.5, -1.0), + lod_axes: (0.5, 0.5, 0.0), + ), + ], + wind_sway: 0.0, +)], +// Cave Hanging Mycel Blue +MycelBlue: [( + variations: [ + ( + model: "voxygen.voxel.sprite.cave.ceiling.mycel-0", + offset: (-1.0, -1.0, -12.0), + lod_axes: (0.0, 0.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.ceiling.mycel-1", + offset: (-1.0, -1.0, -25.0), + lod_axes: (0.0, 0.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.ceiling.mycel-2", + offset: (-1.0, -1.0, -18.0), + lod_axes: (0.0, 0.0, 1.0), + ), + ( + model: "voxygen.voxel.sprite.cave.ceiling.mycel-3", + offset: (-1.0, -1.0, -29.0), + lod_axes: (0.0, 0.0, 1.0), + ), + ], + wind_sway: 0.1, +)], +// LillyPads on rivers +LillyPads: [( + variations: [ + ( + model: "voxygen.voxel.sprite.lillypads.temperate-lilypad-1", + offset: (-4.5, -4.5, -18.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.lillypads.temperate-lilypad-2", + offset: (-4.5, -4.5, -18.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.lillypads.temperate-lilypad-3", + offset: (-5.5, -5.0, -18.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.lillypads.temperate-lilypad-4", + offset: (-5.5, -5.5, -18.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.lillypads.temperate-lilypad-5", + offset: (-5.5, -5.5, -18.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.lillypads.temperate-lilypad-6", + offset: (-5.5, -5.5, -18.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.lillypads.temperate-lilypad-7", + offset: (-5.5, -5.5, -18.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.lillypads.temperate-lilypad-8", + offset: (-4.5, -4.5, -18.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.lillypads.temperate-lilypad-9", + offset: (-4.5, -4.5, -18.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.6, +)], +Bomb: [( + variations: [ + ( + model: "voxygen.voxel.object.bomb", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.5, 0.5, 0.5), + ), + ], + wind_sway: 0.0, +)], +EnsnaringWeb: [( + variations: [ + ( + model: "voxygen.voxel.sprite.misc.ensnaring_web", + offset: (-5.0, -6.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +// Ice spike +IceSpike: [( + variations: [ + ( + model: "voxygen.voxel.sprite.misc.icespike", + offset: (-5.0, -6.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +// WOOOOOOD +Wood: [( + variations: [ + ( + model: "voxygen.voxel.sprite.wood.log.wood", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +Bamboo: [( + variations: [ + ( + model: "voxygen.voxel.sprite.wood.log.bamboo", + offset: (-6.5, -6.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +Hardwood: [( + variations: [ + ( + model: "voxygen.voxel.sprite.wood.log.hardwood", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +Ironwood: [( + variations: [ + ( + model: "voxygen.voxel.sprite.wood.log.ironwood", + offset: (-6.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +Frostwood: [( + variations: [ + ( + model: "voxygen.voxel.sprite.wood.log.frostwood", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +Eldwood: [( + variations: [ + ( + model: "voxygen.voxel.sprite.wood.log.eldwood", + offset: (-4.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +// Bedrolls +Bedroll: [( + variations: [ + ( + model: "voxygen.voxel.sprite.camp.camp", + offset: (-8.0, -16.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +Tent: [( + variations: [ + ( + model: "voxygen.voxel.object.tent", + offset: (-7.5, -15.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +BedrollSnow: [( + variations: [ + ( + model: "voxygen.voxel.sprite.camp.camp_snow", + offset: (-8.0, -16.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +BedrollPirate: [( + variations: [ + ( + model: "voxygen.voxel.sprite.camp.camp_pirate", + offset: (-8.0, -16.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +// Graves +Grave: [( + variations: [ + ( + model: "voxygen.voxel.sprite.grave.mud", + offset: (-6.0, -7.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +Gravestone: [( + variations: [ + ( + model: "voxygen.voxel.sprite.grave.grave_0", + offset: (1.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.grave.grave_1", + offset: (1.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.grave.grave_2", + offset: (1.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.grave.grave_3", + offset: (1.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.grave.grave_4", + offset: (1.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.grave.grave_5", + offset: (1.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.grave.grave_6", + offset: (1.0, -6.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +// Wizard assets +MagicalBarrier: [( + variations: [ + ( + model: "voxygen.voxel.sprite.wizard.magical_barrier", + offset: (-10.0, -0.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +MagicalSeal: [( + variations: [ + ( + model: "voxygen.voxel.sprite.wizard.magical_seal", + offset: (-16.0, -16.0, -1.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +Candle: [( + variations: [ + ( + model: "voxygen.voxel.sprite.wizard.candle", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +DoorBars: [( + variations: [ + ( + model: "voxygen.voxel.sprite.bars.0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +KeyholeBars: [( + variations: [ + ( + model: "voxygen.voxel.sprite.bars.keyhole", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +IceCrystal: [( + variations: [ + ( + model: "voxygen.voxel.sprite.crystal.ice_crystal_0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.crystal.ice_crystal_1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.crystal.ice_crystal_2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.crystal.ice_crystal_3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.crystal.ice_crystal_4", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.crystal.ice_crystal_5", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.crystal.ice_crystal_6", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.crystal.ice_crystal_7", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.crystal.ice_crystal_8", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.crystal.ice_crystal_9", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.crystal.ice_crystal_10", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.crystal.ice_crystal_11", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], + +GlowIceCrystal: [( + variations: [ + ( + model: "voxygen.voxel.sprite.crystal.glow_ice_crystal_0", + offset: (8.5, -9.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.crystal.glow_ice_crystal_1", + offset: (-8.0, -8.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.crystal.glow_ice_crystal_2", + offset: (-11.5, -12.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.crystal.glow_ice_crystal_3", + offset: (-8.5, -9.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.crystal.glow_ice_crystal_4", + offset: (-8.0, -8.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.crystal.glow_ice_crystal_5", + offset: (-11.5, -12.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +OneWayWall: [()], +Sign: [( + variations: [ + ( + model: "voxygen.voxel.sprite.sign.basic", + offset: (-8.0, -1.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +WoodBarricades: [( + variations: [ + ( + model: "voxygen.voxel.sprite.barricades_wood.barricades-0", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.barricades_wood.barricades-1", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.barricades_wood.barricades-2", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ( + model: "voxygen.voxel.sprite.barricades_wood.barricades-3", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + + ], + wind_sway: 0.0, +)], +DiamondLight: [( + variations: [ + ( + model: "voxygen.voxel.sprite.misc.floating_diamond", + offset: (-5.5, -5.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)], +SmithingTable: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.smith_table-0", + offset: (-7.5, -7.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +Forge0: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.forge-0", + offset: (-3.5, -7.0, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +GearWheel0: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.gear_wheel-0", + offset: (-8.5, -8.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +Quench0: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.quench-0", + offset: (-2.5, -2.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +HotSurface: [()], +Barrel: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.barrel", + offset: (-4.5, -4.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +CrateBlock: [( + variations: [ + ( + model: "voxygen.voxel.sprite.furniture.crate_block", + offset: (-5.5, -5.5, 0.0), + lod_axes: (1.0, 1.0, 1.0), + ), + ], + wind_sway: 0.0, +)], +} diff --git a/assets/voxygen/voxel/theropod_central_manifest.ron b/assets/voxygen/voxel/theropod_central_manifest.ron new file mode 100644 index 0000000..f29c93c --- /dev/null +++ b/assets/voxygen/voxel/theropod_central_manifest.ron @@ -0,0 +1,602 @@ +({ + (Archaeos, Male): ( + head: ( + offset: (-4.5, 0.0, -5.0), + central: ("npc.archaeos.male.head"), + ), + jaw: ( + offset: (-5.5, -2.0, -3.0), + central: ("npc.archaeos.male.jaw"), + ), + neck: ( + offset: (-4.5, 0.0, -3.0), + central: ("npc.archaeos.male.neck"), + ), + chest_front: ( + offset: (-7.5, -5.5, -7.0), + central: ("npc.archaeos.male.chest_front"), + ), + chest_back: ( + offset: (-4.5, -9.0, -7.0), + central: ("npc.archaeos.male.chest_back"), + ), + tail_front: ( + offset: (-3.5, -8.0, -3.5), + central: ("npc.archaeos.male.tail_front"), + ), + tail_back: ( + offset: (-7.5, -23.0, -3.0), + central: ("npc.archaeos.male.tail_back"), + ), + ), + (Archaeos, Female): ( + head: ( + offset: (-4.5, 0.0, -5.0), + central: ("npc.archaeos.male.head"), + ), + jaw: ( + offset: (-5.5, -2.0, -3.0), + central: ("npc.archaeos.male.jaw"), + ), + neck: ( + offset: (-4.5, 0.0, -3.0), + central: ("npc.archaeos.male.neck"), + ), + chest_front: ( + offset: (-7.5, -5.5, -7.0), + central: ("npc.archaeos.male.chest_front"), + ), + chest_back: ( + offset: (-4.5, -9.0, -7.0), + central: ("npc.archaeos.male.chest_back"), + ), + tail_front: ( + offset: (-3.5, -8.0, -3.5), + central: ("npc.archaeos.male.tail_front"), + ), + tail_back: ( + offset: (-7.5, -23.0, -3.0), + central: ("npc.archaeos.male.tail_back"), + ), + ), + (Odonto, Male): ( + head: ( + offset: (-10.5, 0.0, -8.0), + central: ("npc.odonto.male.head"), + ), + jaw: ( + offset: (-6.5, 0.0, -3.0), + central: ("npc.odonto.male.jaw"), + ), + neck: ( + offset: (-3.5, 0.0, -6.5), + central: ("npc.odonto.male.neck"), + ), + chest_front: ( + offset: (-5.5, -5.0, -6.0), + central: ("npc.odonto.male.chest_front"), + ), + chest_back: ( + offset: (-6.5, -8.0, -8.5), + central: ("npc.odonto.male.chest_back"), + ), + tail_front: ( + offset: (-3.5, -8.0, -5.5), + central: ("npc.odonto.male.tail_front"), + ), + tail_back: ( + offset: (-2.5, -19.0, -5.0), + central: ("npc.odonto.male.tail_back"), + ), + ), + (Odonto, Female): ( + head: ( + offset: (-10.5, 0.0, -8.0), + central: ("npc.odonto.male.head"), + ), + jaw: ( + offset: (-6.5, 0.0, -3.0), + central: ("npc.odonto.male.jaw"), + ), + neck: ( + offset: (-3.5, 0.0, -6.5), + central: ("npc.odonto.male.neck"), + ), + chest_front: ( + offset: (-5.5, -5.0, -6.0), + central: ("npc.odonto.male.chest_front"), + ), + chest_back: ( + offset: (-6.5, -8.0, -8.5), + central: ("npc.odonto.male.chest_back"), + ), + tail_front: ( + offset: (-3.5, -8.0, -5.5), + central: ("npc.odonto.male.tail_front"), + ), + tail_back: ( + offset: (-2.5, -19.0, -5.0), + central: ("npc.odonto.male.tail_back"), + ), + ), + (Sandraptor, Male): ( + head: ( + offset: (-2.5, -6.0, -4.5), + central: ("npc.raptor_sand.male.head"), + ), + jaw: ( + offset: (-1.5, 0.0, -1.5), + central: ("npc.raptor_sand.male.jaw"), + ), + neck: ( + offset: (-1.5, 0.0, -4.5), + central: ("npc.raptor_sand.male.neck"), + ), + chest_front: ( + offset: (-3.5, -4.0, -4.0), + central: ("npc.raptor_sand.male.chest_front"), + ), + chest_back: ( + offset: (-3.5, -10.0, -4.5), + central: ("npc.raptor_sand.male.chest_back"), + ), + tail_front: ( + offset: (-7.5, -12.0, -2.5), + central: ("npc.raptor_sand.male.tail_front"), + ), + tail_back: ( + offset: (-6.5, -30.0, -2.0), + central: ("npc.raptor_sand.male.tail_back"), + ), + ), + (Sandraptor, Female): ( + head: ( + offset: (-2.5, -6.0, -4.5), + central: ("npc.raptor_sand.male.head"), + ), + jaw: ( + offset: (-1.5, 0.0, -1.5), + central: ("npc.raptor_sand.male.jaw"), + ), + neck: ( + offset: (-1.5, 0.0, -4.5), + central: ("npc.raptor_sand.male.neck"), + ), + chest_front: ( + offset: (-3.5, -4.0, -4.0), + central: ("npc.raptor_sand.male.chest_front"), + ), + chest_back: ( + offset: (-3.5, -10.0, -4.5), + central: ("npc.raptor_sand.male.chest_back"), + ), + tail_front: ( + offset: (-7.5, -12.0, -2.5), + central: ("npc.raptor_sand.male.tail_front"), + ), + tail_back: ( + offset: (-6.5, -30.0, -2.0), + central: ("npc.raptor_sand.male.tail_back"), + ), + ), + (Snowraptor, Male): ( + head: ( + offset: (-2.5, 0.0, -4.5), + central: ("npc.raptor_snow.male.head"), + ), + jaw: ( + offset: (-1.5, 0.0, -1.5), + central: ("npc.raptor_snow.male.jaw"), + ), + neck: ( + offset: (-1.5, 0.0, -4.5), + central: ("npc.raptor_snow.male.neck"), + ), + chest_front: ( + offset: (-3.5, -4.0, -4.0), + central: ("npc.raptor_snow.male.chest_front"), + ), + chest_back: ( + offset: (-3.5, -10.0, -4.5), + central: ("npc.raptor_snow.male.chest_back"), + ), + tail_front: ( + offset: (-7.5, -12.0, -2.5), + central: ("npc.raptor_snow.male.tail_front"), + ), + tail_back: ( + offset: (-6.5, -30.0, -2.5), + central: ("npc.raptor_snow.male.tail_back"), + ), + ), + (Snowraptor, Female): ( + head: ( + offset: (-2.5, 0.0, -4.5), + central: ("npc.raptor_snow.male.head"), + ), + jaw: ( + offset: (-1.5, 0.0, -1.5), + central: ("npc.raptor_snow.male.jaw"), + ), + neck: ( + offset: (-1.5, 0.0, -4.5), + central: ("npc.raptor_snow.male.neck"), + ), + chest_front: ( + offset: (-3.5, -4.0, -4.0), + central: ("npc.raptor_snow.male.chest_front"), + ), + chest_back: ( + offset: (-3.5, -10.0, -4.5), + central: ("npc.raptor_snow.male.chest_back"), + ), + tail_front: ( + offset: (-7.5, -12.0, -2.5), + central: ("npc.raptor_snow.male.tail_front"), + ), + tail_back: ( + offset: (-6.5, -30.0, -2.5), + central: ("npc.raptor_snow.male.tail_back"), + ), + ), + (Woodraptor, Male): ( + head: ( + offset: (-3.5, -6.0, -5.0), + central: ("npc.raptor_wood.male.head"), + ), + jaw: ( + offset: (-1.5, 0.0, -1.5), + central: ("npc.raptor_wood.male.jaw"), + ), + neck: ( + offset: (-1.5, 0.0, -4.5), + central: ("npc.raptor_wood.male.neck"), + ), + chest_front: ( + offset: (-3.5, -4.0, -4.0), + central: ("npc.raptor_wood.male.chest_front"), + ), + chest_back: ( + offset: (-3.5, -10.0, -4.5), + central: ("npc.raptor_wood.male.chest_back"), + ), + tail_front: ( + offset: (-7.5, -12.0, -2.5), + central: ("npc.raptor_wood.male.tail_front"), + ), + tail_back: ( + offset: (-6.5, -30.0, -2.0), + central: ("npc.raptor_wood.male.tail_back"), + ), + ), + (Woodraptor, Female): ( + head: ( + offset: (-3.5, -6.0, -5.0), + central: ("npc.raptor_wood.male.head"), + ), + jaw: ( + offset: (-1.5, 0.0, -1.5), + central: ("npc.raptor_wood.male.jaw"), + ), + neck: ( + offset: (-1.5, 0.0, -4.5), + central: ("npc.raptor_wood.male.neck"), + ), + chest_front: ( + offset: (-3.5, -4.0, -4.0), + central: ("npc.raptor_wood.male.chest_front"), + ), + chest_back: ( + offset: (-3.5, -10.0, -4.5), + central: ("npc.raptor_wood.male.chest_back"), + ), + tail_front: ( + offset: (-7.5, -12.0, -2.5), + central: ("npc.raptor_wood.male.tail_front"), + ), + tail_back: ( + offset: (-6.5, -30.0, -2.0), + central: ("npc.raptor_wood.male.tail_back"), + ), + ), + (Sunlizard, Male): ( + head: ( + offset: (-12.5, -1.0, -12.5), + central: ("npc.sunlizard.male.head"), + ), + jaw: ( + offset: (-2.5, 0.0, -1.0), + central: ("npc.sunlizard.male.jaw"), + ), + neck: ( + offset: (-1.5, 0.0, -2.0), + central: ("npc.sunlizard.male.neck"), + ), + chest_front: ( + offset: (-3.5, -3.0, -3.5), + central: ("npc.sunlizard.male.chest_front"), + ), + chest_back: ( + offset: (-3.5, -10.0, -3.5), + central: ("npc.sunlizard.male.chest_back"), + ), + tail_front: ( + offset: (-1.5, -11.0, -2.5), + central: ("npc.sunlizard.male.tail_front"), + ), + tail_back: ( + offset: (-1.5, -30.0, -2.0), + central: ("npc.sunlizard.male.tail_back"), + ), + ), + (Sunlizard, Female): ( + head: ( + offset: (-12.5, -1.0, -12.5), + central: ("npc.sunlizard.male.head"), + ), + jaw: ( + offset: (-2.5, 0.0, -1.0), + central: ("npc.sunlizard.male.jaw"), + ), + neck: ( + offset: (-1.5, 0.0, -2.0), + central: ("npc.sunlizard.male.neck"), + ), + chest_front: ( + offset: (-3.5, -3.0, -3.5), + central: ("npc.sunlizard.male.chest_front"), + ), + chest_back: ( + offset: (-3.5, -10.0, -3.5), + central: ("npc.sunlizard.male.chest_back"), + ), + tail_front: ( + offset: (-1.5, -11.0, -2.5), + central: ("npc.sunlizard.male.tail_front"), + ), + tail_back: ( + offset: (-1.5, -30.0, -2.0), + central: ("npc.sunlizard.male.tail_back"), + ), + ), + (Yale, Male): ( + head: ( + offset: (-9.0, -11.0, -13.5), + central: ("npc.yale.male.head"), + ), + jaw: ( + offset: (-2.0, 0.0, -8.0), + central: ("npc.yale.male.jaw"), + ), + neck: ( + offset: (-3.0, 0.0, -7.5), + central: ("npc.yale.male.neck"), + ), + chest_front: ( + offset: (-5.0, -4.0, -7.5), + central: ("npc.yale.male.chest_front"), + ), + chest_back: ( + offset: (-6.0, -11.0, -6.5), + central: ("npc.yale.male.chest_back"), + ), + tail_front: ( + offset: (-3.0, -6.0, -4.5), + central: ("npc.yale.male.tail_front"), + ), + tail_back: ( + offset: (-5.0, -16.0, -7.0), + central: ("npc.yale.male.tail_back"), + ), + ), + (Yale, Female): ( + head: ( + offset: (-9.0, -11.0, -13.5), + central: ("npc.yale.male.head"), + ), + jaw: ( + offset: (-2.0, 0.0, -8.0), + central: ("npc.yale.male.jaw"), + ), + neck: ( + offset: (-3.0, 0.0, -7.5), + central: ("npc.yale.male.neck"), + ), + chest_front: ( + offset: (-5.0, -4.0, -7.5), + central: ("npc.yale.male.chest_front"), + ), + chest_back: ( + offset: (-6.0, -11.0, -6.5), + central: ("npc.yale.male.chest_back"), + ), + tail_front: ( + offset: (-3.0, -6.0, -4.5), + central: ("npc.yale.male.tail_front"), + ), + tail_back: ( + offset: (-5.0, -16.0, -7.0), + central: ("npc.yale.male.tail_back"), + ), + ), + (Dodarock, Male): ( + head: ( + offset: (-3.5, -1.0, -3.5), + central: ("npc.dodarock.male.head"), + ), + jaw: ( + offset: (-5.5, -1.0, -3.0), + central: ("npc.dodarock.male.jaw"), + ), + neck: ( + offset: (-2.5, -1.0, -5.0), + central: ("npc.dodarock.male.neck"), + ), + chest_front: ( + offset: (-4.5, -1.0, -6.0), + central: ("npc.dodarock.male.chest_front"), + ), + chest_back: ( + offset: (-4.5, -1.0, -5.0), + central: ("npc.dodarock.male.chest_back"), + ), + tail_front: ( + offset: (-2.5, -1.0, -1.0), + central: ("npc.dodarock.male.tail_front"), + ), + tail_back: ( + offset: (-4.5, -1.0, -2.5), + central: ("npc.dodarock.male.tail_back"), + ), + ), + (Dodarock, Female): ( + head: ( + offset: (-3.5, -1.0, -3.5), + central: ("npc.dodarock.male.head"), + ), + jaw: ( + offset: (-5.5, -1.0, -3.0), + central: ("npc.dodarock.male.jaw"), + ), + neck: ( + offset: (-2.5, -1.0, -5.0), + central: ("npc.dodarock.male.neck"), + ), + chest_front: ( + offset: (-4.5, -1.0, -6.0), + central: ("npc.dodarock.male.chest_front"), + ), + chest_back: ( + offset: (-4.5, -1.0, -5.0), + central: ("npc.dodarock.male.chest_back"), + ), + tail_front: ( + offset: (-2.5, -1.0, -1.0), + central: ("npc.dodarock.male.tail_front"), + ), + tail_back: ( + offset: (-4.5, -1.0, -2.5), + central: ("npc.dodarock.male.tail_back"), + ), + ), + (Ntouka, Male): ( + head: ( + offset: (-11.5, -8.0, -5.0), + central: ("npc.ntouka.male.head"), + ), + jaw: ( + offset: (-4.5, 0.0, -3.0), + central: ("npc.ntouka.male.jaw"), + ), + neck: ( + offset: (-3.5, 0.0, -4.5), + central: ("npc.ntouka.male.neck"), + ), + chest_front: ( + offset: (-5.5, -5.5, -7.5), + central: ("npc.ntouka.male.chest_front"), + ), + chest_back: ( + offset: (-6.5, -11.0, -8.5), + central: ("npc.ntouka.male.chest_back"), + ), + tail_front: ( + offset: (-3.5, -10.0, -4.0), + central: ("npc.ntouka.male.tail_front"), + ), + tail_back: ( + offset: (-9.5, -16.0, -2.0), + central: ("npc.ntouka.male.tail_back"), + ), + ), + (Ntouka, Female): ( + head: ( + offset: (-11.5, -8.0, -5.0), + central: ("npc.ntouka.male.head"), + ), + jaw: ( + offset: (-4.5, 0.0, -3.0), + central: ("npc.ntouka.male.jaw"), + ), + neck: ( + offset: (-3.5, 0.0, -4.5), + central: ("npc.ntouka.male.neck"), + ), + chest_front: ( + offset: (-5.5, -5.5, -7.5), + central: ("npc.ntouka.male.chest_front"), + ), + chest_back: ( + offset: (-6.5, -11.0, -8.5), + central: ("npc.ntouka.male.chest_back"), + ), + tail_front: ( + offset: (-3.5, -10.0, -4.0), + central: ("npc.ntouka.male.tail_front"), + ), + tail_back: ( + offset: (-9.5, -16.0, -2.0), + central: ("npc.ntouka.male.tail_back"), + ), + ), + (Axebeak, Male): ( + head: ( + offset: (-2.5, -3.5, -3.0), + central: ("npc.axebeak.male.head"), + ), + jaw: ( + offset: (-1.5, 0.0, -1.5), + central: ("npc.axebeak.male.jaw"), + ), + neck: ( + offset: (-2.5, -0.5, -4.0), + central: ("npc.axebeak.male.neck"), + ), + chest_front: ( + offset: (-3.5, -4.0, -6.5), + central: ("npc.axebeak.male.chest_front"), + ), + chest_back: ( + offset: (-3.5, -6.0, -6.5), + central: ("npc.axebeak.male.chest_back"), + ), + tail_front: ( + offset: (-11.5, -19.0, -10.0), + central: ("npc.axebeak.male.tail_front"), + ), + tail_back: ( + offset: (-1.5, -30.0, -2.0), + central: ("armor.empty"), + ), + ), + (Axebeak, Female): ( + head: ( + offset: (-2.5, -3.5, -3.0), + central: ("npc.axebeak.male.head"), + ), + jaw: ( + offset: (-1.5, 0.0, -1.5), + central: ("npc.axebeak.male.jaw"), + ), + neck: ( + offset: (-2.5, -0.5, -4.0), + central: ("npc.axebeak.male.neck"), + ), + chest_front: ( + offset: (-3.5, -4.0, -6.5), + central: ("npc.axebeak.male.chest_front"), + ), + chest_back: ( + offset: (-3.5, -6.0, -6.5), + central: ("npc.axebeak.male.chest_back"), + ), + tail_front: ( + offset: (-11.5, -19.0, -10.0), + central: ("npc.axebeak.male.tail_front"), + ), + tail_back: ( + offset: (-1.5, -30.0, -2.0), + central: ("armor.empty"), + ), + ), +}) diff --git a/assets/voxygen/voxel/theropod_lateral_manifest.ron b/assets/voxygen/voxel/theropod_lateral_manifest.ron new file mode 100644 index 0000000..9892553 --- /dev/null +++ b/assets/voxygen/voxel/theropod_lateral_manifest.ron @@ -0,0 +1,522 @@ +({ + (Archaeos, Male): ( + hand_l: ( + offset: (-4.0, -2.0, -9.0), + lateral: ("npc.archaeos.male.hand_r"), + ), + hand_r: ( + offset: (0.0, -2.0, -9.0), + lateral: ("npc.archaeos.male.hand_r"), + ), + leg_l: ( + offset: (-6.0, -4.5, -8.0), + lateral: ("npc.archaeos.male.leg_r"), + ), + leg_r: ( + offset: (0.0, -4.5, -8.0), + lateral: ("npc.archaeos.male.leg_r"), + ), + foot_l: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("npc.archaeos.male.foot_r"), + ), + foot_r: ( + offset: (0.0, -1.0, -8.0), + lateral: ("npc.archaeos.male.foot_r"), + ), + ), + (Archaeos, Female): ( + hand_l: ( + offset: (-4.0, -2.0, -9.0), + lateral: ("npc.archaeos.male.hand_r"), + ), + hand_r: ( + offset: (0.0, -2.0, -9.0), + lateral: ("npc.archaeos.male.hand_r"), + ), + leg_l: ( + offset: (-6.0, -4.5, -8.0), + lateral: ("npc.archaeos.male.leg_r"), + ), + leg_r: ( + offset: (0.0, -4.5, -8.0), + lateral: ("npc.archaeos.male.leg_r"), + ), + foot_l: ( + offset: (-11.0, -1.0, -8.0), + lateral: ("npc.archaeos.male.foot_r"), + ), + foot_r: ( + offset: (0.0, -1.0, -8.0), + lateral: ("npc.archaeos.male.foot_r"), + ), + ), + (Odonto, Male): ( + hand_l: ( + offset: (-3.0, -3.0, -7.0), + lateral: ("npc.odonto.male.hand_r"), + ), + hand_r: ( + offset: (0.0, -3.0, -7.0), + lateral: ("npc.odonto.male.hand_r"), + ), + leg_l: ( + offset: (-7.0, -4.5, -4.0), + lateral: ("npc.odonto.male.leg_r"), + ), + leg_r: ( + offset: (0.0, -4.5, -4.0), + lateral: ("npc.odonto.male.leg_r"), + ), + foot_l: ( + offset: (-8.0, -1.0, -8.0), + lateral: ("npc.odonto.male.foot_r"), + ), + foot_r: ( + offset: (-6.0, -1.0, -8.0), + lateral: ("npc.odonto.male.foot_r"), + ), + ), + (Odonto, Female): ( + hand_l: ( + offset: (-3.0, -3.0, -7.0), + lateral: ("npc.odonto.male.hand_r"), + ), + hand_r: ( + offset: (0.0, -3.0, -7.0), + lateral: ("npc.odonto.male.hand_r"), + ), + leg_l: ( + offset: (-7.0, -4.5, -4.0), + lateral: ("npc.odonto.male.leg_r"), + ), + leg_r: ( + offset: (0.0, -4.5, -4.0), + lateral: ("npc.odonto.male.leg_r"), + ), + foot_l: ( + offset: (-8.0, -1.0, -8.0), + lateral: ("npc.odonto.male.foot_r"), + ), + foot_r: ( + offset: (-6.0, -1.0, -8.0), + lateral: ("npc.odonto.male.foot_r"), + ), + ), + (Sandraptor, Male): ( + hand_l: ( + offset: (-15.0, -9.0, -8.0), + lateral: ("npc.raptor_sand.male.hand_r"), + ), + hand_r: ( + offset: (0.0, -9.0, -8.0), + lateral: ("npc.raptor_sand.male.hand_r"), + ), + leg_l: ( + offset: (-5.0, -3.5, -3.5), + lateral: ("npc.raptor_sand.male.leg_r"), + ), + leg_r: ( + offset: (0.0, -3.5, -3.5), + lateral: ("npc.raptor_sand.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -4.5, -10.0), + lateral: ("npc.raptor_sand.male.foot_r"), + ), + foot_r: ( + offset: (-2.5, -4.5, -10.0), + lateral: ("npc.raptor_sand.male.foot_r"), + ), + ), + (Sandraptor, Female): ( + hand_l: ( + offset: (-15.0, -9.0, -8.0), + lateral: ("npc.raptor_sand.male.hand_r"), + ), + hand_r: ( + offset: (0.0, -9.0, -8.0), + lateral: ("npc.raptor_sand.male.hand_r"), + ), + leg_l: ( + offset: (-5.0, -3.5, -3.5), + lateral: ("npc.raptor_sand.male.leg_r"), + ), + leg_r: ( + offset: (0.0, -3.5, -3.5), + lateral: ("npc.raptor_sand.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -4.5, -10.0), + lateral: ("npc.raptor_sand.male.foot_r"), + ), + foot_r: ( + offset: (-2.5, -4.5, -10.0), + lateral: ("npc.raptor_sand.male.foot_r"), + ), + ), + (Snowraptor, Male): ( + hand_l: ( + offset: (-15.0, -9.0, -8.0), + lateral: ("npc.raptor_snow.male.hand_r"), + ), + hand_r: ( + offset: (0.0, -9.0, -8.0), + lateral: ("npc.raptor_snow.male.hand_r"), + ), + leg_l: ( + offset: (-5.0, -3.5, -3.5), + lateral: ("npc.raptor_snow.male.leg_r"), + ), + leg_r: ( + offset: (0.0, -3.5, -3.5), + lateral: ("npc.raptor_snow.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -4.5, -10.0), + lateral: ("npc.raptor_snow.male.foot_r"), + ), + foot_r: ( + offset: (-2.5, -4.5, -10.0), + lateral: ("npc.raptor_snow.male.foot_r"), + ), + ), + (Snowraptor, Female): ( + hand_l: ( + offset: (-15.0, -9.0, -8.0), + lateral: ("npc.raptor_snow.male.hand_r"), + ), + hand_r: ( + offset: (0.0, -9.0, -8.0), + lateral: ("npc.raptor_snow.male.hand_r"), + ), + leg_l: ( + offset: (-5.0, -3.5, -3.5), + lateral: ("npc.raptor_snow.male.leg_r"), + ), + leg_r: ( + offset: (0.0, -3.5, -3.5), + lateral: ("npc.raptor_snow.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -4.5, -10.0), + lateral: ("npc.raptor_snow.male.foot_r"), + ), + foot_r: ( + offset: (-2.5, -4.5, -10.0), + lateral: ("npc.raptor_snow.male.foot_r"), + ), + ), + (Woodraptor, Male): ( + hand_l: ( + offset: (-15.0, -9.0, -8.0), + lateral: ("npc.raptor_wood.male.hand_r"), + ), + hand_r: ( + offset: (0.0, -9.0, -8.0), + lateral: ("npc.raptor_wood.male.hand_r"), + ), + leg_l: ( + offset: (-5.0, -3.5, -3.5), + lateral: ("npc.raptor_wood.male.leg_r"), + ), + leg_r: ( + offset: (0.0, -3.5, -3.5), + lateral: ("npc.raptor_wood.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -4.5, -10.0), + lateral: ("npc.raptor_wood.male.foot_r"), + ), + foot_r: ( + offset: (-2.5, -4.5, -10.0), + lateral: ("npc.raptor_wood.male.foot_r"), + ), + ), + (Woodraptor, Female): ( + hand_l: ( + offset: (-15.0, -9.0, -8.0), + lateral: ("npc.raptor_wood.male.hand_r"), + ), + hand_r: ( + offset: (0.0, -9.0, -8.0), + lateral: ("npc.raptor_wood.male.hand_r"), + ), + leg_l: ( + offset: (-5.0, -3.5, -3.5), + lateral: ("npc.raptor_wood.male.leg_r"), + ), + leg_r: ( + offset: (0.0, -3.5, -3.5), + lateral: ("npc.raptor_wood.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -4.5, -10.0), + lateral: ("npc.raptor_wood.male.foot_r"), + ), + foot_r: ( + offset: (-2.5, -4.5, -10.0), + lateral: ("npc.raptor_wood.male.foot_r"), + ), + ), + (Sunlizard, Male): ( + hand_l: ( + offset: (-4.0, -1.5, -7.0), + lateral: ("npc.sunlizard.male.hand_r"), + ), + hand_r: ( + offset: (0.0, -1.5, -7.0), + lateral: ("npc.sunlizard.male.hand_r"), + ), + leg_l: ( + offset: (-3.0, -2.5, -3.5), + lateral: ("npc.sunlizard.male.leg_r"), + ), + leg_r: ( + offset: (0.0, -2.5, -3.5), + lateral: ("npc.sunlizard.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -4.0, -9.0), + lateral: ("npc.sunlizard.male.foot_r"), + ), + foot_r: ( + offset: (-2.5, -4.0, -9.0), + lateral: ("npc.sunlizard.male.foot_r"), + ), + ), + (Sunlizard, Female): ( + hand_l: ( + offset: (-4.0, -1.5, -7.0), + lateral: ("npc.sunlizard.male.hand_r"), + ), + hand_r: ( + offset: (0.0, -1.5, -7.0), + lateral: ("npc.sunlizard.male.hand_r"), + ), + leg_l: ( + offset: (-3.0, -2.5, -3.5), + lateral: ("npc.sunlizard.male.leg_r"), + ), + leg_r: ( + offset: (0.0, -2.5, -3.5), + lateral: ("npc.sunlizard.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -4.0, -9.0), + lateral: ("npc.sunlizard.male.foot_r"), + ), + foot_r: ( + offset: (-2.5, -4.0, -9.0), + lateral: ("npc.sunlizard.male.foot_r"), + ), + ), + (Yale, Male): ( + hand_l: ( + offset: (-5.0, -2.0, -9.0), + lateral: ("npc.yale.male.hand_r"), + ), + hand_r: ( + offset: (0.0, -2.0, -9.0), + lateral: ("npc.yale.male.hand_r"), + ), + leg_l: ( + offset: (-5.0, -4.5, -4.5), + lateral: ("npc.yale.male.leg_r"), + ), + leg_r: ( + offset: (0.0, -4.5, -4.5), + lateral: ("npc.yale.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -5.5, -12.0), + lateral: ("npc.yale.male.foot_r"), + ), + foot_r: ( + offset: (-1.5, -5.5, -12.0), + lateral: ("npc.yale.male.foot_r"), + ), + ), + (Yale, Female): ( + hand_l: ( + offset: (-5.0, -2.0, -9.0), + lateral: ("npc.yale.male.hand_r"), + ), + hand_r: ( + offset: (0.0, -2.0, -9.0), + lateral: ("npc.yale.male.hand_r"), + ), + leg_l: ( + offset: (-5.0, -4.5, -4.5), + lateral: ("npc.yale.male.leg_r"), + ), + leg_r: ( + offset: (0.0, -4.5, -4.5), + lateral: ("npc.yale.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -5.5, -12.0), + lateral: ("npc.yale.male.foot_r"), + ), + foot_r: ( + offset: (-1.5, -5.5, -12.0), + lateral: ("npc.yale.male.foot_r"), + ), + ), + (Dodarock, Male): ( + hand_l: ( + offset: (-2.5, -1.0, -6.0), + lateral: ("npc.dodarock.male.hand_r"), + ), + hand_r: ( + offset: (-2.5, -1.0, -6.0), + lateral: ("npc.dodarock.male.hand_r"), + ), + leg_l: ( + offset: (-2.0, -1.0, -3.0), + lateral: ("npc.dodarock.male.leg_r"), + ), + leg_r: ( + offset: (-2.0, -1.0, -3.0), + lateral: ("npc.dodarock.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -1.0, -3.0), + lateral: ("npc.dodarock.male.foot_r"), + ), + foot_r: ( + offset: (-3.5, -1.0, -3.0), + lateral: ("npc.dodarock.male.foot_r"), + ), + ), + (Dodarock, Female): ( + hand_l: ( + offset: (-2.5, -1.0, -6.0), + lateral: ("npc.dodarock.male.hand_r"), + ), + hand_r: ( + offset: (-2.5, -1.0, -6.0), + lateral: ("npc.dodarock.male.hand_r"), + ), + leg_l: ( + offset: (-2.0, -1.0, -3.0), + lateral: ("npc.dodarock.male.leg_r"), + ), + leg_r: ( + offset: (-2.0, -1.0, -3.0), + lateral: ("npc.dodarock.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -1.0, -3.0), + lateral: ("npc.dodarock.male.foot_r"), + ), + foot_r: ( + offset: (-3.5, -1.0, -3.0), + lateral: ("npc.dodarock.male.foot_r"), + ), + ), + (Ntouka, Male): ( + hand_l: ( + offset: (-4.0, -2.5, -8.0), + lateral: ("npc.ntouka.male.hand_r"), + ), + hand_r: ( + offset: (0.0, -2.5, -8.0), + lateral: ("npc.ntouka.male.hand_r"), + ), + leg_l: ( + offset: (-5.0, -4.5, -4.5), + lateral: ("npc.ntouka.male.leg_r"), + ), + leg_r: ( + offset: (0.0, -4.5, -4.5), + lateral: ("npc.ntouka.male.leg_r"), + ), + foot_l: ( + offset: (-6.5, -6.5, -8.0), + lateral: ("npc.ntouka.male.foot_r"), + ), + foot_r: ( + offset: (-3.5, -6.5, -8.0), + lateral: ("npc.ntouka.male.foot_r"), + ), + ), + (Ntouka, Female): ( + hand_l: ( + offset: (-4.0, -2.5, -8.0), + lateral: ("npc.ntouka.male.hand_r"), + ), + hand_r: ( + offset: (0.0, -2.5, -8.0), + lateral: ("npc.ntouka.male.hand_r"), + ), + leg_l: ( + offset: (-5.0, -4.5, -4.5), + lateral: ("npc.ntouka.male.leg_r"), + ), + leg_r: ( + offset: (0.0, -4.5, -4.5), + lateral: ("npc.ntouka.male.leg_r"), + ), + foot_l: ( + offset: (-6.5, -6.5, -8.0), + lateral: ("npc.ntouka.male.foot_r"), + ), + foot_r: ( + offset: (-3.5, -6.5, -8.0), + lateral: ("npc.ntouka.male.foot_r"), + ), + ), + (Axebeak, Male): ( + hand_l: ( + offset: (-10.0, -4.0, -12.0), + lateral: ("npc.axebeak.male.hand_r"), + ), + hand_r: ( + offset: (0.0, -4.0, -12.0), + lateral: ("npc.axebeak.male.hand_r"), + ), + leg_l: ( + offset: (-5.0, -4.5, -6.5), + lateral: ("npc.axebeak.male.leg_r"), + ), + leg_r: ( + offset: (0.0, -4.5, -6.5), + lateral: ("npc.axebeak.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -7.0, -5.0), + lateral: ("npc.axebeak.male.foot_r"), + ), + foot_r: ( + offset: (-3.5, -7.0, -5.0), + lateral: ("npc.axebeak.male.foot_r"), + ), + ), + (Axebeak, Female): ( + hand_l: ( + offset: (-10.0, -4.0, -12.0), + lateral: ("npc.axebeak.male.hand_r"), + ), + hand_r: ( + offset: (0.0, -4.0, -12.0), + lateral: ("npc.axebeak.male.hand_r"), + ), + leg_l: ( + offset: (-5.0, -4.5, -6.5), + lateral: ("npc.axebeak.male.leg_r"), + ), + leg_r: ( + offset: (0.0, -4.5, -6.5), + lateral: ("npc.axebeak.male.leg_r"), + ), + foot_l: ( + offset: (-3.5, -7.0, -5.0), + lateral: ("npc.axebeak.male.foot_r"), + ), + foot_r: ( + offset: (-3.5, -7.0, -5.0), + lateral: ("npc.axebeak.male.foot_r"), + ), + ), +}) diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_gigas_frost.vox b/assets/voxygen/voxel/weapon/axe/2haxe_gigas_frost.vox new file mode 100644 index 0000000..44f98a9 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_gigas_frost.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_malachite-0.vox b/assets/voxygen/voxel/weapon/axe/2haxe_malachite-0.vox new file mode 100644 index 0000000..aebd8da Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_malachite-0.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_minotaur.vox b/assets/voxygen/voxel/weapon/axe/2haxe_minotaur.vox new file mode 100644 index 0000000..ac28d01 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_minotaur.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_oni_blue.vox b/assets/voxygen/voxel/weapon/axe/2haxe_oni_blue.vox new file mode 100644 index 0000000..97cfed5 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_oni_blue.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_rusty.vox b/assets/voxygen/voxel/weapon/axe/2haxe_rusty.vox new file mode 100644 index 0000000..a0f6de7 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/2haxe_rusty.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/axe/bloodsteel-1h.vox b/assets/voxygen/voxel/weapon/axe/axe/bloodsteel-1h.vox new file mode 100644 index 0000000..8147e91 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/axe/bloodsteel-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/axe/bloodsteel-2h.vox b/assets/voxygen/voxel/weapon/axe/axe/bloodsteel-2h.vox new file mode 100644 index 0000000..6ecb4ec Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/axe/bloodsteel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/axe/bronze-1h.vox b/assets/voxygen/voxel/weapon/axe/axe/bronze-1h.vox new file mode 100644 index 0000000..461048e Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/axe/bronze-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/axe/bronze-2h.vox b/assets/voxygen/voxel/weapon/axe/axe/bronze-2h.vox new file mode 100644 index 0000000..b11afec Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/axe/bronze-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/axe/cobalt-1h.vox b/assets/voxygen/voxel/weapon/axe/axe/cobalt-1h.vox new file mode 100644 index 0000000..80a09b7 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/axe/cobalt-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/axe/cobalt-2h.vox b/assets/voxygen/voxel/weapon/axe/axe/cobalt-2h.vox new file mode 100644 index 0000000..48bab5a Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/axe/cobalt-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/axe/iron-1h.vox b/assets/voxygen/voxel/weapon/axe/axe/iron-1h.vox new file mode 100644 index 0000000..f025ecf Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/axe/iron-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/axe/iron-2h.vox b/assets/voxygen/voxel/weapon/axe/axe/iron-2h.vox new file mode 100644 index 0000000..690eccb Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/axe/iron-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/axe/orichalcum-1h.vox b/assets/voxygen/voxel/weapon/axe/axe/orichalcum-1h.vox new file mode 100644 index 0000000..5697999 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/axe/orichalcum-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/axe/orichalcum-2h.vox b/assets/voxygen/voxel/weapon/axe/axe/orichalcum-2h.vox new file mode 100644 index 0000000..fb3a78e Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/axe/orichalcum-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/axe/steel-1h.vox b/assets/voxygen/voxel/weapon/axe/axe/steel-1h.vox new file mode 100644 index 0000000..1cf4d8b Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/axe/steel-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/axe/steel-2h.vox b/assets/voxygen/voxel/weapon/axe/axe/steel-2h.vox new file mode 100644 index 0000000..c118888 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/axe/steel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/battleaxe/bloodsteel-1h.vox b/assets/voxygen/voxel/weapon/axe/battleaxe/bloodsteel-1h.vox new file mode 100644 index 0000000..c3756e4 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/battleaxe/bloodsteel-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/battleaxe/bloodsteel-2h.vox b/assets/voxygen/voxel/weapon/axe/battleaxe/bloodsteel-2h.vox new file mode 100644 index 0000000..cd78607 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/battleaxe/bloodsteel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/battleaxe/bronze-1h.vox b/assets/voxygen/voxel/weapon/axe/battleaxe/bronze-1h.vox new file mode 100644 index 0000000..5ee61ea Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/battleaxe/bronze-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/battleaxe/bronze-2h.vox b/assets/voxygen/voxel/weapon/axe/battleaxe/bronze-2h.vox new file mode 100644 index 0000000..cb54c77 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/battleaxe/bronze-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/battleaxe/cobalt-1h.vox b/assets/voxygen/voxel/weapon/axe/battleaxe/cobalt-1h.vox new file mode 100644 index 0000000..f10a0d2 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/battleaxe/cobalt-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/battleaxe/cobalt-2h.vox b/assets/voxygen/voxel/weapon/axe/battleaxe/cobalt-2h.vox new file mode 100644 index 0000000..42daeb6 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/battleaxe/cobalt-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/battleaxe/iron-1h.vox b/assets/voxygen/voxel/weapon/axe/battleaxe/iron-1h.vox new file mode 100644 index 0000000..d955a47 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/battleaxe/iron-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/battleaxe/iron-2h.vox b/assets/voxygen/voxel/weapon/axe/battleaxe/iron-2h.vox new file mode 100644 index 0000000..2035046 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/battleaxe/iron-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/battleaxe/orichalcum-1h.vox b/assets/voxygen/voxel/weapon/axe/battleaxe/orichalcum-1h.vox new file mode 100644 index 0000000..ae82091 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/battleaxe/orichalcum-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/battleaxe/orichalcum-2h.vox b/assets/voxygen/voxel/weapon/axe/battleaxe/orichalcum-2h.vox new file mode 100644 index 0000000..daaf98c Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/battleaxe/orichalcum-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/battleaxe/steel-1h.vox b/assets/voxygen/voxel/weapon/axe/battleaxe/steel-1h.vox new file mode 100644 index 0000000..bd7a5d1 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/battleaxe/steel-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/battleaxe/steel-2h.vox b/assets/voxygen/voxel/weapon/axe/battleaxe/steel-2h.vox new file mode 100644 index 0000000..f02e0a5 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/battleaxe/steel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/executioner_axe.vox b/assets/voxygen/voxel/weapon/axe/executioner_axe.vox new file mode 100644 index 0000000..e973676 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/executioner_axe.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/greataxe/bloodsteel-2h.vox b/assets/voxygen/voxel/weapon/axe/greataxe/bloodsteel-2h.vox new file mode 100644 index 0000000..e73c2b1 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/greataxe/bloodsteel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/greataxe/bronze-2h.vox b/assets/voxygen/voxel/weapon/axe/greataxe/bronze-2h.vox new file mode 100644 index 0000000..cd45b6f Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/greataxe/bronze-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/greataxe/cobalt-2h.vox b/assets/voxygen/voxel/weapon/axe/greataxe/cobalt-2h.vox new file mode 100644 index 0000000..791f57b Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/greataxe/cobalt-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/greataxe/iron-2h.vox b/assets/voxygen/voxel/weapon/axe/greataxe/iron-2h.vox new file mode 100644 index 0000000..dcb85ea Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/greataxe/iron-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/greataxe/orichalcum-2h.vox b/assets/voxygen/voxel/weapon/axe/greataxe/orichalcum-2h.vox new file mode 100644 index 0000000..9261564 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/greataxe/orichalcum-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/greataxe/steel-2h.vox b/assets/voxygen/voxel/weapon/axe/greataxe/steel-2h.vox new file mode 100644 index 0000000..1c1cb24 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/greataxe/steel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/jagged/bloodsteel-1h.vox b/assets/voxygen/voxel/weapon/axe/jagged/bloodsteel-1h.vox new file mode 100644 index 0000000..208d347 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/jagged/bloodsteel-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/jagged/bloodsteel-2h.vox b/assets/voxygen/voxel/weapon/axe/jagged/bloodsteel-2h.vox new file mode 100644 index 0000000..455f59f Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/jagged/bloodsteel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/jagged/bronze-1h.vox b/assets/voxygen/voxel/weapon/axe/jagged/bronze-1h.vox new file mode 100644 index 0000000..8f37814 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/jagged/bronze-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/jagged/bronze-2h.vox b/assets/voxygen/voxel/weapon/axe/jagged/bronze-2h.vox new file mode 100644 index 0000000..fb9ece4 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/jagged/bronze-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/jagged/cobalt-1h.vox b/assets/voxygen/voxel/weapon/axe/jagged/cobalt-1h.vox new file mode 100644 index 0000000..267901e Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/jagged/cobalt-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/jagged/cobalt-2h.vox b/assets/voxygen/voxel/weapon/axe/jagged/cobalt-2h.vox new file mode 100644 index 0000000..41cdf92 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/jagged/cobalt-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/jagged/iron-1h.vox b/assets/voxygen/voxel/weapon/axe/jagged/iron-1h.vox new file mode 100644 index 0000000..232ee0d Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/jagged/iron-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/jagged/iron-2h.vox b/assets/voxygen/voxel/weapon/axe/jagged/iron-2h.vox new file mode 100644 index 0000000..9051484 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/jagged/iron-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/jagged/orichalcum-1h.vox b/assets/voxygen/voxel/weapon/axe/jagged/orichalcum-1h.vox new file mode 100644 index 0000000..ddfe3da Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/jagged/orichalcum-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/jagged/orichalcum-2h.vox b/assets/voxygen/voxel/weapon/axe/jagged/orichalcum-2h.vox new file mode 100644 index 0000000..eedd599 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/jagged/orichalcum-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/jagged/steel-1h.vox b/assets/voxygen/voxel/weapon/axe/jagged/steel-1h.vox new file mode 100644 index 0000000..a3f9179 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/jagged/steel-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/jagged/steel-2h.vox b/assets/voxygen/voxel/weapon/axe/jagged/steel-2h.vox new file mode 100644 index 0000000..cc0d623 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/jagged/steel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/labrys/bloodsteel-2h.vox b/assets/voxygen/voxel/weapon/axe/labrys/bloodsteel-2h.vox new file mode 100644 index 0000000..5a977e3 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/labrys/bloodsteel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/labrys/bronze-2h.vox b/assets/voxygen/voxel/weapon/axe/labrys/bronze-2h.vox new file mode 100644 index 0000000..8801cac Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/labrys/bronze-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/labrys/cobalt-2h.vox b/assets/voxygen/voxel/weapon/axe/labrys/cobalt-2h.vox new file mode 100644 index 0000000..a28e55b Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/labrys/cobalt-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/labrys/iron-2h.vox b/assets/voxygen/voxel/weapon/axe/labrys/iron-2h.vox new file mode 100644 index 0000000..b645860 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/labrys/iron-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/labrys/orichalcum-2h.vox b/assets/voxygen/voxel/weapon/axe/labrys/orichalcum-2h.vox new file mode 100644 index 0000000..d87a650 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/labrys/orichalcum-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/labrys/steel-2h.vox b/assets/voxygen/voxel/weapon/axe/labrys/steel-2h.vox new file mode 100644 index 0000000..f3153fc Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/labrys/steel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/ornate/bloodsteel-1h.vox b/assets/voxygen/voxel/weapon/axe/ornate/bloodsteel-1h.vox new file mode 100644 index 0000000..ceda0c8 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/ornate/bloodsteel-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/ornate/bloodsteel-2h.vox b/assets/voxygen/voxel/weapon/axe/ornate/bloodsteel-2h.vox new file mode 100644 index 0000000..5ae5d42 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/ornate/bloodsteel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/ornate/bronze-1h.vox b/assets/voxygen/voxel/weapon/axe/ornate/bronze-1h.vox new file mode 100644 index 0000000..76f0d8c Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/ornate/bronze-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/ornate/bronze-2h.vox b/assets/voxygen/voxel/weapon/axe/ornate/bronze-2h.vox new file mode 100644 index 0000000..21fc074 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/ornate/bronze-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/ornate/cobalt-1h.vox b/assets/voxygen/voxel/weapon/axe/ornate/cobalt-1h.vox new file mode 100644 index 0000000..3406bc2 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/ornate/cobalt-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/ornate/cobalt-2h.vox b/assets/voxygen/voxel/weapon/axe/ornate/cobalt-2h.vox new file mode 100644 index 0000000..cf4c01c Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/ornate/cobalt-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/ornate/iron-1h.vox b/assets/voxygen/voxel/weapon/axe/ornate/iron-1h.vox new file mode 100644 index 0000000..9f2ecc6 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/ornate/iron-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/ornate/iron-2h.vox b/assets/voxygen/voxel/weapon/axe/ornate/iron-2h.vox new file mode 100644 index 0000000..7d283f0 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/ornate/iron-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/ornate/orichalcum-1h.vox b/assets/voxygen/voxel/weapon/axe/ornate/orichalcum-1h.vox new file mode 100644 index 0000000..cde222e Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/ornate/orichalcum-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/ornate/orichalcum-2h.vox b/assets/voxygen/voxel/weapon/axe/ornate/orichalcum-2h.vox new file mode 100644 index 0000000..33b2a14 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/ornate/orichalcum-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/ornate/steel-1h.vox b/assets/voxygen/voxel/weapon/axe/ornate/steel-1h.vox new file mode 100644 index 0000000..03cd2b5 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/ornate/steel-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/ornate/steel-2h.vox b/assets/voxygen/voxel/weapon/axe/ornate/steel-2h.vox new file mode 100644 index 0000000..314638c Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/ornate/steel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/parashu.vox b/assets/voxygen/voxel/weapon/axe/parashu.vox new file mode 100644 index 0000000..231686c Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/parashu.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/poleaxe/bloodsteel-2h.vox b/assets/voxygen/voxel/weapon/axe/poleaxe/bloodsteel-2h.vox new file mode 100644 index 0000000..1e8d87b Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/poleaxe/bloodsteel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/poleaxe/bronze-2h.vox b/assets/voxygen/voxel/weapon/axe/poleaxe/bronze-2h.vox new file mode 100644 index 0000000..c98a0d6 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/poleaxe/bronze-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/poleaxe/cobalt-2h.vox b/assets/voxygen/voxel/weapon/axe/poleaxe/cobalt-2h.vox new file mode 100644 index 0000000..ac9f6d4 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/poleaxe/cobalt-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/poleaxe/iron-2h.vox b/assets/voxygen/voxel/weapon/axe/poleaxe/iron-2h.vox new file mode 100644 index 0000000..6513d47 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/poleaxe/iron-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/poleaxe/orichalcum-2h.vox b/assets/voxygen/voxel/weapon/axe/poleaxe/orichalcum-2h.vox new file mode 100644 index 0000000..4bd5ef1 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/poleaxe/orichalcum-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/axe/poleaxe/steel-2h.vox b/assets/voxygen/voxel/weapon/axe/poleaxe/steel-2h.vox new file mode 100644 index 0000000..4172d78 Binary files /dev/null and b/assets/voxygen/voxel/weapon/axe/poleaxe/steel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/biped_small/axe/bloodservant_axe.vox b/assets/voxygen/voxel/weapon/biped_small/axe/bloodservant_axe.vox new file mode 100644 index 0000000..a3062b0 Binary files /dev/null and b/assets/voxygen/voxel/weapon/biped_small/axe/bloodservant_axe.vox differ diff --git a/assets/voxygen/voxel/weapon/biped_small/axe/icepicker.vox b/assets/voxygen/voxel/weapon/biped_small/axe/icepicker.vox new file mode 100644 index 0000000..2263d65 Binary files /dev/null and b/assets/voxygen/voxel/weapon/biped_small/axe/icepicker.vox differ diff --git a/assets/voxygen/voxel/weapon/biped_small/axe/logger.vox b/assets/voxygen/voxel/weapon/biped_small/axe/logger.vox new file mode 100644 index 0000000..97e0aa0 Binary files /dev/null and b/assets/voxygen/voxel/weapon/biped_small/axe/logger.vox differ diff --git a/assets/voxygen/voxel/weapon/biped_small/axe/strategian.vox b/assets/voxygen/voxel/weapon/biped_small/axe/strategian.vox new file mode 100644 index 0000000..bb44bdb Binary files /dev/null and b/assets/voxygen/voxel/weapon/biped_small/axe/strategian.vox differ diff --git a/assets/voxygen/voxel/weapon/biped_small/blowgun/stalker.vox b/assets/voxygen/voxel/weapon/biped_small/blowgun/stalker.vox new file mode 100644 index 0000000..63f1c91 Binary files /dev/null and b/assets/voxygen/voxel/weapon/biped_small/blowgun/stalker.vox differ diff --git a/assets/voxygen/voxel/weapon/biped_small/blowgun/trapper.vox b/assets/voxygen/voxel/weapon/biped_small/blowgun/trapper.vox new file mode 100644 index 0000000..3f8b0a4 Binary files /dev/null and b/assets/voxygen/voxel/weapon/biped_small/blowgun/trapper.vox differ diff --git a/assets/voxygen/voxel/weapon/biped_small/bow/archer.vox b/assets/voxygen/voxel/weapon/biped_small/bow/archer.vox new file mode 100644 index 0000000..0474206 Binary files /dev/null and b/assets/voxygen/voxel/weapon/biped_small/bow/archer.vox differ diff --git a/assets/voxygen/voxel/weapon/biped_small/bow/boreal_bow.vox b/assets/voxygen/voxel/weapon/biped_small/bow/boreal_bow.vox new file mode 100644 index 0000000..fc7f188 Binary files /dev/null and b/assets/voxygen/voxel/weapon/biped_small/bow/boreal_bow.vox differ diff --git a/assets/voxygen/voxel/weapon/biped_small/bow/marksman.vox b/assets/voxygen/voxel/weapon/biped_small/bow/marksman.vox new file mode 100644 index 0000000..d2aee00 Binary files /dev/null and b/assets/voxygen/voxel/weapon/biped_small/bow/marksman.vox differ diff --git a/assets/voxygen/voxel/weapon/biped_small/bow/sniper.vox b/assets/voxygen/voxel/weapon/biped_small/bow/sniper.vox new file mode 100644 index 0000000..3520297 Binary files /dev/null and b/assets/voxygen/voxel/weapon/biped_small/bow/sniper.vox differ diff --git a/assets/voxygen/voxel/weapon/biped_small/bow/tracker.vox b/assets/voxygen/voxel/weapon/biped_small/bow/tracker.vox new file mode 100644 index 0000000..f6165e6 Binary files /dev/null and b/assets/voxygen/voxel/weapon/biped_small/bow/tracker.vox differ diff --git a/assets/voxygen/voxel/weapon/biped_small/dagger/harlequin_dagger.vox b/assets/voxygen/voxel/weapon/biped_small/dagger/harlequin_dagger.vox new file mode 100644 index 0000000..6b12baf Binary files /dev/null and b/assets/voxygen/voxel/weapon/biped_small/dagger/harlequin_dagger.vox differ diff --git a/assets/voxygen/voxel/weapon/biped_small/dagger/mugger.vox b/assets/voxygen/voxel/weapon/biped_small/dagger/mugger.vox new file mode 100644 index 0000000..75a399a Binary files /dev/null and b/assets/voxygen/voxel/weapon/biped_small/dagger/mugger.vox differ diff --git a/assets/voxygen/voxel/weapon/biped_small/dagger/rogue.vox b/assets/voxygen/voxel/weapon/biped_small/dagger/rogue.vox new file mode 100644 index 0000000..6b2d816 Binary files /dev/null and b/assets/voxygen/voxel/weapon/biped_small/dagger/rogue.vox differ diff --git a/assets/voxygen/voxel/weapon/biped_small/dagger/soldier.vox b/assets/voxygen/voxel/weapon/biped_small/dagger/soldier.vox new file mode 100644 index 0000000..dd183c8 Binary files /dev/null and b/assets/voxygen/voxel/weapon/biped_small/dagger/soldier.vox differ diff --git a/assets/voxygen/voxel/weapon/biped_small/hammer/boreal_hammer.vox b/assets/voxygen/voxel/weapon/biped_small/hammer/boreal_hammer.vox new file mode 100644 index 0000000..b8a3d66 Binary files /dev/null and b/assets/voxygen/voxel/weapon/biped_small/hammer/boreal_hammer.vox differ diff --git a/assets/voxygen/voxel/weapon/biped_small/misc/goblin_ruffian_knife.vox b/assets/voxygen/voxel/weapon/biped_small/misc/goblin_ruffian_knife.vox new file mode 100644 index 0000000..0ab8b8c Binary files /dev/null and b/assets/voxygen/voxel/weapon/biped_small/misc/goblin_ruffian_knife.vox differ diff --git a/assets/voxygen/voxel/weapon/biped_small/misc/goblin_thug_club.vox b/assets/voxygen/voxel/weapon/biped_small/misc/goblin_thug_club.vox new file mode 100644 index 0000000..85b5b70 Binary files /dev/null and b/assets/voxygen/voxel/weapon/biped_small/misc/goblin_thug_club.vox differ diff --git a/assets/voxygen/voxel/weapon/biped_small/misc/green_legoom_rake.vox b/assets/voxygen/voxel/weapon/biped_small/misc/green_legoom_rake.vox new file mode 100644 index 0000000..d4d58d6 Binary files /dev/null and b/assets/voxygen/voxel/weapon/biped_small/misc/green_legoom_rake.vox differ diff --git a/assets/voxygen/voxel/weapon/biped_small/misc/magic_shamanic_spirit.vox b/assets/voxygen/voxel/weapon/biped_small/misc/magic_shamanic_spirit.vox new file mode 100644 index 0000000..20e98e3 Binary files /dev/null and b/assets/voxygen/voxel/weapon/biped_small/misc/magic_shamanic_spirit.vox differ diff --git a/assets/voxygen/voxel/weapon/biped_small/misc/ochre_legoom_spade.vox b/assets/voxygen/voxel/weapon/biped_small/misc/ochre_legoom_spade.vox new file mode 100644 index 0000000..8936ef5 Binary files /dev/null and b/assets/voxygen/voxel/weapon/biped_small/misc/ochre_legoom_spade.vox differ diff --git a/assets/voxygen/voxel/weapon/biped_small/misc/purple_legoom_pitchfork.vox b/assets/voxygen/voxel/weapon/biped_small/misc/purple_legoom_pitchfork.vox new file mode 100644 index 0000000..828ec70 Binary files /dev/null and b/assets/voxygen/voxel/weapon/biped_small/misc/purple_legoom_pitchfork.vox differ diff --git a/assets/voxygen/voxel/weapon/biped_small/misc/red_legoom_hoe.vox b/assets/voxygen/voxel/weapon/biped_small/misc/red_legoom_hoe.vox new file mode 100644 index 0000000..a140a59 Binary files /dev/null and b/assets/voxygen/voxel/weapon/biped_small/misc/red_legoom_hoe.vox differ diff --git a/assets/voxygen/voxel/weapon/biped_small/spear/guard.vox b/assets/voxygen/voxel/weapon/biped_small/spear/guard.vox new file mode 100644 index 0000000..a8f93af Binary files /dev/null and b/assets/voxygen/voxel/weapon/biped_small/spear/guard.vox differ diff --git a/assets/voxygen/voxel/weapon/biped_small/spear/hoplite.vox b/assets/voxygen/voxel/weapon/biped_small/spear/hoplite.vox new file mode 100644 index 0000000..aa61d17 Binary files /dev/null and b/assets/voxygen/voxel/weapon/biped_small/spear/hoplite.vox differ diff --git a/assets/voxygen/voxel/weapon/biped_small/spear/hunter.vox b/assets/voxygen/voxel/weapon/biped_small/spear/hunter.vox new file mode 100644 index 0000000..42a1dcb Binary files /dev/null and b/assets/voxygen/voxel/weapon/biped_small/spear/hunter.vox differ diff --git a/assets/voxygen/voxel/weapon/biped_small/spear/spearman.vox b/assets/voxygen/voxel/weapon/biped_small/spear/spearman.vox new file mode 100644 index 0000000..89b9195 Binary files /dev/null and b/assets/voxygen/voxel/weapon/biped_small/spear/spearman.vox differ diff --git a/assets/voxygen/voxel/weapon/biped_small/staff/chieftain.vox b/assets/voxygen/voxel/weapon/biped_small/staff/chieftain.vox new file mode 100644 index 0000000..7ab4280 Binary files /dev/null and b/assets/voxygen/voxel/weapon/biped_small/staff/chieftain.vox differ diff --git a/assets/voxygen/voxel/weapon/biped_small/staff/flamekeeper_staff.vox b/assets/voxygen/voxel/weapon/biped_small/staff/flamekeeper_staff.vox new file mode 100644 index 0000000..3bdc9c6 Binary files /dev/null and b/assets/voxygen/voxel/weapon/biped_small/staff/flamekeeper_staff.vox differ diff --git a/assets/voxygen/voxel/weapon/biped_small/staff/shaman.vox b/assets/voxygen/voxel/weapon/biped_small/staff/shaman.vox new file mode 100644 index 0000000..65cde21 Binary files /dev/null and b/assets/voxygen/voxel/weapon/biped_small/staff/shaman.vox differ diff --git a/assets/voxygen/voxel/weapon/biped_small/staff/sorcerer.vox b/assets/voxygen/voxel/weapon/biped_small/staff/sorcerer.vox new file mode 100644 index 0000000..b47355b Binary files /dev/null and b/assets/voxygen/voxel/weapon/biped_small/staff/sorcerer.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/bow/bamboo.vox b/assets/voxygen/voxel/weapon/bow/bow/bamboo.vox new file mode 100644 index 0000000..164dd35 Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/bow/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/bow/eldwood.vox b/assets/voxygen/voxel/weapon/bow/bow/eldwood.vox new file mode 100644 index 0000000..1a31570 Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/bow/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/bow/frostwood.vox b/assets/voxygen/voxel/weapon/bow/bow/frostwood.vox new file mode 100644 index 0000000..21e4c1e Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/bow/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/bow/hardwood.vox b/assets/voxygen/voxel/weapon/bow/bow/hardwood.vox new file mode 100644 index 0000000..2d3935b Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/bow/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/bow/ironwood.vox b/assets/voxygen/voxel/weapon/bow/bow/ironwood.vox new file mode 100644 index 0000000..624809c Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/bow/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/bow/wood.vox b/assets/voxygen/voxel/weapon/bow/bow/wood.vox new file mode 100644 index 0000000..8afab8b Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/bow/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/composite/bamboo.vox b/assets/voxygen/voxel/weapon/bow/composite/bamboo.vox new file mode 100644 index 0000000..a2d9d38 Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/composite/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/composite/eldwood.vox b/assets/voxygen/voxel/weapon/bow/composite/eldwood.vox new file mode 100644 index 0000000..8eff6a0 Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/composite/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/composite/frostwood.vox b/assets/voxygen/voxel/weapon/bow/composite/frostwood.vox new file mode 100644 index 0000000..e83123e Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/composite/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/composite/hardwood.vox b/assets/voxygen/voxel/weapon/bow/composite/hardwood.vox new file mode 100644 index 0000000..0672328 Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/composite/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/composite/ironwood.vox b/assets/voxygen/voxel/weapon/bow/composite/ironwood.vox new file mode 100644 index 0000000..0b6a25e Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/composite/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/composite/wood.vox b/assets/voxygen/voxel/weapon/bow/composite/wood.vox new file mode 100644 index 0000000..71d339e Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/composite/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/greatbow/bamboo.vox b/assets/voxygen/voxel/weapon/bow/greatbow/bamboo.vox new file mode 100644 index 0000000..cbd535c Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/greatbow/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/greatbow/eldwood.vox b/assets/voxygen/voxel/weapon/bow/greatbow/eldwood.vox new file mode 100644 index 0000000..84bdbfb Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/greatbow/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/greatbow/frostwood.vox b/assets/voxygen/voxel/weapon/bow/greatbow/frostwood.vox new file mode 100644 index 0000000..0d8ad16 Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/greatbow/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/greatbow/hardwood.vox b/assets/voxygen/voxel/weapon/bow/greatbow/hardwood.vox new file mode 100644 index 0000000..9c04de8 Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/greatbow/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/greatbow/ironwood.vox b/assets/voxygen/voxel/weapon/bow/greatbow/ironwood.vox new file mode 100644 index 0000000..f328349 Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/greatbow/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/greatbow/wood.vox b/assets/voxygen/voxel/weapon/bow/greatbow/wood.vox new file mode 100644 index 0000000..8ef256c Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/greatbow/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/longbow/bamboo.vox b/assets/voxygen/voxel/weapon/bow/longbow/bamboo.vox new file mode 100644 index 0000000..0823608 Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/longbow/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/longbow/eldwood.vox b/assets/voxygen/voxel/weapon/bow/longbow/eldwood.vox new file mode 100644 index 0000000..f68f634 Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/longbow/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/longbow/frostwood.vox b/assets/voxygen/voxel/weapon/bow/longbow/frostwood.vox new file mode 100644 index 0000000..866be2b Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/longbow/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/longbow/hardwood.vox b/assets/voxygen/voxel/weapon/bow/longbow/hardwood.vox new file mode 100644 index 0000000..62fe2a5 Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/longbow/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/longbow/ironwood.vox b/assets/voxygen/voxel/weapon/bow/longbow/ironwood.vox new file mode 100644 index 0000000..3c1bcf5 Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/longbow/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/longbow/wood.vox b/assets/voxygen/voxel/weapon/bow/longbow/wood.vox new file mode 100644 index 0000000..80e0348 Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/longbow/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/longbow_saurok.vox b/assets/voxygen/voxel/weapon/bow/longbow_saurok.vox new file mode 100644 index 0000000..4d6e575 Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/longbow_saurok.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/ornate/bamboo.vox b/assets/voxygen/voxel/weapon/bow/ornate/bamboo.vox new file mode 100644 index 0000000..827e01f Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/ornate/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/ornate/eldwood.vox b/assets/voxygen/voxel/weapon/bow/ornate/eldwood.vox new file mode 100644 index 0000000..c57d384 Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/ornate/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/ornate/frostwood.vox b/assets/voxygen/voxel/weapon/bow/ornate/frostwood.vox new file mode 100644 index 0000000..076812a Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/ornate/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/ornate/hardwood.vox b/assets/voxygen/voxel/weapon/bow/ornate/hardwood.vox new file mode 100644 index 0000000..48e4d19 Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/ornate/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/ornate/ironwood.vox b/assets/voxygen/voxel/weapon/bow/ornate/ironwood.vox new file mode 100644 index 0000000..dc0004f Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/ornate/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/ornate/wood.vox b/assets/voxygen/voxel/weapon/bow/ornate/wood.vox new file mode 100644 index 0000000..c6aac9e Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/ornate/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/sagitta.vox b/assets/voxygen/voxel/weapon/bow/sagitta.vox new file mode 100644 index 0000000..aa0b80b Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/sagitta.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/shortbow/bamboo.vox b/assets/voxygen/voxel/weapon/bow/shortbow/bamboo.vox new file mode 100644 index 0000000..a031aef Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/shortbow/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/shortbow/eldwood.vox b/assets/voxygen/voxel/weapon/bow/shortbow/eldwood.vox new file mode 100644 index 0000000..b5bff94 Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/shortbow/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/shortbow/frostwood.vox b/assets/voxygen/voxel/weapon/bow/shortbow/frostwood.vox new file mode 100644 index 0000000..780eaf8 Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/shortbow/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/shortbow/hardwood.vox b/assets/voxygen/voxel/weapon/bow/shortbow/hardwood.vox new file mode 100644 index 0000000..9f59a99 Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/shortbow/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/shortbow/ironwood.vox b/assets/voxygen/voxel/weapon/bow/shortbow/ironwood.vox new file mode 100644 index 0000000..e678aea Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/shortbow/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/shortbow/wood.vox b/assets/voxygen/voxel/weapon/bow/shortbow/wood.vox new file mode 100644 index 0000000..d413758 Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/shortbow/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/starter.vox b/assets/voxygen/voxel/weapon/bow/starter.vox new file mode 100644 index 0000000..6cf7761 Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/starter.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/terracotta_besieger_bow.vox b/assets/voxygen/voxel/weapon/bow/terracotta_besieger_bow.vox new file mode 100644 index 0000000..da11b1f Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/terracotta_besieger_bow.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/velorite.vox b/assets/voxygen/voxel/weapon/bow/velorite.vox new file mode 100644 index 0000000..3b8734d Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/velorite.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/warbow/bamboo.vox b/assets/voxygen/voxel/weapon/bow/warbow/bamboo.vox new file mode 100644 index 0000000..12ed41d Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/warbow/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/warbow/eldwood.vox b/assets/voxygen/voxel/weapon/bow/warbow/eldwood.vox new file mode 100644 index 0000000..368462b Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/warbow/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/warbow/frostwood.vox b/assets/voxygen/voxel/weapon/bow/warbow/frostwood.vox new file mode 100644 index 0000000..1c64643 Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/warbow/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/warbow/hardwood.vox b/assets/voxygen/voxel/weapon/bow/warbow/hardwood.vox new file mode 100644 index 0000000..008a42d Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/warbow/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/warbow/ironwood.vox b/assets/voxygen/voxel/weapon/bow/warbow/ironwood.vox new file mode 100644 index 0000000..b1abdcf Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/warbow/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/bow/warbow/wood.vox b/assets/voxygen/voxel/weapon/bow/warbow/wood.vox new file mode 100644 index 0000000..ed9e98a Binary files /dev/null and b/assets/voxygen/voxel/weapon/bow/warbow/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/axe/bloodsteel.vox b/assets/voxygen/voxel/weapon/component/axe/axe/bloodsteel.vox new file mode 100644 index 0000000..8ef0ddb Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/axe/bloodsteel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/axe/bronze.vox b/assets/voxygen/voxel/weapon/component/axe/axe/bronze.vox new file mode 100644 index 0000000..b3329ea Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/axe/bronze.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/axe/cobalt.vox b/assets/voxygen/voxel/weapon/component/axe/axe/cobalt.vox new file mode 100644 index 0000000..cd8454b Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/axe/cobalt.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/axe/iron.vox b/assets/voxygen/voxel/weapon/component/axe/axe/iron.vox new file mode 100644 index 0000000..e7a4875 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/axe/iron.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/axe/orichalcum.vox b/assets/voxygen/voxel/weapon/component/axe/axe/orichalcum.vox new file mode 100644 index 0000000..c3d98eb Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/axe/orichalcum.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/axe/steel.vox b/assets/voxygen/voxel/weapon/component/axe/axe/steel.vox new file mode 100644 index 0000000..a4617b1 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/axe/steel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/battleaxe/bloodsteel.vox b/assets/voxygen/voxel/weapon/component/axe/battleaxe/bloodsteel.vox new file mode 100644 index 0000000..75d6f39 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/battleaxe/bloodsteel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/battleaxe/bronze.vox b/assets/voxygen/voxel/weapon/component/axe/battleaxe/bronze.vox new file mode 100644 index 0000000..b068655 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/battleaxe/bronze.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/battleaxe/cobalt.vox b/assets/voxygen/voxel/weapon/component/axe/battleaxe/cobalt.vox new file mode 100644 index 0000000..f483bff Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/battleaxe/cobalt.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/battleaxe/iron.vox b/assets/voxygen/voxel/weapon/component/axe/battleaxe/iron.vox new file mode 100644 index 0000000..cd78768 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/battleaxe/iron.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/battleaxe/orichalcum.vox b/assets/voxygen/voxel/weapon/component/axe/battleaxe/orichalcum.vox new file mode 100644 index 0000000..594f0bc Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/battleaxe/orichalcum.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/battleaxe/steel.vox b/assets/voxygen/voxel/weapon/component/axe/battleaxe/steel.vox new file mode 100644 index 0000000..c7f9605 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/battleaxe/steel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/greataxe/bloodsteel.vox b/assets/voxygen/voxel/weapon/component/axe/greataxe/bloodsteel.vox new file mode 100644 index 0000000..a0c2fec Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/greataxe/bloodsteel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/greataxe/bronze.vox b/assets/voxygen/voxel/weapon/component/axe/greataxe/bronze.vox new file mode 100644 index 0000000..e184544 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/greataxe/bronze.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/greataxe/cobalt.vox b/assets/voxygen/voxel/weapon/component/axe/greataxe/cobalt.vox new file mode 100644 index 0000000..e96056f Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/greataxe/cobalt.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/greataxe/iron.vox b/assets/voxygen/voxel/weapon/component/axe/greataxe/iron.vox new file mode 100644 index 0000000..f55ea26 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/greataxe/iron.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/greataxe/orichalcum.vox b/assets/voxygen/voxel/weapon/component/axe/greataxe/orichalcum.vox new file mode 100644 index 0000000..80b219b Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/greataxe/orichalcum.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/greataxe/steel.vox b/assets/voxygen/voxel/weapon/component/axe/greataxe/steel.vox new file mode 100644 index 0000000..ff35fea Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/greataxe/steel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/haft/long.vox b/assets/voxygen/voxel/weapon/component/axe/haft/long.vox new file mode 100644 index 0000000..941fad6 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/haft/long.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/haft/medium.vox b/assets/voxygen/voxel/weapon/component/axe/haft/medium.vox new file mode 100644 index 0000000..885c127 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/haft/medium.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/haft/short.vox b/assets/voxygen/voxel/weapon/component/axe/haft/short.vox new file mode 100644 index 0000000..1869a44 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/haft/short.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/jagged/bloodsteel.vox b/assets/voxygen/voxel/weapon/component/axe/jagged/bloodsteel.vox new file mode 100644 index 0000000..463630e Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/jagged/bloodsteel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/jagged/bronze.vox b/assets/voxygen/voxel/weapon/component/axe/jagged/bronze.vox new file mode 100644 index 0000000..a6d4ca9 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/jagged/bronze.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/jagged/cobalt.vox b/assets/voxygen/voxel/weapon/component/axe/jagged/cobalt.vox new file mode 100644 index 0000000..fa0fc80 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/jagged/cobalt.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/jagged/iron.vox b/assets/voxygen/voxel/weapon/component/axe/jagged/iron.vox new file mode 100644 index 0000000..7f76f63 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/jagged/iron.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/jagged/orichalcum.vox b/assets/voxygen/voxel/weapon/component/axe/jagged/orichalcum.vox new file mode 100644 index 0000000..6d19658 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/jagged/orichalcum.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/jagged/steel.vox b/assets/voxygen/voxel/weapon/component/axe/jagged/steel.vox new file mode 100644 index 0000000..face14f Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/jagged/steel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/labrys/bloodsteel.vox b/assets/voxygen/voxel/weapon/component/axe/labrys/bloodsteel.vox new file mode 100644 index 0000000..29c64e7 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/labrys/bloodsteel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/labrys/bronze.vox b/assets/voxygen/voxel/weapon/component/axe/labrys/bronze.vox new file mode 100644 index 0000000..f82d17c Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/labrys/bronze.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/labrys/cobalt.vox b/assets/voxygen/voxel/weapon/component/axe/labrys/cobalt.vox new file mode 100644 index 0000000..684b8a6 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/labrys/cobalt.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/labrys/iron.vox b/assets/voxygen/voxel/weapon/component/axe/labrys/iron.vox new file mode 100644 index 0000000..0e52e1e Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/labrys/iron.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/labrys/orichalcum.vox b/assets/voxygen/voxel/weapon/component/axe/labrys/orichalcum.vox new file mode 100644 index 0000000..ae2cee8 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/labrys/orichalcum.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/labrys/steel.vox b/assets/voxygen/voxel/weapon/component/axe/labrys/steel.vox new file mode 100644 index 0000000..3485080 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/labrys/steel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/ornate/bloodsteel.vox b/assets/voxygen/voxel/weapon/component/axe/ornate/bloodsteel.vox new file mode 100644 index 0000000..c5abc5c Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/ornate/bloodsteel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/ornate/bronze.vox b/assets/voxygen/voxel/weapon/component/axe/ornate/bronze.vox new file mode 100644 index 0000000..c290f90 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/ornate/bronze.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/ornate/cobalt.vox b/assets/voxygen/voxel/weapon/component/axe/ornate/cobalt.vox new file mode 100644 index 0000000..86313af Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/ornate/cobalt.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/ornate/iron.vox b/assets/voxygen/voxel/weapon/component/axe/ornate/iron.vox new file mode 100644 index 0000000..db13158 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/ornate/iron.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/ornate/orichalcum.vox b/assets/voxygen/voxel/weapon/component/axe/ornate/orichalcum.vox new file mode 100644 index 0000000..e609469 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/ornate/orichalcum.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/ornate/steel.vox b/assets/voxygen/voxel/weapon/component/axe/ornate/steel.vox new file mode 100644 index 0000000..e460400 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/ornate/steel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/poleaxe/bloodsteel.vox b/assets/voxygen/voxel/weapon/component/axe/poleaxe/bloodsteel.vox new file mode 100644 index 0000000..88b3252 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/poleaxe/bloodsteel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/poleaxe/bronze.vox b/assets/voxygen/voxel/weapon/component/axe/poleaxe/bronze.vox new file mode 100644 index 0000000..b382978 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/poleaxe/bronze.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/poleaxe/cobalt.vox b/assets/voxygen/voxel/weapon/component/axe/poleaxe/cobalt.vox new file mode 100644 index 0000000..8dfddbd Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/poleaxe/cobalt.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/poleaxe/iron.vox b/assets/voxygen/voxel/weapon/component/axe/poleaxe/iron.vox new file mode 100644 index 0000000..10a585e Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/poleaxe/iron.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/poleaxe/orichalcum.vox b/assets/voxygen/voxel/weapon/component/axe/poleaxe/orichalcum.vox new file mode 100644 index 0000000..c31945e Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/poleaxe/orichalcum.vox differ diff --git a/assets/voxygen/voxel/weapon/component/axe/poleaxe/steel.vox b/assets/voxygen/voxel/weapon/component/axe/poleaxe/steel.vox new file mode 100644 index 0000000..741f512 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/axe/poleaxe/steel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/bow/bamboo.vox b/assets/voxygen/voxel/weapon/component/bow/bow/bamboo.vox new file mode 100644 index 0000000..77be7fa Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/bow/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/bow/eldwood.vox b/assets/voxygen/voxel/weapon/component/bow/bow/eldwood.vox new file mode 100644 index 0000000..1dd0b19 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/bow/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/bow/frostwood.vox b/assets/voxygen/voxel/weapon/component/bow/bow/frostwood.vox new file mode 100644 index 0000000..fa19687 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/bow/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/bow/hardwood.vox b/assets/voxygen/voxel/weapon/component/bow/bow/hardwood.vox new file mode 100644 index 0000000..2e1e604 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/bow/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/bow/ironwood.vox b/assets/voxygen/voxel/weapon/component/bow/bow/ironwood.vox new file mode 100644 index 0000000..1350e77 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/bow/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/bow/wood.vox b/assets/voxygen/voxel/weapon/component/bow/bow/wood.vox new file mode 100644 index 0000000..97f2d52 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/bow/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/composite/bamboo.vox b/assets/voxygen/voxel/weapon/component/bow/composite/bamboo.vox new file mode 100644 index 0000000..496e546 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/composite/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/composite/eldwood.vox b/assets/voxygen/voxel/weapon/component/bow/composite/eldwood.vox new file mode 100644 index 0000000..9d43787 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/composite/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/composite/frostwood.vox b/assets/voxygen/voxel/weapon/component/bow/composite/frostwood.vox new file mode 100644 index 0000000..bcfb8fd Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/composite/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/composite/hardwood.vox b/assets/voxygen/voxel/weapon/component/bow/composite/hardwood.vox new file mode 100644 index 0000000..52b49e0 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/composite/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/composite/ironwood.vox b/assets/voxygen/voxel/weapon/component/bow/composite/ironwood.vox new file mode 100644 index 0000000..9cedc16 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/composite/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/composite/wood.vox b/assets/voxygen/voxel/weapon/component/bow/composite/wood.vox new file mode 100644 index 0000000..90268ba Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/composite/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/greatbow/bamboo.vox b/assets/voxygen/voxel/weapon/component/bow/greatbow/bamboo.vox new file mode 100644 index 0000000..6265c47 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/greatbow/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/greatbow/eldwood.vox b/assets/voxygen/voxel/weapon/component/bow/greatbow/eldwood.vox new file mode 100644 index 0000000..05ab4df Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/greatbow/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/greatbow/frostwood.vox b/assets/voxygen/voxel/weapon/component/bow/greatbow/frostwood.vox new file mode 100644 index 0000000..a2fc36e Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/greatbow/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/greatbow/hardwood.vox b/assets/voxygen/voxel/weapon/component/bow/greatbow/hardwood.vox new file mode 100644 index 0000000..bc57f6f Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/greatbow/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/greatbow/ironwood.vox b/assets/voxygen/voxel/weapon/component/bow/greatbow/ironwood.vox new file mode 100644 index 0000000..b79083a Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/greatbow/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/greatbow/wood.vox b/assets/voxygen/voxel/weapon/component/bow/greatbow/wood.vox new file mode 100644 index 0000000..0b782e7 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/greatbow/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/grip/long.vox b/assets/voxygen/voxel/weapon/component/bow/grip/long.vox new file mode 100644 index 0000000..c554fee Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/grip/long.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/grip/medium.vox b/assets/voxygen/voxel/weapon/component/bow/grip/medium.vox new file mode 100644 index 0000000..03924fd Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/grip/medium.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/grip/short.vox b/assets/voxygen/voxel/weapon/component/bow/grip/short.vox new file mode 100644 index 0000000..7ff5bd4 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/grip/short.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/longbow/bamboo.vox b/assets/voxygen/voxel/weapon/component/bow/longbow/bamboo.vox new file mode 100644 index 0000000..7589d2d Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/longbow/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/longbow/eldwood.vox b/assets/voxygen/voxel/weapon/component/bow/longbow/eldwood.vox new file mode 100644 index 0000000..e777233 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/longbow/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/longbow/frostwood.vox b/assets/voxygen/voxel/weapon/component/bow/longbow/frostwood.vox new file mode 100644 index 0000000..cd323ab Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/longbow/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/longbow/hardwood.vox b/assets/voxygen/voxel/weapon/component/bow/longbow/hardwood.vox new file mode 100644 index 0000000..573e2eb Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/longbow/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/longbow/ironwood.vox b/assets/voxygen/voxel/weapon/component/bow/longbow/ironwood.vox new file mode 100644 index 0000000..237f4d1 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/longbow/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/longbow/wood.vox b/assets/voxygen/voxel/weapon/component/bow/longbow/wood.vox new file mode 100644 index 0000000..0426cbb Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/longbow/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/ornate/bamboo.vox b/assets/voxygen/voxel/weapon/component/bow/ornate/bamboo.vox new file mode 100644 index 0000000..ee6fc11 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/ornate/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/ornate/eldwood.vox b/assets/voxygen/voxel/weapon/component/bow/ornate/eldwood.vox new file mode 100644 index 0000000..2a8e6aa Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/ornate/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/ornate/frostwood.vox b/assets/voxygen/voxel/weapon/component/bow/ornate/frostwood.vox new file mode 100644 index 0000000..11108b2 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/ornate/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/ornate/hardwood.vox b/assets/voxygen/voxel/weapon/component/bow/ornate/hardwood.vox new file mode 100644 index 0000000..71aae04 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/ornate/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/ornate/ironwood.vox b/assets/voxygen/voxel/weapon/component/bow/ornate/ironwood.vox new file mode 100644 index 0000000..08fef70 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/ornate/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/ornate/wood.vox b/assets/voxygen/voxel/weapon/component/bow/ornate/wood.vox new file mode 100644 index 0000000..b1c83cb Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/ornate/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/shortbow/bamboo.vox b/assets/voxygen/voxel/weapon/component/bow/shortbow/bamboo.vox new file mode 100644 index 0000000..e1a0276 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/shortbow/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/shortbow/eldwood.vox b/assets/voxygen/voxel/weapon/component/bow/shortbow/eldwood.vox new file mode 100644 index 0000000..dca9442 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/shortbow/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/shortbow/frostwood.vox b/assets/voxygen/voxel/weapon/component/bow/shortbow/frostwood.vox new file mode 100644 index 0000000..ef7efa1 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/shortbow/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/shortbow/hardwood.vox b/assets/voxygen/voxel/weapon/component/bow/shortbow/hardwood.vox new file mode 100644 index 0000000..b2c913a Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/shortbow/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/shortbow/ironwood.vox b/assets/voxygen/voxel/weapon/component/bow/shortbow/ironwood.vox new file mode 100644 index 0000000..e171eb3 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/shortbow/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/shortbow/wood.vox b/assets/voxygen/voxel/weapon/component/bow/shortbow/wood.vox new file mode 100644 index 0000000..3606e68 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/shortbow/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/warbow/bamboo.vox b/assets/voxygen/voxel/weapon/component/bow/warbow/bamboo.vox new file mode 100644 index 0000000..2036eb5 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/warbow/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/warbow/eldwood.vox b/assets/voxygen/voxel/weapon/component/bow/warbow/eldwood.vox new file mode 100644 index 0000000..d40b355 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/warbow/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/warbow/frostwood.vox b/assets/voxygen/voxel/weapon/component/bow/warbow/frostwood.vox new file mode 100644 index 0000000..fdfd378 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/warbow/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/warbow/hardwood.vox b/assets/voxygen/voxel/weapon/component/bow/warbow/hardwood.vox new file mode 100644 index 0000000..283cfe5 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/warbow/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/warbow/ironwood.vox b/assets/voxygen/voxel/weapon/component/bow/warbow/ironwood.vox new file mode 100644 index 0000000..20d4ac4 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/warbow/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/bow/warbow/wood.vox b/assets/voxygen/voxel/weapon/component/bow/warbow/wood.vox new file mode 100644 index 0000000..c437455 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/bow/warbow/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/greathammer/bloodsteel.vox b/assets/voxygen/voxel/weapon/component/hammer/greathammer/bloodsteel.vox new file mode 100644 index 0000000..dadf31f Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/greathammer/bloodsteel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/greathammer/bronze.vox b/assets/voxygen/voxel/weapon/component/hammer/greathammer/bronze.vox new file mode 100644 index 0000000..be688ef Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/greathammer/bronze.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/greathammer/cobalt.vox b/assets/voxygen/voxel/weapon/component/hammer/greathammer/cobalt.vox new file mode 100644 index 0000000..3a00d98 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/greathammer/cobalt.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/greathammer/iron.vox b/assets/voxygen/voxel/weapon/component/hammer/greathammer/iron.vox new file mode 100644 index 0000000..11cd9ae Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/greathammer/iron.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/greathammer/orichalcum.vox b/assets/voxygen/voxel/weapon/component/hammer/greathammer/orichalcum.vox new file mode 100644 index 0000000..a498710 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/greathammer/orichalcum.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/greathammer/steel.vox b/assets/voxygen/voxel/weapon/component/hammer/greathammer/steel.vox new file mode 100644 index 0000000..b219f09 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/greathammer/steel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/greatmace/bloodsteel.vox b/assets/voxygen/voxel/weapon/component/hammer/greatmace/bloodsteel.vox new file mode 100644 index 0000000..4d91922 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/greatmace/bloodsteel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/greatmace/bronze.vox b/assets/voxygen/voxel/weapon/component/hammer/greatmace/bronze.vox new file mode 100644 index 0000000..fca55c1 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/greatmace/bronze.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/greatmace/cobalt.vox b/assets/voxygen/voxel/weapon/component/hammer/greatmace/cobalt.vox new file mode 100644 index 0000000..eb9d7bb Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/greatmace/cobalt.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/greatmace/iron.vox b/assets/voxygen/voxel/weapon/component/hammer/greatmace/iron.vox new file mode 100644 index 0000000..f2e4ee5 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/greatmace/iron.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/greatmace/orichalcum.vox b/assets/voxygen/voxel/weapon/component/hammer/greatmace/orichalcum.vox new file mode 100644 index 0000000..3ec4c86 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/greatmace/orichalcum.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/greatmace/steel.vox b/assets/voxygen/voxel/weapon/component/hammer/greatmace/steel.vox new file mode 100644 index 0000000..6d1115d Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/greatmace/steel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/hammer/bloodsteel.vox b/assets/voxygen/voxel/weapon/component/hammer/hammer/bloodsteel.vox new file mode 100644 index 0000000..9abc8e3 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/hammer/bloodsteel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/hammer/bronze.vox b/assets/voxygen/voxel/weapon/component/hammer/hammer/bronze.vox new file mode 100644 index 0000000..248f990 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/hammer/bronze.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/hammer/cobalt.vox b/assets/voxygen/voxel/weapon/component/hammer/hammer/cobalt.vox new file mode 100644 index 0000000..216e06d Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/hammer/cobalt.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/hammer/iron.vox b/assets/voxygen/voxel/weapon/component/hammer/hammer/iron.vox new file mode 100644 index 0000000..ed888fa Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/hammer/iron.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/hammer/orichalcum.vox b/assets/voxygen/voxel/weapon/component/hammer/hammer/orichalcum.vox new file mode 100644 index 0000000..0400927 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/hammer/orichalcum.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/hammer/steel.vox b/assets/voxygen/voxel/weapon/component/hammer/hammer/steel.vox new file mode 100644 index 0000000..326edbf Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/hammer/steel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/maul/bloodsteel.vox b/assets/voxygen/voxel/weapon/component/hammer/maul/bloodsteel.vox new file mode 100644 index 0000000..8b9bf86 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/maul/bloodsteel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/maul/bronze.vox b/assets/voxygen/voxel/weapon/component/hammer/maul/bronze.vox new file mode 100644 index 0000000..627c806 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/maul/bronze.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/maul/cobalt.vox b/assets/voxygen/voxel/weapon/component/hammer/maul/cobalt.vox new file mode 100644 index 0000000..73c7d20 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/maul/cobalt.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/maul/iron.vox b/assets/voxygen/voxel/weapon/component/hammer/maul/iron.vox new file mode 100644 index 0000000..fd00c33 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/maul/iron.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/maul/orichalcum.vox b/assets/voxygen/voxel/weapon/component/hammer/maul/orichalcum.vox new file mode 100644 index 0000000..75f8839 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/maul/orichalcum.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/maul/steel.vox b/assets/voxygen/voxel/weapon/component/hammer/maul/steel.vox new file mode 100644 index 0000000..a8a25dd Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/maul/steel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/ornate/bloodsteel.vox b/assets/voxygen/voxel/weapon/component/hammer/ornate/bloodsteel.vox new file mode 100644 index 0000000..0553599 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/ornate/bloodsteel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/ornate/bronze.vox b/assets/voxygen/voxel/weapon/component/hammer/ornate/bronze.vox new file mode 100644 index 0000000..735ed6f Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/ornate/bronze.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/ornate/cobalt.vox b/assets/voxygen/voxel/weapon/component/hammer/ornate/cobalt.vox new file mode 100644 index 0000000..8f3ea2c Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/ornate/cobalt.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/ornate/iron.vox b/assets/voxygen/voxel/weapon/component/hammer/ornate/iron.vox new file mode 100644 index 0000000..3819267 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/ornate/iron.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/ornate/orichalcum.vox b/assets/voxygen/voxel/weapon/component/hammer/ornate/orichalcum.vox new file mode 100644 index 0000000..5a91511 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/ornate/orichalcum.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/ornate/steel.vox b/assets/voxygen/voxel/weapon/component/hammer/ornate/steel.vox new file mode 100644 index 0000000..c475925 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/ornate/steel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/shaft/long.vox b/assets/voxygen/voxel/weapon/component/hammer/shaft/long.vox new file mode 100644 index 0000000..0a9b68a Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/shaft/long.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/shaft/medium.vox b/assets/voxygen/voxel/weapon/component/hammer/shaft/medium.vox new file mode 100644 index 0000000..2eaadcd Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/shaft/medium.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/shaft/short.vox b/assets/voxygen/voxel/weapon/component/hammer/shaft/short.vox new file mode 100644 index 0000000..fc1a410 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/shaft/short.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/spikedmace/bloodsteel.vox b/assets/voxygen/voxel/weapon/component/hammer/spikedmace/bloodsteel.vox new file mode 100644 index 0000000..4f702bd Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/spikedmace/bloodsteel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/spikedmace/bronze.vox b/assets/voxygen/voxel/weapon/component/hammer/spikedmace/bronze.vox new file mode 100644 index 0000000..819a95b Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/spikedmace/bronze.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/spikedmace/cobalt.vox b/assets/voxygen/voxel/weapon/component/hammer/spikedmace/cobalt.vox new file mode 100644 index 0000000..3545841 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/spikedmace/cobalt.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/spikedmace/iron.vox b/assets/voxygen/voxel/weapon/component/hammer/spikedmace/iron.vox new file mode 100644 index 0000000..123e40e Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/spikedmace/iron.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/spikedmace/orichalcum.vox b/assets/voxygen/voxel/weapon/component/hammer/spikedmace/orichalcum.vox new file mode 100644 index 0000000..c638b04 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/spikedmace/orichalcum.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/spikedmace/steel.vox b/assets/voxygen/voxel/weapon/component/hammer/spikedmace/steel.vox new file mode 100644 index 0000000..29e36f8 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/spikedmace/steel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/warhammer/bloodsteel.vox b/assets/voxygen/voxel/weapon/component/hammer/warhammer/bloodsteel.vox new file mode 100644 index 0000000..11c8dfc Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/warhammer/bloodsteel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/warhammer/bronze.vox b/assets/voxygen/voxel/weapon/component/hammer/warhammer/bronze.vox new file mode 100644 index 0000000..ee43026 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/warhammer/bronze.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/warhammer/cobalt.vox b/assets/voxygen/voxel/weapon/component/hammer/warhammer/cobalt.vox new file mode 100644 index 0000000..5fb933d Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/warhammer/cobalt.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/warhammer/iron.vox b/assets/voxygen/voxel/weapon/component/hammer/warhammer/iron.vox new file mode 100644 index 0000000..3784971 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/warhammer/iron.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/warhammer/orichalcum.vox b/assets/voxygen/voxel/weapon/component/hammer/warhammer/orichalcum.vox new file mode 100644 index 0000000..dcfc234 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/warhammer/orichalcum.vox differ diff --git a/assets/voxygen/voxel/weapon/component/hammer/warhammer/steel.vox b/assets/voxygen/voxel/weapon/component/hammer/warhammer/steel.vox new file mode 100644 index 0000000..58c84c1 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/hammer/warhammer/steel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/arbor/bamboo.vox b/assets/voxygen/voxel/weapon/component/sceptre/arbor/bamboo.vox new file mode 100644 index 0000000..0cf74cf Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/arbor/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/arbor/eldwood.vox b/assets/voxygen/voxel/weapon/component/sceptre/arbor/eldwood.vox new file mode 100644 index 0000000..b01a3cf Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/arbor/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/arbor/frostwood.vox b/assets/voxygen/voxel/weapon/component/sceptre/arbor/frostwood.vox new file mode 100644 index 0000000..84f0997 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/arbor/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/arbor/hardwood.vox b/assets/voxygen/voxel/weapon/component/sceptre/arbor/hardwood.vox new file mode 100644 index 0000000..2b7986e Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/arbor/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/arbor/ironwood.vox b/assets/voxygen/voxel/weapon/component/sceptre/arbor/ironwood.vox new file mode 100644 index 0000000..b8254b1 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/arbor/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/arbor/wood.vox b/assets/voxygen/voxel/weapon/component/sceptre/arbor/wood.vox new file mode 100644 index 0000000..bd5cd41 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/arbor/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/cane/bamboo.vox b/assets/voxygen/voxel/weapon/component/sceptre/cane/bamboo.vox new file mode 100644 index 0000000..eab8bec Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/cane/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/cane/eldwood.vox b/assets/voxygen/voxel/weapon/component/sceptre/cane/eldwood.vox new file mode 100644 index 0000000..830c2b0 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/cane/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/cane/frostwood.vox b/assets/voxygen/voxel/weapon/component/sceptre/cane/frostwood.vox new file mode 100644 index 0000000..55c62ca Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/cane/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/cane/hardwood.vox b/assets/voxygen/voxel/weapon/component/sceptre/cane/hardwood.vox new file mode 100644 index 0000000..698bdd2 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/cane/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/cane/ironwood.vox b/assets/voxygen/voxel/weapon/component/sceptre/cane/ironwood.vox new file mode 100644 index 0000000..04018ed Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/cane/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/cane/wood.vox b/assets/voxygen/voxel/weapon/component/sceptre/cane/wood.vox new file mode 100644 index 0000000..aeb518b Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/cane/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/core/heavy.vox b/assets/voxygen/voxel/weapon/component/sceptre/core/heavy.vox new file mode 100644 index 0000000..6cfdff7 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/core/heavy.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/core/light.vox b/assets/voxygen/voxel/weapon/component/sceptre/core/light.vox new file mode 100644 index 0000000..2e54c5a Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/core/light.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/core/medium.vox b/assets/voxygen/voxel/weapon/component/sceptre/core/medium.vox new file mode 100644 index 0000000..38361c4 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/core/medium.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/crook/bamboo.vox b/assets/voxygen/voxel/weapon/component/sceptre/crook/bamboo.vox new file mode 100644 index 0000000..a68d025 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/crook/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/crook/eldwood.vox b/assets/voxygen/voxel/weapon/component/sceptre/crook/eldwood.vox new file mode 100644 index 0000000..44968fd Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/crook/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/crook/frostwood.vox b/assets/voxygen/voxel/weapon/component/sceptre/crook/frostwood.vox new file mode 100644 index 0000000..1821354 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/crook/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/crook/hardwood.vox b/assets/voxygen/voxel/weapon/component/sceptre/crook/hardwood.vox new file mode 100644 index 0000000..110a5d7 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/crook/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/crook/ironwood.vox b/assets/voxygen/voxel/weapon/component/sceptre/crook/ironwood.vox new file mode 100644 index 0000000..41bc5ce Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/crook/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/crook/wood.vox b/assets/voxygen/voxel/weapon/component/sceptre/crook/wood.vox new file mode 100644 index 0000000..5c065fc Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/crook/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/crozier/bamboo.vox b/assets/voxygen/voxel/weapon/component/sceptre/crozier/bamboo.vox new file mode 100644 index 0000000..931d81d Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/crozier/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/crozier/eldwood.vox b/assets/voxygen/voxel/weapon/component/sceptre/crozier/eldwood.vox new file mode 100644 index 0000000..0c15255 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/crozier/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/crozier/frostwood.vox b/assets/voxygen/voxel/weapon/component/sceptre/crozier/frostwood.vox new file mode 100644 index 0000000..edc81fd Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/crozier/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/crozier/hardwood.vox b/assets/voxygen/voxel/weapon/component/sceptre/crozier/hardwood.vox new file mode 100644 index 0000000..88a0c57 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/crozier/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/crozier/ironwood.vox b/assets/voxygen/voxel/weapon/component/sceptre/crozier/ironwood.vox new file mode 100644 index 0000000..52cdf4d Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/crozier/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/crozier/wood.vox b/assets/voxygen/voxel/weapon/component/sceptre/crozier/wood.vox new file mode 100644 index 0000000..80eaa74 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/crozier/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/grandsceptre/bamboo.vox b/assets/voxygen/voxel/weapon/component/sceptre/grandsceptre/bamboo.vox new file mode 100644 index 0000000..bf365ac Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/grandsceptre/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/grandsceptre/eldwood.vox b/assets/voxygen/voxel/weapon/component/sceptre/grandsceptre/eldwood.vox new file mode 100644 index 0000000..bee4939 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/grandsceptre/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/grandsceptre/frostwood.vox b/assets/voxygen/voxel/weapon/component/sceptre/grandsceptre/frostwood.vox new file mode 100644 index 0000000..1c59942 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/grandsceptre/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/grandsceptre/hardwood.vox b/assets/voxygen/voxel/weapon/component/sceptre/grandsceptre/hardwood.vox new file mode 100644 index 0000000..d4107c2 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/grandsceptre/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/grandsceptre/ironwood.vox b/assets/voxygen/voxel/weapon/component/sceptre/grandsceptre/ironwood.vox new file mode 100644 index 0000000..7d6da90 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/grandsceptre/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/grandsceptre/wood.vox b/assets/voxygen/voxel/weapon/component/sceptre/grandsceptre/wood.vox new file mode 100644 index 0000000..1c0f6f0 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/grandsceptre/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/ornate/bamboo.vox b/assets/voxygen/voxel/weapon/component/sceptre/ornate/bamboo.vox new file mode 100644 index 0000000..f841c8c Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/ornate/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/ornate/eldwood.vox b/assets/voxygen/voxel/weapon/component/sceptre/ornate/eldwood.vox new file mode 100644 index 0000000..3b31361 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/ornate/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/ornate/frostwood.vox b/assets/voxygen/voxel/weapon/component/sceptre/ornate/frostwood.vox new file mode 100644 index 0000000..0615f9a Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/ornate/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/ornate/hardwood.vox b/assets/voxygen/voxel/weapon/component/sceptre/ornate/hardwood.vox new file mode 100644 index 0000000..b47afcb Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/ornate/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/ornate/ironwood.vox b/assets/voxygen/voxel/weapon/component/sceptre/ornate/ironwood.vox new file mode 100644 index 0000000..2b120e5 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/ornate/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/ornate/wood.vox b/assets/voxygen/voxel/weapon/component/sceptre/ornate/wood.vox new file mode 100644 index 0000000..37dfc33 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/ornate/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/sceptre/bamboo.vox b/assets/voxygen/voxel/weapon/component/sceptre/sceptre/bamboo.vox new file mode 100644 index 0000000..d2b26c8 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/sceptre/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/sceptre/eldwood.vox b/assets/voxygen/voxel/weapon/component/sceptre/sceptre/eldwood.vox new file mode 100644 index 0000000..6e17586 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/sceptre/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/sceptre/frostwood.vox b/assets/voxygen/voxel/weapon/component/sceptre/sceptre/frostwood.vox new file mode 100644 index 0000000..33d2271 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/sceptre/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/sceptre/hardwood.vox b/assets/voxygen/voxel/weapon/component/sceptre/sceptre/hardwood.vox new file mode 100644 index 0000000..9edb455 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/sceptre/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/sceptre/ironwood.vox b/assets/voxygen/voxel/weapon/component/sceptre/sceptre/ironwood.vox new file mode 100644 index 0000000..1b5d9c1 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/sceptre/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sceptre/sceptre/wood.vox b/assets/voxygen/voxel/weapon/component/sceptre/sceptre/wood.vox new file mode 100644 index 0000000..7b61704 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sceptre/sceptre/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/brand/bamboo.vox b/assets/voxygen/voxel/weapon/component/staff/brand/bamboo.vox new file mode 100644 index 0000000..2d0b66b Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/brand/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/brand/eldwood.vox b/assets/voxygen/voxel/weapon/component/staff/brand/eldwood.vox new file mode 100644 index 0000000..edac879 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/brand/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/brand/frostwood.vox b/assets/voxygen/voxel/weapon/component/staff/brand/frostwood.vox new file mode 100644 index 0000000..ead027b Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/brand/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/brand/hardwood.vox b/assets/voxygen/voxel/weapon/component/staff/brand/hardwood.vox new file mode 100644 index 0000000..54fb0be Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/brand/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/brand/ironwood.vox b/assets/voxygen/voxel/weapon/component/staff/brand/ironwood.vox new file mode 100644 index 0000000..20ebd42 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/brand/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/brand/wood.vox b/assets/voxygen/voxel/weapon/component/staff/brand/wood.vox new file mode 100644 index 0000000..c8352a7 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/brand/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/core/heavy.vox b/assets/voxygen/voxel/weapon/component/staff/core/heavy.vox new file mode 100644 index 0000000..e43c5f0 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/core/heavy.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/core/light.vox b/assets/voxygen/voxel/weapon/component/staff/core/light.vox new file mode 100644 index 0000000..5d3d223 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/core/light.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/core/medium.vox b/assets/voxygen/voxel/weapon/component/staff/core/medium.vox new file mode 100644 index 0000000..1406d8e Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/core/medium.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/grandstaff/bamboo.vox b/assets/voxygen/voxel/weapon/component/staff/grandstaff/bamboo.vox new file mode 100644 index 0000000..a83f997 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/grandstaff/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/grandstaff/eldwood.vox b/assets/voxygen/voxel/weapon/component/staff/grandstaff/eldwood.vox new file mode 100644 index 0000000..de43980 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/grandstaff/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/grandstaff/frostwood.vox b/assets/voxygen/voxel/weapon/component/staff/grandstaff/frostwood.vox new file mode 100644 index 0000000..639877f Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/grandstaff/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/grandstaff/hardwood.vox b/assets/voxygen/voxel/weapon/component/staff/grandstaff/hardwood.vox new file mode 100644 index 0000000..6c73448 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/grandstaff/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/grandstaff/ironwood.vox b/assets/voxygen/voxel/weapon/component/staff/grandstaff/ironwood.vox new file mode 100644 index 0000000..5e59f35 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/grandstaff/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/grandstaff/wood.vox b/assets/voxygen/voxel/weapon/component/staff/grandstaff/wood.vox new file mode 100644 index 0000000..228098d Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/grandstaff/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/longpole/bamboo.vox b/assets/voxygen/voxel/weapon/component/staff/longpole/bamboo.vox new file mode 100644 index 0000000..bc5f242 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/longpole/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/longpole/eldwood.vox b/assets/voxygen/voxel/weapon/component/staff/longpole/eldwood.vox new file mode 100644 index 0000000..14abeef Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/longpole/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/longpole/frostwood.vox b/assets/voxygen/voxel/weapon/component/staff/longpole/frostwood.vox new file mode 100644 index 0000000..abc630e Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/longpole/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/longpole/hardwood.vox b/assets/voxygen/voxel/weapon/component/staff/longpole/hardwood.vox new file mode 100644 index 0000000..b6fc538 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/longpole/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/longpole/ironwood.vox b/assets/voxygen/voxel/weapon/component/staff/longpole/ironwood.vox new file mode 100644 index 0000000..07311e2 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/longpole/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/longpole/wood.vox b/assets/voxygen/voxel/weapon/component/staff/longpole/wood.vox new file mode 100644 index 0000000..9fb9020 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/longpole/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/ornate/bamboo.vox b/assets/voxygen/voxel/weapon/component/staff/ornate/bamboo.vox new file mode 100644 index 0000000..cf5d269 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/ornate/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/ornate/eldwood.vox b/assets/voxygen/voxel/weapon/component/staff/ornate/eldwood.vox new file mode 100644 index 0000000..7df4c24 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/ornate/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/ornate/frostwood.vox b/assets/voxygen/voxel/weapon/component/staff/ornate/frostwood.vox new file mode 100644 index 0000000..8f24cc4 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/ornate/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/ornate/hardwood.vox b/assets/voxygen/voxel/weapon/component/staff/ornate/hardwood.vox new file mode 100644 index 0000000..708f50c Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/ornate/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/ornate/ironwood.vox b/assets/voxygen/voxel/weapon/component/staff/ornate/ironwood.vox new file mode 100644 index 0000000..7655646 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/ornate/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/ornate/wood.vox b/assets/voxygen/voxel/weapon/component/staff/ornate/wood.vox new file mode 100644 index 0000000..21274d5 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/ornate/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/pole/bamboo.vox b/assets/voxygen/voxel/weapon/component/staff/pole/bamboo.vox new file mode 100644 index 0000000..6e21485 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/pole/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/pole/eldwood.vox b/assets/voxygen/voxel/weapon/component/staff/pole/eldwood.vox new file mode 100644 index 0000000..b4cae6a Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/pole/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/pole/frostwood.vox b/assets/voxygen/voxel/weapon/component/staff/pole/frostwood.vox new file mode 100644 index 0000000..cc4d05e Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/pole/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/pole/hardwood.vox b/assets/voxygen/voxel/weapon/component/staff/pole/hardwood.vox new file mode 100644 index 0000000..95ead61 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/pole/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/pole/ironwood.vox b/assets/voxygen/voxel/weapon/component/staff/pole/ironwood.vox new file mode 100644 index 0000000..bb6a9ae Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/pole/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/pole/wood.vox b/assets/voxygen/voxel/weapon/component/staff/pole/wood.vox new file mode 100644 index 0000000..c2c4f63 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/pole/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/rod/bamboo.vox b/assets/voxygen/voxel/weapon/component/staff/rod/bamboo.vox new file mode 100644 index 0000000..eff7c60 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/rod/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/rod/eldwood.vox b/assets/voxygen/voxel/weapon/component/staff/rod/eldwood.vox new file mode 100644 index 0000000..35b66df Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/rod/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/rod/frostwood.vox b/assets/voxygen/voxel/weapon/component/staff/rod/frostwood.vox new file mode 100644 index 0000000..b16b149 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/rod/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/rod/hardwood.vox b/assets/voxygen/voxel/weapon/component/staff/rod/hardwood.vox new file mode 100644 index 0000000..b1484c3 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/rod/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/rod/ironwood.vox b/assets/voxygen/voxel/weapon/component/staff/rod/ironwood.vox new file mode 100644 index 0000000..ad86e2c Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/rod/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/rod/wood.vox b/assets/voxygen/voxel/weapon/component/staff/rod/wood.vox new file mode 100644 index 0000000..b71e337 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/rod/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/staff/bamboo.vox b/assets/voxygen/voxel/weapon/component/staff/staff/bamboo.vox new file mode 100644 index 0000000..cb963e1 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/staff/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/staff/eldwood.vox b/assets/voxygen/voxel/weapon/component/staff/staff/eldwood.vox new file mode 100644 index 0000000..23b4a3d Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/staff/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/staff/frostwood.vox b/assets/voxygen/voxel/weapon/component/staff/staff/frostwood.vox new file mode 100644 index 0000000..47a01b8 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/staff/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/staff/hardwood.vox b/assets/voxygen/voxel/weapon/component/staff/staff/hardwood.vox new file mode 100644 index 0000000..6de21b8 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/staff/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/staff/ironwood.vox b/assets/voxygen/voxel/weapon/component/staff/staff/ironwood.vox new file mode 100644 index 0000000..2b5cb9e Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/staff/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/staff/staff/wood.vox b/assets/voxygen/voxel/weapon/component/staff/staff/wood.vox new file mode 100644 index 0000000..3f290df Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/staff/staff/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/greatsword/bloodsteel.vox b/assets/voxygen/voxel/weapon/component/sword/greatsword/bloodsteel.vox new file mode 100644 index 0000000..e46c3b3 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/greatsword/bloodsteel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/greatsword/bronze.vox b/assets/voxygen/voxel/weapon/component/sword/greatsword/bronze.vox new file mode 100644 index 0000000..6c8511e Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/greatsword/bronze.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/greatsword/cobalt.vox b/assets/voxygen/voxel/weapon/component/sword/greatsword/cobalt.vox new file mode 100644 index 0000000..35c179b Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/greatsword/cobalt.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/greatsword/iron.vox b/assets/voxygen/voxel/weapon/component/sword/greatsword/iron.vox new file mode 100644 index 0000000..feda540 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/greatsword/iron.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/greatsword/orichalcum.vox b/assets/voxygen/voxel/weapon/component/sword/greatsword/orichalcum.vox new file mode 100644 index 0000000..189b4bc Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/greatsword/orichalcum.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/greatsword/steel.vox b/assets/voxygen/voxel/weapon/component/sword/greatsword/steel.vox new file mode 100644 index 0000000..e897940 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/greatsword/steel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/hilt/long.vox b/assets/voxygen/voxel/weapon/component/sword/hilt/long.vox new file mode 100644 index 0000000..e9c928b Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/hilt/long.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/hilt/medium.vox b/assets/voxygen/voxel/weapon/component/sword/hilt/medium.vox new file mode 100644 index 0000000..b5ca6b8 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/hilt/medium.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/hilt/short.vox b/assets/voxygen/voxel/weapon/component/sword/hilt/short.vox new file mode 100644 index 0000000..a0cc125 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/hilt/short.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/katana/bloodsteel.vox b/assets/voxygen/voxel/weapon/component/sword/katana/bloodsteel.vox new file mode 100644 index 0000000..739b617 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/katana/bloodsteel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/katana/bronze.vox b/assets/voxygen/voxel/weapon/component/sword/katana/bronze.vox new file mode 100644 index 0000000..351f2c9 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/katana/bronze.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/katana/cobalt.vox b/assets/voxygen/voxel/weapon/component/sword/katana/cobalt.vox new file mode 100644 index 0000000..fef1215 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/katana/cobalt.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/katana/iron.vox b/assets/voxygen/voxel/weapon/component/sword/katana/iron.vox new file mode 100644 index 0000000..84e3e0b Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/katana/iron.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/katana/orichalcum.vox b/assets/voxygen/voxel/weapon/component/sword/katana/orichalcum.vox new file mode 100644 index 0000000..a512084 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/katana/orichalcum.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/katana/steel.vox b/assets/voxygen/voxel/weapon/component/sword/katana/steel.vox new file mode 100644 index 0000000..62319f4 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/katana/steel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/longsword/bloodsteel.vox b/assets/voxygen/voxel/weapon/component/sword/longsword/bloodsteel.vox new file mode 100644 index 0000000..a321ac7 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/longsword/bloodsteel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/longsword/bronze.vox b/assets/voxygen/voxel/weapon/component/sword/longsword/bronze.vox new file mode 100644 index 0000000..e100bf7 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/longsword/bronze.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/longsword/cobalt.vox b/assets/voxygen/voxel/weapon/component/sword/longsword/cobalt.vox new file mode 100644 index 0000000..8c56e9c Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/longsword/cobalt.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/longsword/iron.vox b/assets/voxygen/voxel/weapon/component/sword/longsword/iron.vox new file mode 100644 index 0000000..672ea56 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/longsword/iron.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/longsword/orichalcum.vox b/assets/voxygen/voxel/weapon/component/sword/longsword/orichalcum.vox new file mode 100644 index 0000000..93306bc Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/longsword/orichalcum.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/longsword/steel.vox b/assets/voxygen/voxel/weapon/component/sword/longsword/steel.vox new file mode 100644 index 0000000..7fa3b9b Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/longsword/steel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/ornate/bloodsteel.vox b/assets/voxygen/voxel/weapon/component/sword/ornate/bloodsteel.vox new file mode 100644 index 0000000..bd929ea Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/ornate/bloodsteel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/ornate/bronze.vox b/assets/voxygen/voxel/weapon/component/sword/ornate/bronze.vox new file mode 100644 index 0000000..acb5067 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/ornate/bronze.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/ornate/cobalt.vox b/assets/voxygen/voxel/weapon/component/sword/ornate/cobalt.vox new file mode 100644 index 0000000..129a8ba Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/ornate/cobalt.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/ornate/iron.vox b/assets/voxygen/voxel/weapon/component/sword/ornate/iron.vox new file mode 100644 index 0000000..554f240 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/ornate/iron.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/ornate/orichalcum.vox b/assets/voxygen/voxel/weapon/component/sword/ornate/orichalcum.vox new file mode 100644 index 0000000..cf3240a Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/ornate/orichalcum.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/ornate/steel.vox b/assets/voxygen/voxel/weapon/component/sword/ornate/steel.vox new file mode 100644 index 0000000..809415e Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/ornate/steel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/sabre/bloodsteel.vox b/assets/voxygen/voxel/weapon/component/sword/sabre/bloodsteel.vox new file mode 100644 index 0000000..83c6959 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/sabre/bloodsteel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/sabre/bronze.vox b/assets/voxygen/voxel/weapon/component/sword/sabre/bronze.vox new file mode 100644 index 0000000..cce5130 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/sabre/bronze.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/sabre/cobalt.vox b/assets/voxygen/voxel/weapon/component/sword/sabre/cobalt.vox new file mode 100644 index 0000000..a93520a Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/sabre/cobalt.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/sabre/iron.vox b/assets/voxygen/voxel/weapon/component/sword/sabre/iron.vox new file mode 100644 index 0000000..cf71a50 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/sabre/iron.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/sabre/orichalcum.vox b/assets/voxygen/voxel/weapon/component/sword/sabre/orichalcum.vox new file mode 100644 index 0000000..332e473 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/sabre/orichalcum.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/sabre/steel.vox b/assets/voxygen/voxel/weapon/component/sword/sabre/steel.vox new file mode 100644 index 0000000..c7f8e5f Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/sabre/steel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/sawblade/bloodsteel.vox b/assets/voxygen/voxel/weapon/component/sword/sawblade/bloodsteel.vox new file mode 100644 index 0000000..13a4a97 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/sawblade/bloodsteel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/sawblade/bronze.vox b/assets/voxygen/voxel/weapon/component/sword/sawblade/bronze.vox new file mode 100644 index 0000000..408246a Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/sawblade/bronze.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/sawblade/cobalt.vox b/assets/voxygen/voxel/weapon/component/sword/sawblade/cobalt.vox new file mode 100644 index 0000000..2a95dac Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/sawblade/cobalt.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/sawblade/iron.vox b/assets/voxygen/voxel/weapon/component/sword/sawblade/iron.vox new file mode 100644 index 0000000..07a9abe Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/sawblade/iron.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/sawblade/orichalcum.vox b/assets/voxygen/voxel/weapon/component/sword/sawblade/orichalcum.vox new file mode 100644 index 0000000..173174f Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/sawblade/orichalcum.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/sawblade/steel.vox b/assets/voxygen/voxel/weapon/component/sword/sawblade/steel.vox new file mode 100644 index 0000000..e897940 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/sawblade/steel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/zweihander/bloodsteel.vox b/assets/voxygen/voxel/weapon/component/sword/zweihander/bloodsteel.vox new file mode 100644 index 0000000..fdb3c78 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/zweihander/bloodsteel.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/zweihander/bronze.vox b/assets/voxygen/voxel/weapon/component/sword/zweihander/bronze.vox new file mode 100644 index 0000000..c0d3329 Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/zweihander/bronze.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/zweihander/cobalt.vox b/assets/voxygen/voxel/weapon/component/sword/zweihander/cobalt.vox new file mode 100644 index 0000000..ed4005f Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/zweihander/cobalt.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/zweihander/iron.vox b/assets/voxygen/voxel/weapon/component/sword/zweihander/iron.vox new file mode 100644 index 0000000..a35a33a Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/zweihander/iron.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/zweihander/orichalcum.vox b/assets/voxygen/voxel/weapon/component/sword/zweihander/orichalcum.vox new file mode 100644 index 0000000..856242a Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/zweihander/orichalcum.vox differ diff --git a/assets/voxygen/voxel/weapon/component/sword/zweihander/steel.vox b/assets/voxygen/voxel/weapon/component/sword/zweihander/steel.vox new file mode 100644 index 0000000..427aebb Binary files /dev/null and b/assets/voxygen/voxel/weapon/component/sword/zweihander/steel.vox differ diff --git a/assets/voxygen/voxel/weapon/dagger/dagger_basic-0.vox b/assets/voxygen/voxel/weapon/dagger/dagger_basic-0.vox new file mode 100644 index 0000000..e62665e Binary files /dev/null and b/assets/voxygen/voxel/weapon/dagger/dagger_basic-0.vox differ diff --git a/assets/voxygen/voxel/weapon/dagger/dagger_cult-0.vox b/assets/voxygen/voxel/weapon/dagger/dagger_cult-0.vox new file mode 100644 index 0000000..0e54e0f Binary files /dev/null and b/assets/voxygen/voxel/weapon/dagger/dagger_cult-0.vox differ diff --git a/assets/voxygen/voxel/weapon/dagger/dagger_rusty.vox b/assets/voxygen/voxel/weapon/dagger/dagger_rusty.vox new file mode 100644 index 0000000..b536a73 Binary files /dev/null and b/assets/voxygen/voxel/weapon/dagger/dagger_rusty.vox differ diff --git a/assets/voxygen/voxel/weapon/debug_wand-0.vox b/assets/voxygen/voxel/weapon/debug_wand-0.vox new file mode 100644 index 0000000..cec4972 Binary files /dev/null and b/assets/voxygen/voxel/weapon/debug_wand-0.vox differ diff --git a/assets/voxygen/voxel/weapon/debug_wand-1.vox b/assets/voxygen/voxel/weapon/debug_wand-1.vox new file mode 100644 index 0000000..c983bfd Binary files /dev/null and b/assets/voxygen/voxel/weapon/debug_wand-1.vox differ diff --git a/assets/voxygen/voxel/weapon/debug_wand.vox b/assets/voxygen/voxel/weapon/debug_wand.vox new file mode 100644 index 0000000..cec4972 Binary files /dev/null and b/assets/voxygen/voxel/weapon/debug_wand.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_cyclops-0.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_cyclops-0.vox new file mode 100644 index 0000000..aae6ab1 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_cyclops-0.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_flimsy.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_flimsy.vox new file mode 100644 index 0000000..6f82dda Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_flimsy.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_harvester.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_harvester.vox new file mode 100644 index 0000000..83909c9 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_harvester.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_mjolnir.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_mjolnir.vox new file mode 100644 index 0000000..f2c047f Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_mjolnir.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_ogre.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_ogre.vox new file mode 100644 index 0000000..b607dc8 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_ogre.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_oni_red.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_oni_red.vox new file mode 100644 index 0000000..b801b97 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_oni_red.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_rusty.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_rusty.vox new file mode 100644 index 0000000..0c2945c Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_rusty.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_troll.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_troll.vox new file mode 100644 index 0000000..cc23168 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_troll.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_wendigo.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_wendigo.vox new file mode 100644 index 0000000..6bcb77b Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_wendigo.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_yeti.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_yeti.vox new file mode 100644 index 0000000..c8e1883 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/2hhammer_yeti.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/burnt_drumstick.vox b/assets/voxygen/voxel/weapon/hammer/burnt_drumstick.vox new file mode 100644 index 0000000..4fd90c2 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/burnt_drumstick.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/craftsman.vox b/assets/voxygen/voxel/weapon/hammer/craftsman.vox new file mode 100644 index 0000000..5ff83e1 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/craftsman.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/cult_purp-0.vox b/assets/voxygen/voxel/weapon/hammer/cult_purp-0.vox new file mode 100644 index 0000000..392ea80 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/cult_purp-0.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/forgemaster_hammer.vox b/assets/voxygen/voxel/weapon/hammer/forgemaster_hammer.vox new file mode 100644 index 0000000..f5b5c4d Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/forgemaster_hammer.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/greathammer/bloodsteel-2h.vox b/assets/voxygen/voxel/weapon/hammer/greathammer/bloodsteel-2h.vox new file mode 100644 index 0000000..317a509 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/greathammer/bloodsteel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/greathammer/bronze-2h.vox b/assets/voxygen/voxel/weapon/hammer/greathammer/bronze-2h.vox new file mode 100644 index 0000000..5c296c5 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/greathammer/bronze-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/greathammer/cobalt-2h.vox b/assets/voxygen/voxel/weapon/hammer/greathammer/cobalt-2h.vox new file mode 100644 index 0000000..1dd16f9 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/greathammer/cobalt-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/greathammer/iron-2h.vox b/assets/voxygen/voxel/weapon/hammer/greathammer/iron-2h.vox new file mode 100644 index 0000000..9494465 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/greathammer/iron-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/greathammer/orichalcum-2h.vox b/assets/voxygen/voxel/weapon/hammer/greathammer/orichalcum-2h.vox new file mode 100644 index 0000000..2b45a71 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/greathammer/orichalcum-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/greathammer/steel-2h.vox b/assets/voxygen/voxel/weapon/hammer/greathammer/steel-2h.vox new file mode 100644 index 0000000..6d15a51 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/greathammer/steel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/greatmace/bloodsteel-2h.vox b/assets/voxygen/voxel/weapon/hammer/greatmace/bloodsteel-2h.vox new file mode 100644 index 0000000..6f1384c Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/greatmace/bloodsteel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/greatmace/bronze-2h.vox b/assets/voxygen/voxel/weapon/hammer/greatmace/bronze-2h.vox new file mode 100644 index 0000000..ea27aba Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/greatmace/bronze-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/greatmace/cobalt-2h.vox b/assets/voxygen/voxel/weapon/hammer/greatmace/cobalt-2h.vox new file mode 100644 index 0000000..e13adf3 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/greatmace/cobalt-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/greatmace/iron-2h.vox b/assets/voxygen/voxel/weapon/hammer/greatmace/iron-2h.vox new file mode 100644 index 0000000..a0bc7d3 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/greatmace/iron-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/greatmace/orichalcum-2h.vox b/assets/voxygen/voxel/weapon/hammer/greatmace/orichalcum-2h.vox new file mode 100644 index 0000000..a8db40a Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/greatmace/orichalcum-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/greatmace/steel-2h.vox b/assets/voxygen/voxel/weapon/hammer/greatmace/steel-2h.vox new file mode 100644 index 0000000..bd2fe95 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/greatmace/steel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/hammer/bloodsteel-1h.vox b/assets/voxygen/voxel/weapon/hammer/hammer/bloodsteel-1h.vox new file mode 100644 index 0000000..32c2595 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/hammer/bloodsteel-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/hammer/bloodsteel-2h.vox b/assets/voxygen/voxel/weapon/hammer/hammer/bloodsteel-2h.vox new file mode 100644 index 0000000..afefe56 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/hammer/bloodsteel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/hammer/bronze-1h.vox b/assets/voxygen/voxel/weapon/hammer/hammer/bronze-1h.vox new file mode 100644 index 0000000..4f2d992 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/hammer/bronze-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/hammer/bronze-2h.vox b/assets/voxygen/voxel/weapon/hammer/hammer/bronze-2h.vox new file mode 100644 index 0000000..56e7012 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/hammer/bronze-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/hammer/cobalt-1h.vox b/assets/voxygen/voxel/weapon/hammer/hammer/cobalt-1h.vox new file mode 100644 index 0000000..1f81b37 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/hammer/cobalt-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/hammer/cobalt-2h.vox b/assets/voxygen/voxel/weapon/hammer/hammer/cobalt-2h.vox new file mode 100644 index 0000000..418a064 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/hammer/cobalt-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/hammer/iron-1h.vox b/assets/voxygen/voxel/weapon/hammer/hammer/iron-1h.vox new file mode 100644 index 0000000..90f77ff Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/hammer/iron-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/hammer/iron-2h.vox b/assets/voxygen/voxel/weapon/hammer/hammer/iron-2h.vox new file mode 100644 index 0000000..aecef75 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/hammer/iron-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/hammer/orichalcum-1h.vox b/assets/voxygen/voxel/weapon/hammer/hammer/orichalcum-1h.vox new file mode 100644 index 0000000..4b51555 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/hammer/orichalcum-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/hammer/orichalcum-2h.vox b/assets/voxygen/voxel/weapon/hammer/hammer/orichalcum-2h.vox new file mode 100644 index 0000000..df3a0d4 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/hammer/orichalcum-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/hammer/steel-1h.vox b/assets/voxygen/voxel/weapon/hammer/hammer/steel-1h.vox new file mode 100644 index 0000000..1ed2db9 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/hammer/steel-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/hammer/steel-2h.vox b/assets/voxygen/voxel/weapon/hammer/hammer/steel-2h.vox new file mode 100644 index 0000000..be8858e Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/hammer/steel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/maul/bloodsteel-2h.vox b/assets/voxygen/voxel/weapon/hammer/maul/bloodsteel-2h.vox new file mode 100644 index 0000000..ebd6795 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/maul/bloodsteel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/maul/bronze-2h.vox b/assets/voxygen/voxel/weapon/hammer/maul/bronze-2h.vox new file mode 100644 index 0000000..b3b6de4 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/maul/bronze-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/maul/cobalt-2h.vox b/assets/voxygen/voxel/weapon/hammer/maul/cobalt-2h.vox new file mode 100644 index 0000000..e2bbad9 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/maul/cobalt-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/maul/iron-2h.vox b/assets/voxygen/voxel/weapon/hammer/maul/iron-2h.vox new file mode 100644 index 0000000..dfe9406 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/maul/iron-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/maul/orichalcum-2h.vox b/assets/voxygen/voxel/weapon/hammer/maul/orichalcum-2h.vox new file mode 100644 index 0000000..3650b9f Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/maul/orichalcum-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/maul/steel-2h.vox b/assets/voxygen/voxel/weapon/hammer/maul/steel-2h.vox new file mode 100644 index 0000000..d18f3b0 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/maul/steel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/ornate/bloodsteel-1h.vox b/assets/voxygen/voxel/weapon/hammer/ornate/bloodsteel-1h.vox new file mode 100644 index 0000000..2a419ca Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/ornate/bloodsteel-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/ornate/bloodsteel-2h.vox b/assets/voxygen/voxel/weapon/hammer/ornate/bloodsteel-2h.vox new file mode 100644 index 0000000..1908ad1 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/ornate/bloodsteel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/ornate/bronze-1h.vox b/assets/voxygen/voxel/weapon/hammer/ornate/bronze-1h.vox new file mode 100644 index 0000000..e5e273a Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/ornate/bronze-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/ornate/bronze-2h.vox b/assets/voxygen/voxel/weapon/hammer/ornate/bronze-2h.vox new file mode 100644 index 0000000..1067f77 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/ornate/bronze-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/ornate/cobalt-1h.vox b/assets/voxygen/voxel/weapon/hammer/ornate/cobalt-1h.vox new file mode 100644 index 0000000..5fddb8a Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/ornate/cobalt-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/ornate/cobalt-2h.vox b/assets/voxygen/voxel/weapon/hammer/ornate/cobalt-2h.vox new file mode 100644 index 0000000..3e93f54 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/ornate/cobalt-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/ornate/iron-1h.vox b/assets/voxygen/voxel/weapon/hammer/ornate/iron-1h.vox new file mode 100644 index 0000000..b751dba Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/ornate/iron-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/ornate/iron-2h.vox b/assets/voxygen/voxel/weapon/hammer/ornate/iron-2h.vox new file mode 100644 index 0000000..ac97a4b Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/ornate/iron-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/ornate/orichalcum-1h.vox b/assets/voxygen/voxel/weapon/hammer/ornate/orichalcum-1h.vox new file mode 100644 index 0000000..fbebda9 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/ornate/orichalcum-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/ornate/orichalcum-2h.vox b/assets/voxygen/voxel/weapon/hammer/ornate/orichalcum-2h.vox new file mode 100644 index 0000000..a2bccb3 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/ornate/orichalcum-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/ornate/steel-1h.vox b/assets/voxygen/voxel/weapon/hammer/ornate/steel-1h.vox new file mode 100644 index 0000000..ff2cecc Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/ornate/steel-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/ornate/steel-2h.vox b/assets/voxygen/voxel/weapon/hammer/ornate/steel-2h.vox new file mode 100644 index 0000000..40c5e34 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/ornate/steel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/spikedmace/bloodsteel-1h.vox b/assets/voxygen/voxel/weapon/hammer/spikedmace/bloodsteel-1h.vox new file mode 100644 index 0000000..ac08ed1 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/spikedmace/bloodsteel-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/spikedmace/bloodsteel-2h.vox b/assets/voxygen/voxel/weapon/hammer/spikedmace/bloodsteel-2h.vox new file mode 100644 index 0000000..ce478bf Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/spikedmace/bloodsteel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/spikedmace/bronze-1h.vox b/assets/voxygen/voxel/weapon/hammer/spikedmace/bronze-1h.vox new file mode 100644 index 0000000..48c3004 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/spikedmace/bronze-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/spikedmace/bronze-2h.vox b/assets/voxygen/voxel/weapon/hammer/spikedmace/bronze-2h.vox new file mode 100644 index 0000000..ec94f6a Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/spikedmace/bronze-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/spikedmace/cobalt-1h.vox b/assets/voxygen/voxel/weapon/hammer/spikedmace/cobalt-1h.vox new file mode 100644 index 0000000..a328045 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/spikedmace/cobalt-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/spikedmace/cobalt-2h.vox b/assets/voxygen/voxel/weapon/hammer/spikedmace/cobalt-2h.vox new file mode 100644 index 0000000..9fcc8c3 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/spikedmace/cobalt-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/spikedmace/iron-1h.vox b/assets/voxygen/voxel/weapon/hammer/spikedmace/iron-1h.vox new file mode 100644 index 0000000..2cb7461 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/spikedmace/iron-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/spikedmace/iron-2h.vox b/assets/voxygen/voxel/weapon/hammer/spikedmace/iron-2h.vox new file mode 100644 index 0000000..7847a1c Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/spikedmace/iron-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/spikedmace/orichalcum-1h.vox b/assets/voxygen/voxel/weapon/hammer/spikedmace/orichalcum-1h.vox new file mode 100644 index 0000000..1231b6f Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/spikedmace/orichalcum-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/spikedmace/orichalcum-2h.vox b/assets/voxygen/voxel/weapon/hammer/spikedmace/orichalcum-2h.vox new file mode 100644 index 0000000..5539d5a Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/spikedmace/orichalcum-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/spikedmace/steel-1h.vox b/assets/voxygen/voxel/weapon/hammer/spikedmace/steel-1h.vox new file mode 100644 index 0000000..5e94178 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/spikedmace/steel-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/spikedmace/steel-2h.vox b/assets/voxygen/voxel/weapon/hammer/spikedmace/steel-2h.vox new file mode 100644 index 0000000..165706a Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/spikedmace/steel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/terracotta_punisher_club.vox b/assets/voxygen/voxel/weapon/hammer/terracotta_punisher_club.vox new file mode 100644 index 0000000..afefb59 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/terracotta_punisher_club.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/warhammer/bloodsteel-1h.vox b/assets/voxygen/voxel/weapon/hammer/warhammer/bloodsteel-1h.vox new file mode 100644 index 0000000..05fbd5c Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/warhammer/bloodsteel-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/warhammer/bloodsteel-2h.vox b/assets/voxygen/voxel/weapon/hammer/warhammer/bloodsteel-2h.vox new file mode 100644 index 0000000..a05d3bb Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/warhammer/bloodsteel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/warhammer/bronze-1h.vox b/assets/voxygen/voxel/weapon/hammer/warhammer/bronze-1h.vox new file mode 100644 index 0000000..532a479 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/warhammer/bronze-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/warhammer/bronze-2h.vox b/assets/voxygen/voxel/weapon/hammer/warhammer/bronze-2h.vox new file mode 100644 index 0000000..aec2a9a Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/warhammer/bronze-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/warhammer/cobalt-1h.vox b/assets/voxygen/voxel/weapon/hammer/warhammer/cobalt-1h.vox new file mode 100644 index 0000000..c666f54 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/warhammer/cobalt-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/warhammer/cobalt-2h.vox b/assets/voxygen/voxel/weapon/hammer/warhammer/cobalt-2h.vox new file mode 100644 index 0000000..712bc58 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/warhammer/cobalt-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/warhammer/iron-1h.vox b/assets/voxygen/voxel/weapon/hammer/warhammer/iron-1h.vox new file mode 100644 index 0000000..b5109be Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/warhammer/iron-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/warhammer/iron-2h.vox b/assets/voxygen/voxel/weapon/hammer/warhammer/iron-2h.vox new file mode 100644 index 0000000..6e5db73 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/warhammer/iron-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/warhammer/orichalcum-1h.vox b/assets/voxygen/voxel/weapon/hammer/warhammer/orichalcum-1h.vox new file mode 100644 index 0000000..bbb0ece Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/warhammer/orichalcum-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/warhammer/orichalcum-2h.vox b/assets/voxygen/voxel/weapon/hammer/warhammer/orichalcum-2h.vox new file mode 100644 index 0000000..3fc65d3 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/warhammer/orichalcum-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/warhammer/steel-1h.vox b/assets/voxygen/voxel/weapon/hammer/warhammer/steel-1h.vox new file mode 100644 index 0000000..b3642f4 Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/warhammer/steel-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/hammer/warhammer/steel-2h.vox b/assets/voxygen/voxel/weapon/hammer/warhammer/steel-2h.vox new file mode 100644 index 0000000..9b4f34d Binary files /dev/null and b/assets/voxygen/voxel/weapon/hammer/warhammer/steel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/adlet-spear.vox b/assets/voxygen/voxel/weapon/projectile/adlet-spear.vox new file mode 100644 index 0000000..5affe5e Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/adlet-spear.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/adlet-trap.vox b/assets/voxygen/voxel/weapon/projectile/adlet-trap.vox new file mode 100644 index 0000000..8dd216d Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/adlet-trap.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/besieger_bolt.vox b/assets/voxygen/voxel/weapon/projectile/besieger_bolt.vox new file mode 100644 index 0000000..e51150a Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/besieger_bolt.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/boreal-trap.vox b/assets/voxygen/voxel/weapon/projectile/boreal-trap.vox new file mode 100644 index 0000000..9593083 Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/boreal-trap.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/bubble_bomb.vox b/assets/voxygen/voxel/weapon/projectile/bubble_bomb.vox new file mode 100644 index 0000000..fb49532 Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/bubble_bomb.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/clay-arrow.vox b/assets/voxygen/voxel/weapon/projectile/clay-arrow.vox new file mode 100644 index 0000000..5559817 Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/clay-arrow.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/clay-missile.vox b/assets/voxygen/voxel/weapon/projectile/clay-missile.vox new file mode 100644 index 0000000..137c039 Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/clay-missile.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/dart.vox b/assets/voxygen/voxel/weapon/projectile/dart.vox new file mode 100644 index 0000000..a634bf2 Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/dart.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/fire-bolt-0.vox b/assets/voxygen/voxel/weapon/projectile/fire-bolt-0.vox new file mode 100644 index 0000000..d1d3a2b Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/fire-bolt-0.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/fire-bolt-1.vox b/assets/voxygen/voxel/weapon/projectile/fire-bolt-1.vox new file mode 100644 index 0000000..37ee14c Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/fire-bolt-1.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/firerain_droplet1.vox b/assets/voxygen/voxel/weapon/projectile/firerain_droplet1.vox new file mode 100644 index 0000000..25faad6 Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/firerain_droplet1.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/fireworks-0.vox b/assets/voxygen/voxel/weapon/projectile/fireworks-0.vox new file mode 100644 index 0000000..4558233 Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/fireworks-0.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/fireworks_blue-0.vox b/assets/voxygen/voxel/weapon/projectile/fireworks_blue-0.vox new file mode 100644 index 0000000..c1b7ded Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/fireworks_blue-0.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/fireworks_green-0.vox b/assets/voxygen/voxel/weapon/projectile/fireworks_green-0.vox new file mode 100644 index 0000000..072499b Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/fireworks_green-0.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/fireworks_purple-0.vox b/assets/voxygen/voxel/weapon/projectile/fireworks_purple-0.vox new file mode 100644 index 0000000..0195191 Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/fireworks_purple-0.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/fireworks_red-0.vox b/assets/voxygen/voxel/weapon/projectile/fireworks_red-0.vox new file mode 100644 index 0000000..4558233 Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/fireworks_red-0.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/fireworks_white-0.vox b/assets/voxygen/voxel/weapon/projectile/fireworks_white-0.vox new file mode 100644 index 0000000..2b4ec2b Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/fireworks_white-0.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/fireworks_yellow-0.vox b/assets/voxygen/voxel/weapon/projectile/fireworks_yellow-0.vox new file mode 100644 index 0000000..89509cb Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/fireworks_yellow-0.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/harlequin-dagger.vox b/assets/voxygen/voxel/weapon/projectile/harlequin-dagger.vox new file mode 100644 index 0000000..f3e6057 Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/harlequin-dagger.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/ice_bomb.vox b/assets/voxygen/voxel/weapon/projectile/ice_bomb.vox new file mode 100644 index 0000000..835dcff Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/ice_bomb.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/icicle-bolt.vox b/assets/voxygen/voxel/weapon/projectile/icicle-bolt.vox new file mode 100644 index 0000000..45fb53f Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/icicle-bolt.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/icicle-spear.vox b/assets/voxygen/voxel/weapon/projectile/icicle-spear.vox new file mode 100644 index 0000000..a12178c Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/icicle-spear.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/iron_pike_bomb.vox b/assets/voxygen/voxel/weapon/projectile/iron_pike_bomb.vox new file mode 100644 index 0000000..618accc Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/iron_pike_bomb.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/laser_beam.vox b/assets/voxygen/voxel/weapon/projectile/laser_beam.vox new file mode 100644 index 0000000..6412f28 Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/laser_beam.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/laser_beam_small.vox b/assets/voxygen/voxel/weapon/projectile/laser_beam_small.vox new file mode 100644 index 0000000..f22e7d1 Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/laser_beam_small.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/leaf.vox b/assets/voxygen/voxel/weapon/projectile/leaf.vox new file mode 100644 index 0000000..f31aa3d Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/leaf.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/lightning_bolt.vox b/assets/voxygen/voxel/weapon/projectile/lightning_bolt.vox new file mode 100644 index 0000000..b8f8652 Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/lightning_bolt.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/multi-arrow.vox b/assets/voxygen/voxel/weapon/projectile/multi-arrow.vox new file mode 100644 index 0000000..2fabcaf Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/multi-arrow.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/nature-bolt.vox b/assets/voxygen/voxel/weapon/projectile/nature-bolt.vox new file mode 100644 index 0000000..d940490 Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/nature-bolt.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/pebble.vox b/assets/voxygen/voxel/weapon/projectile/pebble.vox new file mode 100644 index 0000000..ede3c2a Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/pebble.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/poison-spit.vox b/assets/voxygen/voxel/weapon/projectile/poison-spit.vox new file mode 100644 index 0000000..0ef9b6a Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/poison-spit.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/poison_ball.vox b/assets/voxygen/voxel/weapon/projectile/poison_ball.vox new file mode 100644 index 0000000..3072581 Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/poison_ball.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/simple-arrow.vox b/assets/voxygen/voxel/weapon/projectile/simple-arrow.vox new file mode 100644 index 0000000..54a1c5f Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/simple-arrow.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/snake-arrow.vox b/assets/voxygen/voxel/weapon/projectile/snake-arrow.vox new file mode 100644 index 0000000..cb00b5a Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/snake-arrow.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/snowball.vox b/assets/voxygen/voxel/weapon/projectile/snowball.vox new file mode 100644 index 0000000..1075986 Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/snowball.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/spectral_sword_large.vox b/assets/voxygen/voxel/weapon/projectile/spectral_sword_large.vox new file mode 100644 index 0000000..b986d94 Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/spectral_sword_large.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/spectral_sword_small.vox b/assets/voxygen/voxel/weapon/projectile/spectral_sword_small.vox new file mode 100644 index 0000000..d73c4ae Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/spectral_sword_small.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/strigoi_head.vox b/assets/voxygen/voxel/weapon/projectile/strigoi_head.vox new file mode 100644 index 0000000..4af90f9 Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/strigoi_head.vox differ diff --git a/assets/voxygen/voxel/weapon/projectile/turret-arrow.vox b/assets/voxygen/voxel/weapon/projectile/turret-arrow.vox new file mode 100644 index 0000000..2470de9 Binary files /dev/null and b/assets/voxygen/voxel/weapon/projectile/turret-arrow.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/amethyst.vox b/assets/voxygen/voxel/weapon/sceptre/amethyst.vox new file mode 100644 index 0000000..5d4f612 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/amethyst.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/arbor/bamboo.vox b/assets/voxygen/voxel/weapon/sceptre/arbor/bamboo.vox new file mode 100644 index 0000000..2c6ea87 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/arbor/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/arbor/eldwood.vox b/assets/voxygen/voxel/weapon/sceptre/arbor/eldwood.vox new file mode 100644 index 0000000..2e7bed1 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/arbor/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/arbor/frostwood.vox b/assets/voxygen/voxel/weapon/sceptre/arbor/frostwood.vox new file mode 100644 index 0000000..a2bbb92 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/arbor/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/arbor/hardwood.vox b/assets/voxygen/voxel/weapon/sceptre/arbor/hardwood.vox new file mode 100644 index 0000000..6a99416 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/arbor/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/arbor/ironwood.vox b/assets/voxygen/voxel/weapon/sceptre/arbor/ironwood.vox new file mode 100644 index 0000000..f92382d Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/arbor/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/arbor/wood.vox b/assets/voxygen/voxel/weapon/sceptre/arbor/wood.vox new file mode 100644 index 0000000..8557df1 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/arbor/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/caduceus.vox b/assets/voxygen/voxel/weapon/sceptre/caduceus.vox new file mode 100644 index 0000000..5ab8c28 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/caduceus.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/cane/bamboo.vox b/assets/voxygen/voxel/weapon/sceptre/cane/bamboo.vox new file mode 100644 index 0000000..444814e Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/cane/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/cane/eldwood.vox b/assets/voxygen/voxel/weapon/sceptre/cane/eldwood.vox new file mode 100644 index 0000000..6a47e7b Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/cane/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/cane/frostwood.vox b/assets/voxygen/voxel/weapon/sceptre/cane/frostwood.vox new file mode 100644 index 0000000..9037c0d Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/cane/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/cane/hardwood.vox b/assets/voxygen/voxel/weapon/sceptre/cane/hardwood.vox new file mode 100644 index 0000000..5f1c907 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/cane/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/cane/ironwood.vox b/assets/voxygen/voxel/weapon/sceptre/cane/ironwood.vox new file mode 100644 index 0000000..e594c98 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/cane/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/cane/wood.vox b/assets/voxygen/voxel/weapon/sceptre/cane/wood.vox new file mode 100644 index 0000000..1b6c183 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/cane/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/crook/bamboo.vox b/assets/voxygen/voxel/weapon/sceptre/crook/bamboo.vox new file mode 100644 index 0000000..a0209b7 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/crook/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/crook/eldwood.vox b/assets/voxygen/voxel/weapon/sceptre/crook/eldwood.vox new file mode 100644 index 0000000..ba296f5 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/crook/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/crook/frostwood.vox b/assets/voxygen/voxel/weapon/sceptre/crook/frostwood.vox new file mode 100644 index 0000000..2a3c3b6 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/crook/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/crook/hardwood.vox b/assets/voxygen/voxel/weapon/sceptre/crook/hardwood.vox new file mode 100644 index 0000000..04ad188 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/crook/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/crook/ironwood.vox b/assets/voxygen/voxel/weapon/sceptre/crook/ironwood.vox new file mode 100644 index 0000000..8db53c0 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/crook/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/crook/wood.vox b/assets/voxygen/voxel/weapon/sceptre/crook/wood.vox new file mode 100644 index 0000000..2df0f42 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/crook/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/crozier/bamboo.vox b/assets/voxygen/voxel/weapon/sceptre/crozier/bamboo.vox new file mode 100644 index 0000000..050c936 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/crozier/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/crozier/eldwood.vox b/assets/voxygen/voxel/weapon/sceptre/crozier/eldwood.vox new file mode 100644 index 0000000..0101c7f Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/crozier/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/crozier/frostwood.vox b/assets/voxygen/voxel/weapon/sceptre/crozier/frostwood.vox new file mode 100644 index 0000000..a581a05 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/crozier/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/crozier/hardwood.vox b/assets/voxygen/voxel/weapon/sceptre/crozier/hardwood.vox new file mode 100644 index 0000000..6b21940 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/crozier/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/crozier/ironwood.vox b/assets/voxygen/voxel/weapon/sceptre/crozier/ironwood.vox new file mode 100644 index 0000000..007ebf4 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/crozier/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/crozier/wood.vox b/assets/voxygen/voxel/weapon/sceptre/crozier/wood.vox new file mode 100644 index 0000000..44a4e55 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/crozier/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/grandsceptre/bamboo.vox b/assets/voxygen/voxel/weapon/sceptre/grandsceptre/bamboo.vox new file mode 100644 index 0000000..ebb1b4d Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/grandsceptre/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/grandsceptre/eldwood.vox b/assets/voxygen/voxel/weapon/sceptre/grandsceptre/eldwood.vox new file mode 100644 index 0000000..8d49a54 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/grandsceptre/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/grandsceptre/frostwood.vox b/assets/voxygen/voxel/weapon/sceptre/grandsceptre/frostwood.vox new file mode 100644 index 0000000..3700675 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/grandsceptre/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/grandsceptre/hardwood.vox b/assets/voxygen/voxel/weapon/sceptre/grandsceptre/hardwood.vox new file mode 100644 index 0000000..c523740 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/grandsceptre/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/grandsceptre/ironwood.vox b/assets/voxygen/voxel/weapon/sceptre/grandsceptre/ironwood.vox new file mode 100644 index 0000000..618a9b9 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/grandsceptre/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/grandsceptre/wood.vox b/assets/voxygen/voxel/weapon/sceptre/grandsceptre/wood.vox new file mode 100644 index 0000000..9d3b44e Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/grandsceptre/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/ore-nature.vox b/assets/voxygen/voxel/weapon/sceptre/ore-nature.vox new file mode 100644 index 0000000..176b8bd Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/ore-nature.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/ornate/bamboo.vox b/assets/voxygen/voxel/weapon/sceptre/ornate/bamboo.vox new file mode 100644 index 0000000..ffa907a Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/ornate/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/ornate/eldwood.vox b/assets/voxygen/voxel/weapon/sceptre/ornate/eldwood.vox new file mode 100644 index 0000000..eb69de0 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/ornate/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/ornate/frostwood.vox b/assets/voxygen/voxel/weapon/sceptre/ornate/frostwood.vox new file mode 100644 index 0000000..caaeea1 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/ornate/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/ornate/hardwood.vox b/assets/voxygen/voxel/weapon/sceptre/ornate/hardwood.vox new file mode 100644 index 0000000..1c40194 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/ornate/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/ornate/ironwood.vox b/assets/voxygen/voxel/weapon/sceptre/ornate/ironwood.vox new file mode 100644 index 0000000..1510882 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/ornate/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/ornate/wood.vox b/assets/voxygen/voxel/weapon/sceptre/ornate/wood.vox new file mode 100644 index 0000000..64644eb Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/ornate/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/root_evil.vox b/assets/voxygen/voxel/weapon/sceptre/root_evil.vox new file mode 100644 index 0000000..08732da Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/root_evil.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/sceptre/bamboo.vox b/assets/voxygen/voxel/weapon/sceptre/sceptre/bamboo.vox new file mode 100644 index 0000000..4771d43 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/sceptre/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/sceptre/eldwood.vox b/assets/voxygen/voxel/weapon/sceptre/sceptre/eldwood.vox new file mode 100644 index 0000000..16787ee Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/sceptre/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/sceptre/frostwood.vox b/assets/voxygen/voxel/weapon/sceptre/sceptre/frostwood.vox new file mode 100644 index 0000000..0671a5f Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/sceptre/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/sceptre/hardwood.vox b/assets/voxygen/voxel/weapon/sceptre/sceptre/hardwood.vox new file mode 100644 index 0000000..e3b86a1 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/sceptre/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/sceptre/ironwood.vox b/assets/voxygen/voxel/weapon/sceptre/sceptre/ironwood.vox new file mode 100644 index 0000000..2544542 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/sceptre/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/sceptre/wood.vox b/assets/voxygen/voxel/weapon/sceptre/sceptre/wood.vox new file mode 100644 index 0000000..9328254 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/sceptre/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/sceptre_cursekeeper.vox b/assets/voxygen/voxel/weapon/sceptre/sceptre_cursekeeper.vox new file mode 100644 index 0000000..20f407f Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/sceptre_cursekeeper.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/sceptre_sea_bishop.vox b/assets/voxygen/voxel/weapon/sceptre/sceptre_sea_bishop.vox new file mode 100644 index 0000000..83c7547 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/sceptre_sea_bishop.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/wood-nature.vox b/assets/voxygen/voxel/weapon/sceptre/wood-nature.vox new file mode 100644 index 0000000..90fee67 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/wood-nature.vox differ diff --git a/assets/voxygen/voxel/weapon/sceptre/wood-simple.vox b/assets/voxygen/voxel/weapon/sceptre/wood-simple.vox new file mode 100644 index 0000000..5bf78b3 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sceptre/wood-simple.vox differ diff --git a/assets/voxygen/voxel/weapon/shield/wood-0.vox b/assets/voxygen/voxel/weapon/shield/wood-0.vox new file mode 100644 index 0000000..78aa7f1 Binary files /dev/null and b/assets/voxygen/voxel/weapon/shield/wood-0.vox differ diff --git a/assets/voxygen/voxel/weapon/shield/wood-1.vox b/assets/voxygen/voxel/weapon/shield/wood-1.vox new file mode 100644 index 0000000..b7e03ed Binary files /dev/null and b/assets/voxygen/voxel/weapon/shield/wood-1.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/brand/bamboo.vox b/assets/voxygen/voxel/weapon/staff/brand/bamboo.vox new file mode 100644 index 0000000..1a1d00a Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/brand/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/brand/eldwood.vox b/assets/voxygen/voxel/weapon/staff/brand/eldwood.vox new file mode 100644 index 0000000..6a2bad3 Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/brand/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/brand/frostwood.vox b/assets/voxygen/voxel/weapon/staff/brand/frostwood.vox new file mode 100644 index 0000000..a656dad Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/brand/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/brand/hardwood.vox b/assets/voxygen/voxel/weapon/staff/brand/hardwood.vox new file mode 100644 index 0000000..d67c8ad Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/brand/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/brand/ironwood.vox b/assets/voxygen/voxel/weapon/staff/brand/ironwood.vox new file mode 100644 index 0000000..27d919c Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/brand/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/brand/wood.vox b/assets/voxygen/voxel/weapon/staff/brand/wood.vox new file mode 100644 index 0000000..c6330fd Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/brand/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/firestaff_cultist.vox b/assets/voxygen/voxel/weapon/staff/firestaff_cultist.vox new file mode 100644 index 0000000..5ed6924 Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/firestaff_cultist.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/firestaff_mindflayer.vox b/assets/voxygen/voxel/weapon/staff/firestaff_mindflayer.vox new file mode 100644 index 0000000..64054e3 Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/firestaff_mindflayer.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/firestaff_ogre.vox b/assets/voxygen/voxel/weapon/staff/firestaff_ogre.vox new file mode 100644 index 0000000..aeac9ef Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/firestaff_ogre.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/firestaff_saurok.vox b/assets/voxygen/voxel/weapon/staff/firestaff_saurok.vox new file mode 100644 index 0000000..45d797c Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/firestaff_saurok.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/firestaff_starter.vox b/assets/voxygen/voxel/weapon/staff/firestaff_starter.vox new file mode 100644 index 0000000..380399c Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/firestaff_starter.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/grandstaff/bamboo.vox b/assets/voxygen/voxel/weapon/staff/grandstaff/bamboo.vox new file mode 100644 index 0000000..a0c5ad2 Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/grandstaff/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/grandstaff/eldwood.vox b/assets/voxygen/voxel/weapon/staff/grandstaff/eldwood.vox new file mode 100644 index 0000000..5dad6da Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/grandstaff/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/grandstaff/frostwood.vox b/assets/voxygen/voxel/weapon/staff/grandstaff/frostwood.vox new file mode 100644 index 0000000..d5d0721 Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/grandstaff/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/grandstaff/hardwood.vox b/assets/voxygen/voxel/weapon/staff/grandstaff/hardwood.vox new file mode 100644 index 0000000..fb6a9ae Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/grandstaff/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/grandstaff/ironwood.vox b/assets/voxygen/voxel/weapon/staff/grandstaff/ironwood.vox new file mode 100644 index 0000000..8045a34 Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/grandstaff/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/grandstaff/wood.vox b/assets/voxygen/voxel/weapon/staff/grandstaff/wood.vox new file mode 100644 index 0000000..ce4f15b Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/grandstaff/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/laevateinn.vox b/assets/voxygen/voxel/weapon/staff/laevateinn.vox new file mode 100644 index 0000000..9351408 Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/laevateinn.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/longpole/bamboo.vox b/assets/voxygen/voxel/weapon/staff/longpole/bamboo.vox new file mode 100644 index 0000000..d69c7c4 Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/longpole/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/longpole/eldwood.vox b/assets/voxygen/voxel/weapon/staff/longpole/eldwood.vox new file mode 100644 index 0000000..fa177e4 Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/longpole/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/longpole/frostwood.vox b/assets/voxygen/voxel/weapon/staff/longpole/frostwood.vox new file mode 100644 index 0000000..a5d029c Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/longpole/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/longpole/hardwood.vox b/assets/voxygen/voxel/weapon/staff/longpole/hardwood.vox new file mode 100644 index 0000000..233cdcf Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/longpole/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/longpole/ironwood.vox b/assets/voxygen/voxel/weapon/staff/longpole/ironwood.vox new file mode 100644 index 0000000..69a88bb Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/longpole/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/longpole/wood.vox b/assets/voxygen/voxel/weapon/staff/longpole/wood.vox new file mode 100644 index 0000000..1e85dbb Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/longpole/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/ornate/bamboo.vox b/assets/voxygen/voxel/weapon/staff/ornate/bamboo.vox new file mode 100644 index 0000000..9286062 Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/ornate/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/ornate/eldwood.vox b/assets/voxygen/voxel/weapon/staff/ornate/eldwood.vox new file mode 100644 index 0000000..8c9101c Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/ornate/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/ornate/frostwood.vox b/assets/voxygen/voxel/weapon/staff/ornate/frostwood.vox new file mode 100644 index 0000000..bc6b913 Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/ornate/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/ornate/hardwood.vox b/assets/voxygen/voxel/weapon/staff/ornate/hardwood.vox new file mode 100644 index 0000000..dab75f8 Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/ornate/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/ornate/ironwood.vox b/assets/voxygen/voxel/weapon/staff/ornate/ironwood.vox new file mode 100644 index 0000000..adb8725 Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/ornate/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/ornate/wood.vox b/assets/voxygen/voxel/weapon/staff/ornate/wood.vox new file mode 100644 index 0000000..f962993 Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/ornate/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/pole/bamboo.vox b/assets/voxygen/voxel/weapon/staff/pole/bamboo.vox new file mode 100644 index 0000000..6185f85 Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/pole/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/pole/eldwood.vox b/assets/voxygen/voxel/weapon/staff/pole/eldwood.vox new file mode 100644 index 0000000..763829b Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/pole/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/pole/frostwood.vox b/assets/voxygen/voxel/weapon/staff/pole/frostwood.vox new file mode 100644 index 0000000..9259a9e Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/pole/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/pole/hardwood.vox b/assets/voxygen/voxel/weapon/staff/pole/hardwood.vox new file mode 100644 index 0000000..646bc01 Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/pole/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/pole/ironwood.vox b/assets/voxygen/voxel/weapon/staff/pole/ironwood.vox new file mode 100644 index 0000000..7a6cafc Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/pole/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/pole/wood.vox b/assets/voxygen/voxel/weapon/staff/pole/wood.vox new file mode 100644 index 0000000..bef2e88 Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/pole/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/rod/bamboo.vox b/assets/voxygen/voxel/weapon/staff/rod/bamboo.vox new file mode 100644 index 0000000..3b1a071 Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/rod/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/rod/eldwood.vox b/assets/voxygen/voxel/weapon/staff/rod/eldwood.vox new file mode 100644 index 0000000..2e7ed29 Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/rod/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/rod/frostwood.vox b/assets/voxygen/voxel/weapon/staff/rod/frostwood.vox new file mode 100644 index 0000000..c454230 Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/rod/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/rod/hardwood.vox b/assets/voxygen/voxel/weapon/staff/rod/hardwood.vox new file mode 100644 index 0000000..c82f837 Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/rod/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/rod/ironwood.vox b/assets/voxygen/voxel/weapon/staff/rod/ironwood.vox new file mode 100644 index 0000000..64820a3 Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/rod/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/rod/wood.vox b/assets/voxygen/voxel/weapon/staff/rod/wood.vox new file mode 100644 index 0000000..b2c8429 Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/rod/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/staff/bamboo.vox b/assets/voxygen/voxel/weapon/staff/staff/bamboo.vox new file mode 100644 index 0000000..4e38f81 Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/staff/bamboo.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/staff/eldwood.vox b/assets/voxygen/voxel/weapon/staff/staff/eldwood.vox new file mode 100644 index 0000000..c6b075a Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/staff/eldwood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/staff/frostwood.vox b/assets/voxygen/voxel/weapon/staff/staff/frostwood.vox new file mode 100644 index 0000000..e74a85d Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/staff/frostwood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/staff/hardwood.vox b/assets/voxygen/voxel/weapon/staff/staff/hardwood.vox new file mode 100644 index 0000000..5c10510 Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/staff/hardwood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/staff/ironwood.vox b/assets/voxygen/voxel/weapon/staff/staff/ironwood.vox new file mode 100644 index 0000000..510504e Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/staff/ironwood.vox differ diff --git a/assets/voxygen/voxel/weapon/staff/staff/wood.vox b/assets/voxygen/voxel/weapon/staff/staff/wood.vox new file mode 100644 index 0000000..38945c8 Binary files /dev/null and b/assets/voxygen/voxel/weapon/staff/staff/wood.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/adlet_elder_sword.vox b/assets/voxygen/voxel/weapon/sword/adlet_elder_sword.vox new file mode 100644 index 0000000..4ece3ba Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/adlet_elder_sword.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/bloodmoon_heiress_sword.vox b/assets/voxygen/voxel/weapon/sword/bloodmoon_heiress_sword.vox new file mode 100644 index 0000000..6d0773c Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/bloodmoon_heiress_sword.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/caladbolg.vox b/assets/voxygen/voxel/weapon/sword/caladbolg.vox new file mode 100644 index 0000000..118bacc Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/caladbolg.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/cultist.vox b/assets/voxygen/voxel/weapon/sword/cultist.vox new file mode 100644 index 0000000..76eb4fa Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/cultist.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/frost-0.vox b/assets/voxygen/voxel/weapon/sword/frost-0.vox new file mode 100644 index 0000000..48a3adf Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/frost-0.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/frost-1.vox b/assets/voxygen/voxel/weapon/sword/frost-1.vox new file mode 100644 index 0000000..4c4e83e Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/frost-1.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/greatsword/bloodsteel-2h.vox b/assets/voxygen/voxel/weapon/sword/greatsword/bloodsteel-2h.vox new file mode 100644 index 0000000..e45632f Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/greatsword/bloodsteel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/greatsword/bronze-2h.vox b/assets/voxygen/voxel/weapon/sword/greatsword/bronze-2h.vox new file mode 100644 index 0000000..a9f7b7f Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/greatsword/bronze-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/greatsword/cobalt-2h.vox b/assets/voxygen/voxel/weapon/sword/greatsword/cobalt-2h.vox new file mode 100644 index 0000000..831018a Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/greatsword/cobalt-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/greatsword/iron-2h.vox b/assets/voxygen/voxel/weapon/sword/greatsword/iron-2h.vox new file mode 100644 index 0000000..0915588 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/greatsword/iron-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/greatsword/orichalcum-2h.vox b/assets/voxygen/voxel/weapon/sword/greatsword/orichalcum-2h.vox new file mode 100644 index 0000000..c2d6d4b Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/greatsword/orichalcum-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/greatsword/steel-2h.vox b/assets/voxygen/voxel/weapon/sword/greatsword/steel-2h.vox new file mode 100644 index 0000000..70734a1 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/greatsword/steel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/greatsword_2h_dullahan.vox b/assets/voxygen/voxel/weapon/sword/greatsword_2h_dullahan.vox new file mode 100644 index 0000000..2c85500 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/greatsword_2h_dullahan.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/haniwa_general_sword.vox b/assets/voxygen/voxel/weapon/sword/haniwa_general_sword.vox new file mode 100644 index 0000000..f8013a1 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/haniwa_general_sword.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/katana/bloodsteel-1h.vox b/assets/voxygen/voxel/weapon/sword/katana/bloodsteel-1h.vox new file mode 100644 index 0000000..2b39b1c Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/katana/bloodsteel-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/katana/bloodsteel-2h.vox b/assets/voxygen/voxel/weapon/sword/katana/bloodsteel-2h.vox new file mode 100644 index 0000000..df080f2 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/katana/bloodsteel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/katana/bronze-1h.vox b/assets/voxygen/voxel/weapon/sword/katana/bronze-1h.vox new file mode 100644 index 0000000..490ac11 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/katana/bronze-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/katana/bronze-2h.vox b/assets/voxygen/voxel/weapon/sword/katana/bronze-2h.vox new file mode 100644 index 0000000..fcd5505 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/katana/bronze-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/katana/cobalt-1h.vox b/assets/voxygen/voxel/weapon/sword/katana/cobalt-1h.vox new file mode 100644 index 0000000..18ac312 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/katana/cobalt-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/katana/cobalt-2h.vox b/assets/voxygen/voxel/weapon/sword/katana/cobalt-2h.vox new file mode 100644 index 0000000..58b4438 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/katana/cobalt-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/katana/iron-1h.vox b/assets/voxygen/voxel/weapon/sword/katana/iron-1h.vox new file mode 100644 index 0000000..36207f1 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/katana/iron-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/katana/iron-2h.vox b/assets/voxygen/voxel/weapon/sword/katana/iron-2h.vox new file mode 100644 index 0000000..0973117 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/katana/iron-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/katana/orichalcum-1h.vox b/assets/voxygen/voxel/weapon/sword/katana/orichalcum-1h.vox new file mode 100644 index 0000000..dcc5d6a Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/katana/orichalcum-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/katana/orichalcum-2h.vox b/assets/voxygen/voxel/weapon/sword/katana/orichalcum-2h.vox new file mode 100644 index 0000000..9b3c854 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/katana/orichalcum-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/katana/steel-1h.vox b/assets/voxygen/voxel/weapon/sword/katana/steel-1h.vox new file mode 100644 index 0000000..da43b05 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/katana/steel-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/katana/steel-2h.vox b/assets/voxygen/voxel/weapon/sword/katana/steel-2h.vox new file mode 100644 index 0000000..52bc2ce Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/katana/steel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/long_2h_saurok.vox b/assets/voxygen/voxel/weapon/sword/long_2h_saurok.vox new file mode 100644 index 0000000..11715a4 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/long_2h_saurok.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/longsword/bloodsteel-1h.vox b/assets/voxygen/voxel/weapon/sword/longsword/bloodsteel-1h.vox new file mode 100644 index 0000000..b672bab Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/longsword/bloodsteel-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/longsword/bloodsteel-2h.vox b/assets/voxygen/voxel/weapon/sword/longsword/bloodsteel-2h.vox new file mode 100644 index 0000000..4d2adbe Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/longsword/bloodsteel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/longsword/bronze-1h.vox b/assets/voxygen/voxel/weapon/sword/longsword/bronze-1h.vox new file mode 100644 index 0000000..30ec8f2 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/longsword/bronze-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/longsword/bronze-2h.vox b/assets/voxygen/voxel/weapon/sword/longsword/bronze-2h.vox new file mode 100644 index 0000000..cf9f56a Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/longsword/bronze-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/longsword/cobalt-1h.vox b/assets/voxygen/voxel/weapon/sword/longsword/cobalt-1h.vox new file mode 100644 index 0000000..946f858 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/longsword/cobalt-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/longsword/cobalt-2h.vox b/assets/voxygen/voxel/weapon/sword/longsword/cobalt-2h.vox new file mode 100644 index 0000000..72a596c Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/longsword/cobalt-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/longsword/iron-1h.vox b/assets/voxygen/voxel/weapon/sword/longsword/iron-1h.vox new file mode 100644 index 0000000..1071f4c Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/longsword/iron-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/longsword/iron-2h.vox b/assets/voxygen/voxel/weapon/sword/longsword/iron-2h.vox new file mode 100644 index 0000000..1ac0920 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/longsword/iron-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/longsword/orichalcum-1h.vox b/assets/voxygen/voxel/weapon/sword/longsword/orichalcum-1h.vox new file mode 100644 index 0000000..fc33e7f Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/longsword/orichalcum-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/longsword/orichalcum-2h.vox b/assets/voxygen/voxel/weapon/sword/longsword/orichalcum-2h.vox new file mode 100644 index 0000000..81c5e3f Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/longsword/orichalcum-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/longsword/steel-1h.vox b/assets/voxygen/voxel/weapon/sword/longsword/steel-1h.vox new file mode 100644 index 0000000..8f9ff0c Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/longsword/steel-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/longsword/steel-2h.vox b/assets/voxygen/voxel/weapon/sword/longsword/steel-2h.vox new file mode 100644 index 0000000..c5885a2 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/longsword/steel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/ornate/bloodsteel-1h.vox b/assets/voxygen/voxel/weapon/sword/ornate/bloodsteel-1h.vox new file mode 100644 index 0000000..a7f63dd Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/ornate/bloodsteel-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/ornate/bloodsteel-2h.vox b/assets/voxygen/voxel/weapon/sword/ornate/bloodsteel-2h.vox new file mode 100644 index 0000000..3e718f4 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/ornate/bloodsteel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/ornate/bronze-1h.vox b/assets/voxygen/voxel/weapon/sword/ornate/bronze-1h.vox new file mode 100644 index 0000000..433486c Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/ornate/bronze-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/ornate/bronze-2h.vox b/assets/voxygen/voxel/weapon/sword/ornate/bronze-2h.vox new file mode 100644 index 0000000..1c6a836 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/ornate/bronze-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/ornate/cobalt-1h.vox b/assets/voxygen/voxel/weapon/sword/ornate/cobalt-1h.vox new file mode 100644 index 0000000..0d89bb6 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/ornate/cobalt-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/ornate/cobalt-2h.vox b/assets/voxygen/voxel/weapon/sword/ornate/cobalt-2h.vox new file mode 100644 index 0000000..651afca Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/ornate/cobalt-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/ornate/iron-1h.vox b/assets/voxygen/voxel/weapon/sword/ornate/iron-1h.vox new file mode 100644 index 0000000..9e73052 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/ornate/iron-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/ornate/iron-2h.vox b/assets/voxygen/voxel/weapon/sword/ornate/iron-2h.vox new file mode 100644 index 0000000..661cdd8 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/ornate/iron-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/ornate/orichalcum-1h.vox b/assets/voxygen/voxel/weapon/sword/ornate/orichalcum-1h.vox new file mode 100644 index 0000000..529e84d Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/ornate/orichalcum-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/ornate/orichalcum-2h.vox b/assets/voxygen/voxel/weapon/sword/ornate/orichalcum-2h.vox new file mode 100644 index 0000000..221f91b Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/ornate/orichalcum-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/ornate/steel-1h.vox b/assets/voxygen/voxel/weapon/sword/ornate/steel-1h.vox new file mode 100644 index 0000000..72615ec Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/ornate/steel-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/ornate/steel-2h.vox b/assets/voxygen/voxel/weapon/sword/ornate/steel-2h.vox new file mode 100644 index 0000000..96428c4 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/ornate/steel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/sabre/bloodsteel-1h.vox b/assets/voxygen/voxel/weapon/sword/sabre/bloodsteel-1h.vox new file mode 100644 index 0000000..7dfb66d Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/sabre/bloodsteel-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/sabre/bloodsteel-2h.vox b/assets/voxygen/voxel/weapon/sword/sabre/bloodsteel-2h.vox new file mode 100644 index 0000000..78996b4 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/sabre/bloodsteel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/sabre/bronze-1h.vox b/assets/voxygen/voxel/weapon/sword/sabre/bronze-1h.vox new file mode 100644 index 0000000..056f91c Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/sabre/bronze-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/sabre/bronze-2h.vox b/assets/voxygen/voxel/weapon/sword/sabre/bronze-2h.vox new file mode 100644 index 0000000..158354f Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/sabre/bronze-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/sabre/cobalt-1h.vox b/assets/voxygen/voxel/weapon/sword/sabre/cobalt-1h.vox new file mode 100644 index 0000000..9b67eab Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/sabre/cobalt-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/sabre/cobalt-2h.vox b/assets/voxygen/voxel/weapon/sword/sabre/cobalt-2h.vox new file mode 100644 index 0000000..851f2df Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/sabre/cobalt-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/sabre/iron-1h.vox b/assets/voxygen/voxel/weapon/sword/sabre/iron-1h.vox new file mode 100644 index 0000000..8c7433e Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/sabre/iron-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/sabre/iron-2h.vox b/assets/voxygen/voxel/weapon/sword/sabre/iron-2h.vox new file mode 100644 index 0000000..6c18ca1 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/sabre/iron-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/sabre/orichalcum-1h.vox b/assets/voxygen/voxel/weapon/sword/sabre/orichalcum-1h.vox new file mode 100644 index 0000000..fb9ca46 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/sabre/orichalcum-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/sabre/orichalcum-2h.vox b/assets/voxygen/voxel/weapon/sword/sabre/orichalcum-2h.vox new file mode 100644 index 0000000..1296386 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/sabre/orichalcum-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/sabre/steel-1h.vox b/assets/voxygen/voxel/weapon/sword/sabre/steel-1h.vox new file mode 100644 index 0000000..65f4b8f Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/sabre/steel-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/sabre/steel-2h.vox b/assets/voxygen/voxel/weapon/sword/sabre/steel-2h.vox new file mode 100644 index 0000000..266f154 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/sabre/steel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/sawblade/bloodsteel-1h.vox b/assets/voxygen/voxel/weapon/sword/sawblade/bloodsteel-1h.vox new file mode 100644 index 0000000..0009a2b Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/sawblade/bloodsteel-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/sawblade/bloodsteel-2h.vox b/assets/voxygen/voxel/weapon/sword/sawblade/bloodsteel-2h.vox new file mode 100644 index 0000000..57e4889 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/sawblade/bloodsteel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/sawblade/bronze-1h.vox b/assets/voxygen/voxel/weapon/sword/sawblade/bronze-1h.vox new file mode 100644 index 0000000..57dd5bf Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/sawblade/bronze-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/sawblade/bronze-2h.vox b/assets/voxygen/voxel/weapon/sword/sawblade/bronze-2h.vox new file mode 100644 index 0000000..6cc2d6a Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/sawblade/bronze-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/sawblade/cobalt-1h.vox b/assets/voxygen/voxel/weapon/sword/sawblade/cobalt-1h.vox new file mode 100644 index 0000000..5388d57 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/sawblade/cobalt-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/sawblade/cobalt-2h.vox b/assets/voxygen/voxel/weapon/sword/sawblade/cobalt-2h.vox new file mode 100644 index 0000000..57e15a7 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/sawblade/cobalt-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/sawblade/iron-1h.vox b/assets/voxygen/voxel/weapon/sword/sawblade/iron-1h.vox new file mode 100644 index 0000000..48aea39 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/sawblade/iron-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/sawblade/iron-2h.vox b/assets/voxygen/voxel/weapon/sword/sawblade/iron-2h.vox new file mode 100644 index 0000000..2607838 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/sawblade/iron-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/sawblade/orichalcum-1h.vox b/assets/voxygen/voxel/weapon/sword/sawblade/orichalcum-1h.vox new file mode 100644 index 0000000..be00ba2 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/sawblade/orichalcum-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/sawblade/orichalcum-2h.vox b/assets/voxygen/voxel/weapon/sword/sawblade/orichalcum-2h.vox new file mode 100644 index 0000000..b016346 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/sawblade/orichalcum-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/sawblade/steel-1h.vox b/assets/voxygen/voxel/weapon/sword/sawblade/steel-1h.vox new file mode 100644 index 0000000..cccc39b Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/sawblade/steel-1h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/sawblade/steel-2h.vox b/assets/voxygen/voxel/weapon/sword/sawblade/steel-2h.vox new file mode 100644 index 0000000..70734a1 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/sawblade/steel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/starter.vox b/assets/voxygen/voxel/weapon/sword/starter.vox new file mode 100644 index 0000000..a152480 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/starter.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/starter_1h.vox b/assets/voxygen/voxel/weapon/sword/starter_1h.vox new file mode 100644 index 0000000..d37c363 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/starter_1h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/terracotta_pursuer_sword.vox b/assets/voxygen/voxel/weapon/sword/terracotta_pursuer_sword.vox new file mode 100644 index 0000000..978fc1e Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/terracotta_pursuer_sword.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/zweihander/bloodsteel-2h.vox b/assets/voxygen/voxel/weapon/sword/zweihander/bloodsteel-2h.vox new file mode 100644 index 0000000..b8dc026 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/zweihander/bloodsteel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/zweihander/bronze-2h.vox b/assets/voxygen/voxel/weapon/sword/zweihander/bronze-2h.vox new file mode 100644 index 0000000..5f72a28 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/zweihander/bronze-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/zweihander/cobalt-2h.vox b/assets/voxygen/voxel/weapon/sword/zweihander/cobalt-2h.vox new file mode 100644 index 0000000..ceafcf0 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/zweihander/cobalt-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/zweihander/iron-2h.vox b/assets/voxygen/voxel/weapon/sword/zweihander/iron-2h.vox new file mode 100644 index 0000000..0b9ea6c Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/zweihander/iron-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/zweihander/orichalcum-2h.vox b/assets/voxygen/voxel/weapon/sword/zweihander/orichalcum-2h.vox new file mode 100644 index 0000000..d4fdc94 Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/zweihander/orichalcum-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/sword/zweihander/steel-2h.vox b/assets/voxygen/voxel/weapon/sword/zweihander/steel-2h.vox new file mode 100644 index 0000000..4e618eb Binary files /dev/null and b/assets/voxygen/voxel/weapon/sword/zweihander/steel-2h.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/banjo.vox b/assets/voxygen/voxel/weapon/tool/banjo.vox new file mode 100644 index 0000000..166bac4 Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/banjo.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/black_velvet_guitar.vox b/assets/voxygen/voxel/weapon/tool/black_velvet_guitar.vox new file mode 100644 index 0000000..2253d4b Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/black_velvet_guitar.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/broom-0.vox b/assets/voxygen/voxel/weapon/tool/broom-0.vox new file mode 100644 index 0000000..f886261 Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/broom-0.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/broom-belzeshrub.vox b/assets/voxygen/voxel/weapon/tool/broom-belzeshrub.vox new file mode 100644 index 0000000..454b5d3 Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/broom-belzeshrub.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/broom_belzeshrub_green.vox b/assets/voxygen/voxel/weapon/tool/broom_belzeshrub_green.vox new file mode 100644 index 0000000..bb33536 Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/broom_belzeshrub_green.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/broom_belzeshrub_purple.vox b/assets/voxygen/voxel/weapon/tool/broom_belzeshrub_purple.vox new file mode 100644 index 0000000..102d577 Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/broom_belzeshrub_purple.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/fishing_rod_blue-0.vox b/assets/voxygen/voxel/weapon/tool/fishing_rod_blue-0.vox new file mode 100644 index 0000000..7e22de6 Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/fishing_rod_blue-0.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/fishing_rod_orange-0.vox b/assets/voxygen/voxel/weapon/tool/fishing_rod_orange-0.vox new file mode 100644 index 0000000..3b385e2 Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/fishing_rod_orange-0.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/glass_flute.vox b/assets/voxygen/voxel/weapon/tool/glass_flute.vox new file mode 100644 index 0000000..7aca96e Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/glass_flute.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/golf_club.vox b/assets/voxygen/voxel/weapon/tool/golf_club.vox new file mode 100644 index 0000000..0466e91 Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/golf_club.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/guitar_dark.vox b/assets/voxygen/voxel/weapon/tool/guitar_dark.vox new file mode 100644 index 0000000..ead3206 Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/guitar_dark.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/hoe_blue.vox b/assets/voxygen/voxel/weapon/tool/hoe_blue.vox new file mode 100644 index 0000000..4128c03 Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/hoe_blue.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/hoe_green.vox b/assets/voxygen/voxel/weapon/tool/hoe_green.vox new file mode 100644 index 0000000..ad79eee Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/hoe_green.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/icy_talharpa.vox b/assets/voxygen/voxel/weapon/tool/icy_talharpa.vox new file mode 100644 index 0000000..1afdaf8 Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/icy_talharpa.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/kora.vox b/assets/voxygen/voxel/weapon/tool/kora.vox new file mode 100644 index 0000000..cd0143e Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/kora.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/melodica.vox b/assets/voxygen/voxel/weapon/tool/melodica.vox new file mode 100644 index 0000000..9978651 Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/melodica.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/pickaxe_green-0.vox b/assets/voxygen/voxel/weapon/tool/pickaxe_green-0.vox new file mode 100644 index 0000000..1c9b50a Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/pickaxe_green-0.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/pickaxe_green-1.vox b/assets/voxygen/voxel/weapon/tool/pickaxe_green-1.vox new file mode 100644 index 0000000..aaacdde Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/pickaxe_green-1.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/pickaxe_stone.vox b/assets/voxygen/voxel/weapon/tool/pickaxe_stone.vox new file mode 100644 index 0000000..81bc78b Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/pickaxe_stone.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/pickaxe_velorite.vox b/assets/voxygen/voxel/weapon/tool/pickaxe_velorite.vox new file mode 100644 index 0000000..fc6c088 Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/pickaxe_velorite.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/pitchfork-0.vox b/assets/voxygen/voxel/weapon/tool/pitchfork-0.vox new file mode 100644 index 0000000..c9ac094 Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/pitchfork-0.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/rake-0.vox b/assets/voxygen/voxel/weapon/tool/rake-0.vox new file mode 100644 index 0000000..99dc9c9 Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/rake-0.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/shamisen.vox b/assets/voxygen/voxel/weapon/tool/shamisen.vox new file mode 100644 index 0000000..28c8c79 Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/shamisen.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/shovel_blue.vox b/assets/voxygen/voxel/weapon/tool/shovel_blue.vox new file mode 100644 index 0000000..b229d95 Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/shovel_blue.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/shovel_gold.vox b/assets/voxygen/voxel/weapon/tool/shovel_gold.vox new file mode 100644 index 0000000..018b826 Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/shovel_gold.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/shovel_green.vox b/assets/voxygen/voxel/weapon/tool/shovel_green.vox new file mode 100644 index 0000000..949cffa Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/shovel_green.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/shovel_red.vox b/assets/voxygen/voxel/weapon/tool/shovel_red.vox new file mode 100644 index 0000000..7190fa5 Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/shovel_red.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/steeltonguedrum.vox b/assets/voxygen/voxel/weapon/tool/steeltonguedrum.vox new file mode 100644 index 0000000..e51e5bb Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/steeltonguedrum.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/washboard.vox b/assets/voxygen/voxel/weapon/tool/washboard.vox new file mode 100644 index 0000000..99aec7e Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/washboard.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/wildskin_drum.vox b/assets/voxygen/voxel/weapon/tool/wildskin_drum.vox new file mode 100644 index 0000000..e3d01e3 Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/wildskin_drum.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/wooden_bass.vox b/assets/voxygen/voxel/weapon/tool/wooden_bass.vox new file mode 100644 index 0000000..fe38286 Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/wooden_bass.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/wooden_flute.vox b/assets/voxygen/voxel/weapon/tool/wooden_flute.vox new file mode 100644 index 0000000..5bfc48a Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/wooden_flute.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/wooden_guitar.vox b/assets/voxygen/voxel/weapon/tool/wooden_guitar.vox new file mode 100644 index 0000000..9ff99d9 Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/wooden_guitar.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/wooden_kalimba.vox b/assets/voxygen/voxel/weapon/tool/wooden_kalimba.vox new file mode 100644 index 0000000..4a889bc Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/wooden_kalimba.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/wooden_lute.vox b/assets/voxygen/voxel/weapon/tool/wooden_lute.vox new file mode 100644 index 0000000..3020007 Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/wooden_lute.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/wooden_lyre.vox b/assets/voxygen/voxel/weapon/tool/wooden_lyre.vox new file mode 100644 index 0000000..0ee06c6 Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/wooden_lyre.vox differ diff --git a/assets/voxygen/voxel/weapon/tool/wooden_sitar.vox b/assets/voxygen/voxel/weapon/tool/wooden_sitar.vox new file mode 100644 index 0000000..0d0d992 Binary files /dev/null and b/assets/voxygen/voxel/weapon/tool/wooden_sitar.vox differ diff --git a/src/bot.rs b/src/bot.rs index 06a69a3..bf062fc 100644 --- a/src/bot.rs +++ b/src/bot.rs @@ -125,6 +125,8 @@ impl Bot { clock.tick(); } + client.request_player_physics(false); + let position = if let Some(coords) = position { Pos(coords.into()) } else { @@ -256,12 +258,16 @@ impl Bot { let price_correction_message = "Use the format 'price [search_term]'"; let correction_message = match command { "admin_access" => { - if self.is_user_admin(&sender)? && !self.client.is_trading() { + if self.is_user_admin(&sender)? { info!("Providing admin access"); self.previous_trade = None; self.trade_mode = TradeMode::AdminAccess; + if self.client.is_trading() { + self.client.perform_trade_action(TradeAction::Decline); + } + self.client.send_invite(sender, InviteKind::Trade); None @@ -628,6 +634,8 @@ impl Bot { } if !self.sell_prices.0.contains_key(&item_id) { + info!("No sell price for {item_id:?}"); + my_item_to_remove = Some((*slot_id, *amount)); } } @@ -643,28 +651,16 @@ impl Bot { } if !self.buy_prices.0.contains_key(&item_id) { + info!("No buy price for {item_id:?}"); + their_item_to_remove = Some((*slot_id, *amount)); } } drop(inventories); - // If the trade hasn't changed, do nothing to avoid spamming the server. - if let Some(previous) = &self.previous_trade { - if previous == &trade { - return Ok(()); - } - } - - // Up until now there may have been an error, so we only update and check the previous - // offer now. The trade action is infallible from here. - self.previous_trade = Some(trade); - - debug!("Performing trade action with {their_name}"); - // Before running any actual trade logic, remove items that are not for sale or not being // purchased. End this trade action if an item was removed. - if let Some((slot_id, quantity)) = my_item_to_remove { self.client.perform_trade_action(TradeAction::RemoveItem { item: slot_id, @@ -687,6 +683,19 @@ impl Bot { let difference = their_offered_items_value - my_offered_items_value; + // If the trade hasn't changed, do nothing to avoid spamming the server. + if let Some(previous) = &self.previous_trade { + if previous == &trade { + return Ok(()); + } + } + + // Up until now there may have been an error, so we only update and check the previous + // offer now. The trade action is infallible from here. + self.previous_trade = Some(trade); + + debug!("Performing trade action with {their_name}"); + // The if/else statements below implement the bot's main feature: buying, selling and // trading items according to the values set in the configuration file. Coins are used to // balance the value of the trade. If there are not enough or no coins to balance the diff --git a/src/config.rs b/src/config.rs index 93e6a2e..a337915 100644 --- a/src/config.rs +++ b/src/config.rs @@ -13,7 +13,7 @@ use serde::{ de::{self, Visitor}, Deserialize, }; -use veloren_common::comp::item::{ItemDefinitionIdOwned, Material}; +use veloren_common::comp::item::ItemDefinitionIdOwned; #[derive(Deserialize)] /// Non-sensitive configuration values. @@ -70,25 +70,19 @@ impl<'de> Visitor<'de> for PriceListVisitor { while let Some((key, value)) = map.next_entry::()? { let item_id = match key.splitn(3, '|').collect::>().as_slice() { [material, primary, secondary] => { - let material = material.parse::().map_err(|error| { - de::Error::custom(format!("Failed to parse material: {}", error)) - })?; - let mut primary = primary.to_string(); - let mut secondary = secondary.to_string(); - - primary.insert_str(0, "common.items.modular.weapon.primary."); - secondary.insert_str(0, "common.items.modular.weapon.secondary."); + let material = "common.items.".to_string() + material; + let primary = "common.items.modular.weapon.primary.".to_string() + primary; + let secondary = + "common.items.modular.weapon.secondary.".to_string() + secondary; ItemDefinitionIdOwned::Modular { pseudo_base: "veloren.core.pseudo_items.modular.tool".to_string(), components: vec![ + ItemDefinitionIdOwned::Simple(secondary), ItemDefinitionIdOwned::Compound { simple_base: primary, - components: vec![ItemDefinitionIdOwned::Simple( - material.asset_identifier().unwrap().to_string(), - )], + components: vec![ItemDefinitionIdOwned::Simple(material)], }, - ItemDefinitionIdOwned::Simple(secondary), ], } }