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

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

import com.hypixel.hytale.math.random.RandomExtra;
import javax.annotation.Nonnull;
import com.hypixel.hytale.server.spawning.SpawningPlugin;
import com.hypixel.hytale.component.ComponentType;
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
import com.hypixel.hytale.component.Component;

public class InitialBeaconDelay implements Component<EntityStore>
{
    private double loadTimeSpawnDelay;
    
    public static ComponentType<EntityStore, InitialBeaconDelay> getComponentType() {
        return SpawningPlugin.get().getInitialBeaconDelayComponentType();
    }
    
    public void setLoadTimeSpawnDelay(final double loadTimeSpawnDelay) {
        this.loadTimeSpawnDelay = loadTimeSpawnDelay;
    }
    
    public boolean tickLoadTimeSpawnDelay(final float dt) {
        if (this.loadTimeSpawnDelay <= 0.0) {
            return true;
        }
        final double loadTimeSpawnDelay = this.loadTimeSpawnDelay - dt;
        this.loadTimeSpawnDelay = loadTimeSpawnDelay;
        return loadTimeSpawnDelay <= 0.0;
    }
    
    public void setupInitialSpawnDelay(@Nonnull final double[] initialSpawnDelay) {
        this.loadTimeSpawnDelay = RandomExtra.randomRange(initialSpawnDelay[0], initialSpawnDelay[1]);
    }
    
    @Nonnull
    @Override
    public Component<EntityStore> clone() {
        final InitialBeaconDelay delay = new InitialBeaconDelay();
        delay.setLoadTimeSpawnDelay(this.loadTimeSpawnDelay);
        return delay;
    }
}
