Commit Graph

18 Commits

Author SHA1 Message Date
Bombermansam 6d4e2327a0 Speech Components are now Multilingual (#4018)
## About The Pull Request
You can now define a language for speech components to output in. They
are no longer limited to just outputting strings in Galactic Common.
This does not give access to ALL languages, for example Codespeak,
Cultspeak and Ashtongue, so you will still need to earn the privilege to
speak in those languages.
## Why It's Good For The Game
Many people complained that speech components could only output in
Galactic Common. This PR will make them happy.
Speech components are most often used for Universal Translator Circuits,
this PR will actually make them useful for such and allow for two way
communication between individuals if the circuit is made correctly.
## Proof Of Testing
It compiles and the valid languages were able to be observed while using
the speech component.
<details>
<summary>Screenshots/Videos</summary>


![image](https://github.com/user-attachments/assets/d68e0a9f-5dcb-48f4-b804-6753f545d480)


![image](https://github.com/user-attachments/assets/aab4e882-453a-4722-afbe-639cf05cbd0e)


![image](https://github.com/user-attachments/assets/de756797-900d-41b4-9194-cdd42a19dfae)


![image](https://github.com/user-attachments/assets/fe1ef8ab-c8eb-470e-8516-58c27696a9a6)


![image](https://github.com/user-attachments/assets/45e7b7ea-2cce-4b65-9359-177a3bd014ee)


</details>

## Changelog
🆑
add: Language Port to Speech Components
/🆑
## Acknowledgements
Thank you very much to Artur for helping me make the list which was a
pivotal part of this PR. I was tearing my hair out trying to make it.
They saved me much time and hair.
2025-06-16 13:44:19 -07:00
Spaghetti-bit 796583b7f6 Adds the Color component to circuitry (#3894)
## About The Pull Request

Adds a new component to circuitry that allows the designer to change the
color of text outputted by the speech and BCI core components. Unlocked
on the circuitry node.

BCI Core and Speech components are given a new input: "Color" as a
string.
> Said string is checked against a global key:value pair list to verify
that it is a valid span. This list is cherry picked and very easy to
modify later on if anyone wishes to add more spans to the list later on.
> Current colors:
> Default, none
> Green, common
> Purple, science
> Yellow, command
> Red, sec
> Blue, medical
> Orange, engineering
> Brown, cargo
> Maroon, syndicate
> Pink, ai
## Why It's Good For The Game

This was made on request of a few people who do circuitry alot and tend
to have the same feedback; "You hear a robotic voice..." message being
easily missed and wanted to add some color to it, rather than hardcoding
the color I added a new component so that people would have the freedom
to change their text based off of circuits and other logic in their
creations.
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>

BCI Brain Computer example with dropdown:


![image](https://github.com/user-attachments/assets/75071cb2-d78f-45c0-9342-71c68abb2140)

Colors:


![image](https://github.com/user-attachments/assets/f50990c3-5f45-45fa-a1cf-0a6aa2dda7ac)


![image](https://github.com/user-attachments/assets/a5c635e4-f621-4168-9d2f-921cfd3d8b85)


![image](https://github.com/user-attachments/assets/b38d1391-771b-4cea-8157-4dc14af24ca0)


![image](https://github.com/user-attachments/assets/6a6b9688-7ebf-4029-a673-05ee442a29c2)


![image](https://github.com/user-attachments/assets/37bd2a3f-d793-4faa-bdc8-23dd4a56f793)


![image](https://github.com/user-attachments/assets/c6b58423-e7a8-4e3c-ac50-3107553f74a8)


![image](https://github.com/user-attachments/assets/6a216b33-a9af-493c-8ad5-534022f65b01)


![image](https://github.com/user-attachments/assets/70e5d5e8-3c68-49d1-9f89-ac18fbffdb34)


![image](https://github.com/user-attachments/assets/67010f96-1228-430c-8756-76ba84a7af82)

</details>

## Changelog
🆑
add: Added a new circuit: Color component
/🆑
2025-05-27 23:38:52 -04:00
SkyratBot 13cd1f18df [MIRROR] Circuit editor QoL and new circuit components (#27722)
* Circuit editor QoL and new circuit components (#82969)

## About The Pull Request

This PR introduces a number of minor quality of life improvements to
already existing circuit components, and adds three new components.

<img width="600" alt="preview"
src="https://github.com/tgstation/tgstation/assets/80724828/85d39b6d-b055-430e-8996-0da088616887">

## Why It's Good For The Game

This improves the overall experience for circuits.

### UI changes

<img width="550" alt="grid aligned"
src="https://github.com/tgstation/tgstation/assets/80724828/cc7b43b5-292f-4643-beab-e01ae675fb19">

Grid align is now an option for circuit designers. It will round objects
to the nearest 10px units internally, and can be toggled on/off by the
new additional button beside the component menu button. This makes
circuits easier on the eyes as things are pixel perfect aligned.

<img width="814" alt="tooltips"
src="https://github.com/tgstation/tgstation/assets/80724828/0d31c98f-3be9-46e0-ab37-20bac3799112">

All three buttons have been given tool tips.

### Tweaked Components

<img width="136" alt="voice activator"
src="https://github.com/tgstation/tgstation/assets/80724828/21dd0f65-cb98-4bd5-aeb0-63315e842cb6">

* Adds a on/off flag to the voice activator component
-- This saves power for circuits as you're not forced to use a compare
flag check to turn off voice activation

<img width="136" alt="speech"
src="https://github.com/tgstation/tgstation/assets/80724828/9137b76c-3077-4597-8411-2d9694b39e9e">

* Adds a quiet mode flag to speech component
-- This is ideal when you want a device to speak, but don't want other
people to hear. A good example would be a handheld translator that you
only want to hear yourself.

### New Components

<img width="136" alt="ntnet list literal"
src="https://github.com/tgstation/tgstation/assets/80724828/657c851b-d442-4a63-8650-410cb8e76089">

* An NTNet Send component that allows everything to be input much like
the list literal component
-- This makes sending stuff over NTNet easier for the user, and use less
power as it won't require an additional list literal component

<img width="136" alt="compare health state"
src="https://github.com/tgstation/tgstation/assets/80724828/0bed076c-3aa1-4931-af90-2b9eb8e1ae9a">

* A health comparison component that checks the entity's health state,
and can return true or false depending if the entity is alive, sleeping,
unconscious, critical or dead
-- This could be achieved by using a health sensor and a compare
component, however it lacks the ability to know when a entity is
unconscious or sleeping

<img width="136" alt="toggle"
src="https://github.com/tgstation/tgstation/assets/80724828/7017b6bf-937a-42ad-87f3-4f1134853ac3">

* A quick toggle component to allow the switching between a true and
false state
-- This could be achieved by using a logic component and self linking,
however this makes it far easier for newcomers to make something as
simple as an on/off switch (such as a handheld translator which uses the
front button to turn on/off)

## Changelog
🆑
qol: Add tooltips to circuit editor buttons
qol: Add grid alignment mode to circuit editor
add: Added new compare health state component
add: Added new NTNet send list literal component
add: Added new toggle component
qol: Added activity toggle to voice activator component
qol: Added quiet mode to speech component
qol: NTNet send component will not use power/trigger if NTNet is offline
/🆑

* Circuit editor QoL and new circuit components

---------

Co-authored-by: tmyqlfpir <80724828+tmyqlfpir@users.noreply.github.com>
2024-05-16 06:34:03 +02:00
SkyratBot 5cd3362b41 [MIRROR] Fixes integrated circuit speech logging [MDB IGNORE] (#25959)
* Fixes integrated circuit speech logging (#80706)

## About The Pull Request
get_creator() returns a printable string rather than a mob, so it
doesn't need key_name() here

## Why It's Good For The Game
Bugfixes

## Changelog
🆑
fix: Fixed integrated circuit speech logging
/🆑

Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>

* Fixes integrated circuit speech logging

---------

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
2024-01-02 20:29:51 +00:00
SkyratBot 3a1925b4d1 [MIRROR] fixes signal circuit not working | refactors name of timer cooldown macros to be inherent, also docs them [MDB IGNORE] (#24675)
* fixes signal circuit not working | refactors name of timer cooldown macros to be inherent, also docs them (#79367)

## About The Pull Request

Title
## Why It's Good For The Game

Less headache in the future for a macro thats not really obvious in what
it does
## Changelog
🆑
fix: signals in circuits now actually function
/🆑

* fixes signal circuit not working | refactors name of timer cooldown macros to be inherent, also docs them

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
2023-10-31 18:31:52 -04:00
SkyratBot fcacccc459 [MIRROR] Fixes bypassing integrated circuit cooldowns with module components. [MDB IGNORE] (#21374)
* Fixes bypassing integrated circuit cooldowns with module components. (#75581)

## About The Pull Request
See title.
In order for this change to work, these components will not work if
there is no shell, but this will change nothing user-facing because all
player-facing circuits require shells to function in the first place
anyways.

## Why It's Good For The Game
Fixes a cooldown bypass bug.

Closes #75580

## Changelog
🆑
fix: Fixed bypassing component cooldowns with module components.
/🆑

---------

Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>

* Fixes bypassing integrated circuit cooldowns with module components.

---------

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
2023-05-23 11:54:18 +01:00
SkyratBot dc89574978 [MIRROR] Logs circuit speech [MDB IGNORE] (#13704)
* Logs circuit speech (#67066)

* logging circuit speech

Co-authored-by: tattle

* Logs circuit speech

Co-authored-by: dragomagol <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2022-05-20 17:30:06 +01:00
SkyratBot c9b268a72a [MIRROR] Integrated the component printer into the integrated circuit UI. You can now link integrated circuits to component printers [MDB IGNORE] (#9107)
* Integrated the component printer into the integrated circuit UI. You can now link integrated circuits to component printers (#62287)

Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>

* Integrated the component printer into the integrated circuit UI. You can now link integrated circuits to component printers

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
2021-10-28 15:49:34 -04:00
SkyratBot af8c0d2977 [MIRROR] Refactors how components are triggered and refactors how ports are ordered (#7951)
* Refactors how components are triggered and refactors how ports are ordered (#60934)

Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>

* Refactors how components are triggered and refactors how ports are ordered

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
2021-09-03 14:02:48 +01:00
SkyratBot 302798dbb7 [MIRROR] [s] Audits object say() uses to make handling text more safe (#7927)
* [s] Audits object say() uses to make handling text more safe (#61147)

Made all say()s deal with encoding, audited all uses of say() to prevent double encoding or like, manually inserting span().
I left some stuff without sanitize that only draws from the code, since it's hell to clean up otherwise. That
and I let admins do whatever the fuck they want

* [s] Audits object say() uses to make handling text more safe

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2021-09-02 15:57:10 -04:00
SkyratBot 374adb3783 [MIRROR] [s] fixes html execution with circuits (#7897)
* fixes html execution with circuits (#61143)

Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>

* [s] fixes html execution with circuits

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
2021-09-01 00:49:49 +01:00
SkyratBot 9e74cd4a03 [MIRROR] Input ports now connect to multiple output ports. Remove combiner. (#7505)
* Input ports now connect to multiple output ports. Remove combiner. (#60494)

* tgui bsod

* debug disconnections

* prelim

* recomment

* set_value -> put ._.

* DAMN IT

* reinsert subsystem

* prepare

* unditch signals

* remove combiner

* remove combiner some more

* how did router.dm get here? deleting.

* These two COMSIGS should be one.

* critical typo

* inline cast

* have your signals

* Have your set_input & set_output.

* make compile

* upgrade save/load to n-to-n-wires

* have your documentation

* have your unsafe proc

* pay no attention to the compile errors

* unlist the ref

* paste my for block back in ._.

* fix manual input

* oops pushed too soon

* Have your !port.connected_to?.length

Co-authored-by: Watermelon914 <37270891+Watermelon914@ users.noreply.github.com>

Co-authored-by: Watermelon914 <37270891+Watermelon914@ users.noreply.github.com>

* Input ports now connect to multiple output ports. Remove combiner.

Co-authored-by: Gurkenglas <gurkenglas@hotmail.de>
Co-authored-by: Watermelon914 <37270891+Watermelon914@ users.noreply.github.com>
2021-08-11 20:27:29 +01:00
SkyratBot 170863cfd7 [MIRROR] Circuit component descriptions and module names are now visible to the naked eye. (#7290)
* Circuit component descriptions and module names are now visible to the naked eye. (#60545)

* Circuit component descriptions and module names are now visible to the naked eye.

Co-authored-by: Gurkenglas <gurkenglas@hotmail.de>
2021-08-01 11:42:08 +01:00
SkyratBot 3e3c391aee [MIRROR] Removes Destroy overrides from most circuit components (#7216)
* Removes Destroy overrides from most circuit components (#60492)

Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>

* Removes Destroy overrides from most circuit components

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
2021-07-29 11:16:23 +01:00
SkyratBot a24c6f260f [MIRROR] Fixed cooldowns for speech and soundemitter circuit components. Brought speech component more in line with other components. (#6676)
* Fixed cooldowns for speech and soundemitter circuit components. Brought speech component more in line with other components. (#59958)

Fixes to the cooldowns. Also circuits now use an input trigger/output trigger system which the speech component hadn't yet adopted because it was made before that system was introduced and left out when changing most components to use this system.

Also temporarily disables input/output signal ports for the prebuilt speech relay circuit until I can properly code in a way to load circuits.

* Fixed cooldowns for speech and soundemitter circuit components. Brought speech component more in line with other components.

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
2021-07-03 22:23:36 +01:00
SkyratBot 7269bd83ab [MIRROR] Adds USB to arrest consoles. Adds list circuit components. (#6593)
* Adds USB to arrest consoles. Adds list circuit components. (#59850)

Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>

* Adds USB to arrest consoles. Adds list circuit components.

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2021-06-30 20:01:36 +01:00
SkyratBot 5ab9aba9d4 [MIRROR] Added circuit component UI details, added multiplexer and allowed inserting components directly into shells. (#6479)
* Added circuit component UI details, added multiplexer and allowed inserting components directly into shells. (#59635)

Adds the multiplexer circuit component - en.wikipedia.org/wiki/Multiplexer
Circuit components can now be directly inserted into shells rather than having to take the integrated circuit out.
Special information can be accessed from components now through the "Info" button besides the eject button on a component.

* Added circuit component UI details, added multiplexer and allowed inserting components directly into shells.

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
2021-06-23 22:50:59 +01:00
SkyratBot cc5cf407b0 [MIRROR] More circuit components. Restructures the circuit components folder to be more organised. (#6142)
* More circuit components. Restructures the circuit components folder to be more organised.

* Mirror!

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Funce <funce.973@gmail.com>
2021-06-05 17:15:43 +12:00