net.minecraft.recipe.RecipeType Java Examples

The following examples show how to use net.minecraft.recipe.RecipeType. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: GalacticraftRecipes.java    From Galacticraft-Rewoven with MIT License 5 votes vote down vote up
private static <T extends Recipe<?>> RecipeType<T> registerType(String id) {
    return Registry.register(Registry.RECIPE_TYPE, new Identifier(Constants.MOD_ID, id), new RecipeType<T>() {
        public String toString() {
            return id;
        }
    });
}
 
Example #2
Source File: RecipeManager_scarpetMixin.java    From fabric-carpet with MIT License 5 votes vote down vote up
@Override
public List<Recipe<?>> getAllMatching(RecipeType type, Identifier output)
{
    Map<Identifier, Recipe<?>> typeRecipes = recipes.get(type);
    if (typeRecipes.containsKey(output)) return Collections.singletonList(typeRecipes.get(output));
    return Lists.newArrayList(typeRecipes.values().stream().filter(
            r -> Registry.ITEM.getId(r.getOutput().getItem()).equals(output)).collect(Collectors.toList()));
}
 
Example #3
Source File: FabricationRecipe.java    From Galacticraft-Rewoven with MIT License 4 votes vote down vote up
@Override
public RecipeType<?> getType() {
    return GalacticraftRecipes.FABRICATION_TYPE;
}
 
Example #4
Source File: ShapedCompressingRecipe.java    From Galacticraft-Rewoven with MIT License 4 votes vote down vote up
@Override
public RecipeType<?> getType() {
    return GalacticraftRecipes.SHAPED_COMPRESSING_TYPE;
}
 
Example #5
Source File: FluidRecipe.java    From the-hallow with MIT License 4 votes vote down vote up
@Override
public RecipeType<?> getType() {
	return type;
}
 
Example #6
Source File: InfusionRecipe.java    From the-hallow with MIT License 4 votes vote down vote up
@Override
public RecipeType<?> getType() {
	return Type.INSTANCE;
}
 
Example #7
Source File: DropperBlock_craftingMixin.java    From carpet-extra with GNU Lesser General Public License v3.0 4 votes vote down vote up
@Inject(method = "dispense", at = @At("HEAD"), cancellable = true)
private void tryCraft(World world_1, BlockPos blockPos_1, CallbackInfo ci)
{
    if (!CarpetExtraSettings.autoCraftingDropper) return;
    BlockPos front = blockPos_1.offset(world_1.getBlockState(blockPos_1).get(DispenserBlock.FACING));
    if (world_1.getBlockState(front).getBlock() != Blocks.CRAFTING_TABLE) return;
    DispenserBlockEntity dispenserBlockEntity_1 = (DispenserBlockEntity) world_1.getBlockEntity(blockPos_1);
    if (dispenserBlockEntity_1 == null) return;
    CraftingInventory craftingInventory = new CraftingInventory(new VoidContainer(), 3, 3);
    for (int i=0; i < 9; i++) craftingInventory.setInvStack(i, dispenserBlockEntity_1.getInvStack(i));
    CraftingRecipe recipe = world_1.getRecipeManager().getFirstMatch(RecipeType.CRAFTING, craftingInventory, world_1).orElse(null);
    if (recipe == null) return;
    // crafting it
    Vec3d target = new Vec3d(front).add(0.5, 0.2, 0.5);
    ItemStack result = recipe.craft(craftingInventory);
    spawn(world_1, target.x, target.y, target.z, result);

    // copied from CraftingResultSlot.onTakeItem()
    DefaultedList<ItemStack> defaultedList_1 = world_1.getRecipeManager().getRemainingStacks(RecipeType.CRAFTING, craftingInventory, world_1);
    for(int int_1 = 0; int_1 < defaultedList_1.size(); ++int_1) {
        ItemStack itemStack_2 = dispenserBlockEntity_1.getInvStack(int_1);
        ItemStack itemStack_3 = defaultedList_1.get(int_1);
        if (!itemStack_2.isEmpty()) {
            dispenserBlockEntity_1.takeInvStack(int_1, 1);
            itemStack_2 = dispenserBlockEntity_1.getInvStack(int_1);
        }

        if (!itemStack_3.isEmpty()) {
            if (itemStack_2.isEmpty()) {
                dispenserBlockEntity_1.setInvStack(int_1, itemStack_3);
            } else if (ItemStack.areItemsEqualIgnoreDamage(itemStack_2, itemStack_3) && ItemStack.areTagsEqual(itemStack_2, itemStack_3)) {
                itemStack_3.increment(itemStack_2.getCount());
                dispenserBlockEntity_1.setInvStack(int_1, itemStack_3);
            } else {
                spawn(world_1, target.x, target.y, target.z, itemStack_3);
            }
        }
    }
    Vec3d vec = new Vec3d(blockPos_1).add(0.5, 0.5, 0.5);
    ServerWorld world = (ServerWorld) world_1;
    world.playSound(null, blockPos_1, SoundEvents.ENTITY_VILLAGER_WORK_MASON, SoundCategory.BLOCKS, 0.2f, 2.0f);
    ci.cancel();
}
 
Example #8
Source File: RecipeManagerInterface.java    From fabric-carpet with MIT License votes vote down vote up
List<Recipe<?>> getAllMatching(RecipeType type, Identifier output);