using System;
using Domain;
using Presenter;
using UnityEngine;
using View.UI;

namespace View {
	public class Dependencies : MonoBehaviour {
		public ExpressionClick ExpressionClick { private set; get; }
		public Model Model { private set; get; }
		public CustomInput CustomInput { private set; get; }

		private void Awake() {
			Model = new Model(20);

			IExpressionInput input = FindObjectOfType<ExpressionInput>();
			IExpressionInput visibility = FindObjectOfType<UIVisibility>();
			IExpressionInput inputCollections = new ExpressionInputCollection(new[] { input, visibility });

			IRoseSpawner spawner = FindObjectOfType<RoseSpawner>();

			ExpressionClick = new ExpressionClick(Model, inputCollections, spawner);

			CustomInput = new CustomInput();
		}
	}
}