diff --git a/Construct[BP]/scripts/classes/Verifier/BlockVerificationLevelRender.js b/Construct[BP]/scripts/classes/Verifier/BlockVerificationLevelRender.js index bef6cc4..07f46aa 100644 --- a/Construct[BP]/scripts/classes/Verifier/BlockVerificationLevelRender.js +++ b/Construct[BP]/scripts/classes/Verifier/BlockVerificationLevelRender.js @@ -15,33 +15,37 @@ export class BlockVerificationLevelRender { } renderBlock() { - for (const particleLocation of this.getParticleLocations()) { + const sizeScalar = this.verificationLevelToSizeScalar(); + for (const particle of this.getBlockParticles(sizeScalar)) { const color = this.getRGBAMolang(); if (!color) return; color.setFloat("lifetime", this.lifetimeSeconds); + color.setFloat("width", 0.5*sizeScalar); + color.setFloat("height", 0.5*sizeScalar); try { - this.dimension.spawnParticle(particleLocation.particleType, particleLocation.location, color); + this.dimension.spawnParticle(particle.particleType, particle.location, color); } catch { /* pass */ } } } - getParticleLocations() { + getBlockParticles(sizeScalar = 1) { const bottomFace = new Vector(0.5, 0, 0.5); const topFace = new Vector(0.5, 1, 0.5); const leftFace = new Vector(1, 0.5, 0.5); const rightFace = new Vector(0, 0.5, 0.5); const frontFace = new Vector(0.5, 0.5, 1); const backFace = new Vector(0.5, 0.5, 0); + const center = new Vector(0.5, 0.5, 0.5); return [ - { particleType: "construct:blockoverlay_xz", location: this.location.add(topFace) }, - { particleType: "construct:blockoverlay_xz", location: this.location.add(bottomFace) }, - { particleType: "construct:blockoverlay_yz", location: this.location.add(leftFace) }, - { particleType: "construct:blockoverlay_yz", location: this.location.add(rightFace) }, - { particleType: "construct:blockoverlay_xy", location: this.location.add(frontFace) }, - { particleType: "construct:blockoverlay_xy", location: this.location.add(backFace) } + { particleType: "construct:blockoverlay_xz", location: this.location.add(center).add(topFace.subtract(center).multiply(sizeScalar)) }, + { particleType: "construct:blockoverlay_xz", location: this.location.add(center).add(bottomFace.subtract(center).multiply(sizeScalar)) }, + { particleType: "construct:blockoverlay_yz", location: this.location.add(center).add(leftFace.subtract(center).multiply(sizeScalar)) }, + { particleType: "construct:blockoverlay_yz", location: this.location.add(center).add(rightFace.subtract(center).multiply(sizeScalar)) }, + { particleType: "construct:blockoverlay_xy", location: this.location.add(center).add(frontFace.subtract(center).multiply(sizeScalar)) }, + { particleType: "construct:blockoverlay_xy", location: this.location.add(center).add(backFace.subtract(center).multiply(sizeScalar)) } ]; } @@ -66,4 +70,17 @@ export class BlockVerificationLevelRender { return void 0; } } + + verificationLevelToSizeScalar() { + switch (this.verificationLevel) { + case BlockVerificationLevel.NoMatch: + return 1.01; + case BlockVerificationLevel.TypeMatch: + return 1.01; + case BlockVerificationLevel.Missing: + return 0.90; + default: + return 1.00; + } + } } \ No newline at end of file diff --git a/Construct[RP]/particles/blockoverlay_xy.particle.json b/Construct[RP]/particles/blockoverlay_xy.particle.json index c3d1e9d..53db772 100644 --- a/Construct[RP]/particles/blockoverlay_xy.particle.json +++ b/Construct[RP]/particles/blockoverlay_xy.particle.json @@ -20,7 +20,7 @@ "max_lifetime": "variable.lifetime" }, "minecraft:particle_appearance_billboard": { - "size": [0.5, 0.5], + "size": ["variable.width", "variable.height"], "facing_camera_mode": "emitter_transform_xy" }, "minecraft:particle_appearance_tinting": { diff --git a/Construct[RP]/particles/blockoverlay_xz.particle.json b/Construct[RP]/particles/blockoverlay_xz.particle.json index 408c139..fbd468e 100644 --- a/Construct[RP]/particles/blockoverlay_xz.particle.json +++ b/Construct[RP]/particles/blockoverlay_xz.particle.json @@ -20,7 +20,7 @@ "max_lifetime": "variable.lifetime" }, "minecraft:particle_appearance_billboard": { - "size": [0.5, 0.5], + "size": ["variable.width", "variable.height"], "facing_camera_mode": "emitter_transform_xz" }, "minecraft:particle_appearance_tinting": { diff --git a/Construct[RP]/particles/blockoverlay_yz.particle.json b/Construct[RP]/particles/blockoverlay_yz.particle.json index 17246a0..eec9ef7 100644 --- a/Construct[RP]/particles/blockoverlay_yz.particle.json +++ b/Construct[RP]/particles/blockoverlay_yz.particle.json @@ -20,7 +20,7 @@ "max_lifetime": "variable.lifetime" }, "minecraft:particle_appearance_billboard": { - "size": [0.5, 0.5], + "size": ["variable.width", "variable.height"], "facing_camera_mode": "emitter_transform_yz" }, "minecraft:particle_appearance_tinting": {