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

Окно маршрута выведено из космоса

владелец caaff557
[gd_scene load_steps=16 format=2] [gd_scene load_steps=15 format=2]
[ext_resource path="res://blokoj/kosmo/scenoj/waypoint.tscn" type="PackedScene" id=1] [ext_resource path="res://blokoj/kosmo/scenoj/waypoint.tscn" type="PackedScene" id=1]
[ext_resource path="res://blokoj/kosmo/scenoj/ship.tscn" type="PackedScene" id=2] [ext_resource path="res://blokoj/kosmo/scenoj/ship.tscn" type="PackedScene" id=2]
...@@ -9,7 +9,6 @@ ...@@ -9,7 +9,6 @@
[ext_resource path="res://blokoj/kosmo/skriptoj/http_mutate.gd" type="Script" id=7] [ext_resource path="res://blokoj/kosmo/skriptoj/http_mutate.gd" type="Script" id=7]
[ext_resource path="res://blokoj/kosmo/skriptoj/space.gd" type="Script" id=8] [ext_resource path="res://blokoj/kosmo/skriptoj/space.gd" type="Script" id=8]
[ext_resource path="res://blokoj/kosmo/scenoj/menuo.tscn" type="PackedScene" id=9] [ext_resource path="res://blokoj/kosmo/scenoj/menuo.tscn" type="PackedScene" id=9]
[ext_resource path="res://blokoj/kosmo/scenoj/itinero.tscn" type="PackedScene" id=11]
[sub_resource type="SphereMesh" id=1] [sub_resource type="SphereMesh" id=1]
radial_segments = 4 radial_segments = 4
...@@ -155,20 +154,6 @@ distance_min = 0 ...@@ -155,20 +154,6 @@ distance_min = 0
[node name="Control" parent="." instance=ExtResource( 9 )] [node name="Control" parent="." instance=ExtResource( 9 )]
[node name="b_itinero" type="Button" parent="."]
margin_left = 875.0
margin_top = 515.651
margin_right = 952.71
margin_bottom = 540.651
focus_mode = 0
enabled_focus_mode = 0
text = "маршрут"
__meta__ = {
"_edit_use_anchors_": false
}
[node name="itinero" parent="b_itinero" instance=ExtResource( 11 )]
[node name="timer" type="Timer" parent="."] [node name="timer" type="Timer" parent="."]
wait_time = 10.0 wait_time = 10.0
...@@ -199,5 +184,4 @@ anims/open_scene = SubResource( 5 ) ...@@ -199,5 +184,4 @@ anims/open_scene = SubResource( 5 )
[connection signal="request_completed" from="http_tasko" to="." method="_on_http_tasko_request_completed"] [connection signal="request_completed" from="http_tasko" to="." method="_on_http_tasko_request_completed"]
[connection signal="request_completed" from="http_posedanto" to="." method="_on_http_posedanto_request_completed"] [connection signal="request_completed" from="http_posedanto" to="." method="_on_http_posedanto_request_completed"]
[connection signal="request_completed" from="http_finado" to="." method="_on_http_finado_request_completed"] [connection signal="request_completed" from="http_finado" to="." method="_on_http_finado_request_completed"]
[connection signal="pressed" from="b_itinero" to="." method="_on_Button_pressed"]
[connection signal="timeout" from="timer" to="." method="_on_Timer_timeout"] [connection signal="timeout" from="timer" to="." method="_on_Timer_timeout"]
extends Control extends Control
var itineroj = [] #var itineroj = [] # маршруты
#uuid_tasko - uuid задачи, когда уже летим #uuid_tasko - uuid задачи, когда уже летим
#uuid - uuid цели полёта, если это объект #uuid - uuid цели полёта, если это объект
#nomo - название объекта цели #nomo - название объекта цели
...@@ -11,6 +11,10 @@ var itineroj = [] ...@@ -11,6 +11,10 @@ var itineroj = []
# 'koordinatoZ': # 'koordinatoZ':
# расстояние до цели полёта - distance # расстояние до цели полёта - distance
func _ready():
Global.fenestro_itinero = self
func _on_Close_button_pressed(): func _on_Close_button_pressed():
$"canvas/MarginContainer".set_visible(false) $"canvas/MarginContainer".set_visible(false)
...@@ -28,12 +32,12 @@ func _drag(event: InputEvent) -> void: ...@@ -28,12 +32,12 @@ func _drag(event: InputEvent) -> void:
func FillItemList(): func FillItemList():
$"canvas/MarginContainer/VBoxContainer/ItemList".clear() $"canvas/MarginContainer/VBoxContainer/ItemList".clear()
# Заполняет список найдеными продуктами # Заполняет список найдеными продуктами
for Item in itineroj: for Item in Global.itineroj:
get_node("canvas/MarginContainer/VBoxContainer/ItemList").add_item('('+String(int(Item['distance']))+') '+Item['nomo'], null, true) get_node("canvas/MarginContainer/VBoxContainer/ItemList").add_item('('+String(int(Item['distance']))+') '+Item['nomo'], null, true)
#пересчет дистанции до объектов в списке #пересчет дистанции до объектов в списке
func distance_to(trans): func distance_to(trans):
for obj in itineroj: for obj in Global.itineroj:
obj['distance'] = trans.distance_to(Vector3(obj['koordinatoX'], obj['distance'] = trans.distance_to(Vector3(obj['koordinatoX'],
obj['koordinatoY'],obj['koordinatoZ'])) obj['koordinatoY'],obj['koordinatoZ']))
$'canvas/MarginContainer/VBoxContainer/ItemList'.clear() $'canvas/MarginContainer/VBoxContainer/ItemList'.clear()
...@@ -43,34 +47,37 @@ func distance_to(trans): ...@@ -43,34 +47,37 @@ func distance_to(trans):
#отправляем корабль в полёт #отправляем корабль в полёт
func go_ship(): func go_ship():
if len(itineroj)==0: if len(Global.itineroj)==0:
return 404 return 404
var position = Vector3(itineroj[0]['koordinatoX'],itineroj[0]['koordinatoY'],itineroj[0]['koordinatoZ']) if Global.fenestro_kosmo:
$"../../ship".set_way_point(position,null) var position = Vector3(Global.itineroj[0]['koordinatoX'],Global.itineroj[0]['koordinatoY'],Global.itineroj[0]['koordinatoZ'])
$"../../way_point".set_way_point(position) Global.fenestro_kosmo.get_node("ship").set_way_point(position,null)
Global.fenestro_kosmo.get_node("way_point").set_way_point(position)
func komenci_itinero(): func komenci_itinero():
$"../../ship".vojkomenco()#начинаем движение if Global.fenestro_kosmo:
# отправляем в полёт Global.fenestro_kosmo.get_node("ship").vojkomenco()#начинаем движение
go_ship() # отправляем в полёт
#запускаем таймер go_ship()
$"../../timer".start() #запускаем таймер
$canvas/MarginContainer/VBoxContainer/HBoxContainer/kom_itinero.disabled=true Global.fenestro_kosmo.get_node("timer").start()
$canvas/MarginContainer/VBoxContainer/HBoxContainer/kom_itinero.disabled=true
func _on_kom_itinero_pressed(): func _on_kom_itinero_pressed():
#остановить текущие задачи if Global.fenestro_kosmo:
# останавливаем таймер передачи данных на сервер #остановить текущие задачи
$"../../timer".stop() # останавливаем таймер передачи данных на сервер
#отправка последних координат и закрытие задачи с проектом Global.fenestro_kosmo.get_node("timer").stop()
$"../../ship".finofara_flugo() #отправка последних координат и закрытие задачи с проектом
#создать проект Global.fenestro_kosmo.get_node("ship").finofara_flugo()
#создать список задач на основе списка itineroj #создать проект
komenci_itinero() #создать список задач на основе списка itineroj
komenci_itinero()
func add_itinero(uuid_tasko, uuid, nomo, koordX, koordY, koordZ, distance): func add_itinero(uuid_tasko, uuid, nomo, koordX, koordY, koordZ, distance):
itineroj.append({ Global.itineroj.append({
'uuid_tasko':uuid_tasko, 'uuid_tasko':uuid_tasko,
'uuid':uuid, 'uuid':uuid,
'nomo':nomo, 'nomo':nomo,
...@@ -82,49 +89,50 @@ func add_itinero(uuid_tasko, uuid, nomo, koordX, koordY, koordZ, distance): ...@@ -82,49 +89,50 @@ func add_itinero(uuid_tasko, uuid, nomo, koordX, koordY, koordZ, distance):
FillItemList() FillItemList()
func clear_itinero(): func clear_itinero():
itineroj.clear() Global.itineroj.clear()
FillItemList() FillItemList()
func _on_itinero_fin_pressed(): func _on_itinero_fin_pressed():
#если в полёте if Global.fenestro_kosmo:
if $canvas/MarginContainer/VBoxContainer/HBoxContainer/kom_itinero.disabled: #если в полёте
if $canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_fin.text=='Пауза': if $canvas/MarginContainer/VBoxContainer/HBoxContainer/kom_itinero.disabled:
#останавливаем движение корабля if $canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_fin.text=='Пауза':
$canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_fin.text='Далее' #останавливаем движение корабля
$canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_next.disabled=true $canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_fin.text='Далее'
$"../../ship".clear_way_point() $canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_next.disabled=true
$"../../way_point".set_active(false) Global.fenestro_kosmo.get_node("ship").clear_way_point()
else: Global.fenestro_kosmo.get_node("way_point").set_active(false)
$canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_fin.text='Пауза' else:
#продолжаем движение корабля $canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_fin.text='Пауза'
$canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_next.disabled=false #продолжаем движение корабля
go_ship() $canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_next.disabled=false
# itinero_clear go_ship()
# itinero_clear
func _on_itinero_clear_pressed(): func _on_itinero_clear_pressed():
if len(itineroj)==0: if len(Global.itineroj)==0:
return 404 return 404
#закрыть все задачи и проект if Global.fenestro_kosmo:
#удаляем все задачи далее первой #закрыть все задачи и проект
itineroj = [itineroj[0],] #удаляем все задачи далее первой
#закрываем текущую задачу и проект автоматически закрывается Global.itineroj = [Global.itineroj[0],]
$"../../ship".clear_way_point() #закрываем текущую задачу и проект автоматически закрывается
$"../../way_point".set_active(false) Global.fenestro_kosmo.get_node("ship").clear_way_point()
$"../../timer".stop() Global.fenestro_kosmo.get_node("way_point").set_active(false)
$"../../ship".finofara_flugo() Global.fenestro_kosmo.get_node("timer").stop()
# itineroj.clear() Global.fenestro_kosmo.get_node("ship").finofara_flugo()
# $canvas/MarginContainer/VBoxContainer/ItemList.clear() # itineroj.clear()
$canvas/MarginContainer/VBoxContainer/HBoxContainer/kom_itinero.disabled=false # $canvas/MarginContainer/VBoxContainer/ItemList.clear()
$canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_next.disabled=true $canvas/MarginContainer/VBoxContainer/HBoxContainer/kom_itinero.disabled=false
$canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_fin.disabled=true $canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_next.disabled=true
$canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_clear.disabled=true $canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_fin.disabled=true
pass # Replace with function body. $canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_clear.disabled=true
# пропустить текущую цель и лететь к следующей # пропустить текущую цель и лететь к следующей
func _on_itinero_next_pressed(): func _on_itinero_next_pressed():
$"../../ship".clear_way_point() if Global.fenestro_kosmo:
$"../../way_point".set_active(false) Global.fenestro_kosmo.get_node("ship").clear_way_point()
$"../../timer".stop() Global.fenestro_kosmo.get_node("way_point").set_active(false)
$"../../ship".finofara_flugo() Global.fenestro_kosmo.get_node("timer").stop()
pass # Replace with function body. Global.fenestro_kosmo.get_node("ship").finofara_flugo()
...@@ -50,7 +50,7 @@ func _on_PopupMenu_index_pressed(index): ...@@ -50,7 +50,7 @@ func _on_PopupMenu_index_pressed(index):
# добавляем запись в связи, что находимся внутри # добавляем запись в связи, что находимся внутри
var uuid_tasko = '' var uuid_tasko = ''
if $"../ship".projekto_uuid: if $"../ship".projekto_uuid:
uuid_tasko = $"../b_itinero/itinero".itineroj[0]['uuid_tasko'] uuid_tasko = Global.itineroj[0]['uuid_tasko']
var error = Title.get_node("request").request(q.URL_DATA, var error = Title.get_node("request").request(q.URL_DATA,
Global.backend_headers, Global.backend_headers,
true, 2, q.eniri_kosmostacio( true, 2, q.eniri_kosmostacio(
...@@ -98,7 +98,7 @@ func _on_PopupMenu_index_pressed(index): ...@@ -98,7 +98,7 @@ func _on_PopupMenu_index_pressed(index):
var speed = celo - $"../ship".translation var speed = celo - $"../ship".translation
celo = $"../ship".translation + speed.normalized() * dist celo = $"../ship".translation + speed.normalized() * dist
$"../b_itinero/itinero".add_itinero( Global.fenestro_itinero.add_itinero(
'', '',
Global.objektoj[index_pos]['uuid'], Global.objektoj[index_pos]['uuid'],
Global.objektoj[index_pos]['nomo']['enhavo'], #'nomo' Global.objektoj[index_pos]['nomo']['enhavo'], #'nomo'
...@@ -107,9 +107,9 @@ func _on_PopupMenu_index_pressed(index): ...@@ -107,9 +107,9 @@ func _on_PopupMenu_index_pressed(index):
celo.z, celo.z,
dist dist
) )
$"../b_itinero/itinero".FillItemList() Global.fenestro_itinero.FillItemList()
if index==0: if index==0:
$"../b_itinero/itinero".komenci_itinero() Global.fenestro_itinero.komenci_itinero()
# elif index==1: # elif index==1:
......
...@@ -49,7 +49,7 @@ func _physics_process(delta): ...@@ -49,7 +49,7 @@ func _physics_process(delta):
transform.basis = Basis(Quat(transform.basis).slerp(docking_rotation,speed_rotation*1.5)) #поворачиваем в дефолтное состояние, чтобы сесть transform.basis = Basis(Quat(transform.basis).slerp(docking_rotation,speed_rotation*1.5)) #поворачиваем в дефолтное состояние, чтобы сесть
move_and_slide(target_dir*delta*current_speed) #Двигаемся к цели move_and_slide(target_dir*delta*current_speed) #Двигаемся к цели
Title.get_node("CanvasLayer/UI/Objektoj/Window").distance_to(translation) Title.get_node("CanvasLayer/UI/Objektoj/Window").distance_to(translation)
$"../b_itinero/itinero".distance_to(translation) Global.fenestro_itinero.distance_to(translation)
func set_way_point(position, dock): func set_way_point(position, dock):
...@@ -81,35 +81,35 @@ func _on_timer_timeout(): ...@@ -81,35 +81,35 @@ func _on_timer_timeout():
#добавление в список маршрута с предварительным очишением маршрута #добавление в список маршрута с предварительным очишением маршрута
func add_itinero(): func add_itinero():
$"../b_itinero/itinero".add_itinero('','', 'точка в космосе', Global.fenestro_itinero.add_itinero('','', 'точка в космосе',
way_point.x, way_point.y, way_point.x, way_point.y,
way_point.z, translation.distance_to(way_point)) way_point.z, translation.distance_to(way_point))
#передача данных на сервер при отправке корабля по первой цели #передача данных на сервер при отправке корабля по первой цели
func vojkomenco(): func vojkomenco():
if len($"../b_itinero/itinero".itineroj)==0: if len(Global.itineroj)==0:
return 404 return 404
var q = QueryObject.new() var q = QueryObject.new()
if !projekto_uuid:#если проекта нет, то создаём if !projekto_uuid:#если проекта нет, то создаём
# цель маршрута берём из itineroj # цель маршрута берём из itineroj
var count_itineroj=len($"../b_itinero/itinero".itineroj)-1 var count_itineroj=len(Global.itineroj)-1
$"../http_projekto".request(q.URL, Global.backend_headers, true, 2, $"../http_projekto".request(q.URL, Global.backend_headers, true, 2,
q.instalo_projekto(uuid, q.instalo_projekto(uuid,
translation.x, #kom_koordX translation.x, #kom_koordX
translation.y, #kom_koordY translation.y, #kom_koordY
translation.z, #kom_koordZ translation.z, #kom_koordZ
$"../b_itinero/itinero".itineroj[count_itineroj]['koordinatoX'], #fin_koordX Global.itineroj[count_itineroj]['koordinatoX'], #fin_koordX
$"../b_itinero/itinero".itineroj[count_itineroj]['koordinatoY'], #fin_koordY Global.itineroj[count_itineroj]['koordinatoY'], #fin_koordY
$"../b_itinero/itinero".itineroj[count_itineroj]['koordinatoZ'] #fin_koordZ Global.itineroj[count_itineroj]['koordinatoZ'] #fin_koordZ
)) ))
else:#проект есть, изменяем задачу else:#проект есть, изменяем задачу
# ставим задачу в выполененную # ставим задачу в выполененную
# надо использовать другой request, не от поседанто, т.к. поседанто используется при / # надо использовать другой request, не от поседанто, т.к. поседанто используется при /
# установке владельца задачи и этот может не успеть отработать # установке владельца задачи и этот может не успеть отработать
$"../http_finado".request(q.URL, Global.backend_headers, true, 2, $"../http_finado".request(q.URL, Global.backend_headers, true, 2,
q.finado_tasko($"../b_itinero/itinero".itineroj[0]['uuid_tasko'])) q.finado_tasko(Global.itineroj[0]['uuid_tasko']))
$"../b_itinero/itinero".itineroj.remove(0)#удаляем задачу Global.itineroj.remove(0)#удаляем задачу
# изменяем цель проекта # изменяем цель проекта
$"../http_tasko".request(q.URL, Global.backend_headers, true, 2, $"../http_tasko".request(q.URL, Global.backend_headers, true, 2,
q.instalo_tasko_koord( q.instalo_tasko_koord(
...@@ -117,45 +117,45 @@ func vojkomenco(): ...@@ -117,45 +117,45 @@ func vojkomenco():
translation.x, #kom_koordX translation.x, #kom_koordX
translation.y, #kom_koordY translation.y, #kom_koordY
translation.z, #kom_koordZ translation.z, #kom_koordZ
$"../b_itinero/itinero".itineroj[0]['koordinatoX'], #fin_koordX Global.itineroj[0]['koordinatoX'], #fin_koordX
$"../b_itinero/itinero".itineroj[0]['koordinatoY'], #fin_koordY Global.itineroj[0]['koordinatoY'], #fin_koordY
$"../b_itinero/itinero".itineroj[0]['koordinatoZ'] #fin_koordZ Global.itineroj[0]['koordinatoZ'] #fin_koordZ
)) ))
$"../b_itinero/itinero".FillItemList() Global.fenestro_itinero.FillItemList()
$"../b_itinero/itinero/canvas/MarginContainer/VBoxContainer/HBoxContainer/kom_itinero".disabled=true Global.fenestro_itinero.get_node("canvas/MarginContainer/VBoxContainer/HBoxContainer/kom_itinero").disabled=true
$"../b_itinero/itinero/canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_next".disabled=false Global.fenestro_itinero.get_node("canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_next").disabled=false
$"../b_itinero/itinero/canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_fin".disabled=false Global.fenestro_itinero.get_node("canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_fin").disabled=false
$"../b_itinero/itinero/canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_clear".disabled=false Global.fenestro_itinero.get_node("canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_clear").disabled=false
func finofara_flugo(): func finofara_flugo():
if len($"../b_itinero/itinero".itineroj)==0: if len(Global.itineroj)==0:
return 404 # маршрута нет, закрывать нечего, выходим из процедуры return 404 # маршрута нет, закрывать нечего, выходим из процедуры
if projekto_uuid: if projekto_uuid:
var q = QueryObject.new() var q = QueryObject.new()
# если есть очередь в задачах, то закрываем только текущую задачу и запускаем в работу следующую # если есть очередь в задачах, то закрываем только текущую задачу и запускаем в работу следующую
if len($"../b_itinero/itinero".itineroj)==1: if len(Global.itineroj)==1:
$"../http_finado".request(q.URL, Global.backend_headers, true, 2, $"../http_finado".request(q.URL, Global.backend_headers, true, 2,
q.finado_projeko_tasko(projekto_uuid, $"../b_itinero/itinero".itineroj[0]['uuid_tasko'])) q.finado_projeko_tasko(projekto_uuid, Global.itineroj[0]['uuid_tasko']))
$"../b_itinero/itinero".itineroj.clear() Global.itineroj.clear()
$"../b_itinero/itinero/canvas/MarginContainer/VBoxContainer/ItemList".clear() Global.fenestro_itinero.get_node("canvas/MarginContainer/VBoxContainer/ItemList").clear()
projekto_uuid='' projekto_uuid=''
$"../b_itinero/itinero/canvas/MarginContainer/VBoxContainer/HBoxContainer/kom_itinero".disabled=false Global.fenestro_itinero.get_node("canvas/MarginContainer/VBoxContainer/HBoxContainer/kom_itinero").disabled=false
$"../b_itinero/itinero/canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_next".disabled=true Global.fenestro_itinero.get_node("canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_next").disabled=true
$"../b_itinero/itinero/canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_fin".disabled=true Global.fenestro_itinero.get_node("canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_fin").disabled=true
$"../b_itinero/itinero/canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_clear".disabled=true Global.fenestro_itinero.get_node("canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_clear").disabled=true
else: else:
$"../http_posedanto".request(q.URL, Global.backend_headers, true, 2, $"../http_posedanto".request(q.URL, Global.backend_headers, true, 2,
q.finado_tasko($"../b_itinero/itinero".itineroj[0]['uuid_tasko'])) q.finado_tasko(Global.itineroj[0]['uuid_tasko']))
# берём следующую задачу в работу # берём следующую задачу в работу
$"../b_itinero/itinero".itineroj.remove(0) Global.itineroj.remove(0)
$"../b_itinero/itinero".FillItemList() Global.fenestro_itinero.FillItemList()
# изменяем следующую задачу на "в работе" # изменяем следующую задачу на "в работе"
$"../http_finado".request(q.URL, Global.backend_headers, true, 2, $"../http_finado".request(q.URL, Global.backend_headers, true, 2,
q.finado_tasko($"../b_itinero/itinero".itineroj[0]['uuid_tasko'],2)) q.finado_tasko(Global.itineroj[0]['uuid_tasko'],2))
var position = Vector3($"../b_itinero/itinero".itineroj[0]['koordinatoX'], var position = Vector3(Global.itineroj[0]['koordinatoX'],
$"../b_itinero/itinero".itineroj[0]['koordinatoY'], Global.itineroj[0]['koordinatoY'],
$"../b_itinero/itinero".itineroj[0]['koordinatoZ']) Global.itineroj[0]['koordinatoZ'])
set_way_point(position,null) set_way_point(position,null)
$"../way_point".set_way_point(position) $"../way_point".set_way_point(position)
#запускаем таймер #запускаем таймер
......
...@@ -5,11 +5,12 @@ var choose = true ...@@ -5,11 +5,12 @@ var choose = true
signal load_objektoj signal load_objektoj
func _ready(): func _ready():
Global.fenestro_kosmo = self
# считываем размер экрана и задаём затемнение на весь экран # считываем размер экрана и задаём затемнение на весь экран
$ui/loading.margin_right = get_node("/root").get_viewport().size.x $ui/loading.margin_right = get_node("/root").get_viewport().size.x
$ui/loading.margin_bottom = get_node("/root").get_viewport().size.y $ui/loading.margin_bottom = get_node("/root").get_viewport().size.y
$b_itinero.margin_left = get_node("/root").get_viewport().size.x - 100 # $b_itinero.margin_left = get_node("/root").get_viewport().size.x - 100
$b_itinero.margin_top = get_node("/root").get_viewport().size.y-50 # $b_itinero.margin_top = get_node("/root").get_viewport().size.y-50
# создаём свой корабль # создаём свой корабль
var ship = create_ship(Global.direktebla_objekto[Global.realeco-2]) var ship = create_ship(Global.direktebla_objekto[Global.realeco-2])
#если корабль игрока, то брать данные из direktebla_objekto #если корабль игрока, то брать данные из direktebla_objekto
...@@ -80,7 +81,7 @@ func _on_http_projekto_request_completed(result, response_code, headers, body): ...@@ -80,7 +81,7 @@ func _on_http_projekto_request_completed(result, response_code, headers, body):
$"ship".translation.x, #kom_koordX $"ship".translation.x, #kom_koordX
$"ship".translation.y, #kom_koordY $"ship".translation.y, #kom_koordY
$"ship".translation.z, #kom_koordZ $"ship".translation.z, #kom_koordZ
$"b_itinero/itinero".itineroj Global.itineroj
)) ))
...@@ -91,7 +92,7 @@ func _on_http_tasko_request_completed(result, response_code, headers, body): ...@@ -91,7 +92,7 @@ func _on_http_tasko_request_completed(result, response_code, headers, body):
var parsed_resp = parse_json(resp) var parsed_resp = parse_json(resp)
var simpled_data = parsed_resp['data']['redaktuUniversoTaskoj']['universoTaskoj'] var simpled_data = parsed_resp['data']['redaktuUniversoTaskoj']['universoTaskoj']
# получаем список задач и помещаем в itinero # получаем список задач и помещаем в itinero
$"b_itinero/itinero".itineroj[0]['uuid_tasko']=simpled_data['uuid'] Global.itineroj[0]['uuid_tasko']=simpled_data['uuid']
func _on_http_posedanto_request_completed(result, response_code, headers, body): func _on_http_posedanto_request_completed(result, response_code, headers, body):
...@@ -106,18 +107,6 @@ func _on_http_finado_request_completed(result, response_code, headers, body): ...@@ -106,18 +107,6 @@ func _on_http_finado_request_completed(result, response_code, headers, body):
pass # Replace with function body. pass # Replace with function body.
func _on_Button_pressed():
if $"b_itinero/itinero/canvas/MarginContainer".visible:
$"b_itinero/itinero/canvas/MarginContainer".visible = false
else:
# устанавливаем координаты окна
$"b_itinero/itinero/canvas/MarginContainer".margin_left = $b_itinero.margin_left - 200
$"b_itinero/itinero/canvas/MarginContainer".margin_right = get_node("/root").get_viewport().size.x
$"b_itinero/itinero/canvas/MarginContainer".margin_top = $b_itinero.margin_top - 200
$"b_itinero/itinero/canvas/MarginContainer".margin_bottom = $b_itinero.margin_top
$"b_itinero/itinero/canvas/MarginContainer".visible = true
func _on_http_taskoj_request_completed(result, response_code, headers, body): func _on_http_taskoj_request_completed(result, response_code, headers, body):
var resp = body.get_string_from_utf8() var resp = body.get_string_from_utf8()
var parsed_resp = parse_json(resp) var parsed_resp = parse_json(resp)
...@@ -125,8 +114,8 @@ func _on_http_taskoj_request_completed(result, response_code, headers, body): ...@@ -125,8 +114,8 @@ func _on_http_taskoj_request_completed(result, response_code, headers, body):
# получаем список задач и помещаем в itinero # получаем список задач и помещаем в itinero
var i = 0 var i = 0
for tasko in simpled_data: for tasko in simpled_data:
if len($"b_itinero/itinero".itineroj)>i: if len(Global.itineroj)>i:
$"b_itinero/itinero".itineroj[i]['uuid_tasko']=tasko['uuid'] Global.itineroj[i]['uuid_tasko']=tasko['uuid']
i += 1 i += 1
...@@ -178,10 +167,10 @@ func _on_space_load_objektoj(): ...@@ -178,10 +167,10 @@ func _on_space_load_objektoj():
else: else:
$ship.projekto_uuid=projektoj[0]['node']['uuid'] $ship.projekto_uuid=projektoj[0]['node']['uuid']
#заполняем маршрут #заполняем маршрут
$"b_itinero/itinero".itineroj.clear() Global.itineroj.clear()
for tasko in projektoj[0]['node']['tasko']['edges']: for tasko in projektoj[0]['node']['tasko']['edges']:
if tasko['node']['statuso']['objId']==2:#задачу, которая "В работе" ставим первой if tasko['node']['statuso']['objId']==2:#задачу, которая "В работе" ставим первой
$"b_itinero/itinero".add_itinero( Global.fenestro_itinero.add_itinero(
tasko['node']['uuid'], tasko['node']['uuid'],
'', '',
'координаты в космосе', 'координаты в космосе',
...@@ -196,7 +185,7 @@ func _on_space_load_objektoj(): ...@@ -196,7 +185,7 @@ func _on_space_load_objektoj():
break; break;
for tasko in projektoj[0]['node']['tasko']['edges']: for tasko in projektoj[0]['node']['tasko']['edges']:
if tasko['node']['statuso']['objId']==1:# добавляем остальные задачи if tasko['node']['statuso']['objId']==1:# добавляем остальные задачи
$"b_itinero/itinero".add_itinero( Global.fenestro_itinero.add_itinero(
tasko['node']['uuid'], tasko['node']['uuid'],
'', '',
'координаты в космосе', 'координаты в космосе',
...@@ -208,21 +197,21 @@ func _on_space_load_objektoj(): ...@@ -208,21 +197,21 @@ func _on_space_load_objektoj():
tasko['node']['finKoordinatoY'], tasko['node']['finKoordinatoY'],
tasko['node']['finKoordinatoZ'] tasko['node']['finKoordinatoZ']
))) )))
if len($"b_itinero/itinero".itineroj)==0: if len(Global.itineroj)==0:
$ship.projekto_uuid='' #задач на полёт нет, проект надо бы закрыть $ship.projekto_uuid='' #задач на полёт нет, проект надо бы закрыть
else: else:
#отправляем корабль по координатам #отправляем корабль по координатам
var position = Vector3($"b_itinero/itinero".itineroj[0]['koordinatoX'], var position = Vector3(Global.itineroj[0]['koordinatoX'],
$"b_itinero/itinero".itineroj[0]['koordinatoY'], Global.itineroj[0]['koordinatoY'],
$"b_itinero/itinero".itineroj[0]['koordinatoZ']) Global.itineroj[0]['koordinatoZ'])
$"b_itinero/itinero".FillItemList() Global.fenestro_itinero.FillItemList()
$ship.set_way_point(position,null) $ship.set_way_point(position,null)
$"way_point".set_way_point(position) $"way_point".set_way_point(position)
$timer.start() $timer.start()
$"b_itinero/itinero/canvas/MarginContainer/VBoxContainer/HBoxContainer/kom_itinero".disabled=true Global.fenestro_itinero.get_node("canvas/MarginContainer/VBoxContainer/HBoxContainer/kom_itinero").disabled=true
$"b_itinero/itinero/canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_next".disabled=false Global.fenestro_itinero.get_node("canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_next").disabled=false
$"b_itinero/itinero/canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_fin".disabled=false Global.fenestro_itinero.get_node("canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_fin").disabled=false
$"b_itinero/itinero/canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_clear".disabled=false Global.fenestro_itinero.get_node("canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_clear").disabled=false
else: else:
$ship.projekto_uuid='' $ship.projekto_uuid=''
......
...@@ -434,6 +434,6 @@ __meta__ = { ...@@ -434,6 +434,6 @@ __meta__ = {
[connection signal="pressed" from="CanvasLayer/UI/RCentro" to="." method="_on_Resurso_Center_pressed"] [connection signal="pressed" from="CanvasLayer/UI/RCentro" to="." method="_on_Resurso_Center_pressed"]
[connection signal="about_to_show" from="CanvasLayer/UI/RCentro/Window" to="CanvasLayer/UI/RCentro/Window" method="_on_Window_about_to_show"] [connection signal="about_to_show" from="CanvasLayer/UI/RCentro/Window" to="CanvasLayer/UI/RCentro/Window" method="_on_Window_about_to_show"]
[connection signal="pressed" from="CanvasLayer/UI/Objektoj" to="." method="_on_Objektoj_pressed"] [connection signal="pressed" from="CanvasLayer/UI/Objektoj" to="." method="_on_Objektoj_pressed"]
[connection signal="pressed" from="CanvasLayer/UI/b_itinero" to="." method="_on_Itinero_pressed"]
[connection signal="pressed" from="CanvasLayer/UI/b_itinero" to="." method="_on_b_itinero_pressed"] [connection signal="pressed" from="CanvasLayer/UI/b_itinero" to="." method="_on_b_itinero_pressed"]
[connection signal="pressed" from="CanvasLayer/UI/b_itinero" to="." method="_on_Itinero_pressed"]
[connection signal="request_completed" from="request" to="." method="_on_request_request_completed"] [connection signal="request_completed" from="request" to="." method="_on_request_request_completed"]
...@@ -18,9 +18,25 @@ var backend_headers = ["Content-Type: application/json"] ...@@ -18,9 +18,25 @@ var backend_headers = ["Content-Type: application/json"]
var objektoj = [] var objektoj = []
# признак окончания загрузки объектов. Пока false - кнопки перехода в параллельные миры не работают # признак окончания загрузки объектов. Пока false - кнопки перехода в параллельные миры не работают
var loading = false var loading = false
# Управляемые объекты и их нахождение - в космосе или на станции (на 01.05.2020 это обязательно корабли) # Управляемые объекты и их нахождение - в космосе или на станции
# Параллельные миры идут по порядку в соответсвии с базой минус один (реальная), начиная с 0 # (на 01.05.2020 это обязательно корабли)
# Параллельные миры идут по порядку в соответсвии с базой минус один (реальная),
# начиная с 0
var direktebla_objekto = [{'kosmo':false,},{'kosmo':false,},] var direktebla_objekto = [{'kosmo':false,},{'kosmo':false,},]
# маршрут движения управляемого объекта (список проектов с задачей маршрута)
var itineroj = []
#uuid_tasko - uuid задачи, когда уже летим
#uuid - uuid цели полёта, если это объект
#nomo - название объекта цели
# координаты цели полёта
# 'koordinatoX':
# 'koordinatoY':
# 'koordinatoZ':
# расстояние до цели полёта - distance
# окно (сцена) работы с маршрутом
var fenestro_itinero
# сцена текущего космоса
var fenestro_kosmo
func scene(name): func scene(name):
get_tree().change_scene('res://blokoj/rajtigo/'+name+'.tscn') get_tree().change_scene('res://blokoj/rajtigo/'+name+'.tscn')
......
Поддерживает Markdown
0% или .
You are about to add 0 people to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать