Files
HDRobotics/Assets/Scripts/Presenter/ProgramPresenter.cs

62 lines
1.7 KiB
C#
Raw Normal View History

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 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʿ<EFBFBD><CABF>ϴٸ<CFB4> <20><><EFBFBD><20>߰<EFBFBD> (<28><>: <20><><EFBFBD><EFBFBD> <20>Ϸ<EFBFBD> <20>޽<EFBFBD><DEBD><EFBFBD>)
}
private void HandleAddPoint()
{
// <20><><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD> UI<55><49><EFBFBD><EFBFBD> <20><>ǥ<EFBFBD><C7A5> <20>κ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><>ǥ<EFBFBD><C7A5> <20>޾ƿ;<C6BF> <20><>
// <20><><EFBFBD><EFBFBD><E2BCAD> <20><><EFBFBD>÷<EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ǥ<EFBFBD><C7A5> <20><><EFBFBD><EFBFBD>
Vector3 newPoint = new Vector3(Random.Range(-1f, 1f), Random.Range(0f, 1f), Random.Range(-1f, 1f));
model.AddPointToCurrentProgram(newPoint);
view.DisplayProgram(model.CurrentProgram);
}
}