menuo.gd 8,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)
Artem Go's avatar
Artem Go включено в состав коммита
29
30


magcourier's avatar
magcourier включено в состав коммита
31
func reloadWindow():
Artem Go's avatar
Artem Go включено в состав коммита
32
33
34
35
	$CanvasLayer/UI/Taskoj/Window._on_Taskoj_draw()
	$CanvasLayer/UI/Objektoj/Window._on_Objekto_draw()
	
	
Artem Go's avatar
Artem Go включено в состав коммита
36
func _on_cap_pressed():
Artem Go's avatar
Artem Go включено в состав коммита
37
38
39
40
41
42
43
44
45
46
47
48
49
	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)
	$CanvasLayer/UI/Lbar.color = Color(0.027451, 0.396078, 0.396078, 0.784314)
	$CanvasLayer/UI/real/realLabel.set_visible(false)
	$CanvasLayer/UI/com/comLabel.set_visible(false)
	$CanvasLayer/UI/cap/capLabel.set_visible(true)
	$CanvasLayer/UI/romb.color = Color(0.027451, 0.396078, 0.396078)
Artem Go's avatar
Artem Go включено в состав коммита
50

magcourier's avatar
magcourier включено в состав коммита
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
	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 включено в состав коммита
67
68
69


func _on_com_pressed():
Artem Go's avatar
Artem Go включено в состав коммита
70
71
72
73
74
75
76
77
78
79
80
81
82
83
	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)
	$CanvasLayer/UI/Lbar.color = Color(0.329412, 0.027451, 0.090196, 0.784314)
	$CanvasLayer/UI/real/realLabel.set_visible(false)
	$CanvasLayer/UI/com/comLabel.set_visible(true)
	$CanvasLayer/UI/cap/capLabel.set_visible(false)
	$CanvasLayer/UI/romb.color = Color(0.329412, 0.027451, 0.090196)
	
magcourier's avatar
magcourier включено в состав коммита
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
	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 включено в состав коммита
101

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

Artem Go's avatar
Artem Go включено в состав коммита
103
func _on_real_pressed():
Artem Go's avatar
Artem Go включено в состав коммита
104
105
106
107
108
109
110
111
	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
ArtemGo    
Artem Go включено в состав коммита
112
	$CanvasLayer/UI/Lbar.color = Color(0.388235, 0.568627, 0.929412)
Artem Go's avatar
Artem Go включено в состав коммита
113
114
115
116
117
	$CanvasLayer/UI/real/realLabel.set_visible(true)
	$CanvasLayer/UI/com/comLabel.set_visible(false)
	$CanvasLayer/UI/cap/capLabel.set_visible(false)
	$CanvasLayer/UI/romb.color = Color(0.388235, 0.568627, 0.929412)
	
magcourier's avatar
magcourier включено в состав коммита
118
	var reload = false
magcourier's avatar
magcourier включено в состав коммита
119
120
	if Global.realeco!=1:
		Global.realeco = 1
magcourier's avatar
magcourier включено в состав коммита
121
		reload = true
magcourier's avatar
magcourier включено в состав коммита
122
123
		# при переключении миров закрываем окна ресурсов, объектов, т.к. они расчитаны на конкретный мир
		CloseWindow()
magcourier's avatar
magcourier включено в состав коммита
124
	get_tree().change_scene("res://blokoj/kosmostacioj/Kosmostacio.tscn")
magcourier's avatar
magcourier включено в состав коммита
125
126
	if reload:
		reloadWindow()
magcourier's avatar
magcourier включено в состав коммита
127
128


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

magcourier's avatar
magcourier включено в состав коммита
130
131
132
133
134
135
136
137
138
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
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 включено в состав коммита
180

magcourier's avatar
magcourier включено в состав коммита
181
182
183
184
185
186
187
188
189
190
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 включено в состав коммита
191
192
193
194
195
196
197
198
199
200
201


# ответ на заход в станцию
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 включено в состав коммита
202
203
204
205
206
	
	
func _on_b_itinero_pressed():
	$CanvasLayer/UI/b_itinero/itinero/canvas/MarginContainer.set_visible(true)
	pass 
Artem Go's avatar
Artem Go включено в состав коммита
207
208
209
210
211
212
213
	
	


func _on_ad_pressed():
	$CanvasLayer/UI/ad/ad_control/WindowDialog.set_visible(true)
	pass # Replace with function body.