Files
UltimateFishing/Assets/Scripts/Assembly-CSharp/ovrAvatarMaterialState.cs
2026-02-21 16:45:37 +08:00

139 lines
3.3 KiB
C#

using System.Runtime.InteropServices;
using UnityEngine;
public struct ovrAvatarMaterialState
{
public Vector4 baseColor;
public ovrAvatarMaterialMaskType baseMaskType;
public Vector4 baseMaskParameters;
public Vector4 baseMaskAxis;
public ovrAvatarMaterialLayerSampleMode sampleMode;
public ulong alphaMaskTextureID;
public Vector4 alphaMaskScaleOffset;
public ulong normalMapTextureID;
public Vector4 normalMapScaleOffset;
public ulong parallaxMapTextureID;
public Vector4 parallaxMapScaleOffset;
public ulong roughnessMapTextureID;
public Vector4 roughnessMapScaleOffset;
public uint layerCount;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
public ovrAvatarMaterialLayerState[] layers;
private static bool VectorEquals(Vector4 a, Vector4 b)
{
return a.x == b.x && a.y == b.y && a.z == b.z && a.w == b.w;
}
public override bool Equals(object obj)
{
if (!(obj is ovrAvatarMaterialState))
{
return false;
}
ovrAvatarMaterialState ovrAvatarMaterialState2 = (ovrAvatarMaterialState)obj;
if (!VectorEquals(baseColor, ovrAvatarMaterialState2.baseColor))
{
return false;
}
if (baseMaskType != ovrAvatarMaterialState2.baseMaskType)
{
return false;
}
if (!VectorEquals(baseMaskParameters, ovrAvatarMaterialState2.baseMaskParameters))
{
return false;
}
if (!VectorEquals(baseMaskAxis, ovrAvatarMaterialState2.baseMaskAxis))
{
return false;
}
if (sampleMode != ovrAvatarMaterialState2.sampleMode)
{
return false;
}
if (alphaMaskTextureID != ovrAvatarMaterialState2.alphaMaskTextureID)
{
return false;
}
if (!VectorEquals(alphaMaskScaleOffset, ovrAvatarMaterialState2.alphaMaskScaleOffset))
{
return false;
}
if (normalMapTextureID != ovrAvatarMaterialState2.normalMapTextureID)
{
return false;
}
if (!VectorEquals(normalMapScaleOffset, ovrAvatarMaterialState2.normalMapScaleOffset))
{
return false;
}
if (parallaxMapTextureID != ovrAvatarMaterialState2.parallaxMapTextureID)
{
return false;
}
if (!VectorEquals(parallaxMapScaleOffset, ovrAvatarMaterialState2.parallaxMapScaleOffset))
{
return false;
}
if (roughnessMapTextureID != ovrAvatarMaterialState2.roughnessMapTextureID)
{
return false;
}
if (!VectorEquals(roughnessMapScaleOffset, ovrAvatarMaterialState2.roughnessMapScaleOffset))
{
return false;
}
if (layerCount != ovrAvatarMaterialState2.layerCount)
{
return false;
}
for (int i = 0; i < layerCount; i++)
{
if (!layers[i].Equals(ovrAvatarMaterialState2.layers[i]))
{
return false;
}
}
return true;
}
public override int GetHashCode()
{
int num = 0;
num ^= baseColor.GetHashCode();
num ^= baseMaskType.GetHashCode();
num ^= baseMaskParameters.GetHashCode();
num ^= baseMaskAxis.GetHashCode();
num ^= sampleMode.GetHashCode();
num ^= alphaMaskTextureID.GetHashCode();
num ^= alphaMaskScaleOffset.GetHashCode();
num ^= normalMapTextureID.GetHashCode();
num ^= normalMapScaleOffset.GetHashCode();
num ^= parallaxMapTextureID.GetHashCode();
num ^= parallaxMapScaleOffset.GetHashCode();
num ^= roughnessMapTextureID.GetHashCode();
num ^= roughnessMapScaleOffset.GetHashCode();
num ^= layerCount.GetHashCode();
for (int i = 0; i < layerCount; i++)
{
num ^= layers[i].GetHashCode();
}
return num;
}
}