Ported the Microlathe from Bay, and began autolathe refactor: Take II (#21668)

Continued from #19839

> Part 1 of a refactor to try and make our various fabricators use the
same system and basic code. This adds the microlathe as a proof of
concept to the whole refactor, ported from Baystation. Currently not
mapped anywhere.

> This also ports over Nebula's autolathe working sound, however it is
adapted to fit our code. As such, I went to the original sound and
re-cut it, now including start and stop sounds.

Plan is overall to make it much easier to add new types of fabricators. 

### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:

| Path | Original Author | License |
| --- | --- | --- |
| icons/obj/machinery/fabricators/microlathe.dmi |
[BloodyMan](https://github.com/BloodyMan) (Baystation 12) | CC-BY-SA |
| sound/machines/fabricators/autolathe/ |
[pencilina](https://freesound.org/people/pencilina/) | CC-0 |

---------

Co-authored-by: Cody Brittain <cbrittain10@live.com>
This commit is contained in:
Cody Brittain
2026-01-14 19:29:32 +00:00
committed by GitHub
co-authored by Cody Brittain
parent 5e69ccbd6a
commit ccbfbdc50a
146 changed files with 1406 additions and 955 deletions
@@ -29,12 +29,24 @@
/obj/item/circuitboard/autolathe
name = T_BOARD("autolathe")
build_path = /obj/machinery/autolathe
build_path = /obj/machinery/fabricator/autolathe
board_type = BOARD_MACHINE
origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2)
req_components = list(
"/obj/item/stock_parts/matter_bin" = 3,
"/obj/item/stock_parts/manipulator" = 1,
"/obj/item/stock_parts/micro_laser" = 1,
"/obj/item/stock_parts/console_screen" = 1)
/obj/item/circuitboard/microlathe
name = T_BOARD("microlathe")
build_path = /obj/machinery/fabricator/microlathe
board_type = BOARD_MACHINE
origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2)
req_components = list(
"/obj/item/stock_parts/matter_bin" = 3,
"/obj/item/stock_parts/manipulator" = 1,
"/obj/item/stock_parts/micro_laser" = 1,
"/obj/item/stock_parts/console_screen" = 1)
/obj/item/circuitboard/protolathe
@@ -24,6 +24,7 @@
var/list/bite_sizes = list(1,2,3,4,5)
use_material_name = FALSE
applies_material_colour = FALSE
default_material = MATERIAL_ALUMINIUM
/obj/item/material/kitchen/utensil/Initialize(newloc, material_key)
. = ..()
@@ -93,6 +94,12 @@
sharp = TRUE
surgerysound = 'sound/items/surgery/hemostat.ogg'
/obj/item/material/kitchen/utensil/fork/bamboo
icon_state = "plastic_fork"
default_material = MATERIAL_BAMBOO
use_material_name = TRUE
applies_material_colour = TRUE
/obj/item/material/kitchen/utensil/fork/plastic
icon_state = "plastic_fork"
item_state = "fork"
@@ -106,6 +113,12 @@
icon_state = "spork"
item_state = "fork"
/obj/item/material/kitchen/utensil/spork/bamboo
icon_state = "plastic_spork"
default_material = MATERIAL_BAMBOO
use_material_name = TRUE
applies_material_colour = TRUE
/obj/item/material/kitchen/utensil/spork/plastic
icon_state = "plastic_spork"
item_state = "fork"
@@ -126,6 +139,12 @@
use_material_name = TRUE
applies_material_colour = TRUE
/obj/item/material/kitchen/utensil/fork/chopsticks/plastic
icon_state = "plastic_chopsticks"
default_material = MATERIAL_PLASTIC
use_material_name = TRUE
applies_material_colour = TRUE
/obj/item/material/kitchen/utensil/spoon
name = "spoon"
desc = "It's a spoon. You can see your own upside-down face in it."
@@ -134,6 +153,12 @@
attack_verb = list("attacked", "poked")
force_divisor = 0.1 //2 when wielded with weight 20 (steel)
/obj/item/material/kitchen/utensil/spoon/bamboo
icon_state = "plastic_spoon"
default_material = MATERIAL_BAMBOO
use_material_name = TRUE
applies_material_colour = TRUE
/obj/item/material/kitchen/utensil/spoon/plastic
icon_state = "plastic_spoon"
item_state = "spoon"
@@ -172,6 +197,12 @@
return
return ..()
/obj/item/material/kitchen/utensil/knife/bamboo
icon_state = "plastic_knife"
default_material = MATERIAL_BAMBOO
use_material_name = TRUE
applies_material_colour = TRUE
/obj/item/material/kitchen/utensil/knife/plastic
icon_state = "plastic_knife"
item_state = "knife"