Added clock timer
parent
9822c716f2
commit
2e1559d96e
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue