From 8da5f6452b0797044adc0c991486a888bdfed7d7 Mon Sep 17 00:00:00 2001 From: LordMZTE Date: Thu, 23 Feb 2023 15:12:21 +0100 Subject: [PATCH] feat: add waila support closes #17 --- build.gradle | 3 +- .../com/eloraam/redpower/RedPowerCompat.java | 13 +++- .../com/eloraam/redpower/compat/Waila.java | 74 +++++++++++++++++++ 3 files changed, 86 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/eloraam/redpower/compat/Waila.java diff --git a/build.gradle b/build.gradle index 844f0b3..1649298 100644 --- a/build.gradle +++ b/build.gradle @@ -45,6 +45,7 @@ dependencies { implementation "codechicken:NotEnoughItems:1.7.10-1.0.5.120:dev" implementation "codechicken:CodeChickenCore:1.7.10-1.0.7.48:dev" implementation 'dan200:ComputerCraft:1.75:deobf' + implementation "mcp.mobius.waila:Waila:1.5.10_1.7.10:dev" } processResources { @@ -92,4 +93,4 @@ publishing { mavenLocal() } } -} \ No newline at end of file +} diff --git a/src/main/java/com/eloraam/redpower/RedPowerCompat.java b/src/main/java/com/eloraam/redpower/RedPowerCompat.java index 7232852..840fec0 100644 --- a/src/main/java/com/eloraam/redpower/RedPowerCompat.java +++ b/src/main/java/com/eloraam/redpower/RedPowerCompat.java @@ -5,7 +5,7 @@ import com.eloraam.redpower.compat.ComputercraftInterop; import com.eloraam.redpower.compat.ItemMachineCompat; import com.eloraam.redpower.compat.RenderBlueEngine; import com.eloraam.redpower.compat.TileBlueEngine; -import com.eloraam.redpower.core.CoreLib; +import com.eloraam.redpower.compat.Waila; import com.eloraam.redpower.core.CraftLib; import com.eloraam.redpower.core.ItemParts; import com.eloraam.redpower.core.RenderLib; @@ -16,6 +16,7 @@ import cpw.mods.fml.common.ModContainer; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLInterModComms; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.IGuiHandler; @@ -32,7 +33,6 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; -import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -78,7 +78,14 @@ public class RedPowerCompat implements IGuiHandler { @EventHandler public void postInit(FMLPostInitializationEvent event) { - } + NetworkRegistry.INSTANCE.registerGuiHandler(instance, instance); + + if (waila) { + FMLInterModComms.sendMessage( + "Waila", "register", Waila.class.getName() + ".register" + ); + } + } @SideOnly(Side.CLIENT) public void registerRenderers() { diff --git a/src/main/java/com/eloraam/redpower/compat/Waila.java b/src/main/java/com/eloraam/redpower/compat/Waila.java new file mode 100644 index 0000000..d03b07b --- /dev/null +++ b/src/main/java/com/eloraam/redpower/compat/Waila.java @@ -0,0 +1,74 @@ +package com.eloraam.redpower.compat; + +import java.util.List; + +import com.eloraam.redpower.core.TileCoverable; +import cpw.mods.fml.common.FMLCommonHandler; +import mcp.mobius.waila.api.IWailaConfigHandler; +import mcp.mobius.waila.api.IWailaDataAccessor; +import mcp.mobius.waila.api.IWailaDataProvider; +import mcp.mobius.waila.api.IWailaRegistrar; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class Waila implements IWailaDataProvider { + public static void register(final IWailaRegistrar registrar) { + FMLCommonHandler.instance().getFMLLogger().info( + "[RedPower Compat] registering waila plugin" + ); + registrar.registerStackProvider(new Waila(), TileCoverable.class); + } + + @Override + public ItemStack + getWailaStack(IWailaDataAccessor accessor, IWailaConfigHandler config) { + TileCoverable te = (TileCoverable) accessor.getTileEntity(); + return te.getPickBlock(accessor.getPosition(), accessor.getPlayer()); + } + + @Override + public List getWailaHead( + ItemStack itemStack, + List currenttip, + IWailaDataAccessor accessor, + IWailaConfigHandler config + ) { + return null; + } + + @Override + public List getWailaBody( + ItemStack itemStack, + List currenttip, + IWailaDataAccessor accessor, + IWailaConfigHandler config + ) { + return null; + } + + @Override + public List getWailaTail( + ItemStack itemStack, + List currenttip, + IWailaDataAccessor accessor, + IWailaConfigHandler config + ) { + return null; + } + + @Override + public NBTTagCompound getNBTData( + EntityPlayerMP player, + TileEntity te, + NBTTagCompound tag, + World world, + int x, + int y, + int z + ) { + return null; + } +}