oxygengine_visual_novel/
script.rs1use crate::{dialogue::Dialogue, Color, Position, Scale};
2use core::{prefab::Prefab, Scalar};
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Copy, Clone, Serialize, Deserialize)]
6pub enum LogType {
7 Info,
8 Warning,
9 Error,
10}
11
12#[derive(Debug, Clone, Serialize, Deserialize)]
13pub enum Action {
14 None,
15 Log(LogType, String),
17 Label(String),
18 Wait(Scalar),
19 GoToScene(String),
20 EndScene,
21 ChangeSceneBackground(String),
22 ShowCharacter(String),
23 HideCharacter(String),
24 HideAllCharacters,
25 ChangeCharacterVisibility(String, Scalar),
27 ChangeCharacterNameColor(String, Color),
29 ChangeCharacterPosition(String, Position),
31 ChangeCharacterAlignment(String, Position),
33 ChangeCharacterRotation(String, Scalar),
35 ChangeCharacterScale(String, Scale),
37 ChangeCharacterStyle(String, String),
39 ChangeCameraPosition(Position),
40 ChangeCameraRotation(Scalar),
41 GoToLabel(String),
42 GoToChapter(String),
43 Parallel(Vec<Action>),
44 ShowDialogue(Dialogue),
45 HideDialogue,
46}
47
48impl Default for Action {
49 fn default() -> Self {
50 Self::None
51 }
52}
53
54impl Prefab for Action {}
55
56#[derive(Debug, Default, Clone, Serialize, Deserialize)]
57pub struct Chapter {
58 pub name: String,
59 pub actions: Vec<Action>,
60}
61
62impl Prefab for Chapter {}