proper fix aoaooa
This commit is contained in:
@@ -3,7 +3,7 @@
|
|||||||
icon_state = "0"
|
icon_state = "0"
|
||||||
state = 0
|
state = 0
|
||||||
|
|
||||||
/obj/structure/frame/computer/attackby(obj/item/P, mob/user, params)
|
/obj/structure/frame/computer/attackby(obj/item/P, mob/living/user, params)
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
switch(state)
|
switch(state)
|
||||||
if(0)
|
if(0)
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
to_chat(user, "<span class='notice'>You start wrenching the frame into place...</span>")
|
to_chat(user, "<span class='notice'>You start wrenching the frame into place...</span>")
|
||||||
if(P.use_tool(src, user, 20, volume=50))
|
if(P.use_tool(src, user, 20, volume=50))
|
||||||
to_chat(user, "<span class='notice'>You wrench the frame into place.</span>")
|
to_chat(user, "<span class='notice'>You wrench the frame into place.</span>")
|
||||||
setAnchored(TRUE)
|
set_anchored(TRUE)
|
||||||
state = 1
|
state = 1
|
||||||
return
|
return
|
||||||
if(P.tool_behaviour == TOOL_WELDER)
|
if(P.tool_behaviour == TOOL_WELDER)
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
to_chat(user, "<span class='notice'>You start deconstructing the frame...</span>")
|
to_chat(user, "<span class='notice'>You start deconstructing the frame...</span>")
|
||||||
if(P.use_tool(src, user, 20, volume=50) && state == 0)
|
if(P.use_tool(src, user, 20, volume=50))
|
||||||
to_chat(user, "<span class='notice'>You deconstruct the frame.</span>")
|
to_chat(user, "<span class='notice'>You deconstruct the frame.</span>")
|
||||||
var/obj/item/stack/sheet/metal/M = new (drop_location(), 5)
|
var/obj/item/stack/sheet/metal/M = new (drop_location(), 5)
|
||||||
M.add_fingerprint(user)
|
M.add_fingerprint(user)
|
||||||
@@ -28,15 +28,15 @@
|
|||||||
if(1)
|
if(1)
|
||||||
if(P.tool_behaviour == TOOL_WRENCH)
|
if(P.tool_behaviour == TOOL_WRENCH)
|
||||||
to_chat(user, "<span class='notice'>You start to unfasten the frame...</span>")
|
to_chat(user, "<span class='notice'>You start to unfasten the frame...</span>")
|
||||||
if(P.use_tool(src, user, 20, volume=50) && state == 1)
|
if(P.use_tool(src, user, 20, volume=50))
|
||||||
to_chat(user, "<span class='notice'>You unfasten the frame.</span>")
|
to_chat(user, "<span class='notice'>You unfasten the frame.</span>")
|
||||||
setAnchored(FALSE)
|
set_anchored(FALSE)
|
||||||
state = 0
|
state = 0
|
||||||
return
|
return
|
||||||
if(istype(P, /obj/item/circuitboard/computer) && !circuit)
|
if(istype(P, /obj/item/circuitboard/computer) && !circuit)
|
||||||
if(!user.transferItemToLoc(P, src))
|
if(!user.transferItemToLoc(P, src))
|
||||||
return
|
return
|
||||||
playsound(src, 'sound/items/deconstruct.ogg', 50, 1)
|
playsound(src, 'sound/items/deconstruct.ogg', 50, TRUE)
|
||||||
to_chat(user, "<span class='notice'>You place [P] inside the frame.</span>")
|
to_chat(user, "<span class='notice'>You place [P] inside the frame.</span>")
|
||||||
icon_state = "1"
|
icon_state = "1"
|
||||||
circuit = P
|
circuit = P
|
||||||
@@ -71,8 +71,10 @@
|
|||||||
if(istype(P, /obj/item/stack/cable_coil))
|
if(istype(P, /obj/item/stack/cable_coil))
|
||||||
if(!P.tool_start_check(user, amount=5))
|
if(!P.tool_start_check(user, amount=5))
|
||||||
return
|
return
|
||||||
|
if(state != 2)
|
||||||
|
return
|
||||||
to_chat(user, "<span class='notice'>You start adding cables to the frame...</span>")
|
to_chat(user, "<span class='notice'>You start adding cables to the frame...</span>")
|
||||||
if(P.use_tool(src, user, 20, 5, 50, CALLBACK(src, .proc/check_state, 2)))
|
if(P.use_tool(src, user, 20, volume=50, amount=5))
|
||||||
to_chat(user, "<span class='notice'>You add cables to the frame.</span>")
|
to_chat(user, "<span class='notice'>You add cables to the frame.</span>")
|
||||||
state = 3
|
state = 3
|
||||||
icon_state = "3"
|
icon_state = "3"
|
||||||
@@ -90,9 +92,11 @@
|
|||||||
if(istype(P, /obj/item/stack/sheet/glass))
|
if(istype(P, /obj/item/stack/sheet/glass))
|
||||||
if(!P.tool_start_check(user, amount=2))
|
if(!P.tool_start_check(user, amount=2))
|
||||||
return
|
return
|
||||||
playsound(src, 'sound/items/deconstruct.ogg', 50, 1)
|
if(state != 3)
|
||||||
|
return
|
||||||
|
playsound(src, 'sound/items/deconstruct.ogg', 50, TRUE)
|
||||||
to_chat(user, "<span class='notice'>You start to put in the glass panel...</span>")
|
to_chat(user, "<span class='notice'>You start to put in the glass panel...</span>")
|
||||||
if(P.use_tool(src, user, 20, 2, 0, CALLBACK(src, .proc/check_state, 3)))
|
if(P.use_tool(src, user, 20, amount=2))
|
||||||
to_chat(user, "<span class='notice'>You put in the glass panel.</span>")
|
to_chat(user, "<span class='notice'>You put in the glass panel.</span>")
|
||||||
state = 4
|
state = 4
|
||||||
src.icon_state = "4"
|
src.icon_state = "4"
|
||||||
@@ -109,14 +113,51 @@
|
|||||||
if(P.tool_behaviour == TOOL_SCREWDRIVER)
|
if(P.tool_behaviour == TOOL_SCREWDRIVER)
|
||||||
P.play_tool_sound(src)
|
P.play_tool_sound(src)
|
||||||
to_chat(user, "<span class='notice'>You connect the monitor.</span>")
|
to_chat(user, "<span class='notice'>You connect the monitor.</span>")
|
||||||
var/obj/B = new circuit.build_path (loc, circuit)
|
|
||||||
B.setDir(dir)
|
var/obj/machinery/new_machine = new circuit.build_path(loc)
|
||||||
transfer_fingerprints_to(B)
|
new_machine.setDir(dir)
|
||||||
|
transfer_fingerprints_to(new_machine)
|
||||||
|
|
||||||
|
if(istype(new_machine, /obj/machinery/computer))
|
||||||
|
var/obj/machinery/computer/new_computer = new_machine
|
||||||
|
|
||||||
|
// Machines will init with a set of default components.
|
||||||
|
// Triggering handle_atom_del will make the machine realise it has lost a component_parts and then deconstruct.
|
||||||
|
// Move to nullspace so we don't trigger handle_atom_del, then qdel.
|
||||||
|
// Finally, replace new machine's parts with this frame's parts.
|
||||||
|
if(new_computer.circuit)
|
||||||
|
// Move to nullspace and delete.
|
||||||
|
new_computer.circuit.moveToNullspace()
|
||||||
|
QDEL_NULL(new_computer.circuit)
|
||||||
|
for(var/old_part in new_computer.component_parts)
|
||||||
|
var/atom/movable/movable_part = old_part
|
||||||
|
// Move to nullspace and delete.
|
||||||
|
movable_part.moveToNullspace()
|
||||||
|
qdel(movable_part)
|
||||||
|
|
||||||
|
// Set anchor state and move the frame's parts over to the new machine.
|
||||||
|
// Then refresh parts and call on_construction().
|
||||||
|
new_computer.set_anchored(anchored)
|
||||||
|
new_computer.component_parts = list()
|
||||||
|
|
||||||
|
circuit.forceMove(new_computer)
|
||||||
|
new_computer.component_parts += circuit
|
||||||
|
new_computer.circuit = circuit
|
||||||
|
|
||||||
|
for(var/new_part in src)
|
||||||
|
var/atom/movable/movable_part = new_part
|
||||||
|
movable_part.forceMove(new_computer)
|
||||||
|
new_computer.component_parts += movable_part
|
||||||
|
|
||||||
|
new_computer.RefreshParts()
|
||||||
|
new_computer.on_construction()
|
||||||
|
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
if(user.a_intent == INTENT_HARM)
|
if(user.a_intent == INTENT_HARM)
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
|
|
||||||
/obj/structure/frame/computer/deconstruct(disassembled = TRUE)
|
/obj/structure/frame/computer/deconstruct(disassembled = TRUE)
|
||||||
if(!(flags_1 & NODECONSTRUCT_1))
|
if(!(flags_1 & NODECONSTRUCT_1))
|
||||||
if(state == 4)
|
if(state == 4)
|
||||||
@@ -127,13 +168,12 @@
|
|||||||
..()
|
..()
|
||||||
|
|
||||||
/obj/structure/frame/computer/AltClick(mob/user)
|
/obj/structure/frame/computer/AltClick(mob/user)
|
||||||
. = ..()
|
..()
|
||||||
if(!isliving(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
|
if(!user.canUseTopic(src, BE_CLOSE, TRUE, FALSE))
|
||||||
return
|
return
|
||||||
|
|
||||||
if(anchored)
|
if(anchored)
|
||||||
to_chat(usr, "<span class='warning'>You must unwrench [src] before rotating it!</span>")
|
to_chat(usr, "<span class='warning'>You must unwrench [src] before rotating it!</span>")
|
||||||
return TRUE
|
return
|
||||||
|
|
||||||
setDir(turn(dir, -90))
|
setDir(turn(dir, -90))
|
||||||
return TRUE
|
|
||||||
|
|||||||
@@ -208,6 +208,8 @@
|
|||||||
new_machine.component_parts = list()
|
new_machine.component_parts = list()
|
||||||
|
|
||||||
circuit.forceMove(new_machine)
|
circuit.forceMove(new_machine)
|
||||||
|
// TODO: make sleepers not shit out parts PROPERLY THIS TIME.
|
||||||
|
new_machine.circuit.moveToNullspace()
|
||||||
new_machine.component_parts += circuit
|
new_machine.component_parts += circuit
|
||||||
new_machine.circuit = circuit
|
new_machine.circuit = circuit
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user