Продолжаем.
(если пропустили - первая и вторая части) В этой части допишем логику для манипуляций внутри инвентаря. Вынос иконок из инвентаря, а так же сохранение и запись состояния инвентаря. Для начала вынесем создание нового временного спрайта в отдельную функцию. Это чуть сократит общий код, и освободит место для нового. И в основном коде пропишем вызов этой функции там, где мы обычно делали сам спрайт ранее. Теперь добавим развилку. Если кликаем на игровом поле - логика одна. Если в инвентаре то будет чуть иная.
Пока пропишем только создание спрайта. Если сейчас запустить код, то перетаскивание будет работать и на незанятых ячейках. Посему дописываем условие на проверку текущей текстуры у ячейки. Теперь с этим порядок. Если иконка есть , то мы можем создавать и двигать спрайт. При отпускании мышки валятся ошибки. Очевидно что тут нужно как то понимать , мы кладем в ячейку иконку с поля, или же перекладываем инвентарь.
В качестве решения мы можем явно указать иконке, например через