Открыть боковую панель
Левадный Владимир Юрьевич
universo-godot
Коммиты
b71dc017
Коммит
b71dc017
создал
Май 07, 2020
по автору
magcourier
Просмотр файлов
Корабль прямо к цели
владелец
de245e76
Изменения
1
Скрыть пробелы
Построчно
Рядом
blokoj/kosmo/skriptoj/menuo.gd
Просмотр файла @
b71dc017
...
...
@@ -3,7 +3,10 @@ extends Control
onready
var
margin
=
$
"/root/Title/CanvasLayer/UI/Lbar/L_VBox/Objektoj/Window/canvas/MarginContainer"
onready
var
ship
=
$
"../ship"
var
index_pos
=
0
func
_input
(
event
:
InputEvent
)
->
void
:
if
Input
.
is_action_just_pressed
(
"right_click"
):
# event.pressed=true
if
event
is
InputEventMouseButton
and
$
"/root/Title/CanvasLayer/UI/Lbar/L_VBox/Objektoj/Window/canvas/MarginContainer"
.
visible
:
...
...
@@ -18,7 +21,7 @@ func _input(event: InputEvent) -> void:
# #если пункт меню - станция
x
=
$
"/root/Title/CanvasLayer/UI/Lbar/L_VBox/Objektoj/Window/canvas/MarginContainer/VBoxContainer/scroll/ItemList"
.
get_local_mouse_position
()
.
x
y
=
$
"/root/Title/CanvasLayer/UI/Lbar/L_VBox/Objektoj/Window/canvas/MarginContainer/VBoxContainer/scroll/ItemList"
.
get_local_mouse_position
()
.
y
var
index_pos
=
$
"/root/Title/CanvasLayer/UI/Lbar/L_VBox/Objektoj/Window/canvas/MarginContainer/VBoxContainer/scroll/ItemList"
.
get_item_at_position
(
Vector2
(
x
,
y
),
true
)
index_pos
=
$
"/root/Title/CanvasLayer/UI/Lbar/L_VBox/Objektoj/Window/canvas/MarginContainer/VBoxContainer/scroll/ItemList"
.
get_item_at_position
(
Vector2
(
x
,
y
),
true
)
$
"/root/Title/CanvasLayer/UI/Lbar/L_VBox/Objektoj/Window/canvas/MarginContainer/VBoxContainer/scroll/ItemList"
.
select
(
index_pos
)
if
Global
.
objektoj
[
index_pos
][
'
resurso'
][
'
objId'
]
==
1
:
#объект станция Espero
#проверяем как далеко от станции и если менее 20, то разрешаем войти
...
...
@@ -33,13 +36,11 @@ func _input(event: InputEvent) -> void:
# сдвиг по всем координатам по целеполаганию полёта к объекту
const
translacio
=
20
const
translacio_stat
=
300
const
QueryObject
=
preload
(
"res://kerno/menuo/skriptoj/queries.gd"
)
func
_on_PopupMenu_index_pressed
(
index
):
var
x
=
$
"/root/Title/CanvasLayer/UI/Lbar/L_VBox/Objektoj/Window/canvas/MarginContainer/VBoxContainer/scroll/ItemList"
.
get_local_mouse_position
()
.
x
var
y
=
$
"/root/Title/CanvasLayer/UI/Lbar/L_VBox/Objektoj/Window/canvas/MarginContainer/VBoxContainer/scroll/ItemList"
.
get_local_mouse_position
()
.
y
var
index_obj
=
$
"/root/Title/CanvasLayer/UI/Lbar/L_VBox/Objektoj/Window/canvas/MarginContainer/VBoxContainer/scroll/ItemList"
.
get_item_at_position
(
Vector2
(
x
,
y
),
true
)
if
index
==
2
:
# Разрегистрируем обработчик сигнала request_completed (вызывается
# по завершении HTTPRequest)
...
...
@@ -55,7 +56,7 @@ func _on_PopupMenu_index_pressed(index):
true
,
2
,
q
.
eniri_kosmostacio
(
$
"../ship"
.
projekto_uuid
,
uuid_tasko
,
Global
.
objektoj
[
index_
obj
][
'
uuid'
]))
Global
.
objektoj
[
index_
pos
][
'
uuid'
]))
# Если запрос не выполнен из-за какой-то ошибки
# TODO: Такие ошибки наверное нужно как-то выводить пользователю?
if
error
!=
OK
:
...
...
@@ -66,23 +67,31 @@ func _on_PopupMenu_index_pressed(index):
get_tree
()
.
change_scene
(
'
res://blokoj/kosmostacioj/CapKosmostacio.tscn'
)
else
:
var
koordX
=
Global
.
objektoj
[
index_obj
][
'
koordinatoX'
]
+
translacio
var
koordY
=
Global
.
objektoj
[
index_obj
][
'
koordinatoY'
]
+
translacio
var
koordZ
=
Global
.
objektoj
[
index_obj
][
'
koordinatoZ'
]
+
translacio
# вычисляем точку в пространстве, придвинутую на translacio ближе
# если станция, то дистанция больше
var
celo
=
Vector3
(
Global
.
objektoj
[
index_pos
][
'
koordinatoX'
],
Global
.
objektoj
[
index_pos
][
'
koordinatoY'
],
Global
.
objektoj
[
index_pos
][
'
koordinatoZ'
])
var
dist
=
0
if
Global
.
objektoj
[
index_pos
][
'
resurso'
][
'
objId'
]
==
1
:
dist
=
$
"../ship"
.
translation
.
distance_to
(
celo
)
-
translacio_stat
else
:
dist
=
$
"../ship"
.
translation
.
distance_to
(
celo
)
-
translacio
var
speed
=
celo
-
$
"../ship"
.
translation
celo
=
$
"../ship"
.
translation
+
speed
.
normalized
()
*
dist
$
"../b_itinero/itinero"
.
add_itinero
(
'
'
,
Global
.
objektoj
[
index_
obj
][
'
uuid'
],
Global
.
objektoj
[
index_
obj
][
'
nomo'
][
'
enhavo'
],
#'nomo'
koordX
,
koordY
,
koordZ
,
$
"../ship"
.
translation
.
distance_to
(
Vector3
(
koordX
,
koordY
,
koordZ
))
Global
.
objektoj
[
index_
pos
][
'
uuid'
],
Global
.
objektoj
[
index_
pos
][
'
nomo'
][
'
enhavo'
],
#'nomo'
celo
.
x
,
celo
.
y
,
celo
.
z
,
dist
)
$
"../b_itinero/itinero"
.
FillItemList
()
if
index
==
0
:
# $"../".set_way_point(Vector3(koordX,koordY,koordZ),null)
$
"../b_itinero/itinero"
.
komenci_itinero
()
# elif index==1:
...
...
Редактирование
Предварительный просмотр
Поддерживает Markdown
0%
Попробовать снова
или
прикрепить новый файл
.
Отмена
You are about to add
0
people
to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Отмена
Пожалуйста,
зарегистрируйтесь
или
войдите
чтобы прокомментировать