Examples of RecipeType


Examples of com.sk89q.craftbook.mechanics.crafting.RecipeManager.RecipeType

        if (!(sender instanceof Player)) return;
        LocalPlayer player = plugin.wrapPlayer((Player) sender);

        String name = context.getString(0);
        RecipeType type = RecipeType.getTypeFromName(context.getString(1));
        HashMap<String, Object> advancedData = new HashMap<String, Object>();

        if (context.hasFlag('p')) {
            advancedData.put("permission-node", context.getFlag('p'));
        }

        ItemStack[] slots = new ItemStack[]{((Player) sender).getInventory().getItem(9),((Player) sender).getInventory().getItem(10),
                ((Player) sender).getInventory().getItem(11),((Player) sender).getInventory().getItem(18),((Player) sender).getInventory().getItem(19),
                ((Player) sender).getInventory().getItem(20),((Player) sender).getInventory().getItem(27),((Player) sender).getInventory().getItem(28),
                ((Player) sender).getInventory().getItem(29)};

        if(type == RecipeType.SHAPED) {

            LinkedHashMap<CraftingItemStack, Character> items = new LinkedHashMap<CraftingItemStack, Character>();

            int furtherestX = -1;
            int furtherestY = -1;

            for (int slot = 0; slot < 3; slot++) {
                ItemStack stack = slots[slot];
                if(ItemUtil.isStackValid(stack)) {
                    furtherestY = 0;
                    if(furtherestX < slot)
                        furtherestX = slot;
                }
            }
            for (int slot = 3; slot < 6; slot++) {
                ItemStack stack = slots[slot];
                if(ItemUtil.isStackValid(stack)) {
                    furtherestY = 1;
                    if(furtherestX < slot-3)
                        furtherestX = slot-3;
                }
            }
            for (int slot = 6; slot < 9; slot++) {
                ItemStack stack = slots[slot];
                if(ItemUtil.isStackValid(stack)) {
                    furtherestY = 2;
                    if(furtherestX < slot-6)
                        furtherestX = slot-6;
                }
            }

            if(furtherestX > 2)
                furtherestX = 2;

            String[] shape = new String[furtherestY+1];
            Character[] characters = new Character[]{'a','b','c','d','e','f','g','h','i'};
            int curChar = 0;

            for(int y = 0; y < furtherestY+1; y++) {
                for(int x = 0; x < furtherestX+1; x++) {

                    String c = " ";
                    CraftingItemStack stack = new CraftingItemStack(slots[x+y*3]);
                    if(ItemUtil.isStackValid(stack.getItemStack())) {

                        boolean found = false;
                        for(Entry<CraftingItemStack, Character> st : items.entrySet()) {
                            if(st.getKey().isSameType(stack)) {
                                c = st.getValue().toString();
                                found = true;
                                break;
                            }
                        }
                        if(!found) {
                            items.put(stack, characters[curChar]);
                            c = characters[curChar].toString();
                            curChar++;
                        }
                    }

                    if(x == 0)
                        shape[y] = c;
                    else
                        shape[y] = shape[y] + c;
                }
            }

            List<CraftingItemStack> results = getResults(((Player) sender).getInventory());
            if(results.size() > 1)
                advancedData.put("extra-results", results.subList(1, results.size()));
            else if (results.isEmpty()) {
                player.printError("Results are required to create a recipe!");
                return;
            }

            try {
                RecipeManager.Recipe recipe = RecipeManager.INSTANCE.new Recipe(name, type, items, Arrays.asList(shape), results.get(0), advancedData);
                RecipeManager.INSTANCE.addRecipe(recipe);
                if (CustomCrafting.INSTANCE == null) {
                    player.printError("You do not have CustomCrafting enabled, or Java has bugged and unloaded it (Did you use /reload?)!");
                    return;
                }
                CustomCrafting.INSTANCE.addRecipe(recipe);
                player.print("Successfully added a new " + type.name() + " recipe!");
            } catch (Exception e) {
                player.printError("Error adding recipe! See console for more details!");
                BukkitUtil.printStacktrace(e);
            }

        } else if (type == RecipeType.SHAPELESS || type == RecipeType.FURNACE) {

            ArrayList<CraftingItemStack> ingredients = new ArrayList<CraftingItemStack>();

            for(ItemStack slot : slots) {

                if(!ItemUtil.isStackValid(slot))
                    continue;

                CraftingItemStack stack = new CraftingItemStack(slot.clone());

                boolean used = false;
                for(CraftingItemStack compare : ingredients) {

                    if(compare.isSameType(stack)) {
                        ingredients.set(ingredients.indexOf(compare), compare.add(stack));
                        used = true;
                        break;
                    }
                }

                if(!used)
                    ingredients.add(stack);
            }

            List<CraftingItemStack> results = getResults(((Player) sender).getInventory());
            if(results.size() > 1)
                advancedData.put("extra-results", results.subList(1, results.size()));
            else if (results.isEmpty()) {
                player.printError("Results are required to create a recipe!");
                return;
            }

            try {
                RecipeManager.Recipe recipe = RecipeManager.INSTANCE.new Recipe(name, type, ingredients, results.get(0), advancedData);
                RecipeManager.INSTANCE.addRecipe(recipe);
                CustomCrafting.INSTANCE.addRecipe(recipe);
                player.print("Successfully added a new " + type.name() + " recipe!");
            } catch (Exception e) {
                player.printError("Error adding recipe! See console for more details!");
                BukkitUtil.printStacktrace(e);
            }
        }
View Full Code Here

Examples of mekanism.common.IFactory.RecipeType

      handleSecondaryFuel();
      sortInventory();

      if(inventory[2] != null && inventory[3] == null)
      {
        RecipeType toSet = null;

        for(RecipeType type : RecipeType.values())
        {
          if(inventory[2].isItemEqual(type.getStack()))
          {
            toSet = type;
            break;
          }
        }

        if(toSet != null && recipeType != toSet.ordinal())
        {
          if(recipeTicks < RECIPE_TICKS_REQUIRED)
          {
            recipeTicks++;
          }
          else if(recipeTicks == RECIPE_TICKS_REQUIRED)
          {
            recipeTicks = 0;
           
            ItemStack returnStack = getMachineStack();
            IUpgradeManagement mgmt = (IUpgradeManagement)inventory[2].getItem();
           
            ((IUpgradeManagement)returnStack.getItem()).setEnergyMultiplier(mgmt.getEnergyMultiplier(inventory[2]), returnStack);
            ((IUpgradeManagement)returnStack.getItem()).setSpeedMultiplier(mgmt.getSpeedMultiplier(inventory[2]), returnStack);

            inventory[2] = null;
            inventory[3] = returnStack;

            recipeType = toSet.ordinal();
            gasTank.setGas(null);

            worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, getBlockType());

            MekanismUtils.saveChunk(this);
View Full Code Here

Examples of omnom.jaxb.RecipeType

                Integer.parseInt(timeTextField.getText());
            } catch (Exception ex) {
                JOptionPane.showMessageDialog(this, "You can't add anything that isn't a number in the 'Preparation Time' Field");
                return;
            }
            RecipeType recipe = new RecipeType();
            recipe.setName(nameTextField.getText());
            recipe.setServes(Integer.parseInt(servesTextField.getText()));
            recipe.setPrepareTime(Integer.parseInt(timeTextField.getText()));
            List<IngredientType> temp = recipe.getIngredients();
            temp.addAll(ingredients);
            List<String> steps = recipe.getSteps();
            String[] raw = jTextArea1.getText().replaceAll("\t", "").split("\n");
            for (String s : raw) {
                if (!s.equals("")) {
                    steps.add(s);
                }
View Full Code Here

Examples of omnom.jaxb.RecipeType

            recipeList.setSelectedIndex(lastClicked);
        }
        if (DatabaseHandler.isConnected()) {
            int index = recipeList.locationToIndex(evt.getPoint());
            if (index >= 0) {
                RecipeType recipe = DatabaseHandler.recipeByNum(DatabaseHandler.getRecipeByName((String) recipeListModel.get(index)));
                while (ingredientModel.getRowCount() > 0) {
                    ingredientModel.removeRow(0);
                }
                List<IngredientType> ingredients = recipe.getIngredients();
                for (IngredientType i : ingredients) {
                    String[] temp = new String[2];
                    temp[0] = i.getName();
                    if (i.getNumerator() == 0) {
                        temp[1] = "";
                    } else if (i.getDenominator() == 0) {
                        temp[1] = "" + i.getNumerator();
                    } else {
                        temp[1] = i.getNumerator() + "/" + i.getDenominator();
                    }
                    temp[1] += " " + i.getUnit();
                    ingredientModel.addRow(temp);
                }
                int counter = 1;
                String instructions = "";
                for (String s : recipe.getSteps()) {
                    instructions += counter + ":   " + s + "\n\n";
                    counter++;
                }
                instructionTextField.setText(instructions);
            }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.