56 lines
2.7 KiB
C#
56 lines
2.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using UnityEngine;
|
|
using UnityEngine.VFX;
|
|
|
|
namespace UnityEditor.VFX
|
|
{
|
|
#pragma warning disable 0659
|
|
sealed class VFXSpawnerStateExpression : VFXExpression
|
|
{
|
|
public static readonly VFXExpression NewLoop = new VFXSpawnerStateExpression(VFXExpressionOperation.SpawnerStateNewLoop);
|
|
public static readonly VFXExpression LoopState = new VFXSpawnerStateExpression(VFXExpressionOperation.SpawnerStateLoopState);
|
|
public static readonly VFXExpression SpawnCount = new VFXSpawnerStateExpression(VFXExpressionOperation.SpawnerStateSpawnCount);
|
|
public static readonly VFXExpression DeltaTime = new VFXSpawnerStateExpression(VFXExpressionOperation.SpawnerStateDeltaTime);
|
|
public static readonly VFXExpression TotalTime = new VFXSpawnerStateExpression(VFXExpressionOperation.SpawnerStateTotalTime);
|
|
public static readonly VFXExpression DelayBeforeLoop = new VFXSpawnerStateExpression(VFXExpressionOperation.SpawnerStateDelayBeforeLoop);
|
|
public static readonly VFXExpression LoopDuration = new VFXSpawnerStateExpression(VFXExpressionOperation.SpawnerStateLoopDuration);
|
|
public static readonly VFXExpression DelayAfterLoop = new VFXSpawnerStateExpression(VFXExpressionOperation.SpawnerStateDelayAfterLoop);
|
|
public static readonly VFXExpression LoopIndex = new VFXSpawnerStateExpression(VFXExpressionOperation.SpawnerStateLoopIndex);
|
|
public static readonly VFXExpression LoopCount = new VFXSpawnerStateExpression(VFXExpressionOperation.SpawnerStateLoopCount);
|
|
|
|
private static readonly VFXExpression[] AllExpressions = VFXReflectionHelper.CollectStaticReadOnlyExpression<VFXExpression>(typeof(VFXBuiltInExpression));
|
|
public static readonly VFXExpressionOperation[] All = AllExpressions.Select(e => e.operation).ToArray();
|
|
|
|
private VFXExpressionOperation m_Operation;
|
|
private VFXSpawnerStateExpression(VFXExpressionOperation op)
|
|
: base(Flags.InvalidOnGPU | Flags.PerSpawn)
|
|
{
|
|
m_Operation = op;
|
|
}
|
|
|
|
public sealed override VFXExpressionOperation operation => m_Operation;
|
|
|
|
public override bool Equals(object obj)
|
|
{
|
|
if (!(obj is VFXSpawnerStateExpression))
|
|
return false;
|
|
|
|
var other = (VFXSpawnerStateExpression)obj;
|
|
return operation == other.operation;
|
|
}
|
|
|
|
protected override int GetInnerHashCode()
|
|
{
|
|
return operation.GetHashCode();
|
|
}
|
|
|
|
protected sealed override VFXExpression Evaluate(VFXExpression[] constParents)
|
|
{
|
|
return this;
|
|
}
|
|
}
|
|
#pragma warning restore 0659
|
|
}
|