2 using Microsoft.Xna.Framework;
3 using Microsoft.Xna.Framework.Graphics;
7 internal partial class EntitySpawnerComponent
9 public Vector2 DrawSize => Vector2.Zero;
11 public void Draw(SpriteBatch spriteBatch,
bool editing,
float itemDepth = -1, Color? overrideColor =
null)
13 if (!editing) {
return; }
15 switch (SpawnAreaShape)
17 case AreaShape.Rectangle:
19 RectangleF rect = GetAreaRectangle(SpawnAreaBounds, SpawnAreaOffset, draw:
true);
20 GUI.DrawRectangle(spriteBatch, rect.Location, rect.Size, GUIStyle.Red, isFilled:
false, 0f, 4f);
22 if (MaximumAmountRangePadding > 0f)
24 rect.Inflate(MaximumAmountRangePadding, MaximumAmountRangePadding);
25 GUI.DrawRectangle(spriteBatch, rect.Location, rect.Size, GUIStyle.Red, isFilled:
false, 0f, 2f);
29 case AreaShape.Circle:
31 center += SpawnAreaOffset;
33 spriteBatch.DrawCircle(center, SpawnAreaRadius, 32, GUIStyle.Red, thickness: 4f);
35 if (MaximumAmountRangePadding > 0f)
37 spriteBatch.DrawCircle(center, SpawnAreaRadius + MaximumAmountRangePadding, 32, GUIStyle.Red, thickness: 2f);
42 if (!OnlySpawnWhenCrewInRange) {
return; }
44 switch (CrewAreaShape)
46 case AreaShape.Rectangle:
48 RectangleF rect = GetAreaRectangle(CrewAreaBounds, CrewAreaOffset, draw:
true);
49 GUI.DrawRectangle(spriteBatch, rect.Location, rect.Size, GUIStyle.Green, isFilled:
false, 0f, 4f);
52 case AreaShape.Circle:
54 center += CrewAreaOffset;
56 spriteBatch.DrawCircle(center, CrewAreaRadius, 32, GUIStyle.Green);