public void Animate() {
        if (carriedBy != null) {
            int maxPull = 4 * 28;
            Dimension d = GetXY();
            int tempX = d.width;
            int tempY = d.height;
            if (tempY != startY) {
                carriedBy.moveDown(startY - tempY);
            }
            if (tempX < startX) {
                carriedBy.moveRight(startX - tempX);
            }
            if (tempX > (startX + maxPull)) {
                carriedBy.moveLeft(tempX - (startX + maxPull));
            }

            d = GetXY();
            tempX = d.width;
            int blocks = (tempX - startX) / 28;
            int bigY = startY / 32;
            switch (blocks) {
                case 0:
                    room.SetMaterial(6, bigY, 2);
                    room.SetMaterial(7, bigY, 2);
                    room.SetMaterial(8, bigY, 2);
                    room.SetMaterial(9, bigY, 2);
                    room.SetMaterial(10, bigY, 2);
                    room.SetMaterial(11, bigY, 0);
                    room.SetMaterial(12, bigY, 0);
                    room.SetMaterial(13, bigY, 0);
                    room.SetMaterial(14, bigY, 0);
                    break;
                case 1:
                    room.SetMaterial(6, bigY, 0);
                    room.SetMaterial(7, bigY, 2);
                    room.SetMaterial(8, bigY, 2);
                    room.SetMaterial(9, bigY, 2);
                    room.SetMaterial(10, bigY, 2);
                    room.SetMaterial(11, bigY, 2);
                    room.SetMaterial(12, bigY, 0);
                    room.SetMaterial(13, bigY, 0);
                    room.SetMaterial(14, bigY, 0);
                    break;
                case 2:
                    room.SetMaterial(6, bigY, 0);
                    room.SetMaterial(7, bigY, 0);
                    room.SetMaterial(8, bigY, 2);
                    room.SetMaterial(9, bigY, 2);
                    room.SetMaterial(10, bigY, 2);
                    room.SetMaterial(11, bigY, 2);
                    room.SetMaterial(12, bigY, 2);
                    room.SetMaterial(13, bigY, 0);
                    room.SetMaterial(14, bigY, 0);
                    break;
                case 3:
                    room.SetMaterial(6, bigY, 0);
                    room.SetMaterial(7, bigY, 0);
                    room.SetMaterial(8, bigY, 0);
                    room.SetMaterial(9, bigY, 2);
                    room.SetMaterial(10, bigY, 2);
                    room.SetMaterial(11, bigY, 2);
                    room.SetMaterial(12, bigY, 2);
                    room.SetMaterial(13, bigY, 2);
                    room.SetMaterial(14, bigY, 0);
                    break;
                case 4:
                    room.SetMaterial(6, bigY, 0);
                    room.SetMaterial(7, bigY, 0);
                    room.SetMaterial(8, bigY, 0);
                    room.SetMaterial(9, bigY, 0);
                    room.SetMaterial(10, bigY, 2);
                    room.SetMaterial(11, bigY, 2);
                    room.SetMaterial(12, bigY, 2);
                    room.SetMaterial(13, bigY, 2);
                    room.SetMaterial(14, bigY, 2);
                    break;
            }

        }
    }