From 8415b657f2e8ca4ef29869a68530b55096ee3dfa Mon Sep 17 00:00:00 2001 From: mezz Date: Sun, 13 Dec 2015 13:47:55 -0800 Subject: [PATCH] Use Forge 10.13.4.1566 fuel burn time workaround. Fix #960 Fireproof wood have fuel value, Fix #469 Burn time of wooden slabs should be 150 ticks --- gradle.properties | 2 +- src/main/java/forestry/Forestry.java | 2 +- .../forestry/plugins/PluginArboriculture.java | 29 ++++++++++++++++--- 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/gradle.properties b/gradle.properties index 5c431eea0..398678d28 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ mcversion=1.7.10 -forgeversion=10.13.4.1541-1.7.10 +forgeversion=10.13.4.1566-1.7.10 version_major=4 version_minor=2 version_patch=2 diff --git a/src/main/java/forestry/Forestry.java b/src/main/java/forestry/Forestry.java index ff97381b7..5183081a1 100644 --- a/src/main/java/forestry/Forestry.java +++ b/src/main/java/forestry/Forestry.java @@ -59,7 +59,7 @@ import forestry.plugins.PluginManager; name = "Forestry", version = Version.VERSION, guiFactory = "forestry.core.config.ForestryGuiConfigFactory", - dependencies = "required-after:Forge@[10.13.4.1448,);" + dependencies = "required-after:Forge@[10.13.4.1566,);" + "after:Buildcraft|Core@[6.1.7,);" + "after:ExtrabiomesXL;" + "after:BiomesOPlenty;" diff --git a/src/main/java/forestry/plugins/PluginArboriculture.java b/src/main/java/forestry/plugins/PluginArboriculture.java index 7414d73e7..3e1cff402 100644 --- a/src/main/java/forestry/plugins/PluginArboriculture.java +++ b/src/main/java/forestry/plugins/PluginArboriculture.java @@ -21,11 +21,15 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.WeightedRandomChestContent; import net.minecraftforge.common.ChestGenHooks; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.FuelBurnTimeEvent; import net.minecraftforge.oredict.OreDictionary; import cpw.mods.fml.common.IFuelHandler; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage; +import cpw.mods.fml.common.eventhandler.Event; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.registry.GameData; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.VillagerRegistry; @@ -38,6 +42,7 @@ import forestry.api.genetics.AlleleManager; import forestry.api.recipes.RecipeManagers; import forestry.api.storage.ICrateRegistry; import forestry.api.storage.StorageManager; +import forestry.arboriculture.IWoodTyped; import forestry.arboriculture.VillageHandlerArboriculture; import forestry.arboriculture.WoodItemAccess; import forestry.arboriculture.blocks.BlockArboricultureType; @@ -119,6 +124,9 @@ public class PluginArboriculture extends ForestryPlugin { public void preInit() { super.preInit(); + // register for FuelBurnTimeEvent + MinecraftForge.EVENT_BUS.register(this); + for (EnumWoodType woodType : EnumWoodType.VALUES) { WoodItemAccess.registerLog(blocks.logs, woodType, false); WoodItemAccess.registerPlanks(blocks.planks, woodType, false); @@ -411,11 +419,24 @@ public class PluginArboriculture extends ForestryPlugin { return 100; } - if (blocks.slabs == Block.getBlockFromItem(item)) { - return 150; - } - return 0; } } + + @SubscribeEvent + public void fuelBurnTimeEvent(FuelBurnTimeEvent fuelBurnTimeEvent) { + Item item = fuelBurnTimeEvent.fuel.getItem(); + Block block = Block.getBlockFromItem(item); + + if (block instanceof IWoodTyped) { + IWoodTyped woodTypedBlock = (IWoodTyped) block; + if (woodTypedBlock.isFireproof()) { + fuelBurnTimeEvent.burnTime = 0; + fuelBurnTimeEvent.setResult(Event.Result.DENY); + } else if (blocks.slabs == block) { + fuelBurnTimeEvent.burnTime = 150; + fuelBurnTimeEvent.setResult(Event.Result.DENY); + } + } + } }