cleaned up rhai manager
This commit is contained in:
parent
cf29c2c50d
commit
1226fafe2c
|
|
@ -1,10 +1,10 @@
|
||||||
use actix::{Actor, Addr};
|
use actix::{Actor, Addr};
|
||||||
use mlua::Lua;
|
|
||||||
use rhai::{Engine, RegisterNativeFunction, Scope};
|
|
||||||
use crate::client_management::ClientManager;
|
use crate::client_management::ClientManager;
|
||||||
use crate::rhai::rhai_manager::RhaiManager;
|
|
||||||
use crate::network::NetworkManager;
|
use crate::network::NetworkManager;
|
||||||
|
use crate::rhai::rhai_manager::RhaiManager;
|
||||||
use crate::Server;
|
use crate::Server;
|
||||||
|
use rhai::{Engine, Scope};
|
||||||
|
|
||||||
pub struct Builder {
|
pub struct Builder {
|
||||||
engine: Engine,
|
engine: Engine,
|
||||||
|
|
@ -25,34 +25,36 @@ impl Builder {
|
||||||
server,
|
server,
|
||||||
network_manager,
|
network_manager,
|
||||||
client_manager,
|
client_manager,
|
||||||
scope: Default::default()
|
scope: Default::default(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn scope_object<T: 'static>(mut self, name: &str, obj: T) -> Self
|
pub fn scope_object<T: 'static>(mut self, name: &str, obj: T) -> Self
|
||||||
where
|
where
|
||||||
T: Clone {
|
T: Clone,
|
||||||
|
{
|
||||||
self.engine.register_type::<T>();
|
self.engine.register_type::<T>();
|
||||||
self.scope.set_value(name, obj);
|
self.scope.set_value(name, obj);
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn scope_fn<F, A>(mut self, name: &str, func: F ) -> Self
|
// not sure what this is for?
|
||||||
where
|
// pub fn scope_fn<F, A>(mut self, name: &str, func: F) -> Self
|
||||||
F: RegisterNativeFunction<A, ()>
|
// where
|
||||||
{
|
// F: RegisterNativeFunction<A, ()>,
|
||||||
self.engine.register_fn(name, func);
|
// {
|
||||||
self
|
// self.engine.register_fn(name, func);
|
||||||
}
|
// self
|
||||||
|
// }
|
||||||
|
|
||||||
pub(crate) fn build(self) -> Addr<RhaiManager> {
|
pub(crate) fn build(self) -> Addr<RhaiManager> {
|
||||||
RhaiManager {
|
RhaiManager {
|
||||||
engine: self.engine,
|
engine: self.engine,
|
||||||
scope: self.scope,
|
_scope: self.scope,
|
||||||
server: self.server,
|
_server: self.server,
|
||||||
network_manager: self.network_manager,
|
_network_manager: self.network_manager,
|
||||||
client_manager: self.client_manager
|
_client_manager: self.client_manager,
|
||||||
}.start()
|
}
|
||||||
|
.start()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,26 +1,30 @@
|
||||||
use actix::{Actor, Addr, ArbiterHandle, AsyncContext, Context, Running};
|
|
||||||
use actix::fut::wrap_future;
|
|
||||||
use rhai::{Engine, Func, Scope};
|
|
||||||
use crate::client_management::ClientManager;
|
use crate::client_management::ClientManager;
|
||||||
use crate::rhai::builder::Builder;
|
|
||||||
use crate::network::NetworkManager;
|
use crate::network::NetworkManager;
|
||||||
|
use crate::rhai::builder::Builder;
|
||||||
use crate::Server;
|
use crate::Server;
|
||||||
|
|
||||||
|
use actix::{Actor, Addr, Context};
|
||||||
|
use rhai::{Engine, Scope};
|
||||||
|
|
||||||
pub struct RhaiManager {
|
pub struct RhaiManager {
|
||||||
pub(super) engine: Engine,
|
pub(super) engine: Engine,
|
||||||
pub(super) scope: Scope<'static>,
|
pub(super) _scope: Scope<'static>,
|
||||||
pub(super) server: Addr<Server>,
|
pub(super) _server: Addr<Server>,
|
||||||
pub(super) network_manager: Addr<NetworkManager>,
|
pub(super) _network_manager: Addr<NetworkManager>,
|
||||||
pub(super) client_manager: Addr<ClientManager>,
|
pub(super) _client_manager: Addr<ClientManager>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl RhaiManager {
|
impl RhaiManager {
|
||||||
pub fn create(
|
pub fn create(
|
||||||
server: Addr<Server>,
|
server: Addr<Server>,
|
||||||
network_manager: Addr<NetworkManager>,
|
network_manager: Addr<NetworkManager>,
|
||||||
client_manager: Addr<ClientManager>
|
client_manager: Addr<ClientManager>,
|
||||||
) -> Builder {
|
) -> Builder {
|
||||||
Builder::new(server.clone(), network_manager.clone(), client_manager.clone())
|
Builder::new(
|
||||||
|
server.clone(),
|
||||||
|
network_manager.clone(),
|
||||||
|
client_manager.clone(),
|
||||||
|
)
|
||||||
.scope_object("server", server)
|
.scope_object("server", server)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -28,10 +32,13 @@ impl RhaiManager {
|
||||||
impl Actor for RhaiManager {
|
impl Actor for RhaiManager {
|
||||||
type Context = Context<Self>;
|
type Context = Context<Self>;
|
||||||
|
|
||||||
fn started(&mut self, ctx: &mut Self::Context) {
|
fn started(&mut self, _ctx: &mut Self::Context) {
|
||||||
self.engine.run(r#"
|
self.engine
|
||||||
|
.run(
|
||||||
|
r#"
|
||||||
print("hello rhai")
|
print("hello rhai")
|
||||||
"#).unwrap();
|
"#,
|
||||||
|
)
|
||||||
|
.unwrap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue