bevy-inspector-egui 0.6.1

Inspector plugin for the bevy game engine
# Changelog

## Version 0.6
- update to `egui` 0.13, `bevy_egui` 0.6
- update to rapier `0.10`
- rename `rapier` feature to `rapier3d`
- fix `Quat` implementation to not modify unrelated state
- expose `InspectorWindows` to allow controlling whether inspector ui is shown

## Version 0.5.1
### Added
- add `rapier2d` feature

## Version 0.5
- support for multiple windows using `InspectorPlugin::new.on_window(window_id)` ([example]
- `InspectorQuerySingle` (like `.single_mut` on a query)
- `ignore`, `read_only` and `wrapper` built-in attributes
- optional `ui_ctx`

## Version 0.4

### Added

- many new implementations (`Handle<Texture>`, `ColorMaterial`, `Entity`, `World`, UI stuff, tuples)
- `WorldInspectorPlugin` for displaying the whole entity tree in a UI panel
- `widgets::InspectorQuery`: display entity tree for select entities
  Use like
  struct Inspector {
    root_elements: InspectorQuery<Entity, Without<Parent>>,
    collider: InspectorQuery<&'static mut Transform, With<Collider0>>,
- `widgets::InspectableButton`: sends event upon button click. Usage looks like
- derive `Inspectable` for enums with data
- drag and drop into texture

### Changed

- `Inspectable::ui` now returns a bool which indicates whether any data has changed. You can now check via `Res<T>::changed` whether data was modified.
- rename `InspectorPlugin::thread_local -> new, InspectorPlugin::new -> shared`
- require `FromResources` instead of `Default` on the inspectable data
- update to `bevy 0.5`
- `Inspectable::Attributes` require `Clone`
- show `Vec2` as two number fields by default, use `#[inspectable(visual)]` for old behaviour
- properly give ids to egui
- mark inspected components in the world inspector as mutated
- quaternions are now displayed as euler angles by default

### Fixed

- UI fixes for derived structs
- clamp number types to their `min`/`max` values if set

## Version 0.3.0

- another change to the `Inspectable` trait, it now gets a context from which bevy's `Resources` can be access (provided it is started in thread-local mode)

  struct Context<'a> {
    resources: Option<&'a bevy::ecs::Resources>

  trait Inspectable {
      type Attributes: Default;
      fn ui(&mut self, ui: &mut egui::Ui, options: Self::Attributes, context: &Context);

  This allows implementations for things like `Handle<T>` that need access so more information.

  When access to the resources is needed, add the plugin like


- implementations of `Inspectable` for `StandardMaterial` and `Range{,Inclusive}<T>`

## Version 0.2.0

### Added

- [impl Inspectable for the remaining number types]
- [impl Inspectable Mat{3,4}]
- [`ReflectedUI` wrapper type for automatically figuring out how to display a type based on the `Reflect` impl]
  #[derive(Inspectable, Default, Debug)]
  struct Data { timer: ReflectedUI<Timer> }
- [allow multiple inspector windows]

### Changed

- [rename NumberAttributes::step to speed]
- [use the relecant number type to specify min and max of the NumberAttributes instead of always f64]
- [simplify inspectable trait, rename FieldOptions to Options]
  The trait now looks like this:
  trait Inspectable {
      type Attributes: Default;
      fn ui(&mut self, ui: &mut egui::Ui, options: Self::Attributes);
- [try to convert Attributes using From::from]

### Fixed

- [normalize quaternion in `Transform` so that it stays a valid rotation]
- [disallow negative scale]

## Version 0.1.0

### Added

- first version with `Inspectable` support for number types `u8`, `i32` and `f{32,64}`, `String` and `Vec<T>` and bevy's `Color`, `Transform`, `Quat`, `Vec{2,3,4}`
- derive `Inspectable` for unit enums (displays a dropdown)
- derive `Inspectable` for struct
- `#[inspectable(label = x, collapse)]` builtins for struct derives
- `nightly` features for array `Inspectable` impls