package net.tropicraft.util;
import net.minecraft.block.material.Material;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.Item;
import net.minecraft.network.Packet;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
import net.tropicraft.info.TCInfo;
import cpw.mods.fml.common.FMLCommonHandler;
public class TropicraftUtils {
/**
* NOTE: REPLACED WITH world.markBlockForUpdate
* Helper method for syncing a TileEntity's data
* @param packet
* @param dimensionID
*/
public static void sync(Packet packet, int dimensionID) {
FMLCommonHandler.instance().getMinecraftServerInstance().getConfigurationManager().sendPacketToAllPlayersInDimension(packet, dimensionID);
}
public static ResourceLocation getTexture(String path) {
ResourceLocation derp = new ResourceLocation(TCInfo.MODID, path);
return derp;
}
public static ResourceLocation getTextureArmor(String path) {
return getTexture(String.format("textures/models/armor/%s.png", path));
}
public static ResourceLocation getTextureBlock(String path) {
return getTexture(String.format("textures/blocks/%s.png", path));
}
public static ResourceLocation getTextureEntity(String path) {
return getTexture(String.format("textures/entity/%s.png", path));
}
public static ResourceLocation getTextureGui(String path) {
return getTexture(String.format("textures/gui/%s.png", path));
}
public static ResourceLocation getTextureTE(String path) {
return getTexture(String.format("textures/blocks/te/%s.png", path));
}
public static ResourceLocation bindTextureArmor(String path) {
return bindTexture(getTextureArmor(path));
}
public static ResourceLocation bindTextureEntity(String path) {
return bindTexture(getTextureEntity(path));
}
public static ResourceLocation bindTextureGui(String path) {
return bindTexture(getTextureGui(path));
}
public static ResourceLocation bindTextureTE(String path) {
return bindTexture(getTextureTE(path));
}
public static ResourceLocation bindTextureBlock(String path) {
return bindTexture(getTextureBlock(path));
}
public static ResourceLocation bindTexture(ResourceLocation resource) {
Minecraft.getMinecraft().getTextureManager().bindTexture(resource);
return resource;
}
public static int getTopWaterBlockY(World world, int xCoord, int zCoord) {
int y = world.getHeightValue(xCoord, zCoord);
while (world.getBlock(xCoord, y, zCoord).getMaterial() != Material.water) {
y--;
}
return y;
}
public static String translateGUI(String word) {
return StatCollector.translateToLocal(String.format("gui.tropicraft:%s", word));
}
public static int getSlotOfItemWithDamage(InventoryPlayer inventory, Item item, int damage) {
for (int j = 0; j < inventory.mainInventory.length; ++j) {
if (inventory.mainInventory[j] != null && inventory.mainInventory[j].getItem() == item && inventory.mainInventory[j].getItemDamage() == damage) {
return j;
}
}
return -1;
}
public static int getSlotOfItem(InventoryPlayer inventory, Item item) {
for (int j = 0; j < inventory.mainInventory.length; ++j) {
if (inventory.mainInventory[j] != null && inventory.mainInventory[j].getItem() == item) {
return j;
}
}
return -1;
}
/**
* Translates an unlocalized String to be localized, returns it. Implementation can be changed accordingly.
* @param toBeTranslated
* @return
*/
public static String translate(String toBeTranslated) {
return StatCollector.translateToLocal(toBeTranslated);
}
}