formatted
This commit is contained in:
@@ -4,7 +4,9 @@ use std::path::Path;
|
||||
|
||||
use specs::error::NoError;
|
||||
use specs::prelude::*;
|
||||
use specs::saveload::{DeserializeComponents, MarkedBuilder, SerializeComponents, SimpleMarker, SimpleMarkerAllocator};
|
||||
use specs::saveload::{
|
||||
DeserializeComponents, MarkedBuilder, SerializeComponents, SimpleMarker, SimpleMarkerAllocator,
|
||||
};
|
||||
|
||||
use super::components::*;
|
||||
|
||||
@@ -37,14 +39,39 @@ pub fn save_game(ecs: &mut World) {
|
||||
|
||||
// Actually serialize
|
||||
{
|
||||
let data = (ecs.entities(), ecs.read_storage::<SimpleMarker<SerializeMe>>());
|
||||
let data = (
|
||||
ecs.entities(),
|
||||
ecs.read_storage::<SimpleMarker<SerializeMe>>(),
|
||||
);
|
||||
|
||||
let writer = File::create("./savegame.json").unwrap();
|
||||
let mut serializer = serde_json::Serializer::new(writer);
|
||||
serialize_individually!(ecs, serializer, data, Position, Renderable, Player, Viewshed, Monster,
|
||||
Name, BlocksTile, CombatStats, SufferDamage, WantsToMelee, Item, Consumable, Ranged, InflictsDamage,
|
||||
AreaOfEffect, Confusion, ProvidesHealing, InBackpack, WantsToPickupItem, WantsToUseItem,
|
||||
WantsToDropItem, SerializationHelper
|
||||
serialize_individually!(
|
||||
ecs,
|
||||
serializer,
|
||||
data,
|
||||
Position,
|
||||
Renderable,
|
||||
Player,
|
||||
Viewshed,
|
||||
Monster,
|
||||
Name,
|
||||
BlocksTile,
|
||||
CombatStats,
|
||||
SufferDamage,
|
||||
WantsToMelee,
|
||||
Item,
|
||||
Consumable,
|
||||
Ranged,
|
||||
InflictsDamage,
|
||||
AreaOfEffect,
|
||||
Confusion,
|
||||
ProvidesHealing,
|
||||
InBackpack,
|
||||
WantsToPickupItem,
|
||||
WantsToUseItem,
|
||||
WantsToDropItem,
|
||||
SerializationHelper
|
||||
);
|
||||
}
|
||||
|
||||
@@ -87,12 +114,38 @@ pub fn load_game(ecs: &mut World) {
|
||||
let mut de = serde_json::Deserializer::from_str(&data);
|
||||
|
||||
{
|
||||
let mut d = (&mut ecs.entities(), &mut ecs.write_storage::<SimpleMarker<SerializeMe>>(), &mut ecs.write_resource::<SimpleMarkerAllocator<SerializeMe>>());
|
||||
let mut d = (
|
||||
&mut ecs.entities(),
|
||||
&mut ecs.write_storage::<SimpleMarker<SerializeMe>>(),
|
||||
&mut ecs.write_resource::<SimpleMarkerAllocator<SerializeMe>>(),
|
||||
);
|
||||
|
||||
deserialize_individually!(ecs, de, d, Position, Renderable, Player, Viewshed, Monster,
|
||||
Name, BlocksTile, CombatStats, SufferDamage, WantsToMelee, Item, Consumable, Ranged, InflictsDamage,
|
||||
AreaOfEffect, Confusion, ProvidesHealing, InBackpack, WantsToPickupItem, WantsToUseItem,
|
||||
WantsToDropItem, SerializationHelper
|
||||
deserialize_individually!(
|
||||
ecs,
|
||||
de,
|
||||
d,
|
||||
Position,
|
||||
Renderable,
|
||||
Player,
|
||||
Viewshed,
|
||||
Monster,
|
||||
Name,
|
||||
BlocksTile,
|
||||
CombatStats,
|
||||
SufferDamage,
|
||||
WantsToMelee,
|
||||
Item,
|
||||
Consumable,
|
||||
Ranged,
|
||||
InflictsDamage,
|
||||
AreaOfEffect,
|
||||
Confusion,
|
||||
ProvidesHealing,
|
||||
InBackpack,
|
||||
WantsToPickupItem,
|
||||
WantsToUseItem,
|
||||
WantsToDropItem,
|
||||
SerializationHelper
|
||||
);
|
||||
}
|
||||
|
||||
@@ -115,9 +168,12 @@ pub fn load_game(ecs: &mut World) {
|
||||
*player_resource = e;
|
||||
}
|
||||
}
|
||||
ecs.delete_entity(deleteme.unwrap()).expect("Unable to delete helper");
|
||||
ecs.delete_entity(deleteme.unwrap())
|
||||
.expect("Unable to delete helper");
|
||||
}
|
||||
|
||||
pub fn delete_save() {
|
||||
if Path::new("./savegame.json").exists() { std::fs::remove_file("./savegame.json").expect("Unable to delete file"); }
|
||||
if Path::new("./savegame.json").exists() {
|
||||
std::fs::remove_file("./savegame.json").expect("Unable to delete file");
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user