From 05c699878f063b691238cf65399596459cd7d046 Mon Sep 17 00:00:00 2001 From: Avi Weinstock Date: Thu, 3 Jun 2021 19:24:34 -0400 Subject: [PATCH 1/2] Add Basilisk and Cyclops models by Gemu, and AirBalloon model by SarraKitty. --- assets/server/manifests/ship_manifest.ron | 22 ++ assets/server/voxel/Air_Balloon.vox | 3 + assets/server/voxel/Air_Balloon_rudder.vox | 3 + assets/server/voxel/empty.vox | 3 + .../voxel/biped_large_central_manifest.ron | 6 +- .../voxygen/voxel/npc/basilisk/male/chest.vox | 4 +- .../voxel/npc/basilisk/male/foot_bl.vox | 3 + .../voxel/npc/basilisk/male/foot_br.vox | 4 +- .../voxel/npc/basilisk/male/foot_fl.vox | 3 + .../voxel/npc/basilisk/male/foot_fr.vox | 4 +- .../voxel/npc/basilisk/male/head_lower.vox | 4 +- .../voxel/npc/basilisk/male/head_upper.vox | 4 +- .../voxygen/voxel/npc/basilisk/male/jaw.vox | 4 +- .../voxel/npc/basilisk/male/tail_front.vox | 4 +- .../voxel/npc/basilisk/male/tail_rear.vox | 4 +- .../voxygen/voxel/npc/cyclops/male/foot_l.vox | 4 +- .../voxygen/voxel/npc/cyclops/male/foot_r.vox | 4 +- .../voxygen/voxel/npc/cyclops/male/hand_l.vox | 4 +- .../voxygen/voxel/npc/cyclops/male/hand_r.vox | 4 +- .../voxygen/voxel/npc/cyclops/male/head.vox | 4 +- assets/voxygen/voxel/npc/cyclops/male/jaw.vox | 3 + .../voxygen/voxel/npc/cyclops/male/leg_l.vox | 4 +- .../voxygen/voxel/npc/cyclops/male/leg_r.vox | 4 +- .../voxel/npc/cyclops/male/shoulder_l.vox | 4 +- .../voxel/npc/cyclops/male/shoulder_r.vox | 4 +- .../voxel/npc/cyclops/male/torso_lower.vox | 4 +- .../voxel/npc/cyclops/male/torso_upper.vox | 4 +- .../voxel/quadruped_low_central_manifest.ron | 10 +- .../voxel/quadruped_low_lateral_manifest.ron | 228 +++++++++--------- .../weapon/hammer/2hhammer_cyclops-0.vox | 4 +- common/src/comp/body.rs | 3 +- common/src/comp/body/ship.rs | 25 +- common/src/states/utils.rs | 6 +- server/src/cmd.rs | 2 +- server/src/rtsim/entity.rs | 2 +- voxygen/src/scene/figure/load.rs | 17 +- 36 files changed, 245 insertions(+), 174 deletions(-) create mode 100644 assets/server/voxel/Air_Balloon.vox create mode 100644 assets/server/voxel/Air_Balloon_rudder.vox create mode 100644 assets/server/voxel/empty.vox create mode 100644 assets/voxygen/voxel/npc/basilisk/male/foot_bl.vox create mode 100644 assets/voxygen/voxel/npc/basilisk/male/foot_fl.vox create mode 100644 assets/voxygen/voxel/npc/cyclops/male/jaw.vox diff --git a/assets/server/manifests/ship_manifest.ron b/assets/server/manifests/ship_manifest.ron index 07151cabda..9c3a71c9e0 100644 --- a/assets/server/manifests/ship_manifest.ron +++ b/assets/server/manifests/ship_manifest.ron @@ -25,4 +25,26 @@ central: ("rudder"), ), ), + AirBalloon: ( + bone0: ( + offset: (-14.5, -16.0, 0.0), + phys_offset: (0.0, 0.0, 0.0), + central: ("Air_Balloon"), + ), + bone1: ( + offset: (0.0, 0.0, 0.0), + phys_offset: (0.0, 0.0, 0.0), + central: ("empty"), + ), + bone2: ( + offset: (0.0, 0.0, 0.0), + phys_offset: (0.0, 0.0, 0.0), + central: ("empty"), + ), + bone3: ( + offset: (-1.5, 37.0, -6.5), + phys_offset: (0.0, 0.0, 0.0), + central: ("Air_Balloon_rudder"), + ), + ), }) diff --git a/assets/server/voxel/Air_Balloon.vox b/assets/server/voxel/Air_Balloon.vox new file mode 100644 index 0000000000..cd44aca129 --- /dev/null +++ b/assets/server/voxel/Air_Balloon.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d87bb1d01e3d2a08681c034611e1f4e84f8372e886af65d2e4ea428ca3d907de +size 57016 diff --git a/assets/server/voxel/Air_Balloon_rudder.vox b/assets/server/voxel/Air_Balloon_rudder.vox new file mode 100644 index 0000000000..21cc07ec5a --- /dev/null +++ b/assets/server/voxel/Air_Balloon_rudder.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc47cb843a9fbde61b3c848b760a14fff34ef3ccf39a979b25900feef6dcd0d3 +size 1372 diff --git a/assets/server/voxel/empty.vox b/assets/server/voxel/empty.vox new file mode 100644 index 0000000000..f04b7224f0 --- /dev/null +++ b/assets/server/voxel/empty.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65c035d525a19cf76b7bf8d5ec0352f4b56cb8f4b3c2356459d919776a9a774c +size 1096 diff --git a/assets/voxygen/voxel/biped_large_central_manifest.ron b/assets/voxygen/voxel/biped_large_central_manifest.ron index 534151f37c..a576bcc9e6 100644 --- a/assets/voxygen/voxel/biped_large_central_manifest.ron +++ b/assets/voxygen/voxel/biped_large_central_manifest.ron @@ -67,7 +67,7 @@ ), jaw: ( offset: (0.0, 0.0, 0.0), - central: ("armor.empty"), + central: ("npc.cyclops.male.jaw"), ), tail: ( offset: (0.0, 0.0, 0.0), @@ -93,7 +93,7 @@ ), jaw: ( offset: (0.0, 0.0, 0.0), - central: ("armor.empty"), + central: ("npc.cyclops.male.jaw"), ), tail: ( offset: (0.0, 0.0, 0.0), @@ -832,4 +832,4 @@ central: ("armor.empty"), ) ), -}) \ No newline at end of file +}) diff --git a/assets/voxygen/voxel/npc/basilisk/male/chest.vox b/assets/voxygen/voxel/npc/basilisk/male/chest.vox index bf9db901ec..43ea16b948 100644 --- a/assets/voxygen/voxel/npc/basilisk/male/chest.vox +++ b/assets/voxygen/voxel/npc/basilisk/male/chest.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:052e1f43f55fd46abe5d00d7f55edd0d1d3c16e6f593267a2f1e9e55084c1bee -size 10876 +oid sha256:f8f1c0b69b16799bec8fa111a6ab5e828b3abd3fcacafc3b526776017367e794 +size 16620 diff --git a/assets/voxygen/voxel/npc/basilisk/male/foot_bl.vox b/assets/voxygen/voxel/npc/basilisk/male/foot_bl.vox new file mode 100644 index 0000000000..222b9101d0 --- /dev/null +++ b/assets/voxygen/voxel/npc/basilisk/male/foot_bl.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4e722d8d1b080aaacaa20623fb758bbdb523208f3ca5ce1af01f8ffe0564437 +size 2468 diff --git a/assets/voxygen/voxel/npc/basilisk/male/foot_br.vox b/assets/voxygen/voxel/npc/basilisk/male/foot_br.vox index e9461a2bb5..24d656f5af 100644 --- a/assets/voxygen/voxel/npc/basilisk/male/foot_br.vox +++ b/assets/voxygen/voxel/npc/basilisk/male/foot_br.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b9d4c2c39ec3b08cebee105c24edf9cc5b11b0b3f156860a5cbb0960ff59817a -size 2920 +oid sha256:30d9267abad04ac44eef548ed38397dd3aca470cdd7549ad42048ab247f63c44 +size 2468 diff --git a/assets/voxygen/voxel/npc/basilisk/male/foot_fl.vox b/assets/voxygen/voxel/npc/basilisk/male/foot_fl.vox new file mode 100644 index 0000000000..f855c7b1d0 --- /dev/null +++ b/assets/voxygen/voxel/npc/basilisk/male/foot_fl.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1982cf07797088327c65e9bef477ee690fa3947c3134168ecbd7db0c0dbf522 +size 3224 diff --git a/assets/voxygen/voxel/npc/basilisk/male/foot_fr.vox b/assets/voxygen/voxel/npc/basilisk/male/foot_fr.vox index 3002f165c1..fc4a667f81 100644 --- a/assets/voxygen/voxel/npc/basilisk/male/foot_fr.vox +++ b/assets/voxygen/voxel/npc/basilisk/male/foot_fr.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:885bd8acd9ad061d3bcbdd37f21075bc54f2138387e25caf95e4cedf4123f184 -size 3088 +oid sha256:c0da37fef02f5f2750b13e0bed6cfa430ebcd7800e32b26e5295d9997679d353 +size 3224 diff --git a/assets/voxygen/voxel/npc/basilisk/male/head_lower.vox b/assets/voxygen/voxel/npc/basilisk/male/head_lower.vox index f030250eca..ebe47e9701 100644 --- a/assets/voxygen/voxel/npc/basilisk/male/head_lower.vox +++ b/assets/voxygen/voxel/npc/basilisk/male/head_lower.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5dcbdb071a465648417cdb0a3bb7c332347f5a7803f96b6e74bce181cd53b807 -size 7576 +oid sha256:60899a518a8e22b1bf7765c502031cf3cc9c2f523934289ca5c9ba23f3989f26 +size 8260 diff --git a/assets/voxygen/voxel/npc/basilisk/male/head_upper.vox b/assets/voxygen/voxel/npc/basilisk/male/head_upper.vox index 4a64783e9d..0dbc990660 100644 --- a/assets/voxygen/voxel/npc/basilisk/male/head_upper.vox +++ b/assets/voxygen/voxel/npc/basilisk/male/head_upper.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8dc95681a5e78dbbd5cbca2d4e6763c7b677e3e011bc97f3b79337c32519fda6 -size 3756 +oid sha256:b2eae44dfa0bb3a9636a18bf5f3e7695a1296a956acc6d55866bc5a4c66505a4 +size 2716 diff --git a/assets/voxygen/voxel/npc/basilisk/male/jaw.vox b/assets/voxygen/voxel/npc/basilisk/male/jaw.vox index 6966ed9c1f..57a221b8f8 100644 --- a/assets/voxygen/voxel/npc/basilisk/male/jaw.vox +++ b/assets/voxygen/voxel/npc/basilisk/male/jaw.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b35a9d21875eea4afb5a018d436523e16d00c880e24502cef440cc37780f8f58 -size 1552 +oid sha256:281bd89f8a2f5ea7cba991838a7b3da88fc26f7914c483758cec34946c442394 +size 2460 diff --git a/assets/voxygen/voxel/npc/basilisk/male/tail_front.vox b/assets/voxygen/voxel/npc/basilisk/male/tail_front.vox index 439e72d002..5cedf144fb 100644 --- a/assets/voxygen/voxel/npc/basilisk/male/tail_front.vox +++ b/assets/voxygen/voxel/npc/basilisk/male/tail_front.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cb65b35605d1eb968ec2f45bceeaee2e02d90c18304bbe99b383fff3633c72f4 -size 4564 +oid sha256:97bce3bceec9f9eca91e78f3f9577eec0f86b9c6675020d235e0071687e71788 +size 3856 diff --git a/assets/voxygen/voxel/npc/basilisk/male/tail_rear.vox b/assets/voxygen/voxel/npc/basilisk/male/tail_rear.vox index 88d41f14a2..3b3896df16 100644 --- a/assets/voxygen/voxel/npc/basilisk/male/tail_rear.vox +++ b/assets/voxygen/voxel/npc/basilisk/male/tail_rear.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6b01b1e3e492edd539f3af4469bed8f44df2afa4eaec04222fb790a8edcfd2e8 -size 2772 +oid sha256:4126426072cb5bf690cca20ef897fc0f83f78b319204cfa9da06f5dca352076d +size 2784 diff --git a/assets/voxygen/voxel/npc/cyclops/male/foot_l.vox b/assets/voxygen/voxel/npc/cyclops/male/foot_l.vox index 2f146c7c31..0f1bcfca7d 100644 --- a/assets/voxygen/voxel/npc/cyclops/male/foot_l.vox +++ b/assets/voxygen/voxel/npc/cyclops/male/foot_l.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:81cff203047e32c79688437f1836cf1a6dc5885e68fe9accae81cca9054aa4ea -size 2196 +oid sha256:c5421f89546e4a9df6f7462de418b7b9059b6dc17f5893a936d8e1f22f282a82 +size 2608 diff --git a/assets/voxygen/voxel/npc/cyclops/male/foot_r.vox b/assets/voxygen/voxel/npc/cyclops/male/foot_r.vox index 60b9653790..0f1bcfca7d 100644 --- a/assets/voxygen/voxel/npc/cyclops/male/foot_r.vox +++ b/assets/voxygen/voxel/npc/cyclops/male/foot_r.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3d7a5a5bc8f2e594f59d79ad17476b9cbeec85e57d43a3532ad00ad8ede8729e -size 2196 +oid sha256:c5421f89546e4a9df6f7462de418b7b9059b6dc17f5893a936d8e1f22f282a82 +size 2608 diff --git a/assets/voxygen/voxel/npc/cyclops/male/hand_l.vox b/assets/voxygen/voxel/npc/cyclops/male/hand_l.vox index b20ab78ca0..c062379ade 100644 --- a/assets/voxygen/voxel/npc/cyclops/male/hand_l.vox +++ b/assets/voxygen/voxel/npc/cyclops/male/hand_l.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1b5226d3ecaed0fb73234f9f3d3affcc59dcbd8706779200b63b28e87edb8f02 -size 2112 +oid sha256:5452e51012bc041273a05a6489fdf9d1ee86b002fc46cbbd3c2761aa6796b461 +size 4876 diff --git a/assets/voxygen/voxel/npc/cyclops/male/hand_r.vox b/assets/voxygen/voxel/npc/cyclops/male/hand_r.vox index ecea029887..c062379ade 100644 --- a/assets/voxygen/voxel/npc/cyclops/male/hand_r.vox +++ b/assets/voxygen/voxel/npc/cyclops/male/hand_r.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:00d0ac3627f8d6771015034f587c427c7a8aa4871f7e07acafdd784d7d40cbe5 -size 2112 +oid sha256:5452e51012bc041273a05a6489fdf9d1ee86b002fc46cbbd3c2761aa6796b461 +size 4876 diff --git a/assets/voxygen/voxel/npc/cyclops/male/head.vox b/assets/voxygen/voxel/npc/cyclops/male/head.vox index 1fc6a36741..9d7adf4eca 100644 --- a/assets/voxygen/voxel/npc/cyclops/male/head.vox +++ b/assets/voxygen/voxel/npc/cyclops/male/head.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:62d3880cc06063cfe4e39916bc68242825d7af906b87c8c11d89eaec114cb8b9 -size 4812 +oid sha256:2d87d90f58dcc00fe7466da1d6df035681ce956309f05fa74b6d8ce35f3e153f +size 5376 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 0000000000..1417fee6f6 --- /dev/null +++ b/assets/voxygen/voxel/npc/cyclops/male/jaw.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da59fa2ad49a56bc17e053d8e35ecf5a186e8749e4d0ebd020e910cbd198fbdf +size 1584 diff --git a/assets/voxygen/voxel/npc/cyclops/male/leg_l.vox b/assets/voxygen/voxel/npc/cyclops/male/leg_l.vox index 80a44d9c98..3382959ed8 100644 --- a/assets/voxygen/voxel/npc/cyclops/male/leg_l.vox +++ b/assets/voxygen/voxel/npc/cyclops/male/leg_l.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:99f371b580f7c5887be8178306d3939c9cffec94dcc8f997f74f4b1b42bf26a2 -size 1932 +oid sha256:983d225dadb0462583fb3820e5117926d459fa271bc481d55324de4f69e29d44 +size 1928 diff --git a/assets/voxygen/voxel/npc/cyclops/male/leg_r.vox b/assets/voxygen/voxel/npc/cyclops/male/leg_r.vox index e91ad51fa9..651ebc59e6 100644 --- a/assets/voxygen/voxel/npc/cyclops/male/leg_r.vox +++ b/assets/voxygen/voxel/npc/cyclops/male/leg_r.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:42bfae287134f49887a345180df8dcc534335c5f55dc90e24bd99f3b5c9cd815 -size 1932 +oid sha256:8bd2e4433a90d2af5344198e045608a89f907f2ab0ee705467196a3511a949bc +size 1928 diff --git a/assets/voxygen/voxel/npc/cyclops/male/shoulder_l.vox b/assets/voxygen/voxel/npc/cyclops/male/shoulder_l.vox index fa43b91ac4..e33218f798 100644 --- a/assets/voxygen/voxel/npc/cyclops/male/shoulder_l.vox +++ b/assets/voxygen/voxel/npc/cyclops/male/shoulder_l.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:315d56efea48853303cf38969c28fef54263acd39557c6a445e72ff7a8c5ce9c -size 2024 +oid sha256:86a4c083928349989d57be700ed9a41ae061b227890c064f5c126b9dd607b5cf +size 4308 diff --git a/assets/voxygen/voxel/npc/cyclops/male/shoulder_r.vox b/assets/voxygen/voxel/npc/cyclops/male/shoulder_r.vox index c220338abf..e33218f798 100644 --- a/assets/voxygen/voxel/npc/cyclops/male/shoulder_r.vox +++ b/assets/voxygen/voxel/npc/cyclops/male/shoulder_r.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:456850b7812bda2a23fbf7786782718d5ebb924c7d9247da30ef9300dcf26094 -size 2024 +oid sha256:86a4c083928349989d57be700ed9a41ae061b227890c064f5c126b9dd607b5cf +size 4308 diff --git a/assets/voxygen/voxel/npc/cyclops/male/torso_lower.vox b/assets/voxygen/voxel/npc/cyclops/male/torso_lower.vox index 5d46d791e2..20480df3af 100644 --- a/assets/voxygen/voxel/npc/cyclops/male/torso_lower.vox +++ b/assets/voxygen/voxel/npc/cyclops/male/torso_lower.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2a8acb22930276c38f00e84b14a7f13e4e7e7d8321faba8f5a2970222923183c -size 2996 +oid sha256:869020e350e4a9902978b5865e6065c38c58050aca9a2b93f410a69f9d459195 +size 3436 diff --git a/assets/voxygen/voxel/npc/cyclops/male/torso_upper.vox b/assets/voxygen/voxel/npc/cyclops/male/torso_upper.vox index c28355c0f4..d411bd3a1d 100644 --- a/assets/voxygen/voxel/npc/cyclops/male/torso_upper.vox +++ b/assets/voxygen/voxel/npc/cyclops/male/torso_upper.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:21918d8c3dc0978e96b3b213bc00e58a3421e29069670eb58f36975c4f07c575 -size 6272 +oid sha256:66d7d52a0a8f2b368bbe9d04256e7e8913ec379da7d43753f928f8ea334f0258 +size 12112 diff --git a/assets/voxygen/voxel/quadruped_low_central_manifest.ron b/assets/voxygen/voxel/quadruped_low_central_manifest.ron index 1ba0cb245e..596ba1061e 100644 --- a/assets/voxygen/voxel/quadruped_low_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_central_manifest.ron @@ -626,19 +626,19 @@ ), (Basilisk, Male): ( upper: ( - offset: (-5.5, 0.0, -11.0), + offset: (-7.5, 0.0, -11.0), central: ("npc.basilisk.male.head_upper"), ), lower: ( - offset: (-8.5, 0.0, -4.0), + offset: (-13.5, -2.0, -4.0), central: ("npc.basilisk.male.head_lower"), ), jaw: ( - offset: (-2.5, 0.0, -15.0), + offset: (-6.5, 0.0, -15.0), central: ("npc.basilisk.male.jaw"), ), chest: ( - offset: (-6.5, -13.0, -12.5), + offset: (-13.5, -13.0, -12.5), central: ("npc.basilisk.male.chest"), ), tail_rear: ( @@ -646,7 +646,7 @@ central: ("npc.basilisk.male.tail_rear"), ), tail_front: ( - offset: (-4.5, -24.0, -7.0), + offset: (-10.5, -24.0, -7.0), central: ("npc.basilisk.male.tail_front"), ), ), diff --git a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron index 8ea1f198f9..3ccb29e206 100644 --- a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron @@ -2,505 +2,505 @@ (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"), + 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"), + 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"), + 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"), + lateral: ("npc.crocodile.male.foot_br", false), ), ), (Crocodile, Female): ( front_left: ( offset: (-7.0, -0.0, -4.0), - lateral: ("npc.crocodile.male.foot_fr"), + lateral: ("npc.crocodile.male.foot_fr", false), ), front_right: ( offset: (0.0, -0.0, -4.0), - lateral: ("npc.crocodile.male.foot_fr"), + lateral: ("npc.crocodile.male.foot_fr", false), ), back_left: ( offset: (-8.0, -0.0, -4.0), - lateral: ("npc.crocodile.male.foot_br"), + lateral: ("npc.crocodile.male.foot_br", false), ), back_right: ( offset: (0.0, -0.0, -4.0), - lateral: ("npc.crocodile.male.foot_br"), + lateral: ("npc.crocodile.male.foot_br", false), ), ), (Alligator, Male): ( front_left: ( offset: (-7.0, 0.0, -4.0), - lateral: ("npc.alligator.male.foot_fr"), + lateral: ("npc.alligator.male.foot_fr", false), ), front_right: ( offset: (-0.0, 0.0, -4.0), - lateral: ("npc.alligator.male.foot_fr"), + lateral: ("npc.alligator.male.foot_fr", false), ), back_left: ( offset: (-8.0, 0.0, -4.0), - lateral: ("npc.alligator.male.foot_br"), + lateral: ("npc.alligator.male.foot_br", false), ), back_right: ( offset: (-0.0, 0.0, -4.0), - lateral: ("npc.alligator.male.foot_br"), + lateral: ("npc.alligator.male.foot_br", false), ), ), (Alligator, Female): ( front_left: ( offset: (-7.0, 0.0, -4.0), - lateral: ("npc.alligator.male.foot_fr"), + lateral: ("npc.alligator.male.foot_fr", false), ), front_right: ( offset: (0.0, 0.0, -4.0), - lateral: ("npc.alligator.male.foot_fr"), + lateral: ("npc.alligator.male.foot_fr", false), ), back_left: ( offset: (-8.0, 0.0, -4.0), - lateral: ("npc.alligator.male.foot_br"), + lateral: ("npc.alligator.male.foot_br", false), ), back_right: ( offset: (0.0, 0.0, -4.0), - lateral: ("npc.alligator.male.foot_br"), + lateral: ("npc.alligator.male.foot_br", false), ), ), (Salamander, Male): ( front_left: ( offset: (-6.0, 0.0, -3.0), - lateral: ("npc.salamander.male.foot_fr"), + lateral: ("npc.salamander.male.foot_fr", false), ), front_right: ( offset: (0.0, 0.0, -3.0), - lateral: ("npc.salamander.male.foot_fr"), + lateral: ("npc.salamander.male.foot_fr", false), ), back_left: ( offset: (-7.0, 0.0, -3.0), - lateral: ("npc.salamander.male.foot_br"), + lateral: ("npc.salamander.male.foot_br", false), ), back_right: ( offset: (-0.0, 0.0, -3.0), - lateral: ("npc.salamander.male.foot_br"), + lateral: ("npc.salamander.male.foot_br", false), ), ), (Salamander, Female): ( front_left: ( offset: (-6.0, 0.0, -3.0), - lateral: ("npc.salamander.female.foot_fr"), + lateral: ("npc.salamander.female.foot_fr", false), ), front_right: ( offset: (0.0, 0.0, -3.0), - lateral: ("npc.salamander.female.foot_fr"), + lateral: ("npc.salamander.female.foot_fr", false), ), back_left: ( offset: (-8.0, 0.0, -3.0), - lateral: ("npc.salamander.female.foot_br"), + lateral: ("npc.salamander.female.foot_br", false), ), back_right: ( offset: (0.0, 0.0, -3.0), - lateral: ("npc.salamander.female.foot_br"), + lateral: ("npc.salamander.female.foot_br", false), ), ), (Monitor, Male): ( front_left: ( offset: (-8.0, 0.0, -5.0), - lateral: ("npc.monitor.male.foot_fr"), + lateral: ("npc.monitor.male.foot_fr", false), ), front_right: ( offset: (0.0, 0.0, -5.0), - lateral: ("npc.monitor.male.foot_fr"), + lateral: ("npc.monitor.male.foot_fr", false), ), back_left: ( offset: (-7.0, 0.0, -5.0), - lateral: ("npc.monitor.male.foot_br"), + lateral: ("npc.monitor.male.foot_br", false), ), back_right: ( offset: (0.0, 0.0, -5.0), - lateral: ("npc.monitor.male.foot_br"), + lateral: ("npc.monitor.male.foot_br", false), ), ), (Monitor, Female): ( front_left: ( offset: (-8.0, 0.0, -5.0), - lateral: ("npc.monitor.male.foot_fr"), + lateral: ("npc.monitor.male.foot_fr", false), ), front_right: ( offset: (0.0, 0.0, -5.0), - lateral: ("npc.monitor.male.foot_fr"), + lateral: ("npc.monitor.male.foot_fr", false), ), back_left: ( offset: (-7.0, 0.0, -5.0), - lateral: ("npc.monitor.male.foot_br"), + lateral: ("npc.monitor.male.foot_br", false), ), back_right: ( offset: (0.0, 0.0, -5.0), - lateral: ("npc.monitor.male.foot_br"), + lateral: ("npc.monitor.male.foot_br", false), ), ), (Asp, Male): ( front_left: ( offset: (-10.0, 0.0, -6.5), - lateral: ("npc.asp.male.foot_fr"), + lateral: ("npc.asp.male.foot_fr", false), ), front_right: ( offset: (0.0, 0.0, -6.5), - lateral: ("npc.asp.male.foot_fr"), + lateral: ("npc.asp.male.foot_fr", false), ), back_left: ( offset: (-7.5, 0.0, -6.5), - lateral: ("npc.asp.male.foot_br"), + lateral: ("npc.asp.male.foot_br", false), ), back_right: ( offset: (0.0, 0.0, -6.5), - lateral: ("npc.asp.male.foot_br"), + lateral: ("npc.asp.male.foot_br", false), ), ), (Asp, Female): ( front_left: ( offset: (-10.0, 0.0, -6.5), - lateral: ("npc.asp.male.foot_fr"), + lateral: ("npc.asp.male.foot_fr", false), ), front_right: ( offset: (0.0, 0.0, -6.5), - lateral: ("npc.asp.male.foot_fr"), + lateral: ("npc.asp.male.foot_fr", false), ), back_left: ( offset: (-7.5, 0.0, -6.5), - lateral: ("npc.asp.male.foot_br"), + lateral: ("npc.asp.male.foot_br", false), ), back_right: ( offset: (0.0, 0.0, -6.5), - lateral: ("npc.asp.male.foot_br"), + lateral: ("npc.asp.male.foot_br", false), ), ), (Tortoise, Male): ( front_left: ( offset: (-7.0, 0.0, -8.0), - lateral: ("npc.tortoise.male.foot_fr"), + lateral: ("npc.tortoise.male.foot_fr", false), ), front_right: ( offset: (0.0, 0.0, -8.0), - lateral: ("npc.tortoise.male.foot_fr"), + lateral: ("npc.tortoise.male.foot_fr", false), ), back_left: ( offset: (-7.0, 0.0, -8.0), - lateral: ("npc.tortoise.male.foot_br"), + lateral: ("npc.tortoise.male.foot_br", false), ), back_right: ( offset: (0.0, 0.0, -8.0), - lateral: ("npc.tortoise.male.foot_br"), + lateral: ("npc.tortoise.male.foot_br", false), ), ), (Tortoise, Female): ( front_left: ( offset: (-7.0, 0.0, -8.0), - lateral: ("npc.tortoise.male.foot_fr"), + lateral: ("npc.tortoise.male.foot_fr", false), ), front_right: ( offset: (0.0, 0.0, -8.0), - lateral: ("npc.tortoise.male.foot_fr"), + lateral: ("npc.tortoise.male.foot_fr", false), ), back_left: ( offset: (-7.0, 0.0, -8.0), - lateral: ("npc.tortoise.male.foot_br"), + lateral: ("npc.tortoise.male.foot_br", false), ), back_right: ( offset: (0.0, 0.0, -8.0), - lateral: ("npc.tortoise.male.foot_br"), + lateral: ("npc.tortoise.male.foot_br", false), ), ), (Rocksnapper, Male): ( front_left: ( offset: (-12.0, 0.0, -10.0), - lateral: ("npc.rocksnapper.male.foot_fr"), + lateral: ("npc.rocksnapper.male.foot_fr", false), ), front_right: ( offset: (0.0, 0.0, -10.0), - lateral: ("npc.rocksnapper.male.foot_fr"), + lateral: ("npc.rocksnapper.male.foot_fr", false), ), back_left: ( offset: (-11.0, -6.0, -9.0), - lateral: ("npc.rocksnapper.male.foot_br"), + lateral: ("npc.rocksnapper.male.foot_br", false), ), back_right: ( offset: (0.0, -6.0, -9.0), - lateral: ("npc.rocksnapper.male.foot_br"), + lateral: ("npc.rocksnapper.male.foot_br", false), ), ), (Rocksnapper, Female): ( front_left: ( offset: (-12.0, 0.0, -10.0), - lateral: ("npc.rocksnapper.male.foot_fr"), + lateral: ("npc.rocksnapper.male.foot_fr", false), ), front_right: ( offset: (0.0, 0.0, -10.0), - lateral: ("npc.rocksnapper.male.foot_fr"), + lateral: ("npc.rocksnapper.male.foot_fr", false), ), back_left: ( offset: (-11.0, -6.0, -9.0),//special case - lateral: ("npc.rocksnapper.male.foot_br"), + lateral: ("npc.rocksnapper.male.foot_br", false), ), back_right: ( offset: (0.0, -6.0, -9.0), - lateral: ("npc.rocksnapper.male.foot_br"), + lateral: ("npc.rocksnapper.male.foot_br", false), ), ), (Pangolin, Male): ( front_left: ( offset: (-1.5, 0.0, -6.0),//unique - lateral: ("npc.pangolin.male.foot_fr"), + lateral: ("npc.pangolin.male.foot_fr", false), ), front_right: ( offset: (-1.5, 0.0, -6.0), - lateral: ("npc.pangolin.male.foot_fr"), + lateral: ("npc.pangolin.male.foot_fr", false), ), back_left: ( offset: (-1.5, 0.0, -6.0), - lateral: ("npc.pangolin.male.foot_br"), + lateral: ("npc.pangolin.male.foot_br", false), ), back_right: ( offset: (-1.5, 0.0, -6.0), - lateral: ("npc.pangolin.male.foot_br"), + lateral: ("npc.pangolin.male.foot_br", false), ), ), (Pangolin, Female): ( front_left: ( offset: (-1.5, 0.0, -6.0), - lateral: ("npc.pangolin.male.foot_fr"), + lateral: ("npc.pangolin.male.foot_fr", false), ), front_right: ( offset: (-1.5, 0.0, -6.0), - lateral: ("npc.pangolin.male.foot_fr"), + lateral: ("npc.pangolin.male.foot_fr", false), ), back_left: ( offset: (-1.5, 0.0, -6.0),//special case - lateral: ("npc.pangolin.male.foot_br"), + lateral: ("npc.pangolin.male.foot_br", false), ), back_right: ( offset: (-1.5, 0.0, -6.0), - lateral: ("npc.pangolin.male.foot_br"), + lateral: ("npc.pangolin.male.foot_br", false), ), ), (Maneater, Male): ( front_left: ( offset: (-6.0, 0.0, -6.5), - lateral: ("npc.maneater.male.foot_fr"), + lateral: ("npc.maneater.male.foot_fr", false), ), front_right: ( offset: (-2.0, 0.0, -6.5), - lateral: ("npc.maneater.male.foot_fr"), + lateral: ("npc.maneater.male.foot_fr", false), ), back_left: ( offset: (-6.0, -8.0, -9.0), - lateral: ("npc.maneater.male.foot_br"), + lateral: ("npc.maneater.male.foot_br", false), ), back_right: ( offset: (-2.0, -8.0, -9.0), - lateral: ("npc.maneater.male.foot_br"), + lateral: ("npc.maneater.male.foot_br", false), ), ), (Maneater, Female): ( front_left: ( offset: (-6.0, 0.0, -6.5), - lateral: ("npc.maneater.male.foot_fr"), + lateral: ("npc.maneater.male.foot_fr", false), ), front_right: ( offset: (-2.0, 0.0, -6.5), - lateral: ("npc.maneater.male.foot_fr"), + lateral: ("npc.maneater.male.foot_fr", false), ), back_left: ( offset: (-6.0, -8.0, -9.0), - lateral: ("npc.maneater.male.foot_br"), + lateral: ("npc.maneater.male.foot_br", false), ), back_right: ( offset: (-2.0, -8.0, -9.0), - lateral: ("npc.maneater.male.foot_br"), + lateral: ("npc.maneater.male.foot_br", false), ), ), (Hakulaq, Male): ( front_left: ( offset: (-10.0, 0.0, -9.0), - lateral: ("npc.hakulaq.male.foot_fr"), + lateral: ("npc.hakulaq.male.foot_fr", false), ), front_right: ( offset: (0.0, 0.0, -9.0), - lateral: ("npc.hakulaq.male.foot_fr"), + lateral: ("npc.hakulaq.male.foot_fr", false), ), back_left: ( offset: (-10.0, 0.0, -9.0), - lateral: ("npc.hakulaq.male.foot_br"), + lateral: ("npc.hakulaq.male.foot_br", false), ), back_right: ( offset: (0.0, 0.0, -9.0), - lateral: ("npc.hakulaq.male.foot_br"), + lateral: ("npc.hakulaq.male.foot_br", false), ), ), (Hakulaq, Female): ( front_left: ( offset: (-10.0, 0.0, -9.0), - lateral: ("npc.hakulaq.male.foot_fr"), + lateral: ("npc.hakulaq.male.foot_fr", false), ), front_right: ( offset: (0.0, 0.0, -9.0), - lateral: ("npc.hakulaq.male.foot_fr"), + lateral: ("npc.hakulaq.male.foot_fr", false), ), back_left: ( offset: (-10.0, 0.0, -9.0), - lateral: ("npc.hakulaq.male.foot_br"), + lateral: ("npc.hakulaq.male.foot_br", false), ), back_right: ( offset: (0.0, 0.0, -9.0), - lateral: ("npc.hakulaq.male.foot_br"), + lateral: ("npc.hakulaq.male.foot_br", false), ), ), (Sandshark, Male): ( front_left: ( offset: (-17.0, 0.0, -12.0), - lateral: ("npc.sandshark.male.foot_fr"), + lateral: ("npc.sandshark.male.foot_fr", false), ), front_right: ( offset: (0.0, 0.0, -12.0), - lateral: ("npc.sandshark.male.foot_fr"), + lateral: ("npc.sandshark.male.foot_fr", false), ), back_left: ( offset: (-9.0, 0.0, -6.0), - lateral: ("npc.sandshark.male.foot_br"), + lateral: ("npc.sandshark.male.foot_br", false), ), back_right: ( offset: (-2.0, 0.0, -6.0), - lateral: ("npc.sandshark.male.foot_br"), + lateral: ("npc.sandshark.male.foot_br", false), ), ), (Sandshark, Female): ( front_left: ( offset: (-17.0, 0.0, -12.0), - lateral: ("npc.sandshark.male.foot_fr"), + lateral: ("npc.sandshark.male.foot_fr", false), ), front_right: ( offset: (0.0, 0.0, -12.0), - lateral: ("npc.sandshark.male.foot_fr"), + lateral: ("npc.sandshark.male.foot_fr", false), ), back_left: ( offset: (-9.0, 0.0, -6.0), - lateral: ("npc.sandshark.male.foot_br"), + lateral: ("npc.sandshark.male.foot_br", false), ), back_right: ( offset: (-2.0, 0.0, -6.0), - lateral: ("npc.sandshark.male.foot_br"), + lateral: ("npc.sandshark.male.foot_br", false), ), ), (Lavadrake, Male): ( front_left: ( offset: (-14.0, -4.0, -10.0), - lateral: ("npc.lavadrake.male.foot_fr"), + lateral: ("npc.lavadrake.male.foot_fr", false), ), front_right: ( offset: (0.0, -4.0, -10.0), - lateral: ("npc.lavadrake.male.foot_fr"), + lateral: ("npc.lavadrake.male.foot_fr", false), ), back_left: ( offset: (-14.0, -7.5, -10.0), - lateral: ("npc.lavadrake.male.foot_br"), + lateral: ("npc.lavadrake.male.foot_br", false), ), back_right: ( offset: (0.0, -7.5, -10.0), - lateral: ("npc.lavadrake.male.foot_br"), + lateral: ("npc.lavadrake.male.foot_br", false), ), ), (Lavadrake, Female): ( front_left: ( offset: (-14.0, -4.0, -10.0), - lateral: ("npc.lavadrake.male.foot_fr"), + lateral: ("npc.lavadrake.male.foot_fr", false), ), front_right: ( offset: (0.0, -4.0, -10.0), - lateral: ("npc.lavadrake.male.foot_fr"), + lateral: ("npc.lavadrake.male.foot_fr", false), ), back_left: ( offset: (-14.0, -7.5, -10.0), - lateral: ("npc.lavadrake.male.foot_br"), + lateral: ("npc.lavadrake.male.foot_br", false), ), back_right: ( offset: (0.0, -7.5, -10.0), - lateral: ("npc.lavadrake.male.foot_br"), + lateral: ("npc.lavadrake.male.foot_br", false), ), ), (Basilisk, Male): ( front_left: ( - offset: (-17.0, 0.0, -9.0), - lateral: ("npc.basilisk.male.foot_fr"), + offset: (-15.0, 0.0, -9.0), + lateral: ("npc.basilisk.male.foot_fl", true), ), front_right: ( offset: (0.0, 0.0, -9.0), - lateral: ("npc.basilisk.male.foot_fr"), + lateral: ("npc.basilisk.male.foot_fr", true), ), back_left: ( offset: (-15.0, 0.0, -9.0), - lateral: ("npc.basilisk.male.foot_br"), + lateral: ("npc.basilisk.male.foot_bl", true), ), back_right: ( offset: (0.0, 0.0, -9.0), - lateral: ("npc.basilisk.male.foot_br"), + lateral: ("npc.basilisk.male.foot_br", true), ), ), (Basilisk, Female): ( front_left: ( - offset: (-17.0, 0.0, -9.0), - lateral: ("npc.basilisk.male.foot_fr"), + offset: (-15.0, 0.0, -9.0), + lateral: ("npc.basilisk.male.foot_fl", true), ), front_right: ( offset: (0.0, 0.0, -9.0), - lateral: ("npc.basilisk.male.foot_fr"), + lateral: ("npc.basilisk.male.foot_fr", false), ), back_left: ( offset: (-15.0, 0.0, -9.0), - lateral: ("npc.basilisk.male.foot_br"), + lateral: ("npc.basilisk.male.foot_bl", true), ), back_right: ( offset: (0.0, 0.0, -9.0), - lateral: ("npc.basilisk.male.foot_br"), + lateral: ("npc.basilisk.male.foot_br", false), ), ), (Deadwood, Male): ( front_left: ( offset: (-5.0, -2.0, -7.0), - lateral: ("npc.deadwood.male.foot_fr"), + lateral: ("npc.deadwood.male.foot_fr", false), ), front_right: ( offset: (0.0, -2.0, -7.0), - lateral: ("npc.deadwood.male.foot_fr"), + lateral: ("npc.deadwood.male.foot_fr", false), ), back_left: ( offset: (-5.0, -1.0, -7.0), - lateral: ("npc.deadwood.male.foot_br"), + lateral: ("npc.deadwood.male.foot_br", false), ), back_right: ( offset: (0.0, -1.0, -7.0), - lateral: ("npc.deadwood.male.foot_br"), + lateral: ("npc.deadwood.male.foot_br", false), ), ), (Deadwood, Female): ( front_left: ( offset: (-5.0, -2.0, -7.0), - lateral: ("npc.deadwood.male.foot_fr"), + lateral: ("npc.deadwood.male.foot_fr", false), ), front_right: ( offset: (0.0, -2.0, -7.0), - lateral: ("npc.deadwood.male.foot_fr"), + lateral: ("npc.deadwood.male.foot_fr", false), ), back_left: ( offset: (-5.0, -1.0, -7.0), - lateral: ("npc.deadwood.male.foot_br"), + lateral: ("npc.deadwood.male.foot_br", false), ), back_right: ( offset: (0.0, -1.0, -7.0), - lateral: ("npc.deadwood.male.foot_br"), + lateral: ("npc.deadwood.male.foot_br", false), ), ), }) diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_cyclops-0.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_cyclops-0.vox index 9fe5f1434d..a0deb66239 100644 --- a/assets/voxygen/voxel/weapon/hammer/2hhammer_cyclops-0.vox +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_cyclops-0.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b2de23d8745cfc5e94954dce2be87fa16b6920551e7320ee0332d2d6b55f2550 -size 3112 +oid sha256:44e01e13e678b3d220a5294855e3153dd207083b128d4d294e0062538ee40526 +size 7496 diff --git a/common/src/comp/body.rs b/common/src/comp/body.rs index 82b0d3d46f..1707bd63a4 100644 --- a/common/src/comp/body.rs +++ b/common/src/comp/body.rs @@ -621,7 +621,7 @@ impl Body { Body::BirdLarge(_) => 50.0, Body::BirdMedium(_) => 40.0, Body::Dragon(_) => 60.0, - Body::Ship(ship::Body::DefaultAirship) => 60.0, + Body::Ship(ship) if ship.can_fly() => 60.0, _ => 0.0, } } @@ -688,6 +688,7 @@ impl Body { pub fn mounting_offset(&self) -> Vec3 { match self { Body::Ship(ship::Body::DefaultAirship) => Vec3::from([0.0, 0.0, 10.0]), + Body::Ship(ship::Body::AirBalloon) => Vec3::from([0.0, 0.0, 10.0]), _ => Vec3::unit_z(), } } diff --git a/common/src/comp/body/ship.rs b/common/src/comp/body/ship.rs index f880683d47..7e5d71d750 100644 --- a/common/src/comp/body/ship.rs +++ b/common/src/comp/body/ship.rs @@ -3,15 +3,19 @@ use crate::{ consts::AIR_DENSITY, make_case_elim, }; +use rand::prelude::SliceRandom; use serde::{Deserialize, Serialize}; use vek::Vec3; +pub const ALL_BODIES: [Body; 2] = [Body::DefaultAirship, Body::AirBalloon]; + make_case_elim!( body, #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] #[repr(u32)] pub enum Body { DefaultAirship = 0, + AirBalloon = 1, } ); @@ -20,13 +24,26 @@ impl From for super::Body { } impl Body { + pub fn random() -> Self { + let mut rng = rand::thread_rng(); + Self::random_with(&mut rng) + } + + pub fn random_with(rng: &mut impl rand::Rng) -> Self { *(&ALL_BODIES).choose(rng).unwrap() } + pub fn manifest_entry(&self) -> &'static str { match self { Body::DefaultAirship => "Human_Airship", + Body::AirBalloon => "Air_Balloon", } } - pub fn dimensions(&self) -> Vec3 { Vec3::new(25.0, 50.0, 40.0) } + pub fn dimensions(&self) -> Vec3 { + match self { + Body::DefaultAirship => Vec3::new(25.0, 50.0, 40.0), + Body::AirBalloon => Vec3::new(25.0, 50.0, 40.0), + } + } fn balloon_vol(&self) -> f32 { let spheroid_vol = |equat_d: f32, polar_d: f32| -> f32 { @@ -52,6 +69,12 @@ impl Body { pub fn density(&self) -> Density { Density(AIR_DENSITY) } pub fn mass(&self) -> Mass { Mass((self.hull_vol() + self.balloon_vol()) * self.density().0) } + + pub fn can_fly(&self) -> bool { + match self { + Body::DefaultAirship | Body::AirBalloon => true, + } + } } /// Terrain is 11.0 scale relative to small-scale voxels, diff --git a/common/src/states/utils.rs b/common/src/states/utils.rs index 109a6e6d92..7bec59dec1 100644 --- a/common/src/states/utils.rs +++ b/common/src/states/utils.rs @@ -3,7 +3,7 @@ use crate::{ biped_large, biped_small, inventory::slot::EquipSlot, item::{Hands, ItemKind, Tool, ToolKind}, - quadruped_low, quadruped_medium, quadruped_small, ship, + quadruped_low, quadruped_medium, quadruped_small, skills::{Skill, SwimSkill}, theropod, Body, CharacterAbility, CharacterState, Density, InputAttr, InputKind, InventoryAction, StateUpdate, @@ -190,7 +190,7 @@ impl Body { Body::BirdMedium(_) => Some(GRAVITY * self.mass().0 * 2.0), Body::BirdLarge(_) => Some(GRAVITY * self.mass().0 * 0.5), Body::Dragon(_) => Some(200_000.0), - Body::Ship(ship::Body::DefaultAirship) => Some(300_000.0), + Body::Ship(ship) if ship.can_fly() => Some(300_000.0), _ => None, } } @@ -390,7 +390,7 @@ pub fn fly_move(data: &JoinData, update: &mut StateUpdate, efficiency: f32) -> b update.vel.0.z += data.dt.0 * (anti_grav + accel * data.inputs.move_z.max(0.0)); }, // floaty floaty - Body::Ship(ship @ ship::Body::DefaultAirship) => { + Body::Ship(ship) if ship.can_fly() => { let regulate_density = |min: f32, max: f32, def: f32, rate: f32| -> Density { // Reset to default on no input let change = if data.inputs.move_z.abs() > std::f32::EPSILON { diff --git a/server/src/cmd.rs b/server/src/cmd.rs index b350359a88..c62e27a1a9 100644 --- a/server/src/cmd.rs +++ b/server/src/cmd.rs @@ -1152,7 +1152,7 @@ fn handle_spawn_airship( 200.0, ) }); - let ship = comp::ship::Body::DefaultAirship; + let ship = comp::ship::Body::random(); let mut builder = server .state .create_ship(pos, ship, true) diff --git a/server/src/rtsim/entity.rs b/server/src/rtsim/entity.rs index 1e299d62c5..5a066a7f0e 100644 --- a/server/src/rtsim/entity.rs +++ b/server/src/rtsim/entity.rs @@ -37,7 +37,7 @@ impl Entity { pub fn get_body(&self) -> comp::Body { match self.rng(PERM_GENUS).gen::() { // we want 5% airships, 45% birds, 50% humans - x if x < 0.05 => comp::Body::Ship(comp::ship::Body::DefaultAirship), + x if x < 0.05 => comp::ship::Body::random_with(&mut self.rng(PERM_BODY)).into(), x if x < 0.45 => { let species = *(&comp::bird_medium::ALL_SPECIES) .choose(&mut self.rng(PERM_SPECIES)) diff --git a/voxygen/src/scene/figure/load.rs b/voxygen/src/scene/figure/load.rs index 754ffd8eec..c4e97c10eb 100644 --- a/voxygen/src/scene/figure/load.rs +++ b/voxygen/src/scene/figure/load.rs @@ -148,6 +148,9 @@ struct VoxSpec(String, [T; 3]); #[derive(Deserialize)] struct VoxSimple(String); +#[derive(Deserialize)] +struct VoxMirror(String, bool); + #[derive(Deserialize)] struct ArmorVoxSpec { vox_spec: VoxSpec, @@ -4213,7 +4216,7 @@ struct SidedQLLateralVoxSpec { #[derive(Deserialize)] struct QuadrupedLowLateralSubSpec { offset: [f32; 3], // Should be relative to initial origin - lateral: VoxSimple, + lateral: VoxMirror, } make_vox_spec!( @@ -4384,7 +4387,8 @@ impl QuadrupedLowLateralSpec { return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5)); }, }; - let lateral = graceful_load_segment_flipped(&spec.front_left.lateral.0, true); + let latspec = &spec.front_left.lateral; + let lateral = graceful_load_segment_flipped(&latspec.0, !latspec.1); (lateral, Vec3::from(spec.front_left.offset)) } @@ -4400,7 +4404,8 @@ impl QuadrupedLowLateralSpec { return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5)); }, }; - let lateral = graceful_load_segment(&spec.front_right.lateral.0); + let latspec = &spec.front_right.lateral; + let lateral = graceful_load_segment_flipped(&latspec.0, latspec.1); (lateral, Vec3::from(spec.front_right.offset)) } @@ -4416,7 +4421,8 @@ impl QuadrupedLowLateralSpec { return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5)); }, }; - let lateral = graceful_load_segment_flipped(&spec.back_left.lateral.0, true); + let latspec = &spec.back_left.lateral; + let lateral = graceful_load_segment_flipped(&latspec.0, !latspec.1); (lateral, Vec3::from(spec.back_left.offset)) } @@ -4432,7 +4438,8 @@ impl QuadrupedLowLateralSpec { return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5)); }, }; - let lateral = graceful_load_segment(&spec.back_right.lateral.0); + let latspec = &spec.back_right.lateral; + let lateral = graceful_load_segment_flipped(&latspec.0, latspec.1); (lateral, Vec3::from(spec.back_right.offset)) } From edfe713076c820f294c75c2672e27d12f7295b18 Mon Sep 17 00:00:00 2001 From: Snowram Date: Fri, 4 Jun 2021 03:09:50 +0200 Subject: [PATCH 2/2] Cyclops, basilisk, air balloon offsets --- assets/server/manifests/ship_manifest.ron | 14 ++++---- assets/server/voxel/Air_Balloon.vox | 3 -- assets/server/voxel/Air_Balloon_rudder.vox | 3 -- assets/server/voxel/air_balloon/rudder.vox | 3 ++ assets/server/voxel/air_balloon/structure.vox | 3 ++ assets/server/voxel/airship.vox | 3 -- .../voxel/{ => airship_human}/propeller-l.vox | 0 .../voxel/{ => airship_human}/propeller-r.vox | 0 .../voxel/{ => airship_human}/rudder.vox | 0 .../structure.vox} | 0 .../voxel/biped_large_central_manifest.ron | 16 +++++----- .../voxel/biped_large_lateral_manifest.ron | 32 +++++++++---------- .../voxygen/voxel/biped_weapon_manifest.ron | 6 ++-- .../voxel/npc/basilisk/male/foot_bl.vox | 3 -- .../voxel/npc/basilisk/male/foot_br.vox | 2 +- .../voxel/npc/basilisk/male/foot_fl.vox | 3 -- .../voxel/npc/basilisk/male/foot_fr.vox | 2 +- .../voxygen/voxel/npc/cyclops/male/foot_r.vox | 2 +- .../voxygen/voxel/npc/cyclops/male/hand_r.vox | 2 +- .../voxygen/voxel/npc/cyclops/male/leg_r.vox | 2 +- .../voxel/npc/cyclops/male/shoulder_r.vox | 2 +- .../voxel/quadruped_low_central_manifest.ron | 24 +++++++------- .../voxel/quadruped_low_lateral_manifest.ron | 28 ++++++++-------- .../weapon/hammer/2hhammer_cyclops-0.vox | 2 +- common/src/comp/body.rs | 3 +- voxygen/anim/src/biped_large/mod.rs | 16 +++++----- voxygen/anim/src/quadruped_low/mod.rs | 16 +++++----- voxygen/anim/src/ship/mod.rs | 28 +++++++++++++--- 28 files changed, 115 insertions(+), 103 deletions(-) delete mode 100644 assets/server/voxel/Air_Balloon.vox delete mode 100644 assets/server/voxel/Air_Balloon_rudder.vox create mode 100644 assets/server/voxel/air_balloon/rudder.vox create mode 100644 assets/server/voxel/air_balloon/structure.vox delete mode 100644 assets/server/voxel/airship.vox rename assets/server/voxel/{ => airship_human}/propeller-l.vox (100%) rename assets/server/voxel/{ => airship_human}/propeller-r.vox (100%) rename assets/server/voxel/{ => airship_human}/rudder.vox (100%) rename assets/server/voxel/{Human_Airship.vox => airship_human/structure.vox} (100%) delete mode 100644 assets/voxygen/voxel/npc/basilisk/male/foot_bl.vox delete mode 100644 assets/voxygen/voxel/npc/basilisk/male/foot_fl.vox diff --git a/assets/server/manifests/ship_manifest.ron b/assets/server/manifests/ship_manifest.ron index 9c3a71c9e0..d964d990b4 100644 --- a/assets/server/manifests/ship_manifest.ron +++ b/assets/server/manifests/ship_manifest.ron @@ -7,29 +7,29 @@ offset: (-17.5, -39.0, 1.0), //phys_offset: (0.25, 0.25, 0.25), phys_offset: (0.0, 0.0, 0.0), - central: ("Human_Airship"), + central: ("airship_human.structure"), ), bone1: ( offset: (-8.5, -2.0, -8.5), phys_offset: (0.0, 0.0, 0.0), - central: ("propeller-l"), + central: ("airship_human.propeller-l"), ), bone2: ( offset: (-8.5, -2.0, -8.5), phys_offset: (0.0, 0.0, 0.0), - central: ("propeller-r"), + central: ("airship_human.propeller-r"), ), bone3: ( offset: (-1.5, -11.0, -5.5), phys_offset: (0.0, 0.0, 0.0), - central: ("rudder"), + central: ("airship_human.rudder"), ), ), AirBalloon: ( bone0: ( offset: (-14.5, -16.0, 0.0), phys_offset: (0.0, 0.0, 0.0), - central: ("Air_Balloon"), + central: ("air_balloon.structure"), ), bone1: ( offset: (0.0, 0.0, 0.0), @@ -42,9 +42,9 @@ central: ("empty"), ), bone3: ( - offset: (-1.5, 37.0, -6.5), + offset: (-1.5, -6.0, -5.0), phys_offset: (0.0, 0.0, 0.0), - central: ("Air_Balloon_rudder"), + central: ("air_balloon.rudder"), ), ), }) diff --git a/assets/server/voxel/Air_Balloon.vox b/assets/server/voxel/Air_Balloon.vox deleted file mode 100644 index cd44aca129..0000000000 --- a/assets/server/voxel/Air_Balloon.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d87bb1d01e3d2a08681c034611e1f4e84f8372e886af65d2e4ea428ca3d907de -size 57016 diff --git a/assets/server/voxel/Air_Balloon_rudder.vox b/assets/server/voxel/Air_Balloon_rudder.vox deleted file mode 100644 index 21cc07ec5a..0000000000 --- a/assets/server/voxel/Air_Balloon_rudder.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bc47cb843a9fbde61b3c848b760a14fff34ef3ccf39a979b25900feef6dcd0d3 -size 1372 diff --git a/assets/server/voxel/air_balloon/rudder.vox b/assets/server/voxel/air_balloon/rudder.vox new file mode 100644 index 0000000000..f6db05bb50 --- /dev/null +++ b/assets/server/voxel/air_balloon/rudder.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc954f4afad421fc62e64cfc2ea44fbdee4aae998366fb6be734c66c580f40fb +size 1372 diff --git a/assets/server/voxel/air_balloon/structure.vox b/assets/server/voxel/air_balloon/structure.vox new file mode 100644 index 0000000000..c6d6faaadb --- /dev/null +++ b/assets/server/voxel/air_balloon/structure.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff86a7d110f72d9d8c40504f95efe1ea0e58c8d1b68fc7560ecccd119d80a1a8 +size 57016 diff --git a/assets/server/voxel/airship.vox b/assets/server/voxel/airship.vox deleted file mode 100644 index 06bebaa938..0000000000 --- a/assets/server/voxel/airship.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:86f317298900ea98f95c6a33192b25fbbcbd3ce5f105cad58ad3c595a7a7d9ee -size 70176 diff --git a/assets/server/voxel/propeller-l.vox b/assets/server/voxel/airship_human/propeller-l.vox similarity index 100% rename from assets/server/voxel/propeller-l.vox rename to assets/server/voxel/airship_human/propeller-l.vox diff --git a/assets/server/voxel/propeller-r.vox b/assets/server/voxel/airship_human/propeller-r.vox similarity index 100% rename from assets/server/voxel/propeller-r.vox rename to assets/server/voxel/airship_human/propeller-r.vox diff --git a/assets/server/voxel/rudder.vox b/assets/server/voxel/airship_human/rudder.vox similarity index 100% rename from assets/server/voxel/rudder.vox rename to assets/server/voxel/airship_human/rudder.vox diff --git a/assets/server/voxel/Human_Airship.vox b/assets/server/voxel/airship_human/structure.vox similarity index 100% rename from assets/server/voxel/Human_Airship.vox rename to assets/server/voxel/airship_human/structure.vox diff --git a/assets/voxygen/voxel/biped_large_central_manifest.ron b/assets/voxygen/voxel/biped_large_central_manifest.ron index a576bcc9e6..e002711ae2 100644 --- a/assets/voxygen/voxel/biped_large_central_manifest.ron +++ b/assets/voxygen/voxel/biped_large_central_manifest.ron @@ -54,19 +54,19 @@ ), (Cyclops, Male): ( head: ( - offset: (-7.0, -7.0, -6.5), + offset: (-7.0, -7.5, -7.0), central: ("npc.cyclops.male.head"), ), torso_upper: ( - offset: (-8.0, -6.0, -6.0), + offset: (-9.0, -10.0, -10.5), central: ("npc.cyclops.male.torso_upper"), ), torso_lower: ( - offset: (-6.0, -5.5, -12.0), + offset: (-8.0, -6.0, -10.0), central: ("npc.cyclops.male.torso_lower"), ), jaw: ( - offset: (0.0, 0.0, 0.0), + offset: (-4.0, 0.0, -2.0), central: ("npc.cyclops.male.jaw"), ), tail: ( @@ -80,19 +80,19 @@ ), (Cyclops, Female): ( head: ( - offset: (-7.0, -7.0, -6.5), + offset: (-7.0, -7.5, -7.0), central: ("npc.cyclops.male.head"), ), torso_upper: ( - offset: (-8.0, -6.0, -6.0), + offset: (-9.0, -10.0, -10.5), central: ("npc.cyclops.male.torso_upper"), ), torso_lower: ( - offset: (-6.0, -5.5, -12.0), + offset: (-8.0, -6.0, -10.0), central: ("npc.cyclops.male.torso_lower"), ), jaw: ( - offset: (0.0, 0.0, 0.0), + offset: (-4.0, 0.0, -2.0), central: ("npc.cyclops.male.jaw"), ), tail: ( diff --git a/assets/voxygen/voxel/biped_large_lateral_manifest.ron b/assets/voxygen/voxel/biped_large_lateral_manifest.ron index ff75e8d3a1..0ba3855037 100644 --- a/assets/voxygen/voxel/biped_large_lateral_manifest.ron +++ b/assets/voxygen/voxel/biped_large_lateral_manifest.ron @@ -69,69 +69,69 @@ ), (Cyclops, Male): ( shoulder_l: ( - offset: (-3.0, -4.0, -7.0), + offset: (-6.5, -7.5, -7.0), lateral: ("npc.cyclops.male.shoulder_l"), ), shoulder_r: ( - offset: (-3.0, -4.0, -7.0), + offset: (-6.5, -7.5, -7.0), lateral: ("npc.cyclops.male.shoulder_r"), ), hand_l: ( - offset: (-3.5, -3.5, -12.0), + offset: (-10.5, -5.5, -15.0), lateral: ("npc.cyclops.male.hand_l"), ), hand_r: ( - offset: (-3.5, -3.5, -12.0), + offset: (-3.5, -5.5, -15.0), lateral: ("npc.cyclops.male.hand_r"), ), leg_l: ( - offset: (-6.0, -3.5, -7.0), + offset: (-3.0, -3.5, -3.5), lateral: ("npc.cyclops.male.leg_l"), ), leg_r: ( - offset: (0.0, -3.5, -7.0), + offset: (-3.0, -3.5, -3.5), lateral: ("npc.cyclops.male.leg_r"), ), foot_l: ( - offset: (-3.0, -5.0, -5.0), + offset: (-3.0, -5.5, -6.0), lateral: ("npc.cyclops.male.foot_l"), ), foot_r: ( - offset: (-3.0, -5.0, -5.0), + offset: (-3.0, -5.5, -6.0), lateral: ("npc.cyclops.male.foot_r"), ), ), (Cyclops, Female): ( shoulder_l: ( - offset: (-3.0, -4.0, -7.0), + offset: (-6.5, -7.5, -7.0), lateral: ("npc.cyclops.male.shoulder_l"), ), shoulder_r: ( - offset: (-3.0, -4.0, -7.0), + offset: (-6.5, -7.5, -7.0), lateral: ("npc.cyclops.male.shoulder_r"), ), hand_l: ( - offset: (-3.5, -3.5, -12.0), + offset: (-10.5, -5.5, -15.0), lateral: ("npc.cyclops.male.hand_l"), ), hand_r: ( - offset: (-3.5, -3.5, -12.0), + offset: (-3.5, -5.5, -15.0), lateral: ("npc.cyclops.male.hand_r"), ), leg_l: ( - offset: (-6.0, -3.5, -7.0), + offset: (-3.0, -3.5, -3.5), lateral: ("npc.cyclops.male.leg_l"), ), leg_r: ( - offset: (0.0, -3.5, -7.0), + offset: (-3.0, -3.5, -3.5), lateral: ("npc.cyclops.male.leg_r"), ), foot_l: ( - offset: (-3.0, -5.0, -5.0), + offset: (-3.0, -5.5, -6.0), lateral: ("npc.cyclops.male.foot_l"), ), foot_r: ( - offset: (-3.0, -5.0, -5.0), + offset: (-3.0, -5.5, -6.0), lateral: ("npc.cyclops.male.foot_r"), ), ), diff --git a/assets/voxygen/voxel/biped_weapon_manifest.ron b/assets/voxygen/voxel/biped_weapon_manifest.ron index 70e4fe635f..831bec2328 100644 --- a/assets/voxygen/voxel/biped_weapon_manifest.ron +++ b/assets/voxygen/voxel/biped_weapon_manifest.ron @@ -369,7 +369,7 @@ vox_spec: ("weapon.axe.parashu", (-1.5, -12.0, -6.0)), color: None ), - // 1h Axes + // 1h Axes "common.items.weapons.axe_1h.bloodsteel-0": ( vox_spec: ("weapon.axe_1h.bloodsteel-0", (-1.5, -2.0, -3.0)), color: None @@ -442,7 +442,7 @@ vox_spec: ("weapon.axe_1h.wood-1", (-1.5, -2.0, -3.0)), color: None ), - // Hammers + // Hammers "common.items.tool.craftsman_hammer": ( vox_spec: ("weapon.hammer.craftsman", (-2.5, -5.5, -4.5)), color: None @@ -1003,7 +1003,7 @@ color: None ), "common.items.npc_weapons.hammer.cyclops_hammer": ( - vox_spec: ("weapon.hammer.2hhammer_cyclops-0", (-5.0, -6.5, -7.0)), + vox_spec: ("weapon.hammer.2hhammer_cyclops-0", (-5.0, -6.5, -10.0)), color: None ), "common.items.npc_weapons.hammer.troll_hammer": ( diff --git a/assets/voxygen/voxel/npc/basilisk/male/foot_bl.vox b/assets/voxygen/voxel/npc/basilisk/male/foot_bl.vox deleted file mode 100644 index 222b9101d0..0000000000 --- a/assets/voxygen/voxel/npc/basilisk/male/foot_bl.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d4e722d8d1b080aaacaa20623fb758bbdb523208f3ca5ce1af01f8ffe0564437 -size 2468 diff --git a/assets/voxygen/voxel/npc/basilisk/male/foot_br.vox b/assets/voxygen/voxel/npc/basilisk/male/foot_br.vox index 24d656f5af..2a024b876d 100644 --- a/assets/voxygen/voxel/npc/basilisk/male/foot_br.vox +++ b/assets/voxygen/voxel/npc/basilisk/male/foot_br.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:30d9267abad04ac44eef548ed38397dd3aca470cdd7549ad42048ab247f63c44 +oid sha256:a2a43eec288677e009e963ae2a05c2f5ca712068ab3d9783b3410122db115faf size 2468 diff --git a/assets/voxygen/voxel/npc/basilisk/male/foot_fl.vox b/assets/voxygen/voxel/npc/basilisk/male/foot_fl.vox deleted file mode 100644 index f855c7b1d0..0000000000 --- a/assets/voxygen/voxel/npc/basilisk/male/foot_fl.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c1982cf07797088327c65e9bef477ee690fa3947c3134168ecbd7db0c0dbf522 -size 3224 diff --git a/assets/voxygen/voxel/npc/basilisk/male/foot_fr.vox b/assets/voxygen/voxel/npc/basilisk/male/foot_fr.vox index fc4a667f81..c34af8f895 100644 --- a/assets/voxygen/voxel/npc/basilisk/male/foot_fr.vox +++ b/assets/voxygen/voxel/npc/basilisk/male/foot_fr.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c0da37fef02f5f2750b13e0bed6cfa430ebcd7800e32b26e5295d9997679d353 +oid sha256:cd1cad4d5637cfe7e7d1fb2ed3fff10d0a4137a37ae94e57e0b52aa07e2d3a4c size 3224 diff --git a/assets/voxygen/voxel/npc/cyclops/male/foot_r.vox b/assets/voxygen/voxel/npc/cyclops/male/foot_r.vox index 0f1bcfca7d..df795db705 100644 --- a/assets/voxygen/voxel/npc/cyclops/male/foot_r.vox +++ b/assets/voxygen/voxel/npc/cyclops/male/foot_r.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c5421f89546e4a9df6f7462de418b7b9059b6dc17f5893a936d8e1f22f282a82 +oid sha256:1c24795e605da26ce87db91991b99ebe290fbc4422e08eb80b2fc9e97c748e13 size 2608 diff --git a/assets/voxygen/voxel/npc/cyclops/male/hand_r.vox b/assets/voxygen/voxel/npc/cyclops/male/hand_r.vox index c062379ade..7ad217204f 100644 --- a/assets/voxygen/voxel/npc/cyclops/male/hand_r.vox +++ b/assets/voxygen/voxel/npc/cyclops/male/hand_r.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5452e51012bc041273a05a6489fdf9d1ee86b002fc46cbbd3c2761aa6796b461 +oid sha256:dba85af684bbf1a8c0482bf47261a659f81087480e0fd46b9e4aa7e853ec6c83 size 4876 diff --git a/assets/voxygen/voxel/npc/cyclops/male/leg_r.vox b/assets/voxygen/voxel/npc/cyclops/male/leg_r.vox index 651ebc59e6..e09a0bcd71 100644 --- a/assets/voxygen/voxel/npc/cyclops/male/leg_r.vox +++ b/assets/voxygen/voxel/npc/cyclops/male/leg_r.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8bd2e4433a90d2af5344198e045608a89f907f2ab0ee705467196a3511a949bc +oid sha256:e72d877a2139cf993419e5027d496d91331fbe6167512c4e10a4d782c5293618 size 1928 diff --git a/assets/voxygen/voxel/npc/cyclops/male/shoulder_r.vox b/assets/voxygen/voxel/npc/cyclops/male/shoulder_r.vox index e33218f798..2c45bce196 100644 --- a/assets/voxygen/voxel/npc/cyclops/male/shoulder_r.vox +++ b/assets/voxygen/voxel/npc/cyclops/male/shoulder_r.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:86a4c083928349989d57be700ed9a41ae061b227890c064f5c126b9dd607b5cf +oid sha256:44b251419b5513ec0abbb1a02cc80a1bb9d046fcc0f1ef967e4c6f98884d3b36 size 4308 diff --git a/assets/voxygen/voxel/quadruped_low_central_manifest.ron b/assets/voxygen/voxel/quadruped_low_central_manifest.ron index 596ba1061e..5d7d4b376b 100644 --- a/assets/voxygen/voxel/quadruped_low_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_central_manifest.ron @@ -626,53 +626,53 @@ ), (Basilisk, Male): ( upper: ( - offset: (-7.5, 0.0, -11.0), + offset: (-5.5, 0.0, -5.0), central: ("npc.basilisk.male.head_upper"), ), lower: ( - offset: (-13.5, -2.0, -4.0), + offset: (-12.5, -6.5, -6.0), central: ("npc.basilisk.male.head_lower"), ), jaw: ( - offset: (-6.5, 0.0, -15.0), + offset: (-5.5, 0.0, -3.0), central: ("npc.basilisk.male.jaw"), ), chest: ( - offset: (-13.5, -13.0, -12.5), + offset: (-12.5, -11.0, -12.0), central: ("npc.basilisk.male.chest"), ), tail_rear: ( - offset: (-3.5, -20.0, -4.0), + offset: (-3.5, -19.0, -5.0), central: ("npc.basilisk.male.tail_rear"), ), tail_front: ( - offset: (-10.5, -24.0, -7.0), + offset: (-5.5, -12.0, -7.5), central: ("npc.basilisk.male.tail_front"), ), ), (Basilisk, Female): ( upper: ( - offset: (-5.5, 0.0, -11.0), + offset: (-5.5, 0.0, -5.0), central: ("npc.basilisk.male.head_upper"), ), lower: ( - offset: (-8.5, 0.0, -4.0), + offset: (-12.5, -6.5, -6.0), central: ("npc.basilisk.male.head_lower"), ), jaw: ( - offset: (-2.5, 0.0, -15.0), + offset: (-5.5, 0.0, -3.0), central: ("npc.basilisk.male.jaw"), ), chest: ( - offset: (-6.5, -13.0, -12.5), + offset: (-12.5, -11.0, -12.0), central: ("npc.basilisk.male.chest"), ), tail_rear: ( - offset: (-3.5, -20.0, -4.0), + offset: (-3.5, -19.0, -5.0), central: ("npc.basilisk.male.tail_rear"), ), tail_front: ( - offset: (-4.5, -24.0, -7.0), + offset: (-5.5, -12.0, -7.5), central: ("npc.basilisk.male.tail_front"), ), ), diff --git a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron index 3ccb29e206..bff3549ecd 100644 --- a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron @@ -433,37 +433,37 @@ ), (Basilisk, Male): ( front_left: ( - offset: (-15.0, 0.0, -9.0), - lateral: ("npc.basilisk.male.foot_fl", true), + offset: (-13.0, 0.0, -13.0), + lateral: ("npc.basilisk.male.foot_fr", false), ), front_right: ( - offset: (0.0, 0.0, -9.0), - lateral: ("npc.basilisk.male.foot_fr", true), + offset: (0.0, 0.0, -13.0), + lateral: ("npc.basilisk.male.foot_fr", false), ), back_left: ( - offset: (-15.0, 0.0, -9.0), - lateral: ("npc.basilisk.male.foot_bl", true), + offset: (-11.0, -6.5, -13.0), + lateral: ("npc.basilisk.male.foot_br", false), ), back_right: ( - offset: (0.0, 0.0, -9.0), - lateral: ("npc.basilisk.male.foot_br", true), + offset: (0.0, -6.5, -13.0), + lateral: ("npc.basilisk.male.foot_br", false), ), ), (Basilisk, Female): ( front_left: ( - offset: (-15.0, 0.0, -9.0), - lateral: ("npc.basilisk.male.foot_fl", true), + offset: (-13.0, 0.0, -13.0), + lateral: ("npc.basilisk.male.foot_fr", false), ), front_right: ( - offset: (0.0, 0.0, -9.0), + offset: (0.0, 0.0, -13.0), lateral: ("npc.basilisk.male.foot_fr", false), ), back_left: ( - offset: (-15.0, 0.0, -9.0), - lateral: ("npc.basilisk.male.foot_bl", true), + offset: (-12.0, -6.5, -13.0), + lateral: ("npc.basilisk.male.foot_br", false), ), back_right: ( - offset: (0.0, 0.0, -9.0), + offset: (0.0, -6.5, -13.0), lateral: ("npc.basilisk.male.foot_br", false), ), ), diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_cyclops-0.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_cyclops-0.vox index a0deb66239..2eaf702de0 100644 --- a/assets/voxygen/voxel/weapon/hammer/2hhammer_cyclops-0.vox +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_cyclops-0.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:44e01e13e678b3d220a5294855e3153dd207083b128d4d294e0062538ee40526 +oid sha256:24792b23c2b16dfc6d36a773feca22200e9b53fdd1d401ef631f420622d70770 size 7496 diff --git a/common/src/comp/body.rs b/common/src/comp/body.rs index 1707bd63a4..16f07b3265 100644 --- a/common/src/comp/body.rs +++ b/common/src/comp/body.rs @@ -367,6 +367,7 @@ impl Body { quadruped_low::Species::Rocksnapper => Vec3::new(1.0, 1.6, 2.9), quadruped_low::Species::Salamander => Vec3::new(1.0, 2.4, 1.3), quadruped_low::Species::Tortoise => Vec3::new(1.0, 1.6, 2.0), + quadruped_low::Species::Basilisk => Vec3::new(1.8, 2.2, 2.9), _ => Vec3::new(1.0, 1.6, 1.3), }, Body::Ship(ship) => ship.dimensions(), @@ -688,7 +689,7 @@ impl Body { pub fn mounting_offset(&self) -> Vec3 { match self { Body::Ship(ship::Body::DefaultAirship) => Vec3::from([0.0, 0.0, 10.0]), - Body::Ship(ship::Body::AirBalloon) => Vec3::from([0.0, 0.0, 10.0]), + Body::Ship(ship::Body::AirBalloon) => Vec3::from([0.0, 0.0, 5.0]), _ => Vec3::unit_z(), } } diff --git a/voxygen/anim/src/biped_large/mod.rs b/voxygen/anim/src/biped_large/mod.rs index 1db51f23b6..0db26fca2b 100644 --- a/voxygen/anim/src/biped_large/mod.rs +++ b/voxygen/anim/src/biped_large/mod.rs @@ -208,7 +208,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { head: match (body.species, body.body_type) { (Ogre, Male) => (5.0, 6.0), (Ogre, Female) => (1.0, 7.5), - (Cyclops, _) => (4.5, 7.5), + (Cyclops, _) => (9.5, 7.5), (Wendigo, _) => (3.0, 7.5), (Troll, _) => (6.0, 10.0), (Dullahan, _) => (3.0, 6.0), @@ -226,7 +226,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { }, jaw: match (body.species, body.body_type) { (Ogre, _) => (0.0, 0.0), - (Cyclops, _) => (0.0, 0.0), + (Cyclops, _) => (-4.5, -6.0), (Wendigo, _) => (0.0, 0.0), (Troll, _) => (2.0, -4.0), (Dullahan, _) => (0.0, 0.0), @@ -245,7 +245,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { upper_torso: match (body.species, body.body_type) { (Ogre, Male) => (0.0, 27.5), (Ogre, Female) => (0.0, 28.0), - (Cyclops, _) => (-2.0, 27.0), + (Cyclops, _) => (-2.0, 31.0), (Wendigo, _) => (-1.0, 29.0), (Troll, _) => (-1.0, 26.5), (Dullahan, _) => (0.0, 29.0), @@ -264,7 +264,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { lower_torso: match (body.species, body.body_type) { (Ogre, Male) => (1.0, -7.0), (Ogre, Female) => (0.0, -6.0), - (Cyclops, _) => (1.0, -4.5), + (Cyclops, _) => (1.0, -8.5), (Wendigo, _) => (-1.5, -6.0), (Troll, _) => (1.0, -10.5), (Dullahan, _) => (0.0, -6.5), @@ -291,7 +291,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { shoulder: match (body.species, body.body_type) { (Ogre, Male) => (12.0, 0.5, 3.0), (Ogre, Female) => (8.0, 0.5, 2.0), - (Cyclops, _) => (9.5, 2.5, 4.5), + (Cyclops, _) => (15.0, 3.5, 1.5), (Wendigo, _) => (9.0, 0.5, 2.5), (Troll, _) => (11.0, 0.5, 4.5), (Dullahan, _) => (14.0, 0.5, 3.5), @@ -310,7 +310,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { hand: match (body.species, body.body_type) { (Ogre, Male) => (14.5, 0.0, -4.0), (Ogre, Female) => (9.0, 0.5, -4.5), - (Cyclops, _) => (10.0, 2.0, -0.5), + (Cyclops, _) => (14.0, 2.0, -5.5), (Wendigo, _) => (12.0, 0.0, -3.5), (Troll, _) => (11.5, 0.0, -5.5), (Dullahan, _) => (14.5, 0.0, -2.5), @@ -329,7 +329,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { leg: match (body.species, body.body_type) { (Ogre, Male) => (0.0, 0.0, -4.0), (Ogre, Female) => (0.0, 0.0, -2.0), - (Cyclops, _) => (0.0, -1.0, -5.0), + (Cyclops, _) => (4.5, 1.0, -8.5), (Wendigo, _) => (2.0, 2.0, -2.5), (Troll, _) => (5.0, 0.0, -6.0), (Dullahan, _) => (0.0, 0.0, -5.0), @@ -348,7 +348,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { foot: match (body.species, body.body_type) { (Ogre, Male) => (4.0, 1.0, -12.0), (Ogre, Female) => (4.0, 0.5, -13.5), - (Cyclops, _) => (4.0, 1.5, -17.0), + (Cyclops, _) => (6.0, 3.5, -15.5), (Wendigo, _) => (5.0, 2.5, -17.0), (Troll, _) => (6.0, 1.5, -13.0), (Dullahan, _) => (4.0, 2.5, -14.0), diff --git a/voxygen/anim/src/quadruped_low/mod.rs b/voxygen/anim/src/quadruped_low/mod.rs index 63d2dc644c..a9971df988 100644 --- a/voxygen/anim/src/quadruped_low/mod.rs +++ b/voxygen/anim/src/quadruped_low/mod.rs @@ -131,7 +131,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Sandshark, _) => (8.5, 0.5), (Hakulaq, _) => (8.0, 10.0), (Lavadrake, _) => (7.0, 8.0), - (Basilisk, _) => (11.0, 13.5), + (Basilisk, _) => (5.0, 2.5), (Deadwood, _) => (2.0, -3.0), }, head_lower: match (body.species, body.body_type) { @@ -148,7 +148,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Sandshark, _) => (13.5, -10.5), (Hakulaq, _) => (10.5, 1.0), (Lavadrake, _) => (11.5, -6.0), - (Basilisk, _) => (8.5, -6.5), + (Basilisk, _) => (12.5, -5.5), (Deadwood, _) => (0.0, 0.0), }, jaw: match (body.species, body.body_type) { @@ -165,7 +165,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Sandshark, _) => (-8.0, -5.5), (Hakulaq, _) => (-6.5, -4.0), (Lavadrake, _) => (3.0, -5.0), - (Basilisk, _) => (1.5, 1.0), + (Basilisk, _) => (0.5, -3.0), (Deadwood, _) => (-1.0, 4.0), }, chest: match (body.species, body.body_type) { @@ -182,7 +182,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Sandshark, _) => (0.0, 20.0), (Hakulaq, _) => (0.0, 13.5), (Lavadrake, _) => (0.0, 16.5), - (Basilisk, _) => (0.0, 16.5), + (Basilisk, _) => (0.0, 15.0), (Deadwood, _) => (0.0, 12.0), }, tail_rear: match (body.species, body.body_type) { @@ -199,7 +199,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Sandshark, _) => (-10.0, 0.5), (Hakulaq, _) => (-9.0, -2.0), (Lavadrake, _) => (-12.0, -2.0), - (Basilisk, _) => (-10.0, -3.0), + (Basilisk, _) => (-10.0, -4.0), (Deadwood, _) => (-15.0, 4.0), }, tail_front: match (body.species, body.body_type) { @@ -216,7 +216,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Sandshark, _) => (-13.0, -8.0), (Hakulaq, _) => (-6.0, -5.5), (Lavadrake, _) => (-7.0, -4.5), - (Basilisk, _) => (-2.5, -4.5), + (Basilisk, _) => (-6.5, -5.5), (Deadwood, _) => (-1.0, 4.0), }, feet_f: match (body.species, body.body_type) { @@ -233,7 +233,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Sandshark, _) => (5.5, 2.0, -8.0), (Hakulaq, _) => (4.5, 2.0, -4.5), (Lavadrake, _) => (4.5, 4.0, -6.5), - (Basilisk, _) => (6.5, 4.0, -7.5), + (Basilisk, _) => (6.5, 4.0, -2.0), (Deadwood, _) => (3.5, 4.0, -5.0), }, feet_b: match (body.species, body.body_type) { @@ -250,7 +250,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Sandshark, _) => (3.5, -15.0, -14.0), (Hakulaq, _) => (3.5, -8.0, -4.5), (Lavadrake, _) => (3.5, -8.0, -6.5), - (Basilisk, _) => (4.5, -13.0, -7.5), + (Basilisk, _) => (5.5, -6.5, -2.0), (Deadwood, _) => (3.5, -6.0, -5.0), }, lean: match (body.species, body.body_type) { diff --git a/voxygen/anim/src/ship/mod.rs b/voxygen/anim/src/ship/mod.rs index f9c86cf033..80ed5ceb05 100644 --- a/voxygen/anim/src/ship/mod.rs +++ b/voxygen/anim/src/ship/mod.rs @@ -64,13 +64,33 @@ impl Default for SkeletonAttr { fn default() -> Self { Self { bone0: (0.0, 0.0, 0.0), - bone1: (-13.0, -25.0, 10.0), - bone2: (13.0, -25.0, 10.0), - bone3: (0.0, -27.5, 8.5), + bone1: (0.0, 0.0, 0.0), + bone2: (0.0, 0.0, 0.0), + bone3: (0.0, 0.0, 0.0), } } } impl<'a> From<&'a Body> for SkeletonAttr { - fn from(_: &'a Body) -> Self { Self::default() } + fn from(body: &'a Body) -> Self { + use comp::ship::Body::*; + Self { + bone0: match body { + DefaultAirship => (0.0, 0.0, 0.0), + AirBalloon => (0.0, 0.0, 0.0), + }, + bone1: match body { + DefaultAirship => (-13.0, -25.0, 10.0), + AirBalloon => (0.0, 0.0, 0.0), + }, + bone2: match body { + DefaultAirship => (13.0, -25.0, 10.0), + AirBalloon => (0.0, 0.0, 0.0), + }, + bone3: match body { + DefaultAirship => (0.0, -27.5, 8.5), + AirBalloon => (0.0, -9.0, 8.0), + }, + } + } }