It's Cow Game! Version 2.04!
This commit is contained in:
commit
a9e1ed9ddd
3148 changed files with 95332 additions and 0 deletions
52
UI/BeachHole/BeachHoleMenu.gd
Normal file
52
UI/BeachHole/BeachHoleMenu.gd
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
extends Window
|
||||
|
||||
@onready var inventoryItemDisplayer = %Inventory
|
||||
|
||||
var itemTransitionScene = preload("res://UI/Sugaring/ItemFadeTransition.tscn")
|
||||
|
||||
var risingAnimPosition = Vector2(160, 360)
|
||||
var holeInventory:Inventory
|
||||
|
||||
func _ready():
|
||||
inventoryItemDisplayer.fiveButtons = true
|
||||
inventoryItemDisplayer.allButtons = true
|
||||
|
||||
inventoryItemDisplayer.buttonPressed.connect(grab_item)
|
||||
inventoryItemDisplayer.fiveButtonPressed.connect(grab_item.bind(5))
|
||||
inventoryItemDisplayer.allButtonPressed.connect(grab_item.bind(999999))
|
||||
|
||||
func opened():
|
||||
get_tree().paused = true
|
||||
holeInventory = InventoryManager.get_inventory("HoleInventory")
|
||||
inventoryItemDisplayer.inventory = filter_inventory(holeInventory)
|
||||
inventoryItemDisplayer.update_display()
|
||||
|
||||
func grab_item(item:Item, quantity:int = 1):
|
||||
var itemsInInv = InventoryManager.get_item_count(item, "HoleInventory")
|
||||
if itemsInInv < quantity:
|
||||
quantity = itemsInInv
|
||||
|
||||
if quantity <= 0:
|
||||
return
|
||||
|
||||
InventoryManager.remove_item_from_inventory(item, quantity, "HoleInventory")
|
||||
InventoryManager.add_item_to_inventory(item, quantity)
|
||||
|
||||
grab_item_animation(item)
|
||||
|
||||
inventoryItemDisplayer.inventory = filter_inventory(holeInventory)
|
||||
inventoryItemDisplayer.update_display()
|
||||
|
||||
func grab_item_animation(item):
|
||||
var riseAnimation = preload("res://UI/BeachHole/ItemRisingTransition.tscn").instantiate()
|
||||
riseAnimation.start_transition(item.get_sprite())
|
||||
riseAnimation.position = risingAnimPosition
|
||||
add_child(riseAnimation)
|
||||
|
||||
func filter_inventory(inventory):
|
||||
var filteredInv:Inventory = inventory.duplicate()
|
||||
return filteredInv
|
||||
|
||||
func _on_leave_button_pressed():
|
||||
get_tree().paused = false
|
||||
hide()
|
||||
88
UI/BeachHole/BeachHoleMenu.tscn
Normal file
88
UI/BeachHole/BeachHoleMenu.tscn
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
[gd_scene load_steps=6 format=3 uid="uid://baol6qs3m4f1h"]
|
||||
|
||||
[ext_resource type="Theme" uid="uid://dkofjwlcf80gp" path="res://UI/Themes/InteractionPopupTheme.tres" id="1_klena"]
|
||||
[ext_resource type="Script" path="res://UI/BeachHole/BeachHoleMenu.gd" id="2_ubrll"]
|
||||
[ext_resource type="PackedScene" uid="uid://c3ku75p4ep3c7" path="res://UI/Inventory/InventoryDisplayer.tscn" id="3_sn6aa"]
|
||||
[ext_resource type="Texture2D" uid="uid://dxh2ma3cc001r" path="res://Objects/Beach/Hole/BeachHole.png" id="4_ldell"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_n5jl5"]
|
||||
bg_color = Color(0.188235, 0.105882, 0.0117647, 1)
|
||||
border_width_left = 4
|
||||
border_width_top = 4
|
||||
border_width_right = 19
|
||||
border_width_bottom = 4
|
||||
border_color = Color(0, 0, 0, 1)
|
||||
|
||||
[node name="BeachHoleMenu" type="Window"]
|
||||
process_mode = 3
|
||||
size = Vector2i(600, 500)
|
||||
unresizable = true
|
||||
borderless = true
|
||||
theme = ExtResource("1_klena")
|
||||
script = ExtResource("2_ubrll")
|
||||
|
||||
[node name="PanelContainer" type="PanelContainer" parent="."]
|
||||
offset_right = 590.0
|
||||
offset_bottom = 8.0
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_n5jl5")
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer"]
|
||||
custom_minimum_size = Vector2(590, 490)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
theme_override_constants/separation = 11
|
||||
|
||||
[node name="HoleName" type="Label" parent="PanelContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 0
|
||||
theme_override_colors/font_color = Color(0.54902, 0.239216, 0, 1)
|
||||
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
|
||||
theme_override_constants/outline_size = 16
|
||||
theme_override_font_sizes/font_size = 32
|
||||
text = "Hole"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 2
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="PanelContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
theme_override_constants/margin_left = 8
|
||||
theme_override_constants/margin_right = 8
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer/VBoxContainer/MarginContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="PanelContainer" type="PanelContainer" parent="PanelContainer/VBoxContainer/MarginContainer/HBoxContainer"]
|
||||
self_modulate = Color(1, 1, 1, 0)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Inventory" parent="PanelContainer/VBoxContainer/MarginContainer/HBoxContainer" instance=ExtResource("3_sn6aa")]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Title" parent="PanelContainer/VBoxContainer/MarginContainer/HBoxContainer/Inventory" index="0"]
|
||||
visible = true
|
||||
theme_override_colors/font_color = Color(0.690196, 1, 1, 1)
|
||||
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
|
||||
theme_override_constants/outline_size = 16
|
||||
text = "Hole Inventory"
|
||||
|
||||
[node name="MarginContainer2" type="MarginContainer" parent="PanelContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/margin_bottom = 5
|
||||
|
||||
[node name="LeaveButton" type="Button" parent="PanelContainer/VBoxContainer/MarginContainer2"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
text = "Leave"
|
||||
|
||||
[node name="Hole" type="Sprite2D" parent="."]
|
||||
position = Vector2(160, 355)
|
||||
texture = ExtResource("4_ldell")
|
||||
|
||||
[connection signal="pressed" from="PanelContainer/VBoxContainer/MarginContainer2/LeaveButton" to="." method="_on_leave_button_pressed"]
|
||||
|
||||
[editable path="PanelContainer/VBoxContainer/MarginContainer/HBoxContainer/Inventory"]
|
||||
35
UI/BeachHole/ItemRisingTransition.gd
Normal file
35
UI/BeachHole/ItemRisingTransition.gd
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
extends Node2D
|
||||
|
||||
var rising = false
|
||||
|
||||
var growSpeed = 1.6
|
||||
var riseSpeed = 80
|
||||
var loiterRiseSpeed = 10
|
||||
|
||||
var fadeInSpeed = 1.1
|
||||
|
||||
var readyToLoiter = false
|
||||
var loiterTimer = 1
|
||||
|
||||
func start_transition(itemSprite):
|
||||
rising = true
|
||||
%ItemSprite.texture = itemSprite
|
||||
%ItemSprite.self_modulate.a = 0.1
|
||||
$ItemSprite.scale = Vector2(0.1, 0.1)
|
||||
|
||||
func _process(delta):
|
||||
if rising:
|
||||
$ItemSprite.position -= Vector2(0, riseSpeed * delta)
|
||||
$ItemSprite.scale += Vector2(growSpeed * delta, growSpeed * delta)
|
||||
%ItemSprite.self_modulate.a += fadeInSpeed * delta
|
||||
if %ItemSprite.self_modulate.a >= 1:
|
||||
%ItemSprite.self_modulate.a = 1
|
||||
readyToLoiter = true
|
||||
rising = false
|
||||
|
||||
if readyToLoiter:
|
||||
if loiterTimer > 0:
|
||||
$ItemSprite.position -= Vector2(0, loiterRiseSpeed * delta)
|
||||
loiterTimer -= delta
|
||||
else:
|
||||
queue_free()
|
||||
10
UI/BeachHole/ItemRisingTransition.tscn
Normal file
10
UI/BeachHole/ItemRisingTransition.tscn
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://bpcx1h7fbjqxn"]
|
||||
|
||||
[ext_resource type="Script" path="res://UI/BeachHole/ItemRisingTransition.gd" id="1_qt0i6"]
|
||||
|
||||
[node name="ItemRisingTransition" type="Node2D"]
|
||||
script = ExtResource("1_qt0i6")
|
||||
|
||||
[node name="ItemSprite" type="Sprite2D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
scale = Vector2(2, 2)
|
||||
Loading…
Add table
Add a link
Reference in a new issue