/** Registers a casting recipe for the casting basin */ public static void registerBasinCasting(ItemStack output, ItemStack cast, Fluid fluid, int amount) { RecipeMatch rm = null; if(!cast.isEmpty()) { rm = RecipeMatch.ofNBT(cast); } registerBasinCasting(new CastingRecipe(output, rm, fluid, amount)); }
nuggetOre.getRight())); TinkerRegistry.registerBasinCasting(new PreferenceCastingRecipe(blockOre.getLeft(),
TinkerRegistry.registerBasinCasting(new ItemStack(Blocks.OBSIDIAN), ItemStack.EMPTY, TinkerFluids.obsidian, Material.VALUE_Ore()); blockSeared.setItemDamage(BlockSeared.SearedType.STONE.getMeta()); TinkerRegistry.registerTableCasting(TinkerCommons.searedBrick, castIngot, TinkerFluids.searedStone, Material.VALUE_SearedMaterial); TinkerRegistry.registerBasinCasting(blockSeared, ItemStack.EMPTY, TinkerFluids.searedStone, Material.VALUE_SearedBlock); TinkerRegistry.registerBasinCasting(new CastingRecipe(searedCobble, RecipeMatch.of("cobblestone"), TinkerFluids.searedStone, Material.VALUE_SearedBlock - Material.VALUE_SearedMaterial, true, false)); TinkerRegistry.registerBasinCasting(new CastingRecipe(new ItemStack(searedFurnaceController), RecipeMatch.of(Blocks.FURNACE), new FluidStack(TinkerFluids.searedStone, Material.VALUE_SearedMaterial * 8), TinkerRegistry.registerBasinCasting(new CastingRecipe(new ItemStack(searedGlass, 1, BlockSearedGlass.GlassType.GLASS.getMeta()), RecipeMatch.of("blockGlass"), new FluidStack(TinkerFluids.searedStone, Material.VALUE_SearedMaterial * 4), TinkerRegistry.registerBasinCasting(new ItemStack(Blocks.HARDENED_CLAY), ItemStack.EMPTY, TinkerFluids.clay, Material.VALUE_BrickBlock); TinkerRegistry.registerBasinCasting(new CastingRecipe( new ItemStack(Blocks.HARDENED_CLAY), RecipeMatch.of(new ItemStack(Blocks.STAINED_HARDENED_CLAY, 1, OreDictionary.WILDCARD_VALUE)), TinkerRegistry.registerMelting(new MeltingRecipe(RecipeMatch.of("blockEmerald", Material.VALUE_Gem * 9), TinkerFluids.emerald)); TinkerRegistry.registerTableCasting(new ItemStack(Items.EMERALD), castGem, TinkerFluids.emerald, Material.VALUE_Gem); TinkerRegistry.registerBasinCasting(new ItemStack(Blocks.EMERALD_BLOCK), ItemStack.EMPTY, TinkerFluids.emerald, Material.VALUE_Gem * 9); TinkerRegistry.registerMelting(new MeltingRecipe(RecipeMatch.of("paneGlass", Material.VALUE_Glass * 6 / 16), TinkerFluids.glass)); TinkerRegistry.registerTableCasting(new CastingRecipe(new ItemStack(Blocks.GLASS_PANE), null, TinkerFluids.glass, Material.VALUE_Glass * 6 / 16, 50)); TinkerRegistry.registerBasinCasting(new CastingRecipe(new ItemStack(TinkerCommons.blockClearGlass), null, TinkerFluids.glass, Material.VALUE_Glass, 120));
@Override public void apply() { RecipeMatch rm = null; if(cast != null) { List<ItemStack> validCasts = cast.getItems().stream().map(CraftTweakerMC::getItemStack).collect(Collectors.toList()); if(validCasts.isEmpty()) CraftTweakerAPI.logInfo("Could not find matching items for " + cast.toString() + ". Substituting empty cast for recipe with output " + output.getDisplayName()); else if(validCasts.size() == 1) //Keep compat to old handler if(validCasts.get(0).getMetadata() == OreDictionary.WILDCARD_VALUE) { rm = RecipeMatch.of(validCasts, output.getCount()); } else { rm = RecipeMatch.ofNBT(validCasts.get(0), output.getCount()); } else rm = RecipeMatch.of(validCasts, output.getCount()); } if(table) TinkerRegistry.registerTableCasting(new CastingRecipeTweaker(output, rm, new FluidStack(fluid, amount), time, consumeCast, false)); else TinkerRegistry.registerBasinCasting(new CastingRecipeTweaker(output, rm, new FluidStack(fluid, amount), time, consumeCast, false)); }
public static void registerBasinCasting() { for (BasinQueue basin : TiCQueues.getBasinQueue()) { if (basin.getFluid() == null) { FluidStack fluid = getFluidForItems(basin.getFluidItem()); if (fluid != null) { basin.setFluid(fluid.getFluid()); basin.setAmount(basin.getAmount() * fluid.amount); } } if (basin.getFluid() == null) { Log.warn("Item used in basin cast recipe '" + toString(basin.getFluidItem()) + "' doesn't smelt into a fluid"); } if (!basin.getOutput().isValid()) { Log.warn("Item used in basin cast recipe '" + toString(basin.getOutput()) + "' doesn't exist"); } if (!basin.getCast().isEmpty()) { for (NNIterator<ItemStack> itr = basin.getCast().getItemStacks().fastIterator(); itr.hasNext();) { ItemStack castStack = itr.next(); TinkerRegistry.registerBasinCasting(basin.getOutput().getItemStack(), castStack, basin.getFluid(), (int) Math.ceil(basin.getAmount())); Log.debug("Tinkers.registerBasinCasting: " + toString(basin.getOutput()) + ", " + toString(castStack) + ", " + basin.getFluid().getName() + ", " + basin.getAmount()); } } else { TinkerRegistry.registerBasinCasting(basin.getOutput().getItemStack(), Prep.getEmpty(), basin.getFluid(), (int) Math.ceil(basin.getAmount())); Log.debug("Tinkers.registerBasinCasting: " + toString(basin.getOutput()) + ", (empty), " + basin.getFluid().getName() + ", " + basin.getAmount()); } } TiCQueues.getBasinQueue().clear(); }