Crates.io | vn-settings |
lib.rs | vn-settings |
version | |
source | src |
created_at | 2025-03-15 20:48:58.565683+00 |
updated_at | 2025-03-15 20:48:58.565683+00 |
description | Various settings intended to simulate visual novels |
homepage | |
repository | https://gitlab.com/porky11/vn-settngs |
max_upload_size | |
id | 1593881 |
Cargo.toml error: | TOML parse error at line 18, column 1 | 18 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include` |
size | 0 |
A cross-platform configuration system for visual novels, featuring cascading overrides and real-time state management.
This library provides various settings to simulate visual novels in Rust applications. It includes settings for colors, timing, images, objects, layout, and names.
Each parameter can have a default value and you can add temporary overrides to these values, which will only be active during a single continuous dialog.
Most parameters can also have a character specific values, which are only set when a character speaks. These character specific parameters can also have temporary overrides.
The priorities of the values is like this:
scene
)characters_scene
)characters_default
)default
)This should make managing state for visual novels easy.
🎨 Cascading Settings
Override colors, timing, and layouts at multiple levels:
settings.set_character_default(Setter::Color(
ColorParameter::Dialog(BoxColorParameter::TextFill).named("Alice"),
Color::RED
));
🔄 State Management
Track defaults, character-specific overrides, and scene changes:
settings.change(&Change::Timing(
TimingParameter::AutoNext.named("FastMode"),
1.0
));
📦 Serialization Ready
All types implement serde::Serialize
(enable serde
feature).
Type | Description |
---|---|
PlayerSettings |
Root container for all configuration |
Override<T> |
Hierarchical value management |
Parameter |
Addressable setting path |
Change |
Mutation operation |
Developed with ❤️ for visual novel creators