Added management of overlapped item in room 9.
This commit is contained in:
@@ -173,13 +173,13 @@ func manage_input(viewport : Viewport, event : InputEvent, shape_idx : int):
|
||||
|
||||
if event.doubleclick:
|
||||
if event.button_index == BUTTON_LEFT:
|
||||
emit_signal("mouse_double_left_clicked_item", global_id, event)
|
||||
emit_signal("mouse_double_left_clicked_item", self, event)
|
||||
else:
|
||||
if event.is_pressed():
|
||||
if event.button_index == BUTTON_LEFT:
|
||||
emit_signal("mouse_left_clicked_item", global_id, event)
|
||||
emit_signal("mouse_left_clicked_item", self, event)
|
||||
elif event.button_index == BUTTON_RIGHT:
|
||||
emit_signal("mouse_right_clicked_item", global_id, event)
|
||||
emit_signal("mouse_right_clicked_item", self, event)
|
||||
|
||||
|
||||
func _on_mouse_entered():
|
||||
|
||||
@@ -60,7 +60,7 @@ func _on_mouse_entered_item(item : ESCItem) -> void:
|
||||
printt("Item focused : ", item.global_id)
|
||||
|
||||
if !hover_stack.empty():
|
||||
if item.z_index < hover_stack.back().z_index:
|
||||
if item.z_index > hover_stack.back().z_index:
|
||||
hover_stack.insert(hover_stack.size()-1, item)
|
||||
else:
|
||||
hover_stack.push_back(item)
|
||||
@@ -82,17 +82,18 @@ func _on_mouse_exited_item(item : ESCItem) -> void:
|
||||
escoria.main.current_scene.game.element_focused(hotspot_focused)
|
||||
|
||||
|
||||
func _on_mouse_left_clicked_item(item_global_id : String, event : InputEvent) -> void:
|
||||
printt("Item left clicked", item_global_id, event)
|
||||
escoria.main.current_scene.game.left_click_on_item(item_global_id, event)
|
||||
func _on_mouse_left_clicked_item(item : ESCItem, event : InputEvent) -> void:
|
||||
if hover_stack.empty() or hover_stack.back() == item:
|
||||
printt("Item left clicked", item.global_id, event)
|
||||
escoria.main.current_scene.game.left_click_on_item(item.global_id, event)
|
||||
|
||||
func _on_mouse_left_double_clicked_item(item_global_id : String, event : InputEvent) -> void:
|
||||
printt("Item left double clicked", item_global_id, event)
|
||||
escoria.main.current_scene.game.left_double_click_on_item(item_global_id, event)
|
||||
|
||||
func _on_mouse_right_clicked_item(item_global_id : String, event : InputEvent) -> void:
|
||||
printt("Item right clicked", item_global_id, event)
|
||||
escoria.main.current_scene.game.right_click_on_item(item_global_id, event)
|
||||
func _on_mouse_left_double_clicked_item(item : ESCItem, event : InputEvent) -> void:
|
||||
printt("Item left double clicked", item.global_id, event)
|
||||
escoria.main.current_scene.game.left_double_click_on_item(item.global_id, event)
|
||||
|
||||
func _on_mouse_right_clicked_item(item : ESCItem, event : InputEvent) -> void:
|
||||
printt("Item right clicked", item.global_id, event)
|
||||
escoria.main.current_scene.game.right_click_on_item(item.global_id, event)
|
||||
|
||||
|
||||
##################################################################################
|
||||
|
||||
@@ -49,6 +49,10 @@ func add_new_item_by_id(item_id : String) -> void:
|
||||
escoria.report_errors("inventory_ui.gd:add_new_item_by_id()",
|
||||
["Item global id '"+ item_id + "' does not exist.",
|
||||
"Check item's id in ESCORIA_ALL_ITEMS scene."])
|
||||
if !all_items.get_inventory_item(item_id):
|
||||
escoria.report_errors("inventory_ui.gd:add_new_item_by_id()",
|
||||
["Item global id '"+ item_id + "' doesn't have corresponding inventory item.",
|
||||
"Check item's id in ESCORIA_ALL_ITEMS scene."])
|
||||
var item_inventory_button = all_items.get_inventory_item(item_id).duplicate()
|
||||
items_ids_in_inventory[item_id] = item_inventory_button
|
||||
get_node(items_container).add_item(item_inventory_button)
|
||||
|
||||
@@ -1,29 +1,31 @@
|
||||
[gd_scene load_steps=6 format=2]
|
||||
[gd_scene load_steps=7 format=2]
|
||||
|
||||
[ext_resource path="res://game/items/escitems/empty_sheet_escitem.tscn" type="PackedScene" id=1]
|
||||
[ext_resource path="res://game/items/escitems/pen_escitem.tscn" type="PackedScene" id=2]
|
||||
[ext_resource path="res://game/items/escitems/wrench_escitem.tscn" type="PackedScene" id=3]
|
||||
[ext_resource path="res://game/items/escitems/filled_sheet_escitem.tscn" type="PackedScene" id=4]
|
||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/items_inventory.gd" type="Script" id=5]
|
||||
[ext_resource path="res://game/items/escitems/bottle_escitem.tscn" type="PackedScene" id=6]
|
||||
|
||||
[node name="ESCORIA_ALL_ITEMS" type="Node2D"]
|
||||
visible = false
|
||||
script = ExtResource( 5 )
|
||||
|
||||
[node name="empty_sheet" parent="." instance=ExtResource( 1 )]
|
||||
dialog_color = Color( 1, 1, 1, 1 )
|
||||
interact_positions = {
|
||||
"default": Vector2( 0, 0 )
|
||||
}
|
||||
|
||||
[node name="filled_sheet" parent="." instance=ExtResource( 4 )]
|
||||
position = Vector2( -29.7823, 133.569 )
|
||||
dialog_color = Color( 1, 1, 1, 1 )
|
||||
interact_positions = {
|
||||
"default": Vector2( -29.7823, 133.569 )
|
||||
}
|
||||
|
||||
[node name="pen" parent="." instance=ExtResource( 2 )]
|
||||
position = Vector2( 136.277, 13.5374 )
|
||||
dialog_color = Color( 1, 1, 1, 1 )
|
||||
interact_positions = {
|
||||
"default": Vector2( 136.277, 13.5374 )
|
||||
}
|
||||
@@ -33,3 +35,9 @@ position = Vector2( 293.311, 2.70747 )
|
||||
interact_positions = {
|
||||
"default": Vector2( 293.311, 2.70747 )
|
||||
}
|
||||
|
||||
[node name="bottle" parent="." instance=ExtResource( 6 )]
|
||||
position = Vector2( 59.4604, 167.678 )
|
||||
interact_positions = {
|
||||
"default": Vector2( 0, 0 )
|
||||
}
|
||||
|
||||
8
game/items/escitems/bottle.esc
Executable file
8
game/items/escitems/bottle.esc
Executable file
@@ -0,0 +1,8 @@
|
||||
:look
|
||||
say player "It's a bottle."
|
||||
stop
|
||||
|
||||
:pickup
|
||||
inventory_add r9_bottle true
|
||||
set_active r9_bottle false
|
||||
|
||||
28
game/items/escitems/bottle_escitem.tscn
Normal file
28
game/items/escitems/bottle_escitem.tscn
Normal file
@@ -0,0 +1,28 @@
|
||||
[gd_scene load_steps=5 format=2]
|
||||
|
||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/escitem.gd" type="Script" id=1]
|
||||
[ext_resource path="res://game/items/textures/genericItem_color_127.png" type="Texture" id=2]
|
||||
[ext_resource path="res://game/items/inventory/bottle_escinventoryitem.tscn" type="PackedScene" id=3]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=1]
|
||||
extents = Vector2( 28.3873, 74.7806 )
|
||||
|
||||
[node name="bottle" type="Area2D"]
|
||||
z_index = 1
|
||||
script = ExtResource( 1 )
|
||||
global_id = "r9_bottle"
|
||||
esc_script = "res://game/items/escitems/bottle.esc"
|
||||
tooltip_name = "Bottle"
|
||||
default_action = "pickup"
|
||||
use_from_inventory_only = true
|
||||
inventory_item_scene_file = ExtResource( 3 )
|
||||
dialog_color = Color( 1, 1, 1, 1 )
|
||||
interact_positions = {
|
||||
"default": Vector2( 59.3937, 58.8658 )
|
||||
}
|
||||
|
||||
[node name="Sprite" type="Sprite" parent="."]
|
||||
texture = ExtResource( 2 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource( 1 )
|
||||
14
game/items/inventory/bottle_escinventoryitem.tscn
Normal file
14
game/items/inventory/bottle_escinventoryitem.tscn
Normal file
@@ -0,0 +1,14 @@
|
||||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://game/items/textures/genericItem_color_127.png" type="Texture" id=1]
|
||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/inventory_item.gd" type="Script" id=2]
|
||||
|
||||
[node name="empty_sheet" type="TextureButton"]
|
||||
margin_right = 50.0
|
||||
margin_bottom = 140.0
|
||||
texture_normal = ExtResource( 1 )
|
||||
script = ExtResource( 2 )
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
global_id = "r9_bottle"
|
||||
@@ -1,9 +1,7 @@
|
||||
[gd_scene load_steps=7 format=2]
|
||||
|
||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/escitem.gd" type="Script" id=1]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=1]
|
||||
extents = Vector2( 20.13, 26.023 )
|
||||
[ext_resource path="res://game/items/escitems/bottle_escitem.tscn" type="PackedScene" id=2]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id=2]
|
||||
extents = Vector2( 66.4415, 154.457 )
|
||||
@@ -47,7 +45,7 @@ tracks/2/keys = {
|
||||
"values": [ false ]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/path = NodePath("statue:visible")
|
||||
tracks/3/path = NodePath("bottle:visible")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/imported = false
|
||||
@@ -98,7 +96,7 @@ tracks/2/keys = {
|
||||
"values": [ false ]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/path = NodePath("statue:visible")
|
||||
tracks/3/path = NodePath("bottle:visible")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/imported = false
|
||||
@@ -149,7 +147,7 @@ tracks/2/keys = {
|
||||
"values": [ true ]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/path = NodePath("statue:visible")
|
||||
tracks/3/path = NodePath("bottle:visible")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/imported = false
|
||||
@@ -221,26 +219,16 @@ default_color = Color( 0.4, 0.501961, 1, 1 )
|
||||
color = Color( 0.4, 0.501961, 1, 1 )
|
||||
polygon = PoolVector2Array( 1.07718, 7.2891, -37.6216, 23.335, -37.6216, 328.206, 2.02106, 302.722 )
|
||||
|
||||
[node name="statue" type="Area2D" parent="."]
|
||||
[node name="bottle" parent="." instance=ExtResource( 2 )]
|
||||
visible = false
|
||||
position = Vector2( 1.12247, 0 )
|
||||
z_index = 1
|
||||
script = ExtResource( 1 )
|
||||
global_id = "statue"
|
||||
tooltip_name = "Statue"
|
||||
dialog_color = Color( 1, 1, 1, 1 )
|
||||
position = Vector2( 51.1535, 45.7845 )
|
||||
scale = Vector2( 0.507, 0.507 )
|
||||
interact_positions = {
|
||||
"default": Vector2( 59.3937, 58.8658 )
|
||||
"default": Vector2( 51.1535, 45.7845 )
|
||||
}
|
||||
|
||||
[node name="object" type="Polygon2D" parent="statue"]
|
||||
position = Vector2( 1.18921, 7.13524 )
|
||||
color = Color( 0.662745, 0.529412, 0, 1 )
|
||||
polygon = PoolVector2Array( 52.338, 36.2829, 57.6774, 26.2716, 62.3493, 36.9503, 70.3583, 35.6154, 70.692, 27.2727, 76.3651, 26.6053, 76.3651, 29.9424, 72.9964, 30.7421, 72.9964, 39.2744, 61.4878, 45.624, 69.2264, 73.602, 43.4311, 73.4035, 53.7492, 45.4256, 41.4468, 39.8697, 41.6453, 31.139, 37.8752, 30.3453, 37.6768, 26.5752, 44.4232, 27.7657, 44.4232, 34.1154 )
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="statue"]
|
||||
position = Vector2( 58.2712, 58.8658 )
|
||||
shape = SubResource( 1 )
|
||||
[node name="Position2D" type="Position2D" parent="bottle"]
|
||||
position = Vector2( 298.463, 596.926 )
|
||||
|
||||
[node name="CollisionPolygon2D" type="CollisionShape2D" parent="."]
|
||||
position = Vector2( 64.2172, 153.408 )
|
||||
|
||||
@@ -1,85 +0,0 @@
|
||||
[gd_scene load_steps=4 format=2]
|
||||
|
||||
[ext_resource path="res://addons/escoria-core/game/core-scripts/escitem.gd" type="Script" id=1]
|
||||
|
||||
[sub_resource type="Animation" id=1]
|
||||
resource_name = "state_round"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("square:visible")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"update": 1,
|
||||
"values": [ false ]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/path = NodePath("round:visible")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"update": 1,
|
||||
"values": [ true ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=2]
|
||||
resource_name = "state_square"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath("square:visible")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"update": 1,
|
||||
"values": [ true ]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/path = NodePath("round:visible")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"update": 1,
|
||||
"values": [ false ]
|
||||
}
|
||||
|
||||
[node name="item_wall" type="Area2D"]
|
||||
script = ExtResource( 1 )
|
||||
dialog_color = Color( 1, 1, 1, 1 )
|
||||
interact_positions = {
|
||||
"default": Vector2( 0, 0 )
|
||||
}
|
||||
|
||||
[node name="square" type="Line2D" parent="."]
|
||||
points = PoolVector2Array( 531, 527.828, 532, 483.828, 532.586, 445.745, 533.262, 401.771, 534, 353.828, 575.992, 355.093, 617.954, 356.357, 660.945, 357.652, 700, 358.828, 700.786, 402.832, 701.536, 444.836, 702.286, 486.841, 703, 526.828, 659.007, 526.574, 619.997, 526.348, 574.998, 526.088, 530, 525.828 )
|
||||
__meta__ = {
|
||||
"_editor_description_": ""
|
||||
}
|
||||
|
||||
[node name="round" type="Line2D" parent="."]
|
||||
visible = false
|
||||
points = PoolVector2Array( 559.845, 508.706, 537.622, 482.513, 532.586, 445.745, 537.622, 414.255, 551.908, 384.095, 578.101, 366.633, 617.954, 356.357, 659.058, 363.458, 677.313, 375.364, 692.393, 399.175, 701.918, 441.241, 694.774, 484.101, 677.313, 504.737, 652.708, 518.23, 622.548, 526.167, 586.038, 518.23, 558.258, 506.324 )
|
||||
__meta__ = {
|
||||
"_editor_description_": ""
|
||||
}
|
||||
|
||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."]
|
||||
position = Vector2( 0, 265.2 )
|
||||
polygon = PoolVector2Array( 528, 85, 529, 264, 708, 263, 706, 85 )
|
||||
|
||||
[node name="animation" type="AnimationPlayer" parent="."]
|
||||
anims/state_round = SubResource( 1 )
|
||||
anims/state_square = SubResource( 2 )
|
||||
Reference in New Issue
Block a user