package openblocks.common.item;
import com.google.common.collect.MapMaker;
import java.util.Map;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import openblocks.OpenBlocks;
import openblocks.common.entity.EntityHangGlider;
import openmods.infobook.BookDocumentation;
@BookDocumentation(hasVideo = true)
public class ItemHangGlider extends Item {
private static Map<EntityPlayer, EntityHangGlider> spawnedGlidersMap = new MapMaker().weakKeys().weakValues().makeMap();
public ItemHangGlider() {
setCreativeTab(OpenBlocks.tabOpenBlocks);
}
@Override
public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer player) {
if (!world.isRemote && player != null) {
EntityHangGlider glider = spawnedGlidersMap.get(player);
if (glider != null) despawnGlider(player, glider);
else spawnGlider(player);
}
return itemStack;
}
private static void despawnGlider(EntityPlayer player, EntityHangGlider glider) {
glider.setDead();
spawnedGlidersMap.remove(player);
}
private static void spawnGlider(EntityPlayer player) {
EntityHangGlider glider = new EntityHangGlider(player.worldObj, player);
glider.setPositionAndRotation(player.posX, player.posY, player.posZ, player.rotationPitch, player.rotationYaw);
player.worldObj.spawnEntityInWorld(glider);
spawnedGlidersMap.put(player, glider);
}
}