Открыть боковую панель
Левадный Владимир Юрьевич
universo-godot
Коммиты
526d045f
Коммит
526d045f
создал
Май 19, 2020
по автору
magcourier
Просмотр файлов
Окно маршрута выведено из космоса
владелец
caaff557
Изменения
7
Скрыть пробелы
Построчно
Рядом
blokoj/kosmo/scenoj/space.tscn
Просмотр файла @
526d045f
[gd_scene load_steps=1
6
format=2]
[gd_scene load_steps=1
5
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"]
blokoj/kosmo/skriptoj/itinero.gd
Просмотр файла @
526d045f
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
=
tru
e
$
canvas
/
MarginContainer
/
VBoxContainer
/
HBoxContainer
/
kom_
itinero
.
disabled
=
fals
e
$
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
()
blokoj/kosmo/skriptoj/menuo.gd
Просмотр файла @
526d045f
...
@@ -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_itine
ro
/
itinero
"
.
add_itinero
(
Global
.
fenest
ro
_
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_itine
ro
/
itinero
"
.
FillItemList
()
Global
.
fenest
ro
_
itinero
.
FillItemList
()
if
index
==
0
:
if
index
==
0
:
$
"../b_itine
ro
/
itinero
"
.
komenci_itinero
()
Global
.
fenest
ro
_
itinero
.
komenci_itinero
()
# elif index==1:
# elif index==1:
...
...
blokoj/kosmo/skriptoj/ship.gd
Просмотр файла @
526d045f
...
@@ -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_itine
ro
/
itinero
"
.
distance_to
(
translation
)
Global
.
fenest
ro
_
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_itine
ro
/
itinero
"
.
add_itinero
(
'
'
,
'
'
,
'
точка в космосе'
,
Global
.
fenest
ro
_
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_itine
ro
/
itinero
"
.
FillItemList
()
Global
.
fenest
ro
_
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_itine
ro
/
itinero
"
.
FillItemList
()
Global
.
fenest
ro
_
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
)
#запускаем таймер
#запускаем таймер
...
...
blokoj/kosmo/skriptoj/space.gd
Просмотр файла @
526d045f
...
@@ -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_itine
ro
/
itinero
"
.
add_itinero
(
Global
.
fenest
ro
_
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_itine
ro
/
itinero
"
.
add_itinero
(
Global
.
fenest
ro
_
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_itine
ro
/
itinero
"
.
FillItemList
()
Global
.
fenest
ro
_
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_itine
ro
/
itinero
/
canvas/MarginContainer/VBoxContainer/HBoxContainer/kom_itinero"
.
disabled
=
true
Global
.
fenest
ro
_
itinero
.
get_node
(
"
canvas/MarginContainer/VBoxContainer/HBoxContainer/kom_itinero"
)
.
disabled
=
true
$
"b_itine
ro
/
itinero
/
canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_next"
.
disabled
=
false
Global
.
fenest
ro
_
itinero
.
get_node
(
"
canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_next"
)
.
disabled
=
false
$
"b_itine
ro
/
itinero
/
canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_fin"
.
disabled
=
false
Global
.
fenest
ro
_
itinero
.
get_node
(
"
canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_fin"
)
.
disabled
=
false
$
"b_itine
ro
/
itinero
/
canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_clear"
.
disabled
=
false
Global
.
fenest
ro
_
itinero
.
get_node
(
"
canvas/MarginContainer/VBoxContainer/HBoxContainer/itinero_clear"
)
.
disabled
=
false
else
:
else
:
$
ship
.
projekto_uuid
=
'
'
$
ship
.
projekto_uuid
=
'
'
...
...
kerno/menuo/menuo.tscn
Просмотр файла @
526d045f
...
@@ -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"]
kerno/skriptoj/global.gd
Просмотр файла @
526d045f
...
@@ -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.
Сначала завершите редактирование этого сообщения!
Отмена
Пожалуйста,
зарегистрируйтесь
или
войдите
чтобы прокомментировать