Skip to content

Commit c3a4efe

Browse files
committed
pin smol str, begin rhai work
1 parent d247deb commit c3a4efe

File tree

6 files changed

+8
-256
lines changed

6 files changed

+8
-256
lines changed

crates/bevy_mod_scripting_functions/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,5 @@ bevy = { workspace = true, features = [
3030
"multi_threaded"
3131
] }
3232
uuid = "*"
33-
smol_str = "*"
33+
smol_str = "0.2.2"
3434
bevy_mod_scripting_core = { workspace = true }

crates/bevy_mod_scripting_functions/src/core.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@ use std::borrow::Cow;
44
use bevy::{
55
prelude::*,
66
reflect::{
7-
func::{FunctionRegistrationError, FunctionRegistry, FunctionRegistryArc},
8-
ParsedPath,
7+
func::{FunctionRegistrationError, FunctionRegistry, FunctionRegistryArc}, GetTypeRegistration, ParsedPath
98
},
109
};
1110
use bevy_mod_scripting_core::*;
@@ -325,6 +324,11 @@ pub fn register_reflect_reference_functions(
325324
Ok(())
326325
}
327326

327+
328+
trait Test: GetTypeRegistration {}
329+
330+
// impl Test for smol_str::SmolStr {}
331+
328332
pub fn register_script_type_registration_functions(
329333
registry: &mut World,
330334
) -> Result<(), FunctionRegistrationError> {

crates/languages/bevy_mod_scripting_rhai/Cargo.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,5 @@ path = "src/lib.rs"
1717

1818
[dependencies]
1919
bevy = { workspace = true, default-features = false }
20-
rhai = { version = "1.16", features = ["sync"] }
20+
rhai = { version = "1.20.1", features = ["sync"] }
2121
bevy_mod_scripting_core = { workspace = true }
22-
anyhow = "1.0.75"

crates/languages/bevy_mod_scripting_rhai/src/assets.rs

Lines changed: 0 additions & 42 deletions
This file was deleted.

crates/languages/bevy_mod_scripting_rhai/src/docs.rs

Lines changed: 0 additions & 17 deletions
This file was deleted.

crates/languages/bevy_mod_scripting_rhai/src/lib.rs

Lines changed: 0 additions & 192 deletions
Original file line numberDiff line numberDiff line change
@@ -157,195 +157,3 @@ pub fn with_world<F: FnOnce(&mut RhaiScriptContext) -> Result<(), ScriptError>>(
157157
f(context)
158158
})
159159
}
160-
// use crate::{
161-
// assets::{RhaiFile, RhaiLoader},
162-
// docs::RhaiDocFragment,
163-
// };
164-
// use bevy::{ecs::schedule::ScheduleLabel, prelude::*};
165-
// use bevy_mod_scripting_core::{prelude::*, systems::*};
166-
// use rhai::*;
167-
// use std::marker::PhantomData;
168-
169-
// pub mod assets;
170-
// pub mod docs;
171-
// pub use rhai;
172-
// pub mod prelude {
173-
// pub use crate::{
174-
// assets::{RhaiFile, RhaiLoader},
175-
// docs::RhaiDocFragment,
176-
// RhaiContext, RhaiEvent, RhaiScriptHost,
177-
// };
178-
// pub use rhai;
179-
// pub use rhai::{RhaiRuntime, FuncArgs};
180-
// }
181-
182-
// #[derive(Resource)]
183-
// pub struct RhaiScriptHost<A: FuncArgs + Send> {
184-
// pub RhaiRuntime: RhaiRuntime,
185-
// _ph: PhantomData<A>,
186-
// }
187-
188-
// #[allow(deprecated)]
189-
// impl<A: FuncArgs + Send> Default for RhaiScriptHost<A> {
190-
// fn default() -> Self {
191-
// let mut e = RhaiRuntime::new();
192-
// // prevent shadowing of `state`,`world` and `entity` in variable in scripts
193-
// e.on_def_var(|_, info, _| {
194-
// Ok(info.name() != "state" && info.name() != "world" && info.name() != "entity")
195-
// });
196-
197-
// Self {
198-
// RhaiRuntime: e,
199-
// _ph: Default::default(),
200-
// }
201-
// }
202-
// }
203-
204-
// pub struct RhaiContext {
205-
// pub ast: AST,
206-
// pub scope: Scope<'static>,
207-
// }
208-
209-
// #[derive(Clone, Event)]
210-
// /// A Rhai Hook. The result of creating this event will be
211-
// /// a call to the lua script with the hook_name and the given arguments
212-
// pub struct RhaiEvent<A: FuncArgs + Clone + 'static> {
213-
// pub hook_name: String,
214-
// pub args: A,
215-
// pub recipients: Recipients,
216-
// }
217-
218-
// impl<A: FuncArgs + Clone + Send + Sync + 'static> ScriptEvent for RhaiEvent<A> {
219-
// fn recipients(&self) -> &crate::Recipients {
220-
// &self.recipients
221-
// }
222-
// }
223-
224-
// impl<A: FuncArgs + Send + Clone + Sync + 'static> ScriptHost for RhaiScriptHost<A> {
225-
// type ScriptContext = RhaiContext;
226-
// type ScriptEvent = RhaiEvent<A>;
227-
// type ScriptAsset = RhaiFile;
228-
// type APITarget = RhaiRuntime;
229-
// type DocTarget = RhaiDocFragment;
230-
231-
// fn register_with_app_in_set(
232-
// app: &mut bevy::prelude::App,
233-
// schedule: impl ScheduleLabel,
234-
// set: impl SystemSet,
235-
// ) {
236-
// app.add_priority_event::<Self::ScriptEvent>()
237-
// .init_asset::<RhaiFile>()
238-
// .init_asset_loader::<RhaiLoader>()
239-
// .init_resource::<CachedScriptState<Self>>()
240-
// .init_resource::<ScriptContexts<Self::ScriptContext>>()
241-
// .init_resource::<APIProviders<Self>>()
242-
// .register_type::<ScriptCollection<Self::ScriptAsset>>()
243-
// .register_type::<Script<Self::ScriptAsset>>()
244-
// .register_type::<Handle<RhaiFile>>()
245-
// .add_systems(
246-
// schedule,
247-
// (
248-
// script_add_synchronizer::<Self>,
249-
// script_remove_synchronizer::<Self>,
250-
// script_hot_reload_handler::<Self>,
251-
// )
252-
// .chain()
253-
// .in_set(set),
254-
// )
255-
// // setup RhaiRuntime
256-
// .add_systems(
257-
// Startup,
258-
// |mut providers: ResMut<APIProviders<Self>>, mut host: ResMut<Self>| {
259-
// providers
260-
// .attach_all(&mut host.RhaiRuntime)
261-
// .expect("Error in adding api's for rhai");
262-
// },
263-
// );
264-
// }
265-
266-
// fn setup_script(
267-
// &mut self,
268-
// script_data: &ScriptData,
269-
// ctx: &mut Self::ScriptContext,
270-
// providers: &mut APIProviders<Self>,
271-
// ) -> Result<(), ScriptError> {
272-
// providers.setup_all(script_data, ctx)
273-
// }
274-
275-
// fn load_script(
276-
// &mut self,
277-
// script: &[u8],
278-
// script_data: &ScriptData,
279-
// _: &mut APIProviders<Self>,
280-
// ) -> Result<Self::ScriptContext, ScriptError> {
281-
// let mut scope = Scope::new();
282-
// let mut ast = self
283-
// .RhaiRuntime
284-
// .compile(
285-
// std::str::from_utf8(script).map_err(|e| ScriptError::FailedToLoad {
286-
// script: script_data.name.to_owned(),
287-
// msg: e.to_string(),
288-
// })?,
289-
// )
290-
// .map_err(|e| ScriptError::SyntaxError {
291-
// script: script_data.name.to_owned(),
292-
// msg: e.to_string(),
293-
// })?;
294-
295-
// ast.set_source(script_data.name);
296-
297-
// // persistent state for scripts
298-
// scope.push("state", Map::new());
299-
300-
// Ok(RhaiContext { ast, scope })
301-
// }
302-
303-
// fn handle_events<'a>(
304-
// &mut self,
305-
// world: &mut World,
306-
// events: &[Self::ScriptEvent],
307-
// ctxs: impl Iterator<Item = (ScriptData<'a>, &'a mut Self::ScriptContext)>,
308-
// _providers: &mut APIProviders<Self>,
309-
// ) {
310-
// ctxs.for_each(|(fd, ctx)| {
311-
// for event in events.iter() {
312-
// // check if this script should handle this event
313-
// if !event.recipients().is_recipient(&fd) {
314-
// continue;
315-
// };
316-
317-
// match self.RhaiRuntime.call_fn(
318-
// &mut ctx.scope,
319-
// &ctx.ast,
320-
// &event.hook_name,
321-
// event.args.clone(),
322-
// ) {
323-
// Ok(v) => v,
324-
// Err(e) => {
325-
// let mut state: CachedScriptState<Self> = world.remove_resource().unwrap();
326-
327-
// match *e {
328-
// EvalAltResult::ErrorFunctionNotFound(..) => {}
329-
// _ => {
330-
// let (_, mut error_wrt, _) = state.event_state.get_mut(world);
331-
332-
// let error = ScriptError::RuntimeError {
333-
// script: fd.name.to_string(),
334-
// msg: e.to_string(),
335-
// };
336-
// error!("{}", error);
337-
// error_wrt.send(ScriptErrorEvent { error });
338-
// }
339-
// }
340-
341-
// world.insert_resource(state);
342-
// }
343-
// };
344-
// }
345-
346-
// // executing this at the end here means we execute global statements exactly once
347-
// // all this method call does is set a variable on the AST to NONE so should not affect performance
348-
// ctx.ast.clear_statements();
349-
// });
350-
// }
351-
// }

0 commit comments

Comments
 (0)