Files
TEngine/Assets/GameScripts/DotNet/Model/Share/LockStep/OneFrameInputs.cs
ALEXTANG 336d4b2eb9 [+] 接入ET8服务端
[+] 接入ET8服务端
2023-07-13 12:23:48 +08:00

97 lines
2.2 KiB
C#

using System;
using System.Collections.Generic;
namespace ET
{
public partial class OneFrameInputs
{
protected bool Equals(OneFrameInputs other)
{
return Equals(this.Inputs, other.Inputs);
}
public void CopyTo(OneFrameInputs to)
{
to.Inputs.Clear();
foreach (var kv in this.Inputs)
{
to.Inputs.Add(kv.Key, kv.Value);
}
}
public override bool Equals(object obj)
{
if (ReferenceEquals(null, obj))
{
return false;
}
if (ReferenceEquals(this, obj))
{
return true;
}
if (obj.GetType() != this.GetType())
{
return false;
}
return Equals((OneFrameInputs) obj);
}
public override int GetHashCode()
{
return HashCode.Combine(this.Inputs);
}
public OneFrameInputs()
{
this.Inputs = new Dictionary<long, LSInput>(LSConstValue.MatchCount);
}
public static bool operator==(OneFrameInputs a, OneFrameInputs b)
{
if (a is null || b is null)
{
if (a is null && b is null)
{
return true;
}
return false;
}
if (a.Inputs.Count != b.Inputs.Count)
{
return false;
}
foreach (var kv in a.Inputs)
{
if (!b.Inputs.TryGetValue(kv.Key, out LSInput inputInfo))
{
return false;
}
if (kv.Value != inputInfo)
{
return false;
}
}
return true;
}
public static bool operator !=(OneFrameInputs a, OneFrameInputs b)
{
return !(a == b);
}
}
public partial class Room2C_Start
{
public Room2C_Start()
{
this.UnitInfo = new List<LockStepUnitInfo>(LSConstValue.MatchCount);
}
}
}