Swarm/UI/main_menu.gd

109 lines
3.1 KiB
GDScript3
Raw Normal View History

extends Control
2024-04-20 01:26:11 +02:00
@onready var exit_button = $VBoxContainer/PanelContainer/MarginContainer/VBoxContainer/ExitButton
@onready var lan_button = $VBoxContainer/PanelContainer/MarginContainer/VBoxContainer/LANButton
2024-03-23 17:49:33 +01:00
const SETTINGS = preload("res://UI/Settings/Settings.tscn")
const RULES = preload("res://UI/Rules/Rules.tscn")
2025-02-26 23:27:07 +01:00
const ANT = preload("res://InsectTiles/Assets/UI/ant.png")
const BEE = preload("res://InsectTiles/Assets/UI/bee.png")
const BEETLE = preload("res://InsectTiles/Assets/UI/beetle.png")
const GRASSHOPPER = preload("res://InsectTiles/Assets/UI/grasshopper.png")
const HEX_WHITE = preload("res://InsectTiles/Assets/UI/hex_white.svg")
const LADYBUG = preload("res://InsectTiles/Assets/UI/ladybug.png")
const MOSQUITO = preload("res://InsectTiles/Assets/UI/mosquito.png")
const PILLBUG = preload("res://InsectTiles/Assets/UI/pillbug.png")
const SPIDER = preload("res://InsectTiles/Assets/UI/spider.png")
const INSECTS_UI = [ANT, BEE, BEETLE, GRASSHOPPER, LADYBUG, MOSQUITO, PILLBUG, SPIDER]
@onready var insects: Node2D = $Insects
2024-04-20 01:26:11 +02:00
2025-02-26 23:27:07 +01:00
@onready var credits_panel = $CreditsPanel
const INSECT_SPRITE = preload("res://UI/TestBG/InsectSprite.tscn")
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
if OS.has_feature("web"):
exit_button.visible = false
lan_button.visible = false
#WSClient.lobby_joined.connect(_on_lobby_joined)
Networking.offline_mode()
2024-03-16 19:56:22 +01:00
GameData.reset()
2025-02-26 23:27:07 +01:00
get_viewport().size_changed.connect(resize)
resize()
func resize() -> void:
var _size = get_viewport().size
print(_size)
var center = _size / 2
_create_insects(center)
func _create_insects(center: Vector2i) -> void:
# For circle
var circle_position = Vector2i(center.x, center.y)
var circle_radius = max(center.x, center.y)
var points = PoissonDiscSampling.generate_points_for_circle(circle_position, circle_radius, 150, 30)
for insect in insects.get_children():
insect.queue_free()
for point in points:
var sprite = INSECT_SPRITE.instantiate()
insects.add_child(sprite)
sprite.texture = INSECTS_UI.pick_random()
sprite.position = point
func _on_lobby_joined(lobby: String) -> void:
GameData.lobby_code = lobby
get_tree().change_scene_to_file("res://Multiplayer/Multiplayer.tscn")
2024-03-23 16:18:30 +01:00
func _on_host_button_pressed():
GameData.is_player_black = false
#WSClient.start(GameData.WEBSOCKET_ENDPOINT, "", false)
func _on_join_button_pressed():
get_tree().change_scene_to_file("res://UI/join_menu.tscn")
func _on_exit_button_pressed():
get_tree().quit()
2024-03-16 19:56:22 +01:00
func _on_rules_button_pressed():
2024-03-23 17:49:33 +01:00
var rules = RULES.instantiate()
get_tree().root.add_child(rules)
rules.show_panel()
func _on_online_button_pressed():
get_tree().change_scene_to_file("res://UI/Lobby/WebRTCLobby.tscn")
func _on_local_button_pressed():
GameData.is_hot_seat = true
get_tree().change_scene_to_file("res://Game.tscn")
2024-03-23 16:18:30 +01:00
func _on_settings_button_pressed():
2024-03-23 17:49:33 +01:00
var settings = SETTINGS.instantiate()
get_tree().root.add_child(settings)
2024-03-23 16:18:30 +01:00
settings.show_panel()
func _on_lan_button_pressed():
get_tree().change_scene_to_file("res://UI/Lobby/LANLobby.tscn")
2024-04-20 01:26:11 +02:00
func _on_credits_button_pressed():
credits_panel.visible = true
pass # Replace with function body.