Added clock timer

pull/5/head
Yan Wittmann 2025-01-14 09:43:53 +01:00
parent 9822c716f2
commit 2e1559d96e
3 changed files with 61 additions and 1 deletions

View File

@ -237,6 +237,38 @@ show_grid_buttons = false
show_minimap_button = false
show_arrange_button = false
[node name="MarginContainer" type="MarginContainer" parent="Camera2D/CanvasLayer"]
anchors_preset = 10
anchor_right = 1.0
offset_bottom = 30.0
grow_horizontal = 2
theme_override_constants/margin_top = 10
[node name="TimeOfDayBar" type="ProgressBar" parent="Camera2D/CanvasLayer/MarginContainer"]
unique_name_in_owner = true
self_modulate = Color(0.788235, 0.0901961, 0.00392157, 1)
custom_minimum_size = Vector2(400, 30.055)
layout_mode = 2
size_flags_horizontal = 4
tooltip_text = "
"
show_percentage = false
[node name="TimeOfDayLabel" type="Label" parent="Camera2D/CanvasLayer/MarginContainer/TimeOfDayBar"]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 14
anchor_top = 0.5
anchor_right = 1.0
anchor_bottom = 0.5
offset_top = -11.5
offset_bottom = 11.5
grow_horizontal = 2
grow_vertical = 2
theme_override_font_sizes/font_size = 26
text = "test"
horizontal_alignment = 1
[node name="InstructionsRect" type="TextureRect" parent="Camera2D/CanvasLayer"]
unique_name_in_owner = true
visible = false

View File

@ -12,6 +12,7 @@ var tilemap_types: TileMapTileTypes = TileMapTileTypes.new()
@onready var food_bar: ProgressBar = %FoodBar
@onready var temperature_bar: ProgressBar = %TemperatureBar
@onready var temperature_resistance_bar: ProgressBar = %TemperatureResistanceBar
@onready var time_of_day_bar: ProgressBar = %TimeOfDayBar
var tilemap_navigation: TilemapNavigation = TilemapNavigation.new()
@ -176,6 +177,33 @@ func update_bars() -> void:
temperature_bar.value = clamp(countdown, 0, player.temperature_endure)
%TemperatureLabel.text = str(temperature_bar.value) + "/" + str(player.temperature_endure)
if time_of_day_bar != null:
time_of_day_bar.max_value = 1
time_of_day_bar.value = float(world.camp_manager.time_of_day) / world.camp_manager.day_length
time_of_day_bar.self_modulate = calculate_time_of_day_color(world.camp_manager.time_of_day, world.camp_manager.day_length)
%TimeOfDayLabel.text = calculate_display_time_of_day(world.camp_manager.time_of_day, world.camp_manager.day_length)
func calculate_display_time_of_day(current_time: int, day_length: int) -> String:
# format as 24 hour clock, start at 06:00 and end at 21:00
var start: int = 6
var end: int = 21
var hours_per_day: int = end - start
var time_of_day: float = float(current_time) / day_length * hours_per_day + start
var hours: int = int(time_of_day)
var minutes: int = int((time_of_day - hours) * 60)
hours %= 24
return str(hours).pad_zeros(2) + ":" + str(minutes).pad_zeros(2)
func calculate_time_of_day_color(current_time: int, day_length: int) -> Color:
var start: Color = Color(1, 1, 0)
var end: Color = Color(1, 0, 0)
var progress: float = float(current_time) / day_length
progress = clamp(progress, 0, 1)
progress = pow(progress, 2)
return start.lerp(end, progress)
func toggle_temperature_layer() -> void:
world.tilemap_temperature.tilemap.visible = not world.tilemap_temperature.tilemap.visible

View File

@ -14,7 +14,7 @@ var boat_build_location: Vector2i = tilemap_types.EMPTY
var boat_leave_location: Vector2i = tilemap_types.EMPTY
#
var time_of_day: int = 0
var day_length: int = 2000
var day_length: int = 1000
@export var required_boat_parts: int = 6