From c40bd37452dc191cab87707aecba3f3b6ffe9016 Mon Sep 17 00:00:00 2001 From: Monty Date: Sun, 18 Apr 2021 02:25:19 +0200 Subject: [PATCH] more sprite stuff and crafting UI update fix item images fix CR display --- .../items/crafting_tools/craftsman_hammer.ron | 6 +- assets/common/items/tool/craftsman_hammer.ron | 18 +++++ assets/common/recipe_book.ron | 46 ++++++++---- assets/voxygen/i18n/en/hud/crafting.ron | 7 +- assets/voxygen/item_image_manifest.ron | 27 ++++++- .../voxygen/voxel/biped_weapon_manifest.ron | 6 +- .../voxygen/voxel/glider/glider_cultists.vox | Bin 14960 -> 14960 bytes assets/voxygen/voxel/sprite/anvil/anvil-0.vox | Bin 4432 -> 4432 bytes .../voxel/sprite/cauldron/cauldron-0.vox | Bin 10696 -> 10696 bytes .../voxel/sprite/cooking_pot/pot-0.vox | Bin 0 -> 8340 bytes assets/voxygen/voxel/sprite_manifest.ron | 11 +++ .../voxygen/voxel/weapon/hammer/craftsman.vox | Bin 2240 -> 2240 bytes common/src/terrain/sprite.rs | 3 + voxygen/src/hud/crafting.rs | 66 ++++++++++++++++-- voxygen/src/hud/mod.rs | 10 +-- voxygen/src/scene/terrain/watcher.rs | 3 + .../settlement/building/archetype/house.rs | 6 +- 17 files changed, 175 insertions(+), 34 deletions(-) create mode 100644 assets/common/items/tool/craftsman_hammer.ron create mode 100644 assets/voxygen/voxel/sprite/cooking_pot/pot-0.vox diff --git a/assets/common/items/crafting_tools/craftsman_hammer.ron b/assets/common/items/crafting_tools/craftsman_hammer.ron index f8d7f84ae3..24b5822c37 100644 --- a/assets/common/items/crafting_tools/craftsman_hammer.ron +++ b/assets/common/items/crafting_tools/craftsman_hammer.ron @@ -1,9 +1,9 @@ ItemDef( - name: "Craftsman Hammer", - description: "Used to craft various items.", + name: "Old Hammer", + description: "You don't quite remember where you got this from...", kind: Ingredient( kind: "CraftsmanHammer", ), - quality: Moderate, + quality: Low, tags: [CraftingTool], ) diff --git a/assets/common/items/tool/craftsman_hammer.ron b/assets/common/items/tool/craftsman_hammer.ron new file mode 100644 index 0000000000..599a308d0d --- /dev/null +++ b/assets/common/items/tool/craftsman_hammer.ron @@ -0,0 +1,18 @@ +ItemDef( + name: "Craftsman Hammer", + description: "Used to craft various items.", + kind: Tool(( + kind: Hammer, + hands: One, + stats: Direct(( + equip_time_secs: 0.25, + power: 0.2, + poise_strength: 0.25, + speed: 1.5, + crit_chance: 0.0, + crit_mult: 0.0, + )), + )), + quality: Common, + tags: [CraftingTool], +) \ No newline at end of file diff --git a/assets/common/recipe_book.ron b/assets/common/recipe_book.ron index 6b584e76b1..5b1b11f81b 100644 --- a/assets/common/recipe_book.ron +++ b/assets/common/recipe_book.ron @@ -1,19 +1,20 @@ { "crafting_hammer": ( - output: ("common.items.crafting_tools.craftsman_hammer", 1), + output: ("common.items.tool.craftsman_hammer", 1), inputs: [ (Item("common.items.crafting_ing.twigs"), 6), (Item("common.items.crafting_ing.stones"), 6), ], - craft_sprite: Some(CraftingBench), + craft_sprite: Some(Anvil), ), "mortar_pestle": ( output: ("common.items.crafting_tools.mortar_pestle", 1), inputs: [ (Item("common.items.crafting_ing.stones"), 6), (Item("common.items.food.coconut"), 1), - (Item("common.items.crafting_tools.craftsman_hammer"), 0), + (Item("common.items.tool.craftsman_hammer"), 0), ], + craft_sprite: Some(CraftingBench), ), "sewing_set": ( output: ("common.items.crafting_tools.sewing_set", 1), @@ -22,12 +23,13 @@ (Item("common.items.crafting_ing.twigs"), 4), (Item("common.items.crafting_ing.stones"), 2), ], + craft_sprite: Some(CraftingBench), ), "velorite_frag": ( output: ("common.items.ore.veloritefrag", 2), inputs: [ (Item("common.items.ore.velorite"), 1), - (Item("common.items.crafting_tools.craftsman_hammer"), 0), + (Item("common.items.tool.craftsman_hammer"), 0), ], craft_sprite: Some(Anvil), ), @@ -63,6 +65,7 @@ (Item("common.items.ore.veloritefrag"), 2), (Item("common.items.crafting_tools.mortar_pestle"), 0), ], + craft_sprite: Some(CraftingBench), ), "firework_blue": ( output: ("common.items.utility.firework_blue", 1), @@ -73,6 +76,7 @@ (Item("common.items.ore.veloritefrag"), 1), (Item("common.items.crafting_tools.mortar_pestle"), 0), ], + craft_sprite: Some(CraftingBench), ), "firework_green": ( output: ("common.items.utility.firework_green", 1), @@ -83,6 +87,7 @@ (Item("common.items.ore.veloritefrag"), 1), (Item("common.items.crafting_tools.mortar_pestle"), 0), ], + craft_sprite: Some(CraftingBench), ), "firework_purple": ( output: ("common.items.utility.firework_purple", 1), @@ -93,6 +98,7 @@ (Item("common.items.ore.veloritefrag"), 1), (Item("common.items.crafting_tools.mortar_pestle"), 0), ], + craft_sprite: Some(CraftingBench), ), "firework_red": ( output: ("common.items.utility.firework_red", 1), @@ -103,6 +109,7 @@ (Item("common.items.ore.veloritefrag"), 1), (Item("common.items.crafting_tools.mortar_pestle"), 0), ], + craft_sprite: Some(CraftingBench), ), "firework_white": ( output: ("common.items.utility.firework_white", 1), @@ -113,6 +120,7 @@ (Item("common.items.ore.veloritefrag"), 1), (Item("common.items.crafting_tools.mortar_pestle"), 0), ], + craft_sprite: Some(CraftingBench), ), "firework_yellow": ( output: ("common.items.utility.firework_yellow", 1), @@ -123,6 +131,7 @@ (Item("common.items.ore.veloritefrag"), 1), (Item("common.items.crafting_tools.mortar_pestle"), 0), ], + craft_sprite: Some(CraftingBench), ), "apple_shroom_curry": ( output: ("common.items.food.apple_mushroom_curry", 1), @@ -132,7 +141,7 @@ (Item("common.items.food.apple"), 4), (Item("common.items.crafting_tools.mortar_pestle"), 0), ], - craft_sprite: Some(Cauldron), + craft_sprite: Some(CookingPot), ), "salad_plain": ( output: ("common.items.food.plainsalad", 1), @@ -179,7 +188,7 @@ (Item("common.items.crafting_ing.twigs"), 5), (Item("common.items.crafting_ing.leather_scraps"), 5), (Item("common.items.crafting_ing.cloth_scraps"), 10), - (Item("common.items.crafting_tools.craftsman_hammer"), 0), + (Item("common.items.tool.craftsman_hammer"), 0), (Item("common.items.crafting_tools.sewing_set"), 0), ], craft_sprite: Some(CraftingBench), @@ -190,7 +199,7 @@ (Item("common.items.crafting_ing.twigs"), 5), (Item("common.items.crafting_ing.cloth_scraps_red"), 10), (Item("common.items.crafting_ing.leather_scraps"), 5), - (Item("common.items.crafting_tools.craftsman_hammer"), 0), + (Item("common.items.tool.craftsman_hammer"), 0), (Item("common.items.crafting_tools.sewing_set"), 0), ], craft_sprite: Some(CraftingBench), @@ -202,7 +211,7 @@ (Item("common.items.crafting_ing.leather_scraps"), 5), (Item("common.items.crafting_ing.cloth_scraps"), 5), (Item("common.items.crafting_ing.emerald"), 1), - (Item("common.items.crafting_tools.craftsman_hammer"), 0), + (Item("common.items.tool.craftsman_hammer"), 0), (Item("common.items.crafting_tools.sewing_set"), 0), ], craft_sprite: Some(CraftingBench), @@ -215,7 +224,7 @@ (Item("common.items.crafting_ing.leather_scraps"), 5), (Item("common.items.crafting_ing.cloth_scraps"), 5), (Item("common.items.crafting_ing.ruby"), 1), - (Item("common.items.crafting_tools.craftsman_hammer"), 0), + (Item("common.items.tool.craftsman_hammer"), 0), (Item("common.items.crafting_tools.sewing_set"), 0), ], craft_sprite: Some(CraftingBench), @@ -229,7 +238,7 @@ (Item("common.items.crafting_ing.cloth_scraps"), 5), (Item("common.items.crafting_ing.icy_fang"), 1), (Item("common.items.crafting_ing.ruby"), 1), - (Item("common.items.crafting_tools.craftsman_hammer"), 0), + (Item("common.items.tool.craftsman_hammer"), 0), (Item("common.items.crafting_tools.sewing_set"), 0), ], craft_sprite: Some(CraftingBench), @@ -242,7 +251,7 @@ (Item("common.items.crafting_ing.leather_scraps"), 5), (Item("common.items.crafting_ing.cloth_scraps"), 5), (Item("common.items.crafting_ing.ruby"), 1), - (Item("common.items.crafting_tools.craftsman_hammer"), 0), + (Item("common.items.tool.craftsman_hammer"), 0), (Item("common.items.crafting_tools.sewing_set"), 0), ], craft_sprite: Some(CraftingBench), @@ -253,7 +262,7 @@ (Item("common.items.crafting_ing.twigs"), 20), (Item("common.items.ore.veloritefrag"), 8), (Item("common.items.crafting_ing.ruby"), 4), - (Item("common.items.crafting_tools.craftsman_hammer"), 0), + (Item("common.items.tool.craftsman_hammer"), 0), ], ), "Hunting Bow": ( @@ -278,30 +287,37 @@ "adventure back": ( output: ("common.items.armor.agile.back", 1), inputs: [(Item("common.items.crafting_ing.leather_scraps"), 4)], + craft_sprite: Some(CraftingBench), ), "adventure belt": ( output: ("common.items.armor.agile.belt", 1), inputs: [(Item("common.items.crafting_ing.leather_scraps"), 2)], + craft_sprite: Some(CraftingBench), ), "adventure chest": ( output: ("common.items.armor.agile.chest", 1), inputs: [(Item("common.items.crafting_ing.leather_scraps"), 12)], + craft_sprite: Some(CraftingBench), ), "adventure feet": ( output: ("common.items.armor.agile.foot", 1), inputs: [(Item("common.items.crafting_ing.leather_scraps"), 3)], + craft_sprite: Some(CraftingBench), ), "adventure hands": ( output: ("common.items.armor.agile.hand", 1), inputs: [(Item("common.items.crafting_ing.leather_scraps"), 4)], + craft_sprite: Some(CraftingBench), ), "adventure pants": ( output: ("common.items.armor.agile.pants", 1), inputs: [(Item("common.items.crafting_ing.leather_scraps"), 8)], + craft_sprite: Some(CraftingBench), ), "adventure shoulder": ( output: ("common.items.armor.agile.shoulder", 1), inputs: [(Item("common.items.crafting_ing.leather_scraps"), 12)], + craft_sprite: Some(CraftingBench), ), "Seashell Necklace": ( output: ("common.items.armor.misc.neck.shell", 1), @@ -311,6 +327,7 @@ (Item("common.items.crafting_ing.seashells"), 3), (Item("common.items.crafting_tools.sewing_set"), 0), ], + craft_sprite: Some(CraftingBench), ), "red cloth": ( output: ("common.items.crafting_ing.cloth_scraps_red", 1), @@ -360,6 +377,7 @@ (Item("common.items.armor.misc.bag.tiny_leather_pouch"), 2), (Item("common.items.crafting_tools.sewing_set"), 0), ], + craft_sprite: Some(CraftingBench), ), "sturdy red backpack": ( output: ("common.items.armor.misc.bag.sturdy_red_backpack", 1), @@ -395,7 +413,7 @@ (Item("common.items.crafting_ing.cloth_scraps"), 1), // TODO: Replace with plant fiber when obtainable (Item("common.items.crafting_ing.stones"), 5), // TODO: Replace with iron ingots when obtainable (Item("common.items.crafting_ing.twigs"), 4), - (Item("common.items.crafting_tools.craftsman_hammer"), 0), + (Item("common.items.tool.craftsman_hammer"), 0), ], craft_sprite: Some(Anvil), ), @@ -417,7 +435,7 @@ // output: ("common.items.crafting_ing.modular.damage.sword.metal_blade", 1), // inputs: [ // (Tag(MetalIngot), 5), - // (Item("common.items.crafting_tools.craftsman_hammer"), 0), + // (Item("common.items.tool.craftsman_hammer"), 0), // ], //), } diff --git a/assets/voxygen/i18n/en/hud/crafting.ron b/assets/voxygen/i18n/en/hud/crafting.ron index 41d5cf4a49..985f4c3bd4 100644 --- a/assets/voxygen/i18n/en/hud/crafting.ron +++ b/assets/voxygen/i18n/en/hud/crafting.ron @@ -8,7 +8,12 @@ "hud.crafting.ingredients": "Ingredients:", "hud.crafting.craft": "Craft", "hud.crafting.tool_cata": "Requires:", - + // Crafting Stations + "hud.crafting.req_crafting_station": "Requires:", + "hud.crafting.anvil": "Anvil", + "hud.crafting.cauldron": "Cauldron", + "hud.crafting.cooking_pot": "Cooking Pot", + "hud.crafting.crafting_bench": "Crafting Bench", // Tabs "hud.crafting.tabs.all": "All", "hud.crafting.tabs.armor": "Armor", diff --git a/assets/voxygen/item_image_manifest.ron b/assets/voxygen/item_image_manifest.ron index c863e6abbc..1a90921bbb 100644 --- a/assets/voxygen/item_image_manifest.ron +++ b/assets/voxygen/item_image_manifest.ron @@ -2,6 +2,23 @@ // Vox(specier), // VoxTrans(specifier, offset, (x_rot, y_rot, z_rot), zoom) ({ + // Crafting Stations + Tool("Anvil"): VoxTrans( + "voxel.sprite.anvil.anvil-0", + (0.5, 0.5, 0.0), (0.0, 60.0, 90.0), 1.0, + ), + Tool("Cauldron"): VoxTrans( + "voxel.sprite.cauldron.cauldron-0", + (0.0, 0.0, 0.0), (-50.0, 40.0, 30.0), 1.0, + ), + Tool("CookingPot"): VoxTrans( + "voxel.sprite.cooking_pot.pot-0", + (0.0, 0.0, 0.0), (0.0, 90.0, 90.0), 1.2, + ), + Tool("CraftingBench"): VoxTrans( + "voxel.sprite.crafting_bench.crafting_bench-0", + (0.0, 0.0, 0.0), (-50.0, 40.0, 20.0), 1.0, + ), // Weapons // Diary Example Images Tool("example_utility"): VoxTrans( @@ -1920,10 +1937,14 @@ "voxel.object.training_dummy", (0.0, -1.0, 0.0), (-50.0, 40.0, 20.0), 0.8, ), - // Ingredients - Ingredient("CraftsmanHammer"): VoxTrans( //TODO This should be a 1h hammer! + // Ingredients + Tool("common.items.tool.craftsman_hammer"): VoxTrans( "voxel.weapon.hammer.craftsman", - (1.0, 1.0, 0.0), (-135.0, 90.0, 0.0), 1.0, + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 0.9, + ), + Ingredient("CraftsmanHammer"): VoxTrans( + "voxel.weapon.hammer.craftsman", + (1.0, 1.0, 0.0), (-135.0, 90.0, 0.0), 0.8, ), Ingredient("SewingSet"): Png( "element.items.sewing_set", diff --git a/assets/voxygen/voxel/biped_weapon_manifest.ron b/assets/voxygen/voxel/biped_weapon_manifest.ron index 1a69cb2f35..27f5b7c0ca 100644 --- a/assets/voxygen/voxel/biped_weapon_manifest.ron +++ b/assets/voxygen/voxel/biped_weapon_manifest.ron @@ -462,7 +462,11 @@ vox_spec: ("weapon.axe_1h.wood-1", (-1.5, -5.0, -3.0)), color: None ), - // Hammers + // Hammers + "common.items.tool.craftsman_hammer": ( + vox_spec: ("weapon.hammer.craftsman", (-2.5, -5.5, -4.5)), + color: None + ), "common.items.weapons.hammer.hammer_1": ( vox_spec: ("weapon.hammer.2hhammer_rusty", (-2.5, -5.5, -4.5)), color: None diff --git a/assets/voxygen/voxel/glider/glider_cultists.vox b/assets/voxygen/voxel/glider/glider_cultists.vox index 9f04aa8d038c276302fcdd76982cbdc8d00cb9fb..997223e789e488c24d4878c4cf7465704173f0ef 100644 GIT binary patch delta 253 zcmWN|I|{-;6h>hpOd$~+(3scE6cI%*pd?WXTRZJsfCNiR?JTsguoU7VEQM^vT3kXF zVBsmg1NVnp9joJOYoDc~gzUmqBKP1UK**+`VYnmo5JPB@x6npM3+bQ>m)nDn03n-# zhT)D7Ll}`aAx-hI>wW1M{^7ED@DU(nQ_v_Ijo!eL#U$C$N3x>dWKY-Wg5J^t{iS0X aXD9m1M)aL+ELjexSF60wmR4EKFSS3W*)SRa delta 253 zcmWN|I|{-;6h>hpOfe`bXv}M7iUdV4pd=9mTRZJsfCNiR(^+U?VXq6Yv=p)xYjFu# zfQ6^{4%{DZRaC`mTR%x#3E6|AMDD_akAO`Rv1B=%UaaylUs`1~JJVw=5I|9OtE+0d$0jF2a!iW6bGMcD5FCP(kuTzq+rZo4xvM_oR$Jop?ep!= z@A)`7>WERtAV;0$?B||#icxiDnVqA}ZFY{$Hxw~_M^1M*n^;aV+WqbRcE35zR6Z=# zF1I*Go7?Ohn~x~QG*7?$Jg?g^Vsq(s6fx{1MH8u!6it*yQZ(^sk)&v1(@2UYrbbdU zu{4sRpZjGVNinWwiU>PN(Zra?WB8F2O{5P=iY7`UDVk`Fq-bK(NQx$=Mp87fG;+>5NK*83{<6+-S!Z6BzsP(wU)S;L@BaPa*(yEO8R=hhdA3H|qqNc}+8(_;Tcc=V z(@2UYrbbdUu{4re577|2NK!QMqLCC$ylNyx6TSN%w|mU)F}ug?XKdQ0QM5g#HZ_X2 n$NLhONYVD#wOylVd%S2b8pX$t*Kz6F?e_0}zkj@c{TBZLT})p6 delta 907 zcmWmCF>Vw=5I|98tE+0dXN^QaK!oIkgn$J3coP$I2&asE5r^Cc-UiQI^%=L?67SFN z&wpO$xpmYQqqaegy2{y)J?#{u>dG=ZN1NO19J_BQV)~Ap?r=7-oMg27+x_i+bDF6< zE!8f!I7ge?>>Rs~D8@8Tzx+6F`!-^C>An>)>?B1KsgV>-ltxlCakfZOG_h+WMH5pa zDVkUsNzspen_E(ho0%fQPEs^6=5`K0lA?+9AxY6hX(UAxt&tQ>>>5eY#MDTNCYDC7 z`P0iq;t)xSe#{@%HMVu-w){oroB6i3-+zy)WS)uRlJ&y?p!<{{hQXHKqUn diff --git a/assets/voxygen/voxel/sprite/cauldron/cauldron-0.vox b/assets/voxygen/voxel/sprite/cauldron/cauldron-0.vox index 84279548c00488c6dd9129ce7abca2b87ac60265..b808556f42c0c1f5b6f51dbcaba7f58c530f8a9b 100644 GIT binary patch delta 851 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 X{kXcj_~X`gkN>2#w_f-s=goful}=et literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/sprite_manifest.ron b/assets/voxygen/voxel/sprite_manifest.ron index b4a5c38c4b..4e2b11a7cd 100644 --- a/assets/voxygen/voxel/sprite_manifest.ron +++ b/assets/voxygen/voxel/sprite_manifest.ron @@ -2896,4 +2896,15 @@ CraftingBench: Some(( ], wind_sway: 0.0, )), +// Cooking Pot +CookingPot: Some(( + variations: [ + ( + model: "voxygen.voxel.sprite.cooking_pot.pot-0", + offset: (-9.0, -10.0, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)), ) diff --git a/assets/voxygen/voxel/weapon/hammer/craftsman.vox b/assets/voxygen/voxel/weapon/hammer/craftsman.vox index 283d73539e539fc9ca4f81c4db7c138e19f95eea..0ed2c9b98f680d57a97eb944e81ad8b832674683 100644 GIT binary patch delta 1188 zcmWmD&2iOG3ovzW=>>%k#nu_ z`1j-Q$6p`McMl=@jP`rXUF$ar{Q|I{$J<+`J|tovQwq&DMzWT zr^lZh^!zsmz3A!H-|0==&Zn$*8U{1@@SOGFAFG4e_44o>vHzIJ*zct_G0DhDrZ$oL z%ar?T=KiD9)<>DE{Uy~>TaDiDQ=j`id;eCNCWeq42Gu5JH_vWXOKmk4hb#_RWNPbU zHAk)<)}YC%jwlA?*c*hEIr`Y3ZGMH79oiHxH4F=RtV(fXL( zOHwpvEDl+O6s?cdAW6~0CfhtUMe8H3_lcxvVvS|4SuuBT0e zv>;m81}Rz}LpEd-t&dqY%P3kOi$fL}MeAcVx5_A5ADfJ%w$oF)h`4ztH=EpSati)XQZ%v2HV;kF z`iR3Khp*(Y$l)tFEFvQ(nc74i7CBzd%;U9OG*Jf0GN?AuhfNM&iHs(OjHGB{b}u>0 i)Fu{(kc%_aCRTIgYHmH=+r;1|BsZbj+wu0+m;MLR=CQ*7 delta 1188 zcmWmE&2i&K5C+gjcLN|q{ETis`Q&7rf$gJjjzBuNiYYh-sk8}f0(-IJ@}sIA8~t&L zJrIWc@%rQSpI;uY5%I!rzyI;;-|fQR&y$xu-Y0U8w^ExpWJkOuMeE~?w~3@^;P^3S|3$sG z|3<$}it$&pu|Gn{7^=NNWDbR_EE~ zW}BNIb|=_);Xd2lY77 z^(!8S@K_BJ()u`8hfqe*`nasSWE8EBAtT4?5UviPY`?jgn{U+3H|pjab#pT^lA?+8 z=4Nj1kMvTsATA3@iYA7P96nHOV&4qe4A~6X4A~5k9h=_<8Lf|VGekzw#AV$jqps~I SKMocSAvuI 2.7, SpriteKind::Cauldron => 1.27, SpriteKind::Anvil => 1.1, + SpriteKind::CookingPot => 1.82, // TODO: Find suitable heights. SpriteKind::BarrelCactus | SpriteKind::RoundCactus @@ -321,6 +323,7 @@ impl SpriteKind { | SpriteKind::Forge | SpriteKind::Cauldron | SpriteKind::Anvil + | SpriteKind::CookingPot ) } } diff --git a/voxygen/src/hud/crafting.rs b/voxygen/src/hud/crafting.rs index 9b59b8398d..dac34d463c 100644 --- a/voxygen/src/hud/crafting.rs +++ b/voxygen/src/hud/crafting.rs @@ -1,6 +1,6 @@ use super::{ img_ids::{Imgs, ImgsRot}, - item_imgs::{animate_by_pulse, ItemImgs}, + item_imgs::{animate_by_pulse, ItemImgs, ItemKey::Tool}, Show, TEXT_COLOR, TEXT_DULL_RED_COLOR, TEXT_GRAY_COLOR, UI_HIGHLIGHT_0, UI_MAIN, }; use crate::{ @@ -20,6 +20,7 @@ use common::{ Inventory, }, recipe::RecipeInput, + terrain::SpriteKind, }; use conrod_core::{ color, image, @@ -59,6 +60,9 @@ widget_ids! { ingredient_img[], req_text[], ingredients_txt, + req_station_title, + req_station_img, + req_station_txt, output_img_frame, output_img, output_amount, @@ -657,14 +661,66 @@ impl<'a> Widget for Crafting<'a> { .set(state.ids.tags_ing[i], ui); } } - - // Ingredients Text - Text::new(&self.localized_strings.get("hud.crafting.ingredients")) + // Crafting Station Info + if recipe.craft_sprite.is_some() { + Text::new( + &self + .localized_strings + .get("hud.crafting.req_crafting_station"), + ) .top_left_with_margins_on(state.ids.align_ing, 10.0, 5.0) .font_id(self.fonts.cyri.conrod_id) .font_size(self.fonts.cyri.scale(18)) .color(TEXT_COLOR) - .set(state.ids.ingredients_txt, ui); + .set(state.ids.req_station_title, ui); + let station_img = match recipe.craft_sprite { + Some(SpriteKind::Anvil) => "Anvil", + Some(SpriteKind::Cauldron) => "Cauldron", + Some(SpriteKind::CookingPot) => "CookingPot", + Some(SpriteKind::CraftingBench) => "CraftingBench", + None => "CraftsmanHammer", + _ => "CraftsmanHammer", + }; + Image::new(animate_by_pulse( + &self + .item_imgs + .img_ids_or_not_found_img(Tool(station_img.to_string())), + self.pulse, + )) + .w_h(25.0, 25.0) + .down_from(state.ids.req_station_title, 10.0) + .parent(state.ids.align_ing) + .set(state.ids.req_station_img, ui); + + let station_name = match recipe.craft_sprite { + Some(SpriteKind::Anvil) => "hud.crafting.anvil", + Some(SpriteKind::Cauldron) => "hud.crafting.cauldron", + Some(SpriteKind::CookingPot) => "hud.crafting.cooking_pot", + Some(SpriteKind::CraftingBench) => "hud.crafting.crafting_bench", + _ => "", + }; + Text::new(&self.localized_strings.get(station_name)) + .right_from(state.ids.req_station_img, 10.0) + .font_id(self.fonts.cyri.conrod_id) + .font_size(self.fonts.cyri.scale(14)) + .color(if self.show.craft_sprite.is_some() { + TEXT_COLOR + } else { + TEXT_DULL_RED_COLOR + }) + .set(state.ids.req_station_txt, ui); + } + // Ingredients Text + let mut ing_txt = Text::new(&self.localized_strings.get("hud.crafting.ingredients")) + .font_id(self.fonts.cyri.conrod_id) + .font_size(self.fonts.cyri.scale(18)) + .color(TEXT_COLOR); + if recipe.craft_sprite.is_some() { + ing_txt = ing_txt.down_from(state.ids.req_station_img, 10.0); + } else { + ing_txt = ing_txt.top_left_with_margins_on(state.ids.align_ing, 10.0, 5.0); + }; + ing_txt.set(state.ids.ingredients_txt, ui); // Ingredient images with tooltip if state.ids.ingredient_frame.len() < recipe.inputs().len() { diff --git a/voxygen/src/hud/mod.rs b/voxygen/src/hud/mod.rs index 5e3cea6c4c..293f2208c2 100644 --- a/voxygen/src/hud/mod.rs +++ b/voxygen/src/hud/mod.rs @@ -3487,11 +3487,11 @@ fn try_hotbar_slot_from_input(input: GameInput) -> Option { } pub fn cr_color(combat_rating: f32) -> Color { - let common = 4.3; - let moderate = 6.0; - let high = 8.0; - let epic = 10.0; - let legendary = 79.0; + let common = 2.0; + let moderate = 3.5; + let high = 6.5; + let epic = 8.5; + let legendary = 10.4; let artifact = 122.0; let debug = 200.0; diff --git a/voxygen/src/scene/terrain/watcher.rs b/voxygen/src/scene/terrain/watcher.rs index baf8fff933..3b32b2f6a3 100644 --- a/voxygen/src/scene/terrain/watcher.rs +++ b/voxygen/src/scene/terrain/watcher.rs @@ -127,6 +127,9 @@ impl BlocksOfInterest { Some(SpriteKind::Anvil) => { interactables.push((pos, Interaction::Craft(CraftingTab::Weapon))) }, + Some(SpriteKind::CookingPot) => { + interactables.push((pos, Interaction::Craft(CraftingTab::Food))) + }, _ => {}, }, } diff --git a/world/src/site/settlement/building/archetype/house.rs b/world/src/site/settlement/building/archetype/house.rs index 398789a40c..9154d4d136 100644 --- a/world/src/site/settlement/building/archetype/house.rs +++ b/world/src/site/settlement/building/archetype/house.rs @@ -535,9 +535,10 @@ impl Archetype for House { 0..=1 => SpriteKind::Crate, 2 => SpriteKind::Bench, 3 => SpriteKind::Anvil, - 4 => SpriteKind::Cauldron, + 4 => SpriteKind::CookingPot, 5 => SpriteKind::CraftingBench, 6 => SpriteKind::FireBowlGround, + //7 => SpriteKind::Cauldron, //8 => SpriteKind::Forge, _ => unreachable!(), }; @@ -561,7 +562,7 @@ impl Archetype for House { center_offset.x, center_offset.y, z + 100, - )) % 12 + )) % 13 { 0 => SpriteKind::Planter, 1 => SpriteKind::ChairSingle, @@ -585,6 +586,7 @@ impl Archetype for House { SpriteKind::VialEmpty } }, + 11 => SpriteKind::Cauldron, _ => { if dynamic_rng.gen_range(0..2) == 0 { SpriteKind::Bowl