Advertisement
Guest User

Untitled

a guest
Jun 9th, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #region setup
  2.  
  3. grd=objController.grd;
  4.  
  5. move_snap(grd,grd);
  6.  
  7. debug=false;
  8.  
  9. xx=x;
  10. yy=y;
  11. ww=0;
  12. hh=0;
  13.  
  14. #endregion
  15.  
  16. #region land tiles
  17.  
  18. repeat(irandom_range(2000,4000)){
  19.    
  20.     var buffer=grd*irandom_range(8,16);
  21.     var dir=irandom(3);
  22.    
  23.     switch(dir){
  24.         case 0: if(x<room_width-buffer){x+=grd;} break;
  25.     case 1: if(y>buffer){y-=grd;} break;
  26.     case 2: if(x>buffer){x-=grd;} break;
  27.     case 3: if(y<room_height-buffer){y+=grd;} break;
  28.     }
  29.    
  30.     if(dir==0&&!(x<room_width-buffer))continue;
  31.     if(dir==1&&!(y>buffer))continue;
  32.     if(dir==2&&!(x>buffer))continue;
  33.     if(dir==3&&!(y<room_height-buffer))continue;
  34.    
  35.     tile_create(x,y,"Land",9);
  36.     tile_create(x+grd,y,"Land",9);
  37.     tile_create(x-grd,y,"Land",9);
  38.     tile_create(x,y+grd,"Land",9);
  39.     tile_create(x,y-grd,"Land",9);
  40.     tile_create(x+grd,y+grd,"Land",9);
  41.     tile_create(x-grd,y-grd,"Land",9);
  42.     tile_create(x-grd,y+grd,"Land",9);
  43.     tile_create(x+grd,y-grd,"Land",9);
  44.    
  45.     if(x<xx){xx=x;}
  46.     if(y<yy){yy=y;}
  47.     if(x>ww){ww=x;}
  48.     if(y>hh){hh=y;}
  49. }
  50.  
  51. #endregion
  52.  
  53. #region land clean up
  54.  
  55. xx-=grd;
  56. yy-=grd;
  57. ww+=grd*2;
  58. hh+=grd*2;
  59.  
  60. x=xx;
  61. y=yy;
  62.  
  63. while(y<hh){
  64.     if(!tile_meeting(x,y,"Land")){
  65.         if(tile_meeting(x+grd*2,y,"Land")&&
  66.         tile_meeting(x-grd*2,y,"Land")&&
  67.         tile_meeting(x,y+grd*2,"Land")&&
  68.         tile_meeting(x,y-grd*2,"Land")){
  69.             tile_create(x,y,"Land",9);
  70.         }
  71.     }
  72.    
  73.     if(x<ww){x+=grd;}else{x=xx;y+=grd;}
  74. }
  75.  
  76. #endregion
  77.  
  78. #region beach & shallows
  79.  
  80. xx-=grd;
  81. yy-=grd;
  82. ww+=grd*2;
  83. hh+=grd*2;
  84.  
  85. x=xx;
  86. y=yy;
  87.  
  88. while(y<hh){
  89.     if(tile_meeting(x,y,"Land")){
  90.         if(!tile_meeting(x+grd,y,"Land")){tile_create(x+grd,y,"Water",9);tile_create(x,y,"Beach",9);}
  91.         if(!tile_meeting(x-grd,y,"Land")){tile_create(x-grd,y,"Water",9);tile_create(x,y,"Beach",9);}
  92.         if(!tile_meeting(x,y+grd,"Land")){tile_create(x,y+grd,"Water",9);tile_create(x,y,"Beach",9);}
  93.         if(!tile_meeting(x,y-grd,"Land")){tile_create(x,y-grd,"Water",9);tile_create(x,y,"Beach",9);}
  94.        
  95.         if(!tile_meeting(x+grd,y-grd,"Land")){tile_create(x+grd,y-grd,"Water",9);tile_create(x,y,"Beach",9);}
  96.         if(!tile_meeting(x-grd,y+grd,"Land")){tile_create(x-grd,y+grd,"Water",9);tile_create(x,y,"Beach",9);}
  97.         if(!tile_meeting(x+grd,y+grd,"Land")){tile_create(x+grd,y+grd,"Water",9);tile_create(x,y,"Beach",9);}
  98.         if(!tile_meeting(x-grd,y-grd,"Land")){tile_create(x-grd,y-grd,"Water",9);tile_create(x,y,"Beach",9);}
  99.        
  100.         if(!tile_meeting(x+grd*2,y,"Land")){tile_create(x+grd*2,y,"Water",9);}
  101.         if(!tile_meeting(x-grd*2,y,"Land")){tile_create(x-grd*2,y,"Water",9);}
  102.         if(!tile_meeting(x,y+grd*2,"Land")){tile_create(x,y+grd*2,"Water",9);}
  103.         if(!tile_meeting(x,y-grd*2,"Land")){tile_create(x,y-grd*2,"Water",9);}
  104.        
  105.         if(tile_meeting(x+grd,y,"Water")||tile_meeting(x-grd,y,"Water")||tile_meeting(x,y+grd,"Water")||tile_meeting(x,y-grd,"Water")){
  106.             tile_create(x,y,"Land",0);
  107.             tile_create(x,y,"Beach",9);
  108.         }
  109.     }
  110.    
  111.     if(x<ww){x+=grd;}else{x=xx;y+=grd;}
  112. }
  113.  
  114. #endregion
  115.  
  116. #region auto tiling
  117.  
  118. x=xx;
  119. y=yy;
  120.  
  121. while(y<hh+grd){
  122.     // land tiles
  123.     if(tile_meeting(x,y,"Land")){
  124.         // right, left, up, down
  125.         if(tile_meeting(x+grd,y,"Beach")){tile_create(x,y,"Land",8);}
  126.         if(tile_meeting(x-grd,y,"Beach")){tile_create(x,y,"Land",10);}
  127.         if(tile_meeting(x,y+grd,"Beach")){tile_create(x,y,"Land",13);}
  128.         if(tile_meeting(x,y-grd,"Beach")){tile_create(x,y,"Land",5);}
  129.         // right down, left down, right up, left up
  130.         if(tile_meeting(x+grd,y,"Beach")&&tile_meeting(x,y+grd,"Beach")){tile_create(x,y,"Land",12);}
  131.         if(tile_meeting(x-grd,y,"Beach")&&tile_meeting(x,y+grd,"Beach")){tile_create(x,y,"Land",14);}
  132.         if(tile_meeting(x+grd,y,"Beach")&&tile_meeting(x,y-grd,"Beach")){tile_create(x,y,"Land",4);}
  133.         if(tile_meeting(x-grd,y,"Beach")&&tile_meeting(x,y-grd,"Beach")){tile_create(x,y,"Land",6);}
  134.     }
  135.     // beach tiles
  136.     if(tile_meeting(x,y,"Beach")){
  137.         if(tile_meeting(x+grd,y,"Water")){tile_create(x,y,"Beach",8);}
  138.         if(tile_meeting(x-grd,y,"Water")){tile_create(x,y,"Beach",10);}
  139.         if(tile_meeting(x,y+grd,"Water")){tile_create(x,y,"Beach",13);}
  140.         if(tile_meeting(x,y-grd,"Water")){tile_create(x,y,"Beach",5);}
  141.        
  142.         if(tile_meeting(x+grd,y,"Water")&&tile_meeting(x,y+grd,"Water")){tile_create(x,y,"Beach",12);}
  143.         if(tile_meeting(x-grd,y,"Water")&&tile_meeting(x,y+grd,"Water")){tile_create(x,y,"Beach",14);}
  144.         if(tile_meeting(x+grd,y,"Water")&&tile_meeting(x,y-grd,"Water")){tile_create(x,y,"Beach",4);}
  145.         if(tile_meeting(x-grd,y,"Water")&&tile_meeting(x,y-grd,"Water")){tile_create(x,y,"Beach",6);}
  146.     }
  147.     // water tiles
  148.     if(tile_meeting(x,y,"Water")){
  149.         if(!tile_meeting(x+grd,y,"Water")){tile_create(x,y,"Water",8);}
  150.         if(!tile_meeting(x-grd,y,"Water")){tile_create(x,y,"Water",10);}
  151.         if(!tile_meeting(x,y+grd,"Water")){tile_create(x,y,"Water",13);}
  152.         if(!tile_meeting(x,y-grd,"Water")){tile_create(x,y,"Water",5);}
  153.        
  154.         if(!tile_meeting(x+grd,y,"Water")&&!tile_meeting(x,y+grd,"Water")){tile_create(x,y,"Water",12);}
  155.         if(!tile_meeting(x-grd,y,"Water")&&!tile_meeting(x,y+grd,"Water")){tile_create(x,y,"Water",14);}
  156.         if(!tile_meeting(x+grd,y,"Water")&&!tile_meeting(x,y-grd,"Water")){tile_create(x,y,"Water",4);}
  157.         if(!tile_meeting(x-grd,y,"Water")&&!tile_meeting(x,y-grd,"Water")){tile_create(x,y,"Water",6);}
  158.     }
  159.     if(x<ww){x+=grd;}else{x=xx;y+=grd;}
  160. }
  161.  
  162.  
  163.  
  164. #endregion
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement