Skip to content

contains plugins/systems to make serialization/deserialization with bevy smoother

License

Notifications You must be signed in to change notification settings

rydb/bevy_serialization_extras

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bevy_serialization_extras

A library that allows the editing of non-reflect components via wrapper components, and serialization of these components via moonshine-save:

demo_gif.webm

Features

  • Out of the box serialization Through [plugins] for components
// Component <-> WrapperComponent
.add_plugins(SerializeComponentFor::<AsyncCollider, ColliderFlag>::default())

// AssetHandle <-> WrapperComponent
.add_plugins(SerializeAssetFor::<StandardMaterial, MaterialFlag>::default())

// WrapperComponent -> AssetHandle
.add_plugins(DeserializeAssetFrom::<GeometryFlag, Mesh>::default())

// Query -> Component, 
.add_plugins(SerializeQueryFor::<Linkage, ImpulseJoint, JointFlag>::default())
  • Serialization of groups of enities that compose an asset into their singular asset equivillent, and vice-versa

See: https://github.com/rydb/bevy_serialization_urdf

//Query <-> Asset
.add_plugins(SerializeManyAsOneFor::<LinkQuery, Urdf>::default())
  • Allows edititing unserializable(non-reflect) implementing components through the wrappers that convert to them

    E.G: Edit Rapier's ImpulseJoint through JointFlag

edit_example.png

  • type registration for wrappers through ManagedTypeRegistration trait

  • A visualization util to list serializable/unserializable components(W.I.P)

Usage

For implementations of plugin trait bounds, see /Wrappers

TODO

  • Add a mechanism for updating from old save versions to new save versions as to not break old save files.

About

contains plugins/systems to make serialization/deserialization with bevy smoother

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages