1
0
mirror of https://github.com/adrido/darkage.git synced 2025-06-28 14:36:22 +02:00

69 Commits
v1.3 ... v1.4

Author SHA1 Message Date
71f3ccfb14 Update readme 2022-06-24 12:08:28 +02:00
8137445dea add new basalt textures (#12) 2022-06-24 11:36:53 +02:00
3c802b6bff Merge branch 'master' of https://github.com/adrido/darkage 2022-06-11 14:25:10 +02:00
f30bdf99f2 Add mod.conf 2022-06-11 14:24:55 +02:00
92730881b4 Fix various texture issues (#11) 2022-06-11 14:17:37 +02:00
7d76f3864e Fix some obvious tilling issues (#10) 2022-05-28 07:36:05 +02:00
61c4c648fd Fix missing end 2021-11-20 14:57:34 +01:00
7ebedc68bb Merge branch 'master' of https://bitbucket.org/adrido/darkage 2021-11-20 09:48:35 +01:00
536d635e25 Generation of Tuff in dirt 2021-11-20 09:34:38 +01:00
e5e49ed965 Remove warnings from deprecated definitions and functions (#6)
Co-authored-by: sys4 <bricassa@sys4.fr>
2021-03-10 13:28:21 +01:00
befafde095 Fix the dye recipes for square glass. (#5) 2020-04-21 07:34:01 +02:00
fb5213f5b1 Use extended palette 2020-01-03 16:40:45 +01:00
8e7aea0317 Fixed colorizing, added glow variants (#3) 2019-07-21 08:57:44 +02:00
19f2fa7435 Add alias for old darkage straw stairs 2018-06-16 11:35:20 +02:00
686d5316af Remove desert_stone reziep 2017-12-17 14:20:37 +01:00
b7cef82da8 Fix moreblocks drop problems 2017-08-10 05:22:33 +00:00
6e5953de5a Change desert stone recipe to avoid conflict with current minetest_game 2017-04-11 16:30:49 +00:00
bef0f2bf88 Correction for mapgen memory optimization 2017-04-02 18:41:09 +02:00
dec9355307 Higher Tuff Brick Recipe Output
To be consistent with minetest_game.
2017-03-02 13:05:17 +01:00
15eafe7030 Mapgen improvement 2017-03-02 10:08:14 +01:00
754e7a16da Mapgen improvement (Thanks to HybridDog) 2017-03-02 06:58:30 +01:00
19bb32d0fe Improve "shadows" on the chalked_brick texture 2017-03-01 09:22:34 +01:00
abb5239726 Reduce stone_brick recipe output.
Otherwise, you would get 9 stone_brick out of (originally) 1 stone.
2017-02-25 20:38:32 +00:00
66639b1d28 Change drawtype of wooden frame to glasslike_framed 2017-02-23 12:38:35 +01:00
1a596ef342 Added missing alias 2017-02-23 12:38:03 +01:00
0307430163 Merged master into github/master 2017-02-22 11:17:13 +01:00
13b743622b Fix wooden frame not breakable by hand 2017-02-22 11:16:56 +01:00
9750ee5f29 Added colored glass ( If unifieddyes installed)
If you have unified dyes installed and have a recent version of Minetest the glasses can colored by punching with dye.
2017-02-22 09:04:52 +01:00
cd4a46d666 Merged master into github/master 2017-01-24 14:51:26 +01:00
9c85fc158f Add stais bricks 2017-01-24 14:50:57 +01:00
c588873976 Added Block and Ruble variant to Ors, Slate, Gneiss and Basalt 2017-01-22 12:03:33 +01:00
8d678c2be2 Chalk wasn't designed to be craftable 2017-01-22 11:02:10 +01:00
132c7e80d4 Add better xdecor support 2017-01-14 07:51:10 +01:00
842968d9eb Fix undeclared global variable 2017-01-12 15:54:45 +01:00
54ce0c9276 Fix PNG warning: iCCP: known incorrect sRGB profile 2017-01-12 15:19:23 +01:00
5e5d5010f8 Resolved craft reciep conflict with stone bricks
Stone bricks are now crafted out of one Stone Block
2017-01-12 15:13:55 +01:00
57856634f1 Minor mapgen improofement 2017-01-04 10:42:54 +01:00
9dd709485b Finished renaming of ors_cobble->ors_brick 2016-10-19 14:30:32 +02:00
76684bb865 Merged in tchncs/darkage (pull request #1)
ors_brick: add aliases for the stairs mod
2016-10-16 00:20:07 +00:00
835ec72219 ors_brick: add aliases for the stairs mod 2016-10-16 00:18:32 +02:00
3a2e2f0112 Introduced Chalked Bricks
Chalked Bricks using the cobble texture of the old minetest_game that where removed in 0.4.7. Its a nice looking stonebrick alternative good to bring a bit more colors in stonebrick houses.

Texture is made by c55 and licensed under CC BY-SA 3.0
2016-09-11 14:25:16 +02:00
6f985e9fe7 Renamed ors_cobble to ors_brick, registering alias 2016-07-16 15:36:04 +02:00
e4d0438bf4 update Formspec of box and shelf to fit into minetest_game 2016-07-12 16:24:24 +02:00
15ec997551 Tidy up nodes.lua 2016-07-10 11:51:41 +02:00
fb05183e95 Tidy up init.lua 2016-07-10 11:51:40 +02:00
7baa81b17b Simplyfied/fixed furniture.lua 2016-07-10 11:51:40 +02:00
586b05da56 Rewrite building.lua simplified registration of reinforced stuff 2016-07-10 10:41:34 +02:00
b301fed084 Simplyfied generation of alias 2016-07-10 10:40:34 +02:00
dc02970d08 Simplyfied stairs registrations 2016-07-09 10:23:29 +02:00
730f23f88f Added description.txt and screenshot.png 2016-07-08 12:36:19 +02:00
39ed2c3f1f Updated Readme.md 2016-07-08 07:34:16 +02:00
778538daea Introducing Tuff and Rhyolitic Tuff
Tuff and Rhyolitic Tuff are materials used in the Medival to build churches or houses of rich people.
Tuff, Tuff bricks and tuff ruble are now available in Darkage.
2016-07-06 09:25:45 +02:00
735db2250b Shrinked textures using Optipng 2016-07-04 14:06:22 +02:00
08be6581fe Sort textures, tidy up 2016-07-04 14:02:49 +02:00
1f089ce75e Simplyfied registrations of Stairsplus 2016-07-03 14:54:43 +02:00
e7c528e1f2 README.md edited online with Bitbucket 2016-07-01 16:00:16 +00:00
d3a038bae5 Dont register serpentine_stairs twice 2016-07-01 17:31:40 +02:00
03b6237d9f Minor speed improovements 2016-07-01 17:04:50 +02:00
a7040140dc Use lua Voxelmanipulator to generate strati. Thanks to HybridDog. 2016-07-01 15:55:50 +02:00
0f5525177e Use Lua Voxelmanipulator to generate mud and silt.
Thanks to CraigyDavi.
2016-07-01 13:41:40 +02:00
c448c65fdf Use minetest.register_ore to generate desert_stone_with iron
Also converted whitespaces to tab.
2016-07-01 11:38:39 +02:00
14f1d1a8e0 Remove 2nd dofile mapgen.lua call 2016-07-01 11:25:54 +02:00
b6e95769f8 minetest.env: --> minetest. 2016-07-01 11:25:16 +02:00
729494e8af Removed Straw. Aliased darkage:straw to farming:straw. Depends now on farming 2016-06-12 11:20:51 +02:00
fe88e3bb2e Better glass texture. Thanks to @Infinatum 2016-06-12 10:55:22 +02:00
3f773bb856 Removed doubled craft reciep for chalk 2016-06-12 08:27:43 +02:00
ca0d318e44 renamed bars to reinforced_..._bars 2016-06-12 08:03:46 +02:00
f5c95744ae Added some more reinforced bars 2016-06-12 07:52:55 +02:00
f2bccb3d05 Tidy up. Added different wall types. Requires Minetest 0.4.14 2016-06-11 18:11:06 +02:00
188 changed files with 1902 additions and 1624 deletions

373
README.md
View File

@ -1,10 +1,14 @@
#DarkAge MOD for MINETEST
Original mod by Master Gollum
Modified by addi and CraigyDavi
# DarkAge Mod for Minetest
Original mod by Master Gollum
Modified by addi.
Contains code from CragiDavi and HybridDog
## Introduction
##Introduction:
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
pre industrial landscape. Of course, feel free to use them in any other
construction :P
It also provides more layers of stones. I tried not to turn mining in
@ -14,365 +18,53 @@ Modified by addi and CraigyDavi
Silt and Mud are more easy to find than stone layers, but if you find
one it will be a real mine, with all probability with hundreds of blocks.
I used mainly 4 square recipes to avoid collisions with other MODs,
anyway I have not checked all them, so it is possible that another
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.
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
used in the default version. Probably I will change this recipes in
next releases.
## Release Notes
##Release Notes
Version 1.2
### Version 1.4
* corrected Sounds of Stairs
* updated to new Moreblocks api
* added Serpentine Stairs
* New Textures by Skamiz
* serveral mapgen fixes
* Maintenance stuff
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
* fixed init.lua which get broken by upload on github
Version 1.0
* compatibility with stairsplus added
* added new item iron_stick
* added craft reziep for iron stick
* changed reziep of iron_bars to avoid conflicts with iron bars mod
* changed reziep of chain to avoid conflicts with 3d furniture mod
* changed reziep of darkage:stonebrick to avoid conflicts with moreblocks
* disabled marble_tile to avoid the message "texture not found"
* added compatibility with stairsplus (now its moreblocks)
* added darkage:glass a nice looking glass that must be in this mod
* changed the sound_node_leaves_default to wood_default from box and wooden shelves
* added craft reziep for darkage:chalk
* improved the textures of reinforced wood and chalk to save a bit more loadtime on servers
* added another reziep for darkage straw (this can be crafted now, if farming is installed, with farming:harvested_weed
Version 0.3
* 29 Nodes + 3 Craft Items
* Furniture and building decoration
* Stone layers
Version 0.2
* 13 Nodes
* Sedimentary stones
Version 0.1
* 6 Nodes
PS: This document has been structured as the README.txt of PilzAdam in
his Bed MOD.
###How to install:
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
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
<http://wiki.minetest.net/Installing_Mods>
###Tuning:
Comments the following lines to remove what you don't like:
(To comment them just add -- at the beginning of their lines)
## Wiki
Stone Layers
dofile(minetest.get_modpath("darkage").."/mapgen.lua")
The stones will not spawn in the map.
Furniture Nodes
dofile(minetest.get_modpath("darkage").."/furniture.lua")
Only pure stones will be provided.
For Building-blocks and crafting information please take a look to the wiki:
<https://github.com/adrido/darkage/wiki>
## License
##BUILDING NODES
Adobe: Sand and Clay mixture with Straw to build houses or walls
Used from historical times, one of the first bricks
invented. I have to improve this texture, it is ugly :P
CRAFT -> 4
[Sand] [Sand]
[Clay Lump] [Straw]
Basalt: a darken version of the default Stone
COOKING
[Basalt Cobble]
Basalt Cobble: A darken version of the default Cobble
CRAFT -> 4
[Cobble] [Cobble]
[Coal Lump] [Coal Lump]
Chalk: a soft, white and porous sedimentary rock. It becomes
Chalk Powder when dug. Can't be craft, only found as
stratum.
Chalk Powder: pile of chalk from digging Chalk stones. Can
be used to prepare plaster. See Cobblestone with Plaster.
Cobblestone with Plaster: Cobbles where has been applied a
layer of white plaster.
When dug it lost the plaster layer!
CRAFT -> 2
[Cobblestone] [Chalk Powder]
[Cobblestone] [Chalk Powder]
Dark Dirt: A darken version of the Dirt where the grass doesn't
grown, perfect for create a path in a forest. I was using
Gravel, but the noise walking was annoying to me (like
walking over iron coal with the nude feet :P), for this I
created this node.
CRAFT -> 4
[Dirt] [Dirt]
[Gravel] [Gravel]
Desert Stone Cobble: To add more uses to the Desert Stones.
I supposed they are harder than regular Stones so it
cracks at 50% and releases the Cobbles or just regular
Desert Stones.
From dig Desert Stone
Desert Iron Ore: I know that others MODs add ores to the
Desert Stones, mine also does it, but just Iron, I supposed
the red color is because of the iron, so it goes with more
high probability than regular Stones and it doesn't add
Coal to them. It will not be a lot so you can keep it with
another MOD that does the same or just comment the lines that
does it.
Dry Leaves: Just a cube of Leaves toasted :P Well I found the
Leaves are not useful so I thought to turn them into Straw, ok
it is not the same, but well, why not? Just dry them in a
Furnace and then put together to create the Straw
COOKING
[Leaves]
Gneiss: high grade metamorphic rock formed from Schist, very
common, and used in construction. It sometimes brakes in
Gneiss Cobble when being dug.
COOKING
[Schist]
Gneiss Cobble: brick version of the gneiss.
From dig gneiss
Mud: mixture of water and some combination of soil, silt, and
clay. Used for build houses, specially in desert regions.
It brakes in 4 Mud Lumps when dug.
CRAFT -> 3
[Dirt] [Dirt]
[Clay Lump] [Silt Lump]
CRAFT -> 1
[Mud Lump] [Mud Lump]
[Mud Lump] [Mud Lump]
Old Red Sandstone: a light red sandstone, in fact it's
sandstone with iron that gives it this color.
CRAFT -> 4
[Sandstone] [Sandstone]
[Iron Lump] [Sandstone]
COOKING
[Old Red Sandstone Cobble]
Old Red Sandstone Cobble: Cobbles of Old Red Sandstone.
CRAFT -> 4
[Sandstone Cobble] [Sandstone Cobble]
[Iron Lump] [Sandstone Cobble]
COOKING
[Desert Stone] --> I think I will change it in the future
release with its own Cobbles.
Reinforced Cobble: brick with crossed wooden.
CRAFT -> 1
[Stick] [] [Stick]
[] [Cobble] []
[Stick] [] [Stick]
Sandstone Cobble: brick version of the Sandstone, good for
buildings with a pale color.
COOKING
[Sandstone]
Schist: medium grade metamorphic rock from Slate.
COOKING
[Slate]
Silt: granular material of a size somewhere between sand and clay.
It brakes in 4 Silt Lumps.
CRAFT -> 1
[Silt Lump] [Silt Lump]
[Silt Lump] [Silt Lump]
Slate: fine-grained, foliated, homogeneous metamorphic rock
derived from an original shale-type sedimentary rock through
low-grade regional metamorphism. It is used to build roof.
COOKING
[Shale]
COOKING
[Slate Cobble]
Slate Cobble: Cobble obtained from Slate
From dig Slate
Slate Tile: Nice blue slate tiles for roofs. They has been used
as building traditional building material in zones where
slate is easy to find.
Note: It has stairs and slabs.
CRAFT -> 2
[Slate Cobble] [Slate Cobble]
[Slate Cobble] [Slate Cobble]
Straw: a cube of yellowish straw, try them in the roofs they will
be very nice. Used also as traditional building material
from ancient times.
CRAFT -> 2
[Shrub] [Shrub]
[Shrub] [Shrub]
CRAFT -> 2
[Dry Leaves] [Dry Leaves]
[Dry Leaves] [Dry Leaves]
Straw Bale: a decoration item, looks great for a farm or a
country side house.
CRAFT -> 1
[Straw] [Straw]
[Straw] [Straw]
Desert Stone: just the default block, it can be obtained now
from Desert Sand. The idea is that Desert Sand is stonier
than regular Sand, so it takes less to create a Desert
Stone than a Sandstone.
CRAFT -> 2
[Sandstone] [Sandstone]
[Sandstone] [Sandstone]
##FURNITURE NODES
Just started so they are few ones
Box: a more smaller container than the Chest, but it requires
less wood. As cheep as 4 woods and have 16 slots. The craft
is a little weird but I think it makes sense and avoids
collision with the recipe of Hardwood of the MOD
building_blocks.
CRAFT -> 2
[Wood] [] [Wood]
[] [] []
[Wood] [] [Wood]
Chain: climbable chain.
CRAFT -> 2
[Steel Ingot]
[Steel Ingot]
[Steel Ingot]
Iron Bars: alternative window for the Glass.
CRAFT -> 3
[Steel Ingot] [] [Steel Ingot]
[Steel Ingot] [] [Steel Ingot]
[Steel Ingot] [] [Steel Ingot]
Iron Grille: alternative window for the Glass.
CRAFT -> 3
[] [Iron Bars] []
[Iron Bars] [] [Iron Bars]
[] [Iron Bars] []
Wood Bars: alternative window for the Glass.
CRAFT -> 3
[Stick] [] [Stick]
[Stick] [] [Stick]
[Stick] [] [Stick]
Wood Frame: alternative window for the Glass.
CRAFT -> 1
[Stick] [Stick] [Stick]
[Stick] [Glass] [Stick]
[Stick] [Stick] [Stick]
Medieval Glass: a good looking glass, with small tiles
CRAFT -> 8
[Glass] [steel_ingot] [Glass]
[steel_ingot] [Glass] [steel_ingot]
[Glass] [steel_ingot] [Glass]
or:
CRAFT -> 1
[Medieval Glow Glass]
Medieval Glow Glass: a good looking glass, with small tiles which are glowing by itself
CRAFT -> 8
[Medieval Glass]
[torch]
##License:
Sourcecode: WTFPL (see below)
Graphics: WTFPL (see below)
#See also:
http://minetest.net/
## See also
<http://minetest.net/>
---
```text
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
@ -385,4 +77,5 @@ http://minetest.net/
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.
0. You just DO WHAT THE FUCK YOU WANT TO.
```

View File

@ -1,99 +1,101 @@
minetest.register_alias("darkage:sandstone_cobble","default:sandstonebrick")
minetest.register_alias("darkage:desert_stone_cobble","default:desert_stonebrick")
--[[
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
minetest.register_alias("darkage:stair_basalt_cobble_wall","darkage:stair_basalt_cobble")
minetest.register_alias("darkage:slab_basalt_cobble_inverted","darkage:slab_basalt_cobble")
minetest.register_alias("darkage:panel_basalt_cobble_top","darkage:panel_basalt_cobble")
minetest.register_alias("darkage:stair_straw_inverted","darkage:stair_straw")
-- 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")
minetest.register_alias("darkage:stair_desert_stone_cobble_wall_half","default:stair_desert_stonebrick_wall_half")
minetest.register_alias("darkage:slab_desert_stone_cobble_inverted","default:slab_desert_stonebrick_inverted")
minetest.register_alias("darkage:stair_desert_stone_cobble_inverted","default:stair_desert_stonebrick_inverted")
minetest.register_alias("darkage:stair_desert_stone_cobble_outer","default:stair_desert_stonebrick_outer")
minetest.register_alias("darkage:slab_desert_stone_cobble_three_quarter_wall","default:slab_desert_stonebrick_three_quarter_wall")
minetest.register_alias("darkage:slab_desert_stone_cobble_quarter","default:slab_desert_stonebrick_quarter")
minetest.register_alias("darkage:slab_desert_stone_cobble","default:slab_desert_stonebrick")
minetest.register_alias("darkage:slab_desert_stone_cobble_quarter_inverted","default:slab_desert_stonebrick_quarter_inverted")
minetest.register_alias("darkage:stair_desert_stone_cobble_wall","default:stair_desert_stonebrick_wall")
minetest.register_alias("darkage:stair_desert_stone_cobble_outer_inverted","default:stair_desert_stonebrick_outer_inverted")
minetest.register_alias("darkage:stair_desert_stone_cobble_half","default:stair_desert_stonebrick_half")
minetest.register_alias("darkage:stair_desert_stone_cobble_wall_half_inverted","default:stair_desert_stonebrick_wall_half_inverted")
minetest.register_alias("darkage:micro_desert_stone_cobble_bottom","default:micro_desert_stonebrick_bottom")
minetest.register_alias("darkage:panel_desert_stone_cobble_bottom","default:panel_desert_stonebrick_bottom")
minetest.register_alias("darkage:stair_desert_stone_cobble_half_inverted","default:stair_desert_stonebrick_half_inverted")
minetest.register_alias("darkage:micro_desert_stone_cobble_top","default:micro_desert_stonebrick_top")
minetest.register_alias("darkage:slab_desert_stone_cobble_quarter_wall","default:slab_desert_stonebrick_quarter_wall")
minetest.register_alias("darkage:stair_desert_stone_cobble_right_half","default:stair_desert_stonebrick_right_half")
minetest.register_alias("darkage:stair_desert_stone_cobble_right_half_inverted","default:stair_desert_stonebrick_right_half_inverted")
minetest.register_alias("darkage:slab_desert_stone_cobble_three_quarter","default:slab_desert_stonebrick_three_quarter")
minetest.register_alias("darkage:panel_desert_stone_cobble_top","default:panel_desert_stonebrick_top")
minetest.register_alias("darkage:stair_desert_stone_cobble_inner","default:stair_desert_stonebrick_inner")
minetest.register_alias("darkage:stair_desert_stone_cobble","default:stair_desert_stonebrick")
minetest.register_alias("darkage:panel_desert_stone_cobble_vertical","default:panel_desert_stonebrick_vertical")
minetest.register_alias("darkage:stair_desert_stone_cobble_inner_inverted","default:stair_desert_stonebrick_inner_inverted")
minetest.register_alias("darkage:slab_desert_stone_cobble_three_quarter_inverted","default:slab_desert_stonebrick_three_quarter_inverted")
-- Slate Tile
minetest.register_alias( "darkage:slate_tale", "darkage:slate_tile")
register_moreblocks_alias("darkage:slate_tale", "darkage:slate_tile")
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")
-- Basalt Brick
minetest.register_alias("darkage:basalt_cobble", "darkage:basalt_brick")
minetest.register_alias("stairs:slab_basalt_cobble", "stairs:slab_basalt_brick")
minetest.register_alias("stairs:stair_basalt_cobble", "stairs:stair_basalt_brick")
register_moreblocks_alias("darkage:basalt_cobble", "darkage:basalt_brick")
minetest.register_alias("darkage:basalt_cobble_wall", "darkage:basalt_rubble_wall")
--Add aliases when slate_tale was renamed to slate_tile
--minetest.register_alias(oldname,newname)
minetest.register_alias("darkage:slate_tale","darkage:slate_tile")
--slab
minetest.register_alias("darkage:slab_slate_tale","darkage:slab_slate_tile")
minetest.register_alias("darkage:slab_slate_tale_inverted","darkage:slab_slate_tile_inverted")
minetest.register_alias("darkage:slab_slate_tale_wall","darkage:slab_slate_tile_wall")
minetest.register_alias("darkage:slab_slate_tale_quarter","darkage:slab_slate_tile_quarter")
minetest.register_alias("darkage:slab_slate_tale_quarter_inverted","darkage:slab_slate_tile_quarter_inverted")
minetest.register_alias("darkage:slab_slate_tale_quarter_wall","darkage:slab_slate_tile_quarter_wall")
minetest.register_alias("darkage:slab_slate_tale_three_quarter","darkage:slab_slate_tile_three_quarter")
minetest.register_alias("darkage:slab_slate_tale_three_quarter_inverted","darkage:slab_slate_tile_three_quarter_inverted")
minetest.register_alias("darkage:slab_slate_tale_three_quarter_wall","darkage:slab_slate_tile_three_quarter_wall")
--stair
minetest.register_alias("darkage:stair_slate_tale","darkage:stair_slate_tile")
minetest.register_alias("darkage:stair_slate_tale_inverted","darkage:stair_slate_tile_inverted")
minetest.register_alias("darkage:stair_slate_tale_wall","darkage:stair_slate_tile_wall")
minetest.register_alias("darkage:stair_slate_tale_wall_half","darkage:stair_slate_tile_wall_half")
minetest.register_alias("darkage:stair_slate_tale_wall_half_inverted","darkage:stair_slate_tile_wall_half_inverted")
minetest.register_alias("darkage:stair_slate_tale_half","darkage:stair_slate_tile_half")
minetest.register_alias("darkage:stair_slate_tale_half_inverted","darkage:stair_slate_tile_half_inverted")
minetest.register_alias("darkage:stair_slate_tale_right_half","darkage:stair_slate_tile_right_half")
minetest.register_alias("darkage:stair_slate_tale_right_half_inverted","darkage:stair_slate_tile_right_half_inverted")
minetest.register_alias("darkage:stair_slate_tale_wall_half","darkage:stair_slate_tile_wall_half")
minetest.register_alias("darkage:stair_slate_tale_wall_half_inverted","darkage:stair_slate_tile_wall_half_inverted")
minetest.register_alias("darkage:stair_slate_tale_inner","darkage:stair_slate_tile_inner")
minetest.register_alias("darkage:stair_slate_tale_inner_inverted","darkage:stair_slate_tile_inner_inverted")
minetest.register_alias("darkage:stair_slate_tale_outer","darkage:stair_slate_tile_outer")
minetest.register_alias("darkage:stair_slate_tale_outer_inverted","darkage:stair_slate_tile_outer_inverted")
--panel
minetest.register_alias("darkage:panel_slate_tale","darkage:panel_slate_tile")
minetest.register_alias("darkage:panel_slate_tale_bottom","darkage:panel_slate_tile_bottom")
minetest.register_alias("darkage:panel_slate_tale_top","darkage:panel_slate_tile_top")
minetest.register_alias("darkage:panel_slate_tale_vertical","darkage:panel_slate_tile_vertical")
minetest.register_alias("darkage:micro_slate_tale_bottom","darkage:micro_slate_tile_bottom")
minetest.register_alias("darkage:micro_slate_tale_top","darkage:micro_slate_tile_top")
-- Slate Brick
minetest.register_alias("darkage:slate_cobble", "darkage:slate_brick")
minetest.register_alias("stairs:slab_slate_cobble", "stairs:slab_slate_brick")
minetest.register_alias("stairs:stair_slate_cobble", "stairs:stair_slate_brick")
register_moreblocks_alias("darkage:slate_cobble", "darkage:slate_brick")
minetest.register_alias("darkage:slate_cobble_wall", "darkage:slate_rubble_wall")
-- Gneiss Brick
minetest.register_alias("darkage:gneiss_cobble", "darkage:gneiss_brick")
minetest.register_alias("stairs:slab_gneiss_cobble", "stairs:slab_gneiss_brick")
minetest.register_alias("stairs:stair_gneiss_cobble", "stairs:stair_gneiss_brick")
register_moreblocks_alias("darkage:gneis_cobble", "darkage:gneiss_brick")
minetest.register_alias("darkage:gneiss_cobble_wall", "darkage:gneiss_rubble_wall")
-- Straw
register_moreblocks_alias("darkage:straw", "moreblocks:straw")

View File

@ -1,175 +1,171 @@
minetest.register_node("darkage:glass", {
description = "Medieval Glass",
drawtype = "glasslike",
tiles = {"darkage_glass.png"},
inventory_image = minetest.inventorycube("darkage_glass.png"),
paramtype = "light",
sunlight_propagates = true,
is_ground_content = true,
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_glass_defaults(),
})
--[[
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()
minetest.register_node("darkage:glow_glass", {
description = "Medieval Glow Glass",
drawtype = "glasslike",
tiles = {"darkage_glass.png"},
inventory_image = minetest.inventorycube("darkage_glass.png"),
paramtype = "light",
light_source = 18,
sunlight_propagates = true,
is_ground_content = true,
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_glass_defaults(),
})
The Nodes are caled
<modname>:reinforced_<name>
<modname>:reinforced_<name>_slope
<modname>:reinforced_<name>_arrow
<modname>:reinforced_<name>_bars
minetest.register_craft({
output = 'darkage:glow_glass 1',
recipe = {
{'darkage:glass', '', ''},
{'default:torch', '', ''},
{'', '', ''},
}
})
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")
minetest.register_craft({
output = 'darkage:glass 1',
recipe = {
{'darkage:glow_glass'},
}
})
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
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'},
}
})
-- 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("darkage:reinforced_chalk", {
description = "Reinforced Chalk",
tiles = {"darkage_chalk.png^darkage_reinforce.png"},
is_ground_content = true,
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()
})
minetest.register_node("darkage:reinforced_wood", {
description = "Reinforced Wood",
tiles = {"default_wood.png^darkage_reinforce.png"},
is_ground_content = true,
groups = {snappy=2,choppy=3,oddly_breakable_by_hand=3,flammable=3},
darkage.register_reinforce("Wood", "default:wood", {
tiles = {"default_wood.png"},
groups = {snappy=2, choppy=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"},
is_ground_content = true,
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"},
is_ground_content = true,
groups = {snappy=2,choppy=3,oddly_breakable_by_hand=3,flammable=3},
sounds = default.node_sound_wood_defaults()
})
minetest.register_craft({
output = 'darkage:reinforced_chalk',
recipe = {
{'default:stick','','default:stick'},
{'','darkage:chalk',''},
{'default:stick','','default:stick'},
}
})
minetest.register_craft({
output = 'darkage:chalk',
recipe = {
{'darkage:chalk_powder','darkage:chalk_powder',''},
{'darkage:chalk_powder','darkage:chalk_powder',''},
{'','',''},
}
})
minetest.register_craft({
output = 'darkage:reinforced_wood',
recipe = {
{'default:stick','','default:stick'},
{'','default:wood',''},
{'default:stick','','default:stick'},
}
})
minetest.register_craft({
output = 'default:wood',
recipe = {
{'darkage:reinforced_wood'},
}
})
minetest.register_craft({
output = 'darkage:reinforced_wood_left',
recipe = {
{'default:stick','',''},
{'','default:wood',''},
{'','','default:stick'},
}
})
minetest.register_craft({
output = 'default:wood',
recipe = {
{'darkage:reinforced_wood_left'},
}
})
minetest.register_craft({
output = 'darkage:reinforced_wood_right',
recipe = {
{'','','default:stick'},
{'','default:wood',''},
{'default:stick','',''},
}
})
minetest.register_craft({
output = 'default:wood',
recipe = {
{'darkage:reinforced_wood_right'},
}
})
minetest.register_craft({
output = 'darkage:glow_glass 1',
recipe = {
{'darkage:glass', '', ''},
{'default:torch', '', ''},
{'', '', ''},
}
})
minetest.register_craft({
output = 'darkage:glass 1',
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'},
}
darkage.register_reinforce("Chalked Bricks", "darkage:chalked_bricks", {
tiles = {"darkage_chalked_bricks.png"},
groups = {cracky = 2, stone = 1},
sounds = default.node_sound_stone_defaults()
})

View File

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

2
description.txt Normal file
View File

@ -0,0 +1,2 @@
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

@ -6,7 +6,7 @@ minetest.register_node("darkage:chain", {
wield_image = "darkage_chain.png",
paramtype = "light",
paramtype2 = "wallmounted",
is_ground_content = true,
is_ground_content = false,
walkable = false,
climbable = true,
selection_box = {
@ -15,31 +15,34 @@ minetest.register_node("darkage:chain", {
--wall_bottom = = <default>
--wall_side = = <default>
},
groups = {snappy=1,cracky=2,oddly_breakable_by_hand=2},
groups = {snappy=1, cracky=2, oddly_breakable_by_hand=2, not_cuttable=1},
legacy_wallmounted = true
})
minetest.register_node('darkage:box', {
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'},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
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.env: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;]")
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.env:get_meta(pos);
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory()
return inv:is_empty("main")
end,
@ -47,52 +50,57 @@ minetest.register_node('darkage:box', {
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)
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)
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', {
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'},
sunlight_propagates = false,
paramtype = "light",
tiles = { "darkage_shelves.png","darkage_shelves.png","darkage_shelves.png",
"darkage_shelves.png","darkage_shelves.png","darkage_shelves_front.png"},
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
groups = { snappy = 3, not_cuttable=1 },
sounds = default.node_sound_wood_defaults(),
on_construct = function(pos)
local meta = minetest.env: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;]")
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.env:get_meta(pos);
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")
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)
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)
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,
@ -101,85 +109,83 @@ minetest.register_node('darkage:wood_shelves', {
--minetest.register_node("darkage:rosace", {
-- description = "Rose Window",
-- tiles = {"darkage_rosace.png"},
-- is_ground_content = true,
-- is_ground_content = false,
-- groups = {cracky=3},
-- sounds = default.node_sound_stone_defaults()
--})
minetest.register_node("darkage:iron_bars", {
description = "Iron Bars",
drawtype = "glasslike",
drawtype = "glasslike",
tiles = {"darkage_iron_bars.png"},
inventory_image = "darkage_iron_bars.png",
inventory_image = "darkage_iron_bars.png",
wield_image = "darkage_iron_bars.png",
is_ground_content = true,
is_ground_content = false,
paramtype = "light",
sunlight_propagates = true,
groups = {cracky=3},
groups = {cracky=3 , not_cuttable=1},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:lamp", {
description = "Lamp",
tiles = {
"darkage_lamp.png"
},
tiles = { "darkage_lamp.png" },
paramtype = "light",
sunlight_propagates = true,
light_source = LIGHT_MAX-1,
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3,flammable=1},
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",
drawtype = "glasslike",
tiles = {"darkage_iron_grille.png"},
inventory_image = "darkage_iron_grille.png",
inventory_image = "darkage_iron_grille.png",
wield_image = "darkage_iron_grille.png",
is_ground_content = true,
is_ground_content = false,
paramtype = "light",
sunlight_propagates = true,
groups = {cracky=3},
groups = {cracky=3 , not_cuttable=1},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:wood_bars", {
description = "Wooden Bars",
drawtype = "glasslike",
drawtype = "glasslike",
tiles = {"darkage_wood_bars.png"},
inventory_image = "darkage_wood_bars.png",
inventory_image = "darkage_wood_bars.png",
wield_image = "darkage_wood_bars.png",
is_ground_content = true,
is_ground_content = false,
paramtype = "light",
sunlight_propagates = true,
groups = {snappy=1,choppy=2},
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",
drawtype = "glasslike",
tiles = {"darkage_wood_grille.png"},
inventory_image = "darkage_wood_grille.png",
inventory_image = "darkage_wood_grille.png",
wield_image = "darkage_wood_grille.png",
is_ground_content = true,
is_ground_content = false,
paramtype = "light",
sunlight_propagates = true,
groups = {snappy=1,choppy=2},
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",
drawtype = "glasslike_framed",
tiles = {"darkage_wood_frame.png"},
inventory_image = "darkage_wood_frame.png",
inventory_image = "darkage_wood_frame.png",
wield_image = "darkage_wood_frame.png",
is_ground_content = true,
is_ground_content = false,
paramtype = "light",
sunlight_propagates = true,
groups = {snappy=1,choppy=2},
groups = {snappy=1, choppy=2, oddly_breakable_by_hand = 3, not_cuttable=1},
sounds = default.node_sound_stone_defaults()
})
@ -193,82 +199,82 @@ minetest.register_node("darkage:wood_frame", {
----------
minetest.register_craft({
output = 'darkage:box',
output = "darkage:box",
recipe = {
{'default:wood','','default:wood'},
{'','',''},
{'default:wood','','default:wood'},
}
})
minetest.register_craft({
output = 'darkage:chain 2',
recipe = {
{'darkage:iron_stick'}, --changed reziep to avoid problems with ironbars - addi
{'darkage:iron_stick'},
{'darkage:iron_stick'},
{"default:wood", "", "default:wood"},
{"", "", ""},
{"default:wood", "", "default:wood"},
}
})
minetest.register_craft({
output = 'darkage:iron_bars 2',
output = "darkage:chain 2",
recipe = {
{'darkage:iron_stick','','darkage:iron_stick'}, --changed reziep to avoid problems with 3dfurniture -addi
{'darkage:iron_stick','','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',
output = "darkage:iron_bars 2",
recipe = {
{'','darkage:iron_bars',''},
{'darkage:iron_bars','','darkage:iron_bars'},
{'','darkage:iron_bars',''},
{"darkage:iron_stick", "", "darkage:iron_stick"},
{"darkage:iron_stick", "", "darkage:iron_stick"},
{"darkage:iron_stick", "", "darkage:iron_stick"},
}
})
minetest.register_craft({
output = 'darkage:lamp',
output = "darkage:iron_grille 3",
recipe = {
{'default:stick','','default:stick'},
{'','default:torch',''},
{'default:stick','','default:stick'},
{"", "darkage:iron_bars", ""},
{"darkage:iron_bars", "", "darkage:iron_bars"},
{"", "darkage:iron_bars", ""},
}
})
minetest.register_craft({
output = 'darkage:wood_bars 2',
output = "darkage:lamp",
recipe = {
{'default:stick','','default:stick'},
{'default:stick','','default:stick'},
{'default:stick','','default:stick'},
{"group:stick", "", "group:stick"},
{"", "default:torch", ""},
{"group:stick", "", "group:stick"},
}
})
minetest.register_craft({
output = 'darkage:wood_grille 3',
output = "darkage:wood_bars 2",
recipe = {
{'','darkage:wood_bars',''},
{'darkage:wood_bars','','darkage:wood_bars'},
{'','darkage:wood_bars',''},
{"group:stick", "", "group:stick"},
{"group:stick", "", "group:stick"},
{"group:stick", "", "group:stick"},
}
})
minetest.register_craft({
output = 'darkage:wood_shelves',
output = "darkage:wood_grille 3",
recipe = {
{'darkage:box'},
{'darkage:box'},
{"", "darkage:wood_bars", ""},
{"darkage:wood_bars", "", "darkage:wood_bars"},
{"", "darkage:wood_bars", ""},
}
})
minetest.register_craft({
output = 'darkage:wood_frame',
output = "darkage:wood_shelves",
recipe = {
{'default:stick','','default:stick'},
{'','default:glass',''},
{'default:stick','','default:stick'},
{"darkage:box"},
{"darkage:box"},
}
})
minetest.register_craft({
output = "darkage:wood_frame",
recipe = {
{"group:stick", "", "group:stick"},
{"", "default:glass", ""},
{"group:stick", "", "group:stick"},
}
})

308
glass.lua Normal file
View File

@ -0,0 +1,308 @@
--[[
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"},
}
})
--[[ Round Glass By Semmett9 aka Infinatum ]]
if minetest.get_modpath("unifieddyes") then
minetest.register_node("darkage:milk_glass", {
description = "Milky Medieval Glass (Good for colorization)",
drawtype = "glasslike",
tiles = {"darkage_milk_glass.png"},
use_texture_alpha=true,
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(),
after_dig_node = unifieddyes.after_dig_node
})
end
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()
})
minetest.register_craft({
output = "darkage:milk_glass",
type = "shapeless",
recipe = {"darkage:glass", "dye:white"}
})
unifieddyes.register_color_craft({
output = "darkage:milk_glass",
palette = "extended",
type = "shapeless",
neutral_node = "",
recipe = {
"darkage:milk_glass",
"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()
})
-- Craft
minetest.register_craft({
output = "darkage:milk_glass_round",
type = "shapeless",
recipe = {"darkage:glass_round", "dye:white"},
})
unifieddyes.register_color_craft({
output = "darkage:milk_glass_round",
palette = "extended",
type = "shapeless",
neutral_node = "",
recipe = {
"darkage:milk_glass_round",
"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 = "",
recipe = {
"darkage:milk_glass_square",
"MAIN_DYE"
}
})
-- Recycling
minetest.register_craft({
output = "darkage:glass_square",
recipe = {{"darkage:milk_glass_square"}}
})
end --unifieddyes condition

690
init.lua
View File

@ -1,254 +1,24 @@
print (" ---- Dark Age Version 1.2 is Loading! ---- ")
-- Commend this lines if you don't like some of this features
dofile(minetest.get_modpath("darkage").."/mapgen.lua")
dofile(minetest.get_modpath("darkage").."/building.lua")
dofile(minetest.get_modpath("darkage").."/furniture.lua")
dofile(minetest.get_modpath("darkage").."/aliases.lua")
if minetest.get_modpath("moreblocks") then
dofile(minetest.get_modpath("darkage").."/stairsplus.lua")--only if moreblocks installed
else
dofile(minetest.get_modpath("darkage").."/stairs.lua")
end
----------
-- Items
----------
minetest.log("action"," ---- Dark Age Version 1.3 is Loading! ---- ")
minetest.register_node("darkage:adobe", {
description = "Adobe",
tiles = {"darkage_adobe.png"},
is_ground_content = true,
groups = {crumbly=3},
sounds = default.node_sound_sand_defaults(),
})
darkage = {}; -- Create darkage namespace
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()
})
darkage.formbg = (default.gui_bg or "")..
(default.gui_bg_img or "")..
(default.gui_slots or "")
minetest.register_node("darkage:basalt_cobble", {
description = "Basalt Cobble",
tiles = {"darkage_basalt_cobble.png"},
is_ground_content = true,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults()
})
local MODPATH = minetest.get_modpath("darkage")..DIR_DELIM
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},
sounds = default.node_sound_stone_defaults()
})
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")
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"},
is_ground_content = true,
paramtype2 = "facedir",
drop = 'default:cobble',
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
dofile(MODPATH.."stairs_functions.lua")
dofile(MODPATH.."stairs.lua")
minetest.register_node("darkage:desert_stone_with_iron", {
description = "Desert Iron Ore",
tiles = {"default_desert_stone.png^darkage_mineral_iron.png"},
is_ground_content = true,
groups = {cracky=3},
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 = true,
groups = {crumbly=2},
sounds = default.node_sound_dirt_defaults(),
})
minetest.register_node("darkage:dry_leaves", {
description = "Dry Leaves",
tiles = {"darkage_dry_leaves.png"},
is_ground_content = true,
paramtype = "light",
groups = {snappy=3, flammable=2},
sounds = default.node_sound_leaves_defaults()
})
minetest.register_node("darkage:gneiss", {
description = "Gneiss",
tiles = {"darkage_gneiss.png"},
is_ground_content = true,
groups = {cracky=3},
drop = {
max_items = 1,
items = {
{
-- player will get cobbles with 1/3 chance
items = {'darkage:gneiss_cobble'},
rarity = 3,
},
{
items = {'darkage:gneiss'},
}
}
},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:gneiss_cobble", {
description = "Gneiss Cobble",
tiles = {"darkage_gneiss_cobble.png"},
is_ground_content = true,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:marble", {
description = "Marble",
tiles = {"darkage_marble.png"},
is_ground_content = true,
groups = {cracky=3},
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 = "",
}),
})
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:ors_cobble", {
description = "Old Red Sandstone Cobble",
tiles = {"darkage_ors_cobble.png"},
is_ground_content = true,
groups = {crumbly=2,cracky=2},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:serpentine", {
description = "Serpentine",
tiles = {"darkage_serpentine.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"},
is_ground_content = true,
groups = {crumbly=2,cracky=2},
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',
sounds = default.node_sound_dirt_defaults({
footstep = "",
}),
})
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_cobble',
groups = {cracky=2},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:slate_cobble", {
description = "Slate Cobble",
tiles = {"darkage_slate_cobble.png"},
is_ground_content = true,
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 = true,
groups = {cracky=2},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:straw", {
description = "Straw",
tiles = {"darkage_straw.png"},
is_ground_content = true,
groups = {snappy=3, flammable=2},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("darkage:stone_brick", {
description = "Stone Brick",
tiles = {"darkage_stone_brick.png"},
is_ground_content = true,
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 = true,
drop = 'darkage:straw 4',
groups = {snappy=2, flammable=2},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("darkage:marble", {
description = "Marble",
tiles = {"darkage_marble.png"},
is_ground_content = true,
groups = {cracky=2},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:marble_tile", {
description = "Marble Tile",
tiles = {"darkage_marble_tile.png"},
is_ground_content = true,
groups = {cracky=2},
sounds = default.node_sound_stone_defaults()
})
---------------
-- Crafts Items
@ -279,168 +49,90 @@ minetest.register_craftitem("darkage:iron_stick", {
----------
minetest.register_craft({
output = 'darkage:adobe 4',
output = "darkage:adobe 4",
recipe = {
{'default:sand','default:sand'},
{'default:clay_lump','darkage:straw'},
{"default:sand", "default:sand"},
{"default:clay_lump", "farming:straw"},
}
})
minetest.register_craft({
output = 'darkage:basalt_cobble 4',
recipe = {
{'default:cobble','default:cobble'},
{'default:coal_lump','default:coal_lump'},
}
})
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:chalk 2',
recipe = {
{'darkage:chalk_powder','darkage:chalk_powder'},
{'darkage:chalk_powder','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({
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:ors 4',
recipe = {
{'default:sandstone','default:sandstone'},
{'default:iron_lump','default:sandstone'},
}
})
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({
output = 'darkage:slate_tile 2',
recipe = {
{'darkage:slate_cobble','darkage:slate_cobble'},
{'darkage:slate_cobble','darkage:slate_cobble'},
}
})
minetest.register_craft({
output = 'darkage:stone_brick 9',--changed bacause conflicts with moreblocks
recipe = {
{'default:cobble','default:cobble','default:cobble'},--changed bacause conflicts with moreblocks
{'default:cobble','default:cobble','default:cobble'},--changed bacause conflicts with moreblocks
{'default:cobble','default:cobble','default:cobble'},--changed bacause conflicts with moreblocks
}
})
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'},
}
})
if minetest.get_modpath("farming") then
--only if farming installed
minetest.register_craft({
output = 'darkage:straw 4',
recipe = {
{'farming:wheat_harvested','farming:wheat_harvested'},
{'farming:wheat_harvested','farming:wheat_harvested'},
}
})
else
--nothing else
end
minetest.register_craft({
output = 'darkage:straw_bale',
recipe = {
{'darkage:straw','darkage:straw'},
{'darkage:straw','darkage:straw'},
}
})
minetest.register_craft({
output = 'darkage:iron_stick 4',
recipe = {
{'default:steel_ingot'},
}
})
-- Cookings
--[[
Basalt
]]
minetest.register_craft({
type = "cooking",
output = "darkage:basalt",
recipe = "darkage:basalt_cobble",
recipe = "darkage:basalt_rubble",
})
minetest.register_craft({
type = "cooking",
output = "darkage:dry_leaves",
recipe = "default:leaves",
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",
@ -450,13 +142,164 @@ minetest.register_craft({
minetest.register_craft({
type = "cooking",
output = "darkage:gneiss",
recipe = "darkage:gneiss_cobble",
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_cobble",
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({
@ -480,21 +323,64 @@ minetest.register_craft({
minetest.register_craft({
type = "cooking",
output = "darkage:slate",
recipe = "darkage:slate_cobble",
recipe = "darkage:slate_rubble",
})
-- Desert
minetest.register_craft({
type = "cooking",
output = "darkage:ors_cobble",
output = "darkage:ors_brick",
recipe = "default:desert_stone",
})
-- Tuff
minetest.register_craft({
output = 'default:desert_stone 2',
output = "darkage:tuff 2",
recipe = {
{'default:desert_sand','default:desert_sand'},
{'default:desert_sand','default:desert_sand'},
{"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"},
}
})

View File

@ -1,255 +1,305 @@
-- Some local constants to use for mapgen
local c_air = minetest.CONTENT_AIR
local c_ignore = minetest.CONTENT_IGNORE
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
--wherein kind of node to replace, for example default:stone
--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(name, wherein, ceilin, ceil, minp, maxp, seed, stratus_chance, radius, radius_y, deep, height_min, height_max)
if maxp.y < height_min or minp.y > height_max then
return
end
-- it will be only generate a stratus for every 100 m of area
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)
print(" <<"..dump(name)..">>");
if blocks == 0 then
blocks = 1
end
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
-- TODO deep
local y0=y_max-radius_y+1
if y0 < y_min then
y0=y_min
else
y0=pr:next(y_min, y0)
end
local x0 = maxp.x-radius+1
if x0 < minp.x then
x0 = minp.x
else
x0 = pr:next(minp.x, x0)
end
local z0 = maxp.z-radius+1
if z0 < minp.z then
x0 = minp.z
else
z0 = pr:next(minp.z, z0)
end
local p0 = {x=x0, y=y0, z=z0}
local n = minetest.env:get_node(p0).name
local i = 0
--print(" upper node "..n)
x = 0
for k, v in ipairs(ceilin) do
if n == v then
x = 1
break
end
end
if x == 1 then
-- search for the node to replace
--print(" Searching nodes to replace from "..dump(y0-1).." to "..dump(y_min))
for y1=y0-1,y_min,-1 do
p0.y=y1
n = minetest.env:get_node(p0).name
x = 0
for k, v in ipairs(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
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)..")")
for x1=0,rx do
rz = rz + 3 - pr:next(1,6)
if rz < 1 then
rz = 1
end
for z1=pr:next(1,3),rz do
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 = minetest.env:get_node(p2).name
x = 0
for k, v in ipairs(wherein) do
if n == v then
x = 1
break
end
end
if x == 1 then
if ceil == nil then
minetest.env:set_node(p2, {name=name})
i = i +1
else
local p3 = {p2.x,p2.y+1,p2}
if minetest.env:get_node(p3).name == ceil then
minetest.env:set_node(p2, {name=name})
i = i +1
end
end
end
end
end
end
print(" generated "..dump(i).." blocks in ("..dump(x0)..","..dump(y0)..","..dump(z0)..")")
end
end
end
--print("generate_ore done")
end
local function generate_claylike(name, minp, maxp, seed, chance, minh, maxh, dirt)
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
for divx=0+1,divs-1-1 do
for divz=0+1,divs-1-1 do
local cx = minp.x + math.floor((divx+0.5)*divlen)
local cz = minp.z + math.floor((divz+0.5)*divlen)
local up = minetest.env:get_node({x=cx,y=yy,z=cz}).name
local down = minetest.env:get_node({x=cx,y=yy-1,z=cz}).name
if ( up == "default:water_source" or up == "air" ) and
( down == "default:sand" or (dirt == 1 and (down == "default:dirt" or down == "default:dirt_with_grass" ))) then
local is_shallow = true
local num_water_around = 0
if minetest.env:get_node({x=cx-divlen*2,y=yy,z=cz}).name == "default:water_source" then
num_water_around = num_water_around + 1 end
if minetest.env:get_node({x=cx+divlen*2,y=yy,z=cz}).name == "default:water_source" then
num_water_around = num_water_around + 1 end
if minetest.env:get_node({x=cx,y=yy,z=cz-divlen*2}).name == "default:water_source" then
num_water_around = num_water_around + 1 end
if minetest.env:get_node({x=cx,y=yy,z=cz+divlen*2}).name == "default:water_source" then
num_water_around = num_water_around + 1 end
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 p={x=cx+x1,y=yy-1,z=cz+z1}
down = minetest.env:get_node(p).name
if down == "default:sand" or (dirt == 1 and (down == "default:dirt" or down == "default:dirt_with_grass")) then
minetest.env:set_node(p, {name=name})
end
end
end
end
end
end
end
end
end
end
end
local function generate_ore(name, wherein, minp, maxp, seed, chunks_per_volume, chunk_size, ore_per_chunk, height_min, height_max)
if maxp.y < height_min or minp.y > height_max then
local function generate_stratus(data, area, name, c_wherein, ca_ceilin, minp, maxp, seed, stratus_chance, radius, radius_y, deep, y_min, y_max)
if maxp.y < y_min
or minp.y > y_max then
return
end
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 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 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)
--print("generate_ore num_chunks: "..dump(num_chunks))
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}
if minetest.env:get_node(p2).name == wherein then
minetest.env:set_node(p2, {name=name})
local blocks = math.floor(stratus_per_volume*volume)
minetest.log("info", " <<"..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
local y0=y_max-radius_y+1
if y0 < y_min then
y0=y_min
else
y0=pr:next(y_min, y0)
end
local x0 = maxp.x-radius+1
if x0 < minp.x then
x0 = minp.x
else
x0 = pr:next(minp.x, x0)
end
local z0 = maxp.z-radius+1
if z0 < minp.z then
x0 = minp.z
else
z0 = pr:next(minp.z, z0)
end
local n = data[area:index(x0, y0, z0)]
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)
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)
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
end
end
end
end
end
end
end
minetest.log("info", " generated "..i.." blocks in ("..x0..","..y0..","..z0..")")
end
end
--print("generate_ore done")
end
minetest.register_on_generated(function(minp, maxp, seed)
-- Generate stratus
print("DARKAGE: Generate stratus");
generate_ore("darkage:desert_stone_with_iron", "default:desert_stone", minp, maxp, seed+0, 1/7/7/7, 3, 5, -15, 40)
generate_claylike("darkage:mud", minp, maxp, seed+1, 4, 0, 2, 0)
generate_claylike("darkage:silt", minp, maxp, seed+2, 4, -1, 1, 1)
generate_stratus("darkage:chalk",
{"default:stone"},
{"default:stone","air"}, nil,
minp, maxp, seed+3, 4, 25, 8, 0, -20, 50)
generate_stratus("darkage:ors",
{"default:stone"},
{"default:stone","air","default:water_source"}, nil,
minp, maxp, seed+4, 4, 25, 7, 50, -200, 500)
generate_stratus("darkage:shale",
{"default:stone"},
{"default:stone","air"}, nil,
minp, maxp, seed+5, 4, 23, 7, 50, -50, 20)
generate_stratus("darkage:slate",
{"default:stone"},
{"default:stone","air"}, nil,
minp, maxp, seed+6, 6, 23, 5, 50, -500, 0)
generate_stratus("darkage:schist",
{"default:stone"},
{"default:stone","air"}, nil,
minp, maxp, seed+7, 6, 19, 6, 50, -31000, -10)
generate_stratus("darkage:basalt",
{"default:stone"},
{"default:stone","air"}, nil,
minp, maxp, seed+8, 5, 20, 5, 20, -31000, -50)
generate_stratus("darkage:marble",
{"default:stone"},
{"default:stone","air"}, nil,
minp, maxp, seed+9, 4, 25, 6, 50, -31000, -75)
generate_stratus("darkage:serpentine",
{"default:stone"},
{"default:stone","air"}, nil,
minp, maxp, seed+10, 4, 28, 8, 50, -31000, -350)
generate_stratus("darkage:gneiss",
{"default:stone"},
{"default:stone","air"}, nil,
minp, maxp, seed+11, 4, 15, 5, 50, -31000, -250)
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 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
for divx=0+1,divs-1-1 do
for divz=0+1,divs-1-1 do
local cx = minp.x + math.floor((divx+0.5)*divlen)
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
local num_water_around = 0
if data[varea:index(cx-divlen*2,yy,cz)] == c_water then
num_water_around = num_water_around + 1
end
if data[varea:index(cx+divlen*2,yy,cz)] == c_water then
num_water_around = num_water_around + 1
end
if data[varea:index(cx,yy,cz-divlen*2)] == c_water then
num_water_around = num_water_around + 1
end
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
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
end
end
end
end
end
end
end
end
end
end
end
local seed = minetest.get_mapgen_setting("seed")
-- 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))
end
minetest.register_on_generated(generate_strati)

6
mod.conf Normal file
View File

@ -0,0 +1,6 @@
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

469
nodes.lua Normal file
View File

@ -0,0 +1,469 @@
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
]]
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},
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},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:serpentine", {
description = "Serpentine",
tiles = {"darkage_serpentine.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"},
is_ground_content = true,
groups = {crumbly=2,cracky=2},
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',
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',
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,
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},
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},
sounds = default.node_sound_stone_defaults()
})
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: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(),
})
--[[
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'},
}
}
},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:tuff_bricks", {
description = "Tuff Bricks",
tiles = {"darkage_tuff_bricks.png"},
is_ground_content = false,
groups = {cracky=2},
sounds = default.node_sound_stone_defaults()
})
-- abm to turn Tuff bricks to old Tuff bricks if water is nearby
minetest.register_abm({
nodenames = {"darkage:tuff_bricks"},
neighbors = {"group:water"},
interval = 16,
chance = 200,
catch_up = false,
action = function(pos, node)
minetest.set_node(pos, {name = "darkage:old_tuff_bricks"})
end
})
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,
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,
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(),
})
--[[
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},
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"},
}
})

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 635 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 609 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 732 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 606 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 535 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 903 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 555 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 555 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 656 B

BIN
screenshot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 260 KiB

View File

@ -1,155 +1,29 @@
darkage = {}
function darkage.register_stairs(modname, item, groups, images, description)
local recipeitem = modname..":"..item
local itemname = modname..":stair_"..item
minetest.register_node(itemname, {
description = description.." stair",
drawtype = "nodebox",
tiles = images,
paramtype = "light",
paramtype2 = "facedir",
is_ground_content = true,
groups = groups,
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
{-0.5, 0, 0, 0.5, 0.5, 0.5},
},
},
})
-- 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")
minetest.register_craft({
output = itemname .. ' 4',
recipe = {
{recipeitem, "", ""},
{recipeitem, recipeitem, ""},
{recipeitem, recipeitem, recipeitem},
},
})
-- Flipped recipe for the silly minecrafters
minetest.register_craft({
output = itemname .. ' 4',
recipe = {
{"", "", recipeitem},
{"", recipeitem, recipeitem},
{recipeitem, recipeitem, recipeitem},
},
})
itemname=modname..":slab_" .. item
minetest.register_node(itemname, {
description = description.." slab",
drawtype = "nodebox",
tiles = images,
paramtype = "light",
is_ground_content = true,
groups = groups,
node_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
},
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
},
on_place = function(itemstack, placer, pointed_thing)
if pointed_thing.type ~= "node" then
return itemstack
end
-- If it's being placed on an another similar one, replace it with
-- a full block
local slabpos = nil
local slabnode = nil
local p0 = pointed_thing.under
local p1 = pointed_thing.above
local n0 = minetest.env:get_node(p0)
local n1 = minetest.env:get_node(p1)
if n0.name == itemname then
slabpos = p0
slabnode = n0
elseif n1.name == itemname then
slabpos = p1
slabnode = n1
end
if slabpos then
-- Remove the slab at slabpos
minetest.env:remove_node(slabpos)
-- Make a fake stack of a single item and try to place it
local fakestack = ItemStack(recipeitem)
pointed_thing.above = slabpos
fakestack = minetest.item_place(fakestack, placer, pointed_thing)
-- If the item was taken from the fake stack, decrement original
if not fakestack or fakestack:is_empty() then
itemstack:take_item(1)
-- Else put old node back
else
minetest.env:set_node(slabpos, slabnode)
end
return itemstack
end
-- Otherwise place regularly
return minetest.item_place(itemstack, placer, pointed_thing)
end,
})
minetest.register_craft({
output = itemname .. ' 3',
recipe = {
{recipeitem, recipeitem, recipeitem},
},
})
end
darkage.register_stairs("darkage","basalt_cobble",
{cracky=3},
{"darkage_basalt_cobble.png"},
"Basalt Cobble"
)
darkage.register_stairs("darkage","slate_tile",
{cracky=3},
{"darkage_slate_tile.png"},
"Slate Tile"
)
darkage.register_stairs("darkage","straw",
{snappy=3, flammable=2},
{"darkage_straw.png"},
"Straw"
)
darkage.register_stairs("darkage","stone_brick",
{cracky=3},
{"darkage_stone_brick.png"},
"Stone Brick"
)
darkage.register_stairs("darkage","marble",
{cracky=3},
{"darkage_marble.png"},
"Marble"
)
darkage.register_stairs("darkage","marble_tile",
{cracky=3},
{"darkage_marble_tile.png"},
"Marble Tile"
)
darkage.register_stairs("darkage","ors_cobble",
{cracky=3},
{"darkage_ors_cobble.png"},
"Old Red Sandstone"
)
darkage.register_stairs("darkage","serpentine",
{cracky=3},
{"darkage_serpentine.png"},
"Serpentine"
)

71
stairs_functions.lua Normal file
View File

@ -0,0 +1,71 @@
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
]]

View File

@ -1,136 +0,0 @@
--slate Cobble
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(),
})
--slate
stairsplus:register_all("darkage", "slate", "darkage:slate", {
description = "Slate",
tiles = {"darkage_slate.png","darkage_slate.png","darkage_slate_side.png"},
groups = {cracky=2},
sounds = default.node_sound_stone_defaults(),
})
--slate tile
stairsplus:register_all("darkage", "slate_tile", "darkage:slate_tile", {
description = "Slate Tale",
tiles = {"darkage_slate_tile.png"},
groups = {cracky=2},
sounds = default.node_sound_stone_defaults(),
})
--marble
stairsplus:register_all("darkage", "marble", "darkage:marble", {
description = "Marble",
tiles = {"darkage_marble.png"},
groups = {cracky=2},
sounds = default.node_sound_stone_defaults(),
})
--stone brick
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(),
})
--straw
stairsplus:register_all("darkage", "straw", "darkage:straw", {
description = "Straw",
tiles = {"darkage_straw.png"},
groups = {snappy=3, flammable=2},
sounds = default.node_sound_leaves_defaults(),
})
--straw_bale
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_leaves_defaults(),
})
--serpentine
stairsplus:register_all("darkage", "serpentine", "darkage:serpentine", {
description = "Serpentine",
tiles = {"darkage_serpentine.png"},
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
--shist
stairsplus:register_all("darkage", "schist", "darkage:schist", {
description = "Schist",
tiles = {"darkage_schist.png"},
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
--gneiss
stairsplus:register_all("darkage", "gneiss", "darkage:gneiss", {
description = "Gneiss",
tiles = {"darkage_gneiss.png"},
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
--gneiss_cobble
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(),
})
--basalt
stairsplus:register_all("darkage", "basalt", "darkage:basalt", {
description = "Basalt",
tiles = {"darkage_basalt.png"},
groups = {cracky=3},
sounds = default.node_sound_stone_defaults(),
})
--basalt cobble
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(),
})
--shale
stairsplus:register_all("darkage", "shale", "darkage:shale", {
description = "Shale",
tiles = {"darkage_shale.png","darkage_shale.png","darkage_shale_side.png"},
groups = {crumbly=2,cracky=2},
sounds = default.node_sound_stone_defaults(),
})
--old red sandstone
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(),
})
--old red sandstone cobble
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(),
})
--Serpentine
stairsplus:register_all("darkage", "serpentine", "darkage:serpentine", {
description = "Serpentine",
tiles = {"darkage_serpentine.png"},
groups = {crumbly=2,cracky=2},
sounds = default.node_sound_stone_defaults(),
})

Binary file not shown.

Before

Width:  |  Height:  |  Size: 684 B

After

Width:  |  Height:  |  Size: 964 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 601 B

After

Width:  |  Height:  |  Size: 728 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 728 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 705 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 701 B

After

Width:  |  Height:  |  Size: 577 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 758 B

After

Width:  |  Height:  |  Size: 617 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 230 B

After

Width:  |  Height:  |  Size: 164 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 686 B

After

Width:  |  Height:  |  Size: 953 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 618 B

After

Width:  |  Height:  |  Size: 450 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 407 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 846 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 772 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 764 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 760 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 766 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 980 B

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 603 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 446 B

After

Width:  |  Height:  |  Size: 177 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 385 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 381 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 418 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 499 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 347 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 697 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 846 B

After

Width:  |  Height:  |  Size: 793 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 872 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 802 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 951 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 922 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 619 B

After

Width:  |  Height:  |  Size: 566 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 577 B

After

Width:  |  Height:  |  Size: 457 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 202 B

After

Width:  |  Height:  |  Size: 122 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 747 B

After

Width:  |  Height:  |  Size: 516 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 358 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 739 B

After

Width:  |  Height:  |  Size: 275 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 785 B

After

Width:  |  Height:  |  Size: 637 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 950 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 914 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 670 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 891 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 596 B

After

Width:  |  Height:  |  Size: 515 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 210 B

After

Width:  |  Height:  |  Size: 140 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 709 B

After

Width:  |  Height:  |  Size: 474 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 819 B

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 692 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 846 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 805 B

After

Width:  |  Height:  |  Size: 686 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 454 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 481 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 716 B

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