From 65e2c03824f4a28f5151e87860fc6f70044e2a3e Mon Sep 17 00:00:00 2001 From: hal8174 Date: Mon, 21 Apr 2025 00:42:33 +0200 Subject: [PATCH] Fix quality serialization --- factorio-blueprint-generator/src/bin/multistation.rs | 3 ++- factorio-blueprint-generator/src/station.rs | 4 ++-- factorio-blueprint/src/abstraction/serde.rs | 11 +++++++++++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/factorio-blueprint-generator/src/bin/multistation.rs b/factorio-blueprint-generator/src/bin/multistation.rs index d6c6713..c8350df 100644 --- a/factorio-blueprint-generator/src/bin/multistation.rs +++ b/factorio-blueprint-generator/src/bin/multistation.rs @@ -1,4 +1,5 @@ use clap::Parser; +use factorio_blueprint::abstraction::serde::AbstractBlueprintString; use factorio_blueprint::{BlueprintString, encode}; use factorio_blueprint_generator::multistation::{StationSpec, multistation}; use factorio_core::beltoptions::Beltspeed; @@ -67,7 +68,7 @@ fn main() { b.connect_power_networks(); b.print_visualization(); - let b = BlueprintString::Blueprint(b.to_blueprint()); + let b = AbstractBlueprintString { blueprint: &b }; if args.json { println!("{}", serde_json::to_string_pretty(&b).unwrap()); diff --git a/factorio-blueprint-generator/src/station.rs b/factorio-blueprint-generator/src/station.rs index 700d82d..5971d34 100644 --- a/factorio-blueprint-generator/src/station.rs +++ b/factorio-blueprint-generator/src/station.rs @@ -65,8 +65,8 @@ pub fn unloader(beltspeed: Beltspeed, belttype: Belttype) -> (Blueprint, Positio let (belt_inserter, stack_size, quality) = match beltspeed { Beltspeed::Normal => unreachable!(), Beltspeed::Fast => (InserterType::Fast, None, Quality::Normal), - Beltspeed::Express => (InserterType::Bulk, Some(8), Quality::Normal), - Beltspeed::Turbo => (InserterType::Bulk, None, Quality::Epic), + Beltspeed::Express => (InserterType::Bulk, Some(7), Quality::Normal), + Beltspeed::Turbo => (InserterType::Bulk, Some(10), Quality::Normal), }; b.add_entity(Entity::new_belt( diff --git a/factorio-blueprint/src/abstraction/serde.rs b/factorio-blueprint/src/abstraction/serde.rs index aa72b2f..05d6cf4 100644 --- a/factorio-blueprint/src/abstraction/serde.rs +++ b/factorio-blueprint/src/abstraction/serde.rs @@ -83,6 +83,17 @@ impl Serialize for SerializeEntityWrapper<'_> { entity_map.serialize_entry("position", &SerializePosition(self.1.position))?; + let quality = match self.1.quality { + super::Quality::Normal => None, + super::Quality::Uncommon => Some("uncommon"), + super::Quality::Rare => Some("rare"), + super::Quality::Epic => Some("epic"), + super::Quality::Legendary => Some("legendary"), + }; + if let Some(quality) = quality { + entity_map.serialize_entry("quality", quality)?; + } + if self.1.direction.get_index() != 0 { entity_map.serialize_entry("direction", &self.1.direction.get_index())?; }