Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// @description Insert description here
- // You can write your code in this editor
- mapData = LoadJsonData("map_tilemap.json");
- mapLayer = layer_create(-10000);
- tilemap = layer_tilemap_create(mapLayer, 16,16, ts_map, mapData.width, mapData.height );
- mapIndexes = mapData[$ "layers"][0][$ "data"];
- locationTilemap = layer_tilemap_create(mapLayer, 16, 16, ts_map, mapData.width, mapData.height);
- roomMap = {}
- currentRoomName = "";
- image_speed = 0.15;
- journalMenu = new Menu(screenWidth * 0.2, screenHeight * 0.18, menuType.text, expandType.horizontal);
- journalMenu.SetSpacing(36);
- journalMenu.AddItem("Map", DoNothing);
- journalMenu.AddItem("Inventory", DoNothing);
- journalMenu.AddItem("Notes", DoNothing);
- RebuildMap = function() {
- //global.saveData.currentLoop.mapData
- var _roomData = mapData[$ "layers"][1][$ "objects"];
- for (var i = 0; i < array_length(_roomData); i++) {
- var _val = _roomData[i];
- var _s = {}
- var _tileH = tilemap_get_tile_height(locationTilemap);
- var _tileW = tilemap_get_tile_width(locationTilemap);
- _s[$ "x"] = _val.x div _tileW;
- _s[$ "y"] = _val.y div _tileH;
- _s[$ "w"] = _val[$ "width"] div _tileW;
- _s[$ "h"] = _val[$ "height"] div _tileH;
- var _name = string(_val.name);
- _name = string_replace(_name, "GroundFloor", "RoomGround")
- var _name = "rm" + _name;
- roomMap[$ _name] = _s;
- }
- //show_debug_message(roomMap);
- //draw revealed map
- var rmList = struct_get_names(roomMap);
- for( var m = 0; m < array_length(rmList); m++)
- {
- var _rmName = rmList[m]
- _s = roomMap[$ _rmName];
- GetIndex = function(_x, _y) {
- var _idx = 0;
- _idx = (_y * mapData.width) + _x;
- return mapIndexes[_idx] - 1;
- }
- if global.saveData.currentLoop.IsRoomDiscovered(_rmName) {
- var _cx = _s.x;
- var _cy = _s.y;
- var _data = tilemap_get(tilemap, _cx, _cy);
- var newData = tile_set_index(_data, GetIndex(_cx, _cy));
- tilemap_set(tilemap, newData, _cx, _cy);
- _cx = _s.x - 1;
- _cy = _s.y;
- if( _cx >= 0) {
- var _data = tilemap_get(tilemap, _cx, _cy);
- var newData = tile_set_index(_data, GetIndex(_cx, _cy));
- tilemap_set(tilemap, newData, _cx, _cy);
- }
- _cx = _s.x;
- _cy = _s.y - 1;
- if ( _cy >= 0) {
- var _data = tilemap_get(tilemap, _cx, _cy);
- var newData = tile_set_index(_data, GetIndex(_cx, _cy));
- tilemap_set(tilemap, newData, _cx, _cy);
- }
- _cx = _s.x + 1;
- _cy = _s.y;
- repeat(_s.w) {
- if (_cx < mapData.width) {
- var _data = tilemap_get(tilemap, _cx, _cy);
- var newData = tile_set_index(_data, GetIndex(_cx, _cy));
- tilemap_set(tilemap, newData, _cx, _cy);
- }
- _cx += 1;
- }
- _cx = _s.x;
- _cy = _s.y + 1;
- repeat(_s.h) {
- if (_cy < mapData.height) {
- var _data = tilemap_get(tilemap, _cx, _cy);
- var newData = tile_set_index(_data, GetIndex(_cx, _cy));
- tilemap_set(tilemap, newData, _cx, _cy);
- }
- _cy += 1;
- }
- }
- }
- //draw complete map
- //var tileIdx = 0;
- //for (var j = 0; j < mapData.height; j++) {
- // for (var k = 0; k < mapData.width; k++) {
- // var _data = tilemap_get(tilemap, k, j);
- // var newData = tile_set_index(_data, clamp(mapIndexes[tileIdx] - 1, 0, 1000));
- // tilemap_set(tilemap, newData, k, j);
- // tileIdx++;
- // }
- //}
- //draw current room;
- var _currentRoomName = room_get_name(room);
- currentRoomName = _currentRoomName;
- currentRoomName = string_replace(currentRoomName, "rm", "");
- currentRoomName = string_replace(currentRoomName, "Exit2", "Boat Dock");
- currentRoomName = string_replace(currentRoomName, "GroundFloor", "RoomGround")
- currentRoomName = string_replace(currentRoomName, "ScientistStart", "Workstation")
- currentRoomName = string_replace(currentRoomName, "HybridStart", "Prison")
- var _currentRoomData = roomMap[$ _currentRoomName];
- if _currentRoomData != undefined {
- tilemap_clear(locationTilemap, 0);
- var oldTileData = tilemap_get(locationTilemap, _currentRoomData.x , _currentRoomData.y);
- var newTileData = tile_set_index( 0, 2);
- tilemap_set(locationTilemap, newTileData, _currentRoomData.x, _currentRoomData.y);
- }
- }
- RebuildMap();
- layer_set_visible(mapLayer, false);
- drawX = midWidth - ((12 * mapData.width) / 2);
- drawY = midHeight - (( 6 * mapData.height) / 2);
- //Clean up Event
- layer_tilemap_destroy(tilemap);
- layer_destroy(mapLayer);
- //objGameController.ResumeGame();
- //Step
- journalMenu.UpdateMenu();
- //Draw GUI End
- /// @description Insert description here
- // You can write your code in this editor
- //draw_sprite_stretched(sprWindowFrame, image_index, screenWidth * 0.25, screenHeight * 0.25, screenWidth * 0.75, screenHeight * 0.75);
- draw_rectangle_color(screenWidth * 0.15, screenHeight * 0.15, screenWidth * 0.85, screenHeight * 0.85,
- mapBG, mapBG, mapBG, mapBG, false);
- journalMenu.DrawMenu();
- switch(journalMenu.currentItem) {
- case 0:
- draw_tilemap(tilemap, drawX, drawY);
- draw_tilemap(locationTilemap, drawX, drawY);
- draw_text_scribble(midWidth + 1, (screenHeight * 0.25) + 1, "[fnt_cathode][c_dkgray][fa_center]" + string(currentRoomName));
- draw_text_scribble(midWidth, screenHeight * 0.25, "[fnt_cathode][c_white][fa_center]" + string(currentRoomName));
- break;
- case 1:
- var _string = "[fnt_cathode][fa_center]Stats";
- _string += "\n[fa_left][fnt_cathodeSm]" + "Health: " + string( objPlayer.hp) + "/" + string (objPlayer.maxHp);
- _string += "\n" + "Stamina: " + string( objPlayer.stamina) + "/" + string (objPlayer.maxStamina) ;
- draw_text_scribble(midWidth + 1, (screenHeight * 0.25) + 1, "[c_dkgray]" + string(_string));
- draw_text_scribble(midWidth + 1, (screenHeight * 0.25), "[c_white]" + string(_string));
- var _string = "Inventory";
- draw_text_scribble(midWidth + 1, (screenHeight * 0.5) + 1, "[fnt_cathode][c_dkgray][fa_center]" + string(_string));
- draw_text_scribble(midWidth + 1, (screenHeight * 0.5), "[fnt_cathode][c_white][fa_center]" + string(_string));
- break;
- case 2:
- var _string = "Notes";
- draw_text_scribble(midWidth + 1, (screenHeight * 0.5) + 1, "[fnt_cathode][c_dkgray][fa_center]" + string(_string));
- draw_text_scribble(midWidth + 1, (screenHeight * 0.5), "[fnt_cathode][c_white][fa_center]" + string(_string));
- break;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement