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

package com.hypixel.hytale.server.npc.components.messaging;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
import com.hypixel.hytale.component.Ref;

public class NPCMessage
{
    public static final double AGE_INFINITE = -1.0;
    private boolean enabled;
    private boolean activated;
    private double age;
    private Ref<EntityStore> target;
    
    public NPCMessage() {
        this.enabled = true;
        this.activated = false;
    }
    
    public boolean tickAge(final float dt) {
        final double age = this.age - dt;
        this.age = age;
        return age <= 0.0;
    }
    
    public boolean isEnabled() {
        return this.enabled;
    }
    
    public void setEnabled(final boolean enabled) {
        this.enabled = enabled;
    }
    
    public boolean isActivated() {
        return this.activated;
    }
    
    public boolean isInfinite() {
        return this.age == -1.0;
    }
    
    @Nullable
    public Ref<EntityStore> getTarget() {
        return (this.target != null && this.target.isValid()) ? this.target : null;
    }
    
    public void activate(final Ref<EntityStore> target, final double age) {
        this.age = age;
        this.activated = true;
        this.target = target;
    }
    
    public void deactivate() {
        this.activated = false;
    }
    
    @Nonnull
    public NPCMessage clone() {
        final NPCMessage message = new NPCMessage();
        message.enabled = this.enabled;
        message.activated = this.activated;
        message.age = this.age;
        message.target = this.target;
        return message;
    }
}
