* Fixes exosuit board sprites (#73332)
## About The Pull Request
Any circuit board whose icon state is not "circuit_map" (others dont
have gags) dont have gags applied to them
## Why It's Good For The Game
Fixes#71332
## Changelog
🆑
fix: Any circuit boards with custom sprites now actually use that sprite
/🆑
* Fixes exosuit board sprites
---------
Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com>
* Renames Datum Parts above tier 1 accordingly to their tier.
* Makes it so all of our machine also use the datum stock parts, because that's also important
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Don't initialize stack components inside machines (#72863)
## About The Pull Request
An attempt at the
[Initiative](https://github.com/tgstation/dev-cycles-initiative/issues/29)
all types/subtypes of `obj/item/stack` no longer exist inside any
machine. Only during deconstruction is the stack created from the
circuit boards requested components.
Also moved the component printer & module duplicator circuitboards into
`machine_circuitboards.dm` so they all are in one place
I was unable to do this for circuitboards because that still needs to
exist so we can use `apply_default_parts()` on the machine. I tried to
do the whole datum circuitboard approach just like with stock parts but
i'm unsure about it so maybe next time
## Changelog
🆑
refactor: stack components no longer exist inside a machine's
component_parts
refactor: move component printer & module duplicator circuitboards into
machine_circuitboards.dm
/🆑
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
* Stock Part Datumization Complete (#72559)
So i accidently reverted all my commits in #72511 when resolving a merge
conflict So ummm yeah fuck my bad anyway
Finishes what was started in #71693 and completes the
[initiative](https://github.com/tgstation/dev-cycles-initiative/issues/1)
Except for `obj/item/stock_parts/cell` and its subtypes. All machines
now use `datum/stock_part` for its requested components & component
parts
Not sure if i caught every machine & stuff in the game so merge with
caution
🆑
code: datum stock part for every obj stock part
refactor: all machines & dependent experiments to use datum stock parts
/🆑
* Fixes a teeny tiny Funce mistake :)
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Changes the missing food icon test to cover ALL /obj's
* Update implant.dm
* Hopefully fixes all the failing integration tests!
* Fixes more missing icons
* Even more icon fixes
* Hopefully that was all of them
* Okay now SURELY that's all of them
* I'm tired of this shit man
* Hopefully that's all, for real this time!
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Coffee Shop DLC - done right this time edition (#70991)
## About The Pull Request
this is a re-attempt at PR #70725 that was practically ready but was
ruined in the course of my hardships with git. Mistakes were made.
In this re-edition I also addressed a few suggestions from the comments
of the original pr. There is a shaker added in the meta station cafe and
the pill bottle is moved out of sight to the fridge (I still left it
cause it contained antidepressants for the especially overworked NT
employees). Additionally, the naming of `/cup/glass/coffee` has been
handled differently this time to minimize the need of changing the code
in multiple places.
Please refer to the original PR for all details concerning the content,
below I add just a rough line-out for the sake of coherency.

The content of the pr extends to:
- a new coffee bean driven coffeemaker
- syrup bottles
- a coffee condiment display box
- almost complete make-over of the meta station cafe
- adding the new coffeemaker in a few break rooms on delta and tram (2
machines per station)
## Why It's Good For The Game
Please refer to #70725
## Changelog
🆑
add: After a massive success of the Modello 3 series, Piccionaia Home
Appliances rolls out a completely new coffeemaker model and renovates
the meta station cafe for free in a promotional campaign!
add: Syrup bottles, condiment displays, and more, to make the spess
coffee experience even better
/🆑
Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: Tastyfish <crazychris32@ gmail.com>
* Coffee Shop DLC - done right this time edition
Co-authored-by: disappointedButNotSuprised <57324037+disappointedButNotSuprised@users.noreply.github.com>
Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: Tastyfish <crazychris32@ gmail.com>
* Fixes displayed advanced manipulator requirements (#70455)
* Base_name is null in the children of manipulator
* Properly does the fix for machine frames
* Fixes displayed advanced manipulator requirements
Co-authored-by: Profakos <profakos@gmail.com>
* [MDB IGNORE] Shuttle engines part 2: Engines are now machines (#69793)
* Makes engines machines instead of structures
* Updates the maps
* Fixes boards and anchoring
* Removes 2 unused engine types
Router was actually used a total of once, so I just replaced it with propulsion.
I think cutting down on these useless engine types that make no difference in-game would be a nice first step to adding more functionalities to them.
* Don't use power (since shuttles dont have)
Shuttles don't have APCs, instead they just have infinite power, so I'm removing their power usage for now. I'm hoping this can be removed when unique mechanics are added to engines, because I would like them to make use of power like other machines.
* re-organizes vars
* deletes deleted dm file
* Slightly improves cargo selling code
* Renames the updatepaths
* Removes in_wall engines
I hate this stupid engine it sucks it's useless it's used solely for the tram it provides nothing of benefit to the server
replaces them with regular engines
* [MDB IGNORE] Shuttle engines part 2: Engines are now machines
* should fix that
* THEY. REMOVED IN WALL ENGINES. THE BASTARDS.
* common mining shuttle
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* vendor sprites and code
* some wrapped food packs
* the rest of the packs
* the foods themselves
* food code
* waltuh, put the drinks away waltuh
* fixies
* language fix i think
* oopsies (reverts my changes without thinking)
* fixes languages fr
* gonna have to get working on throwing more stuff in too
* repathing n shit
* renames some stuff to be more generic
* finishes fleshing out one of the five a bit more
* a few things
* bottle coloration
* i almost left lowmem in
* makes that use the right icon
* might make create and destroy tests like me again
* Update modular_skyrat/modules/importedvendors/code/vendor_food.dm
Co-authored-by: OrionTheFox <76465278+OrionTheFox@users.noreply.github.com>
* Update modular_skyrat/modules/importedvendors/code/vendor_food.dm
Co-authored-by: OrionTheFox <76465278+OrionTheFox@users.noreply.github.com>
* Update modular_skyrat/modules/importedvendors/code/vendor_food.dm
Co-authored-by: OrionTheFox <76465278+OrionTheFox@users.noreply.github.com>
* Update modular_skyrat/modules/importedvendors/code/vendor_food.dm
Co-authored-by: OrionTheFox <76465278+OrionTheFox@users.noreply.github.com>
* its pickled not picked, remember to open your soup right
* ricecracka :(
* Update modular_skyrat/modules/importedvendors/code/vendor_snacks.dm
Co-authored-by: OrionTheFox <76465278+OrionTheFox@users.noreply.github.com>
* Update modular_skyrat/modules/importedvendors/code/vendor_snacks.dm
Co-authored-by: OrionTheFox <76465278+OrionTheFox@users.noreply.github.com>
* Update modular_skyrat/modules/importedvendors/code/vendor_snacks.dm
Co-authored-by: OrionTheFox <76465278+OrionTheFox@users.noreply.github.com>
* Update modular_skyrat/modules/importedvendors/code/vendor_snacks.dm
Co-authored-by: OrionTheFox <76465278+OrionTheFox@users.noreply.github.com>
* Update modular_skyrat/modules/importedvendors/code/vendor_snacks.dm
Co-authored-by: OrionTheFox <76465278+OrionTheFox@users.noreply.github.com>
* Update modular_skyrat/modules/importedvendors/code/vendor_snacks.dm
Co-authored-by: OrionTheFox <76465278+OrionTheFox@users.noreply.github.com>
* removes some extra stuff
* Update modular_skyrat/modules/importedvendors/code/vendors.dm
Co-authored-by: OrionTheFox <76465278+OrionTheFox@users.noreply.github.com>
* Update modular_skyrat/modules/importedvendors/code/vendors.dm
Co-authored-by: OrionTheFox <76465278+OrionTheFox@users.noreply.github.com>
* Auto stash before merge of "cultural-vendors" and "Paxilmaniac/cultural-vendors"
* you actually can trust the sushi
* that's actually pretty based
* Update modular_skyrat/modules/importedvendors/code/vendors.dm
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* golden suggestions
* FUUUUUCK YOU LOWMEM
* special name for the mothic drinks
* Update modular_skyrat/modules/imported_vendors/code/vendor_snacks.dm
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Update modular_skyrat/modules/imported_vendors/code/vendor_snacks.dm
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Update modular_skyrat/modules/imported_vendors/code/vendor_snacks.dm
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Update modular_skyrat/modules/imported_vendors/code/vendor_snacks.dm
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* I think I'll just do x_bag and x_box
* also lets them spawn at drink vendors too, they're pretty similar
* ok
* I HAD TO MAKE A NON MODULAR CHANGE!!!! NOOOOOO!!!!
* imported vendor crate sure, stfu jungle I added it now
* just gets rid of the troublesome characters
Co-authored-by: OrionTheFox <76465278+OrionTheFox@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* [MDB IGNORE] APC controller and Power Monitor/AmpCheck fixes, aka How do I write PR titles (#69146)
About The Pull Request
bgug fix stuff
APC controller UI has its elements section'ed off. The backend has been redone to make the behaviour of the APC controller a bit less janky. The console should be more stable, and all the soul has been removed from the code and the UI.
before this PR stales out from nobody wanting to review my pr, I should probably outline what exactly changed:
APC controller consoles have had their APC code almost entirely reworked. They no longer have to hold a reference to the person using the controller currently, and APCs themselves no longer hold a reference to the controller, instead to the person directly. A lot of code was moved to APC themselves to make it a lot more stable.
APC controller used to call toggle_breaker without passing args, causing a runtime. Fixed in
Fixes the power flow control console not actually being able to toggle breakers #69343
APC controller UI has had the Window.Content tags moved up to the top component, and a lot has been sectioned off to make the UI more sane.
AmpCheck used to look for a wire on it's turf, or as a fallback look for the Area APC. A check to see if the APC has a terminal did so on a weakref, causing a runtime and preventing the program from ever finding a valid APC in it's area, making it show nothing. This has been fixed. On the other hand, the power monitor console did not store the ground wire or APC terminal as a weakref, this has been updated. As a fallback, if there are still no APCs in the powernet, the UI will show a dimmer popup.
There was a "secret" power monitor variation in code so PDAs could not access monitors in hidden places. With the removal of PDAs, this control console is useless.
Why It's Good For The Game
Tiny bit of (much needed) polish on some useful tools in the engineering department.
Changelog
cl
fix: Fixed runtime when using AmpCheck without connecting the console with a wire.
fix: Fixed a few runtimes that could occur when using APC controller consoles.
qol: Sucked soul out of APC controller code and UI.
del: Removed "secret" power monitor console.
/cl
* [MDB IGNORE] APC controller and Power Monitor/AmpCheck fixes, aka How do I write PR titles
* update paths
Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Fax Machine (#69083)
* Adds the Fax machine, which allows you to send and receive faxes from around the station.
Co-authored-by: twilightwanderer <twilightwanderer@ users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>
* Fax Machine
* our maps
Co-authored-by: twilightwanderer <88540658+twilightwanderer@users.noreply.github.com>
Co-authored-by: twilightwanderer <twilightwanderer@ users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
* specific_parts = TRUE machines examine upgrade (#68849)
About The Pull Request
Closes: #68805
Bluespace Artillery Bore
DNA Vault
Mining Equipment Vendor (A board with specific_parts = FALSE for comparison)
Why It's Good For The Game
Machines that require a specific minimum level of parts should probably have it visible.
Changelog
cl
qol: Machines that require a minimum level of part now have it visible.
/cl
* specific_parts = TRUE machines examine upgrade
Co-authored-by: Mooshimi <85910816+Mooshimi@users.noreply.github.com>
* Fixed recycler stack deletion and removed matter bins for it (#67711)
Recycler destroys material stacks #67710 - The output item was merged with the original BEFORE the original was deleted, and that's why the output was lost.
Didn't find corresponding issue. The recycler has infinite internal storage upon init, but it resets it to 100000 on stock parts check. Because of this, when you throw a stack of 50 items and the recycler has less than 1 sheet of this item inside, it was saying that there is not enough space for 50 items, but deleted them anyway. Now recycler doesn't require matter bins, and the internal storage is infinity.
* Fixed recycler stack deletion and removed matter bins for it
Co-authored-by: Andrew <mt.forspam@gmail.com>
* Fixes (1) and future-proofs circuitboard's name (#67794)
```
/obj/item/circuitboard/computer/libraryconsole/bookconsole
name = "Book Inventory Management Console (Machine Board)"
```
See there, it's named machine board but it is actually built on a computer frame.
We just had a PR that fixed other mistakes like this so I went and did a tiny refactor to how these circuitboards are named so the second part is automatic.
Added a new var called name_extension that applies an extension to the base name
/obj/item/circuitboard/computer have (Computer Board) as their extension.
/obj/item/circuitboard/machine have (Machine Board)
* Fixes (1) and future-proofs circuitboard's name
Co-authored-by: GuillaumePrata <55374212+GuillaumePrata@users.noreply.github.com>
* Assorted Ordnance Code+Map Quality Pass and QoL (#67097)
Three main things I do:
Reinforce the remap that i have made with code changes, making the atmos control devices sane and easy to put if someone else stumbles upon this part of the code again. (a4aea1e - f16e620)
Splits the ordnance areas and renames them, kills ordnance misc and things that have nothing to do with ordnance (anymore?) moves them to exp_lab (useful stuff here) and aux_lab (fluff stuff here like laser range in delta or second circuit lab in tram). (0c99f9f- 3c82a88)
Adds a roundstart program disk containing nt frontier to the ordnance office table. Added a hint to file manager there too to help give players a nudge on how to publish papers. (fd747dc)
First one: Makes mapping these things not require varedit, nicer for other people that dont know how the atmos control stuffs works.
Second one: Misc lab has nothing to do with ordnance jesus christ. Also ord hallway is now irrelevant, our ordnance labs are very far from box now. Will probably make downstreams a bit angry for a while though since they might not be fully up to date on the ordnance maps.
Third one: Pretty much justified it in the about section.
Why is this not atomic: This touches all five maps and needs code backing, so I might as well combine them into one maintenance PR instead of giving my peers merge conflict three times.
* Assorted Ordnance Code+Map Quality Pass and QoL
* set 1
* revert
* Update CentCom_skyrat.dmm
Co-authored-by: vincentiusvin <54709710+vincentiusvin@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* PACMAN buff to make it usable as backup generator again (#67062)
* PACMAN buff to make it usable as backup generator again
Co-authored-by: fippe <julius.salonen@cs.tamk.fi>
* Adds lore terminals for mappers (#66589)
This adds the ability to use Fallout-style terminals for maps
* Revival of mapping lore terminals
Co-authored-by: dragomagol <66640614+dragomagol@users.noreply.github.com>
* Disables the tax on off-station lathes (#66566)
Disables the tax from lathes off-station or on-mining-level lathes.
* Disables the tax on off-station lathes
* should be all of it
* heh lmao guess what i forgot
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
* Turbine Rework (#65586)
This PR rework the atmos turbine into a 3x1 multiblock machine.
The calculations are now done by simulating the flow of gases and expansion work that they do inside the turbine (heavily simplified), now a pressure differential between the inlet and outlet will heavily change the output of current that the machine is able to deliver.
The machine will not use stock parts for upgrades, but instead it will use 3 main components that are to be made by hand (except for the first tier that can be printed)
Those are compressor part, rotor part and stator part.
There are 4 tiers to them where the last one will use metallic hydrogen to be made, but will significantly increase the output and resistance of the machine.
-- Docs for the turbine:
A work based engine that “simulates” the flow of gas to calculate the energy produced by the moving gases.
These gases cool down while passing through due to the work done on the turbine blades and the expansion it get inside the machine
The new turbine
The machine will be expanded into a 1x3 multiblock machine that will accomodate 3 parts to it:
An input compressor
An output turbine
A core rotor
There are 3 other main component that are:
The Compressor Blade part
The Rotor Shaft part
The Stator Generator part
These three are the main (and only) upgrade path the machine can follow.
Parts
Input Compressor
It handles the input of gases inside the machine, it contains the Compressor Blade part.
This part moves the gas in, compresses it and increases its temperature by the amount of work the compression of the gas does.
Output Turbine
It handles the output of the gases outside the machine, it contains the Stator Generator part.
The gases moving through will expand 6x the initial volume and cools down before getting expelled.
Core rotor
Main part of the multiblock machine. It contains all the logic for building and processing the turbine.
Can be connected to a computer for control.
Contains the Rotor Shaft part.
Upgrades
The three installable parts can be upgraded with specific sheets to improve their efficiency and resistances. Each tier up will increase the max RPM reachable by the turbine and the max input temperature that the machine can take before starting to be damaged.
Each first tier part can be printed in any Lathe (proto/auto) but it requires hand crafting with different materials to be upgraded.
Compressor Blades can be upgraded with plasteel, titanium and metallic hydrogen.
Rotor Shaft can be upgraded with plasteel, titanium and metallic hydrogen.
Stator Generator can be upgraded with titanium, metallic hydrogen and zaukerite.
-- End docs
Fixes#50667 (Infinite power generation by piping turbine output into its input. This worked because there was no temperature threshold, and the cost of applying pressure via pumps was lower then the power generated -Lemon)
Better turbine in many aspects, preparation for SM rework
* Turbine Rework
* conflicts
* ew
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Stops machine frames and circuitboards referring to manipulators as micro-manipulators (#64878)
About The Pull Request
Gives stock parts a base_name variable and sets it to manipulator for micro-manipulators
Reorders sprites of stock parts in stock_parts.dmi to be together and in order of tier. Image
Makes component part lists on machine frames and circuitboards nicer and makes them identical between the two
Improves code for generating these lists
Adds numtotext() proc which these lists use
Why It's Good For The Game
Solves the issue where examining machines says they require a micro-manipulator when any manipulator will do
Makes sprites easier to find
Wows players by using actual words for numbers in generated parts lists
Cleans up ancient code
This proc can be used for other things, e.g. station names (which I have now incorporated it into)
Changelog
cl
fix: Machine frames and circuit boards no longer call manipulators micro-manipulators when examined
code: Improves code in constructable_frame.dm and circuitboard.dm
/cl
* Stops machine frames and circuitboards referring to manipulators as micro-manipulators
Co-authored-by: cacogen <25089914+cacogen@users.noreply.github.com>
* Refactors pay stands + custom vendors (#63889)
I am disgruntled by the way pay stations work. They're not intuitive, they're a pain to build and have no interface. Basically: They don't get made, and the potential is lost.
Pay stands => Holopay
Summoned by right clicking your ID
Disappears if the card is out of range.
New TGUI window that offers more customization
Other bundled fixes:
Custom vendors become more user friendly
Code improvement
Lots of documentation + refactoring
New bundled number input will likely take place of animated number in tgui input number
Why It's Good For The Game
More RP opportunity for players, plus bug fixes. It's now much easier for players to start their own in game business selling substances clown shoes.
Changelog
cl
code: Created a new input component that accepts only integers. More usage to come.
refactor: Pay stands are now holographic. It's 2562! Create one by right-clicking your ID.
del: Circuit boards for pay stands.
refactor: Pay stands now have their own TGUI.
fix: Custom vendors now alert you when someone makes a purchase.
fix: Custom vendors now place items in your hand when you make a purchase.
/cl
* Refactors pay stands + custom vendors
* I edited these maps in a text editor
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>