ace/Source/ACE.Server/Network/Sequence/UIntSequence.cs
Mag-nus 99fb8bcc55
All this does is cleanup a bunch of style issues that Resharper complains about (#629)
* Removed unused using statements

* Removed redudnant ToString()'s

* Removed some redundant type casts

* Removed redundant bool comparisons

* remove redundant initializers

* xml summary in invalid place switched to comments

* Use string interpolation

* use format separators

* Removed redundant parenths

* remove redundant else

* direct cast when safe

* redundant string interpolation

* xml summary fixes

* removed empty ctors

* fix modifier order

* Convert to auto property

* Convert some getters to method bodies

* use format separators

* changelog

* Auto-properties that can made to get-only

* fixed some references in XML comments

* remove redundant base()

* Revert "Auto-properties that can made to get-only"

This reverts commit 32a1225ce8.

* fix starter gear json

* Use collections count property

* simplify conditional ternary expression

* remove redundant return statements

* Constructors for abstract classes changed to protected

* Moved declarations to inner scopes

* Join declaration and assignments

* inline out variables

* Use enum extension methods instead of static methods

* inline out more variables

* more unused usings

* Remove specifying enums as ints
2018-02-09 06:46:49 -06:00

47 lines
1.3 KiB
C#

using System;
namespace ACE.Server.Network.Sequence
{
public class UIntSequence : ISequence
{
private uint maxValue = UInt32.MaxValue;
public UIntSequence(uint startingValue, uint maxValue = UInt32.MaxValue)
{
CurrentValue = startingValue;
this.maxValue = maxValue;
}
/// <summary>
/// Creates an instance without a starting value
/// </summary>
/// <param name="clientPrimed">Whether the value gets sent to client before first increment</param>
public UIntSequence(bool clientPrimed = true, uint maxValue = UInt32.MaxValue)
{
this.maxValue = maxValue;
if (clientPrimed)
CurrentValue = 0;
else
CurrentValue = this.maxValue;
}
public uint CurrentValue { get; private set; }
public uint NextValue
{
get
{
if (CurrentValue == maxValue)
{
CurrentValue = 0;
return CurrentValue;
}
return ++CurrentValue;
}
}
public byte[] CurrentBytes => BitConverter.GetBytes(CurrentValue);
public byte[] NextBytes => BitConverter.GetBytes(NextValue);
}
}