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

#120 Подгрузка объектов пакетами по 10 шт

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