mirror of
https://github.com/billsonnn/nitro-react.git
synced 2024-11-23 14:40:50 +01:00
fix click detection
This commit is contained in:
parent
aac2c49469
commit
a33f06ad27
@ -6,7 +6,7 @@
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
height: 300px;
|
height: 300px;
|
||||||
min-height: 300px;
|
min-height: 300px;
|
||||||
overflow-x: scroll;
|
overflow: scroll;
|
||||||
}
|
}
|
||||||
|
|
||||||
.color {
|
.color {
|
||||||
|
@ -43,7 +43,7 @@ export class FloorplanEditor extends PixiApplicationProxy
|
|||||||
this._width = 0;
|
this._width = 0;
|
||||||
this._height = 0;
|
this._height = 0;
|
||||||
this._isHolding = false;
|
this._isHolding = false;
|
||||||
this._lastUsedTile = new NitroPoint(-1,-1);
|
this._lastUsedTile = new NitroPoint(-1, -1);
|
||||||
this._actionSettings = new ActionSettings();
|
this._actionSettings = new ActionSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -52,7 +52,7 @@ export class FloorplanEditor extends PixiApplicationProxy
|
|||||||
if(!this._isInitialized)
|
if(!this._isInitialized)
|
||||||
{
|
{
|
||||||
this.loader.add('tiles', GetConfiguration<string>('floorplan.tile.url'));
|
this.loader.add('tiles', GetConfiguration<string>('floorplan.tile.url'));
|
||||||
|
|
||||||
this.loader.load((_, resources) =>
|
this.loader.load((_, resources) =>
|
||||||
{
|
{
|
||||||
this._tilemapRenderer = new NitroTilemap(resources['tiles'].spritesheet.baseTexture);
|
this._tilemapRenderer = new NitroTilemap(resources['tiles'].spritesheet.baseTexture);
|
||||||
@ -127,9 +127,8 @@ export class FloorplanEditor extends PixiApplicationProxy
|
|||||||
const bufIndex = j + bufSize;
|
const bufIndex = j + bufSize;
|
||||||
const data = buffer.slice(j, bufIndex);
|
const data = buffer.slice(j, bufIndex);
|
||||||
|
|
||||||
const width = data[4];
|
const width = TILE_SIZE;
|
||||||
const height = data[5];
|
const height = TILE_SIZE / 2;
|
||||||
|
|
||||||
|
|
||||||
const mousePositionX = Math.floor(tempPoint.x);
|
const mousePositionX = Math.floor(tempPoint.x);
|
||||||
const mousePositionY = Math.floor(tempPoint.y);
|
const mousePositionY = Math.floor(tempPoint.y);
|
||||||
@ -137,12 +136,11 @@ export class FloorplanEditor extends PixiApplicationProxy
|
|||||||
const tileStartX = data[2];
|
const tileStartX = data[2];
|
||||||
const tileStartY = data[3];
|
const tileStartY = data[3];
|
||||||
|
|
||||||
|
|
||||||
const centreX = tileStartX + (width / 2);
|
const centreX = tileStartX + (width / 2);
|
||||||
const centreY = tileStartY + (height / 2);
|
const centreY = tileStartY + (height / 2);
|
||||||
|
|
||||||
const dx = Math.abs(mousePositionX - centreX - 2);
|
const dx = Math.abs(mousePositionX - centreX);
|
||||||
const dy = Math.abs(mousePositionY - centreY - 2);
|
const dy = Math.abs(mousePositionY - centreY);
|
||||||
|
|
||||||
const solution = (dx / (width * 0.5) + dy / (height * 0.5) <= 1);//todo: improve this
|
const solution = (dx / (width * 0.5) + dy / (height * 0.5) <= 1);//todo: improve this
|
||||||
if(solution)
|
if(solution)
|
||||||
@ -171,7 +169,6 @@ export class FloorplanEditor extends PixiApplicationProxy
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private onClick(x: number, y: number): void
|
private onClick(x: number, y: number): void
|
||||||
{
|
{
|
||||||
const tile = this._tilemap[y][x];
|
const tile = this._tilemap[y][x];
|
||||||
@ -212,7 +209,7 @@ export class FloorplanEditor extends PixiApplicationProxy
|
|||||||
{
|
{
|
||||||
if((x + 1) > this._width) this._width = x + 1;
|
if((x + 1) > this._width) this._width = x + 1;
|
||||||
|
|
||||||
if( (y + 1) > this._height) this._height = y + 1;
|
if((y + 1) > this._height) this._height = y + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
const newHeight = HEIGHT_SCHEME[futureHeightIndex];
|
const newHeight = HEIGHT_SCHEME[futureHeightIndex];
|
||||||
@ -229,7 +226,7 @@ export class FloorplanEditor extends PixiApplicationProxy
|
|||||||
public renderTiles(): void
|
public renderTiles(): void
|
||||||
{
|
{
|
||||||
this.tilemapRenderer.clear();
|
this.tilemapRenderer.clear();
|
||||||
|
|
||||||
for(let y = 0; y < this._tilemap.length; y++)
|
for(let y = 0; y < this._tilemap.length; y++)
|
||||||
{
|
{
|
||||||
for(let x = 0; x < this.tilemap[y].length; x++)
|
for(let x = 0; x < this.tilemap[y].length; x++)
|
||||||
@ -237,13 +234,13 @@ export class FloorplanEditor extends PixiApplicationProxy
|
|||||||
const tile = this.tilemap[y][x];
|
const tile = this.tilemap[y][x];
|
||||||
let assetName = tile.height;
|
let assetName = tile.height;
|
||||||
|
|
||||||
if(this._doorLocation.x === x && this._doorLocation.y === y)
|
if(this._doorLocation.x === x && this._doorLocation.y === y)
|
||||||
assetName = FloorplanEditor.TILE_DOOR;
|
assetName = FloorplanEditor.TILE_DOOR;
|
||||||
|
|
||||||
if(tile.isBlocked) assetName = FloorplanEditor.TILE_BLOCKED;
|
if(tile.isBlocked) assetName = FloorplanEditor.TILE_BLOCKED;
|
||||||
|
|
||||||
//if((tile.height === 'x') || tile.height === 'X') continue;
|
//if((tile.height === 'x') || tile.height === 'X') continue;
|
||||||
const [positionX, positionY ] = getScreenPositionForTile(x, y);
|
const [positionX, positionY] = getScreenPositionForTile(x, y);
|
||||||
this._tilemapRenderer.tile(`${assetName}.png`, positionX, positionY);
|
this._tilemapRenderer.tile(`${assetName}.png`, positionX, positionY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -337,10 +334,10 @@ export class FloorplanEditor extends PixiApplicationProxy
|
|||||||
|
|
||||||
if(tile.height !== 'x')
|
if(tile.height !== 'x')
|
||||||
{
|
{
|
||||||
if( (x + 1) > this._width)
|
if((x + 1) > this._width)
|
||||||
this._width = x + 1;
|
this._width = x + 1;
|
||||||
|
|
||||||
if( (y + 1) > this._height)
|
if((y + 1) > this._height)
|
||||||
this._height = y + 1;
|
this._height = y + 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user