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

package com.hypixel.hytale.server.spawning.local;

import java.util.Collection;
import javax.annotation.Nonnull;
import com.hypixel.hytale.server.spawning.SpawningPlugin;
import com.hypixel.hytale.component.ResourceType;
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
import com.hypixel.hytale.server.spawning.beacons.LegacySpawnBeaconEntity;
import com.hypixel.hytale.component.Ref;
import java.util.List;
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
import com.hypixel.hytale.component.Resource;

public class LocalSpawnState implements Resource<EntityStore>
{
    private final List<Ref<EntityStore>> localControllerList;
    private final List<LegacySpawnBeaconEntity> localPendingSpawns;
    private boolean forceTriggerControllers;
    
    public LocalSpawnState() {
        this.localControllerList = new ObjectArrayList<Ref<EntityStore>>();
        this.localPendingSpawns = new ObjectArrayList<LegacySpawnBeaconEntity>();
    }
    
    public static ResourceType<EntityStore, LocalSpawnState> getResourceType() {
        return SpawningPlugin.get().getLocalSpawnStateResourceType();
    }
    
    @Nonnull
    public List<Ref<EntityStore>> getLocalControllerList() {
        return this.localControllerList;
    }
    
    @Nonnull
    public List<LegacySpawnBeaconEntity> getLocalPendingSpawns() {
        return this.localPendingSpawns;
    }
    
    public boolean pollForceTriggerControllers() {
        final boolean result = this.forceTriggerControllers;
        this.forceTriggerControllers = false;
        return result;
    }
    
    public void forceTriggerControllers() {
        this.forceTriggerControllers = true;
    }
    
    @Nonnull
    @Override
    public Resource<EntityStore> clone() {
        final LocalSpawnState state = new LocalSpawnState();
        state.localControllerList.addAll(this.localControllerList);
        state.localPendingSpawns.addAll(this.localPendingSpawns);
        return state;
    }
}
