// Outputters are never open tiles. public Outputter(Vector2 position, Directions direction, LaserColours colour) : base(position, false) { OutputDirection = direction; OutputColour = colour; TileSprite = new Sprite(Assets.Level.Images.Outputter); TileSprite.CenterOn(Center); TileSprite.Rotation = Math.Atan2(OutputDirection.Y, OutputDirection.X); TileSprite.Tint = OutputColour.Color * 3f; }
// Receivers are never open tiles. public Receiver(Vector2 position, Directions direction, LaserColours colour) : base(position, false) { InputDirection = direction; InputColour = colour; TileSprite = new Sprite(Assets.Level.Images.Receiver); TileSprite.CenterOn(Center); TileSprite.Rotation = Math.Atan2(InputDirection.Y, -InputDirection.X); TileSprite.Tint = InputColour.Color * 3f; }
public GUIButton(GUIButtonInfo info, Vector2 position, PositionType positionType = PositionType.Center) : base(null) { Info = info; Font = info.Font; ButtonSprite = new Sprite(info.Texture); var width = ButtonSprite.Width; var height = ButtonSprite.Height; var center = PositionConverter.ToCenter(position, width, height, positionType); ButtonSprite.CenterOn(center); Collider = new RectCollider( center - ButtonSprite.TextureCenter, ButtonSprite.Width, ButtonSprite.Height); TextPosition = center - Font.MeasureString(info.Text) / 2f + TextPositionOffset; TextColour = info.InitialTextColour.HasValue ? info.InitialTextColour.Value : DefaultTextColour; }