Optimized Docs (#7)

Authored-by: Dennis Ploeger <develop@dieploegers.de>
This commit is contained in:
Dennis Ploeger
2021-06-22 23:06:20 +02:00
committed by GitHub
parent d5a0022b7b
commit 58d880101d
111 changed files with 6362 additions and 801 deletions

68
CREDITS
View File

@@ -1,68 +0,0 @@
Escoria is a framework developed by Ariel Manzur (punto)
Logo
====
Escoria Logo created by Livio Fania (https://liviofania.com/)
Licence: CC-BY
Assets
======
Fonts
-----
These fonts are provided as an example. Please mind checking the licence before redistributing with your game.
- Caslon Antique
https://www.1001fonts.com/caslon-antique-font.html#license
Licence: Free for personal use - Free for commercial use
This is the font used in LucasArt's game Curse of Monkey Island.
- Onesize
https://www.whatfontis.com/Onesize.font
Licence: Free for personal use
This is the font used in LucasArt's games The Secret of Monkey Island and Monkey Island 2: Lechuck's Revenge.
Characters
----------
- Mark spritesheet by Marco Giorgini - marcogiorgini.com
Licence : CC0 Licence
https://opengameart.org/content/mark-2d-adventure-game-sprite
with some additions (talk animations) by Julian Murgia
- Worker spritesheet based on Mark spritesheet by Marco Giorgini - marcogiorgini.com
Licence: CC0 Licence
edited by Julian Murgia
Items
-----
- Generic items by Kenney
Licence: CC0 Licence
https://www.kenney.nl/assets/generic-items
Music
=====
- “Game Menu Looping” (Licence CC-BY 4.0)
- “Mystical Ocean Puzzle Game” (Licence CC-BY 4.0)
by Eric Matyas
www.soundimage.org
Sound
=====
- Concrete footstep
Licence: CC0 Licence
https://www.kenney.nl/

View File

@@ -1,10 +1,8 @@
# Escoria Rewrite
Libre framework for the creation of point-and-click adventure games with
the MIT-licensed multi-platform game engine [Godot Engine](https://godotengine.org).
Libre framework for the creation of point-and-click adventure games with the MIT-licensed multi-platform game engine [Godot Engine](https://godotengine.org).
It is designed so that you can claim it for yourself and modify it to match
the needs of your specific game and team.
It is designed so that you can claim it for yourself and modify it to match the needs of your specific game and team.
This repository is big rewrite of the original [Escoria framework](https://github.com/godotengine/escoria/tree/master). Its purpose is to make Escoria work as a plugin for the Godot Engine editor, instead of being a collection of scripts and scenes. It is intended to be easier to use and easier to maintain.
@@ -14,8 +12,9 @@ If you're encountering issues or incompatibilities, please raise an issue on [Es
This framework was initially developed for the adventure game
[The Interactive Adventures of Dog Mendonça and Pizzaboy®](http://store.steampowered.com/app/330420)
and later streamlined for broader usages and open sourced as promised
to the backers of the Dog Mendonça Kickstarter campaign.
and later streamlined for broader usages and open sourced as promised to the backers of the Dog Mendonça Kickstarter campaign.
Because of maintainability issues and to make the framework easier for new developers and bring it closer to Godot's standards, the framework was completely rewritten and optimized.
## Authors
@@ -31,10 +30,11 @@ In alphabetical order:
## Documentation
* Getting started
* [Getting started](docs/getting_started.md)
* [Architecture](docs/architecture.md)
* [Configuration](docs/configuration.md)
* [ESC language documentation](api/esc.md)
* [API reference](docs/api)
## Roadmap
@@ -72,12 +72,51 @@ This framework (scripts, scenes) is distributed under the [MIT license](LICENCE)
### Art credits
#### Logo
Escoria Logo created by Livio Fania (https://liviofania.com/)
Licence: CC-BY
#### Characters
- Mark spritesheet by Marco Giorgini - marcogiorgini.com
Licence : CC0 Licence
https://opengameart.org/content/mark-2d-adventure-game-sprite
with some additions (talk animations) by Julian Murgia
- Worker spritesheet based on Mark spritesheet by Marco Giorgini - marcogiorgini.com
Licence: CC0 Licence
edited by Julian Murgia
#### Items
* Generic items by Kenney
Licence: CC0 Licence
https://www.kenney.nl/assets/generic-items
### Sound credits
* Concrete footstep
Licence: CC0 Licence
https://www.kenney.nl/
* “Game Menu Looping” (Licence CC-BY 4.0)
* “Mystical Ocean Puzzle Game” (Licence CC-BY 4.0)
by Eric Matyas
www.soundimage.org
### Font
These fonts are provided as an example. Please mind checking the licence before redistributing with your game.
- Caslon Antique
https://www.1001fonts.com/caslon-antique-font.html#license
Licence: Free for personal use - Free for commercial use
This is the font used in LucasArt's game Curse of Monkey Island.
- Onesize
https://www.whatfontis.com/Onesize.font
Licence: Free for personal use
This is the font used in LucasArt's games The Secret of Monkey Island and Monkey Island 2: Lechuck's Revenge.
## Development
Requirements:
@@ -85,6 +124,7 @@ Requirements:
* git
* Current Godot version
* Current master of [GDScript docs maker](https://github.com/GDQuest/gdscript-docs-maker)
* Python (>=3) if you changed the ESC commands
During development, run the following to update the class list:
@@ -95,3 +135,9 @@ rm -rf export &>/dev/null
cp export/* <path to escoria>/docs/api
```
If you changed ESC commands, update the command reference by running
```
python3 extractesc.py
```

View File

@@ -1,8 +1,10 @@
# `camera_set_limits camlimits_id`
#
# Sets the camera limits to the one defined under `camlimits_id` in ESCRoom's
# camera_limits array.
# - camlimits_id : int : id of the camera limits to apply (defined in ESCRoom's
# camera_limits array)
#
# @ESC
extends ESCBaseCommand
class_name CameraSetLimitsCommand

View File

@@ -1,6 +1,8 @@
# `enable_terrain node_name`
#
# Enable the ESCTerrain's NavigationPolygonInstance defined by given node name.
# Disables previously activated NavigationPolygonInstance.
#
# @ESC
extends ESCBaseCommand
class_name EnableTerrainCommand

View File

@@ -4,20 +4,27 @@ class_name ESCCondition
# Valid comparison types
enum {COMPARISON_NONE, COMPARISON_EQ, COMPARISON_GT, COMPARISON_LT}
enum {
COMPARISON_NONE,
COMPARISON_EQ,
COMPARISON_GT,
COMPARISON_LT,
COMPARISON_ACTIVITY
}
# Regex that matches condition lines
const REGEX = \
'^(?<is_negated>!)?(?<comparison>eq|gt|lt)? ?' +\
'(?<is_inventory>i\/)?(?<flag>[^ ]+)( (?<comparison_value>.+))?$'
'^(?<is_negated>!)?(?<comparison>eq|gt|lt)? ?(?<is_inventory>i\/)?' + \
'(?<is_activity>a\/)?(?<flag>[^ ]+)( (?<comparison_value>.+))?$'
const COMPARISON_DESCRIPTION = [
"Checking if %s %s %s true%s",
"Checking if %s %s %s equals %s",
"Checking if %s %s %s greater than %s",
"Checking if %s %s %s less than %s"
"Checking if %s %s %s less than %s",
"Checking if %s is %s active%s"
]
@@ -73,6 +80,8 @@ func _init(comparison_string: String):
)
if "is_inventory" in result.names:
self.inventory = true
if "is_activity" in result.names:
self.comparison = COMPARISON_ACTIVITY
if "flag" in result.names:
self.flag = escoria.utils.get_re_group(result, "flag")
else:
@@ -93,7 +102,8 @@ func run() -> bool:
"inventory item" if self.inventory else "global value",
self.flag,
"is not" if self.negated else "is",
"" if self.comparison == COMPARISON_NONE else self.comparison_value
"" if self.comparison in [COMPARISON_NONE, COMPARISON_ACTIVITY] \
else self.comparison_value
]
)
@@ -119,6 +129,10 @@ func run() -> bool:
escoria.globals_manager.get_global(global_name) < \
self.comparison_value:
return_value = true
elif self.comparison == COMPARISON_ACTIVITY and \
escoria.object_manager.has_object(global_name) and \
escoria.object_manager.get_object(global_name).active:
return_value = true
if self.negated:
return_value = not return_value

View File

@@ -15,6 +15,7 @@ const END_REGEX = \
# Dialog type
# FIXME, currently unused, but needs reimplementation
var type: String = ""
# Avatar used in the dialog

View File

@@ -0,0 +1,47 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# AcceptInputCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`accept_input [ALL|NONE|SKIP]`
What type of input does the game accept. ALL is the default, SKIP allows
skipping of dialog but nothing else, NONE denies all input. Including opening
the menu etc. SKIP and NONE also disable autosaves.
*Note* that SKIP gets reset to ALL when the event is done, but NONE persists.
This allows you to create cut scenes with SKIP where the dialog can be
skipped, but also initiate locked#### down cutscenes with accept_input
NONE in :setup and accept_input ALL later in :ready.
@STUB
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### validate
```gdscript
func validate(arguments: Array)
```
Validate wether the given arguments match the command descriptor
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

43
docs/api/AnimCommand.md Normal file
View File

@@ -0,0 +1,43 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# AnimCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`anim object name [reverse]`
Executes the animation specificed with the "name" parameter on the object,
without blocking. The next command in the event will be executed immediately
after. Optional parameters:
* reverse: plays the animation in reverse when true
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### validate
```gdscript
func validate(arguments: Array)
```
Validate wether the given arguments match the command descriptor
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

View File

@@ -0,0 +1,42 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# CameraPushCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`camera_push target [time] [type]`
Push camera to `target`. Target must have camera_pos set. If it's of type
Camera2D, its zoom will be used as well as position. `type` is any of the
Tween.TransitionType values without the prefix, eg. LINEAR, QUART or CIRC;
defaults to QUART. A `time` value of 0 will set the camera immediately.
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### validate
```gdscript
func validate(arguments: Array)
```
Validate wether the given arguments match the command descriptor
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

View File

@@ -0,0 +1,42 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# CameraSetLimitsCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`camera_set_limits camlimits_id`
Sets the camera limits to the one defined under `camlimits_id` in ESCRoom's
camera_limits array.
- camlimits_id : int : id of the camera limits to apply (defined in ESCRoom's
camera_limits array)
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### validate
```gdscript
func validate(arguments: Array)
```
Validate wether the given arguments match the command descriptor
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

View File

@@ -0,0 +1,33 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# CameraSetPosCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`camera_set_pos speed x y`
Moves the camera to a position defined by "x" and "y", at the speed defined
by "speed" in pixels per second. If speed is 0, camera is teleported to the
position.
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

View File

@@ -0,0 +1,41 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# CameraSetTargetCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`camera_set_target speed object`
Configures the camera to set the target to the given `object`using `speed`
as speed limit.
This is the default behavior (default follow object is "player").
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### validate
```gdscript
func validate(arguments: Array)
```
Validate wether the given arguments match the command descriptor
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

View File

@@ -0,0 +1,34 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# CameraSetZoomCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`camera_set_zoom magnitude [time]`
Zooms the camera in/out to the desired `magnitude`. Values larger than 1 zooms
the camera out, and smaller values zooms in, relative to the default value
of 1. An optional `time` in seconds controls how long it takes for the camera
to zoom into position.
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

View File

@@ -0,0 +1,41 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# CameraSetZoomHeightCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`camera_set_zoom_height pixels [time]
Zooms the camera in/out to the desired `pixels` height.
An optional `time` in seconds controls how long it takes for the camera
to zoom into position.
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### validate
```gdscript
func validate(arguments: Array)
```
Validate wether the given arguments match the command descriptor
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

View File

@@ -0,0 +1,33 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# CameraShiftCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`camera_shift x y [time] [type]`
Shift camera by `x` and `y` pixels over `time` seconds. `type` is any of the
Tween.TransitionType values without the prefix, eg. LINEAR, QUART or CIRC;
defaults to QUART.
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

View File

@@ -0,0 +1,51 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ChangeSceneCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`change_scene path run_events`
Loads a new scene, specified by "path". The `run_events` variable is a
boolean (default true) which you never want to set manually! It's there only
to benefit save games, so they don't conflict with the scene's events.
@ESC
## Property Descriptions
### readied\_scenes
```gdscript
var readied_scenes: Array
```
An array of scenes that have already been loaded
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### validate
```gdscript
func validate(arguments: Array) -> bool
```
Validate wether the given arguments match the command descriptor
### run
```gdscript
func run(command_params: Array) -> var
```
Run the command

40
docs/api/CustomCommand.md Normal file
View File

@@ -0,0 +1,40 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# CustomCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`custom object node func_name [params]`
Calls the function `func_name` of the node `node` of object `object` with
the optional `params`. This is a blocking function
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### validate
```gdscript
func validate(arguments: Array)
```
Validate wether the given arguments match the command descriptor
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

View File

@@ -0,0 +1,43 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# CutSceneCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`cut_scene object name [reverse]`
Executes the animation specificed with the "name" parameter on the object,
blocking. The next command in the event will be executed when the animation
is finished playing. Optional parameters:
* reverse plays the animation in reverse when true
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### validate
```gdscript
func validate(arguments: Array)
```
Validate wether the given arguments match the command descriptor
### run
```gdscript
func run(command_params: Array) -> var
```
Run the command

31
docs/api/DebugCommand.md Normal file
View File

@@ -0,0 +1,31 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# DebugCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`debug string [string2 ...]`
Takes 1 or more strings, prints them to the console.
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

View File

@@ -0,0 +1,40 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# DecGlobalCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`dec_global name value`
Subtracts the value from global with given "name". Value and global must
both be integers.
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### validate
```gdscript
func validate(arguments: Array)
```
Validate wether the given arguments match the command descriptor
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

View File

@@ -0,0 +1,65 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCActionManager
**Extends:** [Object](../Object)
## Description
Manages currently carried out actions
## Property Descriptions
### current\_action
```gdscript
var current_action: String = ""
```
- **Setter**: `set_current_action`
Current verb used
### current\_tool
```gdscript
var current_tool: ESCObject
```
Current tool (ESCItem/ESCInventoryItem) used
## Method Descriptions
### set\_current\_action
```gdscript
func set_current_action(action: String)
```
Set the current action
### clear\_current\_action
```gdscript
func clear_current_action()
```
Clear the current action
### clear\_current\_tool
```gdscript
func clear_current_tool()
```
Clear the current tool
### activate
```gdscript
func activate(action: String, target: ESCObject, combine_with: ESCObject = null) -> var
```
## Signals
- signal action_changed(): The current action was changed

72
docs/api/ESCBackground.md Normal file
View File

@@ -0,0 +1,72 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCBackground
**Extends:** [TextureRect](../TextureRect)
## Description
ESCBackground's purpose is to display a background image and receive input
events on the background. More precisely, the TextureRect under ESCBackground
does not receive events itself - if it did, it would also eat all events like
hotspot focusing and such. Instead, we set the TextureRect mouse filter to
MOUSE_FILTER_IGNORE, and we use an Area2D node to receive the input events.
If ESCBackground doesn't contain a texture, it is important that its rect_size
is set over the whole scene, because its rect_size is then used to create the
Area2D node under it. If the rect_size is wrongly set, the background may
receive no input.
## Property Descriptions
### esc\_script
```gdscript
export var esc_script = ""
```
The ESC script connected to this background
## Method Descriptions
### manage\_input
```gdscript
func manage_input(_viewport, event, _shape_idx) -> void
```
Manage inputs reaching the Area2D and emit the events to the input manager
TODO: Don't change private variables here, use an event for BUTTON_WHEEL
#### Parameters
- _viewport: (not used)
- event: Event received
- _shape_idx: (not used)
### get\_full\_area\_rect2
```gdscript
func get_full_area_rect2() -> Rect2
```
Calculate the actual area taken by this background depending on its
Texture or set size
**Returns** The correct area size
## Signals
- signal double_left_click_on_bg(position): The background was double clicked
#### Parameters
- position: The position where the player clicked
- signal left_click_on_bg(position): The background was left clicked
#### Parameters
- position: The position where the player clicked
- signal right_click_on_bg(position): The background was right clicked
#### Parameters
- position: The position where the player clicked

View File

@@ -0,0 +1,51 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCBackgroundMusic
**Extends:** [Control](../Control)
## Description
Background music player
## Property Descriptions
### global\_id
```gdscript
export var global_id: String = "bg_music"
```
Global id of the background music player
### state
```gdscript
var state: String = "default"
```
The state of the music player. "default" or "off" disable music
Any other state refers to a music stream that should be played
### stream
```gdscript
var stream: AudioStreamPlayer
```
Reference to the audio player
## Method Descriptions
### set\_state
```gdscript
func set_state(p_state: String, p_force: bool = false) -> void
```
Set the state of this player
#### Parameters
- p_state: New state to use
- p_force: Override the existing state even if the stream is still playing

View File

@@ -0,0 +1,51 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCBackgroundSound
**Extends:** [Control](../Control)
## Description
Background sound player
## Property Descriptions
### global\_id
```gdscript
export var global_id: String = "bg_sound"
```
Global id of the background sound player
### state
```gdscript
var state: String = "default"
```
The state of the sound player. "default" or "off" disable sound
Any other state refers to a sound stream that should be played
### stream
```gdscript
var stream: AudioStreamPlayer
```
Reference to the audio player
## Method Descriptions
### set\_state
```gdscript
func set_state(p_state: String, p_force: bool = false)
```
Set the state of this player
#### Parameters
- p_state: New state to use
- p_force: Override the existing state even if the stream is still playing

View File

@@ -0,0 +1,36 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCBaseCommand
**Extends:** [Node](../Node)
## Description
A base class for every ESC command.
Extending classes have to override the configure and run function
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### validate
```gdscript
func validate(arguments: Array) -> bool
```
Validate wether the given arguments match the command descriptor
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

108
docs/api/ESCCamera.md Normal file
View File

@@ -0,0 +1,108 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCCamera
**Extends:** [Camera2D](../Camera2D)
## Description
Camera handling
## Property Descriptions
### tween
```gdscript
var tween
```
Reference to the tween node for animating camera movements
### target
```gdscript
var target: Vector2 = "(0, 0)"
```
Target position of the camera
### follow\_target
```gdscript
var follow_target: Node
```
The object to follow
### zoom\_target
```gdscript
var zoom_target: Vector2
```
Target zoom of the camera
### zoom\_time
```gdscript
var zoom_time
```
### zoom\_transform
```gdscript
var zoom_transform
```
This is needed to adjust dialog positions and such, see dialog_instance.gd
## Method Descriptions
### set\_limits
```gdscript
func set_limits(limits: ESCCameraLimits)
```
Sets camera limits so it doesn't go out of the scene
#### Parameters
- limits: The limits to set
### set\_drag\_margin\_enabled
```gdscript
func set_drag_margin_enabled(p_dm_h_enabled, p_dm_v_enabled)
```
### set\_target
```gdscript
func set_target(p_target, p_speed: float = 0)
```
### set\_camera\_zoom
```gdscript
func set_camera_zoom(p_zoom_level, p_time)
```
### push
```gdscript
func push(p_target, p_time, p_type)
```
### shift
```gdscript
func shift(p_x, p_y, p_time, p_type)
```
### target\_reached
```gdscript
func target_reached()
```

View File

@@ -0,0 +1,52 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCCameraLimits
**Extends:** [Object](../Object)
## Description
Describes a bounding box that limits the camera movement in the scene
## Property Descriptions
### limit\_left
```gdscript
var limit_left: int = -10000
```
The left side of the bounding box
### limit\_right
```gdscript
var limit_right: int = 10000
```
The right side of the bounding box
### limit\_top
```gdscript
var limit_top: int = -10000
```
The top side of the bounding box
### limit\_bottom
```gdscript
var limit_bottom: int = 10000
```
The bottom side of the bounding box
## Method Descriptions
### \_init
```gdscript
func _init(left: int, right: int, top: int, bottom: int)
```

72
docs/api/ESCCommand.md Normal file
View File

@@ -0,0 +1,72 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCCommand
**Extends:** [ESCStatement](../ESCStatement) < [Object](../Object)
## Description
An ESC command
## Constants Descriptions
### REGEX
```gdscript
const REGEX: String = "^(\\s*)(?<name>[^\\s]+)(\\s(?<parameters>([^\\[]|$)+))?(\\[(?<conditions>[^\\]]+)\\])?"
```
Regex matching command lines
## Property Descriptions
### name
```gdscript
var name: String
```
The name of this command
### parameters
```gdscript
var parameters: Array
```
Parameters of this command
### conditions
```gdscript
var conditions: Array
```
A list of ESCConditions to run this command.
Conditions are combined using logical AND
## Method Descriptions
### \_init
```gdscript
func _init(command_string)
```
Create a command from a command string
### is\_valid
```gdscript
func is_valid() -> bool
```
Check, if conditions match
### run
```gdscript
func run() -> var
```
Run this command

View File

@@ -0,0 +1,63 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCCommandArgumentDescriptor
**Extends:** [Object](../Object)
## Description
The descriptor of the arguments of an ESC command
## Property Descriptions
### min\_args
```gdscript
var min_args: int = 0
```
Number of arguments the command expects
### types
```gdscript
var types: Array
```
The types the arguments as TYPE_ constants. If the command is called with
more arguments than there are entries in the types array, the additional
arguments will be checked against the last entry of the types array.
### defaults
```gdscript
var defaults: Array
```
The default values for the arguments
## Method Descriptions
### \_init
```gdscript
func _init(p_min_args: int = 0, p_types: Array, p_defaults: Array)
```
Initialize the descriptor
### prepare\_arguments
```gdscript
func prepare_arguments(arguments: Array) -> Array
```
Combine the default argument values with the given arguments
### validate
```gdscript
func validate(command: String, arguments: Array) -> bool
```
Validate wether the given arguments match the command descriptor

View File

@@ -0,0 +1,47 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCCommandRegistry
**Extends:** [Object](../Object)
## Description
A registry of ESC command objects
## Property Descriptions
### registry
```gdscript
var registry: Dictionary
```
The registry of registered commands
## Method Descriptions
### load\_command
```gdscript
func load_command(command_name: String) -> ESCBaseCommand
```
Load a command by its name
#### Parameters
- command_name: Name of command to load
**Returns** The command object
### get\_command
```gdscript
func get_command(command_name: String) -> ESCBaseCommand
```
Retrieve a command from the command registry
#### Parameters
- command_name: The name of the command
**Returns** The command object

54
docs/api/ESCCompiler.md Normal file
View File

@@ -0,0 +1,54 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCCompiler
**Extends:** [Object](../Object)
## Description
Compiler of the ESC language
## Constants Descriptions
### COMMENT\_REGEX
```gdscript
const COMMENT_REGEX: String = "^\\s*#.*$"
```
A RegEx for comment lines
.*$'
### EMPTY\_REGEX
```gdscript
const EMPTY_REGEX: String = "^\\s*$"
```
A RegEx for empty lines
### INDENT\_REGEX
```gdscript
const INDENT_REGEX: String = "^(?<indent>\\s*)"
```
A RegEx for finding out the indent of a line
## Method Descriptions
### load\_esc\_file
```gdscript
func load_esc_file(path: String) -> ESCScript
```
Load an ESC file from a file resource
### compile
```gdscript
func compile(lines: Array) -> ESCScript
```
Compiles an array of ESC script strings to an ESCScript

115
docs/api/ESCCondition.md Normal file
View File

@@ -0,0 +1,115 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCCondition
**Extends:** [Object](../Object)
## Description
A condition to run a command
## Constants Descriptions
### COMPARISON\_ACTIVITY
```gdscript
const COMPARISON_ACTIVITY: int = 4
```
### COMPARISON\_DESCRIPTION
```gdscript
const COMPARISON_DESCRIPTION: Array = ["Checking if %s %s %s true%s","Checking if %s %s %s equals %s","Checking if %s %s %s greater than %s","Checking if %s %s %s less than %s","Checking if %s is %s active%s"]
```
### COMPARISON\_EQ
```gdscript
const COMPARISON_EQ: int = 1
```
### COMPARISON\_GT
```gdscript
const COMPARISON_GT: int = 2
```
### COMPARISON\_LT
```gdscript
const COMPARISON_LT: int = 3
```
### COMPARISON\_NONE
```gdscript
const COMPARISON_NONE: int = 0
```
### REGEX
```gdscript
const REGEX: String = "^(?<is_negated>!)?(?<comparison>eq|gt|lt)? ?(?<is_inventory>i/)?(?<is_activity>a/)?(?<flag>[^ ]+)( (?<comparison_value>.+))?$"
```
Regex that matches condition lines
## Property Descriptions
### flag
```gdscript
var flag: String
```
Name of the flag compared
### negated
```gdscript
var negated: bool = false
```
Wether this condition is negated
### inventory
```gdscript
var inventory: bool = false
```
Wether this condition is regarding an inventory item ("i/...")
### comparison
```gdscript
var comparison: int
```
An optional comparison type. Use the COMPARISON-Enum
### comparison\_value
```gdscript
var comparison_value
```
The value used together with the comparison type
## Method Descriptions
### \_init
```gdscript
func _init(comparison_string: String)
```
Create a new condition from an ESC condition string
### run
```gdscript
func run() -> bool
```
Run this comparison against the globals

96
docs/api/ESCDialog.md Normal file
View File

@@ -0,0 +1,96 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCDialog
**Extends:** [ESCStatement](../ESCStatement) < [Object](../Object)
## Description
An ESC dialog
## Constants Descriptions
### END\_REGEX
```gdscript
const END_REGEX: String = "^(?<indent>\\s*)!.*$"
```
A Regex that matches the end of a dialog
### REGEX
```gdscript
const REGEX: String = "^(\\s*)\\?( (?<type>[^ ]+))?( (?<avatar>[^ ]+))?( (?<timeout>[^ ]+))?( (?<timeout_option>.+))?$"
```
Regex that matches dialog lines
## Property Descriptions
### type
```gdscript
var type: String = ""
```
Dialog type
FIXME, currently unused, but needs reimplementation
### avatar
```gdscript
var avatar: String = ""
```
Avatar used in the dialog
### timeout
```gdscript
var timeout: int = 0
```
Timeout until the timeout_option option is selected. Use 0 for no timeout
### timeout\_option
```gdscript
var timeout_option: int = 0
```
The dialog option to select when timeout is reached
### options
```gdscript
var options: Array
```
A list of ESCDialogOptions
## Method Descriptions
### \_init
```gdscript
func _init(dialog_string: String)
```
Construct a dialog from a dialog string
### is\_valid
```gdscript
func is_valid() -> bool
```
Dialogs have no conditions, just return true
### run
```gdscript
func run()
```
Run this dialog

View File

@@ -0,0 +1,55 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCDialogOption
**Extends:** [ESCStatement](../ESCStatement) < [Object](../Object)
## Description
An option of an ESC dialog
## Constants Descriptions
### REGEX
```gdscript
const REGEX: String = "^[^-]*- \"(?<option>[^\"]+)\"( \\[(?<conditions>[^\\]]+)\\])?$"
```
Regex that matches dialog option lines
## Property Descriptions
### option
```gdscript
var option: String
```
Option displayed in the HUD
### conditions
```gdscript
var conditions: Array
```
Conditions to show this dialog
## Method Descriptions
### \_init
```gdscript
func _init(option_string: String)
```
Create a dialog option from a string
### is\_valid
```gdscript
func is_valid() -> bool
```
Check, if conditions match

View File

@@ -0,0 +1,80 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCDialogsPlayer
**Extends:** [ResourcePreloader](../ResourcePreloader)
## Description
Escoria dialog player
## Property Descriptions
### is\_speaking
```gdscript
var is_speaking
```
Wether the player is currently speaking
## Method Descriptions
### preload\_resources
```gdscript
func preload_resources(path: String) -> void
```
Preload the dialog UI resources
#### Parameters
- path: Path where the actual dialog UI resources are located
### say
```gdscript
func say(character: String, params: Dictionary) -> var
```
A short one line dialog
#### Parameters
- character: Character that is talking
- params: A dictionary of parameters. Currently only "line" is supported and
holds the line the character should say
### finish\_fast
```gdscript
func finish_fast() -> void
```
Called when a dialog line is skipped
### start\_dialog\_choices
```gdscript
func start_dialog_choices(dialog: ESCDialog)
```
Display a list of choices
### play\_dialog\_option\_chosen
```gdscript
func play_dialog_option_chosen(option: ESCDialogOption)
```
Called when an option was chosen
## Signals
- signal option_chosen(option): Emitted when an answer as chosem
##### Parameters
- option: The dialog option that was chosen
- signal dialog_line_finished(): Emitted when a dialog line was finished

98
docs/api/ESCEvent.md Normal file
View File

@@ -0,0 +1,98 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCEvent
**Extends:** [ESCStatement](../ESCStatement) < [Object](../Object)
## Description
An event in the ESC language
Events are triggered from various sources. Common events include
* :setup Called every time when visiting a scene
* :ready Called the first time a scene is visited
* :use <global id> Called from the current item when it is used with the item
with the global id <global id>
## Constants Descriptions
### FLAG\_CUT\_BLACK
```gdscript
const FLAG_CUT_BLACK: int = 16
```
### FLAG\_LEAVE\_BLACK
```gdscript
const FLAG_LEAVE_BLACK: int = 32
```
### FLAG\_NO\_HUD
```gdscript
const FLAG_NO_HUD: int = 4
```
### FLAG\_NO\_SAVE
```gdscript
const FLAG_NO_SAVE: int = 8
```
### FLAG\_NO\_TT
```gdscript
const FLAG_NO_TT: int = 2
```
### FLAG\_TK
```gdscript
const FLAG_TK: int = 1
```
### REGEX
```gdscript
const REGEX: String = "^:(?<name>[^|]+)( \\|(?<flags>( (TK|NO_TT|NO_HUD|NO_SAVE|CUT_BLACK|LEAVE_BLACK))+))?$"
```
Regex identifying an ESC event
## Property Descriptions
### name
```gdscript
var name: String
```
Name of event
### flags
```gdscript
var flags: int = 0
```
Flags set to this event
## Method Descriptions
### \_init
```gdscript
func _init(event_string: String)
```
Create a new event from an event line
### run
```gdscript
func run() -> int
```
Execute this statement and return its return code

View File

@@ -0,0 +1,49 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCEventManager
**Extends:** [Node](../Node)
## Description
A manager for running events
## Property Descriptions
### events\_queue
```gdscript
var events_queue: Array
```
A queue of events to run
### scheduled\_events
```gdscript
var scheduled_events: Array
```
A list of currently scheduled events
## Method Descriptions
### queue\_event
```gdscript
func queue_event(event: ESCEvent) -> void
```
Queue a new event to run
### schedule\_event
```gdscript
func schedule_event(event: ESCEvent, timeout: float) -> void
```
Schedule an event to run after a timeout
## Signals
- signal event_finished(event_name, return_code): Emitted when the event did finish running

59
docs/api/ESCExecution.md Normal file
View File

@@ -0,0 +1,59 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCExecution
**Extends:** [Object](../Object)
## Description
Basic features and informations about ESC executions
## Constants Descriptions
### RC\_CANCEL
```gdscript
const RC_OK: int = 0
```
Return codes handled by events
* RC_OK: Event run okay
* RC_CANCEL: Cancel all scheduled and queued events
* RC_ERROR: Error running a command
* RC_REPEAT: Repeat the current scope from the beginning
### RC\_ERROR
```gdscript
const RC_OK: int = 0
```
Return codes handled by events
* RC_OK: Event run okay
* RC_CANCEL: Cancel all scheduled and queued events
* RC_ERROR: Error running a command
* RC_REPEAT: Repeat the current scope from the beginning
### RC\_OK
```gdscript
const RC_OK: int = 0
```
Return codes handled by events
* RC_OK: Event run okay
* RC_CANCEL: Cancel all scheduled and queued events
* RC_ERROR: Error running a command
* RC_REPEAT: Repeat the current scope from the beginning
### RC\_REPEAT
```gdscript
const RC_OK: int = 0
```
Return codes handled by events
* RC_OK: Event run okay
* RC_CANCEL: Cancel all scheduled and queued events
* RC_ERROR: Error running a command
* RC_REPEAT: Repeat the current scope from the beginning

247
docs/api/ESCGame.md Normal file
View File

@@ -0,0 +1,247 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCGame
**Extends:** [Node2D](../Node2D)
## Description
A base class for ESC game scenes
An extending class can be used in the project settings and is responsible
for managing very basic game features and controls
## Enumerations
### EDITOR\_GAME\_DEBUG\_DISPLAY
```gdscript
const EDITOR_GAME_DEBUG_DISPLAY: Dictionary = {"MOUSE_TOOLTIP_LIMITS":1,"NONE":0}
```
Editor debug modes
NONE - No debugging
MOUSE_TOOLTIP_LIMITS - Visualize the tooltip limits
## Property Descriptions
### mouse\_tooltip\_margin
```gdscript
export var mouse_tooltip_margin = 50
```
The safe margin around tooltips
### tooltip\_node
```gdscript
var tooltip_node: Object
```
A reference to the node handling tooltips
### editor\_debug\_mode
```gdscript
export var editor_debug_mode = 0
```
Which (if any) debug mode for the editor is used
## Method Descriptions
### left\_click\_on\_bg
```gdscript
func left_click_on_bg(position: Vector2) -> void
```
Called when the player left clicks on the background
(Needs to be overridden, if supported)
#### Parameters
- position: Position clicked
### right\_click\_on\_bg
```gdscript
func right_click_on_bg(position: Vector2) -> void
```
Called when the player right clicks on the background
(Needs to be overridden, if supported)
#### Parameters
- position: Position clicked
### left\_double\_click\_on\_bg
```gdscript
func left_double_click_on_bg(position: Vector2) -> void
```
Called when the player double clicks on the background
(Needs to be overridden, if supported)
#### Parameters
- position: Position clicked
### element\_focused
```gdscript
func element_focused(element_id: String) -> void
```
Called when an element in the scene was focused
(Needs to be overridden, if supported)
#### Parameters
- element_id: Global id of the element focused
### element\_unfocused
```gdscript
func element_unfocused() -> void
```
Called when no element is focused anymore
(Needs to be overridden, if supported)
### left\_click\_on\_item
```gdscript
func left_click_on_item(item_global_id: String, event: InputEvent) -> void
```
Called when an item was left clicked
(Needs to be overridden, if supported)
#### Parameters
- item_global_id: Global id of the item that was clicked
- event: The received input event
### right\_click\_on\_item
```gdscript
func right_click_on_item(item_global_id: String, event: InputEvent) -> void
```
Called when an item was right clicked
(Needs to be overridden, if supported)
#### Parameters
- item_global_id: Global id of the item that was clicked
- event: The received input event
### left\_double\_click\_on\_item
```gdscript
func left_double_click_on_item(item_global_id: String, event: InputEvent) -> void
```
### left\_click\_on\_inventory\_item
```gdscript
func left_click_on_inventory_item(inventory_item_global_id: String, event: InputEvent) -> void
```
### right\_click\_on\_inventory\_item
```gdscript
func right_click_on_inventory_item(inventory_item_global_id: String, event: InputEvent) -> void
```
### left\_double\_click\_on\_inventory\_item
```gdscript
func left_double_click_on_inventory_item(inventory_item_global_id: String, event: InputEvent) -> void
```
### inventory\_item\_focused
```gdscript
func inventory_item_focused(inventory_item_global_id: String) -> void
```
Called when an inventory item was focused
(Needs to be overridden, if supported)
#### Parameters
- inventory_item_global_id: Global id of the inventory item that was focused
### inventory\_item\_unfocused
```gdscript
func inventory_item_unfocused() -> void
```
Called when no inventory item is focused anymore
(Needs to be overridden, if supported)
### open\_inventory
```gdscript
func open_inventory()
```
Called when the inventory was opened
(Needs to be overridden, if supported)
### close\_inventory
```gdscript
func close_inventory()
```
Called when the inventory was closed
(Needs to be overridden, if supported)
### mousewheel\_action
```gdscript
func mousewheel_action(direction: int)
```
Called when the mousewheel was used
(Needs to be overridden, if supported)
#### Parameter
- direction: The direction in which the mouse wheel was rotated
### hide\_ui
```gdscript
func hide_ui()
```
Called when the UI should be hidden
(Needs to be overridden, if supported)
### show\_ui
```gdscript
func show_ui()
```
Called when the UI should be shown
(Needs to be overridden, if supported)
### update\_tooltip\_following\_mouse\_position
```gdscript
func update_tooltip_following_mouse_position(p_position: Vector2)
```
Function is called if Project setting escoria/ui/tooltip_follows_mouse = true
#### Parameters
- p_position: Position of the mouse

View File

@@ -0,0 +1,97 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCGlobalsManager
**Extends:** [Resource](../Resource)
## Description
A resource that manages the ESC global states
The ESC global state is basically simply a dictionary of keys with
values. Values can be bool, integer or strings
## Constants Descriptions
### RESERVED\_GLOBALS
```gdscript
const RESERVED_GLOBALS: Array = ["ESC_LAST_SCENE"]
```
A list of reserved globals which can not be overridden
## Method Descriptions
### has
```gdscript
func has(key: String) -> bool
```
Check if a global was registered
#### Parameters
- key: The global key to check
**Returns** Wether the global was registered
### get\_global
```gdscript
func get_global(key: String)
```
Get the current value of a global
#### Parameters
- key: The key of the global to return the value
**Returns** The value of the global
### filter
```gdscript
func filter(pattern: String) -> Dictionary
```
Filter the globals and return all matching keys and their values as
a dictionary
Check out [the Godot docs](https://docs.godotengine.org/en/stable/classes/class_string.html#class-string-method-match)
for the pattern format
#### Parameters
- pattern: The pattern that the keys have to match
**Returns** A dictionary of matching keys and their values
### set\_global
```gdscript
func set_global(key: String, value, ignore_reserved: bool = false) -> void
```
Set the value of a global
#### Parameters
- key: The key of the global to modify
- value: The new value
### set\_global\_wildcard
```gdscript
func set_global_wildcard(pattern: String, value) -> void
```
Set all globals that match the pattern to the value
Check out [the Godot docs](https://docs.godotengine.org/en/stable/classes/class_string.html#class-string-method-match)
for the pattern format
#### Parameters
- pattern: The wildcard pattern to match
- value: The new value
## Signals
- signal global_changed(global, old_value, new_value): Emitted when a global is changed

40
docs/api/ESCGroup.md Normal file
View File

@@ -0,0 +1,40 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCGroup
**Extends:** [ESCStatement](../ESCStatement) < [Object](../Object)
## Description
A group of ESC commands
## Constants Descriptions
### REGEX
```gdscript
const REGEX: String = "^([^>]*)>\\s*(\\[(?<conditions>[^\\]]+)\\])?$"
```
A RegEx identifying a group
## Property Descriptions
### conditions
```gdscript
var conditions: Array
```
A list of ESCConditions to run this group
Conditions are combined using logical AND
## Method Descriptions
### \_init
```gdscript
func _init(group_string: String)
```
Construct an ESC group of an ESC script line

47
docs/api/ESCInventory.md Normal file
View File

@@ -0,0 +1,47 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCInventory
**Extends:** [Control](../Control)
## Description
Manages the inventory on the GUI connected to the inventory_ui_container
variable
## Property Descriptions
### inventory\_ui\_container
```gdscript
export var inventory_ui_container = ""
```
Define the actual container node to add items as children of.
Should be a Container.
### items\_ids\_in\_inventory
```gdscript
var items_ids_in_inventory: Dictionary
```
A registry of inventory ESCInventoryItem nodes
## Method Descriptions
### add\_new\_item\_by\_id
```gdscript
func add_new_item_by_id(item_id: String) -> void
```
add item to Inventory UI using its id set in its scene
### remove\_item\_by\_id
```gdscript
func remove_item_by_id(item_id: String) -> void
```
remove item fromInventory UI using its id set in its scene

View File

@@ -0,0 +1,44 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCInventoryItem
**Extends:** [TextureButton](../TextureButton)
## Description
The inventory representation of an ESC item if pickable
## Property Descriptions
### global\_id
```gdscript
var global_id
```
Global ID of the ESCItem that uses this ESCInventoryItem
Will be set by ESCItem automatically
## Signals
- signal mouse_left_inventory_item(item_id): Signal emitted when the item was left clicked
#### Parameters
- item_id: Global ID of the clicked item
- signal mouse_right_inventory_item(item_id): Signal emitted when the item was right clicked
#### Parameters
- item_id: Global ID of the clicked item
- signal mouse_double_left_inventory_item(item_id): Signal emitted when the item was double clicked
#### Parameters
- item_id: Global ID of the clicked item
- signal inventory_item_focused(item_id): Signal emitted when the item was focused
#### Parameters
- item_id: Global ID of the clicked item
- signal inventory_item_unfocused(): Signal emitted when the item is not focused anymore

View File

@@ -0,0 +1,57 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCInventoryManager
**Extends:** [Object](../Object)
## Description
A manager for inventory objects
## Method Descriptions
### inventory\_has
```gdscript
func inventory_has(item: String) -> bool
```
Check if the player has an inventory item
#### Parameters
- item: Inventory item id
**Returns** Wether the player has the inventory
### items\_in\_inventory
```gdscript
func items_in_inventory() -> Array
```
Get all inventory items
**Returns** The items in the inventory
### remove\_item
```gdscript
func remove_item(item: String)
```
Remove an item from the inventory
#### Parameters
- item: Inventory item id
### add\_item
```gdscript
func add_item(item: String)
```
Add an item to the inventory
#### Parameters
- item: Inventory item id

386
docs/api/ESCItem.md Normal file
View File

@@ -0,0 +1,386 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCItem
**Extends:** [Area2D](../Area2D)
## Description
ESCItem is a Sprite that defines an item, potentially interactive
## Property Descriptions
### global\_id
```gdscript
export var global_id = ""
```
The global ID of this item
### esc\_script
```gdscript
export var esc_script = ""
```
The ESC script for this item
### is\_exit
```gdscript
export var is_exit = false
```
If true, the ESC script may have an ":exit_scene" event to manage scene changes
### is\_trigger
```gdscript
export var is_trigger = false
```
If true, object is considered as trigger. Allows using :trigger_in and
:trigger_out verbs in ESC scripts.
### trigger\_in\_verb
```gdscript
export var trigger_in_verb = "trigger_in"
```
The verb used for the trigger in ESC events
### trigger\_out\_verb
```gdscript
export var trigger_out_verb = "trigger_out"
```
The verb used for the trigger out ESC events
### is\_interactive
```gdscript
export var is_interactive = true
```
If true, the player can interact with this item
### is\_movable
```gdscript
export var is_movable = false
```
Wether this item is movable
### player\_orients\_on\_arrival
```gdscript
export var player_orients_on_arrival = true
```
If true, player orients towards 'interaction_direction' as
player character arrives.
### interaction\_direction
```gdscript
export var interaction_direction = 0
```
Let the player turn to this direction when the player arrives at the
item
### tooltip\_name
```gdscript
export var tooltip_name = ""
```
The name for the tooltip of this item
### default\_action
```gdscript
export var default_action = ""
```
Default action to use if object is not in the inventory
### default\_action\_inventory
```gdscript
export var default_action_inventory = ""
```
Default action to use if object is in the inventory
### combine\_if\_action\_used\_among
```gdscript
export var combine_if_action_used_among = []
```
If action used by player is in this list, the game will wait for a second
click on another item to combine objects together (typical
`USE <X> WITH <Y>`, `GIVE <X> TO <Y>`)
### combine\_is\_one\_way
```gdscript
export var combine_is_one_way = false
```
If true, combination must be done in the way it is written in ESC script
ie. :use ON_ITEM
If false, combination will be tried in the other way.
### use\_from\_inventory\_only
```gdscript
export var use_from_inventory_only = false
```
If true, then the object must have been picked up before using it.
A false value is useful for items in the background, such as buttons.
### inventory\_item\_scene\_file
```gdscript
export var inventory_item_scene_file: PackedScene = "[Object:null]"
```
Scene based on ESCInventoryItem used in inventory for the object if it is
picked up, that displays and handles the item
### dialog\_color
```gdscript
export var dialog_color = "0,0,0,1"
```
Color used for dialogs
### dont\_apply\_terrain\_scaling
```gdscript
export var dont_apply_terrain_scaling = false
```
If true, terrain scaling will not be applied and
node will remain at the scale set in the scene.
### speed
```gdscript
export var speed: int = 300
```
Speed of this item ifmovable
### v\_speed\_damp
```gdscript
export var v_speed_damp: float = 1
```
Speed damp of this item if movable
### animations
```gdscript
export var animations = "[Object:null]"
```
 Animations script (for walking, idling...)
### animation\_sprite
```gdscript
var animation_sprite
```
Reference to the animation node (null if none was found)
### terrain
```gdscript
var terrain: ESCTerrain
```
Reference to the current terrain
### collision
```gdscript
var collision: Node
```
Reference to this items collision shape node
### inventory\_item
```gdscript
var inventory_item: ESCInventoryItem
```
The representation of this item in the scene. Will
be loaded, if inventory_item_scene_file is set.
## Method Descriptions
### get\_animation\_player
```gdscript
func get_animation_player()
```
Return the animation player node
### get\_interact\_position
```gdscript
func get_interact_position() -> Vector2
```
Return the position the player needs to walk to to interact with this
item. That can either be a direct Position2D child or a collision shape
**Returns** The interaction position
### manage\_input
```gdscript
func manage_input(_viewport: Viewport, event: InputEvent, _shape_idx: int) -> void
```
### element\_entered
```gdscript
func element_entered(body)
```
Another item (e.g. the player) has entered this item
#### Parameters
- body: Other object that has entered the item
### element\_exited
```gdscript
func element_exited(body)
```
Another item (e.g. the player) has exited this element
#### Parameters
- body: Other object that has entered the item
### teleport
```gdscript
func teleport(target: Node) -> void
```
Use the movable node to teleport this item to the target item
#### Parameters
- target: Target item to teleport to
### walk\_to
```gdscript
func walk_to(pos: Vector2, p_walk_context: ESCWalkContext = null) -> void
```
Use the movable node to make the item walk to the given position
#### Parameters
- pos: Position to walk to
- p_walk_context: Walk context to use
### set\_speed
```gdscript
func set_speed(speed_value: int) -> void
```
Set the moving speed
#### Parameters
- speed_value: Set the new speed
### has\_moved
```gdscript
func has_moved() -> bool
```
Check wether this item moved
### set\_angle
```gdscript
func set_angle(deg: int, immediate = true)
```
Set the angle
#### Parameters
Set the angle
### start\_talking
```gdscript
func start_talking()
```
Play the talking animation
### stop\_talking
```gdscript
func stop_talking()
```
Stop playing the talking animation
## Signals
- signal mouse_entered_item(item): Emitted when the mouse has entered this item
#### Parameters
- items: The inventory item node
- signal mouse_exited_item(item): Emitted when the mouse has exited this item
#### Parameters
- items: The inventory item node
- signal mouse_left_clicked_item(global_id): Emitted when the item was left cliced
#### Parameters
- global_id: ID of this item
- signal mouse_double_left_clicked_item(global_id): Emitted when the item was double cliced
#### Parameters
- global_id: ID of this item
- signal mouse_right_clicked_item(global_id): Emitted when the item was right cliced
#### Parameters
- global_id: ID of this item
- signal arrived(walk_context): Emitted when the item walked to a destination
#### Parameters
- walk_context: The walk context of the command

135
docs/api/ESCLogger.md Normal file
View File

@@ -0,0 +1,135 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCLogger
**Extends:** [Object](../Object)
## Description
Logging framework for Escoria
## Constants Descriptions
### LOG\_DEBUG
```gdscript
const LOG_ERROR: int = 0
```
Valid log levels
### LOG\_ERROR
```gdscript
const LOG_ERROR: int = 0
```
Valid log levels
### LOG\_INFO
```gdscript
const LOG_ERROR: int = 0
```
Valid log levels
### LOG\_WARNING
```gdscript
const LOG_ERROR: int = 0
```
Valid log levels
## Property Descriptions
### warning\_path
```gdscript
var warning_path: String
```
The path of the ESC file that was reported last (used for removing
duplicate warnings
## Method Descriptions
### debug
```gdscript
func debug(string: String, args)
```
Log a debug message
#### Parameters
* string: Text to log
* args: Additional information
### info
```gdscript
func info(string: String, args)
```
Log an info message
#### Parameters
* string: Text to log
* args: Additional information
### warning
```gdscript
func warning(string: String, args)
```
Log a warning message
#### Parameters
* string: Text to log
* args: Additional information
### error
```gdscript
func error(string: String, args)
```
Log an error message
#### Parameters
* string: Text to log
* args: Additional information
### report\_warnings
```gdscript
func report_warnings(p_path: String, warnings: Array, report_once = false) -> void
```
Log a warning message about an ESC file
#### Parameters
* p_path: Path to the file
* warnings: Array of warnings to put out
* report_once: Additional messages about the same file will be ignored
### report\_errors
```gdscript
func report_errors(p_path: String, errors: Array) -> void
```
Log an error message about an ESC file
#### Parameters
* p_path: Path to the file
* errors: Array of errors to put out

View File

@@ -1,6 +1,6 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# Movable
# ESCMovable
**Extends:** [Node](../Node)
@@ -9,6 +9,19 @@
Node that performs the moving (walk, teleport, terrain scaling...) actions on
its parent node.
## Enumerations
### MovableTask
```gdscript
const MovableTask: Dictionary = {"NONE":0,"SLIDE":2,"WALK":1}
```
Tasks carried out by this walkable node
NONE - The node is inactive
WALK - The node walks the parent somewhere
SLIDE - The node slides the parent somewhere
## Property Descriptions
### walk\_path
@@ -38,12 +51,10 @@ The destination where the character should be moving to
### walk\_context
```gdscript
var walk_context: Dictionary
var walk_context: ESCWalkContext
```
A dictionary with context information about the walk command
fast => Wether to walk fast or slow
target => Walk target
The walk context currently carried out by this movable node
### moved
@@ -99,7 +110,15 @@ Shortcut variable that references the node's parent
var bypass_missing_animation
```
 If character misses an animation, bypass it and proceed.
If character misses an animation, bypass it and proceed.
### task
```gdscript
var task
```
Currenly running task
## Method Descriptions
@@ -120,7 +139,7 @@ can be removed
### walk\_to
```gdscript
func walk_to(pos: Vector2, p_walk_context = null) -> void
func walk_to(pos: Vector2, p_walk_context: ESCWalkContext = null) -> void
```
Walk to a given position

81
docs/api/ESCObject.md Normal file
View File

@@ -0,0 +1,81 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCObject
**Extends:** [Node](../Node)
## Description
An object handled in Escoria
## Property Descriptions
### global\_id
```gdscript
var global_id: String
```
The global id of the object
### active
```gdscript
var active: bool = true
```
Wether the object is active (visible to the player)
### interactive
```gdscript
var interactive: bool = true
```
Wether the object is interactive (clickable by the player)
### state
```gdscript
var state: String = "default"
```
The state of the object. If the object has a respective animation,
it will be played
### events
```gdscript
var events: Dictionary
```
The events registered with the object
### node
```gdscript
var node: Node
```
The node in the scene. Can be an ESCItem or an ESCCamera
## Method Descriptions
### \_init
```gdscript
func _init(p_global_id: String, p_node: Node)
```
### set\_state
```gdscript
func set_state(p_state: String, immediate: bool = false)
```
Set the state and start a possible animation
#### Parameters
- p_state: State to set
- immediate: If true, skip directly to the end

View File

@@ -0,0 +1,75 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCObjectManager
**Extends:** [Node](../Node)
## Description
A manager for ESC objects
## Constants Descriptions
### RESERVED\_OBJECTS
```gdscript
const RESERVED_OBJECTS: Array = ["bg_music"]
```
## Property Descriptions
### objects
```gdscript
var objects: Dictionary
```
The hash of registered objects (the global id is the key)
## Method Descriptions
### register\_object
```gdscript
func register_object(object: ESCObject, force: bool = false) -> void
```
Register the object in the manager
#### Parameters
- object: Obejct to register
- force: Register the object, even if it has already been registered
### has
```gdscript
func has(global_id: String) -> bool
```
Check wether an object was registered
#### Parameters
- global_id: Global ID of object
**Returns** Wether the object exists in the object registry
### get\_object
```gdscript
func get_object(global_id: String) -> ESCObject
```
Get the object from the object registry
### unregister\_object
```gdscript
func unregister_object(object: ESCObject) -> void
```
Remove an object from the registry
#### Parameters
- object: The object to unregister

34
docs/api/ESCPlayer.md Normal file
View File

@@ -0,0 +1,34 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCPlayer
**Extends:** [ESCItem](../ESCItem) < [Area2D](../Area2D)
## Description
A playable character
TODO
- Currently the sprite node needs to be named "sprite". This is bad.
- Animation management doesn't allow using AnimationPlayer yet. Need to find
the best solution to manage both AnimatedSprite and AnimationPlayer.
## Property Descriptions
### camera\_position\_node
```gdscript
export var camera_position_node = ""
```
The node that references the camera position
## Method Descriptions
### get\_camera\_pos
```gdscript
func get_camera_pos()
```
Return the camera position if a camera_position_node exists or the
global position of the player

View File

@@ -0,0 +1,123 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCResourceCache
**Extends:** [Object](../Object)
## Description
A cache for resources
## Property Descriptions
### thread
```gdscript
var thread: Thread
```
### mutex
```gdscript
var mutex: Mutex
```
### sem
```gdscript
var sem: Semaphore
```
### queue
```gdscript
var queue: Array
```
### pending
```gdscript
var pending: Dictionary
```
## Method Descriptions
### queue\_resource
```gdscript
func queue_resource(path: String, p_in_front: bool = false, p_permanent: bool = false)
```
### cancel\_resource
```gdscript
func cancel_resource(path)
```
### clear
```gdscript
func clear()
```
### get\_progress
```gdscript
func get_progress(path)
```
### is\_ready
```gdscript
func is_ready(path)
```
### get\_resource
```gdscript
func get_resource(path)
```
### thread\_process
```gdscript
func thread_process()
```
### thread\_func
```gdscript
func thread_func(u)
```
warning-ignore:unused_argument
### print\_progress
```gdscript
func print_progress(p_path, p_progress)
```
### res\_loaded
```gdscript
func res_loaded(p_path)
```
### print\_queue\_progress
```gdscript
func print_queue_progress(p_queue_size)
```
### start
```gdscript
func start()
```
## Signals
- signal resource_loading_progress(path, progress):
- signal resource_loading_done(path):
- signal resource_queue_progress(queue_size):

109
docs/api/ESCRoom.md Normal file
View File

@@ -0,0 +1,109 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCRoom
**Extends:** [Node2D](../Node2D)
## Description
A room in an Escora based game
## Enumerations
### EditorRoomDebugDisplay
```gdscript
const EditorRoomDebugDisplay: Dictionary = {"CAMERA_LIMITS":1,"NONE":0}
```
Debugging displays for a room
NONE: No debug display
CAMERA_LIMITS: Display the camera limits
## Property Descriptions
### global\_id
```gdscript
export var global_id = ""
```
The global id of this room
### esc\_script
```gdscript
export var esc_script = ""
```
The ESC script of this room
### player\_scene
```gdscript
export var player_scene = "[Object:null]"
```
The player inside this scene
### camera\_limits
```gdscript
export var camera_limits: Array = ["(0, 0, 0, 0)"]
```
- **Setter**: `set_camera_limits`
The camera limits available in this room
### editor\_debug\_mode
```gdscript
export var editor_debug_mode = 0
```
- **Setter**: `set_editor_debug_mode`
The editor debug display mode
### player
```gdscript
var player
```
The player scene instance
### game
```gdscript
var game
```
The game scene instance
## Method Descriptions
### set\_camera\_limits
```gdscript
func set_camera_limits(p_camera_limits: Array) -> void
```
Set the camera limits
#### Parameters
- p_camera_limits: An array of Rect2Ds as camera limits
### set\_editor\_debug\_mode
```gdscript
func set_editor_debug_mode(p_editor_debug_mode: int) -> void
```
Set the editor debug mode
#### Parameters
- p_editor_debug_mode: The debug mode to set for the room

View File

@@ -0,0 +1,37 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCScheduledEvent
**Extends:** [Object](../Object)
## Description
An event that is scheduled to run later
## Property Descriptions
### event
```gdscript
var event: ESCEvent
```
Event to run when timeout is reached
### timeout
```gdscript
var timeout: float
```
The number of seconds until the event is run
## Method Descriptions
### \_init
```gdscript
func _init(p_event: ESCEvent, p_timeout: float)
```
Create a new scheduled event

19
docs/api/ESCScript.md Normal file
View File

@@ -0,0 +1,19 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCScript
**Extends:** [Object](../Object)
## Description
A compiled ESC script
## Property Descriptions
### events
```gdscript
var events: Dictionary
```
A dictionary of ESCEvents in this script

41
docs/api/ESCStatement.md Normal file
View File

@@ -0,0 +1,41 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCStatement
**Extends:** [Object](../Object)
## Description
A statement in an ESC file
## Property Descriptions
### statements
```gdscript
var statements: Array
```
The list of ESC commands
## Method Descriptions
### is\_valid
```gdscript
func is_valid() -> bool
```
Check wether the statement should be run based on its conditions
### run
```gdscript
func run() -> var
```
Execute this statement and return its return code
## Signals
- signal finished(return_code): Emitted when the event did finish running

143
docs/api/ESCTerrain.md Normal file
View File

@@ -0,0 +1,143 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCTerrain
**Extends:** [Navigation2D](../Navigation2D)
## Description
A walkable Terrains
## Enumerations
### DebugMode
```gdscript
const DebugMode: Dictionary = {"LIGHTMAP":2,"NONE":0,"SCALES":1}
```
Visualize scales or the lightmap for debugging purposes
## Property Descriptions
### scales
```gdscript
export var scales = "[Object:null]"
```
Scaling texture
### scale\_min
```gdscript
export var scale_min = 0.3
```
Minimum scaling
### scale\_max
```gdscript
export var scale_max = 1
```
Maximum scaling
### lightmap
```gdscript
export var lightmap = "[Object:null]"
```
Lightmap texture
### bitmaps\_scale
```gdscript
export var bitmaps_scale = "(1, 1)"
```
The scaling factor for the scale and light maps
### player\_speed\_multiplier
```gdscript
export var player_speed_multiplier = 1
```
Multiplier applied to the player speed on this terrain
### player\_doubleclick\_speed\_multiplier
```gdscript
export var player_doubleclick_speed_multiplier = 1.5
```
Multiplier how much faster the player will walk when fast mode is on
(double clicked)
### lightmap\_modulate
```gdscript
export var lightmap_modulate = "1,1,1,1"
```
Additional modulator to the lightmap texture
### debug\_mode
```gdscript
export var debug_mode = 0
```
Currently selected debug visualize mode
### current\_active\_navigation\_instance
```gdscript
var current_active_navigation_instance: NavigationPolygonInstance
```
The currently activ navigation polygon
## Method Descriptions
### get\_light
```gdscript
func get_light(pos: Vector2) -> Color
```
Return the Color of the lightmap pixel for the specified position
#### Parameters
- pos: Position to calculate lightmap for
**Returns** The color of the given point
### get\_scale\_range
```gdscript
func get_scale_range(factor: float) -> Vector2
```
Calculate the scale inside the scale range for a given scale factor
#### Parameters
- factor: The factor for the scaling according to the scale map
**Returns** The scaling
### get\_terrain
```gdscript
func get_terrain(pos: Vector2) -> float
```
Get the terrain scale factor for a given position
#### Parameters
- pos: The position to calculate for
**Returns** The scale factor for the given position

186
docs/api/ESCTooltip.md Normal file
View File

@@ -0,0 +1,186 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCTooltip
**Extends:** [RichTextLabel](../RichTextLabel)
## Description
## Constants Descriptions
### MAX\_HEIGHT
```gdscript
const MAX_HEIGHT: int = 500
```
### MAX\_WIDTH
```gdscript
const MAX_WIDTH: int = 200
```
### MIN\_HEIGHT
```gdscript
const MIN_HEIGHT: int = 30
```
### ONE\_LINE\_HEIGHT
```gdscript
const ONE_LINE_HEIGHT: int = 16
```
## Property Descriptions
### current\_action
```gdscript
var current_action: String
```
Infinitive verb
### current\_target
```gdscript
var current_target: String
```
- **Setter**: `set_target`
Target item/hotspot
### current\_prep
```gdscript
var current_prep: String = "with"
```
Preposition: on, with...
### current\_target2
```gdscript
var current_target2: String
```
Target 2 item/hotspot
### waiting\_for\_target2
```gdscript
var waiting_for_target2
```
True if tooltip is waiting for a click on second target (use x with y)
### color
```gdscript
export var color = "0,0,0,1"
```
- **Setter**: `set_color`
### offset\_from\_cursor
```gdscript
export var offset_from_cursor = "(10, 0)"
```
### debug\_mode
```gdscript
export var debug_mode = false
```
- **Setter**: `set_debug_mode`
### debug\_texturerect\_node
```gdscript
var debug_texturerect_node: TextureRect
```
## Method Descriptions
### get\_class
```gdscript
func get_class()
```
### set\_color
```gdscript
func set_color(p_color: Color)
```
### set\_debug\_mode
```gdscript
func set_debug_mode(p_debug_mode: bool)
```
### on\_action\_selected
```gdscript
func on_action_selected() -> void
```
### set\_target
```gdscript
func set_target(target: String, needs_second_target: bool = false) -> void
```
### set\_target2
```gdscript
func set_target2(target2: String) -> void
```
### update\_tooltip\_text
```gdscript
func update_tooltip_text()
```
### update\_size
```gdscript
func update_size()
```
### tooltip\_distance\_to\_edge\_top
```gdscript
func tooltip_distance_to_edge_top(position: Vector2)
```
### tooltip\_distance\_to\_edge\_bottom
```gdscript
func tooltip_distance_to_edge_bottom(position: Vector2)
```
### tooltip\_distance\_to\_edge\_left
```gdscript
func tooltip_distance_to_edge_left(position: Vector2)
```
### tooltip\_distance\_to\_edge\_right
```gdscript
func tooltip_distance_to_edge_right(position: Vector2)
```
### clear
```gdscript
func clear()
```

65
docs/api/ESCUtils.md Normal file
View File

@@ -0,0 +1,65 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCUtils
**Extends:** [Object](../Object)
## Description
A set of common utilities
## Method Descriptions
### get\_deg\_from\_rad
```gdscript
func get_deg_from_rad(rad_angle: float)
```
Convert radians to degrees
#### Parameters
- rad_angle: Angle in radians
**Returns** Degrees
### get\_re\_group
```gdscript
func get_re_group(re_match: RegExMatch, group: String) -> String
```
Get the content of a reg exp group by name
#### Parameters
- re_match: The RegExMatch object
- group: The name of the group
**Returns** The value of the named regex group in the match
### get\_typed\_value
```gdscript
func get_typed_value(value: String)
```
Return a string value in the correct infered type
#### Parameters
- value: The original value
**Returns** The typed value according to the type inference
### sanitize\_whitespace
```gdscript
func sanitize_whitespace(value: String) -> String
```
Sanitize use of whitespaces in a string. Removes double whitespaces
and converts tabs into space.
#### Paramters
- value: String to work on
**Returns** the string with sanitized whitespaces

View File

@@ -0,0 +1,45 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# ESCWalkContext
**Extends:** [Object](../Object)
## Description
The walk context describes the target of a walk command and if that command
should be executed fast
## Property Descriptions
### target\_object
```gdscript
var target_object: ESCObject
```
Target object that the walk command tries to reach
### target\_position
```gdscript
var target_position: Vector2 = "(0, 0)"
```
The target position
### fast
```gdscript
var fast: bool
```
Wether to move fast
## Method Descriptions
### \_init
```gdscript
func _init(p_target_object: ESCObject, p_target_position: Vector2, p_fast: bool)
```

View File

@@ -0,0 +1,32 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# EnableTerrainCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`enable_terrain node_name`
Enable the ESCTerrain's NavigationPolygonInstance defined by given node name.
Disables previously activated NavigationPolygonInstance.
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

View File

@@ -0,0 +1,35 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# GameOverCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`game_over continue_enabled show_credits`
Ends the game. Use the "continue_enabled" parameter to enable or disable the
continue button in the main menu afterwards. The "show_credits" parameter
loads the ui/end_credits scene if true. You can configure it to your regular
credits scene if you want.
@STUB
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

View File

@@ -0,0 +1,40 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# IncGlobalCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`inc_global name value`
Adds the value to global with given "name". Value and global must both be
integers.
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### validate
```gdscript
func validate(arguments: Array)
```
Validate wether the given arguments match the command descriptor
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

View File

@@ -0,0 +1,31 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# InventoryAddCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`inventory_add item`
Add an item to the inventory
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

View File

@@ -0,0 +1,31 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# InventoryRemoveCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`inventory_remove item`
Remove an item from the inventory.
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

View File

@@ -0,0 +1,34 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# PlaySndCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`play_snd object file [loop]`
Plays the sound specificed with the "file" parameter on the object, without
blocking. You can play background sounds, eg. during scene changes, with
`play_snd bg_snd res://...`
@STUB
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

View File

@@ -0,0 +1,42 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# QueueAnimationCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`queue_animation object animation`
Similar to queue_resource, queues the resources necessary to have an
animation loaded on an item. The resource paths are taken from the item
placeholders.
@STUB
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### validate
```gdscript
func validate(arguments: Array)
```
Validate wether the given arguments match the command descriptor
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

View File

@@ -0,0 +1,44 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# QueueResourceCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`queue_resource path [front_of_queue]`
Queues the load of a resource in a background thread. The `path` must be a
full path inside your game, for example "res://scenes/next_scene.tscn". The
"front_of_queue" parameter is optional (default value false), to put the
resource in the front of the queue. Queued resources are cleared when a
change scene happens (but after the scene is loaded, meaning you can queue
resources that belong to the next scene).
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### validate
```gdscript
func validate(arguments: Array) -> bool
```
Validate wether the given arguments match the command descriptor
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

32
docs/api/RepeatCommand.md Normal file
View File

@@ -0,0 +1,32 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# RepeatCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`repeat`
Restarts the execution of the current scope at the start. A scope can be a
group or an event.
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

36
docs/api/SayCommand.md Normal file
View File

@@ -0,0 +1,36 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# SayCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`say object text [type] [avatar]`
Runs the specified string as a dialog said by the object. Blocks execution
until the dialog finishes playing. Optional parameters:
* "type" determines the type of dialog UI to use. Default value is "default"
* "avatar" determines the avatar to use for the dialog. Default value is
"default"
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### run
```gdscript
func run(command_params: Array) -> var
```
Run the command

View File

@@ -0,0 +1,41 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# SchedEventCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`sched_event time object event`
Schedules the execution of an "event" found in "object" in a time in seconds.
If another event is running at the time, execution starts when the running
event ends.
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### validate
```gdscript
func validate(arguments: Array)
```
Validate wether the given arguments match the command descriptor
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

View File

@@ -0,0 +1,40 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# SetActiveCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`set_active object value`
Changes the "active" state of the object, value can be true or false.
Inactive objects are hidden in the scene.
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### validate
```gdscript
func validate(arguments: Array)
```
Validate wether the given arguments match the command descriptor
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

View File

@@ -0,0 +1,44 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# SetAngleCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`set_angle object degrees`
Turns object to a degrees angle without animations. 0 sets object facing
forward, 90 sets it 90 degrees clockwise ("east") etc. When turning to the
destination angle, animations are played if they're defined in animations.
object must be player or interactive. degrees must be between [0, 360] or an
error is reported.
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### validate
```gdscript
func validate(arguments: Array)
```
Validate wether the given arguments match the command descriptor
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

View File

@@ -0,0 +1,32 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# SetGlobalCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`set_global name value`
Changes the value of the global "name" with the value. Value can be "true",
"false" or an integer.
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

View File

@@ -0,0 +1,33 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# SetGlobalsCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`set_globals pattern value`
Changes the value of multiple globals using a wildcard pattern, where "*"
matches zero or more arbitrary characters and "?" matches any single
character except a period (".").
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

View File

@@ -0,0 +1,34 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# SetHudVisibleCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`set_hud_visible visible`
If you have a cutscene like sequence where the player doesn't have control,
and you also have HUD elements visible, use this to hide the HUD. You want
to do that because it explicitly signals the player that there is no control
over the game at the moment. "visible" is true or false.
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

View File

@@ -0,0 +1,39 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# SetInteractiveCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`set_interactive object value`
Sets whether or not an object should be interactive.
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### validate
```gdscript
func validate(arguments: Array)
```
Validate wether the given arguments match the command descriptor
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

View File

@@ -0,0 +1,44 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# SetSoundStateCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`set_sound_state player sound loop`
Change the sound playing on `player` to `sound` with optional looping if
`loop` is true.
Valid players are "bg_music" and "bg_sound".
Aside from paths to sound or music files, the values *off* and *default*.
*default* is the default value.
are also valid for `sound`
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### validate
```gdscript
func validate(arguments: Array)
```
Validate wether the given arguments match the command descriptor
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

View File

@@ -0,0 +1,39 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# SetSpeedCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`set_speed object speed`
Sets how fast object moves. Speed is an integer.
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### validate
```gdscript
func validate(arguments: Array)
```
Validate wether the given arguments match the command descriptor
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

View File

@@ -0,0 +1,42 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# SetStateCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`set_state object state [immediate]`
Changes the state of an object, and executes the state animation if present.
The command can be used to change the appearance of an item or a player
character.
If `immediate` is set to true, the animation is run directly
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### validate
```gdscript
func validate(arguments: Array)
```
Validate wether the given arguments match the command descriptor
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

View File

@@ -0,0 +1,43 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# SlideBlockCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`slide_block object1 object2 [speed]`
Moves object1 towards the position of object2, at the speed determined by
object1's "speed" property, unless overridden. This command is blocking.
It does not respect the room's navigation polygons, so you can move items
where the player can't walk.
@STUB
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### validate
```gdscript
func validate(arguments: Array)
```
Validate wether the given arguments match the command descriptor
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

43
docs/api/SlideCommand.md Normal file
View File

@@ -0,0 +1,43 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# SlideCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`slide object1 object2 [speed]`
Moves object1 towards the position of object2, at the speed determined by
object1's "speed" property, unless overridden. This command is non-blocking.
It does not respect the room's navigation polygons, so you can move items
where the player can't walk.
@STUB
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### validate
```gdscript
func validate(arguments: Array)
```
Validate wether the given arguments match the command descriptor
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

40
docs/api/SpawnCommand.md Normal file
View File

@@ -0,0 +1,40 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# SpawnCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`spawn path [object2]`
Instances a scene determined by "path", and places in the position of
object2 (object2 is optional)
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### validate
```gdscript
func validate(arguments: Array)
```
Validate wether the given arguments match the command descriptor
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

31
docs/api/StopCommand.md Normal file
View File

@@ -0,0 +1,31 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# StopCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`stop`
Stops the event's execution.
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

View File

@@ -0,0 +1,40 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# TeleportCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`teleport object1 object2
Sets the position of object1 to the position of object2.
FIXME re-add the angle parameter here
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### validate
```gdscript
func validate(arguments: Array)
```
Validate wether the given arguments match the command descriptor
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

45
docs/api/TurnToCommand.md Normal file
View File

@@ -0,0 +1,45 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# TurnToCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`turn_to object degrees`
Turns object to a degrees angle with a directions animation.
0 sets object facing forward, 90 sets it 90 degrees clockwise ("east") etc.
When turning to the destination angle, animations are played if they're
defined in animations. object must be player or interactive. degrees must
be between [0, 360] or an error is reported.
@STUB
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### validate
```gdscript
func validate(arguments: Array)
```
Validate wether the given arguments match the command descriptor
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

31
docs/api/WaitCommand.md Normal file
View File

@@ -0,0 +1,31 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# WaitCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`wait seconds`
Blocks execution of the current script for a number of seconds specified by the "seconds" parameter.
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### run
```gdscript
func run(command_params: Array) -> var
```
Run the command

View File

@@ -0,0 +1,41 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# WalkBlockCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`walk_block object1 object2 [speed]`
Walks, using the walk animation, object1 towards the position of object2,
at the speed determined by object1's "speed" property,
unless overridden. This command is blocking.
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### validate
```gdscript
func validate(arguments: Array)
```
Validate wether the given arguments match the command descriptor
### run
```gdscript
func run(command_params: Array) -> var
```
Run the command

41
docs/api/WalkCommand.md Normal file
View File

@@ -0,0 +1,41 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# WalkCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`walk object1 object2 [speed]`
Walks, using the walk animation, object1 towards the position of object2,
at the speed determined by object1's "speed" property,
unless overridden. This command is non-blocking.
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### validate
```gdscript
func validate(arguments: Array)
```
Validate wether the given arguments match the command descriptor
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

View File

@@ -0,0 +1,39 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# WalkToPosBlockCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`walk_to_pos_block player x y`
Makes the `player` walk to the position `x`/`y`. This is a blocking command.
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### validate
```gdscript
func validate(arguments: Array)
```
Validate wether the given arguments match the command descriptor
### run
```gdscript
func run(command_params: Array) -> var
```
Run the command

View File

@@ -0,0 +1,39 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# WalkToPosCommand
**Extends:** [ESCBaseCommand](../ESCBaseCommand) < [Node](../Node)
## Description
`walk_to_pos player x y`
Makes the `player` walk to the position `x`/`y`.
@ESC
## Method Descriptions
### configure
```gdscript
func configure() -> ESCCommandArgumentDescriptor
```
Return the descriptor of the arguments of this command
### validate
```gdscript
func validate(arguments: Array)
```
Validate wether the given arguments match the command descriptor
### run
```gdscript
func run(command_params: Array) -> int
```
Run the command

View File

@@ -0,0 +1,84 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# dialog\_box\_inset.gd
**Extends:** [PanelContainer](../PanelContainer)
## Description
## Property Descriptions
### current\_character
```gdscript
export var current_character = ""
```
- **Setter**: `set_current_character`
### avatar\_node
```gdscript
var avatar_node
```
### name\_node
```gdscript
var name_node
```
### text\_node
```gdscript
var text_node
```
### tween
```gdscript
var tween
```
### text\_speed\_per\_character
```gdscript
export var text_speed_per_character = 0.1
```
### fast\_text\_speed\_per\_character
```gdscript
export var fast_text_speed_per_character = 0.25
```
### max\_time\_to\_text\_disappear
```gdscript
export var max_time_to_text_disappear = 1
```
## Method Descriptions
### set\_current\_character
```gdscript
func set_current_character(name: String)
```
### say
```gdscript
func say(character: String, params: Dictionary)
```
### finish\_fast
```gdscript
func finish_fast()
```
## Signals
- signal dialog_line_started():
- signal dialog_line_finished():

View File

@@ -0,0 +1,66 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# dialog\_label.gd
**Extends:** [RichTextLabel](../RichTextLabel)
## Description
## Property Descriptions
### tween
```gdscript
var tween
```
### text\_node
```gdscript
var text_node
```
### text\_speed\_per\_character
```gdscript
export var text_speed_per_character = 0.1
```
### fast\_text\_speed\_per\_character
```gdscript
export var fast_text_speed_per_character = 0.25
```
### max\_time\_to\_text\_disappear
```gdscript
export var max_time_to_text_disappear = 2
```
### current\_character
```gdscript
var current_character
```
Current character speaking, to keep track of reference for animation purposes
## Method Descriptions
### say
```gdscript
func say(character: String, params: Dictionary)
```
### finish\_fast
```gdscript
func finish_fast()
```
## Signals
- signal dialog_line_started():
- signal dialog_line_finished():

View File

@@ -1,275 +0,0 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# esc\_compiler.gd
**Extends:** [Node](../Node)
## Description
ESC compiler
The workflow is like this:
Lines beginning with ":" such as :push, :say are EVENTS.
Lines in between are usually the ESC API functions calls. They are called COMMANDS.
Steps
* compile_script(path/to/esc) : called once
* compile(path/to/esc, errors) : called once
* read_events() : called once\
create an ESCState, initialized with 1st line\
for each line in ESCState that corresponds to an event (:event), create a new level
* add_level(state, level, errors)\
for each state.line that belongs to same group (same indentation), create a command
* read_cmd(state, level, errors)\
get the token in state.line : this is the actual command (say, teleport, etc.)\
get the parameters next to the token\
create an ESCCommand, check it and push it into level array\
* create an ESCEvent with the level created\
* add it to the returned Dictionary of events
In the end, the ESCState has read all lines in the file and is deleted
Returned value is a Dictionary { event name : ESCEvent}
And ESCEvent.level is an array of ESCCommand
## Constants Descriptions
### COMMANDS
```gdscript
const COMMANDS: Dictionary = {"!":{"alias":"end_dialog","min_args":0},"%":{"alias":"label","min_args":1},">":{"alias":"branch"},"?":{"alias":"dialog"},"accept_input":{"min_args":1,"types":[4]},"anim":{"min_args":2,"types":[4,4,1,1,1]},"autosave":{"min_args":0},"camera_push":{"min_args":1,"types":[4]},"camera_set_drag_margin_enabled":{"min_args":2,"types":[1,1]},"camera_set_limits":{"min_args":1,"types":[2]},"camera_set_pos":{"min_args":3,"types":[3,2,2]},"camera_set_target":{"min_args":1,"types":[3]},"camera_set_zoom":{"min_args":1,"types":[3]},"camera_set_zoom_height":{"min_args":1,"types":[2]},"camera_shift":{"min_args":2,"types":[2,2]},"change_scene":{"min_args":1,"types":[4,1]},"custom":{"min_args":2,"types":[4,4]},"cut_scene":{"min_args":2,"types":[4,4,1,1,1]},"debug":{"min_args":1},"dec_global":{"min_args":2,"types":[4,2]},"enable_terrain":{"min_args":1,"types":[4]},"game_over":{"min_args":1,"types":[1]},"inc_global":{"min_args":2,"types":[4,2]},"inventory_add":{"min_args":1},"inventory_display":{"min_args":1,"types":[1]},"inventory_remove":{"min_args":1},"jump":{"min_args":1},"label":{"min_args":1},"queue_animation":{"min_args":2,"types":[4,4,1]},"queue_resource":{"min_args":1,"types":[4,1]},"repeat":true,"say":{"min_args":2},"sched_event":{"min_args":3,"types":[3,4,4]},"set_active":{"min_args":2,"types":[4,1]},"set_angle":{"min_args":2,"types":[4,2]},"set_global":{"min_args":2,"types":[4,4]},"set_globals":{"min_args":2,"types":[4,1]},"set_hud_visible":{"min_args":1,"types":[1]},"set_interactive":{"min_args":2,"types":[4,1]},"set_sound_state":{"min_args":2,"types":[4,4,1]},"set_speed":{"min_args":2,"types":[4,2]},"set_state":{"min_args":2,"types":[4,4,1]},"slide":{"min_args":2},"slide_block":{"min_args":2},"spawn":{"min_args":1},"stop":true,"superpose_scene":{"min_args":1,"types":[4,1]},"teleport":{"min_args":2,"types":[4,4,2]},"teleport_pos":{"min_args":3},"turn_to":{"min_args":2},"wait":true,"walk":{"min_args":2},"walk_block":{"min_args":2},"walk_to_pos":{"min_args":3},"walk_to_pos_block":{"min_args":3}}
```
A list of valid ESC commands
### DEBUG\_COMMANDS
```gdscript
const DEBUG_COMMANDS: Dictionary = {"get_active":{"min_args":1,"types":[4]},"get_global":{"min_args":1,"types":[4]},"get_interactive":{"min_args":1,"types":[4]},"get_state":{"min_args":1,"types":[4]}}
```
Commands that can be called only by the ESC debug prompt
## Method Descriptions
### compile\_str
```gdscript
func compile_str(p_str: String, errors: Array)
```
Compile a string into a dictionary of ESC events
#### Parameters
- p_str: String to compile
- errors: List of errors occured during parsing
**Returns** A dictionary of ESCEvents
### load\_esc\_file
```gdscript
func load_esc_file(esc_file_path: String) -> Dictionary
```
Loads an ESC or special GDScript file and compiles it to a dictionary of
events.
#### Parameters
- esc_file_path: The path to the ESC file to load
**Returns** A dictionary of ESC events
### compile\_script
```gdscript
func compile_script(p_path: String) -> Dictionary
```
Compiles an ESC file into a dictionary of events.
Alternatively, a GDScript file can be specified as well. In that case,
the compiler expects a function get_events in that script that
returns a dictionary of events.
#### Parameters
- p_path: Path to the ESC/GDScript-file
**Returns** A dictionary of ESC events
### compile
```gdscript
func compile(p_fname: String, errors: Array) -> Dictionary
```
Compile an ESC file into a list of events
#### Parameters
- p_fname: Path to the ESC file
- errors: A list of errors that wil be filled by the compiler
**Returns** A dictionary of ESC events
### read\_events
```gdscript
func read_events(f, ret: Dictionary, errors: Array) -> void
```
Parse a file or a special dictionary into a dictionary of ESC events
The dictionary is currently used as a workaround to parse ESC from text
(see read_line for specifics)
#### Parameters
- f: File or Dictionary to read
- ret: The parsed dictionary
- errors: A list of errors that have been found during parsing
### add\_level
```gdscript
func add_level(state: ESCState, level: Array, errors: Array) -> void
```
Add a new level of indent to the current event parsing
#### Parameters
- state: The state we're working on
- level: The existing levels
- errors: A list of errors during parsing
### read\_cmd
```gdscript
func read_cmd(state: ESCState, level: Array, errors: Array) -> void
```
Interpret a line in an esc event level as a command and add it to the
level commands
#### Parameters
- state: The state we're working on
- level: The list of level commands
- errors: A list of errors occured during parsing
### add\_dialog
```gdscript
func add_dialog(state: ESCState, level: Array, errors: Array) -> void
```
Add a dialog into the current level
#### Parameters
- state: State we're working on
- level: Current list of level commands
- errors: List of errors occured during parsing
### read\_dialog\_option
```gdscript
func read_dialog_option(state: ESCState, level: Array, errors: Array) -> void
```
### check\_normal\_command
```gdscript
func check_normal_command(cmd: ESCCommand, state: ESCState, errors: Array) -> bool
```
### check\_debug\_command
```gdscript
func check_debug_command(cmd: ESCCommand, state: ESCState, errors: Array) -> bool
```
### check\_command
```gdscript
func check_command(commands_list: Dictionary, cmd: ESCCommand, state: ESCState, errors: Array) -> bool
```
### read\_line
```gdscript
func read_line(state: ESCState) -> void
```
Advance to the next line in the state
#### Parameters
- state: State we're working on
### is\_comment
```gdscript
func is_comment(line: String) -> bool
```
 Check wether line is a comment (starting with #)
#### Parameters
- line: Current line as string
**Returns** Wether the line is a comment or not
### get\_indent
```gdscript
func get_indent(line: String) -> int
```
Returns the position of the first non-blank character in given line string
#### Parameters
- line: Line to check
**Returns** Indent of the checked line
### is\_event
```gdscript
func is_event(line: String)
```
Check wether the given line is a event (begins with ":")
#### Parameters
- line: Line to check
**Returns**
### is\_flags
```gdscript
func is_flags(tk: String) -> bool
```
Checks wetehr the given token is a flag (ie. "[.+]")
#### Parameters
- tk: Token to check
**Returns** Wether the token is a flag or not
### get\_token
```gdscript
func get_token(line: String, p_from: int, line_count: int, errors: Array) -> int
```
### parse\_flags
```gdscript
func parse_flags(p_flags: String, flags_list: Array, ifs: Dictionary)
```
Parses a flags string (usually defined by '[.*]') and fills the flags_list array
and ifs variable (Dictionary containing all ifs conditions)

View File

@@ -0,0 +1,27 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# esc\_prompt\_popup.gd
**Extends:** [WindowDialog](../WindowDialog)
## Description
A debug window which can run esc commands
## Property Descriptions
### past\_actions
```gdscript
var past_actions
```
Reference to the past actions display
### command
```gdscript
var command
```
Reference to the command input

View File

@@ -16,20 +16,108 @@ The escorie main script
const GAME_STATE: Dictionary = {"DEFAULT":0,"DIALOG":1,"WAIT":2}
```
An enum of game states
* DEFAULT - Default mode
* DIALOG - Game is running a dialog
* WAIT - Game is currently waiting for a specified time
Current game state
* DEFAULT: Common game function
* DIALOG: Game is playing a dialog
* WAIT: Game is waiting
## Property Descriptions
### logger
```gdscript
var logger: ESCLogger
```
Logger used
### utils
```gdscript
var utils: ESCUtils
```
Several utilities
### inventory\_manager
```gdscript
var inventory_manager: ESCInventoryManager
```
The inventory manager instance
### action\_manager
```gdscript
var action_manager: ESCActionManager
```
The action manager instance
### esc\_compiler
```gdscript
var esc_compiler: ESCCompiler
```
ESC compiler instance
### event\_manager
```gdscript
var event_manager: ESCEventManager
```
ESC Event manager instance
### globals\_manager
```gdscript
var globals_manager: ESCGlobalsManager
```
ESC globals registry instance
### object\_manager
```gdscript
var object_manager: ESCObjectManager
```
ESC object manager instance
### command\_registry
```gdscript
var command_registry: ESCCommandRegistry
```
ESC command registry instance
### resource\_cache
```gdscript
var resource_cache: ESCResourceCache
```
Resource cache handler
### main\_menu\_instance
```gdscript
var main_menu_instance
```
The instance of the used main menu scene
Instance of the main menu
### room\_terrain
```gdscript
var room_terrain
```
Terrain of the current room
### dialog\_player
@@ -45,71 +133,23 @@ Dialog player instantiator. This instance is called directly for dialogs.
var inventory
```
The inventory scene used
Inventory scene
### room\_terrain
### settings
```gdscript
var room_terrain
var settings: Dictionary
```
The terrain of the current main room
These are settings that the player can affect and save/load later
### esc\_compiler
### settings\_default
```gdscript
var esc_compiler
var settings_default: Dictionary
```
The ESC compiler instance
### logger
```gdscript
var logger
```
The logger instance
### main
```gdscript
var main
```
The main scene
### esc\_runner
```gdscript
var esc_runner
```
The ESC main loop
### esc\_level\_runner
```gdscript
var esc_level_runner
```
The ESC interpreter
### inputs\_manager
```gdscript
var inputs_manager
```
The escoria inputs manager
### utils
```gdscript
var utils
```
Several utilities
These are default settings
### current\_state
@@ -127,6 +167,30 @@ var game_size
The game resolution
### main
```gdscript
var main
```
The main scene
### inputs\_manager
```gdscript
var inputs_manager
```
The escoria inputs manager
### save\_data
```gdscript
var save_data
```
Savegame management
## Method Descriptions
### new\_game
@@ -137,19 +201,6 @@ func new_game()
Called by Main menu "start new game"
### register\_object
```gdscript
func register_object(object: Object)
```
Register an object to the matching manager. (A dialog player as the
main dialog player, an item in the ESC runner, etc.)
#### Parameters
- object: The object to register
### do
```gdscript

View File

@@ -1,144 +0,0 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# escoria\_types.gd
**Extends:** [Node](../Node)
## Description
Escoria basic types
## Enumerations
### EVENT\_LEVEL\_STATE
```gdscript
const EVENT_LEVEL_STATE: Dictionary = {"BREAK":2,"CALL":4,"JUMP":5,"REPEAT":3,"RETURN":0,"YIELD":1}
```
ESC script states
RETURN - The ESC script has been completed successfully
YIELD - ESC is waiting for Godot to finish something (e.g. Sprite animation)
BREAK - ESC has completed the current command block. Jump back
REPEAT - ESC is repeating a command block
CALL - Call another ESC command block
JUMP - Jump to another ESC label
## Constants Descriptions
### OBJ\_DEFAULT\_STATE
```gdscript
const OBJ_DEFAULT_STATE: String = "default"
```
The default state of an object
## Sub\-classes
### ESCState
#### Property Descriptions
### file
```gdscript
var file
```
File or Dictionary
### line
```gdscript
var line
```
String, can be null
### indent
```gdscript
var indent: int
```
### line\_count
```gdscript
var line_count: int
```
#### Method Descriptions
### \_init
```gdscript
func _init(p_file, p_line, p_indent, p_line_count)
```
### ESCEvent
#### Property Descriptions
### ev\_name
```gdscript
var ev_name: String
```
### ev\_level
```gdscript
var ev_level: Array
```
### ev\_flags
```gdscript
var ev_flags: Array
```
#### Method Descriptions
### \_init
```gdscript
func _init(p_name, p_level, p_flags)
```
### ESCCommand
#### Property Descriptions
### name
```gdscript
var name: String
```
### params
```gdscript
var params: Array
```
### conditions
```gdscript
var conditions: Dictionary
```
### flags
```gdscript
var flags: Array
```
#### Method Descriptions
### \_init
```gdscript
func _init(p_name)
```

View File

@@ -0,0 +1,28 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# inputs\_manager.gd
**Extends:** [Node](../Node)
## Description
Escoria inputs manager
Catches, handles and distributes input events for the game
## Property Descriptions
### hover\_stack
```gdscript
var hover_stack: Array
```
A LIFO stack of hovered items
### hotspot\_focused
```gdscript
var hotspot_focused: String = ""
```
The global id fo the topmost item from the hover_stack

103
docs/api/main.gd.md Normal file
View File

@@ -0,0 +1,103 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# main.gd
**Extends:** [Node](../Node)
## Description
Escoria main room handling and scene switcher
## Property Descriptions
### last\_scene\_global\_id
```gdscript
var last_scene_global_id: String
```
Global id of the last scene the player was before current scene
### current\_scene
```gdscript
var current_scene: Node
```
Current scene room being displayed
### wait\_level
```gdscript
var wait_level
```
The Escoria context currently in wait state
### screen\_ofs
```gdscript
var screen_ofs
```
FIXME Document this variable
### bg\_music
```gdscript
var bg_music
```
Reference to the ESCBackgroundMusic node
### scene\_transition
```gdscript
var scene_transition
```
Reference to the scene transition node
## Method Descriptions
### set\_scene
```gdscript
func set_scene(p_scene: Node) -> void
```
Set current scene
#### Parameters
- p_scene: Scene to set
### clear\_scene
```gdscript
func clear_scene() -> void
```
Cleanup the current scene
### set\_camera\_limits
```gdscript
func set_camera_limits(camera_limit_id: int = 0) -> void
```
Set the camera limits
#### Parameters
* camera_limits_id: The id of the room's camera limits to set
### check\_game\_scene\_methods
```gdscript
func check_game_scene_methods()
```
Sanity check that the game.tscn scene's root node script MUST
implement the following methods. If they do not exist, stop immediately.
Implement them, even if empty

10
docs/api/main_scene.gd.md Normal file
View File

@@ -0,0 +1,10 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# main\_scene.gd
**Extends:** [Node](../Node)
## Description
Main_scene is the entry point for Godot Engine.
This scene sets up the main menu scene to load.

View File

@@ -0,0 +1,94 @@
<!-- Auto-generated from JSON by GDScript docs maker. Do not edit this document directly. -->
# player\_angles\_finder.gd
**Extends:** [Node2D](../Node2D)
## Description
## Enumerations
### Directions
```gdscript
const Directions: Dictionary = {"EAST":2,"NORTH":0,"NORTHEAST":1,"NORTHWEST":7,"SOUTH":4,"SOUTHEAST":3,"SOUTHWEST":5,"WEST":6}
```
## Constants Descriptions
### POLYGON\_DISTANCE
```gdscript
const POLYGON_DISTANCE: int = 400
```
### starting\_angles
```gdscript
const starting_angles: Array = [0,0.785398,1.570796,2.356194,3.141593,3.926991,4.712389,5.497787]
```
## Property Descriptions
### number\_of\_directions
```gdscript
var number_of_directions: int
```
### angle\_horizontal\_axes
```gdscript
var angle_horizontal_axes: float
```
### angle\_vertical\_axes
```gdscript
var angle_vertical_axes: float
```
### angle\_diagonal\_axes
```gdscript
var angle_diagonal_axes: float
```
### colors
```gdscript
var colors
```
### result\_angles
```gdscript
var result_angles
```
## Method Descriptions
### clear\_areas\_node
```gdscript
func clear_areas_node()
```
### calculate\_areas
```gdscript
func calculate_areas(nb_directions: int = 8)
```
### construct\_scene\_nodes
```gdscript
func construct_scene_nodes(angles)
```
### clamp360
```gdscript
func clamp360(angle: float)
```

Some files were not shown because too many files have changed in this diff Show More