Skip to content

v0.3.0

Latest
Compare
Choose a tag to compare
@eidloi eidloi released this 14 Sep 14:12
· 5 commits to main since this release
b8d8c4d

Breaking changes

  • 43% performance improvement from reducing allocation in the theme calculations (see Migration guide)
  • On renamed to OnColor in the sickle_ui_scaffold::theme::theme_colors package to avoid collision with the upstreamed bevy_mod_picking

New features

  • Allow loading theme colors from a material theme json file: #93
  • Observable input events
  • Documentation for ui_utils, ui_commands, and main ui_style file (NOTE: docs.rs build for the scaffold is still broken, will be fixed next release)

Fixes

  • docs.rs build for the main crate and linux builds that don't specify the windowing environment for bevy
  • Floating panel resize handles
  • System ordering
  • Flux interaction animation frame delay
  • Missing default font

Migration

  • All occurrence of On (sickle_ui_scaffold::theme::theme_colors) needs to be changed to OnColor
  • UiContext implementations need to be updated to provide iterators instead of Vec. See: #94

Old:

impl UiContext for SizedZone {
    fn get(&self, target: &str) -> Result<Entity, String> {
        match target {
            SizedZone::RESIZE_HANDLES => Ok(self.resize_handles),
            _ => Err(format!(
                "{} doesn't exist for SizedZone. Possible contexts: {:?}",
                target,
                self.contexts()
            )),
        }
    }

    fn cleared_contexts(&self) -> Vec<&'static str> {
        vec![]
    }

    fn contexts(&self) -> Vec<&'static str> {
        vec![SizedZone::RESIZE_HANDLES]
    }
}

New:

impl UiContext for SizedZone {
    fn get(&self, target: &str) -> Result<Entity, String> {
        match target {
            SizedZone::RESIZE_HANDLES => Ok(self.resize_handles),
            _ => Err(format!(
                "{} doesn't exist for SizedZone. Possible contexts: {:?}",
                target,
                Vec::from_iter(self.contexts())
            )),
        }
    }

    fn cleared_contexts(&self) -> impl Iterator<Item = &str> + '_ {
        [].into_iter()
    }

    fn contexts(&self) -> impl Iterator<Item = &str> + '_ {
        [SizedZone::RESIZE_HANDLES].into_iter()
    }
}
```