diff --git a/assets/voxygen/i18n/en/hud/crafting.ron b/assets/voxygen/i18n/en/hud/crafting.ron index f702b1540f..5db166ea1f 100644 --- a/assets/voxygen/i18n/en/hud/crafting.ron +++ b/assets/voxygen/i18n/en/hud/crafting.ron @@ -18,6 +18,7 @@ "hud.crafting.loom": "Loom", "hud.crafting.spinning_wheel": "Spinning Wheel", "hud.crafting.tanning_rack": "Tanning Rack", + "hud.crafting.salvaging_station": "Salvaging 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 c372bdc3b9..57c18023ac 100644 --- a/assets/voxygen/item_image_manifest.ron +++ b/assets/voxygen/item_image_manifest.ron @@ -35,6 +35,10 @@ "voxel.object.tanning_rack", (0.0, 0.0, 0.0), (-90.0, 20.0, 0.0), 1.0, ), + Tool("SalvagingBench"): VoxTrans( + "voxel.sprite.salvaging_station.salvaging_station-0", + (0.0, 0.0, 0.0), (-90.0, 20.0, 0.0), 1.0, + ), // Weapons // Diary Example Images Tool("example_utility"): VoxTrans( diff --git a/assets/voxygen/voxel/sprite/salvaging_station/salvaging_station-0.vox b/assets/voxygen/voxel/sprite/salvaging_station/salvaging_station-0.vox new file mode 100644 index 0000000000..c2fa637b22 Binary files /dev/null and b/assets/voxygen/voxel/sprite/salvaging_station/salvaging_station-0.vox differ diff --git a/assets/voxygen/voxel/sprite_manifest.ron b/assets/voxygen/voxel/sprite_manifest.ron index 7672a1b9a5..c3807ec7ba 100644 --- a/assets/voxygen/voxel/sprite_manifest.ron +++ b/assets/voxygen/voxel/sprite_manifest.ron @@ -3216,6 +3216,17 @@ Loom: Some(( ], wind_sway: 0.0, )), +// SalvagingBench +SalvagingBench: Some(( + variations: [ + ( + model: "voxygen.voxel.sprite.salvaging_station.salvaging_station-0", + offset: (-8.5, -7.5, 0.0), + lod_axes: (0.0, 0.0, 0.0), + ), + ], + wind_sway: 0.0, +)), SpinningWheel: Some(( variations: [ ( diff --git a/common/src/terrain/block.rs b/common/src/terrain/block.rs index 8665c20ed2..302a24b815 100644 --- a/common/src/terrain/block.rs +++ b/common/src/terrain/block.rs @@ -261,6 +261,7 @@ impl Block { | SpriteKind::Forge | SpriteKind::Loom | SpriteKind::SpinningWheel + | SpriteKind::SalvagingBench | SpriteKind::TanningRack => None, SpriteKind::EnsnaringVines => Some(0.1), _ => Some(0.25), diff --git a/common/src/terrain/sprite.rs b/common/src/terrain/sprite.rs index f4b4269de4..bff6f3274a 100644 --- a/common/src/terrain/sprite.rs +++ b/common/src/terrain/sprite.rs @@ -182,6 +182,7 @@ make_case_elim!( CavernGrassBlueLong = 0x9B, CavernLillypadBlue = 0x9C, CavernMycelBlue = 0x9D, + SalvagingBench = 0x9E, } ); @@ -238,6 +239,7 @@ impl SpriteKind { SpriteKind::Loom => 1.27, SpriteKind::Anvil => 1.1, SpriteKind::CookingPot => 1.36, + SpriteKind::SalvagingBench => 1.18, // TODO: Find suitable heights. SpriteKind::BarrelCactus | SpriteKind::RoundCactus @@ -440,6 +442,7 @@ impl SpriteKind { | SpriteKind::SpinningWheel | SpriteKind::TanningRack | SpriteKind::Loom + | SpriteKind::SalvagingBench ) } } diff --git a/voxygen/src/hud/crafting.rs b/voxygen/src/hud/crafting.rs index 0d00119459..9d9e531f79 100644 --- a/voxygen/src/hud/crafting.rs +++ b/voxygen/src/hud/crafting.rs @@ -617,6 +617,7 @@ impl<'a> Widget for Crafting<'a> { Some(SpriteKind::Loom) => Some("Loom"), Some(SpriteKind::SpinningWheel) => Some("SpinningWheel"), Some(SpriteKind::TanningRack) => Some("TanningRack"), + Some(SpriteKind::SalvagingBench) => Some("SalvagingBench"), _ => None, }; @@ -792,6 +793,7 @@ impl<'a> Widget for Crafting<'a> { Some(SpriteKind::Loom) => "Loom", Some(SpriteKind::SpinningWheel) => "SpinningWheel", Some(SpriteKind::TanningRack) => "TanningRack", + Some(SpriteKind::SalvagingBench) => "SalvagingBench", None => "CraftsmanHammer", _ => "CraftsmanHammer", }; @@ -815,6 +817,7 @@ impl<'a> Widget for Crafting<'a> { Some(SpriteKind::Loom) => "hud.crafting.loom", Some(SpriteKind::SpinningWheel) => "hud.crafting.spinning_wheel", Some(SpriteKind::TanningRack) => "hud.crafting.tanning_rack", + Some(SpriteKind::SalvagingBench) => "hud.crafting.salvaging_station", _ => "", }; Text::new(self.localized_strings.get(station_name)) diff --git a/voxygen/src/hud/mod.rs b/voxygen/src/hud/mod.rs index 0ba05f0f61..4c7c2410fe 100644 --- a/voxygen/src/hud/mod.rs +++ b/voxygen/src/hud/mod.rs @@ -4078,6 +4078,7 @@ pub fn get_sprite_desc(sprite: SpriteKind, localized_strings: &Localization) -> SpriteKind::Loom => "hud.crafting.loom", SpriteKind::SpinningWheel => "hud.crafting.spinning_wheel", SpriteKind::TanningRack => "hud.crafting.tanning_rack", + SpriteKind::SalvagingBench => "hud.crafting.salvaging_station", sprite => return Some(Cow::Owned(format!("{:?}", sprite))), }; Some(Cow::Borrowed(localized_strings.get(i18n_key))) diff --git a/voxygen/src/scene/terrain/watcher.rs b/voxygen/src/scene/terrain/watcher.rs index bcf3a952ff..f05714656c 100644 --- a/voxygen/src/scene/terrain/watcher.rs +++ b/voxygen/src/scene/terrain/watcher.rs @@ -136,6 +136,10 @@ impl BlocksOfInterest { fires.push(pos); interactables.push((pos, Interaction::Craft(CraftingTab::Food))) }, + Some(SpriteKind::SalvagingBench) => { + fires.push(pos); + interactables.push((pos, Interaction::Craft(CraftingTab::Dismantle))) + }, _ => {}, }, } diff --git a/world/src/site/settlement/building/archetype/house.rs b/world/src/site/settlement/building/archetype/house.rs index fb9b1f15c6..c9437113c7 100644 --- a/world/src/site/settlement/building/archetype/house.rs +++ b/world/src/site/settlement/building/archetype/house.rs @@ -526,7 +526,7 @@ impl Archetype for House { center_offset.x, center_offset.y, z + 100, - )) % 12 + )) % 13 { 0..=1 => SpriteKind::Crate, 2 => SpriteKind::Bench, @@ -539,6 +539,7 @@ impl Archetype for House { 9 => SpriteKind::Loom, 10 => SpriteKind::SpinningWheel, 11 => SpriteKind::TanningRack, + 12 => SpriteKind::SalvagingBench, _ => unreachable!(), };