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

73 Commits
v1.3 ... master

Author SHA1 Message Date
c591d47cf8 Update README.md
Specify license
2025-03-16 09:22:34 +01:00
c6d4e81bb5 Create LICENSE.txt
Switch from WTFPL to MIT license.

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

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

21
LICENSE.txt Normal file
View File

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

370
README.md
View File

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

View File

@ -1,99 +1,99 @@
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")
minetest.register_alias("darkage:stair_desert_stone_cobble_outer_inverted","default:stair_desert_stonebrick_outer_inverted")
minetest.register_alias("darkage:stair_desert_stone_cobble_half","default:stair_desert_stonebrick_half")
minetest.register_alias("darkage:stair_desert_stone_cobble_wall_half_inverted","default:stair_desert_stonebrick_wall_half_inverted")
minetest.register_alias("darkage:micro_desert_stone_cobble_bottom","default:micro_desert_stonebrick_bottom")
minetest.register_alias("darkage:panel_desert_stone_cobble_bottom","default:panel_desert_stonebrick_bottom")
minetest.register_alias("darkage:stair_desert_stone_cobble_half_inverted","default:stair_desert_stonebrick_half_inverted")
minetest.register_alias("darkage:micro_desert_stone_cobble_top","default:micro_desert_stonebrick_top")
minetest.register_alias("darkage:slab_desert_stone_cobble_quarter_wall","default:slab_desert_stonebrick_quarter_wall")
minetest.register_alias("darkage:stair_desert_stone_cobble_right_half","default:stair_desert_stonebrick_right_half")
minetest.register_alias("darkage:stair_desert_stone_cobble_right_half_inverted","default:stair_desert_stonebrick_right_half_inverted")
minetest.register_alias("darkage:slab_desert_stone_cobble_three_quarter","default:slab_desert_stonebrick_three_quarter")
minetest.register_alias("darkage:panel_desert_stone_cobble_top","default:panel_desert_stonebrick_top")
minetest.register_alias("darkage:stair_desert_stone_cobble_inner","default:stair_desert_stonebrick_inner")
minetest.register_alias("darkage:stair_desert_stone_cobble","default:stair_desert_stonebrick")
minetest.register_alias("darkage:panel_desert_stone_cobble_vertical","default:panel_desert_stonebrick_vertical")
minetest.register_alias("darkage:stair_desert_stone_cobble_inner_inverted","default:stair_desert_stonebrick_inner_inverted")
minetest.register_alias("darkage:slab_desert_stone_cobble_three_quarter_inverted","default:slab_desert_stonebrick_three_quarter_inverted")
ra(originmod.. ":stair_" ..originnode.."_half", newmod..":stair_" ..newnode.."_half")
ra(originmod.. ":stair_" ..originnode.."_right_half", newmod..":stair_" ..newnode.."_right_half")
minetest.register_alias("darkage:stair_sandstone_cobble_wall_half","default:stair_sandstonebrick_wall_half") ra(originmod.. ":stair_" ..originnode.."_alt_1", newmod..":stair_" ..newnode.."_alt_1")
minetest.register_alias("darkage:slab_sandstone_cobble_inverted","default:slab_sandstonebrick_inverted") ra(originmod.. ":stair_" ..originnode.."_alt_2", newmod..":stair_" ..newnode.."_alt_2")
minetest.register_alias("darkage:stair_sandstone_cobble_inverted","default:stair_sandstonebrick_inverted") ra(originmod.. ":stair_" ..originnode.."_alt_4", newmod..":stair_" ..newnode.."_alt_4")
minetest.register_alias("darkage:stair_sandstone_cobble_outer","default:stair_sandstonebrick_outer") ra(originmod.. ":stair_" ..originnode.."_alt", newmod..":stair_" ..newnode.."_alt")
minetest.register_alias("darkage:slab_sandstone_cobble_three_quarter_wall","default:slab_sandstonebrick_three_quarter_wall") ra(originmod.. ":slope_" ..originnode, newmod..":slope_" ..newnode)
minetest.register_alias("darkage:slab_sandstone_cobble_quarter","default:slab_sandstonebrick_quarter") ra(originmod.. ":slope_" ..originnode.."_half", newmod..":slope_" ..newnode.."_half")
minetest.register_alias("darkage:slab_sandstone_cobble","default:slab_sandstonebrick") ra(originmod.. ":slope_" ..originnode.."_half_raised", newmod..":slope_" ..newnode.."_half_raised")
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 ra(originmod.. ":slope_" ..originnode.."_inner", newmod..":slope_" ..newnode.."_inner")
--minetest.register_alias(oldname,newname) ra(originmod.. ":slope_" ..originnode.."_inner_half", newmod..":slope_" ..newnode.."_inner_half")
ra(originmod.. ":slope_" ..originnode.."_inner_half_raised", newmod..":slope_" ..newnode.."_inner_half_raised")
ra(originmod.. ":slope_" ..originnode.."_inner_cut", newmod..":slope_" ..newnode.."_inner_cut")
ra(originmod.. ":slope_" ..originnode.."_inner_cut_half", newmod..":slope_" ..newnode.."_inner_cut_half")
ra(originmod.. ":slope_" ..originnode.."_inner_cut_half_raised", newmod..":slope_" ..newnode.."_inner_cut_half_raised")
ra(originmod.. ":slope_" ..originnode.."_outer", newmod..":slope_" ..newnode.."_outer")
ra(originmod.. ":slope_" ..originnode.."_outer_half", newmod..":slope_" ..newnode.."_outer_half")
ra(originmod.. ":slope_" ..originnode.."_outer_half_raised", newmod..":slope_" ..newnode.."_outer_half_raised")
ra(originmod.. ":slope_" ..originnode.."_outer_cut", newmod..":slope_" ..newnode.."_outer_cut")
ra(originmod.. ":slope_" ..originnode.."_outer_cut_half", newmod..":slope_" ..newnode.."_outer_cut_half")
ra(originmod.. ":slope_" ..originnode.."_outer_cut_half_raised", newmod..":slope_" ..newnode.."_outer_cut_half_raised")
ra(originmod.. ":slope_" ..originnode.."_cut", newmod..":slope_" ..newnode.."_cut")
end
-- Ors Brick
minetest.register_alias("darkage:ors_cobble", "darkage:ors_brick")
minetest.register_alias("stairs:slab_ors_cobble", "stairs:slab_ors_brick")
minetest.register_alias("stairs:stair_ors_cobble", "stairs:stair_ors_brick")
register_moreblocks_alias("darkage:ors_cobble", "darkage:ors_brick")
minetest.register_alias("darkage:ors_cobble_wall", "darkage:ors_rubble_wall")
-- Slate Tile
minetest.register_alias( "darkage:slate_tale", "darkage:slate_tile") minetest.register_alias( "darkage:slate_tale", "darkage:slate_tile")
--slab register_moreblocks_alias("darkage:slate_tale", "darkage:slate_tile")
minetest.register_alias("darkage:slab_slate_tale","darkage:slab_slate_tile")
minetest.register_alias("darkage:slab_slate_tale_inverted","darkage:slab_slate_tile_inverted")
minetest.register_alias("darkage:slab_slate_tale_wall","darkage:slab_slate_tile_wall") -- Basalt Brick
minetest.register_alias("darkage:slab_slate_tale_quarter","darkage:slab_slate_tile_quarter") minetest.register_alias("darkage:basalt_cobble", "darkage:basalt_brick")
minetest.register_alias("darkage:slab_slate_tale_quarter_inverted","darkage:slab_slate_tile_quarter_inverted") register_moreblocks_alias("darkage:basalt_cobble", "darkage:basalt_brick")
minetest.register_alias("darkage:slab_slate_tale_quarter_wall","darkage:slab_slate_tile_quarter_wall") minetest.register_alias("darkage:basalt_cobble_wall", "darkage:basalt_rubble_wall")
minetest.register_alias("darkage:slab_slate_tale_three_quarter","darkage:slab_slate_tile_three_quarter")
minetest.register_alias("darkage:slab_slate_tale_three_quarter_inverted","darkage:slab_slate_tile_three_quarter_inverted") -- Slate Brick
minetest.register_alias("darkage:slab_slate_tale_three_quarter_wall","darkage:slab_slate_tile_three_quarter_wall") minetest.register_alias("darkage:slate_cobble", "darkage:slate_brick")
--stair minetest.register_alias("stairs:slab_slate_cobble", "stairs:slab_slate_brick")
minetest.register_alias("darkage:stair_slate_tale","darkage:stair_slate_tile") minetest.register_alias("stairs:stair_slate_cobble", "stairs:stair_slate_brick")
minetest.register_alias("darkage:stair_slate_tale_inverted","darkage:stair_slate_tile_inverted") register_moreblocks_alias("darkage:slate_cobble", "darkage:slate_brick")
minetest.register_alias("darkage:stair_slate_tale_wall","darkage:stair_slate_tile_wall") minetest.register_alias("darkage:slate_cobble_wall", "darkage:slate_rubble_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") -- Gneiss Brick
minetest.register_alias("darkage:stair_slate_tale_half","darkage:stair_slate_tile_half") minetest.register_alias("darkage:gneiss_cobble", "darkage:gneiss_brick")
minetest.register_alias("darkage:stair_slate_tale_half_inverted","darkage:stair_slate_tile_half_inverted") minetest.register_alias("stairs:slab_gneiss_cobble", "stairs:slab_gneiss_brick")
minetest.register_alias("darkage:stair_slate_tale_right_half","darkage:stair_slate_tile_right_half") minetest.register_alias("stairs:stair_gneiss_cobble", "stairs:stair_gneiss_brick")
minetest.register_alias("darkage:stair_slate_tale_right_half_inverted","darkage:stair_slate_tile_right_half_inverted") register_moreblocks_alias("darkage:gneis_cobble", "darkage:gneiss_brick")
minetest.register_alias("darkage:stair_slate_tale_wall_half","darkage:stair_slate_tile_wall_half") minetest.register_alias("darkage:gneiss_cobble_wall", "darkage:gneiss_rubble_wall")
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") -- Straw
minetest.register_alias("darkage:stair_slate_tale_inner_inverted","darkage:stair_slate_tile_inner_inverted") register_moreblocks_alias("darkage:straw", "moreblocks:straw")
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, The modname is automatically the mod that currently calls this function.
sunlight_propagates = true, e.g. if you call darkage.register_reinforce from the mod medieval modname will be medieval
is_ground_content = true, ]]
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, function darkage.register_reinforce(name, craftItem, nodedef)
sounds = default.node_sound_glass_defaults(), 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({ minetest.register_craft({
output = 'darkage:glow_glass 1', 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({
output = craftItem,
recipe = {
{ reinforced_tname },
} }
}) })
-- Reinforced Slope
local slope = table.copy(nodedef);
local slope_tname = modname..":reinforced_"..tname.."_slope"
slope.description = "Reinforced "..name.." Slope\nHint: use the screwdriver to rotate."
slope.paramtype2 = "facedir";
local slope_tile_extend = {"^darkage_reinforce_right.png" , "^darkage_reinforce_right.png" , --top ,down
"^darkage_reinforce_right.png" , "^darkage_reinforce_right.png" , --right, left
"^darkage_reinforce_left.png" , "^darkage_reinforce_left.png"} -- front, back
for i=1,6 do
local tile = slope.tiles[i] or nodedef.tiles[1]; -- There have to be at least one tile.
slope.tiles[i] = tile ..slope_tile_extend[i]
end
minetest.register_node(slope_tname, slope)
minetest.register_craft({ minetest.register_craft({
output = 'darkage:glass 1', output = slope_tname,
recipe = { recipe = {
{'darkage:glow_glass'}, {craftItem, craftItem, "group:stick"},
{craftItem, "group:stick", craftItem},
{"group:stick", craftItem, craftItem},
}
})
-- Flipped recipe
minetest.register_craft({
output = slope_tname,
recipe = {
{"group:stick", craftItem, craftItem},
{craftItem, "group:stick", craftItem},
{craftItem, craftItem, "group:stick"},
}
})
-- Recycling
minetest.register_craft({
output = craftItem,
recipe = {
{ slope_tname }
} }
}) })
-- Alias to convert old nodes
minetest.register_alias(modname..":reinforced_"..tname.."_right", slope_tname)
minetest.register_alias(modname..":reinforced_"..tname.."_left", slope_tname)
-- Arrow bar
local arrow = table.copy(nodedef)
local arrow_tname = modname..":reinforced_"..tname.."_arrow"
arrow.paramtype2 = "facedir";
arrow.description = "Reinforced "..name.." Arrow \nHint: use the screwdriver to rotate."
local arrow_tile_extend = {"" , "" , --top ,down
"^(darkage_reinforce_arrow.png^[transformR90)" , "^(darkage_reinforce_arrow.png^[transformR270)" , --right, left
"^(darkage_reinforce_arrow.png^[transformR180)" , "^darkage_reinforce_arrow.png"} -- front, back
for i=1,6 do
local tile = arrow.tiles[i] or arrow.tiles[1]; -- There have to be at least one tile.
arrow.tiles[i] = tile .. arrow_tile_extend[i]
end
minetest.register_node(arrow_tname, arrow)
minetest.register_craft({ minetest.register_craft({
output = 'darkage:glass 8', output = arrow_tname,
recipe = { recipe = {
{'default:glass', 'default:steel_ingot', 'default:glass'}, {craftItem, "group:stick", craftItem},
{'default:steel_ingot', 'default:glass', 'default:steel_ingot'}, {"group:stick", craftItem, "group:stick"},
{'default:glass', 'default:steel_ingot', 'default:glass'}, {"group:stick", craftItem, "group:stick"},
}
})
-- Recycling
minetest.register_craft({
output = craftItem,
recipe = {
{ arrow_tname }
} }
}) })
minetest.register_node("darkage:reinforced_chalk", { -- Reinforced Bars
description = "Reinforced Chalk", local bars = table.copy(nodedef)
tiles = {"darkage_chalk.png^darkage_reinforce.png"}, local bars_tname = modname..":reinforced_"..tname.."_bars"
is_ground_content = true, 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"},
} }
}) })

279
glass.lua Normal file
View File

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

690
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,64 @@ 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"},
}
})

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)",
blocks, volume, maxp.x-minp.x+1, y_max-y_min+1, maxp.z-minp.z+1))
for i = 1,blocks do for i = 1,blocks do
local x = pr:next(1,stratus_chance) if pr:next(1,stratus_chance) == 1 then
if x == 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))
local vi = area:index(x0, y0-1, z0)
for y1 = y0-1,y_min,-1 do for y1 = y0-1,y_min,-1 do
p0.y=y1 if data[vi] == c_wherein then
n = minetest.env:get_node(p0).name y0 = math.max(y1-deep, y_min)
x = 0
for k, v in ipairs(wherein) do
if n == v then
x = 1
break
end
end
if x == 1 then
y0=y1-deep
if y0 < y_min then
y0 = y_min
end
break 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}
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 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,153 @@ 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 seed = minetest.get_mapgen_setting("seed")
if maxp.y < height_min or minp.y > height_max then
return
end
local y_min = math.max(minp.y, height_min)
local y_max = math.min(maxp.y, height_max)
local volume = (maxp.x-minp.x+1)*(y_max-y_min+1)*(maxp.z-minp.z+1)
local pr = PseudoRandom(seed)
local num_chunks = math.floor(chunks_per_volume * volume)
local inverse_chance = math.floor(chunk_size*chunk_size*chunk_size / ore_per_chunk)
--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 chalk inside mountains
generate_stratus("darkage:shale", minetest.register_ore({
{"default:stone"}, ore_type = "sheet",
{"default:stone","air"}, nil, ore = "darkage:chalk",
wherein = {"default:stone"},
column_height_max = 30,
column_height_min = 20,
y_min = -20,
y_max = 50,
noise_threshold = 0.45,
noise_params = {
offset = 0.35,
scale = 0.2,
spread = {x = 30, y = 30, z = 30},
octaves = 1,
persistence = 0.6
},
})
minetest.register_ore({
ore_type = "sheet",
ore = "darkage:tuff",
wherein = {"default:stone", "default:dirt", "default:gravel", "default:stone_with_coal"},
column_height_max = 20,
column_height_min = 15,
y_min = -200,
y_max = 200,
noise_threshold = 0.5,
noise_params = {
offset = 0.35,
scale = 0.19,
seed = seed+12,
spread = {x = 45, y = 45, z = 45},
octaves = 1,
persistence = 0.6
},
})
minetest.register_ore({
ore_type = "sheet",
ore = "darkage:rhyolitic_tuff",
wherein = {"default:stone", "default:dirt", "default:gravel", "default:stone_with_coal"},
column_height_max = 20,
column_height_min = 15,
y_min = -2000,
y_max = 200,
noise_threshold = 0.53,
noise_params = {
offset = 0.35,
scale = 0.2,
seed = seed+13,
spread = {x = 100, y = 100, z = 100},
octaves = 1,
persistence = 0.6
},
})
--old red sandstone
minetest.register_ore({
ore_type = "sheet",
ore = "darkage:ors",
wherein = {"default:stone", "default:dirt", "default:gravel", "default:stone_with_coal"},
column_height_max = 8,
column_height_min = 6,
y_min = -200,
y_max = 500,
noise_threshold = 0.49,
noise_params = {
offset = 0.28,
scale = 0.3,
seed = seed+4,
spread = {x = 10, y = 10, z = 10},
octaves = 1,
persistence = 0.6
},
})
-- Generate strati
local dbuf = {} --for mapgen
local function generate_strati(minp, maxp, seed)
local t1 = os.clock()
local vm, emin, emax = minetest.get_mapgen_object("voxelmanip")
local area = VoxelArea:new({MinEdge = emin, MaxEdge = emax})
local data = vm:get_data(dbuf)
generate_claylike(data, area, "darkage:mud", minp, maxp, seed+1, 4, 0, 2, false)
generate_claylike(data, area, "darkage:silt", minp, maxp, seed+2, 4, -1, 1, true)
-- TODO: Maybe realize the following stuff with register ore. somehow.
generate_stratus(data, area, "darkage:shale",
c_stone,
stone_and_air_assoc,
minp, maxp, seed+5, 4, 23, 7, 50, -50, 20) 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)

6
mod.conf Normal file
View File

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

469
nodes.lua Normal file
View File

@ -0,0 +1,469 @@
local function get_node_drops(fullRockNode, cobbleRockNode)
return {
max_items = 1,
items = {
{
-- drop the cobble variant with 1/3 chance
items = {cobbleRockNode},
rarity = 3,
},
{
-- drop the full node with 2/3 chance
items = {fullRockNode},
}
}
}
end
----------
-- Nodes
----------
minetest.register_node("darkage:adobe", {
description = "Adobe",
tiles = {"darkage_adobe.png"},
is_ground_content = true,
groups = {crumbly=3},
sounds = default.node_sound_sand_defaults(),
})
--[[
Basalt
]]
minetest.register_node("darkage:basalt", {
description = "Basalt",
tiles = {"darkage_basalt.png"},
is_ground_content = true,
drop = get_node_drops("darkage:basalt","darkage:basalt_rubble"),
groups = {cracky = 3, stone = 1},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:basalt_rubble", {
description = "Basalt Rubble",
tiles = {"darkage_basalt_rubble.png"},
is_ground_content = false,
groups = {cracky = 3, stone = 2},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:basalt_brick", {
description = "Basalt Brick",
tiles = {"darkage_basalt_brick.png"},
is_ground_content = false,
groups = {cracky = 2, stone = 1},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:basalt_block", {
description = "Basalt Block",
tiles = {"darkage_basalt_block.png"},
is_ground_content = false,
groups = {cracky = 2, stone = 1},
sounds = default.node_sound_stone_defaults()
})
--[[
Chalk
]]
minetest.register_node("darkage:chalk", {
description = "Chalk",
tiles = {"darkage_chalk.png"},
is_ground_content = true,
drop = 'darkage:chalk_powder 2',
groups = {crumbly=2, cracky=2, not_cuttable=1},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:cobble_with_plaster", {
description = "Cobblestone with Plaster",
tiles = {"darkage_chalk.png^(default_cobble.png^[mask:darkage_plaster_mask_D.png)", "darkage_chalk.png^(default_cobble.png^[mask:darkage_plaster_mask_B.png)",
"darkage_chalk.png^(default_cobble.png^[mask:darkage_plaster_mask_C.png)", "darkage_chalk.png^(default_cobble.png^[mask:darkage_plaster_mask_A.png)",
"default_cobble.png", "darkage_chalk.png"},
is_ground_content = false,
paramtype2 = "facedir",
drop = 'default:cobble',
groups = {cracky=3, not_cuttable=1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("darkage:chalked_bricks_with_plaster", {
description = "Chalked Bricks with Plaster",
tiles = {"darkage_chalk.png^(darkage_chalked_bricks.png^[mask:darkage_plaster_mask_D.png)", "darkage_chalk.png^(darkage_chalked_bricks.png^[mask:darkage_plaster_mask_B.png)",
"darkage_chalk.png^(darkage_chalked_bricks.png^[mask:darkage_plaster_mask_C.png)", "darkage_chalk.png^(darkage_chalked_bricks.png^[mask:darkage_plaster_mask_A.png)",
"darkage_chalked_bricks.png", "darkage_chalk.png"},
is_ground_content = false,
paramtype2 = "facedir",
drop = 'default:cobble',
groups = {cracky=3, not_cuttable=1},
sounds = default.node_sound_stone_defaults(),
})
--lbm to convert the old cobble_with_plaster to the new chalked_bricks to keep texture consistent
minetest.register_lbm({
name="darkage:convert_cobble_with_plaster",
nodenames= "darkage:cobble_with_plaster",
run_at_every_load = false,
action = function(pos,node)
node.name = "darkage:chalked_bricks_with_plaster"
minetest.swap_node(pos, node)
end
})
minetest.register_node("darkage:desert_stone_with_iron", {
description = "Desert Iron Ore",
tiles = {"default_desert_stone.png^default_mineral_iron.png"},
is_ground_content = true,
groups = {cracky=3, not_cuttable=1},
drop = 'default:iron_lump',
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("darkage:darkdirt", {
description = "Dark Dirt",
tiles = {"darkage_darkdirt.png"},
is_ground_content = false,
groups = {crumbly=2, not_cuttable=1},
sounds = default.node_sound_dirt_defaults(),
})
minetest.register_node("darkage:dry_leaves", {
description = "Dry Leaves",
tiles = {"darkage_dry_leaves.png"},
is_ground_content = false,
paramtype = "light",
groups = {snappy=3, flammable=2},
sounds = default.node_sound_leaves_defaults()
})
--[[
Gneiss
]]
minetest.register_node("darkage:gneiss", {
description = "Gneiss",
tiles = {"darkage_gneiss.png"},
is_ground_content = true,
groups = {cracky = 3, stone = 1},
drop = get_node_drops("darkage:gneiss", "darkage:gneiss_rubble"),
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:gneiss_rubble", {
description = "Gneiss Rubble",
tiles = {"darkage_gneiss_rubble.png"},
is_ground_content = false,
groups = {cracky = 3, stone = 2},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:gneiss_brick", {
description = "Gneiss Brick",
tiles = {"darkage_gneiss_brick.png"},
is_ground_content = false,
groups = {cracky = 2, stone = 1},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:gneiss_block", {
description = "Gneiss Block",
tiles = {"darkage_gneiss_block.png"},
is_ground_content = false,
groups = {cracky = 2, stone = 1},
sounds = default.node_sound_stone_defaults()
})
--[[
Marble
]]
minetest.register_node("darkage:marble", {
description = "Marble",
tiles = {"darkage_marble.png"},
is_ground_content = true,
groups = {cracky = 3, stone = 1},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:marble_tile", {
description = "Marble Tile",
tiles = {"darkage_marble_tile.png"},
is_ground_content = false,
groups = {cracky=2},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:mud", {
description = "Mud",
tiles = {"darkage_mud_up.png","darkage_mud.png"},
is_ground_content = true,
groups = {crumbly=3},
drop = 'darkage:mud_lump 4',
sounds = default.node_sound_dirt_defaults({
footstep = "",
}),
})
--[[
Old Red Sandstone
]]
minetest.register_node("darkage:ors", {
description = "Old Red Sandstone",
tiles = {"darkage_ors.png"},
is_ground_content = true,
drop = "darkage:ors_rubble",
groups = {cracky=2},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:ors_rubble", {
description = "Old Red Sandstone Rubble",
tiles = {"darkage_ors_rubble.png"},
is_ground_content = true,
groups = {cracky = 3, crumbly=2, stone = 2},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:ors_brick", {
description = "Old Red Sandstone Brick",
tiles = {"darkage_ors_brick.png"},
is_ground_content = false,
groups = {cracky = 3, stone = 2},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:ors_block", {
description = "Old Red Sandstone Block",
tiles = {"darkage_ors_block.png"},
is_ground_content = false,
groups = {cracky = 3, stone = 2},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:serpentine", {
description = "Serpentine",
tiles = {"darkage_serpentine.png"},
is_ground_content = true,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:shale", {
description = "Shale",
tiles = {"darkage_shale.png","darkage_shale.png","darkage_shale_side.png"},
is_ground_content = true,
groups = {crumbly=2,cracky=2},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:schist", {
description = "Schist",
tiles = {"darkage_schist.png"},
is_ground_content = true,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:silt", {
description = "Silt",
tiles = {"darkage_silt.png"},
is_ground_content = true,
groups = {crumbly=3},
drop = 'darkage:silt_lump 4',
sounds = default.node_sound_dirt_defaults({
footstep = "",
}),
})
--[[
Slate
]]
minetest.register_node("darkage:slate", {
description = "Slate",
tiles = {"darkage_slate.png","darkage_slate.png","darkage_slate_side.png"},
is_ground_content = true,
drop = 'darkage:slate_rubble',
groups = {cracky=2},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:slate_rubble", {
description = "Slate Rubble",
tiles = {"darkage_slate_rubble.png"},
is_ground_content = false,
groups = {cracky=2},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:slate_tile", {
description = "Slate Tile",
tiles = {"darkage_slate_tile.png"},
is_ground_content = false,
groups = {cracky=2},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:slate_block", {
description = "Slate Block",
tiles = {"darkage_slate_block.png"},
is_ground_content = false,
groups = {cracky=2},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:slate_brick", {
description = "Slate Brick",
tiles = {"darkage_slate_brick.png"},
is_ground_content = false,
groups = {cracky=2},
sounds = default.node_sound_stone_defaults()
})
-- Removed straw, because its in minetst game. Registering alias for compatibility reasons
minetest.register_alias("darkage:straw", "farming:straw")
minetest.register_node("darkage:stone_brick", {
description = "Stone Brick",
tiles = {"darkage_stone_brick.png"},
is_ground_content = false,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:straw_bale", {
description = "Straw Bale",
tiles = {"darkage_straw_bale.png"},
is_ground_content = false,
drop = 'farming:straw 4',
groups = {snappy=2, flammable=2},
sounds = default.node_sound_leaves_defaults(),
})
--[[
Tuff
]]
minetest.register_node("darkage:tuff", {
description = "Tuff",
tiles = {"darkage_tuff.png"},
is_ground_content = true,
legacy_mineral = true,
groups = {cracky = 3, stone = 1},
drop = {
max_items = 1,
items = {
{
-- player get tuff node if he is lucky :)
items = {'darkage:tuff'},
rarity = 3,
},
{
-- player will get rubble with 2/3 chance
items = {'darkage:tuff_rubble'},
}
}
},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:tuff_bricks", {
description = "Tuff Bricks",
tiles = {"darkage_tuff_bricks.png"},
is_ground_content = false,
groups = {cracky=2},
sounds = default.node_sound_stone_defaults()
})
-- abm to turn Tuff bricks to old Tuff bricks if water is nearby
minetest.register_abm({
nodenames = {"darkage:tuff_bricks"},
neighbors = {"group:water"},
interval = 16,
chance = 200,
catch_up = false,
action = function(pos, node)
minetest.set_node(pos, {name = "darkage:old_tuff_bricks"})
end
})
minetest.register_node("darkage:tuff_rubble", {
description = "Tuff Rubble",
tiles = {"darkage_tuff_rubble.png"},
groups = {crumbly = 2, falling_node = 1},
sounds = default.node_sound_gravel_defaults(),
})
--[[
Rhyolitic Tuff
]]
minetest.register_node("darkage:rhyolitic_tuff", {
description = "Rhyolitic Tuff",
tiles = {"darkage_rhyolitic_tuff.png"},
is_ground_content = true,
legacy_mineral = true,
groups = {cracky = 3, stone = 1},
drop = {
max_items = 1,
items = {
{
-- player get tuff node if he is lucky :)
items = {'darkage:rhyolitic_tuff'},
rarity = 3,
},
{
-- player will get rubble with 2/3 chance
items = {'darkage:rhyolitic_tuff_rubble'},
}
}
},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:rhyolitic_tuff_bricks", {
description = "Rhyolitic Tuff Bricks",
tiles = {"darkage_rhyolitic_tuff_bricks.png"},
is_ground_content = false,
groups = {cracky=2},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:old_tuff_bricks", {
description = "Old Tuff Bricks",
tiles = {"darkage_old_tuff_bricks.png"},
is_ground_content = false,
groups = {cracky=3},
sounds = default.node_sound_stone_defaults()
})
minetest.register_node("darkage:rhyolitic_tuff_rubble", {
description = "Rhyolitic Tuff Rubble",
tiles = {"darkage_rhyolitic_tuff_rubble.png"},
groups = {crumbly = 2, falling_node = 1},
sounds = default.node_sound_gravel_defaults(),
})
--[[
add a node using the cobble texture that was introduced in minetest 0.4.dev-20120408 and got removed in 0.4.7
It has a nice contrast together the stone bricks, so I think it could get usefull.
]]
minetest.register_node("darkage:chalked_bricks", {
description = "Chalked Brick",
tiles = {"darkage_chalked_bricks.png"},
is_ground_content = false,
groups = {cracky = 2, stone = 1},
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craft({
output = "darkage:chalked_bricks 4",
recipe = {
{"default:stone", "default:stone", "darkage:chalk_powder"},
{"darkage:chalk_powder", "darkage:chalk_powder", "darkage:chalk_powder"},
{"default:stone", "darkage:chalk_powder", "default:stone"},
}
})

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 635 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 609 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 732 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 606 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 535 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 903 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 555 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 555 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 656 B

BIN
screenshot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 260 KiB

View File

@ -1,155 +1,29 @@
darkage = {}
function darkage.register_stairs(modname, item, groups, images, description) -- 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: 964 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 601 B

After

Width:  |  Height:  |  Size: 728 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 728 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 705 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 701 B

After

Width:  |  Height:  |  Size: 577 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 758 B

After

Width:  |  Height:  |  Size: 617 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 230 B

After

Width:  |  Height:  |  Size: 164 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 686 B

After

Width:  |  Height:  |  Size: 953 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 618 B

After

Width:  |  Height:  |  Size: 450 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 407 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 846 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 772 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 764 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 760 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 766 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 980 B

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 603 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 446 B

After

Width:  |  Height:  |  Size: 177 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 385 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 381 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 418 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 499 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 347 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 697 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 846 B

After

Width:  |  Height:  |  Size: 793 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 872 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 802 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 951 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 922 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 619 B

After

Width:  |  Height:  |  Size: 566 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 577 B

After

Width:  |  Height:  |  Size: 457 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 202 B

After

Width:  |  Height:  |  Size: 122 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 747 B

After

Width:  |  Height:  |  Size: 516 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 358 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 739 B

After

Width:  |  Height:  |  Size: 275 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 785 B

After

Width:  |  Height:  |  Size: 637 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 950 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 914 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 670 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 891 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 596 B

After

Width:  |  Height:  |  Size: 515 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 210 B

After

Width:  |  Height:  |  Size: 140 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 709 B

After

Width:  |  Height:  |  Size: 474 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 819 B

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 692 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 846 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 805 B

After

Width:  |  Height:  |  Size: 686 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 454 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 481 B

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