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

◆ Perform()

override bool Terraria.WorldBuilding.ModShapes.OuterOutline.Perform ( Point origin,
GenAction action )
inline

Definition at line 47 of file ModShapes.cs.

48 {
49 int num = (_useDiagonals ? 16 : 8);
50 foreach (Point16 datum in _data.GetData())
51 {
52 if (_useInterior && !UnitApply(action, origin, datum.X + origin.X, datum.Y + origin.Y) && _quitOnFail)
53 {
54 return false;
55 }
56 for (int i = 0; i < num; i += 2)
57 {
58 if (!_data.Contains(datum.X + POINT_OFFSETS[i], datum.Y + POINT_OFFSETS[i + 1]) && !UnitApply(action, origin, origin.X + datum.X + POINT_OFFSETS[i], origin.Y + datum.Y + POINT_OFFSETS[i + 1]) && _quitOnFail)
59 {
60 return false;
61 }
62 }
63 }
64 return true;
65 }
bool UnitApply(GenAction action, Point origin, int x, int y, params object[] args)
Definition GenShape.cs:13
HashSet< Point16 > GetData()
Definition ShapeData.cs:35
bool Contains(int x, int y)
Definition ShapeData.cs:45

References Terraria.WorldBuilding.GenModShape._data, Terraria.WorldBuilding.GenShape._quitOnFail, Terraria.WorldBuilding.ModShapes.OuterOutline._useDiagonals, Terraria.WorldBuilding.ModShapes.OuterOutline._useInterior, Terraria.WorldBuilding.ShapeData.Contains(), Terraria.WorldBuilding.ShapeData.GetData(), Terraria.WorldBuilding.ModShapes.OuterOutline.POINT_OFFSETS, Terraria.WorldBuilding.GenShape.UnitApply(), Terraria.DataStructures.Point16.X, and Terraria.DataStructures.Point16.Y.