From 6cf60c7d6ba1f995721e8c3a144f667880fcb88e Mon Sep 17 00:00:00 2001 From: Vos Date: Tue, 11 Nov 2025 15:59:03 -0600 Subject: [PATCH] Tobacco Crop (no fruit) --- .../acesbs/blockstates/tobacco_crop.json | 25 +++++++ .../models/block/tobacco_crop_stage0.json | 6 ++ .../models/block/tobacco_crop_stage1.json | 6 ++ .../models/block/tobacco_crop_stage2.json | 6 ++ .../models/block/tobacco_crop_stage3.json | 6 ++ .../models/block/tobacco_crop_stage4.json | 6 ++ .../models/block/tobacco_crop_stage5.json | 6 ++ .../models/block/tobacco_crop_stage6.json | 6 ++ .../acesbs/models/item/tobacco_seeds.json | 6 ++ .../acesbs/enchantment/lightning_strike.json | 9 +-- .../loot_table/blocks/tobacco_crop.json | 68 ++++++++++++++++++ .../com/acethewildfire/acesbs/AcesBS.java | 4 ++ .../java/com/acethewildfire/acesbs/TODO.txt | 1 + .../acesbs/block/ModBlocks.java | 16 +++++ .../acesbs/block/custom/TobaccoCrop.java | 39 ++++++++++ .../acesbs/datagen/ModLootTableProvider.java | 7 ++ .../acesbs/datagen/ModModelProvider.java | 2 + .../acesbs/item/ModItemGroups.java | 1 + .../acethewildfire/acesbs/item/ModItems.java | 3 +- .../resources/assets/acesbs/lang/en_us.json | 4 ++ .../textures/block/tobacco_crop_stage0.png | Bin 0 -> 4225 bytes .../textures/block/tobacco_crop_stage1.png | Bin 0 -> 4290 bytes .../textures/block/tobacco_crop_stage2.png | Bin 0 -> 4325 bytes .../textures/block/tobacco_crop_stage3.png | Bin 0 -> 4379 bytes .../textures/block/tobacco_crop_stage4.png | Bin 0 -> 4428 bytes .../textures/block/tobacco_crop_stage5.png | Bin 0 -> 4451 bytes .../textures/block/tobacco_crop_stage6.png | Bin 0 -> 4437 bytes .../acesbs/textures/item/tobacco_seeds.png | Bin 0 -> 4265 bytes 28 files changed, 220 insertions(+), 7 deletions(-) create mode 100644 src/main/generated/assets/acesbs/blockstates/tobacco_crop.json create mode 100644 src/main/generated/assets/acesbs/models/block/tobacco_crop_stage0.json create mode 100644 src/main/generated/assets/acesbs/models/block/tobacco_crop_stage1.json create mode 100644 src/main/generated/assets/acesbs/models/block/tobacco_crop_stage2.json create mode 100644 src/main/generated/assets/acesbs/models/block/tobacco_crop_stage3.json create mode 100644 src/main/generated/assets/acesbs/models/block/tobacco_crop_stage4.json create mode 100644 src/main/generated/assets/acesbs/models/block/tobacco_crop_stage5.json create mode 100644 src/main/generated/assets/acesbs/models/block/tobacco_crop_stage6.json create mode 100644 src/main/generated/assets/acesbs/models/item/tobacco_seeds.json create mode 100644 src/main/generated/data/acesbs/loot_table/blocks/tobacco_crop.json create mode 100644 src/main/java/com/acethewildfire/acesbs/block/custom/TobaccoCrop.java create mode 100644 src/main/resources/assets/acesbs/textures/block/tobacco_crop_stage0.png create mode 100644 src/main/resources/assets/acesbs/textures/block/tobacco_crop_stage1.png create mode 100644 src/main/resources/assets/acesbs/textures/block/tobacco_crop_stage2.png create mode 100644 src/main/resources/assets/acesbs/textures/block/tobacco_crop_stage3.png create mode 100644 src/main/resources/assets/acesbs/textures/block/tobacco_crop_stage4.png create mode 100644 src/main/resources/assets/acesbs/textures/block/tobacco_crop_stage5.png create mode 100644 src/main/resources/assets/acesbs/textures/block/tobacco_crop_stage6.png create mode 100644 src/main/resources/assets/acesbs/textures/item/tobacco_seeds.png diff --git a/src/main/generated/assets/acesbs/blockstates/tobacco_crop.json b/src/main/generated/assets/acesbs/blockstates/tobacco_crop.json new file mode 100644 index 0000000..333c6fa --- /dev/null +++ b/src/main/generated/assets/acesbs/blockstates/tobacco_crop.json @@ -0,0 +1,25 @@ +{ + "variants": { + "age=0": { + "model": "acesbs:block/tobacco_crop_stage0" + }, + "age=1": { + "model": "acesbs:block/tobacco_crop_stage1" + }, + "age=2": { + "model": "acesbs:block/tobacco_crop_stage2" + }, + "age=3": { + "model": "acesbs:block/tobacco_crop_stage3" + }, + "age=4": { + "model": "acesbs:block/tobacco_crop_stage4" + }, + "age=5": { + "model": "acesbs:block/tobacco_crop_stage5" + }, + "age=6": { + "model": "acesbs:block/tobacco_crop_stage6" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/block/tobacco_crop_stage0.json b/src/main/generated/assets/acesbs/models/block/tobacco_crop_stage0.json new file mode 100644 index 0000000..c55a6a2 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/block/tobacco_crop_stage0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "acesbs:block/tobacco_crop_stage0" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/block/tobacco_crop_stage1.json b/src/main/generated/assets/acesbs/models/block/tobacco_crop_stage1.json new file mode 100644 index 0000000..7166832 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/block/tobacco_crop_stage1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "acesbs:block/tobacco_crop_stage1" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/block/tobacco_crop_stage2.json b/src/main/generated/assets/acesbs/models/block/tobacco_crop_stage2.json new file mode 100644 index 0000000..b2c77ba --- /dev/null +++ b/src/main/generated/assets/acesbs/models/block/tobacco_crop_stage2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "acesbs:block/tobacco_crop_stage2" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/block/tobacco_crop_stage3.json b/src/main/generated/assets/acesbs/models/block/tobacco_crop_stage3.json new file mode 100644 index 0000000..c529ff1 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/block/tobacco_crop_stage3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "acesbs:block/tobacco_crop_stage3" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/block/tobacco_crop_stage4.json b/src/main/generated/assets/acesbs/models/block/tobacco_crop_stage4.json new file mode 100644 index 0000000..5f0837c --- /dev/null +++ b/src/main/generated/assets/acesbs/models/block/tobacco_crop_stage4.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "acesbs:block/tobacco_crop_stage4" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/block/tobacco_crop_stage5.json b/src/main/generated/assets/acesbs/models/block/tobacco_crop_stage5.json new file mode 100644 index 0000000..d1eda35 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/block/tobacco_crop_stage5.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "acesbs:block/tobacco_crop_stage5" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/block/tobacco_crop_stage6.json b/src/main/generated/assets/acesbs/models/block/tobacco_crop_stage6.json new file mode 100644 index 0000000..14e45e1 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/block/tobacco_crop_stage6.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "acesbs:block/tobacco_crop_stage6" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/item/tobacco_seeds.json b/src/main/generated/assets/acesbs/models/item/tobacco_seeds.json new file mode 100644 index 0000000..b8b4d06 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/tobacco_seeds.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "acesbs:item/tobacco_seeds" + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/enchantment/lightning_strike.json b/src/main/generated/data/acesbs/enchantment/lightning_strike.json index b6ba691..9dfaf1e 100644 --- a/src/main/generated/data/acesbs/enchantment/lightning_strike.json +++ b/src/main/generated/data/acesbs/enchantment/lightning_strike.json @@ -4,13 +4,11 @@ "translate": "enchantment.acesbs.lightning_strike" }, "effects": { - "minecraft:post_attack": [ + "minecraft:projectile_spawned": [ { - "affected": "victim", "effect": { "type": "acesbs:lighting_strike" - }, - "enchanted": "attacker" + } } ] }, @@ -23,10 +21,9 @@ "base": 5, "per_level_above_first": 7 }, - "primary_items": "#minecraft:enchantable/bow", "slots": [ "mainhand" ], - "supported_items": "#minecraft:enchantable/weapon", + "supported_items": "#minecraft:enchantable/bow", "weight": 5 } \ No newline at end of file diff --git a/src/main/generated/data/acesbs/loot_table/blocks/tobacco_crop.json b/src/main/generated/data/acesbs/loot_table/blocks/tobacco_crop.json new file mode 100644 index 0000000..ff09d43 --- /dev/null +++ b/src/main/generated/data/acesbs/loot_table/blocks/tobacco_crop.json @@ -0,0 +1,68 @@ +{ + "type": "minecraft:block", + "functions": [ + { + "function": "minecraft:explosion_decay" + } + ], + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "acesbs:tobacco_crop", + "condition": "minecraft:block_state_property", + "properties": { + "age": "6" + } + } + ], + "name": "acesbs:lemon" + }, + { + "type": "minecraft:item", + "name": "acesbs:tobacco_seeds" + } + ] + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "block": "acesbs:tobacco_crop", + "condition": "minecraft:block_state_property", + "properties": { + "age": "6" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:binomial_with_bonus_count", + "function": "minecraft:apply_bonus", + "parameters": { + "extra": 3, + "probability": 0.5714286 + } + } + ], + "name": "acesbs:tobacco_seeds" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/java/com/acethewildfire/acesbs/AcesBS.java b/src/main/java/com/acethewildfire/acesbs/AcesBS.java index e0c86ae..95dc62f 100644 --- a/src/main/java/com/acethewildfire/acesbs/AcesBS.java +++ b/src/main/java/com/acethewildfire/acesbs/AcesBS.java @@ -15,6 +15,7 @@ import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.event.player.AttackEntityCallback; import net.fabricmc.fabric.api.event.player.PlayerBlockBreakEvents; +import net.fabricmc.fabric.api.registry.CompostingChanceRegistry; import net.fabricmc.fabric.api.registry.FabricBrewingRecipeRegistryBuilder; import net.fabricmc.fabric.api.renderer.v1.Renderer; import net.minecraft.item.Items; @@ -56,5 +57,8 @@ public class AcesBS implements ModInitializer { builder.registerPotionRecipe(Potions.AWKWARD, ModItems.LEMON, ModPotions.LEMON); builder.registerPotionRecipe(Potions.AWKWARD, Items.SAND, ModPotions.BLINDNESS); }); + +// CompostingChanceRegistry.INSTANCE.add(ModItems.TOBACCO); + CompostingChanceRegistry.INSTANCE.add(ModItems.TOBACCO_SEEDS, 0.5f); } } \ No newline at end of file diff --git a/src/main/java/com/acethewildfire/acesbs/TODO.txt b/src/main/java/com/acethewildfire/acesbs/TODO.txt index 2a39f46..9180ce3 100644 --- a/src/main/java/com/acethewildfire/acesbs/TODO.txt +++ b/src/main/java/com/acethewildfire/acesbs/TODO.txt @@ -19,6 +19,7 @@ Food - Infernal Beef (Mob/Ashes + Cooked Beef) - Hyper Stimulants (Hyper Sugar) - Narcan (Stimulants + Entropic Eviscerator) +- Tobacco Crop - Tobacco diff --git a/src/main/java/com/acethewildfire/acesbs/block/ModBlocks.java b/src/main/java/com/acethewildfire/acesbs/block/ModBlocks.java index eebd487..2e6016b 100644 --- a/src/main/java/com/acethewildfire/acesbs/block/ModBlocks.java +++ b/src/main/java/com/acethewildfire/acesbs/block/ModBlocks.java @@ -4,9 +4,11 @@ import com.acethewildfire.acesbs.AcesBS; import com.acethewildfire.acesbs.block.custom.EntropyBlock; import com.acethewildfire.acesbs.block.custom.EvilBlock; import com.acethewildfire.acesbs.block.custom.StableEntropyBlock; +import com.acethewildfire.acesbs.block.custom.TobaccoCrop; import com.acethewildfire.acesbs.sounds.ModSounds; import net.minecraft.block.*; import net.minecraft.block.enums.NoteBlockInstrument; +import net.minecraft.block.piston.PistonBehavior; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.BlockItem; import net.minecraft.item.Item; @@ -194,6 +196,20 @@ public class ModBlocks { ) ); + public static final Block TOBACCO_CROP = registerBlockWithoutItem("tobacco_crop", new TobaccoCrop( + AbstractBlock.Settings.create() + .mapColor(MapColor.DARK_GREEN) + .noCollision() + .ticksRandomly() + .breakInstantly() + .sounds(BlockSoundGroup.CROP) + .pistonBehavior(PistonBehavior.DESTROY) + )); + + private static Block registerBlockWithoutItem(String name, Block block){ + return Registry.register(Registries.BLOCK, Identifier.of(AcesBS.MOD_ID, name), block); + } + private static Block registerBlock(String name, Block block){ registerBlockItem(name, block); return Registry.register(Registries.BLOCK, Identifier.of(AcesBS.MOD_ID, name), block); diff --git a/src/main/java/com/acethewildfire/acesbs/block/custom/TobaccoCrop.java b/src/main/java/com/acethewildfire/acesbs/block/custom/TobaccoCrop.java new file mode 100644 index 0000000..1a8f79e --- /dev/null +++ b/src/main/java/com/acethewildfire/acesbs/block/custom/TobaccoCrop.java @@ -0,0 +1,39 @@ +package com.acethewildfire.acesbs.block.custom; + +import com.acethewildfire.acesbs.item.ModItems; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.CropBlock; +import net.minecraft.item.ItemConvertible; +import net.minecraft.state.StateManager; +import net.minecraft.state.property.IntProperty; + +public class TobaccoCrop extends CropBlock { + + public static final int MAX_AGE = 6; + public static final IntProperty AGE = IntProperty.of("age", 0, 6); + + public TobaccoCrop(Settings settings) { + super(settings); + } + + @Override + protected ItemConvertible getSeedsItem() { + return ModItems.TOBACCO_SEEDS; + } + + @Override + public IntProperty getAgeProperty() { + return AGE; + } + + @Override + public int getMaxAge() { + return MAX_AGE; + } + + @Override + protected void appendProperties(StateManager.Builder builder) { + builder.add(AGE); + } +} diff --git a/src/main/java/com/acethewildfire/acesbs/datagen/ModLootTableProvider.java b/src/main/java/com/acethewildfire/acesbs/datagen/ModLootTableProvider.java index 54fed9a..c3591ce 100644 --- a/src/main/java/com/acethewildfire/acesbs/datagen/ModLootTableProvider.java +++ b/src/main/java/com/acethewildfire/acesbs/datagen/ModLootTableProvider.java @@ -2,6 +2,7 @@ package com.acethewildfire.acesbs.datagen; import com.acethewildfire.acesbs.AcesBS; import com.acethewildfire.acesbs.block.ModBlocks; +import com.acethewildfire.acesbs.block.custom.TobaccoCrop; import com.acethewildfire.acesbs.item.ModItems; import com.acethewildfire.acesbs.util.ModTags; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; @@ -17,6 +18,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.loot.LootPool; import net.minecraft.loot.LootTable; +import net.minecraft.loot.condition.BlockStatePropertyLootCondition; import net.minecraft.loot.condition.InvertedLootCondition; import net.minecraft.loot.condition.LootCondition; import net.minecraft.loot.condition.MatchToolLootCondition; @@ -28,6 +30,7 @@ import net.minecraft.loot.function.SetCountLootFunction; import net.minecraft.loot.provider.number.ConstantLootNumberProvider; import net.minecraft.loot.provider.number.UniformLootNumberProvider; import net.minecraft.predicate.NumberRange; +import net.minecraft.predicate.StatePredicate; import net.minecraft.predicate.item.EnchantmentPredicate; import net.minecraft.predicate.item.EnchantmentsPredicate; import net.minecraft.predicate.item.ItemPredicate; @@ -67,6 +70,10 @@ public class ModLootTableProvider extends FabricBlockLootTableProvider { addDrop(ModBlocks.LEMONWOOD_TRAPDOOR); addDrop(ModBlocks.ENTROPY_ORE, prismaSteelOreDrops(ModBlocks.ENTROPY_ORE, ModItems.RAW_ENTROPY, 1, 3)); + + BlockStatePropertyLootCondition.Builder builder2 = BlockStatePropertyLootCondition.builder(ModBlocks.TOBACCO_CROP) + .properties(StatePredicate.Builder.create().exactMatch(TobaccoCrop.AGE, TobaccoCrop.MAX_AGE)); + this.addDrop(ModBlocks.TOBACCO_CROP, this.cropDrops(ModBlocks.TOBACCO_CROP, ModItems.LEMON, ModItems.TOBACCO_SEEDS, builder2)); } public LootTable.Builder multipleOreDrops(Block drop, Item item, float minDrops, float maxDrops) { diff --git a/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java b/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java index fcfc6dc..5fa303f 100644 --- a/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java +++ b/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java @@ -2,6 +2,7 @@ package com.acethewildfire.acesbs.datagen; import com.acethewildfire.acesbs.block.ModBlocks; import com.acethewildfire.acesbs.block.custom.EvilBlock; +import com.acethewildfire.acesbs.block.custom.TobaccoCrop; import com.acethewildfire.acesbs.item.ModItems; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricModelProvider; @@ -47,6 +48,7 @@ public class ModModelProvider extends FabricModelProvider { blockStateModelGenerator.blockStateCollector.accept(VariantsBlockStateSupplier.create(ModBlocks.EVIL_BLOCK) .coordinate(BlockStateModelGenerator.createBooleanModelMap(EvilBlock.CLICKED, lampOnIdentifier, lampOffIdentifier))); + blockStateModelGenerator.registerCrop(ModBlocks.TOBACCO_CROP, TobaccoCrop.AGE, 0,1,2,3,4,5,6); } @Override diff --git a/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java b/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java index 62d9940..9cc1b4d 100644 --- a/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java +++ b/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java @@ -27,6 +27,7 @@ public class ModItemGroups { entries.add(ModItems.PRISMA_STEEL); entries.add(ModItems.PRISMA_SMITHING_TEMPLATE); entries.add(ModItems.CRAB_RAVE_MUSIC_DISC); + entries.add(ModItems.TOBACCO_SEEDS); }) .build()); diff --git a/src/main/java/com/acethewildfire/acesbs/item/ModItems.java b/src/main/java/com/acethewildfire/acesbs/item/ModItems.java index 64f43ac..92460c1 100644 --- a/src/main/java/com/acethewildfire/acesbs/item/ModItems.java +++ b/src/main/java/com/acethewildfire/acesbs/item/ModItems.java @@ -1,6 +1,7 @@ package com.acethewildfire.acesbs.item; import com.acethewildfire.acesbs.AcesBS; +import com.acethewildfire.acesbs.block.ModBlocks; import com.acethewildfire.acesbs.item.custom.HammerItem; import com.acethewildfire.acesbs.item.custom.ModArmorItem; import com.acethewildfire.acesbs.item.custom.OracleLemon; @@ -144,7 +145,7 @@ public class ModItems { } ); - + public static final Item TOBACCO_SEEDS = registerItem("tobacco_seeds", new AliasedBlockItem(ModBlocks.TOBACCO_CROP, new Item.Settings())); private static Item registerItem(String name, Item item){ return Registry.register(Registries.ITEM, Identifier.of(AcesBS.MOD_ID, name), item); diff --git a/src/main/resources/assets/acesbs/lang/en_us.json b/src/main/resources/assets/acesbs/lang/en_us.json index f1ca7d8..e4a8355 100644 --- a/src/main/resources/assets/acesbs/lang/en_us.json +++ b/src/main/resources/assets/acesbs/lang/en_us.json @@ -40,6 +40,8 @@ "item.acesbs.crab_rave_music_disc": "Crab Rave Music Disc", "item.acesbs.crab_rave_music_disc.desc": "Noisestorm - Crab Rave [Monstercat Release]", + "item.acesbs.tobacco_seeds": "Tobacco Seeds", + "painting.acesbs.herald.title": "Herald's Banner", "painting.acesbs.herald.author": "AceTheWildfire", @@ -74,6 +76,8 @@ "block.acesbs.evil_block": "Evil Block", + "block.acesbs.tobacco_crop": "Tobacco Crop", + "itemgroup.acesbs.items": "Ace's BS Items", "itemgroup.acesbs.blocks": "Ace's BS Blocks", "itemgroup.acesbs.combat": "Ace's BS Combat", diff --git a/src/main/resources/assets/acesbs/textures/block/tobacco_crop_stage0.png b/src/main/resources/assets/acesbs/textures/block/tobacco_crop_stage0.png new file mode 100644 index 0000000000000000000000000000000000000000..acc712586c3e82c4f483804449992d8af08fe93b GIT binary patch literal 4225 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/acesbs/textures/block/tobacco_crop_stage3.png b/src/main/resources/assets/acesbs/textures/block/tobacco_crop_stage3.png new file mode 100644 index 0000000000000000000000000000000000000000..25677827fb517a4d7c55d3c015ffce16c218f5c5 GIT binary patch literal 4379 zcmeHKdr%bj9X})}4>48)xl|mMQ)8&^?c?5C4n^+Z&TxQmLotb?zuU*Lb@8k3Pem}qO_cym2iVO3T6MvehQmK-i4qFL)PgkD!$?!M*&H#X~Q?>4Lxdeoe zpeS&>k45CwK^9@dJf~8Hzwj65%;-eo-|O3$9rKjFH|<=T?taehl~dbhc3t1R;K139 zZTJ8AbX(VA&RLS$(NRV^w!L&LZt0e1@NH>n2|G`^i_$ZmOsMHB?f7%uXTN=P{`J%s zH*LL`TkdUj_FntVvhS1VJwFk^r>EjC#7%3s-m~Wm`RFsCn{WKLv%&W5n{~H8ICMB= z%@oUxRlg>XY}M(^gzg7w4&~*&sea>hoZ+l5W8iyP^M1_vd&`rTsc*ofVxHr3bBmq1 zxkK5&9Gcf|wK_T%s~davrq~xu`wqD@y_LFPx2HXxvT0T8+bK^}<46DT;12!VOzoC+ zl_yW`{$O9jri1&Z?O%uV#$M8zGv9S==$W@ZmAF{-W#^inKJo5sMBiRuh$R-EUpQxH z)25^M_Wh-AW6X|>%^3($TEwLuyqUK0?#)~GwI3aP?^=Ia!_t$?vqf{a5ZwowOif-B zy7NwU)ypr=Ti@Fp{-h;o#v*Y=&A*ibG{%FxBvu2~>15^F64}U(}bum^OdiLx2E6BO|x6jSkX#eW|=Hr- zEsSPSc4AhTf&hM221wZN3rJMhs)^uIaIAa{p(5A!vo zCOZ+y5*dyvvE>ayz?oH3A^jpg7AJP`!m@P>;!DKrLn?ZM5Jt3$>%5oB>G&0h(2yAh?!?IGmaG=q-d1 z1%$Pg0onsLCPI$+Xq04IzbX&wbpB=WE-fp2tF3KRpO3=F3OoCTna5yw$I4o86Y z5GbdoS-6D342&QG#n4oqAo>B^PTmi^EEWuSBMOCZDyP_K)sR|zL{jVnG6x-C5AXp- z2uUL$k+z@!9Zf+3H7pZ}6JkYGbOi`_ zS$KX77VMCm|AAs4X`D8i%?6Y(7)eyGGsCiAa03eTgo!p0CQ?UoW6>pnlS4pcbG(p8 z$Q3Nm2v^8sgIkq3);?6hD*FH_LkR-j!<1>T!DKPz#2Csp3;QoVvLXhfju_|{mBFJ6 zo`l%&Q8>t#a_Ibs*Wf<&9qbqUb zV~P#He?TGlsdV}^t`L4^P4+yVZ&MAZ_Ny+W|B<@_B?&>ta!I91nyEZ7svXU0D4ZfY zUG^zgl9E#9ns+$^%c1Cu)0X2le@w4Z$GxgbI@877?K$+s-9>Mysq{y1P+C!e#(TTU zuJxPVPGy3x(6@KD#7u?Pw=W#`9=Y}RSq-i4AhBl;%=*)DBCES^R(q1V%98xeq(Xa5 zbqwaV7oB50@+*P{Rw?Pfzx>R}WO?Umcj=Hchqf Xm1U`Ong*`IoK#MGp>6+?RqOr(sz)-s literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/acesbs/textures/block/tobacco_crop_stage4.png b/src/main/resources/assets/acesbs/textures/block/tobacco_crop_stage4.png new file mode 100644 index 0000000000000000000000000000000000000000..7fc4aebbb16e91a38c802cac7f7eb3c61b247f45 GIT binary patch literal 4428 zcmeHKc~BH*7H=Sk9EvM~n1!_&@F3bV-E%S1VK`(s#xTGF#bOdS_H_3Q9cHG7?uHp~ z4FM9?16eIicGtoK!x}3V#H;PFvaVX=@; zIAI6Jni(q%3zZHUrd^B~f?QwP@>1u!;n}B$HYfSKtQ?HG*rFIt-TO*NOIS~T!-~V7 zZEhKU^t+ax6tf{eqP4Y1p0(rcQ~s+PUqg39MFsBeEX-XT^HN}iyP)+S)!lzyx~xCq ztu5QHrxjb84TE?8`0MY2$^E}ziAx{NzUn`>uD@^pm%@qHh+d}t2Sc6y_6OAuJ~`eV zzCJ*EZ{0QwPJ+7P1ACvTIG&O5LFBc@uhoxLz8M}Mq zmJ?6j`{&SRpItExF)&t;YmPWF5cSIU1NVoepB_1VcOtF>y6CVS=ECyV<{Me4$vi*9b*|LRWJ zzg{lVuw_Mu%Dc}jt0oTbYo$7JN*4sKjM=n6f9~Krwa=~8Ggq>(?FSxq{J#3*`|qAx zvg43%Mx+0weXF=9UsVsBYB!fveQFHqs@b!!XCyM9%2`w7K7RHOwo~Q4gL`XMwBCAO zRdXWu!Y`u{?wJsq-@+@=#_N7k=j%6?t(C`RKDao4bNW}q4QJv*->}z=sM^_Y_@*Ri z&A%@{nB#EF&fd9veebQ_4ZRzN+7I-eU0hegwT9g)xd^hZf&tl8Y|O?<)+Qw=)5U|T;wez@3C-LCo;9V5UB(O(CDAh@djd^ey%h9k>s+6Kgx{IlhOOk@% zM2<4!`TC482r$!0N(8}y%VbWcQ|eSmS51ET_$S^4?v)N>mEqEcl0)UKd z=qD}sLQtf#e41y=Ig(DVpzT8JWC)6!uy>SmR!=w-DWk2l4XElVtroosuVIfjr zVQdbM6(D11+Nw*Ry1~xIKejClUSQ6iYG` z?tLW_5=`yhA^v9LQAS9K^g44K-fuIgaY7F2H+@^C?O|M z1wyG5CPayBZSB1~GX+C-|%lOS?A24p2+oxCd%iULq3TA@Hyv;tAdO$4Hp zD=<75F(#gf?BT8CZL#BgK9NuZ{QxpBAVktE{doaDpe>w=HkKN zARIs~A!aH7@W??lcp66&0?QS$tW_rwAz;yRV%Z1^iXsF;PY5&sMdd0S!@yODsc?lF zS7{McjiZzFS&A`N{x5B@eBeayp=U8X@L%Z>d26bGF7wX3Q!C>sCK&dV1x}FO5O|`3 zrab!uSl%VFgs@v^&_Bi!c3jTL{fJeX;NKg+~@ba;vil3_QETP470F;581=j>+64_X=GO=TfN1G`75g&;j zg-I<2*m-53b%9POn`nh&e2GoxXB=ba@H2V<&@)b^#qSJVGjvUhfoUnvWY-K`(_&y+ z$}`#Zf1@kt>Bkgp2mgSa;8W?hUnfezXVxs!3z>Ro6l#O6F8;gu4v+*ovexhr6dWer zKG3eFNFWRl494_;JHf%>anA>&B;Nv}#|C|Bq2_Pox=8<{K9xQH8R;pyJCYfZcH0ew zorJQRn~%XwwwGFm`o4H^Tc@q@e0A+C6pW_iANJhnI>Lt3ch`oXZhPWT*MM-34LQ~@ zc-oiuc~|nh`{IXZ7q#qOv*=9U=y^xSBYAAj!j8|e$D#al**DsDDjHU;9*tDCbmX0` zzv0`iT{@}~-yihTha z_~nzM$6_CizO#Po!IYz|-NT`L5^(MJ*DFgaqigSyowt2O?R)(ghF%-`d|>Sz-L=wl f(EC0g4@N`xpS-#t?&_Q&Kmue)&(XK7T37pD29{SH literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/acesbs/textures/block/tobacco_crop_stage5.png b/src/main/resources/assets/acesbs/textures/block/tobacco_crop_stage5.png new file mode 100644 index 0000000000000000000000000000000000000000..899add3ed53276492f91875494571fb10dfc5024 GIT binary patch literal 4451 zcmeHKdr(tn7QcuK3TSLDq1k^%! ziONG~wd=Tu$abu)tF;R&qE0ER+m&|OZMCj#k%#EcEZe1PwJjyPer#X8RwR z`})pz&hMP_JLmf*-@cTj_yqwk20#$BK%byZ1@A@NJg-=vMaHInmg!hmW_;`2jK=%f>m{9?;U`x_e*a)`(~&HN=9Z@CFY259*FJ7y(Hp~y zF8uPe_}TX#ZFpMI^K#t~X572DDNqx1tWMXqv#s|0s+P?obB<|ybVc{7;%kV#jc7{Bplb7CI@OfW`-_a*a=0cE9ITaU|qK}K4NCu=( zzvoa?!qrW@%HC7Kx{V75;r>M@)nDp#p)Um=$U4~)yggsk_T3A|q-!DswWT>79VhK$f=R>9IUi85bw)2+zx<5dURp1u9W z@P40TVbx(Ux;5Dx()=Lw)u9L9jtD+%zVh{GXxT41h?3+rwP^SGDn*q=fgFDnop{ZjfjrZl;+e?@;))6T=f`m#(H} zFmr>fzRPc~GW7TgoF#YH?+~wve|U4reqG;4^?MO7l-t~+vQ~P~Q6CLu{NvWc1$O(q z#KRkQb>HjW)4gZ7^;CEJ>M}QTcImzBo1p0mD9~K#hD0?^TLllSse~ei+**`m#EWup6~T{*4$!#N0KiJJ z80@m<+8kZ0QeBPFuM>Hh=f+FaJq$q)fE7c@qm8R!eIn! zRG3OS=zInzbp@o24WAA{;FI?Dd?weE4uK2FT+#|u9l$I4oXdE27_8l8G+m`tv~2`R3WdiDlU!;-qzc@OU40M-Cy zBWR~%YRX7i$*nBL@rf$rz=uL4mPjNrsY*VjltwZR(2E=@DiTP%L2!jpgLDA37}u!) zz+(ZjQO7YP#?p+DrgNkCTu?A)IXP_r3yQ#4OpCE302PU4Y7_;R5tXSW3bjarh~#R~ zG<}+&%!U6;n_E7x##{6R$^rZrdPLqewUx~Cj=aNM%CneY*t0Cu817BMffbP6iUTa~ z6rPRQEF{=J#v67*PW?zT;9`kVX-1_8*F1<62M-e}7b8juCL^VCk<={v4|E4@W}O&A z###W6fGg0T97-S#_h%nqQ=paEy;#d>Y5QTY*`#cP1+-*gvu?d%@AZuGp#@<}Ye2y}X8RMruyJzWBtp zEJ2@wrt;;4fz@S|%a-rIEz0bZ z|M`A9_r0yB8#gUVed<5-0cXaIE?#=Z53lt3>d@1%io>HF$0OhPuFmat`{;c2?_bzH z)L!t$XfgZF-5~AJ(j5^N-l37sx2}Iu^3Ol$U)jq;gWmsJF>likFaF+{o>l$ku42jV zZAEqWi~U?YIDX}415ij~`J99Ee?2#``QVM1`X?nEF!Wk*sWC=OWCFe*y)H?6ZgW=Y FzX6O;UB3VT literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/acesbs/textures/block/tobacco_crop_stage6.png b/src/main/resources/assets/acesbs/textures/block/tobacco_crop_stage6.png new file mode 100644 index 0000000000000000000000000000000000000000..0ef5d738aa98ec6da3a3a4ef315ccc9f0692ba9f GIT binary patch literal 4437 zcmeHKeNYo;8ehbU1ff>6(o=MeQ1o<@-DLAQ1W*zoLI8o`z!U3ccN6wVvSG83fO<4g z3x438)%H3{727$rdLnaphhQsE(9?ROS6i(1f^n5a(&_u0aC<_z$=_~8!(xV4sKX7lNU8+LN6 zg|X2vU+kn|+QV2N$n%*!tu?p}ojE8sBtYfiVSi)N-(A2D_QoAQbI%y#UvVYu#!FWN zZp{z{Cgz^b$^ZB4&=sBj=i_4EObfX({pzOUZ3)XZnwvH0_M4^G1EZq8T-331Pgh2^ zwKd|&cbAW~pC{jbj%6sOJ#zZm@IRq z{Pr)|wFJg8QZ3Kd_b+_u`~Le+Bp=qlclYVS^0lqh%c&8&vCg_mRi#yhy!9}q;LX<~ zw>_%%T&oG16U*fm4OF=<5nk)7Rko6Y>g1JgG-ZEn&QfOfzR+9w_HXt{Ki`n0W(%@T z6kb0URZ7&=oTSdAKt0p7}Hp+jHdMnTpc(`$sQE?maPW&F*JD zsaeep_LTOYZLk!Sd}tC~@E)B1&!=GlC2nt4+h3c1XFppw?a?9cij#e(6yC{!;#MB#pPb^WN2UB$Drwo7|>kVrerP2+9d?VnrVs0?gU*2LD8`u zCqd@ZJZz?|j6)~>=4`VVW+mnnOkxQ~XOyI5k|p`1h7!ldh@w4O0AQzi z0`}N#4wu%W6Z>$r;8_q$#jwwW&)12wO=)mE%h50{!6hhS@GwO(af}F#<|vCcUB6}+ z0=((Oc|7mbN~LbMTjG{WSk5ZNG#ZT*l}TkX1Xv)hVh2xn5Ql5205OE2r(Gn+IC+M3 zzyc;=W(#?pSPb;=NPKpu$utV@a1FBn_>g)CrxcT*QoCI`-owQkiU7!PKtJi>$^kowo1pQfGd>XDK8icRdL(zBF|ab3w0f2-6v8v=bz)(CEya=yrS(0UX`Dt0 z3yt6^wHd)FjS|r)P&q=W@j+3fb`8tf2~bYPPFQKF(_!@~1j4ne(u_K>OoEO{(rg580S;gW7zf3= zU1O?D#!hGOguo}JQp(gC6{b{R7>>#0V@6pt=K{Sbpkk;*j{7u1VYDC}KrJD3Dgf}w zK{ncWjwX1P%Vb%bPAmik3!bBD6BsCp;0Zm!(*P8eDYO^{u1rj!m20#z1%fKI=s0_p zVl2h~%UT#8IC`k)iHr-ZU+fbN%~S?mF!VO`YGZuE1jD|u&=TZO3NE6ErhIV%tRWSd zM>woB*gu9Fc0|tnL^H@S8Lq@B3Nfn{6oL~ND4s@*A}R%?k||XR8KI^pqPtiN?iw9jDN76bf- zWMJz8JE3%RD;(xa*mQoz&u|@n#uWhc)FPAOcZ#klx+cZIq>QJ!Yl^N(F)%6PsqXr} z(Ipx?OwkVT56BIUN{!b|$hkk%+p__}ZSiS&~Kxbl(3xa||g|8p9zd8&E z19+p!5b#A%(7dP@27-}xaF+Hr>Q`l|FL&-;a_R$g?zYr*!954FSMRXhc`m8z?-@yT zJp<2355)Hey?6&6oEClK4>joT;r{8DR+qK-wdQ`3+f?=E=*#Qu-@G67ul$T2x#GZo zmhIXiySig@)=5uG)xo>eUG%{vS9rTI?)4c^UFV@aU8njt1lZo_I+bmg{Bh&`kZqx- zKMVeoa{l0!(%bxdgluC_ewjM3@*S=(@66ow#$zS&imbJ>qx{|l4_xBnf2_5H9qkLQ z_}1Gzkg{)9(~}S;vi{i~E8VP)ZXm5RoqeZ`9P@=!oa^b4% zqvVC_&a>w(tjGznWfyuCzxG!A<+baj5R@8Q@Y}Cc@4r?B7=nz36n*XLO=bTDi|JED literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/acesbs/textures/item/tobacco_seeds.png b/src/main/resources/assets/acesbs/textures/item/tobacco_seeds.png new file mode 100644 index 0000000000000000000000000000000000000000..4071e6de146b4d0919bd625ccb0c922f49b850bf GIT binary patch literal 4265 zcmeHKeNYo;8ed8k#lxz_mTMK)C`GSq_9NMR><|!1l&HZBq!h2Ub+h|!*pg(!?m{At zr9rER->q#Ohg#Gbd#8hShECPe5vir$U!!gPpwu4r54Go=A2(BbQhV=i0K;5oZkW0L zM<$!yecs>md!Og`KJPPmH+V}IW~4uqjvz>eyTn-r?~}A^+*tTKV&_BNo{W>kxc)%%mJ^>$%>F7iYMAGeYt;gN7}mhv&5e4mhrp0eCxNKcxp;#PT9e84d0B<&ApQS z(#Gw*<&}Xw;=g-dnfyTxw|BB6es!wEcJHD!*%#hDA3XLf+gr1)J6`n6&9j9+_x1EN zch35>V_R!`)B6ZjnsV9bJ#2j;b8B~Z*AC(MwuV(qigfzZWyo8ZHx3|3%386w*y}DX z9?S)1(6V~FqvYhgtaTUmPjx*y@haLkX%BPG<(js5>c$m&-kkd9TH@Hh?%QRaJ=eIU zvAV14weACJHnty{c&HJ*mD*>t&3(IM!-bsZA0WT0`S#?h3%BK;rlaPAOXyT`-q(4v zUTxZVtpC8-+s!GvW^S5^lI2T<2imVqd-|tq*MBj7-2Tpwcc!gb)WtuyboLgq_i&T7 zDPYB3y;)GR^QD~UZ?(iuwN98)C@-)3d9(5n8xO489IW4MTax$k+m-+DS6F;~f9z}8 z`^*mfhbJp+QccCd+Ha2MHn4|V+xVlU)tTe-W^TxIe)yMtjep8>if2m5?fY*YUElED z_18bldGX*q3$~2;s&&5H|9!)?jw3=%{l}j4_v5=C?75SbRv(R5oP4WuYpA34o?EZQ zA8ot%1|2`P^wh)CG5Ov-`awVpI}HEq=ro`r?=U=0dk9aY7*vTR^)e{0FZFTt z)tsF-6c(iC#~4Tu0xFBfLcy@Y#2f~lmx0fk88@IhM6GrhDm`AbSdsy1HkyqD=8B1R zl%XIU&6jzBDRV9upnz`a1i6o*VLy)XG6U9iGEM5QHF9fwPjsrd;Uuc!xYR z2?Am$qI*HHhapu_xGUDM*t8Kno#a5E`w;Ii^kD8f7@|BL#wl^NT6k`!!=TO2@DeBT zjQ&Xa1;T9Mt(aipD9p@LHjMQX7R*G^HWP25DUu_SsN7*iWy2iMs35sfggmrh^OF|n z2>g^CGgBrO^8+(vq&b443BqJ&g(QllvIwh^4JJpWQSp#U02Yd{&{oXk=d767Y^N|k zZvvQ&umR30SWFa0>r_0)ERf_73zt(2u>pWb!U26i6PzjXx*Z0}mNm9^Z&_X~p&!J%t+)zBLvQAb7kd&Zkh9u$FN79UmU`!-NSQsJ+ zFY%(V@_(VV?Stkg7QIAN;QT9fQ({k*gPO!!;x#Dhn+ZkrZNacyA_ax51H2w5*g?Da8^vJvTm5z#mJ-3SEM~TnBxVP&p8OQelce3k(lj-kU6BMe%F3W9 z0Cj{~!2;E_Lgx%D)!gCuXcf@b0ZN8J@+8R&_&~C_)-eXN&By;sk9-}F)MB7t!UkIx z?1cDGD;&^EYdXKtDRkiTsKjLe9)Q zTxpjlOqiNIBm2sj#n4pgb{6?;pKvR(d?yw?e!XzhRc>EuAoo^ffA0B7^P9J42cOI&7_sL^iakm*|o*ZX?@zSMzb0$x&o>Ot=-AwOi3!3+C a%R~@=J9fv=+SU!{K-{iU=b`y48vg_C;QiGA literal 0 HcmV?d00001