diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm index 9a59d4aea5e..fb384d55ae0 100644 --- a/code/game/machinery/cell_charger.dm +++ b/code/game/machinery/cell_charger.dm @@ -8,6 +8,7 @@ active_power_usage = 60 power_channel = EQUIP circuit = /obj/item/circuitboard/machine/cell_charger + pass_flags = PASSTABLE var/obj/item/stock_parts/cell/charging = null var/chargelevel = -1 var/charge_rate = 500 diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index 696c9442b93..7dcd85d3100 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -161,6 +161,7 @@ icon_keyboard = null icon_screen = "detective_tv" clockwork = TRUE //it'd look weird + pass_flags = PASSTABLE /obj/machinery/computer/security/mining name = "outpost camera console" diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index 0ee394d8897..660ad4763f7 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -596,3 +596,4 @@ icon_screen = "medlaptop" icon_keyboard = "laptop_key" clockwork = TRUE //it'd look weird + pass_flags = PASSTABLE diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 8a2a06bf1ff..f3f4c5e523a 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -38,6 +38,7 @@ icon_screen = "seclaptop" icon_keyboard = "laptop_key" clockwork = TRUE //it'd look weird + pass_flags = PASSTABLE /obj/machinery/computer/secure_data/attackby(obj/item/O, mob/user, params) if(istype(O, /obj/item/card/id)) diff --git a/code/game/machinery/dish_drive.dm b/code/game/machinery/dish_drive.dm index 7e960d4ebcf..66aa1347cb0 100644 --- a/code/game/machinery/dish_drive.dm +++ b/code/game/machinery/dish_drive.dm @@ -9,6 +9,7 @@ active_power_usage = 13 //10 with default parts density = FALSE circuit = /obj/item/circuitboard/machine/dish_drive + pass_flags = PASSTABLE var/static/list/item_types = list(/obj/item/trash/waffles, /obj/item/trash/plate, /obj/item/trash/tray, diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index 22bba56fd2d..94b6eee8aa1 100755 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -7,6 +7,7 @@ idle_power_usage = 4 active_power_usage = 250 circuit = /obj/item/circuitboard/machine/recharger + pass_flags = PASSTABLE var/obj/item/charging = null var/recharge_coeff = 1 diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index aa87410d2c3..da5eeb8dcd9 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -60,24 +60,31 @@ return attack_hand(user) /obj/structure/table/attack_hand(mob/living/user) - if(Adjacent(user) && user.pulling && isliving(user.pulling)) - var/mob/living/pushed_mob = user.pulling - if(pushed_mob.buckled) - to_chat(user, "[pushed_mob] is buckled to [pushed_mob.buckled]!") - return - if(user.a_intent == INTENT_GRAB) - if(user.grab_state < GRAB_AGGRESSIVE) - to_chat(user, "You need a better grip to do that!") + if(Adjacent(user) && user.pulling) + if(isliving(user.pulling)) + var/mob/living/pushed_mob = user.pulling + if(pushed_mob.buckled) + to_chat(user, "[pushed_mob] is buckled to [pushed_mob.buckled]!") return - tablepush(user, pushed_mob) - if(user.a_intent == INTENT_HELP) - pushed_mob.visible_message("[user] begins to place [pushed_mob] onto [src]...", \ - "[user] begins to place [pushed_mob] onto [src]...") - if(do_after(user, 35, target = pushed_mob)) - tableplace(user, pushed_mob) - else - return - user.stop_pulling() + if(user.a_intent == INTENT_GRAB) + if(user.grab_state < GRAB_AGGRESSIVE) + to_chat(user, "You need a better grip to do that!") + return + tablepush(user, pushed_mob) + if(user.a_intent == INTENT_HELP) + pushed_mob.visible_message("[user] begins to place [pushed_mob] onto [src]...", \ + "[user] begins to place [pushed_mob] onto [src]...") + if(do_after(user, 35, target = pushed_mob)) + tableplace(user, pushed_mob) + else + return + user.stop_pulling() + else if(user.pulling.pass_flags & PASSTABLE) + user.Move_Pulled(src) + if (user.pulling.loc == loc) + user.visible_message("[user] places [user.pulling] onto [src].", + "You place [user.pulling] onto [src].") + user.stop_pulling() return ..() /obj/structure/table/attack_tk() diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm index 8c4e0eaae04..f8969cf1a5d 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -9,6 +9,7 @@ idle_power_usage = 5 active_power_usage = 100 circuit = /obj/item/circuitboard/machine/microwave + pass_flags = PASSTABLE var/operating = FALSE // Is it on? var/dirty = 0 // = {0..100} Does it need cleaning? var/broken = 0 // ={0,1,2} How broken is it??? diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index 61cc940b3d2..b6e3b196409 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -415,6 +415,7 @@ name = "disk compartmentalizer" desc = "A machine capable of storing a variety of disks. Denoted by most as the DSU (disk storage unit)." icon_state = "disktoaster" + pass_flags = PASSTABLE /obj/machinery/smartfridge/disks/accept_check(obj/item/O) if(istype(O, /obj/item/disk/)) diff --git a/code/modules/hydroponics/gene_modder.dm b/code/modules/hydroponics/gene_modder.dm index 7e541f2471a..d6eacfe0e19 100644 --- a/code/modules/hydroponics/gene_modder.dm +++ b/code/modules/hydroponics/gene_modder.dm @@ -5,6 +5,7 @@ icon_state = "dnamod" density = TRUE circuit = /obj/item/circuitboard/machine/plantgenes + pass_flags = PASSTABLE var/obj/item/seeds/seed var/obj/item/disk/plantgene/disk diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index 81e296e4c84..dfc917984a6 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -166,11 +166,12 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums /obj/machinery/computer/libraryconsole/bookmanagement name = "book inventory management console" desc = "Librarian's command station." - var/arcanecheckout = 0 screenstate = 0 // 0 - Main Menu, 1 - Inventory, 2 - Checked Out, 3 - Check Out a Book verb_say = "beeps" verb_ask = "beeps" verb_exclaim = "beeps" + pass_flags = PASSTABLE + var/arcanecheckout = 0 var/buffer_book var/buffer_mob var/upload_category = "Fiction" diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index da94c16adfb..6c4d0fa7524 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -384,6 +384,16 @@ final_list += list(avoid_assoc_duplicate_keys(fuck[1],key_list) = text2num(fuck[2])) return final_list +/obj/machinery/chem_dispenser/drinks/Initialize() + . = ..() + AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE) + +/obj/machinery/chem_dispenser/drinks/setDir() + var/old = dir + . = ..() + if(dir != old) + update_icon() // the beaker needs to be re-positioned if we rotate + /obj/machinery/chem_dispenser/drinks/display_beaker() var/mutable_appearance/b_o = beaker_overlay || mutable_appearance(icon, "disp_beaker") switch(dir) @@ -413,6 +423,7 @@ circuit = /obj/item/circuitboard/machine/chem_dispenser/drinks working_state = null nopower_state = null + pass_flags = PASSTABLE dispensable_reagents = list( "water", "ice",