mirror of
https://github.com/thebreaddev/Supercell.GUT.git
synced 2024-09-20 09:07:47 +00:00
44 lines
927 B
C#
44 lines
927 B
C#
|
using Supercell.GUT.Titan.Encoding;
|
|||
|
using Supercell.GUT.Titan.Encoding.Streamed;
|
|||
|
|
|||
|
namespace Supercell.GUT.Logic.Base;
|
|||
|
|
|||
|
public abstract class LogicBase
|
|||
|
{
|
|||
|
public int LogicDataVersion { get; set; }
|
|||
|
|
|||
|
public LogicBase(int logicDataVersion)
|
|||
|
{
|
|||
|
this.LogicDataVersion = logicDataVersion;
|
|||
|
}
|
|||
|
|
|||
|
public virtual void Encode(ChecksumEncoder checksumEncoder)
|
|||
|
{
|
|||
|
checksumEncoder.WriteInt(this.LogicDataVersion);
|
|||
|
}
|
|||
|
|
|||
|
public virtual void Decode(ByteStream byteStream)
|
|||
|
{
|
|||
|
this.LogicDataVersion = byteStream.ReadInt();
|
|||
|
}
|
|||
|
|
|||
|
public virtual void Destruct()
|
|||
|
{
|
|||
|
this.LogicDataVersion = 0;
|
|||
|
}
|
|||
|
|
|||
|
public virtual void Copy(LogicBase logicBase)
|
|||
|
{
|
|||
|
this.Destruct();
|
|||
|
|
|||
|
ByteStream byteStream = new ByteStream(0);
|
|||
|
|
|||
|
logicBase.Encode(byteStream);
|
|||
|
byteStream.ResetOffset();
|
|||
|
|
|||
|
this.Decode(byteStream);
|
|||
|
|
|||
|
byteStream.Destruct();
|
|||
|
}
|
|||
|
}
|