gd: added input addon
This commit is contained in:
42
guide_examples/input_contexts/player.gd
Normal file
42
guide_examples/input_contexts/player.gd
Normal file
@ -0,0 +1,42 @@
|
||||
extends CharacterBody2D
|
||||
|
||||
@export var context:GUIDEMappingContext
|
||||
@export var move:GUIDEAction
|
||||
@export var use:GUIDEAction
|
||||
|
||||
@export var speed:float = 300
|
||||
|
||||
@onready var _detection_area:Area2D = %DetectionArea
|
||||
@onready var _collision_shape:CollisionShape2D = %CollisionShape
|
||||
|
||||
func _ready():
|
||||
use.triggered.connect(_enter_boat)
|
||||
|
||||
func _physics_process(_delta):
|
||||
velocity = move.value_axis_2d.normalized() * speed
|
||||
move_and_slide()
|
||||
|
||||
|
||||
func _enter_boat():
|
||||
var boats := _detection_area.get_overlapping_bodies()
|
||||
if boats.is_empty():
|
||||
return
|
||||
|
||||
# Disable player input while in the boat
|
||||
GUIDE.disable_mapping_context(context)
|
||||
|
||||
# disable our own collisions while in the boat
|
||||
_collision_shape.set_deferred("disabled", true)
|
||||
|
||||
# enter the boat
|
||||
boats[0].enter(self)
|
||||
boats[0].exited.connect(_boat_exited, CONNECT_ONE_SHOT)
|
||||
|
||||
|
||||
func _boat_exited():
|
||||
# re-enable our own mapping context
|
||||
GUIDE.enable_mapping_context(context)
|
||||
|
||||
# and re-enable our collisions
|
||||
_collision_shape.set_deferred("disabled", false)
|
||||
|
Reference in New Issue
Block a user