forked from Mirrorlandia_minetest/minetest
1d04903c19
4dir is like facedir, but only for 4 horizontal directions: NESW. It is identical in behavior to facedir otherwise. The reason why game makers would want to use this over facedir is 1) simplicity and 2) you get 6 free bits. It can be used for things like chests and furnaces and you don't need or want them to "flip them on the side" (like you could with facedir). color4dir is like colorfacedir, but you get 64 colors instead of only 8.
171 lines
4.3 KiB
Lua
171 lines
4.3 KiB
Lua
-- Meshes
|
|
|
|
local S = minetest.get_translator("testnodes")
|
|
|
|
local ocorner_cbox = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{-0.5, -0.5, -0.5, 0.5, -0.25, 0.5},
|
|
{-0.5, -0.25, -0.25, 0.25, 0, 0.5},
|
|
{-0.5, 0, 0, 0, 0.25, 0.5},
|
|
{-0.5, 0.25, 0.25, -0.25, 0.5, 0.5}
|
|
}
|
|
}
|
|
|
|
local tall_pyr_cbox = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{ -0.5, -0.5, -0.5, 0.5, -0.25, 0.5 },
|
|
{ -0.375, -0.25, -0.375, 0.375, 0, 0.375},
|
|
{ -0.25, 0, -0.25, 0.25, 0.25, 0.25},
|
|
{ -0.125, 0.25, -0.125, 0.125, 0.5, 0.125}
|
|
}
|
|
}
|
|
|
|
-- Normal mesh
|
|
minetest.register_node("testnodes:mesh", {
|
|
description = S("Mesh Test Node"),
|
|
drawtype = "mesh",
|
|
mesh = "testnodes_pyramid.obj",
|
|
tiles = {"testnodes_mesh_stripes2.png"},
|
|
paramtype = "light",
|
|
collision_box = tall_pyr_cbox,
|
|
|
|
groups = {dig_immediate=3},
|
|
})
|
|
|
|
-- Facedir mesh: outer corner slope
|
|
minetest.register_node("testnodes:mesh_facedir", {
|
|
description = S("Facedir Mesh Test Node"),
|
|
drawtype = "mesh",
|
|
mesh = "testnodes_ocorner.obj",
|
|
tiles = {"testnodes_mesh_stripes.png"},
|
|
paramtype = "light",
|
|
paramtype2 = "facedir",
|
|
collision_box = ocorner_cbox,
|
|
|
|
groups = {dig_immediate=3},
|
|
})
|
|
|
|
minetest.register_node("testnodes:mesh_colorfacedir", {
|
|
description = S("Color Facedir Mesh Test Node"),
|
|
drawtype = "mesh",
|
|
mesh = "testnodes_ocorner.obj",
|
|
tiles = {"testnodes_mesh_stripes3.png"},
|
|
paramtype = "light",
|
|
paramtype2 = "colorfacedir",
|
|
palette = "testnodes_palette_facedir.png",
|
|
collision_box = ocorner_cbox,
|
|
|
|
groups = {dig_immediate=3},
|
|
})
|
|
|
|
minetest.register_node("testnodes:mesh_4dir", {
|
|
description = S("4dir Mesh Test Node"),
|
|
drawtype = "mesh",
|
|
mesh = "testnodes_ocorner.obj",
|
|
tiles = {"testnodes_mesh_stripes.png"},
|
|
paramtype = "light",
|
|
paramtype2 = "4dir",
|
|
collision_box = ocorner_cbox,
|
|
|
|
groups = {dig_immediate=3},
|
|
})
|
|
|
|
minetest.register_node("testnodes:mesh_color4dir", {
|
|
description = S("Color 4dir Mesh Test Node"),
|
|
drawtype = "mesh",
|
|
mesh = "testnodes_ocorner.obj",
|
|
tiles = {"testnodes_mesh_stripes3.png"},
|
|
paramtype = "light",
|
|
paramtype2 = "color4dir",
|
|
palette = "testnodes_palette_4dir.png",
|
|
collision_box = ocorner_cbox,
|
|
|
|
groups = {dig_immediate=3},
|
|
})
|
|
|
|
-- Wallmounted mesh: pyramid
|
|
minetest.register_node("testnodes:mesh_wallmounted", {
|
|
description = S("Wallmounted Mesh Test Node"),
|
|
drawtype = "mesh",
|
|
mesh = "testnodes_pyramid.obj",
|
|
tiles = {"testnodes_mesh_stripes2.png"},
|
|
paramtype = "light",
|
|
paramtype2 = "wallmounted",
|
|
collision_box = tall_pyr_cbox,
|
|
|
|
groups = {dig_immediate=3},
|
|
})
|
|
|
|
minetest.register_node("testnodes:mesh_colorwallmounted", {
|
|
description = S("Color Wallmounted Mesh Test Node"),
|
|
drawtype = "mesh",
|
|
mesh = "testnodes_pyramid.obj",
|
|
tiles = {"testnodes_mesh_stripes3.png"},
|
|
paramtype = "light",
|
|
paramtype2 = "colorwallmounted",
|
|
palette = "testnodes_palette_wallmounted.png",
|
|
collision_box = tall_pyr_cbox,
|
|
|
|
groups = {dig_immediate=3},
|
|
})
|
|
|
|
|
|
minetest.register_node("testnodes:mesh_double", {
|
|
description = S("Double-sized Mesh Test Node"),
|
|
drawtype = "mesh",
|
|
mesh = "testnodes_pyramid.obj",
|
|
tiles = {"testnodes_mesh_stripes2.png"},
|
|
paramtype = "light",
|
|
collision_box = tall_pyr_cbox,
|
|
visual_scale = 2,
|
|
|
|
groups = {dig_immediate=3},
|
|
})
|
|
minetest.register_node("testnodes:mesh_half", {
|
|
description = S("Half-sized Mesh Test Node"),
|
|
drawtype = "mesh",
|
|
mesh = "testnodes_pyramid.obj",
|
|
tiles = {"testnodes_mesh_stripes2.png"},
|
|
paramtype = "light",
|
|
collision_box = tall_pyr_cbox,
|
|
visual_scale = 0.5,
|
|
|
|
groups = {dig_immediate=3},
|
|
})
|
|
|
|
minetest.register_node("testnodes:mesh_waving1", {
|
|
description = S("Plantlike-waving Mesh Test Node"),
|
|
drawtype = "mesh",
|
|
mesh = "testnodes_pyramid.obj",
|
|
tiles = {"testnodes_mesh_stripes4.png^[multiply:#B0FFB0"},
|
|
paramtype = "light",
|
|
collision_box = tall_pyr_cbox,
|
|
waving = 1,
|
|
|
|
groups = {dig_immediate=3},
|
|
})
|
|
minetest.register_node("testnodes:mesh_waving2", {
|
|
description = S("Leaflike-waving Mesh Test Node"),
|
|
drawtype = "mesh",
|
|
mesh = "testnodes_pyramid.obj",
|
|
tiles = {"testnodes_mesh_stripes4.png^[multiply:#FFFFB0"},
|
|
paramtype = "light",
|
|
collision_box = tall_pyr_cbox,
|
|
waving = 2,
|
|
|
|
groups = {dig_immediate=3},
|
|
})
|
|
minetest.register_node("testnodes:mesh_waving3", {
|
|
description = S("Liquidlike-waving Mesh Test Node"),
|
|
drawtype = "mesh",
|
|
mesh = "testnodes_pyramid.obj",
|
|
tiles = {"testnodes_mesh_stripes4.png^[multiply:#B0B0FF"},
|
|
paramtype = "light",
|
|
collision_box = tall_pyr_cbox,
|
|
waving = 3,
|
|
|
|
groups = {dig_immediate=3},
|
|
})
|