65 lines
1.7 KiB
HTML
65 lines
1.7 KiB
HTML
<!doctype html><meta charset="utf-8" /><title>Shacraft renderer fixture</title
|
|
><style>
|
|
body {
|
|
margin: 0;
|
|
}
|
|
canvas {
|
|
width: 100vw;
|
|
height: 100vh;
|
|
display: block;
|
|
}</style
|
|
><canvas id="c"></canvas>
|
|
<script type="module">
|
|
import { Renderer } from "../renderer.js";
|
|
const canvas = document.querySelector("canvas");
|
|
try {
|
|
const r = new Renderer(canvas),
|
|
blocks = new Map(),
|
|
mats = new Map([
|
|
[
|
|
1,
|
|
{
|
|
state: "minecraft:grass_block",
|
|
color: [107, 151, 65],
|
|
opacity: 1,
|
|
render: [{ min: [0, 0, 0], max: [1, 1, 1] }],
|
|
},
|
|
],
|
|
[
|
|
2,
|
|
{
|
|
state: "minecraft:bricks",
|
|
color: [169, 88, 68],
|
|
opacity: 1,
|
|
render: [{ min: [0, 0, 0], max: [1, 1, 1] }],
|
|
},
|
|
],
|
|
[
|
|
3,
|
|
{
|
|
state: "minecraft:glass",
|
|
color: [169, 220, 219],
|
|
opacity: 0.35,
|
|
render: [{ min: [0, 0, 0], max: [1, 1, 1] }],
|
|
},
|
|
],
|
|
]);
|
|
for (let x = -16; x <= 16; x++)
|
|
for (let z = -16; z <= 16; z++) blocks.set(`${x},0,${z}`, 1);
|
|
for (let x = -3; x < 3; x++)
|
|
for (let y = 1; y < 5; y++)
|
|
blocks.set(
|
|
`${x},${y},-7`,
|
|
(x === 0 || x === 1) && y > 1 && y < 4 ? 3 : 2,
|
|
);
|
|
r.replace(blocks, mats);
|
|
for (let n = 0; n < 24; n++) {
|
|
r.draw({ eye: [7, 5, 12], yaw: -0.38, pitch: -0.2 }, [], [], new Map());
|
|
}
|
|
document.body.dataset.status = `ready:${r.triangles}`;
|
|
} catch (error) {
|
|
document.body.dataset.status = "error:" + error.message;
|
|
document.body.textContent = error.stack;
|
|
}
|
|
</script>
|