(20f37d9c7) Option to toggle structure drop shadows and edit the position of the shadow
This commit is contained in:
@@ -215,23 +215,24 @@ namespace Barotrauma
|
||||
{
|
||||
if (Prefab.BackgroundSprite != null)
|
||||
{
|
||||
bool drawDropShadow = Submarine != null && HasBody;
|
||||
Vector2 dropShadowOffset = Vector2.Zero;
|
||||
if (drawDropShadow)
|
||||
if (UseDropShadow)
|
||||
{
|
||||
dropShadowOffset = Submarine.HiddenSubPosition - Position;
|
||||
if (dropShadowOffset != Vector2.Zero)
|
||||
dropShadowOffset = DropShadowOffset;
|
||||
if (dropShadowOffset == Vector2.Zero)
|
||||
{
|
||||
if (IsHorizontal)
|
||||
if (Submarine == null)
|
||||
{
|
||||
dropShadowOffset = new Vector2(0.0f, Math.Sign(dropShadowOffset.Y) * 10.0f);
|
||||
dropShadowOffset = Vector2.UnitY * 10.0f;
|
||||
}
|
||||
else
|
||||
{
|
||||
dropShadowOffset = new Vector2(Math.Sign(dropShadowOffset.X) * 10.0f, 0.0f);
|
||||
dropShadowOffset = IsHorizontal ?
|
||||
new Vector2(0.0f, Math.Sign(Submarine.HiddenSubPosition.Y - Position.Y) * 10.0f) :
|
||||
new Vector2(Math.Sign(Submarine.HiddenSubPosition.X - Position.X) * 10.0f, 0.0f);
|
||||
}
|
||||
dropShadowOffset.Y = -dropShadowOffset.Y;
|
||||
}
|
||||
dropShadowOffset.Y = -dropShadowOffset.Y;
|
||||
}
|
||||
|
||||
if (DrawTiled)
|
||||
@@ -251,7 +252,7 @@ namespace Barotrauma
|
||||
textureScale: TextureScale * Scale,
|
||||
startOffset: backGroundOffset);
|
||||
|
||||
if (drawDropShadow)
|
||||
if (UseDropShadow)
|
||||
{
|
||||
Prefab.BackgroundSprite.DrawTiled(
|
||||
spriteBatch,
|
||||
@@ -276,7 +277,7 @@ namespace Barotrauma
|
||||
rotate: 0,
|
||||
spriteEffect: SpriteEffects);
|
||||
|
||||
if (drawDropShadow)
|
||||
if (UseDropShadow)
|
||||
{
|
||||
Prefab.BackgroundSprite.Draw(
|
||||
spriteBatch,
|
||||
|
||||
@@ -144,6 +144,20 @@ namespace Barotrauma
|
||||
get { return spriteColor; }
|
||||
set { spriteColor = value; }
|
||||
}
|
||||
|
||||
[Editable, Serialize(false, true)]
|
||||
public bool UseDropShadow
|
||||
{
|
||||
get;
|
||||
private set;
|
||||
}
|
||||
|
||||
[Serialize("0,0", true), Editable(ToolTip = "The position of the drop shadow relative to the structure. If set to zero, the shadow is positioned automatically so that it points towards the sub's center of mass.")]
|
||||
public Vector2 DropShadowOffset
|
||||
{
|
||||
get;
|
||||
private set;
|
||||
}
|
||||
|
||||
public override Rectangle Rect
|
||||
{
|
||||
@@ -1139,6 +1153,13 @@ namespace Barotrauma
|
||||
if (element.GetAttributeBool("flippedx", false)) s.FlipX(false);
|
||||
if (element.GetAttributeBool("flippedy", false)) s.FlipY(false);
|
||||
SerializableProperty.DeserializeProperties(s, element);
|
||||
|
||||
//structures with a body drop a shadow by default
|
||||
if (element.Attribute("usedropshadow") == null)
|
||||
{
|
||||
s.UseDropShadow = prefab.Body;
|
||||
}
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user