summaryrefslogtreecommitdiff
path: root/src/SMAPI/Events/UnvalidatedUpdateTickingEventArgs.cs
blob: 577f0776290b2a90272dc29e1b54f7b63ec60370 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System;
using StardewValley;

namespace StardewModdingAPI.Events
{
    /// <summary>Event arguments for an <see cref="ISpecialisedEvents.UnvalidatedUpdateTicking"/> event.</summary>
    public class UnvalidatedUpdateTickingEventArgs : EventArgs
    {
        /*********
        ** Accessors
        *********/
        /// <summary>The number of ticks elapsed since the game started, including the current tick.</summary>
        public uint Ticks => (uint)Game1.ticks;

        /// <summary>Whether <see cref="Ticks"/> is a multiple of 60, which happens approximately once per second.</summary>
        public bool IsOneSecond => Game1.ticks % 60 == 0;


        /*********
        ** Public methods
        *********/
        /// <summary>Get whether <see cref="Ticks"/> is a multiple of the given <paramref name="number"/>. This is mainly useful if you want to run logic intermittently (e.g. <code>e.IsMultipleOf(30)</code> for every half-second).</summary>
        /// <param name="number">The factor to check.</param>
        public bool IsMultipleOf(uint number)
        {
            return this.Ticks % number == 0;
        }
    }
}