From 3c60bd19290be47b4270d1182c64c0d13393edfe Mon Sep 17 00:00:00 2001 From: DoctorKompot Date: Thu, 4 Nov 2021 00:44:57 +0200 Subject: [PATCH 01/26] made lanterns slightly brighter, changed lantern color for green and red to match their names, changed display of Common items to fit the item frames of other qualities, updated item image manifest --- assets/common/items/lantern/green_0.ron | 2 +- assets/common/items/lantern/red_0.ron | 2 +- .../element/ui/bag/buttons/inv_slot_sel.png | 4 ++-- assets/voxygen/item_image_manifest.ron | 24 +++++++++++-------- assets/voxygen/voxel/lantern/black-0.vox | 4 ++-- assets/voxygen/voxel/lantern/blue-0.vox | 4 ++-- assets/voxygen/voxel/lantern/geode_purp.vox | 4 ++-- assets/voxygen/voxel/lantern/green-0.vox | 4 ++-- assets/voxygen/voxel/lantern/red-0.vox | 4 ++-- 9 files changed, 28 insertions(+), 24 deletions(-) diff --git a/assets/common/items/lantern/green_0.ron b/assets/common/items/lantern/green_0.ron index 665b336bfe..2ac96711cd 100644 --- a/assets/common/items/lantern/green_0.ron +++ b/assets/common/items/lantern/green_0.ron @@ -4,7 +4,7 @@ ItemDef( kind: Lantern( ( kind: "Green0", - color: (r: 255, g: 128, b: 26), + color: (r: 50, g: 205, b: 50), strength_thousandths: 6000, flicker_thousandths: 250, ), diff --git a/assets/common/items/lantern/red_0.ron b/assets/common/items/lantern/red_0.ron index 4ca189dd3e..63c683a530 100644 --- a/assets/common/items/lantern/red_0.ron +++ b/assets/common/items/lantern/red_0.ron @@ -4,7 +4,7 @@ ItemDef( kind: Lantern( ( kind: "Red0", - color: (r: 255, g: 128, b: 26), + color: (r: 220, g: 20, b: 60), strength_thousandths: 5000, flicker_thousandths: 250, ), diff --git a/assets/voxygen/element/ui/bag/buttons/inv_slot_sel.png b/assets/voxygen/element/ui/bag/buttons/inv_slot_sel.png index 9bb9665e58..7b27b4e779 100644 --- a/assets/voxygen/element/ui/bag/buttons/inv_slot_sel.png +++ b/assets/voxygen/element/ui/bag/buttons/inv_slot_sel.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ce47db8a87a599a03719653a5db86e6811187ccd4d1054a682efe3cebb89f73b -size 158 +oid sha256:df37e3b1d2122be9c5698b4998d1eb08fb4c4fd91a7f097adb1cc00750cde0e4 +size 632 diff --git a/assets/voxygen/item_image_manifest.ron b/assets/voxygen/item_image_manifest.ron index 0418b9e6ab..4f0c0f7809 100644 --- a/assets/voxygen/item_image_manifest.ron +++ b/assets/voxygen/item_image_manifest.ron @@ -1033,25 +1033,29 @@ (0.0, 0.0, 0.0), (-90.0, 90.0, 0.0), 2.4, ), // Lanterns - Lantern("Black0"): Png( - "element.items.lantern_black-0", + Lantern("Black0"): VoxTrans( + "voxel.lantern.black-0", + (0.0, 0.0, 0.0), (-75.0, 20.0, 5.0), 0.9, ), - Lantern("Green0"): Png( - "element.items.lantern_green-0", + Lantern("Green0"): VoxTrans( + "voxel.lantern.green-0", + (0.0, 0.0, 0.0), (-75.0, 20.0, 5.0), 0.9, ), - Lantern("Blue0"): Png( - "element.items.lantern_blue-0", + Lantern("Blue0"): VoxTrans( + "voxel.lantern.blue-0", + (0.0, 0.0, 0.0), (-75.0, 20.0, 5.0), 0.9, ), - Lantern("Red0"): Png( - "element.items.lantern_red-0", + Lantern("Red0"): VoxTrans( + "voxel.lantern.red-0", + (0.0, 0.0, 0.0), (-75.0, 20.0, 5.0), 0.9, ), Lantern("GeodePurp"): VoxTrans( "voxel.lantern.geode_purp", - (0.0, 0.0, 0.0), (-90.0, 120.0, 0.0), 0.9, + (0.0, 0.0, 0.0), (-75.0, 20.0, 5.0), 0.9, ), Lantern("PumpkinLantern"): VoxTrans( "voxel.lantern.pumpkin", - (0.0, 0.0, 0.0), (-90.0, 120.0, 0.0), 0.9, + (0.0, 0.0, 0.0), (-100.0, 205.0, 7.0), 0.9, ), Lantern("PolarisLantern"): VoxTrans( "voxel.lantern.polaris", diff --git a/assets/voxygen/voxel/lantern/black-0.vox b/assets/voxygen/voxel/lantern/black-0.vox index 092a32a4d7..227c84d5e8 100644 --- a/assets/voxygen/voxel/lantern/black-0.vox +++ b/assets/voxygen/voxel/lantern/black-0.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4c26b7302cb1889047d7498a482a5aa10b946d008ecbf699e74b7935a8cccd2b -size 1404 +oid sha256:f47c66ed69228a2a51442d847ace17d9ddbd1c6302e52767895ce67a7ee4097d +size 55887 diff --git a/assets/voxygen/voxel/lantern/blue-0.vox b/assets/voxygen/voxel/lantern/blue-0.vox index 1f9b3f481e..c1a7f024de 100644 --- a/assets/voxygen/voxel/lantern/blue-0.vox +++ b/assets/voxygen/voxel/lantern/blue-0.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:74dce3eee748abc472024397e98332bb3673123d5e6e0bea2f8bfaea26afef56 -size 1404 +oid sha256:05cd8520f153fcf624ca48b651dbebb41269b6a64317d4e3e617df1e11bb5b2e +size 55887 diff --git a/assets/voxygen/voxel/lantern/geode_purp.vox b/assets/voxygen/voxel/lantern/geode_purp.vox index d580f94c66..9d753830cb 100644 --- a/assets/voxygen/voxel/lantern/geode_purp.vox +++ b/assets/voxygen/voxel/lantern/geode_purp.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a0418a4af05e7d335a746074e725193d8c94dc2e0b41fb594218002e486ce194 -size 1476 +oid sha256:de5c3a564884fe275b1725c4efb9a59dfb742b66a8eb774d4affac44a950edc5 +size 55959 diff --git a/assets/voxygen/voxel/lantern/green-0.vox b/assets/voxygen/voxel/lantern/green-0.vox index 0923c3d2cd..bb3f5cd5b9 100644 --- a/assets/voxygen/voxel/lantern/green-0.vox +++ b/assets/voxygen/voxel/lantern/green-0.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:de5f07bfee3fd6b9d9d387cc679b13a985addcdd2e1d1389019a9b28cde3d378 -size 1404 +oid sha256:a735ee21e6318ca615c029f139d84f8181842b2fc4aa31d155e5649af94f8d38 +size 55887 diff --git a/assets/voxygen/voxel/lantern/red-0.vox b/assets/voxygen/voxel/lantern/red-0.vox index 0110b1a370..b086b021d6 100644 --- a/assets/voxygen/voxel/lantern/red-0.vox +++ b/assets/voxygen/voxel/lantern/red-0.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:302f82c415f2f6cd2281355734cf4a20eea991b6c8eb179149fe0a6389433840 -size 1404 +oid sha256:c468d8ae2873e436c4846c34ce38df7457bcdac6953b15f317367b8a8fa361dc +size 55887 From 3b6dc4dc5022de2340a31bf2889899df2a0864b7 Mon Sep 17 00:00:00 2001 From: DoctorKompot Date: Thu, 4 Nov 2021 18:42:06 +0200 Subject: [PATCH 02/26] reverted the previous Common items display changes --- assets/voxygen/element/ui/bag/buttons/inv_slot_common.png | 3 +++ assets/voxygen/element/ui/bag/buttons/inv_slot_sel.png | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 assets/voxygen/element/ui/bag/buttons/inv_slot_common.png diff --git a/assets/voxygen/element/ui/bag/buttons/inv_slot_common.png b/assets/voxygen/element/ui/bag/buttons/inv_slot_common.png new file mode 100644 index 0000000000..bf60c0f53f --- /dev/null +++ b/assets/voxygen/element/ui/bag/buttons/inv_slot_common.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed71413f6d660fa70ace915459174867848ce4726a7bc87785851dba1ae3122c +size 515 diff --git a/assets/voxygen/element/ui/bag/buttons/inv_slot_sel.png b/assets/voxygen/element/ui/bag/buttons/inv_slot_sel.png index 7b27b4e779..9bb9665e58 100644 --- a/assets/voxygen/element/ui/bag/buttons/inv_slot_sel.png +++ b/assets/voxygen/element/ui/bag/buttons/inv_slot_sel.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:df37e3b1d2122be9c5698b4998d1eb08fb4c4fd91a7f097adb1cc00750cde0e4 -size 632 +oid sha256:ce47db8a87a599a03719653a5db86e6811187ccd4d1054a682efe3cebb89f73b +size 158 From ccc1bdbf1c86b9bb4bf45848f2917ed42683cf5b Mon Sep 17 00:00:00 2001 From: DoctorKompot Date: Thu, 4 Nov 2021 19:50:14 +0200 Subject: [PATCH 03/26] updated the Common Quality item displays --- voxygen/src/hud/bag.rs | 2 +- voxygen/src/hud/crafting.rs | 4 ++-- voxygen/src/hud/img_ids.rs | 1 + voxygen/src/hud/loot_scroller.rs | 2 +- voxygen/src/hud/trade.rs | 2 +- voxygen/src/ui/widgets/item_tooltip.rs | 2 +- 6 files changed, 7 insertions(+), 6 deletions(-) diff --git a/voxygen/src/hud/bag.rs b/voxygen/src/hud/bag.rs index c97207c3be..da4ffc2063 100644 --- a/voxygen/src/hud/bag.rs +++ b/voxygen/src/hud/bag.rs @@ -368,7 +368,7 @@ impl<'a> InventoryScroller<'a> { if let Some(item) = item { let quality_col_img = match item.quality() { Quality::Low => self.imgs.inv_slot_grey, - Quality::Common => self.imgs.inv_slot, + Quality::Common => self.imgs.inv_slot_common, Quality::Moderate => self.imgs.inv_slot_green, Quality::High => self.imgs.inv_slot_blue, Quality::Epic => self.imgs.inv_slot_purple, diff --git a/voxygen/src/hud/crafting.rs b/voxygen/src/hud/crafting.rs index e548c60a00..825a552ce8 100644 --- a/voxygen/src/hud/crafting.rs +++ b/voxygen/src/hud/crafting.rs @@ -706,7 +706,7 @@ impl<'a> Widget for Crafting<'a> { // Output Image Frame let quality_col_img = match recipe.output.0.quality { Quality::Low => self.imgs.inv_slot_grey, - Quality::Common => self.imgs.inv_slot, + Quality::Common => self.imgs.inv_slot_common, Quality::Moderate => self.imgs.inv_slot_green, Quality::High => self.imgs.inv_slot_blue, Quality::Epic => self.imgs.inv_slot_purple, @@ -948,7 +948,7 @@ impl<'a> Widget for Crafting<'a> { }; let quality_col_img = match &item_def.quality { Quality::Low => self.imgs.inv_slot_grey, - Quality::Common => self.imgs.inv_slot, + Quality::Common => self.imgs.inv_slot_common, Quality::Moderate => self.imgs.inv_slot_green, Quality::High => self.imgs.inv_slot_blue, Quality::Epic => self.imgs.inv_slot_purple, diff --git a/voxygen/src/hud/img_ids.rs b/voxygen/src/hud/img_ids.rs index a6c534c9de..72dec72177 100644 --- a/voxygen/src/hud/img_ids.rs +++ b/voxygen/src/hud/img_ids.rs @@ -449,6 +449,7 @@ image_ids! { char_art: "voxygen.element.ui.bag.icons.character", inv_slot: "voxygen.element.ui.bag.buttons.inv_slot", inv_slot_grey: "voxygen.element.ui.bag.buttons.inv_slot_grey", + inv_slot_common: "voxygen.element.ui.bag.buttons.inv_slot_common", inv_slot_green: "voxygen.element.ui.bag.buttons.inv_slot_green", inv_slot_blue: "voxygen.element.ui.bag.buttons.inv_slot_blue", inv_slot_purple: "voxygen.element.ui.bag.buttons.inv_slot_purple", diff --git a/voxygen/src/hud/loot_scroller.rs b/voxygen/src/hud/loot_scroller.rs index 4625a66c11..6676bd5026 100644 --- a/voxygen/src/hud/loot_scroller.rs +++ b/voxygen/src/hud/loot_scroller.rs @@ -303,7 +303,7 @@ impl<'a> Widget for LootScroller<'a> { let quality_col_image = match item.quality { Quality::Low => self.imgs.inv_slot_grey, - Quality::Common => self.imgs.inv_slot, + Quality::Common => self.imgs.inv_slot_common, Quality::Moderate => self.imgs.inv_slot_green, Quality::High => self.imgs.inv_slot_blue, Quality::Epic => self.imgs.inv_slot_purple, diff --git a/voxygen/src/hud/trade.rs b/voxygen/src/hud/trade.rs index 1664cb2f97..d1cfd454f1 100644 --- a/voxygen/src/hud/trade.rs +++ b/voxygen/src/hud/trade.rs @@ -382,7 +382,7 @@ impl<'a> Trade<'a> { if let Some(Some(item)) = slot.invslot.and_then(|slotid| inventory.slot(slotid)) { let quality_col_img = match item.quality() { Quality::Low => self.imgs.inv_slot_grey, - Quality::Common => self.imgs.inv_slot, + Quality::Common => self.imgs.inv_slot_common, Quality::Moderate => self.imgs.inv_slot_green, Quality::High => self.imgs.inv_slot_blue, Quality::Epic => self.imgs.inv_slot_purple, diff --git a/voxygen/src/ui/widgets/item_tooltip.rs b/voxygen/src/ui/widgets/item_tooltip.rs index 16ee74a6dd..7de74b6e9d 100644 --- a/voxygen/src/ui/widgets/item_tooltip.rs +++ b/voxygen/src/ui/widgets/item_tooltip.rs @@ -492,7 +492,7 @@ impl<'a> Widget for ItemTooltip<'a> { // Color quality let quality_col_img = match &item.quality() { Quality::Low => self.imgs.inv_slot_grey, - Quality::Common => self.imgs.inv_slot, + Quality::Common => self.imgs.inv_slot_common, Quality::Moderate => self.imgs.inv_slot_green, Quality::High => self.imgs.inv_slot_blue, Quality::Epic => self.imgs.inv_slot_purple, From d7ddb3ae0421be0e50d3fee21842ed81e12b1bfb Mon Sep 17 00:00:00 2001 From: DoctorKompot Date: Thu, 4 Nov 2021 21:16:09 +0200 Subject: [PATCH 04/26] updated bag displays --- .../items/armor/misc/bag/soulkeeper_pure.ron | 2 +- assets/voxygen/item_image_manifest.ron | 65 +++++++++++-------- .../voxel/armor/misc/bag/admin_black_hole.vox | 3 + .../voxel/armor/misc/bag/heavy_seabag.vox | 3 + .../armor/misc/bag/knitted_red_pouch.vox | 3 + .../voxel/armor/misc/bag/liana_kit.vox | 3 + .../armor/misc/bag/mindflayer_spellbag.vox | 3 + .../armor/misc/bag/reliable_backpack.vox | 3 + .../armor/misc/bag/soulkeeper_cursed.vox | 3 + .../voxel/armor/misc/bag/soulkeeper_pure.vox | 3 + .../armor/misc/bag/sturdy_red_backpack.vox | 3 + .../armor/misc/bag/tiny_leather_pouch.vox | 3 + .../voxel/armor/misc/bag/tiny_red_pouch.vox | 3 + .../voxel/armor/misc/bag/troll_hide_pack.vox | 3 + .../voxel/armor/misc/bag/woven_red_bag.vox | 3 + 15 files changed, 79 insertions(+), 27 deletions(-) create mode 100644 assets/voxygen/voxel/armor/misc/bag/admin_black_hole.vox create mode 100644 assets/voxygen/voxel/armor/misc/bag/heavy_seabag.vox create mode 100644 assets/voxygen/voxel/armor/misc/bag/knitted_red_pouch.vox create mode 100644 assets/voxygen/voxel/armor/misc/bag/liana_kit.vox create mode 100644 assets/voxygen/voxel/armor/misc/bag/mindflayer_spellbag.vox create mode 100644 assets/voxygen/voxel/armor/misc/bag/reliable_backpack.vox create mode 100644 assets/voxygen/voxel/armor/misc/bag/soulkeeper_cursed.vox create mode 100644 assets/voxygen/voxel/armor/misc/bag/soulkeeper_pure.vox create mode 100644 assets/voxygen/voxel/armor/misc/bag/sturdy_red_backpack.vox create mode 100644 assets/voxygen/voxel/armor/misc/bag/tiny_leather_pouch.vox create mode 100644 assets/voxygen/voxel/armor/misc/bag/tiny_red_pouch.vox create mode 100644 assets/voxygen/voxel/armor/misc/bag/troll_hide_pack.vox create mode 100644 assets/voxygen/voxel/armor/misc/bag/woven_red_bag.vox diff --git a/assets/common/items/armor/misc/bag/soulkeeper_pure.ron b/assets/common/items/armor/misc/bag/soulkeeper_pure.ron index 33d4bf3cfc..7f5f41154e 100644 --- a/assets/common/items/armor/misc/bag/soulkeeper_pure.ron +++ b/assets/common/items/armor/misc/bag/soulkeeper_pure.ron @@ -10,5 +10,5 @@ ItemDef( ), quality: Legendary, tags: [Bag], - slots: 36, + slots: 45, ) diff --git a/assets/voxygen/item_image_manifest.ron b/assets/voxygen/item_image_manifest.ron index 4f0c0f7809..dac7a550b2 100644 --- a/assets/voxygen/item_image_manifest.ron +++ b/assets/voxygen/item_image_manifest.ron @@ -2396,44 +2396,57 @@ (0.0, 15.0, 0.0), (-75.0, 135.0, 0.0), 3.0, ), // Bags - Armor(Bag("RedFace")): Png ( - "element.items.item_bag_red_face", + Armor(Bag("RedFace")): VoxTrans ( + "voxel.armor.misc.bag.soulkeeper_cursed", + (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, ), - Armor(Bag("BlackHole")): Png ( - "element.items.item_bag_brown_face", + Armor(Bag("BlackHole")): VoxTrans ( + "voxel.armor.misc.bag.admin_black_hole", + (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, ), - Armor(Bag("BlueFace")): Png ( - "element.items.item_bag_blue_face", + Armor(Bag("BlueFace")): VoxTrans ( + "voxel.armor.misc.bag.soulkeeper_pure", + (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, ), - Armor(Bag("PurpleSkull")): Png ( - "element.items.item_bag_skull", + Armor(Bag("PurpleSkull")): VoxTrans ( + "voxel.armor.misc.bag.mindflayer_spellbag", + (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, ), - Armor(Bag("GreenLarge")): Png ( - "element.items.item_bag_green_large", + Armor(Bag("GreenLarge")): VoxTrans ( + "voxel.armor.misc.bag.troll_hide_pack", + (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, ), - Armor(Bag("LeatherLarge")): Png ( - "element.items.item_bag_leather_large", + Armor(Bag("LeatherLarge")): VoxTrans ( + "voxel.armor.misc.bag.reliable_backpack", + (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, ), - Armor(Bag("GreenMid")): Png ( - "element.items.item_bag_green_mid", + Armor(Bag("GreenMid")): VoxTrans ( + "voxel.armor.misc.bag.liana_kit", + (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, ), - Armor(Bag("LeatherSmall")): Png ( - "element.items.item_bag_leather_small", + Armor(Bag("LeatherSmall")): VoxTrans ( + "voxel.armor.misc.bag.tiny_leather_pouch", + (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.8, ), - Armor(Bag("RedLarge")): Png ( - "element.items.item_bag_large", + Armor(Bag("RedLarge")): VoxTrans ( + "voxel.armor.misc.bag.sturdy_red_backpack", + (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, ), - Armor(Bag("RedMed")): Png ( - "element.items.item_bag_med", + Armor(Bag("RedMed")): VoxTrans ( + "voxel.armor.misc.bag.woven_red_bag", + (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, ), - Armor(Bag("RedSmall")): Png ( - "element.items.item_bag_small", + Armor(Bag("RedSmall")): VoxTrans ( + "voxel.armor.misc.bag.knitted_red_pouch", + (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.8, ), - Armor(Bag("RedTiny")): Png ( - "element.items.item_bag_tiny", + Armor(Bag("RedTiny")): VoxTrans ( + "voxel.armor.misc.bag.tiny_red_pouch", + (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.8, ), - Armor(Bag("BluePouch")): Png ( - "element.items.item_bag_blue", + Armor(Bag("BluePouch")): VoxTrans ( + "voxel.armor.misc.bag.heavy_seabag", + (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, ), // Consumables Consumable("common.items.food.apple"): Png( diff --git a/assets/voxygen/voxel/armor/misc/bag/admin_black_hole.vox b/assets/voxygen/voxel/armor/misc/bag/admin_black_hole.vox new file mode 100644 index 0000000000..62913c3ed7 --- /dev/null +++ b/assets/voxygen/voxel/armor/misc/bag/admin_black_hole.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f04ad3197028f8f29a295dad9e571b8b094a74e07ccccad2da58f614d03b613 +size 56896 diff --git a/assets/voxygen/voxel/armor/misc/bag/heavy_seabag.vox b/assets/voxygen/voxel/armor/misc/bag/heavy_seabag.vox new file mode 100644 index 0000000000..d68e6a15d3 --- /dev/null +++ b/assets/voxygen/voxel/armor/misc/bag/heavy_seabag.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97576454730270adb09d1a961d664c4f1c44e9a2d5f5ff8ce4bcc4ced498df92 +size 57656 diff --git a/assets/voxygen/voxel/armor/misc/bag/knitted_red_pouch.vox b/assets/voxygen/voxel/armor/misc/bag/knitted_red_pouch.vox new file mode 100644 index 0000000000..ae0e20abdf --- /dev/null +++ b/assets/voxygen/voxel/armor/misc/bag/knitted_red_pouch.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23ac032ffacd4052a3f7d52eb7e4a1357edd766bcbc73c780b5b70a94fa4f728 +size 57080 diff --git a/assets/voxygen/voxel/armor/misc/bag/liana_kit.vox b/assets/voxygen/voxel/armor/misc/bag/liana_kit.vox new file mode 100644 index 0000000000..2f01692c84 --- /dev/null +++ b/assets/voxygen/voxel/armor/misc/bag/liana_kit.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c1247e9ccb5929c4266af7da659ce3153c61941c92a0e09a2036b5b589d1890 +size 57280 diff --git a/assets/voxygen/voxel/armor/misc/bag/mindflayer_spellbag.vox b/assets/voxygen/voxel/armor/misc/bag/mindflayer_spellbag.vox new file mode 100644 index 0000000000..58bf1351d5 --- /dev/null +++ b/assets/voxygen/voxel/armor/misc/bag/mindflayer_spellbag.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44299b65e67a69b88633e120ba7936c1270647a3d6f3c2dcb09d8f149ec32386 +size 58028 diff --git a/assets/voxygen/voxel/armor/misc/bag/reliable_backpack.vox b/assets/voxygen/voxel/armor/misc/bag/reliable_backpack.vox new file mode 100644 index 0000000000..940179e69a --- /dev/null +++ b/assets/voxygen/voxel/armor/misc/bag/reliable_backpack.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:505f98f878c45634b01ff7cd5409ecf98d689805d96304c3e8a1f91a511a4e50 +size 57840 diff --git a/assets/voxygen/voxel/armor/misc/bag/soulkeeper_cursed.vox b/assets/voxygen/voxel/armor/misc/bag/soulkeeper_cursed.vox new file mode 100644 index 0000000000..7c47302104 --- /dev/null +++ b/assets/voxygen/voxel/armor/misc/bag/soulkeeper_cursed.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e97634415e18a92b66644464aecb78f1c6f8c7e6380be53c70272074ab3ab3c9 +size 57172 diff --git a/assets/voxygen/voxel/armor/misc/bag/soulkeeper_pure.vox b/assets/voxygen/voxel/armor/misc/bag/soulkeeper_pure.vox new file mode 100644 index 0000000000..bdfcfe5186 --- /dev/null +++ b/assets/voxygen/voxel/armor/misc/bag/soulkeeper_pure.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:342018ded82fbb531c896654486188b0a38a9daf7e491051e1c98956998d209d +size 57656 diff --git a/assets/voxygen/voxel/armor/misc/bag/sturdy_red_backpack.vox b/assets/voxygen/voxel/armor/misc/bag/sturdy_red_backpack.vox new file mode 100644 index 0000000000..6ee6f3c0a0 --- /dev/null +++ b/assets/voxygen/voxel/armor/misc/bag/sturdy_red_backpack.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91997a2b429136af021d31c4ccd80c8ff8c440372df5a12eb291c69ae17e0618 +size 57840 diff --git a/assets/voxygen/voxel/armor/misc/bag/tiny_leather_pouch.vox b/assets/voxygen/voxel/armor/misc/bag/tiny_leather_pouch.vox new file mode 100644 index 0000000000..47c3cc23be --- /dev/null +++ b/assets/voxygen/voxel/armor/misc/bag/tiny_leather_pouch.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77e294f5bcd0cfbc98ae0c7abe9c5e83a34fdc7544202d34967e2fccf368dba8 +size 57080 diff --git a/assets/voxygen/voxel/armor/misc/bag/tiny_red_pouch.vox b/assets/voxygen/voxel/armor/misc/bag/tiny_red_pouch.vox new file mode 100644 index 0000000000..d95935ae44 --- /dev/null +++ b/assets/voxygen/voxel/armor/misc/bag/tiny_red_pouch.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f562ee33135a1ef1115f945ddaf9aa199be6af152fa0cbc99504aa3382c8d8e3 +size 56644 diff --git a/assets/voxygen/voxel/armor/misc/bag/troll_hide_pack.vox b/assets/voxygen/voxel/armor/misc/bag/troll_hide_pack.vox new file mode 100644 index 0000000000..58716e817e --- /dev/null +++ b/assets/voxygen/voxel/armor/misc/bag/troll_hide_pack.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d0922e478be76d8b02cb58f143b9c5df3ec4369b271f6c3dee1658a06a4ff39 +size 57720 diff --git a/assets/voxygen/voxel/armor/misc/bag/woven_red_bag.vox b/assets/voxygen/voxel/armor/misc/bag/woven_red_bag.vox new file mode 100644 index 0000000000..38d90817bc --- /dev/null +++ b/assets/voxygen/voxel/armor/misc/bag/woven_red_bag.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1461090b8f895be458d1dd61c549009173c989160ff717a575d3c7bc681a158e +size 57280 From e5408c69b57b948f88dc7de9d76d45f59845e617 Mon Sep 17 00:00:00 2001 From: DoctorKompot Date: Thu, 4 Nov 2021 21:28:00 +0200 Subject: [PATCH 05/26] changed color of MF bag to a darker tone --- assets/voxygen/voxel/armor/misc/bag/mindflayer_spellbag.vox | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/voxygen/voxel/armor/misc/bag/mindflayer_spellbag.vox b/assets/voxygen/voxel/armor/misc/bag/mindflayer_spellbag.vox index 58bf1351d5..e43b8e6bb5 100644 --- a/assets/voxygen/voxel/armor/misc/bag/mindflayer_spellbag.vox +++ b/assets/voxygen/voxel/armor/misc/bag/mindflayer_spellbag.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:44299b65e67a69b88633e120ba7936c1270647a3d6f3c2dcb09d8f149ec32386 +oid sha256:5168b6b5fe305555a8a790be61de99c43e587b65ecded61b692b358017798b2f size 58028 From ac15e556f56f85b9779120a3be78b69fb86b19a9 Mon Sep 17 00:00:00 2001 From: DoctorKompot Date: Fri, 12 Nov 2021 17:40:59 +0200 Subject: [PATCH 06/26] added vox files for apple, coconut, collar, mushroom curry and admin tabard, update item image manifest accordingly --- assets/voxygen/item_image_manifest.ron | 56 ++++++++++--------- assets/voxygen/voxel/armor/tabard_admin.vox | 3 + assets/voxygen/voxel/object/apple.vox | 3 + assets/voxygen/voxel/object/coconut.vox | 3 + assets/voxygen/voxel/object/collar.vox | 3 + .../voxygen/voxel/object/mushroom_curry.vox | 3 + 6 files changed, 46 insertions(+), 25 deletions(-) create mode 100644 assets/voxygen/voxel/armor/tabard_admin.vox create mode 100644 assets/voxygen/voxel/object/apple.vox create mode 100644 assets/voxygen/voxel/object/coconut.vox create mode 100644 assets/voxygen/voxel/object/collar.vox create mode 100644 assets/voxygen/voxel/object/mushroom_curry.vox diff --git a/assets/voxygen/item_image_manifest.ron b/assets/voxygen/item_image_manifest.ron index dac7a550b2..3c1699250f 100644 --- a/assets/voxygen/item_image_manifest.ron +++ b/assets/voxygen/item_image_manifest.ron @@ -1108,8 +1108,9 @@ "voxel.object.v-coin", (0.0, 0.0, 0.0), (-10.0, 15.0, 0.0), 0.8, ), - Utility(Collar): Png( - "element.items.collar", + Utility(Collar): VoxTrans( + "voxel.object.collar", + (0.1, 0.0, 0.0), (-60.0, 20.0, 10.0), 0.9, ), // Armor // Starter Parts @@ -2379,8 +2380,9 @@ ), // Tabards - Armor(Tabard("Admin")): Png( - "element.items.tabard_admin", + Armor(Tabard("Admin")): VoxTrans( + "voxel.armor.tabard_admin", + (0.0, 0.2, 0.0), (-70.0, 20.0, 10.0), 0.9, ), // Heads Armor(Head("Leather")): VoxTrans( @@ -2396,64 +2398,66 @@ (0.0, 15.0, 0.0), (-75.0, 135.0, 0.0), 3.0, ), // Bags - Armor(Bag("RedFace")): VoxTrans ( + Armor(Bag("RedFace")): VoxTrans( "voxel.armor.misc.bag.soulkeeper_cursed", (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, ), - Armor(Bag("BlackHole")): VoxTrans ( + Armor(Bag("BlackHole")): VoxTrans( "voxel.armor.misc.bag.admin_black_hole", (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, ), - Armor(Bag("BlueFace")): VoxTrans ( + Armor(Bag("BlueFace")): VoxTrans( "voxel.armor.misc.bag.soulkeeper_pure", (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, ), - Armor(Bag("PurpleSkull")): VoxTrans ( + Armor(Bag("PurpleSkull")): VoxTrans( "voxel.armor.misc.bag.mindflayer_spellbag", (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, ), - Armor(Bag("GreenLarge")): VoxTrans ( + Armor(Bag("GreenLarge")): VoxTrans( "voxel.armor.misc.bag.troll_hide_pack", (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, ), - Armor(Bag("LeatherLarge")): VoxTrans ( + Armor(Bag("LeatherLarge")): VoxTrans( "voxel.armor.misc.bag.reliable_backpack", (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, ), - Armor(Bag("GreenMid")): VoxTrans ( + Armor(Bag("GreenMid")): VoxTrans( "voxel.armor.misc.bag.liana_kit", (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, ), - Armor(Bag("LeatherSmall")): VoxTrans ( + Armor(Bag("LeatherSmall")): VoxTrans( "voxel.armor.misc.bag.tiny_leather_pouch", (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.8, ), - Armor(Bag("RedLarge")): VoxTrans ( + Armor(Bag("RedLarge")): VoxTrans( "voxel.armor.misc.bag.sturdy_red_backpack", (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, ), - Armor(Bag("RedMed")): VoxTrans ( + Armor(Bag("RedMed")): VoxTrans( "voxel.armor.misc.bag.woven_red_bag", (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, ), - Armor(Bag("RedSmall")): VoxTrans ( + Armor(Bag("RedSmall")): VoxTrans( "voxel.armor.misc.bag.knitted_red_pouch", (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.8, ), - Armor(Bag("RedTiny")): VoxTrans ( + Armor(Bag("RedTiny")): VoxTrans( "voxel.armor.misc.bag.tiny_red_pouch", (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.8, ), - Armor(Bag("BluePouch")): VoxTrans ( + Armor(Bag("BluePouch")): VoxTrans( "voxel.armor.misc.bag.heavy_seabag", (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, ), // Consumables - Consumable("common.items.food.apple"): Png( - "element.items.item_apple", + Consumable("common.items.food.apple"): VoxTrans( + "voxel.object.apple", + (0.0, 0.5, 0.0), (-60.0, 30.0, 20.0), 0.9, ), - Consumable("common.items.food.coconut"): Png( - "element.items.item_coconut", + Consumable("common.items.food.coconut"): VoxTrans( + "voxel.object.coconut", + (0.0, 0.5, 0.0), (-55.0, 30.0, 20.0), 0.9, ), Consumable("common.items.food.cactus_colada"): VoxTrans( "voxel.object.cactus_drink", @@ -2475,8 +2479,9 @@ "voxel.object.potion_red", (0.0, 0.0, 0.0), (-50.0, 30.0, 20.0), 0.9, ), - Consumable("common.items.food.cheese"): Png( - "element.items.item_cheese", + Consumable("common.items.food.cheese"): VoxTrans( + "voxel.object.cheese-0", + (0.0, 0.0, 0.0), (-60.0, -10.0, 0.0), 0.8, ), Consumable("common.items.food.blue_cheese"): VoxTrans( "voxel.object.blue_cheese", @@ -2494,8 +2499,9 @@ "voxel.sprite.velorite.velorite_1", (0.0, 0.0, 0.0), (-50.0, 40.0, 20.0), 0.8, ), - Consumable("common.items.food.apple_mushroom_curry"): Png( - "element.items.item_apple_curry", + Consumable("common.items.food.apple_mushroom_curry"): VoxTrans( + "voxel.object.mushroom_curry", + (-0.3, 2.0, 0.0), (-50.0, 20.0, 17.0), 0.9, ), Consumable("common.items.food.spore_corruption"): VoxTrans( "voxel.sprite.spore.corruption_spore", diff --git a/assets/voxygen/voxel/armor/tabard_admin.vox b/assets/voxygen/voxel/armor/tabard_admin.vox new file mode 100644 index 0000000000..ecbfbb7c2e --- /dev/null +++ b/assets/voxygen/voxel/armor/tabard_admin.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc5fd855c828953085b82fe02643dbba8e3cf2987be3e0ce29c0cf8a725a3f13 +size 57972 diff --git a/assets/voxygen/voxel/object/apple.vox b/assets/voxygen/voxel/object/apple.vox new file mode 100644 index 0000000000..4e16d1ab70 --- /dev/null +++ b/assets/voxygen/voxel/object/apple.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7616be8382963a21f068f72e2c4c3034bd33f8c40bb6c544156eda6512405301 +size 3192 diff --git a/assets/voxygen/voxel/object/coconut.vox b/assets/voxygen/voxel/object/coconut.vox new file mode 100644 index 0000000000..bb4bde1f60 --- /dev/null +++ b/assets/voxygen/voxel/object/coconut.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:acd5bed0e9c36399e7eeefb0682df64667f9441a39aaddb6dd0fb047e590b3ab +size 56259 diff --git a/assets/voxygen/voxel/object/collar.vox b/assets/voxygen/voxel/object/collar.vox new file mode 100644 index 0000000000..256c04220b --- /dev/null +++ b/assets/voxygen/voxel/object/collar.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fad24f6450d61d5949aa64a12d35a2a2d5d7adcb1e3097b4dc5e514efc246e1b +size 55936 diff --git a/assets/voxygen/voxel/object/mushroom_curry.vox b/assets/voxygen/voxel/object/mushroom_curry.vox new file mode 100644 index 0000000000..bf3f039bde --- /dev/null +++ b/assets/voxygen/voxel/object/mushroom_curry.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb91306dec47543cea8e5b78dfa0eabe3a5fbcf170953e71552f1c4aa46d9dbb +size 56956 From daad02ae6090902f45599136a08467c3bb4695e4 Mon Sep 17 00:00:00 2001 From: DoctorKompot Date: Fri, 12 Nov 2021 17:41:36 +0200 Subject: [PATCH 07/26] changed the index from the highlight color of these necklaces, since the voxels were invisible in-game --- assets/voxygen/voxel/armor/misc/neck/amethyst.vox | 4 ++-- assets/voxygen/voxel/armor/misc/neck/ankh_of_life.vox | 4 ++-- assets/voxygen/voxel/armor/misc/neck/diamond.vox | 4 ++-- assets/voxygen/voxel/armor/misc/neck/emerald.vox | 4 ++-- assets/voxygen/voxel/armor/misc/neck/fang.vox | 4 ++-- assets/voxygen/voxel/armor/misc/neck/gold.vox | 4 ++-- assets/voxygen/voxel/armor/misc/neck/ruby.vox | 4 ++-- assets/voxygen/voxel/armor/misc/neck/sapphire.vox | 4 ++-- assets/voxygen/voxel/armor/misc/neck/topaz.vox | 4 ++-- 9 files changed, 18 insertions(+), 18 deletions(-) diff --git a/assets/voxygen/voxel/armor/misc/neck/amethyst.vox b/assets/voxygen/voxel/armor/misc/neck/amethyst.vox index 79d481190e..6b4f9417df 100644 --- a/assets/voxygen/voxel/armor/misc/neck/amethyst.vox +++ b/assets/voxygen/voxel/armor/misc/neck/amethyst.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5282f39e7373906c04ffebde3cfe44904671bae528f7165cd6f610f95c29300e -size 1272 +oid sha256:b7d0c04b07cb5ef68a9d928e81038c741bdd636ab846a7a318cdc6cc01967619 +size 55755 diff --git a/assets/voxygen/voxel/armor/misc/neck/ankh_of_life.vox b/assets/voxygen/voxel/armor/misc/neck/ankh_of_life.vox index bfb819bada..040508702f 100644 --- a/assets/voxygen/voxel/armor/misc/neck/ankh_of_life.vox +++ b/assets/voxygen/voxel/armor/misc/neck/ankh_of_life.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7d78ae24d245cc38e1d877e54b96a819feab3cb7310108eb398b91ed43895b31 -size 1244 +oid sha256:c47ac548d334615d5803ff6d4af43a207824cfb94282f93fa7554fbae1c025f5 +size 55727 diff --git a/assets/voxygen/voxel/armor/misc/neck/diamond.vox b/assets/voxygen/voxel/armor/misc/neck/diamond.vox index 2fc83806da..5d2471a325 100644 --- a/assets/voxygen/voxel/armor/misc/neck/diamond.vox +++ b/assets/voxygen/voxel/armor/misc/neck/diamond.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0a6e84f5596cd06bef08ecfd8091e36e3a996de14d2c029ca19edfdec7634c67 -size 1360 +oid sha256:df4427aff6337a502e4ba3f35db38bec8dcb2acb891abb35b11d1c287e1bbb2b +size 55843 diff --git a/assets/voxygen/voxel/armor/misc/neck/emerald.vox b/assets/voxygen/voxel/armor/misc/neck/emerald.vox index 6eee3ce8ae..e120860645 100644 --- a/assets/voxygen/voxel/armor/misc/neck/emerald.vox +++ b/assets/voxygen/voxel/armor/misc/neck/emerald.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f658b07d8a587211349259d4bf762e2a1b325a621d4d4b99eec9445c8ff335c1 -size 1320 +oid sha256:5742d0c4d40fd80140dd77338d21665dd341d31be7f6adeae8118c2f207b958f +size 55803 diff --git a/assets/voxygen/voxel/armor/misc/neck/fang.vox b/assets/voxygen/voxel/armor/misc/neck/fang.vox index b7566b4435..66612f3225 100644 --- a/assets/voxygen/voxel/armor/misc/neck/fang.vox +++ b/assets/voxygen/voxel/armor/misc/neck/fang.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4064f219ea313ae417b5082b38786f611a8f00fba800e50e228d8fbbf38f7deb -size 1264 +oid sha256:501b9b01e5d4b5fc7683d6766678c0f8fc54573a302e02fbb02d32f897e23dc3 +size 55747 diff --git a/assets/voxygen/voxel/armor/misc/neck/gold.vox b/assets/voxygen/voxel/armor/misc/neck/gold.vox index 418a1d6435..0c237e0b60 100644 --- a/assets/voxygen/voxel/armor/misc/neck/gold.vox +++ b/assets/voxygen/voxel/armor/misc/neck/gold.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7c48e2bf114189927cd723d39236abd32f94e8c924fc2fcaa52bb581e96e3b07 -size 1316 +oid sha256:5d7e551d331650bf4e2e02ca191d5387b93befec144b9e17eae12897af4b0ec3 +size 55799 diff --git a/assets/voxygen/voxel/armor/misc/neck/ruby.vox b/assets/voxygen/voxel/armor/misc/neck/ruby.vox index f7d1ca8b81..01dd90d509 100644 --- a/assets/voxygen/voxel/armor/misc/neck/ruby.vox +++ b/assets/voxygen/voxel/armor/misc/neck/ruby.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2a1bce574490fd426ce3575b770fd12dcd52a41ce745249bd5be4257cd97eebb -size 1360 +oid sha256:f3b57f5717bb5171cf2a723cb9e511d645b5ee4f37f6b8ebe7ca084a080dc540 +size 55843 diff --git a/assets/voxygen/voxel/armor/misc/neck/sapphire.vox b/assets/voxygen/voxel/armor/misc/neck/sapphire.vox index 2b2003540f..2d3b6132fe 100644 --- a/assets/voxygen/voxel/armor/misc/neck/sapphire.vox +++ b/assets/voxygen/voxel/armor/misc/neck/sapphire.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:68c790a4e3a5b5a24e56e8654caded9917ac8a1d99af343b523c55ef3a64033d -size 1308 +oid sha256:e3bb581bb830b260f33d7332ffec6d0b83d8687c1aeee8b1c1b74b51bdb61b86 +size 55791 diff --git a/assets/voxygen/voxel/armor/misc/neck/topaz.vox b/assets/voxygen/voxel/armor/misc/neck/topaz.vox index 46e9b60b27..2ab1add029 100644 --- a/assets/voxygen/voxel/armor/misc/neck/topaz.vox +++ b/assets/voxygen/voxel/armor/misc/neck/topaz.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0039a2a2011a6af0584a2d2b154b92c99a61d0ada87f701e9e13e2095c08940e -size 1336 +oid sha256:ed521a2447ab514f92ac503abc297fad77dd05677d63661c1451d824dc5e9f16 +size 55819 From 84b85d6ae582da28de78381102222acec4d84405 Mon Sep 17 00:00:00 2001 From: DoctorKompot Date: Sat, 20 Nov 2021 17:31:01 +0200 Subject: [PATCH 08/26] fixed coconut, added apple stick --- assets/voxygen/item_image_manifest.ron | 5 +++-- assets/voxygen/voxel/object/apple_stick.vox | 3 +++ assets/voxygen/voxel/object/coconut.vox | 4 ++-- 3 files changed, 8 insertions(+), 4 deletions(-) create mode 100644 assets/voxygen/voxel/object/apple_stick.vox diff --git a/assets/voxygen/item_image_manifest.ron b/assets/voxygen/item_image_manifest.ron index 3c1699250f..96d4f5b43d 100644 --- a/assets/voxygen/item_image_manifest.ron +++ b/assets/voxygen/item_image_manifest.ron @@ -2507,8 +2507,9 @@ "voxel.sprite.spore.corruption_spore", (0.0, 0.0, 0.0), (-30.0, 30.0, 20.0), 0.8, ), - Consumable("common.items.food.apple_stick"): Png( - "element.items.item_apple_stick", + Consumable("common.items.food.apple_stick"): VoxTrans( + "voxel.object.apple_stick", + (0.3, 0.0, 0.0), (-55.0, 60.0, 10.0), 1.0, ), Consumable("common.items.food.mushroom_stick"): Png( "element.items.item_shroom_stick", diff --git a/assets/voxygen/voxel/object/apple_stick.vox b/assets/voxygen/voxel/object/apple_stick.vox new file mode 100644 index 0000000000..6bc3ae90a3 --- /dev/null +++ b/assets/voxygen/voxel/object/apple_stick.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b5ac228f61c68873052b175479d2e859ade831fc1f87d54e46e6b348b4975574 +size 56344 diff --git a/assets/voxygen/voxel/object/coconut.vox b/assets/voxygen/voxel/object/coconut.vox index bb4bde1f60..9274e97fe2 100644 --- a/assets/voxygen/voxel/object/coconut.vox +++ b/assets/voxygen/voxel/object/coconut.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:acd5bed0e9c36399e7eeefb0682df64667f9441a39aaddb6dd0fb047e590b3ab -size 56259 +oid sha256:233595deb8c6c6b0827a23de6e3723b173e771f91b177afd91b9edc838538617 +size 56275 From 0242552492ee38da37badda349828f0883a00fa5 Mon Sep 17 00:00:00 2001 From: DoctorKompot Date: Sat, 20 Nov 2021 19:51:42 +0200 Subject: [PATCH 09/26] added mushroom stick, changed apple and apple stick models, made phoenix feather legendary rarity --- .../animal_misc/phoenix_feather.ron | 2 +- assets/voxygen/item_image_manifest.ron | 25 ++++++++++--------- assets/voxygen/voxel/object/apple.vox | 4 +-- assets/voxygen/voxel/object/apple_stick.vox | 4 +-- .../voxygen/voxel/object/mushroom_stick.vox | 3 +++ 5 files changed, 21 insertions(+), 17 deletions(-) create mode 100644 assets/voxygen/voxel/object/mushroom_stick.vox diff --git a/assets/common/items/crafting_ing/animal_misc/phoenix_feather.ron b/assets/common/items/crafting_ing/animal_misc/phoenix_feather.ron index bf6a1fcba1..b7d662106a 100644 --- a/assets/common/items/crafting_ing/animal_misc/phoenix_feather.ron +++ b/assets/common/items/crafting_ing/animal_misc/phoenix_feather.ron @@ -4,6 +4,6 @@ ItemDef( kind: Ingredient( kind: "PhoenixFeather", ), - quality: Common, + quality: Legendary, tags: [], ) \ No newline at end of file diff --git a/assets/voxygen/item_image_manifest.ron b/assets/voxygen/item_image_manifest.ron index 96d4f5b43d..7169f629bd 100644 --- a/assets/voxygen/item_image_manifest.ron +++ b/assets/voxygen/item_image_manifest.ron @@ -2453,7 +2453,7 @@ // Consumables Consumable("common.items.food.apple"): VoxTrans( "voxel.object.apple", - (0.0, 0.5, 0.0), (-60.0, 30.0, 20.0), 0.9, + (1.0, 0.5, 0.0), (-60.0, 30.0, 20.0), 0.9, ), Consumable("common.items.food.coconut"): VoxTrans( "voxel.object.coconut", @@ -2509,10 +2509,11 @@ ), Consumable("common.items.food.apple_stick"): VoxTrans( "voxel.object.apple_stick", - (0.3, 0.0, 0.0), (-55.0, 60.0, 10.0), 1.0, + (0.3, 0.0, 0.0), (-55.0, 60.0, 5.0), 1.0, ), - Consumable("common.items.food.mushroom_stick"): Png( - "element.items.item_shroom_stick", + Consumable("common.items.food.mushroom_stick"): VoxTrans( + "voxel.object.mushroom_stick", + (0.3, 0.0, 0.0), (-55.0, 60.0, 5.0), 1.0, ), Consumable("common.items.food.sunflower_icetea"): Png( "element.items.item_sunflower_tea", @@ -2531,11 +2532,11 @@ ), Consumable("common.items.food.meat.fish_raw"): VoxTrans( "voxel.sprite.food.meat.fish_raw", - (0.0, 0.0, 0.0), (-20.0, 10.0, 20.0), 0.9, + (0.1, 0.0, 0.0), (-20.0, 10.0, 20.0), 0.9, ), Consumable("common.items.food.meat.fish_cooked"): VoxTrans( "voxel.sprite.food.meat.fish_cooked", - (0.0, 0.0, 0.0), (-20.0, 10.0, 20.0), 0.9, + (0.1, 0.0, 0.0), (-20.0, 10.0, 20.0), 0.9, ), Consumable("common.items.food.meat.bird_raw"): VoxTrans( "voxel.sprite.food.meat.bird_raw", @@ -2555,27 +2556,27 @@ ), Consumable("common.items.food.meat.beast_small_raw"): VoxTrans( "voxel.sprite.food.meat.beast_small_raw", - (0.0, 0.0, 0.0), (-50.0, 10.0, 0.0), 1.0, + (1.1, 0.0, 0.0), (-50.0, 30.0, 0.0), 1.0, ), Consumable("common.items.food.meat.beast_small_cooked"): VoxTrans( "voxel.sprite.food.meat.beast_small_cooked", - (0.0, 0.0, 0.0), (-50.0, 20.0, 0.0), 1.0, + (1.1, 0.0, 0.0), (-50.0, 30.0, 0.0), 1.0, ), Consumable("common.items.food.meat.tough_raw"): VoxTrans( "voxel.sprite.food.meat.tough_raw", - (0.0, 0.0, 0.0), (-50.0, 10.0, 0.0), 1.0, + (0.0, 0.0, 0.0), (-50.0, 10.0, 0.0), 0.9, ), Consumable("common.items.food.meat.tough_cooked"): VoxTrans( "voxel.sprite.food.meat.tough_cooked", - (0.0, 0.0, 0.0), (-50.0, 20.0, 0.0), 1.0, + (0.0, 0.0, 0.0), (-50.0, 20.0, 0.0), 0.9, ), Consumable("common.items.food.meat.beast_large_raw"): VoxTrans( "voxel.sprite.food.meat.beast_large_raw", - (-1.0, 0.0, 0.0), (-80.0, 40.0, 0.0), 0.8, + (0.4, 0.0, 0.0), (-60.0, 35.0, 0.0), 0.9, ), Consumable("common.items.food.meat.beast_large_cooked"): VoxTrans( "voxel.sprite.food.meat.beast_large_cooked", - (-1.0, 0.0, 0.0), (-80.0, 40.0, 0.0), 0.8, + (0.4, 0.0, 0.0), (-60.0, 35.0, 0.0), 0.9, ), Consumable("common.items.food.plainsalad"): VoxTrans( "voxel.sprite.food.salad_plain", diff --git a/assets/voxygen/voxel/object/apple.vox b/assets/voxygen/voxel/object/apple.vox index 4e16d1ab70..a0db25897d 100644 --- a/assets/voxygen/voxel/object/apple.vox +++ b/assets/voxygen/voxel/object/apple.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7616be8382963a21f068f72e2c4c3034bd33f8c40bb6c544156eda6512405301 -size 3192 +oid sha256:c2febfe4a57a84dbb7665e2a7eef58afa77cd363c24bab49677a5c04b92e33a1 +size 56891 diff --git a/assets/voxygen/voxel/object/apple_stick.vox b/assets/voxygen/voxel/object/apple_stick.vox index 6bc3ae90a3..3115eeca20 100644 --- a/assets/voxygen/voxel/object/apple_stick.vox +++ b/assets/voxygen/voxel/object/apple_stick.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b5ac228f61c68873052b175479d2e859ade831fc1f87d54e46e6b348b4975574 -size 56344 +oid sha256:b8bea68d3344e315a425a1825f2acda565f1cf957ba6ac45656619e94ec2f64e +size 56328 diff --git a/assets/voxygen/voxel/object/mushroom_stick.vox b/assets/voxygen/voxel/object/mushroom_stick.vox new file mode 100644 index 0000000000..643ef3d6eb --- /dev/null +++ b/assets/voxygen/voxel/object/mushroom_stick.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86540b0142786efe8e59ddedba724474f0855babfd58be25a9fedeb2307f67b6 +size 56268 From 7fb9ac121ea5476b69137cc38a701ef189a81646 Mon Sep 17 00:00:00 2001 From: DoctorKompot Date: Sun, 21 Nov 2021 20:50:56 +0200 Subject: [PATCH 10/26] updated item models with the ones provided by Gemu, (bags and food), some leather items, and honey, then updated item_image_manifest and sprite_manifest accordingly --- assets/voxygen/item_image_manifest.ron | 19 ++++++++++--------- .../voxel/armor/misc/bag/admin_black_hole.vox | 4 ++-- .../voxel/armor/misc/bag/heavy_seabag.vox | 4 ++-- .../voxel/armor/misc/bag/liana_kit.vox | 4 ++-- .../armor/misc/bag/mindflayer_spellbag.vox | 4 ++-- .../armor/misc/bag/reliable_backpack.vox | 4 ++-- .../armor/misc/bag/soulkeeper_cursed.vox | 2 +- .../voxel/armor/misc/bag/soulkeeper_pure.vox | 2 +- .../armor/misc/bag/sturdy_red_backpack.vox | 4 ++-- .../armor/misc/bag/tiny_leather_pouch.vox | 4 ++-- .../voxel/armor/misc/bag/tiny_red_pouch.vox | 4 ++-- .../voxel/armor/misc/bag/troll_hide_pack.vox | 4 ++-- .../voxel/armor/misc/bag/woven_red_bag.vox | 4 ++-- assets/voxygen/voxel/object/apple.vox | 4 ++-- assets/voxygen/voxel/object/apple_half.vox | 3 +++ assets/voxygen/voxel/object/apple_stick.vox | 4 ++-- assets/voxygen/voxel/object/coconut.vox | 4 ++-- assets/voxygen/voxel/object/coconut_half.vox | 3 +++ assets/voxygen/voxel/object/honey.vox | 3 +++ .../voxygen/voxel/object/mushroom_stick.vox | 4 ++-- .../crafting_ing/leather/leather_strips.vox | 4 ++-- .../crafting_ing/leather/simple_leather.vox | 4 ++-- .../crafting_ing/leather/thick_leather.vox | 4 ++-- assets/voxygen/voxel/sprite/fruit/apple.vox | 4 ++-- .../voxygen/voxel/sprite/fruit/apple_half.vox | 4 ++-- assets/voxygen/voxel/sprite/fruit/coconut.vox | 4 ++-- assets/voxygen/voxel/sprite_manifest.ron | 4 ++-- 27 files changed, 63 insertions(+), 53 deletions(-) create mode 100644 assets/voxygen/voxel/object/apple_half.vox create mode 100644 assets/voxygen/voxel/object/coconut_half.vox create mode 100644 assets/voxygen/voxel/object/honey.vox diff --git a/assets/voxygen/item_image_manifest.ron b/assets/voxygen/item_image_manifest.ron index 7169f629bd..b0050703b4 100644 --- a/assets/voxygen/item_image_manifest.ron +++ b/assets/voxygen/item_image_manifest.ron @@ -2424,7 +2424,7 @@ ), Armor(Bag("GreenMid")): VoxTrans( "voxel.armor.misc.bag.liana_kit", - (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, + (0.5, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, ), Armor(Bag("LeatherSmall")): VoxTrans( "voxel.armor.misc.bag.tiny_leather_pouch", @@ -2436,11 +2436,11 @@ ), Armor(Bag("RedMed")): VoxTrans( "voxel.armor.misc.bag.woven_red_bag", - (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, + (0.5, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, ), Armor(Bag("RedSmall")): VoxTrans( "voxel.armor.misc.bag.knitted_red_pouch", - (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.8, + (0.3, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.8, ), Armor(Bag("RedTiny")): VoxTrans( "voxel.armor.misc.bag.tiny_red_pouch", @@ -2452,12 +2452,12 @@ ), // Consumables Consumable("common.items.food.apple"): VoxTrans( - "voxel.object.apple", - (1.0, 0.5, 0.0), (-60.0, 30.0, 20.0), 0.9, + "voxel.object.apple_half", + (-0.5, 0.5, 0.0), (-60.0, -45.0, -15.0), 0.9, ), Consumable("common.items.food.coconut"): VoxTrans( - "voxel.object.coconut", - (0.0, 0.5, 0.0), (-55.0, 30.0, 20.0), 0.9, + "voxel.object.coconut_half", + (0.1, -0.5, 0.0), (-55.0, 30.0, 20.0), 0.8, ), Consumable("common.items.food.cactus_colada"): VoxTrans( "voxel.object.cactus_drink", @@ -2872,8 +2872,9 @@ "voxel.sprite.mineral.ore.coal", (0.0, 0.0, 0.0), (-60.0, 30.0, 15.0), 0.9, ), - Ingredient("Honey"): Png( - "element.items.item_honey", + Ingredient("Honey"): VoxTrans( + "voxel.object.honey", + (1.0, 0.0, 0.0), (-20.0, 20.0, -30.0), 0.9, ), Ingredient("MortarPestle"): Png( "element.items.item_mortarpestlecoco", diff --git a/assets/voxygen/voxel/armor/misc/bag/admin_black_hole.vox b/assets/voxygen/voxel/armor/misc/bag/admin_black_hole.vox index 62913c3ed7..ca64f28364 100644 --- a/assets/voxygen/voxel/armor/misc/bag/admin_black_hole.vox +++ b/assets/voxygen/voxel/armor/misc/bag/admin_black_hole.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8f04ad3197028f8f29a295dad9e571b8b094a74e07ccccad2da58f614d03b613 -size 56896 +oid sha256:aee596d024979bb3e69fcb30d11603776494ee9fdd4b22fe881145643dd631c5 +size 2412 diff --git a/assets/voxygen/voxel/armor/misc/bag/heavy_seabag.vox b/assets/voxygen/voxel/armor/misc/bag/heavy_seabag.vox index d68e6a15d3..737070a813 100644 --- a/assets/voxygen/voxel/armor/misc/bag/heavy_seabag.vox +++ b/assets/voxygen/voxel/armor/misc/bag/heavy_seabag.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:97576454730270adb09d1a961d664c4f1c44e9a2d5f5ff8ce4bcc4ced498df92 -size 57656 +oid sha256:19f9f5f4326a951da00d7fd3b3c88c8779dbce835baff2ff445f5ac4e65bc4de +size 3196 diff --git a/assets/voxygen/voxel/armor/misc/bag/liana_kit.vox b/assets/voxygen/voxel/armor/misc/bag/liana_kit.vox index 2f01692c84..aeea642d3a 100644 --- a/assets/voxygen/voxel/armor/misc/bag/liana_kit.vox +++ b/assets/voxygen/voxel/armor/misc/bag/liana_kit.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1c1247e9ccb5929c4266af7da659ce3153c61941c92a0e09a2036b5b589d1890 -size 57280 +oid sha256:e8c84bb6c8e67c0a929e25a42be24c58920bbf10daf83297a6b3ccba8dad34a0 +size 2796 diff --git a/assets/voxygen/voxel/armor/misc/bag/mindflayer_spellbag.vox b/assets/voxygen/voxel/armor/misc/bag/mindflayer_spellbag.vox index e43b8e6bb5..6fce887481 100644 --- a/assets/voxygen/voxel/armor/misc/bag/mindflayer_spellbag.vox +++ b/assets/voxygen/voxel/armor/misc/bag/mindflayer_spellbag.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5168b6b5fe305555a8a790be61de99c43e587b65ecded61b692b358017798b2f -size 58028 +oid sha256:fa4d3cc1005415e3d2b1d141c733d08c6e209afc1d9f07936b95b2abc376a243 +size 3580 diff --git a/assets/voxygen/voxel/armor/misc/bag/reliable_backpack.vox b/assets/voxygen/voxel/armor/misc/bag/reliable_backpack.vox index 940179e69a..3318faa40f 100644 --- a/assets/voxygen/voxel/armor/misc/bag/reliable_backpack.vox +++ b/assets/voxygen/voxel/armor/misc/bag/reliable_backpack.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:505f98f878c45634b01ff7cd5409ecf98d689805d96304c3e8a1f91a511a4e50 -size 57840 +oid sha256:b8090fc16ece67be7cbef910e827ab31389f976f44341a98f5fea63011e6caae +size 3420 diff --git a/assets/voxygen/voxel/armor/misc/bag/soulkeeper_cursed.vox b/assets/voxygen/voxel/armor/misc/bag/soulkeeper_cursed.vox index 7c47302104..2582d5e099 100644 --- a/assets/voxygen/voxel/armor/misc/bag/soulkeeper_cursed.vox +++ b/assets/voxygen/voxel/armor/misc/bag/soulkeeper_cursed.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e97634415e18a92b66644464aecb78f1c6f8c7e6380be53c70272074ab3ab3c9 +oid sha256:b8c3b9fd20071096c8c663925c1f0b0b382dc6af2158194ad7b6f68ddf4f6238 size 57172 diff --git a/assets/voxygen/voxel/armor/misc/bag/soulkeeper_pure.vox b/assets/voxygen/voxel/armor/misc/bag/soulkeeper_pure.vox index bdfcfe5186..cff282ef10 100644 --- a/assets/voxygen/voxel/armor/misc/bag/soulkeeper_pure.vox +++ b/assets/voxygen/voxel/armor/misc/bag/soulkeeper_pure.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:342018ded82fbb531c896654486188b0a38a9daf7e491051e1c98956998d209d +oid sha256:72b96603284f80706121740c62c33d4fb549b4f03818f4149a39f1f6a0e6d955 size 57656 diff --git a/assets/voxygen/voxel/armor/misc/bag/sturdy_red_backpack.vox b/assets/voxygen/voxel/armor/misc/bag/sturdy_red_backpack.vox index 6ee6f3c0a0..47dc2fd68b 100644 --- a/assets/voxygen/voxel/armor/misc/bag/sturdy_red_backpack.vox +++ b/assets/voxygen/voxel/armor/misc/bag/sturdy_red_backpack.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:91997a2b429136af021d31c4ccd80c8ff8c440372df5a12eb291c69ae17e0618 -size 57840 +oid sha256:9af0708925455360ecd6cbbc861e4f1d35af68a7346c0c2be8ac587eca0236b8 +size 3412 diff --git a/assets/voxygen/voxel/armor/misc/bag/tiny_leather_pouch.vox b/assets/voxygen/voxel/armor/misc/bag/tiny_leather_pouch.vox index 47c3cc23be..d657df6bf1 100644 --- a/assets/voxygen/voxel/armor/misc/bag/tiny_leather_pouch.vox +++ b/assets/voxygen/voxel/armor/misc/bag/tiny_leather_pouch.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:77e294f5bcd0cfbc98ae0c7abe9c5e83a34fdc7544202d34967e2fccf368dba8 -size 57080 +oid sha256:ba8c5df2dc448f9cc368829551a34ef18b36d9cad8c5525e8b06fb58b44b8170 +size 2596 diff --git a/assets/voxygen/voxel/armor/misc/bag/tiny_red_pouch.vox b/assets/voxygen/voxel/armor/misc/bag/tiny_red_pouch.vox index d95935ae44..33cd1effc9 100644 --- a/assets/voxygen/voxel/armor/misc/bag/tiny_red_pouch.vox +++ b/assets/voxygen/voxel/armor/misc/bag/tiny_red_pouch.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f562ee33135a1ef1115f945ddaf9aa199be6af152fa0cbc99504aa3382c8d8e3 -size 56644 +oid sha256:bc8d7b40ca4953975e1be176a8ebb7b93ef8323f62c85aa014a4d05056414914 +size 2112 diff --git a/assets/voxygen/voxel/armor/misc/bag/troll_hide_pack.vox b/assets/voxygen/voxel/armor/misc/bag/troll_hide_pack.vox index 58716e817e..abb7ea20a5 100644 --- a/assets/voxygen/voxel/armor/misc/bag/troll_hide_pack.vox +++ b/assets/voxygen/voxel/armor/misc/bag/troll_hide_pack.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9d0922e478be76d8b02cb58f143b9c5df3ec4369b271f6c3dee1658a06a4ff39 -size 57720 +oid sha256:a063e461056b3fde68891307a3aa21333bb389abeefe693382428e566710b2d8 +size 3236 diff --git a/assets/voxygen/voxel/armor/misc/bag/woven_red_bag.vox b/assets/voxygen/voxel/armor/misc/bag/woven_red_bag.vox index 38d90817bc..01259da41d 100644 --- a/assets/voxygen/voxel/armor/misc/bag/woven_red_bag.vox +++ b/assets/voxygen/voxel/armor/misc/bag/woven_red_bag.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1461090b8f895be458d1dd61c549009173c989160ff717a575d3c7bc681a158e -size 57280 +oid sha256:b2203989f08f62f7475f2ef7291db8072c852f48415e298cd17a911728b0eb56 +size 2796 diff --git a/assets/voxygen/voxel/object/apple.vox b/assets/voxygen/voxel/object/apple.vox index a0db25897d..844fbbc127 100644 --- a/assets/voxygen/voxel/object/apple.vox +++ b/assets/voxygen/voxel/object/apple.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c2febfe4a57a84dbb7665e2a7eef58afa77cd363c24bab49677a5c04b92e33a1 -size 56891 +oid sha256:caba20917e8a02da2af093ff1385059b9837f94cc373e20b0d5e74d740476cf6 +size 2000 diff --git a/assets/voxygen/voxel/object/apple_half.vox b/assets/voxygen/voxel/object/apple_half.vox new file mode 100644 index 0000000000..8e07644816 --- /dev/null +++ b/assets/voxygen/voxel/object/apple_half.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7cd5b21bfdc8f653b13a9733870c61a30c59d6d66173d0930a050ec540369b04 +size 1640 diff --git a/assets/voxygen/voxel/object/apple_stick.vox b/assets/voxygen/voxel/object/apple_stick.vox index 3115eeca20..d91faf2b15 100644 --- a/assets/voxygen/voxel/object/apple_stick.vox +++ b/assets/voxygen/voxel/object/apple_stick.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b8bea68d3344e315a425a1825f2acda565f1cf957ba6ac45656619e94ec2f64e -size 56328 +oid sha256:7c7a669447220db56c3665de93d0c2bd45ec715637cbe0ed5e0455d961c5148b +size 1848 diff --git a/assets/voxygen/voxel/object/coconut.vox b/assets/voxygen/voxel/object/coconut.vox index 9274e97fe2..0b57b8eb76 100644 --- a/assets/voxygen/voxel/object/coconut.vox +++ b/assets/voxygen/voxel/object/coconut.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:233595deb8c6c6b0827a23de6e3723b173e771f91b177afd91b9edc838538617 -size 56275 +oid sha256:57c5f27609dddf29484311735c8241b9bedf9e227d77132880da2fdc4d791327 +size 1640 diff --git a/assets/voxygen/voxel/object/coconut_half.vox b/assets/voxygen/voxel/object/coconut_half.vox new file mode 100644 index 0000000000..be57f34283 --- /dev/null +++ b/assets/voxygen/voxel/object/coconut_half.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e753d21c26876e11c1c247dcd6d2d87b05e60a53d869adb383b774961152b1f0 +size 1544 diff --git a/assets/voxygen/voxel/object/honey.vox b/assets/voxygen/voxel/object/honey.vox new file mode 100644 index 0000000000..8f58fe645f --- /dev/null +++ b/assets/voxygen/voxel/object/honey.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8769031a9e696ce74dd26e7fe4f25e2108ed6807388e85796bf6d8327d8edd6d +size 1480 diff --git a/assets/voxygen/voxel/object/mushroom_stick.vox b/assets/voxygen/voxel/object/mushroom_stick.vox index 643ef3d6eb..e46e3ff83c 100644 --- a/assets/voxygen/voxel/object/mushroom_stick.vox +++ b/assets/voxygen/voxel/object/mushroom_stick.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:86540b0142786efe8e59ddedba724474f0855babfd58be25a9fedeb2307f67b6 -size 56268 +oid sha256:def9915123fb28a7d6f5fdda5a22b6e78f3960d24a0435058971744af5146b1d +size 1784 diff --git a/assets/voxygen/voxel/sprite/crafting_ing/leather/leather_strips.vox b/assets/voxygen/voxel/sprite/crafting_ing/leather/leather_strips.vox index e30b36727d..f583576b5d 100644 --- a/assets/voxygen/voxel/sprite/crafting_ing/leather/leather_strips.vox +++ b/assets/voxygen/voxel/sprite/crafting_ing/leather/leather_strips.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7f0a2696c648d3be7c63f523ed727390d6349d301203026b0e1d53cebdb332c7 -size 1300 +oid sha256:e8128e18b329753519961896fdf6e6429cac03ae2d412865f5e543e12a4ba706 +size 55761 diff --git a/assets/voxygen/voxel/sprite/crafting_ing/leather/simple_leather.vox b/assets/voxygen/voxel/sprite/crafting_ing/leather/simple_leather.vox index a7c88b0747..acbc5bc5ad 100644 --- a/assets/voxygen/voxel/sprite/crafting_ing/leather/simple_leather.vox +++ b/assets/voxygen/voxel/sprite/crafting_ing/leather/simple_leather.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4f1954e414f0323f2c15da646a90783a080e75049872a86edf2831ea3f40f764 -size 1956 +oid sha256:35facd4b8067108856f2614f7b1b877099edec3fd1dca639316fb63139d4cfb7 +size 56204 diff --git a/assets/voxygen/voxel/sprite/crafting_ing/leather/thick_leather.vox b/assets/voxygen/voxel/sprite/crafting_ing/leather/thick_leather.vox index 1938df9ea7..93350d0ad2 100644 --- a/assets/voxygen/voxel/sprite/crafting_ing/leather/thick_leather.vox +++ b/assets/voxygen/voxel/sprite/crafting_ing/leather/thick_leather.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9257d6c37297d51194a7056af7c53ece49caad15fa6c17b26056c6a657c51f45 -size 2536 +oid sha256:9ed5dde9602c4c38a505a4b1af926c3232863d820b539d0500cdcab933e40272 +size 56212 diff --git a/assets/voxygen/voxel/sprite/fruit/apple.vox b/assets/voxygen/voxel/sprite/fruit/apple.vox index 4e16d1ab70..844fbbc127 100644 --- a/assets/voxygen/voxel/sprite/fruit/apple.vox +++ b/assets/voxygen/voxel/sprite/fruit/apple.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7616be8382963a21f068f72e2c4c3034bd33f8c40bb6c544156eda6512405301 -size 3192 +oid sha256:caba20917e8a02da2af093ff1385059b9837f94cc373e20b0d5e74d740476cf6 +size 2000 diff --git a/assets/voxygen/voxel/sprite/fruit/apple_half.vox b/assets/voxygen/voxel/sprite/fruit/apple_half.vox index 12397b24b8..8e07644816 100644 --- a/assets/voxygen/voxel/sprite/fruit/apple_half.vox +++ b/assets/voxygen/voxel/sprite/fruit/apple_half.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b3ec24df4600181123847f4d1698328f35933013f1749a0bc7facaeb68a2f4e7 -size 2292 +oid sha256:7cd5b21bfdc8f653b13a9733870c61a30c59d6d66173d0930a050ec540369b04 +size 1640 diff --git a/assets/voxygen/voxel/sprite/fruit/coconut.vox b/assets/voxygen/voxel/sprite/fruit/coconut.vox index 56545168fa..0b57b8eb76 100644 --- a/assets/voxygen/voxel/sprite/fruit/coconut.vox +++ b/assets/voxygen/voxel/sprite/fruit/coconut.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:24821d19153f380c18b8e255edcd1d9a5473485742e8b4fd6d9eaa9921d96c5c -size 3100 +oid sha256:57c5f27609dddf29484311735c8241b9bedf9e227d77132880da2fdc4d791327 +size 1640 diff --git a/assets/voxygen/voxel/sprite_manifest.ron b/assets/voxygen/voxel/sprite_manifest.ron index 8023df010a..3da2e1e7f2 100644 --- a/assets/voxygen/voxel/sprite_manifest.ron +++ b/assets/voxygen/voxel/sprite_manifest.ron @@ -494,7 +494,7 @@ Apple: Some(( variations: [ ( model: "voxygen.voxel.sprite.fruit.apple", - offset: (-6.0, -6.0, 0.0), + offset: (-4.0, -4.0, 0.0), lod_axes: (1.0, 1.0, 1.0), ), ], @@ -1702,7 +1702,7 @@ Coconut: Some(( variations: [ ( model: "voxygen.voxel.sprite.fruit.coconut", - offset: (-6.0, -6.0, 2.0), + offset: (-3.5, -3.5, 2.0), lod_axes: (1.0, 1.0, 1.0), ), ], From 1060693d1688cb74bb1f19b6273600445854521a Mon Sep 17 00:00:00 2001 From: DoctorKompot Date: Tue, 23 Nov 2021 23:49:12 +0200 Subject: [PATCH 11/26] changed the scaling and offset of some items, replaced Raptor feather, sunflower tea, ice shard and sewing set PNGs with .vox files, updated the image manifest --- assets/voxygen/item_image_manifest.ron | 50 ++++++++++--------- assets/voxygen/voxel/object/ice_shard.vox | 3 ++ .../voxygen/voxel/object/raptor_feather.vox | 3 ++ assets/voxygen/voxel/object/sewing_set.vox | 3 ++ .../voxel/object/sunflower_ice_tea.vox | 3 ++ 5 files changed, 39 insertions(+), 23 deletions(-) create mode 100644 assets/voxygen/voxel/object/ice_shard.vox create mode 100644 assets/voxygen/voxel/object/raptor_feather.vox create mode 100644 assets/voxygen/voxel/object/sewing_set.vox create mode 100644 assets/voxygen/voxel/object/sunflower_ice_tea.vox diff --git a/assets/voxygen/item_image_manifest.ron b/assets/voxygen/item_image_manifest.ron index b0050703b4..1e4ea91949 100644 --- a/assets/voxygen/item_image_manifest.ron +++ b/assets/voxygen/item_image_manifest.ron @@ -2400,55 +2400,55 @@ // Bags Armor(Bag("RedFace")): VoxTrans( "voxel.armor.misc.bag.soulkeeper_cursed", - (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, + (0.0, 0.0, 0.0), (-75.0, 20.0, 5.0), 0.9, ), Armor(Bag("BlackHole")): VoxTrans( "voxel.armor.misc.bag.admin_black_hole", - (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, + (0.0, 0.0, 0.0), (-75.0, 20.0, 5.0), 0.9, ), Armor(Bag("BlueFace")): VoxTrans( "voxel.armor.misc.bag.soulkeeper_pure", - (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, + (0.0, 0.0, 0.0), (-75.0, 20.0, 5.0), 0.9, ), Armor(Bag("PurpleSkull")): VoxTrans( "voxel.armor.misc.bag.mindflayer_spellbag", - (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, + (0.0, 0.1, 0.0), (-75.0, 20.0, 5.0), 0.8, ), Armor(Bag("GreenLarge")): VoxTrans( "voxel.armor.misc.bag.troll_hide_pack", - (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, + (0.0, 0.0, 0.0), (-75.0, 20.0, 5.0), 0.9, ), Armor(Bag("LeatherLarge")): VoxTrans( "voxel.armor.misc.bag.reliable_backpack", - (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, + (0.0, 0.0, 0.0), (-75.0, 20.0, 5.0), 0.9, ), Armor(Bag("GreenMid")): VoxTrans( "voxel.armor.misc.bag.liana_kit", - (0.5, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, + (0.5, 0.0, 0.0), (-75.0, 20.0, 5.0), 0.9, ), Armor(Bag("LeatherSmall")): VoxTrans( "voxel.armor.misc.bag.tiny_leather_pouch", - (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.8, + (0.0, 0.0, 0.0), (-75.0, 20.0, 5.0), 0.8, ), Armor(Bag("RedLarge")): VoxTrans( "voxel.armor.misc.bag.sturdy_red_backpack", - (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, + (0.0, 0.0, 0.0), (-75.0, 20.0, 5.0), 0.9, ), Armor(Bag("RedMed")): VoxTrans( "voxel.armor.misc.bag.woven_red_bag", - (0.5, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, + (0.5, 0.0, 0.0), (-75.0, 20.0, 5.0), 0.9, ), Armor(Bag("RedSmall")): VoxTrans( "voxel.armor.misc.bag.knitted_red_pouch", - (0.3, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.8, + (0.3, 0.0, 0.0), (-75.0, 20.0, 5.0), 0.8, ), Armor(Bag("RedTiny")): VoxTrans( "voxel.armor.misc.bag.tiny_red_pouch", - (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.8, + (0.0, 0.0, 0.0), (-75.0, 20.0, 5.0), 0.9, ), Armor(Bag("BluePouch")): VoxTrans( "voxel.armor.misc.bag.heavy_seabag", - (0.0, 0.0, 0.0), (-80.0, 20.0, 5.0), 0.9, + (0.0, 0.0, 0.0), (-75.0, 20.0, 5.0), 0.9, ), // Consumables Consumable("common.items.food.apple"): VoxTrans( @@ -2501,7 +2501,7 @@ ), Consumable("common.items.food.apple_mushroom_curry"): VoxTrans( "voxel.object.mushroom_curry", - (-0.3, 2.0, 0.0), (-50.0, 20.0, 17.0), 0.9, + (-0.3, 2.0, 0.0), (-50.0, 20.0, 17.0), 1.0, ), Consumable("common.items.food.spore_corruption"): VoxTrans( "voxel.sprite.spore.corruption_spore", @@ -2515,8 +2515,9 @@ "voxel.object.mushroom_stick", (0.3, 0.0, 0.0), (-55.0, 60.0, 5.0), 1.0, ), - Consumable("common.items.food.sunflower_icetea"): Png( - "element.items.item_sunflower_tea", + Consumable("common.items.food.sunflower_icetea"): VoxTrans( + "voxel.object.sunflower_ice_tea", + (0.0, 0.0, 0.0), (0.0, 0.0, 0.0), 1.0, ), Consumable("common.items.food.carrot"): VoxTrans( "voxel.sprite.carrot.carrot", @@ -2624,8 +2625,9 @@ "voxel.weapon.hammer.craftsman", (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 0.9, ), - Ingredient("SewingSet"): Png( - "element.items.sewing_set", + Ingredient("SewingSet"): VoxTrans( + "voxel.object.sewing_set", + (0.0, 0.0, 0.0), (0.0, 0.0, 0.0), 1.0, ), Ingredient("Flower"): VoxTrans( "voxel.sprite.flowers.sunflower_1", @@ -2655,14 +2657,16 @@ "voxel.sprite.seashells.shell-0", (0.0, 0.0, 0.0), (-50.0, 40.0, 20.0), 0.8, ), - Ingredient("IcyShard"): Png( - "element.items.item_ice_shard", + Ingredient("IcyShard"): VoxTrans( + "voxel.object.ice_shard", + (0.0, 0.0, 0.0), (0.0, 0.0, 0.0), 1.0, ), Ingredient("FlayerBagDamaged"): Png( "element.items.item_flayer_soul", ), - Ingredient("RaptorFeather"): Png( - "element.items.item_raptor_feather", + Ingredient("RaptorFeather"): VoxTrans( + "voxel.object.raptor_feather", + (-0.2, 0.0, 0.0), (10.0, 30.0, -2.0), 1.0, ), Ingredient("Twigs"): VoxTrans( "voxel.sprite.twigs.twigs-0", @@ -2698,7 +2702,7 @@ ), Ingredient("LeatherStrips"): VoxTrans( "voxel.sprite.crafting_ing.leather.leather_strips", - (0.0, 0.0, 0.0), (-20.0, 10.0, 20.0), 0.9, + (0.5, 0.0, 0.0), (-20.0, 10.0, 60.0), 1.0, ), Ingredient("Plate"): VoxTrans( "voxel.sprite.crafting_ing.hide.plate", diff --git a/assets/voxygen/voxel/object/ice_shard.vox b/assets/voxygen/voxel/object/ice_shard.vox new file mode 100644 index 0000000000..5c43ef00d7 --- /dev/null +++ b/assets/voxygen/voxel/object/ice_shard.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c4426fe0fc3b8c9e24194604076aff55eaa9f333732b9aaa4f086e0d9e8b471 +size 56236 diff --git a/assets/voxygen/voxel/object/raptor_feather.vox b/assets/voxygen/voxel/object/raptor_feather.vox new file mode 100644 index 0000000000..a10b82448b --- /dev/null +++ b/assets/voxygen/voxel/object/raptor_feather.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96207e5e0f53346d53c28f6292113dad71ff9b9763d05b3166a76a28af777e6b +size 1344 diff --git a/assets/voxygen/voxel/object/sewing_set.vox b/assets/voxygen/voxel/object/sewing_set.vox new file mode 100644 index 0000000000..1793ec415e --- /dev/null +++ b/assets/voxygen/voxel/object/sewing_set.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61cfdffa1749060813cc8f14ef9ff83230c3bb65a4e31770e6e7570f64ae25b3 +size 56040 diff --git a/assets/voxygen/voxel/object/sunflower_ice_tea.vox b/assets/voxygen/voxel/object/sunflower_ice_tea.vox new file mode 100644 index 0000000000..ef2cabdc4d --- /dev/null +++ b/assets/voxygen/voxel/object/sunflower_ice_tea.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3264199660651b09c6f77027fae951b331bd2b29882103a1409240d4418fd21 +size 57371 From 46fe40d5fc30213d66dce3fc7423fc0d08ebe738 Mon Sep 17 00:00:00 2001 From: DoctorKompot Date: Wed, 24 Nov 2021 00:23:03 +0200 Subject: [PATCH 12/26] fixed ice shard, sunflower tea and sewing kit --- assets/voxygen/item_image_manifest.ron | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/assets/voxygen/item_image_manifest.ron b/assets/voxygen/item_image_manifest.ron index 1e4ea91949..ea8e0bff1c 100644 --- a/assets/voxygen/item_image_manifest.ron +++ b/assets/voxygen/item_image_manifest.ron @@ -2517,7 +2517,7 @@ ), Consumable("common.items.food.sunflower_icetea"): VoxTrans( "voxel.object.sunflower_ice_tea", - (0.0, 0.0, 0.0), (0.0, 0.0, 0.0), 1.0, + (0.0, 0.0, 0.0), (-50.0, -60.0, -35.0), 0.9, ), Consumable("common.items.food.carrot"): VoxTrans( "voxel.sprite.carrot.carrot", @@ -2627,7 +2627,7 @@ ), Ingredient("SewingSet"): VoxTrans( "voxel.object.sewing_set", - (0.0, 0.0, 0.0), (0.0, 0.0, 0.0), 1.0, + (0.0, 0.5, 0.0), (-50.0, 10.0, 5.0), 1.0, ), Ingredient("Flower"): VoxTrans( "voxel.sprite.flowers.sunflower_1", @@ -2659,7 +2659,7 @@ ), Ingredient("IcyShard"): VoxTrans( "voxel.object.ice_shard", - (0.0, 0.0, 0.0), (0.0, 0.0, 0.0), 1.0, + (-1.0, 0.7, 0.0), (-60.0, -30.0, 10.0), 0.9, ), Ingredient("FlayerBagDamaged"): Png( "element.items.item_flayer_soul", From ca93284294275a3c1f140976b2239bd20ffa9655 Mon Sep 17 00:00:00 2001 From: DoctorKompot Date: Thu, 25 Nov 2021 00:25:56 +0200 Subject: [PATCH 13/26] updated sewing set, ice shard and sunflower tea models with the ones provided by Gemu --- assets/voxygen/item_image_manifest.ron | 8 ++++---- assets/voxygen/voxel/object/ice_shard.vox | 4 ++-- assets/voxygen/voxel/object/sewing_set.vox | 4 ++-- assets/voxygen/voxel/object/sunflower_ice_tea.vox | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/assets/voxygen/item_image_manifest.ron b/assets/voxygen/item_image_manifest.ron index ea8e0bff1c..23b1bc4f33 100644 --- a/assets/voxygen/item_image_manifest.ron +++ b/assets/voxygen/item_image_manifest.ron @@ -2509,7 +2509,7 @@ ), Consumable("common.items.food.apple_stick"): VoxTrans( "voxel.object.apple_stick", - (0.3, 0.0, 0.0), (-55.0, 60.0, 5.0), 1.0, + (-0.5, -0.3, 0.0), (-55.0, 60.0, 5.0), 1.0, ), Consumable("common.items.food.mushroom_stick"): VoxTrans( "voxel.object.mushroom_stick", @@ -2627,7 +2627,7 @@ ), Ingredient("SewingSet"): VoxTrans( "voxel.object.sewing_set", - (0.0, 0.5, 0.0), (-50.0, 10.0, 5.0), 1.0, + (0.0, -0.1, 0.0), (-45.0, 15.0, 15.0), 1.0, ), Ingredient("Flower"): VoxTrans( "voxel.sprite.flowers.sunflower_1", @@ -2659,7 +2659,7 @@ ), Ingredient("IcyShard"): VoxTrans( "voxel.object.ice_shard", - (-1.0, 0.7, 0.0), (-60.0, -30.0, 10.0), 0.9, + (0.0, 0.0, 0.0), (10.0, -20.0, 30.0), 1.0, ), Ingredient("FlayerBagDamaged"): Png( "element.items.item_flayer_soul", @@ -2690,7 +2690,7 @@ ), Ingredient("ThickLeather"): VoxTrans( "voxel.sprite.crafting_ing.leather.thick_leather", - (0.0, 0.0, 0.0), (-20.0, 10.0, 20.0), 0.9, + (-0.3, 0.0, 0.0), (-20.0, 15.0, 20.0), 0.9, ), Ingredient("RigidLeather"): VoxTrans( "voxel.sprite.crafting_ing.leather.rigid_leather", diff --git a/assets/voxygen/voxel/object/ice_shard.vox b/assets/voxygen/voxel/object/ice_shard.vox index 5c43ef00d7..13a0dd3202 100644 --- a/assets/voxygen/voxel/object/ice_shard.vox +++ b/assets/voxygen/voxel/object/ice_shard.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4c4426fe0fc3b8c9e24194604076aff55eaa9f333732b9aaa4f086e0d9e8b471 -size 56236 +oid sha256:f2e0f291ed16d4737fa6bddb2307ec2f6c084f285ff90a51d32fa238b39588ed +size 1400 diff --git a/assets/voxygen/voxel/object/sewing_set.vox b/assets/voxygen/voxel/object/sewing_set.vox index 1793ec415e..4a7c35509e 100644 --- a/assets/voxygen/voxel/object/sewing_set.vox +++ b/assets/voxygen/voxel/object/sewing_set.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:61cfdffa1749060813cc8f14ef9ff83230c3bb65a4e31770e6e7570f64ae25b3 -size 56040 +oid sha256:ea14e5839c31dad37c0fc39f5a6d0493037a80d0cc98d992ad6e6fa4624706fe +size 1556 diff --git a/assets/voxygen/voxel/object/sunflower_ice_tea.vox b/assets/voxygen/voxel/object/sunflower_ice_tea.vox index ef2cabdc4d..e539a4be1d 100644 --- a/assets/voxygen/voxel/object/sunflower_ice_tea.vox +++ b/assets/voxygen/voxel/object/sunflower_ice_tea.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c3264199660651b09c6f77027fae951b331bd2b29882103a1409240d4418fd21 -size 57371 +oid sha256:4bf8c7c1939f5b3308532a493c92e0f414ce76e54045311282c50281e638b2ae +size 3000 From ff718918218a11a4350559be8377946e423bfa5d Mon Sep 17 00:00:00 2001 From: DoctorKompot Date: Thu, 25 Nov 2021 23:49:49 +0200 Subject: [PATCH 14/26] brightened item backgrounds --- assets/voxygen/element/ui/bag/buttons/inv_slot_blue.png | 4 ++-- assets/voxygen/element/ui/bag/buttons/inv_slot_gold.png | 4 ++-- assets/voxygen/element/ui/bag/buttons/inv_slot_green.png | 4 ++-- assets/voxygen/element/ui/bag/buttons/inv_slot_grey.png | 4 ++-- assets/voxygen/element/ui/bag/buttons/inv_slot_purple.png | 4 ++-- assets/voxygen/element/ui/bag/buttons/inv_slot_sel.png | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/assets/voxygen/element/ui/bag/buttons/inv_slot_blue.png b/assets/voxygen/element/ui/bag/buttons/inv_slot_blue.png index e71ac987ef..9192084632 100644 --- a/assets/voxygen/element/ui/bag/buttons/inv_slot_blue.png +++ b/assets/voxygen/element/ui/bag/buttons/inv_slot_blue.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:41003d288efbd52f5c26b8723b51d1e44d7e8cd6be16d6dbf3340b7c4a41d985 -size 299 +oid sha256:b06b770a95f2635dcb5f9597122268aaf2210fa880d7c24238f6cdedf4f7732c +size 585 diff --git a/assets/voxygen/element/ui/bag/buttons/inv_slot_gold.png b/assets/voxygen/element/ui/bag/buttons/inv_slot_gold.png index f0fbdadf8d..d03007582c 100644 --- a/assets/voxygen/element/ui/bag/buttons/inv_slot_gold.png +++ b/assets/voxygen/element/ui/bag/buttons/inv_slot_gold.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b93c4e97048f62df1c0b5d7b829dad47190d64f03c85c0e1562a4a1eb6ff4414 -size 291 +oid sha256:c3c9d059c2562940ca0747195e75cc2347348c47eab3cc2ae37fb5e9d6573a8e +size 563 diff --git a/assets/voxygen/element/ui/bag/buttons/inv_slot_green.png b/assets/voxygen/element/ui/bag/buttons/inv_slot_green.png index f04db0646c..3cf608ba9b 100644 --- a/assets/voxygen/element/ui/bag/buttons/inv_slot_green.png +++ b/assets/voxygen/element/ui/bag/buttons/inv_slot_green.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4b573ccf546f511d4bdd541e546a3236442afa55f101a84f8b8270ef181a58d7 -size 293 +oid sha256:d1d5ec8d8c1fa9a605407985cd5cf78e965abd4397643d95c58c59c2e1f69900 +size 584 diff --git a/assets/voxygen/element/ui/bag/buttons/inv_slot_grey.png b/assets/voxygen/element/ui/bag/buttons/inv_slot_grey.png index d1bcc73eeb..c5b32e192f 100644 --- a/assets/voxygen/element/ui/bag/buttons/inv_slot_grey.png +++ b/assets/voxygen/element/ui/bag/buttons/inv_slot_grey.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2ce4b311b67ee03dd6cecfb489e2cb1b59eaa1ce5d544dd1564c956f99072643 -size 316 +oid sha256:2fef7c792092d86ab151b7cf798c260fcfce3ba5e0e2ca039ce897cac6f52998 +size 772 diff --git a/assets/voxygen/element/ui/bag/buttons/inv_slot_purple.png b/assets/voxygen/element/ui/bag/buttons/inv_slot_purple.png index ab45a2f48c..d8528344e0 100644 --- a/assets/voxygen/element/ui/bag/buttons/inv_slot_purple.png +++ b/assets/voxygen/element/ui/bag/buttons/inv_slot_purple.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ad1aecf19c37575d9c5d8e03c50b2db1127751a2fff0dbb4fed30f64b7af8587 -size 320 +oid sha256:f59ca63985865a9549a66d89db9f3117544bd243db09ca757dc9b1c9a038a35d +size 598 diff --git a/assets/voxygen/element/ui/bag/buttons/inv_slot_sel.png b/assets/voxygen/element/ui/bag/buttons/inv_slot_sel.png index 9bb9665e58..2d6bcc875c 100644 --- a/assets/voxygen/element/ui/bag/buttons/inv_slot_sel.png +++ b/assets/voxygen/element/ui/bag/buttons/inv_slot_sel.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ce47db8a87a599a03719653a5db86e6811187ccd4d1054a682efe3cebb89f73b -size 158 +oid sha256:d344ebf53b665a2ff166214bcad32c61201d75d13f44b759b3db7d951265696b +size 359 From bc07474f317eebbff4eef41ec5977b722161c453 Mon Sep 17 00:00:00 2001 From: DoctorKompot Date: Thu, 25 Nov 2021 23:59:49 +0200 Subject: [PATCH 15/26] fixed grey and purple slots --- assets/voxygen/element/ui/bag/buttons/inv_slot_grey.png | 4 ++-- assets/voxygen/element/ui/bag/buttons/inv_slot_purple.png | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/assets/voxygen/element/ui/bag/buttons/inv_slot_grey.png b/assets/voxygen/element/ui/bag/buttons/inv_slot_grey.png index c5b32e192f..d164f8a801 100644 --- a/assets/voxygen/element/ui/bag/buttons/inv_slot_grey.png +++ b/assets/voxygen/element/ui/bag/buttons/inv_slot_grey.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2fef7c792092d86ab151b7cf798c260fcfce3ba5e0e2ca039ce897cac6f52998 -size 772 +oid sha256:23c78b4919dd52daef8936d1ec3d74a19400a27c2e147d0ca71ff3b63f98bd59 +size 776 diff --git a/assets/voxygen/element/ui/bag/buttons/inv_slot_purple.png b/assets/voxygen/element/ui/bag/buttons/inv_slot_purple.png index d8528344e0..13d72f938d 100644 --- a/assets/voxygen/element/ui/bag/buttons/inv_slot_purple.png +++ b/assets/voxygen/element/ui/bag/buttons/inv_slot_purple.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f59ca63985865a9549a66d89db9f3117544bd243db09ca757dc9b1c9a038a35d -size 598 +oid sha256:b9e7d7fc7f0c55f20aabf703a379425df9384dcc56ac90e3304599ebe0b3de61 +size 603 From e83446811a38705d4012bc3b241565b16a7bf26d Mon Sep 17 00:00:00 2001 From: DoctorKompot Date: Fri, 26 Nov 2021 00:17:57 +0200 Subject: [PATCH 16/26] fixed apple offset --- assets/voxygen/voxel/sprite_manifest.ron | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/voxygen/voxel/sprite_manifest.ron b/assets/voxygen/voxel/sprite_manifest.ron index 3da2e1e7f2..25aa9b6ff0 100644 --- a/assets/voxygen/voxel/sprite_manifest.ron +++ b/assets/voxygen/voxel/sprite_manifest.ron @@ -494,7 +494,7 @@ Apple: Some(( variations: [ ( model: "voxygen.voxel.sprite.fruit.apple", - offset: (-4.0, -4.0, 0.0), + offset: (-4.0, -4.0, 2.0), lod_axes: (1.0, 1.0, 1.0), ), ], From 9eedb024fe5029ad2f2ff2de1349ce31718aed2e Mon Sep 17 00:00:00 2001 From: DoctorKompot Date: Thu, 9 Dec 2021 23:01:25 +0200 Subject: [PATCH 17/26] added new cheese, glowing remains and mortar and pestle files, updated collar and mushroom curry --- assets/voxygen/item_image_manifest.ron | 12 +- assets/voxygen/voxel/object/cheese.vox | 3 + assets/voxygen/voxel/object/collar.vox | 4 +- .../voxygen/voxel/object/glowing_remains.vox | 3 + assets/voxygen/voxel/object/mortar_pestle.vox | 3 + .../voxygen/voxel/object/mushroom_curry.vox | 4 +- .../src/audio/sfx/event_mapper/block/mod.rs | 297 --------------- .../audio/sfx/event_mapper/campfire/mod.rs | 129 ------- .../src/audio/sfx/event_mapper/combat/mod.rs | 182 --------- .../audio/sfx/event_mapper/combat/tests.rs | 239 ------------ voxygen/src/audio/sfx/event_mapper/mod.rs | 72 ---- .../audio/sfx/event_mapper/movement/tests.rs | 358 ------------------ 12 files changed, 20 insertions(+), 1286 deletions(-) create mode 100644 assets/voxygen/voxel/object/cheese.vox create mode 100644 assets/voxygen/voxel/object/glowing_remains.vox create mode 100644 assets/voxygen/voxel/object/mortar_pestle.vox delete mode 100644 voxygen/src/audio/sfx/event_mapper/block/mod.rs delete mode 100644 voxygen/src/audio/sfx/event_mapper/campfire/mod.rs delete mode 100644 voxygen/src/audio/sfx/event_mapper/combat/mod.rs delete mode 100644 voxygen/src/audio/sfx/event_mapper/combat/tests.rs delete mode 100644 voxygen/src/audio/sfx/event_mapper/mod.rs delete mode 100644 voxygen/src/audio/sfx/event_mapper/movement/tests.rs diff --git a/assets/voxygen/item_image_manifest.ron b/assets/voxygen/item_image_manifest.ron index 23b1bc4f33..89bf8ae82b 100644 --- a/assets/voxygen/item_image_manifest.ron +++ b/assets/voxygen/item_image_manifest.ron @@ -2480,7 +2480,7 @@ (0.0, 0.0, 0.0), (-50.0, 30.0, 20.0), 0.9, ), Consumable("common.items.food.cheese"): VoxTrans( - "voxel.object.cheese-0", + "voxel.object.cheese", (0.0, 0.0, 0.0), (-60.0, -10.0, 0.0), 0.8, ), Consumable("common.items.food.blue_cheese"): VoxTrans( @@ -2661,8 +2661,9 @@ "voxel.object.ice_shard", (0.0, 0.0, 0.0), (10.0, -20.0, 30.0), 1.0, ), - Ingredient("FlayerBagDamaged"): Png( - "element.items.item_flayer_soul", + Ingredient("FlayerBagDamaged"): VoxTrans( + "voxel.object.glowing_remains", + (0.0, 0.0, 0.0), (10.0, -20.0, 30.0), 1.0, ), Ingredient("RaptorFeather"): VoxTrans( "voxel.object.raptor_feather", @@ -2880,8 +2881,9 @@ "voxel.object.honey", (1.0, 0.0, 0.0), (-20.0, 20.0, -30.0), 0.9, ), - Ingredient("MortarPestle"): Png( - "element.items.item_mortarpestlecoco", + Ingredient("MortarPestle"): VoxTrans( + "voxel.object.mortar_pestle", + (0.0, 0.0, 0.0), (10.0, -20.0, 30.0), 1.0, ), Ingredient("EmptyVial"): VoxTrans( "voxel.object.potion_empty", diff --git a/assets/voxygen/voxel/object/cheese.vox b/assets/voxygen/voxel/object/cheese.vox new file mode 100644 index 0000000000..e7a7b7c670 --- /dev/null +++ b/assets/voxygen/voxel/object/cheese.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:25455fa8d01e603280e842bbe7b3ce7361ca202dad31c9ca2a291c4b69250dc0 +size 3460 diff --git a/assets/voxygen/voxel/object/collar.vox b/assets/voxygen/voxel/object/collar.vox index 256c04220b..d32817159e 100644 --- a/assets/voxygen/voxel/object/collar.vox +++ b/assets/voxygen/voxel/object/collar.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fad24f6450d61d5949aa64a12d35a2a2d5d7adcb1e3097b4dc5e514efc246e1b -size 55936 +oid sha256:35eb993c094e43b81e36a17a37cabec38ebace3068956d82c96c200134eb9250 +size 1424 diff --git a/assets/voxygen/voxel/object/glowing_remains.vox b/assets/voxygen/voxel/object/glowing_remains.vox new file mode 100644 index 0000000000..f9e78792de --- /dev/null +++ b/assets/voxygen/voxel/object/glowing_remains.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:740322b4c3136aecd6e9c5bbacd29f33d12bd1059d0b08a0c991be7bfa94db51 +size 1736 diff --git a/assets/voxygen/voxel/object/mortar_pestle.vox b/assets/voxygen/voxel/object/mortar_pestle.vox new file mode 100644 index 0000000000..6341a0dc6f --- /dev/null +++ b/assets/voxygen/voxel/object/mortar_pestle.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:979790e5b2311014ec1129d0b6f8ffdbbfd1663b577647c8bbf669520f333c6b +size 1612 diff --git a/assets/voxygen/voxel/object/mushroom_curry.vox b/assets/voxygen/voxel/object/mushroom_curry.vox index bf3f039bde..6c86f24907 100644 --- a/assets/voxygen/voxel/object/mushroom_curry.vox +++ b/assets/voxygen/voxel/object/mushroom_curry.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cb91306dec47543cea8e5b78dfa0eabe3a5fbcf170953e71552f1c4aa46d9dbb -size 56956 +oid sha256:0a98f71348317c17ba90164f85d8e609f997b70f9de44498ff437a9d382fd7de +size 2616 diff --git a/voxygen/src/audio/sfx/event_mapper/block/mod.rs b/voxygen/src/audio/sfx/event_mapper/block/mod.rs deleted file mode 100644 index 33dce469c6..0000000000 --- a/voxygen/src/audio/sfx/event_mapper/block/mod.rs +++ /dev/null @@ -1,297 +0,0 @@ -/// EventMapper::Block watches the sound emitting blocks within -/// chunk range of the player and emits ambient sfx -use crate::{ - audio::sfx::{SfxEvent, SfxTriggerItem, SfxTriggers, SFX_DIST_LIMIT_SQR}, - scene::{terrain::BlocksOfInterest, Camera, Terrain}, - AudioFrontend, -}; - -use super::EventMapper; -use client::Client; -use common::{ - comp::Pos, - spiral::Spiral2d, - terrain::TerrainChunk, - vol::{ReadVol, RectRasterableVol}, -}; -use common_state::State; -use hashbrown::HashMap; -use rand::{thread_rng, Rng}; -use std::time::{Duration, Instant}; -use vek::*; - -#[derive(Clone, PartialEq)] -struct PreviousBlockState { - event: SfxEvent, - time: Instant, -} - -impl Default for PreviousBlockState { - fn default() -> Self { - Self { - event: SfxEvent::Idle, - time: Instant::now() - .checked_add(Duration::from_millis(thread_rng().gen_range(0..500))) - .unwrap_or_else(Instant::now), - } - } -} - -pub struct BlockEventMapper { - history: HashMap, PreviousBlockState>, -} - -impl EventMapper for BlockEventMapper { - fn maintain( - &mut self, - audio: &mut AudioFrontend, - state: &State, - player_entity: specs::Entity, - camera: &Camera, - triggers: &SfxTriggers, - terrain: &Terrain, - client: &Client, - ) { - let focus_off = camera.get_focus_pos().map(f32::trunc); - let cam_pos = camera.dependents().cam_pos + focus_off; - - // Get the player position and chunk - let player_pos = state - .read_component_copied::(player_entity) - .unwrap_or_default(); - let player_chunk = player_pos.0.xy().map2(TerrainChunk::RECT_SIZE, |e, sz| { - (e.floor() as i32).div_euclid(sz as i32) - }); - - // For determining if underground/crickets should chirp - let (terrain_alt, temp) = match client.current_chunk() { - Some(chunk) => (chunk.meta().alt(), chunk.meta().temp()), - None => (0.0, 0.0), - }; - - struct BlockSounds<'a> { - // The function to select the blocks of interest that we should emit from - blocks: fn(&'a BlocksOfInterest) -> &'a [Vec3], - // The range, in chunks, that the particles should be generated in from the player - range: usize, - // The sound of the generated particle - sfx: SfxEvent, - // The volume of the sfx - volume: f32, - // Condition that must be true to play - cond: fn(&State) -> bool, - } - - let sounds: &[BlockSounds] = &[ - BlockSounds { - blocks: |boi| &boi.leaves, - range: 1, - sfx: SfxEvent::Birdcall, - volume: 1.0, - cond: |st| st.get_day_period().is_light(), - }, - BlockSounds { - blocks: |boi| &boi.leaves, - range: 1, - sfx: SfxEvent::Owl, - volume: 1.0, - cond: |st| st.get_day_period().is_dark(), - }, - // BlockSounds { - // blocks: |boi| &boi.river, - // range: 1, - // sfx: SfxEvent::RunningWater, - // volume: 1.0, - // cond: |_| true, - // }, - //BlockSounds { - // blocks: |boi| &boi.embers, - // range: 1, - // sfx: SfxEvent::Embers, - // volume: 0.15, - // //volume: 0.05, - // cond: |_| true, - // //cond: |st| st.get_day_period().is_dark(), - //}, - BlockSounds { - blocks: |boi| &boi.frogs, - range: 1, - sfx: SfxEvent::Frog, - volume: 0.8, - cond: |st| st.get_day_period().is_dark(), - }, - //BlockSounds { - // blocks: |boi| &boi.flowers, - // range: 4, - // sfx: SfxEvent::LevelUp, - // volume: 1.0, - // cond: |st| st.get_day_period().is_dark(), - //}, - BlockSounds { - blocks: |boi| &boi.cricket1, - range: 1, - sfx: SfxEvent::Cricket1, - volume: 0.33, - cond: |st| st.get_day_period().is_dark(), - }, - BlockSounds { - blocks: |boi| &boi.cricket2, - range: 1, - sfx: SfxEvent::Cricket2, - volume: 0.33, - cond: |st| st.get_day_period().is_dark(), - }, - BlockSounds { - blocks: |boi| &boi.cricket3, - range: 1, - sfx: SfxEvent::Cricket3, - volume: 0.33, - cond: |st| st.get_day_period().is_dark(), - }, - BlockSounds { - blocks: |boi| &boi.beehives, - range: 1, - sfx: SfxEvent::Bees, - volume: 0.5, - cond: |st| st.get_day_period().is_light(), - }, - ]; - - // Iterate through each kind of block of interest - for sounds in sounds.iter() { - // If the timing condition is false, continue - // or if the player is far enough underground, continue - // TODO Address bird hack properly. See TODO on line 190 - if !(sounds.cond)(state) - || player_pos.0.z < (terrain_alt - 30.0) - || (sounds.sfx == SfxEvent::Birdcall && thread_rng().gen_bool(0.995)) - || (sounds.sfx == SfxEvent::Owl && thread_rng().gen_bool(0.998)) - || (sounds.sfx == SfxEvent::Frog && thread_rng().gen_bool(0.95)) - //Crickets will not chirp below 5 Celsius - || (sounds.sfx == SfxEvent::Cricket1 && (temp < -0.33)) - || (sounds.sfx == SfxEvent::Cricket2 && (temp < -0.33)) - || (sounds.sfx == SfxEvent::Cricket3 && (temp < -0.33)) - { - continue; - } - - // For chunks surrounding the player position - for offset in Spiral2d::new().take((sounds.range * 2 + 1).pow(2)) { - let chunk_pos = player_chunk + offset; - - // Get all the blocks of interest in this chunk - terrain.get(chunk_pos).map(|chunk_data| { - // Get the positions of the blocks of type sounds - let blocks = (sounds.blocks)(&chunk_data.blocks_of_interest); - - let absolute_pos: Vec3 = - Vec3::from(chunk_pos * TerrainChunk::RECT_SIZE.map(|e| e as i32)); - - // Iterate through each individual block - for block in blocks { - // TODO Address this hack properly, potentially by making a new - // block of interest type which picks fewer leaf blocks - // Hack to reduce the number of bird sounds (too many leaf blocks) - if ((sounds.sfx == SfxEvent::Birdcall || sounds.sfx == SfxEvent::Owl) - && thread_rng().gen_bool(0.999)) - || (sounds.sfx == SfxEvent::Frog && thread_rng().gen_bool(0.75)) - { - continue; - } - let block_pos: Vec3 = absolute_pos + block; - let internal_state = self.history.entry(block_pos).or_default(); - - let block_pos = block_pos.map(|x| x as f32); - - if Self::should_emit( - internal_state, - triggers.get_key_value(&sounds.sfx), - temp, - ) { - // If the camera is within SFX distance - if (block_pos.distance_squared(cam_pos)) < SFX_DIST_LIMIT_SQR { - let underwater = state - .terrain() - .get(cam_pos.map(|e| e.floor() as i32)) - .map(|b| b.is_liquid()) - .unwrap_or(false); - - let sfx_trigger_item = triggers.get_key_value(&sounds.sfx); - audio.emit_sfx( - sfx_trigger_item, - block_pos, - Some(sounds.volume), - underwater, - ); - } - internal_state.time = Instant::now(); - internal_state.event = sounds.sfx.clone(); - } - } - }); - } - } - } -} - -impl BlockEventMapper { - pub fn new() -> Self { - Self { - history: HashMap::new(), - } - } - - /// Ensures that: - /// 1. An sfx.ron entry exists for an SFX event - /// 2. The sfx has not been played since it's timeout threshold has elapsed, - /// which prevents firing every tick - /// Note that with so many blocks to choose from and different blocks being - /// selected each time, this is not perfect, but does reduce the number of - /// plays from blocks that have already emitted sfx and are stored in the - /// BlockEventMapper history. - fn should_emit( - previous_state: &PreviousBlockState, - sfx_trigger_item: Option<(&SfxEvent, &SfxTriggerItem)>, - temp: f32, - ) -> bool { - if let Some((event, item)) = sfx_trigger_item { - //The interval between cricket chirps calculated by converting chunk - // temperature to centigrade (we should create a function for this) and applying - // the "cricket formula" to it - let cricket_interval = (25.0 / (3.0 * ((temp * 30.0) + 15.0))).max(0.5); - if &previous_state.event == event { - //In case certain sounds need modification to their threshold, - //use match event - match event { - SfxEvent::Cricket1 => { - previous_state.time.elapsed().as_secs_f32() - >= cricket_interval + thread_rng().gen_range(-0.1..0.1) - }, - SfxEvent::Cricket2 => { - //the length and manner of this sound is quite different - if cricket_interval < 0.75 { - previous_state.time.elapsed().as_secs_f32() >= 0.75 - } else { - previous_state.time.elapsed().as_secs_f32() - >= cricket_interval + thread_rng().gen_range(-0.1..0.1) - } - }, - SfxEvent::Cricket3 => { - previous_state.time.elapsed().as_secs_f32() - >= cricket_interval + thread_rng().gen_range(-0.1..0.1) - }, - //Adds random factor to frogs (probably doesn't do anything most of the time) - SfxEvent::Frog => { - previous_state.time.elapsed().as_secs_f32() - >= thread_rng().gen_range(-2.0..2.0) - }, - _ => previous_state.time.elapsed().as_secs_f32() >= item.threshold, - } - } else { - true - } - } else { - false - } - } -} diff --git a/voxygen/src/audio/sfx/event_mapper/campfire/mod.rs b/voxygen/src/audio/sfx/event_mapper/campfire/mod.rs deleted file mode 100644 index cdd6f9ea68..0000000000 --- a/voxygen/src/audio/sfx/event_mapper/campfire/mod.rs +++ /dev/null @@ -1,129 +0,0 @@ -/// EventMapper::Campfire maps sfx to campfires -use crate::{ - audio::sfx::{SfxEvent, SfxTriggerItem, SfxTriggers, SFX_DIST_LIMIT_SQR}, - scene::{Camera, Terrain}, - AudioFrontend, -}; - -use super::EventMapper; - -use client::Client; -use common::{ - comp::{object, Body, Pos}, - terrain::TerrainChunk, - vol::ReadVol, -}; -use common_state::State; -use hashbrown::HashMap; -use specs::{Entity as EcsEntity, Join, WorldExt}; -use std::time::{Duration, Instant}; - -#[derive(Clone)] -struct PreviousEntityState { - event: SfxEvent, - time: Instant, -} - -impl Default for PreviousEntityState { - fn default() -> Self { - Self { - event: SfxEvent::Idle, - time: Instant::now(), - } - } -} - -pub struct CampfireEventMapper { - event_history: HashMap, -} - -impl EventMapper for CampfireEventMapper { - fn maintain( - &mut self, - audio: &mut AudioFrontend, - state: &State, - player_entity: specs::Entity, - camera: &Camera, - triggers: &SfxTriggers, - _terrain: &Terrain, - _client: &Client, - ) { - let ecs = state.ecs(); - let focus_off = camera.get_focus_pos().map(f32::trunc); - let cam_pos = camera.dependents().cam_pos + focus_off; - for (entity, body, pos) in ( - &ecs.entities(), - &ecs.read_storage::(), - &ecs.read_storage::(), - ) - .join() - .filter(|(_, _, e_pos)| (e_pos.0.distance_squared(cam_pos)) < SFX_DIST_LIMIT_SQR) - { - if let Body::Object(object::Body::CampfireLit) = body { - let internal_state = self.event_history.entry(entity).or_default(); - - let mapped_event = SfxEvent::Campfire; - - // Check for SFX config entry for this movement - if Self::should_emit(internal_state, triggers.get_key_value(&mapped_event)) { - let underwater = state - .terrain() - .get(cam_pos.map(|e| e.floor() as i32)) - .map(|b| b.is_liquid()) - .unwrap_or(false); - let sfx_trigger_item = triggers.get_key_value(&mapped_event); - const CAMPFIRE_VOLUME: f32 = 0.8; - audio.emit_sfx(sfx_trigger_item, pos.0, Some(CAMPFIRE_VOLUME), underwater); - internal_state.time = Instant::now(); - } - - // update state to determine the next event. We only record the time (above) if - // it was dispatched - internal_state.event = mapped_event; - } - } - self.cleanup(player_entity); - } -} - -impl CampfireEventMapper { - pub fn new() -> Self { - Self { - event_history: HashMap::new(), - } - } - - /// As the player explores the world, we track the last event of the nearby - /// entities to determine the correct SFX item to play next based on - /// their activity. `cleanup` will remove entities from event tracking if - /// they have not triggered an event for > n seconds. This prevents - /// stale records from bloating the Map size. - fn cleanup(&mut self, player: EcsEntity) { - const TRACKING_TIMEOUT: u64 = 10; - - let now = Instant::now(); - self.event_history.retain(|entity, event| { - now.duration_since(event.time) < Duration::from_secs(TRACKING_TIMEOUT) - || entity.id() == player.id() - }); - } - - /// Ensures that: - /// 1. An sfx.ron entry exists for an SFX event - /// 2. The sfx has not been played since it's timeout threshold has elapsed, - /// which prevents firing every tick - fn should_emit( - previous_state: &PreviousEntityState, - sfx_trigger_item: Option<(&SfxEvent, &SfxTriggerItem)>, - ) -> bool { - if let Some((event, item)) = sfx_trigger_item { - if &previous_state.event == event { - previous_state.time.elapsed().as_secs_f32() >= item.threshold - } else { - true - } - } else { - false - } - } -} diff --git a/voxygen/src/audio/sfx/event_mapper/combat/mod.rs b/voxygen/src/audio/sfx/event_mapper/combat/mod.rs deleted file mode 100644 index 9014010c56..0000000000 --- a/voxygen/src/audio/sfx/event_mapper/combat/mod.rs +++ /dev/null @@ -1,182 +0,0 @@ -/// EventMapper::Combat watches the combat states of surrounding entities' and -/// emits sfx related to weapons and attacks/abilities -use crate::{ - audio::sfx::{SfxEvent, SfxTriggerItem, SfxTriggers, SFX_DIST_LIMIT_SQR}, - scene::{Camera, Terrain}, - AudioFrontend, -}; - -use super::EventMapper; - -use client::Client; -use common::{ - comp::{ - inventory::slot::EquipSlot, item::ItemKind, CharacterAbilityType, CharacterState, - Inventory, Pos, - }, - terrain::TerrainChunk, - vol::ReadVol, -}; -use common_state::State; -use hashbrown::HashMap; -use specs::{Entity as EcsEntity, Join, WorldExt}; -use std::time::{Duration, Instant}; - -#[derive(Clone)] -struct PreviousEntityState { - event: SfxEvent, - time: Instant, - weapon_drawn: bool, -} - -impl Default for PreviousEntityState { - fn default() -> Self { - Self { - event: SfxEvent::Idle, - time: Instant::now(), - weapon_drawn: false, - } - } -} - -pub struct CombatEventMapper { - event_history: HashMap, -} - -impl EventMapper for CombatEventMapper { - fn maintain( - &mut self, - audio: &mut AudioFrontend, - state: &State, - player_entity: specs::Entity, - camera: &Camera, - triggers: &SfxTriggers, - _terrain: &Terrain, - _client: &Client, - ) { - let ecs = state.ecs(); - - let focus_off = camera.get_focus_pos().map(f32::trunc); - let cam_pos = camera.dependents().cam_pos + focus_off; - - for (entity, pos, inventory, character) in ( - &ecs.entities(), - &ecs.read_storage::(), - ecs.read_storage::().maybe(), - ecs.read_storage::().maybe(), - ) - .join() - .filter(|(_, e_pos, ..)| (e_pos.0.distance_squared(cam_pos)) < SFX_DIST_LIMIT_SQR) - { - if let Some(character) = character { - let sfx_state = self.event_history.entry(entity).or_default(); - - let mapped_event = inventory.map_or(SfxEvent::Idle, |inv| { - Self::map_event(character, sfx_state, inv) - }); - - // Check for SFX config entry for this movement - if Self::should_emit(sfx_state, triggers.get_key_value(&mapped_event)) { - let underwater = state - .terrain() - .get(cam_pos.map(|e| e.floor() as i32)) - .map(|b| b.is_liquid()) - .unwrap_or(false); - - let sfx_trigger_item = triggers.get_key_value(&mapped_event); - audio.emit_sfx(sfx_trigger_item, pos.0, None, underwater); - sfx_state.time = Instant::now(); - } - - // update state to determine the next event. We only record the time (above) if - // it was dispatched - sfx_state.event = mapped_event; - sfx_state.weapon_drawn = Self::weapon_drawn(character); - } - } - - self.cleanup(player_entity); - } -} - -impl CombatEventMapper { - pub fn new() -> Self { - Self { - event_history: HashMap::new(), - } - } - - /// As the player explores the world, we track the last event of the nearby - /// entities to determine the correct SFX item to play next based on - /// their activity. `cleanup` will remove entities from event tracking if - /// they have not triggered an event for > n seconds. This prevents - /// stale records from bloating the Map size. - fn cleanup(&mut self, player: EcsEntity) { - const TRACKING_TIMEOUT: u64 = 10; - - let now = Instant::now(); - self.event_history.retain(|entity, event| { - now.duration_since(event.time) < Duration::from_secs(TRACKING_TIMEOUT) - || entity.id() == player.id() - }); - } - - /// Ensures that: - /// 1. An sfx.ron entry exists for an SFX event - /// 2. The sfx has not been played since it's timeout threshold has elapsed, - /// which prevents firing every tick - fn should_emit( - previous_state: &PreviousEntityState, - sfx_trigger_item: Option<(&SfxEvent, &SfxTriggerItem)>, - ) -> bool { - if let Some((event, item)) = sfx_trigger_item { - if &previous_state.event == event { - previous_state.time.elapsed().as_secs_f32() >= item.threshold - } else { - true - } - } else { - false - } - } - - fn map_event( - character_state: &CharacterState, - previous_state: &PreviousEntityState, - inventory: &Inventory, - ) -> SfxEvent { - if let Some(item) = inventory.equipped(EquipSlot::ActiveMainhand) { - if let ItemKind::Tool(data) = item.kind() { - if character_state.is_attack() { - return SfxEvent::Attack( - CharacterAbilityType::from(character_state), - data.kind, - ); - } else if let Some(wield_event) = match ( - previous_state.weapon_drawn, - character_state.is_dodge(), - Self::weapon_drawn(character_state), - ) { - (false, false, true) => Some(SfxEvent::Wield(data.kind)), - (true, false, false) => Some(SfxEvent::Unwield(data.kind)), - _ => None, - } { - return wield_event; - } - } - // Check for attacking states - } - - SfxEvent::Idle - } - - /// This helps us determine whether we should be emitting the Wield/Unwield - /// events. For now, consider either CharacterState::Wielding or - /// ::Equipping to mean the weapon is drawn. This will need updating if the - /// animations change to match the wield_duration associated with the weapon - fn weapon_drawn(character: &CharacterState) -> bool { - character.is_wield() || matches!(character, CharacterState::Equipping { .. }) - } -} - -#[cfg(test)] mod tests; diff --git a/voxygen/src/audio/sfx/event_mapper/combat/tests.rs b/voxygen/src/audio/sfx/event_mapper/combat/tests.rs deleted file mode 100644 index 14fb308459..0000000000 --- a/voxygen/src/audio/sfx/event_mapper/combat/tests.rs +++ /dev/null @@ -1,239 +0,0 @@ -use super::*; -use crate::audio::sfx::SfxEvent; -use common::{ - combat::{self, DamageKind}, - comp::{ - inventory::loadout_builder::LoadoutBuilder, item::tool::ToolKind, CharacterAbilityType, - CharacterState, InputKind, Item, - }, - states, -}; -use std::time::{Duration, Instant}; - -#[test] -fn maps_wield_while_equipping() { - let loadout = LoadoutBuilder::empty() - .active_mainhand(Some(Item::new_from_asset_expect( - "common.items.weapons.axe.starter_axe", - ))) - .build(); - let inventory = Inventory::new_with_loadout(loadout); - - let result = CombatEventMapper::map_event( - &CharacterState::Equipping(states::equipping::Data { - static_data: states::equipping::StaticData { - buildup_duration: Duration::from_millis(10), - }, - timer: Duration::default(), - is_sneaking: false, - }), - &PreviousEntityState { - event: SfxEvent::Idle, - time: Instant::now(), - weapon_drawn: false, - }, - &inventory, - ); - - assert_eq!(result, SfxEvent::Wield(ToolKind::Axe)); -} - -#[test] -fn maps_unwield() { - let loadout = LoadoutBuilder::empty() - .active_mainhand(Some(Item::new_from_asset_expect( - "common.items.weapons.bow.starter", - ))) - .build(); - let inventory = Inventory::new_with_loadout(loadout); - - let result = CombatEventMapper::map_event( - &CharacterState::default(), - &PreviousEntityState { - event: SfxEvent::Idle, - time: Instant::now(), - weapon_drawn: true, - }, - &inventory, - ); - - assert_eq!(result, SfxEvent::Unwield(ToolKind::Bow)); -} - -#[test] -fn maps_basic_melee() { - let loadout = LoadoutBuilder::empty() - .active_mainhand(Some(Item::new_from_asset_expect( - "common.items.weapons.axe.starter_axe", - ))) - .build(); - let inventory = Inventory::new_with_loadout(loadout); - - let result = CombatEventMapper::map_event( - &CharacterState::BasicMelee(states::basic_melee::Data { - static_data: states::basic_melee::StaticData { - buildup_duration: Duration::default(), - swing_duration: Duration::default(), - recover_duration: Duration::default(), - base_damage: 10.0, - base_poise_damage: 10.0, - knockback: combat::Knockback { - strength: 0.0, - direction: combat::KnockbackDir::Away, - }, - range: 1.0, - max_angle: 1.0, - ability_info: empty_ability_info(), - damage_effect: None, - damage_kind: DamageKind::Slashing, - }, - timer: Duration::default(), - stage_section: states::utils::StageSection::Buildup, - exhausted: false, - }), - &PreviousEntityState { - event: SfxEvent::Idle, - time: Instant::now(), - weapon_drawn: true, - }, - &inventory, - ); - - assert_eq!( - result, - SfxEvent::Attack(CharacterAbilityType::BasicMelee, ToolKind::Axe) - ); -} - -#[test] -fn matches_ability_stage() { - let loadout = LoadoutBuilder::empty() - .active_mainhand(Some(Item::new_from_asset_expect( - "common.items.weapons.sword.starter", - ))) - .build(); - let inventory = Inventory::new_with_loadout(loadout); - - let result = CombatEventMapper::map_event( - &CharacterState::ComboMelee(states::combo_melee::Data { - static_data: states::combo_melee::StaticData { - num_stages: 1, - stage_data: vec![states::combo_melee::Stage { - stage: 1, - base_damage: 100.0, - base_poise_damage: 100.0, - damage_increase: 10.0, - poise_damage_increase: 10.0, - knockback: 10.0, - range: 4.0, - angle: 30.0, - base_buildup_duration: Duration::from_millis(500), - base_swing_duration: Duration::from_millis(200), - hit_timing: 0.5, - base_recover_duration: Duration::from_millis(400), - forward_movement: 0.5, - damage_kind: DamageKind::Slashing, - damage_effect: None, - }], - initial_energy_gain: 0.0, - max_energy_gain: 100.0, - energy_increase: 20.0, - speed_increase: 0.05, - max_speed_increase: 0.8, - scales_from_combo: 2, - is_interruptible: true, - ori_modifier: 1.0, - ability_info: empty_ability_info(), - }, - exhausted: false, - stage: 1, - timer: Duration::default(), - stage_section: states::utils::StageSection::Action, - }), - &PreviousEntityState { - event: SfxEvent::Idle, - time: Instant::now(), - weapon_drawn: true, - }, - &inventory, - ); - - assert_eq!( - result, - SfxEvent::Attack( - CharacterAbilityType::ComboMelee(states::utils::StageSection::Action, 1), - ToolKind::Sword - ) - ); -} - -#[test] -fn ignores_different_ability_stage() { - let loadout = LoadoutBuilder::empty() - .active_mainhand(Some(Item::new_from_asset_expect( - "common.items.weapons.axe.starter_axe", - ))) - .build(); - let inventory = Inventory::new_with_loadout(loadout); - - let result = CombatEventMapper::map_event( - &CharacterState::ComboMelee(states::combo_melee::Data { - static_data: states::combo_melee::StaticData { - num_stages: 1, - stage_data: vec![states::combo_melee::Stage { - stage: 1, - base_damage: 100.0, - base_poise_damage: 100.0, - damage_increase: 100.0, - poise_damage_increase: 10.0, - knockback: 10.0, - range: 4.0, - angle: 30.0, - base_buildup_duration: Duration::from_millis(500), - base_swing_duration: Duration::from_millis(200), - hit_timing: 0.5, - base_recover_duration: Duration::from_millis(400), - forward_movement: 0.5, - damage_kind: DamageKind::Slashing, - damage_effect: None, - }], - initial_energy_gain: 0.0, - max_energy_gain: 100.0, - energy_increase: 20.0, - speed_increase: 0.05, - max_speed_increase: 0.8, - scales_from_combo: 2, - is_interruptible: true, - ori_modifier: 1.0, - ability_info: empty_ability_info(), - }, - exhausted: false, - stage: 1, - timer: Duration::default(), - stage_section: states::utils::StageSection::Action, - }), - &PreviousEntityState { - event: SfxEvent::Idle, - time: Instant::now(), - weapon_drawn: true, - }, - &inventory, - ); - - assert_ne!( - result, - SfxEvent::Attack( - CharacterAbilityType::ComboMelee(states::utils::StageSection::Action, 2), - ToolKind::Sword - ) - ); -} - -fn empty_ability_info() -> states::utils::AbilityInfo { - states::utils::AbilityInfo { - tool: None, - hand: None, - input: InputKind::Primary, - input_attr: None, - } -} diff --git a/voxygen/src/audio/sfx/event_mapper/mod.rs b/voxygen/src/audio/sfx/event_mapper/mod.rs deleted file mode 100644 index 844c472ad9..0000000000 --- a/voxygen/src/audio/sfx/event_mapper/mod.rs +++ /dev/null @@ -1,72 +0,0 @@ -mod block; -mod campfire; -mod combat; -mod movement; - -use client::Client; -use common::terrain::TerrainChunk; -use common_state::State; - -use block::BlockEventMapper; -use campfire::CampfireEventMapper; -use combat::CombatEventMapper; -use movement::MovementEventMapper; - -use super::SfxTriggers; -use crate::{ - scene::{Camera, Terrain}, - AudioFrontend, -}; - -trait EventMapper { - fn maintain( - &mut self, - audio: &mut AudioFrontend, - state: &State, - player_entity: specs::Entity, - camera: &Camera, - triggers: &SfxTriggers, - terrain: &Terrain, - client: &Client, - ); -} - -pub struct SfxEventMapper { - mappers: Vec>, -} - -impl SfxEventMapper { - pub fn new() -> Self { - Self { - mappers: vec![ - Box::new(CombatEventMapper::new()), - Box::new(MovementEventMapper::new()), - Box::new(BlockEventMapper::new()), - Box::new(CampfireEventMapper::new()), - ], - } - } - - pub fn maintain( - &mut self, - audio: &mut AudioFrontend, - state: &State, - player_entity: specs::Entity, - camera: &Camera, - triggers: &SfxTriggers, - terrain: &Terrain, - client: &Client, - ) { - for mapper in &mut self.mappers { - mapper.maintain( - audio, - state, - player_entity, - camera, - triggers, - terrain, - client, - ); - } - } -} diff --git a/voxygen/src/audio/sfx/event_mapper/movement/tests.rs b/voxygen/src/audio/sfx/event_mapper/movement/tests.rs deleted file mode 100644 index 8a31168fc9..0000000000 --- a/voxygen/src/audio/sfx/event_mapper/movement/tests.rs +++ /dev/null @@ -1,358 +0,0 @@ -use super::*; -use crate::audio::sfx::SfxEvent; -use common::{ - comp::{ - bird_large, humanoid, quadruped_medium, quadruped_small, Body, CharacterState, InputKind, - Ori, PhysicsState, - }, - states, - terrain::{Block, BlockKind}, -}; -use std::time::{Duration, Instant}; - -#[test] -fn no_item_config_no_emit() { - let previous_state = PreviousEntityState::default(); - let result = MovementEventMapper::should_emit(&previous_state, None); - - assert!(!result); -} - -#[test] -fn config_but_played_since_threshold_no_emit() { - let trigger_item = SfxTriggerItem { - files: vec![String::from("some.path.to.sfx.file")], - threshold: 1.0, - }; - - // Triggered a 'Run' 0 seconds ago - let previous_state = PreviousEntityState { - event: SfxEvent::Run(BlockKind::Grass), - time: Instant::now(), - on_ground: true, - in_water: false, - distance_travelled: 0.0, - }; - - let result = MovementEventMapper::should_emit( - &previous_state, - Some((&SfxEvent::Run(BlockKind::Grass), &trigger_item)), - ); - - assert!(!result); -} - -#[test] -fn config_and_not_played_since_threshold_emits() { - let trigger_item = SfxTriggerItem { - files: vec![String::from("some.path.to.sfx.file")], - threshold: 0.5, - }; - - let previous_state = PreviousEntityState { - event: SfxEvent::Idle, - time: Instant::now().checked_add(Duration::from_secs(1)).unwrap(), - on_ground: true, - in_water: false, - distance_travelled: 0.0, - }; - - let result = MovementEventMapper::should_emit( - &previous_state, - Some((&SfxEvent::Run(BlockKind::Grass), &trigger_item)), - ); - - assert!(result); -} - -#[test] -fn same_previous_event_elapsed_emits() { - let trigger_item = SfxTriggerItem { - files: vec![String::from("some.path.to.sfx.file")], - threshold: 0.5, - }; - - let previous_state = PreviousEntityState { - event: SfxEvent::Run(BlockKind::Grass), - time: Instant::now() - .checked_sub(Duration::from_millis(1800)) - .unwrap(), - on_ground: true, - in_water: false, - distance_travelled: 2.0, - }; - - let result = MovementEventMapper::should_emit( - &previous_state, - Some((&SfxEvent::Run(BlockKind::Grass), &trigger_item)), - ); - - assert!(result); -} - -#[test] -fn maps_idle() { - let result = MovementEventMapper::map_movement_event( - &CharacterState::Idle(common::states::idle::Data { is_sneaking: false }), - &PhysicsState { - on_ground: Some(Block::empty()), - ..Default::default() - }, - &PreviousEntityState { - event: SfxEvent::Idle, - time: Instant::now(), - on_ground: true, - in_water: false, - distance_travelled: 0.0, - }, - Vec3::zero(), - BlockKind::Grass, - ); - - assert_eq!(result, SfxEvent::Idle); -} - -#[test] -fn maps_run_with_sufficient_velocity() { - let result = MovementEventMapper::map_movement_event( - &CharacterState::Idle(common::states::idle::Data { is_sneaking: false }), - &PhysicsState { - on_ground: Some(Block::empty()), - ..Default::default() - }, - &PreviousEntityState { - event: SfxEvent::Idle, - time: Instant::now(), - on_ground: true, - in_water: false, - distance_travelled: 0.0, - }, - Vec3::new(0.5, 0.8, 0.0), - BlockKind::Grass, - ); - - assert_eq!(result, SfxEvent::Run(BlockKind::Grass)); -} - -#[test] -fn does_not_map_run_with_insufficient_velocity() { - let result = MovementEventMapper::map_movement_event( - &CharacterState::Idle(common::states::idle::Data { is_sneaking: false }), - &PhysicsState { - on_ground: Some(Block::empty()), - ..Default::default() - }, - &PreviousEntityState { - event: SfxEvent::Idle, - time: Instant::now(), - on_ground: true, - in_water: false, - distance_travelled: 0.0, - }, - Vec3::new(0.02, 0.0001, 0.0), - BlockKind::Grass, - ); - - assert_eq!(result, SfxEvent::Idle); -} - -#[test] -fn does_not_map_run_with_sufficient_velocity_but_not_on_ground() { - let result = MovementEventMapper::map_movement_event( - &CharacterState::Idle(common::states::idle::Data { is_sneaking: false }), - &Default::default(), - &PreviousEntityState { - event: SfxEvent::Idle, - time: Instant::now(), - on_ground: false, - in_water: false, - distance_travelled: 0.0, - }, - Vec3::new(0.5, 0.8, 0.0), - BlockKind::Grass, - ); - - assert_eq!(result, SfxEvent::Idle); -} - -#[test] -fn maps_roll() { - let result = MovementEventMapper::map_movement_event( - &CharacterState::Roll(states::roll::Data { - static_data: states::roll::StaticData { - buildup_duration: Duration::default(), - movement_duration: Duration::default(), - recover_duration: Duration::default(), - roll_strength: 0.0, - immune_melee: false, - ability_info: empty_ability_info(), - }, - timer: Duration::default(), - stage_section: states::utils::StageSection::Buildup, - was_wielded: true, - is_sneaking: false, - was_combo: None, - }), - &PhysicsState { - on_ground: Some(Block::empty()), - ..Default::default() - }, - &PreviousEntityState { - event: SfxEvent::Run(BlockKind::Grass), - time: Instant::now(), - on_ground: true, - in_water: false, - distance_travelled: 0.0, - }, - Vec3::new(0.5, 0.5, 0.0), - BlockKind::Grass, - ); - - assert_eq!(result, SfxEvent::Roll); -} - -#[test] -fn maps_land_on_ground_to_run() { - let result = MovementEventMapper::map_movement_event( - &CharacterState::Idle(common::states::idle::Data { is_sneaking: false }), - &PhysicsState { - on_ground: Some(Block::empty()), - ..Default::default() - }, - &PreviousEntityState { - event: SfxEvent::Idle, - time: Instant::now(), - on_ground: false, - in_water: false, - distance_travelled: 0.0, - }, - Vec3::zero(), - BlockKind::Grass, - ); - - assert_eq!(result, SfxEvent::Run(BlockKind::Grass)); -} - -#[test] -fn maps_glider_open() { - let result = MovementEventMapper::map_movement_event( - &CharacterState::Glide(states::glide::Data::new(10.0, 1.0, Ori::default())), - &Default::default(), - &PreviousEntityState { - event: SfxEvent::Jump, - time: Instant::now(), - on_ground: false, - in_water: false, - distance_travelled: 0.0, - }, - Vec3::zero(), - BlockKind::Grass, - ); - - assert_eq!(result, SfxEvent::GliderOpen); -} - -#[test] -fn maps_glide() { - let result = MovementEventMapper::map_movement_event( - &CharacterState::Glide(states::glide::Data::new(10.0, 1.0, Ori::default())), - &Default::default(), - &PreviousEntityState { - event: SfxEvent::Glide, - time: Instant::now(), - on_ground: false, - in_water: false, - distance_travelled: 0.0, - }, - Vec3::zero(), - BlockKind::Grass, - ); - - assert_eq!(result, SfxEvent::Glide); -} - -#[test] -fn maps_glider_close_when_closing_mid_flight() { - let result = MovementEventMapper::map_movement_event( - &CharacterState::Idle(common::states::idle::Data { is_sneaking: false }), - &Default::default(), - &PreviousEntityState { - event: SfxEvent::Glide, - time: Instant::now(), - on_ground: false, - in_water: false, - distance_travelled: 0.0, - }, - Vec3::zero(), - BlockKind::Grass, - ); - - assert_eq!(result, SfxEvent::GliderClose); -} - -#[test] -#[ignore] -fn maps_glider_close_when_landing() { - let result = MovementEventMapper::map_movement_event( - &CharacterState::Idle(common::states::idle::Data { is_sneaking: false }), - &PhysicsState { - on_ground: Some(Block::empty()), - ..Default::default() - }, - &PreviousEntityState { - event: SfxEvent::Glide, - time: Instant::now(), - on_ground: false, - in_water: false, - distance_travelled: 0.0, - }, - Vec3::zero(), - BlockKind::Grass, - ); - - assert_eq!(result, SfxEvent::GliderClose); -} - -#[test] -fn maps_quadrupeds_running() { - let result = MovementEventMapper::map_non_humanoid_movement_event( - &PhysicsState { - on_ground: Some(Block::empty()), - ..Default::default() - }, - Vec3::new(0.5, 0.8, 0.0), - BlockKind::Grass, - ); - - assert_eq!(result, SfxEvent::Run(BlockKind::Grass)); -} - -#[test] -fn determines_relative_volumes() { - let human = - MovementEventMapper::get_volume_for_body_type(&Body::Humanoid(humanoid::Body::random())); - - let quadruped_medium = MovementEventMapper::get_volume_for_body_type(&Body::QuadrupedMedium( - quadruped_medium::Body::random(), - )); - - let quadruped_small = MovementEventMapper::get_volume_for_body_type(&Body::QuadrupedSmall( - quadruped_small::Body::random(), - )); - - let bird_large = - MovementEventMapper::get_volume_for_body_type(&Body::BirdLarge(bird_large::Body::random())); - - assert!(quadruped_medium < human); - assert!(quadruped_small < quadruped_medium); - assert!(bird_large < quadruped_small); -} - -fn empty_ability_info() -> states::utils::AbilityInfo { - states::utils::AbilityInfo { - tool: None, - hand: None, - input: InputKind::Primary, - input_attr: None, - } -} From 1cc69bbca1fc49ff7790f9330e2ba522de8985b4 Mon Sep 17 00:00:00 2001 From: DoctorKompot Date: Fri, 10 Dec 2021 21:54:17 +0200 Subject: [PATCH 18/26] fixed Pfau's turbans and manually added back mod.rs files that got deleted previously --- .../voxel/armor/merchant/turban_dwarf.vox | 4 +- .../voxel/armor/merchant/turban_human.vox | 4 +- .../voxel/armor/merchant/turban_orc.vox | 4 +- .../voxel/armor/merchant/turban_undead.vox | 4 +- .../src/audio/sfx/event_mapper/block/mod.rs | 297 +++++++++++++++ .../audio/sfx/event_mapper/campfire/mod.rs | 129 +++++++ .../src/audio/sfx/event_mapper/combat/mod.rs | 182 +++++++++ .../audio/sfx/event_mapper/combat/tests.rs | 239 ++++++++++++ voxygen/src/audio/sfx/event_mapper/mod.rs | 72 ++++ .../audio/sfx/event_mapper/movement/tests.rs | 358 ++++++++++++++++++ 10 files changed, 1285 insertions(+), 8 deletions(-) create mode 100644 voxygen/src/audio/sfx/event_mapper/block/mod.rs create mode 100644 voxygen/src/audio/sfx/event_mapper/campfire/mod.rs create mode 100644 voxygen/src/audio/sfx/event_mapper/combat/mod.rs create mode 100644 voxygen/src/audio/sfx/event_mapper/combat/tests.rs create mode 100644 voxygen/src/audio/sfx/event_mapper/mod.rs create mode 100644 voxygen/src/audio/sfx/event_mapper/movement/tests.rs diff --git a/assets/voxygen/voxel/armor/merchant/turban_dwarf.vox b/assets/voxygen/voxel/armor/merchant/turban_dwarf.vox index 37de7c3c44..c5a4436420 100644 --- a/assets/voxygen/voxel/armor/merchant/turban_dwarf.vox +++ b/assets/voxygen/voxel/armor/merchant/turban_dwarf.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7575d723a0f9574b790c1737abd5be26a6bb11ba50ab315227ef8335d95246e7 -size 13952 +oid sha256:36801a29d54fa65c47975574b3aa950d0920ef00bfb6b1802c1d9b489910808e +size 68435 diff --git a/assets/voxygen/voxel/armor/merchant/turban_human.vox b/assets/voxygen/voxel/armor/merchant/turban_human.vox index f59e91e43c..ca4dcfb578 100644 --- a/assets/voxygen/voxel/armor/merchant/turban_human.vox +++ b/assets/voxygen/voxel/armor/merchant/turban_human.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:59ba791be2f984b7c402099d11059de16353a92ae7b0087844c2cc8edfea1dd4 -size 13964 +oid sha256:cfe4d8a90860a4fecb88f2d79b334f72503dd95e797e365c196d7195c7da221a +size 68447 diff --git a/assets/voxygen/voxel/armor/merchant/turban_orc.vox b/assets/voxygen/voxel/armor/merchant/turban_orc.vox index 6f59b023f7..bb1a199054 100644 --- a/assets/voxygen/voxel/armor/merchant/turban_orc.vox +++ b/assets/voxygen/voxel/armor/merchant/turban_orc.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:510c98209d4e27d4e6d1bdef7a571a01f1a099077221acb3b2ea533dba1bb023 -size 13956 +oid sha256:409c9693cf68132cb68e037c4d0df29de5cf5a27c492435630aacbf6c8731c4c +size 68439 diff --git a/assets/voxygen/voxel/armor/merchant/turban_undead.vox b/assets/voxygen/voxel/armor/merchant/turban_undead.vox index f259b8daf0..d21ad8561b 100644 --- a/assets/voxygen/voxel/armor/merchant/turban_undead.vox +++ b/assets/voxygen/voxel/armor/merchant/turban_undead.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:310a44423ea38f4a298e31ac27812036708b8970751df9386e14bc8fff2830c6 -size 13856 +oid sha256:3cb6a6bac3ced5ac86269ed8834d98aef6f1035009d84e1c33eb9e6e5bd6e51b +size 68339 diff --git a/voxygen/src/audio/sfx/event_mapper/block/mod.rs b/voxygen/src/audio/sfx/event_mapper/block/mod.rs new file mode 100644 index 0000000000..33dce469c6 --- /dev/null +++ b/voxygen/src/audio/sfx/event_mapper/block/mod.rs @@ -0,0 +1,297 @@ +/// EventMapper::Block watches the sound emitting blocks within +/// chunk range of the player and emits ambient sfx +use crate::{ + audio::sfx::{SfxEvent, SfxTriggerItem, SfxTriggers, SFX_DIST_LIMIT_SQR}, + scene::{terrain::BlocksOfInterest, Camera, Terrain}, + AudioFrontend, +}; + +use super::EventMapper; +use client::Client; +use common::{ + comp::Pos, + spiral::Spiral2d, + terrain::TerrainChunk, + vol::{ReadVol, RectRasterableVol}, +}; +use common_state::State; +use hashbrown::HashMap; +use rand::{thread_rng, Rng}; +use std::time::{Duration, Instant}; +use vek::*; + +#[derive(Clone, PartialEq)] +struct PreviousBlockState { + event: SfxEvent, + time: Instant, +} + +impl Default for PreviousBlockState { + fn default() -> Self { + Self { + event: SfxEvent::Idle, + time: Instant::now() + .checked_add(Duration::from_millis(thread_rng().gen_range(0..500))) + .unwrap_or_else(Instant::now), + } + } +} + +pub struct BlockEventMapper { + history: HashMap, PreviousBlockState>, +} + +impl EventMapper for BlockEventMapper { + fn maintain( + &mut self, + audio: &mut AudioFrontend, + state: &State, + player_entity: specs::Entity, + camera: &Camera, + triggers: &SfxTriggers, + terrain: &Terrain, + client: &Client, + ) { + let focus_off = camera.get_focus_pos().map(f32::trunc); + let cam_pos = camera.dependents().cam_pos + focus_off; + + // Get the player position and chunk + let player_pos = state + .read_component_copied::(player_entity) + .unwrap_or_default(); + let player_chunk = player_pos.0.xy().map2(TerrainChunk::RECT_SIZE, |e, sz| { + (e.floor() as i32).div_euclid(sz as i32) + }); + + // For determining if underground/crickets should chirp + let (terrain_alt, temp) = match client.current_chunk() { + Some(chunk) => (chunk.meta().alt(), chunk.meta().temp()), + None => (0.0, 0.0), + }; + + struct BlockSounds<'a> { + // The function to select the blocks of interest that we should emit from + blocks: fn(&'a BlocksOfInterest) -> &'a [Vec3], + // The range, in chunks, that the particles should be generated in from the player + range: usize, + // The sound of the generated particle + sfx: SfxEvent, + // The volume of the sfx + volume: f32, + // Condition that must be true to play + cond: fn(&State) -> bool, + } + + let sounds: &[BlockSounds] = &[ + BlockSounds { + blocks: |boi| &boi.leaves, + range: 1, + sfx: SfxEvent::Birdcall, + volume: 1.0, + cond: |st| st.get_day_period().is_light(), + }, + BlockSounds { + blocks: |boi| &boi.leaves, + range: 1, + sfx: SfxEvent::Owl, + volume: 1.0, + cond: |st| st.get_day_period().is_dark(), + }, + // BlockSounds { + // blocks: |boi| &boi.river, + // range: 1, + // sfx: SfxEvent::RunningWater, + // volume: 1.0, + // cond: |_| true, + // }, + //BlockSounds { + // blocks: |boi| &boi.embers, + // range: 1, + // sfx: SfxEvent::Embers, + // volume: 0.15, + // //volume: 0.05, + // cond: |_| true, + // //cond: |st| st.get_day_period().is_dark(), + //}, + BlockSounds { + blocks: |boi| &boi.frogs, + range: 1, + sfx: SfxEvent::Frog, + volume: 0.8, + cond: |st| st.get_day_period().is_dark(), + }, + //BlockSounds { + // blocks: |boi| &boi.flowers, + // range: 4, + // sfx: SfxEvent::LevelUp, + // volume: 1.0, + // cond: |st| st.get_day_period().is_dark(), + //}, + BlockSounds { + blocks: |boi| &boi.cricket1, + range: 1, + sfx: SfxEvent::Cricket1, + volume: 0.33, + cond: |st| st.get_day_period().is_dark(), + }, + BlockSounds { + blocks: |boi| &boi.cricket2, + range: 1, + sfx: SfxEvent::Cricket2, + volume: 0.33, + cond: |st| st.get_day_period().is_dark(), + }, + BlockSounds { + blocks: |boi| &boi.cricket3, + range: 1, + sfx: SfxEvent::Cricket3, + volume: 0.33, + cond: |st| st.get_day_period().is_dark(), + }, + BlockSounds { + blocks: |boi| &boi.beehives, + range: 1, + sfx: SfxEvent::Bees, + volume: 0.5, + cond: |st| st.get_day_period().is_light(), + }, + ]; + + // Iterate through each kind of block of interest + for sounds in sounds.iter() { + // If the timing condition is false, continue + // or if the player is far enough underground, continue + // TODO Address bird hack properly. See TODO on line 190 + if !(sounds.cond)(state) + || player_pos.0.z < (terrain_alt - 30.0) + || (sounds.sfx == SfxEvent::Birdcall && thread_rng().gen_bool(0.995)) + || (sounds.sfx == SfxEvent::Owl && thread_rng().gen_bool(0.998)) + || (sounds.sfx == SfxEvent::Frog && thread_rng().gen_bool(0.95)) + //Crickets will not chirp below 5 Celsius + || (sounds.sfx == SfxEvent::Cricket1 && (temp < -0.33)) + || (sounds.sfx == SfxEvent::Cricket2 && (temp < -0.33)) + || (sounds.sfx == SfxEvent::Cricket3 && (temp < -0.33)) + { + continue; + } + + // For chunks surrounding the player position + for offset in Spiral2d::new().take((sounds.range * 2 + 1).pow(2)) { + let chunk_pos = player_chunk + offset; + + // Get all the blocks of interest in this chunk + terrain.get(chunk_pos).map(|chunk_data| { + // Get the positions of the blocks of type sounds + let blocks = (sounds.blocks)(&chunk_data.blocks_of_interest); + + let absolute_pos: Vec3 = + Vec3::from(chunk_pos * TerrainChunk::RECT_SIZE.map(|e| e as i32)); + + // Iterate through each individual block + for block in blocks { + // TODO Address this hack properly, potentially by making a new + // block of interest type which picks fewer leaf blocks + // Hack to reduce the number of bird sounds (too many leaf blocks) + if ((sounds.sfx == SfxEvent::Birdcall || sounds.sfx == SfxEvent::Owl) + && thread_rng().gen_bool(0.999)) + || (sounds.sfx == SfxEvent::Frog && thread_rng().gen_bool(0.75)) + { + continue; + } + let block_pos: Vec3 = absolute_pos + block; + let internal_state = self.history.entry(block_pos).or_default(); + + let block_pos = block_pos.map(|x| x as f32); + + if Self::should_emit( + internal_state, + triggers.get_key_value(&sounds.sfx), + temp, + ) { + // If the camera is within SFX distance + if (block_pos.distance_squared(cam_pos)) < SFX_DIST_LIMIT_SQR { + let underwater = state + .terrain() + .get(cam_pos.map(|e| e.floor() as i32)) + .map(|b| b.is_liquid()) + .unwrap_or(false); + + let sfx_trigger_item = triggers.get_key_value(&sounds.sfx); + audio.emit_sfx( + sfx_trigger_item, + block_pos, + Some(sounds.volume), + underwater, + ); + } + internal_state.time = Instant::now(); + internal_state.event = sounds.sfx.clone(); + } + } + }); + } + } + } +} + +impl BlockEventMapper { + pub fn new() -> Self { + Self { + history: HashMap::new(), + } + } + + /// Ensures that: + /// 1. An sfx.ron entry exists for an SFX event + /// 2. The sfx has not been played since it's timeout threshold has elapsed, + /// which prevents firing every tick + /// Note that with so many blocks to choose from and different blocks being + /// selected each time, this is not perfect, but does reduce the number of + /// plays from blocks that have already emitted sfx and are stored in the + /// BlockEventMapper history. + fn should_emit( + previous_state: &PreviousBlockState, + sfx_trigger_item: Option<(&SfxEvent, &SfxTriggerItem)>, + temp: f32, + ) -> bool { + if let Some((event, item)) = sfx_trigger_item { + //The interval between cricket chirps calculated by converting chunk + // temperature to centigrade (we should create a function for this) and applying + // the "cricket formula" to it + let cricket_interval = (25.0 / (3.0 * ((temp * 30.0) + 15.0))).max(0.5); + if &previous_state.event == event { + //In case certain sounds need modification to their threshold, + //use match event + match event { + SfxEvent::Cricket1 => { + previous_state.time.elapsed().as_secs_f32() + >= cricket_interval + thread_rng().gen_range(-0.1..0.1) + }, + SfxEvent::Cricket2 => { + //the length and manner of this sound is quite different + if cricket_interval < 0.75 { + previous_state.time.elapsed().as_secs_f32() >= 0.75 + } else { + previous_state.time.elapsed().as_secs_f32() + >= cricket_interval + thread_rng().gen_range(-0.1..0.1) + } + }, + SfxEvent::Cricket3 => { + previous_state.time.elapsed().as_secs_f32() + >= cricket_interval + thread_rng().gen_range(-0.1..0.1) + }, + //Adds random factor to frogs (probably doesn't do anything most of the time) + SfxEvent::Frog => { + previous_state.time.elapsed().as_secs_f32() + >= thread_rng().gen_range(-2.0..2.0) + }, + _ => previous_state.time.elapsed().as_secs_f32() >= item.threshold, + } + } else { + true + } + } else { + false + } + } +} diff --git a/voxygen/src/audio/sfx/event_mapper/campfire/mod.rs b/voxygen/src/audio/sfx/event_mapper/campfire/mod.rs new file mode 100644 index 0000000000..cdd6f9ea68 --- /dev/null +++ b/voxygen/src/audio/sfx/event_mapper/campfire/mod.rs @@ -0,0 +1,129 @@ +/// EventMapper::Campfire maps sfx to campfires +use crate::{ + audio::sfx::{SfxEvent, SfxTriggerItem, SfxTriggers, SFX_DIST_LIMIT_SQR}, + scene::{Camera, Terrain}, + AudioFrontend, +}; + +use super::EventMapper; + +use client::Client; +use common::{ + comp::{object, Body, Pos}, + terrain::TerrainChunk, + vol::ReadVol, +}; +use common_state::State; +use hashbrown::HashMap; +use specs::{Entity as EcsEntity, Join, WorldExt}; +use std::time::{Duration, Instant}; + +#[derive(Clone)] +struct PreviousEntityState { + event: SfxEvent, + time: Instant, +} + +impl Default for PreviousEntityState { + fn default() -> Self { + Self { + event: SfxEvent::Idle, + time: Instant::now(), + } + } +} + +pub struct CampfireEventMapper { + event_history: HashMap, +} + +impl EventMapper for CampfireEventMapper { + fn maintain( + &mut self, + audio: &mut AudioFrontend, + state: &State, + player_entity: specs::Entity, + camera: &Camera, + triggers: &SfxTriggers, + _terrain: &Terrain, + _client: &Client, + ) { + let ecs = state.ecs(); + let focus_off = camera.get_focus_pos().map(f32::trunc); + let cam_pos = camera.dependents().cam_pos + focus_off; + for (entity, body, pos) in ( + &ecs.entities(), + &ecs.read_storage::(), + &ecs.read_storage::(), + ) + .join() + .filter(|(_, _, e_pos)| (e_pos.0.distance_squared(cam_pos)) < SFX_DIST_LIMIT_SQR) + { + if let Body::Object(object::Body::CampfireLit) = body { + let internal_state = self.event_history.entry(entity).or_default(); + + let mapped_event = SfxEvent::Campfire; + + // Check for SFX config entry for this movement + if Self::should_emit(internal_state, triggers.get_key_value(&mapped_event)) { + let underwater = state + .terrain() + .get(cam_pos.map(|e| e.floor() as i32)) + .map(|b| b.is_liquid()) + .unwrap_or(false); + let sfx_trigger_item = triggers.get_key_value(&mapped_event); + const CAMPFIRE_VOLUME: f32 = 0.8; + audio.emit_sfx(sfx_trigger_item, pos.0, Some(CAMPFIRE_VOLUME), underwater); + internal_state.time = Instant::now(); + } + + // update state to determine the next event. We only record the time (above) if + // it was dispatched + internal_state.event = mapped_event; + } + } + self.cleanup(player_entity); + } +} + +impl CampfireEventMapper { + pub fn new() -> Self { + Self { + event_history: HashMap::new(), + } + } + + /// As the player explores the world, we track the last event of the nearby + /// entities to determine the correct SFX item to play next based on + /// their activity. `cleanup` will remove entities from event tracking if + /// they have not triggered an event for > n seconds. This prevents + /// stale records from bloating the Map size. + fn cleanup(&mut self, player: EcsEntity) { + const TRACKING_TIMEOUT: u64 = 10; + + let now = Instant::now(); + self.event_history.retain(|entity, event| { + now.duration_since(event.time) < Duration::from_secs(TRACKING_TIMEOUT) + || entity.id() == player.id() + }); + } + + /// Ensures that: + /// 1. An sfx.ron entry exists for an SFX event + /// 2. The sfx has not been played since it's timeout threshold has elapsed, + /// which prevents firing every tick + fn should_emit( + previous_state: &PreviousEntityState, + sfx_trigger_item: Option<(&SfxEvent, &SfxTriggerItem)>, + ) -> bool { + if let Some((event, item)) = sfx_trigger_item { + if &previous_state.event == event { + previous_state.time.elapsed().as_secs_f32() >= item.threshold + } else { + true + } + } else { + false + } + } +} diff --git a/voxygen/src/audio/sfx/event_mapper/combat/mod.rs b/voxygen/src/audio/sfx/event_mapper/combat/mod.rs new file mode 100644 index 0000000000..9014010c56 --- /dev/null +++ b/voxygen/src/audio/sfx/event_mapper/combat/mod.rs @@ -0,0 +1,182 @@ +/// EventMapper::Combat watches the combat states of surrounding entities' and +/// emits sfx related to weapons and attacks/abilities +use crate::{ + audio::sfx::{SfxEvent, SfxTriggerItem, SfxTriggers, SFX_DIST_LIMIT_SQR}, + scene::{Camera, Terrain}, + AudioFrontend, +}; + +use super::EventMapper; + +use client::Client; +use common::{ + comp::{ + inventory::slot::EquipSlot, item::ItemKind, CharacterAbilityType, CharacterState, + Inventory, Pos, + }, + terrain::TerrainChunk, + vol::ReadVol, +}; +use common_state::State; +use hashbrown::HashMap; +use specs::{Entity as EcsEntity, Join, WorldExt}; +use std::time::{Duration, Instant}; + +#[derive(Clone)] +struct PreviousEntityState { + event: SfxEvent, + time: Instant, + weapon_drawn: bool, +} + +impl Default for PreviousEntityState { + fn default() -> Self { + Self { + event: SfxEvent::Idle, + time: Instant::now(), + weapon_drawn: false, + } + } +} + +pub struct CombatEventMapper { + event_history: HashMap, +} + +impl EventMapper for CombatEventMapper { + fn maintain( + &mut self, + audio: &mut AudioFrontend, + state: &State, + player_entity: specs::Entity, + camera: &Camera, + triggers: &SfxTriggers, + _terrain: &Terrain, + _client: &Client, + ) { + let ecs = state.ecs(); + + let focus_off = camera.get_focus_pos().map(f32::trunc); + let cam_pos = camera.dependents().cam_pos + focus_off; + + for (entity, pos, inventory, character) in ( + &ecs.entities(), + &ecs.read_storage::(), + ecs.read_storage::().maybe(), + ecs.read_storage::().maybe(), + ) + .join() + .filter(|(_, e_pos, ..)| (e_pos.0.distance_squared(cam_pos)) < SFX_DIST_LIMIT_SQR) + { + if let Some(character) = character { + let sfx_state = self.event_history.entry(entity).or_default(); + + let mapped_event = inventory.map_or(SfxEvent::Idle, |inv| { + Self::map_event(character, sfx_state, inv) + }); + + // Check for SFX config entry for this movement + if Self::should_emit(sfx_state, triggers.get_key_value(&mapped_event)) { + let underwater = state + .terrain() + .get(cam_pos.map(|e| e.floor() as i32)) + .map(|b| b.is_liquid()) + .unwrap_or(false); + + let sfx_trigger_item = triggers.get_key_value(&mapped_event); + audio.emit_sfx(sfx_trigger_item, pos.0, None, underwater); + sfx_state.time = Instant::now(); + } + + // update state to determine the next event. We only record the time (above) if + // it was dispatched + sfx_state.event = mapped_event; + sfx_state.weapon_drawn = Self::weapon_drawn(character); + } + } + + self.cleanup(player_entity); + } +} + +impl CombatEventMapper { + pub fn new() -> Self { + Self { + event_history: HashMap::new(), + } + } + + /// As the player explores the world, we track the last event of the nearby + /// entities to determine the correct SFX item to play next based on + /// their activity. `cleanup` will remove entities from event tracking if + /// they have not triggered an event for > n seconds. This prevents + /// stale records from bloating the Map size. + fn cleanup(&mut self, player: EcsEntity) { + const TRACKING_TIMEOUT: u64 = 10; + + let now = Instant::now(); + self.event_history.retain(|entity, event| { + now.duration_since(event.time) < Duration::from_secs(TRACKING_TIMEOUT) + || entity.id() == player.id() + }); + } + + /// Ensures that: + /// 1. An sfx.ron entry exists for an SFX event + /// 2. The sfx has not been played since it's timeout threshold has elapsed, + /// which prevents firing every tick + fn should_emit( + previous_state: &PreviousEntityState, + sfx_trigger_item: Option<(&SfxEvent, &SfxTriggerItem)>, + ) -> bool { + if let Some((event, item)) = sfx_trigger_item { + if &previous_state.event == event { + previous_state.time.elapsed().as_secs_f32() >= item.threshold + } else { + true + } + } else { + false + } + } + + fn map_event( + character_state: &CharacterState, + previous_state: &PreviousEntityState, + inventory: &Inventory, + ) -> SfxEvent { + if let Some(item) = inventory.equipped(EquipSlot::ActiveMainhand) { + if let ItemKind::Tool(data) = item.kind() { + if character_state.is_attack() { + return SfxEvent::Attack( + CharacterAbilityType::from(character_state), + data.kind, + ); + } else if let Some(wield_event) = match ( + previous_state.weapon_drawn, + character_state.is_dodge(), + Self::weapon_drawn(character_state), + ) { + (false, false, true) => Some(SfxEvent::Wield(data.kind)), + (true, false, false) => Some(SfxEvent::Unwield(data.kind)), + _ => None, + } { + return wield_event; + } + } + // Check for attacking states + } + + SfxEvent::Idle + } + + /// This helps us determine whether we should be emitting the Wield/Unwield + /// events. For now, consider either CharacterState::Wielding or + /// ::Equipping to mean the weapon is drawn. This will need updating if the + /// animations change to match the wield_duration associated with the weapon + fn weapon_drawn(character: &CharacterState) -> bool { + character.is_wield() || matches!(character, CharacterState::Equipping { .. }) + } +} + +#[cfg(test)] mod tests; diff --git a/voxygen/src/audio/sfx/event_mapper/combat/tests.rs b/voxygen/src/audio/sfx/event_mapper/combat/tests.rs new file mode 100644 index 0000000000..14fb308459 --- /dev/null +++ b/voxygen/src/audio/sfx/event_mapper/combat/tests.rs @@ -0,0 +1,239 @@ +use super::*; +use crate::audio::sfx::SfxEvent; +use common::{ + combat::{self, DamageKind}, + comp::{ + inventory::loadout_builder::LoadoutBuilder, item::tool::ToolKind, CharacterAbilityType, + CharacterState, InputKind, Item, + }, + states, +}; +use std::time::{Duration, Instant}; + +#[test] +fn maps_wield_while_equipping() { + let loadout = LoadoutBuilder::empty() + .active_mainhand(Some(Item::new_from_asset_expect( + "common.items.weapons.axe.starter_axe", + ))) + .build(); + let inventory = Inventory::new_with_loadout(loadout); + + let result = CombatEventMapper::map_event( + &CharacterState::Equipping(states::equipping::Data { + static_data: states::equipping::StaticData { + buildup_duration: Duration::from_millis(10), + }, + timer: Duration::default(), + is_sneaking: false, + }), + &PreviousEntityState { + event: SfxEvent::Idle, + time: Instant::now(), + weapon_drawn: false, + }, + &inventory, + ); + + assert_eq!(result, SfxEvent::Wield(ToolKind::Axe)); +} + +#[test] +fn maps_unwield() { + let loadout = LoadoutBuilder::empty() + .active_mainhand(Some(Item::new_from_asset_expect( + "common.items.weapons.bow.starter", + ))) + .build(); + let inventory = Inventory::new_with_loadout(loadout); + + let result = CombatEventMapper::map_event( + &CharacterState::default(), + &PreviousEntityState { + event: SfxEvent::Idle, + time: Instant::now(), + weapon_drawn: true, + }, + &inventory, + ); + + assert_eq!(result, SfxEvent::Unwield(ToolKind::Bow)); +} + +#[test] +fn maps_basic_melee() { + let loadout = LoadoutBuilder::empty() + .active_mainhand(Some(Item::new_from_asset_expect( + "common.items.weapons.axe.starter_axe", + ))) + .build(); + let inventory = Inventory::new_with_loadout(loadout); + + let result = CombatEventMapper::map_event( + &CharacterState::BasicMelee(states::basic_melee::Data { + static_data: states::basic_melee::StaticData { + buildup_duration: Duration::default(), + swing_duration: Duration::default(), + recover_duration: Duration::default(), + base_damage: 10.0, + base_poise_damage: 10.0, + knockback: combat::Knockback { + strength: 0.0, + direction: combat::KnockbackDir::Away, + }, + range: 1.0, + max_angle: 1.0, + ability_info: empty_ability_info(), + damage_effect: None, + damage_kind: DamageKind::Slashing, + }, + timer: Duration::default(), + stage_section: states::utils::StageSection::Buildup, + exhausted: false, + }), + &PreviousEntityState { + event: SfxEvent::Idle, + time: Instant::now(), + weapon_drawn: true, + }, + &inventory, + ); + + assert_eq!( + result, + SfxEvent::Attack(CharacterAbilityType::BasicMelee, ToolKind::Axe) + ); +} + +#[test] +fn matches_ability_stage() { + let loadout = LoadoutBuilder::empty() + .active_mainhand(Some(Item::new_from_asset_expect( + "common.items.weapons.sword.starter", + ))) + .build(); + let inventory = Inventory::new_with_loadout(loadout); + + let result = CombatEventMapper::map_event( + &CharacterState::ComboMelee(states::combo_melee::Data { + static_data: states::combo_melee::StaticData { + num_stages: 1, + stage_data: vec![states::combo_melee::Stage { + stage: 1, + base_damage: 100.0, + base_poise_damage: 100.0, + damage_increase: 10.0, + poise_damage_increase: 10.0, + knockback: 10.0, + range: 4.0, + angle: 30.0, + base_buildup_duration: Duration::from_millis(500), + base_swing_duration: Duration::from_millis(200), + hit_timing: 0.5, + base_recover_duration: Duration::from_millis(400), + forward_movement: 0.5, + damage_kind: DamageKind::Slashing, + damage_effect: None, + }], + initial_energy_gain: 0.0, + max_energy_gain: 100.0, + energy_increase: 20.0, + speed_increase: 0.05, + max_speed_increase: 0.8, + scales_from_combo: 2, + is_interruptible: true, + ori_modifier: 1.0, + ability_info: empty_ability_info(), + }, + exhausted: false, + stage: 1, + timer: Duration::default(), + stage_section: states::utils::StageSection::Action, + }), + &PreviousEntityState { + event: SfxEvent::Idle, + time: Instant::now(), + weapon_drawn: true, + }, + &inventory, + ); + + assert_eq!( + result, + SfxEvent::Attack( + CharacterAbilityType::ComboMelee(states::utils::StageSection::Action, 1), + ToolKind::Sword + ) + ); +} + +#[test] +fn ignores_different_ability_stage() { + let loadout = LoadoutBuilder::empty() + .active_mainhand(Some(Item::new_from_asset_expect( + "common.items.weapons.axe.starter_axe", + ))) + .build(); + let inventory = Inventory::new_with_loadout(loadout); + + let result = CombatEventMapper::map_event( + &CharacterState::ComboMelee(states::combo_melee::Data { + static_data: states::combo_melee::StaticData { + num_stages: 1, + stage_data: vec![states::combo_melee::Stage { + stage: 1, + base_damage: 100.0, + base_poise_damage: 100.0, + damage_increase: 100.0, + poise_damage_increase: 10.0, + knockback: 10.0, + range: 4.0, + angle: 30.0, + base_buildup_duration: Duration::from_millis(500), + base_swing_duration: Duration::from_millis(200), + hit_timing: 0.5, + base_recover_duration: Duration::from_millis(400), + forward_movement: 0.5, + damage_kind: DamageKind::Slashing, + damage_effect: None, + }], + initial_energy_gain: 0.0, + max_energy_gain: 100.0, + energy_increase: 20.0, + speed_increase: 0.05, + max_speed_increase: 0.8, + scales_from_combo: 2, + is_interruptible: true, + ori_modifier: 1.0, + ability_info: empty_ability_info(), + }, + exhausted: false, + stage: 1, + timer: Duration::default(), + stage_section: states::utils::StageSection::Action, + }), + &PreviousEntityState { + event: SfxEvent::Idle, + time: Instant::now(), + weapon_drawn: true, + }, + &inventory, + ); + + assert_ne!( + result, + SfxEvent::Attack( + CharacterAbilityType::ComboMelee(states::utils::StageSection::Action, 2), + ToolKind::Sword + ) + ); +} + +fn empty_ability_info() -> states::utils::AbilityInfo { + states::utils::AbilityInfo { + tool: None, + hand: None, + input: InputKind::Primary, + input_attr: None, + } +} diff --git a/voxygen/src/audio/sfx/event_mapper/mod.rs b/voxygen/src/audio/sfx/event_mapper/mod.rs new file mode 100644 index 0000000000..844c472ad9 --- /dev/null +++ b/voxygen/src/audio/sfx/event_mapper/mod.rs @@ -0,0 +1,72 @@ +mod block; +mod campfire; +mod combat; +mod movement; + +use client::Client; +use common::terrain::TerrainChunk; +use common_state::State; + +use block::BlockEventMapper; +use campfire::CampfireEventMapper; +use combat::CombatEventMapper; +use movement::MovementEventMapper; + +use super::SfxTriggers; +use crate::{ + scene::{Camera, Terrain}, + AudioFrontend, +}; + +trait EventMapper { + fn maintain( + &mut self, + audio: &mut AudioFrontend, + state: &State, + player_entity: specs::Entity, + camera: &Camera, + triggers: &SfxTriggers, + terrain: &Terrain, + client: &Client, + ); +} + +pub struct SfxEventMapper { + mappers: Vec>, +} + +impl SfxEventMapper { + pub fn new() -> Self { + Self { + mappers: vec![ + Box::new(CombatEventMapper::new()), + Box::new(MovementEventMapper::new()), + Box::new(BlockEventMapper::new()), + Box::new(CampfireEventMapper::new()), + ], + } + } + + pub fn maintain( + &mut self, + audio: &mut AudioFrontend, + state: &State, + player_entity: specs::Entity, + camera: &Camera, + triggers: &SfxTriggers, + terrain: &Terrain, + client: &Client, + ) { + for mapper in &mut self.mappers { + mapper.maintain( + audio, + state, + player_entity, + camera, + triggers, + terrain, + client, + ); + } + } +} diff --git a/voxygen/src/audio/sfx/event_mapper/movement/tests.rs b/voxygen/src/audio/sfx/event_mapper/movement/tests.rs new file mode 100644 index 0000000000..8a31168fc9 --- /dev/null +++ b/voxygen/src/audio/sfx/event_mapper/movement/tests.rs @@ -0,0 +1,358 @@ +use super::*; +use crate::audio::sfx::SfxEvent; +use common::{ + comp::{ + bird_large, humanoid, quadruped_medium, quadruped_small, Body, CharacterState, InputKind, + Ori, PhysicsState, + }, + states, + terrain::{Block, BlockKind}, +}; +use std::time::{Duration, Instant}; + +#[test] +fn no_item_config_no_emit() { + let previous_state = PreviousEntityState::default(); + let result = MovementEventMapper::should_emit(&previous_state, None); + + assert!(!result); +} + +#[test] +fn config_but_played_since_threshold_no_emit() { + let trigger_item = SfxTriggerItem { + files: vec![String::from("some.path.to.sfx.file")], + threshold: 1.0, + }; + + // Triggered a 'Run' 0 seconds ago + let previous_state = PreviousEntityState { + event: SfxEvent::Run(BlockKind::Grass), + time: Instant::now(), + on_ground: true, + in_water: false, + distance_travelled: 0.0, + }; + + let result = MovementEventMapper::should_emit( + &previous_state, + Some((&SfxEvent::Run(BlockKind::Grass), &trigger_item)), + ); + + assert!(!result); +} + +#[test] +fn config_and_not_played_since_threshold_emits() { + let trigger_item = SfxTriggerItem { + files: vec![String::from("some.path.to.sfx.file")], + threshold: 0.5, + }; + + let previous_state = PreviousEntityState { + event: SfxEvent::Idle, + time: Instant::now().checked_add(Duration::from_secs(1)).unwrap(), + on_ground: true, + in_water: false, + distance_travelled: 0.0, + }; + + let result = MovementEventMapper::should_emit( + &previous_state, + Some((&SfxEvent::Run(BlockKind::Grass), &trigger_item)), + ); + + assert!(result); +} + +#[test] +fn same_previous_event_elapsed_emits() { + let trigger_item = SfxTriggerItem { + files: vec![String::from("some.path.to.sfx.file")], + threshold: 0.5, + }; + + let previous_state = PreviousEntityState { + event: SfxEvent::Run(BlockKind::Grass), + time: Instant::now() + .checked_sub(Duration::from_millis(1800)) + .unwrap(), + on_ground: true, + in_water: false, + distance_travelled: 2.0, + }; + + let result = MovementEventMapper::should_emit( + &previous_state, + Some((&SfxEvent::Run(BlockKind::Grass), &trigger_item)), + ); + + assert!(result); +} + +#[test] +fn maps_idle() { + let result = MovementEventMapper::map_movement_event( + &CharacterState::Idle(common::states::idle::Data { is_sneaking: false }), + &PhysicsState { + on_ground: Some(Block::empty()), + ..Default::default() + }, + &PreviousEntityState { + event: SfxEvent::Idle, + time: Instant::now(), + on_ground: true, + in_water: false, + distance_travelled: 0.0, + }, + Vec3::zero(), + BlockKind::Grass, + ); + + assert_eq!(result, SfxEvent::Idle); +} + +#[test] +fn maps_run_with_sufficient_velocity() { + let result = MovementEventMapper::map_movement_event( + &CharacterState::Idle(common::states::idle::Data { is_sneaking: false }), + &PhysicsState { + on_ground: Some(Block::empty()), + ..Default::default() + }, + &PreviousEntityState { + event: SfxEvent::Idle, + time: Instant::now(), + on_ground: true, + in_water: false, + distance_travelled: 0.0, + }, + Vec3::new(0.5, 0.8, 0.0), + BlockKind::Grass, + ); + + assert_eq!(result, SfxEvent::Run(BlockKind::Grass)); +} + +#[test] +fn does_not_map_run_with_insufficient_velocity() { + let result = MovementEventMapper::map_movement_event( + &CharacterState::Idle(common::states::idle::Data { is_sneaking: false }), + &PhysicsState { + on_ground: Some(Block::empty()), + ..Default::default() + }, + &PreviousEntityState { + event: SfxEvent::Idle, + time: Instant::now(), + on_ground: true, + in_water: false, + distance_travelled: 0.0, + }, + Vec3::new(0.02, 0.0001, 0.0), + BlockKind::Grass, + ); + + assert_eq!(result, SfxEvent::Idle); +} + +#[test] +fn does_not_map_run_with_sufficient_velocity_but_not_on_ground() { + let result = MovementEventMapper::map_movement_event( + &CharacterState::Idle(common::states::idle::Data { is_sneaking: false }), + &Default::default(), + &PreviousEntityState { + event: SfxEvent::Idle, + time: Instant::now(), + on_ground: false, + in_water: false, + distance_travelled: 0.0, + }, + Vec3::new(0.5, 0.8, 0.0), + BlockKind::Grass, + ); + + assert_eq!(result, SfxEvent::Idle); +} + +#[test] +fn maps_roll() { + let result = MovementEventMapper::map_movement_event( + &CharacterState::Roll(states::roll::Data { + static_data: states::roll::StaticData { + buildup_duration: Duration::default(), + movement_duration: Duration::default(), + recover_duration: Duration::default(), + roll_strength: 0.0, + immune_melee: false, + ability_info: empty_ability_info(), + }, + timer: Duration::default(), + stage_section: states::utils::StageSection::Buildup, + was_wielded: true, + is_sneaking: false, + was_combo: None, + }), + &PhysicsState { + on_ground: Some(Block::empty()), + ..Default::default() + }, + &PreviousEntityState { + event: SfxEvent::Run(BlockKind::Grass), + time: Instant::now(), + on_ground: true, + in_water: false, + distance_travelled: 0.0, + }, + Vec3::new(0.5, 0.5, 0.0), + BlockKind::Grass, + ); + + assert_eq!(result, SfxEvent::Roll); +} + +#[test] +fn maps_land_on_ground_to_run() { + let result = MovementEventMapper::map_movement_event( + &CharacterState::Idle(common::states::idle::Data { is_sneaking: false }), + &PhysicsState { + on_ground: Some(Block::empty()), + ..Default::default() + }, + &PreviousEntityState { + event: SfxEvent::Idle, + time: Instant::now(), + on_ground: false, + in_water: false, + distance_travelled: 0.0, + }, + Vec3::zero(), + BlockKind::Grass, + ); + + assert_eq!(result, SfxEvent::Run(BlockKind::Grass)); +} + +#[test] +fn maps_glider_open() { + let result = MovementEventMapper::map_movement_event( + &CharacterState::Glide(states::glide::Data::new(10.0, 1.0, Ori::default())), + &Default::default(), + &PreviousEntityState { + event: SfxEvent::Jump, + time: Instant::now(), + on_ground: false, + in_water: false, + distance_travelled: 0.0, + }, + Vec3::zero(), + BlockKind::Grass, + ); + + assert_eq!(result, SfxEvent::GliderOpen); +} + +#[test] +fn maps_glide() { + let result = MovementEventMapper::map_movement_event( + &CharacterState::Glide(states::glide::Data::new(10.0, 1.0, Ori::default())), + &Default::default(), + &PreviousEntityState { + event: SfxEvent::Glide, + time: Instant::now(), + on_ground: false, + in_water: false, + distance_travelled: 0.0, + }, + Vec3::zero(), + BlockKind::Grass, + ); + + assert_eq!(result, SfxEvent::Glide); +} + +#[test] +fn maps_glider_close_when_closing_mid_flight() { + let result = MovementEventMapper::map_movement_event( + &CharacterState::Idle(common::states::idle::Data { is_sneaking: false }), + &Default::default(), + &PreviousEntityState { + event: SfxEvent::Glide, + time: Instant::now(), + on_ground: false, + in_water: false, + distance_travelled: 0.0, + }, + Vec3::zero(), + BlockKind::Grass, + ); + + assert_eq!(result, SfxEvent::GliderClose); +} + +#[test] +#[ignore] +fn maps_glider_close_when_landing() { + let result = MovementEventMapper::map_movement_event( + &CharacterState::Idle(common::states::idle::Data { is_sneaking: false }), + &PhysicsState { + on_ground: Some(Block::empty()), + ..Default::default() + }, + &PreviousEntityState { + event: SfxEvent::Glide, + time: Instant::now(), + on_ground: false, + in_water: false, + distance_travelled: 0.0, + }, + Vec3::zero(), + BlockKind::Grass, + ); + + assert_eq!(result, SfxEvent::GliderClose); +} + +#[test] +fn maps_quadrupeds_running() { + let result = MovementEventMapper::map_non_humanoid_movement_event( + &PhysicsState { + on_ground: Some(Block::empty()), + ..Default::default() + }, + Vec3::new(0.5, 0.8, 0.0), + BlockKind::Grass, + ); + + assert_eq!(result, SfxEvent::Run(BlockKind::Grass)); +} + +#[test] +fn determines_relative_volumes() { + let human = + MovementEventMapper::get_volume_for_body_type(&Body::Humanoid(humanoid::Body::random())); + + let quadruped_medium = MovementEventMapper::get_volume_for_body_type(&Body::QuadrupedMedium( + quadruped_medium::Body::random(), + )); + + let quadruped_small = MovementEventMapper::get_volume_for_body_type(&Body::QuadrupedSmall( + quadruped_small::Body::random(), + )); + + let bird_large = + MovementEventMapper::get_volume_for_body_type(&Body::BirdLarge(bird_large::Body::random())); + + assert!(quadruped_medium < human); + assert!(quadruped_small < quadruped_medium); + assert!(bird_large < quadruped_small); +} + +fn empty_ability_info() -> states::utils::AbilityInfo { + states::utils::AbilityInfo { + tool: None, + hand: None, + input: InputKind::Primary, + input_attr: None, + } +} From 44f6e3888b366ce7d5c254619e270480c5432876 Mon Sep 17 00:00:00 2001 From: DoctorKompot Date: Fri, 10 Dec 2021 23:31:27 +0200 Subject: [PATCH 19/26] updated mortar and pestle, fixed GR and cheese rotation, fixed offsets of Pfau's turbans --- assets/voxygen/item_image_manifest.ron | 8 +++---- .../voxel/armor/merchant/turban_human.vox | 4 ++-- .../voxel/humanoid_armor_head_manifest.ron | 24 +++++++++---------- assets/voxygen/voxel/object/mortar_pestle.vox | 2 +- 4 files changed, 19 insertions(+), 19 deletions(-) diff --git a/assets/voxygen/item_image_manifest.ron b/assets/voxygen/item_image_manifest.ron index 89bf8ae82b..f6f45b206b 100644 --- a/assets/voxygen/item_image_manifest.ron +++ b/assets/voxygen/item_image_manifest.ron @@ -2481,7 +2481,7 @@ ), Consumable("common.items.food.cheese"): VoxTrans( "voxel.object.cheese", - (0.0, 0.0, 0.0), (-60.0, -10.0, 0.0), 0.8, + (0.0, 0.0, 0.0), (-50.0, 40.0, 27.0), 0.7, ), Consumable("common.items.food.blue_cheese"): VoxTrans( "voxel.object.blue_cheese", @@ -2501,7 +2501,7 @@ ), Consumable("common.items.food.apple_mushroom_curry"): VoxTrans( "voxel.object.mushroom_curry", - (-0.3, 2.0, 0.0), (-50.0, 20.0, 17.0), 1.0, + (0.0, 0.0, 0.0), (-50.0, 20.0, 17.0), 0.9, ), Consumable("common.items.food.spore_corruption"): VoxTrans( "voxel.sprite.spore.corruption_spore", @@ -2663,7 +2663,7 @@ ), Ingredient("FlayerBagDamaged"): VoxTrans( "voxel.object.glowing_remains", - (0.0, 0.0, 0.0), (10.0, -20.0, 30.0), 1.0, + (0.0, 0.0, 0.0), (-20.0, 20.0, .0), 0.9, ), Ingredient("RaptorFeather"): VoxTrans( "voxel.object.raptor_feather", @@ -2883,7 +2883,7 @@ ), Ingredient("MortarPestle"): VoxTrans( "voxel.object.mortar_pestle", - (0.0, 0.0, 0.0), (10.0, -20.0, 30.0), 1.0, + (0.0, 0.0, 0.0), (-40.0, 15.0, 17.0), 0.8, ), Ingredient("EmptyVial"): VoxTrans( "voxel.object.potion_empty", diff --git a/assets/voxygen/voxel/armor/merchant/turban_human.vox b/assets/voxygen/voxel/armor/merchant/turban_human.vox index ca4dcfb578..17b8cfdbbd 100644 --- a/assets/voxygen/voxel/armor/merchant/turban_human.vox +++ b/assets/voxygen/voxel/armor/merchant/turban_human.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cfe4d8a90860a4fecb88f2d79b334f72503dd95e797e365c196d7195c7da221a -size 68447 +oid sha256:eb8b8006965eb4ab6a136ab437e8d89f784bf43eae0b3b5a8a82e4c83052681b +size 79291 diff --git a/assets/voxygen/voxel/humanoid_armor_head_manifest.ron b/assets/voxygen/voxel/humanoid_armor_head_manifest.ron index 0aded9d32d..3c5e95bfdb 100644 --- a/assets/voxygen/voxel/humanoid_armor_head_manifest.ron +++ b/assets/voxygen/voxel/humanoid_armor_head_manifest.ron @@ -864,51 +864,51 @@ ), // Merchant Turban (Human, Male, "Merchant"): ( - vox_spec: ("armor.merchant.turban_human", (-2.0, -3.0, 2.0)), + vox_spec: ("armor.merchant.turban_human", (-4.0, -7.0, 2.0)), color: None ), (Human, Female, "Merchant"): ( - vox_spec: ("armor.merchant.turban_human", (-2.0, -2.0, 2.0)), + vox_spec: ("armor.merchant.turban_human", (-4.0, -6.0, 2.0)), color: None ), (Elf, Male, "Merchant"): ( - vox_spec: ("armor.merchant.turban_human", (-1.0, -3.0, 2.0)), + vox_spec: ("armor.merchant.turban_human", (-3.0, -7.0, 2.0)), color: None ), (Elf, Female, "Merchant"): ( - vox_spec: ("armor.merchant.turban_human", (-1.0, -3.0, 2.0)), + vox_spec: ("armor.merchant.turban_human", (-3.0, -7.0, 2.0)), color: None ), (Dwarf, Male, "Merchant"): ( - vox_spec: ("armor.merchant.turban_dwarf", (-3.0, -2.0, 2.0)), + vox_spec: ("armor.merchant.turban_dwarf", (-5.0, -6.0, 2.0)), color: None ), (Dwarf, Female, "Merchant"): ( - vox_spec: ("armor.merchant.turban_dwarf", (-3.0, -2.0, 2.0)), + vox_spec: ("armor.merchant.turban_dwarf", (-5.0, -6.0, 2.0)), color: None ), (Danari, Male, "Merchant"): ( - vox_spec: ("armor.merchant.turban_human", (0.0, -4.0, 4.0)), + vox_spec: ("armor.merchant.turban_human", (-2.0, -7.0, 4.0)), color: None ), (Danari, Female, "Merchant"): ( - vox_spec: ("armor.merchant.turban_human", (0.0, -4.0, 4.0)), + vox_spec: ("armor.merchant.turban_human", (-2.0, -7.0, 4.0)), color: None ), (Undead, Male, "Merchant"): ( - vox_spec: ("armor.merchant.turban_undead", (-4.0, -3.0, 4.0)), + vox_spec: ("armor.merchant.turban_undead", (-6.0, -7.0, 4.0)), color: None ), (Undead, Female, "Merchant"): ( - vox_spec: ("armor.merchant.turban_undead", (-4.0, -3.0, 3.0)), + vox_spec: ("armor.merchant.turban_undead", (-6.0, -7.0, 3.0)), color: None ), (Orc, Male, "Merchant"): ( - vox_spec: ("armor.merchant.turban_orc", (-1.0, -2.0, 4.0)), + vox_spec: ("armor.merchant.turban_orc", (-3.0, -5.0, 4.0)), color: None ), (Orc, Female, "Merchant"): ( - vox_spec: ("armor.merchant.turban_orc", (-1.0, -4.0, 2.0)), + vox_spec: ("armor.merchant.turban_orc", (-3.0, -8.0, 2.0)), color: None ), //Winged Coronet -1, 5 diff --git a/assets/voxygen/voxel/object/mortar_pestle.vox b/assets/voxygen/voxel/object/mortar_pestle.vox index 6341a0dc6f..0b86610355 100644 --- a/assets/voxygen/voxel/object/mortar_pestle.vox +++ b/assets/voxygen/voxel/object/mortar_pestle.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:979790e5b2311014ec1129d0b6f8ffdbbfd1663b577647c8bbf669520f333c6b +oid sha256:47fe55d65bd846f1649ee11c7d3ffa6e9cfa42164eee4951e123daeb9076cf19 size 1612 From 439c6a9a3eecd9728e1eef9673fe2c1868e36947 Mon Sep 17 00:00:00 2001 From: DoctorKompot Date: Fri, 10 Dec 2021 23:57:37 +0200 Subject: [PATCH 20/26] fixed cheese --- assets/voxygen/item_image_manifest.ron | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/voxygen/item_image_manifest.ron b/assets/voxygen/item_image_manifest.ron index f6f45b206b..57946af19a 100644 --- a/assets/voxygen/item_image_manifest.ron +++ b/assets/voxygen/item_image_manifest.ron @@ -2481,7 +2481,7 @@ ), Consumable("common.items.food.cheese"): VoxTrans( "voxel.object.cheese", - (0.0, 0.0, 0.0), (-50.0, 40.0, 27.0), 0.7, + (0.0, 0.0, 0.0), (-60.0, 27.0, 17.0), 0.7, ), Consumable("common.items.food.blue_cheese"): VoxTrans( "voxel.object.blue_cheese", From d3124529417f29396de5a8ea3e922cd39dad7d51 Mon Sep 17 00:00:00 2001 From: DoctorKompot Date: Sun, 12 Dec 2021 01:00:06 +0200 Subject: [PATCH 21/26] changed Magic Lantern kind: to "Magic" --- assets/common/items/boss_drops/lantern.ron | 2 +- assets/voxygen/item_image_manifest.ron | 4 ++++ assets/voxygen/voxel/humanoid_lantern_manifest.ron | 4 ++++ assets/voxygen/voxel/lantern/magic_lantern.vox | 3 +++ 4 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 assets/voxygen/voxel/lantern/magic_lantern.vox diff --git a/assets/common/items/boss_drops/lantern.ron b/assets/common/items/boss_drops/lantern.ron index 82fa2c248d..b98710e474 100644 --- a/assets/common/items/boss_drops/lantern.ron +++ b/assets/common/items/boss_drops/lantern.ron @@ -3,7 +3,7 @@ ItemDef( description: "Illuminates even the darkest dungeon\nA great monster was slain for this item", kind: Lantern( ( - kind: "Green0", + kind: "Magic", color: (r: 128, g: 26, b: 255), strength_thousandths: 8500, flicker_thousandths: 300, diff --git a/assets/voxygen/item_image_manifest.ron b/assets/voxygen/item_image_manifest.ron index 57946af19a..7f6724b472 100644 --- a/assets/voxygen/item_image_manifest.ron +++ b/assets/voxygen/item_image_manifest.ron @@ -1041,6 +1041,10 @@ "voxel.lantern.green-0", (0.0, 0.0, 0.0), (-75.0, 20.0, 5.0), 0.9, ), + Lantern("Magic"): VoxTrans( + "voxel.lantern.magic_lantern", + (0.0, 0.0, 0.0), (-75.0, 20.0, 5.0), 0.9, + ), Lantern("Blue0"): VoxTrans( "voxel.lantern.blue-0", (0.0, 0.0, 0.0), (-75.0, 20.0, 5.0), 0.9, diff --git a/assets/voxygen/voxel/humanoid_lantern_manifest.ron b/assets/voxygen/voxel/humanoid_lantern_manifest.ron index 5011cacc3d..42750ace3b 100644 --- a/assets/voxygen/voxel/humanoid_lantern_manifest.ron +++ b/assets/voxygen/voxel/humanoid_lantern_manifest.ron @@ -8,6 +8,10 @@ vox_spec: ("lantern.green-0", (-2.0, -2.0, -7.0)), color: None ), + "Magic": ( + vox_spec: ("lantern.magic_lantern", (-2.0, -2.0, -7.0)), + color: None + ), "Black0": ( vox_spec: ("lantern.black-0", (-2.0, -2.0, -8.5)), color: None diff --git a/assets/voxygen/voxel/lantern/magic_lantern.vox b/assets/voxygen/voxel/lantern/magic_lantern.vox new file mode 100644 index 0000000000..b8a4f57add --- /dev/null +++ b/assets/voxygen/voxel/lantern/magic_lantern.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1ef04cd413a5ef6e29872ef439b4bbb21845a1e494264135e203ed46b3a0d89 +size 1392 From 5a196f1684c47893464f4fca0187320de50df321 Mon Sep 17 00:00:00 2001 From: DoctorKompot Date: Fri, 24 Dec 2021 21:33:16 +0200 Subject: [PATCH 22/26] another shot at fixing turbans --- .../voxygen/voxel/armor/merchant/turban.vox | 3 +++ .../voxel/armor/merchant/turban_dwarf.vox | 3 --- .../voxel/armor/merchant/turban_human.vox | 3 --- .../voxel/armor/merchant/turban_orc.vox | 3 --- .../voxel/armor/merchant/turban_undead.vox | 3 --- .../voxel/humanoid_armor_head_manifest.ron | 24 +++++++++---------- 6 files changed, 15 insertions(+), 24 deletions(-) create mode 100644 assets/voxygen/voxel/armor/merchant/turban.vox delete mode 100644 assets/voxygen/voxel/armor/merchant/turban_dwarf.vox delete mode 100644 assets/voxygen/voxel/armor/merchant/turban_human.vox delete mode 100644 assets/voxygen/voxel/armor/merchant/turban_orc.vox delete mode 100644 assets/voxygen/voxel/armor/merchant/turban_undead.vox diff --git a/assets/voxygen/voxel/armor/merchant/turban.vox b/assets/voxygen/voxel/armor/merchant/turban.vox new file mode 100644 index 0000000000..22b87e556d --- /dev/null +++ b/assets/voxygen/voxel/armor/merchant/turban.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4eb45df45ac3e927a037e045c9887d500d16ee9299757ca95c579c21d6aecb79 +size 93667 diff --git a/assets/voxygen/voxel/armor/merchant/turban_dwarf.vox b/assets/voxygen/voxel/armor/merchant/turban_dwarf.vox deleted file mode 100644 index c5a4436420..0000000000 --- a/assets/voxygen/voxel/armor/merchant/turban_dwarf.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:36801a29d54fa65c47975574b3aa950d0920ef00bfb6b1802c1d9b489910808e -size 68435 diff --git a/assets/voxygen/voxel/armor/merchant/turban_human.vox b/assets/voxygen/voxel/armor/merchant/turban_human.vox deleted file mode 100644 index 17b8cfdbbd..0000000000 --- a/assets/voxygen/voxel/armor/merchant/turban_human.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:eb8b8006965eb4ab6a136ab437e8d89f784bf43eae0b3b5a8a82e4c83052681b -size 79291 diff --git a/assets/voxygen/voxel/armor/merchant/turban_orc.vox b/assets/voxygen/voxel/armor/merchant/turban_orc.vox deleted file mode 100644 index bb1a199054..0000000000 --- a/assets/voxygen/voxel/armor/merchant/turban_orc.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:409c9693cf68132cb68e037c4d0df29de5cf5a27c492435630aacbf6c8731c4c -size 68439 diff --git a/assets/voxygen/voxel/armor/merchant/turban_undead.vox b/assets/voxygen/voxel/armor/merchant/turban_undead.vox deleted file mode 100644 index d21ad8561b..0000000000 --- a/assets/voxygen/voxel/armor/merchant/turban_undead.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3cb6a6bac3ced5ac86269ed8834d98aef6f1035009d84e1c33eb9e6e5bd6e51b -size 68339 diff --git a/assets/voxygen/voxel/humanoid_armor_head_manifest.ron b/assets/voxygen/voxel/humanoid_armor_head_manifest.ron index 3c5e95bfdb..73f630ec1d 100644 --- a/assets/voxygen/voxel/humanoid_armor_head_manifest.ron +++ b/assets/voxygen/voxel/humanoid_armor_head_manifest.ron @@ -864,51 +864,51 @@ ), // Merchant Turban (Human, Male, "Merchant"): ( - vox_spec: ("armor.merchant.turban_human", (-4.0, -7.0, 2.0)), + vox_spec: ("armor.merchant.turban", (-4.0, -7.0, -6.0)), color: None ), (Human, Female, "Merchant"): ( - vox_spec: ("armor.merchant.turban_human", (-4.0, -6.0, 2.0)), + vox_spec: ("armor.merchant.turban", (-4.0, -6.0, -6.0)), color: None ), (Elf, Male, "Merchant"): ( - vox_spec: ("armor.merchant.turban_human", (-3.0, -7.0, 2.0)), + vox_spec: ("armor.merchant.turban", (-3.0, -7.0, -6.0)), color: None ), (Elf, Female, "Merchant"): ( - vox_spec: ("armor.merchant.turban_human", (-3.0, -7.0, 2.0)), + vox_spec: ("armor.merchant.turban", (-3.0, -7.0, -6.0)), color: None ), (Dwarf, Male, "Merchant"): ( - vox_spec: ("armor.merchant.turban_dwarf", (-5.0, -6.0, 2.0)), + vox_spec: ("armor.merchant.turban", (-5.0, -6.0, -6.0)), color: None ), (Dwarf, Female, "Merchant"): ( - vox_spec: ("armor.merchant.turban_dwarf", (-5.0, -6.0, 2.0)), + vox_spec: ("armor.merchant.turban", (-5.0, -6.0, -6.0)), color: None ), (Danari, Male, "Merchant"): ( - vox_spec: ("armor.merchant.turban_human", (-2.0, -7.0, 4.0)), + vox_spec: ("armor.merchant.turban", (-2.0, -7.0, -4.0)), color: None ), (Danari, Female, "Merchant"): ( - vox_spec: ("armor.merchant.turban_human", (-2.0, -7.0, 4.0)), + vox_spec: ("armor.merchant.turban", (-2.0, -7.0, -4.0)), color: None ), (Undead, Male, "Merchant"): ( - vox_spec: ("armor.merchant.turban_undead", (-6.0, -7.0, 4.0)), + vox_spec: ("armor.merchant.turban", (-6.0, -7.0, -4.0)), color: None ), (Undead, Female, "Merchant"): ( - vox_spec: ("armor.merchant.turban_undead", (-6.0, -7.0, 3.0)), + vox_spec: ("armor.merchant.turban", (-6.0, -7.0, -5.0)), color: None ), (Orc, Male, "Merchant"): ( - vox_spec: ("armor.merchant.turban_orc", (-3.0, -5.0, 4.0)), + vox_spec: ("armor.merchant.turban", (-3.0, -5.0, -4.0)), color: None ), (Orc, Female, "Merchant"): ( - vox_spec: ("armor.merchant.turban_orc", (-3.0, -8.0, 2.0)), + vox_spec: ("armor.merchant.turban", (-3.0, -8.0, -6.0)), color: None ), //Winged Coronet -1, 5 From 0dba858ca9eec3567baa983aa4c1d481b1a499d7 Mon Sep 17 00:00:00 2001 From: DoctorKompot Date: Mon, 27 Dec 2021 00:27:47 +0200 Subject: [PATCH 23/26] fixed turban specifier in item image manifest, reverted bag size for purified soulkeeper, updated item quality colors in mod files --- assets/common/items/armor/misc/bag/soulkeeper_pure.ron | 2 +- assets/voxygen/item_image_manifest.ron | 2 +- common/src/comp/inventory/item/mod.rs | 2 +- voxygen/src/hud/mod.rs | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/assets/common/items/armor/misc/bag/soulkeeper_pure.ron b/assets/common/items/armor/misc/bag/soulkeeper_pure.ron index 7f5f41154e..33d4bf3cfc 100644 --- a/assets/common/items/armor/misc/bag/soulkeeper_pure.ron +++ b/assets/common/items/armor/misc/bag/soulkeeper_pure.ron @@ -10,5 +10,5 @@ ItemDef( ), quality: Legendary, tags: [Bag], - slots: 45, + slots: 36, ) diff --git a/assets/voxygen/item_image_manifest.ron b/assets/voxygen/item_image_manifest.ron index 7f6724b472..2f09a83701 100644 --- a/assets/voxygen/item_image_manifest.ron +++ b/assets/voxygen/item_image_manifest.ron @@ -1266,7 +1266,7 @@ (0.0, 0.0, 0.0), (-120.0, 210.0,15.0), 0.9, ), Armor(Head("Merchant")): VoxTrans( - "voxel.armor.merchant.turban_human", + "voxel.armor.merchant.turban", (0.0, 0.0, 0.0), (-120.0, 210.0,15.0), 1.0, ), Armor(Back("Merchant")): VoxTrans( diff --git a/common/src/comp/inventory/item/mod.rs b/common/src/comp/inventory/item/mod.rs index a808d85dd1..bca2288256 100644 --- a/common/src/comp/inventory/item/mod.rs +++ b/common/src/comp/inventory/item/mod.rs @@ -72,7 +72,7 @@ pub struct Glider { #[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize, Copy, PartialOrd, Ord)] pub enum Quality { Low, // Grey - Common, // UI Main Color + Common, // Light blue Moderate, // Green High, // Blue Epic, // Purple diff --git a/voxygen/src/hud/mod.rs b/voxygen/src/hud/mod.rs index 09208f6323..f2c42d0937 100644 --- a/voxygen/src/hud/mod.rs +++ b/voxygen/src/hud/mod.rs @@ -137,7 +137,7 @@ const DEBUFF_COLOR: Color = Color::Rgba(0.79, 0.19, 0.17, 1.0); // Item Quality Colors const QUALITY_LOW: Color = Color::Rgba(0.41, 0.41, 0.41, 1.0); // Grey - Trash, can be sold to vendors -const QUALITY_COMMON: Color = Color::Rgba(0.79, 1.00, 1.00, 1.0); // No Color - Crafting mats, food, starting equipment, quest items (like keys), rewards for easy quests +const QUALITY_COMMON: Color = Color::Rgba(0.79, 1.00, 1.00, 1.0); // Light blue - Crafting mats, food, starting equipment, quest items (like keys), rewards for easy quests const QUALITY_MODERATE: Color = Color::Rgba(0.06, 0.69, 0.12, 1.0); // Green - Quest Rewards, commonly looted items from NPCs const QUALITY_HIGH: Color = Color::Rgba(0.18, 0.32, 0.9, 1.0); // Blue - Dungeon rewards, boss loot, rewards for hard quests const QUALITY_EPIC: Color = Color::Rgba(0.58, 0.29, 0.93, 1.0); // Purple - Rewards for epic quests and very hard bosses From 22b19e40e93320c8a4ef7779f8b4413671d93fc3 Mon Sep 17 00:00:00 2001 From: DoctorKompot Date: Mon, 27 Dec 2021 01:08:19 +0200 Subject: [PATCH 24/26] updated changelog, fixed lantern colors --- CHANGELOG.md | 5 +++++ assets/common/items/lantern/green_0.ron | 2 +- assets/common/items/lantern/red_0.ron | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 04ee2a1f28..9a99d16385 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -46,6 +46,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - EXP on kill is now shared based on damage contribution - Dungeons have somewhat proper scaling. The higher the dungeon the harder it gets, Cultist staying unchanged while Mino is now at its level. - Parallelized entity sync system on the server +- Item color backgrounds are now lighter +- All items that used the PNG file format now have a VOX file instead +- Yeti loot table modified +- Phoenix feathers are now Legendary quality +- Green/Red lantern now shine their respective color instead of the default lantern color ### Removed diff --git a/assets/common/items/lantern/green_0.ron b/assets/common/items/lantern/green_0.ron index 2ac96711cd..05dc2ecc27 100644 --- a/assets/common/items/lantern/green_0.ron +++ b/assets/common/items/lantern/green_0.ron @@ -4,7 +4,7 @@ ItemDef( kind: Lantern( ( kind: "Green0", - color: (r: 50, g: 205, b: 50), + color: (r: 145, g: 255, b: 145), strength_thousandths: 6000, flicker_thousandths: 250, ), diff --git a/assets/common/items/lantern/red_0.ron b/assets/common/items/lantern/red_0.ron index 63c683a530..93b717d962 100644 --- a/assets/common/items/lantern/red_0.ron +++ b/assets/common/items/lantern/red_0.ron @@ -4,7 +4,7 @@ ItemDef( kind: Lantern( ( kind: "Red0", - color: (r: 220, g: 20, b: 60), + color: (r: 255, g: 70, b: 70), strength_thousandths: 5000, flicker_thousandths: 250, ), From cc6058889a22da44f59f4766b99d2adc13dd1e3e Mon Sep 17 00:00:00 2001 From: DoctorKompot Date: Mon, 27 Dec 2021 02:23:24 +0200 Subject: [PATCH 25/26] deleted unused PNG files --- assets/voxygen/element/items/collar.png | 3 --- assets/voxygen/element/items/gem.png | 3 --- assets/voxygen/element/items/head_leather-0.png | 3 --- assets/voxygen/element/items/item_apple.png | 3 --- assets/voxygen/element/items/item_apple_curry.png | 3 --- assets/voxygen/element/items/item_apple_stick.png | 3 --- assets/voxygen/element/items/item_bag_blue.png | 3 --- assets/voxygen/element/items/item_bag_blue_face.png | 3 --- assets/voxygen/element/items/item_bag_brown_face.png | 3 --- assets/voxygen/element/items/item_bag_green_large.png | 3 --- assets/voxygen/element/items/item_bag_green_mid.png | 3 --- assets/voxygen/element/items/item_bag_large.png | 3 --- assets/voxygen/element/items/item_bag_leather_small.png | 3 --- assets/voxygen/element/items/item_bag_med.png | 3 --- assets/voxygen/element/items/item_bag_red_face.png | 3 --- assets/voxygen/element/items/item_bag_skull.png | 3 --- assets/voxygen/element/items/item_bag_small.png | 3 --- assets/voxygen/element/items/item_bag_t1_purp.png | 3 --- assets/voxygen/element/items/item_bag_tiny.png | 3 --- assets/voxygen/element/items/item_cloth0.png | 3 --- assets/voxygen/element/items/item_cloth_red.png | 3 --- assets/voxygen/element/items/item_coconut.png | 3 --- assets/voxygen/element/items/item_flayer_soul.png | 3 --- assets/voxygen/element/items/item_honey.png | 3 --- assets/voxygen/element/items/item_ice_shard.png | 3 --- assets/voxygen/element/items/item_leather0.png | 3 --- assets/voxygen/element/items/item_leather1.png | 3 --- assets/voxygen/element/items/item_leather_green.png | 3 --- assets/voxygen/element/items/item_mortarpestlecoco.png | 3 --- assets/voxygen/element/items/item_raptor_feather.png | 3 --- assets/voxygen/element/items/item_shroom_stick.png | 3 --- assets/voxygen/element/items/item_sunflower_tea.png | 3 --- assets/voxygen/element/items/lantern_black-0.png | 3 --- assets/voxygen/element/items/lantern_blue-0.png | 3 --- assets/voxygen/element/items/lantern_green-0.png | 3 --- assets/voxygen/element/items/lantern_grey-0.png | 3 --- assets/voxygen/element/items/lantern_red-0.png | 3 --- assets/voxygen/element/items/neck-0.png | 3 --- assets/voxygen/element/items/neck-1.png | 3 --- assets/voxygen/element/items/neck-seashell.png | 3 --- assets/voxygen/element/items/ring-0.png | 3 --- assets/voxygen/element/items/sewing_set.png | 3 --- assets/voxygen/element/items/tabard_admin.png | 3 --- 43 files changed, 129 deletions(-) delete mode 100644 assets/voxygen/element/items/collar.png delete mode 100644 assets/voxygen/element/items/gem.png delete mode 100644 assets/voxygen/element/items/head_leather-0.png delete mode 100644 assets/voxygen/element/items/item_apple.png delete mode 100644 assets/voxygen/element/items/item_apple_curry.png delete mode 100644 assets/voxygen/element/items/item_apple_stick.png delete mode 100644 assets/voxygen/element/items/item_bag_blue.png delete mode 100644 assets/voxygen/element/items/item_bag_blue_face.png delete mode 100644 assets/voxygen/element/items/item_bag_brown_face.png delete mode 100644 assets/voxygen/element/items/item_bag_green_large.png delete mode 100644 assets/voxygen/element/items/item_bag_green_mid.png delete mode 100644 assets/voxygen/element/items/item_bag_large.png delete mode 100644 assets/voxygen/element/items/item_bag_leather_small.png delete mode 100644 assets/voxygen/element/items/item_bag_med.png delete mode 100644 assets/voxygen/element/items/item_bag_red_face.png delete mode 100644 assets/voxygen/element/items/item_bag_skull.png delete mode 100644 assets/voxygen/element/items/item_bag_small.png delete mode 100644 assets/voxygen/element/items/item_bag_t1_purp.png delete mode 100644 assets/voxygen/element/items/item_bag_tiny.png delete mode 100644 assets/voxygen/element/items/item_cloth0.png delete mode 100644 assets/voxygen/element/items/item_cloth_red.png delete mode 100644 assets/voxygen/element/items/item_coconut.png delete mode 100644 assets/voxygen/element/items/item_flayer_soul.png delete mode 100644 assets/voxygen/element/items/item_honey.png delete mode 100644 assets/voxygen/element/items/item_ice_shard.png delete mode 100644 assets/voxygen/element/items/item_leather0.png delete mode 100644 assets/voxygen/element/items/item_leather1.png delete mode 100644 assets/voxygen/element/items/item_leather_green.png delete mode 100644 assets/voxygen/element/items/item_mortarpestlecoco.png delete mode 100644 assets/voxygen/element/items/item_raptor_feather.png delete mode 100644 assets/voxygen/element/items/item_shroom_stick.png delete mode 100644 assets/voxygen/element/items/item_sunflower_tea.png delete mode 100644 assets/voxygen/element/items/lantern_black-0.png delete mode 100644 assets/voxygen/element/items/lantern_blue-0.png delete mode 100644 assets/voxygen/element/items/lantern_green-0.png delete mode 100644 assets/voxygen/element/items/lantern_grey-0.png delete mode 100644 assets/voxygen/element/items/lantern_red-0.png delete mode 100644 assets/voxygen/element/items/neck-0.png delete mode 100644 assets/voxygen/element/items/neck-1.png delete mode 100644 assets/voxygen/element/items/neck-seashell.png delete mode 100644 assets/voxygen/element/items/ring-0.png delete mode 100644 assets/voxygen/element/items/sewing_set.png delete mode 100644 assets/voxygen/element/items/tabard_admin.png diff --git a/assets/voxygen/element/items/collar.png b/assets/voxygen/element/items/collar.png deleted file mode 100644 index 059cd17b06..0000000000 --- a/assets/voxygen/element/items/collar.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:54eb4929b53dbbb1f997f81d71d8a5f85e00952186d0dd2d3a97204961de5fe2 -size 264 diff --git a/assets/voxygen/element/items/gem.png b/assets/voxygen/element/items/gem.png deleted file mode 100644 index a0e5ef8e17..0000000000 --- a/assets/voxygen/element/items/gem.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:76c625af366dd951e913c0dbb4b140e292ba626dcc461edaa96b5cffd2ec287b -size 137 diff --git a/assets/voxygen/element/items/head_leather-0.png b/assets/voxygen/element/items/head_leather-0.png deleted file mode 100644 index c65a79d6fa..0000000000 --- a/assets/voxygen/element/items/head_leather-0.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:699add1fb631f3aeb309ce8e847343d9c4aac877eeeef4b8deb34e49506fe612 -size 191 diff --git a/assets/voxygen/element/items/item_apple.png b/assets/voxygen/element/items/item_apple.png deleted file mode 100644 index 968e3de522..0000000000 --- a/assets/voxygen/element/items/item_apple.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:65edb50f8ea1490f270990d3ebd9d13b8187265a4e419cd56db96a1a1185b38b -size 205 diff --git a/assets/voxygen/element/items/item_apple_curry.png b/assets/voxygen/element/items/item_apple_curry.png deleted file mode 100644 index d5028a9e94..0000000000 --- a/assets/voxygen/element/items/item_apple_curry.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4f92e34c9178ee772830326c0a6a37158af702d20dbe27d2b7e5c8b8c9e14f49 -size 181 diff --git a/assets/voxygen/element/items/item_apple_stick.png b/assets/voxygen/element/items/item_apple_stick.png deleted file mode 100644 index aa50b3b84c..0000000000 --- a/assets/voxygen/element/items/item_apple_stick.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:99f585da03d2bd672421b9673f7747993c977c7d05fd2983e72f5b620d4ae1f1 -size 176 diff --git a/assets/voxygen/element/items/item_bag_blue.png b/assets/voxygen/element/items/item_bag_blue.png deleted file mode 100644 index d4c223e9ca..0000000000 --- a/assets/voxygen/element/items/item_bag_blue.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ba953ac6e490d147f6f9de0ce18c5ed1349bf2b395e159ad086d6bb9c8807dc5 -size 188 diff --git a/assets/voxygen/element/items/item_bag_blue_face.png b/assets/voxygen/element/items/item_bag_blue_face.png deleted file mode 100644 index 43c422c580..0000000000 --- a/assets/voxygen/element/items/item_bag_blue_face.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:853712593bbaa00150eb0dc4d5183070ec7251169c0e702d6c91eb73dadefb8f -size 181 diff --git a/assets/voxygen/element/items/item_bag_brown_face.png b/assets/voxygen/element/items/item_bag_brown_face.png deleted file mode 100644 index 0a2da6fd14..0000000000 --- a/assets/voxygen/element/items/item_bag_brown_face.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3a2a3a81a6e3771a2838bd97931c323683aa3f0ea4a8e28c5bf54c35df47ad9e -size 168 diff --git a/assets/voxygen/element/items/item_bag_green_large.png b/assets/voxygen/element/items/item_bag_green_large.png deleted file mode 100644 index 32a07644b7..0000000000 --- a/assets/voxygen/element/items/item_bag_green_large.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:91a3da2d8c78260e937dbcb886d74def8d480dd6746b1583e684d5895e222cdd -size 214 diff --git a/assets/voxygen/element/items/item_bag_green_mid.png b/assets/voxygen/element/items/item_bag_green_mid.png deleted file mode 100644 index 6925f5c913..0000000000 --- a/assets/voxygen/element/items/item_bag_green_mid.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:65cd3cc86813832834220e60f3554772878bb987690a19b64e6bd44ba83d809d -size 193 diff --git a/assets/voxygen/element/items/item_bag_large.png b/assets/voxygen/element/items/item_bag_large.png deleted file mode 100644 index 938c1a8728..0000000000 --- a/assets/voxygen/element/items/item_bag_large.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:476da5f656ab8e56e73b8cc52e00e855763c2f42be58388d2f40a2408f9f6bf9 -size 201 diff --git a/assets/voxygen/element/items/item_bag_leather_small.png b/assets/voxygen/element/items/item_bag_leather_small.png deleted file mode 100644 index 06aaeac144..0000000000 --- a/assets/voxygen/element/items/item_bag_leather_small.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:386eb9b49186441d680f819733546f02a4c22e0b7e3061d3302d49ef5f712b52 -size 176 diff --git a/assets/voxygen/element/items/item_bag_med.png b/assets/voxygen/element/items/item_bag_med.png deleted file mode 100644 index 839d9c3870..0000000000 --- a/assets/voxygen/element/items/item_bag_med.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c377631188e29239b8f974885f16bb9dd9ff53d3b25a97e294c8eb7a134909cf -size 195 diff --git a/assets/voxygen/element/items/item_bag_red_face.png b/assets/voxygen/element/items/item_bag_red_face.png deleted file mode 100644 index 20ed856852..0000000000 --- a/assets/voxygen/element/items/item_bag_red_face.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ea505484eaee477746d5064d7dbfa39ae66245019a328c9f0c0c2d87d21a909d -size 176 diff --git a/assets/voxygen/element/items/item_bag_skull.png b/assets/voxygen/element/items/item_bag_skull.png deleted file mode 100644 index e5bb903ceb..0000000000 --- a/assets/voxygen/element/items/item_bag_skull.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:517c3b66da934ce4082015d0b044f0291e531a4992f7e1c86185d182451975f0 -size 178 diff --git a/assets/voxygen/element/items/item_bag_small.png b/assets/voxygen/element/items/item_bag_small.png deleted file mode 100644 index d97d173bd8..0000000000 --- a/assets/voxygen/element/items/item_bag_small.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e547e8a58f6a5734596d9b8136d0633b83b480717d14a690a6a0d14e6f661cde -size 178 diff --git a/assets/voxygen/element/items/item_bag_t1_purp.png b/assets/voxygen/element/items/item_bag_t1_purp.png deleted file mode 100644 index f26b07def6..0000000000 --- a/assets/voxygen/element/items/item_bag_t1_purp.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:560b5e386b5f5cc9e86218f5d9238376a658836049506c9f4d6158f27cf885da -size 178 diff --git a/assets/voxygen/element/items/item_bag_tiny.png b/assets/voxygen/element/items/item_bag_tiny.png deleted file mode 100644 index ca86567a9e..0000000000 --- a/assets/voxygen/element/items/item_bag_tiny.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d465dc6cb0fe1b784fead5efc668bd80da5c257c4b426dbe6553789db364383c -size 180 diff --git a/assets/voxygen/element/items/item_cloth0.png b/assets/voxygen/element/items/item_cloth0.png deleted file mode 100644 index d5e95012c5..0000000000 --- a/assets/voxygen/element/items/item_cloth0.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:748c556280fdcc245c202d97628dc7fe69c4cce8efcf733f3d6c2925ad569bb9 -size 134 diff --git a/assets/voxygen/element/items/item_cloth_red.png b/assets/voxygen/element/items/item_cloth_red.png deleted file mode 100644 index 227e703db9..0000000000 --- a/assets/voxygen/element/items/item_cloth_red.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f414efb4b6e0b21ce11f9755d8adfa2d6e2a2bdfe83cee8f1d8fdb40ef2461d1 -size 151 diff --git a/assets/voxygen/element/items/item_coconut.png b/assets/voxygen/element/items/item_coconut.png deleted file mode 100644 index 91165cc12c..0000000000 --- a/assets/voxygen/element/items/item_coconut.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e1d29251d293ff29b5a4789df9e9fd1062268d5e7a80044a5bd7511d7b60f5ce -size 184 diff --git a/assets/voxygen/element/items/item_flayer_soul.png b/assets/voxygen/element/items/item_flayer_soul.png deleted file mode 100644 index 969017dd96..0000000000 --- a/assets/voxygen/element/items/item_flayer_soul.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cbecb865eb3464d800ec257fe1d8fd868e1d2672b15d5189c1ed44aa6b8f201e -size 158 diff --git a/assets/voxygen/element/items/item_honey.png b/assets/voxygen/element/items/item_honey.png deleted file mode 100644 index e1d48159a2..0000000000 --- a/assets/voxygen/element/items/item_honey.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c9a2e82284186776437e3c78b4bf403606e5bd193630d884b563e64f6d348084 -size 180 diff --git a/assets/voxygen/element/items/item_ice_shard.png b/assets/voxygen/element/items/item_ice_shard.png deleted file mode 100644 index 9614bd259e..0000000000 --- a/assets/voxygen/element/items/item_ice_shard.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:eb083d84fb12ccff092b525b31f71881b0f8243c21af722a3cab1093895f4325 -size 114 diff --git a/assets/voxygen/element/items/item_leather0.png b/assets/voxygen/element/items/item_leather0.png deleted file mode 100644 index a49a79ca84..0000000000 --- a/assets/voxygen/element/items/item_leather0.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:426bf5dc5e05f8ef4e016587e87e74613473b4ac85ed3fe5c1b486e12b85471b -size 171 diff --git a/assets/voxygen/element/items/item_leather1.png b/assets/voxygen/element/items/item_leather1.png deleted file mode 100644 index d4fa4602da..0000000000 --- a/assets/voxygen/element/items/item_leather1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:607772af9d97fc2fe73db3ed8d33a805eceac527fd058c6c8d8dd3dd3b0b08be -size 133 diff --git a/assets/voxygen/element/items/item_leather_green.png b/assets/voxygen/element/items/item_leather_green.png deleted file mode 100644 index 7d72206b4f..0000000000 --- a/assets/voxygen/element/items/item_leather_green.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c3aaf07ca85e9f31ebb4379e1b93553d30440f8c4835466fe5c4d30532e44b67 -size 148 diff --git a/assets/voxygen/element/items/item_mortarpestlecoco.png b/assets/voxygen/element/items/item_mortarpestlecoco.png deleted file mode 100644 index 361c444aa3..0000000000 --- a/assets/voxygen/element/items/item_mortarpestlecoco.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e2495cba04fe78efab76eabd6450f76de6205f886ae055c062d2f35104b9b1e9 -size 194 diff --git a/assets/voxygen/element/items/item_raptor_feather.png b/assets/voxygen/element/items/item_raptor_feather.png deleted file mode 100644 index 7238ae499f..0000000000 --- a/assets/voxygen/element/items/item_raptor_feather.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f5968db8b2257a05d850d5d663298ad0a350ddd6a55ce84f43eeaeb0952a5770 -size 168 diff --git a/assets/voxygen/element/items/item_shroom_stick.png b/assets/voxygen/element/items/item_shroom_stick.png deleted file mode 100644 index c725f2b628..0000000000 --- a/assets/voxygen/element/items/item_shroom_stick.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3b9f9d1570f5660d3a8510631f78f829272f9bcd205dcb392eda1ac12c8f8fa7 -size 166 diff --git a/assets/voxygen/element/items/item_sunflower_tea.png b/assets/voxygen/element/items/item_sunflower_tea.png deleted file mode 100644 index 94a65d2056..0000000000 --- a/assets/voxygen/element/items/item_sunflower_tea.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:98e8555a750948e1adc12fddee7071df5bfe78dfc590fd6c7d25f6a6e6277ff1 -size 249 diff --git a/assets/voxygen/element/items/lantern_black-0.png b/assets/voxygen/element/items/lantern_black-0.png deleted file mode 100644 index 6fecd5b9fb..0000000000 --- a/assets/voxygen/element/items/lantern_black-0.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:45e30d5c1751c8eb5b7baadce9830f4b9993b4bd4809545934cc84b5ba6657f6 -size 6384 diff --git a/assets/voxygen/element/items/lantern_blue-0.png b/assets/voxygen/element/items/lantern_blue-0.png deleted file mode 100644 index 0e2eda298e..0000000000 --- a/assets/voxygen/element/items/lantern_blue-0.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4cceb593bb22fdd1e2ad5be92105588e72fb5f4c959eb5c7d7c493eadaa053d9 -size 489 diff --git a/assets/voxygen/element/items/lantern_green-0.png b/assets/voxygen/element/items/lantern_green-0.png deleted file mode 100644 index b892ba552e..0000000000 --- a/assets/voxygen/element/items/lantern_green-0.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:31f6c1942fa17eabb703d521ff9ceb4330c011aa0b88842de7cdca26e00aa1ca -size 489 diff --git a/assets/voxygen/element/items/lantern_grey-0.png b/assets/voxygen/element/items/lantern_grey-0.png deleted file mode 100644 index 8effbd60ca..0000000000 --- a/assets/voxygen/element/items/lantern_grey-0.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a082a4f1796ce4aecfd9ae02cd8620b31b77c8c8b62c05a5d8eb0eeb2bc2edd0 -size 506 diff --git a/assets/voxygen/element/items/lantern_red-0.png b/assets/voxygen/element/items/lantern_red-0.png deleted file mode 100644 index 95de172208..0000000000 --- a/assets/voxygen/element/items/lantern_red-0.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:86c96fc0ad0b01f9ce5a9eebed6cc284b48c8a50f0434b92c9a38d5b5dbf68e3 -size 489 diff --git a/assets/voxygen/element/items/neck-0.png b/assets/voxygen/element/items/neck-0.png deleted file mode 100644 index bc32da1640..0000000000 --- a/assets/voxygen/element/items/neck-0.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:42803b026a63fee01b67ed80a02e63ec4fa5dae1674942ae0a103c38149cf16b -size 269 diff --git a/assets/voxygen/element/items/neck-1.png b/assets/voxygen/element/items/neck-1.png deleted file mode 100644 index 91acb11b62..0000000000 --- a/assets/voxygen/element/items/neck-1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d0a5bbfaa8ee2424cc361593c80ec701527412c8e5ef2d37ec4aeaee7c582775 -size 303 diff --git a/assets/voxygen/element/items/neck-seashell.png b/assets/voxygen/element/items/neck-seashell.png deleted file mode 100644 index dac1726961..0000000000 --- a/assets/voxygen/element/items/neck-seashell.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c442c81fa2ed04ed5c566202dbd13b4af83a3ad64b82459f44dbcece4977719a -size 421 diff --git a/assets/voxygen/element/items/ring-0.png b/assets/voxygen/element/items/ring-0.png deleted file mode 100644 index 05e25940a7..0000000000 --- a/assets/voxygen/element/items/ring-0.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ade34adcde101ce9f30c9e92665ee77371a2f7c1ba9716843632319c8270993c -size 295 diff --git a/assets/voxygen/element/items/sewing_set.png b/assets/voxygen/element/items/sewing_set.png deleted file mode 100644 index 5ce9036971..0000000000 --- a/assets/voxygen/element/items/sewing_set.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e2d40d8f0a40907155b46e5528ffe710a19c3f28763b61e2e27808ae20d38ff0 -size 182 diff --git a/assets/voxygen/element/items/tabard_admin.png b/assets/voxygen/element/items/tabard_admin.png deleted file mode 100644 index 6cc5c47ac1..0000000000 --- a/assets/voxygen/element/items/tabard_admin.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:776ddc763ad417791468e83bff9a2f277f373eaae3dae4abea6249f1e576bd4e -size 289 From 4ecdd8002dfe6e0d66a9c14c080d032d3bcc32f7 Mon Sep 17 00:00:00 2001 From: DoctorKompot Date: Mon, 27 Dec 2021 02:29:03 +0200 Subject: [PATCH 26/26] updated changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a99d16385..6a8ce5e806 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -54,6 +54,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Removed +- Removed unused PNG files + ### Fixed - The menu map now properly handles dragging the map, zooming, and setting the waypoint when hovering icons