menuo.gd 6,4 КБ
Newer Older
Max Bondarev's avatar
Max Bondarev включено в состав коммита
1
2
3
4
5
6
7
8
9
10
11
extends Node


var load_scene : String


func _on_Profilo_pressed():
	get_tree().change_scene('res://blokoj/profilo/profilo.tscn')


func _on_Resurso_Center_pressed():
Artem Go's avatar
Artem Go включено в состав коммита
12
	$CanvasLayer/UI/Lbar/L_VBox/RCentro/Window.popup_centered()
Max Bondarev's avatar
Max Bondarev включено в состав коммита
13
14


magcourier's avatar
magcourier включено в состав коммита
15
func _on_Objektoj_pressed():
magcourier's avatar
magcourier включено в состав коммита
16
	$CanvasLayer/UI/Lbar/L_VBox/Objektoj/Window/canvas/MarginContainer.set_visible(true)
magcourier's avatar
magcourier включено в состав коммита
17
18
	
	
Max Bondarev's avatar
Max Bondarev включено в состав коммита
19
20
21
22
23
func _on_Servilo_pressed():
	get_tree().change_scene('res://blokoj/servilo/servilo.tscn')


func set_visible(visible: bool):
Artem Go's avatar
Artem Go включено в состав коммита
24
25
	$CanvasLayer/UI.visible = visible
	
Max Bondarev's avatar
Max Bondarev включено в состав коммита
26
27

func _on_Taskoj_pressed():
magcourier's avatar
magcourier включено в состав коммита
28
	$CanvasLayer/UI/Lbar/L_VBox/Taskoj/Window/canvas/MarginContainer.set_visible(true)
Artem Go's avatar
Artem Go включено в состав коммита
29

magcourier's avatar
magcourier включено в состав коммита
30
31
32
func CloseWindow():
	$CanvasLayer/UI/Lbar/L_VBox/Taskoj/Window/canvas/MarginContainer.set_visible(false)
	$CanvasLayer/UI/Lbar/L_VBox/Objektoj/Window/canvas/MarginContainer.set_visible(false)
Artem Go's avatar
Artem Go включено в состав коммита
33
34


magcourier's avatar
magcourier включено в состав коммита
35
36
37
38
func reloadWindow():
	$CanvasLayer/UI/Lbar/L_VBox/Taskoj/Window._on_Taskoj_draw()
	$CanvasLayer/UI/Lbar/L_VBox/Objektoj/Window._on_Objekto_draw()

Artem Go's avatar
Artem Go включено в состав коммита
39
func _on_cap_pressed():
magcourier's avatar
magcourier включено в состав коммита
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
	if Global.loading: #здесь вызывать задержку надо
		var reload = false
		if Global.realeco!=3:
			Global.realeco = 3
			reload = true
			# при переключении миров закрываем окна ресурсов, объектов, т.к. они расчитаны на конкретный мир
			CloseWindow()
			# если объекта не будет в космосе, то загружать станцию
			if Global.direktebla_objekto[Global.realeco-2]['kosmo']:
				get_tree().change_scene('res://blokoj/kosmo/scenoj/space.tscn')
			else:
				get_tree().change_scene('res://blokoj/kosmostacioj/CapKosmostacio.tscn')
		if reload:
			reloadWindow()
	else:
		print('Ещё не загружено')
Artem Go's avatar
Artem Go включено в состав коммита
56
57
58


func _on_com_pressed():
magcourier's avatar
magcourier включено в состав коммита
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
	if Global.loading: #здесь вызывать задержку надо
		var reload = false
		if Global.realeco!=2:
			Global.realeco = 2
			reload = true
			# при переключении миров закрываем окна ресурсов, объектов, т.к. они расчитаны на конкретный мир
			CloseWindow()
			# если объекта не будет в космосе, то загружать станцию
			if Global.direktebla_objekto[Global.realeco-2]['kosmo']:
				get_tree().change_scene('res://blokoj/kosmo/scenoj/space.tscn')
			else:
				get_tree().change_scene('res://blokoj/kosmostacioj/CapKosmostacio.tscn')
#				get_tree().change_scene("res://blokoj/kosmostacioj/ComKosmostacio.tscn")
		if reload:
			reloadWindow()
	else:
		print('Ещё не загружено')
Artem Go's avatar
Artem Go включено в состав коммита
76

Max Bondarev's avatar
Max Bondarev включено в состав коммита
77

Artem Go's avatar
Artem Go включено в состав коммита
78
func _on_real_pressed():
magcourier's avatar
magcourier включено в состав коммита
79
	var reload = false
magcourier's avatar
magcourier включено в состав коммита
80
81
	if Global.realeco!=1:
		Global.realeco = 1
magcourier's avatar
magcourier включено в состав коммита
82
		reload = true
magcourier's avatar
magcourier включено в состав коммита
83
84
		# при переключении миров закрываем окна ресурсов, объектов, т.к. они расчитаны на конкретный мир
		CloseWindow()
magcourier's avatar
magcourier включено в состав коммита
85
	get_tree().change_scene("res://blokoj/kosmostacioj/Kosmostacio.tscn")
magcourier's avatar
magcourier включено в состав коммита
86
87
	if reload:
		reloadWindow()
magcourier's avatar
magcourier включено в состав коммита
88
89


magcourier's avatar
magcourier включено в состав коммита
90

magcourier's avatar
magcourier включено в состав коммита
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
const QueryObject = preload("res://kerno/menuo/skriptoj/queries.gd")

func _on_request_request_completed(result, response_code, headers, body):
	var resp = body.get_string_from_utf8()
	var parsed_resp = parse_json(resp)
	# Если ответ от бэкэнда содержит данные
	if parsed_resp.has('data'):
		var i=0
		for objekt in parsed_resp['data']['universoObjekto']['edges']:
#			Global.direktebla_objekto.append(objekt['node'])
			Global.direktebla_objekto[objekt['node']['realeco']['objId']-2]=objekt['node']
#			Global.direktebla_objekto[i]['kosmo'] = false
			Global.direktebla_objekto[objekt['node']['realeco']['objId']-2]['kosmo'] = false
			i+=1
		# теперь загружаем те объекты, которые из представленных находятся в космосе
		var q = QueryObject.new()

		# Разрегистрируем обработчик сигнала request_completed (вызывается
		# по завершении HTTPRequest)
		$request.disconnect('request_completed', self, '_on_request_request_completed')
		# Регистрируем новый обработчик (для обработки ответа на запрос по управляемым объектам)
		$request.connect('request_completed', self, 'get_direktebla_kosmo_request_complete')
		# Делаем запрос к бэкэнду для получения списка управляемых объектов.
		# Ответ будет обрабатываться в функции get_direktebla_request_complete
		var error = $request.request(q.URL_DATA, Global.backend_headers,
			true, 2, q.get_direktebla_kosmo_query())
			
		# Если запрос не выполнен из-за какой-то ошибки
		# TODO: Такие ошибки наверное нужно как-то выводить пользователю?
		if error != OK:
			print('Error in GET (direktebla) Request.')


func get_direktebla_kosmo_request_complete(result, response_code, headers, body):
	var resp = body.get_string_from_utf8()
	var parsed_resp = parse_json(resp)
	# Если ответ от бэкэнда содержит данные
	if parsed_resp.has('data'):
		var uuid = []
		for pars in parsed_resp['data']['filteredUniversoObjekto']['edges']:
			uuid.append(pars['node']['uuid'])
		for objekt in Global.direktebla_objekto:
			if objekt.has('uuid'):
				if objekt['uuid'] in uuid:
					objekt['kosmo']=true
		Global.loading = true
	# Разрегистрируем обработчик сигнала request_completed (вызывается
	# по завершении HTTPRequest)
	$request.disconnect('request_completed', self, 'get_direktebla_kosmo_request_complete')

magcourier's avatar
magcourier включено в состав коммита
141

magcourier's avatar
magcourier включено в состав коммита
142
143
144
145
146
147
148
149
150
151
func komenci_request_complete(result, response_code, headers, body):
	var resp = body.get_string_from_utf8()
	var parsed_resp = parse_json(resp)
	# Если ответ от бэкэнда содержит данные
#	if parsed_resp.has('data'):

	$request.disconnect('request_completed', self, 'komenci_request_complete')

	if $"/root".get_node_or_null('space'):
		$"/root".get_node('space').emit_signal("load_objektoj")
magcourier's avatar
magcourier включено в состав коммита
152
153
154
155
156
157
158
159
160
161
162


# ответ на заход в станцию
func _on_eniri_kosmostacio_request_completed(result, response_code, headers, body):
	var resp = body.get_string_from_utf8()
	var parsed_resp = parse_json(resp)
	# Если ответ от бэкэнда содержит данные
	if parsed_resp.has('data'):
		pass

	$request.disconnect('request_completed', self, '_on_eniri_kosmostacio_request_completed')