GE Lua Documentation

Press F to search!

getData

Definition


-- @/lua/ge/extensions/gameplay/drag/general.lua:528

local function getData()
  if not dragData then
    return nil
  end
  return dragData
end

Callers

@/inspector/Views/DOMTreeOutline.js
        } else {
            let className = event.dataTransfer.getData(WI.GeneralStyleDetailsSidebarPanel.ToggledClassesDragType);
            if (className && treeElement)
@/lua/ge/extensions/gameplay/drag/display.lua
  if gameplay_drag_general then
    dragData = gameplay_drag_general.getData()
  end

  dragData = gameplay_drag_general.getData()
  if not dragData then return end
@/lua/ge/extensions/ui/liveryEditor/layers/decals.lua
local notifyListeners = function(layer)
  guihooks.trigger("LiveryEditor_CursorUpdated", M.getData(layer))
end
@/lua/ge/extensions/flowgraph/nodes/gameplay/dragRace/startDragRace.lua
function C:workOnce()
  local dragData = gameplay_drag_dragBridge.getData()
@/lua/ge/extensions/gameplay/drag/debug.lua
  if debugMenu then
    local dragData = gameplay_drag_general.getData()
    local ext = gameplay_drag_general.getExtension()
@/lua/ge/extensions/gameplay/skidpadTest.lua

local function getData()
  return testResults
@/lua/ge/extensions/core/trafficSignals.lua

local function getData(full) -- returns relevant data from this module
  local data = {
@/lua/ge/extensions/flowgraph/nodes/gameplay/dragRace/generateDragOpponents.lua
  local vehConfigs = self:filterValidVehicleConfigs()
  local dragData = gameplay_drag_dragBridge and gameplay_drag_dragBridge.getData() or nil
  local numberOfOpponents = self.pinIn.numberOfOpponents.value
@/lua/ge/extensions/flowgraph/nodes/gameplay/dragRace/getRacerData.lua

  self.dragData = gameplay_drag_dragBridge.getData() or {}
  self.data = self.dragData and gameplay_drag_dragBridge.getRacerData(vehId) or {}
@/lua/ge/extensions/gameplay/drag/dragBridge.lua
M.resetDragRace = function()
  local dragData = gameplay_drag_general.getData()
  if not dragData then return false end
M.getDragRaceData = function()
  local dragData = gameplay_drag_general.getData()
  if not dragData then return nil end
M.getDragRaceRuntimeData = function()
  local dragData = gameplay_drag_general.getData()
  if not dragData then return nil end
  else
    local data = gameplay_drag_general.getData()
    dragStrip = data and { strip = data.strip, dragType = data.dragType, context = data.context, phases = data.phases, prefabs = data.prefabs, canBeTeleported = data.canBeTeleported, canBeReseted = data.canBeReseted } or nil
M.getActiveRacerId = function()
  local data = gameplay_drag_general.getData()
  if not data then return nil end
@/lua/ge/extensions/gameplay/drag/dragTypes/bracketRace.lua
local function startActivity()
  dragData = dGeneral.getData()
@/lua/ge/extensions/core/cameraModes/trackir.lua
  local t = {}
  if TrackIR and TrackIR.getData(t) then
@/lua/ge/extensions/flowgraph/nodes/gameplay/dragRace/loadDragData.lua
  -- Check if data was loaded successfully
  local dragData = gameplay_drag_dragBridge.getData()
  if dragData then
@/inspector/External/three.js/three.js

        console.warn( 'THREE.AudioAnalyser: .getData() is now .getFrequencyData().' );
        return this.getFrequencyData();
@/lua/common/utils/perf.lua

local function getData()
  _update()
local function saveDataToCSV(filename)
  local d = getData()
  local f = io.open(filename, "w")
@/lua/ge/extensions/editor/trafficSignalsEditor.lua
local function setCurrentSignals(data) -- directly sets the signals data for the editor
  data = data or core_trafficSignals.getData() -- uses current level signal data by default
  data.instances = data.instances or {}
    else
      local debugData = trafficSignals.getData()
      if debugData.active then
    if running then
      local debugData = trafficSignals.getData()
      if debugData.nextTime then
@/lua/ge/extensions/gameplay/traffic/baseRole.lua
function C:freezeTrafficSignals(state) -- overrides traffic lights; intended for emergency vehicles
  if not core_trafficSignals.getData().active then return end
  if state then
@/lua/ge/extensions/career/modules/vehiclePerformance.lua
      local racers = { {id = vehId, isPlayable = false, canBeReseted = false, lane = 1}}
      local dragData = gameplay_drag_dragBridge.getData()
      end
      local phases = gameplay_drag_general.getData().racers[vehId].phases
      local lastPhase = phases[#phases]
      --wait for drag to be finished
      return gameplay_drag_general.getData() and gameplay_drag_general.getData().isCompleted
    end)
      --wait for drag to be finished
      return gameplay_drag_general.getData() and gameplay_drag_general.getData().isCompleted
    end)
      for _, key in ipairs(timerKeys) do
        performanceData[key] = gameplay_drag_general.getData().racers[vehId].timers[key].value
      end
@/lua/ge/extensions/editor/gen/test.lua
    if false then
        local fdata = core_forest.getForestObject():getData()
        local list = fdata:getItems()
			f:setPosition(f:getPosition() + vec3(0,0,-1))
			editor.updateForestItem(fdata, f:getKey(), f:getPosition(), f:getData(), f:getTransform(), 1, f:getUid())
--			editor.removeForestItem(fdata, f)
@/lua/ge/extensions/editor/forestEditor.lua
  if not tableIsEmpty(editor.selection.forestItem) then
    local shapeFilename = tostring(editor.selection.forestItem[#editor.selection.forestItem]:getData().shapeFile)
    var.meshPreview:setObjectModel(shapeFilename)
  for index, item in ipairs(actionData.items) do
    actionData.items[index] = editor.updateForestItem(var.forestData, item:getKey(), item:getPosition(), item:getData(), editor.tableToMatrix(actionData.oldTransforms[index]), actionData.oldScales[index], item:getUid())
  end
  for index, item in ipairs(actionData.items) do
    actionData.items[index] = editor.updateForestItem(var.forestData, item:getKey(), item:getPosition(), item:getData(), editor.tableToMatrix(actionData.newTransforms[index]), actionData.newScales[index], item:getUid())
  end
        local item = editor.selection.forestItem[index]
        editor.selection.forestItem[index] = editor.updateForestItem(var.forestData, item:getKey(), item:getPosition(), item:getData(), transform, item:getScale(), item:getUid())
      end
        if obj then
          editor.selection.forestItem[index] = editor.updateForestItem(var.forestData, obj:getKey(), obj:getPosition(), obj:getData(), obj:getTransform(), scale, obj:getUid())
        end
    forestItem:setScale(actionData.oldScale)
    editor.selection.forestItem[1] = editor.updateForestItem(var.forestData, forestItem:getKey(), forestItem:getPosition(), forestItem:getData(), forestItem:getTransform(), actionData.oldScale, forestItem:getUid())
  end
    forestItem:setScale(actionData.newScale)
    editor.selection.forestItem[1] = editor.updateForestItem(var.forestData, forestItem:getKey(), forestItem:getPosition(), forestItem:getData(), forestItem:getTransform(), actionData.newScale, forestItem:getUid())
  end
    -- im.TextUnformatted("Tr el: "..tostring (el))
    inspectorField_String("Shape", tostring(item:getData():getShapeFile()))
      for _, forestItemData in ipairs(var.forestItemData) do
        local forestItemDataId = item:getData():getID()
        if forestItemDataId == forestItemData.id then
  if forest then
    var.forestData = forest:getData()
    var.forestBrushTool:setActiveForest(forest)
  if forest then
    var.forestData = forest:getData()
    var.forestBrushTool:setActiveForest(forest)

                  editor.updateForestItem(var.forestData, item:getKey(), item:getPosition(), item:getData(), trans, item:getScale(), item:getUid())
                end
  for i, item in ipairs(items) do
    newItems[i] = var.forestData:createNewItem(item:getData(), item:getTransform(), item:getScale())
  end
    for i, item in ipairs(editor.selection.forestItem) do
      copyItemsArray[i] = {itemDataId = item:getData():getID(), transform = editor.matrixToTable(item:getTransform()), scale = item:getScale()}
    end
@/lua/ge/extensions/editor/resourceChecker/resourceUtil.lua
      job.yield()
      for _,v in pairs(forestObject:getData():getItems()) do
        if not staticInstances[v:getData():getShapeFile()] then
      for _,v in pairs(forestObject:getData():getItems()) do
        if not staticInstances[v:getData():getShapeFile()] then
          staticInstances[v:getData():getShapeFile()] = {count = 0, collision = {}, ColPolygons = 0, VisPolygons = 0}
        if not staticInstances[v:getData():getShapeFile()] then
          staticInstances[v:getData():getShapeFile()] = {count = 0, collision = {}, ColPolygons = 0, VisPolygons = 0}
        end
        end
        staticInstances[v:getData():getShapeFile()].count = staticInstances[v:getData():getShapeFile()].count + 1
        table.insert(staticInstances[v:getData():getShapeFile()].collision, 'Collision Mesh')
        end
        staticInstances[v:getData():getShapeFile()].count = staticInstances[v:getData():getShapeFile()].count + 1
        table.insert(staticInstances[v:getData():getShapeFile()].collision, 'Collision Mesh')
        staticInstances[v:getData():getShapeFile()].count = staticInstances[v:getData():getShapeFile()].count + 1
        table.insert(staticInstances[v:getData():getShapeFile()].collision, 'Collision Mesh')
      end
      if core_forest.getForestObject() then
        list = core_forest.getForestObject():getData():getItems()
      end
@/lua/ge/extensions/editor/materialEditor.lua
                  else
                    pickMaterialsFromObjectName = rayCastInfo.object:getGeneratedDisplayName() .. ":" .. forestItem:getData():getShapeFile()
                    getMaterials(pickingFromObjectMaterials)
@/lua/ge/extensions/editor/buildingEditor.lua
	if false then
		local fdata = core_forest.getForestObject():getData()
			lo('?? BE.fdata1:'..tostring(fdata), true)
@/lua/ge/extensions/editor/levelValidator.lua
  if core_forest.getForestObject() then
    forestData = core_forest.getForestObject():getData()
    for i, forestItem in ipairs(forestData:getItems()) do
      if mapTransformToForestItemKey[forestItem1TransformString] ~= forestItem1:getKey() then
        local forestItem1ShapeFile = forestItem1:getData():getShapeFile()
            -- if shape file, scale and transform are the same, assume the items are identical
            if forestItem1ShapeFile == forestItem2:getData():getShapeFile()
            and forestItem1:getScale() == forestItem2:getScale() then
    elseif l.forestItem then
      log.objectName = l.forestItem:getData():getName()
      log.objectPos = l.forestItem:getPosition()
      log.objectPos = l.forestItem:getPosition()
      log.forestShape = l.forestItem:getData():getShapeFile()
    end
@/lua/ge/extensions/flowgraph/basenode.lua

function C:getData()
  return self.data
@/lua/ge/extensions/editor/gen/world.lua
			f:setPosition(f:getPosition()+vec3(0,0,-100))
			editor.updateForestItem(fdata, f:getKey(), f:getPosition(), f:getData(), f:getTransform(), 1, f:getUid())
		end
local function up(d, inreload, inact, mode)
	lo('>>++++++++++ W.up:'..tostring(inreload)..':'..tostring(mode)..':'..tostring(forestName)) --..tostring(#core_forest.getForestObject():getData():getItems())) --..forestName..':'..tostring(inreload)..':'..tostring(scenetree.findObject(forestName))..':'..tostring(restored)..':'..tostring(inact)..':'..tostring(forest)..' edit:'..tostring(scenetree.findObject('edit'))..':'..tostring(groupEdit)..':'..tostring(D))
	if not inact or not forest then
	if forest then
		fdata = forest:getData()
		M.fdata = fdata
	if mode ~= 'conf' and forest then
		fdata = forest:getData()
		if fdata and U._PRD == 0 then
	if cedit.forest and dforest[cedit.forest] then
		forestMeshName = U.forOrig(dforest[cedit.forest].item:getData():getShapeFile())
	end
					if s.fupdate then
						--			editor.updateForestItem(fdata, f:getKey(), f:getPosition(), f:getData(), f:getTransform(), 1, f:getUid())
					else
--                        U.dump(w, '?? for_SF:'..tostring(cedit.forest)..':'..tostring(tp),true)
					local daepre = U.forOrig(dforest[cedit.forest].item:getData():getShapeFile())
--                        lo('?? dae_PRE:'..tostring(daepre)..':'..iforest)
		local dsc = dforest[cedit.forest].prn
		local dae = dforest[cedit.forest].item:getData():getShapeFile()
		for k,key in pairs(dsc.df[dae]) do
		end
			U.dump(dsc.df[dae].skip,'?? for_skip:') --..dforest[cedit.forest].item:getData():getShapeFile())
--[[
			else
					lo('?? for_f:'..tostring(itm.visibility)..':'..tostring(itm:getData()))
--				itm:setPosition(vec3(0,0,0))
				f:setPosition(f:getPosition() + vec3(0,0,-1))
				editor.updateForestItem(fdata, f:getKey(), f:getPosition(), f:getData(), f:getTransform(), 1, f:getUid())
--				itm:setHidden(false)
	--            houseUp(adesc[cedit.mesh], cedit.mesh)
	--            markUp(dforest[cedit.forest].item:getData():getShapeFile())
	--                lo('?? fof:'..' mesh:'..tostring(cedit.mesh)..':'..dforest[cedit.forest].type..':'..dforest[cedit.forest].item:getData():getShapeFile())
	--            markUp(dforest[cedit.forest].item:getData():getShapeFile())
	--                lo('?? fof:'..' mesh:'..tostring(cedit.mesh)..':'..dforest[cedit.forest].type..':'..dforest[cedit.forest].item:getData():getShapeFile())
	--                lo('?? if_cij:'..tostring(cij)..':'..tostring(dforest[cedit.forest].item:getData():getShapeFile()))
	--                lo('?? fof:'..' mesh:'..tostring(cedit.mesh)..':'..dforest[cedit.forest].type..':'..dforest[cedit.forest].item:getData():getShapeFile())
	--                lo('?? if_cij:'..tostring(cij)..':'..tostring(dforest[cedit.forest].item:getData():getShapeFile()))
					U.dump(cij, '?? for_cij:'..dforest[cedit.forest].type)
					U.dump(cij, '?? for_cij:'..dforest[cedit.forest].type)
				markUp(U.forOrig(dforest[cedit.forest].item:getData():getShapeFile()))
	--            W.houseUp(adesc[cedit.mesh], cedit.mesh)
			end
--            markUp(dforest[cedit.forest].item:getData():getShapeFile())
		end
			if ({stringcourse=1,plinth=1,roofborder=1,gutter=1})[dforest[key].type] then
				local dae = dforest[key].item:getData():getShapeFile()
					lo('?? for_complex_TP:'..dforest[key].type..':'..tostring(dae))
        		cedit.forest = out.preforest
				local dae = U.forOrig(dforest[key].item:getData():getShapeFile())
--					out._dbgcheck = 1
--                U.dump(dforest[key], '?? tof2:'..dforest[key].type, true)
			local dae = U.forOrig(dforest[key].item:getData():getShapeFile())
			local tp = dforest[key].type
--          lo('?? ce_f:'..tostring(cedit.forest))
--            local dae = U.forOrig(dforest[key].item:getData():getShapeFile())
			local sij
					lo('?? dfor:'..tostring(cedit.forest)..':'..tostring(dforest[cedit.forest]))
			markUp(dforest[cedit.forest].item:getData():getShapeFile())
			forest = Tst.clear(forestName)
			fdata = forest:getData()
		end
@/lua/ge/extensions/editor/forestView.lua
--     end
--     local forestItem = forest:getData():findItem(item.key)
  end
  local forestItems = forest:getData():getItems()
  if not forestItems then
    local key = forestItems[i]:getKey()
    local data = forestItems[i]:getData()
    local name = data:getName()
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/signals/fileTrafficSignals.lua

    self.pinOut.signalsData.value = core_trafficSignals.getData()
    if not self.pinOut.signalsData.value.loaded then
@/lua/ge/extensions/flowgraph/nodes/gameplay/dragRace/resetDragRace.lua
function C:workOnce()
  local dragData = gameplay_drag_dragBridge.getData()
@/lua/ge/extensions/editor/biomeTool.lua
  local itemUIDs = getForestItemUIDsInLayer(layerType, layerID)
  local forestData = forest:getData()
  for _, itemUID in ipairs(itemUIDs) do

        ---local forestData = forest:getData()
        ---for _, item in pairs(itemsToAdd) do
  for index, item in ipairs(actionData.items) do
    actionData.items[index] = editor.updateForestItem(var.forestData, item:getKey(), item:getPosition(), item:getData(), editor.tableToMatrix(actionData.oldTransforms[index]), item:getScale())
  end
  for index, item in ipairs(actionData.items) do
    actionData.items[index] = editor.updateForestItem(var.forestData, item:getKey(), item:getPosition(), item:getData(), editor.tableToMatrix(actionData.newTransforms[index]), item:getScale())
  end
  --local itemUIDs = getForestItemUIDsInLayer(layerType_enum.area, layerID)
  local forestData = forest:getData()
  --for _, itemUID in ipairs(itemUIDs) do
  if forest then
    var.forestData = forest:getData()
    var.forestBrushTool:setActiveForest(forest)
  if forest then
    var.forestData = forest:getData()
  end
@/lua/ge/extensions/ui/liveryEditor/layers/cursor.lua
local notifyListeners = function()
  guihooks.trigger("LiveryEditor_CursorUpdated", getData())
end
@/inspector/Views/SpreadsheetStyleProperty.js
    {
        let text = event.clipboardData.getData("text/plain");
        if (!text || !text.includes(":"))
@/inspector/Views/LogContentView.js
    {
        let domNodeId = event.dataTransfer.getData(WI.DOMTreeOutline.DOMNodeIdDragType);
        if (domNodeId) {
@/lua/ge/extensions/util/forestGenerator.lua

  forestData = core_forest.getForestObject():getData()
  table.clear(forestItemDict)
  for i, v in ipairs(forestData:getItems()) do
    local internalName = v:getData():getInternalName()
    forestItemDict[internalName] = v
  end
  return forestData:createNewItem(baseItem:getData(), newMatrix(pos, vec3(0, 0, rotDeg or 0)), scl)
end
  local mtx = newMatrix(pos, vec3(0, 0, rotDeg or 0))
  return forestData:updateItem(item:getKey(), item:getPosition(), item:getData(), mtx, scl, item:getUid())
end
  for i, item in ipairs(forestData:getItems()) do
    local itemType = item:getData():getInternalName()
    if forestItemDict[itemType] and forestItemDict[itemType]:getKey() ~= item:getKey() then
@/lua/ge/extensions/editor/api/forest.lua
        rotMtx:setColumn(3, originalTransforms[1]:getColumn(3))
        editor.selection.forestItem[1] = forestData:updateItem(object:getKey(), object:getPosition(), object:getData(), rotMtx, object:getScale(), object:getUid())
      else
        editor.selection.forestItem[1] =
        forestData:updateItem(object:getKey(), object:getPosition(), object:getData(), originalTransforms[1] * rotMtx, object:getScale(), object:getUid())
      end
      rotMtx:mul(objTrans)
      editor.selection.forestItem[i] = forestData:updateItem(object:getKey(), object:getPosition(), object:getData(), rotMtx, object:getScale(), object:getUid())
    end
@/lua/ge/extensions/flowgraph/nodes/gameplay/dragRace/setRacerDial.lua
  -- Use bridge to set dials (goes through general.lua for data storage)
  local dragData = gameplay_drag_dragBridge.getData()
  if not dragData then
@/lua/ge/extensions/flowgraph/nodes/gameplay/dragRace/getRacerStatus.lua

  self.dragData = gameplay_drag_dragBridge.getData() or {}
  self.data = self.dragData and gameplay_drag_dragBridge.getRacerData(vehId) or {}
@/lua/ge/extensions/c2/panelPlugins/tileManager.lua
      elseif className == "Forest" and obj.getData then
        local fData = obj:getData()
        if fData and fData.getItems then
       if obj and obj.getData then
          items = obj:getData():getItems()
          forestCache[objName] = items
             local box = item:getObjBox()
             local shape = item:getData() and item:getData():getShapeFile()
             local box = item:getObjBox()
             local shape = item:getData() and item:getData():getShapeFile()
@/inspector/Views/QuickConsole.js
    {
        let domNodeId = event.dataTransfer.getData(WI.DOMTreeOutline.DOMNodeIdDragType);
        if (domNodeId) {
@/lua/ge/extensions/gameplay/drag/dragTypes/dragPracticeRace.lua
  -- Refresh dragData reference after reset
  dragData = dGeneral.getData()
end
local function startActivity()
  dragData = dGeneral.getData()
@/lua/ge/extensions/flowgraph/nodes/ui/updatedUI/startScreenDial.lua
  -- add it to the layout
  local dragData = gameplay_drag_general.getData()
  self.panel.dials = {}
@/lua/ge/extensions/core/dynamicProps.lua
  if forest then
    local everyForestItems = forest:getData():getItems()
    local data
    for i = 1, #everyForestItems, 1 do
        data = everyForestItems[i]:getData()
        if data:getName() == self.forestItemName then
  forestItem:setPosition(underTheMap)
  forest:getData():updateItem(forestItem:getKey(), underTheMap, forestItem:getData(), forestItem:getTransform(), forestItem:getScale(), forestItem:getUid())
  getObjectByID(propId):setActive(1)
  forestItem:setPosition(underTheMap)
  forest:getData():updateItem(forestItem:getKey(), underTheMap, forestItem:getData(), forestItem:getTransform(), forestItem:getScale(), forestItem:getUid())
  getObjectByID(propId):setActive(1)
  forestItem:setPosition(locationInfo.originPos)
  forest:getData():updateItem(forestItem:getKey(), locationInfo.originPos, forestItem:getData(), forestItem:getTransform(), forestItem:getScale(), forestItem:getUid())
  dump("Despawning")
  forestItem:setPosition(locationInfo.originPos)
  forest:getData():updateItem(forestItem:getKey(), locationInfo.originPos, forestItem:getData(), forestItem:getTransform(), forestItem:getScale(), forestItem:getUid())
  dump("Despawning")
@/lua/ge/extensions/gameplay/drag/times.lua
  if gameplay_drag_general then
    dragData = gameplay_drag_general.getData()
  end
  if not dragData then
    dragData = gameplay_drag_general.getData()
  end
@/inspector/External/CodeMirror/codemirror.js
    try {
      var text$1 = e.dataTransfer.getData("Text")
      if (text$1) {
function handlePaste(e, cm) {
  var pasted = e.clipboardData && e.clipboardData.getData("Text")
  if (pasted) {
      e.clipboardData.setData("Text", content)
      if (e.clipboardData.getData("Text") == content) {
        e.preventDefault()
@/lua/ge/extensions/flowgraph/nodes/gameplay/dragRace/getRacerSpawnPoint.lua

  self.dragData = gameplay_drag_dragBridge.getData() or {}
  self.data = self.dragData and gameplay_drag_dragBridge.getRacerData(vehId) or {}
@/lua/ge/extensions/gameplay/drag/utils.lua
  end
  dragData = gameplay_drag_general.getData()
end
    end
    dragData = gameplay_drag_general.getData()
  end
  if not dragData then
    dragData = gameplay_drag_general.getData()
  end
  if not dragData then
    dragData = gameplay_drag_general.getData()
  end
  if not dragData then
    dragData = gameplay_drag_general.getData()
  end
  if not dragData then
    dragData = gameplay_drag_general.getData()
  end
  if not dragData then
    dragData = gameplay_drag_general.getData()
  end
  if not dragData then
    dragData = gameplay_drag_general.getData()
  end
  if not dragData then
    dragData = gameplay_drag_general.getData()
  end
  if not dragData then
    dragData = gameplay_drag_general.getData()
  end
  if not dragData then
    dragData = gameplay_drag_general.getData()
  end
  if not dragData then
    dragData = gameplay_drag_general.getData()
  end
  if not dragData then
    dragData = gameplay_drag_general.getData()
  end
  if not dragData then
    dragData = gameplay_drag_general.getData()
  end
  if not dragData then
    dragData = gameplay_drag_general.getData()
  end
@/lua/ge/extensions/gameplay/drag/dragTypes/headsUpDrag.lua
local function startActivity()
  dragData = dGeneral.getData()
@/inspector/Views/DOMTreeContentView.js

        let text = event.clipboardData.getData("text/plain");
        if (!text)
@/lua/ge/extensions/util/autoAnnotation.lua
  node = Sim.upcast(node)
  for i, item in ipairs(node:getData():getItems()) do
    local itemData = item:getData()
  for i, item in ipairs(node:getData():getItems()) do
    local itemData = item:getData()
    visitNode(node, itemData)
@/lua/ge/extensions/flowgraph/nodes/gameplay/dragRace/dragRaceState.lua
  -- Always refresh data to handle retry scenarios
  self.data = gameplay_drag_dragBridge.getData() or {}