Implement furnace cook speed multiplier API

Signed-off-by: Tassu <git@tassu.me>
This commit is contained in:
Tassu 2018-09-13 08:45:01 +03:00
parent 6a9c8c348b
commit 6d98fbc47d
2 changed files with 28 additions and 1 deletions

View file

@ -74,6 +74,26 @@ public interface Furnace extends Container {
@NotNull
public Map<CookingRecipe<?>, Integer> getRecipesUsed();
// Paper start
/**
* Gets the cook speed multiplier that this {@link Furnace} will cook
* compared to vanilla.
*
* @return the multiplier, a value between 0 and 200
*/
public double getCookSpeedMultiplier();
/**
* Sets the speed multiplier that this {@link Furnace} will cook
* compared to vanilla.
*
* @param multiplier the multiplier to set, a value between 0 and 200
* @throws IllegalArgumentException if value is less than 0
* @throws IllegalArgumentException if value is more than 200
*/
public void setCookSpeedMultiplier(double multiplier);
// Paper end
@NotNull
@Override
public FurnaceInventory getInventory();

View file

@ -18,10 +18,17 @@ public class FurnaceStartSmeltEvent extends InventoryBlockStartEvent {
private final CookingRecipe<?> recipe;
private int totalCookTime;
@Deprecated // Paper - furnace cook speed multiplier
public FurnaceStartSmeltEvent(@NotNull final Block furnace, @NotNull ItemStack source, @NotNull final CookingRecipe<?> recipe) {
// Paper start
this(furnace, source, recipe, recipe.getCookingTime());
}
public FurnaceStartSmeltEvent(final @NotNull Block furnace, final @NotNull ItemStack source, final @NotNull CookingRecipe<?> recipe, final int cookingTime) {
// Paper end
super(furnace, source);
this.recipe = recipe;
this.totalCookTime = recipe.getCookingTime();
this.totalCookTime = cookingTime; // Paper - furnace cook speed multiplier
}
/**