From bac5ffa8293f4f62307ef52c90a57ee745b4e5b2 Mon Sep 17 00:00:00 2001 From: monster860 Date: Wed, 30 Mar 2016 13:52:11 -0400 Subject: [PATCH] Fill mode --- code/modules/admin/buildmode.dm | 43 +++++++++++++++++++++++++++++++- icons/misc/buildmode.dmi | Bin 1449 -> 1481 bytes 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/code/modules/admin/buildmode.dm b/code/modules/admin/buildmode.dm index 0dbd63f7e86..de4f374e836 100644 --- a/code/modules/admin/buildmode.dm +++ b/code/modules/admin/buildmode.dm @@ -5,7 +5,8 @@ #define AREA_BUILDMODE 5 #define COPY_BUILDMODE 6 #define AREAEDIT_BUILDMODE 7 -#define NUM_BUILDMODES 7 +#define FILL_BUILDMODE 8 +#define NUM_BUILDMODES 8 /obj/screen/buildmode icon = 'icons/misc/buildmode.dmi' @@ -204,6 +205,11 @@ user << "Right Mouse Button on obj/turf/mob = Select area to paint" user << "Right Mouse Button on buildmode button = Create new area" user << "***********************************************************" + if(FILL_BUILDMODE) + user << "***********************************************************" + user << "Left Mouse Button on turf/obj/mob = Select corner" + user << "Right Mouse Button on buildmode button = Select object type" + user << "***********************************************************" /datum/click_intercept/buildmode/proc/change_settings(mob/user) switch(mode) @@ -264,6 +270,19 @@ storedarea.always_unpowered = 0 storedarea.name = areaname areaimage.loc = storedarea + if(FILL_BUILDMODE) + var/target_path = input(user,"Enter typepath:" ,"Typepath","/obj/structure/closet") + objholder = text2path(target_path) + if(!ispath(objholder)) + objholder = pick_closest_path(target_path) + if(!objholder || ispath(objholder, /area)) + objholder = /obj/structure/closet + return + else + if(ispath(objholder,/mob) && !check_rights(R_DEBUG,0)) + objholder = /obj/structure/closet + cornerA = null + cornerB = null /datum/click_intercept/buildmode/proc/change_dir() switch(build_dir) @@ -441,3 +460,25 @@ var/turf/T = get_turf(object) storedarea = get_area(T) areaimage.loc = storedarea + if(FILL_BUILDMODE) + if(!cornerA) + cornerA = select_tile(get_turf(object)) + return + if(cornerA && !cornerB) + cornerB = select_tile(get_turf(object)) + if(left_click) //rectangular + if(cornerA && cornerB) + if(!objholder) + user << "Select object type first." + else + for(var/turf/T in block(get_turf(cornerA),get_turf(cornerB))) + if(ispath(objholder,/turf)) + T.ChangeTurf(objholder) + else + var/obj/A = new objholder(T) + A.dir = build_dir + deselect_region() + return + + //Something wrong - Reset + deselect_region() diff --git a/icons/misc/buildmode.dmi b/icons/misc/buildmode.dmi index 3ac5c80d1a51eea335ba4ca99ff40fa4f7bc0dc0..92519833fde3da360f6d44d9e2ebd4a8c4d6a1e0 100644 GIT binary patch delta 1227 zcmV;+1T_1p3&{(RUIC_&UzdMQyiyBXN|hB{{anDw2LOCCrU)y98EOCk1f)qsK~!jg z?U~E6)F2Rs;~VJcsd76m-T4ToiYnG;b9@5B3n0Dr&86w)(o7N{L06L*b$)aE(lqoB zSw4Ic+sCVVxqTDc{iW&h~prgZ`B;ah-iutTXSNaB2+xySRS!M6{FFjyUJA>`;7rn^{&KFJfSc2 zWlXSeU(^4jH423NE$3 zYwH4Vhfw&twk|dRV^0aGiJwfUlq5RPl#;nG<6h5?X_#VI_`9}Vb6&7Gu^mm?y? znj-w&nV1qHy2g`)-e&;>L&km)7%)~nI~YT2`HbyVV(ITfO#Clj!+*eWD|&u^jQ2MD z1pbF042WSOvz>>5Rp%OlG`z)GK_D!i!21SJDpkF@)i9bS&r6)~xQLYqDe6Ux^SU=x zJ*yBY#zX@JXqRv!#%X1q>ay_>Fsbf75{9UugNdz*Ho=rxkY-jilR|r$MC<$rQ+C-cys0C+|*_jA#6v$wI9W^cVKNjA8xa_$#r1w7YtID7LZ zwXdgy7?y<5SrmkT_dPktx0TJRTHEj=H81#mFzC$-j{3jm1xNi~^M8Ug;J?jYoeTV97j zAK}7ZTeHm`Lh^UX30NJ9hTfbX_Ym@;LaGs1fL&bWI71jca;$m)8Z5e%vxKxV1dyEq zBAzGYb(zr6IfekIV;GiL`F&@{nnE8Ty+G}$%YB6WZWdh1!}UTQ>iBM!-_FuP+n)RC zBZRo|N>Z2)aa2caiP7mRr*9c)}5?9anvLbvkzU@xJ5Bm^|gx#tWLdUq%Y z>pUDLOpVNhbsk!LeG)o&FJYC3S9^-8^YHqJof2_QUsegRYX!4S_?{5wRXrMSHi^aw pNBv*(f}{SgdBNFcX||pF3sfLh;`gS);{X5v07*qoLs_g0K~{79lqAQ^LbmJ&oZG;k^$Kw(^ihCp$>^BoAqG>j>%m zHH0~)W?w>x;~<@H)f&QxXo?YAb7D;qDjshvkJzD#(P+_KkL zCRn(y>3?8FR-2{ecJ9p|uJVW3-}UJ*J|Fg+t@d|a+KaQEwbg(Au190nhcwz?!7~Oz z5ybq^+EDE(bqbIxT#@OuruxRs^9YwHLYWB8DV(%-dp0eDaax7y#e zbpd!nDEwVp7l1Xfr-anRS0+?S5G^mjeF>=_3=Mf$rQt)95Gt@d|a`pK%viGywFXEA*9 zhyUFl{*n6gn?F2VKb+QQt0DthXYa$_M)u04dFW37JfoQVx#+ps+gMApx89W`8{Aeo_lvUvp6fZBy?K+` z*Hc0aOTy?Z3PQl|og8hblkgp$tz!>q%0UCqo~Mjx0t|?22qF4MSVI^A5%K$qs`oQ{ z@ZW1`TEIaWOY4Hn(XEFrB70c59ui1UQJ zE)yC$#}HsThGB`7pLZUtA