From 394d383746e6f469ee4542e1b808c496c4829efa Mon Sep 17 00:00:00 2001 From: Dip Date: Tue, 15 Sep 2020 19:27:58 -0300 Subject: [PATCH 1/6] Clone Microfans --- code/game/machinery/poweredfans.dm | 59 ++++++++++++++++++ .../items/stacks/sheets/sheet_types.dm | 1 + icons/obj/poweredfans.dmi | Bin 0 -> 479 bytes tgstation.dme | 1 + 4 files changed, 61 insertions(+) create mode 100644 code/game/machinery/poweredfans.dm create mode 100644 icons/obj/poweredfans.dmi diff --git a/code/game/machinery/poweredfans.dm b/code/game/machinery/poweredfans.dm new file mode 100644 index 0000000000..f10c7cb32a --- /dev/null +++ b/code/game/machinery/poweredfans.dm @@ -0,0 +1,59 @@ +/obj/machinery/poweredfans + icon = 'icons/obj/poweredfans.dmi' + icon_state = "mfan_powered" + name = "placeholder big fan" + desc = "A large machine releasing a constant gust of air." + anchored = TRUE + density = TRUE + var/buildstacktype = /obj/item/stack/sheet/metal + var/buildstackamount = 5 + CanAtmosPass = ATMOS_PASS_NO + +/obj/machinery/poweredfans/mpfan + name = "micro powered fan" + desc = "A handmade fan, releasing a thin gust of air." + layer = ABOVE_NORMAL_TURF_LAYER + density = FALSE + icon_state = "mfan_powered" + buildstackamount = 2 + use_power = ACTIVE_POWER_USE + idle_power_usage = 1 + active_power_usage = 3 + CanAtmosPass = ATMOS_PASS_NO + +/obj/machinery/poweredfans/deconstruct() + if(!(flags_1 & NODECONSTRUCT_1)) + if(buildstacktype) + new buildstacktype(loc,buildstackamount) + qdel(src) + +/obj/machinery/poweredfans/wrench_act(mob/living/user, obj/item/I) + if(flags_1 & NODECONSTRUCT_1) + return TRUE + + user.visible_message("[user] disassembles [src].", + "You start to disassemble [src]...", "You hear clanking and banging noises.") + if(I.use_tool(src, user, 20, volume=50)) + deconstruct() + return TRUE + +/obj/machinery/poweredfans/Initialize(mapload) + . = ..() + air_update_turf(1) + +/obj/machinery/poweredfans/power_change() + ..() + update_icon() + +/obj/machinery/poweredfans/update_icon() + //if(state & NOPOWER) + if(powered()) + icon_state = "mfan_powered" + CanAtmosPass = ATMOS_PASS_NO + air_update_turf(1) + return + else + icon_state = "mfan_unpowered" + CanAtmosPass = ATMOS_PASS_YES + air_update_turf(1) + return diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index c3028c2fd5..bbd417d682 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -121,6 +121,7 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ new/datum/stack_recipe("iron door", /obj/structure/mineral_door/iron, 20, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("pestle", /obj/item/pestle, 1, time = 50), \ new/datum/stack_recipe("floodlight frame", /obj/structure/floodlight_frame, 5, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("micro powered fan", /obj/machinery/poweredfans/mpfan, 2, time = 35, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("iron ingot", /obj/item/ingot/iron, 6, time = 100), \ )) diff --git a/icons/obj/poweredfans.dmi b/icons/obj/poweredfans.dmi new file mode 100644 index 0000000000000000000000000000000000000000..9e80ce43941d3af990fc48044a6e4976f1e6c0b7 GIT binary patch literal 479 zcmV<50U-W~P)(O;F)=d{5fc9Z07nD_=cj2500001bW%=J06^y0W&i*H zhk8_4bVOxyV{&P5bZKvH004NLQ&w zn*c>qa}q0oOanbb9W;z)QfVGuvkbYE6E%^H+dEY-K*k*!zZ_bgnIYppR4#V9E5WaJDfu3fZ#t97Y@FmNfph2lW}eIM z>&>LA7hgQq3d}48Ul`1^24C0$^a1$77NBv!7Y5@r@Pz@bSueg=?NahRWFKVy=L0j3 VN}#qu7Y_gc002ovPDHLkV1gnBzB>Q_ literal 0 HcmV?d00001 diff --git a/tgstation.dme b/tgstation.dme index c3e51d49cc..bece0b1c07 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -806,6 +806,7 @@ #include "code\game\machinery\mass_driver.dm" #include "code\game\machinery\navbeacon.dm" #include "code\game\machinery\PDApainter.dm" +#include "code\game\machinery\poweredfans.dm" #include "code\game\machinery\quantum_pad.dm" #include "code\game\machinery\recharger.dm" #include "code\game\machinery\rechargestation.dm" From 7e00d81758c6393ce30ecc85cda34f936e9bdf44 Mon Sep 17 00:00:00 2001 From: Dip Date: Wed, 16 Sep 2020 19:28:59 -0300 Subject: [PATCH 2/6] Microfan Rework --- code/game/machinery/poweredfans.dm | 59 --------- .../machinery/poweredfans/fan_assembly.dm | 113 ++++++++++++++++++ .../game/machinery/poweredfans/poweredfans.dm | 62 ++++++++++ .../items/stacks/sheets/sheet_types.dm | 2 +- icons/obj/poweredfans.dmi | Bin 479 -> 575 bytes tgstation.dme | 3 +- 6 files changed, 178 insertions(+), 61 deletions(-) delete mode 100644 code/game/machinery/poweredfans.dm create mode 100644 code/game/machinery/poweredfans/fan_assembly.dm create mode 100644 code/game/machinery/poweredfans/poweredfans.dm diff --git a/code/game/machinery/poweredfans.dm b/code/game/machinery/poweredfans.dm deleted file mode 100644 index f10c7cb32a..0000000000 --- a/code/game/machinery/poweredfans.dm +++ /dev/null @@ -1,59 +0,0 @@ -/obj/machinery/poweredfans - icon = 'icons/obj/poweredfans.dmi' - icon_state = "mfan_powered" - name = "placeholder big fan" - desc = "A large machine releasing a constant gust of air." - anchored = TRUE - density = TRUE - var/buildstacktype = /obj/item/stack/sheet/metal - var/buildstackamount = 5 - CanAtmosPass = ATMOS_PASS_NO - -/obj/machinery/poweredfans/mpfan - name = "micro powered fan" - desc = "A handmade fan, releasing a thin gust of air." - layer = ABOVE_NORMAL_TURF_LAYER - density = FALSE - icon_state = "mfan_powered" - buildstackamount = 2 - use_power = ACTIVE_POWER_USE - idle_power_usage = 1 - active_power_usage = 3 - CanAtmosPass = ATMOS_PASS_NO - -/obj/machinery/poweredfans/deconstruct() - if(!(flags_1 & NODECONSTRUCT_1)) - if(buildstacktype) - new buildstacktype(loc,buildstackamount) - qdel(src) - -/obj/machinery/poweredfans/wrench_act(mob/living/user, obj/item/I) - if(flags_1 & NODECONSTRUCT_1) - return TRUE - - user.visible_message("[user] disassembles [src].", - "You start to disassemble [src]...", "You hear clanking and banging noises.") - if(I.use_tool(src, user, 20, volume=50)) - deconstruct() - return TRUE - -/obj/machinery/poweredfans/Initialize(mapload) - . = ..() - air_update_turf(1) - -/obj/machinery/poweredfans/power_change() - ..() - update_icon() - -/obj/machinery/poweredfans/update_icon() - //if(state & NOPOWER) - if(powered()) - icon_state = "mfan_powered" - CanAtmosPass = ATMOS_PASS_NO - air_update_turf(1) - return - else - icon_state = "mfan_unpowered" - CanAtmosPass = ATMOS_PASS_YES - air_update_turf(1) - return diff --git a/code/game/machinery/poweredfans/fan_assembly.dm b/code/game/machinery/poweredfans/fan_assembly.dm new file mode 100644 index 0000000000..9a36a322c5 --- /dev/null +++ b/code/game/machinery/poweredfans/fan_assembly.dm @@ -0,0 +1,113 @@ +/obj/structure/fan_assembly + name = "fan assembly" + desc = "A basic microfan assembly." + icon = 'icons/obj/poweredfans.dmi' + icon_state = "mfan_assembly" + max_integrity = 150 + var/state = 1 + var/buildstacktype = /obj/item/stack/sheet/plasteel + var/buildstackamount = 5 + /* + 1 = Wrenched in place + 2 = Welded in place + 3 = Wires attached to it + */ + +/obj/structure/fan_assembly/Initialize(mapload, ndir, building) + . = ..() + if(building) + setDir(ndir) + +/obj/structure/fan_assembly/Destroy() + return ..() + +/obj/structure/fan_assembly/attackby(obj/item/W, mob/living/user, params) + switch(state) + if(1) + // State 1 + if(istype(W, /obj/item/weldingtool)) + if(weld(W, user)) + to_chat(user, "You weld the fan assembly securely into place.") + setAnchored(TRUE) + state = 2 + update_icon() + return + if(2) + // State 2 + if(istype(W, /obj/item/stack/cable_coil)) + if(!W.tool_start_check(user, amount=2)) + to_chat(user, "You need two lengths of cable to wire the fan assembly!") + return + to_chat(user, "You start to add wires to the assembly...") + if(W.use_tool(src, user, 30, volume=50, amount=2)) + to_chat(user, "You add wires to the fan assembly.") + state = 3 + var/obj/machinery/poweredfans/F = new(loc, src) + forceMove(F) + F.setDir(src.dir) + return + else if(istype(W, /obj/item/weldingtool)) + if(weld(W, user)) + to_chat(user, "You unweld the fan assembly from its place.") + state = 1 + update_icon() + setAnchored(FALSE) + return + return ..() + +/obj/structure/fan_assembly/wirecutter_act(mob/user, obj/item/I) + if(state != 3) + return FALSE + + new /obj/item/stack/cable_coil(drop_location(), 2) + I.play_tool_sound(src) + to_chat(user, "You cut the wires from the circuits.") + state = 2 + update_icon() + return TRUE + +/obj/structure/fan_assembly/wrench_act(mob/user, obj/item/I) + if(state != 1) + return FALSE + user.visible_message("[user] disassembles [src].", + "You start to disassemble [src]...", "You hear wrenching noises.") + if(I.use_tool(src, user, 30, volume=50)) + deconstruct() + return TRUE + +/obj/structure/fan_assembly/proc/weld(obj/item/weldingtool/W, mob/living/user) + if(!W.tool_start_check(user, amount=0)) + return FALSE + switch(state) + if(1) + to_chat(user, "You start to weld \the [src]...") + if(2) + to_chat(user, "You start to unweld \the [src]...") + if(W.use_tool(src, user, 30, volume=50)) + return TRUE + return FALSE + +/obj/structure/fan_assembly/deconstruct(disassembled = TRUE) + if(!(flags_1 & NODECONSTRUCT_1)) + new buildstacktype(loc,buildstackamount) + qdel(src) + +/obj/structure/fan_assembly/examine(mob/user) + ..() + deconstruction_hints(user) + +/obj/structure/fan_assembly/proc/deconstruction_hints(mob/user) + switch(state) + if(1) + to_chat(user, "The fan assembly seems to be unwelded and loose.") + if(2) + to_chat(user, "The fan assembly seems to be welded, but missing wires.") + if(3) + to_chat(user, "The outer plating is wired firmly in place.") + +/obj/structure/fan_assembly/update_icon() + switch(state) + if(1) + icon_state = "mfan_assembly" + if(2) + icon_state = "mfan_welded" diff --git a/code/game/machinery/poweredfans/poweredfans.dm b/code/game/machinery/poweredfans/poweredfans.dm new file mode 100644 index 0000000000..80c38ec61b --- /dev/null +++ b/code/game/machinery/poweredfans/poweredfans.dm @@ -0,0 +1,62 @@ +/obj/machinery/poweredfans + icon = 'icons/obj/poweredfans.dmi' + icon_state = "mfan_powered" + name = "micro powered fan" + desc = "A handmade fan, releasing a thin gust of air." + use_power = ACTIVE_POWER_USE + idle_power_usage = 5 + active_power_usage = 10 + layer = ABOVE_NORMAL_TURF_LAYER + anchored = TRUE + density = FALSE + CanAtmosPass = ATMOS_PASS_NO + var/obj/structure/fan_assembly/assembly = null + +/obj/machinery/poweredfans/deconstruct(disassembled = TRUE) + if(!(flags_1 & NODECONSTRUCT_1)) + if(disassembled) + if(!assembly) + assembly = new() + assembly.forceMove(drop_location()) + assembly.state = 2 + assembly.setAnchored(TRUE) + assembly.setDir(dir) + assembly = null + new /obj/item/stack/cable_coil(loc, 2) + else + new /obj/structure/fan_assembly (loc) + new /obj/item/stack/cable_coil(loc, 2) + qdel(src) + +/obj/machinery/poweredfans/wirecutter_act(mob/living/user, obj/item/I) + user.visible_message("[user] removes the wires from the [src].", + "You start to remove the wires from the [src]...", "You hear clanking and banging noises.") + if(I.use_tool(src, user, 30, volume=50)) + deconstruct() + return TRUE + +/obj/machinery/poweredfans/Initialize(mapload, obj/structure/fan_assembly/FA) + . = ..() + if(FA) + assembly = FA + else + assembly = new(src) + assembly.state = 3 + air_update_turf(1) + +/obj/machinery/poweredfans/power_change() + ..() + update_icon() + +/obj/machinery/poweredfans/update_icon() + //if(state & NOPOWER) + if(powered()) + icon_state = "mfan_powered" + CanAtmosPass = ATMOS_PASS_NO + air_update_turf(1) + return + else + icon_state = "mfan_unpowered" + CanAtmosPass = ATMOS_PASS_YES + air_update_turf(1) + return diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index bbd417d682..ffa3bd776b 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -121,7 +121,6 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ new/datum/stack_recipe("iron door", /obj/structure/mineral_door/iron, 20, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("pestle", /obj/item/pestle, 1, time = 50), \ new/datum/stack_recipe("floodlight frame", /obj/structure/floodlight_frame, 5, one_per_turf = TRUE, on_floor = TRUE), \ - new/datum/stack_recipe("micro powered fan", /obj/machinery/poweredfans/mpfan, 2, time = 35, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("iron ingot", /obj/item/ingot/iron, 6, time = 100), \ )) @@ -180,6 +179,7 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ GLOBAL_LIST_INIT(plasteel_recipes, list ( \ new/datum/stack_recipe("AI core", /obj/structure/AIcore, 4, time = 50, one_per_turf = TRUE), \ new/datum/stack_recipe("bomb assembly", /obj/machinery/syndicatebomb/empty, 10, time = 50), \ + new/datum/stack_recipe("micro powered fan assembly", /obj/structure/fan_assembly, 5, time = 50, one_per_turf = TRUE, on_floor = TRUE), \ new /datum/stack_recipe_list("crates", list( \ new /datum/stack_recipe("gray crate", /obj/structure/closet/crate, 5, time = 50, one_per_turf = 1, on_floor = 1), \ new /datum/stack_recipe("internals crate", /obj/structure/closet/crate/internals, 5, time = 50, one_per_turf = 1, on_floor = 1), \ diff --git a/icons/obj/poweredfans.dmi b/icons/obj/poweredfans.dmi index 9e80ce43941d3af990fc48044a6e4976f1e6c0b7..9df1a4f81610ef1569854aa7db901db9fd267222 100644 GIT binary patch delta 422 zcmV;X0a^av1HS~27Y<+q0{{R35VmRy0000gktH7_{{R3-1O)&8|8;eB5fKuXvoQYv z0004WQchCwWv-j0003WNkl15QQg!?OY^|nm8`p=p@E{5FV`wstnt? zU6eXtbP^Z2g&V8MrK}>5nJ2I_xb!^O;;r^+e+K3wa@~_2ru6u1@bt2OVqQM|-&0Y? zb}c3fPTI#hN>61jb6RN6(zjL2!c%BB6@yRG^JkXdDdcXS)q-xXez5Jnk_uFtr~+H? zxI>wSL(4NWc)UXq+giU$P8VOvTnBTdT`t$1>t;T@9+*Y%C_X@^n+?495Ptqn z)F?h+FGXGqBM3k4*2s%x-|;trJV0KI0!SR>1qMb;Ltfw=keaiB7Z+d2TnFca%jL4k z+!aQB=bGjXO&Uv}?2r9vVF-lDZWpdE69MXvwt#g9^Bv5uWUhnvf7k6g1DTs*-a^ev QJOBUy07*qoM6N<$f;m69F8}}l delta 326 zcmV-M0lEIa1m6RY7Y;xK0{{R37aDIp0000aktH7<5fKvq002h>1m~w|3;+NC0d!JM zQvg8b*k%9#0EdxibbmCAW>RS$Ub76jloee4T)-{`0Pol_m*Gh@;{X5v)=5M`R7i>K zm9Y+jFc5}M6LwT4SzLG$;|mavlDLud5t=%i5T3||r<3vSzesEx>9_sRqve|1N0iwT zyCdxn37Jke=4<(TrmA!CE*@0ub#|STnVQf9f6 Date: Wed, 16 Sep 2020 20:01:37 -0300 Subject: [PATCH 3/6] duplicate fan bugfix --- code/game/machinery/poweredfans/poweredfans.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/game/machinery/poweredfans/poweredfans.dm b/code/game/machinery/poweredfans/poweredfans.dm index 80c38ec61b..fb8b85c029 100644 --- a/code/game/machinery/poweredfans/poweredfans.dm +++ b/code/game/machinery/poweredfans/poweredfans.dm @@ -24,7 +24,6 @@ assembly = null new /obj/item/stack/cable_coil(loc, 2) else - new /obj/structure/fan_assembly (loc) new /obj/item/stack/cable_coil(loc, 2) qdel(src) From 8d33b3a8dacfb62ed78ac0f38d704fd92c922fca Mon Sep 17 00:00:00 2001 From: Dip Date: Wed, 16 Sep 2020 20:28:31 -0300 Subject: [PATCH 4/6] convert to machinery type --- .../machinery/poweredfans/fan_assembly.dm | 42 +++++++++---------- .../game/machinery/poweredfans/poweredfans.dm | 6 ++- .../items/stacks/sheets/sheet_types.dm | 2 +- 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/code/game/machinery/poweredfans/fan_assembly.dm b/code/game/machinery/poweredfans/fan_assembly.dm index 9a36a322c5..3baa664c81 100644 --- a/code/game/machinery/poweredfans/fan_assembly.dm +++ b/code/game/machinery/poweredfans/fan_assembly.dm @@ -1,27 +1,36 @@ -/obj/structure/fan_assembly +/obj/machinery/fan_assembly name = "fan assembly" desc = "A basic microfan assembly." icon = 'icons/obj/poweredfans.dmi' icon_state = "mfan_assembly" max_integrity = 150 + use_power = NO_POWER_USE + power_channel = ENVIRON + idle_power_usage = 0 + active_power_usage = 0 + max_integrity = 150 + layer = ABOVE_NORMAL_TURF_LAYER + anchored = FALSE + density = FALSE + CanAtmosPass = ATMOS_PASS_NO var/state = 1 var/buildstacktype = /obj/item/stack/sheet/plasteel var/buildstackamount = 5 /* 1 = Wrenched in place 2 = Welded in place - 3 = Wires attached to it + 3 = Wires attached to it, this makes it change to the full thing. */ -/obj/structure/fan_assembly/Initialize(mapload, ndir, building) +/obj/machinery/fan_assembly/Initialize(mapload, ndir, building) . = ..() if(building) setDir(ndir) -/obj/structure/fan_assembly/Destroy() +/obj/machinery/fan_assembly/Destroy() return ..() -/obj/structure/fan_assembly/attackby(obj/item/W, mob/living/user, params) +/obj/machinery/fan_assembly/attackby(obj/item/W, mob/living/user, params) switch(state) if(1) // State 1 @@ -55,18 +64,7 @@ return return ..() -/obj/structure/fan_assembly/wirecutter_act(mob/user, obj/item/I) - if(state != 3) - return FALSE - - new /obj/item/stack/cable_coil(drop_location(), 2) - I.play_tool_sound(src) - to_chat(user, "You cut the wires from the circuits.") - state = 2 - update_icon() - return TRUE - -/obj/structure/fan_assembly/wrench_act(mob/user, obj/item/I) +/obj/machinery/fan_assembly/wrench_act(mob/user, obj/item/I) if(state != 1) return FALSE user.visible_message("[user] disassembles [src].", @@ -75,7 +73,7 @@ deconstruct() return TRUE -/obj/structure/fan_assembly/proc/weld(obj/item/weldingtool/W, mob/living/user) +/obj/machinery/fan_assembly/proc/weld(obj/item/weldingtool/W, mob/living/user) if(!W.tool_start_check(user, amount=0)) return FALSE switch(state) @@ -87,16 +85,16 @@ return TRUE return FALSE -/obj/structure/fan_assembly/deconstruct(disassembled = TRUE) +/obj/machinery/fan_assembly/deconstruct(disassembled = TRUE) if(!(flags_1 & NODECONSTRUCT_1)) new buildstacktype(loc,buildstackamount) qdel(src) -/obj/structure/fan_assembly/examine(mob/user) +/obj/machinery/fan_assembly/examine(mob/user) ..() deconstruction_hints(user) -/obj/structure/fan_assembly/proc/deconstruction_hints(mob/user) +/obj/machinery/fan_assembly/proc/deconstruction_hints(mob/user) switch(state) if(1) to_chat(user, "The fan assembly seems to be unwelded and loose.") @@ -105,7 +103,7 @@ if(3) to_chat(user, "The outer plating is wired firmly in place.") -/obj/structure/fan_assembly/update_icon() +/obj/machinery/fan_assembly/update_icon() switch(state) if(1) icon_state = "mfan_assembly" diff --git a/code/game/machinery/poweredfans/poweredfans.dm b/code/game/machinery/poweredfans/poweredfans.dm index fb8b85c029..93985addde 100644 --- a/code/game/machinery/poweredfans/poweredfans.dm +++ b/code/game/machinery/poweredfans/poweredfans.dm @@ -4,13 +4,15 @@ name = "micro powered fan" desc = "A handmade fan, releasing a thin gust of air." use_power = ACTIVE_POWER_USE + power_channel = ENVIRON idle_power_usage = 5 active_power_usage = 10 + max_integrity = 150 layer = ABOVE_NORMAL_TURF_LAYER anchored = TRUE density = FALSE CanAtmosPass = ATMOS_PASS_NO - var/obj/structure/fan_assembly/assembly = null + var/obj/machinery/fan_assembly/assembly = null /obj/machinery/poweredfans/deconstruct(disassembled = TRUE) if(!(flags_1 & NODECONSTRUCT_1)) @@ -34,7 +36,7 @@ deconstruct() return TRUE -/obj/machinery/poweredfans/Initialize(mapload, obj/structure/fan_assembly/FA) +/obj/machinery/poweredfans/Initialize(mapload, obj/machinery/fan_assembly/FA) . = ..() if(FA) assembly = FA diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index ffa3bd776b..fa52ec4520 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -179,7 +179,7 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ GLOBAL_LIST_INIT(plasteel_recipes, list ( \ new/datum/stack_recipe("AI core", /obj/structure/AIcore, 4, time = 50, one_per_turf = TRUE), \ new/datum/stack_recipe("bomb assembly", /obj/machinery/syndicatebomb/empty, 10, time = 50), \ - new/datum/stack_recipe("micro powered fan assembly", /obj/structure/fan_assembly, 5, time = 50, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("micro powered fan assembly", /obj/machinery/fan_assembly, 5, time = 50, one_per_turf = TRUE, on_floor = TRUE), \ new /datum/stack_recipe_list("crates", list( \ new /datum/stack_recipe("gray crate", /obj/structure/closet/crate, 5, time = 50, one_per_turf = 1, on_floor = 1), \ new /datum/stack_recipe("internals crate", /obj/structure/closet/crate/internals, 5, time = 50, one_per_turf = 1, on_floor = 1), \ From fa516fc5174f5bf2b5b7860457f266a29ce40d86 Mon Sep 17 00:00:00 2001 From: Dip Date: Wed, 16 Sep 2020 20:51:40 -0300 Subject: [PATCH 5/6] Set atmos pass to yes on assembly --- code/game/machinery/poweredfans/fan_assembly.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/poweredfans/fan_assembly.dm b/code/game/machinery/poweredfans/fan_assembly.dm index 3baa664c81..ee8dbe682e 100644 --- a/code/game/machinery/poweredfans/fan_assembly.dm +++ b/code/game/machinery/poweredfans/fan_assembly.dm @@ -12,7 +12,7 @@ layer = ABOVE_NORMAL_TURF_LAYER anchored = FALSE density = FALSE - CanAtmosPass = ATMOS_PASS_NO + CanAtmosPass = ATMOS_PASS_YES var/state = 1 var/buildstacktype = /obj/item/stack/sheet/plasteel var/buildstackamount = 5 From a3bf4ac580349351ce687c91c5fb956f6b8ccd22 Mon Sep 17 00:00:00 2001 From: Dip Date: Sat, 19 Sep 2020 13:02:08 -0300 Subject: [PATCH 6/6] Fixes requested --- .../machinery/poweredfans/fan_assembly.dm | 43 +++++++------------ .../game/machinery/poweredfans/poweredfans.dm | 31 ++++++------- 2 files changed, 28 insertions(+), 46 deletions(-) diff --git a/code/game/machinery/poweredfans/fan_assembly.dm b/code/game/machinery/poweredfans/fan_assembly.dm index ee8dbe682e..651b3342ac 100644 --- a/code/game/machinery/poweredfans/fan_assembly.dm +++ b/code/game/machinery/poweredfans/fan_assembly.dm @@ -8,12 +8,11 @@ power_channel = ENVIRON idle_power_usage = 0 active_power_usage = 0 - max_integrity = 150 layer = ABOVE_NORMAL_TURF_LAYER anchored = FALSE density = FALSE CanAtmosPass = ATMOS_PASS_YES - var/state = 1 + stat = 1 var/buildstacktype = /obj/item/stack/sheet/plasteel var/buildstackamount = 5 /* @@ -22,27 +21,19 @@ 3 = Wires attached to it, this makes it change to the full thing. */ -/obj/machinery/fan_assembly/Initialize(mapload, ndir, building) - . = ..() - if(building) - setDir(ndir) - -/obj/machinery/fan_assembly/Destroy() - return ..() - /obj/machinery/fan_assembly/attackby(obj/item/W, mob/living/user, params) - switch(state) + switch(stat) if(1) - // State 1 + // Stat 1 if(istype(W, /obj/item/weldingtool)) if(weld(W, user)) to_chat(user, "You weld the fan assembly securely into place.") setAnchored(TRUE) - state = 2 - update_icon() + stat = 2 + update_icon_state() return if(2) - // State 2 + // Stat 2 if(istype(W, /obj/item/stack/cable_coil)) if(!W.tool_start_check(user, amount=2)) to_chat(user, "You need two lengths of cable to wire the fan assembly!") @@ -50,7 +41,7 @@ to_chat(user, "You start to add wires to the assembly...") if(W.use_tool(src, user, 30, volume=50, amount=2)) to_chat(user, "You add wires to the fan assembly.") - state = 3 + stat = 3 var/obj/machinery/poweredfans/F = new(loc, src) forceMove(F) F.setDir(src.dir) @@ -58,14 +49,14 @@ else if(istype(W, /obj/item/weldingtool)) if(weld(W, user)) to_chat(user, "You unweld the fan assembly from its place.") - state = 1 - update_icon() + stat = 1 + update_icon_state() setAnchored(FALSE) return return ..() /obj/machinery/fan_assembly/wrench_act(mob/user, obj/item/I) - if(state != 1) + if(stat != 1) return FALSE user.visible_message("[user] disassembles [src].", "You start to disassemble [src]...", "You hear wrenching noises.") @@ -76,7 +67,7 @@ /obj/machinery/fan_assembly/proc/weld(obj/item/weldingtool/W, mob/living/user) if(!W.tool_start_check(user, amount=0)) return FALSE - switch(state) + switch(stat) if(1) to_chat(user, "You start to weld \the [src]...") if(2) @@ -91,11 +82,8 @@ qdel(src) /obj/machinery/fan_assembly/examine(mob/user) - ..() - deconstruction_hints(user) - -/obj/machinery/fan_assembly/proc/deconstruction_hints(mob/user) - switch(state) + . = ..() + switch(stat) if(1) to_chat(user, "The fan assembly seems to be unwelded and loose.") if(2) @@ -103,8 +91,9 @@ if(3) to_chat(user, "The outer plating is wired firmly in place.") -/obj/machinery/fan_assembly/update_icon() - switch(state) +/obj/machinery/fan_assembly/update_icon_state() + . = ..() + switch(stat) if(1) icon_state = "mfan_assembly" if(2) diff --git a/code/game/machinery/poweredfans/poweredfans.dm b/code/game/machinery/poweredfans/poweredfans.dm index 93985addde..3349a6894e 100644 --- a/code/game/machinery/poweredfans/poweredfans.dm +++ b/code/game/machinery/poweredfans/poweredfans.dm @@ -12,21 +12,18 @@ anchored = TRUE density = FALSE CanAtmosPass = ATMOS_PASS_NO - var/obj/machinery/fan_assembly/assembly = null + var/obj/machinery/fan_assembly/assembly /obj/machinery/poweredfans/deconstruct(disassembled = TRUE) if(!(flags_1 & NODECONSTRUCT_1)) - if(disassembled) - if(!assembly) - assembly = new() - assembly.forceMove(drop_location()) - assembly.state = 2 - assembly.setAnchored(TRUE) - assembly.setDir(dir) - assembly = null - new /obj/item/stack/cable_coil(loc, 2) - else - new /obj/item/stack/cable_coil(loc, 2) + if(!assembly) + assembly = new() + assembly.forceMove(drop_location()) + assembly.stat = 2 + assembly.setAnchored(TRUE) + assembly.setDir(dir) + assembly = null + new /obj/item/stack/cable_coil(loc, 2) qdel(src) /obj/machinery/poweredfans/wirecutter_act(mob/living/user, obj/item/I) @@ -42,22 +39,18 @@ assembly = FA else assembly = new(src) - assembly.state = 3 + assembly.stat = 3 air_update_turf(1) /obj/machinery/poweredfans/power_change() ..() - update_icon() - -/obj/machinery/poweredfans/update_icon() - //if(state & NOPOWER) if(powered()) icon_state = "mfan_powered" CanAtmosPass = ATMOS_PASS_NO air_update_turf(1) - return else icon_state = "mfan_unpowered" CanAtmosPass = ATMOS_PASS_YES air_update_turf(1) - return + update_icon_state() +