Цей проект є масштабованою системою приготування їжі на Unity, архітектура якої побудована на принципах модульності та мінімізації зв'язності компонентів. Реалізація забезпечує високу гнучкість розробки завдяки впровадженню індустріальних стандартів архітектури та патернів проектування.
Ключові моменти реалізаціЇ:
Архітектура Dependency Injection (Zenject/Extenject): Повна відмова від пошуку посилань через Find або статичні поля на користь централізованої ін’єкції. Це рішення зробило проект модульним, усунуло жорсткі зв'язки між класами та дозволило легко керувати життєвим циклом об'єктів через Installers
Data-Driven модель: Використання ScriptableObjects як основних контейнерів даних. Логіка страв, вимоги до інгредієнтів та типи їжі є відокремленими від коду асетами, що дозволяє змінювати геймплей через Inspector.
Стейт-машина їжі: Система станів (IFoodState) керує життєвим циклом об'єкта. Стан інгредієнта (сире/готове) реалізовано через окремі класи станів, що змінюють характеристики FoodItem під час виконання.
Фабрична система: Використання Zenject PlaceholderFactory для динамічного спавну ігрових об'єктів (FoodItemWorld). Це дозволяє автоматично інжектити залежності в об'єкти, що з'являються під час ігрового процесу.
Система взаємодії: Абстрагування дій гравця через інтерфейс IInteractable, що дозволяє PlayerInteraction працювати з будь-яким обладнанням (Appliances) без прямої прив'язки до конкретних класів монобевірів.
