baubles compat

This commit is contained in:
Ellpeck 2018-10-19 14:35:25 +02:00
parent 0d9a18b41a
commit 663bff02f4
5 changed files with 68 additions and 2 deletions

View file

@ -24,10 +24,14 @@ repositories {
maven { maven {
url "http://dvs1.progwml6.com/files/maven" url "http://dvs1.progwml6.com/files/maven"
} }
maven {
url = "http://maven.thiakil.com"
}
} }
dependencies { dependencies {
deobfCompile "mezz.jei:jei_1.12.2:4.13.1.220" deobfCompile "mezz.jei:jei_1.12.2:4.13.1.220"
deobfCompile "com.azanor.baubles:Baubles:1.12-1.5.2"
} }

View file

@ -1,6 +1,7 @@
package de.ellpeck.naturesaura; package de.ellpeck.naturesaura;
import de.ellpeck.naturesaura.blocks.ModBlocks; import de.ellpeck.naturesaura.blocks.ModBlocks;
import de.ellpeck.naturesaura.compat.Compat;
import de.ellpeck.naturesaura.events.TerrainGenEvents; import de.ellpeck.naturesaura.events.TerrainGenEvents;
import de.ellpeck.naturesaura.items.ModItems; import de.ellpeck.naturesaura.items.ModItems;
import de.ellpeck.naturesaura.packet.PacketHandler; import de.ellpeck.naturesaura.packet.PacketHandler;
@ -42,6 +43,7 @@ public final class NaturesAura {
new ModBlocks(); new ModBlocks();
new ModItems(); new ModItems();
Compat.init();
PacketHandler.init(); PacketHandler.init();
ModRegistry.preInit(event); ModRegistry.preInit(event);

View file

@ -0,0 +1,42 @@
package de.ellpeck.naturesaura.compat;
import baubles.api.BaubleType;
import baubles.api.IBauble;
import baubles.api.cap.BaublesCapabilities;
import de.ellpeck.naturesaura.NaturesAura;
import de.ellpeck.naturesaura.items.ModItems;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.ICapabilityProvider;
import net.minecraftforge.event.AttachCapabilitiesEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
public class BaublesCompat {
private final IBauble eye = stack -> BaubleType.CHARM;
@SubscribeEvent
public void onCapabilitiesAttach(AttachCapabilitiesEvent<ItemStack> event) {
Item item = event.getObject().getItem();
if (item == ModItems.EYE) {
event.addCapability(new ResourceLocation(NaturesAura.MOD_ID, "bauble"), new ICapabilityProvider() {
@Override
public boolean hasCapability(@Nonnull Capability<?> capability, @Nullable EnumFacing facing) {
return capability == BaublesCapabilities.CAPABILITY_ITEM_BAUBLE;
}
@Nullable
@Override
public <T> T getCapability(@Nonnull Capability<T> capability, @Nullable EnumFacing facing) {
return capability == BaublesCapabilities.CAPABILITY_ITEM_BAUBLE ? (T) BaublesCompat.this.eye : null;
}
});
}
}
}

View file

@ -0,0 +1,16 @@
package de.ellpeck.naturesaura.compat;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.common.Loader;
public final class Compat {
public static boolean baubles;
public static void init() {
baubles = Loader.isModLoaded("baubles");
if (baubles) {
MinecraftForge.EVENT_BUS.register(new BaublesCompat());
}
}
}

View file

@ -1,9 +1,11 @@
package de.ellpeck.naturesaura.events; package de.ellpeck.naturesaura.events;
import baubles.api.BaublesApi;
import de.ellpeck.naturesaura.Helper; import de.ellpeck.naturesaura.Helper;
import de.ellpeck.naturesaura.NaturesAura; import de.ellpeck.naturesaura.NaturesAura;
import de.ellpeck.naturesaura.aura.IAuraContainer; import de.ellpeck.naturesaura.aura.IAuraContainer;
import de.ellpeck.naturesaura.aura.IAuraContainerProvider; import de.ellpeck.naturesaura.aura.IAuraContainerProvider;
import de.ellpeck.naturesaura.compat.Compat;
import de.ellpeck.naturesaura.items.ModItems; import de.ellpeck.naturesaura.items.ModItems;
import de.ellpeck.naturesaura.particles.ParticleHandler; import de.ellpeck.naturesaura.particles.ParticleHandler;
import de.ellpeck.naturesaura.particles.ParticleMagic; import de.ellpeck.naturesaura.particles.ParticleMagic;
@ -69,11 +71,11 @@ public class ClientEvents {
@SubscribeEvent @SubscribeEvent
public void onOverlayRender(RenderGameOverlayEvent.Post event) { public void onOverlayRender(RenderGameOverlayEvent.Post event) {
Minecraft mc = Minecraft.getMinecraft(); Minecraft mc = Minecraft.getMinecraft();
if (event.getType() == ElementType.ALL /*&& mc.currentScreen == null*/) { if (event.getType() == ElementType.ALL && mc.currentScreen == null) {
ScaledResolution res = event.getResolution(); ScaledResolution res = event.getResolution();
if (mc.player != null) { if (mc.player != null) {
ItemStack stack = mc.player.getHeldItemMainhand(); ItemStack stack = mc.player.getHeldItemMainhand();
if (!stack.isEmpty() && stack.getItem() == ModItems.EYE) { if (!stack.isEmpty() && stack.getItem() == ModItems.EYE || Compat.baubles && BaublesApi.isBaubleEquipped(mc.player, ModItems.EYE) >= 0) {
int maxAura = 0; int maxAura = 0;
int aura = 0; int aura = 0;
int total = 0; int total = 0;