NaturesAura/src/main/java/de/ellpeck/naturesaura/recipes/EnabledCondition.java

40 lines
1.2 KiB
Java
Raw Normal View History

package de.ellpeck.naturesaura.recipes;
2024-03-10 15:54:58 +01:00
import com.mojang.serialization.Codec;
import com.mojang.serialization.codecs.RecordCodecBuilder;
import de.ellpeck.naturesaura.ModConfig;
import de.ellpeck.naturesaura.NaturesAura;
2024-02-03 14:56:07 +01:00
import net.neoforged.neoforge.common.ModConfigSpec;
2024-03-10 15:54:58 +01:00
import net.neoforged.neoforge.common.conditions.ICondition;
public class EnabledCondition implements ICondition {
2021-12-08 00:31:29 +01:00
2024-03-10 15:54:58 +01:00
private static final Codec<EnabledCondition> CODEC = RecordCodecBuilder.create(i ->
i.group(Codec.STRING.fieldOf("name").forGetter(c -> c.name)).apply(i, EnabledCondition::new)
);
2024-02-03 14:56:07 +01:00
private ModConfigSpec.ConfigValue<Boolean> config;
private final String name;
2021-12-08 00:31:29 +01:00
@SuppressWarnings("unchecked")
public EnabledCondition(String name) {
this.name = name;
try {
2024-02-03 14:56:07 +01:00
this.config = (ModConfigSpec.ConfigValue<Boolean>) ModConfig.class.getField(name).get(ModConfig.instance);
} catch (IllegalAccessException | NoSuchFieldException e) {
NaturesAura.LOGGER.error(e);
}
}
@Override
2022-06-27 15:24:04 +02:00
public boolean test(IContext context) {
return this.config != null && this.config.get();
}
2024-03-10 15:54:58 +01:00
@Override
public Codec<? extends ICondition> codec() {
return EnabledCondition.CODEC;
}
2024-03-10 15:54:58 +01:00
}