general housekeeping

This commit is contained in:
jshipsey 2020-09-02 02:03:14 -04:00
parent 06b39b9072
commit 03b7320b4b
41 changed files with 404 additions and 405 deletions

View File

@ -2,241 +2,241 @@
(Ogre, Male): ( (Ogre, Male): (
head: ( head: (
offset: (-8.0, -6.0, -6.5), offset: (-8.0, -6.0, -6.5),
center: ("npc.ogre.male.head"), central: ("npc.ogre.male.head"),
), ),
torso_upper: ( torso_upper: (
offset: (-8.0, -6.0, -8.0), offset: (-8.0, -6.0, -8.0),
center: ("npc.ogre.male.torso_upper"), central: ("npc.ogre.male.torso_upper"),
), ),
torso_lower: ( torso_lower: (
offset: (-6.0, -5.5, -10.0), offset: (-6.0, -5.5, -10.0),
center: ("npc.ogre.male.torso_lower"), central: ("npc.ogre.male.torso_lower"),
), ),
jaw: ( jaw: (
offset: (0.0, 0.0, 0.0), offset: (0.0, 0.0, 0.0),
center: ("armor.empty"), central: ("armor.empty"),
), ),
tail: ( tail: (
offset: (0.0, 0.0, 0.0), offset: (0.0, 0.0, 0.0),
center: ("armor.empty"), central: ("armor.empty"),
), ),
second: ( second: (
offset: (0.0, 0.0, 0.0), offset: (0.0, 0.0, 0.0),
center: ("armor.empty"), central: ("armor.empty"),
), ),
main: ( main: (
offset: (-5.0, -5.5, -5.0), offset: (-5.0, -5.5, -5.0),
center: ("npc.ogre.male.hammer"), central: ("npc.ogre.male.hammer"),
) )
), ),
(Ogre, Female): ( (Ogre, Female): (
head: ( head: (
offset: (-9.0, -5.5, -6.0), offset: (-9.0, -5.5, -6.0),
center: ("npc.ogre.female..head"), central: ("npc.ogre.female..head"),
), ),
torso_upper: ( torso_upper: (
offset: (-6.0, -5.0, -6.0), offset: (-6.0, -5.0, -6.0),
center: ("npc.ogre.female.torso_upper"), central: ("npc.ogre.female.torso_upper"),
), ),
torso_lower: ( torso_lower: (
offset: (-5.0, -4.5, -6.0), offset: (-5.0, -4.5, -6.0),
center: ("npc.ogre.female.torso_lower"), central: ("npc.ogre.female.torso_lower"),
), ),
jaw: ( jaw: (
offset: (0.0, 0.0, 0.0), offset: (0.0, 0.0, 0.0),
center: ("armor.empty"), central: ("armor.empty"),
), ),
tail: ( tail: (
offset: (0.0, 0.0, 0.0), offset: (0.0, 0.0, 0.0),
center: ("armor.empty"), central: ("armor.empty"),
), ),
second: ( second: (
offset: (0.0, 0.0, 0.0), offset: (0.0, 0.0, 0.0),
center: ("armor.empty"), central: ("armor.empty"),
), ),
main: ( main: (
offset: (-2.5, -5.5, -5.0), offset: (-2.5, -5.5, -5.0),
center: ("npc.ogre.female.main"), central: ("npc.ogre.female.main"),
) )
), ),
(Cyclops, Male): ( (Cyclops, Male): (
head: ( head: (
offset: (-7.0, -7.0, -6.5), offset: (-7.0, -7.0, -6.5),
center: ("npc.cyclops.male.head"), central: ("npc.cyclops.male.head"),
), ),
torso_upper: ( torso_upper: (
offset: (-8.0, -6.0, -6.0), offset: (-8.0, -6.0, -6.0),
center: ("npc.cyclops.male.torso_upper"), central: ("npc.cyclops.male.torso_upper"),
), ),
torso_lower: ( torso_lower: (
offset: (-6.0, -5.5, -12.0), offset: (-6.0, -5.5, -12.0),
center: ("npc.cyclops.male.torso_lower"), central: ("npc.cyclops.male.torso_lower"),
), ),
jaw: ( jaw: (
offset: (0.0, 0.0, 0.0), offset: (0.0, 0.0, 0.0),
center: ("armor.empty"), central: ("armor.empty"),
), ),
tail: ( tail: (
offset: (0.0, 0.0, 0.0), offset: (0.0, 0.0, 0.0),
center: ("armor.empty"), central: ("armor.empty"),
), ),
second: ( second: (
offset: (0.0, 0.0, 0.0), offset: (0.0, 0.0, 0.0),
center: ("armor.empty"), central: ("armor.empty"),
), ),
main: ( main: (
offset: (-5.0, -6.5, -4.0), offset: (-5.0, -6.5, -4.0),
center: ("npc.cyclops.male.hammer"), central: ("npc.cyclops.male.hammer"),
) )
), ),
(Cyclops, Female): ( (Cyclops, Female): (
head: ( head: (
offset: (-7.0, -7.0, -6.5), offset: (-7.0, -7.0, -6.5),
center: ("npc.cyclops.male.head"), central: ("npc.cyclops.male.head"),
), ),
torso_upper: ( torso_upper: (
offset: (-8.0, -6.0, -6.0), offset: (-8.0, -6.0, -6.0),
center: ("npc.cyclops.male.torso_upper"), central: ("npc.cyclops.male.torso_upper"),
), ),
torso_lower: ( torso_lower: (
offset: (-6.0, -5.5, -12.0), offset: (-6.0, -5.5, -12.0),
center: ("npc.cyclops.male.torso_lower"), central: ("npc.cyclops.male.torso_lower"),
), ),
jaw: ( jaw: (
offset: (0.0, 0.0, 0.0), offset: (0.0, 0.0, 0.0),
center: ("armor.empty"), central: ("armor.empty"),
), ),
tail: ( tail: (
offset: (0.0, 0.0, 0.0), offset: (0.0, 0.0, 0.0),
center: ("armor.empty"), central: ("armor.empty"),
), ),
second: ( second: (
offset: (0.0, 0.0, 0.0), offset: (0.0, 0.0, 0.0),
center: ("armor.empty"), central: ("armor.empty"),
), ),
main: ( main: (
offset: (-5.0, -6.5, -4.0), offset: (-5.0, -6.5, -4.0),
center: ("npc.cyclops.female.hammer"), central: ("npc.cyclops.female.hammer"),
) )
), ),
(Wendigo, Male): ( (Wendigo, Male): (
head: ( head: (
offset: (-15.0, -4.5, -9.5), offset: (-15.0, -4.5, -9.5),
center: ("npc.wendigo.male.head"), central: ("npc.wendigo.male.head"),
), ),
torso_upper: ( torso_upper: (
offset: (-6.0, -5.5, -6.5), offset: (-6.0, -5.5, -6.5),
center: ("npc.wendigo.male.torso_upper"), central: ("npc.wendigo.male.torso_upper"),
), ),
torso_lower: ( torso_lower: (
offset: (-4.0, -2.0, -4.0), offset: (-4.0, -2.0, -4.0),
center: ("npc.wendigo.male.torso_lower"), central: ("npc.wendigo.male.torso_lower"),
), ),
jaw: ( jaw: (
offset: (0.0, 0.0, 0.0), offset: (0.0, 0.0, 0.0),
center: ("armor.empty"), central: ("armor.empty"),
), ),
tail: ( tail: (
offset: (0.0, 0.0, 0.0), offset: (0.0, 0.0, 0.0),
center: ("armor.empty"), central: ("armor.empty"),
), ),
second: ( second: (
offset: (0.0, 0.0, 0.0), offset: (0.0, 0.0, 0.0),
center: ("armor.empty"), central: ("armor.empty"),
), ),
main: ( main: (
offset: (-5.0, -6.5, -4.0), offset: (-5.0, -6.5, -4.0),
center: ("npc.wendigo.male.hammer"), central: ("npc.wendigo.male.hammer"),
) )
), ),
(Wendigo, Female): ( (Wendigo, Female): (
head: ( head: (
offset: (-15.0, -4.5, -9.5), offset: (-15.0, -4.5, -9.5),
center: ("npc.wendigo.male.head"), central: ("npc.wendigo.male.head"),
), ),
torso_upper: ( torso_upper: (
offset: (-6.0, -5.5, -6.5), offset: (-6.0, -5.5, -6.5),
center: ("npc.wendigo.male.torso_upper"), central: ("npc.wendigo.male.torso_upper"),
), ),
torso_lower: ( torso_lower: (
offset: (-4.0, -2.0, -4.0), offset: (-4.0, -2.0, -4.0),
center: ("npc.wendigo.male.torso_lower"), central: ("npc.wendigo.male.torso_lower"),
), ),
jaw: ( jaw: (
offset: (0.0, 0.0, 0.0), offset: (0.0, 0.0, 0.0),
center: ("armor.empty"), central: ("armor.empty"),
), ),
tail: ( tail: (
offset: (0.0, 0.0, 0.0), offset: (0.0, 0.0, 0.0),
center: ("armor.empty"), central: ("armor.empty"),
), ),
second: ( second: (
offset: (0.0, 0.0, 0.0), offset: (0.0, 0.0, 0.0),
center: ("armor.empty"), central: ("armor.empty"),
), ),
main: ( main: (
offset: (-5.0, -6.5, -4.0), offset: (-5.0, -6.5, -4.0),
center: ("npc.wendigo.male.hammer"), central: ("npc.wendigo.male.hammer"),
) )
), ),
(Troll, Male): ( (Troll, Male): (
head: ( head: (
offset: (-8.0, -8.5, -9.0), offset: (-8.0, -8.5, -9.0),
center: ("npc.troll.male.head"), central: ("npc.troll.male.head"),
), ),
torso_upper: ( torso_upper: (
offset: (-8.0, -7.5, -11.0), offset: (-8.0, -7.5, -11.0),
center: ("npc.troll.male.torso_upper"), central: ("npc.troll.male.torso_upper"),
), ),
torso_lower: ( torso_lower: (
offset: (-6.0, -3.5, -5.0), offset: (-6.0, -3.5, -5.0),
center: ("npc.troll.male.torso_lower"), central: ("npc.troll.male.torso_lower"),
), ),
jaw: ( jaw: (
offset: (-4.0, 0.0, -4.5), offset: (-4.0, 0.0, -4.5),
center: ("npc.troll.male.jaw"), central: ("npc.troll.male.jaw"),
), ),
tail: ( tail: (
offset: (0.0, 0.0, 0.0), offset: (0.0, 0.0, 0.0),
center: ("armor.empty"), central: ("armor.empty"),
), ),
second: ( second: (
offset: (0.0, 0.0, 0.0), offset: (0.0, 0.0, 0.0),
center: ("armor.empty"), central: ("armor.empty"),
), ),
main: ( main: (
offset: (-5.0, -6.5, -4.0), offset: (-5.0, -6.5, -4.0),
center: ("npc.troll.male.hammer"), central: ("npc.troll.male.hammer"),
) )
), ),
(Troll, Female): ( (Troll, Female): (
head: ( head: (
offset: (-8.0, -8.5, -9.0), offset: (-8.0, -8.5, -9.0),
center: ("npc.troll.male.head"), central: ("npc.troll.male.head"),
), ),
torso_upper: ( torso_upper: (
offset: (-8.0, -7.5, -11.0), offset: (-8.0, -7.5, -11.0),
center: ("npc.troll.male.torso_upper"), central: ("npc.troll.male.torso_upper"),
), ),
torso_lower: ( torso_lower: (
offset: (-6.0, -3.5, -5.0), offset: (-6.0, -3.5, -5.0),
center: ("npc.troll.male.torso_lower"), central: ("npc.troll.male.torso_lower"),
), ),
jaw: ( jaw: (
offset: (-4.0, 0.0, -4.5), offset: (-4.0, 0.0, -4.5),
center: ("npc.troll.male.jaw"), central: ("npc.troll.male.jaw"),
), ),
tail: ( tail: (
offset: (0.0, 0.0, 0.0), offset: (0.0, 0.0, 0.0),
center: ("armor.empty"), central: ("armor.empty"),
), ),
second: ( second: (
offset: (0.0, 0.0, 0.0), offset: (0.0, 0.0, 0.0),
center: ("armor.empty"), central: ("armor.empty"),
), ),
main: ( main: (
offset: (-5.0, -6.5, -4.0), offset: (-5.0, -6.5, -4.0),
center: ("npc.troll.female.hammer"), central: ("npc.troll.female.hammer"),
) )
), ),
@ -244,62 +244,62 @@
(Dullahan, Male): ( (Dullahan, Male): (
head: ( head: (
offset: (-8.0, -5.0, -6.0), offset: (-8.0, -5.0, -6.0),
center: ("armor.empty"), central: ("armor.empty"),
), ),
torso_upper: ( torso_upper: (
offset: (-9.0, -7.5, -7.0), offset: (-9.0, -7.5, -7.0),
center: ("npc.dullahan.male.torso_upper"), central: ("npc.dullahan.male.torso_upper"),
), ),
torso_lower: ( torso_lower: (
offset: (-8.0, -6.0, -9.0), offset: (-8.0, -6.0, -9.0),
center: ("npc.dullahan.male.torso_lower"), central: ("npc.dullahan.male.torso_lower"),
), ),
jaw: ( jaw: (
offset: (0.0, 0.0, 0.0), offset: (0.0, 0.0, 0.0),
center: ("armor.empty"), central: ("armor.empty"),
), ),
tail: ( tail: (
offset: (0.0, 0.0, 0.0), offset: (0.0, 0.0, 0.0),
center: ("armor.empty"), central: ("armor.empty"),
), ),
second: ( second: (
offset: (0.0, 0.0, 0.0), offset: (0.0, 0.0, 0.0),
center: ("armor.empty"), central: ("armor.empty"),
), ),
main: ( main: (
offset: (-5.0, -6.5, -4.0), offset: (-5.0, -6.5, -4.0),
center: ("npc.cyclops.male.hammer"), central: ("npc.cyclops.male.hammer"),
) )
), ),
(Dullahan, Female): ( (Dullahan, Female): (
head: ( head: (
offset: (-8.0, -5.0, -6.0), offset: (-8.0, -5.0, -6.0),
center: ("armor.empty"), central: ("armor.empty"),
), ),
torso_upper: ( torso_upper: (
offset: (-9.0, -7.5, -7.0), offset: (-9.0, -7.5, -7.0),
center: ("npc.dullahan.male.torso_upper"), central: ("npc.dullahan.male.torso_upper"),
), ),
torso_lower: ( torso_lower: (
offset: (-8.0, -6.0, -9.0), offset: (-8.0, -6.0, -9.0),
center: ("npc.dullahan.male.torso_lower"), central: ("npc.dullahan.male.torso_lower"),
), ),
jaw: ( jaw: (
offset: (0.0, 0.0, 0.0), offset: (0.0, 0.0, 0.0),
center: ("armor.empty"), central: ("armor.empty"),
), ),
tail: ( tail: (
offset: (0.0, 0.0, 0.0), offset: (0.0, 0.0, 0.0),
center: ("armor.empty"), central: ("armor.empty"),
), ),
second: ( second: (
offset: (0.0, 0.0, 0.0), offset: (0.0, 0.0, 0.0),
center: ("armor.empty"), central: ("armor.empty"),
), ),
main: ( main: (
offset: (-5.0, -6.5, -4.0), offset: (-5.0, -6.5, -4.0),
center: ("npc.cyclops.male.hammer"), central: ("npc.cyclops.male.hammer"),
) )
), ),
}) })

View File

@ -2,225 +2,225 @@
(Duck, Male): ( (Duck, Male): (
head: ( head: (
offset: (-1.5, -2.0, -1.5), offset: (-1.5, -2.0, -1.5),
center: ("npc.duck.male.head"), central: ("npc.duck.male.head"),
), ),
torso: ( torso: (
offset: (-2.5, -3.0, -2.0), offset: (-2.5, -3.0, -2.0),
center: ("npc.duck.male.torso"), central: ("npc.duck.male.torso"),
), ),
tail: ( tail: (
offset: (-1.5, -0.5, -2.5), offset: (-1.5, -0.5, -2.5),
center: ("npc.duck.male.tail"), central: ("npc.duck.male.tail"),
) )
), ),
(Duck, Female): ( (Duck, Female): (
head: ( head: (
offset: (-1.5, -2.0, -1.5), offset: (-1.5, -2.0, -1.5),
center: ("npc.duck.female.head"), central: ("npc.duck.female.head"),
), ),
torso: ( torso: (
offset: (-2.5, -3.0, -2.0), offset: (-2.5, -3.0, -2.0),
center: ("npc.duck.female.torso"), central: ("npc.duck.female.torso"),
), ),
tail: ( tail: (
offset: (-1.5, -0.5, -2.5), offset: (-1.5, -0.5, -2.5),
center: ("npc.duck.female.tail"), central: ("npc.duck.female.tail"),
) )
), ),
(Chicken, Male): ( (Chicken, Male): (
head: ( head: (
offset: (-1.5, -2.0, -3.5), offset: (-1.5, -2.0, -3.5),
center: ("npc.chicken.male.head"), central: ("npc.chicken.male.head"),
), ),
torso: ( torso: (
offset: (-2.5, -3.0, -2.0), offset: (-2.5, -3.0, -2.0),
center: ("npc.chicken.male.torso"), central: ("npc.chicken.male.torso"),
), ),
tail: ( tail: (
offset: (-1.5, -2.5, -3.5), offset: (-1.5, -2.5, -3.5),
center: ("npc.chicken.male.tail"), central: ("npc.chicken.male.tail"),
) )
), ),
(Chicken, Female): ( (Chicken, Female): (
head: ( head: (
offset: (-1.5, -2.0, -2.5), offset: (-1.5, -2.0, -2.5),
center: ("npc.chicken.female.head"), central: ("npc.chicken.female.head"),
), ),
torso: ( torso: (
offset: (-2.5, -3.0, -2.0), offset: (-2.5, -3.0, -2.0),
center: ("npc.chicken.female.torso"), central: ("npc.chicken.female.torso"),
), ),
tail: ( tail: (
offset: (-1.5, -0.5, -2.5), offset: (-1.5, -0.5, -2.5),
center: ("npc.chicken.female.tail"), central: ("npc.chicken.female.tail"),
) )
), ),
(Goose, Male): ( (Goose, Male): (
head: ( head: (
offset: (-2.0, -3.5, -0.0), offset: (-2.0, -3.5, -0.0),
center: ("npc.goose.male.head"), central: ("npc.goose.male.head"),
), ),
torso: ( torso: (
offset: (-3.5, -4.5, -3.0), offset: (-3.5, -4.5, -3.0),
center: ("npc.goose.male.torso"), central: ("npc.goose.male.torso"),
), ),
tail: ( tail: (
offset: (-2.0, -1.0, -3.5), offset: (-2.0, -1.0, -3.5),
center: ("npc.goose.male.tail"), central: ("npc.goose.male.tail"),
) )
), ),
(Goose, Female): ( (Goose, Female): (
head: ( head: (
offset: (-2.0, -3.5, -0.0), offset: (-2.0, -3.5, -0.0),
center: ("npc.goose.male.head"), central: ("npc.goose.male.head"),
), ),
torso: ( torso: (
offset: (-3.5, -4.5, -3.0), offset: (-3.5, -4.5, -3.0),
center: ("npc.goose.male.torso"), central: ("npc.goose.male.torso"),
), ),
tail: ( tail: (
offset: (-2.0, -1.0, -3.5), offset: (-2.0, -1.0, -3.5),
center: ("npc.goose.male.tail"), central: ("npc.goose.male.tail"),
) )
), ),
(Peacock, Male): ( (Peacock, Male): (
head: ( head: (
offset: (-2.0, -1.5, -0.0), offset: (-2.0, -1.5, -0.0),
center: ("npc.peacock.male.head"), central: ("npc.peacock.male.head"),
), ),
torso: ( torso: (
offset: (-2.5, -5.5, -4.5), offset: (-2.5, -5.5, -4.5),
center: ("npc.peacock.male.torso"), central: ("npc.peacock.male.torso"),
), ),
tail: ( tail: (
offset: (-3.0, -1.5, -5.0), offset: (-3.0, -1.5, -5.0),
center: ("npc.peacock.male.tail"), central: ("npc.peacock.male.tail"),
) )
), ),
(Peacock, Female): ( (Peacock, Female): (
head: ( head: (
offset: (-2.0, -1.5, -0.0), offset: (-2.0, -1.5, -0.0),
center: ("npc.peacock.female.head"), central: ("npc.peacock.female.head"),
), ),
torso: ( torso: (
offset: (-2.5, -5.5, -4.5), offset: (-2.5, -5.5, -4.5),
center: ("npc.peacock.female.torso"), central: ("npc.peacock.female.torso"),
), ),
tail: ( tail: (
offset: (-3.0, -1.5, -5.0), offset: (-3.0, -1.5, -5.0),
center: ("npc.peacock.female.tail"), central: ("npc.peacock.female.tail"),
) )
), ),
(Eagle, Male): ( (Eagle, Male): (
head: ( head: (
offset: (-2.0, -2.0, -3.5), offset: (-2.0, -2.0, -3.5),
center: ("npc.eagle.male.head"), central: ("npc.eagle.male.head"),
), ),
torso: ( torso: (
offset: (-3.0, -4.5, -4.5), offset: (-3.0, -4.5, -4.5),
center: ("npc.eagle.male.torso"), central: ("npc.eagle.male.torso"),
), ),
tail: ( tail: (
offset: (-2.0, -3.5, -3.5), offset: (-2.0, -3.5, -3.5),
center: ("npc.eagle.male.tail"), central: ("npc.eagle.male.tail"),
) )
), ),
(Eagle, Female): ( (Eagle, Female): (
head: ( head: (
offset: (-2.0, -2.0, -3.5), offset: (-2.0, -2.0, -3.5),
center: ("npc.eagle.male.head"), central: ("npc.eagle.male.head"),
), ),
torso: ( torso: (
offset: (-3.0, -4.5, -4.5), offset: (-3.0, -4.5, -4.5),
center: ("npc.eagle.male.torso"), central: ("npc.eagle.male.torso"),
), ),
tail: ( tail: (
offset: (-2.0, -3.5, -3.5), offset: (-2.0, -3.5, -3.5),
center: ("npc.eagle.male.tail"), central: ("npc.eagle.male.tail"),
) )
), ),
(Snowyowl, Male): ( (Snowyowl, Male): (
head: ( head: (
offset: (-3.5, -4.5, -4.0), offset: (-3.5, -4.5, -4.0),
center: ("npc.snowyowl.male.head"), central: ("npc.snowyowl.male.head"),
), ),
torso: ( torso: (
offset: (-3.5, -5.0, -3.0), offset: (-3.5, -5.0, -3.0),
center: ("npc.snowyowl.male.torso"), central: ("npc.snowyowl.male.torso"),
), ),
tail: ( tail: (
offset: (-2.5, -3.0, -2.0), offset: (-2.5, -3.0, -2.0),
center: ("npc.snowyowl.male.tail"), central: ("npc.snowyowl.male.tail"),
) )
), ),
(Snowyowl, Female): ( (Snowyowl, Female): (
head: ( head: (
offset: (-3.5, -4.5, -4.0), offset: (-3.5, -4.5, -4.0),
center: ("npc.snowyowl.male.head"), central: ("npc.snowyowl.male.head"),
), ),
torso: ( torso: (
offset: (-3.5, -5.0, -3.0), offset: (-3.5, -5.0, -3.0),
center: ("npc.snowyowl.male.torso"), central: ("npc.snowyowl.male.torso"),
), ),
tail: ( tail: (
offset: (-2.5, -3.0, -2.0), offset: (-2.5, -3.0, -2.0),
center: ("npc.snowyowl.male.tail"), central: ("npc.snowyowl.male.tail"),
) )
), ),
(Parrot, Male): ( (Parrot, Male): (
head: ( head: (
offset: (-1.5, -1.5, -2.5), offset: (-1.5, -1.5, -2.5),
center: ("npc.parrot.male.head"), central: ("npc.parrot.male.head"),
), ),
torso: ( torso: (
offset: (-1.5, -3.5, -3.5), offset: (-1.5, -3.5, -3.5),
center: ("npc.parrot.male.torso"), central: ("npc.parrot.male.torso"),
), ),
tail: ( tail: (
offset: (-1.5, -4.5, -1.5), offset: (-1.5, -4.5, -1.5),
center: ("npc.parrot.male.tail"), central: ("npc.parrot.male.tail"),
) )
), ),
(Parrot, Female): ( (Parrot, Female): (
head: ( head: (
offset: (-1.5, -1.5, -2.5), offset: (-1.5, -1.5, -2.5),
center: ("npc.parrot.male.head"), central: ("npc.parrot.male.head"),
), ),
torso: ( torso: (
offset: (-1.5, -3.5, -3.5), offset: (-1.5, -3.5, -3.5),
center: ("npc.parrot.male.torso"), central: ("npc.parrot.male.torso"),
), ),
tail: ( tail: (
offset: (-1.5, -4.5, -1.5), offset: (-1.5, -4.5, -1.5),
center: ("npc.parrot.male.tail"), central: ("npc.parrot.male.tail"),
) )
), ),
(Cockatrice, Male): ( (Cockatrice, Male): (
head: ( head: (
offset: (-2.5, 0.0, -8.0), offset: (-2.5, 0.0, -8.0),
center: ("npc.cockatrice.male.head"), central: ("npc.cockatrice.male.head"),
), ),
torso: ( torso: (
offset: (-3.5, -6.5, -7.5), offset: (-3.5, -6.5, -7.5),
center: ("npc.cockatrice.male.torso"), central: ("npc.cockatrice.male.torso"),
), ),
tail: ( tail: (
offset: (-1.5, -3.5, -4.0), offset: (-1.5, -3.5, -4.0),
center: ("npc.cockatrice.male.tail"), central: ("npc.cockatrice.male.tail"),
) )
), ),
(Cockatrice, Female): ( (Cockatrice, Female): (
head: ( head: (
offset: (-2.5, 0.0, -8.0), offset: (-2.5, 0.0, -8.0),
center: ("npc.cockatrice.male.head"), central: ("npc.cockatrice.male.head"),
), ),
torso: ( torso: (
offset: (-3.5, -6.5, -7.5), offset: (-3.5, -6.5, -7.5),
center: ("npc.cockatrice.male.torso"), central: ("npc.cockatrice.male.torso"),
), ),
tail: ( tail: (
offset: (-1.5, -3.5, -4.0), offset: (-1.5, -3.5, -4.0),
center: ("npc.cockatrice.male.tail"), central: ("npc.cockatrice.male.tail"),
) )
), ),
}) })

View File

@ -2,61 +2,61 @@
(Reddragon, Male): ( (Reddragon, Male): (
upper: ( upper: (
offset: (-6.5, -2.0, -6.0), offset: (-6.5, -2.0, -6.0),
center: ("npc.reddragon.male.head_upper"), central: ("npc.reddragon.male.head_upper"),
), ),
lower: ( lower: (
offset: (-2.5, -2.0, -5.0), offset: (-2.5, -2.0, -5.0),
center: ("npc.reddragon.male.head_lower"), central: ("npc.reddragon.male.head_lower"),
), ),
jaw: ( jaw: (
offset: (-3.5, -2.0, -1.5), offset: (-3.5, -2.0, -1.5),
center: ("npc.reddragon.male.jaw"), central: ("npc.reddragon.male.jaw"),
), ),
chest_front: ( chest_front: (
offset: (-6.5, -6.0, -7.5), offset: (-6.5, -6.0, -7.5),
center: ("npc.reddragon.male.chest_front"), central: ("npc.reddragon.male.chest_front"),
), ),
chest_rear: ( chest_rear: (
offset: (-6.5, -13.0, -7.0), offset: (-6.5, -13.0, -7.0),
center: ("npc.reddragon.male.chest_rear"), central: ("npc.reddragon.male.chest_rear"),
), ),
tail_front: ( tail_front: (
offset: (-2.5, -12.0, -3.5), offset: (-2.5, -12.0, -3.5),
center: ("npc.reddragon.male.tail_front"), central: ("npc.reddragon.male.tail_front"),
), ),
tail_rear: ( tail_rear: (
offset: (-3.5, -16.0, -3.0), offset: (-3.5, -16.0, -3.0),
center: ("npc.reddragon.male.tail_rear"), central: ("npc.reddragon.male.tail_rear"),
) )
), ),
(Reddragon, Female): ( (Reddragon, Female): (
upper: ( upper: (
offset: (-6.5, -2.0, -6.0), offset: (-6.5, -2.0, -6.0),
center: ("npc.reddragon.male.head_upper"), central: ("npc.reddragon.male.head_upper"),
), ),
lower: ( lower: (
offset: (-2.5, -2.0, -5.0), offset: (-2.5, -2.0, -5.0),
center: ("npc.reddragon.male.head_lower"), central: ("npc.reddragon.male.head_lower"),
), ),
jaw: ( jaw: (
offset: (-3.5, -2.0, -1.5), offset: (-3.5, -2.0, -1.5),
center: ("npc.reddragon.male.jaw"), central: ("npc.reddragon.male.jaw"),
), ),
chest_front: ( chest_front: (
offset: (-6.5, -6.0, -7.5), offset: (-6.5, -6.0, -7.5),
center: ("npc.reddragon.male.chest_front"), central: ("npc.reddragon.male.chest_front"),
), ),
chest_rear: ( chest_rear: (
offset: (-6.5, -13.0, -7.0), offset: (-6.5, -13.0, -7.0),
center: ("npc.reddragon.male.chest_rear"), central: ("npc.reddragon.male.chest_rear"),
), ),
tail_front: ( tail_front: (
offset: (-2.5, -12.0, -3.5), offset: (-2.5, -12.0, -3.5),
center: ("npc.reddragon.male.tail_front"), central: ("npc.reddragon.male.tail_front"),
), ),
tail_rear: ( tail_rear: (
offset: (-3.5, -16.0, -3.0), offset: (-3.5, -16.0, -3.0),
center: ("npc.reddragon.male.tail_rear"), central: ("npc.reddragon.male.tail_rear"),
) )
), ),
}) })

View File

@ -2,29 +2,29 @@
(StoneGolem, Male): ( (StoneGolem, Male): (
head: ( head: (
offset: (-3.5, -4.0, -0.0), offset: (-3.5, -4.0, -0.0),
center: ("npc.stonegolem.male.head"), central: ("npc.stonegolem.male.head"),
), ),
torso_upper: ( torso_upper: (
offset: (-10.5, -10.5, -10.5), offset: (-10.5, -10.5, -10.5),
center: ("npc.stonegolem.male.chest_upper"), central: ("npc.stonegolem.male.chest_upper"),
), ),
torso_lower: ( torso_lower: (
offset: (-4.5, -4.5, -7.0), offset: (-4.5, -4.5, -7.0),
center: ("npc.stonegolem.male.chest_lower"), central: ("npc.stonegolem.male.chest_lower"),
), ),
), ),
(StoneGolem, Female): ( (StoneGolem, Female): (
head: ( head: (
offset: (-3.5, -4.0, -0.0), offset: (-3.5, -4.0, -0.0),
center: ("npc.stonegolem.male.head"), central: ("npc.stonegolem.male.head"),
), ),
torso_upper: ( torso_upper: (
offset: (-10.5, -10.5, -10.5), offset: (-10.5, -10.5, -10.5),
center: ("npc.stonegolem.male.chest_upper"), central: ("npc.stonegolem.male.chest_upper"),
), ),
torso_lower: ( torso_lower: (
offset: (-4.5, -4.5, -7.0), offset: (-4.5, -4.5, -7.0),
center: ("npc.stonegolem.male.chest_lower"), central: ("npc.stonegolem.male.chest_lower"),
), ),
), ),
}) })

View File

@ -1,12 +1,12 @@
({ ({
(Grolgar, Male): ( (Grolgar, Male): (
upper: ( head: (
offset: (-7.0, 0.0, -9.0), offset: (-7.0, 0.0, -9.0),
central: ("npc.grolgar.male.head_upper"), central: ("npc.grolgar.male.head"),
), ),
lower: ( neck: (
offset: (-6.0, -2.0, -8.0), offset: (-6.0, -2.0, -8.0),
central: ("npc.grolgar.male.head_lower"), central: ("npc.grolgar.male.neck"),
), ),
jaw: ( jaw: (
offset: (-2.0, 0.0, -1.5), offset: (-2.0, 0.0, -1.5),
@ -30,13 +30,13 @@
), ),
), ),
(Grolgar, Female): ( (Grolgar, Female): (
upper: ( head: (
offset: (-7.0, 0.0, -9.0), offset: (-7.0, 0.0, -9.0),
central: ("npc.grolgar.male.head_upper"), central: ("npc.grolgar.male.head"),
), ),
lower: ( neck: (
offset: (-6.0, -2.0, -8.0), offset: (-6.0, -2.0, -8.0),
central: ("npc.grolgar.male.head_lower"), central: ("npc.grolgar.male.neck"),
), ),
jaw: ( jaw: (
offset: (-2.0, 0.0, -1.5), offset: (-2.0, 0.0, -1.5),
@ -60,13 +60,13 @@
), ),
), ),
(Saber, Male): ( (Saber, Male): (
upper: ( head: (
offset: (-5.5, 0.0, -6.5), offset: (-5.5, 0.0, -6.5),
central: ("npc.saber.male.head_upper"), central: ("npc.saber.male.head"),
), ),
lower: ( neck: (
offset: (-4.0, -5.5, -4.0), offset: (-4.0, -5.5, -4.0),
central: ("npc.saber.male.head_lower"), central: ("npc.saber.male.neck"),
), ),
jaw: ( jaw: (
offset: (-2.5, 0.0, -1.5), offset: (-2.5, 0.0, -1.5),
@ -90,13 +90,13 @@
), ),
), ),
(Saber, Female): ( (Saber, Female): (
upper: ( head: (
offset: (-5.5, 0.0, -6.5), offset: (-5.5, 0.0, -6.5),
central: ("npc.saber.male.head_upper"), central: ("npc.saber.male.head"),
), ),
lower: ( neck: (
offset: (-4.0, -5.5, -4.0), offset: (-4.0, -5.5, -4.0),
central: ("npc.saber.male.head_lower"), central: ("npc.saber.male.neck"),
), ),
jaw: ( jaw: (
offset: (-2.5, 0.0, -1.5), offset: (-2.5, 0.0, -1.5),
@ -120,13 +120,13 @@
), ),
), ),
(Tuskram, Male): ( (Tuskram, Male): (
upper: ( head: (
offset: (-10.0, -6.0, -6.5), offset: (-10.0, -6.0, -6.5),
central: ("npc.tuskram.male.head_upper"), central: ("npc.tuskram.male.head"),
), ),
lower: ( neck: (
offset: (-4.0, -4.0, -3.5), offset: (-4.0, -4.0, -3.5),
central: ("npc.tuskram.male.head_lower"), central: ("npc.tuskram.male.neck"),
), ),
jaw: ( jaw: (
offset: (-2.0, 0.0, -1.5), offset: (-2.0, 0.0, -1.5),
@ -150,13 +150,13 @@
), ),
), ),
(Tuskram, Female): ( (Tuskram, Female): (
upper: ( head: (
offset: (-10.0, -6.0, -6.5), offset: (-10.0, -6.0, -6.5),
central: ("npc.tuskram.male.head_upper"), central: ("npc.tuskram.male.head"),
), ),
lower: ( neck: (
offset: (-4.0, -4.0, -3.5), offset: (-4.0, -4.0, -3.5),
central: ("npc.tuskram.male.head_lower"), central: ("npc.tuskram.male.neck"),
), ),
jaw: ( jaw: (
offset: (-2.0, 0.0, -1.5), offset: (-2.0, 0.0, -1.5),
@ -180,13 +180,13 @@
), ),
), ),
(Lion, Male): ( (Lion, Male): (
upper: ( head: (
offset: (-4.5, 0.0, -4.5), offset: (-4.5, 0.0, -4.5),
central: ("npc.lion.male.head_upper"), central: ("npc.lion.male.head"),
), ),
lower: ( neck: (
offset: (-7.5, -5.5, -8.5), offset: (-7.5, -5.5, -8.5),
central: ("npc.lion.male.head_lower"), central: ("npc.lion.male.neck"),
), ),
jaw: ( jaw: (
offset: (-2.5, 0.0, -1.0), offset: (-2.5, 0.0, -1.0),
@ -210,13 +210,13 @@
), ),
), ),
(Lion, Female): ( (Lion, Female): (
upper: ( head: (
offset: (-4.5, 0.0, -4.5), offset: (-4.5, 0.0, -4.5),
central: ("npc.lion.male.head_upper"), central: ("npc.lion.male.head"),
), ),
lower: ( neck: (
offset: (-7.5, -5.5, -8.5), offset: (-7.5, -5.5, -8.5),
central: ("npc.lion.male.head_lower"), central: ("npc.lion.male.neck"),
), ),
jaw: ( jaw: (
offset: (-2.5, 0.0, -1.0), offset: (-2.5, 0.0, -1.0),
@ -240,13 +240,13 @@
), ),
), ),
(Tarasque, Male): ( (Tarasque, Male): (
upper: ( head: (
offset: (-10.0, 0.0, -10.0), offset: (-10.0, 0.0, -10.0),
central: ("npc.tarasque.male.head_upper"), central: ("npc.tarasque.male.head"),
), ),
lower: ( neck: (
offset: (-5.0, -3.0, -4.5), offset: (-5.0, -3.0, -4.5),
central: ("npc.tarasque.male.head_lower"), central: ("npc.tarasque.male.neck"),
), ),
jaw: ( jaw: (
offset: (-5.0, 0.0, -0.0), offset: (-5.0, 0.0, -0.0),
@ -270,13 +270,13 @@
), ),
), ),
(Tarasque, Female): ( (Tarasque, Female): (
upper: ( head: (
offset: (-10.0, 0.0, -10.0), offset: (-10.0, 0.0, -10.0),
central: ("npc.tarasque.male.head_upper"), central: ("npc.tarasque.male.head"),
), ),
lower: ( neck: (
offset: (-5.0, -3.0, -4.5), offset: (-5.0, -3.0, -4.5),
central: ("npc.tarasque.male.head_lower"), central: ("npc.tarasque.male.neck"),
), ),
jaw: ( jaw: (
offset: (-5.0, 0.0, -0.0), offset: (-5.0, 0.0, -0.0),
@ -300,13 +300,13 @@
), ),
), ),
(Tiger, Male): ( (Tiger, Male): (
upper: ( head: (
offset: (-5.5, 0.0, -5.0), offset: (-5.5, 0.0, -5.0),
central: ("npc.tiger.male.head_upper"), central: ("npc.tiger.male.head"),
), ),
lower: ( neck: (
offset: (-4.5, -2.0, -5.0), offset: (-4.5, -2.0, -5.0),
central: ("npc.tiger.male.head_lower"), central: ("npc.tiger.male.neck"),
), ),
jaw: ( jaw: (
offset: (-2.5, 0.0, -1.0), offset: (-2.5, 0.0, -1.0),
@ -330,13 +330,13 @@
), ),
), ),
(Tiger, Female): ( (Tiger, Female): (
upper: ( head: (
offset: (-5.5, 0.0, -5.0), offset: (-5.5, 0.0, -5.0),
central: ("npc.tiger.male.head_upper"), central: ("npc.tiger.male.head"),
), ),
lower: ( neck: (
offset: (-4.5, -2.0, -5.0), offset: (-4.5, -2.0, -5.0),
central: ("npc.tiger.male.head_lower"), central: ("npc.tiger.male.neck"),
), ),
jaw: ( jaw: (
offset: (-2.5, 0.0, -1.0), offset: (-2.5, 0.0, -1.0),
@ -360,13 +360,13 @@
), ),
), ),
(Wolf, Male): ( (Wolf, Male): (
upper: ( head: (
offset: (-5.0, 0.0, -3.5), offset: (-5.0, 0.0, -3.5),
central: ("npc.wolf.male.head_upper"), central: ("npc.wolf.male.head"),
), ),
lower: ( neck: (
offset: (-5.0, -4.5, -5.0), offset: (-5.0, -4.5, -5.0),
central: ("npc.wolf.male.head_lower"), central: ("npc.wolf.male.neck"),
), ),
jaw: ( jaw: (
offset: (-2.0, 0.0, -1.0), offset: (-2.0, 0.0, -1.0),
@ -390,13 +390,13 @@
), ),
), ),
(Wolf, Female): ( (Wolf, Female): (
upper: ( head: (
offset: (-5.0, 0.0, -3.5), offset: (-5.0, 0.0, -3.5),
central: ("npc.wolf.male.head_upper"), central: ("npc.wolf.male.head"),
), ),
lower: ( neck: (
offset: (-5.0, -4.5, -5.0), offset: (-5.0, -4.5, -5.0),
central: ("npc.wolf.male.head_lower"), central: ("npc.wolf.male.neck"),
), ),
jaw: ( jaw: (
offset: (-2.0, 0.0, -1.0), offset: (-2.0, 0.0, -1.0),
@ -420,13 +420,13 @@
), ),
), ),
(Frostfang, Male): ( (Frostfang, Male): (
upper: ( head: (
offset: (-4.0, 0.0, -4.5), offset: (-4.0, 0.0, -4.5),
central: ("npc.frostfang.male.head_upper"), central: ("npc.frostfang.male.head"),
), ),
lower: ( neck: (
offset: (-3.0, -2.0, -4.0), offset: (-3.0, -2.0, -4.0),
central: ("npc.frostfang.male.head_lower"), central: ("npc.frostfang.male.neck"),
), ),
jaw: ( jaw: (
offset: (-2.0, 0.0, -3.5), offset: (-2.0, 0.0, -3.5),
@ -450,13 +450,13 @@
), ),
), ),
(Frostfang, Female): ( (Frostfang, Female): (
upper: ( head: (
offset: (-4.0, 0.0, -4.5), offset: (-4.0, 0.0, -4.5),
central: ("npc.frostfang.male.head_upper"), central: ("npc.frostfang.male.head"),
), ),
lower: ( neck: (
offset: (-3.0, -2.0, -4.0), offset: (-3.0, -2.0, -4.0),
central: ("npc.frostfang.male.head_lower"), central: ("npc.frostfang.male.neck"),
), ),
jaw: ( jaw: (
offset: (-2.0, 0.0, -3.5), offset: (-2.0, 0.0, -3.5),
@ -480,13 +480,13 @@
), ),
), ),
(Mouflon, Male): ( (Mouflon, Male): (
upper: ( head: (
offset: (-7.0, 0.0, -4.5), offset: (-7.0, 0.0, -4.5),
central: ("npc.mouflon.male.head_upper"), central: ("npc.mouflon.male.head"),
), ),
lower: ( neck: (
offset: (-4.0, -4.0, -4.5), offset: (-4.0, -4.0, -4.5),
central: ("npc.mouflon.male.head_lower"), central: ("npc.mouflon.male.neck"),
), ),
jaw: ( jaw: (
offset: (-2.0, 0.0, -1.0), offset: (-2.0, 0.0, -1.0),
@ -510,13 +510,13 @@
), ),
), ),
(Mouflon, Female): ( (Mouflon, Female): (
upper: ( head: (
offset: (-7.0, 0.0, -4.5), offset: (-7.0, 0.0, -4.5),
central: ("npc.mouflon.male.head_upper"), central: ("npc.mouflon.male.head"),
), ),
lower: ( neck: (
offset: (-4.0, -4.0, -4.5), offset: (-4.0, -4.0, -4.5),
central: ("npc.mouflon.male.head_lower"), central: ("npc.mouflon.male.neck"),
), ),
jaw: ( jaw: (
offset: (-2.0, 0.0, -1.0), offset: (-2.0, 0.0, -1.0),
@ -540,13 +540,13 @@
), ),
), ),
(Catoblepas, Male): ( (Catoblepas, Male): (
upper: ( head: (
offset: (-13.0, 0.0, -4.5), offset: (-13.0, 0.0, -4.5),
central: ("npc.catoblepas.male.head_upper"), central: ("npc.catoblepas.male.head"),
), ),
lower: ( neck: (
offset: (-4.0, -10.0, -12.0), offset: (-4.0, -10.0, -12.0),
central: ("npc.catoblepas.male.head_lower"), central: ("npc.catoblepas.male.neck"),
), ),
jaw: ( jaw: (
offset: (-4.0, 0.0, -3.0), offset: (-4.0, 0.0, -3.0),
@ -570,13 +570,13 @@
), ),
), ),
(Catoblepas, Female): ( (Catoblepas, Female): (
upper: ( head: (
offset: (-13.0, 0.0, -4.5), offset: (-13.0, 0.0, -4.5),
central: ("npc.catoblepas.male.head_upper"), central: ("npc.catoblepas.male.head"),
), ),
lower: ( neck: (
offset: (-4.0, -10.0, -12.0), offset: (-4.0, -10.0, -12.0),
central: ("npc.catoblepas.male.head_lower"), central: ("npc.catoblepas.male.neck"),
), ),
jaw: ( jaw: (
offset: (-4.0, 0.0, -3.0), offset: (-4.0, 0.0, -3.0),
@ -600,13 +600,13 @@
), ),
), ),
(Bonerattler, Male): ( (Bonerattler, Male): (
upper: ( head: (
offset: (-4.5, 0.0, -4.5), offset: (-4.5, 0.0, -4.5),
central: ("npc.bonerattler.male.head_upper"), central: ("npc.bonerattler.male.head"),
), ),
lower: ( neck: (
offset: (-4.5, -2.0, -5.0), offset: (-4.5, -2.0, -5.0),
central: ("npc.bonerattler.male.head_lower"), central: ("npc.bonerattler.male.neck"),
), ),
jaw: ( jaw: (
offset: (-3.5, 0.0, -2.0), offset: (-3.5, 0.0, -2.0),
@ -630,13 +630,13 @@
), ),
), ),
(Bonerattler, Female): ( (Bonerattler, Female): (
upper: ( head: (
offset: (-4.5, 0.0, -4.5), offset: (-4.5, 0.0, -4.5),
central: ("npc.bonerattler.male.head_upper"), central: ("npc.bonerattler.male.head"),
), ),
lower: ( neck: (
offset: (-4.5, -2.0, -5.0), offset: (-4.5, -2.0, -5.0),
central: ("npc.bonerattler.male.head_lower"), central: ("npc.bonerattler.male.neck"),
), ),
jaw: ( jaw: (
offset: (-3.5, 0.0, -2.0), offset: (-3.5, 0.0, -2.0),
@ -660,13 +660,13 @@
), ),
), ),
(Deer, Male): ( (Deer, Male): (
upper: ( head: (
offset: (-6.0, -5.0, 0.0), offset: (-6.0, -5.0, 0.0),
central: ("npc.deer.male.head_upper"), central: ("npc.deer.male.head"),
), ),
lower: ( neck: (
offset: (-3.0, -3.5, -4.0), offset: (-3.0, -3.5, -4.0),
central: ("npc.deer.male.head_lower"), central: ("npc.deer.male.neck"),
), ),
jaw: ( jaw: (
offset: (-1.0, 0.0, -0.5), offset: (-1.0, 0.0, -0.5),
@ -690,13 +690,13 @@
), ),
), ),
(Deer, Female): ( (Deer, Female): (
upper: ( head: (
offset: (-6.0, -3.0, 0.0), offset: (-6.0, -3.0, 0.0),
central: ("npc.deer.female.head_upper"), central: ("npc.deer.female.head"),
), ),
lower: ( neck: (
offset: (-3.0, -3.5, -4.0), offset: (-3.0, -3.5, -4.0),
central: ("npc.deer.female.head_lower"), central: ("npc.deer.female.neck"),
), ),
jaw: ( jaw: (
offset: (-1.0, 0.0, -0.5), offset: (-1.0, 0.0, -0.5),
@ -720,13 +720,13 @@
), ),
), ),
(Hirdrassil, Male): ( (Hirdrassil, Male): (
upper: ( head: (
offset: (-9.0, -12.0, 0.0), offset: (-9.0, -12.0, 0.0),
central: ("npc.hirdrassil.male.head_upper"), central: ("npc.hirdrassil.male.head"),
), ),
lower: ( neck: (
offset: (-4.0, -4.0, -6.0), offset: (-4.0, -4.0, -6.0),
central: ("npc.hirdrassil.male.head_lower"), central: ("npc.hirdrassil.male.neck"),
), ),
jaw: ( jaw: (
offset: (-1.0, 0.0, -7.0), offset: (-1.0, 0.0, -7.0),
@ -750,13 +750,13 @@
), ),
), ),
(Hirdrassil, Female): ( (Hirdrassil, Female): (
upper: ( head: (
offset: (-9.0, -12.0, 0.0), offset: (-9.0, -12.0, 0.0),
central: ("npc.hirdrassil.male.head_upper"), central: ("npc.hirdrassil.male.head"),
), ),
lower: ( neck: (
offset: (-4.0, -4.0, -6.0), offset: (-4.0, -4.0, -6.0),
central: ("npc.hirdrassil.male.head_lower"), central: ("npc.hirdrassil.male.neck"),
), ),
jaw: ( jaw: (
offset: (-1.0, 0.0, -7.0), offset: (-1.0, 0.0, -7.0),

View File

@ -32,16 +32,16 @@ impl Animation for AlphaAnimation {
.sqrt()) .sqrt())
* ((anim_time as f32 * 4.0 + PI * 0.5).sin()); * ((anim_time as f32 * 4.0 + PI * 0.5).sin());
next.head_upper.position = next.head.position =
Vec3::new(0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1); Vec3::new(0.0, skeleton_attr.head.0, skeleton_attr.head.1);
next.head_upper.orientation = next.head.orientation =
Quaternion::rotation_y(short * -0.2) * Quaternion::rotation_x(0.1 + short * 0.2); Quaternion::rotation_y(short * -0.2) * Quaternion::rotation_x(0.1 + short * 0.2);
next.head_upper.scale = Vec3::one(); next.head.scale = Vec3::one();
next.head_lower.position = next.neck.position =
Vec3::new(0.0, skeleton_attr.head_lower.0, skeleton_attr.head_lower.1); Vec3::new(0.0, skeleton_attr.neck.0, skeleton_attr.neck.1);
next.head_lower.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0); next.neck.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.head_lower.scale = Vec3::one() * 1.02; next.neck.scale = Vec3::one() * 1.02;
next.jaw.position = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1); next.jaw.position = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1);
next.jaw.orientation = Quaternion::rotation_x(-0.3 + quick * 0.4); next.jaw.orientation = Quaternion::rotation_x(-0.3 + quick * 0.4);

View File

@ -51,22 +51,22 @@ impl Animation for IdleAnimation {
* 0.125, * 0.125,
); );
next.head_upper.position = Vec3::new( next.head.position = Vec3::new(
0.0, 0.0,
skeleton_attr.head_upper.0, skeleton_attr.head.0,
skeleton_attr.head_upper.1 + slower * 0.2, skeleton_attr.head.1 + slower * 0.2,
); );
next.head_upper.orientation = next.head.orientation =
Quaternion::rotation_z(0.3 * look.x) * Quaternion::rotation_x(0.3 * look.y); Quaternion::rotation_z(0.3 * look.x) * Quaternion::rotation_x(0.3 * look.y);
next.head_upper.scale = Vec3::one(); next.head.scale = Vec3::one();
next.head_lower.position = Vec3::new( next.neck.position = Vec3::new(
0.0, 0.0,
skeleton_attr.head_lower.0, skeleton_attr.neck.0,
skeleton_attr.head_lower.1 + slower * 0.1, skeleton_attr.neck.1 + slower * 0.1,
); );
next.head_lower.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0); next.neck.orientation = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0);
next.head_lower.scale = Vec3::one() * 1.02; next.neck.scale = Vec3::one() * 1.02;
next.jaw.position = Vec3::new( next.jaw.position = Vec3::new(
0.0, 0.0,

View File

@ -22,15 +22,15 @@ impl Animation for JumpAnimation {
) -> Self::Skeleton { ) -> Self::Skeleton {
let mut next = (*skeleton).clone(); let mut next = (*skeleton).clone();
next.head_upper.position = next.head.position =
Vec3::new(0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1); Vec3::new(0.0, skeleton_attr.head.0, skeleton_attr.head.1);
next.head_upper.orientation = Quaternion::rotation_z(0.4) * Quaternion::rotation_x(0.3); next.head.orientation = Quaternion::rotation_z(0.4) * Quaternion::rotation_x(0.3);
next.head_upper.scale = Vec3::one(); next.head.scale = Vec3::one();
next.head_lower.position = next.neck.position =
Vec3::new(0.0, skeleton_attr.head_lower.0, skeleton_attr.head_lower.1); Vec3::new(0.0, skeleton_attr.neck.0, skeleton_attr.neck.1);
next.head_lower.orientation = Quaternion::rotation_z(0.2) * Quaternion::rotation_x(0.3); next.neck.orientation = Quaternion::rotation_z(0.2) * Quaternion::rotation_x(0.3);
next.head_lower.scale = Vec3::one() * 1.02; next.neck.scale = Vec3::one() * 1.02;
next.jaw.position = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1); next.jaw.position = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1);
next.jaw.orientation = Quaternion::rotation_x(-0.4); next.jaw.orientation = Quaternion::rotation_x(-0.4);

View File

@ -15,8 +15,8 @@ use core::convert::TryFrom;
pub type Body = comp::quadruped_medium::Body; pub type Body = comp::quadruped_medium::Body;
skeleton_impls!(struct QuadrupedMediumSkeleton { skeleton_impls!(struct QuadrupedMediumSkeleton {
+ head_upper, + head,
+ head_lower, + neck,
+ jaw, + jaw,
+ tail, + tail,
+ torso_front, + torso_front,
@ -48,21 +48,21 @@ impl Skeleton for QuadrupedMediumSkeleton {
) -> Vec3<f32> { ) -> Vec3<f32> {
let torso_front_mat = base_mat * Mat4::<f32>::from(self.torso_front); let torso_front_mat = base_mat * Mat4::<f32>::from(self.torso_front);
let torso_back_mat = torso_front_mat * Mat4::<f32>::from(self.torso_back); let torso_back_mat = torso_front_mat * Mat4::<f32>::from(self.torso_back);
let head_lower_mat = torso_front_mat * Mat4::<f32>::from(self.head_lower); let neck_mat = torso_front_mat * Mat4::<f32>::from(self.neck);
let leg_fl_mat = torso_front_mat * Mat4::<f32>::from(self.leg_fl); let leg_fl_mat = torso_front_mat * Mat4::<f32>::from(self.leg_fl);
let leg_fr_mat = torso_front_mat * Mat4::<f32>::from(self.leg_fr); let leg_fr_mat = torso_front_mat * Mat4::<f32>::from(self.leg_fr);
let leg_bl_mat = torso_back_mat * Mat4::<f32>::from(self.leg_bl); let leg_bl_mat = torso_back_mat * Mat4::<f32>::from(self.leg_bl);
let leg_br_mat = torso_back_mat * Mat4::<f32>::from(self.leg_br); let leg_br_mat = torso_back_mat * Mat4::<f32>::from(self.leg_br);
let head_upper_mat = head_lower_mat * Mat4::<f32>::from(self.head_upper); let head_mat = neck_mat * Mat4::<f32>::from(self.head);
*(<&mut [_; Self::BONE_COUNT]>::try_from(&mut buf[0..Self::BONE_COUNT]).unwrap()) = [ *(<&mut [_; Self::BONE_COUNT]>::try_from(&mut buf[0..Self::BONE_COUNT]).unwrap()) = [
make_bone(head_upper_mat), make_bone(head_mat),
make_bone(head_lower_mat), make_bone(neck_mat),
make_bone(head_upper_mat * Mat4::<f32>::from(self.jaw)), make_bone(head_mat * Mat4::<f32>::from(self.jaw)),
make_bone(torso_back_mat * Mat4::<f32>::from(self.tail)), make_bone(torso_back_mat * Mat4::<f32>::from(self.tail)),
make_bone(torso_front_mat), make_bone(torso_front_mat),
make_bone(torso_back_mat), make_bone(torso_back_mat),
make_bone(head_upper_mat * Mat4::<f32>::from(self.ears)), make_bone(head_mat * Mat4::<f32>::from(self.ears)),
make_bone(leg_fl_mat), make_bone(leg_fl_mat),
make_bone(leg_fr_mat), make_bone(leg_fr_mat),
make_bone(leg_bl_mat), make_bone(leg_bl_mat),
@ -77,8 +77,8 @@ impl Skeleton for QuadrupedMediumSkeleton {
} }
pub struct SkeletonAttr { pub struct SkeletonAttr {
head_upper: (f32, f32), head: (f32, f32),
head_lower: (f32, f32), neck: (f32, f32),
jaw: (f32, f32), jaw: (f32, f32),
tail: (f32, f32), tail: (f32, f32),
torso_back: (f32, f32), torso_back: (f32, f32),
@ -109,8 +109,8 @@ impl<'a> std::convert::TryFrom<&'a comp::Body> for SkeletonAttr {
impl Default for SkeletonAttr { impl Default for SkeletonAttr {
fn default() -> Self { fn default() -> Self {
Self { Self {
head_upper: (0.0, 0.0), head: (0.0, 0.0),
head_lower: (0.0, 0.0), neck: (0.0, 0.0),
jaw: (0.0, 0.0), jaw: (0.0, 0.0),
tail: (0.0, 0.0), tail: (0.0, 0.0),
torso_back: (0.0, 0.0), torso_back: (0.0, 0.0),
@ -133,7 +133,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
fn from(body: &'a Body) -> Self { fn from(body: &'a Body) -> Self {
use comp::quadruped_medium::{BodyType::*, Species::*}; use comp::quadruped_medium::{BodyType::*, Species::*};
Self { Self {
head_upper: match (body.species, body.body_type) { head: match (body.species, body.body_type) {
(Grolgar, _) => (0.0, -1.0), (Grolgar, _) => (0.0, -1.0),
(Saber, _) => (0.0, -3.0), (Saber, _) => (0.0, -3.0),
(Tuskram, _) => (0.0, 1.0), (Tuskram, _) => (0.0, 1.0),
@ -149,7 +149,7 @@ impl<'a> From<&'a Body> for SkeletonAttr {
(Deer, Female) => (0.5, 3.5), (Deer, Female) => (0.5, 3.5),
(Hirdrassil, _) => (0.0, 5.0), (Hirdrassil, _) => (0.0, 5.0),
}, },
head_lower: match (body.species, body.body_type) { neck: match (body.species, body.body_type) {
(Grolgar, _) => (1.0, -1.0), (Grolgar, _) => (1.0, -1.0),
(Saber, _) => (1.0, 0.0), (Saber, _) => (1.0, 0.0),
(Tuskram, _) => (1.0, 1.0), (Tuskram, _) => (1.0, 1.0),

View File

@ -99,21 +99,21 @@ impl Animation for RunAnimation {
let x_tilt = avg_vel.z.atan2(avg_vel.xy().magnitude()); let x_tilt = avg_vel.z.atan2(avg_vel.xy().magnitude());
//Gallop //Gallop
next.head_upper.position = next.head.position =
Vec3::new(0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1); Vec3::new(0.0, skeleton_attr.head.0, skeleton_attr.head.1);
next.head_upper.orientation = Quaternion::rotation_x( next.head.orientation = Quaternion::rotation_x(
look.y * 0.3 / ((canceler).max(0.5)) + amplitude * short * -0.03 - 0.1, look.y * 0.3 / ((canceler).max(0.5)) + amplitude * short * -0.03 - 0.1,
) * Quaternion::rotation_z( ) * Quaternion::rotation_z(
look.x * 0.3 / ((canceler).max(0.5)) + tilt * -1.2, look.x * 0.3 / ((canceler).max(0.5)) + tilt * -1.2,
) * Quaternion::rotation_y(tilt * 0.8); ) * Quaternion::rotation_y(tilt * 0.8);
next.head_upper.scale = Vec3::one(); next.head.scale = Vec3::one();
next.head_lower.position = next.neck.position =
Vec3::new(0.0, skeleton_attr.head_lower.0, skeleton_attr.head_lower.1); Vec3::new(0.0, skeleton_attr.neck.0, skeleton_attr.neck.1);
next.head_lower.orientation = Quaternion::rotation_z(tilt * -0.8) next.neck.orientation = Quaternion::rotation_z(tilt * -0.8)
* Quaternion::rotation_x(amplitude * short * -0.05) * Quaternion::rotation_x(amplitude * short * -0.05)
* Quaternion::rotation_y(tilt * 0.3); * Quaternion::rotation_y(tilt * 0.3);
next.head_lower.scale = Vec3::one() * 1.02; next.neck.scale = Vec3::one() * 1.02;
next.jaw.position = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1); next.jaw.position = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1);
next.jaw.orientation = Quaternion::rotation_x(0.0); next.jaw.orientation = Quaternion::rotation_x(0.0);

View File

@ -41,7 +41,6 @@ impl Animation for RunAnimation {
0.9 * (1.0 * 1.0) 0.9 * (1.0 * 1.0)
}; };
let speedadjust = if speed < 5.0 { 0.0 } else { speed / 25.0 };
let short = (((1.0) let short = (((1.0)
/ (0.72 / (0.72
+ 0.28 + 0.28

View File

@ -1187,8 +1187,8 @@ struct QuadrupedMediumCentralSpec(HashMap<(QMSpecies, QMBodyType), SidedQMCentra
#[derive(Deserialize)] #[derive(Deserialize)]
struct SidedQMCentralVoxSpec { struct SidedQMCentralVoxSpec {
upper: QuadrupedMediumCentralSubSpec, head: QuadrupedMediumCentralSubSpec,
lower: QuadrupedMediumCentralSubSpec, neck: QuadrupedMediumCentralSubSpec,
jaw: QuadrupedMediumCentralSubSpec, jaw: QuadrupedMediumCentralSubSpec,
ears: QuadrupedMediumCentralSubSpec, ears: QuadrupedMediumCentralSubSpec,
torso_front: QuadrupedMediumCentralSubSpec, torso_front: QuadrupedMediumCentralSubSpec,
@ -1228,11 +1228,11 @@ make_vox_spec!(
}, },
|FigureKey { body, .. }, spec| { |FigureKey { body, .. }, spec| {
[ [
Some(spec.central.asset.mesh_head_upper( Some(spec.central.asset.mesh_head(
body.species, body.species,
body.body_type, body.body_type,
)), )),
Some(spec.central.asset.mesh_head_lower( Some(spec.central.asset.mesh_neck(
body.species, body.species,
body.body_type, body.body_type,
)), )),
@ -1294,36 +1294,36 @@ make_vox_spec!(
); );
impl QuadrupedMediumCentralSpec { impl QuadrupedMediumCentralSpec {
fn mesh_head_upper(&self, species: QMSpecies, body_type: QMBodyType) -> BoneMeshes { fn mesh_head(&self, species: QMSpecies, body_type: QMBodyType) -> BoneMeshes {
let spec = match self.0.get(&(species, body_type)) { let spec = match self.0.get(&(species, body_type)) {
Some(spec) => spec, Some(spec) => spec,
None => { None => {
error!( error!(
"No upper head specification exists for the combination of {:?} and {:?}", "No head specification exists for the combination of {:?} and {:?}",
species, body_type species, body_type
); );
return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5)); return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5));
}, },
}; };
let central = graceful_load_segment(&spec.upper.central.0); let central = graceful_load_segment(&spec.head.central.0);
(central, Vec3::from(spec.upper.offset)) (central, Vec3::from(spec.head.offset))
} }
fn mesh_head_lower(&self, species: QMSpecies, body_type: QMBodyType) -> BoneMeshes { fn mesh_neck(&self, species: QMSpecies, body_type: QMBodyType) -> BoneMeshes {
let spec = match self.0.get(&(species, body_type)) { let spec = match self.0.get(&(species, body_type)) {
Some(spec) => spec, Some(spec) => spec,
None => { None => {
error!( error!(
"No lower head specification exists for the combination of {:?} and {:?}", "No neck specification exists for the combination of {:?} and {:?}",
species, body_type species, body_type
); );
return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5)); return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5));
}, },
}; };
let central = graceful_load_segment(&spec.lower.central.0); let central = graceful_load_segment(&spec.neck.central.0);
(central, Vec3::from(spec.lower.offset)) (central, Vec3::from(spec.neck.offset))
} }
fn mesh_jaw(&self, species: QMSpecies, body_type: QMBodyType) -> BoneMeshes { fn mesh_jaw(&self, species: QMSpecies, body_type: QMBodyType) -> BoneMeshes {
@ -1539,18 +1539,18 @@ impl QuadrupedMediumLateralSpec {
//// ////
#[derive(Deserialize)] #[derive(Deserialize)]
struct BirdMediumCenterSpec(HashMap<(BMSpecies, BMBodyType), SidedBMCenterVoxSpec>); struct BirdMediumCentralSpec(HashMap<(BMSpecies, BMBodyType), SidedBMCentralVoxSpec>);
#[derive(Deserialize)] #[derive(Deserialize)]
struct SidedBMCenterVoxSpec { struct SidedBMCentralVoxSpec {
head: BirdMediumCenterSubSpec, head: BirdMediumCentralSubSpec,
torso: BirdMediumCenterSubSpec, torso: BirdMediumCentralSubSpec,
tail: BirdMediumCenterSubSpec, tail: BirdMediumCentralSubSpec,
} }
#[derive(Deserialize)] #[derive(Deserialize)]
struct BirdMediumCenterSubSpec { struct BirdMediumCentralSubSpec {
offset: [f32; 3], // Should be relative to initial origin offset: [f32; 3], // Should be relative to initial origin
center: VoxSimple, central: VoxSimple,
} }
#[derive(Deserialize)] #[derive(Deserialize)]
@ -1572,20 +1572,20 @@ struct BirdMediumLateralSubSpec {
make_vox_spec!( make_vox_spec!(
bird_medium::Body, bird_medium::Body,
struct BirdMediumSpec { struct BirdMediumSpec {
center: BirdMediumCenterSpec = "voxygen.voxel.bird_medium_center_manifest", central: BirdMediumCentralSpec = "voxygen.voxel.bird_medium_central_manifest",
lateral: BirdMediumLateralSpec = "voxygen.voxel.bird_medium_lateral_manifest", lateral: BirdMediumLateralSpec = "voxygen.voxel.bird_medium_lateral_manifest",
}, },
|FigureKey { body, .. }, spec| { |FigureKey { body, .. }, spec| {
[ [
Some(spec.center.asset.mesh_head( Some(spec.central.asset.mesh_head(
body.species, body.species,
body.body_type, body.body_type,
)), )),
Some(spec.center.asset.mesh_torso( Some(spec.central.asset.mesh_torso(
body.species, body.species,
body.body_type, body.body_type,
)), )),
Some(spec.center.asset.mesh_tail( Some(spec.central.asset.mesh_tail(
body.species, body.species,
body.body_type, body.body_type,
)), )),
@ -1618,7 +1618,7 @@ make_vox_spec!(
}, },
); );
impl BirdMediumCenterSpec { impl BirdMediumCentralSpec {
fn mesh_head(&self, species: BMSpecies, body_type: BMBodyType) -> BoneMeshes { fn mesh_head(&self, species: BMSpecies, body_type: BMBodyType) -> BoneMeshes {
let spec = match self.0.get(&(species, body_type)) { let spec = match self.0.get(&(species, body_type)) {
Some(spec) => spec, Some(spec) => spec,
@ -1630,9 +1630,9 @@ impl BirdMediumCenterSpec {
return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5)); return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5));
}, },
}; };
let center = graceful_load_segment(&spec.head.center.0); let central = graceful_load_segment(&spec.head.central.0);
(center, Vec3::from(spec.head.offset)) (central, Vec3::from(spec.head.offset))
} }
fn mesh_torso(&self, species: BMSpecies, body_type: BMBodyType) -> BoneMeshes { fn mesh_torso(&self, species: BMSpecies, body_type: BMBodyType) -> BoneMeshes {
@ -1646,9 +1646,9 @@ impl BirdMediumCenterSpec {
return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5)); return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5));
}, },
}; };
let center = graceful_load_segment(&spec.torso.center.0); let central = graceful_load_segment(&spec.torso.central.0);
(center, Vec3::from(spec.torso.offset)) (central, Vec3::from(spec.torso.offset))
} }
fn mesh_tail(&self, species: BMSpecies, body_type: BMBodyType) -> BoneMeshes { fn mesh_tail(&self, species: BMSpecies, body_type: BMBodyType) -> BoneMeshes {
@ -1662,9 +1662,9 @@ impl BirdMediumCenterSpec {
return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5)); return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5));
}, },
}; };
let center = graceful_load_segment(&spec.tail.center.0); let central = graceful_load_segment(&spec.tail.central.0);
(center, Vec3::from(spec.tail.offset)) (central, Vec3::from(spec.tail.offset))
} }
} }
impl BirdMediumLateralSpec { impl BirdMediumLateralSpec {
@ -2160,22 +2160,22 @@ fn mesh_fish_medium_fin_r(fin_r: fish_medium::FinR) -> BoneMeshes {
//// ////
#[derive(Deserialize)] #[derive(Deserialize)]
struct DragonCenterSpec(HashMap<(DSpecies, DBodyType), SidedDCenterVoxSpec>); struct DragonCentralSpec(HashMap<(DSpecies, DBodyType), SidedDCentralVoxSpec>);
#[derive(Deserialize)] #[derive(Deserialize)]
struct SidedDCenterVoxSpec { struct SidedDCentralVoxSpec {
upper: DragonCenterSubSpec, upper: DragonCentralSubSpec,
lower: DragonCenterSubSpec, lower: DragonCentralSubSpec,
jaw: DragonCenterSubSpec, jaw: DragonCentralSubSpec,
chest_front: DragonCenterSubSpec, chest_front: DragonCentralSubSpec,
chest_rear: DragonCenterSubSpec, chest_rear: DragonCentralSubSpec,
tail_front: DragonCenterSubSpec, tail_front: DragonCentralSubSpec,
tail_rear: DragonCenterSubSpec, tail_rear: DragonCentralSubSpec,
} }
#[derive(Deserialize)] #[derive(Deserialize)]
struct DragonCenterSubSpec { struct DragonCentralSubSpec {
offset: [f32; 3], // Should be relative to initial origin offset: [f32; 3], // Should be relative to initial origin
center: VoxSimple, central: VoxSimple,
} }
#[derive(Deserialize)] #[derive(Deserialize)]
@ -2201,36 +2201,36 @@ struct DragonLateralSubSpec {
make_vox_spec!( make_vox_spec!(
dragon::Body, dragon::Body,
struct DragonSpec { struct DragonSpec {
center: DragonCenterSpec = "voxygen.voxel.dragon_center_manifest", central: DragonCentralSpec = "voxygen.voxel.dragon_central_manifest",
lateral: DragonLateralSpec = "voxygen.voxel.dragon_lateral_manifest", lateral: DragonLateralSpec = "voxygen.voxel.dragon_lateral_manifest",
}, },
|FigureKey { body, .. }, spec| { |FigureKey { body, .. }, spec| {
[ [
Some(spec.center.asset.mesh_head_upper( Some(spec.central.asset.mesh_head_upper(
body.species, body.species,
body.body_type, body.body_type,
)), )),
Some(spec.center.asset.mesh_head_lower( Some(spec.central.asset.mesh_head_lower(
body.species, body.species,
body.body_type, body.body_type,
)), )),
Some(spec.center.asset.mesh_jaw( Some(spec.central.asset.mesh_jaw(
body.species, body.species,
body.body_type, body.body_type,
)), )),
Some(spec.center.asset.mesh_chest_front( Some(spec.central.asset.mesh_chest_front(
body.species, body.species,
body.body_type, body.body_type,
)), )),
Some(spec.center.asset.mesh_chest_rear( Some(spec.central.asset.mesh_chest_rear(
body.species, body.species,
body.body_type, body.body_type,
)), )),
Some(spec.center.asset.mesh_tail_front( Some(spec.central.asset.mesh_tail_front(
body.species, body.species,
body.body_type, body.body_type,
)), )),
Some(spec.center.asset.mesh_tail_rear( Some(spec.central.asset.mesh_tail_rear(
body.species, body.species,
body.body_type, body.body_type,
)), )),
@ -2271,7 +2271,7 @@ make_vox_spec!(
}, },
); );
impl DragonCenterSpec { impl DragonCentralSpec {
fn mesh_head_upper(&self, species: DSpecies, body_type: DBodyType) -> BoneMeshes { fn mesh_head_upper(&self, species: DSpecies, body_type: DBodyType) -> BoneMeshes {
let spec = match self.0.get(&(species, body_type)) { let spec = match self.0.get(&(species, body_type)) {
Some(spec) => spec, Some(spec) => spec,
@ -2283,7 +2283,7 @@ impl DragonCenterSpec {
return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5)); return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5));
}, },
}; };
let central = graceful_load_segment(&spec.upper.center.0); let central = graceful_load_segment(&spec.upper.central.0);
(central, Vec3::from(spec.upper.offset)) (central, Vec3::from(spec.upper.offset))
} }
@ -2299,7 +2299,7 @@ impl DragonCenterSpec {
return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5)); return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5));
}, },
}; };
let central = graceful_load_segment(&spec.lower.center.0); let central = graceful_load_segment(&spec.lower.central.0);
(central, Vec3::from(spec.lower.offset)) (central, Vec3::from(spec.lower.offset))
} }
@ -2315,7 +2315,7 @@ impl DragonCenterSpec {
return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5)); return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5));
}, },
}; };
let central = graceful_load_segment(&spec.jaw.center.0); let central = graceful_load_segment(&spec.jaw.central.0);
(central, Vec3::from(spec.jaw.offset)) (central, Vec3::from(spec.jaw.offset))
} }
@ -2331,9 +2331,9 @@ impl DragonCenterSpec {
return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5)); return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5));
}, },
}; };
let center = graceful_load_segment(&spec.chest_front.center.0); let central = graceful_load_segment(&spec.chest_front.central.0);
(center, Vec3::from(spec.chest_front.offset)) (central, Vec3::from(spec.chest_front.offset))
} }
fn mesh_chest_rear(&self, species: DSpecies, body_type: DBodyType) -> BoneMeshes { fn mesh_chest_rear(&self, species: DSpecies, body_type: DBodyType) -> BoneMeshes {
@ -2347,9 +2347,9 @@ impl DragonCenterSpec {
return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5)); return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5));
}, },
}; };
let center = graceful_load_segment(&spec.chest_rear.center.0); let central = graceful_load_segment(&spec.chest_rear.central.0);
(center, Vec3::from(spec.chest_rear.offset)) (central, Vec3::from(spec.chest_rear.offset))
} }
fn mesh_tail_front(&self, species: DSpecies, body_type: DBodyType) -> BoneMeshes { fn mesh_tail_front(&self, species: DSpecies, body_type: DBodyType) -> BoneMeshes {
@ -2363,9 +2363,9 @@ impl DragonCenterSpec {
return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5)); return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5));
}, },
}; };
let center = graceful_load_segment(&spec.tail_front.center.0); let central = graceful_load_segment(&spec.tail_front.central.0);
(center, Vec3::from(spec.tail_front.offset)) (central, Vec3::from(spec.tail_front.offset))
} }
fn mesh_tail_rear(&self, species: DSpecies, body_type: DBodyType) -> BoneMeshes { fn mesh_tail_rear(&self, species: DSpecies, body_type: DBodyType) -> BoneMeshes {
@ -2379,9 +2379,9 @@ impl DragonCenterSpec {
return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5)); return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5));
}, },
}; };
let center = graceful_load_segment(&spec.tail_rear.center.0); let central = graceful_load_segment(&spec.tail_rear.central.0);
(center, Vec3::from(spec.tail_rear.offset)) (central, Vec3::from(spec.tail_rear.offset))
} }
} }
impl DragonLateralSpec { impl DragonLateralSpec {
@ -2620,22 +2620,22 @@ fn mesh_fish_small_tail(tail: fish_small::Tail) -> BoneMeshes {
} }
//// ////
#[derive(Deserialize)] #[derive(Deserialize)]
struct BipedLargeCenterSpec(HashMap<(BLSpecies, BLBodyType), SidedBLCenterVoxSpec>); struct BipedLargeCentralSpec(HashMap<(BLSpecies, BLBodyType), SidedBLCentralVoxSpec>);
#[derive(Deserialize)] #[derive(Deserialize)]
struct SidedBLCenterVoxSpec { struct SidedBLCentralVoxSpec {
head: BipedLargeCenterSubSpec, head: BipedLargeCentralSubSpec,
jaw: BipedLargeCenterSubSpec, jaw: BipedLargeCentralSubSpec,
torso_upper: BipedLargeCenterSubSpec, torso_upper: BipedLargeCentralSubSpec,
torso_lower: BipedLargeCenterSubSpec, torso_lower: BipedLargeCentralSubSpec,
tail: BipedLargeCenterSubSpec, tail: BipedLargeCentralSubSpec,
main: BipedLargeCenterSubSpec, main: BipedLargeCentralSubSpec,
second: BipedLargeCenterSubSpec, second: BipedLargeCentralSubSpec,
} }
#[derive(Deserialize)] #[derive(Deserialize)]
struct BipedLargeCenterSubSpec { struct BipedLargeCentralSubSpec {
offset: [f32; 3], // Should be relative to initial origin offset: [f32; 3], // Should be relative to initial origin
center: VoxSimple, central: VoxSimple,
} }
#[derive(Deserialize)] #[derive(Deserialize)]
@ -2661,36 +2661,36 @@ struct BipedLargeLateralSubSpec {
make_vox_spec!( make_vox_spec!(
biped_large::Body, biped_large::Body,
struct BipedLargeSpec { struct BipedLargeSpec {
center: BipedLargeCenterSpec = "voxygen.voxel.biped_large_center_manifest", central: BipedLargeCentralSpec = "voxygen.voxel.biped_large_central_manifest",
lateral: BipedLargeLateralSpec = "voxygen.voxel.biped_large_lateral_manifest", lateral: BipedLargeLateralSpec = "voxygen.voxel.biped_large_lateral_manifest",
}, },
|FigureKey { body, .. }, spec| { |FigureKey { body, .. }, spec| {
[ [
Some(spec.center.asset.mesh_head( Some(spec.central.asset.mesh_head(
body.species, body.species,
body.body_type, body.body_type,
)), )),
Some(spec.center.asset.mesh_jaw( Some(spec.central.asset.mesh_jaw(
body.species, body.species,
body.body_type, body.body_type,
)), )),
Some(spec.center.asset.mesh_torso_upper( Some(spec.central.asset.mesh_torso_upper(
body.species, body.species,
body.body_type, body.body_type,
)), )),
Some(spec.center.asset.mesh_torso_lower( Some(spec.central.asset.mesh_torso_lower(
body.species, body.species,
body.body_type, body.body_type,
)), )),
Some(spec.center.asset.mesh_tail( Some(spec.central.asset.mesh_tail(
body.species, body.species,
body.body_type, body.body_type,
)), )),
Some(spec.center.asset.mesh_main( Some(spec.central.asset.mesh_main(
body.species, body.species,
body.body_type, body.body_type,
)), )),
Some(spec.center.asset.mesh_second( Some(spec.central.asset.mesh_second(
body.species, body.species,
body.body_type, body.body_type,
)), )),
@ -2731,7 +2731,7 @@ make_vox_spec!(
}, },
); );
impl BipedLargeCenterSpec { impl BipedLargeCentralSpec {
fn mesh_head(&self, species: BLSpecies, body_type: BLBodyType) -> BoneMeshes { fn mesh_head(&self, species: BLSpecies, body_type: BLBodyType) -> BoneMeshes {
let spec = match self.0.get(&(species, body_type)) { let spec = match self.0.get(&(species, body_type)) {
Some(spec) => spec, Some(spec) => spec,
@ -2743,9 +2743,9 @@ impl BipedLargeCenterSpec {
return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5)); return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5));
}, },
}; };
let center = graceful_load_segment(&spec.head.center.0); let central = graceful_load_segment(&spec.head.central.0);
(center, Vec3::from(spec.head.offset)) (central, Vec3::from(spec.head.offset))
} }
fn mesh_jaw(&self, species: BLSpecies, body_type: BLBodyType) -> BoneMeshes { fn mesh_jaw(&self, species: BLSpecies, body_type: BLBodyType) -> BoneMeshes {
@ -2759,9 +2759,9 @@ impl BipedLargeCenterSpec {
return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5)); return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5));
}, },
}; };
let center = graceful_load_segment(&spec.jaw.center.0); let central = graceful_load_segment(&spec.jaw.central.0);
(center, Vec3::from(spec.jaw.offset)) (central, Vec3::from(spec.jaw.offset))
} }
fn mesh_torso_upper(&self, species: BLSpecies, body_type: BLBodyType) -> BoneMeshes { fn mesh_torso_upper(&self, species: BLSpecies, body_type: BLBodyType) -> BoneMeshes {
@ -2775,9 +2775,9 @@ impl BipedLargeCenterSpec {
return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5)); return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5));
}, },
}; };
let center = graceful_load_segment(&spec.torso_upper.center.0); let central = graceful_load_segment(&spec.torso_upper.central.0);
(center, Vec3::from(spec.torso_upper.offset)) (central, Vec3::from(spec.torso_upper.offset))
} }
fn mesh_torso_lower(&self, species: BLSpecies, body_type: BLBodyType) -> BoneMeshes { fn mesh_torso_lower(&self, species: BLSpecies, body_type: BLBodyType) -> BoneMeshes {
@ -2791,9 +2791,9 @@ impl BipedLargeCenterSpec {
return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5)); return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5));
}, },
}; };
let center = graceful_load_segment(&spec.torso_lower.center.0); let central = graceful_load_segment(&spec.torso_lower.central.0);
(center, Vec3::from(spec.torso_lower.offset)) (central, Vec3::from(spec.torso_lower.offset))
} }
fn mesh_tail(&self, species: BLSpecies, body_type: BLBodyType) -> BoneMeshes { fn mesh_tail(&self, species: BLSpecies, body_type: BLBodyType) -> BoneMeshes {
@ -2807,9 +2807,9 @@ impl BipedLargeCenterSpec {
return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5)); return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5));
}, },
}; };
let center = graceful_load_segment(&spec.tail.center.0); let central = graceful_load_segment(&spec.tail.central.0);
(center, Vec3::from(spec.tail.offset)) (central, Vec3::from(spec.tail.offset))
} }
fn mesh_main(&self, species: BLSpecies, body_type: BLBodyType) -> BoneMeshes { fn mesh_main(&self, species: BLSpecies, body_type: BLBodyType) -> BoneMeshes {
@ -2823,9 +2823,9 @@ impl BipedLargeCenterSpec {
return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5)); return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5));
}, },
}; };
let center = graceful_load_segment(&spec.main.center.0); let central = graceful_load_segment(&spec.main.central.0);
(center, Vec3::from(spec.main.offset)) (central, Vec3::from(spec.main.offset))
} }
fn mesh_second(&self, species: BLSpecies, body_type: BLBodyType) -> BoneMeshes { fn mesh_second(&self, species: BLSpecies, body_type: BLBodyType) -> BoneMeshes {
@ -2839,9 +2839,9 @@ impl BipedLargeCenterSpec {
return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5)); return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5));
}, },
}; };
let center = graceful_load_segment(&spec.second.center.0); let central = graceful_load_segment(&spec.second.central.0);
(center, Vec3::from(spec.second.offset)) (central, Vec3::from(spec.second.offset))
} }
} }
impl BipedLargeLateralSpec { impl BipedLargeLateralSpec {
@ -2975,18 +2975,18 @@ impl BipedLargeLateralSpec {
} }
//// ////
#[derive(Deserialize)] #[derive(Deserialize)]
struct GolemCenterSpec(HashMap<(GSpecies, GBodyType), SidedGCenterVoxSpec>); struct GolemCentralSpec(HashMap<(GSpecies, GBodyType), SidedGCentralVoxSpec>);
#[derive(Deserialize)] #[derive(Deserialize)]
struct SidedGCenterVoxSpec { struct SidedGCentralVoxSpec {
head: GolemCenterSubSpec, head: GolemCentralSubSpec,
torso_upper: GolemCenterSubSpec, torso_upper: GolemCentralSubSpec,
torso_lower: GolemCenterSubSpec, torso_lower: GolemCentralSubSpec,
} }
#[derive(Deserialize)] #[derive(Deserialize)]
struct GolemCenterSubSpec { struct GolemCentralSubSpec {
offset: [f32; 3], // Should be relative to initial origin offset: [f32; 3], // Should be relative to initial origin
center: VoxSimple, central: VoxSimple,
} }
#[derive(Deserialize)] #[derive(Deserialize)]
@ -3012,20 +3012,20 @@ struct GolemLateralSubSpec {
make_vox_spec!( make_vox_spec!(
golem::Body, golem::Body,
struct GolemSpec { struct GolemSpec {
center: GolemCenterSpec = "voxygen.voxel.golem_center_manifest", central: GolemCentralSpec = "voxygen.voxel.golem_central_manifest",
lateral: GolemLateralSpec = "voxygen.voxel.golem_lateral_manifest", lateral: GolemLateralSpec = "voxygen.voxel.golem_lateral_manifest",
}, },
|FigureKey { body, .. }, spec| { |FigureKey { body, .. }, spec| {
[ [
Some(spec.center.asset.mesh_head( Some(spec.central.asset.mesh_head(
body.species, body.species,
body.body_type, body.body_type,
)), )),
Some(spec.center.asset.mesh_torso_upper( Some(spec.central.asset.mesh_torso_upper(
body.species, body.species,
body.body_type, body.body_type,
)), )),
Some(spec.center.asset.mesh_torso_lower( Some(spec.central.asset.mesh_torso_lower(
body.species, body.species,
body.body_type, body.body_type,
)), )),
@ -3070,7 +3070,7 @@ make_vox_spec!(
}, },
); );
impl GolemCenterSpec { impl GolemCentralSpec {
fn mesh_head(&self, species: GSpecies, body_type: GBodyType) -> BoneMeshes { fn mesh_head(&self, species: GSpecies, body_type: GBodyType) -> BoneMeshes {
let spec = match self.0.get(&(species, body_type)) { let spec = match self.0.get(&(species, body_type)) {
Some(spec) => spec, Some(spec) => spec,
@ -3082,9 +3082,9 @@ impl GolemCenterSpec {
return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5)); return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5));
}, },
}; };
let center = graceful_load_segment(&spec.head.center.0); let central = graceful_load_segment(&spec.head.central.0);
(center, Vec3::from(spec.head.offset)) (central, Vec3::from(spec.head.offset))
} }
fn mesh_torso_upper(&self, species: GSpecies, body_type: GBodyType) -> BoneMeshes { fn mesh_torso_upper(&self, species: GSpecies, body_type: GBodyType) -> BoneMeshes {
@ -3098,9 +3098,9 @@ impl GolemCenterSpec {
return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5)); return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5));
}, },
}; };
let center = graceful_load_segment(&spec.torso_upper.center.0); let central = graceful_load_segment(&spec.torso_upper.central.0);
(center, Vec3::from(spec.torso_upper.offset)) (central, Vec3::from(spec.torso_upper.offset))
} }
pub fn mesh_torso_lower( pub fn mesh_torso_lower(
@ -3118,9 +3118,9 @@ impl GolemCenterSpec {
return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5)); return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5));
}, },
}; };
let center = graceful_load_segment(&spec.torso_lower.center.0); let central = graceful_load_segment(&spec.torso_lower.central.0);
(center, Vec3::from(spec.torso_lower.offset)) (central, Vec3::from(spec.torso_lower.offset))
} }
} }
impl GolemLateralSpec { impl GolemLateralSpec {

View File

@ -1209,7 +1209,7 @@ impl FigureMgr {
let target_base = match ( let target_base = match (
physics.on_ground, physics.on_ground,
vel.0.magnitude_squared() > MOVING_THRESHOLD_SQR, // Moving vel.0.magnitude_squared() > 0.25, // Moving
physics.in_fluid.is_some(), // In water physics.in_fluid.is_some(), // In water
) { ) {
// Standing // Standing