Set up recipe datagen

This commit is contained in:
Sollace 2024-03-20 21:38:42 +00:00
parent 7d59e1e0bf
commit 1e8b6ebaab
No known key found for this signature in database
GPG key ID: E52FACE7B5C773DB
41 changed files with 123 additions and 589 deletions

View file

@ -0,0 +1,21 @@
package com.minelittlepony.unicopia.datagen;
import com.minelittlepony.unicopia.item.UItems;
import net.minecraft.item.Item;
public interface ItemFamilies {
Item[] MUSIC_DISCS = {
UItems.MUSIC_DISC_CRUSADE, UItems.MUSIC_DISC_FUNK, UItems.MUSIC_DISC_PET, UItems.MUSIC_DISC_POPULAR
};
Item[] POLEARMS = {
UItems.WOODEN_POLEARM, UItems.STONE_POLEARM, UItems.IRON_POLEARM, UItems.GOLDEN_POLEARM, UItems.DIAMOND_POLEARM, UItems.NETHERITE_POLEARM
};
Item[] HORSE_SHOES = {
UItems.IRON_HORSE_SHOE, UItems.GOLDEN_HORSE_SHOE, UItems.COPPER_HORSE_SHOE, UItems.NETHERITE_HORSE_SHOE
};
Item[] BASKETS = {
UItems.ACACIA_BASKET, UItems.BAMBOO_BASKET, UItems.BIRCH_BASKET, UItems.CHERRY_BASKET, UItems.DARK_OAK_BASKET,
UItems.JUNGLE_BASKET, UItems.MANGROVE_BASKET, UItems.OAK_BASKET, UItems.PALM_BASKET, UItems.SPRUCE_BASKET
};
}

View file

@ -0,0 +1,22 @@
package com.minelittlepony.unicopia.datagen;
import com.minelittlepony.unicopia.block.UBlocks;
import net.minecraft.data.family.BlockFamily;
public interface UBlockFamilies {
BlockFamily PALM = new BlockFamily.Builder(UBlocks.PALM_PLANKS)
.slab(UBlocks.PALM_SLAB).stairs(UBlocks.PALM_STAIRS).fence(UBlocks.PALM_FENCE).fenceGate(UBlocks.PALM_FENCE_GATE)
.button(UBlocks.PALM_BUTTON).pressurePlate(UBlocks.PALM_PRESSURE_PLATE).sign(UBlocks.PALM_SIGN, UBlocks.PALM_WALL_SIGN)
.door(UBlocks.PALM_DOOR).trapdoor(UBlocks.PALM_TRAPDOOR)
.group("wooden").unlockCriterionName("has_planks")
.build();
BlockFamily ZAP = new BlockFamily.Builder(UBlocks.ZAP_PLANKS)
.slab(UBlocks.ZAP_SLAB).stairs(UBlocks.ZAP_STAIRS).fence(UBlocks.ZAP_FENCE).fenceGate(UBlocks.ZAP_FENCE_GATE)
.group("wooden").unlockCriterionName("has_planks")
.build();
BlockFamily WAXED_ZAP = new BlockFamily.Builder(UBlocks.WAXED_ZAP_PLANKS)
.slab(UBlocks.WAXED_ZAP_SLAB).stairs(UBlocks.WAXED_ZAP_STAIRS).fence(UBlocks.WAXED_ZAP_FENCE).fenceGate(UBlocks.WAXED_ZAP_FENCE_GATE)
.group("wooden").unlockCriterionName("has_planks")
.build();
}

View file

@ -16,6 +16,7 @@ import com.minelittlepony.unicopia.block.ShellsBlock;
import com.minelittlepony.unicopia.block.SlimePustuleBlock;
import com.minelittlepony.unicopia.block.UBlocks;
import com.minelittlepony.unicopia.block.zap.ZapAppleLeavesBlock;
import com.minelittlepony.unicopia.datagen.UBlockFamilies;
import com.minelittlepony.unicopia.server.world.Tree;
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
@ -36,7 +37,6 @@ import net.minecraft.data.client.TextureMap;
import net.minecraft.data.client.TexturedModel;
import net.minecraft.data.client.VariantsBlockStateSupplier;
import net.minecraft.data.client.When;
import net.minecraft.data.family.BlockFamily;
import net.minecraft.item.Item;
import net.minecraft.item.Items;
import net.minecraft.registry.Registries;
@ -121,12 +121,7 @@ public class UBlockStateModelGenerator extends BlockStateModelGenerator {
// palm wood
registerLog(UBlocks.PALM_LOG).log(UBlocks.PALM_LOG).wood(UBlocks.PALM_WOOD);
registerLog(UBlocks.STRIPPED_PALM_LOG).log(UBlocks.STRIPPED_PALM_LOG).wood(UBlocks.STRIPPED_PALM_WOOD);
registerCubeAllModelTexturePool(UBlocks.PALM_PLANKS).family(new BlockFamily.Builder(UBlocks.PALM_PLANKS)
.slab(UBlocks.PALM_SLAB).stairs(UBlocks.PALM_STAIRS).fence(UBlocks.PALM_FENCE).fenceGate(UBlocks.PALM_FENCE_GATE)
.button(UBlocks.PALM_BUTTON).pressurePlate(UBlocks.PALM_PRESSURE_PLATE).sign(UBlocks.PALM_SIGN, UBlocks.PALM_WALL_SIGN)
.door(UBlocks.PALM_DOOR).trapdoor(UBlocks.PALM_TRAPDOOR)
.group("wooden").unlockCriterionName("has_planks")
.build());
registerCubeAllModelTexturePool(UBlocks.PALM_PLANKS).family(UBlockFamilies.PALM);
registerHangingSign(UBlocks.STRIPPED_PALM_LOG, UBlocks.PALM_HANGING_SIGN, UBlocks.PALM_WALL_HANGING_SIGN);
registerSimpleCubeAll(UBlocks.PALM_LEAVES);
@ -137,15 +132,7 @@ public class UBlockStateModelGenerator extends BlockStateModelGenerator {
registerLog(UBlocks.STRIPPED_ZAP_LOG)
.log(UBlocks.STRIPPED_ZAP_LOG).wood(UBlocks.STRIPPED_ZAP_WOOD)
.log(UBlocks.WAXED_STRIPPED_ZAP_LOG).wood(UBlocks.WAXED_STRIPPED_ZAP_WOOD);
registerCubeAllModelTexturePool(UBlocks.ZAP_PLANKS)
.family(new BlockFamily.Builder(UBlocks.ZAP_PLANKS)
.slab(UBlocks.ZAP_SLAB).stairs(UBlocks.ZAP_STAIRS).fence(UBlocks.ZAP_FENCE).fenceGate(UBlocks.ZAP_FENCE_GATE)
.group("wooden").unlockCriterionName("has_planks")
.build())
.same(UBlocks.WAXED_ZAP_PLANKS).family(new BlockFamily.Builder(UBlocks.WAXED_ZAP_PLANKS)
.slab(UBlocks.WAXED_ZAP_SLAB).stairs(UBlocks.WAXED_ZAP_STAIRS).fence(UBlocks.WAXED_ZAP_FENCE).fenceGate(UBlocks.WAXED_ZAP_FENCE_GATE)
.group("wooden").unlockCriterionName("has_planks")
.build());
registerCubeAllModelTexturePool(UBlocks.ZAP_PLANKS).family(UBlockFamilies.ZAP).same(UBlocks.WAXED_ZAP_PLANKS).family(UBlockFamilies.WAXED_ZAP);
registerZapLeaves(UBlocks.ZAP_LEAVES);
registerSingleton(UBlocks.FLOWERING_ZAP_LEAVES, TexturedModel.LEAVES);
registerStateWithModelReference(UBlocks.ZAP_LEAVES_PLACEHOLDER, Blocks.AIR);

View file

@ -8,6 +8,7 @@ import com.minelittlepony.unicopia.UConventionalTags;
import com.minelittlepony.unicopia.UTags;
import com.minelittlepony.unicopia.block.UBlocks;
import com.minelittlepony.unicopia.datagen.Datagen;
import com.minelittlepony.unicopia.datagen.ItemFamilies;
import com.minelittlepony.unicopia.item.BedsheetsItem;
import com.minelittlepony.unicopia.item.UItems;
@ -28,6 +29,8 @@ import net.minecraft.registry.tag.TagKey;
import net.minecraft.util.Identifier;
public class UItemTagProvider extends FabricTagProvider.ItemTagProvider {
private final UBlockTagProvider blockTagProvider;
public UItemTagProvider(FabricDataOutput output, CompletableFuture<RegistryWrapper.WrapperLookup> registriesFuture, UBlockTagProvider blockTagProvider) {
@ -57,21 +60,18 @@ public class UItemTagProvider extends FabricTagProvider.ItemTagProvider {
getOrCreateTagBuilder(ItemTags.CHEST_BOATS).add(UItems.PALM_CHEST_BOAT);
getOrCreateTagBuilder(ItemTags.BOATS).add(UItems.PALM_BOAT);
getOrCreateTagBuilder(ItemTags.MUSIC_DISCS).add(UItems.MUSIC_DISC_CRUSADE, UItems.MUSIC_DISC_FUNK, UItems.MUSIC_DISC_PET, UItems.MUSIC_DISC_POPULAR);
getOrCreateTagBuilder(ItemTags.MUSIC_DISCS).add(ItemFamilies.MUSIC_DISCS);
getOrCreateTagBuilder(ItemTags.CREEPER_DROP_MUSIC_DISCS).add(UItems.MUSIC_DISC_CRUSADE, UItems.MUSIC_DISC_FUNK, UItems.MUSIC_DISC_PET, UItems.MUSIC_DISC_POPULAR);
getOrCreateTagBuilder(ItemTags.SIGNS).add(UBlocks.PALM_SIGN.asItem());
getOrCreateTagBuilder(ItemTags.HANGING_SIGNS).add(UBlocks.PALM_HANGING_SIGN.asItem());
getOrCreateTagBuilder(UTags.HORSE_SHOES).add(UItems.IRON_HORSE_SHOE, UItems.GOLDEN_HORSE_SHOE, UItems.COPPER_HORSE_SHOE, UItems.NETHERITE_HORSE_SHOE);
getOrCreateTagBuilder(UTags.POLEARMS).add(UItems.WOODEN_POLEARM, UItems.STONE_POLEARM, UItems.IRON_POLEARM, UItems.GOLDEN_POLEARM, UItems.DIAMOND_POLEARM, UItems.NETHERITE_POLEARM);
getOrCreateTagBuilder(UTags.HORSE_SHOES).add(ItemFamilies.HORSE_SHOES);
getOrCreateTagBuilder(UTags.POLEARMS).add(ItemFamilies.POLEARMS);
getOrCreateTagBuilder(ItemTags.TOOLS).addTag(UTags.HORSE_SHOES).addTag(UTags.POLEARMS);
getOrCreateTagBuilder(UTags.BASKETS).add(
UItems.ACACIA_BASKET, UItems.BAMBOO_BASKET, UItems.BIRCH_BASKET, UItems.CHERRY_BASKET, UItems.DARK_OAK_BASKET,
UItems.JUNGLE_BASKET, UItems.MANGROVE_BASKET, UItems.OAK_BASKET, UItems.PALM_BASKET, UItems.SPRUCE_BASKET
);
getOrCreateTagBuilder(UTags.BASKETS).add(ItemFamilies.BASKETS);
getOrCreateTagBuilder(UTags.BADGES).add(Race.REGISTRY.stream()
.map(race -> race.getId().withPath(p -> p + "_badge"))
.flatMap(id -> Registries.ITEM.getOrEmpty(id).stream())

View file

@ -1,10 +1,29 @@
package com.minelittlepony.unicopia.datagen.providers;
import java.util.Arrays;
import java.util.NoSuchElementException;
import java.util.function.Consumer;
import com.minelittlepony.unicopia.UTags;
import com.minelittlepony.unicopia.block.UBlocks;
import com.minelittlepony.unicopia.datagen.ItemFamilies;
import com.minelittlepony.unicopia.datagen.UBlockFamilies;
import com.minelittlepony.unicopia.item.UItems;
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider;
import net.minecraft.block.Block;
import net.minecraft.data.server.recipe.RecipeJsonProvider;
import net.minecraft.data.server.recipe.RecipeProvider;
import net.minecraft.data.server.recipe.ShapedRecipeJsonBuilder;
import net.minecraft.data.server.recipe.ShapelessRecipeJsonBuilder;
import net.minecraft.data.server.recipe.VanillaRecipeProvider;
import net.minecraft.item.Item;
import net.minecraft.item.ItemConvertible;
import net.minecraft.item.Items;
import net.minecraft.recipe.book.RecipeCategory;
import net.minecraft.registry.Registries;
import net.minecraft.util.Identifier;
public class URecipeProvider extends FabricRecipeProvider {
public URecipeProvider(FabricDataOutput output) {
@ -13,7 +32,58 @@ public class URecipeProvider extends FabricRecipeProvider {
@Override
public void generate(Consumer<RecipeJsonProvider> exporter) {
Arrays.stream(ItemFamilies.BASKETS).forEach(basket -> {
offerBasketRecipe(exporter, basket, getMaterial(basket, "_basket", "_planks"));
});
offerBoatRecipe(exporter, UItems.PALM_BOAT, UBlocks.PALM_PLANKS);
offerChestBoatRecipe(exporter, UItems.PALM_CHEST_BOAT, UItems.PALM_BOAT);
offerHangingSignRecipe(exporter, UBlocks.PALM_HANGING_SIGN, UBlocks.PALM_PLANKS);
offerPlanksRecipe(exporter, UBlocks.PALM_PLANKS, UTags.Items.PALM_LOGS, 4);
offerPlanksRecipe(exporter, UBlocks.ZAP_PLANKS, UTags.Items.ZAP_LOGS, 4);
offerPlanksRecipe(exporter, UBlocks.WAXED_ZAP_PLANKS, UTags.Items.WAXED_ZAP_LOGS, 4);
offerBarkBlockRecipe(exporter, UBlocks.PALM_WOOD, UBlocks.PALM_LOG);
offerBarkBlockRecipe(exporter, UBlocks.ZAP_WOOD, UBlocks.ZAP_LOG);
offerBarkBlockRecipe(exporter, UBlocks.WAXED_ZAP_WOOD, UBlocks.WAXED_ZAP_LOG);
generateFamily(exporter, UBlockFamilies.PALM);
generateFamily(exporter, UBlockFamilies.ZAP);
generateFamily(exporter, UBlockFamilies.WAXED_ZAP);
offerWaxingRecipes(exporter);
}
private static Item getMaterial(Item output, String toStrip, String suffex) {
Identifier id = Registries.ITEM.getId(output).withPath(p -> p.replace(toStrip, "") + suffex);
return Registries.ITEM.getOrEmpty(id)
.or(() -> Registries.ITEM.getOrEmpty(new Identifier(Identifier.DEFAULT_NAMESPACE, id.getPath())))
.orElseThrow(() -> new NoSuchElementException("No item with id " + id));
}
public static void offerBasketRecipe(Consumer<RecipeJsonProvider> exporter, ItemConvertible output, ItemConvertible input) {
ShapedRecipeJsonBuilder.create(RecipeCategory.TRANSPORTATION, output)
.input(Character.valueOf('#'), input)
.pattern("# #")
.pattern("# #")
.pattern("###")
.group("basket")
.criterion(VanillaRecipeProvider.hasItem(input), VanillaRecipeProvider.conditionsFromItem(input))
.offerTo(exporter);
}
public static void offerWaxingRecipes(Consumer<RecipeJsonProvider> exporter) {
UBlockFamilies.WAXED_ZAP.getVariants().forEach((variant, output) -> {
Block input = UBlockFamilies.ZAP.getVariant(variant);
offerWaxingRecipe(exporter, output, input);
});
offerWaxingRecipe(exporter, UBlocks.WAXED_ZAP_PLANKS, UBlocks.ZAP_PLANKS);
offerWaxingRecipe(exporter, UBlocks.WAXED_ZAP_WOOD, UBlocks.ZAP_WOOD);
}
public static void offerWaxingRecipe(Consumer<RecipeJsonProvider> exporter, ItemConvertible output, ItemConvertible input) {
ShapelessRecipeJsonBuilder.create(RecipeCategory.BUILDING_BLOCKS, output)
.input(input)
.input(Items.HONEYCOMB).group(RecipeProvider.getItemPath(output))
.criterion(RecipeProvider.hasItem(input), RecipeProvider.conditionsFromItem(input))
.offerTo(exporter, RecipeProvider.convertBetween(output, Items.HONEYCOMB));
}
}

View file

@ -1,18 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"group": "basket",
"key": {
"#": {
"item": "minecraft:acacia_planks"
}
},
"pattern": [
"# #",
"# #",
"###"
],
"result": {
"count": 1,
"item": "unicopia:acacia_basket"
}
}

View file

@ -1,18 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"group": "basket",
"key": {
"#": {
"item": "minecraft:bamboo_planks"
}
},
"pattern": [
"# #",
"# #",
"###"
],
"result": {
"count": 1,
"item": "unicopia:bamboo_basket"
}
}

View file

@ -1,18 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"group": "basket",
"key": {
"#": {
"item": "minecraft:birch_planks"
}
},
"pattern": [
"# #",
"# #",
"###"
],
"result": {
"count": 1,
"item": "unicopia:birch_basket"
}
}

View file

@ -1,18 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"group": "basket",
"key": {
"#": {
"item": "minecraft:cherry_planks"
}
},
"pattern": [
"# #",
"# #",
"###"
],
"result": {
"count": 1,
"item": "unicopia:cherry_basket"
}
}

View file

@ -1,18 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"group": "basket",
"key": {
"#": {
"item": "minecraft:dark_oak_planks"
}
},
"pattern": [
"# #",
"# #",
"###"
],
"result": {
"count": 1,
"item": "unicopia:dark_oak_basket"
}
}

View file

@ -1,18 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"group": "basket",
"key": {
"#": {
"item": "minecraft:jungle_planks"
}
},
"pattern": [
"# #",
"# #",
"###"
],
"result": {
"count": 1,
"item": "unicopia:jungle_basket"
}
}

View file

@ -1,18 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"group": "basket",
"key": {
"#": {
"item": "minecraft:mangrove_planks"
}
},
"pattern": [
"# #",
"# #",
"###"
],
"result": {
"count": 1,
"item": "unicopia:mangrove_basket"
}
}

View file

@ -1,18 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"group": "basket",
"key": {
"#": {
"item": "minecraft:oak_planks"
}
},
"pattern": [
"# #",
"# #",
"###"
],
"result": {
"count": 1,
"item": "unicopia:oak_basket"
}
}

View file

@ -1,18 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"group": "basket",
"key": {
"#": {
"item": "unicopia:palm_planks"
}
},
"pattern": [
"# #",
"# #",
"###"
],
"result": {
"count": 1,
"item": "unicopia:palm_basket"
}
}

View file

@ -1,16 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"group": "boat",
"key": {
"#": {
"item": "unicopia:palm_planks"
}
},
"pattern": [
"# #",
"###"
],
"result": {
"item": "unicopia:palm_boat"
}
}

View file

@ -1,12 +0,0 @@
{
"type": "minecraft:crafting_shapeless",
"group": "wooden_button",
"ingredients": [
{
"item": "unicopia:palm_planks"
}
],
"result": {
"item": "unicopia:palm_button"
}
}

View file

@ -1,15 +0,0 @@
{
"type": "minecraft:crafting_shapeless",
"group": "chest_boat",
"ingredients": [
{
"item": "minecraft:chest"
},
{
"item": "unicopia:palm_boat"
}
],
"result": {
"item": "unicopia:palm_chest_boat"
}
}

View file

@ -1,18 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"group": "wooden_door",
"key": {
"#": {
"item": "unicopia:palm_planks"
}
},
"pattern": [
"##",
"##",
"##"
],
"result": {
"count": 3,
"item": "unicopia:palm_door"
}
}

View file

@ -1,20 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"group": "wooden_fence",
"key": {
"#": {
"item": "minecraft:stick"
},
"W": {
"item": "unicopia:palm_planks"
}
},
"pattern": [
"W#W",
"W#W"
],
"result": {
"count": 3,
"item": "unicopia:palm_fence"
}
}

View file

@ -1,19 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"group": "wooden_fence_gate",
"key": {
"#": {
"item": "minecraft:stick"
},
"W": {
"item": "unicopia:palm_planks"
}
},
"pattern": [
"#W#",
"#W#"
],
"result": {
"item": "unicopia:palm_fence_gate"
}
}

View file

@ -1,21 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"group": "wooden_sign",
"key": {
"#": {
"item": "unicopia:palm_planks"
},
"|": {
"item": "minecraft:chain"
}
},
"pattern": [
"| |",
"###",
"###"
],
"result": {
"count": 3,
"item": "unicopia:palm_hanging_sign"
}
}

View file

@ -1,12 +0,0 @@
{
"type": "minecraft:crafting_shapeless",
"category": "building",
"group": "planks",
"ingredients": [
{ "tag": "unicopia:palm_logs" }
],
"result": {
"item": "unicopia:palm_planks",
"count": 4
}
}

View file

@ -1,15 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"group": "wooden_pressure_plate",
"key": {
"#": {
"item": "unicopia:palm_planks"
}
},
"pattern": [
"##"
],
"result": {
"item": "unicopia:palm_pressure_plate"
}
}

View file

@ -1,21 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"group": "wooden_sign",
"key": {
"#": {
"item": "unicopia:palm_planks"
},
"X": {
"item": "minecraft:stick"
}
},
"pattern": [
"###",
"###",
" X "
],
"result": {
"count": 3,
"item": "unicopia:palm_sign"
}
}

View file

@ -1,16 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"group": "wooden_slab",
"key": {
"#": {
"item": "unicopia:palm_planks"
}
},
"pattern": [
"###"
],
"result": {
"count": 6,
"item": "unicopia:palm_slab"
}
}

View file

@ -1,18 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"group": "wooden_stairs",
"key": {
"#": {
"item": "unicopia:palm_planks"
}
},
"pattern": [
"# ",
"## ",
"###"
],
"result": {
"count": 4,
"item": "unicopia:palm_stairs"
}
}

View file

@ -1,17 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"group": "wooden_trapdoor",
"key": {
"#": {
"item": "unicopia:palm_planks"
}
},
"pattern": [
"###",
"###"
],
"result": {
"count": 2,
"item": "unicopia:palm_trapdoor"
}
}

View file

@ -1,18 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"category": "building",
"group": "bark",
"pattern": [
"##",
"##"
],
"key": {
"#": {
"item": "unicopia:palm_log"
}
},
"result": {
"count": 3,
"item": "unicopia:palm_wood"
}
}

View file

@ -1,18 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"group": "basket",
"key": {
"#": {
"item": "minecraft:spruce_planks"
}
},
"pattern": [
"# #",
"# #",
"###"
],
"result": {
"count": 1,
"item": "unicopia:spruce_basket"
}
}

View file

@ -1,8 +0,0 @@
{
"type": "minecraft:crafting_shapeless",
"ingredients": [
{ "item": "unicopia:zap_fence" },
{ "item": "minecraft:honeycomb" }
],
"result": { "item": "unicopia:waxed_zap_fence" }
}

View file

@ -1,8 +0,0 @@
{
"type": "minecraft:crafting_shapeless",
"ingredients": [
{ "item": "unicopia:zap_fence_gate" },
{ "item": "minecraft:honeycomb" }
],
"result": { "item": "unicopia:waxed_zap_fence_gate" }
}

View file

@ -1,8 +0,0 @@
{
"type": "minecraft:crafting_shapeless",
"ingredients": [
{ "item": "unicopia:zap_planks" },
{ "item": "minecraft:honeycomb" }
],
"result": { "item": "unicopia:waxed_zap_planks" }
}

View file

@ -1,8 +0,0 @@
{
"type": "minecraft:crafting_shapeless",
"ingredients": [
{ "item": "unicopia:zap_slab" },
{ "item": "minecraft:honeycomb" }
],
"result": { "item": "unicopia:waxed_zap_slab" }
}

View file

@ -1,8 +0,0 @@
{
"type": "minecraft:crafting_shapeless",
"ingredients": [
{ "item": "unicopia:zap_stairs" },
{ "item": "minecraft:honeycomb" }
],
"result": { "item": "unicopia:waxed_zap_stairs" }
}

View file

@ -1,8 +0,0 @@
{
"type": "minecraft:crafting_shapeless",
"ingredients": [
{ "item": "unicopia:zap_wood" },
{ "item": "minecraft:honeycomb" }
],
"result": { "item": "unicopia:waxed_zap_wood" }
}

View file

@ -1,20 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"group": "wooden_fence",
"key": {
"#": {
"item": "minecraft:stick"
},
"W": {
"item": "unicopia:zap_planks"
}
},
"pattern": [
"W#W",
"W#W"
],
"result": {
"count": 3,
"item": "unicopia:zap_fence"
}
}

View file

@ -1,19 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"group": "wooden_fence_gate",
"key": {
"#": {
"item": "minecraft:stick"
},
"W": {
"item": "unicopia:zap_planks"
}
},
"pattern": [
"#W#",
"#W#"
],
"result": {
"item": "unicopia:zap_fence_gate"
}
}

View file

@ -1,12 +0,0 @@
{
"type": "minecraft:crafting_shapeless",
"category": "building",
"group": "planks",
"ingredients": [
{ "tag": "unicopia:zap_logs" }
],
"result": {
"item": "unicopia:zap_planks",
"count": 4
}
}

View file

@ -1,16 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"group": "wooden_slab",
"key": {
"#": {
"item": "unicopia:zap_planks"
}
},
"pattern": [
"###"
],
"result": {
"count": 6,
"item": "unicopia:zap_slab"
}
}

View file

@ -1,18 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"group": "wooden_stairs",
"key": {
"#": {
"item": "unicopia:zap_planks"
}
},
"pattern": [
"# ",
"## ",
"###"
],
"result": {
"count": 4,
"item": "unicopia:zap_stairs"
}
}

View file

@ -1,15 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"##",
"##"
],
"key": {
"#": {
"item": "unicopia:zap_log"
}
},
"result": {
"item": "unicopia:zap_wood"
}
}