diff --git a/code/modules/admin/buildmode.dm b/code/modules/admin/buildmode.dm index a5b6b930672..1c980e5272d 100644 --- a/code/modules/admin/buildmode.dm +++ b/code/modules/admin/buildmode.dm @@ -1,10 +1,3 @@ -#define BASIC_BUILDMODE 1 -#define ADV_BUILDMODE 2 -#define VAR_BUILDMODE 3 -#define THROW_BUILDMODE 4 -#define AREA_BUILDMODE 5 -#define NUM_BUILDMODES 5 - /proc/togglebuildmode(mob/M as mob in player_list) set name = "Toggle Build Mode" set category = "Special Verbs" @@ -17,7 +10,6 @@ if(H.cl == M.client) del(H) else - message_admins("[key_name(usr)] has entered build mode.") log_admin("[key_name(usr)] has entered build mode.") M.client.buildmode = 1 M.client.show_popup_menus = 0 @@ -42,7 +34,7 @@ M.client.screen += D H.cl = M.client -/obj/effect/bmode //Cleaning up the tree a bit +/obj/effect/bmode//Cleaning up the tree a bit density = 1 anchored = 1 layer = 20 @@ -53,72 +45,65 @@ /obj/effect/bmode/builddir icon_state = "build" screen_loc = "NORTH,WEST" - -/obj/effect/bmode/Click() - switch(dir) - if(NORTH) - dir = EAST - if(EAST) - dir = SOUTH - if(SOUTH) - dir = WEST - if(WEST) - dir = SOUTHWEST - if(SOUTHWEST) - dir = NORTH - return 1 + Click() + switch(dir) + if(NORTH) + dir = EAST + if(EAST) + dir = SOUTH + if(SOUTH) + dir = WEST + if(WEST) + dir = SOUTHWEST + if(SOUTHWEST) + dir = NORTH + return 1 /obj/effect/bmode/buildhelp icon = 'icons/misc/buildmode.dmi' icon_state = "buildhelp" screen_loc = "NORTH,WEST+1" - -/obj/effect/bmode/buildhelp/Click() - switch(master.cl.buildmode) - if(BASIC_BUILDMODE) - usr << "\blue ***********************************************************" - usr << "\blue Left Mouse Button = Construct / Upgrade" - usr << "\blue Right Mouse Button = Deconstruct / Delete / Downgrade" - usr << "\blue Left Mouse Button + ctrl = R-Window" - usr << "\blue Left Mouse Button + alt = Airlock" - usr << "" - usr << "\blue Use the button in the upper left corner to" - usr << "\blue change the direction of built objects." - usr << "\blue ***********************************************************" - if(ADV_BUILDMODE) - usr << "\blue ***********************************************************" - usr << "\blue Right Mouse Button on buildmode button = Set object type" - usr << "\blue Left Mouse Button on turf/obj = Place objects" - usr << "\blue Right Mouse Button = Delete objects" - usr << "" - usr << "\blue Use the button in the upper left corner to" - usr << "\blue change the direction of built objects." - usr << "\blue ***********************************************************" - if(VAR_BUILDMODE) - usr << "\blue ***********************************************************" - usr << "\blue Right Mouse Button on buildmode button = Select var(type) & value" - usr << "\blue Left Mouse Button on turf/obj/mob = Set var(type) & value" - usr << "\blue Right Mouse Button on turf/obj/mob = Reset var's value" - usr << "\blue ***********************************************************" - if(THROW_BUILDMODE) - usr << "\blue ***********************************************************" - usr << "\blue Left Mouse Button on turf/obj/mob = Select" - usr << "\blue Right Mouse Button on turf/obj/mob = Throw" - usr << "\blue ***********************************************************" - if(AREA_BUILDMODE) - usr << "\blue ***********************************************************" - usr << "\blue Left Mouse Button on turf/obj/mob = Select corner" - usr << "\blue Right Mouse Button on buildmode button = Select generator" - usr << "\blue ***********************************************************" - return 1 + Click() + switch(master.cl.buildmode) + if(1) + usr << "\blue ***********************************************************" + usr << "\blue Left Mouse Button = Construct / Upgrade" + usr << "\blue Right Mouse Button = Deconstruct / Delete / Downgrade" + usr << "\blue Left Mouse Button + ctrl = R-Window" + usr << "\blue Left Mouse Button + alt = Airlock" + usr << "" + usr << "\blue Use the button in the upper left corner to" + usr << "\blue change the direction of built objects." + usr << "\blue ***********************************************************" + if(2) + usr << "\blue ***********************************************************" + usr << "\blue Right Mouse Button on buildmode button = Set object type" + usr << "\blue Left Mouse Button on turf/obj = Place objects" + usr << "\blue Right Mouse Button = Delete objects" + usr << "" + usr << "\blue Use the button in the upper left corner to" + usr << "\blue change the direction of built objects." + usr << "\blue ***********************************************************" + if(3) + usr << "\blue ***********************************************************" + usr << "\blue Right Mouse Button on buildmode button = Select var(type) & value" + usr << "\blue Left Mouse Button on turf/obj/mob = Set var(type) & value" + usr << "\blue Right Mouse Button on turf/obj/mob = Reset var's value" + usr << "\blue ***********************************************************" + if(4) + usr << "\blue ***********************************************************" + usr << "\blue Left Mouse Button on turf/obj/mob = Select" + usr << "\blue Right Mouse Button on turf/obj/mob = Throw" + usr << "\blue ***********************************************************" + return 1 /obj/effect/bmode/buildquit icon_state = "buildquit" screen_loc = "NORTH,WEST+3" -/obj/effect/bmode/buildquit/Click() - togglebuildmode(master.cl.mob) - return 1 + Click() + togglebuildmode(master.cl.mob) + return 1 /obj/effect/bmode/buildholder density = 0 @@ -129,9 +114,6 @@ var/obj/effect/bmode/buildmode/buildmode = null var/obj/effect/bmode/buildquit/buildquit = null var/atom/movable/throw_atom = null - var/turf/cornerA = null - var/turf/cornerB = null - var/generator_path = null /obj/effect/bmode/buildmode icon_state = "buildmode1" @@ -140,50 +122,56 @@ var/valueholder = "derp" var/objholder = /obj/structure/closet -/obj/effect/bmode/buildmode/Click(location, control, params) - var/list/pa = params2list(params) + Click(location, control, params) + var/list/pa = params2list(params) - if(pa.Find("left")) - master.cl.buildmode = (master.cl.buildmode % NUM_BUILDMODES) +1 - src.icon_state = "buildmode[master.cl.buildmode]" + if(pa.Find("left")) + switch(master.cl.buildmode) + if(1) + master.cl.buildmode = 2 + src.icon_state = "buildmode2" + if(2) + master.cl.buildmode = 3 + src.icon_state = "buildmode3" + if(3) + master.cl.buildmode = 4 + src.icon_state = "buildmode4" + if(4) + master.cl.buildmode = 1 + src.icon_state = "buildmode1" - else if(pa.Find("right")) - switch(master.cl.buildmode) - if(BASIC_BUILDMODE) - return 1 - if(ADV_BUILDMODE) - objholder = text2path(input(usr,"Enter typepath:" ,"Typepath","/obj/structure/closet")) - if(!ispath(objholder)) - objholder = /obj/structure/closet - alert("That path is not allowed.") - else - if(ispath(objholder,/mob) && !check_rights(R_DEBUG,0)) - objholder = /obj/structure/closet - if(VAR_BUILDMODE) - var/list/locked = list("vars", "key", "ckey", "client", "firemut", "ishulk", "telekinesis", "xray", "virus", "viruses", "cuffed", "ka", "last_eaten", "urine") - - master.buildmode.varholder = input(usr,"Enter variable name:" ,"Name", "name") - if(master.buildmode.varholder in locked && !check_rights(R_DEBUG,0)) + else if(pa.Find("right")) + switch(master.cl.buildmode) + if(1) return 1 - var/thetype = input(usr,"Select variable type:" ,"Type") in list("text","number","mob-reference","obj-reference","turf-reference") - if(!thetype) return 1 - switch(thetype) - if("text") - master.buildmode.valueholder = input(usr,"Enter variable value:" ,"Value", "value") as text - if("number") - master.buildmode.valueholder = input(usr,"Enter variable value:" ,"Value", 123) as num - if("mob-reference") - master.buildmode.valueholder = input(usr,"Enter variable value:" ,"Value") as mob in mob_list - if("obj-reference") - master.buildmode.valueholder = input(usr,"Enter variable value:" ,"Value") as obj in world - if("turf-reference") - master.buildmode.valueholder = input(usr,"Enter variable value:" ,"Value") as turf in world - if(AREA_BUILDMODE) - var/list/gen_paths = typesof(/datum/mapGenerator) - /datum/mapGenerator + if(2) + objholder = text2path(input(usr,"Enter typepath:" ,"Typepath","/obj/structure/closet")) + if(!ispath(objholder)) + objholder = /obj/structure/closet + alert("That path is not allowed.") + else + if(ispath(objholder,/mob) && !check_rights(R_DEBUG,0)) + objholder = /obj/structure/closet + if(3) + var/list/locked = list("vars", "key", "ckey", "client", "firemut", "ishulk", "telekinesis", "xray", "virus", "viruses", "cuffed", "ka", "last_eaten", "urine") - var/type = input(usr,"Select Generator Type","Type") in gen_paths - master.generator_path = type - return 1 + master.buildmode.varholder = input(usr,"Enter variable name:" ,"Name", "name") + if(master.buildmode.varholder in locked && !check_rights(R_DEBUG,0)) + return 1 + var/thetype = input(usr,"Select variable type:" ,"Type") in list("text","number","mob-reference","obj-reference","turf-reference") + if(!thetype) return 1 + switch(thetype) + if("text") + master.buildmode.valueholder = input(usr,"Enter variable value:" ,"Value", "value") as text + if("number") + master.buildmode.valueholder = input(usr,"Enter variable value:" ,"Value", 123) as num + if("mob-reference") + master.buildmode.valueholder = input(usr,"Enter variable value:" ,"Value") as mob in mob_list + if("obj-reference") + master.buildmode.valueholder = input(usr,"Enter variable value:" ,"Value") as obj in world + if("turf-reference") + master.buildmode.valueholder = input(usr,"Enter variable value:" ,"Value") as turf in world + return 1 /proc/build_click(var/mob/user, buildmode, params, var/obj/object) @@ -195,37 +183,38 @@ if(!holder) return var/list/pa = params2list(params) - if(istype(object,/obj/effect/bmode)) - return - switch(buildmode) - if(BASIC_BUILDMODE) + if(1) if(istype(object,/turf) && pa.Find("left") && !pa.Find("alt") && !pa.Find("ctrl") ) - var/turf/T = object if(istype(object,/turf/space)) + var/turf/T = object T.ChangeTurf(/turf/simulated/floor) + return else if(istype(object,/turf/simulated/floor)) + var/turf/T = object T.ChangeTurf(/turf/simulated/wall) + return else if(istype(object,/turf/simulated/wall)) + var/turf/T = object T.ChangeTurf(/turf/simulated/wall/r_wall) - log_admin("Build Mode: [key_name(usr)] built [T] at ([T.x],[T.y],[T.z])") - return + return else if(pa.Find("right")) - log_admin("Build Mode: [key_name(usr)] deleted [object] at ([object.x],[object.y],[object.z])") if(istype(object,/turf/simulated/wall)) var/turf/T = object T.ChangeTurf(/turf/simulated/floor) + return else if(istype(object,/turf/simulated/floor)) var/turf/T = object T.ChangeTurf(/turf/space) + return else if(istype(object,/turf/simulated/wall/r_wall)) var/turf/T = object T.ChangeTurf(/turf/simulated/wall) + return else if(istype(object,/obj)) - qdel(object) - return + del(object) + return else if(istype(object,/turf) && pa.Find("alt") && pa.Find("left")) - log_admin("Build Mode: [key_name(usr)] built an airlock at ([object.x],[object.y],[object.z])") new/obj/machinery/door/airlock(get_turf(object)) else if(istype(object,/turf) && pa.Find("ctrl") && pa.Find("left")) switch(holder.builddir.dir) @@ -243,74 +232,35 @@ WIN.dir = WEST if(SOUTHWEST) new/obj/structure/window/full/reinforced(get_turf(object)) - log_admin("Build Mode: [key_name(usr)] built a window at ([object.x],[object.y],[object.z])") - if(ADV_BUILDMODE) + if(2) if(pa.Find("left")) if(ispath(holder.buildmode.objholder,/turf)) var/turf/T = get_turf(object) - log_admin("Build Mode: [key_name(usr)] modified [T] ([T.x],[T.y],[T.z]) to [holder.buildmode.objholder]") T.ChangeTurf(holder.buildmode.objholder) else var/obj/A = new holder.buildmode.objholder (get_turf(object)) A.dir = holder.builddir.dir - log_admin("Build Mode: [key_name(usr)] modified [A]'s ([A.x],[A.y],[A.z]) dir to [holder.builddir.dir]") else if(pa.Find("right")) - if(isobj(object)) - log_admin("Build Mode: [key_name(usr)] deleted [object] at ([object.x],[object.y],[object.z])") - qdel(object) + if(isobj(object)) del(object) - if(VAR_BUILDMODE) + if(3) if(pa.Find("left")) //I cant believe this shit actually compiles. if(object.vars.Find(holder.buildmode.varholder)) log_admin("[key_name(usr)] modified [object.name]'s [holder.buildmode.varholder] to [holder.buildmode.valueholder]") object.vars[holder.buildmode.varholder] = holder.buildmode.valueholder else - usr << "[initial(object.name)] does not have a var called '[holder.buildmode.varholder]'" + usr << "\red [initial(object.name)] does not have a var called '[holder.buildmode.varholder]'" if(pa.Find("right")) if(object.vars.Find(holder.buildmode.varholder)) log_admin("[key_name(usr)] modified [object.name]'s [holder.buildmode.varholder] to [holder.buildmode.valueholder]") object.vars[holder.buildmode.varholder] = initial(object.vars[holder.buildmode.varholder]) else - usr << "[initial(object.name)] does not have a var called '[holder.buildmode.varholder]'" + usr << "\red [initial(object.name)] does not have a var called '[holder.buildmode.varholder]'" - if(THROW_BUILDMODE) + if(4) if(pa.Find("left")) - if(isturf(object)) - return holder.throw_atom = object if(pa.Find("right")) if(holder.throw_atom) holder.throw_atom.throw_at(object, 10, 1) - log_admin("Build Mode: [key_name(usr)] threw [holder.throw_atom] at [object] ([object.x],[object.y],[object.z])") - if(AREA_BUILDMODE) - if(!holder.cornerA) - holder.cornerA = get_turf(object) - return - if(holder.cornerA && !holder.cornerB) - holder.cornerB = get_turf(object) - if(pa.Find("left")) //rectangular - if(holder.cornerA && holder.cornerB) - if(!holder.generator_path) - usr << "Select generator type first." - var/datum/mapGenerator/G = new holder.generator_path - G.defineRegion(holder.cornerA,holder.cornerB,1) - G.generate() - holder.cornerA = null - holder.cornerB = null - return - /* Something wrong with this, will check later - if(pa.Find("right")) // circular - if(holder.cornerA && holder.cornerB) - if(!holder.generator_path) - usr << "Select generator type first." - var/datum/mapGenerator/G = new holder.generator_path - G.defineCircularRegion(holder.cornerA,holder.cornerB,1) - G.generate() - holder.cornerA = null - holder.cornerB = null - return - */ - //Something wrong - Reset - holder.cornerA = null - holder.cornerB = null \ No newline at end of file diff --git a/code/modules/procedural mapping/mapGenerators/asteroid.dm b/code/modules/procedural mapping/mapGenerators/asteroid.dm deleted file mode 100644 index a80bd791998..00000000000 --- a/code/modules/procedural mapping/mapGenerators/asteroid.dm +++ /dev/null @@ -1,64 +0,0 @@ -//Border walls -/datum/mapGeneratorModule/border - clusterCheckFlags = CLUSTER_CHECK_NONE - -/datum/mapGeneratorModule/border/generate() - if(!mother) - return - var/list/map = mother.map - for(var/turf/T in map) - if(is_border(T)) - place(T) - -/datum/mapGeneratorModule/border/proc/is_border(var/turf/T) - for(var/direction in list(SOUTH,EAST,WEST,NORTH)) - if (get_step(T,direction) in mother.map) - continue - return 1 - return 0 - -//Asteroid turfs -/datum/mapGeneratorModule/bottomLayer/asteroidTurfs - spawnableTurfs = list(/turf/simulated/floor/plating/airless/asteroid = 100) - -/datum/mapGeneratorModule/bottomLayer/asteroidWalls - spawnableTurfs = list(/turf/simulated/mineral = 100) - -//Border walls -/datum/mapGeneratorModule/border/asteroidWalls - spawnableAtoms = list() - spawnableTurfs = list(/turf/simulated/mineral = 100) - -//Random walls -/datum/mapGeneratorModule/splatterLayer/asteroidWalls - clusterCheckFlags = CLUSTER_CHECK_NONE - spawnableAtoms = list() - spawnableTurfs = list(/turf/simulated/mineral = 30) - -//Monsters -/datum/mapGeneratorModule/splatterLayer/asteroidMonsters - spawnableTurfs = list() - spawnableAtoms = list(/mob/living/simple_animal/hostile/asteroid/basilisk = 10, \ - /mob/living/simple_animal/hostile/asteroid/hivelord = 10, \ - /mob/living/simple_animal/hostile/asteroid/goliath = 10) - - -// GENERATORS - -/datum/mapGenerator/asteroid/hollow - modules = list(/datum/mapGeneratorModule/bottomLayer/asteroidTurfs, \ - /datum/mapGeneratorModule/border/asteroidWalls) - -/datum/mapGenerator/asteroid/hollow/random - modules = list(/datum/mapGeneratorModule/bottomLayer/asteroidTurfs, \ - /datum/mapGeneratorModule/border/asteroidWalls, \ - /datum/mapGeneratorModule/splatterLayer/asteroidWalls) - -/datum/mapGenerator/asteroid/hollow/random/monsters - modules = list(/datum/mapGeneratorModule/bottomLayer/asteroidTurfs, \ - /datum/mapGeneratorModule/border/asteroidWalls, \ - /datum/mapGeneratorModule/splatterLayer/asteroidWalls, \ - /datum/mapGeneratorModule/splatterLayer/asteroidMonsters) - -/datum/mapGenerator/asteroid/filled - modules = list(/datum/mapGeneratorModule/bottomLayer/asteroidWalls) \ No newline at end of file diff --git a/code/modules/procedural mapping/mapGenerators/syndicate.dm b/code/modules/procedural mapping/mapGenerators/syndicate.dm deleted file mode 100644 index 2873ba0e1e6..00000000000 --- a/code/modules/procedural mapping/mapGenerators/syndicate.dm +++ /dev/null @@ -1,44 +0,0 @@ -// Modules - -/turf/simulated/shuttle/floor/syndicate //TODO: move to proper file/replace syndie shuttle turfs - icon_state = "floor4" - -/datum/mapGeneratorModule/bottomLayer/syndieFloor - spawnableTurfs = list(/turf/simulated/shuttle/floor/syndicate = 100) - -/datum/mapGeneratorModule/border/syndieWalls - spawnableAtoms = list() - spawnableTurfs = list(/turf/simulated/wall/r_wall = 100) - - -/datum/mapGeneratorModule/bottomLayer/repressurize - // Helper to repressurize the area in case it was run in space - spawnableAtoms = list() - spawnableTurfs = list() - -/datum/mapGeneratorModule/bottomLayer/repressurize/generate() - if(!mother) - return - var/list/map = mother.map - for(var/turf/simulated/T in map) - air_master.remove_from_active(T) - for(var/turf/simulated/T in map) - if(T.air) - T.air.oxygen = T.oxygen - T.air.nitrogen = T.nitrogen - T.air.carbon_dioxide = T.carbon_dioxide - T.air.toxins = T.toxins - T.air.temperature = T.temperature - air_master.add_to_active(T) - -// Generators - -/datum/mapGenerator/syndicate/empty //walls and floor only - modules = list(/datum/mapGeneratorModule/bottomLayer/syndieFloor, \ - /datum/mapGeneratorModule/border/syndieWalls,\ - /datum/mapGeneratorModule/bottomLayer/repressurize) - -/* -/datum/mapGenerator/syndicate/syndiesonly //walls/floors + mobs -/datum/mapGenerator/syndicate/full //doors + random equipment -*/ \ No newline at end of file diff --git a/icons/misc/buildmode.dmi b/icons/misc/buildmode.dmi index 9c6eb1be59f..1b7635129d3 100644 Binary files a/icons/misc/buildmode.dmi and b/icons/misc/buildmode.dmi differ diff --git a/paradise.dme b/paradise.dme index 181d3b2ae6b..95230e48fcf 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1525,9 +1525,7 @@ #include "code\modules\procedural mapping\mapGeneratorModule.dm" #include "code\modules\procedural mapping\mapGeneratorReadme.dm" #include "code\modules\procedural mapping\mapGeneratorModules\nature.dm" -#include "code\modules\procedural mapping\mapGenerators\asteroid.dm" #include "code\modules\procedural mapping\mapGenerators\nature.dm" -#include "code\modules\procedural mapping\mapGenerators\syndicate.dm" #include "code\modules\projectiles\ammunition.dm" #include "code\modules\projectiles\gun.dm" #include "code\modules\projectiles\projectile.dm"