Files
pathfinding-visualizer/Pathfinding Visualizer/Assets/Scripts/Main.cs
T
Simon O'Shea 3ac2b11494 imported and translated java code
starting to implement algorithms
2023-08-08 15:27:37 -04:00

111 lines
2.6 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Main : MonoBehaviour
{
[SerializeField] private CellMesh cellMesh;
private LogicGrid world;
char placementMode;
int placementValue;
// Start is called before the first frame update
void Start()
{
// Create world
int width = 100;
int height = 100;
float cellSize = 5f;
Vector3 origin = new Vector3(-110, -110);
world = new LogicGrid(width, height, cellSize, origin);
// Set default placement to Obstacle
placementValue = 1;
placementMode = 'o';
cellMesh.SetGrid(world);
Debug.Log("Loaded. Placing Mode: Obstacle");
}
public void StartAStar()
{
AStar astar = new AStar(world, 0);
}
// Update contains keyboard shortcut options
void Update()
{
// Change Placement Mode Keyboard Shortcuts:
////////////////////////////////
// Place Obstacle in grid
if (Input.GetKeyDown("o"))
{
Debug.Log("Placing Mode: Obstacle");
placementMode = 'o';
placementValue = 1;
}
// Place Sample in cell
if(Input.GetKeyDown("s"))
{
Debug.Log("Placing Mode: Sample");
placementMode = 's';
placementValue = 2;
}
// Place agent in cell
if (Input.GetKeyDown("a"))
{
Debug.Log("Placing Mode: Agent");
placementMode = 'a';
placementValue = 3;
}
// Reset Canvas
if (Input.GetKeyDown("r"))
{
ResetGrid();
}
//////////////////////////
// Update Cell:
// Place value in cell based on selected placementValue with left click
if (Input.GetMouseButton(0))
{
world.SetValue(CodeMonkey.Utils.UtilsClass.GetMouseWorldPosition(), placementValue);
}
// Clear cell with right click
if (Input.GetMouseButton(1))
{
world.SetValue(CodeMonkey.Utils.UtilsClass.GetMouseWorldPosition(), 0);
}
// Make functionality for when "start" button is pressed.
// should call some sort of function that will take in the world
// and perform the selected algorithm
}
public void SetModeObstacle()
{
placementValue = 1;
}
public void SetModeSample()
{
placementValue = 2;
}
public void SetModeAgent()
{
placementValue = 3;
}
public void ResetGrid()
{
world.reset();
}
}