vn-settings 0.1.2

Various settings intended to simulate visual novels
Documentation
# Visual Novel settings

[![Crates.io](https://img.shields.io/crates/v/vn-settings)](https://crates.io/crates/vn-settings)

A cross-platform configuration system for visual novels, featuring cascading overrides and real-time state management.

## Overrides

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:
1. General scene value (`scene`)
2. General character specific scene value (`characters_scene`)
3. General character specific default value (`characters_default`)
4. General default value (`default`)

This should make managing state for visual novels easy.

## Features

🎨 **Cascading Settings**

Override colors, timing, and layouts at multiple levels:

```rust
settings.set_character_default(Setter::Color(
    ColorParameter::Dialog(BoxColorParameter::TextFill).named("Alice"),
    Color::RED
));
```

🔄 **State Management**

Track defaults, character-specific overrides, and scene changes:

```rust
settings.change(&Change::Timing(
    TimingParameter::AutoNext.named("FastMode"),
    1.0
));
```

📦 **Serialization Ready**

All types implement `serde::Serialize` (enable `serde` feature).

## Core Types

| Type                | Description                          |
|---------------------|--------------------------------------|
| `PlayerSettings`    | Root container for all configuration |
| `Override<T>`       | Hierarchical value management        |
| `Parameter`         | Addressable setting path             |
| `Change`            | Mutation operation                   |

## Documentation

[API Reference](https://docs.rs/vn-settings)

*Developed with ❤️ for visual novel creators*