From 7d0fa1c68c523041b73e3d59a6080353cfc6583a Mon Sep 17 00:00:00 2001 From: SomeonePerson123 <127326392+SomeonePerson123@users.noreply.github.com> Date: Thu, 8 Jan 2026 22:34:24 +0000 Subject: [PATCH 1/2] Add recipes for BOP fences and fence gates --- .../dreammaster/recipes/RecipeRemover.java | 30 ++++++ .../scripts/ScriptBiomesOPlenty.java | 94 +++++++++++++++++++ 2 files changed, 124 insertions(+) diff --git a/src/main/java/com/dreammaster/recipes/RecipeRemover.java b/src/main/java/com/dreammaster/recipes/RecipeRemover.java index 7d44af9e0b..bdf58c737b 100644 --- a/src/main/java/com/dreammaster/recipes/RecipeRemover.java +++ b/src/main/java/com/dreammaster/recipes/RecipeRemover.java @@ -3008,6 +3008,36 @@ public static void run() { removeRecipeShapelessDelayed( getModItem(BiomesOPlenty.ID, "misc", 1, 6, missing), getModItem(BiomesOPlenty.ID, "plants", 1, 7, missing)); + removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "sacredoakFence", 1, 0, missing)); + removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "cherryFence", 1, 0, missing)); + removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "darkFence", 1, 0, missing)); + removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "firFence", 1, 0, missing)); + removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "etherealFence", 1, 0, missing)); + removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "magicFence", 1, 0, missing)); + removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "mangroveFence", 1, 0, missing)); + removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "palmFence", 1, 0, missing)); + removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "redwoodFence", 1, 0, missing)); + removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "willowFence", 1, 0, missing)); + removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "bamboothatchingFence", 1, 0, missing)); + removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "pineFence", 1, 0, missing)); + removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "hell_barkFence", 1, 0, missing)); + removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "jacarandaFence", 1, 0, missing)); + removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "mahoganyFence", 1, 0, missing)); + removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "sacredoakFenceGate", 1, 0, missing)); + removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "cherryFenceGate", 1, 0, missing)); + removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "darkFenceGate", 1, 0, missing)); + removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "firFenceGate", 1, 0, missing)); + removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "etherealFenceGate", 1, 0, missing)); + removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "magicFenceGate", 1, 0, missing)); + removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "mangroveFenceGate", 1, 0, missing)); + removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "palmFenceGate", 1, 0, missing)); + removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "redwoodFenceGate", 1, 0, missing)); + removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "willowFenceGate", 1, 0, missing)); + removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "bamboothatchingFenceGate", 1, 0, missing)); + removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "pineFenceGate", 1, 0, missing)); + removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "hell_barkFenceGate", 1, 0, missing)); + removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "jacarandaFenceGate", 1, 0, missing)); + removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "mahoganyFenceGate", 1, 0, missing)); removeRecipeShapelessDelayed(GTOreDictUnificator.get(OrePrefixes.gem, Materials.Ruby, 1L)); removeRecipeShapelessDelayed(GTOreDictUnificator.get(OrePrefixes.gem, Materials.Sapphire, 1L)); removeRecipeShapelessDelayed(getModItem(Minecraft.ID, "dye", 1, 4, missing)); diff --git a/src/main/java/com/dreammaster/scripts/ScriptBiomesOPlenty.java b/src/main/java/com/dreammaster/scripts/ScriptBiomesOPlenty.java index 2cc6ef1f88..04130ef73f 100644 --- a/src/main/java/com/dreammaster/scripts/ScriptBiomesOPlenty.java +++ b/src/main/java/com/dreammaster/scripts/ScriptBiomesOPlenty.java @@ -7,6 +7,7 @@ import static gregtech.api.enums.Mods.Chisel; import static gregtech.api.enums.Mods.Forestry; import static gregtech.api.enums.Mods.HardcoreEnderExpansion; +import static gregtech.api.enums.Mods.HodgePodge; import static gregtech.api.enums.Mods.IguanaTweaksTinkerConstruct; import static gregtech.api.enums.Mods.Minecraft; import static gregtech.api.enums.Mods.PamsHarvestCraft; @@ -36,6 +37,7 @@ import java.util.Arrays; import java.util.List; +import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidRegistry; import com.dreammaster.chisel.ChiselHelper; @@ -66,6 +68,7 @@ public List getDependencies() { Chisel.ID, Forestry.ID, HardcoreEnderExpansion.ID, + HodgePodge.ID, IguanaTweaksTinkerConstruct.ID, PamsHarvestCraft.ID, Railcraft.ID, @@ -550,5 +553,96 @@ public void loadRecipes() { "tanzanite", GTOreDictUnificator.get(OrePrefixes.block, Materials.Tanzanite, 1L)); ChiselHelper.addVariationFromStack("tanzanite", getModItem(BiomesOPlenty.ID, "gemOre", 1, 9, missing)); + + // Fence and Fence Gate recipes: + + enum WoodTypes{sacredoak,cherry,dark,fir,ethereal,magic,mangrove,palm,redwood,willow,bamboothatching,pine,hell_bark,jacaranda,mahogany} + + for (WoodTypes woodType : WoodTypes.values()) { + ItemStack plank = getModItem(BiomesOPlenty.ID, "planks", 1, woodType.ordinal()); + + // Fences + + addShapedRecipe( + getModItem(BiomesOPlenty.ID, woodType.name() + "Fence", 1, 0, missing), + "stickWood", + plank, + "stickWood", + "stickWood", + plank, + "stickWood", + "stickWood", + plank, + "stickWood"); + + addShapedRecipe( + getModItem(BiomesOPlenty.ID, woodType.name() + "Fence", 2, 0, missing), + "screwIron", + "craftingToolScrewdriver", + "screwIron", + "stickWood", + plank, + "stickWood", + "stickWood", + plank, + "stickWood"); + + addShapedRecipe( + getModItem(BiomesOPlenty.ID, woodType.name() + "Fence", 4, 0, missing), + "screwSteel", + "craftingToolScrewdriver", + "screwSteel", + "stickWood", + plank, + "stickWood", + "stickWood", + plank, + "stickWood"); + + // Fence Gates + + addShapedRecipe( + getModItem(BiomesOPlenty.ID, woodType.name() + "FenceGate", 1, 0, missing), + getModItem(Minecraft.ID, "flint", 1, 0, missing), + null, + getModItem(Minecraft.ID, "flint", 1, 0, missing), + plank, + "stickWood", + plank, + plank, + "stickWood", + plank); + + addShapedRecipe( + getModItem(BiomesOPlenty.ID, woodType.name() + "FenceGate", 2, 0, missing), + "screwIron", + "craftingToolScrewdriver", + "screwIron", + plank, + "stickWood", + plank, + plank, + "stickWood", + plank); + + addShapedRecipe( + getModItem(BiomesOPlenty.ID, woodType.name() + "FenceGate", 4, 0, missing), + "screwSteel", + "craftingToolScrewdriver", + "screwSteel", + plank, + "stickWood", + plank, + plank, + "stickWood", + plank); + + GTValues.RA.stdBuilder() + .itemInputs( + getModItem(Minecraft.ID, "stick", 2, 0, missing), + getModItem(BiomesOPlenty.ID, "planks", 2, woodType.ordinal())) + .itemOutputs(getModItem(BiomesOPlenty.ID, woodType.name() + "FenceGate", 1, 0, missing)) + .duration(15 * SECONDS).eut(8).addTo(assemblerRecipes); + } } } From f66c3136705a2f2e23ecd5b6898e3b2b9e44761f Mon Sep 17 00:00:00 2001 From: SomeonePerson123 <127326392+SomeonePerson123@users.noreply.github.com> Date: Tue, 3 Feb 2026 00:20:34 +0000 Subject: [PATCH 2/2] Move implementation from Hodgepodge to NHCore --- dependencies.gradle | 2 +- .../biomesoplenty/BOPWoodTypes.java | 19 +++++++++++ .../biomesoplenty/BlockBOPFence.java | 15 +++++++++ .../biomesoplenty/BlockBOPFenceGate.java | 23 +++++++++++++ .../com/dreammaster/coremod/DreamCoreMod.java | 2 ++ .../mixin/mixins/early/MixinBOPBlocks.java | 26 +++++++++++++++ .../dreammaster/recipes/RecipeRemover.java | 30 ----------------- .../scripts/ScriptBiomesOPlenty.java | 7 ++-- .../assets/dreamcraft/lang/en_US.lang | 32 +++++++++++++++++++ 9 files changed, 120 insertions(+), 36 deletions(-) create mode 100644 src/main/java/com/dreammaster/biomesoplenty/BOPWoodTypes.java create mode 100644 src/main/java/com/dreammaster/biomesoplenty/BlockBOPFence.java create mode 100644 src/main/java/com/dreammaster/biomesoplenty/BlockBOPFenceGate.java create mode 100644 src/main/java/com/dreammaster/mixin/mixins/early/MixinBOPBlocks.java diff --git a/dependencies.gradle b/dependencies.gradle index fba37748ef..3a6601bc8d 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -34,8 +34,8 @@ dependencies { compileOnly("com.cubefury.vendingmachine:VendingMachine:0.4.2:dev") { transitive = false } compileOnly("com.github.GTNewHorizons:BetterQuesting:3.8.14-GTNH:dev") { transitive = false } //compileOnly("com.github.Roadhog360:Et-Futurum-Requiem:2.6.2:dev") { transitive = false } + implementation rfg.deobf("curse.maven:biomes-o-plenty-220318:2499612") - runtimeOnlyNonPublishable rfg.deobf("curse.maven:biomes-o-plenty-220318:2499612") runtimeOnlyNonPublishable("com.github.GTNewHorizons:WailaHarvestability:1.3.4-GTNH:dev") runtimeOnlyNonPublishable("com.github.GTNewHorizons:Galacticraft:3.4.14-GTNH:dev") diff --git a/src/main/java/com/dreammaster/biomesoplenty/BOPWoodTypes.java b/src/main/java/com/dreammaster/biomesoplenty/BOPWoodTypes.java new file mode 100644 index 0000000000..b6c511cef6 --- /dev/null +++ b/src/main/java/com/dreammaster/biomesoplenty/BOPWoodTypes.java @@ -0,0 +1,19 @@ +package com.dreammaster.biomesoplenty; + +public enum BOPWoodTypes { + sacredoak, + cherry, + dark, + fir, + ethereal, + magic, + mangrove, + palm, + redwood, + willow, + bamboothatching, + pine, + hell_bark, + jacaranda, + mahogany +} diff --git a/src/main/java/com/dreammaster/biomesoplenty/BlockBOPFence.java b/src/main/java/com/dreammaster/biomesoplenty/BlockBOPFence.java new file mode 100644 index 0000000000..ecfe31c30c --- /dev/null +++ b/src/main/java/com/dreammaster/biomesoplenty/BlockBOPFence.java @@ -0,0 +1,15 @@ +package com.dreammaster.biomesoplenty; + +import net.minecraft.block.BlockFence; +import net.minecraft.block.material.Material; + +import biomesoplenty.BiomesOPlenty; + +public class BlockBOPFence extends BlockFence { + + public BlockBOPFence(String type) { + super(type.equals("bamboothatching") ? "biomesoplenty:" + type : "biomesoplenty:plank_" + type, Material.wood); + this.setCreativeTab(BiomesOPlenty.tabBiomesOPlenty); + } + +} diff --git a/src/main/java/com/dreammaster/biomesoplenty/BlockBOPFenceGate.java b/src/main/java/com/dreammaster/biomesoplenty/BlockBOPFenceGate.java new file mode 100644 index 0000000000..5b1869119c --- /dev/null +++ b/src/main/java/com/dreammaster/biomesoplenty/BlockBOPFenceGate.java @@ -0,0 +1,23 @@ +package com.dreammaster.biomesoplenty; + +import net.minecraft.block.BlockFenceGate; +import net.minecraft.util.IIcon; + +import biomesoplenty.BiomesOPlenty; +import biomesoplenty.api.content.BOPCBlocks; + +public class BlockBOPFenceGate extends BlockFenceGate { + + private final int woodType; + + public BlockBOPFenceGate(String type) { + super(); + this.setCreativeTab(BiomesOPlenty.tabBiomesOPlenty); + woodType = BOPWoodTypes.valueOf(type).ordinal(); + } + + @Override + public IIcon getIcon(int side, int meta) { + return BOPCBlocks.planks.getIcon(side, woodType); + } +} diff --git a/src/main/java/com/dreammaster/coremod/DreamCoreMod.java b/src/main/java/com/dreammaster/coremod/DreamCoreMod.java index b7ee445356..699bb0979b 100644 --- a/src/main/java/com/dreammaster/coremod/DreamCoreMod.java +++ b/src/main/java/com/dreammaster/coremod/DreamCoreMod.java @@ -110,6 +110,8 @@ public List getMixins(Set loadedCoreMods) { mixins.add("MixinGuiShareToLan"); } mixins.add("MixinTileEntityBeacon"); + mixins.add("MixinBOPBlocks"); + return mixins; } diff --git a/src/main/java/com/dreammaster/mixin/mixins/early/MixinBOPBlocks.java b/src/main/java/com/dreammaster/mixin/mixins/early/MixinBOPBlocks.java new file mode 100644 index 0000000000..2a7914c87b --- /dev/null +++ b/src/main/java/com/dreammaster/mixin/mixins/early/MixinBOPBlocks.java @@ -0,0 +1,26 @@ +package com.dreammaster.mixin.mixins.early; + +import static biomesoplenty.common.core.BOPBlocks.*; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import com.dreammaster.biomesoplenty.BOPWoodTypes; +import com.dreammaster.biomesoplenty.BlockBOPFence; +import com.dreammaster.biomesoplenty.BlockBOPFenceGate; + +import biomesoplenty.common.core.BOPBlocks; + +@Mixin(value = BOPBlocks.class, remap = false) +public class MixinBOPBlocks { + + @Inject(method = "registerBlocks", at = @At("RETURN")) + private static void registerBlocks(CallbackInfo ci) { + for (BOPWoodTypes woodType : BOPWoodTypes.values()) { + registerBlock(new BlockBOPFence(woodType.name()).setBlockName(woodType.name() + "Fence")); + registerBlock(new BlockBOPFenceGate(woodType.name()).setBlockName(woodType.name() + "FenceGate")); + } + } +} diff --git a/src/main/java/com/dreammaster/recipes/RecipeRemover.java b/src/main/java/com/dreammaster/recipes/RecipeRemover.java index 112b4baf65..9447c1eae8 100644 --- a/src/main/java/com/dreammaster/recipes/RecipeRemover.java +++ b/src/main/java/com/dreammaster/recipes/RecipeRemover.java @@ -3007,36 +3007,6 @@ public static void run() { removeRecipeShapelessDelayed( getModItem(BiomesOPlenty.ID, "misc", 1, 6, missing), getModItem(BiomesOPlenty.ID, "plants", 1, 7, missing)); - removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "sacredoakFence", 1, 0, missing)); - removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "cherryFence", 1, 0, missing)); - removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "darkFence", 1, 0, missing)); - removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "firFence", 1, 0, missing)); - removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "etherealFence", 1, 0, missing)); - removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "magicFence", 1, 0, missing)); - removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "mangroveFence", 1, 0, missing)); - removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "palmFence", 1, 0, missing)); - removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "redwoodFence", 1, 0, missing)); - removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "willowFence", 1, 0, missing)); - removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "bamboothatchingFence", 1, 0, missing)); - removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "pineFence", 1, 0, missing)); - removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "hell_barkFence", 1, 0, missing)); - removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "jacarandaFence", 1, 0, missing)); - removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "mahoganyFence", 1, 0, missing)); - removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "sacredoakFenceGate", 1, 0, missing)); - removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "cherryFenceGate", 1, 0, missing)); - removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "darkFenceGate", 1, 0, missing)); - removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "firFenceGate", 1, 0, missing)); - removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "etherealFenceGate", 1, 0, missing)); - removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "magicFenceGate", 1, 0, missing)); - removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "mangroveFenceGate", 1, 0, missing)); - removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "palmFenceGate", 1, 0, missing)); - removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "redwoodFenceGate", 1, 0, missing)); - removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "willowFenceGate", 1, 0, missing)); - removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "bamboothatchingFenceGate", 1, 0, missing)); - removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "pineFenceGate", 1, 0, missing)); - removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "hell_barkFenceGate", 1, 0, missing)); - removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "jacarandaFenceGate", 1, 0, missing)); - removeRecipeByOutputDelayed(getModItem(BiomesOPlenty.ID, "mahoganyFenceGate", 1, 0, missing)); removeRecipeShapelessDelayed(GTOreDictUnificator.get(OrePrefixes.gem, Materials.Ruby, 1L)); removeRecipeShapelessDelayed(GTOreDictUnificator.get(OrePrefixes.gem, Materials.Sapphire, 1L)); removeRecipeShapelessDelayed(getModItem(Minecraft.ID, "dye", 1, 4, missing)); diff --git a/src/main/java/com/dreammaster/scripts/ScriptBiomesOPlenty.java b/src/main/java/com/dreammaster/scripts/ScriptBiomesOPlenty.java index 5b6e1e0b89..c164ce4ee6 100644 --- a/src/main/java/com/dreammaster/scripts/ScriptBiomesOPlenty.java +++ b/src/main/java/com/dreammaster/scripts/ScriptBiomesOPlenty.java @@ -7,7 +7,6 @@ import static gregtech.api.enums.Mods.Chisel; import static gregtech.api.enums.Mods.Forestry; import static gregtech.api.enums.Mods.HardcoreEnderExpansion; -import static gregtech.api.enums.Mods.HodgePodge; import static gregtech.api.enums.Mods.IguanaTweaksTinkerConstruct; import static gregtech.api.enums.Mods.Minecraft; import static gregtech.api.enums.Mods.PamsHarvestCraft; @@ -40,6 +39,7 @@ import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidRegistry; +import com.dreammaster.biomesoplenty.BOPWoodTypes; import com.dreammaster.chisel.ChiselHelper; import com.dreammaster.item.NHItemList; @@ -68,7 +68,6 @@ public List getDependencies() { Chisel.ID, Forestry.ID, HardcoreEnderExpansion.ID, - HodgePodge.ID, IguanaTweaksTinkerConstruct.ID, PamsHarvestCraft.ID, Railcraft.ID, @@ -555,9 +554,7 @@ public void loadRecipes() { // Fence and Fence Gate recipes: - enum WoodTypes{sacredoak,cherry,dark,fir,ethereal,magic,mangrove,palm,redwood,willow,bamboothatching,pine,hell_bark,jacaranda,mahogany} - - for (WoodTypes woodType : WoodTypes.values()) { + for (BOPWoodTypes woodType : BOPWoodTypes.values()) { ItemStack plank = getModItem(BiomesOPlenty.ID, "planks", 1, woodType.ordinal()); // Fences diff --git a/src/main/resources/assets/dreamcraft/lang/en_US.lang b/src/main/resources/assets/dreamcraft/lang/en_US.lang index fd1e3325ca..32dcf61e79 100644 --- a/src/main/resources/assets/dreamcraft/lang/en_US.lang +++ b/src/main/resources/assets/dreamcraft/lang/en_US.lang @@ -1803,6 +1803,38 @@ dreamcraft.pausemenu.sharetolan.tooltip=§cOpen to LAN is buggy in GTNH§r\nInst dreamcraft.gui.sharetolan.message=§cOpen To LAN can break the GTNH questbook.§r Consider setting up a dedicated server +tile.sacredoakFence.name=Sacred Oak Fence +tile.cherryFence.name=Cherry Fence +tile.darkFence.name=Dark Fence +tile.firFence.name=Fir Fence +tile.etherealFence.name=Ethereal Fence +tile.magicFence.name=Magic Fence +tile.mangroveFence.name=Mangrove Fence +tile.palmFence.name=Palm Fence +tile.redwoodFence.name=Redwood Fence +tile.willowFence.name=Willow Fence +tile.bamboothatchingFence.name=Bamboo Thatching Fence +tile.pineFence.name=Pine Fence +tile.hell_barkFence.name=Hellbark Fence +tile.jacarandaFence.name=Jacaranda Fence +tile.mahoganyFence.name=Mahogany Fence + +tile.sacredoakFenceGate.name=Sacred Oak Fence Gate +tile.cherryFenceGate.name=Cherry Fence Gate +tile.darkFenceGate.name=Dark Fence Gate +tile.firFenceGate.name=Fir Fence Gate +tile.etherealFenceGate.name=Ethereal Fence Gate +tile.magicFenceGate.name=Magic Fence Gate +tile.mangroveFenceGate.name=Mangrove Fence Gate +tile.palmFenceGate.name=Palm Fence Gate +tile.redwoodFenceGate.name=Redwood Fence Gate +tile.willowFenceGate.name=Willow Fence Gate +tile.bamboothatchingFenceGate.name=Bamboo Thatching Fence Gate +tile.pineFenceGate.name=Pine Fence Gate +tile.hell_barkFenceGate.name=Hellbark Fence Gate +tile.jacarandaFenceGate.name=Jacaranda Fence Gate +tile.mahoganyFenceGate.name=Mahogany Fence Gate + dreamcraft.command.customdrops.usage=/customdrops reload|toggleinfo dreamcraft.command.customfuels.usage=/customfuels reload dreamcraft.command.customtooltips.usage=/customtooltips reload