From 616cdab1b6f769ce923a04dac80ce84709bd6718 Mon Sep 17 00:00:00 2001 From: SilicaAndPina Date: Fri, 24 Jul 2020 19:21:59 +1200 Subject: [PATCH] CommitLog | --- objects/obj_controller_world_gen.object.gmx | 48 +++++++++++++-------- 1 file changed, 31 insertions(+), 17 deletions(-) diff --git a/objects/obj_controller_world_gen.object.gmx b/objects/obj_controller_world_gen.object.gmx index 2f6bb70..148579b 100644 --- a/objects/obj_controller_world_gen.object.gmx +++ b/objects/obj_controller_world_gen.object.gmx @@ -27,19 +27,22 @@ 1 /// GameMaker Is Stupid -var chunkat = instance_position(cX, cY,obj_chunk); -if(chunkat == noone) // create +for(var i = 0; i < 16; i ++) { - show_debug_message("Generating chunk: "+string(cX)+","+string(cY)); - instance_create(cX,cY,obj_chunk); -} -else // load -{ - if(chunkat.loaded = false) + var chunkat = instance_position(cX[i], cY[i],obj_chunk); + if(chunkat == noone) // create { - show_debug_message("Loading chunk: #"+string(chunkat)+" "+string(cX)+","+string(cY)); - with(chunkat){ - event_user(1); + show_debug_message("Generating chunk: "+string(cX[i])+","+string(cY[i])); + instance_create(cX[i],cY[i],obj_chunk); + } + else // load + { + if(chunkat.loaded = false) + { + show_debug_message("Loading chunk: #"+string(chunkat)+" "+string(cX[i])+","+string(cY[i])); + with(chunkat){ + event_user(1); + } } } } @@ -65,7 +68,7 @@ else // load 1 - /// Load / Unload Chunks + /// Load Chunks var playX = obj_player.x; var playY = obj_player.y; @@ -77,7 +80,6 @@ var chunkRelY = playY % chunk_total_size; var chunkX = (obj_player.x - chunkRelX); var chunkY = (obj_player.y - chunkRelY); - // Fix annoyances where % negative = positive if(chunkX < 0) @@ -99,11 +101,23 @@ if(chunkX == 0 && (playX < 0 && playX >= chunk_total_size/ { chunkX = chunk_total_size/-1; } +chunkX -= chunk_total_size; +chunkY -= chunk_total_size; +// Load Chunks +cX[16] = 0; +cY[16] = 0; +var i = 0; +for(var xx = 0; xx < 4; xx++) +{ + for(var yy = 0; yy < 4; yy++) + { + instance_activate_region(chunkX+(chunk_total_size*xx),chunkY+(chunk_total_size*yy),1,1,true); + cX[i] = chunkX+(chunk_total_size*xx) + cY[i] = chunkY+(chunk_total_size*yy) + i++; + } +} - -instance_activate_region(chunkX,chunkY,1,1,true); -cX = chunkX -cY = chunkY alarm[0] = 1;