[gd_scene load_steps=19 format=2]

[ext_resource path="res://addons/escoria-wizard/graphics/help/left3.png" type="Texture" id=1]
[ext_resource path="res://addons/escoria-wizard/graphics/help/left4.png" type="Texture" id=2]
[ext_resource path="res://addons/escoria-wizard/graphics/help/left5.png" type="Texture" id=3]
[ext_resource path="res://addons/escoria-wizard/graphics/help/middle3.png" type="Texture" id=4]
[ext_resource path="res://addons/escoria-wizard/graphics/help/right4.png" type="Texture" id=5]
[ext_resource path="res://addons/escoria-wizard/graphics/help/middleall.png" type="Texture" id=6]
[ext_resource path="res://addons/escoria-wizard/graphics/help/middle2.png" type="Texture" id=7]
[ext_resource path="res://addons/escoria-wizard/graphics/help/left2.png" type="Texture" id=8]
[ext_resource path="res://addons/escoria-wizard/graphics/help/rightall.png" type="Texture" id=9]
[ext_resource path="res://addons/escoria-wizard/graphics/help/right5.png" type="Texture" id=10]
[ext_resource path="res://addons/escoria-wizard/graphics/help/right2.png" type="Texture" id=11]
[ext_resource path="res://addons/escoria-wizard/graphics/help/right3.png" type="Texture" id=12]
[ext_resource path="res://addons/escoria-wizard/graphics/help/leftall.png" type="Texture" id=13]
[ext_resource path="res://addons/escoria-wizard/graphics/help/help_background.png" type="Texture" id=14]
[ext_resource path="res://addons/escoria-wizard/graphics/help/left1.png" type="Texture" id=15]
[ext_resource path="res://addons/escoria-wizard/graphics/help/middle1.png" type="Texture" id=16]
[ext_resource path="res://addons/escoria-wizard/graphics/help/right1.png" type="Texture" id=17]
[ext_resource path="res://addons/escoria-wizard/help_window.gd" type="Script" id=18]

[node name="help_window" type="WindowDialog"]
margin_left = 100.0
margin_top = 100.0
margin_right = 1012.0
margin_bottom = 742.0
popup_exclusive = true
script = ExtResource( 18 )

[node name="VBoxContainer" type="VBoxContainer" parent="."]
margin_left = 4.0
margin_top = 4.0
margin_right = 908.0
margin_bottom = 638.0

[node name="Background" type="TextureRect" parent="VBoxContainer"]
margin_right = 904.0
margin_bottom = 610.0
texture = ExtResource( 14 )

[node name="CenterContainer" type="CenterContainer" parent="VBoxContainer"]
margin_top = 614.0
margin_right = 904.0
margin_bottom = 634.0

[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/CenterContainer"]
margin_left = 322.0
margin_right = 581.0
margin_bottom = 20.0

[node name="prev_button" type="Button" parent="VBoxContainer/CenterContainer/HBoxContainer"]
margin_right = 118.0
margin_bottom = 20.0
text = "<- Previous Page"

[node name="Control" type="Control" parent="VBoxContainer/CenterContainer/HBoxContainer"]
margin_left = 122.0
margin_right = 162.0
margin_bottom = 20.0
rect_min_size = Vector2( 40, 20 )

[node name="next_button" type="Button" parent="VBoxContainer/CenterContainer/HBoxContainer"]
margin_left = 166.0
margin_right = 259.0
margin_bottom = 20.0
text = "Next Page ->"

[node name="masks" type="Control" parent="."]
margin_right = 40.0
margin_bottom = 40.0

[node name="leftall" type="TextureRect" parent="masks" groups=["masks"]]
visible = false
modulate = Color( 1, 1, 1, 0.784314 )
margin_left = 8.0
margin_top = 8.0
margin_right = 309.0
margin_bottom = 610.0
texture = ExtResource( 13 )

[node name="middleall" type="TextureRect" parent="masks" groups=["masks"]]
visible = false
modulate = Color( 1, 1, 1, 0.784314 )
margin_left = 324.0
margin_top = 8.0
margin_right = 663.0
margin_bottom = 610.0
texture = ExtResource( 6 )

[node name="rightall" type="TextureRect" parent="masks" groups=["masks"]]
visible = false
modulate = Color( 1, 1, 1, 0.784314 )
margin_left = 678.0
margin_top = 8.0
margin_right = 904.0
margin_bottom = 610.0
texture = ExtResource( 9 )

[node name="page1" type="TextureRect" parent="masks" groups=["masks"]]
visible = false
modulate = Color( 1, 1, 1, 0.784314 )
margin_left = 4.0
margin_top = 4.0
margin_right = 305.0
margin_bottom = 606.0

[node name="page2" type="TextureRect" parent="masks" groups=["masks"]]
visible = false
modulate = Color( 1, 1, 1, 0.784314 )
margin_left = 8.0
margin_top = 8.0
margin_right = 309.0
margin_bottom = 610.0
texture = ExtResource( 15 )

[node name="page3" type="TextureRect" parent="masks" groups=["masks"]]
visible = false
modulate = Color( 1, 1, 1, 0.784314 )
margin_left = 678.0
margin_top = 8.0
margin_right = 904.0
margin_bottom = 610.0
texture = ExtResource( 17 )

[node name="page4" type="TextureRect" parent="masks" groups=["masks"]]
visible = false
modulate = Color( 1, 1, 1, 0.784314 )
margin_left = 8.0
margin_top = 8.0
margin_right = 309.0
margin_bottom = 610.0
texture = ExtResource( 8 )

[node name="page5" type="TextureRect" parent="masks" groups=["masks"]]
visible = false
modulate = Color( 1, 1, 1, 0.784314 )
margin_left = 8.0
margin_top = 8.0
margin_right = 309.0
margin_bottom = 610.0
texture = ExtResource( 1 )

[node name="page6" type="TextureRect" parent="masks" groups=["masks"]]
visible = false
modulate = Color( 1, 1, 1, 0.784314 )
margin_left = 8.0
margin_top = 8.0
margin_right = 309.0
margin_bottom = 610.0
texture = ExtResource( 2 )

[node name="page7" type="TextureRect" parent="masks" groups=["masks"]]
visible = false
modulate = Color( 1, 1, 1, 0.784314 )
margin_left = 8.0
margin_top = 8.0
margin_right = 309.0
margin_bottom = 610.0
texture = ExtResource( 3 )

[node name="page8" type="TextureRect" parent="masks" groups=["masks"]]
visible = false
modulate = Color( 1, 1, 1, 0.784314 )
margin_left = 324.0
margin_top = 8.0
margin_right = 663.0
margin_bottom = 610.0
texture = ExtResource( 16 )

[node name="page9" type="TextureRect" parent="masks" groups=["masks"]]
visible = false
modulate = Color( 1, 1, 1, 0.784314 )
margin_left = 324.0
margin_top = 8.0
margin_right = 663.0
margin_bottom = 610.0
texture = ExtResource( 7 )

[node name="page10" type="TextureRect" parent="masks" groups=["masks"]]
visible = false
modulate = Color( 1, 1, 1, 0.784314 )
margin_left = 324.0
margin_top = 8.0
margin_right = 663.0
margin_bottom = 610.0
texture = ExtResource( 4 )

[node name="page11" type="TextureRect" parent="masks" groups=["masks"]]
visible = false
modulate = Color( 1, 1, 1, 0.784314 )
margin_left = 678.0
margin_top = 8.0
margin_right = 904.0
margin_bottom = 610.0
texture = ExtResource( 11 )

[node name="page12" type="TextureRect" parent="masks" groups=["masks"]]
visible = false
modulate = Color( 1, 1, 1, 0.784314 )
margin_left = 678.0
margin_top = 8.0
margin_right = 904.0
margin_bottom = 610.0
texture = ExtResource( 12 )

[node name="page13" type="TextureRect" parent="masks" groups=["masks"]]
visible = false
modulate = Color( 1, 1, 1, 0.784314 )
margin_left = 678.0
margin_top = 8.0
margin_right = 904.0
margin_bottom = 610.0
texture = ExtResource( 5 )

[node name="page14" type="TextureRect" parent="masks" groups=["masks"]]
visible = false
modulate = Color( 1, 1, 1, 0.882353 )
margin_left = 678.0
margin_top = 8.0
margin_right = 904.0
margin_bottom = 610.0
texture = ExtResource( 10 )

[node name="page15" type="TextureRect" parent="masks" groups=["masks"]]
visible = false
modulate = Color( 1, 1, 1, 0.784314 )
margin_left = 678.0
margin_top = 8.0
margin_right = 979.0
margin_bottom = 610.0

[node name="text" type="Control" parent="."]
margin_right = 40.0
margin_bottom = 40.0

[node name="page1" type="Label" parent="text" groups=["pagetext"]]
visible = false
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = 229.0
margin_top = 137.0
margin_right = 699.0
margin_bottom = 440.0
text = "Escoria Player Creator

Game characters in Escoria are Godot scenes with an ESCPlayer node.
The ESCPlayer requires configuration to define things like how many
directions the character has animations defined for, and which
movement direction in the game world corresponds to each animation.
 
While Escoria can create characters that can move  in as many
directions as you like, most games will feature characters that can
move in either 4 or 8 directions. For each direction, walk, talk and idle
animations are required. This tool simplifies the process for  configuring
all these settings.

These help pages will guide you through the process, but essentially you
give your character a name, choose 4 or 8 directions, then choose frames
from sprite sheets for walk, talk and idle animations in each direction.

Click the \"Next Page\" button below to progress to the next help page."

[node name="page2" type="Label" parent="text" groups=["pagetext"]]
visible = false
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = 301.0
margin_top = 6.0
margin_right = 657.0
margin_bottom = 156.0
text = "Use the name field to supply a name for your character.
Any changes to the name will be reflected to the
global_id field. The global_id is used to identify the
character in scripts.

Note that you can change the global_id to be different
from the name if you choose. It's generally easiest
to keep them the same but there's no requirement to.
"

[node name="page3" type="Label" parent="text" groups=["pagetext"]]
visible = false
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = 299.0
margin_top = 10.0
margin_right = 654.0
margin_bottom = 194.0
text = "Use the \"Load Spritesheet\" button to load a spritesheet
graphic. The spritesheet is an image that contains one
or more sprite frames that will be used for the walk,
talk and/or idle animation frames for the character.

The character creator remembers which spritesheet is
used for each type and direction of animation, so you
can use one spritesheet for all the animations, one
spritesheet per animation, or any combination 
inbetween.
"

[node name="page4" type="Label" parent="text" groups=["pagetext"]]
visible = false
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = 298.0
margin_top = 59.0
margin_right = 591.0
margin_bottom = 124.0
text = "Use these buttons to indicate whether your
character will have animations facing in either
4 or 8 directions. This can be changed at any
time while creating the character."

[node name="page5" type="Label" parent="text" groups=["pagetext"]]
visible = false
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = 303.0
margin_top = 105.0
margin_right = 596.0
margin_bottom = 170.0
text = "You will use these buttons to choose whether
you are currently creating walk, talk, or idle
animations."

[node name="page6" type="Label" parent="text" groups=["pagetext"]]
visible = false
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = 133.0
margin_top = 126.0
margin_right = 523.0
margin_bottom = 378.0
text = "Click the arrow matching the direction you wish to create 
an animation for. For example, if you select walk from the
options above, and the right arrow, you'll be creating the 
animation for the character walking right.

Once you store (save) the animation, the arrow will change
to a green colour to show you the animation has been
configured. It can still be edited once it has been stored.

When you select an direction that isn't up or down, the
mirror button will appear. If you click this button, the
animation will be created automatically as a mirror of the
opposite side's animation. e.g. If you create the right side
animation, you can click the left arrow then the mirror
button to quickly create the left hand animation."

[node name="page7" type="Label" parent="text" groups=["pagetext"]]
visible = false
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = 63.0
margin_top = 369.0
margin_right = 334.0
margin_bottom = 417.0
text = "When you select the animation frames to
define a particular animation, a preview 
of the animation will be shown in this box."

[node name="page8" type="Label" parent="text" groups=["pagetext"]]
visible = false
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = 37.0
margin_top = 21.0
margin_right = 308.0
margin_bottom = 103.0
text = "This is the currently loaded spritesheet.
As you select particular frames to be
part of the current animation, a box will
be drawn around them to help you see
what is included in the animation."

[node name="page9" type="Label" parent="text" groups=["pagetext"]]
visible = false
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = 339.0
margin_top = 422.0
margin_right = 610.0
margin_bottom = 538.0
text = "Use this slider to reset the zoom level
on the spritesheet. The zoom is only
used in this tool and will not affect the
zoom level of your character in game.

Use the reset button to reset the zoom 
level."

[node name="page10" type="Label" parent="text" groups=["pagetext"]]
visible = false
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = 354.0
margin_top = 511.0
margin_right = 594.0
margin_bottom = 559.0
text = "This information window tells you the
filename of the currently loaded
spritesheet."

[node name="page11" type="Label" parent="text" groups=["pagetext"]]
visible = false
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = 297.0
margin_top = 28.0
margin_right = 622.0
margin_bottom = 229.0
text = "Once you've loaded your spritesheet you need to
tell the character creator how to divide it into
individual frames with the horizontal/vertical
frames selectors.

The start/end frame selectors tell the tool which
frames to use from the spritesheet to create the
animation.

The speed slider defines the speed of this
animation in frames per second. Each animation
can have a different speed value if desired."

[node name="page12" type="Label" parent="text" groups=["pagetext"]]
visible = false
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = 374.0
margin_top = 124.0
margin_right = 651.0
margin_bottom = 189.0
text = "These lines are informational. They tell you
how big the current spritesheet is, and how
big each animation frame is based on the
frame settings above."

[node name="page13" type="Label" parent="text" groups=["pagetext"]]
visible = false
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = 374.0
margin_top = 171.0
margin_right = 648.0
margin_bottom = 321.0
text = "When you change the settings for the
current animation, the \"store animation\"
button will appear. This saves the current
settings to the selected animation.

If the settings are changed back to how
they were, the store button will 
disappear to tell you that there is currently
no change to save."

[node name="page14" type="Label" parent="text" groups=["pagetext"]]
visible = false
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = 332.0
margin_top = 228.0
margin_right = 660.0
margin_bottom = 429.0
text = "Click this button to export the completed character
out to a Godot scene for use by Escoria.
Note that a walk, talk and idle animation for each of
the specified (4 or 8) directions must have been
set up before you can export the character.

If any animations haven't been configured, it will
tell you that animations are missing. 

Direction arrows that haven't turned green are a
visual indicator of the directions still requiring
animations."

[node name="page15" type="Label" parent="text" groups=["pagetext"]]
visible = false
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = 273.0
margin_top = 143.0
margin_right = 663.0
margin_bottom = 412.0
text = "Once you have exported your character they will be a saved
ESCPlayer scene in your filesystem. The scene will be named
based on the name you gave your character in the Name
field.

If this is a user-controllable character, this character can now
be included in your game by :

* Creating a Godot scene for your room 
* Creating an ESCRoom node
* Selecting the created ESCPlayer scene as the Player Scene
   property in that node.

If they are an NPC, add the scene to your scene tree, and
program them in your ESC scripts using the global_id you
have configured."

[connection signal="pressed" from="VBoxContainer/CenterContainer/HBoxContainer/prev_button" to="." method="help_on_prev_button_pressed"]
[connection signal="pressed" from="VBoxContainer/CenterContainer/HBoxContainer/next_button" to="." method="help_on_next_button_pressed"]
