diff --git a/README.md b/README.md index 8847f830..1fb5cab2 100644 --- a/README.md +++ b/README.md @@ -3,14 +3,14 @@ width="400" height="400" alt="web-dashers logo" - src="https://github.com/user-attachments/assets/1b647556-ef74-47f9-be61-46696c57f04e" + src="https://github.com/user-attachments/assets/ce1ccbb1-b1e6-49c2-818c-f9c3ba1fda5c" /> -

Web Dashers

+

Lollipop Mod

- A Modded Geometry Dash demo with extra features added! (See list below!) + A Modded Web Dashers with extra features added! (See list below!)

over it, cropped from a packed UHD sheet, so the browser renders UHD + // pixels at full DPR without loading thousands of individually-cut per-frame files. + ['gj-s03-uhd', 'gj-s03-uhd-fade', 'gj-s03-uhd-flash', 'gj-s03-menu-dom'].forEach(id => { const el = document.getElementById(id); if (el) el.remove(); }); + const _uhdParent = this.game.canvas.parentElement || document.body; + this._uhdParent = _uhdParent; + const _uhdCont = document.createElement('div'); + _uhdCont.id = 'gj-s03-uhd'; + _uhdCont.style.cssText = 'position:absolute;pointer-events:none;z-index:499;overflow:hidden;top:0;left:0;width:100%;height:100%;'; + _uhdParent.appendChild(_uhdCont); + this._uhdCont = _uhdCont; + // Noclip death flash mirror — must sit above EVERYTHING, including all UHD + // overlay canvases and the black fade div. Driven by this.noclipFlash's alpha. + const _uhdFlashDiv = document.createElement('div'); + _uhdFlashDiv.id = 'gj-s03-uhd-flash'; + _uhdFlashDiv.style.cssText = 'position:absolute;pointer-events:none;z-index:9000;top:0;left:0;width:100%;height:100%;background:#f00;opacity:0;'; + _uhdParent.appendChild(_uhdFlashDiv); + this._uhdFlashDiv = _uhdFlashDiv; + this._uhdMap = new Map(); + this._uhdContext = null; // null = main menu; must be set before any add.image calls + // Sync overlay positions after update() has moved containers/cameras for the frame + // (off-before-on: scene restarts reuse the same instance, avoid double registration) + this.events.off('postupdate', this._syncUhdOverlays); + this.events.on('postupdate', this._syncUhdOverlays); + const _sc = this; + // On scene restart this.add is the same plugin instance, so the patch from the + // previous create() may still be in place. Always unwrap to the true original first. + if (this.add.image._uhd_orig) this.add.image = this.add.image._uhd_orig; + if (this.add.nineslice._uhd_orig) this.add.nineslice = this.add.nineslice._uhd_orig; + const _uhdDirs = { GJ_GameSheet03: true, GJ_GameSheet04: true, GJ_WebSheet: true, GJ_GameSheet: true, GJ_GameSheet02: true }; + // Standalone assets/sprites/*.png files — not atlas frames, so there's no separate + // "-uhd-packed" sheet to swap in. These are already the only art that exists; the + // point of overlaying them as DOM elements is just to escape the game's fixed-resolution + // WebGL canvas (see feedback_uhd_packed_sheets memory, tenth gotcha). + // GJ_square01/02, square01_001, square04_001 are deliberately excluded here even + // though they're standalone sprites too: they're panel *backgrounds* (via direct + // nineslice or _drawScale9) with separate text/icons drawn on top at a higher Phaser + // depth but composited into the same canvas — an overlay big enough to matter always + // ends up covering some of that content once a panel's corner/border is wide relative + // to where its content sits (confirmed broken on the song-info box and a settings + // sub-popup). See eleventh gotcha in feedback_uhd_packed_sheets memory. + const _uhdRawDirs = { + GJ_button01: true, GJ_button02: true, GJ_button03: true, GJ_button04: true, + GJ_button05: true, GJ_button06: true, loadingCircle: true, macroBot: true, + import: true, export: true, + tutorial_01: true, tutorial_02: true, tutorial_03: true, tutorial_04: true, tutorial_05: true, + tab1: true, tab2: true, tab3: true, tab4: true, tab5: true, + GJ_moveBtn: true, GJ_moveSBtn: true, slidergroove2: true, + importMacro: true, playbackMacro: true, stopPlayback: true, recordMacro: true, stopRecord: true, + }; + const _uhdPacked = {}; + Object.keys(_uhdDirs).forEach(k => { + const tex = _sc.textures.get('uhd_' + k); + const atlasJson = _sc.cache.json.get('uhd_' + k + '_atlas'); + if (tex && tex.key !== '__MISSING' && atlasJson) { + _uhdPacked[k] = { img: tex.getSourceImage(), frames: atlasJson.frames }; + } + }); + // Data URLs are pre-cropped for every frame during the loading screen (see + // buildUhdDataUrlCache in loading-screen.js) — this is a cache lookup, not a crop. + // The scratch canvas is only a fallback for a frame that somehow missed pre-caching. + const _uhdScratchCanvas = document.createElement('canvas'); + const _uhdScratchCtx = _uhdScratchCanvas.getContext('2d'); + // Raw (non-atlas) sprite source: the "UHD" source IS the currently-loaded texture + // itself — there's no separate hi-res sheet, just a DOM element instead of a WebGL + // quad for the same pixels. frame===null means the whole image; a string frame is + // one of _drawScale9's synthetic "_s9_N" sub-rects, cropped the same way as atlas frames. + const _uhdRawFrameRect = (key, frame) => { + const tex = _sc.textures.get(key); + if (!tex || tex.key === '__MISSING') return null; + if (frame == null) { const img = tex.getSourceImage(); return { whole: true, w: img.width, h: img.height }; } + if (!tex.has(frame)) return null; + const f = tex.get(frame); + return { whole: false, x: f.cutX, y: f.cutY, w: f.cutWidth, h: f.cutHeight }; + }; + // Phaser's own loaded for a texture is backed by a blob: URL that it's free to + // revoke once decoded — reusing that URL directly (e.g. as a second or a CSS + // border-image-source) intermittently 404s/ERR_FILE_NOT_FOUND once revoked. Baking a + // fresh data URL through the scratch canvas (same trick as the packed-atlas path below) + // sidesteps that entirely, since the data URL doesn't depend on the original blob at all. + const _uhdRawDataUrl = (key, frame) => { + const tex = _sc.textures.get(key); + if (!tex || tex.key === '__MISSING') return null; + const rect = _uhdRawFrameRect(key, frame); + if (!rect) return null; + const cacheKey = key + ':' + (frame == null ? '__whole' : frame); + let url = window._uhdDataUrlCache && window._uhdDataUrlCache[cacheKey]; + if (!url) { + _uhdScratchCanvas.width = rect.w; + _uhdScratchCanvas.height = rect.h; + _uhdScratchCtx.clearRect(0, 0, rect.w, rect.h); + if (rect.whole) _uhdScratchCtx.drawImage(tex.getSourceImage(), 0, 0); + else _uhdScratchCtx.drawImage(tex.getSourceImage(), rect.x, rect.y, rect.w, rect.h, 0, 0, rect.w, rect.h); + url = _uhdScratchCanvas.toDataURL(); + if (window._uhdDataUrlCache) window._uhdDataUrlCache[cacheKey] = url; + } + return url; + }; + this._uhdRawDataUrl = _uhdRawDataUrl; + const _uhdDrawFrame = (imgEl, key, frame) => { + if (_uhdRawDirs[key]) { + const url = _uhdRawDataUrl(key, frame); + if (!url) return false; + imgEl.src = url; + return true; + } + const packed = _uhdPacked[key]; + const rect = packed && packed.frames[frame]; + if (!rect) return false; + const cacheKey = key + ':' + frame; + let url = window._uhdDataUrlCache && window._uhdDataUrlCache[cacheKey]; + if (!url) { + _uhdScratchCanvas.width = rect.w; + _uhdScratchCanvas.height = rect.h; + _uhdScratchCtx.clearRect(0, 0, rect.w, rect.h); + _uhdScratchCtx.drawImage(packed.img, rect.x, rect.y, rect.w, rect.h, 0, 0, rect.w, rect.h); + url = _uhdScratchCanvas.toDataURL(); + if (window._uhdDataUrlCache) window._uhdDataUrlCache[cacheKey] = url; + } + imgEl.src = url; + return true; + }; + this._uhdDrawFrame = _uhdDrawFrame; + // Per-frame shrink applied only to the UHD overlay's own box (not the underlying sprite), + // so the replacement art renders smaller than the original frame while staying centered + // on it. Keyed as "textureKey:frameName". + const _uhdScaleOverrides = { 'GJ_WebSheet:GJ_logo_001.png': 0.95 }; + // Atlas-rotated frames normally get CSS rotation suppressed (their UHD art is packed in + // final visual orientation). But frames listed here are drawn at several code rotations + // (editor move arrows), so their overlay must follow go.rotation; the value is the offset + // between the packed art's on-disk orientation (up) and the frame's design orientation (left). + const _uhdRotateOverrides = { + 'GJ_GameSheet03:edit_upBtn2_001.png': -Math.PI / 2, + 'GJ_GameSheet03:edit_upBtn3_001.png': -Math.PI / 2, + }; + // Per-frame position nudge (game units) applied only to the UHD overlay, not the + // underlying sprite. Keyed as "textureKey:frameName". + const _uhdOffsetOverrides = { 'GJ_WebSheet:GJ_logo_001.png': { x: -5, y: -5 } }; + // Per-frame object-fit override. Default 'contain' never crops but can leave the old + // sprite visible in the letterboxed gap when the replacement art's aspect ratio doesn't + // match the original frame; 'cover' guarantees full coverage of the old frame's box + // (cropping the replacement's edges slightly) for cases where that gap is worse than the crop. + const _uhdFitOverrides = {}; + const _uhdFrameAllowed = (key, frame) => !!(_uhdPacked[key] && _uhdPacked[key].frames[frame]) || (!!_uhdRawDirs[key] && !!_uhdRawFrameRect(key, frame)); + // A raw sprite has no atlas frame name at all when used whole (this.add.image(x,y,key)), + // so the usual `typeof frame === 'string'` gate has to loosen to allow frame == null too. + const _uhdShouldTag = (key, frame) => + (_uhdDirs[key] && typeof frame === 'string' && _uhdFrameAllowed(key, frame)) || + (_uhdRawDirs[key] && (frame == null || typeof frame === 'string') && _uhdFrameAllowed(key, frame)); + // GJ_GameSheet/GJ_GameSheet02 hold the gameplay objects. Their overlays are tagged + // obj-mode: alpha maps to CSS opacity (not the disabled-button grayscale), and the + // overlay hides for color-tinted or additive-blend sprites (canvas fallback), since + // DOM elements can't replicate arbitrary tints or blend modes. + const _uhdObjSheet = (key) => key === 'GJ_GameSheet' || key === 'GJ_GameSheet02'; + // Shared by the add.image and add.nineslice patches: gives an interactive game object + // a companion invisible Zone as its real input target, so the sync loop can hide the + // object's own canvas rendering behind its DOM overlay without losing clicks. + const _uhdWireInteractive = (go) => { + const _oSetInteractive = go.setInteractive.bind(go); + const _oDisableInteractive = go.disableInteractive.bind(go); + go.setInteractive = function(...args) { + const r = _oSetInteractive(...args); + go._uhdWantsInteractive = true; + if (localStorage.getItem('uhdHideOldTextures') !== '0' && go.input) { + if (!go._uhdHitZone) { + const _cursor = go.input.cursor; + const zone = _sc.add.zone(go.x, go.y, go.width || 1, go.height || 1) + .setOrigin(go.originX, go.originY) + .setInteractive(_cursor ? { cursor: _cursor } : undefined); + go._uhdHitZone = zone; + ['pointerdown', 'pointerup', 'pointerover', 'pointerout', 'pointerupoutside', 'pointermove'] + .forEach(evt => zone.on(evt, (...a) => go.emit(evt, ...a))); + const e = _sc._uhdMap.get(go); + if (e) e.hitZone = zone; + } + _oDisableInteractive(); + } + return r; + }; + go.disableInteractive = function(...args) { + const r = _oDisableInteractive(...args); + go._uhdWantsInteractive = false; + return r; + }; + }; + const _origAddImg = this.add.image.bind(this.add); + const _patchedAddImg = function(x, y, key, frame, ...rest) { + const go = _origAddImg(x, y, key, frame, ...rest); + if (_uhdShouldTag(key, frame)) { + // object-fit:contain (rather than the default fill/stretch) lets a UHD replacement + // whose own aspect ratio doesn't exactly match the original frame's sourceSize (e.g. + // a redrawn logo) scale in without distortion; it's a no-op when the aspect already + // matches, so it doesn't change anything for the existing GameSheet03/04 assets. + const _fitMode = _uhdFitOverrides[key + ':' + frame] || 'contain'; + // Editor build-tab preview icons draw from the object sheets but are UI, not + // in-game objects — exempt them from the In-Game UHD toggle & lazy lifecycle, + // or they'd vanish behind their button-background overlays when it's off. + const _isObj = _uhdObjSheet(key) && !_sc._uhdPreviewIcons; + // Object-sheet sprites (level objects) get their DOM img lazily, in the sync + // loop, only while actually on screen — a long level would otherwise create + // thousands of img nodes up front and keep them all alive forever. + let di = null; + if (!_isObj) { + di = document.createElement('img'); + di.style.cssText = 'position:absolute;left:0;top:0;pointer-events:none;display:none;object-fit:' + _fitMode + ';'; + _uhdDrawFrame(di, key, frame); + _uhdCont.appendChild(di); + } + const entry = { img: di, key, frame, fit: _fitMode, group: _sc._uhdContext, obj: _isObj, _sized: false, _vis: null, _t: null, uhdScale: _uhdScaleOverrides[key + ':' + frame] || 1, uhdOffset: _uhdOffsetOverrides[key + ':' + frame] || null, uhdRot: _uhdRotateOverrides[key + ':' + frame] != null ? _uhdRotateOverrides[key + ':' + frame] : null }; + _sc._uhdMap.set(go, entry); + // Follow dynamic texture swaps (nav dots, checkboxes, etc.) + const _oST = go.setTexture.bind(go); + go.setTexture = function(k, f, ...a) { + const r = _oST(k, f, ...a); + if (_uhdShouldTag(k, f)) { + const e = _sc._uhdMap.get(go); + if (e) { e.key = k; e.frame = f; if (e.img) _uhdDrawFrame(e.img, k, f); e._sized = false; e.obj = _uhdObjSheet(k); e.uhdScale = _uhdScaleOverrides[k + ':' + f] || 1; e.uhdOffset = _uhdOffsetOverrides[k + ':' + f] || null; e.uhdRot = _uhdRotateOverrides[k + ':' + f] != null ? _uhdRotateOverrides[k + ':' + f] : null; } + } + return r; + }; + // Follow same-texture frame swaps (editor build/edit/delete tabs, etc.) + const _oSFr = go.setFrame.bind(go); + go.setFrame = function(f, ...a) { + const r = _oSFr(f, ...a); + const k = go.texture && go.texture.key; + if (_uhdShouldTag(k, f)) { + const e = _sc._uhdMap.get(go); + if (e) { e.key = k; e.frame = f; if (e.img) _uhdDrawFrame(e.img, k, f); e._sized = false; e.obj = _uhdObjSheet(k); e.uhdScale = _uhdScaleOverrides[k + ':' + f] || 1; e.uhdOffset = _uhdOffsetOverrides[k + ':' + f] || null; e.uhdRot = _uhdRotateOverrides[k + ':' + f] != null ? _uhdRotateOverrides[k + ':' + f] : null; } + } + return r; + }; + // On by default; opt out via localStorage.setItem('uhdHideOldTextures', '0') + // (a plain window flag would reset on every refresh): + // give interactive UI icons a companion invisible Zone as their real input + // target. Phaser (3.52+) drops non-rendering objects from hit testing and + // the old alwaysEnabled escape hatch for that was removed, so a Zone is the + // only supported way to let the sync loop hide this sprite's own canvas + // rendering (behind its UHD overlay) without also killing its clicks. Once + // the zone takes over, the original sprite's own interactive state stops + // mattering for input at all, which is what makes that hiding safe. + if (!_isObj) _uhdWireInteractive(go); + } + return go; + }; + _patchedAddImg._uhd_orig = this.add.image; // keep reference to original for unwrap on restart + this.add.image = _patchedAddImg; + // Raw-sprite nineslice panels (GJ_square01/02, GJ_button01, etc.) can't be replicated + // with a plain — squashing the whole texture over an arbitrary width/height would + // stretch the rounded corners too. CSS border-image does the same corner-preserving + // stretch as Phaser's NineSlice, sourced directly from the same PNG. + const _origAddNineslice = this.add.nineslice.bind(this.add); + const _patchedAddNineslice = function(x, y, key, frame, width, height, leftWidth, rightWidth, topHeight, bottomHeight, ...rest) { + const go = _origAddNineslice(x, y, key, frame, width, height, leftWidth, rightWidth, topHeight, bottomHeight, ...rest); + const _nsUrl = _uhdRawDirs[key] ? _uhdRawDataUrl(key, frame) : null; + if (_nsUrl) { + const div = document.createElement('div'); + div.style.cssText = 'position:absolute;left:0;top:0;pointer-events:none;display:none;box-sizing:border-box;border-style:solid;border-color:transparent;border-image-repeat:stretch;'; + div.style.borderImageSource = 'url(' + _nsUrl + ')'; + _uhdCont.appendChild(div); + const entry = { + img: div, key, frame: null, group: _sc._uhdContext, obj: false, nineslice: true, + corners: { l: leftWidth || 0, r: rightWidth || 0, t: topHeight || 0, b: bottomHeight || 0 }, + _sized: false, _vis: null, _t: null, _al: '', + }; + _sc._uhdMap.set(go, entry); + // Unlike the image patch, the original nineslice is never hidden (see the + // comment in the sync loop), so its own interactivity is left untouched — + // no companion hit-zone needed here. + } + return go; + }; + _patchedAddNineslice._uhd_orig = this.add.nineslice; + this.add.nineslice = _patchedAddNineslice; + this._bgSpeedX = 0.1; this._bgSpeedY = 0.1; this._menuCameraX = -centerX; @@ -575,6 +850,7 @@ this._menuUpdateLogBtn = this.add.image(screenWidth - 30 - 50, 33, "GJ_WebSheet" this._openCreatorMenu = () => { if (this._creatorOverlay) return; + this._uhdContext = 'creator'; this._creatorMenuOpen = true; const sw = screenWidth; @@ -719,6 +995,7 @@ this._menuUpdateLogBtn = this.add.image(screenWidth - 30 - 50, 33, "GJ_WebSheet" }; this._openPlayMenu = (onBack = null) => { if (this._playOverlay) return; + this._uhdContext = 'playMenu'; const sw = screenWidth; const sh = screenHeight; this._playMenuBackTarget = onBack || (() => this._openCreatorMenu()); @@ -1149,6 +1426,7 @@ this._menuUpdateLogBtn = this.add.image(screenWidth - 30 - 50, 33, "GJ_WebSheet" }; this._openEditorMenu = () => { if (this._editorOverlay) return; + this._uhdContext = 'editor'; const sw = screenWidth; const sh = screenHeight; const centerX = sw / 2; @@ -1551,6 +1829,8 @@ this._menuUpdateLogBtn = this.add.image(screenWidth - 30 - 50, 33, "GJ_WebSheet" return "local_" + (maxId + 1); }; this._openLevelView = (level) => { + this._uhdContext = 'levelView'; + this._levelViewOverlay = true; const sw = screenWidth; const sh = screenHeight; const centerX = sw / 2; @@ -1823,6 +2103,7 @@ this._menuUpdateLogBtn = this.add.image(screenWidth - 30 - 50, 33, "GJ_WebSheet" }; this._openSearchMenu = () => { if (this._searchOverlay) return; + this._uhdContext = 'search'; const sw = screenWidth; const sh = screenHeight; @@ -2714,6 +2995,7 @@ this._menuUpdateLogBtn = this.add.image(screenWidth - 30 - 50, 33, "GJ_WebSheet" this._openIconSelector = (startTab = "icon") => { if (this._iconOverlay) return; + this._uhdContext = 'icon'; const sw = screenWidth; const sh = screenHeight; @@ -3529,13 +3811,20 @@ this._menuUpdateLogBtn = this.add.image(screenWidth - 30 - 50, 33, "GJ_WebSheet" this._closeOnlineLevelsScene(); return; } + if (this._savedOverlay) { + if (this._closeSavedLevelsOverlay) this._closeSavedLevelsOverlay(); + return; + } if (this._creatorOverlay) { this._closeCreatorMenu(); return; } if (this._settingsPopup) { - this._settingsPopup.destroy(); - this._settingsPopup = null; + this._closeSettingsPopup(); + return; + } + if (this._megaHackMenu) { + this._closeMegaHackMenu(); return; } if (this._macroPopup) { @@ -3597,6 +3886,17 @@ this._menuUpdateLogBtn = this.add.image(screenWidth - 30 - 50, 33, "GJ_WebSheet" this._pauseGame(); } }); + // MegaHack-style mod menu toggle key (backtick/grave), matches the real + // MegaHack default keybind. Separate from the settings-gear Options popup — + // that one carries real (non-cheat) settings like fullscreen/percentage/font. + this._megaHackKey = this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.BACKTICK); + this._megaHackKey.on("down", () => { + if (this._megaHackMenu) { + this._closeMegaHackMenu(); + } else { + this._buildMegaHackMenu(); + } + }); this._restartKey = this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.R); this._restartKey.on("down", () => { if (!this._menuActive && !this._slideIn && !this._levelWon && !this._menuActive) { @@ -3799,6 +4099,7 @@ this._menuUpdateLogBtn = this.add.image(screenWidth - 30 - 50, 33, "GJ_WebSheet" } _openLevelSelect() { if (this._levelSelectOverlay) return; + this._uhdContext = 'levelSelect'; const sw = screenWidth; const sh = screenHeight; const cx = sw / 2; @@ -3893,19 +4194,18 @@ this._menuUpdateLogBtn = this.add.image(screenWidth - 30 - 50, 33, "GJ_WebSheet" const arrowL = this.add.image(55, cy - 25, "GJ_GameSheet03", "navArrowBtn_001.png").setScrollFactor(0).setDepth(154).setScale(1.1).setFlipX(true).setInteractive(); const arrowR = this.add.image(sw - 55, cy - 25, "GJ_GameSheet03", "navArrowBtn_001.png").setScrollFactor(0).setDepth(154).setScale(1.1).setFlipX(false).setInteractive(); const allLevels = window.allLevels || []; - const visibleLevels = allLevels.filter(level => !(level && level[2] === "level_22")); - const pageCount = visibleLevels.length + 1; - let currentPageIndex = visibleLevels.findIndex(l => l[2] === window.currentlevel[2]); + const pageCount = allLevels.length + 1; + let currentPageIndex = allLevels.findIndex(l => l[2] === window.currentlevel[2]); if (currentPageIndex < 0) currentPageIndex = 0; - const isComingSoonPage = () => currentPageIndex >= visibleLevels.length; + const isComingSoonPage = () => currentPageIndex >= allLevels.length; const getPageLevel = () => { - if (isComingSoonPage()) return visibleLevels[visibleLevels.length - 1] || window.currentlevel || []; - return visibleLevels[currentPageIndex] || window.currentlevel || []; + if (isComingSoonPage()) return allLevels[allLevels.length - 1] || window.currentlevel || []; + return allLevels[currentPageIndex] || window.currentlevel || []; }; const applyCurrentPage = () => { this._levelSelectIsComingSoonPage = isComingSoonPage(); - if (!isComingSoonPage() && visibleLevels[currentPageIndex]) { - window.currentlevel = [...visibleLevels[currentPageIndex]]; + if (!isComingSoonPage() && allLevels[currentPageIndex]) { + window.currentlevel = [...allLevels[currentPageIndex]]; } }; applyCurrentPage(); @@ -4283,6 +4583,11 @@ this._menuUpdateLogBtn = this.add.image(screenWidth - 30 - 50, 33, "GJ_WebSheet" } cardContentObjs.length = 0; barObjs.length = 0; + // update() resets _uhdContext to null every frame; this runs from a "preupdate" + // handler on a later frame than _openLevelSelect()'s synchronous build, so it must + // re-assert the tag before creating new icons or their UHD overlays get group:null + // and stay hidden forever (same bug/fix as the settings-popup page rebuild). + this._uhdContext = 'levelSelect'; drawCardBg(newColors.bgHex, dark, isComingSoonPage()); buildCardContent(); buildBar(); @@ -4477,7 +4782,7 @@ this._menuUpdateLogBtn = this.add.image(screenWidth - 30 - 50, 33, "GJ_WebSheet" this._setParticleTimeScale(0); this._player?.setDeathAnimationPaused?.(true); this._player2?.setDeathAnimationPaused?.(true); - this._buildPauseOverlay(); + if (!window.hidePause) this._buildPauseOverlay(); } } _resumeGame() { @@ -4575,6 +4880,7 @@ this._menuUpdateLogBtn = this.add.image(screenWidth - 30 - 50, 33, "GJ_WebSheet" return _0x4864cc; } _buildPauseOverlay() { + this._uhdContext = 'pause'; const textureY = screenWidth / 2; const _0xf70e04 = 320; const _0x4eb71b = screenWidth - 40; @@ -4713,7 +5019,12 @@ _buildPauseOverlay() { localStorage.setItem("userSfxVol", v); }); } -_buildSettingsPopup() { +_closeSettingsPopup() { + if (!this._settingsPopup) return; + this._settingsPopup.destroy(); + this._settingsPopup = null; + } + _buildSettingsPopup() { if (this._settingsPopup) return; const centerX = screenWidth / 2, @@ -4736,8 +5047,7 @@ _buildSettingsPopup() { const closeBtn = this.add.image(-(panelWidth / 2) + 10, -(panelHeight / 2) + 10, 'GJ_WebSheet', "GJ_closeBtn_001.png").setScale(0.8).setInteractive(); innerContainer.add(closeBtn); this._makeBouncyButton(closeBtn, 0.8, () => { - this._settingsPopup.destroy(); - this._settingsPopup = null; + this._closeSettingsPopup(); }); const pages = ["Gameplay", "Visual", "Advanced"]; @@ -4827,129 +5137,10 @@ _buildSettingsPopup() { this.InfoBoxDoAThing(infoText); }); }; - const createNumberInput = (container, x, y, label, getVal, setVal) => { - const txt = this.add.bitmapText(x + textOffset, y, "bigFont", label, 25).setOrigin(0, 0.5); - container.add(txt); - - const boxX = x + checkOffset; - const boxY = y; - const boxW = 64; - const boxH = 48; - - const bgBoxGraphics = this.add.graphics(); - bgBoxGraphics.fillStyle(0x222222, 0.5); - bgBoxGraphics.fillRoundedRect(boxX - boxW / 2, boxY - boxH / 2, boxW, boxH, 8); - container.add(bgBoxGraphics); - - const hitArea = this.add.rectangle(boxX, boxY, boxW, boxH, 0x000000, 0) - .setOrigin(0.5) - .setInteractive({ useHandCursor: true }); - container.add(hitArea); - - let initialVal = getVal() || 1; - const valueTxt = this.add.bitmapText(boxX, boxY, "bigFont", initialVal.toString(), 28) - .setOrigin(0.5); - container.add(valueTxt); - - let isFocused = false; - let internalString = initialVal.toString(); - - const updateDisplay = () => { - if (isFocused) { - valueTxt.setText(internalString + "|"); - } else { - valueTxt.setText(internalString || " "); - } - }; - - const commitValue = () => { - isFocused = false; - - let val = parseFloat(internalString); - if (isNaN(val)) val = 1; - - if (val < 0.1) val = 0.1; - if (val > 10) val = 10; - - internalString = val.toString(); - valueTxt.setText(internalString); - - setVal(val); - if (this._saveSettings) this._saveSettings(); - }; - - hitArea.on('pointerdown', (pointer, localX, localY, event) => { - if (event) event.stopPropagation(); - - if (window._activeCustomInput && window._activeCustomInput !== commitValue) { - window._activeCustomInput(); - } - - isFocused = true; - window._activeCustomInput = commitValue; - - internalString = ""; - updateDisplay(); - }); - - const outsideClickListener = () => { - if (isFocused) commitValue(); - }; - dim.on('pointerdown', outsideClickListener); - - const keydownListener = (event) => { - if (!isFocused) return; - - const key = event.key; - - if (key === "Enter") { - event.preventDefault(); - commitValue(); - return; - } - - if (key === "Backspace") { - event.preventDefault(); - internalString = internalString.slice(0, -1); - updateDisplay(); - return; - } - - if (/^[0-9.]$/.test(key)) { - event.preventDefault(); - - if (key === "." && internalString.includes(".")) return; - - const parts = internalString.split('.'); - - if (key === ".") { - if (parts[0].length === 0) return; - } else { - if (parts.length === 1 && parts[0].length >= 2) return; - if (parts.length === 2 && parts[1].length >= 2) return; - } - - internalString += key; - updateDisplay(); - } - }; - - window.addEventListener('keydown', keydownListener); - - const originalDestroy = container.destroy; - container.destroy = (...args) => { - window.removeEventListener('keydown', keydownListener); - if (dim) dim.off('pointerdown', outsideClickListener); - if (window._activeCustomInput === commitValue) { - window._activeCustomInput = null; - } - originalDestroy.apply(container, args); - }; - }; const buildGameplayPage = (container) => { - createToggle(container, column1X, startY, "Show Percentage", - () => window.showPercentage, + createToggle(container, column1X, startY, "Show Percentage", + () => window.showPercentage, (v) => window.showPercentage = v, (v) => { if (this._percentageLabel) this._percentageLabel.setVisible(v); }, undefined, @@ -4957,8 +5148,8 @@ _buildSettingsPopup() { "Show Percentage" ); - createToggle(container, column1X, startY + spacingY, "Percentage Decimals", - () => window.percentageDecimals, + createToggle(container, column1X, startY + spacingY, "Percentage Decimals", + () => window.percentageDecimals, (v) => window.percentageDecimals = v, undefined, undefined, @@ -4966,39 +5157,7 @@ _buildSettingsPopup() { "Percentage Decimals" ); - createToggle(container, column1X, startY + (spacingY * 2), "StartPos Switcher", - () => window.startPosSwitcher, - (v) => window.startPosSwitcher = v, - (v) => { - if (!v) this._startPosIndex = -1; - if (this._startPosGui) this._startPosGui.setVisible(v); - const total = this._level.getStartPositions().length; - if (this._startPosText) this._startPosText.setText(`0/${total}`); - } - ); - - createToggle(container, column1X, startY + (spacingY * 3), "Noclip", - () => window.noClip, - (v) => window.noClip = v, - (v) => { if (this._noclipIndicator) this._noclipIndicator.setVisible(v); } - ); - - createToggle(container, column1X, startY + (spacingY * 4), "Noclip Accuracy", - () => window.noClipAccuracy, - (v) => window.noClipAccuracy = v - ); - - createToggle(container, column1X, startY + (spacingY * 5), "Macro Bot", - () => window.macroBot, - (v) => window.macroBot = v - ); - - createNumberInput(container, column2X, startY, "Speedhack", - () => window.speedHack, - (v) => window.speedHack = v - ); - - createToggle(container, column2X, startY + spacingY, "Practice Music Bypass", + createToggle(container, column2X, startY, "Practice Music Bypass", () => window.practiceMusicBypass, (v) => { const changed = !!window.practiceMusicBypass !== !!v; @@ -5015,75 +5174,20 @@ _buildSettingsPopup() { }; const buildVisualPage = (container) => { - createToggle(container, column1X, startY, "Show Hitboxes", - () => window.showHitboxes, - (v) => window.showHitboxes = v, - (v) => { - if (!v) { - this._player._hitboxGraphics.clear(); - } else { - this._player.drawHitboxes(this._player._hitboxGraphics, this._cameraX, this._cameraY); - } - } - ); - - createToggle(container, column1X, startY + (spacingY), "Hitbox Trail", - () => window.showHitboxTrail, - (v) => window.showHitboxTrail = v, - (v) => { if (window.showHitboxes) this._player.drawHitboxes(this._player._hitboxGraphics, this._cameraX, this._cameraY); } - ); - - createToggle(container, column1X, startY + (spacingY * 2), "Hitboxes on Death", - () => window.hitboxesOnDeath, - (v) => window.hitboxesOnDeath = v, - undefined, - undefined, - true, - "Hitboxes on Death" - ); - - createToggle(container, column1X, startY + (spacingY * 3), "Show FPS", - () => this._fpsText.visible, - (v) => this._fpsText.visible = v, - (v) => { if (this._fpsText) this._fpsText.setVisible(v); } - ); - - createToggle(container, column1X, startY + (spacingY * 4), "Solid Wave Trail", - () => window.solidWave, + createToggle(container, column1X, startY, "Solid Wave Trail", + () => window.solidWave, (v) => window.solidWave = v ); - - createToggle(container, column1X, startY + (spacingY * 5), "Show CPS", - () => window.showCPS, - (v) => window.showCPS = v - ); - createToggle(container, column2X, startY, "Show Glow", - () => window.showGlow, - (v) => window.showGlow = v, - () => { if (this._level && this._level._updateGlowVisibility) this._level._updateGlowVisibility(); } - ); - - createToggle(container, column2X, startY + spacingY, "Create Object ID labels", - () => window.createObjectIds, - (v) => window.createObjectIds = v, - null, 17 - ); - - createToggle(container, column2X, startY + (spacingY * 2), "Show Object ID labels", - () => window.showObjectIds, - (v) => window.showObjectIds = v, - null, 17 - ); - createToggle(container, column2X, startY + (spacingY * 3), "Enable Portal Guide", - () => window.enablePortalGuide, + createToggle(container, column2X, startY, "Enable Portal Guide", + () => window.enablePortalGuide, (v) => window.enablePortalGuide = v, null, 22, true, "Enable Portal Guide" ); - createToggle(container, column2X, startY + (spacingY * 4), "Enable Orb Guide", - () => window.enableOrbGuide, + createToggle(container, column2X, startY + spacingY, "Enable Orb Guide", + () => window.enableOrbGuide, (v) => window.enableOrbGuide = v, null, 25, @@ -5105,7 +5209,7 @@ _buildSettingsPopup() { pageContainer = this.add.container(0, 0); innerContainer.add(pageContainer); pageTitle.setText(pages[idx]); - + if (idx === 0) buildGameplayPage(pageContainer); else if (idx === 1) buildVisualPage(pageContainer); else if (idx === 2) buildAdvancedPage(pageContainer); @@ -5130,6 +5234,623 @@ _buildSettingsPopup() { easeParams: [1, 0.6] }); } + _closeMegaHackMenu() { + if (this._megaHackCleanups) { this._megaHackCleanups.forEach(fn => fn()); this._megaHackCleanups = null; } + const popup = this._megaHackMenu; + this._megaHackMenu = null; + if (!popup) return; + popup.classList.add('is-closed'); + setTimeout(() => popup.remove(), 260); + } + // DOM-based mod menu, backtick-only. Toggles use the same window.* names the engine + // already reads elsewhere (noClip, showHitboxes, speedHack, etc.) so they stay real cheats. + // DOM-based mod menu, backtick-only, styled after the real MegaHack v9 client. + // Rows with a `real` key are wired to actual engine state and rendered bright/ + // clickable; every other row (the vast majority of the real client's list) is + // rendered dimmed and inert via the .placebo class — "not added yet" at a glance. + _buildMegaHackMenu() { + if (this._megaHackMenu) return; + + window.hitboxMultiplier = window.hitboxMultiplier ?? 1; + window.hidePause = window.hidePause ?? false; + window.showNoclipDeaths = window.showNoclipDeaths ?? false; + window.speedHack = window.speedHack || 1; + window._mhMenuFont = window._mhMenuFont || 'Default'; + window._mhMenuScale = window._mhMenuScale || 1.25; + window._mhMenuOpacity = window._mhMenuOpacity ?? 1; + + if (!document.getElementById('mh-style')) { + const style = document.createElement('style'); + style.id = 'mh-style'; + style.innerHTML = ` + :root { + --mh-accent: #e83866; + --mh-bg: #2a2a2a; + --mh-header-bg: #e83866; + } + #gj-s03-menu-dom { + position: absolute; + top: 0; left: 0; width: 100%; height: 100%; + pointer-events: none; + z-index: 999999; + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; + font-size: 12px; + letter-spacing: 0.2px; + visibility: visible; + transition: backdrop-filter 0.2s, background-color 0.2s, visibility 0s linear 0s; + } + #gj-s03-menu-dom.is-closed { + visibility: hidden; + pointer-events: none !important; + backdrop-filter: blur(0px) !important; + background-color: transparent !important; + transition: backdrop-filter 0.2s, background-color 0.2s, visibility 0s linear 0.2s; + } + #gj-s03-menu-dom.global-blur { + backdrop-filter: blur(5px); + background-color: rgba(0, 0, 0, 0.3); + pointer-events: auto; + } + #gj-s03-menu-dom .mh-content { + position: absolute; + top: 0; left: 0; + display: flex; + flex-wrap: wrap; + align-items: flex-start; + gap: 10px; + padding: 10px; + transform-origin: top left; + } + #gj-s03-menu-dom .mh-group { + display: flex; + flex-direction: column; + gap: 8px; + } + #gj-s03-menu-dom .mh-window { + pointer-events: auto; + background-color: var(--mh-bg); + width: 180px; + display: flex; + flex-direction: column; + box-shadow: 2px 2px 10px rgba(0,0,0,0.6); + transition: transform 0.2s cubic-bezier(0.1, 0.7, 0.1, 1); + } + #gj-s03-menu-dom.is-closed .mh-window { + transform: translate(calc(var(--slide-dir) * 100vw), 100vh); + } + #gj-s03-menu-dom .mh-header { + background-color: var(--mh-header-bg); + color: #fff; + font-weight: 700; + text-align: center; + padding: 6px 0; + user-select: none; + cursor: grab; + display: flex; + align-items: center; + } + #gj-s03-menu-dom .mh-header:active { cursor: grabbing; } + #gj-s03-menu-dom .mh-header-collapse { + width: 22px; + text-align: center; + opacity: 0.85; + flex: none; + } + #gj-s03-menu-dom .mh-header-text { + flex: 1; + white-space: nowrap; + } + #gj-s03-menu-dom .mh-header-spacer { width: 22px; flex: none; } + #gj-s03-menu-dom .mh-body { + overflow-y: auto; + } + #gj-s03-menu-dom .mh-body::-webkit-scrollbar { width: 6px; } + #gj-s03-menu-dom .mh-body::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.25); } + #gj-s03-menu-dom .mh-body::-webkit-scrollbar-track { background: transparent; } + #gj-s03-menu-dom .mh-item { + padding: 5px 10px; + color: #f0f0f0; + cursor: pointer; + display: flex; + justify-content: space-between; + align-items: center; + user-select: none; + white-space: nowrap; + position: relative; + } + #gj-s03-menu-dom .mh-item:not(.placebo):hover { background-color: rgba(255, 255, 255, 0.08); } + #gj-s03-menu-dom .mh-item.active { + color: var(--mh-accent); + background: linear-gradient(90deg, transparent 0%, color-mix(in srgb, var(--mh-accent) 15%, transparent)); + } + #gj-s03-menu-dom .mh-item.active:not(.placebo):hover { + background: linear-gradient(90deg, rgba(255,255,255,0.05) 0%, color-mix(in srgb, var(--mh-accent) 25%, transparent)); + } + #gj-s03-menu-dom .mh-item.placebo { + color: #6f6f6f; + cursor: default; + } + #gj-s03-menu-dom .mh-item.dimmed-match { opacity: 0.2; } + #gj-s03-menu-dom .mh-item-text { overflow: hidden; text-overflow: ellipsis; } + #gj-s03-menu-dom .mh-item-value { + color: inherit; + opacity: 0.75; + margin-left: 10px; + } + #gj-s03-menu-dom .mh-indicator { + width: 2px; + height: 14px; + margin-left: 8px; + background-color: #333333; + flex: none; + transition: background-color 0.1s; + } + #gj-s03-menu-dom .mh-item.active .mh-indicator { background-color: var(--mh-accent); } + #gj-s03-menu-dom .mh-item-arrow { + width: 0; height: 0; + margin-left: 8px; + border-bottom: 8px solid #333333; + border-left: 8px solid transparent; + flex: none; + transition: border-bottom-color 0.1s; + } + #gj-s03-menu-dom .mh-item.active .mh-item-arrow { border-bottom-color: var(--mh-accent); } + #gj-s03-menu-dom .mh-item.label-row { + cursor: default; + font-weight: 700; + color: var(--mh-accent); + } + #gj-s03-menu-dom .mh-search-input { + background: transparent; + border: none; + outline: none; + color: #f0f0f0; + font-family: inherit; + font-size: inherit; + width: 100%; + } + #gj-s03-menu-dom .mh-search-input::placeholder { color: #6f6f6f; } + #gj-s03-menu-dom .mh-input { + width: 46px; + background: rgba(0,0,0,0.4); + border: 1px solid #444; + color: #f0f0f0; + text-align: center; + font-family: monospace; + font-size: 11px; + padding: 1px 2px; + outline: none; + } + #gj-s03-menu-dom .mh-input:focus { border-color: var(--mh-accent); } + `; + document.head.appendChild(style); + } + + const container = document.createElement('div'); + container.id = 'gj-s03-menu-dom'; + container.classList.add('is-closed'); + + const cleanups = []; + const on = (target, type, handler) => { target.addEventListener(type, handler); cleanups.push(() => target.removeEventListener(type, handler)); }; + + const content = document.createElement('div'); + content.className = 'mh-content'; + content.style.transform = `scale(${window._mhMenuScale})`; + content.style.opacity = window._mhMenuOpacity; + content.style.fontFamily = window._mhMenuFont === 'Default' ? '' : window._mhMenuFont; + container.appendChild(content); + + function makeDraggable(win, handle) { + let isDragging = false, offsetX = 0, offsetY = 0; + on(handle, 'mousedown', (e) => { + if (e.target.closest('input')) return; + isDragging = true; + const rect = win.getBoundingClientRect(); + offsetX = e.clientX - rect.left; + offsetY = e.clientY - rect.top; + if (win.style.position !== 'fixed') { + win.style.position = 'fixed'; + win.style.left = rect.left + 'px'; + win.style.top = rect.top + 'px'; + win.style.zIndex = '2'; + } + content.querySelectorAll('.mh-window').forEach(w => { if (w !== win) w.style.zIndex = '1'; }); + }); + on(document, 'mousemove', (e) => { + if (!isDragging) return; + win.style.left = (e.clientX - offsetX) + 'px'; + win.style.top = (e.clientY - offsetY) + 'px'; + }); + on(document, 'mouseup', () => { + if (isDragging) fitBodyHeights(); + isDragging = false; + }); + } + + let globalWindowCounter = 1; + const createWindow = (title) => { + const win = document.createElement('div'); + win.className = 'mh-window'; + const slideDir = (globalWindowCounter % 2 !== 0) ? 1 : -1; + win.style.setProperty('--slide-dir', slideDir); + globalWindowCounter++; + + const header = document.createElement('div'); + header.className = 'mh-header'; + const collapse = document.createElement('span'); + collapse.className = 'mh-header-collapse'; + collapse.textContent = '−'; + const textSpan = document.createElement('span'); + textSpan.className = 'mh-header-text'; + textSpan.textContent = title; + const spacer = document.createElement('span'); + spacer.className = 'mh-header-spacer'; + header.appendChild(collapse); + header.appendChild(textSpan); + header.appendChild(spacer); + win.appendChild(header); + + const body = document.createElement('div'); + body.className = 'mh-body'; + win.appendChild(body); + + let collapsed = false; + on(collapse, 'click', (e) => { + e.stopPropagation(); + collapsed = !collapsed; + body.style.display = collapsed ? 'none' : ''; + collapse.textContent = collapsed ? '+' : '−'; + }); + + makeDraggable(win, header); + return { win, body }; + }; + + // --- Real feature wiring: every flag/action the engine actually supports. + // Everything else in the category lists below renders dimmed via .placebo. + const REAL = { + noclip: { get: () => !!window.noClip, set: v => { window.noClip = v; if (this._noclipIndicator) this._noclipIndicator.setVisible(v); this._saveSettings(); } }, + noclipAccuracy: { get: () => !!window.noClipAccuracy, set: v => { window.noClipAccuracy = v; this._saveSettings(); } }, + noclipDeaths: { get: () => !!window.showNoclipDeaths, set: v => window.showNoclipDeaths = v }, + showHitboxes: { get: () => !!window.showHitboxes, set: v => { window.showHitboxes = v; if (!v) this._player?._hitboxGraphics?.clear(); else this._player?.drawHitboxes(this._player._hitboxGraphics, this._cameraX, this._cameraY); this._saveSettings(); } }, + hitboxTrail: { get: () => !!window.showHitboxTrail, set: v => { window.showHitboxTrail = v; if (window.showHitboxes) this._player?.drawHitboxes(this._player._hitboxGraphics, this._cameraX, this._cameraY); this._saveSettings(); } }, + hitboxesOnDeath: { get: () => !!window.hitboxesOnDeath, set: v => window.hitboxesOnDeath = v }, + hitboxMultiplier: { get: () => window.hitboxMultiplier ?? 1, set: v => { window.hitboxMultiplier = v; if (window.showHitboxes) this._player?.drawHitboxes(this._player._hitboxGraphics, this._cameraX, this._cameraY); } }, + hidePauseMenu: { get: () => !!window.hidePause, set: v => window.hidePause = v }, + startPosSwitcher: { + get: () => !!window.startPosSwitcher, set: v => { + window.startPosSwitcher = v; + if (!v) this._startPosIndex = -1; + if (this._startPosGui) this._startPosGui.setVisible(v); + const total = this._level.getStartPositions().length; + if (this._startPosText) this._startPosText.setText(`0/${total}`); + this._saveSettings(); + } + }, + practiceMusicBypass: { + get: () => !!window.practiceMusicBypass, + set: v => { + const changed = !!window.practiceMusicBypass !== !!v; + window.practiceMusicBypass = v; + if (changed && !this._menuActive && this._practicedMode?.practiceMode) this._practiceBypassPending = true; + this._saveSettings(); + } + }, + showPercentage: { get: () => !!window.showPercentage, set: v => { window.showPercentage = v; if (this._percentageLabel) this._percentageLabel.setVisible(v); this._saveSettings(); } }, + percentageDecimals: { get: () => !!window.percentageDecimals, set: v => { window.percentageDecimals = v; this._saveSettings(); } }, + showFPS: { get: () => !!(this._fpsText && this._fpsText.visible), set: v => { this._fpsText?.setVisible(v); this._saveSettings(); } }, + showCPS: { get: () => !!window.showCPS, set: v => { window.showCPS = v; this._saveSettings(); } }, + solidWave: { get: () => !!window.solidWave, set: v => { window.solidWave = v; this._saveSettings(); } }, + noGlow: { get: () => window.showGlow === false, set: v => { window.showGlow = !v; if (this._level?._updateGlowVisibility) this._level._updateGlowVisibility(); this._saveSettings(); } }, + createObjectIds: { get: () => !!window.createObjectIds, set: v => { window.createObjectIds = v; this._saveSettings(); } }, + showObjectIds: { get: () => !!window.showObjectIds, set: v => { window.showObjectIds = v; this._saveSettings(); } }, + showEditorGlow: { get: () => !!window.showEditorGlow, set: v => { window.showEditorGlow = v; this._saveSettings(); } }, + portalGuide: { get: () => window.enablePortalGuide !== false, set: v => { window.enablePortalGuide = v; this._saveSettings(); } }, + orbGuide: { get: () => !!window.enableOrbGuide, set: v => { window.enableOrbGuide = v; this._saveSettings(); } }, + macroBot: { get: () => !!window.macroBot, set: v => { window.macroBot = v; this._saveSettings(); } }, + fullscreen: { get: () => this.scale.isFullscreen, set: v => { if (v && !this.scale.isFullscreen) this.scale.startFullscreen(); else if (!v && this.scale.isFullscreen) this.scale.stopFullscreen(); } }, + speedhack: { + get: () => this._mhSpeedStore ?? (window.speedHack && window.speedHack !== 1 ? window.speedHack : 2), + set: v => { this._mhSpeedStore = v; if (window.speedHack !== 1) { window.speedHack = v; this._saveSettings(); } } + }, + speedhackEnabled: { + get: () => window.speedHack !== 1, + set: v => { window.speedHack = v ? (this._mhSpeedStore ?? 2) : 1; this._saveSettings(); } + }, + theme: { + get: () => window._mhTheme || 'Pink', + set: v => { + window._mhTheme = v; + const c = { Pink: '#e83866', 'Classic Red': '#ff3b3b', Cyan: '#38d6e8', Purple: '#a238e8', Green: '#4bff93' }[v] || '#e83866'; + document.documentElement.style.setProperty('--mh-accent', c); + document.documentElement.style.setProperty('--mh-header-bg', c); + } + }, + menuScale: { get: () => window._mhMenuScale || 1, set: v => { window._mhMenuScale = v; content.style.transform = `scale(${v})`; fitBodyHeights(); } }, + menuOpacity: { get: () => window._mhMenuOpacity ?? 1, set: v => { window._mhMenuOpacity = v; content.style.opacity = v; } }, + font: { + get: () => window._mhMenuFont || 'Default', + set: v => { window._mhMenuFont = v; content.style.fontFamily = v === 'Default' ? '' : v; } + }, + }; + const ACTIONS = { + screenshot: () => { + this.game.renderer.snapshot((image) => { + const a = document.createElement('a'); + a.href = image.src; + a.download = 'megahack-screenshot-' + Date.now() + '.png'; + document.body.appendChild(a); + a.click(); + a.remove(); + }); + }, + restartLevel: () => { if (!this._menuActive && !this._slideIn && !this._levelWon) { this._closeMegaHackMenu(); this._restartLevel(); } }, + practiceMode: () => { + const isP = this._practicedMode.togglePracticeMode(); + if (this._checkpointBtnContainer) this._checkpointBtnContainer.setVisible(isP); + if (this._practiceModeBarContainer) this._practiceModeBarContainer.setVisible(isP); + }, + }; + + const FONT_VALUES = ['Default', 'Monospace', 'Serif', 'Cursive']; + + const allRows = []; + const applySearch = (term) => { + const t = term.trim().toLowerCase(); + allRows.forEach(r => r.el.classList.toggle('dimmed-match', !!t && !r.label.toLowerCase().includes(t))); + }; + + const createRow = (item) => { + const raw = typeof item === 'string' ? { l: item, t: 'toggle' } : item; + + if (raw.t === 'label') { + const row = document.createElement('div'); + row.className = 'mh-item label-row'; + row.textContent = raw.l; + return row; + } + + if (raw.t === 'search') { + const row = document.createElement('div'); + row.className = 'mh-item'; + const input = document.createElement('input'); + input.className = 'mh-search-input'; + input.placeholder = 'Search'; + on(input, 'input', () => applySearch(input.value)); + on(input, 'click', e => e.stopPropagation()); + // Without this, keystrokes typed here still bubble up to Phaser's + // window-level keyboard listener and fire game keybinds (e.g. typing + // "restart" triggers the R-bound restart-level action mid-search). + on(input, 'keydown', e => e.stopPropagation()); + on(input, 'keyup', e => e.stopPropagation()); + row.appendChild(input); + return row; + } + + const wiredReal = raw.real && REAL[raw.real]; + const wiredAction = raw.real && ACTIONS[raw.real]; + const isReal = !!(wiredReal || wiredAction); + + const row = document.createElement('div'); + row.className = 'mh-item' + (isReal ? '' : ' placebo'); + allRows.push({ el: row, label: raw.l }); + + const textSpan = document.createElement('span'); + textSpan.className = 'mh-item-text'; + textSpan.textContent = raw.l; + row.appendChild(textSpan); + + if (raw.t === 'action') { + if (isReal) row.onclick = () => wiredAction(); + return row; + } + + if (raw.t === 'number') { + if (isReal) { + const input = document.createElement('input'); + input.type = 'number'; + input.className = 'mh-input'; + input.step = 0.1; + input.value = wiredReal.get(); + on(input, 'input', (e) => { + const v = parseFloat(e.target.value); + if (!isNaN(v)) wiredReal.set(v); + }); + on(input, 'click', e => e.stopPropagation()); + on(input, 'keydown', e => e.stopPropagation()); + on(input, 'keyup', e => e.stopPropagation()); + row.appendChild(input); + } else { + const val = document.createElement('span'); + val.className = 'mh-item-value'; + val.textContent = '1'; + row.appendChild(val); + } + return row; + } + + if (raw.t === 'value') { + const values = raw.values || []; + let idx = isReal ? Math.max(0, values.indexOf(wiredReal.get())) : 0; + const val = document.createElement('span'); + val.className = 'mh-item-value'; + val.textContent = String(values[idx] ?? ''); + row.appendChild(val); + const arrow = document.createElement('span'); + arrow.className = 'mh-item-arrow'; + row.appendChild(arrow); + if (isReal) { + row.onclick = () => { + idx = (idx + 1) % values.length; + val.textContent = String(values[idx]); + wiredReal.set(values[idx]); + }; + } + return row; + } + + // plain toggle + const indicator = document.createElement('span'); + indicator.className = 'mh-indicator'; + row.appendChild(indicator); + const refresh = () => row.classList.toggle('active', isReal && wiredReal.get()); + refresh(); + if (isReal) { + row.onclick = () => { wiredReal.set(!wiredReal.get()); refresh(); }; + } + return row; + }; + + const allBodies = []; + const buildWindowInto = (parentEl, title, items) => { + const { win, body } = createWindow(title); + items.forEach(raw => body.appendChild(createRow(raw))); + parentEl.appendChild(win); + allBodies.push(body); + return win; + }; + + // Each window's body grows to fill whatever vertical space is left below it — + // "extend to the ground" — and only falls back to its own internal scrollbar + // once even that isn't enough room for its full row list. + const fitBodyHeights = () => { + const bottomMargin = 16; + const scale = window._mhMenuScale || 1; + allBodies.forEach(body => { + body.style.maxHeight = ''; + const top = body.getBoundingClientRect().top; + // getBoundingClientRect() is post-transform (real screen px), but + // scrollHeight/maxHeight are pre-transform layout units — convert the + // remaining screen space back into that unscaled budget before comparing. + const available = (window.innerHeight - top - bottomMargin) / scale; + if (body.scrollHeight > available) body.style.maxHeight = Math.max(40, available) + 'px'; + }); + }; + + // #gj-s03-menu-dom spans the full-screen Phaser parent, not the (possibly + // letterboxed) canvas, so anchor .mh-content to the canvas's own corner + // instead of (0,0) — otherwise the menu sits in the window's corner rather + // than the game's. + const positionContent = () => { + const canvas = this.game.canvas; + const parent = this._uhdParent || canvas.parentElement; + if (!canvas || !parent) return; + const cRect = canvas.getBoundingClientRect(); + const pRect = parent.getBoundingClientRect(); + content.style.left = (cRect.left - pRect.left) + 'px'; + content.style.top = (cRect.top - pRect.top) + 'px'; + }; + positionContent(); + + // --- Window data, transcribed from the real MegaHack v9 interface --- + const MEGAHACK = [{ l: 'Search', t: 'search' }, 'Auto-Select', 'Auto-Update', + { l: 'Language: en-GB', t: 'value', values: ['en-GB', 'en-US', 'es', 'fr', 'de', 'pt-BR', 'ru'] }, + { l: 'Contribute Translations', t: 'action' }, + { l: 'Theme', t: 'value', values: ['Pink', 'Classic Red', 'Cyan', 'Purple', 'Green'], real: 'theme' }, + { l: 'Rulesets', t: 'value', values: ['Mega Hack', 'Vanilla', 'Custom'] }, + 'Alt Hotkey', 'Icon Hotkey', + { l: 'Interface Scale', t: 'value', values: [0.8, 1, 1.25, 1.5], real: 'menuScale' }, + { l: 'Animations', t: 'value', values: [100, 250, 500, 750] }, + { l: 'Sort Interface', t: 'action' }, 'Miscellaneous']; + const SCREENSHOT_SUB = [{ l: 'Screenshot', t: 'action', real: 'screenshot' }, { l: 'Mode: Save & copy', t: 'value', values: ['Save & copy', 'Save', 'Copy'] }]; + const BYPASS = ['Anti-Kick', 'Challenge Level', 'Keymaster', 'Main Levels', 'Music Customiser', 'Slider Limit', + 'Text Length', 'Treasure Room', 'Unlock Icons', 'Unlock Shops', 'Unlock Vaults']; + const SPEEDHACK_SUB = [{ l: 'Speed', t: 'number', real: 'speedhack' }, { l: 'Enabled', t: 'toggle', real: 'speedhackEnabled' }, + 'Speedhack Audio', 'Classic Mode']; + const CREATOR = ['Accurate Save', 'Copy Hack', 'Custom Object Bypass', 'Default Song Bypass', 'Editor Extension', + 'Free Scroll', 'Hide UI', 'Level Edit', 'Multiple Editor Trails', 'No C Mark', 'Place Over', 'Smooth Editor Trail', + 'Toolbox Button Bypass', 'Trigger Value Bypass', 'Verify Hack', + { l: 'Show Editor Glow', t: 'toggle', real: 'showEditorGlow' }]; + const COSMETIC = [{ l: 'Accurate Percentage', t: 'toggle', real: 'percentageDecimals' }, + 'Ball Rotation Bug', 'Classic Particles', 'Classic Pulse', 'Classic Wave Trail', 'Coin Shower', + 'Frozen Animations', 'Hide Pause Button', { l: 'Hide Pause Menu', t: 'toggle', real: 'hidePauseMenu' }, 'Hide Player', 'Icon Randomiser', 'No Camera', + 'No Camera Zoom', 'No Circle Effect', 'No Dash Fire', 'No Death Effect', 'No Do Not Flip', 'No End Shake', + 'No Ghost Trail', { l: 'No Glow', t: 'toggle', real: 'noGlow' }, 'No Mirror', 'No New Best Popup', 'No Orb Ring', + 'No Particles', 'No Particles Classic', 'No Portal Circle', 'No Portal Lightning', 'No Pulse', 'No Respawn Flash', + 'No Robot Fire', 'No Shaders', 'No Shake', 'No Spider Dash', 'No Swing Fire', 'No Trail', 'No Wave Pulse', + 'No Wave Trail', 'No Trail Behind Wave', 'Player 1 on Top', 'Player on Top', 'Show Total Attempts', + { l: 'Solid Wave Trail', t: 'toggle', real: 'solidWave' }, 'StartPos Reset Camera', 'Stop Triggers on Death', + 'Trail Always On', 'Trail Cutting', 'Wave Pulse Size', 'Wave Trail on Death']; + const LEVEL = ['0% Practice Complete', 'Allow Pause Buffering', 'All Modes Platformer', 'Auto Clicker', 'Auto Deafen', + 'Auto Kill', 'Auto Music Sync', 'Auto Pickup Coins', 'Auto Song Download', 'Click Between Frames', + 'Click Between Steps', 'Click on Steps', 'Checkpoint Limit Bypass', 'Collect Coins In Practice', 'Confirm Exit', + 'Confirm Full Reset', 'Confirm Normal', 'Confirm Practice', 'Confirm Reset', 'Force Ice', 'Force Platformer', + 'Frame Stepper', { l: 'Hitbox Multiplier', t: 'number', real: 'hitboxMultiplier' }, 'Instant Complete', 'Jumpscare', 'Jump Hack', + { l: 'Noclip', t: 'toggle', real: 'noclip' }, 'Noclip Limits', 'No Collision', 'Pause During Complete', + 'Practice Bug Fix', { l: 'Practice Music', t: 'toggle', real: 'practiceMusicBypass' }, 'Random Seed', + 'Replay Last Checkpoint', 'Respawn Time', 'Shipcopter', { l: 'Show Hitboxes', t: 'toggle', real: 'showHitboxes' }, + { l: 'Show Hitboxes on Death', t: 'toggle', real: 'hitboxesOnDeath' }, + { l: 'Show Hitboxes Trail', t: 'toggle', real: 'hitboxTrail' }, 'Show Layout', 'Show Trajectory', 'Show Triggers', + 'Smart StartPos', { l: 'StartPos Switcher', t: 'toggle', real: 'startPosSwitcher' }, + { l: 'Enable Portal Guide', t: 'toggle', real: 'portalGuide' }, { l: 'Enable Orb Guide', t: 'toggle', real: 'orbGuide' }, + { l: 'Macro Bot', t: 'toggle', real: 'macroBot' }]; + const STATUS = ['Field Formatting', { l: 'Font', t: 'value', values: FONT_VALUES, real: 'font' }, + { l: 'Scale', t: 'value', values: [0.8, 1, 1.25, 1.5], real: 'menuScale' }, { l: 'Opacity', t: 'value', values: [1, 0.75, 0.5], real: 'menuOpacity' }, + 'Hide Status', 'Message', 'Testmode', 'Cheat Indicator', { l: 'FPS Counter', t: 'toggle', real: 'showFPS' }, + { l: 'CPS Counter', t: 'toggle', real: 'showCPS' }, 'Best Run', { l: 'Noclip Accuracy', t: 'toggle', real: 'noclipAccuracy' }, + { l: 'Noclip Deaths', t: 'toggle', real: 'noclipDeaths' }, 'Attempts', 'Jumps', { l: 'Percentage', t: 'toggle', real: 'showPercentage' }, 'Level Time', 'Session Time', + 'Clock', 'Frame Counter', 'Position', 'Velocity', 'Dead', 'Replay State']; + const UNIVERSAL = ['Allow Low Volume', 'Compact Lists', + { l: 'Create Object ID Labels', t: 'toggle', real: 'createObjectIds' }, + { l: 'Show Object ID Labels', t: 'toggle', real: 'showObjectIds' }, + 'Custom Background', 'Fast Chests', 'Load Audio to Memory', + 'Lock Cursor', 'Main Menu Play', 'No Music Fade Out', 'No Transition', 'Pitch Shifter', + 'Thread Priority', 'Transition Customiser', 'Transparent Lists']; + const CHEATSAFETY = [{ l: 'Ruleset: Mega Hack', t: 'label' }, 'Disable Cheats', + 'Auto Safe Mode', 'Safe Mode', 'Safe Mode Popup']; + const INTERFACE_SUB = ['Hide Endscreen Cheats', 'Hide Endscreen Extras', 'Hide Menu Snow', 'Hide Iconic on Pause', 'Hide RobsVault Shortcut']; + const KEYBINDS_SUB = ['Choose Keybind', 'Choose Hack to Set', 'View Keybinds', 'Remove Keybinds', 'Disable in Editor']; + const DISPLAY = [{ l: '240 FPS', t: 'value', values: [60, 120, 144, 240] }, 'Unlock FPS', + { l: '360 Hz', t: 'value', values: [60, 144, 240, 360] }, 'Physics TPS', + 'Frame Extrapolation', 'Vertical Sync', 'Lock Delta', 'Real Time', 'Borderless Classic', + { l: 'Fullscreen', t: 'toggle', real: 'fullscreen' }]; + const UTILITY = ['P1 Click', 'P2 Click', 'Left', 'Right', 'Uncomplete Level', + { l: 'Restart Level', t: 'action', real: 'restartLevel' }, { l: 'Practice Mode', t: 'action', real: 'practiceMode' }, + 'Settings', 'Resources', 'AppData', 'Toggle DevTools', 'Crash Game']; + const REPLAY_SUB = ['Record', 'Play', 'Filename', 'Auto-save', 'Save', 'Clear & New', 'Delete', 'Gameplay Options', + 'Convert (.json, .gdr)', 'Open Folder']; + + const group = () => { const g = document.createElement('div'); g.className = 'mh-group'; content.appendChild(g); return g; }; + + const gMegaHack = group(); + buildWindowInto(gMegaHack, 'Mega Hack', MEGAHACK); + buildWindowInto(gMegaHack, 'Screenshot', SCREENSHOT_SUB); + + const gBypass = group(); + buildWindowInto(gBypass, 'Bypass', BYPASS); + buildWindowInto(gBypass, 'Speedhack', SPEEDHACK_SUB); + + buildWindowInto(group(), 'Creator', CREATOR); + buildWindowInto(group(), 'Cosmetic', COSMETIC); + buildWindowInto(group(), 'Level', LEVEL); + buildWindowInto(group(), 'Status', STATUS); + buildWindowInto(group(), 'Universal', UNIVERSAL); + + const gCheatSafety = group(); + buildWindowInto(gCheatSafety, 'Cheat Safety', CHEATSAFETY); + buildWindowInto(gCheatSafety, 'Interface', INTERFACE_SUB); + + const gDisplay = group(); + buildWindowInto(gDisplay, 'Display', DISPLAY); + buildWindowInto(gDisplay, 'Keybinds', KEYBINDS_SUB); + + const gUtility = group(); + buildWindowInto(gUtility, 'Utility', UTILITY); + buildWindowInto(gUtility, 'Replay', REPLAY_SUB); + + on(window, 'resize', fitBodyHeights); + on(window, 'resize', positionContent); + + this._megaHackCleanups = cleanups; + this._megaHackMenu = container; + (this._uhdParent || document.body).appendChild(container); + requestAnimationFrame(() => requestAnimationFrame(() => { + container.classList.remove('is-closed'); + // Wait out the open transition (see .mh-window transition duration below) so + // getBoundingClientRect() reads each window's settled position, not mid-slide. + setTimeout(fitBodyHeights, 260); + })); + } _saveSettings() { const settings = { noclip: window.noClip, @@ -5153,7 +5874,9 @@ _buildSettingsPopup() { useDirectInternet: !!window.useDirectInternet, enablePortalGuide: window.enablePortalGuide, enableOrbGuide: window.enableOrbGuide, - settingInfoText: window.settingInfoText || {} + settingInfoText: window.settingInfoText || {}, + mhFlags: window._mhFlags || {}, + mhFont: window._mhFont || 'Default' }; localStorage.setItem("gd_settings", JSON.stringify(settings)); localStorage.setItem("gd_useDirectInternet", String(!!window.useDirectInternet)); @@ -5208,10 +5931,13 @@ _buildSettingsPopup() { window.enableOrbGuide = data.enableOrbGuide; window.settingInfoText = data.settingInfoText || {}; window.useDirectInternet = !!data.useDirectInternet; + window._mhFlags = data.mhFlags || {}; + window._mhFont = data.mhFont || 'Default'; localStorage.setItem("gd_useDirectInternet", String(!!window.useDirectInternet)); } _buildMacroPopup() { if (this._macroPopup) return; + this._uhdContext = 'macro'; const centerX = screenWidth / 2; const centerY = 320; const panelWidth = 800; @@ -5376,6 +6102,7 @@ _buildSettingsPopup() { if (this._infoPopup) { return; } + this._uhdContext = 'info'; const xPos = screenWidth / 2; const popupHeight = 320; const popupWidth = 336; @@ -5794,6 +6521,7 @@ _buildSettingsPopup() { if (this._updateLogPopup || window.levelID) { return; } + this._uhdContext = 'updateLog'; const xPos = screenWidth / 2; const popupHeight = 320; const popupWidth = 336; @@ -5926,6 +6654,7 @@ _buildSettingsPopup() { } _buildNewgroundsPopup() { if (this._newgroundsPopup || window.levelID) return; + this._uhdContext = 'newgrounds'; const xPos = screenWidth / 2; const centerY = screenHeight / 2; this._newgroundsPopup = this.add.container(0, 0).setScrollFactor(0).setDepth(1000); @@ -7128,8 +7857,46 @@ _buildSettingsPopup() { if (!_0x310c5b) { l(1138); } + // Phaser's ScaleManager doesn't fullscreen the canvas in place — on + // startFullscreen() it creates its own wrapper div, inserts it as a new + // sibling of the canvas, and moves the canvas inside that (reversed on + // exit, restoring the canvas to its original parent). That reparenting + // already happened by the time this fires. Our UHD overlay layer and the + // MegaHack DOM menu were appended into the canvas's *old* parent, so once + // fullscreen starts they're siblings of the new fullscreen element rather + // than descendants of it — outside what the browser actually paints while + // fullscreen is active, so they simply vanish. Follow the canvas. + this._resyncUhdParent(); + // Chrome/Edge only: while fullscreen, lock the Escape key via the Keyboard + // Lock API so a single tap doesn't instantly exit — the browser then + // requires a press-and-hold instead (and shows its own "Hold ESC to exit + // fullscreen" hint). Unsupported browsers just keep tap-to-exit. + if (navigator.keyboard && navigator.keyboard.lock) { + if (_0x310c5b) { + // Only takes effect for fullscreen entered via this page's own JS call + // (this.scale.startFullscreen()) — the browser won't grant it for + // native F11 fullscreen, and only Chromium browsers implement it at + // all (Firefox/Safari: no-op, Escape stays tap-to-exit). Logged rather + // than silently swallowed since this API is genuinely flaky in the + // wild — even Nvidia's GeForce NOW hits the same inconsistency. + navigator.keyboard.lock(['Escape']).then( + () => console.log('[MegaHack] Escape keyboard-locked: hold to exit fullscreen.'), + (err) => console.warn('[MegaHack] keyboard.lock() rejected, Escape will exit fullscreen normally:', err) + ); + } else { + try { navigator.keyboard.unlock(); } catch (_0x1a2b3c) {} + } + } this.time.delayedCall(200, () => this._applyScreenResize()); } + _resyncUhdParent() { + const newParent = this.game.canvas.parentElement || document.body; + if (newParent === this._uhdParent) return; + this._uhdParent = newParent; + if (this._uhdCont) newParent.appendChild(this._uhdCont); + if (this._uhdFlashDiv) newParent.appendChild(this._uhdFlashDiv); + if (this._megaHackMenu) newParent.appendChild(this._megaHackMenu); + } _applyScreenResize() { if (this.scale.isFullscreen) { const _0x5bc34b = window.innerWidth / window.innerHeight; @@ -7269,7 +8036,236 @@ _buildSettingsPopup() { this._deltaBuffer = _0x578d1b - _0xd8019e; return _0xd8019e * 60; } + _syncUhdOverlays = () => { + if (this._uhdCont && this._uhdMap && this._uhdMap.size > 0) { + const _cr = this.game.canvas.getBoundingClientRect(); + const _sx = _cr.width / screenWidth; + const _sy = _cr.height / screenHeight; + const _pr = this._uhdParent.getBoundingClientRect(); + const _ox = _cr.left - _pr.left; + const _oy = _cr.top - _pr.top; + // Each entry's img.style.width/height is only ever written once (see + // `entry._sized` below) — cheap, since it almost never changes. But the + // canvas's rendered size (and so _sx/_sy) does change across a fullscreen + // toggle, so a stale cached size then renders at the wrong scale while its + // position (which IS recomputed every frame) jumps to match the new one. + // Force every entry to re-measure whenever the scale itself has moved. + if (this._uhdLastSx !== _sx || this._uhdLastSy !== _sy) { + for (const entry of this._uhdMap.values()) entry._sized = false; + this._uhdLastSx = _sx; + this._uhdLastSy = _sy; + } + // Noclip death flash: mirror the canvas rectangle's alpha above everything + if (this._uhdFlashDiv) { + const _flashOp = (this.noclipFlash && this.noclipFlash.alpha > 0) ? this.noclipFlash.alpha.toFixed(2) : '0'; + if (this._uhdFlashDiv._op !== _flashOp) { this._uhdFlashDiv.style.opacity = _flashOp; this._uhdFlashDiv._op = _flashOp; } + } + // Priority-ordered: most-nested overlay first. Only its group's DOM canvases are shown. + const _effectiveCtx = + this._editorColorPickerPopup ? 'editorColorPicker' : + this._editorHorizontalOptionPopup ? 'editorHorizontalOption' : + this._editorStartOptionsPopup ? 'editorStartOptions' : + this._editorLevelSettingsPopup ? 'editorSettings' : + (this._editorMenuContainer && this._editorMenuContainer.visible) ? 'editorPause' : + this._nongPopupObjs ? 'nong' : + this._levelInfoContainer ? 'levelInfo' : + this._questPopup ? 'quest' : + this._macroPopup ? 'macro' : + (this._settingsPopup || this._megaHackMenu) ? 'megaHack' : + this._settingsLayerOverlay ? 'settings' : + this._achLayerOverlay ? 'achLayer' : + this._statsLayerOverlay ? 'stats' : + this._iconOverlay ? 'icon' : + this._playOverlay ? 'playMenu' : + this._onlineLevelsOverlay ? 'online' : + this._searchResultOverlay ? 'searchResult' : + this._searchOverlay ? 'search' : + this._savedOverlay ? 'saved' : + this._newgroundsPopup ? 'newgrounds' : + this._infoPopup ? 'info' : + this._updateLogPopup ? 'updateLog' : + this._levelViewOverlay ? 'levelView' : + this._creatorOverlay ? 'creator' : + this._editorOverlay ? 'editor' : + this._levelSelectOverlay ? 'levelSelect' : + this._pauseContainer ? 'pause' : + null; + // Graphics settings: master UHD switch (default on) and in-game object UHD + // (default off). Checked live each frame so the toggles apply instantly. + const _uhdOn = window.uhdTextures !== false; + const _uhdObjOn = _uhdOn && !!window.uhdInGameTextures; + const _uhdHideOld = localStorage.getItem('uhdHideOldTextures') !== '0'; + for (const [go, entry] of this._uhdMap) { + if (!go.active) { + if (entry.img) entry.img.remove(); + if (entry.hitZone) entry.hitZone.destroy(); + this._uhdMap.delete(go); + continue; + } + // Fast path for culled level objects — the overwhelmingly common case in a long + // level. No DOM canvas exists and the section container is hidden: two reads, skip. + if (entry.obj && !entry.img) { + if (!_uhdObjOn) continue; + const _pc = go.parentContainer; + if (!go.visible || (_pc && !_pc.visible)) continue; + } + let _parVis = true; { let _chk = go.parentContainer; while (_chk) { if (!_chk.visible) { _parVis = false; break; } _chk = _chk.parentContainer; } } + // Keep the companion hit-zone (see the setInteractive patch above) tracking + // this sprite's current world transform and depth every frame, and mirror + // the game's own intended visibility (not the UHD-hiding state below, which + // is purely cosmetic) into whether it's actually clickable. + if (entry.hitZone) { + const _hz = entry.hitZone; + if (_hz.parentContainer !== go.parentContainer) { + if (_hz.parentContainer) _hz.parentContainer.remove(_hz); + if (go.parentContainer) go.parentContainer.add(_hz); + else this.sys.displayList.add(_hz); + } + _hz.setPosition(go.x, go.y).setScale(go.scaleX, go.scaleY).setRotation(go.rotation); + _hz.setScrollFactor(go.scrollFactorX, go.scrollFactorY); + if (_hz.depth !== go.depth) _hz.setDepth(go.depth); + const _hzActive = go._uhdWantsInteractive && go.visible && _parVis; + if (_hz.input && _hz.input.enabled !== _hzActive) { + if (_hzActive) _hz.setInteractive(); else _hz.disableInteractive(); + } + } + // Object-sheet sprites with a color tint (not white/black) can't be replicated + // by a DOM canvas; nor can any sprite with a non-normal blend mode (e.g. the + // additive spider dash streak from GJ_GameSheet04) — hide the overlay so the + // canvas sprite shows through. + const _objUnsupported = (entry.obj && go.tintTopLeft !== 0xffffff && go.tintTopLeft !== 0) || (go.blendMode && go.blendMode !== 0); + const vis = go.visible && _parVis && entry.group === _effectiveCtx && !_objUnsupported && (entry.obj ? _uhdObjOn : _uhdOn); + if (!vis) { + if (entry.obj) { + // Level objects release their DOM node entirely while off screen; the + // browser's image cache makes re-creation on approach cheap. + if (entry.img) { entry.img.remove(); entry.img = null; entry._vis = false; entry._t = null; entry._al = ''; entry._op = ''; entry._sized = false; } + continue; + } + // Un-hide the canvas sprite (see below) now that its overlay isn't showing. + if (entry._forceHidden) { go.alpha = entry._authoredAlpha != null ? entry._authoredAlpha : 1; entry._forceHidden = false; } + if (entry._vis !== false) { entry.img.style.display = 'none'; entry._vis = false; } + continue; + } + // Nineslice panels routinely have separate content (text labels, icons) drawn + // on top of them at a higher Phaser depth but composited into the same single + // canvas — hiding the original like any other overlay would hide that content + // too. So nineslice originals are left fully visible; their overlay only draws + // a crisp border-image frame around the (transparent-centered) corners/edges, + // matching the same rect the original renders, rather than replacing it outright. + if (_uhdHideOld && !entry.obj && !entry.nineslice && (entry.hitZone || !go.input)) { + // Purely decorative sprites (corner art, backgrounds, etc.) were never made + // interactive at all, so there's no hitbox to protect — safe to hide + // outright. Interactive ones only get hidden once their own zone (see the + // setInteractive patch above) exists to keep handling clicks for them. + // The real alpha is stashed so the dim/disabled-look filter below still + // reflects what the game actually intended, not our forced 0. + if (!entry._forceHidden) { entry._authoredAlpha = go.alpha; entry._forceHidden = true; } + if (go.alpha !== 0) go.alpha = 0; + } + if (!entry.img) { + const _di = document.createElement('img'); + _di.style.cssText = 'position:absolute;left:0;top:0;pointer-events:none;object-fit:' + (entry.fit || 'contain') + ';'; + if (!this._uhdDrawFrame(_di, entry.key, entry.frame)) _di.style.display = 'none'; + this._uhdCont.appendChild(_di); + entry.img = _di; + entry._vis = null; entry._t = null; entry._al = ''; entry._op = ''; entry._sized = false; + } + const _isSideArt = go.frame && go.frame.name === 'GJ_sideArt_001.png'; + const _uhdScale = entry.uhdScale || 1; + const dw = go.width * _sx * _uhdScale; + const dh = go.height * _sy * _uhdScale; + const ox = go.originX != null ? go.originX : 0.5; + const oy = go.originY != null ? go.originY : 0.5; + if (!entry._sized) { + entry.img.style.width = dw.toFixed(1) + 'px'; + entry.img.style.height = dh.toFixed(1) + 'px'; + entry.img.style.transformOrigin = _isSideArt ? '0% 0%' : ((ox * 100).toFixed(0) + '% ' + (oy * 100).toFixed(0) + '%'); + if (entry.nineslice) { + const _c = entry.corners; + entry.img.style.borderWidth = (_c.t * _sy).toFixed(1) + 'px ' + (_c.r * _sx).toFixed(1) + 'px ' + + (_c.b * _sy).toFixed(1) + 'px ' + (_c.l * _sx).toFixed(1) + 'px'; + // No "fill" keyword: the center stays transparent so the original canvas + // rendering (and anything drawn on top of it) shows through untouched — + // only the border frame itself is replaced with the crisp DOM version. + entry.img.style.borderImageSlice = _c.t + ' ' + _c.r + ' ' + _c.b + ' ' + _c.l; + } + entry._sized = true; + } + if (entry._vis !== true) { entry.img.style.display = ''; entry._vis = true; } + let al = ''; + if (entry.obj) { + // World objects: alpha is a real gameplay fade, not a disabled-button look. + const op = go.alpha < 1 ? go.alpha.toFixed(2) : ''; + if (entry._op !== op) { entry.img.style.opacity = op; entry._op = op; } + } else if ((entry._forceHidden ? entry._authoredAlpha : go.alpha) < 1) { + al = 'grayscale(1) brightness(0.55)'; + } + // Grey-tinted sprites (sawblades use setTint(0); dimmed/unselected UI icons + // use a mid-grey tint) — a neutral multiply tint is equivalent to a CSS + // brightness() scale by the tint's channel value, with hue/saturation + // untouched (unlike grayscale()). Only exact/near-neutral tints are + // approximated this way; colored tints aren't used on non-obj UHD sprites. + // NineSlice game objects don't expose tintTopLeft (always undefined there) — + // they carry their tint in a single .tint property instead. + const _tintVal = entry.nineslice ? go.tint : go.tintTopLeft; + if (_tintVal !== 0xffffff) { + const _tintR = (_tintVal >> 16) & 0xff; + al += (al ? ' ' : '') + 'brightness(' + (_tintR / 255).toFixed(2) + ')'; + } + if (entry._al !== al) { entry.img.style.filter = al; entry._al = al; } + let _wx = go.x, _wy = go.y, _ws = go.scaleX, _wsY = go.scaleY; + { let _wp = go.parentContainer; while (_wp) { _wx = _wp.x + _wx * (_wp.scaleX || 1); _wy = _wp.y + _wy * (_wp.scaleY || 1); _ws *= (_wp.scaleX || 1); _wsY *= (_wp.scaleY || 1); _wp = _wp.parentContainer; } } + let t; + if (_isSideArt) { + const _sFX = (_wx * _sx < _cr.width * 0.5 ? 1 : -1) * _ws; + const _sFY = (_wy * _sy < _cr.height * 0.5 ? -1 : 1) * _ws; + const _cX = (_sFX > 0 ? _ox : _wx * _sx + _ox).toFixed(1); + const _cY = (_sFY > 0 ? _wy * _sy - dh + _oy : dh + _oy).toFixed(1); + t = 'translate(' + _cX + 'px,' + _cY + 'px) scale(' + _sFX.toFixed(3) + ',' + _sFY.toFixed(3) + ')'; + } else { + const _isAtlasComp = go.frame && go.frame.rotated && go.flipX && Math.abs(go.rotation + Math.PI * 0.5) < 0.01; + if (_isAtlasComp) { + const _fr = go.frame; + const _corX = (_fr.realWidth - _fr.realHeight + (_fr.y - _fr.x) * 2 + _fr.height - _fr.width) * 0.5; + _wx += _corX; _wy -= _corX; + } + const _isAtlasRotated = go.frame && go.frame.rotated; + // CSS scale(-1) mirrors around the origin point, which relocates an off-center + // box's footprint to the other side of that point (it does NOT mirror in place + // like Phaser's flip, which just reverses texture sampling within a fixed quad). + // Compensate by shifting translate so the footprint stays where Phaser puts it. + const _flipCorX = (!_isAtlasRotated && go.flipX) ? dw * _ws * (1 - 2 * ox) : 0; + const _flipCorY = (!_isAtlasRotated && go.flipY) ? dh * _wsY * (1 - 2 * oy) : 0; + const _uhdOffX = entry.uhdOffset ? entry.uhdOffset.x * _sx : 0; + const _uhdOffY = entry.uhdOffset ? entry.uhdOffset.y * _sy : 0; + const tx = (_wx * _sx - dw * ox + _flipCorX + _uhdOffX + _ox).toFixed(1); + const ty = (_wy * _sy - dh * oy + _flipCorY + _uhdOffY + _oy).toFixed(1); + const _cFX = (!_isAtlasRotated && go.flipX) ? -_ws : _ws; + const _cFY = (!_isAtlasRotated && go.flipY) ? -_wsY : _wsY; + const _cRot = _isAtlasRotated ? (entry.uhdRot != null ? go.rotation + entry.uhdRot : 0) : go.rotation; + if (_cRot === 0 && _cFX === _cFY) { + t = 'translate(' + tx + 'px,' + ty + 'px) scale(' + _cFX.toFixed(3) + ')'; + } else { + t = 'translate(' + tx + 'px,' + ty + 'px)' + + (_cRot !== 0 ? ' rotate(' + _cRot.toFixed(4) + 'rad)' : '') + + ' scale(' + _cFX.toFixed(3) + ',' + _cFY.toFixed(3) + ')'; + } + } + if (entry._t !== t) { entry.img.style.transform = t; entry._t = t; } + } + } + }; update(_0x54fa47, deltaTime) { + this._uhdContext = null; // reset between frames so only current overlay's add.image calls get tagged + // Speedhack is universal: scale Phaser's own tween/timer/animation clocks too, so + // menus, popups and UI transitions speed up along with gameplay (_quantizeDelta + // handles the gameplay simulation tick separately, via a raw multiply, not via + // these engine clocks, so there's no double-scaling between the two). + const _shSpeed = window.speedHack || 1; + if (this.tweens.timeScale !== _shSpeed) this.tweens.timeScale = _shSpeed; + if (this.time.timeScale !== _shSpeed) this.time.timeScale = _shSpeed; + if (this.anims.globalTimeScale !== _shSpeed) this.anims.globalTimeScale = _shSpeed; if (window.isEditor) { if (this._editorPlaytestActive && !this._editorPlaytestPaused) { this._levelEditor._updateEditorPlaytest(deltaTime); @@ -7334,9 +8330,11 @@ _buildSettingsPopup() { this._percentageLabel.setText(displayValue); this._percentageLabel.setVisible(window.showPercentage && !this._menuActive); this._startPosGui.setVisible(window.startPosSwitcher && !this._menuActive); + const _accOn = !!(window.noClip && window.noClipAccuracy); + const _deathOn = !!(window.noClip && window.showNoclipDeaths); this._noclipIndicator.setVisible(window.noClip && !this._menuActive); - this._accuracyIndicator.setVisible(window.noClip && window.noClipAccuracy && !this._menuActive); - this._deathsIndicator.setVisible(window.noClip && window.noClipAccuracy && !this._menuActive); + this._accuracyIndicator.setVisible(_accOn && !this._menuActive); + this._deathsIndicator.setVisible(_deathOn && !this._menuActive); this._accuracyIndicator.setText(`${this._player.noclipStats.accuracy.toFixed(2)}%`); this._deathsIndicator.setText(`${this._player.noclipStats.deaths} Deaths`); @@ -7352,10 +8350,11 @@ _buildSettingsPopup() { } else{ this._cpsIndicator.setTint(0xffffff); } - this._cpsIndicator.setPosition(10, 10 + (window.noClip * 20) + (window.noClip && window.noClipAccuracy * 40)); + const _stackOffset = 10 + (window.noClip ? 20 : 0) + (_accOn ? 20 : 0) + (_deathOn ? 20 : 0); + this._cpsIndicator.setPosition(10, _stackOffset); this._bottedIndicator.setVisible(this._macroBot?.playing); - this._bottedIndicator.setPosition(10, 10 + (window.noClip * 20) + (window.noClip && window.noClipAccuracy * 40) + (window.showCPS * 20)); + this._bottedIndicator.setPosition(10, _stackOffset + (window.showCPS ? 20 : 0)); if (this._macroBtn){ this._macroBtn.setVisible(window.macroBot); } @@ -7368,7 +8367,7 @@ _buildSettingsPopup() { this._fpsFrames = 0; } if (this._paused) { - if (!this._updateLogPopup && (this._spaceKey.isDown || this._upKey.isDown || this._wKey.isDown || this._lKey.isDown) && !this._spaceWasDown && !this._settingsPopup) { + if (!this._updateLogPopup && (this._spaceKey.isDown || this._upKey.isDown || this._wKey.isDown || this._lKey.isDown) && !this._spaceWasDown && !this._settingsPopup && !this._megaHackMenu) { setTimeout(() => { this._resumeGame(); }, 75); @@ -7378,7 +8377,7 @@ _buildSettingsPopup() { } if (this._menuActive) { const _anyOverlayOpen = this._iconOverlay || this._creatorOverlay || this._searchOverlay || - this._onlineLevelsOverlay || this._settingsLayerOverlay || this._settingsPopup || + this._onlineLevelsOverlay || this._settingsLayerOverlay || this._settingsPopup || this._megaHackMenu || this._infoPopup || this._newgroundsPopup || this._statsLayerOverlay || this._updateLogPopup; if (!_anyOverlayOpen && (this._spaceKey.isDown || this._upKey.isDown || this._wKey.isDown) && !this._spaceWasDown) { if (this._creatorMenuOpen) return; @@ -8664,6 +9663,7 @@ _applyMirrorEffect() { } } _showSettingsScreen() { + this._uhdContext = 'settings'; this._settingsScreenClosing = false; if (this._pauseBtn) { this.tweens.add({ @@ -8912,6 +9912,7 @@ _applyMirrorEffect() { }); } _showStatsScreen() { + this._uhdContext = 'stats'; if (this._pauseBtn) { this.tweens.add({ targets: this._pauseBtn, @@ -9107,7 +10108,7 @@ _applyMirrorEffect() { }); }); } - _openListScene(title, rowHeight, onBack) { + _openListScene(title, rowHeight, onBack, onCleanup) { const sw = screenWidth; const sh = screenHeight; const objects = []; @@ -9264,6 +10265,7 @@ _applyMirrorEffect() { _openOnlineLevelsScene(params = {}) { if (this._onlineLevelsOverlay) return; + this._uhdContext = 'online'; const sw = screenWidth; const sh = screenHeight; @@ -9698,6 +10700,9 @@ _applyMirrorEffect() { })); } _processedCache[page] = _lastLevelData; + // Re-arm: _uhdContext resets to null every frame, and several awaits above + // mean this always runs frames later than that reset. + this._uhdContext = 'online'; _lastLevelData.forEach((levelData, idx) => { const cellObjs = _buildLevelCell(levelData, idx); activeCellObjs.push(...cellObjs); @@ -9828,6 +10833,8 @@ _applyMirrorEffect() { } _openSavedLevelsScene() { + this._uhdContext = 'saved'; + this._savedOverlay = true; const sw = screenWidth; const sh = screenHeight; @@ -9937,6 +10944,7 @@ _applyMirrorEffect() { this.tweens.add({ targets: fadeOut, alpha: 1, duration: 160, ease: "Linear", onComplete: () => { for (const o of objects) if (o && o.destroy) o.destroy(); + this._savedOverlay = null; if (returnToCreator) this._openCreatorMenu(); if (onComplete) onComplete(); this.tweens.add({ targets: fadeOut, alpha: 0, duration: 160, ease: "Linear", @@ -9944,6 +10952,7 @@ _applyMirrorEffect() { } }); }; + this._closeSavedLevelsOverlay = closeOverlay; this._makeBouncyButton(backBtn, 1, () => closeOverlay()); const prevBtn = this.add.image(40, sh / 2, "GJ_GameSheet03", "GJ_arrow_03_001.png") .setScrollFactor(0).setDepth(204).setOrigin(0.5).setInteractive().setVisible(false); @@ -10190,6 +11199,10 @@ _applyMirrorEffect() { }; const _rebuildCells = () => { + // Re-arm: _uhdContext resets to null every frame, and this can run a frame + // (or a fetch) later than that reset — e.g. deferred behind the metadata + // Promise.all below, or from the prev/next page buttons. + this._uhdContext = 'saved'; for (const o of activeCellObjs) if (o && o.destroy) o.destroy(); activeCellObjs = []; clearRows(); @@ -10364,13 +11377,15 @@ _applyMirrorEffect() { _openSearchResultScene(levelData) { if (this._searchResultOverlay) return; + this._uhdContext = 'searchResult'; const sw = screenWidth; const sh = screenHeight; const shell = this._openListScene( "Online Levels", 180, - () => { this._searchResultOverlay = null; this._openSearchMenu(); } + () => this._openSearchMenu(), + () => { this._searchResultOverlay = null; } ); const { objects, listLeft, listTop, panelW, panelH, addRow, closeOverlay } = shell; diff --git a/assets/scripts/core/loading-screen.js b/assets/scripts/core/loading-screen.js index 0fa4a500..c48898c2 100644 --- a/assets/scripts/core/loading-screen.js +++ b/assets/scripts/core/loading-screen.js @@ -65,6 +65,30 @@ function loadFont(scene, fontName, fontData) { scene.cache.bitmapFont.add(fontName, { data: fontConfig, texture: fontName, frame: null }); } +// Crops every frame out of the 5 packed UHD sheets into a data URL up front, during the +// loading screen, so game-scene.js's DOM overlays never pay a first-use crop cost mid-game. +function buildUhdDataUrlCache(scene) { + const cache = {}; + const canvas = document.createElement('canvas'); + const ctx = canvas.getContext('2d'); + ["GJ_GameSheet", "GJ_GameSheet02", "GJ_GameSheet03", "GJ_GameSheet04", "GJ_WebSheet"].forEach(key => { + const tex = scene.textures.get('uhd_' + key); + const atlasJson = scene.cache.json.get('uhd_' + key + '_atlas'); + if (!tex || tex.key === '__MISSING' || !atlasJson) return; + const img = tex.getSourceImage(); + for (const frame in atlasJson.frames) { + const rect = atlasJson.frames[frame].w > 0 && atlasJson.frames[frame].h > 0 ? atlasJson.frames[frame] : null; + if (!rect) continue; + canvas.width = rect.w; + canvas.height = rect.h; + ctx.clearRect(0, 0, rect.w, rect.h); + ctx.drawImage(img, rect.x, rect.y, rect.w, rect.h, 0, 0, rect.w, rect.h); + cache[key + ':' + frame] = canvas.toDataURL(); + } + }); + window._uhdDataUrlCache = cache; +} + class BootScene extends Phaser.Scene { constructor() { super({ key: "BootScene" }); @@ -241,9 +265,14 @@ class BootScene extends Phaser.Scene { this.load.atlas("GJ_GameSheet02", "assets/sheets/GJ_GameSheet02.png", "assets/sheets/GJ_GameSheet02.json"); this.load.atlas("GJ_GameSheet03", "assets/sheets/GJ_GameSheet03.png", "assets/sheets/GJ_GameSheet03.json"); this.load.atlas("GJ_GameSheet04", "assets/sheets/GJ_GameSheet04.png", "assets/sheets/GJ_GameSheet04.json"); + this.load.atlas("GJ_GameSheet04_UHD", "assets/sheets/GJ_GameSheet04_UHD.png", "assets/sheets/GJ_GameSheet04_UHD.json"); this.load.atlas("GJ_GameSheetEditor", "assets/sheets/GJ_GameSheetEditor.png", "assets/sheets/GJ_GameSheetEditor.json"); this.load.atlas("GJ_GameSheetGlow", "assets/sheets/GJ_GameSheetGlow.png", "assets/sheets/GJ_GameSheetGlow.json"); this.load.atlas("GJ_GameSheetIcons", "assets/sheets/GJ_GameSheetIcons.png", "assets/sheets/GJ_GameSheetIcons.json"); + ["GJ_GameSheet", "GJ_GameSheet02", "GJ_GameSheet03", "GJ_GameSheet04", "GJ_WebSheet"].forEach(k => { + this.load.image("uhd_" + k, "assets/sheets/" + k + "-uhd-packed.png?v=uhd2"); + this.load.json("uhd_" + k + "_atlas", "assets/sheets/" + k + "-uhd-packed.json?v=uhd2"); + }); this.load.json("Spider_AnimDesc", "assets/sheets/Spider_AnimDesc.json"); this.load.json("Robot_AnimDesc", "assets/sheets/Robot_AnimDesc.json"); this.load.atlas("GJ_LaunchSheet", "assets/sheets/GJ_LaunchSheet.png", "assets/sheets/GJ_LaunchSheet.json"); @@ -330,6 +359,8 @@ class BootScene extends Phaser.Scene { const gfd = this.cache.text.get("goldFontFnt"); if (gfd && !this.cache.bitmapFont.has("goldFont")) loadFont(this, "goldFont", gfd); + buildUhdDataUrlCache(this); + localStorage.setItem('webdash_assets_loaded', 'true'); localStorage.setItem('webdash_last_load_time', Date.now().toString()); this.scene.start("GameScene"); diff --git a/assets/scripts/core/main.js b/assets/scripts/core/main.js index 4106d94d..ec1667e9 100644 --- a/assets/scripts/core/main.js +++ b/assets/scripts/core/main.js @@ -38,29 +38,36 @@ if (window.gameCache) { }, 3000); } } + + +// Fixed full-screen flex wrapper as the Phaser parent. Flexbox centering is +// completely immune to anything ScaleManager writes to canvas inline styles, +// so the game stays centered through scene restarts and resize callbacks. +var _gameWrapper = document.createElement('div'); +_gameWrapper.style.cssText = 'position:fixed;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#000;pointer-events:none;'; +document.body.appendChild(_gameWrapper); + const phaserConfig = { type: Phaser.AUTO, width: screenWidth, height: screenHeight, - resolution: 1, - fps: { - smoothStep: true - }, + fps: { smoothStep: true }, backgroundColor: "#000000", - parent: document.body, - input: { - windowEvents: false - }, - render: { - powerPreference: "default" - }, + parent: _gameWrapper, + input: { windowEvents: false }, + render: { powerPreference: "default" }, scale: { mode: Phaser.Scale.FIT, - autoCenter: Phaser.Scale.CENTER_BOTH + autoCenter: Phaser.Scale.NO_CENTER }, scene: [BootScene, GameScene] }; -new Phaser.Game(phaserConfig); +const _phaserGame = new Phaser.Game(phaserConfig); + +// Re-enable pointer events on the canvas (wrapper has pointer-events:none). +_phaserGame.events.once('ready', function () { + _phaserGame.canvas.style.pointerEvents = 'auto'; +}); window.clearGameCache = () => { if (window.gameCache) { diff --git a/assets/scripts/core/player.js b/assets/scripts/core/player.js index 33c1a283..6f0e0f1e 100644 --- a/assets/scripts/core/player.js +++ b/assets/scripts/core/player.js @@ -4387,7 +4387,7 @@ _updateWaveJump(dt) { drawHitboxes(graphics, camX, camY) { graphics.clear(); const playerSize = this.p.isMini ? 18 : 30; - const hitboxsize = playerSize*2; + const hitboxsize = playerSize*2*(window.hitboxMultiplier || 1); const isFlipped = this.p.mirrored; const camXCenter = camX + centerX; const playerY = this.p.y; diff --git a/assets/scripts/utils/cache-manager.js b/assets/scripts/utils/cache-manager.js index 1f2d1589..62f08d1f 100644 --- a/assets/scripts/utils/cache-manager.js +++ b/assets/scripts/utils/cache-manager.js @@ -2,7 +2,7 @@ class GameCacheManager { constructor() { this.CACHE_PREFIX = 'webdash_cache_'; this.CACHE_VERSION_KEY = 'webdash_cache_version'; - this.CACHE_VERSION = '1.0.0'; + this.CACHE_VERSION = '1.0.6'; this.CACHE_EXPIRY = 7 * 24 * 60 * 60 * 1000; this.cachedFiles = new Map(); this.loadingPromises = new Map(); diff --git a/assets/sheets/GJ_GameSheet-uhd-packed.json b/assets/sheets/GJ_GameSheet-uhd-packed.json new file mode 100644 index 00000000..ba250dd4 --- /dev/null +++ b/assets/sheets/GJ_GameSheet-uhd-packed.json @@ -0,0 +1 @@ +{"sheet": "GJ_GameSheet-uhd-packed.png", "size": {"w": 4918, "h": 4658}, "frames": {"d_flashRing_01_001.png": {"x": 0, "y": 0, "w": 118, "h": 520}, "d_rotatingBall_01_001.png": {"x": 120, "y": 0, "w": 100, "h": 476}, "d_rotatingLine_01_001.png": {"x": 222, "y": 0, "w": 24, "h": 476}, "d_rotatingSquare_01_001.png": {"x": 248, "y": 0, "w": 24, "h": 476}, "d_ringSeg_01_001.png": {"x": 274, "y": 0, "w": 454, "h": 454}, "d_flashRing_02_001.png": {"x": 730, "y": 0, "w": 64, "h": 426}, "d_rotatingLine_02_001.png": {"x": 796, "y": 0, "w": 20, "h": 384}, "d_rotatingSquare_02_001.png": {"x": 818, "y": 0, "w": 20, "h": 384}, "d_rotatingBall_02_001.png": {"x": 840, "y": 0, "w": 86, "h": 382}, "d_roundCloud_01_001.png": {"x": 928, "y": 0, "w": 378, "h": 378}, "d_ringSeg_02_001.png": {"x": 1308, "y": 0, "w": 356, "h": 356}, "blade_b_01_001.png": {"x": 1666, "y": 0, "w": 338, "h": 340}, "darkblade_01_001.png": {"x": 2006, "y": 0, "w": 338, "h": 340}, "blade_01_001.png": {"x": 2346, "y": 0, "w": 336, "h": 338}, "pit_b_02_001.png": {"x": 2684, "y": 0, "w": 191, "h": 338}, "sawblade_01_001.png": {"x": 2877, "y": 0, "w": 334, "h": 328}, "d_flashRing_03_001.png": {"x": 3213, "y": 0, "w": 26, "h": 324}, "blackCogwheel_01_001.png": {"x": 3241, "y": 0, "w": 320, "h": 320}, "d_wheel_01_001.png": {"x": 3563, "y": 0, "w": 320, "h": 320}, "lightBlade_01_001.png": {"x": 3885, "y": 0, "w": 316, "h": 318}, "blackCogwheel_01_color_001.png": {"x": 4203, "y": 0, "w": 308, "h": 310}, "spinBlade01_001.png": {"x": 4513, "y": 0, "w": 294, "h": 304}, "lightBlade_01_color_001.png": {"x": 0, "y": 522, "w": 302, "h": 302}, "pit_b_01_001.png": {"x": 304, "y": 522, "w": 197, "h": 292}, "pit_b_03_001.png": {"x": 503, "y": 522, "w": 167, "h": 292}, "d_cogwheel_01_001.png": {"x": 672, "y": 522, "w": 280, "h": 280}, "d_geometric_01_001.png": {"x": 954, "y": 522, "w": 321, "h": 280}, "chain_01_001.png": {"x": 1277, "y": 522, "w": 78, "h": 278}, "d_spikewheel_01_001.png": {"x": 1357, "y": 522, "w": 278, "h": 278}, "blade_b_02_001.png": {"x": 1637, "y": 522, "w": 240, "h": 276}, "d_rotatingBall_03_001.png": {"x": 1879, "y": 522, "w": 74, "h": 276}, "d_rotatingLine_03_001.png": {"x": 1955, "y": 522, "w": 16, "h": 276}, "d_rotatingSquare_03_001.png": {"x": 1973, "y": 522, "w": 16, "h": 276}, "spinBlade01_color_001.png": {"x": 1991, "y": 522, "w": 188, "h": 272}, "d_rainbow_02_001.png": {"x": 2181, "y": 522, "w": 1030, "h": 268}, "d_02_chain_01_001.png": {"x": 3213, "y": 522, "w": 108, "h": 262}, "d_ringSeg_03_001.png": {"x": 3323, "y": 522, "w": 260, "h": 258}, "d_roundCloud_02_001.png": {"x": 3585, "y": 522, "w": 228, "h": 254}, "darkblade_02_001.png": {"x": 3815, "y": 522, "w": 218, "h": 252}, "blade_02_001.png": {"x": 4035, "y": 522, "w": 243, "h": 242}, "d_pillar_01_001.png": {"x": 4280, "y": 522, "w": 190, "h": 240}, "sawblade_02_001.png": {"x": 4472, "y": 522, "w": 240, "h": 240}, "d_cogwheel_02_001.png": {"x": 0, "y": 826, "w": 214, "h": 218}, "lightBlade_02_001.png": {"x": 216, "y": 826, "w": 206, "h": 218}, "d_spikewheel_02_001.png": {"x": 424, "y": 826, "w": 188, "h": 216}, "pit_b_04_001.png": {"x": 614, "y": 826, "w": 159, "h": 216}, "d_cartwheel_01_001.png": {"x": 775, "y": 826, "w": 215, "h": 215}, "blackCogwheel_02_001.png": {"x": 992, "y": 826, "w": 206, "h": 210}, "d_wheel_02_001.png": {"x": 1200, "y": 826, "w": 204, "h": 204}, "lightBlade_02_color_001.png": {"x": 1406, "y": 826, "w": 194, "h": 204}, "d_circle_01_001.png": {"x": 1602, "y": 826, "w": 200, "h": 200}, "d_circle_02_001.png": {"x": 1804, "y": 826, "w": 200, "h": 200}, "spinBlade02_001.png": {"x": 2006, "y": 826, "w": 196, "h": 200}, "blackCogwheel_02_color_001.png": {"x": 2204, "y": 826, "w": 196, "h": 198}, "d_art_02_001.png": {"x": 2402, "y": 826, "w": 56, "h": 196}, "d_qmark_01_001.png": {"x": 2460, "y": 826, "w": 136, "h": 188}, "d_exmark_01_001.png": {"x": 2598, "y": 826, "w": 56, "h": 186}, "d_thorn_06_001.png": {"x": 2656, "y": 826, "w": 188, "h": 186}, "d_rotatingBall_04_001.png": {"x": 2846, "y": 826, "w": 54, "h": 184}, "d_rotatingLine_04_001.png": {"x": 2902, "y": 826, "w": 12, "h": 184}, "d_rotatingSquare_04_001.png": {"x": 2916, "y": 826, "w": 12, "h": 184}, "edit_eParticleBtn_001.png": {"x": 2930, "y": 826, "w": 100, "h": 184}, "spinBlade02_color_001.png": {"x": 3032, "y": 826, "w": 84, "h": 184}, "puzzle_piece_02_001.png": {"x": 3118, "y": 826, "w": 52, "h": 182}, "d_ringSpiral_01_001.png": {"x": 3172, "y": 826, "w": 206, "h": 178}, "d_arrow_02_001.png": {"x": 3380, "y": 826, "w": 114, "h": 176}, "d_arrow_03_001.png": {"x": 3496, "y": 826, "w": 88, "h": 176}, "d_cloud_04_001.png": {"x": 3586, "y": 826, "w": 458, "h": 176}, "d_cross_01_001.png": {"x": 4046, "y": 826, "w": 176, "h": 176}, "d_pickupCircle_01_001.png": {"x": 4224, "y": 826, "w": 176, "h": 176}, "d_pickupCircle_02_001.png": {"x": 4402, "y": 826, "w": 176, "h": 176}, "darkblade_03_001.png": {"x": 4580, "y": 826, "w": 172, "h": 172}, "block011_light_01_001.png": {"x": 4754, "y": 826, "w": 58, "h": 170}, "puzzle_piece_02_color_001.png": {"x": 4814, "y": 826, "w": 52, "h": 170}, "blade_03_001.png": {"x": 0, "y": 1046, "w": 168, "h": 168}, "block011_light_16_001.png": {"x": 170, "y": 1046, "w": 144, "h": 168}, "block011_light_20_001.png": {"x": 316, "y": 1046, "w": 144, "h": 168}, "blockOutlineOuter3_01_001.png": {"x": 462, "y": 1046, "w": 169, "h": 168}, "d_geometric_02_001.png": {"x": 633, "y": 1046, "w": 194, "h": 168}, "rod_01_001.png": {"x": 829, "y": 1046, "w": 26, "h": 168}, "block011_light_03_001.png": {"x": 857, "y": 1046, "w": 76, "h": 166}, "block011_light_19_001.png": {"x": 935, "y": 1046, "w": 120, "h": 166}, "d_spikes_01_001.png": {"x": 1057, "y": 1046, "w": 512, "h": 166}, "d_artCloud_02_001.png": {"x": 1571, "y": 1046, "w": 310, "h": 164}, "blade_b_03_001.png": {"x": 1883, "y": 1046, "w": 38, "h": 160}, "d_brick_01_001.png": {"x": 1923, "y": 1046, "w": 498, "h": 160}, "d_largeSquare_01_001.png": {"x": 2423, "y": 1046, "w": 160, "h": 160}, "d_largeSquare_02_001.png": {"x": 2585, "y": 1046, "w": 160, "h": 160}, "d_ringSeg_04_001.png": {"x": 2747, "y": 1046, "w": 160, "h": 160}, "d_sign_pole_001.png": {"x": 2909, "y": 1046, "w": 32, "h": 160}, "d_spikeart_01_001.png": {"x": 2943, "y": 1046, "w": 48, "h": 160}, "d_spiral_01_001.png": {"x": 2993, "y": 1046, "w": 160, "h": 160}, "persp_outline_08_001.png": {"x": 3155, "y": 1046, "w": 280, "h": 160}, "persp_outline_09_001.png": {"x": 3437, "y": 1046, "w": 160, "h": 160}, "block011_01_001.png": {"x": 3599, "y": 1046, "w": 134, "h": 158}, "block011_light_13_001.png": {"x": 3735, "y": 1046, "w": 154, "h": 158}, "block011_light_17_001.png": {"x": 3891, "y": 1046, "w": 154, "h": 158}, "sawblade_03_001.png": {"x": 4047, "y": 1046, "w": 159, "h": 158}, "blackCogwheel_03_001.png": {"x": 4208, "y": 1046, "w": 156, "h": 156}, "block011_02_001.png": {"x": 4366, "y": 1046, "w": 122, "h": 156}, "block011_edge_01_001.png": {"x": 4490, "y": 1046, "w": 50, "h": 156}, "block011_edge_03_001.png": {"x": 4542, "y": 1046, "w": 68, "h": 156}, "d_spikewheel_03_001.png": {"x": 4612, "y": 1046, "w": 38, "h": 156}, "spiderRing_001.png": {"x": 4652, "y": 1046, "w": 156, "h": 156}, "d_cloud_01_001.png": {"x": 0, "y": 1216, "w": 460, "h": 154}, "d_pillar_02_001.png": {"x": 462, "y": 1216, "w": 144, "h": 154}, "d_02_chain_02_001.png": {"x": 608, "y": 1216, "w": 108, "h": 152}, "d_cogwheel_03_001.png": {"x": 718, "y": 1216, "w": 150, "h": 150}, "d_sign_pole_color_001.png": {"x": 870, "y": 1216, "w": 24, "h": 150}, "block011_04_001.png": {"x": 896, "y": 1216, "w": 144, "h": 148}, "d_roundCloud_03_001.png": {"x": 1042, "y": 1216, "w": 144, "h": 148}, "d_spikes_02_001.png": {"x": 1188, "y": 1216, "w": 416, "h": 146}, "teleportRing_001.png": {"x": 1606, "y": 1216, "w": 146, "h": 146}, "blackCogwheel_03_color_001.png": {"x": 1754, "y": 1216, "w": 144, "h": 144}, "blockOutlineOuter2_01_001.png": {"x": 1900, "y": 1216, "w": 144, "h": 144}, "d_cartwheel_02_001.png": {"x": 2046, "y": 1216, "w": 145, "h": 144}, "lightBlade_03_001.png": {"x": 2193, "y": 1216, "w": 144, "h": 144}, "block008_topcolor_22_001.png": {"x": 2339, "y": 1216, "w": 34, "h": 142}, "block008_topcolor_25_001.png": {"x": 2375, "y": 1216, "w": 56, "h": 142}, "block011_04_color_001.png": {"x": 2433, "y": 1216, "w": 138, "h": 142}, "d_brick_02_001.png": {"x": 2573, "y": 1216, "w": 344, "h": 140}, "d_artCloud_01_001.png": {"x": 2919, "y": 1216, "w": 242, "h": 138}, "dashRing_01_001.png": {"x": 3163, "y": 1216, "w": 155, "h": 138}, "dashRing_02_001.png": {"x": 3320, "y": 1216, "w": 155, "h": 138}, "block008_topcolor_26_001.png": {"x": 3477, "y": 1216, "w": 34, "h": 136}, "d_chain_02_001.png": {"x": 3513, "y": 1216, "w": 78, "h": 136}, "d_rainbow_01_001.png": {"x": 3593, "y": 1216, "w": 514, "h": 136}, "block008_topcolor_23_001.png": {"x": 4109, "y": 1216, "w": 20, "h": 134}, "block008_topcolor_27_001.png": {"x": 4131, "y": 1216, "w": 32, "h": 134}, "d_arrow_01_001.png": {"x": 4165, "y": 1216, "w": 186, "h": 134}, "lightBlade_03_color_001.png": {"x": 4353, "y": 1216, "w": 134, "h": 134}, "block009b_08_001.png": {"x": 4489, "y": 1216, "w": 120, "h": 132}, "block011_02_color_001.png": {"x": 4611, "y": 1216, "w": 122, "h": 132}, "block011_edge_01_color_001.png": {"x": 4735, "y": 1216, "w": 50, "h": 132}, "blockOutlineOuter1_01_001.png": {"x": 0, "y": 1372, "w": 132, "h": 132}, "blockOutlineThickb_08_001.png": {"x": 134, "y": 1372, "w": 120, "h": 132}, "dropRing_01_001.png": {"x": 256, "y": 1372, "w": 130, "h": 130}, "block011_01_color_001.png": {"x": 388, "y": 1372, "w": 122, "h": 128}, "blockOutline_15_corner01_001.png": {"x": 512, "y": 1372, "w": 241, "h": 128}, "d_cloud_02_001.png": {"x": 755, "y": 1372, "w": 320, "h": 128}, "gradientBar.png": {"x": 1077, "y": 1372, "w": 128, "h": 128}, "d_cloud_03_001.png": {"x": 1207, "y": 1372, "w": 316, "h": 126}, "d_thorn_02_001.png": {"x": 1525, "y": 1372, "w": 70, "h": 126}, "ring_02_001.png": {"x": 1597, "y": 1372, "w": 126, "h": 126}, "block007_bgcolor_009_001.png": {"x": 1725, "y": 1372, "w": 136, "h": 124}, "d_art_01_001.png": {"x": 1863, "y": 1372, "w": 56, "h": 124}, "d_grassDetail_01_001.png": {"x": 1921, "y": 1372, "w": 98, "h": 124}, "triangle_b_02_001.png": {"x": 2021, "y": 1372, "w": 269, "h": 124}, "block011_03_001.png": {"x": 2292, "y": 1372, "w": 122, "h": 122}, "block011_03_color_001.png": {"x": 2416, "y": 1372, "w": 122, "h": 122}, "block011_edge_02_001.png": {"x": 2540, "y": 1372, "w": 50, "h": 122}, "block011_edge_02_color_001.png": {"x": 2592, "y": 1372, "w": 50, "h": 122}, "block011_edge_04_001.png": {"x": 2644, "y": 1372, "w": 68, "h": 122}, "block011_light_02_001.png": {"x": 2714, "y": 1372, "w": 58, "h": 122}, "block011_light_04_001.png": {"x": 2774, "y": 1372, "w": 76, "h": 122}, "block001_01_001.png": {"x": 2852, "y": 1372, "w": 120, "h": 120}, "block001_02_001.png": {"x": 2974, "y": 1372, "w": 120, "h": 120}, "block001_03_001.png": {"x": 3096, "y": 1372, "w": 120, "h": 120}, "block001_03_color_001.png": {"x": 3218, "y": 1372, "w": 38, "h": 120}, "block001_04_001.png": {"x": 3258, "y": 1372, "w": 120, "h": 120}, "block001_04_color_001.png": {"x": 3380, "y": 1372, "w": 120, "h": 120}, "block001_05_001.png": {"x": 3502, "y": 1372, "w": 120, "h": 120}, "block001_05_color_001.png": {"x": 3624, "y": 1372, "w": 38, "h": 120}, "block001_06_001.png": {"x": 3664, "y": 1372, "w": 120, "h": 120}, "block001_06_color_001.png": {"x": 3786, "y": 1372, "w": 120, "h": 120}, "block001_07_001.png": {"x": 3908, "y": 1372, "w": 120, "h": 120}, "block001_07_color_001.png": {"x": 4030, "y": 1372, "w": 120, "h": 120}, "block001_slope_01_001.png": {"x": 4152, "y": 1372, "w": 120, "h": 120}, "block001_slope_01_color_001.png": {"x": 4274, "y": 1372, "w": 120, "h": 120}, "block001_slope_02_001.png": {"x": 4396, "y": 1372, "w": 240, "h": 120}, "block001_slope_02_color_001.png": {"x": 4638, "y": 1372, "w": 240, "h": 120}, "block002_01_001.png": {"x": 0, "y": 1506, "w": 120, "h": 120}, "block002_01_color_001.png": {"x": 122, "y": 1506, "w": 120, "h": 120}, "block002_02_001.png": {"x": 244, "y": 1506, "w": 120, "h": 120}, "block002_02_color_001.png": {"x": 366, "y": 1506, "w": 120, "h": 120}, "block002_03_001.png": {"x": 488, "y": 1506, "w": 120, "h": 120}, "block002_03_color_001.png": {"x": 610, "y": 1506, "w": 120, "h": 120}, "block002_04_001.png": {"x": 732, "y": 1506, "w": 120, "h": 120}, "block002_04_color_001.png": {"x": 854, "y": 1506, "w": 120, "h": 120}, "block002_05_001.png": {"x": 976, "y": 1506, "w": 120, "h": 120}, "block002_05_color_001.png": {"x": 1098, "y": 1506, "w": 120, "h": 120}, "block002_06_001.png": {"x": 1220, "y": 1506, "w": 120, "h": 120}, "block002_06_color_001.png": {"x": 1342, "y": 1506, "w": 120, "h": 120}, "block002_07_001.png": {"x": 1464, "y": 1506, "w": 120, "h": 120}, "block002_07_color_001.png": {"x": 1586, "y": 1506, "w": 120, "h": 120}, "block002_slope_01_001.png": {"x": 1708, "y": 1506, "w": 120, "h": 120}, "block002_slope_01_color_001.png": {"x": 1830, "y": 1506, "w": 120, "h": 120}, "block002_slope_02_001.png": {"x": 1952, "y": 1506, "w": 240, "h": 120}, "block002_slope_02_color_001.png": {"x": 2194, "y": 1506, "w": 240, "h": 120}, "block003_color_01_001.png": {"x": 2436, "y": 1506, "w": 120, "h": 120}, "block003_color_02_001.png": {"x": 2558, "y": 1506, "w": 120, "h": 120}, "block003_color_03_001.png": {"x": 2680, "y": 1506, "w": 120, "h": 120}, "block003_color_04_001.png": {"x": 2802, "y": 1506, "w": 60, "h": 120}, "block003_color_06_001.png": {"x": 2864, "y": 1506, "w": 60, "h": 120}, "block003_part01_001.png": {"x": 2926, "y": 1506, "w": 120, "h": 120}, "block003_part02_001.png": {"x": 3048, "y": 1506, "w": 120, "h": 120}, "block003_part03_001.png": {"x": 3170, "y": 1506, "w": 120, "h": 120}, "block003_part04_001.png": {"x": 3292, "y": 1506, "w": 120, "h": 120}, "block003_part05_001.png": {"x": 3414, "y": 1506, "w": 120, "h": 120}, "block003_part06_001.png": {"x": 3536, "y": 1506, "w": 120, "h": 120}, "block003_slope_01_001.png": {"x": 3658, "y": 1506, "w": 120, "h": 120}, "block003_slope_01_color_001.png": {"x": 3780, "y": 1506, "w": 120, "h": 120}, "block003_slope_02_001.png": {"x": 3902, "y": 1506, "w": 240, "h": 120}, "block003_slope_02_color_001.png": {"x": 4144, "y": 1506, "w": 240, "h": 120}, "block004_slope_01_001.png": {"x": 4386, "y": 1506, "w": 120, "h": 120}, "block004_slope_01b_001.png": {"x": 4508, "y": 1506, "w": 120, "h": 120}, "block004_slope_01c_001.png": {"x": 4630, "y": 1506, "w": 120, "h": 120}, "block004_slope_01d_001.png": {"x": 4752, "y": 1506, "w": 120, "h": 120}, "block004_slope_02_001.png": {"x": 0, "y": 1628, "w": 240, "h": 120}, "block004_slope_02b_001.png": {"x": 242, "y": 1628, "w": 240, "h": 120}, "block004_slope_02c_001.png": {"x": 484, "y": 1628, "w": 240, "h": 120}, "block004_slope_02d_001.png": {"x": 726, "y": 1628, "w": 240, "h": 120}, "block005_02_001.png": {"x": 968, "y": 1628, "w": 120, "h": 120}, "block005_02_color_001.png": {"x": 1090, "y": 1628, "w": 120, "h": 120}, "block005_02b_001.png": {"x": 1212, "y": 1628, "w": 120, "h": 120}, "block005_03_001.png": {"x": 1334, "y": 1628, "w": 120, "h": 120}, "block005_03_color_001.png": {"x": 1456, "y": 1628, "w": 120, "h": 120}, "block005_04_001.png": {"x": 1578, "y": 1628, "w": 120, "h": 120}, "block005_04_color_001.png": {"x": 1700, "y": 1628, "w": 120, "h": 120}, "block005_04b_001.png": {"x": 1822, "y": 1628, "w": 120, "h": 120}, "block005_05_001.png": {"x": 1944, "y": 1628, "w": 120, "h": 120}, "block005_06_001.png": {"x": 2066, "y": 1628, "w": 56, "h": 120}, "block005_06_color_001.png": {"x": 2124, "y": 1628, "w": 120, "h": 120}, "block005_07_001.png": {"x": 2246, "y": 1628, "w": 56, "h": 120}, "block005_07_color_001.png": {"x": 2304, "y": 1628, "w": 120, "h": 120}, "block005_08_001.png": {"x": 2426, "y": 1628, "w": 120, "h": 120}, "block005_09_color_001.png": {"x": 2548, "y": 1628, "w": 120, "h": 120}, "block005_10_001.png": {"x": 2670, "y": 1628, "w": 120, "h": 120}, "block005_10_color_001.png": {"x": 2792, "y": 1628, "w": 120, "h": 120}, "block005_11_001.png": {"x": 2914, "y": 1628, "w": 120, "h": 120}, "block005_11_color_001.png": {"x": 3036, "y": 1628, "w": 120, "h": 120}, "block005_12_001.png": {"x": 3158, "y": 1628, "w": 120, "h": 120}, "block005_13_001.png": {"x": 3280, "y": 1628, "w": 120, "h": 120}, "block005_16_001.png": {"x": 3402, "y": 1628, "w": 120, "h": 120}, "block005_slope_01_001.png": {"x": 3524, "y": 1628, "w": 120, "h": 120}, "block005_slope_01_color_001.png": {"x": 3646, "y": 1628, "w": 120, "h": 120}, "block005_slope_02_001.png": {"x": 3768, "y": 1628, "w": 240, "h": 120}, "block005_slope_02_color_001.png": {"x": 4010, "y": 1628, "w": 240, "h": 120}, "block005_slope_03_001.png": {"x": 4252, "y": 1628, "w": 120, "h": 120}, "block005_slope_03_color_001.png": {"x": 4374, "y": 1628, "w": 120, "h": 120}, "block005_slope_04_001.png": {"x": 4496, "y": 1628, "w": 240, "h": 120}, "block005_slope_04_color_001.png": {"x": 0, "y": 1750, "w": 240, "h": 120}, "block005_slope_05_001.png": {"x": 242, "y": 1750, "w": 120, "h": 120}, "block005_slope_06_001.png": {"x": 364, "y": 1750, "w": 240, "h": 120}, "block005_slope_square_01_001.png": {"x": 606, "y": 1750, "w": 120, "h": 120}, "block005_slope_square_01_color_001.png": {"x": 728, "y": 1750, "w": 120, "h": 120}, "block005_slope_square_02_001.png": {"x": 850, "y": 1750, "w": 120, "h": 120}, "block005_slope_square_02_color_001.png": {"x": 972, "y": 1750, "w": 120, "h": 120}, "block005_slope_square_03_001.png": {"x": 1094, "y": 1750, "w": 120, "h": 120}, "block005_slope_square_04_001.png": {"x": 1216, "y": 1750, "w": 120, "h": 120}, "block005_slope_square_04_color_001.png": {"x": 1338, "y": 1750, "w": 120, "h": 120}, "block005_slope_square_05_001.png": {"x": 1460, "y": 1750, "w": 120, "h": 120}, "block005_slope_square_05_color_001.png": {"x": 1582, "y": 1750, "w": 120, "h": 120}, "block005b_02_001.png": {"x": 1704, "y": 1750, "w": 120, "h": 120}, "block005b_02_color_001.png": {"x": 1826, "y": 1750, "w": 120, "h": 120}, "block005b_02b_001.png": {"x": 1948, "y": 1750, "w": 120, "h": 120}, "block005b_03_001.png": {"x": 2070, "y": 1750, "w": 120, "h": 120}, "block005b_03_color_001.png": {"x": 2192, "y": 1750, "w": 120, "h": 120}, "block005b_04_001.png": {"x": 2314, "y": 1750, "w": 120, "h": 120}, "block005b_04_color_001.png": {"x": 2436, "y": 1750, "w": 120, "h": 120}, "block005b_04b_001.png": {"x": 2558, "y": 1750, "w": 120, "h": 120}, "block005b_05_001.png": {"x": 2680, "y": 1750, "w": 120, "h": 120}, "block005b_06_001.png": {"x": 2802, "y": 1750, "w": 56, "h": 120}, "block005b_06_color_001.png": {"x": 2860, "y": 1750, "w": 120, "h": 120}, "block005b_07_001.png": {"x": 2982, "y": 1750, "w": 56, "h": 120}, "block005b_07_color_001.png": {"x": 3040, "y": 1750, "w": 120, "h": 120}, "block005b_08_001.png": {"x": 3162, "y": 1750, "w": 120, "h": 120}, "block005b_09_color_001.png": {"x": 3284, "y": 1750, "w": 120, "h": 120}, "block005b_10_001.png": {"x": 3406, "y": 1750, "w": 120, "h": 120}, "block005b_10_color_001.png": {"x": 3528, "y": 1750, "w": 120, "h": 120}, "block005b_11_001.png": {"x": 3650, "y": 1750, "w": 120, "h": 120}, "block005b_11_color_001.png": {"x": 3772, "y": 1750, "w": 120, "h": 120}, "block005b_12_001.png": {"x": 3894, "y": 1750, "w": 120, "h": 120}, "block005b_13_001.png": {"x": 4016, "y": 1750, "w": 120, "h": 120}, "block005b_16_001.png": {"x": 4138, "y": 1750, "w": 120, "h": 120}, "block005b_slope_01_001.png": {"x": 4260, "y": 1750, "w": 120, "h": 120}, "block005b_slope_01_color_001.png": {"x": 4382, "y": 1750, "w": 120, "h": 120}, "block005b_slope_02_001.png": {"x": 4504, "y": 1750, "w": 240, "h": 120}, "block005b_slope_02_color_001.png": {"x": 0, "y": 1872, "w": 240, "h": 120}, "block005b_slope_03_001.png": {"x": 242, "y": 1872, "w": 120, "h": 120}, "block005b_slope_03_color_001.png": {"x": 364, "y": 1872, "w": 120, "h": 120}, "block005b_slope_04_001.png": {"x": 486, "y": 1872, "w": 240, "h": 120}, "block005b_slope_04_color_001.png": {"x": 728, "y": 1872, "w": 240, "h": 120}, "block005b_slope_05_001.png": {"x": 970, "y": 1872, "w": 120, "h": 120}, "block005b_slope_06_001.png": {"x": 1092, "y": 1872, "w": 240, "h": 120}, "block005b_slope_square_01_001.png": {"x": 1334, "y": 1872, "w": 120, "h": 120}, "block005b_slope_square_01_color_001.png": {"x": 1456, "y": 1872, "w": 120, "h": 120}, "block005b_slope_square_02_001.png": {"x": 1578, "y": 1872, "w": 120, "h": 120}, "block005b_slope_square_02_color_001.png": {"x": 1700, "y": 1872, "w": 120, "h": 120}, "block005b_slope_square_03_001.png": {"x": 1822, "y": 1872, "w": 120, "h": 120}, "block005b_slope_square_04_001.png": {"x": 1944, "y": 1872, "w": 120, "h": 120}, "block005b_slope_square_04_color_001.png": {"x": 2066, "y": 1872, "w": 120, "h": 120}, "block005b_slope_square_05_001.png": {"x": 2188, "y": 1872, "w": 120, "h": 120}, "block005b_slope_square_05_color_001.png": {"x": 2310, "y": 1872, "w": 120, "h": 120}, "block005c_03_001.png": {"x": 2432, "y": 1872, "w": 120, "h": 120}, "block005c_04_001.png": {"x": 2554, "y": 1872, "w": 120, "h": 120}, "block005c_06_001.png": {"x": 2676, "y": 1872, "w": 58, "h": 120}, "block005c_slope_01_001.png": {"x": 2736, "y": 1872, "w": 120, "h": 120}, "block005c_slope_02_001.png": {"x": 2858, "y": 1872, "w": 240, "h": 120}, "block005c_slope_square_01_001.png": {"x": 3100, "y": 1872, "w": 120, "h": 120}, "block005c_slope_square_02_001.png": {"x": 3222, "y": 1872, "w": 120, "h": 120}, "block005c_slope_square_03_001.png": {"x": 3344, "y": 1872, "w": 120, "h": 120}, "block006_01_001.png": {"x": 3466, "y": 1872, "w": 120, "h": 120}, "block006_02_001.png": {"x": 3588, "y": 1872, "w": 120, "h": 120}, "block006_03_001.png": {"x": 3710, "y": 1872, "w": 60, "h": 120}, "block006_04_001.png": {"x": 3772, "y": 1872, "w": 60, "h": 120}, "block006_05_001.png": {"x": 3834, "y": 1872, "w": 120, "h": 120}, "block006_06_001.png": {"x": 3956, "y": 1872, "w": 120, "h": 120}, "block006_07_001.png": {"x": 4078, "y": 1872, "w": 120, "h": 120}, "block006_08_001.png": {"x": 4200, "y": 1872, "w": 120, "h": 120}, "block006_10_001.png": {"x": 4322, "y": 1872, "w": 120, "h": 120}, "block006_11_001.png": {"x": 4444, "y": 1872, "w": 120, "h": 120}, "block006_12_001.png": {"x": 4566, "y": 1872, "w": 120, "h": 120}, "block006_14_001.png": {"x": 4688, "y": 1872, "w": 60, "h": 120}, "block006_16_001.png": {"x": 4750, "y": 1872, "w": 120, "h": 120}, "block006_17_001.png": {"x": 0, "y": 1994, "w": 120, "h": 120}, "block006_18_001.png": {"x": 122, "y": 1994, "w": 120, "h": 120}, "block006_19_001.png": {"x": 244, "y": 1994, "w": 120, "h": 120}, "block006_20_001.png": {"x": 366, "y": 1994, "w": 120, "h": 120}, "block006_21_001.png": {"x": 488, "y": 1994, "w": 120, "h": 120}, "block006_22_001.png": {"x": 610, "y": 1994, "w": 120, "h": 120}, "block006_23_001.png": {"x": 732, "y": 1994, "w": 120, "h": 120}, "block006_24_001.png": {"x": 854, "y": 1994, "w": 120, "h": 120}, "block006_25_001.png": {"x": 976, "y": 1994, "w": 120, "h": 120}, "block006_26_001.png": {"x": 1098, "y": 1994, "w": 120, "h": 120}, "block006_color_01_001.png": {"x": 1220, "y": 1994, "w": 120, "h": 120}, "block006_color_02_001.png": {"x": 1342, "y": 1994, "w": 120, "h": 120}, "block006_color_03_001.png": {"x": 1464, "y": 1994, "w": 120, "h": 120}, "block006_color_04_001.png": {"x": 1586, "y": 1994, "w": 120, "h": 120}, "block006_color_06_001.png": {"x": 1708, "y": 1994, "w": 120, "h": 120}, "block006_slope_01_001.png": {"x": 1830, "y": 1994, "w": 120, "h": 120}, "block006_slope_01_color_001.png": {"x": 1952, "y": 1994, "w": 120, "h": 120}, "block006_slope_02_001.png": {"x": 2074, "y": 1994, "w": 240, "h": 120}, "block006_slope_02_color_001.png": {"x": 2316, "y": 1994, "w": 240, "h": 120}, "block006_slope_square_01_001.png": {"x": 2558, "y": 1994, "w": 120, "h": 120}, "block006_slope_square_01_color_001.png": {"x": 2680, "y": 1994, "w": 120, "h": 120}, "block006_slope_square_02_001.png": {"x": 2802, "y": 1994, "w": 120, "h": 120}, "block006_slope_square_02_color_001.png": {"x": 2924, "y": 1994, "w": 120, "h": 120}, "block006_slope_square_03_001.png": {"x": 3046, "y": 1994, "w": 120, "h": 120}, "block006_slope_square_04_001.png": {"x": 3168, "y": 1994, "w": 120, "h": 120}, "block007_01_001.png": {"x": 3290, "y": 1994, "w": 120, "h": 120}, "block007_02_001.png": {"x": 3412, "y": 1994, "w": 120, "h": 120}, "block007_03_001.png": {"x": 3534, "y": 1994, "w": 120, "h": 120}, "block007_04_001.png": {"x": 3656, "y": 1994, "w": 120, "h": 120}, "block007_05_001.png": {"x": 3778, "y": 1994, "w": 120, "h": 120}, "block007_06_001.png": {"x": 3900, "y": 1994, "w": 120, "h": 120}, "block007_07_001.png": {"x": 4022, "y": 1994, "w": 120, "h": 120}, "block007_08_001.png": {"x": 4144, "y": 1994, "w": 120, "h": 120}, "block007_09_001.png": {"x": 4266, "y": 1994, "w": 120, "h": 120}, "block007_corner_001.png": {"x": 4388, "y": 1994, "w": 120, "h": 120}, "block007_slope_01_001.png": {"x": 4510, "y": 1994, "w": 120, "h": 120}, "block007_slope_01_color_001.png": {"x": 4632, "y": 1994, "w": 108, "h": 120}, "block007_slope_02_001.png": {"x": 0, "y": 2116, "w": 240, "h": 120}, "block007_slope_02_color_001.png": {"x": 242, "y": 2116, "w": 218, "h": 120}, "block007_slope_square_01_001.png": {"x": 462, "y": 2116, "w": 120, "h": 120}, "block007_slope_square_01_color_001.png": {"x": 584, "y": 2116, "w": 114, "h": 120}, "block007_slope_square_02_001.png": {"x": 700, "y": 2116, "w": 120, "h": 120}, "block007_slope_square_02_color_001.png": {"x": 822, "y": 2116, "w": 118, "h": 120}, "block007b_01_001.png": {"x": 942, "y": 2116, "w": 120, "h": 120}, "block007b_01_color_001.png": {"x": 1064, "y": 2116, "w": 120, "h": 120}, "block007b_02_color_001.png": {"x": 1186, "y": 2116, "w": 120, "h": 120}, "block007b_03_001.png": {"x": 1308, "y": 2116, "w": 120, "h": 120}, "block007b_05_001.png": {"x": 1430, "y": 2116, "w": 120, "h": 120}, "block007b_05_color_001.png": {"x": 1552, "y": 2116, "w": 120, "h": 120}, "block007b_06_001.png": {"x": 1674, "y": 2116, "w": 120, "h": 120}, "block007b_06_color_001.png": {"x": 1796, "y": 2116, "w": 36, "h": 120}, "block007b_07_001.png": {"x": 1834, "y": 2116, "w": 120, "h": 120}, "block007b_08_001.png": {"x": 1956, "y": 2116, "w": 120, "h": 120}, "block007b_bgcolor_01_001.png": {"x": 2078, "y": 2116, "w": 120, "h": 120}, "block007b_bgcolor_02_001.png": {"x": 2200, "y": 2116, "w": 120, "h": 120}, "block007b_bgcolor_05_001.png": {"x": 2322, "y": 2116, "w": 120, "h": 120}, "block007b_bgcolor_06_001.png": {"x": 2444, "y": 2116, "w": 72, "h": 120}, "block008_topcolor_16_001.png": {"x": 2518, "y": 2116, "w": 120, "h": 120}, "block008_topcolor_18_001.png": {"x": 2640, "y": 2116, "w": 80, "h": 120}, "block008_topcolor_24b_001.png": {"x": 2722, "y": 2116, "w": 120, "h": 120}, "block009_01_001.png": {"x": 2844, "y": 2116, "w": 120, "h": 120}, "block009_02_001.png": {"x": 2966, "y": 2116, "w": 120, "h": 120}, "block009_03_001.png": {"x": 3088, "y": 2116, "w": 120, "h": 120}, "block009_04_001.png": {"x": 3210, "y": 2116, "w": 120, "h": 120}, "block009_05_001.png": {"x": 3332, "y": 2116, "w": 120, "h": 120}, "block009_06_001.png": {"x": 3454, "y": 2116, "w": 120, "h": 120}, "block009_07_001.png": {"x": 3576, "y": 2116, "w": 120, "h": 120}, "block009_08_001.png": {"x": 3698, "y": 2116, "w": 120, "h": 120}, "block009_slope_01_001.png": {"x": 3820, "y": 2116, "w": 120, "h": 120}, "block009_slope_02_001.png": {"x": 3942, "y": 2116, "w": 240, "h": 120}, "block009b_01_001.png": {"x": 4184, "y": 2116, "w": 120, "h": 120}, "block009b_01_color_001.png": {"x": 4306, "y": 2116, "w": 120, "h": 120}, "block009b_02_001.png": {"x": 4428, "y": 2116, "w": 120, "h": 120}, "block009b_02_color_001.png": {"x": 4550, "y": 2116, "w": 120, "h": 120}, "block009b_03_001.png": {"x": 4672, "y": 2116, "w": 120, "h": 120}, "block009b_03_color_001.png": {"x": 4794, "y": 2116, "w": 120, "h": 120}, "block009b_04_001.png": {"x": 0, "y": 2238, "w": 120, "h": 120}, "block009b_04_color_001.png": {"x": 122, "y": 2238, "w": 120, "h": 120}, "block009b_05_001.png": {"x": 244, "y": 2238, "w": 120, "h": 120}, "block009b_05_color_001.png": {"x": 366, "y": 2238, "w": 120, "h": 120}, "block009b_06_001.png": {"x": 488, "y": 2238, "w": 120, "h": 120}, "block009b_06_color_001.png": {"x": 610, "y": 2238, "w": 120, "h": 120}, "block009b_07_001.png": {"x": 732, "y": 2238, "w": 120, "h": 120}, "block009b_07_color_001.png": {"x": 854, "y": 2238, "w": 108, "h": 120}, "block009b_08_color_001.png": {"x": 964, "y": 2238, "w": 120, "h": 120}, "block009b_09_001.png": {"x": 1086, "y": 2238, "w": 120, "h": 120}, "block009b_09_color_001.png": {"x": 1208, "y": 2238, "w": 120, "h": 120}, "block009b_10_001.png": {"x": 1330, "y": 2238, "w": 120, "h": 120}, "block009b_slope_01_001.png": {"x": 1452, "y": 2238, "w": 120, "h": 120}, "block009b_slope_01_color_001.png": {"x": 1574, "y": 2238, "w": 120, "h": 120}, "block009b_slope_02_001.png": {"x": 1696, "y": 2238, "w": 240, "h": 120}, "block009b_slope_02_color_001.png": {"x": 1938, "y": 2238, "w": 240, "h": 120}, "block009c_01_001.png": {"x": 2180, "y": 2238, "w": 120, "h": 120}, "block009c_10_001.png": {"x": 2302, "y": 2238, "w": 120, "h": 120}, "block009c_11_001.png": {"x": 2424, "y": 2238, "w": 120, "h": 120}, "block009c_base_001.png": {"x": 2546, "y": 2238, "w": 120, "h": 120}, "block009c_color_04_001.png": {"x": 2668, "y": 2238, "w": 120, "h": 120}, "block009c_color_05_001.png": {"x": 2790, "y": 2238, "w": 114, "h": 120}, "block009c_color_08_001.png": {"x": 2906, "y": 2238, "w": 120, "h": 120}, "block009c_color_09_001.png": {"x": 3028, "y": 2238, "w": 240, "h": 120}, "block009c_line_01_001.png": {"x": 3270, "y": 2238, "w": 120, "h": 120}, "block009c_line_02_001.png": {"x": 3392, "y": 2238, "w": 120, "h": 120}, "block009c_line_03_001.png": {"x": 3514, "y": 2238, "w": 120, "h": 120}, "block009c_line_04_001.png": {"x": 3636, "y": 2238, "w": 120, "h": 120}, "block009c_slope_01_001.png": {"x": 3758, "y": 2238, "w": 120, "h": 120}, "block009c_slope_02_001.png": {"x": 3880, "y": 2238, "w": 240, "h": 120}, "block009c_slope_03_001.png": {"x": 4122, "y": 2238, "w": 120, "h": 120}, "block009c_slope_04_001.png": {"x": 4244, "y": 2238, "w": 240, "h": 120}, "block010_01_001.png": {"x": 4486, "y": 2238, "w": 120, "h": 120}, "block010_02_001.png": {"x": 4608, "y": 2238, "w": 120, "h": 120}, "block010_03_001.png": {"x": 4730, "y": 2238, "w": 120, "h": 120}, "block010_04_001.png": {"x": 0, "y": 2360, "w": 120, "h": 120}, "block010_06_001.png": {"x": 122, "y": 2360, "w": 120, "h": 120}, "block010_07_001.png": {"x": 244, "y": 2360, "w": 120, "h": 120}, "block010_08_001.png": {"x": 366, "y": 2360, "w": 120, "h": 120}, "block010_piece_01_001.png": {"x": 488, "y": 2360, "w": 120, "h": 120}, "block010_piece_02_001.png": {"x": 610, "y": 2360, "w": 120, "h": 120}, "block010_piece_03_001.png": {"x": 732, "y": 2360, "w": 120, "h": 120}, "block010_piece_04_001.png": {"x": 854, "y": 2360, "w": 120, "h": 120}, "block010_piece_05_001.png": {"x": 976, "y": 2360, "w": 120, "h": 120}, "block010_piece_06_001.png": {"x": 1098, "y": 2360, "w": 120, "h": 120}, "block010_slope_01_001.png": {"x": 1220, "y": 2360, "w": 120, "h": 120}, "block010_slope_02_001.png": {"x": 1342, "y": 2360, "w": 240, "h": 120}, "block010_slope_square_01_001.png": {"x": 1584, "y": 2360, "w": 120, "h": 120}, "block010_slope_square_02_001.png": {"x": 1706, "y": 2360, "w": 121, "h": 120}, "block010_slope_square_03_001.png": {"x": 1829, "y": 2360, "w": 120, "h": 120}, "block011_light_14_001.png": {"x": 1951, "y": 2360, "w": 114, "h": 120}, "block011_light_15_001.png": {"x": 2067, "y": 2360, "w": 132, "h": 120}, "block011b_01_001.png": {"x": 2201, "y": 2360, "w": 120, "h": 120}, "block011b_02_001.png": {"x": 2323, "y": 2360, "w": 120, "h": 120}, "block011b_02_color_001.png": {"x": 2445, "y": 2360, "w": 120, "h": 120}, "block011b_03_001.png": {"x": 2567, "y": 2360, "w": 120, "h": 120}, "block011b_03_color_001.png": {"x": 2689, "y": 2360, "w": 120, "h": 120}, "block011b_04_001.png": {"x": 2811, "y": 2360, "w": 120, "h": 120}, "block011b_04_color_001.png": {"x": 2933, "y": 2360, "w": 120, "h": 120}, "block011b_piece_01_001.png": {"x": 3055, "y": 2360, "w": 120, "h": 120}, "block011b_piece_02_001.png": {"x": 3177, "y": 2360, "w": 120, "h": 120}, "block011b_piece_03_001.png": {"x": 3299, "y": 2360, "w": 120, "h": 120}, "block011b_piece_04_001.png": {"x": 3421, "y": 2360, "w": 120, "h": 120}, "block011b_piece_06_001.png": {"x": 3543, "y": 2360, "w": 76, "h": 120}, "block011b_piece_08_001.png": {"x": 3621, "y": 2360, "w": 80, "h": 120}, "block011b_slope_01_001.png": {"x": 3703, "y": 2360, "w": 120, "h": 120}, "block011b_slope_02_001.png": {"x": 3825, "y": 2360, "w": 240, "h": 120}, "block012_01_001.png": {"x": 4067, "y": 2360, "w": 120, "h": 120}, "block012_01_color_001.png": {"x": 4189, "y": 2360, "w": 120, "h": 120}, "block012_02_001.png": {"x": 4311, "y": 2360, "w": 120, "h": 120}, "block012_02_color_001.png": {"x": 4433, "y": 2360, "w": 120, "h": 120}, "block012_03_001.png": {"x": 4555, "y": 2360, "w": 120, "h": 120}, "block012_03_color_001.png": {"x": 4677, "y": 2360, "w": 120, "h": 120}, "block012_04_001.png": {"x": 0, "y": 2482, "w": 120, "h": 120}, "block012_04_color_001.png": {"x": 122, "y": 2482, "w": 120, "h": 120}, "block012_05_001.png": {"x": 244, "y": 2482, "w": 120, "h": 120}, "block012_05_color_001.png": {"x": 366, "y": 2482, "w": 120, "h": 120}, "block012_06_001.png": {"x": 488, "y": 2482, "w": 120, "h": 120}, "block012_07_001.png": {"x": 610, "y": 2482, "w": 120, "h": 120}, "block012_07_color_001.png": {"x": 732, "y": 2482, "w": 112, "h": 120}, "block012_08_001.png": {"x": 846, "y": 2482, "w": 120, "h": 120}, "block012_08_color_001.png": {"x": 968, "y": 2482, "w": 120, "h": 120}, "block012_09_001.png": {"x": 1090, "y": 2482, "w": 120, "h": 120}, "block012_10_001.png": {"x": 1212, "y": 2482, "w": 120, "h": 120}, "block012_10_color_001.png": {"x": 1334, "y": 2482, "w": 48, "h": 120}, "block012_11_001.png": {"x": 1384, "y": 2482, "w": 120, "h": 120}, "block012_light_01_001.png": {"x": 1506, "y": 2482, "w": 54, "h": 120}, "block012_light_03_001.png": {"x": 1562, "y": 2482, "w": 32, "h": 120}, "block012_light_05_001.png": {"x": 1596, "y": 2482, "w": 120, "h": 120}, "block012_light_06_001.png": {"x": 1718, "y": 2482, "w": 120, "h": 120}, "block012_light_07_001.png": {"x": 1840, "y": 2482, "w": 120, "h": 120}, "block012_light_08_001.png": {"x": 1962, "y": 2482, "w": 120, "h": 120}, "block012b_01_001.png": {"x": 2084, "y": 2482, "w": 120, "h": 120}, "block012b_01_color_001.png": {"x": 2206, "y": 2482, "w": 120, "h": 120}, "block012b_02_001.png": {"x": 2328, "y": 2482, "w": 120, "h": 120}, "block012b_02_color_001.png": {"x": 2450, "y": 2482, "w": 120, "h": 120}, "block012b_03_001.png": {"x": 2572, "y": 2482, "w": 120, "h": 120}, "block012b_03_color_001.png": {"x": 2694, "y": 2482, "w": 120, "h": 120}, "block012b_04_001.png": {"x": 2816, "y": 2482, "w": 120, "h": 120}, "block012b_05_001.png": {"x": 2938, "y": 2482, "w": 120, "h": 120}, "block012b_05_color_001.png": {"x": 3060, "y": 2482, "w": 70, "h": 120}, "block012b_06_001.png": {"x": 3132, "y": 2482, "w": 120, "h": 120}, "block012b_07_001.png": {"x": 3254, "y": 2482, "w": 120, "h": 120}, "block012b_07_color_001.png": {"x": 3376, "y": 2482, "w": 62, "h": 120}, "block012b_08_001.png": {"x": 3440, "y": 2482, "w": 120, "h": 120}, "block012b_09_001.png": {"x": 3562, "y": 2482, "w": 120, "h": 120}, "block012b_10_001.png": {"x": 3684, "y": 2482, "w": 120, "h": 120}, "block012b_11_001.png": {"x": 3806, "y": 2482, "w": 120, "h": 120}, "block012b_12_001.png": {"x": 3928, "y": 2482, "w": 120, "h": 120}, "block012b_12_color_001.png": {"x": 4050, "y": 2482, "w": 120, "h": 120}, "block012b_13_001.png": {"x": 4172, "y": 2482, "w": 120, "h": 120}, "block012b_13_color_001.png": {"x": 4294, "y": 2482, "w": 120, "h": 120}, "block012b_14_001.png": {"x": 4416, "y": 2482, "w": 120, "h": 120}, "block012b_14_color_001.png": {"x": 4538, "y": 2482, "w": 120, "h": 120}, "block013_01c_001.png": {"x": 4660, "y": 2482, "w": 120, "h": 120}, "block013_02c_001.png": {"x": 4782, "y": 2482, "w": 120, "h": 120}, "block013_02c_color_001.png": {"x": 0, "y": 2604, "w": 120, "h": 120}, "block013_03c_001.png": {"x": 122, "y": 2604, "w": 120, "h": 120}, "block013_04c_001.png": {"x": 244, "y": 2604, "w": 120, "h": 120}, "block013_edge_01_001.png": {"x": 366, "y": 2604, "w": 40, "h": 120}, "block013_edge_02_001.png": {"x": 408, "y": 2604, "w": 40, "h": 120}, "block013_edge_03_001.png": {"x": 450, "y": 2604, "w": 40, "h": 120}, "block013_edge_04_001.png": {"x": 492, "y": 2604, "w": 40, "h": 120}, "block013_edge_05_001.png": {"x": 534, "y": 2604, "w": 32, "h": 120}, "block013_edge_06_001.png": {"x": 568, "y": 2604, "w": 32, "h": 120}, "block013_edge_07_001.png": {"x": 602, "y": 2604, "w": 32, "h": 120}, "block013_edge_07_color_001.png": {"x": 636, "y": 2604, "w": 32, "h": 120}, "block013_edge_08_001.png": {"x": 670, "y": 2604, "w": 32, "h": 120}, "block013_light_01_001.png": {"x": 704, "y": 2604, "w": 36, "h": 120}, "block013_light_02_001.png": {"x": 742, "y": 2604, "w": 50, "h": 120}, "block013_light_03_001.png": {"x": 794, "y": 2604, "w": 36, "h": 120}, "block013_light_04_001.png": {"x": 832, "y": 2604, "w": 44, "h": 120}, "block013_light_05_001.png": {"x": 878, "y": 2604, "w": 38, "h": 120}, "block013_light_06_001.png": {"x": 918, "y": 2604, "w": 32, "h": 120}, "block013_light_07_001.png": {"x": 952, "y": 2604, "w": 34, "h": 120}, "block013_light_08_001.png": {"x": 988, "y": 2604, "w": 44, "h": 120}, "blockDesign01_01_001.png": {"x": 1034, "y": 2604, "w": 120, "h": 120}, "blockDesign01_01_color_001.png": {"x": 1156, "y": 2604, "w": 120, "h": 120}, "blockDesign01_02_001.png": {"x": 1278, "y": 2604, "w": 120, "h": 120}, "blockDesign01_02_color_001.png": {"x": 1400, "y": 2604, "w": 120, "h": 120}, "blockDesign01_03_001.png": {"x": 1522, "y": 2604, "w": 120, "h": 120}, "blockDesign01_03_color_001.png": {"x": 1644, "y": 2604, "w": 120, "h": 120}, "blockDesign01_04_001.png": {"x": 1766, "y": 2604, "w": 120, "h": 120}, "blockDesign01_04_color_001.png": {"x": 1888, "y": 2604, "w": 120, "h": 120}, "blockDesign02_01_001.png": {"x": 2010, "y": 2604, "w": 120, "h": 120}, "blockDesign02_02_001.png": {"x": 2132, "y": 2604, "w": 120, "h": 120}, "blockDesign02_03_001.png": {"x": 2254, "y": 2604, "w": 120, "h": 120}, "blockDesign02_04_001.png": {"x": 2376, "y": 2604, "w": 120, "h": 120}, "blockDesign03_01_001.png": {"x": 2498, "y": 2604, "w": 120, "h": 120}, "blockDesign03_01_color_001.png": {"x": 2620, "y": 2604, "w": 120, "h": 120}, "blockDesign03_02_001.png": {"x": 2742, "y": 2604, "w": 120, "h": 120}, "blockDesign03_02_color_001.png": {"x": 2864, "y": 2604, "w": 120, "h": 120}, "blockDesign03_03_001.png": {"x": 2986, "y": 2604, "w": 120, "h": 120}, "blockDesign03_03_color_001.png": {"x": 3108, "y": 2604, "w": 120, "h": 120}, "blockDesign03_04_001.png": {"x": 3230, "y": 2604, "w": 120, "h": 120}, "blockDesign03_04_color_001.png": {"x": 3352, "y": 2604, "w": 120, "h": 120}, "blockDesign04_01_001.png": {"x": 3474, "y": 2604, "w": 120, "h": 120}, "blockDesign04_01_color_001.png": {"x": 3596, "y": 2604, "w": 120, "h": 120}, "blockDesign05_01_001.png": {"x": 3718, "y": 2604, "w": 120, "h": 120}, "blockDesign05_01_color_001.png": {"x": 3840, "y": 2604, "w": 120, "h": 120}, "blockDesign05_02_001.png": {"x": 3962, "y": 2604, "w": 120, "h": 120}, "blockDesign05_02_color_001.png": {"x": 4084, "y": 2604, "w": 120, "h": 120}, "blockDesign05_03_001.png": {"x": 4206, "y": 2604, "w": 120, "h": 120}, "blockDesign05_03_color_001.png": {"x": 4328, "y": 2604, "w": 120, "h": 120}, "blockDesign05_04_001.png": {"x": 4450, "y": 2604, "w": 120, "h": 120}, "blockDesign05_04_color_001.png": {"x": 4572, "y": 2604, "w": 120, "h": 120}, "blockDesign06_01_001.png": {"x": 4694, "y": 2604, "w": 120, "h": 120}, "blockDesign06_01_color_001.png": {"x": 0, "y": 2726, "w": 120, "h": 120}, "blockDesign06_02_001.png": {"x": 122, "y": 2726, "w": 120, "h": 120}, "blockDesign06_02_color_001.png": {"x": 244, "y": 2726, "w": 120, "h": 120}, "blockDesign06_03_001.png": {"x": 366, "y": 2726, "w": 120, "h": 120}, "blockDesign06_03_color_001.png": {"x": 488, "y": 2726, "w": 120, "h": 120}, "blockDesign06_04_001.png": {"x": 610, "y": 2726, "w": 120, "h": 120}, "blockDesign06_04_color_001.png": {"x": 732, "y": 2726, "w": 120, "h": 120}, "blockDesign07_01_001.png": {"x": 854, "y": 2726, "w": 120, "h": 120}, "blockDesign07_01_color_001.png": {"x": 976, "y": 2726, "w": 120, "h": 120}, "blockDesign07_02_001.png": {"x": 1098, "y": 2726, "w": 120, "h": 120}, "blockDesign07_02_color_001.png": {"x": 1220, "y": 2726, "w": 120, "h": 120}, "blockDesign07_03_001.png": {"x": 1342, "y": 2726, "w": 120, "h": 120}, "blockDesign07_03_color_001.png": {"x": 1464, "y": 2726, "w": 120, "h": 120}, "blockDesign07_04_001.png": {"x": 1586, "y": 2726, "w": 120, "h": 120}, "blockDesign07_04_color_001.png": {"x": 1708, "y": 2726, "w": 120, "h": 120}, "blockOutlineThick_02_001.png": {"x": 1830, "y": 2726, "w": 120, "h": 120}, "blockOutlineThick_03_001.png": {"x": 1952, "y": 2726, "w": 120, "h": 120}, "blockOutlineThick_04_001.png": {"x": 2074, "y": 2726, "w": 120, "h": 120}, "blockOutlineThick_05_001.png": {"x": 2196, "y": 2726, "w": 120, "h": 120}, "blockOutlineThick_06_001.png": {"x": 2318, "y": 2726, "w": 120, "h": 120}, "blockOutlineThick_08_001.png": {"x": 2440, "y": 2726, "w": 120, "h": 120}, "blockOutlineThickb_02_001.png": {"x": 2562, "y": 2726, "w": 120, "h": 120}, "blockOutlineThickb_03_001.png": {"x": 2684, "y": 2726, "w": 120, "h": 120}, "blockOutlineThickb_04_001.png": {"x": 2806, "y": 2726, "w": 120, "h": 120}, "blockOutlineThickb_05_001.png": {"x": 2928, "y": 2726, "w": 120, "h": 120}, "blockOutlineThickb_06_001.png": {"x": 3050, "y": 2726, "w": 120, "h": 120}, "blockOutline_01_001.png": {"x": 3172, "y": 2726, "w": 120, "h": 120}, "blockOutline_03_001.png": {"x": 3294, "y": 2726, "w": 120, "h": 120}, "blockOutline_04_001.png": {"x": 3416, "y": 2726, "w": 120, "h": 120}, "blockOutline_05_001.png": {"x": 3538, "y": 2726, "w": 120, "h": 120}, "blockOutline_06_001.png": {"x": 3660, "y": 2726, "w": 120, "h": 120}, "blockOutline_07_001.png": {"x": 3782, "y": 2726, "w": 120, "h": 120}, "blockOutline_08_001.png": {"x": 3904, "y": 2726, "w": 120, "h": 120}, "blockOutline_14_001.png": {"x": 4026, "y": 2726, "w": 120, "h": 120}, "blockOutline_15_001.png": {"x": 4148, "y": 2726, "w": 240, "h": 120}, "blockOutline_15_corner02_001.png": {"x": 4390, "y": 2726, "w": 254, "h": 120}, "brick_02_001.png": {"x": 4646, "y": 2726, "w": 120, "h": 120}, "colorSpike_01_001.png": {"x": 4768, "y": 2726, "w": 120, "h": 120}, "d_ball_01_001.png": {"x": 0, "y": 2848, "w": 120, "h": 120}, "d_ball_02_001.png": {"x": 122, "y": 2848, "w": 120, "h": 120}, "d_ball_04_001.png": {"x": 244, "y": 2848, "w": 120, "h": 120}, "d_ball_06_001.png": {"x": 366, "y": 2848, "w": 130, "h": 120}, "d_ball_08_001.png": {"x": 498, "y": 2848, "w": 120, "h": 120}, "d_bar_03_001.png": {"x": 620, "y": 2848, "w": 120, "h": 120}, "d_bar_04_001.png": {"x": 742, "y": 2848, "w": 120, "h": 120}, "d_bar_07_001.png": {"x": 864, "y": 2848, "w": 120, "h": 120}, "d_block04_piece06_001.png": {"x": 986, "y": 2848, "w": 120, "h": 120}, "d_block04_piece07_001.png": {"x": 1108, "y": 2848, "w": 120, "h": 120}, "d_block04_piece08_001.png": {"x": 1230, "y": 2848, "w": 120, "h": 120}, "d_block04_piece11_001.png": {"x": 1352, "y": 2848, "w": 120, "h": 120}, "d_gradient_03_001.png": {"x": 1474, "y": 2848, "w": 120, "h": 120}, "d_gradient_c_01_001.png": {"x": 1596, "y": 2848, "w": 120, "h": 120}, "d_gradient_c_02_001.png": {"x": 1718, "y": 2848, "w": 120, "h": 120}, "d_gradient_c_03_001.png": {"x": 1840, "y": 2848, "w": 120, "h": 120}, "d_gradient_c_04_001.png": {"x": 1962, "y": 2848, "w": 120, "h": 120}, "d_gradient_c_05_001.png": {"x": 2084, "y": 2848, "w": 120, "h": 120}, "d_gradient_c_06_001.png": {"x": 2206, "y": 2848, "w": 60, "h": 120}, "d_keyHole01_001.png": {"x": 2268, "y": 2848, "w": 88, "h": 120}, "d_link_01_001.png": {"x": 2358, "y": 2848, "w": 50, "h": 120}, "d_link_02_001.png": {"x": 2410, "y": 2848, "w": 120, "h": 120}, "d_link_03_001.png": {"x": 2532, "y": 2848, "w": 120, "h": 120}, "d_link_04_001.png": {"x": 2654, "y": 2848, "w": 120, "h": 120}, "d_link_05_001.png": {"x": 2776, "y": 2848, "w": 50, "h": 120}, "d_link_b_01_001.png": {"x": 2828, "y": 2848, "w": 52, "h": 120}, "d_link_b_02_001.png": {"x": 2882, "y": 2848, "w": 120, "h": 120}, "d_link_b_03_001.png": {"x": 3004, "y": 2848, "w": 120, "h": 120}, "d_link_b_04_001.png": {"x": 3126, "y": 2848, "w": 120, "h": 120}, "d_link_b_05_001.png": {"x": 3248, "y": 2848, "w": 52, "h": 120}, "d_link_b_06_001.png": {"x": 3302, "y": 2848, "w": 16, "h": 120}, "d_link_c_01_001.png": {"x": 3320, "y": 2848, "w": 52, "h": 120}, "d_link_c_02_001.png": {"x": 3374, "y": 2848, "w": 120, "h": 120}, "d_link_c_03_001.png": {"x": 3496, "y": 2848, "w": 120, "h": 120}, "d_link_c_04_001.png": {"x": 3618, "y": 2848, "w": 120, "h": 120}, "d_link_c_05_001.png": {"x": 3740, "y": 2848, "w": 52, "h": 120}, "d_link_d_01_001.png": {"x": 3794, "y": 2848, "w": 120, "h": 120}, "d_link_d_02_001.png": {"x": 3916, "y": 2848, "w": 120, "h": 120}, "d_link_d_03_001.png": {"x": 4038, "y": 2848, "w": 120, "h": 120}, "d_link_d_05_001.png": {"x": 4160, "y": 2848, "w": 8, "h": 120}, "d_pixelArt01_002_001.png": {"x": 4170, "y": 2848, "w": 120, "h": 120}, "d_pixelArt01_004_001.png": {"x": 4292, "y": 2848, "w": 80, "h": 120}, "d_pixelArt01_005_001.png": {"x": 4374, "y": 2848, "w": 120, "h": 120}, "d_pixelArt01_006_001.png": {"x": 4496, "y": 2848, "w": 120, "h": 120}, "d_scaleFadeRing_01_001.png": {"x": 4618, "y": 2848, "w": 120, "h": 120}, "d_scaleFadeRing_02_001.png": {"x": 4740, "y": 2848, "w": 120, "h": 120}, "d_smallbar_01_001.png": {"x": 0, "y": 2970, "w": 60, "h": 120}, "d_smallbar_02_001.png": {"x": 62, "y": 2970, "w": 120, "h": 120}, "d_smallbar_03_001.png": {"x": 184, "y": 2970, "w": 120, "h": 120}, "d_smallbar_04_001.png": {"x": 306, "y": 2970, "w": 120, "h": 120}, "d_smallbar_05_001.png": {"x": 428, "y": 2970, "w": 50, "h": 120}, "d_spikeart_02_001.png": {"x": 480, "y": 2970, "w": 62, "h": 120}, "d_spiral_02_001.png": {"x": 544, "y": 2970, "w": 120, "h": 120}, "d_square_01_001.png": {"x": 666, "y": 2970, "w": 120, "h": 120}, "d_square_02_001.png": {"x": 788, "y": 2970, "w": 120, "h": 120}, "d_square_03_01_001.png": {"x": 910, "y": 2970, "w": 120, "h": 120}, "d_square_04_001.png": {"x": 1032, "y": 2970, "w": 120, "h": 120}, "d_square_05_001.png": {"x": 1154, "y": 2970, "w": 120, "h": 120}, "d_swirve_02_001.png": {"x": 1276, "y": 2970, "w": 120, "h": 120}, "d_swirve_04_001.png": {"x": 1398, "y": 2970, "w": 120, "h": 120}, "d_thorn_01_001.png": {"x": 1520, "y": 2970, "w": 110, "h": 120}, "d_thorn_03_001.png": {"x": 1632, "y": 2970, "w": 84, "h": 120}, "d_waveBG_001.png": {"x": 1718, "y": 2970, "w": 120, "h": 120}, "d_zag_02_001.png": {"x": 1840, "y": 2970, "w": 120, "h": 120}, "d_zag_02_002.png": {"x": 1962, "y": 2970, "w": 120, "h": 120}, "d_zag_02_color_001.png": {"x": 2084, "y": 2970, "w": 120, "h": 120}, "d_zag_02_color_002.png": {"x": 2206, "y": 2970, "w": 120, "h": 120}, "d_zag_03_001.png": {"x": 2328, "y": 2970, "w": 46, "h": 120}, "d_zag_03_002.png": {"x": 2376, "y": 2970, "w": 46, "h": 120}, "d_zag_03_color_001.png": {"x": 2424, "y": 2970, "w": 76, "h": 120}, "d_zag_03_color_002.png": {"x": 2502, "y": 2970, "w": 76, "h": 120}, "fakeSpike_01_001.png": {"x": 2580, "y": 2970, "w": 120, "h": 120}, "gravring_01_001.png": {"x": 2702, "y": 2970, "w": 120, "h": 120}, "gridLine04_001.png": {"x": 2824, "y": 2970, "w": 120, "h": 120}, "iceSpike_01_001.png": {"x": 2946, "y": 2970, "w": 121, "h": 120}, "invis_spike_01_001.png": {"x": 3069, "y": 2970, "w": 120, "h": 120}, "invis_square_01_001.png": {"x": 3191, "y": 2970, "w": 121, "h": 120}, "invis_triangle_02_001.png": {"x": 3314, "y": 2970, "w": 120, "h": 120}, "invis_triangle_04_001.png": {"x": 3436, "y": 2970, "w": 240, "h": 120}, "lightsquare_01_01_001.png": {"x": 3678, "y": 2970, "w": 120, "h": 120}, "lightsquare_01_01_color_001.png": {"x": 3800, "y": 2970, "w": 120, "h": 120}, "lightsquare_01_02_001.png": {"x": 3922, "y": 2970, "w": 120, "h": 120}, "lightsquare_01_02_color_001.png": {"x": 4044, "y": 2970, "w": 120, "h": 120}, "lightsquare_01_03_001.png": {"x": 4166, "y": 2970, "w": 120, "h": 120}, "lightsquare_01_03_color_001.png": {"x": 4288, "y": 2970, "w": 120, "h": 120}, "lightsquare_01_04_001.png": {"x": 4410, "y": 2970, "w": 120, "h": 120}, "lightsquare_01_04_color_001.png": {"x": 4532, "y": 2970, "w": 120, "h": 120}, "lightsquare_01_05_001.png": {"x": 4654, "y": 2970, "w": 120, "h": 120}, "lightsquare_01_05_color_001.png": {"x": 4776, "y": 2970, "w": 120, "h": 120}, "lightsquare_01_06_001.png": {"x": 0, "y": 3092, "w": 120, "h": 120}, "lightsquare_01_06_color_001.png": {"x": 122, "y": 3092, "w": 120, "h": 120}, "lightsquare_01_07_001.png": {"x": 244, "y": 3092, "w": 120, "h": 120}, "lightsquare_01_07_color_001.png": {"x": 366, "y": 3092, "w": 120, "h": 120}, "lightsquare_01_08_color_001.png": {"x": 488, "y": 3092, "w": 120, "h": 120}, "lightsquare_02_01_001.png": {"x": 610, "y": 3092, "w": 120, "h": 120}, "lightsquare_02_01_color_001.png": {"x": 732, "y": 3092, "w": 120, "h": 120}, "lightsquare_02_02_001.png": {"x": 854, "y": 3092, "w": 120, "h": 120}, "lightsquare_02_02_color_001.png": {"x": 976, "y": 3092, "w": 120, "h": 120}, "lightsquare_02_03_001.png": {"x": 1098, "y": 3092, "w": 120, "h": 120}, "lightsquare_02_03_color_001.png": {"x": 1220, "y": 3092, "w": 120, "h": 120}, "lightsquare_02_04_001.png": {"x": 1342, "y": 3092, "w": 120, "h": 120}, "lightsquare_02_04_color_001.png": {"x": 1464, "y": 3092, "w": 120, "h": 120}, "lightsquare_02_05_001.png": {"x": 1586, "y": 3092, "w": 120, "h": 120}, "lightsquare_02_05_color_001.png": {"x": 1708, "y": 3092, "w": 120, "h": 120}, "lightsquare_02_06_001.png": {"x": 1830, "y": 3092, "w": 120, "h": 120}, "lightsquare_02_06_color_001.png": {"x": 1952, "y": 3092, "w": 120, "h": 120}, "lightsquare_02_07_001.png": {"x": 2074, "y": 3092, "w": 120, "h": 120}, "lightsquare_02_07_color_001.png": {"x": 2196, "y": 3092, "w": 120, "h": 120}, "lightsquare_02_08_001.png": {"x": 2318, "y": 3092, "w": 120, "h": 120}, "lightsquare_02_08_color_001.png": {"x": 2440, "y": 3092, "w": 120, "h": 120}, "lightsquare_03_01_001.png": {"x": 2562, "y": 3092, "w": 120, "h": 120}, "lightsquare_03_01_color_001.png": {"x": 2684, "y": 3092, "w": 120, "h": 120}, "lightsquare_03_02_001.png": {"x": 2806, "y": 3092, "w": 120, "h": 120}, "lightsquare_03_02_color_001.png": {"x": 2928, "y": 3092, "w": 120, "h": 120}, "lightsquare_03_03_001.png": {"x": 3050, "y": 3092, "w": 120, "h": 120}, "lightsquare_03_03_color_001.png": {"x": 3172, "y": 3092, "w": 120, "h": 120}, "lightsquare_03_04_001.png": {"x": 3294, "y": 3092, "w": 120, "h": 120}, "lightsquare_03_04_color_001.png": {"x": 3416, "y": 3092, "w": 120, "h": 120}, "lightsquare_03_05_001.png": {"x": 3538, "y": 3092, "w": 120, "h": 120}, "lightsquare_03_05_color_001.png": {"x": 3660, "y": 3092, "w": 120, "h": 120}, "lightsquare_03_06_001.png": {"x": 3782, "y": 3092, "w": 120, "h": 120}, "lightsquare_03_06_color_001.png": {"x": 3904, "y": 3092, "w": 120, "h": 120}, "lightsquare_03_07_001.png": {"x": 4026, "y": 3092, "w": 120, "h": 120}, "lightsquare_03_07_color_001.png": {"x": 4148, "y": 3092, "w": 120, "h": 120}, "lightsquare_03_08_color_001.png": {"x": 4270, "y": 3092, "w": 120, "h": 120}, "lightsquare_04_02_001.png": {"x": 4392, "y": 3092, "w": 80, "h": 120}, "lightsquare_04_05_color_001.png": {"x": 4474, "y": 3092, "w": 120, "h": 120}, "lightsquare_05_01_001.png": {"x": 4596, "y": 3092, "w": 120, "h": 120}, "lightsquare_05_01_color_001.png": {"x": 4718, "y": 3092, "w": 120, "h": 120}, "lightsquare_05_02_001.png": {"x": 0, "y": 3214, "w": 120, "h": 120}, "lightsquare_05_02_color_001.png": {"x": 122, "y": 3214, "w": 120, "h": 120}, "lightsquare_05_03_001.png": {"x": 244, "y": 3214, "w": 120, "h": 120}, "lightsquare_05_03_color_001.png": {"x": 366, "y": 3214, "w": 120, "h": 120}, "lightsquare_05_04_001.png": {"x": 488, "y": 3214, "w": 120, "h": 120}, "lightsquare_05_04_color_001.png": {"x": 610, "y": 3214, "w": 120, "h": 120}, "lightsquare_05_05_001.png": {"x": 732, "y": 3214, "w": 120, "h": 120}, "lightsquare_05_05_color_001.png": {"x": 854, "y": 3214, "w": 120, "h": 120}, "lightsquare_05_06_001.png": {"x": 976, "y": 3214, "w": 120, "h": 120}, "lightsquare_05_06_color_001.png": {"x": 1098, "y": 3214, "w": 120, "h": 120}, "lightsquare_05_07_001.png": {"x": 1220, "y": 3214, "w": 120, "h": 120}, "lightsquare_05_07_color_001.png": {"x": 1342, "y": 3214, "w": 120, "h": 120}, "lightsquare_05_08_color_001.png": {"x": 1464, "y": 3214, "w": 120, "h": 120}, "lighttriangle_01_02_color_001.png": {"x": 1586, "y": 3214, "w": 120, "h": 120}, "lighttriangle_01_04_color_001.png": {"x": 1708, "y": 3214, "w": 240, "h": 120}, "lighttriangle_02_02_color_001.png": {"x": 1950, "y": 3214, "w": 120, "h": 120}, "lighttriangle_02_04_color_001.png": {"x": 2072, "y": 3214, "w": 240, "h": 120}, "lighttriangle_03_02_color_001.png": {"x": 2314, "y": 3214, "w": 120, "h": 120}, "lighttriangle_03_04_color_001.png": {"x": 2436, "y": 3214, "w": 240, "h": 120}, "lighttriangle_04_02_color_001.png": {"x": 2678, "y": 3214, "w": 120, "h": 120}, "lighttriangle_04_04_color_001.png": {"x": 2800, "y": 3214, "w": 240, "h": 120}, "lighttriangle_05_02_color_001.png": {"x": 3042, "y": 3214, "w": 120, "h": 120}, "lighttriangle_05_04_color_001.png": {"x": 3164, "y": 3214, "w": 240, "h": 120}, "pit_07_3_001.png": {"x": 3406, "y": 3214, "w": 121, "h": 120}, "pit_07_3_shine_001.png": {"x": 3529, "y": 3214, "w": 120, "h": 120}, "plank005_slope_01_001.png": {"x": 3651, "y": 3214, "w": 120, "h": 120}, "plank005_slope_01_color_001.png": {"x": 3773, "y": 3214, "w": 120, "h": 120}, "plank005_slope_02_001.png": {"x": 3895, "y": 3214, "w": 240, "h": 120}, "plank005_slope_02_color_001.png": {"x": 4137, "y": 3214, "w": 240, "h": 120}, "plank005_slope_square_01_001.png": {"x": 4379, "y": 3214, "w": 120, "h": 120}, "plank005_slope_square_01_color_001.png": {"x": 4501, "y": 3214, "w": 120, "h": 120}, "plank005_slope_square_02_001.png": {"x": 4623, "y": 3214, "w": 120, "h": 120}, "plank005_slope_square_02_color_001.png": {"x": 4745, "y": 3214, "w": 120, "h": 120}, "plank005_slope_square_03_001.png": {"x": 0, "y": 3336, "w": 120, "h": 120}, "plank005b_slope_01_001.png": {"x": 122, "y": 3336, "w": 120, "h": 120}, "plank005b_slope_01_color_001.png": {"x": 244, "y": 3336, "w": 120, "h": 120}, "plank005b_slope_02_001.png": {"x": 366, "y": 3336, "w": 240, "h": 120}, "plank005b_slope_02_color_001.png": {"x": 608, "y": 3336, "w": 240, "h": 120}, "plank005b_slope_square_01_001.png": {"x": 850, "y": 3336, "w": 120, "h": 120}, "plank005b_slope_square_01_color_001.png": {"x": 972, "y": 3336, "w": 120, "h": 120}, "plank005b_slope_square_02_001.png": {"x": 1094, "y": 3336, "w": 120, "h": 120}, "plank005b_slope_square_02_color_001.png": {"x": 1216, "y": 3336, "w": 120, "h": 120}, "plank005b_slope_square_03_001.png": {"x": 1338, "y": 3336, "w": 120, "h": 120}, "puzzle_base_001.png": {"x": 1460, "y": 3336, "w": 120, "h": 120}, "puzzle_piece_01_001.png": {"x": 1582, "y": 3336, "w": 52, "h": 120}, "puzzle_piece_03_001.png": {"x": 1636, "y": 3336, "w": 52, "h": 120}, "ring_01_001.png": {"x": 1690, "y": 3336, "w": 120, "h": 120}, "ring_03_001.png": {"x": 1812, "y": 3336, "w": 121, "h": 120}, "rod_ball_01_001.png": {"x": 1935, "y": 3336, "w": 120, "h": 120}, "rod_ball_02_001.png": {"x": 2057, "y": 3336, "w": 120, "h": 120}, "rod_ball_03_001.png": {"x": 2179, "y": 3336, "w": 120, "h": 120}, "spike_01_001.png": {"x": 2301, "y": 3336, "w": 120, "h": 120}, "square_01_001.png": {"x": 2423, "y": 3336, "w": 120, "h": 120}, "square_02_001.png": {"x": 2545, "y": 3336, "w": 120, "h": 120}, "square_03_001.png": {"x": 2667, "y": 3336, "w": 120, "h": 120}, "square_04_001.png": {"x": 2789, "y": 3336, "w": 120, "h": 120}, "square_05_001.png": {"x": 2911, "y": 3336, "w": 120, "h": 120}, "square_06_001.png": {"x": 3033, "y": 3336, "w": 120, "h": 120}, "square_07_001.png": {"x": 3155, "y": 3336, "w": 120, "h": 120}, "square_08_001.png": {"x": 3277, "y": 3336, "w": 120, "h": 120}, "square_09_001.png": {"x": 3399, "y": 3336, "w": 120, "h": 120}, "square_b_02_001.png": {"x": 3521, "y": 3336, "w": 120, "h": 120}, "square_c_05_001.png": {"x": 3643, "y": 3336, "w": 120, "h": 120}, "square_d_05_001.png": {"x": 3765, "y": 3336, "w": 120, "h": 120}, "square_f_01_001.png": {"x": 3887, "y": 3336, "w": 120, "h": 120}, "square_f_02_001.png": {"x": 4009, "y": 3336, "w": 120, "h": 120}, "square_f_03_001.png": {"x": 4131, "y": 3336, "w": 120, "h": 120}, "square_f_05_001.png": {"x": 4253, "y": 3336, "w": 120, "h": 120}, "square_f_06_001.png": {"x": 4375, "y": 3336, "w": 120, "h": 120}, "square_f_07_001.png": {"x": 4497, "y": 3336, "w": 120, "h": 120}, "square_g_03_001.png": {"x": 4619, "y": 3336, "w": 120, "h": 120}, "square_g_04_001.png": {"x": 4741, "y": 3336, "w": 120, "h": 120}, "square_g_05_001.png": {"x": 0, "y": 3458, "w": 120, "h": 120}, "square_g_06_001.png": {"x": 122, "y": 3458, "w": 120, "h": 120}, "square_g_07_001.png": {"x": 244, "y": 3458, "w": 120, "h": 120}, "square_g_08_001.png": {"x": 366, "y": 3458, "w": 120, "h": 120}, "square_g_09_001.png": {"x": 488, "y": 3458, "w": 120, "h": 120}, "square_g_10_001.png": {"x": 610, "y": 3458, "w": 120, "h": 120}, "square_g_11_001.png": {"x": 732, "y": 3458, "w": 120, "h": 120}, "square_g_12_001.png": {"x": 854, "y": 3458, "w": 120, "h": 120}, "square_g_13_001.png": {"x": 976, "y": 3458, "w": 120, "h": 120}, "square_g_14_001.png": {"x": 1098, "y": 3458, "w": 120, "h": 120}, "square_g_15_001.png": {"x": 1220, "y": 3458, "w": 120, "h": 120}, "square_g_16_001.png": {"x": 1342, "y": 3458, "w": 120, "h": 120}, "square_h_04_001.png": {"x": 1464, "y": 3458, "w": 120, "h": 120}, "square_h_06_001.png": {"x": 1586, "y": 3458, "w": 120, "h": 120}, "triangle_a_02_001.png": {"x": 1708, "y": 3458, "w": 120, "h": 120}, "triangle_a_04_001.png": {"x": 1830, "y": 3458, "w": 240, "h": 120}, "triangle_b_square_01_001.png": {"x": 2072, "y": 3458, "w": 120, "h": 120}, "triangle_b_square_02_001.png": {"x": 2194, "y": 3458, "w": 120, "h": 120}, "triangle_c_02_001.png": {"x": 2316, "y": 3458, "w": 120, "h": 120}, "triangle_c_04_001.png": {"x": 2438, "y": 3458, "w": 240, "h": 120}, "triangle_d_02_001.png": {"x": 2680, "y": 3458, "w": 120, "h": 120}, "triangle_d_04_001.png": {"x": 2802, "y": 3458, "w": 240, "h": 120}, "triangle_f_02_001.png": {"x": 3044, "y": 3458, "w": 120, "h": 120}, "triangle_f_04_001.png": {"x": 3166, "y": 3458, "w": 240, "h": 120}, "triangle_g_02_001.png": {"x": 3408, "y": 3458, "w": 120, "h": 120}, "triangle_g_04_001.png": {"x": 3530, "y": 3458, "w": 240, "h": 120}, "triangle_g_square_01_001.png": {"x": 3772, "y": 3458, "w": 120, "h": 120}, "triangle_g_square_02_001.png": {"x": 3894, "y": 3458, "w": 120, "h": 120}, "triangle_g_square_03_001.png": {"x": 4016, "y": 3458, "w": 120, "h": 120}, "triangle_h_01_001.png": {"x": 4138, "y": 3458, "w": 120, "h": 120}, "triangle_h_02_001.png": {"x": 4260, "y": 3458, "w": 240, "h": 120}, "triangle_h_square_01_001.png": {"x": 4502, "y": 3458, "w": 120, "h": 120}, "triangle_h_square_02_001.png": {"x": 4624, "y": 3458, "w": 240, "h": 120}, "whiteSquare60_001.png": {"x": 0, "y": 3580, "w": 120, "h": 120}, "block013_01c_color_001.png": {"x": 122, "y": 3580, "w": 120, "h": 118}, "gravJumpRing_01_001.png": {"x": 244, "y": 3580, "w": 118, "h": 118}, "block008_topcolor_28_001.png": {"x": 364, "y": 3580, "w": 14, "h": 116}, "block009_03_color_001.png": {"x": 380, "y": 3580, "w": 120, "h": 116}, "block009_04_color_001.png": {"x": 502, "y": 3580, "w": 120, "h": 116}, "block009_05_color_001.png": {"x": 624, "y": 3580, "w": 120, "h": 116}, "block009_06_color_001.png": {"x": 746, "y": 3580, "w": 120, "h": 116}, "block009_07_color_001.png": {"x": 868, "y": 3580, "w": 120, "h": 116}, "block009_08_color_001.png": {"x": 990, "y": 3580, "w": 120, "h": 116}, "block009_slope_02_color_001.png": {"x": 1112, "y": 3580, "w": 232, "h": 116}, "block013_edge_01_color_001.png": {"x": 1346, "y": 3580, "w": 40, "h": 116}, "blockDesign02_04_color_001.png": {"x": 1388, "y": 3580, "w": 120, "h": 116}, "d_spikes_03_001.png": {"x": 1510, "y": 3580, "w": 292, "h": 116}, "bladeTrap02_001.png": {"x": 1804, "y": 3580, "w": 114, "h": 114}, "block009c_color_01_001.png": {"x": 1920, "y": 3580, "w": 114, "h": 114}, "block009c_color_02_001.png": {"x": 2036, "y": 3580, "w": 120, "h": 114}, "block009c_color_03_001.png": {"x": 2158, "y": 3580, "w": 120, "h": 114}, "block011b_slope_01_color_001.png": {"x": 2280, "y": 3580, "w": 106, "h": 114}, "blockDesign02_03_color_001.png": {"x": 2388, "y": 3580, "w": 120, "h": 114}, "blockOutline_17_001.png": {"x": 2510, "y": 3580, "w": 200, "h": 114}, "d_ball_05_001.png": {"x": 2712, "y": 3580, "w": 120, "h": 114}, "ring_custom_01_001.png": {"x": 2834, "y": 3580, "w": 114, "h": 114}, "bladeTrap01_001.png": {"x": 2950, "y": 3580, "w": 156, "h": 112}, "blockDesign02_01_color_001.png": {"x": 3108, "y": 3580, "w": 120, "h": 110}, "blockDesign02_02_color_001.png": {"x": 3230, "y": 3580, "w": 120, "h": 110}, "colorSpike_01_color_001.png": {"x": 3352, "y": 3580, "w": 104, "h": 110}, "d_ball_07_001.png": {"x": 3458, "y": 3580, "w": 110, "h": 110}, "d_keyHole01_color_001.png": {"x": 3570, "y": 3580, "w": 80, "h": 110}, "block007_color_001_001.png": {"x": 3652, "y": 3580, "w": 108, "h": 108}, "block007_color_003_001.png": {"x": 3762, "y": 3580, "w": 78, "h": 108}, "block007_color_008_001.png": {"x": 3842, "y": 3580, "w": 108, "h": 108}, "block009_01_color_001.png": {"x": 3952, "y": 3580, "w": 108, "h": 108}, "block009_02_color_001.png": {"x": 4062, "y": 3580, "w": 108, "h": 108}, "block009b_10_color_001.png": {"x": 4172, "y": 3580, "w": 120, "h": 108}, "block011b_piece_03_color_001.png": {"x": 4294, "y": 3580, "w": 82, "h": 108}, "block011b_slope_02_color_001.png": {"x": 4378, "y": 3580, "w": 214, "h": 108}, "d_brick_03_001.png": {"x": 4594, "y": 3580, "w": 222, "h": 108}, "d_skull01_001.png": {"x": 0, "y": 3702, "w": 104, "h": 108}, "d_wheel_03_001.png": {"x": 106, "y": 3702, "w": 110, "h": 108}, "puzzle_base_color_001.png": {"x": 218, "y": 3702, "w": 108, "h": 108}, "puzzle_piece_01_color_001.png": {"x": 328, "y": 3702, "w": 52, "h": 108}, "puzzle_piece_03_color_001.png": {"x": 382, "y": 3702, "w": 52, "h": 108}, "block007_color_002_001.png": {"x": 436, "y": 3702, "w": 108, "h": 106}, "block012_13_001.png": {"x": 546, "y": 3702, "w": 108, "h": 106}, "block012_14_001.png": {"x": 656, "y": 3702, "w": 106, "h": 106}, "pit_01_001.png": {"x": 764, "y": 3702, "w": 121, "h": 106}, "pit_01_low_001.png": {"x": 887, "y": 3702, "w": 121, "h": 106}, "rod_02_001.png": {"x": 1010, "y": 3702, "w": 24, "h": 106}, "block007_06_color_001.png": {"x": 1036, "y": 3702, "w": 106, "h": 104}, "block007b_bgcolor_08_001.png": {"x": 1144, "y": 3702, "w": 104, "h": 104}, "d_animWave_01_001.png": {"x": 1250, "y": 3702, "w": 120, "h": 104}, "d_animWave_01_002.png": {"x": 1372, "y": 3702, "w": 120, "h": 104}, "d_animWave_01_003.png": {"x": 1494, "y": 3702, "w": 120, "h": 104}, "d_animWave_01_006.png": {"x": 1616, "y": 3702, "w": 120, "h": 104}, "d_animWave_01_007.png": {"x": 1738, "y": 3702, "w": 120, "h": 104}, "d_animWave_01_008.png": {"x": 1860, "y": 3702, "w": 120, "h": 104}, "d_animWave_01_base_001.png": {"x": 1982, "y": 3702, "w": 120, "h": 104}, "d_animWave_02_001.png": {"x": 2104, "y": 3702, "w": 120, "h": 104}, "d_animWave_02_002.png": {"x": 2226, "y": 3702, "w": 120, "h": 104}, "d_animWave_02_003.png": {"x": 2348, "y": 3702, "w": 120, "h": 104}, "d_animWave_02_004.png": {"x": 2470, "y": 3702, "w": 120, "h": 104}, "d_animWave_02_005.png": {"x": 2592, "y": 3702, "w": 120, "h": 104}, "d_animWave_02_006.png": {"x": 2714, "y": 3702, "w": 120, "h": 104}, "d_animWave_02_base_001.png": {"x": 2836, "y": 3702, "w": 120, "h": 104}, "d_animWave_03_001.png": {"x": 2958, "y": 3702, "w": 120, "h": 104}, "d_animWave_03_002.png": {"x": 3080, "y": 3702, "w": 120, "h": 104}, "d_animWave_03_003.png": {"x": 3202, "y": 3702, "w": 120, "h": 104}, "d_animWave_03_004.png": {"x": 3324, "y": 3702, "w": 120, "h": 104}, "d_animWave_03_005.png": {"x": 3446, "y": 3702, "w": 120, "h": 104}, "d_animWave_03_006.png": {"x": 3568, "y": 3702, "w": 120, "h": 104}, "d_animWave_03_base_001.png": {"x": 3690, "y": 3702, "w": 120, "h": 104}, "d_ball_09_001.png": {"x": 3812, "y": 3702, "w": 120, "h": 104}, "d_skull01_match_001.png": {"x": 3934, "y": 3702, "w": 102, "h": 104}, "d_wave_01_001.png": {"x": 4038, "y": 3702, "w": 120, "h": 104}, "d_wave_02_001.png": {"x": 4160, "y": 3702, "w": 120, "h": 104}, "pit_02_001.png": {"x": 4282, "y": 3702, "w": 121, "h": 104}, "pit_03_001.png": {"x": 4405, "y": 3702, "w": 121, "h": 104}, "pit_04_001.png": {"x": 4528, "y": 3702, "w": 121, "h": 104}, "pit_04_02_001.png": {"x": 4651, "y": 3702, "w": 121, "h": 104}, "pit_04_03_001.png": {"x": 4774, "y": 3702, "w": 121, "h": 104}, "block012_12_001.png": {"x": 0, "y": 3812, "w": 100, "h": 102}, "block013_edge_04_color_001.png": {"x": 102, "y": 3812, "w": 30, "h": 102}, "d_cogwheel_04_001.png": {"x": 134, "y": 3812, "w": 100, "h": 102}, "d_spikeWave_01_001.png": {"x": 236, "y": 3812, "w": 120, "h": 102}, "d_spikeWave_02_001.png": {"x": 358, "y": 3812, "w": 120, "h": 102}, "d_spikeWave_03_001.png": {"x": 480, "y": 3812, "w": 60, "h": 102}, "d_spiral_03_001.png": {"x": 542, "y": 3812, "w": 102, "h": 102}, "d_wave_03_001.png": {"x": 646, "y": 3812, "w": 120, "h": 102}, "block007_bgcolor_004_001.png": {"x": 768, "y": 3812, "w": 80, "h": 100}, "block007_bgcolor_005_001.png": {"x": 850, "y": 3812, "w": 80, "h": 100}, "block012_13_color_001.png": {"x": 932, "y": 3812, "w": 102, "h": 100}, "block012_14_color_001.png": {"x": 1036, "y": 3812, "w": 98, "h": 100}, "d_ball_03_001.png": {"x": 1136, "y": 3812, "w": 120, "h": 100}, "d_heart01_match_001.png": {"x": 1258, "y": 3812, "w": 100, "h": 100}, "d_potion01_match_001.png": {"x": 1360, "y": 3812, "w": 102, "h": 100}, "fireball_01_001.png": {"x": 1464, "y": 3812, "w": 102, "h": 100}, "persp_block013_04_001.png": {"x": 1568, "y": 3812, "w": 100, "h": 100}, "persp_block013_05_001.png": {"x": 1670, "y": 3812, "w": 160, "h": 100}, "bladeTrap03_001.png": {"x": 1832, "y": 3812, "w": 98, "h": 98}, "block007_bgcolor_001_001.png": {"x": 1932, "y": 3812, "w": 98, "h": 98}, "block007_bgcolor_003_001.png": {"x": 2032, "y": 3812, "w": 98, "h": 98}, "d_cartwheel_03_001.png": {"x": 2132, "y": 3812, "w": 98, "h": 98}, "d_pit06wave_01_001.png": {"x": 2232, "y": 3812, "w": 120, "h": 98}, "d_pit06wave_02_001.png": {"x": 2354, "y": 3812, "w": 120, "h": 98}, "pit_01_slope_02_001.png": {"x": 2476, "y": 3812, "w": 269, "h": 98}, "block007_bgcolor_002_001.png": {"x": 2747, "y": 3812, "w": 96, "h": 96}, "block007_bgcolor_007_001.png": {"x": 2845, "y": 3812, "w": 96, "h": 96}, "block007_bgcolor_008_001.png": {"x": 2943, "y": 3812, "w": 96, "h": 96}, "block007_bgcolor_010_001.png": {"x": 3041, "y": 3812, "w": 96, "h": 96}, "block007_bgcolor_011_001.png": {"x": 3139, "y": 3812, "w": 216, "h": 96}, "block012_12_color_001.png": {"x": 3357, "y": 3812, "w": 94, "h": 96}, "d_potion01_001.png": {"x": 3453, "y": 3812, "w": 94, "h": 96}, "d_sign_01_001.png": {"x": 3549, "y": 3812, "w": 116, "h": 96}, "plank_01_slope_02_001.png": {"x": 3667, "y": 3812, "w": 269, "h": 96}, "block012_06_color_001.png": {"x": 3938, "y": 3812, "w": 120, "h": 94}, "d_artCloud_03_001.png": {"x": 4060, "y": 3812, "w": 144, "h": 94}, "d_heart01_001.png": {"x": 4206, "y": 3812, "w": 94, "h": 94}, "d_skull01_match_color_001.png": {"x": 4302, "y": 3812, "w": 92, "h": 94}, "lava_top_bubble_001.png": {"x": 4396, "y": 3812, "w": 120, "h": 94}, "lava_top_bubble_002.png": {"x": 4518, "y": 3812, "w": 120, "h": 94}, "lava_top_bubble_003.png": {"x": 4640, "y": 3812, "w": 120, "h": 94}, "lava_top_bubble_004.png": {"x": 4762, "y": 3812, "w": 120, "h": 94}, "lava_top_bubble_005.png": {"x": 0, "y": 3916, "w": 120, "h": 94}, "lava_top_bubble_006.png": {"x": 122, "y": 3916, "w": 120, "h": 94}, "lava_top_bubble_007.png": {"x": 244, "y": 3916, "w": 120, "h": 94}, "lava_top_bubble_008.png": {"x": 366, "y": 3916, "w": 120, "h": 94}, "plank005_01_001.png": {"x": 488, "y": 3916, "w": 120, "h": 94}, "plank005_01_color_001.png": {"x": 610, "y": 3916, "w": 120, "h": 94}, "plank005_02_001.png": {"x": 732, "y": 3916, "w": 120, "h": 94}, "plank005_02_color_001.png": {"x": 854, "y": 3916, "w": 120, "h": 94}, "plank005b_01_001.png": {"x": 976, "y": 3916, "w": 120, "h": 94}, "plank005b_01_color_001.png": {"x": 1098, "y": 3916, "w": 120, "h": 94}, "plank005b_02_001.png": {"x": 1220, "y": 3916, "w": 120, "h": 94}, "plank005b_02_color_001.png": {"x": 1342, "y": 3916, "w": 120, "h": 94}, "d_heart01_match_color_001.png": {"x": 1464, "y": 3916, "w": 92, "h": 92}, "d_potion01_match_color_001.png": {"x": 1558, "y": 3916, "w": 94, "h": 92}, "d_zag_01_color_001.png": {"x": 1654, "y": 3916, "w": 120, "h": 92}, "d_zag_01_color_002.png": {"x": 1776, "y": 3916, "w": 120, "h": 92}, "d_zag_01_color_003.png": {"x": 1898, "y": 3916, "w": 120, "h": 92}, "edit_eParticleBtn_color_001.png": {"x": 2020, "y": 3916, "w": 92, "h": 92}, "plank_01_slope_02_color_001.png": {"x": 2114, "y": 3916, "w": 268, "h": 92}, "triangle_b_01_001.png": {"x": 2384, "y": 3916, "w": 170, "h": 92}, "block011b_piece_02_color_001.png": {"x": 2556, "y": 3916, "w": 90, "h": 90}, "d_grassArt_01_001.png": {"x": 2648, "y": 3916, "w": 278, "h": 90}, "fireball_02_001.png": {"x": 2928, "y": 3916, "w": 278, "h": 90}, "fireball_02_002.png": {"x": 3208, "y": 3916, "w": 278, "h": 90}, "fireball_02_003.png": {"x": 3488, "y": 3916, "w": 278, "h": 90}, "block005c_10_001.png": {"x": 3768, "y": 3916, "w": 120, "h": 88}, "block005c_11_001.png": {"x": 3890, "y": 3916, "w": 120, "h": 88}, "block011_light_18_001.png": {"x": 4012, "y": 3916, "w": 120, "h": 88}, "block011b_piece_07_001.png": {"x": 4134, "y": 3916, "w": 120, "h": 88}, "d_bar_01_001.png": {"x": 4256, "y": 3916, "w": 120, "h": 88}, "d_sign_01_color_001.png": {"x": 4378, "y": 3916, "w": 108, "h": 88}, "block012b_06_color_001.png": {"x": 4488, "y": 3916, "w": 120, "h": 86}, "d_pillar_03_001.png": {"x": 4610, "y": 3916, "w": 102, "h": 86}, "d_potion01_color_001.png": {"x": 4714, "y": 3916, "w": 82, "h": 86}, "d_sign_01_color_02_001.png": {"x": 4798, "y": 3916, "w": 104, "h": 86}, "darkblade_01_color_001.png": {"x": 0, "y": 4012, "w": 86, "h": 86}, "square_h_01_001.png": {"x": 88, "y": 4012, "w": 120, "h": 86}, "square_h_02_001.png": {"x": 210, "y": 4012, "w": 120, "h": 86}, "square_h_03_001.png": {"x": 332, "y": 4012, "w": 120, "h": 86}, "square_h_05_001.png": {"x": 454, "y": 4012, "w": 120, "h": 86}, "square_h_07_001.png": {"x": 576, "y": 4012, "w": 54, "h": 86}, "square_h_08_001.png": {"x": 632, "y": 4012, "w": 120, "h": 86}, "square_h_09_001.png": {"x": 754, "y": 4012, "w": 86, "h": 86}, "square_h_10_001.png": {"x": 842, "y": 4012, "w": 88, "h": 86}, "block011_edge_04_color_001.png": {"x": 932, "y": 4012, "w": 68, "h": 84}, "block011b_piece_04_color_001.png": {"x": 1002, "y": 4012, "w": 82, "h": 84}, "block011b_piece_05_001.png": {"x": 1086, "y": 4012, "w": 120, "h": 84}, "block012_09_color_001.png": {"x": 1208, "y": 4012, "w": 120, "h": 84}, "block012b_04_color_001.png": {"x": 1330, "y": 4012, "w": 120, "h": 84}, "d_03_chain_01_001.png": {"x": 1452, "y": 4012, "w": 40, "h": 84}, "d_heart01_color_001.png": {"x": 1494, "y": 4012, "w": 84, "h": 84}, "d_key01_001.png": {"x": 1580, "y": 4012, "w": 120, "h": 84}, "d_spikeart_03_001.png": {"x": 1702, "y": 4012, "w": 36, "h": 84}, "fireball_01_color_001.png": {"x": 1740, "y": 4012, "w": 84, "h": 84}, "fireball_02_color_001.png": {"x": 1826, "y": 4012, "w": 242, "h": 84}, "fireball_02_color_002.png": {"x": 2070, "y": 4012, "w": 242, "h": 84}, "fireball_02_color_003.png": {"x": 2314, "y": 4012, "w": 242, "h": 84}, "d_grass_05_001.png": {"x": 2558, "y": 4012, "w": 100, "h": 82}, "teleportRing_color_001.png": {"x": 2660, "y": 4012, "w": 70, "h": 82}, "block008_topcolor_01_001.png": {"x": 2732, "y": 4012, "w": 80, "h": 80}, "block008_topcolor_15_001.png": {"x": 2814, "y": 4012, "w": 120, "h": 80}, "block008_topcolor_29_001.png": {"x": 2936, "y": 4012, "w": 80, "h": 80}, "blockOutline_16_001.png": {"x": 3018, "y": 4012, "w": 80, "h": 80}, "d_gradient_01_001.png": {"x": 3100, "y": 4012, "w": 120, "h": 80}, "d_gradient_02_001.png": {"x": 3222, "y": 4012, "w": 80, "h": 80}, "d_gradient_04_001.png": {"x": 3304, "y": 4012, "w": 80, "h": 80}, "d_gradient_05_001.png": {"x": 3386, "y": 4012, "w": 80, "h": 80}, "d_gradient_06_001.png": {"x": 3468, "y": 4012, "w": 60, "h": 80}, "d_thorn_04_001.png": {"x": 3530, "y": 4012, "w": 70, "h": 80}, "iceSpike_03_001.png": {"x": 3602, "y": 4012, "w": 81, "h": 80}, "lightsquare_04_sideLine_001.png": {"x": 3685, "y": 4012, "w": 120, "h": 80}, "persp_block001_04_001.png": {"x": 3807, "y": 4012, "w": 80, "h": 80}, "persp_block002_04_001.png": {"x": 3889, "y": 4012, "w": 80, "h": 80}, "persp_block005_04_001.png": {"x": 3971, "y": 4012, "w": 80, "h": 80}, "persp_block005b_04_001.png": {"x": 4053, "y": 4012, "w": 80, "h": 80}, "persp_block007_04_001.png": {"x": 4135, "y": 4012, "w": 80, "h": 80}, "persp_block007_04_color_001.png": {"x": 4217, "y": 4012, "w": 80, "h": 80}, "persp_block009_04_001.png": {"x": 4299, "y": 4012, "w": 80, "h": 80}, "persp_block009_04b_001.png": {"x": 4381, "y": 4012, "w": 80, "h": 80}, "persp_block011_04_001.png": {"x": 4463, "y": 4012, "w": 80, "h": 80}, "persp_block011_04_color_001.png": {"x": 4545, "y": 4012, "w": 80, "h": 80}, "persp_block012_04_001.png": {"x": 4627, "y": 4012, "w": 80, "h": 80}, "persp_blockb_04_001.png": {"x": 4709, "y": 4012, "w": 80, "h": 80}, "persp_blockc_04_001.png": {"x": 4791, "y": 4012, "w": 80, "h": 80}, "persp_blockd_04_001.png": {"x": 0, "y": 4100, "w": 80, "h": 80}, "persp_blocke_04_001.png": {"x": 82, "y": 4100, "w": 80, "h": 80}, "persp_blockf_04_001.png": {"x": 164, "y": 4100, "w": 80, "h": 80}, "persp_blockg_04_001.png": {"x": 246, "y": 4100, "w": 80, "h": 80}, "persp_blockh_04_001.png": {"x": 328, "y": 4100, "w": 80, "h": 80}, "persp_lblock01_04_001.png": {"x": 410, "y": 4100, "w": 80, "h": 80}, "persp_lblock02_04_001.png": {"x": 492, "y": 4100, "w": 80, "h": 80}, "persp_lblock03_04_001.png": {"x": 574, "y": 4100, "w": 80, "h": 80}, "persp_lblock04_04_001.png": {"x": 656, "y": 4100, "w": 80, "h": 80}, "persp_lblock05_04_001.png": {"x": 738, "y": 4100, "w": 80, "h": 80}, "persp_outline_05_001.png": {"x": 820, "y": 4100, "w": 80, "h": 80}, "whiteSquare40_001.png": {"x": 902, "y": 4100, "w": 80, "h": 80}, "block007_bgcolor_006_001.png": {"x": 984, "y": 4100, "w": 80, "h": 78}, "d_geometric_03_001.png": {"x": 1066, "y": 4100, "w": 90, "h": 78}, "pit_04_slope_02_001.png": {"x": 1158, "y": 4100, "w": 272, "h": 77}, "block007_color_004_001.png": {"x": 1432, "y": 4100, "w": 108, "h": 76}, "block011_light_12_001.png": {"x": 1542, "y": 4100, "w": 68, "h": 76}, "colorSpike_03_001.png": {"x": 1612, "y": 4100, "w": 80, "h": 76}, "fakeSpike_03_001.png": {"x": 1694, "y": 4100, "w": 80, "h": 76}, "invis_spike_03_001.png": {"x": 1776, "y": 4100, "w": 80, "h": 76}, "plank_01_slope_01_001.png": {"x": 1858, "y": 4100, "w": 170, "h": 76}, "plank_01_slope_01_color_001.png": {"x": 2030, "y": 4100, "w": 170, "h": 76}, "spike_03_001.png": {"x": 2202, "y": 4100, "w": 80, "h": 76}, "block011b_piece_06_color_001.png": {"x": 2284, "y": 4100, "w": 38, "h": 74}, "block011b_piece_08_color_001.png": {"x": 2324, "y": 4100, "w": 36, "h": 74}, "d_key01_color_001.png": {"x": 2362, "y": 4100, "w": 110, "h": 74}, "block007_07_color_001.png": {"x": 2474, "y": 4100, "w": 12, "h": 72}, "block007b_bgcolor_03_001.png": {"x": 2488, "y": 4100, "w": 120, "h": 72}, "block007b_bgcolor_07_001.png": {"x": 2610, "y": 4100, "w": 72, "h": 72}, "block011_light_08_001.png": {"x": 2684, "y": 4100, "w": 122, "h": 72}, "d_cloud_05_001.png": {"x": 2808, "y": 4100, "w": 152, "h": 72}, "persp_block005_05_001.png": {"x": 2962, "y": 4100, "w": 100, "h": 72}, "persp_block005b_05_001.png": {"x": 3064, "y": 4100, "w": 100, "h": 72}, "persp_block007_05_color_001.png": {"x": 3166, "y": 4100, "w": 100, "h": 72}, "persp_block009_05_001.png": {"x": 3268, "y": 4100, "w": 100, "h": 72}, "persp_block009_05b_001.png": {"x": 3370, "y": 4100, "w": 100, "h": 72}, "persp_block011_05_001.png": {"x": 3472, "y": 4100, "w": 100, "h": 72}, "persp_block011_05_color_001.png": {"x": 3574, "y": 4100, "w": 100, "h": 72}, "persp_block012_05_001.png": {"x": 3676, "y": 4100, "w": 100, "h": 72}, "pit_01_slope_01_001.png": {"x": 3778, "y": 4100, "w": 170, "h": 72}, "pit_06_001.png": {"x": 3950, "y": 4100, "w": 121, "h": 72}, "pit_06_2_001.png": {"x": 4073, "y": 4100, "w": 121, "h": 72}, "pit_07_shine_001.png": {"x": 4196, "y": 4100, "w": 120, "h": 72}, "block011_light_07_001.png": {"x": 4318, "y": 4100, "w": 138, "h": 70}, "d_flower01_01_001.png": {"x": 4458, "y": 4100, "w": 66, "h": 70}, "d_flower01_01_color_001.png": {"x": 4526, "y": 4100, "w": 44, "h": 70}, "d_thorn_05_001.png": {"x": 4572, "y": 4100, "w": 50, "h": 70}, "lava_top_bubble_color_001.png": {"x": 4624, "y": 4100, "w": 120, "h": 70}, "lava_top_bubble_color_002.png": {"x": 4746, "y": 4100, "w": 120, "h": 70}, "lava_top_bubble_color_003.png": {"x": 0, "y": 4182, "w": 120, "h": 70}, "lava_top_bubble_color_004.png": {"x": 122, "y": 4182, "w": 120, "h": 70}, "lava_top_bubble_color_005.png": {"x": 244, "y": 4182, "w": 120, "h": 70}, "lava_top_bubble_color_006.png": {"x": 366, "y": 4182, "w": 120, "h": 70}, "lava_top_bubble_color_007.png": {"x": 488, "y": 4182, "w": 120, "h": 70}, "lava_top_bubble_color_008.png": {"x": 610, "y": 4182, "w": 120, "h": 70}, "persp_block001_05_001.png": {"x": 732, "y": 4182, "w": 100, "h": 70}, "persp_block002_05_001.png": {"x": 834, "y": 4182, "w": 100, "h": 70}, "persp_block007_05_001.png": {"x": 936, "y": 4182, "w": 100, "h": 70}, "persp_blockb_05_001.png": {"x": 1038, "y": 4182, "w": 100, "h": 70}, "persp_blockc_05_001.png": {"x": 1140, "y": 4182, "w": 100, "h": 70}, "persp_blockd_05_001.png": {"x": 1242, "y": 4182, "w": 100, "h": 70}, "persp_blocke_05_001.png": {"x": 1344, "y": 4182, "w": 100, "h": 70}, "persp_blockf_05_001.png": {"x": 1446, "y": 4182, "w": 100, "h": 70}, "persp_blockg_05_001.png": {"x": 1548, "y": 4182, "w": 100, "h": 70}, "persp_blockh_05_001.png": {"x": 1650, "y": 4182, "w": 100, "h": 70}, "persp_lblock01_05_001.png": {"x": 1752, "y": 4182, "w": 100, "h": 70}, "persp_lblock01_06_001.png": {"x": 1854, "y": 4182, "w": 100, "h": 70}, "persp_lblock02_05_001.png": {"x": 1956, "y": 4182, "w": 100, "h": 70}, "persp_lblock03_05_001.png": {"x": 2058, "y": 4182, "w": 100, "h": 70}, "persp_lblock04_05_001.png": {"x": 2160, "y": 4182, "w": 100, "h": 70}, "persp_lblock05_05_001.png": {"x": 2262, "y": 4182, "w": 100, "h": 70}, "block007b_08_color_001.png": {"x": 2364, "y": 4182, "w": 68, "h": 68}, "block011_light_05_001.png": {"x": 2434, "y": 4182, "w": 130, "h": 68}, "block011_light_06_001.png": {"x": 2566, "y": 4182, "w": 122, "h": 68}, "colorSpike_03_color_001.png": {"x": 2690, "y": 4182, "w": 66, "h": 68}, "d_grassArt_03_001.png": {"x": 2758, "y": 4182, "w": 80, "h": 68}, "darkblade_02_color_001.png": {"x": 2840, "y": 4182, "w": 68, "h": 68}, "lava_top_bubble02_001.png": {"x": 2910, "y": 4182, "w": 120, "h": 68}, "lava_top_bubble02_002.png": {"x": 3032, "y": 4182, "w": 120, "h": 68}, "lava_top_bubble02_003.png": {"x": 3154, "y": 4182, "w": 120, "h": 68}, "lava_top_bubble02_004.png": {"x": 3276, "y": 4182, "w": 120, "h": 68}, "lava_top_bubble02_005.png": {"x": 3398, "y": 4182, "w": 120, "h": 68}, "lava_top_bubble02_006.png": {"x": 3520, "y": 4182, "w": 120, "h": 68}, "block011_edge_12_001.png": {"x": 3642, "y": 4182, "w": 68, "h": 66}, "block013_edge_03_color_001.png": {"x": 3712, "y": 4182, "w": 40, "h": 66}, "d_grassArt_02_001.png": {"x": 3754, "y": 4182, "w": 116, "h": 66}, "d_skull_01_001.png": {"x": 3872, "y": 4182, "w": 78, "h": 66}, "pit_04_slope_01_001.png": {"x": 3952, "y": 4182, "w": 171, "h": 66}, "block011_edge_07_001.png": {"x": 4125, "y": 4182, "w": 126, "h": 64}, "block011_edge_07_color_001.png": {"x": 4253, "y": 4182, "w": 38, "h": 64}, "block011_edge_08_001.png": {"x": 4293, "y": 4182, "w": 122, "h": 64}, "block011_edge_08_color_001.png": {"x": 4417, "y": 4182, "w": 98, "h": 64}, "block013_detail_04_001.png": {"x": 4517, "y": 4182, "w": 84, "h": 64}, "d_grassDetail_02_001.png": {"x": 4603, "y": 4182, "w": 48, "h": 64}, "d_skull_02_001.png": {"x": 4653, "y": 4182, "w": 72, "h": 64}, "square_b_01_001.png": {"x": 4727, "y": 4182, "w": 120, "h": 64}, "square_b_04_001.png": {"x": 0, "y": 4254, "w": 120, "h": 64}, "square_b_05_001.png": {"x": 122, "y": 4254, "w": 120, "h": 64}, "square_b_06_001.png": {"x": 244, "y": 4254, "w": 120, "h": 64}, "block011b_piece_07_color_001.png": {"x": 366, "y": 4254, "w": 56, "h": 62}, "d_sign_img_01_001.png": {"x": 424, "y": 4254, "w": 62, "h": 62}, "d_sign_img_05_001.png": {"x": 488, "y": 4254, "w": 28, "h": 62}, "d_sign_img_06_001.png": {"x": 518, "y": 4254, "w": 42, "h": 62}, "d_swirve_01_001.png": {"x": 562, "y": 4254, "w": 120, "h": 62}, "d_swirve_03_001.png": {"x": 684, "y": 4254, "w": 120, "h": 62}, "iceSpike_02_001.png": {"x": 806, "y": 4254, "w": 120, "h": 62}, "block003_color_05_001.png": {"x": 928, "y": 4254, "w": 60, "h": 60}, "block006_09_001.png": {"x": 990, "y": 4254, "w": 60, "h": 60}, "block006_13_001.png": {"x": 1052, "y": 4254, "w": 120, "h": 60}, "block006_15_001.png": {"x": 1174, "y": 4254, "w": 120, "h": 60}, "block006_color_05_001.png": {"x": 1296, "y": 4254, "w": 60, "h": 60}, "block007_01_small_001.png": {"x": 1358, "y": 4254, "w": 60, "h": 60}, "block008_02_001.png": {"x": 1420, "y": 4254, "w": 60, "h": 60}, "block008_03_001.png": {"x": 1482, "y": 4254, "w": 60, "h": 60}, "block008_04_001.png": {"x": 1544, "y": 4254, "w": 60, "h": 60}, "block008_04_color_001.png": {"x": 1606, "y": 4254, "w": 60, "h": 60}, "block008_05_001.png": {"x": 1668, "y": 4254, "w": 60, "h": 60}, "block008_05_color_001.png": {"x": 1730, "y": 4254, "w": 60, "h": 60}, "block008_06_001.png": {"x": 1792, "y": 4254, "w": 60, "h": 60}, "block008_06_color_b_001.png": {"x": 1854, "y": 4254, "w": 54, "h": 60}, "block008_07_001.png": {"x": 1910, "y": 4254, "w": 60, "h": 60}, "block008_07_color_001.png": {"x": 1972, "y": 4254, "w": 54, "h": 60}, "block008_08_001.png": {"x": 2028, "y": 4254, "w": 60, "h": 60}, "block008_08_color_001.png": {"x": 2090, "y": 4254, "w": 48, "h": 60}, "block008_09_001.png": {"x": 2140, "y": 4254, "w": 60, "h": 60}, "block008_10_001.png": {"x": 2202, "y": 4254, "w": 60, "h": 60}, "block008_11_001.png": {"x": 2264, "y": 4254, "w": 60, "h": 60}, "block008_color_05b_001.png": {"x": 2326, "y": 4254, "w": 54, "h": 60}, "block008_topcolor_07_001.png": {"x": 2382, "y": 4254, "w": 60, "h": 60}, "block008_topcolor_07b_001.png": {"x": 2444, "y": 4254, "w": 60, "h": 60}, "block008_topcolor_07c_001.png": {"x": 2506, "y": 4254, "w": 60, "h": 60}, "block008_topcolor_08_001.png": {"x": 2568, "y": 4254, "w": 20, "h": 60}, "block008_topcolor_08b_001.png": {"x": 2590, "y": 4254, "w": 20, "h": 60}, "block008_topcolor_10_001.png": {"x": 2612, "y": 4254, "w": 60, "h": 60}, "block008_topcolor_10b_001.png": {"x": 2674, "y": 4254, "w": 60, "h": 60}, "block008_topcolor_11_001.png": {"x": 2736, "y": 4254, "w": 60, "h": 60}, "block009_part_01_001.png": {"x": 2798, "y": 4254, "w": 120, "h": 60}, "block009_part_02_001.png": {"x": 2920, "y": 4254, "w": 60, "h": 60}, "block009c_02_001.png": {"x": 2982, "y": 4254, "w": 120, "h": 60}, "block009c_04_001.png": {"x": 3104, "y": 4254, "w": 44, "h": 60}, "block009c_04_color_001.png": {"x": 3150, "y": 4254, "w": 38, "h": 60}, "block009c_05_001.png": {"x": 3190, "y": 4254, "w": 44, "h": 60}, "block009c_05_color_001.png": {"x": 3236, "y": 4254, "w": 38, "h": 60}, "block011_edge_05_001.png": {"x": 3276, "y": 4254, "w": 122, "h": 60}, "block011_edge_05_color_001.png": {"x": 3400, "y": 4254, "w": 122, "h": 60}, "block011_edge_06_001.png": {"x": 3524, "y": 4254, "w": 122, "h": 60}, "block011_edge_06_color_001.png": {"x": 3648, "y": 4254, "w": 122, "h": 60}, "block011_edge_09_001.png": {"x": 3772, "y": 4254, "w": 50, "h": 60}, "block011_edge_09_color_001.png": {"x": 3824, "y": 4254, "w": 50, "h": 60}, "block011_edge_10_001.png": {"x": 3876, "y": 4254, "w": 68, "h": 60}, "block011_edge_11_001.png": {"x": 3946, "y": 4254, "w": 50, "h": 60}, "block011_edge_11_color_001.png": {"x": 3998, "y": 4254, "w": 42, "h": 60}, "block011_light_09_001.png": {"x": 4042, "y": 4254, "w": 58, "h": 60}, "block011_light_10_001.png": {"x": 4102, "y": 4254, "w": 68, "h": 60}, "block011_light_11_001.png": {"x": 4172, "y": 4254, "w": 58, "h": 60}, "block012_light_04_001.png": {"x": 4232, "y": 4254, "w": 120, "h": 60}, "block013_detail_03_001.png": {"x": 4354, "y": 4254, "w": 128, "h": 60}, "blockOutlineThick_07_001.png": {"x": 4484, "y": 4254, "w": 60, "h": 60}, "blockOutline_10_001.png": {"x": 4546, "y": 4254, "w": 60, "h": 60}, "blockOutline_11_001.png": {"x": 4608, "y": 4254, "w": 120, "h": 60}, "blockOutline_12_001.png": {"x": 4730, "y": 4254, "w": 120, "h": 60}, "blockOutline_13_001.png": {"x": 0, "y": 4320, "w": 120, "h": 60}, "colorSquare_01_small_001.png": {"x": 122, "y": 4320, "w": 60, "h": 60}, "d_animLoading_01_001.png": {"x": 184, "y": 4320, "w": 60, "h": 60}, "d_animLoading_01_002.png": {"x": 246, "y": 4320, "w": 60, "h": 60}, "d_animLoading_01_003.png": {"x": 308, "y": 4320, "w": 60, "h": 60}, "d_animLoading_01_004.png": {"x": 370, "y": 4320, "w": 60, "h": 60}, "d_animLoading_01_005.png": {"x": 432, "y": 4320, "w": 60, "h": 60}, "d_animLoading_01_006.png": {"x": 494, "y": 4320, "w": 60, "h": 60}, "d_animLoading_01_color_001.png": {"x": 556, "y": 4320, "w": 60, "h": 60}, "d_animLoading_01_color_002.png": {"x": 618, "y": 4320, "w": 60, "h": 60}, "d_animLoading_01_color_003.png": {"x": 680, "y": 4320, "w": 60, "h": 60}, "d_animLoading_01_color_004.png": {"x": 742, "y": 4320, "w": 60, "h": 60}, "d_animLoading_01_color_005.png": {"x": 804, "y": 4320, "w": 60, "h": 60}, "d_animLoading_01_color_006.png": {"x": 866, "y": 4320, "w": 60, "h": 60}, "d_animLoading_02_001.png": {"x": 928, "y": 4320, "w": 120, "h": 60}, "d_animLoading_02_002.png": {"x": 1050, "y": 4320, "w": 120, "h": 60}, "d_animLoading_02_003.png": {"x": 1172, "y": 4320, "w": 120, "h": 60}, "d_animLoading_02_004.png": {"x": 1294, "y": 4320, "w": 120, "h": 60}, "d_animLoading_02_005.png": {"x": 1416, "y": 4320, "w": 120, "h": 60}, "d_animLoading_02_006.png": {"x": 1538, "y": 4320, "w": 120, "h": 60}, "d_animLoading_02_007.png": {"x": 1660, "y": 4320, "w": 120, "h": 60}, "d_animLoading_02_color_001.png": {"x": 1782, "y": 4320, "w": 120, "h": 60}, "d_animLoading_02_color_002.png": {"x": 1904, "y": 4320, "w": 120, "h": 60}, "d_animLoading_02_color_003.png": {"x": 2026, "y": 4320, "w": 120, "h": 60}, "d_animLoading_02_color_004.png": {"x": 2148, "y": 4320, "w": 120, "h": 60}, "d_animLoading_02_color_005.png": {"x": 2270, "y": 4320, "w": 120, "h": 60}, "d_animLoading_02_color_006.png": {"x": 2392, "y": 4320, "w": 120, "h": 60}, "d_animLoading_02_color_007.png": {"x": 2514, "y": 4320, "w": 120, "h": 60}, "d_bar_02_001.png": {"x": 2636, "y": 4320, "w": 60, "h": 60}, "d_block04_piece01_001.png": {"x": 2698, "y": 4320, "w": 60, "h": 60}, "d_block04_piece02_001.png": {"x": 2760, "y": 4320, "w": 60, "h": 60}, "d_block04_piece03_001.png": {"x": 2822, "y": 4320, "w": 120, "h": 60}, "d_block04_piece04_001.png": {"x": 2944, "y": 4320, "w": 120, "h": 60}, "d_block04_piece05_001.png": {"x": 3066, "y": 4320, "w": 60, "h": 60}, "d_block04_piece09_001.png": {"x": 3128, "y": 4320, "w": 120, "h": 60}, "d_block04_piece10_001.png": {"x": 3250, "y": 4320, "w": 60, "h": 60}, "d_block04_piece12_001.png": {"x": 3312, "y": 4320, "w": 120, "h": 60}, "d_block04_piece13_001.png": {"x": 3434, "y": 4320, "w": 60, "h": 60}, "d_gradient_b_03_001.png": {"x": 3496, "y": 4320, "w": 60, "h": 60}, "d_pixelArt01_001_001.png": {"x": 3558, "y": 4320, "w": 120, "h": 60}, "d_scaleFadeRing_03_001.png": {"x": 3680, "y": 4320, "w": 60, "h": 60}, "d_scaleFadeRing_04_001.png": {"x": 3742, "y": 4320, "w": 60, "h": 60}, "d_spiral_04_001.png": {"x": 3804, "y": 4320, "w": 62, "h": 60}, "d_square_03_02_001.png": {"x": 3868, "y": 4320, "w": 120, "h": 60}, "d_square_03_03_001.png": {"x": 3990, "y": 4320, "w": 60, "h": 60}, "d_whiteBlock_01_001.png": {"x": 4052, "y": 4320, "w": 60, "h": 60}, "d_zag_01_003.png": {"x": 4114, "y": 4320, "w": 120, "h": 60}, "invis_square_01_small_001.png": {"x": 4236, "y": 4320, "w": 61, "h": 60}, "lightsquare_05_brick02_001.png": {"x": 4299, "y": 4320, "w": 120, "h": 60}, "lightsquare_05_brick03_001.png": {"x": 4421, "y": 4320, "w": 60, "h": 60}, "pit_07_001.png": {"x": 4483, "y": 4320, "w": 121, "h": 60}, "plank007_01_001.png": {"x": 4606, "y": 4320, "w": 120, "h": 60}, "plank007_02_001.png": {"x": 4728, "y": 4320, "w": 120, "h": 60}, "plank007_03_001.png": {"x": 0, "y": 4382, "w": 120, "h": 60}, "smallOutline_02_001.png": {"x": 122, "y": 4382, "w": 60, "h": 60}, "smallOutline_03_001.png": {"x": 184, "y": 4382, "w": 60, "h": 60}, "smallOutline_04_001.png": {"x": 246, "y": 4382, "w": 60, "h": 60}, "smallOutline_05_001.png": {"x": 308, "y": 4382, "w": 60, "h": 60}, "spiderBump_001.png": {"x": 370, "y": 4382, "w": 114, "h": 60}, "square_01_small_001.png": {"x": 486, "y": 4382, "w": 60, "h": 60}, "square_f_brick01_001.png": {"x": 548, "y": 4382, "w": 120, "h": 60}, "square_f_brick02_001.png": {"x": 670, "y": 4382, "w": 60, "h": 60}, "waterfallAnim_001.png": {"x": 732, "y": 4382, "w": 60, "h": 60}, "waterfallAnim_002.png": {"x": 794, "y": 4382, "w": 60, "h": 60}, "waterfallAnim_003.png": {"x": 856, "y": 4382, "w": 60, "h": 60}, "waterfallAnim_004.png": {"x": 918, "y": 4382, "w": 60, "h": 60}, "waterfallAnim_005.png": {"x": 980, "y": 4382, "w": 60, "h": 60}, "waterfallAnim_006.png": {"x": 1042, "y": 4382, "w": 60, "h": 60}, "waterfallAnim_007.png": {"x": 1104, "y": 4382, "w": 60, "h": 60}, "waterfallAnim_008.png": {"x": 1166, "y": 4382, "w": 60, "h": 60}, "waterfallAnim_009.png": {"x": 1228, "y": 4382, "w": 60, "h": 60}, "waterfallAnim_010.png": {"x": 1290, "y": 4382, "w": 60, "h": 60}, "waterfallAnim_color_001.png": {"x": 1352, "y": 4382, "w": 60, "h": 60}, "waterfallAnim_color_002.png": {"x": 1414, "y": 4382, "w": 60, "h": 60}, "waterfallAnim_color_003.png": {"x": 1476, "y": 4382, "w": 60, "h": 60}, "waterfallAnim_color_004.png": {"x": 1538, "y": 4382, "w": 60, "h": 60}, "waterfallAnim_color_005.png": {"x": 1600, "y": 4382, "w": 60, "h": 60}, "waterfallAnim_color_006.png": {"x": 1662, "y": 4382, "w": 60, "h": 60}, "waterfallAnim_color_007.png": {"x": 1724, "y": 4382, "w": 60, "h": 60}, "waterfallAnim_color_008.png": {"x": 1786, "y": 4382, "w": 60, "h": 60}, "waterfallAnim_color_009.png": {"x": 1848, "y": 4382, "w": 60, "h": 60}, "waterfallAnim_color_010.png": {"x": 1910, "y": 4382, "w": 60, "h": 60}, "bladeTrap01_color_001.png": {"x": 1972, "y": 4382, "w": 58, "h": 58}, "bladeTrap02_color_001.png": {"x": 2032, "y": 4382, "w": 58, "h": 58}, "block005c_02_001.png": {"x": 2092, "y": 4382, "w": 120, "h": 58}, "block013_light_09_001.png": {"x": 2214, "y": 4382, "w": 120, "h": 58}, "block013_light_11_001.png": {"x": 2336, "y": 4382, "w": 120, "h": 58}, "d_sign_img_02_001.png": {"x": 2458, "y": 4382, "w": 70, "h": 58}, "d_zag_01_001.png": {"x": 2530, "y": 4382, "w": 120, "h": 58}, "d_zag_01_002.png": {"x": 2652, "y": 4382, "w": 120, "h": 58}, "square_01_small_color_001.png": {"x": 2774, "y": 4382, "w": 58, "h": 58}, "square_b_03_001.png": {"x": 2834, "y": 4382, "w": 58, "h": 58}, "bladeTrap03_color_001.png": {"x": 2894, "y": 4382, "w": 62, "h": 56}, "block009_part_01_color_001.png": {"x": 2958, "y": 4382, "w": 112, "h": 56}, "block009_part_02_color_001.png": {"x": 3072, "y": 4382, "w": 52, "h": 56}, "block011b_01_color_001.png": {"x": 3126, "y": 4382, "w": 50, "h": 56}, "block011b_piece_01_color_001.png": {"x": 3178, "y": 4382, "w": 52, "h": 56}, "block013_detail_04_color_001.png": {"x": 3232, "y": 4382, "w": 62, "h": 56}, "block013_light_c_02_001.png": {"x": 3296, "y": 4382, "w": 30, "h": 56}, "block013_light_c_05_001.png": {"x": 3328, "y": 4382, "w": 42, "h": 56}, "block013_light_c_13_001.png": {"x": 3372, "y": 4382, "w": 34, "h": 56}, "d_grass_01_001.png": {"x": 3408, "y": 4382, "w": 54, "h": 56}, "ring_02_extra_001.png": {"x": 3464, "y": 4382, "w": 68, "h": 56}, "ring_custom_01_color_001.png": {"x": 3534, "y": 4382, "w": 56, "h": 56}, "block008_02_color_001.png": {"x": 3592, "y": 4382, "w": 54, "h": 54}, "block008_03_color_001.png": {"x": 3648, "y": 4382, "w": 60, "h": 54}, "block008_06_color_001.png": {"x": 3710, "y": 4382, "w": 60, "h": 54}, "block009c_02_color_001.png": {"x": 3772, "y": 4382, "w": 114, "h": 54}, "block013_04c_color_001.png": {"x": 3888, "y": 4382, "w": 86, "h": 54}, "block013_light_10_001.png": {"x": 3976, "y": 4382, "w": 120, "h": 54}, "colorPlank_01_001.png": {"x": 4098, "y": 4382, "w": 120, "h": 54}, "colorSpike_02_001.png": {"x": 4220, "y": 4382, "w": 120, "h": 54}, "d_grass_04_001.png": {"x": 4342, "y": 4382, "w": 54, "h": 54}, "fakeSpike_02_001.png": {"x": 4398, "y": 4382, "w": 120, "h": 54}, "invis_plank_01_001.png": {"x": 4520, "y": 4382, "w": 121, "h": 54}, "invis_spike_02_001.png": {"x": 4643, "y": 4382, "w": 120, "h": 54}, "plank_01_001.png": {"x": 4765, "y": 4382, "w": 120, "h": 54}, "plank_01_02_001.png": {"x": 0, "y": 4444, "w": 120, "h": 54}, "plank_01_03_001.png": {"x": 122, "y": 4444, "w": 120, "h": 54}, "plank_01_square_01_001.png": {"x": 244, "y": 4444, "w": 60, "h": 54}, "plank_01_square_01_color_001.png": {"x": 306, "y": 4444, "w": 60, "h": 54}, "plank_01_square_02_001.png": {"x": 368, "y": 4444, "w": 120, "h": 54}, "plank_01_square_02_color_001.png": {"x": 490, "y": 4444, "w": 120, "h": 54}, "spike_02_001.png": {"x": 612, "y": 4444, "w": 120, "h": 54}, "starAnim_001.png": {"x": 734, "y": 4444, "w": 52, "h": 54}, "starAnim_002.png": {"x": 788, "y": 4444, "w": 52, "h": 54}, "starAnim_003.png": {"x": 842, "y": 4444, "w": 52, "h": 54}, "starAnim_004.png": {"x": 896, "y": 4444, "w": 52, "h": 54}, "starAnim_005.png": {"x": 950, "y": 4444, "w": 52, "h": 54}, "starAnim_006.png": {"x": 1004, "y": 4444, "w": 52, "h": 54}, "starAnim_007.png": {"x": 1058, "y": 4444, "w": 52, "h": 54}, "starAnim_008.png": {"x": 1112, "y": 4444, "w": 52, "h": 54}, "starAnim_009.png": {"x": 1166, "y": 4444, "w": 52, "h": 54}, "starAnim_010.png": {"x": 1220, "y": 4444, "w": 52, "h": 54}, "block007_color_006_001.png": {"x": 1274, "y": 4444, "w": 108, "h": 52}, "block007_color_007_001.png": {"x": 1384, "y": 4444, "w": 108, "h": 52}, "block013_detail_01_001.png": {"x": 1494, "y": 4444, "w": 120, "h": 52}, "block013_light_c_10_001.png": {"x": 1616, "y": 4444, "w": 30, "h": 52}, "d_grassArt_04_001.png": {"x": 1648, "y": 4444, "w": 58, "h": 52}, "d_spikes_04_001.png": {"x": 1708, "y": 4444, "w": 168, "h": 52}, "pit_05_001.png": {"x": 1878, "y": 4444, "w": 121, "h": 52}, "pit_05_02_001.png": {"x": 2001, "y": 4444, "w": 121, "h": 52}, "pit_05_03_001.png": {"x": 2124, "y": 4444, "w": 60, "h": 52}, "block009c_slope_02_color_001.png": {"x": 2186, "y": 4444, "w": 258, "h": 51}, "block013_03c_color_001.png": {"x": 2446, "y": 4444, "w": 100, "h": 50}, "block013_detail_03_color_001.png": {"x": 2548, "y": 4444, "w": 114, "h": 50}, "block013_detail_05_001.png": {"x": 2664, "y": 4444, "w": 60, "h": 50}, "colorSquare_01_small_color_001.png": {"x": 2726, "y": 4444, "w": 50, "h": 50}, "d_03_chain_02_001.png": {"x": 2778, "y": 4444, "w": 94, "h": 50}, "gravring_01_extra_001.png": {"x": 2874, "y": 4444, "w": 52, "h": 50}, "persp_outline_04_001.png": {"x": 2928, "y": 4444, "w": 50, "h": 50}, "persp_outline_06_001.png": {"x": 2980, "y": 4444, "w": 50, "h": 50}, "rod_03_001.png": {"x": 3032, "y": 4444, "w": 22, "h": 50}, "block009c_color_07_001.png": {"x": 3056, "y": 4444, "w": 264, "h": 49}, "block005_09_001.png": {"x": 3322, "y": 4444, "w": 48, "h": 48}, "block005b_09_001.png": {"x": 3372, "y": 4444, "w": 48, "h": 48}, "block013_edge_09_001.png": {"x": 3422, "y": 4444, "w": 120, "h": 48}, "block013_edge_10_001.png": {"x": 3544, "y": 4444, "w": 120, "h": 48}, "block013_edge_11_001.png": {"x": 3666, "y": 4444, "w": 120, "h": 48}, "block013_edge_12_001.png": {"x": 3788, "y": 4444, "w": 120, "h": 48}, "block013_edge_c_05_001.png": {"x": 3910, "y": 4444, "w": 32, "h": 48}, "block013_light_15_001.png": {"x": 3944, "y": 4444, "w": 120, "h": 48}, "colorSpike_04_001.png": {"x": 4066, "y": 4444, "w": 50, "h": 48}, "d_sign_img_03_001.png": {"x": 4118, "y": 4444, "w": 78, "h": 48}, "d_sign_img_04_001.png": {"x": 4198, "y": 4444, "w": 78, "h": 48}, "fakeSpike_04_001.png": {"x": 4278, "y": 4444, "w": 50, "h": 48}, "gravJumpRing_01_extra_001.png": {"x": 4330, "y": 4444, "w": 48, "h": 48}, "invis_spike_04_001.png": {"x": 4380, "y": 4444, "w": 50, "h": 48}, "plank_01_color_001.png": {"x": 4432, "y": 4444, "w": 116, "h": 48}, "spike_04_001.png": {"x": 4550, "y": 4444, "w": 50, "h": 48}, "block013_edge_c_02_001.png": {"x": 4602, "y": 4444, "w": 20, "h": 46}, "block013_edge_c_13_001.png": {"x": 4624, "y": 4444, "w": 24, "h": 46}, "d_flower01_01_shine_001.png": {"x": 4650, "y": 4444, "w": 22, "h": 46}, "block013_detail_01_color_001.png": {"x": 4674, "y": 4444, "w": 120, "h": 44}, "block013_detail_02_001.png": {"x": 4796, "y": 4444, "w": 12, "h": 44}, "block013_detail_02_color_001.png": {"x": 4810, "y": 4444, "w": 12, "h": 44}, "block013_detail_05_color_001.png": {"x": 4824, "y": 4444, "w": 60, "h": 44}, "block013_detail_06_001.png": {"x": 0, "y": 4500, "w": 40, "h": 44}, "block013_detail_06_color_001.png": {"x": 42, "y": 4500, "w": 38, "h": 44}, "block013_light_12_001.png": {"x": 82, "y": 4500, "w": 120, "h": 44}, "block013_light_c_12_001.png": {"x": 204, "y": 4500, "w": 24, "h": 44}, "block013_light_c_15_001.png": {"x": 230, "y": 4500, "w": 38, "h": 44}, "colorPlank_01_color_001.png": {"x": 270, "y": 4500, "w": 110, "h": 44}, "colorSpike_02_color_001.png": {"x": 382, "y": 4500, "w": 92, "h": 44}, "d_grassDetail_03_001.png": {"x": 476, "y": 4500, "w": 32, "h": 44}, "lava_top_bubble02_color_001.png": {"x": 510, "y": 4500, "w": 120, "h": 44}, "lava_top_bubble02_color_002.png": {"x": 632, "y": 4500, "w": 120, "h": 44}, "lava_top_bubble02_color_003.png": {"x": 754, "y": 4500, "w": 120, "h": 44}, "lava_top_bubble02_color_004.png": {"x": 876, "y": 4500, "w": 120, "h": 44}, "lava_top_bubble02_color_005.png": {"x": 998, "y": 4500, "w": 120, "h": 44}, "lava_top_bubble02_color_006.png": {"x": 1120, "y": 4500, "w": 120, "h": 44}, "lava_top_color_001.png": {"x": 1242, "y": 4500, "w": 120, "h": 44}, "lava_top_color_002.png": {"x": 1364, "y": 4500, "w": 120, "h": 44}, "lava_top_color_003.png": {"x": 1486, "y": 4500, "w": 120, "h": 44}, "lava_top_color_004.png": {"x": 1608, "y": 4500, "w": 120, "h": 44}, "lava_top_color_005.png": {"x": 1730, "y": 4500, "w": 120, "h": 44}, "lava_top_color_006.png": {"x": 1852, "y": 4500, "w": 120, "h": 44}, "lava_top_color_007.png": {"x": 1974, "y": 4500, "w": 120, "h": 44}, "lava_top_color_008.png": {"x": 2096, "y": 4500, "w": 120, "h": 44}, "block011b_piece_05_color_001.png": {"x": 2218, "y": 4500, "w": 86, "h": 42}, "block013_edge_c_10_001.png": {"x": 2306, "y": 4500, "w": 20, "h": 42}, "block013_light_c_08_001.png": {"x": 2328, "y": 4500, "w": 34, "h": 42}, "colorSpike_04_color_001.png": {"x": 2364, "y": 4500, "w": 38, "h": 42}, "lava_top_001.png": {"x": 2404, "y": 4500, "w": 120, "h": 42}, "lava_top_002.png": {"x": 2526, "y": 4500, "w": 120, "h": 42}, "lava_top_003.png": {"x": 2648, "y": 4500, "w": 120, "h": 42}, "lava_top_004.png": {"x": 2770, "y": 4500, "w": 120, "h": 42}, "lava_top_005.png": {"x": 2892, "y": 4500, "w": 120, "h": 42}, "lava_top_006.png": {"x": 3014, "y": 4500, "w": 120, "h": 42}, "lava_top_007.png": {"x": 3136, "y": 4500, "w": 120, "h": 42}, "lava_top_008.png": {"x": 3258, "y": 4500, "w": 120, "h": 42}, "pit_07_2_shine_001.png": {"x": 3380, "y": 4500, "w": 42, "h": 42}, "pit_07_4_shine_001.png": {"x": 3424, "y": 4500, "w": 42, "h": 42}, "block009c_slope_01_color_001.png": {"x": 3468, "y": 4500, "w": 156, "h": 40}, "block013_edge_13_001.png": {"x": 3626, "y": 4500, "w": 120, "h": 40}, "block013_edge_14_001.png": {"x": 3748, "y": 4500, "w": 120, "h": 40}, "block013_edge_15_001.png": {"x": 3870, "y": 4500, "w": 120, "h": 40}, "block013_edge_16_001.png": {"x": 3992, "y": 4500, "w": 120, "h": 40}, "block013_light_c_03_001.png": {"x": 4114, "y": 4500, "w": 38, "h": 40}, "dA_blackSludge_01_001.png": {"x": 4154, "y": 4500, "w": 120, "h": 40}, "dA_blackSludge_02_001.png": {"x": 4276, "y": 4500, "w": 60, "h": 40}, "d_gradient_b_02_001.png": {"x": 4338, "y": 4500, "w": 40, "h": 40}, "d_gradient_b_04_001.png": {"x": 4380, "y": 4500, "w": 40, "h": 40}, "d_gradient_b_05_001.png": {"x": 4422, "y": 4500, "w": 40, "h": 40}, "d_gradient_b_06_001.png": {"x": 4464, "y": 4500, "w": 60, "h": 40}, "d_sign_tile_01_001.png": {"x": 4526, "y": 4500, "w": 120, "h": 40}, "darkblade_03_color_001.png": {"x": 4648, "y": 4500, "w": 40, "h": 40}, "persp_block001_01_001.png": {"x": 4690, "y": 4500, "w": 60, "h": 40}, "persp_block001_02_001.png": {"x": 4752, "y": 4500, "w": 60, "h": 40}, "persp_block001_03_001.png": {"x": 4814, "y": 4500, "w": 40, "h": 40}, "persp_block002_01_001.png": {"x": 4856, "y": 4500, "w": 60, "h": 40}, "persp_block002_02_001.png": {"x": 0, "y": 4546, "w": 60, "h": 40}, "persp_block002_03_001.png": {"x": 62, "y": 4546, "w": 40, "h": 40}, "persp_block005_01_001.png": {"x": 104, "y": 4546, "w": 60, "h": 40}, "persp_block005_02_001.png": {"x": 166, "y": 4546, "w": 60, "h": 40}, "persp_block005_03_001.png": {"x": 228, "y": 4546, "w": 40, "h": 40}, "persp_block005b_01_001.png": {"x": 270, "y": 4546, "w": 60, "h": 40}, "persp_block005b_02_001.png": {"x": 332, "y": 4546, "w": 60, "h": 40}, "persp_block005b_03_001.png": {"x": 394, "y": 4546, "w": 40, "h": 40}, "persp_block007_01_001.png": {"x": 436, "y": 4546, "w": 60, "h": 40}, "persp_block007_01_color_001.png": {"x": 498, "y": 4546, "w": 60, "h": 40}, "persp_block007_02_001.png": {"x": 560, "y": 4546, "w": 60, "h": 40}, "persp_block007_02_color_001.png": {"x": 622, "y": 4546, "w": 60, "h": 40}, "persp_block007_03_001.png": {"x": 684, "y": 4546, "w": 40, "h": 40}, "persp_block007_03_color_001.png": {"x": 726, "y": 4546, "w": 40, "h": 40}, "persp_block009_01_001.png": {"x": 768, "y": 4546, "w": 60, "h": 40}, "persp_block009_01b_001.png": {"x": 830, "y": 4546, "w": 60, "h": 40}, "persp_block009_02_001.png": {"x": 892, "y": 4546, "w": 60, "h": 40}, "persp_block009_03_001.png": {"x": 954, "y": 4546, "w": 40, "h": 40}, "persp_block011_01_001.png": {"x": 996, "y": 4546, "w": 60, "h": 40}, "persp_block011_01_color_001.png": {"x": 1058, "y": 4546, "w": 60, "h": 40}, "persp_block011_01b_001.png": {"x": 1120, "y": 4546, "w": 60, "h": 40}, "persp_block011_01b_color_001.png": {"x": 1182, "y": 4546, "w": 60, "h": 40}, "persp_block011_02_001.png": {"x": 1244, "y": 4546, "w": 60, "h": 40}, "persp_block011_02_color_001.png": {"x": 1306, "y": 4546, "w": 60, "h": 40}, "persp_block011_03_001.png": {"x": 1368, "y": 4546, "w": 40, "h": 40}, "persp_block011_03_color_001.png": {"x": 1410, "y": 4546, "w": 40, "h": 40}, "persp_block012_01_001.png": {"x": 1452, "y": 4546, "w": 60, "h": 40}, "persp_block012_02_001.png": {"x": 1514, "y": 4546, "w": 60, "h": 40}, "persp_block013_01_001.png": {"x": 1576, "y": 4546, "w": 60, "h": 40}, "persp_block013_02_001.png": {"x": 1638, "y": 4546, "w": 60, "h": 40}, "persp_block013_03_001.png": {"x": 1700, "y": 4546, "w": 40, "h": 40}, "persp_block013_06_001.png": {"x": 1742, "y": 4546, "w": 60, "h": 40}, "persp_block013_07_001.png": {"x": 1804, "y": 4546, "w": 60, "h": 40}, "persp_block013_08_001.png": {"x": 1866, "y": 4546, "w": 40, "h": 40}, "persp_block013_09_001.png": {"x": 1908, "y": 4546, "w": 120, "h": 40}, "persp_blockb_01_001.png": {"x": 2030, "y": 4546, "w": 60, "h": 40}, "persp_blockb_02_001.png": {"x": 2092, "y": 4546, "w": 60, "h": 40}, "persp_blockb_03_001.png": {"x": 2154, "y": 4546, "w": 40, "h": 40}, "persp_blockc_01_001.png": {"x": 2196, "y": 4546, "w": 60, "h": 40}, "persp_blockc_02_001.png": {"x": 2258, "y": 4546, "w": 60, "h": 40}, "persp_blockc_03_001.png": {"x": 2320, "y": 4546, "w": 40, "h": 40}, "persp_blockd_01_001.png": {"x": 2362, "y": 4546, "w": 60, "h": 40}, "persp_blockd_02_001.png": {"x": 2424, "y": 4546, "w": 60, "h": 40}, "persp_blockd_03_001.png": {"x": 2486, "y": 4546, "w": 40, "h": 40}, "persp_blocke_01_001.png": {"x": 2528, "y": 4546, "w": 60, "h": 40}, "persp_blocke_02_001.png": {"x": 2590, "y": 4546, "w": 60, "h": 40}, "persp_blocke_03_001.png": {"x": 2652, "y": 4546, "w": 40, "h": 40}, "persp_blockf_01_001.png": {"x": 2694, "y": 4546, "w": 60, "h": 40}, "persp_blockf_02_001.png": {"x": 2756, "y": 4546, "w": 60, "h": 40}, "persp_blockf_03_001.png": {"x": 2818, "y": 4546, "w": 40, "h": 40}, "persp_blockg_01_001.png": {"x": 2860, "y": 4546, "w": 60, "h": 40}, "persp_blockg_02_001.png": {"x": 2922, "y": 4546, "w": 60, "h": 40}, "persp_blockg_03_001.png": {"x": 2984, "y": 4546, "w": 40, "h": 40}, "persp_blockh_01_001.png": {"x": 3026, "y": 4546, "w": 60, "h": 40}, "persp_blockh_02_001.png": {"x": 3088, "y": 4546, "w": 60, "h": 40}, "persp_blockh_03_001.png": {"x": 3150, "y": 4546, "w": 40, "h": 40}, "persp_lblock01_01_001.png": {"x": 3192, "y": 4546, "w": 60, "h": 40}, "persp_lblock01_02_001.png": {"x": 3254, "y": 4546, "w": 60, "h": 40}, "persp_lblock01_03_001.png": {"x": 3316, "y": 4546, "w": 40, "h": 40}, "persp_lblock02_01_001.png": {"x": 3358, "y": 4546, "w": 60, "h": 40}, "persp_lblock02_02_001.png": {"x": 3420, "y": 4546, "w": 60, "h": 40}, "persp_lblock02_03_001.png": {"x": 3482, "y": 4546, "w": 40, "h": 40}, "persp_lblock03_01_001.png": {"x": 3524, "y": 4546, "w": 60, "h": 40}, "persp_lblock03_02_001.png": {"x": 3586, "y": 4546, "w": 60, "h": 40}, "persp_lblock03_03_001.png": {"x": 3648, "y": 4546, "w": 40, "h": 40}, "persp_lblock04_01_001.png": {"x": 3690, "y": 4546, "w": 60, "h": 40}, "persp_lblock04_02_001.png": {"x": 3752, "y": 4546, "w": 60, "h": 40}, "persp_lblock04_03_001.png": {"x": 3814, "y": 4546, "w": 40, "h": 40}, "persp_lblock05_01_001.png": {"x": 3856, "y": 4546, "w": 60, "h": 40}, "persp_lblock05_02_001.png": {"x": 3918, "y": 4546, "w": 60, "h": 40}, "persp_lblock05_03_001.png": {"x": 3980, "y": 4546, "w": 40, "h": 40}, "persp_outline_01_001.png": {"x": 4022, "y": 4546, "w": 120, "h": 40}, "persp_outline_02_001.png": {"x": 4144, "y": 4546, "w": 120, "h": 40}, "persp_outline_03_001.png": {"x": 4266, "y": 4546, "w": 60, "h": 40}, "persp_outline_07_001.png": {"x": 4328, "y": 4546, "w": 60, "h": 40}, "whiteSquare20_001.png": {"x": 4390, "y": 4546, "w": 40, "h": 40}, "block001_02_color_001.png": {"x": 4432, "y": 4546, "w": 38, "h": 38}, "block013_light_16_001.png": {"x": 4472, "y": 4546, "w": 120, "h": 38}, "pit_04_low_001.png": {"x": 4594, "y": 4546, "w": 121, "h": 38}, "block007b_03_color_001.png": {"x": 4717, "y": 4546, "w": 120, "h": 36}, "block007b_04_color_001.png": {"x": 0, "y": 4588, "w": 120, "h": 36}, "block007b_07_color_001.png": {"x": 122, "y": 4588, "w": 36, "h": 36}, "block009_slope_01_color_001.png": {"x": 160, "y": 4588, "w": 112, "h": 36}, "block012_light_02_001.png": {"x": 274, "y": 4588, "w": 120, "h": 36}, "block013_edge_09_color_001.png": {"x": 396, "y": 4588, "w": 120, "h": 36}, "block013_edge_11_color_001.png": {"x": 518, "y": 4588, "w": 120, "h": 36}, "block013_edge_12_color_001.png": {"x": 640, "y": 4588, "w": 120, "h": 36}, "block013_light_c_14_001.png": {"x": 762, "y": 4588, "w": 36, "h": 36}, "d_link_b_01_color_001.png": {"x": 800, "y": 4588, "w": 36, "h": 36}, "d_link_b_02_color_001.png": {"x": 838, "y": 4588, "w": 36, "h": 36}, "d_link_b_03_color_001.png": {"x": 876, "y": 4588, "w": 36, "h": 36}, "d_link_b_04_color_001.png": {"x": 914, "y": 4588, "w": 36, "h": 36}, "d_link_b_05_color_001.png": {"x": 952, "y": 4588, "w": 36, "h": 36}, "d_link_c_01_color_001.png": {"x": 990, "y": 4588, "w": 36, "h": 36}, "d_link_c_02_color_001.png": {"x": 1028, "y": 4588, "w": 36, "h": 36}, "d_link_c_03_color_001.png": {"x": 1066, "y": 4588, "w": 36, "h": 36}, "d_link_c_04_color_001.png": {"x": 1104, "y": 4588, "w": 36, "h": 36}, "d_link_c_05_color_001.png": {"x": 1142, "y": 4588, "w": 36, "h": 36}, "d_sign_paint_01_001.png": {"x": 1180, "y": 4588, "w": 38, "h": 36}, "waterSplash_001.png": {"x": 1220, "y": 4588, "w": 72, "h": 36}, "waterSplash_002.png": {"x": 1294, "y": 4588, "w": 72, "h": 36}, "waterSplash_003.png": {"x": 1368, "y": 4588, "w": 72, "h": 36}, "waterSplash_004.png": {"x": 1442, "y": 4588, "w": 72, "h": 36}, "waterSplash_005.png": {"x": 1516, "y": 4588, "w": 72, "h": 36}, "waterSplash_006.png": {"x": 1590, "y": 4588, "w": 72, "h": 36}, "block007_color_005_001.png": {"x": 1664, "y": 4588, "w": 50, "h": 34}, "block013_edge_c_05_color_001.png": {"x": 1716, "y": 4588, "w": 32, "h": 34}, "block013_edge_c_12_001.png": {"x": 1750, "y": 4588, "w": 16, "h": 34}, "block013_edge_c_13_color_001.png": {"x": 1768, "y": 4588, "w": 16, "h": 34}, "block013_light_14_001.png": {"x": 1786, "y": 4588, "w": 120, "h": 34}, "block013_light_c_04_001.png": {"x": 1908, "y": 4588, "w": 24, "h": 34}, "block013_light_c_07_001.png": {"x": 1934, "y": 4588, "w": 26, "h": 34}, "block013_light_c_09_001.png": {"x": 1962, "y": 4588, "w": 40, "h": 34}, "d_grass_02_001.png": {"x": 2004, "y": 4588, "w": 44, "h": 34}, "dropRing_01_extra_001.png": {"x": 2050, "y": 4588, "w": 34, "h": 34}, "block007_08_color_001.png": {"x": 2086, "y": 4588, "w": 32, "h": 32}, "block007_bgcolor_012_001.png": {"x": 2120, "y": 4588, "w": 32, "h": 32}, "block007_bgcolor_013_001.png": {"x": 2154, "y": 4588, "w": 96, "h": 32}, "block013_edge_c_02_color_001.png": {"x": 2252, "y": 4588, "w": 20, "h": 32}, "block013_edge_c_08_001.png": {"x": 2274, "y": 4588, "w": 24, "h": 32}, "block013_edge_c_15_001.png": {"x": 2300, "y": 4588, "w": 26, "h": 32}, "block013_light_13_001.png": {"x": 2328, "y": 4588, "w": 120, "h": 32}, "block013_light_c_01_001.png": {"x": 2450, "y": 4588, "w": 26, "h": 32}, "d_sign_tile_01_color_001.png": {"x": 2478, "y": 4588, "w": 112, "h": 32}, "d_small_ball_01_001.png": {"x": 2592, "y": 4588, "w": 32, "h": 32}, "d_small_ball_02_001.png": {"x": 2626, "y": 4588, "w": 32, "h": 32}, "d_small_ball_03_001.png": {"x": 2660, "y": 4588, "w": 32, "h": 32}, "d_small_ball_05_001.png": {"x": 2694, "y": 4588, "w": 22, "h": 32}, "block009c_color_06_001.png": {"x": 2718, "y": 4588, "w": 165, "h": 30}, "block013_edge_10_color_001.png": {"x": 2885, "y": 4588, "w": 120, "h": 30}, "block013_edge_c_03_001.png": {"x": 3007, "y": 4588, "w": 28, "h": 30}, "block013_light_c_06_001.png": {"x": 3037, "y": 4588, "w": 24, "h": 30}, "colorPlank_01_small_001.png": {"x": 3063, "y": 4588, "w": 60, "h": 30}, "d_animSquare_01_001.png": {"x": 3125, "y": 4588, "w": 60, "h": 30}, "d_animSquare_01_002.png": {"x": 3187, "y": 4588, "w": 60, "h": 30}, "d_animSquare_01_003.png": {"x": 3249, "y": 4588, "w": 60, "h": 30}, "d_animSquare_01_004.png": {"x": 3311, "y": 4588, "w": 60, "h": 30}, "d_animSquare_01_005.png": {"x": 3373, "y": 4588, "w": 60, "h": 30}, "d_animSquare_01_006.png": {"x": 3435, "y": 4588, "w": 60, "h": 30}, "d_animSquare_01_007.png": {"x": 3497, "y": 4588, "w": 60, "h": 30}, "d_animSquare_01_008.png": {"x": 3559, "y": 4588, "w": 60, "h": 30}, "d_pixelArt01_003_001.png": {"x": 3621, "y": 4588, "w": 30, "h": 30}, "d_whiteBlock_02_001.png": {"x": 3653, "y": 4588, "w": 30, "h": 30}, "invis_plank_01_small_001.png": {"x": 3685, "y": 4588, "w": 61, "h": 30}, "pit_07_2_001.png": {"x": 3748, "y": 4588, "w": 31, "h": 30}, "pit_07_4_001.png": {"x": 3781, "y": 4588, "w": 30, "h": 30}, "plank_01_small_001.png": {"x": 3813, "y": 4588, "w": 60, "h": 30}, "block013_edge_c_10_color_001.png": {"x": 3875, "y": 4588, "w": 20, "h": 28}, "d_skull01_color_001.png": {"x": 3897, "y": 4588, "w": 58, "h": 28}, "plank_01_small_color_001.png": {"x": 3957, "y": 4588, "w": 58, "h": 28}, "starAnim_011.png": {"x": 4017, "y": 4588, "w": 26, "h": 28}, "block013_light_c_16_001.png": {"x": 4045, "y": 4588, "w": 24, "h": 26}, "bump_02_001.png": {"x": 4071, "y": 4588, "w": 115, "h": 26}, "block011_edge_03_color_001.png": {"x": 4188, "y": 4588, "w": 68, "h": 24}, "block013_edge_c_04_001.png": {"x": 4258, "y": 4588, "w": 14, "h": 24}, "block013_edge_c_07_001.png": {"x": 4274, "y": 4588, "w": 18, "h": 24}, "block013_edge_c_09_001.png": {"x": 4294, "y": 4588, "w": 30, "h": 24}, "block013_edge_c_14_001.png": {"x": 4326, "y": 4588, "w": 26, "h": 24}, "block013_light_c_11_001.png": {"x": 4354, "y": 4588, "w": 22, "h": 24}, "blockOutlineThickb_01_001.png": {"x": 4378, "y": 4588, "w": 120, "h": 24}, "d_grass_03_001.png": {"x": 4500, "y": 4588, "w": 22, "h": 24}, "gravbump_01_001.png": {"x": 4524, "y": 4588, "w": 100, "h": 24}, "invisibleOutline_b_02_001.png": {"x": 4626, "y": 4588, "w": 171, "h": 24}, "invisibleOutline_b_03_001.png": {"x": 0, "y": 4626, "w": 265, "h": 24}, "block011_edge_10_color_001.png": {"x": 267, "y": 4626, "w": 68, "h": 22}, "d_sign_paint_03_001.png": {"x": 337, "y": 4626, "w": 20, "h": 22}, "block005_17_001.png": {"x": 359, "y": 4626, "w": 120, "h": 20}, "block005b_17_001.png": {"x": 481, "y": 4626, "w": 120, "h": 20}, "block008_topcolor_02_001.png": {"x": 603, "y": 4626, "w": 20, "h": 20}, "block008_topcolor_06_001.png": {"x": 625, "y": 4626, "w": 60, "h": 20}, "block013_edge_c_01_001.png": {"x": 687, "y": 4626, "w": 16, "h": 20}, "block013_edge_c_06_001.png": {"x": 705, "y": 4626, "w": 14, "h": 20}, "bump_03_001.png": {"x": 721, "y": 4626, "w": 100, "h": 20}, "colorPlank_01_small_color_001.png": {"x": 823, "y": 4626, "w": 50, "h": 20}, "d_link_d_01_color_001.png": {"x": 875, "y": 4626, "w": 20, "h": 20}, "d_link_d_02_color_001.png": {"x": 897, "y": 4626, "w": 20, "h": 20}, "d_link_d_03_color_001.png": {"x": 919, "y": 4626, "w": 20, "h": 20}, "d_link_d_04_color_001.png": {"x": 941, "y": 4626, "w": 20, "h": 20}, "d_link_d_05_color_001.png": {"x": 963, "y": 4626, "w": 20, "h": 20}, "block008_topcolor_12_001.png": {"x": 985, "y": 4626, "w": 42, "h": 18}, "block008_topcolor_13_001.png": {"x": 1029, "y": 4626, "w": 60, "h": 18}, "d_sign_paint_02_001.png": {"x": 1091, "y": 4626, "w": 40, "h": 18}, "bump_01_001.png": {"x": 1133, "y": 4626, "w": 100, "h": 16}, "block013_edge_c_16_001.png": {"x": 1235, "y": 4626, "w": 14, "h": 14}, "invisibleOutline_03_001.png": {"x": 1251, "y": 4626, "w": 256, "h": 14}, "block013_edge_c_09_color_001.png": {"x": 1509, "y": 4626, "w": 30, "h": 12}, "block013_edge_c_11_001.png": {"x": 1541, "y": 4626, "w": 14, "h": 12}, "block013_edge_c_14_color_001.png": {"x": 1557, "y": 4626, "w": 26, "h": 12}, "blockOutlineThick_01_001.png": {"x": 1585, "y": 4626, "w": 120, "h": 12}, "blockOutline_14new_001.png": {"x": 1707, "y": 4626, "w": 170, "h": 12}, "blockOutline_15new_001.png": {"x": 1879, "y": 4626, "w": 278, "h": 12}, "d_small_ball_04_001.png": {"x": 2159, "y": 4626, "w": 32, "h": 12}, "invisibleOutline_02_001.png": {"x": 2193, "y": 4626, "w": 154, "h": 12}, "invisibleOutline_b_01_001.png": {"x": 2349, "y": 4626, "w": 121, "h": 12}, "block013_edge_c_01_color_001.png": {"x": 2472, "y": 4626, "w": 16, "h": 8}, "block013_edge_c_06_color_001.png": {"x": 2490, "y": 4626, "w": 14, "h": 8}, "d_link_d_04_001.png": {"x": 2506, "y": 4626, "w": 120, "h": 8}, "blockOutline_02_001.png": {"x": 2628, "y": 4626, "w": 120, "h": 6}, "blockOutline_09_001.png": {"x": 2750, "y": 4626, "w": 120, "h": 6}, "floorLine_001.png": {"x": 2872, "y": 4626, "w": 1776, "h": 6}, "invisibleOutline_01_001.png": {"x": 4650, "y": 4626, "w": 121, "h": 6}, "smallOutline_01_001.png": {"x": 4773, "y": 4626, "w": 60, "h": 6}, "emptyFrame.png": {"x": 4835, "y": 4626, "w": 5, "h": 5}, "gridLine01_001.png": {"x": 0, "y": 4652, "w": 120, "h": 4}, "gridLine02_001.png": {"x": 122, "y": 4652, "w": 120, "h": 4}, "gridLine03_001.png": {"x": 244, "y": 4652, "w": 60, "h": 4}}} \ No newline at end of file diff --git a/assets/sheets/GJ_GameSheet-uhd-packed.png b/assets/sheets/GJ_GameSheet-uhd-packed.png new file mode 100644 index 00000000..f1f93c95 Binary files /dev/null and b/assets/sheets/GJ_GameSheet-uhd-packed.png differ diff --git a/assets/sheets/GJ_GameSheet02-uhd-packed.json b/assets/sheets/GJ_GameSheet02-uhd-packed.json new file mode 100644 index 00000000..ca6cdd73 --- /dev/null +++ b/assets/sheets/GJ_GameSheet02-uhd-packed.json @@ -0,0 +1 @@ +{"sheet": "GJ_GameSheet02-uhd-packed.png", "size": {"w": 3007, "h": 2870}, "frames": {"portal_05_front_001.png": {"x": 0, "y": 0, "w": 234, "h": 362}, "portal_06_front_001.png": {"x": 236, "y": 0, "w": 234, "h": 362}, "portal_11_front_001.png": {"x": 472, "y": 0, "w": 172, "h": 360}, "portal_12_front_001.png": {"x": 646, "y": 0, "w": 172, "h": 360}, "portal_15_front_001.png": {"x": 820, "y": 0, "w": 220, "h": 360}, "portal_16_front_001.png": {"x": 1042, "y": 0, "w": 218, "h": 360}, "portal_08_front_001.png": {"x": 1262, "y": 0, "w": 176, "h": 358}, "portal_09_front_001.png": {"x": 1440, "y": 0, "w": 175, "h": 358}, "portal_15_back_001.png": {"x": 1617, "y": 0, "w": 196, "h": 344}, "portal_16_back_001.png": {"x": 1815, "y": 0, "w": 195, "h": 344}, "portal_03_front_001.png": {"x": 2012, "y": 0, "w": 178, "h": 342}, "portal_04_front_001.png": {"x": 2192, "y": 0, "w": 178, "h": 342}, "portal_07_front_001.png": {"x": 2372, "y": 0, "w": 178, "h": 342}, "portal_10_front_001.png": {"x": 2552, "y": 0, "w": 178, "h": 342}, "portal_13_front_001.png": {"x": 2732, "y": 0, "w": 178, "h": 342}, "portal_14_front_001.png": {"x": 0, "y": 364, "w": 178, "h": 342}, "portal_18_front_001.png": {"x": 180, "y": 364, "w": 178, "h": 342}, "portal_17_front_001.png": {"x": 360, "y": 364, "w": 178, "h": 338}, "portal_01_back_001.png": {"x": 540, "y": 364, "w": 172, "h": 310}, "portal_02_back_001.png": {"x": 714, "y": 364, "w": 172, "h": 310}, "portal_03_back_001.png": {"x": 888, "y": 364, "w": 196, "h": 310}, "portal_04_back_001.png": {"x": 1086, "y": 364, "w": 196, "h": 310}, "portal_05_back_001.png": {"x": 1284, "y": 364, "w": 260, "h": 310}, "portal_06_back_001.png": {"x": 1546, "y": 364, "w": 260, "h": 310}, "portal_07_back_001.png": {"x": 1808, "y": 364, "w": 196, "h": 310}, "portal_10_back_001.png": {"x": 2006, "y": 364, "w": 196, "h": 310}, "portal_13_back_001.png": {"x": 2204, "y": 364, "w": 196, "h": 310}, "portal_14_back_001.png": {"x": 2402, "y": 364, "w": 195, "h": 310}, "portal_18_back_001.png": {"x": 2599, "y": 364, "w": 196, "h": 310}, "portal_19_back_001.png": {"x": 2797, "y": 364, "w": 172, "h": 310}, "portal_19_front_001.png": {"x": 0, "y": 708, "w": 137, "h": 310}, "portal_01_front_001.png": {"x": 139, "y": 708, "w": 138, "h": 308}, "portal_02_front_001.png": {"x": 279, "y": 708, "w": 138, "h": 308}, "edit_eEAreaFadeBtn_001.png": {"x": 419, "y": 708, "w": 112, "h": 304}, "edit_eEAreaMoveBtn_001.png": {"x": 533, "y": 708, "w": 114, "h": 304}, "edit_eEAreaRotateBtn_001.png": {"x": 649, "y": 708, "w": 152, "h": 304}, "edit_eEAreaScaleBtn_001.png": {"x": 803, "y": 708, "w": 134, "h": 304}, "edit_eEAreaTintBtn_001.png": {"x": 939, "y": 708, "w": 112, "h": 304}, "portal_08_back_001.png": {"x": 1053, "y": 708, "w": 201, "h": 302}, "portal_09_back_001.png": {"x": 1256, "y": 708, "w": 202, "h": 302}, "portal_11_back_001.png": {"x": 1460, "y": 708, "w": 156, "h": 298}, "portal_12_back_001.png": {"x": 1618, "y": 708, "w": 156, "h": 298}, "portal_17_back_001.png": {"x": 1776, "y": 708, "w": 184, "h": 298}, "edit_eEditSFXBtn_001.png": {"x": 1962, "y": 708, "w": 86, "h": 236}, "edit_eEditSongBtn_001.png": {"x": 2050, "y": 708, "w": 102, "h": 232}, "boost_02_001.png": {"x": 2154, "y": 708, "w": 132, "h": 226}, "boost_03_001.png": {"x": 2288, "y": 708, "w": 202, "h": 226}, "boost_04_001.png": {"x": 2492, "y": 708, "w": 260, "h": 226}, "boost_05_001.png": {"x": 0, "y": 1020, "w": 276, "h": 226}, "edit_eAreaFadeBtn_001.png": {"x": 278, "y": 1020, "w": 112, "h": 220}, "edit_eAreaMoveBtn_001.png": {"x": 392, "y": 1020, "w": 114, "h": 220}, "edit_eAreaRotateBtn_001.png": {"x": 508, "y": 1020, "w": 152, "h": 220}, "edit_eAreaScaleBtn_001.png": {"x": 662, "y": 1020, "w": 134, "h": 220}, "edit_eAreaStopBtn_001.png": {"x": 798, "y": 1020, "w": 112, "h": 220}, "edit_eAreaTintBtn_001.png": {"x": 912, "y": 1020, "w": 112, "h": 220}, "edit_eEnterFadeBtn_001.png": {"x": 1026, "y": 1020, "w": 130, "h": 220}, "edit_eEnterMoveBtn_001.png": {"x": 1158, "y": 1020, "w": 130, "h": 220}, "edit_eEnterRotateBtn_001.png": {"x": 1290, "y": 1020, "w": 152, "h": 220}, "edit_eEnterScaleBtn_001.png": {"x": 1444, "y": 1020, "w": 133, "h": 220}, "edit_eEnterStopBtn_001.png": {"x": 1579, "y": 1020, "w": 130, "h": 220}, "edit_eEnterTintBtn_001.png": {"x": 1711, "y": 1020, "w": 130, "h": 220}, "edit_eItemCompBtn_001.png": {"x": 1843, "y": 1020, "w": 108, "h": 218}, "edit_eItemEditBtn_001.png": {"x": 1953, "y": 1020, "w": 90, "h": 218}, "edit_eItemPersBtn_001.png": {"x": 2045, "y": 1020, "w": 100, "h": 218}, "edit_eAdvFollowBtn_001.png": {"x": 2147, "y": 1020, "w": 178, "h": 212}, "edit_eBGSpeedBtn_001.png": {"x": 2327, "y": 1020, "w": 119, "h": 212}, "edit_eEditAdvFollowBtn_001.png": {"x": 2448, "y": 1020, "w": 169, "h": 212}, "edit_eFollowPComBtn_001.png": {"x": 2619, "y": 1020, "w": 170, "h": 212}, "edit_eInstantCollisionBtn_001.png": {"x": 2791, "y": 1020, "w": 176, "h": 212}, "edit_eReAdvFollowBtn_001.png": {"x": 0, "y": 1248, "w": 205, "h": 212}, "edit_eLinkVisibleBtn_001.png": {"x": 207, "y": 1248, "w": 134, "h": 208}, "edit_eMGSpeedBtn_001.png": {"x": 343, "y": 1248, "w": 119, "h": 208}, "edit_eSpawnParticleBtn_001.png": {"x": 464, "y": 1248, "w": 146, "h": 208}, "edit_ePlayerControlBtn_001.png": {"x": 612, "y": 1248, "w": 172, "h": 206}, "edit_eReleaseJumpBtn_001.png": {"x": 786, "y": 1248, "w": 172, "h": 206}, "edit_eInstantCountBtn_001.png": {"x": 960, "y": 1248, "w": 140, "h": 196}, "edit_eOnDeathBtn_001.png": {"x": 1102, "y": 1248, "w": 108, "h": 196}, "edit_eCParticleBtn_001.png": {"x": 1212, "y": 1248, "w": 100, "h": 182}, "edit_eSh_RadialBlurBtn_001.png": {"x": 1314, "y": 1248, "w": 120, "h": 180}, "edit_eSh_ChromaticGlitchBtn_001.png": {"x": 1436, "y": 1248, "w": 168, "h": 178}, "edit_eSh_LensCircleBtn_001.png": {"x": 1606, "y": 1248, "w": 108, "h": 176}, "boost_01_001.png": {"x": 1716, "y": 1248, "w": 140, "h": 174}, "edit_eSh_InvertColorBtn_001.png": {"x": 1858, "y": 1248, "w": 106, "h": 172}, "edit_eSh_MotionBlurBtn_001.png": {"x": 1966, "y": 1248, "w": 116, "h": 172}, "edit_eSh_EditColorBtn_001.png": {"x": 2084, "y": 1248, "w": 94, "h": 168}, "edit_eSh_GrayscaleBtn_001.png": {"x": 2180, "y": 1248, "w": 96, "h": 168}, "edit_eSh_ShockWaveBtn_001.png": {"x": 2278, "y": 1248, "w": 104, "h": 168}, "edit_eSh_SplitScreenBtn_001.png": {"x": 2384, "y": 1248, "w": 110, "h": 168}, "edit_eChangeBG_001.png": {"x": 2496, "y": 1248, "w": 100, "h": 166}, "edit_eChangeG_001.png": {"x": 2598, "y": 1248, "w": 100, "h": 166}, "edit_eChangeMG_001.png": {"x": 2700, "y": 1248, "w": 100, "h": 166}, "edit_eSh_ShockLineBtn_001.png": {"x": 2802, "y": 1248, "w": 104, "h": 166}, "secretCoin_01_001.png": {"x": 0, "y": 1462, "w": 160, "h": 160}, "secretCoin_01_002.png": {"x": 162, "y": 1462, "w": 136, "h": 160}, "secretCoin_01_003.png": {"x": 300, "y": 1462, "w": 40, "h": 160}, "secretCoin_01_004.png": {"x": 342, "y": 1462, "w": 136, "h": 160}, "secretCoin_2_01_001.png": {"x": 480, "y": 1462, "w": 160, "h": 160}, "secretCoin_2_01_002.png": {"x": 642, "y": 1462, "w": 137, "h": 160}, "secretCoin_2_01_003.png": {"x": 781, "y": 1462, "w": 40, "h": 160}, "secretCoin_2_01_004.png": {"x": 823, "y": 1462, "w": 137, "h": 160}, "edit_eSetupMGBtn_001.png": {"x": 962, "y": 1462, "w": 82, "h": 158}, "secretCoin_2_b_01_001.png": {"x": 1046, "y": 1462, "w": 158, "h": 158}, "secretCoin_2_b_01_002.png": {"x": 1206, "y": 1462, "w": 134, "h": 158}, "secretCoin_2_b_01_003.png": {"x": 1342, "y": 1462, "w": 38, "h": 158}, "secretCoin_2_b_01_004.png": {"x": 1382, "y": 1462, "w": 134, "h": 158}, "secretCoin_b_01_001.png": {"x": 1518, "y": 1462, "w": 158, "h": 158}, "secretCoin_b_01_002.png": {"x": 1678, "y": 1462, "w": 134, "h": 158}, "secretCoin_b_01_003.png": {"x": 1814, "y": 1462, "w": 38, "h": 158}, "secretCoin_b_01_004.png": {"x": 1854, "y": 1462, "w": 134, "h": 158}, "checkpoint_01_glow_001.png": {"x": 1990, "y": 1462, "w": 97, "h": 156}, "edit_eKeyframeBtn_001.png": {"x": 2089, "y": 1462, "w": 198, "h": 152}, "edit_eGravity_001.png": {"x": 2289, "y": 1462, "w": 162, "h": 150}, "gdh_g_01_06_001.png": {"x": 2453, "y": 1462, "w": 68, "h": 150}, "edit_eBPMBtn_001.png": {"x": 2523, "y": 1462, "w": 108, "h": 144}, "edit_eSFXBtn_001.png": {"x": 2633, "y": 1462, "w": 100, "h": 144}, "edit_eSongBtn_001.png": {"x": 2735, "y": 1462, "w": 126, "h": 144}, "edit_eEndBtn_001.png": {"x": 2863, "y": 1462, "w": 90, "h": 142}, "edit_eEndPlatBtn_001.png": {"x": 0, "y": 1624, "w": 90, "h": 142}, "edit_eCamGuideBtn_001.png": {"x": 92, "y": 1624, "w": 142, "h": 140}, "edit_eCamModeBtn_001.png": {"x": 236, "y": 1624, "w": 128, "h": 140}, "edit_eCamRotBtn_001.png": {"x": 366, "y": 1624, "w": 174, "h": 140}, "edit_eEdgeBtn_001.png": {"x": 542, "y": 1624, "w": 120, "h": 140}, "edit_eEventLinkBtn_001.png": {"x": 664, "y": 1624, "w": 150, "h": 140}, "edit_eZoomBtn_001.png": {"x": 816, "y": 1624, "w": 130, "h": 140}, "edit_eResetBtn_001.png": {"x": 948, "y": 1624, "w": 120, "h": 138}, "gdh_g_01_05_001.png": {"x": 1070, "y": 1624, "w": 102, "h": 136}, "checkpoint_01_color_001.png": {"x": 1174, "y": 1624, "w": 76, "h": 134}, "checkpoint_d_02_color_001.png": {"x": 1252, "y": 1624, "w": 86, "h": 134}, "checkpoint_d_03_color_001.png": {"x": 1340, "y": 1624, "w": 62, "h": 134}, "edit_ePickupBtn_001.png": {"x": 1404, "y": 1624, "w": 156, "h": 134}, "edit_eCollisionBtn_001.png": {"x": 1562, "y": 1624, "w": 196, "h": 132}, "edit_eGPOffsetBtn_001.png": {"x": 1760, "y": 1624, "w": 150, "h": 132}, "edit_eGradientBtn_001.png": {"x": 1912, "y": 1624, "w": 186, "h": 132}, "edit_eOffsetBtn_001.png": {"x": 2100, "y": 1624, "w": 144, "h": 132}, "edit_eOptionsBtn_001.png": {"x": 2246, "y": 1624, "w": 164, "h": 132}, "edit_eRandomBtn_001.png": {"x": 2412, "y": 1624, "w": 154, "h": 132}, "edit_eReverseBtn_001.png": {"x": 2568, "y": 1624, "w": 170, "h": 132}, "edit_eStaticBtn_001.png": {"x": 2740, "y": 1624, "w": 128, "h": 132}, "edit_eTimeWarpBtn_001.png": {"x": 0, "y": 1768, "w": 196, "h": 132}, "portal_01_extra_001.png": {"x": 198, "y": 1768, "w": 94, "h": 132}, "portal_02_extra_001.png": {"x": 294, "y": 1768, "w": 94, "h": 132}, "portal_03_extra_001.png": {"x": 390, "y": 1768, "w": 94, "h": 132}, "portal_04_extra_001.png": {"x": 486, "y": 1768, "w": 94, "h": 132}, "portal_07_extra_001.png": {"x": 582, "y": 1768, "w": 94, "h": 132}, "portal_10_extra_001.png": {"x": 678, "y": 1768, "w": 94, "h": 132}, "portal_13_extra_001.png": {"x": 774, "y": 1768, "w": 94, "h": 132}, "portal_14_extra_001.png": {"x": 870, "y": 1768, "w": 94, "h": 132}, "portal_17_extra_001.png": {"x": 966, "y": 1768, "w": 94, "h": 132}, "portal_18_extra_001.png": {"x": 1062, "y": 1768, "w": 94, "h": 132}, "portal_19_extra_001.png": {"x": 1158, "y": 1768, "w": 94, "h": 132}, "edit_eSh_BulgeBtn_001.png": {"x": 1254, "y": 1768, "w": 120, "h": 130}, "edit_eSh_GlitchBtn_001.png": {"x": 1376, "y": 1768, "w": 138, "h": 130}, "edit_eUISettingsBtn_001.png": {"x": 1516, "y": 1768, "w": 82, "h": 130}, "edit_eCountBtn_001.png": {"x": 1600, "y": 1768, "w": 138, "h": 128}, "edit_eCounterBtn_001.png": {"x": 1740, "y": 1768, "w": 174, "h": 128}, "edit_eShaderBtn_001.png": {"x": 1916, "y": 1768, "w": 150, "h": 128}, "checkpoint_01_001.png": {"x": 2068, "y": 1768, "w": 68, "h": 126}, "checkpoint_d_01_color_001.png": {"x": 2138, "y": 1768, "w": 86, "h": 126}, "checkpoint_d_02_001.png": {"x": 2226, "y": 1768, "w": 78, "h": 126}, "checkpoint_d_03_001.png": {"x": 2306, "y": 1768, "w": 54, "h": 126}, "edit_eTouchBtn_001.png": {"x": 2362, "y": 1768, "w": 138, "h": 126}, "edit_eFollowComBtn_001.png": {"x": 2502, "y": 1768, "w": 158, "h": 124}, "edit_eMoveComBtn_001.png": {"x": 2662, "y": 1768, "w": 114, "h": 124}, "edit_ePauseBtn_001.png": {"x": 2778, "y": 1768, "w": 131, "h": 124}, "edit_eResumeBtn_001.png": {"x": 0, "y": 1902, "w": 163, "h": 124}, "edit_eRotateComBtn_001.png": {"x": 165, "y": 1902, "w": 152, "h": 124}, "edit_eScaleComBtn_001.png": {"x": 319, "y": 1902, "w": 133, "h": 124}, "edit_eSh_PinchBtn_001.png": {"x": 454, "y": 1902, "w": 118, "h": 124}, "edit_eStopMoverBtn_001.png": {"x": 574, "y": 1902, "w": 109, "h": 124}, "edit_eAdvRandomBtn_001.png": {"x": 685, "y": 1902, "w": 160, "h": 122}, "edit_eAlphaBtn_001.png": {"x": 847, "y": 1902, "w": 140, "h": 122}, "edit_eAnimateBtn_001.png": {"x": 989, "y": 1902, "w": 162, "h": 122}, "edit_ePulseBtn_001.png": {"x": 1153, "y": 1902, "w": 134, "h": 122}, "edit_eSequenceBtn_001.png": {"x": 1289, "y": 1902, "w": 173, "h": 122}, "edit_eSpawnBtn_001.png": {"x": 1464, "y": 1902, "w": 134, "h": 122}, "edit_eToggleBtn2_001.png": {"x": 1600, "y": 1902, "w": 84, "h": 122}, "gdh_01_1_05_o_001.png": {"x": 1686, "y": 1902, "w": 26, "h": 122}, "gdh_01_1_05_s_001.png": {"x": 1714, "y": 1902, "w": 26, "h": 122}, "gdh_01_2_06_o_001.png": {"x": 1742, "y": 1902, "w": 24, "h": 122}, "gdh_01_2_06_s_001.png": {"x": 1768, "y": 1902, "w": 24, "h": 122}, "gdh_01_2_11_o_001.png": {"x": 1794, "y": 1902, "w": 26, "h": 122}, "gdh_01_2_11_s_001.png": {"x": 1822, "y": 1902, "w": 26, "h": 122}, "edit_eCollisionBlock01_001.png": {"x": 1850, "y": 1902, "w": 120, "h": 120}, "edit_eCollisionStateBtn_001.png": {"x": 1972, "y": 1902, "w": 120, "h": 120}, "edit_eDamageCircle_001.png": {"x": 2094, "y": 1902, "w": 120, "h": 120}, "edit_eDamageSquare_001.png": {"x": 2216, "y": 1902, "w": 120, "h": 120}, "edit_eForceBlock01_001.png": {"x": 2338, "y": 1902, "w": 120, "h": 120}, "edit_eForceBlock02_001.png": {"x": 2460, "y": 1902, "w": 120, "h": 120}, "edit_ePHideBtn_001.png": {"x": 2582, "y": 1902, "w": 90, "h": 120}, "edit_ePShowBtn_001.png": {"x": 2674, "y": 1902, "w": 106, "h": 120}, "edit_ePlayerTouchBtn_001.png": {"x": 2782, "y": 1902, "w": 120, "h": 120}, "edit_eSh_HueBtn_001.png": {"x": 2904, "y": 1902, "w": 80, "h": 120}, "edit_eSh_SepiaBtn_001.png": {"x": 0, "y": 2028, "w": 114, "h": 120}, "edit_eShakeBtn_001.png": {"x": 116, "y": 2028, "w": 140, "h": 120}, "edit_eTimeBtn_001.png": {"x": 258, "y": 2028, "w": 82, "h": 120}, "edit_eTimeControlBtn_001.png": {"x": 342, "y": 2028, "w": 140, "h": 120}, "edit_eTimeEventBtn_001.png": {"x": 484, "y": 2028, "w": 110, "h": 120}, "edit_eToggleBtn_001.png": {"x": 596, "y": 2028, "w": 158, "h": 120}, "edit_eeFBBtn_001.png": {"x": 756, "y": 2028, "w": 65, "h": 120}, "gdh_01_1_001.png": {"x": 823, "y": 2028, "w": 120, "h": 120}, "gdh_01_1_05_001.png": {"x": 945, "y": 2028, "w": 24, "h": 120}, "gdh_01_1_05b_001.png": {"x": 971, "y": 2028, "w": 24, "h": 120}, "gdh_01_1_05b_o_001.png": {"x": 997, "y": 2028, "w": 28, "h": 120}, "gdh_01_1_05b_s_001.png": {"x": 1027, "y": 2028, "w": 28, "h": 120}, "gdh_01_1_06_001.png": {"x": 1057, "y": 2028, "w": 28, "h": 120}, "gdh_01_1_06_2_001.png": {"x": 1087, "y": 2028, "w": 28, "h": 120}, "gdh_01_1_06_o_001.png": {"x": 1117, "y": 2028, "w": 30, "h": 120}, "gdh_01_1_06_s_001.png": {"x": 1149, "y": 2028, "w": 30, "h": 120}, "gdh_01_1_06b_001.png": {"x": 1181, "y": 2028, "w": 28, "h": 120}, "gdh_01_1_06b_2_001.png": {"x": 1211, "y": 2028, "w": 28, "h": 120}, "gdh_01_1_06b_o_001.png": {"x": 1241, "y": 2028, "w": 32, "h": 120}, "gdh_01_1_06b_s_001.png": {"x": 1275, "y": 2028, "w": 32, "h": 120}, "gdh_01_1_11_001.png": {"x": 1309, "y": 2028, "w": 28, "h": 120}, "gdh_01_1_11_2_001.png": {"x": 1339, "y": 2028, "w": 28, "h": 120}, "gdh_01_1_11_o_001.png": {"x": 1369, "y": 2028, "w": 30, "h": 120}, "gdh_01_1_11_s_001.png": {"x": 1401, "y": 2028, "w": 30, "h": 120}, "gdh_01_1_11b_001.png": {"x": 1433, "y": 2028, "w": 28, "h": 120}, "gdh_01_1_11b_2_001.png": {"x": 1463, "y": 2028, "w": 28, "h": 120}, "gdh_01_1_11b_o_001.png": {"x": 1493, "y": 2028, "w": 30, "h": 120}, "gdh_01_1_11b_s_001.png": {"x": 1525, "y": 2028, "w": 30, "h": 120}, "gdh_01_1_12_001.png": {"x": 1557, "y": 2028, "w": 24, "h": 120}, "gdh_01_1_12_o_001.png": {"x": 1583, "y": 2028, "w": 28, "h": 120}, "gdh_01_1_12_s_001.png": {"x": 1613, "y": 2028, "w": 28, "h": 120}, "gdh_01_1_12b_001.png": {"x": 1643, "y": 2028, "w": 28, "h": 120}, "gdh_01_1_12b_o_001.png": {"x": 1673, "y": 2028, "w": 30, "h": 120}, "gdh_01_1_12b_s_001.png": {"x": 1705, "y": 2028, "w": 30, "h": 120}, "gdh_01_1_color_001.png": {"x": 1737, "y": 2028, "w": 120, "h": 120}, "gdh_01_2_001.png": {"x": 1859, "y": 2028, "w": 120, "h": 120}, "gdh_01_2_05_001.png": {"x": 1981, "y": 2028, "w": 28, "h": 120}, "gdh_01_2_05_2_001.png": {"x": 2011, "y": 2028, "w": 28, "h": 120}, "gdh_01_2_05_o_001.png": {"x": 2041, "y": 2028, "w": 28, "h": 120}, "gdh_01_2_05_s_001.png": {"x": 2071, "y": 2028, "w": 28, "h": 120}, "gdh_01_2_05b_001.png": {"x": 2101, "y": 2028, "w": 28, "h": 120}, "gdh_01_2_05b_2_001.png": {"x": 2131, "y": 2028, "w": 28, "h": 120}, "gdh_01_2_05b_o_001.png": {"x": 2161, "y": 2028, "w": 30, "h": 120}, "gdh_01_2_05b_s_001.png": {"x": 2193, "y": 2028, "w": 30, "h": 120}, "gdh_01_2_06_001.png": {"x": 2225, "y": 2028, "w": 24, "h": 120}, "gdh_01_2_06b_001.png": {"x": 2251, "y": 2028, "w": 22, "h": 120}, "gdh_01_2_06b_o_001.png": {"x": 2275, "y": 2028, "w": 26, "h": 120}, "gdh_01_2_06b_s_001.png": {"x": 2303, "y": 2028, "w": 26, "h": 120}, "gdh_01_2_11_001.png": {"x": 2331, "y": 2028, "w": 22, "h": 120}, "gdh_01_2_11b_001.png": {"x": 2355, "y": 2028, "w": 26, "h": 120}, "gdh_01_2_11b_o_001.png": {"x": 2383, "y": 2028, "w": 28, "h": 120}, "gdh_01_2_11b_s_001.png": {"x": 2413, "y": 2028, "w": 28, "h": 120}, "gdh_01_2_12_001.png": {"x": 2443, "y": 2028, "w": 28, "h": 120}, "gdh_01_2_12_2_001.png": {"x": 2473, "y": 2028, "w": 28, "h": 120}, "gdh_01_2_12_o_001.png": {"x": 2503, "y": 2028, "w": 30, "h": 120}, "gdh_01_2_12_s_001.png": {"x": 2535, "y": 2028, "w": 30, "h": 120}, "gdh_01_2_12b_001.png": {"x": 2567, "y": 2028, "w": 18, "h": 120}, "gdh_01_2_12b_2_001.png": {"x": 2587, "y": 2028, "w": 18, "h": 120}, "gdh_01_2_12b_o_001.png": {"x": 2607, "y": 2028, "w": 20, "h": 120}, "gdh_01_2_12b_s_001.png": {"x": 2629, "y": 2028, "w": 20, "h": 120}, "gdh_01_2_color_001.png": {"x": 2651, "y": 2028, "w": 120, "h": 120}, "gdh_03_1_b3_001.png": {"x": 2773, "y": 2028, "w": 60, "h": 120}, "gdh_03_1_b4_001.png": {"x": 2835, "y": 2028, "w": 62, "h": 120}, "gdh_03_1_b5_001.png": {"x": 0, "y": 2150, "w": 120, "h": 120}, "gdh_03_1_c1_001.png": {"x": 122, "y": 2150, "w": 120, "h": 120}, "gdh_03_1_c2_001.png": {"x": 244, "y": 2150, "w": 120, "h": 120}, "gdh_03_1_c3_001.png": {"x": 366, "y": 2150, "w": 120, "h": 120}, "gdh_03_1_c4_001.png": {"x": 488, "y": 2150, "w": 116, "h": 120}, "gdh_03_1_o1_001.png": {"x": 606, "y": 2150, "w": 120, "h": 120}, "gdh_03_1_o2_001.png": {"x": 728, "y": 2150, "w": 120, "h": 120}, "gdh_03_1_o3_001.png": {"x": 850, "y": 2150, "w": 120, "h": 120}, "gdh_03_1_o5_001.png": {"x": 972, "y": 2150, "w": 120, "h": 120}, "gdh_03_1_o6_001.png": {"x": 1094, "y": 2150, "w": 120, "h": 120}, "gdh_03_1_o8_001.png": {"x": 1216, "y": 2150, "w": 240, "h": 120}, "gdh_03_1_o9_001.png": {"x": 1458, "y": 2150, "w": 240, "h": 120}, "gdh_g_01_01_001.png": {"x": 1700, "y": 2150, "w": 120, "h": 120}, "gdh_g_01_02_001.png": {"x": 1822, "y": 2150, "w": 120, "h": 120}, "gdh_g_01_03_001.png": {"x": 1944, "y": 2150, "w": 120, "h": 120}, "gdh_g_01_04_001.png": {"x": 2066, "y": 2150, "w": 120, "h": 120}, "gdh_g_01_08_001.png": {"x": 2188, "y": 2150, "w": 120, "h": 120}, "gdh_g_01_09_001.png": {"x": 2310, "y": 2150, "w": 120, "h": 120}, "gdh_g_01_10_001.png": {"x": 2432, "y": 2150, "w": 240, "h": 120}, "gdh_g_01_11_001.png": {"x": 2674, "y": 2150, "w": 120, "h": 120}, "gdh_g_01_12_001.png": {"x": 2796, "y": 2150, "w": 120, "h": 120}, "gdh_spike_01_001.png": {"x": 0, "y": 2272, "w": 120, "h": 120}, "gdh_spike_01_g2_001.png": {"x": 122, "y": 2272, "w": 112, "h": 120}, "smartBlock01_001.png": {"x": 236, "y": 2272, "w": 120, "h": 120}, "smartBlock01b_001.png": {"x": 358, "y": 2272, "w": 120, "h": 120}, "smartBlock02_001.png": {"x": 480, "y": 2272, "w": 120, "h": 120}, "smartBlock02b_001.png": {"x": 602, "y": 2272, "w": 120, "h": 120}, "smartBlock03_001.png": {"x": 724, "y": 2272, "w": 240, "h": 120}, "smartBlock03b_001.png": {"x": 966, "y": 2272, "w": 240, "h": 120}, "checkpoint_01_shine_001.png": {"x": 1208, "y": 2272, "w": 60, "h": 118}, "checkpoint_d_01_001.png": {"x": 1270, "y": 2272, "w": 78, "h": 118}, "edit_eSh_ChromaticBtn_001.png": {"x": 1350, "y": 2272, "w": 174, "h": 118}, "edit_eSh_PixelateBtn_001.png": {"x": 1526, "y": 2272, "w": 144, "h": 118}, "edit_eeFRHInvBtn_001.png": {"x": 1672, "y": 2272, "w": 52, "h": 118}, "gdh_03_1_o10_001.png": {"x": 1726, "y": 2272, "w": 238, "h": 118}, "gdh_03_1_o4_001.png": {"x": 1966, "y": 2272, "w": 118, "h": 118}, "gdh_03_1_o7_001.png": {"x": 2086, "y": 2272, "w": 118, "h": 118}, "edit_eBGEOff_001.png": {"x": 2206, "y": 2272, "w": 136, "h": 116}, "edit_eeFRHBtn_001.png": {"x": 2344, "y": 2272, "w": 52, "h": 116}, "edit_eBGEOn_001.png": {"x": 2398, "y": 2272, "w": 136, "h": 114}, "edit_eTintCol01Btn_001.png": {"x": 2536, "y": 2272, "w": 82, "h": 112}, "edit_eeFTBtn_001.png": {"x": 2620, "y": 2272, "w": 65, "h": 112}, "gdh_crystal_01_color2_001.png": {"x": 2687, "y": 2272, "w": 124, "h": 112}, "edit_eTeleportBtn_001.png": {"x": 2813, "y": 2272, "w": 164, "h": 110}, "gdh_01_2_11b_2_001.png": {"x": 2979, "y": 2272, "w": 24, "h": 110}, "gdh_spike_01_color2_001.png": {"x": 0, "y": 2394, "w": 102, "h": 108}, "gdh_spike_01_color_001.png": {"x": 104, "y": 2394, "w": 102, "h": 108}, "edit_eGradientBtn_color_001.png": {"x": 208, "y": 2394, "w": 68, "h": 106}, "gdh_01_1_05_2_001.png": {"x": 278, "y": 2394, "w": 24, "h": 106}, "gdh_01_1_05b_2_001.png": {"x": 304, "y": 2394, "w": 24, "h": 106}, "gdh_01_2_11_2_001.png": {"x": 330, "y": 2394, "w": 22, "h": 106}, "gdh_g_01_07_001.png": {"x": 354, "y": 2394, "w": 32, "h": 106}, "d_time01_001.png": {"x": 388, "y": 2394, "w": 104, "h": 104}, "edit_eeNone2Btn_001.png": {"x": 494, "y": 2394, "w": 104, "h": 104}, "edit_eeNoneBtn_001.png": {"x": 600, "y": 2394, "w": 104, "h": 104}, "edit_warpBtn_001.png": {"x": 706, "y": 2394, "w": 106, "h": 104}, "edit_scaleXYBtn_001.png": {"x": 814, "y": 2394, "w": 108, "h": 102}, "gdh_03_1_c5_001.png": {"x": 924, "y": 2394, "w": 100, "h": 102}, "bush_03_001.png": {"x": 1026, "y": 2394, "w": 120, "h": 100}, "bush_03_color_001.png": {"x": 1148, "y": 2394, "w": 120, "h": 100}, "gdh_crystal_01_001.png": {"x": 1270, "y": 2394, "w": 112, "h": 100}, "gdh_crystal_01_color_001.png": {"x": 1384, "y": 2394, "w": 112, "h": 100}, "edit_eGameRotBtn_001.png": {"x": 1498, "y": 2394, "w": 130, "h": 98}, "edit_eGhostDBtn_001.png": {"x": 1630, "y": 2394, "w": 141, "h": 98}, "edit_eGhostEBtn_001.png": {"x": 1773, "y": 2394, "w": 129, "h": 98}, "gdh_01_1_12_2_001.png": {"x": 1904, "y": 2394, "w": 24, "h": 98}, "gdh_01_1_12b_2_001.png": {"x": 1930, "y": 2394, "w": 24, "h": 98}, "gdh_01_2_06_2_001.png": {"x": 1956, "y": 2394, "w": 24, "h": 98}, "gdh_01_2_06b_2_001.png": {"x": 1982, "y": 2394, "w": 20, "h": 98}, "gdh_spike_01_g_001.png": {"x": 2004, "y": 2394, "w": 96, "h": 98}, "portal_extra_shine_001.png": {"x": 2102, "y": 2394, "w": 74, "h": 98}, "gdh_chain_01_001.png": {"x": 2178, "y": 2394, "w": 64, "h": 96}, "gdh_03_1_c4b_001.png": {"x": 2244, "y": 2394, "w": 100, "h": 94}, "gdh_03_1_c7_001.png": {"x": 2346, "y": 2394, "w": 210, "h": 94}, "d_time01_color_001.png": {"x": 2558, "y": 2394, "w": 92, "h": 92}, "edit_eCParticleBtn_color_001.png": {"x": 2652, "y": 2394, "w": 92, "h": 92}, "edit_eStartPosBtn_001.png": {"x": 2746, "y": 2394, "w": 144, "h": 90}, "gdh_crystal_02_color2_001.png": {"x": 0, "y": 2504, "w": 128, "h": 90}, "gdh_chain_02_001.png": {"x": 130, "y": 2504, "w": 28, "h": 88}, "bush_01_001.png": {"x": 160, "y": 2504, "w": 120, "h": 84}, "bush_01_color_001.png": {"x": 282, "y": 2504, "w": 120, "h": 84}, "gdh_03_1_c6_001.png": {"x": 404, "y": 2504, "w": 82, "h": 84}, "gdh_chain_01_color2_001.png": {"x": 488, "y": 2504, "w": 52, "h": 84}, "gdh_chain_01_color_001.png": {"x": 542, "y": 2504, "w": 52, "h": 84}, "keyframeIcon_001.png": {"x": 596, "y": 2504, "w": 84, "h": 84}, "edit_eeFABtn_001.png": {"x": 682, "y": 2504, "w": 79, "h": 80}, "edit_eeFALBtn_001.png": {"x": 763, "y": 2504, "w": 79, "h": 80}, "edit_eeFARBtn_001.png": {"x": 844, "y": 2504, "w": 78, "h": 80}, "gdh_crystal_02_001.png": {"x": 924, "y": 2504, "w": 116, "h": 80}, "gdh_crystal_02_color_001.png": {"x": 1042, "y": 2504, "w": 116, "h": 80}, "gdh_spike_02_001.png": {"x": 1160, "y": 2504, "w": 80, "h": 80}, "gdh_spike_02_g2_001.png": {"x": 1242, "y": 2504, "w": 74, "h": 80}, "gdh_chain_02_color2_001.png": {"x": 1318, "y": 2504, "w": 16, "h": 76}, "gdh_chain_02_color_001.png": {"x": 1336, "y": 2504, "w": 16, "h": 76}, "gdh_spike_02_color_001.png": {"x": 1354, "y": 2504, "w": 62, "h": 70}, "bush_02_001.png": {"x": 1418, "y": 2504, "w": 120, "h": 68}, "bush_02_color_001.png": {"x": 1540, "y": 2504, "w": 120, "h": 68}, "gdh_spike_02_color2_001.png": {"x": 1662, "y": 2504, "w": 62, "h": 68}, "gdh_spike_02_g_001.png": {"x": 1726, "y": 2504, "w": 60, "h": 68}, "edit_eeFLBtn_001.png": {"x": 1788, "y": 2504, "w": 116, "h": 66}, "edit_eeFRBtn_001.png": {"x": 1906, "y": 2504, "w": 117, "h": 66}, "gdh_03_1_b1_001.png": {"x": 2025, "y": 2504, "w": 62, "h": 62}, "gdh_03_1_b2_001.png": {"x": 2089, "y": 2504, "w": 116, "h": 62}, "portal_19_extra_2_001.png": {"x": 2207, "y": 2504, "w": 50, "h": 62}, "edit_scaleBtn_001.png": {"x": 2259, "y": 2504, "w": 108, "h": 60}, "gdh_02_1_001.png": {"x": 2369, "y": 2504, "w": 60, "h": 60}, "gdh_02_1b_001.png": {"x": 2431, "y": 2504, "w": 60, "h": 60}, "gdh_02_1c_001.png": {"x": 2493, "y": 2504, "w": 60, "h": 60}, "gdh_02_2_001.png": {"x": 2555, "y": 2504, "w": 60, "h": 60}, "gdh_02_2b_001.png": {"x": 2617, "y": 2504, "w": 60, "h": 60}, "gdh_02_2c_001.png": {"x": 2679, "y": 2504, "w": 60, "h": 60}, "gdh_02_3_001.png": {"x": 2741, "y": 2504, "w": 60, "h": 60}, "gdh_02_3b_001.png": {"x": 2803, "y": 2504, "w": 60, "h": 60}, "gdh_02_3c_001.png": {"x": 2865, "y": 2504, "w": 60, "h": 60}, "gdh_02_4_001.png": {"x": 2927, "y": 2504, "w": 60, "h": 60}, "gdh_02_4b_001.png": {"x": 0, "y": 2596, "w": 60, "h": 60}, "gdh_02_4c_001.png": {"x": 62, "y": 2596, "w": 60, "h": 60}, "gdh_02_5_001.png": {"x": 124, "y": 2596, "w": 60, "h": 60}, "gdh_02_5b_001.png": {"x": 186, "y": 2596, "w": 60, "h": 60}, "gdh_02_o_01_001.png": {"x": 248, "y": 2596, "w": 60, "h": 60}, "gdh_02_o_02_001.png": {"x": 310, "y": 2596, "w": 60, "h": 60}, "gdh_02_o_03_001.png": {"x": 372, "y": 2596, "w": 60, "h": 60}, "gdh_02_o_04_001.png": {"x": 434, "y": 2596, "w": 60, "h": 60}, "gdh_02_o_05_001.png": {"x": 496, "y": 2596, "w": 60, "h": 60}, "gdh_02_o_06_001.png": {"x": 558, "y": 2596, "w": 60, "h": 60}, "gdh_02_o_07_001.png": {"x": 620, "y": 2596, "w": 60, "h": 60}, "gdh_02_o_08_001.png": {"x": 682, "y": 2596, "w": 60, "h": 60}, "gdh_02_o_09_001.png": {"x": 744, "y": 2596, "w": 60, "h": 60}, "gdh_02_o_10_001.png": {"x": 806, "y": 2596, "w": 60, "h": 60}, "gdh_02_o_11_001.png": {"x": 868, "y": 2596, "w": 60, "h": 60}, "gdh_02_o_12_001.png": {"x": 930, "y": 2596, "w": 60, "h": 60}, "gdh_03_1_b3_s_001.png": {"x": 992, "y": 2596, "w": 30, "h": 60}, "gdh_03_1_b4_s_001.png": {"x": 1024, "y": 2596, "w": 30, "h": 60}, "gdh_03_1_b5_s_001.png": {"x": 1056, "y": 2596, "w": 60, "h": 60}, "gdh_03_1_c1_s_001.png": {"x": 1118, "y": 2596, "w": 60, "h": 60}, "gdh_03_1_c2_s_001.png": {"x": 1180, "y": 2596, "w": 60, "h": 60}, "gdh_03_1_c3_s_001.png": {"x": 1242, "y": 2596, "w": 60, "h": 60}, "gdh_03_1_c4_s_001.png": {"x": 1304, "y": 2596, "w": 56, "h": 60}, "gdh_03_1_o1_s_001.png": {"x": 1362, "y": 2596, "w": 60, "h": 60}, "gdh_03_1_o2_s_001.png": {"x": 1424, "y": 2596, "w": 60, "h": 60}, "gdh_03_1_o3_s_001.png": {"x": 1486, "y": 2596, "w": 60, "h": 60}, "gdh_platform1_01_001.png": {"x": 1548, "y": 2596, "w": 60, "h": 60}, "gdh_platform1_02_001.png": {"x": 1610, "y": 2596, "w": 60, "h": 60}, "gdh_platform1_03_001.png": {"x": 1672, "y": 2596, "w": 60, "h": 60}, "gdh_platform1_04_001.png": {"x": 1734, "y": 2596, "w": 60, "h": 60}, "gdh_platform1_05_001.png": {"x": 1796, "y": 2596, "w": 60, "h": 60}, "gdh_platform1_06_001.png": {"x": 1858, "y": 2596, "w": 60, "h": 60}, "gdh_platform1_07_001.png": {"x": 1920, "y": 2596, "w": 60, "h": 60}, "gdh_platform1_08_001.png": {"x": 1982, "y": 2596, "w": 60, "h": 60}, "gdh_platform1_09_001.png": {"x": 2044, "y": 2596, "w": 60, "h": 60}, "gdh_platform1_09_color2_001.png": {"x": 2106, "y": 2596, "w": 60, "h": 60}, "gdh_platform1_09_color_001.png": {"x": 2168, "y": 2596, "w": 60, "h": 60}, "gdh_platform1_10_001.png": {"x": 2230, "y": 2596, "w": 60, "h": 60}, "gdh_platform1_10_color2_001.png": {"x": 2292, "y": 2596, "w": 60, "h": 60}, "gdh_platform1_10_color_001.png": {"x": 2354, "y": 2596, "w": 60, "h": 60}, "gdh_platform1_11_001.png": {"x": 2416, "y": 2596, "w": 60, "h": 60}, "gdh_platform1_11_color2_001.png": {"x": 2478, "y": 2596, "w": 60, "h": 60}, "gdh_platform1_11_color_001.png": {"x": 2540, "y": 2596, "w": 60, "h": 60}, "gdh_platform1_12_001.png": {"x": 2602, "y": 2596, "w": 60, "h": 60}, "gdh_platform1_12_color2_001.png": {"x": 2664, "y": 2596, "w": 60, "h": 60}, "gdh_platform1_12_color_001.png": {"x": 2726, "y": 2596, "w": 60, "h": 60}, "gdh_platform1_13_001.png": {"x": 2788, "y": 2596, "w": 60, "h": 60}, "gdh_platform1_13_color2_001.png": {"x": 2850, "y": 2596, "w": 60, "h": 60}, "gdh_platform1_13_color_001.png": {"x": 2912, "y": 2596, "w": 60, "h": 60}, "gdh_platform1_14_001.png": {"x": 0, "y": 2658, "w": 60, "h": 60}, "gdh_platform1_14_color2_001.png": {"x": 62, "y": 2658, "w": 60, "h": 60}, "gdh_platform1_14_color_001.png": {"x": 124, "y": 2658, "w": 60, "h": 60}, "gdh_spike_03_001.png": {"x": 186, "y": 2658, "w": 60, "h": 60}, "gdh_spike_03_g2_001.png": {"x": 248, "y": 2658, "w": 52, "h": 60}, "portal_14_extra_2_001.png": {"x": 302, "y": 2658, "w": 48, "h": 56}, "gdh_03_1_o4_s_001.png": {"x": 352, "y": 2658, "w": 52, "h": 52}, "portal_07_extra_2_001.png": {"x": 406, "y": 2658, "w": 52, "h": 52}, "edit_eeSDBtn_001.png": {"x": 460, "y": 2658, "w": 121, "h": 50}, "edit_eeSUBtn_001.png": {"x": 583, "y": 2658, "w": 116, "h": 50}, "portal_10_extra_2_001.png": {"x": 701, "y": 2658, "w": 52, "h": 50}, "portal_18_extra_2_001.png": {"x": 755, "y": 2658, "w": 56, "h": 50}, "gdh_02_1_2_001.png": {"x": 813, "y": 2658, "w": 60, "h": 48}, "gdh_02_1b_2_001.png": {"x": 875, "y": 2658, "w": 60, "h": 48}, "gdh_02_1c_2_001.png": {"x": 937, "y": 2658, "w": 60, "h": 48}, "gdh_02_2_2_001.png": {"x": 999, "y": 2658, "w": 60, "h": 48}, "gdh_02_2b_2_001.png": {"x": 1061, "y": 2658, "w": 60, "h": 48}, "gdh_02_2c_2_001.png": {"x": 1123, "y": 2658, "w": 60, "h": 48}, "gdh_02_3_2_001.png": {"x": 1185, "y": 2658, "w": 60, "h": 48}, "gdh_02_3b_2_001.png": {"x": 1247, "y": 2658, "w": 60, "h": 48}, "gdh_02_3c_2_001.png": {"x": 1309, "y": 2658, "w": 60, "h": 48}, "gdh_02_4_2_001.png": {"x": 1371, "y": 2658, "w": 60, "h": 48}, "gdh_02_4b_2_001.png": {"x": 1433, "y": 2658, "w": 60, "h": 48}, "gdh_02_4c_2_001.png": {"x": 1495, "y": 2658, "w": 60, "h": 48}, "gdh_platform1_01_color2_001.png": {"x": 1557, "y": 2658, "w": 60, "h": 48}, "gdh_platform1_01_color_001.png": {"x": 1619, "y": 2658, "w": 60, "h": 48}, "gdh_platform1_02_color2_001.png": {"x": 1681, "y": 2658, "w": 60, "h": 48}, "gdh_platform1_02_color_001.png": {"x": 1743, "y": 2658, "w": 60, "h": 48}, "gdh_platform1_03_color2_001.png": {"x": 1805, "y": 2658, "w": 60, "h": 48}, "gdh_platform1_03_color_001.png": {"x": 1867, "y": 2658, "w": 60, "h": 48}, "gdh_platform1_04_color2_001.png": {"x": 1929, "y": 2658, "w": 60, "h": 48}, "gdh_platform1_04_color_001.png": {"x": 1991, "y": 2658, "w": 60, "h": 48}, "gdh_platform1_05_color2_001.png": {"x": 2053, "y": 2658, "w": 60, "h": 48}, "gdh_platform1_05_color_001.png": {"x": 2115, "y": 2658, "w": 60, "h": 48}, "gdh_platform1_06_color2_001.png": {"x": 2177, "y": 2658, "w": 60, "h": 48}, "gdh_platform1_06_color_001.png": {"x": 2239, "y": 2658, "w": 60, "h": 48}, "gdh_platform1_07_color2_001.png": {"x": 2301, "y": 2658, "w": 60, "h": 48}, "gdh_platform1_07_color_001.png": {"x": 2363, "y": 2658, "w": 60, "h": 48}, "gdh_platform1_08_color2_001.png": {"x": 2425, "y": 2658, "w": 48, "h": 48}, "gdh_platform1_08_color_001.png": {"x": 2475, "y": 2658, "w": 48, "h": 48}, "gdh_spike_03_color2_001.png": {"x": 2525, "y": 2658, "w": 42, "h": 48}, "gdh_spike_03_color_001.png": {"x": 2569, "y": 2658, "w": 42, "h": 48}, "gdh_spike_03_g_001.png": {"x": 2613, "y": 2658, "w": 40, "h": 48}, "portal_01_extra_2_001.png": {"x": 2655, "y": 2658, "w": 52, "h": 48}, "portal_02_extra_2_001.png": {"x": 2709, "y": 2658, "w": 52, "h": 48}, "gdh_03_1_c5_s_001.png": {"x": 2763, "y": 2658, "w": 44, "h": 46}, "portal_13_extra_2_001.png": {"x": 2809, "y": 2658, "w": 56, "h": 44}, "gdh_03_1_c4b_s_001.png": {"x": 2867, "y": 2658, "w": 44, "h": 42}, "portal_03_extra_2_001.png": {"x": 2913, "y": 2658, "w": 42, "h": 42}, "blockPiece_001_001.png": {"x": 2957, "y": 2658, "w": 40, "h": 40}, "edge_01_01_001.png": {"x": 0, "y": 2720, "w": 40, "h": 40}, "edge_01_01_color_001.png": {"x": 42, "y": 2720, "w": 40, "h": 40}, "edge_01_02_001.png": {"x": 84, "y": 2720, "w": 40, "h": 40}, "edge_01_02_color_001.png": {"x": 126, "y": 2720, "w": 40, "h": 40}, "edge_01_03_001.png": {"x": 168, "y": 2720, "w": 40, "h": 40}, "edge_01_03_color_001.png": {"x": 210, "y": 2720, "w": 40, "h": 40}, "edge_01_04_001.png": {"x": 252, "y": 2720, "w": 40, "h": 40}, "edge_01_04_color_001.png": {"x": 294, "y": 2720, "w": 40, "h": 40}, "edge_01_05_001.png": {"x": 336, "y": 2720, "w": 40, "h": 40}, "edge_01_05_color_001.png": {"x": 378, "y": 2720, "w": 40, "h": 40}, "edge_01_06_001.png": {"x": 420, "y": 2720, "w": 40, "h": 40}, "edge_01_07_001.png": {"x": 462, "y": 2720, "w": 40, "h": 40}, "edge_01_07_color_001.png": {"x": 504, "y": 2720, "w": 40, "h": 40}, "gdh_spike_04_001.png": {"x": 546, "y": 2720, "w": 40, "h": 40}, "gdh_spike_04_g2_001.png": {"x": 588, "y": 2720, "w": 34, "h": 40}, "portal_04_extra_2_001.png": {"x": 624, "y": 2720, "w": 56, "h": 40}, "portal_17_extra_2_001.png": {"x": 682, "y": 2720, "w": 58, "h": 40}, "gdh_01_1_03_o_001.png": {"x": 742, "y": 2720, "w": 120, "h": 32}, "gdh_01_1_03_s_001.png": {"x": 864, "y": 2720, "w": 120, "h": 32}, "gdh_01_1_03b_o_001.png": {"x": 986, "y": 2720, "w": 120, "h": 32}, "gdh_01_1_03b_s_001.png": {"x": 1108, "y": 2720, "w": 120, "h": 32}, "gdh_01_2_08b_o_001.png": {"x": 1230, "y": 2720, "w": 120, "h": 32}, "gdh_01_2_08b_s_001.png": {"x": 1352, "y": 2720, "w": 120, "h": 32}, "gdh_platformArt_01_001.png": {"x": 1474, "y": 2720, "w": 32, "h": 32}, "gdh_platformArt_02_001.png": {"x": 1508, "y": 2720, "w": 64, "h": 32}, "gdh_platformArt_03_001.png": {"x": 1574, "y": 2720, "w": 32, "h": 32}, "gdh_platformArt_04_001.png": {"x": 1608, "y": 2720, "w": 64, "h": 32}, "gdh_platformArt_05_001.png": {"x": 1674, "y": 2720, "w": 64, "h": 32}, "gdh_platformArt_06_001.png": {"x": 1740, "y": 2720, "w": 64, "h": 32}, "gdh_01_1_02_o_001.png": {"x": 1806, "y": 2720, "w": 120, "h": 30}, "gdh_01_1_02_s_001.png": {"x": 1928, "y": 2720, "w": 120, "h": 30}, "gdh_01_1_03_001.png": {"x": 2050, "y": 2720, "w": 120, "h": 30}, "gdh_01_1_03b_001.png": {"x": 2172, "y": 2720, "w": 120, "h": 30}, "gdh_01_1_08_001.png": {"x": 2294, "y": 2720, "w": 120, "h": 30}, "gdh_01_1_08_2_001.png": {"x": 2416, "y": 2720, "w": 120, "h": 30}, "gdh_01_1_08b_001.png": {"x": 2538, "y": 2720, "w": 120, "h": 30}, "gdh_01_1_08b_2_001.png": {"x": 2660, "y": 2720, "w": 120, "h": 30}, "gdh_01_2_03_001.png": {"x": 2782, "y": 2720, "w": 120, "h": 30}, "gdh_01_2_03_2_001.png": {"x": 0, "y": 2762, "w": 120, "h": 30}, "gdh_01_2_03b_001.png": {"x": 122, "y": 2762, "w": 120, "h": 30}, "gdh_01_2_03b_2_001.png": {"x": 244, "y": 2762, "w": 120, "h": 30}, "gdh_01_2_07b_o_001.png": {"x": 366, "y": 2762, "w": 120, "h": 30}, "gdh_01_2_07b_s_001.png": {"x": 488, "y": 2762, "w": 120, "h": 30}, "gdh_01_2_08_001.png": {"x": 610, "y": 2762, "w": 120, "h": 30}, "gdh_01_2_08_o_001.png": {"x": 732, "y": 2762, "w": 120, "h": 30}, "gdh_01_2_08_s_001.png": {"x": 854, "y": 2762, "w": 120, "h": 30}, "gdh_01_2_08b_001.png": {"x": 976, "y": 2762, "w": 120, "h": 30}, "gdh_01_2_09_o_001.png": {"x": 1098, "y": 2762, "w": 120, "h": 30}, "gdh_01_2_09_s_001.png": {"x": 1220, "y": 2762, "w": 120, "h": 30}, "gdh_01_2_10b_o_001.png": {"x": 1342, "y": 2762, "w": 120, "h": 30}, "gdh_01_2_10b_s_001.png": {"x": 1464, "y": 2762, "w": 120, "h": 30}, "gdh_03_1_b1_s_001.png": {"x": 1586, "y": 2762, "w": 30, "h": 30}, "gdh_03_1_b2_s_001.png": {"x": 1618, "y": 2762, "w": 56, "h": 30}, "gdh_01_1_01b_o_001.png": {"x": 1676, "y": 2762, "w": 120, "h": 28}, "gdh_01_1_01b_s_001.png": {"x": 1798, "y": 2762, "w": 120, "h": 28}, "gdh_01_1_02_001.png": {"x": 1920, "y": 2762, "w": 120, "h": 28}, "gdh_01_1_04_o_001.png": {"x": 2042, "y": 2762, "w": 122, "h": 28}, "gdh_01_1_04_s_001.png": {"x": 2166, "y": 2762, "w": 122, "h": 28}, "gdh_01_1_04b_o_001.png": {"x": 2290, "y": 2762, "w": 120, "h": 28}, "gdh_01_1_04b_s_001.png": {"x": 2412, "y": 2762, "w": 120, "h": 28}, "gdh_01_1_07b_001.png": {"x": 2534, "y": 2762, "w": 120, "h": 28}, "gdh_01_1_07b_2_001.png": {"x": 2656, "y": 2762, "w": 120, "h": 28}, "gdh_01_1_09_001.png": {"x": 2778, "y": 2762, "w": 120, "h": 28}, "gdh_01_1_09_2_001.png": {"x": 0, "y": 2794, "w": 120, "h": 28}, "gdh_01_1_10b_001.png": {"x": 122, "y": 2794, "w": 120, "h": 28}, "gdh_01_1_10b_2_001.png": {"x": 244, "y": 2794, "w": 120, "h": 28}, "gdh_01_2_02_001.png": {"x": 366, "y": 2794, "w": 120, "h": 28}, "gdh_01_2_02_2_001.png": {"x": 488, "y": 2794, "w": 120, "h": 28}, "gdh_01_2_04b_001.png": {"x": 610, "y": 2794, "w": 120, "h": 28}, "gdh_01_2_04b_2_001.png": {"x": 732, "y": 2794, "w": 120, "h": 28}, "gdh_01_2_07_o_001.png": {"x": 854, "y": 2794, "w": 122, "h": 28}, "gdh_01_2_07_s_001.png": {"x": 978, "y": 2794, "w": 122, "h": 28}, "gdh_01_2_07b_001.png": {"x": 1102, "y": 2794, "w": 120, "h": 28}, "gdh_01_2_09_001.png": {"x": 1224, "y": 2794, "w": 120, "h": 28}, "gdh_01_2_10b_001.png": {"x": 1346, "y": 2794, "w": 120, "h": 28}, "gdh_spike_04_color2_001.png": {"x": 1468, "y": 2794, "w": 22, "h": 28}, "gdh_spike_04_color_001.png": {"x": 1492, "y": 2794, "w": 22, "h": 28}, "gdh_spike_04_g_001.png": {"x": 1516, "y": 2794, "w": 20, "h": 28}, "gdh_01_1_01_o_001.png": {"x": 1538, "y": 2794, "w": 122, "h": 26}, "gdh_01_1_01_s_001.png": {"x": 1662, "y": 2794, "w": 122, "h": 26}, "gdh_01_1_01b_001.png": {"x": 1786, "y": 2794, "w": 120, "h": 26}, "gdh_01_1_02b_o_001.png": {"x": 1908, "y": 2794, "w": 120, "h": 26}, "gdh_01_1_02b_s_001.png": {"x": 2030, "y": 2794, "w": 120, "h": 26}, "gdh_01_1_04_001.png": {"x": 2152, "y": 2794, "w": 120, "h": 26}, "gdh_01_1_04b_001.png": {"x": 2274, "y": 2794, "w": 120, "h": 26}, "gdh_01_1_07_001.png": {"x": 2396, "y": 2794, "w": 120, "h": 26}, "gdh_01_1_07_2_001.png": {"x": 2518, "y": 2794, "w": 120, "h": 26}, "gdh_01_2_01b_001.png": {"x": 2640, "y": 2794, "w": 120, "h": 26}, "gdh_01_2_01b_2_001.png": {"x": 2762, "y": 2794, "w": 120, "h": 26}, "gdh_01_2_04_001.png": {"x": 2884, "y": 2794, "w": 120, "h": 26}, "gdh_01_2_04_2_001.png": {"x": 0, "y": 2824, "w": 120, "h": 26}, "gdh_01_2_07_001.png": {"x": 122, "y": 2824, "w": 120, "h": 26}, "gdh_01_2_09b_o_001.png": {"x": 244, "y": 2824, "w": 120, "h": 26}, "gdh_01_2_09b_s_001.png": {"x": 366, "y": 2824, "w": 120, "h": 26}, "gdh_01_2_10_o_001.png": {"x": 488, "y": 2824, "w": 122, "h": 26}, "gdh_01_2_10_s_001.png": {"x": 612, "y": 2824, "w": 122, "h": 26}, "gdh_01_1_01_001.png": {"x": 736, "y": 2824, "w": 120, "h": 24}, "gdh_01_1_09b_001.png": {"x": 858, "y": 2824, "w": 120, "h": 24}, "gdh_01_1_09b_2_001.png": {"x": 980, "y": 2824, "w": 120, "h": 24}, "gdh_01_1_10_001.png": {"x": 1102, "y": 2824, "w": 120, "h": 24}, "gdh_01_1_10_2_001.png": {"x": 1224, "y": 2824, "w": 120, "h": 24}, "gdh_01_2_01_001.png": {"x": 1346, "y": 2824, "w": 120, "h": 24}, "gdh_01_2_01_2_001.png": {"x": 1468, "y": 2824, "w": 120, "h": 24}, "gdh_01_2_09b_001.png": {"x": 1590, "y": 2824, "w": 120, "h": 24}, "gdh_01_2_10_001.png": {"x": 1712, "y": 2824, "w": 120, "h": 24}, "gdh_01_1_02b_001.png": {"x": 1834, "y": 2824, "w": 120, "h": 22}, "gdh_01_2_02b_001.png": {"x": 1956, "y": 2824, "w": 120, "h": 22}, "gdh_01_2_02b_2_001.png": {"x": 2078, "y": 2824, "w": 120, "h": 22}, "gdh_platformArt_01_color_001.png": {"x": 2200, "y": 2824, "w": 20, "h": 20}, "gdh_platformArt_02_color_001.png": {"x": 2222, "y": 2824, "w": 52, "h": 20}, "gdh_platformArt_03_color_001.png": {"x": 2276, "y": 2824, "w": 20, "h": 20}, "gdh_platformArt_04_color_001.png": {"x": 2298, "y": 2824, "w": 52, "h": 20}, "gdh_platformArt_05_color_001.png": {"x": 2352, "y": 2824, "w": 36, "h": 20}, "gdh_platformArt_06_color_001.png": {"x": 2390, "y": 2824, "w": 52, "h": 20}, "floorLine_02_001.png": {"x": 0, "y": 2852, "w": 1801, "h": 8}, "floorLine_01_001.png": {"x": 0, "y": 2862, "w": 1776, "h": 6}}} \ No newline at end of file diff --git a/assets/sheets/GJ_GameSheet02-uhd-packed.png b/assets/sheets/GJ_GameSheet02-uhd-packed.png new file mode 100644 index 00000000..c1e583eb Binary files /dev/null and b/assets/sheets/GJ_GameSheet02-uhd-packed.png differ diff --git a/assets/sheets/GJ_GameSheet03-uhd-packed.json b/assets/sheets/GJ_GameSheet03-uhd-packed.json new file mode 100644 index 00000000..c3acd7b7 --- /dev/null +++ b/assets/sheets/GJ_GameSheet03-uhd-packed.json @@ -0,0 +1 @@ +{"sheet": "GJ_GameSheet03-uhd-packed.png", "size": {"w": 4350, "h": 4253}, "frames": {"groundSquareShadow_001.png": {"x": 0, "y": 0, "w": 512, "h": 512}, "GJ_secretLock_001.png": {"x": 514, "y": 0, "w": 256, "h": 464}, "shopRope_001.png": {"x": 772, "y": 0, "w": 296, "h": 464}, "adRope_001.png": {"x": 1070, "y": 0, "w": 308, "h": 458}, "GJ_editBtn_001.png": {"x": 1380, "y": 0, "w": 312, "h": 326}, "GJ_playBtn2_001.png": {"x": 1694, "y": 0, "w": 314, "h": 326}, "GJ_shareBtn_001.png": {"x": 2010, "y": 0, "w": 312, "h": 326}, "edit_vLine_001.png": {"x": 2324, "y": 0, "w": 6, "h": 316}, "secretDoorBtn2_closed_001.png": {"x": 2332, "y": 0, "w": 207, "h": 292}, "secretDoorBtn2_open_001.png": {"x": 2541, "y": 0, "w": 346, "h": 292}, "GJLargeLock_001.png": {"x": 2889, "y": 0, "w": 242, "h": 290}, "GJ_bigStar_glow_001.png": {"x": 3133, "y": 0, "w": 274, "h": 288}, "GJ_sideArt_001.png": {"x": 3409, "y": 0, "w": 286, "h": 282}, "garageRope_001.png": {"x": 3697, "y": 0, "w": 151, "h": 282}, "GJ_garageBtn_001.png": {"x": 3850, "y": 0, "w": 280, "h": 280}, "pathIcon_07_001.png": {"x": 4132, "y": 0, "w": 147, "h": 280}, "gauntletCorner_001.png": {"x": 0, "y": 514, "w": 280, "h": 278}, "GJ_bigMoon_glow_001.png": {"x": 282, "y": 514, "w": 264, "h": 274}, "GJ_epicCoin2_001.png": {"x": 548, "y": 514, "w": 198, "h": 270}, "GJ_epicCoin3_001.png": {"x": 748, "y": 514, "w": 236, "h": 270}, "GJ_epicCoin_001.png": {"x": 986, "y": 514, "w": 194, "h": 266}, "pathIcon_01_001.png": {"x": 1182, "y": 514, "w": 178, "h": 266}, "GJ_adChestBtn_001.png": {"x": 1362, "y": 514, "w": 230, "h": 262}, "navArrowBtn_001.png": {"x": 1594, "y": 514, "w": 106, "h": 262}, "GJ_menuBtn_001.png": {"x": 1702, "y": 514, "w": 246, "h": 258}, "GJ_normalBtn_001.png": {"x": 1950, "y": 514, "w": 246, "h": 258}, "GJ_practiceBtn_001.png": {"x": 2198, "y": 514, "w": 246, "h": 258}, "GJ_replayBtn_001.png": {"x": 2446, "y": 514, "w": 246, "h": 258}, "GJ_replayFullBtn_001.png": {"x": 2694, "y": 514, "w": 246, "h": 258}, "GJ_table_side_001.png": {"x": 2942, "y": 514, "w": 119, "h": 256}, "pathIcon_03_001.png": {"x": 3063, "y": 514, "w": 147, "h": 254}, "difficulty_07_btn2_001.png": {"x": 3212, "y": 514, "w": 142, "h": 248}, "GJ_createLinesBtn_001.png": {"x": 3356, "y": 514, "w": 240, "h": 246}, "GJ_savedSongsBtn_001.png": {"x": 3598, "y": 514, "w": 240, "h": 246}, "difficulty_06_btn2_001.png": {"x": 3840, "y": 514, "w": 144, "h": 246}, "difficulty_08_btn2_001.png": {"x": 3986, "y": 514, "w": 162, "h": 246}, "difficulty_09_btn2_001.png": {"x": 4150, "y": 514, "w": 152, "h": 246}, "difficulty_10_btn2_001.png": {"x": 0, "y": 794, "w": 194, "h": 246}, "pathIcon_02_001.png": {"x": 196, "y": 794, "w": 147, "h": 240}, "pathIcon_05_001.png": {"x": 345, "y": 794, "w": 187, "h": 238}, "shard2_glow_001.png": {"x": 534, "y": 794, "w": 185, "h": 234}, "GJ_profileButton_001.png": {"x": 721, "y": 794, "w": 220, "h": 232}, "shard_glow_001.png": {"x": 943, "y": 794, "w": 190, "h": 230}, "GJ_newBtn_001.png": {"x": 1135, "y": 794, "w": 214, "h": 220}, "PBtn_Jump_001.png": {"x": 1351, "y": 794, "w": 210, "h": 220}, "PBtn_Move_001.png": {"x": 1563, "y": 794, "w": 246, "h": 220}, "GJ_bigDiamond_glow_001.png": {"x": 1811, "y": 794, "w": 226, "h": 218}, "pathIcon_06_001.png": {"x": 2039, "y": 794, "w": 205, "h": 217}, "GJ_achBtn_001.png": {"x": 2246, "y": 794, "w": 204, "h": 216}, "GJ_everyplayBtn_001.png": {"x": 2452, "y": 794, "w": 202, "h": 216}, "GJ_gpBtn_001.png": {"x": 2656, "y": 794, "w": 202, "h": 216}, "GJ_gpgBtn_001.png": {"x": 2860, "y": 794, "w": 203, "h": 216}, "GJ_musicLibraryBtn_001.png": {"x": 3065, "y": 794, "w": 204, "h": 216}, "GJ_ncsLibraryBtn_001.png": {"x": 3271, "y": 794, "w": 204, "h": 216}, "GJ_ngBtn_001.png": {"x": 3477, "y": 794, "w": 204, "h": 216}, "GJ_trailerBtn_001.png": {"x": 3683, "y": 794, "w": 212, "h": 216}, "GJ_featuredCoin_001.png": {"x": 3897, "y": 794, "w": 168, "h": 215}, "GJ_gkBtn_001.png": {"x": 4067, "y": 794, "w": 202, "h": 215}, "GJ_optionsBtn_001.png": {"x": 0, "y": 1042, "w": 202, "h": 215}, "GJ_statsBtn_001.png": {"x": 204, "y": 1042, "w": 202, "h": 215}, "GJ_table_top02_001.png": {"x": 408, "y": 1042, "w": 1576, "h": 215}, "GJ_table_top_001.png": {"x": 1986, "y": 1042, "w": 1576, "h": 215}, "shard2Shadow_001.png": {"x": 3564, "y": 1042, "w": 159, "h": 214}, "GJ_rewardBtn_001.png": {"x": 3725, "y": 1042, "w": 214, "h": 212}, "pathIcon_04_001.png": {"x": 3941, "y": 1042, "w": 218, "h": 211}, "pathIcon_08_001.png": {"x": 0, "y": 1259, "w": 197, "h": 208}, "pathIcon_10_001.png": {"x": 199, "y": 1259, "w": 183, "h": 208}, "GJ_table_bottom_001.png": {"x": 384, "y": 1259, "w": 1556, "h": 206}, "GJ_newBest_001.png": {"x": 1942, "y": 1259, "w": 1157, "h": 205}, "GJ_backBtn_001.png": {"x": 3101, "y": 1259, "w": 198, "h": 204}, "GJ_orderUpBtn_001.png": {"x": 3301, "y": 1259, "w": 198, "h": 204}, "GJ_bigMoon_001.png": {"x": 3501, "y": 1259, "w": 186, "h": 200}, "GJ_bigStar_001.png": {"x": 3689, "y": 1259, "w": 184, "h": 198}, "dailyLevelCorner_001.png": {"x": 3875, "y": 1259, "w": 198, "h": 198}, "rewardCorner_001.png": {"x": 4075, "y": 1259, "w": 198, "h": 198}, "GJ_bigDiamond_001.png": {"x": 0, "y": 1469, "w": 212, "h": 194}, "secretDoorBtn_closed_001.png": {"x": 214, "y": 1469, "w": 140, "h": 194}, "secretDoorBtn_open_001.png": {"x": 356, "y": 1469, "w": 230, "h": 194}, "GJ_checkpointBtn_001.png": {"x": 588, "y": 1469, "w": 292, "h": 192}, "GJ_removeCheckBtn_001.png": {"x": 882, "y": 1469, "w": 186, "h": 192}, "GJ_bigKey_glow_001.png": {"x": 1070, "y": 1469, "w": 256, "h": 190}, "GJ_chatBtn_001.png": {"x": 1328, "y": 1469, "w": 184, "h": 190}, "GJ_closeBtn_001.png": {"x": 1514, "y": 1469, "w": 184, "h": 190}, "GJ_copyBtn_001.png": {"x": 1700, "y": 1469, "w": 184, "h": 190}, "GJ_deSelBtn_001.png": {"x": 1886, "y": 1469, "w": 184, "h": 190}, "GJ_deleteBtn_001.png": {"x": 2072, "y": 1469, "w": 184, "h": 190}, "GJ_deleteServerBtn_001.png": {"x": 2258, "y": 1469, "w": 184, "h": 190}, "GJ_dislikeBtn_001.png": {"x": 2444, "y": 1469, "w": 184, "h": 190}, "GJ_duplicateBtn_001.png": {"x": 2630, "y": 1469, "w": 184, "h": 190}, "GJ_duplicateLockedBtn_001.png": {"x": 2816, "y": 1469, "w": 184, "h": 190}, "GJ_duplicateObjectBtn_001.png": {"x": 3002, "y": 1469, "w": 184, "h": 190}, "GJ_freeStuffBtn_001.png": {"x": 3188, "y": 1469, "w": 202, "h": 190}, "GJ_groupIDBtn_001.png": {"x": 3392, "y": 1469, "w": 184, "h": 190}, "GJ_helpBtn2_001.png": {"x": 3578, "y": 1469, "w": 184, "h": 190}, "GJ_infoBtn_001.png": {"x": 3764, "y": 1469, "w": 184, "h": 190}, "GJ_levelLeaderboardBtn_001.png": {"x": 3950, "y": 1469, "w": 184, "h": 190}, "GJ_like2Btn2_001.png": {"x": 4136, "y": 1469, "w": 184, "h": 190}, "GJ_like2Btn_001.png": {"x": 0, "y": 1665, "w": 184, "h": 190}, "GJ_likeBtn2_001.png": {"x": 186, "y": 1665, "w": 184, "h": 190}, "GJ_likeBtn_001.png": {"x": 372, "y": 1665, "w": 184, "h": 190}, "GJ_myServerBtn_001.png": {"x": 558, "y": 1665, "w": 184, "h": 190}, "GJ_pasteBtn_001.png": {"x": 744, "y": 1665, "w": 184, "h": 190}, "GJ_plusBtn_001.png": {"x": 930, "y": 1665, "w": 184, "h": 190}, "GJ_rateDiffBtn2_001.png": {"x": 1116, "y": 1665, "w": 184, "h": 190}, "GJ_rateDiffBtn_001.png": {"x": 1302, "y": 1665, "w": 184, "h": 190}, "GJ_reportBtn_001.png": {"x": 1488, "y": 1665, "w": 184, "h": 190}, "GJ_restartCheckBtn_001.png": {"x": 1674, "y": 1665, "w": 184, "h": 190}, "GJ_starBtn2_001.png": {"x": 1860, "y": 1665, "w": 184, "h": 190}, "GJ_starBtnMod_001.png": {"x": 2046, "y": 1665, "w": 184, "h": 190}, "GJ_starBtn_001.png": {"x": 2232, "y": 1665, "w": 184, "h": 190}, "GJ_updateBtn_001.png": {"x": 2418, "y": 1665, "w": 184, "h": 190}, "difficulty_10_btn_001.png": {"x": 2604, "y": 1665, "w": 160, "h": 190}, "GJ_editModeBtn_001.png": {"x": 2766, "y": 1665, "w": 184, "h": 188}, "GJ_plainBtn_001.png": {"x": 2952, "y": 1665, "w": 184, "h": 188}, "GJ_rateDiffBtnMod_001.png": {"x": 3138, "y": 1665, "w": 184, "h": 188}, "GJ_viewLevelsBtn_001.png": {"x": 3324, "y": 1665, "w": 184, "h": 188}, "GJ_viewListsBtn_001.png": {"x": 3510, "y": 1665, "w": 184, "h": 188}, "GJ_freeChestBtn_001.png": {"x": 3696, "y": 1665, "w": 188, "h": 186}, "GJ_levelComplete_001.png": {"x": 0, "y": 1857, "w": 1516, "h": 186}, "theSafeLabel_001.png": {"x": 1518, "y": 1857, "w": 928, "h": 186}, "GJ_dailyRewardBtn_001.png": {"x": 2448, "y": 1857, "w": 194, "h": 184}, "difficulty_06_btn_001.png": {"x": 2644, "y": 1857, "w": 144, "h": 180}, "difficulty_09_btn_001.png": {"x": 2790, "y": 1857, "w": 148, "h": 180}, "exMark_001.png": {"x": 2940, "y": 1857, "w": 76, "h": 174}, "secretCoinUI2_001.png": {"x": 3018, "y": 1857, "w": 176, "h": 174}, "secretCoinUI_001.png": {"x": 3196, "y": 1857, "w": 175, "h": 174}, "difficulty_00_btn_001.png": {"x": 3373, "y": 1857, "w": 120, "h": 173}, "difficulty_01_btn_001.png": {"x": 3495, "y": 1857, "w": 120, "h": 173}, "difficulty_02_btn_001.png": {"x": 3617, "y": 1857, "w": 172, "h": 173}, "difficulty_05_btn_001.png": {"x": 3791, "y": 1857, "w": 152, "h": 173}, "difficulty_auto_btn_001.png": {"x": 3945, "y": 1857, "w": 120, "h": 173}, "difficulty_07_btn_001.png": {"x": 4067, "y": 1857, "w": 144, "h": 172}, "difficulty_08_btn_001.png": {"x": 0, "y": 2045, "w": 144, "h": 172}, "GJ_bigDiamond_noShadow_001.png": {"x": 146, "y": 2045, "w": 174, "h": 170}, "GJ_trashBtn_001.png": {"x": 322, "y": 2045, "w": 164, "h": 170}, "difficulty_03_btn_001.png": {"x": 488, "y": 2045, "w": 120, "h": 170}, "difficulty_04_btn_001.png": {"x": 610, "y": 2045, "w": 170, "h": 170}, "shardShadow_001.png": {"x": 782, "y": 2045, "w": 130, "h": 170}, "shineBurst_001.png": {"x": 914, "y": 2045, "w": 172, "h": 170}, "pathIcon_09_001.png": {"x": 1088, "y": 2045, "w": 201, "h": 168}, "accountBtn_blocked_001.png": {"x": 1291, "y": 2045, "w": 172, "h": 166}, "accountBtn_friends_001.png": {"x": 1465, "y": 2045, "w": 172, "h": 166}, "accountBtn_messages_001.png": {"x": 1639, "y": 2045, "w": 172, "h": 166}, "accountBtn_messagessent_001.png": {"x": 1813, "y": 2045, "w": 172, "h": 166}, "accountBtn_myLevels_001.png": {"x": 1987, "y": 2045, "w": 172, "h": 166}, "accountBtn_pendingRequest_001.png": {"x": 2161, "y": 2045, "w": 172, "h": 166}, "accountBtn_pending_001.png": {"x": 2335, "y": 2045, "w": 172, "h": 166}, "accountBtn_removeFriend_001.png": {"x": 2509, "y": 2045, "w": 172, "h": 166}, "accountBtn_requests_001.png": {"x": 2683, "y": 2045, "w": 172, "h": 166}, "accountBtn_settings_001.png": {"x": 2857, "y": 2045, "w": 172, "h": 166}, "GJ_bigStar_noShadow_001.png": {"x": 3031, "y": 2045, "w": 162, "h": 164}, "GJ_nameTxt_001.png": {"x": 3195, "y": 2045, "w": 352, "h": 164}, "GJ_practiceTxt_001.png": {"x": 3549, "y": 2045, "w": 278, "h": 164}, "accountBtn_myLists_001.png": {"x": 3829, "y": 2045, "w": 165, "h": 164}, "explosionIcon_07_001.png": {"x": 3996, "y": 2045, "w": 127, "h": 164}, "shard0201ShardBig_001.png": {"x": 4125, "y": 2045, "w": 122, "h": 164}, "shard0202ShardBig_001.png": {"x": 0, "y": 2219, "w": 122, "h": 164}, "shard0203ShardBig_001.png": {"x": 124, "y": 2219, "w": 122, "h": 164}, "shard0204ShardBig_001.png": {"x": 248, "y": 2219, "w": 122, "h": 164}, "shard0205ShardBig_001.png": {"x": 372, "y": 2219, "w": 122, "h": 164}, "GJ_arrow_01_001.png": {"x": 496, "y": 2219, "w": 130, "h": 162}, "communityCreditsBtn_001.png": {"x": 628, "y": 2219, "w": 166, "h": 162}, "GJ_arrow_02_001.png": {"x": 796, "y": 2219, "w": 130, "h": 160}, "GJ_arrow_03_001.png": {"x": 928, "y": 2219, "w": 130, "h": 160}, "GJ_bigGoldKey_glow_001.png": {"x": 1060, "y": 2219, "w": 224, "h": 160}, "topListsLabel_001.png": {"x": 1286, "y": 2219, "w": 894, "h": 160}, "GJ_BPMOffBtn_001.png": {"x": 2182, "y": 2219, "w": 152, "h": 158}, "GJ_BPMOnBtn_001.png": {"x": 2336, "y": 2219, "w": 152, "h": 158}, "GJ_audioOffBtn_001.png": {"x": 2490, "y": 2219, "w": 152, "h": 158}, "GJ_audioOnBtn_001.png": {"x": 2644, "y": 2219, "w": 152, "h": 158}, "GJ_autoOffBtn_001.png": {"x": 2798, "y": 2219, "w": 152, "h": 158}, "GJ_autoOnBtn_001.png": {"x": 2952, "y": 2219, "w": 152, "h": 158}, "GJ_cancelDownloadBtn_001.png": {"x": 3106, "y": 2219, "w": 152, "h": 158}, "GJ_changeSongBtn_001.png": {"x": 3260, "y": 2219, "w": 152, "h": 158}, "GJ_chrSel_001.png": {"x": 3414, "y": 2219, "w": 334, "h": 158}, "GJ_deleteSongBtn_001.png": {"x": 3750, "y": 2219, "w": 152, "h": 158}, "GJ_downloadBtn_001.png": {"x": 3904, "y": 2219, "w": 152, "h": 158}, "GJ_fxOffBtn_001.png": {"x": 4058, "y": 2219, "w": 152, "h": 158}, "GJ_fxOnBtn_001.png": {"x": 0, "y": 2385, "w": 152, "h": 158}, "GJ_getSongInfoBtn_001.png": {"x": 154, "y": 2385, "w": 152, "h": 158}, "GJ_helpBtn_001.png": {"x": 308, "y": 2385, "w": 152, "h": 158}, "GJ_musicOffBtn_001.png": {"x": 462, "y": 2385, "w": 152, "h": 158}, "GJ_musicOnBtn_001.png": {"x": 616, "y": 2385, "w": 152, "h": 158}, "GJ_optionsBtn02_001.png": {"x": 770, "y": 2385, "w": 152, "h": 158}, "GJ_pauseBtn_001.png": {"x": 924, "y": 2385, "w": 152, "h": 158}, "GJ_pauseEditorBtn_001.png": {"x": 1078, "y": 2385, "w": 152, "h": 158}, "GJ_playEditorBtn_001.png": {"x": 1232, "y": 2385, "w": 152, "h": 158}, "GJ_playMusicBtn_001.png": {"x": 1386, "y": 2385, "w": 152, "h": 158}, "GJ_redoBtn_001.png": {"x": 1540, "y": 2385, "w": 152, "h": 158}, "GJ_selectSongBtn_001.png": {"x": 1694, "y": 2385, "w": 152, "h": 158}, "GJ_selectSongOnBtn_001.png": {"x": 1848, "y": 2385, "w": 152, "h": 158}, "GJ_stopEditorBtn_001.png": {"x": 2002, "y": 2385, "w": 152, "h": 158}, "GJ_stopMusicBtn_001.png": {"x": 2156, "y": 2385, "w": 152, "h": 158}, "GJ_undoBtn_001.png": {"x": 2310, "y": 2385, "w": 152, "h": 158}, "GJ_zoomInBtn_001.png": {"x": 2464, "y": 2385, "w": 152, "h": 158}, "GJ_zoomOutBtn_001.png": {"x": 2618, "y": 2385, "w": 152, "h": 158}, "GJ_lvlEditWorld_001.png": {"x": 2772, "y": 2385, "w": 266, "h": 156}, "GJ_lvlEdit_001.png": {"x": 3040, "y": 2385, "w": 232, "h": 156}, "GJ_practiceComplete_001.png": {"x": 0, "y": 2545, "w": 1512, "h": 156}, "explosionIcon_14_001.png": {"x": 1514, "y": 2545, "w": 150, "h": 156}, "GJ_select_001.png": {"x": 1666, "y": 2545, "w": 152, "h": 152}, "featuredLabel_001.png": {"x": 1820, "y": 2545, "w": 777, "h": 152}, "GJ_yourProfileTxt_001.png": {"x": 2599, "y": 2545, "w": 204, "h": 150}, "dailyLevelLabel_001.png": {"x": 2805, "y": 2545, "w": 915, "h": 150}, "rewardsLabel_001.png": {"x": 0, "y": 2703, "w": 744, "h": 150}, "GJ_shardsBtn_001.png": {"x": 746, "y": 2703, "w": 142, "h": 148}, "communityIcon_02_001.png": {"x": 890, "y": 2703, "w": 142, "h": 148}, "GJ_colorBtn_001.png": {"x": 1034, "y": 2703, "w": 142, "h": 146}, "GJ_dislikesIcon_001.png": {"x": 1178, "y": 2703, "w": 94, "h": 146}, "GJ_paintBtn_001.png": {"x": 1274, "y": 2703, "w": 162, "h": 146}, "GJ_topBar_001.png": {"x": 1438, "y": 2703, "w": 1226, "h": 144}, "diffIcon_10_btn_001.png": {"x": 2666, "y": 2703, "w": 160, "h": 144}, "weeklyLevelLabel_001.png": {"x": 2828, "y": 2703, "w": 1148, "h": 144}, "GJ_bigMoon_noShadow_001.png": {"x": 3978, "y": 2703, "w": 140, "h": 142}, "GJ_lock_open_001.png": {"x": 4120, "y": 2703, "w": 89, "h": 142}, "explosionIcon_03_001.png": {"x": 4211, "y": 2703, "w": 133, "h": 142}, "fireShardBig_001.png": {"x": 0, "y": 2855, "w": 110, "h": 142}, "iceShardBig_001.png": {"x": 112, "y": 2855, "w": 110, "h": 142}, "lavaShardBig_001.png": {"x": 224, "y": 2855, "w": 110, "h": 142}, "poisonShardBig_001.png": {"x": 336, "y": 2855, "w": 110, "h": 142}, "shadowShardBig_001.png": {"x": 448, "y": 2855, "w": 110, "h": 142}, "eventLevelLabel_001.png": {"x": 560, "y": 2855, "w": 994, "h": 140}, "GJ_checkOn_001.png": {"x": 1556, "y": 2855, "w": 140, "h": 138}, "GJ_copyBtn2_001.png": {"x": 1698, "y": 2855, "w": 132, "h": 138}, "GJ_copyStateBtn_001.png": {"x": 1832, "y": 2855, "w": 131, "h": 138}, "GJ_deSelBtn2_001.png": {"x": 1965, "y": 2855, "w": 132, "h": 138}, "GJ_duplicateObjectBtn2_001.png": {"x": 2099, "y": 2855, "w": 131, "h": 138}, "GJ_editHSVBtn2_001.png": {"x": 2232, "y": 2855, "w": 132, "h": 138}, "GJ_editObjBtn3_001.png": {"x": 2366, "y": 2855, "w": 132, "h": 138}, "GJ_editObjBtn4_001.png": {"x": 2500, "y": 2855, "w": 131, "h": 138}, "GJ_goToLayerBtn_001.png": {"x": 2633, "y": 2855, "w": 131, "h": 138}, "GJ_groupIDBtn2_001.png": {"x": 2766, "y": 2855, "w": 132, "h": 138}, "GJ_hsv2Btn_001.png": {"x": 2900, "y": 2855, "w": 132, "h": 138}, "GJ_hsvBtn_001.png": {"x": 3034, "y": 2855, "w": 132, "h": 138}, "GJ_pasteBtn2_001.png": {"x": 3168, "y": 2855, "w": 132, "h": 138}, "GJ_pasteColorBtn_001.png": {"x": 3302, "y": 2855, "w": 132, "h": 138}, "GJ_pasteStateBtn_001.png": {"x": 3436, "y": 2855, "w": 132, "h": 138}, "gj_findBtnOff_001.png": {"x": 3570, "y": 2855, "w": 132, "h": 138}, "gj_findBtn_001.png": {"x": 3704, "y": 2855, "w": 132, "h": 138}, "explosionIcon_15_001.png": {"x": 3838, "y": 2855, "w": 132, "h": 136}, "label_paths_001.png": {"x": 0, "y": 2999, "w": 406, "h": 136}, "label_power_001.png": {"x": 408, "y": 2999, "w": 458, "h": 136}, "label_shards_001.png": {"x": 868, "y": 2999, "w": 500, "h": 136}, "diffIcon_09_btn_001.png": {"x": 1370, "y": 2999, "w": 148, "h": 134}, "gj_ballBtn_off_001.png": {"x": 1520, "y": 2999, "w": 128, "h": 134}, "gj_ballBtn_on_001.png": {"x": 1650, "y": 2999, "w": 128, "h": 134}, "gj_birdBtn_off_001.png": {"x": 1780, "y": 2999, "w": 128, "h": 134}, "gj_birdBtn_on_001.png": {"x": 1910, "y": 2999, "w": 128, "h": 134}, "gj_dartBtn_off_001.png": {"x": 2040, "y": 2999, "w": 128, "h": 134}, "gj_dartBtn_on_001.png": {"x": 2170, "y": 2999, "w": 128, "h": 134}, "gj_explosionBtn_off_001.png": {"x": 2300, "y": 2999, "w": 128, "h": 134}, "gj_explosionBtn_on_001.png": {"x": 2430, "y": 2999, "w": 128, "h": 134}, "gj_iconBtn_off_001.png": {"x": 2560, "y": 2999, "w": 128, "h": 134}, "gj_iconBtn_on_001.png": {"x": 2690, "y": 2999, "w": 128, "h": 134}, "gj_jetpackBtn_off_001.png": {"x": 2820, "y": 2999, "w": 127, "h": 134}, "gj_jetpackBtn_on_001.png": {"x": 2949, "y": 2999, "w": 127, "h": 134}, "gj_robotBtn_off_001.png": {"x": 3078, "y": 2999, "w": 128, "h": 134}, "gj_robotBtn_on_001.png": {"x": 3208, "y": 2999, "w": 128, "h": 134}, "gj_shipBtn_off_001.png": {"x": 3338, "y": 2999, "w": 128, "h": 134}, "gj_shipBtn_on_001.png": {"x": 3468, "y": 2999, "w": 128, "h": 134}, "gj_spiderBtn_off_001.png": {"x": 3598, "y": 2999, "w": 128, "h": 134}, "gj_spiderBtn_on_001.png": {"x": 3728, "y": 2999, "w": 128, "h": 134}, "gj_streakBtn_off_001.png": {"x": 3858, "y": 2999, "w": 128, "h": 134}, "gj_streakBtn_on_001.png": {"x": 3988, "y": 2999, "w": 128, "h": 134}, "gj_swingBtn_off_001.png": {"x": 4118, "y": 2999, "w": 127, "h": 134}, "gj_swingBtn_on_001.png": {"x": 0, "y": 3137, "w": 127, "h": 134}, "levelLeaderboard_friendsBtn_001.png": {"x": 129, "y": 3137, "w": 140, "h": 134}, "levelLeaderboard_globalBtn_001.png": {"x": 271, "y": 3137, "w": 140, "h": 134}, "levelLeaderboard_globalWeeklyBtn_001.png": {"x": 413, "y": 3137, "w": 140, "h": 134}, "levelLeaderboard_localBtn_001.png": {"x": 555, "y": 3137, "w": 140, "h": 133}, "difficultySelected_001.png": {"x": 697, "y": 3137, "w": 132, "h": 132}, "explosionIcon_10_001.png": {"x": 831, "y": 3137, "w": 170, "h": 132}, "creators_tab_on_001.png": {"x": 1003, "y": 3137, "w": 368, "h": 130}, "explosionIcon_02_001.png": {"x": 1373, "y": 3137, "w": 144, "h": 130}, "explosionIcon_17_001.png": {"x": 1519, "y": 3137, "w": 126, "h": 130}, "global_tab_on_001.png": {"x": 1647, "y": 3137, "w": 368, "h": 130}, "top_tab_on_001.png": {"x": 2017, "y": 3137, "w": 368, "h": 130}, "creators_tab_off_001.png": {"x": 2387, "y": 3137, "w": 369, "h": 128}, "diffIcon_06_btn_001.png": {"x": 2758, "y": 3137, "w": 134, "h": 128}, "explosionIcon_08_001.png": {"x": 2894, "y": 3137, "w": 130, "h": 128}, "global_tab_off_001.png": {"x": 3026, "y": 3137, "w": 369, "h": 128}, "top_tab_off_001.png": {"x": 3397, "y": 3137, "w": 368, "h": 128}, "btn_chatHistory_001.png": {"x": 3767, "y": 3137, "w": 120, "h": 126}, "controllerBtn_DPad_Down_001.png": {"x": 3889, "y": 3137, "w": 120, "h": 126}, "controllerBtn_DPad_Left_001.png": {"x": 4011, "y": 3137, "w": 120, "h": 126}, "controllerBtn_DPad_Right_001.png": {"x": 4133, "y": 3137, "w": 120, "h": 126}, "controllerBtn_DPad_Up_001.png": {"x": 0, "y": 3273, "w": 120, "h": 126}, "explosionIcon_16_001.png": {"x": 122, "y": 3273, "w": 130, "h": 126}, "gj_fbIcon_001.png": {"x": 254, "y": 3273, "w": 126, "h": 126}, "gj_folderBtn_001.png": {"x": 382, "y": 3273, "w": 138, "h": 126}, "gj_linkBtnOff_001.png": {"x": 522, "y": 3273, "w": 120, "h": 126}, "gj_linkBtn_001.png": {"x": 644, "y": 3273, "w": 120, "h": 126}, "gj_ytIcon_001.png": {"x": 766, "y": 3273, "w": 126, "h": 126}, "GJ_checkOff_001.png": {"x": 894, "y": 3273, "w": 124, "h": 124}, "GJ_rotationControlBtn01_001.png": {"x": 1020, "y": 3273, "w": 118, "h": 124}, "GJ_rotationControlBtn02_001.png": {"x": 1140, "y": 3273, "w": 118, "h": 124}, "backArrowPlain_01_001.png": {"x": 1260, "y": 3273, "w": 118, "h": 124}, "edit_flipYBtn_001.png": {"x": 1380, "y": 3273, "w": 62, "h": 124}, "folderIcon_001.png": {"x": 1444, "y": 3273, "w": 160, "h": 124}, "friends_tab_off_001.png": {"x": 1606, "y": 3273, "w": 368, "h": 124}, "friends_tab_on_001.png": {"x": 1976, "y": 3273, "w": 368, "h": 124}, "gjItem_04_001.png": {"x": 2346, "y": 3273, "w": 138, "h": 124}, "gjItem_16_001.png": {"x": 2486, "y": 3273, "w": 118, "h": 124}, "gjItem_17_001.png": {"x": 2606, "y": 3273, "w": 118, "h": 124}, "GJ_longBtn01_001.png": {"x": 2726, "y": 3273, "w": 367, "h": 122}, "GJ_longBtn02_001.png": {"x": 3095, "y": 3273, "w": 367, "h": 122}, "GJ_longBtn03_001.png": {"x": 3464, "y": 3273, "w": 674, "h": 122}, "GJ_longBtn04_001.png": {"x": 0, "y": 3401, "w": 450, "h": 122}, "GJ_longBtn05_001.png": {"x": 452, "y": 3401, "w": 158, "h": 122}, "GJ_longBtn06_001.png": {"x": 612, "y": 3401, "w": 158, "h": 122}, "GJ_longBtn07_001.png": {"x": 772, "y": 3401, "w": 158, "h": 122}, "diffIcon_07_btn_001.png": {"x": 932, "y": 3401, "w": 132, "h": 122}, "diffIcon_08_btn_001.png": {"x": 1066, "y": 3401, "w": 138, "h": 122}, "edit_ccwBtn_001.png": {"x": 1206, "y": 3401, "w": 110, "h": 122}, "edit_cwBtn_001.png": {"x": 1318, "y": 3401, "w": 106, "h": 122}, "explosionIcon_04_001.png": {"x": 1426, "y": 3401, "w": 122, "h": 122}, "explosionIcon_06_001.png": {"x": 1550, "y": 3401, "w": 120, "h": 122}, "gj_discordIcon_001.png": {"x": 1672, "y": 3401, "w": 128, "h": 122}, "gj_rdIcon_001.png": {"x": 1802, "y": 3401, "w": 128, "h": 122}, "gj_twIcon_001.png": {"x": 1932, "y": 3401, "w": 128, "h": 122}, "ncs_large_001.png": {"x": 2062, "y": 3401, "w": 314, "h": 122}, "gj_twitchIcon_001.png": {"x": 2378, "y": 3401, "w": 128, "h": 121}, "GJ_achImage_001.png": {"x": 2508, "y": 3401, "w": 120, "h": 120}, "GJ_commentSide2_001.png": {"x": 2630, "y": 3401, "w": 29, "h": 120}, "GJ_commentSide_001.png": {"x": 2661, "y": 3401, "w": 29, "h": 120}, "diffIcon_00_btn_001.png": {"x": 2692, "y": 3401, "w": 120, "h": 120}, "diffIcon_01_btn_001.png": {"x": 2814, "y": 3401, "w": 120, "h": 120}, "diffIcon_02_btn_001.png": {"x": 2936, "y": 3401, "w": 120, "h": 120}, "diffIcon_03_btn_001.png": {"x": 3058, "y": 3401, "w": 120, "h": 120}, "diffIcon_04_btn_001.png": {"x": 3180, "y": 3401, "w": 120, "h": 120}, "diffIcon_05_btn_001.png": {"x": 3302, "y": 3401, "w": 120, "h": 120}, "diffIcon_auto_btn_001.png": {"x": 3424, "y": 3401, "w": 120, "h": 120}, "explosionIcon_01_001.png": {"x": 3546, "y": 3401, "w": 120, "h": 120}, "explosionIcon_05_001.png": {"x": 3668, "y": 3401, "w": 122, "h": 120}, "explosionIcon_09_001.png": {"x": 3792, "y": 3401, "w": 120, "h": 120}, "explosionIcon_11_001.png": {"x": 3914, "y": 3401, "w": 120, "h": 120}, "explosionIcon_12_001.png": {"x": 4036, "y": 3401, "w": 120, "h": 120}, "explosionIcon_13_001.png": {"x": 4158, "y": 3401, "w": 120, "h": 120}, "explosionIcon_18_001.png": {"x": 0, "y": 3525, "w": 120, "h": 120}, "explosionIcon_19_001.png": {"x": 122, "y": 3525, "w": 123, "h": 120}, "explosionIcon_20_001.png": {"x": 247, "y": 3525, "w": 120, "h": 120}, "gjItem_18_001.png": {"x": 369, "y": 3525, "w": 120, "h": 120}, "gjItem_19_001.png": {"x": 491, "y": 3525, "w": 120, "h": 120}, "gjItem_20_001.png": {"x": 613, "y": 3525, "w": 120, "h": 120}, "gj_heartOff_001.png": {"x": 735, "y": 3525, "w": 120, "h": 120}, "gj_heartOn_001.png": {"x": 857, "y": 3525, "w": 120, "h": 120}, "label_of_001.png": {"x": 979, "y": 3525, "w": 154, "h": 120}, "playerSquare_001.png": {"x": 1135, "y": 3525, "w": 120, "h": 120}, "player_special_01_001.png": {"x": 1257, "y": 3525, "w": 121, "h": 120}, "player_special_02_001.png": {"x": 1380, "y": 3525, "w": 121, "h": 120}, "player_special_03_001.png": {"x": 1503, "y": 3525, "w": 120, "h": 120}, "player_special_04_001.png": {"x": 1625, "y": 3525, "w": 121, "h": 120}, "player_special_05_001.png": {"x": 1748, "y": 3525, "w": 120, "h": 120}, "player_special_06_001.png": {"x": 1870, "y": 3525, "w": 120, "h": 120}, "player_special_07_001.png": {"x": 1992, "y": 3525, "w": 120, "h": 120}, "shipfireIcon_01_001.png": {"x": 2114, "y": 3525, "w": 120, "h": 120}, "shipfireIcon_02_001.png": {"x": 2236, "y": 3525, "w": 120, "h": 120}, "shipfireIcon_03_001.png": {"x": 2358, "y": 3525, "w": 120, "h": 120}, "shipfireIcon_04_001.png": {"x": 2480, "y": 3525, "w": 120, "h": 120}, "shipfireIcon_05_001.png": {"x": 2602, "y": 3525, "w": 120, "h": 120}, "shipfireIcon_06_001.png": {"x": 2724, "y": 3525, "w": 120, "h": 120}, "warpBtn_01_001.png": {"x": 2846, "y": 3525, "w": 118, "h": 120}, "warpLockOnBtn_001.png": {"x": 2966, "y": 3525, "w": 118, "h": 120}, "GJ_listAddBtn_001.png": {"x": 3086, "y": 3525, "w": 133, "h": 118}, "warpBtn_02_001.png": {"x": 3221, "y": 3525, "w": 118, "h": 118}, "GJ_bigGoldKey_001.png": {"x": 3341, "y": 3525, "w": 186, "h": 116}, "edit_addCBtn_001.png": {"x": 3529, "y": 3525, "w": 116, "h": 116}, "warpLockOffBtn_001.png": {"x": 3647, "y": 3525, "w": 116, "h": 116}, "communityIcon_01_001.png": {"x": 3765, "y": 3525, "w": 208, "h": 113}, "edit_freeRotateBtn_001.png": {"x": 3975, "y": 3525, "w": 100, "h": 112}, "gplusSignIn_001.png": {"x": 0, "y": 3647, "w": 360, "h": 112}, "gplusSignOut_001.png": {"x": 362, "y": 3647, "w": 360, "h": 112}, "robtoplogo_small.png": {"x": 724, "y": 3647, "w": 400, "h": 112}, "GJ_lockGray_001.png": {"x": 1126, "y": 3647, "w": 92, "h": 110}, "GJ_lock_001.png": {"x": 1220, "y": 3647, "w": 92, "h": 110}, "GJ_resetBtn_001.png": {"x": 1314, "y": 3647, "w": 104, "h": 110}, "GJ_secretLock4_small_001.png": {"x": 1420, "y": 3647, "w": 106, "h": 110}, "controllerBtn_A_001.png": {"x": 1528, "y": 3647, "w": 104, "h": 110}, "controllerBtn_B_001.png": {"x": 1634, "y": 3647, "w": 104, "h": 110}, "controllerBtn_LThumb_001.png": {"x": 1740, "y": 3647, "w": 104, "h": 110}, "controllerBtn_RThumb_001.png": {"x": 1846, "y": 3647, "w": 104, "h": 110}, "controllerBtn_X_001.png": {"x": 1952, "y": 3647, "w": 104, "h": 110}, "controllerBtn_Y_001.png": {"x": 2058, "y": 3647, "w": 104, "h": 110}, "edit_rotate45lBtn_001.png": {"x": 2164, "y": 3647, "w": 100, "h": 110}, "edit_rotate45rBtn_001.png": {"x": 2266, "y": 3647, "w": 100, "h": 110}, "edit_rotateSnapBtn_001.png": {"x": 2368, "y": 3647, "w": 100, "h": 110}, "edit_snapBtn_001.png": {"x": 2470, "y": 3647, "w": 116, "h": 106}, "miniSkull_001.png": {"x": 2588, "y": 3647, "w": 112, "h": 106}, "rankIcon_1_001.png": {"x": 2702, "y": 3647, "w": 132, "h": 106}, "deleteFilter_details_001.png": {"x": 2836, "y": 3647, "w": 104, "h": 105}, "deleteFilter_static_001.png": {"x": 2942, "y": 3647, "w": 106, "h": 105}, "GJ_musicIcon_001.png": {"x": 3050, "y": 3647, "w": 98, "h": 104}, "deleteFilter_custom_001.png": {"x": 3150, "y": 3647, "w": 110, "h": 104}, "deleteFilter_none_001.png": {"x": 3262, "y": 3647, "w": 82, "h": 104}, "GJ_bigKey_001.png": {"x": 3346, "y": 3647, "w": 170, "h": 102}, "GJ_demonIcon_001.png": {"x": 3518, "y": 3647, "w": 106, "h": 102}, "edit_enableRotateBtn_001.png": {"x": 3626, "y": 3647, "w": 116, "h": 102}, "gjItem_01_001.png": {"x": 3744, "y": 3647, "w": 170, "h": 102}, "gjItem_02_001.png": {"x": 3916, "y": 3647, "w": 170, "h": 102}, "gjItem_03_001.png": {"x": 4088, "y": 3647, "w": 170, "h": 102}, "gjItem_05_001.png": {"x": 0, "y": 3761, "w": 170, "h": 102}, "GJ_filterIcon_001.png": {"x": 172, "y": 3761, "w": 106, "h": 100}, "edit_delBtn_001.png": {"x": 280, "y": 3761, "w": 72, "h": 100}, "rankIcon_top10_001.png": {"x": 354, "y": 3761, "w": 124, "h": 100}, "GJ_stuffTxt_001.png": {"x": 480, "y": 3761, "w": 299, "h": 98}, "GJ_twitchTxt_001.png": {"x": 781, "y": 3761, "w": 299, "h": 98}, "GJ_twitterTxt_001.png": {"x": 1082, "y": 3761, "w": 304, "h": 98}, "GJ_youtubeTxt_001.png": {"x": 1388, "y": 3761, "w": 299, "h": 98}, "edit_buildBtn_001.png": {"x": 1689, "y": 3761, "w": 296, "h": 98}, "edit_buildSBtn_001.png": {"x": 1987, "y": 3761, "w": 296, "h": 98}, "edit_deleteBtn_001.png": {"x": 2285, "y": 3761, "w": 296, "h": 98}, "edit_deleteSBtn_001.png": {"x": 2583, "y": 3761, "w": 296, "h": 98}, "edit_editBtn_001.png": {"x": 2881, "y": 3761, "w": 296, "h": 98}, "edit_editSBtn_001.png": {"x": 3179, "y": 3761, "w": 296, "h": 98}, "GJ_starsIcon_001.png": {"x": 3477, "y": 3761, "w": 94, "h": 97}, "GJ_starsIcon_gray_001.png": {"x": 3573, "y": 3761, "w": 94, "h": 97}, "GJ_deleteIcon_001.png": {"x": 3669, "y": 3761, "w": 96, "h": 96}, "GJ_pauseBtn_clean_001.png": {"x": 3767, "y": 3761, "w": 96, "h": 96}, "GJ_sortIcon_001.png": {"x": 3865, "y": 3761, "w": 108, "h": 96}, "GJ_completesIcon_001.png": {"x": 3975, "y": 3761, "w": 98, "h": 94}, "GJ_downloadsIcon_001.png": {"x": 4075, "y": 3761, "w": 94, "h": 94}, "GJ_likesIcon_001.png": {"x": 4171, "y": 3761, "w": 96, "h": 94}, "GJ_optionsTxt_001.png": {"x": 0, "y": 3865, "w": 250, "h": 94}, "GJ_plus2Btn_001.png": {"x": 252, "y": 3865, "w": 88, "h": 94}, "GJ_pointsIcon_001.png": {"x": 342, "y": 3865, "w": 94, "h": 94}, "GJ_coinsIcon2_001.png": {"x": 438, "y": 3865, "w": 92, "h": 92}, "GJ_coinsIcon_001.png": {"x": 532, "y": 3865, "w": 92, "h": 92}, "GJ_coinsIcon_gray_001.png": {"x": 626, "y": 3865, "w": 92, "h": 92}, "GJ_extendedIcon_001.png": {"x": 720, "y": 3865, "w": 94, "h": 92}, "GJ_infoIcon_001.png": {"x": 816, "y": 3865, "w": 93, "h": 92}, "GJ_noteIcon_001.png": {"x": 911, "y": 3865, "w": 85, "h": 92}, "GJ_smallModeIcon_001.png": {"x": 998, "y": 3865, "w": 94, "h": 92}, "GJ_timeIcon_001.png": {"x": 1094, "y": 3865, "w": 92, "h": 92}, "achievementGlow_001.png": {"x": 1188, "y": 3865, "w": 324, "h": 92}, "modBadge_01_001.png": {"x": 1514, "y": 3865, "w": 92, "h": 92}, "modBadge_02_001.png": {"x": 1608, "y": 3865, "w": 92, "h": 92}, "modBadge_03_001.png": {"x": 1702, "y": 3865, "w": 92, "h": 92}, "rankIcon_top50_001.png": {"x": 1796, "y": 3865, "w": 116, "h": 92}, "tier1Icon_001.png": {"x": 1914, "y": 3865, "w": 92, "h": 92}, "tier2Icon_001.png": {"x": 2008, "y": 3865, "w": 92, "h": 92}, "GJ_viewProfileTxt_001.png": {"x": 2102, "y": 3865, "w": 334, "h": 90}, "controllerBtn_Back_001.png": {"x": 2438, "y": 3865, "w": 120, "h": 90}, "controllerBtn_Start_001.png": {"x": 2560, "y": 3865, "w": 120, "h": 90}, "GJ_commentTop2_001.png": {"x": 2682, "y": 3865, "w": 1417, "h": 88}, "GJ_commentTop_001.png": {"x": 0, "y": 3961, "w": 1417, "h": 88}, "gj_navDotBtn_off_001.png": {"x": 1419, "y": 3961, "w": 82, "h": 88}, "gj_navDotBtn_on_001.png": {"x": 1503, "y": 3961, "w": 82, "h": 88}, "warpBtn_03_001.png": {"x": 1587, "y": 3961, "w": 151, "h": 88}, "GJ_plus3Btn_001.png": {"x": 1740, "y": 3961, "w": 82, "h": 86}, "rankIcon_top100_001.png": {"x": 1824, "y": 3961, "w": 108, "h": 86}, "GJ_hammerIcon_001.png": {"x": 1934, "y": 3961, "w": 100, "h": 85}, "currencyOrb_001.png": {"x": 2036, "y": 3961, "w": 80, "h": 84}, "edit_leftBtn5_001.png": {"x": 2118, "y": 3961, "w": 58, "h": 84}, "edit_leftBtn_001.png": {"x": 2178, "y": 3961, "w": 58, "h": 84}, "edit_rightBtn5_001.png": {"x": 2238, "y": 3961, "w": 58, "h": 84}, "edit_rightBtn_001.png": {"x": 2298, "y": 3961, "w": 58, "h": 84}, "storeItemIcon_001.png": {"x": 2358, "y": 3961, "w": 78, "h": 84}, "communityIcon_03_001.png": {"x": 2438, "y": 3961, "w": 204, "h": 82}, "GJ_featuredIcon_001.png": {"x": 2644, "y": 3961, "w": 94, "h": 80}, "edit_downBtn2_001.png": {"x": 2740, "y": 3961, "w": 74, "h": 80}, "edit_downBtn3_001.png": {"x": 2816, "y": 3961, "w": 75, "h": 80}, "edit_findBtn_001.png": {"x": 2893, "y": 3961, "w": 80, "h": 80}, "edit_upBtn2_001.png": {"x": 2975, "y": 3961, "w": 74, "h": 80}, "edit_upBtn3_001.png": {"x": 3051, "y": 3961, "w": 74, "h": 80}, "rankIcon_top200_001.png": {"x": 3127, "y": 3961, "w": 100, "h": 80}, "edit_freeMoveBtn_001.png": {"x": 3229, "y": 3961, "w": 112, "h": 78}, "GJ_diamondsIcon_001.png": {"x": 3343, "y": 3961, "w": 86, "h": 76}, "GJ_followTxt_001.png": {"x": 3431, "y": 3961, "w": 206, "h": 76}, "GJ_moonsIcon_001.png": {"x": 3639, "y": 3961, "w": 76, "h": 76}, "GJ_myListsTxt_001.png": {"x": 3717, "y": 3961, "w": 193, "h": 76}, "bonusShard2Small_001.png": {"x": 3912, "y": 3961, "w": 70, "h": 76}, "currencyDiamondIcon_001.png": {"x": 3984, "y": 3961, "w": 108, "h": 76}, "GJ_sLikeIcon_001.png": {"x": 4094, "y": 3961, "w": 62, "h": 74}, "currencyOrbIcon_001.png": {"x": 4158, "y": 3961, "w": 80, "h": 74}, "edit_leftBtn2_001.png": {"x": 4240, "y": 3961, "w": 88, "h": 74}, "edit_leftBtn3_001.png": {"x": 0, "y": 4051, "w": 88, "h": 74}, "edit_rightBtn2_001.png": {"x": 90, "y": 4051, "w": 88, "h": 74}, "edit_rightBtn3_001.png": {"x": 180, "y": 4051, "w": 88, "h": 74}, "hideBtn_001.png": {"x": 270, "y": 4051, "w": 108, "h": 74}, "ncs_med_001.png": {"x": 380, "y": 4051, "w": 182, "h": 74}, "GJ_unlockTxt_001.png": {"x": 564, "y": 4051, "w": 423, "h": 72}, "rankIcon_top500_001.png": {"x": 989, "y": 4051, "w": 92, "h": 72}, "GJ_chatBtn_01_001.png": {"x": 1083, "y": 4051, "w": 73, "h": 70}, "GJ_chatBtn_02_001.png": {"x": 1158, "y": 4051, "w": 64, "h": 70}, "GJ_tabOff_001.png": {"x": 1224, "y": 4051, "w": 128, "h": 70}, "GJ_tabOn_001.png": {"x": 1354, "y": 4051, "w": 128, "h": 70}, "bonusShardSmall_001.png": {"x": 1484, "y": 4051, "w": 66, "h": 70}, "rankIcon_top1000_001.png": {"x": 1552, "y": 4051, "w": 88, "h": 70}, "newMusicIcon2_001.png": {"x": 1642, "y": 4051, "w": 64, "h": 68}, "newMusicIcon_001.png": {"x": 1708, "y": 4051, "w": 64, "h": 68}, "GJ_table_corner_001.png": {"x": 1774, "y": 4051, "w": 66, "h": 66}, "developedBy_001.png": {"x": 1842, "y": 4051, "w": 264, "h": 66}, "edit_areaModeBtn04_001.png": {"x": 2108, "y": 4051, "w": 66, "h": 66}, "edit_areaModeBtn05_001.png": {"x": 2176, "y": 4051, "w": 66, "h": 66}, "poweredBy_001.png": {"x": 2244, "y": 4051, "w": 246, "h": 66}, "bonusShardLabel_001.png": {"x": 2492, "y": 4051, "w": 512, "h": 64}, "edit_deselectBtn_001.png": {"x": 3006, "y": 4051, "w": 128, "h": 64}, "fireShardLabel_001.png": {"x": 3136, "y": 4051, "w": 410, "h": 64}, "iceShardLabel_001.png": {"x": 3548, "y": 4051, "w": 373, "h": 64}, "lavaShardLabel_001.png": {"x": 3923, "y": 4051, "w": 420, "h": 64}, "poisonShardLabel_001.png": {"x": 0, "y": 4127, "w": 505, "h": 64}, "shadowShardLabel_001.png": {"x": 507, "y": 4127, "w": 542, "h": 64}, "shard0201ShardSmall_001.png": {"x": 1051, "y": 4127, "w": 48, "h": 64}, "shard0202ShardSmall_001.png": {"x": 1101, "y": 4127, "w": 48, "h": 64}, "shard0203ShardSmall_001.png": {"x": 1151, "y": 4127, "w": 48, "h": 64}, "shard0204ShardSmall_001.png": {"x": 1201, "y": 4127, "w": 48, "h": 64}, "shard0205ShardSmall_001.png": {"x": 1251, "y": 4127, "w": 48, "h": 64}, "GJ_sModIcon_001.png": {"x": 1301, "y": 4127, "w": 62, "h": 62}, "edit_flipXBtn_001.png": {"x": 1365, "y": 4127, "w": 124, "h": 62}, "rankIcon_all_001.png": {"x": 1491, "y": 4127, "w": 80, "h": 62}, "GJ_sDownloadIcon_001.png": {"x": 1573, "y": 4127, "w": 60, "h": 60}, "GJ_sMagicIcon_001.png": {"x": 1635, "y": 4127, "w": 66, "h": 60}, "shard0201ShardLabel_001.png": {"x": 1703, "y": 4127, "w": 463, "h": 60}, "shard0202ShardLabel_001.png": {"x": 2168, "y": 4127, "w": 471, "h": 60}, "shard0203ShardLabel_001.png": {"x": 2641, "y": 4127, "w": 469, "h": 60}, "shard0204ShardLabel_001.png": {"x": 3112, "y": 4127, "w": 429, "h": 60}, "shard0205ShardLabel_001.png": {"x": 3543, "y": 4127, "w": 422, "h": 59}, "GJ_sFollowedIcon_001.png": {"x": 3967, "y": 4127, "w": 62, "h": 58}, "GJ_sFriendsIcon_001.png": {"x": 4031, "y": 4127, "w": 70, "h": 58}, "GJ_sRecentIcon_001.png": {"x": 4103, "y": 4127, "w": 62, "h": 58}, "GJ_sStarsIcon_001.png": {"x": 4167, "y": 4127, "w": 60, "h": 58}, "edit_downBtn5_001.png": {"x": 4229, "y": 4127, "w": 84, "h": 58}, "edit_downBtn_001.png": {"x": 0, "y": 4193, "w": 84, "h": 58}, "edit_upBtn5_001.png": {"x": 86, "y": 4193, "w": 84, "h": 58}, "edit_upBtn_001.png": {"x": 172, "y": 4193, "w": 84, "h": 58}, "diamond_small01_001.png": {"x": 258, "y": 4193, "w": 53, "h": 54}, "edit_areaModeBtn01_001.png": {"x": 313, "y": 4193, "w": 66, "h": 54}, "edit_areaModeBtn02_001.png": {"x": 381, "y": 4193, "w": 66, "h": 54}, "edit_areaModeBtn03_001.png": {"x": 449, "y": 4193, "w": 66, "h": 54}, "edit_areaModeBtn03b_001.png": {"x": 517, "y": 4193, "w": 66, "h": 54}, "fireShardSmall_001.png": {"x": 585, "y": 4193, "w": 42, "h": 54}, "iceShardSmall_001.png": {"x": 629, "y": 4193, "w": 42, "h": 54}, "lavaShardSmall_001.png": {"x": 673, "y": 4193, "w": 42, "h": 54}, "poisonShardSmall_001.png": {"x": 717, "y": 4193, "w": 42, "h": 54}, "shadowShardSmall_001.png": {"x": 761, "y": 4193, "w": 42, "h": 54}, "edit_delBtnSmall_001.png": {"x": 805, "y": 4193, "w": 52, "h": 52}, "usercoin_small01_001.png": {"x": 859, "y": 4193, "w": 50, "h": 52}, "GJ_sTrendingIcon_001.png": {"x": 911, "y": 4193, "w": 66, "h": 50}, "PBtn_Arrow_001.png": {"x": 979, "y": 4193, "w": 62, "h": 50}, "moon_small01_001.png": {"x": 1043, "y": 4193, "w": 42, "h": 50}, "star_small01_001.png": {"x": 1087, "y": 4193, "w": 50, "h": 50}, "ncs_small_001.png": {"x": 1139, "y": 4193, "w": 114, "h": 48}, "GJ_deleteAllIcon_001.png": {"x": 1255, "y": 4193, "w": 106, "h": 46}, "GJ_myLevelsTxt_001.png": {"x": 1363, "y": 4193, "w": 133, "h": 46}, "collaborationIcon_001.png": {"x": 1498, "y": 4193, "w": 46, "h": 46}, "highObjectIcon_001.png": {"x": 1546, "y": 4193, "w": 46, "h": 46}, "edit_delCBtn_001.png": {"x": 1594, "y": 4193, "w": 116, "h": 42}, "chestIcon_001.png": {"x": 1712, "y": 4193, "w": 48, "h": 40}, "uiDot_001.png": {"x": 1762, "y": 4193, "w": 32, "h": 38}, "gj_globalRankTxt_001.png": {"x": 1796, "y": 4193, "w": 172, "h": 36}, "edit_swipeBtn_001.png": {"x": 1970, "y": 4193, "w": 122, "h": 30}}} \ No newline at end of file diff --git a/assets/sheets/GJ_GameSheet03-uhd-packed.png b/assets/sheets/GJ_GameSheet03-uhd-packed.png new file mode 100644 index 00000000..6c5ad5df Binary files /dev/null and b/assets/sheets/GJ_GameSheet03-uhd-packed.png differ diff --git a/assets/sheets/GJ_GameSheet04-uhd-packed.json b/assets/sheets/GJ_GameSheet04-uhd-packed.json new file mode 100644 index 00000000..49f27f00 --- /dev/null +++ b/assets/sheets/GJ_GameSheet04-uhd-packed.json @@ -0,0 +1 @@ +{"sheet": "GJ_GameSheet04-uhd-packed.png", "size": {"w": 2585, "h": 2666}, "frames": {"theTowerDoor_001.png": {"x": 0, "y": 0, "w": 464, "h": 458}, "GJ_playBtn_001.png": {"x": 466, "y": 0, "w": 438, "h": 438}, "GJ_challengeBtn_001.png": {"x": 906, "y": 0, "w": 418, "h": 418}, "GJ_createBtn_001.png": {"x": 1326, "y": 0, "w": 418, "h": 418}, "GJ_dailyBtn_001.png": {"x": 1746, "y": 0, "w": 418, "h": 418}, "GJ_eventBtn_001.png": {"x": 0, "y": 460, "w": 418, "h": 418}, "GJ_featuredBtn_001.png": {"x": 420, "y": 460, "w": 418, "h": 418}, "GJ_gauntletsBtn_001.png": {"x": 840, "y": 460, "w": 418, "h": 418}, "GJ_highscoreBtn_001.png": {"x": 1260, "y": 460, "w": 418, "h": 418}, "GJ_listsBtn_001.png": {"x": 1680, "y": 460, "w": 418, "h": 418}, "GJ_mapBtn_001.png": {"x": 2100, "y": 460, "w": 418, "h": 418}, "GJ_mapPacksBtn_001.png": {"x": 0, "y": 880, "w": 418, "h": 418}, "GJ_pathsBtn_001.png": {"x": 420, "y": 880, "w": 418, "h": 418}, "GJ_savedBtn_001.png": {"x": 840, "y": 880, "w": 418, "h": 418}, "GJ_searchBtn_001.png": {"x": 1260, "y": 880, "w": 418, "h": 418}, "GJ_versusBtn_001.png": {"x": 1680, "y": 880, "w": 418, "h": 418}, "GJ_weeklyBtn_001.png": {"x": 2100, "y": 880, "w": 417, "h": 418}, "portalshine_03_front_001.png": {"x": 0, "y": 1300, "w": 176, "h": 356}, "portalshine_06_front_001.png": {"x": 178, "y": 1300, "w": 86, "h": 350}, "portalshine_04_front_001.png": {"x": 266, "y": 1300, "w": 99, "h": 347}, "portalshine_02_front_001.png": {"x": 367, "y": 1300, "w": 144, "h": 332}, "portalshine_04_back_001.png": {"x": 513, "y": 1300, "w": 178, "h": 301}, "portalshine_05_front_001.png": {"x": 693, "y": 1300, "w": 132, "h": 296}, "playerDash2_boom2_001.png": {"x": 827, "y": 1300, "w": 282, "h": 288}, "playerDash2_boom2_002.png": {"x": 1111, "y": 1300, "w": 282, "h": 288}, "playerDash2_boom2_003.png": {"x": 1395, "y": 1300, "w": 282, "h": 288}, "playerDash2_boom2_004.png": {"x": 1679, "y": 1300, "w": 282, "h": 288}, "playerDash2_boom2_005.png": {"x": 1963, "y": 1300, "w": 282, "h": 288}, "playerDash2_boom2_006.png": {"x": 2247, "y": 1300, "w": 282, "h": 288}, "playerDash2_boom2_007.png": {"x": 0, "y": 1658, "w": 282, "h": 288}, "playerDash2_boom2_008.png": {"x": 284, "y": 1658, "w": 282, "h": 288}, "playerDash2_boom2_009.png": {"x": 568, "y": 1658, "w": 282, "h": 288}, "portalshine_02_back_001.png": {"x": 852, "y": 1658, "w": 172, "h": 288}, "portalshine_03_back_001.png": {"x": 1026, "y": 1658, "w": 198, "h": 288}, "portalshine_06_back_001.png": {"x": 1226, "y": 1658, "w": 172, "h": 288}, "portalshine_01_back_001.png": {"x": 1400, "y": 1658, "w": 149, "h": 287}, "portalshine_01_front_001.png": {"x": 1551, "y": 1658, "w": 62, "h": 287}, "GJ_creatorBtn_001.png": {"x": 1615, "y": 1658, "w": 280, "h": 280}, "GJ_fullBtn_001.png": {"x": 1897, "y": 1658, "w": 322, "h": 280}, "GJ_moreGamesBtn_001.png": {"x": 2221, "y": 1658, "w": 330, "h": 280}, "portalshine_05_back_001.png": {"x": 0, "y": 1948, "w": 132, "h": 280}, "GJ_freeLevelsBtn_001.png": {"x": 134, "y": 1948, "w": 266, "h": 262}, "gj_eventCrown_001.png": {"x": 402, "y": 1948, "w": 322, "h": 252}, "gj_dailyCrown_001.png": {"x": 726, "y": 1948, "w": 331, "h": 238}, "gj_weeklyCrown_001.png": {"x": 1059, "y": 1948, "w": 331, "h": 238}, "boost_02_shine_001.png": {"x": 1392, "y": 1948, "w": 122, "h": 216}, "boost_03_shine_001.png": {"x": 1516, "y": 1948, "w": 192, "h": 216}, "boost_04_shine_001.png": {"x": 1710, "y": 1948, "w": 250, "h": 216}, "boost_05_shine_001.png": {"x": 1962, "y": 1948, "w": 256, "h": 206}, "GJ_safeBtn_001.png": {"x": 2220, "y": 1948, "w": 174, "h": 196}, "theTowerLabel_001.png": {"x": 0, "y": 2230, "w": 368, "h": 176}, "boost_01_shine_001.png": {"x": 370, "y": 2230, "w": 128, "h": 164}, "spiderDash_001.png": {"x": 500, "y": 2230, "w": 884, "h": 84}, "spiderDash_002.png": {"x": 1386, "y": 2230, "w": 884, "h": 84}, "spiderDash_003.png": {"x": 0, "y": 2408, "w": 884, "h": 84}, "spiderDash_004.png": {"x": 886, "y": 2408, "w": 884, "h": 84}, "spiderDash_005.png": {"x": 0, "y": 2494, "w": 884, "h": 84}, "spiderDash_006.png": {"x": 886, "y": 2494, "w": 884, "h": 84}, "spiderDash_007.png": {"x": 0, "y": 2580, "w": 884, "h": 84}, "spiderDash_008.png": {"x": 886, "y": 2580, "w": 884, "h": 84}}} \ No newline at end of file diff --git a/assets/sheets/GJ_GameSheet04-uhd-packed.png b/assets/sheets/GJ_GameSheet04-uhd-packed.png new file mode 100644 index 00000000..eb5e3256 Binary files /dev/null and b/assets/sheets/GJ_GameSheet04-uhd-packed.png differ diff --git a/assets/sheets/GJ_GameSheet04.png b/assets/sheets/GJ_GameSheet04.png index ddeedb77..3f0d090d 100644 Binary files a/assets/sheets/GJ_GameSheet04.png and b/assets/sheets/GJ_GameSheet04.png differ diff --git a/assets/sheets/GJ_GameSheet04_UHD.json b/assets/sheets/GJ_GameSheet04_UHD.json new file mode 100644 index 00000000..22e8065c --- /dev/null +++ b/assets/sheets/GJ_GameSheet04_UHD.json @@ -0,0 +1,1280 @@ +{ + "textures": [ + { + "image": "GJ_GameSheet04_UHD.png", + "format": "RGBA8888", + "size": { + "w": 3570, + "h": 2909 + }, + "scale": 1, + "frames": [ + { + "filename": "GJ_challengeBtn_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 418, + "h": 418 + }, + "spriteSourceSize": { + "x": 22, + "y": 22, + "w": 396, + "h": 396 + }, + "frame": { + "x": 2, + "y": 2, + "w": 396, + "h": 396 + } + }, + { + "filename": "GJ_createBtn_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 418, + "h": 418 + }, + "spriteSourceSize": { + "x": 22, + "y": 22, + "w": 396, + "h": 396 + }, + "frame": { + "x": 400, + "y": 2, + "w": 396, + "h": 396 + } + }, + { + "filename": "GJ_creatorBtn_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 280, + "h": 280 + }, + "spriteSourceSize": { + "x": 15, + "y": 15, + "w": 265, + "h": 265 + }, + "frame": { + "x": 798, + "y": 2, + "w": 265, + "h": 265 + } + }, + { + "filename": "GJ_dailyBtn_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 418, + "h": 418 + }, + "spriteSourceSize": { + "x": 22, + "y": 22, + "w": 396, + "h": 396 + }, + "frame": { + "x": 1065, + "y": 2, + "w": 396, + "h": 396 + } + }, + { + "filename": "GJ_eventBtn_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 418, + "h": 418 + }, + "spriteSourceSize": { + "x": 22, + "y": 22, + "w": 396, + "h": 396 + }, + "frame": { + "x": 1463, + "y": 2, + "w": 396, + "h": 396 + } + }, + { + "filename": "GJ_featuredBtn_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 418, + "h": 418 + }, + "spriteSourceSize": { + "x": 22, + "y": 22, + "w": 396, + "h": 396 + }, + "frame": { + "x": 1861, + "y": 2, + "w": 396, + "h": 396 + } + }, + { + "filename": "GJ_freeLevelsBtn_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 266, + "h": 262 + }, + "spriteSourceSize": { + "x": 4, + "y": 15, + "w": 262, + "h": 247 + }, + "frame": { + "x": 2259, + "y": 2, + "w": 262, + "h": 247 + } + }, + { + "filename": "GJ_fullBtn_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 322, + "h": 280 + }, + "spriteSourceSize": { + "x": 5, + "y": 15, + "w": 317, + "h": 265 + }, + "frame": { + "x": 2523, + "y": 2, + "w": 317, + "h": 265 + } + }, + { + "filename": "GJ_gauntletsBtn_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 418, + "h": 418 + }, + "spriteSourceSize": { + "x": 22, + "y": 22, + "w": 396, + "h": 396 + }, + "frame": { + "x": 2, + "y": 400, + "w": 396, + "h": 396 + } + }, + { + "filename": "GJ_highscoreBtn_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 418, + "h": 418 + }, + "spriteSourceSize": { + "x": 22, + "y": 22, + "w": 396, + "h": 396 + }, + "frame": { + "x": 400, + "y": 400, + "w": 396, + "h": 396 + } + }, + { + "filename": "GJ_listsBtn_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 418, + "h": 418 + }, + "spriteSourceSize": { + "x": 22, + "y": 22, + "w": 396, + "h": 396 + }, + "frame": { + "x": 798, + "y": 400, + "w": 396, + "h": 396 + } + }, + { + "filename": "GJ_mapBtn_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 418, + "h": 418 + }, + "spriteSourceSize": { + "x": 22, + "y": 22, + "w": 396, + "h": 396 + }, + "frame": { + "x": 1196, + "y": 400, + "w": 396, + "h": 396 + } + }, + { + "filename": "GJ_mapPacksBtn_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 418, + "h": 418 + }, + "spriteSourceSize": { + "x": 22, + "y": 22, + "w": 396, + "h": 396 + }, + "frame": { + "x": 1594, + "y": 400, + "w": 396, + "h": 396 + } + }, + { + "filename": "GJ_moreGamesBtn_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 330, + "h": 280 + }, + "spriteSourceSize": { + "x": 5, + "y": 15, + "w": 325, + "h": 265 + }, + "frame": { + "x": 1992, + "y": 400, + "w": 325, + "h": 265 + } + }, + { + "filename": "GJ_pathsBtn_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 418, + "h": 418 + }, + "spriteSourceSize": { + "x": 22, + "y": 22, + "w": 396, + "h": 396 + }, + "frame": { + "x": 2319, + "y": 400, + "w": 396, + "h": 396 + } + }, + { + "filename": "GJ_playBtn_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 438, + "h": 438 + }, + "spriteSourceSize": { + "x": 21, + "y": 22, + "w": 417, + "h": 416 + }, + "frame": { + "x": 2717, + "y": 400, + "w": 417, + "h": 416 + } + }, + { + "filename": "GJ_safeBtn_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 174, + "h": 196 + }, + "spriteSourceSize": { + "x": 4, + "y": 7, + "w": 170, + "h": 189 + }, + "frame": { + "x": 2, + "y": 818, + "w": 170, + "h": 189 + } + }, + { + "filename": "GJ_savedBtn_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 418, + "h": 418 + }, + "spriteSourceSize": { + "x": 22, + "y": 22, + "w": 396, + "h": 396 + }, + "frame": { + "x": 174, + "y": 818, + "w": 396, + "h": 396 + } + }, + { + "filename": "GJ_searchBtn_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 418, + "h": 418 + }, + "spriteSourceSize": { + "x": 22, + "y": 22, + "w": 396, + "h": 396 + }, + "frame": { + "x": 572, + "y": 818, + "w": 396, + "h": 396 + } + }, + { + "filename": "GJ_versusBtn_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 418, + "h": 418 + }, + "spriteSourceSize": { + "x": 22, + "y": 22, + "w": 396, + "h": 396 + }, + "frame": { + "x": 970, + "y": 818, + "w": 396, + "h": 396 + } + }, + { + "filename": "GJ_weeklyBtn_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 417, + "h": 418 + }, + "spriteSourceSize": { + "x": 22, + "y": 22, + "w": 395, + "h": 396 + }, + "frame": { + "x": 1368, + "y": 818, + "w": 395, + "h": 396 + } + }, + { + "filename": "boost_01_shine_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 128, + "h": 164 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 128, + "h": 164 + }, + "frame": { + "x": 1765, + "y": 818, + "w": 128, + "h": 164 + } + }, + { + "filename": "boost_02_shine_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 122, + "h": 216 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 122, + "h": 216 + }, + "frame": { + "x": 1895, + "y": 818, + "w": 122, + "h": 216 + } + }, + { + "filename": "boost_03_shine_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 192, + "h": 216 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 192, + "h": 216 + }, + "frame": { + "x": 2019, + "y": 818, + "w": 192, + "h": 216 + } + }, + { + "filename": "boost_04_shine_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 250, + "h": 216 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 250, + "h": 216 + }, + "frame": { + "x": 2, + "y": 1216, + "w": 250, + "h": 216 + } + }, + { + "filename": "boost_05_shine_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 256, + "h": 206 + }, + "spriteSourceSize": { + "x": 3, + "y": 0, + "w": 253, + "h": 206 + }, + "frame": { + "x": 254, + "y": 1216, + "w": 253, + "h": 206 + } + }, + { + "filename": "gj_dailyCrown_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 331, + "h": 238 + }, + "spriteSourceSize": { + "x": 2, + "y": 19, + "w": 327, + "h": 217 + }, + "frame": { + "x": 509, + "y": 1216, + "w": 327, + "h": 217 + } + }, + { + "filename": "gj_eventCrown_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 322, + "h": 252 + }, + "spriteSourceSize": { + "x": 0, + "y": 17, + "w": 320, + "h": 233 + }, + "frame": { + "x": 838, + "y": 1216, + "w": 320, + "h": 233 + } + }, + { + "filename": "gj_weeklyCrown_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 331, + "h": 238 + }, + "spriteSourceSize": { + "x": 2, + "y": 19, + "w": 327, + "h": 219 + }, + "frame": { + "x": 1160, + "y": 1216, + "w": 327, + "h": 219 + } + }, + { + "filename": "playerDash2_boom2_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 282, + "h": 288 + }, + "spriteSourceSize": { + "x": 47, + "y": 54, + "w": 176, + "h": 174 + }, + "frame": { + "x": 1489, + "y": 1216, + "w": 176, + "h": 174 + } + }, + { + "filename": "playerDash2_boom2_002.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 282, + "h": 288 + }, + "spriteSourceSize": { + "x": 20, + "y": 28, + "w": 234, + "h": 216 + }, + "frame": { + "x": 1667, + "y": 1216, + "w": 234, + "h": 216 + } + }, + { + "filename": "playerDash2_boom2_003.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 282, + "h": 288 + }, + "spriteSourceSize": { + "x": 15, + "y": 12, + "w": 246, + "h": 242 + }, + "frame": { + "x": 1903, + "y": 1216, + "w": 246, + "h": 242 + } + }, + { + "filename": "playerDash2_boom2_004.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 282, + "h": 288 + }, + "spriteSourceSize": { + "x": 13, + "y": 10, + "w": 252, + "h": 252 + }, + "frame": { + "x": 2, + "y": 1460, + "w": 252, + "h": 252 + } + }, + { + "filename": "playerDash2_boom2_005.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 282, + "h": 288 + }, + "spriteSourceSize": { + "x": 9, + "y": 8, + "w": 257, + "h": 256 + }, + "frame": { + "x": 256, + "y": 1460, + "w": 257, + "h": 256 + } + }, + { + "filename": "playerDash2_boom2_006.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 282, + "h": 288 + }, + "spriteSourceSize": { + "x": 3, + "y": 3, + "w": 268, + "h": 268 + }, + "frame": { + "x": 515, + "y": 1460, + "w": 268, + "h": 268 + } + }, + { + "filename": "playerDash2_boom2_007.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 282, + "h": 288 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 276, + "h": 272 + }, + "frame": { + "x": 785, + "y": 1460, + "w": 276, + "h": 272 + } + }, + { + "filename": "playerDash2_boom2_008.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 282, + "h": 288 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 280, + "h": 272 + }, + "frame": { + "x": 1063, + "y": 1460, + "w": 280, + "h": 272 + } + }, + { + "filename": "playerDash2_boom2_009.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 282, + "h": 288 + }, + "spriteSourceSize": { + "x": 0, + "y": 2, + "w": 276, + "h": 270 + }, + "frame": { + "x": 1345, + "y": 1460, + "w": 276, + "h": 270 + } + }, + { + "filename": "portalshine_01_back_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 149, + "h": 287 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 60, + "h": 286 + }, + "frame": { + "x": 1623, + "y": 1460, + "w": 60, + "h": 286 + } + }, + { + "filename": "portalshine_01_front_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 62, + "h": 287 + }, + "spriteSourceSize": { + "x": 5, + "y": 1, + "w": 57, + "h": 286 + }, + "frame": { + "x": 1685, + "y": 1460, + "w": 57, + "h": 286 + } + }, + { + "filename": "portalshine_02_back_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 172, + "h": 288 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 77, + "h": 288 + }, + "frame": { + "x": 2, + "y": 1748, + "w": 77, + "h": 288 + } + }, + { + "filename": "portalshine_02_front_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 144, + "h": 332 + }, + "spriteSourceSize": { + "x": 29, + "y": 0, + "w": 115, + "h": 332 + }, + "frame": { + "x": 81, + "y": 1748, + "w": 115, + "h": 332 + } + }, + { + "filename": "portalshine_03_back_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 198, + "h": 288 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 162, + "h": 288 + }, + "frame": { + "x": 198, + "y": 1748, + "w": 162, + "h": 288 + } + }, + { + "filename": "portalshine_03_front_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 176, + "h": 356 + }, + "spriteSourceSize": { + "x": 36, + "y": 2, + "w": 140, + "h": 354 + }, + "frame": { + "x": 362, + "y": 1748, + "w": 140, + "h": 354 + } + }, + { + "filename": "portalshine_04_back_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 178, + "h": 301 + }, + "spriteSourceSize": { + "x": 0, + "y": 5, + "w": 90, + "h": 292 + }, + "frame": { + "x": 504, + "y": 1748, + "w": 90, + "h": 292 + } + }, + { + "filename": "portalshine_04_front_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 99, + "h": 347 + }, + "spriteSourceSize": { + "x": 23, + "y": 1, + "w": 76, + "h": 346 + }, + "frame": { + "x": 596, + "y": 1748, + "w": 76, + "h": 346 + } + }, + { + "filename": "portalshine_05_back_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 132, + "h": 280 + }, + "spriteSourceSize": { + "x": 0, + "y": 13, + "w": 95, + "h": 267 + }, + "frame": { + "x": 674, + "y": 1748, + "w": 95, + "h": 267 + } + }, + { + "filename": "portalshine_05_front_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 132, + "h": 296 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 132, + "h": 296 + }, + "frame": { + "x": 771, + "y": 1748, + "w": 132, + "h": 296 + } + }, + { + "filename": "portalshine_06_back_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 172, + "h": 288 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 77, + "h": 288 + }, + "frame": { + "x": 2, + "y": 2104, + "w": 77, + "h": 288 + } + }, + { + "filename": "portalshine_06_front_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 86, + "h": 350 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 63, + "h": 349 + }, + "frame": { + "x": 81, + "y": 2104, + "w": 63, + "h": 349 + } + }, + { + "filename": "spiderDash_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 884, + "h": 84 + }, + "spriteSourceSize": { + "x": 30, + "y": 4, + "w": 848, + "h": 74 + }, + "frame": { + "x": 146, + "y": 2104, + "w": 848, + "h": 74 + } + }, + { + "filename": "spiderDash_002.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 884, + "h": 84 + }, + "spriteSourceSize": { + "x": 33, + "y": 1, + "w": 788, + "h": 80 + }, + "frame": { + "x": 996, + "y": 2104, + "w": 788, + "h": 80 + } + }, + { + "filename": "spiderDash_003.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 884, + "h": 84 + }, + "spriteSourceSize": { + "x": 21, + "y": 3, + "w": 600, + "h": 74 + }, + "frame": { + "x": 1786, + "y": 2104, + "w": 600, + "h": 74 + } + }, + { + "filename": "spiderDash_004.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 884, + "h": 84 + }, + "spriteSourceSize": { + "x": 17, + "y": 3, + "w": 476, + "h": 72 + }, + "frame": { + "x": 2388, + "y": 2104, + "w": 476, + "h": 72 + } + }, + { + "filename": "spiderDash_005.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 884, + "h": 84 + }, + "spriteSourceSize": { + "x": 15, + "y": 4, + "w": 418, + "h": 70 + }, + "frame": { + "x": 2866, + "y": 2104, + "w": 418, + "h": 70 + } + }, + { + "filename": "spiderDash_006.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 884, + "h": 84 + }, + "spriteSourceSize": { + "x": 15, + "y": 3, + "w": 282, + "h": 68 + }, + "frame": { + "x": 3286, + "y": 2104, + "w": 282, + "h": 68 + } + }, + { + "filename": "spiderDash_007.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 884, + "h": 84 + }, + "spriteSourceSize": { + "x": 11, + "y": 4, + "w": 232, + "h": 68 + }, + "frame": { + "x": 2, + "y": 2455, + "w": 232, + "h": 68 + } + }, + { + "filename": "spiderDash_008.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 884, + "h": 84 + }, + "spriteSourceSize": { + "x": 7, + "y": 5, + "w": 86, + "h": 60 + }, + "frame": { + "x": 236, + "y": 2455, + "w": 86, + "h": 60 + } + }, + { + "filename": "theTowerDoor_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 464, + "h": 458 + }, + "spriteSourceSize": { + "x": 8, + "y": 6, + "w": 456, + "h": 452 + }, + "frame": { + "x": 324, + "y": 2455, + "w": 456, + "h": 452 + } + }, + { + "filename": "theTowerLabel_001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 368, + "h": 176 + }, + "spriteSourceSize": { + "x": 13, + "y": 12, + "w": 355, + "h": 164 + }, + "frame": { + "x": 782, + "y": 2455, + "w": 355, + "h": 164 + } + } + ] + } + ], + "meta": { + "app": "custom-packer", + "version": "1.0", + "smartupdate": "" + } +} \ No newline at end of file diff --git a/assets/sheets/GJ_GameSheet04_UHD.png b/assets/sheets/GJ_GameSheet04_UHD.png new file mode 100644 index 00000000..e832de93 Binary files /dev/null and b/assets/sheets/GJ_GameSheet04_UHD.png differ diff --git a/assets/sheets/GJ_WebSheet-uhd-packed.json b/assets/sheets/GJ_WebSheet-uhd-packed.json new file mode 100644 index 00000000..4b3e9457 --- /dev/null +++ b/assets/sheets/GJ_WebSheet-uhd-packed.json @@ -0,0 +1 @@ +{"sheet": "GJ_WebSheet-uhd-packed.png", "size": {"w": 1024, "h": 261}, "frames": {"GJ_logo_001.png": {"x": 0, "y": 2, "w": 1195, "h": 179}, "tryMe_001.png": {"x": 0, "y": 183, "w": 234, "h": 76}}} \ No newline at end of file diff --git a/assets/sheets/GJ_WebSheet-uhd-packed.png b/assets/sheets/GJ_WebSheet-uhd-packed.png new file mode 100644 index 00000000..57f14264 Binary files /dev/null and b/assets/sheets/GJ_WebSheet-uhd-packed.png differ diff --git a/assets/sheets/GJ_WebSheet.png b/assets/sheets/GJ_WebSheet.png index 4a323b91..d0b011b8 100644 Binary files a/assets/sheets/GJ_WebSheet.png and b/assets/sheets/GJ_WebSheet.png differ diff --git a/assets/sprites/GJ_button_01.png b/assets/sprites/GJ_button_01.png index cabe9893..d4df660a 100644 Binary files a/assets/sprites/GJ_button_01.png and b/assets/sprites/GJ_button_01.png differ diff --git a/assets/sprites/GJ_button_02.png b/assets/sprites/GJ_button_02.png index 90e53e85..325004a6 100644 Binary files a/assets/sprites/GJ_button_02.png and b/assets/sprites/GJ_button_02.png differ diff --git a/assets/sprites/GJ_button_03.png b/assets/sprites/GJ_button_03.png index 9a427957..fb37049f 100644 Binary files a/assets/sprites/GJ_button_03.png and b/assets/sprites/GJ_button_03.png differ diff --git a/assets/sprites/GJ_button_04.png b/assets/sprites/GJ_button_04.png index 02ed2f25..e3618ec4 100644 Binary files a/assets/sprites/GJ_button_04.png and b/assets/sprites/GJ_button_04.png differ diff --git a/assets/sprites/GJ_button_05.png b/assets/sprites/GJ_button_05.png index afb30e60..6b9c44e9 100644 Binary files a/assets/sprites/GJ_button_05.png and b/assets/sprites/GJ_button_05.png differ diff --git a/assets/sprites/GJ_button_06.png b/assets/sprites/GJ_button_06.png index a4a6c339..36a98351 100644 Binary files a/assets/sprites/GJ_button_06.png and b/assets/sprites/GJ_button_06.png differ diff --git a/assets/sprites/GJ_moveBtn.png b/assets/sprites/GJ_moveBtn.png index f96f0f64..aae014b4 100644 Binary files a/assets/sprites/GJ_moveBtn.png and b/assets/sprites/GJ_moveBtn.png differ diff --git a/assets/sprites/GJ_moveSBtn.png b/assets/sprites/GJ_moveSBtn.png index f4327c88..a6cab975 100644 Binary files a/assets/sprites/GJ_moveSBtn.png and b/assets/sprites/GJ_moveSBtn.png differ diff --git a/assets/sprites/GJ_square01.png b/assets/sprites/GJ_square01.png index 3fe62988..bbec0090 100644 Binary files a/assets/sprites/GJ_square01.png and b/assets/sprites/GJ_square01.png differ diff --git a/assets/sprites/export.png b/assets/sprites/export.png index 52d30813..552877de 100644 Binary files a/assets/sprites/export.png and b/assets/sprites/export.png differ diff --git a/assets/sprites/import.png b/assets/sprites/import.png index de12b26f..74559c34 100644 Binary files a/assets/sprites/import.png and b/assets/sprites/import.png differ diff --git a/assets/sprites/importMacro.png b/assets/sprites/importMacro.png index 9d21c272..0f2dbe22 100644 Binary files a/assets/sprites/importMacro.png and b/assets/sprites/importMacro.png differ diff --git a/assets/sprites/loadingCircle.png b/assets/sprites/loadingCircle.png index 9e386c69..877dd730 100644 Binary files a/assets/sprites/loadingCircle.png and b/assets/sprites/loadingCircle.png differ diff --git a/assets/sprites/macroBot.png b/assets/sprites/macroBot.png index 3f9076bb..16317912 100644 Binary files a/assets/sprites/macroBot.png and b/assets/sprites/macroBot.png differ diff --git a/assets/sprites/playbackMacro.png b/assets/sprites/playbackMacro.png index e52a1ba0..9731acae 100644 Binary files a/assets/sprites/playbackMacro.png and b/assets/sprites/playbackMacro.png differ diff --git a/assets/sprites/recordMacro.png b/assets/sprites/recordMacro.png index 127355ff..7d02023b 100644 Binary files a/assets/sprites/recordMacro.png and b/assets/sprites/recordMacro.png differ diff --git a/assets/sprites/slidergroove2.png b/assets/sprites/slidergroove2.png index fa396051..607a2587 100644 Binary files a/assets/sprites/slidergroove2.png and b/assets/sprites/slidergroove2.png differ diff --git a/assets/sprites/square01_001.png b/assets/sprites/square01_001.png index 05e115ed..38d9e7f7 100644 Binary files a/assets/sprites/square01_001.png and b/assets/sprites/square01_001.png differ diff --git a/assets/sprites/stopPlayback.png b/assets/sprites/stopPlayback.png index 12eb128a..05bd3e47 100644 Binary files a/assets/sprites/stopPlayback.png and b/assets/sprites/stopPlayback.png differ diff --git a/assets/sprites/stopRecord.png b/assets/sprites/stopRecord.png index 1f38f904..53c6ac35 100644 Binary files a/assets/sprites/stopRecord.png and b/assets/sprites/stopRecord.png differ diff --git a/assets/sprites/tab1.png b/assets/sprites/tab1.png index 33aa9914..ea572897 100644 Binary files a/assets/sprites/tab1.png and b/assets/sprites/tab1.png differ diff --git a/assets/sprites/tab2.png b/assets/sprites/tab2.png index 0ce6e2be..4994db3b 100644 Binary files a/assets/sprites/tab2.png and b/assets/sprites/tab2.png differ diff --git a/assets/sprites/tab3.png b/assets/sprites/tab3.png index 97c52830..0e06cf55 100644 Binary files a/assets/sprites/tab3.png and b/assets/sprites/tab3.png differ diff --git a/assets/sprites/tab4.png b/assets/sprites/tab4.png index ab288c2c..c7aa4de8 100644 Binary files a/assets/sprites/tab4.png and b/assets/sprites/tab4.png differ diff --git a/assets/sprites/tab5.png b/assets/sprites/tab5.png index 443abd25..8500948a 100644 Binary files a/assets/sprites/tab5.png and b/assets/sprites/tab5.png differ diff --git a/assets/sprites/tutorial_01.png b/assets/sprites/tutorial_01.png index ec38ed78..8dabd415 100644 Binary files a/assets/sprites/tutorial_01.png and b/assets/sprites/tutorial_01.png differ diff --git a/assets/sprites/tutorial_02.png b/assets/sprites/tutorial_02.png index 4743d11d..de53f363 100644 Binary files a/assets/sprites/tutorial_02.png and b/assets/sprites/tutorial_02.png differ diff --git a/assets/sprites/tutorial_03.png b/assets/sprites/tutorial_03.png index d0fde264..59967aa2 100644 Binary files a/assets/sprites/tutorial_03.png and b/assets/sprites/tutorial_03.png differ diff --git a/assets/sprites/tutorial_04.png b/assets/sprites/tutorial_04.png index 9313622a..cadf8696 100644 Binary files a/assets/sprites/tutorial_04.png and b/assets/sprites/tutorial_04.png differ diff --git a/assets/sprites/tutorial_05.png b/assets/sprites/tutorial_05.png index 5cf71863..b664cf7b 100644 Binary files a/assets/sprites/tutorial_05.png and b/assets/sprites/tutorial_05.png differ diff --git a/assets/style.css b/assets/style.css index ca7c7f77..c0ca88ce 100644 --- a/assets/style.css +++ b/assets/style.css @@ -1,14 +1,21 @@ * { margin: 0; padding: 0; + user-select: none; + -webkit-user-select: none; } body { overflow: hidden; background: #000; + height: 100vh; } canvas { - display: block; - margin: 0 auto; + display: block !important; + position: absolute !important; + top: 50% !important; + left: 50% !important; + transform: translate(-50%, -50%) !important; + margin: 0 !important; } diff --git a/index.html b/index.html index 98f8775f..8d9ead35 100644 --- a/index.html +++ b/index.html @@ -3,26 +3,26 @@ - Web Dashers + Lollipop Mod - + - - - + + + - - - - + + + + @@ -38,12 +38,13 @@ + - - + +