Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Больше РнД фиксов #3310

Merged
merged 38 commits into from
Feb 25, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
5112fa6
Тест тест?
Lexanx Jul 26, 2024
50afd59
Revert "Тест тест?"
Lexanx Jul 26, 2024
55d7781
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Jul 26, 2024
bfadba6
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Aug 1, 2024
241e17f
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Aug 5, 2024
0bb7584
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Aug 22, 2024
a886e10
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Sep 29, 2024
bbcd6be
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Oct 17, 2024
56dd013
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Oct 22, 2024
4609819
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Nov 3, 2024
2a937b7
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Nov 3, 2024
0ce5434
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Nov 5, 2024
27b4bc1
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Nov 6, 2024
0cc34b0
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Nov 9, 2024
3c4bc5b
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Nov 10, 2024
ca46a3a
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Nov 12, 2024
643a403
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Nov 14, 2024
75bf4a8
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Nov 24, 2024
2cf9df9
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Nov 24, 2024
44cf246
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Nov 28, 2024
992dcac
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Dec 1, 2024
02a640d
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Dec 1, 2024
2ad6b98
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Dec 19, 2024
c3d0502
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Dec 21, 2024
5fc193d
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Jan 4, 2025
10a8e43
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Jan 5, 2025
b5aa102
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Jan 10, 2025
f62c0dd
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Jan 19, 2025
e4f3dd9
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Jan 30, 2025
aa8e45a
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Feb 1, 2025
eeff875
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Feb 8, 2025
3541b87
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Feb 21, 2025
874dbf6
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Feb 22, 2025
dd1ac1d
Merge branch 'SierraBay:dev-sierra' into dev-sierra
Lexanx Feb 22, 2025
784bd8d
morerndfix
Lexanx Feb 24, 2025
d75874c
Merge branch 'dev-sierra' into morerndfixes
Lexanx Feb 25, 2025
7edc66a
bump
Lexanx Feb 25, 2025
1b71e13
bump
Lexanx Feb 25, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions maps/sierra/sierra_shuttles.dm
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ SIERRA_ESCAPE_POD(11)
logging_home_tag = "nav_petrov_start"
sound_takeoff = 'sound/effects/rocket.ogg'
sound_landing = 'sound/effects/rocket_backwards.ogg'
logging_access = access_petrov_helm
range = 1
fuel_consumption = 6
warmup_time = 10
Expand Down
2 changes: 1 addition & 1 deletion maps/sierra/z1-z5_sierra.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -100177,7 +100177,7 @@
/obj/paint_stripe/nt_red,
/obj/machinery/button/blast_door{
id_tag = "petrovexitblast";
name = "Office Shutter Control";
name = "Exit Blastdoor Control";
pixel_x = 5;
pixel_y = 6
},
Expand Down
33 changes: 33 additions & 0 deletions mods/RnD/code/designs_autolathe/designs_devices_components.dm
Original file line number Diff line number Diff line change
Expand Up @@ -74,3 +74,36 @@

/datum/design/autolathe/device_component/conveyor_switch_oneway_construct
build_path = /obj/item/conveyor_switch_construct/oneway



///////COMPONENTS ITEMS MATTERS///////
/obj/item/device/assembly/igniter
name = "igniter"
matter = list(MATERIAL_STEEL = 500, MATERIAL_GLASS = 50)

/obj/item/device/assembly/infra
name = "infrared emitter"
matter = list(MATERIAL_STEEL = 1000, MATERIAL_GLASS = 500)

/obj/item/device/assembly/mousetrap
name = "mousetrap"
matter = list(MATERIAL_STEEL = 100)

/obj/item/device/assembly/prox_sensor
name = "proximity sensor"
matter = list(MATERIAL_STEEL = 800, MATERIAL_GLASS = 200)

/obj/item/device/assembly/signaler
name = "remote signaling device"

origin_tech = list(TECH_MAGNET = 1)
matter = list(MATERIAL_STEEL = 1000, MATERIAL_GLASS = 200)

/obj/item/device/assembly/timer
name = "timer"
matter = list(MATERIAL_STEEL = 500, MATERIAL_GLASS = 50)

/obj/item/device/assembly/voice
name = "voice analyzer"
matter = list(MATERIAL_STEEL = 500, MATERIAL_GLASS = 50)
166 changes: 67 additions & 99 deletions mods/RnD/code/machinery/autolathe.dm
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
#define ERR_STOPPED "lazy user"
#define ERR_SKILL_ISSUE "unskilled user"
//AUTOLATHE
#define SANITIZE_LATHE_COST(n) round((n * mechfabmod), 0.01)
#define SANITIZE_LATHE_COST(n) round((n), 0.01)

/obj/machinery/fabricator
name = "autolathe"
Expand Down Expand Up @@ -49,7 +49,6 @@
var/list/queue = list()
var/queue_max = 8

var/mechfabmod = 1
var/storage_capacity = 0
var/speed = 1
var/mat_efficiency = 1
Expand Down Expand Up @@ -110,10 +109,7 @@
/obj/machinery/fabricator/proc/materials_data()
var/list/data = list()

if(mechfabmod == 2)
data["mat_efficiency"] = (mat_efficiency * mechfabmod)
else if (mechfabmod == 1)
data["mat_efficiency"] = mat_efficiency
data["mat_efficiency"] = mat_efficiency
data["mat_capacity"] = storage_capacity

data["container"] = !!container
Expand Down Expand Up @@ -291,31 +287,31 @@
return

usr.set_machine(src)
/*
if(href_list["insert"]) Отключаем рекуклинг пока стоимость печати вещей не будет приведена в адекватную норму

if(href_list["insert"])
eat(usr)
return 1
*/
return TRUE

if(href_list["disk"])
if(disk)
eject_disk(usr)
else
insert_disk(usr)
return 1
return TRUE

if(href_list["container"])
if(container)
eject_beaker(usr)
else
insert_beaker(usr)
return 1
return TRUE

if(href_list["category"] && categories)
var/new_category = text2num(href_list["category"])

if(new_category && new_category <= length(categories))
show_category = categories[new_category]
return 1
return TRUE

if(href_list["eject_material"] && (!current_file || paused || error))
var/material = href_list["eject_material"]
Expand All @@ -324,14 +320,14 @@
if(!M.stack_type)
return

var/num = input("Enter sheets number to eject. 0-[stored_material[material]]","Eject",0) as num
var/num = input("Enter sheets number to eject. 0-[round(stored_material[material]/2000)]","Eject",0) as num
if(!CanUseTopic(usr))
return

num = min(max(num,0), stored_material[material])

eject(material, num)
return 1
return TRUE


if(href_list["add_to_queue"])
Expand All @@ -354,41 +350,41 @@

queue_design(design_file, amount)

return 1
return TRUE

if(href_list["remove_from_queue"])
var/ind = text2num(href_list["remove_from_queue"])
if(ind >= 1 && ind <= LAZYLEN(queue))
queue.Cut(ind, ind + 1)
return 1
return TRUE

if(href_list["move_up_queue"])
var/ind = text2num(href_list["move_up_queue"])
if(ind >= 2 && ind <= LAZYLEN(queue))
queue.Swap(ind, ind - 1)
return 1
return TRUE

if(href_list["move_down_queue"])
var/ind = text2num(href_list["move_down_queue"])
if(ind >= 1 && ind <= LAZYLEN(queue)-1)
queue.Swap(ind, ind + 1)
return 1
return TRUE


if(href_list["abort_print"])
abort()
return 1
return TRUE

if(href_list["pause"])
paused = !paused
return 1
return TRUE

if(href_list["unfold"])
if(unfolded == href_list["unfold"])
unfolded = null
else
unfolded = href_list["unfold"]
return 1
return TRUE

/obj/machinery/fabricator/proc/insert_disk(mob/living/user, obj/item/stock_parts/computer/hard_drive/portable/inserted_disk)
if(!inserted_disk && istype(user))
Expand Down Expand Up @@ -512,83 +508,60 @@
to_chat(user, SPAN_WARNING("[src] does not support material recycling."))
return FALSE

var/filltype = 0 // Used to determine message.
var/reagents_filltype = 0
var/total_used = 0 // Amount of material used.
var/list/total_material_gained = list()

for(var/obj/O in eating.GetAllContents(includeSelf = TRUE))
var/list/_matter = O.matter
if(istype(eating, /obj/item/stack))
var/obj/item/stack/material/stack = eating
var/material = stack.material.name
var/stack_singular = "[stack.material.use_name] [stack.material.sheet_singular_name]" // eg "steel sheet", "wood plank"
var/stack_plural = "[stack.material.use_name] [stack.material.sheet_plural_name]" // eg "steel sheets", "wood planks"
var/amnt = 0
var/list/_matter = stack.matter
if(_matter)
for(var/material in _matter)
var/total_material = _matter[material]
if(material in unsuitable_materials)
continue
for(var/mat in _matter)
if(istype(eating, /obj/item/stack/material/rods))
var/amount_material_in_one = _matter[mat]/stack.amount
amnt = amount_material_in_one
else
amnt = stack.perunit

if(suitable_materials)
if(!(material in suitable_materials))
continue

if(!(material in stored_material))
stored_material[material] = 0
if(stack.uses_charge)
return

if(stored_material[material] + total_material_gained[material] >= storage_capacity)
continue
if(stored_material[material] + amnt <= storage_capacity)
if(stack && stack.can_use(1))
var/count = 0
while(stored_material[material] + amnt <= storage_capacity && stack.amount >= 1)
stored_material[material] += amnt
stack.use(1)
count++
to_chat(user, "You insert [count] [count==1 ? stack_singular : stack_plural] into the [src].")// 0 steel sheets, 1 steel sheet, 2 steel sheets, etc
res_load(SSmaterials.get_material_by_name(material))

if(stored_material[material] + total_material > storage_capacity)
total_material = storage_capacity - stored_material[material]
filltype = 1
else
filltype = 2
total_material_gained[material] += total_material
total_used += total_material

if(O.reagents)
if(container)
var/datum/reagents/RG = new(0)
for(var/r in O.reagents.reagent_list)
RG.maximum_volume += O.reagents[r]
RG.add_reagent(r ,O.reagents[r])
reagents_filltype = 1
RG.trans_to(container, RG.total_volume)

else
reagents_filltype = 2

if(O.reagents && container)
O.reagents.trans_to(container, O.reagents.total_volume)

if(!filltype && !reagents_filltype)
to_chat(user, SPAN_NOTICE("\The [src] is full or this thing isn't suitable for this autolathe type. Try remove material from [src] in order to insert more."))
return

// Determine what was the main material
var/main_material
var/main_material_amt = 0
for(var/material in total_material_gained)
stored_material[material] += total_material_gained[material]
if(total_material_gained[material] > main_material_amt)
main_material_amt = total_material_gained[material]
main_material = material

if(istype(eating, /obj/item/stack/material))
res_load()
var/obj/item/stack/material/stack = eating
var/used_sheets = min(stack.get_amount(), round(total_used/stack.perunit))
else
to_chat(user, "The [src] cannot hold more [stack_plural].")// use the plural form even if the given sheet is singular

to_chat(user, SPAN_NOTICE("You add [used_sheets] [main_material] [stack.singular_name]\s to \the [src]."))
return TRUE

if(!stack.use(used_sheets))
qdel(stack) // Protects against weirdness
else
res_load() // Play insertion animation.
to_chat(user, SPAN_NOTICE("You recycle \the [eating] in \the [src]."))
var/isdesignnotexist = TRUE
for(var/datum/design/item/D in SSresearch.all_designs)
if(D.build_path == eating.type)
isdesignnotexist = FALSE
for(var/material in D.materials)
if(stored_material[material] < storage_capacity)
stored_material[material] += (D.materials[material]/4)
if(isdesignnotexist)
for(var/obj/O in eating.GetAllContents(includeSelf = TRUE))
var/list/_matter = O.matter
if(_matter)
for(var/material in _matter)
if(material in unsuitable_materials)
continue
if(stored_material[material] < storage_capacity)
stored_material[material] += (_matter[material]/4)
qdel(eating)

if(reagents_filltype == 1)
to_chat(user, SPAN_NOTICE("Some liquid flowed to \the [container]."))
else if(reagents_filltype == 2)
to_chat(user, SPAN_NOTICE("Some liquid flowed to the floor from \the [src]."))
return TRUE


/obj/machinery/fabricator/state_transition(singleton/machine_construction/default/new_state)
Expand Down Expand Up @@ -676,24 +649,20 @@
visible_message("\The [src] pings, indicating that queue is complete.")


/obj/machinery/fabricator/proc/res_load()
/obj/machinery/fabricator/proc/res_load(material/material)
var/list/viewing = list()
for (var/mob/M in view(6,src))
if (M.client)
viewing |= M.client
var/image/orderimage = image('mods/RnD/icons/autolathe.dmi', src, "[icon_state]_load_m")
orderimage.color = material.icon_colour
flick_overlay(orderimage, viewing, 8)

/obj/machinery/fabricator/components_are_accessible(path)
return !(fab_status_flags & FAB_BUSY) && ..()

/obj/machinery/fabricator/proc/check_materials(datum/design/design)
/*
mechfabmod = 1
if(design.build_type == MECHFAB)
mechfabmod = 2
if(!(fab_status_flags & FAB_HACKED))
return ERR_NOCOMPAT*/

if(design.build_type != build_type)
var/second_check = build_type | MECHFAB
if(design.build_type != second_check)
Expand Down Expand Up @@ -758,7 +727,7 @@
else
error = "Unknown error."

if(current_file.design && progress >= current_file.design.time * mechfabmod)
if(current_file.design && progress >= current_file.design.time)
finish_construction()

else
Expand Down Expand Up @@ -837,8 +806,7 @@
stored_material[material] -= ejected * S.perunit
if(recursive && stored_material[material] >= S.perunit)
eject(material, -1)
S.update_strings()
S.update_icon()
S.update_materials()


/obj/machinery/fabricator/dismantle()
Expand Down
Loading
Loading