Butcher everything, make it a mod to depend on, and remove everything to do with mtg...

master
ExeVirus 2021-12-07 07:12:35 -05:00
parent dce587cf33
commit 65ab0a0670
73 changed files with 21 additions and 2973 deletions

View File

@ -1,13 +0,0 @@
root = true
[*]
charset = utf-8
end_of_line = lf
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true
[*.{lua,luacheckrc}]
indent_style = tab
indent_size = 4

View File

@ -1,24 +0,0 @@
name: build
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: actions/setup-python@master
- run: |
sudo apt-get update -qq
sudo apt-get install -qqq luarocks
- name: Install pre-commit
run: pip3 install pre-commit
- name: Install LuaCheck
run: luarocks install --local luacheck
- name: Run LuaCheck using pre-commit
run: |
pre-commit run --all-files
$HOME/.luarocks/bin/luacheck .

View File

@ -1,34 +0,0 @@
std = "lua51+minetest"
unused_args = false
allow_defined_top = true
max_line_length = 999
stds.minetest = {
read_globals = {
"DIR_DELIM",
"minetest",
"core",
"dump",
"vector",
"nodeupdate",
"VoxelManip",
"VoxelArea",
"PseudoRandom",
"ItemStack",
"default",
table = {
fields = {
"copy",
},
},
}
}
read_globals = {
"protector",
"isprotect",
"IsPlayerNodeOwner",
"HasOwner",
"getLastOwner",
"GetNodeOwnerName",
}

View File

@ -1,10 +0,0 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.3.0
hooks:
- id: fix-byte-order-marker
- id: end-of-file-fixer
- id: trailing-whitespace
- id: mixed-line-ending
args: [--fix=lf]

View File

@ -7,6 +7,17 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
## [Unreleased]
## [a.0] - 2021-12-07
### Removed
- Removed anything MTG specific
- removed the translations that no longer apply
### Added
- Support specifically for lady_assets
## [2.2.0] - 2021-06-28
### Changed

View File

@ -1,75 +1,3 @@
# More Blocks [![Build status](https://github.com/minetest-mods/moreblocks/workflows/build/badge.svg)](https://github.com/minetest-mods/moreblocks/actions)
# More Blocks for Lady Bug Game
More Blocks for [Minetest](https://www.minetest.net/), a free and open source infinite
world block sandbox game.
[**Forum topic**](https://forum.minetest.net/viewtopic.php?f=11&t=509)
## Installation
### Download the mod
To install More Blocks, clone this Git repository into your Minetest's `mods/`
directory:
```bash
git clone https://github.com/minetest-mods/moreblocks.git
```
You can also
[download a ZIP archive](https://github.com/minetest-mods/moreblocks/archive/master.zip)
of More Blocks.
### Enable the mod
Once you have installed More Blocks, you need to enable it in Minetest.
The procedure is as follows:
#### Using the client's main menu
This is the easiest way to enable More Blocks when playing in singleplayer
(or on a server hosted from a client).
1. Start Minetest and switch to the **Local Game** tab.
2. Select the world you want to enable More Blocks in.
3. Click **Configure**, then enable `moreblocks` by double-clicking it
(or ticking the **Enabled** checkbox).
4. Save the changes, then start a game on the world you enabled More Blocks on.
5. More Blocks should now be running on your world.
#### Using a text editor
This is the recommended way to enable the mod on a server without using a GUI.
1. Make sure Minetest is not currently running (otherwise, it will overwrite
the changes when exiting).
2. Open the world's `world.mt` file using a text editor.
3. Add the following line at the end of the file:
```text
load_mod_moreblocks = true
```
If the line is already present in the file, then replace `false` with `true`
on that line.
4. Save the file, then start a game on the world you enabled More Blocks on.
5. More Blocks should now be running on your world.
## Version compatibility
More Blocks is currently primarily tested with Minetest 5.3.0.
It may or may not work with newer or older versions. Issues arising in older
versions than 5.0.0 will generally not be fixed.
## License
Copyright © 2011-2020 Hugo Locurcio and contributors
- More Blocks code is licensed under the zlib license, see
[`LICENSE.md`](LICENSE.md) for details.
- Unless otherwise specified, More Blocks textures are licensed under
[CC BY-SA 3.0 Unported](https://creativecommons.org/licenses/by-sa/3.0/).
`moreblocks_copperpatina.png` was created by pithydon, and is licensed under
[CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/).
All features of the mod have been removed except stairsplus support, including the circular saw

View File

@ -1,105 +0,0 @@
--[[
More Blocks: alias definitions
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]
-- More Blocks aliases:
minetest.register_alias("sweeper", "moreblocks:sweeper")
minetest.register_alias("circular_saw", "moreblocks:circular_saw")
minetest.register_alias("jungle_stick", "moreblocks:jungle_stick")
-- Old block/item replacement:
minetest.register_alias("moreblocks:oerkkiblock", "default:mossycobble")
minetest.register_alias("moreblocks:screwdriver", "screwdriver:screwdriver")
-- Node and item renaming:
minetest.register_alias("moreblocks:stone_bricks", "default:stonebrick")
minetest.register_alias("moreblocks:stonebrick", "default:stonebrick")
minetest.register_alias("moreblocks:junglewood", "default:junglewood")
minetest.register_alias("moreblocks:jungle_wood", "default:junglewood")
minetest.register_alias("moreblocks:fence_junglewood", "default:fence_junglewood")
minetest.register_alias("moreblocks:fence_jungle_wood", "default:fence_junglewood")
minetest.register_alias("moreblocks:jungle_stick", "default:stick")
for _, t in pairs(circular_saw.names) do
minetest.register_alias("moreblocks:" .. t[1] .. "_jungle_wood" .. t[2],
"moreblocks:" .. t[1] .. "_junglewood" .. t[2])
end
minetest.register_alias("moreblocks:horizontaltree", "moreblocks:horizontal_tree")
minetest.register_alias("moreblocks:horizontaljungletree", "moreblocks:horizontal_jungle_tree")
minetest.register_alias("moreblocks:stonesquare", "moreblocks:stone_tile")
minetest.register_alias("moreblocks:circlestonebrick", "moreblocks:circle_stone_bricks")
minetest.register_alias("moreblocks:ironstonebrick", "moreblocks:iron_stone_bricks")
minetest.register_alias("moreblocks:coalstone", "moreblocks:coal_stone")
minetest.register_alias("moreblocks:ironstone", "moreblocks:iron_stone")
minetest.register_alias("moreblocks:woodtile", "moreblocks:wood_tile")
minetest.register_alias("moreblocks:woodtile_full", "moreblocks:wood_tile_full")
minetest.register_alias("moreblocks:woodtile_centered", "moreblocks:wood_tile_centered")
minetest.register_alias("moreblocks:woodtile_up", "moreblocks:wood_tile_offset")
minetest.register_alias("moreblocks:wood_tile_up", "moreblocks:wood_tile_offset")
minetest.register_alias("moreblocks:woodtile_down", "moreblocks:wood_tile_down")
minetest.register_alias("moreblocks:woodtile_left", "moreblocks:wood_tile_left")
minetest.register_alias("moreblocks:woodtile_right", "moreblocks:wood_tile_right")
minetest.register_alias("moreblocks:coalglass", "moreblocks:coal_glass")
minetest.register_alias("moreblocks:ironglass", "moreblocks:iron_glass")
minetest.register_alias("moreblocks:glowglass", "moreblocks:glow_glass")
minetest.register_alias("moreblocks:superglowglass", "moreblocks:super_glow_glass")
minetest.register_alias("moreblocks:trapglass", "moreblocks:trap_glass")
minetest.register_alias("moreblocks:trapstone", "moreblocks:trap_stone")
minetest.register_alias("moreblocks:cactuschecker", "moreblocks:cactus_checker")
minetest.register_alias("moreblocks:coalchecker", "moreblocks:coal_checker")
minetest.register_alias("moreblocks:ironchecker", "moreblocks:iron_checker")
minetest.register_alias("moreblocks:cactusbrick", "moreblocks:cactus_brick")
minetest.register_alias("moreblocks:cleanglass", "moreblocks:clean_glass")
minetest.register_alias("moreblocks:emptybookshelf", "moreblocks:empty_bookshelf")
minetest.register_alias("moreblocks:junglestick", "moreblocks:jungle_stick")
minetest.register_alias("moreblocks:splitstonesquare","moreblocks:split_stone_tile")
minetest.register_alias("moreblocks:allfacestree","moreblocks:all_faces_tree")
minetest.register_alias("moreblocks:empty_bookshelf","moreblocks:empty_shelf")
minetest.register_alias("moreblocks:split_stone_tile_alt","moreblocks:checker_stone_tile")
-- ABM for horizontal trees (fix facedir):
local horizontal_tree_convert_facedir = {7, 12, 9, 18}
minetest.register_abm({
nodenames = {"moreblocks:horizontal_tree","moreblocks:horizontal_jungle_tree"},
interval = 1,
chance = 1,
action = function(pos, node)
if node.name == "moreblocks:horizontal_tree" then
node.name = "default:tree"
else
node.name = "default:jungletree"
end
node.param2 = node.param2 < 3 and node.param2 or 0
minetest.set_node(pos, {
name = node.name,
param2 = horizontal_tree_convert_facedir[node.param2 + 1]
})
end,
})
minetest.register_lbm({
name = "moreblocks:reduce_wood_tile_redundancy",
nodenames = {
"moreblocks:wood_tile_left",
"moreblocks:wood_tile_down",
"moreblocks:wood_tile_right",
"moreblocks:wood_tile_flipped",
},
action = function(pos, node)
if node.name:find("left") then
minetest.set_node(pos, {name = "moreblocks:wood_tile_offset", param2=1})
elseif node.name:find("down") then
minetest.set_node(pos, {name = "moreblocks:wood_tile_offset", param2=2})
elseif node.name:find("right") then
minetest.set_node(pos, {name = "moreblocks:wood_tile_offset", param2=3})
else -- wood_tile_flipped
minetest.set_node(pos, {name = "moreblocks:wood_tile", param2=1})
end
minetest.log('action', "LBM replaced " .. node.name ..
" at " .. minetest.pos_to_string(pos))
end,
})

View File

@ -1,477 +0,0 @@
--[[
More Blocks: circular saw
Copyright © 2011-2020 Hugo Locurcio, Sokomine and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]
local S = moreblocks.S
local F = minetest.formspec_escape
circular_saw = {}
circular_saw.known_stairs = setmetatable({}, {
__newindex = function(k, v)
local modname = minetest.get_current_modname()
print(("WARNING: mod %s tried to add node %s to the circular saw manually."):format(modname, v))
end,
})
-- This is populated by stairsplus:register_all:
circular_saw.known_nodes = {}
-- How many microblocks does this shape at the output inventory cost:
-- It may cause slight loss, but no gain.
circular_saw.cost_in_microblocks = {
1, 1, 1, 1, 1, 1, 1, 2,
2, 3, 2, 4, 2, 4, 5, 6,
7, 1, 1, 2, 4, 6, 7, 8,
1, 2, 2, 3, 1, 1, 2, 4,
4, 2, 6, 7, 3, 7, 7, 4,
8, 3, 2, 6, 2, 1, 3, 4
}
circular_saw.names = {
{"micro", "_1"},
{"panel", "_1"},
{"micro", "_2"},
{"panel", "_2"},
{"micro", "_4"},
{"panel", "_4"},
{"micro", ""},
{"panel", ""},
{"micro", "_12"},
{"panel", "_12"},
{"micro", "_14"},
{"panel", "_14"},
{"micro", "_15"},
{"panel", "_15"},
{"stair", "_outer"},
{"stair", ""},
{"stair", "_inner"},
{"slab", "_1"},
{"slab", "_2"},
{"slab", "_quarter"},
{"slab", ""},
{"slab", "_three_quarter"},
{"slab", "_14"},
{"slab", "_15"},
{"slab", "_two_sides"},
{"slab", "_three_sides"},
{"slab", "_three_sides_u"},
{"stair", "_half"},
{"stair", "_alt_1"},
{"stair", "_alt_2"},
{"stair", "_alt_4"},
{"stair", "_alt"},
{"slope", ""},
{"slope", "_half"},
{"slope", "_half_raised"},
{"slope", "_inner"},
{"slope", "_inner_half"},
{"slope", "_inner_half_raised"},
{"slope", "_inner_cut"},
{"slope", "_inner_cut_half"},
{"slope", "_inner_cut_half_raised"},
{"slope", "_outer"},
{"slope", "_outer_half"},
{"slope", "_outer_half_raised"},
{"slope", "_outer_cut"},
{"slope", "_outer_cut_half"},
{"slope", "_outer_cut_half_raised"},
{"slope", "_cut"},
}
function circular_saw:get_cost(inv, stackname)
local name = minetest.registered_aliases[stackname] or stackname
for i, item in pairs(inv:get_list("output")) do
if item:get_name() == name then
return circular_saw.cost_in_microblocks[i]
end
end
end
function circular_saw:get_output_inv(modname, material, amount, max)
if (not max or max < 1 or max > 99) then max = 99 end
local list = {}
local pos = #list
-- If there is nothing inside, display empty inventory:
if amount < 1 then
return list
end
for i = 1, #circular_saw.names do
local t = circular_saw.names[i]
local cost = circular_saw.cost_in_microblocks[i]
local balance = math.min(math.floor(amount/cost), max)
local nodename = modname .. ":" .. t[1] .. "_" .. material .. t[2]
if minetest.registered_nodes[nodename] then
pos = pos + 1
list[pos] = nodename .. " " .. balance
end
end
return list
end
-- Reset empty circular_saw after last full block has been taken out
-- (or the circular_saw has been placed the first time)
-- Note: max_offered is not reset:
function circular_saw:reset(pos)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
local owned_by = meta:get_string("owner")
if owned_by and owned_by ~= "" then
owned_by = (" ("..S("owned by @1", meta:get_string("owner"))..")")
else
owned_by = ""
end
inv:set_list("input", {})
inv:set_list("micro", {})
inv:set_list("output", {})
meta:set_int("anz", 0)
meta:set_string("infotext", S("Circular Saw is empty") .. owned_by)
end
-- Player has taken something out of the box or placed something inside
-- that amounts to count microblocks:
function circular_saw:update_inventory(pos, amount)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
amount = meta:get_int("anz") + amount
-- The material is recycled automatically.
inv:set_list("recycle", {})
if amount < 1 then -- If the last block is taken out.
self:reset(pos)
return
end
local stack = inv:get_stack("input", 1)
-- At least one "normal" block is necessary to see what kind of stairs are requested.
if stack:is_empty() then
-- Any microblocks not taken out yet are now lost.
-- (covers material loss in the machine)
self:reset(pos)
return
end
local node_name = stack:get_name() or ""
local node_def = stack:get_definition()
local name_parts = circular_saw.known_nodes[node_name] or ""
local modname = name_parts[1] or ""
local material = name_parts[2] or ""
local owned_by = meta:get_string("owner")
if owned_by and owned_by ~= "" then
owned_by = (" ("..S("owned by @1", meta:get_string("owner"))..")")
else
owned_by = ""
end
inv:set_list("input", { -- Display as many full blocks as possible:
node_name.. " " .. math.floor(amount / 8)
})
-- The stairnodes made of default nodes use moreblocks namespace, other mods keep own:
if modname == "default" then
modname = "moreblocks"
end
-- print("circular_saw set to " .. modname .. " : "
-- .. material .. " with " .. (amount) .. " microblocks.")
-- 0-7 microblocks may remain left-over:
inv:set_list("micro", {
modname .. ":micro_" .. material .. " " .. (amount % 8)
})
-- Display:
inv:set_list("output",
self:get_output_inv(modname, material, amount,
meta:get_int("max_offered")))
-- Store how many microblocks are available:
meta:set_int("anz", amount)
meta:set_string("infotext",
S("Circular Saw is working on @1",
node_def and node_def.description or material
) .. owned_by
)
end
-- The amount of items offered per shape can be configured:
function circular_saw.on_receive_fields(pos, formname, fields, sender)
local meta = minetest.get_meta(pos)
local max = tonumber(fields.max_offered)
if max and max > 0 then
meta:set_string("max_offered", max)
-- Update to show the correct number of items:
circular_saw:update_inventory(pos, 0)
end
end
-- Moving the inventory of the circular_saw around is not allowed because it
-- is a fictional inventory. Moving inventory around would be rather
-- impractical and make things more difficult to calculate:
function circular_saw.allow_metadata_inventory_move(
pos, from_list, from_index, to_list, to_index, count, player)
return 0
end
-- Only input- and recycle-slot are intended as input slots:
function circular_saw.allow_metadata_inventory_put(
pos, listname, index, stack, player)
-- The player is not allowed to put something in there:
if listname == "output" or listname == "micro" then
return 0
end
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
local stackname = stack:get_name()
local count = stack:get_count()
-- Only allow those items that are offered in the output inventory to be recycled:
if listname == "recycle" then
if not inv:contains_item("output", stackname) then
return 0
end
local stackmax = stack:get_stack_max()
local instack = inv:get_stack("input", 1)
local microstack = inv:get_stack("micro", 1)
local incount = instack:get_count()
local incost = (incount * 8) + microstack:get_count()
local maxcost = (stackmax * 8) + 7
local cost = circular_saw:get_cost(inv, stackname)
if (incost + cost) > maxcost then
return math.max((maxcost - incost) / cost, 0)
end
return count
end
-- Only accept certain blocks as input which are known to be craftable into stairs:
if listname == "input" then
if not inv:is_empty("input") then
if inv:get_stack("input", index):get_name() ~= stackname then
return 0
end
end
if not inv:is_empty("micro") then
local microstackname = inv:get_stack("micro", 1):get_name():gsub("^.+:micro_", "", 1)
local cutstackname = stackname:gsub("^.+:", "", 1)
if microstackname ~= cutstackname then
return 0
end
end
for name, t in pairs(circular_saw.known_nodes) do
if name == stackname and inv:room_for_item("input", stack) then
return count
end
end
return 0
end
end
-- Taking is allowed from all slots (even the internal microblock slot).
-- Putting something in is slightly more complicated than taking anything
-- because we have to make sure it is of a suitable material:
function circular_saw.on_metadata_inventory_put(
pos, listname, index, stack, player)
-- We need to find out if the circular_saw is already set to a
-- specific material or not:
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
local stackname = stack:get_name()
local count = stack:get_count()
-- Putting something into the input slot is only possible if that had
-- been empty before or did contain something of the same material:
if listname == "input" then
-- Each new block is worth 8 microblocks:
circular_saw:update_inventory(pos, 8 * count)
elseif listname == "recycle" then
-- Lets look which shape this represents:
local cost = circular_saw:get_cost(inv, stackname)
local input_stack = inv:get_stack("input", 1)
-- check if this would not exceed input itemstack max_stacks
if input_stack:get_count() + ((cost * count) / 8) <= input_stack:get_stack_max() then
circular_saw:update_inventory(pos, cost * count)
end
end
end
function circular_saw.allow_metadata_inventory_take(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
local input_stack = inv:get_stack(listname, index)
local player_inv = player:get_inventory()
if not player_inv:room_for_item("main", input_stack) then
return 0
else return stack:get_count()
end
end
function circular_saw.on_metadata_inventory_take(
pos, listname, index, stack, player)
-- Prevent (inbuilt) swapping between inventories with different blocks
-- corrupting player inventory or Saw with 'unknown' items.
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
local input_stack = inv:get_stack(listname, index)
if not input_stack:is_empty() and input_stack:get_name()~=stack:get_name() then
local player_inv = player:get_inventory()
-- Prevent arbitrary item duplication.
inv:remove_item(listname, input_stack)
if player_inv:room_for_item("main", input_stack) then
player_inv:add_item("main", input_stack)
end
circular_saw:reset(pos)
return
end
-- If it is one of the offered stairs: find out how many
-- microblocks have to be subtracted:
if listname == "output" then
-- We do know how much each block at each position costs:
local cost = circular_saw.cost_in_microblocks[index]
* stack:get_count()
circular_saw:update_inventory(pos, -cost)
elseif listname == "micro" then
-- Each microblock costs 1 microblock:
circular_saw:update_inventory(pos, -stack:get_count())
elseif listname == "input" then
-- Each normal (= full) block taken costs 8 microblocks:
circular_saw:update_inventory(pos, 8 * -stack:get_count())
end
-- The recycle field plays no role here since it is processed immediately.
end
local has_default_mod = minetest.get_modpath("default")
function circular_saw.on_construct(pos)
local meta = minetest.get_meta(pos)
local fancy_inv = ""
if has_default_mod then
-- prepend background and slot styles from default if available
fancy_inv = default.gui_bg..default.gui_bg_img..default.gui_slots
end
meta:set_string(
--FIXME Not work with @n in this part bug in minetest/minetest#7450.
"formspec", "size[11,10]"..fancy_inv..
"label[0,0;" ..S("Input material").. "]" ..
"list[current_name;input;1.7,0;1,1;]" ..
"label[0,1;" ..F(S("Left-over")).. "]" ..
"list[current_name;micro;1.7,1;1,1;]" ..
"label[0,2;" ..F(S("Recycle output")).. "]" ..
"list[current_name;recycle;1.7,2;1,1;]" ..
"field[0.3,3.5;1,1;max_offered;" ..F(S("Max")).. ":;${max_offered}]" ..
"button[1,3.2;1.7,1;Set;" ..F(S("Set")).. "]" ..
"list[current_name;output;2.8,0;8,6;]" ..
"list[current_player;main;1.5,6.25;8,4;]" ..
"listring[current_name;output]" ..
"listring[current_player;main]" ..
"listring[current_name;input]" ..
"listring[current_player;main]" ..
"listring[current_name;micro]" ..
"listring[current_player;main]" ..
"listring[current_name;recycle]" ..
"listring[current_player;main]"
)
meta:set_int("anz", 0) -- No microblocks inside yet.
meta:set_string("max_offered", 99) -- How many items of this kind are offered by default?
meta:set_string("infotext", S("Circular Saw is empty"))
local inv = meta:get_inventory()
inv:set_size("input", 1) -- Input slot for full blocks of material x.
inv:set_size("micro", 1) -- Storage for 1-7 surplus microblocks.
inv:set_size("recycle", 1) -- Surplus partial blocks can be placed here.
inv:set_size("output", 6*8) -- 6x8 versions of stair-parts of material x.
circular_saw:reset(pos)
end
function circular_saw.can_dig(pos,player)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
if not inv:is_empty("input") or
not inv:is_empty("micro") or
not inv:is_empty("recycle") then
return false
end
-- Can be dug by anyone when empty, not only by the owner:
return true
end
minetest.register_node("moreblocks:circular_saw", {
description = S("Circular Saw"),
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{-0.4, -0.5, -0.4, -0.25, 0.25, -0.25}, -- Leg
{0.25, -0.5, 0.25, 0.4, 0.25, 0.4}, -- Leg
{-0.4, -0.5, 0.25, -0.25, 0.25, 0.4}, -- Leg
{0.25, -0.5, -0.4, 0.4, 0.25, -0.25}, -- Leg
{-0.5, 0.25, -0.5, 0.5, 0.375, 0.5}, -- Tabletop
{-0.01, 0.4375, -0.125, 0.01, 0.5, 0.125}, -- Saw blade (top)
{-0.01, 0.375, -0.1875, 0.01, 0.4375, 0.1875}, -- Saw blade (bottom)
{-0.25, -0.0625, -0.25, 0.25, 0.25, 0.25}, -- Motor case
},
},
tiles = {"moreblocks_circular_saw_top.png",
"moreblocks_circular_saw_bottom.png",
"moreblocks_circular_saw_side.png"},
paramtype = "light",
sunlight_propagates = true,
paramtype2 = "facedir",
groups = {choppy = 2,oddly_breakable_by_hand = 2},
sounds = moreblocks.node_sound_wood_defaults(),
on_construct = circular_saw.on_construct,
can_dig = circular_saw.can_dig,
-- Set the owner of this circular saw.
after_place_node = function(pos, placer)
local meta = minetest.get_meta(pos)
local owner = placer and placer:get_player_name() or ""
local owned_by = owner
if owner ~= "" then
owned_by = (" (%s)"):format(S("owned by @1", owner))
end
meta:set_string("owner", owner)
meta:set_string("infotext", S("Circular Saw is empty") .. owned_by)
end,
-- The amount of items offered per shape can be configured:
on_receive_fields = circular_saw.on_receive_fields,
allow_metadata_inventory_move = circular_saw.allow_metadata_inventory_move,
-- Only input- and recycle-slot are intended as input slots:
allow_metadata_inventory_put = circular_saw.allow_metadata_inventory_put,
allow_metadata_inventory_take = circular_saw.allow_metadata_inventory_take,
-- Taking is allowed from all slots (even the internal microblock slot). Moving is forbidden.
-- Putting something in is slightly more complicated than taking anything because we have to make sure it is of a suitable material:
on_metadata_inventory_put = circular_saw.on_metadata_inventory_put,
on_metadata_inventory_take = circular_saw.on_metadata_inventory_take,
})

View File

@ -1,648 +0,0 @@
--[[
More Blocks: crafting recipes
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]
minetest.register_craft({
output = "default:stick",
recipe = {{"default:dry_shrub"},}
})
minetest.register_craft({
output = "default:stick",
recipe = {{"group:sapling"},}
})
minetest.register_craft({
output = "default:wood",
recipe = {
{"default:stick", "default:stick"},
{"default:stick", "default:stick"},
}
})
minetest.register_craft({
output = "default:dirt_with_grass",
type = "shapeless",
recipe = {"default:junglegrass", "default:dirt"},
})
minetest.register_craft({
output = "default:mossycobble",
type = "shapeless",
recipe = {"default:junglegrass", "default:cobble"},
})
minetest.register_craft({
output = "moreblocks:wood_tile 9",
recipe = {
{"group:wood", "group:wood", "group:wood"},
{"group:wood", "group:wood", "group:wood"},
{"group:wood", "group:wood", "group:wood"},
}
})
-- This must be registered after `moreblocks:wood_tile` to avoid recipe conflicts,
-- since `moreblocks:wood_tile` is part of `group:wood`
minetest.register_craft({
output = "moreblocks:wood_tile_center 9",
recipe = {
{"group:wood", "group:wood", "group:wood"},
{"group:wood", "moreblocks:wood_tile", "group:wood"},
{"group:wood", "group:wood", "group:wood"},
}
})
minetest.register_craft({
type = "shapeless",
output = "moreblocks:wood_tile",
recipe = {"moreblocks:wood_tile_flipped"}
})
minetest.register_craft({
output = "moreblocks:wood_tile_full 4",
recipe = {
{"moreblocks:wood_tile", "moreblocks:wood_tile"},
{"moreblocks:wood_tile", "moreblocks:wood_tile"},
}
})
minetest.register_craft({
output = "moreblocks:wood_tile_offset",
recipe = {
{"default:stick"},
{"moreblocks:wood_tile_center"},
}
})
minetest.register_craft({
type = "shapeless",
output = "moreblocks:wood_tile_offset",
recipe = {"moreblocks:wood_tile_down"}
})
minetest.register_craft({
type = "shapeless",
output = "moreblocks:wood_tile_offset",
recipe = {"moreblocks:wood_tile_left"}
})
minetest.register_craft({
type = "shapeless",
output = "moreblocks:wood_tile_offset",
recipe = {"moreblocks:wood_tile_right"}
})
minetest.register_craft({
output = "moreblocks:circle_stone_bricks 5",
recipe = {
{"", "default:stone", ""},
{"default:stone", "default:coal_lump", "default:stone"},
{"", "default:stone", ""},
}
})
minetest.register_craft({
output = "moreblocks:all_faces_tree 8",
recipe = {
{"default:tree", "default:tree", "default:tree"},
{"default:tree", "", "default:tree"},
{"default:tree", "default:tree", "default:tree"},
}
})
minetest.register_craft({
output = "moreblocks:all_faces_jungle_tree 8",
recipe = {
{"default:jungletree", "default:jungletree", "default:jungletree"},
{"default:jungletree", "", "default:jungletree"},
{"default:jungletree", "default:jungletree", "default:jungletree"},
}
})
minetest.register_craft({
output = "moreblocks:all_faces_pine_tree 8",
recipe = {
{"default:pine_tree", "default:pine_tree", "default:pine_tree"},
{"default:pine_tree", "", "default:pine_tree"},
{"default:pine_tree", "default:pine_tree", "default:pine_tree"},
}
})
minetest.register_craft({
output = "moreblocks:all_faces_acacia_tree 8",
recipe = {
{"default:acacia_tree", "default:acacia_tree", "default:acacia_tree"},
{"default:acacia_tree", "", "default:acacia_tree"},
{"default:acacia_tree", "default:acacia_tree", "default:acacia_tree"},
}
})
minetest.register_craft({
output = "moreblocks:all_faces_aspen_tree 8",
recipe = {
{"default:aspen_tree", "default:aspen_tree", "default:aspen_tree"},
{"default:aspen_tree", "", "default:aspen_tree"},
{"default:aspen_tree", "default:aspen_tree", "default:aspen_tree"},
}
})
minetest.register_craft({
output = "moreblocks:sweeper 4",
recipe = {
{"default:junglegrass"},
{"default:stick"},
}
})
minetest.register_craft({
output = "moreblocks:stone_tile 9",
recipe = {
{"default:cobble", "default:cobble", "default:cobble"},
{"default:cobble", "default:stone", "default:cobble"},
{"default:cobble", "default:cobble", "default:cobble"},
}
})
minetest.register_craft({
output = "moreblocks:split_stone_tile",
recipe = {
{"moreblocks:stone_tile"},
}
})
minetest.register_craft({
output = "moreblocks:checker_stone_tile",
recipe = {
{"moreblocks:split_stone_tile"},
}
})
-- When approaching the below craft, loop back to cobblestone, which can then be used to craft stone tiles again
minetest.register_craft({
output = "default:cobble",
recipe = {
{"moreblocks:checker_stone_tile"},
}
})
minetest.register_craft({
output = "moreblocks:grey_bricks 2",
type = "shapeless",
recipe = {"default:stone", "default:brick"},
})
minetest.register_craft({
output = "moreblocks:grey_bricks 2",
type = "shapeless",
recipe = {"default:stonebrick", "default:brick"},
})
minetest.register_craft({
output = "moreblocks:empty_shelf",
type = "shapeless",
recipe = {"moreblocks:sweeper", "default:bookshelf"},
replacements = {{"default:bookshelf", "default:book 3"}},
-- When obtaining an empty shelf, return the books used in it as well
})
minetest.register_craft({
output = "moreblocks:empty_shelf",
type = "shapeless",
recipe = {"moreblocks:sweeper", "vessels:shelf"},
replacements = {{"vessels:shelf", "vessels:glass_bottle 3"}},
})
minetest.register_craft({
type = "shapeless",
output = "default:bookshelf",
recipe = {"moreblocks:empty_shelf", "default:book", "default:book", "default:book"},
})
minetest.register_craft({
output = "moreblocks:empty_shelf",
recipe = {
{"group:wood", "group:wood", "group:wood"},
{"", "", ""},
{"group:wood", "group:wood", "group:wood"},
}
})
minetest.register_craft({
output = "moreblocks:coal_stone_bricks 4",
recipe = {
{"moreblocks:coal_stone", "moreblocks:coal_stone"},
{"moreblocks:coal_stone", "moreblocks:coal_stone"},
}
})
minetest.register_craft({
output = "moreblocks:iron_stone_bricks 4",
recipe = {
{"moreblocks:iron_stone", "moreblocks:iron_stone"},
{"moreblocks:iron_stone", "moreblocks:iron_stone"},
}
})
minetest.register_craft({
output = "moreblocks:plankstone 4",
recipe = {
{"group:stone", "group:wood"},
{"group:wood", "group:stone"},
}
})
minetest.register_craft({
output = "moreblocks:plankstone 4",
recipe = {
{"group:wood", "group:stone"},
{"group:stone", "group:wood"},
}
})
minetest.register_craft({
output = "moreblocks:coal_checker 4",
recipe = {
{"default:stone", "default:coal_lump"},
{"default:coal_lump", "default:stone"},
}
})
minetest.register_craft({
output = "moreblocks:coal_checker 4",
recipe = {
{"default:coal_lump", "default:stone"},
{"default:stone", "default:coal_lump"},
}
})
minetest.register_craft({
output = "moreblocks:iron_checker 4",
recipe = {
{"default:steel_ingot", "default:stone"},
{"default:stone", "default:steel_ingot"},
}
})
minetest.register_craft({
output = "moreblocks:iron_checker 4",
recipe = {
{"default:stone", "default:steel_ingot"},
{"default:steel_ingot", "default:stone"},
}
})
minetest.register_craft({
output = "default:chest_locked",
type = "shapeless",
recipe = {"default:steel_ingot", "default:chest"},
})
minetest.register_craft({
output = "default:chest_locked",
type = "shapeless",
recipe = {"default:copper_ingot", "default:chest"},
})
minetest.register_craft({
output = "default:chest_locked",
type = "shapeless",
recipe = {"default:bronze_ingot", "default:chest"},
})
minetest.register_craft({
output = "default:chest_locked",
type = "shapeless",
recipe = {"default:gold_ingot", "default:chest"},
})
minetest.register_craft({
output = "moreblocks:iron_glass",
type = "shapeless",
recipe = {"default:steel_ingot", "default:glass"},
})
minetest.register_craft({
output = "default:glass",
type = "shapeless",
recipe = {"default:coal_lump", "moreblocks:iron_glass"},
})
minetest.register_craft({
output = "moreblocks:coal_glass",
type = "shapeless",
recipe = {"default:coal_lump", "default:glass"},
})
minetest.register_craft({
output = "default:glass",
type = "shapeless",
recipe = {"default:steel_ingot", "moreblocks:coal_glass"},
})
minetest.register_craft({
output = "moreblocks:clean_glass",
type = "shapeless",
recipe = {"moreblocks:sweeper", "default:glass"},
})
minetest.register_craft({
output = "moreblocks:trap_clean_glass",
type = "shapeless",
recipe = {"default:mese_crystal_fragment", "moreblocks:clean_glass"},
})
minetest.register_craft({
output = "moreblocks:trap_clean_glass",
type = "shapeless",
recipe = {"moreblocks:sweeper", "moreblocks:trap_glass"},
})
minetest.register_craft({
output = "moreblocks:glow_glass",
type = "shapeless",
recipe = {"default:torch", "default:glass"},
})
minetest.register_craft({
output = "moreblocks:clean_glow_glass",
type = "shapeless",
recipe = {"default:torch", "moreblocks:clean_glass"},
})
minetest.register_craft({
output = "moreblocks:clean_glow_glass",
type = "shapeless",
recipe = {"moreblocks:sweeper", "moreblocks:glow_glass"},
})
minetest.register_craft({
output = "moreblocks:trap_glow_glass",
type = "shapeless",
recipe = {"default:mese_crystal_fragment", "default:glass", "default:torch"},
})
minetest.register_craft({
output = "moreblocks:trap_glow_glass",
type = "shapeless",
recipe = {"default:mese_crystal_fragment", "moreblocks:glow_glass"},
})
-- several recipes are possible for the trap+clean+glow, we only present 3 of them
minetest.register_craft({
output = "moreblocks:trap_clean_glow_glass",
type = "shapeless",
recipe = {"default:mese_crystal_fragment", "moreblocks:clean_glow_glass"},
})
minetest.register_craft({
output = "moreblocks:trap_clean_glow_glass",
type = "shapeless",
recipe = {"default:mese_crystal_fragment", "moreblocks:clean_glass", "default:torch"},
})
minetest.register_craft({
output = "moreblocks:trap_clean_glow_glass",
type = "shapeless",
recipe = {"moreblocks:sweeper", "moreblocks:trap_glow_glass" },
})
minetest.register_craft({
output = "moreblocks:super_glow_glass",
type = "shapeless",
recipe = {"default:torch", "default:torch", "default:glass"},
})
minetest.register_craft({
output = "moreblocks:super_glow_glass",
type = "shapeless",
recipe = {"default:torch", "moreblocks:glow_glass"},
})
minetest.register_craft({
output = "moreblocks:clean_super_glow_glass",
type = "shapeless",
recipe = {"default:torch", "default:torch", "moreblocks:clean_glass"},
})
minetest.register_craft({
output = "moreblocks:clean_super_glow_glass",
type = "shapeless",
recipe = {"default:torch", "moreblocks:clean_glow_glass"},
})
minetest.register_craft({
output = "moreblocks:clean_super_glow_glass",
type = "shapeless",
recipe = {"moreblocks:sweeper", "moreblocks:super_glow_glass"},
})
minetest.register_craft({
output = "moreblocks:trap_super_glow_glass",
type = "shapeless",
recipe = {"default:mese_crystal_fragment", "default:glass", "default:torch", "default:torch"},
})
minetest.register_craft({
output = "moreblocks:trap_super_glow_glass",
type = "shapeless",
recipe = {"default:mese_crystal_fragment", "moreblocks:super_glow_glass"},
})
-- several recipes are possible for the trap+clean+glow, we only present 4 of them
minetest.register_craft({
output = "moreblocks:trap_clean_super_glow_glass",
type = "shapeless",
recipe = {"default:mese_crystal_fragment", "moreblocks:clean_super_glow_glass"},
})
minetest.register_craft({
output = "moreblocks:trap_clean_super_glow_glass",
type = "shapeless",
recipe = {"default:mese_crystal_fragment", "moreblocks:clean_glow_glass", "default:torch"},
})
minetest.register_craft({
output = "moreblocks:trap_clean_super_glow_glass",
type = "shapeless",
recipe = {"default:mese_crystal_fragment", "moreblocks:clean_glass", "default:torch", "default:torch"},
})
minetest.register_craft({
output = "moreblocks:trap_clean_super_glow_glass",
type = "shapeless",
recipe = {"moreblocks:sweeper", "moreblocks:trap_super_glow_glass" },
})
minetest.register_craft({
output = "moreblocks:coal_stone",
type = "shapeless",
recipe = {"default:coal_lump", "default:stone"},
})
minetest.register_craft({
output = "default:stone",
type = "shapeless",
recipe = {"default:steel_ingot", "moreblocks:coal_stone"},
})
minetest.register_craft({
output = "moreblocks:iron_stone",
type = "shapeless",
recipe = {"default:steel_ingot", "default:stone"},
})
minetest.register_craft({
output = "default:stone",
type = "shapeless",
recipe = {"default:coal_lump", "moreblocks:iron_stone"},
})
minetest.register_craft({
output = "moreblocks:trap_stone",
type = "shapeless",
recipe = {"default:mese_crystal_fragment", "default:stone"},
})
minetest.register_craft({
output = "moreblocks:trap_desert_stone",
type = "shapeless",
recipe = {"default:mese_crystal_fragment", "default:desert_stone"},
})
minetest.register_craft({
output = "moreblocks:trap_glass",
type = "shapeless",
recipe = {"default:mese_crystal_fragment", "default:glass"},
})
minetest.register_craft({
output = "moreblocks:trap_obsidian_glass",
type = "shapeless",
recipe = {"default:mese_crystal_fragment", "default:obsidian_glass"},
})
minetest.register_craft({
output = "moreblocks:trap_obsidian",
type = "shapeless",
recipe = {"default:mese_crystal_fragment", "default:obsidian"},
})
minetest.register_craft({
output = "moreblocks:trap_sandstone",
type = "shapeless",
recipe = {"default:mese_crystal_fragment", "default:sandstone"},
})
minetest.register_craft({
output = "moreblocks:cactus_brick",
type = "shapeless",
recipe = {"default:cactus", "default:brick"},
})
minetest.register_craft({
output = "moreblocks:cactus_checker 4",
recipe = {
{"default:cactus", "default:stone"},
{"default:stone", "default:cactus"},
}
})
minetest.register_craft({
output = "moreblocks:cactus_checker 4",
recipe = {
{"default:stone", "default:cactus"},
{"default:cactus", "default:stone"},
}
})
minetest.register_craft({
output = "moreblocks:rope 3",
recipe = {
{"default:junglegrass"},
{"default:junglegrass"},
{"default:junglegrass"},
}
})
minetest.register_craft({
output = "moreblocks:dirt_compressed",
recipe = {
{'default:dirt', 'default:dirt', 'default:dirt'},
{'default:dirt', 'default:dirt', 'default:dirt'},
{'default:dirt', 'default:dirt', 'default:dirt'},
}
})
minetest.register_craft({
output = "default:dirt 9",
recipe = {{"moreblocks:dirt_compressed"}},
})
minetest.register_craft({
output = "moreblocks:cobble_compressed",
recipe = {
{"default:cobble", "default:cobble", "default:cobble"},
{"default:cobble", "default:cobble", "default:cobble"},
{"default:cobble", "default:cobble", "default:cobble"},
}
})
minetest.register_craft({
output = "default:cobble 9",
recipe = {
{"moreblocks:cobble_compressed"},
}
})
minetest.register_craft({
output = "moreblocks:desert_cobble_compressed",
recipe = {
{"default:desert_cobble", "default:desert_cobble", "default:desert_cobble"},
{"default:desert_cobble", "default:desert_cobble", "default:desert_cobble"},
{"default:desert_cobble", "default:desert_cobble", "default:desert_cobble"},
}
})
minetest.register_craft({
output = "default:desert_cobble 9",
recipe = {
{"moreblocks:desert_cobble_compressed"},
}
})
minetest.register_craft({
type = "cooking", output = "moreblocks:tar", recipe = "default:pine_tree",
})
minetest.register_craft({
type = "shapeless",
output = "moreblocks:copperpatina",
recipe = {"group:water_bucket", "default:copperblock"},
replacements = {
{"group:water_bucket", "bucket:bucket_empty"}
}
})
minetest.register_craft({
output = "default:copper_ingot 9",
recipe = {
{"moreblocks:copperpatina"},
}
})
if minetest.settings:get_bool("moreblocks.circular_saw_crafting") ~= false then -- “If nil or true then”
minetest.register_craft({
output = "moreblocks:circular_saw",
recipe = {
{ "", "default:steel_ingot", "" },
{ "group:wood", "group:wood", "group:wood"},
{ "group:wood", "", "group:wood"},
}
})
end

View File

@ -13,15 +13,5 @@ moreblocks = {}
local modpath = minetest.get_modpath("moreblocks")
moreblocks.S = minetest.get_translator("moreblocks")
dofile(modpath .. "/config.lua")
dofile(modpath .. "/sounds.lua")
dofile(modpath .. "/circular_saw.lua")
dofile(modpath .. "/stairsplus/init.lua")
if minetest.get_modpath("default") then
dofile(modpath .. "/nodes.lua")
dofile(modpath .. "/redefinitions.lua")
dofile(modpath .. "/crafting.lua")
dofile(modpath .. "/aliases.lua")
end
dofile(modpath .. "/stairsplus/init.lua")

View File

@ -1,92 +0,0 @@
# textdomain: moreblocks
# German translation for More Blocks.
# Copyright © 2011-2020 Hugo Locurcio and contributors
# This file is distributed under the same license as the More Blocks package.
# Xanthin, 2014.
# CodeXP <codexp@gmx.net>, 2018.
#: circular_saw.lua
Circular Saw=Kreissäge
Input material=Ausgangs-@nmaterial
Left-over=Rest
Max=Anzahl
Recycle output=Wiederver-@nwerten
Set=Ok
owned by @1=gehört @1
Circular Saw is empty=Kreissäge ist leer
Circular Saw is working on @1=Kreissäge arbeitet mit @1
#: init.lua
[moreblocks] loaded.=[moreblocks] geladen.
#: nodes.lua
Deprecated=veraltet
All-faces Acacia Tree=allseitiger Akazienbaumstamm
All-faces Aspen Tree=allseitiger Espenbaumstamm
All-faces Jungle Tree=allseitiger Tropenbaumstamm
All-faces Pine Tree=allseitiger Kieferbaumstamm
All-faces Tree=allseitiger Baumstamm
Cactus Brick=Kaktusziegel
Cactus Checker=Kaktus-Mosaik
Centered Wooden Tile=Holzfliese mittig
Checker Stone Tile=Stein-Mosaik
Circle Stone Bricks=Kreissteinziegel
Clean Glass=Klares Glas
Coal Checker=Kohlen-Mosaik
Coal Glass=Kohleglas
Clean Super Glow Glass=
Trap Clean Super Glow Glass=
Trap Clean Glass=
Clean Glow Glass=
Trap Clean Glow Glass=
Coal Stone=Kohlestein
Coal Stone Bricks=Kohlesteinziegel
Compressed Cobblestone=Gepresster Kopfsteinpflaster
Compressed Desert Cobblestone=
Compressed Dirt=Gepresste Erde
Copper Patina Block=Kupfer Edelrostblock
Empty Shelf=Leeres Regal
Full Wooden Tile=Vollholzfliese
Glow Glass=Leuchtglas
Iron Checker=Metall-Mosaik
Iron Glass=metallisiertes Glas
Iron Stone=Eisenstein
Iron Stone Bricks=Eisensteinziegel
Plankstone=Brettstein
Rope=Seil
Split Stone Tile=Geteilte Steinfliese
Stone Bricks=Steinziegel
Stone Tile=Steinfliese
Super Glow Glass=Superleuchtglas
Sweeper=Besen
Tar=Teer
Trap Desert Stone=Wüstensteinfalle
Trap Glass=Glasfalle
Trap Glow Glass=Leuchtglasfalle
Trap Obsidian=Obsidianfalle
Trap Obsidian Glass=Obsidianglasfalle
Trap Sandstone=Sandsteinfalle
Trap Stone=Steinfalle
Trap Super Glow Glass=Superleuchtglasfalle
Wooden Tile=Holzfliese
Offset Wooden Tile=Holzfliese versetzt
Downwards Wooden Tile=Holzfliese unten
Leftwards Wooden Tile=Holzfliese links
Rightwards Wooden Tile=Holzfliese rechts
#: ownership.lua
Sorry, @1 owns that spot.=Tut mir leid, dieser Bereich gehört @1.
someone=jemand
#: stairsplus/common.lua
@1 Microblock=@1mikroblock
@1 Slab=@1platte
@1 Slope=@1neigung
@1 Panel=@1paneel
@1 Stairs=@1treppe

View File

@ -1,96 +0,0 @@
# textdomain: moreblocks
# Spanish translation for More Blocks.
# Copyright © 2011-2020 Hugo Locurcio and contributors
# This file is distributed under the same license as the More Blocks package.
# kaeza, 2013.
# CodeXP <codexp@gmx.net>, 2018.
# Carlos Barraza 2020.
#: circular_saw.lua
Circular Saw=Sierra circular
Input material=Material de@nentrada
Left-over=Sobrante
Max=Maximo
Recycle output=Reciclar@nsalida
Set=Establecer
owned by @1=protegido por @1
Circular Saw is empty=La sierra circular está vacia
Circular Saw is working on @1=Sierra circular trabajando en @1
#: nodes.lua
Deprecated=Obsoleto
All-faces Acacia Tree=Árbol de Acacia, todas las caras
All-faces Aspen Tree=Álamo temblón, todas las caras
All-faces Jungle Tree=Árbol de Selva, todas las caras
All-faces Pine Tree=Pino, todas las caras
All-faces Tree=Tronco de Árbol
Cactus Brick=Ladrillos de Cactus
Cactus Checker=Cuadros de Cactus
Centered Wooden Tile=Parqué Centrado
Checker Stone Tile=Cuadros de Baldosa de Piedra
Circle Stone Bricks=Bloques de Piedra Circulares
Clean Glass=Cristal Limpio
Coal Checker=Cuadros de Carbón
Coal Glass=Cristal con Carbón
Clean Super Glow Glass=Cristal Súper Brillante Limpio
Trap Clean Super Glow Glass=Cristal Súper Brillante Limpio Falso
Trap Clean Glass=Cristal Limpio Falso
Clean Glow Glass=Cristal Brillante Limpio
Trap Clean Glow Glass=Cristal Brillante Limpio Falso
Coal Stone=Carbón y Piedra
Coal Stone Bricks=Ladrillos de Piedra de Carbon
Compressed Cobblestone=Adoquín Comprimido
Compressed Desert Cobblestone=Adoquín del Desierto Comprimido
Compressed Dirt=Tierra Comprimida
Copper Patina Block=Bloque de Pátina de Cobre
Empty Shelf=Estante vacio
Full Wooden Tile=Parqué Completo
Glow Glass=Cristal Brillante
Iron Checker=Cuadros de Hierro
Iron Glass=Cristal con Hierro
Iron Stone=Hierro y Piedra
Iron Stone Bricks=Ladrillo de Piedra de Hierro
Plankstone=Tablones de piedra
Rope=Soga
Split Stone Tile=Baldosas de Piedra Partida
Stone Bricks=Ladrillos de Piedra
Stone Tile=Baldosa de Piedra
Super Glow Glass=Cristal Súper Brillante
Sweeper=Limpiador
Tar=Alquitrán
Trap Desert Stone=Piedra del Desierto Falsa
Trap Glass=Cristal Falso
Trap Glow Glass=Cristal Brillante Falso
Trap Obsidian=Obsidiana Falsa
Trap Obsidian Glass=Vidrio de Obsidiana Falso
Trap Sandstone=Arenisca Falsa
Trap Stone=Piedra Falsa
Trap Super Glow Glass=Cristal Súper Brillante Falso
Wooden Tile=Parqué
Offset Wooden Tile=Parqué Ajustado
Downwards Wooden Tile=Parqué hacia Abajo
Leftwards Wooden Tile=Parqué hacia la Izquierda
Rightwards Wooden Tile=Parqué hacia la Derecha
#: ownership.lua
Sorry, @1 owns that spot.=Lo siento, @1 es dueño de ese lugar.
someone=alguien
#: stairsplus/common.lua
@1 Microblock=Microbloque de @1
@1 Slab=Losa de @1
@1 Slope=Pendiente de @1
@1 Panel=Panel de @1
@1 Stairs=Escalera de @1
#: stairsplus/registrations.lua
Concrete=Concreto
Cement=Cemento
Brass Block=Bloque de latón

View File

@ -1,93 +0,0 @@
# textdomain: moreblocks
# French translation for More Blocks.
# Copyright © 2011-2020 Hugo Locurcio and contributors
# This file is distributed under the same license as the More Blocks package.
# Hugo Locurcio <hugo.locurcio@hugo.pro>, 2013-2019.
# Jat15, 2013.
# CodeXP <codexp@gmx.net>, 2018.
#: circular_saw.lua
Circular Saw=Scie circulaire
Input material=Matériau@nd'entrée
Left-over=Reste
Max=Max
Recycle output=Sortie à@nrecycler
Set=Définir
owned by @1=propriété de @1
Circular Saw is empty=Scie circulaire vide
Circular Saw is working on @1=Scie circulaire manipulant @1
#: init.lua
[moreblocks] loaded.=[moreblocks] a été chargé.
#: nodes.lua
Deprecated=déprécié
All-faces Acacia Tree=Tronc d'arbre d'acacia (toutes faces)
All-faces Aspen Tree=Tronc d'arbre de peuplier (toutes faces)
All-faces Jungle Tree=Tronc d'arbre de jungle (toutes faces)
All-faces Pine Tree=Tronc d'arbre de pin (toutes faces)
All-faces Tree=Tronc d'arbre (toutes faces)
Cactus Brick=Briques de cactus
Cactus Checker=Damier en cactus
Centered Wooden Tile=Dalle en bois centrée
Checker Stone Tile=Damier de dalle en pierre
Circle Stone Bricks=Briques en pierre circulaires
Clean Glass=Verre propre
Coal Checker=Damier en charbon
Coal Glass=Verre de charbon
Clean Super Glow Glass=
Trap Clean Super Glow Glass=
Trap Clean Glass=
Clean Glow Glass=
Trap Clean Glow Glass=
Coal Stone=Pierre de charbon
Coal Stone Bricks=Briques en pierre de charbon
Compressed Cobblestone=Pierre taillée compressée
Compressed Desert Cobblestone=
Compressed Dirt=Terre compressée
Copper Patina Block=Bloc de patine de cuivre
Empty Shelf=Étagère vide
Full Wooden Tile=Dalle en bois complète
Glow Glass=Verre brillant
Iron Checker=Damier de fer
Iron Glass=Verre de fer
Iron Stone=Pierre de fer
Iron Stone Bricks=Briques en pierre de fer
Plankstone=Pierre-bois
Rope=Corde
Split Stone Tile=Dalle en pierre découpée
Stone Bricks=Briques en pierre
Stone Tile=Dalle en pierre
Super Glow Glass=Verre très brillant
Sweeper=Balai
Tar=Bitume
Trap Desert Stone=Pierre du désert traversable
Trap Glass=Verre traversable
Trap Glow Glass=Verre brillant traversable
Trap Obsidian=Obsidienne traversable
Trap Obsidian Glass=Verre d'obsidienne traversable
Trap Sandstone=Grès traversable
Trap Stone=Pierre traversable
Trap Super Glow Glass=Verre très brillant traversable
Wooden Tile=Dalle en bois
Offset Wooden Tile=Dalle en bois décalée
Downwards Wooden Tile=Dalle en bois vers le bas
Leftwards Wooden Tile=Dalle en bois vers la gauche
Rightwards Wooden Tile=Dalle en bois vers la droite
#: ownership.lua
Sorry, @1 owns that spot.=Désolé, @1 possède cet endroit.
someone=quelqu'un
#: stairsplus/common.lua
@1 Microblock=Microbloc en @1
@1 Slab=Demi-dalle en @1
@1 Slope=Pente en @1
@1 Panel=Barre en @1
@1 Stairs=Escaliers en @1

View File

@ -1,92 +0,0 @@
# textdomain: moreblocks
# Italian translation for More Blocks.
# Copyright © 2011-2020 Hugo Locurcio and contributors
# This file is distributed under the same license as the More Blocks package.
# Emon, 2016.
# CodeXP <codexp@gmx.net>, 2018.
#: circular_saw.lua
Circular Saw=Sega circolare
Input material=Materiale@niniziale
Left-over=Scarto
Max=Max.
Recycle output=Ricicla@nfinale
Set=Imp.
owned by @1=
Circular Saw is empty=Sega circolare, vuota
Circular Saw is working on @1=Sega circolare, in funzione su @1
#: init.lua
[moreblocks] loaded.=[moreblocks] caricato.
#: nodes.lua
Deprecated=
All-faces Acacia Tree=
All-faces Aspen Tree=
All-faces Jungle Tree=
All-faces Pine Tree=
All-faces Tree=Albero su ogni lato
Cactus Brick=Mattoni di cactus
Cactus Checker=Scacchiera in cactus
Centered Wooden Tile=Mattonella in legno centrata
Checker Stone Tile=
Circle Stone Bricks=Mattoni concentrici in pietra
Clean Glass=Vetro pulito
Coal Checker=Scacchiera in carbone
Coal Glass=Vetro e carbone
Clean Super Glow Glass=
Trap Clean Super Glow Glass=
Trap Clean Glass=
Clean Glow Glass=
Trap Clean Glow Glass=
Coal Stone=Pietra in carbone
Coal Stone Bricks=Mattoni di pietra in carbone
Compressed Cobblestone=
Compressed Desert Cobblestone=
Compressed Dirt=
Copper Patina Block=
Empty Shelf=Scaffale Vuoto
Full Wooden Tile=Mattonella in legno pieno
Glow Glass=Vetro luminoso
Iron Checker=Scacchiera in ferro
Iron Glass=Vetro e ferro
Iron Stone=Pietra in ferro
Iron Stone Bricks=Mattoni di pietra in ferro
Plankstone=Pietra e legno
Rope=Corda
Split Stone Tile=Mattonella in pietra divisa
Stone Bricks=
Stone Tile=Mattonella in pietra
Super Glow Glass=Super vetro luminoso
Sweeper=Spazzola
Tar=
Trap Desert Stone=
Trap Glass=Vetro trappola
Trap Glow Glass=Vetro luminoso trappola
Trap Obsidian=
Trap Obsidian Glass=
Trap Sandstone=
Trap Stone=Pietra trappola
Trap Super Glow Glass=Super vetro luminoso trappola
Wooden Tile=Mattonella in legno
Offset Wooden Tile=
Downwards Wooden Tile=
Leftwards Wooden Tile=
Rightwards Wooden Tile=
#: ownership.lua
Sorry, @1 owns that spot.=Spiacente, quel punto è di proprietà di @1
someone=qualcuno
#: stairsplus/common.lua
@1 Microblock=Microblocco @1
@1 Slab=Lastra - @1
@1 Slope=
@1 Panel=Pannello - @1
@1 Stairs=Scale - @1

View File

@ -1,93 +0,0 @@
# textdomain: moreblocks
# Polish translation for More Blocks.
# Copyright © 2011-2020 Hugo Locurcio and contributors
# This file is distributed under the same license as the More Blocks package.
# mat9117, 2019
# CodeXP <codexp@gmx.net>, 2018.
#: circular_saw.lua
Circular Saw=Piła tarczowa
Input material=wejście@nmateriał
Left-over=Resztki
Max=Maks
Recycle output=Przetwarzanie@nWyjście
Set=Ustaw
owned by @1=Należy do @1
Circular Saw is empty=Piła tarczowa jest pusta
Circular Saw is working on @1=Piła tarczowa pracuje na @1
#: init.lua
[moreblocks] loaded.=[moreblocks] załadowane.
#: nodes.lua
Deprecated=Przestarzałe
All-faces Acacia Tree=Wielostronna tekstura akacji
All-faces Aspen Tree=Wielostronna tekstura osiki
All-faces Jungle Tree=Wielostronna tekstura drzewa dżunglowego
All-faces Pine Tree=Wielostronna tekstura sosny
All-faces Tree=Wielostronna tekstura drzewa
Cactus Brick=Kaktusowa cegła
Cactus Checker=Kaktusowa szachownica
Centered Wooden Tile=Wyśrodkowany drewniany kafelek
Checker Stone Tile=Kamienna szachownica
Circle Stone Bricks=Okrągłe kamienne cegły
Clean Glass=Czyste szkło
Coal Checker=Węglowa szachownica
Coal Glass=Szkło węglowe
Clean Super Glow Glass=
Trap Clean Super Glow Glass=
Trap Clean Glass=
Clean Glow Glass=
Trap Clean Glow Glass=
Coal Stone=Kamień węglowy
Coal Stone Bricks=Węglowe kamienne cegły
Compressed Cobblestone=Skompresowany bruk
Compressed Desert Cobblestone=
Compressed Dirt=Skompresowana ziemia
Copper Patina Block=Blok patynowanej miedzi
Empty Shelf=Pusta półka
Full Wooden Tile=Pełny drewniany kafelek
Glow Glass=Świecące szkło
Iron Checker=Żelazna szachownica
Iron Glass=Żelazne szkło
Iron Stone=Żelazny kamień
Iron Stone Bricks=Żelazne kamienne cegły
Plankstone=Deskokamień
Rope=Lina
Split Stone Tile=Kamienny blok kafelkowy
Stone Bricks=Kamienne cegły
Stone Tile=Kamienny kafelek
Super Glow Glass=Super świecące szkło
Sweeper=Miotła
Tar=Smoła
Trap Desert Stone=Pułapka z pustynnego kamienia
Trap Glass=Szklana pułapka
Trap Glow Glass=Pułapka ze świecącego szkłą
Trap Obsidian=Obsydianowa pułapka
Trap Obsidian Glass=Pułapka z obsydianowego szkła
Trap Sandstone=Pułapka z piaskowca
Trap Stone=Kamienna pułapka
Trap Super Glow Glass=Pułapka z super świecącego szkła
Wooden Tile=Drewniany kafelek
Offset Wooden Tile=
Downwards Wooden Tile=Dolny drewniany kafelek
# @deprecated
Leftwards Wooden Tile=Lewy drewniany kafelek
# @deprecated
Rightwards Wooden Tile=Prawy drewniany kafelek
#: ownership.lua
Sorry, @1 owns that spot.=Przykro mi, to miejsce należy do @1
someone=ktoś
#: stairsplus/common.lua
@1 Microblock=@1 Mikroblok
@1 Slab=@1 Płyta
@1 Slope=@1 Spad
@1 Panel=@1 Panel
@1 Stairs=@1 Schody

View File

@ -1,95 +0,0 @@
# textdomain: moreblocks
# Russian translation for MOREBLOCKS minetest mod.
# Copyright (C) 2018 Hugo Locurcio and contributors
# This file is distributed under the same license as the MOREBLOCKS package.
# CodeXP <codexp@gmx.net>, 2018.
#
#, fuzzy
#: circular_saw.lua
Circular Saw=циркулярная пила
Input material=Входной@nматериал
Left-over=Остатки
Max=Кол.
Recycle output=Пере-@nобработка
Set=ОК
owned by @1=принадлежит @1
Circular Saw is empty=циркулярная пила пустая
Circular Saw is working on @1=циркулярная пила, @1 в обработке
#: init.lua
[MOD] moreblocks loaded.=[MOD] moreblocks загружен.
#: nodes.lua
Deprecated=устаревший
All-faces Acacia Tree=всестороннее бревно акации
All-faces Aspen Tree=всестороннее бревно осины
All-faces Jungle Tree=всестороннее бревно дерева джунглей
All-faces Pine Tree=всестороннее бревно сосновое
All-faces Tree=всестороннее бревно дерева
Cactus Brick=кирпич из кактуса
Cactus Checker=мозаика из кактуса
Centered Wooden Tile=деревянная мозаика (центр)
Checker Stone Tile=каменная мозаика
Circle Stone Bricks=кольцевой камень
Clean Glass=чистое стекло
Coal Checker=угольная мозаика
Coal Glass=угольное стекло
Clean Super Glow Glass=
Trap Clean Super Glow Glass=
Trap Clean Glass=
Clean Glow Glass=
Trap Clean Glow Glass=
Coal Stone=угольный камень
Coal Stone Bricks=угольно-каменный кирпич
Compressed Cobblestone=прессованный булыжник
Compressed Desert Cobblestone=
Compressed Dirt=прессованная земля
Copper Patina Block=медный патинированный блок
Empty Shelf=пустые полки
Full Wooden Tile=деревянная мозаика
Glow Glass=светящееся стекло
Iron Checker=стальная мозаика
Iron Glass=металлизированное стекло
Iron Stone=железный камень
Iron Stone Bricks=железно-каменный кирпич
Plankstone=дерево-каменная мозаика
Rope=верёвка
Split Stone Tile=каменная мозаика
Stone Bricks=каменный кирпич
Stone Tile=каменная плитка
Super Glow Glass=супер светящееся стекло
Sweeper=метёлка
Tar=смола
Trap Desert Stone=мнимый пустынный камень
Trap Glass=мнимое стекло
Trap Glow Glass=мнимое светящееся стекло
Trap Obsidian=мнимый обсидиан
Trap Obsidian Glass=мнимое обсидиановое стекло
Trap Sandstone=мнимый песчаник
Trap Stone=мнимый камень
Trap Super Glow Glass=мнимое супер светящееся стекло
Wooden Tile=деревянная мозаика
Offset Wooden Tile=деревянная мозаика (сверху)
# @deprecated
Downwards Wooden Tile=деревянная мозаика (снизу)
# @deprecated
Leftwards Wooden Tile=деревянная мозаика (слева)
# @deprecated
Rightwards Wooden Tile=деревянная мозаика (справа)
#: ownership.lua
Sorry, @1 owns that spot.=Извините, это принадлежит @1.
someone=кому-то
#: stairsplus/common.lua
@1 Microblock=@1 (микроблок)
@1 Slab=@1 (плита)
@1 Slope=@1 (наклон)
@1 Panel=@1 (панель)
@1 Stairs=@1 (лестница)

View File

@ -1,89 +0,0 @@
# textdomain: moreblocks
#: circular_saw.lua
Circular Saw=
Input material=
Left-over=
Max=
Recycle output=
Set=
owned by @1=
Circular Saw is empty=
Circular Saw is working on @1=
#: nodes.lua
Deprecated=
All-faces Acacia Tree=
All-faces Aspen Tree=
All-faces Jungle Tree=
All-faces Pine Tree=
All-faces Tree=
Cactus Brick=
Cactus Checker=
Centered Wooden Tile=
Checker Stone Tile=
Circle Stone Bricks=
Clean Glass=
Coal Checker=
Coal Glass=
Clean Super Glow Glass=
Trap Clean Super Glow Glass=
Trap Clean Glass=
Clean Glow Glass=
Trap Clean Glow Glass=
Coal Stone=
Coal Stone Bricks=
Compressed Cobblestone=
Compressed Desert Cobblestone=
Compressed Dirt=
Copper Patina Block=
Empty Shelf=
Full Wooden Tile=
Glow Glass=
Iron Checker=
Iron Glass=
Iron Stone=
Iron Stone Bricks=
Plankstone=
Rope=
Split Stone Tile=
Stone Bricks=
Stone Tile=
Super Glow Glass=
Sweeper=
Tar=
Trap Desert Stone=
Trap Glass=
Trap Glow Glass=
Trap Obsidian=
Trap Obsidian Glass=
Trap Sandstone=
Trap Stone=
Trap Super Glow Glass=
Wooden Tile=
Offset Wooden Tile=
Downwards Wooden Tile=
Leftwards Wooden Tile=
Rightwards Wooden Tile=
#: ownership.lua
Sorry, @1 owns that spot.=
someone=
#: stairsplus/common.lua
@1 Microblock=
@1 Slab=
@1 Slope=
@1 Panel=
@1 Stairs=
#: stairsplus/registrations.lua
Concrete=
Cement=
Brass Block=

View File

@ -1,94 +0,0 @@
# textdomain: moreblocks
# zh_CN translation for More Blocks.
# Copyright © 2011-2020 Hugo Locurcio and contributors
# This file is distributed under the same license as the More Blocks package.
# IFRFSX <IFRFSX@protonmail.com>, 2020.
#: circular_saw.lua
Circular Saw=圆锯
Input material=输入@n材料
Left-over=剩余材料
Max=最大值
Recycle output=回收@n输出物
Set=设置
owned by @1=属于@1所有
Circular Saw is empty=圆锯是空的
Circular Saw is working on @1=圆锯正在加工@1
#: nodes.lua
Deprecated=弃用
All-faces Acacia Tree=全切面相思树木方块
All-faces Aspen Tree=全切面白杨树木方块
All-faces Jungle Tree=全切面丛林树木方块
All-faces Pine Tree=全切面松树木方块
All-faces Tree=全切面树木方块
Cactus Brick=仙人掌砖
Cactus Checker=仙人掌棋盘方块
Centered Wooden Tile=居中的木瓦
Checker Stone Tile=棋盘石瓦
Circle Stone Bricks=圆石砖
Clean Glass=干净的玻璃
Coal Checker=棋盘煤块
Coal Glass=煤玻璃
Clean Super Glow Glass=
Trap Clean Super Glow Glass=
Trap Clean Glass=
Clean Glow Glass=
Trap Clean Glow Glass=
Coal Stone=煤炭石
Coal Stone Bricks=煤炭石砖
Compressed Cobblestone=压缩圆石
Compressed Desert Cobblestone=
Compressed Dirt=压缩土
Copper Patina Block=铜绿方块
Empty Shelf=空书架
Full Wooden Tile=全木瓦
Glow Glass=发光玻璃
Iron Checker=棋盘铁方块
Iron Glass=铁玻璃
Iron Stone=铁石
Iron Stone Bricks=铁石砖
Plankstone=板石
Rope=绳子
Split Stone Tile=裂石砖
Stone Bricks=石砖
Stone Tile=石瓦
Super Glow Glass=超级发光玻璃
Sweeper=清扫器
Tar=焦油
Trap Desert Stone=陷阱沙漠石
Trap Glass=陷阱玻璃
Trap Glow Glass=陷阱发光玻璃
Trap Obsidian=陷阱黑耀石
Trap Obsidian Glass=陷阱黑耀石玻璃
Trap Sandstone=陷阱沙石
Trap Stone=陷阱石
Trap Super Glow Glass=陷阱超级发光玻璃
Wooden Tile=木瓦
Offset Wooden Tile=胶合木瓦
Downwards Wooden Tile=向下的木瓦
Leftwards Wooden Tile=向左的木瓦
Rightwards Wooden Tile=向右的木瓦
#: ownership.lua
Sorry, @1 owns that spot.=抱歉,那个位置是@1的。
someone=某人
#: stairsplus/common.lua
@1 Microblock=@1小方块
@1 Slab=@1台阶
@1 Slope=@1斜坡
@1 Panel=@1嵌板
@1 Stairs=@1楼梯
#: stairsplus/registrations.lua
Concrete=
Cement=
Brass Block=

View File

@ -1,94 +0,0 @@
# textdomain: moreblocks
# zh_TW translation for More Blocks.
# Copyright © 2011-2020 Hugo Locurcio and contributors
# This file is distributed under the same license as the More Blocks package.
# IFRFSX <IFRFSX@protonmail.com>, 2020.
#: circular_saw.lua
Circular Saw=圓鋸
Input material=輸入@n材料
Left-over=剩餘材料
Max=最大值
Recycle output=回收@n輸出物
Set=設置
owned by @1=屬於@1所有
Circular Saw is empty=圓鋸是空的
Circular Saw is working on @1=圓鋸正在加工@1
#: nodes.lua
Deprecated=棄用
All-faces Acacia Tree=全切面相思樹木方塊
All-faces Aspen Tree=全切面白楊樹木方塊
All-faces Jungle Tree=全切面叢林樹木方塊
All-faces Pine Tree=全切面松樹木方塊
All-faces Tree=全切面樹木方塊
Cactus Brick=仙人掌磚
Cactus Checker=仙人掌棋盤方塊
Centered Wooden Tile=居中的木瓦
Checker Stone Tile=棋盤石瓦
Circle Stone Bricks=圓石磚
Clean Glass=乾淨的玻璃
Coal Checker=棋盤煤塊
Coal Glass=煤玻璃
Clean Super Glow Glass=
Trap Clean Super Glow Glass=
Trap Clean Glass=
Clean Glow Glass=
Trap Clean Glow Glass=
Coal Stone=煤炭石
Coal Stone Bricks=煤炭石磚
Compressed Cobblestone=壓縮圓石
Compressed Desert Cobblestone=
Compressed Dirt=壓縮土
Copper Patina Block=銅綠方塊
Empty Shelf=空書架
Full Wooden Tile=全木瓦
Glow Glass=發光玻璃
Iron Checker=棋盤鐵方塊
Iron Glass=鐵玻璃
Iron Stone=鐵石
Iron Stone Bricks=鐵石磚
Plankstone=板石
Rope=繩子
Split Stone Tile=裂石磚
Stone Bricks=石磚
Stone Tile=石瓦
Super Glow Glass=超級發光玻璃
Sweeper=清掃器
Tar=焦油
Trap Desert Stone=陷阱沙漠石
Trap Glass=陷阱玻璃
Trap Glow Glass=陷阱發光玻璃
Trap Obsidian=陷阱黑耀石
Trap Obsidian Glass=陷阱黑耀石玻璃
Trap Sandstone=陷阱沙石
Trap Stone=陷阱石
Trap Super Glow Glass=陷阱超級發光玻璃
Wooden Tile=木瓦
Offset Wooden Tile=膠合木瓦
Downwards Wooden Tile=向下的木瓦
Leftwards Wooden Tile=向左的木瓦
Rightwards Wooden Tile=向右的木瓦
#: ownership.lua
Sorry, @1 owns that spot.=抱歉,那個位置是@1的。
someone=某人
#: stairsplus/common.lua
@1 Microblock=@1小方塊
@1 Slab=@1臺階
@1 Slope=@1斜坡
@1 Panel=@1嵌板
@1 Stairs=@1樓梯
#: stairsplus/registrations.lua
Concrete=
Cement=
Brass Block=

577
nodes.lua
View File

@ -1,577 +0,0 @@
--[[
More Blocks: node definitions
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]
local S = moreblocks.S
local sound_dirt = moreblocks.node_sound_dirt_defaults()
local sound_wood = moreblocks.node_sound_wood_defaults()
local sound_stone = moreblocks.node_sound_stone_defaults()
local sound_glass = moreblocks.node_sound_glass_defaults()
local sound_leaves = moreblocks.node_sound_leaves_defaults()
-- Don't break on 0.4.14 and earlier.
local sound_metal = (moreblocks.node_sound_metal_defaults
and moreblocks.node_sound_metal_defaults() or sound_stone)
local function tile_tiles(name)
local tex = "moreblocks_" ..name.. ".png"
return {tex, tex, tex, tex, tex.. "^[transformR90", tex.. "^[transformR90"}
end
local function wood_tile_replace(itemstack, placer, pointed_thing)
local substack
if itemstack:get_name() == "moreblocks:wood_tile_flipped" then
substack = ItemStack("moreblocks:wood_tile")
else -- right, left, and down variants
substack = ItemStack("moreblocks:wood_tile_offset")
end
local _, success = minetest.item_place(substack, placer, pointed_thing)
if success then
itemstack:take_item()
end
return itemstack
end
local deprecated = (" ("..S('Deprecated')..")")
local nodes = {
["wood_tile"] = {
description = S("Wooden Tile"),
groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
is_ground_content = false,
paramtype2 = "facedir",
place_param2 = 0,
tiles = {"default_wood.png^moreblocks_wood_tile.png",
"default_wood.png^moreblocks_wood_tile.png",
"default_wood.png^moreblocks_wood_tile.png",
"default_wood.png^moreblocks_wood_tile.png",
"default_wood.png^moreblocks_wood_tile.png^[transformR90",
"default_wood.png^moreblocks_wood_tile.png^[transformR90"},
sounds = sound_wood,
},
["wood_tile_flipped"] = {
description = S("Wooden Tile") .. deprecated,
tiles = {"default_wood.png^moreblocks_wood_tile.png^[transformR90",
"default_wood.png^moreblocks_wood_tile.png^[transformR90",
"default_wood.png^moreblocks_wood_tile.png^[transformR90",
"default_wood.png^moreblocks_wood_tile.png^[transformR90",
"default_wood.png^moreblocks_wood_tile.png^[transformR180",
"default_wood.png^moreblocks_wood_tile.png^[transformR180"},
no_stairs = true,
on_place = wood_tile_replace
},
["wood_tile_center"] = {
description = S("Centered Wooden Tile"),
groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
is_ground_content = false,
tiles = {"default_wood.png^moreblocks_wood_tile_center.png"},
sounds = sound_wood,
},
["wood_tile_full"] = {
description = S("Full Wooden Tile"),
groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
is_ground_content = false,
tiles = tile_tiles("wood_tile_full"),
sounds = sound_wood,
},
["wood_tile_offset"] = {
description = S("Offset Wooden Tile"),
paramtype2 = "facedir",
place_param2 = 0,
groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
is_ground_content = false,
tiles = {"default_wood.png^moreblocks_wood_tile_offset.png"},
sounds = sound_wood,
no_stairs = true,
},
["wood_tile_down"] = {
description = S("Downwards Wooden Tile") .. deprecated,
tiles = {"default_wood.png^[transformR180^moreblocks_wood_tile_offset.png^[transformR180"},
no_stairs = true,
on_place = wood_tile_replace
},
["wood_tile_left"] = {
description = S("Leftwards Wooden Tile") .. deprecated,
tiles = {"default_wood.png^[transformR270^moreblocks_wood_tile_offset.png^[transformR270"},
no_stairs = true,
on_place = wood_tile_replace
},
["wood_tile_right"] = {
description = S("Rightwards Wooden Tile") .. deprecated,
tiles = {"default_wood.png^[transformR90^moreblocks_wood_tile_offset.png^[transformR90"},
no_stairs = true,
on_place = wood_tile_replace
},
["circle_stone_bricks"] = {
description = S("Circle Stone Bricks"),
groups = {stone = 1, cracky = 3},
is_ground_content = false,
sounds = sound_stone,
},
["grey_bricks"] = {
description = S("Stone Bricks"),
paramtype2 = "facedir",
place_param2 = 0,
groups = {cracky = 3},
is_ground_content = false,
sounds = sound_stone,
},
["coal_stone_bricks"] = {
description = S("Coal Stone Bricks"),
paramtype2 = "facedir",
place_param2 = 0,
groups = {stone = 1, cracky = 3},
is_ground_content = false,
sounds = sound_stone,
},
["iron_stone_bricks"] = {
description = S("Iron Stone Bricks"),
paramtype2 = "facedir",
place_param2 = 0,
groups = {stone = 1, cracky = 3},
is_ground_content = false,
sounds = sound_stone,
},
["stone_tile"] = {
description = S("Stone Tile"),
groups = {stone = 1, cracky = 3},
is_ground_content = false,
sounds = sound_stone,
},
["split_stone_tile"] = {
description = S("Split Stone Tile"),
paramtype2 = "facedir",
place_param2 = 0,
tiles = {"moreblocks_split_stone_tile_top.png",
"moreblocks_split_stone_tile.png"},
groups = {stone = 1, cracky = 3},
is_ground_content = false,
sounds = sound_stone,
},
["checker_stone_tile"] = {
description = S("Checker Stone Tile"),
groups = {stone = 1, cracky = 3},
is_ground_content = false,
sounds = sound_stone,
},
["tar"] = {
description = S("Tar"),
groups = {cracky=2, tar_block=1},
is_ground_content = false,
sounds = sound_stone,
},
["dirt_compressed"] = {
description = S("Compressed Dirt"),
groups = {crumbly=2},
is_ground_content = false,
sounds = sound_dirt,
},
["cobble_compressed"] = {
description = S("Compressed Cobblestone"),
groups = {cracky = 1},
is_ground_content = false,
sounds = sound_stone,
},
["desert_cobble_compressed"] = {
description = S("Compressed Desert Cobblestone"),
groups = {cracky = 1},
is_ground_content = false,
sounds = sound_stone,
},
["plankstone"] = {
description = S("Plankstone"),
paramtype2 = "facedir",
place_param2 = 0,
groups = {cracky = 3},
is_ground_content = false,
tiles = tile_tiles("plankstone"),
sounds = sound_stone,
},
["iron_glass"] = {
description = S("Iron Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"default_glass.png^[colorize:#DEDEDE", "default_glass_detail.png^[colorize:#DEDEDE"},
use_texture_alpha = "clip",
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass,
},
["coal_glass"] = {
description = S("Coal Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"default_glass.png^[colorize:#828282", "default_glass_detail.png^[colorize:#828282"},
use_texture_alpha = "clip",
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass,
},
["clean_glass"] = {
description = S("Clean Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"moreblocks_clean_glass.png", "moreblocks_clean_glass_detail.png"},
use_texture_alpha = "clip",
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass,
},
["cactus_brick"] = {
description = S("Cactus Brick"),
paramtype2 = "facedir",
place_param2 = 0,
groups = {cracky = 3},
is_ground_content = false,
sounds = sound_stone,
},
["cactus_checker"] = {
description = S("Cactus Checker"),
groups = {stone = 1, cracky = 3},
is_ground_content = false,
tiles = {"default_stone.png^moreblocks_cactus_checker.png",
"default_stone.png^moreblocks_cactus_checker.png",
"default_stone.png^moreblocks_cactus_checker.png",
"default_stone.png^moreblocks_cactus_checker.png",
"default_stone.png^moreblocks_cactus_checker.png^[transformR90",
"default_stone.png^moreblocks_cactus_checker.png^[transformR90"},
sounds = sound_stone,
},
["empty_shelf"] = {
description = S("Empty Shelf"),
paramtype2 = "facedir",
tiles = {"default_wood.png", "default_wood.png", "default_wood.png",
"default_wood.png", "moreblocks_empty_shelf.png", "moreblocks_empty_shelf.png"},
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3},
is_ground_content = false,
sounds = sound_wood,
furnace_burntime = 15,
no_stairs = true,
},
["coal_stone"] = {
description = S("Coal Stone"),
groups = {stone = 1, cracky = 3},
is_ground_content = false,
sounds = sound_stone,
},
["iron_stone"] = {
description = S("Iron Stone"),
groups = {stone = 1, cracky = 3},
is_ground_content = false,
sounds = sound_stone,
},
["coal_checker"] = {
description = S("Coal Checker"),
tiles = {"default_stone.png^moreblocks_coal_checker.png",
"default_stone.png^moreblocks_coal_checker.png",
"default_stone.png^moreblocks_coal_checker.png",
"default_stone.png^moreblocks_coal_checker.png",
"default_stone.png^moreblocks_coal_checker.png^[transformR90",
"default_stone.png^moreblocks_coal_checker.png^[transformR90"},
groups = {stone = 1, cracky = 3},
is_ground_content = false,
sounds = sound_stone,
},
["iron_checker"] = {
description = S("Iron Checker"),
tiles = {"default_stone.png^moreblocks_iron_checker.png",
"default_stone.png^moreblocks_iron_checker.png",
"default_stone.png^moreblocks_iron_checker.png",
"default_stone.png^moreblocks_iron_checker.png",
"default_stone.png^moreblocks_iron_checker.png^[transformR90",
"default_stone.png^moreblocks_iron_checker.png^[transformR90"},
groups = {stone = 1, cracky = 3},
is_ground_content = false,
sounds = sound_stone,
},
["trap_stone"] = {
description = S("Trap Stone"),
drawtype = "glasslike_framed",
tiles = {"default_stone.png^moreblocks_trap_box.png"},
walkable = false,
groups = {cracky = 3},
paramtype = "light",
is_ground_content = false,
sounds = sound_stone,
no_stairs = true,
},
["trap_desert_stone"] = {
description = S("Trap Desert Stone"),
drawtype = "glasslike_framed",
tiles = {"default_desert_stone.png^moreblocks_trap_box.png"},
walkable = false,
groups = {cracky = 3},
paramtype = "light",
is_ground_content = false,
sounds = sound_stone,
no_stairs = true,
},
["trap_glass"] = {
description = S("Trap Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"default_glass.png^moreblocks_trap_box_glass.png", "default_glass_detail.png"},
use_texture_alpha = "clip",
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
walkable = false,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass,
no_stairs = true,
},
["trap_obsidian_glass"] = {
description = S("Trap Obsidian Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"default_obsidian_glass.png^moreblocks_trap_box_glass.png", "default_obsidian_glass_detail.png"},
use_texture_alpha = "clip",
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
walkable = false,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass,
no_stairs = true,
},
["trap_obsidian"] = {
description = S("Trap Obsidian"),
drawtype = "glasslike_framed",
tiles = {"default_obsidian.png^moreblocks_trap_box.png"},
walkable = false,
groups = {cracky = 1, level = 2},
paramtype = "light",
is_ground_content = false,
sounds = sound_stone,
no_stairs = true,
},
["trap_clean_glass"] = {
description = S("Trap Clean Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"moreblocks_clean_glass.png^moreblocks_trap_box_glass.png", "moreblocks_clean_glass_detail.png"},
use_texture_alpha = "clip",
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
walkable = false,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass,
no_stairs = true,
},
["trap_sandstone"] = {
description = S("Trap Sandstone"),
drawtype = "glasslike_framed",
tiles = {"default_sandstone.png^moreblocks_trap_box.png"},
walkable = false,
groups = {crumbly = 1, cracky = 3},
paramtype = "light",
is_ground_content = false,
sounds = sound_stone,
no_stairs = true,
},
["all_faces_tree"] = {
description = S("All-faces Tree"),
tiles = {"default_tree_top.png"},
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
sounds = sound_wood,
furnace_burntime = 30,
},
["all_faces_jungle_tree"] = {
description = S("All-faces Jungle Tree"),
tiles = {"default_jungletree_top.png"},
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
sounds = sound_wood,
furnace_burntime = 38,
},
["all_faces_pine_tree"] = {
description = S("All-faces Pine Tree"),
tiles = {"default_pine_tree_top.png"},
groups = {tree = 1, choppy = 3, oddly_breakable_by_hand = 1, flammable = 3},
sounds = sound_wood,
furnace_burntime = 26,
},
["all_faces_acacia_tree"] = {
description = S("All-faces Acacia Tree"),
tiles = {"default_acacia_tree_top.png"},
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
sounds = sound_wood,
furnace_burntime = 34,
},
["all_faces_aspen_tree"] = {
description = S("All-faces Aspen Tree"),
tiles = {"default_aspen_tree_top.png"},
groups = {tree = 1, choppy = 3, oddly_breakable_by_hand = 1, flammable = 3},
sounds = sound_wood,
furnace_burntime = 22,
},
["glow_glass"] = {
description = S("Glow Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"default_glass.png^[colorize:#E9CD61", "default_glass_detail.png^[colorize:#E9CD61"},
use_texture_alpha = "clip",
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
light_source = 11,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass,
},
["clean_glow_glass"] = {
description = S("Clean Glow Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"moreblocks_clean_glass.png^[colorize:#E9CD61", "moreblocks_clean_glass_detail.png^[colorize:#E9CD61"},
use_texture_alpha = "clip",
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
light_source = 11,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass,
},
["trap_glow_glass"] = {
description = S("Trap Glow Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"default_glass.png^[colorize:#E9CD61^moreblocks_trap_box_glass.png", "default_glass_detail.png^[colorize:#E9CD61"},
use_texture_alpha = "clip",
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
light_source = 11,
walkable = false,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass,
no_stairs = true,
},
["trap_clean_glow_glass"] = {
description = S("Trap Clean Glow Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"moreblocks_clean_glass.png^[colorize:#E9CD61^moreblocks_trap_box_glass.png", "moreblocks_clean_glass_detail.png^[colorize:#E9CD61"},
use_texture_alpha = "clip",
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
light_source = 11,
walkable = false,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass,
no_stairs = true,
},
["super_glow_glass"] = {
description = S("Super Glow Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"default_glass.png^[colorize:#FFFF78", "default_glass_detail.png^[colorize:#FFFF78"},
use_texture_alpha = "clip",
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
light_source = default.LIGHT_MAX,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass,
},
["clean_super_glow_glass"] = {
description = S("Clean Super Glow Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"moreblocks_clean_glass.png^[colorize:#FFFF78", "moreblocks_clean_glass_detail.png^[colorize:#FFFF78"},
use_texture_alpha = "clip",
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
light_source = default.LIGHT_MAX,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass,
},
["trap_super_glow_glass"] = {
description = S("Trap Super Glow Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"default_glass.png^[colorize:#FFFF78^moreblocks_trap_box_glass.png", "default_glass_detail.png^[colorize:#FFFF78"},
use_texture_alpha = "clip",
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
light_source = default.LIGHT_MAX,
walkable = false,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass,
no_stairs = true,
},
["trap_clean_super_glow_glass"] = {
description = S("Trap Clean Super Glow Glass"),
drawtype = "glasslike_framed_optional",
tiles = {"moreblocks_clean_glass.png^[colorize:#FFFF78^moreblocks_trap_box_glass.png", "moreblocks_clean_glass_detail.png^[colorize:#FFFF78"},
use_texture_alpha = "clip",
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
light_source = default.LIGHT_MAX,
walkable = false,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = sound_glass,
no_stairs = true,
},
["rope"] = {
description = S("Rope"),
drawtype = "signlike",
inventory_image = "moreblocks_rope.png",
wield_image = "moreblocks_rope.png",
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
paramtype2 = "wallmounted",
walkable = false,
climbable = true,
selection_box = {type = "wallmounted",},
groups = {snappy = 3, flammable = 2},
sounds = sound_leaves,
no_stairs = true,
},
["copperpatina"] = {
description = S("Copper Patina Block"),
groups = {cracky = 1, level = 2},
is_ground_content = false,
sounds = sound_metal,
},
}
for name, def in pairs(nodes) do
def.tiles = def.tiles or {"moreblocks_" ..name.. ".png"}
minetest.register_node("moreblocks:" ..name, def)
minetest.register_alias(name, "moreblocks:" ..name)
def_copy = table.copy(def)
-- Use the primary tile for all sides of cut glasslike nodes.
-- This makes them easier to see
if
#def_copy.tiles > 1 and
def_copy.drawtype and
def_copy.drawtype == "glasslike_framed" or
def_copy.drawtype == "glasslike_framed_optional"
then
def.tiles = {def_copy.tiles[1]}
end
if not def.no_stairs then
local groups = {}
for k, v in pairs(def.groups) do groups[k] = v end
stairsplus:register_all("moreblocks", name, "moreblocks:" ..name, {
description = def.description,
groups = groups,
tiles = def.tiles,
sunlight_propagates = def.sunlight_propagates,
light_source = def.light_source,
sounds = def.sounds,
})
end
end
-- Items
minetest.register_craftitem("moreblocks:sweeper", {
description = S("Sweeper"),
inventory_image = "moreblocks_sweeper.png",
})

View File

@ -1,41 +0,0 @@
--[[
More Blocks: ownership handling
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]
local S = moreblocks.S
function moreblocks.node_is_owned(pos, placer)
local ownername = false
if type(IsPlayerNodeOwner) == "function" then -- node_ownership mod
if HasOwner(pos, placer) then -- returns true if the node is owned
if not IsPlayerNodeOwner(pos, placer:get_player_name()) then
if type(getLastOwner) == "function" then -- ...is an old version
ownername = getLastOwner(pos)
elseif type(GetNodeOwnerName) == "function" then -- ...is a recent version
ownername = GetNodeOwnerName(pos)
else
ownername = S("someone")
end
end
end
elseif type(isprotect)=="function" then -- glomie's protection mod
if not isprotect(5, pos, placer) then
ownername = S("someone")
end
elseif type(protector)=="table" and type(protector.can_dig)=="function" then -- Zeg9's protection mod
if not protector.can_dig(5, pos, placer) then
ownername = S("someone")
end
end
if ownername ~= false then
minetest.chat_send_player( placer:get_player_name(), S("Sorry, @1 owns that spot.", ownername) )
return true
else
return false
end
end

View File

@ -1,94 +0,0 @@
--[[
More Blocks: redefinitions of default stuff
Copyright © 2011-2020 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]
local modname = minetest.get_current_modname()
-- Redefine some of the default crafting recipes to be more productive
-- Auxiliary function: take a recipe as returned by get_all_craft_recipes
-- and turn it into a table that can be used to clear a craft or declare a new one
local reconstruct_internal_craft = function(recipe)
local recp = {
{ "", "", "" },
{ "", "", "" },
{ "", "", "" },
}
local width = recipe.width
for idx, item in pairs(recipe.items) do
local row = math.ceil(idx / width)
local col = idx - (row-1)*width
recp[row][col] = item
end
return recp
end
-- Change the amount produced by recipe by apply func to the old amount
local change_recipe_amount = function(product, recipe, func)
-- if width == 0, this is a shapeless recipe, for which the
-- internal and Lua API recipe table is the same.
-- Otherwise we need to reconstruct the table for the shaped recipe.
local shapeless = (recipe.width == 0)
local recp = shapeless and recipe.items or reconstruct_internal_craft(recipe)
local oldamount = tonumber(recipe.output:match(" [0-9]+$") or "1")
local newamount = func(oldamount)
-- remove old crafting recipe
local redo = { recipe = recp }
-- preserve shapelessness
if shapeless then
redo.type = "shapeless"
end
minetest.clear_craft(redo)
-- new output
redo.output = ("%s %d"):format(product, newamount)
minetest.register_craft(redo)
minetest.log("action", ("[MOD]%s: recipe for %s production: %d => %d"):format(modname, product, oldamount, newamount))
end
local increase_craft_production = function(product, func)
local recipes = minetest.get_all_craft_recipes(product)
for _, r in pairs(recipes) do
if r.type == "normal" or r.method == "normal" then
change_recipe_amount(product, r, func)
end
end
end
-- Increase the crafting production according to the rules from the table, which is in the form:
-- {
-- { detector, amount changing function }
-- { detector, amount changing function }
-- }
-- TODO: consider exporting this function to other mods
local increase_craft_production_table = function(map_table)
for product, _ in pairs(minetest.registered_items) do
for _, tab in pairs(map_table) do
local detector = tab[1]
local func = tab[2]
if detector(product) then
increase_craft_production(product, func)
-- only apply one boost
break
end
end
end
end
increase_craft_production_table({
{ function(n) return n:match('^default:sign_wall') end, function(old) return old + 1 end },
{ function(n) return n == 'default:paper' end, function(old) return old*4 end },
{ function(n) return n:match('^carts:.*rail$') or n:match('^default:.*rail$') end, function(old) return old + old/2 end },
})
minetest.register_craft({
type = "toolrepair",
additional_wear = -0.10, -- Tool repair buff (10% bonus instead of 2%).
})

View File

@ -1,20 +0,0 @@
--[[
More Blocks: sound definitions
Copyright © 2011-2021 Hugo Locurcio and contributors.
Licensed under the zlib license. See LICENSE.md for more information.
--]]
local has_default_mod = minetest.get_modpath("default")
for _, sound in ipairs({"dirt", "wood", "stone", "metal", "glass", "leaves"}) do
-- use sound-function from default if available
-- otherwise fall back to a no-op function (no sounds)
local sound_function_name = "node_sound_" .. sound .. "_defaults"
if has_default_mod then
-- use default sounds
moreblocks[sound_function_name] = default[sound_function_name]
else
-- no-op
moreblocks[sound_function_name] = function() end
end
end

View File

@ -93,5 +93,5 @@ function stairsplus:register_custom_subset(subset, modname, subname, recipeitem,
stairsplus.register_single(v[1], v[2], stairsplus.defs[v[1]][v[2]], modname, subname, recipeitem, fields)
end
circular_saw.known_nodes[recipeitem] = {modname, subname}
--circular_saw.known_nodes[recipeitem] = {modname, subname}
end

View File

@ -79,4 +79,4 @@ dofile(modpath .. "/slopes.lua")
dofile(modpath .. "/panels.lua")
dofile(modpath .. "/microblocks.lua")
dofile(modpath .. "/custom.lua")
dofile(modpath .. "/registrations.lua")
--dofile(modpath .. "/registrations.lua")

View File

@ -39,5 +39,5 @@ function stairsplus:register_micro(modname, subname, recipeitem, fields)
stairsplus.register_single("micro", alternate, def, modname, subname, recipeitem, fields)
end
circular_saw.known_nodes[recipeitem] = {modname, subname}
--circular_saw.known_nodes[recipeitem] = {modname, subname}
end

View File

@ -39,5 +39,5 @@ function stairsplus:register_panel(modname, subname, recipeitem, fields)
stairsplus.register_single("panel", alternate, def, modname, subname, recipeitem, fields)
end
circular_saw.known_nodes[recipeitem] = {modname, subname}
--circular_saw.known_nodes[recipeitem] = {modname, subname}
end

View File

@ -39,5 +39,5 @@ function stairsplus:register_slab(modname, subname, recipeitem, fields)
stairsplus.register_single("slab", alternate, shape, modname, subname, recipeitem, fields)
end
circular_saw.known_nodes[recipeitem] = {modname, subname}
--circular_saw.known_nodes[recipeitem] = {modname, subname}
end

View File

@ -39,5 +39,5 @@ function stairsplus:register_slope(modname, subname, recipeitem, fields)
stairsplus.register_single("slope", alternate, def, modname, subname, recipeitem, fields)
end
circular_saw.known_nodes[recipeitem] = {modname, subname}
--circular_saw.known_nodes[recipeitem] = {modname, subname}
end

View File

@ -39,5 +39,5 @@ function stairsplus:register_stair(modname, subname, recipeitem, fields)
stairsplus.register_single("stair", alternate, def, modname, subname, recipeitem, fields)
end
circular_saw.known_nodes[recipeitem] = {modname, subname}
--circular_saw.known_nodes[recipeitem] = {modname, subname}
end

Binary file not shown.

Before

Width:  |  Height:  |  Size: 697 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 685 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 299 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 446 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 574 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 474 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 439 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 738 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 163 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 229 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 481 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 356 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 258 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 269 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 167 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 167 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 725 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 739 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 167 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 229 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 483 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 144 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 335 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 354 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 352 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 272 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 278 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 271 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 169 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 309 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 266 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 286 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 387 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 281 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 433 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 282 B