godot-escoria / escoria-issues

Central Escoria issue tracker
3 stars 0 forks source link

Interaction locations for commands like teleport and walk need to be dependable #316

Open balloonpopper opened 2 years ago

balloonpopper commented 2 years ago

Describe the bug If you have a script like this

camera_push r7_lift_door_floor_2 3
teleport player r7_lift_door_floor_2 

and a node tree like this image

the camera_push command will use the "$camera_node" ESCLocation as the coordinates to push the camera to. The teleport however will use the last location found. In the screenshot that means the node called "camera_node" will be the teleport point, rather than the ESCLocation node.

esc_item.gd : get_interact_position() - interact_position will be the last ESCLocation based child node found

        for c in get_children():
                if c is Position2D:
                        if interact_position != null:
                                multiple_positions_found = true
                        interact_position = c.global_position

We need a naming convention or a different node type so we're not relying on node order for consistent behavior for walk/teleport/etc commands.

Whoever works on this, please check any other commands that look for a child ESCLocation as their interaction point and make sure all get the same fix.

To Reproduce As above

Expected behavior Dependable interaction locations for ESCItems.

Versions

Additional context Add any other context about the problem here.