From 999b7723a8336a8a2736b9c300617a2946e04b48 Mon Sep 17 00:00:00 2001 From: demenik Date: Tue, 2 Dec 2025 15:35:52 +0100 Subject: [PATCH 1/7] feat: Add custom font --- README.md | 2 + assets/Jersey10-Regular.ttf | Bin 0 -> 76636 bytes assets/Jersey10.LICENSE | 93 ++++++++++++++++++++++++++++++ assets/fonts/Jersey10-Regular.ttf | Bin 0 -> 76636 bytes assets/fonts/Jersey10.LICENSE | 93 ++++++++++++++++++++++++++++++ src/main.rs | 9 +++ 6 files changed, 197 insertions(+) create mode 100644 assets/Jersey10-Regular.ttf create mode 100644 assets/Jersey10.LICENSE create mode 100644 assets/fonts/Jersey10-Regular.ttf create mode 100644 assets/fonts/Jersey10.LICENSE diff --git a/README.md b/README.md index f69b5e6..b77f1be 100644 --- a/README.md +++ b/README.md @@ -49,3 +49,5 @@ cargo run ## Licensing This project is released under the terms of the [MIT License](LICENSE). + +The font used is called Jersey 10. It is protected under the [SIL OPEN FONT LICENSE Version 1.1](assets/fonts/Jersey10.LICENSE). diff --git a/assets/Jersey10-Regular.ttf b/assets/Jersey10-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..42ac920f1de5aee411cafcfd49205990d62b9836 GIT binary patch literal 76636 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 literal 0 HcmV?d00001 diff --git a/assets/Jersey10.LICENSE b/assets/Jersey10.LICENSE new file mode 100644 index 0000000..befc2e5 --- /dev/null +++ b/assets/Jersey10.LICENSE @@ -0,0 +1,93 @@ +Copyright 2023 The Soft Type Project Authors (https://github.com/scfried/soft-type-jersey) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/assets/fonts/Jersey10-Regular.ttf b/assets/fonts/Jersey10-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..42ac920f1de5aee411cafcfd49205990d62b9836 GIT binary patch literal 76636 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 literal 0 HcmV?d00001 diff --git a/assets/fonts/Jersey10.LICENSE b/assets/fonts/Jersey10.LICENSE new file mode 100644 index 0000000..befc2e5 --- /dev/null +++ b/assets/fonts/Jersey10.LICENSE @@ -0,0 +1,93 @@ +Copyright 2023 The Soft Type Project Authors (https://github.com/scfried/soft-type-jersey) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/src/main.rs b/src/main.rs index d9b2558..a7791c4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -36,5 +36,14 @@ fn main() { features::ShopPlugin, )) .insert_resource(config) + .add_systems(Startup, overwrite_default_font) .run(); } + +fn overwrite_default_font(mut fonts: ResMut>) { + let custom_font_bytes = include_bytes!("../assets/fonts/Jersey10-Regular.ttf"); + let custom_font = + Font::try_from_bytes(custom_font_bytes.to_vec()).expect("Failed to parse custom font"); + let default_font_id = Handle::::default().id(); + let _ = fonts.insert(default_font_id, custom_font); +} From 99756820e02b8fef30d7020c076e97d57f98422a Mon Sep 17 00:00:00 2001 From: demenik Date: Tue, 2 Dec 2025 15:36:38 +0100 Subject: [PATCH 2/7] fix: Delete stale font files --- assets/Jersey10-Regular.ttf | Bin 76636 -> 0 bytes assets/Jersey10.LICENSE | 93 ------------------------------------ 2 files changed, 93 deletions(-) delete mode 100644 assets/Jersey10-Regular.ttf delete mode 100644 assets/Jersey10.LICENSE diff --git a/assets/Jersey10-Regular.ttf b/assets/Jersey10-Regular.ttf deleted file mode 100644 index 42ac920f1de5aee411cafcfd49205990d62b9836..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76636 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 diff --git a/assets/Jersey10.LICENSE b/assets/Jersey10.LICENSE deleted file mode 100644 index befc2e5..0000000 --- a/assets/Jersey10.LICENSE +++ /dev/null @@ -1,93 +0,0 @@ -Copyright 2023 The Soft Type Project Authors (https://github.com/scfried/soft-type-jersey) - -This Font Software is licensed under the SIL Open Font License, Version 1.1. -This license is copied below, and is also available with a FAQ at: -https://openfontlicense.org - - ------------------------------------------------------------ -SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ------------------------------------------------------------ - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide a free and -open framework in which fonts may be shared and improved in partnership -with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply -to any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software components as -distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting -- in part or in whole -- any of the components of the -Original Version, by changing formats or by porting the Font Software to a -new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, -in Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s) unless explicit written permission is granted by the corresponding -Copyright Holder. This restriction only applies to the primary font name as -presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder(s) and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed entirely under this license, and must not be -distributed under any other license. The requirement for fonts to -remain under this license does not apply to any document created -using the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. From 31df3c0d3faa1a6d699991f61c05923312a24c77 Mon Sep 17 00:00:00 2001 From: demenik Date: Tue, 2 Dec 2025 15:42:14 +0100 Subject: [PATCH 3/7] feat: Add water sprite --- assets/crop.aseprite | Bin 813 -> 945 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/assets/crop.aseprite b/assets/crop.aseprite index 0178a31caf5a9e5eccefbcc4293cb20a346a0920..2685342e9a5cb230d7f9076a40ab782c882eaddd 100644 GIT binary patch delta 223 zcmZ3>wvnB4BQpcTgQbiN4ih=cc@2S_Umv*`QWzK*xHk5RF)HW-SxO3wKoSPn8G>^% zlT#H8K>`Y!+ZeqV8JA4H$Rt{Cz`(~)F{fH_=8yk80>(T-0`=cG!?vrO|JNV7r}zG> z1-IibT&!Q7|Nmf?xL&;?bJecNw;r&X$O;O}Ut!sCiPf^+`Z+yh`-9+q{odv$857w(eD6DJ^4s?? R`4|Y4%9=4Sym=h80{}43P0j!S delta 134 zcmdnUzLt$smzja#!BR#Bg^8Tyyla^l7=C@^U`SzLVBpx;E5^9_0i!NsY%Gw=s=&y= z$-vF Date: Tue, 2 Dec 2025 15:43:28 +0100 Subject: [PATCH 4/7] fix: Add missing slice name --- assets/crop.aseprite | Bin 945 -> 943 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/assets/crop.aseprite b/assets/crop.aseprite index 2685342e9a5cb230d7f9076a40ab782c882eaddd..503cb411670432394d4b6194835a471a13e47e0d 100644 GIT binary patch delta 46 ucmdnUzMh?N{Y1ukM*WSAN{o`a3=9lP3XDJ!23Q%w6H8KyHt%En%m@JDUJ0xK delta 48 wcmZ3_zLA}A<3z@KM#GJbN{rI_3=9lP3XDJ!2G|*bb25`t6%04;Vf@Sp0P}?j@&Et; From 4df968af2e6c839a1e97081fb696886a6dc51ed8 Mon Sep 17 00:00:00 2001 From: demenik Date: Tue, 2 Dec 2025 15:46:48 +0100 Subject: [PATCH 5/7] feat: Add watering (#27) --- src/features/grid/components.rs | 4 ++ src/features/grid/mod.rs | 22 ++++++++- src/features/input/mod.rs | 1 + src/features/phase/mod.rs | 19 +++++++ src/features/pom/actions.rs | 24 +++++++++ tests/interaction.rs | 88 ++++++++++++++++++++++++++++++++- tests/pathfinding.rs | 6 ++- 7 files changed, 159 insertions(+), 5 deletions(-) diff --git a/src/features/grid/components.rs b/src/features/grid/components.rs index a9a62a1..d2e9729 100644 --- a/src/features/grid/components.rs +++ b/src/features/grid/components.rs @@ -10,6 +10,9 @@ pub struct Tile { #[derive(Component)] pub struct CropVisual; +#[derive(Component)] +pub struct WaterVisual; + #[derive(Component, Default, Serialize, Deserialize, Clone, Debug)] pub enum TileState { #[default] @@ -17,6 +20,7 @@ pub enum TileState { Empty, Occupied { seed: ItemType, + watered: bool, }, } diff --git a/src/features/grid/mod.rs b/src/features/grid/mod.rs index ba20b81..3b769e5 100644 --- a/src/features/grid/mod.rs +++ b/src/features/grid/mod.rs @@ -1,5 +1,5 @@ use crate::prelude::*; -use components::CropVisual; +use components::{CropVisual, WaterVisual}; pub mod components; pub mod consts; @@ -55,6 +55,17 @@ fn setup(mut commands: Commands, asset_server: Res, config: Res>) { fn update_tiles( mut query: Query<(&TileState, &mut AseSlice, &Children)>, - mut crop_query: Query<&mut Visibility, With>, + mut crop_query: Query<&mut Visibility, (With, Without)>, + mut water_query: Query<&mut Visibility, (With, Without)>, asset_server: Res, ) { for (state, mut slice, children) in &mut query { @@ -102,6 +114,12 @@ fn update_tiles( _ => Visibility::Hidden, }; } + if let Ok(mut visibility) = water_query.get_mut(child) { + *visibility = match state { + TileState::Occupied { watered: true, .. } => Visibility::Visible, + _ => Visibility::Hidden, + }; + } } } } diff --git a/src/features/input/mod.rs b/src/features/input/mod.rs index ccb422b..d72d0b3 100644 --- a/src/features/input/mod.rs +++ b/src/features/input/mod.rs @@ -125,6 +125,7 @@ fn debug_click( seed: ItemType::BerrySeed { name: "Debug".into(), }, + watered: false, }, TileState::Occupied { .. } => TileState::Unclaimed, }, diff --git a/src/features/phase/mod.rs b/src/features/phase/mod.rs index 4181fb1..3c4a35d 100644 --- a/src/features/phase/mod.rs +++ b/src/features/phase/mod.rs @@ -157,8 +157,27 @@ fn handle_continue( mut phase_res: ResMut, mut session_tracker: ResMut, settings: Res, + mut tile_query: Query<&mut TileState>, ) { for _ in messages.read() { + let entering_break = if let Phase::Finished { completed_phase } = &phase_res.0 { + matches!(**completed_phase, Phase::Focus { .. }) + } else { + false + }; + next_phase(&mut phase_res, &mut session_tracker, &settings); + + if entering_break { + println!("Resetting watered state for all crops."); + for mut state in tile_query.iter_mut() { + if let TileState::Occupied { seed, .. } = &*state { + *state = TileState::Occupied { + seed: seed.clone(), + watered: false, + }; + } + } + } } } diff --git a/src/features/pom/actions.rs b/src/features/pom/actions.rs index afe0a26..6dd0b2b 100644 --- a/src/features/pom/actions.rs +++ b/src/features/pom/actions.rs @@ -3,12 +3,14 @@ use crate::prelude::*; #[derive(Clone, Debug, PartialEq)] pub enum InteractionAction { Plant(ItemType), + Water, } impl InteractionAction { pub fn get_name(&self, game_config: &GameConfig) -> String { match self { InteractionAction::Plant(item) => format!("Pflanze {}", item.singular(game_config)), + InteractionAction::Water => "Gießen".into(), } } @@ -19,6 +21,7 @@ impl InteractionAction { ) -> Option { match self { InteractionAction::Plant(item) => Some(item.get_sprite(asset_server, game_config)), + InteractionAction::Water => None, } } @@ -48,6 +51,15 @@ impl InteractionAction { } } + match tile_state { + TileState::Occupied { watered, .. } => { + if !*watered { + options.push(InteractionAction::Water); + } + } + _ => (), + } + options } @@ -81,6 +93,7 @@ impl InteractionAction { println!("Planting {:?}", seed_type); *tile_state = TileState::Occupied { seed: seed_type.clone(), + watered: false, }; } else { println!("No {:?} in inventory!", seed_type); @@ -89,6 +102,17 @@ impl InteractionAction { println!("Tile is not empty, cannot plant."); } } + InteractionAction::Water => { + if let TileState::Occupied { seed, .. } = &*tile_state { + println!("Watering {:?}", seed); + *tile_state = TileState::Occupied { + seed: seed.clone(), + watered: true, + }; + } else { + println!("Tile is not occupied, cannot water."); + } + } } } } diff --git a/tests/interaction.rs b/tests/interaction.rs index 4bd3014..3b69d35 100644 --- a/tests/interaction.rs +++ b/tests/interaction.rs @@ -91,7 +91,7 @@ fn test_plant_seed_interaction() { let tile_entity = grid.get_tile((1, 1)).unwrap(); let tile_state = app.world().entity(tile_entity).get::().unwrap(); - if let TileState::Occupied { seed } = tile_state { + if let TileState::Occupied { seed, .. } = tile_state { assert_eq!( *seed, ItemType::BerrySeed { @@ -164,3 +164,89 @@ fn test_plant_seed_no_inventory() { panic!("Tile should remain Empty, found {:?}", tile_state); } } + +#[test] +fn test_water_crop() { + let seed_type = ItemType::BerrySeed { + name: "TestSeed".into(), + }; + let mut app = setup_interaction_app( + 3, + 3, + &[( + 1, + 1, + TileState::Occupied { + seed: seed_type.clone(), + watered: false, + }, + )], + vec![], + ); + + // Verify Water option is available + let _ = app.world_mut().run_system_once( + move |grid: Res, + tile_query: Query<&TileState>, + inventory: Res, + item_query: Query<&ItemStack>| { + let tile_entity = grid.get_tile((1, 1)).unwrap(); + let tile_state = tile_query.get(tile_entity).unwrap(); + let options = InteractionAction::list_options(tile_state, &inventory, item_query); + + assert!( + options.contains(&InteractionAction::Water), + "Water option should be available" + ); + }, + ); + + // Execute Water + let _ = app.world_mut().run_system_once( + move |grid: Res, + mut tile_query: Query<&mut TileState>, + mut inventory: ResMut, + mut item_stack_query: Query<&mut ItemStack>, + mut commands: Commands| { + let action = InteractionAction::Water; + action.execute( + (1, 1), + &grid, + &mut tile_query, + &mut inventory, + &mut item_stack_query, + &mut commands, + ); + }, + ); + + app.update(); + + // Assert Tile State Watered + let grid = app.world().resource::(); + let tile_entity = grid.get_tile((1, 1)).unwrap(); + let tile_state = app.world().entity(tile_entity).get::().unwrap(); + + if let TileState::Occupied { watered, .. } = tile_state { + assert!(watered, "Tile should be watered"); + } else { + panic!("Tile should be Occupied, found {:?}", tile_state); + } + + // Verify Water option is NOT available + let _ = app.world_mut().run_system_once( + move |grid: Res, + tile_query: Query<&TileState>, + inventory: Res, + item_query: Query<&ItemStack>| { + let tile_entity = grid.get_tile((1, 1)).unwrap(); + let tile_state = tile_query.get(tile_entity).unwrap(); + let options = InteractionAction::list_options(tile_state, &inventory, item_query); + + assert!( + !options.contains(&InteractionAction::Water), + "Water option should NOT be available" + ); + }, + ); +} diff --git a/tests/pathfinding.rs b/tests/pathfinding.rs index 93bde1d..072b247 100644 --- a/tests/pathfinding.rs +++ b/tests/pathfinding.rs @@ -91,8 +91,9 @@ fn test_find_path_simple() { fn test_find_path_around_obstacle() { let obstacle: TileState = TileState::Occupied { seed: ItemType::BerrySeed { - name: "test".into(), + name: "Test".into(), }, + watered: false, }; let obstacles = vec![ (2, 2, obstacle.clone()), @@ -142,8 +143,9 @@ fn test_find_path_around_obstacle() { fn test_find_path_no_path() { let obstacle: TileState = TileState::Occupied { seed: ItemType::BerrySeed { - name: "test".into(), + name: "Test".into(), }, + watered: false, }; let obstacles = vec![ (2, 0, obstacle.clone()), From c60b2ce2b3e895fcce04ea09996b21064b70207a Mon Sep 17 00:00:00 2001 From: demenik Date: Tue, 2 Dec 2025 16:18:50 +0100 Subject: [PATCH 6/7] fix: Set transform z-index to fix rendering issues --- src/features/grid/mod.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/features/grid/mod.rs b/src/features/grid/mod.rs index 3b769e5..3357d7a 100644 --- a/src/features/grid/mod.rs +++ b/src/features/grid/mod.rs @@ -51,7 +51,7 @@ fn setup(mut commands: Commands, asset_server: Res, config: Res, config: Res Date: Tue, 2 Dec 2025 16:22:12 +0100 Subject: [PATCH 7/7] refactor: Refactor interaction option logic --- src/features/pom/actions.rs | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/src/features/pom/actions.rs b/src/features/pom/actions.rs index 6dd0b2b..32afa34 100644 --- a/src/features/pom/actions.rs +++ b/src/features/pom/actions.rs @@ -32,31 +32,29 @@ impl InteractionAction { ) -> Vec { let mut options: Vec = vec![]; - for &entity in &inventory.items { - let Ok(stack) = item_query.get(entity) else { - continue; - }; - if stack.amount <= 0 { - continue; - } - - match tile_state { - TileState::Empty => match &stack.item_type { - ItemType::BerrySeed { .. } => { - options.push(InteractionAction::Plant(stack.item_type.clone())); - } - _ => (), - }, - _ => (), - } - } - match tile_state { TileState::Occupied { watered, .. } => { if !*watered { options.push(InteractionAction::Water); } } + TileState::Empty => { + for &entity in &inventory.items { + let Ok(stack) = item_query.get(entity) else { + continue; + }; + if stack.amount <= 0 { + continue; + } + + match &stack.item_type { + ItemType::BerrySeed { .. } => { + options.push(InteractionAction::Plant(stack.item_type.clone())); + } + _ => (), + } + } + } _ => (), }