1
0
mirror of https://github.com/adrido/darkage.git synced 2025-06-29 23:11:03 +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
Modified by addi.
This mod originally created by MasterGollum and is now maintained and being improved upon by addi and CraigyDavi.
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
pre industrial landscape. Of course, feel free to use them in any other
construction :P
**Installation:** Unzip the file and rename it to "darkage". Then move it to the mod directory.
It also provides more layers of stones. I tried not to turn mining in
a rainbow, so don't expect to find them easily. There are two kinds of
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.
## Changelog
**Version Development**
I used mainly 4 square recipes to avoid collisions with other MODs,
anyway I have not checked all them, so it is possible that another
person is already using one or more of this combinations.
**Version 1.3**
I also used Desert Sand and Desert Stone, because they almost are not
used in the default version. Probably I will change this recipes in
next releases.
* Many, many craft recipe changes
* New lamp texture
* 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/
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>
* Fixed broken init.lua
## Wiki
**Version 1.0**
For Building-blocks and crafting information please take a look to the wiki:
<https://github.com/adrido/darkage/wiki>
* Compatibility with stairsplus added
* 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
Graphics: CC-0
* 29 Nodes + 3 Craft Items
* 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 @@
--[[
This function registers alias for all micro, panel, stair nodes that get registered by moreblocks
Converts all nodes from origin to new
* origin: nodename in form of "modname:oldnode"
* new: nodename in form of "modname:newnode"
]]
local function register_moreblocks_alias(origin, new)
local originmod = origin:split(":")[1]
local originnode = origin:split(":")[2]
local newmod = new:split(":")[1]
local newnode = new:split(":")[2]
local ra = minetest.register_alias
ra(originmod.. ":micro_" ..originnode.."_1", newmod..":micro_" ..newnode.."_1")
ra(originmod.. ":panel_" ..originnode.."_1", newmod..":panel_" ..newnode.."_1")
ra(originmod.. ":micro_" ..originnode.."_2", newmod..":micro_" ..newnode.."_2")
ra(originmod.. ":panel_" ..originnode.."_2", newmod..":panel_" ..newnode.."_2")
ra(originmod.. ":micro_" ..originnode.."_4", newmod..":micro_" ..newnode.."_4")
ra(originmod.. ":panel_" ..originnode.."_4", newmod..":panel_" ..newnode.."_4")
ra(originmod.. ":micro_" ..originnode, newmod..":micro_" ..newnode)
ra(originmod.. ":panel_" ..originnode, newmod..":panel_" ..newnode)
ra(originmod.. ":micro_" ..originnode.."_12", newmod..":micro_" ..newnode.."_12")
ra(originmod.. ":panel_" ..originnode.."_12", newmod..":panel_" ..newnode.."_12")
ra(originmod.. ":micro_" ..originnode.."_14", newmod..":micro_" ..newnode.."_14")
ra(originmod.. ":panel_" ..originnode.."_14", newmod..":panel_" ..newnode.."_14")
ra(originmod.. ":micro_" ..originnode.."_15", newmod..":micro_" ..newnode.."_15")
ra(originmod.. ":panel_" ..originnode.."_15", newmod..":panel_" ..newnode.."_15")
ra(originmod.. ":stair_" ..originnode.."_outer", newmod..":stair_" ..newnode.."_outer")
ra(originmod.. ":stair_" ..originnode, newmod..":stair_" ..newnode)
ra(originmod.. ":stair_" ..originnode.."_inner", newmod..":stair_" ..newnode.."_inner")
ra(originmod.. ":slab_" ..originnode.."_1", newmod..":slab_" ..newnode.."_1")
ra(originmod.. ":slab_" ..originnode.."_2", newmod..":slab_" ..newnode.."_2")
ra(originmod.. ":slab_" ..originnode.."_quarter", newmod..":slab_" ..newnode.."_quarter")
ra(originmod.. ":slab_" ..originnode, newmod..":slab_" ..newnode)
ra(originmod.. ":slab_" ..originnode.."_three_quarter", newmod..":slab_" ..newnode.."_three_quarter")
ra(originmod.. ":slab_" ..originnode.."_14", newmod..":slab_" ..newnode.."_14")
ra(originmod.. ":slab_" ..originnode.."_15", newmod..":slab_" ..newnode.."_15")
ra(originmod.. ":stair_" ..originnode.."_half", newmod..":stair_" ..newnode.."_half")
ra(originmod.. ":stair_" ..originnode.."_right_half", newmod..":stair_" ..newnode.."_right_half")
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
-- darkage:desert_stone_cobble + stairs/slabs/microblocks -> default:desert_cobble + stairs/slabs/microblocks
minetest.register_alias("darkage:desert_stone_cobble","default:desert_cobble")
minetest.register_alias("darkage:stair_desert_stone_cobble_wall_half","default:stair_desert_cobble_wall_half")
minetest.register_alias("darkage:slab_desert_stone_cobble_inverted","default:slab_desert_cobble_inverted")
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")
minetest.register_alias("darkage:slab_desert_stone_cobble_three_quarter_wall","default:slab_desert_cobble_three_quarter_wall")
minetest.register_alias("darkage:slab_desert_stone_cobble_quarter","default:slab_desert_cobble_quarter")
minetest.register_alias("darkage:slab_desert_stone_cobble","default:slab_desert_cobble")
minetest.register_alias("darkage:slab_desert_stone_cobble_quarter_inverted","default:slab_desert_cobble_quarter_inverted")
minetest.register_alias("darkage:stair_desert_stone_cobble_wall","default:stair_desert_cobble_wall")
minetest.register_alias("darkage:stair_desert_stone_cobble_outer_inverted","default:stair_desert_cobble_outer_inverted")
minetest.register_alias("darkage:stair_desert_stone_cobble_half","default:stair_desert_cobble_half")
minetest.register_alias("darkage:stair_desert_stone_cobble_wall_half_inverted","default:stair_desert_cobble_wall_half_inverted")
minetest.register_alias("darkage:micro_desert_stone_cobble_bottom","default:micro_desert_cobble_bottom")
minetest.register_alias("darkage:panel_desert_stone_cobble_bottom","default:panel_desert_cobble_bottom")
minetest.register_alias("darkage:stair_desert_stone_cobble_half_inverted","default:stair_desert_cobble_half_inverted")
minetest.register_alias("darkage:micro_desert_stone_cobble_top","default:micro_desert_cobble_top")
minetest.register_alias("darkage:slab_desert_stone_cobble_quarter_wall","default:slab_desert_cobble_quarter_wall")
minetest.register_alias("darkage:stair_desert_stone_cobble_right_half","default:stair_desert_cobble_right_half")
minetest.register_alias("darkage:stair_desert_stone_cobble_right_half_inverted","default:stair_desert_cobble_right_half_inverted")
minetest.register_alias("darkage:slab_desert_stone_cobble_three_quarter","default:slab_desert_cobble_three_quarter")
minetest.register_alias("darkage:panel_desert_stone_cobble_top","default:panel_desert_cobble_top")
minetest.register_alias("darkage:stair_desert_stone_cobble_inner","default:stair_desert_cobble_inner")
minetest.register_alias("darkage:stair_desert_stone_cobble","default:stair_desert_cobble")
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")
-- 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")
-- darkage:sandstone_cobble + stairs/slabs/microblocks -> default:sandstonebrick + stairs/slabs/microblocks
minetest.register_alias("darkage:sandstone_cobble","default:sandstonebrick")
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")
-- Slate Tile
minetest.register_alias( "darkage:slate_tale", "darkage:slate_tile")
register_moreblocks_alias("darkage:slate_tale", "darkage:slate_tile")
-- darkage:slate_tale + stairs/slabs/microblocks -> darkage:slate_tile + stairs/slabs/microblocks
minetest.register_alias("darkage:slate_tile","darkage:slate_tale")
minetest.register_alias("darkage:slab_slate_tile_inverted","darkage:slab_slate_tale_inverted")
minetest.register_alias("darkage:slab_slate_tile_wall","darkage:slab_slate_tale_wall")
minetest.register_alias("darkage:slab_slate_tile_quarter","darkage:slab_slate_tale_quarter")
minetest.register_alias("darkage:slab_slate_tile_quarter_inverted","darkage:slab_slate_tale_quarter_inverted")
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")
-- 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")
-- darkage:desert_stone_with_iron -> default:desert_stone
minetest.register_alias("darkage:desert_stone_with_iron","default:desert_stone")

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
farming
moreblocks?
farming?
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 "")..
(default.gui_slots or "")
--
-- Config
--
local MODPATH = minetest.get_modpath("darkage")..DIR_DELIM
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"},
}
})
minetest.log ("Darkage [darkage] has loaded!")

434
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 c_air = minetest.CONTENT_AIR
local c_ignore = minetest.CONTENT_IGNORE
local getID = minetest.get_content_id
local c_stone = minetest.get_content_id("default:stone")
local c_water = minetest.get_content_id("default:water_source")
local c_sand = minetest.get_content_id("default:sand")
local c_dirt = minetest.get_content_id("default:dirt")
local c_lawn = minetest.get_content_id("default:dirt_with_grass")
local stone_and_air_assoc = {[c_stone]=true,[c_air]=true} --associative array
--Makes a stratus of rocks
--name of the rock to generate
--c_wherein id of node to replace, for example minetest.get_content_id("default:stone")
--ca_ceilin associative array
--minp, maxp the corners of the map to be generated
--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
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_ore = getID(name)
local c_wherein = {}
local c_ceilin = {}
for k, v in ipairs(wherein) do
c_wherein[k] = getID(v)
end
for k, v in ipairs(ceilin) do
c_ceilin[k] = getID(v)
end
local c_ceil
if ceil then
c_ceil = getID(ceil)
end
if maxp.y < height_min or minp.y > height_max then
return
end
local c_node = minetest.get_content_id(name)
-- it will be only generate a stratus for every 100 m of area
local stratus_per_volume=1
local area_size = 45
local y_min = math.max(minp.y, y_min)
local y_max = math.min(maxp.y, y_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 stratus_per_volume = 1
local area = 45
local y_min = math.max(minp.y, height_min)
local y_max = math.min(maxp.y, height_max)
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 blocks = math.floor(stratus_per_volume*volume)
minetest.log("info", " <<"..name..">>");
print(" <<"..dump(name)..">>");
if blocks == 0 then
blocks = 1
end
minetest.log("info", string.format(" blocks: %d in vol: %d (%d,%d,%d)",
blocks, volume, maxp.x-minp.x+1, y_max-y_min+1, maxp.z-minp.z+1))
for i = 1,blocks do
if pr:next(1,stratus_chance) == 1 then
-- TODO deep
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)..")")
for i=1,blocks do
local x = pr:next(1,stratus_chance)
if x == 1 then
local y0=y_max-radius_y+1
if y0 < y_min then
y0=y_min
@ -64,53 +66,91 @@ local function generate_stratus(data, area, name, c_wherein, ca_ceilin, minp, ma
else
z0 = pr:next(minp.z, z0)
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
if ca_ceilin[n] then
-- search for the node to replace
--print(" Searching nodes to replace from "..dump(y0-1).." to "..dump(y_min))
local vi = area:index(x0, y0-1, z0)
for y1 = y0-1,y_min,-1 do
if data[vi] == c_wherein then
y0 = math.max(y1-deep, y_min)
x = 0
for k, v in ipairs(c_ceilin) do
if n == v then
x = 1
break
end
end
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
end
vi = vi - area.ystride
end
local rx=pr:next(radius/2,radius)+1
local rz=pr:next(radius/2,radius)+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
local vi = vi + x1
rz = math.max(rz + 3 - pr:next(1,6), 1)
rz = rz + 3 - pr:next(1,6)
if rz < 1 then
rz = 1
end
for z1=pr:next(1,3),rz do
local vi = vi + z1 * area.zstride
for y1 = pr:next(1,3), ry + pr:next(1,3) do
local vi = vi + y1 * area.ystride
if data[vi] == c_wherein then
data[vi] = c_node
i = i + 1
local ry0=ry+ pr:next(1,3)
for y1=pr:next(1,3),ry0 do
local x2 = x0+x1
local y2 = y0+y1
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
end
end
end
end
end
end
print(" generated "..dump(i).." blocks in ("..dump(x0)..","..dump(y0)..","..dump(z0)..")")
end
minetest.log("info", " generated "..i.." blocks in ("..x0..","..y0..","..z0..")")
end
end
--print("generate_ore done")
end
local function generate_claylike(data, varea, name, minp, maxp, seed, chance, minh, maxh, needs_dirt)
if maxp.y >= maxh+1 and minp.y <= minh-1 then
local c_ore = minetest.get_content_id(name)
local pr = PseudoRandom(seed)
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")
local divlen = 4
local divs = (maxp.x-minp.x)/divlen+1;
if maxp.y >= maxh+1 and minp.y <= minh-1 then
local pr = PseudoRandom(seed)
local divlen = 4
local divs = (maxp.x-minp.x)/divlen+1;
for yy=minh,maxh do
local x = pr:next(1,chance)
if x == 1 then
@ -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 up = data[varea:index(cx,yy,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
if data[varea:index(cx-divlen*2,yy,cz)] == c_water then
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
num_water_around = num_water_around + 1
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 z1=-divlen,divlen do
local i = varea:index(cx+x1,yy-1,cz+z1)
local down = data[i]
if down == c_sand or (needs_dirt and (down == c_dirt or down == c_lawn)) then
data[i] = c_ore
local p={x=cx+x1,y=yy-1,z=cz+z1}
down = data[varea:indexp(p)]
if down == c_sand or (dirt == 1 and (down == c_dirt or down == c_lawn)) then
data[varea:indexp(p)] = c_ore
end
end
end
@ -153,153 +197,105 @@ local function generate_claylike(data, varea, name, minp, maxp, seed, chance, mi
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.
minetest.register_ore({
ore_type = "scatter",
ore = "darkage:desert_stone_with_iron",
wherein = "default:desert_stone",
clust_scarcity = 12 * 12 * 12,
clust_num_ores = 3,
clust_size = 2,
y_min = -1,
y_max = 200,
})
-- Generate chalk inside mountains
minetest.register_ore({
ore_type = "sheet",
ore = "darkage:chalk",
wherein = {"default:stone"},
column_height_max = 30,
column_height_min = 20,
y_min = -20,
y_max = 50,
noise_threshold = 0.45,
noise_params = {
offset = 0.35,
scale = 0.2,
spread = {x = 30, y = 30, z = 30},
octaves = 1,
persistence = 0.6
},
})
minetest.register_ore({
ore_type = "sheet",
ore = "darkage:tuff",
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)
local t1 = os.clock()
local vm, emin, emax = minetest.get_mapgen_object("voxelmanip")
local area = VoxelArea:new({MinEdge = emin, MaxEdge = emax})
local data = vm:get_data(dbuf)
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:write_to_map()
minetest.log("info", string.format("[darkage] Generated Strati after %.2fs.", os.clock() - t1))
if maxp.y < height_min or minp.y > height_max then
return
end
local y_min = math.max(minp.y, height_min)
local y_max = math.min(maxp.y, height_max)
local volume = (maxp.x-minp.x+1)*(y_max-y_min+1)*(maxp.z-minp.z+1)
local pr = PseudoRandom(seed)
local num_chunks = math.floor(chunks_per_volume * volume)
local inverse_chance = math.floor(chunk_size*chunk_size*chunk_size / ore_per_chunk)
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
local x0 = pr:next(minp.x, maxp.x-chunk_size+1)
local z0 = pr:next(minp.z, maxp.z-chunk_size+1)
local p0 = {x=x0, y=y0, z=z0}
for x1=0,chunk_size-1 do
for y1=0,chunk_size-1 do
for z1=0,chunk_size-1 do
if pr:next(1,inverse_chance) == 1 then
local x2 = x0+x1
local y2 = y0+y1
local z2 = z0+z1
local p2 = {x=x2, y=y2, z=z2}
local indexp2 = varea:indexp(p2)
if data[indexp2] == c_wherein then
data[indexp2] = c_ore
end
end
end
end
end
end
end
end
minetest.register_on_generated(generate_strati)
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()
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 area = VoxelArea:new({MinEdge = emin, MaxEdge = emax})
local data = vm:get_data()
darkage_mapgen(data, area, minp, maxp, seed)
vm:set_data(data)
vm:write_to_map()
print("DARKAGE: total time taken : " .. os.clock() - t0)
end)
end
end)

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

741
nodes.lua Normal file → Executable file
View File

@ -1,240 +1,18 @@
local function get_node_drops(fullRockNode, cobbleRockNode)
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
]]
-- Naturally spawning blocks
minetest.register_node("darkage:chalk", {
description = "Chalk",
tiles = {"darkage_chalk.png"},
is_ground_content = true,
drop = 'darkage:chalk_powder 2',
groups = {crumbly=2, cracky=2, not_cuttable=1},
drop = "darkage:chalk_powder 4",
groups = {crumbly=2,cracky=2},
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", {
description = "Marble",
tiles = {"darkage_marble.png"},
is_ground_content = true,
groups = {cracky = 3, stone = 1},
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},
groups = {cracky=3},
sounds = default.node_sound_stone_defaults()
})
@ -246,6 +24,25 @@ minetest.register_node("darkage:serpentine", {
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", {
description = "Shale",
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()
})
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", {
description = "Silt",
tiles = {"darkage_silt.png"},
is_ground_content = true,
groups = {crumbly=3},
drop = 'darkage:silt_lump 4',
drop = "darkage:silt_lump 4",
sounds = default.node_sound_dirt_defaults({
footstep = "",
}),
})
--[[
Slate
]]
minetest.register_node("darkage:slate", {
description = "Slate",
tiles = {"darkage_slate.png","darkage_slate.png","darkage_slate_side.png"},
is_ground_content = true,
drop = 'darkage:slate_rubble',
drop = "darkage:slate_cobble",
groups = {cracky=2},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:slate_rubble", {
description = "Slate Rubble",
tiles = {"darkage_slate_rubble.png"},
is_ground_content = false,
minetest.register_node("darkage:ors", {
description = "Old Red Sandstone",
tiles = {"darkage_ors.png"},
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},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:slate_tile", {
description = "Slate Tile",
tiles = {"darkage_slate_tile.png"},
is_ground_content = false,
groups = {cracky=2},
minetest.register_node("darkage:ors_cobble", {
description = "Old Red Sandstone Cobble",
tiles = {"darkage_ors_cobble.png"},
groups = {crumbly=2,cracky=2},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:slate_block", {
description = "Slate Block",
tiles = {"darkage_slate_block.png"},
is_ground_content = false,
groups = {cracky=2},
minetest.register_node("darkage:gneiss_cobble", {
description = "Gneiss Cobble",
tiles = {"darkage_gneiss_cobble.png"},
groups = {cracky=3},
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", {
description = "Slate Brick",
tiles = {"darkage_slate_brick.png"},
is_ground_content = false,
groups = {cracky=2},
sounds = default.node_sound_stone_defaults()
})
-- Removed straw, because its in minetst game. Registering alias for compatibility reasons
minetest.register_alias("darkage:straw", "farming:straw")
minetest.register_node("darkage:ors_brick", {
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", {
description = "Stone Brick",
tiles = {"darkage_stone_brick.png"},
is_ground_content = false,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:straw_bale", {
description = "Straw Bale",
tiles = {"darkage_straw_bale.png"},
is_ground_content = false,
drop = 'farming:straw 4',
groups = {snappy=2, flammable=2},
sounds = default.node_sound_leaves_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(),
})
--[[
Tuff
]]
minetest.register_node("darkage:tuff", {
description = "Tuff",
tiles = {"darkage_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:tuff'},
rarity = 3,
},
{
-- player will get rubble with 2/3 chance
items = {'darkage:tuff_rubble'},
}
minetest.register_node("darkage:straw_bale", {
description = "Straw Bale",
tiles = {"darkage_straw_bale.png"},
drop = "darkage:straw 4",
groups = {snappy=3, flammable=2},
sounds = default.node_sound_leaves_defaults(),
})
else
minetest.register_node("darkage:straw_bale", {
description = "Straw Bale",
tiles = {"darkage_straw_bale.png"},
drop = "farming:straw 4",
groups = {snappy=3, flammable=2},
sounds = default.node_sound_leaves_defaults(),
})
end
}
},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:tuff_bricks", {
description = "Tuff Bricks",
tiles = {"darkage_tuff_bricks.png"},
is_ground_content = false,
minetest.register_node("darkage:slate_tile", {
description = "Slate Tile",
tiles = {"darkage_slate_tile.png"},
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
})
minetest.register_node("darkage:tuff_rubble", {
description = "Tuff Rubble",
tiles = {"darkage_tuff_rubble.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,
minetest.register_node("darkage:marble_tile", {
description = "Marble Tile",
tiles = {"darkage_marble_tile.png"},
groups = {cracky=2},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:old_tuff_bricks", {
description = "Old Tuff Bricks",
tiles = {"darkage_old_tuff_bricks.png"},
is_ground_content = false,
minetest.register_node("darkage:reinforced_chalk", {
description = "Reinforced Chalk",
tiles = {"darkage_chalk.png^darkage_reinforce.png"},
groups = {cracky=3},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:rhyolitic_tuff_rubble", {
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:adobe", {
description = "Adobe",
tiles = {"darkage_adobe.png"},
groups = {crumbly=3},
sounds = default.node_sound_sand_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(),
})
--[[
add a node using the cobble texture that was introduced in minetest 0.4.dev-20120408 and got removed in 0.4.7
It has a nice contrast together the stone bricks, so I think it could get usefull.
]]
minetest.register_node("darkage:chalked_bricks", {
description = "Chalked Brick",
tiles = {"darkage_chalked_bricks.png"},
is_ground_content = false,
groups = {cracky = 2, stone = 1},
minetest.register_node("darkage:cobble_with_plaster", {
description = "Cobblestone With Plaster",
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"},
paramtype2 = "facedir",
drop = "default:cobble",
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craft({
output = "darkage:chalked_bricks 4",
recipe = {
{"default:stone", "default:stone", "darkage:chalk_powder"},
{"darkage:chalk_powder", "darkage:chalk_powder", "darkage:chalk_powder"},
{"default:stone", "darkage:chalk_powder", "default:stone"},
}
minetest.register_node("darkage:darkdirt", {
description = "Dark Dirt",
tiles = {"darkage_darkdirt.png"},
groups = {crumbly=2},
sounds = default.node_sound_dirt_defaults(),
})
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)
darkage.register_stairs("darkage:basalt")
darkage.register_stairs("darkage:basalt_brick")
darkage.register_stairs("darkage:basalt_rubble")
darkage.register_stairs("darkage:chalked_bricks")
darkage.register_stairs("darkage:gneiss")
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", "basalt", "darkage:basalt", {
description = "Basalt",
tiles = {"darkage_basalt.png"},
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
sunlight_propagates = true,
})
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