New recipe registration API

This commit is contained in:
Nicholas Ignoffo 2018-02-06 19:18:29 -08:00
parent 59f171ca5b
commit d67ed054ff
9 changed files with 493 additions and 4 deletions

View file

@ -0,0 +1,72 @@
package WayofTime.bloodmagic.api.impl.recipe;
import WayofTime.bloodmagic.apibutnotreally.altar.EnumAltarTier;
import com.google.common.base.Preconditions;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.Ingredient;
import javax.annotation.Nonnegative;
import javax.annotation.Nonnull;
public class RecipeBloodAltar {
@Nonnull
private final Ingredient input;
@Nonnull
private final ItemStack output;
@Nonnull
private final EnumAltarTier minimumTier;
@Nonnegative
private final int syphon;
@Nonnegative
private final int consumeRate;
@Nonnegative
private final int drainRate;
public RecipeBloodAltar(@Nonnull Ingredient input, @Nonnull ItemStack output, @Nonnegative int minimumTier, @Nonnegative int syphon, @Nonnegative int consumeRate, @Nonnegative int drainRate) {
Preconditions.checkNotNull(input, "input cannot be null.");
Preconditions.checkNotNull(output, "output cannot be null.");
Preconditions.checkArgument(minimumTier >= 0, "minimumTier cannot be negative.");
Preconditions.checkArgument(minimumTier <= EnumAltarTier.MAXTIERS, "minimumTier cannot be higher than max tier");
Preconditions.checkArgument(syphon >= 0, "syphon cannot be negative.");
Preconditions.checkArgument(consumeRate >= 0, "consumeRate cannot be negative.");
Preconditions.checkArgument(drainRate >= 0, "drain cannot be negative.");
this.input = input;
this.output = output;
this.minimumTier = EnumAltarTier.values()[minimumTier];
this.syphon = syphon;
this.consumeRate = consumeRate;
this.drainRate = drainRate;
}
@Nonnull
public final Ingredient getInput() {
return input;
}
@Nonnull
public final ItemStack getOutput() {
return output;
}
@Nonnull
public EnumAltarTier getMinimumTier() {
return minimumTier;
}
@Nonnegative
public final int getSyphon() {
return syphon;
}
@Nonnegative
public final int getConsumeRate() {
return consumeRate;
}
@Nonnegative
public final int getDrainRate() {
return drainRate;
}
}