From 23e14b083e497544cb4f720be4e3d4a5772c6120 Mon Sep 17 00:00:00 2001 From: Shazuli Date: Wed, 21 May 2025 21:06:15 +0200 Subject: [PATCH] Added support for Fluidlogged API for some blocks. --- dependencies.gradle | 1 + .../java/gregtech/api/items/metaitem/MetaItem.java | 2 +- .../java/gregtech/api/pipenet/block/BlockPipe.java | 3 ++- src/main/java/gregtech/api/util/Mods.java | 1 + src/main/java/gregtech/common/blocks/BlockFrame.java | 4 +++- .../gregtech/common/pipelike/cable/BlockCable.java | 5 +++++ .../fluidlogged_api/IFluidloggableWrapper.java | 10 ++++++++++ 7 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 src/main/java/gregtech/integration/fluidlogged_api/IFluidloggableWrapper.java diff --git a/dependencies.gradle b/dependencies.gradle index 74ea3cf0e06..d146863b502 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -52,6 +52,7 @@ dependencies { compileOnly("curse.maven:journeymap-32274:5172461") // Journeymap 5.7.1p3 compileOnly("curse.maven:voxelmap-225179:3029445") // VoxelMap 1.9.28 compileOnly("curse.maven:xaeros-263420:5394758") // Xaero's Minimap 24.2.0 + compileOnly("maven.modrinth:fluidlogged-api:ArR5epY9") // Fluidlogged API 3.0.6 compileOnly rfg.deobf("curse.maven:opencomputers-223008:5274236") // OpenComputers 1.8.5+179e1c3 compileOnly rfg.deobf("curse.maven:hwyla-253449:2568751") // HWYLA 1.8.26-B41 compileOnly rfg.deobf("curse.maven:baubles-227083:2518667") // Baubles 1.5.2 diff --git a/src/main/java/gregtech/api/items/metaitem/MetaItem.java b/src/main/java/gregtech/api/items/metaitem/MetaItem.java index 52b94672421..f72c8b1f1ba 100644 --- a/src/main/java/gregtech/api/items/metaitem/MetaItem.java +++ b/src/main/java/gregtech/api/items/metaitem/MetaItem.java @@ -736,7 +736,7 @@ public void addAdditionalCreativeTabs(@NotNull CreativeTabs @NotNull... tabs) { } @Override - protected boolean isInCreativeTab(@NotNull CreativeTabs tab) { + public boolean isInCreativeTab(@NotNull CreativeTabs tab) { return tab == CreativeTabs.SEARCH || ArrayUtils.contains(defaultCreativeTabs, tab) || additionalCreativeTabs.contains(tab); diff --git a/src/main/java/gregtech/api/pipenet/block/BlockPipe.java b/src/main/java/gregtech/api/pipenet/block/BlockPipe.java index 667b67fcf52..3369d6fa1b9 100644 --- a/src/main/java/gregtech/api/pipenet/block/BlockPipe.java +++ b/src/main/java/gregtech/api/pipenet/block/BlockPipe.java @@ -18,6 +18,7 @@ import gregtech.common.blocks.BlockFrame; import gregtech.common.blocks.MetaBlocks; import gregtech.common.items.MetaItems; +import gregtech.integration.fluidlogged_api.IFluidloggableWrapper; import gregtech.integration.ctm.IFacadeWrapper; import net.minecraft.block.Block; @@ -66,7 +67,7 @@ @SuppressWarnings("deprecation") public abstract class BlockPipe & IPipeType, NodeDataType, WorldPipeNetType extends WorldPipeNet>> extends BuiltInRenderBlock - implements ITileEntityProvider, IFacadeWrapper, IBlockAppearance { + implements ITileEntityProvider, IFacadeWrapper, IBlockAppearance, IFluidloggableWrapper { protected final ThreadLocal> tileEntities = new ThreadLocal<>(); diff --git a/src/main/java/gregtech/api/util/Mods.java b/src/main/java/gregtech/api/util/Mods.java index 9b56b74688d..ff2b6c8d416 100644 --- a/src/main/java/gregtech/api/util/Mods.java +++ b/src/main/java/gregtech/api/util/Mods.java @@ -114,6 +114,7 @@ public static class Names { public static final String EXTRA_BEES = "extrabees"; public static final String EXTRA_TREES = "extratrees"; public static final String EXTRA_UTILITIES2 = "extrautils2"; + public static final String FLUIDLOGGED_API = "fluidlogged_api"; public static final String FORESTRY = "forestry"; public static final String FORESTRY_APICULTURE = "apiculture"; public static final String FORESTRY_ARBORICULTURE = "arboriculture"; diff --git a/src/main/java/gregtech/common/blocks/BlockFrame.java b/src/main/java/gregtech/common/blocks/BlockFrame.java index 88bbf3c2374..cd82d46dc57 100644 --- a/src/main/java/gregtech/common/blocks/BlockFrame.java +++ b/src/main/java/gregtech/common/blocks/BlockFrame.java @@ -16,6 +16,8 @@ import gregtech.common.blocks.properties.PropertyMaterial; import gregtech.common.creativetab.GTCreativeTabs; +import gregtech.integration.fluidlogged_api.IFluidloggableWrapper; + import net.minecraft.block.Block; import net.minecraft.block.SoundType; import net.minecraft.block.material.EnumPushReaction; @@ -47,7 +49,7 @@ import java.util.List; -public abstract class BlockFrame extends BlockMaterialBase { +public abstract class BlockFrame extends BlockMaterialBase implements IFluidloggableWrapper { public static final AxisAlignedBB COLLISION_BOX = new AxisAlignedBB(0.05, 0.0, 0.05, 0.95, 1.0, 0.95); diff --git a/src/main/java/gregtech/common/pipelike/cable/BlockCable.java b/src/main/java/gregtech/common/pipelike/cable/BlockCable.java index 204010ed522..d5140c12e68 100644 --- a/src/main/java/gregtech/common/pipelike/cable/BlockCable.java +++ b/src/main/java/gregtech/common/pipelike/cable/BlockCable.java @@ -82,6 +82,11 @@ protected WireProperties createProperties(Insulation insulation, Material materi return insulation.modifyProperties(enabledMaterials.getOrDefault(material, getFallbackType())); } + @Override + public boolean isFluidloggable(IBlockState state, World world, BlockPos pos) { + return pipeType.thickness < 1.0f; + } + @SideOnly(Side.CLIENT) @NotNull @Override diff --git a/src/main/java/gregtech/integration/fluidlogged_api/IFluidloggableWrapper.java b/src/main/java/gregtech/integration/fluidlogged_api/IFluidloggableWrapper.java new file mode 100644 index 00000000000..97ff9e0d9e4 --- /dev/null +++ b/src/main/java/gregtech/integration/fluidlogged_api/IFluidloggableWrapper.java @@ -0,0 +1,10 @@ +package gregtech.integration.fluidlogged_api; + +import git.jbredwards.fluidlogged_api.api.block.IFluidloggable; + +import gregtech.api.util.Mods; + +import net.minecraftforge.fml.common.Optional; + +@Optional.Interface(modid = Mods.Names.FLUIDLOGGED_API, iface = "git.jbredwards.fluidlogged_api.api.block.IFluidloggable") +public interface IFluidloggableWrapper extends IFluidloggable {}