From 9f8da7bd61d5f870824c9442fc900c5b8c826dd9 Mon Sep 17 00:00:00 2001 From: Nicholas Ignoffo Date: Fri, 10 Nov 2017 16:38:41 -0800 Subject: [PATCH] Update to new getDrops method since Forge broke the old one (#55) --- .../crops/block/BlockResourcefulCrop.java | 20 +++++++++---------- .../crops/compat/CompatibilityWaila.java | 6 ++---- .../resourceful/crops/core/SeedLoader.java | 2 +- .../crops/core/recipe/IngredientSeed.java | 3 +-- 4 files changed, 13 insertions(+), 18 deletions(-) diff --git a/src/main/java/tehnut/resourceful/crops/block/BlockResourcefulCrop.java b/src/main/java/tehnut/resourceful/crops/block/BlockResourcefulCrop.java index ad615c8..cedc273 100644 --- a/src/main/java/tehnut/resourceful/crops/block/BlockResourcefulCrop.java +++ b/src/main/java/tehnut/resourceful/crops/block/BlockResourcefulCrop.java @@ -8,12 +8,12 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.NonNullList; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.RayTraceResult; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.EnumPlantType; -import tehnut.resourceful.crops.ResourcefulCrops; import tehnut.resourceful.crops.block.prop.PropertySeedType; import tehnut.resourceful.crops.block.tile.TileSeedContainer; import tehnut.resourceful.crops.core.RegistrarResourcefulCrops; @@ -57,23 +57,21 @@ public void updateTick(World world, BlockPos pos, IBlockState state, Random rand } @Override - public List getDrops(IBlockAccess world, BlockPos pos, IBlockState state, int fortune) { - List drops = new ArrayList(); - drops.add(getFoodStack(getSeed(), world, pos)); - if (getAge(state) >= 7) - drops.add(getFoodStack(getCrop(), world, pos)); - return drops; + public void getDrops(NonNullList drops, IBlockAccess world, BlockPos pos, IBlockState state, int fortune) { + drops.add(getResourcefulStack(getSeed(), world, pos)); + if (getAge(state) >= 7) + drops.add(getResourcefulStack(getCrop(), world, pos)); } @Override - public void harvestBlock(World world, EntityPlayer player, BlockPos pos, IBlockState state, @Nullable TileEntity tile, @Nullable ItemStack stack) { + public void harvestBlock(World world, EntityPlayer player, BlockPos pos, IBlockState state, @Nullable TileEntity tile, ItemStack stack) { super.harvestBlock(world, player, pos, state, tile, stack); world.setBlockToAir(pos); } @Override public boolean removedByPlayer(IBlockState state, World world, BlockPos pos, EntityPlayer player, boolean willHarvest) { - return willHarvest || super.removedByPlayer(state, world, pos, player, willHarvest); + return willHarvest || super.removedByPlayer(state, world, pos, player, false); } @Override @@ -83,7 +81,7 @@ public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World wo @Override public ItemStack getItem(World world, BlockPos pos, IBlockState state) { - return getFoodStack(getSeed(), world, pos); + return getResourcefulStack(getSeed(), world, pos); } @Override @@ -149,7 +147,7 @@ public BlockResourcefulCrop init() { return this; } - private ItemStack getFoodStack(Item toDrop, IBlockAccess world, BlockPos pos) { + private ItemStack getResourcefulStack(Item toDrop, IBlockAccess world, BlockPos pos) { TileSeedContainer cropTile = Util.getTile(TileSeedContainer.class, world, pos); if (cropTile != null) return ItemResourceful.getResourcefulStack(toDrop, cropTile.getSeedKey()); diff --git a/src/main/java/tehnut/resourceful/crops/compat/CompatibilityWaila.java b/src/main/java/tehnut/resourceful/crops/compat/CompatibilityWaila.java index f4fdc2c..7b95c79 100644 --- a/src/main/java/tehnut/resourceful/crops/compat/CompatibilityWaila.java +++ b/src/main/java/tehnut/resourceful/crops/compat/CompatibilityWaila.java @@ -8,6 +8,7 @@ import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; +import net.minecraftforge.items.ItemHandlerHelper; import tehnut.resourceful.crops.block.tile.TileSeedContainer; import tehnut.resourceful.crops.core.RegistrarResourcefulCrops; import tehnut.resourceful.crops.core.data.Seed; @@ -39,10 +40,7 @@ public ItemStack getWailaStack(IWailaDataAccessor accessor, IWailaConfigHandler if (seed.getOutputs().length == 0) return accessor.getStack(); - ItemStack ret = seed.getOutputs()[0].getItem(); - ret.setCount(1); - - return ret; + return ItemHandlerHelper.copyStackWithSize(seed.getOutputs()[0].getItem(), 1); } @Nonnull diff --git a/src/main/java/tehnut/resourceful/crops/core/SeedLoader.java b/src/main/java/tehnut/resourceful/crops/core/SeedLoader.java index 8804f0a..655952f 100644 --- a/src/main/java/tehnut/resourceful/crops/core/SeedLoader.java +++ b/src/main/java/tehnut/resourceful/crops/core/SeedLoader.java @@ -67,7 +67,7 @@ public static void init(File seedDir, IForgeRegistry seedRegistry) { } } - seeds.sort((seed1, seed2) -> ((Integer) seed1.getTier()).compareTo(seed2.getTier())); + seeds.sort(Comparator.comparingInt(Seed::getTier)); for (Seed seed : seeds) { String sanity = sanityCheck(seed); diff --git a/src/main/java/tehnut/resourceful/crops/core/recipe/IngredientSeed.java b/src/main/java/tehnut/resourceful/crops/core/recipe/IngredientSeed.java index 6cf35d7..cd801e5 100644 --- a/src/main/java/tehnut/resourceful/crops/core/recipe/IngredientSeed.java +++ b/src/main/java/tehnut/resourceful/crops/core/recipe/IngredientSeed.java @@ -57,8 +57,7 @@ public boolean apply(@Nullable ItemStack input) { Seed seed = ((ItemResourceful) input.getItem()).getSeed(input); SeedStack seedStack = new SeedStack((ItemResourceful) input.getItem(), seed.getRegistryName(), input.getCount()); - boolean ret = seeds.contains(seedStack); - return ret; + return seeds.contains(seedStack); } @Override