From 8253658aa03294fba2a43ba287ca1870a2b6b4cb Mon Sep 17 00:00:00 2001 From: metamuffin Date: Wed, 14 Aug 2024 13:05:45 +0200 Subject: sort maps in data packet --- server/src/data/mod.rs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'server/src') diff --git a/server/src/data/mod.rs b/server/src/data/mod.rs index f7f184d2..60e2d2c9 100644 --- a/server/src/data/mod.rs +++ b/server/src/data/mod.rs @@ -21,6 +21,7 @@ pub mod demands; use crate::entity::{construct_entity, Entities, EntityDecl}; use anyhow::{anyhow, bail, Result}; use demands::generate_demands; +use hurrycurry_bot::algos::ALGO_CONSTRUCTORS; use hurrycurry_protocol::{ glam::{IVec2, Vec2}, Gamedata, ItemIndex, MapMetadata, Recipe, TileIndex, @@ -145,7 +146,7 @@ impl DataIndex { let recipes_in = serde_yml::from_str(&self.read_recipes(recipes).await?)?; Ok(build_data( - self.maps.clone(), + &self.maps, spec.clone(), map.to_string(), map_in, @@ -155,7 +156,7 @@ impl DataIndex { } pub fn build_data( - maps: HashMap, + maps: &HashMap, spec: String, map_name: String, map_in: InitialMap, @@ -273,6 +274,18 @@ pub fn build_data( let demands = generate_demands(&tiles_used, &items_used, &raw_demands, &recipes); + let bot_algos = ALGO_CONSTRUCTORS + .iter() + .map(|(name, _)| (*name).to_owned()) + .collect::>(); + + let mut maps = maps + .iter() + .map(|(k, v)| (k.to_owned(), v.to_owned())) + .collect::>(); + maps.sort_unstable_by_key(|(_, m)| m.difficulty); + maps.sort_by_key(|(_, m)| m.players); + let item_names = reg.items.into_inner().unwrap(); let tile_names = reg.tiles.into_inner().unwrap(); let tile_collide = tile_names @@ -286,6 +299,7 @@ pub fn build_data( Ok(( Gamedata { + bot_algos, current_map: map_name, maps, tile_collide, -- cgit v1.2.3-70-g09d2