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

◆ Draw()

override void Terraria.GameContent.Skies.MartianSky.Draw ( SpriteBatch spriteBatch,
float minDepth,
float maxDepth )
inline

Definition at line 258 of file MartianSky.cs.

259 {
260 if (Main.screenPosition.Y > 10000f)
261 {
262 return;
263 }
264 int num = -1;
265 int num2 = 0;
266 for (int i = 0; i < _ufos.Length; i++)
267 {
268 float depth = _ufos[i].Depth;
269 if (num == -1 && depth < maxDepth)
270 {
271 num = i;
272 }
273 if (depth <= minDepth)
274 {
275 break;
276 }
277 num2 = i;
278 }
279 if (num == -1)
280 {
281 return;
282 }
283 Color color = new Color(Main.ColorOfTheSkies.ToVector4() * 0.9f + new Vector4(0.1f));
284 Vector2 vector = Main.screenPosition + new Vector2(Main.screenWidth >> 1, Main.screenHeight >> 1);
285 Rectangle rectangle = new Rectangle(-1000, -1000, 4000, 4000);
286 for (int j = num; j < num2; j++)
287 {
288 Vector2 vector2 = new Vector2(1f / _ufos[j].Depth, 0.9f / _ufos[j].Depth);
289 Vector2 position = _ufos[j].Position;
290 position = (position - vector) * vector2 + vector - Main.screenPosition;
291 if (_ufos[j].IsActive && rectangle.Contains((int)position.X, (int)position.Y))
292 {
293 spriteBatch.Draw(_ufos[j].Texture, position, _ufos[j].GetSourceRectangle(), color * _ufos[j].Opacity, _ufos[j].Rotation, Vector2.Zero, vector2.X * 5f * _ufos[j].Scale, SpriteEffects.None, 0f);
294 if (_ufos[j].GlowTexture != null)
295 {
296 spriteBatch.Draw(_ufos[j].GlowTexture, position, _ufos[j].GetSourceRectangle(), Color.White * _ufos[j].Opacity, _ufos[j].Rotation, Vector2.Zero, vector2.X * 5f * _ufos[j].Scale, SpriteEffects.None, 0f);
297 }
298 }
299 }
300 }
void Draw(Texture2D texture, Vector2 position, Color color)
bool Contains(int x, int y)
Definition Rectangle.cs:92

References Terraria.GameContent.Skies.MartianSky._ufos, Microsoft.Xna.Framework.Graphics.Color, Terraria.Main.ColorOfTheSkies, Microsoft.Xna.Framework.Rectangle.Contains(), Microsoft.Xna.Framework.Graphics.Depth, Terraria.GameContent.Skies.MartianSky.Ufo.Depth, Microsoft.Xna.Framework.Graphics.SpriteBatch.Draw(), Terraria.GameContent.Skies.MartianSky.IsActive(), Terraria.GameContent.Skies.MartianSky.Ufo.Opacity, Terraria.Graphics.Effects.GameEffect.Opacity, Terraria.GameContent.Skies.MartianSky.Ufo.Position, Terraria.GameContent.Skies.MartianSky.Ufo.Rotation, Terraria.GameContent.Skies.MartianSky.Ufo.Scale, Terraria.Main.screenHeight, Terraria.Main.screenPosition, Terraria.Main.screenWidth, Microsoft.Xna.Framework.Graphics.Vector2, Microsoft.Xna.Framework.Color.White, Microsoft.Xna.Framework.Vector2.X, Microsoft.Xna.Framework.Vector2.Y, and Microsoft.Xna.Framework.Vector2.Zero.