// 
// Decompiled by Procyon v0.6.0
// 

package com.hypixel.hytale.component.system;

import com.hypixel.hytale.component.CommandBuffer;
import com.hypixel.hytale.component.Store;
import com.hypixel.hytale.component.ArchetypeChunk;
import javax.annotation.Nonnull;

public abstract class EntityEventSystem<ECS_TYPE, EventType extends EcsEvent> extends EventSystem<EventType> implements QuerySystem<ECS_TYPE>
{
    protected EntityEventSystem(@Nonnull final Class<EventType> eventType) {
        super(eventType);
    }
    
    public abstract void handle(final int p0, @Nonnull final ArchetypeChunk<ECS_TYPE> p1, @Nonnull final Store<ECS_TYPE> p2, @Nonnull final CommandBuffer<ECS_TYPE> p3, @Nonnull final EventType p4);
    
    public void handleInternal(final int index, @Nonnull final ArchetypeChunk<ECS_TYPE> archetypeChunk, @Nonnull final Store<ECS_TYPE> store, @Nonnull final CommandBuffer<ECS_TYPE> commandBuffer, @Nonnull final EventType event) {
        if (!this.shouldProcessEvent(event)) {
            return;
        }
        this.handle(index, archetypeChunk, store, commandBuffer, event);
    }
}
