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

Корабль прямо к цели

владелец de245e76
......@@ -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.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать