62 lines
1.7 KiB
C#
62 lines
1.7 KiB
C#
|
|
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);
|
|||
|
|
}
|
|||
|
|
}
|