Merge branch 'char_overhaul' into 'master'

Char overhaul and asset update

See merge request veloren/veloren!523
This commit is contained in:
Monty Marz 2019-10-02 10:05:17 +00:00
commit 131204f308
69 changed files with 549 additions and 418 deletions

BIN
assets/voxygen/background/map.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/buttons/map_indicator.vox (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

BIN
assets/voxygen/voxel/armor/belt/cloth_turq.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/chest/cloth_red_kimono.vox (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

BIN
assets/voxygen/voxel/armor/foot/cloth_sandals.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/foot/dark-0.vox (Stored with Git LFS)

Binary file not shown.

BIN
assets/voxygen/voxel/armor/foot/dark_jester-elf_shoe.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/hand/cloth_basic_left.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/hand/cloth_basic_right.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/hand/hand_left.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/hand/hand_right.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/pants/cloth_red_kimono.vox (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
assets/voxygen/voxel/figure/accessory/dwarf/warpaint-0.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/figure/accessory/elf/warpaint-0.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/figure/accessory/human/earring.vox (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

BIN
assets/voxygen/voxel/figure/accessory/orc/earring-male-0.vox (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

BIN
assets/voxygen/voxel/figure/accessory/orc/teeth-0.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/figure/accessory/orc/teeth-1.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/figure/accessory/orc/teeth-2.vox (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

BIN
assets/voxygen/voxel/figure/beard/human/human-1.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/figure/body/new.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/figure/eyes/dwarf/male-1.vox (Stored with Git LFS) Normal file

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

BIN
assets/voxygen/voxel/object/crafting_bench.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/flowers/flower_white_2.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/velorite/velorite_ore.vox (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

BIN
assets/voxygen/voxel/weapon/staff/wood_1.vox (Stored with Git LFS) Normal file

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),
),
),
]