package joshie.progression.crafting;
import joshie.progression.api.ProgressionAPI;
import joshie.progression.api.criteria.ICriteria;
import joshie.progression.api.criteria.IFilterProvider;
import joshie.progression.json.Options;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.UUID;
public class CrafterHuman extends Crafter {
//List of technologies this human has unlocked
private final UUID uuid;
private EntityPlayer player;
public CrafterHuman(UUID uuid) {
this.uuid = uuid;
}
@Override
public boolean canUseItemWithAction(World world, ActionType type, ItemStack stack) {
Set<IFilterProvider> filters = CraftingRegistry.get(world.isRemote).getFiltersForStack(type, stack);
List<IFilterProvider> matched = new ArrayList();
for (IFilterProvider filter : filters) {
if (filter.getProvided().matches(stack)) {
matched.add(filter); //Add all matches so we can check all criteria
}
}
if (matched.size() == 0) return !Options.getSettings().disableUsageUntilRewardAdded;
Set<ICriteria> completed = ProgressionAPI.player.getCompletedCriteriaList(uuid, world.isRemote);
for (IFilterProvider filter : matched) {
ICriteria criteria = CraftingRegistry.get(world.isRemote).getCriteriaForFilter(type, filter);
if (criteria != null && completed.contains(criteria)) return true;
}
return false;
}
@Override
public boolean canDoAnything() {
return false;
}
}