feat(inventory): Add secondary smart-equip star (#25696)
* feat(inventory): Add secondary quick-remove star * style: Fix end of file newline * feat(inventory): Change secondary smart-equip star to silver star * feat(inventory): Decrease secondary quick-equip star luminosity to better match the primary
This commit is contained in:
@@ -18,7 +18,7 @@ public sealed class ItemGridPiece : Control
|
|||||||
|
|
||||||
public readonly EntityUid Entity;
|
public readonly EntityUid Entity;
|
||||||
public ItemStorageLocation Location;
|
public ItemStorageLocation Location;
|
||||||
public bool Marked = false;
|
public ItemGridPieceMarks? Marked;
|
||||||
|
|
||||||
public event Action<GUIBoundKeyEventArgs, ItemGridPiece>? OnPiecePressed;
|
public event Action<GUIBoundKeyEventArgs, ItemGridPiece>? OnPiecePressed;
|
||||||
public event Action<GUIBoundKeyEventArgs, ItemGridPiece>? OnPieceUnpressed;
|
public event Action<GUIBoundKeyEventArgs, ItemGridPiece>? OnPieceUnpressed;
|
||||||
@@ -42,8 +42,10 @@ public sealed class ItemGridPiece : Control
|
|||||||
private Texture? _bottomLeftTexture;
|
private Texture? _bottomLeftTexture;
|
||||||
private readonly string _bottomRightTexturePath = "Storage/piece_bottomRight";
|
private readonly string _bottomRightTexturePath = "Storage/piece_bottomRight";
|
||||||
private Texture? _bottomRightTexture;
|
private Texture? _bottomRightTexture;
|
||||||
private readonly string _markedTexturePath = "Storage/marked";
|
private readonly string _markedFirstTexturePath = "Storage/marked_first";
|
||||||
private Texture? _markedTexture;
|
private Texture? _markedFirstTexture;
|
||||||
|
private readonly string _markedSecondTexturePath = "Storage/marked_second";
|
||||||
|
private Texture? _markedSecondTexture;
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
public ItemGridPiece(Entity<ItemComponent> entity, ItemStorageLocation location, IEntityManager entityManager)
|
public ItemGridPiece(Entity<ItemComponent> entity, ItemStorageLocation location, IEntityManager entityManager)
|
||||||
@@ -88,7 +90,8 @@ public sealed class ItemGridPiece : Control
|
|||||||
_topRightTexture = Theme.ResolveTextureOrNull(_topRightTexturePath)?.Texture;
|
_topRightTexture = Theme.ResolveTextureOrNull(_topRightTexturePath)?.Texture;
|
||||||
_bottomLeftTexture = Theme.ResolveTextureOrNull(_bottomLeftTexturePath)?.Texture;
|
_bottomLeftTexture = Theme.ResolveTextureOrNull(_bottomLeftTexturePath)?.Texture;
|
||||||
_bottomRightTexture = Theme.ResolveTextureOrNull(_bottomRightTexturePath)?.Texture;
|
_bottomRightTexture = Theme.ResolveTextureOrNull(_bottomRightTexturePath)?.Texture;
|
||||||
_markedTexture = Theme.ResolveTextureOrNull(_markedTexturePath)?.Texture;
|
_markedFirstTexture = Theme.ResolveTextureOrNull(_markedFirstTexturePath)?.Texture;
|
||||||
|
_markedSecondTexture = Theme.ResolveTextureOrNull(_markedSecondTexturePath)?.Texture;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void Draw(DrawingHandleScreen handle)
|
protected override void Draw(DrawingHandleScreen handle)
|
||||||
@@ -113,7 +116,7 @@ public sealed class ItemGridPiece : Control
|
|||||||
//yeah, this coloring is kinda hardcoded. deal with it. B)
|
//yeah, this coloring is kinda hardcoded. deal with it. B)
|
||||||
Color? colorModulate = hovering ? null : Color.FromHex("#a8a8a8");
|
Color? colorModulate = hovering ? null : Color.FromHex("#a8a8a8");
|
||||||
|
|
||||||
var marked = Marked;
|
var marked = Marked != null;
|
||||||
Vector2i? maybeMarkedPos = null;
|
Vector2i? maybeMarkedPos = null;
|
||||||
|
|
||||||
_texturesPositions.Clear();
|
_texturesPositions.Clear();
|
||||||
@@ -189,9 +192,19 @@ public sealed class ItemGridPiece : Control
|
|||||||
overrideDirection: Direction.South);
|
overrideDirection: Direction.South);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (maybeMarkedPos is {} markedPos && _markedTexture != null)
|
if (maybeMarkedPos is {} markedPos)
|
||||||
{
|
{
|
||||||
handle.DrawTextureRect(_markedTexture, new UIBox2(markedPos, markedPos + size));
|
var markedTexture = Marked switch
|
||||||
|
{
|
||||||
|
ItemGridPieceMarks.First => _markedFirstTexture,
|
||||||
|
ItemGridPieceMarks.Second => _markedSecondTexture,
|
||||||
|
_ => null,
|
||||||
|
};
|
||||||
|
|
||||||
|
if (markedTexture != null)
|
||||||
|
{
|
||||||
|
handle.DrawTextureRect(markedTexture, new UIBox2(markedPos, markedPos + size));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -275,3 +288,9 @@ public sealed class ItemGridPiece : Control
|
|||||||
return actualSize * new Vector2i(8, 8);
|
return actualSize * new Vector2i(8, 8);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public enum ItemGridPieceMarks
|
||||||
|
{
|
||||||
|
First,
|
||||||
|
Second,
|
||||||
|
}
|
||||||
|
|||||||
@@ -249,7 +249,7 @@ public sealed class StorageContainer : BaseWindow
|
|||||||
|
|
||||||
var boundingGrid = storageComp.Grid.GetBoundingBox();
|
var boundingGrid = storageComp.Grid.GetBoundingBox();
|
||||||
var size = _emptyTexture!.Size * 2;
|
var size = _emptyTexture!.Size * 2;
|
||||||
var lastEntity = storageComp.Container.ContainedEntities.LastOrDefault();
|
var containedEntities = storageComp.Container.ContainedEntities.Reverse().ToArray();
|
||||||
|
|
||||||
//todo. at some point, we may want to only rebuild the pieces that have actually received new data.
|
//todo. at some point, we may want to only rebuild the pieces that have actually received new data.
|
||||||
|
|
||||||
@@ -277,7 +277,12 @@ public sealed class StorageContainer : BaseWindow
|
|||||||
var gridPiece = new ItemGridPiece((itemEnt, itemEntComponent), itemPos, _entity)
|
var gridPiece = new ItemGridPiece((itemEnt, itemEntComponent), itemPos, _entity)
|
||||||
{
|
{
|
||||||
MinSize = size,
|
MinSize = size,
|
||||||
Marked = itemEnt == lastEntity
|
Marked = Array.IndexOf(containedEntities, itemEnt) switch
|
||||||
|
{
|
||||||
|
0 => ItemGridPieceMarks.First,
|
||||||
|
1 => ItemGridPieceMarks.Second,
|
||||||
|
_ => null,
|
||||||
|
}
|
||||||
};
|
};
|
||||||
gridPiece.OnPiecePressed += OnPiecePressed;
|
gridPiece.OnPiecePressed += OnPiecePressed;
|
||||||
gridPiece.OnPieceUnpressed += OnPieceUnpressed;
|
gridPiece.OnPieceUnpressed += OnPieceUnpressed;
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 134 B After Width: | Height: | Size: 134 B |
BIN
Resources/Textures/Interface/Default/Storage/marked_second.png
Normal file
BIN
Resources/Textures/Interface/Default/Storage/marked_second.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 146 B |
Reference in New Issue
Block a user