Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fn name() { "grass_stairs" }
- fn display_name() { "Grass Stairs" }
- fn visibility() { "transparent" }
- fn model()
- {
- let textures = [
- tex_ref(uvec2(0, 0), uvec2(16, 16), "block_game_tileset.png"), // dirt
- tex_ref(uvec2(48, 0), uvec2(16, 16), "block_game_tileset.png"), // grass edge
- tex_ref(uvec2(32, 0), uvec2(16, 16), "block_game_tileset.png"), // grass
- ];
- let vertices = [
- // Upper top face
- vertex(vec3(0.0, 1.0, 0.0), uvec2(0, 0), 2),
- vertex(vec3(1.0, 1.0, 0.0), uvec2(16, 0), 2),
- vertex(vec3(0.0, 1.0, 0.5), uvec2(0, 8), 2),
- vertex(vec3(1.0, 1.0, 0.5), uvec2(16, 8), 2),
- // Bottom face
- vertex(vec3(0.0, 0.0, 0.0), uvec2(0, 0), 0),
- vertex(vec3(1.0, 0.0, 0.0), uvec2(16, 0), 0),
- vertex(vec3(0.0, 0.0, 1.0), uvec2(0, 16), 0),
- vertex(vec3(1.0, 0.0, 1.0), uvec2(16, 16), 0),
- // North Face
- vertex(vec3(1.0, 0.0, 0.0), uvec2(0, 16), 1),
- vertex(vec3(1.0, 1.0, 0.0), uvec2(0, 0), 1),
- vertex(vec3(0.0, 1.0, 0.0), uvec2(16, 0), 1),
- vertex(vec3(0.0, 0.0, 0.0), uvec2(16, 16), 1),
- // Lower South face
- vertex(vec3(0.0, 0.0, 1.0), uvec2(0, 8), 1),
- vertex(vec3(0.0, 0.5, 1.0), uvec2(0, 0), 1),
- vertex(vec3(1.0, 0.5, 1.0), uvec2(16, 0), 1),
- vertex(vec3(1.0, 0.0, 1.0), uvec2(16, 8), 1),
- // Lower top face
- vertex(vec3(0.0, 0.5, 0.5), uvec2(0, 0), 2),
- vertex(vec3(1.0, 0.5, 0.5), uvec2(16, 0), 2),
- vertex(vec3(0.0, 0.5, 1.0), uvec2(0, 8), 2),
- vertex(vec3(1.0, 0.5, 1.0), uvec2(16, 8), 2),
- // Upper South Face
- vertex(vec3(0.0, 0.5, 0.5), uvec2(0, 8), 1),
- vertex(vec3(0.0, 1.0, 0.5), uvec2(0, 0), 1),
- vertex(vec3(1.0, 1.0, 0.5), uvec2(16, 0), 1),
- vertex(vec3(1.0, 0.5, 0.5), uvec2(16, 8), 1),
- // Short east face
- vertex(vec3(1.0, 0.0, 1.0), uvec2(0, 8), 1),
- vertex(vec3(1.0, 0.5, 1.0), uvec2(0, 0), 1),
- vertex(vec3(1.0, 0.5, 0.5), uvec2(8, 0), 1),
- vertex(vec3(1.0, 0.0, 0.5), uvec2(8, 8), 1),
- // Tall east face
- vertex(vec3(1.0, 0.0, 0.5), uvec2(0, 16), 1),
- vertex(vec3(1.0, 1.0, 0.5), uvec2(0, 0), 1),
- vertex(vec3(1.0, 1.0, 0.0), uvec2(8, 0), 1),
- vertex(vec3(1.0, 0.0, 0.0), uvec2(8, 16), 1),
- // Short west face
- vertex(vec3(0.0, 0.0, 0.5), uvec2(0, 8), 1),
- vertex(vec3(0.0, 0.5, 0.5), uvec2(0, 0), 1),
- vertex(vec3(0.0, 0.5, 1.0), uvec2(8, 0), 1),
- vertex(vec3(0.0, 0.0, 1.0), uvec2(8, 8), 1),
- // Tall west face
- vertex(vec3(0.0, 0.0, 0.0), uvec2(0, 16), 1),
- vertex(vec3(0.0, 1.0, 0.0), uvec2(0, 0), 1),
- vertex(vec3(0.0, 1.0, 0.5), uvec2(8, 0), 1),
- vertex(vec3(0.0, 0.0, 0.5), uvec2(8, 16), 1),
- ];
- let indices = [
- // Top face
- 2, 1, 0, 2, 3, 1,
- // Bottom face
- 4, 5, 6, 5, 7, 6,
- // North face
- 10, 9, 8, 10, 8, 11,
- // Lower South face
- 14, 13, 12, 14, 12, 15,
- // Lower Top face
- 18, 17, 16, 18, 19, 17,
- // Upper South face
- 22, 21, 20, 22, 20, 23,
- // Short east face
- 26, 25, 24, 26, 24, 27,
- // Tall east face
- 30, 29, 28, 30, 28, 31,
- // Short west face
- 34, 33, 32, 34, 32, 35,
- // Tall west face
- 38, 37, 36, 38, 36, 39,
- ];
- mesh(vertices, indices, textures)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement