From 2c183e2e645b5fdf0324a9b1baf584c9dc06d268 Mon Sep 17 00:00:00 2001 From: tpart Date: Fri, 16 Aug 2024 21:07:02 +0200 Subject: Add item bubble colours --- client/menu/theme/item_bubble_progress_style.tres | 6 ++++++ client/player/item_bubble.gd | 12 ++++++++++-- client/player/item_bubble.tscn | 9 +++------ 3 files changed, 19 insertions(+), 8 deletions(-) create mode 100644 client/menu/theme/item_bubble_progress_style.tres (limited to 'client') diff --git a/client/menu/theme/item_bubble_progress_style.tres b/client/menu/theme/item_bubble_progress_style.tres new file mode 100644 index 00000000..69543f24 --- /dev/null +++ b/client/menu/theme/item_bubble_progress_style.tres @@ -0,0 +1,6 @@ +[gd_resource type="StyleBoxFlat" format=3 uid="uid://brw8uogdgx2gf"] + +[resource] +resource_local_to_scene = true +bg_color = Color(0.501961, 0, 0, 1) +corner_radius_bottom_left = 32 diff --git a/client/player/item_bubble.gd b/client/player/item_bubble.gd index 5a013053..1b7dbaa5 100644 --- a/client/player/item_bubble.gd +++ b/client/player/item_bubble.gd @@ -22,15 +22,20 @@ signal submit_message @onready var progress: ProgressBar = $SubViewport/ItemMessage/VBoxContainer/ProgressBar var item: Item - var timeout_remaining := 0. +var timeout_initial := 0. +var progress_style = preload("res://menu/theme/item_bubble_progress_style.tres") + +func _init(): + progress_style = progress_style.duplicate() -func set_item(t: String, timeout_initial: float, timeout_remaining_: float): +func set_item(t: String, timeout_initial_: float, timeout_remaining_: float): visible = true item = ItemFactory.produce(t, base) base.add_child(item) timeout_remaining = timeout_remaining_ + timeout_initial = timeout_initial_ progress.max_value = timeout_initial progress.value = timeout_remaining @@ -44,3 +49,6 @@ func _process(delta): item.rotation.y += delta * TAU * .05 timeout_remaining -= delta progress.value = timeout_remaining + var x: float = timeout_remaining / timeout_initial + progress_style.bg_color = Color(min((1-x) * 2, 1), min(x * 2, 1), 0.) + progress.add_theme_stylebox_override("fill", progress_style) diff --git a/client/player/item_bubble.tscn b/client/player/item_bubble.tscn index 71359670..89cd89ad 100644 --- a/client/player/item_bubble.tscn +++ b/client/player/item_bubble.tscn @@ -1,6 +1,7 @@ [gd_scene load_steps=9 format=3 uid="uid://cj777mi5nok6c"] [ext_resource type="Script" path="res://player/item_bubble.gd" id="1_84g24"] +[ext_resource type="StyleBox" uid="uid://brw8uogdgx2gf" path="res://menu/theme/item_bubble_progress_style.tres" id="2_5qt7f"] [sub_resource type="QuadMesh" id="QuadMesh_tlsxo"] @@ -31,10 +32,6 @@ ambient_light_energy = 0.5 corner_radius_bottom_right = 32 corner_radius_bottom_left = 32 -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_x1tnr"] -bg_color = Color(0.415945, 0.888786, 0, 1) -corner_radius_bottom_left = 32 - [node name="ItemBubble" type="MeshInstance3D"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0) visible = false @@ -86,7 +83,7 @@ environment = SubResource("Environment_iyxrx") custom_minimum_size = Vector2(0, 32) layout_mode = 2 theme_override_styles/background = SubResource("StyleBoxFlat_ima0t") -theme_override_styles/fill = SubResource("StyleBoxFlat_x1tnr") +theme_override_styles/fill = ExtResource("2_5qt7f") step = 0.0 -value = 82.94 +value = 100.0 show_percentage = false -- cgit v1.2.3-70-g09d2 From 5e9ad1a714352d8d24c20d62e75fbc06fc0ecc8b Mon Sep 17 00:00:00 2001 From: tpart Date: Fri, 16 Aug 2024 21:19:18 +0200 Subject: Fix round corner on bottom right of item bubble progress bar --- client/player/item_bubble.gd | 1 + 1 file changed, 1 insertion(+) (limited to 'client') diff --git a/client/player/item_bubble.gd b/client/player/item_bubble.gd index 1b7dbaa5..927a5299 100644 --- a/client/player/item_bubble.gd +++ b/client/player/item_bubble.gd @@ -51,4 +51,5 @@ func _process(delta): progress.value = timeout_remaining var x: float = timeout_remaining / timeout_initial progress_style.bg_color = Color(min((1-x) * 2, 1), min(x * 2, 1), 0.) + progress_style.corner_radius_bottom_right = max(32.-(1.-x)*320, 0) progress.add_theme_stylebox_override("fill", progress_style) -- cgit v1.2.3-70-g09d2 From 444113ddace8b843c79c7f389c0733b342170877 Mon Sep 17 00:00:00 2001 From: tpart Date: Fri, 16 Aug 2024 21:32:35 +0200 Subject: FIx interpolate angle function --- client/global.gd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'client') diff --git a/client/global.gd b/client/global.gd index 647cac32..b2459d74 100644 --- a/client/global.gd +++ b/client/global.gd @@ -350,7 +350,7 @@ static func interpolate_angle(current, target, dt): current = fmod(current, PI * 2) target = fmod(target, PI * 2) if abs(target - current) > PI: - if target < 0: + if target - current < 0: target += PI * 2 else: target -= PI * 2 -- cgit v1.2.3-70-g09d2 From d665bc5d032a18c52f4e06952ff9101f8550ef4f Mon Sep 17 00:00:00 2001 From: tpart Date: Fri, 16 Aug 2024 21:50:03 +0200 Subject: Add strawberry model & implement item --- client/map/item_factory.gd | 2 ++ client/map/items/strawberry.gd | 33 +++++++++++++++++++++++++++++++++ client/map/items/strawberry.res | Bin 0 -> 8522 bytes client/map/items/strawberry.tscn | 10 ++++++++++ 4 files changed, 45 insertions(+) create mode 100644 client/map/items/strawberry.gd create mode 100644 client/map/items/strawberry.res create mode 100644 client/map/items/strawberry.tscn (limited to 'client') diff --git a/client/map/item_factory.gd b/client/map/item_factory.gd index 8d768794..39e1e12d 100644 --- a/client/map/item_factory.gd +++ b/client/map/item_factory.gd @@ -108,5 +108,7 @@ static func produce(name: String, owned_by: Node3D) -> Item: return Coconut.new(owned_by) "coconut-foodprocessor": return CoconutFoodProcessor.new(owned_by) + "strawberry": + return Strawberry.new(owned_by) var t: return GenericItem.new(owned_by, t) diff --git a/client/map/items/strawberry.gd b/client/map/items/strawberry.gd new file mode 100644 index 00000000..ef9abb64 --- /dev/null +++ b/client/map/items/strawberry.gd @@ -0,0 +1,33 @@ +# Hurry Curry! - a game about cooking +# Copyright 2024 tpart +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, version 3 of the License only. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +class_name Strawberry +extends Item + +var cut: CPUParticles3D = load("res://map/items/cut.tscn").instantiate() + +func _init(owned_by_: Node3D): + super(owned_by_) + base.add_child(load("res://map/items/strawberry.tscn").instantiate()) + base.add_child(cut) + cut.color = Color(1., 0., 0.) + +func progress(p: float, warn: bool): + super(p, warn) + cut.emitting = true + +func finish(warn: bool): + super(warn) + cut.emitting = false diff --git a/client/map/items/strawberry.res b/client/map/items/strawberry.res new file mode 100644 index 00000000..46a723d1 Binary files /dev/null and b/client/map/items/strawberry.res differ diff --git a/client/map/items/strawberry.tscn b/client/map/items/strawberry.tscn new file mode 100644 index 00000000..24e7be41 --- /dev/null +++ b/client/map/items/strawberry.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=2 format=3 uid="uid://df1xktleeqg3m"] + +[ext_resource type="ArrayMesh" uid="uid://c2uwqjxx7mnqp" path="res://map/items/strawberry.res" id="1_8dx1o"] + +[node name="Strawberry" type="Node3D"] + +[node name="Mesh" type="MeshInstance3D" parent="."] +transform = Transform3D(-5.68248e-10, -0.013, 0, -5.68248e-10, 2.48389e-17, -0.013, 0.013, -5.68248e-10, -5.68248e-10, 0, 0.125, 0) +mesh = ExtResource("1_8dx1o") +skeleton = NodePath("") -- cgit v1.2.3-70-g09d2 From 4f1a15ad3acfdd231846ea7d18650eeded88867d Mon Sep 17 00:00:00 2001 From: tpart Date: Fri, 16 Aug 2024 21:52:07 +0200 Subject: Fix incorrect node name in fish crate scene --- client/map/tiles/fish_crate.tscn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'client') diff --git a/client/map/tiles/fish_crate.tscn b/client/map/tiles/fish_crate.tscn index 91d45f44..a096a000 100644 --- a/client/map/tiles/fish_crate.tscn +++ b/client/map/tiles/fish_crate.tscn @@ -3,7 +3,7 @@ [ext_resource type="PackedScene" uid="uid://xdui0oya4lpb" path="res://map/tiles/crate.tscn" id="1_uotdf"] [ext_resource type="PackedScene" uid="uid://dom5n7h7l7sr8" path="res://map/items/fish.tscn" id="3_p6tbn"] -[node name="LeekCrate" instance=ExtResource("1_uotdf")] +[node name="FishCrate" instance=ExtResource("1_uotdf")] [node name="Fish" parent="." index="1" instance=ExtResource("3_p6tbn")] transform = Transform3D(-0.449443, -0.771467, -0.450378, 0.791587, -0.577595, 0.199436, -0.413994, -0.266878, 0.870279, -0.214561, 0.395904, -0.219162) -- cgit v1.2.3-70-g09d2