This commit is contained in:
2026-09-24 18:34:16 -03:00
parent a758037f20
commit a37ffd9127
20 changed files with 799 additions and 20 deletions
+66
View File
@@ -191,3 +191,69 @@ export function push_bottom_face(
push_vertex(x2, y, z2, u1, v0, r, g, b, a);
push_vertex(x, y, z2, u0, v0, r, g, b, a);
}
// solid colored box, draw it with white_tex as the current texture
export function push_box(
x: number,
y: number,
z: number,
width: number,
height: number,
depth: number,
r = 1,
g = 1,
b = 1,
a = 1,
) {
const x2 = x + width;
const y2 = y + height;
const z2 = z + depth;
// front
push_vertex(x, y, z2, 0, 1, r, g, b, a);
push_vertex(x2, y, z2, 1, 1, r, g, b, a);
push_vertex(x2, y2, z2, 1, 0, r, g, b, a);
push_vertex(x, y, z2, 0, 1, r, g, b, a);
push_vertex(x2, y2, z2, 1, 0, r, g, b, a);
push_vertex(x, y2, z2, 0, 0, r, g, b, a);
// back
push_vertex(x2, y, z, 0, 1, r * 0.8, g * 0.8, b * 0.8, a);
push_vertex(x, y, z, 1, 1, r * 0.8, g * 0.8, b * 0.8, a);
push_vertex(x, y2, z, 1, 0, r * 0.8, g * 0.8, b * 0.8, a);
push_vertex(x2, y, z, 0, 1, r * 0.8, g * 0.8, b * 0.8, a);
push_vertex(x, y2, z, 1, 0, r * 0.8, g * 0.8, b * 0.8, a);
push_vertex(x2, y2, z, 0, 0, r * 0.8, g * 0.8, b * 0.8, a);
// left
push_vertex(x, y, z, 0, 1, r * 0.9, g * 0.9, b * 0.9, a);
push_vertex(x, y, z2, 1, 1, r * 0.9, g * 0.9, b * 0.9, a);
push_vertex(x, y2, z2, 1, 0, r * 0.9, g * 0.9, b * 0.9, a);
push_vertex(x, y, z, 0, 1, r * 0.9, g * 0.9, b * 0.9, a);
push_vertex(x, y2, z2, 1, 0, r * 0.9, g * 0.9, b * 0.9, a);
push_vertex(x, y2, z, 0, 0, r * 0.9, g * 0.9, b * 0.9, a);
// right
push_vertex(x2, y, z2, 0, 1, r * 0.9, g * 0.9, b * 0.9, a);
push_vertex(x2, y, z, 1, 1, r * 0.9, g * 0.9, b * 0.9, a);
push_vertex(x2, y2, z, 1, 0, r * 0.9, g * 0.9, b * 0.9, a);
push_vertex(x2, y, z2, 0, 1, r * 0.9, g * 0.9, b * 0.9, a);
push_vertex(x2, y2, z, 1, 0, r * 0.9, g * 0.9, b * 0.9, a);
push_vertex(x2, y2, z2, 0, 0, r * 0.9, g * 0.9, b * 0.9, a);
// top
push_vertex(x, y2, z2, 0, 1, r, g, b, a);
push_vertex(x2, y2, z2, 1, 1, r, g, b, a);
push_vertex(x2, y2, z, 1, 0, r, g, b, a);
push_vertex(x, y2, z2, 0, 1, r, g, b, a);
push_vertex(x2, y2, z, 1, 0, r, g, b, a);
push_vertex(x, y2, z, 0, 0, r, g, b, a);
// bottom
push_vertex(x, y, z, 0, 1, r * 0.6, g * 0.6, b * 0.6, a);
push_vertex(x2, y, z, 1, 1, r * 0.6, g * 0.6, b * 0.6, a);
push_vertex(x2, y, z2, 1, 0, r * 0.6, g * 0.6, b * 0.6, a);
push_vertex(x, y, z, 0, 1, r * 0.6, g * 0.6, b * 0.6, a);
push_vertex(x2, y, z2, 1, 0, r * 0.6, g * 0.6, b * 0.6, a);
push_vertex(x, y, z2, 0, 0, r * 0.6, g * 0.6, b * 0.6, a);
}