Example #1
0
        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;
        }
Example #2
0
        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);
            }
        }
Example #3
0
        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);
                        }
                    }
                }
            }
        }
Example #4
0
 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) });
     }
 }
Example #5
0
        private Generator gen;          //set in constructor

        public ClockIterator(double dt, Blades r, Generator g)
        {
            deltaT = dt;
            rotor  = r;
            gen    = g;
        }
Example #6
0
 void Start()
 {
     playerBladeScript = GameObject.FindGameObjectWithTag("Player").GetComponent <Blades>();
 }