Multiple items in loadouts (#33193)

* loadouts update

* Update loadout_groups.yml

* darts to candles

* Update Resources/Prototypes/Loadouts/dummy_entities.yml

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
This commit is contained in:
Ed
2024-12-24 03:24:19 +03:00
committed by GitHub
parent 39b2ce8cef
commit 1c33073af4
8 changed files with 42 additions and 10 deletions

View File

@@ -36,19 +36,20 @@ public sealed partial class LoadoutContainer : BoxContainer
if (_protoManager.TryIndex(proto, out var loadProto))
{
var ent = _entManager.System<LoadoutSystem>().GetFirstOrNull(loadProto);
var ent = loadProto.DummyEntity ?? _entManager.System<LoadoutSystem>().GetFirstOrNull(loadProto);
if (ent == null)
return;
if (ent != null)
{
_entity = _entManager.SpawnEntity(ent, MapCoordinates.Nullspace);
Sprite.SetEntity(_entity);
var spriteTooltip = new Tooltip();
spriteTooltip.SetMessage(FormattedMessage.FromUnformatted(_entManager.GetComponent<MetaDataComponent>(_entity.Value).EntityDescription));
TooltipSupplier = _ => spriteTooltip;
}
}
}
protected override void Dispose(bool disposing)
{

View File

@@ -90,6 +90,9 @@ public sealed class LoadoutSystem : EntitySystem
public string GetName(LoadoutPrototype loadout)
{
if (loadout.DummyEntity is not null && _protoMan.TryIndex<EntityPrototype>(loadout.DummyEntity, out var proto))
return proto.Name;
if (_protoMan.TryIndex(loadout.StartingGear, out var gear))
{
return GetName(gear);

View File

@@ -17,6 +17,12 @@ public sealed partial class LoadoutPrototype : IPrototype, IEquipmentLoadout
* You can either use an existing StartingGearPrototype or specify it inline to avoid bloating yaml.
*/
/// <summary>
/// An entity whose sprite, name and description is used for display in the interface. If null, tries to get the proto of the item from gear (if it is a single item).
/// </summary>
[DataField]
public EntProtoId? DummyEntity;
[DataField]
public ProtoId<StartingGearPrototype>? StartingGear;

View File

@@ -28,7 +28,7 @@
back:
- ClothingNeckHeadphones
# Plushies
# Toys
- type: loadout
id: PlushieLizard
storage:
@@ -41,6 +41,15 @@
back:
- PlushieSpaceLizard
- type: loadout
id: ThreeCandles
dummyEntity: LoadoutDummyCandles
storage:
back:
- CandleRed
- CandleBlue
- CandleGreenSmall
# Smokeables
- type: loadout
id: Lighter

View File

@@ -0,0 +1,9 @@
- type: entity
id: LoadoutDummyCandles
categories: [ HideSpawnMenu ]
name: three candles
description: A set of three colorful candles for secret rituals!
components:
- type: Sprite
sprite: Objects/Misc/candles.rsi
state: loadout

View File

@@ -10,6 +10,7 @@
- Headphones
- PlushieLizard
- PlushieSpaceLizard
- ThreeCandles
- Lighter
- CigPackGreen
- CigPackRed

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 B

View File

@@ -10,6 +10,9 @@
{
"name": "stand-small"
},
{
"name": "loadout"
},
{
"name": "stand-big"
},