public DrawCommand(Texture2D texture, Vector2 position, Rectangle? sourceRect, Color color, float rotation, Vector2 origin, float scale, SpriteEffects effects = SpriteEffects.None, float layerDepth = 0, int maxlife = -1, ShaderPack? shaderPack = null)
 {
     this.type = DrawType.direct;
     this.texture2d = texture;
     this.position = position;
     this.color = color;
     this.permColor = color;
     this.scale = scale;
     this.rotation = rotation;
     this.sourceRect = sourceRect;
     this.origin = origin;
     this.effects = effects;
     this.layerDepth = layerDepth;
     this.maxlife = maxlife;
     this.life = maxlife;
     this.shaderPack = shaderPack ?? ShaderPack.Default;
 }
 public DrawCommand(textures texture, Vector2 position, Rectangle? sourceRect, Color color, float rotation, Vector2 origin, Vector2 scalevect, SpriteEffects effects = SpriteEffects.None, float layerDepth = 0, int maxlife = -1, ShaderPack? shaderPack = null)
 {
     this.type = DrawType.vectScaled;
     this.texture = texture;
     this.position = position;
     this.color = color;
     this.permColor = color;
     this.scalevect = scalevect;
     this.rotation = rotation;
     this.sourceRect = sourceRect;
     this.origin = origin;
     this.effects = effects;
     this.layerDepth = layerDepth;
     this.maxlife = maxlife;
     this.life = maxlife;
     this.shaderPack = shaderPack ?? new ShaderPack(color);
 }
 public void Draw(textures texture, Vector2 position, Rectangle? sourceRect, Color color, float rotation, Vector2 origin, Vector2 scalevect, Layers Layer, ShaderPack? shaderPack = null)
 {
     nextFrame.Enqueue(new DrawCommand(texture, ((position - virtualTopLeft) * zoom) + CameraOffsetVect, sourceRect, color, rotation, origin, scalevect * zoom, SpriteEffects.None, (((float)Layer) / 10), -1, shaderPack));
 }
 public void Draw(textures texture, Vector2 position, Color color, Vector2 scalevect, float rotation, Layers Layer, ShaderPack? shaderPack = null)
 {
     nextFrame.Enqueue(new DrawCommand(texture, ((position - virtualTopLeft) * zoom) + CameraOffsetVect, null, color, rotation, Assets.textureCenters[texture], scalevect * zoom, SpriteEffects.None, (((float)Layer) / 10), -1, shaderPack));
 }
 public void Draw(Texture2D texture, Vector2 position, Color color, float scale, float rotation, Layers Layer, ShaderPack? shaderPack = null)
 {
     nextFrame.Enqueue(new DrawCommand(texture, ((position - virtualTopLeft) * zoom) + CameraOffsetVect, null, color, rotation, new Vector2(texture.Width / 2, texture.Height / 2), scale * zoom, SpriteEffects.None, (((float)Layer) / 10), -1, shaderPack));
 }
 public void Draw(textures texture, Vector2 position, Color color, float scale, Layers Layer, ShaderPack? shaderPack = null, bool center = true)
 {
     nextFrame.Enqueue(new DrawCommand(texture, ((position - virtualTopLeft) * zoom) + CameraOffsetVect, null, color, 0, center?Assets.textureCenters[texture]:Vector2.Zero, scale * zoom, SpriteEffects.None, (((float)Layer) / 10), -1, shaderPack));
 }
 public DrawCommand(string text, Vector2 position, Color color, float scale = 0.5f, int maxlife = -1, ShaderPack? shaderPack = null, float layerDepth = 0)
 {
     this.type = DrawType.drawString;
     this.position = position;
     this.color = color;
     this.permColor = color;
     this.layerDepth = layerDepth;
     this.scale = scale;
     this.text = text;
     this.maxlife = maxlife;
     this.life = maxlife;
     this.shaderPack = shaderPack ?? ShaderPack.Default;
 }