diff --git a/build.gradle b/build.gradle index 59f55d8..e1899e1 100644 --- a/build.gradle +++ b/build.gradle @@ -85,32 +85,48 @@ minecraft { version = config.minecraft_version + "-" + config.forge_version runDir = 'run' replace '${version}', project.version - replace '${natura_version}', config.minecraft_version + "-" + config.natura_version mappings = config.mappings_version useDepAts = true } dependencies { - deobfCompile "slimeknights.mantle:Mantle:${config.minecraft_version_old}-${config.mantle_version}" - deobfCompile "com.progwml6.natura:natura:${config.minecraft_version_old}-${config.natura_version}" - deobfCompile "slimeknights:TConstruct:${config.minecraft_version_old}-${config.tconstruct_version}" + deobfCompile ("slimeknights.mantle:Mantle:${config.minecraft_version_short}-${config.mantle_version}") { + transitive = false + } + + deobfCompile ("com.progwml6.natura:natura:${config.minecraft_version}-${config.natura_version}") { + transitive = false + } + + deobfCompile ("slimeknights:TConstruct:${config.minecraft_version}-${config.tconstruct_version}") { + transitive = false + } - deobfCompile "com.github.glitchfiend.biomesoplenty:BiomesOPlenty:${config.minecraft_version}-${config.bop_version}:universal" - deobfCompile "applecore:AppleCore:${config.minecraft_version}-${config.applecore_version}" + deobfCompile ("com.github.glitchfiend.biomesoplenty:BiomesOPlenty:${config.minecraft_version}-${config.bop_version}:universal") { + transitive = false + } - deobfCompile "mezz.jei:jei_${config.minecraft_version}:${config.jei_version}" + deobfCompile ("applecore:AppleCore:${config.minecraft_version}-${config.applecore_version}") { + transitive = false + } - deobfCompile "mcp.mobius.waila:Hwyla:${config.hwyla_version}_${config.minecraft_version_old}" + deobfCompile ("mezz.jei:jei_${config.minecraft_version}:${config.jei_version}") { + transitive = false + } + + deobfCompile ("mcp.mobius.waila:Hwyla:${config.hwyla_version}_${config.minecraft_version_short}") { + transitive = false + } } // the single quotes in these filenames seems to cause problems with // the jenkins server, so skip this for jenkins builds if (System.getenv().BUILD_NUMBER == null) { // note: the 'repository' url changes with each version - repositories { ivy { artifactPattern "https://addons-origin.cursecdn.com/files/2488/307[module] [revision].[ext]" } }// - dependencies { compile "pam:Pam's HarvestCraft:1.12.2a@jar" } + repositories { ivy { artifactPattern "https://addons-origin.cursecdn.com/files/2518/832/[module] [revision].[ext]" } }// + dependencies { compile "pam:Pam's HarvestCraft:1.12.2f@jar" } } processResources diff --git a/build.properties b/build.properties index bdd732a..e37939f 100644 --- a/build.properties +++ b/build.properties @@ -1,20 +1,19 @@ mod_version=1.3.0 minecraft_version=1.12.2 +minecraft_version_short=1.12 -minecraft_version_old=1.12 +forge_version=14.23.1.2587 +mappings_version=snapshot_20180101 -forge_version=14.23.0.2515 -mappings_version=snapshot_20171024 - -mantle_version=1.3.1.+ -tconstruct_version=2.7.4.+ -natura_version=4.3.0.+ +mantle_version=1.3.+ +tconstruct_version=2.9.+ +natura_version=4.3.+ jei_version=4.8.+ -hwyla_version=1.8.20-B35 +hwyla_version=1.8.23-B38 bop_version=7.0.1.+ -applecore_version=2.2.2+ +applecore_version=3.1.0+ diff --git a/src/main/java/iguanaman/hungeroverhaul/HungerOverhaul.java b/src/main/java/iguanaman/hungeroverhaul/HungerOverhaul.java index 5eccc84..1764cf4 100644 --- a/src/main/java/iguanaman/hungeroverhaul/HungerOverhaul.java +++ b/src/main/java/iguanaman/hungeroverhaul/HungerOverhaul.java @@ -43,7 +43,7 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.registries.IForgeRegistry; -@Mod(modid = HungerOverhaul.modID, name = HungerOverhaul.modName, version = HungerOverhaul.modVersion, dependencies = "required-after:forge@[14.21.1.2387,);required-after:applecore;after:tconstruct;after:harvestcraft;after:natura@[1.12-4.3.0.17,);after:ic2;after:*", acceptedMinecraftVersions = "[1.12, 1.13)") +@Mod(modid = HungerOverhaul.modID, name = HungerOverhaul.modName, version = HungerOverhaul.modVersion, dependencies = "required-after:forge@[14.21.1.2387,);required-after:applecore;after:tconstruct;after:harvestcraft@[1.12.2f,);after:natura@[1.12-4.3.0.17,);after:ic2;after:*", acceptedMinecraftVersions = "[1.12, 1.13)") public class HungerOverhaul { public static final String modID = Util.MODID; diff --git a/src/main/java/iguanaman/hungeroverhaul/common/BlockHelper.java b/src/main/java/iguanaman/hungeroverhaul/common/BlockHelper.java index 8055809..5116c0e 100644 --- a/src/main/java/iguanaman/hungeroverhaul/common/BlockHelper.java +++ b/src/main/java/iguanaman/hungeroverhaul/common/BlockHelper.java @@ -4,11 +4,15 @@ import java.util.List; import com.pam.harvestcraft.blocks.growables.BlockPamCrop; +import com.pam.harvestcraft.blocks.growables.BlockPamFruit; +import com.pam.harvestcraft.blocks.growables.BlockPamFruitLog; import com.progwml6.natura.overworld.NaturaOverworld; import iguanaman.hungeroverhaul.module.harvestcraft.helper.PamsModsHelper; import iguanaman.hungeroverhaul.module.natura.helper.NaturaHelper; +import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; +import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -26,6 +30,8 @@ public static List modifyCropDrops(List drops, IBlockState ItemStack produceItem = BlockHelper.getProduceOfBlock(state, produce); boolean produceIsNotSeed = (seedItem.getItem() != produceItem.getItem() || seedItem.getItemDamage() != produceItem.getItemDamage()); + boolean shouldProduceNotDrop = BlockHelper.shouldProduceNotDrop(state); + for (ItemStack item : drops) { // don't include seed/produce already in the list; we'll add them back afterwards @@ -43,7 +49,7 @@ public static List modifyCropDrops(List drops, IBlockState modifiedDrops.add(seedItem); } - if (produceItem.getCount() > 0) + if (produceItem.getCount() > 0 && !shouldProduceNotDrop) { modifiedDrops.add(produceItem); } @@ -122,4 +128,28 @@ else if (Loader.isModLoaded("natura") && state.getBlock() == NaturaOverworld.cot return state.getBlock().damageDropped(state); } } + + public static boolean shouldProduceNotDrop(IBlockState state) + { + if (Loader.isModLoaded("harvestcraft") && state.getBlock() instanceof BlockPamFruit) + { + Block seed = PamsModsHelper.fruitBlockToBlockMap.get(state.getBlock()); + + if (seed == state.getBlock() || seed == Blocks.AIR) + { + return true; + } + } + else if (Loader.isModLoaded("harvestcraft") && state.getBlock() instanceof BlockPamFruitLog) + { + Block seed = PamsModsHelper.fruitBlockToBlockMap.get(state.getBlock()); + + if (seed == state.getBlock() || seed == Blocks.AIR) + { + return true; + } + } + + return false; + } } diff --git a/src/main/java/iguanaman/hungeroverhaul/module/event/HungerOverhaulEventHook.java b/src/main/java/iguanaman/hungeroverhaul/module/event/HungerOverhaulEventHook.java index 55cd4f6..6985302 100644 --- a/src/main/java/iguanaman/hungeroverhaul/module/event/HungerOverhaulEventHook.java +++ b/src/main/java/iguanaman/hungeroverhaul/module/event/HungerOverhaulEventHook.java @@ -529,16 +529,16 @@ else if (Loader.isModLoaded("harvestcraft") && clicked_block.getClass() == Block } else if (Loader.isModLoaded("harvestcraft") && clicked_block.getClass() == BlockPamFruit.class) { - if (ReflectionModule.pamFruitAgeFound && real_state.getValue(ReflectionModule.pamFruitAge) >= 2) + if (real_state.getValue(BlockPamFruit.AGE) >= 2) { - resultingState = real_state.withProperty(ReflectionModule.pamFruitAge, 0); + resultingState = real_state.withProperty(BlockPamFruit.AGE, 0); } } else if (Loader.isModLoaded("harvestcraft") && clicked_block.getClass() == BlockPamFruitLog.class) { - if (ReflectionModule.pamFruitLogAgeFound && real_state.getValue(ReflectionModule.pamFruitLogAge) >= 2) + if (real_state.getValue(BlockPamFruitLog.AGE) >= 2) { - resultingState = real_state.withProperty(ReflectionModule.pamFruitLogAge, 0); + resultingState = real_state.withProperty(BlockPamFruitLog.AGE, 0); } } @@ -614,8 +614,8 @@ public void onBlockHarvested(HarvestDropsEvent event) || (isCottonCrop && state.getValue(BlockNaturaCotton.AGE) == 4) || (isBarleyCrop && state.getValue(BlockNaturaBarley.AGE) == 3) || (ReflectionModule.pamCropAgeFound && (isPamCrop && state.getValue(ReflectionModule.pamCropAge) == 3)) - || (ReflectionModule.pamFruitAgeFound && (isPamFruit && state.getValue(ReflectionModule.pamFruitAge) == 2)) - || (ReflectionModule.pamFruitLogAgeFound && (isPamFruitLog && state.getValue(ReflectionModule.pamFruitLogAge) == 2)); + || (isPamFruit && state.getValue(BlockPamFruit.AGE) == 2) + || (isPamFruitLog && state.getValue(BlockPamFruitLog.AGE) == 2); if (!fullyGrown) { diff --git a/src/main/java/iguanaman/hungeroverhaul/module/harvestcraft/HarvestCraftModule.java b/src/main/java/iguanaman/hungeroverhaul/module/harvestcraft/HarvestCraftModule.java index 0f06a90..5dfb07e 100644 --- a/src/main/java/iguanaman/hungeroverhaul/module/harvestcraft/HarvestCraftModule.java +++ b/src/main/java/iguanaman/hungeroverhaul/module/harvestcraft/HarvestCraftModule.java @@ -2,11 +2,14 @@ import java.util.Arrays; import java.util.List; +import java.util.Random; import com.pam.harvestcraft.HarvestCraft; import com.pam.harvestcraft.blocks.CropRegistry; import com.pam.harvestcraft.blocks.FruitRegistry; +import com.pam.harvestcraft.blocks.growables.BlockPamCrop; import com.pam.harvestcraft.blocks.growables.BlockPamFruit; +import com.pam.harvestcraft.blocks.growables.BlockPamFruitLog; import com.pam.harvestcraft.blocks.growables.BlockPamSapling; import com.pam.harvestcraft.item.ItemRegistry; @@ -17,18 +20,24 @@ import iguanaman.hungeroverhaul.module.growth.PlantGrowthModule; import iguanaman.hungeroverhaul.module.growth.modification.PlantGrowthModification; import iguanaman.hungeroverhaul.module.harvestcraft.helper.PamsModsHelper; +import iguanaman.hungeroverhaul.module.reflection.ReflectionModule; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; import net.minecraft.item.Item; import net.minecraft.util.math.BlockPos; +import net.minecraft.world.EnumDifficulty; import net.minecraft.world.World; import net.minecraftforge.common.BiomeDictionary.Type; import squeek.applecore.api.food.FoodValues; public class HarvestCraftModule { + public static Random random = new Random(); + public static void init() { + random.setSeed(2 ^ 16 + 2 ^ 8 + (4 * 3 * 271)); + // SETUP VALUES if (Config.modifyFoodValues && Config.useHOFoodValues) { @@ -820,14 +829,87 @@ else if (lowerSaturationCrops.contains(crop)) /* * Bonemeal */ + BonemealModification cropBonemealModification = new BonemealModification() + { + @Override + public IBlockState getNewState(World world, BlockPos pos, IBlockState currentState) + { + //TODO REMOVE REFLECTION + if (ReflectionModule.pamCropAgeFound) + { + int currentMeta = currentState.getValue(ReflectionModule.pamCropAge); + int metaFullyGrown = 3; + int metaIncrease = 0; + + if (currentMeta != metaFullyGrown) + { + metaIncrease = 1; + + if (Config.difficultyScalingBoneMeal && world.getDifficulty().ordinal() < EnumDifficulty.NORMAL.ordinal()) + { + int metaRandomIncreaseRange = currentMeta < 3 ? 2 : 3; + metaIncrease += random.nextInt(metaRandomIncreaseRange); + } + } + + return currentState.withProperty(ReflectionModule.pamCropAge, Math.min(currentMeta + metaIncrease, metaFullyGrown)); + } + else + { + return currentState; + } + } + }; + BonemealModule.registerBonemealModifier(BlockPamCrop.class, cropBonemealModification); + BonemealModification fruitBonemealModification = new BonemealModification() { @Override public IBlockState getNewState(World world, BlockPos pos, IBlockState currentState) { - return currentState.withProperty(BlockPamFruit.AGE, Math.min(currentState.getValue(BlockPamFruit.AGE) + 1, 2)); + int currentMeta = currentState.getValue(BlockPamFruit.AGE); + int metaFullyGrown = 2; + int metaIncrease = 0; + + if (currentMeta != metaFullyGrown) + { + metaIncrease = 1; + + if (Config.difficultyScalingBoneMeal && world.getDifficulty().ordinal() < EnumDifficulty.NORMAL.ordinal()) + { + int metaRandomIncreaseRange = currentMeta < 2 ? 1 : 2; + metaIncrease += random.nextInt(metaRandomIncreaseRange); + } + } + + return currentState.withProperty(BlockPamFruit.AGE, Math.min(currentMeta + metaIncrease, metaFullyGrown)); } }; BonemealModule.registerBonemealModifier(BlockPamFruit.class, fruitBonemealModification); + + BonemealModification fruitLogBonemealModification = new BonemealModification() + { + @Override + public IBlockState getNewState(World world, BlockPos pos, IBlockState currentState) + { + int currentMeta = currentState.getValue(BlockPamFruitLog.AGE); + int metaFullyGrown = 2; + int metaIncrease = 0; + + if (currentMeta != metaFullyGrown) + { + metaIncrease = 1; + + if (Config.difficultyScalingBoneMeal && world.getDifficulty().ordinal() < EnumDifficulty.NORMAL.ordinal()) + { + int metaRandomIncreaseRange = currentMeta < 2 ? 1 : 2; + metaIncrease += random.nextInt(metaRandomIncreaseRange); + } + } + + return currentState.withProperty(BlockPamFruitLog.AGE, Math.min(currentMeta + metaIncrease, metaFullyGrown)); + } + }; + BonemealModule.registerBonemealModifier(BlockPamFruitLog.class, fruitLogBonemealModification); } } diff --git a/src/main/java/iguanaman/hungeroverhaul/module/harvestcraft/helper/PamsModsHelper.java b/src/main/java/iguanaman/hungeroverhaul/module/harvestcraft/helper/PamsModsHelper.java index 8212e95..cf0916f 100644 --- a/src/main/java/iguanaman/hungeroverhaul/module/harvestcraft/helper/PamsModsHelper.java +++ b/src/main/java/iguanaman/hungeroverhaul/module/harvestcraft/helper/PamsModsHelper.java @@ -34,6 +34,8 @@ public class PamsModsHelper public static HashMap saplingToFruitBlockMap = new HashMap(); + public static HashMap fruitBlockToBlockMap = new HashMap(); + public static HashMap productToSeedMap = new HashMap(); public static void loadHC() @@ -49,67 +51,72 @@ public static void loadHC() CropRegistry.getCrop(CropRegistry.CELERY), CropRegistry.getCrop(CropRegistry.GARLIC), CropRegistry.getCrop(CropRegistry.GINGER), CropRegistry.getCrop(CropRegistry.SPICELEAF), CropRegistry.getCrop(CropRegistry.TEALEAF), CropRegistry.getCrop(CropRegistry.COFFEE), CropRegistry.getCrop(CropRegistry.MUSTARD), CropRegistry.getCrop(CropRegistry.BROCCOLI), CropRegistry.getCrop(CropRegistry.CAULIFLOWER), CropRegistry.getCrop(CropRegistry.LEEK), CropRegistry.getCrop(CropRegistry.LETTUCE), CropRegistry.getCrop(CropRegistry.SCALLION), CropRegistry.getCrop(CropRegistry.ARTICHOKE), CropRegistry.getCrop(CropRegistry.BRUSSELSPROUT), CropRegistry.getCrop(CropRegistry.CABBAGE), - CropRegistry.getCrop(CropRegistry.WHITEMUSHROOM), CropRegistry.getCrop(CropRegistry.BEAN), CropRegistry.getCrop(CropRegistry.SOYBEAN), CropRegistry.getCrop(CropRegistry.BELLPEPPER), CropRegistry.getCrop(CropRegistry.CHILIPEPPER), + CropRegistry.getCrop(CropRegistry.SPINACH), CropRegistry.getCrop(CropRegistry.WHITEMUSHROOM), CropRegistry.getCrop(CropRegistry.BEAN), CropRegistry.getCrop(CropRegistry.SOYBEAN), CropRegistry.getCrop(CropRegistry.BELLPEPPER), CropRegistry.getCrop(CropRegistry.CHILIPEPPER), CropRegistry.getCrop(CropRegistry.EGGPLANT), CropRegistry.getCrop(CropRegistry.OKRA), CropRegistry.getCrop(CropRegistry.PEAS), CropRegistry.getCrop(CropRegistry.TOMATO), CropRegistry.getCrop(CropRegistry.COTTON), - CropRegistry.getCrop(CropRegistry.PINEAPPLE), CropRegistry.getCrop(CropRegistry.GRAPE), CropRegistry.getCrop(CropRegistry.KIWI), CropRegistry.getCrop(CropRegistry.CRANBERRY), CropRegistry.getCrop(CropRegistry.RICE), CropRegistry.getCrop(CropRegistry.SEAWEED) + CropRegistry.getCrop(CropRegistry.PINEAPPLE), CropRegistry.getCrop(CropRegistry.GRAPE), CropRegistry.getCrop(CropRegistry.KIWI), CropRegistry.getCrop(CropRegistry.CRANBERRY), CropRegistry.getCrop(CropRegistry.RICE), CropRegistry.getCrop(CropRegistry.SEAWEED), + CropRegistry.getCrop(CropRegistry.CURRYLEAF), CropRegistry.getCrop(CropRegistry.SESAME), CropRegistry.getCrop(CropRegistry.WATERCHESTNUT) }; - crops.put(CropRegistry.getCrop(CropRegistry.ASPARAGUS), 0); - crops.put(CropRegistry.getCrop(CropRegistry.BARLEY), 1); - crops.put(CropRegistry.getCrop(CropRegistry.BEAN), 2); - crops.put(CropRegistry.getCrop(CropRegistry.BEET), 3); - crops.put(CropRegistry.getCrop(CropRegistry.BROCCOLI), 4); - crops.put(CropRegistry.getCrop(CropRegistry.CAULIFLOWER), 5); - crops.put(CropRegistry.getCrop(CropRegistry.CELERY), 6); - crops.put(CropRegistry.getCrop(CropRegistry.CRANBERRY), 7); - crops.put(CropRegistry.getCrop(CropRegistry.GARLIC), 8); - crops.put(CropRegistry.getCrop(CropRegistry.GINGER), 9); - crops.put(CropRegistry.getCrop(CropRegistry.LEEK), 10); - crops.put(CropRegistry.getCrop(CropRegistry.LETTUCE), 11); - crops.put(CropRegistry.getCrop(CropRegistry.OATS), 12); - crops.put(CropRegistry.getCrop(CropRegistry.ONION), 13); - crops.put(CropRegistry.getCrop(CropRegistry.PARSNIP), 14); - crops.put(CropRegistry.getCrop(CropRegistry.PEANUT), 15); - crops.put(CropRegistry.getCrop(CropRegistry.PINEAPPLE), 16); - crops.put(CropRegistry.getCrop(CropRegistry.RADISH), 17); - crops.put(CropRegistry.getCrop(CropRegistry.RICE), 18); - crops.put(CropRegistry.getCrop(CropRegistry.RUTABAGA), 19); - crops.put(CropRegistry.getCrop(CropRegistry.RYE), 20); - crops.put(CropRegistry.getCrop(CropRegistry.SCALLION), 21); - crops.put(CropRegistry.getCrop(CropRegistry.SOYBEAN), 22); - crops.put(CropRegistry.getCrop(CropRegistry.SPICELEAF), 23); - crops.put(CropRegistry.getCrop(CropRegistry.SWEETPOTATO), 24); - crops.put(CropRegistry.getCrop(CropRegistry.TEALEAF), 25); - crops.put(CropRegistry.getCrop(CropRegistry.TURNIP), 26); - crops.put(CropRegistry.getCrop(CropRegistry.WHITEMUSHROOM), 27); - crops.put(CropRegistry.getCrop(CropRegistry.ARTICHOKE), 28); - crops.put(CropRegistry.getCrop(CropRegistry.BELLPEPPER), 29); - crops.put(CropRegistry.getCrop(CropRegistry.BLACKBERRY), 30); - crops.put(CropRegistry.getCrop(CropRegistry.BLUEBERRY), 31); - crops.put(CropRegistry.getCrop(CropRegistry.BRUSSELSPROUT), 32); - crops.put(CropRegistry.getCrop(CropRegistry.CABBAGE), 33); - crops.put(CropRegistry.getCrop(CropRegistry.CACTUSFRUIT), 34); - crops.put(CropRegistry.getCrop(CropRegistry.CANDLEBERRY), 35); - crops.put(CropRegistry.getCrop(CropRegistry.CANTALOUPE), 36); - crops.put(CropRegistry.getCrop(CropRegistry.CHILIPEPPER), 37); - crops.put(CropRegistry.getCrop(CropRegistry.COFFEE), 38); - crops.put(CropRegistry.getCrop(CropRegistry.CORN), 39); - crops.put(CropRegistry.getCrop(CropRegistry.COTTON), 40); - crops.put(CropRegistry.getCrop(CropRegistry.CUCUMBER), 41); - crops.put(CropRegistry.getCrop(CropRegistry.EGGPLANT), 42); - crops.put(CropRegistry.getCrop(CropRegistry.GRAPE), 43); - crops.put(CropRegistry.getCrop(CropRegistry.KIWI), 44); - crops.put(CropRegistry.getCrop(CropRegistry.MUSTARD), 45); - crops.put(CropRegistry.getCrop(CropRegistry.OKRA), 46); - crops.put(CropRegistry.getCrop(CropRegistry.PEAS), 47); - crops.put(CropRegistry.getCrop(CropRegistry.RASPBERRY), 48); - crops.put(CropRegistry.getCrop(CropRegistry.RHUBARB), 49); - crops.put(CropRegistry.getCrop(CropRegistry.SEAWEED), 50); - crops.put(CropRegistry.getCrop(CropRegistry.STRAWBERRY), 51); - crops.put(CropRegistry.getCrop(CropRegistry.TOMATO), 52); - crops.put(CropRegistry.getCrop(CropRegistry.WINTERSQUASH), 53); - crops.put(CropRegistry.getCrop(CropRegistry.ZUCCHINI), 54); - crops.put(CropRegistry.getCrop(CropRegistry.BAMBOOSHOOT), 55); + crops.put(CropRegistry.getCrop(CropRegistry.BLACKBERRY), 0); + crops.put(CropRegistry.getCrop(CropRegistry.BLUEBERRY), 1); + crops.put(CropRegistry.getCrop(CropRegistry.CANDLEBERRY), 2); + crops.put(CropRegistry.getCrop(CropRegistry.RASPBERRY), 3); + crops.put(CropRegistry.getCrop(CropRegistry.STRAWBERRY), 4); + crops.put(CropRegistry.getCrop(CropRegistry.CACTUSFRUIT), 5); + crops.put(CropRegistry.getCrop(CropRegistry.ASPARAGUS), 6); + crops.put(CropRegistry.getCrop(CropRegistry.BARLEY), 7); + crops.put(CropRegistry.getCrop(CropRegistry.OATS), 8); + crops.put(CropRegistry.getCrop(CropRegistry.RYE), 9); + crops.put(CropRegistry.getCrop(CropRegistry.CORN), 10); + crops.put(CropRegistry.getCrop(CropRegistry.BAMBOOSHOOT), 11); + crops.put(CropRegistry.getCrop(CropRegistry.CANTALOUPE), 12); + crops.put(CropRegistry.getCrop(CropRegistry.CUCUMBER), 13); + crops.put(CropRegistry.getCrop(CropRegistry.WINTERSQUASH), 14); + crops.put(CropRegistry.getCrop(CropRegistry.ZUCCHINI), 15); + crops.put(CropRegistry.getCrop(CropRegistry.BEET), 16); + crops.put(CropRegistry.getCrop(CropRegistry.ONION), 17); + crops.put(CropRegistry.getCrop(CropRegistry.PARSNIP), 18); + crops.put(CropRegistry.getCrop(CropRegistry.PEANUT), 19); + crops.put(CropRegistry.getCrop(CropRegistry.RADISH), 20); + crops.put(CropRegistry.getCrop(CropRegistry.RUTABAGA), 21); + crops.put(CropRegistry.getCrop(CropRegistry.SWEETPOTATO), 22); + crops.put(CropRegistry.getCrop(CropRegistry.TURNIP), 23); + crops.put(CropRegistry.getCrop(CropRegistry.RHUBARB), 24); + crops.put(CropRegistry.getCrop(CropRegistry.CELERY), 25); + crops.put(CropRegistry.getCrop(CropRegistry.GARLIC), 26); + crops.put(CropRegistry.getCrop(CropRegistry.GINGER), 27); + crops.put(CropRegistry.getCrop(CropRegistry.SPICELEAF), 28); + crops.put(CropRegistry.getCrop(CropRegistry.TEALEAF), 29); + crops.put(CropRegistry.getCrop(CropRegistry.COFFEE), 30); + crops.put(CropRegistry.getCrop(CropRegistry.MUSTARD), 31); + crops.put(CropRegistry.getCrop(CropRegistry.BROCCOLI), 32); + crops.put(CropRegistry.getCrop(CropRegistry.CAULIFLOWER), 33); + crops.put(CropRegistry.getCrop(CropRegistry.LEEK), 34); + crops.put(CropRegistry.getCrop(CropRegistry.LETTUCE), 35); + crops.put(CropRegistry.getCrop(CropRegistry.SCALLION), 36); + crops.put(CropRegistry.getCrop(CropRegistry.ARTICHOKE), 37); + crops.put(CropRegistry.getCrop(CropRegistry.BRUSSELSPROUT), 38); + crops.put(CropRegistry.getCrop(CropRegistry.CABBAGE), 39); + crops.put(CropRegistry.getCrop(CropRegistry.SPINACH), 40); + crops.put(CropRegistry.getCrop(CropRegistry.WHITEMUSHROOM), 41); + crops.put(CropRegistry.getCrop(CropRegistry.BEAN), 42); + crops.put(CropRegistry.getCrop(CropRegistry.SOYBEAN), 43); + crops.put(CropRegistry.getCrop(CropRegistry.BELLPEPPER), 44); + crops.put(CropRegistry.getCrop(CropRegistry.CHILIPEPPER), 45); + crops.put(CropRegistry.getCrop(CropRegistry.EGGPLANT), 46); + crops.put(CropRegistry.getCrop(CropRegistry.OKRA), 47); + crops.put(CropRegistry.getCrop(CropRegistry.PEAS), 48); + crops.put(CropRegistry.getCrop(CropRegistry.TOMATO), 49); + crops.put(CropRegistry.getCrop(CropRegistry.COTTON), 50); + crops.put(CropRegistry.getCrop(CropRegistry.PINEAPPLE), 51); + crops.put(CropRegistry.getCrop(CropRegistry.GRAPE), 52); + crops.put(CropRegistry.getCrop(CropRegistry.KIWI), 53); + crops.put(CropRegistry.getCrop(CropRegistry.CRANBERRY), 54); + crops.put(CropRegistry.getCrop(CropRegistry.RICE), 55); + crops.put(CropRegistry.getCrop(CropRegistry.SEAWEED), 56); + crops.put(CropRegistry.getCrop(CropRegistry.CURRYLEAF), 57); + crops.put(CropRegistry.getCrop(CropRegistry.SESAME), 58); + crops.put(CropRegistry.getCrop(CropRegistry.WATERCHESTNUT), 59); mapFruit(FruitRegistry.getSapling(FruitRegistry.APPLE), Items.APPLE, FruitRegistry.getSapling(FruitRegistry.APPLE).getFruit()); mapFruit(FruitRegistry.getSapling(FruitRegistry.ALMOND), FruitRegistry.getFood(FruitRegistry.ALMOND), FruitRegistry.getSapling(FruitRegistry.ALMOND).getFruit()); @@ -154,6 +161,7 @@ public static void loadHC() mapFruit(FruitRegistry.getSapling(FruitRegistry.STARFRUIT), FruitRegistry.getFood(FruitRegistry.STARFRUIT), FruitRegistry.getSapling(FruitRegistry.STARFRUIT).getFruit()); mapFruit(FruitRegistry.getSapling(FruitRegistry.VANILLABEAN), FruitRegistry.getFood(FruitRegistry.VANILLABEAN), FruitRegistry.getSapling(FruitRegistry.VANILLABEAN).getFruit()); mapFruit(FruitRegistry.getSapling(FruitRegistry.WALNUT), FruitRegistry.getFood(FruitRegistry.WALNUT), FruitRegistry.getSapling(FruitRegistry.WALNUT).getFruit()); + mapFruit(FruitRegistry.getSapling(FruitRegistry.SPIDERWEB), FruitRegistry.getFood(FruitRegistry.SPIDERWEB), FruitRegistry.getSapling(FruitRegistry.SPIDERWEB).getFruit()); for (Entry food : CropRegistry.getFoods().entrySet()) { @@ -166,13 +174,15 @@ public static void mapFruit(Block blockSapling, Item fruitItem, Block fruitBlock { fruitItemToBlockMap.put(fruitItem, fruitBlock); saplingToFruitBlockMap.put(blockSapling, fruitBlock); + fruitBlockToBlockMap.put(fruitBlock, fruitBlock); } // mimics the logic in ItemSeedFood.onItemUse which ItemPamSeedFood uses. - public static boolean canPlantSeedFoodAt(ItemStack stack, EntityPlayer playerIn, World worldIn, BlockPos pos, EnumFacing facing) + public static boolean canPlantSeedFoodAt(ItemStack itemstack, EntityPlayer playerIn, World worldIn, BlockPos pos, EnumFacing facing) { IBlockState state = worldIn.getBlockState(pos); - if (facing == EnumFacing.UP && playerIn.canPlayerEdit(pos.offset(facing), facing, stack) && state.getBlock().canSustainPlant(state, worldIn, pos, EnumFacing.UP, (IPlantable) stack.getItem()) && worldIn.isAirBlock(pos.up())) + + if (facing == EnumFacing.UP && playerIn.canPlayerEdit(pos.offset(facing), facing, itemstack) && state.getBlock().canSustainPlant(state, worldIn, pos, EnumFacing.UP, (IPlantable) itemstack.getItem()) && worldIn.isAirBlock(pos.up())) { return true; } diff --git a/src/main/java/iguanaman/hungeroverhaul/module/reflection/ReflectionModule.java b/src/main/java/iguanaman/hungeroverhaul/module/reflection/ReflectionModule.java index 5591bf8..58929a7 100644 --- a/src/main/java/iguanaman/hungeroverhaul/module/reflection/ReflectionModule.java +++ b/src/main/java/iguanaman/hungeroverhaul/module/reflection/ReflectionModule.java @@ -3,8 +3,6 @@ import java.lang.reflect.Field; import com.pam.harvestcraft.blocks.growables.BlockPamCrop; -import com.pam.harvestcraft.blocks.growables.BlockPamFruit; -import com.pam.harvestcraft.blocks.growables.BlockPamFruitLog; import net.minecraft.block.properties.PropertyInteger; import net.minecraftforge.fml.common.Loader; @@ -15,12 +13,8 @@ public class ReflectionModule { //@formatter:off public static PropertyInteger pamCropAge = null; - public static PropertyInteger pamFruitAge = null; - public static PropertyInteger pamFruitLogAge = null; public static boolean pamCropAgeFound = false; - public static boolean pamFruitAgeFound = false; - public static boolean pamFruitLogAgeFound = false; //@formatter:on public static void postInit() @@ -30,12 +24,6 @@ public static void postInit() Field pamCropAgeField = ReflectionHelper.findField(BlockPamCrop.class, "AGE"); pamCropAgeField.setAccessible(true); - Field pamFruitAgeField = ReflectionHelper.findField(BlockPamFruit.class, "AGE"); - pamCropAgeField.setAccessible(true); - - Field pamFruitLogAgeField = ReflectionHelper.findField(BlockPamFruitLog.class, "AGE"); - pamCropAgeField.setAccessible(true); - try { pamCropAge = (PropertyInteger) pamCropAgeField.get(null); @@ -45,26 +33,6 @@ public static void postInit() { e.printStackTrace(); } - - try - { - pamFruitAge = (PropertyInteger) pamFruitAgeField.get(null); - pamFruitAgeFound = pamFruitAge != null; - } - catch (Exception e) - { - e.printStackTrace(); - } - - try - { - pamFruitLogAge = (PropertyInteger) pamFruitLogAgeField.get(null); - pamFruitLogAgeFound = pamFruitLogAge != null; - } - catch (Exception e) - { - e.printStackTrace(); - } } } }