diff --git a/fyrox-impl/src/engine/mod.rs b/fyrox-impl/src/engine/mod.rs index 4578df21e..40b51a41b 100644 --- a/fyrox-impl/src/engine/mod.rs +++ b/fyrox-impl/src/engine/mod.rs @@ -231,13 +231,13 @@ struct SceneLoadingOptions { /// /// ```rust /// use fyrox_impl::{ -/// core::{color::Color, visitor::prelude::*, log::Log, pool::Handle}, +/// core::{color::Color, visitor::prelude::*, reflect::prelude::*, log::Log, pool::Handle}, /// plugin::{Plugin, PluginContext}, /// scene::Scene, /// }; /// use std::path::Path; /// -/// #[derive(Visit)] +/// #[derive(Visit, Reflect, Debug)] /// struct MyGame { /// scene: Handle, /// } diff --git a/fyrox-impl/src/engine/task.rs b/fyrox-impl/src/engine/task.rs index 887dedee2..42f89f12f 100644 --- a/fyrox-impl/src/engine/task.rs +++ b/fyrox-impl/src/engine/task.rs @@ -79,9 +79,10 @@ impl TaskPoolHandler { /// ```rust ,no_run /// # use fyrox_impl::plugin::{Plugin, PluginContext}; /// # use fyrox_impl::core::visitor::prelude::*; + /// # use fyrox_impl::core::reflect::prelude::*; /// # use std::{fs::File, io::Read}; /// - /// #[derive(Visit)] + /// #[derive(Visit, Reflect, Debug)] /// struct MyGame { /// data: Option>, /// } diff --git a/fyrox-impl/src/plugin/mod.rs b/fyrox-impl/src/plugin/mod.rs index 754544615..b5278eb17 100644 --- a/fyrox-impl/src/plugin/mod.rs +++ b/fyrox-impl/src/plugin/mod.rs @@ -6,19 +6,22 @@ pub mod dynamic; use crate::{ asset::manager::ResourceManager, - core::{notify::RecommendedWatcher, pool::Handle, visitor::Visit, visitor::VisitError}, + core::{ + notify::RecommendedWatcher, pool::Handle, reflect::Reflect, visitor::Visit, + visitor::VisitError, + }, engine::{ task::TaskPoolHandler, AsyncSceneLoader, GraphicsContext, PerformanceStatistics, ScriptProcessor, SerializationContext, }, event::Event, - gui::message::UiMessage, + gui::{ + constructor::WidgetConstructorContainer, + inspector::editors::PropertyEditorDefinitionContainer, message::UiMessage, UiContainer, + }, plugin::dynamic::DynamicPlugin, scene::{Scene, SceneContainer}, }; -use fyrox_ui::constructor::WidgetConstructorContainer; -use fyrox_ui::inspector::editors::PropertyEditorDefinitionContainer; -use fyrox_ui::UiContainer; use std::{ any::Any, ops::{Deref, DerefMut}, @@ -206,12 +209,12 @@ where impl dyn Plugin { /// Performs downcasting to a particular type. pub fn cast(&self) -> Option<&T> { - self.as_any().downcast_ref::() + BasePlugin::as_any(self).downcast_ref::() } /// Performs downcasting to a particular type. pub fn cast_mut(&mut self) -> Option<&mut T> { - self.as_any_mut().downcast_mut::() + BasePlugin::as_any_mut(self).downcast_mut::() } } @@ -235,14 +238,14 @@ impl dyn Plugin { /// /// ```rust /// # use fyrox_impl::{ -/// # core::{pool::Handle}, core::visitor::prelude::*, +/// # core::{pool::Handle}, core::visitor::prelude::*, core::reflect::prelude::*, /// # plugin::{Plugin, PluginContext, PluginRegistrationContext}, /// # scene::Scene, /// # event::Event /// # }; /// # use std::str::FromStr; /// -/// #[derive(Default, Visit)] +/// #[derive(Default, Visit, Reflect, Debug)] /// struct MyPlugin {} /// /// impl Plugin for MyPlugin { @@ -261,7 +264,7 @@ impl dyn Plugin { /// } /// } /// ``` -pub trait Plugin: BasePlugin + Visit { +pub trait Plugin: BasePlugin + Visit + Reflect { /// The method is called when the plugin constructor was just registered in the engine. The main /// use of this method is to register scripts and custom scene graph nodes in [`SerializationContext`]. fn register(&self, #[allow(unused_variables)] context: PluginRegistrationContext) {} diff --git a/fyrox-scripts/src/lib.rs b/fyrox-scripts/src/lib.rs index 3c3bb1310..ba1a4624a 100644 --- a/fyrox-scripts/src/lib.rs +++ b/fyrox-scripts/src/lib.rs @@ -10,12 +10,12 @@ pub mod camera; /// /// ```rust /// # use fyrox::{ -/// # core::pool::Handle, core::visitor::prelude::*, +/// # core::pool::Handle, core::visitor::prelude::*, core::reflect::prelude::*, /// # plugin::{Plugin, PluginContext, PluginRegistrationContext}, /// # scene::Scene, /// # }; /// # -/// # #[derive(Visit)] +/// # #[derive(Visit, Reflect, Debug)] /// # struct Game; /// # /// # impl Plugin for Game {