From 6f2ec8ed4a872c7ff51a68101d41ecaf1f216661 Mon Sep 17 00:00:00 2001 From: Flanks255 <32142731+Flanks255@users.noreply.github.com> Date: Sat, 8 Jan 2022 12:54:43 -0600 Subject: [PATCH] crops crops crops, canola atleast... --- src/generated/resources/.cache/cache | 10 ++++---- .../blockstates/canola_crop.json | 7 ------ .../models/block/canola_crop.json | 6 ----- .../actuallyadditions/models/item/canola.json | 2 +- .../models/item/canola_crop.json | 3 --- .../api/farmer/IFarmerBehavior.java | 10 ++++++++ .../data/BlockStateGenerator.java | 17 ++++++++++---- .../mod/ActuallyAdditions.java | 2 ++ .../mod/ActuallyAdditionsClient.java | 2 ++ .../mod/blocks/AABlockItem.java | 12 ++++++++++ .../mod/blocks/ActuallyBlocks.java | 22 ++++++++++-------- .../mod/blocks/BlockFarmer.java | 13 +++++++++-- .../mod/blocks/base/AACrops.java | 20 ++++++++++++++++ .../mod/blocks/metalists/TheWildPlants.java | 6 ++--- .../mod/config/CommonConfig.java | 15 ++++++++++++ .../mod/config/values/ConfigIntValues.java | 7 ------ .../mod/inventory/gui/GuiFarmer.java | 6 ++--- .../mod/items/ActuallyItems.java | 10 ++++---- .../apiimpl/farmer/DefaultFarmerBehavior.java | 21 ++++++++--------- .../mod/tile/TileEntityCoffeeMachine.java | 2 +- .../mod/tile/TileEntityFarmer.java | 7 ++++-- .../assets/actuallyadditions/lang/en_us.json | 2 +- .../textures/block/block_canola_stage_2.png | Bin 3368 -> 0 bytes .../textures/block/block_canola_stage_3.png | Bin 3502 -> 0 bytes .../textures/block/block_canola_stage_4.png | Bin 3587 -> 0 bytes .../textures/block/canola_crop.png | Bin 282 -> 0 bytes ..._canola_stage_1.png => canola_stage_1.png} | Bin .../textures/block/canola_stage_2.png | Bin 279 -> 3368 bytes .../textures/block/canola_stage_3.png | Bin 324 -> 3502 bytes .../textures/block/canola_stage_4.png | Bin 358 -> 3587 bytes 30 files changed, 131 insertions(+), 71 deletions(-) delete mode 100644 src/generated/resources/assets/actuallyadditions/blockstates/canola_crop.json delete mode 100644 src/generated/resources/assets/actuallyadditions/models/block/canola_crop.json delete mode 100644 src/generated/resources/assets/actuallyadditions/models/item/canola_crop.json create mode 100644 src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/AACrops.java delete mode 100644 src/main/resources/assets/actuallyadditions/textures/block/block_canola_stage_2.png delete mode 100644 src/main/resources/assets/actuallyadditions/textures/block/block_canola_stage_3.png delete mode 100644 src/main/resources/assets/actuallyadditions/textures/block/block_canola_stage_4.png delete mode 100644 src/main/resources/assets/actuallyadditions/textures/block/canola_crop.png rename src/main/resources/assets/actuallyadditions/textures/block/{block_canola_stage_1.png => canola_stage_1.png} (100%) diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index afe4c0a51..73c22753c 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -14,7 +14,7 @@ c93b89c4b673b6063148666b2eb13dec98918532 assets/actuallyadditions/blockstates/bl ac5d75bda4dc24894fb380d5e3ec751a0aa5c498 assets/actuallyadditions/blockstates/black_quartz_stair.json 146faa2ebbb31f320f8b336f6e675fce6faac2db assets/actuallyadditions/blockstates/black_quartz_wall.json 5dea2f0e554a5ecb9b7f547526d745ff85353a40 assets/actuallyadditions/blockstates/breaker.json -273dff01ca0d0738f05639086aa4f1b6bf3fde3c assets/actuallyadditions/blockstates/canola_crop.json +e3b6949dc703f984bc10cb5794171ab1623f7bad assets/actuallyadditions/blockstates/canola.json 5101139337dd4e5a057333e9e424df47f7138c93 assets/actuallyadditions/blockstates/canola_press.json c8d5786cd66f324b82d201e6e4eb0ae0a5978d13 assets/actuallyadditions/blockstates/charcoal_block.json 998b11d1f63e153ab2f8bd11830405611c8886a2 assets/actuallyadditions/blockstates/chiseled_black_quartz_block.json @@ -146,7 +146,10 @@ f277709029801d7292d300b13876189a32d1b3a4 assets/actuallyadditions/models/block/b 93b61ddd8e53f61ca25c4768de3a3b95a23297b4 assets/actuallyadditions/models/block/black_quartz_wall_post.json 1c617e7845d3211b4f7cda38a9bee59208de8c23 assets/actuallyadditions/models/block/black_quartz_wall_side.json 46c7aa812a7af600d4f927eba5fa3f5b4956fa28 assets/actuallyadditions/models/block/black_quartz_wall_side_tall.json -f399ee0d5977015e82c733336cd6317dee65aefe assets/actuallyadditions/models/block/canola_crop.json +ee7cee63dc7889fac05160a97ab0664920269ed7 assets/actuallyadditions/models/block/canola_1.json +981ceb96a82d90cdf636fd5c763c39dae7c923b5 assets/actuallyadditions/models/block/canola_2.json +ca75d2ce24c66949daf7cd966a89a3a6e19d6ac5 assets/actuallyadditions/models/block/canola_3.json +ead34cc4f003d8b748dc723f2bbff74e03f90270 assets/actuallyadditions/models/block/canola_4.json 49e551c7f9943bd24b1fa09fb65836bae48096df assets/actuallyadditions/models/block/charcoal_block.json 48a6232ced27b9a35fc236705adb2ea817a03b3f assets/actuallyadditions/models/block/chiseled_black_quartz_slab.json 85a969896c0aad4f70878d4c075c6c0885a5ade4 assets/actuallyadditions/models/block/chiseled_black_quartz_slab_top.json @@ -250,8 +253,7 @@ dfb8604b25fc7a671c371a81e3384410c69cc7b1 assets/actuallyadditions/models/item/bl ea2f5b2bf99670f4df05889ab67c73686a26a58b assets/actuallyadditions/models/item/black_quartz_stair.json be227e074a54982e1e9f9f304e63df3095006955 assets/actuallyadditions/models/item/black_quartz_wall.json 3679056a9aee03821a997a2616b8808af7bfe4b7 assets/actuallyadditions/models/item/breaker.json -e1b2c741f6da5cfb51392b1a722c4d664ae2400e assets/actuallyadditions/models/item/canola.json -89b4704399440cae3ffdee004e5df95cbc0ab0d8 assets/actuallyadditions/models/item/canola_crop.json +3c7aff42e6babc0cc4d06900ad73bb7c2b233ce0 assets/actuallyadditions/models/item/canola.json e4b8fbed9602c0cf96eff84111586799412982fc assets/actuallyadditions/models/item/canola_oil_bucket.json 08c70d561c219bb4c6d21b5f56192df81f054e0a assets/actuallyadditions/models/item/canola_press.json 0507025fadef30e363cbc825265576c782880f7b assets/actuallyadditions/models/item/canola_seeds.json diff --git a/src/generated/resources/assets/actuallyadditions/blockstates/canola_crop.json b/src/generated/resources/assets/actuallyadditions/blockstates/canola_crop.json deleted file mode 100644 index d5a2038ac..000000000 --- a/src/generated/resources/assets/actuallyadditions/blockstates/canola_crop.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "actuallyadditions:block/canola_crop" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/actuallyadditions/models/block/canola_crop.json b/src/generated/resources/assets/actuallyadditions/models/block/canola_crop.json deleted file mode 100644 index adcd0e9aa..000000000 --- a/src/generated/resources/assets/actuallyadditions/models/block/canola_crop.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "actuallyadditions:block/canola_crop" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/actuallyadditions/models/item/canola.json b/src/generated/resources/assets/actuallyadditions/models/item/canola.json index e5e18a902..6e63a417c 100644 --- a/src/generated/resources/assets/actuallyadditions/models/item/canola.json +++ b/src/generated/resources/assets/actuallyadditions/models/item/canola.json @@ -1,5 +1,5 @@ { - "parent": "minecraft:item/handheld", + "parent": "actuallyadditions:block/canola", "textures": { "layer0": "actuallyadditions:item/canola" } diff --git a/src/generated/resources/assets/actuallyadditions/models/item/canola_crop.json b/src/generated/resources/assets/actuallyadditions/models/item/canola_crop.json deleted file mode 100644 index d82401959..000000000 --- a/src/generated/resources/assets/actuallyadditions/models/item/canola_crop.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "actuallyadditions:block/canola_crop" -} \ No newline at end of file diff --git a/src/main/java/de/ellpeck/actuallyadditions/api/farmer/IFarmerBehavior.java b/src/main/java/de/ellpeck/actuallyadditions/api/farmer/IFarmerBehavior.java index c9a1ed5e4..80266d3e7 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/api/farmer/IFarmerBehavior.java +++ b/src/main/java/de/ellpeck/actuallyadditions/api/farmer/IFarmerBehavior.java @@ -10,7 +10,9 @@ package de.ellpeck.actuallyadditions.api.farmer; +import de.ellpeck.actuallyadditions.api.ActuallyAdditionsAPI; import de.ellpeck.actuallyadditions.api.internal.IFarmer; +import de.ellpeck.actuallyadditions.mod.misc.apiimpl.farmer.*; import net.minecraft.item.ItemStack; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; @@ -45,4 +47,12 @@ public interface IFarmerBehavior { default Integer getPrioInt() { return getPriority(); } + + static void initBehaviors() { + ActuallyAdditionsAPI.addFarmerBehavior(new DefaultFarmerBehavior()); + ActuallyAdditionsAPI.addFarmerBehavior(new CactusFarmerBehavior()); + ActuallyAdditionsAPI.addFarmerBehavior(new NetherWartFarmerBehavior()); + ActuallyAdditionsAPI.addFarmerBehavior(new ReedFarmerBehavior()); + ActuallyAdditionsAPI.addFarmerBehavior(new MelonPumpkinFarmerBehavior()); + } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/data/BlockStateGenerator.java b/src/main/java/de/ellpeck/actuallyadditions/data/BlockStateGenerator.java index a442c7259..b3584f46c 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/data/BlockStateGenerator.java +++ b/src/main/java/de/ellpeck/actuallyadditions/data/BlockStateGenerator.java @@ -3,10 +3,7 @@ package de.ellpeck.actuallyadditions.data; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks; import de.ellpeck.actuallyadditions.mod.fluids.InitFluids; -import net.minecraft.block.Block; -import net.minecraft.block.SlabBlock; -import net.minecraft.block.StairsBlock; -import net.minecraft.block.WallBlock; +import net.minecraft.block.*; import net.minecraft.data.DataGenerator; import net.minecraft.state.properties.BlockStateProperties; import net.minecraft.util.ResourceLocation; @@ -117,8 +114,18 @@ public class BlockStateGenerator extends BlockStateProvider { buildLitState(ActuallyBlocks.LAMP_BLACK); // TO BE SORTED + getVariantBuilder(ActuallyBlocks.CANOLA.get()).partialState() + .with(CropsBlock.AGE, 0).modelForState().modelFile(models().crop("canola_1", modLoc("block/canola_stage_1"))).addModel().partialState() + .with(CropsBlock.AGE, 1).modelForState().modelFile(models().crop("canola_2", modLoc("block/canola_stage_2"))).addModel().partialState() + .with(CropsBlock.AGE, 2).modelForState().modelFile(models().crop("canola_2", modLoc("block/canola_stage_2"))).addModel().partialState() + .with(CropsBlock.AGE, 3).modelForState().modelFile(models().crop("canola_2", modLoc("block/canola_stage_2"))).addModel().partialState() + .with(CropsBlock.AGE, 4).modelForState().modelFile(models().crop("canola_3", modLoc("block/canola_stage_3"))).addModel().partialState() + .with(CropsBlock.AGE, 5).modelForState().modelFile(models().crop("canola_3", modLoc("block/canola_stage_3"))).addModel().partialState() + .with(CropsBlock.AGE, 6).modelForState().modelFile(models().crop("canola_3", modLoc("block/canola_stage_3"))).addModel().partialState() + .with(CropsBlock.AGE, 7).modelForState().modelFile(models().crop("canola_4", modLoc("block/canola_stage_4"))).addModel(); + buildCubeAll(ActuallyBlocks.RICE); - buildCubeAll(ActuallyBlocks.CANOLA); + //buildCubeAll(ActuallyBlocks.CANOLA); buildCubeAll(ActuallyBlocks.FLAX); buildCubeAll(ActuallyBlocks.COFFEE); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/ActuallyAdditions.java b/src/main/java/de/ellpeck/actuallyadditions/mod/ActuallyAdditions.java index 36107410a..d6dd1287c 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/ActuallyAdditions.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/ActuallyAdditions.java @@ -11,6 +11,7 @@ package de.ellpeck.actuallyadditions.mod; import de.ellpeck.actuallyadditions.api.ActuallyAdditionsAPI; +import de.ellpeck.actuallyadditions.api.farmer.IFarmerBehavior; import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks; import de.ellpeck.actuallyadditions.mod.config.CommonConfig; import de.ellpeck.actuallyadditions.mod.crafting.ActuallyRecipes; @@ -119,6 +120,7 @@ public class ActuallyAdditions { eventBus.addListener(this::setup); eventBus.addListener(this::clientSetup); + IFarmerBehavior.initBehaviors(); } private static void reloadEvent(AddReloadListenerEvent event) { diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/ActuallyAdditionsClient.java b/src/main/java/de/ellpeck/actuallyadditions/mod/ActuallyAdditionsClient.java index 8cb780d25..edd8fab10 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/ActuallyAdditionsClient.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/ActuallyAdditionsClient.java @@ -79,6 +79,8 @@ public class ActuallyAdditionsClient { RenderTypeLookup.setRenderLayer(InitFluids.CRYSTALIZED_OIL.getFlowing(), RenderType.translucent()); RenderTypeLookup.setRenderLayer(InitFluids.EMPOWERED_OIL.get(), RenderType.translucent()); RenderTypeLookup.setRenderLayer(InitFluids.EMPOWERED_OIL.getFlowing(), RenderType.translucent()); + + RenderTypeLookup.setRenderLayer(ActuallyBlocks.CANOLA.get(), RenderType.cutout()); } private static void setupSpecialRenders() { diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/AABlockItem.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/AABlockItem.java index 1c65933a2..5b75e0acf 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/AABlockItem.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/AABlockItem.java @@ -2,9 +2,21 @@ package de.ellpeck.actuallyadditions.mod.blocks; import net.minecraft.block.Block; import net.minecraft.item.BlockItem; +import net.minecraft.item.BlockNamedItem; public class AABlockItem extends BlockItem { public AABlockItem(Block blockIn, Properties builder) { super(blockIn, builder); } + + public static class AASeedItem extends BlockNamedItem { + public AASeedItem(Block block, Properties properties) { + super(block, properties); + } + + @Override + public String getDescriptionId() { + return this.getOrCreateDescriptionId(); + } + } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/ActuallyBlocks.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/ActuallyBlocks.java index 741dc0fd3..cc403b8aa 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/ActuallyBlocks.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/ActuallyBlocks.java @@ -11,6 +11,7 @@ package de.ellpeck.actuallyadditions.mod.blocks; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; +import de.ellpeck.actuallyadditions.mod.blocks.base.AACrops; import de.ellpeck.actuallyadditions.mod.blocks.base.BlockPlant; import de.ellpeck.actuallyadditions.mod.items.ActuallyItems; import de.ellpeck.actuallyadditions.mod.items.metalists.Crystals; @@ -20,11 +21,14 @@ import net.minecraft.block.*; import net.minecraft.block.material.Material; import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntityType; +import net.minecraft.util.IItemProvider; import net.minecraftforge.common.ToolType; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; +import java.util.function.Supplier; + public final class ActuallyBlocks { public static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, ActuallyAdditions.MODID); public static final DeferredRegister> TILES = DeferredRegister.create(ForgeRegistries.TILE_ENTITIES, ActuallyAdditions.MODID); @@ -259,17 +263,11 @@ public final class ActuallyBlocks { (b) -> new AABlockItem(b, defaultBlockItemProperties)); - //public static final AABlockReg<> WILD_PLANT = new AABlockReg<>("wild", BlockWildPlant::new); //TODO: what is this? + public static Supplier CANOLA = BLOCKS.register("canola", () -> new AACrops(defaultCropProps(), ActuallyItems.CANOLA_SEEDS)); + public static Supplier RICE = BLOCKS.register("rice", () -> new AACrops(defaultCropProps(), ActuallyItems.RICE_SEEDS)); + public static Supplier FLAX = BLOCKS.register("flax", () -> new AACrops(defaultCropProps(), ActuallyItems.FLAX_SEEDS)); + public static Supplier COFFEE = BLOCKS.register("coffee", () -> new AACrops(defaultCropProps(), ActuallyItems.COFFEE_SEEDS)); - //TODO: Are plants normal blocks / blockitems? i have no idea... news at 11... - public static final AABlockReg RICE = new AABlockReg<>("rice", () -> new BlockPlant(ActuallyItems.RICE_SEEDS), - (b) -> new AABlockItem(b, defaultBlockItemProperties)); - public static final AABlockReg CANOLA = new AABlockReg<>("canola_crop", () -> new BlockPlant(ActuallyItems.CANOLA_SEEDS), - (b) -> new AABlockItem(b, defaultBlockItemProperties)); - public static final AABlockReg FLAX = new AABlockReg<>("flax", () -> new BlockPlant(ActuallyItems.FLAX_SEEDS), - (b) -> new AABlockItem(b, defaultBlockItemProperties)); - public static final AABlockReg COFFEE = new AABlockReg<>("coffee", () -> new BlockPlant(ActuallyItems.COFFEE_SEEDS), - (b) -> new AABlockItem(b, defaultBlockItemProperties)); public static final AABlockReg GREENHOUSE_GLASS = new AABlockReg<>("greenhouse_glass", BlockGreenhouseGlass::new, (b) -> new AABlockItem(b, defaultBlockItemProperties)); @@ -281,6 +279,10 @@ public final class ActuallyBlocks { return AbstractBlock.Properties.of(Material.STONE).harvestLevel(harvestLevel).harvestTool(ToolType.PICKAXE).strength(1.5F, 10.0F).sound(SoundType.STONE); } + public static AbstractBlock.Properties defaultCropProps() { + return AbstractBlock.Properties.of(Material.PLANT).noCollission().randomTicks().instabreak().sound(SoundType.CROP); + } + public static void init(IEventBus evt) { BLOCKS.register(evt); TILES.register(evt); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFarmer.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFarmer.java index 11f00c9a6..6e3be812d 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFarmer.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockFarmer.java @@ -11,6 +11,7 @@ package de.ellpeck.actuallyadditions.mod.blocks; import de.ellpeck.actuallyadditions.mod.blocks.base.DirectionalBlock; +import de.ellpeck.actuallyadditions.mod.tile.TileEntityCanolaPress; import de.ellpeck.actuallyadditions.mod.tile.TileEntityFarmer; import net.minecraft.block.BlockState; import net.minecraft.entity.player.PlayerEntity; @@ -24,17 +25,25 @@ import net.minecraft.util.math.shapes.VoxelShape; import net.minecraft.world.IBlockReader; import net.minecraft.world.World; +import javax.annotation.Nullable; + public class BlockFarmer extends DirectionalBlock.Container { public BlockFarmer() { super(ActuallyBlocks.defaultPickProps(0)); } - //@Override - public TileEntity newBlockEntity(IBlockReader worldIn) { + @Nullable + @Override + public TileEntity createTileEntity(BlockState state, IBlockReader world) { return new TileEntityFarmer(); } + @Override + public boolean hasTileEntity(BlockState state) { + return true; + } + @Override public ActionResultType use(BlockState state, World worldIn, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { return this.openGui(worldIn, player, pos, TileEntityFarmer.class); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/AACrops.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/AACrops.java new file mode 100644 index 000000000..9f1b5ce12 --- /dev/null +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/AACrops.java @@ -0,0 +1,20 @@ +package de.ellpeck.actuallyadditions.mod.blocks.base; + +import net.minecraft.block.CropsBlock; +import net.minecraft.item.Item; +import net.minecraft.util.IItemProvider; + +import java.util.function.Supplier; + +public class AACrops extends CropsBlock { + Supplier itemSupplier; + public AACrops(Properties p_i48421_1_, Supplier seedSupplier) { + super(p_i48421_1_); + this.itemSupplier = seedSupplier; + } + + @Override + protected IItemProvider getBaseSeedId() { + return this.itemSupplier.get(); + } +} diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/metalists/TheWildPlants.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/metalists/TheWildPlants.java index 4ef31bfed..8ed3571c3 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/metalists/TheWildPlants.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/metalists/TheWildPlants.java @@ -8,7 +8,7 @@ * © 2015-2017 Ellpeck */ -package de.ellpeck.actuallyadditions.mod.blocks.metalists; +/*package de.ellpeck.actuallyadditions.mod.blocks.metalists; import com.google.common.base.Preconditions; import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks; @@ -19,7 +19,7 @@ import net.minecraft.util.IStringSerializable; @Deprecated public enum TheWildPlants implements IStringSerializable { - CANOLA("canola", Rarity.RARE, ActuallyBlocks.CANOLA.getBlock()), + CANOLA("canola", Rarity.RARE, ActuallyBlocks.CANOLA.get()), FLAX("flax", Rarity.RARE, ActuallyBlocks.FLAX.getBlock()), RICE("rice", Rarity.RARE, ActuallyBlocks.RICE.getBlock()), COFFEE("coffee", Rarity.RARE, ActuallyBlocks.COFFEE.getBlock()); @@ -46,4 +46,4 @@ public enum TheWildPlants implements IStringSerializable { public Block getNormalVersion() { return this.normal; } -} +}*/ diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/config/CommonConfig.java b/src/main/java/de/ellpeck/actuallyadditions/mod/config/CommonConfig.java index 8e0a3388c..799f97885 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/config/CommonConfig.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/config/CommonConfig.java @@ -11,9 +11,23 @@ public class CommonConfig { static { OTHER.build(); + MACHINES.build(); COMMON_CONFIG = BUILDER.build(); } + public static class MACHINES { + public static ForgeConfigSpec.IntValue FARMER_AREA; + + public static void build() { + BUILDER.comment("Machine Settings").push("machineSettings"); + + FARMER_AREA = BUILDER.comment("The size of the farmer's farming area. Default is 9x9, must be an odd number.").defineInRange("farmerArea", 9, 1, Integer.MAX_VALUE); + + BUILDER.pop(); + } + } + + public static class OTHER { public static ForgeConfigSpec.BooleanValue SOLID_XP_ALWAYS_ORBS; public static ForgeConfigSpec.BooleanValue DO_UPDATE_CHECK; @@ -39,6 +53,7 @@ public class CommonConfig { public static void build() { + BUILDER.comment("Everything else").push("other"); SOLID_XP_ALWAYS_ORBS = BUILDER.comment("If true, Solidified Experience will always spawn orbs, even for regular players.") diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/config/values/ConfigIntValues.java b/src/main/java/de/ellpeck/actuallyadditions/mod/config/values/ConfigIntValues.java index 185e8f0f1..a09d6dc8f 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/config/values/ConfigIntValues.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/config/values/ConfigIntValues.java @@ -77,13 +77,6 @@ public enum ConfigIntValues { 300000, Integer.MAX_VALUE, "The amount of power the atomic reconstructor can store."), - FARMER_AREA( - "Farmer Area", - ConfigCategories.MACHINE_VALUES, - 9, - 1, - Integer.MAX_VALUE, - "The size of the farmer's farming area. Default is 9x9, must be an odd number."), MINING_LENS_USE( "Mining Lens Energy", ConfigCategories.MACHINE_VALUES, diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFarmer.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFarmer.java index 3a5b9540e..56025ee4e 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFarmer.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiFarmer.java @@ -44,11 +44,9 @@ public class GuiFarmer extends AAScreen { super.init(); this.energy = new EnergyDisplay(this.leftPos + 33, this.topPos + 6, this.farmer.storage); - } - @Override - public void renderLabels(@Nonnull MatrixStack matrices, int x, int y) { - AssetUtil.displayNameString(matrices, this.font, this.imageWidth, -10, this.farmer); + titleLabelX = (int) (imageWidth / 2.0f - font.width(title) / 2.0f); + titleLabelY = -10; } @Override diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ActuallyItems.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ActuallyItems.java index 1befefdaa..3f338fd42 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ActuallyItems.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ActuallyItems.java @@ -13,6 +13,8 @@ package de.ellpeck.actuallyadditions.mod.items; import com.google.common.collect.ImmutableSet; import de.ellpeck.actuallyadditions.api.ActuallyAdditionsAPI; import de.ellpeck.actuallyadditions.mod.ActuallyAdditions; +import de.ellpeck.actuallyadditions.mod.blocks.AABlockItem; +import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks; import de.ellpeck.actuallyadditions.mod.items.base.ItemArmorAA; import de.ellpeck.actuallyadditions.mod.items.base.ItemBase; import de.ellpeck.actuallyadditions.mod.items.base.ItemHoeAA; @@ -189,10 +191,10 @@ public final class ActuallyItems { public static final RegistryObject HAIRY_BALL = ITEMS.register("hairy_ball", ItemHairBall::new); public static final RegistryObject COFFEE_BEANS = ITEMS.register("coffee_beans", ItemCoffeeBean::new); - public static final RegistryObject RICE_SEEDS = ITEMS.register("rice_seeds", ItemBase::new); //() -> new ItemSeed("seedRice", ActuallyBlocks.RICE.get(), FOOD.get(), TheFoods.RICE.ordinal())); - public static final RegistryObject CANOLA_SEEDS = ITEMS.register("canola_seeds", ItemBase::new); //() -> new ItemFoodSeed("seedCanola", ActuallyBlocks.CANOLA, itemMisc, 0, 1, 0.01F, 10).setPotionEffect(new PotionEffect(MobEffects.NAUSEA, 1000, 0), 0.2F)); - public static final RegistryObject FLAX_SEEDS = ITEMS.register("flax_seeds", ItemBase::new); //() -> new ItemSeed("seedFlax", ActuallyBlocks.FLAX, Items.STRING, 0)); - public static final RegistryObject COFFEE_SEEDS = ITEMS.register("coffee_seeds", ItemBase::new); //() -> new ItemSeed("seedCoffeeBeans", ActuallyBlocks.COFFEE, COFFEE_BEANS, 0)); + public static final RegistryObject RICE_SEEDS = ITEMS.register("rice_seeds", () -> new AABlockItem.AASeedItem(ActuallyBlocks.RICE.get(), ActuallyItems.defaultProps())); //() -> new ItemSeed("seedRice", ActuallyBlocks.RICE.get(), FOOD.get(), TheFoods.RICE.ordinal())); + public static final RegistryObject CANOLA_SEEDS = ITEMS.register("canola_seeds", () -> new AABlockItem.AASeedItem(ActuallyBlocks.CANOLA.get(), ActuallyItems.defaultProps())); //() -> new ItemFoodSeed("seedCanola", ActuallyBlocks.CANOLA, itemMisc, 0, 1, 0.01F, 10).setPotionEffect(new PotionEffect(MobEffects.NAUSEA, 1000, 0), 0.2F)); + public static final RegistryObject FLAX_SEEDS = ITEMS.register("flax_seeds", () -> new AABlockItem.AASeedItem(ActuallyBlocks.FLAX.get(), ActuallyItems.defaultProps())); //() -> new ItemSeed("seedFlax", ActuallyBlocks.FLAX, Items.STRING, 0)); + public static final RegistryObject COFFEE_SEEDS = ITEMS.register("coffee_seeds", () -> new AABlockItem.AASeedItem(ActuallyBlocks.COFFEE.get(), ActuallyItems.defaultProps())); //() -> new ItemSeed("seedCoffeeBeans", ActuallyBlocks.COFFEE, COFFEE_BEANS, 0)); // TOOLS & ARMOR public static final RegistryObject QUARTZ_HELMET = ITEMS.register("quartz_helmet", () -> new ItemArmorAA(ArmorMaterials.QUARTZ, EquipmentSlotType.HEAD)); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/misc/apiimpl/farmer/DefaultFarmerBehavior.java b/src/main/java/de/ellpeck/actuallyadditions/mod/misc/apiimpl/farmer/DefaultFarmerBehavior.java index f7d6badd4..e842fcf2d 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/misc/apiimpl/farmer/DefaultFarmerBehavior.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/misc/apiimpl/farmer/DefaultFarmerBehavior.java @@ -20,12 +20,15 @@ import net.minecraft.item.BlockItem; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; +import net.minecraft.loot.LootContext; +import net.minecraft.state.properties.BlockStateProperties; import net.minecraft.util.*; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraft.world.server.ServerWorld; import net.minecraftforge.common.IPlantable; import net.minecraftforge.common.Tags; +import net.minecraftforge.common.ToolType; import net.minecraftforge.common.util.FakePlayerFactory; import java.util.ArrayList; @@ -83,12 +86,11 @@ public class DefaultFarmerBehavior implements IFarmerBehavior { return this.doFarmerStuff(state, world, pos, farmer); } } - // TODO: [port] come back and see what this is actually doing - // else if (CropsBlock.AGE.equals(block.getBlockState().getProperty("age"))) { - // if (state.get(BlockStateProperties.AGE_0_7) >= 7 && !(block instanceof StemBlock)) { - // return this.doFarmerStuff(state, world, pos, farmer); - // } - // } + else if (state.hasProperty(BlockStateProperties.AGE_25)) { + if (state.getValue(BlockStateProperties.AGE_25) >= 7 && !(block instanceof StemBlock)) { + return this.doFarmerStuff(state, world, pos, farmer); + } + } } return FarmerResult.FAIL; } @@ -177,15 +179,13 @@ public class DefaultFarmerBehavior implements IFarmerBehavior { if (!player.mayUseItemAt(pos.relative(Direction.UP), Direction.UP, itemstack)) { return ActionResultType.FAIL; } else { - /* int hook = net.minecraftforge.event.ForgeEventFactory.onHoeUse(itemstack, player, world, pos); +/* int hook = net.minecraftforge.event.ForgeEventFactory.onHoeUse(itemstack, player, world, pos); if (hook != 0) { return hook > 0 ? ActionResultType.SUCCESS : ActionResultType.FAIL; } - BlockState iblockstate = world.getBlockState(pos); - Block block = iblockstate.getBlock(); if (world.isEmptyBlock(pos.above())) { if (block == Blocks.GRASS || block == Blocks.GRASS_PATH) { @@ -204,8 +204,7 @@ public class DefaultFarmerBehavior implements IFarmerBehavior { default: } } - } -*/ + }*/ return ActionResultType.PASS; } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCoffeeMachine.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCoffeeMachine.java index c4aebbbca..5a300e6a0 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCoffeeMachine.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityCoffeeMachine.java @@ -186,7 +186,7 @@ public class TileEntityCoffeeMachine extends TileEntityInventoryBase implements this.storage.extractEnergyInternal(ENERGY_USED, false); if (this.brewTime >= TIME_USED) { this.brewTime = 0; - ItemStack output = new ItemStack(ActuallyBlocks.COFFEE.getItem()); + ItemStack output = new ItemStack(ActuallyItems.COFFEE_BEANS.get()); for (int i = 3; i < this.inv.getSlots(); i++) { if (StackUtil.isValid(this.inv.getStackInSlot(i))) { CoffeeIngredient ingredient = ItemCoffee.getIngredientFromStack(this.inv.getStackInSlot(i)); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFarmer.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFarmer.java index b1f016954..6cbd8041b 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFarmer.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityFarmer.java @@ -15,6 +15,7 @@ import de.ellpeck.actuallyadditions.api.farmer.FarmerResult; import de.ellpeck.actuallyadditions.api.farmer.IFarmerBehavior; import de.ellpeck.actuallyadditions.api.internal.IFarmer; import de.ellpeck.actuallyadditions.mod.blocks.ActuallyBlocks; +import de.ellpeck.actuallyadditions.mod.config.CommonConfig; import de.ellpeck.actuallyadditions.mod.config.values.ConfigIntValues; import de.ellpeck.actuallyadditions.mod.inventory.ContainerFarmer; import de.ellpeck.actuallyadditions.mod.util.ItemStackHandlerAA.IAcceptor; @@ -33,6 +34,7 @@ import net.minecraft.util.Direction; import net.minecraft.util.math.BlockPos; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.StringTextComponent; +import net.minecraft.util.text.TranslationTextComponent; import net.minecraft.world.World; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.energy.IEnergyStorage; @@ -92,7 +94,7 @@ public class TileEntityFarmer extends TileEntityInventoryBase implements IFarmer this.waitTime--; if (this.waitTime <= 0) { - int area = ConfigIntValues.FARMER_AREA.getValue(); + int area = CommonConfig.MACHINES.FARMER_AREA.get(); if (area % 2 == 0) { area++; } @@ -130,6 +132,7 @@ public class TileEntityFarmer extends TileEntityInventoryBase implements IFarmer SORTED_FARMER_BEHAVIORS.clear(); SORTED_FARMER_BEHAVIORS.addAll(ActuallyAdditionsAPI.FARMER_BEHAVIORS); Collections.sort(SORTED_FARMER_BEHAVIORS, (b1, b2) -> b2.getPrioInt().compareTo(b1.getPrioInt())); + sorted = true; } private void checkBehaviors(BlockPos query) { @@ -237,7 +240,7 @@ public class TileEntityFarmer extends TileEntityInventoryBase implements IFarmer @Override public ITextComponent getDisplayName() { - return StringTextComponent.EMPTY; + return new TranslationTextComponent("container.actuallyadditions.farmer"); } @Nullable diff --git a/src/main/resources/assets/actuallyadditions/lang/en_us.json b/src/main/resources/assets/actuallyadditions/lang/en_us.json index 1cf5e2acf..d8104ae42 100644 --- a/src/main/resources/assets/actuallyadditions/lang/en_us.json +++ b/src/main/resources/assets/actuallyadditions/lang/en_us.json @@ -295,7 +295,7 @@ "item.actuallyadditions.coffee": "Cup with Coffee", "item.actuallyadditions.coffee_seed": "Coffee Seeds", "item.actuallyadditions.coffee_beans": "Coffee Beans", - "item.actuallyadditions.canola_seed": "Canola Seeds", + "item.actuallyadditions.canola_seeds": "Canola Seeds", "item.actuallyadditions.canola": "Canola", "item.actuallyadditions.resonant_rice": "Resonant Rice", "item.actuallyadditions.drill_upgrade_speed": "Drill Speed Augment I", diff --git a/src/main/resources/assets/actuallyadditions/textures/block/block_canola_stage_2.png b/src/main/resources/assets/actuallyadditions/textures/block/block_canola_stage_2.png deleted file mode 100644 index 9e8ee12c13e714d918c2a7a6a4f0a811f695d765..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3368 zcmcInYitxn96uXGDVAU%2qcDeF+8GsJNvrZT{*DyO54OMO?#wmVhpo0v)6^Y-DP*% zyY`#?VB!P6U`RB^L_V1i5itfIfYxuu1SJ7Kv@seIq(l)DG!YYvv-j9u^-3F&&E4Ma z%zyrm-~8q`b1(Mxbhb2aY>vfZE!|z|KKi>l{64sx-Z$O64e8Gcw`<6c#a6BfzxT!7 zcym2{n6a{h!C>YY9XW+K#EwDYrGiVXW3e5(N-jhPNx&E+XW1$C#;2dLjD=I|fRX_j zx19`IUE?0^6j*?Ct6i5J>QXy~qdMU-0{p$2NZ01>}Y!Vzyv29^M zW-!ysv^ySQ5^=yG07NFK#f5|{tLl@C2t>exBrgC?6m^i$6^W@{ERE)2Q}0Xfsm7vj zDRwvrT%G5O#bUfD#T_rl3!0|!K;%V{qZXV$W(Tmu+5YC5hcxk#XSspp*i7gV8qP?N zVriz85(;kQ*7mC~QNZ{Tba^2T!jj5{7)5sOh?g%1$A~9+QXqEVQ(Gajb%&k6@rRuS zTu0sW0#Il(nJ7lXTndFKgdcQ_(lV-mG_>}!V=m$Qi0_Peh;)q7G&k3(@q<1xhvyQ8 zQ}bwWV3`Yy4SVJlMM~BJreRNH>gw$tfq~;?9VcJoPHzoGMik?K**0L=*eUwk!y2js zNE!wt#fC)UD2pVJ6=WR<^z%e`2NlzdgDrEc-c;ZOIV%EPqSn$pQ_5lt1GuO$M!M;E z1xV+>D!?4!T|37z(ah@YPTuioV49s&-`?Hc-s?H0m8TtkU*~S7yQ4iJXo&HkZ1}g3Dl2<1d}5W5RniKLQJa)X`xd$G$j}=#1va=91Q81AE`7ZML;hq2lT2A z8d{`(u6v(t(YX*=CL~q`{(h=)6lNN$+}3NANPaMFQDpo|5{derq4_;jfac(;mEJ}t z#ium&tMarP=BiJ5YiDDm4GjV$B~1=MS>rIE2tnBtIawj9kwlVc5OD_|Did{45xoU{ z5kZk8EE=3>DuC0HvdKXMDqI2ya#E0>f@P`BSJ`VNMgGpUl(k3ivclTNs#)}tLs33V zS#ETQDiejm#Y!++ZMGWHbt%NCxGfG7N{Krx;)j5Q&m18!8bvlOT~3 zu#D*%6bYAvf{YWGs92?IupvZ37Rb6lH%w3yum1v3)i)Z3c8<`!pTCP@5Rp_x#44wV zib>U#%9DXZRRgAmB`g>i8;y!-sKocU7_=w@7Mb*r7ZFJo1`QL>s^dUC&!QBVGUNWA zc#AS_X?w`O8F!B-sjO2Kx#9n*M3wh+1<5_(>MS2!^oE+VL=Mukj7~SiMYhPL2zSWn z(3^9&TV$vrWf(--(^UsTKU7-j2AG_0SS@rPsBkwm) z^sas3_VF3^k7X166Wim5-z}VY?6-Bdnp)02-IGdxG<9)mruFEB(a8a~^{JL)+qXR& zZ~5+;`^&9evp0QyGy976#kSu!{dzpc2j|AupIw#zo}E6udh6v*_kkalZ@Dt`{IxT! z=YKx+@mC)ldws*Q^iQuHnzb*jx}08iwdu?^Z(qMWIkoZI*_F@D#A1&gePrEMcFUei z16Nw@{jFDoq_!bD zy?1orXzu>CnFFWRH=R89$@y69)!DO0CRd(+d0*zkhbAwE|7E&6deSF$@1OV^4cl3` diff --git a/src/main/resources/assets/actuallyadditions/textures/block/block_canola_stage_3.png b/src/main/resources/assets/actuallyadditions/textures/block/block_canola_stage_3.png deleted file mode 100644 index b603b48c99679c2dbe25b9aa2b1ab2c900eecdc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3502 zcmcInd5qLl7%vNoKo*F~;qr$~F@h{_+P)ssmYs!VW?|Pb>t=V5T~zc<`?_11X=~fv z8PMRd9#J9!Di}nK@d$r-MNqs!0vZK@=pTkegBZmlM(|9GMtz-&L3i1WM>ErD-}k-m z_`Tovy*GEZw=J$6UpJnjsM^++Lqj7&>`KG zY^URnhiN&&0iEL@9aST|EQ*RUmxdhVST4%)9Dq>cWK9z2(!~&Oo?&VoiA5z}}8g1I6424Fo)6v zoInANF(HuvVUfV4cv0hc@~IE+Tv0XY7?!!JT9pU9n1Y-p2pSYmQza}mP=JP2HgwH& zyeuMXU}aGcW?j37p(`t^#hr}f5yvDtp?bVE9&h&?)5;Km-?4Zh-P#iDUx?&eS7EH(%HvE|!Xn7{#USKrN%!dz(tu9ERZhK$ zEQ(KP>X+KnLex`w%2290j4o*V8hNtOca~m zkhU-{34#IB0Gbj9)Tn3zltvPebzY3}0+I|-sIpbCS`3jrb1sG6qqSIJZmUXBbmHqO z@z8~KqanSxP{W&DA`g+>3wwTyF+C?sR|=XA92&W9#?lM4W&3TTv_n+jWQO$Pqy95P1O-J*E0_l+ z)*;{x(Ey4HF{wdbG-LxShJwlv{{`eT66yG78!Pt0t{8h)$$NI1BZ{5!#8=U9N)1`>eeHN^T|K%+)GiTGOdZG zlydhAoxDA;VDi?pj-B6faP0bR>2U+SSH6Wj~0cYOVN zLw()1%WK}gcl>oRrms76>xRxf<1%ei=bd{&{?UEU zuU-DhFYg`y>6-=CYH7->IUDz_`!sRe?l11S`XYNY)$;pvb!lNetY1PpR8rGo}N*+qVeF; z<{8Yu{(07fkB%;-7QDaW^-V&4Qe*4H@21^9@c4~2C+6nEe^jl_ZHZ?VUUSQz2nmN7 diff --git a/src/main/resources/assets/actuallyadditions/textures/block/block_canola_stage_4.png b/src/main/resources/assets/actuallyadditions/textures/block/block_canola_stage_4.png deleted file mode 100644 index 3e7952698d58ad8f156044b52607f05beee9c757..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3587 zcmcIneQXqE8sBOJ1gcz$$QivGhXXgJ|+EBwyzzf&f`{g+>VPvGZLyQ$p` z1g6#a->SftCuYOL7e=zpYfG$9R4WrCnw6r#e8vXtKw#05yiL?D>M<$WVVE)Y%%0a+ z#?WHy?V$vpup4Nn(X_^)tJbVcs%yGbS!0(hW)|fYFp!}hVe*-@=_>gcTd=FZvoGdY zrl8_=#n?LEA=8#+`si@jYgF}gDIZ4Y(m$}nYMv=id$TRbA zH%!gSxeNRpN)u?Dcr?cPL_)wKkxvSe!VB=Z!N2oG)r6%Pde2Bz0SQtP^NJ`aSUgV^ zSga9`jH|4vif%a>0&8GoNC)L?vx8+SE2}hEY0Ck}5S=(u-rUg8;#j(oh5@(r#(Ji? zu^}wT;V{BMp%88&p){MWM@*GA$73wy8Z-<|iKv<;>MBNBlt@SlOBfL%t0*Nz)d;3) zijZ)5e%w;CJ}dqC#RAnV6>JQLCt@iYQRNiUd8#5IBoP#)S_teComVB9@DWQ6RY6CT@Dx)j6QV&@J}ne510fN=5Myjv*yhtS zoh=F@n1>760bHd??c9)85$hgHI0I=ba z_VY)e0S&`dPQ4Bm#RZzWrS?=$I!aGzWAW%nrvOV;jOd6bl8iJS5F(O}krblQR74eV zisD6_-32Blz!dAg*F+}ddxfFVj z(q#C#^^~GmMSoL?hbgohg{Z}aQvG738e0+@qtJC?#3-80byA?j1&X++=32U!BMzx=pRLLsZ~o$MoZp z?h8YN#i*2uQUU1{%39DQ4Mk;4QG^JR7S?DKD!mNx4m@Me(pyk6CpTCLYN>i0^4vXD)}ve0yU!`m$XPKEQdx*X4Fpn6DOmN%Ybnf-RDJx zBx8f7QO6j;fss6`guoOS_y6%XF5@P)hx~U@{=|z^=u^dZ!~L)m72o4UB$xTsSva~V zqxGDLauCik3T%kuY>^Xb+&-gyYu1n5BKfMLXOwJd@&u>V*&e8WrS_)blzTL%v3 zHQc`Afk4&%=6GE)x_u(2k z|KaL|O*NglJIu#sKK|6RkF4n3)w6BhZ=bpDXX_63*Ist~g|5Jx)21i^3|sYAKU;2uj8^cgQrf^gJ||Y2c|UA&2QXy6<2%nOPhDTadxA0 zpY>{W-Mg>!w@>bQ?z2-Tp8nJ4ed|BpclG_#=b+PDuROBjqJDh%oZYykFK_@KuD$Hb zy&qJW^MA3cZ{G4l`mYD}NO%4H?DJh4{cy9*|NFyFXF-66Rc3(H z_nv!aMa{8++BZX0{5A7VeZ1+_*5tCl#-S_kd3gTP#X~ntK6LB#!7V2Tk9nJ?^i4XK z`E>2px0Yt!dnNGa2gKEFN3|n;9~&on7Jl$#?-TUPZ_Z6!yKTv?;Eo+PU4!k(gH8YV x<`A-04?g;Fw_Zd@7PS%3Ha{{bon%lZHS diff --git a/src/main/resources/assets/actuallyadditions/textures/block/canola_crop.png b/src/main/resources/assets/actuallyadditions/textures/block/canola_crop.png deleted file mode 100644 index e0b7862a067cd47a929e9442cbf6dd17650ffa4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85p>QK$!8;-MT+OLG}_)Usv|~to$Op+-*7LqCg>u64!{5;QX|b z^2DN4hJwV*yb`^<)Di^~Jp(<{)K;TZpqdI#7sn6_|F?aCd<_ab&gCro_bh1tc*9us z${8aL_7AFOH(k=ZabE77-Bq#BiMJMM1u=(aEN#@T*{vOS(##Xnrl} zH%erf9DjOV+M*>N4CRCT)7Nh^^6hx~=H V9p12FryI}>44$rjF6*2UngA4zVB-J) diff --git a/src/main/resources/assets/actuallyadditions/textures/block/block_canola_stage_1.png b/src/main/resources/assets/actuallyadditions/textures/block/canola_stage_1.png similarity index 100% rename from src/main/resources/assets/actuallyadditions/textures/block/block_canola_stage_1.png rename to src/main/resources/assets/actuallyadditions/textures/block/canola_stage_1.png diff --git a/src/main/resources/assets/actuallyadditions/textures/block/canola_stage_2.png b/src/main/resources/assets/actuallyadditions/textures/block/canola_stage_2.png index 67c69118cf5ff0046065e19aa9ac7f902d58ba08..9e8ee12c13e714d918c2a7a6a4f0a811f695d765 100644 GIT binary patch literal 3368 zcmcInYitxn96uXGDVAU%2qcDeF+8GsJNvrZT{*DyO54OMO?#wmVhpo0v)6^Y-DP*% zyY`#?VB!P6U`RB^L_V1i5itfIfYxuu1SJ7Kv@seIq(l)DG!YYvv-j9u^-3F&&E4Ma z%zyrm-~8q`b1(Mxbhb2aY>vfZE!|z|KKi>l{64sx-Z$O64e8Gcw`<6c#a6BfzxT!7 zcym2{n6a{h!C>YY9XW+K#EwDYrGiVXW3e5(N-jhPNx&E+XW1$C#;2dLjD=I|fRX_j zx19`IUE?0^6j*?Ct6i5J>QXy~qdMU-0{p$2NZ01>}Y!Vzyv29^M zW-!ysv^ySQ5^=yG07NFK#f5|{tLl@C2t>exBrgC?6m^i$6^W@{ERE)2Q}0Xfsm7vj zDRwvrT%G5O#bUfD#T_rl3!0|!K;%V{qZXV$W(Tmu+5YC5hcxk#XSspp*i7gV8qP?N zVriz85(;kQ*7mC~QNZ{Tba^2T!jj5{7)5sOh?g%1$A~9+QXqEVQ(Gajb%&k6@rRuS zTu0sW0#Il(nJ7lXTndFKgdcQ_(lV-mG_>}!V=m$Qi0_Peh;)q7G&k3(@q<1xhvyQ8 zQ}bwWV3`Yy4SVJlMM~BJreRNH>gw$tfq~;?9VcJoPHzoGMik?K**0L=*eUwk!y2js zNE!wt#fC)UD2pVJ6=WR<^z%e`2NlzdgDrEc-c;ZOIV%EPqSn$pQ_5lt1GuO$M!M;E z1xV+>D!?4!T|37z(ah@YPTuioV49s&-`?Hc-s?H0m8TtkU*~S7yQ4iJXo&HkZ1}g3Dl2<1d}5W5RniKLQJa)X`xd$G$j}=#1va=91Q81AE`7ZML;hq2lT2A z8d{`(u6v(t(YX*=CL~q`{(h=)6lNN$+}3NANPaMFQDpo|5{derq4_;jfac(;mEJ}t z#ium&tMarP=BiJ5YiDDm4GjV$B~1=MS>rIE2tnBtIawj9kwlVc5OD_|Did{45xoU{ z5kZk8EE=3>DuC0HvdKXMDqI2ya#E0>f@P`BSJ`VNMgGpUl(k3ivclTNs#)}tLs33V zS#ETQDiejm#Y!++ZMGWHbt%NCxGfG7N{Krx;)j5Q&m18!8bvlOT~3 zu#D*%6bYAvf{YWGs92?IupvZ37Rb6lH%w3yum1v3)i)Z3c8<`!pTCP@5Rp_x#44wV zib>U#%9DXZRRgAmB`g>i8;y!-sKocU7_=w@7Mb*r7ZFJo1`QL>s^dUC&!QBVGUNWA zc#AS_X?w`O8F!B-sjO2Kx#9n*M3wh+1<5_(>MS2!^oE+VL=Mukj7~SiMYhPL2zSWn z(3^9&TV$vrWf(--(^UsTKU7-j2AG_0SS@rPsBkwm) z^sas3_VF3^k7X166Wim5-z}VY?6-Bdnp)02-IGdxG<9)mruFEB(a8a~^{JL)+qXR& zZ~5+;`^&9evp0QyGy976#kSu!{dzpc2j|AupIw#zo}E6udh6v*_kkalZ@Dt`{IxT! z=YKx+@mC)ldws*Q^iQuHnzb*jx}08iwdu?^Z(qMWIkoZI*_F@D#A1&gePrEMcFUei z16Nw@{jFDoq_!bD zy?1orXzu>CnFFWRH=R89$@y69)!DO0CRd(+d0*zkhbAwE|7E&6deSF$@1OV^4cl3` delta 251 zcmZ1>HJxdKNGZx^prw85kH?(j9#r85lP9bN@+X1@buyJR*x37`TN%nDNrx zx<5cc_7YEDSN8j?{36`ykKX+$018QzxJHx&=ckpFCl;kL6eMQmmFVTAmMEC$8R(g& zwi=}Z)s%X=IEGmGznyrHx50pi*_cUREJfm2iJrw;)$e8whk`addUA>VYxb)hS#!#H ze`?om>#^nylzXO__NCSD#==ttX>Y`>p0e&t5Z(Mnd|Nkr$jqmH=2O}^4HuigIIyr= y@^_oA{)w-fw2a@GxKz$)pK($A*W3FMUm1k!|Guf7w3-v>0tQc4KbLh*2~7ZBV_zBo diff --git a/src/main/resources/assets/actuallyadditions/textures/block/canola_stage_3.png b/src/main/resources/assets/actuallyadditions/textures/block/canola_stage_3.png index d51b6a7afd9a641623ffc6306d84b66c858efb49..b603b48c99679c2dbe25b9aa2b1ab2c900eecdc5 100644 GIT binary patch literal 3502 zcmcInd5qLl7%vNoKo*F~;qr$~F@h{_+P)ssmYs!VW?|Pb>t=V5T~zc<`?_11X=~fv z8PMRd9#J9!Di}nK@d$r-MNqs!0vZK@=pTkegBZmlM(|9GMtz-&L3i1WM>ErD-}k-m z_`Tovy*GEZw=J$6UpJnjsM^++Lqj7&>`KG zY^URnhiN&&0iEL@9aST|EQ*RUmxdhVST4%)9Dq>cWK9z2(!~&Oo?&VoiA5z}}8g1I6424Fo)6v zoInANF(HuvVUfV4cv0hc@~IE+Tv0XY7?!!JT9pU9n1Y-p2pSYmQza}mP=JP2HgwH& zyeuMXU}aGcW?j37p(`t^#hr}f5yvDtp?bVE9&h&?)5;Km-?4Zh-P#iDUx?&eS7EH(%HvE|!Xn7{#USKrN%!dz(tu9ERZhK$ zEQ(KP>X+KnLex`w%2290j4o*V8hNtOca~m zkhU-{34#IB0Gbj9)Tn3zltvPebzY3}0+I|-sIpbCS`3jrb1sG6qqSIJZmUXBbmHqO z@z8~KqanSxP{W&DA`g+>3wwTyF+C?sR|=XA92&W9#?lM4W&3TTv_n+jWQO$Pqy95P1O-J*E0_l+ z)*;{x(Ey4HF{wdbG-LxShJwlv{{`eT66yG78!Pt0t{8h)$$NI1BZ{5!#8=U9N)1`>eeHN^T|K%+)GiTGOdZG zlydhAoxDA;VDi?pj-B6faP0bR>2U+SSH6Wj~0cYOVN zLw()1%WK}gcl>oRrms76>xRxf<1%ei=bd{&{?UEU zuU-DhFYg`y>6-=CYH7->IUDz_`!sRe?l11S`XYNY)$;pvb!lNetY1PpR8rGo}N*+qVeF; z<{8Yu{(07fkB%;-7QDaW^-V&4Qe*4H@21^9@c4~2C+6nEe^jl_ZHZ?VUUSQz2nmN7 delta 297 zcmV+^0oMMm8^i*TB!2;OQb$4nuFf3k00004XF*Lt006O%3;baP00009a7bBm000XT z000XT0n*)m`~Uy|2XskIMF-yn4-^R%7!S{K0000ObVXQnQ*UN;cVTj60B~VxZgehg zWpp4kE-)@NWrZ?j0001@Nkl&99e+)Bp<)C&CZVKyBHPO8 zRWSg%a}>*x?&FWb=@R37jRD?)&!nm6`C7;OvyR(V`T;$#hy}{`$C93@zz+;F$gu7m zEzkf)7=wR*6+IoB;RP6f?oS0;gJ|+EBwyzzf&f`{g+>VPvGZLyQ$p` z1g6#a->SftCuYOL7e=zpYfG$9R4WrCnw6r#e8vXtKw#05yiL?D>M<$WVVE)Y%%0a+ z#?WHy?V$vpup4Nn(X_^)tJbVcs%yGbS!0(hW)|fYFp!}hVe*-@=_>gcTd=FZvoGdY zrl8_=#n?LEA=8#+`si@jYgF}gDIZ4Y(m$}nYMv=id$TRbA zH%!gSxeNRpN)u?Dcr?cPL_)wKkxvSe!VB=Z!N2oG)r6%Pde2Bz0SQtP^NJ`aSUgV^ zSga9`jH|4vif%a>0&8GoNC)L?vx8+SE2}hEY0Ck}5S=(u-rUg8;#j(oh5@(r#(Ji? zu^}wT;V{BMp%88&p){MWM@*GA$73wy8Z-<|iKv<;>MBNBlt@SlOBfL%t0*Nz)d;3) zijZ)5e%w;CJ}dqC#RAnV6>JQLCt@iYQRNiUd8#5IBoP#)S_teComVB9@DWQ6RY6CT@Dx)j6QV&@J}ne510fN=5Myjv*yhtS zoh=F@n1>760bHd??c9)85$hgHI0I=ba z_VY)e0S&`dPQ4Bm#RZzWrS?=$I!aGzWAW%nrvOV;jOd6bl8iJS5F(O}krblQR74eV zisD6_-32Blz!dAg*F+}ddxfFVj z(q#C#^^~GmMSoL?hbgohg{Z}aQvG738e0+@qtJC?#3-80byA?j1&X++=32U!BMzx=pRLLsZ~o$MoZp z?h8YN#i*2uQUU1{%39DQ4Mk;4QG^JR7S?DKD!mNx4m@Me(pyk6CpTCLYN>i0^4vXD)}ve0yU!`m$XPKEQdx*X4Fpn6DOmN%Ybnf-RDJx zBx8f7QO6j;fss6`guoOS_y6%XF5@P)hx~U@{=|z^=u^dZ!~L)m72o4UB$xTsSva~V zqxGDLauCik3T%kuY>^Xb+&-gyYu1n5BKfMLXOwJd@&u>V*&e8WrS_)blzTL%v3 zHQc`Afk4&%=6GE)x_u(2k z|KaL|O*NglJIu#sKK|6RkF4n3)w6BhZ=bpDXX_63*Ist~g|5Jx)21i^3|sYAKU;2uj8^cgQrf^gJ||Y2c|UA&2QXy6<2%nOPhDTadxA0 zpY>{W-Mg>!w@>bQ?z2-Tp8nJ4ed|BpclG_#=b+PDuROBjqJDh%oZYykFK_@KuD$Hb zy&qJW^MA3cZ{G4l`mYD}NO%4H?DJh4{cy9*|NFyFXF-66Rc3(H z_nv!aMa{8++BZX0{5A7VeZ1+_*5tCl#-S_kd3gTP#X~ntK6LB#!7V2Tk9nJ?^i4XK z`E>2px0Yt!dnNGa2gKEFN3|n;9~&on7Jl$#?-TUPZ_Z6!yKTv?;Eo+PU4!k(gH8YV x<`A-04?g;Fw_Zd@7PS%3Ha{{bon%lZHS delta 331 zcmV-R0kr;u9OeR$B!2;OQb$4nuFf3k00004XF*Lt006O%3;baP00009a7bBm000XT z000XT0n*)m`~Uy|2XskIMF-yn4-^C+O>|fx0000ObVXQnQ*UN;cVTj60B~VxZgehg zWpp4kE-)@NWrZ?j0002QNklG#JW`JM*f1tAK$-Xa%gS`E%Yghfh=RXbgJufYiy zkLPG#1O{gHy~onbf{QZCs1WCA6tqCcOfmbpaJ^0+)*osBrK_g@b|}Dum@(;PeUUJB z(#SA7Q(+Xd^F%ZY2=z>vv|RZHnDnxrDZ{J}d;h;gO8&MGc@_ d^PMD#h!x?Yc6kNV0&M^Q002ovPDHLkV1oTzh7bS%