Fix ecs changes

This commit is contained in:
hodasemi 2025-04-05 10:24:07 +02:00
parent 477a844c7f
commit 956122549e
10 changed files with 27 additions and 32 deletions

View file

@ -2,7 +2,7 @@ use crate::prelude::*;
use anyhow::{Context, Result, bail}; use anyhow::{Context, Result, bail};
use assetpath::AssetPath; use assetpath::AssetPath;
use ecs::World; use ecs::*;
use super::validator::buttoninfo::{NeighbourDirection, NeighbourInfo}; use super::validator::buttoninfo::{NeighbourDirection, NeighbourInfo};
use super::validator::gridinfo::GridInfo; use super::validator::gridinfo::GridInfo;
@ -310,7 +310,7 @@ impl TopLevelGui for GuiBuilder {
self.set_visibility(world, true)?; self.set_visibility(world, true)?;
if let Some(button) = &self.default_select { if let Some(button) = &self.default_select {
button.select(world.resources.get_mut::<GuiHandler>())?; button.select(world.resources.get_mut()?)?;
} }
Ok(()) Ok(())

View file

@ -5,7 +5,7 @@ use crate::{
use anyhow::{Result, anyhow}; use anyhow::{Result, anyhow};
use assetpath::AssetPath; use assetpath::AssetPath;
use ecs::World; use ecs::*;
use utilities::prelude::*; use utilities::prelude::*;
use vulkan_rs::prelude::*; use vulkan_rs::prelude::*;
@ -450,7 +450,7 @@ impl Visibility for Button {
fn set_visibility(&self, world: &mut World, visibility: bool) -> Result<()> { fn set_visibility(&self, world: &mut World, visibility: bool) -> Result<()> {
if visibility != self.visible.load(SeqCst) { if visibility != self.visible.load(SeqCst) {
let gui_handler = world.resources.get_mut::<GuiHandler>(); let gui_handler: &mut GuiHandler = world.resources.get_mut()?;
self.visible.store(visibility, SeqCst); self.visible.store(visibility, SeqCst);
@ -583,7 +583,7 @@ impl Button {
let selected_changed = move |world: &mut World, selected: bool| { let selected_changed = move |world: &mut World, selected: bool| {
if let Some(button) = button_weak.upgrade() { if let Some(button) = button_weak.upgrade() {
let gui_handler = world.resources.get_mut::<GuiHandler>(); let gui_handler = world.resources.get_mut()?;
if selected { if selected {
button.set_button_state(gui_handler, ButtonState::Selected)?; button.set_button_state(gui_handler, ButtonState::Selected)?;

View file

@ -1,6 +1,6 @@
use crate::prelude::*; use crate::prelude::*;
use anyhow::Result; use anyhow::Result;
use ecs::World; use ecs::*;
use crate::builder::validator::gridinfo::GridInfo; use crate::builder::validator::gridinfo::GridInfo;
@ -445,7 +445,7 @@ impl Grid {
if self.framable.is_framed() { if self.framable.is_framed() {
self.child_position( self.child_position(
world.resources.get_mut::<GuiHandler>(), world.resources.get_mut()?,
child_gridable, child_gridable,
pos_x, pos_x,
pos_y, pos_y,

View file

@ -4,7 +4,7 @@ use crate::{
}; };
use anyhow::Result; use anyhow::Result;
use assetpath::AssetPath; use assetpath::AssetPath;
use ecs::World; use ecs::*;
use utilities::prelude::*; use utilities::prelude::*;
use vulkan_rs::prelude::*; use vulkan_rs::prelude::*;
@ -283,7 +283,7 @@ impl Visibility for Icon {
fn set_visibility(&self, world: &mut World, visibility: bool) -> Result<()> { fn set_visibility(&self, world: &mut World, visibility: bool) -> Result<()> {
if visibility != self.visible.load(SeqCst) { if visibility != self.visible.load(SeqCst) {
let gui_handler = world.resources.get_mut::<GuiHandler>(); let gui_handler: &mut GuiHandler = world.resources.get_mut()?;
self.visible.store(visibility, SeqCst); self.visible.store(visibility, SeqCst);

View file

@ -8,7 +8,7 @@ use super::{
wrapper::{IconizableWrapper, TextableWrapper}, wrapper::{IconizableWrapper, TextableWrapper},
}; };
use ecs::World; use ecs::*;
use vulkan_rs::prelude::*; use vulkan_rs::prelude::*;
use std::sync::{ use std::sync::{
@ -232,7 +232,7 @@ impl Visibility for Label {
fn set_visibility(&self, world: &mut World, visibility: bool) -> Result<()> { fn set_visibility(&self, world: &mut World, visibility: bool) -> Result<()> {
if visibility != self.visible() { if visibility != self.visible() {
let gui_handler = world.resources.get_mut::<GuiHandler>(); let gui_handler: &mut GuiHandler = world.resources.get_mut()?;
self.visible.store(visibility, SeqCst); self.visible.store(visibility, SeqCst);

View file

@ -10,7 +10,7 @@ use std::sync::{
}; };
use anyhow::{Context, Result}; use anyhow::{Context, Result};
use ecs::World; use ecs::*;
use utilities::prelude::*; use utilities::prelude::*;
use super::fill_type::InnerFillType; use super::fill_type::InnerFillType;
@ -103,7 +103,7 @@ impl MultiLineTextFieldBuilder {
move |world: &mut World, _text| { move |world: &mut World, _text| {
if let Some(tf) = weak_tf.upgrade() { if let Some(tf) = weak_tf.upgrade() {
tf.update_text(world.resources.get_mut::<GuiHandler>())?; tf.update_text(world.resources.get_mut()?)?;
} }
Ok(()) Ok(())
@ -378,7 +378,7 @@ impl Visibility for MultiLineTextField {
fn set_visibility(&self, world: &mut World, visibility: bool) -> Result<()> { fn set_visibility(&self, world: &mut World, visibility: bool) -> Result<()> {
if visibility != self.visible() { if visibility != self.visible() {
let gui_handler = world.resources.get_mut::<GuiHandler>(); let gui_handler = world.resources.get_mut()?;
if visibility { if visibility {
self.writeable.add(gui_handler)?; self.writeable.add(gui_handler)?;

View file

@ -1,7 +1,7 @@
use crate::{builder::validator::progressbar_info::ProgressBarInfo, prelude::*}; use crate::{builder::validator::progressbar_info::ProgressBarInfo, prelude::*};
use anyhow::Result; use anyhow::Result;
use ecs::World; use ecs::*;
use std::sync::{ use std::sync::{
Arc, Mutex, Arc, Mutex,
atomic::{AtomicBool, Ordering::SeqCst}, atomic::{AtomicBool, Ordering::SeqCst},
@ -281,7 +281,7 @@ impl Visibility for ProgressBar {
fn set_visibility(&self, world: &mut World, visibility: bool) -> Result<()> { fn set_visibility(&self, world: &mut World, visibility: bool) -> Result<()> {
if visibility != self.visible() { if visibility != self.visible() {
let gui_handler = world.resources.get_mut::<GuiHandler>(); let gui_handler: &mut GuiHandler = world.resources.get_mut()?;
self.visible.store(visibility, SeqCst); self.visible.store(visibility, SeqCst);

View file

@ -1,6 +1,6 @@
use crate::{builder::validator::textfieldinfo::TextFieldInfo, prelude::*}; use crate::{builder::validator::textfieldinfo::TextFieldInfo, prelude::*};
use anyhow::Result; use anyhow::Result;
use ecs::World; use ecs::*;
use utilities::prelude::*; use utilities::prelude::*;
use std::sync::{ use std::sync::{
@ -313,7 +313,7 @@ impl Visibility for TextField {
fn set_visibility(&self, world: &mut World, visibility: bool) -> Result<()> { fn set_visibility(&self, world: &mut World, visibility: bool) -> Result<()> {
if visibility != self.visible() { if visibility != self.visible() {
let gui_handler = world.resources.get_mut::<GuiHandler>(); let gui_handler: &mut GuiHandler = world.resources.get_mut()?;
self.visible.store(visibility, SeqCst); self.visible.store(visibility, SeqCst);

View file

@ -1,6 +1,6 @@
use crate::prelude::*; use crate::prelude::*;
use anyhow::Result; use anyhow::Result;
use ecs::World; use ecs::*;
use std::any::Any; use std::any::Any;
use std::collections::HashMap; use std::collections::HashMap;
@ -296,8 +296,7 @@ impl Keyboard {
Box::new(move |world: &mut World| { Box::new(move |world: &mut World| {
if let Some(text_field) = weak_textfield.upgrade() { if let Some(text_field) = weak_textfield.upgrade() {
let gui_handler = world.resources.get_mut::<GuiHandler>(); text_field.add_letter(world.resources.get_mut()?, ' ')?;
text_field.add_letter(gui_handler, ' ')?;
} }
Ok(()) Ok(())
@ -340,8 +339,8 @@ impl Keyboard {
if let Some(textfield) = weak_textfield.upgrade() { if let Some(textfield) = weak_textfield.upgrade() {
if let Some(button) = weak_button.upgrade() { if let Some(button) = weak_button.upgrade() {
if let Some(text) = button.text()? { if let Some(text) = button.text()? {
let gui_handler = world.resources.get_mut::<GuiHandler>(); textfield
textfield.add_letter(gui_handler, text.as_bytes()[0] as char)?; .add_letter(world.resources.get_mut()?, text.as_bytes()[0] as char)?;
} }
} }
} }
@ -369,8 +368,7 @@ impl TopGui for Keyboard {
fn previous_tab(&self, world: &mut World, second_level: bool) -> Result<()> { fn previous_tab(&self, world: &mut World, second_level: bool) -> Result<()> {
// abuse event // abuse event
if !second_level { if !second_level {
let gui_handler = world.resources.get_mut::<GuiHandler>(); self.text_field.remove_last(world.resources.get_mut()?)?;
self.text_field.remove_last(gui_handler)?;
} }
Ok(()) Ok(())
@ -442,8 +440,7 @@ impl TopLevelGui for Keyboard {
fn enable(&self, world: &mut World) -> Result<()> { fn enable(&self, world: &mut World) -> Result<()> {
self.set_visibility(world, true)?; self.set_visibility(world, true)?;
self.text_field self.text_field.focus_input(world.resources.get_mut()?)?;
.focus_input(world.resources.get_mut::<GuiHandler>())?;
Ok(()) Ok(())
} }

View file

@ -1,8 +1,7 @@
use crate::prelude::*; use crate::prelude::*;
use anyhow::Result; use anyhow::Result;
use assetpath::AssetPath; use assetpath::AssetPath;
use ecs::World; use ecs::*;
use utilities::prelude::remove_life_time_mut;
use std::any::Any; use std::any::Any;
use std::collections::HashMap; use std::collections::HashMap;
@ -182,7 +181,7 @@ impl States {
/// ///
/// * `id` - Set state with the given identifier or None /// * `id` - Set state with the given identifier or None
pub fn set_state<'b>(&self, world: &mut World, id: impl Into<Option<&'b str>>) -> Result<()> { pub fn set_state<'b>(&self, world: &mut World, id: impl Into<Option<&'b str>>) -> Result<()> {
let gui_handler = unsafe { remove_life_time_mut(world.resources.get_mut::<GuiHandler>()) }; let gui_handler: &mut GuiHandler = world.resources.get_mut_unchecked();
Self::_set_state( Self::_set_state(
id.into().map(|id| self.get_state(id)).transpose()?, id.into().map(|id| self.get_state(id)).transpose()?,
@ -261,8 +260,7 @@ impl States {
Ok(Box::new(move |world: &mut World| { Ok(Box::new(move |world: &mut World| {
if let Some(current) = weak_current_state.upgrade() { if let Some(current) = weak_current_state.upgrade() {
let gui_handler = let gui_handler: &mut GuiHandler = world.resources.get_mut_unchecked();
unsafe { remove_life_time_mut(world.resources.get_mut::<GuiHandler>()) };
Self::_set_state( Self::_set_state(
weak_state.as_ref().map(|w| w.upgrade()).flatten(), weak_state.as_ref().map(|w| w.upgrade()).flatten(),