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."); }