Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yeslayla/simple-dialogue
Simple Dialogue is yet another dialogue plugin for Godot that is a lightweight dialogue system that can easily be used at a lower level dialogue.
https://github.com/yeslayla/simple-dialogue
dialogue-system godot godot-engine godot-plugin godot3
Last synced: 23 days ago
JSON representation
Simple Dialogue is yet another dialogue plugin for Godot that is a lightweight dialogue system that can easily be used at a lower level dialogue.
- Host: GitHub
- URL: https://github.com/yeslayla/simple-dialogue
- Owner: yeslayla
- License: mit
- Created: 2022-01-16T07:55:13.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2022-01-16T07:55:51.000Z (almost 3 years ago)
- Last Synced: 2024-11-03T18:40:21.644Z (2 months ago)
- Topics: dialogue-system, godot, godot-engine, godot-plugin, godot3
- Language: GDScript
- Homepage:
- Size: 4.88 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: ReadMe.md
- License: LICENSE
Awesome Lists containing this project
README
![Release Version](https://img.shields.io/github/v/release/josephbmanley/simple-dialogue)
# Simple Dialogue
Requirements: Godot 3.x and [godot-yaml](https://github.com/Beliaar/godot-yaml-asset)
Table of Contents:
- [Features](#Features)
- [Examples](#Examples)
- [Object Reference](#Objects)Simple Dialogue is yet another dialogue plugin for Godot that is a lightweight dialogue system that can easily be used at a lower level dialogue.
Currently, this requires all dialogue to be written in `YAML`.
## Features
- Timelines
- Choices
- Localization## Examples
See the [samples](addons/simple_dialogue/samples) for more examples.
### Dialogue File
```yaml
apiVersion: 1.0
kind: timeline
events:
- name:
en_US: Person
message:
en_US: Hello, I say witty dialogue!
```### Usage
```gdscipt
var timeline = STimeline.new("res://addons/simple_dialouge/samples/sample.yaml")
var event : SEventfunc _process(_delta):
if(Input.is_action_just_pressed("ui_accept")):
if timeline.is_choice():
var autoDecide = 1
print("You: ", timeline.get_choices()[autoDecide])
timeline.make_choice(autoDecide)
returnevent = timeline.read()
if event:
print(event.name,": ", event.message)
```## Objects
### SChoice
Properties:
|Name|Type|Description|
|---|---|---|
|events|`Array`(`SEvent`)|Array of all events this choice leads towards.|
|choice|`String`|Text associated with choice.|### SEvent
Properties:
|Name|Type|Description|
|---|---|---|
|name|`String`|Name of current event speaker.|
|message|`String`|Text spoken by speaker.|
|portrait|`Texture`|Texture associated with current speaker.|
|choices|`Array`(`SChoice`)|Array of all choices associated with event.|Methods:
|Name|Return Type|Description|
|---|---|---|
|get_locale(property)|`String`|Returns the value of a localized property.|### STimeline
Properties:
|Name|Type|Description|
|---|---|---|
|file_path|`String`|File path associated with timeline.|
|events|`Array`(`SEvent`)|Array of all events associated with timeline.|Methods:
|Name|Return Type|Description|
|---|---|---|
|get_cursor()|`int`|Returns the current cursor position.|
|seek(new_pos)|`void`|Moves current cursor position on the timeline.|
|get_event(offset=`0`)|`SEvent`|Returns the event at the cursor position.|
|read()|`SEvent`|Returns the current event and moves the cursor foward.|
|get_choices()|`Array`(`String`)|Returns an array of current choices text value at cursor.|
|make_choice(choice_int)|void|Moves cursor to new event stream depending on choice value.|