[DataField("whitelist")]
public EntityWhitelist? Whitelist;
+ [DataField("blacklist")]
+ public EntityWhitelist? Blacklist;
+
[DataField("insertSound")]
public SoundSpecifier InsertSound = new SoundPathSpecifier("/Audio/Weapons/Guns/MagIn/revolver_magin.ogg");
if (!swap && slot.HasItem)
return false;
- if (slot.Whitelist != null && !slot.Whitelist.IsValid(usedUid))
+ if ((slot.Whitelist != null && !slot.Whitelist.IsValid(usedUid)) || (slot.Blacklist != null && slot.Blacklist.IsValid(usedUid)))
{
if (_netManager.IsClient && _timing.IsFirstTimePredicted && popup.HasValue && !string.IsNullOrWhiteSpace(slot.WhitelistFailPopup))
_popupSystem.PopupEntity(Loc.GetString(slot.WhitelistFailPopup), uid, popup.Value);
pai-system-role-name-syndicate = Syndicate personal ai
pai-system-role-description-syndicate = Be someone's Syndicate pal!
(Memories *not* included.)
+pai-system-role-name-potato = potato artificial intelligence
+pai-system-role-description-potato = It's a toy for children. And now you live in it.
pai-system-wipe-device-verb-text = Remove pAI
pai-system-wiped-device = The pAI was wiped from the device.
reagents:
- ReagentId: JuicePotato
Quantity: 10
+ - type: Tag
+ tags:
+ - Potato
- type: entity
name: tomato
- state: pai-base
- state: syndicate-pai-off-overlay
shader: unshaded
+ map: ["screen"]
- type: ToggleableGhostRole
roleName: pai-system-role-name-syndicate
roleDescription: pai-system-role-description-syndicate
Searching: { state: syndicate-pai-searching-overlay }
On: { state: syndicate-pai-on-overlay }
+- type: entity
+ parent: PersonalAI
+ id: PotatoAI
+ name: potato artificial intelligence
+ description: It's a potato. You forced it to be sentient, you monster.
+ components:
+ - type: Sprite
+ sprite: Objects/Fun/pai.rsi
+ layers:
+ - state: potato-base
+ - state: potato-off-overlay
+ shader: unshaded
+ map: ["screen"]
+ - type: ToggleableGhostRole
+ roleName: pai-system-role-name-potato
+ roleDescription: pai-system-role-description-potato
+ - type: Appearance
+ - type: GenericVisualizer
+ visuals:
+ enum.ToggleableGhostRoleVisuals.Status:
+ screen:
+ Off: { state: potato-off-overlay }
+ Searching: { state: potato-searching-overlay }
+ On: { state: potato-on-overlay }
+ - type: Construction
+ graph: PotatoAI
+ node: potatoai
+
- type: entity
id: ActionPAIPlayMidi
name: Play MIDI
--- /dev/null
+- type: entity
+ id: PotatoAIChip
+ name: supercompact AI chip
+ parent: BaseItem
+ description: This high-tech AI chip requires a voltage of exactly 1.1V to function correctly.
+ components:
+ - type: Sprite
+ sprite: Objects/Misc/potatoai_chip.rsi
+ state: icon
+ - type: Item
+ size: 3
+ - type: Tag
+ tags:
+ - SmallAIChip
+ - type: Construction
+ graph: PotatoAIChip
+ node: potatoaichip
\ No newline at end of file
layers:
- state: potato
- type: Battery
- maxCharge: 200
- startingCharge: 200
+ maxCharge: 70
+ startingCharge: 70
+ - type: Tag
+ tags:
+ - DroneUsable
+ - PotatoBattery
+ - type: Construction
+ graph: PowerCellPotato
+ node: potatobattery
- type: entity
name: small-capacity power cell
base:
Off: { state: posibrain }
Searching: { state: posibrain-searching }
- On: { state: posibrain-occupied }
+ On: { state: posibrain-occupied }
\ No newline at end of file
whitelist:
components:
- PowerCell
+ blacklist:
+ tags:
+ - PotatoBattery
- type: entity
parent: BaseItemRecharger
--- /dev/null
+- type: constructionGraph
+ id: PowerCellPotato
+ start: start
+ graph:
+ - node: start
+ edges:
+ - to: potatobattery
+ steps:
+ - tag: Potato
+ name: a potato
+ icon:
+ sprite: Objects/Specific/Hydroponics/potato.rsi
+ state: produce
+ doAfter: 1
+ - material: MetalRod
+ amount: 2
+ doAfter: 1
+ - material: Cable
+ amount: 1
+ doAfter: 1
+ - node: potatobattery
+ entity: PowerCellPotato
+
+- type: constructionGraph
+ id: PotatoAI
+ start: start
+ graph:
+ - node: start
+ edges:
+ - to: potatoai
+ steps:
+ - tag: PotatoBattery
+ name: a potato battery
+ icon:
+ sprite: Objects/Power/power_cells.rsi
+ state: potato
+ doAfter: 1
+ - tag: SmallAIChip
+ name: a super-compact AI chip
+ icon:
+ sprite: Objects/Misc/potatoai_chip.rsi
+ state: icon
+ - node: potatoai
+ entity: PotatoAI
+
+- type: constructionGraph
+ id: PotatoAIChip
+ start: start
+ graph:
+ - node: start
+ edges:
+ - to: potatoaichip
+ steps:
+ - material: Steel
+ amount: 1
+ doAfter: 1
+ - material: Glass
+ amount: 1
+ doAfter: 1
+ - material: Cable
+ amount: 2
+ doAfter: 1
+ - tag: CapacitorStockPart
+ name: capacitor
+ icon:
+ sprite: Objects/Misc/stock_parts.rsi
+ state: capacitor
+ - tag: CapacitorStockPart
+ name: capacitor
+ icon:
+ sprite: Objects/Misc/stock_parts.rsi
+ state: capacitor
+ - node: potatoaichip
+ entity: PotatoAIChip
\ No newline at end of file
--- /dev/null
+- type: construction
+ name: potato battery
+ id: PowerCellPotato
+ graph: PowerCellPotato
+ startNode: start
+ targetNode: potatobattery
+ category: construction-category-misc
+ description: A truly ingenious source of power.
+ icon: { sprite: Objects/Power/power_cells.rsi, state: potato }
+ objectType: Item
+
+- type: construction
+ name: potato artificial intelligence
+ id: PotatoAI
+ graph: PotatoAI
+ startNode: start
+ targetNode: potatoai
+ category: construction-category-misc
+ description: The potato happens to be the perfect power source for this chip.
+ icon: { sprite: Objects/Fun/pai.rsi, state: icon-potato-off }
+ objectType: Item
+
+- type: construction
+ name: supercompact AI chip
+ id: PotatoAIChip
+ graph: PotatoAIChip
+ startNode: start
+ targetNode: potatoaichip
+ category: construction-category-misc
+ description: A masterfully(?) crafted AI chip, requiring a similarly improvised power source.
+ icon: { sprite: Objects/Misc/potatoai_chip.rsi, state: icon }
+ objectType: Item
\ No newline at end of file
- type: Tag
id: PlushieSharkGrey
+- type: Tag
+ id: Potato
+
+- type: Tag
+ id: PotatoBattery
+
- type: Tag
id: PowerCellSmall
- type: Tag
id: SkeletonMotorcycleKeys
+- type: Tag
+ id: SmallAIChip
+
- type: Tag
id: SmallMech
{
"version": 1,
"license": "CC-BY-SA-3.0",
- "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/9ddb8cf084e292571d4e9c79745db25befbd82fe. pai-searching-overlay heavily modified. Syndicate variants by fedKotikeD",
+ "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/9ddb8cf084e292571d4e9c79745db25befbd82fe. pai-searching-overlay heavily modified. Syndicate variants by fedKotikeD, and potato by Doru991",
"size": {
"x": 32,
"y": 32
{
"name": "pai-base"
},
+ {
+ "name": "potato-base"
+ },
{
"name": "pai-off-overlay"
},
0.8
]
]
+ },
+ {
+ "name": "icon-potato-off"
+ },
+ {
+ "name": "potato-off-overlay"
+ },
+ {
+ "name": "potato-on-overlay"
+ },
+ {
+ "name": "potato-searching-overlay"
}
]
}
--- /dev/null
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Drawn by @Doru991 for SS14",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ }
+ ]
+}
"y": 32
},
"license": "CC-BY-SA-3.0",
- "copyright": "https://github.com/tgstation/tgstation/commit/7dcdbc1468ffdc8689b984cb6b181d48ae41dbf2",
+ "copyright": "https://github.com/tgstation/tgstation/commit/7dcdbc1468ffdc8689b984cb6b181d48ae41dbf2, potato based on https://github.com/vgstation-coders/vgstation13/commit/1dbcf389b0ec6b2c51b002df5fef8dd1519f8068 edited by @Doru991",
"states": [
{
"name": "potato"
]
}
]
-}
\ No newline at end of file
+}