SystemBase does not support generic types?

I applied it to one of our generic systems and it showed an error that generic types are not supported. Will SystemBase eventually support generic types once ComponentSystem and JobComponentSystem are deprecated?

Example? I actually find the code gen to be more usable for generics.

For example this:

public abstract class AtomActionComponentSystem<T> : SystemBase where T : struct, IComponentData {
    protected override void OnUpdate() {
        this.Entities.ForEach(delegate(ref AtomAction atomAction, ref T actionComponent) {
            // Start
            if (!atomAction.started) {
                atomAction.status = Start(ref atomAction, ref actionComponent);
                if (atomAction.status == GoapStatus.SUCCESS || atomAction.status == GoapStatus.FAILED) {
                    // Action is already done
                    return;
                }
            }
          
            // Update
            atomAction.status = Update(ref atomAction, ref actionComponent);
        }).WithoutBurst().Run();
    }

    protected virtual GoapStatus Start(ref AtomAction atomAction, ref T actionComponent) {
        return GoapStatus.SUCCESS;
    }

    protected virtual GoapStatus Update(ref AtomAction atomAction, ref T actionComponent) {
        return GoapStatus.SUCCESS;
    }
}

It throws this error in the editor after compilation:
F:\Projects\ECSExperiments\MainProject.…: error DC0025: Entities.ForEach cannot be used in system AtomActionComponentSystem`1 as Entities.ForEach in generic system types are not supported.

3 Likes