Basic client that understands factions
This commit is contained in:
16
client/scripts/menus/character_creation/CharacterCreation.gd
Normal file
16
client/scripts/menus/character_creation/CharacterCreation.gd
Normal file
@ -0,0 +1,16 @@
|
||||
extends Node
|
||||
|
||||
export(NodePath) var nameTextEdit
|
||||
export(NodePath) var factionButtonsNode
|
||||
|
||||
onready var nameEdit : LineEdit = get_node(nameTextEdit)
|
||||
onready var factionButtons = get_node(factionButtonsNode)
|
||||
|
||||
func _on_Button_button_down():
|
||||
if nameEdit.text != "":
|
||||
if factionButtons.currently_selected:
|
||||
for i in range(1,len(GameData.factions)):
|
||||
if GameData.factions[i] == factionButtons.currently_selected:
|
||||
var created_char = yield(ServerConnection.create_character_async(nameEdit.text, i), "completed")
|
||||
if created_char:
|
||||
get_tree().change_scene("res://scenes/World.tscn")
|
20
client/scripts/menus/character_creation/FactionButtons.gd
Normal file
20
client/scripts/menus/character_creation/FactionButtons.gd
Normal file
@ -0,0 +1,20 @@
|
||||
extends Node
|
||||
|
||||
signal selection_updated(faction)
|
||||
|
||||
var currently_selected : String
|
||||
|
||||
func _ready():
|
||||
get_child(0).queue_free()
|
||||
for faction in GameData.factions:
|
||||
if faction == "Electus":
|
||||
return
|
||||
|
||||
var faction_button = Button.new()
|
||||
faction_button.icon = load("res://art/gui/banners/" + faction.to_lower() + ".png")
|
||||
faction_button.connect("button_down", self, "on_faction_select", [faction])
|
||||
add_child(faction_button)
|
||||
|
||||
func on_faction_select(faction):
|
||||
currently_selected = faction
|
||||
emit_signal("selection_updated", faction)
|
14
client/scripts/menus/character_creation/NameEdit.gd
Normal file
14
client/scripts/menus/character_creation/NameEdit.gd
Normal file
@ -0,0 +1,14 @@
|
||||
extends LineEdit
|
||||
|
||||
var invalid_chars = " '.,;/\\,[](){}!@#$%^&*-=|_+1234567890\""
|
||||
|
||||
func _ready():
|
||||
connect("text_changed", self, "validate_name")
|
||||
|
||||
|
||||
func validate_name(name):
|
||||
var cursor_pos = caret_position
|
||||
for character in invalid_chars:
|
||||
if character in text:
|
||||
text = text.replace(character, "")
|
||||
caret_position = cursor_pos
|
Reference in New Issue
Block a user