Re-implemented turn_to command (#390)
* Re-implemented turn_to command Fixes #385 Fixed a bug in esc_movable blocking player_orients_on_arrival for ESCLocation nodes * docs: Automatic update of API docs * Fixes Co-authored-by: StraToN <StraToN@users.noreply.github.com>
This commit is contained in:
@@ -267,10 +267,9 @@ func walk_stop(pos: Vector2) -> void:
|
|||||||
|
|
||||||
# If we're heading to an object and reached its interaction position,
|
# If we're heading to an object and reached its interaction position,
|
||||||
# orient towards the defined interaction direction set on the object
|
# orient towards the defined interaction direction set on the object
|
||||||
# (if any)
|
# (if any), can be ESCItem or ESCLocation
|
||||||
if walk_context.target_object and \
|
if walk_context.target_object and \
|
||||||
walk_context.target_object.node.player_orients_on_arrival and \
|
walk_context.target_object.node.player_orients_on_arrival:
|
||||||
walk_context.target_object.interactive:
|
|
||||||
var orientation = walk_context.target_object.node.interaction_direction
|
var orientation = walk_context.target_object.node.interaction_direction
|
||||||
last_dir = orientation
|
last_dir = orientation
|
||||||
parent.get_animation_player().play(
|
parent.get_animation_player().play(
|
||||||
@@ -488,6 +487,25 @@ func set_angle(deg: int, immediate = true) -> void:
|
|||||||
update_terrain()
|
update_terrain()
|
||||||
|
|
||||||
|
|
||||||
|
# Turns the character to face another item or character.
|
||||||
|
#
|
||||||
|
# #### Parameters
|
||||||
|
#
|
||||||
|
# - item_id id of the object to face.
|
||||||
|
# - immediate
|
||||||
|
# If true, direction is switched immediately. Else, successive
|
||||||
|
# animations are used so that the character turns to target angle.
|
||||||
|
func turn_to(item: Node, immediate = true) -> void:
|
||||||
|
set_angle(
|
||||||
|
wrapi(
|
||||||
|
rad2deg(parent.get_position().angle_to_point(item.get_position())),
|
||||||
|
0,
|
||||||
|
360
|
||||||
|
),
|
||||||
|
immediate
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
# Returns the angle that corresponds to the current direction of the object.
|
# Returns the angle that corresponds to the current direction of the object.
|
||||||
func _get_angle() -> int:
|
func _get_angle() -> int:
|
||||||
return parent.animations.dir_angles[last_dir].angle_start
|
return parent.animations.dir_angles[last_dir].angle_start
|
||||||
|
|||||||
@@ -1,11 +1,6 @@
|
|||||||
# `turn_to object degrees [immediate]`
|
# `turn_to object object_to_face [immediate]`
|
||||||
#
|
#
|
||||||
# Turns object to a degrees angle with a directions animation.
|
# Turns object to face another object.
|
||||||
#
|
|
||||||
# 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.
|
|
||||||
#
|
#
|
||||||
# Set immediate to true to show directly switch to the direction and not
|
# Set immediate to true to show directly switch to the direction and not
|
||||||
# show intermediate angles
|
# show intermediate angles
|
||||||
@@ -19,7 +14,7 @@ class_name TurnToCommand
|
|||||||
func configure() -> ESCCommandArgumentDescriptor:
|
func configure() -> ESCCommandArgumentDescriptor:
|
||||||
return ESCCommandArgumentDescriptor.new(
|
return ESCCommandArgumentDescriptor.new(
|
||||||
2,
|
2,
|
||||||
[TYPE_STRING, TYPE_INT, TYPE_BOOL],
|
[TYPE_STRING, TYPE_STRING, TYPE_BOOL],
|
||||||
[null, null, false]
|
[null, null, false]
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -34,11 +29,11 @@ func validate(arguments: Array):
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
return false
|
return false
|
||||||
if arguments[1] < 0 or arguments[1] > 360:
|
if not escoria.object_manager.objects.has(arguments[1]):
|
||||||
escoria.logger.report_errors(
|
escoria.logger.report_errors(
|
||||||
"turn_to: invalid degrees",
|
"turn_to: invalid target object",
|
||||||
[
|
[
|
||||||
"Degree %d not between 0 and 360" % arguments[1]
|
"Object with global id %s not found" % arguments[1]
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
return false
|
return false
|
||||||
@@ -48,8 +43,8 @@ func validate(arguments: Array):
|
|||||||
# Run the command
|
# Run the command
|
||||||
func run(command_params: Array) -> int:
|
func run(command_params: Array) -> int:
|
||||||
(escoria.object_manager.get_object(command_params[0]).node as ESCItem)\
|
(escoria.object_manager.get_object(command_params[0]).node as ESCItem)\
|
||||||
.set_angle(
|
.turn_to(
|
||||||
command_params[1],
|
escoria.object_manager.get_object(command_params[1]).node,
|
||||||
command_params[2]
|
command_params[2]
|
||||||
)
|
)
|
||||||
return ESCExecution.RC_OK
|
return ESCExecution.RC_OK
|
||||||
|
|||||||
@@ -41,8 +41,8 @@ func perform_walk(
|
|||||||
target_position = destination.node.interact_position
|
target_position = destination.node.interact_position
|
||||||
|
|
||||||
var walk_context = ESCWalkContext.new(
|
var walk_context = ESCWalkContext.new(
|
||||||
destination.node,
|
destination,
|
||||||
Vector2(),
|
target_position,
|
||||||
is_fast,
|
is_fast,
|
||||||
true
|
true
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -231,6 +231,7 @@ func get_interact_position() -> Vector2:
|
|||||||
for c in get_children():
|
for c in get_children():
|
||||||
if c is Position2D:
|
if c is Position2D:
|
||||||
if c.get_owner() == self:
|
if c.get_owner() == self:
|
||||||
|
interact_position = global_position
|
||||||
continue
|
continue
|
||||||
interact_position = c.global_position
|
interact_position = c.global_position
|
||||||
|
|
||||||
@@ -360,7 +361,18 @@ func get_sprite() -> Node:
|
|||||||
# angles
|
# angles
|
||||||
func set_angle(deg: int, immediate = true):
|
func set_angle(deg: int, immediate = true):
|
||||||
_movable.set_angle(deg, immediate)
|
_movable.set_angle(deg, immediate)
|
||||||
|
|
||||||
|
|
||||||
|
# Turn to face another object
|
||||||
|
#
|
||||||
|
# #### Parameters
|
||||||
|
#
|
||||||
|
# - deg: The angle degree to set
|
||||||
|
# - immediate: Set the angle immediately. If false will show intermediate
|
||||||
|
# angles
|
||||||
|
func turn_to(object: Node, immediate = true):
|
||||||
|
_movable.turn_to(object, immediate)
|
||||||
|
|
||||||
|
|
||||||
# Play the talking animation
|
# Play the talking animation
|
||||||
func start_talking():
|
func start_talking():
|
||||||
|
|||||||
@@ -67,6 +67,7 @@ func add_new_item_by_id(item_id: String) -> void:
|
|||||||
var item_inventory_button = (
|
var item_inventory_button = (
|
||||||
escoria.object_manager.get_object(item_id).node as ESCItem
|
escoria.object_manager.get_object(item_id).node as ESCItem
|
||||||
).inventory_item.duplicate()
|
).inventory_item.duplicate()
|
||||||
|
item_inventory_button.global_id = item_id
|
||||||
items_ids_in_inventory[item_id] = item_inventory_button
|
items_ids_in_inventory[item_id] = item_inventory_button
|
||||||
get_node(inventory_ui_container).add_item(item_inventory_button)
|
get_node(inventory_ui_container).add_item(item_inventory_button)
|
||||||
|
|
||||||
|
|||||||
@@ -362,6 +362,20 @@ Set the angle
|
|||||||
|
|
||||||
#### Parameters
|
#### Parameters
|
||||||
|
|
||||||
|
- deg: The angle degree to set
|
||||||
|
- immediate: Set the angle immediately. If false will show intermediate
|
||||||
|
angles
|
||||||
|
|
||||||
|
### turn\_to
|
||||||
|
|
||||||
|
```gdscript
|
||||||
|
func turn_to(object: Node, immediate = true)
|
||||||
|
```
|
||||||
|
|
||||||
|
Turn to face another object
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
- deg: The angle degree to set
|
- deg: The angle degree to set
|
||||||
- immediate: Set the angle immediately. If false will show intermediate
|
- immediate: Set the angle immediately. If false will show intermediate
|
||||||
angles
|
angles
|
||||||
|
|||||||
@@ -182,6 +182,21 @@ Sets character's angle and plays according animation.
|
|||||||
If true, direction is switched immediately. Else, successive
|
If true, direction is switched immediately. Else, successive
|
||||||
animations are used so that the character turns to target angle.
|
animations are used so that the character turns to target angle.
|
||||||
|
|
||||||
|
### turn\_to
|
||||||
|
|
||||||
|
```gdscript
|
||||||
|
func turn_to(item: Node, immediate = true) -> void
|
||||||
|
```
|
||||||
|
|
||||||
|
Turns the character to face another item or character.
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
- item_id id of the object to face.
|
||||||
|
- immediate
|
||||||
|
If true, direction is switched immediately. Else, successive
|
||||||
|
animations are used so that the character turns to target angle.
|
||||||
|
|
||||||
### get\_shortest\_way\_to\_dir
|
### get\_shortest\_way\_to\_dir
|
||||||
|
|
||||||
```gdscript
|
```gdscript
|
||||||
|
|||||||
@@ -6,14 +6,9 @@
|
|||||||
|
|
||||||
## Description
|
## Description
|
||||||
|
|
||||||
`turn_to object degrees [immediate]`
|
`turn_to object object_to_face [immediate]`
|
||||||
|
|
||||||
Turns object to a degrees angle with a directions animation.
|
Turns object to face another object.
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
Set immediate to true to show directly switch to the direction and not
|
Set immediate to true to show directly switch to the direction and not
|
||||||
show intermediate angles
|
show intermediate angles
|
||||||
|
|||||||
@@ -351,14 +351,9 @@ Sets the position of object1 to the position (x,y).
|
|||||||
#### <a name="TransitionCommand.md"></a>`transition transition_name in|out` [API-Doc](api/TransitionCommand.md)
|
#### <a name="TransitionCommand.md"></a>`transition transition_name in|out` [API-Doc](api/TransitionCommand.md)
|
||||||
|
|
||||||
Performs a transition in our out manually.
|
Performs a transition in our out manually.
|
||||||
#### <a name="TurnToCommand.md"></a>`turn_to object degrees [immediate]` [API-Doc](api/TurnToCommand.md)
|
#### <a name="TurnToCommand.md"></a>`turn_to object object_to_face [immediate]` [API-Doc](api/TurnToCommand.md)
|
||||||
|
|
||||||
Turns object to a degrees angle with a directions animation.
|
Turns object to face another object.
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
Set immediate to true to show directly switch to the direction and not
|
Set immediate to true to show directly switch to the direction and not
|
||||||
show intermediate angles
|
show intermediate angles
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
extents = Vector2( 28.3873, 74.7806 )
|
extents = Vector2( 28.3873, 74.7806 )
|
||||||
|
|
||||||
[node name="bottle" type="Area2D"]
|
[node name="bottle" type="Area2D"]
|
||||||
|
pause_mode = 1
|
||||||
z_index = 1
|
z_index = 1
|
||||||
script = ExtResource( 3 )
|
script = ExtResource( 3 )
|
||||||
global_id = "r9_bottle"
|
global_id = "r9_bottle"
|
||||||
@@ -19,6 +20,7 @@ combine_if_action_used_among = PoolStringArray( "use" )
|
|||||||
use_from_inventory_only = true
|
use_from_inventory_only = true
|
||||||
inventory_item_scene_file = ExtResource( 2 )
|
inventory_item_scene_file = ExtResource( 2 )
|
||||||
dialog_color = Color( 1, 1, 1, 1 )
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
|
animations = null
|
||||||
|
|
||||||
[node name="sprite" type="Sprite" parent="."]
|
[node name="sprite" type="Sprite" parent="."]
|
||||||
texture = ExtResource( 1 )
|
texture = ExtResource( 1 )
|
||||||
|
|||||||
@@ -17,10 +17,14 @@ set_sound_state _music res://game/sfx/contemplation.ogg true
|
|||||||
set_global room1_visited true
|
set_global room1_visited true
|
||||||
set_global dialog_advance 0
|
set_global dialog_advance 0
|
||||||
set_global dialog_popup_advance 0
|
set_global dialog_popup_advance 0
|
||||||
walk player r1_destination_point
|
walk_block player r1_destination_point
|
||||||
wait 2
|
wait 2
|
||||||
walk player r1_destination_point2
|
walk_block player r1_destination_point2
|
||||||
wait 2
|
wait 2
|
||||||
set_angle player 225 false
|
set_angle player 225 false
|
||||||
|
wait 2
|
||||||
|
walk_block player r1_destination_point3
|
||||||
|
wait 1
|
||||||
|
turn_to player r1_r_exit false
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
27
game/rooms/room01/item.tscn
Normal file
27
game/rooms/room01/item.tscn
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
[gd_scene load_steps=3 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_item.gd" type="Script" id=1]
|
||||||
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_location.gd" type="Script" id=2]
|
||||||
|
|
||||||
|
[node name="item" type="Area2D"]
|
||||||
|
pause_mode = 1
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
tooltip_name = "Item on the wall"
|
||||||
|
default_action = "look"
|
||||||
|
dialog_color = Color( 1, 1, 1, 1 )
|
||||||
|
animations = null
|
||||||
|
|
||||||
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."]
|
||||||
|
position = Vector2( -652.737, -162.85 )
|
||||||
|
polygon = PoolVector2Array( 635.586, 253.345, 568.928, 60.1716, 709.047, 120.028, 699.524, 247.903 )
|
||||||
|
|
||||||
|
[node name="Line2D" type="Line2D" parent="."]
|
||||||
|
position = Vector2( -655.406, -430.678 )
|
||||||
|
points = PoolVector2Array( 634.097, 516.751, 578.861, 335.008, 701.805, 386.68, 696.459, 509.624, 634.097, 516.751 )
|
||||||
|
__meta__ = {
|
||||||
|
"_editor_description_": ""
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="ESCLocation" type="Position2D" parent="."]
|
||||||
|
position = Vector2( 0, 236.267 )
|
||||||
|
script = ExtResource( 2 )
|
||||||
@@ -18,8 +18,9 @@ dialog_color = Color( 1, 1, 1, 1 )
|
|||||||
animations = null
|
animations = null
|
||||||
|
|
||||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."]
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."]
|
||||||
|
position = Vector2( -1229.68, -223.006 )
|
||||||
polygon = PoolVector2Array( 1177.94, 348.61, 1175.95, 45.3759, 1276.06, 92.0953, 1277.95, 399.407 )
|
polygon = PoolVector2Array( 1177.94, 348.61, 1175.95, 45.3759, 1276.06, 92.0953, 1277.95, 399.407 )
|
||||||
|
|
||||||
[node name="Position2D" type="Position2D" parent="."]
|
[node name="Position2D" type="Position2D" parent="."]
|
||||||
position = Vector2( 1225.47, 353.99 )
|
position = Vector2( -0.432617, 124.685 )
|
||||||
script = ExtResource( 2 )
|
script = ExtResource( 2 )
|
||||||
|
|||||||
@@ -4,10 +4,10 @@
|
|||||||
[ext_resource path="res://game/rooms/room01/background.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://game/rooms/room01/background.tscn" type="PackedScene" id=2]
|
||||||
[ext_resource path="res://game/ui/commons/fonts/caslonantique.tres" type="DynamicFont" id=3]
|
[ext_resource path="res://game/ui/commons/fonts/caslonantique.tres" type="DynamicFont" id=3]
|
||||||
[ext_resource path="res://game/characters/mark/mark.tscn" type="PackedScene" id=4]
|
[ext_resource path="res://game/characters/mark/mark.tscn" type="PackedScene" id=4]
|
||||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_item.gd" type="Script" id=5]
|
|
||||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_room.gd" type="Script" id=6]
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_room.gd" type="Script" id=6]
|
||||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_location.gd" type="Script" id=7]
|
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_location.gd" type="Script" id=7]
|
||||||
[ext_resource path="res://game/rooms/room01/r_door.tscn" type="PackedScene" id=8]
|
[ext_resource path="res://game/rooms/room01/r_door.tscn" type="PackedScene" id=8]
|
||||||
|
[ext_resource path="res://game/rooms/room01/item.tscn" type="PackedScene" id=9]
|
||||||
|
|
||||||
[node name="room1" type="Node2D"]
|
[node name="room1" type="Node2D"]
|
||||||
script = ExtResource( 6 )
|
script = ExtResource( 6 )
|
||||||
@@ -49,99 +49,66 @@ position = Vector2( 3.5636, 0 )
|
|||||||
[node name="Hotspots" type="Node2D" parent="."]
|
[node name="Hotspots" type="Node2D" parent="."]
|
||||||
|
|
||||||
[node name="r_door" parent="Hotspots" instance=ExtResource( 8 )]
|
[node name="r_door" parent="Hotspots" instance=ExtResource( 8 )]
|
||||||
|
position = Vector2( 1225.9, 217.966 )
|
||||||
|
|
||||||
[node name="ESCLocation" type="Position2D" parent="Hotspots/r_door"]
|
[node name="ESCLocation" type="Position2D" parent="Hotspots/r_door"]
|
||||||
position = Vector2( 1229.68, 355.298 )
|
position = Vector2( 1.35498, 136.453 )
|
||||||
script = ExtResource( 7 )
|
script = ExtResource( 7 )
|
||||||
|
|
||||||
[node name="item" type="Area2D" parent="Hotspots"]
|
[node name="item" parent="Hotspots" instance=ExtResource( 9 )]
|
||||||
pause_mode = 1
|
position = Vector2( 480.542, 146.832 )
|
||||||
position = Vector2( -217.19, 0 )
|
|
||||||
script = ExtResource( 5 )
|
|
||||||
global_id = "r1_wall_item1"
|
global_id = "r1_wall_item1"
|
||||||
esc_script = "res://game/rooms/room01/esc/wall_item.esc"
|
esc_script = "res://game/rooms/room01/esc/wall_item.esc"
|
||||||
tooltip_name = "Item on the wall"
|
|
||||||
default_action = "look"
|
|
||||||
dialog_color = Color( 1, 1, 1, 1 )
|
|
||||||
animations = null
|
|
||||||
|
|
||||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/item"]
|
|
||||||
polygon = PoolVector2Array( 635.586, 253.345, 568.928, 60.1716, 709.047, 120.028, 699.524, 247.903 )
|
|
||||||
|
|
||||||
[node name="Position2D" type="Position2D" parent="Hotspots/item"]
|
|
||||||
position = Vector2( 671.798, 373.035 )
|
|
||||||
script = ExtResource( 7 )
|
|
||||||
global_id = "r1_left_object_interaction"
|
|
||||||
|
|
||||||
[node name="Line2D" type="Line2D" parent="Hotspots/item"]
|
|
||||||
position = Vector2( 0, -267.828 )
|
|
||||||
points = PoolVector2Array( 634.097, 516.751, 578.861, 335.008, 701.805, 386.68, 696.459, 509.624, 634.097, 516.751 )
|
|
||||||
__meta__ = {
|
|
||||||
"_editor_description_": ""
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="Hotspots/item"]
|
[node name="Label" type="Label" parent="Hotspots/item"]
|
||||||
margin_left = 563.635
|
margin_left = -105.12
|
||||||
margin_top = 265.925
|
margin_top = 121.762
|
||||||
margin_right = 759.635
|
margin_right = 122.88
|
||||||
margin_bottom = 279.925
|
margin_bottom = 142.762
|
||||||
custom_fonts/font = ExtResource( 3 )
|
custom_fonts/font = ExtResource( 3 )
|
||||||
text = "Character talks with text above"
|
text = "Character talks with text above"
|
||||||
__meta__ = {
|
__meta__ = {
|
||||||
"_edit_use_anchors_": false
|
"_edit_use_anchors_": false,
|
||||||
}
|
|
||||||
|
|
||||||
[node name="item2" type="Area2D" parent="Hotspots"]
|
|
||||||
pause_mode = 1
|
|
||||||
position = Vector2( 189.644, 0 )
|
|
||||||
script = ExtResource( 5 )
|
|
||||||
global_id = "r1_wall_item2"
|
|
||||||
esc_script = "res://game/rooms/room01/esc/wall_item_popupdialog.esc"
|
|
||||||
tooltip_name = "Item on the wall"
|
|
||||||
default_action = "look"
|
|
||||||
dialog_color = Color( 1, 1, 1, 1 )
|
|
||||||
animations = null
|
|
||||||
|
|
||||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Hotspots/item2"]
|
|
||||||
polygon = PoolVector2Array( 635.586, 253.345, 568.928, 60.1716, 709.047, 120.028, 699.524, 247.903 )
|
|
||||||
|
|
||||||
[node name="Position2D" type="Position2D" parent="Hotspots/item2"]
|
|
||||||
position = Vector2( 671.798, 373.035 )
|
|
||||||
script = ExtResource( 7 )
|
|
||||||
global_id = "r2_left_object_interaction"
|
|
||||||
|
|
||||||
[node name="Line2D" type="Line2D" parent="Hotspots/item2"]
|
|
||||||
position = Vector2( -4.23779, -267.828 )
|
|
||||||
points = PoolVector2Array( 634.097, 516.751, 578.861, 335.008, 701.805, 386.68, 696.459, 509.624, 634.097, 516.751 )
|
|
||||||
__meta__ = {
|
|
||||||
"_editor_description_": ""
|
"_editor_description_": ""
|
||||||
}
|
}
|
||||||
|
|
||||||
[node name="Label2" type="Label" parent="Hotspots/item2"]
|
[node name="item2" parent="Hotspots" instance=ExtResource( 9 )]
|
||||||
margin_left = 556.218
|
position = Vector2( 839.614, 146.832 )
|
||||||
margin_top = 265.925
|
global_id = "r1_wall_item2"
|
||||||
margin_right = 752.218
|
esc_script = "res://game/rooms/room01/esc/wall_item_popupdialog.esc"
|
||||||
margin_bottom = 279.925
|
|
||||||
|
[node name="Label" type="Label" parent="Hotspots/item2"]
|
||||||
|
margin_left = -105.12
|
||||||
|
margin_top = 121.762
|
||||||
|
margin_right = 122.88
|
||||||
|
margin_bottom = 142.762
|
||||||
custom_fonts/font = ExtResource( 3 )
|
custom_fonts/font = ExtResource( 3 )
|
||||||
text = "Character talks with popup"
|
text = "Character talks with popup"
|
||||||
__meta__ = {
|
__meta__ = {
|
||||||
"_edit_use_anchors_": false
|
"_edit_use_anchors_": false,
|
||||||
|
"_editor_description_": ""
|
||||||
}
|
}
|
||||||
|
|
||||||
[node name="player_start" type="Position2D" parent="."]
|
[node name="player_start" type="Position2D" parent="."]
|
||||||
position = Vector2( 653.761, 443.306 )
|
position = Vector2( 172.471, 434.487 )
|
||||||
script = ExtResource( 7 )
|
script = ExtResource( 7 )
|
||||||
global_id = "r1_start"
|
global_id = "r1_start"
|
||||||
is_start_location = true
|
is_start_location = true
|
||||||
|
|
||||||
[node name="destination_point" type="Position2D" parent="."]
|
[node name="orients_down_on_arrival" type="Position2D" parent="."]
|
||||||
position = Vector2( 476.984, 487.146 )
|
position = Vector2( 400.129, 432.969 )
|
||||||
script = ExtResource( 7 )
|
script = ExtResource( 7 )
|
||||||
global_id = "r1_destination_point"
|
global_id = "r1_destination_point"
|
||||||
interaction_direction = 4
|
interaction_direction = 4
|
||||||
|
|
||||||
[node name="destination_point2" type="Position2D" parent="."]
|
[node name="set_angle_by_esc" type="Position2D" parent="."]
|
||||||
position = Vector2( 994.586, 458.862 )
|
position = Vector2( 934.11, 502.959 )
|
||||||
script = ExtResource( 7 )
|
script = ExtResource( 7 )
|
||||||
global_id = "r1_destination_point2"
|
global_id = "r1_destination_point2"
|
||||||
player_orients_on_arrival = false
|
player_orients_on_arrival = false
|
||||||
|
|
||||||
|
[node name="turn_to_r_door_by_esc" type="Position2D" parent="."]
|
||||||
|
position = Vector2( 660.468, 381.489 )
|
||||||
|
script = ExtResource( 7 )
|
||||||
|
global_id = "r1_destination_point3"
|
||||||
|
player_orients_on_arrival = false
|
||||||
|
|||||||
Reference in New Issue
Block a user