From 49f5bd326f4467c035c39390040a75b048081be4 Mon Sep 17 00:00:00 2001 From: XTRA Date: Wed, 9 Oct 2024 10:32:56 +0300 Subject: [PATCH] Started documentation --- docs/classes/dynamicviewport.md | 0 docs/classes/manager.md | 72 +++++++++++++++++++++++++++++++++ docs/classes/scramblingtext.md | 0 docs/docs.md | 11 +++++ 4 files changed, 83 insertions(+) create mode 100644 docs/classes/dynamicviewport.md create mode 100644 docs/classes/manager.md create mode 100644 docs/classes/scramblingtext.md create mode 100644 docs/docs.md diff --git a/docs/classes/dynamicviewport.md b/docs/classes/dynamicviewport.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/classes/manager.md b/docs/classes/manager.md new file mode 100644 index 0000000..9bf5584 --- /dev/null +++ b/docs/classes/manager.md @@ -0,0 +1,72 @@ + +# Manager +`inherits SubViewport` + +### Usage +This is the backbone of the demo. + +The `Manager` is responsible for the scene management and background music. + +#### Setup +1. Create a new scene with a type of `Manager` and make it the main scene. +2. Set the `Bgm` from either in-editor or through code. +3. Add scenes to be run in order with `register_scene()` +4. Create a child of type `AnimationPlayer` and create a new animation with a `Call Method Track` +5. Add keyframes at points where you wish the scene to be changed. Call method `set_scene(scene_number)`. +6. Call `start_audio()` and `$AnimationPlayer.play()` to start the bgm and scene timeline + +#### Example script +```gdscript +extends Manager + +var scene1: PackedScene = preload("res://entities/scene_1.tscn"); +var scene2: PackedScene = preload("res://entities/scene_2.tscn"); +var scene3: PackedScene = preload("res://entities/scene_3.tscn"); +var scene4: PackedScene = preload("res://entities/scene_4.tscn"); + +func _ready() -> void: + register_scene(scene1); + register_scene(scene2); + register_scene(scene3); + register_scene(scene4); + + start_audio(); + $AnimationPlayer.play("timeline"); + +``` + +### Properties +| Type | Name | Default | +| -------------------- | ----------- | ------- | +| `String` | bgm | `Null` | +| `Array[PackedScene]` | scenes | `Array[PackedScene]` | +| `int` | beat_count (unused) | `Null` | + +`bgm` +Stores the path to the background music as `String` + +`scenes` stores the registered scenes. Usually you shouldn't edit this manually + +`beat_count` Unused + + +### Methods + +| Returns | Name | +| ------- | ---- | +| `void` | `set_scene(number: int)` | +| `void` | `register_scene(scene: PackedScene)` | +| `void` | `start_audio()` | + +#### set_scene(number: int) +Changes the current scene to the scene at index `number` in `scenes` + +#### register_scene(scene: PackedScene) +Registers the `scene` to the manager. + +Each registered scene is added to `scenes` and gets preloaded into memory. + +The scene number is the scene's index in `scenes`, so the first scene registered gets number `0`, the next one gets number `1` and so on. + +#### start_audio() +Calling this function will start playing back the `bgm` on the main bus. \ No newline at end of file diff --git a/docs/classes/scramblingtext.md b/docs/classes/scramblingtext.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/docs.md b/docs/docs.md new file mode 100644 index 0000000..1bd7f6d --- /dev/null +++ b/docs/docs.md @@ -0,0 +1,11 @@ + +# MiniDemoTools documentation + +MiniDemoTools is a collection of tools for Godot used internally for demo development at Minihakkerit. + +MiniDemoTools supports Godot versions >4.1 + +## Custom classes +- [Manager](classes/manager.md) +- [ScramblingText](classes/scramblingtext.md) +- [DynamicSubViewport](classes/dynamicsubviewport.md) \ No newline at end of file