package com.cardshifter.modapi.resources; import java.util.HashMap; import java.util.Map; import java.util.function.Consumer; import com.cardshifter.modapi.base.Entity; public final class Resources { private Resources() { throw new UnsupportedOperationException(); } public static void processResources(Entity card, Consumer<ECSResourceData> consumer) { ECSResourceMap resources = card.getComponent(ECSResourceMap.class); if (resources != null) { resources.getResources().forEach(consumer); } } public static Map<String, Integer> map(Entity playerFor) { HashMap<String, Integer> result = new HashMap<>(); processResources(playerFor, data -> result.put(data.getResource().toString(), data.get())); return result; } public static ResourceRetriever retriever(ECSResource resource) { return new ResourceRetriever(resource); } public static int getOrDefault(Entity entity, ECSResource resource, int defaultValue) { return ResourceRetriever.forResource(resource).getOrDefault(entity, defaultValue); } }