oh-my-git/scenes/text_editor.gd

52 lines
1 KiB
GDScript3
Raw Permalink Normal View History

extends TextEdit
signal saved
var path
var _server
var _client_connection
func _ready():
# Initialize TCP server for fake editor.
2023-09-06 16:04:23 +02:00
_server = TCPServer.new()
_server.listen(1234)
func _process(_delta):
if _server.is_connection_available():
_client_connection = _server.take_connection()
var length = _client_connection.get_u32()
2020-11-10 22:37:10 +01:00
var _filename = _client_connection.get_string(length)
length = _client_connection.get_u32()
var content = _client_connection.get_string(length)
open(content)
2020-10-06 11:34:12 +02:00
func _input(event):
if event.is_action_pressed("save"):
save()
func open(content):
text = content
show()
grab_focus()
func save():
if visible:
# Add a newline to the end of the file if there is none.
if text.length() > 0 and text.substr(text.length()-1, 1) != "\n":
text += "\n"
_client_connection.put_string(text)
emit_signal("saved")
close()
2020-09-22 15:55:01 +02:00
func close():
2023-09-06 16:04:23 +02:00
if _client_connection and _client_connection.get_status() == StreamPeerTCP.STATUS_CONNECTED:
2020-09-22 15:55:01 +02:00
_client_connection.disconnect_from_host()
2023-09-06 16:04:23 +02:00
text = ""
hide()