diff --git a/dependencies.gradle b/dependencies.gradle index fba37748e..3a6601bc8 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 000000000..b6c511cef --- /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 000000000..ecfe31c30 --- /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 000000000..5b1869119 --- /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 b7ee44535..699bb0979 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 000000000..2a7914c87 --- /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/scripts/ScriptBiomesOPlenty.java b/src/main/java/com/dreammaster/scripts/ScriptBiomesOPlenty.java index 06b3cf4dc..c164ce4ee 100644 --- a/src/main/java/com/dreammaster/scripts/ScriptBiomesOPlenty.java +++ b/src/main/java/com/dreammaster/scripts/ScriptBiomesOPlenty.java @@ -36,8 +36,10 @@ import java.util.Arrays; import java.util.List; +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; @@ -549,5 +551,94 @@ 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: + + for (BOPWoodTypes woodType : BOPWoodTypes.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); + } } } diff --git a/src/main/resources/assets/dreamcraft/lang/en_US.lang b/src/main/resources/assets/dreamcraft/lang/en_US.lang index fd1e3325c..32dcf61e7 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