package com.cardshifter.modapi.attributes;
import java.util.HashMap;
import java.util.Map;
import java.util.function.Consumer;
import com.cardshifter.modapi.base.Entity;
public final class Attributes {
public static final ECSAttribute NAME = new ECSAttributeDefault("name");
public static final ECSAttribute FLAVOR = new ECSAttributeDefault("flavor");
public static final ECSAttribute IMAGE_PATH = new ECSAttributeDefault("imagePath");
private Attributes() {
throw new UnsupportedOperationException();
}
public static void processAttributes(Entity card, Consumer<ECSAttributeData> consumer) {
ECSAttributeMap attributes = card.getComponent(ECSAttributeMap.class);
if (attributes != null) {
attributes.getAttributes().forEach(consumer);
}
}
public static Map<String, String> map(Entity playerFor) {
HashMap<String, String> result = new HashMap<>();
processAttributes(playerFor, data -> result.put(data.getAttribute().toString(), data.get()));
return result;
}
public static AttributeRetriever retriever(ECSAttribute attribute) {
return new AttributeRetriever(attribute);
}
public static String getOrDefault(Entity entity, ECSAttribute attribute, String defaultValue) {
return AttributeRetriever.forAttribute(attribute).getOrDefault(entity, defaultValue);
}
}