public WurmTimer GetTimer(Guid definitionId, Guid timerId) { var persistentId = timerId; var definition = timerDefinitions.GetById(definitionId); object newTimer = persistentObjectResolver.Get(persistentId.ToString(), timerTypes.GetTypeForId(definition.RuntimeTypeId)); var timer = newTimer as CustomTimer; if (timer != null) { timer.ApplyCustomTimerOptions(definition.CustomTimerConfig); } return((WurmTimer)newTimer); }
private async void PerformAsyncInits() { try { await AttemptToEstablishCurrentServer(TimeSpan.FromDays(120)); if (currentServerOnTheGroup == null) { await AttemptToEstablishCurrentServer(TimeSpan.FromDays(365)); } foreach (var activeTimer in activeTimerDefinitions) { try { var definition = timerDefinitions.GetById(activeTimer.DefinitionId); WurmTimer timer = timerInstances.GetTimer(activeTimer.DefinitionId, activeTimer.TimerId); timer.Initialize(this, CharacterName, definition); layoutControl.RegisterNewTimerDisplay(timer.View); timers.Add(timer); FlagAsChanged(); } catch (Exception exception) { logger.Error(exception, "Error at InitTimers for timer " + activeTimer); FlagAsChanged(); } } layoutControl.EnableAddingTimers(); } catch (Exception _e) { logger.Error(_e, "problem updating current server group"); if (layoutControl != null) { layoutControl.SetInitializationError(); } } }