Advertisement
Guest User

Untitled

a guest
Jul 21st, 2017
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.59 KB | None | 0 0
  1. package com.prennet.boomod.sftest;
  2.  
  3. import java.util.Optional;
  4.  
  5. import org.spongepowered.api.data.key.Keys;
  6. import org.spongepowered.api.data.type.DyeColors;
  7. import org.spongepowered.api.data.type.StoneTypes;
  8. import org.spongepowered.api.item.ItemTypes;
  9. import org.spongepowered.api.item.inventory.ItemStack;
  10. import org.spongepowered.api.item.inventory.ItemStackSnapshot;
  11. import org.spongepowered.api.item.recipe.smelting.SmeltingRecipe;
  12. import org.spongepowered.api.item.recipe.smelting.SmeltingResult;
  13. import org.spongepowered.api.text.Text;
  14. import org.spongepowered.api.text.format.TextColors;
  15.  
  16. public class CopperRecipe implements SmeltingRecipe {
  17.     private ItemStackSnapshot exemplaryIngredient;
  18.     private ItemStackSnapshot exemplaryResult;
  19.     private Text              ingredientName;
  20.     private Text              resultName = Text.of(TextColors.WHITE, "Copper Nugget");
  21.     boolean                   initialized;
  22.     {
  23.         initialized = false;
  24.         ingredientName = Text.of(TextColors.WHITE, "Copper Ore"); // initialize
  25.         ItemStack ingredient = ItemStack.builder()
  26.                 .itemType(ItemTypes.STONE)
  27.                 .keyValue(Keys.STONE_TYPE, StoneTypes.GRANITE)
  28.                 .keyValue(Keys.DISPLAY_NAME, ingredientName)
  29.                 .build();
  30.         ingredientName = ingredient.get(Keys.DISPLAY_NAME).get(); // to match wrapping
  31.         // IngrediateName is applied, and retrieved back from itemstack because the retreieved
  32.         // result TEXT is structured differently than the initial TEXT applied
  33.  
  34.         exemplaryIngredient = ingredient.createSnapshot();
  35.         ItemStack result = ItemStack.builder()
  36.                 .itemType(ItemTypes.DYE)
  37.                 .keyValue(Keys.DYE_COLOR, DyeColors.BROWN)
  38.                 .keyValue(Keys.DISPLAY_NAME, resultName)
  39.                 .build();
  40.         exemplaryResult = result.createSnapshot();
  41.  
  42.  
  43.     }
  44.  
  45.     @Override
  46.     public ItemStackSnapshot getExemplaryIngredient() {
  47.         return exemplaryIngredient;
  48.     }
  49.  
  50.     @Override
  51.     public ItemStackSnapshot getExemplaryResult() {
  52.         return exemplaryResult;
  53.     }
  54.  
  55.     @Override
  56.     public Optional<SmeltingResult> getResult(ItemStackSnapshot ingredient) {
  57.         if (isValid(ingredient)) {
  58.             return Optional.of(new SmeltingResult(exemplaryResult, 0.6));
  59.         }
  60.         return Optional.empty();
  61.     }
  62.  
  63.     @Override
  64.     public boolean isValid(ItemStackSnapshot ingredient) {
  65.         if (!initialized) {
  66.  
  67.             if (!ingredient.getType().equals(ItemTypes.STONE)) {
  68.                 System.out.println("Invalid smleting, not stone");
  69.                 return false;
  70.             }
  71.             if (!ingredient.get(Keys.STONE_TYPE).get().equals(StoneTypes.GRANITE)) {
  72.                 System.out.println("Invalid smelting, not granite");
  73.                 return false;
  74.             }
  75.  
  76.             Optional<Text> name = ingredient.get(Keys.DISPLAY_NAME);
  77.             if (!name.isPresent()) {
  78.                 System.out.println("Invalid smelting, noname");
  79.                 return false;
  80.             }
  81.             if (!name.get().equals(ingredientName)) {
  82.                 System.out.println("Invalid smelting, name mismatch"); // Gets here on regular granite item over and
  83.                                                                        // over
  84.                 return false;
  85.             }
  86.             System.out.println("Valid smelting"); // Gets here when it should (over and over)
  87.             initialized = true;
  88.             return true;
  89.  
  90.         } // otherwise, passed registration testing
  91.         return false;
  92.  
  93.     }
  94.  
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement