pixelgon/Assets/Scripts/Tools/ToolEraser.cs
2020-06-05 11:54:36 -07:00

83 lines
1.8 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[Serializable]
public class ToolEraser
{
[HideInInspector]
public Vector3 cursorPos;
[HideInInspector]
public List<int> selected = new List<int>();
public void Reset()
{
// for resetting the tool (when swapping around, initializing, etc)
selected.Clear();
}
public void Frame(Input input, Pixelgon pixelgon)
{
cursorPos = input.twistCursor;
if (input.mainCon.trigger.held)
{
selected.Clear();
int length = 0;
for (int i = 0; i < pixelgon.vectors.Count; i++)
{
if (pixelgon.vectors[i] == Vector3.zero)
{
length = 0;
}
else
{
if (length > 0)
{
cursorPos = StaticMethods.EdgeSnap(
pixelgon.vectors[i - 1],
pixelgon.vectors[i],
input.twistCursor
);
if (cursorPos != input.twistCursor)
{
if (cursorPos == pixelgon.vectors[i - 1])
{
selected.Add(i - 1);
break;
}
if (cursorPos == pixelgon.vectors[i])
{
selected.Add(i);
break;
}
selected.Add(i - 1);
selected.Add(i);
break;
}
}
length++;
}
}
}
if (selected.Count > 0 && input.mainCon.one.down)
{
if (selected.Count == 1)
{
pixelgon.vectors.RemoveAt(selected[0]);
}
else
{
pixelgon.vectors.Insert(selected[1], Vector3.zero);
}
pixelgon.vectors = StaticMethods.DeleteLoose(pixelgon.vectors);
Reset();
}
}
}