public void Refresh(bool forExport = false)
        {
            var stopWatch = Stopwatch.StartNew();

            Clear();
            WalkChildren(_tableComponent.transform, node => RefreshChild(node, forExport));

            _tableComponent.CopyDataTo(_tableComponent.LegacyContainer.TableData, MaterialNames, TextureNames, forExport);
            var playfieldComponent = _tableComponent.GetComponentInChildren <PlayfieldComponent>();

            playfieldComponent.CopyDataTo(_tableComponent.LegacyContainer.TableData, MaterialNames, TextureNames, forExport);

            foreach (var material in _tableComponent.LegacyContainer.TableData.Materials)
            {
                _materials[material.Name.ToLower()] = material;
            }

            Logger.Info($"Refreshed {GameItems.Count()} game items and {_materials.Count} materials in {stopWatch.ElapsedMilliseconds}ms.");
        }