Add more test assemblies (#103)

This PR helps probe the capabilities of the engine.

Also adjusts the realization triggering system to reduce redundant realizations as we set an assembly's regulators during loading. Specificially, consolidates all calls to `realize()` into a single effect, which is triggered by the `needs_realization` signal.
Also introduces a `keep_realized` signal and use it to pause realization while loading assemblies, but this signal is planned for removal as ultimately we do not want a separate "mode" of interpreting commands during loading, for maximal reproducibility of results (and simplicity of system).

Co-authored-by: Aaron Fenyes <aaron.fenyes@fareycircles.ooo>
Reviewed-on: StudioInfinity/dyna3#103
Co-authored-by: Vectornaut <vectornaut@nobody@nowhere.net>
Co-committed-by: Vectornaut <vectornaut@nobody@nowhere.net>
This commit is contained in:
Vectornaut 2025-07-22 22:01:37 +00:00 committed by Glen Whitney
parent 5864017e6f
commit 0801200210
13 changed files with 1045 additions and 277 deletions

View file

@ -1,9 +1,6 @@
mod add_remove;
mod assembly;
mod diagnostics;
mod display;
mod components;
mod engine;
mod outline;
mod specified;
#[cfg(test)]
@ -12,11 +9,13 @@ mod tests;
use std::{collections::BTreeSet, rc::Rc};
use sycamore::prelude::*;
use add_remove::AddRemove;
use assembly::{Assembly, Element};
use diagnostics::Diagnostics;
use display::Display;
use outline::Outline;
use components::{
add_remove::AddRemove,
diagnostics::Diagnostics,
display::Display,
outline::Outline
};
#[derive(Clone)]
struct AppState {