menuo.gd 9,6 КБ
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/RCentro/Window.popup_centered()
Max Bondarev's avatar
Max Bondarev включено в состав коммита
13
14


magcourier's avatar
magcourier включено в состав коммита
15
func _on_Objektoj_pressed():
Artem Go's avatar
Artem Go включено в состав коммита
16
	$CanvasLayer/UI/Objektoj/Window/canvas/MarginContainer.set_visible(true)
Max Bondarev's avatar
Max Bondarev включено в состав коммита
17
18
19


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

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

magcourier's avatar
magcourier включено в состав коммита
26
func CloseWindow():
Artem Go's avatar
Artem Go включено в состав коммита
27
28
	$CanvasLayer/UI/Taskoj/Window/canvas/MarginContainer.set_visible(false)
	$CanvasLayer/UI/Objektoj/Window/canvas/MarginContainer.set_visible(false)
magcourier's avatar
magcourier включено в состав коммита
29
30
31
	$CanvasLayer/UI/b_itinero/itinero/canvas/MarginContainer.set_visible(false)
	$CanvasLayer/UI/ad/ad_control/WindowDialog.set_visible(false)
	$CanvasLayer/UI/interago/interago/canvas/MarginContainer.set_visible(false)
Artem Go's avatar
Artem Go включено в состав коммита
32
33


magcourier's avatar
magcourier включено в состав коммита
34
func reloadWindow():
Artem Go's avatar
Artem Go включено в состав коммита
35
36
37
38
	$CanvasLayer/UI/Taskoj/Window._on_Taskoj_draw()
	$CanvasLayer/UI/Objektoj/Window._on_Objekto_draw()
	
	
Artem Go's avatar
Artem Go включено в состав коммита
39
func _on_cap_pressed():
Artem Go's avatar
Artem Go включено в состав коммита
40
41
42
43
44
45
46
47
	var mezo_cap = preload("res://kerno/menuo/resursoj/icons/tab4_3.png")
	$CanvasLayer/UI/mezo_regions.icon = mezo_cap
	$CanvasLayer/UI/real/real_cap_rect.set_visible(true)
	$CanvasLayer/UI/real/real_com_rect.set_visible(false)
	$CanvasLayer/UI/com/com_cap_rect.set_visible(true)
	$CanvasLayer/UI/com/com_real_rect.set_visible(false)
	$CanvasLayer/UI/cap/cap_com_rect.set_visible(false)
	$CanvasLayer/UI/cap/cap_real_rect.set_visible(false)
Artem Go's avatar
Artem Go включено в состав коммита
48
49
50
	$CanvasLayer/UI/Lbar.color = Color(0.027451, 0.396078, 0.396078, 0.862745)
	$CanvasLayer/UI/Lbar2.color = Color(0.027451, 0.396078, 0.396078, 0.862745)
	$CanvasLayer/UI/Lbar3.color = Color(0.027451, 0.396078, 0.396078, 0.862745)
Artem Go's avatar
Artem Go включено в состав коммита
51
52
53
	$CanvasLayer/UI/real/realLabel.set_visible(false)
	$CanvasLayer/UI/com/comLabel.set_visible(false)
	$CanvasLayer/UI/cap/capLabel.set_visible(true)
Artem Go's avatar
Artem Go включено в состав коммита
54
	$CanvasLayer/UI/romb.color = Color(0.027451, 0.396078, 0.396078, 0.862745)
Artem Go's avatar
Artem Go включено в состав коммита
55

magcourier's avatar
magcourier включено в состав коммита
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
	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 включено в состав коммита
72
73
74


func _on_com_pressed():
Artem Go's avatar
Artem Go включено в состав коммита
75
76
77
78
79
80
81
82
	var mezo_com = preload("res://kerno/menuo/resursoj/icons/tab4_1.png")
	$CanvasLayer/UI/mezo_regions.icon = mezo_com
	$CanvasLayer/UI/real/real_cap_rect.set_visible(false)
	$CanvasLayer/UI/real/real_com_rect.set_visible(true)
	$CanvasLayer/UI/com/com_cap_rect.set_visible(false)
	$CanvasLayer/UI/com/com_real_rect.set_visible(false)
	$CanvasLayer/UI/cap/cap_com_rect.set_visible(true)
	$CanvasLayer/UI/cap/cap_real_rect.set_visible(false)
Artem Go's avatar
Artem Go включено в состав коммита
83
84
85
	$CanvasLayer/UI/Lbar.color = Color(0.329412, 0.027451, 0.090196, 0.862745)
	$CanvasLayer/UI/Lbar2.color = Color(0.329412, 0.027451, 0.090196, 0.862745)
	$CanvasLayer/UI/Lbar3.color = Color(0.329412, 0.027451, 0.090196, 0.862745)
Artem Go's avatar
Artem Go включено в состав коммита
86
87
88
	$CanvasLayer/UI/real/realLabel.set_visible(false)
	$CanvasLayer/UI/com/comLabel.set_visible(true)
	$CanvasLayer/UI/cap/capLabel.set_visible(false)
Artem Go's avatar
Artem Go включено в состав коммита
89
	$CanvasLayer/UI/romb.color = Color(0.329412, 0.027451, 0.090196, 0.862745)
Artem Go's avatar
Artem Go включено в состав коммита
90
	
magcourier's avatar
magcourier включено в состав коммита
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
	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 включено в состав коммита
108

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

Artem Go's avatar
Artem Go включено в состав коммита
110
func _on_real_pressed():
Artem Go's avatar
Artem Go включено в состав коммита
111
112
113
114
115
116
117
118
	var mezo_real = preload("res://kerno/menuo/resursoj/icons/tab4_2.png")
	$CanvasLayer/UI/mezo_regions.icon = mezo_real
	$CanvasLayer/UI/real/real_cap_rect.set_visible(false)
	$CanvasLayer/UI/real/real_com_rect.set_visible(false)
	$CanvasLayer/UI/com/com_cap_rect.set_visible(false)
	$CanvasLayer/UI/com/com_real_rect.set_visible(true)
	$CanvasLayer/UI/cap/cap_com_rect.set_visible(false)
	$CanvasLayer/UI/cap/cap_real_rect.set_visible(true)
Artem Go's avatar
Artem Go включено в состав коммита
119
120
121
	$CanvasLayer/UI/Lbar.color = Color(0.388235, 0.568627, 0.929412, 0.862745)
	$CanvasLayer/UI/Lbar2.color = Color(0.388235, 0.568627, 0.929412, 0.862745)
	$CanvasLayer/UI/Lbar3.color = Color(0.388235, 0.568627, 0.929412, 0.862745)
Artem Go's avatar
Artem Go включено в состав коммита
122
123
124
	$CanvasLayer/UI/real/realLabel.set_visible(true)
	$CanvasLayer/UI/com/comLabel.set_visible(false)
	$CanvasLayer/UI/cap/capLabel.set_visible(false)
Artem Go's avatar
Artem Go включено в состав коммита
125
	$CanvasLayer/UI/romb.color = Color(0.388235, 0.568627, 0.929412, 0.862745)
Artem Go's avatar
Artem Go включено в состав коммита
126
	
magcourier's avatar
magcourier включено в состав коммита
127
	var reload = false
magcourier's avatar
magcourier включено в состав коммита
128
129
	if Global.realeco!=1:
		Global.realeco = 1
magcourier's avatar
magcourier включено в состав коммита
130
		reload = true
magcourier's avatar
magcourier включено в состав коммита
131
132
		# при переключении миров закрываем окна ресурсов, объектов, т.к. они расчитаны на конкретный мир
		CloseWindow()
magcourier's avatar
magcourier включено в состав коммита
133
	get_tree().change_scene("res://blokoj/kosmostacioj/Kosmostacio.tscn")
magcourier's avatar
magcourier включено в состав коммита
134
135
	if reload:
		reloadWindow()
magcourier's avatar
magcourier включено в состав коммита
136
137


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

magcourier's avatar
magcourier включено в состав коммита
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
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 включено в состав коммита
189

magcourier's avatar
magcourier включено в состав коммита
190
191
192
193
194
195
196
197
198
199
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 включено в состав коммита
200
201
202
203
204
205
206
207
208
209
210


# ответ на заход в станцию
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')
Artem Go's avatar
Artem Go включено в состав коммита
211
212
213
214
	
	
func _on_b_itinero_pressed():
	$CanvasLayer/UI/b_itinero/itinero/canvas/MarginContainer.set_visible(true)
Artem Go's avatar
Artem Go включено в состав коммита
215
216
217
218


func _on_ad_pressed():
	$CanvasLayer/UI/ad/ad_control/WindowDialog.set_visible(true)
Artem Go's avatar
Artem Go включено в состав коммита
219
220
221


func _on_interago_pressed():
magcourier's avatar
magcourier включено в состав коммита
222
223
224
225
226
	if $CanvasLayer/UI/interago/interago/canvas/MarginContainer.visible:
		$CanvasLayer/UI/interago/interago/canvas/MarginContainer.set_visible(false)
	else:
		$CanvasLayer/UI/interago/interago.print_button()
		$CanvasLayer/UI/interago/interago/canvas/MarginContainer.set_visible(true)