Advertisement
fisharmy100

grass_stairs.rhai

May 28th, 2024
1,148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rust 3.48 KB | Source Code | 0 0
  1. fn name() { "grass_stairs" }
  2. fn display_name() { "Grass Stairs" }
  3. fn visibility() { "transparent" }
  4. fn model()
  5. {
  6.     let textures = [
  7.         tex_ref(uvec2(0, 0), uvec2(16, 16), "block_game_tileset.png"), // dirt
  8.         tex_ref(uvec2(48, 0), uvec2(16, 16), "block_game_tileset.png"), // grass edge
  9.         tex_ref(uvec2(32, 0), uvec2(16, 16), "block_game_tileset.png"), // grass
  10.     ];
  11.  
  12.     let vertices = [
  13.         // Upper top face
  14.         vertex(vec3(0.0, 1.0, 0.0), uvec2(0, 0), 2),
  15.         vertex(vec3(1.0, 1.0, 0.0), uvec2(16, 0), 2),
  16.         vertex(vec3(0.0, 1.0, 0.5), uvec2(0, 8), 2),
  17.         vertex(vec3(1.0, 1.0, 0.5), uvec2(16, 8), 2),
  18.  
  19.         // Bottom face
  20.         vertex(vec3(0.0, 0.0, 0.0), uvec2(0, 0), 0),
  21.         vertex(vec3(1.0, 0.0, 0.0), uvec2(16, 0), 0),
  22.         vertex(vec3(0.0, 0.0, 1.0), uvec2(0, 16), 0),
  23.         vertex(vec3(1.0, 0.0, 1.0), uvec2(16, 16), 0),
  24.  
  25.         // North Face
  26.         vertex(vec3(1.0, 0.0, 0.0), uvec2(0, 16), 1),
  27.         vertex(vec3(1.0, 1.0, 0.0), uvec2(0, 0), 1),
  28.         vertex(vec3(0.0, 1.0, 0.0), uvec2(16, 0), 1),
  29.         vertex(vec3(0.0, 0.0, 0.0), uvec2(16, 16), 1),
  30.  
  31.         // Lower South face
  32.         vertex(vec3(0.0, 0.0, 1.0), uvec2(0, 8), 1),
  33.         vertex(vec3(0.0, 0.5, 1.0), uvec2(0, 0), 1),
  34.         vertex(vec3(1.0, 0.5, 1.0), uvec2(16, 0), 1),
  35.         vertex(vec3(1.0, 0.0, 1.0), uvec2(16, 8), 1),
  36.  
  37.         // Lower top face
  38.         vertex(vec3(0.0, 0.5, 0.5), uvec2(0, 0), 2),
  39.         vertex(vec3(1.0, 0.5, 0.5), uvec2(16, 0), 2),
  40.         vertex(vec3(0.0, 0.5, 1.0), uvec2(0, 8), 2),
  41.         vertex(vec3(1.0, 0.5, 1.0), uvec2(16, 8), 2),
  42.  
  43.         // Upper South Face
  44.         vertex(vec3(0.0, 0.5, 0.5), uvec2(0, 8), 1),
  45.         vertex(vec3(0.0, 1.0, 0.5), uvec2(0, 0), 1),
  46.         vertex(vec3(1.0, 1.0, 0.5), uvec2(16, 0), 1),
  47.         vertex(vec3(1.0, 0.5, 0.5), uvec2(16, 8), 1),
  48.  
  49.         // Short east face
  50.         vertex(vec3(1.0, 0.0, 1.0), uvec2(0, 8), 1),
  51.         vertex(vec3(1.0, 0.5, 1.0), uvec2(0, 0), 1),
  52.         vertex(vec3(1.0, 0.5, 0.5), uvec2(8, 0), 1),
  53.         vertex(vec3(1.0, 0.0, 0.5), uvec2(8, 8), 1),
  54.  
  55.         // Tall east face
  56.         vertex(vec3(1.0, 0.0, 0.5), uvec2(0, 16), 1),
  57.         vertex(vec3(1.0, 1.0, 0.5), uvec2(0, 0), 1),
  58.         vertex(vec3(1.0, 1.0, 0.0), uvec2(8, 0), 1),
  59.         vertex(vec3(1.0, 0.0, 0.0), uvec2(8, 16), 1),
  60.  
  61.         // Short west face
  62.         vertex(vec3(0.0, 0.0, 0.5), uvec2(0, 8), 1),
  63.         vertex(vec3(0.0, 0.5, 0.5), uvec2(0, 0), 1),
  64.         vertex(vec3(0.0, 0.5, 1.0), uvec2(8, 0), 1),
  65.         vertex(vec3(0.0, 0.0, 1.0), uvec2(8, 8), 1),
  66.  
  67.         // Tall west face
  68.         vertex(vec3(0.0, 0.0, 0.0), uvec2(0, 16), 1),
  69.         vertex(vec3(0.0, 1.0, 0.0), uvec2(0, 0), 1),
  70.         vertex(vec3(0.0, 1.0, 0.5), uvec2(8, 0), 1),
  71.         vertex(vec3(0.0, 0.0, 0.5), uvec2(8, 16), 1),
  72.     ];
  73.  
  74.     let indices = [
  75.         // Top face
  76.         2, 1, 0, 2, 3, 1,
  77.  
  78.         // Bottom face
  79.         4, 5, 6, 5, 7, 6,
  80.  
  81.         // North face
  82.         10, 9, 8, 10, 8, 11,
  83.  
  84.         // Lower South face
  85.         14, 13, 12, 14, 12, 15,
  86.  
  87.         // Lower Top face
  88.         18, 17, 16, 18, 19, 17,
  89.  
  90.         // Upper South face
  91.         22, 21, 20, 22, 20, 23,
  92.  
  93.         // Short east face
  94.         26, 25, 24, 26, 24, 27,
  95.  
  96.         // Tall east face
  97.         30, 29, 28, 30, 28, 31,
  98.  
  99.         // Short west face
  100.         34, 33, 32, 34, 32, 35,
  101.  
  102.         // Tall west face
  103.         38, 37, 36, 38, 36, 39,
  104.     ];
  105.  
  106.     mesh(vertices, indices, textures)
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement