drone.setPosition(x + 0.5 + dir.offsetX, y + 0.5 + dir.offsetY, z + 0.5 + dir.offsetZ);
world.spawnEntityInWorld(drone);
NBTTagCompound stackTag = iStack.getTagCompound();
NBTTagCompound entityTag = new NBTTagCompound();
drone.writeEntityToNBT(entityTag);
if(stackTag != null) {
entityTag.setTag("widgets", stackTag.getTagList("widgets", 10).copy());
entityTag.setFloat("currentAir", stackTag.getFloat("currentAir"));
NBTTagCompound invTag = stackTag.getCompoundTag("Inventory");
if(invTag != null) entityTag.setTag("Inventory", invTag.copy());