diff --git a/Content.Server/ADT/LanguagePanel/LanguagePanelSystem.cs b/Content.Server/ADT/LanguagePanel/LanguagePanelSystem.cs index abfa734a797..634302a9a84 100644 --- a/Content.Server/ADT/LanguagePanel/LanguagePanelSystem.cs +++ b/Content.Server/ADT/LanguagePanel/LanguagePanelSystem.cs @@ -7,6 +7,7 @@ using Content.Shared.ADT.LanguagePanel; using Content.Shared.Language; using Content.Server.Language; +using Content.Shared.Language.Components; namespace Content.Server.ADT.LanguagePanel; @@ -52,6 +53,11 @@ private void OnLangAction(EntityUid uid, LanguagePanelComponent component, OpenL { ev.Languages.Add(lang); } + if (EntityManager.TryGetComponent(uid, out var implantedTranslatorComponent)) + foreach (var lang in implantedTranslatorComponent.SpokenLanguages) + { + ev.Languages.Add(lang); + } RaiseNetworkEvent(ev, player); } diff --git a/Content.Shared/ADT/LanguagePanel/LanguagePanelComponent.cs b/Content.Shared/ADT/LanguagePanel/LanguagePanelComponent.cs index 7fede3b598e..feabc2b9840 100644 --- a/Content.Shared/ADT/LanguagePanel/LanguagePanelComponent.cs +++ b/Content.Shared/ADT/LanguagePanel/LanguagePanelComponent.cs @@ -13,7 +13,7 @@ namespace Content.Shared.ADT.LanguagePanel; /// This component describes ActionEntity "ActionOpenEmotes". This class is a part of code which is responsible for using RadialUiController. /// [RegisterComponent, NetworkedComponent] -public sealed partial class LanguagePanelComponent: Component +public sealed partial class LanguagePanelComponent : Component { [DataField] public EntProtoId OpenLanguagesAction = "ActionOpenLanguagesM"; diff --git a/Resources/Prototypes/ADT/Languages/languages.yml b/Resources/Prototypes/ADT/Languages/languages.yml index 10dde690b5b..8b377d83516 100644 --- a/Resources/Prototypes/ADT/Languages/languages.yml +++ b/Resources/Prototypes/ADT/Languages/languages.yml @@ -8,6 +8,7 @@ # The common galactic tongue. - type: language + # TODO: icon id: GalacticCommon obfuscateSyllables: true replacement: @@ -33,6 +34,7 @@ # Spoken by slimes. - type: language + # TODO: icon id: Bubblish obfuscateSyllables: true replacement: @@ -110,6 +112,7 @@ # Spoken by dionas. - type: language + # TODO: icon id: RootSpeak obfuscateSyllables: true replacement: @@ -177,6 +180,7 @@ # A mess of broken Japanese, spoken by Felinds and Oni - type: language + icon: { sprite: ADT/Interface/Actions/language_panel.rsi, state: nekomimetic } # language panel icon id: Nekomimetic obfuscateSyllables: true replacement: @@ -231,6 +235,7 @@ # Spoken by the Lizard race. - type: language + icon: ADT/Interface/Actions/language_panel.rsi/draconic.png # language panel icon id: Draconic obfuscateSyllables: true replacement: @@ -321,6 +326,7 @@ # Spoken by the Vulpkanin race. - type: language + # TODO: icon id: Canilunzt obfuscateSyllables: true replacement: @@ -385,6 +391,7 @@ # Spoken by the Tajaran race. - type: language + # TODO: icon id: SikTaj obfuscateSyllables: true replacement: @@ -449,6 +456,7 @@ # Spoken by the Nian race. - type: language + icon: { sprite: ADT/Interface/Actions/language_panel.rsi, state: draconic } # language panel icon id: Nian obfuscateSyllables: true replacement: @@ -483,6 +491,7 @@ # Spoken by the Novakid race. - type: language + icon: { sprite: ADT/Interface/Actions/language_panel.rsi, state: fire } # language panel icon id: Fire obfuscateSyllables: true replacement: @@ -560,6 +569,7 @@ - ССС # IPC - type: language + icon: { sprite: ADT/Interface/Actions/language_panel.rsi, state: robot_talk } # language panel icon id: RobotTalk obfuscateSyllables: true replacement: @@ -648,6 +658,7 @@ # Spoken by the Drask race. - type: language + icon: { sprite: ADT/Interface/Actions/language_panel.rsi, state: drask } # language panel icon id: Drask obfuscateSyllables: true replacement: @@ -671,6 +682,7 @@ # Spoken by the Ursus race. - type: language + icon: { sprite: ADT/Interface/Actions/language_panel.rsi, state: urs } # language panel icon id: Urs obfuscateSyllables: true replacement: diff --git a/Resources/Prototypes/Entities/Mobs/Species/base.yml b/Resources/Prototypes/Entities/Mobs/Species/base.yml index f25e3d3d100..6cc44bb687d 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/base.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/base.yml @@ -224,7 +224,7 @@ - type: Emoting - type: EmoteAnimation - type: EmotePanel - - type: LanguagePanel # ADT radial-language-panel + - type: LanguagePanel # ADT radial-language-panel, [radial language panel] - type: BodyEmotes soundsId: GeneralBodyEmotes - type: Grammar diff --git a/Resources/Textures/ADT/Interface/Actions/language_panel.rsi/draconic.png b/Resources/Textures/ADT/Interface/Actions/language_panel.rsi/draconic.png new file mode 100644 index 00000000000..37bee9b1a8f Binary files /dev/null and b/Resources/Textures/ADT/Interface/Actions/language_panel.rsi/draconic.png differ diff --git a/Resources/Textures/ADT/Interface/Actions/language_panel.rsi/fire.png b/Resources/Textures/ADT/Interface/Actions/language_panel.rsi/fire.png new file mode 100644 index 00000000000..65f711e58d4 Binary files /dev/null and b/Resources/Textures/ADT/Interface/Actions/language_panel.rsi/fire.png differ diff --git a/Resources/Textures/ADT/Interface/Actions/language_panel.rsi/human.png b/Resources/Textures/ADT/Interface/Actions/language_panel.rsi/human.png new file mode 100644 index 00000000000..74bc97740fd Binary files /dev/null and b/Resources/Textures/ADT/Interface/Actions/language_panel.rsi/human.png differ diff --git a/Resources/Textures/ADT/Interface/Actions/language_panel.rsi/meta.json b/Resources/Textures/ADT/Interface/Actions/language_panel.rsi/meta.json new file mode 100644 index 00000000000..f6f2d4fb55b --- /dev/null +++ b/Resources/Textures/ADT/Interface/Actions/language_panel.rsi/meta.json @@ -0,0 +1,35 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "by modern-nm, radial language panel", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "felenid" + }, + { + "name": "human" + }, + { + "name": "robot_talk" + }, + { + "name": "nian" + }, + { + "name": "fire" + }, + { + "name": "shadowkin" + }, + { + "name": "draconic" + }, + { + "name": "urs" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/ADT/Interface/Actions/language_panel.rsi/nekomimetic.png b/Resources/Textures/ADT/Interface/Actions/language_panel.rsi/nekomimetic.png new file mode 100644 index 00000000000..1d8bcdc975b Binary files /dev/null and b/Resources/Textures/ADT/Interface/Actions/language_panel.rsi/nekomimetic.png differ diff --git a/Resources/Textures/ADT/Interface/Actions/language_panel.rsi/nian.png b/Resources/Textures/ADT/Interface/Actions/language_panel.rsi/nian.png new file mode 100644 index 00000000000..a2e52b3783d Binary files /dev/null and b/Resources/Textures/ADT/Interface/Actions/language_panel.rsi/nian.png differ diff --git a/Resources/Textures/ADT/Interface/Actions/language_panel.rsi/robot_talk.png b/Resources/Textures/ADT/Interface/Actions/language_panel.rsi/robot_talk.png new file mode 100644 index 00000000000..25f96ab8e40 Binary files /dev/null and b/Resources/Textures/ADT/Interface/Actions/language_panel.rsi/robot_talk.png differ diff --git a/Resources/Textures/ADT/Interface/Actions/language_panel.rsi/shadowkin.png b/Resources/Textures/ADT/Interface/Actions/language_panel.rsi/shadowkin.png new file mode 100644 index 00000000000..facb832c1d8 Binary files /dev/null and b/Resources/Textures/ADT/Interface/Actions/language_panel.rsi/shadowkin.png differ diff --git a/Resources/Textures/ADT/Interface/Actions/language_panel.rsi/urs.png b/Resources/Textures/ADT/Interface/Actions/language_panel.rsi/urs.png new file mode 100644 index 00000000000..5193a95aab2 Binary files /dev/null and b/Resources/Textures/ADT/Interface/Actions/language_panel.rsi/urs.png differ