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)) }