Rewrite Hwyla integration
Now properly makes use of the API
This commit is contained in:
parent
9f6a4983a6
commit
03fece58fa
9 changed files with 187 additions and 201 deletions
|
@ -6,14 +6,12 @@ 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;
|
||||
import WayofTime.bloodmagic.block.BlockRitualController;
|
||||
import WayofTime.bloodmagic.tile.TileImperfectRitualStone;
|
||||
import WayofTime.bloodmagic.tile.TileMasterRitualStone;
|
||||
import WayofTime.bloodmagic.util.helper.TextHelper;
|
||||
import joptsimple.internal.Strings;
|
||||
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;
|
||||
|
@ -21,70 +19,64 @@ import net.minecraft.tileentity.TileEntity;
|
|||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import java.util.List;
|
||||
|
||||
public class DataProviderRitualController implements IWailaDataProvider {
|
||||
@Override
|
||||
public ItemStack getWailaStack(IWailaDataAccessor accessor, IWailaConfigHandler config) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getWailaHead(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
|
||||
return null;
|
||||
}
|
||||
public static final IWailaDataProvider INSTANCE = new DataProviderRitualController();
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public List<String> getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
|
||||
if (!config.getConfig(Constants.Compat.WAILA_CONFIG_RITUAL))
|
||||
return currenttip;
|
||||
|
||||
if (accessor.getPlayer().isSneaking() || config.getConfig(Constants.Compat.WAILA_CONFIG_BYPASS_SNEAK)) {
|
||||
if (accessor.getBlock() instanceof BlockRitualController) {
|
||||
int controllerMeta = accessor.getBlock().getMetaFromState(accessor.getBlockState());
|
||||
|
||||
if ((controllerMeta == 0 || controllerMeta == 2) && accessor.getTileEntity() instanceof TileMasterRitualStone) {
|
||||
TileMasterRitualStone mrs = (TileMasterRitualStone) accessor.getTileEntity();
|
||||
|
||||
if (mrs.getCurrentRitual() != null && mrs.isActive()) {
|
||||
currenttip.add(TextHelper.localizeEffect(mrs.getCurrentRitual().getUnlocalizedName()));
|
||||
currenttip.add(TextHelper.localizeEffect("tooltip.bloodmagic.currentOwner", PlayerHelper.getUsernameFromUUID(mrs.getOwner())));
|
||||
if (!RitualRegistry.ritualEnabled(mrs.getCurrentRitual()))
|
||||
currenttip.add(TextHelper.localizeEffect("tooltip.bloodmagic.config.disabled"));
|
||||
} else {
|
||||
currenttip.add(TextHelper.localizeEffect("tooltip.bloodmagic.deactivated"));
|
||||
}
|
||||
}
|
||||
|
||||
if (controllerMeta == 1 && accessor.getTileEntity() instanceof TileImperfectRitualStone) {
|
||||
if (accessor.getWorld().isAirBlock(accessor.getPosition().up())) {
|
||||
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);
|
||||
|
||||
if (ritual != null) {
|
||||
currenttip.add(TextHelper.localizeEffect(ritual.getUnlocalizedName()));
|
||||
if (!ImperfectRitualRegistry.ritualEnabled(ritual))
|
||||
currenttip.add(TextHelper.localizeEffect("tooltip.bloodmagic.config.disabled"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
NBTTagCompound tag = accessor.getNBTData();
|
||||
if (tag.getBoolean("master")) {
|
||||
if (tag.hasKey("ritual"))
|
||||
currenttip.add(TextHelper.localizeEffect(tag.getString("ritual")));
|
||||
if (tag.hasKey("owner"))
|
||||
currenttip.add(TextHelper.localizeEffect("tooltip.bloodmagic.currentOwner", tag.getString("owner")));
|
||||
if (!tag.getBoolean("active"))
|
||||
currenttip.add(TextHelper.localizeEffect("tooltip.bloodmagic.deactivated"));
|
||||
if (!tag.getBoolean("enabled"))
|
||||
currenttip.add(TextHelper.localizeEffect("tooltip.bloodmagic.config.disabled"));
|
||||
} else {
|
||||
currenttip.add(TextHelper.localizeEffect("waila.bloodmagic.sneak"));
|
||||
if (tag.hasKey("ritual")) {
|
||||
currenttip.add(TextHelper.localizeEffect(tag.getString("ritual")));
|
||||
if (!tag.getBoolean("enabled"))
|
||||
currenttip.add(TextHelper.localizeEffect("tooltip.bloodmagic.config.disabled"));
|
||||
}
|
||||
}
|
||||
|
||||
return currenttip;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getWailaTail(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public NBTTagCompound getNBTData(EntityPlayerMP player, TileEntity te, NBTTagCompound tag, World world, BlockPos pos) {
|
||||
return null;
|
||||
|
||||
if (te instanceof TileMasterRitualStone) {
|
||||
TileMasterRitualStone mrs = (TileMasterRitualStone) te;
|
||||
tag.setBoolean("master", true);
|
||||
if (mrs.getCurrentRitual() != null) {
|
||||
tag.setString("ritual", mrs.getCurrentRitual().getUnlocalizedName());
|
||||
tag.setBoolean("active", mrs.isActive());
|
||||
if (!Strings.isNullOrEmpty(mrs.getOwner()))
|
||||
tag.setString("owner", PlayerHelper.getUsernameFromUUID(mrs.getOwner()));
|
||||
tag.setBoolean("enabled", RitualRegistry.ritualEnabled(mrs.getCurrentRitual()));
|
||||
}
|
||||
} else {
|
||||
tag.setBoolean("master", false);
|
||||
|
||||
ImperfectRitual ritual = ImperfectRitualRegistry.getRitualForBlock(BlockStack.getStackFromPos(world, pos.up()));
|
||||
if (ritual != null) {
|
||||
tag.setString("ritual", ritual.getUnlocalizedName());
|
||||
tag.setBoolean("enabled", ImperfectRitualRegistry.ritualEnabled(ritual));
|
||||
}
|
||||
}
|
||||
|
||||
return tag;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue