mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 11:37:40 +01:00
Merge pull request #164 from CIB/master
Energy to mass conversion in the chem dispenser
This commit is contained in:
@@ -8,11 +8,13 @@
|
||||
anchored = 1
|
||||
icon = 'chemical.dmi'
|
||||
icon_state = "dispenser"
|
||||
use_power = 1
|
||||
var/energy = 25
|
||||
var/max_energy = 75
|
||||
var/amount = 30
|
||||
var/beaker = null
|
||||
var/list/dispensable_reagents = list("hydrogen","lithium","carbon","nitrogen","oxygen","fluorine","sodium","aluminum","silicon","phosphorus","sulfur","chlorine","potassium","iron","copper","mercury","radium","water","ethanol","sugar","acid","milk",)
|
||||
var/charging_reagents = 0
|
||||
|
||||
ex_act(severity)
|
||||
switch(severity)
|
||||
@@ -33,12 +35,16 @@
|
||||
return
|
||||
|
||||
proc/updateWindow(mob/user as mob)
|
||||
winset(user, "chemdispenser.energy", "text=\"Energy: [src.energy]\"")
|
||||
winset(user, "chemdispenser.energy", "text=\"Energy: [round(src.energy)]\"")
|
||||
winset(user, "chemdispenser.amount", "text=\"Amount: [src.amount]\"")
|
||||
if (beaker)
|
||||
winset(user, "chemdispenser.eject", "text=\"Eject beaker\"")
|
||||
else
|
||||
winset(user, "chemdispenser.eject", "text=\"\[Insert beaker\]\"")
|
||||
if(charging_reagents)
|
||||
winset(user, "chemdispenser.charging", "text=\"Charging\"")
|
||||
else
|
||||
winset(user, "chemdispenser.charging", "text=\"Not Charging\"")
|
||||
proc/initWindow(mob/user as mob)
|
||||
var/i = 0
|
||||
var list/nameparams = params2list(winget(user, "chemdispenser_reagents.template_name", "pos;size;type;image;image-mode"))
|
||||
@@ -77,6 +83,8 @@
|
||||
var/obj/item/weapon/reagent_containers/glass/B = src.beaker
|
||||
B.loc = src.loc
|
||||
src.beaker = null
|
||||
else if (data == "tcharge")
|
||||
src.charging_reagents = !src.charging_reagents
|
||||
else if (copytext(data, 1, 7) == "amount")
|
||||
if (text2num(copytext(data, 7)))
|
||||
amount = text2num(copytext(data, 7))
|
||||
@@ -85,7 +93,7 @@
|
||||
var/obj/item/weapon/reagent_containers/glass/B = src.beaker
|
||||
var/datum/reagents/R = B.reagents
|
||||
var/space = R.maximum_volume - R.total_volume
|
||||
R.add_reagent(data, min(amount, energy * 10, space))
|
||||
R.add_reagent(data, min(amount, round(energy) * 10, space))
|
||||
energy = max(energy - min(amount, space) / 10, 0)
|
||||
|
||||
amount = round(amount, 10) // Chem dispenser doesnt really have that much prescion
|
||||
@@ -143,6 +151,14 @@
|
||||
user.skincmds["chemdispenser"] = src
|
||||
return
|
||||
|
||||
|
||||
/obj/machinery/chem_dispenser/process()
|
||||
if(stat & NOPOWER) return
|
||||
if(!charging_reagents) return
|
||||
|
||||
use_power(5000)
|
||||
src.energy += 0.01
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
+112
-2
@@ -323,6 +323,116 @@ window "chemdispenser"
|
||||
macro = ""
|
||||
menu = ""
|
||||
on-close = ""
|
||||
elem "charging"
|
||||
type = BUTTON
|
||||
pos = 72,24
|
||||
size = 88x20
|
||||
anchor1 = none
|
||||
anchor2 = none
|
||||
font-family = ""
|
||||
font-size = 0
|
||||
font-style = ""
|
||||
text-color = #000000
|
||||
background-color = none
|
||||
is-visible = true
|
||||
is-disabled = false
|
||||
is-transparent = false
|
||||
is-default = false
|
||||
border = none
|
||||
drop-zone = false
|
||||
right-click = false
|
||||
saved-params = "is-checked"
|
||||
on-size = ""
|
||||
text = "[Not charging]"
|
||||
image = ""
|
||||
command = "skincmd \"chemdispenser;tcharge\""
|
||||
is-flat = false
|
||||
stretch = false
|
||||
is-checked = false
|
||||
group = ""
|
||||
button-type = pushbutton
|
||||
elem "button4"
|
||||
type = BUTTON
|
||||
pos = 208,4
|
||||
size = 48x20
|
||||
anchor1 = none
|
||||
anchor2 = none
|
||||
font-family = ""
|
||||
font-size = 0
|
||||
font-style = ""
|
||||
text-color = #000000
|
||||
background-color = none
|
||||
is-visible = true
|
||||
is-disabled = false
|
||||
is-transparent = false
|
||||
is-default = false
|
||||
border = none
|
||||
drop-zone = false
|
||||
right-click = false
|
||||
saved-params = "is-checked"
|
||||
on-size = ""
|
||||
text = "[Other]"
|
||||
image = ""
|
||||
command = "skincmd \"chemdispenser;amountc\""
|
||||
is-flat = false
|
||||
stretch = false
|
||||
is-checked = false
|
||||
group = ""
|
||||
button-type = pushbutton
|
||||
elem "child2"
|
||||
type = CHILD
|
||||
pos = 0,48
|
||||
size = 340x432
|
||||
anchor1 = none
|
||||
anchor2 = none
|
||||
font-family = ""
|
||||
font-size = 0
|
||||
font-style = ""
|
||||
text-color = #000000
|
||||
background-color = none
|
||||
is-visible = true
|
||||
is-disabled = false
|
||||
is-transparent = false
|
||||
is-default = false
|
||||
border = none
|
||||
drop-zone = false
|
||||
right-click = false
|
||||
saved-params = "splitter"
|
||||
on-size = ""
|
||||
left = "chemdispenser_reagents"
|
||||
right = ""
|
||||
is-vert = false
|
||||
splitter = 50
|
||||
show-splitter = true
|
||||
lock = none
|
||||
elem "button3"
|
||||
type = BUTTON
|
||||
pos = 208,4
|
||||
size = 48x20
|
||||
anchor1 = none
|
||||
anchor2 = none
|
||||
font-family = ""
|
||||
font-size = 0
|
||||
font-style = ""
|
||||
text-color = #000000
|
||||
background-color = none
|
||||
is-visible = true
|
||||
is-disabled = false
|
||||
is-transparent = false
|
||||
is-default = false
|
||||
border = none
|
||||
drop-zone = false
|
||||
right-click = false
|
||||
saved-params = "is-checked"
|
||||
on-size = ""
|
||||
text = "[Other]"
|
||||
image = ""
|
||||
command = "skincmd \"chemdispenser;amountc\""
|
||||
is-flat = false
|
||||
stretch = false
|
||||
is-checked = false
|
||||
group = ""
|
||||
button-type = pushbutton
|
||||
elem "energy"
|
||||
type = LABEL
|
||||
pos = 8,24
|
||||
@@ -517,8 +627,8 @@ window "chemdispenser"
|
||||
text-wrap = false
|
||||
elem "child1"
|
||||
type = CHILD
|
||||
pos = 0,40
|
||||
size = 340x440
|
||||
pos = 0,56
|
||||
size = 340x424
|
||||
anchor1 = none
|
||||
anchor2 = none
|
||||
font-family = ""
|
||||
|
||||
Reference in New Issue
Block a user