equivalent-exchange-3/src/main/java/com/pahimar/ee3/waila/WailaDataProvider.java
2023-01-03 17:47:36 +01:00

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
);
}
}