added necessary files
This commit is contained in:
parent
afd7877c87
commit
88a510d036
31
README.md
31
README.md
@ -1,2 +1,33 @@
|
||||
# panes_embedded
|
||||
Mod for MineTest. Want to place xpanes, but there's already an arc? Now you can.
|
||||
|
||||
No textures included!
|
||||
|
||||
xpanes as such are nice and can be used for many purposes.
|
||||
|
||||
But have you ever used arcs, stairs, slabs or similar things and wondered how
|
||||
to get your glass pane into the place under the arc? You usually can't.
|
||||
With this mod you can. Its embedded glass pane sits *visually* inside another
|
||||
block (i.e. your arc), even *physically* seems to be at that place (you can
|
||||
run against it) - but is *stored* in the node in front of the glass pane
|
||||
(where you can't place anything else now - but what would you want to place
|
||||
in front of the window anyway?)
|
||||
|
||||
There are some situations where xpanes may have the right texture for your
|
||||
purpose - but you don't want the glass pane to sit in the center of the
|
||||
block, but rather at its front/back - like a thin glass slab from the circular
|
||||
saw in moreblocks. For that purpose, the *unconnected* panes have been added.
|
||||
They behave just like thin glass slabs from the saw.
|
||||
|
||||
Crafting:
|
||||
xpanes glass pane -> unconnected pane -> embedded pane -> xpanes glass pane
|
||||
|
||||
The two new pane types (embedded and unconnected) are added for each pane that
|
||||
has been added by/through xpanes (more precisely: for each node with the group
|
||||
"pane").
|
||||
|
||||
If some xpanes panes don't show up, make sure that this mod here optionally
|
||||
depends on the mod that defines the desired panes.
|
||||
|
||||
Note: The panes defined here do not automaticly connect to other blocks.
|
||||
They're just normal blocks in that regard.
|
||||
|
3
depends.txt
Normal file
3
depends.txt
Normal file
@ -0,0 +1,3 @@
|
||||
xpanes?
|
||||
yl_xpanes?
|
||||
jonez?
|
108
init.lua
Normal file
108
init.lua
Normal file
@ -0,0 +1,108 @@
|
||||
panes_embedded = {}
|
||||
|
||||
panes_embedded.add_pane = function(name, def, orig_name)
|
||||
-- xpanes defines *two* nodes per pane; we only need one here
|
||||
if(minetest.registered_nodes[ "panes_embedded:" .. name .. "_embedded" ]) then
|
||||
return false
|
||||
end
|
||||
-- this cannot register as a pane because auto-connecting would screw things up
|
||||
local groups_without_pane = table.copy(def.groups)
|
||||
groups_without_pane.pane = nil
|
||||
-- when two textures take up the same place, it might get a bit messy;
|
||||
-- thus: make the pane a tiny bit smaller
|
||||
local no_flicker = 1/4096
|
||||
minetest.register_node(":panes_embedded:" .. name .. "_embedded", {
|
||||
description = "Embedded "..tostring(def.description),
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
is_ground_content = false,
|
||||
sunlight_propagates = true,
|
||||
inventory_image = def.inventory_image,
|
||||
wield_image = def.wield_image,
|
||||
paramtype2 = "facedir",
|
||||
tiles = def.tiles,
|
||||
-- change compared to xpanes: it is *not* a pane in the technical sense (relevant for abms)
|
||||
groups = groups_without_pane,
|
||||
-- change compared to xpanes: drops itself
|
||||
-- drop = "xpanes:" .. name .. "_flat", -- no: drops itself
|
||||
sounds = def.sounds,
|
||||
use_texture_alpha = def.use_texture_alpha and "blend" or "clip",
|
||||
-- this pane does not (visually) sit in the middle of the node it is placed (and stoerd) in
|
||||
-- but in the node *behind* that one
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {{-1/2+no_flicker, -1/2+no_flicker, -1/32+1, 1/2-no_flicker, 1/2-no_flicker, 1/32+1}},
|
||||
},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {{-1/2, -1/2, -8/32+0.5, 1/2, 1/2, 1.0}},
|
||||
},
|
||||
-- change compared to xpanes: no connected sides - the pane visually sits elsewhere;
|
||||
-- behaving as a normal pane would be very problematic
|
||||
-- connect_sides = { "left", "right" },
|
||||
})
|
||||
|
||||
-- lone-standing pane; more or less the same as above, but not moved to the node behind - only
|
||||
-- to the edge of its own node (sometimes helpful for building something; those xpanes can be
|
||||
-- terribly annoying when they decide to connect to chairs and the like)
|
||||
no_flicker = 0
|
||||
minetest.register_node(":panes_embedded:" .. name.."_unconnected", {
|
||||
description = "Unconnected "..tostring(def.description),
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
is_ground_content = false,
|
||||
sunlight_propagates = true,
|
||||
inventory_image = def.inventory_image,
|
||||
wield_image = def.wield_image,
|
||||
paramtype2 = "facedir",
|
||||
tiles = def.tiles,
|
||||
-- change compared to xpanes: it is *not* a pane in the technical sense (relevant for abms)
|
||||
groups = groups_without_pane,
|
||||
-- change compared to xpanes: drops itself
|
||||
-- drop = "xpanes:" .. name .. "_flat", -- no: drops itself
|
||||
sounds = def.sounds,
|
||||
use_texture_alpha = def.use_texture_alpha and "blend" or "clip",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {{-1/2, -1/2, 0.5, 1/2, 1/2, 0.5-2/32}},
|
||||
},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {{-1/2, -1/2, 0.5, 1/2, 1/2, 1/2-4/32}},
|
||||
},
|
||||
-- change compared to xpanes: no connected sides - the pane visually sits elsewhere;
|
||||
-- behaving as a normal pane would be very problematic
|
||||
-- connect_sides = { "left", "right" },
|
||||
})
|
||||
|
||||
-- craft chain: from xpane to the unconnected to the embedded one
|
||||
minetest.register_craft({
|
||||
output = "panes_embedded:" .. name.."_unconnected",
|
||||
recipe = {
|
||||
{orig_name},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "panes_embedded:" .. name .. "_embedded",
|
||||
recipe = {
|
||||
{"panes_embedded:" .. name.."_unconnected"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = orig_name,
|
||||
recipe = {
|
||||
{"panes_embedded:" .. name.."_embedded"},
|
||||
}
|
||||
})
|
||||
-- embedded pane successfully created
|
||||
return ture
|
||||
end
|
||||
|
||||
for k, v in pairs(minetest.registered_nodes) do
|
||||
if(minetest.get_item_group(k, "pane") > 0) then
|
||||
local parts = string.split(k, ":")
|
||||
panes_embedded.add_pane(parts[1].."_"..parts[2], v, k)
|
||||
end
|
||||
end
|
5
mod.conf
Normal file
5
mod.conf
Normal file
@ -0,0 +1,5 @@
|
||||
name = panes_embedded
|
||||
description = Place glass panes into arcs, slabs and other nodes.
|
||||
optional_depends = xpanes, yl_xpanes, jonez
|
||||
author = Sokomine
|
||||
title = Panes embedded in other nodes
|
BIN
screenshot.png
Normal file
BIN
screenshot.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 391 KiB |
Loading…
x
Reference in New Issue
Block a user