232 lines
8.3 KiB
Java
232 lines
8.3 KiB
Java
package com.pahimar.ee3.waila;
|
|
|
|
import java.util.List;
|
|
|
|
import com.pahimar.ee3.block.BlockAshInfusedStoneSlab;
|
|
import com.pahimar.ee3.reference.Messages;
|
|
import com.pahimar.ee3.reference.Names;
|
|
import com.pahimar.ee3.tileentity.*;
|
|
import mcp.mobius.waila.api.*;
|
|
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.StatCollector;
|
|
import net.minecraft.world.World;
|
|
|
|
public class WailaDataProvider 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
|
|
) {
|
|
if (accessor.getTileEntity() instanceof TileEntityAludel) {
|
|
if (accessor.getWorld().getTileEntity(
|
|
accessor.getPosition().blockX,
|
|
accessor.getPosition().blockY + 1,
|
|
accessor.getPosition().blockZ
|
|
) instanceof TileEntityGlassBell) {
|
|
currentTip.set(
|
|
0,
|
|
String.format(
|
|
"%s%s",
|
|
SpecialChars.WHITE,
|
|
StatCollector.translateToLocal(Names.Containers.ALUDEL)
|
|
)
|
|
);
|
|
}
|
|
} else if (accessor.getTileEntity() instanceof TileEntityGlassBell) {
|
|
if (accessor.getWorld().getTileEntity(
|
|
accessor.getPosition().blockX,
|
|
accessor.getPosition().blockY - 1,
|
|
accessor.getPosition().blockZ
|
|
) instanceof TileEntityAludel) {
|
|
currentTip.set(
|
|
0,
|
|
String.format(
|
|
"%s%s",
|
|
SpecialChars.WHITE,
|
|
StatCollector.translateToLocal(Names.Containers.ALUDEL)
|
|
)
|
|
);
|
|
}
|
|
} else if (accessor.getTileEntity() instanceof TileEntityAlchemicalChestSmall) {
|
|
currentTip.set(
|
|
0,
|
|
SpecialChars.WHITE
|
|
+ StatCollector.translateToLocal(Messages.Tooltips.SMALL) + " "
|
|
+ StatCollector.translateToLocal(Names.Blocks.ALCHEMICAL_CHEST)
|
|
);
|
|
} else if (accessor.getTileEntity() instanceof TileEntityAlchemicalChestMedium) {
|
|
currentTip.set(
|
|
0,
|
|
SpecialChars.WHITE
|
|
+ StatCollector.translateToLocal(Messages.Tooltips.MEDIUM) + " "
|
|
+ StatCollector.translateToLocal(Names.Blocks.ALCHEMICAL_CHEST)
|
|
);
|
|
} else if (accessor.getTileEntity() instanceof TileEntityAlchemicalChestLarge) {
|
|
currentTip.set(
|
|
0,
|
|
SpecialChars.WHITE
|
|
+ StatCollector.translateToLocal(Messages.Tooltips.LARGE) + " "
|
|
+ StatCollector.translateToLocal(Names.Blocks.ALCHEMICAL_CHEST)
|
|
);
|
|
} else if (accessor.getTileEntity() instanceof TileEntityAlchemyArray) {
|
|
TileEntityAlchemyArray tileEntityAlchemyArray
|
|
= (TileEntityAlchemyArray) accessor.getTileEntity();
|
|
|
|
if (tileEntityAlchemyArray.getAlchemyArray() != null) {
|
|
currentTip.set(
|
|
0,
|
|
SpecialChars.WHITE
|
|
+ tileEntityAlchemyArray.getAlchemyArray().getDisplayName()
|
|
);
|
|
} else {
|
|
currentTip.set(
|
|
0,
|
|
SpecialChars.WHITE
|
|
+ StatCollector.translateToLocal(Names.Blocks.ALCHEMY_ARRAY)
|
|
);
|
|
}
|
|
} else if (accessor.getTileEntity() instanceof TileEntityDummyArray) {
|
|
TileEntityDummyArray tileEntityDummyArray
|
|
= (TileEntityDummyArray) accessor.getTileEntity();
|
|
TileEntityAlchemyArray tileEntityAlchemyArray
|
|
= (TileEntityAlchemyArray) accessor.getWorld().getTileEntity(
|
|
tileEntityDummyArray.getTrueXCoord(),
|
|
tileEntityDummyArray.getTrueYCoord(),
|
|
tileEntityDummyArray.getTrueZCoord()
|
|
);
|
|
|
|
if (tileEntityAlchemyArray != null
|
|
&& tileEntityAlchemyArray.getAlchemyArray() != null
|
|
&& tileEntityAlchemyArray.getAlchemyArray().getDisplayName() != null) {
|
|
currentTip.set(
|
|
0,
|
|
SpecialChars.WHITE
|
|
+ tileEntityAlchemyArray.getAlchemyArray().getDisplayName()
|
|
);
|
|
} else {
|
|
currentTip.set(
|
|
0,
|
|
SpecialChars.WHITE
|
|
+ StatCollector.translateToLocal(Names.Blocks.DUMMY_ARRAY)
|
|
);
|
|
}
|
|
} else if (accessor.getBlock() instanceof BlockAshInfusedStoneSlab) {
|
|
int metaData = accessor.getMetadata();
|
|
int x = accessor.getPosition().blockX;
|
|
int y = accessor.getPosition().blockY;
|
|
int z = accessor.getPosition().blockZ;
|
|
String unLocalizedBlockName
|
|
= accessor.getWorld().getBlock(x, y, z).getUnlocalizedName() + ".name";
|
|
|
|
if (metaData == 1) {
|
|
x++;
|
|
z++;
|
|
} else if (metaData == 2) {
|
|
z++;
|
|
} else if (metaData == 3) {
|
|
x--;
|
|
z++;
|
|
} else if (metaData == 4) {
|
|
x++;
|
|
} else if (metaData == 5) {
|
|
x--;
|
|
} else if (metaData == 6) {
|
|
x++;
|
|
z--;
|
|
} else if (metaData == 7) {
|
|
z--;
|
|
} else if (metaData == 8) {
|
|
x--;
|
|
z--;
|
|
}
|
|
|
|
if (metaData != 0
|
|
&& accessor.getWorld().getTileEntity(x, y, z)
|
|
instanceof TileEntityTransmutationTablet) {
|
|
currentTip.set(
|
|
0,
|
|
SpecialChars.WHITE
|
|
+ StatCollector.translateToLocal(
|
|
accessor.getWorld().getBlock(x, y, z).getUnlocalizedName()
|
|
+ ".name"
|
|
)
|
|
);
|
|
} else {
|
|
currentTip.set(
|
|
0,
|
|
SpecialChars.WHITE
|
|
+ StatCollector.translateToLocal(unLocalizedBlockName)
|
|
);
|
|
}
|
|
}
|
|
|
|
return currentTip;
|
|
}
|
|
|
|
@Override
|
|
public List<String> getWailaBody(
|
|
ItemStack itemStack,
|
|
List<String> currentTip,
|
|
IWailaDataAccessor accessor,
|
|
IWailaConfigHandler config
|
|
) {
|
|
return currentTip;
|
|
}
|
|
|
|
@Override
|
|
public List<String> getWailaTail(
|
|
ItemStack itemStack,
|
|
List<String> currentTip,
|
|
IWailaDataAccessor accessor,
|
|
IWailaConfigHandler config
|
|
) {
|
|
return currentTip;
|
|
}
|
|
|
|
@Override
|
|
public NBTTagCompound getNBTData(
|
|
EntityPlayerMP player,
|
|
TileEntity te,
|
|
NBTTagCompound tag,
|
|
World world,
|
|
int x,
|
|
int y,
|
|
int z
|
|
) {
|
|
return null;
|
|
}
|
|
|
|
public static void callbackRegister(IWailaRegistrar registrar) {
|
|
registrar.registerHeadProvider(new WailaDataProvider(), TileEntityAludel.class);
|
|
registrar
|
|
.registerHeadProvider(new WailaDataProvider(), TileEntityGlassBell.class);
|
|
registrar.registerHeadProvider(
|
|
new WailaDataProvider(), TileEntityAlchemicalChestSmall.class
|
|
);
|
|
registrar.registerHeadProvider(
|
|
new WailaDataProvider(), TileEntityAlchemicalChestMedium.class
|
|
);
|
|
registrar.registerHeadProvider(
|
|
new WailaDataProvider(), TileEntityAlchemicalChestLarge.class
|
|
);
|
|
registrar
|
|
.registerHeadProvider(new WailaDataProvider(), TileEntityAlchemyArray.class);
|
|
registrar
|
|
.registerHeadProvider(new WailaDataProvider(), TileEntityDummyArray.class);
|
|
registrar.registerHeadProvider(
|
|
new WailaDataProvider(), BlockAshInfusedStoneSlab.class
|
|
);
|
|
}
|
|
}
|