Files
Bubberstation/code/modules/research/machinery/departmental_protolathe.dm
SkyratBot 561df29ff7 [MIRROR] General maintenance for Lathes (#26410)
* General maintenance for Lathes (#81244)

## About The Pull Request
1. **Qol Stuff**
- Screentips & examines for screwdriver, crowbar acts, multiool &
wirecutter Also for Alt click
- Techfabs can now also use the Mouse drag functionality to set drop
target for items
- Lathe printing animation now plays on loop instead of just flicking
once till printing is finished for more visual feedback

2. **Code Improvements**
- Merged `start_making()` with `do_make_item()`. That proc was like only
3 lines long and used only in 1 place so let's just move that code to
`ui_act()`
- Merged `user_print_item_id()` with `ui_act()`. Again was used only in
1 place so let's just move that code in to save some proc overhead
- Sets `processing_flags` for autolathe to `NONE` cause we don't use
`process()`
    - Autodocs vars such as `hacked` , `shocked` etc & procs
- `maxmult` is now computed client side saving backend bandwidth,
`construction_time` is removed from lathes which did not use it
- Removed all usages of lathe taxes and their related vars, removed
engineering lathe no tax from ice moon, replaced with normal engineering
lathe

3. **Fixes**
- Lathe sheet insertion animations are now linked & work again for all
material types inserted via remote silo/local storage,
silver/titanium/plastic all play the same animation(that is
`protolathe_shiny` overlay). Other materials have their own respective
overlays
- Fixes #81243. Calling `update_static_data_for_all_viewers()` is too
expensive for the UI. We should instead use `SStgui.update_uis(src)`
which will report the `busy` status to the UI more immediatly
- Fixes #81236. Some problems with the params passed to the timer
callback. It should now print the correct number of requested items
- Fixes #81192. `design.materials` would runtime for custom material
items as they were list of texts not materials. We have to pass our
manually parsed list of materials for an specific item to ensure they
are set & used correctly. Same fixes apply for techfabs as well


## Changelog
🆑
qol: adds screentips & examines for screwdriver & crowbar acts & alt
click.
qol: techfabs can now use the mouse drop functionality to set drop
target.
qol: lathe printing animation plays on loop while printing rather than
flicking once for more visual feedback
fix: lathe sheet insertion animations are now linked & work again for
all material types inserted via remote silo/local storage
fix: printing custom materials items from autolathe works again.
fix: printing multiple items from lathes will actually print that
correct quantity of items requested.
fix: printing items the 2nd time around from lathes won't cause the UI
to reload each time.
code: autodoc for some vars & procs, merges procs.
refactor: Optimized code for autolathe & techfabs in general. Report
bugs on github
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>

* There we go

* aaaa

* Missed this little thingy

* There we go, should be clean af

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
2024-02-09 02:37:42 +01:00

48 lines
2.1 KiB
Plaintext

/obj/machinery/rnd/production/protolathe/department
name = "department protolathe"
desc = "A special protolathe with a built in interface meant for departmental usage, with built in ExoSync receivers allowing it to print designs researched that match its ROM-encoded department type."
icon_state = "protolathe"
circuit = /obj/item/circuitboard/machine/protolathe/department
/obj/machinery/rnd/production/protolathe/department/engineering
name = "department protolathe (Engineering)"
allowed_department_flags = DEPARTMENT_BITFLAG_ENGINEERING
circuit = /obj/item/circuitboard/machine/protolathe/department/engineering
stripe_color = "#EFB341"
payment_department = ACCOUNT_ENG
/obj/machinery/rnd/production/protolathe/department/service
name = "department protolathe (Service)"
allowed_department_flags = DEPARTMENT_BITFLAG_SERVICE
circuit = /obj/item/circuitboard/machine/protolathe/department/service
stripe_color = "#83ca41"
payment_department = ACCOUNT_SRV
/obj/machinery/rnd/production/protolathe/department/medical
name = "department protolathe (Medical)"
allowed_department_flags = DEPARTMENT_BITFLAG_MEDICAL
circuit = /obj/item/circuitboard/machine/protolathe/department/medical
stripe_color = "#52B4E9"
payment_department = ACCOUNT_MED
/obj/machinery/rnd/production/protolathe/department/cargo
name = "department protolathe (Cargo)"
allowed_department_flags = DEPARTMENT_BITFLAG_CARGO
circuit = /obj/item/circuitboard/machine/protolathe/department/cargo
stripe_color = "#956929"
payment_department = ACCOUNT_CAR
/obj/machinery/rnd/production/protolathe/department/science
name = "department protolathe (Science)"
allowed_department_flags = DEPARTMENT_BITFLAG_SCIENCE
circuit = /obj/item/circuitboard/machine/protolathe/department/science
stripe_color = "#D381C9"
payment_department = ACCOUNT_SCI
/obj/machinery/rnd/production/protolathe/department/security
name = "department protolathe (Security)"
allowed_department_flags = DEPARTMENT_BITFLAG_SECURITY
circuit = /obj/item/circuitboard/machine/protolathe/department/security
stripe_color = "#486091" //SKYRAT EDIT - ORIGINAL "#DE3A3A"
payment_department = ACCOUNT_SEC