mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +00:00
Random map generator fixes, cleanup
This commit is contained in:
@@ -7,7 +7,7 @@
|
|||||||
for(var/x = 1, x <= limit_x, x++)
|
for(var/x = 1, x <= limit_x, x++)
|
||||||
for(var/y = 1, y <= limit_y, y++)
|
for(var/y = 1, y <= limit_y, y++)
|
||||||
var/current_cell = get_map_cell(x,y)
|
var/current_cell = get_map_cell(x,y)
|
||||||
if(!within_bounds(current_cell))
|
if(!current_cell)
|
||||||
continue
|
continue
|
||||||
if(x == 1 || y == 1 || x == limit_x || y == limit_y)
|
if(x == 1 || y == 1 || x == limit_x || y == limit_y)
|
||||||
map[current_cell] = WALL_CHAR
|
map[current_cell] = WALL_CHAR
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
for(var/x = 1, x <= limit_x, x++)
|
for(var/x = 1, x <= limit_x, x++)
|
||||||
for(var/y = 1, y <= limit_y, y++)
|
for(var/y = 1, y <= limit_y, y++)
|
||||||
var/current_cell = get_map_cell(x,y)
|
var/current_cell = get_map_cell(x,y)
|
||||||
if(!within_bounds(current_cell))
|
if(!current_cell)
|
||||||
continue
|
continue
|
||||||
if(!(x == 1 || y == 1 || x == limit_x || y == limit_y))
|
if(!(x == 1 || y == 1 || x == limit_x || y == limit_y))
|
||||||
continue
|
continue
|
||||||
|
|||||||
@@ -38,8 +38,8 @@
|
|||||||
|
|
||||||
/datum/random_map/noise/ore/apply_to_turf(var/x,var/y)
|
/datum/random_map/noise/ore/apply_to_turf(var/x,var/y)
|
||||||
|
|
||||||
var/tx = (origin_x+(x-1))*chunk_size
|
var/tx = ((origin_x-1)+x)*chunk_size
|
||||||
var/ty = (origin_y+(y-1))*chunk_size
|
var/ty = ((origin_y-1)+y)*chunk_size
|
||||||
|
|
||||||
for(var/i=0,i<chunk_size,i++)
|
for(var/i=0,i<chunk_size,i++)
|
||||||
for(var/j=0,j<chunk_size,j++)
|
for(var/j=0,j<chunk_size,j++)
|
||||||
|
|||||||
@@ -41,9 +41,7 @@ var/global/list/map_count = list()
|
|||||||
random_maps[name] = src
|
random_maps[name] = src
|
||||||
|
|
||||||
// Get origins for applying the map later.
|
// Get origins for applying the map later.
|
||||||
origin_x = (!isnull(tx) ? tx : 1)
|
set_origins(tx, ty, tz)
|
||||||
origin_y = (!isnull(ty) ? ty : 1)
|
|
||||||
origin_z = (!isnull(tz) ? tz : 1)
|
|
||||||
if(tlx) limit_x = tlx
|
if(tlx) limit_x = tlx
|
||||||
if(tly) limit_y = tly
|
if(tly) limit_y = tly
|
||||||
|
|
||||||
@@ -69,6 +67,8 @@ var/global/list/map_count = list()
|
|||||||
if(!do_not_announce) admin_notice("<span class='danger'>[capitalize(name)] failed to generate ([round(0.1*(world.timeofday-start_time),0.1)] seconds): could not produce sane map.</span>", R_DEBUG)
|
if(!do_not_announce) admin_notice("<span class='danger'>[capitalize(name)] failed to generate ([round(0.1*(world.timeofday-start_time),0.1)] seconds): could not produce sane map.</span>", R_DEBUG)
|
||||||
|
|
||||||
/datum/random_map/proc/get_map_cell(var/x,var/y)
|
/datum/random_map/proc/get_map_cell(var/x,var/y)
|
||||||
|
if(!islist(map))
|
||||||
|
set_map_size()
|
||||||
var/cell = ((y-1)*limit_x)+x
|
var/cell = ((y-1)*limit_x)+x
|
||||||
if((cell < 1) || (cell > map.len))
|
if((cell < 1) || (cell > map.len))
|
||||||
return null
|
return null
|
||||||
@@ -103,16 +103,11 @@ var/global/list/map_count = list()
|
|||||||
for(var/x = 1, x <= limit_x, x++)
|
for(var/x = 1, x <= limit_x, x++)
|
||||||
for(var/y = 1, y <= limit_y, y++)
|
for(var/y = 1, y <= limit_y, y++)
|
||||||
var/current_cell = get_map_cell(x,y)
|
var/current_cell = get_map_cell(x,y)
|
||||||
if(within_bounds(current_cell))
|
if(current_cell)
|
||||||
dat += get_map_char(map[current_cell])
|
dat += get_map_char(map[current_cell])
|
||||||
dat += "<br>"
|
dat += "<br>"
|
||||||
user << "[dat]+------+</code>"
|
user << "[dat]+------+</code>"
|
||||||
|
|
||||||
/datum/random_map/proc/within_bounds(var/val)
|
|
||||||
if(!islist(map))
|
|
||||||
set_map_size()
|
|
||||||
return (val>0) && (val<=map.len)
|
|
||||||
|
|
||||||
/datum/random_map/proc/set_map_size()
|
/datum/random_map/proc/set_map_size()
|
||||||
map = list()
|
map = list()
|
||||||
map.len = limit_x * limit_y
|
map.len = limit_x * limit_y
|
||||||
@@ -148,21 +143,26 @@ var/global/list/map_count = list()
|
|||||||
/datum/random_map/proc/check_map_sanity()
|
/datum/random_map/proc/check_map_sanity()
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/datum/random_map/proc/apply_to_map(var/tx, var/ty, var/tz)
|
/datum/random_map/proc/set_origins(var/tx, var/ty, var/tz)
|
||||||
if(!tx) tx = isnull(origin_x) ? 1 : origin_x
|
origin_x = tx ? tx : 1
|
||||||
if(!ty) ty = isnull(origin_y) ? 1 : origin_y
|
origin_y = ty ? ty : 1
|
||||||
if(!tz) tz = isnull(origin_z) ? 1 : origin_z
|
origin_z = tz ? tz : 1
|
||||||
|
|
||||||
|
/datum/random_map/proc/apply_to_map()
|
||||||
|
if(!origin_x) origin_x = 1
|
||||||
|
if(!origin_y) origin_y = 1
|
||||||
|
if(!origin_z) origin_z = 1
|
||||||
|
|
||||||
for(var/x = 1, x <= limit_x, x++)
|
for(var/x = 1, x <= limit_x, x++)
|
||||||
for(var/y = 1, y <= limit_y, y++)
|
for(var/y = 1, y <= limit_y, y++)
|
||||||
if(!priority_process) sleep(-1)
|
if(!priority_process) sleep(-1)
|
||||||
apply_to_turf((tx-1)+x,(ty-1)+y,tz)
|
apply_to_turf(x,y)
|
||||||
|
|
||||||
/datum/random_map/proc/apply_to_turf(var/x,var/y,var/z)
|
/datum/random_map/proc/apply_to_turf(var/x,var/y)
|
||||||
var/current_cell = get_map_cell(x,y)
|
var/current_cell = get_map_cell(x,y)
|
||||||
if(!within_bounds(current_cell))
|
if(!current_cell)
|
||||||
return 0
|
return 0
|
||||||
var/turf/T = locate(x,y,z)
|
var/turf/T = locate((origin_x-1)+x,(origin_y-1)+y,origin_z)
|
||||||
if(!T || (target_turf_type && !istype(T,target_turf_type)))
|
if(!T || (target_turf_type && !istype(T,target_turf_type)))
|
||||||
return 0
|
return 0
|
||||||
var/newpath = get_appropriate_path(map[current_cell])
|
var/newpath = get_appropriate_path(map[current_cell])
|
||||||
@@ -193,7 +193,7 @@ var/global/list/map_count = list()
|
|||||||
for(var/x = 1, x <= limit_x, x++)
|
for(var/x = 1, x <= limit_x, x++)
|
||||||
for(var/y = 1, y <= limit_y, y++)
|
for(var/y = 1, y <= limit_y, y++)
|
||||||
var/current_cell = get_map_cell(x,y)
|
var/current_cell = get_map_cell(x,y)
|
||||||
if(!within_bounds(current_cell))
|
if(!current_cell)
|
||||||
continue
|
continue
|
||||||
if(tx+x > target_map.limit_x)
|
if(tx+x > target_map.limit_x)
|
||||||
continue
|
continue
|
||||||
|
|||||||
@@ -75,7 +75,8 @@
|
|||||||
tz = !isnull(tz) ? tz : T.z
|
tz = !isnull(tz) ? tz : T.z
|
||||||
message_admins("[key_name_admin(usr)] has applied [M.name] at x[tx],y[ty],z[tz].")
|
message_admins("[key_name_admin(usr)] has applied [M.name] at x[tx],y[ty],z[tz].")
|
||||||
log_admin("[key_name(usr)] has applied [M.name] at x[tx],y[ty],z[tz].")
|
log_admin("[key_name(usr)] has applied [M.name] at x[tx],y[ty],z[tz].")
|
||||||
M.apply_to_map(tx,ty,tz)
|
M.set_origins(tx,ty,tz)
|
||||||
|
M.apply_to_map()
|
||||||
|
|
||||||
/client/proc/overlay_random_map()
|
/client/proc/overlay_random_map()
|
||||||
set category = "Debug"
|
set category = "Debug"
|
||||||
|
|||||||
Reference in New Issue
Block a user