#Does bevy have any library for creating save states and load states?

6 messages · Page 1 of 1 (latest)

sick knoll
inland garnet
#
GitHub

A refreshingly simple data-driven game engine built in Rust - bevyengine/bevy

craggy forge
inland garnet
#

I don't think I understand exaclty what you mean. I do this to write my entities with Tower and Spline to a file

pub fn save_level(
    trigger: On<SaveLevel>,
    towers: Query<Entity, With<Tower>>,
    splines: Query<Entity, With<Spline>>,
    world: DeferredWorld,
) {
    // Filtering scene
    let scene = DynamicSceneBuilder::from_world(&world)
        .deny_all()
        .allow_component::<Tower>()
        .allow_component::<Transform>()
        .allow_component::<Spline>()
        .extract_resources()
        .extract_entities(towers.iter())
        .extract_entities(splines.iter())
        .build();

    // Type registry handling
    let type_registry = world.resource::<AppTypeRegistry>();
    let type_registry = type_registry.read();
    let serialized_scene = scene.serialize(&type_registry).unwrap();

    debug!("Saving scene: {}", serialized_scene);

    // Writing to file
    let filename = format!("assets/{0}", trigger.path);
    IoTaskPool::get()
        .spawn(async move {
            // Write the scene RON data to file
            File::create(filename)
                .and_then(|mut file| file.write(serialized_scene.as_bytes()))
                .expect("Error while writing scene to file");
        })
        .detach();
}
craggy forge
craggy forge