# Micro Quest
Data and systems for structuring quests and dialogue, with an optional Bevy integration.
## Usage
### Installation
Include in your `Cargo.toml`:
```toml
[dependencies]
micro-quest = { version = "0.1", features = ["bevy"] }
```
### In Code
This crate provides the structures required to work with `.quest` toml files, as created
by Micro Forge, a game asset editor.
With the `bevy` feature enabled, you get a `QuestLog` as a resource, and a loader for `.quest` files.
There is also an `AssetServerQuestLocator` that will use the asset server to locate quests (It will attempt to
respect named sub assets while resolving the ID to an asset path).
```rust
/* If you're using bevy, add the plugin to configure resources and loaders */
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_plugin(micro_quest::MicroQuestPlugin);
}
fn some_system(quest_log: Res<QuestLog>, assets: AssetServerQuestLocator) {
// Assuming that the quest has been added to the log at some other point
log::info!("My First Quest: {:?}", quest_log.get_quest_state("quests/QuestList#MyFirstQuest", assets));
}
```