update
This commit is contained in:
@@ -45,6 +45,49 @@ func _init_managers():
|
||||
add_child(obstacle_manager)
|
||||
obstacle_manager.initialize($EnhancedGridMap)
|
||||
|
||||
# Message Bar Configuration
|
||||
const MAX_MESSAGES := 5
|
||||
const MESSAGE_DURATION := 3.0
|
||||
|
||||
@onready var message_bar: PanelContainer = $MessageBar
|
||||
@onready var message_container: VBoxContainer = $MessageBar/MarginContainer/MessageContainer
|
||||
|
||||
func add_message_to_bar(player_name: String, message: String):
|
||||
if not message_container:
|
||||
return
|
||||
|
||||
# Create message label
|
||||
var label = Label.new()
|
||||
label.text = "[%s] %s" % [player_name, message]
|
||||
label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER
|
||||
label.add_theme_color_override("font_color", Color.WHITE)
|
||||
label.add_theme_font_size_override("font_size", 14)
|
||||
|
||||
# Add to container
|
||||
message_container.add_child(label)
|
||||
|
||||
# Show the message bar
|
||||
message_bar.visible = true
|
||||
|
||||
# Remove oldest messages if over limit
|
||||
while message_container.get_child_count() > MAX_MESSAGES:
|
||||
var oldest = message_container.get_child(0)
|
||||
oldest.queue_free()
|
||||
|
||||
# Auto-remove after duration
|
||||
await get_tree().create_timer(MESSAGE_DURATION).timeout
|
||||
if is_instance_valid(label):
|
||||
label.queue_free()
|
||||
|
||||
# Hide bar when empty
|
||||
await get_tree().process_frame
|
||||
if message_container.get_child_count() == 0:
|
||||
message_bar.visible = false
|
||||
|
||||
@rpc("any_peer", "call_local")
|
||||
func broadcast_message(player_name: String, message: String):
|
||||
add_message_to_bar(player_name, message)
|
||||
|
||||
func _setup_obstacle_ui():
|
||||
var obstacle_button = Button.new()
|
||||
obstacle_button.text = "Place Obstacle"
|
||||
|
||||
Reference in New Issue
Block a user