Коммит a0c06b61 создал по автору magcourier's avatar magcourier
Просмотр файлов

Кнопка выхода в космос переведена в центр управл.

владелец 2a8d8ce8
...@@ -40,40 +40,45 @@ const translacio_stat = 300 ...@@ -40,40 +40,45 @@ const translacio_stat = 300
const QueryObject = preload("res://kerno/menuo/skriptoj/queries.gd") const QueryObject = preload("res://kerno/menuo/skriptoj/queries.gd")
# вход в станцию
func go_kosmostacioj():
# Разрегистрируем обработчик сигнала request_completed (вызывается
# по завершении HTTPRequest)
Title.get_node("request").connect('request_completed', Title, '_on_eniri_kosmostacio_request_completed')
var q = QueryObject.new()
# закрываем проект
# добавляем запись в связи, что находимся внутри
var uuid_tasko = ''
if $"../ship".projekto_uuid:
uuid_tasko = Global.itineroj[0]['uuid_tasko']
var error = Title.get_node("request").request(q.URL_DATA,
Global.backend_headers,
true, 2, q.eniri_kosmostacio(
$"../ship".projekto_uuid,
uuid_tasko,
Global.objektoj[index_pos]['uuid']))
# Если запрос не выполнен из-за какой-то ошибки
# TODO: Такие ошибки наверное нужно как-то выводить пользователю?
if error != OK:
print('Error in GET (_on_eniri_kosmostacio_request_completed) Request.')
# добавляем в данные пользователя о станции для последующего выхода
if !Global.direktebla_objekto[Global.realeco-2].get('ligiloLigilo'):
Global.direktebla_objekto[Global.realeco-2]['ligiloLigilo'] = {'edges':[]}
Global.direktebla_objekto[Global.realeco-2]['ligiloLigilo']['edges'].append({
'node': {'posedanto': {'koordinatoX' : Global.objektoj[index_pos]['koordinatoX'],
'koordinatoY' : Global.objektoj[index_pos]['koordinatoY'],
'koordinatoZ' : Global.objektoj[index_pos]['koordinatoZ'],
'kubo': {'objId' : Global.kubo},},
'uuid' : Global.objektoj[index_pos]['uuid']},})
Title.CloseWindow()
Global.direktebla_objekto[Global.realeco-2]['kosmo'] = false
# вызываем сцену станции
get_tree().change_scene('res://blokoj/kosmostacioj/CapKosmostacio.tscn')
func _on_PopupMenu_index_pressed(index): func _on_PopupMenu_index_pressed(index):
if index == 2: # если выбран вход в станцию if index == 2: # если выбран вход в станцию
# Разрегистрируем обработчик сигнала request_completed (вызывается go_kosmostacioj()
# по завершении HTTPRequest)
Title.get_node("request").connect('request_completed', Title, '_on_eniri_kosmostacio_request_completed')
var q = QueryObject.new()
# закрываем проект
# добавляем запись в связи, что находимся внутри
var uuid_tasko = ''
if $"../ship".projekto_uuid:
uuid_tasko = Global.itineroj[0]['uuid_tasko']
var error = Title.get_node("request").request(q.URL_DATA,
Global.backend_headers,
true, 2, q.eniri_kosmostacio(
$"../ship".projekto_uuid,
uuid_tasko,
Global.objektoj[index_pos]['uuid']))
# Если запрос не выполнен из-за какой-то ошибки
# TODO: Такие ошибки наверное нужно как-то выводить пользователю?
if error != OK:
print('Error in GET (_on_eniri_kosmostacio_request_completed) Request.')
# добавляем в данные пользователя о станции для последующего выхода
if !Global.direktebla_objekto[Global.realeco-2].get('ligiloLigilo'):
Global.direktebla_objekto[Global.realeco-2]['ligiloLigilo'] = {'edges':[]}
Global.direktebla_objekto[Global.realeco-2]['ligiloLigilo']['edges'].append({
'node': {'posedanto': {'koordinatoX' : Global.objektoj[index_pos]['koordinatoX'],
'koordinatoY' : Global.objektoj[index_pos]['koordinatoY'],
'koordinatoZ' : Global.objektoj[index_pos]['koordinatoZ'],
'kubo': {'objId' : Global.kubo},},
'uuid' : Global.objektoj[index_pos]['uuid']},})
Title.CloseWindow()
Global.direktebla_objekto[Global.realeco-2]['kosmo'] = false
# вызываем сцену станции
get_tree().change_scene('res://blokoj/kosmostacioj/CapKosmostacio.tscn')
elif index == 3: # если выбрана стрельба по объекту elif index == 3: # если выбрана стрельба по объекту
# вычисляем объект в космосе # вычисляем объект в космосе
# проходим по всем созданным объектам в космосе и находим нужный по uuid # проходим по всем созданным объектам в космосе и находим нужный по uuid
......
...@@ -29,22 +29,7 @@ transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -3.06387, 15.6992 ) ...@@ -29,22 +29,7 @@ transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -3.06387, 15.6992 )
[node name="Forcefield" parent="." instance=ExtResource( 2 )] [node name="Forcefield" parent="." instance=ExtResource( 2 )]
transform = Transform( -35, 8.74228e-08, 4.20351e-14, 0, -4.37114e-08, 11, 3.0598e-06, 1, 4.80825e-07, 0, 10.6259, -32.2447 ) transform = Transform( -35, 8.74228e-08, 4.20351e-14, 0, -4.37114e-08, 11, 3.0598e-06, 1, 4.80825e-07, 0, 10.6259, -32.2447 )
[node name="kosmo" type="Button" parent="."]
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
margin_left = -154.0
margin_top = -57.0
focus_mode = 0
enabled_focus_mode = 0
text = "Выйти в КОСМОС"
__meta__ = {
"_edit_use_anchors_": false
}
[node name="camera" type="Camera" parent="."] [node name="camera" type="Camera" parent="."]
transform = Transform( 0.0854123, 0.140573, -0.986379, -0.0121271, 0.99007, 0.140049, 0.996272, 9.34807e-10, 0.0862689, -0.956009, 5.66859, 0 ) transform = Transform( 0.0854123, 0.140573, -0.986379, -0.0121271, 0.99007, 0.140049, 0.996272, 9.34807e-10, 0.0862689, -0.956009, 5.66859, 0 )
script = ExtResource( 5 ) script = ExtResource( 5 )
[connection signal="ready" from="." to="." method="_on_CapKosmostacio_ready"] [connection signal="ready" from="." to="." method="_on_CapKosmostacio_ready"]
[connection signal="pressed" from="kosmo" to="." method="_on_kosmo_pressed"]
extends Spatial extends Spatial
const QueryObject = preload("res://kerno/menuo/skriptoj/queries.gd")
func _on_kosmo_pressed():
if not Global.direktebla_objekto[Global.realeco-2].has('uuid'):
print('Нет корабля для этого мира')
return
var q = QueryObject.new()
# Делаем запрос к бэкэнду для получения списка управляемых объектов.
# Ответ будет обрабатываться в функции get_direktebla_request_complete
var del_uuid = '' #есть ли в базе запись о нахождении в станции
# задаём координаты выхода из станции, согласно координатам станции
if len(Global.direktebla_objekto[Global.realeco-2]['ligiloLigilo']['edges'])>0:
Global.direktebla_objekto[Global.realeco-2]['koordinatoX'] = \
Global.direktebla_objekto[Global.realeco-2]['ligiloLigilo']['edges'][0]['node']['posedanto']['koordinatoX'] + 120
Global.direktebla_objekto[Global.realeco-2]['koordinatoY'] = \
Global.direktebla_objekto[Global.realeco-2]['ligiloLigilo']['edges'][0]['node']['posedanto']['koordinatoY'] + 120
Global.direktebla_objekto[Global.realeco-2]['koordinatoZ'] = \
Global.direktebla_objekto[Global.realeco-2]['ligiloLigilo']['edges'][0]['node']['posedanto']['koordinatoZ'] + 200
del_uuid = Global.direktebla_objekto[Global.realeco-2]['ligiloLigilo']['edges'][0]['node']['uuid']
Global.kubo = Global.direktebla_objekto[Global.realeco-2]['ligiloLigilo']['edges'][0]['node']['posedanto']['kubo']['objId']
Global.direktebla_objekto[Global.realeco-2]['rotaciaX'] = 0
Global.direktebla_objekto[Global.realeco-2]['rotaciaY'] = 0
Global.direktebla_objekto[Global.realeco-2]['rotaciaZ'] = 0
Global.direktebla_objekto[Global.realeco-2]['kosmo'] = true
#удаляем в массиве объектов пользователя указатель на станцию
Global.direktebla_objekto[Global.realeco-2]['ligiloLigilo']['edges'].clear()
# Разрегистрируем обработчик сигнала request_completed (вызывается
# по завершении HTTPRequest)
Title.get_node("request").connect('request_completed', Title, 'komenci_request_complete')
var error = Title.get_node("request").request(q.URL_DATA,
Global.backend_headers, true, 2,
q.go_objekt_kosmo_query(
Global.direktebla_objekto[Global.realeco-2]['uuid'],
Global.direktebla_objekto[Global.realeco-2]['koordinatoX'],
Global.direktebla_objekto[Global.realeco-2]['koordinatoY'],
Global.direktebla_objekto[Global.realeco-2]['koordinatoZ'],
0,0,0, del_uuid, Global.kubo
))
# go_objekt_kosmo_query(uuid, koordX, koordY, koordZ, rotaciaX, rotaciaY, rotaciaZ, uuid_ligilo_del, kuboId = 1):
get_tree().change_scene('res://blokoj/kosmo/scenoj/space.tscn')
# Если запрос не выполнен из-за какой-то ошибки
# TODO: Такие ошибки наверное нужно как-то выводить пользователю?
if error != OK:
print('Error in GET (direktebla) Request.')
#const base_ship = preload("res://blokoj/kosmosxipoj/scenoj/base_ship.tscn")
const sxipo = preload("res://blokoj/kosmosxipoj/scenoj/sxipo_fremdulo.tscn") const sxipo = preload("res://blokoj/kosmosxipoj/scenoj/sxipo_fremdulo.tscn")
const sxipo_modulo = preload("res://blokoj/kosmosxipoj/skriptoj/moduloj/sxipo.gd") const sxipo_modulo = preload("res://blokoj/kosmosxipoj/skriptoj/moduloj/sxipo.gd")
......
...@@ -26,6 +26,9 @@ func _on_Taskoj_pressed(): ...@@ -26,6 +26,9 @@ func _on_Taskoj_pressed():
func CloseWindow(): func CloseWindow():
$CanvasLayer/UI/Taskoj/Window/canvas/MarginContainer.set_visible(false) $CanvasLayer/UI/Taskoj/Window/canvas/MarginContainer.set_visible(false)
$CanvasLayer/UI/Objektoj/Window/canvas/MarginContainer.set_visible(false) $CanvasLayer/UI/Objektoj/Window/canvas/MarginContainer.set_visible(false)
$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)
func reloadWindow(): func reloadWindow():
...@@ -209,16 +212,15 @@ func _on_eniri_kosmostacio_request_completed(result, response_code, headers, bod ...@@ -209,16 +212,15 @@ func _on_eniri_kosmostacio_request_completed(result, response_code, headers, bod
func _on_b_itinero_pressed(): func _on_b_itinero_pressed():
$CanvasLayer/UI/b_itinero/itinero/canvas/MarginContainer.set_visible(true) $CanvasLayer/UI/b_itinero/itinero/canvas/MarginContainer.set_visible(true)
pass
func _on_ad_pressed(): func _on_ad_pressed():
$CanvasLayer/UI/ad/ad_control/WindowDialog.set_visible(true) $CanvasLayer/UI/ad/ad_control/WindowDialog.set_visible(true)
pass # Replace with function body.
func _on_interago_pressed(): func _on_interago_pressed():
$CanvasLayer/UI/interago/interago/canvas/MarginContainer.set_visible(true) if $CanvasLayer/UI/interago/interago/canvas/MarginContainer.visible:
pass # Replace with function body. $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)
...@@ -33,4 +33,20 @@ margin_bottom = -0.0420227 ...@@ -33,4 +33,20 @@ margin_bottom = -0.0420227
margin_right = 248.0 margin_right = 248.0
[node name="Label" parent="canvas/MarginContainer/VBoxContainer" index="0"] [node name="Label" parent="canvas/MarginContainer/VBoxContainer" index="0"]
margin_right = 248.0
text = "Центр взаимодействия" text = "Центр взаимодействия"
[node name="kosmo" type="Button" parent="canvas/MarginContainer/VBoxContainer" index="1"]
margin_top = 21.0
margin_right = 248.0
margin_bottom = 44.0
text = "Выйти в космос"
[node name="scroll" parent="canvas/MarginContainer/VBoxContainer" index="2"]
margin_top = 48.0
margin_right = 248.0
[node name="ItemList" parent="canvas/MarginContainer/VBoxContainer/scroll" index="0"]
margin_right = 248.0
margin_bottom = 111.0
[connection signal="pressed" from="canvas/MarginContainer/VBoxContainer/kosmo" to="." method="_on_kosmo_pressed"]
extends "res://kerno/fenestroj/tipo1.gd" extends "res://kerno/fenestroj/tipo1.gd"
# Declare member variables here. Examples: onready var _button = $canvas/MarginContainer/VBoxContainer/kosmo
# var a = 2 onready var _label = $canvas/MarginContainer/VBoxContainer/Label
# var b = "text"
# Called when the node enters the scene tree for the first time. const QueryObject = preload("res://kerno/menuo/skriptoj/queries.gd")
func _ready():
pass # Replace with function body.
# ищем в списке объектов объект с конкретным uuid
func search_objekt_uuid(uuid):
for objekt in Global.objektoj:
if objekt['uuid']==uuid:
return objekt['nomo']['enhavo']
return 'не найден'
func print_button():
if Global.direktebla_objekto[Global.realeco-2]['kosmo']:
_label.text = 'Центр взаимодействия'
_button.text='Войти в станцию'
_button.disabled=true
_button.set_visible(false)
else:
if Global.direktebla_objekto[Global.realeco-2].get('ligiloLigilo'):
if len(Global.direktebla_objekto[Global.realeco-2]['ligiloLigilo']['edges'])>0:
var uuid = Global.direktebla_objekto[Global.realeco-2]['ligiloLigilo']['edges'][0]['node']['uuid']
_label.text = search_objekt_uuid(uuid)# Global.direktebla_objekto[Global.realeco-2]
_button.text='Выйти в космос'
_button.disabled=false
_button.set_visible(true)
func _on_kosmo_pressed():
if Global.direktebla_objekto[Global.realeco-2]['kosmo']:
go_kosmostacioj()
else:
go_kosmo()
$canvas/MarginContainer.set_visible(false)
# вход в ближайшую станцию (задача - вычислить её в списке объектов)
func go_kosmostacioj():
# Разрегистрируем обработчик сигнала request_completed (вызывается
# по завершении HTTPRequest)
# Title.get_node("request").connect('request_completed', Title, '_on_eniri_kosmostacio_request_completed')
# var q = QueryObject.new()
# # закрываем проект
# # добавляем запись в связи, что находимся внутри
# var uuid_tasko = ''
# if $"../ship".projekto_uuid:
# uuid_tasko = Global.itineroj[0]['uuid_tasko']
# var error = Title.get_node("request").request(q.URL_DATA,
# Global.backend_headers,
# true, 2, q.eniri_kosmostacio(
# $"../ship".projekto_uuid,
# uuid_tasko,
# Global.objektoj[index_pos]['uuid']))
# # Если запрос не выполнен из-за какой-то ошибки
# # TODO: Такие ошибки наверное нужно как-то выводить пользователю?
# if error != OK:
# print('Error in GET (_on_eniri_kosmostacio_request_completed) Request.')
# # добавляем в данные пользователя о станции для последующего выхода
# if !Global.direktebla_objekto[Global.realeco-2].get('ligiloLigilo'):
# Global.direktebla_objekto[Global.realeco-2]['ligiloLigilo'] = {'edges':[]}
# Global.direktebla_objekto[Global.realeco-2]['ligiloLigilo']['edges'].append({
# 'node': {'posedanto': {'koordinatoX' : Global.objektoj[index_pos]['koordinatoX'],
# 'koordinatoY' : Global.objektoj[index_pos]['koordinatoY'],
# 'koordinatoZ' : Global.objektoj[index_pos]['koordinatoZ'],
# 'kubo': {'objId' : Global.kubo},},
# 'uuid' : Global.objektoj[index_pos]['uuid']},})
# Title.CloseWindow()
# Global.direktebla_objekto[Global.realeco-2]['kosmo'] = false
# # вызываем сцену станции
# get_tree().change_scene('res://blokoj/kosmostacioj/CapKosmostacio.tscn')
pass
func go_kosmo():
if not Global.direktebla_objekto[Global.realeco-2].has('uuid'):
print('Нет корабля для этого мира')
return
var q = QueryObject.new()
# Делаем запрос к бэкэнду для получения списка управляемых объектов.
# Ответ будет обрабатываться в функции get_direktebla_request_complete
var del_uuid = '' #есть ли в базе запись о нахождении в станции
# задаём координаты выхода из станции, согласно координатам станции
if len(Global.direktebla_objekto[Global.realeco-2]['ligiloLigilo']['edges'])>0:
Global.direktebla_objekto[Global.realeco-2]['koordinatoX'] = \
Global.direktebla_objekto[Global.realeco-2]['ligiloLigilo']['edges'][0]['node']['posedanto']['koordinatoX'] + 120
Global.direktebla_objekto[Global.realeco-2]['koordinatoY'] = \
Global.direktebla_objekto[Global.realeco-2]['ligiloLigilo']['edges'][0]['node']['posedanto']['koordinatoY'] + 120
Global.direktebla_objekto[Global.realeco-2]['koordinatoZ'] = \
Global.direktebla_objekto[Global.realeco-2]['ligiloLigilo']['edges'][0]['node']['posedanto']['koordinatoZ'] + 200
del_uuid = Global.direktebla_objekto[Global.realeco-2]['ligiloLigilo']['edges'][0]['node']['uuid']
Global.kubo = Global.direktebla_objekto[Global.realeco-2]['ligiloLigilo']['edges'][0]['node']['posedanto']['kubo']['objId']
Global.direktebla_objekto[Global.realeco-2]['rotaciaX'] = 0
Global.direktebla_objekto[Global.realeco-2]['rotaciaY'] = 0
Global.direktebla_objekto[Global.realeco-2]['rotaciaZ'] = 0
Global.direktebla_objekto[Global.realeco-2]['kosmo'] = true
#удаляем в массиве объектов пользователя указатель на станцию
Global.direktebla_objekto[Global.realeco-2]['ligiloLigilo']['edges'].clear()
# Разрегистрируем обработчик сигнала request_completed (вызывается
# по завершении HTTPRequest)
Title.get_node("request").connect('request_completed', Title, 'komenci_request_complete')
var error = Title.get_node("request").request(q.URL_DATA,
Global.backend_headers, true, 2,
q.go_objekt_kosmo_query(
Global.direktebla_objekto[Global.realeco-2]['uuid'],
Global.direktebla_objekto[Global.realeco-2]['koordinatoX'],
Global.direktebla_objekto[Global.realeco-2]['koordinatoY'],
Global.direktebla_objekto[Global.realeco-2]['koordinatoZ'],
0,0,0, del_uuid, Global.kubo
))
# go_objekt_kosmo_query(uuid, koordX, koordY, koordZ, rotaciaX, rotaciaY, rotaciaZ, uuid_ligilo_del, kuboId = 1):
get_tree().change_scene('res://blokoj/kosmo/scenoj/space.tscn')
# Если запрос не выполнен из-за какой-то ошибки
# TODO: Такие ошибки наверное нужно как-то выводить пользователю?
if error != OK:
print('Error in GET (direktebla) Request.')
# Called every frame. 'delta' is the elapsed time since the previous frame.
#func _process(delta):
# pass
Поддерживает Markdown
0% или .
You are about to add 0 people to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать