diff --git a/.classpath b/.classpath
index be88c88..1efc791 100644
--- a/.classpath
+++ b/.classpath
@@ -12,7 +12,11 @@
-
+
+
+
+
+
diff --git a/src/main/java/de/jottyfan/quickiemod/QuickieModClient.java b/src/main/java/de/jottyfan/quickiemod/QuickieModClient.java
index 415f51d..7c3be44 100644
--- a/src/main/java/de/jottyfan/quickiemod/QuickieModClient.java
+++ b/src/main/java/de/jottyfan/quickiemod/QuickieModClient.java
@@ -1,8 +1,11 @@
package de.jottyfan.quickiemod;
+import de.jottyfan.quickiemod.blocks.QuickieBlocks;
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.minecraft.client.render.RenderLayer;
/**
*
@@ -13,5 +16,7 @@ import net.fabricmc.api.Environment;
public class QuickieModClient implements ClientModInitializer {
@Override
public void onInitializeClient() {
+ BlockRenderLayerMap.INSTANCE.putBlock(QuickieBlocks.COTTONPLANT.getBlock(), RenderLayer.getCutout());
+ BlockRenderLayerMap.INSTANCE.putBlock(QuickieBlocks.CANOLAPLANT.getBlock(), RenderLayer.getCutout());
}
}
diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockCanolaplant.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockCanolaplant.java
new file mode 100644
index 0000000..9def8ee
--- /dev/null
+++ b/src/main/java/de/jottyfan/quickiemod/blocks/BlockCanolaplant.java
@@ -0,0 +1,66 @@
+package de.jottyfan.quickiemod.blocks;
+
+import java.util.List;
+import java.util.Random;
+
+import de.jottyfan.quickiemod.items.QuickieItems;
+import net.minecraft.block.AbstractBlock;
+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.loot.context.LootContextParameterSet.Builder;
+import net.minecraft.util.ActionResult;
+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 BlockCanolaplant extends CropBlock {
+
+ public BlockCanolaplant() {
+ super(AbstractBlock.Settings.copy(Blocks.WHEAT));
+ }
+
+ @Override
+ public List getDroppedStacks(BlockState state, Builder builder) {
+ DefaultedList list = DefaultedList.of();
+ list.add(new ItemStack(getSeedsItem())); // the one from the seed
+ if (isMature(state)) {
+ list.add(new ItemStack(getSeedsItem(), new Random().nextInt(2)));
+ list.add(new ItemStack(QuickieItems.CANOLA.getItem(), new Random().nextFloat() > 0.9f ? 2 : 1));
+ }
+ return list;
+ }
+
+ private void spawnHarvested(World world, BlockPos pos, BlockState state) {
+ DefaultedList list = DefaultedList.of();
+ getDroppedStacks(state, null).forEach(itemStack -> {
+ list.add(itemStack);
+ });
+ ItemScatterer.spawn(world, pos, list);
+ }
+
+ @Override
+ public BlockState onBreak(World world, BlockPos pos, BlockState state, PlayerEntity player) {
+ spawnHarvested(world, pos, state);
+ return super.onBreak(world, pos, state, player);
+ }
+
+ @Override
+ protected ItemConvertible getSeedsItem() {
+ return QuickieItems.CANOLASEED.getItem();
+ }
+
+ @Override
+ protected ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, BlockHitResult hit) {
+ if (!world.isClient && isMature(state)) {
+ spawnHarvested(world, pos, state);
+ world.setBlockState(pos, state.with(AGE, 0));
+ }
+ return ActionResult.PASS;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/BlockCottonplant.java b/src/main/java/de/jottyfan/quickiemod/blocks/BlockCottonplant.java
new file mode 100644
index 0000000..fe82b81
--- /dev/null
+++ b/src/main/java/de/jottyfan/quickiemod/blocks/BlockCottonplant.java
@@ -0,0 +1,66 @@
+package de.jottyfan.quickiemod.blocks;
+
+import java.util.List;
+import java.util.Random;
+
+import de.jottyfan.quickiemod.items.QuickieItems;
+import net.minecraft.block.AbstractBlock;
+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.loot.context.LootContextParameterSet.Builder;
+import net.minecraft.util.ActionResult;
+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(AbstractBlock.Settings.copy(Blocks.WHEAT));
+ }
+
+ @Override
+ public List getDroppedStacks(BlockState state, Builder builder) {
+ DefaultedList list = DefaultedList.of();
+ list.add(new ItemStack(getSeedsItem())); // the one from the seed
+ if (isMature(state)) {
+ list.add(new ItemStack(getSeedsItem(), new Random().nextInt(2)));
+ list.add(new ItemStack(QuickieItems.COTTON.getItem(), new Random().nextFloat() > 0.9f ? 2 : 1));
+ }
+ return list;
+ }
+
+ private void spawnHarvested(World world, BlockPos pos, BlockState state) {
+ DefaultedList list = DefaultedList.of();
+ getDroppedStacks(state, null).forEach(itemStack -> {
+ list.add(itemStack);
+ });
+ ItemScatterer.spawn(world, pos, list);
+ }
+
+ @Override
+ public BlockState onBreak(World world, BlockPos pos, BlockState state, PlayerEntity player) {
+ spawnHarvested(world, pos, state);
+ return super.onBreak(world, pos, state, player);
+ }
+
+ @Override
+ protected ItemConvertible getSeedsItem() {
+ return QuickieItems.COTTONSEED.getItem();
+ }
+
+ @Override
+ protected ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, BlockHitResult hit) {
+ if (!world.isClient && isMature(state)) {
+ spawnHarvested(world, pos, state);
+ world.setBlockState(pos, state.with(AGE, 0));
+ }
+ return ActionResult.PASS;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/de/jottyfan/quickiemod/blocks/QuickieBlocks.java b/src/main/java/de/jottyfan/quickiemod/blocks/QuickieBlocks.java
index 6f0311c..a590bc1 100644
--- a/src/main/java/de/jottyfan/quickiemod/blocks/QuickieBlocks.java
+++ b/src/main/java/de/jottyfan/quickiemod/blocks/QuickieBlocks.java
@@ -10,13 +10,15 @@ import net.minecraft.block.Block;
public enum QuickieBlocks {
// @formatter:off
KELPSTACK(new BlockKelpstack(), "kelpstack"),
- DIRT_SALPETER(new BlockDirtSalpeter(), "dirtsalpeter"),
+ COTTONPLANT(new BlockCottonplant(), "cottonplant", false),
+ CANOLAPLANT(new BlockCanolaplant(), "canolaplant", false),
+ DIRTSALPETER(new BlockDirtSalpeter(), "dirtsalpeter"),
ORE_NETHER_SULPHOR(new BlockOreNetherSulphor(), "orenethersulphor"),
ORE_SALPETER(new BlockOreSalpeter(), "oresalpeter"),
ORE_SAND_SALPETER(new BlockSandSalpeter(), "oresandsalpeter"),
ORE_SULPHOR(new BlockOreSulphor(), "oresulphor"),
ORE_DEEPSLATESULPHOR(new BlockOreDeepslateSulphor(), "oredeepslatesulphor"),
- SAND_SALPETER(new BlockSandSalpeter(), "sandsalpeter"),
+ SANDSALPETER(new BlockSandSalpeter(), "sandsalpeter"),
BLOCKSULPHOR(new BlockSulphor(), "blocksulphor"),
BLOCKSALPETER(new BlockSalpeter(), "blocksalpeter"),
BLOCKSPEEDPOWDER(new BlockSpeedpowder(), "blockspeedpowder"),
@@ -25,10 +27,16 @@ public enum QuickieBlocks {
private final Block block;
private final String name;
+ private final Boolean add2BlockPanel;
private QuickieBlocks(Block block, String name) {
+ this(block, name, true);
+ }
+
+ private QuickieBlocks(Block block, String name, Boolean add2BlockPanel) {
this.block = block;
this.name = name;
+ this.add2BlockPanel = add2BlockPanel;
}
public final Block getBlock() {
@@ -38,4 +46,8 @@ public enum QuickieBlocks {
public final String getName() {
return name;
}
+
+ public final Boolean getAdd2BlockPanel() {
+ return add2BlockPanel;
+ }
}
diff --git a/src/main/java/de/jottyfan/quickiemod/init/RegistryManager.java b/src/main/java/de/jottyfan/quickiemod/init/RegistryManager.java
index 5fe7d21..713e92a 100644
--- a/src/main/java/de/jottyfan/quickiemod/init/RegistryManager.java
+++ b/src/main/java/de/jottyfan/quickiemod/init/RegistryManager.java
@@ -11,6 +11,7 @@ import net.fabricmc.fabric.api.biome.v1.BiomeSelectors;
import net.fabricmc.fabric.api.biome.v1.ModificationPhase;
import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup;
import net.fabricmc.fabric.api.registry.FuelRegistry;
+import net.minecraft.block.ComposterBlock;
import net.minecraft.item.BlockItem;
import net.minecraft.item.Item.Settings;
import net.minecraft.item.ItemStack;
@@ -37,7 +38,9 @@ public class RegistryManager {
stacks.add(new ItemStack(i.getItem()));
}
for (QuickieBlocks b : QuickieBlocks.values()) {
- stacks.add(new ItemStack(b.getBlock()));
+ if (b.getAdd2BlockPanel()) {
+ stacks.add(new ItemStack(b.getBlock()));
+ }
}
}).build());
}
@@ -47,6 +50,10 @@ public class RegistryManager {
for (QuickieItems i : QuickieItems.values()) {
Registry.register(Registries.ITEM, new Identifier(QuickieMod.MODID, i.getName()), i.getItem());
}
+ ComposterBlock.ITEM_TO_LEVEL_INCREASE_CHANCE.put(QuickieItems.COTTONSEED.getItem(), 0.5f);
+ ComposterBlock.ITEM_TO_LEVEL_INCREASE_CHANCE.put(QuickieItems.COTTON.getItem(), 0.75f);
+ ComposterBlock.ITEM_TO_LEVEL_INCREASE_CHANCE.put(QuickieItems.CANOLASEED.getItem(), 0.5f);
+ ComposterBlock.ITEM_TO_LEVEL_INCREASE_CHANCE.put(QuickieItems.CANOLA.getItem(), 0.75f);
FuelRegistry.INSTANCE.add(QuickieItems.SULPHOR.getItem(), 200);
FuelRegistry.INSTANCE.add(QuickieBlocks.BLOCKSULPHOR.getBlock(), 2000);
}
@@ -61,11 +68,11 @@ public class RegistryManager {
public static final void registerFeatures() {
// Overworld features
- BiomeModifications.create(new Identifier(QuickieMod.MODID, "features")).add(ModificationPhase.ADDITIONS,
- BiomeSelectors.foundInOverworld(), FeaturesManager.overworldOres());
+ BiomeModifications.create(new Identifier(QuickieMod.MODID, "features")).add(ModificationPhase.ADDITIONS, BiomeSelectors.foundInOverworld(),
+ FeaturesManager.overworldOres());
// Nether features
- BiomeModifications.create(new Identifier(QuickieMod.MODID, "nether_features")).add(ModificationPhase.ADDITIONS,
- BiomeSelectors.foundInTheNether(), FeaturesManager.netherOres());
+ BiomeModifications.create(new Identifier(QuickieMod.MODID, "nether_features")).add(ModificationPhase.ADDITIONS, BiomeSelectors.foundInTheNether(),
+ FeaturesManager.netherOres());
}
}
diff --git a/src/main/java/de/jottyfan/quickiemod/items/ItemCanola.java b/src/main/java/de/jottyfan/quickiemod/items/ItemCanola.java
new file mode 100644
index 0000000..67130f1
--- /dev/null
+++ b/src/main/java/de/jottyfan/quickiemod/items/ItemCanola.java
@@ -0,0 +1,15 @@
+package de.jottyfan.quickiemod.items;
+
+import net.minecraft.item.Item;
+
+/**
+ *
+ * @author jotty
+ *
+ */
+public class ItemCanola extends Item {
+
+ public ItemCanola() {
+ super(new Item.Settings().maxCount(64));
+ }
+}
diff --git a/src/main/java/de/jottyfan/quickiemod/items/ItemCanolabottle.java b/src/main/java/de/jottyfan/quickiemod/items/ItemCanolabottle.java
new file mode 100644
index 0000000..0d6b717
--- /dev/null
+++ b/src/main/java/de/jottyfan/quickiemod/items/ItemCanolabottle.java
@@ -0,0 +1,15 @@
+package de.jottyfan.quickiemod.items;
+
+import net.minecraft.item.Item;
+
+/**
+ *
+ * @author jotty
+ *
+ */
+public class ItemCanolabottle extends Item {
+
+ public ItemCanolabottle() {
+ super(new Item.Settings().maxCount(64));
+ }
+}
diff --git a/src/main/java/de/jottyfan/quickiemod/items/ItemCanolabottlestack.java b/src/main/java/de/jottyfan/quickiemod/items/ItemCanolabottlestack.java
new file mode 100644
index 0000000..2793024
--- /dev/null
+++ b/src/main/java/de/jottyfan/quickiemod/items/ItemCanolabottlestack.java
@@ -0,0 +1,15 @@
+package de.jottyfan.quickiemod.items;
+
+import net.minecraft.item.Item;
+
+/**
+ *
+ * @author jotty
+ *
+ */
+public class ItemCanolabottlestack extends Item {
+
+ public ItemCanolabottlestack() {
+ super(new Item.Settings().maxCount(64));
+ }
+}
diff --git a/src/main/java/de/jottyfan/quickiemod/items/ItemCanolaseed.java b/src/main/java/de/jottyfan/quickiemod/items/ItemCanolaseed.java
new file mode 100644
index 0000000..3e852fe
--- /dev/null
+++ b/src/main/java/de/jottyfan/quickiemod/items/ItemCanolaseed.java
@@ -0,0 +1,36 @@
+package de.jottyfan.quickiemod.items;
+
+import de.jottyfan.quickiemod.blocks.QuickieBlocks;
+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 ItemCanolaseed extends Item {
+
+ public ItemCanolaseed() {
+ super(new Item.Settings().maxCount(64));
+ }
+
+ @Override
+ public ActionResult useOnBlock(ItemUsageContext context) {
+ BlockPos pos = context.getBlockPos();
+ World world = context.getWorld();
+ if (QuickieItems.CANOLASEED.getItem().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.CANOLAPLANT.getBlock().getDefaultState());
+ context.getStack().decrement(1);
+ }
+ }
+ return super.useOnBlock(context);
+ }
+}
diff --git a/src/main/java/de/jottyfan/quickiemod/items/ItemCotton.java b/src/main/java/de/jottyfan/quickiemod/items/ItemCotton.java
new file mode 100644
index 0000000..aaf61b1
--- /dev/null
+++ b/src/main/java/de/jottyfan/quickiemod/items/ItemCotton.java
@@ -0,0 +1,15 @@
+package de.jottyfan.quickiemod.items;
+
+import net.minecraft.item.Item;
+
+/**
+ *
+ * @author jotty
+ *
+ */
+public class ItemCotton extends Item {
+
+ public ItemCotton() {
+ super(new Item.Settings().maxCount(64));
+ }
+}
diff --git a/src/main/java/de/jottyfan/quickiemod/items/ItemCottonseed.java b/src/main/java/de/jottyfan/quickiemod/items/ItemCottonseed.java
new file mode 100644
index 0000000..20448a9
--- /dev/null
+++ b/src/main/java/de/jottyfan/quickiemod/items/ItemCottonseed.java
@@ -0,0 +1,36 @@
+package de.jottyfan.quickiemod.items;
+
+import de.jottyfan.quickiemod.blocks.QuickieBlocks;
+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().maxCount(64));
+ }
+
+ @Override
+ public ActionResult useOnBlock(ItemUsageContext context) {
+ BlockPos pos = context.getBlockPos();
+ World world = context.getWorld();
+ if (QuickieItems.COTTONSEED.getItem().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.getBlock().getDefaultState());
+ context.getStack().decrement(1);
+ }
+ }
+ return super.useOnBlock(context);
+ }
+}
diff --git a/src/main/java/de/jottyfan/quickiemod/items/QuickieItems.java b/src/main/java/de/jottyfan/quickiemod/items/QuickieItems.java
index e817ab3..8fc2a0e 100644
--- a/src/main/java/de/jottyfan/quickiemod/items/QuickieItems.java
+++ b/src/main/java/de/jottyfan/quickiemod/items/QuickieItems.java
@@ -11,6 +11,12 @@ public enum QuickieItems {
// @formatter:off
ROTTEN_FLESH_STRIPES(new ItemRottenFleshStripes(), "rotten_flesh_stripes"),
CARROTSTACK(new ItemCarrotstack(), "carrotstack"),
+ COTTON(new ItemCotton(), "cotton"),
+ COTTONSEED(new ItemCottonseed(), "cottonseed"),
+ CANOLA(new ItemCanola(), "canola"),
+ CANOLASEED(new ItemCanolaseed(), "canolaseed"),
+ CANOLABOTTLE(new ItemCanolabottle(), "canolabottle"),
+ CANOLABOTTLESTACK(new ItemCanolabottlestack(), "canolabottlestack"),
STUB(new ItemStub(), "stub"),
SALPETER(new ItemSalpeter(), "salpeter"),
SULPHOR(new ItemSulphor(), "sulphor"),
diff --git a/src/main/resources/assets/quickiemod/blockstates/canolaplant.json b/src/main/resources/assets/quickiemod/blockstates/canolaplant.json
new file mode 100644
index 0000000..987b3c0
--- /dev/null
+++ b/src/main/resources/assets/quickiemod/blockstates/canolaplant.json
@@ -0,0 +1,12 @@
+{
+ "variants": {
+ "age=0": { "model": "quickiemod:block/canolaplant0" },
+ "age=1": { "model": "quickiemod:block/canolaplant1" },
+ "age=2": { "model": "quickiemod:block/canolaplant2" },
+ "age=3": { "model": "quickiemod:block/canolaplant3" },
+ "age=4": { "model": "quickiemod:block/canolaplant4" },
+ "age=5": { "model": "quickiemod:block/canolaplant5" },
+ "age=6": { "model": "quickiemod:block/canolaplant6" },
+ "age=7": { "model": "quickiemod:block/canolaplant7" }
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/quickiemod/blockstates/cottonplant.json b/src/main/resources/assets/quickiemod/blockstates/cottonplant.json
new file mode 100644
index 0000000..38dfbac
--- /dev/null
+++ b/src/main/resources/assets/quickiemod/blockstates/cottonplant.json
@@ -0,0 +1,12 @@
+{
+ "variants": {
+ "age=0": { "model": "quickiemod:block/cottonplant0" },
+ "age=1": { "model": "quickiemod:block/cottonplant1" },
+ "age=2": { "model": "quickiemod:block/cottonplant2" },
+ "age=3": { "model": "quickiemod:block/cottonplant3" },
+ "age=4": { "model": "quickiemod:block/cottonplant4" },
+ "age=5": { "model": "quickiemod:block/cottonplant5" },
+ "age=6": { "model": "quickiemod:block/cottonplant6" },
+ "age=7": { "model": "quickiemod:block/cottonplant7" }
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/quickiemod/blockstates/dirtsalpeter.json b/src/main/resources/assets/quickiemod/blockstates/dirtsalpeter.json
new file mode 100644
index 0000000..9bd7b2f
--- /dev/null
+++ b/src/main/resources/assets/quickiemod/blockstates/dirtsalpeter.json
@@ -0,0 +1,7 @@
+{
+ "variants": {
+ "": {
+ "model": "quickiemod:block/dirtsalpeter"
+ }
+ }
+}
diff --git a/src/main/resources/assets/quickiemod/lang/de_de.json b/src/main/resources/assets/quickiemod/lang/de_de.json
index ab4efb8..1976c10 100644
--- a/src/main/resources/assets/quickiemod/lang/de_de.json
+++ b/src/main/resources/assets/quickiemod/lang/de_de.json
@@ -69,6 +69,7 @@
"block.quickiemod.monsterhoarder": "Monstersauger",
"block.quickiemod.kelpstack": "Seegrassbündel",
"block.quickiemod.cottonplant": "Baumwollpflanze",
+ "block.quickiemod.canolaplant": "Canolapflanze",
"block.quickiemod.blocksulphor": "Schwefelblock",
"block.quickiemod.blocksalpeter": "Salpeterblock",
"block.quickiemod.blockspeedpowder": "Fluchtpulverblock",
diff --git a/src/main/resources/assets/quickiemod/lang/en_us.json b/src/main/resources/assets/quickiemod/lang/en_us.json
index d2070c8..183098b 100644
--- a/src/main/resources/assets/quickiemod/lang/en_us.json
+++ b/src/main/resources/assets/quickiemod/lang/en_us.json
@@ -69,6 +69,7 @@
"block.quickiemod.monsterhoarder": "monster hoarder",
"block.quickiemod.kelpstack": "kelp bundle",
"block.quickiemod.cottonplant": "cotton plant",
+ "block.quickiemod.canolaplant": "canola plant",
"block.quickiemod.blocksulphor": "block of sulfur",
"block.quickiemod.blocksalpeter": "block of salpeter",
"block.quickiemod.blockspeedpowder": "block of speedpowder",
diff --git a/src/main/resources/assets/quickiemod/models/block/canolaplant0.json b/src/main/resources/assets/quickiemod/models/block/canolaplant0.json
new file mode 100644
index 0000000..87814f8
--- /dev/null
+++ b/src/main/resources/assets/quickiemod/models/block/canolaplant0.json
@@ -0,0 +1,6 @@
+{
+ "parent":"block/cross",
+ "textures":{
+ "cross":"quickiemod:block/canolaplant0"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/quickiemod/models/block/canolaplant1.json b/src/main/resources/assets/quickiemod/models/block/canolaplant1.json
new file mode 100644
index 0000000..e68dadc
--- /dev/null
+++ b/src/main/resources/assets/quickiemod/models/block/canolaplant1.json
@@ -0,0 +1,6 @@
+{
+ "parent":"block/cross",
+ "textures":{
+ "cross":"quickiemod:block/canolaplant1"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/quickiemod/models/block/canolaplant2.json b/src/main/resources/assets/quickiemod/models/block/canolaplant2.json
new file mode 100644
index 0000000..2f5ee99
--- /dev/null
+++ b/src/main/resources/assets/quickiemod/models/block/canolaplant2.json
@@ -0,0 +1,6 @@
+{
+ "parent":"block/cross",
+ "textures":{
+ "cross":"quickiemod:block/canolaplant2"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/quickiemod/models/block/canolaplant3.json b/src/main/resources/assets/quickiemod/models/block/canolaplant3.json
new file mode 100644
index 0000000..9ffb888
--- /dev/null
+++ b/src/main/resources/assets/quickiemod/models/block/canolaplant3.json
@@ -0,0 +1,6 @@
+{
+ "parent":"block/cross",
+ "textures":{
+ "cross":"quickiemod:block/canolaplant3"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/quickiemod/models/block/canolaplant4.json b/src/main/resources/assets/quickiemod/models/block/canolaplant4.json
new file mode 100644
index 0000000..345cd3a
--- /dev/null
+++ b/src/main/resources/assets/quickiemod/models/block/canolaplant4.json
@@ -0,0 +1,6 @@
+{
+ "parent":"block/cross",
+ "textures":{
+ "cross":"quickiemod:block/canolaplant4"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/quickiemod/models/block/canolaplant5.json b/src/main/resources/assets/quickiemod/models/block/canolaplant5.json
new file mode 100644
index 0000000..cfcb6f8
--- /dev/null
+++ b/src/main/resources/assets/quickiemod/models/block/canolaplant5.json
@@ -0,0 +1,6 @@
+{
+ "parent":"block/cross",
+ "textures":{
+ "cross":"quickiemod:block/canolaplant5"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/quickiemod/models/block/canolaplant6.json b/src/main/resources/assets/quickiemod/models/block/canolaplant6.json
new file mode 100644
index 0000000..b07ce06
--- /dev/null
+++ b/src/main/resources/assets/quickiemod/models/block/canolaplant6.json
@@ -0,0 +1,6 @@
+{
+ "parent":"block/cross",
+ "textures":{
+ "cross":"quickiemod:block/canolaplant6"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/quickiemod/models/block/canolaplant7.json b/src/main/resources/assets/quickiemod/models/block/canolaplant7.json
new file mode 100644
index 0000000..916aea4
--- /dev/null
+++ b/src/main/resources/assets/quickiemod/models/block/canolaplant7.json
@@ -0,0 +1,6 @@
+{
+ "parent":"block/cross",
+ "textures":{
+ "cross":"quickiemod:block/canolaplant7"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/quickiemod/models/block/cottonplant0.json b/src/main/resources/assets/quickiemod/models/block/cottonplant0.json
new file mode 100644
index 0000000..dbf487d
--- /dev/null
+++ b/src/main/resources/assets/quickiemod/models/block/cottonplant0.json
@@ -0,0 +1,6 @@
+{
+ "parent":"block/cross",
+ "textures":{
+ "cross":"quickiemod:block/cottonplant0"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/quickiemod/models/block/cottonplant1.json b/src/main/resources/assets/quickiemod/models/block/cottonplant1.json
new file mode 100644
index 0000000..dc809b5
--- /dev/null
+++ b/src/main/resources/assets/quickiemod/models/block/cottonplant1.json
@@ -0,0 +1,6 @@
+{
+ "parent":"block/cross",
+ "textures":{
+ "cross":"quickiemod:block/cottonplant1"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/quickiemod/models/block/cottonplant2.json b/src/main/resources/assets/quickiemod/models/block/cottonplant2.json
new file mode 100644
index 0000000..5af3fba
--- /dev/null
+++ b/src/main/resources/assets/quickiemod/models/block/cottonplant2.json
@@ -0,0 +1,6 @@
+{
+ "parent":"block/cross",
+ "textures":{
+ "cross":"quickiemod:block/cottonplant2"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/quickiemod/models/block/cottonplant3.json b/src/main/resources/assets/quickiemod/models/block/cottonplant3.json
new file mode 100644
index 0000000..8b1f69d
--- /dev/null
+++ b/src/main/resources/assets/quickiemod/models/block/cottonplant3.json
@@ -0,0 +1,6 @@
+{
+ "parent":"block/cross",
+ "textures":{
+ "cross":"quickiemod:block/cottonplant3"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/quickiemod/models/block/cottonplant4.json b/src/main/resources/assets/quickiemod/models/block/cottonplant4.json
new file mode 100644
index 0000000..a733dbc
--- /dev/null
+++ b/src/main/resources/assets/quickiemod/models/block/cottonplant4.json
@@ -0,0 +1,6 @@
+{
+ "parent":"block/cross",
+ "textures":{
+ "cross":"quickiemod:block/cottonplant4"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/quickiemod/models/block/cottonplant5.json b/src/main/resources/assets/quickiemod/models/block/cottonplant5.json
new file mode 100644
index 0000000..6b195fc
--- /dev/null
+++ b/src/main/resources/assets/quickiemod/models/block/cottonplant5.json
@@ -0,0 +1,6 @@
+{
+ "parent":"block/cross",
+ "textures":{
+ "cross":"quickiemod:block/cottonplant5"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/quickiemod/models/block/cottonplant6.json b/src/main/resources/assets/quickiemod/models/block/cottonplant6.json
new file mode 100644
index 0000000..18ed782
--- /dev/null
+++ b/src/main/resources/assets/quickiemod/models/block/cottonplant6.json
@@ -0,0 +1,6 @@
+{
+ "parent":"block/cross",
+ "textures":{
+ "cross":"quickiemod:block/cottonplant6"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/quickiemod/models/block/cottonplant7.json b/src/main/resources/assets/quickiemod/models/block/cottonplant7.json
new file mode 100644
index 0000000..8b17f77
--- /dev/null
+++ b/src/main/resources/assets/quickiemod/models/block/cottonplant7.json
@@ -0,0 +1,6 @@
+{
+ "parent":"block/cross",
+ "textures":{
+ "cross":"quickiemod:block/cottonplant7"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/quickiemod/models/item/canola.json b/src/main/resources/assets/quickiemod/models/item/canola.json
new file mode 100644
index 0000000..92a204d
--- /dev/null
+++ b/src/main/resources/assets/quickiemod/models/item/canola.json
@@ -0,0 +1,6 @@
+{
+ "parent": "item/generated",
+ "textures": {
+ "layer0": "quickiemod:item/canola"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/quickiemod/models/item/canolabottle.json b/src/main/resources/assets/quickiemod/models/item/canolabottle.json
new file mode 100644
index 0000000..3091d87
--- /dev/null
+++ b/src/main/resources/assets/quickiemod/models/item/canolabottle.json
@@ -0,0 +1,6 @@
+{
+ "parent": "item/generated",
+ "textures": {
+ "layer0": "quickiemod:item/canolabottle"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/quickiemod/models/item/canolabottlestack.json b/src/main/resources/assets/quickiemod/models/item/canolabottlestack.json
new file mode 100644
index 0000000..47b93ab
--- /dev/null
+++ b/src/main/resources/assets/quickiemod/models/item/canolabottlestack.json
@@ -0,0 +1,6 @@
+{
+ "parent": "item/generated",
+ "textures": {
+ "layer0": "quickiemod:item/canolabottlestack"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/quickiemod/models/item/canolaplant.json b/src/main/resources/assets/quickiemod/models/item/canolaplant.json
new file mode 100644
index 0000000..91ee0b6
--- /dev/null
+++ b/src/main/resources/assets/quickiemod/models/item/canolaplant.json
@@ -0,0 +1,6 @@
+{
+ "parent": "item/generated",
+ "textures": {
+ "layer0": "quickiemod:item/canolaseed"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/quickiemod/models/item/canolaseed.json b/src/main/resources/assets/quickiemod/models/item/canolaseed.json
new file mode 100644
index 0000000..91ee0b6
--- /dev/null
+++ b/src/main/resources/assets/quickiemod/models/item/canolaseed.json
@@ -0,0 +1,6 @@
+{
+ "parent": "item/generated",
+ "textures": {
+ "layer0": "quickiemod:item/canolaseed"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/quickiemod/models/item/cotton.json b/src/main/resources/assets/quickiemod/models/item/cotton.json
new file mode 100644
index 0000000..e9c043a
--- /dev/null
+++ b/src/main/resources/assets/quickiemod/models/item/cotton.json
@@ -0,0 +1,6 @@
+{
+ "parent": "item/generated",
+ "textures": {
+ "layer0": "quickiemod:item/cotton"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/quickiemod/models/item/cottonplant.json b/src/main/resources/assets/quickiemod/models/item/cottonplant.json
new file mode 100644
index 0000000..7410b36
--- /dev/null
+++ b/src/main/resources/assets/quickiemod/models/item/cottonplant.json
@@ -0,0 +1,6 @@
+{
+ "parent": "item/generated",
+ "textures": {
+ "layer0": "quickiemod:item/cottonseed"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/quickiemod/models/item/cottonseed.json b/src/main/resources/assets/quickiemod/models/item/cottonseed.json
new file mode 100644
index 0000000..7410b36
--- /dev/null
+++ b/src/main/resources/assets/quickiemod/models/item/cottonseed.json
@@ -0,0 +1,6 @@
+{
+ "parent": "item/generated",
+ "textures": {
+ "layer0": "quickiemod:item/cottonseed"
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/quickiemod/textures/block/canolaplant0.png b/src/main/resources/assets/quickiemod/textures/block/canolaplant0.png
new file mode 100644
index 0000000..12eae03
Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/block/canolaplant0.png differ
diff --git a/src/main/resources/assets/quickiemod/textures/block/canolaplant1.png b/src/main/resources/assets/quickiemod/textures/block/canolaplant1.png
new file mode 100644
index 0000000..0849b41
Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/block/canolaplant1.png differ
diff --git a/src/main/resources/assets/quickiemod/textures/block/canolaplant2.png b/src/main/resources/assets/quickiemod/textures/block/canolaplant2.png
new file mode 100644
index 0000000..568009c
Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/block/canolaplant2.png differ
diff --git a/src/main/resources/assets/quickiemod/textures/block/canolaplant3.png b/src/main/resources/assets/quickiemod/textures/block/canolaplant3.png
new file mode 100644
index 0000000..5df1b33
Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/block/canolaplant3.png differ
diff --git a/src/main/resources/assets/quickiemod/textures/block/canolaplant4.png b/src/main/resources/assets/quickiemod/textures/block/canolaplant4.png
new file mode 100644
index 0000000..577b32b
Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/block/canolaplant4.png differ
diff --git a/src/main/resources/assets/quickiemod/textures/block/canolaplant5.png b/src/main/resources/assets/quickiemod/textures/block/canolaplant5.png
new file mode 100644
index 0000000..ac625ca
Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/block/canolaplant5.png differ
diff --git a/src/main/resources/assets/quickiemod/textures/block/canolaplant6.png b/src/main/resources/assets/quickiemod/textures/block/canolaplant6.png
new file mode 100644
index 0000000..a60e7fe
Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/block/canolaplant6.png differ
diff --git a/src/main/resources/assets/quickiemod/textures/block/canolaplant7.png b/src/main/resources/assets/quickiemod/textures/block/canolaplant7.png
new file mode 100644
index 0000000..8bf076a
Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/block/canolaplant7.png differ
diff --git a/src/main/resources/assets/quickiemod/textures/block/cottonplant0.png b/src/main/resources/assets/quickiemod/textures/block/cottonplant0.png
new file mode 100644
index 0000000..afcb1ce
Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/block/cottonplant0.png differ
diff --git a/src/main/resources/assets/quickiemod/textures/block/cottonplant1.png b/src/main/resources/assets/quickiemod/textures/block/cottonplant1.png
new file mode 100644
index 0000000..1a5a64e
Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/block/cottonplant1.png differ
diff --git a/src/main/resources/assets/quickiemod/textures/block/cottonplant2.png b/src/main/resources/assets/quickiemod/textures/block/cottonplant2.png
new file mode 100644
index 0000000..a3c57c5
Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/block/cottonplant2.png differ
diff --git a/src/main/resources/assets/quickiemod/textures/block/cottonplant3.png b/src/main/resources/assets/quickiemod/textures/block/cottonplant3.png
new file mode 100644
index 0000000..d19a189
Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/block/cottonplant3.png differ
diff --git a/src/main/resources/assets/quickiemod/textures/block/cottonplant4.png b/src/main/resources/assets/quickiemod/textures/block/cottonplant4.png
new file mode 100644
index 0000000..4cd6a05
Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/block/cottonplant4.png differ
diff --git a/src/main/resources/assets/quickiemod/textures/block/cottonplant5.png b/src/main/resources/assets/quickiemod/textures/block/cottonplant5.png
new file mode 100644
index 0000000..b50f8d1
Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/block/cottonplant5.png differ
diff --git a/src/main/resources/assets/quickiemod/textures/block/cottonplant6.png b/src/main/resources/assets/quickiemod/textures/block/cottonplant6.png
new file mode 100644
index 0000000..9ed2608
Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/block/cottonplant6.png differ
diff --git a/src/main/resources/assets/quickiemod/textures/block/cottonplant7.png b/src/main/resources/assets/quickiemod/textures/block/cottonplant7.png
new file mode 100644
index 0000000..4a296a1
Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/block/cottonplant7.png differ
diff --git a/src/main/resources/assets/quickiemod/textures/item/canola.png b/src/main/resources/assets/quickiemod/textures/item/canola.png
new file mode 100644
index 0000000..0bf131f
Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/item/canola.png differ
diff --git a/src/main/resources/assets/quickiemod/textures/item/canolabottle.png b/src/main/resources/assets/quickiemod/textures/item/canolabottle.png
new file mode 100644
index 0000000..fcd7a3a
Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/item/canolabottle.png differ
diff --git a/src/main/resources/assets/quickiemod/textures/item/canolabottlestack.png b/src/main/resources/assets/quickiemod/textures/item/canolabottlestack.png
new file mode 100644
index 0000000..9805652
Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/item/canolabottlestack.png differ
diff --git a/src/main/resources/assets/quickiemod/textures/item/canolaseed.png b/src/main/resources/assets/quickiemod/textures/item/canolaseed.png
new file mode 100644
index 0000000..e1ef6ed
Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/item/canolaseed.png differ
diff --git a/src/main/resources/assets/quickiemod/textures/item/cotton.png b/src/main/resources/assets/quickiemod/textures/item/cotton.png
new file mode 100644
index 0000000..c52801c
Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/item/cotton.png differ
diff --git a/src/main/resources/assets/quickiemod/textures/item/cottonseed.png b/src/main/resources/assets/quickiemod/textures/item/cottonseed.png
new file mode 100644
index 0000000..935d677
Binary files /dev/null and b/src/main/resources/assets/quickiemod/textures/item/cottonseed.png differ
diff --git a/src/main/resources/data/quickiemod/recipes/shaped_canolabottlestack.json b/src/main/resources/data/quickiemod/recipes/shaped_canolabottlestack.json
new file mode 100644
index 0000000..64db6f2
--- /dev/null
+++ b/src/main/resources/data/quickiemod/recipes/shaped_canolabottlestack.json
@@ -0,0 +1,17 @@
+{
+ "type": "crafting_shaped",
+ "pattern": [
+ "ccc",
+ "ccc",
+ "ccc"
+ ],
+ "key": {
+ "c": {
+ "item": "quickiemod:canolabottle"
+ }
+ },
+ "result": {
+ "id": "quickiemod:canolabottlestack",
+ "count": 1
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/data/quickiemod/recipes/shaped_string_from_cotton.json b/src/main/resources/data/quickiemod/recipes/shaped_string_from_cotton.json
new file mode 100644
index 0000000..2194e58
--- /dev/null
+++ b/src/main/resources/data/quickiemod/recipes/shaped_string_from_cotton.json
@@ -0,0 +1,17 @@
+{
+ "type": "minecraft:crafting_shaped",
+ "pattern": [
+ "c",
+ "c",
+ "c"
+ ],
+ "key": {
+ "c": {
+ "item": "quickiemod:cotton"
+ }
+ },
+ "result": {
+ "id": "minecraft:string",
+ "count": 1
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/data/quickiemod/recipes/shapeless_canolabottle.json b/src/main/resources/data/quickiemod/recipes/shapeless_canolabottle.json
new file mode 100644
index 0000000..a930687
--- /dev/null
+++ b/src/main/resources/data/quickiemod/recipes/shapeless_canolabottle.json
@@ -0,0 +1,15 @@
+{
+ "type": "minecraft:crafting_shapeless",
+ "ingredients": [
+ {
+ "item": "minecraft:glass_bottle"
+ },
+ {
+ "item": "quickiemod:canola"
+ }
+ ],
+ "result": {
+ "id": "quickiemod:canolabottle",
+ "count": 1
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/data/quickiemod/recipes/shapeless_canolabottle_from_stack.json b/src/main/resources/data/quickiemod/recipes/shapeless_canolabottle_from_stack.json
new file mode 100644
index 0000000..432f1b0
--- /dev/null
+++ b/src/main/resources/data/quickiemod/recipes/shapeless_canolabottle_from_stack.json
@@ -0,0 +1,12 @@
+{
+ "type": "minecraft:crafting_shapeless",
+ "ingredients": [
+ {
+ "item": "quickiemod:canolabottlestack"
+ }
+ ],
+ "result": {
+ "id": "quickiemod:canolabottle",
+ "count": 9
+ }
+}
\ No newline at end of file