package matteroverdrive.util;
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import matteroverdrive.MatterOverdrive;
import matteroverdrive.machines.MOTileEntityMachine;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.ChatStyle;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
/**
* Created by Simeon on 1/3/2016.
*/
public class MachineHelper
{
public static boolean canOpenMachine(World world, int x, int y, int z, EntityPlayer player,boolean hasGui,String errorMessage)
{
if (world.isRemote)
{
return true;
} else if (hasGui)
{
TileEntity tileEntity = world.getTileEntity(x,y,z);
if (tileEntity instanceof MOTileEntityMachine)
{
if (((MOTileEntityMachine) tileEntity).isUseableByPlayer(player)) {
FMLNetworkHandler.openGui(player, MatterOverdrive.instance, -1, world, x, y, z);
return true;
} else
{
ChatComponentText message = new ChatComponentText(EnumChatFormatting.GOLD + "[Matter Overdrive] " + EnumChatFormatting.RED + MOStringHelper.translateToLocal(errorMessage).replace("$0", ((MOTileEntityMachine) tileEntity).getInventoryName()));
message.setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED));
player.addChatMessage(message);
}
}
}
return false;
}
public static boolean canRemoveMachine(World world, EntityPlayer player, int x, int y, int z, boolean willHarvest)
{
TileEntity tileEntity = world.getTileEntity(x,y,z);
if (tileEntity != null && tileEntity instanceof MOTileEntityMachine)
{
if (!player.capabilities.isCreativeMode &&
((MOTileEntityMachine) tileEntity).hasOwner() && !((MOTileEntityMachine) tileEntity).getOwner().equals(player.getGameProfile().getId()))
{
ChatComponentText message = new ChatComponentText(EnumChatFormatting.GOLD + "[Matter Overdrive] " + EnumChatFormatting.RED + MOStringHelper.translateToLocal("alert.no_rights.break").replace("$0",((MOTileEntityMachine) tileEntity).getInventoryName()));
message.setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED));
player.addChatMessage(message);
return false;
}
}
return true;
}
}