package ttftcuts.physis.common.artifact.trigger;
import java.util.ArrayList;
import java.util.List;
import ttftcuts.physis.api.PhysisAPI;
import ttftcuts.physis.api.internal.IArtifactHandler.CooldownCategory;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
public class TriggerOnEquippedUpdate extends AbstractTrigger {
public UpdateCondition condition;
public TriggerOnEquippedUpdate(String name, UpdateCondition condition) {
super(name + condition.suffix);
this.condition = condition;
}
public TriggerOnEquippedUpdate(String name) {
this(name, UpdateCondition.ANY);
}
@Override
public CooldownCategory getCooldownCategory() {
//return CooldownCategory.LONG;
return this.condition.equippedCooldown;
}
@Override
public void onEquippedUpdate(ItemStack stack, EntityLivingBase holder, int id) {
if (this.condition.condition(stack, holder)) {
List<EntityLivingBase> targets = new ArrayList<EntityLivingBase>();
targets.add(holder);
PhysisAPI.artifactHandler.triggerArtifactEffect(stack, targets, holder, id, getCooldownCategory());
}
}
@Override
public void onTileUpdate(ItemStack stack, List<EntityLivingBase> targets, TileEntity tile, int id) {
List<EntityLivingBase> shortlist = new ArrayList<EntityLivingBase>();
for (EntityLivingBase entity : targets) {
if (this.condition.condition(stack, entity)) {
shortlist.add(entity);
}
}
PhysisAPI.artifactHandler.triggerArtifactEffect(stack, targets, null, id, getCooldownCategory());
}
@Override
public String getUnlocalizedTargetString() {
return TARGET_HOLDER;
}
}