public static SyncBlockSettings Load(IMyEntity entity, Guid guid, NanobotBuildAndRepairSystemPriorityHandling buildPriority) { var storage = entity.Storage; string data; SyncBlockSettings settings = null; if (storage != null && storage.TryGetValue(guid, out data)) { try { settings = MyAPIGateway.Utilities.SerializeFromXML <SyncBlockSettings>(data); if (settings != null) { settings.RecalcAreaBoundigBox(); buildPriority.SetEntries(settings.BuildPriority); settings.Changed = 0; return(settings); } } catch { } } settings = new SyncBlockSettings(); var control = entity as IMyTerminalBlock; var system = control != null?control.GameLogic.GetAs <NanobotBuildAndRepairSystemBlock>() : null; var maxValue = system != null ? system.WelderMaximumRange : NanobotBuildAndRepairSystemMod.Settings.Range; settings.AreaWidthLeft = maxValue; settings.AreaWidthRight = maxValue; settings.AreaHeightTop = maxValue; settings.AreaHeightBottom = maxValue; settings.AreaDepthFront = maxValue; settings.AreaDepthRear = maxValue; buildPriority.SetEntries(settings.BuildPriority); settings.Changed = 0; return(settings); }