Pipe painter integrated into RPD, both no longer make pipes spam "being hit by X"

This commit is contained in:
Rob Nelson
2013-12-23 19:50:19 -08:00
parent b236426503
commit e6dca71d8e
5 changed files with 114 additions and 220 deletions

View File

@@ -1234,6 +1234,7 @@
#include "code\modules\research\xenoarchaeology\finds\finds_fossils.dm"
#include "code\modules\research\xenoarchaeology\finds\finds_misc.dm"
#include "code\modules\research\xenoarchaeology\finds\finds_talkingitem.dm"
#include "code\modules\research\xenoarchaeology\finds2\finds2.dm"
#include "code\modules\research\xenoarchaeology\machinery\analysis_accelerator.dm"
#include "code\modules\research\xenoarchaeology\machinery\analysis_base.dm"
#include "code\modules\research\xenoarchaeology\machinery\analysis_fourier_transform.dm"

View File

@@ -515,6 +515,8 @@ obj/machinery/atmospherics/pipe
return null
attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
if(istype(W, /obj/item/weapon/pipe_dispenser) || istype(W, /obj/item/device/pipe_painter))
return // Coloring pipes.
if (istype(W, /obj/item/device/analyzer) && get_dist(user, src) <= 1)
for (var/mob/O in viewers(user, null))
O << "\red [user] has used the analyzer on \icon[icon]"
@@ -1247,6 +1249,8 @@ obj/machinery/atmospherics/pipe
obj/machinery/atmospherics/pipe/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
if(istype(W, /obj/item/weapon/pipe_dispenser) || istype(W, /obj/item/device/pipe_painter))
return // Coloring pipes.
if (istype(src, /obj/machinery/atmospherics/pipe/tank))
return ..()
if (istype(src, /obj/machinery/atmospherics/pipe/vent))

View File

@@ -76,17 +76,17 @@ var/global/list/RPD_recipes=list(
"Manual T-Valve" = new /datum/pipe_info(19, 2, PIPE_TRINARY),
),
"Devices"=list(
"Connector" = new /datum/pipe_info(4, 1, PIPE_UNARY),
"Unary Vent" = new /datum/pipe_info(7, 1, PIPE_UNARY),
"Gas Pump" = new /datum/pipe_info(9, 1, PIPE_UNARY),
"Passive Gate" = new /datum/pipe_info(15,1, PIPE_UNARY),
"Volume Pump" = new /datum/pipe_info(16,1, PIPE_UNARY),
"Scrubber" = new /datum/pipe_info(10,1, PIPE_UNARY),
"Meter" = new /datum/pipe_info/meter(),
"Gas Filter" = new /datum/pipe_info(13,1, PIPE_TRINARY),
"Gas Mixer" = new /datum/pipe_info(14,1, PIPE_TRINARY),
"Thermal Plate" = new /datum/pipe_info(PIPE_THERMAL_PLATE,1, PIPE_UNARY),
"Injector" = new /datum/pipe_info(PIPE_INJECTOR, 1, PIPE_UNARY),
"Connector" = new /datum/pipe_info(4, 1, PIPE_UNARY),
"Unary Vent" = new /datum/pipe_info(7, 1, PIPE_UNARY),
"Gas Pump" = new /datum/pipe_info(9, 1, PIPE_UNARY),
"Passive Gate" = new /datum/pipe_info(15,1, PIPE_UNARY),
"Volume Pump" = new /datum/pipe_info(16,1, PIPE_UNARY),
"Scrubber" = new /datum/pipe_info(10,1, PIPE_UNARY),
"Meter" = new /datum/pipe_info/meter(),
"Gas Filter" = new /datum/pipe_info(13,1, PIPE_TRINARY),
"Gas Mixer" = new /datum/pipe_info(14,1, PIPE_TRINARY),
"Thermal Plate" = new /datum/pipe_info(PIPE_THERMAL_PLATE,1, PIPE_UNARY),
"Injector" = new /datum/pipe_info(PIPE_INJECTOR, 1, PIPE_UNARY),
),
"Heat Exchange" = list(
"Pipe" = new /datum/pipe_info(2,1, PIPE_BINARY),
@@ -95,8 +95,8 @@ var/global/list/RPD_recipes=list(
"Heat Exchanger" = new /datum/pipe_info(17,1, PIPE_UNARY),
),
"Insulated Pipes" = list(
"Pipe" = new /datum/pipe_info(11,1, PIPE_BINARY),
"Bent Pipe" = new /datum/pipe_info(12,5, PIPE_BENT),
"Pipe" = new /datum/pipe_info(11,1, PIPE_BINARY),
"Bent Pipe" = new /datum/pipe_info(12,5, PIPE_BENT),
),
"Disposal Pipes" = list(
"Pipe" = new /datum/pipe_info/disposal(0, PIPE_BINARY),
@@ -132,6 +132,16 @@ var/global/list/RPD_recipes=list(
var/p_dir = 1
var/p_class = 0
var/p_disposal = 0
var/list/paint_colors = list(
"grey" = "#cccccc",
"red" = "#800000",
"blue" = "#000080",
"cyan" = "#1C94C4",
"green" = "#00CC00",
"yellow" = "#FFCC00",
"purple" = "purple"
)
var/paint_color="grey"
/obj/item/weapon/pipe_dispenser/New()
src.spark_system = new /datum/effect/effect/system/spark_spread
@@ -153,7 +163,7 @@ var/global/list/RPD_recipes=list(
<b>Utilities:</b>
<ul>
<li><a href='?src=\ref[src];eatpipes=1;type=-1'>Eat Pipes</a></li>
<!--<li><a href='?src=\ref[src];paintpipes=1;type=-1'>Paint Pipes</a></li>-->
<li><a href='?src=\ref[src];paintpipes=1;type=-1'>Paint Pipes</a></li>
</ul>"}
var/icon/preview=null
for(var/category in RPD_recipes)
@@ -171,8 +181,33 @@ var/global/list/RPD_recipes=list(
preview=new /icon(I.icon,I.icon_state)
dat += I.Render(src,label)
dat += "</ul>"
var/color_css=""
var/color_picker=""
for(var/color_name in paint_colors)
var/color=paint_colors[color_name]
color_css += {"
a.color.[color_name] {
color: [color];
}
a.color.[color_name]:hover {
border:1px solid [color];
}
a.color.[color_name].selected {
background-color: [color];
}
"}
var/selected=""
if(color_name==paint_color)
selected = " selected"
color_picker += {"<a class="color [color_name][selected]" href="?src=\ref[src];set_color=[color_name]">&bull;</a>"}
var/dirsel="<h2>Direction</h2>"
switch(p_conntype)
if(-1)
if(p_class==-2)
dirsel = "<h2>Direction</h2>[color_picker]"
if(PIPE_BINARY) // Straight, N-S, W-E
if(preview)
user << browse_rsc(new /icon(preview, dir=NORTH), "vertical.png")
@@ -259,29 +294,38 @@ var/global/list/RPD_recipes=list(
<a href="?src=\ref[src];setdir=[WEST]" title="West">&larr;</a>
</p>
"}
dat = {"
<html>
<head>
<title>[name]</title>
<style type="text/css">
html {
font-family:sans-serif;
font-size:small;
}
a{
color:#0066cc;
text-decoration:none;
}
html {
font-family:sans-serif;
font-size:small;
}
a{
color:#0066cc;
text-decoration:none;
}
a img {
border:1px solid #0066cc;
}
a img {
border:1px solid #0066cc;
}
a.selected img,
a:hover {
background: #0066cc;
color: #ffffff;
}
a.color {
padding: 5px 10px;
font-size: large;
font-weight: bold;
border:1px solid white;
}
a.selected img,
a:hover {
background: #0066cc;
color: #ffffff;
}
[color_css]
</style>
</head>
<body>
@@ -311,6 +355,20 @@ a:hover {
playsound(src.loc, 'sound/effects/pop.ogg', 50, 0)
show_menu(usr)
if(href_list["paintpipes"])
p_class = -2
p_conntype=-1
p_dir=1
src.spark_system.start()
playsound(src.loc, 'sound/effects/pop.ogg', 50, 0)
show_menu(usr)
if(href_list["set_color"])
paint_color=href_list["set_color"]
src.spark_system.start()
playsound(src.loc, 'sound/effects/pop.ogg', 50, 0)
show_menu(usr)
if(href_list["makepipe"])
p_type = text2num(href_list["makepipe"])
p_dir = text2num(href_list["dir"])
@@ -345,6 +403,17 @@ a:hover {
return 0
switch(p_class)
if(-2) // Paint pipes
if(!istype(A,/obj/machinery/atmospherics/pipe) || istype(A,/obj/machinery/atmospherics/pipe/tank) || istype(A,/obj/machinery/atmospherics/pipe/vent) || istype(A,/obj/machinery/atmospherics/pipe/simple/heat_exchanging) || istype(A,/obj/machinery/atmospherics/pipe/simple/insulated))
// Avoid spewing errors about invalid mode -2 when clicking on stuff that aren't pipes.
user << "\The [src]'s error light flickers. Perhaps you need to only use it on pipes and pipe meters?"
return 0
playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
var/obj/machinery/atmospherics/pipe/P = A
P._color = paint_color
user.visible_message("<span class='notice'>[user] paints \the [P] [paint_color].</span>","<span class='notice'>You paint \the [P] [paint_color].</span>")
P.update_icon()
return 1
if(-1) // Eating pipes
// Must click on an actual pipe or meter.
if(istype(A,/obj/item/pipe) || istype(A,/obj/item/pipe_meter) || istype(A,/obj/structure/disposalconstruct))

View File

@@ -233,10 +233,6 @@ OSError: cannot identify image file
- suspenders2
- template2
- utility2
--- C:\Users\Rob\Documents\Projects\Baystation12\icons\mob\belt_mirror.dmi
+++ C:\Users\Rob\Documents\Projects\vgstation13\icons\mob\belt_mirror.dmi
+ fluff_rbelt
+ fluff_rbelt2
--- C:\Users\Rob\Documents\Projects\Baystation12\icons\mob\blob.dmi
+++ C:\Users\Rob\Documents\Projects\vgstation13\icons\mob\blob.dmi
- blob_resource
@@ -490,8 +486,7 @@ OSError: cannot identify image file
- culthood2
- deathsquad2
- dermal2
- detective2: detective2: 1 frames, 1 directions
+ detective2: detective2: 1 frames, 4 directions
- detective2
+ e_beret_badge
- edvin_telephosphor_12
- engspace_helmet2
@@ -585,10 +580,6 @@ OSError: cannot identify image file
- rig0-sec2old
- rig0-secold
- rig0-syndi2
+ rig0-syndie-human
+ rig0-syndie-skrell
+ rig0-syndie-taj
+ rig0-syndie-unathi
+ rig0-taj-helmet
- rig0-white2
- rig0-wiz2
@@ -605,10 +596,6 @@ OSError: cannot identify image file
- rig1-sec2old
- rig1-secold
- rig1-syndi2
+ rig1-syndie-human
+ rig1-syndie-skrell
+ rig1-syndie-taj
+ rig1-syndie-unathi
+ rig1-taj-helmet
- rig1-white2
- rig1-wiz2
@@ -683,8 +670,6 @@ OSError: cannot identify image file
- yuki_matsuda_1up2
--- C:\Users\Rob\Documents\Projects\Baystation12\icons\mob\hud.dmi
+++ C:\Users\Rob\Documents\Projects\vgstation13\icons\mob\hud.dmi
+ hudheadrevolutionary
+ hudsyndicate
- vampire
- vampthrall
--- C:\Users\Rob\Documents\Projects\Baystation12\icons\mob\human.dmi
@@ -772,7 +757,6 @@ OSError: cannot identify image file
- hair_afro2_l
- hair_afro_l
- hair_b_l
+ hair_bangs_s
- hair_bedhead_l
- hair_bedheadv2_l
- hair_bedheadv3_l
@@ -796,10 +780,8 @@ OSError: cannot identify image file
- hair_f_l
- hair_feather_l
- hair_gelled_l
+ hair_gentle_s
- hair_halfbang_alt_l
- hair_halfbang_l
+ hair_hbraid_s
- hair_himecut_l
- hair_hitop_l
- hair_jensen_l
@@ -824,10 +806,8 @@ OSError: cannot identify image file
- hair_shaggy_l
- hair_skinhead_l
- hair_spikey_l
+ hair_stail_s
- hair_straight_l
- hair_tajspiky_l
+ hair_tbraid_s
- hair_updo_l
- hair_vlong_l
- hair_vlongfringe_l
@@ -851,7 +831,6 @@ OSError: cannot identify image file
- hfrequency0
- hfrequency1
+ konaahirano
+ mai_yang
- prod
- telebaton0
- telebaton1
@@ -873,7 +852,6 @@ OSError: cannot identify image file
- hfrequency0
- hfrequency1
+ konaahirano
+ mai_yang
- prod
- telebaton0
- telebaton1
@@ -1017,111 +995,6 @@ OSError: cannot identify image file
+++ C:\Users\Rob\Documents\Projects\vgstation13\icons\mob\screen1_robot.dmi
- sight
- sight+a
--- C:\Users\Rob\Documents\Projects\Baystation12\icons\mob\screen1_White.dmi
+++ C:\Users\Rob\Documents\Projects\vgstation13\icons\mob\screen1_White.dmi
+
+ !reinforce
+ act_drop
+ act_equip
+ act_resist
+ act_throw_off
+ act_throw_on
+ arrow
+ back
+ belt
+ black
+ blackanimate
+ blank
+ blocked
+ blurry
+ center
+ dark128
+ dark32
+ dark64
+ disarm
+ disarm/kill
+ disarm/kill1
+ disarm/killf
+ dither50
+ druggy
+ e_flash
+ ears
+ equip
+ filler
+ fire0
+ fire1
+ fire2
+ flash
+ glasses
+ gloves
+ grab
+ grabbed
+ grabbed+1
+ grabbed1
+ hair
+ hand1
+ hand2
+ hand_active
+ hand_inactive
+ harm
+ health0
+ health1
+ health2
+ health3
+ health4
+ health5
+ health6
+ health7
+ health_numb
+ help
+ id
+ intent_all
+ intent_disarm
+ intent_grab
+ intent_help
+ intent_hurt
+ internal0
+ internal1
+ internal2
+ noise
+ nutrition0
+ nutrition1
+ nutrition2
+ nutrition3
+ nutrition4
+ other
+ otherB
+ oxy0
+ oxy1
+ pocket
+ pressure-1
+ pressure-2
+ pressure0
+ pressure1
+ pressure2
+ pull0
+ pull1
+ reinforce
+ running
+ selector
+ shoes
+ temp-1
+ temp-2
+ temp-3
+ temp-4
+ temp0
+ temp1
+ temp2
+ temp3
+ temp4
+ temp_numb
+ tox0
+ tox1
+ walking
+ x
+ x2
+ x3
+ zone_sel
--- C:\Users\Rob\Documents\Projects\Baystation12\icons\mob\slimes.dmi
+++ C:\Users\Rob\Documents\Projects\vgstation13\icons\mob\slimes.dmi
- bluespace adult slime
@@ -1191,8 +1064,7 @@ OSError: cannot identify image file
- cultrobesalt2
- deathsquad2
- detective-armor2
- detective2: detective2: 1 frames, 1 directions
+ detective2: detective2: 1 frames, 4 directions
- detective2
- deus_blueshield2
- engspace_suit2
- ert_commander2
@@ -1274,11 +1146,8 @@ OSError: cannot identify image file
- rig-sec2TG
- rig-soghun2
- rig-syndi2
+ rig-syndie-human
+ rig-syndie-skrell
+ rig-syndie-taj
+ rig-syndie-unathi
+ rig-taj
+ rig-taj2
- rig-unathi-cheap2
- rig-white2
- rig-wiz2
@@ -1294,7 +1163,9 @@ OSError: cannot identify image file
- s-ninjasf2
- santa2
+ skrell_suit_black
+ skrell_suit_black2
+ skrell_suit_white
+ skrell_suit_white2
- space2
- straight_jacket2
- stripper_g_over2
@@ -1321,6 +1192,7 @@ OSError: cannot identify image file
- tdred2
- thermal2
+ unathi_breacher
+ unathi_breacher2
- vest2
- violetwizard2
- void2
@@ -1339,7 +1211,6 @@ OSError: cannot identify image file
- vox-pressure-specops
- vox-pressure2
+ vox-stealth
- warden_jacket2
- wardenbluejacket2
- wardendnavyjacket2
- wardentanjacket2
@@ -1412,7 +1283,6 @@ OSError: cannot identify image file
- cmo_l
- darkblue_l
- darkred_l
+ detective2_s
- detective_l
- director_l
- dispatch_l
@@ -1511,7 +1381,6 @@ OSError: cannot identify image file
- retpoluniform_l
- robotics2_l
- robotics_l
+ sakura_hokkaido_kimono_s
- schoolgirl_l
- scientist_new_l
- scratch_l
@@ -1575,7 +1444,6 @@ OSError: cannot identify image file
+ torso_m
--- C:\Users\Rob\Documents\Projects\Baystation12\icons\obj\ammo.dmi
+++ C:\Users\Rob\Documents\Projects\vgstation13\icons\obj\ammo.dmi
+ 45-7
+ dart
--- C:\Users\Rob\Documents\Projects\Baystation12\icons\obj\atmos.dmi
+++ C:\Users\Rob\Documents\Projects\vgstation13\icons\obj\atmos.dmi
@@ -1605,12 +1473,6 @@ OSError: cannot identify image file
--- C:\Users\Rob\Documents\Projects\Baystation12\icons\obj\computer.dmi
+++ C:\Users\Rob\Documents\Projects\vgstation13\icons\obj\computer.dmi
+ syndicam
--- C:\Users\Rob\Documents\Projects\Baystation12\icons\obj\Cryogenic2.dmi
+++ C:\Users\Rob\Documents\Projects\vgstation13\icons\obj\Cryogenic2.dmi
+ body_scanner_0-r
+ body_scanner_1-r
+ cryo_rear
+ cryo_rear-r
--- C:\Users\Rob\Documents\Projects\Baystation12\icons\obj\custom_items.dmi
+++ C:\Users\Rob\Documents\Projects\vgstation13\icons\obj\custom_items.dmi
+ aeneasrinil
@@ -1628,16 +1490,12 @@ OSError: cannot identify image file
+ leamas-reload
+ lid_eleanorstone
+ lilith_uniform
+ mai_yang
+ matthewriebhardt
+ milohachert
+ nashi_belt
+ reesemackenzie
+ sakura_hokkaido_kimono
+ siraj_tongueleaf
+ solara_dress
+ williamhackett
+ yuri_kornienkovich_flask
--- C:\Users\Rob\Documents\Projects\Baystation12\icons\obj\device.dmi
+++ C:\Users\Rob\Documents\Projects\vgstation13\icons\obj\device.dmi
- handtv
@@ -1662,10 +1520,6 @@ OSError: cannot identify image file
- tea
+ vacuumflask
+ waterbottle
--- C:\Users\Rob\Documents\Projects\Baystation12\icons\obj\food.dmi
+++ C:\Users\Rob\Documents\Projects\vgstation13\icons\obj\food.dmi
+ stuffing
+ tofurkey
--- C:\Users\Rob\Documents\Projects\Baystation12\icons\obj\gate.dmi
+++ C:\Users\Rob\Documents\Projects\vgstation13\icons\obj\gate.dmi
C:\Users\Rob\Documents\Projects\Baystation12\icons\obj\gate.dmi: Received error, continuing: Traceback (most recent call last):
@@ -1698,19 +1552,12 @@ OSError: cannot identify image file
- improvised_grenade_wired
- syndicate
- syndicate_active
--- C:\Users\Rob\Documents\Projects\Baystation12\icons\obj\gun.dmi
+++ C:\Users\Rob\Documents\Projects\vgstation13\icons\obj\gun.dmi
+ colt
--- C:\Users\Rob\Documents\Projects\Baystation12\icons\obj\harvest.dmi
+++ C:\Users\Rob\Documents\Projects\vgstation13\icons\obj\harvest.dmi
- ghostchilipepper
- koibeans
- moonflower
+ mtear
+ mtearp
- novaflower
+ shand
+ shandp
--- C:\Users\Rob\Documents\Projects\Baystation12\icons\obj\hydroponics.dmi
+++ C:\Users\Rob\Documents\Projects\vgstation13\icons\obj\hydroponics.dmi
- chilighost-dead
@@ -1734,20 +1581,11 @@ OSError: cannot identify image file
- moonflower-grow2
- moonflower-grow3
- moonflower-harvest
+ mtear-grow1
+ mtear-grow2
+ mtear-grow3
+ mtear-grow4
+ mtear-harvest
- novaflower-grow1
- novaflower-grow2
- novaflower-grow3
- novaflower-harvest
- portaseeder
+ shand-grow1
+ shand-grow2
+ shand-grow3
+ shand-harvest
--- C:\Users\Rob\Documents\Projects\Baystation12\icons\obj\items.dmi
+++ C:\Users\Rob\Documents\Projects\vgstation13\icons\obj\items.dmi
- coin_phazon
@@ -1829,9 +1667,7 @@ OSError: cannot identify image file
- seed-chilighost
- seed-koibean
- seed-moonflower
+ seed-mtear
- seed-novaflower
+ seed-shand
--- C:\Users\Rob\Documents\Projects\Baystation12\icons\obj\shards.dmi
+++ C:\Users\Rob\Documents\Projects\vgstation13\icons\obj\shards.dmi
+ shrapnellarge
@@ -1839,14 +1675,13 @@ OSError: cannot identify image file
+ shrapnelsmall
--- C:\Users\Rob\Documents\Projects\Baystation12\icons\obj\stationobjs.dmi
+++ C:\Users\Rob\Documents\Projects\vgstation13\icons\obj\stationobjs.dmi
+ npanel_open
- recharger3
- wooden_tv_broken: wooden_tv_broken: 1 frames, 1 directions
+ wooden_tv_broken: wooden_tv_broken: 3 frames, 1 directions
- wrecharger3
--- C:\Users\Rob\Documents\Projects\Baystation12\icons\obj\stock_parts.dmi
+++ C:\Users\Rob\Documents\Projects\vgstation13\icons\obj\stock_parts.dmi
- xenoarch_matter_bin
--- C:\Users\Rob\Documents\Projects\Baystation12\icons\obj\storage.dmi
+++ C:\Users\Rob\Documents\Projects\vgstation13\icons\obj\storage.dmi
+ cashbag
- largebox
- largebox-deployed
--- C:\Users\Rob\Documents\Projects\Baystation12\icons\obj\structures.dmi
@@ -1975,7 +1810,6 @@ OSError: cannot identify image file
+++ C:\Users\Rob\Documents\Projects\vgstation13\icons\obj\clothing\hats.dmi
+ corpsoft
+ corpsoft_flipped
+ detective2
+ e_beret_badge
- ert_commander
- ert_engineer
@@ -1988,19 +1822,11 @@ OSError: cannot identify image file
+ rig0-ert_engineer
+ rig0-ert_medical
+ rig0-ert_security
+ rig0-syndie-human
+ rig0-syndie-skrell
+ rig0-syndie-taj
+ rig0-syndie-unathi
+ rig0-taj-helmet
+ rig1-ert_commander
+ rig1-ert_engineer
+ rig1-ert_medical
+ rig1-ert_security
+ rig1-syndie-human
+ rig1-syndie-skrell
+ rig1-syndie-taj
+ rig1-syndie-unathi
+ rig1-taj-helmet
+ skrell_helmet_black
+ skrell_helmet_white
@@ -2021,14 +1847,9 @@ OSError: cannot identify image file
+ flipperfeet
--- C:\Users\Rob\Documents\Projects\Baystation12\icons\obj\clothing\suits.dmi
+++ C:\Users\Rob\Documents\Projects\vgstation13\icons\obj\clothing\suits.dmi
+ detective2
- paramedic-eva
- paramedic-vest
- paramedic-vest-old
+ rig-syndie-human
+ rig-syndie-skrell
+ rig-syndie-taj
+ rig-syndie-unathi
+ rig-taj
+ skrell_suit_black
+ skrell_suit_white
@@ -2043,7 +1864,6 @@ OSError: cannot identify image file
+ vox-stealth
--- C:\Users\Rob\Documents\Projects\Baystation12\icons\obj\clothing\uniforms.dmi
+++ C:\Users\Rob\Documents\Projects\vgstation13\icons\obj\clothing\uniforms.dmi
+ detective2
+ hopwhimsy
+ hos_corporate
- paramedic