using UnityEngine; public class ProgramPresenter { private ProgramModel model; private ProgramView view; public ProgramPresenter(ProgramModel model, ProgramView view) { this.model = model; this.view = view; this.view.OnCreateProgramClicked += HandleCreateProgram; this.view.OnLoadProgramListRequested += HandleLoadProgramList; this.view.OnProgramSelectedToLoad += HandleProgramSelected; this.view.OnSaveClicked += HandleSaveProgram; this.view.OnAddPointClicked += HandleAddPoint; } private void HandleCreateProgram(string programId) { if (model.CreateNewProgram(programId)) { view.DisplayProgram(model.CurrentProgram); } else { view.ShowMessage($"Error: Program ID '{programId}.job' already exists or is invalid."); } } private void HandleLoadProgramList() { var programIds = model.GetAllProgramIds(); view.ShowProgramList(programIds); } private void HandleProgramSelected(string programId) { if (model.LoadProgram(programId)) { view.DisplayProgram(model.CurrentProgram); } view.HideProgramList(); } private void HandleSaveProgram() { model.SaveCurrentProgram(); // UI °»½ÅÀÌ ÇÊ¿äÇÏ´Ù¸é ¿©±â¿¡ Ãß°¡ (¿¹: ÀúÀå ¿Ï·á ¸Þ½ÃÁö) } private void HandleAddPoint() { // ½ÇÁ¦·Î´Â UI»óÀÇ ÁÂÇ¥³ª ·Îº¿ ¿£µåÆ÷ÀÎÆ® ÁÂÇ¥¸¦ ¹Þ¾Æ¿Í¾ß ÇÔ // ¿©±â¼­´Â ¿¹½Ã·Î ·£´ý ÁÂÇ¥¸¦ »ç¿ë Vector3 newPoint = new Vector3(Random.Range(-1f, 1f), Random.Range(0f, 1f), Random.Range(-1f, 1f)); model.AddPointToCurrentProgram(newPoint); view.DisplayProgram(model.CurrentProgram); } }