mirror of
https://github.com/aharabada/glitchy-engine-beef.git
synced 2026-09-05 13:01:52 +00:00
ScriptCore: Generate GetHashCode for Vectors
Fixes warnings
This commit is contained in:
@@ -85,6 +85,7 @@ public class VectorGenerator : ISourceGenerator
|
|||||||
GenerateEqualityOperators(vector, builder);
|
GenerateEqualityOperators(vector, builder);
|
||||||
|
|
||||||
GenerateEquals(vector, builder);
|
GenerateEquals(vector, builder);
|
||||||
|
GenerateGetHashCode(vector, builder);
|
||||||
|
|
||||||
if (receiver.ComparableReceiver.ComparableVectors.Contains(vector.VectorName))
|
if (receiver.ComparableReceiver.ComparableVectors.Contains(vector.VectorName))
|
||||||
{
|
{
|
||||||
@@ -132,6 +133,32 @@ public class VectorGenerator : ISourceGenerator
|
|||||||
|
|
||||||
""");
|
""");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void GenerateGetHashCode(VectorDefinition vector, StringBuilder builder)
|
||||||
|
{
|
||||||
|
builder.Append("""
|
||||||
|
public override int GetHashCode()
|
||||||
|
{
|
||||||
|
// Unchecked to allow overflow
|
||||||
|
unchecked
|
||||||
|
{
|
||||||
|
int hash = 17;
|
||||||
|
|
||||||
|
""");
|
||||||
|
|
||||||
|
for (int i = 0; i < vector.ComponentCount; i++)
|
||||||
|
{
|
||||||
|
builder.Append($"\t\t\thash = hash * 23 + {ComponentNames[i]}.GetHashCode();\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
builder.Append("""
|
||||||
|
return hash;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
""");
|
||||||
|
}
|
||||||
|
|
||||||
private void GenerateToString(VectorDefinition vector, StringBuilder builder)
|
private void GenerateToString(VectorDefinition vector, StringBuilder builder)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user