diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index dbf531f5f5..80fba122b4 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -19,9 +19,6 @@ var/shocked = 0 var/busy = 0 - var/input_dir = NORTH //YWedit - var/input_dir_name = "North"//YWEdit - var/mat_efficiency = 1 var/build_time = 50 @@ -273,147 +270,6 @@ update_tgui_static_data(usr) /obj/machinery/autolathe/dismantle() -<<<<<<< HEAD - for(var/mat in stored_material) - var/datum/material/M = get_material_by_name(mat) - if(!istype(M)) - continue - var/obj/item/stack/material/S = new M.stack_type(get_turf(src)) - if(stored_material[mat] > S.perunit) - S.amount = round(stored_material[mat] / S.perunit) - else - qdel(S) - ..() - return 1 - -/obj/machinery/autolathe/proc/eject_materials(var/material, var/amount) // 0 amount = 0 means ejecting a full stack; -1 means eject everything - var/recursive = amount == -1 ? 1 : 0 - var/matstring = lowertext(material) - var/datum/material/M = get_material_by_name(matstring) - - var/obj/item/stack/material/S = M.place_sheet(get_turf(src)) - if(amount <= 0) - amount = S.max_amount - var/ejected = min(round(stored_material[matstring] / S.perunit), amount) - S.amount = min(ejected, amount) - if(S.amount <= 0) - qdel(S) - return - stored_material[matstring] -= ejected * S.perunit - if(recursive && stored_material[matstring] >= S.perunit) - eject_materials(matstring, -1) - - -//YWAdd start. -/obj/machinery/autolathe/verb/eatmaterialsnearby() - set name = "Recycle nearby materials" - set category = "Object" - set src in oview(1) - - var/filltype = 0 // Used to determine message. - var/total_used = 0 // Amount of material used. - if(busy) - visible_message("[bicon(src)]\The [src] beeps, \"Autolathe is busy. Please wait for completion of previous operation\"") - return - busy = 1 - for(var/obj/item/eating in get_step(src,input_dir)) - if(istype(eating,/obj/item/ammo_magazine/clip) || istype(eating,/obj/item/ammo_magazine/s357) || istype(eating,/obj/item/ammo_magazine/s38) || istype(eating,/obj/item/ammo_magazine/s44) || istype(eating,/obj/item/stack)) - continue - - if(!eating.matter) - continue - - - var/mass_per_sheet = 0 // Amount of material constituting one sheet. - for(var/material in eating.matter) - - if(isnull(stored_material[material]) || isnull(storage_capacity[material])) - continue - - if(stored_material[material] >= storage_capacity[material]) - continue - - var/total_material = eating.matter[material] - - - if(stored_material[material] + total_material > storage_capacity[material]) - total_material = storage_capacity[material] - stored_material[material] - filltype = 1 - else - filltype = 2 - - stored_material[material] += total_material - total_used += total_material - mass_per_sheet += eating.matter[material] - - if(!filltype) - visible_message("[bicon(src)]\The [src] beeps, \"Storage is full. Operation aborted\"") - break - - flick("autolathe_loading", src) - - if(istype(eating,/obj/item/stack)) - var/obj/item/stack/stack = eating - stack.use(max(1, round(total_used/mass_per_sheet))) // Always use at least 1 to prevent infinite materials. - else - qdel(eating) - sleep(10*mat_efficiency) - - busy = 0 - if(filltype == 1) - visible_message("[bicon(src)] \The [src] beeps, \"Storage capacity full. Operation terminated. Materials recycled: [total_used]\"") - else - visible_message("[bicon(src)] \The [src] beeps, \"All materials recycled. Operation terminated. Materials recycled: [total_used]\"") - - - -/obj/machinery/autolathe/verb/setrecyclepos() - set name = "Set recycle input" - set category = "Object" - set src in oview(1) - - input_dir_name = input("Which direction ?") in list("North", "South", "East", "West") - switch(input_dir_name) - if("North") - input_dir = NORTH - if("South") - input_dir = SOUTH - if("East") - input_dir = EAST - if("West") - input_dir = WEST - to_chat(src, "You set the material input to [input_dir_name]") -//YWAdd END. -||||||| parent of 6dc1c76a74... Merge pull request #10631 from ShadowLarkens/material_container - for(var/mat in stored_material) - var/datum/material/M = get_material_by_name(mat) - if(!istype(M)) - continue - var/obj/item/stack/material/S = new M.stack_type(get_turf(src)) - if(stored_material[mat] > S.perunit) - S.amount = round(stored_material[mat] / S.perunit) - else - qdel(S) - ..() - return 1 - -/obj/machinery/autolathe/proc/eject_materials(var/material, var/amount) // 0 amount = 0 means ejecting a full stack; -1 means eject everything - var/recursive = amount == -1 ? 1 : 0 - var/matstring = lowertext(material) - var/datum/material/M = get_material_by_name(matstring) - - var/obj/item/stack/material/S = M.place_sheet(get_turf(src)) - if(amount <= 0) - amount = S.max_amount - var/ejected = min(round(stored_material[matstring] / S.perunit), amount) - S.amount = min(ejected, amount) - if(S.amount <= 0) - qdel(S) - return - stored_material[matstring] -= ejected * S.perunit - if(recursive && stored_material[matstring] >= S.perunit) - eject_materials(matstring, -1) -======= var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) materials.retrieve_all() return ..() @@ -428,4 +284,3 @@ var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) if(in_range(user, src) || isobserver(user)) . += "The status display reads: Storing up to [materials.max_amount] material units.
Material consumption at [mat_efficiency*100]%.
" ->>>>>>> 6dc1c76a74... Merge pull request #10631 from ShadowLarkens/material_container