diff --git a/gradle.properties b/gradle.properties index d6db115..7c542d5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,7 +8,7 @@ org.gradle.jvmargs=-Xmx1G loader_version=0.9.3+build.207 # Mod Properties - mod_version = 1.16.3.8 + mod_version = 1.16.3.9 maven_group = de.jottyfan.minecraft archives_base_name = quickiefabric diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/QuickieFabric.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/QuickieFabric.java index 7a3c7af..3c8eeef 100644 --- a/src/main/java/de/jottyfan/minecraft/quickiefabric/QuickieFabric.java +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/QuickieFabric.java @@ -19,5 +19,6 @@ public class QuickieFabric implements ModInitializer { RegistryManager.registerBlockEntities(); RegistryManager.registerContainer(); RegistryManager.registerFeatures(); + RegistryManager.registerLootings(); } } diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/QuickieFabricClient.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/QuickieFabricClient.java index b909283..0f120d9 100644 --- a/src/main/java/de/jottyfan/minecraft/quickiefabric/QuickieFabricClient.java +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/QuickieFabricClient.java @@ -1,11 +1,14 @@ package de.jottyfan.minecraft.quickiefabric; +import de.jottyfan.minecraft.quickiefabric.blocks.QuickieBlocks; import de.jottyfan.minecraft.quickiefabric.container.BackpackScreen; import de.jottyfan.minecraft.quickiefabric.init.RegistryManager; import net.fabricmc.api.ClientModInitializer; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; +import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap; import net.fabricmc.fabric.api.client.screenhandler.v1.ScreenRegistry; +import net.minecraft.client.render.RenderLayer; /** * @@ -17,5 +20,7 @@ public class QuickieFabricClient implements ClientModInitializer { @Override public void onInitializeClient() { ScreenRegistry.register(RegistryManager.BACKPACK_SCREEN_HANDLER, BackpackScreen::new); + // make cotton plant block transparent + BlockRenderLayerMap.INSTANCE.putBlock(QuickieBlocks.COTTONPLANT, RenderLayer.getCutout()); } } diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/BlockCottonplant.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/BlockCottonplant.java new file mode 100644 index 0000000..1a57f17 --- /dev/null +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/BlockCottonplant.java @@ -0,0 +1,44 @@ +package de.jottyfan.minecraft.quickiefabric.blocks; + +import java.util.Random; + +import de.jottyfan.minecraft.quickiefabric.items.QuickieItems; +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.block.CropBlock; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ItemConvertible; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ActionResult; +import net.minecraft.util.Hand; +import net.minecraft.util.ItemScatterer; +import net.minecraft.util.collection.DefaultedList; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; + +public class BlockCottonplant extends CropBlock { + + public BlockCottonplant() { + super(FabricBlockSettings.copy(Blocks.WHEAT)); + } + + @Override + protected ItemConvertible getSeedsItem() { + return QuickieItems.COTTONSEED; + } + + @Override + public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, + BlockHitResult hitResult) { + if (!world.isClient && isMature(state)) { + DefaultedList list = DefaultedList.of(); + list.add(new ItemStack(getSeedsItem(), new Random().nextInt(3) + 1)); + list.add(new ItemStack(QuickieItems.COTTON, new Random().nextFloat() > 0.9f ? 2 : 1)); + world.setBlockState(pos, state.with(AGE, 0)); + ItemScatterer.spawn(world, pos, list); + } + return super.onUse(state, world, pos, player, hand, hitResult); + } +} \ No newline at end of file diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/QuickieBlocks.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/QuickieBlocks.java index 951c0ef..86d5223 100644 --- a/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/QuickieBlocks.java +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/QuickieBlocks.java @@ -17,4 +17,5 @@ public class QuickieBlocks { public static final BlockItemhoarder ITEMHOARDER = new BlockItemhoarder(); public static final BlockMonsterhoarder MONSTERHOARDER = new BlockMonsterhoarder(); public static final BlockKelpstack KELPSTACK = new BlockKelpstack(); + public static final BlockCottonplant COTTONPLANT = new BlockCottonplant(); } diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/init/RegistryManager.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/init/RegistryManager.java index 20a769b..94e46eb 100644 --- a/src/main/java/de/jottyfan/minecraft/quickiefabric/init/RegistryManager.java +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/init/RegistryManager.java @@ -18,6 +18,8 @@ import de.jottyfan.minecraft.quickiefabric.event.EventBlockBreak; import de.jottyfan.minecraft.quickiefabric.items.QuickieItems; import de.jottyfan.minecraft.quickiefabric.tools.QuickieTools; import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder; +import net.fabricmc.fabric.api.loot.v1.FabricLootPoolBuilder; +import net.fabricmc.fabric.api.loot.v1.event.LootTableLoadingCallback; import net.fabricmc.fabric.api.screenhandler.v1.ScreenHandlerRegistry; import net.minecraft.block.Block; import net.minecraft.block.Blocks; @@ -28,6 +30,9 @@ import net.minecraft.item.BlockItem; import net.minecraft.item.Item; import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemStack; +import net.minecraft.loot.ConstantLootTableRange; +import net.minecraft.loot.condition.RandomChanceLootCondition; +import net.minecraft.loot.entry.ItemEntry; import net.minecraft.screen.ScreenHandlerType; import net.minecraft.structure.rule.BlockMatchRuleTest; import net.minecraft.util.ActionResult; @@ -99,6 +104,8 @@ public class RegistryManager { stacks.add(new ItemStack(QuickieItems.PENCIL)); stacks.add(new ItemStack(QuickieItems.ROTTEN_FLESH_STRIPES)); stacks.add(new ItemStack(QuickieItems.CARROTSTACK)); + stacks.add(new ItemStack(QuickieItems.COTTON)); + stacks.add(new ItemStack(QuickieItems.COTTONSEED)); stacks.add(new ItemStack(QuickieItems.BACKPACK_BROWN)); stacks.add(new ItemStack(QuickieItems.BACKPACK_WHITE)); stacks.add(new ItemStack(QuickieItems.BACKPACK_BLACK)); @@ -152,12 +159,13 @@ public class RegistryManager { @SuppressWarnings("unchecked") public static final void registerBlockEntities() { LOGGER.debug("registering quickiefabric block entities"); - QuickieFabricBlockEntity.ITEMHOARDER = (BlockEntityType) registerBlockEntity("itemhoarderblockentity", ItemHoarderBlockEntity::new, - QuickieBlocks.ITEMHOARDER); - QuickieFabricBlockEntity.MONSTERHOARDER = (BlockEntityType) registerBlockEntity("monsterhoarderblockentity", - MonsterHoarderBlockEntity::new, QuickieBlocks.MONSTERHOARDER); - QuickieFabricBlockEntity.EMPTYLAVAHOARDER = (BlockEntityType) registerBlockEntity("emptylavahoarderblockentity", - EmptyLavaHoarderBlockEntity::new, QuickieBlocks.EMPTYLAVAHOARDER, QuickieBlocks.LAVAHOARDER); + QuickieFabricBlockEntity.ITEMHOARDER = (BlockEntityType) registerBlockEntity( + "itemhoarderblockentity", ItemHoarderBlockEntity::new, QuickieBlocks.ITEMHOARDER); + QuickieFabricBlockEntity.MONSTERHOARDER = (BlockEntityType) registerBlockEntity( + "monsterhoarderblockentity", MonsterHoarderBlockEntity::new, QuickieBlocks.MONSTERHOARDER); + QuickieFabricBlockEntity.EMPTYLAVAHOARDER = (BlockEntityType) registerBlockEntity( + "emptylavahoarderblockentity", EmptyLavaHoarderBlockEntity::new, QuickieBlocks.EMPTYLAVAHOARDER, + QuickieBlocks.LAVAHOARDER); } public static final void registerBlocks() { @@ -173,6 +181,7 @@ public class RegistryManager { registerBlock(QuickieBlocks.ITEMHOARDER, "itemhoarder"); registerBlock(QuickieBlocks.MONSTERHOARDER, "monsterhoarder"); registerBlock(QuickieBlocks.KELPSTACK, "kelpstack"); + registerBlock(QuickieBlocks.COTTONPLANT, "cottonplant"); } public static final void registerItems() { @@ -184,6 +193,8 @@ public class RegistryManager { registerItem(QuickieItems.SULPHOR, "sulphor"); registerItem(QuickieItems.ROTTEN_FLESH_STRIPES, "rotten_flesh_stripes"); registerItem(QuickieItems.CARROTSTACK, "carrotstack"); + registerItem(QuickieItems.COTTON, "cotton"); + registerItem(QuickieItems.COTTONSEED, "cottonseed"); registerItem(QuickieItems.BACKPACK_BROWN, "backpack_brown"); registerItem(QuickieItems.BACKPACK_WHITE, "backpack_white"); registerItem(QuickieItems.BACKPACK_BLACK, "backpack_black"); @@ -210,7 +221,6 @@ public class RegistryManager { } public static final void registerContainer() { -// ScreenHandlerRegistry.registerSimple(BACKPACK_CONTAINTER, (syncId, inventory) -> new BackpackScreenHandler(syncId, inventory)); } public static final void registerEvents() { @@ -242,4 +252,21 @@ public class RegistryManager { registerFeature("feature_sandsalpeter", FEATURE_SANDSALPETER); registerFeature("feature_oresandsalpeter", FEATURE_ORESANDSALPETER); } + + public static final void registerLootings() { + LootTableLoadingCallback.EVENT.register((resourceManager, lootManager, id, supplier, setter) -> { + if (isGrass(id)) { + FabricLootPoolBuilder poolBuilder = FabricLootPoolBuilder.builder().rolls(ConstantLootTableRange.create(1)) + .withCondition(RandomChanceLootCondition.builder(0.125f).build()) + .withEntry(ItemEntry.builder(QuickieItems.COTTONSEED).build()); + supplier.withPool(poolBuilder.build()); + } + }); + } + + private final static boolean isGrass(Identifier id) { + return id.equals(new Identifier("blocks/grass")) || id.equals(new Identifier("blocks/fern")) + || id.equals(new Identifier("blocks/tall_grass")); + } + } diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/items/ItemCotton.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/items/ItemCotton.java new file mode 100644 index 0000000..43ee503 --- /dev/null +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/items/ItemCotton.java @@ -0,0 +1,15 @@ +package de.jottyfan.minecraft.quickiefabric.items; + +import de.jottyfan.minecraft.quickiefabric.init.RegistryManager; +import net.minecraft.item.Item; + +/** + * + * @author jotty + * + */ +public class ItemCotton extends Item { + public ItemCotton() { + super(new Item.Settings().group(RegistryManager.QUICKIEFABRIC_GROUP).maxCount(99)); + } +} diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/items/ItemCottonseed.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/items/ItemCottonseed.java new file mode 100644 index 0000000..30c7340 --- /dev/null +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/items/ItemCottonseed.java @@ -0,0 +1,36 @@ +package de.jottyfan.minecraft.quickiefabric.items; + +import de.jottyfan.minecraft.quickiefabric.blocks.QuickieBlocks; +import de.jottyfan.minecraft.quickiefabric.init.RegistryManager; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemUsageContext; +import net.minecraft.util.ActionResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; + +/** + * + * @author jotty + * + */ +public class ItemCottonseed extends Item { + public ItemCottonseed() { + super(new Item.Settings().group(RegistryManager.QUICKIEFABRIC_GROUP).maxCount(99)); + } + + @Override + public ActionResult useOnBlock(ItemUsageContext context) { + BlockPos pos = context.getBlockPos(); + World world = context.getWorld(); + if (QuickieItems.COTTONSEED.equals(context.getStack().getItem())) { + BlockState state = world.getBlockState(pos); + if (Blocks.FARMLAND.equals(state.getBlock()) && world.getBlockState(pos.up()).isAir()) { + world.setBlockState(pos.up(), QuickieBlocks.COTTONPLANT.getDefaultState()); + context.getStack().decrement(1); + } + } + return super.useOnBlock(context); + } +} diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/items/QuickieItems.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/items/QuickieItems.java index 71754fc..b92821e 100644 --- a/src/main/java/de/jottyfan/minecraft/quickiefabric/items/QuickieItems.java +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/items/QuickieItems.java @@ -29,4 +29,6 @@ public class QuickieItems { public static final ItemBackpack BACKPACK_LIGHTBLUE = new ItemBackpack(); public static final ItemRottenFleshStripes ROTTEN_FLESH_STRIPES = new ItemRottenFleshStripes(); public static final ItemCarrotstack CARROTSTACK = new ItemCarrotstack(); + public static final ItemCotton COTTON = new ItemCotton(); + public static final ItemCottonseed COTTONSEED = new ItemCottonseed(); } diff --git a/src/main/resources/assets/quickiefabric/blockstates/cottonplant.json b/src/main/resources/assets/quickiefabric/blockstates/cottonplant.json new file mode 100644 index 0000000..d9b6251 --- /dev/null +++ b/src/main/resources/assets/quickiefabric/blockstates/cottonplant.json @@ -0,0 +1,12 @@ +{ + "variants": { + "age=0": { "model": "quickiefabric:block/cottonplant0" }, + "age=1": { "model": "quickiefabric:block/cottonplant1" }, + "age=2": { "model": "quickiefabric:block/cottonplant1" }, + "age=3": { "model": "quickiefabric:block/cottonplant2" }, + "age=4": { "model": "quickiefabric:block/cottonplant2" }, + "age=5": { "model": "quickiefabric:block/cottonplant3" }, + "age=6": { "model": "quickiefabric:block/cottonplant3" }, + "age=7": { "model": "quickiefabric:block/cottonplant4" } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiefabric/lang/de_de.json b/src/main/resources/assets/quickiefabric/lang/de_de.json index 8476693..ec02e4b 100644 --- a/src/main/resources/assets/quickiefabric/lang/de_de.json +++ b/src/main/resources/assets/quickiefabric/lang/de_de.json @@ -29,6 +29,8 @@ "item.quickiefabric.backpack_lightblue": "hellblauer Rucksack", "item.quickiefabric.rotten_flesh_stripes": "geschnittenes Gammelfleisch", "item.quickiefabric.carrotstack": "Karottenbündel", + "item.quickiefabric.cotton": "Baumwolle", + "item.quickiefabric.cottonseed": "Baumwollsaat", "block.quickiefabric.orenethersulphor": "Nether-Schwefel", "block.quickiefabric.oresalpeter": "Salpetererz", "block.quickiefabric.oresandsalpeter": "Salpetergestein", @@ -48,6 +50,7 @@ "block.quickiefabric.itemhoarder": "Itemsauger", "block.quickiefabric.monsterhoarder": "Monstersauger", "block.quickiefabric.kelpstack": "Seegrassbündel", + "block.quickiefabric.cottonplant": "Baumwollpflanze", "container.quickiefabric.backpack": "Rucksack", "msg.buildingplan.start": "beginne Konstruktionsaufnahme bei %s,%s,%s", "msg.buildingplan.end": "beende Konstruktionsaufnahme bei %s,%s,%s", diff --git a/src/main/resources/assets/quickiefabric/lang/en_us.json b/src/main/resources/assets/quickiefabric/lang/en_us.json index ffa7106..589d764 100644 --- a/src/main/resources/assets/quickiefabric/lang/en_us.json +++ b/src/main/resources/assets/quickiefabric/lang/en_us.json @@ -29,6 +29,8 @@ "item.quickiefabric.backpack_lightblue": "light blue backpack", "item.quickiefabric.rotten_flesh_stripes": "rotten flesh stripes", "item.quickiefabric.carrotstack": "a bundle of carrots", + "item.quickiefabric.cotton": "cotton", + "item.quickiefabric.cottonseed": "cotton seed", "block.quickiefabric.orenethersulphor": "nether sulfur", "block.quickiefabric.oresalpeter": "salpeter ore", "block.quickiefabric.oresandsalpeter": "salpeter stone", @@ -48,6 +50,7 @@ "block.quickiefabric.itemhoarder": "item hoarder", "block.quickiefabric.monsterhoarder": "monster hoarder", "block.quickiefabric.kelpstack": "kelp bundle", + "block.quickiefabric.cottonplant": "cotton plant", "container.quickiefabric.backpack": "backpack", "msg.buildingplan.start": "started recording of construction at %s,%s,%s", "msg.buildingplan.end": "finished recording of construction at %s,%s,%s", diff --git a/src/main/resources/assets/quickiefabric/models/block/cottonplant0.json b/src/main/resources/assets/quickiefabric/models/block/cottonplant0.json new file mode 100644 index 0000000..1828a11 --- /dev/null +++ b/src/main/resources/assets/quickiefabric/models/block/cottonplant0.json @@ -0,0 +1,6 @@ +{ + "parent":"block/cross", + "textures":{ + "cross":"quickiefabric:block/cottonplant0" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiefabric/models/block/cottonplant1.json b/src/main/resources/assets/quickiefabric/models/block/cottonplant1.json new file mode 100644 index 0000000..5802f46 --- /dev/null +++ b/src/main/resources/assets/quickiefabric/models/block/cottonplant1.json @@ -0,0 +1,6 @@ +{ + "parent":"block/cross", + "textures":{ + "cross":"quickiefabric:block/cottonplant1" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiefabric/models/block/cottonplant2.json b/src/main/resources/assets/quickiefabric/models/block/cottonplant2.json new file mode 100644 index 0000000..eb8559f --- /dev/null +++ b/src/main/resources/assets/quickiefabric/models/block/cottonplant2.json @@ -0,0 +1,6 @@ +{ + "parent":"block/cross", + "textures":{ + "cross":"quickiefabric:block/cottonplant2" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiefabric/models/block/cottonplant3.json b/src/main/resources/assets/quickiefabric/models/block/cottonplant3.json new file mode 100644 index 0000000..54b53a2 --- /dev/null +++ b/src/main/resources/assets/quickiefabric/models/block/cottonplant3.json @@ -0,0 +1,6 @@ +{ + "parent":"block/cross", + "textures":{ + "cross":"quickiefabric:block/cottonplant3" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiefabric/models/block/cottonplant4.json b/src/main/resources/assets/quickiefabric/models/block/cottonplant4.json new file mode 100644 index 0000000..f88ca26 --- /dev/null +++ b/src/main/resources/assets/quickiefabric/models/block/cottonplant4.json @@ -0,0 +1,6 @@ +{ + "parent":"block/cross", + "textures":{ + "cross":"quickiefabric:block/cottonplant4" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiefabric/models/item/cotton.json b/src/main/resources/assets/quickiefabric/models/item/cotton.json new file mode 100644 index 0000000..d7dd1a3 --- /dev/null +++ b/src/main/resources/assets/quickiefabric/models/item/cotton.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "quickiefabric:item/cotton" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiefabric/models/item/cottonplant.json b/src/main/resources/assets/quickiefabric/models/item/cottonplant.json new file mode 100644 index 0000000..518ef4a --- /dev/null +++ b/src/main/resources/assets/quickiefabric/models/item/cottonplant.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "quickiefabric:item/cottonseed" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiefabric/models/item/cottonseed.json b/src/main/resources/assets/quickiefabric/models/item/cottonseed.json new file mode 100644 index 0000000..518ef4a --- /dev/null +++ b/src/main/resources/assets/quickiefabric/models/item/cottonseed.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "quickiefabric:item/cottonseed" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiefabric/textures/block/cottonplant0.png b/src/main/resources/assets/quickiefabric/textures/block/cottonplant0.png new file mode 100644 index 0000000..afcb1ce Binary files /dev/null and b/src/main/resources/assets/quickiefabric/textures/block/cottonplant0.png differ diff --git a/src/main/resources/assets/quickiefabric/textures/block/cottonplant1.png b/src/main/resources/assets/quickiefabric/textures/block/cottonplant1.png new file mode 100644 index 0000000..1a5a64e Binary files /dev/null and b/src/main/resources/assets/quickiefabric/textures/block/cottonplant1.png differ diff --git a/src/main/resources/assets/quickiefabric/textures/block/cottonplant2.png b/src/main/resources/assets/quickiefabric/textures/block/cottonplant2.png new file mode 100644 index 0000000..a3c57c5 Binary files /dev/null and b/src/main/resources/assets/quickiefabric/textures/block/cottonplant2.png differ diff --git a/src/main/resources/assets/quickiefabric/textures/block/cottonplant3.png b/src/main/resources/assets/quickiefabric/textures/block/cottonplant3.png new file mode 100644 index 0000000..b47fdd8 Binary files /dev/null and b/src/main/resources/assets/quickiefabric/textures/block/cottonplant3.png differ diff --git a/src/main/resources/assets/quickiefabric/textures/block/cottonplant4.png b/src/main/resources/assets/quickiefabric/textures/block/cottonplant4.png new file mode 100644 index 0000000..4a296a1 Binary files /dev/null and b/src/main/resources/assets/quickiefabric/textures/block/cottonplant4.png differ diff --git a/src/main/resources/assets/quickiefabric/textures/item/cotton.png b/src/main/resources/assets/quickiefabric/textures/item/cotton.png new file mode 100644 index 0000000..c52801c Binary files /dev/null and b/src/main/resources/assets/quickiefabric/textures/item/cotton.png differ diff --git a/src/main/resources/assets/quickiefabric/textures/item/cottonseed.png b/src/main/resources/assets/quickiefabric/textures/item/cottonseed.png new file mode 100644 index 0000000..935d677 Binary files /dev/null and b/src/main/resources/assets/quickiefabric/textures/item/cottonseed.png differ diff --git a/src/main/resources/data/quickiefabric/recipes/string_from_cotton.json b/src/main/resources/data/quickiefabric/recipes/string_from_cotton.json new file mode 100644 index 0000000..6cf323f --- /dev/null +++ b/src/main/resources/data/quickiefabric/recipes/string_from_cotton.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "quickiefabric:cotton" + } + ], + "result": { + "item": "minecraft:string", + "count": 1 + } +} \ No newline at end of file