mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Add Basilisk and Cyclops models by Gemu, and AirBalloon model by SarraKitty.
This commit is contained in:
parent
59ae5ec573
commit
05c699878f
@ -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"),
|
||||
),
|
||||
),
|
||||
})
|
||||
|
BIN
assets/server/voxel/Air_Balloon.vox
(Stored with Git LFS)
Normal file
BIN
assets/server/voxel/Air_Balloon.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/server/voxel/Air_Balloon_rudder.vox
(Stored with Git LFS)
Normal file
BIN
assets/server/voxel/Air_Balloon_rudder.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/server/voxel/empty.vox
(Stored with Git LFS)
Normal file
BIN
assets/server/voxel/empty.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -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),
|
||||
|
BIN
assets/voxygen/voxel/npc/basilisk/male/chest.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/basilisk/male/chest.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/basilisk/male/foot_bl.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/basilisk/male/foot_bl.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/basilisk/male/foot_br.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/basilisk/male/foot_br.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/basilisk/male/foot_fl.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/basilisk/male/foot_fl.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/basilisk/male/foot_fr.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/basilisk/male/foot_fr.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/basilisk/male/head_lower.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/basilisk/male/head_lower.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/basilisk/male/head_upper.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/basilisk/male/head_upper.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/basilisk/male/jaw.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/basilisk/male/jaw.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/basilisk/male/tail_front.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/basilisk/male/tail_front.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/basilisk/male/tail_rear.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/basilisk/male/tail_rear.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/cyclops/male/foot_l.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/cyclops/male/foot_l.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/cyclops/male/foot_r.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/cyclops/male/foot_r.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/cyclops/male/hand_l.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/cyclops/male/hand_l.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/cyclops/male/hand_r.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/cyclops/male/hand_r.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/cyclops/male/head.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/cyclops/male/head.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/cyclops/male/jaw.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/npc/cyclops/male/jaw.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/npc/cyclops/male/leg_l.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/cyclops/male/leg_l.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/cyclops/male/leg_r.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/cyclops/male/leg_r.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/cyclops/male/shoulder_l.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/cyclops/male/shoulder_l.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/cyclops/male/shoulder_r.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/cyclops/male/shoulder_r.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/cyclops/male/torso_lower.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/cyclops/male/torso_lower.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/npc/cyclops/male/torso_upper.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/npc/cyclops/male/torso_upper.vox
(Stored with Git LFS)
Binary file not shown.
@ -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"),
|
||||
),
|
||||
),
|
||||
|
@ -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),
|
||||
),
|
||||
),
|
||||
})
|
||||
|
BIN
assets/voxygen/voxel/weapon/hammer/2hhammer_cyclops-0.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/weapon/hammer/2hhammer_cyclops-0.vox
(Stored with Git LFS)
Binary file not shown.
@ -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<f32> {
|
||||
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(),
|
||||
}
|
||||
}
|
||||
|
@ -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<Body> 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<f32> { Vec3::new(25.0, 50.0, 40.0) }
|
||||
pub fn dimensions(&self) -> Vec3<f32> {
|
||||
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,
|
||||
|
@ -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 {
|
||||
|
@ -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)
|
||||
|
@ -37,7 +37,7 @@ impl Entity {
|
||||
pub fn get_body(&self) -> comp::Body {
|
||||
match self.rng(PERM_GENUS).gen::<f32>() {
|
||||
// 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))
|
||||
|
@ -148,6 +148,9 @@ struct VoxSpec<T>(String, [T; 3]);
|
||||
#[derive(Deserialize)]
|
||||
struct VoxSimple(String);
|
||||
|
||||
#[derive(Deserialize)]
|
||||
struct VoxMirror(String, bool);
|
||||
|
||||
#[derive(Deserialize)]
|
||||
struct ArmorVoxSpec {
|
||||
vox_spec: VoxSpec<f32>,
|
||||
@ -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))
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user