Food Synthesizers (#19569)

* Food Synthesizers

Initial port, need to figure out what madness you people have done to tgui... and sprite sheets.

At this moment, it compiles but I haven't tested it yet.  Too eepy

* iconforge spritesheet nonsense

* Cleaning up tgui menu

full disclosure, After six plus hours of trying to figure out how to do the spritesheets  and the tgui stuff I just gave up on this particular bit and threw it into Gemini for a looksie over.

As it's originally my code I figure it's worth at least a reasonable proof read. The side-by-side comparison is pretty wild.

* Passes tgu-lint building

* Appease Gripe err Grep checks

* Oh these for the grep as well whoops

* Sorts out the backend

also piss off linter check, it's COMMENTED OUT aaaaaaaaaa.

* changes from will

* changes from will and some UI splitting, needs proper testing and final adjustments

* passadata

* .

* can be combined

* .

* ml={1}

* id

* Crew category

* id handling

* .

* more cleanup

* smaller cleanup

* why not

* deps up, minor tgui core fix

* timer

* .

* .

* missed to put that back

* order

* this

* Change preference category for foodsynth cookies

* Enforce south facement for cookie image

* Maurice I am no longer asking

* .

---------

Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
Poojawa
2026-07-09 20:50:35 +02:00
committed by GitHub
co-authored by Kashargul
parent 9a8be3b591
commit ba0fd0be33
26 changed files with 2378 additions and 47 deletions
+18 -1
View File
@@ -24,6 +24,7 @@ GLOBAL_LIST(construction_frame_floor)
var/frame_style = FRAME_STYLE_FLOOR // "floor" or "wall"
var/x_offset // For wall frames: pixel_x
var/y_offset // For wall frames: pixel_y
var/is_dense = TRUE // Lazy workaround for wall-mounted, upgradable machines
// Get the icon state to use at a given state. Default implementation is based on the frame's name
/datum/frame/frame_types/proc/get_icon_state(state)
@@ -217,6 +218,22 @@ GLOBAL_LIST(construction_frame_floor)
circuit = /obj/item/circuitboard/injector_maker
frame_size = 3
/datum/frame/frame_types/foodsynthesizer
name = "Food Synthesizer"
icon_override = 'icons/obj/machines/foodsynthesizer.dmi'
frame_class = FRAME_CLASS_MACHINE
frame_size = 5
frame_style = FRAME_STYLE_WALL
x_offset = 24
y_offset = 30
is_dense = FALSE
/datum/frame/frame_types/foodsynthesizer/mini
name = "Mini Food Synthesizer"
frame_class = FRAME_CLASS_MACHINE
frame_size = 3 // smaller, so slightly fewer sheets
frame_style = FRAME_STYLE_WALL
// Refinery machines
/datum/frame/frame_types/industrial_reagent_grinder
name = "Industrial Chemical Grinder"
@@ -350,7 +367,7 @@ GLOBAL_LIST(construction_frame_floor)
if(frame_type.name == "Computer")
density = TRUE
if(frame_type.frame_class == FRAME_CLASS_MACHINE)
if(frame_type.frame_class == FRAME_CLASS_MACHINE && frame_type.is_dense)
density = TRUE
update_icon()