110 lines
3.0 KiB
C#
110 lines
3.0 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class Controls : MonoBehaviour
|
|
{
|
|
public Light control;
|
|
|
|
public GameObject column1;
|
|
public GameObject column2;
|
|
public GameObject column3;
|
|
|
|
public GameObject selectedDisc;
|
|
|
|
public List<GameObject> discs;
|
|
|
|
// Start is called before the first frame update
|
|
void Start()
|
|
{
|
|
this.ResetGame();
|
|
}
|
|
|
|
void ResetGame()
|
|
{
|
|
List<GameObject> reversedDiscs = this.discs;
|
|
reversedDiscs.Reverse();
|
|
int i = 1;
|
|
foreach (GameObject disc in reversedDiscs)
|
|
{
|
|
this.column1.GetComponent<Cylinder>().discs.Add(disc);
|
|
i++;
|
|
}
|
|
this.column1.GetComponent<Cylinder>().selected = true;
|
|
this.column2.GetComponent<Cylinder>().selected = false;
|
|
this.column3.GetComponent<Cylinder>().selected = false;
|
|
|
|
this.selectedDisc = null;
|
|
}
|
|
|
|
GameObject GetSelectedColumn()
|
|
{
|
|
if (this.column1.GetComponent<Cylinder>().selected)
|
|
{
|
|
return this.column1;
|
|
}
|
|
if (this.column2.GetComponent<Cylinder>().selected)
|
|
{
|
|
return this.column2;
|
|
}
|
|
return this.column3;
|
|
}
|
|
|
|
void RenderDisc()
|
|
{
|
|
if (this.selectedDisc)
|
|
{
|
|
this.selectedDisc.transform.position = this.control.transform.position;
|
|
}
|
|
}
|
|
|
|
// Update is called once per frame
|
|
void Update()
|
|
{
|
|
this.RenderDisc();
|
|
GameObject selectedColumn = this.GetSelectedColumn();
|
|
if (Input.GetKeyUp("a") && selectedColumn != this.column1)
|
|
{
|
|
selectedColumn.GetComponent<Cylinder>().selected = false;
|
|
if (selectedColumn == this.column3)
|
|
{
|
|
this.column2.GetComponent<Cylinder>().selected = true;
|
|
}
|
|
else
|
|
{
|
|
this.column1.GetComponent<Cylinder>().selected = true;
|
|
}
|
|
}
|
|
|
|
if (Input.GetKeyUp("d") && selectedColumn != this.column3)
|
|
{
|
|
selectedColumn.GetComponent<Cylinder>().selected = false;
|
|
if (selectedColumn == this.column1)
|
|
{
|
|
this.column2.GetComponent<Cylinder>().selected = true;
|
|
} else
|
|
{
|
|
this.column3.GetComponent<Cylinder>().selected = true;
|
|
}
|
|
}
|
|
|
|
if (Input.GetKeyUp("w") && !this.selectedDisc)
|
|
{
|
|
this.selectedDisc = selectedColumn.GetComponent<Cylinder>().GetTopDisc();
|
|
}
|
|
|
|
if (Input.GetKeyUp("s") && this.selectedDisc != null)
|
|
{
|
|
if (selectedColumn.GetComponent<Cylinder>().CanPutDisc(this.selectedDisc)) {
|
|
selectedColumn.GetComponent<Cylinder>().discs.Add(this.selectedDisc);
|
|
this.selectedDisc = null;
|
|
}
|
|
}
|
|
|
|
if (Input.GetKeyUp("r"))
|
|
{
|
|
Application.LoadLevel(0);
|
|
}
|
|
}
|
|
}
|