76 lines
1.1 KiB
C#
76 lines
1.1 KiB
C#
using UnityEngine;
|
|
|
|
public class BresenhamLineDrawer
|
|
{
|
|
private int baseForce = 18000000;
|
|
|
|
public void DrawLine(int x1, int x2, int y1, int y2, RaycastHit hit, float inputForce)
|
|
{
|
|
int num = x2 - x1;
|
|
int num2 = y2 - y1;
|
|
int num3;
|
|
int num4;
|
|
if (num >= 0)
|
|
{
|
|
num3 = 1;
|
|
num4 = 1;
|
|
}
|
|
else
|
|
{
|
|
num3 = -1;
|
|
num4 = -1;
|
|
}
|
|
int num5;
|
|
int num6;
|
|
if (num2 >= 0)
|
|
{
|
|
num5 = 1;
|
|
num6 = 1;
|
|
}
|
|
else
|
|
{
|
|
num5 = -1;
|
|
num6 = -1;
|
|
}
|
|
num = Mathf.Abs(num);
|
|
num2 = Mathf.Abs(num2);
|
|
int num7;
|
|
int num8;
|
|
int num9;
|
|
int num10;
|
|
if (num >= num2)
|
|
{
|
|
num3 = 0;
|
|
num6 = 0;
|
|
num7 = num;
|
|
num8 = num / 2;
|
|
num9 = num2;
|
|
num10 = num;
|
|
}
|
|
else
|
|
{
|
|
num4 = 0;
|
|
num5 = 0;
|
|
num7 = num2;
|
|
num8 = num2 / 2;
|
|
num9 = num;
|
|
num10 = num2;
|
|
}
|
|
int num11 = x1;
|
|
int num12 = y1;
|
|
for (int i = 0; i <= num10; i++)
|
|
{
|
|
hit.collider.gameObject.GetComponent<RealWaterInterface>().DisturbBufferAt(num11, num12, (int)((float)baseForce * inputForce), ambient: false);
|
|
num8 += num9;
|
|
if (num8 >= num7)
|
|
{
|
|
num8 -= num7;
|
|
num11 += num3;
|
|
num12 += num5;
|
|
}
|
|
num11 += num4;
|
|
num12 += num6;
|
|
}
|
|
}
|
|
}
|