Initial commit

This commit is contained in:
Haze Weathers 2025-08-06 10:26:28 -06:00
commit 3b96451047
71 changed files with 2302 additions and 0 deletions

View file

@ -0,0 +1,31 @@
@icon("character_animation_event.svg")
class_name WBCharacterAnimationEvent
extends WBEvent
## Event that makes a character play a specific animation.
## Character to animate.
@export var character: WBCharacter
## Animation to play.
@export var animation: StringName
## Number of times to let animation loop if the animation loops.
@export var loops: int = 1
func _perform() -> void:
if not character:
push_error("Target character does not exist.")
return
if not character.animations.has_animation(animation):
push_error("The specified animation does not exist in this character.")
return
character.play_custom_animation(animation)
if character.animations.get_animation_loop(animation):
var remaining_loops := loops
while remaining_loops > 0:
await character.sprite.animation_looped
remaining_loops -= 1
else:
await character.sprite.animation_finished
character.end_custom_animation()

View file

@ -0,0 +1 @@
uid://c4bjkninxu305

View file

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="16"
height="16"
version="1.1"
id="svg1"
sodipodi:docname="character_animation_event.svg"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1">
<linearGradient
id="a"
x2="0"
y1="2"
y2="14"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(4)">
<stop
offset="0"
stop-color="#ff8dbc"
id="stop1" />
<stop
offset=".4"
stop-color="#7260ff"
id="stop2" />
<stop
offset=".6"
stop-color="#7260ff"
id="stop3" />
<stop
offset="1"
stop-color="#74c9ff"
id="stop4" />
</linearGradient>
</defs>
<sodipodi:namedview
id="namedview1"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="25.715264"
inkscape:cx="5.1720255"
inkscape:cy="9.488528"
inkscape:window-width="1346"
inkscape:window-height="727"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="svg1" />
<path
fill="none"
stroke="#8da5f3"
stroke-linejoin="round"
stroke-width="2.28571"
d="M 14.857145,14.857148 H 1.1428572 V 1.1428572 H 14.857145 Z"
id="path1"
style="stroke:#dd5498;stroke-width:2;stroke-dasharray:none" />
<path
fill="url(#a)"
d="M 12.816902,3.0999201 H 3.0167421 V 3.7999316 H 4.4167649 V 5.1999544 H 3.0167421 v 5.6000916 h 1.4000228 v 1.400023 H 3.0167421 V 12.90008 H 12.816902 V 12.200069 H 11.41688 v -1.400023 h 1.400022 V 5.1999544 H 11.41688 V 3.7999316 h 1.400022 z M 10.016857,3.7999316 V 5.1999544 H 8.6168334 V 3.7999316 Z m 0,7.0001144 v 1.400023 H 8.6168334 V 10.800046 Z M 7.2168106,3.7999316 V 5.1999544 H 5.8167878 V 3.7999316 Z m 0,7.0001144 v 1.400023 H 5.8167878 V 10.800046 Z M 6.5167991,6.6748784 a 0.52500856,0.52500856 0 0 1 0.787513,-0.4459073 l 2.1000343,1.3181214 a 0.52500856,0.52500856 0 0 1 0,0.9051148 L 7.3043121,9.7703293 A 0.52500856,0.52500856 0 0 1 6.5167991,9.324422 Z"
id="path4"
style="fill:#8da5f3;fill-opacity:1;stroke-width:0.700012" />
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View file

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ddeaoeqtcg5x2"
path="res://.godot/imported/character_animation_event.svg-d0fd25cb2ad4401cf873b25840865b53.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/walkabout/events/character_animation_event.svg"
dest_files=["res://.godot/imported/character_animation_event.svg-d0fd25cb2ad4401cf873b25840865b53.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View file

@ -0,0 +1,12 @@
@icon("delay_event.svg")
class_name WBDelayEvent
extends WBEvent
## Event that waits for a given duration.
## Time to wait for.
@export_custom(0, "suffix:s") var delay: float
func _perform() -> void:
await create_tween().tween_interval(delay).finished

View file

@ -0,0 +1 @@
uid://bqapvnlskkprc

View file

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="16"
height="16"
version="1.1"
id="svg1"
sodipodi:docname="delay_event.svg"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1" />
<sodipodi:namedview
id="namedview1"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="25.715264"
inkscape:cx="5.1720255"
inkscape:cy="9.488528"
inkscape:window-width="1346"
inkscape:window-height="727"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="svg1" />
<path
fill="none"
stroke="#8da5f3"
stroke-linejoin="round"
stroke-width="2.28571"
d="M 14.857145,14.857148 H 1.1428572 V 1.1428572 H 14.857145 Z"
id="path1"
style="stroke:#dd5498;stroke-width:2;stroke-dasharray:none" />
<path
fill="#e0e0e0"
d="m 4.8110802,3.5943837 a 0.62779194,0.62779194 0 0 0 -0.6277919,0.627792 c 0,0.9416879 0.6070748,1.6479538 1.1758543,2.2977185 C 5.8362645,7.0660732 6.248096,7.5513563 6.5362525,7.9889273 6.248096,8.4264983 5.8368922,8.913037 5.3591426,9.4592163 4.7903631,10.10898 4.1832883,10.813991 4.1832883,11.755679 a 0.62779194,0.62779194 0 0 0 0.6277919,0.627792 H 11.089 a 0.62779194,0.62779194 0 0 0 0.627792,-0.627792 c 0,-0.941688 -0.607075,-1.646699 -1.175855,-2.2964627 C 10.063815,8.913037 9.6519839,8.4264983 9.3638269,7.9889273 9.6519839,7.5513563 10.063188,7.0660732 10.540937,6.5198942 11.109717,5.8701295 11.716792,5.1638636 11.716792,4.2221757 A 0.62779194,0.62779194 0 0 0 11.089,3.5943837 Z M 10.092066,4.8499676 C 9.9426519,5.1261961 9.9005899,5.3459232 9.5967379,5.6924644 9.0668819,6.2976558 8.4051891,6.9304701 8.0159581,7.7076765 A 0.62779194,0.62779194 0 0 0 7.9500399,7.9889273 0.62779194,0.62779194 0 0 0 7.883494,7.7083043 C 7.4948907,6.9304701 6.833198,6.2976558 6.3033417,5.6924644 5.9994904,5.3452955 5.9574283,5.1268239 5.807386,4.8499676 Z"
id="path1-2"
style="stroke-width:0.627792" />
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View file

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://codl7c70plmp0"
path="res://.godot/imported/delay_event.svg-51be5be8e4173986beaba93125ff14e2.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/walkabout/events/delay_event.svg"
dest_files=["res://.godot/imported/delay_event.svg-51be5be8e4173986beaba93125ff14e2.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View file

@ -0,0 +1,33 @@
@icon("event.svg")
class_name WBEvent
extends Node
## Basic event that does nothing and emits its signals.
## Emitted when the event starts performing.
signal event_started()
## Emitted when the event has finished performing.
signal event_finished()
## [constant true] when the event is currently active.
## It is an error to try to perform an event that is already running.
var running: bool = false
## Starts the event.
func perform() -> void:
if running:
push_error("Event may not be performed if it is already running.")
running = true
event_started.emit()
await _perform()
running = false
event_finished.emit()
func _perform() -> void:
pass

View file

@ -0,0 +1 @@
uid://drkkeoynpxpgd

View file

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="16"
height="16"
version="1.1"
id="svg1"
sodipodi:docname="event.svg"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1" />
<sodipodi:namedview
id="namedview1"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="25.715264"
inkscape:cx="5.1720255"
inkscape:cy="9.488528"
inkscape:window-width="1346"
inkscape:window-height="727"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="svg1" />
<path
fill="none"
stroke="#8da5f3"
stroke-linejoin="round"
stroke-width="2.28571"
d="M 14.857145,14.857148 H 1.1428572 V 1.1428572 H 14.857145 Z"
id="path1"
style="stroke:#dd5498;stroke-width:2;stroke-dasharray:none" />
<rect
style="fill:#dd5498;stroke:#dd5498;stroke-width:1.31301"
id="rect4"
width="1.1482214"
height="1.1907481"
x="7.3398166"
y="10.89865" />
<rect
style="fill:#dd5498;stroke:#dd5498;stroke-width:1.76085"
id="rect5"
width="0.64153773"
height="3.8329279"
x="7.5902767"
y="4.1139956" />
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View file

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://df7egmuwd6mtt"
path="res://.godot/imported/event.svg-94666083a457e4b1b83e2b5cf3cf906d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/walkabout/events/event.svg"
dest_files=["res://.godot/imported/event.svg-94666083a457e4b1b83e2b5cf3cf906d.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View file

@ -0,0 +1,37 @@
@icon("move_character_event.svg")
class_name WBMoveCharacterEvent
extends WBEvent
## Event that moves a character to the specified tile.
## Charcter to move.
@export var character: WBCharacter
## Tile position to move the target to.
@export var target_tile: Vector2i
## Whether the character should be running.
@export var run: bool = false
## Whether the character should move vertically or horizontally first.
@export var prefer_vertical: bool = false
func _perform() -> void:
while character.tile_position != target_tile:
if prefer_vertical:
if character.tile_position.y < target_tile.y:
character.start_move(WBCharacter.Dir.DOWN, true)
elif character.tile_position.y > target_tile.y:
character.start_move(WBCharacter.Dir.UP, true)
elif character.tile_position.x < target_tile.x:
character.start_move(WBCharacter.Dir.RIGHT, true)
elif character.tile_position.x > target_tile.x:
character.start_move(WBCharacter.Dir.LEFT, true)
else:
if character.tile_position.x < target_tile.x:
character.start_move(WBCharacter.Dir.RIGHT, true)
elif character.tile_position.x > target_tile.x:
character.start_move(WBCharacter.Dir.LEFT, true)
elif character.tile_position.y < target_tile.y:
character.start_move(WBCharacter.Dir.DOWN, true)
elif character.tile_position.y > target_tile.y:
character.start_move(WBCharacter.Dir.UP, true)
await character.move_finished

View file

@ -0,0 +1 @@
uid://tajefl5yoipy

View file

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="16"
height="16"
version="1.1"
id="svg1"
sodipodi:docname="move_character_event.svg"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1" />
<sodipodi:namedview
id="namedview1"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="25.715264"
inkscape:cx="5.1720255"
inkscape:cy="9.488528"
inkscape:window-width="1346"
inkscape:window-height="727"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="svg1" />
<path
fill="none"
stroke="#8da5f3"
stroke-linejoin="round"
stroke-width="2.28571"
d="M 14.857145,14.857148 H 1.1428572 V 1.1428572 H 14.857145 Z"
id="path1"
style="stroke:#dd5498;stroke-width:2;stroke-dasharray:none" />
<path
style="fill:#8da5f3;fill-opacity:1;stroke:none;stroke-width:2;stroke-dasharray:none"
d="m 3.694304,12.560634 0.1555495,-8.1663567 6.6108595,0.077775 0.07777,-1.1666223 2.022146,2.5665691 -2.099921,2.0610326 0,-1.5943838 -5.1331379,-0.077775 -0.038887,6.2219851 z"
id="path5"
sodipodi:nodetypes="cccccccccc" />
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View file

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ckyw0hvg7jhij"
path="res://.godot/imported/move_character_event.svg-9eb1716c5e768c9b0d5289ef761908df.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/walkabout/events/move_character_event.svg"
dest_files=["res://.godot/imported/move_character_event.svg-9eb1716c5e768c9b0d5289ef761908df.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View file

@ -0,0 +1,26 @@
@icon("parallel_event.svg")
class_name WBParallelEvent
extends WBEvent
## Event that starts all child events at the same time, then finishes once all have completed.
signal _children_finished()
var _children_running: int = 0
func _perform() -> void:
for child in get_children():
if child is WBEvent:
_start_child(child)
if _children_running > 0:
await _children_finished
func _start_child(event: WBEvent) -> void:
_children_running += 1
await event.perform()
_children_running -= 1
if _children_running <= 0:
_children_finished.emit()

View file

@ -0,0 +1 @@
uid://dcwk6e3ufl2rs

View file

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="16"
height="16"
version="1.1"
id="svg1"
sodipodi:docname="parallel_event.svg"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1" />
<sodipodi:namedview
id="namedview1"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="25.715264"
inkscape:cx="5.1720255"
inkscape:cy="9.488528"
inkscape:window-width="1346"
inkscape:window-height="727"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="svg1" />
<path
fill="none"
stroke="#8da5f3"
stroke-linejoin="round"
stroke-width="2.28571"
d="M 14.857145,14.857148 H 1.1428572 V 1.1428572 H 14.857145 Z"
id="path1"
style="stroke:#dd5498;stroke-width:2;stroke-dasharray:none" />
<rect
style="fill:#dd5498;stroke:#dd5498;stroke-width:2.02785"
id="rect3"
width="0.54810518"
height="5.949976"
x="5.4226375"
y="4.9062467" />
<rect
style="fill:#dd5498;stroke:#dd5498;stroke-width:1.9332"
id="rect5"
width="0.48720151"
height="6.083509"
x="10.030569"
y="4.7445955" />
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View file

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ckrac6a5h1sd4"
path="res://.godot/imported/parallel_event.svg-c258bd2568944bcb205b6d0f605db926.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/walkabout/events/parallel_event.svg"
dest_files=["res://.godot/imported/parallel_event.svg-c258bd2568944bcb205b6d0f605db926.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View file

@ -0,0 +1,12 @@
@icon("sequence_event.svg")
class_name WBSequenceEvent
extends WBEvent
## Event that performs each child event in sequence, one after another.
func _perform() -> void:
event_started.emit()
for child in get_children():
if child is WBEvent:
await child.perform()
event_finished.emit()

View file

@ -0,0 +1 @@
uid://cghsjdjghxhn6

View file

@ -0,0 +1,62 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="16"
height="16"
version="1.1"
id="svg1"
sodipodi:docname="sequence_event.svg"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1" />
<sodipodi:namedview
id="namedview1"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="25.715264"
inkscape:cx="5.1720255"
inkscape:cy="9.488528"
inkscape:window-width="1346"
inkscape:window-height="727"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="svg1" />
<path
fill="none"
stroke="#8da5f3"
stroke-linejoin="round"
stroke-width="2.28571"
d="M 14.857145,14.857148 H 1.1428572 V 1.1428572 H 14.857145 Z"
id="path1"
style="stroke:#dd5498;stroke-width:2;stroke-dasharray:none" />
<rect
style="fill:#dd5498;stroke:#dd5498;stroke-width:1.28162"
id="rect3"
width="1.1207687"
height="1.1622787"
x="3.9217882"
y="7.9282513" />
<rect
style="fill:#dd5498;stroke:#dd5498;stroke-width:1.31301"
id="rect4"
width="1.1482214"
height="1.1907481"
x="7.4175916"
y="7.9043198" />
<rect
style="fill:#dd5498;stroke:#dd5498;stroke-width:1.28162"
id="rect5"
width="1.1207687"
height="1.1622787"
x="11.044965"
y="7.9186711" />
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View file

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bakm6fp22sxac"
path="res://.godot/imported/sequence_event.svg-1b2ebbf7d19a80d4622c19258498b900.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/walkabout/events/sequence_event.svg"
dest_files=["res://.godot/imported/sequence_event.svg-1b2ebbf7d19a80d4622c19258498b900.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View file

@ -0,0 +1,17 @@
@icon("teleport_character_event.svg")
class_name WBTeleportCharacterEvent
extends WBEvent
## Event that teleports a character to the specified tile position.
## Character to teleport.
@export var character: WBCharacter
## Tile position to teleport the character to.
@export var target_tile: Vector2i
func _perform() -> void:
if not character:
push_error("Target character does not exist.")
return
character.global_position = character.tile_center_pos(target_tile)

View file

@ -0,0 +1 @@
uid://dco2ay8p6o615

View file

@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="16"
height="16"
version="1.1"
id="svg1"
sodipodi:docname="teleport_character_event.svg"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1" />
<sodipodi:namedview
id="namedview1"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="25.715264"
inkscape:cx="5.1720255"
inkscape:cy="9.488528"
inkscape:window-width="1346"
inkscape:window-height="727"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="svg1" />
<path
fill="none"
stroke="#8da5f3"
stroke-linejoin="round"
stroke-width="2.28571"
d="M 14.857145,14.857148 H 1.1428572 V 1.1428572 H 14.857145 Z"
id="path1"
style="stroke:#dd5498;stroke-width:2;stroke-dasharray:none" />
<path
sodipodi:type="star"
style="fill:none;fill-opacity:1;stroke:#8da5f3;stroke-width:1.34623;stroke-dasharray:none;stroke-opacity:1"
id="path5"
inkscape:flatsided="false"
sodipodi:sides="5"
sodipodi:cx="4.8220387"
sodipodi:cy="5.0942507"
sodipodi:r1="5.4158311"
sodipodi:r2="2.7079153"
sodipodi:arg1="0.61190243"
sodipodi:arg2="1.240221"
inkscape:rounded="0"
inkscape:randomized="0"
d="M 9.2552034,8.2052435 5.7009935,7.655548 3.2332319,10.271791 2.6577122,6.7216708 -0.5930627,5.1831535 2.6054565,3.5387543 3.0641287,-0.02834426 5.616442,2.505481 9.1506919,1.8394101 7.5295891,5.0497994 Z"
inkscape:transform-center-x="0.37156418"
inkscape:transform-center-y="0.020029869"
transform="matrix(0.75679887,0,0,0.72909077,4.6005899,4.4238451)" />
</svg>

After

Width:  |  Height:  |  Size: 2 KiB

View file

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cpqqmbh3d5nev"
path="res://.godot/imported/teleport_character_event.svg-984335146dbb260f6d1052999d295a22.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/walkabout/events/teleport_character_event.svg"
dest_files=["res://.godot/imported/teleport_character_event.svg-984335146dbb260f6d1052999d295a22.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View file

@ -0,0 +1,21 @@
@icon("wait_signal_event.svg")
class_name WBWaitSignalEvent
extends WBEvent
## Event that waits for a specified signal on a target node to be emitted.
## Node to await a signal of.
@export var target: Node
## Signal to await.
@export var signal_to_await: StringName = &""
func _perform() -> void:
if not target:
push_error("Target object is not specified.")
return
if not target.has_signal(signal_to_await):
push_error("Target does not have the specified signal.")
return
await Signal(target, signal_to_await)

View file

@ -0,0 +1 @@
uid://cqodqaf46ktes

View file

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="16"
height="16"
version="1.1"
id="svg1"
sodipodi:docname="wait_signal_event.svg"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1" />
<sodipodi:namedview
id="namedview1"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="25.715264"
inkscape:cx="5.1720255"
inkscape:cy="9.488528"
inkscape:window-width="1346"
inkscape:window-height="727"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="svg1" />
<path
fill="none"
stroke="#8da5f3"
stroke-linejoin="round"
stroke-width="2.28571"
d="M 14.857145,14.857148 H 1.1428572 V 1.1428572 H 14.857145 Z"
id="path1"
style="stroke:#dd5498;stroke-width:2;stroke-dasharray:none" />
<path
fill="#ff5f5f"
d="m 3.5788288,4.711046 v 6.577908 H 4.8944104 7.5255736 V 9.9733724 H 4.8944104 V 6.0266276 H 7.5255736 V 4.711046 H 4.8944104 Z M 9.4989464,5.3688368 V 7.3422092 H 6.209992 V 8.6577908 H 9.4989464 V 10.631163 L 11.143423,9.3155816 12.7879,8 11.143423,6.6844184 Z"
id="path1-5"
style="stroke-width:0.657791" />
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View file

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ccury2hlmsf45"
path="res://.godot/imported/wait_signal_event.svg-d1b2d658af4493719cdf3a0f1a267c69.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/walkabout/events/wait_signal_event.svg"
dest_files=["res://.godot/imported/wait_signal_event.svg-d1b2d658af4493719cdf3a0f1a267c69.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View file

@ -0,0 +1,27 @@
@icon("walk_character_event.svg")
class_name WBWalkCharacterEvent
extends WBEvent
## Event that makes a character walk a certain distance in the given direction.
## Character to move.
@export var character: WBCharacter
## Direction for the character to walk.
@export var direction: WBCharacter.Dir
## Number of tiles to move the character.
@export_custom(0, "suffix:tiles") var distance: int
## Whether the character should be running.
@export var run: bool = false
func _perform() -> void:
if not character:
push_error("Target character does not exist.")
return
character.running = run
var remaining_distance := distance
while remaining_distance > 0:
character.start_move(direction, true)
await character.move_finished
remaining_distance -= 1

View file

@ -0,0 +1 @@
uid://csxb817wahr5q

View file

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="16"
height="16"
version="1.1"
id="svg1"
sodipodi:docname="move_character_event.svg"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1" />
<sodipodi:namedview
id="namedview1"
pagecolor="#505050"
bordercolor="#ffffff"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#505050"
inkscape:zoom="25.715264"
inkscape:cx="5.1720255"
inkscape:cy="9.488528"
inkscape:window-width="1346"
inkscape:window-height="727"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="svg1" />
<path
fill="none"
stroke="#8da5f3"
stroke-linejoin="round"
stroke-width="2.28571"
d="M 14.857145,14.857148 H 1.1428572 V 1.1428572 H 14.857145 Z"
id="path1"
style="stroke:#dd5498;stroke-width:2;stroke-dasharray:none" />
<path
style="fill:#8da5f3;fill-opacity:1;stroke:none;stroke-width:2;stroke-dasharray:none"
d="m 3.6554165,9.6440776 -0.038887,-2.761006 5.1720255,-1e-7 0.038887,-2.0610327 3.577642,3.4998669 -3.4998673,3.4998663 -0.077775,-2.138807 z"
id="path5"
sodipodi:nodetypes="cccccccc" />
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dc8q0sv4w2lxc"
path="res://.godot/imported/walk_character_event.svg-dcf6bff1559ceda5cbf4918ee7e487a2.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/walkabout/events/walk_character_event.svg"
dest_files=["res://.godot/imported/walk_character_event.svg-dcf6bff1559ceda5cbf4918ee7e487a2.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false