Co-authored-by: StraToN <StraToN@users.noreply.github.com> Co-authored-by: Dennis Ploeger <develop@dieploegers.de> Co-authored-by: dploeger <dploeger@users.noreply.github.com>
3.4 KiB
ESCMovable
Extends: Node
Description
Node that performs the moving (walk, teleport, terrain scaling...) actions on its parent node.
Enumerations
MovableTask
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
var walk_path: Array
Character path through the scene as calculated by the Pathfinder
path_ofs
var path_ofs: int
Current active walk path entry
walk_destination
var walk_destination: Vector2
The destination where the character should be moving to
walk_context
var walk_context: ESCWalkContext
The walk context currently carried out by this movable node
moved
var moved: bool
Wether the character was moved at all
last_deg
var last_deg: int
Angle degrees from the last position to the next
last_dir
var last_dir: int
Player Direction used to reflect the movement to the new position
last_scale
var last_scale: Vector2
The last scaling applied to the parent
pose_scale
var pose_scale: int
Wether the current direction animation is flipped
parent
var parent
Shortcut variable that references the node's parent
task
var task
Currenly running task
Method Descriptions
teleport
func teleport(target: Node) -> void
Teleports this item to the target position.
Parameters
- target: Position2d or ESCItem to teleport to
teleport_to
func teleport_to(target: Vector2) -> void
Teleports this item to the target position.
Parameters
- target: Vector2 target position to teleport to
walk_to
func walk_to(pos: Vector2, p_walk_context: ESCWalkContext = null) -> void
Walk to a given position
Parameters
- pos: Position to walk to
- p_walk_context: Walk context to use
walk_stop
func walk_stop(pos: Vector2) -> var
We have finished walking. Set the idle pose and complete
Parameters
- pos: Final target position
update_terrain
func update_terrain(on_event_finished_name = null) -> void
Update the sprite scale and lighting
Parameters
- on_event_finished_name: Used if this function is called from an ESC event
is_angle_in_interval
func is_angle_in_interval(angle: float, direction_angle: ESCDirectionAngle) -> bool
Returns true if given angle is inside the interval given by a starting_angle and the size.
Parameters
- angle: Angle to test
- direction_angle: ESCDirectionAngle resource, containing the starting angle, and the size of interval eg: angle_start=90, angle_size=40 corresponds to angle between 90° and 130°
set_angle
func set_angle(deg: int, immediate = true) -> void
Sets character's angle and plays according animation.
Parameters
- deg int angle to set the character
- immediate If true, direction is switched immediately. Else, successive animations are used so that the character turns to target angle.