Infer type for EntSelector (#30856)

Infer type for EntSelector.cs
This commit is contained in:
Nemanja
2024-08-10 10:17:45 -04:00
committed by GitHub
parent 2b4acde2c8
commit fdbf2a229e
5 changed files with 317 additions and 555 deletions

View File

@@ -8,7 +8,9 @@ namespace Content.Shared.EntityTable.EntitySelectors;
/// </summary>
public sealed partial class EntSelector : EntityTableSelector
{
[DataField(required: true)]
public const string IdDataFieldTag = "id";
[DataField(IdDataFieldTag, required: true)]
public EntProtoId Id;
[DataField]

View File

@@ -0,0 +1,37 @@
using Robust.Shared.Serialization;
using Robust.Shared.Serialization.Manager;
using Robust.Shared.Serialization.Markdown.Mapping;
using Robust.Shared.Serialization.Markdown.Validation;
using Robust.Shared.Serialization.TypeSerializers.Interfaces;
namespace Content.Shared.EntityTable.EntitySelectors;
[TypeSerializer]
public sealed class EntityTableTypeSerializer :
ITypeReader<EntityTableSelector, MappingDataNode>
{
public ValidationNode Validate(ISerializationManager serializationManager,
MappingDataNode node,
IDependencyCollection dependencies,
ISerializationContext? context = null)
{
if (node.Has(EntSelector.IdDataFieldTag))
return serializationManager.ValidateNode<EntSelector>(node, context);
return new ErrorNode(node, "Custom validation not supported! Please specify the type manually!");
}
public EntityTableSelector Read(ISerializationManager serializationManager,
MappingDataNode node,
IDependencyCollection dependencies,
SerializationHookContext hookCtx,
ISerializationContext? context = null,
ISerializationManager.InstantiationDelegate<EntityTableSelector>? instanceProvider = null)
{
var type = typeof(EntityTableSelector);
if (node.Has(EntSelector.IdDataFieldTag))
type = typeof(EntSelector);
return (EntityTableSelector) serializationManager.Read(type, node, context)!;
}
}

View File

@@ -2,67 +2,43 @@
id: AllPlushiesTable
table: !type:GroupSelector
children:
- !type:EntSelector
id: PlushieBee
- !type:EntSelector
id: PlushieNar
- id: PlushieBee
- id: PlushieNar
weight: 0.5
- !type:EntSelector
id: PlushieRatvar
- id: PlushieRatvar
weight: 0.5
- !type:EntSelector
id: PlushieNuke
- !type:EntSelector
id: PlushieSlime
- !type:EntSelector
id: PlushieSnake
- id: PlushieNuke
- id: PlushieSlime
- id: PlushieSnake
- !type:GroupSelector
children:
- !type:EntSelector
id: PlushieLizard
- id: PlushieLizard
weight: 9
- !type:EntSelector
id: PlushieSpaceLizard
- id: PlushieSpaceLizard
weight: 1
- !type:GroupSelector
children:
- !type:EntSelector
id: PlushieCarp
- !type:EntSelector
id: PlushieHolocarp
- id: PlushieCarp
- id: PlushieHolocarp
weight: 0.25
- !type:EntSelector
id: PlushieMagicarp
- id: PlushieMagicarp
weight: 0.25
- !type:EntSelector
id: PlushieRainbowCarp
- id: PlushieRainbowCarp
weight: 0.15
- !type:EntSelector
id: PlushieVox
- !type:EntSelector
id: PlushieRouny
- id: PlushieVox
- id: PlushieRouny
- !type:GroupSelector
children:
- !type:EntSelector
id: PlushieSharkBlue
- !type:EntSelector
id: PlushieSharkGrey
- !type:EntSelector
id: PlushieSharkPink
- !type:EntSelector
id: PlushieAtmosian
- !type:EntSelector
id: PlushieDiona
- !type:EntSelector
id: PlushieXeno
- !type:EntSelector
id: PlushieHampter
- !type:EntSelector
id: PlushieMoth
- !type:EntSelector
id: PlushieArachind
- !type:EntSelector
id: PlushiePenguin
- id: PlushieSharkBlue
- id: PlushieSharkGrey
- id: PlushieSharkPink
- id: PlushieAtmosian
- id: PlushieDiona
- id: PlushieXeno
- id: PlushieHampter
- id: PlushieMoth
- id: PlushieArachind
- id: PlushiePenguin
- type: entity
id: CrateFunPlushie
@@ -87,12 +63,10 @@
containers:
entity_storage: !type:AllSelector
children:
- !type:EntSelector
id: PlushieLizard
- id: PlushieLizard
amount: !type:ConstantNumberSelector
value: 3
- !type:EntSelector
id: PlushieSpaceLizard
- id: PlushieSpaceLizard
amount: !type:ConstantNumberSelector
value: 3

View File

@@ -7,46 +7,31 @@
containers:
entity_storage: !type:AllSelector
children:
- !type:EntSelector
id: ClothingBeltMilitaryWebbing
- !type:EntSelector
id: ClothingHandsGlovesCombat
- !type:EntSelector
id: JetpackBlackFilled
- !type:EntSelector
id: ClothingUniformJumpsuitOperative
- !type:EntSelector
id: ClothingUniformJumpskirtOperative
- !type:EntSelector
id: ClothingHeadsetAltSyndicate
- !type:EntSelector
id: ClothingEyesHudSyndicate
- id: ClothingBeltMilitaryWebbing
- id: ClothingHandsGlovesCombat
- id: JetpackBlackFilled
- id: ClothingUniformJumpsuitOperative
- id: ClothingUniformJumpskirtOperative
- id: ClothingHeadsetAltSyndicate
- id: ClothingEyesHudSyndicate
- type: entityTable
id: FillLockerEmergencyStandard
table: !type:AllSelector
children:
- !type:EntSelector
id: ClothingMaskBreath
- !type:EntSelector
id: ClothingOuterSuitEmergency
- id: ClothingMaskBreath
- id: ClothingOuterSuitEmergency
- !type:GroupSelector
children:
- !type:EntSelector
id: EmergencyOxygenTankFilled
- !type:EntSelector
id: OxygenTankFilled
- !type:EntSelector
id: ToolboxEmergencyFilled
- id: EmergencyOxygenTankFilled
- id: OxygenTankFilled
- id: ToolboxEmergencyFilled
prob: 0.5
- !type:EntSelector
id: MedkitOxygenFilled
- id: MedkitOxygenFilled
prob: 0.2
- !type:EntSelector
id: WeaponFlareGun
- id: WeaponFlareGun
prob: 0.05
- !type:EntSelector
id: BoxMRE
- id: BoxMRE
prob: 0.1
- type: entity
@@ -78,42 +63,30 @@
containers:
entity_storage: !type:AllSelector
children:
- !type:EntSelector
id: ClothingMaskBreath
- !type:EntSelector
id: ClothingOuterSuitEmergency
- id: ClothingMaskBreath
- id: ClothingOuterSuitEmergency
- !type:GroupSelector
children:
- !type:EntSelector
id: EmergencyNitrogenTankFilled
- !type:EntSelector
id: NitrogenTankFilled
- id: EmergencyNitrogenTankFilled
- id: NitrogenTankFilled
- type: entityTable
id: FillLockerFireStandard
table: !type:AllSelector
children:
- !type:EntSelector
id: ClothingOuterSuitFire
- !type:EntSelector
id: ClothingHeadHelmetFire
- !type:EntSelector
id: ClothingMaskGas
- id: ClothingOuterSuitFire
- id: ClothingHeadHelmetFire
- id: ClothingMaskGas
- !type:GroupSelector
children:
- !type:EntSelector
id: EmergencyOxygenTankFilled
- !type:EntSelector
id: OxygenTankFilled
- !type:EntSelector
id: CrowbarRed
- id: EmergencyOxygenTankFilled
- id: OxygenTankFilled
- id: CrowbarRed
- !type:GroupSelector
children:
- !type:EntSelector
id: FireExtinguisher
- id: FireExtinguisher
weight: 98
- !type:EntSelector
id: SprayBottleWater #It's just budget cut after budget cut man
- id: SprayBottleWater #It's just budget cut after budget cut man
weight: 2
- type: entity
@@ -142,36 +115,24 @@
children:
- !type:GroupSelector
children:
- !type:EntSelector
id: ClothingUniformJumpsuitOperative
- !type:EntSelector
id: ClothingUniformJumpskirtOperative
- !type:EntSelector
id: ClothingBackpackDuffelSyndicate
- !type:EntSelector
id: CyberPen
- !type:EntSelector
id: CigPackSyndicate
- !type:EntSelector
id: ClothingBackpackDuffelSyndicatePyjamaBundle
- !type:EntSelector
id: ClothingBeltMilitaryWebbing
- !type:EntSelector
id: ClothingShoesBootsCombatFilled
- !type:EntSelector
id: ToolboxSyndicateFilled
- !type:EntSelector
id: BalloonSyn
- !type:EntSelector
id: WeaponSniperMosin
- id: ClothingUniformJumpsuitOperative
- id: ClothingUniformJumpskirtOperative
- id: ClothingBackpackDuffelSyndicate
- id: CyberPen
- id: CigPackSyndicate
- id: ClothingBackpackDuffelSyndicatePyjamaBundle
- id: ClothingBeltMilitaryWebbing
- id: ClothingShoesBootsCombatFilled
- id: ToolboxSyndicateFilled
- id: BalloonSyn
- id: WeaponSniperMosin
weight: 2
- type: entityTable
id: MaintenanceLockerLoot
table: !type:AllSelector
children:
- !type:EntSelector
id: StrangePill
- id: StrangePill
prob: 0.20
# Tools
- !type:NestedSelector

View File

@@ -9,276 +9,158 @@
# Smoker's specialty
- !type:AllSelector
children:
- !type:EntSelector
id: Lighter
- !type:EntSelector
id: CigCartonBlue
- id: Lighter
- id: CigCartonBlue
# Gar glasses
- !type:GroupSelector
children:
- !type:EntSelector
id: ClothingEyesGlassesGar
- !type:EntSelector
id: ClothingEyesGlassesGarOrange
- !type:EntSelector
id: ClothingEyesGlassesGarGiga
- !type:EntSelector
id: Wristwatch
- id: ClothingEyesGlassesGar
- id: ClothingEyesGlassesGarOrange
- id: ClothingEyesGlassesGarGiga
- id: Wristwatch
weight: 0.5
- !type:EntSelector
id: ClothingHeadHatCake
- !type:EntSelector
id: ClothingHeadHatSkub
- !type:EntSelector
id: ClothingHeadHatCone
- !type:EntSelector
id: ClothingNeckBling
- !type:EntSelector
id: ClothingHeadHelmetCosmonaut
- !type:EntSelector
id: ClothingHeadHelmetBasic
- !type:EntSelector
id: ClothingShoeSlippersDuck
- !type:EntSelector
id: ClothingUnderSocksBee
- !type:EntSelector
id: ClothingUnderSocksCoder
- !type:EntSelector
id: ClothingHeadHatSquid
- id: ClothingHeadHatCake
- id: ClothingHeadHatSkub
- id: ClothingHeadHatCone
- id: ClothingNeckBling
- id: ClothingHeadHelmetCosmonaut
- id: ClothingHeadHelmetBasic
- id: ClothingShoeSlippersDuck
- id: ClothingUnderSocksBee
- id: ClothingUnderSocksCoder
- id: ClothingHeadHatSquid
# Animal Masks
- !type:GroupSelector
children:
- !type:EntSelector
id: ClothingMaskRat
- !type:EntSelector
id: ClothingMaskFox
- !type:EntSelector
id: ClothingMaskBee
- !type:EntSelector
id: ClothingMaskBear
- !type:EntSelector
id: ClothingMaskRaven
- !type:EntSelector
id: ClothingMaskJackal
- !type:EntSelector
id: ClothingMaskBat
- !type:EntSelector
id: ClothingBeltSuspenders
- !type:EntSelector
id: ClothingEyesEyepatch
- !type:EntSelector
id: ClothingEyesGlasses
- !type:EntSelector
id: ClothingHandsGlovesLatex
- !type:EntSelector
id: ClothingHandsGlovesFingerless
- !type:EntSelector
id: ClothingHandsGlovesColorBlack
- !type:EntSelector
id: ClothingHeadHatBeret
- !type:EntSelector
id: ClothingHeadHatBowlerHat
- !type:EntSelector
id: ClothingHeadHatFedoraBrown
- id: ClothingMaskRat
- id: ClothingMaskFox
- id: ClothingMaskBee
- id: ClothingMaskBear
- id: ClothingMaskRaven
- id: ClothingMaskJackal
- id: ClothingMaskBat
- id: ClothingBeltSuspenders
- id: ClothingEyesEyepatch
- id: ClothingEyesGlasses
- id: ClothingHandsGlovesLatex
- id: ClothingHandsGlovesFingerless
- id: ClothingHandsGlovesColorBlack
- id: ClothingHeadHatBeret
- id: ClothingHeadHatBowlerHat
- id: ClothingHeadHatFedoraBrown
weight: 0.5
- !type:EntSelector
id: ClothingHeadHatFedoraGrey
- id: ClothingHeadHatFedoraGrey
weight: 0.5
- !type:EntSelector
id: ClothingHeadHatFez
- !type:EntSelector
id: ClothingHeadHatPaper
- !type:EntSelector
id: ClothingHeadHatPirate
- !type:EntSelector
id: ClothingMaskSterile
- !type:EntSelector
id: ClothingNeckHeadphones
- !type:EntSelector
id: ClothingNeckTieRed
- !type:EntSelector
id: ClothingOuterCoatGentle
- id: ClothingHeadHatFez
- id: ClothingHeadHatPaper
- id: ClothingHeadHatPirate
- id: ClothingMaskSterile
- id: ClothingNeckHeadphones
- id: ClothingNeckTieRed
- id: ClothingOuterCoatGentle
- !type:AllSelector
children:
- !type:EntSelector
id: ClothingOuterCoatJensen
- !type:EntSelector
id: ClothingEyesGlassesJensen
- !type:EntSelector
id: ClothingOuterCoatLab
- id: ClothingOuterCoatJensen
- id: ClothingEyesGlassesJensen
- id: ClothingOuterCoatLab
- !type:AllSelector
children:
- !type:EntSelector
id: ClothingOuterCoatPirate
- !type:EntSelector
id: ClothingHeadHatPirateTricord
- !type:EntSelector
id: ClothingHeadHatTophat
- !type:EntSelector
id: ClothingOuterHoodieBlack
- id: ClothingOuterCoatPirate
- id: ClothingHeadHatPirateTricord
- id: ClothingHeadHatTophat
- id: ClothingOuterHoodieBlack
weight: 0.5
- !type:EntSelector
id: ClothingOuterHoodieGrey
- id: ClothingOuterHoodieGrey
weight: 0.5
- !type:GroupSelector
children:
- !type:EntSelector
id: ClothingOuterFlannelRed
- !type:EntSelector
id: ClothingOuterFlannelBlue
- !type:EntSelector
id: ClothingOuterFlannelGreen
- !type:EntSelector
id: ClothingOuterVestHazard
- !type:EntSelector
id: ClothingShoesBootsJack
- !type:EntSelector
id: ClothingShoesHighheelBoots
- !type:EntSelector
id: ClothingShoesBootsLaceup
- !type:EntSelector
id: ClothingShoesLeather
- !type:EntSelector
id: ClothingShoesBootsSalvage
- !type:EntSelector
id: ClothingShoesBootsWork
- !type:EntSelector
id: ClothingShoesTourist
- !type:EntSelector
id: ClothingUniformJumpsuitLoungewear
- !type:EntSelector
id: ClothingHeadHatCowboyRed
- id: ClothingOuterFlannelRed
- id: ClothingOuterFlannelBlue
- id: ClothingOuterFlannelGreen
- id: ClothingOuterVestHazard
- id: ClothingShoesBootsJack
- id: ClothingShoesHighheelBoots
- id: ClothingShoesBootsLaceup
- id: ClothingShoesLeather
- id: ClothingShoesBootsSalvage
- id: ClothingShoesBootsWork
- id: ClothingShoesTourist
- id: ClothingUniformJumpsuitLoungewear
- id: ClothingHeadHatCowboyRed
# Uncommon Group
- !type:GroupSelector
weight: 23
children:
- !type:EntSelector
id: ClothingNeckCloakHerald
- !type:EntSelector
id: ClothingHeadHelmetTemplar
- id: ClothingNeckCloakHerald
- id: ClothingHeadHelmetTemplar
# Cloaks
- !type:GroupSelector
children:
- !type:EntSelector
id: ClothingNeckCloakTrans
- !type:EntSelector
id: ClothingNeckCloakAdmin
- !type:EntSelector
id: ClothingNeckCloakMoth
- !type:EntSelector
id: ClothingNeckCloakVoid
- !type:EntSelector
id: ClothingNeckCloakGoliathCloak
- !type:EntSelector
id: ClothingNeckCloakAce
- !type:EntSelector
id: ClothingNeckCloakAro
- !type:EntSelector
id: ClothingNeckCloakBi
- !type:EntSelector
id: ClothingNeckCloakIntersex
- !type:EntSelector
id: ClothingNeckCloakLesbian
- !type:EntSelector
id: ClothingNeckCloakGay
- !type:EntSelector
id: ClothingNeckCloakEnby
- !type:EntSelector
id: ClothingNeckCloakPan
- !type:EntSelector
id: ToySkeleton
- !type:EntSelector
id: Basketball
- !type:EntSelector
id: Football
- !type:EntSelector
id: BalloonNT
- !type:EntSelector
id: BalloonCorgi
- !type:EntSelector
id: MysteryFigureBox
- id: ClothingNeckCloakTrans
- id: ClothingNeckCloakAdmin
- id: ClothingNeckCloakMoth
- id: ClothingNeckCloakVoid
- id: ClothingNeckCloakGoliathCloak
- id: ClothingNeckCloakAce
- id: ClothingNeckCloakAro
- id: ClothingNeckCloakBi
- id: ClothingNeckCloakIntersex
- id: ClothingNeckCloakLesbian
- id: ClothingNeckCloakGay
- id: ClothingNeckCloakEnby
- id: ClothingNeckCloakPan
- id: ToySkeleton
- id: Basketball
- id: Football
- id: BalloonNT
- id: BalloonCorgi
- id: MysteryFigureBox
# Cult
- !type:AllSelector
children:
- !type:EntSelector
id: ClothingOuterRobesCult
- !type:EntSelector
id: ClothingShoesCult
- !type:EntSelector
id: ClothingHandsGlovesMercFingerless
- !type:EntSelector
id: ClothingHandsGlovesNitrile
- !type:EntSelector
id: ClothingHandsGlovesPowerglove
- !type:EntSelector
id: ClothingHeadHatAnimalHeadslime
- !type:EntSelector
id: ClothingHeadHatBeretMerc
- !type:EntSelector
id: ClothingHeadHatOutlawHat
- !type:EntSelector
id: ClothingHeadHatUshanka
- !type:EntSelector
id: ClothingHeadHatBunny
- !type:EntSelector
id: ClothingMaskNeckGaiter
- !type:EntSelector
id: ClothingNeckScarfStripedZebra
- !type:EntSelector
id: ClothingOuterGhostSheet
- !type:EntSelector
id: ClothingUniformJumpsuitAncient
- !type:EntSelector
id: ClothingUniformJumpsuitPirate
- !type:EntSelector
id: ClothingShoesBootsCowboyFancy
- !type:EntSelector
id: ClothingHeadHatCowboyBountyHunter
- id: ClothingOuterRobesCult
- id: ClothingShoesCult
- id: ClothingHandsGlovesMercFingerless
- id: ClothingHandsGlovesNitrile
- id: ClothingHandsGlovesPowerglove
- id: ClothingHeadHatAnimalHeadslime
- id: ClothingHeadHatBeretMerc
- id: ClothingHeadHatOutlawHat
- id: ClothingHeadHatUshanka
- id: ClothingHeadHatBunny
- id: ClothingMaskNeckGaiter
- id: ClothingNeckScarfStripedZebra
- id: ClothingOuterGhostSheet
- id: ClothingUniformJumpsuitAncient
- id: ClothingUniformJumpsuitPirate
- id: ClothingShoesBootsCowboyFancy
- id: ClothingHeadHatCowboyBountyHunter
# Pins
- !type:GroupSelector
children:
- !type:EntSelector
id: ClothingNeckLGBTPin
- !type:EntSelector
id: ClothingNeckAromanticPin
- !type:EntSelector
id: ClothingNeckAsexualPin
- !type:EntSelector
id: ClothingNeckBisexualPin
- !type:EntSelector
id: ClothingNeckIntersexPin
- !type:EntSelector
id: ClothingNeckLesbianPin
- !type:EntSelector
id: ClothingNeckNonBinaryPin
- !type:EntSelector
id: ClothingNeckPansexualPin
- !type:EntSelector
id: ClothingNeckTransPin
- !type:EntSelector
id: ClothingNeckAutismPin
- !type:EntSelector
id: ClothingNeckGoldAutismPin
- id: ClothingNeckLGBTPin
- id: ClothingNeckAromanticPin
- id: ClothingNeckAsexualPin
- id: ClothingNeckBisexualPin
- id: ClothingNeckIntersexPin
- id: ClothingNeckLesbianPin
- id: ClothingNeckNonBinaryPin
- id: ClothingNeckPansexualPin
- id: ClothingNeckTransPin
- id: ClothingNeckAutismPin
- id: ClothingNeckGoldAutismPin
# Rare Group
- !type:GroupSelector
weight: 2
children:
- !type:EntSelector
id: Skub
- !type:EntSelector
id: PonderingOrb
- !type:EntSelector
id: CluwneHorn
- !type:EntSelector
id: ClothingShoesSkates
- !type:EntSelector
id: DrinkMugDog
- !type:EntSelector
id: CigarGold
- !type:EntSelector
id: ClothingUniformJumpsuitFamilyGuy
- !type:EntSelector
id: WristwatchGold
- id: Skub
- id: PonderingOrb
- id: CluwneHorn
- id: ClothingShoesSkates
- id: DrinkMugDog
- id: CigarGold
- id: ClothingUniformJumpsuitFamilyGuy
- id: WristwatchGold
- type: entity
name: Maint Loot Spawner
@@ -304,174 +186,104 @@
- !type:GroupSelector
weight: 75
children:
- !type:EntSelector
id: FlashlightLantern
- !type:EntSelector
id: ToolboxEmergencyFilled
- id: FlashlightLantern
- id: ToolboxEmergencyFilled
- !type:GroupSelector
children:
- !type:EntSelector
id: OxygenTankFilled
- !type:EntSelector
id: DoubleEmergencyOxygenTankFilled
- id: OxygenTankFilled
- id: DoubleEmergencyOxygenTankFilled
- !type:GroupSelector
children:
- !type:EntSelector
id: NitrogenTankFilled
- !type:EntSelector
id: DoubleEmergencyNitrogenTankFilled
- !type:EntSelector
id: EmergencyFunnyOxygenTankFilled
- id: NitrogenTankFilled
- id: DoubleEmergencyNitrogenTankFilled
- id: EmergencyFunnyOxygenTankFilled
weight: 0.5
- !type:GroupSelector
weight: 3
children:
- !type:EntSelector
id: SheetSteel10
- !type:EntSelector
id: SheetPlastic10
- !type:EntSelector
id: SheetGlass10
- !type:EntSelector
id: PartRodMetal10
- !type:EntSelector
id: MaterialCardboard10
- id: SheetSteel10
- id: SheetPlastic10
- id: SheetGlass10
- id: PartRodMetal10
- id: MaterialCardboard10
weight: 0.25
- !type:EntSelector
id: MaterialCloth10
- id: MaterialCloth10
weight: 0.25
- !type:EntSelector
id: MaterialWoodPlank10
- id: MaterialWoodPlank10
weight: 0.25
- !type:EntSelector
id: Plunger
- !type:EntSelector
id: PowerCellMedium
- !type:EntSelector
id: PowerCellSmall
- !type:EntSelector
id: Soap
- !type:EntSelector
id: Wirecutter
- !type:EntSelector
id: Screwdriver
- !type:EntSelector
id: Wrench
- !type:EntSelector
id: Crowbar
- !type:EntSelector
id: Multitool
- !type:EntSelector
id: Shovel
- !type:EntSelector
id: Welder
- !type:EntSelector
id: GasAnalyzer
- !type:EntSelector
id: SprayPainter
- !type:EntSelector
id: Flare
- !type:EntSelector
id: Beaker
- !type:EntSelector
id: ClothingMaskGas
- !type:EntSelector
id: ClothingMaskBreath
- !type:EntSelector
id: DoorElectronics
- !type:EntSelector
id: APCElectronics
- !type:EntSelector
id: InflatableWallStack5
- !type:EntSelector
id: CableHVStack10
- !type:EntSelector
id: CableMVStack10
- !type:EntSelector
id: CableApcStack10
- id: Plunger
- id: PowerCellMedium
- id: PowerCellSmall
- id: Soap
- id: Wirecutter
- id: Screwdriver
- id: Wrench
- id: Crowbar
- id: Multitool
- id: Shovel
- id: Welder
- id: GasAnalyzer
- id: SprayPainter
- id: Flare
- id: Beaker
- id: ClothingMaskGas
- id: ClothingMaskBreath
- id: DoorElectronics
- id: APCElectronics
- id: InflatableWallStack5
- id: CableHVStack10
- id: CableMVStack10
- id: CableApcStack10
- !type:GroupSelector
children:
- !type:EntSelector
id: ClothingHandsGlovesColorYellowBudget
- id: ClothingHandsGlovesColorYellowBudget
weight: 5
- !type:EntSelector
id: ClothingHandsGlovesFingerlessInsulated
- id: ClothingHandsGlovesFingerlessInsulated
weight: 0.5
- !type:EntSelector
id: ClothingHandsGlovesColorYellow
- id: ClothingHandsGlovesColorYellow
weight: 1
# Uncommon Group
- !type:GroupSelector
weight: 23
children:
- !type:EntSelector
id: ClothingHeadHatCone
- id: ClothingHeadHatCone
weight: 2
- !type:EntSelector
id: BookRandomStory
- id: BookRandomStory
weight: 0.25
- !type:EntSelector
id: ToolboxElectricalFilled
- !type:EntSelector
id: ToolboxMechanicalFilled
- !type:EntSelector
id: ClothingBeltUtility
- !type:EntSelector
id: ToolboxArtisticFilled
- !type:EntSelector
id: GeigerCounter
- !type:EntSelector
id: trayScanner
- !type:EntSelector
id: HandheldGPSBasic
- !type:EntSelector
id: HandLabeler
- !type:EntSelector
id: GlowstickBase
- !type:EntSelector
id: Bucket
- !type:EntSelector
id: RadioHandheld
- !type:EntSelector
id: AppraisalTool
- !type:EntSelector
id: ModularReceiver
- !type:EntSelector
id: WeaponFlareGun
- !type:EntSelector
id: BarberScissors
- id: ToolboxElectricalFilled
- id: ToolboxMechanicalFilled
- id: ClothingBeltUtility
- id: ToolboxArtisticFilled
- id: GeigerCounter
- id: trayScanner
- id: HandheldGPSBasic
- id: HandLabeler
- id: GlowstickBase
- id: Bucket
- id: RadioHandheld
- id: AppraisalTool
- id: ModularReceiver
- id: WeaponFlareGun
- id: BarberScissors
- !type:GroupSelector
children:
- !type:EntSelector
id: DrinkSpaceGlue
- !type:EntSelector
id: DrinkSpaceLube
- id: DrinkSpaceGlue
- id: DrinkSpaceLube
# Rare Group
- !type:GroupSelector
weight: 2
children:
- !type:EntSelector
id: LanternFlash
- !type:EntSelector
id: PowerCellHigh
- !type:EntSelector
id: NetProbeCartridge
- !type:EntSelector
id: WelderIndustrial
- !type:EntSelector
id: SheetPlasteel10
- !type:EntSelector
id: ClothingMaskGasExplorer
- !type:EntSelector
id: TechnologyDisk
- !type:EntSelector
id: ResearchDisk5000
- !type:EntSelector
id: PetCarrier
- !type:EntSelector
id: DrinkMopwataBottleRandom
- !type:EntSelector
id: LidSalami
- id: LanternFlash
- id: PowerCellHigh
- id: NetProbeCartridge
- id: WelderIndustrial
- id: SheetPlasteel10
- id: ClothingMaskGasExplorer
- id: TechnologyDisk
- id: ResearchDisk5000
- id: PetCarrier
- id: DrinkMopwataBottleRandom
- id: LidSalami
weight: 0.05
- type: entity
@@ -498,62 +310,38 @@
- !type:GroupSelector
weight: 95
children:
- !type:EntSelector
id: Machete
- !type:EntSelector
id: BaseBallBat
- !type:EntSelector
id: CombatKnife
- !type:EntSelector
id: Spear
- !type:EntSelector
id: RifleStock
- !type:EntSelector
id: ModularReceiver
- !type:EntSelector
id: HydroponicsToolScythe
- id: Machete
- id: BaseBallBat
- id: CombatKnife
- id: Spear
- id: RifleStock
- id: ModularReceiver
- id: HydroponicsToolScythe
# Rare Group
- !type:GroupSelector
weight: 5
children:
- !type:EntSelector
id: Lighter
- !type:EntSelector
id: Matchbox
- !type:EntSelector
id: ClothingEyesBlindfold
- !type:EntSelector
id: ClothingMaskMuzzle
- !type:EntSelector
id: ClothingMaskGasSecurity
- !type:EntSelector
id: ShardGlass
- id: Lighter
- id: Matchbox
- id: ClothingEyesBlindfold
- id: ClothingMaskMuzzle
- id: ClothingMaskGasSecurity
- id: ShardGlass
weight: 2
- !type:EntSelector
id: Syringe
- !type:EntSelector
id: Mousetrap
- id: Syringe
- id: Mousetrap
- !type:GroupSelector
weight: 2
children:
- !type:EntSelector
id: Brutepack1
- !type:EntSelector
id: Ointment1
- !type:EntSelector
id: Gauze1
- !type:EntSelector
id: Bola
- !type:EntSelector
id: SurvivalKnife
- !type:EntSelector
id: ScalpelShiv
- !type:EntSelector
id: Shiv
- !type:EntSelector
id: SawImprov
- !type:EntSelector
id: HydroponicsToolMiniHoe
- id: Brutepack1
- id: Ointment1
- id: Gauze1
- id: Bola
- id: SurvivalKnife
- id: ScalpelShiv
- id: Shiv
- id: SawImprov
- id: HydroponicsToolMiniHoe
- type: entity
name: Maint Loot Spawner