public void TouchedByItem(Item item) {
        Item newItem = null;
        if (item.editable) {
            if (item.getClass().toString().endsWith("Sensor")) {
                Item newTarget = (Item) target.clone();
                if (item.getClass().toString().endsWith("ContactSensor")) {
                    newItem = new ContactSensor(0, 0, null, newTarget);
                }
                else if (item.getClass().toString().endsWith("RoomSensor")) {
                    newItem = new RoomSensor(0, 0, null, newTarget);
                }
                else if (item.getClass().toString().endsWith("DirectionalSensor")) {
                    newItem = new DirectionalSensor(0, 0, null, newTarget);
                }
            }
            else {
                newItem = (Item) target.clone();
            }
            Item carrier = item.carriedBy;
            carrier.Drops();
            int itemX = item.x;
            int itemY = item.y;
            level.items.removeElement(item);
            newItem.x = itemX;
            newItem.y = itemY;
            newItem.room = carrier.room;
            level.items.addElement(newItem);
            carrier.PicksUp(newItem);
        }
    }