Открыть боковую панель
Левадный Владимир Юрьевич
universo-godot
Коммиты
f46353b4
Коммит
f46353b4
создал
Июн 18, 2020
по автору
magcourier
Просмотр файлов
#120 Подгрузка объектов пакетами по 10 шт
владелец
b1479390
Изменения
3
Скрыть пробелы
Построчно
Рядом
blokoj/objektoj/skriptoj/queries.gd
Просмотр файла @
f46353b4
...
...
@@ -7,36 +7,36 @@ const URL = "https://t34.tehnokom.su/api/v1.1/"
# Запрос к API, выбираем объекты, которые в космосе
func
objecto_query
(
statusoId
,
kategorioId
,
tipoId
,
kuboId
=
1
):
var
query
=
JSON
.
print
({
"query"
:
"query ($kuboId:Float, $statusoId:Float, "
+
" $realecoId:Float, $kategorioId:Float, $tipoId:Float) "
+
"{ filteredUniversoObjekto (realeco_Id:$realecoId, kubo_Id: $kuboId, "
+
" koordinatoX_Isnull:false, koordinatoY_Isnull:false, koordinatoZ_Isnull:false,"
+
" ) { edges { node { uuid posedantoId "
+
" projekto (statuso_Id: $statusoId, tipo_Id: $tipoId){ "
+
" edges { node { uuid "
+
" tasko (kategorio_Id:$kategorioId){ edges {node { "
+
" uuid finKoordinatoX finKoordinatoY finKoordinatoZ statuso {objId} } } } } } } "
+
" nomo { enhavo } priskribo { enhavo } "
+
" resurso { objId nomo { enhavo } priskribo { enhavo } "
+
" tipo { objId nomo { enhavo } } "
+
" } "
+
" koordinatoX koordinatoY koordinatoZ "
+
'
posedantoObjekto '
+
'
{ uuid } '
+
" nomo{enhavo}"
+
" ligilo{edges{node{ "
+
" konektiloPosedanto konektiloLigilo tipo{objId} "
+
" ligilo{ uuid nomo{enhavo} integreco resurso{objId} "
+
" ligilo{edges{node{"
+
" konektiloPosedanto konektiloLigilo tipo{objId} "
+
" ligilo{ uuid integreco resurso{objId} }}}}}"
+
" tipo{objId}}}}"
+
" posedanto{edges{node{"
+
" posedantoUzanto{ siriusoUzanto{ objId}}}}}"
+
" rotaciaX rotaciaY rotaciaZ } } } }"
,
'
variables'
:
{
"kuboId"
:
kuboId
,
"statusoId"
:
statusoId
,
"kategorioId"
:
kategorioId
,
"tipoId"
:
tipoId
,
"realecoId"
:
Global
.
realeco
}
})
# print('===objecto_query=',query)
return
query
#
func objecto_query(statusoId, kategorioId, tipoId, kuboId = 1):
#
var query = JSON.print({ "query": "query ($kuboId:Float, $statusoId:Float, "+
#
" $realecoId:Float, $kategorioId:Float, $tipoId:Float) " +
#
"{ filteredUniversoObjekto (realeco_Id:$realecoId, kubo_Id: $kuboId, "+
#
" koordinatoX_Isnull:false, koordinatoY_Isnull:false, koordinatoZ_Isnull:false," +
#
" ) { edges { node { uuid posedantoId "+
#
" projekto (statuso_Id: $statusoId, tipo_Id: $tipoId){ "+
#
" edges { node { uuid "+
#
" tasko (kategorio_Id:$kategorioId){ edges {node { "+
#
" uuid finKoordinatoX finKoordinatoY finKoordinatoZ statuso {objId} } } } } } } "+
#
" nomo { enhavo } priskribo { enhavo } "+
#
" resurso { objId nomo { enhavo } priskribo { enhavo } "+
#
" tipo { objId nomo { enhavo } } "+
#
" } "+
#
" koordinatoX koordinatoY koordinatoZ "+
#
' posedantoObjekto '+
#
' { uuid } '+
#
" nomo{enhavo}" +
#
" ligilo{edges{node{ "+
#
" konektiloPosedanto konektiloLigilo tipo{objId} "+
#
" ligilo{ uuid nomo{enhavo} integreco resurso{objId} "+
#
" ligilo{edges{node{" +
#
" konektiloPosedanto konektiloLigilo tipo{objId} " +
#
" ligilo{ uuid integreco resurso{objId} }}}}}" +
#
" tipo{objId}}}}" +
#
" posedanto{edges{node{" +
#
" posedantoUzanto{ siriusoUzanto{ objId}}}}}" +
#
" rotaciaX rotaciaY rotaciaZ } } } }",
#
'variables': {"kuboId":kuboId, "statusoId":statusoId,
#
"kategorioId":kategorioId, "tipoId":tipoId,
#
"realecoId":Global.realeco} })
#
# print('===objecto_query=',query)
#
return query
kerno/menuo/menuo.gd
Просмотр файла @
f46353b4
...
...
@@ -10,6 +10,7 @@ signal load_objekto()
var
load_scene
:
String
var
id_direktebla_query
# под каким номером запроса отправили запрос на управляемый список
var
id_direktebla_kosmo_query
# под каким номером запроса отправили запрос на управляемый список в космосе
var
id_objekto
# id запроса на объекты
func
_ready
():
...
...
@@ -71,6 +72,7 @@ func _on_data_start():
Net
.
disconnect
(
"input_data"
,
self
,
"_on_data_start"
)
# warning-ignore:return_value_discarded
Net
.
connect
(
"input_data"
,
self
,
"_on_data"
)
Global
.
objektoj
.
clear
()
load_objektoj
()
i
+=
1
...
...
@@ -82,7 +84,7 @@ func _on_data():
if
!
on_data
[
'
payload'
][
'
data'
]:
print
(
'
=== error ==='
,
on_data
)
elif
on_data
[
'
payload'
][
'
data'
]
and
on_data
[
'
payload'
][
'
data'
]
.
get
(
'
filteredUniversoObjekto'
):
Global
.
objektoj
.
clear
()
# загрузка объектов
var
i
=
0
for
item
in
on_data
[
'
payload'
][
'
data'
][
'
filteredUniversoObjekto'
][
'
edges'
]:
if
item
[
'
node'
][
'
posedantoId'
]
==
Global
.
id
:
...
...
@@ -94,10 +96,13 @@ func _on_data():
Global
.
objektoj
.
append
(
item
[
'
node'
])
Global
.
objektoj
[
i
][
'
distance'
]
=
0
i
+=
1
if
$
"/root"
.
get_node_or_null
(
'
space'
):
# если загружен космос
$
"/root"
.
get_node
(
'
space'
)
.
emit_signal
(
"load_objektoj"
)
# загружаем объекты космоса
emit_signal
(
"load_objekto"
)
Net
.
data_server
.
remove
(
i_data_server
)
if
on_data
[
'
payload'
][
'
data'
][
'
filteredUniversoObjekto'
][
'
pageInfo'
][
'
hasNextPage'
]:
load_objektoj
(
on_data
[
'
payload'
][
'
data'
][
'
filteredUniversoObjekto'
][
'
pageInfo'
][
'
endCursor'
])
else
:
if
$
"/root"
.
get_node_or_null
(
'
space'
):
# если загружен космос
$
"/root"
.
get_node
(
'
space'
)
.
emit_signal
(
"load_objektoj"
)
# загружаем объекты космоса
emit_signal
(
"load_objekto"
)
i_data_server
+=
1
...
...
@@ -131,6 +136,7 @@ func CloseWindow():
func
reloadWindow
():
$
CanvasLayer
/
UI
/
Taskoj
/
Window
.
_on_Window_draw
()
# $CanvasLayer/UI/Objektoj/Window._on_Objekto_draw()
Global
.
objektoj
.
clear
()
load_objektoj
()
...
...
@@ -282,9 +288,11 @@ func _on_eliro_button_up():
$
CanvasLayer
/
UI
/
eliro
/
eliro
/
Canvas
/
Popup
.
popup_centered
()
# запрашиваем объекты
func
load_objektoj
():
func
load_objektoj
(
after
=
""
):
var
q
=
QueryObject
.
new
()
Net
.
send_json
(
q
.
get_objekto_json
(
2
,
3
,
2
,
Global
.
kubo
))
id_objekto
=
Net
.
get_current_query_id
()
# зугрузка объектов партиями, количество в партии указано в константе запроса
Net
.
send_json
(
q
.
get_objekto_json
(
2
,
3
,
2
,
Global
.
kubo
,
id_objekto
,
after
))
# $HTTPObjectoRequestFind.request(q.URL, Global.backend_headers, true, 2, q.objecto_query( 2, 3, 2, 1))
...
...
kerno/menuo/skriptoj/queries.gd
Просмотр файла @
f46353b4
...
...
@@ -5,6 +5,9 @@ extends Object
# URL к API
const
URL_DATA
=
"https://t34.tehnokom.su/api/v1.1/"
# количество объектов для загрузки
const
count_objekto
=
"10"
# запрос на список управляемых объектов для вебсокета
func
get_direktebla_json
(
statusoId
,
kategorioId
,
tipoId
,
id
=
0
):
...
...
@@ -127,7 +130,7 @@ func eniri_kosmostacio(projekto_uuid, tasko_uuid, station_uuid):
# statusoId - статус проекта (2=в работе)
# kategorioId - категория задач Универсо (3 - Движение объектов)
# tipoId - тип проекта Универсо (2 - Для объектов)
func
get_objekto_json
(
statusoId
,
kategorioId
,
tipoId
,
kuboId
=
1
,
id
=
0
):
func
get_objekto_json
(
statusoId
,
kategorioId
,
tipoId
,
kuboId
=
1
,
id
=
0
,
after
=
""
):
if
!
id
:
id
=
Net
.
current_query_id
Net
.
current_query_id
+=
1
...
...
@@ -138,7 +141,8 @@ func get_objekto_json(statusoId, kategorioId, tipoId, kuboId=1, id=0):
" $realecoId:Float, $kategorioId:Float, $tipoId:Float) "
+
"{ filteredUniversoObjekto (realeco_Id:$realecoId, kubo_Id: $kuboId, "
+
" koordinatoX_Isnull:false, koordinatoY_Isnull:false, koordinatoZ_Isnull:false,"
+
" ) { edges { node { uuid posedantoId "
+
" first:"
+
count_objekto
+
'
, after: "'
+
after
+
'
" '
+
" ) { pageInfo { hasNextPage endCursor } edges { node { uuid posedantoId "
+
" projekto (statuso_Id: $statusoId, tipo_Id: $tipoId){ "
+
" edges { node { uuid "
+
" tasko (kategorio_Id:$kategorioId){ edges {node { "
+
...
...
Редактирование
Предварительный просмотр
Поддерживает Markdown
0%
Попробовать снова
или
прикрепить новый файл
.
Отмена
You are about to add
0
people
to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Отмена
Пожалуйста,
зарегистрируйтесь
или
войдите
чтобы прокомментировать