package joshie.harvest.mining.loot;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonObject;
import com.google.gson.JsonSerializationContext;
import net.minecraft.util.JsonUtils;
import net.minecraft.util.ResourceLocation;
import net.minecraft.world.storage.loot.conditions.LootCondition;
import static joshie.harvest.core.lib.HFModInfo.MODID;
public class MultipleOf extends FloorCondition {
private final int multiple;
private final boolean reverse;
public MultipleOf(int multiple, boolean reverse) {
this.multiple = multiple;
this.reverse = reverse;
}
@Override
public boolean testFloor(int floor) {
if (reverse) return floor % multiple != 0;
return floor % multiple == 0;
}
public static class Serializer extends LootCondition.Serializer<MultipleOf> {
public Serializer() {
super(new ResourceLocation(MODID, "multiple"), MultipleOf.class);
}
public void serialize(JsonObject json, MultipleOf value, JsonSerializationContext context) {
json.addProperty("of", value.multiple);
if (value.reverse) {
json.addProperty("reverse", true);
}
}
public MultipleOf deserialize(JsonObject json, JsonDeserializationContext context) {
return new MultipleOf(JsonUtils.getInt(json, "of", 0), JsonUtils.getBoolean(json, "reverse", false));
}
}
}