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

62 Commits

Author SHA1 Message Date
6dfddf7151 Merge remote-tracking branch 'upstream/master' into nalc-1.2-dev 2020-06-16 21:30:40 +02:00
befafde095 Fix the dye recipes for square glass. (#5) 2020-04-21 07:34:01 +02:00
def6b91bd5 Merge branch 'master' of yunohost.local:mtcontrib/darkage into nalc-1.2-dev 2019-12-22 12:51:27 +01:00
8e7aea0317 Fixed colorizing, added glow variants (#3) 2019-07-21 08:57:44 +02:00
51a0c9dc13 Ajoute message de chargement du mod dans le journal "action" 2018-12-25 13:18:11 +01:00
aa228814b2 Suppression de la génération du minerai de fer dans la roche du desert 2018-11-29 21:27:01 +01: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
187 changed files with 2009 additions and 1421 deletions

261
README.md
View File

@ -1,8 +1,10 @@
#DarkAge MOD for MINETEST # DarkAge Mod for Minetest
Original mod by Master Gollum Original mod by Master Gollum
Modified by addi and CraigyDavi Modified by addi.
##Introduction: Contains code from CragiDavi and HybridDog
## Introduction:
This mod adds a few new blocks that allows to create new buildings in a 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 construction :P
@ -24,7 +26,7 @@ Modified by addi and CraigyDavi
##Release Notes ## Release Notes
Version 1.2 Version 1.2
* corrected Sounds of Stairs * corrected Sounds of Stairs
@ -82,10 +84,8 @@ Version 0.1
* 6 Nodes * 6 Nodes
PS: This document has been structured as the README.txt of PilzAdam in
his Bed MOD.
###How to install: ### How to install:
Unzip the archive an place it in minetest-base-directory/mods/ 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 if you have a windows client or a linux run-in-place client. If you
have a linux system-wide installation place it in have a linux system-wide installation place it in
@ -95,198 +95,199 @@ PS: This document has been structured as the README.txt of PilzAdam in
For further information or help see: For further information or help see:
http://wiki.minetest.net/Installing_Mods http://wiki.minetest.net/Installing_Mods
###Tuning: ## BUILDING NODES
Comments the following lines to remove what you don't like:
(To comment them just add -- at the beginning of their lines)
Stone Layers ### Adobe:
dofile(minetest.get_modpath("darkage").."/mapgen.lua") Sand and Clay mixture with Straw to build houses or walls.
The stones will not spawn in the map. Used from historical times, one of the first bricks
invented. I have to improve this texture, it is ugly :P
Furniture Nodes
dofile(minetest.get_modpath("darkage").."/furniture.lua")
Only pure stones will be provided.
##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 CRAFT -> 4
[Sand] [Sand] [Sand] [Sand]
[Clay Lump] [Straw] [Clay Lump] [Straw]
Basalt: a darken version of the default Stone
### Basalt:
A darken version of the default Stone
COOKING COOKING
[Basalt Cobble] [Basalt Rubble]
Basalt Cobble: A darken version of the default Cobble
### Basalt Rubble:
A darken version of the default Cobble.
CRAFT -> 4 CRAFT -> 4
[Cobble] [Cobble] [Cobble] [Cobble]
[Coal Lump] [Coal Lump] [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 ### Chalk:
stratum. 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. ### 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. ### Cobblestone with Plaster:
When dug it lost the plaster layer! Cobbles where has been applied a
layer of white plaster.
When dug it lost the plaster layer!
CRAFT -> 2 CRAFT -> 2
[Cobblestone] [Chalk Powder] [Cobblestone] [Chalk Powder]
[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 ### Dark Dirt:
Gravel, but the noise walking was annoying to me (like A darken version of the Dirt where the grass doesn't
walking over iron coal with the nude feet :P), for this I grown, perfect for create a path in a forest. I was using
created this node. 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 CRAFT -> 4
[Dirt] [Dirt] [Dirt] [Dirt]
[Gravel] [Gravel] [Gravel] [Gravel]
Desert Stone Cobble: To add more uses to the Desert Stones.
I supposed they are harder than regular Stones so it ### Desert Iron Ore:
cracks at 50% and releases the Cobbles or just regular I know that others MODs add ores to the
Desert Stones. Desert Stones, mine also does it, but just Iron, I supposed
From dig Desert Stone 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.
Desert Iron Ore: I know that others MODs add ores to the
Desert Stones, mine also does it, but just Iron, I supposed ### Dry Leaves:
the red color is because of the iron, so it goes with more Just a cube of Leaves toasted :P Well I found the
high probability than regular Stones and it doesn't add Leaves are not useful so I thought to turn them into Straw, ok
Coal to them. It will not be a lot so you can keep it with it is not the same, but well, why not? Just dry them in a
another MOD that does the same or just comment the lines that Furnace and then put together to create the Straw
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 COOKING
[Leaves] [Leaves]
Gneiss: high grade metamorphic rock formed from Schist, very
common, and used in construction. It sometimes brakes in ### Gneiss:
Gneiss Cobble when being dug. High grade metamorphic rock formed from Schist, very
common, and used in construction. It sometimes brakes in
Gneiss Rubble when being dug.
COOKING COOKING
[Schist] [Schist]
Gneiss Cobble: brick version of the gneiss.
### Gneiss Rubble:
Cobble version of the gneiss.
From dig gneiss From dig gneiss
Mud: mixture of water and some combination of soil, silt, and
clay. Used for build houses, specially in desert regions. ### Mud:
It brakes in 4 Mud Lumps when dug. 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 CRAFT -> 3
[Dirt] [Dirt] [Dirt] [Dirt]
[Clay Lump] [Silt Lump] [Clay Lump] [Silt Lump]
CRAFT -> 1 CRAFT -> 1
[Mud Lump] [Mud Lump] [Mud Lump] [Mud Lump]
[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. ### Old Red Sandstone:
A light red sandstone, in fact it's
sandstone with iron that gives it this color.
CRAFT -> 4 CRAFT -> 4
[Sandstone] [Sandstone] [Sandstone] [Sandstone]
[Iron Lump] [Sandstone] [Iron Lump] [Sandstone]
COOKING
[Old Red Sandstone Cobble]
Old Red Sandstone Cobble: Cobbles of Old Red Sandstone. COOKING
[Old Red Sandstone Rubble]
### Old Red Sandstone Rubble:
Cobbles of Old Red Sandstone.
CRAFT -> 4 CRAFT -> 4
[Sandstone Cobble] [Sandstone Cobble] [Sandstone] [Sandstone]
[Iron Lump] [Sandstone Cobble] [Iron Lump] [Sandstone]
COOKING
[Desert Stone] --> I think I will change it in the future
release with its own Cobbles.
Reinforced Cobble: brick with crossed wooden.
### Reinforced Cobble:
Brick with crossed wooden.
CRAFT -> 1 CRAFT -> 1
[Stick] [] [Stick] [Stick] [] [Stick]
[] [Cobble] [] [] [Cobble] []
[Stick] [] [Stick] [Stick] [] [Stick]
Sandstone Cobble: brick version of the Sandstone, good for
buildings with a pale color.
COOKING ### Schist:
[Sandstone] Medium grade metamorphic rock from Slate.
Schist: medium grade metamorphic rock from Slate.
COOKING COOKING
[Slate] [Slate]
Silt: granular material of a size somewhere between sand and clay.
It brakes in 4 Silt Lumps. ### Silt:
Granular material of a size somewhere between sand and clay.
It brakes in 4 Silt Lumps.
CRAFT -> 1 CRAFT -> 1
[Silt Lump] [Silt Lump] [Silt Lump] [Silt Lump]
[Silt Lump] [Silt Lump] [Silt Lump] [Silt Lump]
Slate: fine-grained, foliated, homogeneous metamorphic rock
derived from an original shale-type sedimentary rock through ### Slate:
low-grade regional metamorphism. It is used to build roof. 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 COOKING
[Shale] [Shale]
COOKING COOKING
[Slate Cobble] [Slate Cobble]
### Slate Rubble:
Cobble obtained from Slate
Slate Cobble: Cobble obtained from Slate
From dig 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 Tile:
slate is easy to find. Nice blue slate tiles for roofs. They has been used
Note: It has stairs and slabs. as building traditional building material in zones where
slate is easy to find.
Note: It has stairs and slabs.
CRAFT -> 2 CRAFT -> 2
[Slate Cobble] [Slate Cobble] [Slate Rubble] [Slate Rubble]
[Slate Cobble] [Slate Cobble] [Slate Rubble] [Slate Rubble]
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 ### Straw Bale:
[Shrub] [Shrub] A decoration item, looks great for a farm or a
[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. country side house.
CRAFT -> 1 CRAFT -> 1
[Straw] [Straw] [Straw] [Straw]
[Straw] [Straw] [Straw] [Straw]
Desert Stone: just the default block, it can be obtained now
### Desert Stone:
Just the default block, it can be obtained now
from Desert Sand. The idea is that Desert Sand is stonier from Desert Sand. The idea is that Desert Sand is stonier
than regular Sand, so it takes less to create a Desert than regular Sand, so it takes less to create a Desert
Stone than a Sandstone. Stone than a Sandstone.
@ -299,54 +300,65 @@ PS: This document has been structured as the README.txt of PilzAdam in
##FURNITURE NODES ##FURNITURE NODES
Just started so they are few ones Just started so they are few ones
Box: a more smaller container than the Chest, but it requires ### Box:
A more smaller container than the Chest, but it requires
less wood. As cheep as 4 woods and have 16 slots. The craft 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 is a little weird but I think it makes sense and avoids
collision with the recipe of Hardwood of the MOD collision with the recipe of Hardwood of the MOD
building_blocks. building_blocks.
CRAFT -> 2 CRAFT -> 2
[Wood] [] [Wood] [Wood] [] [Wood]
[] [] [] [] [] []
[Wood] [] [Wood] [Wood] [] [Wood]
Chain: climbable chain. ### Chain:
Climbable chain.
CRAFT -> 2 CRAFT -> 2
[Steel Ingot] [Steel Ingot]
[Steel Ingot] [Steel Ingot]
[Steel Ingot] [Steel Ingot]
Iron Bars: alternative window for the Glass.
### Iron Bars:
Alternative window for the Glass.
CRAFT -> 3 CRAFT -> 3
[Steel Ingot] [] [Steel Ingot] [Iron Stick] [] [Iron Stick]
[Steel Ingot] [] [Steel Ingot] [Iron Stick] [] [Iron Stick]
[Steel Ingot] [] [Steel Ingot] [Iron Stick] [] [Iron Stick]
Iron Grille: alternative window for the Glass.
###Iron Grille:
Alternative window for the Glass.
CRAFT -> 3 CRAFT -> 3
[] [Iron Bars] [] [] [Iron Bars] []
[Iron Bars] [] [Iron Bars] [Iron Bars] [] [Iron Bars]
[] [Iron Bars] [] [] [Iron Bars] []
Wood Bars: alternative window for the Glass.
###Wood Bars:
Alternative window for the Glass.
CRAFT -> 3 CRAFT -> 3
[Stick] [] [Stick] [Stick] [] [Stick]
[Stick] [] [Stick] [Stick] [] [Stick]
[Stick] [] [Stick] [Stick] [] [Stick]
Wood Frame: alternative window for the Glass.
###Wood Frame:
Alternative window for the Glass.
CRAFT -> 1 CRAFT -> 1
[Stick] [Stick] [Stick] [Stick] [Stick] [Stick]
[Stick] [Glass] [Stick] [Stick] [Glass] [Stick]
[Stick] [Stick] [Stick] [Stick] [Stick] [Stick]
Medieval Glass: a good looking glass, with small tiles
### Medieval Glass:
A good looking glass, with small tiles
CRAFT -> 8 CRAFT -> 8
[Glass] [steel_ingot] [Glass] [Glass] [steel_ingot] [Glass]
@ -357,7 +369,9 @@ Just started so they are few ones
CRAFT -> 1 CRAFT -> 1
[Medieval Glow Glass] [Medieval Glow Glass]
Medieval Glow Glass: a good looking glass, with small tiles which are glowing by itself
### Medieval Glow Glass:
A good looking glass, with small tiles which are glowing by itself
CRAFT -> 8 CRAFT -> 8
[Medieval Glass] [Medieval Glass]
@ -373,6 +387,10 @@ http://minetest.net/
--- ---
```
#!
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004 Version 2, December 2004
@ -386,3 +404,4 @@ http://minetest.net/
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 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")
minetest.register_alias("darkage:stair_basalt_cobble_wall","darkage:stair_basalt_cobble") ra(originmod.. ":stair_" ..originnode.."_outer", newmod..":stair_" ..newnode.."_outer")
minetest.register_alias("darkage:slab_basalt_cobble_inverted","darkage:slab_basalt_cobble") ra(originmod.. ":stair_" ..originnode, newmod..":stair_" ..newnode)
minetest.register_alias("darkage:panel_basalt_cobble_top","darkage:panel_basalt_cobble") ra(originmod.. ":stair_" ..originnode.."_inner", newmod..":stair_" ..newnode.."_inner")
minetest.register_alias("darkage:stair_straw_inverted","darkage:stair_straw")
minetest.register_alias("darkage:stair_desert_stone_cobble_wall_half","default:stair_desert_stonebrick_wall_half") ra(originmod.. ":slab_" ..originnode.."_1", newmod..":slab_" ..newnode.."_1")
minetest.register_alias("darkage:slab_desert_stone_cobble_inverted","default:slab_desert_stonebrick_inverted") ra(originmod.. ":slab_" ..originnode.."_2", newmod..":slab_" ..newnode.."_2")
minetest.register_alias("darkage:stair_desert_stone_cobble_inverted","default:stair_desert_stonebrick_inverted") ra(originmod.. ":slab_" ..originnode.."_quarter", newmod..":slab_" ..newnode.."_quarter")
minetest.register_alias("darkage:stair_desert_stone_cobble_outer","default:stair_desert_stonebrick_outer") ra(originmod.. ":slab_" ..originnode, newmod..":slab_" ..newnode)
minetest.register_alias("darkage:slab_desert_stone_cobble_three_quarter_wall","default:slab_desert_stonebrick_three_quarter_wall") ra(originmod.. ":slab_" ..originnode.."_three_quarter", newmod..":slab_" ..newnode.."_three_quarter")
minetest.register_alias("darkage:slab_desert_stone_cobble_quarter","default:slab_desert_stonebrick_quarter") ra(originmod.. ":slab_" ..originnode.."_14", newmod..":slab_" ..newnode.."_14")
minetest.register_alias("darkage:slab_desert_stone_cobble","default:slab_desert_stonebrick") ra(originmod.. ":slab_" ..originnode.."_15", newmod..":slab_" ..newnode.."_15")
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") ra(originmod.. ":stair_" ..originnode.."_half", newmod..":stair_" ..newnode.."_half")
minetest.register_alias("darkage:stair_desert_stone_cobble_outer_inverted","default:stair_desert_stonebrick_outer_inverted") ra(originmod.. ":stair_" ..originnode.."_right_half", newmod..":stair_" ..newnode.."_right_half")
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") ra(originmod.. ":stair_" ..originnode.."_alt_1", newmod..":stair_" ..newnode.."_alt_1")
minetest.register_alias("darkage:micro_desert_stone_cobble_bottom","default:micro_desert_stonebrick_bottom") ra(originmod.. ":stair_" ..originnode.."_alt_2", newmod..":stair_" ..newnode.."_alt_2")
minetest.register_alias("darkage:panel_desert_stone_cobble_bottom","default:panel_desert_stonebrick_bottom") ra(originmod.. ":stair_" ..originnode.."_alt_4", newmod..":stair_" ..newnode.."_alt_4")
minetest.register_alias("darkage:stair_desert_stone_cobble_half_inverted","default:stair_desert_stonebrick_half_inverted") ra(originmod.. ":stair_" ..originnode.."_alt", newmod..":stair_" ..newnode.."_alt")
minetest.register_alias("darkage:micro_desert_stone_cobble_top","default:micro_desert_stonebrick_top") ra(originmod.. ":slope_" ..originnode, newmod..":slope_" ..newnode)
minetest.register_alias("darkage:slab_desert_stone_cobble_quarter_wall","default:slab_desert_stonebrick_quarter_wall") ra(originmod.. ":slope_" ..originnode.."_half", newmod..":slope_" ..newnode.."_half")
minetest.register_alias("darkage:stair_desert_stone_cobble_right_half","default:stair_desert_stonebrick_right_half") ra(originmod.. ":slope_" ..originnode.."_half_raised", newmod..":slope_" ..newnode.."_half_raised")
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") ra(originmod.. ":slope_" ..originnode.."_inner", newmod..":slope_" ..newnode.."_inner")
minetest.register_alias("darkage:panel_desert_stone_cobble_top","default:panel_desert_stonebrick_top") ra(originmod.. ":slope_" ..originnode.."_inner_half", newmod..":slope_" ..newnode.."_inner_half")
minetest.register_alias("darkage:stair_desert_stone_cobble_inner","default:stair_desert_stonebrick_inner") ra(originmod.. ":slope_" ..originnode.."_inner_half_raised", newmod..":slope_" ..newnode.."_inner_half_raised")
minetest.register_alias("darkage:stair_desert_stone_cobble","default:stair_desert_stonebrick") ra(originmod.. ":slope_" ..originnode.."_inner_cut", newmod..":slope_" ..newnode.."_inner_cut")
minetest.register_alias("darkage:panel_desert_stone_cobble_vertical","default:panel_desert_stonebrick_vertical") ra(originmod.. ":slope_" ..originnode.."_inner_cut_half", newmod..":slope_" ..newnode.."_inner_cut_half")
minetest.register_alias("darkage:stair_desert_stone_cobble_inner_inverted","default:stair_desert_stonebrick_inner_inverted") ra(originmod.. ":slope_" ..originnode.."_inner_cut_half_raised", newmod..":slope_" ..newnode.."_inner_cut_half_raised")
minetest.register_alias("darkage:slab_desert_stone_cobble_three_quarter_inverted","default:slab_desert_stonebrick_three_quarter_inverted")
ra(originmod.. ":slope_" ..originnode.."_outer", newmod..":slope_" ..newnode.."_outer")
ra(originmod.. ":slope_" ..originnode.."_outer_half", newmod..":slope_" ..newnode.."_outer_half")
ra(originmod.. ":slope_" ..originnode.."_outer_half_raised", newmod..":slope_" ..newnode.."_outer_half_raised")
ra(originmod.. ":slope_" ..originnode.."_outer_cut", newmod..":slope_" ..newnode.."_outer_cut")
ra(originmod.. ":slope_" ..originnode.."_outer_cut_half", newmod..":slope_" ..newnode.."_outer_cut_half")
ra(originmod.. ":slope_" ..originnode.."_outer_cut_half_raised", newmod..":slope_" ..newnode.."_outer_cut_half_raised")
ra(originmod.. ":slope_" ..originnode.."_cut", newmod..":slope_" ..newnode.."_cut")
end
-- Ors Brick
minetest.register_alias("darkage:ors_cobble", "darkage:ors_brick")
minetest.register_alias("stairs:slab_ors_cobble", "stairs:slab_ors_brick")
minetest.register_alias("stairs:stair_ors_cobble", "stairs:stair_ors_brick")
register_moreblocks_alias("darkage:ors_cobble", "darkage:ors_brick")
minetest.register_alias("darkage:ors_cobble_wall", "darkage:ors_rubble_wall")
-- Slate Tile
minetest.register_alias( "darkage:slate_tale", "darkage:slate_tile")
register_moreblocks_alias("darkage:slate_tale", "darkage:slate_tile")
minetest.register_alias("darkage:stair_sandstone_cobble_wall_half","default:stair_sandstonebrick_wall_half") -- Basalt Brick
minetest.register_alias("darkage:slab_sandstone_cobble_inverted","default:slab_sandstonebrick_inverted") minetest.register_alias("darkage:basalt_cobble", "darkage:basalt_brick")
minetest.register_alias("darkage:stair_sandstone_cobble_inverted","default:stair_sandstonebrick_inverted") minetest.register_alias("stairs:slab_basalt_cobble", "stairs:slab_basalt_brick")
minetest.register_alias("darkage:stair_sandstone_cobble_outer","default:stair_sandstonebrick_outer") minetest.register_alias("stairs:stair_basalt_cobble", "stairs:stair_basalt_brick")
minetest.register_alias("darkage:slab_sandstone_cobble_three_quarter_wall","default:slab_sandstonebrick_three_quarter_wall") register_moreblocks_alias("darkage:basalt_cobble", "darkage:basalt_brick")
minetest.register_alias("darkage:slab_sandstone_cobble_quarter","default:slab_sandstonebrick_quarter") minetest.register_alias("darkage:basalt_cobble_wall", "darkage:basalt_rubble_wall")
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")
--Add aliases when slate_tale was renamed to slate_tile -- Slate Brick
--minetest.register_alias(oldname,newname) minetest.register_alias("darkage:slate_cobble", "darkage:slate_brick")
minetest.register_alias("darkage:slate_tale","darkage:slate_tile") minetest.register_alias("stairs:slab_slate_cobble", "stairs:slab_slate_brick")
--slab minetest.register_alias("stairs:stair_slate_cobble", "stairs:stair_slate_brick")
minetest.register_alias("darkage:slab_slate_tale","darkage:slab_slate_tile") register_moreblocks_alias("darkage:slate_cobble", "darkage:slate_brick")
minetest.register_alias("darkage:slab_slate_tale_inverted","darkage:slab_slate_tile_inverted") minetest.register_alias("darkage:slate_cobble_wall", "darkage:slate_rubble_wall")
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") -- Gneiss Brick
minetest.register_alias("darkage:slab_slate_tale_quarter_inverted","darkage:slab_slate_tile_quarter_inverted") minetest.register_alias("darkage:gneiss_cobble", "darkage:gneiss_brick")
minetest.register_alias("darkage:slab_slate_tale_quarter_wall","darkage:slab_slate_tile_quarter_wall") minetest.register_alias("stairs:slab_gneiss_cobble", "stairs:slab_gneiss_brick")
minetest.register_alias("darkage:slab_slate_tale_three_quarter","darkage:slab_slate_tile_three_quarter") minetest.register_alias("stairs:stair_gneiss_cobble", "stairs:stair_gneiss_brick")
minetest.register_alias("darkage:slab_slate_tale_three_quarter_inverted","darkage:slab_slate_tile_three_quarter_inverted") register_moreblocks_alias("darkage:gneis_cobble", "darkage:gneiss_brick")
minetest.register_alias("darkage:slab_slate_tale_three_quarter_wall","darkage:slab_slate_tile_three_quarter_wall") minetest.register_alias("darkage:gneiss_cobble_wall", "darkage:gneiss_rubble_wall")
--stair
minetest.register_alias("darkage:stair_slate_tale","darkage:stair_slate_tile") -- Straw
minetest.register_alias("darkage:stair_slate_tale_inverted","darkage:stair_slate_tile_inverted") register_moreblocks_alias("darkage:straw", "moreblocks:straw")
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")

View File

@ -1,175 +1,171 @@
minetest.register_node("darkage:glass", { --[[
description = "Medieval Glass", This function registers the nodes and craft rezieps for the reinforce stuff
drawtype = "glasslike", * name: String which is used in description and as technical name (lower letters)
tiles = {"darkage_glass.png"}, * craftItem: the Item where the reinforce is crafted out of
inventory_image = minetest.inventorycube("darkage_glass.png"), * nodedef: Nodedefinition table as used as in minetest.register_node()
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(),
})
minetest.register_node("darkage:glow_glass", { The Nodes are caled
description = "Medieval Glow Glass", <modname>:reinforced_<name>
drawtype = "glasslike", <modname>:reinforced_<name>_slope
tiles = {"darkage_glass.png"}, <modname>:reinforced_<name>_arrow
inventory_image = minetest.inventorycube("darkage_glass.png"), <modname>:reinforced_<name>_bars
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(),
})
minetest.register_craft({ The modname is automatically the mod that currently calls this function.
output = 'darkage:glow_glass 1', e.g. if you call darkage.register_reinforce from the mod medieval modname will be medieval
]]
function darkage.register_reinforce(name, craftItem, nodedef)
assert(type(nodedef.tiles)=="table","ERRROR: nodedef.tiles have to be a table")
assert(nodedef.tiles[1], "ERROR: "..dump(nodedef.tiles).." requires at least 1 entry")
if nodedef.groups then
nodedef.groups["not_cuttable"] = 1;
else
nodedef.groups = {};
nodedef.groups["not_cuttable"] = 1;
end
local modname = minetest.get_current_modname();
local tname = string.gsub(name:lower()," ", "_"); -- Technical name
-- Reinforced X
local reinforced = table.copy(nodedef);
local reinforced_tname = modname..":reinforced_"..tname
reinforced.description = "Reinforced "..name
for i,tile in ipairs(reinforced.tiles) do
reinforced.tiles[i] = tile .."^darkage_reinforce.png"
end
minetest.register_node(reinforced_tname, reinforced)
minetest.register_craft({
output = reinforced_tname,
recipe = { recipe = {
{'darkage:glass', '', ''}, {"group:stick", craftItem, "group:stick"},
{'default:torch', '', ''}, {craftItem, "group:stick", craftItem},
{'', '', ''}, {"group:stick", craftItem, "group:stick"},
} }
}) })
-- Recycling
minetest.register_craft({ minetest.register_craft({
output = 'darkage:glass 1', output = craftItem,
recipe = { recipe = {
{'darkage:glow_glass'}, { 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_craft({ minetest.register_node(slope_tname, slope)
output = 'darkage:glass 8',
minetest.register_craft({
output = slope_tname,
recipe = { recipe = {
{'default:glass', 'default:steel_ingot', 'default:glass'}, {craftItem, craftItem, "group:stick"},
{'default:steel_ingot', 'default:glass', 'default:steel_ingot'}, {craftItem, "group:stick", craftItem},
{'default:glass', 'default:steel_ingot', 'default:glass'}, {"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 }
}
})
minetest.register_node("darkage:reinforced_chalk", { -- Alias to convert old nodes
description = "Reinforced Chalk", minetest.register_alias(modname..":reinforced_"..tname.."_right", slope_tname)
tiles = {"darkage_chalk.png^darkage_reinforce.png"}, minetest.register_alias(modname..":reinforced_"..tname.."_left", slope_tname)
is_ground_content = true,
-- 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}, groups = {cracky=3},
sounds = default.node_sound_stone_defaults() sounds = default.node_sound_stone_defaults()
}) })
minetest.register_node("darkage:reinforced_wood", { darkage.register_reinforce("Wood", "default:wood", {
description = "Reinforced Wood", tiles = {"default_wood.png"},
tiles = {"default_wood.png^darkage_reinforce.png"}, groups = {snappy=2, choppy=3, flammable=3},
is_ground_content = true,
groups = {snappy=2,choppy=3,oddly_breakable_by_hand=3,flammable=3},
sounds = default.node_sound_wood_defaults() sounds = default.node_sound_wood_defaults()
}) })
minetest.register_node("darkage:reinforced_wood_right", { darkage.register_reinforce("Chalked Bricks", "darkage:chalked_bricks", {
description = "Reinforced Wood Right", tiles = {"darkage_chalked_bricks.png"},
tiles = {"darkage_reinforced_wood_right.png"}, groups = {cracky = 2, stone = 1},
is_ground_content = true, sounds = default.node_sound_stone_defaults()
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'},
}
}) })

View File

@ -1,3 +1,5 @@
default default
farming? farming
moreblocks? 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", wield_image = "darkage_chain.png",
paramtype = "light", paramtype = "light",
paramtype2 = "wallmounted", paramtype2 = "wallmounted",
is_ground_content = true, is_ground_content = false,
walkable = false, walkable = false,
climbable = true, climbable = true,
selection_box = { selection_box = {
@ -15,31 +15,34 @@ minetest.register_node("darkage:chain", {
--wall_bottom = = <default> --wall_bottom = = <default>
--wall_side = = <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 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", description = "Box",
tiles = { 'darkage_box_top.png','darkage_box_top.png','darkage_box.png'}, tiles = { "darkage_box_top.png","darkage_box_top.png","darkage_box.png"},
sunlight_propagates = false, groups = { snappy = 3, not_cuttable=1 },
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
on_construct = function(pos) on_construct = function(pos)
local meta = minetest.env:get_meta(pos) local meta = minetest.get_meta(pos)
meta:set_string("formspec", meta:set_string("formspec", box_formspec )
"size[8,8]"..
"list[current_name;main;0,0;8,3;]"..
"list[current_player;main;0,4;8,4;]")
meta:set_string("infotext", "Box") meta:set_string("infotext", "Box")
local inv = meta:get_inventory() local inv = meta:get_inventory()
inv:set_size("main", 16) inv:set_size("main", 16)
end, end,
can_dig = function(pos,player) can_dig = function(pos,player)
local meta = minetest.env:get_meta(pos); local meta = minetest.get_meta(pos);
local inv = meta:get_inventory() local inv = meta:get_inventory()
return inv:is_empty("main") return inv:is_empty("main")
end, end,
@ -57,32 +60,37 @@ minetest.register_node('darkage:box', {
end, 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", description = "Wooden Shelves",
tiles = { 'darkage_shelves.png','darkage_shelves.png','darkage_shelves.png', tiles = { "darkage_shelves.png","darkage_shelves.png","darkage_shelves.png",
'darkage_shelves.png','darkage_shelves.png','darkage_shelves_front.png'}, "darkage_shelves.png","darkage_shelves.png","darkage_shelves_front.png"},
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
walkable = true, groups = { snappy = 3, not_cuttable=1 },
groups = { snappy = 3 },
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
on_construct = function(pos) on_construct = function(pos)
local meta = minetest.env:get_meta(pos) local meta = minetest.get_meta(pos)
meta:set_string("formspec", meta:set_string("formspec", shelves_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;]")
meta:set_string("infotext", "Wooden Shelves") meta:set_string("infotext", "Wooden Shelves")
local inv = meta:get_inventory() local inv = meta:get_inventory()
inv:set_size("up", 16) inv:set_size("up", 16)
inv:set_size("down", 16) inv:set_size("down", 16)
end, end,
can_dig = function(pos,player) can_dig = function(pos,player)
local meta = minetest.env:get_meta(pos); local meta = minetest.get_meta(pos);
local inv = meta:get_inventory() 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, end,
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
minetest.log("action", player:get_player_name().. minetest.log("action", player:get_player_name()..
@ -101,7 +109,7 @@ minetest.register_node('darkage:wood_shelves', {
--minetest.register_node("darkage:rosace", { --minetest.register_node("darkage:rosace", {
-- description = "Rose Window", -- description = "Rose Window",
-- tiles = {"darkage_rosace.png"}, -- tiles = {"darkage_rosace.png"},
-- is_ground_content = true, -- is_ground_content = false,
-- groups = {cracky=3}, -- groups = {cracky=3},
-- sounds = default.node_sound_stone_defaults() -- sounds = default.node_sound_stone_defaults()
--}) --})
@ -112,22 +120,20 @@ minetest.register_node("darkage:iron_bars", {
tiles = {"darkage_iron_bars.png"}, tiles = {"darkage_iron_bars.png"},
inventory_image = "darkage_iron_bars.png", inventory_image = "darkage_iron_bars.png",
wield_image = "darkage_iron_bars.png", wield_image = "darkage_iron_bars.png",
is_ground_content = true, is_ground_content = false,
paramtype = "light", paramtype = "light",
sunlight_propagates = true, sunlight_propagates = true,
groups = {cracky=3}, groups = {cracky=3 , not_cuttable=1},
sounds = default.node_sound_stone_defaults() sounds = default.node_sound_stone_defaults()
}) })
minetest.register_node("darkage:lamp", { minetest.register_node("darkage:lamp", {
description = "Lamp", description = "Lamp",
tiles = { tiles = { "darkage_lamp.png" },
"darkage_lamp.png"
},
paramtype = "light", paramtype = "light",
sunlight_propagates = true, sunlight_propagates = true,
light_source = LIGHT_MAX-1, light_source = default.LIGHT_MAX-1,
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3,flammable=1}, groups = {snappy=2, cracky=3, oddly_breakable_by_hand=3, flammable=1 , not_cuttable=1},
sounds = default.node_sound_glass_defaults(), sounds = default.node_sound_glass_defaults(),
}) })
@ -137,10 +143,10 @@ minetest.register_node("darkage:iron_grille", {
tiles = {"darkage_iron_grille.png"}, tiles = {"darkage_iron_grille.png"},
inventory_image = "darkage_iron_grille.png", inventory_image = "darkage_iron_grille.png",
wield_image = "darkage_iron_grille.png", wield_image = "darkage_iron_grille.png",
is_ground_content = true, is_ground_content = false,
paramtype = "light", paramtype = "light",
sunlight_propagates = true, sunlight_propagates = true,
groups = {cracky=3}, groups = {cracky=3 , not_cuttable=1},
sounds = default.node_sound_stone_defaults() sounds = default.node_sound_stone_defaults()
}) })
@ -150,10 +156,10 @@ minetest.register_node("darkage:wood_bars", {
tiles = {"darkage_wood_bars.png"}, tiles = {"darkage_wood_bars.png"},
inventory_image = "darkage_wood_bars.png", inventory_image = "darkage_wood_bars.png",
wield_image = "darkage_wood_bars.png", wield_image = "darkage_wood_bars.png",
is_ground_content = true, is_ground_content = false,
paramtype = "light", paramtype = "light",
sunlight_propagates = true, sunlight_propagates = true,
groups = {snappy=1,choppy=2}, groups = {snappy=1, choppy=2, not_cuttable=1},
sounds = default.node_sound_stone_defaults() sounds = default.node_sound_stone_defaults()
}) })
@ -163,23 +169,23 @@ minetest.register_node("darkage:wood_grille", {
tiles = {"darkage_wood_grille.png"}, tiles = {"darkage_wood_grille.png"},
inventory_image = "darkage_wood_grille.png", inventory_image = "darkage_wood_grille.png",
wield_image = "darkage_wood_grille.png", wield_image = "darkage_wood_grille.png",
is_ground_content = true, is_ground_content = false,
paramtype = "light", paramtype = "light",
sunlight_propagates = true, sunlight_propagates = true,
groups = {snappy=1,choppy=2}, groups = {snappy=1, choppy=2, not_cuttable=1},
sounds = default.node_sound_stone_defaults() sounds = default.node_sound_stone_defaults()
}) })
minetest.register_node("darkage:wood_frame", { minetest.register_node("darkage:wood_frame", {
description = "Wooden Frame", description = "Wooden Frame",
drawtype = "glasslike", drawtype = "glasslike_framed",
tiles = {"darkage_wood_frame.png"}, tiles = {"darkage_wood_frame.png"},
inventory_image = "darkage_wood_frame.png", inventory_image = "darkage_wood_frame.png",
wield_image = "darkage_wood_frame.png", wield_image = "darkage_wood_frame.png",
is_ground_content = true, is_ground_content = false,
paramtype = "light", paramtype = "light",
sunlight_propagates = true, 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() sounds = default.node_sound_stone_defaults()
}) })
@ -193,82 +199,82 @@ minetest.register_node("darkage:wood_frame", {
---------- ----------
minetest.register_craft({ minetest.register_craft({
output = 'darkage:box', output = "darkage:box",
recipe = { recipe = {
{'default:wood','','default:wood'}, {"default:wood", "", "default:wood"},
{'','',''}, {"", "", ""},
{'default:wood','','default:wood'}, {"default:wood", "", "default:wood"},
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = 'darkage:chain 2', output = "darkage:chain 2",
recipe = { recipe = {
{'darkage:iron_stick'}, --changed reziep to avoid problems with ironbars - addi {"darkage:iron_stick"},
{'darkage:iron_stick'}, {"darkage:iron_stick"},
{'darkage:iron_stick'}, {"darkage:iron_stick"},
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = 'darkage:iron_bars 2', output = "darkage:iron_bars 2",
recipe = { 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','','darkage:iron_stick'}, {"darkage:iron_stick", "", "darkage:iron_stick"},
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = 'darkage:iron_grille 3', output = "darkage:iron_grille 3",
recipe = { recipe = {
{'','darkage:iron_bars',''}, {"", "darkage:iron_bars", ""},
{'darkage:iron_bars','','darkage:iron_bars'}, {"darkage:iron_bars", "", "darkage:iron_bars"},
{'','darkage:iron_bars',''}, {"", "darkage:iron_bars", ""},
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = 'darkage:lamp', output = "darkage:lamp",
recipe = { recipe = {
{'default:stick','','default:stick'}, {"group:stick", "", "group:stick"},
{'','default:torch',''}, {"", "default:torch", ""},
{'default:stick','','default:stick'}, {"group:stick", "", "group:stick"},
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = 'darkage:wood_bars 2', output = "darkage:wood_bars 2",
recipe = { recipe = {
{'default:stick','','default:stick'}, {"group:stick", "", "group:stick"},
{'default:stick','','default:stick'}, {"group:stick", "", "group:stick"},
{'default:stick','','default:stick'}, {"group:stick", "", "group:stick"},
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = 'darkage:wood_grille 3', output = "darkage:wood_grille 3",
recipe = { recipe = {
{'','darkage:wood_bars',''}, {"", "darkage:wood_bars", ""},
{'darkage:wood_bars','','darkage:wood_bars'}, {"darkage:wood_bars", "", "darkage:wood_bars"},
{'','darkage:wood_bars',''}, {"", "darkage:wood_bars", ""},
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = 'darkage:wood_shelves', output = "darkage:wood_shelves",
recipe = { recipe = {
{'darkage:box'}, {"darkage:box"},
{'darkage:box'}, {"darkage:box"},
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = 'darkage:wood_frame', output = "darkage:wood_frame",
recipe = { recipe = {
{'default:stick','','default:stick'}, {"group:stick", "", "group:stick"},
{'','default:glass',''}, {"", "default:glass", ""},
{'default:stick','','default:stick'}, {"group:stick", "", "group:stick"},
} }
}) })

293
glass.lua Normal file
View File

@ -0,0 +1,293 @@
--[[
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=false,
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 ]]
minetest.register_node("darkage:glass_round", {
description = "Round Glass",
drawtype = "glasslike",
tiles = { "darkage_glass_round.png" },
paramtype = "light",
use_texture_alpha = true,
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 = true,
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=true,
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=true,
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=true,
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=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()
})
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=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()
})
-- 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=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()
})
-- 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

692
init.lua
View File

@ -1,254 +1,24 @@
print (" ---- Dark Age Version 1.2 is Loading! ---- ") minetest.log("action"," ---- Dark Age Version 1.3 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.register_node("darkage:adobe", { darkage = {}; -- Create darkage namespace
description = "Adobe",
tiles = {"darkage_adobe.png"},
is_ground_content = true,
groups = {crumbly=3},
sounds = default.node_sound_sand_defaults(),
})
minetest.register_node("darkage:basalt", { darkage.formbg = (default.gui_bg or "")..
description = "Basalt", (default.gui_bg_img or "")..
tiles = {"darkage_basalt.png"}, (default.gui_slots or "")
is_ground_content = true,
drop = 'darkage:basalt_cobble',
groups = {cracky=3},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:basalt_cobble", { local MODPATH = minetest.get_modpath("darkage")..DIR_DELIM
description = "Basalt Cobble",
tiles = {"darkage_basalt_cobble.png"},
is_ground_content = true,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:chalk", { dofile(MODPATH.."nodes.lua")
description = "Chalk", dofile(MODPATH.."glass.lua")
tiles = {"darkage_chalk.png"}, dofile(MODPATH.."mapgen.lua")
is_ground_content = true, dofile(MODPATH.."building.lua")
drop = 'darkage:chalk_powder 2', dofile(MODPATH.."furniture.lua")
groups = {crumbly=2,cracky=2}, dofile(MODPATH.."aliases.lua")
sounds = default.node_sound_stone_defaults() dofile(MODPATH.."walls.lua")
})
minetest.register_node("darkage:cobble_with_plaster", { dofile(MODPATH.."stairs_functions.lua")
description = "Cobblestone With Plaster", dofile(MODPATH.."stairs.lua")
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(),
})
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 -- Crafts Items
@ -279,168 +49,90 @@ minetest.register_craftitem("darkage:iron_stick", {
---------- ----------
minetest.register_craft({ minetest.register_craft({
output = 'darkage:adobe 4', output = "darkage:adobe 4",
recipe = { recipe = {
{'default:sand','default:sand'}, {"default:sand", "default:sand"},
{'default:clay_lump','darkage:straw'}, {"default:clay_lump", "farming:straw"},
} }
}) })
--[[
minetest.register_craft({ Basalt
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
minetest.register_craft({ minetest.register_craft({
type = "cooking", type = "cooking",
output = "darkage:basalt", output = "darkage:basalt",
recipe = "darkage:basalt_cobble", recipe = "darkage:basalt_rubble",
}) })
minetest.register_craft({ minetest.register_craft({
type = "cooking", output = "darkage:basalt_rubble 4",
output = "darkage:dry_leaves", recipe = {
recipe = "default:leaves", {"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({ minetest.register_craft({
type = "cooking", type = "cooking",
output = "darkage:gneiss", output = "darkage:gneiss",
@ -450,13 +142,164 @@ minetest.register_craft({
minetest.register_craft({ minetest.register_craft({
type = "cooking", type = "cooking",
output = "darkage:gneiss", 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({ minetest.register_craft({
type = "cooking", type = "cooking",
output = "darkage:ors", 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({ minetest.register_craft({
@ -480,21 +323,66 @@ minetest.register_craft({
minetest.register_craft({ minetest.register_craft({
type = "cooking", type = "cooking",
output = "darkage:slate", output = "darkage:slate",
recipe = "darkage:slate_cobble", recipe = "darkage:slate_rubble",
}) })
-- Desert -- Desert
minetest.register_craft({ minetest.register_craft({
type = "cooking", type = "cooking",
output = "darkage:ors_cobble", output = "darkage:ors_brick",
recipe = "default:desert_stone", recipe = "default:desert_stone",
}) })
-- Tuff
minetest.register_craft({ minetest.register_craft({
output = 'default:desert_stone 2', output = "darkage:tuff 2",
recipe = { recipe = {
{'default:desert_sand','default:desert_sand'}, {"darkage:gneiss", "default:stone"},
{'default:desert_sand','default:desert_sand'}, {"default:stone", "darkage:gneiss"},
} }
}) })
minetest.register_craft({
type = "cooking",
output = "darkage:tuff",
recipe = "darkage:tuff_rubble",
})
minetest.register_craft({
type = "cooking",
output = "darkage:tuff",
recipe = "darkage:old_tuff_bricks",
})
minetest.register_craft({
output = "darkage:tuff_bricks 4",
recipe = {
{"darkage:tuff", "darkage:tuff"},
{"darkage:tuff", "darkage:tuff"},
}
})
-- Rhyolitic Tuff
minetest.register_craft({
output = "darkage:rhyolitic_tuff 2",
recipe = {
{"darkage:gneiss", "default:desert_stone"},
{"default:desert_stone", "darkage:gneiss"},
}
})
minetest.register_craft({
type = "cooking",
output = "darkage:rhyolitic_tuff",
recipe = "darkage:rhyolitic_tuff_rubble",
})
minetest.register_craft({
output = "darkage:rhyolitic_tuff_bricks 4",
recipe = {
{"darkage:rhyolitic_tuff", "darkage:rhyolitic_tuff"},
{"darkage:rhyolitic_tuff", "darkage:rhyolitic_tuff"},
}
})
minetest.log("action", "[darkage] loaded.")

View File

@ -1,32 +1,50 @@
-- 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 --Makes a stratus of rocks
--name of the rock to generate --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 --minp, maxp the corners of the map to be generated
--seed random seed --seed random seed
--stratus_chance inverse probability in a given radius 1:2, 1:3 etc --stratus_chance inverse probability in a given radius 1:2, 1:3 etc
--radius horizontal radius of the stratus --radius horizontal radius of the stratus
--radius_y vertical radius of the stratus --radius_y vertical radius of the stratus
--deep how deep can be from the ground --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) 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 < height_min or minp.y > height_max then if maxp.y < y_min
or minp.y > y_max then
return return
end end
local c_node = minetest.get_content_id(name)
-- it will be only generate a stratus for every 100 m of area -- it will be only generate a stratus for every 100 m of area
local stratus_per_volume=1 local stratus_per_volume=1
local area=45 local area_size = 45
local y_min = math.max(minp.y, height_min) local y_min = math.max(minp.y, y_min)
local y_max = math.min(maxp.y, height_max) local y_max = math.min(maxp.y, y_max)
local volume = ((maxp.x-minp.x+1)/area)*((y_max-y_min+1)/area)*((maxp.z-minp.z+1)/area) 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 pr = PseudoRandom(seed)
local blocks = math.floor(stratus_per_volume*volume) local blocks = math.floor(stratus_per_volume*volume)
print(" <<"..dump(name)..">>"); minetest.log("info", " <<"..name..">>");
if blocks == 0 then if blocks == 0 then
blocks = 1 blocks = 1
end 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)..")") minetest.log("info", string.format(" blocks: %d in vol: %d (%d,%d,%d)",
for i=1,blocks do blocks, volume, maxp.x-minp.x+1, y_max-y_min+1, maxp.z-minp.z+1))
local x = pr:next(1,stratus_chance) for i = 1,blocks do
if x == 1 then if pr:next(1,stratus_chance) == 1 then
-- TODO deep -- TODO deep
local y0=y_max-radius_y+1 local y0=y_max-radius_y+1
if y0 < y_min then if y0 < y_min then
@ -46,88 +64,51 @@ local function generate_stratus(name, wherein, ceilin, ceil, minp, maxp, seed, s
else else
z0 = pr:next(minp.z, z0) z0 = pr:next(minp.z, z0)
end end
local p0 = {x=x0, y=y0, z=z0} local n = data[area:index(x0, y0, z0)]
local n = minetest.env:get_node(p0).name
local i = 0 local i = 0
--print(" upper node "..n)
x = 0 if ca_ceilin[n] then
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 -- search for the node to replace
--print(" Searching nodes to replace from "..dump(y0-1).." to "..dump(y_min)) --print(" Searching nodes to replace from "..dump(y0-1).." to "..dump(y_min))
for y1=y0-1,y_min,-1 do local vi = area:index(x0, y0-1, z0)
p0.y=y1 for y1 = y0-1,y_min,-1 do
n = minetest.env:get_node(p0).name if data[vi] == c_wherein then
x = 0 y0 = math.max(y1-deep, y_min)
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 break
end end
vi = vi - area.ystride
end end
local rx=pr:next(radius/2,radius)+1 local rx=pr:next(radius/2,radius)+1
local rz=pr:next(radius/2,radius)+1 local rz=pr:next(radius/2,radius)+1
local ry=pr:next(radius_y/2,radius_y)+1 local ry=pr:next(radius_y/2,radius_y)+1
--print(" area of generation ("..dump(rx)..","..dump(rz)..","..dump(ry)..")") --print(" area of generation ("..dump(rx)..","..dump(rz)..","..dump(ry)..")")
vi = area:index(x0, y0, z0)
for x1=0,rx do for x1=0,rx do
rz = rz + 3 - pr:next(1,6) local vi = vi + x1
if rz < 1 then rz = math.max(rz + 3 - pr:next(1,6), 1)
rz = 1
end
for z1=pr:next(1,3),rz do for z1=pr:next(1,3),rz do
local ry0=ry+ pr:next(1,3) local vi = vi + z1 * area.zstride
for y1=pr:next(1,3),ry0 do for y1 = pr:next(1,3), ry + pr:next(1,3) do
local x2 = x0+x1 local vi = vi + y1 * area.ystride
local y2 = y0+y1 if data[vi] == c_wherein then
local z2 = z0+z1 data[vi] = c_node
local p2 = {x=x2, y=y2, z=z2} i = i + 1
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
end end
end end
end minetest.log("info", " generated "..i.." blocks in ("..x0..","..y0..","..z0..")")
print(" generated "..dump(i).." blocks in ("..dump(x0)..","..dump(y0)..","..dump(z0)..")")
end
end end
end end
--print("generate_ore done") --print("generate_ore done")
end end
local function generate_claylike(name, minp, maxp, seed, chance, minh, maxh, dirt) 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 if maxp.y >= maxh+1 and minp.y <= minh-1 then
local c_ore = minetest.get_content_id(name)
local pr = PseudoRandom(seed) local pr = PseudoRandom(seed)
local divlen = 4 local divlen = 4
local divs = (maxp.x-minp.x)/divlen+1; local divs = (maxp.x-minp.x)/divlen+1;
for yy=minh,maxh do for yy=minh,maxh do
@ -137,30 +118,29 @@ local function generate_claylike(name, minp, maxp, seed, chance, minh, maxh, dir
for divz=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 cx = minp.x + math.floor((divx+0.5)*divlen)
local cz = minp.z + math.floor((divz+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 up = data[varea:index(cx,yy,cz)]
local down = minetest.env:get_node({x=cx,y=yy-1,z=cz}).name local down = data[varea:index(cx,yy-1,cz)]
if ( up == "default:water_source" or up == "air" ) and if ( up == c_water or up == c_air ) and ( down == c_sand or (needs_dirt and (down == c_dirt or down == c_lawn ))) then
( 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 local num_water_around = 0
if minetest.env:get_node({x=cx-divlen*2,y=yy,z=cz}).name == "default:water_source" then if data[varea:index(cx-divlen*2,yy,cz)] == c_water then
num_water_around = num_water_around + 1 end num_water_around = num_water_around + 1
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 end
if is_shallow then 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 x1=-divlen,divlen do
for z1=-divlen,divlen do for z1=-divlen,divlen do
local p={x=cx+x1,y=yy-1,z=cz+z1} local i = varea:index(cx+x1,yy-1,cz+z1)
down = minetest.env:get_node(p).name local down = data[i]
if down == "default:sand" or (dirt == 1 and (down == "default:dirt" or down == "default:dirt_with_grass")) then if down == c_sand or (needs_dirt and (down == c_dirt or down == c_lawn)) then
minetest.env:set_node(p, {name=name}) data[i] = c_ore
end end
end end
end end
@ -173,83 +153,155 @@ local function generate_claylike(name, minp, maxp, seed, chance, minh, maxh, dir
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) local mgparams = minetest.get_mapgen_params()
if maxp.y < height_min or minp.y > height_max then local seed = mgparams.seed
return
end
local y_min = math.max(minp.y, height_min)
local y_max = math.min(maxp.y, height_max)
local volume = (maxp.x-minp.x+1)*(y_max-y_min+1)*(maxp.z-minp.z+1)
local pr = PseudoRandom(seed)
local num_chunks = math.floor(chunks_per_volume * volume)
local inverse_chance = math.floor(chunk_size*chunk_size*chunk_size / ore_per_chunk)
--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})
end
end
end
end
end
end
end
--print("generate_ore done")
end
minetest.register_on_generated(function(minp, maxp, seed)
-- Generate stratus --[[ Generate desert stone with iron in derset.
print("DARKAGE: Generate stratus"); minetest.register_ore({
generate_ore("darkage:desert_stone_with_iron", "default:desert_stone", minp, maxp, seed+0, 1/7/7/7, 3, 5, -15, 40) ore_type = "scatter",
generate_claylike("darkage:mud", minp, maxp, seed+1, 4, 0, 2, 0) ore = "darkage:desert_stone_with_iron",
generate_claylike("darkage:silt", minp, maxp, seed+2, 4, -1, 1, 1) wherein = "default:desert_stone",
generate_stratus("darkage:chalk", clust_scarcity = 12 * 12 * 12,
{"default:stone"}, clust_num_ores = 3,
{"default:stone","air"}, nil, clust_size = 2,
minp, maxp, seed+3, 4, 25, 8, 0, -20, 50) y_min = -1,
generate_stratus("darkage:ors", y_max = 200,
{"default:stone"}, })
{"default:stone","air","default:water_source"}, nil, ]]--
minp, maxp, seed+4, 4, 25, 7, 50, -200, 500)
generate_stratus("darkage:shale", -- Generate chalk inside mountains
{"default:stone"}, minetest.register_ore({
{"default:stone","air"}, nil, 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:needs_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:needs_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) minp, maxp, seed+5, 4, 23, 7, 50, -50, 20)
generate_stratus("darkage:slate",
{"default:stone"}, generate_stratus(data, area, "darkage:slate",
{"default:stone","air"}, nil, c_stone,
stone_and_air_assoc,
minp, maxp, seed+6, 6, 23, 5, 50, -500, 0) minp, maxp, seed+6, 6, 23, 5, 50, -500, 0)
generate_stratus("darkage:schist",
{"default:stone"}, generate_stratus(data, area, "darkage:schist",
{"default:stone","air"}, nil, c_stone,
stone_and_air_assoc,
minp, maxp, seed+7, 6, 19, 6, 50, -31000, -10) minp, maxp, seed+7, 6, 19, 6, 50, -31000, -10)
generate_stratus("darkage:basalt",
{"default:stone"}, generate_stratus(data, area, "darkage:basalt",
{"default:stone","air"}, nil, c_stone,
stone_and_air_assoc,
minp, maxp, seed+8, 5, 20, 5, 20, -31000, -50) minp, maxp, seed+8, 5, 20, 5, 20, -31000, -50)
generate_stratus("darkage:marble",
{"default:stone"}, generate_stratus(data, area, "darkage:marble",
{"default:stone","air"}, nil, c_stone,
stone_and_air_assoc,
minp, maxp, seed+9, 4, 25, 6, 50, -31000, -75) minp, maxp, seed+9, 4, 25, 6, 50, -31000, -75)
generate_stratus("darkage:serpentine",
{"default:stone"}, generate_stratus(data, area, "darkage:serpentine",
{"default:stone","air"}, nil, c_stone,
stone_and_air_assoc,
minp, maxp, seed+10, 4, 28, 8, 50, -31000, -350) minp, maxp, seed+10, 4, 28, 8, 50, -31000, -350)
generate_stratus("darkage:gneiss",
{"default:stone"}, generate_stratus(data, area, "darkage:gneiss",
{"default:stone","air"}, nil, c_stone,
stone_and_air_assoc,
minp, maxp, seed+11, 4, 15, 5, 50, -31000, -250) minp, maxp, seed+11, 4, 15, 5, 50, -31000, -250)
end)
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)

470
nodes.lua Normal file
View File

@ -0,0 +1,470 @@
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) -- Registration of Stairs (Alphabetical order)
local recipeitem = modname..":"..item darkage.register_stairs("darkage:basalt")
local itemname = modname..":stair_"..item darkage.register_stairs("darkage:basalt_brick")
minetest.register_node(itemname, { darkage.register_stairs("darkage:basalt_rubble")
description = description.." stair", darkage.register_stairs("darkage:chalked_bricks")
drawtype = "nodebox", darkage.register_stairs("darkage:gneiss")
tiles = images, darkage.register_stairs("darkage:gneiss_brick")
paramtype = "light", darkage.register_stairs("darkage:gneiss_rubble")
paramtype2 = "facedir", darkage.register_stairs("darkage:marble")
is_ground_content = true, darkage.register_stairs("darkage:marble_tile")
groups = groups, darkage.register_stairs("darkage:old_tuff_bricks")
node_box = { darkage.register_stairs("darkage:ors")
type = "fixed", darkage.register_stairs("darkage:ors_brick")
fixed = { darkage.register_stairs("darkage:ors_rubble")
{-0.5, -0.5, -0.5, 0.5, 0, 0.5}, darkage.register_stairs("darkage:rhyolitic_tuff")
{-0.5, 0, 0, 0.5, 0.5, 0.5}, 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: 592 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 601 B

After

Width:  |  Height:  |  Size: 388 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 429 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 535 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 705 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 663 B

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: 552 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: 693 B

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: 682 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 819 B

After

Width:  |  Height:  |  Size: 654 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 716 B

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: 875 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.

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 669 B

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