Merge pull request #164 from CIB/master

Energy to mass conversion in the chem dispenser
This commit is contained in:
Albert Iordache
2011-12-28 11:11:45 -08:00
2 changed files with 130 additions and 4 deletions
+18 -2
View File
@@ -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
View File
@@ -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 = ""