From 0c128e472b1b49e32c313874eaeccc8c5f1b1202 Mon Sep 17 00:00:00 2001 From: Mica White Date: Mon, 26 Oct 2026 10:51:49 -0400 Subject: Finish engine --- src/scene.rs | 58 ++-------------------------------------------------------- 1 file changed, 2 insertions(+), 56 deletions(-) (limited to 'src/scene.rs') diff --git a/src/scene.rs b/src/scene.rs index 807628d..aa4a443 100644 --- a/src/scene.rs +++ b/src/scene.rs @@ -1,5 +1,3 @@ -use std::path::Path; - use rustc_hash::FxHashSet; use serde::{Deserialize, Serialize}; @@ -11,14 +9,7 @@ use crate::{ #[derive(Debug, Clone, Serialize, Deserialize)] pub struct Scene { pub name: Box, - pub preload_scenes: Box<[usize]>, - pub scripts: ResourceRequirements, -} - -#[derive(Debug, Clone, Default, Serialize, Deserialize)] -pub struct ResourceRequirements { - pub required: Box<[usize]>, - pub preload: Box<[usize]>, + pub scripts: Vec, } pub fn scene_id_by_name(scenes: &[Scene], name: &str) -> Option { @@ -31,34 +22,6 @@ pub fn scene_id_by_name(scenes: &[Scene], name: &str) -> Option { None } -pub fn preload_scene( - scenes: &[Scene], - scripts: &mut ScriptManager, - files: &mut FileManager, - wasm_runner: &WasmRunner, - id: usize, -) { - let scene = &scenes[id]; - for script in &scene.scripts.required { - scripts.preload_script(*script, files, wasm_runner); - } -} - -pub fn is_scene_loaded( - scenes: &[Scene], - scripts: &ScriptManager, - loaded_files: &[Box], - id: usize, -) -> bool { - let scene = &scenes[id]; - scene - .scripts - .required - .iter() - .cloned() - .all(|script_id| scripts.is_script_loaded(script_id, loaded_files)) -} - pub fn switch_scenes( scripts: &mut ScriptManager, context: &mut ScriptContext<'_>, @@ -77,25 +40,8 @@ pub fn switch_scenes( let mut needed_scripts = FxHashSet::default(); let scene = &context.manifest.scenes[new]; - for script_id in &scene.scripts.required { + for script_id in &scene.scripts { needed_scripts.insert(*script_id); scripts.activate_script(*script_id, context, wasm_runner, files); } - for script_id in &scene.scripts.preload { - needed_scripts.insert(*script_id); - scripts.preload_script(*script_id, files, wasm_runner); - } - for scene_to_preload in &scene.preload_scenes { - let scene_to_preload = &context.manifest.scenes[*scene_to_preload]; - for script_id in &scene_to_preload.scripts.required { - needed_scripts.insert(*script_id); - scripts.preload_script(*script_id, files, wasm_runner); - } - } - - let active_scripts: FxHashSet = active_scripts.iter().cloned().collect(); - let unneeded_scripts = active_scripts.difference(&needed_scripts); - for script_id in unneeded_scripts { - scripts.unload_script(*script_id, files); - } } -- cgit v1.3.1