Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Perform()

override bool Terraria.WorldBuilding.Shapes.Circle.Perform ( Point origin,
GenAction action )
inline

Definition at line 33 of file Shapes.cs.

34 {
35 int num = (_horizontalRadius + 1) * (_horizontalRadius + 1);
36 for (int i = origin.Y - _verticalRadius; i <= origin.Y + _verticalRadius; i++)
37 {
38 double num2 = (double)_horizontalRadius / (double)_verticalRadius * (double)(i - origin.Y);
39 int num3 = Math.Min(_horizontalRadius, (int)Math.Sqrt((double)num - num2 * num2));
40 for (int j = origin.X - num3; j <= origin.X + num3; j++)
41 {
42 if (!UnitApply(action, origin, j, i) && _quitOnFail)
43 {
44 return false;
45 }
46 }
47 }
48 return true;
49 }
static byte Min(byte val1, byte val2)
Definition Math.cs:912
static double Sqrt(double d)
bool UnitApply(GenAction action, Point origin, int x, int y, params object[] args)
Definition GenShape.cs:13

References Terraria.WorldBuilding.Shapes.Circle._horizontalRadius, Terraria.WorldBuilding.GenShape._quitOnFail, Terraria.WorldBuilding.Shapes.Circle._verticalRadius, System.action, System.Math.Min(), System.Math.Sqrt(), Terraria.WorldBuilding.GenShape.UnitApply(), Microsoft.Xna.Framework.Point.X, and Microsoft.Xna.Framework.Point.Y.