better placing

This commit is contained in:
biglyderv 2024-09-14 22:47:08 -04:00
parent 1952708e9f
commit 164c39e079
No known key found for this signature in database
GPG key ID: 33AC87E9ACE66954
2 changed files with 24 additions and 25 deletions

View file

@ -74,11 +74,14 @@ function Game(inSize, exp, cs) {
this.dead = false;
}
Game.prototype.placeBlock = function (block, get = false) {
Game.prototype.placeBlock = function (block, get = false, xI = false, yI = false) {
let { camera, base, fac, exp, inSize } = this;
let x = Math.round(camera[0] / tileSize);
let y = Math.round(camera[1] / tileSize);
if (xI === false) xI = camera[0];
if (yI === false) yI = camera[1];
let x = Math.round(xI / tileSize);
let y = Math.round(yI / tileSize);
let bx = x % chunkSize;
let by = y % chunkSize;
@ -90,15 +93,14 @@ Game.prototype.placeBlock = function (block, get = false) {
let g = chunk[by * chunkSize + bx];
if (g != 0) return g - 1;
let isMask = toPoint(camera[0], camera[1], base, fac, exp, inSize);
let isMask = toPoint(xI, yI, base, fac, exp, inSize);
let assetI = (x - y % 2) == 0 ? 0 : 1;
let assetI = ((x & y) % 3) == 0 ? 0 : 1;
if (isMask < 0.5) return 5;
if (isMask < 0.501) return 4;
if (isMask < 0.51) return 3;
return assetI;
}
@ -165,22 +167,7 @@ Game.prototype.main = function () {
let bx = Math.round(x / tileSize) % chunkSize;
let by = Math.round(y / tileSize) % chunkSize;
if (chunk && chunk[by * chunkSize + bx] != 0) {
ctx.drawImage(this.assets[chunk[by * chunkSize + bx] - 1], x2, y2, tileSize, tileSize);
continue;
}
let isMask = toPoint(x, y, base, this.fac, exp, inSize);
if (x < 0 || y < 0) {
continue;
}
let assetI = ((Math.round(x / tileSize) - Math.round(y / tileSize)) % 2) == 0 ? 0 : 1;
if (isMask < 0.51) assetI = 3;
if (isMask < 0.501) assetI = 4;
if (isMask < 0.5) continue;
let assetI = this.placeBlock(0,true,x,y);
ctx.drawImage(this.assets[assetI], x2, y2, tileSize, tileSize);
}