package joshie.harvest.fishing.loot; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonObject; import com.google.gson.JsonSerializationContext; import joshie.harvest.calendar.CalendarHelper; import net.minecraft.util.JsonUtils; import net.minecraft.util.ResourceLocation; import net.minecraft.world.storage.loot.LootContext; import net.minecraft.world.storage.loot.conditions.LootCondition; import java.util.Random; import static joshie.harvest.core.lib.HFModInfo.MODID; public class ConditionTime implements LootCondition { private final int from; private final int to; public ConditionTime(int from, int to) { this.from = from; this.to = to; } @Override public boolean testCondition(Random rand, LootContext context) { return context.getLootedEntity() != null && CalendarHelper.isBetween(context.getLootedEntity().worldObj, from, to); } public static class Serializer extends LootCondition.Serializer<ConditionTime> { public Serializer() { super(new ResourceLocation(MODID, "time"), ConditionTime.class); } public void serialize(JsonObject json, ConditionTime value, JsonSerializationContext context) { json.addProperty("from", value.from); json.addProperty("to", value.to); } public ConditionTime deserialize(JsonObject json, JsonDeserializationContext context) { return new ConditionTime(JsonUtils.getInt(json, "from", 0), JsonUtils.getInt(json, "to", 24000)); } } }