mirror of
https://github.com/unity-atoms/unity-atoms.git
synced 2025-01-26 01:48:25 -05:00
21a588b6a4
* Add OnCollisionHook and OnCollision2DHook * refactor hooks Naming shouldn't be trigger, get outa heeeeere! * Implement ValueEquals + simplify already implemented ValueEquals * Fix generator for Collisions + Add missing generated conditions + support OR:ed conditions in templates Co-authored-by: Adam Ramberg <adam@mambojambostudios.com>
27 lines
902 B
C#
27 lines
902 B
C#
using System;
|
|
|
|
namespace UnityAtoms
|
|
{
|
|
/// <summary>
|
|
/// Atom Variable base class for types that are implementing `IEquatable<T>`.
|
|
/// </summary>
|
|
/// <typeparam name="T">The Variable type.</typeparam>
|
|
/// <typeparam name="P">Pair of type T.</typeparam>
|
|
/// <typeparam name="E1">Event of type T.</typeparam>
|
|
/// <typeparam name="E2">Pair event of type T.</typeparam>
|
|
/// <typeparam name="F">Function of type T and T.</typeparam>
|
|
[EditorIcon("atom-icon-lush")]
|
|
public abstract class EquatableAtomVariable<T, P, E1, E2, F> : AtomVariable<T, P, E1, E2, F>
|
|
where T : IEquatable<T>
|
|
where P : struct, IPair<T>
|
|
where E1 : AtomEvent<T>
|
|
where E2 : AtomEvent<P>
|
|
where F : AtomFunction<T, T>
|
|
{
|
|
protected override bool ValueEquals(T other)
|
|
{
|
|
return _value?.Equals(other) == true;
|
|
}
|
|
}
|
|
}
|