Advertisement
Guest User

Untitled

a guest
May 1st, 2025
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /// @description Insert description here
  2. // You can write your code in this editor
  3. mapData = LoadJsonData("map_tilemap.json");
  4. mapLayer = layer_create(-10000);
  5. tilemap = layer_tilemap_create(mapLayer, 16,16, ts_map, mapData.width, mapData.height );
  6. mapIndexes = mapData[$ "layers"][0][$ "data"];
  7. locationTilemap = layer_tilemap_create(mapLayer, 16, 16, ts_map, mapData.width, mapData.height);
  8. roomMap = {}
  9. currentRoomName = "";
  10.  
  11. image_speed = 0.15;
  12.  
  13.  
  14. journalMenu = new Menu(screenWidth * 0.2, screenHeight * 0.18, menuType.text, expandType.horizontal);
  15. journalMenu.SetSpacing(36);
  16. journalMenu.AddItem("Map", DoNothing);
  17. journalMenu.AddItem("Inventory", DoNothing);
  18. journalMenu.AddItem("Notes", DoNothing);
  19.  
  20.  
  21. RebuildMap = function() {
  22.     //global.saveData.currentLoop.mapData
  23.  
  24.     var _roomData = mapData[$ "layers"][1][$ "objects"];
  25.    
  26.     for (var i = 0; i < array_length(_roomData); i++) {
  27.         var _val = _roomData[i];
  28.         var _s = {}
  29.         var _tileH = tilemap_get_tile_height(locationTilemap);
  30.         var _tileW = tilemap_get_tile_width(locationTilemap);
  31.         _s[$ "x"] = _val.x div _tileW;
  32.         _s[$ "y"] = _val.y div _tileH;
  33.         _s[$ "w"] = _val[$ "width"] div _tileW;
  34.         _s[$ "h"] = _val[$ "height"] div _tileH;
  35.         var _name = string(_val.name);
  36.         _name = string_replace(_name, "GroundFloor", "RoomGround")
  37.         var _name = "rm" + _name;
  38.         roomMap[$ _name] = _s;
  39.     }
  40.     //show_debug_message(roomMap); 
  41.  
  42.    
  43.    
  44.     //draw revealed map
  45.     var rmList = struct_get_names(roomMap);
  46.     for( var m = 0; m < array_length(rmList); m++)
  47.     {
  48.         var _rmName = rmList[m]
  49.         _s = roomMap[$ _rmName];
  50.        
  51.         GetIndex = function(_x, _y) {
  52.             var _idx = 0;
  53.             _idx = (_y * mapData.width) + _x;
  54.             return mapIndexes[_idx] - 1;
  55.         }
  56.         if global.saveData.currentLoop.IsRoomDiscovered(_rmName) {
  57.             var _cx = _s.x;
  58.             var _cy = _s.y;
  59.            
  60.             var _data = tilemap_get(tilemap, _cx, _cy);
  61.             var newData = tile_set_index(_data, GetIndex(_cx, _cy));
  62.             tilemap_set(tilemap, newData, _cx, _cy);           
  63.            
  64.             _cx = _s.x - 1;
  65.             _cy = _s.y;
  66.            
  67.             if( _cx >= 0) {
  68.                 var _data = tilemap_get(tilemap, _cx, _cy);
  69.                 var newData = tile_set_index(_data, GetIndex(_cx, _cy));
  70.                 tilemap_set(tilemap, newData, _cx, _cy);
  71.             }
  72.             _cx = _s.x;
  73.             _cy = _s.y - 1;
  74.            
  75.             if ( _cy >= 0) {
  76.                 var _data = tilemap_get(tilemap, _cx, _cy);
  77.                 var newData = tile_set_index(_data, GetIndex(_cx, _cy));
  78.                 tilemap_set(tilemap, newData, _cx, _cy);
  79.             }
  80.            
  81.             _cx = _s.x + 1;
  82.             _cy = _s.y;
  83.             repeat(_s.w) {
  84.                 if (_cx < mapData.width) {
  85.                     var _data = tilemap_get(tilemap, _cx, _cy);
  86.                     var newData = tile_set_index(_data, GetIndex(_cx, _cy));
  87.                     tilemap_set(tilemap, newData, _cx, _cy);
  88.  
  89.                 }
  90.                 _cx += 1;
  91.             }
  92.             _cx = _s.x;
  93.             _cy = _s.y + 1;
  94.             repeat(_s.h) {
  95.                 if (_cy < mapData.height) {
  96.                     var _data = tilemap_get(tilemap, _cx, _cy);
  97.                     var newData = tile_set_index(_data, GetIndex(_cx, _cy));
  98.                     tilemap_set(tilemap, newData, _cx, _cy);
  99.  
  100.                 }
  101.                 _cy += 1;
  102.             }
  103.         }
  104.     }
  105.    
  106.     //draw complete map
  107.     //var tileIdx = 0;
  108.     //for (var j = 0; j < mapData.height; j++) {
  109.     //  for (var k = 0; k < mapData.width; k++) {
  110.     //      var _data = tilemap_get(tilemap, k, j);
  111.     //      var newData = tile_set_index(_data, clamp(mapIndexes[tileIdx] - 1, 0, 1000));
  112.     //      tilemap_set(tilemap, newData, k, j);
  113.     //      tileIdx++;
  114.     //  }
  115.     //}
  116.  
  117.     //draw current room;
  118.     var _currentRoomName = room_get_name(room);
  119.  
  120.     currentRoomName = _currentRoomName;
  121.     currentRoomName = string_replace(currentRoomName, "rm", "");
  122.     currentRoomName = string_replace(currentRoomName, "Exit2", "Boat Dock");
  123.     currentRoomName = string_replace(currentRoomName, "GroundFloor", "RoomGround")
  124.     currentRoomName = string_replace(currentRoomName, "ScientistStart", "Workstation")
  125.     currentRoomName = string_replace(currentRoomName, "HybridStart", "Prison") 
  126.     var _currentRoomData = roomMap[$ _currentRoomName];
  127.     if _currentRoomData != undefined {
  128.         tilemap_clear(locationTilemap, 0); 
  129.         var oldTileData = tilemap_get(locationTilemap, _currentRoomData.x , _currentRoomData.y);
  130.         var newTileData = tile_set_index( 0, 2);
  131.         tilemap_set(locationTilemap, newTileData, _currentRoomData.x, _currentRoomData.y);
  132.     }
  133. }
  134.  
  135. RebuildMap();
  136.  
  137. layer_set_visible(mapLayer, false);
  138. drawX = midWidth - ((12 * mapData.width) / 2);
  139. drawY = midHeight - (( 6 * mapData.height) / 2);
  140.  
  141.  
  142. //Clean up Event
  143. layer_tilemap_destroy(tilemap);
  144. layer_destroy(mapLayer);
  145. //objGameController.ResumeGame();
  146.  
  147. //Step
  148. journalMenu.UpdateMenu();
  149.  
  150. //Draw GUI End
  151. /// @description Insert description here
  152. // You can write your code in this editor
  153.  
  154. //draw_sprite_stretched(sprWindowFrame, image_index, screenWidth * 0.25, screenHeight * 0.25, screenWidth * 0.75, screenHeight * 0.75);
  155. draw_rectangle_color(screenWidth * 0.15, screenHeight * 0.15, screenWidth * 0.85, screenHeight * 0.85,
  156.                     mapBG, mapBG, mapBG, mapBG, false);
  157.  
  158. journalMenu.DrawMenu();
  159.  
  160. switch(journalMenu.currentItem) {
  161.     case 0:
  162.         draw_tilemap(tilemap, drawX, drawY);
  163.         draw_tilemap(locationTilemap, drawX, drawY);
  164.         draw_text_scribble(midWidth + 1, (screenHeight * 0.25) + 1, "[fnt_cathode][c_dkgray][fa_center]" + string(currentRoomName));
  165.         draw_text_scribble(midWidth, screenHeight * 0.25, "[fnt_cathode][c_white][fa_center]" + string(currentRoomName));
  166.     break;
  167.     case 1:
  168.         var _string = "[fnt_cathode][fa_center]Stats";
  169.         _string += "\n[fa_left][fnt_cathodeSm]" + "Health: " + string( objPlayer.hp) + "/" + string (objPlayer.maxHp);
  170.         _string += "\n" + "Stamina: " + string( objPlayer.stamina) + "/" + string (objPlayer.maxStamina) ;
  171.         draw_text_scribble(midWidth + 1, (screenHeight * 0.25) + 1, "[c_dkgray]" + string(_string));
  172.         draw_text_scribble(midWidth + 1, (screenHeight * 0.25), "[c_white]" + string(_string));
  173.        
  174.        
  175.         var _string = "Inventory";
  176.         draw_text_scribble(midWidth + 1, (screenHeight * 0.5) + 1, "[fnt_cathode][c_dkgray][fa_center]" + string(_string));
  177.         draw_text_scribble(midWidth + 1, (screenHeight * 0.5), "[fnt_cathode][c_white][fa_center]" + string(_string));
  178.        
  179.     break;
  180.     case 2:
  181.    
  182.         var _string = "Notes";
  183.         draw_text_scribble(midWidth + 1, (screenHeight * 0.5) + 1, "[fnt_cathode][c_dkgray][fa_center]" + string(_string));
  184.         draw_text_scribble(midWidth + 1, (screenHeight * 0.5), "[fnt_cathode][c_white][fa_center]" + string(_string));
  185.     break;
  186. }
  187.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement