// testing that maps have nothing with the "DO NOT MAP" suffix
// I do it here because it's basically copy-paste code for the most part
var yamlEntities = root["entities"];
+ if (!protoManager.TryIndex<EntityCategoryPrototype>("DoNotMap", out var dnmCategory))
+ return;
foreach (var yamlEntity in (YamlSequenceNode)yamlEntities)
{
var protoId = yamlEntity["proto"].AsString();
protoManager.TryIndex(protoId, out var proto, false);
if (proto is null || proto.EditorSuffix is null)
continue;
- if (proto.EditorSuffix.ToUpper().Contains("DO NOT MAP") && !DoNotMapWhitelist.Contains(map.ToString()))
+ if (proto.Categories.Contains(dnmCategory) && !DoNotMapWhitelist.Contains(map.ToString()))
{
- Assert.Fail($"\nMap {map} has the DO NOT MAP prototype {proto}");
+ Assert.Fail($"\nMap {map} has the DO NOT MAP prototype {proto.Name}");
}
}
}
entity-category-name-objectives = Objectives
entity-category-name-roles = Mind Roles
entity-category-name-mapping = Mapping
+entity-category-name-donotmap = Do not map
+
+entity-category-suffix-donotmap = DO NOT MAP
id: ClosetJanitorBombFilled
parent: ClosetJanitorBomb
suffix: DO NOT MAP, Filled
+ categories: [ DoNotMap ]
components:
- type: StorageFill
contents:
id: ClothingHeadHelmetHardsuitLuxury #DO NOT MAP - https://github.com/space-wizards/space-station-14/pull/19738#issuecomment-1703486738
name: luxury mining hardsuit helmet
description: A refurbished mining hardsuit helmet, fitted with satin cushioning and an extra (non-functioning) antenna, because you're that extra.
+ categories: [ DoNotMap ]
components:
- type: Sprite
sprite: Clothing/Head/Hardsuits/luxury.rsi
id: ClothingHeadHelmetJanitorBombSuit
name: janitorial bombsuit helmet
description: A heavy helmet designed to withstand explosions formed from reactions between chemicals.
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
components:
- type: Sprite
sprite: Clothing/Head/Helmets/janitor_bombsuit.rsi
id: ClothingHeadHatCatEars
name: cat ears
description: "NYAH!"
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
components:
- type: Tag
tags: [] # ignore "WhitelistChameleon" tag
parent: [ClothingHeadHatCatEars, BaseToggleClothing]
id: ClothingHeadHatCatEarsValid
suffix: Valid, DO NOT MAP
+ categories: [ DoNotMap ]
components:
- type: ToggleClothing
action: ActionBecomeValid
id: ClothingHeadHatDogEars
name: doggy ears
description: Only for good boys.
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
components:
- type: Sprite
sprite: Clothing/Head/Hats/dogears.rsi
id: ClothingOuterHardsuitLuxury #DO NOT MAP - https://github.com/space-wizards/space-station-14/pull/19738#issuecomment-1703486738
name: luxury mining hardsuit
description: A refurbished mining hardsuit, fashioned after the Quartermaster's colors. Graphene lining provides less protection, but is much easier to move.
+ categories: [ DoNotMap ]
components:
- type: Sprite
sprite: Clothing/OuterClothing/Hardsuits/luxury.rsi
id: ClothingOuterSuitJanitorBomb
name: janitorial bomb suit
description: A heavy helmet designed to withstand explosions formed from reactions between chemicals.
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
components:
- type: Sprite
sprite: Clothing/OuterClothing/Suits/janitor_bombsuit.rsi
parent: ClothingOuterSuitCarp
id: ClothingOuterHardsuitCarp
suffix: Hardsuit, DO NOT MAP
+ categories: [ DoNotMap ]
components:
- type: PressureProtection
highPressureMultiplier: 0.6
- type: entity
id: StationAiBrain
parent: PositronicBrain
- categories: [ HideSpawnMenu ]
- suffix: DO NOT MAP
+ categories: [ HideSpawnMenu, DoNotMap ]
components:
- type: Sprite
# Once it's in a core it's pretty much an abstract entity at that point.
id: StationAiHolo
name: AI eye
description: The AI's viewer.
- categories: [ HideSpawnMenu ]
- suffix: DO NOT MAP
+ categories: [ HideSpawnMenu, DoNotMap ]
components:
- type: NoFTL
- type: WarpPoint
id: StationAiHoloLocal
name: AI hologram
description: A holographic representation of an AI.
- categories: [ HideSpawnMenu ]
- suffix: DO NOT MAP
+ categories: [ HideSpawnMenu, DoNotMap ]
components:
- type: Transform
anchored: true
name: LSE-400c "Svalinn machine gun" machine board
description: A machine printed circuit board for an LSE-400c "Svalinn machine gun".
suffix: DO NOT MAP, Machine Board
+ categories: [ DoNotMap ]
components:
- type: Sprite
state: security
name: LSE-1200c "Perforator" machine board
description: A machine printed circuit board for an LSE-1200c "Perforator".
suffix: DO NOT MAP, Machine Board
+ categories: [ DoNotMap ]
components:
- type: Sprite
state: security
name: EXP-320g "Friendship" machine board
description: A machine printed circuit board for an EXP-320g "Friendship".
suffix: DO NOT MAP, Machine Board
+ categories: [ DoNotMap ]
components:
- type: Sprite
state: security
name: EXP-2100g "Duster" machine board
description: A machine printed circuit board for an EXP-2100g "Duster".
suffix: DO NOT MAP, Machine Board
+ categories: [ DoNotMap ]
components:
- type: Sprite
state: security
name: PTK-800 "Matter Dematerializer" machine board
description: A machine printed circuit board for an PTK-800 "Matter Dematerializer".
suffix: DO NOT MAP, Machine Board
+ categories: [ DoNotMap ]
components:
- type: Sprite
state: security
parent: BikeHorn
id: GoldenBikeHorn
name: golden honker
- suffix: No mapping
+ categories: [ DoNotMap ]
description: A happy honk prize, pray to the gods for your reward.
components:
- type: Sprite
parent: PlushieGhost
id: PlushieGhostRevenant
name: revenant soft toy
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
description: So soft it almost makes you want to take a nap...
components:
- type: Item
id: BoxFolderCentCom
name: CentComm folder
parent: BoxFolderBase
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
description: CentComm's miserable little pile of secrets!
components:
- type: Sprite
id: TraitorCodePaper
name: syndicate codeword
description: A leaked codeword to possibly get in touch with the Syndicate.
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
components:
- type: TraitorCodePaper
name: captain's rubber stamp
parent: [RubberStampBase, BaseCommandContraband]
id: RubberStampCaptain
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
components:
- type: Stamp
stampedName: stamp-component-stamped-name-captain
name: CentComm rubber stamp
parent: RubberStampBase
id: RubberStampCentcom
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
components:
- type: Stamp
stampedName: stamp-component-stamped-name-centcom
name: chaplain's rubber stamp
parent: RubberStampBase
id: RubberStampChaplain
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
components:
- type: Stamp
stampedName: stamp-component-stamped-name-chaplain
name: lawyer's rubber stamp
parent: RubberStampBase
id: RubberStampLawyer
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
components:
- type: Stamp
stampedName: stamp-component-stamped-name-lawyer
name: clown's rubber stamp
parent: RubberStampBase
id: RubberStampClown
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
components:
- type: Stamp
stampedName: stamp-component-stamped-name-clown
name: chief engineer's rubber stamp
parent: [RubberStampBase, BaseCommandContraband]
id: RubberStampCE
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
components:
- type: Stamp
stampedName: stamp-component-stamped-name-ce
name: chief medical officer's rubber stamp
parent: [RubberStampBase, BaseCommandContraband]
id: RubberStampCMO
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
components:
- type: Stamp
stampedName: stamp-component-stamped-name-cmo
name: head of personnel's rubber stamp
parent: [RubberStampBase, BaseCommandContraband]
id: RubberStampHop
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
components:
- type: Stamp
stampedName: stamp-component-stamped-name-hop
name: head of security's rubber stamp
parent: [RubberStampBase, BaseCommandContraband]
id: RubberStampHos
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
components:
- type: Stamp
stampedName: stamp-component-stamped-name-hos
name: mime's rubber stamp
parent: RubberStampBase
id: RubberStampMime
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
components:
- type: Stamp
stampedName: stamp-component-stamped-name-mime
name: quartermaster's rubber stamp
parent: [RubberStampBase, BaseCommandContraband]
id: RubberStampQm
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
components:
- type: Stamp
stampedName: stamp-component-stamped-name-qm
name: research director's rubber stamp
parent: [RubberStampBase, BaseCommandContraband]
id: RubberStampRd
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
components:
- type: Stamp
stampedName: stamp-component-stamped-name-rd
name: syndicate rubber stamp
parent: [RubberStampBase, BaseSyndicateContraband]
id: RubberStampSyndicate
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
components:
- type: Stamp
stampedName: stamp-component-stamped-name-syndicate
name: warden's rubber stamp
parent: [RubberStampBase, BaseRestrictedContraband]
id: RubberStampWarden
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
components:
- type: Stamp
stampedName: stamp-component-stamped-name-warden
name: detective's rubber stamp
parent: [RubberStampBase, BaseRestrictedContraband]
id: RubberStampDetective
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
components:
- type: Stamp
stampedName: stamp-component-stamped-name-detective
name: psychologist's rubber stamp
parent: RubberStampBase
id: RubberStampPsychologist
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
description: A rubber stamp for stamping important documents. Prescribe those treatments!
components:
- type: Stamp
- stampedName: stamp-component-stamped-name-psychologist
+ stampedName: stamp-component-stamped-name-psychologist
stampedColor: "#5B97BC"
stampState: "paper_stamp-psychologist"
- type: Sprite
- state: stamp-psychologist
\ No newline at end of file
+ state: stamp-psychologist
- type: entity
name: handheld crew monitor
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
parent: [ BaseHandheldComputer, BaseGrandTheftContraband ]
# CMO-only bud, don't add more.
id: HandheldCrewMonitor
id: HealingToolbox
name: healing toolbox
description: A powerful toolbox imbued with robust energy. It can heal your wounds and fill you with murderous intent.
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
components:
- type: Sprite
sprite: Objects/Specific/Medical/healing_toolbox.rsi
id: ResearchDiskDebug
name: research point disk
suffix: DEBUG, DO NOT MAP
+ categories: [ DoNotMap ]
description: A disk for the R&D server containing all the points you could ever need.
components:
- type: ResearchDisk
parent: BaseBallBat
id: WeaponMeleeKnockbackStick
description: And then he spleefed all over.
- suffix: Do not map
+ categories: [ DoNotMap ]
components:
- type: MeleeThrowOnHit
- type: MeleeWeapon
id: WeaponMeleeToolboxRobust
name: robust toolbox
description: A tider's weapon.
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
components:
- type: Sprite
sprite: Objects/Tools/Toolboxes/toolbox_red.rsi
# Putting this as "DO NOT MAP" until the performance issues are fixed.
# And it's more fleshed out.
suffix: TESTING, DO NOT MAP
+ categories: [ DoNotMap ]
components:
- type: Sprite
layers:
- type: entity
id: HolopadHologram
name: hologram
- categories: [ HideSpawnMenu ]
- suffix: DO NOT MAP
+ categories: [ HideSpawnMenu, DoNotMap ]
components:
- type: Transform
anchored: true
parent: [ ShuttleGunBase, ConstructibleMachine]
name: LSE-400c "Svalinn machine gun"
description: Basic stationary laser unit. Effective against live targets and electronics. Uses regular power cells to fire, and has an extremely high rate of fire.
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
components:
- type: Sprite
sprite: Objects/Weapons/Guns/Shuttles/laser.rsi
parent: [ ShuttleGunBase, ConstructibleMachine]
name: LSE-1200c "Perforator"
description: Advanced stationary laser unit. Annihilates electronics and is extremely dangerous to health! Uses the power cage to fire.
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
components:
- type: Sprite
sprite: Objects/Weapons/Guns/Shuttles/laser.rsi
parent: [ShuttleGunBase, ConstructibleMachine]
name: EXP-320g "Friendship"
description: A small stationary grenade launcher that holds 2 grenades.
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
components:
- type: Sprite
sprite: Objects/Weapons/Guns/Shuttles/launcher.rsi
parent: [ShuttleGunBase, ConstructibleMachine]
name: EXP-2100g "Duster"
description: A powerful stationary grenade launcher. A cartridge is required for use.
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
components:
- type: Sprite
sprite: Objects/Weapons/Guns/Shuttles/launcher.rsi
parent: [ ShuttleGunBase, ConstructibleMachine]
name: PTK-800 "Matter Dematerializer"
description: Salvage stationary mining turret. Gradually accumulates charges on its own, extremely effective for asteroid excavation.
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
components:
- type: Sprite
sprite: Objects/Weapons/Guns/Shuttles/kinetic.rsi
name: janitorial bomb suit closet
parent: ClosetSteelBase
description: It's a storage unit for janitorial explosion-protective suits.
- suffix: DO NOT MAP
+ categories: [ DoNotMap ]
components:
- type: Appearance
- type: EntityStorageVisuals
- type: entityCategory
id: Mapping
name: entity-category-name-mapping
+
+- type: entityCategory
+ id: DoNotMap
+ name: entity-category-name-donotmap
+ suffix: entity-category-suffix-donotmap