Birthstones mod for Minetest
22
.gitattributes
vendored
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
# Auto detect text files and perform LF normalization
|
||||||
|
* text=auto
|
||||||
|
|
||||||
|
# Custom for Visual Studio
|
||||||
|
*.cs diff=csharp
|
||||||
|
*.sln merge=union
|
||||||
|
*.csproj merge=union
|
||||||
|
*.vbproj merge=union
|
||||||
|
*.fsproj merge=union
|
||||||
|
*.dbproj merge=union
|
||||||
|
|
||||||
|
# Standard to msysgit
|
||||||
|
*.doc diff=astextplain
|
||||||
|
*.DOC diff=astextplain
|
||||||
|
*.docx diff=astextplain
|
||||||
|
*.DOCX diff=astextplain
|
||||||
|
*.dot diff=astextplain
|
||||||
|
*.DOT diff=astextplain
|
||||||
|
*.pdf diff=astextplain
|
||||||
|
*.PDF diff=astextplain
|
||||||
|
*.rtf diff=astextplain
|
||||||
|
*.RTF diff=astextplain
|
163
.gitignore
vendored
Normal file
@ -0,0 +1,163 @@
|
|||||||
|
#################
|
||||||
|
## Eclipse
|
||||||
|
#################
|
||||||
|
|
||||||
|
*.pydevproject
|
||||||
|
.project
|
||||||
|
.metadata
|
||||||
|
bin/
|
||||||
|
tmp/
|
||||||
|
*.tmp
|
||||||
|
*.bak
|
||||||
|
*.swp
|
||||||
|
*~.nib
|
||||||
|
local.properties
|
||||||
|
.classpath
|
||||||
|
.settings/
|
||||||
|
.loadpath
|
||||||
|
|
||||||
|
# External tool builders
|
||||||
|
.externalToolBuilders/
|
||||||
|
|
||||||
|
# Locally stored "Eclipse launch configurations"
|
||||||
|
*.launch
|
||||||
|
|
||||||
|
# CDT-specific
|
||||||
|
.cproject
|
||||||
|
|
||||||
|
# PDT-specific
|
||||||
|
.buildpath
|
||||||
|
|
||||||
|
|
||||||
|
#################
|
||||||
|
## Visual Studio
|
||||||
|
#################
|
||||||
|
|
||||||
|
## Ignore Visual Studio temporary files, build results, and
|
||||||
|
## files generated by popular Visual Studio add-ons.
|
||||||
|
|
||||||
|
# User-specific files
|
||||||
|
*.suo
|
||||||
|
*.user
|
||||||
|
*.sln.docstates
|
||||||
|
|
||||||
|
# Build results
|
||||||
|
[Dd]ebug/
|
||||||
|
[Rr]elease/
|
||||||
|
*_i.c
|
||||||
|
*_p.c
|
||||||
|
*.ilk
|
||||||
|
*.meta
|
||||||
|
*.obj
|
||||||
|
*.pch
|
||||||
|
*.pdb
|
||||||
|
*.pgc
|
||||||
|
*.pgd
|
||||||
|
*.rsp
|
||||||
|
*.sbr
|
||||||
|
*.tlb
|
||||||
|
*.tli
|
||||||
|
*.tlh
|
||||||
|
*.tmp
|
||||||
|
*.vspscc
|
||||||
|
.builds
|
||||||
|
*.dotCover
|
||||||
|
|
||||||
|
## TODO: If you have NuGet Package Restore enabled, uncomment this
|
||||||
|
#packages/
|
||||||
|
|
||||||
|
# Visual C++ cache files
|
||||||
|
ipch/
|
||||||
|
*.aps
|
||||||
|
*.ncb
|
||||||
|
*.opensdf
|
||||||
|
*.sdf
|
||||||
|
|
||||||
|
# Visual Studio profiler
|
||||||
|
*.psess
|
||||||
|
*.vsp
|
||||||
|
|
||||||
|
# ReSharper is a .NET coding add-in
|
||||||
|
_ReSharper*
|
||||||
|
|
||||||
|
# Installshield output folder
|
||||||
|
[Ee]xpress
|
||||||
|
|
||||||
|
# DocProject is a documentation generator add-in
|
||||||
|
DocProject/buildhelp/
|
||||||
|
DocProject/Help/*.HxT
|
||||||
|
DocProject/Help/*.HxC
|
||||||
|
DocProject/Help/*.hhc
|
||||||
|
DocProject/Help/*.hhk
|
||||||
|
DocProject/Help/*.hhp
|
||||||
|
DocProject/Help/Html2
|
||||||
|
DocProject/Help/html
|
||||||
|
|
||||||
|
# Click-Once directory
|
||||||
|
publish
|
||||||
|
|
||||||
|
# Others
|
||||||
|
[Bb]in
|
||||||
|
[Oo]bj
|
||||||
|
sql
|
||||||
|
TestResults
|
||||||
|
*.Cache
|
||||||
|
ClientBin
|
||||||
|
stylecop.*
|
||||||
|
~$*
|
||||||
|
*.dbmdl
|
||||||
|
Generated_Code #added for RIA/Silverlight projects
|
||||||
|
|
||||||
|
# Backup & report files from converting an old project file to a newer
|
||||||
|
# Visual Studio version. Backup files are not needed, because we have git ;-)
|
||||||
|
_UpgradeReport_Files/
|
||||||
|
Backup*/
|
||||||
|
UpgradeLog*.XML
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
############
|
||||||
|
## Windows
|
||||||
|
############
|
||||||
|
|
||||||
|
# Windows image file caches
|
||||||
|
Thumbs.db
|
||||||
|
|
||||||
|
# Folder config file
|
||||||
|
Desktop.ini
|
||||||
|
|
||||||
|
|
||||||
|
#############
|
||||||
|
## Python
|
||||||
|
#############
|
||||||
|
|
||||||
|
*.py[co]
|
||||||
|
|
||||||
|
# Packages
|
||||||
|
*.egg
|
||||||
|
*.egg-info
|
||||||
|
dist
|
||||||
|
build
|
||||||
|
eggs
|
||||||
|
parts
|
||||||
|
bin
|
||||||
|
var
|
||||||
|
sdist
|
||||||
|
develop-eggs
|
||||||
|
.installed.cfg
|
||||||
|
|
||||||
|
# Installer logs
|
||||||
|
pip-log.txt
|
||||||
|
|
||||||
|
# Unit test / coverage reports
|
||||||
|
.coverage
|
||||||
|
.tox
|
||||||
|
|
||||||
|
#Translations
|
||||||
|
*.mo
|
||||||
|
|
||||||
|
#Mr Developer
|
||||||
|
.mr.developer.cfg
|
||||||
|
|
||||||
|
# Mac crap
|
||||||
|
.DS_Store
|
1
depends.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
default
|
399
init.lua
Normal file
@ -0,0 +1,399 @@
|
|||||||
|
minetest.register_node( "birthstones:diamondore", {
|
||||||
|
description = "Diamond Ore",
|
||||||
|
tile_images = { "default_stone.png^Diamond_overlay.png" },
|
||||||
|
is_ground_content = true,
|
||||||
|
groups = {cracky=3},
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
drop = 'craft "birthstones:diamond" 1',
|
||||||
|
})
|
||||||
|
minetest.register_node( "birthstones:alexandriteore", {
|
||||||
|
description = "Alexandrite Ore",
|
||||||
|
tile_images = { "default_stone.png^Alexandrite_overlay.png" },
|
||||||
|
is_ground_content = true,
|
||||||
|
groups = {cracky=3},
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
drop = 'craft "birthstones:alexandrite" 1',
|
||||||
|
})
|
||||||
|
minetest.register_node( "birthstones:amethystore", {
|
||||||
|
description = "Amethyst Ore",
|
||||||
|
tile_images = { "default_stone.png^Amethyst_overlay.png" },
|
||||||
|
is_ground_content = true,
|
||||||
|
groups = {cracky=3},
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
drop = 'craft "birthstones:amethyst" 1',
|
||||||
|
})
|
||||||
|
minetest.register_node( "birthstones:aquamarineore", {
|
||||||
|
description = "Aquamarine Ore",
|
||||||
|
tile_images = { "default_stone.png^Aquamarine_overlay.png" },
|
||||||
|
is_ground_content = true,
|
||||||
|
groups = {cracky=3},
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
drop = 'craft "birthstones:aquamarine" 1',
|
||||||
|
})
|
||||||
|
minetest.register_node( "birthstones:emeraldore", {
|
||||||
|
description = "Emerald Ore",
|
||||||
|
tile_images = { "default_stone.png^Emerald_overlay.png" },
|
||||||
|
is_ground_content = true,
|
||||||
|
groups = {cracky=3},
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
drop = 'craft "birthstones:emerald" 1',
|
||||||
|
})
|
||||||
|
minetest.register_node( "birthstones:garnetore", {
|
||||||
|
description = "Garnet Ore",
|
||||||
|
tile_images = { "default_stone.png^Garnet_overlay.png" },
|
||||||
|
is_ground_content = true,
|
||||||
|
groups = {cracky=3},
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
drop = 'craft "birthstones:garnet" 1',
|
||||||
|
})
|
||||||
|
minetest.register_node( "birthstones:opalore", {
|
||||||
|
description = "Opal Ore",
|
||||||
|
tile_images = { "default_stone.png^Opal_overlay.png" },
|
||||||
|
is_ground_content = true,
|
||||||
|
groups = {cracky=3},
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
drop = 'craft "birthstones:opal" 1',
|
||||||
|
})
|
||||||
|
minetest.register_node( "birthstones:peridotore", {
|
||||||
|
description = "Peridot Ore",
|
||||||
|
tile_images = { "default_stone.png^Peridot_overlay.png" },
|
||||||
|
is_ground_content = true,
|
||||||
|
groups = {cracky=3},
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
drop = 'craft "birthstones:peridot" 1',
|
||||||
|
})
|
||||||
|
minetest.register_node( "birthstones:rubyore", {
|
||||||
|
description = "Ruby Ore",
|
||||||
|
tile_images = { "default_stone.png^Ruby_overlay.png" },
|
||||||
|
is_ground_content = true,
|
||||||
|
groups = {cracky=3},
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
drop = 'craft "birthstones:ruby" 1',
|
||||||
|
})
|
||||||
|
minetest.register_node( "birthstones:sapphireore", {
|
||||||
|
description = "Sapphire Ore",
|
||||||
|
tile_images = { "default_stone.png^Sapphire_overlay.png" },
|
||||||
|
is_ground_content = true,
|
||||||
|
groups = {cracky=3},
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
drop = 'craft "birthstones:sapphire" 1',
|
||||||
|
})
|
||||||
|
minetest.register_node( "birthstones:topazore", {
|
||||||
|
description = "Topaz Ore",
|
||||||
|
tile_images = { "default_stone.png^Topaz_overlay.png" },
|
||||||
|
is_ground_content = true,
|
||||||
|
groups = {cracky=3},
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
drop = 'craft "birthstones:topazore" 1',
|
||||||
|
})
|
||||||
|
minetest.register_node( "birthstones:topazore", {
|
||||||
|
description = "Topaz Ore",
|
||||||
|
tile_images = { "default_stone.png^Topaz_overlay.png" },
|
||||||
|
is_ground_content = true,
|
||||||
|
groups = {cracky=3},
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
drop = 'craft "birthstones:topaz" 1',
|
||||||
|
})
|
||||||
|
minetest.register_node( "birthstones:zirconore", {
|
||||||
|
description = "Zircon Ore",
|
||||||
|
tile_images = { "default_stone.png^Zircon_overlay.png" },
|
||||||
|
is_ground_content = true,
|
||||||
|
groups = {cracky=3},
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
drop = 'craft "birthstones:zircon" 1',
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
minetest.register_craftitem( "birthstones:alexandrite", {
|
||||||
|
description = "Alexandrite (January)",
|
||||||
|
inventory_image = "Alexandrite.png",
|
||||||
|
on_place_on_ground = minetest.craftitem_place_item,
|
||||||
|
})
|
||||||
|
minetest.register_craftitem( "birthstones:amethyst", {
|
||||||
|
description = "Amethyst (February)",
|
||||||
|
inventory_image = "Amethyst.png",
|
||||||
|
on_place_on_ground = minetest.craftitem_place_item,
|
||||||
|
})
|
||||||
|
minetest.register_craftitem( "birthstones:aquamarine", {
|
||||||
|
description = "Aquamarine (March)",
|
||||||
|
inventory_image = "Aquamarine.png",
|
||||||
|
on_place_on_ground = minetest.craftitem_place_item,
|
||||||
|
})
|
||||||
|
minetest.register_craftitem( "birthstones:diamond", {
|
||||||
|
description = "Diamond (April)",
|
||||||
|
inventory_image = "Diamond.png",
|
||||||
|
on_place_on_ground = minetest.craftitem_place_item,
|
||||||
|
})
|
||||||
|
minetest.register_craftitem( "birthstones:emerald", {
|
||||||
|
description = "Emerald (May)",
|
||||||
|
inventory_image = "Emerald.png",
|
||||||
|
on_place_on_ground = minetest.craftitem_place_item,
|
||||||
|
})
|
||||||
|
minetest.register_craftitem( "birthstones:garnet", {
|
||||||
|
description = "Garnet (June)",
|
||||||
|
inventory_image = "Garnet.png",
|
||||||
|
on_place_on_ground = minetest.craftitem_place_item,
|
||||||
|
})
|
||||||
|
minetest.register_craftitem( "birthstones:opal", {
|
||||||
|
description = "Opal (July)",
|
||||||
|
inventory_image = "Opal.png",
|
||||||
|
on_place_on_ground = minetest.craftitem_place_item,
|
||||||
|
})
|
||||||
|
minetest.register_craftitem( "birthstones:peridot", {
|
||||||
|
description = "Peridot (August)",
|
||||||
|
inventory_image = "Peridot.png",
|
||||||
|
on_place_on_ground = minetest.craftitem_place_item,
|
||||||
|
})
|
||||||
|
minetest.register_craftitem( "birthstones:ruby", {
|
||||||
|
description = "Ruby (September)",
|
||||||
|
inventory_image = "Ruby.png",
|
||||||
|
on_place_on_ground = minetest.craftitem_place_item,
|
||||||
|
})
|
||||||
|
minetest.register_craftitem( "birthstones:sapphire", {
|
||||||
|
description = "Sapphire (October)",
|
||||||
|
inventory_image = "Sapphire.png",
|
||||||
|
on_place_on_ground = minetest.craftitem_place_item,
|
||||||
|
})
|
||||||
|
minetest.register_craftitem( "birthstones:topaz", {
|
||||||
|
description = "Topaz (November)",
|
||||||
|
inventory_image = "Topaz.png",
|
||||||
|
on_place_on_ground = minetest.craftitem_place_item,
|
||||||
|
})
|
||||||
|
minetest.register_craftitem( "birthstones:zircon", {
|
||||||
|
description = "Zircon (December)",
|
||||||
|
inventory_image = "Zircon.png",
|
||||||
|
on_place_on_ground = minetest.craftitem_place_item,
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
minetest.register_node( "birthstones:alexandriteblock", {
|
||||||
|
description = "Alexandrite Block",
|
||||||
|
tile_images = { "Alexandrite_block.png" },
|
||||||
|
is_ground_content = true,
|
||||||
|
groups = {cracky=3},
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
})
|
||||||
|
minetest.register_node( "birthstones:amethystblock", {
|
||||||
|
description = "Amethyst Block",
|
||||||
|
tile_images = { "Amethyst_block.png" },
|
||||||
|
is_ground_content = true,
|
||||||
|
groups = {cracky=3},
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
})
|
||||||
|
minetest.register_node( "birthstones:aquamarineblock", {
|
||||||
|
description = "Aquamarine Block",
|
||||||
|
tile_images = { "Aquamarine_block.png" },
|
||||||
|
is_ground_content = true,
|
||||||
|
groups = {cracky=3},
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
})
|
||||||
|
minetest.register_node( "birthstones:diamondblock", {
|
||||||
|
description = "Diamond Block",
|
||||||
|
tile_images = { "Diamond_block.png" },
|
||||||
|
is_ground_content = true,
|
||||||
|
groups = {cracky=3},
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
})
|
||||||
|
minetest.register_node( "birthstones:emeraldblock", {
|
||||||
|
description = "Emerald Block",
|
||||||
|
tile_images = { "Emerald_block.png" },
|
||||||
|
is_ground_content = true,
|
||||||
|
groups = {cracky=3},
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
})
|
||||||
|
minetest.register_node( "birthstones:garnetblock", {
|
||||||
|
description = "Garnet Block",
|
||||||
|
tile_images = { "Garnet_block.png" },
|
||||||
|
is_ground_content = true,
|
||||||
|
groups = {cracky=3},
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
})
|
||||||
|
minetest.register_node( "birthstones:opalblock", {
|
||||||
|
description = "Opal Block",
|
||||||
|
tile_images = { "Opal_block.png" },
|
||||||
|
is_ground_content = true,
|
||||||
|
groups = {cracky=3},
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
})
|
||||||
|
minetest.register_node( "birthstones:peridotblock", {
|
||||||
|
description = "Peridot Block",
|
||||||
|
tile_images = { "Peridot_block.png" },
|
||||||
|
is_ground_content = true,
|
||||||
|
groups = {cracky=3},
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
})
|
||||||
|
minetest.register_node( "birthstones:rubyblock", {
|
||||||
|
description = "Ruby Block",
|
||||||
|
tile_images = { "Ruby_block.png" },
|
||||||
|
is_ground_content = true,
|
||||||
|
groups = {cracky=3},
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
})
|
||||||
|
minetest.register_node( "birthstones:sapphireblock", {
|
||||||
|
description = "Sapphire Block",
|
||||||
|
tile_images = { "Sapphire_block.png" },
|
||||||
|
is_ground_content = true,
|
||||||
|
groups = {cracky=3},
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
})
|
||||||
|
minetest.register_node( "birthstones:topazblock", {
|
||||||
|
description = "Topaz Block",
|
||||||
|
tile_images = { "Topaz_block.png" },
|
||||||
|
is_ground_content = true,
|
||||||
|
groups = {cracky=3},
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
})
|
||||||
|
minetest.register_node( "birthstones:zirconblock", {
|
||||||
|
description = "Zircon Block",
|
||||||
|
tile_images = { "Zircon_block.png" },
|
||||||
|
is_ground_content = true,
|
||||||
|
groups = {cracky=3},
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
local function registerpickrecipe(name, durability, time1, time2, time3, maxlev)
|
||||||
|
minetest.register_tool("birthstones:".. name .. "_pick", {
|
||||||
|
description = name .. " Pickaxe",
|
||||||
|
inventory_image = name .. "_pick.png",
|
||||||
|
tool_capabilities = {
|
||||||
|
max_drop_level=0,
|
||||||
|
groupcaps={
|
||||||
|
cracky={times={[1]=time1, [2]=time2, [3]=time3}, uses=durability, maxlevel=maxlev}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
minetest.register_tool("birthstones:"..name.."_axe", {
|
||||||
|
description = name.." Axe",
|
||||||
|
inventory_image = name.."_axe.png",
|
||||||
|
tool_capabilities = {
|
||||||
|
max_drop_level=1,
|
||||||
|
groupcaps={
|
||||||
|
choppy={times={[1]=time1-2.0, [2]=2.0-time2, [3]=2.0-time3}, uses=30, maxlevel=maxlev},
|
||||||
|
fleshy={times={[2]=time2, [3]=time3}, uses=40, maxlevel=maxlev}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "birthstones:"..name.."_pick",
|
||||||
|
recipe = {{'birthstones:'..name, 'birthstones:'..name, 'birthstones:'..name}, {'', 'default:stick', ''}, {'', 'default:stick', ''}}
|
||||||
|
})
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "birthstones:"..name.."_axe",
|
||||||
|
recipe = {{'birthstones:'..name, 'birthstones:'..name}, {'birthstones:'..name, 'default:stick'}, {'', 'default:stick'}}
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
registerpickrecipe("zircon", 50, 4.1, 1.6, 1.05, 1)
|
||||||
|
registerpickrecipe("topaz", 38, 4.1, 1.6, 1.05, 1)
|
||||||
|
registerpickrecipe("sapphire", 40, 4.2, 1.6, 1.2, 1)
|
||||||
|
registerpickrecipe("ruby", 40, 4.2, 1.6, 1.2, 2)
|
||||||
|
registerpickrecipe("peridot", 34, 4.0, 1.5, 1.0, 1)
|
||||||
|
registerpickrecipe("opal", 32, 3.5, 1.6, 1.5, 2)
|
||||||
|
registerpickrecipe("garnet", 35, 4.0, 1.5, 1.0, 1)
|
||||||
|
registerpickrecipe("emerald", 40, 4.2, 1.6, 1.2, 2)
|
||||||
|
registerpickrecipe("diamond", 50, 4.5, 1.8, 1.3, 3)
|
||||||
|
registerpickrecipe("aquamarine", 25, 3.2, 1.40, 0.90, 1)
|
||||||
|
registerpickrecipe("amethyst", 30, 3.2, 1.40, 0.90, 1)
|
||||||
|
registerpickrecipe("alexandrite", 30, 3.2, 1.40, 0.90, 1)
|
||||||
|
|
||||||
|
local function registerblockrecipe(name, blockname)
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = blockname,
|
||||||
|
recipe = {{name, name, name},
|
||||||
|
{name, name, name},
|
||||||
|
{name, name, name}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
registerblockrecipe('birthstones:alexandrite', 'birthstones:alexandriteblock')
|
||||||
|
registerblockrecipe('birthstones:amethyst', 'birthstones:amethystblock')
|
||||||
|
registerblockrecipe('birthstones:aquamarine', 'birthstones:aquamarineblock')
|
||||||
|
registerblockrecipe('birthstones:diamond', 'birthstones:diamondblock')
|
||||||
|
registerblockrecipe('birthstones:emerald', 'birthstones:emeraldblock')
|
||||||
|
registerblockrecipe('birthstones:garnet', 'birthstones:garnetblock')
|
||||||
|
registerblockrecipe('birthstones:opal', 'birthstones:opalblock')
|
||||||
|
registerblockrecipe('birthstones:peridot', 'birthstones:peridotblock')
|
||||||
|
registerblockrecipe('birthstones:ruby', 'birthstones:rubyblock')
|
||||||
|
registerblockrecipe('birthstones:sapphire', 'birthstones:sapphireblock')
|
||||||
|
registerblockrecipe('birthstones:topaz', 'birthstones:topazblock')
|
||||||
|
registerblockrecipe('birthstones:zircon', 'birthstones:zirconblock')
|
||||||
|
|
||||||
|
local function generate_ore(name, wherein, minp, maxp, seed, chunks_per_volume, ore_per_chunk, height_min, height_max)
|
||||||
|
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 chunk_size = 3
|
||||||
|
if ore_per_chunk <= 4 then
|
||||||
|
chunk_size = 2
|
||||||
|
end
|
||||||
|
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
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.register_on_generated(function(minp, maxp, seed)
|
||||||
|
generate_ore("birthstones:alexandriteore", "default:stone", minp, maxp, seed+21, 1/10/10/10, 4, -31000, -40)
|
||||||
|
end)
|
||||||
|
minetest.register_on_generated(function(minp, maxp, seed)
|
||||||
|
generate_ore("birthstones:amethystore", "default:stone", minp, maxp, seed+21, 1/10/10/10, 4, -31000, -50)
|
||||||
|
end)
|
||||||
|
minetest.register_on_generated(function(minp, maxp, seed)
|
||||||
|
generate_ore("birthstones:aquamarineore", "default:stone", minp, maxp, seed+21, 1/10/10/10, 4, -31000, -10)
|
||||||
|
end)
|
||||||
|
minetest.register_on_generated(function(minp, maxp, seed)
|
||||||
|
generate_ore("birthstones:diamondore", "default:stone", minp, maxp, seed+21, 1/10/10/10, 1, -31000, -300)
|
||||||
|
end)
|
||||||
|
minetest.register_on_generated(function(minp, maxp, seed)
|
||||||
|
generate_ore("birthstones:emeraldore", "default:stone", minp, maxp, seed+21, 1/10/10/10, 3, -31000, -100)
|
||||||
|
end)
|
||||||
|
minetest.register_on_generated(function(minp, maxp, seed)
|
||||||
|
generate_ore("birthstones:garnetore", "default:stone", minp, maxp, seed+21, 1/10/10/10, 4, -31000, -70)
|
||||||
|
end)
|
||||||
|
minetest.register_on_generated(function(minp, maxp, seed)
|
||||||
|
generate_ore("birthstones:peridotore", "default:stone", minp, maxp, seed+21, 1/10/10/10, 4, -31000, -60)
|
||||||
|
end)
|
||||||
|
minetest.register_on_generated(function(minp, maxp, seed)
|
||||||
|
generate_ore("birthstones:rubyore", "default:stone", minp, maxp, seed+21, 1/10/10/10, 3, -31000, -120)
|
||||||
|
end)
|
||||||
|
minetest.register_on_generated(function(minp, maxp, seed)
|
||||||
|
generate_ore("birthstones:sapphireore", "default:stone", minp, maxp, seed+21, 1/10/10/10, 3, -31000, -120)
|
||||||
|
end)
|
||||||
|
minetest.register_on_generated(function(minp, maxp, seed)
|
||||||
|
generate_ore("birthstones:topazore", "default:stone", minp, maxp, seed+21, 1/10/10/10, 4, -31000, -80)
|
||||||
|
end)
|
||||||
|
minetest.register_on_generated(function(minp, maxp, seed)
|
||||||
|
generate_ore("birthstones:zirconore", "default:stone", minp, maxp, seed+21, 1/10/10/10, 4, -31000, -70)
|
||||||
|
end)
|
BIN
textures/Alexandrite.png
Normal file
After Width: | Height: | Size: 299 B |
BIN
textures/Alexandrite_block.png
Normal file
After Width: | Height: | Size: 289 B |
BIN
textures/Alexandrite_overlay.png
Normal file
After Width: | Height: | Size: 297 B |
BIN
textures/Amethyst.png
Normal file
After Width: | Height: | Size: 441 B |
BIN
textures/Amethyst_block.png
Normal file
After Width: | Height: | Size: 288 B |
BIN
textures/Amethyst_overlay.png
Normal file
After Width: | Height: | Size: 503 B |
BIN
textures/Aquamarine.png
Normal file
After Width: | Height: | Size: 214 B |
BIN
textures/Aquamarine_block.png
Normal file
After Width: | Height: | Size: 292 B |
BIN
textures/Aquamarine_overlay.png
Normal file
After Width: | Height: | Size: 266 B |
BIN
textures/Diamond.png
Normal file
After Width: | Height: | Size: 216 B |
BIN
textures/Diamond_block.png
Normal file
After Width: | Height: | Size: 314 B |
BIN
textures/Diamond_overlay.png
Normal file
After Width: | Height: | Size: 258 B |
BIN
textures/Emerald.png
Normal file
After Width: | Height: | Size: 211 B |
BIN
textures/Emerald_block.png
Normal file
After Width: | Height: | Size: 687 B |
BIN
textures/Emerald_overlay.png
Normal file
After Width: | Height: | Size: 236 B |
BIN
textures/Garnet.png
Normal file
After Width: | Height: | Size: 186 B |
BIN
textures/Garnet_block.png
Normal file
After Width: | Height: | Size: 326 B |
BIN
textures/Garnet_overlay.png
Normal file
After Width: | Height: | Size: 260 B |
BIN
textures/Opal.png
Normal file
After Width: | Height: | Size: 344 B |
BIN
textures/Opal_block.png
Normal file
After Width: | Height: | Size: 755 B |
BIN
textures/Opal_overlay.png
Normal file
After Width: | Height: | Size: 317 B |
BIN
textures/Peridot.png
Normal file
After Width: | Height: | Size: 225 B |
BIN
textures/Peridot_block.png
Normal file
After Width: | Height: | Size: 296 B |
BIN
textures/Peridot_overlay.png
Normal file
After Width: | Height: | Size: 217 B |
BIN
textures/Ruby.png
Normal file
After Width: | Height: | Size: 253 B |
BIN
textures/Ruby_block.png
Normal file
After Width: | Height: | Size: 897 B |
BIN
textures/Ruby_overlay.png
Normal file
After Width: | Height: | Size: 312 B |
BIN
textures/Sapphire.png
Normal file
After Width: | Height: | Size: 217 B |
BIN
textures/Sapphire_block.png
Normal file
After Width: | Height: | Size: 453 B |
BIN
textures/Sapphire_overlay.png
Normal file
After Width: | Height: | Size: 245 B |
BIN
textures/Topaz.png
Normal file
After Width: | Height: | Size: 235 B |
BIN
textures/Topaz_block.png
Normal file
After Width: | Height: | Size: 280 B |
BIN
textures/Topaz_overlay.png
Normal file
After Width: | Height: | Size: 231 B |
BIN
textures/Zircon.png
Normal file
After Width: | Height: | Size: 229 B |
BIN
textures/Zircon_block.png
Normal file
After Width: | Height: | Size: 331 B |
BIN
textures/Zircon_overlay.png
Normal file
After Width: | Height: | Size: 221 B |
BIN
textures/alexandrite_axe.png
Normal file
After Width: | Height: | Size: 167 B |
BIN
textures/alexandrite_pick.png
Normal file
After Width: | Height: | Size: 211 B |
BIN
textures/amethyst_axe.png
Normal file
After Width: | Height: | Size: 141 B |
BIN
textures/amethyst_pick.png
Normal file
After Width: | Height: | Size: 245 B |
BIN
textures/aquamarine_axe.png
Normal file
After Width: | Height: | Size: 143 B |
BIN
textures/aquamarine_pick.png
Normal file
After Width: | Height: | Size: 212 B |
BIN
textures/diamond_axe.png
Normal file
After Width: | Height: | Size: 135 B |
BIN
textures/diamond_pick.png
Normal file
After Width: | Height: | Size: 218 B |
BIN
textures/emerald_axe.png
Normal file
After Width: | Height: | Size: 132 B |
BIN
textures/emerald_pick.png
Normal file
After Width: | Height: | Size: 216 B |
BIN
textures/garnet_axe.png
Normal file
After Width: | Height: | Size: 141 B |
BIN
textures/garnet_pick.png
Normal file
After Width: | Height: | Size: 213 B |
BIN
textures/opal_axe.png
Normal file
After Width: | Height: | Size: 176 B |
BIN
textures/opal_pick.png
Normal file
After Width: | Height: | Size: 272 B |
BIN
textures/peridot_axe.png
Normal file
After Width: | Height: | Size: 141 B |
BIN
textures/peridot_pick.png
Normal file
After Width: | Height: | Size: 207 B |
BIN
textures/ruby_axe.png
Normal file
After Width: | Height: | Size: 134 B |
BIN
textures/ruby_pick.png
Normal file
After Width: | Height: | Size: 211 B |
BIN
textures/sapphire_axe.png
Normal file
After Width: | Height: | Size: 127 B |
BIN
textures/sapphire_pick.png
Normal file
After Width: | Height: | Size: 213 B |
BIN
textures/topaz_axe.png
Normal file
After Width: | Height: | Size: 154 B |
BIN
textures/topaz_pick.png
Normal file
After Width: | Height: | Size: 203 B |
BIN
textures/zircon_axe.png
Normal file
After Width: | Height: | Size: 145 B |
BIN
textures/zircon_pick.png
Normal file
After Width: | Height: | Size: 217 B |