Merge branch 'char_overhaul' into 'master'

Char overhaul and asset update

See merge request 
This commit is contained in:
Monty Marz 2019-10-02 10:05:17 +00:00
commit a9bfa1995b
69 changed files with 440 additions and 384 deletions

Binary file not shown.

After

(image error) Size: 582 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,83 +1,86 @@
({
(Human, Male): (
offset: (-7.0, -4.5, -2.25),
head: ("figure.head.human.male", (0, 1, 0)),
eyes: ("figure.eyes.human.male-0", (3, 8, 2)),
offset: (-7.0, -4.0, -6.0),
head: ("figure.head.human.male", (0, 2, 0)),
eyes: ("figure.eyes.human.male-0", (3, 9, 2)),
hair: [
Some(("figure.hair.human.male-0", (1, 0, 1))),
Some(("figure.hair.human.male-1", (1, 0, 1))),
Some(("figure.hair.human.male-2", (0, -2, 0))),
Some(("figure.hair.human.male-0", (1, 1, 1))),
Some(("figure.hair.human.male-1", (1, 1, 1))),
Some(("figure.hair.human.male-2", (0, -1, 0))),
],
beard: [
None,
Some(("figure.beard.human.1", (4, 5, -2))),
Some(("figure.beard.human.human-0", (4, 6, -2))),
Some(("figure.beard.human.human-1", (5, 10, -2))),
],
accessory: [
None]
),
(Human, Female): (
offset: (-7.0, -7.5, -3.25),
head: ("figure.head.human.female", (0, 5, 2)),
eyes: ("figure.eyes.human.female-0", (2, 12, 4)),
offset: (-7.0, -4.0, -6.0),
head: ("figure.head.human.female", (0, 3, 0)),
eyes: ("figure.eyes.human.female-0", (2, 10, 2)),
hair: [
Some(("figure.hair.human.female-0", (-1, 1, 2))),
Some(("figure.hair.human.female-1", (1, 4, 1))),
Some(("figure.hair.human.female-2", (1, 4, 1))),
Some(("figure.hair.human.female-3", (1, 3, -5))),
Some(("figure.hair.human.female-4", (2, 3, 1))),
Some(("figure.hair.human.female-5", (1, 4, 2))),
Some(("figure.hair.human.female-6", (1, 2, -5))),
Some(("figure.hair.human.female-7", (-1, 2, 0))),
Some(("figure.hair.human.female-8", (1, 4, 1))),
Some(("figure.hair.human.female-9", (0, 4, 1))),
Some(("figure.hair.human.female-10", (-1, 1, 2))),
Some(("figure.hair.human.female-11", (1, 4, 2))),
Some(("figure.hair.human.female-12", (1, 1, 2))),
Some(("figure.hair.human.female-13", (1, 0, 1))),
Some(("figure.hair.human.female-14", (1, 4, 2))),
Some(("figure.hair.human.female-15", (0, 3, -4))),
Some(("figure.hair.human.female-16", (1, 3, 2))),
Some(("figure.hair.human.female-17", (1, 0, 0))),
Some(("figure.hair.human.female-18", (1, 2, -5))),
Some(("figure.hair.human.female-0", (-1, -1, 0))),
Some(("figure.hair.human.female-1", (1, 2, -1))),
Some(("figure.hair.human.female-2", (1, 2, 0))),
Some(("figure.hair.human.female-3", (1, 1, -7))),
Some(("figure.hair.human.female-4", (2, 1, -1))),
Some(("figure.hair.human.female-5", (1, 2, 0))),
Some(("figure.hair.human.female-6", (1, 0, -7))),
Some(("figure.hair.human.female-7", (-1, 0, -1))),
Some(("figure.hair.human.female-8", (1, 2, -1))),
Some(("figure.hair.human.female-9", (0, 2, -1))),
Some(("figure.hair.human.female-10", (-1, -1, 0))),
Some(("figure.hair.human.female-11", (1, 2, 0))),
Some(("figure.hair.human.female-12", (1, -1, 0))),
Some(("figure.hair.human.female-13", (1, -2, -1))),
Some(("figure.hair.human.female-14", (1, 2, 0))),
Some(("figure.hair.human.female-15", (0, 1, -5))),
Some(("figure.hair.human.female-16", (1, 1, 1))),
Some(("figure.hair.human.female-17", (1, -2, -2))),
Some(("figure.hair.human.female-18", (1, 0, -7))),
],
beard: [None],
accessory: [
None]
),
(Orc, Male): (
offset: (-8.0, -4.0, -2.8),
head: ("figure.head.orc.male", (0, 0, 1)),
eyes: ("figure.eyes.orc.male-0", (5, 7, 7)),
offset: (-8.0, -5.0, -6.75),
head: ("figure.head.orc.male", (0, 3, 0)),
eyes: ("figure.eyes.orc.male-0", (5, 10, 6)),
hair: [
Some(("figure.hair.dwarf.bald", (0, 0, 0))),
Some(("figure.hair.orc.male", (4, -1, 1))),
Some(("figure.hair.dwarf.bald", (0, 3, -1))),
Some(("figure.hair.orc.male", (4, 2, 0))),
],
beard: [
None,
Some(("figure.beard.orc.1", (7, 8, 1))),
],
accessory: [
None,
Some(("figure.accessory.orc.earring", (3, 4, 4))),
Some(("figure.accessory.orc.warpaint-male-0", (0, 1, 5))),
Some(("figure.accessory.orc.teeth-0", (5, 11, 3))),
Some(("figure.accessory.orc.earring-male-0", (2, 7, 3))),
Some(("figure.accessory.orc.teeth-1", (5, 11, 3))),
Some(("figure.accessory.orc.teeth-2", (5, 11, 3))),
Some(("figure.accessory.orc.warpaint-male-0", (0, 4, 3))),
],
),
(Orc, Female): (
offset: (-8.0, -7.5, -1.5),
head: ("figure.head.orc.female", (0, 0, -2)),
eyes: ("figure.eyes.orc.female-0", (3, 13, 0)),
offset: (-8.0, -4.0, -6.0),
head: ("figure.head.orc.female", (0, 2, 0)),
eyes: ("figure.eyes.orc.female-0", (3, 9, 2)),
hair: [
Some(("figure.hair.orc.female", (5, 1, -2))),
Some(("figure.hair.orc.female", (5, -2, 0))),
],
beard: [None],
accessory: [
None,
Some(("figure.accessory.orc.earring", (0, 9, 0))),
Some(("figure.accessory.orc.warpaint-female-0", (3, 9, -1))),
Some(("figure.accessory.orc.earring-female-0", (2, 5, 1))),
Some(("figure.accessory.orc.warpaint-female-0", (3, 5, 1))),
],
),
(Elf, Male): (
offset: (-8.0, -5.5, -2.25),
offset: (-8.0, -4.0, -6.0),
head: ("figure.head.elf.male", (0, 2, 0)),
eyes: ("figure.eyes.elf.male-0", (4, 9, 2)),
hair: [
@ -85,76 +88,79 @@
],
beard: [None],
accessory: [
None]
None,
]
),
(Elf, Female): (
offset: (-8.0, -6.0, -2.0),
head: ("figure.head.elf.female", (0, 3, 1)),
eyes: ("figure.eyes.elf.female-0", (3, 10, 3)),
offset: (-8.0, -4.0, -6.0),
head: ("figure.head.elf.female", (0, 2, 0)),
eyes: ("figure.eyes.elf.female-0", (3, 9, 2)),
hair: [
Some(("figure.hair.elf.female-19", (2, 1, -1))),
Some(("figure.hair.elf.female-20", (1, -2, 1))),
Some(("figure.hair.elf.female-0", (0, -1, 1))),
Some(("figure.hair.elf.female-1", (2, 2, 0))),
Some(("figure.hair.elf.female-2", (2, 2, 0))),
Some(("figure.hair.elf.female-3", (2, 1, -6))),
Some(("figure.hair.elf.female-4", (3, 1, 0))),
Some(("figure.hair.elf.female-5", (2, 2, 1))),
Some(("figure.hair.elf.female-6", (2, 0, -6))),
Some(("figure.hair.elf.female-7", (0, 0, 0))),
Some(("figure.hair.elf.female-8", (2, 2, 0))),
Some(("figure.hair.elf.female-9", (1, 2, 0))),
Some(("figure.hair.elf.female-10", (0, -1, 1))),
Some(("figure.hair.elf.female-11", (2, 1, 1))),
Some(("figure.hair.elf.female-12", (2, -1, 1))),
Some(("figure.hair.elf.female-13", (2, -2, 0))),
Some(("figure.hair.elf.female-14", (2, 2, 1))),
Some(("figure.hair.elf.female-15", (1, 1, -5))),
Some(("figure.hair.elf.female-16", (2, 1, 1))),
Some(("figure.hair.elf.female-17", (2, -2, -1))),
Some(("figure.hair.elf.female-18", (2, 0, -6))),
Some(("figure.hair.elf.female-19", (2, 0, -2))),
Some(("figure.hair.elf.female-20", (1, -3, 0))),
Some(("figure.hair.elf.female-0", (0, -2, 0))),
Some(("figure.hair.elf.female-1", (2, 1, -1))),
Some(("figure.hair.elf.female-2", (2, 1, -1))),
Some(("figure.hair.elf.female-3", (2, 0, -7))),
Some(("figure.hair.elf.female-4", (3, 0, -1))),
Some(("figure.hair.elf.female-5", (2, 1, 0))),
Some(("figure.hair.elf.female-6", (2, -1, -7))),
Some(("figure.hair.elf.female-7", (0, -1, -1))),
Some(("figure.hair.elf.female-8", (2, 1, -1))),
Some(("figure.hair.elf.female-9", (1, 1, -1))),
Some(("figure.hair.elf.female-10", (0, -2, 0))),
Some(("figure.hair.elf.female-11", (2, 1, 0))),
Some(("figure.hair.elf.female-12", (2, -2, 0))),
Some(("figure.hair.elf.female-13", (2, -3, -1))),
Some(("figure.hair.elf.female-14", (2, 1, 0))),
Some(("figure.hair.elf.female-15", (1, 0, -6))),
Some(("figure.hair.elf.female-16", (2, 0, 0))),
Some(("figure.hair.elf.female-17", (2, -3, -2))),
Some(("figure.hair.elf.female-18", (2, -1, -7))),
],
beard: [None],
accessory: [
None]
None,
Some(("figure.accessory.elf.warpaint-0", (6, 9, 4))), ]
),
(Dwarf, Male): (
offset: (-6.0, -5.5, -2),
head: ("figure.head.dwarf.male", (0, 0, -1)),
eyes: ("figure.eyes.dwarf.male-0", (2, 7, 1)),
offset: (-6.0, -4.5, -6.0),
head: ("figure.head.dwarf.male", (0, 3, 0)),
eyes: ("figure.eyes.dwarf.male-0", (2, 10, 2)),
hair: [
Some(("figure.hair.dwarf.bald", (0, 0, 0))),
Some(("figure.hair.dwarf.male-0", (1, -2, -4))),
Some(("figure.hair.dwarf.male-1", (4, -3, 0))),
Some(("figure.hair.dwarf.bald", (0, 3, 1))),
Some(("figure.hair.dwarf.male-0", (1, 1, -3))),
Some(("figure.hair.dwarf.male-1", (4, 0, 1))),
],
beard: [
Some(("figure.beard.dwarf.dwarf-0", (4, 6, -3))),
Some(("figure.beard.dwarf.dwarf-1", (1, 4, -9))),
//Some(("figure.beard.dwarf.dwarf-2", (4, 7, -2))),
Some(("figure.beard.dwarf.dwarf-3", (0, 5, -2))),
Some(("figure.beard.dwarf.dwarf-4", (4, 6, -5))),
Some(("figure.beard.dwarf.dwarf-5", (0, 4, -6))),
Some(("figure.beard.dwarf.dwarf-6", (0, 3, -6))),
Some(("figure.beard.dwarf.dwarf-7", (1, 7, -2))),
Some(("figure.beard.dwarf.dwarf-8", (1, 4, -2))),
Some(("figure.beard.dwarf.dwarf-9", (1, 4, -2))),
Some(("figure.beard.dwarf.dwarf-10", (1, 4, -4))),
Some(("figure.beard.dwarf.dwarf-11", (4, 8, -1))),
Some(("figure.beard.dwarf.dwarf-12", (1, 4, -3))),
Some(("figure.beard.dwarf.dwarf-13", (1, 6, -5))),
Some(("figure.beard.dwarf.dwarf-14", (1, 4, -6))),
Some(("figure.beard.dwarf.dwarf-15", (1, 5, -9))),
Some(("figure.beard.dwarf.dwarf-16", (1, 4, -11))),
Some(("figure.beard.dwarf.dwarf-17", (1, 4, -6))),
Some(("figure.beard.dwarf.dwarf-18", (2, 5, -5))),
Some(("figure.beard.dwarf.dwarf-19", (1, 4, -9))),
Some(("figure.beard.dwarf.dwarf-20", (1, 4,-5))),
Some(("figure.beard.dwarf.dwarf-0", (4, 9, -2))),
Some(("figure.beard.dwarf.dwarf-1", (1, 7, -8))),
//Some(("figure.beard.dwarf.dwarf-2", (4, 10, -1))),
Some(("figure.beard.dwarf.dwarf-3", (0, 8, -1))),
Some(("figure.beard.dwarf.dwarf-4", (4, 9, -4))),
Some(("figure.beard.dwarf.dwarf-5", (0, 7, -5))),
Some(("figure.beard.dwarf.dwarf-6", (0, 6, -5))),
Some(("figure.beard.dwarf.dwarf-7", (1, 10, -1))),
Some(("figure.beard.dwarf.dwarf-8", (1, 7, -1))),
Some(("figure.beard.dwarf.dwarf-9", (1, 7, -1))),
Some(("figure.beard.dwarf.dwarf-10", (1, 7, -3))),
Some(("figure.beard.dwarf.dwarf-11", (4, 11, 0))),
Some(("figure.beard.dwarf.dwarf-12", (1, 7, -2))),
Some(("figure.beard.dwarf.dwarf-13", (1, 9, -4))),
Some(("figure.beard.dwarf.dwarf-14", (1, 7, -5))),
Some(("figure.beard.dwarf.dwarf-15", (1, 8, -8))),
Some(("figure.beard.dwarf.dwarf-16", (1, 7, -10))),
Some(("figure.beard.dwarf.dwarf-17", (1, 7, -5))),
Some(("figure.beard.dwarf.dwarf-18", (2, 8, -4))),
Some(("figure.beard.dwarf.dwarf-19", (1, 7, -8))),
Some(("figure.beard.dwarf.dwarf-20", (1, 7,-4))),
],
accessory: [
None]
None,
Some(("figure.accessory.elf.warpaint-0", (6, 9, 4))), ]
),
(Dwarf, Female): (
offset: (-6.0, -6.5, -1.8),
offset: (-6.0, -4.5, -6.0),
head: ("figure.head.dwarf.female", (0, 3, 0)),
eyes: ("figure.eyes.dwarf.female-0", (1, 10, 2)),
hair: [
@ -166,55 +172,55 @@
None]
),
(Undead, Male): (
offset: (-5.5, -5.5, -2.25),
head: ("figure.head.undead.male", (1, 1, -1)),
eyes: ("figure.eyes.undead.male-0", (3, 7, 3)),
offset: (-5.0, -4.0, -6.75),
head: ("figure.head.undead.male", (0, 2, 0)),
eyes: ("figure.eyes.undead.male-0", (2, 8, 4)),
hair: [
Some(("figure.hair.dwarf.bald", (0, 0, 0))),
Some(("figure.hair.undead.male-0", (0, 0, 0))),
Some(("figure.hair.undead.male-1", (4, -3, -1))),
Some(("figure.hair.dwarf.bald", (-1, 1, 1))),
Some(("figure.hair.undead.male-0", (-1, 1, 1))),
Some(("figure.hair.undead.male-1", (3, -2, 0))),
],
beard: [None],
accessory: [
None]
),
(Undead, Female): (
offset: (-6.0, -5.5, -2.5),
head: ("figure.head.undead.female", (1, 1, -1)),
eyes: ("figure.eyes.undead.female-0", (3, 7, 2)),
offset: (-5.0, -4.0, -6.75),
head: ("figure.head.undead.female", (0, 2, 0)),
eyes: ("figure.eyes.undead.female-0", (2, 8, 3)),
hair: [
Some(("figure.hair.undead.female-0", (1, 0, -1))),
Some(("figure.hair.undead.female-1", (-1, 0, -2))),
Some(("figure.hair.undead.female-2", (3, 0, 0))),
Some(("figure.hair.undead.female-3", (1, -4, -1))),
Some(("figure.hair.undead.female-0", (0, 1, 0))),
Some(("figure.hair.undead.female-1", (-2, 0, -1))),
Some(("figure.hair.undead.female-2", (2, 1, 1))),
Some(("figure.hair.undead.female-3", (0, -3, -0))),
],
beard: [None],
accessory: [
None]
),
(Danari, Male): (
offset: (-9.0, -4.60, -2.75),
head: ("figure.head.danari.male", (0, 1, -1)),
eyes: ("figure.eyes.danari.male-0", (5, 8, 1)),
offset: (-9.0, -4.0, -7.5),
head: ("figure.head.danari.male", (0, 2, 3)),
eyes: ("figure.eyes.danari.male-0", (5, 9, 5)),
hair: [
Some(("figure.hair.danari.male", (3, 0, -1))),
Some(("figure.hair.danari.male", (3, 0, -1))),
Some(("figure.hair.danari.male", (3, 1, 3))),
Some(("figure.hair.danari.male", (3, 1, 3))),
],
beard: [None],
accessory: [
None]
accessory: [
Some(("figure.accessory.danari.horns-0", (4, 8, 9))),]
),
(Danari, Female): (
offset: (-9.0, -7.5, -2.25),
head: ("figure.head.danari.female", (0, 7, 0)),
eyes: ("figure.eyes.danari.female-0", (4, 14, 2)),
offset: (-9.0, -4.0, -7.5),
head: ("figure.head.danari.female", (0, 2, 2)),
eyes: ("figure.eyes.danari.female-0", (4, 9, 4)),
hair: [
Some(("figure.hair.danari.female", (3, 1, -1))),
Some(("figure.hair.danari.female", (3, 1, -1))),
Some(("figure.hair.danari.female", (3, -4, 1))),
Some(("figure.hair.danari.female", (3, -4, 1))),
],
beard: [None],
accessory: [
None]
accessory: [
Some(("figure.accessory.danari.horns-0", (4, 9, 8))),]
),
// More here
})

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -165,10 +165,8 @@ pub const HUMAN_HAIR_COLORS: [(u8, u8, u8); 21] = [
(84, 139, 107), // Grass Green
(48, 61, 52), // Dark Green
];
pub const ORC_HAIR_COLORS: [(u8, u8, u8); 14] = [
pub const ORC_HAIR_COLORS: [(u8, u8, u8); 12] = [
(66, 66, 59), // Wise Grey
(125, 111, 51), // Muddy Blonde
(199, 131, 58), // Summer Blonde
(107, 76, 51), // Oak Brown
(203, 154, 98), // Light Brown
(64, 32, 18), // Chocolate Brown
@ -215,12 +213,10 @@ pub const DANARI_SKIN_COLORS: [Skin; 4] = [
Skin::DanariThree,
Skin::DanariFour,
];
pub const DWARF_SKIN_COLORS: [Skin; 7] = [
pub const DWARF_SKIN_COLORS: [Skin; 5] = [
Skin::Pale,
Skin::White,
Skin::Tanned,
Skin::Brown,
Skin::TannedBrown,
Skin::TannedDarkBrown,
Skin::Iron,
Skin::Steel,
];
@ -233,16 +229,13 @@ pub const ELF_SKIN_COLORS: [Skin; 7] = [
Skin::Brown,
Skin::TannedBrown,
];
pub const HUMAN_SKIN_COLORS: [Skin; 9] = [
pub const HUMAN_SKIN_COLORS: [Skin; 6] = [
Skin::Pale,
Skin::White,
Skin::Tanned,
Skin::Brown,
Skin::TannedBrown,
Skin::TannedDarkBrown,
Skin::Black,
Skin::Blacker,
Skin::TannedBlack,
];
pub const ORC_SKIN_COLORS: [Skin; 3] = [Skin::OrcOne, Skin::OrcTwo, Skin::OrcThree];
pub const UNDEAD_SKIN_COLORS: [Skin; 3] = [Skin::UndeadOne, Skin::UndeadTwo, Skin::UndeadThree];
@ -268,7 +261,7 @@ pub const HUMAN_EYE_COLORS: [EyeColor; 3] = [
EyeColor::CuriousGreen,
EyeColor::LoyalBrown,
];
pub const ORC_EYE_COLORS: [EyeColor; 2] = [EyeColor::LoyalBrown, EyeColor::ViciousRed];
pub const ORC_EYE_COLORS: [EyeColor; 2] = [EyeColor::LoyalBrown, EyeColor::ExoticPurple];
pub const UNDEAD_EYE_COLORS: [EyeColor; 5] = [
EyeColor::ViciousRed,
EyeColor::PumpkinOrange,
@ -338,8 +331,8 @@ impl Race {
}
pub fn num_hair_styles(self, body_type: BodyType) -> u8 {
match (self, body_type) {
(Race::Danari, BodyType::Female) => 2,
(Race::Danari, BodyType::Male) => 2,
(Race::Danari, BodyType::Female) => 1,
(Race::Danari, BodyType::Male) => 1,
(Race::Dwarf, BodyType::Female) => 2,
(Race::Dwarf, BodyType::Male) => 3,
(Race::Elf, BodyType::Female) => 21,
@ -358,12 +351,12 @@ impl Race {
(Race::Danari, BodyType::Male) => 1,
(Race::Dwarf, BodyType::Female) => 1,
(Race::Dwarf, BodyType::Male) => 1,
(Race::Elf, BodyType::Female) => 1,
(Race::Elf, BodyType::Female) => 2,
(Race::Elf, BodyType::Male) => 1,
(Race::Human, BodyType::Female) => 1,
(Race::Human, BodyType::Male) => 1,
(Race::Orc, BodyType::Female) => 3,
(Race::Orc, BodyType::Male) => 3,
(Race::Orc, BodyType::Male) => 5,
(Race::Undead, BodyType::Female) => 1,
(Race::Undead, BodyType::Male) => 1,
}
@ -377,7 +370,7 @@ impl Race {
(Race::Elf, BodyType::Female) => 1,
(Race::Elf, BodyType::Male) => 1,
(Race::Human, BodyType::Female) => 1,
(Race::Human, BodyType::Male) => 2,
(Race::Human, BodyType::Male) => 3,
(Race::Orc, BodyType::Female) => 1,
(Race::Orc, BodyType::Male) => 2,
(Race::Undead, BodyType::Female) => 1,
@ -472,6 +465,7 @@ pub enum EyeColor {
GhastlyYellow,
MagicPurple,
ToxicGreen,
ExoticPurple,
}
impl EyeColor {
pub fn light_rgb(self) -> Rgb<u8> {
@ -485,6 +479,7 @@ impl EyeColor {
EyeColor::GhastlyYellow => Rgb::new(221, 225, 31),
EyeColor::MagicPurple => Rgb::new(137, 4, 177),
EyeColor::ToxicGreen => Rgb::new(1, 223, 1),
EyeColor::ExoticPurple => Rgb::new(95, 32, 111),
}
}
pub fn dark_rgb(self) -> Rgb<u8> {
@ -498,6 +493,7 @@ impl EyeColor {
EyeColor::GhastlyYellow => Rgb::new(205, 212, 29),
EyeColor::MagicPurple => Rgb::new(110, 3, 143),
EyeColor::ToxicGreen => Rgb::new(1, 185, 1),
EyeColor::ExoticPurple => Rgb::new(69, 23, 80),
}
}
pub fn white_rgb(self) -> Rgb<u8> {
@ -520,9 +516,6 @@ pub enum Skin {
Brown,
TannedBrown,
TannedDarkBrown,
Black,
Blacker,
TannedBlack,
Iron,
Steel,
DanariOne,
@ -544,13 +537,10 @@ impl Skin {
let color = match self {
Self::Pale => (252, 211, 179),
Self::White => (253, 195, 164),
Self::Tanned => (253, 206, 150),
Self::Brown => (225, 177, 128),
Self::TannedBrown => (219, 165, 131),
Self::TannedDarkBrown => (189, 131, 93),
Self::Black => (168, 109, 79),
Self::Blacker => (123, 68, 55),
Self::TannedBlack => (118, 60, 36),
Self::Tanned => (222, 181, 151),
Self::Brown => (123, 80, 45),
Self::TannedBrown => (135, 70, 50),
Self::TannedDarkBrown => (116, 61, 43),
Self::Iron => (135, 113, 95),
Self::Steel => (108, 94, 86),
Self::DanariOne => (104, 168, 196),
@ -559,8 +549,8 @@ impl Skin {
Self::DanariFour => (40, 85, 105),
Self::ElfOne => (176, 161, 181),
Self::ElfTwo => (132, 139, 161),
Self::ElfThree => (138, 119, 201),
Self::OrcOne => (67, 141, 46),
Self::ElfThree => (148, 128, 202),
Self::OrcOne => (61, 130, 42),
Self::OrcTwo => (82, 117, 36),
Self::OrcThree => (71, 94, 42),
Self::UndeadOne => (255, 255, 255),
@ -573,13 +563,10 @@ impl Skin {
let color = match self {
Self::Pale => (255, 165, 165),
Self::White => (255, 165, 165),
Self::Tanned => (253, 206, 150),
Self::Brown => (225, 177, 128),
Self::TannedBrown => (219, 165, 131),
Self::TannedDarkBrown => (189, 131, 93),
Self::Black => (168, 109, 79),
Self::Blacker => (123, 68, 55),
Self::TannedBlack => (118, 60, 36),
Self::Tanned => (222, 181, 151),
Self::Brown => (123, 80, 45),
Self::TannedBrown => (135, 70, 50),
Self::TannedDarkBrown => (116, 61, 43),
Self::Iron => (135, 113, 95),
Self::Steel => (108, 94, 86),
Self::DanariOne => (104, 168, 196),
@ -588,8 +575,8 @@ impl Skin {
Self::DanariFour => (40, 85, 105),
Self::ElfOne => (176, 161, 181),
Self::ElfTwo => (132, 139, 161),
Self::ElfThree => (138, 119, 201),
Self::OrcOne => (77, 150, 51),
Self::ElfThree => (148, 128, 202),
Self::OrcOne => (83, 165, 56),
Self::OrcTwo => (85, 124, 37),
Self::OrcThree => (73, 100, 43),
Self::UndeadOne => (255, 255, 255),
@ -602,13 +589,10 @@ impl Skin {
let color = match self {
Self::Pale => (207, 173, 147),
Self::White => (212, 162, 138),
Self::Tanned => (207, 167, 123),
Self::Brown => (187, 147, 107),
Self::TannedBrown => (219, 165, 131),
Self::TannedDarkBrown => (157, 108, 77),
Self::Black => (168, 109, 79),
Self::Blacker => (123, 68, 55),
Self::TannedBlack => (118, 60, 36),
Self::Tanned => (222, 181, 151),
Self::Brown => (123, 80, 45),
Self::TannedBrown => (135, 70, 50),
Self::TannedDarkBrown => (116, 61, 43),
Self::Iron => (135, 113, 95),
Self::Steel => (108, 94, 86),
Self::DanariOne => (104, 168, 196),
@ -617,8 +601,8 @@ impl Skin {
Self::DanariFour => (40, 85, 105),
Self::ElfOne => (176, 161, 181),
Self::ElfTwo => (132, 139, 161),
Self::ElfThree => (138, 119, 201),
Self::OrcOne => (68, 129, 44),
Self::ElfThree => (148, 128, 202),
Self::OrcOne => (61, 119, 40),
Self::OrcTwo => (77, 111, 34),
Self::OrcThree => (68, 91, 40),
Self::UndeadOne => (255, 255, 255),

View File

@ -49,6 +49,7 @@ pub enum Body {
CarpetHumanSquare2,
CarpetHumanSquircle,
Pouch,
CraftingBench,
}
impl Body {
@ -58,7 +59,7 @@ impl Body {
}
}
const ALL_OBJECTS: [Body; 46] = [
const ALL_OBJECTS: [Body; 47] = [
Body::Bomb,
Body::Scarecrow,
Body::Cauldron,
@ -105,4 +106,5 @@ const ALL_OBJECTS: [Body; 46] = [
Body::CarpetHumanSquare,
Body::CarpetHumanSquare2,
Body::CarpetHumanSquircle,
Body::CraftingBench,
];

View File

@ -611,6 +611,7 @@ fn handle_object(server: &mut Server, entity: EcsEntity, args: String, _action:
Ok("carpet_human_square") => comp::object::Body::CarpetHumanSquare,
Ok("carpet_human_square_2") => comp::object::Body::CarpetHumanSquare2,
Ok("carpet_human_squircle") => comp::object::Body::CarpetHumanSquircle,
Ok("crafting_bench") => comp::object::Body::CraftingBench,
_ => {
return server.clients.notify(
entity,

View File

@ -30,8 +30,8 @@ impl Animation for AttackAnimation {
next.head.offset = Vec3::new(
0.0 + skeleton_attr.neck_right,
0.0 + skeleton_attr.neck_forward,
skeleton_attr.neck_height + 15.0,
-2.0 + skeleton_attr.neck_forward,
skeleton_attr.neck_height + 21.0,
);
next.head.ori = Quaternion::rotation_z(wave_stop_quick * -0.25)
* Quaternion::rotation_x(0.0 + wave_stop_quick * -0.1)
@ -70,21 +70,21 @@ impl Animation for AttackAnimation {
* Quaternion::rotation_y(0.0 + wave_quicken * -0.4);
next.r_hand.scale = Vec3::one() * 1.01;
next.l_foot.offset = Vec3::new(
-3.4,
-0.1 + wave_stop_quick * 2.0,
8.0 + wave_stop_quick * -4.0,
);
next.l_foot.ori = Quaternion::rotation_x(wave_stop_quick * -1.2);
next.l_foot.scale = Vec3::one();
//next.l_foot.offset = Vec3::new(
// -3.4,
// -0.1 + wave_stop_quick * 2.0,
// 8.0 + wave_stop_quick * -4.0,
//);
//next.l_foot.ori = Quaternion::rotation_x(wave_stop_quick * -1.2);
//next.l_foot.scale = Vec3::one();
next.r_foot.offset = Vec3::new(
3.4,
-0.1 - wave_stop_quick * -2.0,
8.0 + wave_stop_quick * -2.0,
);
next.r_foot.ori = Quaternion::rotation_x(wave_stop_quick * 1.2);
next.r_foot.scale = Vec3::one();
//next.r_foot.offset = Vec3::new(
// 3.4,
// -0.1 - wave_stop_quick * -2.0,
// 8.0 + wave_stop_quick * -2.0,
//);
//next.r_foot.ori = Quaternion::rotation_x(wave_stop_quick * 1.2);
//next.r_foot.scale = Vec3::one();
next.weapon.offset = Vec3::new(
-8.0 + wave_quicken_slow * 10.0 + skeleton_attr.weapon_x,

View File

@ -43,8 +43,8 @@ impl Animation for BlockAnimation {
);
next.head.offset = Vec3::new(
0.0 + skeleton_attr.neck_right + wave_slow_cos * 0.2,
1.0 + skeleton_attr.neck_forward,
skeleton_attr.neck_height + 13.5 + wave_ultra_slow * 0.2,
-1.0 + skeleton_attr.neck_forward,
skeleton_attr.neck_height + 19.5 + wave_ultra_slow * 0.2,
);
next.head.ori = Quaternion::rotation_x(-0.25);
next.head.scale = Vec3::one() * 1.01 * skeleton_attr.head_scale;
@ -108,24 +108,24 @@ impl Animation for BlockAnimation {
next.weapon.scale = Vec3::one();
}
Tool::Hammer => {
next.l_hand.offset = Vec3::new(-5.5, 10.0, 9.5);
next.l_hand.ori = Quaternion::rotation_x(-0.3)
* Quaternion::rotation_y(-1.35)
* Quaternion::rotation_z(0.5);
next.l_hand.offset = Vec3::new(-7.0, 3.5, 6.5);
next.l_hand.ori = Quaternion::rotation_x(2.07)
* Quaternion::rotation_y(0.0)
* Quaternion::rotation_z(-0.2);
next.l_hand.scale = Vec3::one() * 1.01;
next.r_hand.offset = Vec3::new(8.4, 9.3, 7.5);
next.r_hand.ori = Quaternion::rotation_x(-0.3)
* Quaternion::rotation_y(-1.35)
* Quaternion::rotation_z(0.5);
next.r_hand.offset = Vec3::new(7.0, 2.5, 3.75);
next.r_hand.ori = Quaternion::rotation_x(2.07)
* Quaternion::rotation_y(0.0)
* Quaternion::rotation_z(-0.2);
next.r_hand.scale = Vec3::one() * 1.01;
next.weapon.offset = Vec3::new(
7.0 + skeleton_attr.weapon_x,
10.75 + skeleton_attr.weapon_y,
7.5,
5.0 + skeleton_attr.weapon_x,
8.75 + skeleton_attr.weapon_y,
5.5,
);
next.weapon.ori = Quaternion::rotation_x(-0.3)
* Quaternion::rotation_y(-1.35)
* Quaternion::rotation_z(0.5);
* Quaternion::rotation_z(-0.85);
next.weapon.scale = Vec3::one();
}
Tool::Staff => {

View File

@ -42,8 +42,8 @@ impl Animation for BlockIdleAnimation {
);
next.head.offset = Vec3::new(
0.0 + skeleton_attr.neck_right + wave_slow_cos * 0.2,
1.0 + skeleton_attr.neck_forward,
skeleton_attr.neck_height + 13.5 + wave_ultra_slow * 0.2,
-1.0 + skeleton_attr.neck_forward,
skeleton_attr.neck_height + 19.5 + wave_ultra_slow * 0.2,
);
next.head.ori = Quaternion::rotation_x(-0.25);
next.head.scale = Vec3::one() * 1.01 * skeleton_attr.head_scale;
@ -107,24 +107,24 @@ impl Animation for BlockIdleAnimation {
next.weapon.scale = Vec3::one();
}
Tool::Hammer => {
next.l_hand.offset = Vec3::new(-5.5, 10.0 + wave_ultra_slow * 2.0, 9.5);
next.l_hand.ori = Quaternion::rotation_x(-0.3)
* Quaternion::rotation_y(-1.35)
* Quaternion::rotation_z(0.5);
next.l_hand.offset = Vec3::new(-7.0, 3.5 + wave_ultra_slow * 2.0, 6.5);
next.l_hand.ori = Quaternion::rotation_x(2.07)
* Quaternion::rotation_y(0.0)
* Quaternion::rotation_z(-0.2);
next.l_hand.scale = Vec3::one() * 1.01;
next.r_hand.offset = Vec3::new(8.4, 9.3 + wave_ultra_slow * 2.0, 7.5);
next.r_hand.ori = Quaternion::rotation_x(-0.3)
* Quaternion::rotation_y(-1.35)
* Quaternion::rotation_z(0.5);
next.r_hand.offset = Vec3::new(7.0, 2.5 + wave_ultra_slow * 2.0, 3.75);
next.r_hand.ori = Quaternion::rotation_x(2.07)
* Quaternion::rotation_y(0.0)
* Quaternion::rotation_z(-0.2);
next.r_hand.scale = Vec3::one() * 1.01;
next.weapon.offset = Vec3::new(
7.0 + skeleton_attr.weapon_x,
10.75 + skeleton_attr.weapon_y + wave_ultra_slow * 2.0,
7.5,
5.0 + skeleton_attr.weapon_x,
8.75 + wave_ultra_slow * 2.0 + skeleton_attr.weapon_y,
5.5,
);
next.weapon.ori = Quaternion::rotation_x(-0.3)
* Quaternion::rotation_y(-1.35)
* Quaternion::rotation_z(0.5);
* Quaternion::rotation_z(-0.85);
next.weapon.scale = Vec3::one();
}
Tool::Staff => {

View File

@ -43,8 +43,8 @@ impl Animation for CidleAnimation {
);
next.head.offset = Vec3::new(
0.0 + skeleton_attr.neck_right + wave_slow_cos * 0.5,
0.0 + skeleton_attr.neck_forward,
skeleton_attr.neck_height + 15.0 + wave_ultra_slow * 0.6,
-2.0 + skeleton_attr.neck_forward,
skeleton_attr.neck_height + 21.0 + wave_ultra_slow * 0.6,
);
next.head.ori =
Quaternion::rotation_z(head_look.x) * Quaternion::rotation_x(head_look.y.abs());
@ -109,21 +109,21 @@ impl Animation for CidleAnimation {
4.5 + skeleton_attr.weapon_y + wave_ultra_slow_cos * 0.5,
0.0 + wave_ultra_slow * 1.0,
);
next.weapon.ori = Quaternion::rotation_x(-0.3)
next.weapon.ori = Quaternion::rotation_x(1.27)
* Quaternion::rotation_y(0.0)
* Quaternion::rotation_z(0.0);
next.weapon.scale = Vec3::one();
}
Tool::Hammer => {
next.l_hand.offset = Vec3::new(-7.0, 8.25, 2.0);
next.l_hand.ori = Quaternion::rotation_x(-0.3)
* Quaternion::rotation_y(-1.2)
* Quaternion::rotation_z(wave_ultra_slow * 0.2);
next.l_hand.offset = Vec3::new(-7.0, 4.0, 3.0);
next.l_hand.ori = Quaternion::rotation_x(1.27 + wave_ultra_slow * -0.1)
* Quaternion::rotation_y(0.0)
* Quaternion::rotation_z(-0.3);
next.l_hand.scale = Vec3::one() * 1.01;
next.r_hand.offset = Vec3::new(7.0, 7.0, -3.0);
next.r_hand.ori = Quaternion::rotation_x(-0.3)
* Quaternion::rotation_y(-1.2)
* Quaternion::rotation_z(wave_ultra_slow * 0.2);
next.r_hand.offset = Vec3::new(7.0, 2.5, -1.25);
next.r_hand.ori = Quaternion::rotation_x(1.27 + wave_ultra_slow * -0.1)
* Quaternion::rotation_y(0.0)
* Quaternion::rotation_z(-0.3);
next.r_hand.scale = Vec3::one() * 1.01;
next.weapon.offset = Vec3::new(
5.0 + skeleton_attr.weapon_x,
@ -131,7 +131,7 @@ impl Animation for CidleAnimation {
-2.5,
);
next.weapon.ori = Quaternion::rotation_x(-0.3)
* Quaternion::rotation_y(-1.2)
* Quaternion::rotation_y(-1.27)
* Quaternion::rotation_z(wave_ultra_slow * 0.2);
next.weapon.scale = Vec3::one();
}

View File

@ -37,8 +37,8 @@ impl Animation for ClimbAnimation {
next.head.offset = Vec3::new(
0.0,
1.0 + skeleton_attr.neck_forward,
skeleton_attr.neck_height + 13.5 + wave_cos * 1.3,
-1.0 + skeleton_attr.neck_forward,
skeleton_attr.neck_height + 18.5 + wave_cos * 1.3,
);
next.head.ori = Quaternion::rotation_z(wave * 0.1)
* Quaternion::rotation_x(0.6)
@ -61,21 +61,20 @@ impl Animation for ClimbAnimation {
* Quaternion::rotation_y(wave_test * 0.10);
next.shorts.scale = Vec3::one();
next.l_hand.offset = Vec3::new(-8.5, 3.0 + wave_testc * 1.5, 6.0 - wave_test * 4.0);
next.l_hand.ori = Quaternion::rotation_x(0.2 + wave_testc * 0.5);
next.l_hand.offset = Vec3::new(-6.0, -0.25 + wave_testc * 1.5, 5.0 - wave_test * 4.0);
next.l_hand.ori = Quaternion::rotation_x(2.2 + wave_testc * 0.5);
next.l_hand.scale = Vec3::one();
next.r_hand.offset = Vec3::new(8.5, 3.0 - wave_test * 1.5, 6.0 + wave_test * 4.0);
next.r_hand.ori = Quaternion::rotation_x(0.2 - wave_testc * 0.5);
next.r_hand.offset = Vec3::new(6.0, -0.25 - wave_testc * 1.5, 5.0 + wave_test * 4.0);
next.r_hand.ori = Quaternion::rotation_x(2.2 - wave_testc * 0.5);
next.r_hand.scale = Vec3::one();
next.l_foot.offset = Vec3::new(-3.4, 1.0, 6.0 + wave_test * 2.5);
next.l_foot.ori = Quaternion::rotation_x(0.2 - wave_testc * 0.50);
next.l_foot.ori = Quaternion::rotation_x(0.2 - wave_testc * 0.5);
next.l_foot.scale = Vec3::one();
next.r_foot.offset = Vec3::new(3.4, 1.0, 6.0 - wave_test * 2.5);
next.r_foot.ori = Quaternion::rotation_x(0.2 + wave_testc * 0.50);
next.r_foot.ori = Quaternion::rotation_x(0.2 + wave_testc * 0.5);
next.r_foot.scale = Vec3::one();
next.weapon.offset = Vec3::new(

View File

@ -59,8 +59,8 @@ impl Animation for GlidingAnimation {
next.head.offset = Vec3::new(
0.0 + skeleton_attr.neck_right,
0.0 + skeleton_attr.neck_forward,
skeleton_attr.neck_height + 6.0,
-2.0 + skeleton_attr.neck_forward,
skeleton_attr.neck_height + 12.0,
);
next.head.ori = Quaternion::rotation_x(0.35 - wave_very_slow * 0.10 + head_look.y)
* Quaternion::rotation_z(head_look.x + wave_very_slow_cos * 0.15);
@ -80,18 +80,18 @@ impl Animation for GlidingAnimation {
next.l_hand.offset = Vec3::new(
-9.5 + wave_very_slow_cos * -1.5,
-7.0 + wave_very_slow_cos * 1.5,
9.0,
-3.0 + wave_very_slow_cos * 1.5,
6.0,
);
next.l_hand.ori = Quaternion::rotation_x(1.0 + wave_very_slow_cos * -0.1);
next.l_hand.ori = Quaternion::rotation_x(-2.7 + wave_very_slow_cos * -0.1);
next.l_hand.scale = Vec3::one();
next.r_hand.offset = Vec3::new(
9.5 + wave_very_slow_cos * -1.5,
-7.0 + wave_very_slow_cos * -1.5,
9.0,
-3.0 + wave_very_slow_cos * -1.5,
6.0,
);
next.r_hand.ori = Quaternion::rotation_x(1.0 + wave_very_slow_cos * -0.10);
next.r_hand.ori = Quaternion::rotation_x(-2.7 + wave_very_slow_cos * -0.10);
next.r_hand.scale = Vec3::one();
next.l_foot.offset = Vec3::new(-3.4, 1.0, -2.0);

View File

@ -38,8 +38,8 @@ impl Animation for IdleAnimation {
);*/
next.head.offset = Vec3::new(
0.0 + skeleton_attr.neck_right,
0.0 + skeleton_attr.neck_forward,
skeleton_attr.neck_height + 15.0 + wave_ultra_slow * 0.1,
-2.0 + skeleton_attr.neck_forward,
skeleton_attr.neck_height + 21.0 + wave_ultra_slow * 0.1,
);
/*next.head.ori =
Quaternion::rotation_z(head_look.x) * Quaternion::rotation_x(head_look.y.abs());*/
@ -59,18 +59,18 @@ impl Animation for IdleAnimation {
next.shorts.scale = Vec3::one();
next.l_hand.offset = Vec3::new(
-7.5,
0.0 + wave_ultra_slow_cos * 0.15,
0.0 + wave_ultra_slow * 0.5,
-6.0,
-0.25 + wave_ultra_slow_cos * 0.15,
5.0 + wave_ultra_slow * 0.5,
);
next.l_hand.ori = Quaternion::rotation_x(0.0 + wave_ultra_slow * -0.06);
next.l_hand.scale = Vec3::one();
next.r_hand.offset = Vec3::new(
7.5,
0.0 + wave_ultra_slow_cos * 0.15,
0.0 + wave_ultra_slow * 0.5 + wave_ultra_slow_abs * -0.05,
6.0,
-0.25 + wave_ultra_slow_cos * 0.15,
5.0 + wave_ultra_slow * 0.5 + wave_ultra_slow_abs * -0.05,
);
next.r_hand.ori = Quaternion::rotation_x(0.0 + wave_ultra_slow * -0.06);
next.r_hand.scale = Vec3::one() + wave_ultra_slow_abs * -0.05;

View File

@ -26,15 +26,15 @@ impl Animation for JumpAnimation {
next.head.offset = Vec3::new(
0.0 + skeleton_attr.neck_right,
0.0 + skeleton_attr.neck_forward,
skeleton_attr.neck_height + 15.0,
-3.0 + skeleton_attr.neck_forward,
skeleton_attr.neck_height + 21.0,
);
next.head.ori = Quaternion::rotation_x(0.25 + wave_stop * 0.1 + wave_slow * 0.04);
next.head.scale = Vec3::one() * skeleton_attr.head_scale;
next.chest.offset = Vec3::new(0.0, 0.0, 8.0);
next.chest.ori = Quaternion::rotation_z(0.0);
next.chest.scale = Vec3::one();
next.chest.scale = Vec3::one() * 1.01;
next.belt.offset = Vec3::new(0.0, 0.0, 6.0);
next.belt.ori = Quaternion::rotation_z(0.0);
@ -45,23 +45,25 @@ impl Animation for JumpAnimation {
next.shorts.scale = Vec3::one();
next.l_hand.offset = Vec3::new(
-8.0,
0.0 + wave_stop * 3.8,
0.0 + wave_stop * 3.2 - wave * 0.4,
-6.0 + wave_stop * -1.8,
-0.25 + wave_stop * 1.7,
2.0 + wave_stop * 3.2 - wave * 0.4,
);
next.l_hand.ori = Quaternion::rotation_x(wave_stop_alt * 0.6);
next.l_hand.ori = Quaternion::rotation_x(wave_stop_alt * 1.2 + wave_slow * 0.2)
* Quaternion::rotation_y(wave_stop_alt * 0.2);
next.l_hand.scale = Vec3::one();
next.r_hand.offset = Vec3::new(
8.0,
0.0 + wave_stop * -3.8,
0.0 + wave_stop * 3.2 - wave * 0.4,
6.0 + wave_stop * 1.8,
-0.25 + wave_stop * -1.7,
2.0 + wave_stop * 3.2 - wave * 0.4,
);
next.r_hand.ori = Quaternion::rotation_x(-wave_stop_alt * 0.6);
next.r_hand.ori = Quaternion::rotation_x(-wave_stop_alt * 1.2 + wave_slow * -0.2)
* Quaternion::rotation_y(wave_stop_alt * -0.2);
next.r_hand.scale = Vec3::one();
next.l_foot.offset = Vec3::new(-3.4, 1.0, 6.0);
next.l_foot.ori = Quaternion::rotation_x(wave_stop * -1.2 - wave_slow * 0.2);
next.l_foot.ori = Quaternion::rotation_x(wave_stop * -1.2 + wave_slow * -0.2);
next.l_foot.scale = Vec3::one();
next.r_foot.offset = Vec3::new(3.4, -1.0, 6.0);

View File

@ -28,8 +28,8 @@ impl Animation for RollAnimation {
next.head.offset = Vec3::new(
0.0 + skeleton_attr.neck_right,
0.0 + skeleton_attr.neck_forward,
skeleton_attr.neck_height + 15.0 + wave_dub * -8.0,
-2.0 + skeleton_attr.neck_forward,
skeleton_attr.neck_height + 21.0 + wave_dub * -8.0,
);
next.head.ori = Quaternion::rotation_x(wave_dub * 0.4);
next.head.scale = Vec3::one();

View File

@ -34,19 +34,19 @@ impl Animation for RunAnimation {
.sqrt())
* ((anim_time as f32 * constant as f32 * 1.5).sin());
let wave_cos_dub = (((5.0)
/ (1.1 + 3.9 * ((anim_time as f32 * constant as f32 * 1.5).sin()).powf(2.0 as f32)))
/ (1.1 + 3.9 * ((anim_time as f32 * constant as f32 * 4.8).sin()).powf(2.0 as f32)))
.sqrt())
* ((anim_time as f32 * constant as f32 * 1.5).sin());
let wave_diff = (anim_time as f32 * 0.6).sin();
let wave_stop = (anim_time as f32 * 2.6).min(PI / 2.0).sin();
let head_look = Vec2::new(
((global_time + anim_time) as f32 / 2.0)
((global_time + anim_time) as f32 / 4.0)
.floor()
.mul(7331.0)
.sin()
* 0.2,
((global_time + anim_time) as f32 / 2.0)
((global_time + anim_time) as f32 / 4.0)
.floor()
.mul(1337.0)
.sin()
@ -70,8 +70,8 @@ impl Animation for RunAnimation {
next.head.offset = Vec3::new(
0.0,
-1.0 + skeleton_attr.neck_forward,
skeleton_attr.neck_height + 15.0 + wave_cos * 1.3,
-3.0 + skeleton_attr.neck_forward,
skeleton_attr.neck_height + 20.0 + wave_cos * 1.3,
);
next.head.ori = Quaternion::rotation_z(head_look.x + wave * 0.1)
* Quaternion::rotation_x(head_look.y + 0.35);
@ -89,20 +89,12 @@ impl Animation for RunAnimation {
next.shorts.ori = Quaternion::rotation_z(wave * 0.6);
next.shorts.scale = Vec3::one();
next.l_hand.offset = Vec3::new(
-7.5 + wave_cos_dub * 1.0,
2.0 + wave_cos * 5.0,
0.0 - wave * 1.5,
);
next.l_hand.ori = Quaternion::rotation_x(wave_cos * 0.8);
next.l_hand.offset = Vec3::new(-6.0, -0.25 + wave_cos * 2.0, 5.0 - wave * 1.5);
next.l_hand.ori = Quaternion::rotation_x(0.8 + wave_cos * 1.2);
next.l_hand.scale = Vec3::one();
next.r_hand.offset = Vec3::new(
7.5 - wave_cos_dub * 1.0,
2.0 - wave_cos * 5.0,
0.0 + wave * 1.5,
);
next.r_hand.ori = Quaternion::rotation_x(wave_cos * -0.8);
next.r_hand.offset = Vec3::new(6.0, -0.25 - wave_cos * 2.0, 5.0 + wave * 1.5);
next.r_hand.ori = Quaternion::rotation_x(0.8 + wave_cos * -1.2);
next.r_hand.scale = Vec3::one();
next.l_foot.offset = Vec3::new(-3.4, 0.0 + wave_cos * 1.0, 6.0 - wave_cos_dub * 0.7);

View File

@ -41,8 +41,8 @@ impl Animation for SitAnimation {
);
next.head.offset = Vec3::new(
0.0 + skeleton_attr.neck_right,
wave_stop * -1.6 + skeleton_attr.neck_forward,
skeleton_attr.neck_height + 15.0 + wave_slow * 0.1 + wave_stop * -0.8,
wave_stop * -3.6 + skeleton_attr.neck_forward,
skeleton_attr.neck_height + 21.0 + wave_slow * 0.1 + wave_stop * -0.8,
);
next.head.ori =
Quaternion::rotation_z(head_look.x + wave_ultra_slow * 0.2 - wave_slow * 0.1)
@ -68,9 +68,9 @@ impl Animation for SitAnimation {
next.shorts.scale = Vec3::one();
next.l_hand.offset = Vec3::new(
-7.5,
0.0 + wave_ultra_slow_cos * 0.15,
wave_ultra_slow * 0.7 + wave_stop * -2.0,
-6.0,
-0.25 + wave_ultra_slow_cos * 0.15,
7.0 + wave_ultra_slow * 0.7 + wave_stop * -2.0,
);
next.l_hand.ori =
@ -78,9 +78,9 @@ impl Animation for SitAnimation {
next.l_hand.scale = Vec3::one() + wave_slow_abs * -0.05;
next.r_hand.offset = Vec3::new(
7.5,
0.0 + wave_ultra_slow_cos * 0.15,
wave_ultra_slow * 0.7 + wave_stop * -2.0,
6.0,
-0.25 + wave_ultra_slow_cos * 0.15,
7.0 + wave_ultra_slow * 0.7 + wave_stop * -2.0,
);
next.r_hand.ori =
Quaternion::rotation_x(0.0 + wave_slow * -0.1 + wave_ultra_slow_cos * 0.1);

View File

@ -29,17 +29,17 @@ impl Animation for StandAnimation {
.floor()
.mul(7331.0)
.sin()
* 0.5,
* 0.3,
((global_time + anim_time) as f32 / 12.0)
.floor()
.mul(1337.0)
.sin()
* 0.25,
* 0.15,
);
next.head.offset = Vec3::new(
0.0 + skeleton_attr.neck_right,
0.0 + skeleton_attr.neck_forward,
skeleton_attr.neck_height + 15.0 + wave_ultra_slow * 0.3,
-3.0 + skeleton_attr.neck_forward,
skeleton_attr.neck_height + 21.0 + wave_ultra_slow * 0.3,
);
next.head.ori =
Quaternion::rotation_z(head_look.x) * Quaternion::rotation_x(head_look.y.abs());
@ -47,7 +47,7 @@ impl Animation for StandAnimation {
next.chest.offset = Vec3::new(0.0, 0.0, 7.0 + wave_ultra_slow * 0.3);
next.chest.ori = Quaternion::rotation_x(0.0);
next.chest.scale = Vec3::one() + wave_ultra_slow_abs * 0.05;
next.chest.scale = Vec3::one() * 1.01 + wave_ultra_slow_abs * 0.05;
next.belt.offset = Vec3::new(0.0, 0.0, 5.0 + wave_ultra_slow * 0.3);
next.belt.ori = Quaternion::rotation_x(0.0);
@ -58,18 +58,18 @@ impl Animation for StandAnimation {
next.shorts.scale = Vec3::one();
next.l_hand.offset = Vec3::new(
-7.5,
0.0 + wave_ultra_slow_cos * 0.15,
0.0 + wave_ultra_slow * 0.5,
-6.0,
-0.25 + wave_ultra_slow_cos * 0.15,
5.0 + wave_ultra_slow * 0.5,
);
next.l_hand.ori = Quaternion::rotation_x(0.0 + wave_ultra_slow * -0.06);
next.l_hand.scale = Vec3::one();
next.r_hand.offset = Vec3::new(
7.5,
0.0 + wave_ultra_slow_cos * 0.15,
0.0 + wave_ultra_slow * 0.5 + wave_ultra_slow_abs * -0.05,
6.0,
-0.25 + wave_ultra_slow_cos * 0.15,
5.0 + wave_ultra_slow * 0.5 + wave_ultra_slow_abs * -0.05,
);
next.r_hand.ori = Quaternion::rotation_x(0.0 + wave_ultra_slow * -0.06);
next.r_hand.scale = Vec3::one() + wave_ultra_slow_abs * -0.05;

View File

@ -55,8 +55,8 @@ impl Animation for SwimAnimation {
next.head.offset = Vec3::new(
0.0,
-1.0 + skeleton_attr.neck_forward,
skeleton_attr.neck_height + 15.0 + wave_cos * 1.3,
-3.0 + skeleton_attr.neck_forward,
skeleton_attr.neck_height + 21.0 + wave_cos * 1.3,
);
next.head.ori = Quaternion::rotation_z(head_look.x + wave * 0.1)
* Quaternion::rotation_x(head_look.y + 0.35);
@ -75,17 +75,17 @@ impl Animation for SwimAnimation {
next.shorts.scale = Vec3::one();
next.l_hand.offset = Vec3::new(
-7.5 + wave_cos_dub * 1.0,
2.0 + wave_cos * 5.0,
0.0 - wave * 1.5,
-6.0 + wave_cos_dub * 1.0,
-0.25 + wave_cos * 5.0,
5.0 - wave * 1.5,
);
next.l_hand.ori = Quaternion::rotation_x(wave_cos * 0.8);
next.l_hand.scale = Vec3::one();
next.r_hand.offset = Vec3::new(
7.5 - wave_cos_dub * 1.0,
2.0 - wave_cos * 5.0,
0.0 + wave * 1.5,
6.0 - wave_cos_dub * 1.0,
-0.25 - wave_cos * 5.0,
5.0 + wave * 1.5,
);
next.r_hand.ori = Quaternion::rotation_x(wave_cos * -0.8);
next.r_hand.scale = Vec3::one();

View File

@ -59,15 +59,15 @@ impl Animation for WieldAnimation {
next.weapon.scale = Vec3::one();
}
Tool::Hammer => {
next.l_hand.offset = Vec3::new(-7.0, 8.25, 3.0);
next.l_hand.ori = Quaternion::rotation_x(-0.3)
* Quaternion::rotation_y(-1.2)
* Quaternion::rotation_z(wave * -0.25);
next.l_hand.offset = Vec3::new(-7.0, 4.0, 3.0);
next.l_hand.ori = Quaternion::rotation_x(1.27 + wave * 0.25)
* Quaternion::rotation_y(0.0)
* Quaternion::rotation_z(0.0);
next.l_hand.scale = Vec3::one() * 1.01;
next.r_hand.offset = Vec3::new(7.0, 7.0, -1.5);
next.r_hand.ori = Quaternion::rotation_x(-0.3)
* Quaternion::rotation_y(-1.2)
* Quaternion::rotation_z(wave * -0.25);
next.r_hand.offset = Vec3::new(7.0, 2.5, -1.25);
next.r_hand.ori = Quaternion::rotation_x(1.27 + wave * 0.25)
* Quaternion::rotation_y(0.0)
* Quaternion::rotation_z(-0.3);
next.r_hand.scale = Vec3::one() * 1.01;
next.weapon.offset = Vec3::new(
5.0 + skeleton_attr.weapon_x,
@ -75,7 +75,7 @@ impl Animation for WieldAnimation {
-2.0,
);
next.weapon.ori = Quaternion::rotation_x(-0.3)
* Quaternion::rotation_y(-1.2)
* Quaternion::rotation_y(-1.27)
* Quaternion::rotation_z(wave * -0.25);
next.weapon.scale = Vec3::one();
}

View File

@ -76,60 +76,60 @@ impl<'a> From<&'a comp::humanoid::Body> for SkeletonAttr {
use comp::humanoid::{BodyType::*, Race::*};
Self {
scaler: match (body.race, body.body_type) {
(Orc, Male) => 1.2,
(Orc, Female) => 1.0,
(Human, Male) => 1.0,
(Human, Female) => 0.90,
(Elf, Male) => 1.0,
(Elf, Female) => 1.0,
(Dwarf, Male) => 0.92,
(Dwarf, Female) => 0.89,
(Undead, Male) => 0.98,
(Undead, Female) => 0.93,
(Danari, Male) => 0.85,
(Danari, Female) => 0.82,
(Orc, Male) => 0.95,
(Orc, Female) => 0.8,
(Human, Male) => 0.8,
(Human, Female) => 0.75,
(Elf, Male) => 0.85,
(Elf, Female) => 0.8,
(Dwarf, Male) => 0.7,
(Dwarf, Female) => 0.65,
(Undead, Male) => 0.8,
(Undead, Female) => 0.75,
(Danari, Male) => 0.58,
(Danari, Female) => 0.58,
},
head_scale: match (body.race, body.body_type) {
(Orc, Male) => 0.9,
(Orc, Female) => 1.0,
(Human, Male) => 1.0,
(Human, Female) => 1.0,
(Elf, Male) => 1.0,
(Elf, Male) => 0.95,
(Elf, Female) => 1.0,
(Dwarf, Male) => 1.0,
(Dwarf, Female) => 1.0,
(Undead, Male) => 1.0,
(Undead, Female) => 1.0,
(Danari, Male) => 1.11,
(Danari, Female) => 1.11,
(Danari, Male) => 1.15,
(Danari, Female) => 1.15,
},
neck_height: match (body.race, body.body_type) {
(Orc, Male) => -2.0,
(Orc, Male) => 0.0,
(Orc, Female) => 0.0,
(Human, Male) => -0.75,
(Human, Female) => -2.0,
(Elf, Male) => -0.75,
(Elf, Female) => -2.45,
(Dwarf, Male) => -0.0,
(Dwarf, Female) => -1.25,
(Undead, Male) => -1.0,
(Undead, Female) => -0.5,
(Danari, Male) => 0.5,
(Danari, Female) => -0.75,
(Human, Male) => 0.0,
(Human, Female) => 0.0,
(Elf, Male) => 0.0,
(Elf, Female) => 0.0,
(Dwarf, Male) => 0.0,
(Dwarf, Female) => 0.0,
(Undead, Male) => 0.5,
(Undead, Female) => 0.5,
(Danari, Male) => 0.0,
(Danari, Female) => 0.5,
},
neck_forward: match (body.race, body.body_type) {
(Orc, Male) => 0.0,
(Orc, Female) => -2.0,
(Human, Male) => 0.0,
(Human, Female) => -1.0,
(Elf, Male) => 0.0,
(Elf, Female) => -0.5,
(Dwarf, Male) => 2.0,
(Orc, Female) => 0.0,
(Human, Male) => 0.5,
(Human, Female) => 0.0,
(Elf, Male) => 0.5,
(Elf, Female) => 0.5,
(Dwarf, Male) => 0.5,
(Dwarf, Female) => 0.0,
(Undead, Male) => 1.0,
(Undead, Female) => 0.75,
(Danari, Male) => 0.5,
(Danari, Female) => -3.0,
(Undead, Male) => 0.5,
(Undead, Female) => 0.5,
(Danari, Male) => 0.0,
(Danari, Female) => 0.0,
},
neck_right: match (body.race, body.body_type) {
(Orc, Male) => 0.0,
@ -140,7 +140,7 @@ impl<'a> From<&'a comp::humanoid::Body> for SkeletonAttr {
(Elf, Female) => 0.0,
(Dwarf, Male) => 0.0,
(Dwarf, Female) => 0.0,
(Undead, Male) => -0.5,
(Undead, Male) => 0.0,
(Undead, Female) => 0.0,
(Danari, Male) => 0.0,
(Danari, Female) => 0.0,

View File

@ -58,6 +58,7 @@ image_ids! {
// MiniMap
mmap_frame: "voxygen.element.frames.mmap",
mmap_frame_closed: "voxygen.element.frames.mmap_closed",
indicator_mmap: "voxygen.voxel.figure.accessory.human.earring",
// Missing: Buff Frame Animation .gif ?! we could do animation in ui.maintain, or in shader?
window_frame: "voxygen.element.frames.window2",
@ -86,6 +87,7 @@ image_ids! {
map_frame_r: "voxygen.element.frames.map_r",
map_frame_bl: "voxygen.element.frames.map_bl",
map_frame_br: "voxygen.element.frames.map_br",
pos_indicator: "voxygen.element.buttons.qlog",
// Chat-Arrows
chat_arrow: "voxygen.element.buttons.arrow_down",
@ -106,6 +108,10 @@ image_ids! {
flyingrod_m2: "voxygen.element.icons.debug_wand_m2",
////////////////////////////////////////////////////////////////////////
<VoxelMs9Graphic>
// Map
map_indicator: "voxygen.element.buttons.map_indicator",
// Crosshair
crosshair_outer_round: "voxygen.element.misc_bg.crosshair_outer_1",
crosshair_outer_round_edges: "voxygen.element.misc_bg.crosshair_outer_2",
@ -209,6 +215,7 @@ image_ids! {
<ImageGraphic>
charwindow_gradient:"voxygen.element.misc_bg.charwindow",
map_placeholder: "voxygen.background.map",
// Spell Book Window
spellbook_icon: "voxygen.element.icons.spellbook",

View File

@ -1,11 +1,12 @@
use super::{img_ids::Imgs, Fonts, Show, TEXT_COLOR_2};
use client::{self, Client};
use common::comp;
use conrod_core::{
color,
widget::{self, Button, Image, Rectangle, Text},
widget_ids, Colorable, Positionable, Sizeable, Widget, WidgetCommon,
};
use super::{img_ids::Imgs, Fonts, Show, TEXT_COLOR_2};
use client::{self, Client};
use vek::*;
widget_ids! {
struct Ids {
@ -19,6 +20,8 @@ widget_ids! {
map_frame_bl,
map_frame_br,
location_name,
indicator,
grid,
}
}
@ -127,6 +130,31 @@ impl<'a> Widget for Map<'a> {
.color(TEXT_COLOR_2)
.set(state.ids.location_name, ui),
}
// Map Image
Image::new(self.imgs.map_placeholder)
.middle_of(state.ids.map_bg)
.w_h(700.0, 700.0)
.parent(state.ids.map_bg)
.set(state.ids.grid, ui);
// Coordinates
let player_pos = self
.client
.state()
.ecs()
.read_storage::<comp::Pos>()
.get(self.client.entity())
.map_or(Vec3::zero(), |pos| pos.0);
let worldsize = 32768.0; // TODO This has to get the actual world size and not be hardcoded
let x = player_pos.x as f64 / worldsize * 700.0;
let y = player_pos.y as f64 / worldsize * 700.0;
// Indicator
Image::new(self.imgs.map_indicator)
.bottom_left_with_margins_on(state.ids.grid, y, x - 11.5)
.w_h(23.0, 25.0)
.floating(true)
.parent(ui.window)
.set(state.ids.indicator, ui);
None
}

View File

@ -1,13 +1,13 @@
use super::{img_ids::Imgs, Fonts, Show, HP_COLOR, TEXT_COLOR};
use client::{self, Client};
use common::comp;
use conrod_core::{
color,
widget::{self, Button, Image, Rectangle, Text},
widget_ids, Color, Colorable, Positionable, Sizeable, Widget, WidgetCommon,
};
use std::time::{Duration, Instant};
use super::{img_ids::Imgs, Fonts, Show, HP_COLOR, TEXT_COLOR};
use client::{self, Client};
use vek::*;
widget_ids! {
struct Ids {
@ -17,6 +17,8 @@ widget_ids! {
mmap_button,
zone_display_bg,
zone_display,
grid,
indicator
}
}
@ -85,6 +87,31 @@ impl<'a> Widget for MiniMap<'a> {
Rectangle::fill_with([92.0 * 2.0, 82.0 * 2.0], color::TRANSPARENT)
.mid_top_with_margin_on(state.ids.mmap_frame, 13.0 * 2.0 + 2.0)
.set(state.ids.mmap_frame_bg, ui);
// Map Image
Image::new(self.imgs.map_placeholder)
.middle_of(state.ids.mmap_frame_bg)
.w_h(92.0 * 2.0, 82.0 * 2.0)
.parent(state.ids.mmap_frame_bg)
.set(state.ids.grid, ui);
// Coordinates
let player_pos = self
.client
.state()
.ecs()
.read_storage::<comp::Pos>()
.get(self.client.entity())
.map_or(Vec3::zero(), |pos| pos.0);
let worldsize = 32768.0; // TODO This has to get the actual world size and not be hardcoded
let x = player_pos.x as f64 / worldsize * 92.0 * 2.0;
let y = player_pos.y as f64 / worldsize * 82.0 * 2.0;
// Indicator
Image::new(self.imgs.indicator_mmap)
.bottom_left_with_margins_on(state.ids.grid, y, x - 2.5)
.w_h(5.0, 5.0)
.floating(true)
.parent(ui.window)
.set(state.ids.indicator, ui);
} else {
Image::new(self.imgs.mmap_frame_closed)
.w_h(100.0 * 2.0, 11.0 * 2.0)

View File

@ -217,7 +217,7 @@ pub fn mesh_chest(
)
};
let bare_chest = graceful_load_mat_segment("figure.body.chest");
let bare_chest = graceful_load_mat_segment("armor.chest.grayscale");
let chest_armor = graceful_load_mat_segment("armor.chest.grayscale");
let chest = DynaUnionizer::new()
.add(color(bare_chest), Vec3::new(0, 0, 0))
@ -228,7 +228,7 @@ pub fn mesh_chest(
.unify()
.0;
generate_mesh(&chest, Vec3::new(-6.0, -3.5, 0.0))
generate_mesh(&chest, Vec3::new(-7.0, -3.5, 2.0))
}
pub fn mesh_belt(belt: Belt) -> Mesh<FigurePipeline> {
@ -237,7 +237,7 @@ pub fn mesh_belt(belt: Belt) -> Mesh<FigurePipeline> {
//Belt::Default => "figure/body/belt_male",
Belt::Dark => "armor.belt.belt_dark",
},
Vec3::new(-5.0, -3.5, 0.0),
Vec3::new(-4.0, -3.5, 2.0),
)
}
@ -264,7 +264,7 @@ pub fn mesh_pants(
race.eye_color(eye_color),
);
generate_mesh(&pants_segment, Vec3::new(-5.0, -3.5, 0.0))
generate_mesh(&pants_segment, Vec3::new(-5.0, -3.5, 1.0))
}
pub fn mesh_left_hand(
@ -276,15 +276,15 @@ pub fn mesh_left_hand(
) -> Mesh<FigurePipeline> {
let hand_segment = color_segment(
graceful_load_mat_segment(match hand {
Hand::Bare => "figure.body.hand",
Hand::Dark => "armor.hand.dark-0",
Hand::Bare => "armor.hand.hand_left",
Hand::Dark => "armor.hand.hand_left",
}),
race.skin_color(skin),
race.hair_color(hair_color),
race.eye_color(eye_color),
);
generate_mesh(&hand_segment, Vec3::new(-2.0, -2.5, -2.0))
generate_mesh(&hand_segment, Vec3::new(-1.5, -1.5, -7.0))
}
pub fn mesh_right_hand(
@ -296,15 +296,15 @@ pub fn mesh_right_hand(
) -> Mesh<FigurePipeline> {
let hand_segment = color_segment(
graceful_load_mat_segment(match hand {
Hand::Bare => "figure.body.hand",
Hand::Dark => "armor.hand.dark-0",
Hand::Bare => "armor.hand.hand_right",
Hand::Dark => "armor.hand.hand_right",
}),
race.skin_color(skin),
race.hair_color(hair_color),
race.eye_color(eye_color),
);
generate_mesh(&hand_segment, Vec3::new(-2.0, -2.5, -2.0))
generate_mesh(&hand_segment, Vec3::new(-1.5, -1.5, -7.0))
}
pub fn mesh_left_foot(
@ -316,7 +316,7 @@ pub fn mesh_left_foot(
) -> Mesh<FigurePipeline> {
let foot_segment = color_segment(
graceful_load_mat_segment(match foot {
Foot::Bare => "figure.body.foot",
Foot::Bare => "armor.foot.dark-0",
Foot::Dark => "armor.foot.dark-0",
}),
race.skin_color(skin),
@ -336,7 +336,7 @@ pub fn mesh_right_foot(
) -> Mesh<FigurePipeline> {
let foot_segment = color_segment(
graceful_load_mat_segment(match foot {
Foot::Bare => "figure.body.foot",
Foot::Bare => "armor.foot.dark-0",
Foot::Dark => "armor.foot.dark-0",
}),
race.skin_color(skin),
@ -357,7 +357,7 @@ pub fn mesh_main(item: Option<&Item>) -> Mesh<FigurePipeline> {
Tool::Daggers => ("weapon.hammer.rusty_2h", Vec3::new(-2.5, -5.5, -4.0)),
Tool::SwordShield => ("weapon.axe.rusty_2h", Vec3::new(-2.5, -6.5, -2.0)),
Tool::Bow => ("weapon.hammer.rusty_2h", Vec3::new(-2.5, -5.5, -4.0)),
Tool::Staff => ("weapon.axe.rusty_2h", Vec3::new(-2.5, -6.5, -2.0)),
Tool::Staff => ("weapon.axe.rusty_2h", Vec3::new(-2.5, -5.5, -4.0)),
},
Item::Debug(_) => ("weapon.debug_wand", Vec3::new(-1.5, -9.5, -4.0)),
_ => return Mesh::new(),
@ -385,7 +385,7 @@ pub fn mesh_left_shoulder(
race.eye_color(eye_color),
);
generate_mesh(&shoulder_segment, Vec3::new(-2.5, -3.5, -1.5))
generate_mesh(&shoulder_segment, Vec3::new(-3.0, -3.5, 0.1))
}
pub fn mesh_right_shoulder(
@ -405,7 +405,7 @@ pub fn mesh_right_shoulder(
race.eye_color(eye_color),
);
generate_mesh(&shoulder_segment, Vec3::new(-2.5, -3.5, -1.5))
generate_mesh(&shoulder_segment, Vec3::new(-2.0, -3.5, 0.1))
}
// TODO: Inventory
@ -633,6 +633,7 @@ pub fn mesh_object(obj: object::Body) -> Mesh<FigurePipeline> {
Vec3::new(-21.0, -21.0, -0.5),
),
Body::Pouch => ("object.pouch", Vec3::new(-5.5, -4.5, 0.0)),
Body::CraftingBench => ("object.crafting_bench", Vec3::new(-9.5, -7.0, 0.0)),
};
load_mesh(name, offset)
}

View File

@ -94,7 +94,7 @@ fn sprite_config_for(kind: BlockKind) -> Option<SpriteConfig> {
wind_sway: 0.1,
}),
BlockKind::WhiteFlower => Some(SpriteConfig {
variations: 1,
variations: 2,
wind_sway: 0.1,
}),
BlockKind::YellowFlower => Some(SpriteConfig {
@ -375,6 +375,13 @@ impl<V: RectRasterableVol> Terrain<V> {
Vec3::new(-6.0, -6.0, 0.0),
),
),
(
(BlockKind::WhiteFlower, 1),
make_model(
"voxygen.voxel.sprite.flowers.flower_white_2",
Vec3::new(-6.0, -6.0, 0.0),
),
),
(
(BlockKind::YellowFlower, 0),
make_model(
@ -603,8 +610,8 @@ impl<V: RectRasterableVol> Terrain<V> {
(
(BlockKind::Velorite, 0),
make_model(
"voxygen.voxel.sprite.velorite.velorite",
Vec3::new(-5.0, -5.0, -0.0),
"voxygen.voxel.sprite.velorite.velorite_ore",
Vec3::new(-5.0, -5.0, -5.0),
),
),
]