Merge branch 'better_glass_stair_textures' into bugfix_mania
This commit is contained in:
commit
aba1624182
83
src/glasscut.lua
Normal file
83
src/glasscut.lua
Normal file
@ -0,0 +1,83 @@
|
||||
-- Tile definitions for cut nodes of glass nodes:
|
||||
-- * Woodframed Glass (this mod)
|
||||
-- * Glass (Minetest Game)
|
||||
-- * Obsidian Glass (Minetest Game)
|
||||
-- This is done so the glass nodes still look nice
|
||||
-- when cut.
|
||||
-- If we would only use the base glass tile, most
|
||||
-- cut nodes look horrible because there are no
|
||||
-- clear contours.
|
||||
|
||||
local template_suffixes = {
|
||||
stair = {
|
||||
"_split.png",
|
||||
".png",
|
||||
"_stairside.png^[transformFX",
|
||||
"_stairside.png",
|
||||
".png",
|
||||
"_split.png",
|
||||
},
|
||||
stair_inner = {
|
||||
"_stairside.png^[transformR270",
|
||||
".png",
|
||||
"_stairside.png^[transformFX",
|
||||
".png",
|
||||
".png",
|
||||
"_stairside.png",
|
||||
},
|
||||
stair_outer = {
|
||||
"_stairside.png^[transformR90",
|
||||
".png",
|
||||
"_outer_stairside.png",
|
||||
"_stairside.png^[transformFX",
|
||||
"_stairside.png^[transformR90",
|
||||
"_outer_stairside.png",
|
||||
},
|
||||
halfstair = {
|
||||
"_cube.png",
|
||||
".png",
|
||||
"_stairside.png^[transformFX",
|
||||
"_stairside.png",
|
||||
"_split.png^[transformR90",
|
||||
"_cube.png",
|
||||
},
|
||||
slab = {
|
||||
".png",
|
||||
".png",
|
||||
"_split.png",
|
||||
},
|
||||
cube = { "_cube.png" },
|
||||
thinstair = { "_split.png" },
|
||||
micropanel = { "_split.png" },
|
||||
panel = {
|
||||
"_split.png",
|
||||
"_split.png",
|
||||
"_cube.png",
|
||||
"_cube.png",
|
||||
"_split.png",
|
||||
},
|
||||
}
|
||||
|
||||
local generate_tilenames = function(prefix, default_texture)
|
||||
if not default_texture then
|
||||
default_texture = prefix
|
||||
end
|
||||
local cuts = {}
|
||||
for t, tiles in pairs(template_suffixes) do
|
||||
cuts[t] = {}
|
||||
for i=1, #tiles do
|
||||
if tiles[i] == ".png" then
|
||||
cuts[t][i] = default_texture .. tiles[i]
|
||||
else
|
||||
cuts[t][i] = prefix .. tiles[i]
|
||||
end
|
||||
end
|
||||
end
|
||||
return cuts
|
||||
end
|
||||
|
||||
xdecor.glasscuts = {
|
||||
["xdecor:woodframed_glass"] = generate_tilenames("xdecor_woodframed_glass"),
|
||||
["default:glass"] = generate_tilenames("stairs_glass", "default_glass"),
|
||||
["default:obsidian_glass"] = generate_tilenames("stairs_obsidian_glass", "default_obsidian_glass"),
|
||||
}
|
@ -798,7 +798,56 @@ xdecor.register("woodframed_glass", {
|
||||
tiles = {"xdecor_woodframed_glass.png", "xdecor_woodframed_glass_detail.png"},
|
||||
use_texture_alpha = ALPHA_CLIP,
|
||||
groups = {cracky = 2, oddly_breakable_by_hand = 1},
|
||||
sounds = default.node_sound_glass_defaults()
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
_xdecor_custom_noncube_tiles = {
|
||||
stair = {
|
||||
"xdecor_woodframed_glass_split.png",
|
||||
"xdecor_woodframed_glass.png",
|
||||
"xdecor_woodframed_glass_stairside_flip.png",
|
||||
"xdecor_woodframed_glass_stairside.png",
|
||||
"xdecor_woodframed_glass.png",
|
||||
"xdecor_woodframed_glass_split.png",
|
||||
},
|
||||
stair_inner = {
|
||||
"xdecor_woodframed_glass_stairside.png^[transformR270",
|
||||
"xdecor_woodframed_glass.png",
|
||||
"xdecor_woodframed_glass_stairside_flip.png",
|
||||
"xdecor_woodframed_glass.png",
|
||||
"xdecor_woodframed_glass.png",
|
||||
"xdecor_woodframed_glass_stairside.png",
|
||||
},
|
||||
stair_outer = {
|
||||
"xdecor_woodframed_glass_stairside.png^[transformR90",
|
||||
"xdecor_woodframed_glass.png",
|
||||
"xdecor_woodframed_glass_outer_stairside.png",
|
||||
"xdecor_woodframed_glass_stairside_flip.png",
|
||||
"xdecor_woodframed_glass_stairside.png^[transformR90",
|
||||
"xdecor_woodframed_glass_outer_stairside.png",
|
||||
},
|
||||
halfstair = {
|
||||
"xdecor_woodframed_glass_cube.png",
|
||||
"xdecor_woodframed_glass.png",
|
||||
"xdecor_woodframed_glass_stairside_flip.png",
|
||||
"xdecor_woodframed_glass_stairside.png",
|
||||
"xdecor_woodframed_glass_split.png^[transformR90",
|
||||
"xdecor_woodframed_glass_cube.png",
|
||||
},
|
||||
slab = {
|
||||
"xdecor_woodframed_glass.png",
|
||||
"xdecor_woodframed_glass.png",
|
||||
"xdecor_woodframed_glass_split.png",
|
||||
},
|
||||
cube = { "xdecor_woodframed_glass_cube.png" },
|
||||
thinstair = { "xdecor_woodframed_glass_split.png" },
|
||||
micropanel = { "xdecor_woodframed_glass_split.png" },
|
||||
panel = {
|
||||
"xdecor_woodframed_glass_split.png",
|
||||
"xdecor_woodframed_glass_split.png",
|
||||
"xdecor_woodframed_glass_cube.png",
|
||||
"xdecor_woodframed_glass_cube.png",
|
||||
"xdecor_woodframed_glass_split.png",
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
local devices = {
|
||||
|
@ -1,3 +1,5 @@
|
||||
dofile(minetest.get_modpath("xdecor") .. "/src/glasscut.lua")
|
||||
|
||||
local workbench = {}
|
||||
local nodes = {}
|
||||
|
||||
@ -303,20 +305,58 @@ for i = 1, #nodes do
|
||||
end
|
||||
end
|
||||
|
||||
if not minetest.registered_nodes["stairs:slab_" .. item_name] then
|
||||
stairs.register_stair_and_slab(item_name, node,
|
||||
groups, tiles, S("@1 Stair", def.description),
|
||||
S("@1 Slab", def.description), def.sounds)
|
||||
local custom_tiles = xdecor.glasscuts[node]
|
||||
if custom_tiles then
|
||||
if not custom_tiles.nanoslab then
|
||||
custom_tiles.nanoslab = custom_tiles.cube
|
||||
end
|
||||
if not custom_tiles.micropanel then
|
||||
custom_tiles.micropanel = custom_tiles.micropanel
|
||||
end
|
||||
if not custom_tiles.doublepanel then
|
||||
custom_tiles.doublepanel = custom_tiles.panel
|
||||
end
|
||||
end
|
||||
|
||||
minetest.register_node(":" .. node .. "_" .. d[1], {
|
||||
if not minetest.registered_nodes["stairs:slab_" .. item_name] then
|
||||
if custom_tiles and (custom_tiles.slab or custom_tiles.stair) then
|
||||
if custom_tiles.stair then
|
||||
stairs.register_stair(item_name, node,
|
||||
groups, custom_tiles.stair, S("@1 Stair", def.description),
|
||||
def.sounds)
|
||||
stairs.register_stair_inner(item_name, node,
|
||||
groups, custom_tiles.stair_inner, "", def.sounds)
|
||||
stairs.register_stair_outer(item_name, node,
|
||||
groups, custom_tiles.stair_outer, "", def.sounds)
|
||||
end
|
||||
if custom_tiles.slab then
|
||||
stairs.register_slab(item_name, node,
|
||||
groups, custom_tiles.slab, S("@1 Slab", def.description),
|
||||
def.sounds)
|
||||
end
|
||||
else
|
||||
stairs.register_stair_and_slab(item_name, node,
|
||||
groups, tiles, S("@1 Stair", def.description),
|
||||
S("@1 Slab", def.description), def.sounds)
|
||||
end
|
||||
end
|
||||
|
||||
local cutname = d[1]
|
||||
local tiles_special_cut
|
||||
if custom_tiles and custom_tiles[cutname] then
|
||||
tiles_special_cut = custom_tiles[cutname]
|
||||
else
|
||||
tiles_special_cut = tiles
|
||||
end
|
||||
|
||||
minetest.register_node(":" .. node .. "_" .. cutname, {
|
||||
-- @1: Base node description (e.g. "Stone"); @2: modifier (e.g. "Nanoslab")
|
||||
description = S("@1 @2", def.description, d[4]),
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "nodebox",
|
||||
sounds = def.sounds,
|
||||
tiles = tiles,
|
||||
tiles = tiles_special_cut,
|
||||
use_texture_alpha = def.use_texture_alpha,
|
||||
groups = groups,
|
||||
node_box = xdecor.pixelbox(16, d[3]),
|
||||
|
BIN
textures/stairs_glass_cube.png
Normal file
BIN
textures/stairs_glass_cube.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 268 B |
BIN
textures/stairs_obsidian_glass_cube.png
Normal file
BIN
textures/stairs_obsidian_glass_cube.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 148 B |
BIN
textures/xdecor_woodframed_glass_cube.png
Normal file
BIN
textures/xdecor_woodframed_glass_cube.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 300 B |
BIN
textures/xdecor_woodframed_glass_outer_stairside.png
Normal file
BIN
textures/xdecor_woodframed_glass_outer_stairside.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 299 B |
BIN
textures/xdecor_woodframed_glass_split.png
Normal file
BIN
textures/xdecor_woodframed_glass_split.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 290 B |
BIN
textures/xdecor_woodframed_glass_stairside.png
Normal file
BIN
textures/xdecor_woodframed_glass_stairside.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 300 B |
Loading…
x
Reference in New Issue
Block a user