Add new hovering function to the itemcontainer
This commit is contained in:
parent
a2185e081c
commit
41c2689e1f
@ -13,6 +13,8 @@ const TYPE_COLORS = [
|
|||||||
const input_dice_view = preload("res://UI/InputDiceView.tscn")
|
const input_dice_view = preload("res://UI/InputDiceView.tscn")
|
||||||
var input_dice_views = []
|
var input_dice_views = []
|
||||||
|
|
||||||
|
var hovering : bool = false setget set_hovering
|
||||||
|
|
||||||
var card : Card = Card.new() setget update_cardview
|
var card : Card = Card.new() setget update_cardview
|
||||||
|
|
||||||
|
|
||||||
@ -116,3 +118,19 @@ func disconnect_signals():
|
|||||||
|
|
||||||
func connect_signals():
|
func connect_signals():
|
||||||
card.connect("card_removed", self, "card_view_run")
|
card.connect("card_removed", self, "card_view_run")
|
||||||
|
|
||||||
|
|
||||||
|
func set_hovering(value : bool):
|
||||||
|
# set the hovering value
|
||||||
|
hovering = value
|
||||||
|
|
||||||
|
# wait until the old animation is finished
|
||||||
|
if ($AnimationPlayer.current_animation != "Hovering"
|
||||||
|
and $AnimationPlayer.current_animation != ""):
|
||||||
|
yield($AnimationPlayer, "animation_finished")
|
||||||
|
|
||||||
|
if hovering:
|
||||||
|
$AnimationPlayer.play("Hovering")
|
||||||
|
|
||||||
|
if not hovering:
|
||||||
|
$AnimationPlayer.play("RESET")
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=11 format=2]
|
[gd_scene load_steps=12 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://UI/CardView.gd" type="Script" id=1]
|
[ext_resource path="res://UI/CardView.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://Assets/Metropolis-font/Metropolis-Bold.ttf" type="DynamicFontData" id=4]
|
[ext_resource path="res://Assets/Metropolis-font/Metropolis-Bold.ttf" type="DynamicFontData" id=4]
|
||||||
@ -83,6 +83,23 @@ tracks/2/keys = {
|
|||||||
} ]
|
} ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id=11]
|
||||||
|
resource_name = "Hovering"
|
||||||
|
length = 0.15
|
||||||
|
step = 0.01
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/path = NodePath("LocalPosition:rect_position")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PoolRealArray( 0, 0.15 ),
|
||||||
|
"transitions": PoolRealArray( 6.9644, 1 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ Vector2( 0, 0 ), Vector2( 0, -40 ) ]
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id=8]
|
[sub_resource type="Animation" id=8]
|
||||||
length = 0.001
|
length = 0.001
|
||||||
tracks/0/type = "value"
|
tracks/0/type = "value"
|
||||||
@ -168,4 +185,5 @@ autowrap = true
|
|||||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
"anims/Drop Off" = SubResource( 10 )
|
"anims/Drop Off" = SubResource( 10 )
|
||||||
"anims/Fly Off" = SubResource( 7 )
|
"anims/Fly Off" = SubResource( 7 )
|
||||||
|
anims/Hovering = SubResource( 11 )
|
||||||
anims/RESET = SubResource( 8 )
|
anims/RESET = SubResource( 8 )
|
||||||
|
@ -13,6 +13,7 @@ export (String) var view_property = "item"
|
|||||||
var character : Character = Character.new() setget update_items_shown
|
var character : Character = Character.new() setget update_items_shown
|
||||||
var item_views = []
|
var item_views = []
|
||||||
|
|
||||||
|
var hovering_view : int = -1
|
||||||
|
|
||||||
func update_items_shown(new_character = null):
|
func update_items_shown(new_character = null):
|
||||||
|
|
||||||
@ -38,3 +39,42 @@ func remove_from_item_views(item_view):
|
|||||||
var to_remove : int = item_views.find(item_view)
|
var to_remove : int = item_views.find(item_view)
|
||||||
if to_remove != -1:
|
if to_remove != -1:
|
||||||
item_views.remove(to_remove)
|
item_views.remove(to_remove)
|
||||||
|
|
||||||
|
|
||||||
|
func _physics_process(_delta):
|
||||||
|
if not active:
|
||||||
|
hovering_view = -1
|
||||||
|
return
|
||||||
|
|
||||||
|
# set the hovering view if just selected
|
||||||
|
if hovering_view == -1:
|
||||||
|
hovering_view = 0
|
||||||
|
item_views[hovering_view].hovering = false
|
||||||
|
|
||||||
|
# move the selection forward or backward the list depending on input
|
||||||
|
if (Input.is_action_just_pressed("ui_down") or
|
||||||
|
Input.is_action_just_pressed("ui_right")):
|
||||||
|
|
||||||
|
# disable hovering on the previous item
|
||||||
|
item_views[hovering_view].hovering = false
|
||||||
|
|
||||||
|
# cycle forward
|
||||||
|
hovering_view += 1
|
||||||
|
if hovering_view >= len(item_views):
|
||||||
|
hovering_view = 0
|
||||||
|
|
||||||
|
# enable hovering on the present item
|
||||||
|
item_views[hovering_view].hovering = true
|
||||||
|
|
||||||
|
if (Input.is_action_just_pressed("ui_up") or
|
||||||
|
Input.is_action_just_pressed("ui_left")):
|
||||||
|
|
||||||
|
item_views[hovering_view].hovering = false
|
||||||
|
|
||||||
|
hovering_view -= 1
|
||||||
|
if hovering_view < 0:
|
||||||
|
hovering_view = len(item_views) -1
|
||||||
|
|
||||||
|
item_views[hovering_view].hovering = true
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user