Merge pull request #6724 from Citadel-Station-13/upstream-merge-37673

[MIRROR] Runtime: fixes RTG power, adjusts pipenet, adds debug chem dispensers
This commit is contained in:
LetterJay
2018-05-13 10:14:25 -05:00
committed by GitHub
6 changed files with 230 additions and 68 deletions

View File

@@ -25,6 +25,9 @@
/area/engine/atmos)
"ai" = (
/obj/machinery/power/rtg/advanced,
/obj/structure/cable{
icon_state = "0-2"
},
/turf/open/floor/plating/airless,
/area/space/nearstation)
"aj" = (
@@ -73,7 +76,7 @@
/obj/structure/cable{
icon_state = "0-4"
},
/turf/open/floor/plating,
/turf/open/floor/plasteel,
/area/engine/engineering)
"aq" = (
/obj/machinery/computer/monitor,
@@ -84,11 +87,11 @@
/obj/machinery/light{
dir = 1
},
/turf/open/floor/plating,
/turf/open/floor/plasteel,
/area/engine/engineering)
"ar" = (
/obj/structure/closet/secure_closet/engineering_welding,
/turf/open/floor/plating,
/turf/open/floor/plasteel,
/area/engine/engineering)
"as" = (
/obj/machinery/power/smes{
@@ -182,12 +185,6 @@
/obj/machinery/door/airlock/external/glass,
/turf/open/floor/plating,
/area/engine/engineering)
"aD" = (
/obj/structure/cable{
icon_state = "4-8"
},
/turf/open/floor/plating,
/area/engine/engineering)
"aE" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -195,10 +192,16 @@
/obj/structure/cable{
icon_state = "2-8"
},
/turf/open/floor/plating,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 6
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"aF" = (
/turf/open/floor/plating,
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 8
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"aG" = (
/obj/machinery/power/terminal{
@@ -292,7 +295,7 @@
},
/obj/item/storage/toolbox/syndicate,
/obj/item/stock_parts/cell/infinite,
/turf/open/floor/plating,
/turf/open/floor/plasteel,
/area/engine/engineering)
"aT" = (
/obj/structure/cable{
@@ -301,7 +304,8 @@
/obj/structure/cable{
icon_state = "2-4"
},
/turf/open/floor/plating,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/engine/engineering)
"aU" = (
/obj/machinery/door/airlock/engineering/glass{
@@ -382,17 +386,18 @@
/obj/structure/table,
/obj/item/weldingtool/experimental,
/obj/item/inducer,
/turf/open/floor/plating,
/turf/open/floor/plasteel,
/area/engine/engineering)
"be" = (
/obj/structure/cable{
icon_state = "1-2"
},
/turf/open/floor/plating,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/engine/engineering)
"bf" = (
/obj/machinery/suit_storage_unit/captain,
/turf/open/floor/plating,
/turf/open/floor/plasteel,
/area/engine/engineering)
"bg" = (
/obj/effect/turf_decal/stripes/line{
@@ -453,16 +458,15 @@
/turf/open/floor/plating,
/area/engine/atmos)
"bo" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/obj/structure/table,
/obj/item/screwdriver/power,
/obj/item/wirecutters/power,
/turf/open/floor/plating,
/turf/open/floor/plasteel,
/area/engine/engineering)
"bp" = (
/obj/machinery/light,
/obj/structure/tank_dispenser,
/turf/open/floor/plating,
/turf/open/floor/plasteel,
/area/engine/engineering)
"bq" = (
/obj/effect/turf_decal/stripes/line{
@@ -496,15 +500,12 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/bridge)
"bw" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/closed/wall/r_wall,
/area/engine/engineering)
"bx" = (
/obj/machinery/door/airlock,
/obj/structure/cable{
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
/area/engine/engineering)
"by" = (
@@ -628,7 +629,7 @@
/turf/open/floor/plasteel/dark,
/area/medical/chemistry)
"bS" = (
/obj/machinery/chem_dispenser,
/obj/machinery/chem_dispenser/fullupgrade,
/turf/open/floor/plasteel/dark,
/area/medical/chemistry)
"bU" = (
@@ -741,16 +742,6 @@
/obj/machinery/door/airlock,
/turf/open/floor/plating,
/area/bridge)
"ci" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/cable{
icon_state = "4-8"
},
/obj/structure/cable{
icon_state = "1-8"
},
/turf/open/floor/plasteel,
/area/medical/chemistry)
"cj" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -791,8 +782,10 @@
/area/science)
"cp" = (
/obj/machinery/light,
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/obj/structure/closet/secure_closet/engineering_chief,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 6
},
/turf/open/floor/plasteel/blue/side{
dir = 10
},
@@ -814,7 +807,6 @@
/turf/closed/wall/r_wall,
/area/bridge)
"ct" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/light{
dir = 8
},
@@ -888,8 +880,10 @@
/turf/closed/wall/r_wall,
/area/medical/chemistry)
"cF" = (
/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/turf/open/floor/plasteel,
/area/medical/chemistry)
"cG" = (
@@ -1003,12 +997,6 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/storage/primary)
"db" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 1
},
/turf/open/floor/plating,
/area/storage/primary)
"dc" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -1310,6 +1298,15 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/science)
"gM" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 1
},
/turf/open/floor/plasteel,
/area/storage/primary)
"gY" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 8
@@ -1317,7 +1314,6 @@
/turf/open/floor/plasteel,
/area/science)
"hD" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/power/apc{
dir = 1;
pixel_y = 25
@@ -1398,6 +1394,11 @@
},
/turf/open/floor/plasteel,
/area/medical/chemistry)
"sE" = (
/obj/machinery/power/rtg/advanced,
/obj/structure/cable,
/turf/open/floor/plating/airless,
/area/space/nearstation)
"vv" = (
/obj/machinery/door/airlock,
/turf/open/floor/plating,
@@ -1433,6 +1434,16 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/medical/chemistry)
"yp" = (
/obj/structure/cable{
icon_state = "4-8"
},
/obj/structure/cable{
icon_state = "1-8"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/medical/chemistry)
"AP" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 8
@@ -1462,12 +1473,24 @@
/obj/machinery/rnd/production/circuit_imprinter/department,
/turf/open/floor/plasteel,
/area/science)
"CK" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
/turf/open/floor/plasteel,
/area/medical/chemistry)
"CV" = (
/obj/structure/cable{
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/medical/chemistry)
"EI" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 8
},
/turf/open/floor/plasteel/blue/side,
/area/bridge)
"If" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -1489,6 +1512,10 @@
/obj/machinery/door/airlock,
/turf/open/floor/plating,
/area/hallway/primary/central)
"Ly" = (
/obj/machinery/chem_dispenser/chem_synthesizer,
/turf/open/floor/plasteel/dark,
/area/medical/chemistry)
"NZ" = (
/obj/machinery/rnd/production/protolathe/department,
/turf/open/floor/plasteel,
@@ -1500,6 +1527,13 @@
/obj/machinery/door/airlock/external/glass,
/turf/open/floor/plating,
/area/medical/medbay)
"RC" = (
/obj/machinery/power/rtg/advanced,
/obj/structure/cable{
icon_state = "0-4"
},
/turf/open/floor/plating/airless,
/area/space/nearstation)
"RY" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -1515,6 +1549,12 @@
/obj/machinery/light,
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"Vy" = (
/obj/structure/cable{
icon_state = "4-8"
},
/turf/open/floor/plasteel,
/area/engine/engineering)
"WT" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -2627,14 +2667,14 @@ ae
ab
ai
an
ai
RC
aQ
ai
sE
ab
bv
bI
cf
cq
EI
bv
dU
bE
@@ -2683,7 +2723,7 @@ ai
ao
aA
aR
ai
sE
ab
bv
BG
@@ -2897,7 +2937,7 @@ ae
ac
ac
aj
aD
Vy
aj
ac
ac
@@ -3005,20 +3045,20 @@ ad
af
aj
ap
aD
Vy
aS
bd
bo
bw
aj
hD
ci
cj
ct
wT
Ce
cF
bN
bN
cU
db
bE
bE
cS
dl
dl
dl
dl
@@ -3065,14 +3105,14 @@ be
be
bx
CV
cj
Ce
Ce
oV
bE
bE
cS
dc
yp
wT
wT
CK
bN
bN
cU
gM
dc
dA
dl
@@ -3114,7 +3154,7 @@ af
aj
ar
aF
aD
Vy
bf
bp
aj
@@ -3334,7 +3374,7 @@ aX
aI
aI
ak
bS
Ly
pQ
Xg
Ce

View File

@@ -499,3 +499,17 @@ obj/machinery/chem_dispenser/proc/work_animation()
"ammonia",
"ash",
"diethylamine")
/obj/machinery/chem_dispenser/fullupgrade //fully upgraded stock parts
/obj/machinery/chem_dispenser/fullupgrade/Initialize()
. = ..()
component_parts = list()
component_parts += new /obj/item/circuitboard/machine/chem_dispenser(null)
component_parts += new /obj/item/stock_parts/matter_bin/bluespace(null)
component_parts += new /obj/item/stock_parts/matter_bin/bluespace(null)
component_parts += new /obj/item/stock_parts/capacitor/quadratic(null)
component_parts += new /obj/item/stock_parts/manipulator/femto(null)
component_parts += new /obj/item/stack/sheet/glass(null)
component_parts += new /obj/item/stock_parts/cell/bluespace(null)
RefreshParts()

View File

@@ -0,0 +1,85 @@
/obj/machinery/chem_dispenser/chem_synthesizer //formerly SCP-294 made by mrty, but now only for testing purposes
name = "\improper debug chemical synthesizer"
desc = "If you see this, yell at adminbus."
icon = 'icons/obj/chemical.dmi'
icon_state = "dispenser"
amount = 10
resistance_flags = INDESTRUCTIBLE | FIRE_PROOF | ACID_PROOF | LAVA_PROOF
working_state = null
nopower_state = null
flags_1 = NODECONSTRUCT_1
var/static/list/shortcuts = list(
"meth" = "methamphetamine",
"tricord" = "tricordrazine"
)
var/mutable_appearance/top_overlay
/obj/machinery/chem_dispenser/chem_synthesizer/Initialize()
. = ..()
GLOB.poi_list += src
top_overlay = mutable_appearance(icon, "disp_beaker", layer = ABOVE_ALL_MOB_LAYER)
update_icon()
/obj/machinery/chem_dispenser/chem_synthesizer/update_icon()
cut_overlays()
add_overlay(top_overlay)
/obj/machinery/chem_dispenser/chem_synthesizer/Destroy()
. = ..()
GLOB.poi_list -= src
QDEL_NULL(top_overlay)
/obj/machinery/chem_dispenser/chem_synthesizer/display_beaker()
return
/obj/machinery/chem_dispenser/chem_synthesizer/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \
datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "chem_synthesizer", name, 390, 315, master_ui, state)
ui.open()
/obj/machinery/chem_dispenser/chem_synthesizer/ui_act(action, params)
if(..())
return
update_icon()
switch(action)
if("ejectBeaker")
if(beaker)
beaker.forceMove(drop_location())
if(Adjacent(usr) && !issilicon(usr))
usr.put_in_hands(beaker)
beaker = null
. = TRUE
if("input")
var/input_reagent = replacetext(lowertext(input("Enter the name of any liquid", "Input") as text), " ", "") //95% of the time, the reagent id is a lowercase/no spaces version of the name
if(shortcuts[input_reagent])
input_reagent = shortcuts[input_reagent]
else
input_reagent = find_reagent(input_reagent)
if(!input_reagent || !GLOB.chemical_reagents_list[input_reagent])
say("OUT OF RANGE")
return
else
if(!beaker)
return
else if(!beaker.reagents && !QDELETED(beaker))
beaker.create_reagents(beaker.volume)
beaker.reagents.add_reagent(input_reagent, amount)
if("makecup")
if(beaker)
return
beaker = new /obj/item/reagent_containers/glass/beaker/bluespace(src)
visible_message("<span class='notice'>[src] dispenses a bluespace beaker.</span>")
/obj/machinery/chem_dispenser/chem_synthesizer/proc/find_reagent(input)
. = FALSE
if(GLOB.chemical_reagents_list[input]) //prefer IDs!
var/datum/reagent/R = GLOB.chemical_reagents_list[input]
if(R.can_synth_debug)
return input
else
for(var/X in GLOB.chemical_reagents_list)
var/datum/reagent/R = GLOB.chemical_reagents_list[X]
if(R.can_synth_debug && input == replacetext(lowertext(R.name), " ", ""))
return X

View File

@@ -20,7 +20,8 @@
var/current_cycle = 0
var/volume = 0
var/color = "#000000" // rgb: 0, 0, 0
var/can_synth = TRUE
var/can_synth = TRUE // can this reagent be synthesized? (for example: odysseus syringe gun)
var/can_synth_debug = TRUE // can this reagent be synthesized by the debug chem synthesizer?
var/metabolization_rate = REAGENTS_METABOLISM //how fast the reagent is metabolized by the mob
var/overrides_metab = 0
var/overdose_threshold = 0

View File

@@ -2332,6 +2332,7 @@
#include "code\modules\reagents\chemistry\machinery\chem_dispenser.dm"
#include "code\modules\reagents\chemistry\machinery\chem_heater.dm"
#include "code\modules\reagents\chemistry\machinery\chem_master.dm"
#include "code\modules\reagents\chemistry\machinery\chem_synthesizer.dm"
#include "code\modules\reagents\chemistry\machinery\pandemic.dm"
#include "code\modules\reagents\chemistry\machinery\reagentgrinder.dm"
#include "code\modules\reagents\chemistry\machinery\smoke_machine.dm"

View File

@@ -0,0 +1,21 @@
<ui-display title='Recipient Contents'>
<ui-section>
<ui-button icon='eject' state='{{data.isBeakerLoaded ? null : "disabled"}}' action='ejectBeaker'>Eject</ui-button>
<ui-button icon='circle' state='{{data.isBeakerLoaded ? null : "disabled"}}' action='input'>Input</ui-button>
<ui-button icon='plus' state='{{data.isBeakerLoaded ? "disabled" : null}}' action='makecup'>Create Beaker</ui-button>
</ui-section>
</ui-display>
<ui-display title='Recipient'>
<ui-section label='Contents'>
{{#if data.isBeakerLoaded}}
<span>{{Math.round(adata.beakerCurrentVolume)}}/{{data.beakerMaxVolume}} Units</span>
{{#each adata.beakerContents}}
<span class='highlight' intro-outro='fade'>{{Math.fixed(volume, 2)}} units of {{name}}</span><br/>
{{else}}
<span class='bad'>Recipient Empty</span>
{{/each}}
{{else}}
<span class='average'>No Recipient</span>
{{/if}}
</ui-section>
</ui-display>