Tim 730eb8af99 Photocopier Improvements (#91258)
## About The Pull Request
Photocopiers no longer initialize all their stored papers. Since the
only paper that can be stored has to be empty this is now just stored as
a number value. This prevents hundreds of blank papers from being
spawned during round start loading, since every station map has a dozen
of these machines scattered about.

Other stuff:
- Emag function where it breaks the payment system so people are no
longer charged for printing
- Stock parts now affect max paper storage, print time, and toner usage
(swapped servo part for matter bin)
- Can now load paper via paper bins
- Can now select which type of paper to print with (regular, carbon,
construction, natural)
- Fix stored paper counts being wrong
- Gave paper subtypes proper names so we can use them in our UI
- Paper and toner are now dropped when machine deconstructed
- Refactored item code to use `item_interaction()` instead of
`attackby()`

## Why It's Good For The Game
New functionality, bugfixes, refactored code, and optimizations are
good.

## Changelog
🆑
add: Photocopiers can now be emagged to disable the payment system that
charges you for printing copies
add: Photocopiers are now affected by stock part upgrades. Matter bins
affect paper capacity, lasers affect toner usage, and scanning module
affects time to print. The servo stock part was replaced with matter
bin.
add: Photocopiers can now be loaded with regular, carbon, construction,
and natural paper. You can select which kind to use in the UI when
printing copies if any are stored.
qol: Photocopiers can now be loaded with paper bins
fix: Photocopiers now display the correct amount of stored paper
fix: Photocopiers now drop toner and paper when machine is deconstructed
code: Paper subtypes (carbon, construction, natural) were given proper
names to use with photocopiers UI menu.
refactor: Photocopier code was refactored to not spawn paper when it is
initialized. Instead it stores blank papers as a numeric value. Also
switched the `attackby()` code handling to use the modern
`item_interaction()` proc.
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2025-06-15 15:52:32 -04:00
2025-06-15 00:01:17 -06:00
2025-06-15 15:52:32 -04:00
2025-06-06 04:22:41 -04:00
2025-05-29 16:16:12 -04:00
2025-06-05 19:53:06 -04:00
2025-06-15 15:52:32 -04:00
2025-06-10 04:26:11 -04:00

Bubberstation (TG Downstream)

CI Suite

resentment technical debt forinfinityandbyond

Website Link
Git / GitHub cheatsheet https://www.notion.so/Git-GitHub-61bc81766b2e4c7d9a346db3078ce833
Guide to Modularization ./modular_skyrat/readme.md
Website https://wiki.bubberstation.org/index.php?title=Main_Page
Code https://github.com/Bubberstation/Bubberstation
Wiki https://tgstation13.org/wiki/Main_Page
Codedocs https://skyrat-ss13.github.io/Skyrat-tg/
Bubberstation Discord https://discord.gg/AvjrTqnqEx
Coderbus Discord https://discord.gg/Vh8TJp9

This is Bubberstation's fork of TG. Originally forked from Skyrat.

Please note that this repository contains sexually explicit content and is not suitable for those under the age of 18.

Space Station 13 is a paranoia-laden round-based roleplaying game set against the backdrop of a nonsensical, metal death trap masquerading as a space station, with charming spritework designed to represent the sci-fi setting and its dangerous undertones. Have fun, and survive!

Contribution Rules and Guidelines

1. Do Not Be A Dick

  • The Bubberstation main repository is maintained by and contributed to by volunteers and hobbiests. You are not entitled to our time and energy. We reserve the right to permanently remove anyone who does not show both our contributor's and maintainer's common decency.
  • Bubberstation does not operate a strict "goodboy" points system or have defined goals, and anyone is welcome to contribute to this project. That being said, the maintainers of this project are free to curate comments as seen fit to uphold a respectful environment.

2. The Licensing is Non-negotiable

  • You are free to take, redistribute, modify, and readapt any code or commit found on this repository.
  • All code files are under GNU AGPL V3
  • All asset files (images and sound) are CC-BY-SA 3.0 unless otherwise stated
  • The license information, including the MIT license and its exceptions, can be found at the bottom of this readme.
  • What does this mean to our contributors? The GNU AGPL V3 licensing on this codebase is non-negotiable and irrevocable the moment you open a PR. We are incapable of privatizing this codebase and you are incapable of restricting your code contributions even if you close the PR. Do not open a contribution if you do not feel comfortable with your code being permanent across the entirety of the community. All contributions are preserved in commit history
  • What does this mean to our spriters and sound designers? CC-BY-SA 3.0 is the only license that this project will accept
  • It is prohibited to use the attribution requirement to suggest that you endorse or support a particular use of your assets.
  • You are entitled to credit yourself with comments and you are entitled to waive the attribution requirement choosing not to be identified as the creator if you wish.
  • If you do not like how your assets were modified or used, it is required that the other person remove the attribution information upon request.
  • Modifications or adaptions must disclose the source, the author, and any changes you've made.
  • Goonstation code is incompatible with this codebase and will not be accepted.

Credit: Goonstation contribution guidelines

Modularization and codedocs note

As of our recent split from Skyrat, a lot of codedocs/modularization guides need to be rewritten. Until it is done expect some wait time with larger refactors. You are also free to edit any Skyrat files

Important note - TEST YOUR PULL REQUESTS

You are responsible for the testing of your content. You should not mark a pull request ready for review until you have actually tested it. If you require a separate client for testing, you can use a guest account by logging out of BYOND and connecting to your test server.

DOWNLOADING

Downloading

Running on the server

Maps and Away Missions Maps and Away Missions

Compilation

Find BUILD.bat here in the root folder of tgstation, and double click it to initiate the build. It consists of multiple steps and might take around 1-5 minutes to compile.

The long way. Find bin/build.cmd in this folder, and double click it to initiate the build. It consists of multiple steps and might take around 1-5 minutes to compile. If it closes, it means it has finished its job. You can then setup the server normally by opening tgstation.dmb in DreamDaemon.

Building tgstation in DreamMaker directly is deprecated and might produce errors, such as 'tgui.bundle.js': cannot find file.

How to compile in VSCode and other build options.

Getting started

For getting started (dev env, compilation) see the HackMD document here.

For overall design documentation see HackMD.

LICENSE

All code after commit 333c566b88108de218d882840e61928a9b759d8f on 2014/31/12 at 4:38 PM PST is licensed under GNU AGPL v3.

All code before commit 333c566b88108de218d882840e61928a9b759d8f on 2014/31/12 at 4:38 PM PST is licensed under GNU GPL v3. (Including tools unless their readme specifies otherwise.)

See LICENSE and GPLv3.txt for more details.

The TGS DMAPI is licensed as a subproject under the MIT license. The TGS DMAPI is licensed as a subproject under the MIT license.

See the footer of code/__DEFINES/tgs.dm and code/modules/tgs/LICENSE for the MIT license.

All assets including icons and sound are under a Creative Commons 3.0 BY-SA license unless otherwise indicated.

Languages
DM 91.6%
TypeScript 5.5%
JavaScript 1.9%
Python 0.5%
SCSS 0.2%