diff --git a/dependencies.gradle b/dependencies.gradle index 37fece0..d95d7cd 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -52,6 +52,7 @@ dependencies { compileOnly("curse.maven:cofh-lib-220333:2388748") { transitive = false } compileOnly("com.github.GTNewHorizons:EnderIO:2.10.8:dev") { transitive = false } compileOnly("com.github.GTNewHorizons:EnderStorage:1.8.0:dev") { transitive = false } + compileOnly(rfg.deobf("curse.maven:extra-utilities-225561:2264384")) compileOnly("com.github.GTNewHorizons:FloodLights:1.5.5:dev") { transitive = false } compileOnly("com.github.GTNewHorizons:ForgeMultipart:1.7.2:dev") { transitive = false } compileOnly("com.github.GTNewHorizons:GT5-Unofficial:5.09.52.140:dev") { transitive = false } @@ -75,6 +76,7 @@ dependencies { runtimeOnlyNonPublishable("com.github.GTNewHorizons:DuraDisplay:1.4.0:dev") runtimeOnlyNonPublishable('com.github.GTNewHorizons:EnderIO:2.10.8:dev') runtimeOnlyNonPublishable("com.github.GTNewHorizons:EnderStorage:1.8.0:dev") + runtimeOnlyNonPublishable(rfg.deobf("curse.maven:extra-utilities-225561:2264384")) runtimeOnlyNonPublishable("com.github.GTNewHorizons:GT5-Unofficial:5.09.52.140:dev") runtimeOnlyNonPublishable("com.github.GTNewHorizons:FloodLights:1.5.5:dev") runtimeOnlyNonPublishable("com.github.GTNewHorizons:ForgeMultipart:1.7.2:dev") diff --git a/src/main/java/com/recursive_pineapple/matter_manipulator/common/compat/BlockPropertyRegistry.java b/src/main/java/com/recursive_pineapple/matter_manipulator/common/compat/BlockPropertyRegistry.java index 937940e..ff8b065 100644 --- a/src/main/java/com/recursive_pineapple/matter_manipulator/common/compat/BlockPropertyRegistry.java +++ b/src/main/java/com/recursive_pineapple/matter_manipulator/common/compat/BlockPropertyRegistry.java @@ -65,6 +65,7 @@ import com.recursive_pineapple.matter_manipulator.common.utils.MMUtils; import com.recursive_pineapple.matter_manipulator.common.utils.Mods; import com.recursive_pineapple.matter_manipulator.common.utils.Mods.Names; +import com.rwtema.extrautils.block.BlockSpike; import net.bdew.ae2stuff.machines.wireless.TileWireless; @@ -262,6 +263,7 @@ public static void init() { if (Mods.GregTech.isModLoaded()) initGT5u(); if (Mods.AE2Stuff.isModLoaded()) initAE2Stuff(); if (Mods.EnderStorage.isModLoaded()) initEnderStorage(); + if (Mods.ExtraUtilities.isModLoaded()) initEXU(); } // #region Vanilla @@ -1137,6 +1139,35 @@ public void setValue(World world, int x, int y, int z, ForgeDirection forgeDirec // #endregion + // #region Extra Utilities + + private static void initEXU() { + registerBlockInterfaceProperty( + BlockSpike.class, + new DirectionBlockProperty() { + + @Override + public String getName() { + return "facing"; + } + + @Override + public ForgeDirection getValue(World world, int x, int y, int z) { + return MMUtils.getIndexSafe(VALID_DIRECTIONS, world.getBlockMetadata(x, y, z) % 6); + } + + @Override + public void setValue(World world, int x, int y, int z, ForgeDirection forgeDirection) { + boolean enchanted = world.getBlockMetadata(x, y, z) >= 6; + + world.setBlockMetadataWithNotify(x, y, z, (enchanted ? 6 : 0) + forgeDirection.ordinal(), 3); + } + } + ); + } + + // #endregion + @SneakyThrows public static DirectionBlockProperty methodIntDirectionTile(Class clazz, String getterName, String setterName) { Method getter = clazz.getDeclaredMethod(getterName); diff --git a/src/main/java/com/recursive_pineapple/matter_manipulator/common/utils/Mods.java b/src/main/java/com/recursive_pineapple/matter_manipulator/common/utils/Mods.java index da095c1..dc76fb7 100644 --- a/src/main/java/com/recursive_pineapple/matter_manipulator/common/utils/Mods.java +++ b/src/main/java/com/recursive_pineapple/matter_manipulator/common/utils/Mods.java @@ -23,6 +23,7 @@ public enum Mods implements IMod, ITargetMod { CarpentersBlocks(Names.CARPENTERS_BLOCKS), EnderIO(Names.ENDER_I_O), EnderStorage(Names.ENDER_STORAGE), + ExtraUtilities(Names.EXTRA_UTILITIES), /** Creates the actual block parts from blocks. */ ForgeMicroblocks(Names.FORGE_MICROBLOCKS), /** The forge multipart library. */ @@ -69,6 +70,7 @@ public static class Names { public static final String CARPENTERS_BLOCKS = "CarpentersBlocks"; public static final String ENDER_I_O = "EnderIO"; public static final String ENDER_STORAGE = "EnderStorage"; + public static final String EXTRA_UTILITIES = "ExtraUtilities"; public static final String FORGE_MICROBLOCKS = "ForgeMicroblock"; public static final String FORGE_MULTIPART = "ForgeMultipart"; public static final String FLOOD_LIGHTS = "FloodLights";