diff options
| author | metamuffin <metamuffin@disroot.org> | 2026-03-01 21:55:16 +0100 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2026-03-01 21:55:16 +0100 |
| commit | 74ffa47147d2bb989057b4513075975c44c2bc42 (patch) | |
| tree | 0a2242b25fefcf62f94ac6b712c9e937e3b8e35c /server/data/src | |
| parent | d6acbd76a81bb97c1ff74a66a2af9b00713ca6d0 (diff) | |
| download | hurrycurry-74ffa47147d2bb989057b4513075975c44c2bc42.tar hurrycurry-74ffa47147d2bb989057b4513075975c44c2bc42.tar.bz2 hurrycurry-74ffa47147d2bb989057b4513075975c44c2bc42.tar.zst | |
add serverdata packet with data fields that dont change across games; add motd and server name
Diffstat (limited to 'server/data/src')
| -rw-r--r-- | server/data/src/book/mod.rs | 4 | ||||
| -rw-r--r-- | server/data/src/book/recipe_diagram.rs | 4 | ||||
| -rw-r--r-- | server/data/src/lib.rs | 22 | ||||
| -rw-r--r-- | server/data/src/registry.rs | 4 |
4 files changed, 17 insertions, 17 deletions
diff --git a/server/data/src/book/mod.rs b/server/data/src/book/mod.rs index a0776f41..990d979c 100644 --- a/server/data/src/book/mod.rs +++ b/server/data/src/book/mod.rs @@ -20,7 +20,7 @@ pub mod diagram_layout; pub mod recipe_diagram; use crate::{ - Serverdata, + PrivateGamedata, book::{diagram_layout::diagram_layout, recipe_diagram::recipe_diagram}, }; use anyhow::{Context, Result}; @@ -30,7 +30,7 @@ use hurrycurry_protocol::{ book::{Book, BookPage}, }; -pub fn book(data: &Gamedata, serverdata: &Serverdata) -> Result<Book> { +pub fn book(data: &Gamedata, serverdata: &PrivateGamedata) -> Result<Book> { let mut pages = Vec::new(); pages.push(BookPage::Contents { diff --git a/server/data/src/book/recipe_diagram.rs b/server/data/src/book/recipe_diagram.rs index 2c203f95..bef90946 100644 --- a/server/data/src/book/recipe_diagram.rs +++ b/server/data/src/book/recipe_diagram.rs @@ -16,7 +16,7 @@ */ -use crate::Serverdata; +use crate::PrivateGamedata; use anyhow::{Result, bail}; use hurrycurry_protocol::{ Gamedata, ItemIndex, Message, Recipe, RecipeIndex, @@ -30,7 +30,7 @@ use std::{ pub fn recipe_diagram( data: &Gamedata, - serverdata: &Serverdata, + serverdata: &PrivateGamedata, target_items: &[ItemIndex], ) -> Result<Diagram> { let ambient_items = serverdata diff --git a/server/data/src/lib.rs b/server/data/src/lib.rs index aff895fa..53b4e802 100644 --- a/server/data/src/lib.rs +++ b/server/data/src/lib.rs @@ -87,7 +87,7 @@ struct TileArgs { #[derive(Debug, Clone, Default)] #[rustfmt::skip] -pub struct Serverdata { +pub struct PrivateGamedata { pub initial_map: HashMap<IVec2, (Vec<TileIndex>, Option<ItemIndex>)>, pub chef_spawn: Vec2, pub customer_spawn: Option<Vec2>, @@ -98,11 +98,18 @@ pub struct Serverdata { pub recipe_groups: BTreeMap<String, BTreeSet<ItemIndex>>, } -pub fn build_data( +pub fn map_list(data_path: &Path) -> Result<Vec<(String, MapMetadata)>> { + let index = + read_to_string(data_path.join("index.yaml")).context("Failed reading data index")?; + let index = serde_yaml_ng::from_str::<DataIndex>(&index)?; + Ok(map_listing(&index)) +} + +pub fn build_gamedata( data_path: &Path, map_name: &str, generate_book: bool, -) -> Result<(Gamedata, Serverdata)> { +) -> Result<(Gamedata, PrivateGamedata)> { debug!("Preparing gamedata for {map_name}"); // Load index @@ -234,7 +241,6 @@ pub fn build_data( let mut data = Gamedata { current_map: map_name.to_string(), - maps: map_listing(&index), tile_collide: tiles_flagged(&tile_flags, &tiles, 'c'), tile_placeable_items: tile_placeable_items( &initial_map, @@ -251,15 +257,9 @@ pub fn build_data( item_names: items, demands, tile_names: tiles, - bot_algos: vec![ - "waiter".to_string(), - "simple".to_string(), - "dishwasher".to_string(), - "frank".to_string(), - ], hand_count: map_in.hand_count.unwrap_or(1), }; - let mut serverdata = Serverdata { + let mut serverdata = PrivateGamedata { initial_map, chef_spawn, customer_spawn, diff --git a/server/data/src/registry.rs b/server/data/src/registry.rs index bf64795b..3288c037 100644 --- a/server/data/src/registry.rs +++ b/server/data/src/registry.rs @@ -23,7 +23,7 @@ use std::{ sync::RwLock, }; -use crate::{Serverdata, entities::EntityDecl}; +use crate::{PrivateGamedata, entities::EntityDecl}; #[derive(Default)] pub(crate) struct ItemTileRegistry { @@ -57,7 +57,7 @@ impl ItemTileRegistry { } } -pub(crate) fn filter_unused_tiles_and_items(data: &mut Gamedata, serverdata: &mut Serverdata) { +pub(crate) fn filter_unused_tiles_and_items(data: &mut Gamedata, serverdata: &mut PrivateGamedata) { debug!("running unused item/tile filter"); let mut used_items = BTreeSet::new(); let mut used_tiles = BTreeSet::new(); |