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

Merge branch 'develop' into 'develop'

Develop

See merge request tigisae/universo!6
владельцы c82b9013 d859e137
......@@ -40,40 +40,45 @@ const translacio_stat = 300
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):
if index == 2: # если выбран вход в станцию
# Разрегистрируем обработчик сигнала 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')
go_kosmostacioj()
elif index == 3: # если выбрана стрельба по объекту
# вычисляем объект в космосе
# проходим по всем созданным объектам в космосе и находим нужный по uuid
......
......@@ -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 )]
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="."]
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 )
[connection signal="ready" from="." to="." method="_on_CapKosmostacio_ready"]
[connection signal="pressed" from="kosmo" to="." method="_on_kosmo_pressed"]
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_modulo = preload("res://blokoj/kosmosxipoj/skriptoj/moduloj/sxipo.gd")
......
......@@ -13,12 +13,10 @@ __meta__ = {
[node name="ColorRect" type="ColorRect" parent="CanvasLayer"]
anchor_top = -0.00128967
anchor_right = 0.0107422
anchor_bottom = 0.0287103
margin_left = 238.0
margin_top = 141.0
margin_right = 548.0
margin_bottom = 451.0
margin_right = 559.0
margin_bottom = 468.226
color = Color( 0, 0, 0, 0.294118 )
__meta__ = {
"_edit_use_anchors_": true
......@@ -33,19 +31,5 @@ __meta__ = {
"_edit_use_anchors_": true
}
[node name="Popup" type="Popup" parent="CanvasLayer/ColorRect"]
visible = true
anchor_left = 0.0168739
anchor_top = -0.00471832
anchor_right = 0.0168739
anchor_bottom = -0.00471832
margin_left = 5.89395
margin_top = 19.2888
margin_right = 305.894
margin_bottom = 319.289
__meta__ = {
"_edit_use_anchors_": true
}
[node name="Timer" type="Timer" parent="CanvasLayer/ColorRect"]
autostart = true
......@@ -26,6 +26,9 @@ func _on_Taskoj_pressed():
func CloseWindow():
$CanvasLayer/UI/Taskoj/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():
......@@ -209,16 +212,15 @@ func _on_eniri_kosmostacio_request_completed(result, response_code, headers, bod
func _on_b_itinero_pressed():
$CanvasLayer/UI/b_itinero/itinero/canvas/MarginContainer.set_visible(true)
pass
func _on_ad_pressed():
$CanvasLayer/UI/ad/ad_control/WindowDialog.set_visible(true)
pass # Replace with function body.
func _on_interago_pressed():
$CanvasLayer/UI/interago/interago/canvas/MarginContainer.set_visible(true)
pass # Replace with function body.
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)
......@@ -27,7 +27,7 @@
[ext_resource path="res://kerno/menuo/resursoj/icons/icon7.png" type="Texture" id=25]
[ext_resource path="res://kerno/menuo/resursoj/icons/icon6.png" type="Texture" id=26]
[ext_resource path="res://kerno/menuo/resursoj/icons/icon5.png" type="Texture" id=27]
[ext_resource path="res://kerno/menuo/resursoj/icons/tab5.png" type="Texture" id=28]
[ext_resource path="res://kerno/menuo/resursoj/icons/tab5b.png" type="Texture" id=28]
[ext_resource path="res://kerno/menuo/resursoj/icons/lefticon7.png" type="Texture" id=29]
[ext_resource path="res://kerno/menuo/resursoj/icons/lefticon4.png" type="Texture" id=30]
[ext_resource path="res://kerno/menuo/resursoj/icons/lefticon3.png" type="Texture" id=31]
......@@ -402,6 +402,16 @@ __meta__ = {
"_edit_use_anchors_": true
}
[node name="Label" type="Label" parent="CanvasLayer/UI/user"]
margin_left = 37.0
margin_top = 15.0
margin_right = 142.0
margin_bottom = 32.0
text = "Моя планета"
__meta__ = {
"_edit_use_anchors_": true
}
[node name="news" type="Button" parent="CanvasLayer/UI"]
margin_left = 702.61
margin_top = -3.46329
......
......@@ -33,4 +33,20 @@ margin_bottom = -0.0420227
margin_right = 248.0
[node name="Label" parent="canvas/MarginContainer/VBoxContainer" index="0"]
margin_right = 248.0
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"]
......@@ -43,5 +43,6 @@ var fenestro_kosmo
func scene(name):
get_tree().change_scene('res://blokoj/rajtigo/'+name+'.tscn')
# =Global.direktebla_objekto[objekt[node][realeco[objId]]=={koordinatoX:49905.585938, koordinatoY:512.045044, koordinatoZ:5.943917, ligilo:{edges:[{node:{ligilo:{ligilo:{edges:[...]}, nomo:{enhavo:Vostok Двигатель}}, tipo:{objId:1}}}, {node:{ligilo:{ligilo:{edges:[...]}, nomo:{enhavo:Vostok Двигатель}}, tipo:{objId:1}}}, {node:{ligilo:{ligilo:{edges:[{node:{konektiloLigilo:4, konektiloPosedanto:3, ligilo:{uuid:047b37d5-eb15-4548-8eb8-2de6913dd6a3}}}, {node:{konektiloLigilo:3, konektiloPosedanto:4, ligilo:{uuid:a9f5962d-7b7b-4007-a8ae-c07d7a8c2e18}}}]}, nomo:{enhavo:Vostok Грузовой Модуль}}, tipo:{objId:1}}}, {node:{ligilo:{ligilo:{edges:[{node:{konektiloLigilo:Null, konektiloPosedanto:Null, ligilo:{uuid:bc40a651-7415-4b5d-9e89-1f2a9d22cac5}}}, {node:{konektiloLigilo:1, konektiloPosedanto:2, ligilo:{uuid:08d6d319-5d5f-462e-b1be-7532c881ed9c}}}]}, nomo:{enhavo:Vostok Модуль Кабины}}, tipo:{objId:1}}}]}, ligiloLigilo:{edges:[...]}, nomo:{enhavo:Vostok Vasiliy}, posedanto:{edges:[{node:{posedantoUzanto:{siriusoUzanto:{objId:6417}}}}]}, posedantoObjekto:Null, priskribo:{enhavo:Базовый космический корабль}, projekto:{edges:[]}, realeco:{objId:2}, resurso:{nomo:{enhavo:Vostok U2}, objId:3, priskribo:{enhavo:Базовый космический корабль}, tipo:{nomo:{enhavo:Космический корабль}, objId:2}}, rotaciaX:0.631496, rotaciaY:1.489518, rotaciaZ:0, uuid:1790592a-8f10-4ca1-a829-9dced5975504
func _ready():
OS.window_maximized = true
extends "res://kerno/fenestroj/tipo1.gd"
# Declare member variables here. Examples:
# var a = 2
# var b = "text"
onready var _button = $canvas/MarginContainer/VBoxContainer/kosmo
onready var _label = $canvas/MarginContainer/VBoxContainer/Label
# Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.
const QueryObject = preload("res://kerno/menuo/skriptoj/queries.gd")
# ищем в списке объектов объект с конкретным 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.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать