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"},
|
tiles = {"xdecor_woodframed_glass.png", "xdecor_woodframed_glass_detail.png"},
|
||||||
use_texture_alpha = ALPHA_CLIP,
|
use_texture_alpha = ALPHA_CLIP,
|
||||||
groups = {cracky = 2, oddly_breakable_by_hand = 1},
|
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 = {
|
local devices = {
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
dofile(minetest.get_modpath("xdecor") .. "/src/glasscut.lua")
|
||||||
|
|
||||||
local workbench = {}
|
local workbench = {}
|
||||||
local nodes = {}
|
local nodes = {}
|
||||||
|
|
||||||
@ -303,20 +305,58 @@ for i = 1, #nodes do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
if not minetest.registered_nodes["stairs:slab_" .. item_name] then
|
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,
|
stairs.register_stair_and_slab(item_name, node,
|
||||||
groups, tiles, S("@1 Stair", def.description),
|
groups, tiles, S("@1 Stair", def.description),
|
||||||
S("@1 Slab", def.description), def.sounds)
|
S("@1 Slab", def.description), def.sounds)
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
minetest.register_node(":" .. node .. "_" .. d[1], {
|
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")
|
-- @1: Base node description (e.g. "Stone"); @2: modifier (e.g. "Nanoslab")
|
||||||
description = S("@1 @2", def.description, d[4]),
|
description = S("@1 @2", def.description, d[4]),
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
drawtype = "nodebox",
|
drawtype = "nodebox",
|
||||||
sounds = def.sounds,
|
sounds = def.sounds,
|
||||||
tiles = tiles,
|
tiles = tiles_special_cut,
|
||||||
use_texture_alpha = def.use_texture_alpha,
|
use_texture_alpha = def.use_texture_alpha,
|
||||||
groups = groups,
|
groups = groups,
|
||||||
node_box = xdecor.pixelbox(16, d[3]),
|
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