Initlize files
36
LICENSE.txt
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
McNodes:
|
||||||
|
|
||||||
|
Source code:
|
||||||
|
|
||||||
|
Copyright (C) 2016 Hasanalsamra - LGPL
|
||||||
|
|
||||||
|
|
||||||
|
---------------------------------------------------
|
||||||
|
Textures license:
|
||||||
|
|
||||||
|
Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
|
||||||
|
|
||||||
|
|
||||||
|
Terms (^textures^):
|
||||||
|
|
||||||
|
You are free to:
|
||||||
|
Share — copy and redistribute the material in any medium or format
|
||||||
|
Adapt — remix, transform, and build upon the material for any purpose, even commercially.
|
||||||
|
The licensor cannot revoke these freedoms as long as you follow the license terms.
|
||||||
|
|
||||||
|
Under the following terms:
|
||||||
|
Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
|
||||||
|
ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.
|
||||||
|
No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.
|
||||||
|
|
||||||
|
Notices:
|
||||||
|
You do not have to comply with the license for elements of the material in the public domain or where your use is permitted by an applicable exception or limitation.
|
||||||
|
No warranties are given. The license may not give you all of the permissions necessary for your intended use. For example, other rights such as publicity, privacy, or moral rights may limit how you use the material.
|
||||||
|
|
||||||
|
-- https://creativecommons.org/licenses/by-sa/4.0/ --
|
||||||
|
|
||||||
|
|
||||||
|
---------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
Help? minetest@hasanalsamra.tk
|
15
README.md
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# Mcnodes
|
||||||
|
More custom nodes mod for minetest.
|
||||||
|
|
||||||
|
-- This mod adds a 3d chest, if you don't like it edit nodes.lua file and set the ChangeChest variable to 0
|
||||||
|
|
||||||
|
-- The large chest still have some problems will be solved in the next release.
|
||||||
|
|
||||||
|
-- Large chest can be disabled by changing LargeChest variable to 0 at nodes.lua file
|
||||||
|
|
||||||
|
-- Auto stairs can be disabled by changing AutoStairs variable to 0 at init.lua file
|
||||||
|
|
||||||
|
-- Will add a 3d mesh to locked and protected chest in the future.
|
||||||
|
|
||||||
|
# License
|
||||||
|
See LICENSE.txt file.
|
28
auto_stairs.lua
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
SetMcNodesAutoStairs('Quartz', 'mcnodes:stair_quartz', {"mcnodes_quartz_block_top.png", "mcnodes_quartz_block_bottom.png", "mcnodes_quartz_block.png", "mcnodes_quartz_block.png", "mcnodes_quartz_block.png", "mcnodes_quartz_block.png"})
|
||||||
|
SetMcNodesAutoStairs('Sandstone', 'stairs:stair_sandstone', {"default_sandstone.png"})
|
||||||
|
SetMcNodesAutoStairs('Smooth_sandstone_brick', 'mcnodes:stair_smooth_sandstone_brick', {"mcnodes_smooth_sandstone.png"})
|
||||||
|
SetMcNodesAutoStairs('Red_sandstone', 'mcnodes:stair_red_sandstone', {"default_sandstone.png^[colorize:#983800:200"})
|
||||||
|
SetMcNodesAutoStairs('Red_smooth_sandstone', 'mcnodes:stair_red_smooth_sandstone', {"mcnodes_smooth_sandstone.png^[colorize:#983800:200"})
|
||||||
|
SetMcNodesAutoStairs('Stone', 'stairs:stair_stone', {"default_stone.png"})
|
||||||
|
SetMcNodesAutoStairs('Cobble', 'stairs:stair_cobble', {"default_cobble.png"})
|
||||||
|
SetMcNodesAutoStairs('Desert_stonebrick', 'stairs:stair_desert_stonebrick', {"default_desert_stone_brick.png"})
|
||||||
|
SetMcNodesAutoStairs('Desert_stone', 'stairs:stair_desert_stone', {"default_desert_stone.png"})
|
||||||
|
SetMcNodesAutoStairs('Desert_cobble', 'stairs:stair_desert_cobble', {"default_desert_cobble.png"})
|
||||||
|
SetMcNodesAutoStairs('Brick', 'stairs:stair_brick', {"default_brick.png"})
|
||||||
|
SetMcNodesAutoStairs('Copperblock', 'stairs:stair_copperblock', {"default_copper_block.png"})
|
||||||
|
SetMcNodesAutoStairs('Goldblock', 'stairs:stair_goldblock', {"default_gold_block.png"})
|
||||||
|
SetMcNodesAutoStairs('Bronzeblock', 'stairs:stair_bronzeblock', {"default_bronze_block.png"})
|
||||||
|
SetMcNodesAutoStairs('Steelblock', 'stairs:stair_steelblock', {"default_steel_block.png"})
|
||||||
|
SetMcNodesAutoStairs('Straw', 'stairs:stair_straw', {"farming_straw.png"})
|
||||||
|
SetMcNodesAutoStairs('Obsidianbrick', 'stairs:stair_obsidianbrick', {"default_obsidian_brick.png"})
|
||||||
|
SetMcNodesAutoStairs('Obsidian', 'stairs:stair_obsidian', {"default_obsidian.png"})
|
||||||
|
SetMcNodesAutoStairs('Yellow_brick', 'mcnodes:stair_yellow_brick', {"mcnodes_yellow_brick.png"})
|
||||||
|
SetMcNodesAutoStairs('Blue_brick', 'mcnodes:stair_blue_brick', {"mcnodes_blue_brick.png"})
|
||||||
|
SetMcNodesAutoStairs('Grey_brick', 'mcnodes:stair_grey_brick', {"mcnodes_grey_brick.png"})
|
||||||
|
SetMcNodesAutoStairs('Acacia_wood', 'stairs:stair_acacia_wood', {"default_acacia_wood.png"})
|
||||||
|
SetMcNodesAutoStairs('Junglewood', 'stairs:stair_junglewood', {"default_junglewood.png"})
|
||||||
|
SetMcNodesAutoStairs('Aspen_wood', 'stairs:stair_aspen_wood', {"default_aspen_wood.png"})
|
||||||
|
SetMcNodesAutoStairs('Pine_wood', 'stairs:stair_pine_wood', {"default_pine_wood.png"})
|
||||||
|
SetMcNodesAutoStairs('Wood', 'stairs:stair_wood', {"default_wood.png"})
|
||||||
|
SetMcNodesAutoStairs('Sandstonebrick', 'stairs:stair_sandstonebrick', {"default_sandstone_brick.png"})
|
||||||
|
SetMcNodesAutoStairs('Stonebrick', 'stairs:stair_stonebrick', {"default_stone_brick.png"})
|
337
auto_stairs_functions.lua
Normal file
@ -0,0 +1,337 @@
|
|||||||
|
function McNodesGetMainStairNode(pos)
|
||||||
|
nodeName = minetest.get_node_or_nil(pos).name
|
||||||
|
if string.find(nodeName, '_outer') ~= nil then
|
||||||
|
node = string.gsub(nodeName, '_outer', '')
|
||||||
|
elseif string.find(nodeName, '_inner') ~= nil then
|
||||||
|
node = string.gsub(nodeName, '_inner', '')
|
||||||
|
end
|
||||||
|
|
||||||
|
return node
|
||||||
|
end
|
||||||
|
|
||||||
|
function McNodesAddInnerOrOuterName(pos, mode)
|
||||||
|
nodeName = minetest.get_node_or_nil(pos).name
|
||||||
|
if string.find(nodeName, 'mcnodes:') == 1 then
|
||||||
|
node = minetest.get_node_or_nil(pos).name .. '_' .. mode
|
||||||
|
else
|
||||||
|
local NumToRemove = string.find(nodeName, ':')
|
||||||
|
node = 'mcnodes:' .. string.sub(nodeName, NumToRemove+1) .. '_' .. mode
|
||||||
|
end
|
||||||
|
|
||||||
|
return node
|
||||||
|
end
|
||||||
|
|
||||||
|
function RegisterAlias(NodeName, FullStairNodeName)
|
||||||
|
minetest.register_alias('mcnodes:stair_' .. string.lower(NodeName), FullStairNodeName)
|
||||||
|
end
|
||||||
|
|
||||||
|
function SetMcNodesAutoStairs(NodeName, FullStairNodeName, Tiles)
|
||||||
|
InnerStairNodeName = "mcnodes:stair_" .. string.lower(NodeName) .. "_inner"
|
||||||
|
OuterStairNodeName = "mcnodes:stair_" .. string.lower(NodeName) .. "_outer"
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:stair_" .. string.lower(NodeName) .. "_outer", {
|
||||||
|
description = NodeName .. " outer stair",
|
||||||
|
drawtype = "nodebox",
|
||||||
|
tiles = Tiles,
|
||||||
|
groups = {outerstair = 1, cracky = 3, not_in_creative_inventory = 1},
|
||||||
|
drop = FullStairNodeName,
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {{-0.5, -0.5, -0.5, 0.5, 0, 0.5},{0, 0, 0, -0.5, 0.5, 0.5},},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:stair_" .. string.lower(NodeName) .. "_inner", {
|
||||||
|
description = NodeName .. " inner stair",
|
||||||
|
drawtype = "nodebox",
|
||||||
|
tiles = Tiles,
|
||||||
|
groups = {innerstair = 1, cracky = 3, not_in_creative_inventory = 1},
|
||||||
|
drop = FullStairNodeName,
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {{-0.5, -0.5, -0.5, 0.5, 0, 0.5},{-0.5, 0, 0, 0.5, 0.5, 0.5},{0, -0.5, -0.5, -0.5, 0.5, 0.5},},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
if string.find(FullStairNodeName, 'mcnodes:') == nil then
|
||||||
|
RegisterAlias(NodeName, FullStairNodeName)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function McNodesSetStairNode(pos, node, secparam)
|
||||||
|
if McNodesCheckNode(node) ~= false then
|
||||||
|
if secparam == (nil or '') then
|
||||||
|
return minetest.set_node(pos, {name=node})
|
||||||
|
else
|
||||||
|
return minetest.set_node(pos, {name=node, param2 = secparam})
|
||||||
|
end
|
||||||
|
else
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function CheckAutoStair(pos)
|
||||||
|
if minetest.get_node_group(minetest.get_node_or_nil({x=pos.x-1, y=pos.y, z=pos.z}).name, 'innerstair') == 1 or minetest.get_node_group(minetest.get_node_or_nil({x=pos.x-1, y=pos.y, z=pos.z}).name, 'outerstair') == 1 then
|
||||||
|
if minetest.get_node_group(minetest.get_node_or_nil({x=pos.x-1, y=pos.y, z=pos.z}).name, 'outerstair') == 1 then
|
||||||
|
local newpos = {x=pos.x-1, y=pos.y, z=pos.z}
|
||||||
|
minetest.set_node(newpos, {name=McNodesGetMainStairNode(newpos), param2 = '1'})
|
||||||
|
elseif minetest.get_node_group(minetest.get_node_or_nil({x=pos.x-1, y=pos.y, z=pos.z}).name, 'innerstair') == 1 then
|
||||||
|
local newpos = {x=pos.x-1, y=pos.y, z=pos.z}
|
||||||
|
minetest.set_node(newpos, {name=McNodesGetMainStairNode(newpos), param2 = '3'})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_node_group(minetest.get_node_or_nil({x=pos.x, y=pos.y, z=pos.z+1}).name, 'innerstair') == 1 or minetest.get_node_group(minetest.get_node_or_nil({x=pos.x, y=pos.y, z=pos.z+1}).name, 'outerstair') == 1 then
|
||||||
|
if minetest.get_node_group(minetest.get_node_or_nil({x=pos.x, y=pos.y, z=pos.z+1}).name, 'outerstair') == 1 then
|
||||||
|
local newpos = {x=pos.x, y=pos.y, z=pos.z+1}
|
||||||
|
minetest.set_node(newpos, {name=McNodesGetMainStairNode(newpos), param2 = '2'})
|
||||||
|
elseif minetest.get_node_group(minetest.get_node_or_nil({x=pos.x, y=pos.y, z=pos.z+1}).name, 'innerstair') == 1 then
|
||||||
|
local newpos = {x=pos.x, y=pos.y, z=pos.z+1}
|
||||||
|
minetest.set_node(newpos, {name=McNodesGetMainStairNode(newpos), param2 = '0'})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_node_group(minetest.get_node_or_nil({x=pos.x+1, y=pos.y, z=pos.z}).name, 'innerstair') == 1 or minetest.get_node_group(minetest.get_node_or_nil({x=pos.x+1, y=pos.y, z=pos.z}).name, 'outerstair') == 1 then
|
||||||
|
if minetest.get_node_group(minetest.get_node_or_nil({x=pos.x+1, y=pos.y, z=pos.z}).name, 'outerstair') == 1 then
|
||||||
|
local newpos = {x=pos.x+1, y=pos.y, z=pos.z}
|
||||||
|
minetest.set_node(newpos, {name=McNodesGetMainStairNode(newpos), param2 = '3'})
|
||||||
|
elseif minetest.get_node_group(minetest.get_node_or_nil({x=pos.x+1, y=pos.y, z=pos.z}).name, 'innerstair') == 1 then
|
||||||
|
local newpos = {x=pos.x+1, y=pos.y, z=pos.z}
|
||||||
|
minetest.set_node(newpos, {name=McNodesGetMainStairNode(newpos), param2 = '1'})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_node_group(minetest.get_node_or_nil({x=pos.x, y=pos.y, z=pos.z-1}).name, 'innerstair') == 1 or minetest.get_node_group(minetest.get_node_or_nil({x=pos.x, y=pos.y, z=pos.z-1}).name, 'outerstair') == 1 then
|
||||||
|
if minetest.get_node_group(minetest.get_node_or_nil({x=pos.x, y=pos.y, z=pos.z-1}).name, 'outerstair') == 1 then
|
||||||
|
local newpos = {x=pos.x, y=pos.y, z=pos.z-1}
|
||||||
|
minetest.set_node(newpos, {name=McNodesGetMainStairNode(newpos), param2 = '0'})
|
||||||
|
elseif minetest.get_node_group(minetest.get_node_or_nil({x=pos.x, y=pos.y, z=pos.z-1}).name, 'innerstair') == 1 then
|
||||||
|
local newpos = {x=pos.x, y=pos.y, z=pos.z-1}
|
||||||
|
minetest.set_node(newpos, {name=McNodesGetMainStairNode(newpos), param2 = '2'})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.register_on_placenode(function(pos, newnode, placer, oldnode, itemstack, pointed_thing)
|
||||||
|
if minetest.get_node_group(newnode.name, 'stair') == 1 then
|
||||||
|
--minetest.chat_send_all('F-Rotation: ' .. getNodeFRotation(pos) .. ' Y-axis: ' .. getNodeYaxis(pos))
|
||||||
|
done = 0
|
||||||
|
|
||||||
|
-- Inner
|
||||||
|
if minetest.get_node_group(minetest.get_node_or_nil({x=pos.x-1, y=pos.y, z=pos.z}).name, 'stair') == 1 then
|
||||||
|
local newpos = {x=pos.x-1, y=pos.y, z=pos.z}
|
||||||
|
if getNodeYaxis(newpos) == '180' and getNodeYaxis(pos) == '90' then
|
||||||
|
McNodesSetStairNode(newpos, McNodesAddInnerOrOuterName(newpos, 'inner'))
|
||||||
|
elseif getNodeYaxis(newpos) == '180' and getNodeYaxis(pos) == '270' then
|
||||||
|
McNodesSetStairNode(newpos, McNodesAddInnerOrOuterName(newpos, 'inner'), 3)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_node_group(minetest.get_node_or_nil({x=pos.x, y=pos.y, z=pos.z+1}).name, 'stair') == 1 then
|
||||||
|
local newpos = {x=pos.x, y=pos.y, z=pos.z+1}
|
||||||
|
if getNodeYaxis(newpos) == '90' and getNodeYaxis(pos) == '0' then
|
||||||
|
McNodesSetStairNode(newpos, McNodesAddInnerOrOuterName(newpos, 'inner'), 1)
|
||||||
|
elseif getNodeYaxis(newpos) == '90' and getNodeYaxis(pos) == '180' then
|
||||||
|
McNodesSetStairNode(newpos, McNodesAddInnerOrOuterName(newpos, 'inner'), 0)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_node_group(minetest.get_node_or_nil({x=pos.x+1, y=pos.y, z=pos.z}).name, 'stair') == 1 then
|
||||||
|
local newpos = {x=pos.x+1, y=pos.y, z=pos.z}
|
||||||
|
if getNodeYaxis(newpos) == '0' and getNodeYaxis(pos) == '270' then
|
||||||
|
McNodesSetStairNode(newpos, McNodesAddInnerOrOuterName(newpos, 'inner'), 2)
|
||||||
|
elseif getNodeYaxis(newpos) == '0' and getNodeYaxis(pos) == '90' then
|
||||||
|
McNodesSetStairNode(newpos, McNodesAddInnerOrOuterName(newpos, 'inner'), 1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_node_group(minetest.get_node_or_nil({x=pos.x, y=pos.y, z=pos.z-1}).name, 'stair') == 1 then
|
||||||
|
local newpos = {x=pos.x, y=pos.y, z=pos.z-1}
|
||||||
|
if getNodeYaxis(newpos) == '270' and getNodeYaxis(pos) == '180' then
|
||||||
|
McNodesSetStairNode(newpos, McNodesAddInnerOrOuterName(newpos, 'inner'), 3)
|
||||||
|
elseif getNodeYaxis(newpos) == '270' and getNodeYaxis(pos) == '0' then
|
||||||
|
McNodesSetStairNode(newpos, McNodesAddInnerOrOuterName(newpos, 'inner'), 2)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Outer
|
||||||
|
if minetest.get_node_group(minetest.get_node_or_nil({x=pos.x-1, y=pos.y, z=pos.z}).name, 'stair') == 1 then
|
||||||
|
local newpos = {x=pos.x-1, y=pos.y, z=pos.z}
|
||||||
|
if getNodeYaxis(newpos) == '0' and getNodeYaxis(pos) == '270' then
|
||||||
|
McNodesSetStairNode(newpos, McNodesAddInnerOrOuterName(newpos, 'outer'), 2)
|
||||||
|
elseif getNodeYaxis(newpos) == '0' and getNodeYaxis(pos) == '90' then
|
||||||
|
McNodesSetStairNode(newpos, McNodesAddInnerOrOuterName(newpos, 'outer'), 1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_node_group(minetest.get_node_or_nil({x=pos.x, y=pos.y, z=pos.z+1}).name, 'stair') == 1 then
|
||||||
|
local newpos = {x=pos.x, y=pos.y, z=pos.z+1}
|
||||||
|
if getNodeYaxis(newpos) == '270' and getNodeYaxis(pos) == '0' then
|
||||||
|
McNodesSetStairNode(newpos, McNodesAddInnerOrOuterName(newpos, 'outer'), 2)
|
||||||
|
elseif getNodeYaxis(newpos) == '270' and getNodeYaxis(pos) == '180' then
|
||||||
|
McNodesSetStairNode(newpos, McNodesAddInnerOrOuterName(newpos, 'outer'), 3)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_node_group(minetest.get_node_or_nil({x=pos.x+1, y=pos.y, z=pos.z}).name, 'stair') == 1 then
|
||||||
|
local newpos = {x=pos.x+1, y=pos.y, z=pos.z}
|
||||||
|
if getNodeYaxis(newpos) == '180' and getNodeYaxis(pos) == '90' then
|
||||||
|
McNodesSetStairNode(newpos, McNodesAddInnerOrOuterName(newpos, 'outer'), 0)
|
||||||
|
elseif getNodeYaxis(newpos) == '180' and getNodeYaxis(pos) == '270' then
|
||||||
|
McNodesSetStairNode(newpos, McNodesAddInnerOrOuterName(newpos, 'outer'), 3)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_node_group(minetest.get_node_or_nil({x=pos.x, y=pos.y, z=pos.z-1}).name, 'stair') == 1 then
|
||||||
|
local newpos = {x=pos.x, y=pos.y, z=pos.z-1}
|
||||||
|
if getNodeYaxis(newpos) == '90' and getNodeYaxis(pos) == '0' then
|
||||||
|
McNodesSetStairNode(newpos, McNodesAddInnerOrOuterName(newpos, 'outer'), 1)
|
||||||
|
elseif getNodeYaxis(newpos) == '90' and getNodeYaxis(pos) == '180' then
|
||||||
|
McNodesSetStairNode(newpos, McNodesAddInnerOrOuterName(newpos, 'outer'), 0)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Change to outer or inner directly after place
|
||||||
|
|
||||||
|
-- State 1
|
||||||
|
-- Inner
|
||||||
|
if minetest.get_node_group(minetest.get_node_or_nil({x=pos.x-1, y=pos.y, z=pos.z}).name, 'stair') == 1 and minetest.get_node_group(minetest.get_node_or_nil({x=pos.x, y=pos.y, z=pos.z-1}).name, 'stair') == 1 then
|
||||||
|
local newpos = {x=pos.x-1, y=pos.y, z=pos.z}
|
||||||
|
local zmonewpos = {x=pos.x, y=pos.y, z=pos.z-1}
|
||||||
|
if getNodeYaxis(newpos) == '90' and getNodeYaxis(zmonewpos) == '0' and (getNodeYaxis(pos) == '0' or getNodeYaxis(pos) == '90') then
|
||||||
|
McNodesSetStairNode(pos, McNodesAddInnerOrOuterName(pos, 'inner'), 1)
|
||||||
|
done = 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_node_group(minetest.get_node_or_nil({x=pos.x+1, y=pos.y, z=pos.z}).name, 'stair') == 1 and minetest.get_node_group(minetest.get_node_or_nil({x=pos.x, y=pos.y, z=pos.z-1}).name, 'stair') == 1 then
|
||||||
|
local newpos = {x=pos.x+1, y=pos.y, z=pos.z}
|
||||||
|
local zmonewpos = {x=pos.x, y=pos.y, z=pos.z-1}
|
||||||
|
if getNodeYaxis(newpos) == '90' and getNodeYaxis(zmonewpos) == '180' and (getNodeYaxis(pos) == '180' or getNodeYaxis(pos) == '90') then
|
||||||
|
McNodesSetStairNode(pos, McNodesAddInnerOrOuterName(pos, 'inner'), 0)
|
||||||
|
done = 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_node_group(minetest.get_node_or_nil({x=pos.x+1, y=pos.y, z=pos.z}).name, 'stair') == 1 and minetest.get_node_group(minetest.get_node_or_nil({x=pos.x, y=pos.y, z=pos.z+1}).name, 'stair') == 1 then
|
||||||
|
local newpos = {x=pos.x+1, y=pos.y, z=pos.z}
|
||||||
|
local zponewpos = {x=pos.x, y=pos.y, z=pos.z+1}
|
||||||
|
if getNodeYaxis(newpos) == '270' and getNodeYaxis(zponewpos) == '180' and (getNodeYaxis(pos) == '180' or getNodeYaxis(pos) == '270') then
|
||||||
|
McNodesSetStairNode(pos, McNodesAddInnerOrOuterName(pos, 'inner'), 3)
|
||||||
|
done = 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_node_group(minetest.get_node_or_nil({x=pos.x-1, y=pos.y, z=pos.z}).name, 'stair') == 1 and minetest.get_node_group(minetest.get_node_or_nil({x=pos.x, y=pos.y, z=pos.z+1}).name, 'stair') == 1 then
|
||||||
|
local newpos = {x=pos.x-1, y=pos.y, z=pos.z}
|
||||||
|
local zponewpos = {x=pos.x, y=pos.y, z=pos.z+1}
|
||||||
|
if getNodeYaxis(newpos) == '270' and getNodeYaxis(zponewpos) == '0' and (getNodeYaxis(pos) == '0' or getNodeYaxis(pos) == '270') then
|
||||||
|
McNodesSetStairNode(pos, McNodesAddInnerOrOuterName(pos, 'inner'), 2)
|
||||||
|
done = 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Outer
|
||||||
|
if minetest.get_node_group(minetest.get_node_or_nil({x=pos.x-1, y=pos.y, z=pos.z}).name, 'stair') == 1 and minetest.get_node_group(minetest.get_node_or_nil({x=pos.x, y=pos.y, z=pos.z-1}).name, 'stair') == 1 then
|
||||||
|
local newpos = {x=pos.x-1, y=pos.y, z=pos.z}
|
||||||
|
local zmonewpos = {x=pos.x, y=pos.y, z=pos.z-1}
|
||||||
|
if getNodeYaxis(newpos) == '270' and getNodeYaxis(zmonewpos) == '180' and (getNodeYaxis(pos) == '180' or getNodeYaxis(pos) == '270') then
|
||||||
|
McNodesSetStairNode(pos, McNodesAddInnerOrOuterName(pos, 'outer'), 3)
|
||||||
|
done = 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_node_group(minetest.get_node_or_nil({x=pos.x+1, y=pos.y, z=pos.z}).name, 'stair') == 1 and minetest.get_node_group(minetest.get_node_or_nil({x=pos.x, y=pos.y, z=pos.z-1}).name, 'stair') == 1 then
|
||||||
|
local newpos = {x=pos.x+1, y=pos.y, z=pos.z}
|
||||||
|
local zmonewpos = {x=pos.x, y=pos.y, z=pos.z-1}
|
||||||
|
if getNodeYaxis(newpos) == '270' and getNodeYaxis(zmonewpos) == '0' and (getNodeYaxis(pos) == '0' or getNodeYaxis(pos) == '270') then
|
||||||
|
McNodesSetStairNode(pos, McNodesAddInnerOrOuterName(pos, 'outer'), 2)
|
||||||
|
done = 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_node_group(minetest.get_node_or_nil({x=pos.x+1, y=pos.y, z=pos.z}).name, 'stair') == 1 and minetest.get_node_group(minetest.get_node_or_nil({x=pos.x, y=pos.y, z=pos.z+1}).name, 'stair') == 1 then
|
||||||
|
local newpos = {x=pos.x+1, y=pos.y, z=pos.z}
|
||||||
|
local zponewpos = {x=pos.x, y=pos.y, z=pos.z+1}
|
||||||
|
if getNodeYaxis(newpos) == '90' and getNodeYaxis(zponewpos) == '0' and (getNodeYaxis(pos) == '0' or getNodeYaxis(pos) == '90') then
|
||||||
|
McNodesSetStairNode(pos, McNodesAddInnerOrOuterName(pos, 'outer'), 1)
|
||||||
|
done = 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_node_group(minetest.get_node_or_nil({x=pos.x-1, y=pos.y, z=pos.z}).name, 'stair') == 1 and minetest.get_node_group(minetest.get_node_or_nil({x=pos.x, y=pos.y, z=pos.z+1}).name, 'stair') == 1 then
|
||||||
|
local newpos = {x=pos.x-1, y=pos.y, z=pos.z}
|
||||||
|
local zponewpos = {x=pos.x, y=pos.y, z=pos.z+1}
|
||||||
|
if getNodeYaxis(newpos) == '90' and getNodeYaxis(zponewpos) == '180' and (getNodeYaxis(pos) == '180' or getNodeYaxis(pos) == '90') then
|
||||||
|
McNodesSetStairNode(pos, McNodesAddInnerOrOuterName(pos, 'outer'), 0)
|
||||||
|
done = 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- State 2
|
||||||
|
-- Outer/Inner
|
||||||
|
if done ~= 1 then
|
||||||
|
if minetest.get_node_group(minetest.get_node_or_nil({x=pos.x-1, y=pos.y, z=pos.z}).name, 'stair') == 1 then
|
||||||
|
local newpos = {x=pos.x-1, y=pos.y, z=pos.z}
|
||||||
|
if getNodeYaxis(pos) == '180' and getNodeYaxis(newpos) == '270' then
|
||||||
|
McNodesSetStairNode(pos, McNodesAddInnerOrOuterName(pos, 'outer'), 3)
|
||||||
|
elseif getNodeYaxis(pos) == '0' and getNodeYaxis(newpos) == '270' then
|
||||||
|
McNodesSetStairNode(pos, McNodesAddInnerOrOuterName(pos, 'inner'), 2)
|
||||||
|
elseif getNodeYaxis(pos) == '180' and getNodeYaxis(newpos) == '90' then
|
||||||
|
McNodesSetStairNode(pos, McNodesAddInnerOrOuterName(pos, 'outer'), 0)
|
||||||
|
elseif getNodeYaxis(pos) == '0' and getNodeYaxis(newpos) == '90' then
|
||||||
|
McNodesSetStairNode(pos, McNodesAddInnerOrOuterName(pos, 'inner'), 1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_node_group(minetest.get_node_or_nil({x=pos.x+1, y=pos.y, z=pos.z}).name, 'stair') == 1 then
|
||||||
|
local newpos = {x=pos.x+1, y=pos.y, z=pos.z}
|
||||||
|
if getNodeYaxis(pos) == '0' and getNodeYaxis(newpos) == '270' then
|
||||||
|
McNodesSetStairNode(pos, McNodesAddInnerOrOuterName(pos, 'outer'), 2)
|
||||||
|
elseif getNodeYaxis(pos) == '180' and getNodeYaxis(newpos) == '270' then
|
||||||
|
McNodesSetStairNode(pos, McNodesAddInnerOrOuterName(pos, 'inner'), 3)
|
||||||
|
elseif getNodeYaxis(pos) == '0' and getNodeYaxis(newpos) == '90' then
|
||||||
|
McNodesSetStairNode(pos, McNodesAddInnerOrOuterName(pos, 'outer'), 1)
|
||||||
|
elseif getNodeYaxis(pos) == '180' and getNodeYaxis(newpos) == '90' then
|
||||||
|
McNodesSetStairNode(pos, McNodesAddInnerOrOuterName(pos, 'inner'), 0)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_node_group(minetest.get_node_or_nil({x=pos.x, y=pos.y, z=pos.z-1}).name, 'stair') == 1 then
|
||||||
|
local newpos = {x=pos.x, y=pos.y, z=pos.z-1}
|
||||||
|
if getNodeYaxis(pos) == '270' and getNodeYaxis(newpos) == '180' then
|
||||||
|
McNodesSetStairNode(pos, McNodesAddInnerOrOuterName(pos, 'outer'), 3)
|
||||||
|
elseif getNodeYaxis(pos) == '90' and getNodeYaxis(newpos) == '180' then
|
||||||
|
McNodesSetStairNode(pos, McNodesAddInnerOrOuterName(pos, 'inner'), 0)
|
||||||
|
elseif getNodeYaxis(pos) == '270' and getNodeYaxis(newpos) == '0' then
|
||||||
|
McNodesSetStairNode(pos, McNodesAddInnerOrOuterName(pos, 'outer'), 2)
|
||||||
|
elseif getNodeYaxis(pos) == '90' and getNodeYaxis(newpos) == '0' then
|
||||||
|
McNodesSetStairNode(pos, McNodesAddInnerOrOuterName(pos, 'inner'), 1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_node_group(minetest.get_node_or_nil({x=pos.x, y=pos.y, z=pos.z+1}).name, 'stair') == 1 then
|
||||||
|
local newpos = {x=pos.x, y=pos.y, z=pos.z+1}
|
||||||
|
if getNodeYaxis(pos) == '90' and getNodeYaxis(newpos) == '180' then
|
||||||
|
McNodesSetStairNode(pos, McNodesAddInnerOrOuterName(pos, 'outer'), 0)
|
||||||
|
elseif getNodeYaxis(pos) == '270' and getNodeYaxis(newpos) == '180' then
|
||||||
|
McNodesSetStairNode(pos, McNodesAddInnerOrOuterName(pos, 'inner'), 3)
|
||||||
|
elseif getNodeYaxis(pos) == '90' and getNodeYaxis(newpos) == '0' then
|
||||||
|
McNodesSetStairNode(pos, McNodesAddInnerOrOuterName(pos, 'outer'), 1)
|
||||||
|
elseif getNodeYaxis(pos) == '270' and getNodeYaxis(newpos) == '0' then
|
||||||
|
McNodesSetStairNode(pos, McNodesAddInnerOrOuterName(pos, 'inner'), 2)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
minetest.register_on_dignode(function(pos, oldnode, digger)
|
||||||
|
if minetest.get_node_group(oldnode.name, 'stair') == 1 then
|
||||||
|
CheckAutoStair(pos)
|
||||||
|
end
|
||||||
|
end)
|
136
chest.lua
Normal file
@ -0,0 +1,136 @@
|
|||||||
|
if LargeChest == '1' then
|
||||||
|
local large_chest_formspec =
|
||||||
|
"size[13,11]" ..
|
||||||
|
default.gui_bg ..
|
||||||
|
default.gui_bg_img ..
|
||||||
|
default.gui_slots ..
|
||||||
|
"list[current_name;main;0,0.3;13,6;]" ..
|
||||||
|
"list[current_player;main;2.5,6.85;8,1;]" ..
|
||||||
|
"list[current_player;main;2.5,8.08;8,3;8]" ..
|
||||||
|
"listring[current_name;main]" ..
|
||||||
|
"listring[current_player;main]" ..
|
||||||
|
default.get_hotbar_bg(2.5,6.85)
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:large_chest", {
|
||||||
|
description = "Large chest",
|
||||||
|
drawtype = "mesh",
|
||||||
|
mesh = "mcnodes_large_chest.obj",
|
||||||
|
tiles = {"mcnodes_large_chest.png"},
|
||||||
|
groups = {choppy = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory = 1},
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
visual_scale = "1",
|
||||||
|
drop = {
|
||||||
|
max_items = 2,
|
||||||
|
items = {
|
||||||
|
{items = {'default:chest'}},
|
||||||
|
{items = {'default:chest'}}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
selection_box = {type = "fixed", fixed = {1.36, 0.357, 0.415, -0.359, -0.50, -0.44}},
|
||||||
|
collision_box = {type = "fixed", fixed = {1.36, 0.357, 0.415, -0.359, -0.50, -0.44}},
|
||||||
|
|
||||||
|
on_construct = function(pos)
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
meta:set_string("formspec", large_chest_formspec)
|
||||||
|
meta:set_string("infotext", "Large chest")
|
||||||
|
local inv = meta:get_inventory()
|
||||||
|
inv:set_size("main", 13*11)
|
||||||
|
end,
|
||||||
|
|
||||||
|
can_dig = function(pos,player)
|
||||||
|
local meta = minetest.get_meta(pos);
|
||||||
|
local inv = meta:get_inventory()
|
||||||
|
return inv:is_empty("main")
|
||||||
|
end,
|
||||||
|
|
||||||
|
on_blast = function(pos)
|
||||||
|
local drops = {}
|
||||||
|
default.get_inventory_drops(pos, "main", drops)
|
||||||
|
drops[#drops+1] = "default:chest"
|
||||||
|
minetest.remove_node(pos)
|
||||||
|
return drops
|
||||||
|
end,
|
||||||
|
--collision_box = {type = "fixed", fixed = {0.5, 0.5, 0.5, -0.5, -0.51, -1.5}},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_on_placenode(function(pos, newnode, placer, oldnode, itemstack, pointed_thing)
|
||||||
|
placer_pos = placer:getpos()
|
||||||
|
if newnode.name == "default:chest" then
|
||||||
|
local node = minetest.get_node_or_nil({x=pos.x+1, y=pos.y, z=pos.z})
|
||||||
|
lookdir = placer:get_look_dir()
|
||||||
|
facedir = minetest.dir_to_facedir(lookdir)
|
||||||
|
|
||||||
|
if minetest.get_node_or_nil({x=pos.x, y=pos.y, z=pos.z+1}).name == "default:chest" or minetest.get_node_or_nil({x=pos.x, y=pos.y, z=pos.z-1}).name == "default:chest" or minetest.get_node_or_nil({x=pos.x+1, y=pos.y, z=pos.z}).name == "default:chest" or minetest.get_node_or_nil({x=pos.x-1, y=pos.y, z=pos.z}).name == "default:chest" then
|
||||||
|
done = '0'
|
||||||
|
|
||||||
|
if done == '0' then
|
||||||
|
if minetest.get_node_or_nil({x=pos.x+1, y=pos.y, z=pos.z}).name == "default:chest" then
|
||||||
|
MainNodeOn = 'XP'
|
||||||
|
NewNodeRotation = getNodeYaxis(pos)
|
||||||
|
|
||||||
|
minetest.remove_node({x=pos.x+1, y=pos.y, z=pos.z})
|
||||||
|
minetest.remove_node(pos)
|
||||||
|
|
||||||
|
if placer_pos.z < pos.z then
|
||||||
|
minetest.set_node(pos, {name="mcnodes:large_chest", param2 = facedir})
|
||||||
|
else
|
||||||
|
minetest.set_node({x=pos.x+1, y=pos.y, z=pos.z}, {name="mcnodes:large_chest", param2 = facedir})
|
||||||
|
end
|
||||||
|
|
||||||
|
done = '1'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if done == '0' then
|
||||||
|
if minetest.get_node_or_nil({x=pos.x, y=pos.y, z=pos.z+1}).name == "default:chest" then
|
||||||
|
MainNodeOn = 'ZP'
|
||||||
|
minetest.remove_node({x=pos.x, y=pos.y, z=pos.z+1})
|
||||||
|
minetest.remove_node(pos)
|
||||||
|
|
||||||
|
if placer_pos.x < pos.x then
|
||||||
|
minetest.set_node({x=pos.x, y=pos.y, z=pos.z+1}, {name="mcnodes:large_chest", param2 = facedir})
|
||||||
|
else
|
||||||
|
minetest.set_node(pos, {name="mcnodes:large_chest", param2 = facedir})
|
||||||
|
end
|
||||||
|
|
||||||
|
done = '1'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if done == '0' then
|
||||||
|
if minetest.get_node_or_nil({x=pos.x-1, y=pos.y, z=pos.z}).name == "default:chest" then
|
||||||
|
MainNodeOn = 'XN'
|
||||||
|
minetest.remove_node({x=pos.x-1, y=pos.y, z=pos.z})
|
||||||
|
minetest.remove_node(pos)
|
||||||
|
if placer_pos.z > pos.z then
|
||||||
|
minetest.set_node(pos, {name="mcnodes:large_chest", param2 = facedir})
|
||||||
|
else
|
||||||
|
minetest.set_node({x=pos.x-1, y=pos.y, z=pos.z}, {name="mcnodes:large_chest", param2 = facedir})
|
||||||
|
end
|
||||||
|
|
||||||
|
done = '1'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if done == '0' then
|
||||||
|
if minetest.get_node_or_nil({x=pos.x, y=pos.y, z=pos.z-1}).name == "default:chest" then
|
||||||
|
MainNodeOn = 'ZN'
|
||||||
|
minetest.remove_node({x=pos.x, y=pos.y, z=pos.z-1})
|
||||||
|
minetest.remove_node(pos)
|
||||||
|
|
||||||
|
if placer_pos.x > pos.x then
|
||||||
|
minetest.set_node({x=pos.x, y=pos.y, z=pos.z-1}, {name="mcnodes:large_chest", param2 = facedir})
|
||||||
|
else
|
||||||
|
minetest.set_node(pos, {name="mcnodes:large_chest", param2 = facedir})
|
||||||
|
end
|
||||||
|
|
||||||
|
done = '1'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
--minetest.chat_send_all('State: ' .. MainNodeOn .. ', Y-axis: ' .. NewNodeRotation)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
440
crafting.lua
Normal file
@ -0,0 +1,440 @@
|
|||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:quartz_block 1',
|
||||||
|
recipe = {
|
||||||
|
{'', '', ''},
|
||||||
|
{'mcnodes:quartz_item', 'mcnodes:quartz_item', ''},
|
||||||
|
{'mcnodes:quartz_item', 'mcnodes:quartz_item', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:quartz_block_chiseled 1',
|
||||||
|
recipe = {
|
||||||
|
{'', '', ''},
|
||||||
|
{'', 'mcnodes:slab_quartz', ''},
|
||||||
|
{'', 'mcnodes:slab_quartz', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:quartz_block_pillar 2',
|
||||||
|
recipe = {
|
||||||
|
{'', '', ''},
|
||||||
|
{'', 'mcnodes:quartz_block', ''},
|
||||||
|
{'', 'mcnodes:quartz_block', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:diorite 2',
|
||||||
|
recipe = {
|
||||||
|
{'', '', ''},
|
||||||
|
{'default:cobble', 'mcnodes:quartz_item', ''},
|
||||||
|
{'mcnodes:quartz_item', 'default:cobble', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:granite 1',
|
||||||
|
recipe = {
|
||||||
|
{'', '', ''},
|
||||||
|
{'mcnodes:diorite', 'mcnodes:quartz_item', ''},
|
||||||
|
{'', '', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:smooth_andesite 4',
|
||||||
|
recipe = {
|
||||||
|
{'', '', ''},
|
||||||
|
{'mcnodes:andesite', 'mcnodes:andesite', ''},
|
||||||
|
{'mcnodes:andesite', 'mcnodes:andesite', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:smooth_diorite 4',
|
||||||
|
recipe = {
|
||||||
|
{'', '', ''},
|
||||||
|
{'mcnodes:diorite', 'mcnodes:diorite', ''},
|
||||||
|
{'mcnodes:diorite', 'mcnodes:diorite', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:smooth_granite 4',
|
||||||
|
recipe = {
|
||||||
|
{'', '', ''},
|
||||||
|
{'mcnodes:granite', 'mcnodes:granite', ''},
|
||||||
|
{'mcnodes:granite', 'mcnodes:granite', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:andesite 2',
|
||||||
|
recipe = {
|
||||||
|
{'', '', ''},
|
||||||
|
{'mcnodes:diorite', 'default:cobble', ''},
|
||||||
|
{'', '', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:blue_brick 1',
|
||||||
|
recipe = {
|
||||||
|
{'', '', ''},
|
||||||
|
{'default:brick', 'dye:blue', ''},
|
||||||
|
{'', '', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:yellow_brick 1',
|
||||||
|
recipe = {
|
||||||
|
{'', '', ''},
|
||||||
|
{'default:brick', 'dye:yellow', ''},
|
||||||
|
{'', '', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:grey_brick 1',
|
||||||
|
recipe = {
|
||||||
|
{'', '', ''},
|
||||||
|
{'default:brick', 'dye:grey', ''},
|
||||||
|
{'', '', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:smooth_sandstone 9',
|
||||||
|
recipe = {
|
||||||
|
{'default:sandstone', 'default:sandstone', 'default:sandstone'},
|
||||||
|
{'default:sandstone', 'default:sandstone', 'default:sandstone'},
|
||||||
|
{'default:sandstone', 'default:sandstone', 'default:sandstone'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:chiseled_sandstone 1',
|
||||||
|
recipe = {
|
||||||
|
{'', '', ''},
|
||||||
|
{'', 'stairs:slab_sandstone', ''},
|
||||||
|
{'', 'stairs:slab_sandstone', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:red_sand 1',
|
||||||
|
recipe = {
|
||||||
|
{'', '', ''},
|
||||||
|
{'', '', ''},
|
||||||
|
{'default:sand', 'dye:red', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:red_sandstone 1',
|
||||||
|
recipe = {
|
||||||
|
{'', '', ''},
|
||||||
|
{'mcnodes:red_sand', 'mcnodes:red_sand', ''},
|
||||||
|
{'mcnodes:red_sand', 'mcnodes:red_sand', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:smooth_red_sandstone 9',
|
||||||
|
recipe = {
|
||||||
|
{'mcnodes:red_sandstone', 'mcnodes:red_sandstone', 'mcnodes:red_sandstone'},
|
||||||
|
{'mcnodes:red_sandstone', 'mcnodes:red_sandstone', 'mcnodes:red_sandstone'},
|
||||||
|
{'mcnodes:red_sandstone', 'mcnodes:red_sandstone', 'mcnodes:red_sandstone'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:chiseled_red_sandstone 1',
|
||||||
|
recipe = {
|
||||||
|
{'', '', ''},
|
||||||
|
{'', 'mcnodes:slab_red_sandstone', ''},
|
||||||
|
{'', 'mcnodes:slab_red_sandstone', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "cooking",
|
||||||
|
output = "mcnodes:hardened_clay",
|
||||||
|
recipe = "default:clay",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:white_hardened_clay 8',
|
||||||
|
recipe = {
|
||||||
|
{'mcnodes:hardened_clay', 'mcnodes:hardened_clay', 'mcnodes:hardened_clay'},
|
||||||
|
{'mcnodes:hardened_clay', 'dye:white', 'mcnodes:hardened_clay'},
|
||||||
|
{'mcnodes:hardened_clay', 'mcnodes:hardened_clay', 'mcnodes:hardened_clay'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:orange_hardened_clay 8',
|
||||||
|
recipe = {
|
||||||
|
{'mcnodes:hardened_clay', 'mcnodes:hardened_clay', 'mcnodes:hardened_clay'},
|
||||||
|
{'mcnodes:hardened_clay', 'dye:orange', 'mcnodes:hardened_clay'},
|
||||||
|
{'mcnodes:hardened_clay', 'mcnodes:hardened_clay', 'mcnodes:hardened_clay'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:magenta_hardened_clay 8',
|
||||||
|
recipe = {
|
||||||
|
{'mcnodes:hardened_clay', 'mcnodes:hardened_clay', 'mcnodes:hardened_clay'},
|
||||||
|
{'mcnodes:hardened_clay', 'dye:magenta', 'mcnodes:hardened_clay'},
|
||||||
|
{'mcnodes:hardened_clay', 'mcnodes:hardened_clay', 'mcnodes:hardened_clay'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:yellow_hardened_clay 8',
|
||||||
|
recipe = {
|
||||||
|
{'mcnodes:hardened_clay', 'mcnodes:hardened_clay', 'mcnodes:hardened_clay'},
|
||||||
|
{'mcnodes:hardened_clay', 'dye:yellow', 'mcnodes:hardened_clay'},
|
||||||
|
{'mcnodes:hardened_clay', 'mcnodes:hardened_clay', 'mcnodes:hardened_clay'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:lime_hardened_clay 8',
|
||||||
|
recipe = {
|
||||||
|
{'mcnodes:hardened_clay', 'mcnodes:hardened_clay', 'mcnodes:hardened_clay'},
|
||||||
|
{'mcnodes:hardened_clay', 'dye:dark_green', 'mcnodes:hardened_clay'},
|
||||||
|
{'mcnodes:hardened_clay', 'mcnodes:hardened_clay', 'mcnodes:hardened_clay'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:pink_hardened_clay 8',
|
||||||
|
recipe = {
|
||||||
|
{'mcnodes:hardened_clay', 'mcnodes:hardened_clay', 'mcnodes:hardened_clay'},
|
||||||
|
{'mcnodes:hardened_clay', 'dye:pink', 'mcnodes:hardened_clay'},
|
||||||
|
{'mcnodes:hardened_clay', 'mcnodes:hardened_clay', 'mcnodes:hardened_clay'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:grey_hardened_clay 8',
|
||||||
|
recipe = {
|
||||||
|
{'mcnodes:hardened_clay', 'mcnodes:hardened_clay', 'mcnodes:hardened_clay'},
|
||||||
|
{'mcnodes:hardened_clay', 'dye:grey', 'mcnodes:hardened_clay'},
|
||||||
|
{'mcnodes:hardened_clay', 'mcnodes:hardened_clay', 'mcnodes:hardened_clay'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:cyan_hardened_clay 8',
|
||||||
|
recipe = {
|
||||||
|
{'mcnodes:hardened_clay', 'mcnodes:hardened_clay', 'mcnodes:hardened_clay'},
|
||||||
|
{'mcnodes:hardened_clay', 'dye:cyan', 'mcnodes:hardened_clay'},
|
||||||
|
{'mcnodes:hardened_clay', 'mcnodes:hardened_clay', 'mcnodes:hardened_clay'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:blue_hardened_clay 8',
|
||||||
|
recipe = {
|
||||||
|
{'mcnodes:hardened_clay', 'mcnodes:hardened_clay', 'mcnodes:hardened_clay'},
|
||||||
|
{'mcnodes:hardened_clay', 'dye:blue', 'mcnodes:hardened_clay'},
|
||||||
|
{'mcnodes:hardened_clay', 'mcnodes:hardened_clay', 'mcnodes:hardened_clay'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:brown_hardened_clay 8',
|
||||||
|
recipe = {
|
||||||
|
{'mcnodes:hardened_clay', 'mcnodes:hardened_clay', 'mcnodes:hardened_clay'},
|
||||||
|
{'mcnodes:hardened_clay', 'dye:brown', 'mcnodes:hardened_clay'},
|
||||||
|
{'mcnodes:hardened_clay', 'mcnodes:hardened_clay', 'mcnodes:hardened_clay'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:green_hardened_clay 8',
|
||||||
|
recipe = {
|
||||||
|
{'mcnodes:hardened_clay', 'mcnodes:hardened_clay', 'mcnodes:hardened_clay'},
|
||||||
|
{'mcnodes:hardened_clay', 'dye:green', 'mcnodes:hardened_clay'},
|
||||||
|
{'mcnodes:hardened_clay', 'mcnodes:hardened_clay', 'mcnodes:hardened_clay'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:red_hardened_clay 8',
|
||||||
|
recipe = {
|
||||||
|
{'mcnodes:hardened_clay', 'mcnodes:hardened_clay', 'mcnodes:hardened_clay'},
|
||||||
|
{'mcnodes:hardened_clay', 'dye:red', 'mcnodes:hardened_clay'},
|
||||||
|
{'mcnodes:hardened_clay', 'mcnodes:hardened_clay', 'mcnodes:hardened_clay'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:black_hardened_clay 8',
|
||||||
|
recipe = {
|
||||||
|
{'mcnodes:hardened_clay', 'mcnodes:hardened_clay', 'mcnodes:hardened_clay'},
|
||||||
|
{'mcnodes:hardened_clay', 'dye:black', 'mcnodes:hardened_clay'},
|
||||||
|
{'mcnodes:hardened_clay', 'mcnodes:hardened_clay', 'mcnodes:hardened_clay'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:anvil 1',
|
||||||
|
recipe = {
|
||||||
|
{'default:steelblock', 'default:steelblock', 'default:steelblock'},
|
||||||
|
{'', 'default:steel_ingot', ''},
|
||||||
|
{'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:black_carpet 8',
|
||||||
|
recipe = {
|
||||||
|
{'', '', ''},
|
||||||
|
{'wool:black', 'wool:black', ''},
|
||||||
|
{'', '', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:blue_carpet 8',
|
||||||
|
recipe = {
|
||||||
|
{'', '', ''},
|
||||||
|
{'wool:blue', 'wool:blue', ''},
|
||||||
|
{'', '', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:brown_carpet 8',
|
||||||
|
recipe = {
|
||||||
|
{'', '', ''},
|
||||||
|
{'wool:brown', 'wool:brown', ''},
|
||||||
|
{'', '', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:cyan_carpet 8',
|
||||||
|
recipe = {
|
||||||
|
{'', '', ''},
|
||||||
|
{'wool:cyan', 'wool:cyan', ''},
|
||||||
|
{'', '', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:green_carpet 8',
|
||||||
|
recipe = {
|
||||||
|
{'', '', ''},
|
||||||
|
{'wool:green', 'wool:green', ''},
|
||||||
|
{'', '', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:grey_carpet 8',
|
||||||
|
recipe = {
|
||||||
|
{'', '', ''},
|
||||||
|
{'wool:grey', 'wool:grey', ''},
|
||||||
|
{'', '', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:magenta_carpet 8',
|
||||||
|
recipe = {
|
||||||
|
{'', '', ''},
|
||||||
|
{'wool:magenta', 'wool:magenta', ''},
|
||||||
|
{'', '', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:orange_carpet 8',
|
||||||
|
recipe = {
|
||||||
|
{'', '', ''},
|
||||||
|
{'wool:orange', 'wool:orange', ''},
|
||||||
|
{'', '', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:red_carpet 8',
|
||||||
|
recipe = {
|
||||||
|
{'', '', ''},
|
||||||
|
{'wool:red', 'wool:red', ''},
|
||||||
|
{'', '', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:white_carpet 8',
|
||||||
|
recipe = {
|
||||||
|
{'', '', ''},
|
||||||
|
{'wool:white', 'wool:white', ''},
|
||||||
|
{'', '', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:yellow_carpet 8',
|
||||||
|
recipe = {
|
||||||
|
{'', '', ''},
|
||||||
|
{'wool:yellow', 'wool:yellow', ''},
|
||||||
|
{'', '', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:lapis_lazuli_block 1',
|
||||||
|
recipe = {
|
||||||
|
{'dye:blue', 'dye:blue', 'dye:blue'},
|
||||||
|
{'dye:blue', 'dye:blue', 'dye:blue'},
|
||||||
|
{'dye:blue', 'dye:blue', 'dye:blue'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'dye:blue 9',
|
||||||
|
recipe = {
|
||||||
|
{'', '', ''},
|
||||||
|
{'', 'mcnodes:lapis_lazuli_block', ''},
|
||||||
|
{'', '', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "cooking",
|
||||||
|
output = "dye:blue",
|
||||||
|
recipe = "mcnodes:lapis_lazuli_ore",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:emerald_block',
|
||||||
|
recipe = {
|
||||||
|
{'mcnodes:emerald_item', 'mcnodes:emerald_item', 'mcnodes:emerald_item'},
|
||||||
|
{'mcnodes:emerald_item', 'mcnodes:emerald_item', 'mcnodes:emerald_item'},
|
||||||
|
{'mcnodes:emerald_item', 'mcnodes:emerald_item', 'mcnodes:emerald_item'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "cooking",
|
||||||
|
output = "mcnodes:emerald_item",
|
||||||
|
recipe = "mcnodes:emerald_ore",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:emerald_item 9',
|
||||||
|
recipe = {
|
||||||
|
{'', '', ''},
|
||||||
|
{'', 'mcnodes:emerald_block', ''},
|
||||||
|
{'', '', ''},
|
||||||
|
}
|
||||||
|
})
|
3
depends.txt
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
default
|
||||||
|
dye
|
||||||
|
wool
|
28
functions.general.lua
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
function McNodesCheckNode(node)
|
||||||
|
if not ItemStack(node):is_known() then
|
||||||
|
return false
|
||||||
|
elseif ItemStack(node):is_known() then
|
||||||
|
return node
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function getNodeYaxis(pos)
|
||||||
|
-- Taken from Krock's answer: https://forum.minetest.net/viewtopic.php?f=47&t=15276#p227580
|
||||||
|
local node = minetest.get_node(vector.new(pos))
|
||||||
|
local dir = minetest.facedir_to_dir(node.param2 % 4)
|
||||||
|
angle = '0'
|
||||||
|
if dir.z == 1 then
|
||||||
|
angle = '90'
|
||||||
|
elseif dir.x == -1 then
|
||||||
|
angle = '180'
|
||||||
|
elseif dir.z == -1 then
|
||||||
|
angle = '270'
|
||||||
|
end
|
||||||
|
|
||||||
|
return angle
|
||||||
|
end
|
||||||
|
|
||||||
|
function getNodeFRotation(pos)
|
||||||
|
local FRotation = minetest.get_node(pos).param2 % 32
|
||||||
|
return FRotation
|
||||||
|
end
|
34
hand.lua
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
local hand = "wieldhand.png"
|
||||||
|
local tool_cap = {
|
||||||
|
full_punch_interval = 1.0,
|
||||||
|
max_drop_level = 0,
|
||||||
|
groupcaps = {
|
||||||
|
fleshy = {times={[2]=2.00, [3]=1.00}, uses=0, maxlevel=1},
|
||||||
|
crumbly = {times={[2]=3.00, [3]=0.70}, uses=0, maxlevel=1},
|
||||||
|
snappy = {times={[3]=0.40}, uses=0, maxlevel=1},
|
||||||
|
oddly_breakable_by_hand = {times={[1]=7.00,[2]=4.00,[3]=1.40}, uses=0, maxlevel=3},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if minetest.setting_getbool("creative_mode") then
|
||||||
|
tool_cap = {
|
||||||
|
full_punch_interval = 0.5,
|
||||||
|
max_drop_level = 3,
|
||||||
|
groupcaps = {
|
||||||
|
crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3},
|
||||||
|
cracky = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3},
|
||||||
|
snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3},
|
||||||
|
choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3},
|
||||||
|
oddly_breakable_by_hand = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3},
|
||||||
|
},
|
||||||
|
damage_groups = {fleshy = 10},
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.after(0, function()
|
||||||
|
minetest.register_item(":", {
|
||||||
|
type = "none",
|
||||||
|
wield_image = hand,
|
||||||
|
wield_scale = {x=1.2,y=1.0,z=3.0},
|
||||||
|
tool_capabilities = tool_cap,
|
||||||
|
})
|
||||||
|
end)
|
29
init.lua
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
AutoStairs = '1'
|
||||||
|
|
||||||
|
dofile(minetest.get_modpath("mcnodes").."/functions.general.lua")
|
||||||
|
|
||||||
|
dofile(minetest.get_modpath("mcnodes").."/nodes.lua")
|
||||||
|
|
||||||
|
dofile(minetest.get_modpath("mcnodes").."/mesh_nodes.lua")
|
||||||
|
|
||||||
|
dofile(minetest.get_modpath("mcnodes").."/items.lua")
|
||||||
|
|
||||||
|
dofile(minetest.get_modpath("mcnodes").."/stairs_functions.lua")
|
||||||
|
dofile(minetest.get_modpath("mcnodes").."/stairs.lua")
|
||||||
|
|
||||||
|
dofile(minetest.get_modpath("mcnodes").."/crafting.lua")
|
||||||
|
|
||||||
|
--dofile(minetest.get_modpath("mcnodes").."/hand.lua")
|
||||||
|
|
||||||
|
dofile(minetest.get_modpath("mcnodes").."/chest.lua")
|
||||||
|
|
||||||
|
dofile(minetest.get_modpath("mcnodes").."/register_ores.lua")
|
||||||
|
dofile(minetest.get_modpath("mcnodes").."/register_biome.lua")
|
||||||
|
|
||||||
|
dofile(minetest.get_modpath("mcnodes").."/replaced_nodes.lua")
|
||||||
|
|
||||||
|
|
||||||
|
if AutoStairs == '1' then
|
||||||
|
dofile(minetest.get_modpath("mcnodes").."/auto_stairs_functions.lua")
|
||||||
|
dofile(minetest.get_modpath("mcnodes").."/auto_stairs.lua")
|
||||||
|
end
|
14
items.lua
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
minetest.register_craftitem("mcnodes:quartz_item", {
|
||||||
|
description = "Quartz",
|
||||||
|
inventory_image = "mcnodes_quartz_item.png",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craftitem(":dye:blue", {
|
||||||
|
description = "Lapis lazuli",
|
||||||
|
inventory_image = "mcnodes_lapis_item.png",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craftitem("mcnodes:emerald_item", {
|
||||||
|
description = "Emerald",
|
||||||
|
inventory_image = "mcnodes_emerald_item.png",
|
||||||
|
})
|
14
mesh_nodes.lua
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
minetest.register_node("mcnodes:anvil", {
|
||||||
|
description = "Anvil",
|
||||||
|
drawtype = "mesh",
|
||||||
|
mesh = "mcnodes_anvil.obj",
|
||||||
|
tiles = {"mcnodes_anvil.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
visual_scale = "1",
|
||||||
|
drop = 'mcnodes:anvil',
|
||||||
|
--selection_box = {type = "fixed", fixed = {0.3, 0.3, 0.48, -0.32, -0.48, -0.49}},
|
||||||
|
selection_box = {type = "fixed", fixed = {0.493, 0.31, 0.32, -0.495, -0.485, -0.32}},
|
||||||
|
collision_box = {type = "fixed", fixed = {0.493, 0.31, 0.32, -0.495, -0.485, -0.32}},
|
||||||
|
})
|
308
models/mcnodes_anvil.obj
Normal file
@ -0,0 +1,308 @@
|
|||||||
|
# Blender v2.74 (sub 0) OBJ File: 'mcnodes_anvil.blend'
|
||||||
|
# www.blender.org
|
||||||
|
mtllib mcnodes_anvil.mtl
|
||||||
|
o Anvil_Cube.002
|
||||||
|
v -0.414199 -0.495341 -0.250276
|
||||||
|
v -0.414199 -0.313725 -0.250276
|
||||||
|
v -0.414199 -0.313725 -0.196709
|
||||||
|
v -0.414199 -0.495341 -0.196709
|
||||||
|
v -0.330428 -0.495341 -0.250276
|
||||||
|
v -0.330428 -0.313725 -0.250276
|
||||||
|
v -0.330428 -0.313725 -0.196709
|
||||||
|
v -0.330428 -0.495341 -0.196709
|
||||||
|
v -0.330428 -0.283408 -0.196709
|
||||||
|
v -0.414199 -0.495341 -0.047169
|
||||||
|
v -0.414199 -0.313725 -0.047169
|
||||||
|
v -0.330428 -0.495341 -0.047169
|
||||||
|
v -0.330428 -0.313725 -0.047169
|
||||||
|
v -0.330428 -0.283408 -0.047169
|
||||||
|
v -0.262672 -0.313725 -0.250276
|
||||||
|
v -0.262672 -0.313725 -0.196709
|
||||||
|
v -0.262672 -0.495341 -0.196709
|
||||||
|
v -0.262672 -0.495341 -0.250276
|
||||||
|
v -0.262672 -0.283408 -0.196709
|
||||||
|
v -0.262672 -0.283408 -0.081116
|
||||||
|
v -0.262672 -0.495341 -0.047169
|
||||||
|
v -0.262672 -0.045308 -0.081116
|
||||||
|
v -0.414199 -0.495341 0.250276
|
||||||
|
v -0.414199 -0.313725 0.250276
|
||||||
|
v -0.414199 -0.313725 0.000000
|
||||||
|
v -0.414199 -0.495341 0.000000
|
||||||
|
v -0.414199 -0.313725 0.196709
|
||||||
|
v -0.414199 -0.495341 0.196709
|
||||||
|
v -0.330428 -0.495341 0.250276
|
||||||
|
v -0.330428 -0.313725 0.250276
|
||||||
|
v -0.330428 -0.313725 0.000000
|
||||||
|
v -0.330428 -0.495341 0.000000
|
||||||
|
v -0.330428 -0.313725 0.196709
|
||||||
|
v -0.330428 -0.495341 0.196709
|
||||||
|
v -0.330428 -0.283408 0.000000
|
||||||
|
v -0.330428 -0.283408 0.196709
|
||||||
|
v -0.414199 -0.495341 0.047169
|
||||||
|
v -0.414199 -0.313725 0.047169
|
||||||
|
v -0.330428 -0.495341 0.047169
|
||||||
|
v -0.330428 -0.313725 0.047169
|
||||||
|
v -0.330428 -0.283408 0.047169
|
||||||
|
v -0.262672 -0.313725 0.250276
|
||||||
|
v -0.262672 -0.313725 0.000000
|
||||||
|
v -0.262672 -0.495341 0.000000
|
||||||
|
v -0.262672 -0.313725 0.196709
|
||||||
|
v -0.262672 -0.495341 0.196709
|
||||||
|
v -0.262672 -0.495341 0.250276
|
||||||
|
v -0.262672 -0.283408 0.000000
|
||||||
|
v -0.262672 -0.283408 0.196709
|
||||||
|
v -0.262672 -0.283408 0.081116
|
||||||
|
v -0.262672 -0.495341 0.047169
|
||||||
|
v -0.262672 -0.045308 0.000000
|
||||||
|
v -0.262672 -0.045308 0.081116
|
||||||
|
v 0.494274 -0.047699 -0.319056
|
||||||
|
v 0.494274 0.310285 -0.319056
|
||||||
|
v -0.494274 -0.047699 -0.319056
|
||||||
|
v -0.494274 0.310285 -0.319056
|
||||||
|
v 0.494274 -0.047699 0.319056
|
||||||
|
v 0.494274 0.310285 0.319056
|
||||||
|
v -0.494274 -0.047699 0.319056
|
||||||
|
v -0.494274 0.310285 0.319056
|
||||||
|
v 0.414199 -0.495341 -0.250276
|
||||||
|
v 0.414199 -0.313725 -0.250276
|
||||||
|
v -0.000000 -0.313725 -0.250276
|
||||||
|
v -0.000000 -0.495341 -0.250276
|
||||||
|
v 0.414199 -0.313725 -0.196709
|
||||||
|
v -0.000000 -0.495341 -0.196709
|
||||||
|
v 0.414199 -0.495341 -0.196709
|
||||||
|
v -0.000000 -0.313725 -0.196709
|
||||||
|
v 0.330428 -0.495341 -0.250276
|
||||||
|
v 0.330428 -0.313725 -0.250276
|
||||||
|
v 0.330428 -0.313725 -0.196709
|
||||||
|
v 0.330428 -0.495341 -0.196709
|
||||||
|
v -0.000000 -0.283408 -0.196709
|
||||||
|
v 0.330428 -0.283408 -0.196709
|
||||||
|
v 0.414199 -0.495341 -0.047169
|
||||||
|
v -0.000000 -0.313725 -0.047169
|
||||||
|
v 0.414199 -0.313725 -0.047169
|
||||||
|
v -0.000000 -0.495341 -0.047169
|
||||||
|
v 0.330428 -0.495341 -0.047169
|
||||||
|
v 0.330428 -0.313725 -0.047169
|
||||||
|
v -0.000000 -0.283408 -0.081116
|
||||||
|
v 0.330428 -0.283408 -0.047169
|
||||||
|
v 0.262672 -0.313725 -0.250276
|
||||||
|
v 0.262672 -0.313725 -0.196709
|
||||||
|
v 0.262672 -0.495341 -0.196709
|
||||||
|
v 0.262672 -0.495341 -0.250276
|
||||||
|
v 0.262672 -0.283408 -0.196709
|
||||||
|
v 0.262672 -0.283408 -0.081116
|
||||||
|
v 0.262672 -0.495341 -0.047169
|
||||||
|
v -0.000000 -0.045308 -0.081116
|
||||||
|
v 0.262672 -0.045308 -0.081116
|
||||||
|
v 0.414199 -0.495341 0.250276
|
||||||
|
v 0.414199 -0.313725 0.250276
|
||||||
|
v 0.000000 -0.313725 0.250276
|
||||||
|
v 0.000000 -0.495341 0.250276
|
||||||
|
v 0.414199 -0.313725 -0.000000
|
||||||
|
v 0.414199 -0.495341 -0.000000
|
||||||
|
v -0.000000 -0.313725 -0.000000
|
||||||
|
v -0.000000 -0.495341 -0.000000
|
||||||
|
v 0.414199 -0.313725 0.196709
|
||||||
|
v 0.000000 -0.495341 0.196709
|
||||||
|
v 0.414199 -0.495341 0.196709
|
||||||
|
v 0.000000 -0.313725 0.196709
|
||||||
|
v 0.330428 -0.495341 0.250276
|
||||||
|
v 0.330428 -0.313725 0.250276
|
||||||
|
v 0.330428 -0.313725 -0.000000
|
||||||
|
v 0.330428 -0.495341 -0.000000
|
||||||
|
v 0.330428 -0.313725 0.196709
|
||||||
|
v 0.330428 -0.495341 0.196709
|
||||||
|
v 0.000000 -0.283408 0.196709
|
||||||
|
v -0.000000 -0.283408 -0.000000
|
||||||
|
v 0.330428 -0.283408 -0.000000
|
||||||
|
v 0.330428 -0.283408 0.196709
|
||||||
|
v 0.414199 -0.495341 0.047169
|
||||||
|
v -0.000000 -0.313725 0.047169
|
||||||
|
v 0.414199 -0.313725 0.047169
|
||||||
|
v -0.000000 -0.495341 0.047169
|
||||||
|
v 0.330428 -0.495341 0.047169
|
||||||
|
v 0.330428 -0.313725 0.047169
|
||||||
|
v 0.000000 -0.283408 0.081116
|
||||||
|
v 0.330428 -0.283408 0.047169
|
||||||
|
v 0.262672 -0.313725 0.250276
|
||||||
|
v 0.262672 -0.313725 -0.000000
|
||||||
|
v 0.262672 -0.495341 -0.000000
|
||||||
|
v 0.262672 -0.313725 0.196709
|
||||||
|
v 0.262672 -0.495341 0.196709
|
||||||
|
v 0.262672 -0.495341 0.250276
|
||||||
|
v 0.262672 -0.283408 -0.000000
|
||||||
|
v 0.262672 -0.283408 0.196709
|
||||||
|
v 0.262672 -0.283408 0.081116
|
||||||
|
v 0.262672 -0.495341 0.047169
|
||||||
|
v 0.000000 -0.045308 0.081116
|
||||||
|
v -0.000000 -0.045308 -0.000000
|
||||||
|
v 0.262672 -0.045308 -0.000000
|
||||||
|
v 0.262672 -0.045308 0.081116
|
||||||
|
vt 0.179478 0.647660
|
||||||
|
vt 0.354990 0.647660
|
||||||
|
vt 0.354990 0.823172
|
||||||
|
vt 0.179478 0.823172
|
||||||
|
vt 0.002838 0.646788
|
||||||
|
vt 0.177185 0.646788
|
||||||
|
vt 0.177185 0.822300
|
||||||
|
vt 0.002838 0.822300
|
||||||
|
vt 0.179478 0.998684
|
||||||
|
vt 0.355374 0.823172
|
||||||
|
vt 0.354990 0.998684
|
||||||
|
vt 0.531420 0.821682
|
||||||
|
vt 0.355301 0.821682
|
||||||
|
vt 0.355301 0.645138
|
||||||
|
vt 0.531420 0.645138
|
||||||
|
vt 0.354990 0.471664
|
||||||
|
vt 0.355374 0.647660
|
||||||
|
vt 0.179478 0.471664
|
||||||
|
vt 0.999962 0.823691
|
||||||
|
vt 0.999962 0.999965
|
||||||
|
vt 0.718114 0.999965
|
||||||
|
vt 0.718114 0.823691
|
||||||
|
vn -1.000000 -0.000000 0.000000
|
||||||
|
vn 0.000000 -1.000000 -0.000000
|
||||||
|
vn 0.000000 0.000000 -1.000000
|
||||||
|
vn 0.000000 1.000000 -0.000000
|
||||||
|
vn 0.000000 0.000000 1.000000
|
||||||
|
vn 1.000000 -0.000000 -0.000000
|
||||||
|
usemtl None
|
||||||
|
s off
|
||||||
|
f 3/1/1 2/2/1 1/3/1 4/4/1
|
||||||
|
f 8/1/2 4/2/2 1/3/2 5/4/2
|
||||||
|
f 15/1/3 64/2/3 65/3/3 18/4/3
|
||||||
|
f 13/1/4 11/2/4 25/3/4 31/4/4
|
||||||
|
f 6/1/4 2/2/4 3/3/4 7/4/4
|
||||||
|
f 12/1/2 10/2/2 4/3/2 8/4/2
|
||||||
|
f 11/1/1 3/2/1 4/3/1 10/4/1
|
||||||
|
f 21/1/2 12/2/2 8/3/2 17/4/2
|
||||||
|
f 15/1/4 6/2/4 7/3/4 16/4/4
|
||||||
|
f 16/1/3 7/2/3 9/3/3 19/4/3
|
||||||
|
f 2/1/3 6/2/3 5/3/3 1/4/3
|
||||||
|
f 17/1/2 8/2/2 5/3/2 18/4/2
|
||||||
|
f 20/1/4 14/2/4 35/3/4 48/4/4
|
||||||
|
f 13/1/1 31/2/1 35/3/1 14/4/1
|
||||||
|
f 7/1/1 13/2/1 14/3/1 9/4/1
|
||||||
|
f 19/1/4 9/2/4 14/3/4 20/4/4
|
||||||
|
f 44/1/2 32/2/2 12/3/2 21/4/2
|
||||||
|
f 25/1/1 11/2/1 10/3/1 26/4/1
|
||||||
|
f 32/1/2 26/2/2 10/3/2 12/4/2
|
||||||
|
f 7/1/4 3/2/4 11/3/4 13/4/4
|
||||||
|
f 100/1/2 44/2/2 21/3/2 79/4/2
|
||||||
|
f 74/1/4 19/2/4 20/3/4 82/4/4
|
||||||
|
f 20/1/1 48/2/1 52/3/1 22/4/1
|
||||||
|
f 67/1/2 17/2/2 18/3/2 65/4/2
|
||||||
|
f 69/1/3 16/2/3 19/3/3 74/4/3
|
||||||
|
f 64/1/4 15/2/4 16/3/4 69/4/4
|
||||||
|
f 79/1/2 21/2/2 17/3/2 67/4/2
|
||||||
|
f 6/1/3 15/2/3 18/3/3 5/4/3
|
||||||
|
f 91/1/4 22/2/4 52/3/4 134/4/4
|
||||||
|
f 82/1/3 20/2/3 22/3/3 91/4/3
|
||||||
|
f 27/1/1 28/2/1 23/3/1 24/4/1
|
||||||
|
f 34/1/2 29/2/2 23/3/2 28/4/2
|
||||||
|
f 42/1/5 47/2/5 96/3/5 95/4/5
|
||||||
|
f 40/1/4 31/2/4 25/3/4 38/4/4
|
||||||
|
f 30/1/4 33/2/4 27/3/4 24/4/4
|
||||||
|
f 39/1/2 34/2/2 28/3/2 37/4/2
|
||||||
|
f 38/1/1 37/2/1 28/3/1 27/4/1
|
||||||
|
f 51/1/2 46/2/2 34/3/2 39/4/2
|
||||||
|
f 42/1/4 45/2/4 33/3/4 30/4/4
|
||||||
|
f 45/1/5 49/2/5 36/3/5 33/4/5
|
||||||
|
f 24/1/5 23/2/5 29/3/5 30/4/5
|
||||||
|
f 46/1/2 47/2/2 29/3/2 34/4/2
|
||||||
|
f 50/1/4 48/2/4 35/3/4 41/4/4
|
||||||
|
f 43/1/3 48/2/3 112/3/3 99/4/3
|
||||||
|
f 40/1/1 41/2/1 35/3/1 31/4/1
|
||||||
|
f 33/1/1 36/2/1 41/3/1 40/4/1
|
||||||
|
f 49/1/4 50/2/4 41/3/4 36/4/4
|
||||||
|
f 44/1/2 51/2/2 39/3/2 32/4/2
|
||||||
|
f 25/1/1 26/2/1 37/3/1 38/4/1
|
||||||
|
f 32/1/2 39/2/2 37/3/2 26/4/2
|
||||||
|
f 33/1/4 40/2/4 38/3/4 27/4/4
|
||||||
|
f 100/1/2 118/2/2 51/3/2 44/4/2
|
||||||
|
f 111/1/4 121/2/4 50/3/4 49/4/4
|
||||||
|
f 31/1/3 35/2/3 48/3/3 43/4/3
|
||||||
|
f 50/1/1 53/2/1 52/3/1 48/4/1
|
||||||
|
f 102/1/2 96/2/2 47/3/2 46/4/2
|
||||||
|
f 104/1/5 111/2/5 49/3/5 45/4/5
|
||||||
|
f 95/1/4 104/2/4 45/3/4 42/4/4
|
||||||
|
f 118/1/2 102/2/2 46/3/2 51/4/2
|
||||||
|
f 30/1/5 29/2/5 47/3/5 42/4/5
|
||||||
|
f 133/1/4 134/2/4 52/3/4 53/4/4
|
||||||
|
f 48/1/3 52/2/3 134/3/3 112/4/3
|
||||||
|
f 121/1/5 133/2/5 53/3/5 50/4/5
|
||||||
|
f 55/5/3 54/6/3 56/7/3 57/8/3
|
||||||
|
f 57/9/1 56/4/1 60/10/1 61/11/1
|
||||||
|
f 61/12/5 60/13/5 58/14/5 59/15/5
|
||||||
|
f 59/16/6 58/17/6 54/1/6 55/18/6
|
||||||
|
f 54/1/2 58/17/2 60/10/2 56/4/2
|
||||||
|
f 59/19/4 55/20/4 57/21/4 61/22/4
|
||||||
|
f 66/1/6 68/2/6 62/3/6 63/4/6
|
||||||
|
f 73/1/2 70/2/2 62/3/2 68/4/2
|
||||||
|
f 84/1/3 87/2/3 65/3/3 64/4/3
|
||||||
|
f 81/1/4 107/2/4 97/3/4 78/4/4
|
||||||
|
f 71/1/4 72/2/4 66/3/4 63/4/4
|
||||||
|
f 80/1/2 73/2/2 68/3/2 76/4/2
|
||||||
|
f 78/1/6 76/2/6 68/3/6 66/4/6
|
||||||
|
f 90/1/2 86/2/2 73/3/2 80/4/2
|
||||||
|
f 84/1/4 85/2/4 72/3/4 71/4/4
|
||||||
|
f 85/1/3 88/2/3 75/3/3 72/4/3
|
||||||
|
f 63/1/3 62/2/3 70/3/3 71/4/3
|
||||||
|
f 86/1/2 87/2/2 70/3/2 73/4/2
|
||||||
|
f 89/1/4 129/2/4 113/3/4 83/4/4
|
||||||
|
f 77/1/1 82/2/1 74/3/1 69/4/1
|
||||||
|
f 81/1/6 83/2/6 113/3/6 107/4/6
|
||||||
|
f 72/1/6 75/2/6 83/3/6 81/4/6
|
||||||
|
f 99/1/1 112/2/1 82/3/1 77/4/1
|
||||||
|
f 88/1/4 89/2/4 83/3/4 75/4/4
|
||||||
|
f 125/1/2 90/2/2 80/3/2 108/4/2
|
||||||
|
f 97/1/6 98/2/6 76/3/6 78/4/6
|
||||||
|
f 108/1/2 80/2/2 76/3/2 98/4/2
|
||||||
|
f 72/1/4 81/2/4 78/3/4 66/4/4
|
||||||
|
f 100/1/2 79/2/2 90/3/2 125/4/2
|
||||||
|
f 74/1/4 82/2/4 89/3/4 88/4/4
|
||||||
|
f 89/1/6 92/2/6 135/3/6 129/4/6
|
||||||
|
f 67/1/2 65/2/2 87/3/2 86/4/2
|
||||||
|
f 69/1/3 74/2/3 88/3/3 85/4/3
|
||||||
|
f 64/1/4 69/2/4 85/3/4 84/4/4
|
||||||
|
f 79/1/2 67/2/2 86/3/2 90/4/2
|
||||||
|
f 71/1/3 70/2/3 87/3/3 84/4/3
|
||||||
|
f 91/1/4 134/2/4 135/3/4 92/4/4
|
||||||
|
f 112/1/1 134/2/1 91/3/1 82/4/1
|
||||||
|
f 82/1/3 91/2/3 92/3/3 89/4/3
|
||||||
|
f 101/1/6 94/2/6 93/3/6 103/4/6
|
||||||
|
f 110/1/2 103/2/2 93/3/2 105/4/2
|
||||||
|
f 123/1/5 95/2/5 96/3/5 128/4/5
|
||||||
|
f 120/1/4 117/2/4 97/3/4 107/4/4
|
||||||
|
f 106/1/4 94/2/4 101/3/4 109/4/4
|
||||||
|
f 119/1/2 115/2/2 103/3/2 110/4/2
|
||||||
|
f 117/1/6 101/2/6 103/3/6 115/4/6
|
||||||
|
f 132/1/2 119/2/2 110/3/2 127/4/2
|
||||||
|
f 123/1/4 106/2/4 109/3/4 126/4/4
|
||||||
|
f 126/1/5 109/2/5 114/3/5 130/4/5
|
||||||
|
f 94/1/5 106/2/5 105/3/5 93/4/5
|
||||||
|
f 127/1/2 110/2/2 105/3/2 128/4/2
|
||||||
|
f 131/1/4 122/2/4 113/3/4 129/4/4
|
||||||
|
f 124/1/3 99/2/3 112/3/3 129/4/3
|
||||||
|
f 116/1/1 104/2/1 111/3/1 121/4/1
|
||||||
|
f 120/1/6 107/2/6 113/3/6 122/4/6
|
||||||
|
f 109/1/6 120/2/6 122/3/6 114/4/6
|
||||||
|
f 99/1/1 116/2/1 121/3/1 112/4/1
|
||||||
|
f 130/1/4 114/2/4 122/3/4 131/4/4
|
||||||
|
f 125/1/2 108/2/2 119/3/2 132/4/2
|
||||||
|
f 97/1/6 117/2/6 115/3/6 98/4/6
|
||||||
|
f 108/1/2 98/2/2 115/3/2 119/4/2
|
||||||
|
f 109/1/4 101/2/4 117/3/4 120/4/4
|
||||||
|
f 100/1/2 125/2/2 132/3/2 118/4/2
|
||||||
|
f 111/1/4 130/2/4 131/3/4 121/4/4
|
||||||
|
f 107/1/3 124/2/3 129/3/3 113/4/3
|
||||||
|
f 131/1/6 129/2/6 135/3/6 136/4/6
|
||||||
|
f 102/1/2 127/2/2 128/3/2 96/4/2
|
||||||
|
f 104/1/5 126/2/5 130/3/5 111/4/5
|
||||||
|
f 95/1/4 123/2/4 126/3/4 104/4/4
|
||||||
|
f 118/1/2 132/2/2 127/3/2 102/4/2
|
||||||
|
f 106/1/5 123/2/5 128/3/5 105/4/5
|
||||||
|
f 133/1/4 136/2/4 135/3/4 134/4/4
|
||||||
|
f 129/1/3 112/2/3 134/3/3 135/4/3
|
||||||
|
f 112/1/1 121/2/1 133/3/1 134/4/1
|
||||||
|
f 121/1/5 131/2/5 136/3/5 133/4/5
|
105
models/mcnodes_default_chest.obj
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
# Blender v2.74 (sub 0) OBJ File: 'mcnodes_chest.blend'
|
||||||
|
# www.blender.org
|
||||||
|
mtllib default_chest.mtl
|
||||||
|
o Chest
|
||||||
|
v 0.429587 -0.500587 0.455401
|
||||||
|
v 0.429587 0.358587 0.455401
|
||||||
|
v -0.429587 -0.500587 0.455401
|
||||||
|
v -0.429587 0.358587 0.455401
|
||||||
|
v 0.429587 -0.500587 -0.403773
|
||||||
|
v 0.429587 0.358587 -0.403773
|
||||||
|
v -0.429587 -0.500587 -0.403773
|
||||||
|
v -0.429587 0.358587 -0.403773
|
||||||
|
v 0.429587 0.088644 0.455401
|
||||||
|
v -0.429587 0.088644 0.455401
|
||||||
|
v -0.429587 0.088644 -0.403773
|
||||||
|
v 0.429587 0.088644 -0.403773
|
||||||
|
v 0.054702 -0.017228 -0.403842
|
||||||
|
v 0.054702 0.198663 -0.403842
|
||||||
|
v -0.054702 -0.017228 -0.403842
|
||||||
|
v -0.054702 0.198663 -0.403842
|
||||||
|
v 0.054702 -0.017228 -0.455401
|
||||||
|
v 0.054702 0.198663 -0.455401
|
||||||
|
v -0.054702 -0.017228 -0.455401
|
||||||
|
v -0.054702 0.198663 -0.455401
|
||||||
|
vt 0.656221 0.484414
|
||||||
|
vt 0.437466 0.484414
|
||||||
|
vt 0.437466 0.328177
|
||||||
|
vt 0.656221 0.328177
|
||||||
|
vt 0.000015 0.484374
|
||||||
|
vt 0.218749 0.484374
|
||||||
|
vt 0.218749 0.328221
|
||||||
|
vt 0.000015 0.328221
|
||||||
|
vt 0.218825 0.484376
|
||||||
|
vt 0.218825 0.328204
|
||||||
|
vt 0.874916 0.484361
|
||||||
|
vt 0.656361 0.484361
|
||||||
|
vt 0.656361 0.328196
|
||||||
|
vt 0.874916 0.328196
|
||||||
|
vt 0.437618 0.484420
|
||||||
|
vt 0.437618 0.703143
|
||||||
|
vt 0.656223 0.703143
|
||||||
|
vt 0.437583 1.000009
|
||||||
|
vt 0.218998 1.000009
|
||||||
|
vt 0.218848 0.781307
|
||||||
|
vt 0.437433 0.781307
|
||||||
|
vt 0.875034 0.781209
|
||||||
|
vt 0.656262 0.781209
|
||||||
|
vt 0.656262 0.703266
|
||||||
|
vt 0.875034 0.703266
|
||||||
|
vt 0.000015 0.781229
|
||||||
|
vt 0.218749 0.781229
|
||||||
|
vt 0.218749 0.703264
|
||||||
|
vt 0.000015 0.703264
|
||||||
|
vt 0.656221 0.781292
|
||||||
|
vt 0.437984 0.781292
|
||||||
|
vt 0.437984 0.703261
|
||||||
|
vt 0.656221 0.703261
|
||||||
|
vt 0.093709 0.999995
|
||||||
|
vt 0.062525 0.999995
|
||||||
|
vt 0.062525 0.937615
|
||||||
|
vt 0.093709 0.937615
|
||||||
|
vt 0.046865 1.000072
|
||||||
|
vt 0.062568 1.000072
|
||||||
|
vt 0.062568 0.937564
|
||||||
|
vt 0.046865 0.937564
|
||||||
|
vt 0.046890 0.999970
|
||||||
|
vt 0.031269 0.999970
|
||||||
|
vt 0.031269 0.937548
|
||||||
|
vt 0.046890 0.937548
|
||||||
|
vt 0.062515 0.921897
|
||||||
|
vt 0.031265 0.921897
|
||||||
|
vt 0.062515 0.937528
|
||||||
|
vt 0.031243 0.937542
|
||||||
|
vt 0.000021 0.937542
|
||||||
|
vt 0.000021 0.921918
|
||||||
|
vt 0.031243 0.921918
|
||||||
|
vt 0.437503 0.781322
|
||||||
|
vt 0.437503 0.703210
|
||||||
|
vt 0.218797 0.703210
|
||||||
|
vt 0.000024 1.000025
|
||||||
|
vt 0.031224 1.000025
|
||||||
|
vn 0.000000 0.000000 1.000000
|
||||||
|
vn -1.000000 -0.000000 0.000000
|
||||||
|
vn -0.000000 0.000000 -1.000000
|
||||||
|
vn 1.000000 0.000000 -0.000000
|
||||||
|
vn 0.000000 -1.000000 -0.000000
|
||||||
|
vn 0.000000 1.000000 -0.000000
|
||||||
|
usemtl None
|
||||||
|
s off
|
||||||
|
f 9/1/1 10/2/1 3/3/1 1/4/1
|
||||||
|
f 10/5/2 11/6/2 7/7/2 3/8/2
|
||||||
|
f 11/9/3 12/2/3 5/3/3 7/10/3
|
||||||
|
f 12/11/4 9/12/4 1/13/4 5/14/4
|
||||||
|
f 1/1/5 3/15/5 7/16/5 5/17/5
|
||||||
|
f 6/18/6 8/19/6 4/20/6 2/21/6
|
||||||
|
f 6/22/4 2/23/4 9/24/4 12/25/4
|
||||||
|
f 4/26/2 8/27/2 11/28/2 10/29/2
|
||||||
|
f 2/30/1 4/31/1 10/32/1 9/33/1
|
||||||
|
f 14/34/1 16/35/1 15/36/1 13/37/1
|
||||||
|
f 16/38/2 20/39/2 19/40/2 15/41/2
|
||||||
|
f 18/42/4 14/43/4 13/44/4 17/45/4
|
||||||
|
f 13/46/5 15/47/5 19/44/5 17/48/5
|
||||||
|
f 18/49/6 20/50/6 16/51/6 14/52/6
|
||||||
|
f 8/20/3 6/53/3 12/54/3 11/55/3
|
||||||
|
f 19/50/3 20/56/3 18/57/3 17/49/3
|
109
models/mcnodes_large_chest.obj
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
# Blender v2.74 (sub 0) OBJ File: 'mcnodes_chest.blend'
|
||||||
|
# www.blender.org
|
||||||
|
mtllib mcnodes_large_chest.mtl
|
||||||
|
o Large_chest
|
||||||
|
v 0.359174 -0.500965 0.417158
|
||||||
|
v 0.359174 0.358209 0.417158
|
||||||
|
v -1.359174 -0.500965 0.417158
|
||||||
|
v -1.359174 0.358209 0.417158
|
||||||
|
v 0.359174 -0.500965 -0.442016
|
||||||
|
v 0.359174 0.358209 -0.442016
|
||||||
|
v -1.359174 -0.500965 -0.442016
|
||||||
|
v -1.359174 0.358209 -0.442016
|
||||||
|
v 0.359174 0.088266 0.417158
|
||||||
|
v -1.359174 0.088266 0.417158
|
||||||
|
v -1.359174 0.088266 -0.442016
|
||||||
|
v 0.359174 0.088266 -0.442016
|
||||||
|
v -0.445298 -0.017606 -0.442085
|
||||||
|
v -0.445298 0.198285 -0.442085
|
||||||
|
v -0.554702 -0.017606 -0.442085
|
||||||
|
v -0.554702 0.198285 -0.442085
|
||||||
|
v -0.445298 -0.017606 -0.493645
|
||||||
|
v -0.445298 0.198285 -0.493645
|
||||||
|
v -0.554702 -0.017606 -0.493645
|
||||||
|
v -0.554702 0.198285 -0.493645
|
||||||
|
v 0.359174 0.358209 -0.442016
|
||||||
|
v -1.359174 0.358209 -0.442016
|
||||||
|
v -1.359174 0.088266 -0.442016
|
||||||
|
v 0.359174 0.088266 -0.442016
|
||||||
|
v -0.554702 0.198285 -0.493645
|
||||||
|
v -0.554702 -0.017606 -0.493645
|
||||||
|
v -0.445298 0.198285 -0.493645
|
||||||
|
v -0.445298 -0.017606 -0.493645
|
||||||
|
vt 0.453166 0.484501
|
||||||
|
vt 0.687480 0.484501
|
||||||
|
vt 0.687480 0.328376
|
||||||
|
vt 0.453166 0.328376
|
||||||
|
vt 0.343794 0.484501
|
||||||
|
vt 0.453118 0.484501
|
||||||
|
vt 0.453118 0.328283
|
||||||
|
vt 0.343794 0.328283
|
||||||
|
vt 0.343725 0.484630
|
||||||
|
vt 0.109388 0.484630
|
||||||
|
vt 0.109388 0.328156
|
||||||
|
vt 0.343725 0.328156
|
||||||
|
vt 0.109496 0.484357
|
||||||
|
vt 0.000021 0.484357
|
||||||
|
vt 0.000021 0.328231
|
||||||
|
vt 0.109496 0.328231
|
||||||
|
vt 0.343819 0.703215
|
||||||
|
vt 0.578160 0.703215
|
||||||
|
vt 0.578159 0.484495
|
||||||
|
vt 0.109435 0.781259
|
||||||
|
vt 0.343723 0.781259
|
||||||
|
vt 0.343723 1.000004
|
||||||
|
vt 0.109435 1.000005
|
||||||
|
vt 0.109431 0.781414
|
||||||
|
vt 0.000021 0.781414
|
||||||
|
vt 0.000021 0.703232
|
||||||
|
vt 0.109431 0.703232
|
||||||
|
vt 0.343794 0.781525
|
||||||
|
vt 0.453118 0.781525
|
||||||
|
vt 0.453118 0.703193
|
||||||
|
vt 0.453108 0.781255
|
||||||
|
vt 0.687504 0.781255
|
||||||
|
vt 0.687504 0.703246
|
||||||
|
vt 0.015639 1.000326
|
||||||
|
vt 0.031259 1.000326
|
||||||
|
vt 0.031259 0.937564
|
||||||
|
vt 0.015639 0.937564
|
||||||
|
vt 0.039067 1.000011
|
||||||
|
vt 0.046884 1.000011
|
||||||
|
vt 0.046884 0.937688
|
||||||
|
vt 0.039067 0.937688
|
||||||
|
vt 0.031237 1.000035
|
||||||
|
vt 0.031237 0.937569
|
||||||
|
vt 0.039080 0.937569
|
||||||
|
vt 0.031266 0.921901
|
||||||
|
vt 0.015618 0.921901
|
||||||
|
vt -0.000001 0.921931
|
||||||
|
vt 0.015607 0.937532
|
||||||
|
vt -0.000001 0.937532
|
||||||
|
vt 0.343775 0.781279
|
||||||
|
vt 0.015680 0.999982
|
||||||
|
vt -0.000033 0.999982
|
||||||
|
vt 0.015680 0.937507
|
||||||
|
vn 0.000000 -0.000000 1.000000
|
||||||
|
vn -1.000000 0.000000 0.000000
|
||||||
|
vn -0.000000 -0.000000 -1.000000
|
||||||
|
vn 1.000000 0.000000 -0.000000
|
||||||
|
vn 0.000000 -1.000000 0.000000
|
||||||
|
vn 0.000000 1.000000 -0.000000
|
||||||
|
usemtl None
|
||||||
|
s off
|
||||||
|
f 9/1/1 10/2/1 3/3/1 1/4/1
|
||||||
|
f 10/5/2 11/6/2 7/7/2 3/8/2
|
||||||
|
f 11/9/3 12/10/3 5/11/3 7/12/3
|
||||||
|
f 12/13/4 9/14/4 1/15/4 5/16/4
|
||||||
|
f 1/17/5 3/18/5 7/19/5 5/5/5
|
||||||
|
f 6/20/6 8/21/6 4/22/6 2/23/6
|
||||||
|
f 6/24/4 2/25/4 9/26/4 12/27/4
|
||||||
|
f 4/28/2 8/29/2 11/30/2 10/17/2
|
||||||
|
f 2/31/1 4/32/1 10/33/1 9/30/1
|
||||||
|
f 14/34/1 16/35/1 15/36/1 13/37/1
|
||||||
|
f 16/38/2 20/39/2 19/40/2 15/41/2
|
||||||
|
f 18/38/4 14/42/4 13/43/4 17/44/4
|
||||||
|
f 13/37/5 15/36/5 19/45/5 17/46/5
|
||||||
|
f 18/47/6 20/46/6 16/48/6 14/49/6
|
||||||
|
f 22/50/3 21/20/3 24/27/3 23/17/3
|
||||||
|
f 25/51/3 27/52/3 28/49/3 26/53/3
|
113
models/mcnodes_stair.obj
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
# Blender v2.72 (sub 0) OBJ File: ''
|
||||||
|
# www.blender.org
|
||||||
|
mtllib stairs.mtl
|
||||||
|
o stairs_top
|
||||||
|
v -0.500000 0.000000 -0.500000
|
||||||
|
v -0.500000 0.000000 0.000000
|
||||||
|
v 0.500000 0.000000 0.000000
|
||||||
|
v 0.500000 0.000000 -0.500000
|
||||||
|
v -0.500000 0.500000 0.000000
|
||||||
|
v 0.500000 0.500000 0.000000
|
||||||
|
v -0.500000 0.500000 0.500000
|
||||||
|
v 0.500000 0.500000 0.500000
|
||||||
|
vt 0.000000 0.000000
|
||||||
|
vt 1.000000 0.000000
|
||||||
|
vt 1.000000 0.500000
|
||||||
|
vt 0.000000 0.500000
|
||||||
|
vt 1.000000 1.000000
|
||||||
|
vt 0.000000 1.000000
|
||||||
|
vn 0.000000 1.000000 0.000000
|
||||||
|
g stairs_top
|
||||||
|
usemtl None
|
||||||
|
s off
|
||||||
|
f 4/1/1 1/2/1 2/3/1 3/4/1
|
||||||
|
f 7/5/1 8/6/1 6/4/1 5/3/1
|
||||||
|
o stairs_bottom
|
||||||
|
v -0.500000 -0.500000 -0.500000
|
||||||
|
v 0.500000 -0.500000 -0.500000
|
||||||
|
v -0.500000 -0.500000 0.500000
|
||||||
|
v 0.500000 -0.500000 0.500000
|
||||||
|
vt 1.000000 0.000000
|
||||||
|
vt 1.000000 1.000000
|
||||||
|
vt 0.000000 1.000000
|
||||||
|
vt 0.000000 0.000000
|
||||||
|
vn 0.000000 -1.000000 -0.000000
|
||||||
|
g stairs_bottom
|
||||||
|
usemtl None
|
||||||
|
s off
|
||||||
|
f 11/7/2 9/8/2 10/9/2 12/10/2
|
||||||
|
o stairs_right
|
||||||
|
v -0.500000 0.000000 -0.500000
|
||||||
|
v -0.500000 -0.500000 -0.500000
|
||||||
|
v -0.500000 0.000000 0.000000
|
||||||
|
v -0.500000 -0.500000 0.500000
|
||||||
|
v -0.500000 0.500000 0.000000
|
||||||
|
v -0.500000 0.500000 0.500000
|
||||||
|
vt 0.000000 0.500000
|
||||||
|
vt 0.000000 0.000000
|
||||||
|
vt 0.500000 0.500000
|
||||||
|
vt 1.000000 1.000000
|
||||||
|
vt 0.500000 1.000000
|
||||||
|
vt 1.000000 0.000000
|
||||||
|
vn -1.000000 0.000000 0.000000
|
||||||
|
g stairs_right
|
||||||
|
usemtl None
|
||||||
|
s off
|
||||||
|
f 13/11/3 14/12/3 15/13/3
|
||||||
|
f 15/13/3 18/14/3 17/15/3
|
||||||
|
f 14/12/3 16/16/3 18/14/3
|
||||||
|
o stairs_left
|
||||||
|
v 0.500000 0.000000 0.000000
|
||||||
|
v 0.500000 -0.500000 -0.500000
|
||||||
|
v 0.500000 0.000000 -0.500000
|
||||||
|
v 0.500000 -0.500000 0.500000
|
||||||
|
v 0.500000 0.500000 0.000000
|
||||||
|
v 0.500000 0.500000 0.500000
|
||||||
|
vt 0.500000 0.500000
|
||||||
|
vt 1.000000 0.000000
|
||||||
|
vt 1.000000 0.500000
|
||||||
|
vt 0.500000 1.000000
|
||||||
|
vt 0.000000 1.000000
|
||||||
|
vt 0.000000 0.000000
|
||||||
|
vn 1.000000 0.000000 0.000000
|
||||||
|
g stairs_left
|
||||||
|
usemtl None
|
||||||
|
s off
|
||||||
|
f 19/17/4 20/18/4 21/19/4
|
||||||
|
f 19/17/4 23/20/4 24/21/4
|
||||||
|
f 20/18/4 24/21/4 22/22/4
|
||||||
|
o stairs_back
|
||||||
|
v -0.500000 -0.500000 0.500000
|
||||||
|
v 0.500000 -0.500000 0.500000
|
||||||
|
v -0.500000 0.500000 0.500000
|
||||||
|
v 0.500000 0.500000 0.500000
|
||||||
|
vt 1.000000 0.000000
|
||||||
|
vt 1.000000 1.000000
|
||||||
|
vt 0.000000 1.000000
|
||||||
|
vt 0.000000 0.000000
|
||||||
|
vn 0.000000 -0.000000 1.000000
|
||||||
|
g stairs_back
|
||||||
|
usemtl None
|
||||||
|
s off
|
||||||
|
f 26/23/5 28/24/5 27/25/5 25/26/5
|
||||||
|
o stairs_front
|
||||||
|
v -0.500000 0.000000 -0.500000
|
||||||
|
v -0.500000 -0.500000 -0.500000
|
||||||
|
v -0.500000 0.000000 0.000000
|
||||||
|
v 0.500000 0.000000 0.000000
|
||||||
|
v 0.500000 -0.500000 -0.500000
|
||||||
|
v 0.500000 0.000000 -0.500000
|
||||||
|
v -0.500000 0.500000 0.000000
|
||||||
|
v 0.500000 0.500000 0.000000
|
||||||
|
vt 1.000000 0.000000
|
||||||
|
vt 1.000000 0.500000
|
||||||
|
vt 0.000000 0.500000
|
||||||
|
vt 0.000000 0.000000
|
||||||
|
vt 1.000000 1.000000
|
||||||
|
vt 0.000000 1.000000
|
||||||
|
vn 0.000000 0.000000 -1.000000
|
||||||
|
g stairs_front
|
||||||
|
usemtl None
|
||||||
|
s off
|
||||||
|
f 30/27/6 29/28/6 34/29/6 33/30/6
|
||||||
|
f 31/28/6 35/31/6 36/32/6 32/29/6
|
422
nodes.lua
Normal file
@ -0,0 +1,422 @@
|
|||||||
|
ChangeChest = '1'
|
||||||
|
LargeChest = '1'
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:quartz_block", {
|
||||||
|
description = "Quartz block",
|
||||||
|
tiles = {"mcnodes_quartz_block_top.png", "mcnodes_quartz_block_bottom.png", "mcnodes_quartz_block.png", "mcnodes_quartz_block.png", "mcnodes_quartz_block.png", "mcnodes_quartz_block.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:quartz_block',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:quartz_block_chiseled", {
|
||||||
|
description = "Chiseled quartz block",
|
||||||
|
tiles = {"mcnodes_quartz_block_chiseled_top.png", "mcnodes_quartz_block_chiseled_top.png", "mcnodes_quartz_block_chiseled.png", "mcnodes_quartz_block_chiseled.png", "mcnodes_quartz_block_chiseled.png", "mcnodes_quartz_block_chiseled.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:quartz_block_chiseled',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:quartz_block_pillar", {
|
||||||
|
description = "Pillar quartz block",
|
||||||
|
tiles = {"mcnodes_quartz_block_pillar_top.png", "mcnodes_quartz_block_pillar_top.png", "mcnodes_quartz_block_pillar.png", "mcnodes_quartz_block_pillar.png", "mcnodes_quartz_block_pillar.png", "mcnodes_quartz_block_pillar.png"},
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
is_ground_content = false,
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:quartz_block_pillar',
|
||||||
|
on_place = minetest.rotate_node
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:quartz_ore", {
|
||||||
|
description = "Quartz ore",
|
||||||
|
tiles = {"mcnodes_quartz_ore.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:quartz_item',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:diorite", {
|
||||||
|
description = "Diorite block",
|
||||||
|
tiles = {"mcnodes_diorite.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:diorite',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:smooth_diorite", {
|
||||||
|
description = "Smooth diorite block",
|
||||||
|
tiles = {"mcnodes_diorite_smooth.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:smooth_diorite',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:granite", {
|
||||||
|
description = "Granite block",
|
||||||
|
tiles = {"mcnodes_granite.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:granite',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:smooth_granite", {
|
||||||
|
description = "Smooth granite block",
|
||||||
|
tiles = {"mcnodes_granite_smooth.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:smooth_granite',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:andesite", {
|
||||||
|
description = "Andesite block",
|
||||||
|
tiles = {"mcnodes_andesite.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:andesite',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:smooth_andesite", {
|
||||||
|
description = "Smooth andesite block",
|
||||||
|
tiles = {"mcnodes_andesite_smooth.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:smooth_andesite',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:blue_brick", {
|
||||||
|
description = "Blue brick",
|
||||||
|
tiles = {"mcnodes_blue_brick.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:blue_brick',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:yellow_brick", {
|
||||||
|
description = "Yellow brick",
|
||||||
|
tiles = {"mcnodes_yellow_brick.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:yellow_brick',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:grey_brick", {
|
||||||
|
description = "Grey brick",
|
||||||
|
tiles = {"mcnodes_grey_brick.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:grey_brick',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:smooth_sandstone", {
|
||||||
|
description = "Smooth sandstone",
|
||||||
|
tiles = {"mcnodes_sandstone_top.png", "mcnodes_sandstone_bottom.png", "mcnodes_smooth_sandstone.png", "mcnodes_smooth_sandstone.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:smooth_sandstone',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:chiseled_sandstone", {
|
||||||
|
description = "Chiseled sandstone",
|
||||||
|
tiles = {"mcnodes_sandstone_top.png", "mcnodes_sandstone_bottom.png", "mcnodes_chiseled_sandstone.png", "mcnodes_chiseled_sandstone.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:chiseled_sandstone',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:red_sand", {
|
||||||
|
description = "Red sand",
|
||||||
|
tiles = {"default_sand.png^[colorize:#983800:200"},
|
||||||
|
groups = {crumbly = 3, falling_node = 1, sand = 1},
|
||||||
|
drop = 'mcnodes:red_sand',
|
||||||
|
sounds = default.node_sound_sand_defaults(),
|
||||||
|
alpha = 160,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:red_sandstone", {
|
||||||
|
description = "Red sandstone",
|
||||||
|
tiles = {"mcnodes_sandstone_top.png^[colorize:#983800:200", "mcnodes_sandstone_bottom.png^[colorize:#983800:200", "default_sandstone.png^[colorize:#983800:200", "default_sandstone.png^[colorize:#983800:200"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:red_sandstone',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:smooth_red_sandstone", {
|
||||||
|
description = "Smooth red sandstone",
|
||||||
|
tiles = {"mcnodes_sandstone_top.png^[colorize:#983800:200", "mcnodes_sandstone_bottom.png^[colorize:#983800:200", "mcnodes_smooth_sandstone.png^[colorize:#983800:200", "mcnodes_smooth_sandstone.png^[colorize:#983800:200"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:smooth_red_sandstone',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:chiseled_red_sandstone", {
|
||||||
|
description = "Chiseled red sandstone",
|
||||||
|
tiles = {"mcnodes_sandstone_top.png^[colorize:#983800:200", "mcnodes_sandstone_bottom.png^[colorize:#983800:200", "mcnodes_smooth_sandstone.png^[colorize:#983800:200^mcnodes_red_chiseled_sandstone.png", "mcnodes_smooth_sandstone.png^[colorize:#983800:200^mcnodes_red_chiseled_sandstone.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:chiseled_red_sandstone',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:hardened_clay", {
|
||||||
|
description = "Hardened clay",
|
||||||
|
tiles = {"mcnodes_hardened_clay.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:hardened_clay',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:black_hardened_clay", {
|
||||||
|
description = "Black hardened clay",
|
||||||
|
tiles = {"mcnodes_black_hardened_clay.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:black_hardened_clay',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:blue_hardened_clay", {
|
||||||
|
description = "Blue hardened clay",
|
||||||
|
tiles = {"mcnodes_blue_hardened_clay.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:blue_hardened_clay',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:brown_hardened_clay", {
|
||||||
|
description = "Brown hardened clay",
|
||||||
|
tiles = {"mcnodes_brown_hardened_clay.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:brown_hardened_clay',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:cyan_hardened_clay", {
|
||||||
|
description = "Cyan hardened clay",
|
||||||
|
tiles = {"mcnodes_cyan_hardened_clay.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:cyan_hardened_clay',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:grey_hardened_clay", {
|
||||||
|
description = "Grey hardened clay",
|
||||||
|
tiles = {"mcnodes_grey_hardened_clay.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:grey_hardened_clay',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:green_hardened_clay", {
|
||||||
|
description = "Green hardened clay",
|
||||||
|
tiles = {"mcnodes_green_hardened_clay.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:green_hardened_clay',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:lime_hardened_clay", {
|
||||||
|
description = "Lime hardened clay",
|
||||||
|
tiles = {"mcnodes_lime_hardened_clay.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:lime_hardened_clay',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:magenta_hardened_clay", {
|
||||||
|
description = "Magenta hardened clay",
|
||||||
|
tiles = {"mcnodes_magenta_hardened_clay.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:magenta_hardened_clay',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:orange_hardened_clay", {
|
||||||
|
description = "Orange hardened clay",
|
||||||
|
tiles = {"mcnodes_orange_hardened_clay.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:orange_hardened_clay',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:pink_hardened_clay", {
|
||||||
|
description = "Pink hardened clay",
|
||||||
|
tiles = {"mcnodes_pink_hardened_clay.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:pink_hardened_clay',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:red_hardened_clay", {
|
||||||
|
description = "Red hardened clay",
|
||||||
|
tiles = {"mcnodes_red_hardened_clay.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:red_hardened_clay',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:white_hardened_clay", {
|
||||||
|
description = "White hardened clay",
|
||||||
|
tiles = {"mcnodes_white_hardened_clay.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:white_hardened_clay',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:yellow_hardened_clay", {
|
||||||
|
description = "Yellow hardened clay",
|
||||||
|
tiles = {"mcnodes_yellow_hardened_clay.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:yellow_hardened_clay',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:black_carpet", {
|
||||||
|
description = "Black carpet",
|
||||||
|
drawtype = "nodebox",
|
||||||
|
tiles = {"wool_black.png"},
|
||||||
|
paramtype = "light",
|
||||||
|
is_ground_content = false,
|
||||||
|
sunlight_propagates = true,
|
||||||
|
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=3,wool=1},
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:blue_carpet", {
|
||||||
|
description = "Blue carpet",
|
||||||
|
drawtype = "nodebox",
|
||||||
|
tiles = {"wool_blue.png"},
|
||||||
|
paramtype = "light",
|
||||||
|
is_ground_content = false,
|
||||||
|
sunlight_propagates = true,
|
||||||
|
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=3,wool=1},
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:brown_carpet", {
|
||||||
|
description = "Brown carpet",
|
||||||
|
drawtype = "nodebox",
|
||||||
|
tiles = {"wool_brown.png"},
|
||||||
|
paramtype = "light",
|
||||||
|
is_ground_content = false,
|
||||||
|
sunlight_propagates = true,
|
||||||
|
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=3,wool=1},
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:cyan_carpet", {
|
||||||
|
description = "Cyan carpet",
|
||||||
|
drawtype = "nodebox",
|
||||||
|
tiles = {"wool_cyan.png"},
|
||||||
|
paramtype = "light",
|
||||||
|
is_ground_content = false,
|
||||||
|
sunlight_propagates = true,
|
||||||
|
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=3,wool=1},
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:green_carpet", {
|
||||||
|
description = "Green carpet",
|
||||||
|
drawtype = "nodebox",
|
||||||
|
tiles = {"wool_green.png"},
|
||||||
|
paramtype = "light",
|
||||||
|
is_ground_content = false,
|
||||||
|
sunlight_propagates = true,
|
||||||
|
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=3,wool=1},
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:grey_carpet", {
|
||||||
|
description = "Grey carpet",
|
||||||
|
drawtype = "nodebox",
|
||||||
|
tiles = {"wool_grey.png"},
|
||||||
|
paramtype = "light",
|
||||||
|
is_ground_content = false,
|
||||||
|
sunlight_propagates = true,
|
||||||
|
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=3,wool=1},
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:magenta_carpet", {
|
||||||
|
description = "Magenta carpet",
|
||||||
|
drawtype = "nodebox",
|
||||||
|
tiles = {"wool_magenta.png"},
|
||||||
|
paramtype = "light",
|
||||||
|
is_ground_content = false,
|
||||||
|
sunlight_propagates = true,
|
||||||
|
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=3,wool=1},
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:orange_carpet", {
|
||||||
|
description = "Orange carpet",
|
||||||
|
drawtype = "nodebox",
|
||||||
|
tiles = {"wool_orange.png"},
|
||||||
|
paramtype = "light",
|
||||||
|
is_ground_content = false,
|
||||||
|
sunlight_propagates = true,
|
||||||
|
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=3,wool=1},
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:red_carpet", {
|
||||||
|
description = "Red carpet",
|
||||||
|
drawtype = "nodebox",
|
||||||
|
tiles = {"wool_red.png"},
|
||||||
|
paramtype = "light",
|
||||||
|
is_ground_content = false,
|
||||||
|
sunlight_propagates = true,
|
||||||
|
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=3,wool=1},
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:white_carpet", {
|
||||||
|
description = "White carpet",
|
||||||
|
drawtype = "nodebox",
|
||||||
|
tiles = {"wool_white.png"},
|
||||||
|
paramtype = "light",
|
||||||
|
is_ground_content = false,
|
||||||
|
sunlight_propagates = true,
|
||||||
|
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=3,wool=1},
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:yellow_carpet", {
|
||||||
|
description = "Yellow carpet",
|
||||||
|
drawtype = "nodebox",
|
||||||
|
tiles = {"wool_yellow.png"},
|
||||||
|
paramtype = "light",
|
||||||
|
is_ground_content = false,
|
||||||
|
sunlight_propagates = true,
|
||||||
|
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=3,wool=1},
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:lapis_lazuli_ore", {
|
||||||
|
description = "Lapis lazuli ore",
|
||||||
|
tiles = {"default_stone.png^mcnodes_lapis_ore.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'dye:blue 3',
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:lapis_lazuli_block", {
|
||||||
|
description = "Lapis lazuli block",
|
||||||
|
tiles = {"mcnodes_lapis_block.png"},
|
||||||
|
groups = {cracky = 3},
|
||||||
|
drop = 'mcnodes:lapis_lazuli_block',
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:emerald_ore", {
|
||||||
|
description = "Emerald ore",
|
||||||
|
tiles = {"default_stone.png^mcnodes_emerald_ore.png"},
|
||||||
|
groups = {cracky = 1},
|
||||||
|
drop = 'mcnodes:emerald_item',
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_node("mcnodes:emerald_block", {
|
||||||
|
description = "Emerald block",
|
||||||
|
tiles = {"mcnodes_emerald_block.png"},
|
||||||
|
groups = {cracky = 1},
|
||||||
|
drop = 'mcnodes:emerald_block',
|
||||||
|
})
|
12
register_biome.lua
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
minetest.register_biome({
|
||||||
|
name = "red desert",
|
||||||
|
node_top = "mcnodes:red_sand",
|
||||||
|
depth_top = 3,
|
||||||
|
node_filler = "mcnodes:red_sand",
|
||||||
|
depth_filler = 1,
|
||||||
|
node_stone = "mcnodes:red_sandstone",
|
||||||
|
y_min = 5,
|
||||||
|
y_max = 31000,
|
||||||
|
heat_point = 95,
|
||||||
|
humidity_point = 30,
|
||||||
|
})
|
78
register_ores.lua
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
minetest.register_ore({
|
||||||
|
ore_type = "scatter",
|
||||||
|
ore = "mcnodes:emerald_ore",
|
||||||
|
wherein = "default:stone",
|
||||||
|
clust_scarcity = 18 * 18 * 18,
|
||||||
|
clust_num_ores = 3,
|
||||||
|
clust_size = 2,
|
||||||
|
y_min = -31000,
|
||||||
|
y_max = -80,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_ore({
|
||||||
|
ore_type = "scatter",
|
||||||
|
ore = "mcnodes:lapis_lazuli_ore",
|
||||||
|
wherein = "default:stone",
|
||||||
|
clust_scarcity = 13 * 13 * 13,
|
||||||
|
clust_num_ores = 5,
|
||||||
|
clust_size = 3,
|
||||||
|
y_min = -31000,
|
||||||
|
y_max = -70,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_ore({
|
||||||
|
ore_type = "blob",
|
||||||
|
ore = "mcnodes:diorite",
|
||||||
|
wherein = {"default:stone"},
|
||||||
|
clust_scarcity = 16 * 16 * 16,
|
||||||
|
clust_size = 5,
|
||||||
|
y_min = -31000,
|
||||||
|
y_max = 31000,
|
||||||
|
noise_threshold = 0.0,
|
||||||
|
noise_params = {
|
||||||
|
offset = 0.5,
|
||||||
|
scale = 0.2,
|
||||||
|
spread = {x = 5, y = 5, z = 5},
|
||||||
|
seed = 766,
|
||||||
|
octaves = 1,
|
||||||
|
persist = 0.0
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_ore({
|
||||||
|
ore_type = "blob",
|
||||||
|
ore = "mcnodes:andesite",
|
||||||
|
wherein = {"default:stone"},
|
||||||
|
clust_scarcity = 16 * 16 * 16,
|
||||||
|
clust_size = 5,
|
||||||
|
y_min = -31000,
|
||||||
|
y_max = 31000,
|
||||||
|
noise_threshold = 0.0,
|
||||||
|
noise_params = {
|
||||||
|
offset = 0.5,
|
||||||
|
scale = 0.2,
|
||||||
|
spread = {x = 5, y = 5, z = 5},
|
||||||
|
seed = 766,
|
||||||
|
octaves = 1,
|
||||||
|
persist = 0.0
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_ore({
|
||||||
|
ore_type = "blob",
|
||||||
|
ore = "mcnodes:granite",
|
||||||
|
wherein = {"default:stone"},
|
||||||
|
clust_scarcity = 16 * 16 * 16,
|
||||||
|
clust_size = 5,
|
||||||
|
y_min = -31000,
|
||||||
|
y_max = 31000,
|
||||||
|
noise_threshold = 0.0,
|
||||||
|
noise_params = {
|
||||||
|
offset = 0.5,
|
||||||
|
scale = 0.2,
|
||||||
|
spread = {x = 5, y = 5, z = 5},
|
||||||
|
seed = 766,
|
||||||
|
octaves = 1,
|
||||||
|
persist = 0.0
|
||||||
|
},
|
||||||
|
})
|
63
replaced_nodes.lua
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
if ChangeChest == '1' then
|
||||||
|
local chest_formspec =
|
||||||
|
"size[8,9]" ..
|
||||||
|
default.gui_bg ..
|
||||||
|
default.gui_bg_img ..
|
||||||
|
default.gui_slots ..
|
||||||
|
"list[current_name;main;0,0.3;8,4;]" ..
|
||||||
|
"list[current_player;main;0,4.85;8,1;]" ..
|
||||||
|
"list[current_player;main;0,6.08;8,3;8]" ..
|
||||||
|
"listring[current_name;main]" ..
|
||||||
|
"listring[current_player;main]" ..
|
||||||
|
default.get_hotbar_bg(0,4.85)
|
||||||
|
|
||||||
|
minetest.register_node(":default:chest", {
|
||||||
|
description = "Chest",
|
||||||
|
drawtype = "mesh",
|
||||||
|
mesh = "mcnodes_default_chest.obj",
|
||||||
|
tiles = {"mcnodes_default_chest.png"},
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
groups = {choppy = 2, oddly_breakable_by_hand = 2},
|
||||||
|
legacy_facedir_simple = true,
|
||||||
|
is_ground_content = false,
|
||||||
|
sounds = default.node_sound_wood_defaults(),
|
||||||
|
|
||||||
|
selection_box = {type = "fixed", fixed = {0.43, 0.357, 0.457, -0.43, -0.499, -0.403}},
|
||||||
|
|
||||||
|
on_construct = function(pos)
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
meta:set_string("formspec", chest_formspec)
|
||||||
|
meta:set_string("infotext", "Chest")
|
||||||
|
local inv = meta:get_inventory()
|
||||||
|
inv:set_size("main", 8*4)
|
||||||
|
end,
|
||||||
|
can_dig = function(pos,player)
|
||||||
|
local meta = minetest.get_meta(pos);
|
||||||
|
local inv = meta:get_inventory()
|
||||||
|
return inv:is_empty("main")
|
||||||
|
end,
|
||||||
|
on_metadata_inventory_move = function(pos, from_list, from_index,
|
||||||
|
to_list, to_index, count, player)
|
||||||
|
minetest.log("action", player:get_player_name() ..
|
||||||
|
" moves stuff in chest at " .. minetest.pos_to_string(pos))
|
||||||
|
end,
|
||||||
|
on_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||||
|
minetest.log("action", player:get_player_name() ..
|
||||||
|
" moves " .. stack:get_name() ..
|
||||||
|
" to chest at " .. minetest.pos_to_string(pos))
|
||||||
|
end,
|
||||||
|
on_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||||
|
minetest.log("action", player:get_player_name() ..
|
||||||
|
" takes " .. stack:get_name() ..
|
||||||
|
" from chest at " .. minetest.pos_to_string(pos))
|
||||||
|
end,
|
||||||
|
on_blast = function(pos)
|
||||||
|
local drops = {}
|
||||||
|
default.get_inventory_drops(pos, "main", drops)
|
||||||
|
drops[#drops+1] = "default:chest"
|
||||||
|
minetest.remove_node(pos)
|
||||||
|
return drops
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end
|
7
stairs.lua
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
mcnodes.register_stair_and_slab("quartz", "mcnodes:quartz_block", {cracky = 3}, {"mcnodes_quartz_block.png"}, "Quartz stair", "Quartz slab", default.node_sound_stone_defaults())
|
||||||
|
mcnodes.register_stair_and_slab("blue_brick", "mcnodes:blue_brick", {cracky = 3}, {"mcnodes_blue_brick.png"}, "Blue brick stair", "Blue brick slab", default.node_sound_stone_defaults())
|
||||||
|
mcnodes.register_stair_and_slab("yellow_brick", "mcnodes:yellow_brick", {cracky = 3}, {"mcnodes_yellow_brick.png"}, "Yellow brick stair", "Yellow brick slab", default.node_sound_stone_defaults())
|
||||||
|
mcnodes.register_stair_and_slab("grey_brick", "mcnodes:grey_brick", {cracky = 3}, {"mcnodes_grey_brick.png"}, "Grey brick stair", "Grey brick slab", default.node_sound_stone_defaults())
|
||||||
|
mcnodes.register_stair_and_slab("smooth_sandstone_brick", "mcnodes:smooth_sandstone", {cracky = 3}, {"mcnodes_smooth_sandstone.png"}, "Smooth sandstone stair", "Smooth sandstone slab", default.node_sound_stone_defaults())
|
||||||
|
mcnodes.register_stair_and_slab("red_sandstone", "mcnodes:red_sandstone", {cracky = 3}, {"default_sandstone.png^[colorize:#983800:200"}, "Red sandstone stair", "Red sandstone slab", default.node_sound_stone_defaults())
|
||||||
|
mcnodes.register_stair_and_slab("red_smooth_sandstone", "mcnodes:red_smooth_sandstone", {cracky = 3}, {"mcnodes_smooth_sandstone.png^[colorize:#983800:200"}, "Red smooth sandstone stair", "Red smooth sandstone slab", default.node_sound_stone_defaults())
|
226
stairs_functions.lua
Normal file
@ -0,0 +1,226 @@
|
|||||||
|
mcnodes = {}
|
||||||
|
|
||||||
|
function mcnodes.register_stair(subname, recipeitem, groups, images, description, sounds)
|
||||||
|
groups.stair = 1
|
||||||
|
minetest.register_node(":mcnodes:stair_" .. subname, {
|
||||||
|
description = description,
|
||||||
|
drawtype = "mesh",
|
||||||
|
mesh = "mcnodes_stair.obj",
|
||||||
|
tiles = images,
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
is_ground_content = false,
|
||||||
|
groups = groups,
|
||||||
|
sounds = sounds,
|
||||||
|
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {
|
||||||
|
{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
|
||||||
|
{-0.5, 0, 0, 0.5, 0.5, 0.5},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
collision_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {
|
||||||
|
{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
|
||||||
|
{-0.5, 0, 0, 0.5, 0.5, 0.5},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
on_place = function(itemstack, placer, pointed_thing)
|
||||||
|
if pointed_thing.type ~= "node" then
|
||||||
|
return itemstack
|
||||||
|
end
|
||||||
|
|
||||||
|
local p0 = pointed_thing.under
|
||||||
|
local p1 = pointed_thing.above
|
||||||
|
local param2 = 0
|
||||||
|
|
||||||
|
local placer_pos = placer:getpos()
|
||||||
|
if placer_pos then
|
||||||
|
local dir = {
|
||||||
|
x = p1.x - placer_pos.x,
|
||||||
|
y = p1.y - placer_pos.y,
|
||||||
|
z = p1.z - placer_pos.z
|
||||||
|
}
|
||||||
|
param2 = minetest.dir_to_facedir(dir)
|
||||||
|
end
|
||||||
|
|
||||||
|
if p0.y - 1 == p1.y then
|
||||||
|
param2 = param2 + 20
|
||||||
|
if param2 == 21 then
|
||||||
|
param2 = 23
|
||||||
|
elseif param2 == 23 then
|
||||||
|
param2 = 21
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return minetest.item_place(itemstack, placer, pointed_thing, param2)
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
if replace then
|
||||||
|
minetest.register_node(":mcnodes:stair_" .. subname .. "upside_down", {
|
||||||
|
replace_name = "mcnodes:stair_" .. subname,
|
||||||
|
groups = {slabs_replace = 1},
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:stair_' .. subname .. ' 6',
|
||||||
|
recipe = {
|
||||||
|
{recipeitem, "", ""},
|
||||||
|
{recipeitem, recipeitem, ""},
|
||||||
|
{recipeitem, recipeitem, recipeitem},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:stair_' .. subname .. ' 6',
|
||||||
|
recipe = {
|
||||||
|
{"", "", recipeitem},
|
||||||
|
{"", recipeitem, recipeitem},
|
||||||
|
{recipeitem, recipeitem, recipeitem},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
function mcnodes.register_slab(subname, recipeitem, groups, images, description, sounds)
|
||||||
|
groups.slab = 1
|
||||||
|
minetest.register_node(":mcnodes:slab_" .. subname, {
|
||||||
|
description = description,
|
||||||
|
drawtype = "nodebox",
|
||||||
|
tiles = images,
|
||||||
|
paramtype = "light",
|
||||||
|
paramtype2 = "facedir",
|
||||||
|
is_ground_content = false,
|
||||||
|
groups = groups,
|
||||||
|
sounds = sounds,
|
||||||
|
node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
|
||||||
|
},
|
||||||
|
on_place = function(itemstack, placer, pointed_thing)
|
||||||
|
if pointed_thing.type ~= "node" then
|
||||||
|
return itemstack
|
||||||
|
end
|
||||||
|
|
||||||
|
-- If it's being placed on an another similar one, replace it with
|
||||||
|
-- a full block
|
||||||
|
local slabpos = nil
|
||||||
|
local slabnode = nil
|
||||||
|
local p0 = pointed_thing.under
|
||||||
|
local p1 = pointed_thing.above
|
||||||
|
local n0 = minetest.get_node(p0)
|
||||||
|
local n1 = minetest.get_node(p1)
|
||||||
|
local param2 = 0
|
||||||
|
|
||||||
|
local n0_is_upside_down = (n0.name == "mcnodes:slab_" .. subname and
|
||||||
|
n0.param2 >= 20)
|
||||||
|
|
||||||
|
if n0.name == "mcnodes:slab_" .. subname and not n0_is_upside_down and
|
||||||
|
p0.y + 1 == p1.y then
|
||||||
|
slabpos = p0
|
||||||
|
slabnode = n0
|
||||||
|
elseif n1.name == "mcnodes:slab_" .. subname then
|
||||||
|
slabpos = p1
|
||||||
|
slabnode = n1
|
||||||
|
end
|
||||||
|
if slabpos then
|
||||||
|
-- Remove the slab at slabpos
|
||||||
|
minetest.remove_node(slabpos)
|
||||||
|
-- Make a fake stack of a single item and try to place it
|
||||||
|
local fakestack = ItemStack(recipeitem)
|
||||||
|
fakestack:set_count(itemstack:get_count())
|
||||||
|
|
||||||
|
pointed_thing.above = slabpos
|
||||||
|
local success
|
||||||
|
fakestack, success = minetest.item_place(fakestack, placer,
|
||||||
|
pointed_thing)
|
||||||
|
-- If the item was taken from the fake stack, decrement original
|
||||||
|
if success then
|
||||||
|
itemstack:set_count(fakestack:get_count())
|
||||||
|
-- Else put old node back
|
||||||
|
else
|
||||||
|
minetest.set_node(slabpos, slabnode)
|
||||||
|
end
|
||||||
|
return itemstack
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Upside down slabs
|
||||||
|
if p0.y - 1 == p1.y then
|
||||||
|
-- Turn into full block if pointing at a existing slab
|
||||||
|
if n0_is_upside_down then
|
||||||
|
-- Remove the slab at the position of the slab
|
||||||
|
minetest.remove_node(p0)
|
||||||
|
-- Make a fake stack of a single item and try to place it
|
||||||
|
local fakestack = ItemStack(recipeitem)
|
||||||
|
fakestack:set_count(itemstack:get_count())
|
||||||
|
|
||||||
|
pointed_thing.above = p0
|
||||||
|
local success
|
||||||
|
fakestack, success = minetest.item_place(fakestack, placer,
|
||||||
|
pointed_thing)
|
||||||
|
-- If the item was taken from the fake stack, decrement original
|
||||||
|
if success then
|
||||||
|
itemstack:set_count(fakestack:get_count())
|
||||||
|
-- Else put old node back
|
||||||
|
else
|
||||||
|
minetest.set_node(p0, n0)
|
||||||
|
end
|
||||||
|
return itemstack
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Place upside down slab
|
||||||
|
param2 = 20
|
||||||
|
end
|
||||||
|
|
||||||
|
-- If pointing at the side of a upside down slab
|
||||||
|
if n0_is_upside_down and p0.y + 1 ~= p1.y then
|
||||||
|
param2 = 20
|
||||||
|
end
|
||||||
|
|
||||||
|
return minetest.item_place(itemstack, placer, pointed_thing, param2)
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- for replace ABM
|
||||||
|
if replace then
|
||||||
|
minetest.register_node(":mcnodes:slab_" .. subname .. "upside_down", {
|
||||||
|
replace_name = "mcnodes:slab_".. subname,
|
||||||
|
groups = {slabs_replace = 1},
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'mcnodes:slab_' .. subname .. ' 6',
|
||||||
|
recipe = {
|
||||||
|
{recipeitem, recipeitem, recipeitem},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
if replace then
|
||||||
|
minetest.register_abm({
|
||||||
|
nodenames = {"group:slabs_replace"},
|
||||||
|
interval = 16,
|
||||||
|
chance = 1,
|
||||||
|
action = function(pos, node)
|
||||||
|
node.name = minetest.registered_nodes[node.name].replace_name
|
||||||
|
node.param2 = node.param2 + 20
|
||||||
|
if node.param2 == 21 then
|
||||||
|
node.param2 = 23
|
||||||
|
elseif node.param2 == 23 then
|
||||||
|
node.param2 = 21
|
||||||
|
end
|
||||||
|
minetest.set_node(pos, node)
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
function mcnodes.register_stair_and_slab(subname, recipeitem, groups, images, desc_stair, desc_slab, sounds)
|
||||||
|
mcnodes.register_stair(subname, recipeitem, groups, images, desc_stair, sounds)
|
||||||
|
mcnodes.register_slab(subname, recipeitem, groups, images, desc_slab, sounds)
|
||||||
|
end
|
BIN
textures/mcnodes_andesite.png
Normal file
After Width: | Height: | Size: 851 B |
BIN
textures/mcnodes_andesite_smooth.png
Normal file
After Width: | Height: | Size: 849 B |
BIN
textures/mcnodes_anvil.png
Normal file
After Width: | Height: | Size: 8.0 KiB |
BIN
textures/mcnodes_black_hardened_clay.png
Normal file
After Width: | Height: | Size: 288 B |
BIN
textures/mcnodes_blue_brick.png
Normal file
After Width: | Height: | Size: 504 B |
BIN
textures/mcnodes_blue_hardened_clay.png
Normal file
After Width: | Height: | Size: 268 B |
BIN
textures/mcnodes_brown_hardened_clay.png
Normal file
After Width: | Height: | Size: 252 B |
BIN
textures/mcnodes_chiseled_sandstone.png
Normal file
After Width: | Height: | Size: 780 B |
BIN
textures/mcnodes_cyan_hardened_clay.png
Normal file
After Width: | Height: | Size: 286 B |
BIN
textures/mcnodes_default_chest.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
textures/mcnodes_diorite.png
Normal file
After Width: | Height: | Size: 926 B |
BIN
textures/mcnodes_diorite_smooth.png
Normal file
After Width: | Height: | Size: 953 B |
BIN
textures/mcnodes_emerald_block.png
Normal file
After Width: | Height: | Size: 817 B |
BIN
textures/mcnodes_emerald_item.png
Normal file
After Width: | Height: | Size: 511 B |
BIN
textures/mcnodes_emerald_ore.png
Normal file
After Width: | Height: | Size: 185 B |
BIN
textures/mcnodes_granite.png
Normal file
After Width: | Height: | Size: 995 B |
BIN
textures/mcnodes_granite_smooth.png
Normal file
After Width: | Height: | Size: 842 B |
BIN
textures/mcnodes_green_hardened_clay.png
Normal file
After Width: | Height: | Size: 306 B |
BIN
textures/mcnodes_grey_brick.png
Normal file
After Width: | Height: | Size: 508 B |
BIN
textures/mcnodes_grey_hardened_clay.png
Normal file
After Width: | Height: | Size: 226 B |
BIN
textures/mcnodes_hardened_clay.png
Normal file
After Width: | Height: | Size: 482 B |
BIN
textures/mcnodes_lapis_block.png
Normal file
After Width: | Height: | Size: 714 B |
BIN
textures/mcnodes_lapis_item.png
Normal file
After Width: | Height: | Size: 476 B |
BIN
textures/mcnodes_lapis_ore.png
Normal file
After Width: | Height: | Size: 476 B |
BIN
textures/mcnodes_large_chest.png
Normal file
After Width: | Height: | Size: 3.7 KiB |
BIN
textures/mcnodes_lime_hardened_clay.png
Normal file
After Width: | Height: | Size: 318 B |
BIN
textures/mcnodes_magenta_hardened_clay.png
Normal file
After Width: | Height: | Size: 277 B |
BIN
textures/mcnodes_orange_hardened_clay.png
Normal file
After Width: | Height: | Size: 351 B |
BIN
textures/mcnodes_pink_hardened_clay.png
Normal file
After Width: | Height: | Size: 295 B |
BIN
textures/mcnodes_quartz_block.png
Normal file
After Width: | Height: | Size: 520 B |
BIN
textures/mcnodes_quartz_block_bottom.png
Normal file
After Width: | Height: | Size: 487 B |
BIN
textures/mcnodes_quartz_block_chiseled.png
Normal file
After Width: | Height: | Size: 403 B |
BIN
textures/mcnodes_quartz_block_chiseled_top.png
Normal file
After Width: | Height: | Size: 408 B |
BIN
textures/mcnodes_quartz_block_pillar.png
Normal file
After Width: | Height: | Size: 309 B |
BIN
textures/mcnodes_quartz_block_pillar_top.png
Normal file
After Width: | Height: | Size: 317 B |
BIN
textures/mcnodes_quartz_block_top.png
Normal file
After Width: | Height: | Size: 520 B |
BIN
textures/mcnodes_quartz_item.png
Normal file
After Width: | Height: | Size: 560 B |
BIN
textures/mcnodes_quartz_ore.png
Normal file
After Width: | Height: | Size: 964 B |
BIN
textures/mcnodes_red_chiseled_sandstone.png
Normal file
After Width: | Height: | Size: 684 B |
BIN
textures/mcnodes_red_hardened_clay.png
Normal file
After Width: | Height: | Size: 341 B |
BIN
textures/mcnodes_red_sandstone_bottom.png
Normal file
After Width: | Height: | Size: 564 B |
BIN
textures/mcnodes_red_sandstone_top.png
Normal file
After Width: | Height: | Size: 575 B |
BIN
textures/mcnodes_sandstone_bottom.png
Normal file
After Width: | Height: | Size: 896 B |
BIN
textures/mcnodes_sandstone_top.png
Normal file
After Width: | Height: | Size: 707 B |
BIN
textures/mcnodes_smooth_sandstone.png
Normal file
After Width: | Height: | Size: 807 B |
BIN
textures/mcnodes_white_hardened_clay.png
Normal file
After Width: | Height: | Size: 368 B |
BIN
textures/mcnodes_yellow_brick.png
Normal file
After Width: | Height: | Size: 502 B |
BIN
textures/mcnodes_yellow_hardened_clay.png
Normal file
After Width: | Height: | Size: 341 B |
BIN
textures/wieldhand.png
Normal file
After Width: | Height: | Size: 129 B |