Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.prennet.boomod.sftest;
- import java.util.Optional;
- import org.spongepowered.api.data.key.Keys;
- import org.spongepowered.api.data.type.DyeColors;
- import org.spongepowered.api.data.type.StoneTypes;
- import org.spongepowered.api.item.ItemTypes;
- import org.spongepowered.api.item.inventory.ItemStack;
- import org.spongepowered.api.item.inventory.ItemStackSnapshot;
- import org.spongepowered.api.item.recipe.smelting.SmeltingRecipe;
- import org.spongepowered.api.item.recipe.smelting.SmeltingResult;
- import org.spongepowered.api.text.Text;
- import org.spongepowered.api.text.format.TextColors;
- public class CopperRecipe implements SmeltingRecipe {
- private ItemStackSnapshot exemplaryIngredient;
- private ItemStackSnapshot exemplaryResult;
- private Text ingredientName;
- private Text resultName = Text.of(TextColors.WHITE, "Copper Nugget");
- boolean initialized;
- {
- initialized = false;
- ingredientName = Text.of(TextColors.WHITE, "Copper Ore"); // initialize
- ItemStack ingredient = ItemStack.builder()
- .itemType(ItemTypes.STONE)
- .keyValue(Keys.STONE_TYPE, StoneTypes.GRANITE)
- .keyValue(Keys.DISPLAY_NAME, ingredientName)
- .build();
- ingredientName = ingredient.get(Keys.DISPLAY_NAME).get(); // to match wrapping
- // IngrediateName is applied, and retrieved back from itemstack because the retreieved
- // result TEXT is structured differently than the initial TEXT applied
- exemplaryIngredient = ingredient.createSnapshot();
- ItemStack result = ItemStack.builder()
- .itemType(ItemTypes.DYE)
- .keyValue(Keys.DYE_COLOR, DyeColors.BROWN)
- .keyValue(Keys.DISPLAY_NAME, resultName)
- .build();
- exemplaryResult = result.createSnapshot();
- }
- @Override
- public ItemStackSnapshot getExemplaryIngredient() {
- return exemplaryIngredient;
- }
- @Override
- public ItemStackSnapshot getExemplaryResult() {
- return exemplaryResult;
- }
- @Override
- public Optional<SmeltingResult> getResult(ItemStackSnapshot ingredient) {
- if (isValid(ingredient)) {
- return Optional.of(new SmeltingResult(exemplaryResult, 0.6));
- }
- return Optional.empty();
- }
- @Override
- public boolean isValid(ItemStackSnapshot ingredient) {
- if (!initialized) {
- if (!ingredient.getType().equals(ItemTypes.STONE)) {
- System.out.println("Invalid smleting, not stone");
- return false;
- }
- if (!ingredient.get(Keys.STONE_TYPE).get().equals(StoneTypes.GRANITE)) {
- System.out.println("Invalid smelting, not granite");
- return false;
- }
- Optional<Text> name = ingredient.get(Keys.DISPLAY_NAME);
- if (!name.isPresent()) {
- System.out.println("Invalid smelting, noname");
- return false;
- }
- if (!name.get().equals(ingredientName)) {
- System.out.println("Invalid smelting, name mismatch"); // Gets here on regular granite item over and
- // over
- return false;
- }
- System.out.println("Valid smelting"); // Gets here when it should (over and over)
- initialized = true;
- return true;
- } // otherwise, passed registration testing
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement