From 10b327e9f6441a8863227ce3e075a5a587654065 Mon Sep 17 00:00:00 2001 From: davidovski Date: Sat, 11 Oct 2025 04:55:51 +0100 Subject: v0.3.1 --- .../uomc/mineshaft/crafting/CraftingRecipe.java | 66 ++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 src/main/java/net/uomc/mineshaft/crafting/CraftingRecipe.java (limited to 'src/main/java/net/uomc/mineshaft/crafting/CraftingRecipe.java') diff --git a/src/main/java/net/uomc/mineshaft/crafting/CraftingRecipe.java b/src/main/java/net/uomc/mineshaft/crafting/CraftingRecipe.java new file mode 100644 index 0000000..cb4892e --- /dev/null +++ b/src/main/java/net/uomc/mineshaft/crafting/CraftingRecipe.java @@ -0,0 +1,66 @@ +package net.uomc.mineshaft.crafting; + +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import net.uomc.mineshaft.MineshaftItem; + +public class CraftingRecipe { + MineshaftItem item; + long quantity; + Map ingredients; + + String buyMessage; + + private CraftingRecipe(MineshaftItem item, long quantity, Map ingredients) { + this.item = item; + this.quantity = quantity; + this.ingredients = ingredients; + } + + public static CraftingRecipe make(MineshaftItem item) { + Map ingredients = new HashMap<>(); + return new CraftingRecipe(item, 1, ingredients); + } + + public CraftingRecipe addIngredient(MineshaftItem item, long amount) { + ingredients.put(item, amount); + return this; + } + + public MineshaftItem getItem() { + return item; + } + + public long getQuantity() { + return quantity; + } + + public Map getIngredients() { + return ingredients; + } + + public String getBuyMessage() { + return buyMessage; + } + + public CraftingRecipe setBuyMessage(String message) { + buyMessage = message; + return this; + } + public Map getMissingIngredients(Map items) { + return getMissingIngredients(items, 1); + } + + public Map getMissingIngredients(Map items, long amount) { + Map lacking = new HashMap(); + getIngredients().forEach((item, q) -> { + if (items.get(item) < q* amount) { + lacking.put(item, (q * amount) - items.get(item)); + } + }); + + return Collections.unmodifiableMap(lacking); + } + +} -- cgit v1.2.3