39 lines
1.1 KiB
GDScript
39 lines
1.1 KiB
GDScript
class_name NumberEdit
|
|
extends LineEdit
|
|
|
|
## Only allows numeric input, discards everything else.
|
|
|
|
var _regex: RegEx = RegEx.new()
|
|
var _disallowed_bet: String = "3"
|
|
@export var error_label: Label
|
|
@export var disallowed_bet_label: Label
|
|
@export var submit_button: Button
|
|
|
|
func _ready() -> void:
|
|
_regex.compile("[^\\d]")
|
|
submit_button.disabled = true
|
|
|
|
func set_disallowed_bet(bet: int) -> void:
|
|
_disallowed_bet = str(bet)
|
|
|
|
func _on_text_changed(new_text: String) -> void:
|
|
if new_text.is_empty():
|
|
submit_button.disabled = true
|
|
error_label.text = ""
|
|
elif _regex.search(new_text):
|
|
submit_button.disabled = true
|
|
error_label.text = "Numbers only!"
|
|
elif new_text == _disallowed_bet:
|
|
submit_button.disabled = true
|
|
error_label.text = "Not allowed!"
|
|
else:
|
|
submit_button.disabled = false
|
|
error_label.text = ""
|
|
|
|
func _on_web_client_tcp_received_bet_request(disallowed_bet: int, current_round: int) -> void:
|
|
set_disallowed_bet(disallowed_bet)
|
|
if disallowed_bet == -1:
|
|
disallowed_bet_label.text = "Bet anything"
|
|
else:
|
|
disallowed_bet_label.text = "Disallowed bet: {bet}".format({"bet": disallowed_bet})
|