mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-31 20:11:56 +00:00
* Adds a plumbing layer manifold (#57494) Adds a multilayer plumbing manifold, I also murdered the multilayer duct You can now alt-click the plumbing RCD to change the layer it prints. I made a whole thing where right clicking changed the settings and you could use that to change machinery aswell. I even did that with the plunger, it was absolutely beautiful. Anyway that drained the life out of me because apparently there's no attack_obj_secondary and afterattack_secondary ALSO called attack_obj (left click). I just hate whoever made it with intensity Plumbing now uses three layers. They should be easier to navigate. I tried to make layer connecting the same as cross-color connecting, but that would take more of my soul then there is to take * Adds a plumbing layer manifold Co-authored-by: Time-Green <timkoster1@hotmail.com>
52 lines
1.7 KiB
Plaintext
52 lines
1.7 KiB
Plaintext
///it splits the reagents however you want. So you can "every 60 units, 45 goes left and 15 goes straight". The side direction is EAST, you can change this in the component
|
|
/obj/machinery/plumbing/splitter
|
|
name = "Chemical Splitter"
|
|
desc = "A chemical splitter for smart chemical factorization. Waits till a set of conditions is met and then stops all input and splits the buffer evenly or other in two ducts."
|
|
icon_state = "splitter"
|
|
|
|
buffer = 100
|
|
density = FALSE
|
|
|
|
///constantly switches between TRUE and FALSE. TRUE means the batch tick goes straight, FALSE means the next batch goes in the side duct.
|
|
var/turn_straight = TRUE
|
|
///how much we must transfer straight. note input can be as high as 10 reagents per process, usually
|
|
var/transfer_straight = 5
|
|
///how much we must transfer to the side
|
|
var/transfer_side = 5
|
|
//the maximum you can set the transfer to
|
|
var/max_transfer = 9
|
|
|
|
/obj/machinery/plumbing/splitter/Initialize(mapload, bolt, layer)
|
|
. = ..()
|
|
AddComponent(/datum/component/plumbing/splitter, bolt, layer)
|
|
|
|
/obj/machinery/plumbing/splitter/ui_interact(mob/user, datum/tgui/ui)
|
|
ui = SStgui.try_update_ui(user, src, ui)
|
|
if(!ui)
|
|
ui = new(user, src, "ChemSplitter", name)
|
|
ui.open()
|
|
|
|
/obj/machinery/plumbing/splitter/ui_data(mob/user)
|
|
var/list/data = list()
|
|
data["straight"] = transfer_straight
|
|
data["side"] = transfer_side
|
|
data["max_transfer"] = max_transfer
|
|
return data
|
|
|
|
/obj/machinery/plumbing/splitter/ui_act(action, params)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
. = TRUE
|
|
switch(action)
|
|
if("set_amount")
|
|
var/direction = params["target"]
|
|
var/value = clamp(text2num(params["amount"]), 1, max_transfer)
|
|
switch(direction)
|
|
if("straight")
|
|
transfer_straight = value
|
|
if("side")
|
|
transfer_side = value
|
|
else
|
|
return FALSE
|