TGUI GPS & Mining Vendor & Ore Processing Console

This commit is contained in:
ShadowLarkens
2020-08-16 16:04:28 -07:00
parent 510162d2d5
commit 5bbd5334b6
9 changed files with 529 additions and 149 deletions

View File

@@ -33,7 +33,10 @@
/obj/machinery/mineral/processing_unit_console/attack_hand(mob/user)
if(..())
return
interact(user)
if(!allowed(user))
to_chat(user, "<span class='warning'>Access denied.</span>")
return
tgui_interact(user)
/obj/machinery/mineral/processing_unit_console/attackby(var/obj/item/I, var/mob/user)
if(istype(I, /obj/item/weapon/card/id))
@@ -42,97 +45,89 @@
if(!inserted_id && user.unEquip(I))
I.forceMove(src)
inserted_id = I
interact(user)
SStgui.update_uis(src)
return
..()
/obj/machinery/mineral/processing_unit_console/interact(mob/user)
if(..())
return
/obj/machinery/mineral/processing_unit_console/tgui_interact(mob/user, datum/tgui/ui)
ui = SStgui.try_update_ui(user, src, ui)
if(!ui)
ui = new(user, src, "MiningOreProcessingConsole", name)
ui.open()
if(!allowed(user))
to_chat(user, "<span class='warning'>Access denied.</span>")
return
/obj/machinery/mineral/processing_unit_console/tgui_data(mob/user, datum/tgui/ui, datum/tgui_state/state)
var/list/data = ..()
data["unclaimedPoints"] = machine.points
user.set_machine(src)
var/dat = "<h1>Ore processor console</h1>"
dat += "Current unclaimed points: [machine.points]<br>"
if(istype(inserted_id))
dat += "You have [inserted_id.mining_points] mining points collected. <A href='?src=\ref[src];choice=eject'>Eject ID.</A><br>"
dat += "<A href='?src=\ref[src];choice=claim'>Claim points.</A><br>"
if(inserted_id)
data["has_id"] = TRUE
data["id"] = list(
"name" = inserted_id.registered_name,
"points" = inserted_id.mining_points,
)
else
dat += "No ID inserted. <A href='?src=\ref[src];choice=insert'>Insert ID.</A><br>"
dat += "<hr><table>"
data["has_id"] = FALSE
data["ores"] = list()
for(var/ore in machine.ores_processing)
if(!machine.ores_stored[ore] && !show_all_ores) continue
if(!machine.ores_stored[ore] && !show_all_ores)
continue
var/ore/O = ore_data[ore]
if(!O) continue
dat += "<tr><td width = 40><b>[capitalize(O.display_name)]</b></td><td width = 30>[machine.ores_stored[ore]]</td><td width = 100>"
if(machine.ores_processing[ore])
switch(machine.ores_processing[ore])
if(PROCESS_NONE)
dat += "<font color='red'>not processing</font>"
if(PROCESS_SMELT)
dat += "<font color='orange'>smelting</font>"
if(PROCESS_COMPRESS)
dat += "<font color='blue'>compressing</font>"
if(PROCESS_ALLOY)
dat += "<font color='gray'>alloying</font>"
else
dat += "<font color='red'>not processing</font>"
dat += ".</td><td width = 30><a href='?src=\ref[src];toggle_smelting=[ore]'>\[change\]</a></td></tr>"
if(!O)
continue
data["ores"].Add(list(list(
"ore" = ore,
"name" = O.display_name,
"amount" = machine.ores_stored[ore],
"processing" = machine.ores_processing[ore] ? machine.ores_processing[ore] : 0,
)))
dat += "</table><hr>"
dat += "Currently displaying [show_all_ores ? "all ore types" : "only available ore types"]. <A href='?src=\ref[src];toggle_ores=1'>\[[show_all_ores ? "show less" : "show more"]\]</a></br>"
dat += "The ore processor is currently <A href='?src=\ref[src];toggle_power=1'>[(machine.active ? "<font color='green'>processing</font>" : "<font color='red'>disabled</font>")]</a>."
user << browse(dat, "window=processor_console;size=400x500")
onclose(user, "processor_console")
return
data["showAllOres"] = show_all_ores
data["power"] = machine.active
/obj/machinery/mineral/processing_unit_console/Topic(href, href_list)
return data
/obj/machinery/mineral/processing_unit_console/tgui_act(action, list/params)
if(..())
return 1
usr.set_machine(src)
src.add_fingerprint(usr)
return TRUE
if(href_list["toggle_smelting"])
var/choice = input("What setting do you wish to use for processing [href_list["toggle_smelting"]]?") as null|anything in list("Smelting","Compressing","Alloying","Nothing")
if(!choice) return
switch(choice)
if("Nothing") choice = PROCESS_NONE
if("Smelting") choice = PROCESS_SMELT
if("Compressing") choice = PROCESS_COMPRESS
if("Alloying") choice = PROCESS_ALLOY
machine.ores_processing[href_list["toggle_smelting"]] = choice
if(href_list["toggle_power"])
machine.active = !machine.active
if(href_list["toggle_ores"])
show_all_ores = !show_all_ores
if(href_list["choice"])
if(istype(inserted_id))
if(href_list["choice"] == "eject")
usr.put_in_hands(inserted_id)
inserted_id = null
if(href_list["choice"] == "claim")
add_fingerprint(usr)
switch(action)
if("toggleSmelting")
var/ore = params["ore"]
var/new_setting = params["set"]
if(new_setting == null)
new_setting = input("What setting do you wish to use for processing [ore]]?") as null|anything in list("Smelting","Compressing","Alloying","Nothing")
if(!new_setting)
return
switch(new_setting)
if("Nothing") new_setting = PROCESS_NONE
if("Smelting") new_setting = PROCESS_SMELT
if("Compressing") new_setting = PROCESS_COMPRESS
if("Alloying") new_setting = PROCESS_ALLOY
machine.ores_processing[ore] = new_setting
. = TRUE
if("power")
machine.active = !machine.active
. = TRUE
if("showAllOres")
show_all_ores = !show_all_ores
. = TRUE
if("logoff")
if(!inserted_id)
return
usr.put_in_hands(inserted_id)
inserted_id = null
. = TRUE
if("claim")
if(istype(inserted_id))
if(access_mining_station in inserted_id.access)
inserted_id.mining_points += machine.points
machine.points = 0
else
to_chat(usr, "<span class='warning'>Required access not found.</span>")
else if(href_list["choice"] == "insert")
. = TRUE
if("insert")
var/obj/item/weapon/card/id/I = usr.get_active_hand()
if(istype(I))
usr.drop_item()
@@ -140,9 +135,9 @@
inserted_id = I
else
to_chat(usr, "<span class='warning'>No valid ID.</span>")
src.updateUsrDialog()
return
. = TRUE
else
return FALSE
/**********************Mineral processing unit**************************/

View File

@@ -37,10 +37,10 @@
prize_list["Gear"] = list(
// TODO EQUIPMENT("Advanced Scanner", /obj/item/device/t_scanner/adv_mining_scanner, 800),
// TODO EQUIPMENT("Explorer's Webbing", /obj/item/storage/belt/mining, 500),
EQUIPMENT("Defense Equipment - Smoke Bomb", /obj/item/weapon/grenade/smokebomb, 100),
EQUIPMENT("Defense Equipment - Plasteel Machete", /obj/item/weapon/material/knife/machete, 500),
EQUIPMENT("Defense Equipment - Razor Drone Deployer", /obj/item/weapon/grenade/spawnergrenade/manhacks/station/locked, 1000),
EQUIPMENT("Defense Equipment - Sentry Drone Deployer", /obj/item/weapon/grenade/spawnergrenade/ward, 1500),
EQUIPMENT("Defense Equipment - Plasteel Machete", /obj/item/weapon/material/knife/machete, 500),
EQUIPMENT("Defense Equipment - Smoke Bomb", /obj/item/weapon/grenade/smokebomb, 100),
EQUIPMENT("Durasteel Fishing Rod", /obj/item/weapon/material/fishing_rod/modern/strong, 7500),
EQUIPMENT("Fishing Net", /obj/item/weapon/material/fishing_net, 500),
EQUIPMENT("Titanium Fishing Rod", /obj/item/weapon/material/fishing_rod/modern, 1000),
@@ -58,28 +58,28 @@
EQUIPMENT("10 Marker Beacons", /obj/item/stack/marker_beacon/ten, 100),
EQUIPMENT("30 Marker Beacons", /obj/item/stack/marker_beacon/thirty, 300),
EQUIPMENT("Fulton Pack", /obj/item/extraction_pack, 1200),
EQUIPMENT("Point Transfer Card", /obj/item/weapon/card/mining_point_card, 500),
EQUIPMENT("Shelter Capsule", /obj/item/device/survivalcapsule, 500),
EQUIPMENT("Trauma Medipen", /obj/item/weapon/reagent_containers/hypospray/autoinjector/trauma, 250),
EQUIPMENT("Burn Medipen", /obj/item/weapon/reagent_containers/hypospray/autoinjector/burn, 250),
EQUIPMENT("Oxy Medipen", /obj/item/weapon/reagent_containers/hypospray/autoinjector/oxy, 250),
EQUIPMENT("Detox Medipen", /obj/item/weapon/reagent_containers/hypospray/autoinjector/detox, 250),
EQUIPMENT("Injector (L) - Glucose", /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/glucose, 500),
EQUIPMENT("Injector (L) - Panacea", /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/purity, 500),
EQUIPMENT("Injector (L) - Trauma", /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/brute, 500),
EQUIPMENT("Nanopaste Tube", /obj/item/stack/nanopaste, 1000),
EQUIPMENT("Point Transfer Card", /obj/item/weapon/card/mining_point_card, 500),
EQUIPMENT("Shelter Capsule", /obj/item/device/survivalcapsule, 500),
EQUIPMENT("Burn Medipen", /obj/item/weapon/reagent_containers/hypospray/autoinjector/burn, 250),
EQUIPMENT("Detox Medipen", /obj/item/weapon/reagent_containers/hypospray/autoinjector/detox, 250),
EQUIPMENT("Oxy Medipen", /obj/item/weapon/reagent_containers/hypospray/autoinjector/oxy, 250),
EQUIPMENT("Trauma Medipen", /obj/item/weapon/reagent_containers/hypospray/autoinjector/trauma, 250),
)
prize_list["Kinetic Accelerator"] = list(
EQUIPMENT("Kinetic Accelerator", /obj/item/weapon/gun/energy/kinetic_accelerator, 900),
EQUIPMENT("KA White Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer, 125),
EQUIPMENT("KA Adjustable Tracer Rounds",/obj/item/borg/upgrade/modkit/tracer/adjustable, 175),
EQUIPMENT("KA Super Chassis", /obj/item/borg/upgrade/modkit/chassis_mod, 250),
EQUIPMENT("KA Hyper Chassis", /obj/item/borg/upgrade/modkit/chassis_mod/orange, 300),
EQUIPMENT("KA Range Increase", /obj/item/borg/upgrade/modkit/range, 1000),
EQUIPMENT("KA AoE Damage", /obj/item/borg/upgrade/modkit/aoe/mobs, 2000),
EQUIPMENT("KA Damage Increase", /obj/item/borg/upgrade/modkit/damage, 1000),
EQUIPMENT("KA Efficiency Increase", /obj/item/borg/upgrade/modkit/efficiency, 1200),
EQUIPMENT("KA AoE Damage", /obj/item/borg/upgrade/modkit/aoe/mobs, 2000),
EQUIPMENT("KA Holster", /obj/item/clothing/accessory/holster/waist/kinetic_accelerator, 350),
EQUIPMENT("KA Hyper Chassis", /obj/item/borg/upgrade/modkit/chassis_mod/orange, 300),
EQUIPMENT("KA Range Increase", /obj/item/borg/upgrade/modkit/range, 1000),
EQUIPMENT("KA Super Chassis", /obj/item/borg/upgrade/modkit/chassis_mod, 250),
EQUIPMENT("KA White Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer, 125),
)
prize_list["Digging Tools"] = list(
// EQUIPMENT("Diamond Pickaxe", /obj/item/weapon/pickaxe/diamond, 2000),
@@ -94,20 +94,20 @@
)
prize_list["Hardsuit"] = list(
EQUIPMENT("Hardsuit - Control Module", /obj/item/weapon/rig/industrial/vendor, 2000),
EQUIPMENT("Hardsuit - Plasma Cutter", /obj/item/rig_module/device/plasmacutter, 800),
EQUIPMENT("Hardsuit - Drill", /obj/item/rig_module/device/drill, 5000),
EQUIPMENT("Hardsuit - Ore Scanner", /obj/item/rig_module/device/orescanner, 1000),
EQUIPMENT("Hardsuit - Material Scanner", /obj/item/rig_module/vision/material, 500),
EQUIPMENT("Hardsuit - Maneuvering Jets", /obj/item/rig_module/maneuvering_jets, 1250),
EQUIPMENT("Hardsuit - Intelligence Storage",/obj/item/rig_module/ai_container, 2500),
EQUIPMENT("Hardsuit - Maneuvering Jets", /obj/item/rig_module/maneuvering_jets, 1250),
EQUIPMENT("Hardsuit - Material Scanner", /obj/item/rig_module/vision/material, 500),
EQUIPMENT("Hardsuit - Ore Scanner", /obj/item/rig_module/device/orescanner, 1000),
EQUIPMENT("Hardsuit - Plasma Cutter", /obj/item/rig_module/device/plasmacutter, 800),
EQUIPMENT("Hardsuit - Smoke Bomb Deployer", /obj/item/rig_module/grenade_launcher/smoke,2000),
)
prize_list["Miscellaneous"] = list(
EQUIPMENT("Absinthe", /obj/item/weapon/reagent_containers/food/drinks/bottle/absinthe, 125),
EQUIPMENT("Bar Shelter Capsule", /obj/item/device/survivalcapsule/luxurybar, 10000),
EQUIPMENT("Cigar", /obj/item/clothing/mask/smokable/cigarette/cigar/havana, 150),
EQUIPMENT("Digital Tablet - Standard", /obj/item/modular_computer/tablet/preset/custom_loadout/standard, 500),
EQUIPMENT("Digital Tablet - Advanced", /obj/item/modular_computer/tablet/preset/custom_loadout/advanced, 1000),
EQUIPMENT("Digital Tablet - Standard", /obj/item/modular_computer/tablet/preset/custom_loadout/standard, 500),
EQUIPMENT("Industrial Equipment - Phoron Bore", /obj/item/weapon/gun/magnetic/matfed, 3000),
EQUIPMENT("Industrial Equipment - Sheet-Snatcher",/obj/item/weapon/storage/bag/sheetsnatcher, 500),
EQUIPMENT("Laser Pointer", /obj/item/device/laser_pointer, 900),