public void SetComponentOperation(TypeHandle type, ComponentOperationType operation) { var i = m_AdditionalComponents.FindIndex(compOps => compOps.Type == type); if (i == -1) { m_AdditionalComponents.Add(new ComponentOperation(type, operation)); } else if (operation == ComponentOperationType.AddComponent || operation == ComponentOperationType.RemoveComponent || operation == ComponentOperationType.SetComponent) { m_AdditionalComponents[i] = new ComponentOperation(type, operation, m_AdditionalComponents[i].FromArchetype); } else { throw new ArgumentOutOfRangeException(nameof(operation), operation, null); } }
public ComponentOperation(TypeHandle type, ComponentOperationType operationType, bool fromArchetype = false) { Type = type; OperationType = operationType; FromArchetype = fromArchetype; }