Files
Polaris/code/modules/distillery/main.dm
Zulker Nayeen Nahiyan fbffce744c Fixes typos and indenting present in the destilery module, and renames it to distillery
Updates the #include's for the renamed files in `baystation12.dme`
2015-01-09 20:49:36 +06:00

269 lines
7.3 KiB
Plaintext

// This dreammaker file includes the food processing machines:
// - I. Mill
// - II. Fermenter
// - III. Still
// - IV. Squeezer
// - V. Centrifuge
// I. The mill is intended to be loaded with produce and returns ground up items. For example: Wheat should become flour and grapes should become raisins.
/obj/machinery/mill
var/list/obj/item/weapon/reagent_containers/food/input = list()
var/list/obj/item/weapon/reagent_containers/food/output = list()
var/obj/item/weapon/reagent_containers/food/milled_item
var/busy = 0
var/progress = 0
var/error = 0
name = "\improper Mill"
desc = "It is a machine that grinds produce."
icon_state = "autolathe"
density = 1
anchored = 1
use_power = 1
idle_power_usage = 10
active_power_usage = 1000
/obj/machinery/mill/process()
if (error)
return
if (!busy)
use_power = 1
if (input.len)
milled_item = input[1]
input -= milled_item
progress = 0
busy = 1
use_power = 2
return
progress++
if (progress < 10) // Edit this value to make milling faster or slower.
return // Not done yet.
switch (milled_item.type)
if (/obj/item/weapon/reagent_containers/food/snacks/grown/wheat) // Wheat becomes flour.
var/obj/item/weapon/reagent_containers/food/snacks/flour/F = new(src)
output += F
if (/obj/item/weapon/reagent_containers/food/snacks/flour) // Flour is still flour.
var/obj/item/weapon/reagent_containers/food/snacks/flour/F = new(src)
output += F
else
error = 1
del(milled_item)
busy = 0
/obj/machinery/mill/attackby(var/obj/item/weapon/W as obj, mob/user as mob)
if (istype(W,/obj/item/weapon/reagent_containers/food))
user.u_equip(W)
W.loc = src
input += W
else
..()
/obj/machinery/mill/attack_hand(var/mob/user as mob)
for (var/obj/item/weapon/reagent_containers/food/F in output)
F.loc = src.loc
output -= F
// II. The fermenter is intended to be loaded with food items and returns medium-strength alcohol items, sucha s wine and beer.
/obj/machinery/fermenter
var/list/obj/item/weapon/reagent_containers/food/input = list()
var/list/obj/item/weapon/reagent_containers/food/output = list()
var/obj/item/weapon/reagent_containers/food/fermenting_item
var/water_level = 0
var/busy = 0
var/progress = 0
var/error = 0
name = "\improper Fermenter"
desc = "It is a machine that ferments produce into alcoholic drinks."
icon_state = "autolathe"
density = 1
anchored = 1
use_power = 1
idle_power_usage = 10
active_power_usage = 500
/obj/machinery/fermenter/process()
if (error)
return
if (!busy)
use_power = 1
if (input.len)
fermenting_item = input[1]
input -= fermenting_item
progress = 0
busy = 1
use_power = 2
return
if (!water_level)
return
water_level--
progress++
if (progress < 10) // Edit this value to make milling faster or slower.
return // Not done yet.
switch (fermenting_item.type)
if (/obj/item/weapon/reagent_containers/food/snacks/flour) // Flour is still flour.
var/obj/item/weapon/reagent_containers/food/drinks/cans/beer/B = new(src)
output += B
else
error = 1
del(fermenting_item)
busy = 0
/obj/machinery/fermenter/attackby(var/obj/item/weapon/W as obj, mob/user as mob)
if (istype(W,/obj/item/weapon/reagent_containers/food))
user.u_equip(W)
W.loc = src
input += W
else
..()
/obj/machinery/fermenter/attack_hand(var/mob/user as mob)
for (var/obj/item/weapon/reagent_containers/food/F in output)
F.loc = src.loc
output -= F
// III. The still is a machine that is loaded with food items and returns hard liquor, such as vodka.
/obj/machinery/still
var/list/obj/item/weapon/reagent_containers/food/input = list()
var/list/obj/item/weapon/reagent_containers/food/output = list()
var/obj/item/weapon/reagent_containers/food/distilling_item
var/busy = 0
var/progress = 0
var/error = 0
name = "\improper Still"
desc = "It is a machine that produces hard liquor from alcoholic drinks."
icon_state = "autolathe"
density = 1
anchored = 1
use_power = 1
idle_power_usage = 10
active_power_usage = 10000
/obj/machinery/still/process()
if (error)
return
if (!busy)
use_power = 1
if (input.len)
distilling_item = input[1]
input -= distilling_item
progress = 0
busy = 1
use_power = 2
return
progress++
if (progress < 10) // Edit this value to make distilling faster or slower.
return // Not done yet.
switch (distilling_item.type)
if (/obj/item/weapon/reagent_containers/food/drinks/cans/beer) // Flour is still flour.
var/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/V = new(src)
output += V
else
error = 1
del(distilling_item)
busy = 0
/obj/machinery/still/attackby(var/obj/item/weapon/W as obj, mob/user as mob)
if (istype(W,/obj/item/weapon/reagent_containers/food))
user.u_equip(W)
W.loc = src
input += W
else
..()
/obj/machinery/still/attack_hand(var/mob/user as mob)
for (var/obj/item/weapon/reagent_containers/food/F in output)
F.loc = src.loc
output -= F
// IV. The squeezer is intended to destroy inserted food items, but return some of the reagents they contain.
/obj/machinery/squeezer
var/list/obj/item/weapon/reagent_containers/food/input = list()
var/obj/item/weapon/reagent_containers/food/squeezed_item
var/water_level = 0
var/busy = 0
var/progress = 0
var/error = 0
name = "\improper Squeezer"
desc = "It is a machine that squeezes extracts from produce."
icon_state = "autolathe"
density = 1
anchored = 1
use_power = 1
idle_power_usage = 10
active_power_usage = 500
// V. The centrifuge spins inserted food items. It is intended to squeeze out the reagents that are common food catalysts (enzymes currently)
/obj/machinery/centrifuge
var/list/obj/item/weapon/reagent_containers/food/input = list()
var/list/obj/item/weapon/reagent_containers/food/output = list()
var/obj/item/weapon/reagent_containers/food/spinning_item
var/busy = 0
var/progress = 0
var/error = 0
var/enzymes = 0
var/water = 0
name = "\improper Centrifuge"
desc = "It is a machine that spins produce."
icon_state = "autolathe"
density = 1
anchored = 1
use_power = 1
idle_power_usage = 10
active_power_usage = 10000
/obj/machinery/centrifuge/process()
if (error)
return
if (!busy)
use_power = 1
if (input.len)
spinning_item = input[1]
input -= spinning_item
progress = 0
busy = 1
use_power = 2
return
progress++
if (progress < 10) // Edit this value to make milling faster or slower.
return // Not done yet.
var/transfer_enzymes = spinning_item.reagents.get_reagent_amount("enzyme")
if (transfer_enzymes)
enzymes += transfer_enzymes
spinning_item.reagents.remove_reagent("enzyme",transfer_enzymes)
output += spinning_item
busy = 0
/obj/machinery/centrifuge/attackby(var/obj/item/weapon/W as obj, mob/user as mob)
if (istype(W,/obj/item/weapon/reagent_containers/food))
user.u_equip(W)
W.loc = src
input += W
else
..()
/obj/machinery/centrifuge/attack_hand(var/mob/user as mob)
for (var/obj/item/weapon/reagent_containers/food/F in output)
F.loc = src.loc
output -= F
while (enzymes >= 50)
enzymes -= 50
new/obj/item/weapon/reagent_containers/food/condiment/enzyme(src.loc)