Skip to content

Commit e8da279

Browse files
committed
WIP
1 parent 0e23095 commit e8da279

File tree

20 files changed

+445
-477
lines changed

20 files changed

+445
-477
lines changed

Cargo.toml

Lines changed: 33 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -140,53 +140,54 @@ lua_language_server_lad_backend = { path = "crates/lad_backends/lua_language_ser
140140
# bevy
141141

142142
bevy_mod_scripting_core = { path = "crates/bevy_mod_scripting_core", version = "0.16.1" }
143-
bevy = { version = "0.16.0", default-features = false }
144-
bevy_math = { version = "0.16.0", default-features = false, features = ["std"] }
145-
bevy_transform = { version = "0.16.0", default-features = false }
146-
bevy_reflect = { version = "0.16.0", default-features = false }
147-
bevy_ecs = { version = "0.16.0", default-features = false }
148-
bevy_asset = { version = "0.16.0", default-features = false }
149-
bevy_app = { version = "0.16.0", default-features = false }
150-
bevy_log = { version = "0.16.0", default-features = false }
151-
bevy_internal = { version = "0.16.0", default-features = false }
152-
bevy_diagnostic = { version = "0.16.0", default-features = false }
153-
bevy_platform = { version = "0.16.0", default-features = false }
154-
bevy_time = { version = "0.16.0", default-features = false }
155-
bevy_input = { version = "0.16.0", default-features = false }
156-
bevy_a11y = { version = "0.16.0", default-features = false, features = [
143+
bevy = { version = "0.17", default-features = false }
144+
bevy_math = { version = "0.17", default-features = false, features = ["std"] }
145+
bevy_transform = { version = "0.17", default-features = false }
146+
bevy_reflect = { version = "0.17", default-features = false }
147+
bevy_ecs = { version = "0.17", default-features = false }
148+
bevy_asset = { version = "0.17", default-features = false }
149+
bevy_app = { version = "0.17", default-features = false }
150+
bevy_log = { version = "0.17", default-features = false }
151+
bevy_internal = { version = "0.17", default-features = false }
152+
bevy_diagnostic = { version = "0.17", default-features = false }
153+
bevy_platform = { version = "0.17", default-features = false }
154+
bevy_time = { version = "0.17", default-features = false }
155+
bevy_input = { version = "0.17", default-features = false }
156+
bevy_a11y = { version = "0.17", default-features = false, features = [
157157
"std",
158158
"bevy_reflect",
159159
] }
160-
bevy_animation = { version = "0.16.0", default-features = false }
161-
bevy_color = { version = "0.16.0", default-features = false, features = [
160+
bevy_animation = { version = "0.17", default-features = false }
161+
bevy_color = { version = "0.17", default-features = false, features = [
162162
"std",
163163
"bevy_reflect",
164164
] }
165-
bevy_core_pipeline = { version = "0.16.0", default-features = false }
166-
bevy_gizmos = { version = "0.16.0", default-features = false }
167-
bevy_gltf = { version = "0.16.0", default-features = false }
168-
bevy_image = { version = "0.16.0", default-features = false, features = [
165+
bevy_core_pipeline = { version = "0.17", default-features = false }
166+
bevy_gizmos = { version = "0.17", default-features = false }
167+
bevy_gltf = { version = "0.17", default-features = false }
168+
bevy_image = { version = "0.17", default-features = false, features = [
169169
"bevy_reflect",
170170
] }
171-
bevy_input_focus = { version = "0.16.0", default-features = false, features = [
171+
bevy_input_focus = { version = "0.17", default-features = false, features = [
172172
"std",
173173
"bevy_reflect",
174174
] }
175-
bevy_mesh = { version = "0.16.0", default-features = false }
176-
bevy_pbr = { version = "0.16.0", default-features = false }
177-
bevy_picking = { version = "0.16.0", default-features = false }
178-
bevy_render = { version = "0.16.0", default-features = false }
179-
bevy_scene = { version = "0.16.0", default-features = false }
180-
bevy_sprite = { version = "0.16.0", default-features = false }
181-
bevy_text = { version = "0.16.0", default-features = false }
182-
bevy_window = { version = "0.16.0", default-features = false, features = [
175+
bevy_mesh = { version = "0.17", default-features = false }
176+
bevy_pbr = { version = "0.17", default-features = false }
177+
bevy_picking = { version = "0.17", default-features = false }
178+
bevy_render = { version = "0.17", default-features = false }
179+
bevy_scene = { version = "0.17", default-features = false }
180+
bevy_sprite = { version = "0.17", default-features = false }
181+
bevy_text = { version = "0.17", default-features = false }
182+
bevy_window = { version = "0.17", default-features = false, features = [
183183
"bevy_reflect",
184184
"std",
185185
] }
186-
bevy_winit = { version = "0.16.0", default-features = false }
186+
bevy_winit = { version = "0.17", default-features = false }
187+
bevy_utils = { version = "0.17", default-features = false, features = ["std"] }
187188

188-
glam = { version = "0.29.3", default-features = false }
189-
uuid = { version = "1.11", default-features = false }
189+
glam = { version = "0.30.7", default-features = false }
190+
uuid = { version = "1.13", default-features = false }
190191
smol_str = { version = "0.2.0", default-features = false }
191192

192193
# other

crates/bevy_mod_scripting_bindings/src/function/script_function.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -724,7 +724,7 @@ variadics_please::all_tuples!(impl_script_function, 0, 13, T);
724724
#[cfg(test)]
725725
mod test {
726726
use super::*;
727-
use bevy_asset::{AssetId, Handle};
727+
use bevy_asset::Handle;
728728
use bevy_ecs::{prelude::Component, world::World};
729729
use bevy_mod_scripting_script::ScriptAttachment;
730730

@@ -734,7 +734,7 @@ mod test {
734734
ThreadWorldContainer
735735
.set_context(crate::ThreadScriptContext {
736736
world,
737-
attachment: ScriptAttachment::StaticScript(Handle::Weak(AssetId::invalid())),
737+
attachment: ScriptAttachment::StaticScript(Handle::default()),
738738
})
739739
.unwrap();
740740
f()

crates/bevy_mod_scripting_bindings/src/reference.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ use bevy_mod_scripting_display::{
1717
DebugWithTypeInfo, DisplayWithTypeInfo, OrFakeId, PrintReflectAsDebug, WithTypeInfo,
1818
};
1919
use bevy_reflect::{Access, OffsetAccess, ReflectRef, TypeRegistry};
20-
use core::alloc;
2120
use std::{
2221
any::{Any, TypeId},
2322
fmt::Debug,
@@ -323,8 +322,8 @@ impl ReflectReference {
323322
// Safety: The caller guarantees exclusive access to the asset through the WorldGuard,
324323
// and we've validated that the type_id matches the ReflectAsset type data.
325324
// The UnsafeWorldCell is valid for the lifetime 'w of the WorldGuard.
326-
let asset = unsafe { reflect_asset.get_unchecked_mut(world_cell, handle.clone()) }
327-
.ok_or_else(|| {
325+
let asset =
326+
unsafe { reflect_asset.get_unchecked_mut(world_cell, handle) }.ok_or_else(|| {
328327
InteropError::unsupported_operation(
329328
Some(self.base.type_id),
330329
None,

crates/bevy_mod_scripting_bindings/src/schedule.rs

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ mod tests {
201201
bevy_app::{App, Plugin, Update},
202202
bevy_ecs::{
203203
entity::Entity,
204-
schedule::{NodeId, Schedules},
204+
schedule::{NodeId, Schedules, SystemKey},
205205
system::IntoSystem,
206206
},
207207
std::{cell::OnceCell, rc::Rc},
@@ -236,7 +236,7 @@ mod tests {
236236
#[test]
237237
fn test_reflect_system_names() {
238238
let system = IntoSystem::into_system(test_system_generic::<String>);
239-
let system = ReflectSystem::from_system(&system, NodeId::Set(0));
239+
let system = ReflectSystem::from_system(&system, SystemKey::default());
240240

241241
assert_eq!(system.identifier(), "test_system_generic");
242242
assert_eq!(
@@ -245,7 +245,7 @@ mod tests {
245245
);
246246

247247
let system = IntoSystem::into_system(test_system);
248-
let system = ReflectSystem::from_system(&system, NodeId::Set(0));
248+
let system = ReflectSystem::from_system(&system, SystemKey::default());
249249

250250
assert_eq!(system.identifier(), "test_system");
251251
assert_eq!(
@@ -314,16 +314,24 @@ mod tests {
314314

315315
let resolve_name = |node_id: NodeId| {
316316
let out = {
317-
// try systems
318-
if let Some(system) = graph.get_system_at(node_id) {
319-
system.name().clone().to_string()
320-
} else if let Some(system_set) = graph.get_set_at(node_id) {
321-
format!("{system_set:?}").to_string()
317+
let name = match node_id {
318+
NodeId::System(system_key) => graph
319+
.systems
320+
.get(system_key)
321+
.map(|system| system.system.name().clone().to_string()),
322+
NodeId::Set(system_set_key) => graph
323+
.system_sets
324+
.get(system_set_key)
325+
.map(|set| format!("{set:?}").to_string()),
326+
};
327+
328+
if let Some(name) = name {
329+
name
322330
} else {
323331
// try schedule systems
324332
let mut default = format!("{node_id:?}").to_string();
325333
for (system_node, system) in schedule.systems().unwrap() {
326-
if node_id == system_node {
334+
if node_id == NodeId::System(system_node) {
327335
default = system.name().clone().to_string();
328336
}
329337
}

crates/bevy_mod_scripting_bindings/src/script_component.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,6 @@ mod test {
165165
.get_info(info.registration.component_id)
166166
.unwrap();
167167

168-
assert_eq!(component.name(), "ScriptTest");
168+
assert_eq!(component.name(), "ScriptTest".into());
169169
}
170170
}

crates/bevy_mod_scripting_bindings/src/world.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ use ::{
4343
PartialReflect, TypeRegistryArc, std_traits::ReflectDefault,
4444
},
4545
};
46+
use bevy_asset::AssetPath;
4647
use bevy_ecs::{
4748
component::Mutable,
4849
hierarchy::{ChildOf, Children},
@@ -906,7 +907,10 @@ impl WorldAccessGuard<'_> {
906907
}
907908

908909
/// Loads a script from the given asset path with default settings.
909-
pub fn load_script_asset(&self, asset_path: &str) -> Result<Handle<ScriptAsset>, InteropError> {
910+
pub fn load_script_asset<'a>(
911+
&self,
912+
asset_path: impl Into<AssetPath<'a>>,
913+
) -> Result<Handle<ScriptAsset>, InteropError> {
910914
self.with_resource(|r: &AssetServer| r.load(asset_path))
911915
}
912916

@@ -1337,7 +1341,7 @@ impl WorldAccessGuard<'_> {
13371341
/// Sends AppExit event to the world with success status
13381342
pub fn exit(&self) -> Result<(), InteropError> {
13391343
self.with_global_access(|world| {
1340-
world.send_event(AppExit::Success);
1344+
world.write_message(AppExit::Success);
13411345
})
13421346
}
13431347
}

crates/bevy_mod_scripting_core/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ bevy_log = { workspace = true, default-features = false, features = [] }
3333
bevy_asset = { workspace = true, default-features = false, features = [] }
3434
bevy_diagnostic = { workspace = true, default-features = false, features = [] }
3535
bevy_platform = { workspace = true, default-features = false, features = [] }
36+
bevy_utils = { workspace = true }
3637

3738
parking_lot = { workspace = true }
3839
smallvec = { workspace = true }

crates/bevy_mod_scripting_core/src/commands.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,14 +175,14 @@ impl<P: IntoScriptPluginParams> DetachScript<P> {
175175

176176
impl<P: IntoScriptPluginParams> Command for AttachScript<P> {
177177
fn apply(self, world: &mut World) {
178-
world.send_event(self.0);
178+
world.write_message(self.0);
179179
RunProcessingPipelineOnce::<P>::new(Some(Duration::from_secs(9999))).apply(world)
180180
}
181181
}
182182

183183
impl<P: IntoScriptPluginParams> Command for DetachScript<P> {
184184
fn apply(self, world: &mut World) {
185-
world.send_event(self.0);
185+
world.write_message(self.0);
186186
RunProcessingPipelineOnce::<P>::new(Some(Duration::from_secs(9999))).apply(world)
187187
}
188188
}

0 commit comments

Comments
 (0)