package joshie.progression.criteria.rewards;
import joshie.progression.api.criteria.*;
import joshie.progression.api.special.DisplayMode;
import joshie.progression.api.special.IHasFilters;
import joshie.progression.api.special.ISpecialFieldProvider;
import joshie.progression.gui.fields.ItemFilterField;
import joshie.progression.gui.filters.FilterTypeEntity;
import joshie.progression.helpers.EntityHelper;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayerMP;
import java.util.ArrayList;
import java.util.List;
@ProgressionRule(name="setFire", color=0xFFFF4200, icon="minecraft:flint_and_steel")
public class RewardSetFire extends RewardBase implements IHasFilters, ISpecialFieldProvider {
public List<IFilterProvider> targets = new ArrayList();
public boolean defaultToPlayer = true;
public int duration;
@Override
public List<IFilterProvider> getAllFilters() {
return targets;
}
@Override
public IFilterType getFilterForField(String fieldName) {
return FilterTypeEntity.INSTANCE;
}
@Override
public void addSpecialFields(List<IField> fields, DisplayMode mode) {
fields.add(new ItemFilterField("targets", this));
}
@Override
public void reward(EntityPlayerMP thePlayer) {
IFilter filter = EntityHelper.getFilter(targets, thePlayer);
if (filter != null) {
List<EntityLivingBase> entities = (List<EntityLivingBase>) filter.getRandom(thePlayer);
if (entities.size() == 0) entities.add(thePlayer);
if (entities.size() == 0 && defaultToPlayer) entities.add(thePlayer);
for (EntityLivingBase entity : entities) {
entity.setFire(duration);
}
}
}
}