1
0
mirror of https://github.com/adrido/darkage.git synced 2025-06-30 07:20:51 +02:00

1 Commits

Author SHA1 Message Date
2e82270d0e Version MFF. 2018-09-07 20:06:24 +02:00
129 changed files with 1535 additions and 2054 deletions

22
.gitattributes vendored
View File

@ -1,22 +0,0 @@
# Auto detect text files and perform LF normalization
* text=auto
# Custom for Visual Studio
*.cs diff=csharp
*.sln merge=union
*.csproj merge=union
*.vbproj merge=union
*.fsproj merge=union
*.dbproj merge=union
# Standard to msysgit
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain

0
.gitignore vendored Normal file → Executable file
View File

View File

@ -1,21 +0,0 @@
MIT License
Copyright (c) 2025 adrido
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

98
README.md Normal file → Executable file
View File

@ -1,60 +1,76 @@
# DarkAge Mod for Minetest # Darkage mod for Minetest
This mod adds some new blocks that allow pre-industrial looking buildings to be made.
Of course, feel free to use them for any other type of construction.
Original mod by Master Gollum This mod originally created by MasterGollum and is now maintained and being improved upon by addi and CraigyDavi.
Modified by addi.
Contains code from CragiDavi and HybridDog **Depends:** default, stairs?, stairsplus?
## Introduction **License:** Code and textures, [WTFPL](http://www.wtfpl.net/txt/copying/)
This mod adds a few new blocks that allows to create new buildings in a **Installation:** Unzip the file and rename it to "darkage". Then move it to the mod directory.
pre industrial landscape. Of course, feel free to use them in any other
construction :P
It also provides more layers of stones. I tried not to turn mining in ## Changelog
a rainbow, so don't expect to find them easily. There are two kinds of **Version Development**
materials, stones, that spawns in layers at different deep and clay
like materials (silt and mud) that you will find in water places.
Silt and Mud are more easy to find than stone layers, but if you find
one it will be a real mine, with all probability with hundreds of blocks.
I used mainly 4 square recipes to avoid collisions with other MODs, **Version 1.3**
anyway I have not checked all them, so it is possible that another
person is already using one or more of this combinations.
I also used Desert Sand and Desert Stone, because they almost are not * Many, many craft recipe changes
used in the default version. Probably I will change this recipes in * New lamp texture
next releases. * New mud and mud lump texture
* Add some more stairs, fix existing stairs
* Fixes problems with light emmiting nodes
* Fix caves generating in blocks which are not ground content
* Remove textures32 folder, code cleanup
## Release Notes **Version 1.2**
### Version 1.4.1 * Corrected Sounds of Stairs
* Updated mod to use new moreblocks API
* Added Serpentine Stairs
* Minor Bug fixes **Version 1.1**
Full release notes: <https://github.com/adrido/darkage/releases> * Fix spelling mistakes in README file
* Bug fix
* Rename slate_tale to slate_tile
* Remove unneeded code
* Add marble tile
* Remove unneeded code
* Capitalise a couple of descriptions
* Add marble tile texture
* Rename alias.lua to aliases.lua
## How to install **Version 1.0.1**
Unzip the archive an place it in minetest-base-directory/mods/ * Fixed broken init.lua
if you have a windows client or a linux run-in-place client. If you
have a linux system-wide installation place it in
~/.minetest/mods/.
If you want to install this mod only in one world create the folder
worldmods/ in your worlddirectory. Remember to activate it for your world by pressing the 'configure' button and doubleclick darkage in the right list.
For further information or help see:
<http://wiki.minetest.net/Installing_Mods>
## Wiki **Version 1.0**
For Building-blocks and crafting information please take a look to the wiki: * Compatibility with stairsplus added
<https://github.com/adrido/darkage/wiki> * Added new iron_stick item
* Added craft for iron stick
* Changed craft reciep of iron_bars to avoid conflicts with iron bars mod
* Changed craft recipe of chain to avoid conflicts with 3d furniture mod
* Changed craft recipe of darkage:stonebrick to avoid conflicts with moreblocks
* Disabled marble_tile
* Added darkage:glass
* Changed the sound_node_leaves_default to wood_default for boxes and wooden shelves
* Added craft recipe for chalk
* Improved the textures of reinforced wood and chalk
* Added another recipe for darkage straw
## License **Version 0.3**
Sourcecode: MIT * 29 Nodes + 3 Craft Items
Graphics: CC-0 * Furniture and building decoration
* Stone layers
## See also **Version 0.2**
<https://www.luanti.org/> * 13 Nodes
* Sedimentary stones
**Version 0.1**
* 6 Nodes

183
aliases.lua Normal file → Executable file
View File

@ -1,99 +1,90 @@
--[[ -- darkage:desert_stone_cobble + stairs/slabs/microblocks -> default:desert_cobble + stairs/slabs/microblocks
This function registers alias for all micro, panel, stair nodes that get registered by moreblocks minetest.register_alias("darkage:desert_stone_cobble","default:desert_cobble")
Converts all nodes from origin to new minetest.register_alias("darkage:stair_desert_stone_cobble_wall_half","default:stair_desert_cobble_wall_half")
* origin: nodename in form of "modname:oldnode" minetest.register_alias("darkage:slab_desert_stone_cobble_inverted","default:slab_desert_cobble_inverted")
* new: nodename in form of "modname:newnode" minetest.register_alias("darkage:stair_desert_stone_cobble_inverted","default:stair_desert_cobble_inverted")
]] minetest.register_alias("darkage:stair_desert_stone_cobble_outer","default:stair_desert_cobble_outer")
local function register_moreblocks_alias(origin, new) minetest.register_alias("darkage:slab_desert_stone_cobble_three_quarter_wall","default:slab_desert_cobble_three_quarter_wall")
local originmod = origin:split(":")[1] minetest.register_alias("darkage:slab_desert_stone_cobble_quarter","default:slab_desert_cobble_quarter")
local originnode = origin:split(":")[2] minetest.register_alias("darkage:slab_desert_stone_cobble","default:slab_desert_cobble")
local newmod = new:split(":")[1] minetest.register_alias("darkage:slab_desert_stone_cobble_quarter_inverted","default:slab_desert_cobble_quarter_inverted")
local newnode = new:split(":")[2] minetest.register_alias("darkage:stair_desert_stone_cobble_wall","default:stair_desert_cobble_wall")
local ra = minetest.register_alias minetest.register_alias("darkage:stair_desert_stone_cobble_outer_inverted","default:stair_desert_cobble_outer_inverted")
ra(originmod.. ":micro_" ..originnode.."_1", newmod..":micro_" ..newnode.."_1") minetest.register_alias("darkage:stair_desert_stone_cobble_half","default:stair_desert_cobble_half")
ra(originmod.. ":panel_" ..originnode.."_1", newmod..":panel_" ..newnode.."_1") minetest.register_alias("darkage:stair_desert_stone_cobble_wall_half_inverted","default:stair_desert_cobble_wall_half_inverted")
ra(originmod.. ":micro_" ..originnode.."_2", newmod..":micro_" ..newnode.."_2") minetest.register_alias("darkage:micro_desert_stone_cobble_bottom","default:micro_desert_cobble_bottom")
ra(originmod.. ":panel_" ..originnode.."_2", newmod..":panel_" ..newnode.."_2") minetest.register_alias("darkage:panel_desert_stone_cobble_bottom","default:panel_desert_cobble_bottom")
ra(originmod.. ":micro_" ..originnode.."_4", newmod..":micro_" ..newnode.."_4") minetest.register_alias("darkage:stair_desert_stone_cobble_half_inverted","default:stair_desert_cobble_half_inverted")
ra(originmod.. ":panel_" ..originnode.."_4", newmod..":panel_" ..newnode.."_4") minetest.register_alias("darkage:micro_desert_stone_cobble_top","default:micro_desert_cobble_top")
ra(originmod.. ":micro_" ..originnode, newmod..":micro_" ..newnode) minetest.register_alias("darkage:slab_desert_stone_cobble_quarter_wall","default:slab_desert_cobble_quarter_wall")
ra(originmod.. ":panel_" ..originnode, newmod..":panel_" ..newnode) minetest.register_alias("darkage:stair_desert_stone_cobble_right_half","default:stair_desert_cobble_right_half")
ra(originmod.. ":micro_" ..originnode.."_12", newmod..":micro_" ..newnode.."_12") minetest.register_alias("darkage:stair_desert_stone_cobble_right_half_inverted","default:stair_desert_cobble_right_half_inverted")
ra(originmod.. ":panel_" ..originnode.."_12", newmod..":panel_" ..newnode.."_12") minetest.register_alias("darkage:slab_desert_stone_cobble_three_quarter","default:slab_desert_cobble_three_quarter")
ra(originmod.. ":micro_" ..originnode.."_14", newmod..":micro_" ..newnode.."_14") minetest.register_alias("darkage:panel_desert_stone_cobble_top","default:panel_desert_cobble_top")
ra(originmod.. ":panel_" ..originnode.."_14", newmod..":panel_" ..newnode.."_14") minetest.register_alias("darkage:stair_desert_stone_cobble_inner","default:stair_desert_cobble_inner")
ra(originmod.. ":micro_" ..originnode.."_15", newmod..":micro_" ..newnode.."_15") minetest.register_alias("darkage:stair_desert_stone_cobble","default:stair_desert_cobble")
ra(originmod.. ":panel_" ..originnode.."_15", newmod..":panel_" ..newnode.."_15") minetest.register_alias("darkage:panel_desert_stone_cobble_vertical","default:panel_desert_cobble_vertical")
minetest.register_alias("darkage:stair_desert_stone_cobble_inner_inverted","default:stair_desert_cobble_inner_inverted")
minetest.register_alias("darkage:slab_desert_stone_cobble_three_quarter_inverted","default:slab_desert_cobble_three_quarter_inverted")
ra(originmod.. ":stair_" ..originnode.."_outer", newmod..":stair_" ..newnode.."_outer") -- darkage:sandstone_cobble + stairs/slabs/microblocks -> default:sandstonebrick + stairs/slabs/microblocks
ra(originmod.. ":stair_" ..originnode, newmod..":stair_" ..newnode) minetest.register_alias("darkage:sandstone_cobble","default:sandstonebrick")
ra(originmod.. ":stair_" ..originnode.."_inner", newmod..":stair_" ..newnode.."_inner") minetest.register_alias("darkage:stair_sandstone_cobble_wall_half","default:stair_sandstonebrick_wall_half")
minetest.register_alias("darkage:slab_sandstone_cobble_inverted","default:slab_sandstonebrick_inverted")
minetest.register_alias("darkage:stair_sandstone_cobble_inverted","default:stair_sandstonebrick_inverted")
minetest.register_alias("darkage:stair_sandstone_cobble_outer","default:stair_sandstonebrick_outer")
minetest.register_alias("darkage:slab_sandstone_cobble_three_quarter_wall","default:slab_sandstonebrick_three_quarter_wall")
minetest.register_alias("darkage:slab_sandstone_cobble_quarter","default:slab_sandstonebrick_quarter")
minetest.register_alias("darkage:slab_sandstone_cobble","default:slab_sandstonebrick")
minetest.register_alias("darkage:slab_sandstone_cobble_quarter_inverted","default:slab_sandstonebrick_quarter_inverted")
minetest.register_alias("darkage:stair_sandstone_cobble_wall","default:stair_sandstonebrick_wall")
minetest.register_alias("darkage:stair_sandstone_cobble_outer_inverted","default:stair_sandstonebrick_outer_inverted")
minetest.register_alias("darkage:stair_sandstone_cobble_half","default:stair_sandstonebrick_half")
minetest.register_alias("darkage:stair_sandstone_cobble_wall_half_inverted","default:stair_sandstonebrick_wall_half_inverted")
minetest.register_alias("darkage:micro_sandstone_cobble_bottom","default:micro_sandstonebrick_bottom")
minetest.register_alias("darkage:panel_sandstone_cobble_bottom","default:panel_sandstonebrick_bottom")
minetest.register_alias("darkage:stair_sandstone_cobble_half_inverted","default:stair_sandstonebrick_half_inverted")
minetest.register_alias("darkage:micro_sandstone_cobble_top","default:micro_sandstonebrick_top")
minetest.register_alias("darkage:slab_sandstone_cobble_quarter_wall","default:slab_sandstonebrick_quarter_wall")
minetest.register_alias("darkage:stair_sandstone_cobble_right_half","default:stair_sandstonebrick_right_half")
minetest.register_alias("darkage:stair_sandstone_cobble_right_half_inverted","default:stair_sandstonebrick_right_half_inverted")
minetest.register_alias("darkage:slab_sandstone_cobble_three_quarter","default:slab_sandstonebrick_three_quarter")
minetest.register_alias("darkage:panel_sandstone_cobble_top","default:panel_sandstonebrick_top")
minetest.register_alias("darkage:stair_sandstone_cobble_inner","default:stair_sandstonebrick_inner")
minetest.register_alias("darkage:stair_sandstone_cobble","default:stair_sandstonebrick")
minetest.register_alias("darkage:panel_sandstone_cobble_vertical","default:panel_sandstonebrick_vertical")
minetest.register_alias("darkage:stair_sandstone_cobble_inner_inverted","default:stair_sandstonebrick_inner_inverted")
minetest.register_alias("darkage:slab_sandstone_cobble_three_quarter_inverted","default:slab_sandstonebrick_three_quarter_inverted")
ra(originmod.. ":slab_" ..originnode.."_1", newmod..":slab_" ..newnode.."_1") -- darkage:slate_tale + stairs/slabs/microblocks -> darkage:slate_tile + stairs/slabs/microblocks
ra(originmod.. ":slab_" ..originnode.."_2", newmod..":slab_" ..newnode.."_2") minetest.register_alias("darkage:slate_tile","darkage:slate_tale")
ra(originmod.. ":slab_" ..originnode.."_quarter", newmod..":slab_" ..newnode.."_quarter") minetest.register_alias("darkage:slab_slate_tile_inverted","darkage:slab_slate_tale_inverted")
ra(originmod.. ":slab_" ..originnode, newmod..":slab_" ..newnode) minetest.register_alias("darkage:slab_slate_tile_wall","darkage:slab_slate_tale_wall")
ra(originmod.. ":slab_" ..originnode.."_three_quarter", newmod..":slab_" ..newnode.."_three_quarter") minetest.register_alias("darkage:slab_slate_tile_quarter","darkage:slab_slate_tale_quarter")
ra(originmod.. ":slab_" ..originnode.."_14", newmod..":slab_" ..newnode.."_14") minetest.register_alias("darkage:slab_slate_tile_quarter_inverted","darkage:slab_slate_tale_quarter_inverted")
ra(originmod.. ":slab_" ..originnode.."_15", newmod..":slab_" ..newnode.."_15") minetest.register_alias("darkage:slab_slate_tile_quarter_wall","darkage:slab_slate_tale_quarter_wall")
minetest.register_alias("darkage:slab_slate_tile_three_quarter","darkage:slab_slate_tale_three_quarter")
minetest.register_alias("darkage:slab_slate_tile_three_quarter_inverted","darkage:slab_slate_tale_three_quarter_inverted")
minetest.register_alias("darkage:slab_slate_tile_three_quarter_wall","darkage:slab_slate_tale_three_quarter_wall")
minetest.register_alias("darkage:stair_slate_tile_inverted","darkage:stair_slate_tale_inverted")
minetest.register_alias("darkage:stair_slate_tile_wall","darkage:stair_slate_tale_wall")
minetest.register_alias("darkage:stair_slate_tile_wall_half","darkage:stair_slate_tale_wall_half")
minetest.register_alias("darkage:stair_slate_tile_wall_half_inverted","darkage:stair_slate_tale_wall_half_inverted")
minetest.register_alias("darkage:stair_slate_tile_half","darkage:stair_slate_tale_half")
minetest.register_alias("darkage:stair_slate_tile_half_inverted","darkage:stair_slate_tale_half_inverted")
minetest.register_alias("darkage:stair_slate_tile_right_half","darkage:stair_slate_tale_right_half")
minetest.register_alias("darkage:stair_slate_tile_right_half_inverted","darkage:stair_slate_tale_right_half_inverted")
minetest.register_alias("darkage:stair_slate_tile_wall_half","darkage:stair_slate_tale_wall_half")
minetest.register_alias("darkage:stair_slate_tile_wall_half_inverted","darkage:stair_slate_tale_wall_half_inverted")
minetest.register_alias("darkage:stair_slate_tile_inner","darkage:stair_slate_tale_inner")
minetest.register_alias("darkage:stair_slate_tile_inner_inverted","darkage:stair_slate_tale_inner_inverted")
minetest.register_alias("darkage:stair_slate_tile_outer","darkage:stair_slate_tale_outer")
minetest.register_alias("darkage:stair_slate_tile_outer_inverted","darkage:stair_slate_tale_outer_inverted")
minetest.register_alias("darkage:panel_slate_tile_bottom","darkage:panel_slate_tale_bottom")
minetest.register_alias("darkage:panel_slate_tile_top","darkage:panel_slate_tale_top")
minetest.register_alias("darkage:panel_slate_tile_vertical","darkage:panel_slate_tale_vertical")
minetest.register_alias("darkage:micro_slate_tile_bottom","darkage:micro_slate_tale_bottom")
minetest.register_alias("darkage:micro_slate_tile_top","darkage:micro_slate_tale_top")
ra(originmod.. ":stair_" ..originnode.."_half", newmod..":stair_" ..newnode.."_half") -- darkage:desert_stone_with_iron -> default:desert_stone
ra(originmod.. ":stair_" ..originnode.."_right_half", newmod..":stair_" ..newnode.."_right_half") minetest.register_alias("darkage:desert_stone_with_iron","default:desert_stone")
ra(originmod.. ":stair_" ..originnode.."_alt_1", newmod..":stair_" ..newnode.."_alt_1")
ra(originmod.. ":stair_" ..originnode.."_alt_2", newmod..":stair_" ..newnode.."_alt_2")
ra(originmod.. ":stair_" ..originnode.."_alt_4", newmod..":stair_" ..newnode.."_alt_4")
ra(originmod.. ":stair_" ..originnode.."_alt", newmod..":stair_" ..newnode.."_alt")
ra(originmod.. ":slope_" ..originnode, newmod..":slope_" ..newnode)
ra(originmod.. ":slope_" ..originnode.."_half", newmod..":slope_" ..newnode.."_half")
ra(originmod.. ":slope_" ..originnode.."_half_raised", newmod..":slope_" ..newnode.."_half_raised")
ra(originmod.. ":slope_" ..originnode.."_inner", newmod..":slope_" ..newnode.."_inner")
ra(originmod.. ":slope_" ..originnode.."_inner_half", newmod..":slope_" ..newnode.."_inner_half")
ra(originmod.. ":slope_" ..originnode.."_inner_half_raised", newmod..":slope_" ..newnode.."_inner_half_raised")
ra(originmod.. ":slope_" ..originnode.."_inner_cut", newmod..":slope_" ..newnode.."_inner_cut")
ra(originmod.. ":slope_" ..originnode.."_inner_cut_half", newmod..":slope_" ..newnode.."_inner_cut_half")
ra(originmod.. ":slope_" ..originnode.."_inner_cut_half_raised", newmod..":slope_" ..newnode.."_inner_cut_half_raised")
ra(originmod.. ":slope_" ..originnode.."_outer", newmod..":slope_" ..newnode.."_outer")
ra(originmod.. ":slope_" ..originnode.."_outer_half", newmod..":slope_" ..newnode.."_outer_half")
ra(originmod.. ":slope_" ..originnode.."_outer_half_raised", newmod..":slope_" ..newnode.."_outer_half_raised")
ra(originmod.. ":slope_" ..originnode.."_outer_cut", newmod..":slope_" ..newnode.."_outer_cut")
ra(originmod.. ":slope_" ..originnode.."_outer_cut_half", newmod..":slope_" ..newnode.."_outer_cut_half")
ra(originmod.. ":slope_" ..originnode.."_outer_cut_half_raised", newmod..":slope_" ..newnode.."_outer_cut_half_raised")
ra(originmod.. ":slope_" ..originnode.."_cut", newmod..":slope_" ..newnode.."_cut")
end
-- Ors Brick
minetest.register_alias("darkage:ors_cobble", "darkage:ors_brick")
minetest.register_alias("stairs:slab_ors_cobble", "stairs:slab_ors_brick")
minetest.register_alias("stairs:stair_ors_cobble", "stairs:stair_ors_brick")
register_moreblocks_alias("darkage:ors_cobble", "darkage:ors_brick")
minetest.register_alias("darkage:ors_cobble_wall", "darkage:ors_rubble_wall")
-- Slate Tile
minetest.register_alias( "darkage:slate_tale", "darkage:slate_tile")
register_moreblocks_alias("darkage:slate_tale", "darkage:slate_tile")
-- Basalt Brick
minetest.register_alias("darkage:basalt_cobble", "darkage:basalt_brick")
register_moreblocks_alias("darkage:basalt_cobble", "darkage:basalt_brick")
minetest.register_alias("darkage:basalt_cobble_wall", "darkage:basalt_rubble_wall")
-- Slate Brick
minetest.register_alias("darkage:slate_cobble", "darkage:slate_brick")
minetest.register_alias("stairs:slab_slate_cobble", "stairs:slab_slate_brick")
minetest.register_alias("stairs:stair_slate_cobble", "stairs:stair_slate_brick")
register_moreblocks_alias("darkage:slate_cobble", "darkage:slate_brick")
minetest.register_alias("darkage:slate_cobble_wall", "darkage:slate_rubble_wall")
-- Gneiss Brick
minetest.register_alias("darkage:gneiss_cobble", "darkage:gneiss_brick")
minetest.register_alias("stairs:slab_gneiss_cobble", "stairs:slab_gneiss_brick")
minetest.register_alias("stairs:stair_gneiss_cobble", "stairs:stair_gneiss_brick")
register_moreblocks_alias("darkage:gneis_cobble", "darkage:gneiss_brick")
minetest.register_alias("darkage:gneiss_cobble_wall", "darkage:gneiss_rubble_wall")
-- Straw
register_moreblocks_alias("darkage:straw", "moreblocks:straw")

View File

@ -1,171 +0,0 @@
--[[
This function registers the nodes and craft rezieps for the reinforce stuff
* name: String which is used in description and as technical name (lower letters)
* craftItem: the Item where the reinforce is crafted out of
* nodedef: Nodedefinition table as used as in minetest.register_node()
The Nodes are caled
<modname>:reinforced_<name>
<modname>:reinforced_<name>_slope
<modname>:reinforced_<name>_arrow
<modname>:reinforced_<name>_bars
The modname is automatically the mod that currently calls this function.
e.g. if you call darkage.register_reinforce from the mod medieval modname will be medieval
]]
function darkage.register_reinforce(name, craftItem, nodedef)
assert(type(nodedef.tiles)=="table","ERRROR: nodedef.tiles have to be a table")
assert(nodedef.tiles[1], "ERROR: "..dump(nodedef.tiles).." requires at least 1 entry")
if nodedef.groups then
nodedef.groups["not_cuttable"] = 1;
else
nodedef.groups = {};
nodedef.groups["not_cuttable"] = 1;
end
local modname = minetest.get_current_modname();
local tname = string.gsub(name:lower()," ", "_"); -- Technical name
-- Reinforced X
local reinforced = table.copy(nodedef);
local reinforced_tname = modname..":reinforced_"..tname
reinforced.description = "Reinforced "..name
for i,tile in ipairs(reinforced.tiles) do
reinforced.tiles[i] = tile .."^darkage_reinforce.png"
end
minetest.register_node(reinforced_tname, reinforced)
minetest.register_craft({
output = reinforced_tname,
recipe = {
{"group:stick", craftItem, "group:stick"},
{craftItem, "group:stick", craftItem},
{"group:stick", craftItem, "group:stick"},
}
})
-- Recycling
minetest.register_craft({
output = craftItem,
recipe = {
{ reinforced_tname },
}
})
-- Reinforced Slope
local slope = table.copy(nodedef);
local slope_tname = modname..":reinforced_"..tname.."_slope"
slope.description = "Reinforced "..name.." Slope\nHint: use the screwdriver to rotate."
slope.paramtype2 = "facedir";
local slope_tile_extend = {"^darkage_reinforce_right.png" , "^darkage_reinforce_right.png" , --top ,down
"^darkage_reinforce_right.png" , "^darkage_reinforce_right.png" , --right, left
"^darkage_reinforce_left.png" , "^darkage_reinforce_left.png"} -- front, back
for i=1,6 do
local tile = slope.tiles[i] or nodedef.tiles[1]; -- There have to be at least one tile.
slope.tiles[i] = tile ..slope_tile_extend[i]
end
minetest.register_node(slope_tname, slope)
minetest.register_craft({
output = slope_tname,
recipe = {
{craftItem, craftItem, "group:stick"},
{craftItem, "group:stick", craftItem},
{"group:stick", craftItem, craftItem},
}
})
-- Flipped recipe
minetest.register_craft({
output = slope_tname,
recipe = {
{"group:stick", craftItem, craftItem},
{craftItem, "group:stick", craftItem},
{craftItem, craftItem, "group:stick"},
}
})
-- Recycling
minetest.register_craft({
output = craftItem,
recipe = {
{ slope_tname }
}
})
-- Alias to convert old nodes
minetest.register_alias(modname..":reinforced_"..tname.."_right", slope_tname)
minetest.register_alias(modname..":reinforced_"..tname.."_left", slope_tname)
-- Arrow bar
local arrow = table.copy(nodedef)
local arrow_tname = modname..":reinforced_"..tname.."_arrow"
arrow.paramtype2 = "facedir";
arrow.description = "Reinforced "..name.." Arrow \nHint: use the screwdriver to rotate."
local arrow_tile_extend = {"" , "" , --top ,down
"^(darkage_reinforce_arrow.png^[transformR90)" , "^(darkage_reinforce_arrow.png^[transformR270)" , --right, left
"^(darkage_reinforce_arrow.png^[transformR180)" , "^darkage_reinforce_arrow.png"} -- front, back
for i=1,6 do
local tile = arrow.tiles[i] or arrow.tiles[1]; -- There have to be at least one tile.
arrow.tiles[i] = tile .. arrow_tile_extend[i]
end
minetest.register_node(arrow_tname, arrow)
minetest.register_craft({
output = arrow_tname,
recipe = {
{craftItem, "group:stick", craftItem},
{"group:stick", craftItem, "group:stick"},
{"group:stick", craftItem, "group:stick"},
}
})
-- Recycling
minetest.register_craft({
output = craftItem,
recipe = {
{ arrow_tname }
}
})
-- Reinforced Bars
local bars = table.copy(nodedef)
local bars_tname = modname..":reinforced_"..tname.."_bars"
bars.description = name.." Bars"
for i,tile in ipairs(bars.tiles) do
bars.tiles[i] = tile .."^darkage_reinforce_bars.png"
end
minetest.register_node(bars_tname, bars)
minetest.register_craft({
output = bars_tname,
recipe = {
{"group:stick", craftItem, "group:stick"},
{"group:stick", craftItem, "group:stick"},
{"group:stick", craftItem, "group:stick"},
}
})
minetest.register_craft({
output = craftItem,
recipe = {
{ bars_tname }
}
})
end
darkage.register_reinforce("Chalk", "darkage:chalk_powder", {
tiles = {"darkage_chalk.png"},
groups = {cracky=3},
sounds = default.node_sound_stone_defaults()
})
darkage.register_reinforce("Wood", "default:wood", {
tiles = {"default_wood.png"},
groups = {snappy=2, choppy=3, flammable=3},
sounds = default.node_sound_wood_defaults()
})
darkage.register_reinforce("Chalked Bricks", "darkage:chalked_bricks", {
tiles = {"darkage_chalked_bricks.png"},
groups = {cracky = 2, stone = 1},
sounds = default.node_sound_stone_defaults()
})

19
craftitems.lua Executable file
View File

@ -0,0 +1,19 @@
minetest.register_craftitem("darkage:chalk_powder", {
description = "Chalk Powder",
inventory_image = "darkage_chalk_powder.png",
})
minetest.register_craftitem("darkage:mud_lump", {
description = "Mud Lump",
inventory_image = "darkage_mud_lump.png",
})
minetest.register_craftitem("darkage:silt_lump", {
description = "Silt Lump",
inventory_image = "darkage_silt_lump.png",
})
minetest.register_craftitem("darkage:iron_stick", {
description = "Iron Stick",
inventory_image = "darkage_iron_stick.png",
})

416
crafts.lua Executable file
View File

@ -0,0 +1,416 @@
-- Naturally spawning blocks
minetest.register_craft({
output = "darkage:chalk",
recipe = {
{"darkage:chalk_powder","darkage:chalk_powder"},
{"darkage:chalk_powder","darkage:chalk_powder"},
}
})
minetest.register_craft({
output = "darkage:mud",
recipe = {
{"darkage:mud_lump","darkage:mud_lump"},
{"darkage:mud_lump","darkage:mud_lump"},
}
})
minetest.register_craft({
type = "cooking",
output = "darkage:shale",
recipe = "darkage:mud",
})
minetest.register_craft({
output = "darkage:silt 3",
recipe = {
{"default:sand","default:sand"},
{"default:clay_lump","default:clay_lump"},
}
})
minetest.register_craft({
output = "darkage:silt",
recipe = {
{"darkage:silt_lump","darkage:silt_lump"},
{"darkage:silt_lump","darkage:silt_lump"},
}
})
minetest.register_craft({
type = "cooking",
output = "darkage:gneiss",
recipe = "darkage:schist",
})
minetest.register_craft({
type = "cooking",
output = "darkage:slate",
recipe = "darkage:shale",
})
minetest.register_craft({
type = "cooking",
output = "darkage:mud 5",
recipe = "darkage:silt",
})
minetest.register_craft({
type = "cooking",
output = "darkage:slate",
recipe = "darkage:slate_cobble",
})
minetest.register_craft({
output = "darkage:ors 4",
recipe = {
{"default:sandstone","default:sandstone"},
{"default:iron_lump","default:sandstone"},
}
})
minetest.register_craft({
type = "cooking",
output = "darkage:ors",
recipe = "darkage:ors_cobble",
})
minetest.register_craft({
type = "cooking",
output = "darkage:gneiss",
recipe = "darkage:gneiss_cobble",
})
minetest.register_craft({
type = "cooking",
output = "darkage:basalt",
recipe = "darkage:basalt_cobble",
})
-- Cobble
-- Other Blocks
--if not farming:straw
if minetest.get_modpath("farming") == nil then
minetest.register_craft({
output = "darkage:straw 2",
recipe = {
{"default:dry_shrub","default:dry_shrub"},
{"default:dry_shrub","default:dry_shrub"},
}
})
minetest.register_craft({
output = "darkage:straw 2",
recipe = {
{"darkage:dry_leaves","darkage:dry_leaves"},
{"darkage:dry_leaves","darkage:dry_leaves"},
}
})
minetest.register_craft({
output = "darkage:straw_bale",
recipe = {
{"darkage:straw","darkage:straw"},
{"darkage:straw","darkage:straw"},
}
})
minetest.register_craft({
output = "darkage:adobe 4",
recipe = {
{"default:sand","default:sand"},
{"default:clay_lump","darkage:straw"},
}
})
else
minetest.register_craft({
output = "farming:straw 2",
recipe = {
{"default:dry_shrub","default:dry_shrub"},
{"default:dry_shrub","default:dry_shrub"},
}
})
minetest.register_craft({
output = "farming:straw 2",
recipe = {
{"darkage:dry_leaves","darkage:dry_leaves"},
{"darkage:dry_leaves","darkage:dry_leaves"},
}
})
minetest.register_craft({
output = "darkage:straw_bale",
recipe = {
{"farming:straw","farming:straw"},
{"farming:straw","farming:straw"},
}
})
minetest.register_craft({
output = "darkage:adobe 4",
recipe = {
{"default:sand","default:sand"},
{"default:clay_lump","farming:straw"},
}
})
end
minetest.register_craft({
output = "darkage:slate_tile 4",
recipe = {
{"darkage:slate","darkage:slate"},
{"darkage:slate","darkage:slate"},
{"darkage:adobe","darkage:adobe"},
}
})
minetest.register_craft({
output = "darkage:marble_tile 4",
recipe = {
{"darkage:marble","darkage:marble"},
{"darkage:marble","darkage:marble"},
{"darkage:adobe","darkage:adobe"},
}
})
minetest.register_craft({
output = "darkage:stone_brick 9",
recipe = {
{"default:cobble","default:cobble","default:cobble"},
{"default:cobble","default:cobble","default:cobble"},
{"default:cobble","default:cobble","default:cobble"},
}
})
minetest.register_craft({
output = "darkage:reinforced_chalk",
recipe = {
{"group:stick","","group:stick"},
{"","darkage:chalk",""},
{"group:stick","","group:stick"},
}
})
minetest.register_craft({
output = "darkage:lamp",
recipe = {
{"group:stick","","group:stick"},
{"","default:torch",""},
{"group:stick","","group:stick"},
}
})
minetest.register_craft({
output = "darkage:cobble_with_plaster 2",
recipe = {
{"default:cobble","darkage:chalk_powder"},
{"default:cobble","darkage:chalk_powder"},
}
})
minetest.register_craft({
output = "darkage:cobble_with_plaster 2",
recipe = {
{"darkage:chalk_powder","default:cobble"},
{"darkage:chalk_powder","default:cobble"},
}
})
minetest.register_craft({
output = "darkage:darkdirt 4",
recipe = {
{"default:dirt","default:dirt"},
{"default:gravel","default:gravel"},
}
})
minetest.register_craft({
type = "cooking",
output = "darkage:dry_leaves",
recipe = "default:leaves",
})
-- Storage blocks (boxes, shelves, ect.)
minetest.register_craft({
output = "darkage:box",
recipe = {
{"default:wood","","default:wood"},
{"","",""},
{"default:wood","","default:wood"},
}
})
minetest.register_craft({
output = "darkage:wood_shelves 2",
recipe = {
{"darkage:box"},
{"darkage:box"},
}
})
-- Glass / Glow Glass
minetest.register_craft({
output = "darkage:glass",
recipe = {
{"darkage:glow_glass"},
}
})
minetest.register_craft({
output = "darkage:glass 8",
recipe = {
{"default:glass", "default:steel_ingot", "default:glass"},
{"default:steel_ingot", "default:glass", "default:steel_ingot"},
{"default:glass", "default:steel_ingot", "default:glass"},
}
})
minetest.register_craft({
output = "darkage:glow_glass",
recipe = {
{"darkage:glass"},
{"default:torch"},
}
})
-- Reinforced Wood
minetest.register_craft({
output = "darkage:reinforced_wood",
recipe = {
{"group:stick","group:wood","group:stick"},
{"group:wood","group:wood","group:wood"},
{"group:stick","group:wood","group:stick"},
}
})
minetest.register_craft({
output = "darkage:reinforced_wood_left",
recipe = {
{"default:stick","darkage:reinforced_wood",""},
}
})
minetest.register_craft({
output = "darkage:reinforced_wood_right",
recipe = {
{"","darkage:reinforced_wood","default:stick"},
}
})
-- Wood based deco items
minetest.register_craft({
output = "darkage:wood_bars 2",
recipe = {
{"default:stick","","default:stick"},
{"default:stick","","default:stick"},
{"default:stick","","default:stick"},
}
})
minetest.register_craft({
output = "darkage:wood_grille 2",
recipe = {
{"","darkage:wood_bars",""},
{"darkage:wood_bars","","darkage:wood_bars"},
{"","darkage:wood_bars",""},
}
})
minetest.register_craft({
output = "darkage:wood_frame",
recipe = {
{"group:stick","","group:stick"},
{"","group:wood",""},
{"group:stick","","group:stick"},
}
})
-- Metal based deco items
minetest.register_craft({
output = "darkage:chain 2",
recipe = {
{"darkage:iron_stick"},
{"darkage:iron_stick"},
{"darkage:iron_stick"},
}
})
minetest.register_craft({
output = "darkage:iron_bars 2",
recipe = {
{"darkage:iron_stick","","darkage:iron_stick"},
{"darkage:iron_stick","","darkage:iron_stick"},
{"darkage:iron_stick","","darkage:iron_stick"},
}
})
minetest.register_craft({
output = "darkage:iron_grille 2",
recipe = {
{"","darkage:iron_bars",""},
{"darkage:iron_bars","","darkage:iron_bars"},
{"","darkage:iron_bars",""},
}
})
-- Craft items
minetest.register_craft({
output = "darkage:chalk_powder 4",
recipe = {
{"darkage:chalk"},
}
})
minetest.register_craft({
output = "darkage:mud_lump 4",
recipe = {
{"darkage:mud"},
}
})
minetest.register_craft({
output = "darkage:silt_lump 4",
recipe = {
{"darkage:silt"},
}
})
minetest.register_craft({
output = "darkage:iron_stick 3",
recipe = {
{"default:steel_ingot"},
{"default:steel_ingot"},
{"default:steel_ingot"},
}
})
-- Added
minetest.register_craft({
output = "darkage:ors_brick 4",
--type = "shapeless",
recipe = {
{"darkage:ors","darkage:ors"},
{"darkage:ors","darkage:ors"},
}
})
minetest.register_craft({
output = "darkage:slate_brick 4",
--type = "shapeless",
recipe = {
{"darkage:slate","darkage:slate"},
{"darkage:slate","darkage:slate"},
}
})
minetest.register_craft({
output = "darkage:basalt_brick 4",
--type = "shapeless",
recipe = {
{"darkage:basalt","darkage:basalt"},
{"darkage:basalt","darkage:basalt"},
}
})

5
depends.txt Normal file → Executable file
View File

@ -1,5 +1,4 @@
default default
farming farming?
moreblocks?
stairs? stairs?
unifieddyes? stairsplus?

View File

@ -1,2 +0,0 @@
DarkAge adds several new nodes and crafts to create a pre industrial landscape.
It also extends the stones and provides new construction materials.

View File

@ -1,289 +0,0 @@
minetest.register_node("darkage:chain", {
description = "Chain",
drawtype = "signlike",
tiles = {"darkage_chain.png"},
inventory_image = "darkage_chain.png",
wield_image = "darkage_chain.png",
paramtype = "light",
paramtype2 = "wallmounted",
is_ground_content = false,
walkable = false,
climbable = true,
selection_box = {
type = "wallmounted",
--wall_top = = <default>
--wall_bottom = = <default>
--wall_side = = <default>
},
groups = {snappy=1, cracky=2, oddly_breakable_by_hand=2, not_cuttable=1},
legacy_wallmounted = true
})
local box_formspec = [[
size[8,9]
list[context;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[context;main]
listring[current_player;main]
]].. darkage.formbg
minetest.register_node("darkage:box", {
description = "Box",
tiles = { "darkage_box_top.png","darkage_box_top.png","darkage_box.png"},
groups = { snappy = 3, not_cuttable=1 },
sounds = default.node_sound_wood_defaults(),
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec", box_formspec )
meta:set_string("infotext", "Box")
local inv = meta:get_inventory()
inv:set_size("main", 16)
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 box 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 stuff to box 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 stuff from box at "..minetest.pos_to_string(pos))
end,
})
local shelves_formspec = [[
size[8,9]
list[context;up;0,0;8,2;]
list[context;down;0,2.3;8,2;]
list[current_player;main;0,4.85;8,1;]
list[current_player;main;0,6.08;8,3;8]
listring[context;up]
listring[context;down]
listring[current_player;main]
]].. darkage.formbg
minetest.register_node("darkage:wood_shelves", {
description = "Wooden Shelves",
tiles = { "darkage_shelves.png","darkage_shelves.png","darkage_shelves.png",
"darkage_shelves.png","darkage_shelves.png","darkage_shelves_front.png"},
paramtype2 = "facedir",
groups = { snappy = 3, not_cuttable=1 },
sounds = default.node_sound_wood_defaults(),
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec", shelves_formspec)
meta:set_string("infotext", "Wooden Shelves")
local inv = meta:get_inventory()
inv:set_size("up", 16)
inv:set_size("down", 16)
end,
can_dig = function(pos,player)
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory()
return inv:is_empty("up") and inv:is_empty("down")
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 shelves 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 stuff to shelves 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 stuff from shelves at "..minetest.pos_to_string(pos))
end,
})
--minetest.register_node("darkage:rosace", {
-- description = "Rose Window",
-- tiles = {"darkage_rosace.png"},
-- is_ground_content = false,
-- groups = {cracky=3},
-- sounds = default.node_sound_stone_defaults()
--})
minetest.register_node("darkage:iron_bars", {
description = "Iron Bars",
drawtype = "glasslike",
tiles = {"darkage_iron_bars.png"},
inventory_image = "darkage_iron_bars.png",
wield_image = "darkage_iron_bars.png",
is_ground_content = false,
paramtype = "light",
sunlight_propagates = true,
groups = {cracky=3 , not_cuttable=1},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:lamp", {
description = "Lamp",
tiles = { "darkage_lamp.png" },
paramtype = "light",
sunlight_propagates = true,
light_source = default.LIGHT_MAX-1,
groups = {snappy=2, cracky=3, oddly_breakable_by_hand=3, flammable=1 , not_cuttable=1},
sounds = default.node_sound_glass_defaults(),
})
minetest.register_node("darkage:iron_grille", {
description = "Iron Grille",
drawtype = "glasslike",
tiles = {"darkage_iron_grille.png"},
inventory_image = "darkage_iron_grille.png",
wield_image = "darkage_iron_grille.png",
is_ground_content = false,
paramtype = "light",
sunlight_propagates = true,
groups = {cracky=3 , not_cuttable=1},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:wood_bars", {
description = "Wooden Bars",
drawtype = "glasslike",
tiles = {"darkage_wood_bars.png"},
inventory_image = "darkage_wood_bars.png",
wield_image = "darkage_wood_bars.png",
is_ground_content = false,
paramtype = "light",
sunlight_propagates = true,
groups = {snappy=1, choppy=2, not_cuttable=1},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:wood_grille", {
description = "Wooden Grille",
drawtype = "glasslike",
tiles = {"darkage_wood_grille.png"},
inventory_image = "darkage_wood_grille.png",
wield_image = "darkage_wood_grille.png",
is_ground_content = false,
paramtype = "light",
sunlight_propagates = true,
groups = {snappy=1, choppy=2, not_cuttable=1},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:wood_frame", {
description = "Wooden Frame",
drawtype = "glasslike_framed",
tiles = {"darkage_wood_frame.png"},
inventory_image = "darkage_wood_frame.png",
wield_image = "darkage_wood_frame.png",
is_ground_content = false,
paramtype = "light",
sunlight_propagates = true,
groups = {snappy=1, choppy=2, oddly_breakable_by_hand = 3, not_cuttable=1},
sounds = default.node_sound_stone_defaults()
})
---------------
-- Crafts Item
---------------
----------
-- Crafts
----------
minetest.register_craft({
output = "darkage:box",
recipe = {
{"default:wood", "", "default:wood"},
{"", "", ""},
{"default:wood", "", "default:wood"},
}
})
minetest.register_craft({
output = "darkage:chain 2",
recipe = {
{"darkage:iron_stick"},
{"darkage:iron_stick"},
{"darkage:iron_stick"},
}
})
minetest.register_craft({
output = "darkage:iron_bars 2",
recipe = {
{"darkage:iron_stick", "", "darkage:iron_stick"},
{"darkage:iron_stick", "", "darkage:iron_stick"},
{"darkage:iron_stick", "", "darkage:iron_stick"},
}
})
minetest.register_craft({
output = "darkage:iron_grille 3",
recipe = {
{"", "darkage:iron_bars", ""},
{"darkage:iron_bars", "", "darkage:iron_bars"},
{"", "darkage:iron_bars", ""},
}
})
minetest.register_craft({
output = "darkage:lamp",
recipe = {
{"group:stick", "", "group:stick"},
{"", "default:torch", ""},
{"group:stick", "", "group:stick"},
}
})
minetest.register_craft({
output = "darkage:wood_bars 2",
recipe = {
{"group:stick", "", "group:stick"},
{"group:stick", "", "group:stick"},
{"group:stick", "", "group:stick"},
}
})
minetest.register_craft({
output = "darkage:wood_grille 3",
recipe = {
{"", "darkage:wood_bars", ""},
{"darkage:wood_bars", "", "darkage:wood_bars"},
{"", "darkage:wood_bars", ""},
}
})
minetest.register_craft({
output = "darkage:wood_shelves",
recipe = {
{"darkage:box"},
{"darkage:box"},
}
})
minetest.register_craft({
output = "darkage:wood_frame",
recipe = {
{"group:stick", "", "group:stick"},
{"", "default:glass", ""},
{"group:stick", "", "group:stick"},
}
})
-- Cookings
minetest.register_craft({
type = "cooking",
output = "default:glass",
recipe = "darkage:wood_frame",
})

279
glass.lua
View File

@ -1,279 +0,0 @@
--[[
Medival glasses.
The glasses can be colorized using dye.
Colorization requires unifieddyes installed.
Special thanks to Semmett9 for the glass textures.
]]
--[[ Rhombus Glass ]]
minetest.register_node("darkage:glass", {
description = "Clean Medieval Glass",
drawtype = "glasslike",
tiles = {"darkage_glass.png"},
use_texture_alpha = "clip",
paramtype = "light",
sunlight_propagates = true,
groups = {cracky = 3, oddly_breakable_by_hand = 3, not_cuttable = 1},
sounds = default.node_sound_glass_defaults(),
})
minetest.register_craft({
output = "darkage:glass 8",
recipe = {
{"default:glass", "default:steel_ingot", "default:glass"},
{"default:steel_ingot", "default:glass", "default:steel_ingot"},
{"default:glass", "default:steel_ingot", "default:glass"},
}
})
minetest.register_node("darkage:glass_round", {
description = "Round Glass",
drawtype = "glasslike",
tiles = {"darkage_glass_round.png"},
paramtype = "light",
use_texture_alpha = "clip",
sunlight_propagates = true,
sounds = default.node_sound_glass_defaults(),
groups = {cracky = 3, oddly_breakable_by_hand = 3, not_cuttable = 1},
})
minetest.register_craft({
output = "darkage:glass_round 8",
recipe = {
{"default:steel_ingot", "default:glass", "default:steel_ingot"},
{"default:glass", "default:glass", "default:glass"},
{"default:steel_ingot", "default:glass", "default:steel_ingot"},
}
})
--[[ Square glass By Semmett9 aka Infinatum ]]
minetest.register_node("darkage:glass_square", {
description = "Square Glass",
drawtype = "glasslike",
tiles = {"darkage_glass_square.png"},
paramtype = "light",
use_texture_alpha = "clip",
sunlight_propagates = true,
sounds = default.node_sound_glass_defaults(),
groups = {cracky = 3, oddly_breakable_by_hand = 3, not_cuttable = 1},
})
minetest.register_craft({
output = "darkage:glass_square 8",
recipe = {
{"default:glass", "default:steel_ingot", "default:glass"},
{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"},
{"default:glass", "default:steel_ingot", "default:glass"},
}
})
--[[
Glowing Glass Variants
]]
--[[ Rhombus Glow Glass ]]
minetest.register_node("darkage:glow_glass", {
description = "Medieval Glow Glass",
drawtype = "glasslike",
tiles = {"darkage_glass.png"},
use_texture_alpha = "clip",
paramtype = "light",
sunlight_propagates = true,
light_source = default.LIGHT_MAX - 3,
groups = {cracky = 3, oddly_breakable_by_hand = 3, not_cuttable = 1},
sounds = default.node_sound_glass_defaults(),
inventory_image = minetest.inventorycube("darkage_glow_glass.png")
})
minetest.register_craft({
output = "darkage:glow_glass 1",
type = "shaped",
recipe = {
{"darkage:glass"},
{"default:torch"}
}
})
-- Recycling
minetest.register_craft({
output = "darkage:glass 1",
type = "shaped",
recipe = {{"darkage:glow_glass"}},
})
--[[ Round Glow Glass ]]
minetest.register_node("darkage:glow_glass_round", {
description = "Medieval Round Glow Glass",
drawtype = "glasslike",
tiles = {"darkage_glass_round.png"},
use_texture_alpha = "clip",
paramtype = "light",
sunlight_propagates = true,
light_source = default.LIGHT_MAX - 3,
groups = {cracky = 3, oddly_breakable_by_hand = 3, not_cuttable = 1},
sounds = default.node_sound_glass_defaults(),
inventory_image = minetest.inventorycube("darkage_glow_glass_round.png")
})
minetest.register_craft({
output = "darkage:glow_glass_round 1",
type = "shaped",
recipe = {
{"darkage:glass_round"},
{"default:torch"}
}
})
-- Recycling
minetest.register_craft({
output = "darkage:glass_round 1",
recipe = {{"darkage:glow_glass_round"}}
})
--]] Square Glow Glass ]]
minetest.register_node("darkage:glow_glass_square", {
description = "Medieval Square Glow Glass",
drawtype = "glasslike",
tiles = {"darkage_glass_square.png"},
use_texture_alpha = "clip",
paramtype = "light",
sunlight_propagates = true,
light_source = default.LIGHT_MAX - 3,
groups = {cracky = 3, oddly_breakable_by_hand = 3, not_cuttable = 1},
sounds = default.node_sound_glass_defaults(),
inventory_image = minetest.inventorycube("darkage_glow_glass_square.png")
})
minetest.register_craft({
output = "darkage:glow_glass_square 1",
type = "shaped",
recipe = {
{"darkage:glass_square"},
{"default:torch"},
}
})
--Recycling
minetest.register_craft({
output = "darkage:glass_square 1",
recipe = {{"darkage:glow_glass_square"}}
})
--[[
Colorizable Milk Glass Variants, depending on unifieddyes mod
]]
if minetest.get_modpath("unifieddyes") then
--[[ Rhombus Milk Glass ]]
minetest.register_node("darkage:milk_glass", {
description = "Milky Medieval Glass (Good for colorization)",
drawtype = "glasslike",
tiles = {"darkage_milk_glass.png"},
use_texture_alpha = "blend",
paramtype = "light",
paramtype2 = "color",
palette = "unifieddyes_palette_extended.png",
sunlight_propagates = true,
groups = {cracky = 3, oddly_breakable_by_hand = 3, not_cuttable = 1, ud_param2_colorable = 1},
sounds = default.node_sound_glass_defaults()
})
unifieddyes.register_color_craft({
output = "darkage:milk_glass",
palette = "extended",
type = "shapeless",
neutral_node = "darkage:glass",
recipe = {
"NEUTRAL_NODE",
"MAIN_DYE"
}
})
-- Recycling
minetest.register_craft({
output = "darkage:glass 1",
recipe = {{"darkage:milk_glass"}}
})
--[[ Round Milk Glass ]]
minetest.register_node("darkage:milk_glass_round", {
description = "Milky Medieval Round Glass (Good for colorization)",
drawtype = "glasslike",
tiles = {"darkage_milk_glass_round.png"},
use_texture_alpha = "blend",
paramtype = "light",
paramtype2 = "color",
palette = "unifieddyes_palette_extended.png",
sunlight_propagates = true,
groups = {cracky = 3, oddly_breakable_by_hand = 3, not_cuttable = 1, ud_param2_colorable = 1},
sounds = default.node_sound_glass_defaults()
})
unifieddyes.register_color_craft({
output = "darkage:milk_glass_round",
palette = "extended",
type = "shapeless",
neutral_node = "darkage:glass_round",
recipe = {
"NEUTRAL_NODE",
"MAIN_DYE"
}
})
-- Recycling
minetest.register_craft({
output = "darkage:glass_round 1",
recipe = {{"darkage:milk_glass_round"}}
})
--[[ Square Milk Glass ]]
minetest.register_node("darkage:milk_glass_square", {
description = "Milky Medieval Square Glass (Good for colorization)",
drawtype = "glasslike",
tiles = {"darkage_milk_glass_square.png"},
use_texture_alpha = "blend",
paramtype = "light",
paramtype2 = "color",
palette = "unifieddyes_palette_extended.png",
sunlight_propagates = true,
groups = {cracky = 3, oddly_breakable_by_hand = 3, not_cuttable = 1, ud_param2_colorable = 1},
sounds = default.node_sound_glass_defaults()
})
-- Craft
minetest.register_craft({
output = "darkage:milk_glass_square",
type = "shapeless",
recipe = {"darkage:glass_square", "dye:white"},
})
unifieddyes.register_color_craft({
output = "darkage:milk_glass_square",
palette = "extended",
type = "shapeless",
neutral_node = "darkage:glass_square",
recipe = {
"NEUTRAL_NODE",
"MAIN_DYE"
}
})
-- Recycling
minetest.register_craft({
output = "darkage:glass_square",
recipe = {{"darkage:milk_glass_square"}}
})
end --unifieddyes condition

396
init.lua Normal file → Executable file
View File

@ -1,386 +1,16 @@
minetest.log("action"," ---- Dark Age Version 1.3 is Loading! ---- ") ------------------------------------------------------
-- Darkage mod by MasterGollum, addi and CraigyDavi --
------------------------------------------------------
darkage = {}; -- Create darkage namespace dofile(minetest.get_modpath("darkage").."/nodes.lua")
dofile(minetest.get_modpath("darkage").."/craftitems.lua")
dofile(minetest.get_modpath("darkage").."/crafts.lua")
dofile(minetest.get_modpath("darkage").."/mapgen.lua")
dofile(minetest.get_modpath("darkage").."/stairs.lua")
dofile(minetest.get_modpath("darkage").."/aliases.lua")
darkage.formbg = (default.gui_bg or "").. --
(default.gui_bg_img or "").. -- Config
(default.gui_slots or "") --
local MODPATH = minetest.get_modpath("darkage")..DIR_DELIM minetest.log ("Darkage [darkage] has loaded!")
dofile(MODPATH.."nodes.lua")
dofile(MODPATH.."glass.lua")
dofile(MODPATH.."mapgen.lua")
dofile(MODPATH.."building.lua")
dofile(MODPATH.."furniture.lua")
dofile(MODPATH.."aliases.lua")
dofile(MODPATH.."walls.lua")
dofile(MODPATH.."stairs_functions.lua")
dofile(MODPATH.."stairs.lua")
---------------
-- Crafts Items
---------------
minetest.register_craftitem("darkage:chalk_powder", {
description = "Chalk Powder",
inventory_image = "darkage_chalk_powder.png",
})
minetest.register_craftitem("darkage:mud_lump", {
description = "Mud Lump",
inventory_image = "darkage_mud_lump.png",
})
minetest.register_craftitem("darkage:silt_lump", {
description = "Silt Lump",
inventory_image = "darkage_silt_lump.png",
})
minetest.register_craftitem("darkage:iron_stick", {
description = "Iron Stick",
inventory_image = "darkage_iron_stick.png",
})
----------
-- Crafts
----------
minetest.register_craft({
output = "darkage:adobe 4",
recipe = {
{"default:sand", "default:sand"},
{"default:clay_lump", "farming:straw"},
}
})
--[[
Basalt
]]
minetest.register_craft({
type = "cooking",
output = "darkage:basalt",
recipe = "darkage:basalt_rubble",
})
minetest.register_craft({
output = "darkage:basalt_rubble 4",
recipe = {
{"default:cobble", "default:cobble"},
{"default:coal_lump", "default:coal_lump"},
}
})
minetest.register_craft({
output = "darkage:basalt_brick 4",
recipe = {
{"darkage:basalt", "darkage:basalt"},
{"darkage:basalt", "darkage:basalt"},
}
})
minetest.register_craft({
output = "darkage:basalt_block 9",
recipe = {
{"darkage:basalt", "darkage:basalt", "darkage:basalt"},
{"darkage:basalt", "darkage:basalt", "darkage:basalt"},
{"darkage:basalt", "darkage:basalt", "darkage:basalt"},
}
})
minetest.register_craft({
output = "darkage:cobble_with_plaster 2",
recipe = {
{"default:cobble", "darkage:chalk_powder"},
{"default:cobble", "darkage:chalk_powder"},
}
})
minetest.register_craft({
output = "darkage:cobble_with_plaster 2",
recipe = {
{"darkage:chalk_powder", "default:cobble"},
{"darkage:chalk_powder", "default:cobble"},
}
})
minetest.register_craft({
output = "darkage:chalked_bricks_with_plaster 2",
recipe = {
{"darkage:chalked_bricks", "darkage:chalk_powder"},
{"darkage:chalked_bricks", "darkage:chalk_powder"},
}
})
minetest.register_craft({
output = "darkage:chalked_bricks_with_plaster 2",
recipe = {
{"darkage:chalk_powder", "darkage:chalked_bricks"},
{"darkage:chalk_powder", "darkage:chalked_bricks"},
}
})
minetest.register_craft({
output = "darkage:darkdirt 4",
recipe = {
{"default:dirt", "default:dirt"},
{"default:gravel", "default:gravel"},
}
})
--[[
Gneiss
]]
minetest.register_craft({
type = "cooking",
output = "darkage:gneiss",
recipe = "darkage:schist",
})
minetest.register_craft({
type = "cooking",
output = "darkage:gneiss",
recipe = "darkage:gneiss_rubble",
})
minetest.register_craft({
output = "darkage:gneiss_brick 4",
recipe = {
{"darkage:gneiss", "darkage:gneiss"},
{"darkage:gneiss", "darkage:gneiss"},
}
})
minetest.register_craft({
output = "darkage:gneiss_block 9",
recipe = {
{"darkage:gneiss", "darkage:gneiss", "darkage:gneiss"},
{"darkage:gneiss", "darkage:gneiss", "darkage:gneiss"},
{"darkage:gneiss", "darkage:gneiss", "darkage:gneiss"},
}
})
minetest.register_craft({
output = "darkage:mud 3",
recipe = {
{"default:dirt", "default:dirt"},
{"default:clay_lump", "darkage:silt_lump"},
}
})
minetest.register_craft({
output = "darkage:mud",
recipe = {
{"darkage:mud_lump", "darkage:mud_lump"},
{"darkage:mud_lump", "darkage:mud_lump"},
}
})
minetest.register_craft({
output = "darkage:marble_tile 2",
recipe = {
{"darkage:marble", "darkage:marble"},
{"darkage:marble", "darkage:marble"},
}
})
--[[
Old Red Sandstone
]]
minetest.register_craft({
type = "cooking",
output = "darkage:ors",
recipe = "darkage:ors_rubble",
})
minetest.register_craft({
output = "darkage:ors 4",
recipe = {
{"default:sandstone", "default:sandstone"},
{"default:iron_lump", "default:sandstone"},
}
})
minetest.register_craft({
output = "darkage:ors_brick 4",
recipe = {
{"darkage:ors", "darkage:ors"},
{"darkage:ors", "darkage:ors"},
}
})
minetest.register_craft({
output = "darkage:ors_block 9",
recipe = {
{"darkage:ors", "darkage:ors", "darkage:ors"},
{"darkage:ors", "darkage:ors", "darkage:ors"},
{"darkage:ors", "darkage:ors", "darkage:ors"},
}
})
minetest.register_craft({
output = "darkage:silt 3",
recipe = {
{"default:sand", "default:sand"},
{"default:clay_lump", "default:clay_lump"},
}
})
minetest.register_craft({
output = "darkage:silt",
recipe = {
{"darkage:silt_lump", "darkage:silt_lump"},
{"darkage:silt_lump", "darkage:silt_lump"},
}
})
--[[
Slate
]]
minetest.register_craft({
type = "cooking",
output = "darkage:slate",
recipe = "darkage:slate_rubble",
})
minetest.register_craft({
output = "darkage:slate_brick 4",
recipe = {
{"darkage:slate", "darkage:slate"},
{"darkage:slate", "darkage:slate"},
}
})
minetest.register_craft({
output = "darkage:slate_block 9",
recipe = {
{"darkage:slate", "darkage:slate", "darkage:slate"},
{"darkage:slate", "darkage:slate", "darkage:slate"},
{"darkage:slate", "darkage:slate", "darkage:slate"},
}
})
minetest.register_craft({
output = "darkage:slate_tile 2",
recipe = {
{"darkage:slate_brick", "darkage:slate_brick"},
{"darkage:slate_brick", "darkage:slate_brick"},
}
})
minetest.register_craft({
output = "darkage:stone_brick",
recipe = {
{"default:stone_block"},
}
})
minetest.register_craft({
output = "darkage:straw_bale",
recipe = {
{"farming:straw","farming:straw"},
{"farming:straw","farming:straw"},
}
})
minetest.register_craft({
output = "darkage:iron_stick 4",
recipe = {
{"default:steel_ingot"},
}
})
-- Cookings
minetest.register_craft({
type = "cooking",
output = "darkage:dry_leaves",
recipe = "default:leaves",
})
minetest.register_craft({
type = "cooking",
output = "darkage:schist",
recipe = "darkage:slate",
})
minetest.register_craft({
type = "cooking",
output = "darkage:shale",
recipe = "darkage:mud",
})
minetest.register_craft({
type = "cooking",
output = "darkage:slate",
recipe = "darkage:shale",
})
minetest.register_craft({
type = "cooking",
output = "darkage:slate",
recipe = "darkage:slate_rubble",
})
-- Desert
minetest.register_craft({
type = "cooking",
output = "darkage:ors_brick",
recipe = "default:desert_stone",
})
-- Tuff
minetest.register_craft({
output = "darkage:tuff 2",
recipe = {
{"darkage:gneiss", "default:stone"},
{"default:stone", "darkage:gneiss"},
}
})
minetest.register_craft({
type = "cooking",
output = "darkage:tuff",
recipe = "darkage:tuff_rubble",
})
minetest.register_craft({
type = "cooking",
output = "darkage:tuff",
recipe = "darkage:old_tuff_bricks",
})
minetest.register_craft({
output = "darkage:tuff_bricks 4",
recipe = {
{"darkage:tuff", "darkage:tuff"},
{"darkage:tuff", "darkage:tuff"},
}
})
-- Rhyolitic Tuff
minetest.register_craft({
output = "darkage:rhyolitic_tuff 2",
recipe = {
{"darkage:gneiss", "default:desert_stone"},
{"default:desert_stone", "darkage:gneiss"},
}
})
minetest.register_craft({
type = "cooking",
output = "darkage:rhyolitic_tuff",
recipe = "darkage:rhyolitic_tuff_rubble",
})
minetest.register_craft({
output = "darkage:rhyolitic_tuff_bricks 4",
recipe = {
{"darkage:rhyolitic_tuff", "darkage:rhyolitic_tuff"},
{"darkage:rhyolitic_tuff", "darkage:rhyolitic_tuff"},
}
})

406
mapgen.lua Normal file → Executable file
View File

@ -1,51 +1,53 @@
--[[
This file generates:
darkage:mud
darkage:silt
darkage:chalk
darkage:ors
darkage:shale
darkage:slate
darkage:schist
darkage:basalt
darkage:marble
darkage:serpentine
darkage:gneiss
--]]
-- Some local constants to use for mapgen local getID = minetest.get_content_id
local c_air = minetest.CONTENT_AIR
local c_ignore = minetest.CONTENT_IGNORE
local c_stone = minetest.get_content_id("default:stone") local function generate_stratus(data, varea, name, wherein, ceilin, ceil, minp, maxp, seed, stratus_chance, radius, radius_y, deep, height_min, height_max)
local c_water = minetest.get_content_id("default:water_source") local c_ore = getID(name)
local c_sand = minetest.get_content_id("default:sand") local c_wherein = {}
local c_dirt = minetest.get_content_id("default:dirt") local c_ceilin = {}
local c_lawn = minetest.get_content_id("default:dirt_with_grass") for k, v in ipairs(wherein) do
c_wherein[k] = getID(v)
local stone_and_air_assoc = {[c_stone]=true,[c_air]=true} --associative array end
for k, v in ipairs(ceilin) do
--Makes a stratus of rocks c_ceilin[k] = getID(v)
--name of the rock to generate end
--c_wherein id of node to replace, for example minetest.get_content_id("default:stone") local c_ceil
--ca_ceilin associative array if ceil then
--minp, maxp the corners of the map to be generated c_ceil = getID(ceil)
--seed random seed
--stratus_chance inverse probability in a given radius 1:2, 1:3 etc
--radius horizontal radius of the stratus
--radius_y vertical radius of the stratus
--deep how deep can be from the ground
local function generate_stratus(data, area, name, c_wherein, ca_ceilin, minp, maxp, seed, stratus_chance, radius, radius_y, deep, y_min, y_max)
if maxp.y < y_min
or minp.y > y_max then
return
end end
local c_node = minetest.get_content_id(name) if maxp.y < height_min or minp.y > height_max then
return
-- it will be only generate a stratus for every 100 m of area end
local stratus_per_volume = 1 local stratus_per_volume = 1
local area_size = 45 local area = 45
local y_min = math.max(minp.y, y_min) local y_min = math.max(minp.y, height_min)
local y_max = math.min(maxp.y, y_max) local y_max = math.min(maxp.y, height_max)
local volume = ((maxp.x-minp.x+1)/area_size)*((y_max-y_min+1)/area_size)*((maxp.z-minp.z+1)/area_size) local volume = ((maxp.x-minp.x+1)/area)*((y_max-y_min+1)/area)*((maxp.z-minp.z+1)/area)
local pr = PseudoRandom(seed) local pr = PseudoRandom(seed)
local blocks = math.floor(stratus_per_volume*volume) local blocks = math.floor(stratus_per_volume*volume)
minetest.log("info", " <<"..name..">>"); print(" <<"..dump(name)..">>");
if blocks == 0 then if blocks == 0 then
blocks = 1 blocks = 1
end end
minetest.log("info", string.format(" blocks: %d in vol: %d (%d,%d,%d)", print(" blocks: "..dump(blocks).." in vol: "..dump(volume).." ("..dump(maxp.x-minp.x+1)..","..dump(y_max-y_min+1)..","..dump(maxp.z-minp.z+1)..")")
blocks, volume, maxp.x-minp.x+1, y_max-y_min+1, maxp.z-minp.z+1))
for i=1,blocks do for i=1,blocks do
if pr:next(1,stratus_chance) == 1 then local x = pr:next(1,stratus_chance)
-- TODO deep if x == 1 then
local y0=y_max-radius_y+1 local y0=y_max-radius_y+1
if y0 < y_min then if y0 < y_min then
y0=y_min y0=y_min
@ -64,51 +66,89 @@ local function generate_stratus(data, area, name, c_wherein, ca_ceilin, minp, ma
else else
z0 = pr:next(minp.z, z0) z0 = pr:next(minp.z, z0)
end end
local n = data[area:index(x0, y0, z0)] local p0 = {x=x0, y=y0, z=z0}
local n = data[varea:indexp(p0)]
local i = 0 local i = 0
x = 0
if ca_ceilin[n] then for k, v in ipairs(c_ceilin) do
-- search for the node to replace if n == v then
--print(" Searching nodes to replace from "..dump(y0-1).." to "..dump(y_min)) x = 1
local vi = area:index(x0, y0-1, z0) break
for y1 = y0-1,y_min,-1 do end
if data[vi] == c_wherein then end
y0 = math.max(y1-deep, y_min) if x == 1 then
for y1=y0-1,y_min,-1 do
p0.y=y1
n = data[varea:indexp(p0)]
x = 0
for k, v in ipairs(c_wherein) do
if n == v then
x = 1
break
end
end
if x == 1 then
y0=y1-deep
if y0 < y_min then
y0 = y_min
end
break break
end end
vi = vi - area.ystride
end end
local rx=pr:next(radius/2,radius)+1 local rx=pr:next(radius/2,radius)+1
local rz=pr:next(radius/2,radius)+1 local rz=pr:next(radius/2,radius)+1
local ry=pr:next(radius_y/2,radius_y)+1 local ry=pr:next(radius_y/2,radius_y)+1
--print(" area of generation ("..dump(rx)..","..dump(rz)..","..dump(ry)..")")
vi = area:index(x0, y0, z0)
for x1=0,rx do for x1=0,rx do
local vi = vi + x1 rz = rz + 3 - pr:next(1,6)
rz = math.max(rz + 3 - pr:next(1,6), 1) if rz < 1 then
rz = 1
end
for z1=pr:next(1,3),rz do for z1=pr:next(1,3),rz do
local vi = vi + z1 * area.zstride local ry0=ry+ pr:next(1,3)
for y1 = pr:next(1,3), ry + pr:next(1,3) do for y1=pr:next(1,3),ry0 do
local vi = vi + y1 * area.ystride local x2 = x0+x1
if data[vi] == c_wherein then local y2 = y0+y1
data[vi] = c_node local z2 = z0+z1
local p2 = {x=x2, y=y2, z=z2}
n = data[varea:indexp(p2)]
x = 0
for k, v in ipairs(c_wherein) do
if n == v then
x = 1
break
end
end
if x == 1 then
if c_ceil == nil then
data[varea:indexp(p2)] = c_ore
i = i +1
else
local p3 = {p2.x,p2.y+1,p2}
if data[varea:indexp(p3)] == c_ceil then
data[varea:indexp(p2)] = c_ore
i = i +1 i = i +1
end end
end end
end end
end end
end end
minetest.log("info", " generated "..i.." blocks in ("..x0..","..y0..","..z0..")") end
print(" generated "..dump(i).." blocks in ("..dump(x0)..","..dump(y0)..","..dump(z0)..")")
end
end end
end end
--print("generate_ore done")
end end
local function generate_claylike(data, varea, name, minp, maxp, seed, chance, minh, maxh, needs_dirt) local function generate_claylike(data, varea, name, minp, maxp, seed, chance, minh, maxh, dirt)
local c_ore = getID(name)
local c_sand = getID("default:sand")
local c_dirt = getID("default:dirt")
local c_lawn = getID("default:dirt_with_grass")
local c_water = getID("default:water_source")
local c_air = getID("air")
if maxp.y >= maxh+1 and minp.y <= minh-1 then if maxp.y >= maxh+1 and minp.y <= minh-1 then
local c_ore = minetest.get_content_id(name)
local pr = PseudoRandom(seed) local pr = PseudoRandom(seed)
local divlen = 4 local divlen = 4
local divs = (maxp.x-minp.x)/divlen+1; local divs = (maxp.x-minp.x)/divlen+1;
for yy=minh,maxh do for yy=minh,maxh do
@ -120,7 +160,8 @@ local function generate_claylike(data, varea, name, minp, maxp, seed, chance, mi
local cz = minp.z + math.floor((divz+0.5)*divlen) local cz = minp.z + math.floor((divz+0.5)*divlen)
local up = data[varea:index(cx,yy,cz)] local up = data[varea:index(cx,yy,cz)]
local down = data[varea:index(cx,yy-1,cz)] local down = data[varea:index(cx,yy-1,cz)]
if ( up == c_water or up == c_air ) and ( down == c_sand or (needs_dirt and (down == c_dirt or down == c_lawn ))) then if ( up == c_water or up == c_air ) and ( down == c_sand or (dirt == 1 and (down == c_dirt or down == c_lawn ))) then
local is_shallow = true
local num_water_around = 0 local num_water_around = 0
if data[varea:index(cx-divlen*2,yy,cz)] == c_water then if data[varea:index(cx-divlen*2,yy,cz)] == c_water then
num_water_around = num_water_around + 1 num_water_around = num_water_around + 1
@ -134,13 +175,16 @@ local function generate_claylike(data, varea, name, minp, maxp, seed, chance, mi
if data[varea:index(cx,yy,cz+divlen*2)] == c_water then if data[varea:index(cx,yy,cz+divlen*2)] == c_water then
num_water_around = num_water_around + 1 num_water_around = num_water_around + 1
end end
if num_water_around < 3 then if num_water_around >= 3 then
is_shallow = false
end
if is_shallow then
for x1=-divlen,divlen do for x1=-divlen,divlen do
for z1=-divlen,divlen do for z1=-divlen,divlen do
local i = varea:index(cx+x1,yy-1,cz+z1) local p={x=cx+x1,y=yy-1,z=cz+z1}
local down = data[i] down = data[varea:indexp(p)]
if down == c_sand or (needs_dirt and (down == c_dirt or down == c_lawn)) then if down == c_sand or (dirt == 1 and (down == c_dirt or down == c_lawn)) then
data[i] = c_ore data[varea:indexp(p)] = c_ore
end end
end end
end end
@ -153,153 +197,105 @@ local function generate_claylike(data, varea, name, minp, maxp, seed, chance, mi
end end
end end
local seed = minetest.get_mapgen_setting("seed")
local function generate_ore(data, varea, name, wherein, minp, maxp, seed, chunks_per_volume, chunk_size, ore_per_chunk, height_min, height_max)
local c_ore = getID(name)
local c_wherein = getID(wherein)
-- Generate desert stone with iron in derset. if maxp.y < height_min or minp.y > height_max then
minetest.register_ore({ return
ore_type = "scatter", end
ore = "darkage:desert_stone_with_iron", local y_min = math.max(minp.y, height_min)
wherein = "default:desert_stone", local y_max = math.min(maxp.y, height_max)
clust_scarcity = 12 * 12 * 12, local volume = (maxp.x-minp.x+1)*(y_max-y_min+1)*(maxp.z-minp.z+1)
clust_num_ores = 3, local pr = PseudoRandom(seed)
clust_size = 2, local num_chunks = math.floor(chunks_per_volume * volume)
y_min = -1, local inverse_chance = math.floor(chunk_size*chunk_size*chunk_size / ore_per_chunk)
y_max = 200, for i=1,num_chunks do
}) local y0 = pr:next(y_min, y_max-chunk_size+1)
if y0 >= height_min and y0 <= height_max then
-- Generate chalk inside mountains local x0 = pr:next(minp.x, maxp.x-chunk_size+1)
minetest.register_ore({ local z0 = pr:next(minp.z, maxp.z-chunk_size+1)
ore_type = "sheet", local p0 = {x=x0, y=y0, z=z0}
ore = "darkage:chalk", for x1=0,chunk_size-1 do
wherein = {"default:stone"}, for y1=0,chunk_size-1 do
column_height_max = 30, for z1=0,chunk_size-1 do
column_height_min = 20, if pr:next(1,inverse_chance) == 1 then
y_min = -20, local x2 = x0+x1
y_max = 50, local y2 = y0+y1
noise_threshold = 0.45, local z2 = z0+z1
noise_params = { local p2 = {x=x2, y=y2, z=z2}
offset = 0.35, local indexp2 = varea:indexp(p2)
scale = 0.2, if data[indexp2] == c_wherein then
spread = {x = 30, y = 30, z = 30}, data[indexp2] = c_ore
octaves = 1, end
persistence = 0.6 end
}, end
}) end
end
minetest.register_ore({ end
ore_type = "sheet", end
ore = "darkage:tuff", end
wherein = {"default:stone", "default:dirt", "default:gravel", "default:stone_with_coal"},
column_height_max = 20,
column_height_min = 15,
y_min = -200,
y_max = 200,
noise_threshold = 0.5,
noise_params = {
offset = 0.35,
scale = 0.19,
seed = seed+12,
spread = {x = 45, y = 45, z = 45},
octaves = 1,
persistence = 0.6
},
})
minetest.register_ore({
ore_type = "sheet",
ore = "darkage:rhyolitic_tuff",
wherein = {"default:stone", "default:dirt", "default:gravel", "default:stone_with_coal"},
column_height_max = 20,
column_height_min = 15,
y_min = -2000,
y_max = 200,
noise_threshold = 0.53,
noise_params = {
offset = 0.35,
scale = 0.2,
seed = seed+13,
spread = {x = 100, y = 100, z = 100},
octaves = 1,
persistence = 0.6
},
})
--old red sandstone
minetest.register_ore({
ore_type = "sheet",
ore = "darkage:ors",
wherein = {"default:stone", "default:dirt", "default:gravel", "default:stone_with_coal"},
column_height_max = 8,
column_height_min = 6,
y_min = -200,
y_max = 500,
noise_threshold = 0.49,
noise_params = {
offset = 0.28,
scale = 0.3,
seed = seed+4,
spread = {x = 10, y = 10, z = 10},
octaves = 1,
persistence = 0.6
},
})
-- Generate strati
local dbuf = {} --for mapgen
local function generate_strati(minp, maxp, seed)
function darkage_mapgen(data, area, minp, maxp, seed) -- public function, to be used by Lua mapgens
if minp.y < -19600 then return end
local t1 = os.clock() local t1 = os.clock()
generate_claylike(data, area, "darkage:mud", minp, maxp, seed+1, 4, 0, 2, 0)
generate_claylike(data, area, "darkage:silt", minp, maxp, seed+2, 4, -1, 1, 1)
generate_stratus(data, area, "darkage:chalk",
{"default:stone"},
{"default:stone","air"}, nil,
minp, maxp, seed+3, 4, 25, 8, 0, -20, 50)
generate_stratus(data, area, "darkage:ors",
{"default:stone"},
{"default:stone","air","default:water_source"}, nil,
minp, maxp, seed+4, 4, 25, 7, 50, -200, 500)
generate_stratus(data, area, "darkage:shale",
{"default:stone"},
{"default:stone","air"}, nil,
minp, maxp, seed+5, 4, 23, 7, 50, -50, 20)
generate_stratus(data, area, "darkage:slate",
{"default:stone"},
{"default:stone","air"}, nil,
minp, maxp, seed+6, 6, 23, 5, 50, -500, 0)
generate_stratus(data, area, "darkage:schist",
{"default:stone"},
{"default:stone","air"}, nil,
minp, maxp, seed+7, 6, 19, 6, 50, -31000, -10)
generate_stratus(data, area, "darkage:basalt",
{"default:stone"},
{"default:stone","air"}, nil,
minp, maxp, seed+8, 5, 20, 5, 20, -31000, -50)
generate_stratus(data, area, "darkage:marble",
{"default:stone"},
{"default:stone","air"}, nil,
minp, maxp, seed+9, 4, 25, 6, 50, -31000, -75)
generate_stratus(data, area, "darkage:serpentine",
{"default:stone"},
{"default:stone","air"}, nil,
minp, maxp, seed+10, 4, 28, 8, 50, -31000, -350)
generate_stratus(data, area, "darkage:gneiss",
{"default:stone"},
{"default:stone","air"}, nil,
minp, maxp, seed+11, 4, 15, 5, 50, -31000, -250)
print("DARKAGE: calculating time : " .. os.clock() - t1)
end
minetest.register_on_mapgen_init(function(mgparams)
if mgparams.mgname ~= "singlenode" then
minetest.register_on_generated(function(minp, maxp, seed)
if minp.y < -19600 then return end
local t0 = os.clock()
local vm, emin, emax = minetest.get_mapgen_object("voxelmanip") local vm, emin, emax = minetest.get_mapgen_object("voxelmanip")
local area = VoxelArea:new({MinEdge = emin, MaxEdge = emax}) local area = VoxelArea:new({MinEdge = emin, MaxEdge = emax})
local data = vm:get_data(dbuf) local data = vm:get_data()
darkage_mapgen(data, area, minp, maxp, seed)
generate_claylike(data, area, "darkage:mud", minp, maxp, seed+1, 4, 0, 2, false)
generate_claylike(data, area, "darkage:silt", minp, maxp, seed+2, 4, -1, 1, true)
-- TODO: Maybe realize the following stuff with register ore. somehow.
generate_stratus(data, area, "darkage:shale",
c_stone,
stone_and_air_assoc,
minp, maxp, seed+5, 4, 23, 7, 50, -50, 20)
generate_stratus(data, area, "darkage:slate",
c_stone,
stone_and_air_assoc,
minp, maxp, seed+6, 6, 23, 5, 50, -500, 0)
generate_stratus(data, area, "darkage:schist",
c_stone,
stone_and_air_assoc,
minp, maxp, seed+7, 6, 19, 6, 50, -31000, -10)
generate_stratus(data, area, "darkage:basalt",
c_stone,
stone_and_air_assoc,
minp, maxp, seed+8, 5, 20, 5, 20, -31000, -50)
generate_stratus(data, area, "darkage:marble",
c_stone,
stone_and_air_assoc,
minp, maxp, seed+9, 4, 25, 6, 50, -31000, -75)
generate_stratus(data, area, "darkage:serpentine",
c_stone,
stone_and_air_assoc,
minp, maxp, seed+10, 4, 28, 8, 50, -31000, -350)
generate_stratus(data, area, "darkage:gneiss",
c_stone,
stone_and_air_assoc,
minp, maxp, seed+11, 4, 15, 5, 50, -31000, -250)
vm:set_data(data) vm:set_data(data)
vm:write_to_map() vm:write_to_map()
print("DARKAGE: total time taken : " .. os.clock() - t0)
minetest.log("info", string.format("[darkage] Generated Strati after %.2fs.", os.clock() - t1)) end)
end end
end)
minetest.register_on_generated(generate_strati)

View File

@ -1,6 +0,0 @@
name = darkage
title = DarkAge
description = DarkAge adds several new nodes and crafts to create a pre industrial landscape. It also extends the stones and provides new construction materials.
depends= default, farming
optional_depends = moreblocks, stairs, unifieddyes
min_minetest_version = 5.3

737
nodes.lua Normal file → Executable file
View File

@ -1,240 +1,18 @@
local function get_node_drops(fullRockNode, cobbleRockNode) -- Naturally spawning blocks
return {
max_items = 1,
items = {
{
-- drop the cobble variant with 1/3 chance
items = {cobbleRockNode},
rarity = 3,
},
{
-- drop the full node with 2/3 chance
items = {fullRockNode},
}
}
}
end
----------
-- Nodes
----------
minetest.register_node("darkage:adobe", {
description = "Adobe",
tiles = {"darkage_adobe.png"},
is_ground_content = true,
groups = {crumbly=3},
sounds = default.node_sound_sand_defaults(),
})
--[[
Basalt
]]
minetest.register_node("darkage:basalt", {
description = "Basalt",
tiles = {"darkage_basalt.png"},
is_ground_content = true,
drop = get_node_drops("darkage:basalt","darkage:basalt_rubble"),
groups = {cracky = 3, stone = 1},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:basalt_rubble", {
description = "Basalt Rubble",
tiles = {"darkage_basalt_rubble.png"},
is_ground_content = false,
groups = {cracky = 3, stone = 2},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:basalt_brick", {
description = "Basalt Brick",
tiles = {"darkage_basalt_brick.png"},
is_ground_content = false,
groups = {cracky = 2, stone = 1},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:basalt_block", {
description = "Basalt Block",
tiles = {"darkage_basalt_block.png"},
is_ground_content = false,
groups = {cracky = 2, stone = 1},
sounds = default.node_sound_stone_defaults()
})
--[[
Chalk
]]
minetest.register_node("darkage:chalk", { minetest.register_node("darkage:chalk", {
description = "Chalk", description = "Chalk",
tiles = {"darkage_chalk.png"}, tiles = {"darkage_chalk.png"},
is_ground_content = true, is_ground_content = true,
drop = 'darkage:chalk_powder 2', drop = "darkage:chalk_powder 4",
groups = {crumbly=2, cracky=2, not_cuttable=1}, groups = {crumbly=2,cracky=2},
sounds = default.node_sound_stone_defaults() sounds = default.node_sound_stone_defaults()
}) })
minetest.register_node("darkage:cobble_with_plaster", {
description = "Cobblestone with Plaster",
tiles = {"darkage_chalk.png^(default_cobble.png^[mask:darkage_plaster_mask_D.png)", "darkage_chalk.png^(default_cobble.png^[mask:darkage_plaster_mask_B.png)",
"darkage_chalk.png^(default_cobble.png^[mask:darkage_plaster_mask_C.png)", "darkage_chalk.png^(default_cobble.png^[mask:darkage_plaster_mask_A.png)",
"default_cobble.png", "darkage_chalk.png"},
is_ground_content = false,
paramtype2 = "facedir",
drop = 'default:cobble',
groups = {cracky=3, not_cuttable=1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("darkage:chalked_bricks_with_plaster", {
description = "Chalked Bricks with Plaster",
tiles = {"darkage_chalk.png^(darkage_chalked_bricks.png^[mask:darkage_plaster_mask_D.png)", "darkage_chalk.png^(darkage_chalked_bricks.png^[mask:darkage_plaster_mask_B.png)",
"darkage_chalk.png^(darkage_chalked_bricks.png^[mask:darkage_plaster_mask_C.png)", "darkage_chalk.png^(darkage_chalked_bricks.png^[mask:darkage_plaster_mask_A.png)",
"darkage_chalked_bricks.png", "darkage_chalk.png"},
is_ground_content = false,
paramtype2 = "facedir",
drop = 'default:cobble',
groups = {cracky=3, not_cuttable=1},
sounds = default.node_sound_stone_defaults(),
})
--lbm to convert the old cobble_with_plaster to the new chalked_bricks to keep texture consistent
minetest.register_lbm({
name="darkage:convert_cobble_with_plaster",
nodenames= "darkage:cobble_with_plaster",
run_at_every_load = false,
action = function(pos,node)
node.name = "darkage:chalked_bricks_with_plaster"
minetest.swap_node(pos, node)
end
})
minetest.register_node("darkage:desert_stone_with_iron", {
description = "Desert Iron Ore",
tiles = {"default_desert_stone.png^default_mineral_iron.png"},
is_ground_content = true,
groups = {cracky=3, not_cuttable=1},
drop = 'default:iron_lump',
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("darkage:darkdirt", {
description = "Dark Dirt",
tiles = {"darkage_darkdirt.png"},
is_ground_content = false,
groups = {crumbly=2, not_cuttable=1},
sounds = default.node_sound_dirt_defaults(),
})
minetest.register_node("darkage:dry_leaves", {
description = "Dry Leaves",
tiles = {"darkage_dry_leaves.png"},
is_ground_content = false,
paramtype = "light",
groups = {snappy=3, flammable=2},
sounds = default.node_sound_leaves_defaults()
})
--[[
Gneiss
]]
minetest.register_node("darkage:gneiss", {
description = "Gneiss",
tiles = {"darkage_gneiss.png"},
is_ground_content = true,
groups = {cracky = 3, stone = 1},
drop = get_node_drops("darkage:gneiss", "darkage:gneiss_rubble"),
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:gneiss_rubble", {
description = "Gneiss Rubble",
tiles = {"darkage_gneiss_rubble.png"},
is_ground_content = false,
groups = {cracky = 3, stone = 2},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:gneiss_brick", {
description = "Gneiss Brick",
tiles = {"darkage_gneiss_brick.png"},
is_ground_content = false,
groups = {cracky = 2, stone = 1},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:gneiss_block", {
description = "Gneiss Block",
tiles = {"darkage_gneiss_block.png"},
is_ground_content = false,
groups = {cracky = 2, stone = 1},
sounds = default.node_sound_stone_defaults()
})
--[[
Marble
]]
minetest.register_node("darkage:marble", { minetest.register_node("darkage:marble", {
description = "Marble", description = "Marble",
tiles = {"darkage_marble.png"}, tiles = {"darkage_marble.png"},
is_ground_content = true, is_ground_content = true,
groups = {cracky = 3, stone = 1}, groups = {cracky=3},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:marble_tile", {
description = "Marble Tile",
tiles = {"darkage_marble_tile.png"},
is_ground_content = false,
groups = {cracky=2},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:mud", {
description = "Mud",
tiles = {"darkage_mud_up.png","darkage_mud.png"},
is_ground_content = true,
groups = {crumbly=3},
drop = 'darkage:mud_lump 4',
sounds = default.node_sound_dirt_defaults({
footstep = "",
}),
})
--[[
Old Red Sandstone
]]
minetest.register_node("darkage:ors", {
description = "Old Red Sandstone",
tiles = {"darkage_ors.png"},
is_ground_content = true,
drop = "darkage:ors_rubble",
groups = {cracky=2},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:ors_rubble", {
description = "Old Red Sandstone Rubble",
tiles = {"darkage_ors_rubble.png"},
is_ground_content = true,
groups = {cracky = 3, crumbly=2, stone = 2},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:ors_brick", {
description = "Old Red Sandstone Brick",
tiles = {"darkage_ors_brick.png"},
is_ground_content = false,
groups = {cracky = 3, stone = 2},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:ors_block", {
description = "Old Red Sandstone Block",
tiles = {"darkage_ors_block.png"},
is_ground_content = false,
groups = {cracky = 3, stone = 2},
sounds = default.node_sound_stone_defaults() sounds = default.node_sound_stone_defaults()
}) })
@ -246,6 +24,25 @@ minetest.register_node("darkage:serpentine", {
sounds = default.node_sound_stone_defaults() sounds = default.node_sound_stone_defaults()
}) })
minetest.register_node("darkage:mud", {
description = "Mud",
tiles = {"darkage_mud_top.png", "darkage_mud.png"},
is_ground_content = true,
groups = {crumbly=3},
drop = "darkage:mud_lump 4",
sounds = default.node_sound_dirt_defaults({
footstep = "",
}),
})
minetest.register_node("darkage:schist", {
description = "Schist",
tiles = {"darkage_schist.png"},
is_ground_content = true,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:shale", { minetest.register_node("darkage:shale", {
description = "Shale", description = "Shale",
tiles = {"darkage_shale.png","darkage_shale.png","darkage_shale_side.png"}, tiles = {"darkage_shale.png","darkage_shale.png","darkage_shale_side.png"},
@ -254,216 +51,410 @@ minetest.register_node("darkage:shale", {
sounds = default.node_sound_stone_defaults() sounds = default.node_sound_stone_defaults()
}) })
minetest.register_node("darkage:schist", {
description = "Schist",
tiles = {"darkage_schist.png"},
is_ground_content = true,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:silt", { minetest.register_node("darkage:silt", {
description = "Silt", description = "Silt",
tiles = {"darkage_silt.png"}, tiles = {"darkage_silt.png"},
is_ground_content = true, is_ground_content = true,
groups = {crumbly=3}, groups = {crumbly=3},
drop = 'darkage:silt_lump 4', drop = "darkage:silt_lump 4",
sounds = default.node_sound_dirt_defaults({ sounds = default.node_sound_dirt_defaults({
footstep = "", footstep = "",
}), }),
}) })
--[[
Slate
]]
minetest.register_node("darkage:slate", { minetest.register_node("darkage:slate", {
description = "Slate", description = "Slate",
tiles = {"darkage_slate.png","darkage_slate.png","darkage_slate_side.png"}, tiles = {"darkage_slate.png","darkage_slate.png","darkage_slate_side.png"},
is_ground_content = true, is_ground_content = true,
drop = 'darkage:slate_rubble', drop = "darkage:slate_cobble",
groups = {cracky=2}, groups = {cracky=2},
sounds = default.node_sound_stone_defaults() sounds = default.node_sound_stone_defaults()
}) })
minetest.register_node("darkage:slate_rubble", { minetest.register_node("darkage:ors", {
description = "Slate Rubble", description = "Old Red Sandstone",
tiles = {"darkage_slate_rubble.png"}, tiles = {"darkage_ors.png"},
is_ground_content = false, is_ground_content = true,
drop = "darkage:ors_cobble",
groups = {crumbly=2,cracky=2},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:gneiss", {
description = "Gneiss",
tiles = {"darkage_gneiss.png"},
is_ground_content = true,
groups = {cracky=3},
drop = "darkage:gneiss_cobble",
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:basalt", {
description = "Basalt",
tiles = {"darkage_basalt.png"},
is_ground_content = true,
drop = "darkage:basalt_cobble",
groups = {cracky=3},
sounds = default.node_sound_stone_defaults()
})
-- Cobble
minetest.register_node("darkage:slate_cobble", {
description = "Slate Cobble",
tiles = {"darkage_slate_cobble.png"},
groups = {cracky=2}, groups = {cracky=2},
sounds = default.node_sound_stone_defaults() sounds = default.node_sound_stone_defaults()
}) })
minetest.register_node("darkage:slate_tile", { minetest.register_node("darkage:ors_cobble", {
description = "Slate Tile", description = "Old Red Sandstone Cobble",
tiles = {"darkage_slate_tile.png"}, tiles = {"darkage_ors_cobble.png"},
is_ground_content = false, groups = {crumbly=2,cracky=2},
groups = {cracky=2},
sounds = default.node_sound_stone_defaults() sounds = default.node_sound_stone_defaults()
}) })
minetest.register_node("darkage:slate_block", { minetest.register_node("darkage:gneiss_cobble", {
description = "Slate Block", description = "Gneiss Cobble",
tiles = {"darkage_slate_block.png"}, tiles = {"darkage_gneiss_cobble.png"},
is_ground_content = false, groups = {cracky=3},
groups = {cracky=2},
sounds = default.node_sound_stone_defaults() sounds = default.node_sound_stone_defaults()
}) })
minetest.register_node("darkage:basalt_cobble", {
description = "Basalt Cobble",
tiles = {"darkage_basalt_cobble.png"},
groups = {cracky=3},
sounds = default.node_sound_stone_defaults()
})
-- Brick
minetest.register_node("darkage:slate_brick", { minetest.register_node("darkage:slate_brick", {
description = "Slate Brick", description = "Slate Brick",
tiles = {"darkage_slate_brick.png"}, tiles = {"darkage_slate_brick.png"},
is_ground_content = false,
groups = {cracky=2}, groups = {cracky=2},
sounds = default.node_sound_stone_defaults() sounds = default.node_sound_stone_defaults()
}) })
-- Removed straw, because its in minetst game. Registering alias for compatibility reasons minetest.register_node("darkage:ors_brick", {
minetest.register_alias("darkage:straw", "farming:straw") description = "Old Red Sandstone Brick",
tiles = {"darkage_ors_brick.png"},
groups = {crumbly=2,cracky=2},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:gneiss_brick", {
description = "Gneiss Brick",
tiles = {"darkage_gneiss_brick.png"},
groups = {cracky=3},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:basalt_brick", {
description = "Basalt Brick",
tiles = {"darkage_basalt_brick.png"},
groups = {cracky=3},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:stone_brick", { minetest.register_node("darkage:stone_brick", {
description = "Stone Brick", description = "Stone Brick",
tiles = {"darkage_stone_brick.png"}, tiles = {"darkage_stone_brick.png"},
is_ground_content = false,
groups = {cracky=3}, groups = {cracky=3},
sounds = default.node_sound_stone_defaults() sounds = default.node_sound_stone_defaults()
}) })
-- Other Blocks
--if not farming:straw
if minetest.get_modpath("farming") == nil then
minetest.register_node("darkage:straw", {
description = "Straw",
tiles = {"darkage_straw.png"},
groups = {snappy=3, flammable=2},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("darkage:straw_bale", { minetest.register_node("darkage:straw_bale", {
description = "Straw Bale", description = "Straw Bale",
tiles = {"darkage_straw_bale.png"}, tiles = {"darkage_straw_bale.png"},
is_ground_content = false, drop = "darkage:straw 4",
drop = 'farming:straw 4', groups = {snappy=3, flammable=2},
groups = {snappy=2, flammable=2},
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
}) })
else
--[[ minetest.register_node("darkage:straw_bale", {
Tuff description = "Straw Bale",
]] tiles = {"darkage_straw_bale.png"},
minetest.register_node("darkage:tuff", { drop = "farming:straw 4",
description = "Tuff", groups = {snappy=3, flammable=2},
tiles = {"darkage_tuff.png"}, sounds = default.node_sound_leaves_defaults(),
is_ground_content = true,
legacy_mineral = true,
groups = {cracky = 3, stone = 1},
drop = {
max_items = 1,
items = {
{
-- player get tuff node if he is lucky :)
items = {'darkage:tuff'},
rarity = 3,
},
{
-- player will get rubble with 2/3 chance
items = {'darkage:tuff_rubble'},
}
}
},
sounds = default.node_sound_stone_defaults()
}) })
minetest.register_node("darkage:tuff_bricks", {
description = "Tuff Bricks",
tiles = {"darkage_tuff_bricks.png"},
is_ground_content = false,
groups = {cracky=2},
sounds = default.node_sound_stone_defaults()
})
-- abm to turn Tuff bricks to old Tuff bricks if water is nearby
minetest.register_abm({
nodenames = {"darkage:tuff_bricks"},
neighbors = {"group:water"},
interval = 16,
chance = 200,
catch_up = false,
action = function(pos, node)
minetest.set_node(pos, {name = "darkage:old_tuff_bricks"})
end end
})
minetest.register_node("darkage:tuff_rubble", { minetest.register_node("darkage:slate_tile", {
description = "Tuff Rubble", description = "Slate Tile",
tiles = {"darkage_tuff_rubble.png"}, tiles = {"darkage_slate_tile.png"},
groups = {crumbly = 2, falling_node = 1},
sounds = default.node_sound_gravel_defaults(),
})
--[[
Rhyolitic Tuff
]]
minetest.register_node("darkage:rhyolitic_tuff", {
description = "Rhyolitic Tuff",
tiles = {"darkage_rhyolitic_tuff.png"},
is_ground_content = true,
legacy_mineral = true,
groups = {cracky = 3, stone = 1},
drop = {
max_items = 1,
items = {
{
-- player get tuff node if he is lucky :)
items = {'darkage:rhyolitic_tuff'},
rarity = 3,
},
{
-- player will get rubble with 2/3 chance
items = {'darkage:rhyolitic_tuff_rubble'},
}
}
},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:rhyolitic_tuff_bricks", {
description = "Rhyolitic Tuff Bricks",
tiles = {"darkage_rhyolitic_tuff_bricks.png"},
is_ground_content = false,
groups = {cracky=2}, groups = {cracky=2},
sounds = default.node_sound_stone_defaults() sounds = default.node_sound_stone_defaults()
}) })
minetest.register_node("darkage:old_tuff_bricks", { minetest.register_node("darkage:marble_tile", {
description = "Old Tuff Bricks", description = "Marble Tile",
tiles = {"darkage_old_tuff_bricks.png"}, tiles = {"darkage_marble_tile.png"},
is_ground_content = false, groups = {cracky=2},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:reinforced_chalk", {
description = "Reinforced Chalk",
tiles = {"darkage_chalk.png^darkage_reinforce.png"},
groups = {cracky=3}, groups = {cracky=3},
sounds = default.node_sound_stone_defaults() sounds = default.node_sound_stone_defaults()
}) })
minetest.register_node("darkage:adobe", {
description = "Adobe",
tiles = {"darkage_adobe.png"},
groups = {crumbly=3},
minetest.register_node("darkage:rhyolitic_tuff_rubble", { sounds = default.node_sound_sand_defaults(),
description = "Rhyolitic Tuff Rubble",
tiles = {"darkage_rhyolitic_tuff_rubble.png"},
groups = {crumbly = 2, falling_node = 1},
sounds = default.node_sound_gravel_defaults(),
}) })
minetest.register_node("darkage:lamp", {
description = "Lamp",
tiles = {"darkage_lamp.png"},
paramtype = "light",
light_source = default.LIGHT_MAX,
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3,flammable=1},
sounds = default.node_sound_glass_defaults(),
})
--[[ minetest.register_node("darkage:cobble_with_plaster", {
add a node using the cobble texture that was introduced in minetest 0.4.dev-20120408 and got removed in 0.4.7 description = "Cobblestone With Plaster",
It has a nice contrast together the stone bricks, so I think it could get usefull. tiles = {"darkage_cobble_with_plaster_D.png", "darkage_cobble_with_plaster_B.png", "darkage_cobble_with_plaster_C.png",
]] "darkage_cobble_with_plaster_A.png", "default_cobble.png", "darkage_chalk.png"},
minetest.register_node("darkage:chalked_bricks", { paramtype2 = "facedir",
description = "Chalked Brick", drop = "default:cobble",
tiles = {"darkage_chalked_bricks.png"}, groups = {cracky=3},
is_ground_content = false,
groups = {cracky = 2, stone = 1},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
minetest.register_craft({ minetest.register_node("darkage:darkdirt", {
output = "darkage:chalked_bricks 4", description = "Dark Dirt",
recipe = { tiles = {"darkage_darkdirt.png"},
{"default:stone", "default:stone", "darkage:chalk_powder"}, groups = {crumbly=2},
{"darkage:chalk_powder", "darkage:chalk_powder", "darkage:chalk_powder"}, sounds = default.node_sound_dirt_defaults(),
{"default:stone", "darkage:chalk_powder", "default:stone"}, })
}
minetest.register_node("darkage:dry_leaves", {
description = "Dry Leaves",
tiles = {"darkage_dry_leaves.png"},
paramtype = "light",
groups = {snappy=3, flammable=2},
sounds = default.node_sound_leaves_defaults()
})
-- Storage blocks (boxes, shelves, ect.)
minetest.register_node("darkage:box", {
description = "Box",
tiles = { "darkage_box_top.png","darkage_box_top.png","darkage_box.png"},
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_wood_defaults(),
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec",
"size[8,8]"..
"list[current_name;main;0,0;8,3;]"..
"list[current_player;main;0,4;8,4;]"..
"listring[current_name;main]" ..
"listring[current_player;main]")
meta:set_string("infotext", "Box")
local inv = meta:get_inventory()
inv:set_size("main", 16)
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 box 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 stuff to box 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 stuff from box at "..minetest.pos_to_string(pos))
end,
})
minetest.register_node("darkage:wood_shelves", {
description = "Wooden Shelves",
tiles = { "darkage_shelves.png","darkage_shelves.png","darkage_shelves.png",
"darkage_shelves.png","darkage_shelves.png","darkage_shelves_front.png"},
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = {snappy = 3},
sounds = default.node_sound_wood_defaults(),
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec",
"size[8,10]"..
"list[context;up;0,0;8,3;]"..
"list[context;down;0,3;8,3;]"..
"list[current_player;main;0,6;8,4;]"..
"listring[context;down]"..
"listring[current_player;main]"..
"listring[context;up]"..
"listring[current_player;main]")
meta:set_string("infotext", "Wooden Shelves")
local inv = meta:get_inventory()
inv:set_size("up", 16)
inv:set_size("down", 16)
end,
can_dig = function(pos,player)
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory()
return inv:is_empty("shape") and inv:is_empty("out") and inv:is_empty("water")
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 shelves 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 stuff to shelves 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 stuff from shelves at "..minetest.pos_to_string(pos))
end,
})
-- Glass / Glow Glass
minetest.register_node("darkage:glass", {
description = "Medieval Glass",
drawtype = "glasslike",
tiles = {"darkage_glass.png"},
paramtype = "light",
sunlight_propagates = true,
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_glass_defaults(),
})
minetest.register_node("darkage:glow_glass", {
description = "Medieval Glow Glass",
drawtype = "glasslike",
tiles = {"darkage_glass.png"},
paramtype = "light",
light_source = default.LIGHT_MAX,
sunlight_propagates = true,
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_glass_defaults(),
})
-- Reinforced Wood
minetest.register_node("darkage:reinforced_wood", {
description = "Reinforced Wood",
tiles = {"default_wood.png^darkage_reinforce.png"},
groups = {snappy=2,choppy=3,oddly_breakable_by_hand=3,flammable=3},
sounds = default.node_sound_wood_defaults()
})
minetest.register_node("darkage:reinforced_wood_left", {
description = "Reinforced Wood Left",
tiles = {"darkage_reinforced_wood_left.png"},
groups = {snappy=2,choppy=3,oddly_breakable_by_hand=3,flammable=3},
sounds = default.node_sound_wood_defaults()
})
minetest.register_node("darkage:reinforced_wood_right", {
description = "Reinforced Wood Right",
tiles = {"darkage_reinforced_wood_right.png"},
groups = {snappy=2,choppy=3,oddly_breakable_by_hand=3,flammable=3},
sounds = default.node_sound_wood_defaults()
})
-- Wood based deco items
minetest.register_node("darkage:wood_bars", {
description = "Wooden Bars",
drawtype = "glasslike",
tiles = {"darkage_wood_bars.png"},
inventory_image = "darkage_wood_bars.png",
wield_image = "darkage_wood_bars.png",
paramtype = "light",
sunlight_propagates = true,
groups = {snappy=1,choppy=2},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:wood_grille", {
description = "Wooden Grille",
drawtype = "glasslike",
tiles = {"darkage_wood_grille.png"},
inventory_image = "darkage_wood_grille.png",
wield_image = "darkage_wood_grille.png",
paramtype = "light",
sunlight_propagates = true,
groups = {snappy=1,choppy=2},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:wood_frame", {
description = "Wooden Frame",
drawtype = "glasslike",
tiles = {"darkage_wood_frame.png"},
inventory_image = "darkage_wood_frame.png",
wield_image = "darkage_wood_frame.png",
paramtype = "light",
sunlight_propagates = true,
groups = {snappy=1,choppy=2},
sounds = default.node_sound_stone_defaults()
})
-- Metal based deco items
minetest.register_node("darkage:chain", {
description = "Chain",
drawtype = "signlike",
tiles = {"darkage_chain.png"},
inventory_image = "darkage_chain.png",
wield_image = "darkage_chain.png",
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
climbable = true,
selection_box = {
type = "wallmounted",
},
groups = {snappy=1,cracky=2,oddly_breakable_by_hand=2},
legacy_wallmounted = true
})
minetest.register_node("darkage:iron_bars", {
description = "Iron Bars",
drawtype = "glasslike",
tiles = {"darkage_iron_bars.png"},
inventory_image = "darkage_iron_bars.png",
wield_image = "darkage_iron_bars.png",
paramtype = "light",
sunlight_propagates = true,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:iron_grille", {
description = "Iron Grille",
drawtype = "glasslike",
tiles = {"darkage_iron_grille.png"},
inventory_image = "darkage_iron_grille.png",
wield_image = "darkage_iron_grille.png",
paramtype = "light",
sunlight_propagates = true,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults()
}) })

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 635 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 609 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 732 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 606 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 535 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 903 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 555 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 555 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 656 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 260 KiB

387
stairs.lua Normal file → Executable file
View File

@ -1,29 +1,362 @@
if stairsplus then
-- Registration of Stairs (Alphabetical order) stairsplus:register_all("darkage", "basalt", "darkage:basalt", {
darkage.register_stairs("darkage:basalt") description = "Basalt",
darkage.register_stairs("darkage:basalt_brick") tiles = {"darkage_basalt.png"},
darkage.register_stairs("darkage:basalt_rubble") groups = {cracky=3},
darkage.register_stairs("darkage:chalked_bricks") sounds = default.node_sound_stone_defaults(),
darkage.register_stairs("darkage:gneiss") sunlight_propagates = true,
darkage.register_stairs("darkage:gneiss_brick") })
darkage.register_stairs("darkage:gneiss_rubble")
darkage.register_stairs("darkage:marble")
darkage.register_stairs("darkage:marble_tile")
darkage.register_stairs("darkage:old_tuff_bricks")
darkage.register_stairs("darkage:ors")
darkage.register_stairs("darkage:ors_brick")
darkage.register_stairs("darkage:ors_rubble")
darkage.register_stairs("darkage:rhyolitic_tuff")
darkage.register_stairs("darkage:rhyolitic_tuff_bricks")
darkage.register_stairs("darkage:schist")
darkage.register_stairs("darkage:serpentine")
darkage.register_stairs("darkage:shale")
darkage.register_stairs("darkage:slate")
darkage.register_stairs("darkage:slate_brick")
darkage.register_stairs("darkage:slate_rubble")
darkage.register_stairs("darkage:slate_tile")
darkage.register_stairs("darkage:stone_brick")
darkage.register_stairs("darkage:straw_bale")
darkage.register_stairs("darkage:tuff")
darkage.register_stairs("darkage:tuff_bricks")
stairsplus:register_all("darkage", "marble", "darkage:marble", {
description = "Marble",
tiles = {"darkage_marble.png"},
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = true,
})
stairsplus:register_all("darkage", "serpentine", "darkage:serpentine", {
description = "Serpentine",
tiles = {"darkage_serpentine.png"},
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = true,
})
stairsplus:register_all("darkage", "ors", "darkage:ors", {
description = "Old Red Sandstone",
tiles = {"darkage_ors.png"},
groups = {crumbly=2,cracky=2},
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = true,
})
stairsplus:register_all("darkage", "schist", "darkage:schist", {
description = "Schist",
tiles = {"darkage_schist.png"},
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = true,
})
stairsplus:register_all("darkage", "slate", "darkage:slate", {
description = "Slate",
tiles = {"darkage_slate.png"},
groups = {cracky=2},
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = true,
})
stairsplus:register_all("darkage", "gneiss", "darkage:gneiss", {
description = "Gneiss",
tiles = {"darkage_gneiss.png"},
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = true,
})
stairsplus:register_all("darkage", "chalk", "darkage:chalk", {
description = "Chalk",
tiles = {"darkage_chalk.png"},
groups = {crumbly=2,cracky=2},
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = true,
})
stairsplus:register_all("darkage", "slate_cobble", "darkage:slate_cobble", {
description = "Slate Cobble",
tiles = {"darkage_slate_cobble.png"},
groups = {cracky=2},
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = true,
})
stairsplus:register_all("darkage", "ors_cobble", "darkage:ors_cobble", {
description = "Old Red Sandstone Cobble",
tiles = {"darkage_ors_cobble.png"},
groups = {crumbly=2,cracky=2},
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = true,
})
stairsplus:register_all("darkage", "gneiss_cobble", "darkage:gneiss_cobble", {
description = "Gneiss Cobble",
tiles = {"darkage_gneiss_cobble.png"},
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = true,
})
stairsplus:register_all("darkage", "basalt_cobble", "darkage:basalt_cobble", {
description = "Basalt Cobble",
tiles = {"darkage_basalt_cobble.png"},
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = true,
})
--if not farming:straw
if minetest.get_modpath("farming") == nil then
stairsplus:register_all("darkage", "straw", "darkage:straw", {
description = "Straw",
tiles = {"darkage_straw.png"},
groups = {snappy=3, flammable=2},
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = true,
})
else
stairsplus:register_all("darkage", "straw", "farming:straw", {
description = "Straw",
tiles = {"darkage_straw.png"},
groups = {snappy=3, flammable=2},
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = true,
})
end
stairsplus:register_all("darkage", "straw_bale", "darkage:straw_bale", {
description = "Straw Bale",
tiles = {"darkage_straw_bale.png"},
groups = {snappy=2, flammable=2},
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = true,
})
stairsplus:register_all("darkage", "slate_tile", "darkage:slate_tile", {
description = "Slate Tile",
tiles = {"darkage_slate_tile.png"},
groups = {cracky=2},
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = true,
})
stairsplus:register_all("darkage", "marble_tile", "darkage:marble_tile", {
description = "Marble Tile",
tiles = {"darkage_marble_tile.png"},
groups = {cracky=2},
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = true,
})
stairsplus:register_all("darkage", "stone_brick", "darkage:stone_brick", {
description = "Stone Brick",
tiles = {"darkage_stone_brick.png"},
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = true,
})
stairsplus:register_all("darkage", "reinforced_chalk", "darkage:reinforced_chalk", {
description = "Reinforced Chalk",
tiles = {"darkage_chalk.png^darkage_reinforce.png"},
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = true,
})
stairsplus:register_all("darkage", "glass", "darkage:glass", {
description = "Medieval Glass",
tiles = {"darkage_glass.png"},
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = true,
})
stairsplus:register_all("darkage", "glow_glass", "darkage:glow_glass", {
description = "Medieval Glow Glass",
tiles = {"darkage_glass.png"},
paramtype = "light",
light_source = default.LIGHT_MAX,
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = true,
})
stairsplus:register_all("darkage", "reinforced_wood", "darkage:reinforced_wood", {
description = "Reinforced Wood",
tiles = {"default_wood.png^darkage_reinforce.png"},
groups = {snappy=2,choppy=3,oddly_breakable_by_hand=3,flammable=3},
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = true,
})
elseif stairs then
stairs.register_stair_and_slab("basalt", "darkage:basalt",
{cracky=3},
{"darkage_basalt.png"},
"Basalt Stair",
"Basalt Slab",
default.node_sound_stone_defaults()
)
stairs.register_stair_and_slab("marble", "darkage:marble",
{cracky=3},
{"darkage_marble.png"},
"Marble Stair",
"Marble Slab",
default.node_sound_stone_defaults()
)
stairs.register_stair_and_slab("marble", "darkage:serpentine",
{cracky=3},
{"darkage_serpentine.png"},
"Serpentine Stair",
"Serpentine Slab",
default.node_sound_stone_defaults()
)
stairs.register_stair_and_slab("ors", "darkage:ors",
{crumbly=2,cracky=2},
{"darkage_ors.png"},
"Old Red Sandstone Stair",
"Old Red Sandstone Slab",
default.node_sound_stone_defaults()
)
stairs.register_stair_and_slab("schist", "darkage:schist",
{cracky=3},
{"darkage_schist.png"},
"Schist Stair",
"Schist Slab",
default.node_sound_stone_defaults()
)
stairs.register_stair_and_slab("slate", "darkage:slate",
{cracky=2},
{"darkage_slate.png"},
"Slate Stair",
"Slate Slab",
default.node_sound_stone_defaults()
)
stairs.register_stair_and_slab("gneiss", "darkage:gneiss",
{cracky=3},
{"darkage_gneiss.png"},
"Gneiss Stair",
"Gneiss Slab",
default.node_sound_stone_defaults()
)
stairs.register_stair_and_slab("chalk", "darkage:chalk",
{crumbly=2,cracky=2},
{"darkage_chalk.png"},
"Chalk Stair",
"Chalk Slab",
default.node_sound_stone_defaults()
)
stairs.register_stair_and_slab("slate_cobble", "darkage:slate_cobble",
{cracky=2},
{"darkage_slate_cobble.png"},
"Slate Cobble Stair",
"Slate Cobble Slab",
default.node_sound_stone_defaults()
)
stairs.register_stair_and_slab("ors_cobble", "darkage:ors_cobble",
{crumbly=2,cracky=2},
{"darkage_ors_cobble.png"},
"Old Red Sandstone Cobble Stair",
"Old Red Sandstone Cobble Slab",
default.node_sound_stone_defaults()
)
stairs.register_stair_and_slab("gneiss_cobble", "darkage:gneiss_cobble",
{crumbly=2,cracky=2},
{"darkage_gneiss_cobble.png"},
"Gneiss Cobble Stair",
"Gneiss Cobble Slab",
default.node_sound_stone_defaults()
)
stairs.register_stair_and_slab("basalt_cobble", "darkage:basalt_cobble",
{cracky=3},
{"darkage_basalt_cobble.png"},
"Basalt Cobble Stair",
"Basalt Cobble Slab",
default.node_sound_stone_defaults()
)
--if not farming:straw
if minetest.get_modpath("farming") == nil then
stairs.register_stair_and_slab("straw", "darkage:straw",
{snappy=3, flammable=2},
{"darkage_straw.png"},
"Straw Stair",
"Straw Slab",
default.node_sound_stone_defaults()
)
else
stairs.register_stair_and_slab("straw", "farming:straw",
{snappy=3, flammable=2},
{"darkage_straw.png"},
"Straw Stair",
"Straw Slab",
default.node_sound_stone_defaults()
)
end
stairs.register_stair_and_slab("straw_bale", "darkage:straw_bale",
{snappy=2, flammable=2},
{"darkage_straw_bale.png"},
"Straw Bale Stair",
"Straw Bale Slab",
default.node_sound_stone_defaults()
)
stairs.register_stair_and_slab("slate_tile", "darkage:slate_tile",
{cracky=2},
{"darkage_slate_tile.png"},
"Slate Tile Stair",
"Slate Tile Slab",
default.node_sound_stone_defaults()
)
stairs.register_stair_and_slab("marble_tile", "darkage:marble_tile",
{cracky=2},
{"darkage_marble_tile.png"},
"Marble Tile Stair",
"Marble Tile Slab",
default.node_sound_stone_defaults()
)
stairs.register_stair_and_slab("stone_brick", "darkage:stone_brick",
{cracky=3},
{"darkage_stone_brick.png"},
"Stone Brick Stair",
"Stone Brick Slab",
default.node_sound_stone_defaults()
)
stairs.register_stair_and_slab("reinforced_chalk", "darkage:reinforced_chalk",
{cracky=3},
{"darkage_chalk.png^darkage_reinforce.png"},
"Reinforced Chalk Stair",
"Reinforced Chalk Slab",
default.node_sound_stone_defaults()
)
stairs.register_stair_and_slab("glass", "darkage:glass",
{snappy=2,cracky=3,oddly_breakable_by_hand=3},
{"darkage_glass.png"},
"Medieval Glass Stair",
"Medieval Glass Slab",
default.node_sound_stone_defaults()
)
stairs.register_stair_and_slab("glow_glass", "darkage:glow_glass",
{snappy=2,cracky=3,oddly_breakable_by_hand=3},
{"darkage_glass.png"},
"Medieval Glow Glass Stair",
"Medieval Glow Glass Slab",
default.node_sound_stone_defaults()
)
stairs.register_stair_and_slab("reinforced_wood", "darkage:reinforced_wood",
{snappy=2,choppy=3,oddly_breakable_by_hand=3,flammable=3},
{"default_wood.png^darkage_reinforce.png"},
"Reinforced Wood Stair",
"Reinforced Wood Slab",
default.node_sound_stone_defaults()
)
end

View File

@ -1,71 +0,0 @@
if minetest.get_modpath("moreblocks") then
function darkage.register_stairs(nodeName)
local ndef = assert(minetest.registered_nodes[nodeName], "Error: "..nodeName.." is not registered")
local mod = "darkage"
local node = nodeName:split(":")[2]
local def = table.copy(ndef)
def.drop = nil
stairsplus:register_all(mod, node, nodeName, def)
end
elseif minetest.get_modpath("stairs") then
function darkage.register_stairs(nodeName)
local ndef = assert(minetest.registered_nodes[nodeName], "Error: "..nodeName.." is not registered")
local node = nodeName:split(":")[2]
-- The stairs api does not allow to use the darkage modname, so we have to call the nodes stairs:stair_darkage_
-- and creating an alias
local subname = "darkage_".. node;
stairs.register_stair_and_slab(subname, nodeName,
ndef.groups, ndef.tiles,
ndef.description.." Stair", ndef.description.." Slab",
ndef.sounds)
--stairs.register_stair_and_slab(subname, recipeitem,
-- groups, images,
-- desc_stair, desc_slab, sounds)
minetest.register_alias("darkage:stair_"..node, "stairs:stair_darkage_"..node)
minetest.register_alias("darkage:slab_"..node, "stairs:slab_darkage_"..node)
end
else
-- No compatible stairs mod found.
minetest.log("error", "[darkage] Darkage requires at least moreblocks or stairs to be installed. Its not possible to register stairs.")
function darkage.register_stairs(nodeName)
minetest.log("warning", "could not create stair of type "..nodeName .." because no compatible stairs mod is installed.")
end
end
--[[
if minetest.get_modpath("xdecor") then
table.insert(workbench.custom_nodes_register, "darkage:straw_bale") -- Straw Bale seems to accidently filtered out
end
]]
-- Uncomment, to check if nodes get registered correctly
--[[
if minetest.get_modpath("xdecor") then
darkage.isCuttable = {}
function darkage.register_stairs(nodeName)
darkage.isCuttable[nodeName] = true;
end
end
]]
--place the folowing funktion inside xdecor, to check if everything works fine.
--[[
then
if( node:split(":")[1] == "darkage" and not darkage.isCuttable[node]) then
minetest.log("error", "Error: "..node.. " should not be cuttable")
end
nodes[#nodes+1] = node
else
if( node:split(":")[1] == "darkage" and darkage.isCuttable[node]) then
minetest.log("error", "Error: "..node.. " should be cuttable")
end
]]

BIN
textures/darkage_adobe.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 964 B

After

Width:  |  Height:  |  Size: 592 B

BIN
textures/darkage_basalt.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 728 B

After

Width:  |  Height:  |  Size: 388 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 728 B

BIN
textures/darkage_basalt_brick.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 596 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 275 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

BIN
textures/darkage_box.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 577 B

After

Width:  |  Height:  |  Size: 701 B

BIN
textures/darkage_box_top.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 617 B

After

Width:  |  Height:  |  Size: 758 B

BIN
textures/darkage_chain.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 164 B

After

Width:  |  Height:  |  Size: 164 B

BIN
textures/darkage_chalk.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 953 B

After

Width:  |  Height:  |  Size: 686 B

BIN
textures/darkage_chalk_powder.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 450 B

After

Width:  |  Height:  |  Size: 618 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 407 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 655 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 659 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 643 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 668 B

BIN
textures/darkage_darkdirt.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 764 B

BIN
textures/darkage_dry_leaves.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 177 B

After

Width:  |  Height:  |  Size: 177 B

BIN
textures/darkage_glass.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 385 B

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 381 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 292 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 418 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 499 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 347 B

BIN
textures/darkage_gneiss.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 793 B

After

Width:  |  Height:  |  Size: 846 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 872 B

BIN
textures/darkage_gneiss_brick.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 802 B

After

Width:  |  Height:  |  Size: 852 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 762 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 922 B

BIN
textures/darkage_iron_bars.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 566 B

After

Width:  |  Height:  |  Size: 619 B

BIN
textures/darkage_iron_grille.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 457 B

After

Width:  |  Height:  |  Size: 548 B

BIN
textures/darkage_iron_stick.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 B

After

Width:  |  Height:  |  Size: 115 B

BIN
textures/darkage_lamp.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 516 B

After

Width:  |  Height:  |  Size: 640 B

BIN
textures/darkage_marble.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 275 B

After

Width:  |  Height:  |  Size: 328 B

BIN
textures/darkage_marble_tile.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 637 B

After

Width:  |  Height:  |  Size: 690 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 950 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 914 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 670 B

BIN
textures/darkage_mud.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 515 B

After

Width:  |  Height:  |  Size: 312 B

BIN
textures/darkage_mud_lump.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 B

After

Width:  |  Height:  |  Size: 653 B

BIN
textures/darkage_mud_top.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 261 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 474 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

BIN
textures/darkage_ors.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 725 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

BIN
textures/darkage_ors_brick.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 692 B

After

Width:  |  Height:  |  Size: 733 B

BIN
textures/darkage_ors_cobble.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 757 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 B

0
textures/darkage_reinforce.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 686 B

After

Width:  |  Height:  |  Size: 686 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 454 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 481 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 457 B

Some files were not shown because too many files have changed in this diff Show More