mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Merge branch 'aweinstock/add-models-20210603' into 'master'
Add Basilisk and Cyclops models by Gemu, and AirBalloon model by SarraKitty. See merge request veloren/veloren!2371
This commit is contained in:
commit
521e1eacf3
@ -7,22 +7,44 @@
|
||||
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.structure"),
|
||||
),
|
||||
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, -6.0, -5.0),
|
||||
phys_offset: (0.0, 0.0, 0.0),
|
||||
central: ("air_balloon.rudder"),
|
||||
),
|
||||
),
|
||||
})
|
||||
|
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/air_balloon/structure.vox
(Stored with Git LFS)
Normal file
BIN
assets/server/voxel/air_balloon/structure.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/server/voxel/airship.vox
(Stored with Git LFS)
BIN
assets/server/voxel/airship.vox
(Stored with Git LFS)
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.
@ -54,20 +54,20 @@
|
||||
),
|
||||
(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),
|
||||
central: ("armor.empty"),
|
||||
offset: (-4.0, 0.0, -2.0),
|
||||
central: ("npc.cyclops.male.jaw"),
|
||||
),
|
||||
tail: (
|
||||
offset: (0.0, 0.0, 0.0),
|
||||
@ -80,20 +80,20 @@
|
||||
),
|
||||
(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),
|
||||
central: ("armor.empty"),
|
||||
offset: (-4.0, 0.0, -2.0),
|
||||
central: ("npc.cyclops.male.jaw"),
|
||||
),
|
||||
tail: (
|
||||
offset: (0.0, 0.0, 0.0),
|
||||
@ -832,4 +832,4 @@
|
||||
central: ("armor.empty"),
|
||||
)
|
||||
),
|
||||
})
|
||||
})
|
||||
|
@ -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"),
|
||||
),
|
||||
),
|
||||
|
@ -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": (
|
||||
|
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_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_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,53 +626,53 @@
|
||||
),
|
||||
(Basilisk, Male): (
|
||||
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"),
|
||||
),
|
||||
),
|
||||
(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"),
|
||||
),
|
||||
),
|
||||
|
@ -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: (-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"),
|
||||
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_br"),
|
||||
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"),
|
||||
offset: (0.0, -6.5, -13.0),
|
||||
lateral: ("npc.basilisk.male.foot_br", false),
|
||||
),
|
||||
),
|
||||
(Basilisk, Female): (
|
||||
front_left: (
|
||||
offset: (-17.0, 0.0, -9.0),
|
||||
lateral: ("npc.basilisk.male.foot_fr"),
|
||||
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"),
|
||||
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_br"),
|
||||
offset: (-12.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"),
|
||||
offset: (0.0, -6.5, -13.0),
|
||||
lateral: ("npc.basilisk.male.foot_br", false),
|
||||
),
|
||||
),
|
||||
(Deadwood, Male): (
|
||||
front_left: (
|
||||
offset: (-5.0, -2.0, -7.0),
|
||||
lateral: ("npc.deadwood.male.foot_fr"),
|
||||
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.
@ -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(),
|
||||
@ -622,7 +623,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,
|
||||
}
|
||||
}
|
||||
@ -691,6 +692,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, 5.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,
|
||||
}
|
||||
}
|
||||
@ -385,7 +385,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))
|
||||
|
@ -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),
|
||||
|
@ -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) {
|
||||
|
@ -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),
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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