]> Untitled Git - catris.git/commitdiff
Added time and piece count to main display
authorClifton Palmer <clifton.james.palmer@protonmail.com>
Wed, 26 Mar 2025 09:10:45 +0000 (11:10 +0200)
committerClifton Palmer <clifton.james.palmer@protonmail.com>
Wed, 26 Mar 2025 09:10:45 +0000 (11:10 +0200)
scene/main.tscn
script/board.gd
script/main.gd

index af5356c9ad67e3bfe061068b585d4e392b934709..392b8733ff4a9f3fa19327883100f75c481386e1 100644 (file)
@@ -29,11 +29,11 @@ text = "0.0.0"
 layout_mode = 2
 alignment = 1
 
-[node name="MarginContainer2" type="MarginContainer" parent="MarginContainer/HBoxContainer"]
+[node name="left" type="MarginContainer" parent="MarginContainer/HBoxContainer"]
 layout_mode = 2
 size_flags_horizontal = 3
 
-[node name="MarginContainer3" type="MarginContainer" parent="MarginContainer/HBoxContainer"]
+[node name="mid" type="MarginContainer" parent="MarginContainer/HBoxContainer"]
 layout_mode = 2
 size_flags_vertical = 4
 theme_override_constants/margin_left = 0
@@ -41,10 +41,52 @@ theme_override_constants/margin_top = 0
 theme_override_constants/margin_right = 0
 theme_override_constants/margin_bottom = 0
 
-[node name="Board" parent="MarginContainer/HBoxContainer/MarginContainer3" instance=ExtResource("2_v0l8b")]
+[node name="Board" parent="MarginContainer/HBoxContainer/mid" instance=ExtResource("2_v0l8b")]
+unique_name_in_owner = true
 layout_mode = 2
 size_flags_horizontal = 3
 
-[node name="MarginContainer" type="MarginContainer" parent="MarginContainer/HBoxContainer"]
+[node name="right" type="MarginContainer" parent="MarginContainer/HBoxContainer"]
 layout_mode = 2
 size_flags_horizontal = 3
+
+[node name="MarginContainer" type="MarginContainer" parent="MarginContainer/HBoxContainer/right"]
+layout_mode = 2
+theme_override_constants/margin_left = 30
+theme_override_constants/margin_top = 50
+theme_override_constants/margin_right = 30
+theme_override_constants/margin_bottom = 50
+
+[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/HBoxContainer/right/MarginContainer"]
+layout_mode = 2
+alignment = 1
+
+[node name="VSplitContainer2" type="HSplitContainer" parent="MarginContainer/HBoxContainer/right/MarginContainer/VBoxContainer"]
+layout_mode = 2
+split_offset = 150
+dragging_enabled = false
+
+[node name="Label" type="Label" parent="MarginContainer/HBoxContainer/right/MarginContainer/VBoxContainer/VSplitContainer2"]
+layout_mode = 2
+text = "Time passed:"
+
+[node name="label_time_passed" type="Label" parent="MarginContainer/HBoxContainer/right/MarginContainer/VBoxContainer/VSplitContainer2"]
+unique_name_in_owner = true
+layout_mode = 2
+text = "00:00:00"
+
+[node name="VSplitContainer" type="HSplitContainer" parent="MarginContainer/HBoxContainer/right/MarginContainer/VBoxContainer"]
+layout_mode = 2
+split_offset = 150
+dragging_enabled = false
+
+[node name="Label" type="Label" parent="MarginContainer/HBoxContainer/right/MarginContainer/VBoxContainer/VSplitContainer"]
+layout_mode = 2
+text = "Number of pieces:"
+
+[node name="label_num_pieces" type="Label" parent="MarginContainer/HBoxContainer/right/MarginContainer/VBoxContainer/VSplitContainer"]
+unique_name_in_owner = true
+layout_mode = 2
+text = "0"
+
+[connection signal="added_piece" from="MarginContainer/HBoxContainer/mid/Board" to="." method="_on_board_added_piece"]
index f4057916203a76e3cc55e0b02873404c0d1a101e..9f70dfa0f39ca8e986559417b82b21f1ffd13307 100644 (file)
@@ -1,6 +1,10 @@
 extends Control
 class_name Board
 
+
+signal added_piece
+
+
 @export var block_size: int = 20
 @export var piece_catalogue: Array[PackedScene] = []
 
@@ -10,7 +14,7 @@ var _player_piece: Piece = null
 var _grid_final_y_row: int = 0
 var _grid_final_x_row: int = 0
 
-var _num_pieces: int = 0
+var num_pieces: int = 0
 
 func _ready() -> void:
        assert(piece_catalogue.size() >= 1, "Expected at least one piece in catalogue")
@@ -46,12 +50,16 @@ func _add_player_piece():
        var piece: Piece = scene.instantiate()
        piece.block_size = block_size
        
+       # TODO: start piece at center of board
        _player_position = Vector2i(5, 0)
        piece.position = _player_position * block_size
        _player_piece = piece
        
+       # add piece to scene tree and emit signal
        add_child(piece)
-       _num_pieces += 1
+       num_pieces += 1
+       added_piece.emit()
+       
        print(str(piece))
 
 
index 4fe504180b644a365fdad8f0ed9227f205a72136..1821739fcf10ab5c95558b52a91d0b0fedcf2697 100644 (file)
@@ -5,9 +5,15 @@ extends Node
 @export var screen_size_fractional: float = 0.5
 
 
+var _started: bool = true
+var _start_time: int = 0
+var _elapsed_time: int = 0
+
+
 func _ready() -> void:
        _set_project_version()
        _set_screen_size()
+       _start_time = Time.get_ticks_msec()
 
 
 func _set_project_version() -> void:
@@ -30,3 +36,13 @@ func _set_screen_size() -> void:
 func _input(event: InputEvent) -> void:
        if event.is_action_pressed("ui_cancel"):
                        get_tree().quit()
+
+
+func _process(delta: float) -> void:
+       if _started:
+               _elapsed_time = Time.get_ticks_msec() - _start_time
+               %label_time_passed.text = "%04d" % [_elapsed_time]
+
+
+func _on_board_added_piece() -> void:
+       %label_num_pieces.text = str(%Board.num_pieces)