diff --git a/code/ATMOSPHERICS/components/binary_devices/pump.dm b/code/ATMOSPHERICS/components/binary_devices/pump.dm
index 00fcc471504..96e0e970364 100644
--- a/code/ATMOSPHERICS/components/binary_devices/pump.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/pump.dm
@@ -196,5 +196,5 @@ obj/machinery/atmospherics/binary/pump
"[user] unfastens \the [src].", \
"\blue You have unfastened \the [src].", \
"You hear ratchet.")
- new /obj/item/pipe(loc, make_from=src)
+ new /obj/item/weapon/pipe(loc, make_from=src)
del(src)
diff --git a/code/ATMOSPHERICS/components/portables_connector.dm b/code/ATMOSPHERICS/components/portables_connector.dm
index cda8f1e6be6..7065b256053 100644
--- a/code/ATMOSPHERICS/components/portables_connector.dm
+++ b/code/ATMOSPHERICS/components/portables_connector.dm
@@ -134,8 +134,6 @@
if (connected_device)
user << "\red You cannot unwrench this [src], dettach [connected_device] first."
return 1
- if (locate(/obj/machinery/portable_atmospherics, src.loc))
- return 1
var/turf/T = src.loc
if (level==1 && isturf(T) && T.intact)
user << "\red You must remove the plating first."
@@ -153,5 +151,5 @@
"[user] unfastens \the [src].", \
"\blue You have unfastened \the [src].", \
"You hear ratchet.")
- new /obj/item/pipe(loc, make_from=src)
+ new /obj/item/weapon/pipe(loc, make_from=src)
del(src)
diff --git a/code/ATMOSPHERICS/components/unary/vent_pump.dm b/code/ATMOSPHERICS/components/unary/vent_pump.dm
index a486657a21a..1634a4c075e 100644
--- a/code/ATMOSPHERICS/components/unary/vent_pump.dm
+++ b/code/ATMOSPHERICS/components/unary/vent_pump.dm
@@ -26,7 +26,7 @@
var/frequency = 1439
var/datum/radio_frequency/radio_connection
-
+
New()
var/area/A = get_area(loc)
if (A.master)
@@ -35,7 +35,7 @@
..()
if (!id)
id = "\ref[src]"
-
+
high_volume
name = "Large Air Vent"
New()
@@ -84,7 +84,7 @@
var/transfer_moles = pressure_delta*environment.volume/(air_contents.temperature * R_IDEAL_GAS_EQUATION)
var/datum/gas_mixture/removed = air_contents.remove(transfer_moles)
-
+
use_power(round(air_contents.volume/12), channel)
loc.assume_air(removed)
@@ -105,7 +105,7 @@
var/datum/gas_mixture/removed = loc.remove_air(transfer_moles)
if (isnull(removed)) //in space
return
-
+
use_power(round(air_contents.volume/12), channel)
air_contents.merge(removed)
@@ -274,5 +274,5 @@
"[user] unfastens \the [src].", \
"\blue You have unfastened \the [src].", \
"You hear ratchet.")
- new /obj/item/pipe(loc, make_from=src)
+ new /obj/item/weapon/pipe(loc, make_from=src)
del(src)
diff --git a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
index bbe7de4fe7d..43673eb1d0a 100644
--- a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
+++ b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
@@ -83,7 +83,7 @@
if(!on)
return 0
-
+
var/datum/gas_mixture/environment = loc.return_air()
if(scrubbing)
@@ -213,5 +213,5 @@
"[user] unfastens \the [src].", \
"\blue You have unfastened \the [src].", \
"You hear ratchet.")
- new /obj/item/pipe(loc, make_from=src)
+ new /obj/item/weapon/pipe(loc, make_from=src)
del(src)
diff --git a/code/ATMOSPHERICS/components/valve.dm b/code/ATMOSPHERICS/components/valve.dm
index b43bb59c0d2..2769ef46791 100644
--- a/code/ATMOSPHERICS/components/valve.dm
+++ b/code/ATMOSPHERICS/components/valve.dm
@@ -131,7 +131,7 @@ obj/machinery/atmospherics/valve
initialize()
if(node1 && node2) return
-/* var/connect_directions
+ var/connect_directions
switch(dir)
if(NORTH)
@@ -162,16 +162,7 @@ obj/machinery/atmospherics/valve
node2 = target
break
if(node1)
- break*/
- for(var/obj/machinery/atmospherics/target in get_step(src,dir))
- if(target.initialize_directions & get_dir(target,src))
- node1 = target
- break
-
- for(var/obj/machinery/atmospherics/target in get_step(src,turn(dir,180)))
- if(target.initialize_directions & get_dir(target,src))
- node2 = target
- break
+ break
build_network()
if(!network_node1 && node1)
@@ -292,5 +283,5 @@ obj/machinery/atmospherics/valve
"[user] unfastens \the [src].", \
"\blue You have unfastened \the [src].", \
"You hear ratchet.")
- new /obj/item/pipe(loc, make_from=src)
+ new /obj/item/weapon/pipe(loc, make_from=src)
del(src)
diff --git a/code/ATMOSPHERICS/pipes.dm b/code/ATMOSPHERICS/pipes.dm
index c1f2a56ea12..5c0d3e6dcc0 100644
--- a/code/ATMOSPHERICS/pipes.dm
+++ b/code/ATMOSPHERICS/pipes.dm
@@ -155,9 +155,6 @@ obj/machinery/atmospherics/pipe
proc/burst()
src.visible_message("\red \bold [src] bursts!");
playsound(src.loc, 'bang.ogg', 25, 1)
- var/datum/effects/system/harmless_smoke_spread/smoke = new
- smoke.set_up(1,0, src.loc, 0)
- smoke.start()
del(src)
Del()
@@ -190,34 +187,36 @@ obj/machinery/atmospherics/pipe
//dir = node1_direction|node2_direction
else
- if(!node1&&!node2)
- del(src) //TODO: silent deleting looks weird
var/have_node1 = node1?1:0
var/have_node2 = node2?1:0
icon_state = "exposed[have_node1][have_node2][invisibility ? "-f" : "" ]"
+ if(!node1&&!node2)
+ del(src)
initialize()
- var/node1_dir
- var/node2_dir
-
+ var/connect_directions = initialize_directions
for(var/direction in cardinal)
- if(direction&initialize_directions)
- if (!node1_dir)
- node1_dir = direction
- else if (!node2_dir)
- node2_dir = direction
-
- for(var/obj/machinery/atmospherics/target in get_step(src,node1_dir))
- if(target.initialize_directions & get_dir(target,src))
- node1 = target
- break
- for(var/obj/machinery/atmospherics/target in get_step(src,node2_dir))
- if(target.initialize_directions & get_dir(target,src))
- node2 = target
- break
+ if(direction&connect_directions)
+ for(var/obj/machinery/atmospherics/target in get_step(src,direction))
+ if(target.initialize_directions & get_dir(target,src))
+ node1 = target
+ connect_directions &= ~direction
+ break
+ if (node1)
+ break
+ for(var/direction in cardinal)
+ if(direction&connect_directions)
+ for(var/obj/machinery/atmospherics/target in get_step(src,direction))
+ if(target.initialize_directions & get_dir(target,src))
+ node2 = target
+ connect_directions &= ~direction
+ break
+ if(node2)
+ break
+
var/turf/T = src.loc // hide if turf is not intact
hide(T.intact)
update_icon()
@@ -269,14 +268,16 @@ obj/machinery/atmospherics/pipe
del(src)
initialize()
- for(var/obj/machinery/atmospherics/target in get_step(src,initialize_directions))
- if(target.initialize_directions & get_dir(target,src))
- node1 = target
- break
- for(var/obj/machinery/atmospherics/pipe/simple/heat_exchanging/target in get_step(src,initialize_directions_he))
- if(target.initialize_directions_he & get_dir(target,src))
- node2 = target
- break
+ if(!node1)
+ for(var/obj/machinery/atmospherics/pipe/simple/target in get_step(src,initialize_directions))
+ if(target.initialize_directions & get_dir(target,src))
+ node1 = target
+ break
+ if(!node2)
+ for(var/obj/machinery/atmospherics/pipe/simple/heat_exchanging/target in get_step(src,initialize_directions_he))
+ if(target.initialize_directions_he & get_dir(target,src))
+ node2 = target
+ break
update_icon()
@@ -290,25 +291,26 @@ obj/machinery/atmospherics/pipe
thermal_conductivity = WINDOW_HEAT_TRANSFER_COEFFICIENT
initialize()
- var/node1_dir
- var/node2_dir
-
+ var/connect_directions = initialize_directions_he
for(var/direction in cardinal)
- if(direction&initialize_directions_he)
- if (!node1_dir)
- node1_dir = direction
- else if (!node2_dir)
- node2_dir = direction
-
- for(var/obj/machinery/atmospherics/pipe/simple/heat_exchanging/target in get_step(src,node1_dir))
- if(target.initialize_directions_he & get_dir(target,src))
- node1 = target
- break
- for(var/obj/machinery/atmospherics/pipe/simple/heat_exchanging/target in get_step(src,node2_dir))
- if(target.initialize_directions_he & get_dir(target,src))
- node2 = target
- break
+ if(direction&connect_directions)
+ for(var/obj/machinery/atmospherics/pipe/simple/heat_exchanging/target in get_step(src,direction))
+ if(target.initialize_directions_he & get_dir(target,src))
+ node1 = target
+ connect_directions &= ~direction
+ break
+ if (node1)
+ break
+ for(var/direction in cardinal)
+ if(direction&connect_directions)
+ for(var/obj/machinery/atmospherics/pipe/simple/heat_exchanging/target in get_step(src,direction))
+ if(target.initialize_directions_he & get_dir(target,src))
+ node2 = target
+ connect_directions &= ~direction
+ break
+ if (node2)
+ break
update_icon()
@@ -709,9 +711,9 @@ obj/machinery/atmospherics/pipe
update_icon()
obj/machinery/atmospherics/pipe/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
- if (istype(src, /obj/machinery/atmospherics/pipe/tank))
+ if (istype(W, /obj/machinery/atmospherics/pipe/tank))
return ..()
- if (istype(src, /obj/machinery/atmospherics/pipe/vent))
+ if (istype(W, /obj/machinery/atmospherics/pipe/vent))
return ..()
if (!istype(W, /obj/item/weapon/wrench))
return ..()
@@ -732,9 +734,5 @@ obj/machinery/atmospherics/pipe/attackby(var/obj/item/weapon/W as obj, var/mob/u
"[user] unfastens \the [src].", \
"\blue You have unfastened \the [src].", \
"You hear ratchet.")
- new /obj/item/pipe(loc, make_from=src)
- for (var/obj/machinery/meter/meter in T)
- if (meter.target == src)
- new /obj/item/pipe_meter(T)
- del(meter)
+ new /obj/item/weapon/pipe(loc, make_from=src)
del(src)
\ No newline at end of file
diff --git a/code/WorkInProgress/mining.dm b/code/WorkInProgress/mining.dm
index 5fd6b3c1662..22430756dd8 100644
--- a/code/WorkInProgress/mining.dm
+++ b/code/WorkInProgress/mining.dm
@@ -12,177 +12,65 @@
/area/mine/lobby
name = "Mining station"
+ requires_power = 0
+ luminosity = 1
icon_state = "mine"
+ sd_lighting = 0
/**********************Mineral deposits**************************/
/turf/simulated/mineral //wall piece
- name = "Rock"
+ name = "Mineral deposit"
icon = 'walls.dmi'
icon_state = "rock"
- oxygen = 0
- nitrogen = 0
opacity = 1
density = 1
blocks_air = 1
- temperature = TCMB
var/mineralName = ""
var/mineralAmt = 0
- var/spread = 0 //will the seam spread?
- var/spreadChance = 0 //the percentual chance of an ore spreading to the neighbouring tiles
-/turf/simulated/mineral/Del()
- return
-
-/turf/simulated/mineral/ex_act(severity)
- switch(severity)
- if(3.0)
- return
- if(2.0)
- if (prob(70))
- src.mineralAmt -= 1 //some of the stuff gets blown up
- src.gets_drilled()
- if(1.0)
- src.mineralAmt -= 2 //some of the stuff gets blown up
- src.gets_drilled()
- return
-
-/turf/simulated/mineral/New()
- desc = "0"
- if (mineralName && mineralAmt && spread && spreadChance)
- var/sp = pickweight(list("1" = spreadChance, "0" = 100-spreadChance))
- if(sp == "1")
- if(istype(get_step(src, SOUTH), /turf/simulated/mineral/random))
- //var/turf/simulated/mineral/random/R
- //R = get_step(src, SOUTH)
- new src.type(get_step(src, SOUTH))
- //R.levelupdate()
- sp = pickweight(list("1" = spreadChance, "0" = 100-spreadChance))
- if(sp == "1")
- if(istype(get_step(src, NORTH), /turf/simulated/mineral/random))
- //var/turf/simulated/mineral/random/R
- //R = get_step(src, NORTH)
- new src.type(get_step(src, NORTH))
- //R.levelupdate()
- sp = pickweight(list("1" = spreadChance, "0" = 100-spreadChance))
- if(sp == "1")
- if(istype(get_step(src, WEST), /turf/simulated/mineral/random))
- //var/turf/simulated/mineral/random/R
- //R = get_step(src, WEST)
- new src.type(get_step(src, WEST))
- //R.levelupdate()
- sp = pickweight(list("1" = spreadChance, "0" = 100-spreadChance))
- if(sp == "1")
- if(istype(get_step(src, EAST), /turf/simulated/mineral/random))
- //var/turf/simulated/mineral/random/R
- //R = get_step(src, EAST)
- new src.type(get_step(src, EAST))
- //R.levelupdate()
-
- return
-
-/*if(istype(get_step(src, SOUTH), /turf/simulated/floor/airless/asteroid))
- A = get_step(src, SOUTH)
- A.updateMineralOverlays()*/
-
-/turf/simulated/mineral/random
- name = "Mineral deposit"
- var/mineralAmtList = list("Uranium" = 5, "Iron" = 5, "Diamond" = 5, "Gold" = 5, "Silver" = 5, "Plasma" = 5)
- var/mineralSpawnChanceList = list("Uranium" = 5, "Iron" = 50, "Diamond" = 1, "Gold" = 5, "Silver" = 5, "Plasma" = 25)
- var/mineralChance = 10 //means 10% chance of this plot changing to a mineral deposit
-
-/turf/simulated/mineral/random/New()
- var/mChance = pickweight(list("1" = mineralChance, "0" = 100-mineralChance))
- if (mChance == "1")
- var/mName = pickweight(mineralSpawnChanceList) //temp mineral name
- spawn(5)
- if (mName)
- var/turf/simulated/mineral/M
- switch(mName)
- if("Uranium")
- M = new/turf/simulated/mineral/uranium(src)
- if("Iron")
- M = new/turf/simulated/mineral/iron(src)
- if("Diamond")
- M = new/turf/simulated/mineral/diamond(src)
- if("Gold")
- M = new/turf/simulated/mineral/gold(src)
- if("Silver")
- M = new/turf/simulated/mineral/silver(src)
- if("Plasma")
- M = new/turf/simulated/mineral/plasma(src)
- if(M)
- src = M
- M.levelupdate()
- return
-
-/turf/simulated/mineral/random/Del()
- return
-
-/turf/simulated/mineral/uranium
+/turf/simulated/mineral/urenium
name = "Uranium deposit"
icon_state = "rock_Uranium"
mineralName = "Uranium"
mineralAmt = 5
- spreadChance = 10
- spread = 1
-
-
/turf/simulated/mineral/iron
name = "Iron deposit"
icon_state = "rock_Iron"
mineralName = "Iron"
mineralAmt = 5
- spreadChance = 25
- spread = 1
-
/turf/simulated/mineral/diamond
name = "Diamond deposit"
icon_state = "rock_Diamond"
mineralName = "Diamond"
mineralAmt = 5
- spreadChance = 10
- spread = 1
-
/turf/simulated/mineral/gold
name = "Gold deposit"
icon_state = "rock_Gold"
mineralName = "Gold"
mineralAmt = 5
- spreadChance = 10
- spread = 1
-
/turf/simulated/mineral/silver
name = "Silver deposit"
icon_state = "rock_Silver"
mineralName = "Silver"
mineralAmt = 5
- spreadChance = 10
- spread = 1
-
/turf/simulated/mineral/plasma
name = "Plasma deposit"
icon_state = "rock_Plasma"
mineralName = "Plasma"
mineralAmt = 5
- spreadChance = 25
- spread = 1
-
/turf/simulated/mineral/clown
name = "Bananium deposit"
icon_state = "rock_Clown"
mineralName = "Clown"
- mineralAmt = 3
- spreadChance = 0
- spread = 0
-
+ mineralAmt = 2
/turf/simulated/mineral/ReplaceWithFloor()
if(!icon_old) icon_old = icon_state
@@ -247,19 +135,6 @@
ReplaceWithFloor()
return
-/*
-/turf/simulated/mineral/proc/setRandomMinerals()
- var/s = pickweight(list("uranium" = 5, "iron" = 50, "gold" = 5, "silver" = 5, "plasma" = 50, "diamond" = 1))
- if (s)
- mineralName = s
-
- var/N = text2path("/turf/simulated/mineral/[s]")
- if (N)
- var/turf/simulated/mineral/M = new N
- src = M
- if (src.mineralName)
- mineralAmt = 5
- return*/
/**********************Asteroid**************************/
@@ -268,9 +143,6 @@
name = "Asteroid"
icon = 'floors.dmi'
icon_state = "asteroid"
- oxygen = 0
- nitrogen = 0
- temperature = TCMB
var/seedName = "" //Name of the seed it contains
var/seedAmt = 0 //Ammount of the seed it contains
var/dug = 0 //0 = has not yet been dug, 1 = has already been dug
@@ -283,9 +155,6 @@
spawn(2)
updateMineralOverlays()
-/turf/simulated/floor/airless/asteroid/ex_act(severity)
- return
-
/turf/simulated/floor/airless/asteroid/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
usr << "\red You don't have the dexterity to do this!"
@@ -1234,11 +1103,6 @@
var/obj/machinery/mineral/output = null
var/amt_silver = 0 //amount of silver
var/amt_gold = 0 //amount of gold
- var/amt_diamond = 0
- var/amt_iron = 0
- var/amt_plasma = 0
- var/amt_uranium = 0
- var/amt_clown = 0
var/newCoins = 0 //how many coins the machine made in it's last load
var/processing = 0
@@ -1252,33 +1116,16 @@
return
return
-
/obj/machinery/mineral/mint/process()
if (src.output && src.input)
var/obj/item/stack/sheet/O
O = locate(/obj/item/stack/sheet, input.loc)
- if(O)
- if (istype(O,/obj/item/stack/sheet/gold))
- amt_gold += 100
- del(O)
- if (istype(O,/obj/item/stack/sheet/silver))
- amt_silver += 100
- del(O)
- if (istype(O,/obj/item/stack/sheet/diamond))
- amt_diamond += 100
- del(O)
- if (istype(O,/obj/item/stack/sheet/plasma))
- amt_plasma += 100
- del(O)
- if (istype(O,/obj/item/weapon/ore/uranium))
- amt_uranium += 100
- del(O)
- if (istype(O,/obj/item/stack/sheet/metal))
- amt_iron += 100
- del(O)
- if (istype(O,/obj/item/stack/sheet/clown))
- amt_clown += 100
- del(O)
+ if (istype(O,/obj/item/stack/sheet/gold))
+ amt_gold += 100
+ del(O)
+ if (istype(O,/obj/item/stack/sheet/silver))
+ amt_silver += 100
+ del(O)
/obj/machinery/mineral/mint/attack_hand(user as mob)
@@ -1297,11 +1144,6 @@
dat += text("
Gold inserterd: [amt_gold]")
dat += text("
Silver inserterd: [amt_silver]")
- dat += text("
Iron inserterd: [amt_iron]")
- dat += text("
Diamond inserterd: [amt_diamond]")
- dat += text("
Plasma inserterd: [amt_plasma]")
- dat += text("
Uranium inserterd: [amt_uranium]")
- dat += text("
Bananium inserterd: [amt_clown]")
dat += text("
Make coins")
dat += text("
found: [newCoins]")
@@ -1329,37 +1171,6 @@
newCoins++
src.updateUsrDialog()
sleep(5);
- while(amt_diamond > 0)
- new /obj/item/weapon/coin/diamond(output.loc)
- amt_diamond -= 20
- newCoins++
- src.updateUsrDialog()
- sleep(5);
- while(amt_iron > 0)
- new /obj/item/weapon/coin/iron(output.loc)
- amt_iron -= 20
- newCoins++
- src.updateUsrDialog()
- sleep(5);
- while(amt_plasma > 0)
- new /obj/item/weapon/coin/plasma(output.loc)
- amt_plasma -= 20
- newCoins++
- src.updateUsrDialog()
- sleep(5);
- while(amt_uranium > 0)
- new /obj/item/weapon/coin/uranium(output.loc)
- amt_uranium -= 20
- newCoins++
- src.updateUsrDialog()
- sleep(5);
- while(amt_clown > 0)
- new /obj/item/weapon/coin/clown(output.loc)
- amt_clown -= 20
- newCoins++
- src.updateUsrDialog()
- sleep(5);
-
processing = 0;
src.updateUsrDialog()
return
@@ -1389,26 +1200,6 @@
name = "Silver coin"
icon_state = "coin_silver"
-/obj/item/weapon/coin/diamond
- name = "Diamond coin"
- icon_state = "coin_diamond"
-
-/obj/item/weapon/coin/iron
- name = "Iron coin"
- icon_state = "coin_iron"
-
-/obj/item/weapon/coin/plasma
- name = "Solid plasma coin"
- icon_state = "coin_plasma"
-
-/obj/item/weapon/coin/uranium
- name = "Uranium coin"
- icon_state = "coin_uranium"
-
-/obj/item/weapon/coin/clown
- name = "Bananaium coin"
- icon_state = "coin_clown"
-
/**********************Gas extractor**************************/
@@ -1516,10 +1307,10 @@
icon = 'items.dmi'
icon_state = "pickaxe"
flags = FPRINT | TABLEPASS| CONDUCT | ONBELT
- force = 15.0
- throwforce = 4.0
+ force = 5.0
+ throwforce = 7.0
item_state = "wrench"
- w_class = 4.0
+ w_class = 2.0
m_amt = 50
/*****************************Shovel********************************/
@@ -1529,10 +1320,10 @@
icon = 'items.dmi'
icon_state = "shovel"
flags = FPRINT | TABLEPASS| CONDUCT | ONBELT
- force = 8.0
- throwforce = 4.0
+ force = 5.0
+ throwforce = 7.0
item_state = "wrench"
- w_class = 4.0
+ w_class = 2.0
m_amt = 50
@@ -1613,7 +1404,6 @@
icon_state = "rail"
dir = 2
var/id = null //this is needed for switches to work Set to the same on the whole length of the track
- anchored = 1
/**********************Rail intersection**************************/
@@ -2109,12 +1899,12 @@ for (var/client/C)
dat += text("
Scrap current shuttle")
else
dat += text("Available ships to build:
")
- dat += text("Planet hopper - Tiny, Slow, 25000 metal
")
- dat += text("Blunder Bus - Small, Decent speed, 60000 metal
")
- dat += text("Space dinghy - Medium size, Decent speed, 100000 metal
")
- dat += text("Boxvan MMDLVIr - Medium size, Decent speed, 120000 metal
")
- dat += text("Boxvan MMDLVI - Security eidition - Large, Rather slow, 125000 metal
")
- dat += text("Space station 4 - Huge, Slow, 250000 metal
")
+ dat += text("Planet hopper - Tiny, Slow
")
+ dat += text("Blunder Bus - Small, Decent speed
")
+ dat += text("Space dinghy - Medium size, Decent speed
")
+ dat += text("Boxvan MMDLVIr - Medium size, Decent speed
")
+ dat += text("Boxvan MMDLVI - Security eidition - Large, Rather slow
")
+ dat += text("Space station 4 - Huge, Slow
")
user << browse("[dat]", "window=shipbuilder")
diff --git a/code/game/machinery/atmoalter/meter.dm b/code/game/machinery/atmoalter/meter.dm
index bea2bcf9ee2..ec3a0cffa4e 100644
--- a/code/game/machinery/atmoalter/meter.dm
+++ b/code/game/machinery/atmoalter/meter.dm
@@ -88,16 +88,3 @@
usr << t
return
-
-/obj/machinery/meter/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
- if (!istype(W, /obj/item/weapon/wrench))
- return ..()
- playsound(src.loc, 'Ratchet.ogg', 50, 1)
- user << "\blue You begin to unfasten \the [src]..."
- if (do_after(user, 40))
- user.visible_message( \
- "[user] unfastens \the [src].", \
- "\blue You have unfastened \the [src].", \
- "You hear ratchet.")
- new /obj/item/pipe_meter(src.loc)
- del(src)
\ No newline at end of file
diff --git a/code/game/machinery/atmoalter/portable_atmospherics.dm b/code/game/machinery/atmoalter/portable_atmospherics.dm
index a6c5fa95beb..9a1cdaa2dcb 100644
--- a/code/game/machinery/atmoalter/portable_atmospherics.dm
+++ b/code/game/machinery/atmoalter/portable_atmospherics.dm
@@ -54,7 +54,6 @@
var/datum/pipe_network/network = connected_port.return_network(src)
if(network && !network.gases.Find(air_contents))
network.gases += air_contents
- network.update = 1
return 1
diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm
index 71e63f933ba..add1efd0488 100644
--- a/code/game/machinery/pipe/construction.dm
+++ b/code/game/machinery/pipe/construction.dm
@@ -16,7 +16,7 @@ Buildable meters
#define PIPE_INSULATED_STRAIGHT 11
#define PIPE_INSULATED_BENT 12
-/obj/item/pipe
+/obj/item/weapon/pipe
name = "pipe"
desc = "A pipe"
var/pipe_type = 0
@@ -28,8 +28,8 @@ Buildable meters
flags = TABLEPASS|FPRINT
w_class = 4
level = 2
-
-/obj/item/pipe/New(var/loc, var/pipe_type as num, var/dir as num, var/obj/machinery/atmospherics/make_from = null)
+ //TODO: список номер_типа -> тип
+/obj/item/weapon/pipe/New(var/loc, var/pipe_type as num, var/dir as num, var/obj/machinery/atmospherics/make_from = null)
..()
if (make_from)
src.dir = make_from.dir
@@ -41,10 +41,8 @@ Buildable meters
is_bent = 1
if (istype(make_from, /obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction))
src.pipe_type = PIPE_JUNCTION
- else if(istype(make_from, /obj/machinery/atmospherics/pipe/simple/heat_exchanging))
+ else if(istype(make_from, /obj/machinery/atmospherics/pipe/simple/heat_exchanging))
src.pipe_type = PIPE_HE_STRAIGHT + is_bent
- else if(istype(make_from, /obj/machinery/atmospherics/pipe/simple/insulated))
- src.pipe_type = PIPE_INSULATED_STRAIGHT + is_bent
else if(istype(make_from, /obj/machinery/atmospherics/pipe/simple))
src.pipe_type = PIPE_SIMPLE_STRAIGHT + is_bent
else if(istype(make_from, /obj/machinery/atmospherics/portables_connector))
@@ -59,17 +57,19 @@ Buildable meters
src.pipe_type = PIPE_PUMP
else if(istype(make_from, /obj/machinery/atmospherics/unary/vent_scrubber))
src.pipe_type = PIPE_SCRUBBER
+ else if(istype(make_from, /obj/machinery/atmospherics/pipe/simple/insulated))
+ src.pipe_type = PIPE_INSULATED_STRAIGHT + is_bent
+ if (is_bent)
+ src.dir = make_from.initialize_directions //workaround. Bent pipes with one node==null have cardinal direction. - rastaf0
else
src.pipe_type = pipe_type
src.dir = dir
//src.pipe_dir = get_pipe_dir()
update()
- src.pixel_x = rand(-5, 5)
- src.pixel_y = rand(-5, 5)
//update the name and icon of the pipe item depending on the type
-/obj/item/pipe/proc/update()
+/obj/item/weapon/pipe/proc/update()
var/list/nlist = list( \
"pipe", \
"bent pipe", \
@@ -102,13 +102,31 @@ Buildable meters
"insulated", \
)
icon_state = islist[pipe_type + 1]
+ updateicon()
+
+//update the icon of the item
+
+/obj/item/weapon/pipe/proc/updateicon()
+ if(invisibility) // true if placed under floor
+ icon -= rgb(0,0,0,128) // fade the icon
+ else
+ icon = initial(icon) // otherwise reset to inital icon
+
+// called to hide or unhide a pipe
+// i=true if hiding
+
+/obj/item/weapon/pipe/hide(var/i)
+
+ invisibility = i ? 101 : 0 // make hidden pipe items invisible
+ updateicon()
+
//called when a turf is attacked with a pipe item
// place the pipe on the turf, setting pipe level to 1 (underfloor) if the turf is not intact
// rotate the pipe item clockwise
-/obj/item/pipe/verb/rotate()
+/obj/item/weapon/pipe/verb/rotate()
set name = "Rotate Pipe"
set src in view(1)
@@ -116,30 +134,18 @@ Buildable meters
return
src.dir = turn(src.dir, -90)
-
- if (pipe_type in list (PIPE_SIMPLE_STRAIGHT, PIPE_HE_STRAIGHT, PIPE_INSULATED_STRAIGHT, PIPE_MVALVE))
- if(dir==2)
- dir = 1
- else if(dir==8)
- dir = 4
//src.pipe_dir = get_pipe_dir()
return
-/obj/item/pipe/Move()
+/obj/item/weapon/pipe/Move()
+ var/dir = src.dir
..()
- if ((pipe_type in list (PIPE_SIMPLE_BENT, PIPE_HE_BENT, PIPE_INSULATED_BENT)) \
- && (src.dir in cardinal))
- src.dir = src.dir|turn(src.dir, 90)
- else if (pipe_type in list (PIPE_SIMPLE_STRAIGHT, PIPE_HE_STRAIGHT, PIPE_INSULATED_STRAIGHT, PIPE_MVALVE))
- if(dir==2)
- dir = 1
- else if(dir==8)
- dir = 4
+ src.dir = dir
return
// returns all pipe's endpoints
-/obj/item/pipe/proc/get_pipe_dir()
+/obj/item/weapon/pipe/proc/get_pipe_dir()
if (!dir)
return 0
var/flip = turn(dir, 180)
@@ -163,7 +169,7 @@ Buildable meters
return flip|cw|acw
return 0
-/obj/item/pipe/proc/get_pdir() //endpoints for regular pipes
+/obj/item/weapon/pipe/proc/get_pdir() //endpoints for regular pipes
var/flip = turn(dir, 180)
// var/cw = turn(dir, -90)
@@ -180,7 +186,7 @@ Buildable meters
// return the h_dir (heat-exchange pipes) from the type and the dir
-/obj/item/pipe/proc/get_hdir() //endpoints for h/e pipes
+/obj/item/weapon/pipe/proc/get_hdir() //endpoints for h/e pipes
// var/flip = turn(dir, 180)
// var/cw = turn(dir, -90)
@@ -195,20 +201,15 @@ Buildable meters
else
return 0
-/obj/item/pipe/attack_self(mob/user as mob)
+/obj/item/weapon/pipe/attack_self(mob/user as mob)
return rotate()
-/obj/item/pipe/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
+/obj/item/weapon/pipe/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
//*
if (!istype(W, /obj/item/weapon/wrench))
return ..()
if (!isturf(src.loc))
return 1
- if (pipe_type in list (PIPE_SIMPLE_STRAIGHT, PIPE_HE_STRAIGHT, PIPE_INSULATED_STRAIGHT, PIPE_MVALVE))
- if(dir==2)
- dir = 1
- else if(dir==8)
- dir = 4
var/pipe_dir = get_pipe_dir()
for(var/obj/machinery/atmospherics/M in src.loc)
@@ -263,8 +264,6 @@ Buildable meters
C.initialize_directions = pipe_dir
if (pipename)
C.name = pipename
- var/turf/T = C.loc
- C.level = T.intact ? 2 : 1
C.initialize()
C.build_network()
if (C.node)
@@ -312,15 +311,20 @@ Buildable meters
if (P.node2)
P.node2.initialize()
P.node2.build_network()
-
+/*
+ if(6) //junctions
+ var/obj/machinery/junction/J = new( src.loc )
+ J.dir = dir
+ J.p_dir = src.get_pdir()
+ J.h_dir = src.get_hdir()
+ J.level = 2
+*/
if(PIPE_UVENT) //unary vent
var/obj/machinery/atmospherics/unary/vent_pump/V = new( src.loc )
V.dir = dir
V.initialize_directions = pipe_dir
if (pipename)
V.name = pipename
- var/turf/T = V.loc
- V.level = T.intact ? 2 : 1
V.initialize()
V.build_network()
if (V.node)
@@ -334,8 +338,6 @@ Buildable meters
V.initialize_directions = pipe_dir
if (pipename)
V.name = pipename
- var/turf/T = V.loc
- V.level = T.intact ? 2 : 1
V.initialize()
V.build_network()
if (V.node1)
@@ -353,8 +355,6 @@ Buildable meters
P.initialize_directions = pipe_dir
if (pipename)
P.name = pipename
- var/turf/T = P.loc
- P.level = T.intact ? 2 : 1
P.initialize()
P.build_network()
if (P.node1)
@@ -371,8 +371,6 @@ Buildable meters
S.initialize_directions = pipe_dir
if (pipename)
S.name = pipename
- var/turf/T = S.loc
- S.level = T.intact ? 2 : 1
S.initialize()
S.build_network()
if (S.node)
@@ -399,8 +397,8 @@ Buildable meters
playsound(src.loc, 'Ratchet.ogg', 50, 1)
user.visible_message( \
- "[user] fastens the [src].", \
- "\blue You have fastened the [src].", \
+ "[user] fastens the pipe.", \
+ "\blue You have fastened the pipe.", \
"You hear ratchet.")
del(src) // remove the pipe item
@@ -411,7 +409,7 @@ Buildable meters
-/obj/item/pipe_meter
+/obj/item/weapon/pipe_meter
name = "meter"
desc = "A meter that can be laid on pipes"
icon = 'pipe-item.dmi'
@@ -420,7 +418,7 @@ Buildable meters
flags = TABLEPASS|FPRINT
w_class = 4
-/obj/item/pipe_meter/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
+/obj/item/weapon/pipe_meter/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
if (!istype(W, /obj/item/weapon/wrench))
return ..()
diff --git a/code/game/machinery/pipe/pipe_dispenser.dm b/code/game/machinery/pipe/pipe_dispenser.dm
index 62fa78afcae..4ce7cb87d68 100644
--- a/code/game/machinery/pipe/pipe_dispenser.dm
+++ b/code/game/machinery/pipe/pipe_dispenser.dm
@@ -3,8 +3,7 @@
icon = 'stationobjs.dmi'
icon_state = "autolathe"
density = 1
- anchored = 1
- var/unwrenched = 0
+ anchored = 1.0
/obj/machinery/pipedispenser/attack_paw(user as mob)
return src.attack_hand(user)
@@ -16,11 +15,10 @@
Regular pipes:
Pipe
Bent Pipe
-Manifold
-Manual Valve
-Devices:
Connector
+Manifold
Unary Vent
+Manual Valve
Gas Pump
Scrubber
Meter
@@ -41,57 +39,23 @@
/obj/machinery/pipedispenser/Topic(href, href_list)
if(..())
return
- if(unwrenched)
- usr << browse(null, "window=pipedispenser")
- return
usr.machine = src
src.add_fingerprint(usr)
if(href_list["make"])
var/p_type = text2num(href_list["make"])
var/p_dir = text2num(href_list["dir"])
- var/obj/item/pipe/P = new (/*usr.loc*/ src.loc, pipe_type=p_type, dir=p_dir)
+ var/obj/item/weapon/pipe/P = new (usr.loc, pipe_type=p_type, dir=p_dir)
P.update()
if(href_list["makemeter"])
- new /obj/item/pipe_meter(/*usr.loc*/ src.loc)
+ new /obj/item/weapon/pipe_meter(usr.loc)
/* for(var/mob/M in viewers(1, src))
if ((M.client && M.machine == src))
src.attack_hand(M)*/
return
-/obj/machinery/pipedispenser/attackby(var/obj/item/W as obj, var/mob/user as mob)
- if (istype(W, /obj/item/pipe) || istype(W, /obj/item/pipe_meter))
- usr << "\blue You put [W] back to [src]."
- del(W)
- return
- else if (istype(W, /obj/item/weapon/wrench))
- if (unwrenched==0)
- playsound(src.loc, 'Ratchet.ogg', 50, 1)
- user << "\blue You begin to unfasten \the [src] from the floor..."
- if (do_after(user, 40))
- user.visible_message( \
- "[user] unfastens \the [src].", \
- "\blue You have unfastened \the [src]. Now it can be pulled somewhere else.", \
- "You hear ratchet.")
- src.anchored = 0
- src.stat |= MAINT
- src.unwrenched = 1
- if (usr.machine==src)
- usr << browse(null, "window=pipedispenser")
- else /*if (unwrenched==1)*/
- playsound(src.loc, 'Ratchet.ogg', 50, 1)
- user << "\blue You begin to fasten \the [src] to the floor..."
- if (do_after(user, 20))
- user.visible_message( \
- "[user] fastens \the [src].", \
- "\blue You have fastened \the [src]. Now it can dispense pipes.", \
- "You hear ratchet.")
- src.anchored = 1
- src.stat &= ~MAINT
- src.unwrenched = 0
- power_change()
- else
- return ..()
+/obj/machinery/pipedispenser/New()
+ ..()
/obj/machinery/pipedispenser/disposal