Station AI customizations (#34501)
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com> Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
@@ -22,3 +22,25 @@ toggle-light = Toggle light
|
||||
ai-device-not-responding = Device is not responding
|
||||
|
||||
ai-consciousness-download-warning = Your consciousness is being downloaded.
|
||||
|
||||
# UI
|
||||
station-ai-customization-menu = AI customization
|
||||
station-ai-customization-categories = Categories
|
||||
station-ai-customization-options = Options (choice of one)
|
||||
station-ai-customization-core = AI core displays
|
||||
station-ai-customization-hologram = Holographic avatars
|
||||
|
||||
# Customizations
|
||||
station-ai-icon-ai = Ghost in the machine
|
||||
station-ai-icon-angel = Guardian angel
|
||||
station-ai-icon-bliss = Simpler times
|
||||
station-ai-icon-clown = Clownin' around
|
||||
station-ai-icon-dorf = Adventure awaits
|
||||
station-ai-icon-heartline = Lifeline
|
||||
station-ai-icon-smiley = All smiles
|
||||
|
||||
station-ai-hologram-female = Female appearance
|
||||
station-ai-hologram-male = Male appearance
|
||||
station-ai-hologram-face = Disembodied head
|
||||
station-ai-hologram-cat = Cat form
|
||||
station-ai-hologram-dog = Corgi form
|
||||
163
Resources/Prototypes/AppearanceCustomization/station_ai.yml
Normal file
@@ -0,0 +1,163 @@
|
||||
# Groups
|
||||
- type: stationAiCustomizationGroup
|
||||
id: StationAiCoreIconography
|
||||
name: station-ai-customization-core
|
||||
category: CoreIconography
|
||||
protoIds:
|
||||
- StationAiIconAi
|
||||
- StationAiIconAngel
|
||||
- StationAiIconBliss
|
||||
- StationAiIconClown
|
||||
- StationAiIconDorf
|
||||
- StationAiIconHeartline
|
||||
- StationAiIconSmiley
|
||||
|
||||
- type: stationAiCustomizationGroup
|
||||
id: StationAiHolograms
|
||||
name: station-ai-customization-hologram
|
||||
category: Hologram
|
||||
protoIds:
|
||||
- StationAiHologramFemale
|
||||
- StationAiHologramMale
|
||||
- StationAiHologramFace
|
||||
- StationAiHologramCat
|
||||
- StationAiHologramDog
|
||||
|
||||
# Iconography
|
||||
- type: stationAiCustomization
|
||||
abstract: true
|
||||
id: StationAiIconBase
|
||||
previewKey: Occupied
|
||||
previewBackground:
|
||||
sprite: Mobs/Silicon/station_ai.rsi
|
||||
state: base
|
||||
|
||||
- type: stationAiCustomization
|
||||
parent: StationAiIconBase
|
||||
id: StationAiIconAi
|
||||
name: station-ai-icon-ai
|
||||
layerData:
|
||||
Occupied:
|
||||
sprite: Mobs/Silicon/station_ai.rsi
|
||||
state: ai
|
||||
Dead:
|
||||
sprite: Mobs/Silicon/station_ai.rsi
|
||||
state: ai_dead
|
||||
|
||||
- type: stationAiCustomization
|
||||
parent: StationAiIconBase
|
||||
id: StationAiIconAngel
|
||||
name: station-ai-icon-angel
|
||||
layerData:
|
||||
Occupied:
|
||||
sprite: Mobs/Silicon/station_ai.rsi
|
||||
state: ai_angel
|
||||
Dead:
|
||||
sprite: Mobs/Silicon/station_ai.rsi
|
||||
state: ai_angel_dead
|
||||
|
||||
- type: stationAiCustomization
|
||||
parent: StationAiIconBase
|
||||
id: StationAiIconBliss
|
||||
name: station-ai-icon-bliss
|
||||
layerData:
|
||||
Occupied:
|
||||
sprite: Mobs/Silicon/station_ai.rsi
|
||||
state: ai_bliss
|
||||
Dead:
|
||||
sprite: Mobs/Silicon/station_ai.rsi
|
||||
state: ai_dead
|
||||
|
||||
- type: stationAiCustomization
|
||||
parent: StationAiIconBase
|
||||
id: StationAiIconClown
|
||||
name: station-ai-icon-clown
|
||||
layerData:
|
||||
Occupied:
|
||||
sprite: Mobs/Silicon/station_ai.rsi
|
||||
state: ai_clown
|
||||
Dead:
|
||||
sprite: Mobs/Silicon/station_ai.rsi
|
||||
state: ai_clown_dead
|
||||
|
||||
- type: stationAiCustomization
|
||||
parent: StationAiIconBase
|
||||
id: StationAiIconDorf
|
||||
name: station-ai-icon-dorf
|
||||
layerData:
|
||||
Occupied:
|
||||
sprite: Mobs/Silicon/station_ai.rsi
|
||||
state: ai_dorf
|
||||
Dead:
|
||||
sprite: Mobs/Silicon/station_ai.rsi
|
||||
state: ai_dead
|
||||
|
||||
- type: stationAiCustomization
|
||||
parent: StationAiIconBase
|
||||
id: StationAiIconHeartline
|
||||
name: station-ai-icon-heartline
|
||||
layerData:
|
||||
Occupied:
|
||||
sprite: Mobs/Silicon/station_ai.rsi
|
||||
state: "ai_heartline"
|
||||
Dead:
|
||||
sprite: Mobs/Silicon/station_ai.rsi
|
||||
state: "ai_heartline_dead"
|
||||
|
||||
- type: stationAiCustomization
|
||||
parent: StationAiIconBase
|
||||
id: StationAiIconSmiley
|
||||
name: station-ai-icon-smiley
|
||||
layerData:
|
||||
Occupied:
|
||||
sprite: Mobs/Silicon/station_ai.rsi
|
||||
state: "ai_smiley"
|
||||
Dead:
|
||||
sprite: Mobs/Silicon/station_ai.rsi
|
||||
state: "ai_dead"
|
||||
|
||||
# Holograms
|
||||
- type: stationAiCustomization
|
||||
id: StationAiHologramFemale
|
||||
name: station-ai-hologram-female
|
||||
previewKey: Hologram
|
||||
layerData:
|
||||
Hologram:
|
||||
sprite: Mobs/Silicon/holograms.rsi
|
||||
state: ai_female
|
||||
|
||||
- type: stationAiCustomization
|
||||
id: StationAiHologramMale
|
||||
name: station-ai-hologram-male
|
||||
previewKey: Hologram
|
||||
layerData:
|
||||
Hologram:
|
||||
sprite: Mobs/Silicon/holograms.rsi
|
||||
state: ai_male
|
||||
|
||||
- type: stationAiCustomization
|
||||
id: StationAiHologramFace
|
||||
name: station-ai-hologram-face
|
||||
previewKey: Hologram
|
||||
layerData:
|
||||
Hologram:
|
||||
sprite: Mobs/Silicon/holograms.rsi
|
||||
state: ai_face
|
||||
|
||||
- type: stationAiCustomization
|
||||
id: StationAiHologramCat
|
||||
name: station-ai-hologram-cat
|
||||
previewKey: Hologram
|
||||
layerData:
|
||||
Hologram:
|
||||
sprite: Mobs/Silicon/holograms.rsi
|
||||
state: ai_cat
|
||||
|
||||
- type: stationAiCustomization
|
||||
id: StationAiHologramDog
|
||||
name: station-ai-hologram-dog
|
||||
previewKey: Hologram
|
||||
layerData:
|
||||
Hologram:
|
||||
sprite: Mobs/Silicon/holograms.rsi
|
||||
state: ai_dog
|
||||
@@ -70,10 +70,6 @@
|
||||
canShuttle: false
|
||||
title: comms-console-announcement-title-station-ai
|
||||
color: "#5ed7aa"
|
||||
- type: HolographicAvatar
|
||||
layerData:
|
||||
- sprite: Mobs/Silicon/station_ai.rsi
|
||||
state: default
|
||||
- type: ShowJobIcons
|
||||
|
||||
- type: entity
|
||||
@@ -202,8 +198,11 @@
|
||||
layers:
|
||||
- state: base
|
||||
- state: ai_empty
|
||||
map: ["unshaded"]
|
||||
shader: unshaded
|
||||
- state: ai
|
||||
map: ["enum.StationAiVisualState.Key"]
|
||||
shader: unshaded
|
||||
visible: false
|
||||
- type: Appearance
|
||||
- type: InteractionPopup
|
||||
interactSuccessString: petting-success-station-ai
|
||||
@@ -211,12 +210,6 @@
|
||||
messagePerceivedByOthers: petting-success-station-ai-others # Otherwise AI cannot tell its being pet as It's just a brain inside of the core, not the core itself.
|
||||
interactSuccessSound:
|
||||
path: /Audio/Ambience/Objects/periodic_beep.ogg
|
||||
- type: GenericVisualizer
|
||||
visuals:
|
||||
enum.StationAiVisualState.Key:
|
||||
unshaded:
|
||||
Empty: { state: ai_empty }
|
||||
Occupied: { state: ai }
|
||||
- type: Telephone
|
||||
compatibleRanges:
|
||||
- Grid
|
||||
@@ -230,10 +223,12 @@
|
||||
- type: StationAiWhitelist
|
||||
- type: UserInterface
|
||||
interfaces:
|
||||
enum.HolopadUiKey.AiRequestWindow:
|
||||
type: HolopadBoundUserInterface
|
||||
enum.HolopadUiKey.AiActionWindow:
|
||||
type: HolopadBoundUserInterface
|
||||
enum.HolopadUiKey.AiRequestWindow:
|
||||
type: HolopadBoundUserInterface
|
||||
enum.HolopadUiKey.AiActionWindow:
|
||||
type: HolopadBoundUserInterface
|
||||
enum.StationAiCustomizationUiKey.Key:
|
||||
type: StationAiCustomizationBoundUserInterface
|
||||
|
||||
# The job-ready version of an AI spawn.
|
||||
- type: entity
|
||||
@@ -244,12 +239,6 @@
|
||||
- type: ContainerSpawnPoint
|
||||
containerId: station_ai_mind_slot
|
||||
job: StationAi
|
||||
- type: Sprite
|
||||
sprite: Mobs/Silicon/station_ai.rsi
|
||||
layers:
|
||||
- state: base
|
||||
- state: ai
|
||||
shader: unshaded
|
||||
|
||||
# The actual brain inside the core
|
||||
- type: entity
|
||||
@@ -294,6 +283,14 @@
|
||||
- type: StartingMindRole
|
||||
mindRole: "MindRoleSiliconBrain"
|
||||
silent: true
|
||||
- type: StationAiCustomization
|
||||
protoIds:
|
||||
StationAiCoreIconography: StationAiIconAi
|
||||
StationAiHolograms: StationAiHologramFemale
|
||||
- type: HolographicAvatar
|
||||
layerData:
|
||||
- sprite: Mobs/Silicon/holograms.rsi
|
||||
state: ai_female
|
||||
- type: NameIdentifier
|
||||
group: StationAi
|
||||
|
||||
|
||||
BIN
Resources/Textures/Mobs/Silicon/holograms.rsi/ai_cat.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
Resources/Textures/Mobs/Silicon/holograms.rsi/ai_dog.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
Resources/Textures/Mobs/Silicon/holograms.rsi/ai_face.png
Normal file
|
After Width: | Height: | Size: 625 B |
BIN
Resources/Textures/Mobs/Silicon/holograms.rsi/ai_female.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
Resources/Textures/Mobs/Silicon/holograms.rsi/ai_male.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
38
Resources/Textures/Mobs/Silicon/holograms.rsi/meta.json
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Taken from vgstation at https://github.com/vgstation-coders/vgstation13/blob/e2923df112df8aa025846d0764697bad6506586a/icons/mob/AI.dmi - modified by chromiumboy.",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "ai_female"
|
||||
},
|
||||
{
|
||||
"name": "ai_male"
|
||||
},
|
||||
{
|
||||
"name": "ai_face",
|
||||
"delays": [
|
||||
[
|
||||
2.3,
|
||||
0.2
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "ai_cat",
|
||||
"delays": [
|
||||
[
|
||||
0.75,
|
||||
0.75
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "ai_dog"
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
Resources/Textures/Mobs/Silicon/station_ai.rsi/ai_angel.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
Resources/Textures/Mobs/Silicon/station_ai.rsi/ai_angel_dead.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
Resources/Textures/Mobs/Silicon/station_ai.rsi/ai_bliss.png
Normal file
|
After Width: | Height: | Size: 4.6 KiB |
BIN
Resources/Textures/Mobs/Silicon/station_ai.rsi/ai_clown.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
Resources/Textures/Mobs/Silicon/station_ai.rsi/ai_clown_dead.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
Resources/Textures/Mobs/Silicon/station_ai.rsi/ai_dorf.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
Resources/Textures/Mobs/Silicon/station_ai.rsi/ai_heartline.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 7.1 KiB |
BIN
Resources/Textures/Mobs/Silicon/station_ai.rsi/ai_smiley.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
@@ -1,61 +1,215 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/blob/2a19963297f91efb452dbb5c1d4eb28a14776b0a/icons/mob/silicon/ai.dmi",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "ai",
|
||||
"delays": [
|
||||
[
|
||||
0.2,
|
||||
0.2,
|
||||
0.1,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.1
|
||||
]
|
||||
]
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Taken from vgstation at https://github.com/vgstation-coders/vgstation13/blob/e2923df112df8aa025846d0764697bad6506586a/icons/mob/AI.dmi - modified by chromiumboy.",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
{
|
||||
"name": "ai_camera",
|
||||
"delays": [
|
||||
[
|
||||
1.0,
|
||||
1.0
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "ai_dead"
|
||||
},
|
||||
{
|
||||
"name": "ai_empty",
|
||||
"delays": [
|
||||
[
|
||||
0.7,
|
||||
0.7
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "default",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "base"
|
||||
}
|
||||
]
|
||||
}
|
||||
"states": [
|
||||
{
|
||||
"name": "ai",
|
||||
"delays": [
|
||||
[
|
||||
0.2,
|
||||
0.2,
|
||||
0.1,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.1
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "ai_angel",
|
||||
"delays": [
|
||||
[
|
||||
0.08,
|
||||
0.08,
|
||||
0.08,
|
||||
0.08,
|
||||
0.08,
|
||||
0.08
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "ai_angel_dead",
|
||||
"delays": [
|
||||
[
|
||||
1.00,
|
||||
0.08,
|
||||
0.50,
|
||||
0.20
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "ai_bliss"
|
||||
},
|
||||
{
|
||||
"name": "ai_clown",
|
||||
"delays": [
|
||||
[
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "ai_clown_dead",
|
||||
"delays": [
|
||||
[
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2,
|
||||
0.2
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "ai_dorf",
|
||||
"delays": [
|
||||
[
|
||||
0.5,
|
||||
0.5
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "ai_heartline",
|
||||
"delays": [
|
||||
[
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "ai_heartline_dead",
|
||||
"delays": [
|
||||
[
|
||||
0.15,
|
||||
0.15,
|
||||
0.15,
|
||||
0.15,
|
||||
0.15,
|
||||
0.15,
|
||||
0.15,
|
||||
0.15,
|
||||
0.15,
|
||||
0.15,
|
||||
0.15,
|
||||
0.15,
|
||||
0.15
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "ai_smiley",
|
||||
"delays": [
|
||||
[
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "ai_camera",
|
||||
"delays": [
|
||||
[
|
||||
1.0,
|
||||
1.0
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "ai_dead"
|
||||
},
|
||||
{
|
||||
"name": "ai_empty",
|
||||
"delays": [
|
||||
[
|
||||
0.7,
|
||||
0.7
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "default",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "base"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||