package crazypants.enderio.machine.killera;
import net.minecraft.block.Block;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.player.PlayerEvent;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.relauncher.Side;
import crazypants.enderio.GuiHandler;
import crazypants.enderio.ModObject;
import crazypants.enderio.machine.AbstractMachineBlock;
import crazypants.enderio.network.PacketHandler;
import crazypants.enderio.xp.PacketExperianceContainer;
import crazypants.enderio.xp.PacketGivePlayerXP;
/**
* Name proudly created by Xaw4
*/
public class BlockKillerJoe extends AbstractMachineBlock<TileKillerJoe> {
static final String USERNAME = "KillerJoe";
public static BlockKillerJoe create() {
PacketHandler.INSTANCE.registerMessage(PacketSwing.class, PacketSwing.class, PacketHandler.nextID(), Side.CLIENT);
PacketGivePlayerXP.register();
PacketExperianceContainer.register();
BlockKillerJoe res = new BlockKillerJoe();
MinecraftForge.EVENT_BUS.register(res);
res.init();
return res;
}
protected BlockKillerJoe() {
super(ModObject.blockKillerJoe, TileKillerJoe.class);
setStepSound(Block.soundTypeGlass);
}
@Override
public float getExplosionResistance(Entity par1Entity, World world, int x, int y, int z, double explosionX, double explosionY, double explosionZ) {
return 2000;
}
@SubscribeEvent
public void getKillDisplayName(PlayerEvent.NameFormat nameEvt) {
if(nameEvt.username != null && nameEvt.username.startsWith(USERNAME)) {
nameEvt.displayname = getLocalizedName();
}
}
@Override
public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
return new ContainerKillerJoe(player.inventory, (TileKillerJoe) world.getTileEntity(x, y, z));
}
@Override
public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
return new GuiKillerJoe(player.inventory, (TileKillerJoe) world.getTileEntity(x, y, z));
}
@Override
protected int getGuiId() {
return GuiHandler.GUI_ID_KILLER_JOE;
}
@Override
protected String getMachineFrontIconKey(boolean active) {
return "enderio:blankMachinePanel";
}
@Override
public int getRenderType() {
return -1;
}
@Override
public boolean renderAsNormalBlock() {
return false;
}
@Override
public boolean isOpaqueCube() {
return false;
}
protected short getFacingForHeading(int heading) {
switch (heading) {
case 0:
return 3;
case 1:
return 4;
case 2:
return 2;
case 3:
default:
return 5;
}
}
}