Minimap floor tiles and note
This commit is contained in:
parent
714a90759c
commit
1f1bd5e300
2 changed files with 32 additions and 12 deletions
|
|
@ -132480,7 +132480,7 @@
|
|||
"addLog",
|
||||
"テキストをログウィンドウに追加",
|
||||
{
|
||||
"text": "Note \\C[6]\\v[313]\\c[0] inserted into the notebook"
|
||||
"text": "Memo \"\\C[6]\\v[313]\\c[0]\" put in notebook"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
|||
|
|
@ -379,29 +379,49 @@
|
|||
const tiles = $gameMap.allTiles(x, y);
|
||||
let hasFloorTile = false;
|
||||
|
||||
// Look for actual floor/ground tiles (A1, A2, A5 are typically ground)
|
||||
// Look for actual floor/ground tiles
|
||||
// RPG Maker MZ Tileset Layout:
|
||||
// A1 (animated/water): 2048-2815 - water, waterfalls, poison swamps, lava
|
||||
// A2 (ground): 2816-4351 - grass, dirt, stone floors
|
||||
// A3 (buildings): 4352-5887 - roofs and building exteriors
|
||||
// A4 (walls): 5888-8191 - wall tops
|
||||
// A5 (normal tiles): 1536-1663 - simple ground tiles
|
||||
// B-E tiles: start at different offsets for decoration
|
||||
|
||||
for (const tileId of tiles) {
|
||||
if (tileId === 0) continue;
|
||||
|
||||
// A1 (animated tiles) start at 2048 in autotile range but have ID < 256 after processing
|
||||
// A2 (ground) tiles: 2816-4351
|
||||
// A5 (normal ground): 1536-1663
|
||||
// B-E tiles: 0-255 (in tileset index)
|
||||
|
||||
// Check if this is a typical ground tile
|
||||
// A5 tiles (ground): 1536-1663
|
||||
// A5 tiles (simple ground): 1536-1663
|
||||
if (tileId >= 1536 && tileId < 1664) {
|
||||
hasFloorTile = true;
|
||||
break;
|
||||
}
|
||||
// A1 tiles (water/animated - including poison, lava, swamps): 2048-2815
|
||||
if (tileId >= 2048 && tileId < 2816) {
|
||||
hasFloorTile = true;
|
||||
break;
|
||||
}
|
||||
// A2 tiles (ground autotiles): 2816-4351
|
||||
if (tileId >= 2816 && tileId < 4352) {
|
||||
hasFloorTile = true;
|
||||
break;
|
||||
}
|
||||
// A1 tiles (water/animated): 2048-2815 - these are NOT ground
|
||||
// A3 tiles (building): 4352-5887 - could be walls
|
||||
// A4 tiles (wall top): 5888-8191 - definitely walls
|
||||
// B-E tiles can also be walkable floors (tile ID encoding varies)
|
||||
// These are typically in lower ranges and used for details/overlays
|
||||
// If a B-E tile is passable, it should be considered ground
|
||||
if (tileId > 0 && tileId < 1536) {
|
||||
// This is a B-E tile, check if it's passable via flags
|
||||
const flags = $gameMap.tilesetFlags();
|
||||
const flag = flags[tileId];
|
||||
if (flag !== undefined && (flag & 0x10) === 0) {
|
||||
// Not star passability (not an overlay) - could be floor
|
||||
if ((flag & 0x0F) !== 0x0F) {
|
||||
// Not fully blocked
|
||||
hasFloorTile = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Consider passable only if: passage check passes AND has a floor tile
|
||||
|
|
|
|||
Loading…
Reference in a new issue