2016-05-31 16:43:11 -07:00
|
|
|
package WayofTime.bloodmagic.compat.waila.provider;
|
|
|
|
|
2018-02-05 17:04:38 -08:00
|
|
|
import WayofTime.bloodmagic.apibutnotreally.BlockStack;
|
|
|
|
import WayofTime.bloodmagic.apibutnotreally.Constants;
|
|
|
|
import WayofTime.bloodmagic.apibutnotreally.registry.ImperfectRitualRegistry;
|
|
|
|
import WayofTime.bloodmagic.apibutnotreally.registry.RitualRegistry;
|
|
|
|
import WayofTime.bloodmagic.apibutnotreally.ritual.imperfect.ImperfectRitual;
|
|
|
|
import WayofTime.bloodmagic.apibutnotreally.util.helper.PlayerHelper;
|
2016-05-31 16:43:11 -07:00
|
|
|
import WayofTime.bloodmagic.block.BlockRitualController;
|
|
|
|
import WayofTime.bloodmagic.tile.TileImperfectRitualStone;
|
|
|
|
import WayofTime.bloodmagic.tile.TileMasterRitualStone;
|
|
|
|
import WayofTime.bloodmagic.util.helper.TextHelper;
|
2017-08-15 21:30:48 -07:00
|
|
|
import mcp.mobius.waila.api.IWailaConfigHandler;
|
|
|
|
import mcp.mobius.waila.api.IWailaDataAccessor;
|
|
|
|
import mcp.mobius.waila.api.IWailaDataProvider;
|
|
|
|
import net.minecraft.block.Block;
|
|
|
|
import net.minecraft.entity.player.EntityPlayerMP;
|
|
|
|
import net.minecraft.item.ItemStack;
|
|
|
|
import net.minecraft.nbt.NBTTagCompound;
|
|
|
|
import net.minecraft.tileentity.TileEntity;
|
|
|
|
import net.minecraft.util.math.BlockPos;
|
|
|
|
import net.minecraft.world.World;
|
|
|
|
|
|
|
|
import java.util.List;
|
2016-05-31 16:43:11 -07:00
|
|
|
|
2017-08-15 21:30:48 -07:00
|
|
|
public class DataProviderRitualController implements IWailaDataProvider {
|
2016-05-31 16:43:11 -07:00
|
|
|
@Override
|
2017-08-15 21:30:48 -07:00
|
|
|
public ItemStack getWailaStack(IWailaDataAccessor accessor, IWailaConfigHandler config) {
|
2016-05-31 16:43:11 -07:00
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2017-08-15 21:30:48 -07:00
|
|
|
public List<String> getWailaHead(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
|
2016-05-31 16:43:11 -07:00
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2017-08-15 21:30:48 -07:00
|
|
|
public List<String> getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
|
2016-05-31 16:43:11 -07:00
|
|
|
if (!config.getConfig(Constants.Compat.WAILA_CONFIG_RITUAL))
|
|
|
|
return currenttip;
|
|
|
|
|
2017-08-15 21:30:48 -07:00
|
|
|
if (accessor.getPlayer().isSneaking() || config.getConfig(Constants.Compat.WAILA_CONFIG_BYPASS_SNEAK)) {
|
|
|
|
if (accessor.getBlock() instanceof BlockRitualController) {
|
2017-02-13 19:35:14 -08:00
|
|
|
int controllerMeta = accessor.getBlock().getMetaFromState(accessor.getBlockState());
|
|
|
|
|
2017-08-15 21:30:48 -07:00
|
|
|
if ((controllerMeta == 0 || controllerMeta == 2) && accessor.getTileEntity() instanceof TileMasterRitualStone) {
|
2016-05-31 16:43:11 -07:00
|
|
|
TileMasterRitualStone mrs = (TileMasterRitualStone) accessor.getTileEntity();
|
|
|
|
|
2017-08-15 21:30:48 -07:00
|
|
|
if (mrs.getCurrentRitual() != null && mrs.isActive()) {
|
2016-05-31 16:43:11 -07:00
|
|
|
currenttip.add(TextHelper.localizeEffect(mrs.getCurrentRitual().getUnlocalizedName()));
|
2017-01-02 01:18:29 -08:00
|
|
|
currenttip.add(TextHelper.localizeEffect("tooltip.bloodmagic.currentOwner", PlayerHelper.getUsernameFromUUID(mrs.getOwner())));
|
2016-05-31 16:43:11 -07:00
|
|
|
if (!RitualRegistry.ritualEnabled(mrs.getCurrentRitual()))
|
2017-01-02 01:18:29 -08:00
|
|
|
currenttip.add(TextHelper.localizeEffect("tooltip.bloodmagic.config.disabled"));
|
2017-08-15 21:30:48 -07:00
|
|
|
} else {
|
2017-01-02 01:18:29 -08:00
|
|
|
currenttip.add(TextHelper.localizeEffect("tooltip.bloodmagic.deactivated"));
|
2016-05-31 16:43:11 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-08-15 21:30:48 -07:00
|
|
|
if (controllerMeta == 1 && accessor.getTileEntity() instanceof TileImperfectRitualStone) {
|
|
|
|
if (accessor.getWorld().isAirBlock(accessor.getPosition().up())) {
|
2016-05-31 16:43:11 -07:00
|
|
|
Block up = accessor.getWorld().getBlockState(accessor.getPosition().up()).getBlock();
|
|
|
|
int meta = up.getMetaFromState(accessor.getWorld().getBlockState(accessor.getPosition().up()));
|
|
|
|
BlockStack blockStack = new BlockStack(up, meta);
|
|
|
|
ImperfectRitual ritual = ImperfectRitualRegistry.getRitualForBlock(blockStack);
|
|
|
|
|
2017-08-15 21:30:48 -07:00
|
|
|
if (ritual != null) {
|
2016-05-31 16:43:11 -07:00
|
|
|
currenttip.add(TextHelper.localizeEffect(ritual.getUnlocalizedName()));
|
|
|
|
if (!ImperfectRitualRegistry.ritualEnabled(ritual))
|
2017-01-02 01:18:29 -08:00
|
|
|
currenttip.add(TextHelper.localizeEffect("tooltip.bloodmagic.config.disabled"));
|
2016-05-31 16:43:11 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2017-08-15 21:30:48 -07:00
|
|
|
} else {
|
2017-01-02 01:18:29 -08:00
|
|
|
currenttip.add(TextHelper.localizeEffect("waila.bloodmagic.sneak"));
|
2016-05-31 16:43:11 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
return currenttip;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2017-08-15 21:30:48 -07:00
|
|
|
public List<String> getWailaTail(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
|
2016-05-31 16:43:11 -07:00
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2017-08-15 21:30:48 -07:00
|
|
|
public NBTTagCompound getNBTData(EntityPlayerMP player, TileEntity te, NBTTagCompound tag, World world, BlockPos pos) {
|
2016-05-31 16:43:11 -07:00
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|