using Supercell.GUT.Titan.Logic.DataStream; namespace Supercell.GUT.Titan.Logic.Math; public class LogicLong { public int HigherInt { get; set; } public int LowerInt { get; set; } public LogicLong(long longValue) { this.HigherInt = (int)(longValue >> 32); this.LowerInt = (int)longValue; } public LogicLong() { this.HigherInt = 0; this.LowerInt = 0; } public LogicLong(int higherInt, int lowerInt) { this.HigherInt = higherInt; this.LowerInt = lowerInt; } public void Encode(ChecksumEncoder checksumEncoder) { checksumEncoder.WriteInt(this.HigherInt); checksumEncoder.WriteInt(this.LowerInt); } public void Decode(ByteStream byteStream) { this.HigherInt = byteStream.ReadInt(); this.LowerInt = byteStream.ReadInt(); } public override bool Equals(object? obj) { if (obj is LogicLong logicLong) return logicLong.HigherInt == this.HigherInt && logicLong.LowerInt == this.LowerInt; return false; } }