選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

43 行
1.1 KiB

  1. //Imports
  2. const spriteBuilder = require('../../spriteBuilder/index');
  3. //Builder
  4. const buildTile = (mapModule, tileInfo) => {
  5. const { x, y, cell, layer: layerName } = tileInfo;
  6. if (cell === 0) {
  7. if (layerName === 'tiles')
  8. mapModule.collisionMap[x][y] = 1;
  9. return;
  10. }
  11. const cellInfo = mapModule.getCellInfo(cell, x, y, layerName);
  12. if (!tileInfo.sheetName)
  13. tileInfo.sheetName = cellInfo.sheetName;
  14. const offsetCell = spriteBuilder.track(cellInfo);
  15. //const offsetCell = mapModule.getOffsetCellPos(tileInfo.sheetName, cellInfo.cell);
  16. const isHiddenLayer = layerName.indexOf('hidden') === 0;
  17. if (isHiddenLayer)
  18. mapModule[layerName][x][y] = offsetCell;
  19. else {
  20. const layer = mapModule.layers;
  21. if (mapModule.oldLayers[layerName])
  22. mapModule.oldLayers[layerName][x][y] = offsetCell;
  23. layer[x][y] = (layer[x][y] === null) ? offsetCell : layer[x][y] + ',' + offsetCell;
  24. if (layerName.indexOf('walls') > -1)
  25. mapModule.collisionMap[x][y] = 1;
  26. else if (clientConfig.config.blockingTileIndices?.[cellInfo.sheetName]?.includes(cellInfo.cell))
  27. mapModule.collisionMap[x][y] = 1;
  28. }
  29. };
  30. module.exports = buildTile;