Station AI customizations (#34501)

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
This commit is contained in:
chromiumboy
2025-05-13 03:50:43 -05:00
committed by GitHub
parent 0eeb46cf9e
commit 7ac67ebf8c
29 changed files with 974 additions and 101 deletions

View File

@@ -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

View 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

View File

@@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 625 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

View 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"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

View File

@@ -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"
}
]
}