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

◆ Perform()

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

Definition at line 101 of file Shapes.cs.

102 {
103 double num = _radius;
104 int num2 = (_radius + 1) * (_radius + 1);
105 for (int i = origin.Y - (int)(num * _yScale); i <= origin.Y; i++)
106 {
107 double num3 = (double)(i - origin.Y) / _yScale;
108 int num4 = (int)Math.Min((double)_radius * _xScale, _xScale * Math.Sqrt((double)num2 - num3 * num3));
109 for (int j = origin.X - num4; j <= origin.X + num4; j++)
110 {
111 if (!UnitApply(action, origin, j, i) && _quitOnFail)
112 {
113 return false;
114 }
115 }
116 }
117 for (int k = origin.Y + 1; k <= origin.Y + (int)(num * _yScale * 0.5) - 1; k++)
118 {
119 double num5 = (double)(k - origin.Y) * (2.0 / _yScale);
120 int num6 = (int)Math.Min((double)_radius * _xScale, _xScale * Math.Sqrt((double)num2 - num5 * num5));
121 for (int l = origin.X - num6; l <= origin.X + num6; l++)
122 {
123 if (!UnitApply(action, origin, l, k) && _quitOnFail)
124 {
125 return false;
126 }
127 }
128 }
129 return true;
130 }
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.GenShape._quitOnFail, Terraria.WorldBuilding.Shapes.Slime._radius, Terraria.WorldBuilding.Shapes.Slime._xScale, Terraria.WorldBuilding.Shapes.Slime._yScale, System.action, System.Math.Min(), System.Math.Sqrt(), Terraria.WorldBuilding.GenShape.UnitApply(), Microsoft.Xna.Framework.Point.X, and Microsoft.Xna.Framework.Point.Y.