public void MaybePersistState() { var now = Timestamp.Now; if (lastStatePersistedTimestamp != null && now - lastStatePersistedTimestamp < settings.StatePersistingInterval) { return; } var garbageTaskMetasCount = perfGraphiteReporter.ReportTiming("CollectGarbageInState", () => CollectGarbageInState(now), out var timer); perfGraphiteReporter.Increment("GarbageTaskMetas", garbageTaskMetasCount); logger.Info("Collected garbage in state with garbageTaskMetasCount: {RtqTaskMetasCount} in {Elapsed}", new { RtqTaskMetasCount = garbageTaskMetasCount, Elapsed = timer.Elapsed }); var lastBladeOffset = bladeOffsetStorages[Blades.Last().BladeKey].Read(); if (string.IsNullOrEmpty(lastBladeOffset)) { return; } var persistedState = perfGraphiteReporter.ReportTiming("PersistState", () => DoPersistState(lastBladeOffset), out timer); perfGraphiteReporter.Increment("PersistedTaskMetas", persistedState.TaskMetas.Count); logger.Info("Persisted state with lastBladeOffset: {LastBladeOffset}, persistedTaskMetasCount: {RtqTaskMetasCount} in {Elapsed}", new { LastBladeOffset = offsetInterpreter.Format(persistedState.LastBladeOffset), RtqTaskMetasCount = persistedState.TaskMetas.Count, Elapsed = timer.Elapsed }); lastStatePersistedTimestamp = Timestamp.Now; }
public SwordBlade(string texture, int originX, int originY, string name, int useTime, float knockBack, float dpsModifier = 1f, int critBonus = 0, bool autoSwing = false, float scale = 0f, bool spearable = true, bool lighted = false, Action <Rectangle, Player> effect = null) { Type = Blades.Count() + 1; if (Main.netMode != NetmodeID.Server) { Texture = ModLoader.GetMod(Constants.ModName).GetTexture("Content/GFX/Items/Blades/" + texture); } Origin = new Vector2(originX, originY); Name = name; UseTime = useTime; KnockBack = knockBack; DpsModifier = dpsModifier; CritBonus = critBonus; Scale = scale; AutoSwing = autoSwing; Spearable = spearable; Effect = effect; Lighted = lighted; if (!Blades.ContainsKey(Type)) { Blades.Add(Type, this); } }
private async void EjectButton_Click(object sender, RoutedEventArgs e) { if (DeviceGrid.SelectedItem is DriveDataBase Item) { if (string.IsNullOrEmpty(Item.Path)) { QueueContentDialog Dialog = new QueueContentDialog { Title = Globalization.GetString("Common_Dialog_ErrorTitle"), Content = Globalization.GetString("QueueContentDialog_UnableToEject_Content"), CloseButtonText = Globalization.GetString("Common_Dialog_CloseButton") }; await Dialog.ShowAsync().ConfigureAwait(false); } else { foreach ((TabViewItem Tab, BladeItem[] Blades) in TabViewContainer.ThisPage.TabCollection.Where((Tab) => Tab.Tag is FileControl) .Select((Tab) => (Tab, (Tab.Tag as FileControl).BladeViewer.Items.Cast <BladeItem>().ToArray())).ToArray()) { if (Blades.Select((BItem) => (BItem.Content as FilePresenter)?.CurrentFolder?.Path) .All((BladePath) => Item.Path.Equals(Path.GetPathRoot(BladePath), StringComparison.OrdinalIgnoreCase))) { await TabViewContainer.ThisPage.CleanUpAndRemoveTabItem(Tab); } else { foreach (BladeItem BItem in Blades.Where((BItem) => Item.Path.Equals(Path.GetPathRoot((BItem.Content as FilePresenter)?.CurrentFolder?.Path)))) { await(Tab.Tag as FileControl).CloseBladeAsync(BItem); } } } using (FullTrustProcessController.ExclusiveUsage Exclusive = await FullTrustProcessController.GetAvailableController()) { if (await Exclusive.Controller.EjectPortableDevice(Item.Path)) { ShowEjectNotification(); } else { QueueContentDialog Dialog = new QueueContentDialog { Title = Globalization.GetString("Common_Dialog_ErrorTitle"), Content = Globalization.GetString("QueueContentDialog_UnableToEject_Content"), CloseButtonText = Globalization.GetString("Common_Dialog_CloseButton") }; await Dialog.ShowAsync().ConfigureAwait(false); } } } } }
private void AdjustBladeOffsets([CanBeNull] string persistedLastBladeOffset) { foreach (var bladeId in Blades) { var bladeOffset = offsetInterpreter.GetMaxOffsetForTimestamp(Timestamp.Now - bladeId.Delay); if (bladeId == Blades.Last() && !string.IsNullOrEmpty(persistedLastBladeOffset)) { bladeOffset = persistedLastBladeOffset; } bladeOffsetStorages[bladeId.BladeKey].Write(bladeOffset); logger.Info("Blade {BladeId} is moved to offset: {Offset}", new { BladeId = bladeId, Offset = offsetInterpreter.Format(bladeOffset) }); } }
private Generator gen; //set in constructor public ClockIterator(double dt, Blades r, Generator g) { deltaT = dt; rotor = r; gen = g; }
void Start() { playerBladeScript = GameObject.FindGameObjectWithTag("Player").GetComponent <Blades>(); }