Renamed and commented functions

This commit is contained in:
Teriuihi 2021-09-25 03:23:45 +02:00
parent 980448f9e7
commit 5ac582261c

View File

@ -37,16 +37,23 @@ public class Utilities {
* @param item to calculate price for * @param item to calculate price for
* @return price or int < 0 for error * @return price or int < 0 for error
*/ */
public static double price(ItemStack item) { public static double getWorth(ItemStack item) {
if (WorthConfig.prices.containsKey(item.getType())) if (WorthConfig.prices.containsKey(item.getType()))
return Utilities.round(WorthConfig.prices.getDouble(item.getType()) * item.getAmount(), 2); return Utilities.round(WorthConfig.prices.getDouble(item.getType()) * item.getAmount(), 2);
WorthConfig.prices.put(item.getType(), Utilities.round(getPrice(item, null), 2)); WorthConfig.prices.put(item.getType(), Utilities.round(getWorth(item, null), 2));
return WorthConfig.prices.getDouble(item.getType()) * item.getAmount(); return WorthConfig.prices.getDouble(item.getType()) * item.getAmount();
} }
private static double getPrice(ItemStack item, Material blockedMaterial) { /**
* Get the worth of the material an ItemStack consists of
*
* @param item to get the worth of
* @param blockedMaterial Material to ignore set to null on initial call
* @return Worth of the item as a double
*/
private static double getWorth(ItemStack item, Material blockedMaterial) {
if (WorthConfig.prices.containsKey(item.getType())) if (WorthConfig.prices.containsKey(item.getType()))
return WorthConfig.prices.getDouble(item.getType()); return WorthConfig.prices.getDouble(item.getType());
double price = -1; double price = -1;
@ -57,17 +64,17 @@ public class Utilities {
Collection<ItemStack> values = shapedRecipe.getIngredientMap().values(); Collection<ItemStack> values = shapedRecipe.getIngredientMap().values();
if (values.stream().anyMatch(itemStack -> itemStack.getType().equals(blockedMaterial))) if (values.stream().anyMatch(itemStack -> itemStack.getType().equals(blockedMaterial)))
continue; continue;
possiblePrice = getPrice(values.stream().toList(), item.getType()); possiblePrice = getWorth(values.stream().toList(), item.getType());
if (price == -1 || price > possiblePrice) if (price == -1 || price > possiblePrice)
price = possiblePrice; price = possiblePrice;
} else if (recipe instanceof ShapelessRecipe shapelessRecipe) { } else if (recipe instanceof ShapelessRecipe shapelessRecipe) {
if (shapelessRecipe.getIngredientList().stream().anyMatch(itemStack -> itemStack.getType().equals(blockedMaterial))) if (shapelessRecipe.getIngredientList().stream().anyMatch(itemStack -> itemStack.getType().equals(blockedMaterial)))
continue; continue;
possiblePrice = getPrice(shapelessRecipe.getIngredientList(), item.getType()); possiblePrice = getWorth(shapelessRecipe.getIngredientList(), item.getType());
if (price == -1 || price > possiblePrice) if (price == -1 || price > possiblePrice)
price = possiblePrice; price = possiblePrice;
} else if (recipe instanceof FurnaceRecipe furnaceRecipe) { } else if (recipe instanceof FurnaceRecipe furnaceRecipe) {
possiblePrice = getPrice(furnaceRecipe.getInput(), item.getType()); possiblePrice = getWorth(furnaceRecipe.getInput(), item.getType());
if (price == -1 || price > possiblePrice) if (price == -1 || price > possiblePrice)
price = possiblePrice; price = possiblePrice;
} }
@ -75,10 +82,17 @@ public class Utilities {
return price; return price;
} }
private static double getPrice(List<ItemStack> items, Material blockedMaterial) { /**
* Get the total worth of a list of ItemStack's (amount of items in ItemStack is ignored)
*
* @param items Items to get the worth of
* @param blockedMaterial Material to ignore set to null on initial call
* @return Worth of ItemStack as a double
*/
private static double getWorth(List<ItemStack> items, Material blockedMaterial) {
double price = 0; double price = 0;
for (ItemStack item : items) { for (ItemStack item : items) {
double tmp = getPrice(item, blockedMaterial); double tmp = getWorth(item, blockedMaterial);
if (tmp == -1) if (tmp == -1)
return -1; return -1;
price += tmp; price += tmp;