Advertisement
broken-arrow

Untitled

Sep 20th, 2021
1,063
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.60 KB | None | 0 0
  1. public class RecipeCache {
  2.  
  3.     private Map<ItemStack, RecipeData> recipesCache = new HashMap<>();
  4.  
  5.     /**
  6.      * add the recipe tho the cache.
  7.      *
  8.      * @param recipes   the output item
  9.      * @param material1 matrials used
  10.      * @param material2 matrials used
  11.      * @param material3 matrials used
  12.      * @param material4 matrials used
  13.      * @param material5 matrials used
  14.      * @param amount1   amount of matrials used
  15.      * @param amount2   amount of matrials used
  16.      * @param amount3   amount of matrials used
  17.      * @param amount4   amount of matrials used
  18.      * @param amount5   amount of matrials used
  19.      */
  20.  
  21.  
  22.     public void addRecipes(ItemStack recipes, Set<ItemStack> material1, Set<ItemStack> material2, Set<ItemStack> material3, Set<ItemStack> material4, Set<ItemStack> material5,
  23.                            int amount1, int amount2, int amount3, int amount4, int amount5) {
  24.         this.recipesCache.put(recipes, RecipeData.of(material1, material2, material3, material4, material5,
  25.                 amount1, amount2, amount3, amount4, amount5));
  26.  
  27.     }
  28.  
  29.     /**
  30.      * Get the map with all recipes
  31.      *
  32.      * @return return all recipes.
  33.      */
  34.  
  35.     public Map<ItemStack, RecipeData> getRecipe() {
  36.         return this.recipesCache;
  37.     }
  38.  
  39.     /**
  40.      * Get all recipes as a setlist
  41.      *
  42.      * @return a list of recipes.
  43.      */
  44.  
  45.     public Set<ItemStack> getRecipes() {
  46.         return this.recipesCache.keySet();
  47.     }
  48.  
  49.     /**
  50.      * Get one recipe from this cache
  51.      *
  52.      * @param recipe the recipe you want the ingridens.
  53.      * @return the recipe ingridens.
  54.      */
  55.  
  56.     public RecipeData getRecipe(ItemStack recipe) {
  57.         return this.recipesCache.get(recipe);
  58.     }
  59.  
  60.     public static class RecipeData implements ConfigSerializable {
  61.  
  62.         Set<ItemStack> matrial1;
  63.         Set<ItemStack> matrial2;
  64.         Set<ItemStack> matrial3;
  65.         Set<ItemStack> matrial4;
  66.         Set<ItemStack> matrial5;
  67.  
  68.         int amount1;
  69.         int amount2;
  70.         int amount3;
  71.         int amount4;
  72.         int amount5;
  73.  
  74.         public RecipeData() {
  75.         }
  76.  
  77.         public RecipeData(Set<ItemStack> matrial1, Set<ItemStack> matrial2, Set<ItemStack> matrial3, Set<ItemStack> matrial4, Set<ItemStack> matrial5, int amount1, int amount2, int amount3, int amount4, int amount5) {
  78.  
  79.             this.matrial1 = matrial1;
  80.             this.matrial2 = matrial2;
  81.             this.matrial3 = matrial3;
  82.             this.matrial4 = matrial4;
  83.             this.matrial5 = matrial5;
  84.             this.amount1 = amount1;
  85.             this.amount2 = amount2;
  86.             this.amount3 = amount3;
  87.             this.amount4 = amount4;
  88.             this.amount5 = amount5;
  89.         }
  90.  
  91.         @Override
  92.         public SerializedMap serialize() {
  93.             final SerializedMap map = new SerializedMap();
  94.  
  95.  
  96.             map.put("Matrial1", this.matrial1);
  97.             map.put("Matrial2", this.matrial2);
  98.             map.put("Matrial3", this.matrial3);
  99.             map.put("Matrial4", this.matrial4);
  100.             map.put("Matrial5", this.matrial5);
  101.             map.put("Amount1", this.amount1);
  102.             map.put("Amount2", this.amount2);
  103.             map.put("Amount3", this.amount3);
  104.             map.put("Amount4", this.amount4);
  105.             map.put("Amount5", this.amount5);
  106.  
  107.             return map;
  108.         }
  109.  
  110.  
  111.         static RecipeData of(Set<ItemStack> matrial1, Set<ItemStack> matrial2, Set<ItemStack> matrial3, Set<ItemStack> matrial4,
  112.                              Set<ItemStack> matrial5, int amount1, int amount2, int amount3, int amount4, int amount5) {
  113.             RecipeData data = new RecipeData();
  114.  
  115.             data.matrial1 = matrial1;
  116.             data.matrial2 = matrial2;
  117.             data.matrial3 = matrial3;
  118.             data.matrial4 = matrial4;
  119.             data.matrial5 = matrial5;
  120.             data.amount1 = amount1;
  121.             data.amount2 = amount2;
  122.             data.amount3 = amount3;
  123.             data.amount4 = amount4;
  124.             data.amount5 = amount5;
  125.  
  126.             return data;
  127.         }
  128.  
  129.         @Override
  130.         public String toString() {
  131.             return FormattingMaps.toStringFormatted(serialize());
  132.         }
  133.  
  134.  
  135.     }
  136.  
  137. }
  138.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement