Resize verification cube renders based on verification level
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user